diff -Nru openmpi-4.0.3/aclocal.m4 openmpi-4.1.4/aclocal.m4 --- openmpi-4.0.3/aclocal.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/aclocal.m4 2022-05-29 09:51:40.000000000 +0000 @@ -1195,6 +1195,8 @@ m4_include([config/ltsugar.m4]) m4_include([config/ltversion.m4]) m4_include([config/lt~obsolete.m4]) +m4_include([config/ompi_check_gpfs.m4]) +m4_include([config/ompi_check_ime.m4]) m4_include([config/ompi_check_libfca.m4]) m4_include([config/ompi_check_libhcoll.m4]) m4_include([config/ompi_check_lustre.m4]) @@ -1202,6 +1204,7 @@ m4_include([config/ompi_check_psm.m4]) m4_include([config/ompi_check_psm2.m4]) m4_include([config/ompi_check_pvfs2.m4]) +m4_include([config/ompi_check_ucc.m4]) m4_include([config/ompi_check_ucx.m4]) m4_include([config/ompi_config_files.m4]) m4_include([config/ompi_configure_options.m4]) @@ -1225,6 +1228,7 @@ m4_include([config/ompi_fortran_check_logical_array.m4]) m4_include([config/ompi_fortran_check_max_array_rank.m4]) m4_include([config/ompi_fortran_check_optional_args.m4]) +m4_include([config/ompi_fortran_check_preprocess_f90.m4]) m4_include([config/ompi_fortran_check_private.m4]) m4_include([config/ompi_fortran_check_procedure.m4]) m4_include([config/ompi_fortran_check_protected.m4]) diff -Nru openmpi-4.0.3/AUTHORS openmpi-4.1.4/AUTHORS --- openmpi-4.0.3/AUTHORS 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/AUTHORS 2022-05-29 09:51:40.000000000 +0000 @@ -15,21 +15,29 @@ adkulkar@cs.indiana.edu Aboorva Devarajan abodevar@in.ibm.com + aburvadevarajan@gmail.com Adrian Knoth adi@minet.uni-jena.de Adrian Reber adrian@lisas.de areber@redhat.com +Ake Sandgren + ake.sandgren@hpc2n.umu.se Akshay Venkatesh akvenkatesh@nvidia.com Alejandro Vilches alejandro.vilches@intel.com Aleksey Senin alekseys@mellanox.com +Alex Anenkov + anenkov.ru@gmail.com Alex Margolin + alex.margolin@huawei.com alex.margolin@mail.huji.ac.il Alex Mikheev alexm@mellanox.com +Alexander Grund + flamefire@users.noreply.github.com Alina Sklarevich alinas@mellanox.com Anandhi S Jayakumar @@ -39,6 +47,8 @@ Andrew Friedley afriedle@osl.iu.edu andrew.friedley@intel.com +Andrew J. Hesford + ajh@sideband.org Andrew Lumsdaine lums@cs.indiana.edu Andrey Maslennikov @@ -55,6 +65,8 @@ artpol84@gmail.com Artem Ryabov artemry@mellanox.com +Artemy Kovalyov + artemyko@mellanox.com Aurelien Bouteiller bouteill@icl.utk.edu Austen Lauria @@ -90,6 +102,8 @@ ccoti@icl.utk.edu Carlos Bederián bc@famaf.unc.edu.ar +Charles Shereda + cpshereda@lanl.gov Chris Ward tjcw@uk.ibm.com Christian Bell @@ -114,6 +128,8 @@ deberius@vols.utk.edu David Solt dsolt@us.ibm.com +David Wootton + dwootton@us.ibm.com Denis Dimick dgdimick@lnal.gov Devendar Bureddy @@ -122,11 +138,17 @@ devesh.sharma@broadcom.com Dimitar Pashov d.pashov@gmail.com +Dipti Kothari + dkothar@amazon.com Donald Kerr donald.kerr@oracle.com Doron Shoham dorons@mellanox.com +Durgesh + durg1222@in.ibm.com Edgar Gabriel + edgar.gabriel1@outlook.com + edgar.gabriel@amd.com egabriel@central.uh.edu gabriel@cs.uh.edu Elena Elkina @@ -164,6 +186,8 @@ gingery@lanl.gov Gleb Natapov gleb@voltaire.com +Goldman, Adam + adam.goldman@intel.com Gopal Santhanaraman santhana@osu.edu Graham Fagg @@ -184,6 +208,8 @@ harald@klimachs.de Harumi Kuno harumi.kuno@hpe.com +Hessam Mirsadeghi + hmirsadeghi@nvidia.com Howard Pritchard howardp@lanl.gov hppritcha@gmail.com @@ -207,6 +233,8 @@ jsquyres@cisco.com Jelena Pjesivac-Grbovic pjesa@icl.iu.edu +Jie Zhang + zhngaj@amazon.com Jijo Varghese jijo733@gmail.com Jithin Jose @@ -225,6 +253,7 @@ jroman@dsic.upv.es Joseph Schuchart schuchart@hlrs.de + schuchart@icl.utk.edu Josh Hursey jhursey@us.ibm.com jjhursey@open-mpi.org @@ -253,12 +282,18 @@ l.r.rajeshnarayanan@intel.com Laura Casswell lcasswell@lanl.gov +Lei Chen + chenlcl@cn.ibm.com Lenny Verkhovsky lennyb@voltaire.com Leobardo Ruiz Rountree lruizrountree@gmail.com +Leonid Genkin + lgenkin@nvidia.com Li-Ta Lo ollie@lanl.gov +Mamzi Bayatpour mbayatpour@nvidia.com () + mbayatpour@helios001.hpcadvisorycouncil.com Mangala Jyothi Bhaskar mjbhaskar@salmon.cs.uh.edu mjbhaskar@uh.edu @@ -285,6 +320,7 @@ Maxwell Coil mcoil@nd.edu Michael Heinz + michael.william.heinz@cornelisnetworks.com michael.william.heinz@intel.com Michael Lass bevan@bi-co.net @@ -292,6 +328,7 @@ miked@mellanox.com Mikhail Brinskii mikhailb@mellanox.com + mikhailb@nvidia.com Mikhail Kurnosov mkurnosov@gmail.com Mitch Sukalski @@ -302,6 +339,8 @@ mohgan@amazon.com Moritz Kreutzer mokreutzer@gmail.com +NARIBAYASHI Akira + a.naribayashi@fujitsu.com Nadezhda Kogteva nadezhda.kogteva@itseez.com Nadia Derbey @@ -323,6 +362,8 @@ nicolas.chevalier@bull.net Nicolas Morey-Chaisemartin nmoreychaisemartin@suse.com +Nikola Dancejic + dancejic@amazon.com Ninad Prabhukhanolkar ninadchess96@gmail.com Noah Evans @@ -338,6 +379,7 @@ Oscar Vega-Gisbert ovega@dsic.upv.es Pak Lui + pak.lui@amd.com pak.lui@sun.com Pascal Deveze pascal.deveze@atos.net @@ -363,9 +405,12 @@ pkambadu@osl.iu.edu Raghavendra Pendyala raghavendra.p.pendyala@intel.com +Raghu Raja + craghun@amazon.com Rainer Keller rainer.keller@hft-stuttgart.de rainer.keller@hlrs.de + rainer.keller@hs-esslingen.de Ralph Castain rhc@open-mpi.org rhc@pmix.org @@ -394,6 +439,8 @@ sssharka@us.ibm.com Sami Ayyorgun sami@lanl.gov +Sami Ilvonen + sami.ilvonen@csc.fi Samuel Gutierrez samuel@lanl.gov Sayantan Sur @@ -404,6 +451,7 @@ selvin.xavier@broadcom.com Sergey Oblomov sergeyo@mellanox.com + sergeyo@nvidia.com Sharon Melamed sharonm@voltaire.com Shiqing Fan @@ -417,6 +465,10 @@ staskirillov@gmail.com Steve Wise swise@opengridcomputing.com +StevenGood154 + sgood2@nd.edu +Subhadeep Bhattacharya + subhadeepb@nvidia.com Sushant Sharma sushant@lanl.gov Sven Stork @@ -449,6 +501,8 @@ tmattox@gmail.com Tim Prins tprins@lanl.gov +Tim Wickberg + tim@schedmd.com Tim Woodall twoodall@lanl.gov Todd Kordenbrock @@ -463,12 +517,16 @@ fj2505dt@aa.jp.fujitsu.com Valentin Petrov valentinp@mellanox.com + valentinp@nvidia.com Vasily Filipov vasily@mellanox.com Vishal Sahay vsahay@osl.iu.edu Vishwanath Venkatesan vvenkates@gmail.com +Wei Zhang + wzam@amazon.com + wzam@amazonc.com Weikuan Yu yuw@lanl.gov Wesley Bland @@ -479,8 +537,12 @@ lepera@us.ibm.com William Throwe wtt6@cornell.edu +William Zhang + wilzhang@amazon.com Wojtek Wasko wwasko@nvidia.com +Xi Luo + dycz0fx@gmail.com Xin Zhao xinz@mellanox.com Yael Dayan @@ -497,8 +559,13 @@ wangzm@cn.ibm.com Zoltán Mizsei zmizsei@extrowerk.com +bsergentm + marc.sergent@atos.net +dongzhong + zhongdong0321@hotmail.com guserav erik.zeiske@hpe.com + erik.zeiske@web.de heasterday heasterday@users.noreply.github.com luz.paz @@ -507,3 +574,5 @@ perrynzhou@gmail.com raafatfeki fekiraafat@gmail.com +tomhers + tom.herschberg@gmail.com diff -Nru openmpi-4.0.3/autogen.pl openmpi-4.1.4/autogen.pl --- openmpi-4.0.3/autogen.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/autogen.pl 2022-05-29 09:51:40.000000000 +0000 @@ -1,12 +1,12 @@ #!/usr/bin/env perl # -# Copyright (c) 2009-2017 Cisco Systems, Inc. All rights reserved +# Copyright (c) 2009-2021 Cisco Systems, Inc. All rights reserved # Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2013 Mellanox Technologies, Inc. # All rights reserved. # Copyright (c) 2013-2014 Intel, Inc. All rights reserved. -# Copyright (c) 2015-2016 Research Organization for Information Science -# and Technology (RIST). All rights reserved. +# Copyright (c) 2015-2020 Research Organization for Information Science +# and Technology (RIST). All rights reserved. # Copyright (c) 2015 IBM Corporation. All rights reserved. # # $COPYRIGHT$ @@ -1068,12 +1068,41 @@ # Fix consequence of broken libtool.m4 # see http://lists.gnu.org/archive/html/bug-libtool/2015-07/msg00002.html and # https://github.com/open-mpi/ompi/issues/751 - push(@verbose_out, $indent_str . "Patching configure for libtool.m4 bug\n"); + push(@verbose_out, $indent_str . "Patching configure for -L/-R libtool.m4 bug\n"); # patch for libtool < 2.4.3 $c =~ s/# Some compilers place space between "-\{L,R\}" and the path.\n # Remove the space.\n if test \$p = \"-L\" \|\|/# Some compilers place space between "-\{L,-l,R\}" and the path.\n # Remove the spaces.\n if test \$p = \"-L\" \|\|\n test \$p = \"-l\" \|\|/g; # patch for libtool >= 2.4.3 $c =~ s/# Some compilers place space between "-\{L,R\}" and the path.\n # Remove the space.\n if test x-L = \"\$p\" \|\|\n test x-R = \"\$p\"\; then/# Some compilers place space between "-\{L,-l,R\}" and the path.\n # Remove the spaces.\n if test x-L = \"x\$p\" \|\|\n test x-l = \"x\$p\" \|\|\n test x-R = \"x\$p\"\; then/g; + # Fix OS X Big Sur (11.0.x) support + # From https://lists.gnu.org/archive/html/libtool-patches/2020-06/msg00001.html + push(@verbose_out, $indent_str . "Patching configure for MacOS Big Sur libtool.m4 bug\n"); + # Some versions of Libtool use ${wl} consistently, but others did + # not (e.g., they used $wl). Make the regexp be able to handle + # both. Additionally, the case string searching for 10.[012]* + # changed over time. So make sure it can handle both of the case + # strings that we're aware of. + my $WL = '(\$\{wl\}|\$wl)'; + my $SOMETIMES = '(\[,.\])*'; + my $search_string = 'darwin\*\) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don\'t you love it\? + case \$\{MACOSX_DEPLOYMENT_TARGET-10.0\},\$host in + 10.0,\*86\*-darwin8\*\|10.0,\*-darwin\[91\]\*\) + _lt_dar_allow_undefined=\'' . $WL . '-undefined ' . $WL . 'dynamic_lookup\' ;; + 10.\[012\]' . $SOMETIMES . '\*\) + _lt_dar_allow_undefined=\'' . $WL . '-flat_namespace ' . $WL . '-undefined ' . $WL . 'suppress\' ;; + 10.\*\)'; + my $replace_string = 'darwin*) + # Open MPI patched for Darwin / MacOS Big Sur. See + # http://lists.gnu.org/archive/html/bug-libtool/2015-07/msg00001.html + case ${MACOSX_DEPLOYMENT_TARGET},$host in + 10.[012],*|,*powerpc*) + _lt_dar_allow_undefined=\'${wl}-flat_namespace ${wl}-undefined ${wl}suppress\' ;; + *)'; + $c =~ s/$search_string/$replace_string/g; + # Only write out verbose statements and a new configure if the # configure content actually changed return @@ -1109,6 +1138,102 @@ } ############################################################################## + +sub replace_config_sub_guess { + # This could be simpler if we could use some Perl modules for this + # functionality (e.g., DateTime). But I don't want to introduce + # any CPAN dependencies here, so just do sometime simple, even if + # it's a bit laborious. Use a few private helper functions for + # this kind of functionality. + + sub _get_timestamp { + my $filename = shift; + + my $ret; + if (-x $filename) { + my $out = `$filename --version`; + $out =~ m/GNU config\.[a-z]+ \((.+)\)/; + $ret = $1; + } + + return $ret; + } + + sub _split_timestamp { + my $ts = shift; + + $ts =~ m/(\d+)-(\d+)-(\d+)/; + return $1, $2, $3; + } + + # Returns true if timestamp $a > timestamp $b. + sub _timestamp_gt { + my ($a, $b) = @_; + + my ($year_a, $month_a, $day_a) = _split_timestamp($a); + my ($year_b, $month_b, $day_b) = _split_timestamp($b); + + # Don't try to be clever -- just do a simple set of explicit + # comparisons. + if ($year_a > $year_b) { + return 1; + } elsif ($year_a < $year_b) { + return 0; + } else { + if ($month_a > $month_b) { + return 1; + } elsif ($month_a < $month_b) { + return 0; + } else { + if ($day_a > $day_b) { + return 1; + } else { + return 0; + } + } + } + } + + my ($topdir) = @_; + + # Find the stashed known-good files, and get their version + # timestamps. + my $cached_dir = "$topdir/config/from-savannah"; + my @files = qw/config.guess config.sub/; + my %known_good_timestamps; + foreach my $file (@files) { + my $filename = "$cached_dir/upstream-$file"; + my_die("Cannot find $filename") + if (! -f $filename); + + my $ts = _get_timestamp($filename); + $known_good_timestamps{$file} = $ts; + } + + # Find all config.guess/config.sub files in the tree. If their + # versions are older than the stashed known-good files, update + # them from the stash. + my @files; + File::Find::find(sub { + push(@files, $File::Find::name) + if ($_ eq "config.guess" || + $_ eq "config.sub") }, $topdir); + + foreach my $file (@files) { + # Skip anything in the 3rd-party tree + next + if ($file =~ /\/3rd-party\//); + + my $base = basename($file); + my $ts = _get_timestamp($file); + if (_timestamp_gt($known_good_timestamps{$base}, $ts)) { + print("=== Replacing $file with newer version\n"); + safe_system("cp -f $cached_dir/upstream-$base $file"); + } + } +} + +############################################################################## ############################################################################## ## main - do the real work... ############################################################################## @@ -1200,7 +1325,7 @@ dnl This file is automatically created by autogen.pl; it should not dnl be edited by hand!! dnl -dnl Generated by $username at " . localtime(time) . " +dnl Generated by $username at " . localtime($ENV{SOURCE_DATE_EPOCH} || time) . " dnl on $full_hostname. $dnl_line\n\n"; @@ -1429,6 +1554,11 @@ patch_autotools_output("."); +# Per https://github.com/open-mpi/ompi/issues/8410, replace config.sub +# and config.guess with known-good versions if the Autoconf-installed +# versions are older. +replace_config_sub_guess("."); + #--------------------------------------------------------------------------- verbose " diff -Nru openmpi-4.0.3/.ci/mellanox/azure-pipelines.yml openmpi-4.1.4/.ci/mellanox/azure-pipelines.yml --- openmpi-4.0.3/.ci/mellanox/azure-pipelines.yml 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/.ci/mellanox/azure-pipelines.yml 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,47 @@ +trigger: none +pr: + - master + - v*.*.x + +pool: + name: Default + demands: + - AGENT_CI_TARGET -equals ompi + - MLNX_IB_DEVICE -equals yes + +variables: + ompi_jenkins_scripts_git_repo_url: https://github.com/mellanox-hpc/jenkins_scripts.git + ompi_jenkins_scripts_git_branch: ompi_v4.0.x + # Enable debug information, supported values: true, false + debug: true + +jobs: +- job: mellanox_ompi_ci + displayName: Mellanox Open MPI CI + timeoutInMinutes: 240 + container: + image: rdmz-harbor.rdmz.labs.mlnx/hpcx/ompi_ci:latest + options: -v /hpc/local:/hpc/local -v /opt:/opt --uts=host --ipc=host --ulimit stack=67108864 + --ulimit memlock=-1 --security-opt seccomp=unconfined --cap-add=SYS_ADMIN --device=/dev/infiniband/ + steps: + - task: DeleteFiles@1 + displayName: Cleanup workspace folder + inputs: + sourceFolder: $(Pipeline.Workspace) + contents: | + **/jenkins_scripts + - checkout: self + submodules: true + path: ompi + clean: true + - bash: | + set -eE + [ "$(debug)" = "true" ] && set -x + cd $(Pipeline.Workspace) + git clone $(ompi_jenkins_scripts_git_repo_url) + cd $(Pipeline.Workspace)/jenkins_scripts && git checkout $(ompi_jenkins_scripts_git_branch) + export WORKSPACE=$(Pipeline.Workspace)/ompi + # TODO: rework ompi_test.sh to avoid Jenkins mentions + export JENKINS_RUN_TESTS=yes + $(Pipeline.Workspace)/jenkins_scripts/jenkins/ompi/ompi_test.sh + displayName: Build and test Open MPI diff -Nru openmpi-4.0.3/.ci/README.md openmpi-4.1.4/.ci/README.md --- openmpi-4.0.3/.ci/README.md 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/.ci/README.md 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,16 @@ +# Open MPI Continuous Integration (CI) Services +## Mellanox Open MPI CI +### Scope +[Mellanox](https://www.mellanox.com/) Open MPI CI is intended to verify Open MPI with recent Mellanox SW components ([Mellanox OFED](https://www.mellanox.com/page/products_dyn?product_family=26), [UCX](https://www.mellanox.com/page/products_dyn?product_family=281&mtag=ucx) and other [HPC-X](https://www.mellanox.com/page/products_dyn?product_family=189&mtag=hpc-x) components) in the Mellanox lab environment. + +CI is managed by [Azure Pipelines](https://docs.microsoft.com/en-us/azure/devops/pipelines/?view=azure-devops) service. + +Mellanox Open MPI CI includes: +* Open MPI building with internal stable engineering versions of UCX and HCOLL. The building is run in Docker-based environment. +* Sanity functional testing. +### How to Run CI +Mellanox Open MPI CI is triggered upon the following events: +* Create a pull request (PR). CI status is visible in the PR status. CI is restarted automatically upon each new commit within the PR. CI status and log files are also available on the Azure DevOps server. +* Trigger CI with special PR comments (for example, `/azp run`). Comment triggers are available only if the comment author has write permission to the PR target repo. Detailed information about comment triggers is available in the official Azure DevOps [documentation](https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/github?view=azure-devops&tabs=yaml#comment-triggers). +### Support +In case of any issues, questions or suggestions please contact to [Mellanox Open MPI CI support team](mailto:swx-azure-svc@mellanox.com). diff -Nru openmpi-4.0.3/config/autogen_found_items.m4 openmpi-4.1.4/config/autogen_found_items.m4 --- openmpi-4.0.3/config/autogen_found_items.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/autogen_found_items.m4 2022-05-29 09:51:40.000000000 +0000 @@ -5,8 +5,8 @@ dnl This file is automatically created by autogen.pl; it should not dnl be edited by hand!! dnl -dnl Generated by ec2-user at Tue Mar 3 23:30:27 2020 -dnl on ip-172-31-13-177. +dnl Generated by ec2-user at Thu May 26 14:32:49 2022 +dnl on ip-172-31-4-35.us-west-2.compute.internal. dnl --------------------------------------------------------------------------- dnl Platform file @@ -36,7 +36,7 @@ m4_define([mca_opal_framework_list], [common, allocator, backtrace, btl, compress, crs, dl, event, hwloc, if, installdirs, memchecker, memcpy, memory, mpool, patcher, pmix, pstat, rcache, reachable, shmem, timer]) dnl Components in the opal / common framework -m4_define([mca_opal_common_m4_config_component_list], [cuda, sm, ucx, verbs, verbs_usnic]) +m4_define([mca_opal_common_m4_config_component_list], [cuda, ofi, sm, ucx, verbs, verbs_usnic]) m4_define([mca_opal_common_no_config_component_list], []) dnl Components in the opal / allocator framework @@ -48,7 +48,7 @@ m4_define([mca_opal_backtrace_no_config_component_list], []) dnl Components in the opal / btl framework -m4_define([mca_opal_btl_m4_config_component_list], [openib, portals4, sm, smcuda, tcp, uct, ugni, usnic, vader]) +m4_define([mca_opal_btl_m4_config_component_list], [ofi, openib, portals4, sm, smcuda, tcp, uct, ugni, usnic, vader]) m4_define([mca_opal_btl_no_config_component_list], [self]) dnl Components in the opal / compress framework @@ -189,7 +189,7 @@ m4_define([mca_orte_rtc_no_config_component_list], [hwloc]) dnl Components in the orte / schizo framework -m4_define([mca_orte_schizo_m4_config_component_list], [alps, moab, singularity, slurm]) +m4_define([mca_orte_schizo_m4_config_component_list], [alps, jsm, moab, singularity, slurm]) m4_define([mca_orte_schizo_no_config_component_list], [flux, ompi, orte]) dnl Components in the orte / snapc framework @@ -218,15 +218,15 @@ m4_define([mca_ompi_bml_no_config_component_list], []) dnl Components in the ompi / coll framework -m4_define([mca_ompi_coll_m4_config_component_list], [cuda, fca, hcoll, monitoring, portals4]) -m4_define([mca_ompi_coll_no_config_component_list], [basic, inter, libnbc, self, sm, sync, tuned]) +m4_define([mca_ompi_coll_m4_config_component_list], [cuda, fca, hcoll, monitoring, portals4, ucc]) +m4_define([mca_ompi_coll_no_config_component_list], [adapt, basic, han, inter, libnbc, self, sm, sync, tuned]) dnl Components in the ompi / crcp framework m4_define([mca_ompi_crcp_m4_config_component_list], [bkmrk]) m4_define([mca_ompi_crcp_no_config_component_list], []) dnl Components in the ompi / fbtl framework -m4_define([mca_ompi_fbtl_m4_config_component_list], [posix, pvfs2]) +m4_define([mca_ompi_fbtl_m4_config_component_list], [ime, posix, pvfs2]) m4_define([mca_ompi_fbtl_no_config_component_list], []) dnl Components in the ompi / fcoll framework @@ -234,7 +234,7 @@ m4_define([mca_ompi_fcoll_no_config_component_list], [dynamic, dynamic_gen2, individual, two_phase, vulcan]) dnl Components in the ompi / fs framework -m4_define([mca_ompi_fs_m4_config_component_list], [lustre, pvfs2, ufs]) +m4_define([mca_ompi_fs_m4_config_component_list], [gpfs, ime, lustre, pvfs2, ufs]) m4_define([mca_ompi_fs_no_config_component_list], []) dnl Components in the ompi / hook framework @@ -250,7 +250,7 @@ m4_define([mca_ompi_mtl_no_config_component_list], []) dnl Components in the ompi / op framework -m4_define([mca_ompi_op_m4_config_component_list], []) +m4_define([mca_ompi_op_m4_config_component_list], [avx]) m4_define([mca_ompi_op_no_config_component_list], []) dnl Components in the ompi / osc framework @@ -291,7 +291,7 @@ m4_define([mca_oshmem_memheap_no_config_component_list], [buddy, ptmalloc]) dnl Components in the oshmem / scoll framework -m4_define([mca_oshmem_scoll_m4_config_component_list], [fca]) +m4_define([mca_oshmem_scoll_m4_config_component_list], [fca, ucc]) m4_define([mca_oshmem_scoll_no_config_component_list], [basic, mpi]) dnl Components in the oshmem / spml framework @@ -316,6 +316,7 @@ m4_include([opal/mca/pstat/configure.m4]) m4_include([opal/mca/timer/configure.m4]) m4_include([opal/mca/common/cuda/configure.m4]) +m4_include([opal/mca/common/ofi/configure.m4]) m4_include([opal/mca/common/sm/configure.m4]) m4_include([opal/mca/common/ucx/configure.m4]) m4_include([opal/mca/common/verbs/configure.m4]) @@ -323,6 +324,7 @@ m4_include([opal/mca/backtrace/execinfo/configure.m4]) m4_include([opal/mca/backtrace/none/configure.m4]) m4_include([opal/mca/backtrace/printstack/configure.m4]) +m4_include([opal/mca/btl/ofi/configure.m4]) m4_include([opal/mca/btl/openib/configure.m4]) m4_include([opal/mca/btl/portals4/configure.m4]) m4_include([opal/mca/btl/sm/configure.m4]) @@ -395,6 +397,7 @@ m4_include([orte/mca/ras/slurm/configure.m4]) m4_include([orte/mca/ras/tm/configure.m4]) m4_include([orte/mca/schizo/alps/configure.m4]) +m4_include([orte/mca/schizo/jsm/configure.m4]) m4_include([orte/mca/schizo/moab/configure.m4]) m4_include([orte/mca/schizo/singularity/configure.m4]) m4_include([orte/mca/schizo/slurm/configure.m4]) @@ -417,9 +420,13 @@ m4_include([ompi/mca/coll/hcoll/configure.m4]) m4_include([ompi/mca/coll/monitoring/configure.m4]) m4_include([ompi/mca/coll/portals4/configure.m4]) +m4_include([ompi/mca/coll/ucc/configure.m4]) m4_include([ompi/mca/crcp/bkmrk/configure.m4]) +m4_include([ompi/mca/fbtl/ime/configure.m4]) m4_include([ompi/mca/fbtl/posix/configure.m4]) m4_include([ompi/mca/fbtl/pvfs2/configure.m4]) +m4_include([ompi/mca/fs/gpfs/configure.m4]) +m4_include([ompi/mca/fs/ime/configure.m4]) m4_include([ompi/mca/fs/lustre/configure.m4]) m4_include([ompi/mca/fs/pvfs2/configure.m4]) m4_include([ompi/mca/fs/ufs/configure.m4]) @@ -429,6 +436,7 @@ m4_include([ompi/mca/mtl/portals4/configure.m4]) m4_include([ompi/mca/mtl/psm/configure.m4]) m4_include([ompi/mca/mtl/psm2/configure.m4]) +m4_include([ompi/mca/op/avx/configure.m4]) m4_include([ompi/mca/osc/monitoring/configure.m4]) m4_include([ompi/mca/osc/portals4/configure.m4]) m4_include([ompi/mca/osc/pt2pt/configure.m4]) @@ -449,6 +457,7 @@ m4_include([oshmem/mca/atomic/mxm/configure.m4]) m4_include([oshmem/mca/atomic/ucx/configure.m4]) m4_include([oshmem/mca/scoll/fca/configure.m4]) +m4_include([oshmem/mca/scoll/ucc/configure.m4]) m4_include([oshmem/mca/spml/ikrit/configure.m4]) m4_include([oshmem/mca/spml/ucx/configure.m4]) m4_include([oshmem/mca/sshmem/mmap/configure.m4]) diff -Nru openmpi-4.0.3/config/c_get_alignment.m4 openmpi-4.1.4/config/c_get_alignment.m4 --- openmpi-4.0.3/config/c_get_alignment.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/c_get_alignment.m4 2022-05-29 09:51:40.000000000 +0000 @@ -44,6 +44,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ]])], [AS_TR_SH([opal_cv_c_align_$1])=`cat conftestval`], [AC_MSG_WARN([*** Problem running configure test!]) diff -Nru openmpi-4.0.3/config/config.guess openmpi-4.1.4/config/config.guess --- openmpi-4.0.3/config/config.guess 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/config.guess 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2021 Free Software Foundation, Inc. -timestamp='2014-11-04' +timestamp='2021-01-25' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -27,19 +27,19 @@ # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess # # Please send patches to . -me=`echo "$0" | sed -e 's,.*/,,'` +me=$(echo "$0" | sed -e 's,.*/,,') usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -50,7 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -84,8 +84,6 @@ exit 1 fi -trap 'exit 1' 1 2 15 - # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a @@ -96,66 +94,89 @@ # Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039 + { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$driver" + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then +if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown +UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown +UNAME_RELEASE=$( (uname -r) 2>/dev/null) || UNAME_RELEASE=unknown +UNAME_SYSTEM=$( (uname -s) 2>/dev/null) || UNAME_SYSTEM=unknown +UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in +case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu + LIBC=unknown - eval $set_cc_for_build - cat <<-EOF > $dummy.c + set_cc_for_build + cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc - #else + #elif defined(__GLIBC__) LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -167,22 +188,32 @@ # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)) + case "$UNAME_MACHINE_ARCH" in + aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + earmv*) + arch=$(echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,') + endian=$(echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p') + machine="${arch}${endian}"-unknown + ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -197,117 +228,137 @@ os=netbsd ;; esac + # Determine ABI tags. + case "$UNAME_MACHINE_ARCH" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=$(echo "$UNAME_MACHINE_ARCH" | sed -e "$expr") + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=$(echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2) ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "$machine-${os}${release}${abi-}" exit ;; *:Bitrig:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//') + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//') + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//') + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" exit ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" + exit ;; + *:OS108:*:*) + echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:Sortix:*:*) + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Twizzler:*:*) + echo "$UNAME_MACHINE"-unknown-twizzler + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $3}') ;; *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $4}') ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + ALPHA_CPU_TYPE=$(/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1) case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + echo "$UNAME_MACHINE"-dec-osf"$(echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos + echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos + echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition @@ -319,7 +370,7 @@ echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} + echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos @@ -329,7 +380,7 @@ exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then + if test "$( (/bin/universe) 2>/dev/null)" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd @@ -342,69 +393,69 @@ echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in + case $(/usr/bin/uname -p) in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$UNAME_MACHINE"-ibm-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" exit ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-hal-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} + echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" + set_cc_for_build + SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then - SUN_ARCH="x86_64" + SUN_ARCH=x86_64 fi fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$SUN_ARCH"-pc-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris3"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" exit ;; sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in + case "$(/usr/bin/arch -k)" in Series*|S4*) - UNAME_RELEASE=`uname -v` + UNAME_RELEASE=$(uname -v) ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + echo sparc-sun-sunos"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/')" exit ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" exit ;; sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in + UNAME_RELEASE=$( (sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null) + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case "$(/bin/arch)" in sun3) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" ;; sun4) - echo sparc-sun-sunos${UNAME_RELEASE} + echo sparc-sun-sunos"$UNAME_RELEASE" ;; esac exit ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} + echo sparc-auspex-sunos"$UNAME_RELEASE" exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not @@ -415,44 +466,44 @@ # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} + echo m68k-milan-mint"$UNAME_RELEASE" exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} + echo m68k-hades-mint"$UNAME_RELEASE" exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} + echo m68k-unknown-mint"$UNAME_RELEASE" exit ;; m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} + echo m68k-apple-machten"$UNAME_RELEASE" exit ;; powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} + echo powerpc-apple-machten"$UNAME_RELEASE" exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} + echo mips-dec-ultrix"$UNAME_RELEASE" exit ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} + echo vax-dec-ultrix"$UNAME_RELEASE" exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} + echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { @@ -461,23 +512,23 @@ #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=$(echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p') && + SYSTEM_NAME=$("$dummy" "$dummyarg") && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} + echo mips-mips-riscos"$UNAME_RELEASE" exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax @@ -502,18 +553,18 @@ exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + UNAME_PROCESSOR=$(/usr/bin/uname -p) + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x then - echo m88k-dg-dgux${UNAME_RELEASE} + echo m88k-dg-dgux"$UNAME_RELEASE" else - echo m88k-dg-dguxbcs${UNAME_RELEASE} + echo m88k-dg-dguxbcs"$UNAME_RELEASE" fi else - echo i586-dg-dgux${UNAME_RELEASE} + echo i586-dg-dgux"$UNAME_RELEASE" fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) @@ -530,26 +581,26 @@ echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + echo mips-sgi-irix"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/g')" exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + exit ;; # Note that: echo "'$(uname -s)'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if test -x /usr/bin/oslevel ; then + IBM_REV=$(/usr/bin/oslevel) else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #include main() @@ -560,7 +611,7 @@ exit(0); } EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") then echo "$SYSTEM_NAME" else @@ -573,28 +624,28 @@ fi exit ;; *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_CPU_ID=$(/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }') + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi - if [ -x /usr/bin/lslpp ] ; then - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | - awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + if test -x /usr/bin/lslpp ; then + IBM_REV=$(/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/) else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx @@ -609,28 +660,28 @@ echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; + HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + if test -x /usr/bin/getconf; then + sc_cpu_version=$(/usr/bin/getconf SC_CPU_VERSION 2>/dev/null) + sc_kernel_bits=$(/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null) + case "$sc_cpu_version" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + case "$sc_kernel_bits" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include @@ -663,13 +714,13 @@ exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=$("$dummy") test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if test "$HP_ARCH" = hppa2.0w then - eval $set_cc_for_build + set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -680,23 +731,23 @@ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" exit ;; ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} + HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') + echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #include int main () @@ -721,11 +772,11 @@ exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) @@ -734,17 +785,17 @@ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk + if test -x /usr/sbin/sysversion ; then + echo "$UNAME_MACHINE"-unknown-osf1mk else - echo ${UNAME_MACHINE}-unknown-osf1 + echo "$UNAME_MACHINE"-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) @@ -769,130 +820,123 @@ echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + FUJITSU_PROC=$(uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz) + FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') + FUJITSU_REL=$(echo "$UNAME_RELEASE" | sed -e 's/ /_/') echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') + FUJITSU_REL=$(echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/') echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" exit ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} + echo sparc-unknown-bsdi"$UNAME_RELEASE" exit ;; *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" + exit ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=$(uname -p) + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabi + else + echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabihf + fi exit ;; *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in + UNAME_PROCESSOR=$(/usr/bin/uname -p) + case "$UNAME_PROCESSOR" in amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" exit ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin + echo "$UNAME_MACHINE"-pc-cygwin exit ;; *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 + echo "$UNAME_MACHINE"-pc-mingw64 exit ;; *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 + echo "$UNAME_MACHINE"-pc-mingw32 exit ;; *:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 + echo "$UNAME_MACHINE"-pc-msys exit ;; i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 + echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case "$UNAME_MACHINE" in x86) - echo i586-pc-interix${UNAME_RELEASE} + echo i586-pc-interix"$UNAME_RELEASE" exit ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} + echo x86_64-unknown-interix"$UNAME_RELEASE" exit ;; IA64) - echo ia64-unknown-interix${UNAME_RELEASE} + echo ia64-unknown-interix"$UNAME_RELEASE" exit ;; esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin + echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin + echo x86_64-pc-cygwin exit ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo powerpcle-unknown-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo "$(echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,')-unknown-$LIBC$(echo "$UNAME_RELEASE"|sed -e 's,/.*$,,')" exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo "$UNAME_MACHINE-unknown-$(echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]")$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')-$LIBC" exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix + *:Minix:*:*) + echo "$UNAME_MACHINE"-unknown-minix exit ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + case $(sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null) in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; @@ -902,129 +946,182 @@ EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) - eval $set_cc_for_build + set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + e2k:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + k1om:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el + MIPS_ENDIAN=el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} + MIPS_ENDIAN= #else - CPU= + MIPS_ENDIAN= #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI')" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; + mips64el:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-${LIBC} + echo or1k-unknown-linux-"$LIBC" exit ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} + echo sparc-unknown-linux-"$LIBC" exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} + echo hppa64-unknown-linux-"$LIBC" exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; + case $(grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2) in + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} + echo powerpc64-unknown-linux-"$LIBC" exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} + echo powerpc-unknown-linux-"$LIBC" exit ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} + echo powerpc64le-unknown-linux-"$LIBC" exit ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} + echo powerpcle-unknown-linux-"$LIBC" + exit ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI="$LIBC"x32 + fi + fi + echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI" exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1038,51 +1135,51 @@ # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx + echo "$UNAME_MACHINE"-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop + echo "$UNAME_MACHINE"-unknown-stop exit ;; i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos + echo "$UNAME_MACHINE"-unknown-atheos exit ;; i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable + echo "$UNAME_MACHINE"-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} + echo i386-unknown-lynxos"$UNAME_RELEASE" exit ;; i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp + echo "$UNAME_MACHINE"-pc-msdosdjgpp exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + i*86:*:4.*:*) + UNAME_REL=$(echo "$UNAME_RELEASE" | sed 's/\/MP$//') if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in + case $(/bin/uname -X | grep "^Machine") in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + UNAME_REL=$( (/bin/uname -X|grep Release|sed -e 's/.*= //')) (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 @@ -1090,9 +1187,9 @@ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv32 + echo "$UNAME_MACHINE"-pc-sysv32 fi exit ;; pc:*:*:*) @@ -1100,7 +1197,7 @@ # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that + # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; @@ -1112,9 +1209,9 @@ exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) @@ -1132,41 +1229,41 @@ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} + echo m68k-unknown-lynxos"$UNAME_RELEASE" exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} + echo sparc-unknown-lynxos"$UNAME_RELEASE" exit ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} + echo rs6000-unknown-lynxos"$UNAME_RELEASE" exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} + echo powerpc-unknown-lynxos"$UNAME_RELEASE" exit ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} + echo mips-dde-sysv"$UNAME_RELEASE" exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 @@ -1176,8 +1273,8 @@ exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 + UNAME_MACHINE=$( (uname -p) 2>/dev/null) + echo "$UNAME_MACHINE"-sni-sysv4 else echo ns32k-sni-sysv fi @@ -1197,23 +1294,23 @@ exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos + echo "$UNAME_MACHINE"-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} + echo m68k-apple-aux"$UNAME_RELEASE" exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + if test -d /usr/nec; then + echo mips-nec-sysv"$UNAME_RELEASE" else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv"$UNAME_RELEASE" fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. @@ -1232,77 +1329,97 @@ echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} + echo sx4-nec-superux"$UNAME_RELEASE" exit ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} + echo sx5-nec-superux"$UNAME_RELEASE" exit ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} + echo sx6-nec-superux"$UNAME_RELEASE" exit ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} + echo sx7-nec-superux"$UNAME_RELEASE" exit ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} + echo sx8-nec-superux"$UNAME_RELEASE" exit ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} + echo sx8r-nec-superux"$UNAME_RELEASE" + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux"$UNAME_RELEASE" exit ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} + echo powerpc-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" + exit ;; + arm64:Darwin:*:*) + echo aarch64-apple-darwin"$UNAME_RELEASE" exit ;; *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc - fi - if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi + UNAME_PROCESSOR=$(uname -p) + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc fi elif test "$UNAME_PROCESSOR" = i386 ; then - # Avoid executing cc on OS X 10.9, as it ships with a stub - # that puts up a graphical alert prompting to install - # developer tools. Any system running Mac OS X 10.7 or - # later (Darwin 11 and later) is required to have a 64-bit - # processor. This is not true of the ARM version of Darwin - # that Apple uses in portable devices. - UNAME_PROCESSOR=x86_64 + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=$(uname -p) + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; - NEO-?:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" exit ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} + echo nse-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux @@ -1311,18 +1428,19 @@ echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + # shellcheck disable=SC2154 + if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi - echo ${UNAME_MACHINE}-unknown-plan9 + echo "$UNAME_MACHINE"-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 @@ -1343,14 +1461,14 @@ echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux"$UNAME_RELEASE" exit ;; *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + echo "$UNAME_MACHINE"-unknown-dragonfly"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" exit ;; *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in + UNAME_MACHINE=$( (uname -p) 2>/dev/null) + case "$UNAME_MACHINE" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; @@ -1359,62 +1477,223 @@ echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + echo "$UNAME_MACHINE"-pc-skyos"$(echo "$UNAME_RELEASE" | sed -e 's/ .*$//')" exit ;; i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos + echo "$UNAME_MACHINE"-pc-rdos exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros + *:AROS:*:*) + echo "$UNAME_MACHINE"-unknown-aros exit ;; x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx + echo "$UNAME_MACHINE"-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; + *:Unleashed:*:*) + echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" exit ;; esac +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=$( (hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null); + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=$($dummy) && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 < in order to provide the needed -information to handle your system. +year=$(echo $timestamp | sed 's,-.*,,') +# shellcheck disable=SC2003 +if test "$(expr "$(date +%Y)" - "$year")" -lt 3 ; then + cat >&2 </dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} +uname -m = $( (uname -m) 2>/dev/null || echo unknown) +uname -r = $( (uname -r) 2>/dev/null || echo unknown) +uname -s = $( (uname -s) 2>/dev/null || echo unknown) +uname -v = $( (uname -v) 2>/dev/null || echo unknown) + +/usr/bin/uname -p = $( (/usr/bin/uname -p) 2>/dev/null) +/bin/uname -X = $( (/bin/uname -X) 2>/dev/null) + +hostinfo = $( (hostinfo) 2>/dev/null) +/bin/universe = $( (/bin/universe) 2>/dev/null) +/usr/bin/arch -k = $( (/usr/bin/arch -k) 2>/dev/null) +/bin/arch = $( (/bin/arch) 2>/dev/null) +/usr/bin/oslevel = $( (/usr/bin/oslevel) 2>/dev/null) +/usr/convex/getsysinfo = $( (/usr/convex/getsysinfo) 2>/dev/null) + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" EOF +fi exit 1 # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff -Nru openmpi-4.0.3/config/config.sub openmpi-4.1.4/config/config.sub --- openmpi-4.0.3/config/config.sub 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/config.sub 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2021 Free Software Foundation, Inc. -timestamp='2014-12-03' +timestamp='2021-01-08' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -33,7 +33,7 @@ # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -50,15 +50,14 @@ # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. -me=`echo "$0" | sed -e 's,.*/,,'` +me=$(echo "$0" | sed -e 's,.*/,,') usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -68,7 +67,7 @@ version="\ GNU config.sub ($timestamp) -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -90,12 +89,12 @@ - ) # Use stdin as input. break ;; -* ) - echo "$me: invalid option $1$help" + echo "$me: invalid option $1$help" >&2 exit 1 ;; *local*) # First pass through any local machine types. - echo $1 + echo "$1" exit ;; * ) @@ -111,1228 +110,1169 @@ exit 1;; esac -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 - ;; - -lynx*) - os=-lynxos +# Split fields of configuration type +# shellcheck disable=SC2162 +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac ;; - -psos*) - os=-psos + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac ;; esac -# Decode aliases for certain CPU-COMPANY combinations. +# Decode 1-component or ad-hoc basic machines case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | epiphany \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pyramid \ - | riscv32 | riscv64 \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | visium \ - | we32k \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - leon|leon[3-9]) - basic_machine=sparc-$basic_machine - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + op50n) + cpu=hppa1.1 + vendor=oki ;; - ms1) - basic_machine=mt-unknown + op60c) + cpu=hppa1.1 + vendor=oki ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown + ibm*) + cpu=i370 + vendor=ibm ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none + orion105) + cpu=clipper + vendor=highlevel ;; - xscaleeb) - basic_machine=armeb-unknown + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple ;; - - xscaleel) - basic_machine=armel-unknown + pmac | pmac-mpw) + cpu=powerpc + vendor=apple ;; - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pyramid-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | visium-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att + cpu=m68000 + vendor=att ;; 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux + cpu=we32k + vendor=att ;; bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec + cpu=powerpc + vendor=ibm + basic_os=cnk ;; decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 + cpu=pdp10 + vendor=dec + basic_os=tops10 ;; decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 + cpu=pdp10 + vendor=dec + basic_os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon + cpu=m68k + vendor=motorola ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 ;; encore | umax | mmax) - basic_machine=ns32k-encore + cpu=ns32k + vendor=encore ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} ;; fx2800) - basic_machine=i860-alliant + cpu=i860 + vendor=alliant ;; genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 + cpu=ns32k + vendor=ns ;; h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp + cpu=m68000 + vendor=hp ;; hp9k3[2-9][0-9]) - basic_machine=m68k-hp + cpu=m68k + vendor=hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm + cpu=hppa1.0 + vendor=hp ;; i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=sysv32 ;; i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=sysv4 ;; i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=sysv ;; i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} ;; iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) + cpu=mips + vendor=sgi + case $basic_os in + irix*) ;; *) - os=-irix4 + basic_os=irix4 ;; esac ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - leon-*|leon[3-9]-*) - basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + cpu=m68000 + vendor=convergent ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - moxiebox) - basic_machine=moxie-unknown - os=-moxiebox - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint ;; news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) ;; - -ns2*) - os=-nextstep2 + ns2*) + basic_os=nextstep2 ;; *) - os=-nextstep3 + basic_os=nextstep3 ;; esac ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem + cpu=np1 + vendor=gould ;; op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k + cpu=hppa1.1 + vendor=oki + basic_os=proelf ;; pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 ;; pbd) - basic_machine=sparc-tti + cpu=sparc + vendor=tti ;; pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + cpu=m68k + vendor=tti ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc + pc532) + cpu=ns32k + vendor=pc532 ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc + pn) + cpu=pn + vendor=gould ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + power) + cpu=power + vendor=ibm ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ps2) + cpu=i386 + vendor=ibm ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + rm[46]00) + cpu=mips + vendor=siemens ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + rtpc | rtpc-*) + cpu=romp + vendor=ibm ;; - pn) - basic_machine=pn-gould + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks ;; - power) basic_machine=power-ibm + tower | tower-32) + cpu=m68k + vendor=ncr ;; - ppc | ppcbe) basic_machine=powerpc-unknown + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + w65) + cpu=w65 + vendor=wdc ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + none) + cpu=none + vendor=none ;; - ppc64) basic_machine=powerpc64-unknown + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + leon-*|leon[3-9]-*) + cpu=sparc + vendor=$(echo "$basic_machine" | sed 's/-.*//') ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown + + *-*) + # shellcheck disable=SC2162 + IFS="-" read cpu vendor <&2 - exit 1 + # Recognize the canonical CPU types that are allowed with any + # company name. + case $cpu in + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | abacus \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ + | alphapca5[67] | alpha64pca5[67] \ + | am33_2.0 \ + | amdgcn \ + | arc | arceb \ + | arm | arm[lb]e | arme[lb] | armv* \ + | avr | avr32 \ + | asmjs \ + | ba \ + | be32 | be64 \ + | bfin | bpf | bs2000 \ + | c[123]* | c30 | [cjt]90 | c4x \ + | c8051 | clipper | craynv | csky | cydra \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | elxsi | epiphany \ + | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ + | h8300 | h8500 \ + | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i*86 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | loongarch32 | loongarch64 | loongarchx32 \ + | m32c | m32r | m32rle \ + | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ + | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ + | m88110 | m88k | maxq | mb | mcore | mep | metag \ + | microblaze | microblazeel \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64eb | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mmix \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nfp \ + | nios | nios2 | nios2eb | nios2el \ + | none | np1 | ns16k | ns32k | nvptx \ + | open8 \ + | or1k* \ + | or32 \ + | orion \ + | picochip \ + | pdp10 | pdp11 | pj | pjl | pn | power \ + | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ + | pru \ + | pyramid \ + | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ + | rl78 | romp | rs6000 | rx \ + | s390 | s390x \ + | score \ + | sh | shl \ + | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ + | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ + | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ + | spu \ + | tahoe \ + | thumbv7* \ + | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ + | tron \ + | ubicom32 \ + | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ + | vax \ + | visium \ + | w65 \ + | wasm32 | wasm64 \ + | we32k \ + | x86 | x86_64 | xc16x | xgate | xps100 \ + | xstormy16 | xtensa* \ + | ymp \ + | z8k | z80) + ;; + + *) + echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 + exit 1 + ;; + esac ;; esac # Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` +case $vendor in + digital*) + vendor=dec ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + commodore*) + vendor=cbm ;; *) ;; @@ -1340,200 +1280,213 @@ # Decode manufacturer-specific aliases for certain operating systems. -if [ x"$os" != x"" ] +if test x$basic_os != x then + +# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=$(echo $basic_os | sed -e 's|gnu/linux|gnu|') + ;; + os2-emx) + kernel=os2 + os=$(echo $basic_os | sed -e 's|os2-emx|emx|') + ;; + nto-qnx*) + kernel=nto + os=$(echo $basic_os | sed -e 's|nto-qnx|qnx|') + ;; + *-*) + # shellcheck disable=SC2162 + IFS="-" read kernel os <&2 - exit 1 + # No normalization, but not necessarily accepted, that comes below. ;; esac + else # Here we handle the default operating systems that come with various machines. @@ -1546,261 +1499,361 @@ # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. -case $basic_machine in +kernel= +case $cpu-$vendor in score-*) - os=-elf + os=elf ;; spu-*) - os=-elf + os=elf ;; *-acorn) - os=-riscix1.2 + os=riscix1.2 ;; arm*-rebel) - os=-linux + kernel=linux + os=gnu ;; arm*-semi) - os=-aout + os=aout ;; c4x-* | tic4x-*) - os=-coff + os=coff ;; c8051-*) - os=-elf + os=elf + ;; + clipper-intergraph) + os=clix ;; hexagon-*) - os=-elf + os=elf ;; tic54x-*) - os=-coff + os=coff ;; tic55x-*) - os=-coff + os=coff ;; tic6x-*) - os=-coff + os=coff ;; # This must come before the *-dec entry. pdp10-*) - os=-tops20 + os=tops20 ;; pdp11-*) - os=-none + os=none ;; *-dec | vax-*) - os=-ultrix4.2 + os=ultrix4.2 ;; m68*-apollo) - os=-domain + os=domain ;; i386-sun) - os=-sunos4.0.2 + os=sunos4.0.2 ;; m68000-sun) - os=-sunos3 + os=sunos3 ;; m68*-cisco) - os=-aout + os=aout ;; mep-*) - os=-elf + os=elf ;; mips*-cisco) - os=-elf + os=elf ;; mips*-*) - os=-elf + os=elf ;; or32-*) - os=-coff + os=coff ;; *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 + os=sysv3 ;; sparc-* | *-sun) - os=-sunos4.1.1 + os=sunos4.1.1 ;; - *-be) - os=-beos + pru-*) + os=elf ;; - *-haiku) - os=-haiku + *-be) + os=beos ;; *-ibm) - os=-aix + os=aix ;; *-knuth) - os=-mmixware + os=mmixware ;; *-wec) - os=-proelf + os=proelf ;; *-winbond) - os=-proelf + os=proelf ;; *-oki) - os=-proelf + os=proelf ;; *-hp) - os=-hpux + os=hpux ;; *-hitachi) - os=-hiux + os=hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv + os=sysv ;; *-cbm) - os=-amigaos + os=amigaos ;; *-dg) - os=-dgux + os=dgux ;; *-dolphin) - os=-sysv3 + os=sysv3 ;; m68k-ccur) - os=-rtu + os=rtu ;; m88k-omron*) - os=-luna + os=luna ;; - *-next ) - os=-nextstep + *-next) + os=nextstep ;; *-sequent) - os=-ptx + os=ptx ;; *-crds) - os=-unos + os=unos ;; *-ns) - os=-genix + os=genix ;; i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 + os=mvs ;; *-gould) - os=-sysv + os=sysv ;; *-highlevel) - os=-bsd + os=bsd ;; *-encore) - os=-bsd + os=bsd ;; *-sgi) - os=-irix + os=irix ;; *-siemens) - os=-sysv4 + os=sysv4 ;; *-masscomp) - os=-rtu + os=rtu ;; f30[01]-fujitsu | f700-fujitsu) - os=-uxpv + os=uxpv ;; *-rom68k) - os=-coff + os=coff ;; *-*bug) - os=-coff + os=coff ;; *-apple) - os=-macos + os=macos ;; *-atari*) - os=-mint + os=mint + ;; + *-wrs) + os=vxworks ;; *) - os=-none + os=none ;; esac + fi +# Now, validate our (potentially fixed-up) OS. +case $os in + # Sometimes we do "kernel-libc", so those need to count as OSes. + musl* | newlib* | uclibc*) + ;; + # Likewise for "kernel-abi" + eabi* | gnueabi*) + ;; + # VxWorks passes extra cpu info in the 4th filed. + simlinux | simwindows | spe) + ;; + # Now accept the basic system types. + # The portable systems comes first. + # Each alternative MUST end in a * to match a version number. + gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ + | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ + | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ + | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ + | hiux* | abug | nacl* | netware* | windows* \ + | os9* | macos* | osx* | ios* \ + | mpw* | magic* | mmixware* | mon960* | lnews* \ + | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ + | aos* | aros* | cloudabi* | sortix* | twizzler* \ + | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ + | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ + | mirbsd* | netbsd* | dicos* | openedition* | ose* \ + | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \ + | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ + | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ + | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ + | udi* | lites* | ieee* | go32* | aux* | hcos* \ + | chorusrdb* | cegcc* | glidix* \ + | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ + | midipix* | mingw32* | mingw64* | mint* \ + | uxpv* | beos* | mpeix* | udk* | moxiebox* \ + | interix* | uwin* | mks* | rhapsody* | darwin* \ + | openstep* | oskit* | conix* | pw32* | nonstopux* \ + | storm-chaos* | tops10* | tenex* | tops20* | its* \ + | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ + | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ + | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ + | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*) + ;; + # This one is extra strict with allowed versions + sco3.2v2 | sco3.2v[4-9]* | sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + ;; + none) + ;; + *) + echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) vendor=acorn ;; - -sunos*) + *-sunos*) vendor=sun ;; - -cnk*|-aix*) + *-cnk* | *-aix*) vendor=ibm ;; - -beos*) + *-beos*) vendor=be ;; - -hpux*) + *-hpux*) vendor=hp ;; - -mpeix*) + *-mpeix*) vendor=hp ;; - -hiux*) + *-hiux*) vendor=hitachi ;; - -unos*) + *-unos*) vendor=crds ;; - -dgux*) + *-dgux*) vendor=dg ;; - -luna*) + *-luna*) vendor=omron ;; - -genix*) + *-genix*) vendor=ns ;; - -mvs* | -opened*) + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) vendor=ibm ;; - -os400*) + s390-* | s390x-*) vendor=ibm ;; - -ptx*) + *-ptx*) vendor=sequent ;; - -tpf*) + *-tpf*) vendor=ibm ;; - -vxsim* | -vxworks* | -windiss*) + *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; - -aux*) + *-aux*) vendor=apple ;; - -hms*) + *-hms*) vendor=hitachi ;; - -mpw* | -macos*) + *-mpw* | *-macos*) vendor=apple ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; - -vos*) + *-vos*) vendor=stratus ;; esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac -echo $basic_machine$os +echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff -Nru openmpi-4.0.3/config/from-savannah/upstream-config.guess openmpi-4.1.4/config/from-savannah/upstream-config.guess --- openmpi-4.0.3/config/from-savannah/upstream-config.guess 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/config/from-savannah/upstream-config.guess 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,1700 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2021 Free Software Foundation, Inc. + +timestamp='2021-01-25' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess +# +# Please send patches to . + + +me=$(echo "$0" | sed -e 's,.*/,,') + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2021 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039 + { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$driver" + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if test -f /.attbin/uname ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown +UNAME_RELEASE=$( (uname -r) 2>/dev/null) || UNAME_RELEASE=unknown +UNAME_SYSTEM=$( (uname -s) 2>/dev/null) || UNAME_SYSTEM=unknown +UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown + +case "$UNAME_SYSTEM" in +Linux|GNU|GNU/*) + LIBC=unknown + + set_cc_for_build + cat <<-EOF > "$dummy.c" + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #elif defined(__GLIBC__) + LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif + #endif + EOF + eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + fi + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)) + case "$UNAME_MACHINE_ARCH" in + aarch64eb) machine=aarch64_be-unknown ;; + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=$(echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,') + endian=$(echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p') + machine="${arch}${endian}"-unknown + ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case "$UNAME_MACHINE_ARCH" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=$(echo "$UNAME_MACHINE_ARCH" | sed -e "$expr") + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "$UNAME_VERSION" in + Debian*) + release='-gnu' + ;; + *) + release=$(echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2) + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "$machine-${os}${release}${abi-}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//') + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//') + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//') + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" + exit ;; + *:ekkoBSD:*:*) + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" + exit ;; + *:SolidBSD:*:*) + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" + exit ;; + *:OS108:*:*) + echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE" + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:MirBSD:*:*) + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:Sortix:*:*) + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Twizzler:*:*) + echo "$UNAME_MACHINE"-unknown-twizzler + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $3}') + ;; + *5.*) + UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $4}') + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=$(/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1) + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo "$UNAME_MACHINE"-dec-osf"$(echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)" + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix"$UNAME_RELEASE" + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "$( (/bin/universe) 2>/dev/null)" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case $(/usr/bin/uname -p) in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo "$UNAME_MACHINE"-ibm-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux"$UNAME_RELEASE" + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo "$SUN_ARCH"-pc-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" + exit ;; + sun4*:SunOS:*:*) + case "$(/usr/bin/arch -k)" in + Series*|S4*) + UNAME_RELEASE=$(uname -v) + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/')" + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos"$UNAME_RELEASE" + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=$( (sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null) + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case "$(/bin/arch)" in + sun3) + echo m68k-sun-sunos"$UNAME_RELEASE" + ;; + sun4) + echo sparc-sun-sunos"$UNAME_RELEASE" + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos"$UNAME_RELEASE" + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint"$UNAME_RELEASE" + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint"$UNAME_RELEASE" + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint"$UNAME_RELEASE" + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten"$UNAME_RELEASE" + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten"$UNAME_RELEASE" + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix"$UNAME_RELEASE" + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix"$UNAME_RELEASE" + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix"$UNAME_RELEASE" + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=$(echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p') && + SYSTEM_NAME=$("$dummy" "$dummyarg") && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos"$UNAME_RELEASE" + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=$(/usr/bin/uname -p) + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 + then + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x + then + echo m88k-dg-dgux"$UNAME_RELEASE" + else + echo m88k-dg-dguxbcs"$UNAME_RELEASE" + fi + else + echo i586-dg-dgux"$UNAME_RELEASE" + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/g')" + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'$(uname -s)'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if test -x /usr/bin/oslevel ; then + IBM_REV=$(/usr/bin/oslevel) + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=$(/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }') + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if test -x /usr/bin/lslpp ; then + IBM_REV=$(/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/) + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if test -x /usr/bin/getconf; then + sc_cpu_version=$(/usr/bin/getconf SC_CPU_VERSION 2>/dev/null) + sc_kernel_bits=$(/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null) + case "$sc_cpu_version" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "$sc_kernel_bits" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=$("$dummy") + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if test "$HP_ARCH" = hppa2.0w + then + set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') + echo ia64-hp-hpux"$HPUX_REV" + exit ;; + 3050*:HI-UX:*:*) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if test -x /usr/sbin/sysversion ; then + echo "$UNAME_MACHINE"-unknown-osf1mk + else + echo "$UNAME_MACHINE"-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=$(uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz) + FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') + FUJITSU_REL=$(echo "$UNAME_RELEASE" | sed -e 's/ /_/') + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') + FUJITSU_REL=$(echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/') + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi"$UNAME_RELEASE" + exit ;; + *:BSD/OS:*:*) + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" + exit ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=$(uname -p) + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabi + else + echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabihf + fi + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=$(/usr/bin/uname -p) + case "$UNAME_PROCESSOR" in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" + exit ;; + i*:CYGWIN*:*) + echo "$UNAME_MACHINE"-pc-cygwin + exit ;; + *:MINGW64*:*) + echo "$UNAME_MACHINE"-pc-mingw64 + exit ;; + *:MINGW*:*) + echo "$UNAME_MACHINE"-pc-mingw32 + exit ;; + *:MSYS*:*) + echo "$UNAME_MACHINE"-pc-msys + exit ;; + i*:PW*:*) + echo "$UNAME_MACHINE"-pc-pw32 + exit ;; + *:Interix*:*) + case "$UNAME_MACHINE" in + x86) + echo i586-pc-interix"$UNAME_RELEASE" + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix"$UNAME_RELEASE" + exit ;; + IA64) + echo ia64-unknown-interix"$UNAME_RELEASE" + exit ;; + esac ;; + i*:UWIN*:*) + echo "$UNAME_MACHINE"-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-pc-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" + exit ;; + *:GNU:*:*) + # the GNU system + echo "$(echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,')-unknown-$LIBC$(echo "$UNAME_RELEASE"|sed -e 's,/.*$,,')" + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo "$UNAME_MACHINE-unknown-$(echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]")$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')-$LIBC" + exit ;; + *:Minix:*:*) + echo "$UNAME_MACHINE"-unknown-minix + exit ;; + aarch64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + alpha:Linux:*:*) + case $(sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null) in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arm*:Linux:*:*) + set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi + else + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + cris:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + crisv32:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + e2k:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + frv:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + hexagon:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:Linux:*:*) + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + exit ;; + ia64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + k1om:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m32r*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m68*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" + #undef CPU + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + MIPS_ENDIAN=el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + MIPS_ENDIAN= + #else + MIPS_ENDIAN= + #endif + #endif +EOF + eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI')" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } + ;; + mips64el:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-"$LIBC" + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-"$LIBC" + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-"$LIBC" + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case $(grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2) in + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-"$LIBC" + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-"$LIBC" + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-"$LIBC" + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-"$LIBC" + exit ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" + exit ;; + sh64*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sh*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + tile*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + vax:Linux:*:*) + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" + exit ;; + x86_64:Linux:*:*) + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI="$LIBC"x32 + fi + fi + echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI" + exit ;; + xtensa*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo "$UNAME_MACHINE"-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo "$UNAME_MACHINE"-unknown-stop + exit ;; + i*86:atheos:*:*) + echo "$UNAME_MACHINE"-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo "$UNAME_MACHINE"-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos"$UNAME_RELEASE" + exit ;; + i*86:*DOS:*:*) + echo "$UNAME_MACHINE"-pc-msdosdjgpp + exit ;; + i*86:*:4.*:*) + UNAME_REL=$(echo "$UNAME_RELEASE" | sed 's/\/MP$//') + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case $(/bin/uname -X | grep "^Machine") in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=$(sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=$( (/bin/uname -X|grep Release|sed -e 's/.*= //')) + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos"$UNAME_RELEASE" + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos"$UNAME_RELEASE" + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv"$UNAME_RELEASE" + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=$( (uname -p) 2>/dev/null) + echo "$UNAME_MACHINE"-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo "$UNAME_MACHINE"-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux"$UNAME_RELEASE" + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if test -d /usr/nec; then + echo mips-nec-sysv"$UNAME_RELEASE" + else + echo mips-unknown-sysv"$UNAME_RELEASE" + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux"$UNAME_RELEASE" + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux"$UNAME_RELEASE" + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux"$UNAME_RELEASE" + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux"$UNAME_RELEASE" + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux"$UNAME_RELEASE" + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody"$UNAME_RELEASE" + exit ;; + *:Rhapsody:*:*) + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" + exit ;; + arm64:Darwin:*:*) + echo aarch64-apple-darwin"$UNAME_RELEASE" + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=$(uname -p) + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE + fi + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=$(uname -p) + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + # shellcheck disable=SC2154 + if test "$cputype" = 386; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo "$UNAME_MACHINE"-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux"$UNAME_RELEASE" + exit ;; + *:DragonFly:*:*) + echo "$UNAME_MACHINE"-unknown-dragonfly"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=$( (uname -p) 2>/dev/null) + case "$UNAME_MACHINE" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo "$UNAME_MACHINE"-pc-skyos"$(echo "$UNAME_RELEASE" | sed -e 's/ .*$//')" + exit ;; + i*86:rdos:*:*) + echo "$UNAME_MACHINE"-pc-rdos + exit ;; + *:AROS:*:*) + echo "$UNAME_MACHINE"-unknown-aros + exit ;; + x86_64:VMkernel:*:*) + echo "$UNAME_MACHINE"-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; + *:Unleashed:*:*) + echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" + exit ;; +esac + +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=$( (hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null); + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=$($dummy) && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 <&2 </dev/null || echo unknown) +uname -r = $( (uname -r) 2>/dev/null || echo unknown) +uname -s = $( (uname -s) 2>/dev/null || echo unknown) +uname -v = $( (uname -v) 2>/dev/null || echo unknown) + +/usr/bin/uname -p = $( (/usr/bin/uname -p) 2>/dev/null) +/bin/uname -X = $( (/bin/uname -X) 2>/dev/null) + +hostinfo = $( (hostinfo) 2>/dev/null) +/bin/universe = $( (/bin/universe) 2>/dev/null) +/usr/bin/arch -k = $( (/usr/bin/arch -k) 2>/dev/null) +/bin/arch = $( (/bin/arch) 2>/dev/null) +/usr/bin/oslevel = $( (/usr/bin/oslevel) 2>/dev/null) +/usr/convex/getsysinfo = $( (/usr/convex/getsysinfo) 2>/dev/null) + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" +EOF +fi + +exit 1 + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff -Nru openmpi-4.0.3/config/from-savannah/upstream-config.sub openmpi-4.1.4/config/from-savannah/upstream-config.sub --- openmpi-4.0.3/config/from-savannah/upstream-config.sub 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/config/from-savannah/upstream-config.sub 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,1860 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2021 Free Software Foundation, Inc. + +timestamp='2021-01-08' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=$(echo "$0" | sed -e 's,.*/,,') + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2021 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Split fields of configuration type +# shellcheck disable=SC2162 +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=$(echo "$basic_machine" | sed 's/-.*//') + ;; + + *-*) + # shellcheck disable=SC2162 + IFS="-" read cpu vendor <&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=$(echo $basic_os | sed -e 's|gnu/linux|gnu|') + ;; + os2-emx) + kernel=os2 + os=$(echo $basic_os | sed -e 's|os2-emx|emx|') + ;; + nto-qnx*) + kernel=nto + os=$(echo $basic_os | sed -e 's|nto-qnx|qnx|') + ;; + *-*) + # shellcheck disable=SC2162 + IFS="-" read kernel os <&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) + vendor=acorn + ;; + *-sunos*) + vendor=sun + ;; + *-cnk* | *-aix*) + vendor=ibm + ;; + *-beos*) + vendor=be + ;; + *-hpux*) + vendor=hp + ;; + *-mpeix*) + vendor=hp + ;; + *-hiux*) + vendor=hitachi + ;; + *-unos*) + vendor=crds + ;; + *-dgux*) + vendor=dg + ;; + *-luna*) + vendor=omron + ;; + *-genix*) + vendor=ns + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) + vendor=sequent + ;; + *-tpf*) + vendor=ibm + ;; + *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; + *-aux*) + vendor=apple + ;; + *-hms*) + vendor=hitachi + ;; + *-mpw* | *-macos*) + vendor=apple + ;; + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; + *-vos*) + vendor=stratus + ;; + esac + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff -Nru openmpi-4.0.3/config/getdate.sh openmpi-4.1.4/config/getdate.sh --- openmpi-4.0.3/config/getdate.sh 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/config/getdate.sh 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,14 @@ +#!/bin/sh +# +# Copyright (c) 2017 Research Organization for Information Science +# and Technology (RIST). All rights reserved. +# Copyright (c) 2020 Cisco Systems, Inc. All rights reserved. + +# Provide a way to override build date for reproducible build results +# See https://reproducible-builds.org/ for why this is good. + +# There are several different flavors of date(1) out there. +# Try a few different CLI options for date(1) to see which one works. + +SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(date +%s)}" +date -u -d "@$SOURCE_DATE_EPOCH" "$@" 2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" "$@" 2>/dev/null || date -u "$@" diff -Nru openmpi-4.0.3/config/Makefile.am openmpi-4.1.4/config/Makefile.am --- openmpi-4.0.3/config/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. -# Copyright (c) 2006-2018 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2006-2021 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2010 Oracle and/or its affiliates. All rights # reserved. # Copyright (c) 2014-2015 Intel, Inc. All rights reserved. @@ -29,7 +29,10 @@ ltmain_pgi_tp.diff \ opal_mca_priority_sort.pl \ find_common_syms \ - make_manpage.pl + getdate.sh \ + make_manpage.pl \ + from-savannah/upstream-config.guess \ + from-savannah/upstream-config.sub maintainer-clean-local: rm -f opal_get_version.sh diff -Nru openmpi-4.0.3/config/Makefile.in openmpi-4.1.4/config/Makefile.in --- openmpi-4.0.3/config/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -25,7 +25,7 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. -# Copyright (c) 2006-2018 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2006-2021 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2010 Oracle and/or its affiliates. All rights # reserved. # Copyright (c) 2014-2015 Intel, Inc. All rights reserved. @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -568,6 +581,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1388,6 +1404,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1420,9 +1440,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1443,6 +1472,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1527,9 +1557,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1590,6 +1617,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1603,6 +1633,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ @@ -1636,7 +1670,10 @@ ltmain_pgi_tp.diff \ opal_mca_priority_sort.pl \ find_common_syms \ - make_manpage.pl + getdate.sh \ + make_manpage.pl \ + from-savannah/upstream-config.guess \ + from-savannah/upstream-config.sub all: all-am diff -Nru openmpi-4.0.3/config/ompi_check_gpfs.m4 openmpi-4.1.4/config/ompi_check_gpfs.m4 --- openmpi-4.0.3/config/ompi_check_gpfs.m4 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/config/ompi_check_gpfs.m4 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,69 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2018 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2006 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2018 University of Houston. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OMPI_CHECK_GPFS(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if GPFS support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found +AC_DEFUN([OMPI_CHECK_GPFS],[ + + check_gpfs_CPPFLAGS= + check_gpfs_LDFLAGS= + check_gpfs_LIBS= + + check_gpfs_save_LIBS="$LIBS" + check_gpfs_save_LDFLAGS="$LDFLAGS" + check_gpfs_save_CPPFLAGS="$CPPFLAGS" + + check_gpfs_configuration="none" + ompi_check_gpfs_happy="yes" + + # Get some configuration information + AC_ARG_WITH([gpfs], + [AC_HELP_STRING([--with-gpfs(=DIR)], + [Build Gpfs support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])]) + OPAL_CHECK_WITHDIR([gpfs], [$with_gpfs], [include/gpfs.h]) + + AS_IF([test "$with_gpfs" = "no"], + [ompi_check_gpfs_happy="no"], + [AS_IF([test -z "$with_gpfs" || test "$with_gpfs" = "yes"], + [ompi_check_gpfs_dir="/usr"], + [ompi_check_gpfs_dir=$with_gpfs]) + + if test -e "$ompi_check_gpfs_dir/lib64" ; then + ompi_check_gpfs_libdir="$ompi_check_gpfs_dir/lib64" + else + ompi_check_gpfs_libdir="$ompi_check_gpfs_dir/lib" + fi + + # Add correct -I and -L flags + OPAL_CHECK_PACKAGE([$1], [gpfs.h], [gpfs], [gpfs_lib_init], + [], [$ompi_check_gpfs_dir], [$ompi_check_gpfs_libdir], + [ompi_check_gpfs_happy="yes"], + [ompi_check_gpfs_happy="no"]) + ]) + + AS_IF([test "$ompi_check_gpfs_happy" = "yes"], + [$2], + [AS_IF([test ! -z "$with_gpfs" && test "$with_gpfs" != "no"], + [AC_MSG_ERROR([GPFS support requested but not found. Aborting])]) + $3]) +]) diff -Nru openmpi-4.0.3/config/ompi_check_ime.m4 openmpi-4.1.4/config/ompi_check_ime.m4 --- openmpi-4.0.3/config/ompi_check_ime.m4 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/config/ompi_check_ime.m4 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,62 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2018 DataDirect Networks. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OMPI_CHECK_IME(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if IME support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found +AC_DEFUN([OMPI_CHECK_IME],[ + + check_ime_CPPFLAGS= + check_ime_LDFLAGS= + check_ime_LIBS= + + check_ime_configuration="none" + ompi_check_ime_happy="yes" + + + # Get some configuration information + AC_ARG_WITH([ime], + [AC_HELP_STRING([--with-ime(=DIR)], + [Build IME support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])]) + OPAL_CHECK_WITHDIR([ime], [$with_ime], [include/ime_native.h]) + + AS_IF([test "$with_ime" = "no"], + [ompi_check_ime_happy="no"], + [AS_IF([test -z "$with_ime"], + [ompi_check_ime_dir="/usr/local"], + [ompi_check_ime_dir=$with_ime]) + + if test -e "$ompi_check_ime_dir/lib64" ; then + ompi_check_ime_libdir="$ompi_check_ime_dir/lib64" + else + ompi_check_ime_libdir="$ompi_check_ime_dir/lib" + fi + + # Add correct -I and -L flags + OPAL_CHECK_PACKAGE([$1], [ime_native.h], [im_client], [ime_client_native2_init], [], + [$ompi_check_ime_dir], [$ompi_check_ime_libdir], + [ompi_check_ime_happy="yes"], + [OPAL_CHECK_PACKAGE([$1], [ime_native.h], [im_client], [ime_native_init], [], + [$ompi_check_ime_dir], [$ompi_check_ime_libdir], + [ompi_check_ime_happy="yes"], + [ompi_check_ime_happy="no"]) + ]) + ]) + + AS_IF([test "$ompi_check_ime_happy" = "yes"], + [$2], + [AS_IF([test ! -z "$with_ime" && test "$with_ime" != "no"], + [echo IME support not found]) + $3]) + + ]) + diff -Nru openmpi-4.0.3/config/ompi_check_lustre.m4 openmpi-4.1.4/config/ompi_check_lustre.m4 --- openmpi-4.0.3/config/ompi_check_lustre.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/ompi_check_lustre.m4 2022-05-29 09:51:40.000000000 +0000 @@ -12,8 +12,10 @@ dnl All rights reserved. dnl Copyright (c) 2009-2017 Cisco Systems, Inc. All rights reserved dnl Copyright (c) 2008-2018 University of Houston. All rights reserved. -dnl Copyright (c) 2015 Research Organization for Information Science -dnl and Technology (RIST). All rights reserved. +dnl Copyright (c) 2015-2018 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl Copyright (c) 2020 Triad National Security, LLC. All rights +dnl reserved. dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow @@ -36,7 +38,6 @@ check_lustre_save_LDFLAGS="$LDFLAGS" check_lustre_save_CPPFLAGS="$CPPFLAGS" - check_lustre_configuration="none" ompi_check_lustre_happy="yes" # Get some configuration information @@ -46,25 +47,28 @@ OPAL_CHECK_WITHDIR([lustre], [$with_lustre], [include/lustre/lustreapi.h]) AS_IF([test "$with_lustre" = "no"], - [ompi_check_lustre_happy="no"], - [AS_IF([test -z "$with_lustre" || test "$with_lustre" = "yes"], - [ompi_check_lustre_dir="/usr"], - [ompi_check_lustre_dir=$with_lustre]) - - if test -e "$ompi_check_lustre_dir/lib64" ; then - ompi_check_lustre_libdir="$ompi_check_lustre_dir/lib64" - else - ompi_check_lustre_libdir="$ompi_check_lustre_dir/lib" - fi - - # Add correct -I and -L flags - OPAL_CHECK_PACKAGE([$1], [lustre/lustreapi.h], [lustreapi], [llapi_file_create], + [ompi_check_lustre_happy=no]) + + AS_IF([test "$ompi_check_lustre_happy" != "no" ], + [AC_MSG_CHECKING([looking for lustre libraries and header files in]) + AS_IF([test "$with_lustre" != "yes"], + [ompi_check_lustre_dir=$with_lustre + AC_MSG_RESULT([($ompi_check_lustre_dir)])], + [AC_MSG_RESULT([(default search paths)])]) + AS_IF([test -n "$with_lustre_libdir" && \ + test "$with_lustre_libdir" != "yes"], + [ompi_check_lustre_libdir=$with_lustre_libdir]) + ]) + + AS_IF([test "$ompi_check_lustre_happy" != "no" ], + [OPAL_CHECK_PACKAGE([$1], [lustre/lustreapi.h], [lustreapi], [llapi_file_create], [], [$ompi_check_lustre_dir], [$ompi_check_lustre_libdir], [ompi_check_lustre_happy="yes"], - [ompi_check_lustre_happy="no"]) + [ompi_check_lustre_happy="no"])]) - AC_MSG_CHECKING([for required lustre data structures]) - cat > conftest.c < conftest.c <])] + ) + + CPPFLAGS="$ompi_check_psm2_$1_save_CPPFLAGS" + LDFLAGS="$ompi_check_psm2_$1_save_LDFLAGS" + LIBS="$ompi_check_psm2_$1_save_LIBS" + + OPAL_SUMMARY_ADD([[Transports]],[[Intel Omnipath (PSM2)]],[$1],[$ompi_check_psm2_happy]) fi AS_IF([test "$ompi_check_psm2_happy" = "yes"], diff -Nru openmpi-4.0.3/config/ompi_check_ucc.m4 openmpi-4.1.4/config/ompi_check_ucc.m4 --- openmpi-4.0.3/config/ompi_check_ucc.m4 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/config/ompi_check_ucc.m4 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,73 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2021 Mellanox Technologies. All rights reserved. +dnl Copyright (c) 2013-2021 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OMPI_CHECK_UCC(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if ucc support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found +AC_DEFUN([OMPI_CHECK_UCC],[ + OPAL_VAR_SCOPE_PUSH([ompi_check_ucc_dir ompi_check_ucc_happy CPPFLAGS_save LDFLAGS_save LIBS_save]) + + AC_ARG_WITH([ucc], + [AS_HELP_STRING([--with-ucc(=DIR)], + [Build UCC (Unified Collective Communication)])]) + + AS_IF([test "$with_ucc" != "no"], + [AS_IF([test -n "$with_ucc" && test "$with_ucc" != "yes"], + [ompi_check_ucc_dir=$with_ucc]) + + CPPFLAGS_save=$CPPFLAGS + LDFLAGS_save=$LDFLAGS + LIBS_save=$LIBS + + OPAL_LOG_MSG([$1_CPPFLAGS : $$1_CPPFLAGS], 1) + OPAL_LOG_MSG([$1_LDFLAGS : $$1_LDFLAGS], 1) + OPAL_LOG_MSG([$1_LIBS : $$1_LIBS], 1) + + OPAL_CHECK_PACKAGE([$1], + [ucc/api/ucc.h], + [ucc], + [ucc_init_version], + [], + [$ompi_check_ucc_dir], + [], + [ompi_check_ucc_happy="yes"], + [ompi_check_ucc_happy="no"]) + + AS_IF([test "$ompi_check_ucc_happy" = "yes"], + [ + CPPFLAGS=$coll_ucc_CPPFLAGS + LDFLAGS=$coll_ucc_LDFLAGS + LIBS=$coll_ucc_LIBS + AC_CHECK_FUNCS(ucc_comm_free, [], []) + ], + []) + + CPPFLAGS=$CPPFLAGS_save + LDFLAGS=$LDFLAGS_save + LIBS=$LIBS_save], + [ompi_check_ucc_happy=no]) + + AS_IF([test "$ompi_check_ucc_happy" = "yes" && test "$enable_progress_threads" = "yes"], + [AC_MSG_WARN([ucc driver does not currently support progress threads. Disabling UCC.]) + ompi_check_ucc_happy="no"]) + + AS_IF([test "$ompi_check_ucc_happy" = "yes"], + [$2], + [AS_IF([test -n "$with_ucc" && test "$with_ucc" != "no"], + [AC_MSG_ERROR([UCC support requested but not found. Aborting])]) + $3]) + + OPAL_VAR_SCOPE_POP +]) diff -Nru openmpi-4.0.3/config/ompi_check_ucx.m4 openmpi-4.1.4/config/ompi_check_ucx.m4 --- openmpi-4.0.3/config/ompi_check_ucx.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/ompi_check_ucx.m4 2022-05-29 09:51:40.000000000 +0000 @@ -104,30 +104,61 @@ old_CPPFLAGS="$CPPFLAGS" AS_IF([test -n "$ompi_check_ucx_dir"], [CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include"]) - AC_CHECK_DECLS([ucp_tag_send_nbr], - [AC_DEFINE([HAVE_UCP_TAG_SEND_NBR],[1], - [have ucp_tag_send_nbr()])], [], - [#include ]) - AC_CHECK_DECLS([ucp_ep_flush_nb, ucp_worker_flush_nb, - ucp_request_check_status, ucp_put_nb, ucp_get_nb], - [], [], - [#include ]) - AC_CHECK_DECLS([ucm_test_events], - [], [], - [#include ]) - AC_CHECK_DECLS([UCP_ATOMIC_POST_OP_AND, - UCP_ATOMIC_POST_OP_OR, - UCP_ATOMIC_POST_OP_XOR, - UCP_ATOMIC_FETCH_OP_FAND, - UCP_ATOMIC_FETCH_OP_FOR, - UCP_ATOMIC_FETCH_OP_FXOR, - UCP_PARAM_FIELD_ESTIMATED_NUM_PPN], - [], [], - [#include ]) - AC_CHECK_DECLS([UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS], - [AC_DEFINE([HAVE_UCP_WORKER_ADDRESS_FLAGS], [1], - [have worker address attribute])], [], - [#include ]) + # Turn off UCX version v1.8 due to issue #8321 + AC_MSG_CHECKING([UCX version]) + AC_PREPROC_IFELSE([AC_LANG_PROGRAM([#include + #if (UCP_API_MAJOR == 1) && (UCP_API_MINOR == 8) + #error "Invalid version" + #endif], [])], + [AC_MSG_RESULT([ok (not 1.8.x)])], + [AC_MSG_RESULT([bad (1.8.x)]) + AC_MSG_WARN([UCX support skipped because version 1.8.x was found, which has a known catastrophic issue.]) + AC_MSG_WARN([Please upgrade to UCX version 1.9 or higher.]) + ompi_check_ucx_happy=no]) + AS_IF([test "$ompi_check_ucx_happy" = yes], + [ + AC_CHECK_DECLS([ucp_tag_send_nbr], + [AC_DEFINE([HAVE_UCP_TAG_SEND_NBR],[1], + [have ucp_tag_send_nbr()])], [], + [#include ]) + AC_CHECK_DECLS([ucp_ep_flush_nb, ucp_worker_flush_nb, + ucp_request_check_status, ucp_put_nb, ucp_get_nb, + ucp_put_nbx, ucp_get_nbx, ucp_atomic_op_nbx, + ucp_ep_flush_nbx], + [], [], + [#include ]) + AC_CHECK_DECLS([ucm_test_events, + ucm_test_external_events], + [], [], + [#include ]) + AC_CHECK_DECLS([UCP_ATOMIC_POST_OP_AND, + UCP_ATOMIC_POST_OP_OR, + UCP_ATOMIC_POST_OP_XOR, + UCP_ATOMIC_FETCH_OP_FAND, + UCP_ATOMIC_FETCH_OP_FOR, + UCP_ATOMIC_FETCH_OP_FXOR, + UCP_PARAM_FIELD_ESTIMATED_NUM_PPN, + UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK, + UCP_OP_ATTR_FLAG_MULTI_SEND], + [], [], + [#include ]) + AC_CHECK_DECLS([UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS], + [AC_DEFINE([HAVE_UCP_WORKER_ADDRESS_FLAGS], [1], + [have worker address attribute])], [], + [#include ]) + AC_CHECK_DECLS([UCP_ATTR_FIELD_MEMORY_TYPES], + [AC_DEFINE([HAVE_UCP_ATTR_MEMORY_TYPES], [1], + [have memory types attribute])], [], + [#include ]) + AC_CHECK_DECLS([ucp_tag_send_nbx, + ucp_tag_send_sync_nbx, + ucp_tag_recv_nbx], + [], [], + [#include ]) + AC_CHECK_TYPES([ucp_request_param_t], + [], [], + [[#include ]]) + ]) CPPFLAGS=$old_CPPFLAGS OPAL_SUMMARY_ADD([[Transports]],[[Open UCX]],[$1],[$ompi_check_ucx_happy])])]) diff -Nru openmpi-4.0.3/config/ompi_fortran_check_preprocess_f90.m4 openmpi-4.1.4/config/ompi_fortran_check_preprocess_f90.m4 --- openmpi-4.0.3/config/ompi_fortran_check_preprocess_f90.m4 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/config/ompi_fortran_check_preprocess_f90.m4 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,43 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. +dnl Copyright (c) 2009-2020 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OMPI_FORTRAN_CHECK_PREPROCESS_F90], [ + AC_MSG_CHECKING([if Fortran compilers preprocess .F90 files without additional flag]) + cat > conftest_f.F90 << EOF +#if 0 +#error The source file was not preprocessed +#endif + program bogus + end program +EOF + OPAL_LOG_COMMAND([$FC $FCFLAGS -c conftest_f.F90], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_MSG_CHECKING([if -fpp flag works]) + OPAL_LOG_COMMAND([$FC $FCFLAGS -fpp -c conftest_f.F90], + [AC_MSG_RESULT([yes]) + FCFLAGS="$FCFLAGS -fpp"], + [AC_MSG_RESULT(no) + AC_MSG_ERROR([cannot preprocess Fortran files, Aborting])])]) + rm -f conftest* +])dnl diff -Nru openmpi-4.0.3/config/ompi_setup_fc.m4 openmpi-4.1.4/config/ompi_setup_fc.m4 --- openmpi-4.0.3/config/ompi_setup_fc.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/ompi_setup_fc.m4 2022-05-29 09:51:40.000000000 +0000 @@ -13,9 +13,9 @@ dnl Copyright (c) 2007 Los Alamos National Security, LLC. All rights dnl reserved. dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. -dnl Copyright (c) 2009-2014 Cisco Systems, Inc. All rights reserved. -dnl Copyright (c) 2015-2016 Research Organization for Information Science -dnl and Technology (RIST). All rights reserved. +dnl Copyright (c) 2009-2020 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015-2020 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow @@ -139,6 +139,11 @@ [AC_FC_SRCEXT(f) AC_FC_SRCEXT(f90)]) + # Check to see if we need additional compiler flags for + # preprocessing .F90 files. + AS_IF([test $ompi_fc_happy -eq 1], + [OMPI_FORTRAN_CHECK_PREPROCESS_F90]) + # Per trac #1982, on OS X, we may need some esoteric linker flags # in the wrapper compilers. However, per # https://github.com/open-mpi/ompi/issues/259, we need to use diff -Nru openmpi-4.0.3/config/ompi_setup_mpi_fortran.m4 openmpi-4.1.4/config/ompi_setup_mpi_fortran.m4 --- openmpi-4.0.3/config/ompi_setup_mpi_fortran.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/ompi_setup_mpi_fortran.m4 2022-05-29 09:51:40.000000000 +0000 @@ -10,12 +10,12 @@ dnl University of Stuttgart. All rights reserved. dnl Copyright (c) 2004-2005 The Regents of the University of California. dnl All rights reserved. -dnl Copyright (c) 2006-2017 Cisco Systems, Inc. All rights reserved +dnl Copyright (c) 2006-2022 Cisco Systems, Inc. All rights reserved dnl Copyright (c) 2006-2008 Sun Microsystems, Inc. All rights reserved. dnl Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights dnl reserved. dnl Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. -dnl Copyright (c) 2014-2019 Research Organization for Information Science +dnl Copyright (c) 2014-2020 Research Organization for Information Science dnl and Technology (RIST). All rights reserved. dnl Copyright (c) 2016 IBM Corporation. All rights reserved. dnl $COPYRIGHT$ @@ -373,6 +373,72 @@ OMPI_FORTRAN_F08_TYPE=$OMPI_FORTRAN_IGNORE_TKR_TYPE ]) + # The mpi_f08 module in this version of Open MPI does not properly + # handle if sizeof(INTEGER) != sizeof(int) with the mpi_f08 + # bindings. As of July 2020, this issue is fixed on main / what + # will eventually become Open MPI v5.0.x, but the fix causes an + # ABI break. Hence, we're not going to fix it here on this + # release branch. + # + # This is a bit of a quandry, however, because up until v4.0.4, we + # built the Open MPI F08 bindings by default (if the compiler + # supported them), even in this problematic scenario. Meaning: a + # user could use the exact same compilers + configure command line + # between v4.0.4 and v4.0.5 and suddenly -- probably unexpectedly + # -- not get F08 bindings. That seems a little weird. + # + # Instead, if we're in the "bad" scenario (sizeof(int) != + # sizeof(INTEGER)), if the user didn't explicitly disable the + # mpi_f08 module, we'll print a Giant Error Message (GEM) and tell + # them what their options are. This may be slightly annoying for + # the user, but it at least it won't violate the Law of Least + # Surprise. + # + # Note that mpif.h and mpi module are still ok in the sizeof(int) + # != sizeof(INTEGER) scenario; this isssue *only* affects the use + # of mpi_f08's TYPE(MPI_Status). + # + # The following URLs shed some light on this decision: + # + # - https://github.com/open-mpi/ompi/pull/7921 -- in particular, + # the comment at + # https://github.com/open-mpi/ompi/pull/7921#issuecomment-656418618 + # - https://github.com/open-mpi/ompi/pull/7922 -- in particlar, + # the comment at + # https://github.com/open-mpi/ompi/pull/7922#issuecomment-656788803 + # + AC_MSG_CHECKING([if sizeof(C int) == sizeof(Fortran INTEGER)]) + AS_IF([test $ac_cv_sizeof_int -eq $OMPI_SIZEOF_FORTRAN_INTEGER], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [c=$ac_cv_sizeof_int + f=$OMPI_SIZEOF_FORTRAN_INTEGER + cat <]), + [AC_CHECK_DECL([CU_POINTER_ATTRIBUTE_SYNC_MEMOPS], [CUDA_SYNC_MEMOPS=1], [CUDA_SYNC_MEMOPS=0], + [#include <$opal_cuda_incdir/cuda.h>])], []) # If we have CUDA support, check to see if we have CUDA 6.0 or later. diff -Nru openmpi-4.0.3/config/opal_check_ofi.m4 openmpi-4.1.4/config/opal_check_ofi.m4 --- openmpi-4.0.3/config/opal_check_ofi.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/opal_check_ofi.m4 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,10 @@ dnl -*- shell-script -*- dnl -dnl Copyright (c) 2015-2019 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015-2020 Cisco Systems, Inc. All rights reserved. dnl Copyright (c) 2016-2017 Los Alamos National Security, LLC. All rights dnl reserved. +dnl Copyright (c) 2021 Amazon.com, Inc. or its affiliates. All rights +dnl reserved. dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow @@ -11,6 +13,45 @@ dnl dnl +dnl OPAL_CHECK_OFI_VERSION_GE +dnl +dnl Check that the OFI API version number is >= a specific value. +dnl +dnl $1: version number to compare, in the form of "major,minor" +dnl (without quotes) -- i.e., a single token representing the +dnl arguments to FI_VERSION() +dnl $2: action if OFI API version is >= $1 +dnl $3: action if OFI API version is < $1 +AC_DEFUN([OPAL_CHECK_OFI_VERSION_GE],[ + OPAL_VAR_SCOPE_PUSH([opal_ofi_ver_ge_save_CPPFLAGS opal_ofi_ver_ge_happy]) + + AC_MSG_CHECKING([if OFI API version number is >= $1]) + opal_ofi_ver_ge_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS=$opal_ofi_CPPFLAGS + + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], +[[ +#if !defined(FI_MAJOR_VERSION) +#error "we cannot check the version -- sad panda" +#elif FI_VERSION_LT(FI_VERSION(FI_MAJOR_VERSION, FI_MINOR_VERSION), FI_VERSION($1)) +#error "version is too low -- nopes" +#endif +]])], + [opal_ofi_ver_ge_happy=1], + [opal_ofi_ver_ge_happy=0]) + + AS_IF([test $opal_ofi_ver_ge_happy -eq 1], + [AC_MSG_RESULT([yes]) + $2], + [AC_MSG_RESULT([no]) + $3]) + + CPPFLAGS=$opal_ofi_ver_ge_save_CPPFLAGS + + OPAL_VAR_SCOPE_POP +])dnl + +dnl dnl _OPAL_CHECK_OFI dnl -------------------------------------------------------- dnl Do the real work of checking for OFI libfabric. @@ -50,10 +91,11 @@ OPAL_CHECK_WITHDIR([ofi-libdir], [$with_ofi_libdir], [libfabric.*]) - OPAL_VAR_SCOPE_PUSH([opal_check_ofi_save_CPPFLAGS opal_check_ofi_save_LDFLAGS opal_check_ofi_save_LIBS]) + OPAL_VAR_SCOPE_PUSH([opal_check_ofi_save_CPPFLAGS opal_check_ofi_save_LDFLAGS opal_check_ofi_save_LIBS opal_check_fi_info_pci]) opal_check_ofi_save_CPPFLAGS=$CPPFLAGS opal_check_ofi_save_LDFLAGS=$LDFLAGS opal_check_ofi_save_LIBS=$LIBS + opal_check_fi_info_pci=0 opal_ofi_happy=yes AS_IF([test "$with_ofi" = "no"], @@ -81,6 +123,30 @@ [], [opal_ofi_happy=no])]) + CPPFLAGS="$CPPFLAGS $opal_ofi_CPPFLAGS" + + AS_IF([test $opal_ofi_happy = yes], + [AC_CHECK_HEADERS([rdma/fi_ext.h]) + + AC_CHECK_MEMBER([struct fi_info.nic], + [opal_check_fi_info_pci=1], + [opal_check_fi_info_pci=0], + [[#include ]]) + + AC_DEFINE_UNQUOTED([OPAL_OFI_PCI_DATA_AVAILABLE], + [$opal_check_fi_info_pci], + [check if pci data is available in ofi]) + + AC_CHECK_DECLS([PMIX_PACKAGE_RANK], + [], + [], + [#include ]) + + AC_CHECK_TYPES([struct fi_ops_mem_monitor], [], [], + [#ifdef HAVE_RDMA_FI_EXT_H +#include +#endif])]) + CPPFLAGS=$opal_check_ofi_save_CPPFLAGS LDFLAGS=$opal_check_ofi_save_LDFLAGS LIBS=$opal_check_ofi_save_LIBS diff -Nru openmpi-4.0.3/config/opal_check_pmi.m4 openmpi-4.1.4/config/opal_check_pmi.m4 --- openmpi-4.0.3/config/opal_check_pmi.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/opal_check_pmi.m4 2022-05-29 09:51:40.000000000 +0000 @@ -14,9 +14,9 @@ # Copyright (c) 2011-2014 Los Alamos National Security, LLC. All rights # reserved. # Copyright (c) 2014-2019 Intel, Inc. All rights reserved. -# Copyright (c) 2014-2018 Research Organization for Information Science +# Copyright (c) 2014-2021 Research Organization for Information Science # and Technology (RIST). All rights reserved. -# Copyright (c) 2016 IBM Corporation. All rights reserved. +# Copyright (c) 2016-2021 IBM Corporation. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -139,15 +139,6 @@ AC_DEFUN([OPAL_CHECK_PMI],[ OPAL_VAR_SCOPE_PUSH([check_pmi_install_dir check_pmi_lib_dir default_pmi_libloc slurm_pmi_found]) - AC_ARG_WITH([pmi], - [AC_HELP_STRING([--with-pmi(=DIR)], - [Build PMI support, optionally adding DIR to the search path (default: no)])], - [], with_pmi=no) - - AC_ARG_WITH([pmi-libdir], - [AC_HELP_STRING([--with-pmi-libdir=DIR], - [Look for libpmi or libpmi2 in the given directory DIR, DIR/lib or DIR/lib64])]) - check_pmi_install_dir= check_pmi_lib_dir= default_pmi_libloc= @@ -209,12 +200,12 @@ opal_pmi2_rpath="$pmi2_rpath" AC_SUBST(opal_pmi2_rpath)])]) - # check for pmix lib installed by slurm */ - slurm_pmix_found=no - OPAL_CHECK_PMIX_LIB([$check_pmi_install_dir], - [$check_pmi_lib_dir], - [opal_enable_pmix=yes], - [opal_enable_pmix=no]) + # check for pmix lib installed by slurm unless an other PMIx library is requested + AS_IF([test -z "$with_pmix" || test "$with_pmix" = "yes" || test "$with_pmix" = "external"], + [OPAL_CHECK_PMIX_LIB([$check_pmi_install_dir], + [$check_pmi_lib_dir], + [opal_enable_pmix=yes], + [opal_enable_pmix=no])]) # since support was explicitly requested, then we should error out # if we didn't find the required support @@ -328,6 +319,7 @@ ], [])], [AC_MSG_RESULT([found]) opal_external_pmix_version=4x + opal_external_pmix_version_major=4 opal_external_pmix_version_found=1 opal_external_pmix_happy=yes], [AC_MSG_RESULT([not found])])]) @@ -342,6 +334,7 @@ ], [])], [AC_MSG_RESULT([found]) opal_external_pmix_version=3x + opal_external_pmix_version_major=3 opal_external_pmix_version_found=1 opal_external_pmix_happy=yes], [AC_MSG_RESULT([not found])])]) @@ -356,6 +349,7 @@ ], [])], [AC_MSG_RESULT([found]) opal_external_pmix_version=2x + opal_external_pmix_version_major=2 opal_external_pmix_version_found=1 opal_external_pmix_happy=yes], [AC_MSG_RESULT([not found])])]) @@ -370,6 +364,7 @@ ], [])], [AC_MSG_RESULT([found]) opal_external_pmix_version=1x + opal_external_pmix_version_major=1 opal_external_pmix_version_found=1 opal_external_have_pmix1=1 opal_external_pmix_happy=yes], @@ -394,14 +389,6 @@ AC_DEFUN([OPAL_CHECK_PMIX],[ - AC_ARG_WITH([pmix], - [AC_HELP_STRING([--with-pmix(=DIR)], - [Build PMIx support. DIR can take one of three values: "internal", "external", or a valid directory name. "internal" (or no DIR value) forces Open MPI to use its internal copy of PMIx. "external" forces Open MPI to use an external installation of PMIx. Supplying a valid directory name also forces Open MPI to use an external installation of PMIx, and adds DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries. Note that Open MPI does not support --without-pmix.])]) - - AC_ARG_WITH([pmix-libdir], - [AC_HELP_STRING([--with-pmix-libdir=DIR], - [Look for libpmix the given directory DIR, DIR/lib or DIR/lib64])]) - AS_IF([test "$with_pmix" = "no"], [AC_MSG_WARN([Open MPI requires PMIx support. It can be built]) AC_MSG_WARN([with either its own internal copy of PMIx, or with]) @@ -471,3 +458,30 @@ [OPAL_SUMMARY_ADD([[Miscellaneous]],[[PMIx support]], [opal_pmix], [External ($opal_external_pmix_version)])])], [OPAL_SUMMARY_ADD([[Miscellaneous]], [[PMIx support]], [opal_pmix], [Internal])]) ]) + +# Check both PMI and PMIx +# +# OPAL_CHECK_ALL_PMI() +# -------------------------------------------------------- +AC_DEFUN([OPAL_CHECK_ALL_PMI], +[ + AC_ARG_WITH([pmi], + [AC_HELP_STRING([--with-pmi(=DIR)], + [Build PMI support, optionally adding DIR to the search path (default: no)])], + [], with_pmi=no) + + AC_ARG_WITH([pmi-libdir], + [AC_HELP_STRING([--with-pmi-libdir=DIR], + [Look for libpmi or libpmi2 in the given directory DIR, DIR/lib or DIR/lib64])]) + + AC_ARG_WITH([pmix], + [AC_HELP_STRING([--with-pmix(=DIR)], + [Build PMIx support. DIR can take one of three values: "internal", "external", or a valid directory name. "internal" (or no DIR value) forces Open MPI to use its internal copy of PMIx. "external" forces Open MPI to use an external installation of PMIx. Supplying a valid directory name also forces Open MPI to use an external installation of PMIx, and adds DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries. Note that Open MPI does not support --without-pmix.])]) + + AC_ARG_WITH([pmix-libdir], + [AC_HELP_STRING([--with-pmix-libdir=DIR], + [Look for libpmix the given directory DIR, DIR/lib or DIR/lib64])]) + + OPAL_CHECK_PMI + OPAL_CHECK_PMIX +]) diff -Nru openmpi-4.0.3/config/opal_config_asm.m4 openmpi-4.1.4/config/opal_config_asm.m4 --- openmpi-4.0.3/config/opal_config_asm.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/opal_config_asm.m4 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana dnl University Research and Technology dnl Corporation. All rights reserved. -dnl Copyright (c) 2004-2018 The University of Tennessee and The University +dnl Copyright (c) 2004-2020 The University of Tennessee and The University dnl of Tennessee Research Foundation. All rights dnl reserved. dnl Copyright (c) 2004-2006 High Performance Computing Center Stuttgart, @@ -17,6 +17,7 @@ dnl reserved. dnl Copyright (c) 2017 Amazon.com, Inc. or its affiliates. All Rights dnl reserved. +dnl Copyright (c) 2021 Google, LLC. All rights reserved. dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow @@ -1022,7 +1023,7 @@ AC_ARG_ENABLE([builtin-atomics], [AC_HELP_STRING([--enable-builtin-atomics], - [Enable use of __sync builtin atomics (default: enabled)])]) + [Enable use of __atomic builtin atomics (default: enabled)])]) opal_cv_asm_builtin="BUILTIN_NO" AS_IF([test "$opal_cv_asm_builtin" = "BUILTIN_NO" && test "$enable_builtin_atomics" != "no"], @@ -1075,6 +1076,12 @@ OPAL_ASM_ARM_VERSION=8 AC_DEFINE_UNQUOTED([OPAL_ASM_ARM_VERSION], [$OPAL_ASM_ARM_VERSION], [What ARM assembly version to use]) + # If built-in atomics were not specifically request then disable the + # use of built-in atomics. The performance of Open MPI when using the + # built-ins is worse than when they are not in use. + if test "$enable_builtin_atomics" != "yes" ; then + opal_cv_asm_builtin="BUILTIN_NO" + fi OPAL_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)' ;; @@ -1129,6 +1136,18 @@ AC_MSG_ERROR([Could not determine PowerPC word size: $ac_cv_sizeof_long]) fi OPAL_GCC_INLINE_ASSIGN='"1: li %0,0" : "=&r"(ret)' + + # See the following github PR and some performance numbers/discussion: + # https://github.com/open-mpi/ompi/pull/8649 + AC_MSG_CHECKING([$opal_cv_asm_arch: Checking if force gcc atomics requested]) + if test $force_gcc_atomics_ppc = 0 ; then + AC_MSG_RESULT([no]) + opal_cv_asm_builtin="BUILTIN_NO" + else + AC_MSG_RESULT([Yes]) + AC_MSG_WARN([$opal_cv_asm_arch: gcc atomics have been known to perform poorly on powerpc.]) + fi + ;; # There is no current difference between s390 and s390x # But use two different defines in case some come later @@ -1245,7 +1264,7 @@ # Check for RDTSCP support result=0 - AS_IF([test "$opal_cv_asm_arch" = "OPAL_X86_64" || test "$opal_cv_asm_arch" = "OPAL_IA32"], + AS_IF([test "$opal_cv_asm_arch" = "X86_64" || test "$opal_cv_asm_arch" = "IA32"], [AC_MSG_CHECKING([for RDTSCP assembly support]) AC_LANG_PUSH([C]) AC_TRY_RUN([[ diff -Nru openmpi-4.0.3/config/opal_configure_options.m4 openmpi-4.1.4/config/opal_configure_options.m4 --- openmpi-4.0.3/config/opal_configure_options.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/opal_configure_options.m4 2022-05-29 09:51:40.000000000 +0000 @@ -84,6 +84,13 @@ WANT_BRANCH_PROBABILITIES=0 fi +AC_ARG_ENABLE([builtin-atomics-for-ppc],[AS_HELP_STRING([--enable-builtin-atomics-for-ppc], + [POWER architectures only: Force use of builtin atomics if available. This could either be gcc builtins or C11 atomics, depending on what is available on your system. Enabling this is known to cause poor performance in atomic operations on Power machines. (default: disabled)])]) +if test "x$enable_builtin_atomics_for_ppc" = "xyes" ; then +force_gcc_atomics_ppc=1 +else +force_gcc_atomics_ppc=0 +fi # # Memory debugging diff -Nru openmpi-4.0.3/config/opal_functions.m4 openmpi-4.1.4/config/opal_functions.m4 --- openmpi-4.0.3/config/opal_functions.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/opal_functions.m4 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ dnl All rights reserved. dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. dnl Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. -dnl Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2009-2020 Cisco Systems, Inc. All rights reserved. dnl Copyright (c) 2014 Intel, Inc. All rights reserved. dnl Copyright (c) 2015-2017 Research Organization for Information Science dnl and Technology (RIST). All rights reserved. @@ -94,9 +94,15 @@ # Save some stats about this build # -OPAL_CONFIGURE_USER="`whoami`" -OPAL_CONFIGURE_HOST="`(hostname || uname -n) 2> /dev/null | sed 1q`" -OPAL_CONFIGURE_DATE="`date`" +OPAL_CONFIGURE_USER="${USER:-`whoami`}" +OPAL_CONFIGURE_HOST="${HOSTNAME:-`(hostname || uname -n) 2> /dev/null | sed 1q`}" +# Note: it's ok to use $srcdir here because this macro is called at +# the very beginning of configure.ac: +# +# a) before $OMPI_TOP_SRCDIR is set, and +# b) from the top-level build directory (i.e., so $srcdir actually +# points to the top source directory) +OPAL_CONFIGURE_DATE="`$srcdir/config/getdate.sh`" OPAL_LIBNL_SANITY_INIT @@ -113,14 +119,6 @@ AC_DEFUN([OPAL_BASIC_SETUP],[ # -# Save some stats about this build -# - -OPAL_CONFIGURE_USER="`whoami`" -OPAL_CONFIGURE_HOST="`(hostname || uname -n) 2> /dev/null | sed 1q`" -OPAL_CONFIGURE_DATE="`date`" - -# # Make automake clean emacs ~ files for "make clean" # diff -Nru openmpi-4.0.3/config/opal_get_version.m4 openmpi-4.1.4/config/opal_get_version.m4 --- openmpi-4.0.3/config/opal_get_version.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/opal_get_version.m4 2022-05-29 09:51:40.000000000 +0000 @@ -10,10 +10,10 @@ dnl University of Stuttgart. All rights reserved. dnl Copyright (c) 2004-2005 The Regents of the University of California. dnl All rights reserved. -dnl Copyright (c) 2008-2014 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2008-2020 Cisco Systems, Inc. All rights reserved. dnl Copyright (c) 2014 Intel, Inc. All rights reserved. -dnl Copyright (c) 2014 Research Organization for Information Science -dnl and Technology (RIST). All rights reserved. +dnl Copyright (c) 2014-2020 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow @@ -80,18 +80,18 @@ # If we're in a git repo and we found the git command, use # git describe to get the repo rev - if test -d "$srcdir/.git" && test $git_happy -eq 1; then + if test -r "$srcdir/.git" && test $git_happy -eq 1; then if test "$srcdir" != "`pwd`"; then git_save_dir=`pwd` - cd $srcdir + cd "$srcdir" $2_REPO_REV=`git describe --tags --always` - cd $git_save_dir + cd "$git_save_dir" unset git_save_dir else $2_REPO_REV=`git describe --tags --always` fi else - $2_REPO_REV="date`date '+%Y-%m-%d'`" + $2_REPO_REV=`$srcdir/config/getdate.sh '+%Y-%m-%d'` fi fi diff -Nru openmpi-4.0.3/config/opal_mca.m4 openmpi-4.1.4/config/opal_mca.m4 --- openmpi-4.0.3/config/opal_mca.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/opal_mca.m4 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ dnl University of Stuttgart. All rights reserved. dnl Copyright (c) 2004-2005 The Regents of the University of California. dnl All rights reserved. -dnl Copyright (c) 2010-2016 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2010-2021 Cisco Systems, Inc. All rights reserved. dnl Copyright (c) 2013-2017 Intel, Inc. All rights reserved. dnl Copyright (c) 2018 Amazon.com, Inc. or its affiliates. dnl All Rights reserved. @@ -59,9 +59,9 @@ [AC_HELP_STRING([--enable-mca-no-build=LIST], [Comma-separated list of - pairs that will not be built. Example: - "--enable-mca-no-build=btl-portals,oob-ud" will - disable building the "portals" btl and the "ud" - oob components.])]) + "--enable-mca-no-build=btl-portals4,topo-treematch" will + disable building the "portals4" btl and the "treematch" + topo components.])]) AC_ARG_ENABLE(mca-dso, AC_HELP_STRING([--enable-mca-dso=LIST], [Comma-separated list of types and/or diff -Nru openmpi-4.0.3/config/opal_setup_cc.m4 openmpi-4.1.4/config/opal_setup_cc.m4 --- openmpi-4.0.3/config/opal_setup_cc.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/opal_setup_cc.m4 2022-05-29 09:51:40.000000000 +0000 @@ -16,6 +16,9 @@ dnl reserved. dnl Copyright (c) 2015-2019 Research Organization for Information Science dnl and Technology (RIST). All rights reserved. +dnl Copyright (c) 2020 Triad National Security, LLC. All rights +dnl reserved. +dnl dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow @@ -297,7 +300,7 @@ opal_cv_cc_wno_long_double="yes" if test -s conftest.err ; then dnl Yes, it should be "ignor", in order to catch ignoring and ignore - for i in unknown invalid ignor unrecognized ; do + for i in unknown invalid ignor unrecognized 'not supported'; do $GREP -iq $i conftest.err if test "$?" = "0" ; then opal_cv_cc_wno_long_double="no" diff -Nru openmpi-4.0.3/config/opal_setup_cxx.m4 openmpi-4.1.4/config/opal_setup_cxx.m4 --- openmpi-4.0.3/config/opal_setup_cxx.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/opal_setup_cxx.m4 2022-05-29 09:51:40.000000000 +0000 @@ -16,6 +16,9 @@ dnl Copyright (c) 2008-2013 Cisco Systems, Inc. All rights reserved. dnl Copyright (c) 2015-2016 Research Organization for Information Science dnl and Technology (RIST). All rights reserved. +dnl Copyright (c) 2020 Triad National Security, LLC. All rights +dnl reserved. +dnl dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow @@ -122,7 +125,7 @@ opal_cv_cxx_wno_long_double="yes" if test -s conftest.err ; then dnl Yes, it should be "ignor", in order to catch ignoring and ignore - for i in unknown invalid ignor unrecognized ; do + for i in unknown invalid ignor unrecognized 'not supported'; do $GREP -iq $i conftest.err if test "$?" = "0" ; then opal_cv_cxx_wno_long_double="no" diff -Nru openmpi-4.0.3/config/opal_setup_wrappers.m4 openmpi-4.1.4/config/opal_setup_wrappers.m4 --- openmpi-4.0.3/config/opal_setup_wrappers.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/opal_setup_wrappers.m4 2022-05-29 09:51:40.000000000 +0000 @@ -17,6 +17,8 @@ dnl Copyright (c) 2016 IBM Corporation. All rights reserved. dnl Copyright (c) 2020 Triad National Security, LLC. All rights dnl reserved. +dnl Copyright (c) 2021 Amazon.com, Inc. or its affiliates. +dnl All Rights reserved. dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow @@ -264,9 +266,11 @@ esac done - # Now add in the RPATH args for @{libdir}, and the RUNPATH args + # add in the RPATH args for @{libdir}, and the RUNPATH + # args. The install libdir goes first, so that we prefer + # our libmpi over any imposter libmpi we might find. rpath_tmp=`echo ${$2} | sed -e s/LIBDIR/@{libdir}/` - $1="${$1} $rpath_out $rpath_tmp ${$3}" + $1="${$1} $rpath_tmp $rpath_out ${$3}" ]) OPAL_VAR_SCOPE_POP ]) diff -Nru openmpi-4.0.3/config/orte_check_lsf.m4 openmpi-4.1.4/config/orte_check_lsf.m4 --- openmpi-4.0.3/config/orte_check_lsf.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/orte_check_lsf.m4 2022-05-29 09:51:40.000000000 +0000 @@ -15,7 +15,7 @@ dnl and Technology (RIST). All rights reserved. dnl Copyright (c) 2016 Los Alamos National Security, LLC. All rights dnl reserved. -dnl Copyright (c) 2017 IBM Corporation. All rights reserved. +dnl Copyright (c) 2017-2021 IBM Corporation. All rights reserved. dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow @@ -77,28 +77,30 @@ # on AIX it should be in libbsd # on HP-UX it should be in libBSD # on IRIX < 6 it should be in libsun (IRIX 6 and later it is in libc) - OPAL_SEARCH_LIBS_COMPONENT([yp_all_nsl], [yp_all], [nsl bsd BSD sun], - [yp_all_nsl_happy="yes"], - [yp_all_nsl_happy="no"]) + # on RHEL: libnsl, libnsl2 AND libnsl2-devel are required to link libnsl to get yp_all. + AS_IF([test "$orte_check_lsf_happy" = "yes"], + [OPAL_SEARCH_LIBS_COMPONENT([yp_all_nsl], [yp_all], [nsl bsd BSD sun], + [orte_check_lsf_happy="yes"], + [AC_MSG_WARN([[Could not find yp_all. Please see https://www.open-mpi.org/faq/?category=building#build-rte-lsf for more details.]]) + orte_check_lsf_happy="no"])]) - AS_IF([test "$yp_all_nsl_happy" = "no"], - [orte_check_lsf_happy="no"], - [orte_check_lsf_happy="yes"]) + # liblsf requires shm_open, shm_unlink, which are in librt + AS_IF([test "$orte_check_lsf_happy" = "yes"], + [OPAL_SEARCH_LIBS_COMPONENT([shm_open_rt], [shm_open], [rt], + [orte_check_lsf_happy="yes"], + [orte_check_lsf_happy="no"])]) # liblsb requires liblsf - using ls_info as a test for liblsf presence - OPAL_CHECK_PACKAGE([ls_info_lsf], - [lsf/lsf.h], - [lsf], - [ls_info], - [$yp_all_nsl_LIBS], - [$orte_check_lsf_dir], - [$orte_check_lsf_libdir], - [ls_info_lsf_happy="yes"], - [ls_info_lsf_happy="no"]) - - AS_IF([test "$ls_info_lsf_happy" = "no"], - [orte_check_lsf_happy="no"], - [orte_check_lsf_happy="yes"]) + AS_IF([test "$orte_check_lsf_happy" = "yes"], + [OPAL_CHECK_PACKAGE([ls_info_lsf], + [lsf/lsf.h], + [lsf], + [ls_info], + [$yp_all_nsl_LIBS $shm_open_rt_LIBS], + [$orte_check_lsf_dir], + [$orte_check_lsf_libdir], + [orte_check_lsf_happy="yes"], + [orte_check_lsf_happy="no"])]) # test function of liblsb LSF package AS_IF([test "$orte_check_lsf_happy" = "yes"], @@ -106,20 +108,89 @@ AC_MSG_RESULT([$orte_check_lsf_dir_msg]) AC_MSG_CHECKING([for LSF library dir]) AC_MSG_RESULT([$orte_check_lsf_libdir_msg]) - AC_MSG_CHECKING([for liblsf function]) - AC_MSG_RESULT([$ls_info_lsf_happy]) - AC_MSG_CHECKING([for liblsf yp requirements]) - AC_MSG_RESULT([$yp_all_nsl_happy]) OPAL_CHECK_PACKAGE([orte_check_lsf], [lsf/lsbatch.h], [bat], [lsb_launch], - [$ls_info_lsf_LIBS $yp_all_nsl_LIBS], + [$ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS], [$orte_check_lsf_dir], [$orte_check_lsf_libdir], [orte_check_lsf_happy="yes"], [orte_check_lsf_happy="no"])]) + + # Some versions of LSF ship with a libevent.so in their library path. + # This is _not_ a copy of Libevent, but something specific to their project. + # The Open MPI components should not need to link against LSF's libevent.so + # However, the presence of it in the linker search path can cause a problem + # if there is a system installed Libevent and Open MPI chooses the 'external' + # event component prior to this stage. + # + # Add a check here to see if we are in a scenario where the two are conflicting. + # In which case the earlier checks for successful compile of an LSF program will + # have failed with messages like: + # lib64/libevent_pthreads.so: undefined reference to `evthread_set_condition_callbacks' + # lib64/libevent_pthreads.so: undefined reference to `event_mm_malloc_' + # lib64/libevent_pthreads.so: undefined reference to `event_mm_free_' + # lib64/libevent_pthreads.so: undefined reference to `evthread_set_id_callback' + # lib64/libevent_pthreads.so: undefined reference to `evthread_set_lock_callbacks' + # Because it picked up -levent from LSF, but -levent_pthreads from Libevent. + # + # So look for a function that libevent_pthreads is looking for from libevent.so. + # If it does appears then we have the correct libevent.so, otherwise then we picked + # up the LSF version and a conflict has been detected. + # If the external libevent component used 'event_core' instead of 'event' + orte_check_lsf_event_conflict=na + # Split libs into an array, see if -levent is in that list + orte_check_lsf_libevent_present=`echo "$LIBS" | awk '{split([$]0, a, " "); {for (k in a) {if (a[[k]] == "-levent") {print a[[k]]}}}}' | wc -l | tr -d '[[:space:]]'` + # (1) LSF check must have failed above. We need to know why... + AS_IF([test "$orte_check_lsf_happy" = "no"], + [# (2) If there is a -levent in the $LIBS then that might be the problem + AS_IF([test "$opal_event_external_support" = "yes" && test "$orte_check_lsf_libevent_present" != "0"], + [AS_IF([test "$orte_check_lsf_libdir" = "" ], + [], + [LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir"]) + # Note that we do not want to set LIBS here to include -llsf since + # the check is not for an LSF library, but for the conflict with + # LDFLAGS. + # (3) Check to see if the -levent is from Libevent (check for a symbol it has) + AC_CHECK_LIB([event], [evthread_set_condition_callbacks], + [AC_MSG_CHECKING([for libevent conflict]) + AC_MSG_RESULT([No conflict found. The correct libevent.so was linked.]) + orte_check_lsf_event_conflict=no], + [# (4) The libevent.so is not from Libevent. Warn the user. + AC_MSG_CHECKING([for libevent conflict]) + AC_MSG_RESULT([Conflict found. Detected a libevent.so that is not from Libevent.]) + orte_check_lsf_event_conflict=yes]) + ], + [AC_MSG_CHECKING([for libevent conflict]) + AC_MSG_RESULT([No conflict found. Internal Libevent or libevent_core is being used.]) + orte_check_lsf_event_conflict=na])], + [AC_MSG_CHECKING([for libevent conflict]) + AC_MSG_RESULT([No conflict found. LSF checks passed.]) + orte_check_lsf_event_conflict=na]) + + AS_IF([test "$orte_check_lsf_event_conflict" = "yes"], + [AC_MSG_WARN([===================================================================]) + AC_MSG_WARN([Conflicting libevent.so libraries detected on the system.]) + AC_MSG_WARN([]) + AC_MSG_WARN([A system-installed Libevent library was detected and the Open MPI]) + AC_MSG_WARN([build system chose to use the 'external' component expecting to]) + AC_MSG_WARN([link against the Libevent in the linker search path.]) + AC_MSG_WARN([If LSF is present on the system and in the default search path then]) + AC_MSG_WARN([it _may be_ the source of the conflict.]) + AC_MSG_WARN([LSF provides a libevent.so that is not from Libevent in its]) + AC_MSG_WARN([library path. At this point the linker is attempting to resolve]) + AC_MSG_WARN([Libevent symbols using the LSF library because of the lack of]) + AC_MSG_WARN([an explicit linker path pointing to the system-installed Libevent.]) + AC_MSG_WARN([]) + AC_MSG_WARN([To resolve this issue either (A) explicitly pass the Libevent]) + AC_MSG_WARN([library path on the configure line (--with-libevent-libdir), or]) + AC_MSG_WARN([(B) use the internal libevent by requesting it from configure ]) + AC_MSG_WARN([with the --with-libevent=internal option.]) + AC_MSG_WARN([===================================================================]) + ]) + CPPFLAGS="$orte_check_lsf_$1_save_CPPFLAGS" LDFLAGS="$orte_check_lsf_$1_save_LDFLAGS" LIBS="$orte_check_lsf_$1_save_LIBS" diff -Nru openmpi-4.0.3/config/orte_config_files.m4 openmpi-4.1.4/config/orte_config_files.m4 --- openmpi-4.0.3/config/orte_config_files.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/config/orte_config_files.m4 2022-05-29 09:51:40.000000000 +0000 @@ -7,6 +7,7 @@ # Copyright (c) 2011-2012 Los Alamos National Security, LLC. All rights # reserved. # Copyright (c) 2015-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2021 IBM Corporation. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -19,7 +20,7 @@ orte/Makefile orte/include/Makefile orte/etc/Makefile - + orte/orted/orted-mpir/Makefile orte/tools/orted/Makefile orte/tools/orterun/Makefile orte/tools/wrappers/Makefile diff -Nru openmpi-4.0.3/configure openmpi-4.1.4/configure --- openmpi-4.0.3/configure 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/configure 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Open MPI 4.0.3. +# Generated by GNU Autoconf 2.69 for Open MPI 4.1.4. # # Report bugs to . # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='Open MPI' PACKAGE_TARNAME='openmpi' -PACKAGE_VERSION='4.0.3' -PACKAGE_STRING='Open MPI 4.0.3' +PACKAGE_VERSION='4.1.4' +PACKAGE_STRING='Open MPI 4.1.4' PACKAGE_BUGREPORT='http://www.open-mpi.org/community/help/' PACKAGE_URL='' @@ -783,6 +783,12 @@ MCA_oshmem_scoll_DSO_COMPONENTS MCA_oshmem_scoll_STATIC_COMPONENTS MCA_oshmem_scoll_ALL_COMPONENTS +MCA_BUILD_oshmem_scoll_ucc_DSO_FALSE +MCA_BUILD_oshmem_scoll_ucc_DSO_TRUE +scoll_ucc_LIBS +scoll_ucc_LDFLAGS +scoll_ucc_CPPFLAGS +scoll_ucc_CFLAGS MCA_BUILD_oshmem_scoll_fca_DSO_FALSE MCA_BUILD_oshmem_scoll_fca_DSO_TRUE scoll_fca_HOME @@ -943,6 +949,21 @@ MCA_ompi_op_DSO_COMPONENTS MCA_ompi_op_STATIC_COMPONENTS MCA_ompi_op_ALL_COMPONENTS +MCA_BUILD_ompi_op_avx_DSO_FALSE +MCA_BUILD_ompi_op_avx_DSO_TRUE +MCA_BUILD_OP_AVX_FLAGS +MCA_BUILD_OP_AVX2_FLAGS +MCA_BUILD_OP_AVX512_FLAGS +MCA_BUILD_ompi_op_has_sse3_support_FALSE +MCA_BUILD_ompi_op_has_sse3_support_TRUE +MCA_BUILD_ompi_op_has_sse41_support_FALSE +MCA_BUILD_ompi_op_has_sse41_support_TRUE +MCA_BUILD_ompi_op_has_avx_support_FALSE +MCA_BUILD_ompi_op_has_avx_support_TRUE +MCA_BUILD_ompi_op_has_avx2_support_FALSE +MCA_BUILD_ompi_op_has_avx2_support_TRUE +MCA_BUILD_ompi_op_has_avx512_support_FALSE +MCA_BUILD_ompi_op_has_avx512_support_TRUE MCA_ompi_mtl_DIRECT_CALL_HEADER MCA_ompi_mtl_DSO_SUBDIRS MCA_ompi_mtl_STATIC_SUBDIRS @@ -1011,6 +1032,16 @@ fs_lustre_LIBS fs_lustre_LDFLAGS fs_lustre_CPPFLAGS +MCA_BUILD_ompi_fs_ime_DSO_FALSE +MCA_BUILD_ompi_fs_ime_DSO_TRUE +fs_ime_LIBS +fs_ime_LDFLAGS +fs_ime_CPPFLAGS +MCA_BUILD_ompi_fs_gpfs_DSO_FALSE +MCA_BUILD_ompi_fs_gpfs_DSO_TRUE +fs_gpfs_LIBS +fs_gpfs_LDFLAGS +fs_gpfs_CPPFLAGS MCA_ompi_fcoll_DSO_SUBDIRS MCA_ompi_fcoll_STATIC_SUBDIRS MCA_ompi_fcoll_ALL_SUBDIRS @@ -1042,6 +1073,11 @@ fbtl_pvfs2_CPPFLAGS MCA_BUILD_ompi_fbtl_posix_DSO_FALSE MCA_BUILD_ompi_fbtl_posix_DSO_TRUE +MCA_BUILD_ompi_fbtl_ime_DSO_FALSE +MCA_BUILD_ompi_fbtl_ime_DSO_TRUE +fbtl_ime_LIBS +fbtl_ime_LDFLAGS +fbtl_ime_CPPFLAGS MCA_ompi_crcp_DSO_SUBDIRS MCA_ompi_crcp_STATIC_SUBDIRS MCA_ompi_crcp_ALL_SUBDIRS @@ -1058,6 +1094,8 @@ MCA_ompi_coll_DSO_COMPONENTS MCA_ompi_coll_STATIC_COMPONENTS MCA_ompi_coll_ALL_COMPONENTS +MCA_BUILD_ompi_coll_ucc_DSO_FALSE +MCA_BUILD_ompi_coll_ucc_DSO_TRUE MCA_BUILD_ompi_coll_portals4_DSO_FALSE MCA_BUILD_ompi_coll_portals4_DSO_TRUE coll_portals4_LIBS @@ -1092,8 +1130,12 @@ MCA_BUILD_ompi_coll_libnbc_DSO_TRUE MCA_BUILD_ompi_coll_inter_DSO_FALSE MCA_BUILD_ompi_coll_inter_DSO_TRUE +MCA_BUILD_ompi_coll_han_DSO_FALSE +MCA_BUILD_ompi_coll_han_DSO_TRUE MCA_BUILD_ompi_coll_basic_DSO_FALSE MCA_BUILD_ompi_coll_basic_DSO_TRUE +MCA_BUILD_ompi_coll_adapt_DSO_FALSE +MCA_BUILD_ompi_coll_adapt_DSO_TRUE MCA_ompi_bml_DSO_SUBDIRS MCA_ompi_bml_STATIC_SUBDIRS MCA_ompi_bml_ALL_SUBDIRS @@ -1177,6 +1219,8 @@ schizo_moab_LIBS schizo_moab_LDFLAGS schizo_moab_CPPFLAGS +MCA_BUILD_orte_schizo_jsm_DSO_FALSE +MCA_BUILD_orte_schizo_jsm_DSO_TRUE MCA_BUILD_orte_schizo_alps_DSO_FALSE MCA_BUILD_orte_schizo_alps_DSO_TRUE schizo_alps_CPPFLAGS @@ -1478,9 +1522,9 @@ MCA_opal_reachable_ALL_COMPONENTS MCA_BUILD_opal_reachable_netlink_DSO_FALSE MCA_BUILD_opal_reachable_netlink_DSO_TRUE -opal_reachable_netlink_LIBS -opal_reachable_netlink_LDFLAGS -opal_reachable_netlink_CPPFLAGS +reachable_netlink_LIBS +reachable_netlink_LDFLAGS +reachable_netlink_CPPFLAGS MCA_BUILD_opal_reachable_weighted_DSO_FALSE MCA_BUILD_opal_reachable_weighted_DSO_TRUE MCA_opal_rcache_DSO_SUBDIRS @@ -1884,9 +1928,6 @@ MCA_BUILD_opal_btl_usnic_DSO_TRUE OPAL_BTL_USNIC_BUILD_UNIT_TESTS_FALSE OPAL_BTL_USNIC_BUILD_UNIT_TESTS_TRUE -opal_ofi_LIBS -opal_ofi_LDFLAGS -opal_ofi_CPPFLAGS MCA_BUILD_opal_btl_ugni_DSO_FALSE MCA_BUILD_opal_btl_ugni_DSO_TRUE btl_ugni_LIBS @@ -1926,6 +1967,8 @@ btl_openib_LDFLAGS btl_openib_CPPFLAGS btl_openib_CFLAGS +MCA_BUILD_opal_btl_ofi_DSO_FALSE +MCA_BUILD_opal_btl_ofi_DSO_TRUE MCA_BUILD_opal_btl_self_DSO_FALSE MCA_BUILD_opal_btl_self_DSO_TRUE MCA_opal_backtrace_DSO_SUBDIRS @@ -1984,6 +2027,11 @@ PKG_CONFIG MCA_BUILD_opal_common_sm_DSO_FALSE MCA_BUILD_opal_common_sm_DSO_TRUE +MCA_BUILD_opal_common_ofi_DSO_FALSE +MCA_BUILD_opal_common_ofi_DSO_TRUE +opal_ofi_LIBS +opal_ofi_LDFLAGS +opal_ofi_CPPFLAGS MCA_BUILD_opal_common_cuda_DSO_FALSE MCA_BUILD_opal_common_cuda_DSO_TRUE common_cuda_CPPFLAGS @@ -2282,6 +2330,7 @@ libmca_opal_common_ugni_so_version libmca_opal_common_sm_so_version libmca_opal_common_cuda_so_version +libmca_opal_common_ofi_so_version libopen_pal_so_version liboshmem_so_version libopen_rte_so_version @@ -2429,7 +2478,11 @@ PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR -SHELL' +SHELL +coll_ucc_LIBS +coll_ucc_LDFLAGS +coll_ucc_CPPFLAGS +coll_ucc_CFLAGS' ac_subst_files='' ac_user_opts=' enable_option_checking @@ -2440,6 +2493,7 @@ enable_silent_rules enable_coverage enable_branch_probabilities +enable_builtin_atomics_for_ppc enable_mem_debug enable_mem_profile enable_picky @@ -2521,6 +2575,10 @@ enable_mca_dso enable_mca_static enable_mca_direct +with_libfabric +with_libfabric_libdir +with_ofi +with_ofi_libdir with_ucx with_ucx_libdir with_verbs @@ -2540,10 +2598,6 @@ with_ugni with_usnic enable_opal_btl_usnic_unit_tests -with_libfabric -with_libfabric_libdir -with_ofi -with_ofi_libdir with_cray_xpmem with_xpmem with_xpmem_libdir @@ -2578,7 +2632,6 @@ with_alps_libdir with_flux_pmi with_flux_pmi_library -enable_install_libpmix enable_pmix_timing with_udreg enable_mmap_shmem @@ -2595,7 +2648,10 @@ with_singularity with_fca with_hcoll +with_ucc +with_ime with_pvfs2 +with_gpfs with_lustre enable_io_romio with_io_romio_flags @@ -2604,6 +2660,7 @@ with_psm_libdir with_psm2 with_psm2_libdir +enable_psm2_version_check with_mxm with_mxm_libdir with_ompi_pmix_rte @@ -3218,7 +3275,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Open MPI 4.0.3 to adapt to many kinds of systems. +\`configure' configures Open MPI 4.1.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -3293,7 +3350,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Open MPI 4.0.3:";; + short | recursive ) echo "Configuration of Open MPI 4.1.4:";; esac cat <<\_ACEOF @@ -3311,6 +3368,13 @@ --enable-branch-probabilities enable profile arcs and branch probability optimization + --enable-builtin-atomics-for-ppc + POWER architectures only: Force use of builtin + atomics if available. This could either be gcc + builtins or C11 atomics, depending on what is + available on your system. Enabling this is known to + cause poor performance in atomic operations on Power + machines. (default: disabled) --enable-mem-debug enable memory debugging (not for general MPI users!) (default: disabled) --enable-mem-profile enable memory profiling (not for general MPI users!) @@ -3413,14 +3477,14 @@ disabled) --enable-mpi-java enable Java MPI bindings (default: disabled) --enable-builtin-atomics - Enable use of __sync builtin atomics (default: + Enable use of __atomic builtin atomics (default: enabled) --enable-mca-no-build=LIST Comma-separated list of - pairs that will not be built. Example: - "--enable-mca-no-build=btl-portals,oob-ud" will - disable building the "portals" btl and the "ud" oob - components. + "--enable-mca-no-build=btl-portals4,topo-treematch" + will disable building the "portals4" btl and the + "treematch" topo components. --enable-mca-dso=LIST Comma-separated list of types and/or type-component pairs that will be built as run-time loadable components (as opposed to statically linked in), if @@ -3487,9 +3551,6 @@ --enable-memchecker Enable memory and buffer checks. Note that disabling will *also* add "memchecker" to the --enable-mca-no-build list (default: disabled) - --enable-install-libpmix - Enable a native PMIx library and headers in the OMPI - install location (default: disabled) --enable-pmix-timing Enable PMIx timing measurements (default: disabled) --disable-mmap-shmem disable mmap shared memory support (default: enabled) @@ -3501,6 +3562,9 @@ --enable-mtl-portals4-flow-control enable flow control for Portals 4 MTL (default: disabled) + --disable-psm2-version-check + Disable PSM2 version checking. Not recommended to + disable. (default: enabled) --disable-mmap-sshmem disable mmap shared memory support (default: enabled) --disable-sysv-sshmem disable sysv shared memory support (default: @@ -3643,6 +3707,15 @@ (default: no) --with-cs-fs Destination FS is case sensitive (default: set to value of the build FS's case sensitivity) + --with-libfabric=DIR Deprecated synonym for --with-ofi + --with-libfabric-libdir=DIR + Deprecated synonym for --with-ofi-libdir + --with-ofi=DIR Specify location of OFI libfabric installation, + adding DIR/include to the default search location + for libfabric headers, and DIR/lib or DIR/lib64 to + the default search location for libfabric libraries. + Error if libfabric support cannot be found. + --with-ofi-libdir=DIR Search for OFI libfabric libraries in DIR --with-ucx(=DIR) Build with Unified Communication X library support --with-ucx-libdir=DIR Search for Unified Communication X libraries in DIR --with-verbs(=DIR) Build verbs support, optionally adding DIR/include, @@ -3676,15 +3749,6 @@ variable to specify alternate path. --with-usnic If specified, cause an error if usNIC support cannot be built - --with-libfabric=DIR Deprecated synonym for --with-ofi - --with-libfabric-libdir=DIR - Deprecated synonym for --with-ofi-libdir - --with-ofi=DIR Specify location of OFI libfabric installation, - adding DIR/include to the default search location - for libfabric headers, and DIR/lib or DIR/lib64 to - the default search location for libfabric libraries. - Error if libfabric support cannot be found. - --with-ofi-libdir=DIR Search for OFI libfabric libraries in DIR --with-cray-xpmem(=yes/no) Build Cray XPMEM support(default: auto) --with-xpmem(=DIR) Build with XPMEM kernel module support, searching @@ -3772,9 +3836,16 @@ support, optionally adding DIR/include and DIR/lib or DIR/lib64 to the search path for headers and libraries + --with-ucc(=DIR) Build UCC (Unified Collective Communication) + --with-ime(=DIR) Build IME support, optionally adding DIR/include, + DIR/lib, and DIR/lib64 to the search path for + headers and libraries --with-pvfs2(=DIR) Build Pvfs2 support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries + --with-gpfs(=DIR) Build Gpfs support, optionally adding DIR/include, + DIR/lib, and DIR/lib64 to the search path for + headers and libraries --with-lustre(=DIR) Build Lustre support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries @@ -3966,7 +4037,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Open MPI configure 4.0.3 +Open MPI configure 4.1.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -4376,6 +4447,52 @@ } # ac_fn_c_check_member +# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +# --------------------------------------------- +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. +ac_fn_c_check_decl () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +$as_echo_n "checking whether $as_decl_name is declared... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +#ifndef $as_decl_name +#ifdef __cplusplus + (void) $as_decl_use; +#else + (void) $as_decl_name; +#endif +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_decl + # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly @@ -5101,7 +5218,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Open MPI $as_me 4.0.3, which was +It was created by Open MPI $as_me 4.1.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -5598,7 +5715,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:5601: Loading environment file $with_platform, with contents below" >&5 + echo "configure:5718: Loading environment file $with_platform, with contents below" >&5 else echo Loading environment file $with_platform, with contents below >&5 fi @@ -5631,7 +5748,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:5634: Loaded platform arguments for $platform_loaded" >&5 + echo "configure:5751: Loaded platform arguments for $platform_loaded" >&5 else echo Loaded platform arguments for $platform_loaded >&5 fi @@ -5827,7 +5944,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:5830: === ${1}" >&5 + echo "configure:5947: === ${1}" >&5 else echo === ${1} >&5 fi @@ -5843,7 +5960,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:5846: *** ${1}" >&5 + echo "configure:5963: *** ${1}" >&5 else echo *** ${1} >&5 fi @@ -5859,7 +5976,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:5862: +++ ${1}" >&5 + echo "configure:5979: +++ ${1}" >&5 else echo +++ ${1} >&5 fi @@ -5874,7 +5991,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:5877: --- ${1}" >&5 + echo "configure:5994: --- ${1}" >&5 else echo --- ${1} >&5 fi @@ -5889,7 +6006,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:5892: --- ${1}" >&5 + echo "configure:6009: --- ${1}" >&5 else echo --- ${1} >&5 fi @@ -5900,9 +6017,15 @@ # Save some stats about this build # -OPAL_CONFIGURE_USER="`whoami`" -OPAL_CONFIGURE_HOST="`(hostname || uname -n) 2> /dev/null | sed 1q`" -OPAL_CONFIGURE_DATE="`date`" +OPAL_CONFIGURE_USER="${USER:-`whoami`}" +OPAL_CONFIGURE_HOST="${HOSTNAME:-`(hostname || uname -n) 2> /dev/null | sed 1q`}" +# Note: it's ok to use $srcdir here because this macro is called at +# the very beginning of configure.ac: +# +# a) before $OMPI_TOP_SRCDIR is set, and +# b) from the top-level build directory (i.e., so $srcdir actually +# points to the top source directory) +OPAL_CONFIGURE_DATE="`$srcdir/config/getdate.sh`" opal_libnl_version=0 @@ -8005,7 +8128,7 @@ # Define the identity of the package. PACKAGE='openmpi' - VERSION='4.0.3' + VERSION='4.1.4' # Some tools Automake needs. @@ -8382,6 +8505,62 @@ CONFIGURE_DEPENDENCIES='$(top_srcdir)/VERSION' +# Sanity checks + + +ompi_dir=`pwd` + + dir="$ompi_dir" + article="a" + label="build tree" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking directory of $label" >&5 +$as_echo_n "checking directory of $label... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dir" >&5 +$as_echo "$dir" >&6; } + if test -n "`echo $dir | grep ' '`"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This version of Open MPI does not support $article $label" >&5 +$as_echo "$as_me: WARNING: This version of Open MPI does not support $article $label" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: with a path that contains spaces" >&5 +$as_echo "$as_me: WARNING: with a path that contains spaces" >&2;} + as_fn_error $? "Cannot continue." "$LINENO" 5 +fi + + + dir="$srcdir" + article="a" + label="source tree" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking directory of $label" >&5 +$as_echo_n "checking directory of $label... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dir" >&5 +$as_echo "$dir" >&6; } + if test -n "`echo $dir | grep ' '`"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This version of Open MPI does not support $article $label" >&5 +$as_echo "$as_me: WARNING: This version of Open MPI does not support $article $label" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: with a path that contains spaces" >&5 +$as_echo "$as_me: WARNING: with a path that contains spaces" >&2;} + as_fn_error $? "Cannot continue." "$LINENO" 5 +fi + + + dir="$prefix" + article="a" + label="prefix" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking directory of $label" >&5 +$as_echo_n "checking directory of $label... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dir" >&5 +$as_echo "$dir" >&6; } + if test -n "`echo $dir | grep ' '`"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This version of Open MPI does not support $article $label" >&5 +$as_echo "$as_me: WARNING: This version of Open MPI does not support $article $label" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: with a path that contains spaces" >&5 +$as_echo "$as_me: WARNING: with a path that contains spaces" >&2;} + as_fn_error $? "Cannot continue." "$LINENO" 5 +fi + + opal_show_subtitle "Checking versions" # Get the version of OMPI that we are installing @@ -8427,18 +8606,18 @@ # If we're in a git repo and we found the git command, use # git describe to get the repo rev - if test -d "$srcdir/.git" && test $git_happy -eq 1; then + if test -r "$srcdir/.git" && test $git_happy -eq 1; then if test "$srcdir" != "`pwd`"; then git_save_dir=`pwd` - cd $srcdir + cd "$srcdir" OMPI_REPO_REV=`git describe --tags --always` - cd $git_save_dir + cd "$git_save_dir" unset git_save_dir else OMPI_REPO_REV=`git describe --tags --always` fi else - OMPI_REPO_REV="date`date '+%Y-%m-%d'`" + OMPI_REPO_REV=`$srcdir/config/getdate.sh '+%Y-%m-%d'` fi fi @@ -8555,18 +8734,18 @@ # If we're in a git repo and we found the git command, use # git describe to get the repo rev - if test -d "$srcdir/.git" && test $git_happy -eq 1; then + if test -r "$srcdir/.git" && test $git_happy -eq 1; then if test "$srcdir" != "`pwd`"; then git_save_dir=`pwd` - cd $srcdir + cd "$srcdir" ORTE_REPO_REV=`git describe --tags --always` - cd $git_save_dir + cd "$git_save_dir" unset git_save_dir else ORTE_REPO_REV=`git describe --tags --always` fi else - ORTE_REPO_REV="date`date '+%Y-%m-%d'`" + ORTE_REPO_REV=`$srcdir/config/getdate.sh '+%Y-%m-%d'` fi fi @@ -8683,18 +8862,18 @@ # If we're in a git repo and we found the git command, use # git describe to get the repo rev - if test -d "$srcdir/.git" && test $git_happy -eq 1; then + if test -r "$srcdir/.git" && test $git_happy -eq 1; then if test "$srcdir" != "`pwd`"; then git_save_dir=`pwd` - cd $srcdir + cd "$srcdir" OSHMEM_REPO_REV=`git describe --tags --always` - cd $git_save_dir + cd "$git_save_dir" unset git_save_dir else OSHMEM_REPO_REV=`git describe --tags --always` fi else - OSHMEM_REPO_REV="date`date '+%Y-%m-%d'`" + OSHMEM_REPO_REV=`$srcdir/config/getdate.sh '+%Y-%m-%d'` fi fi @@ -8811,18 +8990,18 @@ # If we're in a git repo and we found the git command, use # git describe to get the repo rev - if test -d "$srcdir/.git" && test $git_happy -eq 1; then + if test -r "$srcdir/.git" && test $git_happy -eq 1; then if test "$srcdir" != "`pwd`"; then git_save_dir=`pwd` - cd $srcdir + cd "$srcdir" OPAL_REPO_REV=`git describe --tags --always` - cd $git_save_dir + cd "$git_save_dir" unset git_save_dir else OPAL_REPO_REV=`git describe --tags --always` fi else - OPAL_REPO_REV="date`date '+%Y-%m-%d'`" + OPAL_REPO_REV=`$srcdir/config/getdate.sh '+%Y-%m-%d'` fi fi @@ -8926,6 +9105,7 @@ + # # Get the versions of the autotools that were used to bootstrap us # (helpful for debugging reports) @@ -8981,14 +9161,6 @@ # -# Save some stats about this build -# - -OPAL_CONFIGURE_USER="`whoami`" -OPAL_CONFIGURE_HOST="`(hostname || uname -n) 2> /dev/null | sed 1q`" -OPAL_CONFIGURE_DATE="`date`" - -# # Make automake clean emacs ~ files for "make clean" # @@ -9248,6 +9420,16 @@ WANT_BRANCH_PROBABILITIES=0 fi +# Check whether --enable-builtin-atomics-for-ppc was given. +if test "${enable_builtin_atomics_for_ppc+set}" = set; then : + enableval=$enable_builtin_atomics_for_ppc; +fi + +if test "x$enable_builtin_atomics_for_ppc" = "xyes" ; then +force_gcc_atomics_ppc=1 +else +force_gcc_atomics_ppc=0 +fi # # Memory debugging @@ -9678,7 +9860,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:9681: Loading cross-compile file $with_cross, with contents below" >&5 + echo "configure:9863: Loading cross-compile file $with_cross, with contents below" >&5 else echo Loading cross-compile file $with_cross, with contents below >&5 fi @@ -10798,14 +10980,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:10801: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lz $LIBS $opal_zlib_LIBS" >&5 +echo "configure:10983: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lz $LIBS $opal_zlib_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lz $LIBS $opal_zlib_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:10808: \$? = $opal_status" >&5 + echo "configure:10990: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -11523,14 +11705,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:11526: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lz $LIBS $opal_zlib_LIBS" >&5 +echo "configure:11708: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lz $LIBS $opal_zlib_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lz $LIBS $opal_zlib_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:11533: \$? = $opal_status" >&5 + echo "configure:11715: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -12330,53 +12512,7 @@ # If we have CUDA support, check to see if we have support for SYNC_MEMOPS # which was first introduced in CUDA 6.0. if test "$opal_check_cuda_happy"="yes"; then : - -# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES -# --------------------------------------------- -# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR -# accordingly. -ac_fn_c_check_decl () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - as_decl_name=`echo $2|sed 's/ *(.*//'` - as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 -$as_echo_n "checking whether $as_decl_name is declared... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -#ifndef $as_decl_name -#ifdef __cplusplus - (void) $as_decl_use; -#else - (void) $as_decl_name; -#endif -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_decl -ac_fn_c_check_decl "$LINENO" "CU_POINTER_ATTRIBUTE_SYNC_MEMOPS" "ac_cv_have_decl_CU_POINTER_ATTRIBUTE_SYNC_MEMOPS" "#include <$opal_cuda_incdir/cuda.h> + ac_fn_c_check_decl "$LINENO" "CU_POINTER_ATTRIBUTE_SYNC_MEMOPS" "ac_cv_have_decl_CU_POINTER_ATTRIBUTE_SYNC_MEMOPS" "#include <$opal_cuda_incdir/cuda.h> " if test "x$ac_cv_have_decl_CU_POINTER_ATTRIBUTE_SYNC_MEMOPS" = xyes; then : CUDA_SYNC_MEMOPS=1 @@ -12574,6 +12710,37 @@ +# Check whether --with-pmi was given. +if test "${with_pmi+set}" = set; then : + withval=$with_pmi; +else + with_pmi=no +fi + + + +# Check whether --with-pmi-libdir was given. +if test "${with_pmi_libdir+set}" = set; then : + withval=$with_pmi_libdir; +fi + + + +# Check whether --with-pmix was given. +if test "${with_pmix+set}" = set; then : + withval=$with_pmix; +fi + + + +# Check whether --with-pmix-libdir was given. +if test "${with_pmix_libdir+set}" = set; then : + withval=$with_pmix_libdir; +fi + + + + # Is the private index set? If not, set it. if test "x$opal_scope_index" = "x"; then @@ -12611,22 +12778,6 @@ opal_scope_index=`expr $opal_scope_index + 1` - -# Check whether --with-pmi was given. -if test "${with_pmi+set}" = set; then : - withval=$with_pmi; -else - with_pmi=no -fi - - - -# Check whether --with-pmi-libdir was given. -if test "${with_pmi_libdir+set}" = set; then : - withval=$with_pmi_libdir; -fi - - check_pmi_install_dir= check_pmi_lib_dir= default_pmi_libloc= @@ -13314,8 +13465,8 @@ fi fi - # check for pmix lib installed by slurm */ - slurm_pmix_found=no + # check for pmix lib installed by slurm unless an other PMIx library is requested + if test -z "$with_pmix" || test "$with_pmix" = "yes" || test "$with_pmix" = "external"; then : @@ -13494,6 +13645,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; } opal_external_pmix_version=4x + opal_external_pmix_version_major=4 opal_external_pmix_version_found=1 opal_external_pmix_happy=yes else @@ -13526,6 +13678,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; } opal_external_pmix_version=3x + opal_external_pmix_version_major=3 opal_external_pmix_version_found=1 opal_external_pmix_happy=yes else @@ -13558,6 +13711,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; } opal_external_pmix_version=2x + opal_external_pmix_version_major=2 opal_external_pmix_version_found=1 opal_external_pmix_happy=yes else @@ -13590,6 +13744,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; } opal_external_pmix_version=1x + opal_external_pmix_version_major=1 opal_external_pmix_version_found=1 opal_external_have_pmix1=1 opal_external_pmix_happy=yes @@ -13643,6 +13798,7 @@ done +fi # since support was explicitly requested, then we should error out # if we didn't find the required support @@ -13701,20 +13857,6 @@ - -# Check whether --with-pmix was given. -if test "${with_pmix+set}" = set; then : - withval=$with_pmix; -fi - - - -# Check whether --with-pmix-libdir was given. -if test "${with_pmix_libdir+set}" = set; then : - withval=$with_pmix_libdir; -fi - - if test "$with_pmix" = "no"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI requires PMIx support. It can be built" >&5 $as_echo "$as_me: WARNING: Open MPI requires PMIx support. It can be built" >&2;} @@ -13929,6 +14071,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; } opal_external_pmix_version=4x + opal_external_pmix_version_major=4 opal_external_pmix_version_found=1 opal_external_pmix_happy=yes else @@ -13961,6 +14104,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; } opal_external_pmix_version=3x + opal_external_pmix_version_major=3 opal_external_pmix_version_found=1 opal_external_pmix_happy=yes else @@ -13993,6 +14137,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; } opal_external_pmix_version=2x + opal_external_pmix_version_major=2 opal_external_pmix_version_found=1 opal_external_pmix_happy=yes else @@ -14025,6 +14170,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; } opal_external_pmix_version=1x + opal_external_pmix_version_major=1 opal_external_pmix_version_found=1 opal_external_have_pmix1=1 opal_external_pmix_happy=yes @@ -14367,6 +14513,7 @@ fi + opal_show_subtitle "ORTE Configuration options" # @@ -19689,7 +19836,7 @@ opal_cv_cc_wno_long_double="yes" if test -s conftest.err ; then - for i in unknown invalid ignor unrecognized ; do + for i in unknown invalid ignor unrecognized 'not supported'; do $GREP -iq $i conftest.err if test "$?" = "0" ; then opal_cv_cc_wno_long_double="no" @@ -20493,14 +20640,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:20496: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 +echo "configure:20643: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:20503: \$? = $opal_status" >&5 + echo "configure:20650: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -20536,14 +20683,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:20539: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 +echo "configure:20686: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:20546: \$? = $opal_status" >&5 + echo "configure:20693: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -20579,14 +20726,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:20582: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 +echo "configure:20729: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:20589: \$? = $opal_status" >&5 + echo "configure:20736: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -20608,7 +20755,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:20611: the failed program was:" >&5 + echo "configure:20758: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -20636,7 +20783,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:20639: the failed program was:" >&5 + echo "configure:20786: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -20667,14 +20814,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:20670: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 +echo "configure:20817: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:20677: \$? = $opal_status" >&5 + echo "configure:20824: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -20696,7 +20843,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:20699: the failed program was:" >&5 + echo "configure:20846: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -20740,14 +20887,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:20743: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 +echo "configure:20890: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:20750: \$? = $opal_status" >&5 + echo "configure:20897: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -20769,7 +20916,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:20772: the failed program was:" >&5 + echo "configure:20919: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -20806,7 +20953,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:20809: the failed program was:" >&5 + echo "configure:20956: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -20837,14 +20984,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:20840: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 +echo "configure:20987: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:20847: \$? = $opal_status" >&5 + echo "configure:20994: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -20880,14 +21027,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:20883: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 +echo "configure:21030: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:20890: \$? = $opal_status" >&5 + echo "configure:21037: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -20909,7 +21056,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:20912: the failed program was:" >&5 + echo "configure:21059: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -20937,7 +21084,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:20940: the failed program was:" >&5 + echo "configure:21087: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -20968,14 +21115,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:20971: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 +echo "configure:21118: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:20978: \$? = $opal_status" >&5 + echo "configure:21125: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -20997,7 +21144,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:21000: the failed program was:" >&5 + echo "configure:21147: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -21041,14 +21188,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:21044: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 +echo "configure:21191: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:21051: \$? = $opal_status" >&5 + echo "configure:21198: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -21070,7 +21217,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:21073: the failed program was:" >&5 + echo "configure:21220: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -21123,14 +21270,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:21126: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 +echo "configure:21273: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:21133: \$? = $opal_status" >&5 + echo "configure:21280: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -21166,14 +21313,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:21169: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 +echo "configure:21316: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:21176: \$? = $opal_status" >&5 + echo "configure:21323: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -21195,7 +21342,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:21198: the failed program was:" >&5 + echo "configure:21345: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -21223,7 +21370,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:21226: the failed program was:" >&5 + echo "configure:21373: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -21254,14 +21401,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:21257: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 +echo "configure:21404: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:21264: \$? = $opal_status" >&5 + echo "configure:21411: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -21283,7 +21430,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:21286: the failed program was:" >&5 + echo "configure:21433: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -21327,14 +21474,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:21330: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 +echo "configure:21477: $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.c -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:21337: \$? = $opal_status" >&5 + echo "configure:21484: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -21356,7 +21503,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:21359: the failed program was:" >&5 + echo "configure:21506: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -22504,6 +22651,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -22578,6 +22726,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -22652,6 +22801,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -22726,6 +22876,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -22800,6 +22951,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -22875,6 +23027,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -22950,6 +23103,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -23024,6 +23178,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -23098,6 +23253,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -23172,6 +23328,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -23246,6 +23403,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -23321,6 +23479,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -23396,6 +23555,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -23470,6 +23630,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -23545,6 +23706,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -23621,6 +23783,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -23701,6 +23864,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -23777,6 +23941,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -23853,6 +24018,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -23929,6 +24095,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -24003,6 +24170,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -24071,14 +24239,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:24074: $CC $CFLAGS -c conftest_weak.c" >&5 +echo "configure:24242: $CC $CFLAGS -c conftest_weak.c" >&5 $CC $CFLAGS -c conftest_weak.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:24081: \$? = $opal_status" >&5 + echo "configure:24249: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -24088,14 +24256,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:24091: $CC $CFLAGS conftest.c conftest_weak.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:24259: $CC $CFLAGS conftest.c conftest_weak.o -o conftest $LDFLAGS $LIBS" >&5 $CC $CFLAGS conftest.c conftest_weak.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:24098: \$? = $opal_status" >&5 + echo "configure:24266: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -24168,14 +24336,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:24171: $CC $CFLAGS -c conftest_weak.c" >&5 +echo "configure:24339: $CC $CFLAGS -c conftest_weak.c" >&5 $CC $CFLAGS -c conftest_weak.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:24178: \$? = $opal_status" >&5 + echo "configure:24346: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -24185,14 +24353,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:24188: $CC $CFLAGS conftest.c conftest_weak.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:24356: $CC $CFLAGS conftest.c conftest_weak.o -o conftest $LDFLAGS $LIBS" >&5 $CC $CFLAGS conftest.c conftest_weak.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:24195: \$? = $opal_status" >&5 + echo "configure:24363: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -26018,7 +26186,7 @@ opal_cv_cxx_wno_long_double="yes" if test -s conftest.err ; then - for i in unknown invalid ignor unrecognized ; do + for i in unknown invalid ignor unrecognized 'not supported'; do $GREP -iq $i conftest.err if test "$?" = "0" ; then opal_cv_cxx_wno_long_double="no" @@ -26324,14 +26492,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:26327: $CC -c $CFLAGS $CPPFLAGS conftest_c.$ac_ext" >&5 +echo "configure:26495: $CC -c $CFLAGS $CPPFLAGS conftest_c.$ac_ext" >&5 $CC -c $CFLAGS $CPPFLAGS conftest_c.$ac_ext 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:26334: \$? = $opal_status" >&5 + echo "configure:26502: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -26572,6 +26740,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -27999,14 +28168,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:28002: $CC -c $CFLAGS $CPPFLAGS conftest_c.$ac_ext" >&5 +echo "configure:28171: $CC -c $CFLAGS $CPPFLAGS conftest_c.$ac_ext" >&5 $CC -c $CFLAGS $CPPFLAGS conftest_c.$ac_ext 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:28009: \$? = $opal_status" >&5 + echo "configure:28178: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -28247,6 +28416,7 @@ FILE *f=fopen("conftestval", "w"); if (!f) exit(1); diff = ((char *)&p->x) - ((char *)&p->c); + free(p); fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); ; @@ -29531,23 +29701,23 @@ EOF ompi_template_failed= -echo configure:29534: $CXX $CXXFLAGS -c conftest1.C >&5 +echo configure:29704: $CXX $CXXFLAGS -c conftest1.C >&5 $CXX $CXXFLAGS -c conftest1.C >&5 2>&5 if test ! -f conftest1.o ; then ompi_cv_cxx_template_repository="templates not supported" - echo configure:29538: here is the program that failed: >&5 + echo configure:29708: here is the program that failed: >&5 cat conftest1.C >&5 - echo configure:29540: here is conftest.h: >&5 + echo configure:29710: here is conftest.h: >&5 cat conftest.h >&5 ompi_template_failed=1 else - echo configure:29544: $CXX $CXXFLAGS -c conftest2.C >&5 + echo configure:29714: $CXX $CXXFLAGS -c conftest2.C >&5 $CXX $CXXFLAGS -c conftest2.C >&5 2>&5 if test ! -f conftest2.o ; then ompi_cv_cxx_template_repository= - echo configure:29548: here is the program that failed: >&5 + echo configure:29718: here is the program that failed: >&5 cat conftest2.C >&5 - echo configure:29550: here is conftest.h: >&5 + echo configure:29720: here is conftest.h: >&5 cat conftest.h >&5 else rm -rf conftest* @@ -29662,14 +29832,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:29665: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 +echo "configure:29835: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:29672: \$? = $opal_status" >&5 + echo "configure:29842: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -29705,14 +29875,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:29708: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 +echo "configure:29878: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:29715: \$? = $opal_status" >&5 + echo "configure:29885: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -29748,14 +29918,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:29751: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 +echo "configure:29921: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:29758: \$? = $opal_status" >&5 + echo "configure:29928: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -29777,7 +29947,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:29780: the failed program was:" >&5 + echo "configure:29950: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -29805,7 +29975,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:29808: the failed program was:" >&5 + echo "configure:29978: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -29836,14 +30006,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:29839: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 +echo "configure:30009: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:29846: \$? = $opal_status" >&5 + echo "configure:30016: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -29865,7 +30035,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:29868: the failed program was:" >&5 + echo "configure:30038: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -29909,14 +30079,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:29912: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 +echo "configure:30082: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:29919: \$? = $opal_status" >&5 + echo "configure:30089: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -29938,7 +30108,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:29941: the failed program was:" >&5 + echo "configure:30111: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -29975,7 +30145,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:29978: the failed program was:" >&5 + echo "configure:30148: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -30006,14 +30176,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:30009: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 +echo "configure:30179: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:30016: \$? = $opal_status" >&5 + echo "configure:30186: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -30049,14 +30219,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:30052: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 +echo "configure:30222: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:30059: \$? = $opal_status" >&5 + echo "configure:30229: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -30078,7 +30248,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:30081: the failed program was:" >&5 + echo "configure:30251: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -30106,7 +30276,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:30109: the failed program was:" >&5 + echo "configure:30279: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -30137,14 +30307,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:30140: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 +echo "configure:30310: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:30147: \$? = $opal_status" >&5 + echo "configure:30317: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -30166,7 +30336,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:30169: the failed program was:" >&5 + echo "configure:30339: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -30210,14 +30380,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:30213: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 +echo "configure:30383: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:30220: \$? = $opal_status" >&5 + echo "configure:30390: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -30239,7 +30409,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:30242: the failed program was:" >&5 + echo "configure:30412: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -30292,14 +30462,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:30295: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 +echo "configure:30465: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:30302: \$? = $opal_status" >&5 + echo "configure:30472: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -30335,14 +30505,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:30338: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 +echo "configure:30508: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:30345: \$? = $opal_status" >&5 + echo "configure:30515: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -30364,7 +30534,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:30367: the failed program was:" >&5 + echo "configure:30537: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -30392,7 +30562,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:30395: the failed program was:" >&5 + echo "configure:30565: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -30423,14 +30593,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:30426: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 +echo "configure:30596: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:30433: \$? = $opal_status" >&5 + echo "configure:30603: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -30452,7 +30622,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:30455: the failed program was:" >&5 + echo "configure:30625: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -30496,14 +30666,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:30499: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 +echo "configure:30669: $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT}" >&5 $opal_compiler $opal_flags -c conftest.cc -o conftest.${OBJEXT} 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:30506: \$? = $opal_status" >&5 + echo "configure:30676: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -30525,7 +30695,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:30528: the failed program was:" >&5 + echo "configure:30698: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -39317,14 +39487,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:39320: $CC $CFLAGS -c conftest.c -o conftest.$OBJEXT" >&5 +echo "configure:39490: $CC $CFLAGS -c conftest.c -o conftest.$OBJEXT" >&5 $CC $CFLAGS -c conftest.c -o conftest.$OBJEXT 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:39327: \$? = $opal_status" >&5 + echo "configure:39497: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -39337,7 +39507,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:39340: the failed program was:" >&5 + echo "configure:39510: the failed program was:" >&5 else echo the failed program was: >&5 fi @@ -40597,6 +40767,12 @@ #define OPAL_ASM_ARM_VERSION $OPAL_ASM_ARM_VERSION _ACEOF + # If built-in atomics were not specifically request then disable the + # use of built-in atomics. The performance of Open MPI when using the + # built-ins is worse than when they are not in use. + if test "$enable_builtin_atomics" != "yes" ; then + opal_cv_asm_builtin="BUILTIN_NO" + fi OPAL_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)' ;; @@ -41715,6 +41891,22 @@ as_fn_error $? "Could not determine PowerPC word size: $ac_cv_sizeof_long" "$LINENO" 5 fi OPAL_GCC_INLINE_ASSIGN='"1: li %0,0" : "=&r"(ret)' + + # See the following github PR and some performance numbers/discussion: + # https://github.com/open-mpi/ompi/pull/8649 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $opal_cv_asm_arch: Checking if force gcc atomics requested" >&5 +$as_echo_n "checking $opal_cv_asm_arch: Checking if force gcc atomics requested... " >&6; } + if test $force_gcc_atomics_ppc = 0 ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_cv_asm_builtin="BUILTIN_NO" + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Yes" >&5 +$as_echo "Yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $opal_cv_asm_arch: gcc atomics have been known to perform poorly on powerpc." >&5 +$as_echo "$as_me: WARNING: $opal_cv_asm_arch: gcc atomics have been known to perform poorly on powerpc." >&2;} + fi + ;; # There is no current difference between s390 and s390x # But use two different defines in case some come later @@ -43368,7 +43560,7 @@ # Check for RDTSCP support result=0 - if test "$opal_cv_asm_arch" = "OPAL_X86_64" || test "$opal_cv_asm_arch" = "OPAL_IA32"; then : + if test "$opal_cv_asm_arch" = "X86_64" || test "$opal_cv_asm_arch" = "IA32"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RDTSCP assembly support" >&5 $as_echo_n "checking for RDTSCP assembly support... " >&6; } ac_ext=c @@ -44226,6 +44418,75 @@ fi + # Check to see if we need additional compiler flags for + # preprocessing .F90 files. + if test $ompi_fc_happy -eq 1; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compilers preprocess .F90 files without additional flag" >&5 +$as_echo_n "checking if Fortran compilers preprocess .F90 files without additional flag... " >&6; } + cat > conftest_f.F90 << EOF +#if 0 +#error The source file was not preprocessed +#endif + program bogus + end program +EOF + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:44438: $FC $FCFLAGS -c conftest_f.F90" >&5 +$FC $FCFLAGS -c conftest_f.F90 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:44445: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -fpp flag works" >&5 +$as_echo_n "checking if -fpp flag works... " >&6; } + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:44463: $FC $FCFLAGS -fpp -c conftest_f.F90" >&5 +$FC $FCFLAGS -fpp -c conftest_f.F90 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:44470: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + FCFLAGS="$FCFLAGS -fpp" +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "cannot preprocess Fortran files, Aborting" "$LINENO" 5 +fi +fi + rm -f conftest* + +fi + # Per trac #1982, on OS X, we may need some esoteric linker flags # in the wrapper compilers. However, per # https://github.com/open-mpi/ompi/issues/259, we need to use @@ -44449,7 +44710,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:44452: Try with new FCFLAGS: $FCFLAGS_NEW and new LDFLAGS:$LDFLAGS_NEW" >&5 + echo "configure:44713: Try with new FCFLAGS: $FCFLAGS_NEW and new LDFLAGS:$LDFLAGS_NEW" >&5 else echo Try with new FCFLAGS: $FCFLAGS_NEW and new LDFLAGS:$LDFLAGS_NEW >&5 fi @@ -44465,14 +44726,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:44468: $FC $FCFLAGS_NEW -c conftest.f $LDFLAGS_NEW $LIBS" >&5 +echo "configure:44729: $FC $FCFLAGS_NEW -c conftest.f $LDFLAGS_NEW $LIBS" >&5 $FC $FCFLAGS_NEW -c conftest.f $LDFLAGS_NEW $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:44475: \$? = $opal_status" >&5 + echo "configure:44736: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -44494,7 +44755,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:44497: Could not determine Fortran naming convention. Output from $NM:" >&5 + echo "configure:44758: Could not determine Fortran naming convention. Output from $NM:" >&5 else echo Could not determine Fortran naming convention. Output from $NM: >&5 fi @@ -44610,14 +44871,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:44613: $CC -c $CFLAGS $CPPFLAGS conftest_c.$ac_ext" >&5 +echo "configure:44874: $CC -c $CFLAGS $CPPFLAGS conftest_c.$ac_ext" >&5 $CC -c $CFLAGS $CPPFLAGS conftest_c.$ac_ext 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:44620: \$? = $opal_status" >&5 + echo "configure:44881: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -45140,14 +45401,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:45143: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:45404: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:45150: \$? = $opal_status" >&5 + echo "configure:45411: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -45157,14 +45418,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:45160: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:45421: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:45167: \$? = $opal_status" >&5 + echo "configure:45428: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -45185,7 +45446,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:45188: here is the Fortran program:" >&5 + echo "configure:45449: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -45208,14 +45469,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:45211: ./conftest" >&5 +echo "configure:45472: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:45218: \$? = $opal_status" >&5 + echo "configure:45479: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -45447,14 +45708,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:45450: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:45711: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:45457: \$? = $opal_status" >&5 + echo "configure:45718: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -45464,14 +45725,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:45467: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:45728: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:45474: \$? = $opal_status" >&5 + echo "configure:45735: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -45502,14 +45763,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:45505: ./conftest" >&5 +echo "configure:45766: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:45512: \$? = $opal_status" >&5 + echo "configure:45773: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -46036,14 +46297,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:46039: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:46300: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:46046: \$? = $opal_status" >&5 + echo "configure:46307: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -46053,14 +46314,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:46056: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:46317: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:46063: \$? = $opal_status" >&5 + echo "configure:46324: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -46081,7 +46342,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:46084: here is the Fortran program:" >&5 + echo "configure:46345: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -46104,14 +46365,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:46107: ./conftest" >&5 +echo "configure:46368: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:46114: \$? = $opal_status" >&5 + echo "configure:46375: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -46343,14 +46604,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:46346: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:46607: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:46353: \$? = $opal_status" >&5 + echo "configure:46614: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -46360,14 +46621,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:46363: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:46624: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:46370: \$? = $opal_status" >&5 + echo "configure:46631: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -46398,14 +46659,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:46401: ./conftest" >&5 +echo "configure:46662: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:46408: \$? = $opal_status" >&5 + echo "configure:46669: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -46931,14 +47192,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:46934: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:47195: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:46941: \$? = $opal_status" >&5 + echo "configure:47202: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -46948,14 +47209,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:46951: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:47212: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:46958: \$? = $opal_status" >&5 + echo "configure:47219: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -46976,7 +47237,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:46979: here is the Fortran program:" >&5 + echo "configure:47240: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -46999,14 +47260,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:47002: ./conftest" >&5 +echo "configure:47263: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:47009: \$? = $opal_status" >&5 + echo "configure:47270: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -47250,14 +47511,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:47253: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:47514: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:47260: \$? = $opal_status" >&5 + echo "configure:47521: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -47267,14 +47528,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:47270: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:47531: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:47277: \$? = $opal_status" >&5 + echo "configure:47538: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -47305,14 +47566,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:47308: ./conftest" >&5 +echo "configure:47569: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:47315: \$? = $opal_status" >&5 + echo "configure:47576: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -47838,14 +48099,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:47841: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:48102: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:47848: \$? = $opal_status" >&5 + echo "configure:48109: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -47855,14 +48116,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:47858: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:48119: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:47865: \$? = $opal_status" >&5 + echo "configure:48126: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -47883,7 +48144,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:47886: here is the Fortran program:" >&5 + echo "configure:48147: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -47906,14 +48167,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:47909: ./conftest" >&5 +echo "configure:48170: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:47916: \$? = $opal_status" >&5 + echo "configure:48177: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -48152,14 +48413,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:48155: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:48416: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:48162: \$? = $opal_status" >&5 + echo "configure:48423: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -48169,14 +48430,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:48172: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:48433: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:48179: \$? = $opal_status" >&5 + echo "configure:48440: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -48207,14 +48468,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:48210: ./conftest" >&5 +echo "configure:48471: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:48217: \$? = $opal_status" >&5 + echo "configure:48478: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -48740,14 +49001,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:48743: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:49004: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:48750: \$? = $opal_status" >&5 + echo "configure:49011: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -48757,14 +49018,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:48760: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:49021: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:48767: \$? = $opal_status" >&5 + echo "configure:49028: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -48785,7 +49046,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:48788: here is the Fortran program:" >&5 + echo "configure:49049: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -48808,14 +49069,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:48811: ./conftest" >&5 +echo "configure:49072: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:48818: \$? = $opal_status" >&5 + echo "configure:49079: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -49044,14 +49305,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:49047: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:49308: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:49054: \$? = $opal_status" >&5 + echo "configure:49315: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -49061,14 +49322,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:49064: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:49325: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:49071: \$? = $opal_status" >&5 + echo "configure:49332: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -49099,14 +49360,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:49102: ./conftest" >&5 +echo "configure:49363: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:49109: \$? = $opal_status" >&5 + echo "configure:49370: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -49632,14 +49893,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:49635: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:49896: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:49642: \$? = $opal_status" >&5 + echo "configure:49903: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -49649,14 +49910,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:49652: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:49913: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:49659: \$? = $opal_status" >&5 + echo "configure:49920: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -49677,7 +49938,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:49680: here is the Fortran program:" >&5 + echo "configure:49941: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -49700,14 +49961,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:49703: ./conftest" >&5 +echo "configure:49964: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:49710: \$? = $opal_status" >&5 + echo "configure:49971: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -49931,14 +50192,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:49934: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:50195: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:49941: \$? = $opal_status" >&5 + echo "configure:50202: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -49948,14 +50209,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:49951: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:50212: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:49958: \$? = $opal_status" >&5 + echo "configure:50219: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -49986,14 +50247,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:49989: ./conftest" >&5 +echo "configure:50250: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:49996: \$? = $opal_status" >&5 + echo "configure:50257: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -50520,14 +50781,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:50523: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:50784: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:50530: \$? = $opal_status" >&5 + echo "configure:50791: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -50537,14 +50798,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:50540: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:50801: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:50547: \$? = $opal_status" >&5 + echo "configure:50808: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -50565,7 +50826,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:50568: here is the Fortran program:" >&5 + echo "configure:50829: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -50588,14 +50849,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:50591: ./conftest" >&5 +echo "configure:50852: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:50598: \$? = $opal_status" >&5 + echo "configure:50859: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -50822,14 +51083,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:50825: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:51086: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:50832: \$? = $opal_status" >&5 + echo "configure:51093: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -50839,14 +51100,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:50842: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:51103: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:50849: \$? = $opal_status" >&5 + echo "configure:51110: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -50877,14 +51138,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:50880: ./conftest" >&5 +echo "configure:51141: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:50887: \$? = $opal_status" >&5 + echo "configure:51148: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -51410,14 +51671,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:51413: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:51674: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:51420: \$? = $opal_status" >&5 + echo "configure:51681: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -51427,14 +51688,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:51430: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:51691: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:51437: \$? = $opal_status" >&5 + echo "configure:51698: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -51455,7 +51716,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:51458: here is the Fortran program:" >&5 + echo "configure:51719: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -51478,14 +51739,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:51481: ./conftest" >&5 +echo "configure:51742: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:51488: \$? = $opal_status" >&5 + echo "configure:51749: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -51724,14 +51985,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:51727: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:51988: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:51734: \$? = $opal_status" >&5 + echo "configure:51995: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -51741,14 +52002,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:51744: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:52005: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:51751: \$? = $opal_status" >&5 + echo "configure:52012: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -51779,14 +52040,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:51782: ./conftest" >&5 +echo "configure:52043: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:51789: \$? = $opal_status" >&5 + echo "configure:52050: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -52312,14 +52573,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:52315: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:52576: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:52322: \$? = $opal_status" >&5 + echo "configure:52583: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -52329,14 +52590,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:52332: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:52593: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:52339: \$? = $opal_status" >&5 + echo "configure:52600: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -52357,7 +52618,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:52360: here is the Fortran program:" >&5 + echo "configure:52621: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -52380,14 +52641,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:52383: ./conftest" >&5 +echo "configure:52644: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:52390: \$? = $opal_status" >&5 + echo "configure:52651: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -52626,14 +52887,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:52629: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:52890: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:52636: \$? = $opal_status" >&5 + echo "configure:52897: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -52643,14 +52904,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:52646: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:52907: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:52653: \$? = $opal_status" >&5 + echo "configure:52914: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -52681,14 +52942,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:52684: ./conftest" >&5 +echo "configure:52945: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:52691: \$? = $opal_status" >&5 + echo "configure:52952: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -53214,14 +53475,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:53217: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:53478: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:53224: \$? = $opal_status" >&5 + echo "configure:53485: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -53231,14 +53492,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:53234: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:53495: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:53241: \$? = $opal_status" >&5 + echo "configure:53502: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -53259,7 +53520,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:53262: here is the Fortran program:" >&5 + echo "configure:53523: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -53282,14 +53543,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:53285: ./conftest" >&5 +echo "configure:53546: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:53292: \$? = $opal_status" >&5 + echo "configure:53553: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -53518,14 +53779,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:53521: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:53782: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:53528: \$? = $opal_status" >&5 + echo "configure:53789: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -53535,14 +53796,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:53538: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:53799: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:53545: \$? = $opal_status" >&5 + echo "configure:53806: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -53573,14 +53834,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:53576: ./conftest" >&5 +echo "configure:53837: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:53583: \$? = $opal_status" >&5 + echo "configure:53844: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -54106,14 +54367,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:54109: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:54370: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:54116: \$? = $opal_status" >&5 + echo "configure:54377: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -54123,14 +54384,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:54126: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:54387: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:54133: \$? = $opal_status" >&5 + echo "configure:54394: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -54151,7 +54412,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:54154: here is the Fortran program:" >&5 + echo "configure:54415: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -54174,14 +54435,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:54177: ./conftest" >&5 +echo "configure:54438: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:54184: \$? = $opal_status" >&5 + echo "configure:54445: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -54405,14 +54666,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:54408: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:54669: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:54415: \$? = $opal_status" >&5 + echo "configure:54676: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -54422,14 +54683,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:54425: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:54686: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:54432: \$? = $opal_status" >&5 + echo "configure:54693: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -54460,14 +54721,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:54463: ./conftest" >&5 +echo "configure:54724: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:54470: \$? = $opal_status" >&5 + echo "configure:54731: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -54993,14 +55254,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:54996: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:55257: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:55003: \$? = $opal_status" >&5 + echo "configure:55264: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -55010,14 +55271,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:55013: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:55274: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:55020: \$? = $opal_status" >&5 + echo "configure:55281: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -55038,7 +55299,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:55041: here is the Fortran program:" >&5 + echo "configure:55302: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -55061,14 +55322,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:55064: ./conftest" >&5 +echo "configure:55325: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:55071: \$? = $opal_status" >&5 + echo "configure:55332: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -55292,14 +55553,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:55295: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:55556: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:55302: \$? = $opal_status" >&5 + echo "configure:55563: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -55309,14 +55570,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:55312: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:55573: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:55319: \$? = $opal_status" >&5 + echo "configure:55580: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -55347,14 +55608,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:55350: ./conftest" >&5 +echo "configure:55611: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:55357: \$? = $opal_status" >&5 + echo "configure:55618: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -55881,14 +56142,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:55884: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:56145: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:55891: \$? = $opal_status" >&5 + echo "configure:56152: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -55898,14 +56159,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:55901: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:56162: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:55908: \$? = $opal_status" >&5 + echo "configure:56169: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -55926,7 +56187,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:55929: here is the Fortran program:" >&5 + echo "configure:56190: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -55949,14 +56210,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:55952: ./conftest" >&5 +echo "configure:56213: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:55959: \$? = $opal_status" >&5 + echo "configure:56220: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -56173,14 +56434,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:56176: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:56437: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:56183: \$? = $opal_status" >&5 + echo "configure:56444: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -56190,14 +56451,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:56193: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:56454: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:56200: \$? = $opal_status" >&5 + echo "configure:56461: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -56228,14 +56489,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:56231: ./conftest" >&5 +echo "configure:56492: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:56238: \$? = $opal_status" >&5 + echo "configure:56499: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -56761,14 +57022,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:56764: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:57025: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:56771: \$? = $opal_status" >&5 + echo "configure:57032: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -56778,14 +57039,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:56781: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:57042: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:56788: \$? = $opal_status" >&5 + echo "configure:57049: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -56806,7 +57067,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:56809: here is the Fortran program:" >&5 + echo "configure:57070: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -56829,14 +57090,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:56832: ./conftest" >&5 +echo "configure:57093: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:56839: \$? = $opal_status" >&5 + echo "configure:57100: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -57055,14 +57316,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:57058: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:57319: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:57065: \$? = $opal_status" >&5 + echo "configure:57326: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -57072,14 +57333,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:57075: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:57336: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:57082: \$? = $opal_status" >&5 + echo "configure:57343: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -57110,14 +57371,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:57113: ./conftest" >&5 +echo "configure:57374: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:57120: \$? = $opal_status" >&5 + echo "configure:57381: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -57643,14 +57904,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:57646: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:57907: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:57653: \$? = $opal_status" >&5 + echo "configure:57914: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -57660,14 +57921,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:57663: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:57924: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:57670: \$? = $opal_status" >&5 + echo "configure:57931: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -57688,7 +57949,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:57691: here is the Fortran program:" >&5 + echo "configure:57952: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -57711,14 +57972,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:57714: ./conftest" >&5 +echo "configure:57975: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:57721: \$? = $opal_status" >&5 + echo "configure:57982: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -57937,14 +58198,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:57940: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:58201: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:57947: \$? = $opal_status" >&5 + echo "configure:58208: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -57954,14 +58215,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:57957: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:58218: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:57964: \$? = $opal_status" >&5 + echo "configure:58225: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -57992,14 +58253,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:57995: ./conftest" >&5 +echo "configure:58256: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:58002: \$? = $opal_status" >&5 + echo "configure:58263: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -58525,14 +58786,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:58528: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:58789: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:58535: \$? = $opal_status" >&5 + echo "configure:58796: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -58542,14 +58803,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:58545: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:58806: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:58552: \$? = $opal_status" >&5 + echo "configure:58813: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -58570,7 +58831,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:58573: here is the Fortran program:" >&5 + echo "configure:58834: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -58593,14 +58854,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:58596: ./conftest" >&5 +echo "configure:58857: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:58603: \$? = $opal_status" >&5 + echo "configure:58864: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -58819,14 +59080,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:58822: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:59083: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:58829: \$? = $opal_status" >&5 + echo "configure:59090: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -58836,14 +59097,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:58839: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:59100: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:58846: \$? = $opal_status" >&5 + echo "configure:59107: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -58874,14 +59135,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:58877: ./conftest" >&5 +echo "configure:59138: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:58884: \$? = $opal_status" >&5 + echo "configure:59145: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -59407,14 +59668,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:59410: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:59671: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:59417: \$? = $opal_status" >&5 + echo "configure:59678: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -59424,14 +59685,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:59427: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:59688: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:59434: \$? = $opal_status" >&5 + echo "configure:59695: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -59452,7 +59713,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:59455: here is the Fortran program:" >&5 + echo "configure:59716: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -59475,14 +59736,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:59478: ./conftest" >&5 +echo "configure:59739: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:59485: \$? = $opal_status" >&5 + echo "configure:59746: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -59701,14 +59962,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:59704: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:59965: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:59711: \$? = $opal_status" >&5 + echo "configure:59972: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -59718,14 +59979,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:59721: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:59982: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:59728: \$? = $opal_status" >&5 + echo "configure:59989: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -59756,14 +60017,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:59759: ./conftest" >&5 +echo "configure:60020: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:59766: \$? = $opal_status" >&5 + echo "configure:60027: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -60203,14 +60464,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:60206: $CC $CFLAGS -I. -c conftest_c.c" >&5 +echo "configure:60467: $CC $CFLAGS -I. -c conftest_c.c" >&5 $CC $CFLAGS -I. -c conftest_c.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:60213: \$? = $opal_status" >&5 + echo "configure:60474: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -60220,14 +60481,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:60223: $FC $FCFLAGS conftest_f.f conftest_c.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:60484: $FC $FCFLAGS conftest_f.f conftest_c.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftest_f.f conftest_c.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:60230: \$? = $opal_status" >&5 + echo "configure:60491: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -60256,14 +60517,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:60259: ./conftest" >&5 +echo "configure:60520: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:60266: \$? = $opal_status" >&5 + echo "configure:60527: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -60430,14 +60691,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:60433: $CC $CFLAGS -I. -c conftest_c.c" >&5 +echo "configure:60694: $CC $CFLAGS -I. -c conftest_c.c" >&5 $CC $CFLAGS -I. -c conftest_c.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:60440: \$? = $opal_status" >&5 + echo "configure:60701: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -60447,14 +60708,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:60450: $FC $FCFLAGS conftest_f.f conftest_c.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:60711: $FC $FCFLAGS conftest_f.f conftest_c.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftest_f.f conftest_c.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:60457: \$? = $opal_status" >&5 + echo "configure:60718: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -60483,14 +60744,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:60486: ./conftest" >&5 +echo "configure:60747: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:60493: \$? = $opal_status" >&5 + echo "configure:60754: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -60660,14 +60921,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:60663: $CC $CFLAGS -I. -c conftest_c.c" >&5 +echo "configure:60924: $CC $CFLAGS -I. -c conftest_c.c" >&5 $CC $CFLAGS -I. -c conftest_c.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:60670: \$? = $opal_status" >&5 + echo "configure:60931: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -60677,14 +60938,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:60680: $FC $FCFLAGS conftest_f.f conftest_c.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:60941: $FC $FCFLAGS conftest_f.f conftest_c.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftest_f.f conftest_c.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:60687: \$? = $opal_status" >&5 + echo "configure:60948: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -60713,14 +60974,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:60716: ./conftest" >&5 +echo "configure:60977: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:60723: \$? = $opal_status" >&5 + echo "configure:60984: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -61004,14 +61265,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:61007: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:61268: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:61014: \$? = $opal_status" >&5 + echo "configure:61275: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -61021,14 +61282,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:61024: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:61285: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:61031: \$? = $opal_status" >&5 + echo "configure:61292: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -61049,7 +61310,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:61052: here is the Fortran program:" >&5 + echo "configure:61313: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -61072,14 +61333,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:61075: ./conftest" >&5 +echo "configure:61336: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:61082: \$? = $opal_status" >&5 + echo "configure:61343: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -61296,14 +61557,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:61299: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:61560: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:61306: \$? = $opal_status" >&5 + echo "configure:61567: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -61313,14 +61574,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:61316: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:61577: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:61323: \$? = $opal_status" >&5 + echo "configure:61584: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -61351,14 +61612,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:61354: ./conftest" >&5 +echo "configure:61615: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:61361: \$? = $opal_status" >&5 + echo "configure:61622: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -61885,14 +62146,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:61888: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:62149: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:61895: \$? = $opal_status" >&5 + echo "configure:62156: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -61902,14 +62163,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:61905: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:62166: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:61912: \$? = $opal_status" >&5 + echo "configure:62173: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -61930,7 +62191,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:61933: here is the Fortran program:" >&5 + echo "configure:62194: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -61953,14 +62214,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:61956: ./conftest" >&5 +echo "configure:62217: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:61963: \$? = $opal_status" >&5 + echo "configure:62224: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -62172,14 +62433,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:62175: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:62436: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:62182: \$? = $opal_status" >&5 + echo "configure:62443: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -62189,14 +62450,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:62192: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:62453: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:62199: \$? = $opal_status" >&5 + echo "configure:62460: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -62227,14 +62488,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:62230: ./conftest" >&5 +echo "configure:62491: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:62237: \$? = $opal_status" >&5 + echo "configure:62498: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -62772,14 +63033,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:62775: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:63036: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:62782: \$? = $opal_status" >&5 + echo "configure:63043: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -62789,14 +63050,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:62792: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:63053: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:62799: \$? = $opal_status" >&5 + echo "configure:63060: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -62817,7 +63078,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:62820: here is the Fortran program:" >&5 + echo "configure:63081: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -62840,14 +63101,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:62843: ./conftest" >&5 +echo "configure:63104: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:62850: \$? = $opal_status" >&5 + echo "configure:63111: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -63056,14 +63317,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:63059: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:63320: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:63066: \$? = $opal_status" >&5 + echo "configure:63327: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -63073,14 +63334,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:63076: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:63337: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:63083: \$? = $opal_status" >&5 + echo "configure:63344: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -63111,14 +63372,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:63114: ./conftest" >&5 +echo "configure:63375: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:63121: \$? = $opal_status" >&5 + echo "configure:63382: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -63644,14 +63905,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:63647: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:63908: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:63654: \$? = $opal_status" >&5 + echo "configure:63915: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -63661,14 +63922,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:63664: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:63925: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:63671: \$? = $opal_status" >&5 + echo "configure:63932: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -63689,7 +63950,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:63692: here is the Fortran program:" >&5 + echo "configure:63953: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -63712,14 +63973,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:63715: ./conftest" >&5 +echo "configure:63976: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:63722: \$? = $opal_status" >&5 + echo "configure:63983: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -63938,14 +64199,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:63941: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:64202: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:63948: \$? = $opal_status" >&5 + echo "configure:64209: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -63955,14 +64216,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:63958: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:64219: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:63965: \$? = $opal_status" >&5 + echo "configure:64226: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -63993,14 +64254,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:63996: ./conftest" >&5 +echo "configure:64257: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:64003: \$? = $opal_status" >&5 + echo "configure:64264: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -64526,14 +64787,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:64529: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:64790: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:64536: \$? = $opal_status" >&5 + echo "configure:64797: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -64543,14 +64804,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:64546: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:64807: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:64553: \$? = $opal_status" >&5 + echo "configure:64814: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -64571,7 +64832,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:64574: here is the Fortran program:" >&5 + echo "configure:64835: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -64594,14 +64855,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:64597: ./conftest" >&5 +echo "configure:64858: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:64604: \$? = $opal_status" >&5 + echo "configure:64865: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -64820,14 +65081,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:64823: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:65084: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:64830: \$? = $opal_status" >&5 + echo "configure:65091: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -64837,14 +65098,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:64840: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:65101: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:64847: \$? = $opal_status" >&5 + echo "configure:65108: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -64875,14 +65136,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:64878: ./conftest" >&5 +echo "configure:65139: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:64885: \$? = $opal_status" >&5 + echo "configure:65146: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -65408,14 +65669,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:65411: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:65672: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:65418: \$? = $opal_status" >&5 + echo "configure:65679: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -65425,14 +65686,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:65428: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:65689: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:65435: \$? = $opal_status" >&5 + echo "configure:65696: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -65453,7 +65714,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:65456: here is the Fortran program:" >&5 + echo "configure:65717: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -65476,14 +65737,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:65479: ./conftest" >&5 +echo "configure:65740: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:65486: \$? = $opal_status" >&5 + echo "configure:65747: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -65702,14 +65963,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:65705: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:65966: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:65712: \$? = $opal_status" >&5 + echo "configure:65973: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -65719,14 +65980,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:65722: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:65983: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:65729: \$? = $opal_status" >&5 + echo "configure:65990: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -65757,14 +66018,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:65760: ./conftest" >&5 +echo "configure:66021: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:65767: \$? = $opal_status" >&5 + echo "configure:66028: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -66293,14 +66554,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:66296: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:66557: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:66303: \$? = $opal_status" >&5 + echo "configure:66564: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -66310,14 +66571,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:66313: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:66574: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:66320: \$? = $opal_status" >&5 + echo "configure:66581: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -66338,7 +66599,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:66341: here is the Fortran program:" >&5 + echo "configure:66602: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -66361,14 +66622,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:66364: ./conftest" >&5 +echo "configure:66625: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:66371: \$? = $opal_status" >&5 + echo "configure:66632: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -66585,14 +66846,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:66588: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:66849: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:66595: \$? = $opal_status" >&5 + echo "configure:66856: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -66602,14 +66863,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:66605: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:66866: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:66612: \$? = $opal_status" >&5 + echo "configure:66873: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -66640,14 +66901,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:66643: ./conftest" >&5 +echo "configure:66904: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:66650: \$? = $opal_status" >&5 + echo "configure:66911: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -67272,14 +67533,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:67275: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:67536: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:67282: \$? = $opal_status" >&5 + echo "configure:67543: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -67289,14 +67550,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:67292: $FC $FCFLAGS -o conftest conftest.o conftestf.f $LDFLAGS $LIBS" >&5 +echo "configure:67553: $FC $FCFLAGS -o conftest conftest.o conftestf.f $LDFLAGS $LIBS" >&5 $FC $FCFLAGS -o conftest conftest.o conftestf.f $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:67299: \$? = $opal_status" >&5 + echo "configure:67560: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -67324,14 +67585,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:67327: ./conftest" >&5 +echo "configure:67588: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:67334: \$? = $opal_status" >&5 + echo "configure:67595: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -67442,14 +67703,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:67445: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:67706: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:67452: \$? = $opal_status" >&5 + echo "configure:67713: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -67459,14 +67720,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:67462: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:67723: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:67469: \$? = $opal_status" >&5 + echo "configure:67730: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -67493,14 +67754,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:67496: ./conftest" >&5 +echo "configure:67757: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:67503: \$? = $opal_status" >&5 + echo "configure:67764: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -67603,7 +67864,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:67606: testing Fortran dimension $f_rank / $f_dim" >&5 + echo "configure:67867: testing Fortran dimension $f_rank / $f_dim" >&5 else echo testing Fortran dimension $f_rank / $f_dim >&5 fi @@ -68628,14 +68889,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:68631: $FC $FCFLAGS $FCFLAGS_f90 -c conftest-module.f90 $LDFLAGS $LIBS" >&5 +echo "configure:68892: $FC $FCFLAGS $FCFLAGS_f90 -c conftest-module.f90 $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 -c conftest-module.f90 $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:68638: \$? = $opal_status" >&5 + echo "configure:68899: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -68672,14 +68933,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:68675: $FC $FCFLAGS $FCFLAGS_f90 conftest.f90 ${flag}subdir $LDFLAGS $LIBS" >&5 +echo "configure:68936: $FC $FCFLAGS $FCFLAGS_f90 conftest.f90 ${flag}subdir $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftest.f90 ${flag}subdir $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:68682: \$? = $opal_status" >&5 + echo "configure:68943: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -68693,7 +68954,7 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:68696: $FC $FCFLAGS $FCFLAGS_f90 conftest.f90 subdir/conftest-module.o \ +echo "configure:68957: $FC $FCFLAGS $FCFLAGS_f90 conftest.f90 subdir/conftest-module.o \ ${flag}subdir $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftest.f90 subdir/conftest-module.o \ ${flag}subdir $LDFLAGS $LIBS 1>&5 2>&1 @@ -68702,7 +68963,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:68705: \$? = $opal_status" >&5 + echo "configure:68966: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -69925,6 +70186,78 @@ fi + # The mpi_f08 module in this version of Open MPI does not properly + # handle if sizeof(INTEGER) != sizeof(int) with the mpi_f08 + # bindings. As of July 2020, this issue is fixed on main / what + # will eventually become Open MPI v5.0.x, but the fix causes an + # ABI break. Hence, we're not going to fix it here on this + # release branch. + # + # This is a bit of a quandry, however, because up until v4.0.4, we + # built the Open MPI F08 bindings by default (if the compiler + # supported them), even in this problematic scenario. Meaning: a + # user could use the exact same compilers + configure command line + # between v4.0.4 and v4.0.5 and suddenly -- probably unexpectedly + # -- not get F08 bindings. That seems a little weird. + # + # Instead, if we're in the "bad" scenario (sizeof(int) != + # sizeof(INTEGER)), if the user didn't explicitly disable the + # mpi_f08 module, we'll print a Giant Error Message (GEM) and tell + # them what their options are. This may be slightly annoying for + # the user, but it at least it won't violate the Law of Least + # Surprise. + # + # Note that mpif.h and mpi module are still ok in the sizeof(int) + # != sizeof(INTEGER) scenario; this isssue *only* affects the use + # of mpi_f08's TYPE(MPI_Status). + # + # The following URLs shed some light on this decision: + # + # - https://github.com/open-mpi/ompi/pull/7921 -- in particular, + # the comment at + # https://github.com/open-mpi/ompi/pull/7921#issuecomment-656418618 + # - https://github.com/open-mpi/ompi/pull/7922 -- in particlar, + # the comment at + # https://github.com/open-mpi/ompi/pull/7922#issuecomment-656788803 + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sizeof(C int) == sizeof(Fortran INTEGER)" >&5 +$as_echo_n "checking if sizeof(C int) == sizeof(Fortran INTEGER)... " >&6; } + if test $ac_cv_sizeof_int -eq $OMPI_SIZEOF_FORTRAN_INTEGER; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + if test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS; then : + c=$ac_cv_sizeof_int + f=$OMPI_SIZEOF_FORTRAN_INTEGER + cat <&5 +echo "configure:70590: $FC $FCFLAGS -c aaa.f90" >&5 $FC $FCFLAGS -c aaa.f90 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:70264: \$? = $opal_status" >&5 + echo "configure:70597: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -70271,14 +70604,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:70274: $FC $FCFLAGS -c bbb.f90" >&5 +echo "configure:70607: $FC $FCFLAGS -c bbb.f90" >&5 $FC $FCFLAGS -c bbb.f90 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:70281: \$? = $opal_status" >&5 + echo "configure:70614: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -70758,14 +71091,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:70761: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:71094: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:70768: \$? = $opal_status" >&5 + echo "configure:71101: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -70775,14 +71108,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:70778: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:71111: $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:70785: \$? = $opal_status" >&5 + echo "configure:71118: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -70803,7 +71136,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:70806: here is the Fortran program:" >&5 + echo "configure:71139: here is the Fortran program:" >&5 else echo here is the Fortran program: >&5 fi @@ -70826,14 +71159,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:70829: ./conftest" >&5 +echo "configure:71162: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:70836: \$? = $opal_status" >&5 + echo "configure:71169: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -70900,14 +71233,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:70903: ./conftest" >&5 +echo "configure:71236: ./conftest" >&5 ./conftest 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:70910: \$? = $opal_status" >&5 + echo "configure:71243: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -75283,14 +75616,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:75286: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:75619: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:75293: \$? = $opal_status" >&5 + echo "configure:75626: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -75300,14 +75633,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:75303: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:75636: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:75310: \$? = $opal_status" >&5 + echo "configure:75643: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -75330,7 +75663,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:75333: here is the C program:" >&5 + echo "configure:75666: here is the C program:" >&5 else echo here is the C program: >&5 fi @@ -75344,7 +75677,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:75347: here is contest.h:" >&5 + echo "configure:75680: here is contest.h:" >&5 else echo here is contest.h: >&5 fi @@ -75358,7 +75691,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:75361: here is the fortran program:" >&5 + echo "configure:75694: here is the fortran program:" >&5 else echo here is the fortran program: >&5 fi @@ -75679,14 +76012,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:75682: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:76015: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:75689: \$? = $opal_status" >&5 + echo "configure:76022: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -75696,14 +76029,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:75699: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:76032: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:75706: \$? = $opal_status" >&5 + echo "configure:76039: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -75726,7 +76059,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:75729: here is the C program:" >&5 + echo "configure:76062: here is the C program:" >&5 else echo here is the C program: >&5 fi @@ -75740,7 +76073,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:75743: here is contest.h:" >&5 + echo "configure:76076: here is contest.h:" >&5 else echo here is contest.h: >&5 fi @@ -75754,7 +76087,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:75757: here is the fortran program:" >&5 + echo "configure:76090: here is the fortran program:" >&5 else echo here is the fortran program: >&5 fi @@ -76185,14 +76518,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:76188: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:76521: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:76195: \$? = $opal_status" >&5 + echo "configure:76528: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -76202,14 +76535,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:76205: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:76538: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:76212: \$? = $opal_status" >&5 + echo "configure:76545: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -76232,7 +76565,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:76235: here is the C program:" >&5 + echo "configure:76568: here is the C program:" >&5 else echo here is the C program: >&5 fi @@ -76246,7 +76579,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:76249: here is contest.h:" >&5 + echo "configure:76582: here is contest.h:" >&5 else echo here is contest.h: >&5 fi @@ -76260,7 +76593,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:76263: here is the fortran program:" >&5 + echo "configure:76596: here is the fortran program:" >&5 else echo here is the fortran program: >&5 fi @@ -76375,14 +76708,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:76378: $CC $CFLAGS -I. -c conftest.c" >&5 +echo "configure:76711: $CC $CFLAGS -I. -c conftest.c" >&5 $CC $CFLAGS -I. -c conftest.c 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:76385: \$? = $opal_status" >&5 + echo "configure:76718: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -76392,14 +76725,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:76395: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 +echo "configure:76728: $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS" >&5 $FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:76402: \$? = $opal_status" >&5 + echo "configure:76735: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -76422,7 +76755,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:76425: here is the C program:" >&5 + echo "configure:76758: here is the C program:" >&5 else echo here is the C program: >&5 fi @@ -76436,7 +76769,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:76439: here is contest.h:" >&5 + echo "configure:76772: here is contest.h:" >&5 else echo here is contest.h: >&5 fi @@ -76450,7 +76783,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:76453: here is the fortran program:" >&5 + echo "configure:76786: here is the fortran program:" >&5 else echo here is the fortran program: >&5 fi @@ -79797,14 +80130,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:79800: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lhwloc $LIBS $opal_hwloc_external_LIBS" >&5 +echo "configure:80133: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lhwloc $LIBS $opal_hwloc_external_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lhwloc $LIBS $opal_hwloc_external_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:79807: \$? = $opal_status" >&5 + echo "configure:80140: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -80522,14 +80855,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:80525: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lhwloc $LIBS $opal_hwloc_external_LIBS" >&5 +echo "configure:80858: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lhwloc $LIBS $opal_hwloc_external_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lhwloc $LIBS $opal_hwloc_external_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:80532: \$? = $opal_status" >&5 + echo "configure:80865: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -91877,8 +92210,8 @@ $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework common" >&5 $as_echo_n "checking for m4 configure components in framework common... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cuda, sm, ucx, verbs, verbs_usnic" >&5 -$as_echo "cuda, sm, ucx, verbs, verbs_usnic" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: cuda, ofi, sm, ucx, verbs, verbs_usnic" >&5 +$as_echo "cuda, ofi, sm, ucx, verbs, verbs_usnic" >&6; } # If there are components in the no configure list, but we're # doing one of the "special" selection logics, abort with a @@ -92567,13 +92900,13 @@ - opal_show_subsubsubtitle "MCA component common:sm (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component common:ofi (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/common/sm" + component_path="$srcdir/opal/mca/common/ofi" want_component=0 # build if: @@ -92606,7 +92939,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "sm" ; then + if test "$DIRECT_common" = "ofi" ; then want_component=1 else want_component=0 @@ -92618,7 +92951,7 @@ if test "$DISABLE_common" = "1"; then : want_component=0 fi - if test "$DISABLE_common_sm" = "1"; then : + if test "$DISABLE_common_ofi" = "1"; then : want_component=0 fi @@ -92632,10 +92965,10 @@ # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE SHARED_FRAMEWORK="$DSO_common" - SHARED_COMPONENT="$DSO_common_sm" + SHARED_COMPONENT="$DSO_common_ofi" STATIC_FRAMEWORK="$STATIC_common" - STATIC_COMPONENT="$STATIC_common_sm" + STATIC_COMPONENT="$STATIC_common_ofi" shared_mode_override=static @@ -92653,9 +92986,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:sm compile mode" >&5 -$as_echo_n "checking for MCA component common:sm compile mode... " >&6; } - if test "$DIRECT_common" = "sm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:ofi compile mode" >&5 +$as_echo_n "checking for MCA component common:ofi compile mode... " >&6; } + if test "$DIRECT_common" = "ofi" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -92666,162 +92999,133 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/common/sm/Makefile" + ac_config_files="$ac_config_files opal/mca/common/ofi/Makefile" - should_build=$should_build - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + # Check for OFI libfabric. Note that $opal_ofi_happy is used in + # other configure.m4's to know if OFI/libfabric configured + # successfully. We only need to run the back-end checks once, but + # at least emit a "checking..." statement each subsequent time + # this macro is invoked so that configure's stdout has + # sensible/logical output. + if test -z "$opal_ofi_happy"; then : + # Add --with options +# Check whether --with-libfabric was given. +if test "${with_libfabric+set}" = set; then : + withval=$with_libfabric; +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/common/sm/post_configure.sh" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components sm" +# Check whether --with-libfabric-libdir was given. +if test "${with_libfabric_libdir+set}" = set; then : + withval=$with_libfabric_libdir; +fi - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components sm" - else - if test "common" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/common/sm/lib${OPAL_LIB_PREFIX}mca_common_sm.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/common/sm/libmca_common_sm.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_common_sm_component;" >> $outfile.extern - echo " &mca_common_sm_component, " >> $outfile.struct - static_components="$static_components sm" - fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:sm can compile" >&5 -$as_echo_n "checking if MCA component common:sm can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_common" = "sm" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_common_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** common component sm was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_common" = "sm" ; then -as_fn_error $? "*** common component sm was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +# Check whether --with-ofi was given. +if test "${with_ofi+set}" = set; then : + withval=$with_ofi; +fi + - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$common_sm_WRAPPER_EXTRA_LDFLAGS" = ""; then : +# Check whether --with-ofi-libdir was given. +if test "${with_ofi_libdir+set}" = set; then : + withval=$with_ofi_libdir; +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + if test "$with_ofi" = ""; then + with_ofi=$with_libfabric fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + if test "$with_ofi_libdir" = ""; then + with_ofi_libdir=$with_libfabric_libdir + fi - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # Sanity check the --with values - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ofi value" >&5 +$as_echo_n "checking --with-ofi value... " >&6; } + if test "$with_ofi" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ofi)" >&5 +$as_echo "simple no (specified --without-ofi)" >&6; } +else + if test "$with_ofi" = "yes" || test "x$with_ofi" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_ofi"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ofi not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ofi not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_ofi/include/rdma/fabric.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ofi/include/rdma/fabric.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ofi/include/rdma/fabric.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ofi)" >&5 +$as_echo "sanity check ok ($with_ofi)" >&6; } - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +fi - for arg in $common_sm_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ofi-libdir value" >&5 +$as_echo_n "checking --with-ofi-libdir value... " >&6; } + if test "$with_ofi_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ofi-libdir)" >&5 +$as_echo "simple no (specified --without-ofi-libdir)" >&6; } +else + if test "$with_ofi_libdir" = "yes" || test "x$with_ofi_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_ofi_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ofi_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ofi_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_ofi_libdir/libfabric.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ofi_libdir/libfabric.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ofi_libdir/libfabric.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ofi_libdir)" >&5 +$as_echo "sanity check ok ($with_ofi_libdir)" >&6; } + fi - done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +fi -else +fi + @@ -92834,7 +93138,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_check_ofi_save_CPPFLAGS opal_check_ofi_save_LDFLAGS opal_check_ofi_save_LIBS opal_check_fi_info_pci; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -92853,57 +93157,55 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_check_ofi_save_CPPFLAGS opal_check_ofi_save_LDFLAGS opal_check_ofi_save_LIBS opal_check_fi_info_pci\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` + opal_check_ofi_save_CPPFLAGS=$CPPFLAGS + opal_check_ofi_save_LDFLAGS=$LDFLAGS + opal_check_ofi_save_LIBS=$LIBS + opal_check_fi_info_pci=0 - for arg in $common_sm_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + opal_ofi_happy=yes + if test "$with_ofi" = "no"; then : + opal_ofi_happy=no fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + + if test $opal_ofi_happy = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking looking for OFI libfabric in" >&5 +$as_echo_n "checking looking for OFI libfabric in... " >&6; } + if test "$with_ofi" != "yes"; then : + opal_ofi_dir=$with_ofi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ($opal_ofi_dir)" >&5 +$as_echo "($opal_ofi_dir)" >&6; } else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 +$as_echo "(default search paths)" >&6; } fi + if test ! -z "$with_ofi_libdir" && \ + test "$with_ofi_libdir" != "yes"; then : + opal_ofi_libdir=$with_ofi_libdir fi - done +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test $opal_ofi_happy = yes; then : - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + opal_check_package_opal_ofi_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_opal_ofi_save_LDFLAGS="$LDFLAGS" + opal_check_package_opal_ofi_save_LIBS="$LIBS" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + opal_check_package_opal_ofi_orig_CPPFLAGS="$opal_ofi_CPPFLAGS" + opal_check_package_opal_ofi_orig_LDFLAGS="$opal_ofi_LDFLAGS" + opal_check_package_opal_ofi_orig_LIBS="$opal_ofi_LIBS" -fi - if test "$common_sm_WRAPPER_EXTRA_LIBS" = ""; then : + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -92916,7 +93218,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -92935,7 +93237,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -92943,48 +93245,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_sm_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_rdma_fabric_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $opal_ofi_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in rdma/fabric.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "rdma/fabric.h" "ac_cv_header_rdma_fabric_h" "$ac_includes_default" +if test "x$ac_cv_header_rdma_fabric_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_RDMA_FABRIC_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_rdma_fabric_h fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + opal_ofi_CPPFLAGS="$opal_ofi_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in rdma/fabric.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "rdma/fabric.h" "ac_cv_header_rdma_fabric_h" "$ac_includes_default" +if test "x$ac_cv_header_rdma_fabric_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_RDMA_FABRIC_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_fi_getinfo + opal_check_package_lib_happy="no" + if test "$opal_ofi_libdir" != ""; then : + # libdir was specified - search only there + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_ofi_libdir" + LDFLAGS="$LDFLAGS -L$opal_ofi_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break fi - done +done +if ${ac_cv_search_fi_getinfo+:} false; then : +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_ofi_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : + +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -92997,7 +93608,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -93016,66 +93627,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $common_sm_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$common_sm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -93088,7 +93649,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -93107,7 +93668,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -93115,547 +93676,349 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_sm_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libfabric requires libnl v1 or v3" >&5 +$as_echo_n "checking if libfabric requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void fi_getinfo (void); +int main(int argc, char *argv[]) { + fi_getinfo (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:93703: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:93710: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring common_sm_WRAPPER_EXTRA_CPPFLAGS ($common_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring common_sm_WRAPPER_EXTRA_CPPFLAGS ($common_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib fabric" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib fabric" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:sm can compile" >&5 -$as_echo_n "checking if MCA component common:sm can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_common" = "sm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "sm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components sm" fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_common_sm_DSO=1 -else - BUILD_opal_common_sm_DSO=0 -fi - if test "$BUILD_opal_common_sm_DSO" = "1"; then - MCA_BUILD_opal_common_sm_DSO_TRUE= - MCA_BUILD_opal_common_sm_DSO_FALSE='#' -else - MCA_BUILD_opal_common_sm_DSO_TRUE='#' - MCA_BUILD_opal_common_sm_DSO_FALSE= -fi + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 + libnl_sane=0 fi - unset compile_mode - - - + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} - opal_show_subsubsubtitle "MCA component common:ucx (m4 configuration macro)" + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs fabric" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - component_path="$srcdir/opal/mca/common/ucx" - want_component=0 + # Loop over every token we've seen so far - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "ucx" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # if we were explicitly disabled, don't build :) - if test "$DISABLE_common" = "1"; then : - want_component=0 -fi - if test "$DISABLE_common_ucx" = "1"; then : - want_component=0 -fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + # Check the ending condition - SHARED_FRAMEWORK="$DSO_common" - SHARED_COMPONENT="$DSO_common_ucx" + opal_done="`expr $opal_i \>= $opal_count`" - STATIC_FRAMEWORK="$STATIC_common" - STATIC_COMPONENT="$STATIC_common_ucx" + # Increment the counter - shared_mode_override=static + opal_i="`expr $opal_i + 1`" + done - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + # If we didn't find the token, add it to the "array" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:ucx compile mode" >&5 -$as_echo_n "checking for MCA component common:ucx compile mode... " >&6; } - if test "$DIRECT_common" = "ucx" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + opal_i="`expr $opal_i - 1`" fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - # try to configure the component - - ac_config_files="$ac_config_files opal/mca/common/ucx/Makefile" - - common_ucx_happy="no" - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_check_ucx_dir; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_check_ucx_dir\"" - eval $opal_str - unset opal_str + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +# Done; do the assignment +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - if test -z "$ompi_check_ucx_happy"; then : +# Clean up -# Check whether --with-ucx was given. -if test "${with_ucx+set}" = set; then : - withval=$with_ucx; +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx value" >&5 -$as_echo_n "checking --with-ucx value... " >&6; } - if test "$with_ucx" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx)" >&5 -$as_echo "simple no (specified --without-ucx)" >&6; } -else - if test "$with_ucx" = "yes" || test "x$with_ucx" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_ucx"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_ucx not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_ucx/include/ucp/api/ucp.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx)" >&5 -$as_echo "sanity check ok ($with_ucx)" >&6; } - fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&2;} -fi - + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} -fi + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs fabric" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs -fi +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 -# Check whether --with-ucx-libdir was given. -if test "${with_ucx_libdir+set}" = set; then : - withval=$with_ucx_libdir; -fi + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx-libdir value" >&5 -$as_echo_n "checking --with-ucx-libdir value... " >&6; } - if test "$with_ucx_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx-libdir)" >&5 -$as_echo "simple no (specified --without-ucx-libdir)" >&6; } -else - if test "$with_ucx_libdir" = "yes" || test "x$with_ucx_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_ucx_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_ucx_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_ucx_libdir/libucp.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx_libdir)" >&5 -$as_echo "sanity check ok ($with_ucx_libdir)" >&6; } + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. -fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition -fi + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter -fi + opal_i="`expr $opal_i + 1`" + done + # If we didn't find the token, add it to the "array" -fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - if test "$with_ucx" != "no"; then : - if test -n "$with_ucx" && test "$with_ucx" != "yes"; then : - ompi_check_ucx_dir="$with_ucx" -else +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ucx" >&5 -$as_echo_n "checking for ucx... " >&6; } + opal_eval="unset opal_array_$opal_i" + eval $opal_eval -if test -n "$ucx_CFLAGS"; then - pkg_cv_ucx_CFLAGS="$ucx_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ucx_CFLAGS=`$PKG_CONFIG --cflags "ucx" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$ucx_LIBS"; then - pkg_cv_ucx_LIBS="$ucx_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ucx_LIBS=`$PKG_CONFIG --libs "ucx" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$ucx_STATIC_LIBS"; then - pkg_cv_ucx_STATIC_LIBS="$ucx_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ucx_STATIC_LIBS=`$PKG_CONFIG --libs --static "ucx" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +# Clean up -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi - if test $_pkg_short_errors_supported = yes; then - ucx_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ucx" 2>&1` - else - ucx_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ucx" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$ucx_PKG_ERRORS" >&5 - true -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - true -else - ucx_CFLAGS=$pkg_cv_ucx_CFLAGS - ucx_LIBS=$pkg_cv_ucx_LIBS - ucx_STATIC_LIBS=$pkg_cv_ucx_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ompi_check_ucx_dir=`$PKG_CONFIG --variable=prefix ucx` - if test "$ompi_check_ucx_dir" = "/usr"; then : - ompi_check_ucx_dir= -fi fi -fi - ompi_check_ucx_happy="no" - if test -z "$ompi_check_ucx_dir"; then : - - opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" - opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" - - opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" - opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" - opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + rm -f conftest conftest_c.$ac_ext + opal_libnl_sane=$libnl_sane - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_ucp_api_ucp_h + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # get rid of the trailing slash(es) - dir_prefix=$(echo | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in ucp/api/ucp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -done + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_ucp_api_ucp_h + + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi + fi - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_fi_getinfo" != "no" && + test "$ac_cv_search_fi_getinfo" != "none required"; then : + opal_ofi_LIBS="$ac_cv_search_fi_getinfo " +else + opal_ofi_LIBS="" fi - for ac_header in ucp/api/ucp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 -_ACEOF - opal_check_package_header_happy="yes" + opal_check_package_happy="yes" +else + opal_check_package_happy="no" fi -done - if test "$opal_check_package_header_happy" = "yes"; then : +else + opal_check_package_happy="no" +fi +else # This is stolen from autoconf to peek under the covers to get the # cache variable for the library check. one should not copy this @@ -93663,15 +94026,15 @@ # see comment above - unset ac_cv_search_ucp_cleanup + unset ac_cv_search_fi_getinfo opal_check_package_lib_happy="no" - if test "" != ""; then : + if test "$opal_ofi_libdir" != ""; then : # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_ofi_libdir" + LDFLAGS="$LDFLAGS -L$opal_ofi_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -93684,42 +94047,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char fi_getinfo (); int main () { -return ucp_cleanup (); +return fi_getinfo (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' fabric; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_fi_getinfo=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_fi_getinfo+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_fi_getinfo+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_fi_getinfo=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -93728,22 +94091,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo fi else # libdir was not specified - go through search path - opal_check_package_libdir="" + opal_check_package_libdir="$opal_ofi_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -93756,42 +94119,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char fi_getinfo (); int main () { -return ucp_cleanup (); +return fi_getinfo (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' fabric; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_fi_getinfo=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_fi_getinfo+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_fi_getinfo+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_fi_getinfo=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -93801,21 +94164,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -93828,42 +94191,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char fi_getinfo (); int main () { -return ucp_cleanup (); +return fi_getinfo (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' fabric; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_fi_getinfo=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_fi_getinfo+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_fi_getinfo+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_fi_getinfo=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -93873,22 +94236,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -93901,42 +94264,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char fi_getinfo (); int main () { -return ucp_cleanup (); +return fi_getinfo (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' fabric; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_fi_getinfo=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_fi_getinfo+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_fi_getinfo+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_fi_getinfo=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -93946,9 +94309,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo fi fi fi @@ -94045,12 +94408,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 -$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libfabric requires libnl v1 or v3" >&5 +$as_echo_n "checking if libfabric requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void ucp_cleanup (void); +extern void fi_getinfo (void); int main(int argc, char *argv[]) { - ucp_cleanup (); + fi_getinfo (); return 0; } EOF @@ -94062,14 +94425,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:94065: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 +echo "configure:94428: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:94072: \$? = $opal_status" >&5 + echo "configure:94435: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -94089,8 +94452,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib fabric" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib fabric" >&2;} fi @@ -94104,15 +94467,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} libnl_sane=0 fi @@ -94121,19 +94484,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs ucp" + opal_libnlv1_libs="$opal_libnlv1_libs fabric" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -94212,19 +94575,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs ucp" + opal_libnlv3_libs="$opal_libnlv3_libs fabric" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -94365,11 +94728,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ucp_cleanup" != "no" && - test "$ac_cv_search_ucp_cleanup" != "none required"; then : - ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" + if test "$ac_cv_search_fi_getinfo" != "no" && + test "$ac_cv_search_fi_getinfo" != "none required"; then : + opal_ofi_LIBS="$ac_cv_search_fi_getinfo " else - ompi_check_ucx_LIBS="-luct -lucm -lucs" + opal_ofi_LIBS="" fi opal_check_package_happy="yes" else @@ -94377,312 +94740,114 @@ fi -else - opal_check_package_happy="no" fi -else + unset opal_check_package_header_happy - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + + if test "$opal_check_package_happy" = "yes"; then : - # see comment above - unset ac_cv_search_ucp_cleanup - opal_check_package_lib_happy="no" - if test "" != ""; then : - # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + opal_ofi_CPPFLAGS="$opal_check_package_opal_ofi_orig_CPPFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + opal_ofi_LIBS="$opal_check_package_opal_ofi_orig_LIBS" + opal_ofi_happy=no +fi + + CPPFLAGS="$opal_check_package_opal_ofi_save_CPPFLAGS" + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + LIBS="$opal_check_package_opal_ofi_save_LIBS" -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break + + CPPFLAGS="$CPPFLAGS $opal_ofi_CPPFLAGS" + + if test $opal_ofi_happy = yes; then : + for ac_header in rdma/fi_ext.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "rdma/fi_ext.h" "ac_cv_header_rdma_fi_ext_h" "$ac_includes_default" +if test "x$ac_cv_header_rdma_fi_ext_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_RDMA_FI_EXT_H 1 +_ACEOF + fi + done -if ${ac_cv_search_ucp_cleanup+:} false; then : + + ac_fn_c_check_member "$LINENO" "struct fi_info" "nic" "ac_cv_member_struct_fi_info_nic" "#include +" +if test "x$ac_cv_member_struct_fi_info_nic" = xyes; then : + opal_check_fi_info_pci=1 else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + opal_check_fi_info_pci=0 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + + + +cat >>confdefs.h <<_ACEOF +#define OPAL_OFI_PCI_DATA_AVAILABLE $opal_check_fi_info_pci +_ACEOF + + + ac_fn_c_check_decl "$LINENO" "PMIX_PACKAGE_RANK" "ac_cv_have_decl_PMIX_PACKAGE_RANK" "#include +" +if test "x$ac_cv_have_decl_PMIX_PACKAGE_RANK" = xyes; then : + ac_have_decl=1 else - opal_check_package_lib_happy="no" + ac_have_decl=0 fi - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_PMIX_PACKAGE_RANK $ac_have_decl _ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" + ac_fn_c_check_type "$LINENO" "struct fi_ops_mem_monitor" "ac_cv_type_struct_fi_ops_mem_monitor" "#ifdef HAVE_RDMA_FI_EXT_H +#include #endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} +" +if test "x$ac_cv_type_struct_fi_ops_mem_monitor" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_FI_OPS_MEM_MONITOR 1 _ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi fi + fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + CPPFLAGS=$opal_check_ofi_save_CPPFLAGS + LDFLAGS=$opal_check_ofi_save_LDFLAGS + LIBS=$opal_check_ofi_save_LIBS + -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. @@ -94695,7 +94860,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -94714,325 +94879,314 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) - + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="OpenFabrics OFI Libfabric: $opal_ofi_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 -$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ucp_cleanup (void); -int main(int argc, char *argv[]) { - ucp_cleanup (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:94790: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 -opal_status=$? + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:94797: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" + + if test $opal_ofi_happy = no; then : + if test -n "$with_ofi" && test "$with_ofi" != "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OFI libfabric support requested (via --with-ofi or --with-libfabric), but not found." >&5 +$as_echo "$as_me: WARNING: OFI libfabric support requested (via --with-ofi or --with-libfabric), but not found." >&2;} + as_fn_error $? "Cannot continue." "$LINENO" 5 fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} - + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if OFI libfabric is available" >&5 +$as_echo_n "checking if OFI libfabric is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_ofi_happy" >&5 +$as_echo "$opal_ofi_happy" >&6; } fi - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - libnl_sane=0 + # Note that $opal_common_ofi_happy is + # used in other configure.m4's to know if ofi configured + # successfully. + if test "$opal_ofi_happy" = "yes"; then : + opal_common_ofi_happy=yes + common_ofi_WRAPPER_EXTRA_LDFLAGS=$opal_ofi_LDFLAGS + common_ofi_WRAPPER_EXTRA_LIBS=$opal_ofi_LIBS + should_build=$should_build +else + opal_common_ofi_happy=no + should_build=0 fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs ucp" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" -# Go through each item in the variable and only keep the unique ones + if test "$should_build" = "1"; then : -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/common/ofi/post_configure.sh" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components ofi" - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components ofi" + else + if test "common" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/common/ofi/lib${OPAL_LIB_PREFIX}mca_common_ofi.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/common/ofi/libmca_common_ofi.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_common_ofi_component;" >> $outfile.extern + echo " &mca_common_ofi_component, " >> $outfile.struct + static_components="$static_components ofi" + fi - # Check the ending condition + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:ofi can compile" >&5 +$as_echo_n "checking if MCA component common:ofi can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - opal_done="`expr $opal_i \>= $opal_count`" + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_common" = "ofi" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_common_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** common component ofi was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_common" = "ofi" ; then +as_fn_error $? "*** common component ofi was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - # Increment the counter + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$common_ofi_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Done; do the assignment + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + for arg in $common_ofi_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - + done fi - - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - - libnl_sane=0 + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_libnlv3_libs="$opal_libnlv3_libs ucp" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Check the ending condition + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter +else - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Done; do the assignment + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 + for arg in $common_ofi_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - + done fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -95056,10 +95210,66 @@ done - ;; - esac +fi + if test "$common_ofi_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $common_ofi_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -95082,28 +95292,64 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi +else -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ucp_cleanup" != "no" && - test "$ac_cv_search_ucp_cleanup" != "none required"; then : - ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" -else - ompi_check_ucx_LIBS="-luct -lucm -lucs" + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $common_ofi_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -95127,78 +95373,17 @@ done - - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_ucx_happy="yes" -else - ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" - ompi_check_ucx_happy="no" -fi - - CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" - - if test "$ompi_check_ucx_happy" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 -$as_echo_n "checking for UCX version compatibility... " >&6; } - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ompi_check_ucx_happy="yes" -else - ompi_check_ucx_happy="no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 -$as_echo "$ompi_check_ucx_happy" >&6; } -fi - if test "$ompi_check_ucx_happy" = "no"; then : - ompi_check_ucx_dir=/opt/ucx -fi -fi - if test "$ompi_check_ucx_happy" != yes; then : - if test -n "$with_ucx_libdir"; then : - ompi_check_ucx_libdir="$with_ucx_libdir" -else - files=`ls $ompi_check_ucx_dir/lib64/libucp.* 2> /dev/null | wc -l` - if test "$files" -gt 0; then : - ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib64 -else - ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib -fi fi - ompi_check_ucx_common_ucx_save_CPPFLAGS="$CPPFLAGS" - ompi_check_ucx_common_ucx_save_LDFLAGS="$LDFLAGS" - ompi_check_ucx_common_ucx_save_LIBS="$LIBS" - - - opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" - opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" - - opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" - opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" - opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" - + fi - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$common_ofi_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -95211,7 +95396,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -95230,7 +95415,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -95238,357 +95423,288 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_ucp_api_ucp_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_ucx_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in ucp/api/ucp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_ucp_api_ucp_h + for arg in $common_ofi_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi - for ac_header in ucp/api/ucp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 -_ACEOF - opal_check_package_header_happy="yes" fi + done -done - if test "$opal_check_package_header_happy" = "yes"; then : + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # see comment above - unset ac_cv_search_ucp_cleanup - opal_check_package_lib_happy="no" - if test "$ompi_check_ucx_libdir" != ""; then : - # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring common_ofi_WRAPPER_EXTRA_CPPFLAGS ($common_ofi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring common_ofi_WRAPPER_EXTRA_CPPFLAGS ($common_ofi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" fi - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_ucx_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:ofi can compile" >&5 +$as_echo_n "checking if MCA component common:ofi can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # If this component was requested as the default for this + # type, then abort. + if test "$with_common" = "ofi" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ofi\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ofi\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "ofi" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ofi\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ofi\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components ofi" fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_common_ofi_DSO=1 else - ac_cv_search_ucp_cleanup=no + BUILD_opal_common_ofi_DSO=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$BUILD_opal_common_ofi_DSO" = "1"; then + MCA_BUILD_opal_common_ofi_DSO_TRUE= + MCA_BUILD_opal_common_ofi_DSO_FALSE='#' else - opal_check_package_lib_happy="no" + MCA_BUILD_opal_common_ofi_DSO_TRUE='#' + MCA_BUILD_opal_common_ofi_DSO_FALSE= fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 + if test "$should_build" = "1"; then : + components_last_result=1 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break + components_last_result=0 fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : -else - ac_cv_search_ucp_cleanup=no + unset compile_mode + + + + + + opal_show_subsubsubtitle "MCA component common:sm (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/opal/mca/common/sm" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "sm" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_common" = "1"; then : + want_component=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + if test "$DISABLE_common_sm" = "1"; then : + want_component=0 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else - opal_check_package_lib_happy="no" + should_build=0 fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi -fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + SHARED_FRAMEWORK="$DSO_common" + SHARED_COMPONENT="$DSO_common_sm" + + STATIC_FRAMEWORK="$STATIC_common" + STATIC_COMPONENT="$STATIC_common_sm" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:sm compile mode" >&5 +$as_echo_n "checking for MCA component common:sm compile mode... " >&6; } + if test "$DIRECT_common" = "sm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/common/sm/Makefile" + + should_build=$should_build + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/common/sm/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components sm" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components sm" + else + if test "common" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/common/sm/lib${OPAL_LIB_PREFIX}mca_common_sm.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/common/sm/libmca_common_sm.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_common_sm_component;" >> $outfile.extern + echo " &mca_common_sm_component, " >> $outfile.struct + static_components="$static_components sm" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:sm can compile" >&5 +$as_echo_n "checking if MCA component common:sm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_common" = "sm" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_common_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** common component sm was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_common" = "sm" ; then +as_fn_error $? "*** common component sm was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$common_sm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -95601,7 +95717,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -95620,16 +95736,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $common_sm_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -95642,7 +95798,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -95661,7 +95817,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -95669,276 +95825,187 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 -$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ucp_cleanup (void); -int main(int argc, char *argv[]) { - ucp_cleanup (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:95696: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:95703: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" + for arg in $common_sm_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" + done fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} - + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - - libnl_sane=0 fi + done - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs ucp" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Check the ending condition + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter +fi + if test "$common_sm_WRAPPER_EXTRA_LIBS" = ""; then : - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Done; do the assignment + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + for arg in $common_sm_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - + done fi - - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - - libnl_sane=0 + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_libnlv3_libs="$opal_libnlv3_libs ucp" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Check the ending condition + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter +else - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Done; do the assignment + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 + for arg in $common_sm_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - + done fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done # Unwind the index @@ -95962,10 +96029,75 @@ done - ;; - esac +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$common_sm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $common_sm_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -95988,118 +96120,594 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ucp_cleanup" != "no" && - test "$ac_cv_search_ucp_cleanup" != "none required"; then : - ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" else - ompi_check_ucx_LIBS="-luct -lucm -lucs" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring common_sm_WRAPPER_EXTRA_CPPFLAGS ($common_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring common_sm_WRAPPER_EXTRA_CPPFLAGS ($common_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" fi - -else - opal_check_package_happy="no" -fi else - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:sm can compile" >&5 +$as_echo_n "checking if MCA component common:sm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # If this component was requested as the default for this + # type, then abort. + if test "$with_common" = "sm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # see comment above - unset ac_cv_search_ucp_cleanup - opal_check_package_lib_happy="no" - if test "$ompi_check_ucx_libdir" != ""; then : - # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "sm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break + # add component to all component list + all_components="$all_components sm" fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_common_sm_DSO=1 else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + BUILD_opal_common_sm_DSO=0 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$BUILD_opal_common_sm_DSO" = "1"; then + MCA_BUILD_opal_common_sm_DSO_TRUE= + MCA_BUILD_opal_common_sm_DSO_FALSE='#' else - opal_check_package_lib_happy="no" + MCA_BUILD_opal_common_sm_DSO_TRUE='#' + MCA_BUILD_opal_common_sm_DSO_FALSE= fi - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi + + if test "$should_build" = "1"; then : + components_last_result=1 else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_ucx_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + components_last_result=0 +fi + + unset compile_mode + + + + + + opal_show_subsubsubtitle "MCA component common:ucx (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/opal/mca/common/ucx" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "ucx" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_common" = "1"; then : + want_component=0 +fi + if test "$DISABLE_common_ucx" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + SHARED_FRAMEWORK="$DSO_common" + SHARED_COMPONENT="$DSO_common_ucx" + + STATIC_FRAMEWORK="$STATIC_common" + STATIC_COMPONENT="$STATIC_common_ucx" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:ucx compile mode" >&5 +$as_echo_n "checking for MCA component common:ucx compile mode... " >&6; } + if test "$DIRECT_common" = "ucx" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/common/ucx/Makefile" + + common_ucx_happy="no" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_check_ucx_dir; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_check_ucx_dir\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + if test -z "$ompi_check_ucx_happy"; then : + +# Check whether --with-ucx was given. +if test "${with_ucx+set}" = set; then : + withval=$with_ucx; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx value" >&5 +$as_echo_n "checking --with-ucx value... " >&6; } + if test "$with_ucx" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx)" >&5 +$as_echo "simple no (specified --without-ucx)" >&6; } +else + if test "$with_ucx" = "yes" || test "x$with_ucx" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_ucx"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ucx not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_ucx/include/ucp/api/ucp.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx)" >&5 +$as_echo "sanity check ok ($with_ucx)" >&6; } + +fi + + +fi + + +fi + + +fi + + +# Check whether --with-ucx-libdir was given. +if test "${with_ucx_libdir+set}" = set; then : + withval=$with_ucx_libdir; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx-libdir value" >&5 +$as_echo_n "checking --with-ucx-libdir value... " >&6; } + if test "$with_ucx_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx-libdir)" >&5 +$as_echo "simple no (specified --without-ucx-libdir)" >&6; } +else + if test "$with_ucx_libdir" = "yes" || test "x$with_ucx_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_ucx_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ucx_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_ucx_libdir/libucp.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx_libdir)" >&5 +$as_echo "sanity check ok ($with_ucx_libdir)" >&6; } + +fi + + +fi + + +fi + + +fi + + + if test "$with_ucx" != "no"; then : + if test -n "$with_ucx" && test "$with_ucx" != "yes"; then : + ompi_check_ucx_dir="$with_ucx" +else + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ucx" >&5 +$as_echo_n "checking for ucx... " >&6; } + +if test -n "$ucx_CFLAGS"; then + pkg_cv_ucx_CFLAGS="$ucx_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ucx_CFLAGS=`$PKG_CONFIG --cflags "ucx" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$ucx_LIBS"; then + pkg_cv_ucx_LIBS="$ucx_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ucx_LIBS=`$PKG_CONFIG --libs "ucx" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$ucx_STATIC_LIBS"; then + pkg_cv_ucx_STATIC_LIBS="$ucx_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ucx_STATIC_LIBS=`$PKG_CONFIG --libs --static "ucx" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + ucx_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ucx" 2>&1` + else + ucx_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ucx" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$ucx_PKG_ERRORS" >&5 + + true +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + true +else + ucx_CFLAGS=$pkg_cv_ucx_CFLAGS + ucx_LIBS=$pkg_cv_ucx_LIBS + ucx_STATIC_LIBS=$pkg_cv_ucx_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + ompi_check_ucx_dir=`$PKG_CONFIG --variable=prefix ucx` + if test "$ompi_check_ucx_dir" = "/usr"; then : + ompi_check_ucx_dir= +fi +fi +fi + ompi_check_ucx_happy="no" + if test -z "$ompi_check_ucx_dir"; then : + + opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" + opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" + + opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" + opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" + opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in dir_prefix; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_ucp_api_ucp_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in ucp/api/ucp.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UCP_API_UCP_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_ucp_api_ucp_h +fi +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in ucp/api/ucp.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UCP_API_UCP_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_ucp_cleanup + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : + +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -96418,14 +97026,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:96421: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +echo "configure:97029: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:96428: \$? = $opal_status" >&5 + echo "configure:97036: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -96733,266 +97341,312 @@ fi -fi - unset opal_check_package_header_happy - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_ucx_happy="yes" else - ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" - ompi_check_ucx_happy="no" + opal_check_package_happy="no" fi +else - CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" - - - CPPFLAGS="$ompi_check_ucx_common_ucx_save_CPPFLAGS" - LDFLAGS="$ompi_check_ucx_common_ucx_save_LDFLAGS" - LIBS="$ompi_check_ucx_common_ucx_save_LIBS" + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - if test "$ompi_check_ucx_happy" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 -$as_echo_n "checking for UCX version compatibility... " >&6; } - old_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + # see comment above + unset ac_cv_search_ucp_cleanup + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); int main () { - +return ucp_cleanup (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ompi_check_ucx_happy="yes" -else - ompi_check_ucx_happy="no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 -$as_echo "$ompi_check_ucx_happy" >&6; } - CPPFLAGS=$old_CPPFLAGS +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : - old_CPPFLAGS="$CPPFLAGS" - if test -n "$ompi_check_ucx_dir"; then : - CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" -fi - ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbr" "ac_cv_have_decl_ucp_tag_send_nbr" "#include -" -if test "x$ac_cv_have_decl_ucp_tag_send_nbr" = xyes; then : - ac_have_decl=1 else - ac_have_decl=0 + ac_cv_search_ucp_cleanup=no fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_TAG_SEND_NBR $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : - -$as_echo "#define HAVE_UCP_TAG_SEND_NBR 1" >>confdefs.h - +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - - ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nb" "ac_cv_have_decl_ucp_ep_flush_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_ep_flush_nb" = xyes; then : - ac_have_decl=1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - ac_have_decl=0 + opal_check_package_lib_happy="no" fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_EP_FLUSH_NB $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_worker_flush_nb" "ac_cv_have_decl_ucp_worker_flush_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_worker_flush_nb" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_WORKER_FLUSH_NB $ac_have_decl +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} _ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_request_check_status" "ac_cv_have_decl_ucp_request_check_status" "#include -" -if test "x$ac_cv_have_decl_ucp_request_check_status" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_REQUEST_CHECK_STATUS $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_put_nb" "ac_cv_have_decl_ucp_put_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_put_nb" = xyes; then : - ac_have_decl=1 else - ac_have_decl=0 + ac_cv_search_ucp_cleanup=no fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_PUT_NB $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_get_nb" "ac_cv_have_decl_ucp_get_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_get_nb" = xyes; then : - ac_have_decl=1 +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - ac_have_decl=0 + opal_check_package_lib_happy="no" fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_GET_NB $ac_have_decl -_ACEOF + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi - ac_fn_c_check_decl "$LINENO" "ucm_test_events" "ac_cv_have_decl_ucm_test_events" "#include -" -if test "x$ac_cv_have_decl_ucm_test_events" = xyes; then : - ac_have_decl=1 + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 else - ac_have_decl=0 -fi + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCM_TEST_EVENTS $ac_have_decl +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} _ACEOF - - ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_AND" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_POST_OP_AND $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_OR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" = xyes; then : - ac_have_decl=1 else - ac_have_decl=0 + ac_cv_search_ucp_cleanup=no fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_POST_OP_OR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_XOR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" = xyes; then : - ac_have_decl=1 +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - ac_have_decl=0 + opal_check_package_lib_happy="no" fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_POST_OP_XOR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FAND" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FAND $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" = xyes; then : - ac_have_decl=1 + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 else - ac_have_decl=0 -fi + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FOR $ac_have_decl +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} _ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FXOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FXOR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "#include -" -if test "x$ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" = xyes; then : - ac_have_decl=1 else - ac_have_decl=0 + ac_cv_search_ucp_cleanup=no fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN $ac_have_decl -_ACEOF - - ac_fn_c_check_decl "$LINENO" "UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "#include -" -if test "x$ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" = xyes; then : - ac_have_decl=1 +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - ac_have_decl=0 + opal_check_package_lib_happy="no" fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : - -$as_echo "#define HAVE_UCP_WORKER_ADDRESS_FLAGS 1" >>confdefs.h - + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi +fi fi - CPPFLAGS=$old_CPPFLAGS - + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -97005,7 +97659,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -97024,399 +97678,325 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` + opal_libnl_sane=1 + case $host in + *linux*) - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Open UCX: $ompi_check_ucx_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + eval $opal_str + unset opal_str -fi -fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - if test "$ompi_check_ucx_happy" = "yes"; then : - common_ucx_CPPFLAGS="$common_ucx_CPPFLAGS $ompi_check_ucx_CPPFLAGS" - common_ucx_LDFLAGS="$common_ucx_LDFLAGS $ompi_check_ucx_LDFLAGS" - common_ucx_LIBS="$common_ucx_LIBS $ompi_check_ucx_LIBS" -$as_echo "#define HAVE_UCX 1" >>confdefs.h + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - common_ucx_happy="yes" -else - if test ! -z "$with_ucx" && test "$with_ucx" != "no"; then : - as_fn_error $? "UCX support requested but not found. Aborting" "$LINENO" 5 -fi -$as_echo "#define HAVE_UCX 0" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ucp_cleanup (void); +int main(int argc, char *argv[]) { + ucp_cleanup (); + return 0; +} +EOF - common_ucx_happy="no" + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:97754: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:97761: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - if test "$common_ucx_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 + libnl_sane=0 fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} - # substitute in the things needed to build common_ucx + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs ucp" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + # Loop over every token we've seen so far - if test "$should_build" = "1"; then : + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/common/ucx/post_configure.sh" + # Check the ending condition - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ucx" + opal_done="`expr $opal_i \>= $opal_count`" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ucx" - else - if test "common" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/common/ucx/lib${OPAL_LIB_PREFIX}mca_common_ucx.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/common/ucx/libmca_common_ucx.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_common_ucx_component;" >> $outfile.extern - echo " &mca_common_ucx_component, " >> $outfile.struct - static_components="$static_components ucx" - fi + # Increment the counter - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:ucx can compile" >&5 -$as_echo_n "checking if MCA component common:ucx can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + opal_i="`expr $opal_i + 1`" + done - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_common" = "ucx" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_common_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** common component ucx was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_common" = "ucx" ; then -as_fn_error $? "*** common component ucx was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi + opal_i="`expr $opal_i - 1`" fi +done - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$common_ucx_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - +# Take all the items in the "array" and assemble them back into a +# single variable - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +# Done; do the assignment - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up - for arg in $common_ucx_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs ucp" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs -else +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # Check the ending condition - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - for arg in $common_ucx_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval -fi - if test "$common_ucx_WRAPPER_EXTRA_LIBS" = ""; then : + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Clean up - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - for arg in $common_ucx_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + opal_libnl_sane=$libnl_sane # Unwind the index @@ -97440,65 +98020,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $common_ucx_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -97521,74 +98046,28 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$common_ucx_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $common_ucx_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ucp_cleanup" != "no" && + test "$ac_cv_search_ucp_cleanup" != "none required"; then : + ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" +else + ompi_check_ucx_LIBS="-luct -lucm -lucs" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -97612,302 +98091,73 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring common_ucx_WRAPPER_EXTRA_CPPFLAGS ($common_ucx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring common_ucx_WRAPPER_EXTRA_CPPFLAGS ($common_ucx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_ucx_happy="yes" else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:ucx can compile" >&5 -$as_echo_n "checking if MCA component common:ucx can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_common" = "ucx" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucx\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ucx\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "ucx" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucx\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ucx\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components ucx" + ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" + ompi_check_ucx_happy="no" fi + CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" + if test "$ompi_check_ucx_happy" = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 +$as_echo_n "checking for UCX version compatibility... " >&6; } - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_common_ucx_DSO=1 -else - BUILD_opal_common_ucx_DSO=0 -fi - if test "$BUILD_opal_common_ucx_DSO" = "1"; then - MCA_BUILD_opal_common_ucx_DSO_TRUE= - MCA_BUILD_opal_common_ucx_DSO_FALSE='#' -else - MCA_BUILD_opal_common_ucx_DSO_TRUE='#' - MCA_BUILD_opal_common_ucx_DSO_FALSE= -fi - + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ - if test "$should_build" = "1"; then : - components_last_result=1 + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ompi_check_ucx_happy="yes" else - components_last_result=0 + ompi_check_ucx_happy="no" fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - unset compile_mode - - - - - - opal_show_subsubsubtitle "MCA component common:verbs (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/opal/mca/common/verbs" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "verbs" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_common" = "1"; then : - want_component=0 -fi - if test "$DISABLE_common_verbs" = "1"; then : - want_component=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 +$as_echo "$ompi_check_ucx_happy" >&6; } fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 + if test "$ompi_check_ucx_happy" = "no"; then : + ompi_check_ucx_dir=/opt/ucx fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_common" - SHARED_COMPONENT="$DSO_common_verbs" - - STATIC_FRAMEWORK="$STATIC_common" - STATIC_COMPONENT="$STATIC_common_verbs" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:verbs compile mode" >&5 -$as_echo_n "checking for MCA component common:verbs compile mode... " >&6; } - if test "$DIRECT_common" = "verbs" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files opal/mca/common/verbs/Makefile" - - common_verbs_happy="no" - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in common_verbs_msg; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"common_verbs_msg\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - # Setup the --with switches to allow users to specify where - # verbs stuff lives. - - - if test -z "$opal_check_openib_happy" ; then - # - # Add padding to OpenIB header - # - # Check whether --enable-openib-control-hdr-padding was given. -if test "${enable_openib_control_hdr_padding+set}" = set; then : - enableval=$enable_openib_control_hdr_padding; fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if want to add padding to the openib BTL control header" >&5 -$as_echo_n "checking if want to add padding to the openib BTL control header... " >&6; } - if test "$enable_openib_control_hdr_padding" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ompi_openib_pad_hdr=1 - elif test "$enable_openib_control_hdr_padding" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ompi_openib_pad_hdr=0 - else - # - # Enable padding for SPARC platforms by default because the - # btl will segv otherwise. Keep padding disabled for other - # platforms since there are some performance implications with - # padding on for those platforms. - # - case "${host}" in - sparc*) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (enabled by default on SPARC)" >&5 -$as_echo "yes (enabled by default on SPARC)" >&6; } - ompi_openib_pad_hdr=1 - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ompi_openib_pad_hdr=0 - ;; - esac - fi - -cat >>confdefs.h <<_ACEOF -#define OPAL_OPENIB_PAD_HDR $ompi_openib_pad_hdr -_ACEOF - - - if test "$opal_want_verbs" = "no"; then : - opal_check_openib_happy="no" + if test "$ompi_check_ucx_happy" != yes; then : + if test -n "$with_ucx_libdir"; then : + ompi_check_ucx_libdir="$with_ucx_libdir" else - opal_check_openib_happy="yes" -fi - - ompi_check_openib_common_verbs_save_CPPFLAGS="$CPPFLAGS" - ompi_check_openib_common_verbs_save_LDFLAGS="$LDFLAGS" - ompi_check_openib_common_verbs_save_LIBS="$LIBS" - - if test "$opal_check_openib_happy" = "yes"; then : - for ac_header in fcntl.h sys/poll.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - + files=`ls $ompi_check_ucx_dir/lib64/libucp.* 2> /dev/null | wc -l` + if test "$files" -gt 0; then : + ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib64 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: fcntl.h sys/poll.h not found. Can not build component." >&5 -$as_echo "$as_me: WARNING: fcntl.h sys/poll.h not found. Can not build component." >&2;} - opal_check_openib_happy="no" + ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib fi - -done - fi - if test "$opal_check_openib_happy" = "yes"; then : + ompi_check_ucx_common_ucx_save_CPPFLAGS="$CPPFLAGS" + ompi_check_ucx_common_ucx_save_LDFLAGS="$LDFLAGS" + ompi_check_ucx_common_ucx_save_LIBS="$LIBS" - opal_check_package_opal_check_openib_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_opal_check_openib_save_LDFLAGS="$LDFLAGS" - opal_check_package_opal_check_openib_save_LIBS="$LIBS" - opal_check_package_opal_check_openib_orig_CPPFLAGS="$opal_check_openib_CPPFLAGS" - opal_check_package_opal_check_openib_orig_LDFLAGS="$opal_check_openib_LDFLAGS" - opal_check_package_opal_check_openib_orig_LIBS="$opal_check_openib_LIBS" + opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" + opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" + + opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" + opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" + opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" # This is stolen from autoconf to peek under the covers to get the @@ -97955,22 +98205,22 @@ # so this sucks, but there's no way to get through the progression # of header includes without killing off the cache variable and trying # again... - unset ac_cv_header_infiniband_verbs_h + unset ac_cv_header_ucp_api_ucp_h # get rid of the trailing slash(es) - dir_prefix=$(echo $opal_verbs_dir | sed -e 'sX/*$XXg') + dir_prefix=$(echo $ompi_check_ucx_dir | sed -e 'sX/*$XXg') opal_check_package_header_happy="no" if test "$dir_prefix" = "/usr" || \ test "$dir_prefix" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 $as_echo "looking for header without includes" >&6; } - for ac_header in infiniband/verbs.h + for ac_header in ucp/api/ucp.h do : - ac_fn_c_check_header_mongrel "$LINENO" "infiniband/verbs.h" "ac_cv_header_infiniband_verbs_h" "$ac_includes_default" -if test "x$ac_cv_header_infiniband_verbs_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_INFINIBAND_VERBS_H 1 +#define HAVE_UCP_API_UCP_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -97979,21 +98229,21 @@ if test "$opal_check_package_header_happy" = "no"; then : # no go on the as is - reset the cache and try again - unset ac_cv_header_infiniband_verbs_h + unset ac_cv_header_ucp_api_ucp_h fi fi if test "$opal_check_package_header_happy" = "no"; then : if test "$dir_prefix" != ""; then : - opal_check_openib_CPPFLAGS="$opal_check_openib_CPPFLAGS -I$dir_prefix/include" + ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" fi - for ac_header in infiniband/verbs.h + for ac_header in ucp/api/ucp.h do : - ac_fn_c_check_header_mongrel "$LINENO" "infiniband/verbs.h" "ac_cv_header_infiniband_verbs_h" "$ac_includes_default" -if test "x$ac_cv_header_infiniband_verbs_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_INFINIBAND_VERBS_H 1 +#define HAVE_UCP_API_UCP_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -98008,15 +98258,15 @@ # see comment above - unset ac_cv_search_ibv_open_device + unset ac_cv_search_ucp_cleanup opal_check_package_lib_happy="no" - if test "$opal_verbs_libdir" != ""; then : + if test "$ompi_check_ucx_libdir" != ""; then : # libdir was specified - search only there - opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_verbs_libdir" - LDFLAGS="$LDFLAGS -L$opal_verbs_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 -$as_echo_n "checking for library containing ibv_open_device... " >&6; } -if ${ac_cv_search_ibv_open_device+:} false; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -98029,42 +98279,42 @@ #ifdef __cplusplus extern "C" #endif -char ibv_open_device (); +char ucp_cleanup (); int main () { -return ibv_open_device (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' ibverbs; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ibv_open_device=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ibv_open_device+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_ibv_open_device+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_ibv_open_device=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 -$as_echo "$ac_cv_search_ibv_open_device" >&6; } -ac_res=$ac_cv_search_ibv_open_device +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -98073,22 +98323,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - unset ac_cv_search_ibv_open_device + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi else # libdir was not specified - go through search path - opal_check_package_libdir="$opal_verbs_dir" + opal_check_package_libdir="$ompi_check_ucx_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 -$as_echo_n "checking for library containing ibv_open_device... " >&6; } -if ${ac_cv_search_ibv_open_device+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -98101,42 +98351,42 @@ #ifdef __cplusplus extern "C" #endif -char ibv_open_device (); +char ucp_cleanup (); int main () { -return ibv_open_device (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' ibverbs; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ibv_open_device=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ibv_open_device+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_ibv_open_device+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_ibv_open_device=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 -$as_echo "$ac_cv_search_ibv_open_device" >&6; } -ac_res=$ac_cv_search_ibv_open_device +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -98146,21 +98396,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - unset ac_cv_search_ibv_open_device + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_check_package_libdir/lib" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 -$as_echo_n "checking for library containing ibv_open_device... " >&6; } -if ${ac_cv_search_ibv_open_device+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -98173,42 +98423,42 @@ #ifdef __cplusplus extern "C" #endif -char ibv_open_device (); +char ucp_cleanup (); int main () { -return ibv_open_device (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' ibverbs; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ibv_open_device=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ibv_open_device+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_ibv_open_device+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_ibv_open_device=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 -$as_echo "$ac_cv_search_ibv_open_device" >&6; } -ac_res=$ac_cv_search_ibv_open_device +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -98218,22 +98468,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - unset ac_cv_search_ibv_open_device + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_check_package_libdir/lib64" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 -$as_echo_n "checking for library containing ibv_open_device... " >&6; } -if ${ac_cv_search_ibv_open_device+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -98246,42 +98496,42 @@ #ifdef __cplusplus extern "C" #endif -char ibv_open_device (); +char ucp_cleanup (); int main () { -return ibv_open_device (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' ibverbs; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ibv_open_device=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ibv_open_device+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_ibv_open_device+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_ibv_open_device=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 -$as_echo "$ac_cv_search_ibv_open_device" >&6; } -ac_res=$ac_cv_search_ibv_open_device +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -98291,9 +98541,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - unset ac_cv_search_ibv_open_device + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi @@ -98390,12 +98640,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libibverbs requires libnl v1 or v3" >&5 -$as_echo_n "checking if libibverbs requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void ibv_open_device (void); +extern void ucp_cleanup (void); int main(int argc, char *argv[]) { - ibv_open_device (); + ucp_cleanup (); return 0; } EOF @@ -98407,14 +98657,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:98410: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS 1>&5 2>&1 +echo "configure:98660: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:98417: \$? = $opal_status" >&5 + echo "configure:98667: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -98434,8 +98684,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ibverbs" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ibverbs" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} fi @@ -98449,15 +98699,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libibverbs links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libibverbs links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 fi @@ -98466,19 +98716,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ibverbs requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ibverbs requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs ibverbs" + opal_libnlv1_libs="$opal_libnlv1_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -98557,19 +98807,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libibverbs requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libibverbs requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs ibverbs" + opal_libnlv3_libs="$opal_libnlv3_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -98710,11 +98960,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ibv_open_device" != "no" && - test "$ac_cv_search_ibv_open_device" != "none required"; then : - opal_check_openib_LIBS="$ac_cv_search_ibv_open_device " + if test "$ac_cv_search_ucp_cleanup" != "no" && + test "$ac_cv_search_ucp_cleanup" != "none required"; then : + ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" else - opal_check_openib_LIBS="" + ompi_check_ucx_LIBS="-luct -lucm -lucs" fi opal_check_package_happy="yes" else @@ -98733,15 +98983,15 @@ # see comment above - unset ac_cv_search_ibv_open_device + unset ac_cv_search_ucp_cleanup opal_check_package_lib_happy="no" - if test "$opal_verbs_libdir" != ""; then : + if test "$ompi_check_ucx_libdir" != ""; then : # libdir was specified - search only there - opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_verbs_libdir" - LDFLAGS="$LDFLAGS -L$opal_verbs_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 -$as_echo_n "checking for library containing ibv_open_device... " >&6; } -if ${ac_cv_search_ibv_open_device+:} false; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -98754,42 +99004,42 @@ #ifdef __cplusplus extern "C" #endif -char ibv_open_device (); +char ucp_cleanup (); int main () { -return ibv_open_device (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' ibverbs; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ibv_open_device=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ibv_open_device+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_ibv_open_device+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_ibv_open_device=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 -$as_echo "$ac_cv_search_ibv_open_device" >&6; } -ac_res=$ac_cv_search_ibv_open_device +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -98798,22 +99048,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - unset ac_cv_search_ibv_open_device + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi else # libdir was not specified - go through search path - opal_check_package_libdir="$opal_verbs_dir" + opal_check_package_libdir="$ompi_check_ucx_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 -$as_echo_n "checking for library containing ibv_open_device... " >&6; } -if ${ac_cv_search_ibv_open_device+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -98826,42 +99076,42 @@ #ifdef __cplusplus extern "C" #endif -char ibv_open_device (); +char ucp_cleanup (); int main () { -return ibv_open_device (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' ibverbs; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ibv_open_device=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ibv_open_device+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_ibv_open_device+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_ibv_open_device=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 -$as_echo "$ac_cv_search_ibv_open_device" >&6; } -ac_res=$ac_cv_search_ibv_open_device +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -98871,21 +99121,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - unset ac_cv_search_ibv_open_device + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_check_package_libdir/lib" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 -$as_echo_n "checking for library containing ibv_open_device... " >&6; } -if ${ac_cv_search_ibv_open_device+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -98898,42 +99148,42 @@ #ifdef __cplusplus extern "C" #endif -char ibv_open_device (); +char ucp_cleanup (); int main () { -return ibv_open_device (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' ibverbs; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ibv_open_device=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ibv_open_device+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_ibv_open_device+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_ibv_open_device=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 -$as_echo "$ac_cv_search_ibv_open_device" >&6; } -ac_res=$ac_cv_search_ibv_open_device +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -98943,22 +99193,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - unset ac_cv_search_ibv_open_device + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_check_package_libdir/lib64" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 -$as_echo_n "checking for library containing ibv_open_device... " >&6; } -if ${ac_cv_search_ibv_open_device+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -98971,42 +99221,42 @@ #ifdef __cplusplus extern "C" #endif -char ibv_open_device (); +char ucp_cleanup (); int main () { -return ibv_open_device (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' ibverbs; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ibv_open_device=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ibv_open_device+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_ibv_open_device+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_ibv_open_device=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 -$as_echo "$ac_cv_search_ibv_open_device" >&6; } -ac_res=$ac_cv_search_ibv_open_device +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -99016,9 +99266,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - unset ac_cv_search_ibv_open_device + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi @@ -99115,12 +99365,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libibverbs requires libnl v1 or v3" >&5 -$as_echo_n "checking if libibverbs requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void ibv_open_device (void); +extern void ucp_cleanup (void); int main(int argc, char *argv[]) { - ibv_open_device (); + ucp_cleanup (); return 0; } EOF @@ -99132,14 +99382,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:99135: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS 1>&5 2>&1 +echo "configure:99385: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:99142: \$? = $opal_status" >&5 + echo "configure:99392: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -99159,8 +99409,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ibverbs" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ibverbs" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} fi @@ -99174,15 +99424,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libibverbs links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libibverbs links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 fi @@ -99191,19 +99441,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ibverbs requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ibverbs requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs ibverbs" + opal_libnlv1_libs="$opal_libnlv1_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -99282,19 +99532,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libibverbs requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libibverbs requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs ibverbs" + opal_libnlv3_libs="$opal_libnlv3_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -99435,11 +99685,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ibv_open_device" != "no" && - test "$ac_cv_search_ibv_open_device" != "none required"; then : - opal_check_openib_LIBS="$ac_cv_search_ibv_open_device " + if test "$ac_cv_search_ucp_cleanup" != "no" && + test "$ac_cv_search_ucp_cleanup" != "none required"; then : + ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" else - opal_check_openib_LIBS="" + ompi_check_ucx_LIBS="-luct -lucm -lucs" fi opal_check_package_happy="yes" else @@ -99474,460 +99724,411 @@ if test "$opal_check_package_happy" = "yes"; then : - opal_check_openib_happy="yes" + ompi_check_ucx_happy="yes" else - opal_check_openib_CPPFLAGS="$opal_check_package_opal_check_openib_orig_CPPFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - opal_check_openib_LIBS="$opal_check_package_opal_check_openib_orig_LIBS" - opal_check_openib_happy="no" + ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" + ompi_check_ucx_happy="no" fi - CPPFLAGS="$opal_check_package_opal_check_openib_save_CPPFLAGS" - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - LIBS="$opal_check_package_opal_check_openib_save_LIBS" + CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" -fi - CPPFLAGS="$CPPFLAGS $opal_check_openib_CPPFLAGS" - LDFLAGS="$LDFLAGS $opal_check_openib_LDFLAGS" - LIBS="$LIBS $opal_check_openib_LIBS" + CPPFLAGS="$ompi_check_ucx_common_ucx_save_CPPFLAGS" + LDFLAGS="$ompi_check_ucx_common_ucx_save_LDFLAGS" + LIBS="$ompi_check_ucx_common_ucx_save_LIBS" - if test "$opal_check_openib_happy" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking number of arguments to ibv_create_cq" >&5 -$as_echo_n "checking number of arguments to ibv_create_cq... " >&6; } -if ${ompi_cv_func_ibv_create_cq_args+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "$ompi_check_ucx_happy" = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 +$as_echo_n "checking for UCX version compatibility... " >&6; } + + old_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include +#include int main () { -ibv_create_cq(NULL, 0, NULL, NULL, 0); + ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ompi_cv_func_ibv_create_cq_args=5 +if ac_fn_c_try_compile "$LINENO"; then : + ompi_check_ucx_happy="yes" else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ompi_check_ucx_happy="no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 +$as_echo "$ompi_check_ucx_happy" >&6; } + CPPFLAGS=$old_CPPFLAGS +fi +fi + + old_CPPFLAGS="$CPPFLAGS" + if test -n "$ompi_check_ucx_dir"; then : + CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" +fi + # Turn off UCX version v1.8 due to issue #8321 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking UCX version" >&5 +$as_echo_n "checking UCX version... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include +#include + #if (UCP_API_MAJOR == 1) && (UCP_API_MINOR == 8) + #error "Invalid version" + #endif int main () { -ibv_create_cq(NULL, 0, NULL); + ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ompi_cv_func_ibv_create_cq_args=3 +if ac_fn_c_try_cpp "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok (not 1.8.x)" >&5 +$as_echo "ok (not 1.8.x)" >&6; } else - ompi_cv_func_ibv_create_cq_args="unknown" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: bad (1.8.x)" >&5 +$as_echo "bad (1.8.x)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: UCX support skipped because version 1.8.x was found, which has a known catastrophic issue." >&5 +$as_echo "$as_me: WARNING: UCX support skipped because version 1.8.x was found, which has a known catastrophic issue." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Please upgrade to UCX version 1.9 or higher." >&5 +$as_echo "$as_me: WARNING: Please upgrade to UCX version 1.9 or higher." >&2;} + ompi_check_ucx_happy=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_cv_func_ibv_create_cq_args" >&5 -$as_echo "$ompi_cv_func_ibv_create_cq_args" >&6; } - if test "$ompi_cv_func_ibv_create_cq_args" = "unknown"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Can not determine number of args to ibv_create_cq." >&5 -$as_echo "$as_me: WARNING: Can not determine number of args to ibv_create_cq." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Not building component." >&5 -$as_echo "$as_me: WARNING: Not building component." >&2;} - opal_check_openib_happy="no" +rm -f conftest.err conftest.i conftest.$ac_ext + if test "$ompi_check_ucx_happy" = yes; then : + + ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbr" "ac_cv_have_decl_ucp_tag_send_nbr" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_nbr" = xyes; then : + ac_have_decl=1 else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define OPAL_IBV_CREATE_CQ_ARGS $ompi_cv_func_ibv_create_cq_args +#define HAVE_DECL_UCP_TAG_SEND_NBR $ac_have_decl _ACEOF +if test $ac_have_decl = 1; then : -fi -fi +$as_echo "#define HAVE_UCP_TAG_SEND_NBR 1" >>confdefs.h - # - # OpenIB dynamic SL - # - # Check whether --enable-openib-dynamic-sl was given. -if test "${enable_openib_dynamic_sl+set}" = set; then : - enableval=$enable_openib_dynamic_sl; fi - - # Set these up so that we can do an AC_DEFINE below - # (unconditionally) - opal_check_openib_have_xrc=0 - opal_check_openib_have_xrc_domains=0 - opal_check_openib_have_opensm_devel=0 - - # If we have the openib stuff available, find out what we've got - if test "$opal_check_openib_happy" = "yes"; then : - ac_fn_c_check_decl "$LINENO" "IBV_EVENT_CLIENT_REREGISTER" "ac_cv_have_decl_IBV_EVENT_CLIENT_REREGISTER" "#include + ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nb" "ac_cv_have_decl_ucp_ep_flush_nb" "#include " -if test "x$ac_cv_have_decl_IBV_EVENT_CLIENT_REREGISTER" = xyes; then : +if test "x$ac_cv_have_decl_ucp_ep_flush_nb" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_EVENT_CLIENT_REREGISTER $ac_have_decl +#define HAVE_DECL_UCP_EP_FLUSH_NB $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "IBV_ACCESS_SO" "ac_cv_have_decl_IBV_ACCESS_SO" "#include +ac_fn_c_check_decl "$LINENO" "ucp_worker_flush_nb" "ac_cv_have_decl_ucp_worker_flush_nb" "#include " -if test "x$ac_cv_have_decl_IBV_ACCESS_SO" = xyes; then : +if test "x$ac_cv_have_decl_ucp_worker_flush_nb" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_ACCESS_SO $ac_have_decl +#define HAVE_DECL_UCP_WORKER_FLUSH_NB $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "IBV_ATOMIC_HCA" "ac_cv_have_decl_IBV_ATOMIC_HCA" "#include +ac_fn_c_check_decl "$LINENO" "ucp_request_check_status" "ac_cv_have_decl_ucp_request_check_status" "#include " -if test "x$ac_cv_have_decl_IBV_ATOMIC_HCA" = xyes; then : +if test "x$ac_cv_have_decl_ucp_request_check_status" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_ATOMIC_HCA $ac_have_decl -_ACEOF - - for ac_func in ibv_get_device_list ibv_resize_cq -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_DECL_UCP_REQUEST_CHECK_STATUS $ac_have_decl _ACEOF - +ac_fn_c_check_decl "$LINENO" "ucp_put_nb" "ac_cv_have_decl_ucp_put_nb" "#include +" +if test "x$ac_cv_have_decl_ucp_put_nb" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -done - - # struct ibv_device.transport_type was added in OFED v1.2 - ac_fn_c_check_member "$LINENO" "struct ibv_device" "transport_type" "ac_cv_member_struct_ibv_device_transport_type" "#include +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_PUT_NB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_get_nb" "ac_cv_have_decl_ucp_get_nb" "#include " -if test "x$ac_cv_member_struct_ibv_device_transport_type" = xyes; then : +if test "x$ac_cv_have_decl_ucp_get_nb" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_IBV_DEVICE_TRANSPORT_TYPE 1 +#define HAVE_DECL_UCP_GET_NB $ac_have_decl _ACEOF - - +ac_fn_c_check_decl "$LINENO" "ucp_put_nbx" "ac_cv_have_decl_ucp_put_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_put_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - - # We have to check functions both exits *and* are declared - # since some distro ship broken ibverbs devel headers - # IBV_DEVICE_XRC is common to all OFED versions - # ibv_create_xrc_rcv_qp was added in OFED 1.3 - # ibv_cmd_open_xrcd (aka XRC Domains) was added in OFED 3.12 - if test "$enable_connectx_xrc" = "yes"; then - ac_fn_c_check_decl "$LINENO" "IBV_DEVICE_XRC" "ac_cv_have_decl_IBV_DEVICE_XRC" "#include +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_PUT_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_get_nbx" "ac_cv_have_decl_ucp_get_nbx" "#include " -if test "x$ac_cv_have_decl_IBV_DEVICE_XRC" = xyes; then : +if test "x$ac_cv_have_decl_ucp_get_nbx" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_DEVICE_XRC $ac_have_decl +#define HAVE_DECL_UCP_GET_NBX $ac_have_decl _ACEOF -if test $ac_have_decl = 1; then : - opal_check_openib_have_xrc=1 - opal_check_openib_have_xrc_domains=1 +ac_fn_c_check_decl "$LINENO" "ucp_atomic_op_nbx" "ac_cv_have_decl_ucp_atomic_op_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_atomic_op_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - fi - if test "$enable_connectx_xrc" = "yes" \ - && test $opal_check_openib_have_xrc -eq 1; then - ac_fn_c_check_decl "$LINENO" "ibv_create_xrc_rcv_qp" "ac_cv_have_decl_ibv_create_xrc_rcv_qp" "#include +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_OP_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nbx" "ac_cv_have_decl_ucp_ep_flush_nbx" "#include " -if test "x$ac_cv_have_decl_ibv_create_xrc_rcv_qp" = xyes; then : +if test "x$ac_cv_have_decl_ucp_ep_flush_nbx" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_CREATE_XRC_RCV_QP $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : - for ac_func in ibv_create_xrc_rcv_qp -do : - ac_fn_c_check_func "$LINENO" "ibv_create_xrc_rcv_qp" "ac_cv_func_ibv_create_xrc_rcv_qp" -if test "x$ac_cv_func_ibv_create_xrc_rcv_qp" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_IBV_CREATE_XRC_RCV_QP 1 +#define HAVE_DECL_UCP_EP_FLUSH_NBX $ac_have_decl _ACEOF + ac_fn_c_check_decl "$LINENO" "ucm_test_events" "ac_cv_have_decl_ucm_test_events" "#include +" +if test "x$ac_cv_have_decl_ucm_test_events" = xyes; then : + ac_have_decl=1 else - opal_check_openib_have_xrc=0 + ac_have_decl=0 fi -done +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCM_TEST_EVENTS $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucm_test_external_events" "ac_cv_have_decl_ucm_test_external_events" "#include +" +if test "x$ac_cv_have_decl_ucm_test_external_events" = xyes; then : + ac_have_decl=1 else - opal_check_openib_have_xrc=0 + ac_have_decl=0 fi - fi - if test "$enable_connectx_xrc" = "yes" \ - && test $opal_check_openib_have_xrc_domains -eq 1; then - ac_fn_c_check_decl "$LINENO" "ibv_cmd_open_xrcd" "ac_cv_have_decl_ibv_cmd_open_xrcd" "#include +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCM_TEST_EXTERNAL_EVENTS $ac_have_decl +_ACEOF + + ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_AND" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" "#include " -if test "x$ac_cv_have_decl_ibv_cmd_open_xrcd" = xyes; then : +if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_CMD_OPEN_XRCD $ac_have_decl +#define HAVE_DECL_UCP_ATOMIC_POST_OP_AND $ac_have_decl _ACEOF -if test $ac_have_decl = 1; then : - ac_fn_c_check_decl "$LINENO" "IBV_SRQT_XRC" "ac_cv_have_decl_IBV_SRQT_XRC" "#include +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_OR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" "#include " -if test "x$ac_cv_have_decl_IBV_SRQT_XRC" = xyes; then : +if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_SRQT_XRC $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : - for ac_func in ibv_cmd_open_xrcd -do : - ac_fn_c_check_func "$LINENO" "ibv_cmd_open_xrcd" "ac_cv_func_ibv_cmd_open_xrcd" -if test "x$ac_cv_func_ibv_cmd_open_xrcd" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_IBV_CMD_OPEN_XRCD 1 +#define HAVE_DECL_UCP_ATOMIC_POST_OP_OR $ac_have_decl _ACEOF - +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_XOR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" = xyes; then : + ac_have_decl=1 else - opal_check_openib_have_xrc_domains=0 + ac_have_decl=0 fi -done +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_POST_OP_XOR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FAND" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" = xyes; then : + ac_have_decl=1 else - opal_check_openib_have_xrc_domains=0 + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FAND $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" = xyes; then : + ac_have_decl=1 else - opal_check_openib_have_xrc_domains=0 + ac_have_decl=0 fi - # XRC and XRC Domains should be considered as exclusive - if test "$opal_check_openib_have_xrc" -eq 1 && \ - test "$opal_check_openib_have_xrc_domains" -eq 1; then - opal_check_openib_have_xrc=0 - fi - fi - - if test "no" != "$enable_openib_dynamic_sl"; then - # We need ib_types.h file, which is installed with opensm-devel - # package. However, ib_types.h has a bad include directive, - # which will cause AC_CHECK_HEADER to fail. - # So instead, we will look for another file that is also - # installed as part of opensm-devel package and included in - # ib_types.h, but it doesn't include any other IB-related files. - ac_fn_c_check_header_mongrel "$LINENO" "infiniband/complib/cl_types_osd.h" "ac_cv_header_infiniband_complib_cl_types_osd_h" "$ac_includes_default" -if test "x$ac_cv_header_infiniband_complib_cl_types_osd_h" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cl_map_init in -losmcomp" >&5 -$as_echo_n "checking for cl_map_init in -losmcomp... " >&6; } -if ${ac_cv_lib_osmcomp_cl_map_init+:} false; then : - $as_echo_n "(cached) " >&6 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FOR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FXOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" = xyes; then : + ac_have_decl=1 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-losmcomp $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + ac_have_decl=0 +fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char cl_map_init (); -int -main () -{ -return cl_map_init (); - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FXOR $ac_have_decl _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_osmcomp_cl_map_init=yes +ac_fn_c_check_decl "$LINENO" "UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "#include +" +if test "x$ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" = xyes; then : + ac_have_decl=1 else - ac_cv_lib_osmcomp_cl_map_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_osmcomp_cl_map_init" >&5 -$as_echo "$ac_cv_lib_osmcomp_cl_map_init" >&6; } -if test "x$ac_cv_lib_osmcomp_cl_map_init" = xyes; then : - opal_check_openib_have_opensm_devel=1 + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" "ac_cv_have_decl_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" "#include +" +if test "x$ac_cv_have_decl_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - - # Abort if dynamic SL support was explicitly requested but opensm-devel - # package wasn't found. Otherwise, OMPI will be built w/o dynamic SL. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if can use dynamic SL support" >&5 -$as_echo_n "checking if can use dynamic SL support... " >&6; } - if test "$opal_check_openib_have_opensm_devel" = "1"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_OP_ATTR_FLAG_MULTI_SEND" "ac_cv_have_decl_UCP_OP_ATTR_FLAG_MULTI_SEND" "#include +" +if test "x$ac_cv_have_decl_UCP_OP_ATTR_FLAG_MULTI_SEND" = xyes; then : + ac_have_decl=1 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - if test "$enable_openib_dynamic_sl" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-openib-dynamic-sl was specified but the" >&5 -$as_echo "$as_me: WARNING: --enable-openib-dynamic-sl was specified but the" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: appropriate header/library files could not be found" >&5 -$as_echo "$as_me: WARNING: appropriate header/library files could not be found" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Please install opensm-devel if you need dynamic SL support" >&5 -$as_echo "$as_me: WARNING: Please install opensm-devel if you need dynamic SL support" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -fi + ac_have_decl=0 fi - fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_OP_ATTR_FLAG_MULTI_SEND $ac_have_decl +_ACEOF - # Check support for RDMAoE devices - common_verbs_have_rdmaoe=0 - ac_fn_c_check_decl "$LINENO" "IBV_LINK_LAYER_ETHERNET" "ac_cv_have_decl_IBV_LINK_LAYER_ETHERNET" "#include + ac_fn_c_check_decl "$LINENO" "UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "#include " -if test "x$ac_cv_have_decl_IBV_LINK_LAYER_ETHERNET" = xyes; then : +if test "x$ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_LINK_LAYER_ETHERNET $ac_have_decl +#define HAVE_DECL_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS $ac_have_decl _ACEOF if test $ac_have_decl = 1; then : - common_verbs_have_rdmaoe=1 -fi +$as_echo "#define HAVE_UCP_WORKER_ADDRESS_FLAGS 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if RDMAoE support is enabled" >&5 -$as_echo_n "checking if RDMAoE support is enabled... " >&6; } +fi + + ac_fn_c_check_decl "$LINENO" "UCP_ATTR_FIELD_MEMORY_TYPES" "ac_cv_have_decl_UCP_ATTR_FIELD_MEMORY_TYPES" "#include +" +if test "x$ac_cv_have_decl_UCP_ATTR_FIELD_MEMORY_TYPES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define OPAL_HAVE_RDMAOE $common_verbs_have_rdmaoe +#define HAVE_DECL_UCP_ATTR_FIELD_MEMORY_TYPES $ac_have_decl _ACEOF +if test $ac_have_decl = 1; then : - if test "1" = "$common_verbs_have_rdmaoe"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - +$as_echo "#define HAVE_UCP_ATTR_MEMORY_TYPES 1" >>confdefs.h fi - # Check to see if works. It is known to - # create problems on some platforms with some compilers (e.g., - # RHEL4U3 with the PGI 32 bit compiler). Use undocumented (in AC - # 2.63) feature of AC_CHECK_HEADERS: if you explicitly pass in - # AC_INCLUDES_DEFAULT as the 4th arg to AC_CHECK_HEADERS, the test - # will fail if the header is present but not compilable, *but it - # will not print the big scary warning*. See - # http://lists.gnu.org/archive/html/autoconf/2008-10/msg00143.html. - if test "$opal_check_openib_happy" = "yes"; then : - for ac_header in infiniband/driver.h -do : - ac_fn_c_check_header_compile "$LINENO" "infiniband/driver.h" "ac_cv_header_infiniband_driver_h" "$ac_includes_default + ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbx" "ac_cv_have_decl_ucp_tag_send_nbx" "#include " -if test "x$ac_cv_header_infiniband_driver_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_INFINIBAND_DRIVER_H 1 -_ACEOF - +if test "x$ac_cv_have_decl_ucp_tag_send_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -done - +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_SEND_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_tag_send_sync_nbx" "ac_cv_have_decl_ucp_tag_send_sync_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_sync_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ConnectX XRC support is enabled" >&5 -$as_echo_n "checking if ConnectX XRC support is enabled... " >&6; } - cat >>confdefs.h <<_ACEOF -#define OPAL_HAVE_CONNECTX_XRC $opal_check_openib_have_xrc +#define HAVE_DECL_UCP_TAG_SEND_SYNC_NBX $ac_have_decl _ACEOF - - if test "1" = "$opal_check_openib_have_xrc"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ConnectIB XRC support is enabled" >&5 -$as_echo_n "checking if ConnectIB XRC support is enabled... " >&6; } +ac_fn_c_check_decl "$LINENO" "ucp_tag_recv_nbx" "ac_cv_have_decl_ucp_tag_recv_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_recv_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define OPAL_HAVE_CONNECTX_XRC_DOMAINS $opal_check_openib_have_xrc_domains +#define HAVE_DECL_UCP_TAG_RECV_NBX $ac_have_decl _ACEOF - if test "1" = "$opal_check_openib_have_xrc_domains"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if dynamic SL is enabled" >&5 -$as_echo_n "checking if dynamic SL is enabled... " >&6; } + ac_fn_c_check_type "$LINENO" "ucp_request_param_t" "ac_cv_type_ucp_request_param_t" "#include +" +if test "x$ac_cv_type_ucp_request_param_t" = xyes; then : cat >>confdefs.h <<_ACEOF -#define OPAL_ENABLE_DYNAMIC_SL $opal_check_openib_have_opensm_devel +#define HAVE_UCP_REQUEST_PARAM_T 1 _ACEOF - if test "1" = "$opal_check_openib_have_opensm_devel"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - common_verbs_LIBS="-losmcomp $common_verbs_LIBS" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - if test -z "$opal_verbs_dir"; then : - openib_include_dir="/usr/include" -else - openib_include_dir="$opal_verbs_dir/include" fi - opal_check_openib_CPPFLAGS="$opal_check_openib_CPPFLAGS -I$openib_include_dir/infiniband" - CPPFLAGS="$ompi_check_openib_common_verbs_save_CPPFLAGS" - LDFLAGS="$ompi_check_openib_common_verbs_save_LDFLAGS" - LIBS="$ompi_check_openib_common_verbs_save_LIBS" + +fi + CPPFLAGS=$old_CPPFLAGS @@ -99969,7 +100170,7 @@ ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="OpenFabrics Verbs: $opal_check_openib_happy" + ompi_summary_line="Open UCX: $ompi_check_ucx_happy" ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) if test -z "$ompi_summary_section_current" ; then @@ -100005,6 +100206,26 @@ done +fi +fi + + if test "$ompi_check_ucx_happy" = "yes"; then : + common_ucx_CPPFLAGS="$common_ucx_CPPFLAGS $ompi_check_ucx_CPPFLAGS" + common_ucx_LDFLAGS="$common_ucx_LDFLAGS $ompi_check_ucx_LDFLAGS" + common_ucx_LIBS="$common_ucx_LIBS $ompi_check_ucx_LIBS" + +$as_echo "#define HAVE_UCX 1" >>confdefs.h + + common_ucx_happy="yes" +else + if test ! -z "$with_ucx" && test "$with_ucx" != "no"; then : + as_fn_error $? "UCX support requested but not found. Aborting" "$LINENO" 5 +fi + +$as_echo "#define HAVE_UCX 0" >>confdefs.h + + common_ucx_happy="no" +fi # Unwind the index @@ -100027,37 +100248,29 @@ unset $opal_var done - fi - common_verbs_have_xrc=$opal_check_openib_have_xrc - common_verbs_have_xrc_domains=$opal_check_openib_have_xrc_domains - common_verbs_have_opensm_devel=$opal_check_openib_have_opensm_devel - if test "$opal_check_openib_happy" = "yes"; then : - common_verbs_CPPFLAGS="$common_verbs_CPPFLAGS $opal_check_openib_CPPFLAGS" - common_verbs_LDFLAGS="$common_verbs_LDFLAGS $opal_check_openib_LDFLAGS" - common_verbs_LIBS="$common_verbs_LIBS $opal_check_openib_LIBS" - common_verbs_happy="yes" + ac_fn_c_check_decl "$LINENO" "open_memstream" "ac_cv_have_decl_open_memstream" "#include +" +if test "x$ac_cv_have_decl_open_memstream" = xyes; then : + ac_have_decl=1 else - if test "$opal_want_verbs" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Verbs support requested (via --with-verbs) but not found." >&5 -$as_echo "$as_me: WARNING: Verbs support requested (via --with-verbs) but not found." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: If you are using libibverbs v1.0 (i.e., OFED v1.0 or v1.1), you *MUST* have both the libsysfs headers and libraries installed. Later versions of libibverbs do not require libsysfs." >&5 -$as_echo "$as_me: WARNING: If you are using libibverbs v1.0 (i.e., OFED v1.0 or v1.1), you *MUST* have both the libsysfs headers and libraries installed. Later versions of libibverbs do not require libsysfs." >&2;} - as_fn_error $? "Aborting." "$LINENO" 5 -fi - + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_OPEN_MEMSTREAM $ac_have_decl +_ACEOF - if test "$common_verbs_happy" = "yes"; then : + if test "$common_ucx_happy" = "yes"; then : should_build=$should_build else should_build=0 fi - # substitute in the things needed to build openib + + # substitute in the things needed to build common_ucx @@ -100071,45 +100284,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/common/verbs/post_configure.sh" + infile="$srcdir/opal/mca/common/ucx/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components verbs" + all_components="$all_components ucx" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components verbs" + dso_components="$dso_components ucx" else if test "common" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/common/verbs/lib${OPAL_LIB_PREFIX}mca_common_verbs.la $static_ltlibs" + static_ltlibs="mca/common/ucx/lib${OPAL_LIB_PREFIX}mca_common_ucx.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/common/verbs/libmca_common_verbs.la $static_ltlibs" + static_ltlibs="mca/common/ucx/libmca_common_ucx.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_common_verbs_component;" >> $outfile.extern - echo " &mca_common_verbs_component, " >> $outfile.struct - static_components="$static_components verbs" + echo "extern const mca_base_component_t mca_common_ucx_component;" >> $outfile.extern + echo " &mca_common_ucx_component, " >> $outfile.struct + static_components="$static_components ucx" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:verbs can compile" >&5 -$as_echo_n "checking if MCA component common:verbs can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:ucx can compile" >&5 +$as_echo_n "checking if MCA component common:ucx can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_common" = "verbs" ; then + if test "$DIRECT_common" = "ucx" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_opal_common_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** common component verbs was supposed to be direct-called, but +as_fn_error $? "*** common component ucx was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -100117,8 +100330,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_common" = "verbs" ; then -as_fn_error $? "*** common component verbs was supposed to be direct-called, but + if test "$DIRECT_common" = "ucx" ; then +as_fn_error $? "*** common component ucx was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -100133,7 +100346,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$common_verbs_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$common_ucx_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -100173,7 +100386,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_verbs_LDFLAGS; do + for arg in $common_ucx_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -100254,7 +100467,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_verbs_WRAPPER_EXTRA_LDFLAGS; do + for arg in $common_ucx_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -100296,7 +100509,7 @@ fi - if test "$common_verbs_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$common_ucx_WRAPPER_EXTRA_LIBS" = ""; then : @@ -100336,7 +100549,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_verbs_LIBS; do + for arg in $common_ucx_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -100417,7 +100630,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_verbs_WRAPPER_EXTRA_LIBS; do + for arg in $common_ucx_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -100465,7 +100678,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$common_verbs_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$common_ucx_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -100508,7 +100721,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_verbs_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $common_ucx_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -100551,32 +100764,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring common_verbs_WRAPPER_EXTRA_CPPFLAGS ($common_verbs_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring common_verbs_WRAPPER_EXTRA_CPPFLAGS ($common_verbs_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring common_ucx_WRAPPER_EXTRA_CPPFLAGS ($common_ucx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring common_ucx_WRAPPER_EXTRA_CPPFLAGS ($common_ucx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:verbs can compile" >&5 -$as_echo_n "checking if MCA component common:verbs can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:ucx can compile" >&5 +$as_echo_n "checking if MCA component common:ucx can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_common" = "verbs" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"verbs\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"verbs\" failed to configure properly" >&2;} + if test "$with_common" = "ucx" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucx\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ucx\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "verbs" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"verbs\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"verbs\" failed to configure properly" >&2;} + if test "$DIRECT_common" = "ucx" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucx\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ucx\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -100584,23 +100797,23 @@ fi # add component to all component list - all_components="$all_components verbs" + all_components="$all_components ucx" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_common_verbs_DSO=1 + BUILD_opal_common_ucx_DSO=1 else - BUILD_opal_common_verbs_DSO=0 + BUILD_opal_common_ucx_DSO=0 fi - if test "$BUILD_opal_common_verbs_DSO" = "1"; then - MCA_BUILD_opal_common_verbs_DSO_TRUE= - MCA_BUILD_opal_common_verbs_DSO_FALSE='#' + if test "$BUILD_opal_common_ucx_DSO" = "1"; then + MCA_BUILD_opal_common_ucx_DSO_TRUE= + MCA_BUILD_opal_common_ucx_DSO_FALSE='#' else - MCA_BUILD_opal_common_verbs_DSO_TRUE='#' - MCA_BUILD_opal_common_verbs_DSO_FALSE= + MCA_BUILD_opal_common_ucx_DSO_TRUE='#' + MCA_BUILD_opal_common_ucx_DSO_FALSE= fi @@ -100616,13 +100829,13 @@ - opal_show_subsubsubtitle "MCA component common:verbs_usnic (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component common:verbs (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/common/verbs_usnic" + component_path="$srcdir/opal/mca/common/verbs" want_component=0 # build if: @@ -100655,7 +100868,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "verbs_usnic" ; then + if test "$DIRECT_common" = "verbs" ; then want_component=1 else want_component=0 @@ -100667,7 +100880,7 @@ if test "$DISABLE_common" = "1"; then : want_component=0 fi - if test "$DISABLE_common_verbs_usnic" = "1"; then : + if test "$DISABLE_common_verbs" = "1"; then : want_component=0 fi @@ -100680,31 +100893,44 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:verbs_usnic compile mode" >&5 -$as_echo_n "checking for MCA component common:verbs_usnic compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 + SHARED_FRAMEWORK="$DSO_common" + SHARED_COMPONENT="$DSO_common_verbs" + + STATIC_FRAMEWORK="$STATIC_common" + STATIC_COMPONENT="$STATIC_common_verbs" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:verbs compile mode" >&5 +$as_echo_n "checking for MCA component common:verbs compile mode... " >&6; } + if test "$DIRECT_common" = "verbs" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 $as_echo "$compile_mode" >&6; } + fi # try to configure the component - ac_config_files="$ac_config_files opal/mca/common/verbs_usnic/Makefile" - - common_verbs_usnic_happy=0 - - -# Check whether --with-verbs-usnic was given. -if test "${with_verbs_usnic+set}" = set; then : - withval=$with_verbs_usnic; -fi - - - if test "$with_verbs_usnic" = "yes"; then : - common_verbs_usnic_happy=1 -fi + ac_config_files="$ac_config_files opal/mca/common/verbs/Makefile" - if test $common_verbs_usnic_happy -eq 1; then : + common_verbs_happy="no" @@ -100717,7 +100943,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in common_verbs_usnic_msg; do + for opal_var in common_verbs_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -100736,7 +100962,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"common_verbs_usnic_msg\"" + opal_str="opal_scope_$opal_scope_index=\"common_verbs_msg\"" eval $opal_str unset opal_str @@ -100799,9 +101025,9 @@ opal_check_openib_happy="yes" fi - ompi_check_openib_common_verbs_usnic_save_CPPFLAGS="$CPPFLAGS" - ompi_check_openib_common_verbs_usnic_save_LDFLAGS="$LDFLAGS" - ompi_check_openib_common_verbs_usnic_save_LIBS="$LIBS" + ompi_check_openib_common_verbs_save_CPPFLAGS="$CPPFLAGS" + ompi_check_openib_common_verbs_save_LDFLAGS="$LDFLAGS" + ompi_check_openib_common_verbs_save_LIBS="$LIBS" if test "$opal_check_openib_happy" = "yes"; then : for ac_header in fcntl.h sys/poll.h @@ -101331,14 +101557,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:101334: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS" >&5 +echo "configure:101560: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:101341: \$? = $opal_status" >&5 + echo "configure:101567: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -102056,14 +102282,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:102059: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS" >&5 +echo "configure:102285: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:102066: \$? = $opal_status" >&5 + echo "configure:102292: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -102737,7 +102963,7 @@ # Check support for RDMAoE devices - common_verbs_usnic_have_rdmaoe=0 + common_verbs_have_rdmaoe=0 ac_fn_c_check_decl "$LINENO" "IBV_LINK_LAYER_ETHERNET" "ac_cv_have_decl_IBV_LINK_LAYER_ETHERNET" "#include " if test "x$ac_cv_have_decl_IBV_LINK_LAYER_ETHERNET" = xyes; then : @@ -102750,7 +102976,7 @@ #define HAVE_DECL_IBV_LINK_LAYER_ETHERNET $ac_have_decl _ACEOF if test $ac_have_decl = 1; then : - common_verbs_usnic_have_rdmaoe=1 + common_verbs_have_rdmaoe=1 fi @@ -102758,10 +102984,10 @@ $as_echo_n "checking if RDMAoE support is enabled... " >&6; } cat >>confdefs.h <<_ACEOF -#define OPAL_HAVE_RDMAOE $common_verbs_usnic_have_rdmaoe +#define OPAL_HAVE_RDMAOE $common_verbs_have_rdmaoe _ACEOF - if test "1" = "$common_verbs_usnic_have_rdmaoe"; then + if test "1" = "$common_verbs_have_rdmaoe"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else @@ -102836,7 +103062,7 @@ if test "1" = "$opal_check_openib_have_opensm_devel"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - common_verbs_usnic_LIBS="-losmcomp $common_verbs_usnic_LIBS" + common_verbs_LIBS="-losmcomp $common_verbs_LIBS" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -102849,9 +103075,9 @@ fi opal_check_openib_CPPFLAGS="$opal_check_openib_CPPFLAGS -I$openib_include_dir/infiniband" - CPPFLAGS="$ompi_check_openib_common_verbs_usnic_save_CPPFLAGS" - LDFLAGS="$ompi_check_openib_common_verbs_usnic_save_LDFLAGS" - LIBS="$ompi_check_openib_common_verbs_usnic_save_LIBS" + CPPFLAGS="$ompi_check_openib_common_verbs_save_CPPFLAGS" + LDFLAGS="$ompi_check_openib_common_verbs_save_LDFLAGS" + LIBS="$ompi_check_openib_common_verbs_save_LIBS" @@ -102953,15 +103179,15 @@ fi - common_verbs_usnic_have_xrc=$opal_check_openib_have_xrc - common_verbs_usnic_have_xrc_domains=$opal_check_openib_have_xrc_domains - common_verbs_usnic_have_opensm_devel=$opal_check_openib_have_opensm_devel + common_verbs_have_xrc=$opal_check_openib_have_xrc + common_verbs_have_xrc_domains=$opal_check_openib_have_xrc_domains + common_verbs_have_opensm_devel=$opal_check_openib_have_opensm_devel if test "$opal_check_openib_happy" = "yes"; then : - common_verbs_usnic_CPPFLAGS="$common_verbs_usnic_CPPFLAGS $opal_check_openib_CPPFLAGS" - common_verbs_usnic_LDFLAGS="$common_verbs_usnic_LDFLAGS $opal_check_openib_LDFLAGS" - common_verbs_usnic_LIBS="$common_verbs_usnic_LIBS $opal_check_openib_LIBS" - common_verbs_usnic_happy=1 + common_verbs_CPPFLAGS="$common_verbs_CPPFLAGS $opal_check_openib_CPPFLAGS" + common_verbs_LDFLAGS="$common_verbs_LDFLAGS $opal_check_openib_LDFLAGS" + common_verbs_LIBS="$common_verbs_LIBS $opal_check_openib_LIBS" + common_verbs_happy="yes" else if test "$opal_want_verbs" = "yes"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Verbs support requested (via --with-verbs) but not found." >&5 @@ -102970,47 +103196,12 @@ $as_echo "$as_me: WARNING: If you are using libibverbs v1.0 (i.e., OFED v1.0 or v1.1), you *MUST* have both the libsysfs headers and libraries installed. Later versions of libibverbs do not require libsysfs." >&2;} as_fn_error $? "Aborting." "$LINENO" 5 fi - common_verbs_usnic_happy=0 -fi - - - -fi - - if test $common_verbs_usnic_happy -eq 1; then : - ac_fn_c_check_member "$LINENO" "struct ibv_device" "ops" "ac_cv_member_struct_ibv_device_ops" "#include -" -if test "x$ac_cv_member_struct_ibv_device_ops" = xyes; then : - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --with-verbs-usnic specified, but the verbs.h does not" >&5 -$as_echo "$as_me: WARNING: --with-verbs-usnic specified, but the verbs.h does not" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: have the required member fields. It is highly likely" >&5 -$as_echo "$as_me: WARNING: have the required member fields. It is highly likely" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: that you do not need --with-verbs-usnic. Try configuring" >&5 -$as_echo "$as_me: WARNING: that you do not need --with-verbs-usnic. Try configuring" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: and building Open MPI without it; if you get warnings" >&5 -$as_echo "$as_me: WARNING: and building Open MPI without it; if you get warnings" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: about usnic IB devices anyway, please let us know." >&5 -$as_echo "$as_me: WARNING: about usnic IB devices anyway, please let us know." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Since you asked for --with-verbs-usnic and we cannot" >&5 -$as_echo "$as_me: WARNING: Since you asked for --with-verbs-usnic and we cannot" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: deliver it, configure will now abort." >&5 -$as_echo "$as_me: WARNING: deliver it, configure will now abort." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - -fi - fi -cat >>confdefs.h <<_ACEOF -#define OPAL_COMMON_VERBS_USNIC_HAPPY $common_verbs_usnic_happy -_ACEOF - - if test $common_verbs_usnic_happy -eq 1; then : + if test "$common_verbs_happy" = "yes"; then : should_build=$should_build else should_build=0 @@ -103021,6 +103212,7 @@ + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -103029,45 +103221,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/common/verbs_usnic/post_configure.sh" + infile="$srcdir/opal/mca/common/verbs/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components verbs_usnic" + all_components="$all_components verbs" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components verbs_usnic" + dso_components="$dso_components verbs" else if test "common" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/common/verbs_usnic/lib${OPAL_LIB_PREFIX}mca_common_verbs_usnic.la $static_ltlibs" + static_ltlibs="mca/common/verbs/lib${OPAL_LIB_PREFIX}mca_common_verbs.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/common/verbs_usnic/libmca_common_verbs_usnic.la $static_ltlibs" + static_ltlibs="mca/common/verbs/libmca_common_verbs.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_common_verbs_usnic_component;" >> $outfile.extern - echo " &mca_common_verbs_usnic_component, " >> $outfile.struct - static_components="$static_components verbs_usnic" + echo "extern const mca_base_component_t mca_common_verbs_component;" >> $outfile.extern + echo " &mca_common_verbs_component, " >> $outfile.struct + static_components="$static_components verbs" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:verbs_usnic can compile" >&5 -$as_echo_n "checking if MCA component common:verbs_usnic can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:verbs can compile" >&5 +$as_echo_n "checking if MCA component common:verbs can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_common" = "verbs_usnic" ; then + if test "$DIRECT_common" = "verbs" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_opal_common_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** common component verbs_usnic was supposed to be direct-called, but +as_fn_error $? "*** common component verbs was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -103075,8 +103267,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_common" = "verbs_usnic" ; then -as_fn_error $? "*** common component verbs_usnic was supposed to be direct-called, but + if test "$DIRECT_common" = "verbs" ; then +as_fn_error $? "*** common component verbs was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -103091,7 +103283,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$common_verbs_usnic_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$common_verbs_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -103131,7 +103323,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_verbs_usnic_LDFLAGS; do + for arg in $common_verbs_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -103212,7 +103404,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_verbs_usnic_WRAPPER_EXTRA_LDFLAGS; do + for arg in $common_verbs_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -103254,7 +103446,7 @@ fi - if test "$common_verbs_usnic_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$common_verbs_WRAPPER_EXTRA_LIBS" = ""; then : @@ -103294,7 +103486,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_verbs_usnic_LIBS; do + for arg in $common_verbs_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -103375,7 +103567,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_verbs_usnic_WRAPPER_EXTRA_LIBS; do + for arg in $common_verbs_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -103423,7 +103615,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$common_verbs_usnic_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$common_verbs_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -103466,7 +103658,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_verbs_usnic_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $common_verbs_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -103509,32 +103701,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring common_verbs_usnic_WRAPPER_EXTRA_CPPFLAGS ($common_verbs_usnic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring common_verbs_usnic_WRAPPER_EXTRA_CPPFLAGS ($common_verbs_usnic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring common_verbs_WRAPPER_EXTRA_CPPFLAGS ($common_verbs_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring common_verbs_WRAPPER_EXTRA_CPPFLAGS ($common_verbs_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:verbs_usnic can compile" >&5 -$as_echo_n "checking if MCA component common:verbs_usnic can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:verbs can compile" >&5 +$as_echo_n "checking if MCA component common:verbs can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_common" = "verbs_usnic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"verbs_usnic\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"verbs_usnic\" failed to configure properly" >&2;} + if test "$with_common" = "verbs" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"verbs\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"verbs\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "verbs_usnic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"verbs_usnic\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"verbs_usnic\" failed to configure properly" >&2;} + if test "$DIRECT_common" = "verbs" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"verbs\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"verbs\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -103542,23 +103734,23 @@ fi # add component to all component list - all_components="$all_components verbs_usnic" + all_components="$all_components verbs" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_common_verbs_usnic_DSO=1 + BUILD_opal_common_verbs_DSO=1 else - BUILD_opal_common_verbs_usnic_DSO=0 + BUILD_opal_common_verbs_DSO=0 fi - if test "$BUILD_opal_common_verbs_usnic_DSO" = "1"; then - MCA_BUILD_opal_common_verbs_usnic_DSO_TRUE= - MCA_BUILD_opal_common_verbs_usnic_DSO_FALSE='#' + if test "$BUILD_opal_common_verbs_DSO" = "1"; then + MCA_BUILD_opal_common_verbs_DSO_TRUE= + MCA_BUILD_opal_common_verbs_DSO_FALSE='#' else - MCA_BUILD_opal_common_verbs_usnic_DSO_TRUE='#' - MCA_BUILD_opal_common_verbs_usnic_DSO_FALSE= + MCA_BUILD_opal_common_verbs_DSO_TRUE='#' + MCA_BUILD_opal_common_verbs_DSO_FALSE= fi @@ -103574,24 +103766,13 @@ - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - - if test "1" != "0"; then : - - for component_path in $srcdir/opal/mca/common/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component common:$component (need to configure)" + opal_show_subsubsubtitle "MCA component common:verbs_usnic (m4 configuration macro)" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/common/$component" + component_path="$srcdir/opal/mca/common/verbs_usnic" want_component=0 # build if: @@ -103624,7 +103805,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "$component" ; then + if test "$DIRECT_common" = "verbs_usnic" ; then want_component=1 else want_component=0 @@ -103636,56 +103817,44 @@ if test "$DISABLE_common" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_common_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi + if test "$DISABLE_common_verbs_usnic" = "1"; then : + want_component=0 +fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_common" - str="SHARED_COMPONENT=\$DSO_common_$component" - eval $str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:verbs_usnic compile mode" >&5 +$as_echo_n "checking for MCA component common:verbs_usnic compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - STATIC_FRAMEWORK="$STATIC_common" - str="STATIC_COMPONENT=\$STATIC_common_$component" - eval $str - shared_mode_override=static + # try to configure the component - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + ac_config_files="$ac_config_files opal/mca/common/verbs_usnic/Makefile" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:$component compile mode" >&5 -$as_echo_n "checking for MCA component common:$component compile mode... " >&6; } - if test "$DIRECT_common" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + common_verbs_usnic_happy=0 - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - if test "$should_build" = "1" ; then +# Check whether --with-verbs-usnic was given. +if test "${with_verbs_usnic+set}" = set; then : + withval=$with_verbs_usnic; +fi + + + if test "$with_verbs_usnic" = "yes"; then : + common_verbs_usnic_happy=1 +fi + + if test $common_verbs_usnic_happy -eq 1; then : @@ -103698,7 +103867,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in common_verbs_usnic_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -103717,7 +103886,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"common_verbs_usnic_msg\"" eval $opal_str unset opal_str @@ -103725,250 +103894,99 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# opal/mca/common/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="opal/mca/common/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + # Setup the --with switches to allow users to specify where + # verbs stuff lives. - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + if test -z "$opal_check_openib_happy" ; then + # + # Add padding to OpenIB header + # + # Check whether --enable-openib-control-hdr-padding was given. +if test "${enable_openib_control_hdr_padding+set}" = set; then : + enableval=$enable_openib_control_hdr_padding; +fi - if test -d ./$subdir_dir; then :; + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if want to add padding to the openib BTL control header" >&5 +$as_echo_n "checking if want to add padding to the openib BTL control header... " >&6; } + if test "$enable_openib_control_hdr_padding" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + ompi_openib_pad_hdr=1 + elif test "$enable_openib_control_hdr_padding" = "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ompi_openib_pad_hdr=0 else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + # + # Enable padding for SPARC platforms by default because the + # btl will segv otherwise. Keep padding disabled for other + # platforms since there are some performance implications with + # padding on for those platforms. + # + case "${host}" in + sparc*) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (enabled by default on SPARC)" >&5 +$as_echo "yes (enabled by default on SPARC)" >&6; } + ompi_openib_pad_hdr=1 + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ompi_openib_pad_hdr=0 + ;; + esac fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - - # - # Construct the --cache-file argument - # - - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi +cat >>confdefs.h <<_ACEOF +#define OPAL_OPENIB_PAD_HDR $ompi_openib_pad_hdr +_ACEOF - # - # Go back to the topdir - # - cd $subdir_parent + if test "$opal_want_verbs" = "no"; then : + opal_check_openib_happy="no" +else + opal_check_openib_happy="yes" fi -# -# Clean up -# - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/opal/mca/common/all_components/post_configure.sh" - if test -f $infile; then - - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - common_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - common_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + ompi_check_openib_common_verbs_usnic_save_CPPFLAGS="$CPPFLAGS" + ompi_check_openib_common_verbs_usnic_save_LDFLAGS="$LDFLAGS" + ompi_check_openib_common_verbs_usnic_save_LIBS="$LIBS" + if test "$opal_check_openib_happy" = "yes"; then : + for ac_header in fcntl.h sys/poll.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: fcntl.h sys/poll.h not found. Can not build component." >&5 +$as_echo "$as_me: WARNING: fcntl.h sys/poll.h not found. Can not build component." >&2;} + opal_check_openib_happy="no" +fi +done - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/common/$component/post_configure.sh" +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + if test "$opal_check_openib_happy" = "yes"; then : - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "common" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/common/$component/lib${OPAL_LIB_PREFIX}mca_common_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/common/$component/libmca_common_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_common_$component_component;" >> $outfile.extern - echo " &mca_common_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi + opal_check_package_opal_check_openib_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_opal_check_openib_save_LDFLAGS="$LDFLAGS" + opal_check_package_opal_check_openib_save_LIBS="$LIBS" - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:$component can compile" >&5 -$as_echo_n "checking if MCA component common:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + opal_check_package_opal_check_openib_orig_CPPFLAGS="$opal_check_openib_CPPFLAGS" + opal_check_package_opal_check_openib_orig_LDFLAGS="$opal_check_openib_LDFLAGS" + opal_check_package_opal_check_openib_orig_LIBS="$opal_check_openib_LIBS" - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_common" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_common_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** common component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_common" = "$component" ; then -as_fn_error $? "*** common component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$common_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -103981,7 +103999,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -104000,7 +104018,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -104008,48 +104026,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_infiniband_verbs_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $opal_verbs_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in infiniband/verbs.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "infiniband/verbs.h" "ac_cv_header_infiniband_verbs_h" "$ac_includes_default" +if test "x$ac_cv_header_infiniband_verbs_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_INFINIBAND_VERBS_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_infiniband_verbs_h fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + opal_check_openib_CPPFLAGS="$opal_check_openib_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in infiniband/verbs.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "infiniband/verbs.h" "ac_cv_header_infiniband_verbs_h" "$ac_includes_default" +if test "x$ac_cv_header_infiniband_verbs_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_INFINIBAND_VERBS_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_ibv_open_device + opal_check_package_lib_happy="no" + if test "$opal_verbs_libdir" != ""; then : + # libdir was specified - search only there + opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_verbs_libdir" + LDFLAGS="$LDFLAGS -L$opal_verbs_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 +$as_echo_n "checking for library containing ibv_open_device... " >&6; } +if ${ac_cv_search_ibv_open_device+:} false; then : + $as_echo_n "(cached) " >&6 else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ibv_open_device (); +int +main () +{ +return ibv_open_device (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ibverbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ibv_open_device=$ac_res fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ibv_open_device+:} false; then : + break fi - done +done +if ${ac_cv_search_ibv_open_device+:} false; then : +else + ac_cv_search_ibv_open_device=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 +$as_echo "$ac_cv_search_ibv_open_device" >&6; } +ac_res=$ac_cv_search_ibv_open_device +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + unset ac_cv_search_ibv_open_device +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_verbs_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 +$as_echo_n "checking for library containing ibv_open_device... " >&6; } +if ${ac_cv_search_ibv_open_device+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ibv_open_device (); +int +main () +{ +return ibv_open_device (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ibverbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ibv_open_device=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ibv_open_device+:} false; then : + break +fi +done +if ${ac_cv_search_ibv_open_device+:} false; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +else + ac_cv_search_ibv_open_device=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 +$as_echo "$ac_cv_search_ibv_open_device" >&6; } +ac_res=$ac_cv_search_ibv_open_device +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi -str="line=\$common_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + unset ac_cv_search_ibv_open_device +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 +$as_echo_n "checking for library containing ibv_open_device... " >&6; } +if ${ac_cv_search_ibv_open_device+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ibv_open_device (); +int +main () +{ +return ibv_open_device (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ibverbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ibv_open_device=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ibv_open_device+:} false; then : + break +fi +done +if ${ac_cv_search_ibv_open_device+:} false; then : + +else + ac_cv_search_ibv_open_device=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 +$as_echo "$ac_cv_search_ibv_open_device" >&6; } +ac_res=$ac_cv_search_ibv_open_device +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + unset ac_cv_search_ibv_open_device +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 +$as_echo_n "checking for library containing ibv_open_device... " >&6; } +if ${ac_cv_search_ibv_open_device+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ibv_open_device (); +int +main () +{ +return ibv_open_device (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ibverbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ibv_open_device=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ibv_open_device+:} false; then : + break +fi +done +if ${ac_cv_search_ibv_open_device+:} false; then : + +else + ac_cv_search_ibv_open_device=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 +$as_echo "$ac_cv_search_ibv_open_device" >&6; } +ac_res=$ac_cv_search_ibv_open_device +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + unset ac_cv_search_ibv_open_device +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -104062,7 +104389,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -104081,443 +104408,325 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` + opal_libnl_sane=1 + case $host in + *linux*) - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + eval $opal_str + unset opal_str - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:$component can compile" >&5 -$as_echo_n "checking if MCA component common:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_common" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libibverbs requires libnl v1 or v3" >&5 +$as_echo_n "checking if libibverbs requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ibv_open_device (void); +int main(int argc, char *argv[]) { + ibv_open_device (); + return 0; +} +EOF - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + this_requires_v1=0 + this_requires_v3=0 + result_msg= - fi - fi - done +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:104484: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS 1>&5 2>&1 +opal_status=$? +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:104491: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } - MCA_opal_common_ALL_COMPONENTS="$all_components" - MCA_opal_common_STATIC_COMPONENTS="$static_components" - MCA_opal_common_DSO_COMPONENTS="$dso_components" - MCA_opal_common_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_opal_common_ALL_SUBDIRS= - for item in $all_components ; do - MCA_opal_common_ALL_SUBDIRS="$MCA_opal_common_ALL_SUBDIRS mca/common/$item" - done - - - - MCA_opal_common_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_opal_common_STATIC_SUBDIRS="$MCA_opal_common_STATIC_SUBDIRS mca/common/$item" - done +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ibverbs" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ibverbs" >&2;} +fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - MCA_opal_common_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_opal_common_DSO_SUBDIRS="$MCA_opal_common_DSO_SUBDIRS mca/common/$item" - done + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libibverbs links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libibverbs links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "common" != "common"; then - cat > $outfile <&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ibverbs requires libnl" >&2;} -const mca_base_component_t *mca_common_base_static_components[] = { -`cat $outfile.struct` - NULL -}; + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} -#if defined(c_plusplus) || defined(__cplusplus) -} -#endif + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs ibverbs" -EOF - # Only replace the header file if a) it doesn't previously - # exist, or b) the contents are different. Do this to not - # trigger recompilation of certain .c files just because the - # timestamp changed on $outfile_real (similar to the way AC - # handles AC_CONFIG_HEADER files). - diff $outfile $outfile_real > /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - unset all_components static_components dso_components outfile outfile_real +# Go through each item in the variable and only keep the unique ones - MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS allocator" - MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/allocator" - MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_allocator_ALL_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_allocator_DSO_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_allocator_STATIC_SUBDIRS)" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/allocator/libmca_allocator.la" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_allocator_STATIC_LTLIBS)" +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - opal_show_subsubtitle "Configuring MCA framework allocator" + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= + # Check the ending condition - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=opal/mca/allocator/base - as_dir=$outdir; as_fn_mkdir_p + opal_done="`expr $opal_i \>= $opal_count`" - # emit Makefile rule - ac_config_files="$ac_config_files opal/mca/allocator/Makefile" + # Increment the counter + opal_i="`expr $opal_i + 1`" + done - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern + # If we didn't find the token, add it to the "array" - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework allocator" >&5 -$as_echo_n "checking for no configure components in framework allocator... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: basic, bucket" >&5 -$as_echo "basic, bucket" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework allocator" >&5 -$as_echo_n "checking for m4 configure components in framework allocator... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # run the configure logic for the no-config components + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - opal_show_subsubsubtitle "MCA component allocator:basic (no configuration)" +# Done; do the assignment - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi - component_path="$srcdir/opal/mca/allocator/basic" - want_component=0 +fi - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_allocator" ; then - if test "$DIRECT_allocator" = "basic" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libibverbs requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libibverbs requires libnl-3" >&2;} - # if we were explicitly disabled, don't build :) - if test "$DISABLE_allocator" = "1"; then : - want_component=0 -fi - if test "$DISABLE_allocator_basic" = "1"; then : - want_component=0 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} - if test "$want_component" = "1"; then : - should_build=1 + libnl_sane=0 else - should_build=0 -fi + opal_libnlv3_libs="$opal_libnlv3_libs ibverbs" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - SHARED_FRAMEWORK="$DSO_allocator" - SHARED_COMPONENT="$DSO_allocator_basic" +# Go through each item in the variable and only keep the unique ones - STATIC_FRAMEWORK="$STATIC_allocator" - STATIC_COMPONENT="$STATIC_allocator_basic" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - shared_mode_override=static + # Loop over every token we've seen so far - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component allocator:basic compile mode" >&5 -$as_echo_n "checking for MCA component allocator:basic compile mode... " >&6; } - if test "$DIRECT_allocator" = "basic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "$should_build" = "1" ; then + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/allocator/basic/post_configure.sh" + opal_i="`expr $opal_i + 1`" + done - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components basic" + # If we didn't find the token, add it to the "array" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components basic" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - if test "allocator" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/allocator/basic/lib${OPAL_LIB_PREFIX}mca_allocator_basic.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/allocator/basic/libmca_allocator_basic.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_allocator_basic_component;" >> $outfile.extern - echo " &mca_allocator_basic_component, " >> $outfile.struct - static_components="$static_components basic" + opal_i="`expr $opal_i - 1`" fi +done - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component allocator:basic can compile" >&5 -$as_echo_n "checking if MCA component allocator:basic can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +# Take all the items in the "array" and assemble them back into a +# single variable - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_allocator" = "basic" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_allocator_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** allocator component basic was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_allocator" = "basic" ; then -as_fn_error $? "*** allocator component basic was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$allocator_basic_WRAPPER_EXTRA_LDFLAGS" = ""; then : + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Clean up - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - for arg in $allocator_basic_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + opal_libnl_sane=$libnl_sane # Unwind the index @@ -104541,65 +104750,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $allocator_basic_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -104622,89 +104776,332 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - if test "$allocator_basic_WRAPPER_EXTRA_LIBS" = ""; then : +fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ibv_open_device" != "no" && + test "$ac_cv_search_ibv_open_device" != "none required"; then : + opal_check_openib_LIBS="$ac_cv_search_ibv_open_device " +else + opal_check_openib_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +else + opal_check_package_happy="no" +fi +else - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # see comment above + unset ac_cv_search_ibv_open_device + opal_check_package_lib_happy="no" + if test "$opal_verbs_libdir" != ""; then : + # libdir was specified - search only there + opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_verbs_libdir" + LDFLAGS="$LDFLAGS -L$opal_verbs_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 +$as_echo_n "checking for library containing ibv_open_device... " >&6; } +if ${ac_cv_search_ibv_open_device+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ibv_open_device (); +int +main () +{ +return ibv_open_device (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ibverbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ibv_open_device=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ibv_open_device+:} false; then : + break +fi +done +if ${ac_cv_search_ibv_open_device+:} false; then : - for arg in $allocator_basic_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +else + ac_cv_search_ibv_open_device=no fi - done +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 +$as_echo "$ac_cv_search_ibv_open_device" >&6; } +ac_res=$ac_cv_search_ibv_open_device +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_lib_happy="no" fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + unset ac_cv_search_ibv_open_device fi - done +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_verbs_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 +$as_echo_n "checking for library containing ibv_open_device... " >&6; } +if ${ac_cv_search_ibv_open_device+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ibv_open_device (); +int +main () +{ +return ibv_open_device (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ibverbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ibv_open_device=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ibv_open_device+:} false; then : + break +fi +done +if ${ac_cv_search_ibv_open_device+:} false; then : - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +else + ac_cv_search_ibv_open_device=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 +$as_echo "$ac_cv_search_ibv_open_device" >&6; } +ac_res=$ac_cv_search_ibv_open_device +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + unset ac_cv_search_ibv_open_device +fi +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 +$as_echo_n "checking for library containing ibv_open_device... " >&6; } +if ${ac_cv_search_ibv_open_device+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ibv_open_device (); +int +main () +{ +return ibv_open_device (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ibverbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ibv_open_device=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ibv_open_device+:} false; then : + break +fi +done +if ${ac_cv_search_ibv_open_device+:} false; then : + +else + ac_cv_search_ibv_open_device=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 +$as_echo "$ac_cv_search_ibv_open_device" >&6; } +ac_res=$ac_cv_search_ibv_open_device +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + unset ac_cv_search_ibv_open_device +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 +$as_echo_n "checking for library containing ibv_open_device... " >&6; } +if ${ac_cv_search_ibv_open_device+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ibv_open_device (); +int +main () +{ +return ibv_open_device (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ibverbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ibv_open_device=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ibv_open_device+:} false; then : + break +fi +done +if ${ac_cv_search_ibv_open_device+:} false; then : else + ac_cv_search_ibv_open_device=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 +$as_echo "$ac_cv_search_ibv_open_device" >&6; } +ac_res=$ac_cv_search_ibv_open_device +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + unset ac_cv_search_ibv_open_device +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -104717,7 +105114,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -104736,66 +105133,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $allocator_basic_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$allocator_basic_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -104808,7 +105155,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -104827,7 +105174,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -104835,490 +105182,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $allocator_basic_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libibverbs requires libnl v1 or v3" >&5 +$as_echo_n "checking if libibverbs requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ibv_open_device (void); +int main(int argc, char *argv[]) { + ibv_open_device (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:105209: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:105216: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring allocator_basic_WRAPPER_EXTRA_CPPFLAGS ($allocator_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring allocator_basic_WRAPPER_EXTRA_CPPFLAGS ($allocator_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component allocator:basic can compile" >&5 -$as_echo_n "checking if MCA component allocator:basic can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_allocator" = "basic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_allocator" ; then - if test "$DIRECT_allocator" = "basic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components basic" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_opal_allocator_basic_DSO=1 - else - BUILD_opal_allocator_basic_DSO=0 - fi - if test "$BUILD_opal_allocator_basic_DSO" = "1"; then - MCA_BUILD_opal_allocator_basic_DSO_TRUE= - MCA_BUILD_opal_allocator_basic_DSO_FALSE='#' -else - MCA_BUILD_opal_allocator_basic_DSO_TRUE='#' - MCA_BUILD_opal_allocator_basic_DSO_FALSE= + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ibverbs" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ibverbs" >&2;} - ac_config_files="$ac_config_files opal/mca/allocator/basic/Makefile" - - - unset compile_mode - - opal_show_subsubsubtitle "MCA component allocator:bucket (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" +fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - component_path="$srcdir/opal/mca/allocator/bucket" - want_component=0 + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libibverbs links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libibverbs links to both libnl and libnl-3." >&2;} - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_allocator" ; then - if test "$DIRECT_allocator" = "bucket" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} - # if we were explicitly disabled, don't build :) - if test "$DISABLE_allocator" = "1"; then : - want_component=0 -fi - if test "$DISABLE_allocator_bucket" = "1"; then : - want_component=0 + libnl_sane=0 fi - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ibverbs requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ibverbs requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} - SHARED_FRAMEWORK="$DSO_allocator" - SHARED_COMPONENT="$DSO_allocator_bucket" + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs ibverbs" - STATIC_FRAMEWORK="$STATIC_allocator" - STATIC_COMPONENT="$STATIC_allocator_bucket" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - shared_mode_override=static +# Go through each item in the variable and only keep the unique ones - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component allocator:bucket compile mode" >&5 -$as_echo_n "checking for MCA component allocator:bucket compile mode... " >&6; } - if test "$DIRECT_allocator" = "bucket" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + # Loop over every token we've seen so far - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - if test "$should_build" = "1" ; then + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/allocator/bucket/post_configure.sh" + opal_done="`expr $opal_i \>= $opal_count`" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components bucket" + # Increment the counter - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components bucket" - else - if test "allocator" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/allocator/bucket/lib${OPAL_LIB_PREFIX}mca_allocator_bucket.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/allocator/bucket/libmca_allocator_bucket.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_allocator_bucket_component;" >> $outfile.extern - echo " &mca_allocator_bucket_component, " >> $outfile.struct - static_components="$static_components bucket" - fi + opal_i="`expr $opal_i + 1`" + done - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component allocator:bucket can compile" >&5 -$as_echo_n "checking if MCA component allocator:bucket can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # If we didn't find the token, add it to the "array" - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_allocator" = "bucket" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_allocator_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** allocator component bucket was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_allocator" = "bucket" ; then -as_fn_error $? "*** allocator component bucket was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi + opal_i="`expr $opal_i - 1`" fi +done - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$allocator_bucket_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - +# Take all the items in the "array" and assemble them back into a +# single variable - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +# Done; do the assignment - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up - for arg in $allocator_bucket_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libibverbs requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libibverbs requires libnl-3" >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs ibverbs" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs -else +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # Check the ending condition - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - for arg in $allocator_bucket_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval -fi - if test "$allocator_bucket_WRAPPER_EXTRA_LIBS" = ""; then : + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Clean up - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - for arg in $allocator_bucket_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + opal_libnl_sane=$libnl_sane # Unwind the index @@ -105342,65 +105475,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $allocator_bucket_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -105423,74 +105501,28 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$allocator_bucket_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $allocator_bucket_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ibv_open_device" != "no" && + test "$ac_cv_search_ibv_open_device" != "none required"; then : + opal_check_openib_LIBS="$ac_cv_search_ibv_open_device " +else + opal_check_openib_LIBS="" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -105514,186 +105546,463 @@ done + + if test "$opal_check_package_happy" = "yes"; then : + opal_check_openib_happy="yes" +else + opal_check_openib_CPPFLAGS="$opal_check_package_opal_check_openib_orig_CPPFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + opal_check_openib_LIBS="$opal_check_package_opal_check_openib_orig_LIBS" + opal_check_openib_happy="no" +fi + + CPPFLAGS="$opal_check_package_opal_check_openib_save_CPPFLAGS" + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + LIBS="$opal_check_package_opal_check_openib_save_LIBS" + fi + + CPPFLAGS="$CPPFLAGS $opal_check_openib_CPPFLAGS" + LDFLAGS="$LDFLAGS $opal_check_openib_LDFLAGS" + LIBS="$LIBS $opal_check_openib_LIBS" + + if test "$opal_check_openib_happy" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking number of arguments to ibv_create_cq" >&5 +$as_echo_n "checking number of arguments to ibv_create_cq... " >&6; } +if ${ompi_cv_func_ibv_create_cq_args+:} false; then : + $as_echo_n "(cached) " >&6 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring allocator_bucket_WRAPPER_EXTRA_CPPFLAGS ($allocator_bucket_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring allocator_bucket_WRAPPER_EXTRA_CPPFLAGS ($allocator_bucket_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +ibv_create_cq(NULL, 0, NULL, NULL, 0); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ompi_cv_func_ibv_create_cq_args=5 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +ibv_create_cq(NULL, 0, NULL); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ompi_cv_func_ibv_create_cq_args=3 +else + ompi_cv_func_ibv_create_cq_args="unknown" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_cv_func_ibv_create_cq_args" >&5 +$as_echo "$ompi_cv_func_ibv_create_cq_args" >&6; } + if test "$ompi_cv_func_ibv_create_cq_args" = "unknown"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Can not determine number of args to ibv_create_cq." >&5 +$as_echo "$as_me: WARNING: Can not determine number of args to ibv_create_cq." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Not building component." >&5 +$as_echo "$as_me: WARNING: Not building component." >&2;} + opal_check_openib_happy="no" +else - else +cat >>confdefs.h <<_ACEOF +#define OPAL_IBV_CREATE_CQ_ARGS $ompi_cv_func_ibv_create_cq_args +_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component allocator:bucket can compile" >&5 -$as_echo_n "checking if MCA component allocator:bucket can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi +fi - # If this component was requested as the default for this - # type, then abort. - if test "$with_allocator" = "bucket" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bucket\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"bucket\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # + # OpenIB dynamic SL + # + # Check whether --enable-openib-dynamic-sl was given. +if test "${enable_openib_dynamic_sl+set}" = set; then : + enableval=$enable_openib_dynamic_sl; +fi - if test ! -z "$DIRECT_allocator" ; then - if test "$DIRECT_allocator" = "bucket" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bucket\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"bucket\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - # add component to all component list - all_components="$all_components bucket" - fi + # Set these up so that we can do an AC_DEFINE below + # (unconditionally) + opal_check_openib_have_xrc=0 + opal_check_openib_have_xrc_domains=0 + opal_check_openib_have_opensm_devel=0 - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_opal_allocator_bucket_DSO=1 - else - BUILD_opal_allocator_bucket_DSO=0 - fi - if test "$BUILD_opal_allocator_bucket_DSO" = "1"; then - MCA_BUILD_opal_allocator_bucket_DSO_TRUE= - MCA_BUILD_opal_allocator_bucket_DSO_FALSE='#' + # If we have the openib stuff available, find out what we've got + if test "$opal_check_openib_happy" = "yes"; then : + ac_fn_c_check_decl "$LINENO" "IBV_EVENT_CLIENT_REREGISTER" "ac_cv_have_decl_IBV_EVENT_CLIENT_REREGISTER" "#include +" +if test "x$ac_cv_have_decl_IBV_EVENT_CLIENT_REREGISTER" = xyes; then : + ac_have_decl=1 else - MCA_BUILD_opal_allocator_bucket_DSO_TRUE='#' - MCA_BUILD_opal_allocator_bucket_DSO_FALSE= + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_EVENT_CLIENT_REREGISTER $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IBV_ACCESS_SO" "ac_cv_have_decl_IBV_ACCESS_SO" "#include +" +if test "x$ac_cv_have_decl_IBV_ACCESS_SO" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - ac_config_files="$ac_config_files opal/mca/allocator/bucket/Makefile" +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_ACCESS_SO $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IBV_ATOMIC_HCA" "ac_cv_have_decl_IBV_ATOMIC_HCA" "#include +" +if test "x$ac_cv_have_decl_IBV_ATOMIC_HCA" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_ATOMIC_HCA $ac_have_decl +_ACEOF - unset compile_mode + for ac_func in ibv_get_device_list ibv_resize_cq +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF +fi +done - # configure components that use built-in configuration scripts + # struct ibv_device.transport_type was added in OFED v1.2 + ac_fn_c_check_member "$LINENO" "struct ibv_device" "transport_type" "ac_cv_member_struct_ibv_device_transport_type" "#include +" +if test "x$ac_cv_member_struct_ibv_device_transport_type" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IBV_DEVICE_TRANSPORT_TYPE 1 +_ACEOF - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 +fi - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + # We have to check functions both exits *and* are declared + # since some distro ship broken ibverbs devel headers + # IBV_DEVICE_XRC is common to all OFED versions + # ibv_create_xrc_rcv_qp was added in OFED 1.3 + # ibv_cmd_open_xrcd (aka XRC Domains) was added in OFED 3.12 + if test "$enable_connectx_xrc" = "yes"; then + ac_fn_c_check_decl "$LINENO" "IBV_DEVICE_XRC" "ac_cv_have_decl_IBV_DEVICE_XRC" "#include +" +if test "x$ac_cv_have_decl_IBV_DEVICE_XRC" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_DEVICE_XRC $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + opal_check_openib_have_xrc=1 + opal_check_openib_have_xrc_domains=1 +fi - if test "1" != "0"; then : + fi + if test "$enable_connectx_xrc" = "yes" \ + && test $opal_check_openib_have_xrc -eq 1; then + ac_fn_c_check_decl "$LINENO" "ibv_create_xrc_rcv_qp" "ac_cv_have_decl_ibv_create_xrc_rcv_qp" "#include +" +if test "x$ac_cv_have_decl_ibv_create_xrc_rcv_qp" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - for component_path in $srcdir/opal/mca/allocator/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component allocator:$component (need to configure)" +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_CREATE_XRC_RCV_QP $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + for ac_func in ibv_create_xrc_rcv_qp +do : + ac_fn_c_check_func "$LINENO" "ibv_create_xrc_rcv_qp" "ac_cv_func_ibv_create_xrc_rcv_qp" +if test "x$ac_cv_func_ibv_create_xrc_rcv_qp" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_IBV_CREATE_XRC_RCV_QP 1 +_ACEOF - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" +else + opal_check_openib_have_xrc=0 +fi +done +else + opal_check_openib_have_xrc=0 +fi + fi + if test "$enable_connectx_xrc" = "yes" \ + && test $opal_check_openib_have_xrc_domains -eq 1; then + ac_fn_c_check_decl "$LINENO" "ibv_cmd_open_xrcd" "ac_cv_have_decl_ibv_cmd_open_xrcd" "#include +" +if test "x$ac_cv_have_decl_ibv_cmd_open_xrcd" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - component_path="$srcdir/opal/mca/allocator/$component" - want_component=0 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_CMD_OPEN_XRCD $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + ac_fn_c_check_decl "$LINENO" "IBV_SRQT_XRC" "ac_cv_have_decl_IBV_SRQT_XRC" "#include +" +if test "x$ac_cv_have_decl_IBV_SRQT_XRC" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_allocator" ; then - if test "$DIRECT_allocator" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_SRQT_XRC $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + for ac_func in ibv_cmd_open_xrcd +do : + ac_fn_c_check_func "$LINENO" "ibv_cmd_open_xrcd" "ac_cv_func_ibv_cmd_open_xrcd" +if test "x$ac_cv_func_ibv_cmd_open_xrcd" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_IBV_CMD_OPEN_XRCD 1 +_ACEOF - # if we were explicitly disabled, don't build :) - if test "$DISABLE_allocator" = "1"; then : - want_component=0 +else + opal_check_openib_have_xrc_domains=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_allocator_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi +done - if test "$want_component" = "1"; then : - should_build=1 else - should_build=0 + opal_check_openib_have_xrc_domains=0 fi +else + opal_check_openib_have_xrc_domains=0 +fi - SHARED_FRAMEWORK="$DSO_allocator" - str="SHARED_COMPONENT=\$DSO_allocator_$component" - eval $str - - STATIC_FRAMEWORK="$STATIC_allocator" - str="STATIC_COMPONENT=\$STATIC_allocator_$component" - eval $str + # XRC and XRC Domains should be considered as exclusive + if test "$opal_check_openib_have_xrc" -eq 1 && \ + test "$opal_check_openib_have_xrc_domains" -eq 1; then + opal_check_openib_have_xrc=0 + fi + fi - shared_mode_override=static + if test "no" != "$enable_openib_dynamic_sl"; then + # We need ib_types.h file, which is installed with opensm-devel + # package. However, ib_types.h has a bad include directive, + # which will cause AC_CHECK_HEADER to fail. + # So instead, we will look for another file that is also + # installed as part of opensm-devel package and included in + # ib_types.h, but it doesn't include any other IB-related files. + ac_fn_c_check_header_mongrel "$LINENO" "infiniband/complib/cl_types_osd.h" "ac_cv_header_infiniband_complib_cl_types_osd_h" "$ac_includes_default" +if test "x$ac_cv_header_infiniband_complib_cl_types_osd_h" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cl_map_init in -losmcomp" >&5 +$as_echo_n "checking for cl_map_init in -losmcomp... " >&6; } +if ${ac_cv_lib_osmcomp_cl_map_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-losmcomp $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char cl_map_init (); +int +main () +{ +return cl_map_init (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_osmcomp_cl_map_init=yes +else + ac_cv_lib_osmcomp_cl_map_init=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_osmcomp_cl_map_init" >&5 +$as_echo "$ac_cv_lib_osmcomp_cl_map_init" >&6; } +if test "x$ac_cv_lib_osmcomp_cl_map_init" = xyes; then : + opal_check_openib_have_opensm_devel=1 +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component allocator:$component compile mode" >&5 -$as_echo_n "checking for MCA component allocator:$component compile mode... " >&6; } - if test "$DIRECT_allocator" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # Abort if dynamic SL support was explicitly requested but opensm-devel + # package wasn't found. Otherwise, OMPI will be built w/o dynamic SL. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if can use dynamic SL support" >&5 +$as_echo_n "checking if can use dynamic SL support... " >&6; } + if test "$opal_check_openib_have_opensm_devel" = "1"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + if test "$enable_openib_dynamic_sl" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-openib-dynamic-sl was specified but the" >&5 +$as_echo "$as_me: WARNING: --enable-openib-dynamic-sl was specified but the" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: appropriate header/library files could not be found" >&5 +$as_echo "$as_me: WARNING: appropriate header/library files could not be found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Please install opensm-devel if you need dynamic SL support" >&5 +$as_echo "$as_me: WARNING: Please install opensm-devel if you need dynamic SL support" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +fi +fi + fi + + + # Check support for RDMAoE devices + common_verbs_usnic_have_rdmaoe=0 + ac_fn_c_check_decl "$LINENO" "IBV_LINK_LAYER_ETHERNET" "ac_cv_have_decl_IBV_LINK_LAYER_ETHERNET" "#include +" +if test "x$ac_cv_have_decl_IBV_LINK_LAYER_ETHERNET" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_LINK_LAYER_ETHERNET $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + common_verbs_usnic_have_rdmaoe=1 +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if RDMAoE support is enabled" >&5 +$as_echo_n "checking if RDMAoE support is enabled... " >&6; } + +cat >>confdefs.h <<_ACEOF +#define OPAL_HAVE_RDMAOE $common_verbs_usnic_have_rdmaoe +_ACEOF + + if test "1" = "$common_verbs_usnic_have_rdmaoe"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + + +fi + + # Check to see if works. It is known to + # create problems on some platforms with some compilers (e.g., + # RHEL4U3 with the PGI 32 bit compiler). Use undocumented (in AC + # 2.63) feature of AC_CHECK_HEADERS: if you explicitly pass in + # AC_INCLUDES_DEFAULT as the 4th arg to AC_CHECK_HEADERS, the test + # will fail if the header is present but not compilable, *but it + # will not print the big scary warning*. See + # http://lists.gnu.org/archive/html/autoconf/2008-10/msg00143.html. + if test "$opal_check_openib_happy" = "yes"; then : + for ac_header in infiniband/driver.h +do : + ac_fn_c_check_header_compile "$LINENO" "infiniband/driver.h" "ac_cv_header_infiniband_driver_h" "$ac_includes_default +" +if test "x$ac_cv_header_infiniband_driver_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_INFINIBAND_DRIVER_H 1 +_ACEOF + +fi + +done + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ConnectX XRC support is enabled" >&5 +$as_echo_n "checking if ConnectX XRC support is enabled... " >&6; } + +cat >>confdefs.h <<_ACEOF +#define OPAL_HAVE_CONNECTX_XRC $opal_check_openib_have_xrc +_ACEOF + + if test "1" = "$opal_check_openib_have_xrc"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ConnectIB XRC support is enabled" >&5 +$as_echo_n "checking if ConnectIB XRC support is enabled... " >&6; } + +cat >>confdefs.h <<_ACEOF +#define OPAL_HAVE_CONNECTX_XRC_DOMAINS $opal_check_openib_have_xrc_domains +_ACEOF + + if test "1" = "$opal_check_openib_have_xrc_domains"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if dynamic SL is enabled" >&5 +$as_echo_n "checking if dynamic SL is enabled... " >&6; } + +cat >>confdefs.h <<_ACEOF +#define OPAL_ENABLE_DYNAMIC_SL $opal_check_openib_have_opensm_devel +_ACEOF + + if test "1" = "$opal_check_openib_have_opensm_devel"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + common_verbs_usnic_LIBS="-losmcomp $common_verbs_usnic_LIBS" + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + + if test -z "$opal_verbs_dir"; then : + openib_include_dir="/usr/include" +else + openib_include_dir="$opal_verbs_dir/include" +fi + opal_check_openib_CPPFLAGS="$opal_check_openib_CPPFLAGS -I$openib_include_dir/infiniband" + + CPPFLAGS="$ompi_check_openib_common_verbs_usnic_save_CPPFLAGS" + LDFLAGS="$ompi_check_openib_common_verbs_usnic_save_LDFLAGS" + LIBS="$ompi_check_openib_common_verbs_usnic_save_LIBS" + @@ -105706,7 +106015,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -105725,7 +106034,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -105733,129 +106042,43 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# opal/mca/allocator/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="opal/mca/allocator/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - - # - # Construct the --cache-file argument - # + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="OpenFabrics Verbs: $opal_check_openib_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # - # Go back to the topdir - # + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - cd $subdir_parent -fi -# -# Clean up -# # Unwind the index @@ -105878,80 +106101,123 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi + fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/opal/mca/allocator/all_components/post_configure.sh" - if test -f $infile; then + common_verbs_usnic_have_xrc=$opal_check_openib_have_xrc + common_verbs_usnic_have_xrc_domains=$opal_check_openib_have_xrc_domains + common_verbs_usnic_have_opensm_devel=$opal_check_openib_have_opensm_devel - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi + if test "$opal_check_openib_happy" = "yes"; then : + common_verbs_usnic_CPPFLAGS="$common_verbs_usnic_CPPFLAGS $opal_check_openib_CPPFLAGS" + common_verbs_usnic_LDFLAGS="$common_verbs_usnic_LDFLAGS $opal_check_openib_LDFLAGS" + common_verbs_usnic_LIBS="$common_verbs_usnic_LIBS $opal_check_openib_LIBS" + common_verbs_usnic_happy=1 +else + if test "$opal_want_verbs" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Verbs support requested (via --with-verbs) but not found." >&5 +$as_echo "$as_me: WARNING: Verbs support requested (via --with-verbs) but not found." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: If you are using libibverbs v1.0 (i.e., OFED v1.0 or v1.1), you *MUST* have both the libsysfs headers and libraries installed. Later versions of libibverbs do not require libsysfs." >&5 +$as_echo "$as_me: WARNING: If you are using libibverbs v1.0 (i.e., OFED v1.0 or v1.1), you *MUST* have both the libsysfs headers and libraries installed. Later versions of libibverbs do not require libsysfs." >&2;} + as_fn_error $? "Aborting." "$LINENO" 5 +fi + common_verbs_usnic_happy=0 +fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - allocator_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - allocator_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi +fi + + if test $common_verbs_usnic_happy -eq 1; then : + ac_fn_c_check_member "$LINENO" "struct ibv_device" "ops" "ac_cv_member_struct_ibv_device_ops" "#include +" +if test "x$ac_cv_member_struct_ibv_device_ops" = xyes; then : + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --with-verbs-usnic specified, but the verbs.h does not" >&5 +$as_echo "$as_me: WARNING: --with-verbs-usnic specified, but the verbs.h does not" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: have the required member fields. It is highly likely" >&5 +$as_echo "$as_me: WARNING: have the required member fields. It is highly likely" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: that you do not need --with-verbs-usnic. Try configuring" >&5 +$as_echo "$as_me: WARNING: that you do not need --with-verbs-usnic. Try configuring" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: and building Open MPI without it; if you get warnings" >&5 +$as_echo "$as_me: WARNING: and building Open MPI without it; if you get warnings" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: about usnic IB devices anyway, please let us know." >&5 +$as_echo "$as_me: WARNING: about usnic IB devices anyway, please let us know." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Since you asked for --with-verbs-usnic and we cannot" >&5 +$as_echo "$as_me: WARNING: Since you asked for --with-verbs-usnic and we cannot" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: deliver it, configure will now abort." >&5 +$as_echo "$as_me: WARNING: deliver it, configure will now abort." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + +fi + + +fi + + +cat >>confdefs.h <<_ACEOF +#define OPAL_COMMON_VERBS_USNIC_HAPPY $common_verbs_usnic_happy +_ACEOF + + + if test $common_verbs_usnic_happy -eq 1; then : + should_build=$should_build +else + should_build=0 +fi + + # substitute in the things needed to build openib + + + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/allocator/$component/post_configure.sh" + infile="$srcdir/opal/mca/common/verbs_usnic/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + all_components="$all_components verbs_usnic" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" + dso_components="$dso_components verbs_usnic" else - if test "allocator" = "common"; then + if test "common" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/allocator/$component/lib${OPAL_LIB_PREFIX}mca_allocator_$component.la $static_ltlibs" + static_ltlibs="mca/common/verbs_usnic/lib${OPAL_LIB_PREFIX}mca_common_verbs_usnic.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/allocator/$component/libmca_allocator_$component.la $static_ltlibs" + static_ltlibs="mca/common/verbs_usnic/libmca_common_verbs_usnic.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_allocator_$component_component;" >> $outfile.extern - echo " &mca_allocator_$component_component, " >> $outfile.struct - static_components="$static_components $component" + echo "extern const mca_base_component_t mca_common_verbs_usnic_component;" >> $outfile.extern + echo " &mca_common_verbs_usnic_component, " >> $outfile.struct + static_components="$static_components verbs_usnic" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component allocator:$component can compile" >&5 -$as_echo_n "checking if MCA component allocator:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:verbs_usnic can compile" >&5 +$as_echo_n "checking if MCA component common:verbs_usnic can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_allocator" = "$component" ; then + if test "$DIRECT_common" = "verbs_usnic" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_allocator_DIRECT_CALL_HEADER=$line" + str="MCA_opal_common_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** allocator component $component was supposed to be direct-called, but +as_fn_error $? "*** common component verbs_usnic was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -105959,8 +106225,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_allocator" = "$component" ; then -as_fn_error $? "*** allocator component $component was supposed to be direct-called, but + if test "$DIRECT_common" = "verbs_usnic" ; then +as_fn_error $? "*** common component verbs_usnic was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -105975,8 +106241,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$allocator_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + if test "$common_verbs_usnic_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -106016,7 +106281,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $common_verbs_usnic_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -106056,8 +106321,8 @@ unset $opal_var done -str="line=\$allocator_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + +else @@ -106097,21 +106362,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $common_verbs_usnic_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -106138,276 +106403,8 @@ done - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component allocator:$component can compile" >&5 -$as_echo_n "checking if MCA component allocator:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_allocator" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_allocator" ; then - if test "$DIRECT_allocator" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - fi - fi - done - -fi - - MCA_opal_allocator_ALL_COMPONENTS="$all_components" - MCA_opal_allocator_STATIC_COMPONENTS="$static_components" - MCA_opal_allocator_DSO_COMPONENTS="$dso_components" - MCA_opal_allocator_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_opal_allocator_ALL_SUBDIRS= - for item in $all_components ; do - MCA_opal_allocator_ALL_SUBDIRS="$MCA_opal_allocator_ALL_SUBDIRS mca/allocator/$item" - done - - - - MCA_opal_allocator_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_opal_allocator_STATIC_SUBDIRS="$MCA_opal_allocator_STATIC_SUBDIRS mca/allocator/$item" - done - - - - MCA_opal_allocator_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_opal_allocator_DSO_SUBDIRS="$MCA_opal_allocator_DSO_SUBDIRS mca/allocator/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "allocator" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS backtrace" - MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/backtrace" - MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_backtrace_ALL_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_backtrace_DSO_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_backtrace_STATIC_SUBDIRS)" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/backtrace/libmca_backtrace.la" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_backtrace_STATIC_LTLIBS)" - - opal_show_subsubtitle "Configuring MCA framework backtrace" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=opal/mca/backtrace/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files opal/mca/backtrace/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework backtrace" >&5 -$as_echo_n "checking for no configure components in framework backtrace... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework backtrace" >&5 -$as_echo_n "checking for m4 configure components in framework backtrace... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: execinfo, none, printstack" >&5 -$as_echo "execinfo, none, printstack" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - - # configure components that use built-in configuration scripts - - - - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - opal_show_subsubsubtitle "MCA component backtrace:execinfo (m4 configuration macro, priority 30)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/opal/mca/backtrace/execinfo" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_backtrace" ; then - if test "$DIRECT_backtrace" = "execinfo" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_backtrace" = "1"; then : - want_component=0 -fi - if test "$DISABLE_backtrace_execinfo" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component backtrace:execinfo compile mode" >&5 -$as_echo_n "checking for MCA component backtrace:execinfo compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - - - # try to configure the component - - ac_config_files="$ac_config_files opal/mca/backtrace/execinfo/Makefile" - - - for ac_header in execinfo.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "execinfo.h" "ac_cv_header_execinfo_h" "$ac_includes_default" -if test "x$ac_cv_header_execinfo_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_EXECINFO_H 1 -_ACEOF - fi - -done - - # FreeBSD has backtrace in -lexecinfo, usually in libc - - + if test "$common_verbs_usnic_WRAPPER_EXTRA_LIBS" = ""; then : @@ -106420,7 +106417,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in LIBS_save add; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -106439,71 +106436,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"LIBS_save add\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - LIBS_save=$LIBS - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing backtrace" >&5 -$as_echo_n "checking for library containing backtrace... " >&6; } -if ${ac_cv_search_backtrace+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char backtrace (); -int -main () -{ -return backtrace (); - ; - return 0; -} -_ACEOF -for ac_lib in '' execinfo; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_backtrace=$ac_res + for arg in $common_verbs_usnic_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_backtrace+:} false; then : - break + done fi -done -if ${ac_cv_search_backtrace+:} false; then : - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - ac_cv_search_backtrace=no + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_backtrace" >&5 -$as_echo "$ac_cv_search_backtrace" >&6; } -ac_res=$ac_cv_search_backtrace -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - # Found it! See if anything was added to LIBS - add=`printf '%s\n' "$LIBS" | sed -e "s/$LIBS_save$//"` - if test -n "$add"; then : + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -106543,21 +106525,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $add; do + for arg in $common_verbs_usnic_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${backtrace_execinfo_LIBS}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$backtrace_execinfo_LIBS"; then : - backtrace_execinfo_LIBS=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - backtrace_execinfo_LIBS="$backtrace_execinfo_LIBS $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -106585,119 +106567,16 @@ fi - backtrace_execinfo_have_backtrace=1 - backtrace_execinfo_happy="yes" -else - backtrace_execinfo_have_backtrace=0 - backtrace_execinfo_happy="no" -fi - - - -cat >>confdefs.h <<_ACEOF -#define OPAL_HAVE_BACKTRACE_EXECINFO $backtrace_execinfo_have_backtrace -_ACEOF - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - - if test "$backtrace_execinfo_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/backtrace/execinfo/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components execinfo" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components execinfo" - else - if test "backtrace" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/backtrace/execinfo/lib${OPAL_LIB_PREFIX}mca_backtrace_execinfo.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/backtrace/execinfo/libmca_backtrace_execinfo.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_backtrace_execinfo_component;" >> $outfile.extern - echo " &mca_backtrace_execinfo_component, " >> $outfile.struct - static_components="$static_components execinfo" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component backtrace:execinfo can compile" >&5 -$as_echo_n "checking if MCA component backtrace:execinfo can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_backtrace" = "execinfo" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_backtrace_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** backtrace component execinfo was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_backtrace" = "execinfo" ; then -as_fn_error $? "*** backtrace component execinfo was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$backtrace_execinfo_WRAPPER_EXTRA_LDFLAGS" = ""; then : + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$common_verbs_usnic_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -106737,21 +106616,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $backtrace_execinfo_LDFLAGS; do + for arg in $common_verbs_usnic_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_cppflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi fi done @@ -106778,89 +106657,185 @@ done +fi else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring common_verbs_usnic_WRAPPER_EXTRA_CPPFLAGS ($common_verbs_usnic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring common_verbs_usnic_WRAPPER_EXTRA_CPPFLAGS ($common_verbs_usnic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:verbs_usnic can compile" >&5 +$as_echo_n "checking if MCA component common:verbs_usnic can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # If this component was requested as the default for this + # type, then abort. + if test "$with_common" = "verbs_usnic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"verbs_usnic\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"verbs_usnic\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "verbs_usnic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"verbs_usnic\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"verbs_usnic\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # add component to all component list + all_components="$all_components verbs_usnic" +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - for arg in $backtrace_execinfo_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_common_verbs_usnic_DSO=1 +else + BUILD_opal_common_verbs_usnic_DSO=0 fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test "$BUILD_opal_common_verbs_usnic_DSO" = "1"; then + MCA_BUILD_opal_common_verbs_usnic_DSO_TRUE= + MCA_BUILD_opal_common_verbs_usnic_DSO_FALSE='#' else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + MCA_BUILD_opal_common_verbs_usnic_DSO_TRUE='#' + MCA_BUILD_opal_common_verbs_usnic_DSO_FALSE= fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 fi - done + unset compile_mode - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/opal/mca/common/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component common:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/opal/mca/common/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_common" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_common_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 fi - if test "$backtrace_execinfo_WRAPPER_EXTRA_LIBS" = ""; then : + + + SHARED_FRAMEWORK="$DSO_common" + str="SHARED_COMPONENT=\$DSO_common_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_common" + str="STATIC_COMPONENT=\$STATIC_common_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:$component compile mode" >&5 +$as_echo_n "checking for MCA component common:$component compile mode... " >&6; } + if test "$DIRECT_common" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then @@ -106873,7 +106848,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -106892,7 +106867,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $opal_str unset opal_str @@ -106900,24 +106875,129 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $backtrace_execinfo_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi +# +# Invoke configure in a specific subdirectory. +# +# opal/mca/common/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="opal/mca/common/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent fi - done + +# +# Clean up +# # Unwind the index @@ -106940,8 +107020,105 @@ unset $opal_var done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi -else + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/opal/mca/common/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + common_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + common_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/common/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "common" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/common/$component/lib${OPAL_LIB_PREFIX}mca_common_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/common/$component/libmca_common_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_common_$component_component;" >> $outfile.extern + echo " &mca_common_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:$component can compile" >&5 +$as_echo_n "checking if MCA component common:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_common" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_common_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** common component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_common" = "$component" ; then +as_fn_error $? "*** common component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$common_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -106981,21 +107158,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $backtrace_execinfo_WRAPPER_EXTRA_LIBS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -107021,18 +107198,8 @@ unset $opal_var done - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$backtrace_execinfo_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=1 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : +str="line=\$common_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -107072,21 +107239,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $backtrace_execinfo_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -107113,82 +107280,179 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring backtrace_execinfo_WRAPPER_EXTRA_CPPFLAGS ($backtrace_execinfo_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring backtrace_execinfo_WRAPPER_EXTRA_CPPFLAGS ($backtrace_execinfo_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + fi -else + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component backtrace:execinfo can compile" >&5 -$as_echo_n "checking if MCA component backtrace:execinfo can compile... " >&6; } + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:$component can compile" >&5 +$as_echo_n "checking if MCA component common:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_backtrace" = "execinfo" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"execinfo\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"execinfo\" failed to configure properly" >&2;} + if test "$with_common" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_backtrace" ; then - if test "$DIRECT_backtrace" = "execinfo" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"execinfo\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"execinfo\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components execinfo" + fi + fi + done + fi + MCA_opal_common_ALL_COMPONENTS="$all_components" + MCA_opal_common_STATIC_COMPONENTS="$static_components" + MCA_opal_common_DSO_COMPONENTS="$dso_components" + MCA_opal_common_STATIC_LTLIBS="$static_ltlibs" - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_backtrace_execinfo_DSO=1 -else - BUILD_opal_backtrace_execinfo_DSO=0 -fi - if test "$BUILD_opal_backtrace_execinfo_DSO" = "1"; then - MCA_BUILD_opal_backtrace_execinfo_DSO_TRUE= - MCA_BUILD_opal_backtrace_execinfo_DSO_FALSE='#' -else - MCA_BUILD_opal_backtrace_execinfo_DSO_TRUE='#' - MCA_BUILD_opal_backtrace_execinfo_DSO_FALSE= -fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - unset compile_mode - if test $components_last_result -eq 1; then : - components_looking_for_succeed=0 -fi + + MCA_opal_common_ALL_SUBDIRS= + for item in $all_components ; do + MCA_opal_common_ALL_SUBDIRS="$MCA_opal_common_ALL_SUBDIRS mca/common/$item" + done - opal_show_subsubsubtitle "MCA component backtrace:printstack (m4 configuration macro, priority 30)" + MCA_opal_common_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_opal_common_STATIC_SUBDIRS="$MCA_opal_common_STATIC_SUBDIRS mca/common/$item" + done + - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + MCA_opal_common_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_opal_common_DSO_SUBDIRS="$MCA_opal_common_DSO_SUBDIRS mca/common/$item" + done - component_path="$srcdir/opal/mca/backtrace/printstack" + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "common" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS allocator" + MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/allocator" + MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_allocator_ALL_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_allocator_DSO_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_allocator_STATIC_SUBDIRS)" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/allocator/libmca_allocator.la" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_allocator_STATIC_LTLIBS)" + + opal_show_subsubtitle "Configuring MCA framework allocator" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=opal/mca/allocator/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files opal/mca/allocator/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework allocator" >&5 +$as_echo_n "checking for no configure components in framework allocator... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: basic, bucket" >&5 +$as_echo "basic, bucket" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework allocator" >&5 +$as_echo_n "checking for m4 configure components in framework allocator... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + opal_show_subsubsubtitle "MCA component allocator:basic (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/opal/mca/allocator/basic" want_component=0 # build if: @@ -107220,8 +107484,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_backtrace" ; then - if test "$DIRECT_backtrace" = "printstack" ; then + if test ! -z "$DIRECT_allocator" ; then + if test "$DIRECT_allocator" = "basic" ; then want_component=1 else want_component=0 @@ -107230,114 +107494,99 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_backtrace" = "1"; then : + if test "$DISABLE_allocator" = "1"; then : want_component=0 fi - if test "$DISABLE_backtrace_printstack" = "1"; then : + if test "$DISABLE_allocator_basic" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component backtrace:printstack compile mode" >&5 -$as_echo_n "checking for MCA component backtrace:printstack compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - - - # try to configure the component - - ac_config_files="$ac_config_files opal/mca/backtrace/printstack/Makefile" - - - for ac_header in ucontext.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ucontext.h" "ac_cv_header_ucontext_h" "$ac_includes_default" -if test "x$ac_cv_header_ucontext_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UCONTEXT_H 1 -_ACEOF -fi + SHARED_FRAMEWORK="$DSO_allocator" + SHARED_COMPONENT="$DSO_allocator_basic" -done + STATIC_FRAMEWORK="$STATIC_allocator" + STATIC_COMPONENT="$STATIC_allocator_basic" - # FreeBSD has backtrace in -lexecinfo, usually in libc - for ac_func in printstack -do : - ac_fn_c_check_func "$LINENO" "printstack" "ac_cv_func_printstack" -if test "x$ac_cv_func_printstack" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PRINTSTACK 1 -_ACEOF - backtrace_printstack_happy="yes" -else - backtrace_printstack_happy="no" -fi -done + shared_mode_override=static + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - if test "$backtrace_printstack_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component allocator:basic compile mode" >&5 +$as_echo_n "checking for MCA component allocator:basic compile mode... " >&6; } + if test "$DIRECT_allocator" = "basic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/backtrace/printstack/post_configure.sh" + infile="$srcdir/opal/mca/allocator/basic/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components printstack" + all_components="$all_components basic" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components printstack" + dso_components="$dso_components basic" else - if test "backtrace" = "common"; then + if test "allocator" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/backtrace/printstack/lib${OPAL_LIB_PREFIX}mca_backtrace_printstack.la $static_ltlibs" + static_ltlibs="mca/allocator/basic/lib${OPAL_LIB_PREFIX}mca_allocator_basic.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/backtrace/printstack/libmca_backtrace_printstack.la $static_ltlibs" + static_ltlibs="mca/allocator/basic/libmca_allocator_basic.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_backtrace_printstack_component;" >> $outfile.extern - echo " &mca_backtrace_printstack_component, " >> $outfile.struct - static_components="$static_components printstack" + echo "extern const mca_base_component_t mca_allocator_basic_component;" >> $outfile.extern + echo " &mca_allocator_basic_component, " >> $outfile.struct + static_components="$static_components basic" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component backtrace:printstack can compile" >&5 -$as_echo_n "checking if MCA component backtrace:printstack can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component allocator:basic can compile" >&5 +$as_echo_n "checking if MCA component allocator:basic can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_backtrace" = "printstack" ; then + if test "$DIRECT_allocator" = "basic" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_backtrace_DIRECT_CALL_HEADER=$line" + str="MCA_opal_allocator_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** backtrace component printstack was supposed to be direct-called, but +as_fn_error $? "*** allocator component basic was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -107345,8 +107594,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_backtrace" = "printstack" ; then -as_fn_error $? "*** backtrace component printstack was supposed to be direct-called, but + if test "$DIRECT_allocator" = "basic" ; then +as_fn_error $? "*** allocator component basic was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -107361,7 +107610,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$backtrace_printstack_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$allocator_basic_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -107401,7 +107650,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $backtrace_printstack_LDFLAGS; do + for arg in $allocator_basic_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -107482,7 +107731,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $backtrace_printstack_WRAPPER_EXTRA_LDFLAGS; do + for arg in $allocator_basic_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -107524,7 +107773,7 @@ fi - if test "$backtrace_printstack_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$allocator_basic_WRAPPER_EXTRA_LIBS" = ""; then : @@ -107564,7 +107813,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $backtrace_printstack_LIBS; do + for arg in $allocator_basic_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -107645,7 +107894,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $backtrace_printstack_WRAPPER_EXTRA_LIBS; do + for arg in $allocator_basic_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -107693,8 +107942,8 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$backtrace_printstack_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=1 + if test "$allocator_basic_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -107736,7 +107985,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $backtrace_printstack_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $allocator_basic_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -107779,80 +108028,69 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring backtrace_printstack_WRAPPER_EXTRA_CPPFLAGS ($backtrace_printstack_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring backtrace_printstack_WRAPPER_EXTRA_CPPFLAGS ($backtrace_printstack_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring allocator_basic_WRAPPER_EXTRA_CPPFLAGS ($allocator_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring allocator_basic_WRAPPER_EXTRA_CPPFLAGS ($allocator_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component backtrace:printstack can compile" >&5 -$as_echo_n "checking if MCA component backtrace:printstack can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component allocator:basic can compile" >&5 +$as_echo_n "checking if MCA component allocator:basic can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_backtrace" = "printstack" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"printstack\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"printstack\" failed to configure properly" >&2;} + if test "$with_allocator" = "basic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_backtrace" ; then - if test "$DIRECT_backtrace" = "printstack" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"printstack\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"printstack\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_allocator" ; then + if test "$DIRECT_allocator" = "basic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components printstack" -fi - - + # add component to all component list + all_components="$all_components basic" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_backtrace_printstack_DSO=1 -else - BUILD_opal_backtrace_printstack_DSO=0 -fi - if test "$BUILD_opal_backtrace_printstack_DSO" = "1"; then - MCA_BUILD_opal_backtrace_printstack_DSO_TRUE= - MCA_BUILD_opal_backtrace_printstack_DSO_FALSE='#' -else - MCA_BUILD_opal_backtrace_printstack_DSO_TRUE='#' - MCA_BUILD_opal_backtrace_printstack_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 + if test "$compile_mode" = "dso" ; then + BUILD_opal_allocator_basic_DSO=1 + else + BUILD_opal_allocator_basic_DSO=0 + fi + if test "$BUILD_opal_allocator_basic_DSO" = "1"; then + MCA_BUILD_opal_allocator_basic_DSO_TRUE= + MCA_BUILD_opal_allocator_basic_DSO_FALSE='#' else - components_last_result=0 + MCA_BUILD_opal_allocator_basic_DSO_TRUE='#' + MCA_BUILD_opal_allocator_basic_DSO_FALSE= fi - unset compile_mode - if test $components_last_result -eq 1; then : - components_looking_for_succeed=0 -fi + ac_config_files="$ac_config_files opal/mca/allocator/basic/Makefile" + unset compile_mode - opal_show_subsubsubtitle "MCA component backtrace:none (m4 configuration macro, priority 0)" + opal_show_subsubsubtitle "MCA component allocator:bucket (no configuration)" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/opal/mca/backtrace/none" + component_path="$srcdir/opal/mca/allocator/bucket" want_component=0 # build if: @@ -107884,8 +108122,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_backtrace" ; then - if test "$DIRECT_backtrace" = "none" ; then + if test ! -z "$DIRECT_allocator" ; then + if test "$DIRECT_allocator" = "bucket" ; then want_component=1 else want_component=0 @@ -107894,81 +108132,99 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_backtrace" = "1"; then : + if test "$DISABLE_allocator" = "1"; then : want_component=0 fi - if test "$DISABLE_backtrace_none" = "1"; then : + if test "$DISABLE_allocator_bucket" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component backtrace:none compile mode" >&5 -$as_echo_n "checking for MCA component backtrace:none compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + SHARED_FRAMEWORK="$DSO_allocator" + SHARED_COMPONENT="$DSO_allocator_bucket" + STATIC_FRAMEWORK="$STATIC_allocator" + STATIC_COMPONENT="$STATIC_allocator_bucket" - # try to configure the component + shared_mode_override=static - ac_config_files="$ac_config_files opal/mca/backtrace/none/Makefile" + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component allocator:bucket compile mode" >&5 +$as_echo_n "checking for MCA component allocator:bucket compile mode... " >&6; } + if test "$DIRECT_allocator" = "bucket" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/backtrace/none/post_configure.sh" + infile="$srcdir/opal/mca/allocator/bucket/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components none" + all_components="$all_components bucket" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components none" + dso_components="$dso_components bucket" else - if test "backtrace" = "common"; then + if test "allocator" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/backtrace/none/lib${OPAL_LIB_PREFIX}mca_backtrace_none.la $static_ltlibs" + static_ltlibs="mca/allocator/bucket/lib${OPAL_LIB_PREFIX}mca_allocator_bucket.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/backtrace/none/libmca_backtrace_none.la $static_ltlibs" + static_ltlibs="mca/allocator/bucket/libmca_allocator_bucket.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_backtrace_none_component;" >> $outfile.extern - echo " &mca_backtrace_none_component, " >> $outfile.struct - static_components="$static_components none" + echo "extern const mca_base_component_t mca_allocator_bucket_component;" >> $outfile.extern + echo " &mca_allocator_bucket_component, " >> $outfile.struct + static_components="$static_components bucket" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component backtrace:none can compile" >&5 -$as_echo_n "checking if MCA component backtrace:none can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component allocator:bucket can compile" >&5 +$as_echo_n "checking if MCA component allocator:bucket can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_backtrace" = "none" ; then + if test "$DIRECT_allocator" = "bucket" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_backtrace_DIRECT_CALL_HEADER=$line" + str="MCA_opal_allocator_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** backtrace component none was supposed to be direct-called, but +as_fn_error $? "*** allocator component bucket was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -107976,8 +108232,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_backtrace" = "none" ; then -as_fn_error $? "*** backtrace component none was supposed to be direct-called, but + if test "$DIRECT_allocator" = "bucket" ; then +as_fn_error $? "*** allocator component bucket was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -107992,7 +108248,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$backtrace_none_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$allocator_bucket_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -108032,7 +108288,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $backtrace_none_LDFLAGS; do + for arg in $allocator_bucket_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -108113,7 +108369,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $backtrace_none_WRAPPER_EXTRA_LDFLAGS; do + for arg in $allocator_bucket_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -108155,7 +108411,7 @@ fi - if test "$backtrace_none_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$allocator_bucket_WRAPPER_EXTRA_LIBS" = ""; then : @@ -108195,7 +108451,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $backtrace_none_LIBS; do + for arg in $allocator_bucket_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -108276,7 +108532,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $backtrace_none_WRAPPER_EXTRA_LIBS; do + for arg in $allocator_bucket_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -108324,8 +108580,8 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$backtrace_none_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=1 + if test "$allocator_bucket_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -108367,7 +108623,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $backtrace_none_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $allocator_bucket_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -108410,106 +108666,696 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring backtrace_none_WRAPPER_EXTRA_CPPFLAGS ($backtrace_none_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring backtrace_none_WRAPPER_EXTRA_CPPFLAGS ($backtrace_none_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring allocator_bucket_WRAPPER_EXTRA_CPPFLAGS ($allocator_bucket_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring allocator_bucket_WRAPPER_EXTRA_CPPFLAGS ($allocator_bucket_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component backtrace:none can compile" >&5 -$as_echo_n "checking if MCA component backtrace:none can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component allocator:bucket can compile" >&5 +$as_echo_n "checking if MCA component allocator:bucket can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_backtrace" = "none" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"none\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"none\" failed to configure properly" >&2;} + if test "$with_allocator" = "bucket" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bucket\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"bucket\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_backtrace" ; then - if test "$DIRECT_backtrace" = "none" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"none\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"none\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_allocator" ; then + if test "$DIRECT_allocator" = "bucket" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bucket\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"bucket\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components none" -fi - - + # add component to all component list + all_components="$all_components bucket" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_backtrace_none_DSO=1 + if test "$compile_mode" = "dso" ; then + BUILD_opal_allocator_bucket_DSO=1 + else + BUILD_opal_allocator_bucket_DSO=0 + fi + if test "$BUILD_opal_allocator_bucket_DSO" = "1"; then + MCA_BUILD_opal_allocator_bucket_DSO_TRUE= + MCA_BUILD_opal_allocator_bucket_DSO_FALSE='#' else - BUILD_opal_backtrace_none_DSO=0 + MCA_BUILD_opal_allocator_bucket_DSO_TRUE='#' + MCA_BUILD_opal_allocator_bucket_DSO_FALSE= fi - if test "$BUILD_opal_backtrace_none_DSO" = "1"; then - MCA_BUILD_opal_backtrace_none_DSO_TRUE= - MCA_BUILD_opal_backtrace_none_DSO_FALSE='#' + + + ac_config_files="$ac_config_files opal/mca/allocator/bucket/Makefile" + + + unset compile_mode + + + # configure components that use built-in configuration scripts + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/opal/mca/allocator/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component allocator:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/opal/mca/allocator/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_allocator" ; then + if test "$DIRECT_allocator" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_allocator" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_allocator_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 else - MCA_BUILD_opal_backtrace_none_DSO_TRUE='#' - MCA_BUILD_opal_backtrace_none_DSO_FALSE= + should_build=0 fi - if test "$should_build" = "1"; then : - components_last_result=1 + SHARED_FRAMEWORK="$DSO_allocator" + str="SHARED_COMPONENT=\$DSO_allocator_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_allocator" + str="STATIC_COMPONENT=\$STATIC_allocator_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component allocator:$component compile mode" >&5 +$as_echo_n "checking for MCA component allocator:$component compile mode... " >&6; } + if test "$DIRECT_allocator" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + +# +# Invoke configure in a specific subdirectory. +# +# opal/mca/allocator/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="opal/mca/allocator/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/opal/mca/allocator/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + allocator_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + allocator_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/allocator/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "allocator" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/allocator/$component/lib${OPAL_LIB_PREFIX}mca_allocator_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/allocator/$component/libmca_allocator_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_allocator_$component_component;" >> $outfile.extern + echo " &mca_allocator_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component allocator:$component can compile" >&5 +$as_echo_n "checking if MCA component allocator:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_allocator" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_allocator_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** allocator component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_allocator" = "$component" ; then +as_fn_error $? "*** allocator component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$allocator_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - components_last_result=0 + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi fi + done - unset compile_mode - if test $components_last_result -eq 1; then : - components_looking_for_succeed=0 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + +str="line=\$allocator_$component_WRAPPER_EXTRA_LIBS" + eval "$str" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - MCA_opal_backtrace_ALL_COMPONENTS="$all_components" - MCA_opal_backtrace_STATIC_COMPONENTS="$static_components" - MCA_opal_backtrace_DSO_COMPONENTS="$dso_components" - MCA_opal_backtrace_STATIC_LTLIBS="$static_ltlibs" + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component allocator:$component can compile" >&5 +$as_echo_n "checking if MCA component allocator:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # If this component was requested as the default for this + # type, then abort. + if test "$with_allocator" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + if test ! -z "$DIRECT_allocator" ; then + if test "$DIRECT_allocator" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - MCA_opal_backtrace_ALL_SUBDIRS= + fi + fi + done + +fi + + MCA_opal_allocator_ALL_COMPONENTS="$all_components" + MCA_opal_allocator_STATIC_COMPONENTS="$static_components" + MCA_opal_allocator_DSO_COMPONENTS="$dso_components" + MCA_opal_allocator_STATIC_LTLIBS="$static_ltlibs" + + + + + + + + MCA_opal_allocator_ALL_SUBDIRS= for item in $all_components ; do - MCA_opal_backtrace_ALL_SUBDIRS="$MCA_opal_backtrace_ALL_SUBDIRS mca/backtrace/$item" + MCA_opal_allocator_ALL_SUBDIRS="$MCA_opal_allocator_ALL_SUBDIRS mca/allocator/$item" done - MCA_opal_backtrace_STATIC_SUBDIRS= + MCA_opal_allocator_STATIC_SUBDIRS= for item in $static_components ; do - MCA_opal_backtrace_STATIC_SUBDIRS="$MCA_opal_backtrace_STATIC_SUBDIRS mca/backtrace/$item" + MCA_opal_allocator_STATIC_SUBDIRS="$MCA_opal_allocator_STATIC_SUBDIRS mca/allocator/$item" done - MCA_opal_backtrace_DSO_SUBDIRS= + MCA_opal_allocator_DSO_SUBDIRS= for item in $dso_components ; do - MCA_opal_backtrace_DSO_SUBDIRS="$MCA_opal_backtrace_DSO_SUBDIRS mca/backtrace/$item" + MCA_opal_allocator_DSO_SUBDIRS="$MCA_opal_allocator_DSO_SUBDIRS mca/allocator/$item" done @@ -108517,7 +109363,7 @@ # Create the final .h file that will be included in the type's # top-level glue. This lists all the static components. We don't # need to do this for "common". - if test "backtrace" != "common"; then + if test "allocator" != "common"; then cat > $outfile <&5 -$as_echo_n "checking for no configure components in framework btl... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: self" >&5 -$as_echo "self" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework btl" >&5 -$as_echo_n "checking for m4 configure components in framework btl... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: openib, portals4, sm, smcuda, tcp, uct, ugni, usnic, vader" >&5 -$as_echo "openib, portals4, sm, smcuda, tcp, uct, ugni, usnic, vader" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework backtrace" >&5 +$as_echo_n "checking for no configure components in framework backtrace... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework backtrace" >&5 +$as_echo_n "checking for m4 configure components in framework backtrace... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: execinfo, none, printstack" >&5 +$as_echo "execinfo, none, printstack" >&6; } # If there are components in the no configure list, but we're # doing one of the "special" selection logics, abort with a @@ -108608,13 +109454,26 @@ # run the configure logic for the no-config components - opal_show_subsubsubtitle "MCA component btl:self (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + # configure components that use built-in configuration scripts - component_path="$srcdir/opal/mca/btl/self" + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + opal_show_subsubsubtitle "MCA component backtrace:execinfo (m4 configuration macro, priority 30)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/opal/mca/backtrace/execinfo" want_component=0 # build if: @@ -108646,8 +109505,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "self" ; then + if test ! -z "$DIRECT_backtrace" ; then + if test "$DIRECT_backtrace" = "execinfo" ; then want_component=1 else want_component=0 @@ -108656,99 +109515,315 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_btl" = "1"; then : + if test "$DISABLE_backtrace" = "1"; then : want_component=0 fi - if test "$DISABLE_btl_self" = "1"; then : + if test "$DISABLE_backtrace_execinfo" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_btl" - SHARED_COMPONENT="$DSO_btl_self" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component backtrace:execinfo compile mode" >&5 +$as_echo_n "checking for MCA component backtrace:execinfo compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - STATIC_FRAMEWORK="$STATIC_btl" - STATIC_COMPONENT="$STATIC_btl_self" - shared_mode_override=static + # try to configure the component - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" + ac_config_files="$ac_config_files opal/mca/backtrace/execinfo/Makefile" + + + for ac_header in execinfo.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "execinfo.h" "ac_cv_header_execinfo_h" "$ac_includes_default" +if test "x$ac_cv_header_execinfo_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_EXECINFO_H 1 +_ACEOF + +fi + +done + + # FreeBSD has backtrace in -lexecinfo, usually in libc + + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:self compile mode" >&5 -$as_echo_n "checking for MCA component btl:self compile mode... " >&6; } - if test "$DIRECT_btl" = "self" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in LIBS_save add; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"LIBS_save add\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + LIBS_save=$LIBS + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing backtrace" >&5 +$as_echo_n "checking for library containing backtrace... " >&6; } +if ${ac_cv_search_backtrace+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char backtrace (); +int +main () +{ +return backtrace (); + ; + return 0; +} +_ACEOF +for ac_lib in '' execinfo; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_backtrace=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_backtrace+:} false; then : + break +fi +done +if ${ac_cv_search_backtrace+:} false; then : + +else + ac_cv_search_backtrace=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_backtrace" >&5 +$as_echo "$ac_cv_search_backtrace" >&6; } +ac_res=$ac_cv_search_backtrace +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + # Found it! See if anything was added to LIBS + add=`printf '%s\n' "$LIBS" | sed -e "s/$LIBS_save$//"` + if test -n "$add"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $add; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${backtrace_execinfo_LIBS}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$backtrace_execinfo_LIBS"; then : + backtrace_execinfo_LIBS=$arg +else + backtrace_execinfo_LIBS="$backtrace_execinfo_LIBS $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + backtrace_execinfo_have_backtrace=1 + backtrace_execinfo_happy="yes" +else + backtrace_execinfo_have_backtrace=0 + backtrace_execinfo_happy="no" +fi + + + +cat >>confdefs.h <<_ACEOF +#define OPAL_HAVE_BACKTRACE_EXECINFO $backtrace_execinfo_have_backtrace +_ACEOF + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + - if test "$should_build" = "1" ; then + + if test "$backtrace_execinfo_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/btl/self/post_configure.sh" + infile="$srcdir/opal/mca/backtrace/execinfo/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components self" + all_components="$all_components execinfo" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components self" + dso_components="$dso_components execinfo" else - if test "btl" = "common"; then + if test "backtrace" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/btl/self/lib${OPAL_LIB_PREFIX}mca_btl_self.la $static_ltlibs" + static_ltlibs="mca/backtrace/execinfo/lib${OPAL_LIB_PREFIX}mca_backtrace_execinfo.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/btl/self/libmca_btl_self.la $static_ltlibs" + static_ltlibs="mca/backtrace/execinfo/libmca_backtrace_execinfo.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_btl_self_component;" >> $outfile.extern - echo " &mca_btl_self_component, " >> $outfile.struct - static_components="$static_components self" + echo "extern const mca_base_component_t mca_backtrace_execinfo_component;" >> $outfile.extern + echo " &mca_backtrace_execinfo_component, " >> $outfile.struct + static_components="$static_components execinfo" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:self can compile" >&5 -$as_echo_n "checking if MCA component btl:self can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component backtrace:execinfo can compile" >&5 +$as_echo_n "checking if MCA component backtrace:execinfo can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_btl" = "self" ; then + if test "$DIRECT_backtrace" = "execinfo" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" + str="MCA_opal_backtrace_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** btl component self was supposed to be direct-called, but +as_fn_error $? "*** backtrace component execinfo was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -108756,8 +109831,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_btl" = "self" ; then -as_fn_error $? "*** btl component self was supposed to be direct-called, but + if test "$DIRECT_backtrace" = "execinfo" ; then +as_fn_error $? "*** backtrace component execinfo was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -108772,7 +109847,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$btl_self_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$backtrace_execinfo_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -108812,7 +109887,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_self_LDFLAGS; do + for arg in $backtrace_execinfo_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -108893,7 +109968,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_self_WRAPPER_EXTRA_LDFLAGS; do + for arg in $backtrace_execinfo_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -108935,7 +110010,7 @@ fi - if test "$btl_self_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$backtrace_execinfo_WRAPPER_EXTRA_LIBS" = ""; then : @@ -108975,7 +110050,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_self_LIBS; do + for arg in $backtrace_execinfo_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -109056,7 +110131,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_self_WRAPPER_EXTRA_LIBS; do + for arg in $backtrace_execinfo_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -109104,8 +110179,8 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$btl_self_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 + if test "$backtrace_execinfo_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=1 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -109147,7 +110222,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_self_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $backtrace_execinfo_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -109190,79 +110265,80 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_self_WRAPPER_EXTRA_CPPFLAGS ($btl_self_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring btl_self_WRAPPER_EXTRA_CPPFLAGS ($btl_self_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring backtrace_execinfo_WRAPPER_EXTRA_CPPFLAGS ($backtrace_execinfo_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring backtrace_execinfo_WRAPPER_EXTRA_CPPFLAGS ($backtrace_execinfo_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:self can compile" >&5 -$as_echo_n "checking if MCA component btl:self can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component backtrace:execinfo can compile" >&5 +$as_echo_n "checking if MCA component backtrace:execinfo can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_btl" = "self" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"self\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"self\" failed to configure properly" >&2;} + if test "$with_backtrace" = "execinfo" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"execinfo\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"execinfo\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "self" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"self\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"self\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_backtrace" ; then + if test "$DIRECT_backtrace" = "execinfo" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"execinfo\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"execinfo\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components self" - fi + # add component to all component list + all_components="$all_components execinfo" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_opal_btl_self_DSO=1 - else - BUILD_opal_btl_self_DSO=0 - fi - if test "$BUILD_opal_btl_self_DSO" = "1"; then - MCA_BUILD_opal_btl_self_DSO_TRUE= - MCA_BUILD_opal_btl_self_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_opal_backtrace_execinfo_DSO=1 else - MCA_BUILD_opal_btl_self_DSO_TRUE='#' - MCA_BUILD_opal_btl_self_DSO_FALSE= + BUILD_opal_backtrace_execinfo_DSO=0 +fi + if test "$BUILD_opal_backtrace_execinfo_DSO" = "1"; then + MCA_BUILD_opal_backtrace_execinfo_DSO_TRUE= + MCA_BUILD_opal_backtrace_execinfo_DSO_FALSE='#' +else + MCA_BUILD_opal_backtrace_execinfo_DSO_TRUE='#' + MCA_BUILD_opal_backtrace_execinfo_DSO_FALSE= fi - ac_config_files="$ac_config_files opal/mca/btl/self/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode + if test $components_last_result -eq 1; then : + components_looking_for_succeed=0 +fi - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - opal_show_subsubsubtitle "MCA component btl:openib (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component backtrace:printstack (m4 configuration macro, priority 30)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/btl/openib" + component_path="$srcdir/opal/mca/backtrace/printstack" want_component=0 # build if: @@ -109294,8 +110370,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "openib" ; then + if test ! -z "$DIRECT_backtrace" ; then + if test "$DIRECT_backtrace" = "printstack" ; then want_component=1 else want_component=0 @@ -109304,10 +110380,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_btl" = "1"; then : + if test "$DISABLE_backtrace" = "1"; then : want_component=0 fi - if test "$DISABLE_btl_openib" = "1"; then : + if test "$DISABLE_backtrace_printstack" = "1"; then : want_component=0 fi @@ -109320,43 +110396,122 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_btl" - SHARED_COMPONENT="$DSO_btl_openib" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component backtrace:printstack compile mode" >&5 +$as_echo_n "checking for MCA component backtrace:printstack compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - STATIC_FRAMEWORK="$STATIC_btl" - STATIC_COMPONENT="$STATIC_btl_openib" - shared_mode_override=static + # try to configure the component - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + ac_config_files="$ac_config_files opal/mca/backtrace/printstack/Makefile" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:openib compile mode" >&5 -$as_echo_n "checking for MCA component btl:openib compile mode... " >&6; } - if test "$DIRECT_btl" = "openib" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } + + for ac_header in ucontext.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ucontext.h" "ac_cv_header_ucontext_h" "$ac_includes_default" +if test "x$ac_cv_header_ucontext_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UCONTEXT_H 1 +_ACEOF + +fi + +done + + # FreeBSD has backtrace in -lexecinfo, usually in libc + for ac_func in printstack +do : + ac_fn_c_check_func "$LINENO" "printstack" "ac_cv_func_printstack" +if test "x$ac_cv_func_printstack" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PRINTSTACK 1 +_ACEOF + backtrace_printstack_happy="yes" +else + backtrace_printstack_happy="no" +fi +done + + + if test "$backtrace_printstack_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/backtrace/printstack/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components printstack" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components printstack" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + if test "backtrace" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/backtrace/printstack/lib${OPAL_LIB_PREFIX}mca_backtrace_printstack.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/backtrace/printstack/libmca_backtrace_printstack.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_backtrace_printstack_component;" >> $outfile.extern + echo " &mca_backtrace_printstack_component, " >> $outfile.struct + static_components="$static_components printstack" fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component backtrace:printstack can compile" >&5 +$as_echo_n "checking if MCA component backtrace:printstack can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - # try to configure the component - - ac_config_files="$ac_config_files opal/mca/btl/openib/Makefile" + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_backtrace" = "printstack" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_backtrace_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** backtrace component printstack was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_backtrace" = "printstack" ; then +as_fn_error $? "*** backtrace component printstack was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$backtrace_printstack_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -109369,7 +110524,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in cpcs btl_openib_LDFLAGS_save btl_openib_LIBS_save; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -109388,15 +110543,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"cpcs btl_openib_LDFLAGS_save btl_openib_LIBS_save\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - cpcs="oob" + for arg in $backtrace_printstack_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -109409,7 +110605,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in btl_openib_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -109428,7 +110624,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"btl_openib_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -109436,99 +110632,49 @@ opal_scope_index=`expr $opal_scope_index + 1` - # Setup the --with switches to allow users to specify where - # verbs stuff lives. - - - if test -z "$opal_check_openib_happy" ; then - # - # Add padding to OpenIB header - # - # Check whether --enable-openib-control-hdr-padding was given. -if test "${enable_openib_control_hdr_padding+set}" = set; then : - enableval=$enable_openib_control_hdr_padding; + for arg in $backtrace_printstack_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if want to add padding to the openib BTL control header" >&5 -$as_echo_n "checking if want to add padding to the openib BTL control header... " >&6; } - if test "$enable_openib_control_hdr_padding" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ompi_openib_pad_hdr=1 - elif test "$enable_openib_control_hdr_padding" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ompi_openib_pad_hdr=0 - else - # - # Enable padding for SPARC platforms by default because the - # btl will segv otherwise. Keep padding disabled for other - # platforms since there are some performance implications with - # padding on for those platforms. - # - case "${host}" in - sparc*) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (enabled by default on SPARC)" >&5 -$as_echo "yes (enabled by default on SPARC)" >&6; } - ompi_openib_pad_hdr=1 - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ompi_openib_pad_hdr=0 - ;; - esac - fi - -cat >>confdefs.h <<_ACEOF -#define OPAL_OPENIB_PAD_HDR $ompi_openib_pad_hdr -_ACEOF - - - if test "$opal_want_verbs" = "no"; then : - opal_check_openib_happy="no" -else - opal_check_openib_happy="yes" + done fi - - ompi_check_openib_btl_openib_save_CPPFLAGS="$CPPFLAGS" - ompi_check_openib_btl_openib_save_LDFLAGS="$LDFLAGS" - ompi_check_openib_btl_openib_save_LIBS="$LIBS" - - if test "$opal_check_openib_happy" = "yes"; then : - for ac_header in fcntl.h sys/poll.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: fcntl.h sys/poll.h not found. Can not build component." >&5 -$as_echo "$as_me: WARNING: fcntl.h sys/poll.h not found. Can not build component." >&2;} - opal_check_openib_happy="no" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - -done - fi + done - if test "$opal_check_openib_happy" = "yes"; then : - opal_check_package_opal_check_openib_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_opal_check_openib_save_LDFLAGS="$LDFLAGS" - opal_check_package_opal_check_openib_save_LIBS="$LIBS" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_check_package_opal_check_openib_orig_CPPFLAGS="$opal_check_openib_CPPFLAGS" - opal_check_package_opal_check_openib_orig_LDFLAGS="$opal_check_openib_LDFLAGS" - opal_check_package_opal_check_openib_orig_LIBS="$opal_check_openib_LIBS" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + +fi + if test "$backtrace_printstack_WRAPPER_EXTRA_LIBS" = ""; then : @@ -109541,7 +110687,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -109560,7 +110706,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -109568,357 +110714,48 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_infiniband_verbs_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $opal_verbs_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in infiniband/verbs.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "infiniband/verbs.h" "ac_cv_header_infiniband_verbs_h" "$ac_includes_default" -if test "x$ac_cv_header_infiniband_verbs_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_INFINIBAND_VERBS_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_infiniband_verbs_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - opal_check_openib_CPPFLAGS="$opal_check_openib_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in infiniband/verbs.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "infiniband/verbs.h" "ac_cv_header_infiniband_verbs_h" "$ac_includes_default" -if test "x$ac_cv_header_infiniband_verbs_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_INFINIBAND_VERBS_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_ibv_open_device - opal_check_package_lib_happy="no" - if test "$opal_verbs_libdir" != ""; then : - # libdir was specified - search only there - opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_verbs_libdir" - LDFLAGS="$LDFLAGS -L$opal_verbs_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 -$as_echo_n "checking for library containing ibv_open_device... " >&6; } -if ${ac_cv_search_ibv_open_device+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ibv_open_device (); -int -main () -{ -return ibv_open_device (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ibverbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ibv_open_device=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ibv_open_device+:} false; then : - break -fi -done -if ${ac_cv_search_ibv_open_device+:} false; then : - -else - ac_cv_search_ibv_open_device=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 -$as_echo "$ac_cv_search_ibv_open_device" >&6; } -ac_res=$ac_cv_search_ibv_open_device -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - unset ac_cv_search_ibv_open_device -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$opal_verbs_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 -$as_echo_n "checking for library containing ibv_open_device... " >&6; } -if ${ac_cv_search_ibv_open_device+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ibv_open_device (); -int -main () -{ -return ibv_open_device (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ibverbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ibv_open_device=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ibv_open_device+:} false; then : - break -fi -done -if ${ac_cv_search_ibv_open_device+:} false; then : - -else - ac_cv_search_ibv_open_device=no + for arg in $backtrace_printstack_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 -$as_echo "$ac_cv_search_ibv_open_device" >&6; } -ac_res=$ac_cv_search_ibv_open_device -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - unset ac_cv_search_ibv_open_device + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 -$as_echo_n "checking for library containing ibv_open_device... " >&6; } -if ${ac_cv_search_ibv_open_device+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ibv_open_device (); -int -main () -{ -return ibv_open_device (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ibverbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ibv_open_device=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ibv_open_device+:} false; then : - break -fi -done -if ${ac_cv_search_ibv_open_device+:} false; then : -else - ac_cv_search_ibv_open_device=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 -$as_echo "$ac_cv_search_ibv_open_device" >&6; } -ac_res=$ac_cv_search_ibv_open_device -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - unset ac_cv_search_ibv_open_device -fi -fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 -$as_echo_n "checking for library containing ibv_open_device... " >&6; } -if ${ac_cv_search_ibv_open_device+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ibv_open_device (); -int -main () -{ -return ibv_open_device (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ibverbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ibv_open_device=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ibv_open_device+:} false; then : - break -fi -done -if ${ac_cv_search_ibv_open_device+:} false; then : else - ac_cv_search_ibv_open_device=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 -$as_echo "$ac_cv_search_ibv_open_device" >&6; } -ac_res=$ac_cv_search_ibv_open_device -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - unset ac_cv_search_ibv_open_device -fi -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. @@ -109931,7 +110768,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -109950,16 +110787,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $backtrace_printstack_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$backtrace_printstack_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=1 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -109972,7 +110859,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -109991,7 +110878,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -109999,276 +110886,320 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $backtrace_printstack_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libibverbs requires libnl v1 or v3" >&5 -$as_echo_n "checking if libibverbs requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ibv_open_device (void); -int main(int argc, char *argv[]) { - ibv_open_device (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:110026: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:110033: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring backtrace_printstack_WRAPPER_EXTRA_CPPFLAGS ($backtrace_printstack_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring backtrace_printstack_WRAPPER_EXTRA_CPPFLAGS ($backtrace_printstack_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ibverbs" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ibverbs" >&2;} -fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component backtrace:printstack can compile" >&5 +$as_echo_n "checking if MCA component backtrace:printstack can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libibverbs links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libibverbs links to both libnl and libnl-3." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_backtrace" = "printstack" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"printstack\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"printstack\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} + if test ! -z "$DIRECT_backtrace" ; then + if test "$DIRECT_backtrace" = "printstack" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"printstack\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"printstack\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - libnl_sane=0 + # add component to all component list + all_components="$all_components printstack" fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ibverbs requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ibverbs requires libnl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} - libnl_sane=0 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_backtrace_printstack_DSO=1 else - opal_libnlv1_libs="$opal_libnlv1_libs ibverbs" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + BUILD_opal_backtrace_printstack_DSO=0 +fi + if test "$BUILD_opal_backtrace_printstack_DSO" = "1"; then + MCA_BUILD_opal_backtrace_printstack_DSO_TRUE= + MCA_BUILD_opal_backtrace_printstack_DSO_FALSE='#' +else + MCA_BUILD_opal_backtrace_printstack_DSO_TRUE='#' + MCA_BUILD_opal_backtrace_printstack_DSO_FALSE= +fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # Check the ending condition + unset compile_mode - opal_done="`expr $opal_i \>= $opal_count`" + if test $components_last_result -eq 1; then : + components_looking_for_succeed=0 +fi - # Increment the counter - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" + opal_show_subsubsubtitle "MCA component backtrace:none (m4 configuration macro, priority 0)" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + component_path="$srcdir/opal/mca/backtrace/none" + want_component=0 - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval - -# Clean up + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_backtrace" ; then + if test "$DIRECT_backtrace" = "none" ; then + want_component=1 + else + want_component=0 + fi + fi + fi -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_backtrace" = "1"; then : + want_component=0 fi - + if test "$DISABLE_backtrace_none" = "1"; then : + want_component=0 fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libibverbs requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libibverbs requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} - - libnl_sane=0 + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else - opal_libnlv3_libs="$opal_libnlv3_libs ibverbs" + should_build=0 +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE -# Go through each item in the variable and only keep the unique ones + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component backtrace:none compile mode" >&5 +$as_echo_n "checking for MCA component backtrace:none compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far + # try to configure the component - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + ac_config_files="$ac_config_files opal/mca/backtrace/none/Makefile" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - # Check the ending condition + if test "$should_build" = "1"; then : - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/backtrace/none/post_configure.sh" - # If we didn't find the token, add it to the "array" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components none" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components none" else - opal_i="`expr $opal_i - 1`" + if test "backtrace" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/backtrace/none/lib${OPAL_LIB_PREFIX}mca_backtrace_none.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/backtrace/none/libmca_backtrace_none.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_backtrace_none_component;" >> $outfile.extern + echo " &mca_backtrace_none_component, " >> $outfile.struct + static_components="$static_components none" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component backtrace:none can compile" >&5 +$as_echo_n "checking if MCA component backtrace:none can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_backtrace" = "none" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_backtrace_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** backtrace component none was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_backtrace" = "none" ; then +as_fn_error $? "*** backtrace component none was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$backtrace_none_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + for arg in $backtrace_none_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -110292,10 +111223,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $backtrace_none_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -110318,332 +111304,89 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ibv_open_device" != "no" && - test "$ac_cv_search_ibv_open_device" != "none required"; then : - opal_check_openib_LIBS="$ac_cv_search_ibv_open_device " -else - opal_check_openib_LIBS="" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" fi + if test "$backtrace_none_WRAPPER_EXTRA_LIBS" = ""; then : -else - opal_check_package_happy="no" -fi -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # see comment above - unset ac_cv_search_ibv_open_device - opal_check_package_lib_happy="no" - if test "$opal_verbs_libdir" != ""; then : - # libdir was specified - search only there - opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_verbs_libdir" - LDFLAGS="$LDFLAGS -L$opal_verbs_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 -$as_echo_n "checking for library containing ibv_open_device... " >&6; } -if ${ac_cv_search_ibv_open_device+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ibv_open_device (); -int -main () -{ -return ibv_open_device (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ibverbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ibv_open_device=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ibv_open_device+:} false; then : - break -fi -done -if ${ac_cv_search_ibv_open_device+:} false; then : + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -else - ac_cv_search_ibv_open_device=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 -$as_echo "$ac_cv_search_ibv_open_device" >&6; } -ac_res=$ac_cv_search_ibv_open_device -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - unset ac_cv_search_ibv_open_device -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$opal_verbs_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 -$as_echo_n "checking for library containing ibv_open_device... " >&6; } -if ${ac_cv_search_ibv_open_device+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ibv_open_device (); -int -main () -{ -return ibv_open_device (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ibverbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ibv_open_device=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ibv_open_device+:} false; then : - break -fi -done -if ${ac_cv_search_ibv_open_device+:} false; then : -else - ac_cv_search_ibv_open_device=no + for arg in $backtrace_none_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 -$as_echo "$ac_cv_search_ibv_open_device" >&6; } -ac_res=$ac_cv_search_ibv_open_device -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - unset ac_cv_search_ibv_open_device + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 -$as_echo_n "checking for library containing ibv_open_device... " >&6; } -if ${ac_cv_search_ibv_open_device+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ibv_open_device (); -int -main () -{ -return ibv_open_device (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ibverbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ibv_open_device=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ibv_open_device+:} false; then : - break -fi -done -if ${ac_cv_search_ibv_open_device+:} false; then : -else - ac_cv_search_ibv_open_device=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 -$as_echo "$ac_cv_search_ibv_open_device" >&6; } -ac_res=$ac_cv_search_ibv_open_device -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - unset ac_cv_search_ibv_open_device -fi -fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 -$as_echo_n "checking for library containing ibv_open_device... " >&6; } -if ${ac_cv_search_ibv_open_device+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ibv_open_device (); -int -main () -{ -return ibv_open_device (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ibverbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ibv_open_device=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ibv_open_device+:} false; then : - break -fi -done -if ${ac_cv_search_ibv_open_device+:} false; then : else - ac_cv_search_ibv_open_device=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 -$as_echo "$ac_cv_search_ibv_open_device" >&6; } -ac_res=$ac_cv_search_ibv_open_device -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - unset ac_cv_search_ibv_open_device -fi -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. @@ -110656,7 +111399,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -110675,16 +111418,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $backtrace_none_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$backtrace_none_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=1 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -110697,7 +111490,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -110716,7 +111509,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -110724,347 +111517,469 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $backtrace_none_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libibverbs requires libnl v1 or v3" >&5 -$as_echo_n "checking if libibverbs requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ibv_open_device (void); -int main(int argc, char *argv[]) { - ibv_open_device (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:110751: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:110758: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring backtrace_none_WRAPPER_EXTRA_CPPFLAGS ($backtrace_none_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring backtrace_none_WRAPPER_EXTRA_CPPFLAGS ($backtrace_none_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ibverbs" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ibverbs" >&2;} - -fi - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component backtrace:none can compile" >&5 +$as_echo_n "checking if MCA component backtrace:none can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libibverbs links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libibverbs links to both libnl and libnl-3." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_backtrace" = "none" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"none\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"none\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} + if test ! -z "$DIRECT_backtrace" ; then + if test "$DIRECT_backtrace" = "none" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"none\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"none\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - libnl_sane=0 + # add component to all component list + all_components="$all_components none" fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ibverbs requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ibverbs requires libnl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} - libnl_sane=0 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_backtrace_none_DSO=1 else - opal_libnlv1_libs="$opal_libnlv1_libs ibverbs" + BUILD_opal_backtrace_none_DSO=0 +fi + if test "$BUILD_opal_backtrace_none_DSO" = "1"; then + MCA_BUILD_opal_backtrace_none_DSO_TRUE= + MCA_BUILD_opal_backtrace_none_DSO_FALSE='#' +else + MCA_BUILD_opal_backtrace_none_DSO_TRUE='#' + MCA_BUILD_opal_backtrace_none_DSO_FALSE= +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + unset compile_mode - # Loop over every token we've seen so far + if test $components_last_result -eq 1; then : + components_looking_for_succeed=0 +fi - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + MCA_opal_backtrace_ALL_COMPONENTS="$all_components" + MCA_opal_backtrace_STATIC_COMPONENTS="$static_components" + MCA_opal_backtrace_DSO_COMPONENTS="$dso_components" + MCA_opal_backtrace_STATIC_LTLIBS="$static_ltlibs" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + MCA_opal_backtrace_ALL_SUBDIRS= + for item in $all_components ; do + MCA_opal_backtrace_ALL_SUBDIRS="$MCA_opal_backtrace_ALL_SUBDIRS mca/backtrace/$item" + done - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + MCA_opal_backtrace_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_opal_backtrace_STATIC_SUBDIRS="$MCA_opal_backtrace_STATIC_SUBDIRS mca/backtrace/$item" + done -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi -fi + MCA_opal_backtrace_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_opal_backtrace_DSO_SUBDIRS="$MCA_opal_backtrace_DSO_SUBDIRS mca/backtrace/$item" + done - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libibverbs requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libibverbs requires libnl-3" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs ibverbs" + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "backtrace" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + unset all_components static_components dso_components outfile outfile_real - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS btl" + MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/btl" + MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_btl_ALL_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_btl_DSO_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_btl_STATIC_SUBDIRS)" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/btl/libmca_btl.la" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_btl_STATIC_LTLIBS)" - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + opal_show_subsubtitle "Configuring MCA framework btl" - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= - # If we didn't find the token, add it to the "array" + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=opal/mca/btl/base + as_dir=$outdir; as_fn_mkdir_p - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + # emit Makefile rule + ac_config_files="$ac_config_files opal/mca/btl/Makefile" -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework btl" >&5 +$as_echo_n "checking for no configure components in framework btl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: self" >&5 +$as_echo "self" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework btl" >&5 +$as_echo_n "checking for m4 configure components in framework btl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ofi, openib, portals4, sm, smcuda, tcp, uct, ugni, usnic, vader" >&5 +$as_echo "ofi, openib, portals4, sm, smcuda, tcp, uct, ugni, usnic, vader" >&6; } - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up + # run the configure logic for the no-config components -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 + opal_show_subsubsubtitle "MCA component btl:self (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/opal/mca/btl/self" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_btl" ; then + if test "$DIRECT_btl" = "self" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_btl" = "1"; then : + want_component=0 +fi + if test "$DISABLE_btl_self" = "1"; then : + want_component=0 fi + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 fi - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - rm -f conftest conftest_c.$ac_ext + SHARED_FRAMEWORK="$DSO_btl" + SHARED_COMPONENT="$DSO_btl_self" - opal_libnl_sane=$libnl_sane + STATIC_FRAMEWORK="$STATIC_btl" + STATIC_COMPONENT="$STATIC_btl_self" + shared_mode_override=static - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:self compile mode" >&5 +$as_echo_n "checking for MCA component btl:self compile mode... " >&6; } + if test "$DIRECT_btl" = "self" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1" ; then - ;; - esac - opal_check_package_libnl_check_ok=$opal_libnl_sane - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/btl/self/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components self" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components self" + else + if test "btl" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/btl/self/lib${OPAL_LIB_PREFIX}mca_btl_self.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/btl/self/libmca_btl_self.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_btl_self_component;" >> $outfile.extern + echo " &mca_btl_self_component, " >> $outfile.struct + static_components="$static_components self" fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:self can compile" >&5 +$as_echo_n "checking if MCA component btl:self can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_btl" = "self" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** btl component self was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_btl" = "self" ; then +as_fn_error $? "*** btl component self was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$btl_self_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ibv_open_device" != "no" && - test "$ac_cv_search_ibv_open_device" != "none required"; then : - opal_check_openib_LIBS="$ac_cv_search_ibv_open_device " -else - opal_check_openib_LIBS="" + for arg in $btl_self_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -111088,463 +112003,261 @@ done - - if test "$opal_check_package_happy" = "yes"; then : - opal_check_openib_happy="yes" else - opal_check_openib_CPPFLAGS="$opal_check_package_opal_check_openib_orig_CPPFLAGS" - opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" - opal_check_openib_LIBS="$opal_check_package_opal_check_openib_orig_LIBS" - opal_check_openib_happy="no" -fi - - CPPFLAGS="$opal_check_package_opal_check_openib_save_CPPFLAGS" - LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" - LIBS="$opal_check_package_opal_check_openib_save_LIBS" -fi - CPPFLAGS="$CPPFLAGS $opal_check_openib_CPPFLAGS" - LDFLAGS="$LDFLAGS $opal_check_openib_LDFLAGS" - LIBS="$LIBS $opal_check_openib_LIBS" - if test "$opal_check_openib_happy" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking number of arguments to ibv_create_cq" >&5 -$as_echo_n "checking number of arguments to ibv_create_cq... " >&6; } -if ${ompi_cv_func_ibv_create_cq_args+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -ibv_create_cq(NULL, 0, NULL, NULL, 0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ompi_cv_func_ibv_create_cq_args=5 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -ibv_create_cq(NULL, 0, NULL); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ompi_cv_func_ibv_create_cq_args=3 -else - ompi_cv_func_ibv_create_cq_args="unknown" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_cv_func_ibv_create_cq_args" >&5 -$as_echo "$ompi_cv_func_ibv_create_cq_args" >&6; } - if test "$ompi_cv_func_ibv_create_cq_args" = "unknown"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Can not determine number of args to ibv_create_cq." >&5 -$as_echo "$as_me: WARNING: Can not determine number of args to ibv_create_cq." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Not building component." >&5 -$as_echo "$as_me: WARNING: Not building component." >&2;} - opal_check_openib_happy="no" -else + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -cat >>confdefs.h <<_ACEOF -#define OPAL_IBV_CREATE_CQ_ARGS $ompi_cv_func_ibv_create_cq_args -_ACEOF + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -fi -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # - # OpenIB dynamic SL - # - # Check whether --enable-openib-dynamic-sl was given. -if test "${enable_openib_dynamic_sl+set}" = set; then : - enableval=$enable_openib_dynamic_sl; -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - # Set these up so that we can do an AC_DEFINE below - # (unconditionally) - opal_check_openib_have_xrc=0 - opal_check_openib_have_xrc_domains=0 - opal_check_openib_have_opensm_devel=0 - # If we have the openib stuff available, find out what we've got - if test "$opal_check_openib_happy" = "yes"; then : - ac_fn_c_check_decl "$LINENO" "IBV_EVENT_CLIENT_REREGISTER" "ac_cv_have_decl_IBV_EVENT_CLIENT_REREGISTER" "#include -" -if test "x$ac_cv_have_decl_IBV_EVENT_CLIENT_REREGISTER" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 + for arg in $btl_self_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_EVENT_CLIENT_REREGISTER $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "IBV_ACCESS_SO" "ac_cv_have_decl_IBV_ACCESS_SO" "#include -" -if test "x$ac_cv_have_decl_IBV_ACCESS_SO" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 + done fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_ACCESS_SO $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "IBV_ATOMIC_HCA" "ac_cv_have_decl_IBV_ATOMIC_HCA" "#include -" -if test "x$ac_cv_have_decl_IBV_ATOMIC_HCA" = xyes; then : - ac_have_decl=1 + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - ac_have_decl=0 + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_ATOMIC_HCA $ac_have_decl -_ACEOF - - for ac_func in ibv_get_device_list ibv_resize_cq -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - fi -done - + done - # struct ibv_device.transport_type was added in OFED v1.2 - ac_fn_c_check_member "$LINENO" "struct ibv_device" "transport_type" "ac_cv_member_struct_ibv_device_transport_type" "#include -" -if test "x$ac_cv_member_struct_ibv_device_transport_type" = xyes; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_IBV_DEVICE_TRANSPORT_TYPE 1 -_ACEOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # We have to check functions both exits *and* are declared - # since some distro ship broken ibverbs devel headers - # IBV_DEVICE_XRC is common to all OFED versions - # ibv_create_xrc_rcv_qp was added in OFED 1.3 - # ibv_cmd_open_xrcd (aka XRC Domains) was added in OFED 3.12 - if test "$enable_connectx_xrc" = "yes"; then - ac_fn_c_check_decl "$LINENO" "IBV_DEVICE_XRC" "ac_cv_have_decl_IBV_DEVICE_XRC" "#include -" -if test "x$ac_cv_have_decl_IBV_DEVICE_XRC" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 fi + if test "$btl_self_WRAPPER_EXTRA_LIBS" = ""; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_DEVICE_XRC $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : - opal_check_openib_have_xrc=1 - opal_check_openib_have_xrc_domains=1 -fi - fi - if test "$enable_connectx_xrc" = "yes" \ - && test $opal_check_openib_have_xrc -eq 1; then - ac_fn_c_check_decl "$LINENO" "ibv_create_xrc_rcv_qp" "ac_cv_have_decl_ibv_create_xrc_rcv_qp" "#include -" -if test "x$ac_cv_have_decl_ibv_create_xrc_rcv_qp" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_CREATE_XRC_RCV_QP $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : - for ac_func in ibv_create_xrc_rcv_qp -do : - ac_fn_c_check_func "$LINENO" "ibv_create_xrc_rcv_qp" "ac_cv_func_ibv_create_xrc_rcv_qp" -if test "x$ac_cv_func_ibv_create_xrc_rcv_qp" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_IBV_CREATE_XRC_RCV_QP 1 -_ACEOF + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -else - opal_check_openib_have_xrc=0 -fi -done + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -else - opal_check_openib_have_xrc=0 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - fi - if test "$enable_connectx_xrc" = "yes" \ - && test $opal_check_openib_have_xrc_domains -eq 1; then - ac_fn_c_check_decl "$LINENO" "ibv_cmd_open_xrcd" "ac_cv_have_decl_ibv_cmd_open_xrcd" "#include -" -if test "x$ac_cv_have_decl_ibv_cmd_open_xrcd" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_CMD_OPEN_XRCD $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : - ac_fn_c_check_decl "$LINENO" "IBV_SRQT_XRC" "ac_cv_have_decl_IBV_SRQT_XRC" "#include -" -if test "x$ac_cv_have_decl_IBV_SRQT_XRC" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_SRQT_XRC $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : - for ac_func in ibv_cmd_open_xrcd -do : - ac_fn_c_check_func "$LINENO" "ibv_cmd_open_xrcd" "ac_cv_func_ibv_cmd_open_xrcd" -if test "x$ac_cv_func_ibv_cmd_open_xrcd" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_IBV_CMD_OPEN_XRCD 1 -_ACEOF -else - opal_check_openib_have_xrc_domains=0 + for arg in $btl_self_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -done - -else - opal_check_openib_have_xrc_domains=0 + done fi - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_openib_have_xrc_domains=0 + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi fi + done - # XRC and XRC Domains should be considered as exclusive - if test "$opal_check_openib_have_xrc" -eq 1 && \ - test "$opal_check_openib_have_xrc_domains" -eq 1; then - opal_check_openib_have_xrc=0 - fi - fi - if test "no" != "$enable_openib_dynamic_sl"; then - # We need ib_types.h file, which is installed with opensm-devel - # package. However, ib_types.h has a bad include directive, - # which will cause AC_CHECK_HEADER to fail. - # So instead, we will look for another file that is also - # installed as part of opensm-devel package and included in - # ib_types.h, but it doesn't include any other IB-related files. - ac_fn_c_check_header_mongrel "$LINENO" "infiniband/complib/cl_types_osd.h" "ac_cv_header_infiniband_complib_cl_types_osd_h" "$ac_includes_default" -if test "x$ac_cv_header_infiniband_complib_cl_types_osd_h" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cl_map_init in -losmcomp" >&5 -$as_echo_n "checking for cl_map_init in -losmcomp... " >&6; } -if ${ac_cv_lib_osmcomp_cl_map_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-losmcomp $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char cl_map_init (); -int -main () -{ -return cl_map_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_osmcomp_cl_map_init=yes -else - ac_cv_lib_osmcomp_cl_map_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_osmcomp_cl_map_init" >&5 -$as_echo "$ac_cv_lib_osmcomp_cl_map_init" >&6; } -if test "x$ac_cv_lib_osmcomp_cl_map_init" = xyes; then : - opal_check_openib_have_opensm_devel=1 -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # Abort if dynamic SL support was explicitly requested but opensm-devel - # package wasn't found. Otherwise, OMPI will be built w/o dynamic SL. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if can use dynamic SL support" >&5 -$as_echo_n "checking if can use dynamic SL support... " >&6; } - if test "$opal_check_openib_have_opensm_devel" = "1"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - if test "$enable_openib_dynamic_sl" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-openib-dynamic-sl was specified but the" >&5 -$as_echo "$as_me: WARNING: --enable-openib-dynamic-sl was specified but the" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: appropriate header/library files could not be found" >&5 -$as_echo "$as_me: WARNING: appropriate header/library files could not be found" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Please install opensm-devel if you need dynamic SL support" >&5 -$as_echo "$as_me: WARNING: Please install opensm-devel if you need dynamic SL support" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -fi -fi - fi - # Check support for RDMAoE devices - btl_openib_have_rdmaoe=0 - ac_fn_c_check_decl "$LINENO" "IBV_LINK_LAYER_ETHERNET" "ac_cv_have_decl_IBV_LINK_LAYER_ETHERNET" "#include -" -if test "x$ac_cv_have_decl_IBV_LINK_LAYER_ETHERNET" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_LINK_LAYER_ETHERNET $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : - btl_openib_have_rdmaoe=1 -fi + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if RDMAoE support is enabled" >&5 -$as_echo_n "checking if RDMAoE support is enabled... " >&6; } + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -cat >>confdefs.h <<_ACEOF -#define OPAL_HAVE_RDMAOE $btl_openib_have_rdmaoe -_ACEOF + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "1" = "$btl_openib_have_rdmaoe"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + for arg in $btl_self_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - - # Check to see if works. It is known to - # create problems on some platforms with some compilers (e.g., - # RHEL4U3 with the PGI 32 bit compiler). Use undocumented (in AC - # 2.63) feature of AC_CHECK_HEADERS: if you explicitly pass in - # AC_INCLUDES_DEFAULT as the 4th arg to AC_CHECK_HEADERS, the test - # will fail if the header is present but not compilable, *but it - # will not print the big scary warning*. See - # http://lists.gnu.org/archive/html/autoconf/2008-10/msg00143.html. - if test "$opal_check_openib_happy" = "yes"; then : - for ac_header in infiniband/driver.h -do : - ac_fn_c_check_header_compile "$LINENO" "infiniband/driver.h" "ac_cv_header_infiniband_driver_h" "$ac_includes_default -" -if test "x$ac_cv_header_infiniband_driver_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_INFINIBAND_DRIVER_H 1 -_ACEOF - + done fi - -done - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ConnectX XRC support is enabled" >&5 -$as_echo_n "checking if ConnectX XRC support is enabled... " >&6; } - -cat >>confdefs.h <<_ACEOF -#define OPAL_HAVE_CONNECTX_XRC $opal_check_openib_have_xrc -_ACEOF - - if test "1" = "$opal_check_openib_have_xrc"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ConnectIB XRC support is enabled" >&5 -$as_echo_n "checking if ConnectIB XRC support is enabled... " >&6; } - -cat >>confdefs.h <<_ACEOF -#define OPAL_HAVE_CONNECTX_XRC_DOMAINS $opal_check_openib_have_xrc_domains -_ACEOF - if test "1" = "$opal_check_openib_have_xrc_domains"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if dynamic SL is enabled" >&5 -$as_echo_n "checking if dynamic SL is enabled... " >&6; } + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -cat >>confdefs.h <<_ACEOF -#define OPAL_ENABLE_DYNAMIC_SL $opal_check_openib_have_opensm_devel -_ACEOF + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "1" = "$opal_check_openib_have_opensm_devel"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - btl_openib_LIBS="-losmcomp $btl_openib_LIBS" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - if test -z "$opal_verbs_dir"; then : - openib_include_dir="/usr/include" -else - openib_include_dir="$opal_verbs_dir/include" fi - opal_check_openib_CPPFLAGS="$opal_check_openib_CPPFLAGS -I$openib_include_dir/infiniband" - CPPFLAGS="$ompi_check_openib_btl_openib_save_CPPFLAGS" - LDFLAGS="$ompi_check_openib_btl_openib_save_LDFLAGS" - LIBS="$ompi_check_openib_btl_openib_save_LIBS" + fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$btl_self_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -111557,7 +112270,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -111576,7 +112289,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -111584,20 +112297,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="OpenFabrics Verbs: $opal_check_openib_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + for arg in $btl_self_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done # Unwind the index @@ -111621,200 +112338,172 @@ done +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_self_WRAPPER_EXTRA_CPPFLAGS ($btl_self_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring btl_self_WRAPPER_EXTRA_CPPFLAGS ($btl_self_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + else - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:self can compile" >&5 +$as_echo_n "checking if MCA component btl:self can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_btl" = "self" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"self\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"self\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test ! -z "$DIRECT_btl" ; then + if test "$DIRECT_btl" = "self" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"self\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"self\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # add component to all component list + all_components="$all_components self" + fi + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_opal_btl_self_DSO=1 + else + BUILD_opal_btl_self_DSO=0 fi + if test "$BUILD_opal_btl_self_DSO" = "1"; then + MCA_BUILD_opal_btl_self_DSO_TRUE= + MCA_BUILD_opal_btl_self_DSO_FALSE='#' +else + MCA_BUILD_opal_btl_self_DSO_TRUE='#' + MCA_BUILD_opal_btl_self_DSO_FALSE= +fi - btl_openib_have_xrc=$opal_check_openib_have_xrc - btl_openib_have_xrc_domains=$opal_check_openib_have_xrc_domains - btl_openib_have_opensm_devel=$opal_check_openib_have_opensm_devel - if test "$opal_check_openib_happy" = "yes"; then : - btl_openib_CPPFLAGS="$btl_openib_CPPFLAGS $opal_check_openib_CPPFLAGS" - btl_openib_LDFLAGS="$btl_openib_LDFLAGS $opal_check_openib_LDFLAGS" - btl_openib_LIBS="$btl_openib_LIBS $opal_check_openib_LIBS" - btl_openib_happy="yes" + ac_config_files="$ac_config_files opal/mca/btl/self/Makefile" - btl_openib_have_udcm=0 - btl_openib_have_rdmacm=0 + unset compile_mode - ompi_check_openib_btl_openib_save_CPPFLAGS="$CPPFLAGS" - ompi_check_openib_btl_openib_save_LDFLAGS="$LDFLAGS" - ompi_check_openib_btl_openib_save_LIBS="$LIBS" - # add back in all the InfiniBand flags so that these tests might work... - CPPFLAGS="$CPPFLAGS $btl_openib_CPPFLAGS" - LDFLAGS="$LDFLAGS $btl_openib_LDFLAGS" - LIBS="$LIBS $btl_openib_LIBS" + # configure components that use built-in configuration scripts - if test "$opal_check_openib_happy" = "yes"; then : - # Do we have a recent enough RDMA CM? Need to have the - # rdma_get_peer_addr (inline) function (originally appeared - # in OFED v1.3). - if test "$enable_openib_rdmacm" != "no"; then - for ac_header in rdma/rdma_cma.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "rdma/rdma_cma.h" "ac_cv_header_rdma_rdma_cma_h" "$ac_includes_default" -if test "x$ac_cv_header_rdma_rdma_cma_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_RDMA_RDMA_CMA_H 1 -_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rdma_create_id in -lrdmacm" >&5 -$as_echo_n "checking for rdma_create_id in -lrdmacm... " >&6; } -if ${ac_cv_lib_rdmacm_rdma_create_id+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lrdmacm $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char rdma_create_id (); -int -main () -{ -return rdma_create_id (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_rdmacm_rdma_create_id=yes -else - ac_cv_lib_rdmacm_rdma_create_id=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rdmacm_rdma_create_id" >&5 -$as_echo "$ac_cv_lib_rdmacm_rdma_create_id" >&6; } -if test "x$ac_cv_lib_rdmacm_rdma_create_id" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rdma_get_peer_addr" >&5 -$as_echo_n "checking for rdma_get_peer_addr... " >&6; } - btl_openib_msg=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include "rdma/rdma_cma.h" -int -main () -{ -void *ret = (void*) rdma_get_peer_addr((struct rdma_cm_id*)0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - btl_openib_have_rdmacm=1 - btl_openib_msg=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $btl_openib_msg" >&5 -$as_echo "$btl_openib_msg" >&6; } -fi + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 -fi -done + opal_show_subsubsubtitle "MCA component btl:ofi (m4 configuration macro)" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - if test "1" = "$btl_openib_have_rdmacm"; then - btl_openib_LIBS="-lrdmacm $btl_openib_LIBS" - else - if test "$enable_openib_rdmacm" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-openib-rdmacm was specified but the" >&5 -$as_echo "$as_me: WARNING: --enable-openib-rdmacm was specified but the" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: appropriate files could not be found" >&5 -$as_echo "$as_me: WARNING: appropriate files could not be found" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Please install librdmacm and librdmacm-devel or disable rdmacm support" >&5 -$as_echo "$as_me: WARNING: Please install librdmacm and librdmacm-devel or disable rdmacm support" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -fi - fi - fi - # is udcm enabled - if test "$enable_openib_udcm" = "yes"; then - btl_openib_have_udcm=1 - fi -fi + component_path="$srcdir/opal/mca/btl/ofi" + want_component=0 - CPPFLAGS="$ompi_check_openib_btl_openib_save_CPPFLAGS" - LDFLAGS="$ompi_check_openib_btl_openib_save_LDFLAGS" - LIBS="$ompi_check_openib_btl_openib_save_LIBS" + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_btl" ; then + if test "$DIRECT_btl" = "ofi" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if UD CM is enabled" >&5 -$as_echo_n "checking if UD CM is enabled... " >&6; } + # if we were explicitly disabled, don't build :) + if test "$DISABLE_btl" = "1"; then : + want_component=0 +fi + if test "$DISABLE_btl_ofi" = "1"; then : + want_component=0 +fi -cat >>confdefs.h <<_ACEOF -#define OPAL_HAVE_UDCM $btl_openib_have_udcm -_ACEOF + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi - if test "1" = "$btl_openib_have_udcm"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if OpenFabrics RDMACM support is enabled" >&5 -$as_echo_n "checking if OpenFabrics RDMACM support is enabled... " >&6; } + SHARED_FRAMEWORK="$DSO_btl" + SHARED_COMPONENT="$DSO_btl_ofi" -cat >>confdefs.h <<_ACEOF -#define OPAL_HAVE_RDMACM $btl_openib_have_rdmacm -_ACEOF + STATIC_FRAMEWORK="$STATIC_btl" + STATIC_COMPONENT="$STATIC_btl_ofi" - if test "1" = "$btl_openib_have_rdmacm"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + compile_mode="static" fi -else - if test "$opal_want_verbs" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Verbs support requested (via --with-verbs) but not found." >&5 -$as_echo "$as_me: WARNING: Verbs support requested (via --with-verbs) but not found." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: If you are using libibverbs v1.0 (i.e., OFED v1.0 or v1.1), you *MUST* have both the libsysfs headers and libraries installed. Later versions of libibverbs do not require libsysfs." >&5 -$as_echo "$as_me: WARNING: If you are using libibverbs v1.0 (i.e., OFED v1.0 or v1.1), you *MUST* have both the libsysfs headers and libraries installed. Later versions of libibverbs do not require libsysfs." >&2;} - as_fn_error $? "Aborting." "$LINENO" 5 -fi - btl_openib_happy="no" -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:ofi compile mode" >&5 +$as_echo_n "checking for MCA component btl:ofi compile mode... " >&6; } + if test "$DIRECT_btl" = "ofi" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + # try to configure the component @@ -111827,7 +112516,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in have_struct_ibv_exp_send_wr; do + for opal_var in opal_btl_ofi_happy CPPFLAGS_save; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -111846,7 +112535,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"have_struct_ibv_exp_send_wr\"" + opal_str="opal_scope_$opal_scope_index=\"opal_btl_ofi_happy CPPFLAGS_save\"" eval $opal_str unset opal_str @@ -111854,342 +112543,134 @@ opal_scope_index=`expr $opal_scope_index + 1` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether expanded verbs are available" >&5 -$as_echo_n "checking whether expanded verbs are available... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -struct ibv_exp_send_wr; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - have_struct_ibv_exp_send_wr=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - have_struct_ibv_exp_send_wr=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_config_files="$ac_config_files opal/mca/btl/ofi/Makefile" -cat >>confdefs.h <<_ACEOF -#define HAVE_EXP_VERBS $have_struct_ibv_exp_send_wr -_ACEOF + # Check for OFI - ac_fn_c_check_decl "$LINENO" "IBV_EXP_ATOMIC_HCA_REPLY_BE" "ac_cv_have_decl_IBV_EXP_ATOMIC_HCA_REPLY_BE" "#include -" -if test "x$ac_cv_have_decl_IBV_EXP_ATOMIC_HCA_REPLY_BE" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + # Check for OFI libfabric. Note that $opal_ofi_happy is used in + # other configure.m4's to know if OFI/libfabric configured + # successfully. We only need to run the back-end checks once, but + # at least emit a "checking..." statement each subsequent time + # this macro is invoked so that configure's stdout has + # sensible/logical output. + if test -z "$opal_ofi_happy"; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_EXP_ATOMIC_HCA_REPLY_BE $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "IBV_EXP_QP_CREATE_ATOMIC_BE_REPLY" "ac_cv_have_decl_IBV_EXP_QP_CREATE_ATOMIC_BE_REPLY" "#include -" -if test "x$ac_cv_have_decl_IBV_EXP_QP_CREATE_ATOMIC_BE_REPLY" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + # Add --with options -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_EXP_QP_CREATE_ATOMIC_BE_REPLY $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ibv_exp_create_qp" "ac_cv_have_decl_ibv_exp_create_qp" "#include -" -if test "x$ac_cv_have_decl_ibv_exp_create_qp" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 +# Check whether --with-libfabric was given. +if test "${with_libfabric+set}" = set; then : + withval=$with_libfabric; fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_EXP_CREATE_QP $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ibv_exp_query_device" "ac_cv_have_decl_ibv_exp_query_device" "#include -" -if test "x$ac_cv_have_decl_ibv_exp_query_device" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_EXP_QUERY_DEVICE $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "IBV_EXP_QP_INIT_ATTR_ATOMICS_ARG" "ac_cv_have_decl_IBV_EXP_QP_INIT_ATTR_ATOMICS_ARG" "#include -" -if test "x$ac_cv_have_decl_IBV_EXP_QP_INIT_ATTR_ATOMICS_ARG" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 +# Check whether --with-libfabric-libdir was given. +if test "${with_libfabric_libdir+set}" = set; then : + withval=$with_libfabric_libdir; fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IBV_EXP_QP_INIT_ATTR_ATOMICS_ARG $ac_have_decl -_ACEOF - - ac_fn_c_check_member "$LINENO" "struct ibv_exp_device_attr" "ext_atom" "ac_cv_member_struct_ibv_exp_device_attr_ext_atom" "#include -" -if test "x$ac_cv_member_struct_ibv_exp_device_attr_ext_atom" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_IBV_EXP_DEVICE_ATTR_EXT_ATOM 1 -_ACEOF +# Check whether --with-ofi was given. +if test "${with_ofi+set}" = set; then : + withval=$with_ofi; fi -ac_fn_c_check_member "$LINENO" "struct ibv_exp_device_attr" "exp_atomic_cap" "ac_cv_member_struct_ibv_exp_device_attr_exp_atomic_cap" "#include -" -if test "x$ac_cv_member_struct_ibv_exp_device_attr_exp_atomic_cap" = xyes; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_IBV_EXP_DEVICE_ATTR_EXP_ATOMIC_CAP 1 -_ACEOF +# Check whether --with-ofi-libdir was given. +if test "${with_ofi_libdir+set}" = set; then : + withval=$with_ofi_libdir; fi - if test '$have_struct_ibv_exp_send_wr' = 1; then : - btl_openib -fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$with_ofi" = ""; then + with_ofi=$with_libfabric fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - - if test "$btl_openib_happy" = "yes"; then : - # With the new openib flags, look for ibv_fork_init - btl_openib_LDFLAGS_save="$LDFLAGS" - btl_openib_LIBS_save="$LIBS" - LDFLAGS="$LDFLAGS $btl_openib_LDFLAGS" - LIBS="$LIBS $btl_openib_LIBS" - for ac_func in ibv_fork_init -do : - ac_fn_c_check_func "$LINENO" "ibv_fork_init" "ac_cv_func_ibv_fork_init" -if test "x$ac_cv_func_ibv_fork_init" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_IBV_FORK_INIT 1 -_ACEOF + if test "$with_ofi_libdir" = ""; then + with_ofi_libdir=$with_libfabric_libdir + fi -fi -done + # Sanity check the --with values - LDFLAGS="$btl_openib_LDFLAGS_save" - LIBS="$btl_openib_LIBS_save" - should_build=$should_build + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ofi value" >&5 +$as_echo_n "checking --with-ofi value... " >&6; } + if test "$with_ofi" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ofi)" >&5 +$as_echo "simple no (specified --without-ofi)" >&6; } else - should_build=0 -fi - - if test "$btl_openib_happy" = "yes"; then : - if test "x$btl_openib_have_xrc" = "x1"; then - cpcs="$cpcs xoob" - fi - if test "x$btl_openib_have_rdmacm" = "x1"; then - cpcs="$cpcs rdmacm" - if test "$enable_openib_rdmacm_ibaddr" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking IB addressing" >&5 -$as_echo_n "checking IB addressing... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #ifdef AF_IB - yes - #endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - - for ac_header in rdma/rsocket.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "rdma/rsocket.h" "ac_cv_header_rdma_rsocket_h" "$ac_includes_default" -if test "x$ac_cv_header_rdma_rsocket_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_RDMA_RSOCKET_H 1 -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define BTL_OPENIB_RDMACM_IB_ADDR 1" >>confdefs.h - - + if test "$with_ofi" = "yes" || test "x$with_ofi" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define BTL_OPENIB_RDMACM_IB_ADDR 0" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: There is no IB_AF addressing support by lib rdmacm." >&5 -$as_echo "$as_me: WARNING: There is no IB_AF addressing support by lib rdmacm." >&2;} - - -fi - -done - + if test ! -d "$with_ofi"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ofi not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ofi not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 else - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define BTL_OPENIB_RDMACM_IB_ADDR 0" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: There is no IB_AF addressing support by lib rdmacm." >&5 -$as_echo "$as_me: WARNING: There is no IB_AF addressing support by lib rdmacm." >&2;} + if test "x`ls $with_ofi/include/rdma/fabric.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ofi/include/rdma/fabric.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ofi/include/rdma/fabric.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ofi)" >&5 +$as_echo "sanity check ok ($with_ofi)" >&6; } fi -rm -f conftest* - - else -$as_echo "#define BTL_OPENIB_RDMACM_IB_ADDR 0" >>confdefs.h - fi - fi - if test "x$btl_openib_have_udcm" = "x1"; then - cpcs="$cpcs udcm" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking which openib btl cpcs will be built" >&5 -$as_echo_n "checking which openib btl cpcs will be built... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cpcs" >&5 -$as_echo "$cpcs" >&6; } fi - # make sure that CUDA-aware checks have been done - - - # substitute in the things needed to build openib - - - - - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ofi-libdir value" >&5 +$as_echo_n "checking --with-ofi-libdir value... " >&6; } + if test "$with_ofi_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ofi-libdir)" >&5 +$as_echo "simple no (specified --without-ofi-libdir)" >&6; } +else + if test "$with_ofi_libdir" = "yes" || test "x$with_ofi_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_ofi_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ofi_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ofi_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_ofi_libdir/libfabric.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ofi_libdir/libfabric.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ofi_libdir/libfabric.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ofi_libdir)" >&5 +$as_echo "sanity check ok ($with_ofi_libdir)" >&6; } +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/btl/openib/post_configure.sh" +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components openib" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components openib" - else - if test "btl" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/btl/openib/lib${OPAL_LIB_PREFIX}mca_btl_openib.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/btl/openib/libmca_btl_openib.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_btl_openib_component;" >> $outfile.extern - echo " &mca_btl_openib_component, " >> $outfile.struct - static_components="$static_components openib" - fi +fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:openib can compile" >&5 -$as_echo_n "checking if MCA component btl:openib can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_btl" = "openib" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** btl component openib was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_btl" = "openib" ; then -as_fn_error $? "*** btl component openib was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$btl_openib_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -112202,7 +112683,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_check_ofi_save_CPPFLAGS opal_check_ofi_save_LDFLAGS opal_check_ofi_save_LIBS opal_check_fi_info_pci; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -112221,56 +112702,55 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_check_ofi_save_CPPFLAGS opal_check_ofi_save_LDFLAGS opal_check_ofi_save_LIBS opal_check_fi_info_pci\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` + opal_check_ofi_save_CPPFLAGS=$CPPFLAGS + opal_check_ofi_save_LDFLAGS=$LDFLAGS + opal_check_ofi_save_LIBS=$LIBS + opal_check_fi_info_pci=0 - for arg in $btl_openib_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + opal_ofi_happy=yes + if test "$with_ofi" = "no"; then : + opal_ofi_happy=no fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + + if test $opal_ofi_happy = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking looking for OFI libfabric in" >&5 +$as_echo_n "checking looking for OFI libfabric in... " >&6; } + if test "$with_ofi" != "yes"; then : + opal_ofi_dir=$with_ofi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ($opal_ofi_dir)" >&5 +$as_echo "($opal_ofi_dir)" >&6; } else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 +$as_echo "(default search paths)" >&6; } fi + if test ! -z "$with_ofi_libdir" && \ + test "$with_ofi_libdir" != "yes"; then : + opal_ofi_libdir=$with_ofi_libdir fi - done +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test $opal_ofi_happy = yes; then : - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + opal_check_package_opal_ofi_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_opal_ofi_save_LDFLAGS="$LDFLAGS" + opal_check_package_opal_ofi_save_LIBS="$LIBS" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + opal_check_package_opal_ofi_orig_CPPFLAGS="$opal_ofi_CPPFLAGS" + opal_check_package_opal_ofi_orig_LDFLAGS="$opal_ofi_LDFLAGS" + opal_check_package_opal_ofi_orig_LIBS="$opal_ofi_LIBS" -else + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -112283,7 +112763,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -112302,7 +112782,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -112310,49 +112790,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_openib_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_rdma_fabric_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $opal_ofi_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in rdma/fabric.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "rdma/fabric.h" "ac_cv_header_rdma_fabric_h" "$ac_includes_default" +if test "x$ac_cv_header_rdma_fabric_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_RDMA_FABRIC_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_rdma_fabric_h fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + opal_ofi_CPPFLAGS="$opal_ofi_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in rdma/fabric.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "rdma/fabric.h" "ac_cv_header_rdma_fabric_h" "$ac_includes_default" +if test "x$ac_cv_header_rdma_fabric_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_RDMA_FABRIC_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_fi_getinfo + opal_check_package_lib_happy="no" + if test "$opal_ofi_libdir" != ""; then : + # libdir was specified - search only there + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_ofi_libdir" + LDFLAGS="$LDFLAGS -L$opal_ofi_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : + +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - done + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_ofi_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo fi - if test "$btl_openib_WRAPPER_EXTRA_LIBS" = ""; then : +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : + +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -112365,7 +113153,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -112384,56 +113172,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $btl_openib_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -112446,7 +113194,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -112465,7 +113213,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -112473,546 +113221,349 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_openib_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$btl_openib_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libfabric requires libnl v1 or v3" >&5 +$as_echo_n "checking if libfabric requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void fi_getinfo (void); +int main(int argc, char *argv[]) { + fi_getinfo (); + return 0; +} +EOF - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:113248: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS 1>&5 2>&1 +opal_status=$? - for arg in $btl_openib_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:113255: \$? = $opal_status" >&5 else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - + echo \$? = $opal_status >&5 fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_openib_WRAPPER_EXTRA_CPPFLAGS ($btl_openib_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring btl_openib_WRAPPER_EXTRA_CPPFLAGS ($btl_openib_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib fabric" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib fabric" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:openib can compile" >&5 -$as_echo_n "checking if MCA component btl:openib can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_btl" = "openib" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"openib\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"openib\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "openib" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"openib\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"openib\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components openib" fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - if test $should_build -eq 1 && test "x$btl_openib_have_xrc" = "x1"; then - MCA_btl_openib_have_xrc_TRUE= - MCA_btl_openib_have_xrc_FALSE='#' -else - MCA_btl_openib_have_xrc_TRUE='#' - MCA_btl_openib_have_xrc_FALSE= -fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - if test $should_build -eq 1 && test "x$btl_openib_have_rdmacm" = "x1"; then - MCA_btl_openib_have_rdmacm_TRUE= - MCA_btl_openib_have_rdmacm_FALSE='#' -else - MCA_btl_openib_have_rdmacm_TRUE='#' - MCA_btl_openib_have_rdmacm_FALSE= -fi + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&2;} - if test $should_build -eq 1 && test "x$btl_openib_have_opensm_devel" = "x1"; then - MCA_btl_openib_have_dynamic_sl_TRUE= - MCA_btl_openib_have_dynamic_sl_FALSE='#' -else - MCA_btl_openib_have_dynamic_sl_TRUE='#' - MCA_btl_openib_have_dynamic_sl_FALSE= -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} - if test $should_build -eq 1 && test "x$btl_openib_have_udcm" = "x1"; then - MCA_btl_openib_have_udcm_TRUE= - MCA_btl_openib_have_udcm_FALSE='#' -else - MCA_btl_openib_have_udcm_TRUE='#' - MCA_btl_openib_have_udcm_FALSE= + libnl_sane=0 fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_btl_openib_DSO=1 -else - BUILD_opal_btl_openib_DSO=0 -fi - if test "$BUILD_opal_btl_openib_DSO" = "1"; then - MCA_BUILD_opal_btl_openib_DSO_TRUE= - MCA_BUILD_opal_btl_openib_DSO_FALSE='#' + libnl_sane=0 else - MCA_BUILD_opal_btl_openib_DSO_TRUE='#' - MCA_BUILD_opal_btl_openib_DSO_FALSE= -fi + opal_libnlv1_libs="$opal_libnlv1_libs fabric" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi +# Go through each item in the variable and only keep the unique ones - unset compile_mode +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - opal_show_subsubsubtitle "MCA component btl:portals4 (m4 configuration macro)" + # Check the ending condition - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter + opal_i="`expr $opal_i + 1`" + done - component_path="$srcdir/opal/mca/btl/portals4" - want_component=0 + # If we didn't find the token, add it to the "array" - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "portals4" ; then - want_component=1 - else - want_component=0 - fi - fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # if we were explicitly disabled, don't build :) - if test "$DISABLE_btl" = "1"; then : - want_component=0 -fi - if test "$DISABLE_btl_portals4" = "1"; then : - want_component=0 -fi +# Take all the items in the "array" and assemble them back into a +# single variable - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - SHARED_FRAMEWORK="$DSO_btl" - SHARED_COMPONENT="$DSO_btl_portals4" + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - STATIC_FRAMEWORK="$STATIC_btl" - STATIC_COMPONENT="$STATIC_btl_portals4" +# Done; do the assignment - shared_mode_override=static +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +# Clean up - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:portals4 compile mode" >&5 -$as_echo_n "checking for MCA component btl:portals4 compile mode... " >&6; } - if test "$DIRECT_btl" = "portals4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi +fi - # try to configure the component + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&2;} - ac_config_files="$ac_config_files opal/mca/btl/portals4/Makefile" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs fabric" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - if test -z "$ompi_check_portals4_happy" ; then +# Go through each item in the variable and only keep the unique ones -# Check whether --with-portals4 was given. -if test "${with_portals4+set}" = set; then : - withval=$with_portals4; -fi +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-portals4 value" >&5 -$as_echo_n "checking --with-portals4 value... " >&6; } - if test "$with_portals4" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-portals4)" >&5 -$as_echo "simple no (specified --without-portals4)" >&6; } -else - if test "$with_portals4" = "yes" || test "x$with_portals4" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_portals4"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_portals4 not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_portals4 not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_portals4/include/portals4.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_portals4/include/portals4.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_portals4/include/portals4.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_portals4)" >&5 -$as_echo "sanity check ok ($with_portals4)" >&6; } + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do -fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` -fi + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" -fi + # Increment the counter + opal_i="`expr $opal_i + 1`" + done -fi + # If we didn't find the token, add it to the "array" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done -# Check whether --with-portals4-libdir was given. -if test "${with_portals4_libdir+set}" = set; then : - withval=$with_portals4_libdir; -fi +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-portals4-libdir value" >&5 -$as_echo_n "checking --with-portals4-libdir value... " >&6; } - if test "$with_portals4_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-portals4-libdir)" >&5 -$as_echo "simple no (specified --without-portals4-libdir)" >&6; } -else - if test "$with_portals4_libdir" = "yes" || test "x$with_portals4_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_portals4_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_portals4_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_portals4_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_portals4_libdir/libportals.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_portals4_libdir/libportals.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_portals4_libdir/libportals.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_portals4_libdir)" >&5 -$as_echo "sanity check ok ($with_portals4_libdir)" >&6; } + opal_eval="unset opal_array_$opal_i" + eval $opal_eval -fi + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment -fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi - fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - ompi_check_portals4_btl_portals4_save_CPPFLAGS="$CPPFLAGS" - ompi_check_portals4_btl_portals4_save_LDFLAGS="$LDFLAGS" - ompi_check_portals4_btl_portals4_save_LIBS="$LIBS" - - if test "$with_portals4" != "no"; then : - if test ! -z "$with_portals4" && test "$with_portals4" != "yes"; then : - ompi_check_portals4_dir="$with_portals4" -fi - if test ! -z "$with_portals4_libdir" && test "$with_portals4_libdir" != "yes"; then : - ompi_check_portals4_libdir="$with_portals4_libdir" -fi - + rm -f conftest conftest_c.$ac_ext - opal_check_package_opal_check_portals4_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_opal_check_portals4_save_LDFLAGS="$LDFLAGS" - opal_check_package_opal_check_portals4_save_LIBS="$LIBS" + opal_libnl_sane=$libnl_sane - opal_check_package_opal_check_portals4_orig_CPPFLAGS="$opal_check_portals4_CPPFLAGS" - opal_check_package_opal_check_portals4_orig_LDFLAGS="$opal_check_portals4_LDFLAGS" - opal_check_package_opal_check_portals4_orig_LIBS="$opal_check_portals4_LIBS" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + ;; + esac - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_check_package_libnl_check_ok=$opal_libnl_sane - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_portals4_h - # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_portals4_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in portals4.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "portals4.h" "ac_cv_header_portals4_h" "$ac_includes_default" -if test "x$ac_cv_header_portals4_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PORTALS4_H 1 -_ACEOF - opal_check_package_header_happy="yes" + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_portals4_h -fi fi - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - opal_check_portals4_CPPFLAGS="$opal_check_portals4_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_fi_getinfo" != "no" && + test "$ac_cv_search_fi_getinfo" != "none required"; then : + opal_ofi_LIBS="$ac_cv_search_fi_getinfo " +else + opal_ofi_LIBS="" fi - for ac_header in portals4.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "portals4.h" "ac_cv_header_portals4_h" "$ac_includes_default" -if test "x$ac_cv_header_portals4_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PORTALS4_H 1 -_ACEOF - opal_check_package_header_happy="yes" + opal_check_package_happy="yes" +else + opal_check_package_happy="no" fi -done - if test "$opal_check_package_header_happy" = "yes"; then : +else + opal_check_package_happy="no" +fi +else # This is stolen from autoconf to peek under the covers to get the # cache variable for the library check. one should not copy this @@ -113020,15 +113571,15 @@ # see comment above - unset ac_cv_search_PtlLEAppend + unset ac_cv_search_fi_getinfo opal_check_package_lib_happy="no" - if test "$ompi_check_portals4_libdir" != ""; then : + if test "$opal_ofi_libdir" != ""; then : # libdir was specified - search only there - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$ompi_check_portals4_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_portals4_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_ofi_libdir" + LDFLAGS="$LDFLAGS -L$opal_ofi_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -113041,16 +113592,16 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char fi_getinfo (); int main () { -return PtlLEAppend (); +return fi_getinfo (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' fabric; do if test -z "$ac_lib"; then ac_res="none required" else @@ -113058,25 +113609,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_fi_getinfo=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_fi_getinfo+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_fi_getinfo+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_fi_getinfo=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -113085,22 +113636,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo fi else # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_portals4_dir" + opal_check_package_libdir="$opal_ofi_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -113113,16 +113664,16 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char fi_getinfo (); int main () { -return PtlLEAppend (); +return fi_getinfo (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' fabric; do if test -z "$ac_lib"; then ac_res="none required" else @@ -113130,25 +113681,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_fi_getinfo=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_fi_getinfo+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_fi_getinfo+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_fi_getinfo=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -113158,21 +113709,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib" + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -113185,16 +113736,16 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char fi_getinfo (); int main () { -return PtlLEAppend (); +return fi_getinfo (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' fabric; do if test -z "$ac_lib"; then ac_res="none required" else @@ -113202,25 +113753,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_fi_getinfo=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_fi_getinfo+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_fi_getinfo+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_fi_getinfo=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -113230,22 +113781,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib64" + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -113258,16 +113809,16 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char fi_getinfo (); int main () { -return PtlLEAppend (); +return fi_getinfo (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' fabric; do if test -z "$ac_lib"; then ac_res="none required" else @@ -113275,25 +113826,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_fi_getinfo=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_fi_getinfo+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_fi_getinfo+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_fi_getinfo=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -113303,9 +113854,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo fi fi fi @@ -113402,12 +113953,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libportals requires libnl v1 or v3" >&5 -$as_echo_n "checking if libportals requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libfabric requires libnl v1 or v3" >&5 +$as_echo_n "checking if libfabric requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void PtlLEAppend (void); +extern void fi_getinfo (void); int main(int argc, char *argv[]) { - PtlLEAppend (); + fi_getinfo (); return 0; } EOF @@ -113419,14 +113970,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:113422: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS 1>&5 2>&1 +echo "configure:113973: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:113429: \$? = $opal_status" >&5 + echo "configure:113980: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -113446,8 +113997,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib portals" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib portals" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib fabric" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib fabric" >&2;} fi @@ -113461,15 +114012,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} libnl_sane=0 fi @@ -113478,19 +114029,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs portals" + opal_libnlv1_libs="$opal_libnlv1_libs fabric" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -113569,19 +114120,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs portals" + opal_libnlv3_libs="$opal_libnlv3_libs fabric" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -113722,11 +114273,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_PtlLEAppend" != "no" && - test "$ac_cv_search_PtlLEAppend" != "none required"; then : - opal_check_portals4_LIBS="$ac_cv_search_PtlLEAppend " + if test "$ac_cv_search_fi_getinfo" != "no" && + test "$ac_cv_search_fi_getinfo" != "none required"; then : + opal_ofi_LIBS="$ac_cv_search_fi_getinfo " else - opal_check_portals4_LIBS="" + opal_ofi_LIBS="" fi opal_check_package_happy="yes" else @@ -113734,353 +114285,114 @@ fi -else - opal_check_package_happy="no" fi -else + unset opal_check_package_header_happy - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # see comment above - unset ac_cv_search_PtlLEAppend - opal_check_package_lib_happy="no" - if test "$ompi_check_portals4_libdir" != ""; then : - # libdir was specified - search only there - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$ompi_check_portals4_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_portals4_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PtlLEAppend (); -int -main () -{ -return PtlLEAppend (); - ; - return 0; -} -_ACEOF -for ac_lib in '' portals; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : - break -fi -done -if ${ac_cv_search_PtlLEAppend+:} false; then : + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + + if test "$opal_check_package_happy" = "yes"; then : else - ac_cv_search_PtlLEAppend=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" + opal_ofi_CPPFLAGS="$opal_check_package_opal_ofi_orig_CPPFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + opal_ofi_LIBS="$opal_check_package_opal_ofi_orig_LIBS" + opal_ofi_happy=no fi - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + CPPFLAGS="$opal_check_package_opal_ofi_save_CPPFLAGS" + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + LIBS="$opal_check_package_opal_ofi_save_LIBS" + fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_portals4_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PtlLEAppend (); -int -main () -{ -return PtlLEAppend (); - ; - return 0; -} + CPPFLAGS="$CPPFLAGS $opal_ofi_CPPFLAGS" + + if test $opal_ofi_happy = yes; then : + for ac_header in rdma/fi_ext.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "rdma/fi_ext.h" "ac_cv_header_rdma_fi_ext_h" "$ac_includes_default" +if test "x$ac_cv_header_rdma_fi_ext_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_RDMA_FI_EXT_H 1 _ACEOF -for ac_lib in '' portals; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : - break + fi + done -if ${ac_cv_search_PtlLEAppend+:} false; then : + + ac_fn_c_check_member "$LINENO" "struct fi_info" "nic" "ac_cv_member_struct_fi_info_nic" "#include +" +if test "x$ac_cv_member_struct_fi_info_nic" = xyes; then : + opal_check_fi_info_pci=1 else - ac_cv_search_PtlLEAppend=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" + opal_check_fi_info_pci=0 fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend -fi -fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PtlLEAppend (); -int -main () -{ -return PtlLEAppend (); - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define OPAL_OFI_PCI_DATA_AVAILABLE $opal_check_fi_info_pci _ACEOF -for ac_lib in '' portals; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : - break -fi -done -if ${ac_cv_search_PtlLEAppend+:} false; then : + + ac_fn_c_check_decl "$LINENO" "PMIX_PACKAGE_RANK" "ac_cv_have_decl_PMIX_PACKAGE_RANK" "#include +" +if test "x$ac_cv_have_decl_PMIX_PACKAGE_RANK" = xyes; then : + ac_have_decl=1 else - ac_cv_search_PtlLEAppend=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" + ac_have_decl=0 fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend -fi -fi -fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_PMIX_PACKAGE_RANK $ac_have_decl +_ACEOF - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" + ac_fn_c_check_type "$LINENO" "struct fi_ops_mem_monitor" "ac_cv_type_struct_fi_ops_mem_monitor" "#ifdef HAVE_RDMA_FI_EXT_H +#include #endif -char PtlLEAppend (); -int -main () -{ -return PtlLEAppend (); - ; - return 0; -} +" +if test "x$ac_cv_type_struct_fi_ops_mem_monitor" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_FI_OPS_MEM_MONITOR 1 _ACEOF -for ac_lib in '' portals; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : - break -fi -done -if ${ac_cv_search_PtlLEAppend+:} false; then : -else - ac_cv_search_PtlLEAppend=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend -fi fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. - +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + CPPFLAGS=$opal_check_ofi_save_CPPFLAGS + LDFLAGS=$opal_check_ofi_save_LDFLAGS + LIBS=$opal_check_ofi_save_LIBS - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) @@ -114093,7 +114405,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -114112,7 +114424,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -114120,276 +114432,20 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libportals requires libnl v1 or v3" >&5 -$as_echo_n "checking if libportals requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void PtlLEAppend (void); -int main(int argc, char *argv[]) { - PtlLEAppend (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:114147: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:114154: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib portals" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib portals" >&2;} - -fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} - - libnl_sane=0 -fi - - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} - - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs portals" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" - - # Increment the counter - - opal_i="`expr $opal_i + 1`" - done - - # If we didn't find the token, add it to the "array" - - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval - -# Clean up - -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi - -fi - - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} - - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs portals" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" - - # Increment the counter - - opal_i="`expr $opal_i + 1`" - done - - # If we didn't find the token, add it to the "array" + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="OpenFabrics OFI Libfabric: $opal_ofi_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" else - opal_i="`expr $opal_i - 1`" + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval - -# Clean up - -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi - -fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane # Unwind the index @@ -114413,10 +114469,7 @@ done - ;; - esac - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -114439,180 +114492,42 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_PtlLEAppend" != "no" && - test "$ac_cv_search_PtlLEAppend" != "none required"; then : - opal_check_portals4_LIBS="$ac_cv_search_PtlLEAppend " -else - opal_check_portals4_LIBS="" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi - - + if test $opal_ofi_happy = no; then : + if test -n "$with_ofi" && test "$with_ofi" != "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OFI libfabric support requested (via --with-ofi or --with-libfabric), but not found." >&5 +$as_echo "$as_me: WARNING: OFI libfabric support requested (via --with-ofi or --with-libfabric), but not found." >&2;} + as_fn_error $? "Cannot continue." "$LINENO" 5 fi - unset opal_check_package_header_happy - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_portals4_happy="yes" -else - opal_check_portals4_CPPFLAGS="$opal_check_package_opal_check_portals4_orig_CPPFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - opal_check_portals4_LIBS="$opal_check_package_opal_check_portals4_orig_LIBS" - ompi_check_portals4_happy="no" fi - CPPFLAGS="$opal_check_package_opal_check_portals4_save_CPPFLAGS" - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - LIBS="$opal_check_package_opal_check_portals4_save_LIBS" - else - ompi_check_portals4_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if OFI libfabric is available" >&5 +$as_echo_n "checking if OFI libfabric is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_ofi_happy" >&5 +$as_echo "$opal_ofi_happy" >&6; } fi - CPPFLAGS="$ompi_check_portals4_btl_portals4_save_CPPFLAGS" - LDFLAGS="$ompi_check_portals4_btl_portals4_save_LDFLAGS" - LIBS="$ompi_check_portals4_btl_portals4_save_LIBS" - - max_md_size=0 - -# Check whether --with-portals4-max-md-size was given. -if test "${with_portals4_max_md_size+set}" = set; then : - withval=$with_portals4_max_md_size; -fi - if test "$with_portals4_max_md_size" = "yes" || test "$with_portals4_max_md_size" = "no"; then : - as_fn_error $? "--with-portals4-max-md-size requires an integer argument" "$LINENO" 5 -else - if test -n "$with_portals4_max_md_size"; then : - max_md_size="$with_portals4_max_md_size" -fi + opal_btl_ofi_happy=0 + if test "$opal_ofi_happy" = "yes"; then : + CPPFLAGS_save=$CPPFLAGS + CPPFLAGS="$opal_ofi_CPPFLAGS $CPPFLAGS" + ac_fn_c_check_decl "$LINENO" "FI_MR_VIRT_ADDR" "ac_cv_have_decl_FI_MR_VIRT_ADDR" "#include +" +if test "x$ac_cv_have_decl_FI_MR_VIRT_ADDR" = xyes; then : + opal_btl_ofi_happy=1 fi -cat >>confdefs.h <<_ACEOF -#define OPAL_PORTALS4_MAX_MD_SIZE $max_md_size -_ACEOF - - - max_va_size=0 - -# Check whether --with-portals4-max-va-size was given. -if test "${with_portals4_max_va_size+set}" = set; then : - withval=$with_portals4_max_va_size; + CPPFLAGS=$CPPFLAGS_save fi - - if test "$with_portals4_max_va_size" = "yes" || test "$with_portals4_max_va_size" = "no"; then : - as_fn_error $? "--with-portals4-max-va-size requires an integer argument" "$LINENO" 5 + if test $opal_btl_ofi_happy -eq 1; then : + should_build=$should_build else - if test -n "$with_portals4_max_va_size"; then : - max_va_size="$with_portals4_max_va_size" -fi -fi - -cat >>confdefs.h <<_ACEOF -#define OPAL_PORTALS4_MAX_VA_SIZE $max_va_size -_ACEOF - - - if (test $max_md_size -eq 0 && test $max_va_size -ne 0 ) || (test $max_md_size -ne 0 && test $max_va_size -eq 0 ); then : - as_fn_error $? "If either --with-portals4-max-md-size or --with-portals4-max-va-size is set, both must be set." "$LINENO" 5 -fi - if test $max_md_size -ge $max_va_size; then : - max_md_size=0 - max_va_size=0 -fi - if test $max_md_size -ne 0 && test $max_va_size -ne 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: Portals 4 address space size: $max_md_size, $max_va_size" >&5 -$as_echo "$as_me: Portals 4 address space size: $max_md_size, $max_va_size" >&6;} + should_build=0 fi - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Portals4: $ompi_check_portals4_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi - - # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` opal_scope_test=`expr $opal_scope_index \> 0` @@ -114634,69 +114549,6 @@ done - fi - - if test "$ompi_check_portals4_happy" = "yes"; then : - btl_portals4_LDFLAGS="$btl_portals4_LDFLAGS $opal_check_portals4_LDFLAGS" - btl_portals4_CPPFLAGS="$btl_portals4_CPPFLAGS $opal_check_portals4_CPPFLAGS" - btl_portals4_LIBS="$btl_portals4_LIBS $opal_check_portals4_LIBS" - btl_portals4_happy="yes" -else - if test ! -z "$with_portals4" && test "$with_portals4" != "no"; then : - as_fn_error $? "Portals4 support requested but not found. Aborting" "$LINENO" 5 -fi - btl_portals4_happy="no" -fi - - - if test "$btl_portals4_happy" = "yes"; then : - btl_portals4_WRAPPER_EXTRA_LDFLAGS="$btl_portals4_LDFLAGS" - btl_portals4_WRAPPER_EXTRA_LIBS="$btl_portals4_LIBS" - should_build=$should_build -else - should_build=0 -fi - - # need to propogate CPPFLAGS to all of OPAL - if test "$DIRECT_btl" = "portals4"; then : - CPPFLAGS="$CPPFLAGS $btl_portals4_CPPFLAGS" -fi - - # Check whether --enable-btl-portals4-flow-control was given. -if test "${enable_btl_portals4_flow_control+set}" = set; then : - enableval=$enable_btl_portals4_flow_control; -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable flow control" >&5 -$as_echo_n "checking whether to enable flow control... " >&6; } - if test "$enable_btl_portals4_flow_control" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - btl_portals4_flow_control_enabled=1 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - btl_portals4_flow_control_enabled=0 - fi - -cat >>confdefs.h <<_ACEOF -#define OPAL_BTL_PORTALS4_FLOW_CONTROL $btl_portals4_flow_control_enabled -_ACEOF - - if test "$btl_portals4_flow_control_enabled" = "1"; then - OPAL_BTL_PORTALS4_FLOW_CONTROL_TRUE= - OPAL_BTL_PORTALS4_FLOW_CONTROL_FALSE='#' -else - OPAL_BTL_PORTALS4_FLOW_CONTROL_TRUE='#' - OPAL_BTL_PORTALS4_FLOW_CONTROL_FALSE= -fi - - - # substitute in the things needed to build portals4 - - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -114705,45 +114557,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/btl/portals4/post_configure.sh" + infile="$srcdir/opal/mca/btl/ofi/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components portals4" + all_components="$all_components ofi" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components portals4" + dso_components="$dso_components ofi" else if test "btl" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/btl/portals4/lib${OPAL_LIB_PREFIX}mca_btl_portals4.la $static_ltlibs" + static_ltlibs="mca/btl/ofi/lib${OPAL_LIB_PREFIX}mca_btl_ofi.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/btl/portals4/libmca_btl_portals4.la $static_ltlibs" + static_ltlibs="mca/btl/ofi/libmca_btl_ofi.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_btl_portals4_component;" >> $outfile.extern - echo " &mca_btl_portals4_component, " >> $outfile.struct - static_components="$static_components portals4" + echo "extern const mca_base_component_t mca_btl_ofi_component;" >> $outfile.extern + echo " &mca_btl_ofi_component, " >> $outfile.struct + static_components="$static_components ofi" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:portals4 can compile" >&5 -$as_echo_n "checking if MCA component btl:portals4 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:ofi can compile" >&5 +$as_echo_n "checking if MCA component btl:ofi can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_btl" = "portals4" ; then + if test "$DIRECT_btl" = "ofi" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** btl component portals4 was supposed to be direct-called, but +as_fn_error $? "*** btl component ofi was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -114751,8 +114603,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_btl" = "portals4" ; then -as_fn_error $? "*** btl component portals4 was supposed to be direct-called, but + if test "$DIRECT_btl" = "ofi" ; then +as_fn_error $? "*** btl component ofi was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -114767,7 +114619,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$btl_portals4_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$btl_ofi_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -114807,7 +114659,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_portals4_LDFLAGS; do + for arg in $btl_ofi_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -114888,7 +114740,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_portals4_WRAPPER_EXTRA_LDFLAGS; do + for arg in $btl_ofi_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -114930,7 +114782,7 @@ fi - if test "$btl_portals4_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$btl_ofi_WRAPPER_EXTRA_LIBS" = ""; then : @@ -114970,7 +114822,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_portals4_LIBS; do + for arg in $btl_ofi_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -115051,7 +114903,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_portals4_WRAPPER_EXTRA_LIBS; do + for arg in $btl_ofi_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -115099,7 +114951,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$btl_portals4_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$btl_ofi_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -115142,7 +114994,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_portals4_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $btl_ofi_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -115185,32 +115037,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_portals4_WRAPPER_EXTRA_CPPFLAGS ($btl_portals4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring btl_portals4_WRAPPER_EXTRA_CPPFLAGS ($btl_portals4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_ofi_WRAPPER_EXTRA_CPPFLAGS ($btl_ofi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring btl_ofi_WRAPPER_EXTRA_CPPFLAGS ($btl_ofi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:portals4 can compile" >&5 -$as_echo_n "checking if MCA component btl:portals4 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:ofi can compile" >&5 +$as_echo_n "checking if MCA component btl:ofi can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_btl" = "portals4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"portals4\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"portals4\" failed to configure properly" >&2;} + if test "$with_btl" = "ofi" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ofi\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ofi\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "portals4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"portals4\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"portals4\" failed to configure properly" >&2;} + if test "$DIRECT_btl" = "ofi" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ofi\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ofi\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -115218,23 +115070,23 @@ fi # add component to all component list - all_components="$all_components portals4" + all_components="$all_components ofi" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_btl_portals4_DSO=1 + BUILD_opal_btl_ofi_DSO=1 else - BUILD_opal_btl_portals4_DSO=0 + BUILD_opal_btl_ofi_DSO=0 fi - if test "$BUILD_opal_btl_portals4_DSO" = "1"; then - MCA_BUILD_opal_btl_portals4_DSO_TRUE= - MCA_BUILD_opal_btl_portals4_DSO_FALSE='#' + if test "$BUILD_opal_btl_ofi_DSO" = "1"; then + MCA_BUILD_opal_btl_ofi_DSO_TRUE= + MCA_BUILD_opal_btl_ofi_DSO_FALSE='#' else - MCA_BUILD_opal_btl_portals4_DSO_TRUE='#' - MCA_BUILD_opal_btl_portals4_DSO_FALSE= + MCA_BUILD_opal_btl_ofi_DSO_TRUE='#' + MCA_BUILD_opal_btl_ofi_DSO_FALSE= fi @@ -115250,13 +115102,13 @@ - opal_show_subsubsubtitle "MCA component btl:sm (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component btl:openib (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/btl/sm" + component_path="$srcdir/opal/mca/btl/openib" want_component=0 # build if: @@ -115289,7 +115141,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "sm" ; then + if test "$DIRECT_btl" = "openib" ; then want_component=1 else want_component=0 @@ -115301,7 +115153,7 @@ if test "$DISABLE_btl" = "1"; then : want_component=0 fi - if test "$DISABLE_btl_sm" = "1"; then : + if test "$DISABLE_btl_openib" = "1"; then : want_component=0 fi @@ -115315,10 +115167,10 @@ # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE SHARED_FRAMEWORK="$DSO_btl" - SHARED_COMPONENT="$DSO_btl_sm" + SHARED_COMPONENT="$DSO_btl_openib" STATIC_FRAMEWORK="$STATIC_btl" - STATIC_COMPONENT="$STATIC_btl_sm" + STATIC_COMPONENT="$STATIC_btl_openib" shared_mode_override=static @@ -115336,9 +115188,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:sm compile mode" >&5 -$as_echo_n "checking for MCA component btl:sm compile mode... " >&6; } - if test "$DIRECT_btl" = "sm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:openib compile mode" >&5 +$as_echo_n "checking for MCA component btl:openib compile mode... " >&6; } + if test "$DIRECT_btl" = "openib" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -115349,80 +115201,8 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/btl/sm/Makefile" - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/btl/sm/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components sm" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components sm" - else - if test "btl" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/btl/sm/lib${OPAL_LIB_PREFIX}mca_btl_sm.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/btl/sm/libmca_btl_sm.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_btl_sm_component;" >> $outfile.extern - echo " &mca_btl_sm_component, " >> $outfile.struct - static_components="$static_components sm" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:sm can compile" >&5 -$as_echo_n "checking if MCA component btl:sm can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_btl" = "sm" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** btl component sm was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_btl" = "sm" ; then -as_fn_error $? "*** btl component sm was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + ac_config_files="$ac_config_files opal/mca/btl/openib/Makefile" - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$btl_sm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -115435,7 +115215,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in cpcs btl_openib_LDFLAGS_save btl_openib_LIBS_save; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -115454,56 +115234,15 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"cpcs btl_openib_LDFLAGS_save btl_openib_LIBS_save\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` + cpcs="oob" - for arg in $btl_sm_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else @@ -115516,7 +115255,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in btl_openib_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -115535,7 +115274,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"btl_openib_msg\"" eval $opal_str unset opal_str @@ -115543,49 +115282,99 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_sm_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Setup the --with switches to allow users to specify where + # verbs stuff lives. - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + if test -z "$opal_check_openib_happy" ; then + # + # Add padding to OpenIB header + # + # Check whether --enable-openib-control-hdr-padding was given. +if test "${enable_openib_control_hdr_padding+set}" = set; then : + enableval=$enable_openib_control_hdr_padding; +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if want to add padding to the openib BTL control header" >&5 +$as_echo_n "checking if want to add padding to the openib BTL control header... " >&6; } + if test "$enable_openib_control_hdr_padding" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + ompi_openib_pad_hdr=1 + elif test "$enable_openib_control_hdr_padding" = "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ompi_openib_pad_hdr=0 + else + # + # Enable padding for SPARC platforms by default because the + # btl will segv otherwise. Keep padding disabled for other + # platforms since there are some performance implications with + # padding on for those platforms. + # + case "${host}" in + sparc*) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (enabled by default on SPARC)" >&5 +$as_echo "yes (enabled by default on SPARC)" >&6; } + ompi_openib_pad_hdr=1 + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ompi_openib_pad_hdr=0 + ;; + esac + fi + +cat >>confdefs.h <<_ACEOF +#define OPAL_OPENIB_PAD_HDR $ompi_openib_pad_hdr +_ACEOF + if test "$opal_want_verbs" = "no"; then : + opal_check_openib_happy="no" +else + opal_check_openib_happy="yes" fi - if test "$btl_sm_WRAPPER_EXTRA_LIBS" = ""; then : + + ompi_check_openib_btl_openib_save_CPPFLAGS="$CPPFLAGS" + ompi_check_openib_btl_openib_save_LDFLAGS="$LDFLAGS" + ompi_check_openib_btl_openib_save_LIBS="$LIBS" + + if test "$opal_check_openib_happy" = "yes"; then : + for ac_header in fcntl.h sys/poll.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: fcntl.h sys/poll.h not found. Can not build component." >&5 +$as_echo "$as_me: WARNING: fcntl.h sys/poll.h not found. Can not build component." >&2;} + opal_check_openib_happy="no" +fi + +done + +fi + + if test "$opal_check_openib_happy" = "yes"; then : + + opal_check_package_opal_check_openib_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_opal_check_openib_save_LDFLAGS="$LDFLAGS" + opal_check_package_opal_check_openib_save_LIBS="$LIBS" + + opal_check_package_opal_check_openib_orig_CPPFLAGS="$opal_check_openib_CPPFLAGS" + opal_check_package_opal_check_openib_orig_LDFLAGS="$opal_check_openib_LDFLAGS" + opal_check_package_opal_check_openib_orig_LIBS="$opal_check_openib_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -115598,7 +115387,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -115617,7 +115406,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -115625,48 +115414,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_sm_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_infiniband_verbs_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $opal_verbs_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in infiniband/verbs.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "infiniband/verbs.h" "ac_cv_header_infiniband_verbs_h" "$ac_includes_default" +if test "x$ac_cv_header_infiniband_verbs_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_INFINIBAND_VERBS_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_infiniband_verbs_h fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + opal_check_openib_CPPFLAGS="$opal_check_openib_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in infiniband/verbs.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "infiniband/verbs.h" "ac_cv_header_infiniband_verbs_h" "$ac_includes_default" +if test "x$ac_cv_header_infiniband_verbs_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_INFINIBAND_VERBS_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_ibv_open_device + opal_check_package_lib_happy="no" + if test "$opal_verbs_libdir" != ""; then : + # libdir was specified - search only there + opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_verbs_libdir" + LDFLAGS="$LDFLAGS -L$opal_verbs_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 +$as_echo_n "checking for library containing ibv_open_device... " >&6; } +if ${ac_cv_search_ibv_open_device+:} false; then : + $as_echo_n "(cached) " >&6 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ibv_open_device (); +int +main () +{ +return ibv_open_device (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ibverbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ibv_open_device=$ac_res fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ibv_open_device+:} false; then : + break fi - done +done +if ${ac_cv_search_ibv_open_device+:} false; then : +else + ac_cv_search_ibv_open_device=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 +$as_echo "$ac_cv_search_ibv_open_device" >&6; } +ac_res=$ac_cv_search_ibv_open_device +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + unset ac_cv_search_ibv_open_device +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_verbs_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 +$as_echo_n "checking for library containing ibv_open_device... " >&6; } +if ${ac_cv_search_ibv_open_device+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ibv_open_device (); +int +main () +{ +return ibv_open_device (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ibverbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ibv_open_device=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ibv_open_device+:} false; then : + break +fi +done +if ${ac_cv_search_ibv_open_device+:} false; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +else + ac_cv_search_ibv_open_device=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 +$as_echo "$ac_cv_search_ibv_open_device" >&6; } +ac_res=$ac_cv_search_ibv_open_device +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + unset ac_cv_search_ibv_open_device +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 +$as_echo_n "checking for library containing ibv_open_device... " >&6; } +if ${ac_cv_search_ibv_open_device+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ibv_open_device (); +int +main () +{ +return ibv_open_device (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ibverbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ibv_open_device=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ibv_open_device+:} false; then : + break +fi +done +if ${ac_cv_search_ibv_open_device+:} false; then : + +else + ac_cv_search_ibv_open_device=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 +$as_echo "$ac_cv_search_ibv_open_device" >&6; } +ac_res=$ac_cv_search_ibv_open_device +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + unset ac_cv_search_ibv_open_device +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 +$as_echo_n "checking for library containing ibv_open_device... " >&6; } +if ${ac_cv_search_ibv_open_device+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ibv_open_device (); +int +main () +{ +return ibv_open_device (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ibverbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ibv_open_device=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ibv_open_device+:} false; then : + break +fi +done +if ${ac_cv_search_ibv_open_device+:} false; then : else + ac_cv_search_ibv_open_device=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 +$as_echo "$ac_cv_search_ibv_open_device" >&6; } +ac_res=$ac_cv_search_ibv_open_device +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + unset ac_cv_search_ibv_open_device +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -115679,7 +115777,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -115698,66 +115796,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $btl_sm_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$btl_sm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -115770,7 +115818,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -115789,7 +115837,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -115797,355 +115845,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_sm_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libibverbs requires libnl v1 or v3" >&5 +$as_echo_n "checking if libibverbs requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ibv_open_device (void); +int main(int argc, char *argv[]) { + ibv_open_device (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:115872: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:115879: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_sm_WRAPPER_EXTRA_CPPFLAGS ($btl_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring btl_sm_WRAPPER_EXTRA_CPPFLAGS ($btl_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ibverbs" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ibverbs" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:sm can compile" >&5 -$as_echo_n "checking if MCA component btl:sm can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi - # If this component was requested as the default for this - # type, then abort. - if test "$with_btl" = "sm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "sm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # add component to all component list - all_components="$all_components sm" + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libibverbs links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libibverbs links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} + + libnl_sane=0 fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ibverbs requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ibverbs requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_btl_sm_DSO=1 -else - BUILD_opal_btl_sm_DSO=0 -fi - if test "$BUILD_opal_btl_sm_DSO" = "1"; then - MCA_BUILD_opal_btl_sm_DSO_TRUE= - MCA_BUILD_opal_btl_sm_DSO_FALSE='#' + libnl_sane=0 else - MCA_BUILD_opal_btl_sm_DSO_TRUE='#' - MCA_BUILD_opal_btl_sm_DSO_FALSE= -fi + opal_libnlv1_libs="$opal_libnlv1_libs ibverbs" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi +# Go through each item in the variable and only keep the unique ones - unset compile_mode +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - opal_show_subsubsubtitle "MCA component btl:smcuda (m4 configuration macro)" + # Check the ending condition - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter + opal_i="`expr $opal_i + 1`" + done - component_path="$srcdir/opal/mca/btl/smcuda" - want_component=0 + # If we didn't find the token, add it to the "array" - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "smcuda" ; then - want_component=1 - else - want_component=0 - fi - fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # if we were explicitly disabled, don't build :) - if test "$DISABLE_btl" = "1"; then : - want_component=0 -fi - if test "$DISABLE_btl_smcuda" = "1"; then : - want_component=0 -fi +# Take all the items in the "array" and assemble them back into a +# single variable - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - SHARED_FRAMEWORK="$DSO_btl" - SHARED_COMPONENT="$DSO_btl_smcuda" + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - STATIC_FRAMEWORK="$STATIC_btl" - STATIC_COMPONENT="$STATIC_btl_smcuda" +# Done; do the assignment - shared_mode_override=static +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +# Clean up - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:smcuda compile mode" >&5 -$as_echo_n "checking for MCA component btl:smcuda compile mode... " >&6; } - if test "$DIRECT_btl" = "smcuda" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi +fi - # try to configure the component + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libibverbs requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libibverbs requires libnl-3" >&2;} - ac_config_files="$ac_config_files opal/mca/btl/smcuda/Makefile" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs ibverbs" - # make sure that CUDA-aware checks have been done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs +# Go through each item in the variable and only keep the unique ones - # Only build if CUDA support is available - if test "x$CUDA_SUPPORT" = "x1"; then : - should_build=$should_build -else - should_build=0 -fi +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - if test "$should_build" = "1"; then : + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/btl/smcuda/post_configure.sh" + opal_done="`expr $opal_i \>= $opal_count`" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components smcuda" + # Increment the counter - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components smcuda" - else - if test "btl" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/btl/smcuda/lib${OPAL_LIB_PREFIX}mca_btl_smcuda.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/btl/smcuda/libmca_btl_smcuda.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_btl_smcuda_component;" >> $outfile.extern - echo " &mca_btl_smcuda_component, " >> $outfile.struct - static_components="$static_components smcuda" - fi + opal_i="`expr $opal_i + 1`" + done - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:smcuda can compile" >&5 -$as_echo_n "checking if MCA component btl:smcuda can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # If we didn't find the token, add it to the "array" - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_btl" = "smcuda" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** btl component smcuda was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_btl" = "smcuda" ; then -as_fn_error $? "*** btl component smcuda was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi + opal_i="`expr $opal_i - 1`" fi +done - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$btl_smcuda_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - +# Take all the items in the "array" and assemble them back into a +# single variable - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +# Done; do the assignment - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up - for arg in $btl_smcuda_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -116169,170 +116138,358 @@ done -else - + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - for arg in $btl_smcuda_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ibv_open_device" != "no" && + test "$ac_cv_search_ibv_open_device" != "none required"; then : + opal_check_openib_LIBS="$ac_cv_search_ibv_open_device " else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + opal_check_openib_LIBS="" fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" fi - done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +else + opal_check_package_happy="no" +fi +else - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # see comment above + unset ac_cv_search_ibv_open_device + opal_check_package_lib_happy="no" + if test "$opal_verbs_libdir" != ""; then : + # libdir was specified - search only there + opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_verbs_libdir" + LDFLAGS="$LDFLAGS -L$opal_verbs_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 +$as_echo_n "checking for library containing ibv_open_device... " >&6; } +if ${ac_cv_search_ibv_open_device+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ibv_open_device (); +int +main () +{ +return ibv_open_device (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ibverbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ibv_open_device=$ac_res fi - if test "$btl_smcuda_WRAPPER_EXTRA_LIBS" = ""; then : - - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ibv_open_device+:} false; then : + break +fi +done +if ${ac_cv_search_ibv_open_device+:} false; then : - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +else + ac_cv_search_ibv_open_device=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 +$as_echo "$ac_cv_search_ibv_open_device" >&6; } +ac_res=$ac_cv_search_ibv_open_device +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + unset ac_cv_search_ibv_open_device +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_verbs_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 +$as_echo_n "checking for library containing ibv_open_device... " >&6; } +if ${ac_cv_search_ibv_open_device+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ibv_open_device (); +int +main () +{ +return ibv_open_device (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ibverbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ibv_open_device=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ibv_open_device+:} false; then : + break +fi +done +if ${ac_cv_search_ibv_open_device+:} false; then : - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +else + ac_cv_search_ibv_open_device=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 +$as_echo "$ac_cv_search_ibv_open_device" >&6; } +ac_res=$ac_cv_search_ibv_open_device +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + unset ac_cv_search_ibv_open_device +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 +$as_echo_n "checking for library containing ibv_open_device... " >&6; } +if ${ac_cv_search_ibv_open_device+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - for arg in $btl_smcuda_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ibv_open_device (); +int +main () +{ +return ibv_open_device (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ibverbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ibv_open_device=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ibv_open_device+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +done +if ${ac_cv_search_ibv_open_device+:} false; then : + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_cv_search_ibv_open_device=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 +$as_echo "$ac_cv_search_ibv_open_device" >&6; } +ac_res=$ac_cv_search_ibv_open_device +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - done + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + unset ac_cv_search_ibv_open_device +fi +fi +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_openib_LDFLAGS="$opal_check_openib_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ibv_open_device" >&5 +$as_echo_n "checking for library containing ibv_open_device... " >&6; } +if ${ac_cv_search_ibv_open_device+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ibv_open_device (); +int +main () +{ +return ibv_open_device (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ibverbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ibv_open_device=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ibv_open_device+:} false; then : + break +fi +done +if ${ac_cv_search_ibv_open_device+:} false; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +else + ac_cv_search_ibv_open_device=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ibv_open_device" >&5 +$as_echo "$ac_cv_search_ibv_open_device" >&6; } +ac_res=$ac_cv_search_ibv_open_device +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + unset ac_cv_search_ibv_open_device +fi +fi +fi +fi -else + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -116345,7 +116502,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -116364,66 +116521,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $btl_smcuda_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$btl_smcuda_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -116436,7 +116543,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -116455,7 +116562,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -116463,290 +116570,303 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_smcuda_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libibverbs requires libnl v1 or v3" >&5 +$as_echo_n "checking if libibverbs requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ibv_open_device (void); +int main(int argc, char *argv[]) { + ibv_open_device (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:116597: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:116604: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_smcuda_WRAPPER_EXTRA_CPPFLAGS ($btl_smcuda_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring btl_smcuda_WRAPPER_EXTRA_CPPFLAGS ($btl_smcuda_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ibverbs" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ibverbs" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:smcuda can compile" >&5 -$as_echo_n "checking if MCA component btl:smcuda can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi - # If this component was requested as the default for this - # type, then abort. - if test "$with_btl" = "smcuda" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"smcuda\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"smcuda\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "smcuda" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"smcuda\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"smcuda\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # add component to all component list - all_components="$all_components smcuda" + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libibverbs links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libibverbs links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} + + libnl_sane=0 fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ibverbs requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ibverbs requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_btl_smcuda_DSO=1 -else - BUILD_opal_btl_smcuda_DSO=0 -fi - if test "$BUILD_opal_btl_smcuda_DSO" = "1"; then - MCA_BUILD_opal_btl_smcuda_DSO_TRUE= - MCA_BUILD_opal_btl_smcuda_DSO_FALSE='#' + libnl_sane=0 else - MCA_BUILD_opal_btl_smcuda_DSO_TRUE='#' - MCA_BUILD_opal_btl_smcuda_DSO_FALSE= -fi + opal_libnlv1_libs="$opal_libnlv1_libs ibverbs" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi +# Go through each item in the variable and only keep the unique ones - unset compile_mode +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - opal_show_subsubsubtitle "MCA component btl:tcp (m4 configuration macro)" + # Check the ending condition - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter + opal_i="`expr $opal_i + 1`" + done - component_path="$srcdir/opal/mca/btl/tcp" - want_component=0 + # If we didn't find the token, add it to the "array" - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "tcp" ; then - want_component=1 - else - want_component=0 - fi - fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # if we were explicitly disabled, don't build :) - if test "$DISABLE_btl" = "1"; then : - want_component=0 +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - if test "$DISABLE_btl_tcp" = "1"; then : - want_component=0 + fi - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libibverbs requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libibverbs requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libibverbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libibverbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libibverbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libibverbs." >&2;} + + libnl_sane=0 else - should_build=0 -fi + opal_libnlv3_libs="$opal_libnlv3_libs ibverbs" - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - SHARED_FRAMEWORK="$DSO_btl" - SHARED_COMPONENT="$DSO_btl_tcp" +# Go through each item in the variable and only keep the unique ones - STATIC_FRAMEWORK="$STATIC_btl" - STATIC_COMPONENT="$STATIC_btl_tcp" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - shared_mode_override=static + # Loop over every token we've seen so far - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:tcp compile mode" >&5 -$as_echo_n "checking for MCA component btl:tcp compile mode... " >&6; } - if test "$DIRECT_btl" = "tcp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + opal_i="`expr $opal_i - 1`" fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - # try to configure the component +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - ac_config_files="$ac_config_files opal/mca/btl/tcp/Makefile" + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # check for sockaddr_in (a good sign we have TCP) - ac_fn_c_check_type "$LINENO" "struct sockaddr_in" "ac_cv_type_struct_sockaddr_in" "$ac_includes_default -#ifdef HAVE_NETINET_IN_H -#include -#endif +# Done; do the assignment -" -if test "x$ac_cv_type_struct_sockaddr_in" = xyes; then : +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_SOCKADDR_IN 1 -_ACEOF +# Clean up -opal_btl_tcp_happy=yes - should_build=$should_build -else - opal_btl_tcp_happy=no - should_build=0 +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi +fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_libnl_sane=$libnl_sane - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="TCP: $opal_btl_tcp_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -116769,78 +116889,508 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : +fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ibv_open_device" != "no" && + test "$ac_cv_search_ibv_open_device" != "none required"; then : + opal_check_openib_LIBS="$ac_cv_search_ibv_open_device " +else + opal_check_openib_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/btl/tcp/post_configure.sh" +fi + unset opal_check_package_header_happy - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components tcp" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components tcp" - else - if test "btl" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/btl/tcp/lib${OPAL_LIB_PREFIX}mca_btl_tcp.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/btl/tcp/libmca_btl_tcp.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_btl_tcp_component;" >> $outfile.extern - echo " &mca_btl_tcp_component, " >> $outfile.struct - static_components="$static_components tcp" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:tcp can compile" >&5 -$as_echo_n "checking if MCA component btl:tcp can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_btl" = "tcp" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** btl component tcp was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_btl" = "tcp" ; then -as_fn_error $? "*** btl component tcp was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + + if test "$opal_check_package_happy" = "yes"; then : + opal_check_openib_happy="yes" +else + opal_check_openib_CPPFLAGS="$opal_check_package_opal_check_openib_orig_CPPFLAGS" + opal_check_openib_LDFLAGS="$opal_check_package_opal_check_openib_orig_LDFLAGS" + opal_check_openib_LIBS="$opal_check_package_opal_check_openib_orig_LIBS" + opal_check_openib_happy="no" +fi + + CPPFLAGS="$opal_check_package_opal_check_openib_save_CPPFLAGS" + LDFLAGS="$opal_check_package_opal_check_openib_save_LDFLAGS" + LIBS="$opal_check_package_opal_check_openib_save_LIBS" + +fi + + CPPFLAGS="$CPPFLAGS $opal_check_openib_CPPFLAGS" + LDFLAGS="$LDFLAGS $opal_check_openib_LDFLAGS" + LIBS="$LIBS $opal_check_openib_LIBS" + + if test "$opal_check_openib_happy" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking number of arguments to ibv_create_cq" >&5 +$as_echo_n "checking number of arguments to ibv_create_cq... " >&6; } +if ${ompi_cv_func_ibv_create_cq_args+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +ibv_create_cq(NULL, 0, NULL, NULL, 0); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ompi_cv_func_ibv_create_cq_args=5 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +ibv_create_cq(NULL, 0, NULL); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ompi_cv_func_ibv_create_cq_args=3 +else + ompi_cv_func_ibv_create_cq_args="unknown" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_cv_func_ibv_create_cq_args" >&5 +$as_echo "$ompi_cv_func_ibv_create_cq_args" >&6; } + if test "$ompi_cv_func_ibv_create_cq_args" = "unknown"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Can not determine number of args to ibv_create_cq." >&5 +$as_echo "$as_me: WARNING: Can not determine number of args to ibv_create_cq." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Not building component." >&5 +$as_echo "$as_me: WARNING: Not building component." >&2;} + opal_check_openib_happy="no" +else + +cat >>confdefs.h <<_ACEOF +#define OPAL_IBV_CREATE_CQ_ARGS $ompi_cv_func_ibv_create_cq_args +_ACEOF + +fi +fi + + # + # OpenIB dynamic SL + # + # Check whether --enable-openib-dynamic-sl was given. +if test "${enable_openib_dynamic_sl+set}" = set; then : + enableval=$enable_openib_dynamic_sl; +fi + + + # Set these up so that we can do an AC_DEFINE below + # (unconditionally) + opal_check_openib_have_xrc=0 + opal_check_openib_have_xrc_domains=0 + opal_check_openib_have_opensm_devel=0 + + # If we have the openib stuff available, find out what we've got + if test "$opal_check_openib_happy" = "yes"; then : + ac_fn_c_check_decl "$LINENO" "IBV_EVENT_CLIENT_REREGISTER" "ac_cv_have_decl_IBV_EVENT_CLIENT_REREGISTER" "#include +" +if test "x$ac_cv_have_decl_IBV_EVENT_CLIENT_REREGISTER" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_EVENT_CLIENT_REREGISTER $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IBV_ACCESS_SO" "ac_cv_have_decl_IBV_ACCESS_SO" "#include +" +if test "x$ac_cv_have_decl_IBV_ACCESS_SO" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_ACCESS_SO $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IBV_ATOMIC_HCA" "ac_cv_have_decl_IBV_ATOMIC_HCA" "#include +" +if test "x$ac_cv_have_decl_IBV_ATOMIC_HCA" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_ATOMIC_HCA $ac_have_decl +_ACEOF + + for ac_func in ibv_get_device_list ibv_resize_cq +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + + # struct ibv_device.transport_type was added in OFED v1.2 + ac_fn_c_check_member "$LINENO" "struct ibv_device" "transport_type" "ac_cv_member_struct_ibv_device_transport_type" "#include +" +if test "x$ac_cv_member_struct_ibv_device_transport_type" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IBV_DEVICE_TRANSPORT_TYPE 1 +_ACEOF + + +fi + + + # We have to check functions both exits *and* are declared + # since some distro ship broken ibverbs devel headers + # IBV_DEVICE_XRC is common to all OFED versions + # ibv_create_xrc_rcv_qp was added in OFED 1.3 + # ibv_cmd_open_xrcd (aka XRC Domains) was added in OFED 3.12 + if test "$enable_connectx_xrc" = "yes"; then + ac_fn_c_check_decl "$LINENO" "IBV_DEVICE_XRC" "ac_cv_have_decl_IBV_DEVICE_XRC" "#include +" +if test "x$ac_cv_have_decl_IBV_DEVICE_XRC" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_DEVICE_XRC $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + opal_check_openib_have_xrc=1 + opal_check_openib_have_xrc_domains=1 +fi + + fi + if test "$enable_connectx_xrc" = "yes" \ + && test $opal_check_openib_have_xrc -eq 1; then + ac_fn_c_check_decl "$LINENO" "ibv_create_xrc_rcv_qp" "ac_cv_have_decl_ibv_create_xrc_rcv_qp" "#include +" +if test "x$ac_cv_have_decl_ibv_create_xrc_rcv_qp" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_CREATE_XRC_RCV_QP $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + for ac_func in ibv_create_xrc_rcv_qp +do : + ac_fn_c_check_func "$LINENO" "ibv_create_xrc_rcv_qp" "ac_cv_func_ibv_create_xrc_rcv_qp" +if test "x$ac_cv_func_ibv_create_xrc_rcv_qp" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_IBV_CREATE_XRC_RCV_QP 1 +_ACEOF + +else + opal_check_openib_have_xrc=0 +fi +done + +else + opal_check_openib_have_xrc=0 +fi + + fi + if test "$enable_connectx_xrc" = "yes" \ + && test $opal_check_openib_have_xrc_domains -eq 1; then + ac_fn_c_check_decl "$LINENO" "ibv_cmd_open_xrcd" "ac_cv_have_decl_ibv_cmd_open_xrcd" "#include +" +if test "x$ac_cv_have_decl_ibv_cmd_open_xrcd" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_CMD_OPEN_XRCD $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + ac_fn_c_check_decl "$LINENO" "IBV_SRQT_XRC" "ac_cv_have_decl_IBV_SRQT_XRC" "#include +" +if test "x$ac_cv_have_decl_IBV_SRQT_XRC" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_SRQT_XRC $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + for ac_func in ibv_cmd_open_xrcd +do : + ac_fn_c_check_func "$LINENO" "ibv_cmd_open_xrcd" "ac_cv_func_ibv_cmd_open_xrcd" +if test "x$ac_cv_func_ibv_cmd_open_xrcd" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_IBV_CMD_OPEN_XRCD 1 +_ACEOF + +else + opal_check_openib_have_xrc_domains=0 +fi +done + +else + opal_check_openib_have_xrc_domains=0 +fi + +else + opal_check_openib_have_xrc_domains=0 +fi + + # XRC and XRC Domains should be considered as exclusive + if test "$opal_check_openib_have_xrc" -eq 1 && \ + test "$opal_check_openib_have_xrc_domains" -eq 1; then + opal_check_openib_have_xrc=0 + fi + fi + + if test "no" != "$enable_openib_dynamic_sl"; then + # We need ib_types.h file, which is installed with opensm-devel + # package. However, ib_types.h has a bad include directive, + # which will cause AC_CHECK_HEADER to fail. + # So instead, we will look for another file that is also + # installed as part of opensm-devel package and included in + # ib_types.h, but it doesn't include any other IB-related files. + ac_fn_c_check_header_mongrel "$LINENO" "infiniband/complib/cl_types_osd.h" "ac_cv_header_infiniband_complib_cl_types_osd_h" "$ac_includes_default" +if test "x$ac_cv_header_infiniband_complib_cl_types_osd_h" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cl_map_init in -losmcomp" >&5 +$as_echo_n "checking for cl_map_init in -losmcomp... " >&6; } +if ${ac_cv_lib_osmcomp_cl_map_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-losmcomp $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char cl_map_init (); +int +main () +{ +return cl_map_init (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_osmcomp_cl_map_init=yes +else + ac_cv_lib_osmcomp_cl_map_init=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_osmcomp_cl_map_init" >&5 +$as_echo "$ac_cv_lib_osmcomp_cl_map_init" >&6; } +if test "x$ac_cv_lib_osmcomp_cl_map_init" = xyes; then : + opal_check_openib_have_opensm_devel=1 +fi + +fi + + + # Abort if dynamic SL support was explicitly requested but opensm-devel + # package wasn't found. Otherwise, OMPI will be built w/o dynamic SL. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if can use dynamic SL support" >&5 +$as_echo_n "checking if can use dynamic SL support... " >&6; } + if test "$opal_check_openib_have_opensm_devel" = "1"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + if test "$enable_openib_dynamic_sl" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-openib-dynamic-sl was specified but the" >&5 +$as_echo "$as_me: WARNING: --enable-openib-dynamic-sl was specified but the" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: appropriate header/library files could not be found" >&5 +$as_echo "$as_me: WARNING: appropriate header/library files could not be found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Please install opensm-devel if you need dynamic SL support" >&5 +$as_echo "$as_me: WARNING: Please install opensm-devel if you need dynamic SL support" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +fi +fi + fi + + + # Check support for RDMAoE devices + btl_openib_have_rdmaoe=0 + ac_fn_c_check_decl "$LINENO" "IBV_LINK_LAYER_ETHERNET" "ac_cv_have_decl_IBV_LINK_LAYER_ETHERNET" "#include +" +if test "x$ac_cv_have_decl_IBV_LINK_LAYER_ETHERNET" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_LINK_LAYER_ETHERNET $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + btl_openib_have_rdmaoe=1 +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if RDMAoE support is enabled" >&5 +$as_echo_n "checking if RDMAoE support is enabled... " >&6; } + +cat >>confdefs.h <<_ACEOF +#define OPAL_HAVE_RDMAOE $btl_openib_have_rdmaoe +_ACEOF + + if test "1" = "$btl_openib_have_rdmaoe"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + + +fi + + # Check to see if works. It is known to + # create problems on some platforms with some compilers (e.g., + # RHEL4U3 with the PGI 32 bit compiler). Use undocumented (in AC + # 2.63) feature of AC_CHECK_HEADERS: if you explicitly pass in + # AC_INCLUDES_DEFAULT as the 4th arg to AC_CHECK_HEADERS, the test + # will fail if the header is present but not compilable, *but it + # will not print the big scary warning*. See + # http://lists.gnu.org/archive/html/autoconf/2008-10/msg00143.html. + if test "$opal_check_openib_happy" = "yes"; then : + for ac_header in infiniband/driver.h +do : + ac_fn_c_check_header_compile "$LINENO" "infiniband/driver.h" "ac_cv_header_infiniband_driver_h" "$ac_includes_default +" +if test "x$ac_cv_header_infiniband_driver_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_INFINIBAND_DRIVER_H 1 +_ACEOF + +fi + +done + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ConnectX XRC support is enabled" >&5 +$as_echo_n "checking if ConnectX XRC support is enabled... " >&6; } + +cat >>confdefs.h <<_ACEOF +#define OPAL_HAVE_CONNECTX_XRC $opal_check_openib_have_xrc +_ACEOF + + if test "1" = "$opal_check_openib_have_xrc"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ConnectIB XRC support is enabled" >&5 +$as_echo_n "checking if ConnectIB XRC support is enabled... " >&6; } + +cat >>confdefs.h <<_ACEOF +#define OPAL_HAVE_CONNECTX_XRC_DOMAINS $opal_check_openib_have_xrc_domains +_ACEOF + + if test "1" = "$opal_check_openib_have_xrc_domains"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if dynamic SL is enabled" >&5 +$as_echo_n "checking if dynamic SL is enabled... " >&6; } + +cat >>confdefs.h <<_ACEOF +#define OPAL_ENABLE_DYNAMIC_SL $opal_check_openib_have_opensm_devel +_ACEOF + + if test "1" = "$opal_check_openib_have_opensm_devel"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + btl_openib_LIBS="-losmcomp $btl_openib_LIBS" + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + + if test -z "$opal_verbs_dir"; then : + openib_include_dir="/usr/include" +else + openib_include_dir="$opal_verbs_dir/include" +fi + opal_check_openib_CPPFLAGS="$opal_check_openib_CPPFLAGS -I$openib_include_dir/infiniband" + + CPPFLAGS="$ompi_check_openib_btl_openib_save_CPPFLAGS" + LDFLAGS="$ompi_check_openib_btl_openib_save_LDFLAGS" + LIBS="$ompi_check_openib_btl_openib_save_LIBS" - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$btl_tcp_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -116853,7 +117403,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -116872,7 +117422,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -116880,26 +117430,45 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_tcp_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="OpenFabrics Verbs: $opal_check_openib_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done + + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` opal_scope_test=`expr $opal_scope_index \> 0` @@ -116920,8 +117489,178 @@ unset $opal_var done + fi + + btl_openib_have_xrc=$opal_check_openib_have_xrc + btl_openib_have_xrc_domains=$opal_check_openib_have_xrc_domains + btl_openib_have_opensm_devel=$opal_check_openib_have_opensm_devel + + if test "$opal_check_openib_happy" = "yes"; then : + btl_openib_CPPFLAGS="$btl_openib_CPPFLAGS $opal_check_openib_CPPFLAGS" + btl_openib_LDFLAGS="$btl_openib_LDFLAGS $opal_check_openib_LDFLAGS" + btl_openib_LIBS="$btl_openib_LIBS $opal_check_openib_LIBS" + btl_openib_happy="yes" + + + btl_openib_have_udcm=0 + btl_openib_have_rdmacm=0 + + ompi_check_openib_btl_openib_save_CPPFLAGS="$CPPFLAGS" + ompi_check_openib_btl_openib_save_LDFLAGS="$LDFLAGS" + ompi_check_openib_btl_openib_save_LIBS="$LIBS" + + # add back in all the InfiniBand flags so that these tests might work... + CPPFLAGS="$CPPFLAGS $btl_openib_CPPFLAGS" + LDFLAGS="$LDFLAGS $btl_openib_LDFLAGS" + LIBS="$LIBS $btl_openib_LIBS" + + if test "$opal_check_openib_happy" = "yes"; then : + # Do we have a recent enough RDMA CM? Need to have the + # rdma_get_peer_addr (inline) function (originally appeared + # in OFED v1.3). + if test "$enable_openib_rdmacm" != "no"; then + for ac_header in rdma/rdma_cma.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "rdma/rdma_cma.h" "ac_cv_header_rdma_rdma_cma_h" "$ac_includes_default" +if test "x$ac_cv_header_rdma_rdma_cma_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_RDMA_RDMA_CMA_H 1 +_ACEOF + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rdma_create_id in -lrdmacm" >&5 +$as_echo_n "checking for rdma_create_id in -lrdmacm... " >&6; } +if ${ac_cv_lib_rdmacm_rdma_create_id+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrdmacm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char rdma_create_id (); +int +main () +{ +return rdma_create_id (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_rdmacm_rdma_create_id=yes +else + ac_cv_lib_rdmacm_rdma_create_id=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rdmacm_rdma_create_id" >&5 +$as_echo "$ac_cv_lib_rdmacm_rdma_create_id" >&6; } +if test "x$ac_cv_lib_rdmacm_rdma_create_id" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rdma_get_peer_addr" >&5 +$as_echo_n "checking for rdma_get_peer_addr... " >&6; } + btl_openib_msg=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include "rdma/rdma_cma.h" + +int +main () +{ +void *ret = (void*) rdma_get_peer_addr((struct rdma_cm_id*)0); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + btl_openib_have_rdmacm=1 + btl_openib_msg=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $btl_openib_msg" >&5 +$as_echo "$btl_openib_msg" >&6; } +fi + +fi + +done + + + if test "1" = "$btl_openib_have_rdmacm"; then + btl_openib_LIBS="-lrdmacm $btl_openib_LIBS" + else + if test "$enable_openib_rdmacm" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-openib-rdmacm was specified but the" >&5 +$as_echo "$as_me: WARNING: --enable-openib-rdmacm was specified but the" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: appropriate files could not be found" >&5 +$as_echo "$as_me: WARNING: appropriate files could not be found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Please install librdmacm and librdmacm-devel or disable rdmacm support" >&5 +$as_echo "$as_me: WARNING: Please install librdmacm and librdmacm-devel or disable rdmacm support" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +fi + fi + fi + + # is udcm enabled + if test "$enable_openib_udcm" = "yes"; then + btl_openib_have_udcm=1 + fi + +fi + + CPPFLAGS="$ompi_check_openib_btl_openib_save_CPPFLAGS" + LDFLAGS="$ompi_check_openib_btl_openib_save_LDFLAGS" + LIBS="$ompi_check_openib_btl_openib_save_LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if UD CM is enabled" >&5 +$as_echo_n "checking if UD CM is enabled... " >&6; } + +cat >>confdefs.h <<_ACEOF +#define OPAL_HAVE_UDCM $btl_openib_have_udcm +_ACEOF + + if test "1" = "$btl_openib_have_udcm"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if OpenFabrics RDMACM support is enabled" >&5 +$as_echo_n "checking if OpenFabrics RDMACM support is enabled... " >&6; } + +cat >>confdefs.h <<_ACEOF +#define OPAL_HAVE_RDMACM $btl_openib_have_rdmacm +_ACEOF + + if test "1" = "$btl_openib_have_rdmacm"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi else + if test "$opal_want_verbs" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Verbs support requested (via --with-verbs) but not found." >&5 +$as_echo "$as_me: WARNING: Verbs support requested (via --with-verbs) but not found." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: If you are using libibverbs v1.0 (i.e., OFED v1.0 or v1.1), you *MUST* have both the libsysfs headers and libraries installed. Later versions of libibverbs do not require libsysfs." >&5 +$as_echo "$as_me: WARNING: If you are using libibverbs v1.0 (i.e., OFED v1.0 or v1.1), you *MUST* have both the libsysfs headers and libraries installed. Later versions of libibverbs do not require libsysfs." >&2;} + as_fn_error $? "Aborting." "$LINENO" 5 +fi + btl_openib_happy="no" +fi + + @@ -116934,7 +117673,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in have_struct_ibv_exp_send_wr; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -116953,7 +117692,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"have_struct_ibv_exp_send_wr\"" eval $opal_str unset opal_str @@ -116961,25 +117700,115 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_tcp_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether expanded verbs are available" >&5 +$as_echo_n "checking whether expanded verbs are available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +struct ibv_exp_send_wr; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + have_struct_ibv_exp_send_wr=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + have_struct_ibv_exp_send_wr=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - done +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + +cat >>confdefs.h <<_ACEOF +#define HAVE_EXP_VERBS $have_struct_ibv_exp_send_wr +_ACEOF + + ac_fn_c_check_decl "$LINENO" "IBV_EXP_ATOMIC_HCA_REPLY_BE" "ac_cv_have_decl_IBV_EXP_ATOMIC_HCA_REPLY_BE" "#include +" +if test "x$ac_cv_have_decl_IBV_EXP_ATOMIC_HCA_REPLY_BE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_EXP_ATOMIC_HCA_REPLY_BE $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IBV_EXP_QP_CREATE_ATOMIC_BE_REPLY" "ac_cv_have_decl_IBV_EXP_QP_CREATE_ATOMIC_BE_REPLY" "#include +" +if test "x$ac_cv_have_decl_IBV_EXP_QP_CREATE_ATOMIC_BE_REPLY" = xyes; then : + ac_have_decl=1 else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_EXP_QP_CREATE_ATOMIC_BE_REPLY $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ibv_exp_create_qp" "ac_cv_have_decl_ibv_exp_create_qp" "#include +" +if test "x$ac_cv_have_decl_ibv_exp_create_qp" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_EXP_CREATE_QP $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ibv_exp_query_device" "ac_cv_have_decl_ibv_exp_query_device" "#include +" +if test "x$ac_cv_have_decl_ibv_exp_query_device" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - done +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_EXP_QUERY_DEVICE $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IBV_EXP_QP_INIT_ATTR_ATOMICS_ARG" "ac_cv_have_decl_IBV_EXP_QP_INIT_ATTR_ATOMICS_ARG" "#include +" +if test "x$ac_cv_have_decl_IBV_EXP_QP_INIT_ATTR_ATOMICS_ARG" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IBV_EXP_QP_INIT_ATTR_ATOMICS_ARG $ac_have_decl +_ACEOF + + ac_fn_c_check_member "$LINENO" "struct ibv_exp_device_attr" "ext_atom" "ac_cv_member_struct_ibv_exp_device_attr_ext_atom" "#include +" +if test "x$ac_cv_member_struct_ibv_exp_device_attr_ext_atom" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IBV_EXP_DEVICE_ATTR_EXT_ATOM 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct ibv_exp_device_attr" "exp_atomic_cap" "ac_cv_member_struct_ibv_exp_device_attr_exp_atomic_cap" "#include +" +if test "x$ac_cv_member_struct_ibv_exp_device_attr_exp_atomic_cap" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IBV_EXP_DEVICE_ATTR_EXP_ATOMIC_CAP 1 +_ACEOF + + +fi + + if test '$have_struct_ibv_exp_send_wr' = 1; then : + btl_openib +fi # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -117002,8 +117831,211 @@ done + + if test "$btl_openib_happy" = "yes"; then : + # With the new openib flags, look for ibv_fork_init + btl_openib_LDFLAGS_save="$LDFLAGS" + btl_openib_LIBS_save="$LIBS" + LDFLAGS="$LDFLAGS $btl_openib_LDFLAGS" + LIBS="$LIBS $btl_openib_LIBS" + for ac_func in ibv_fork_init +do : + ac_fn_c_check_func "$LINENO" "ibv_fork_init" "ac_cv_func_ibv_fork_init" +if test "x$ac_cv_func_ibv_fork_init" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_IBV_FORK_INIT 1 +_ACEOF + +fi +done + + LDFLAGS="$btl_openib_LDFLAGS_save" + LIBS="$btl_openib_LIBS_save" + should_build=$should_build +else + should_build=0 fi - if test "$btl_tcp_WRAPPER_EXTRA_LIBS" = ""; then : + + if test "$btl_openib_happy" = "yes"; then : + if test "x$btl_openib_have_xrc" = "x1"; then + cpcs="$cpcs xoob" + fi + if test "x$btl_openib_have_rdmacm" = "x1"; then + cpcs="$cpcs rdmacm" + if test "$enable_openib_rdmacm_ibaddr" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking IB addressing" >&5 +$as_echo_n "checking IB addressing... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #ifdef AF_IB + yes + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + + for ac_header in rdma/rsocket.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "rdma/rsocket.h" "ac_cv_header_rdma_rsocket_h" "$ac_includes_default" +if test "x$ac_cv_header_rdma_rsocket_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_RDMA_RSOCKET_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define BTL_OPENIB_RDMACM_IB_ADDR 1" >>confdefs.h + + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +$as_echo "#define BTL_OPENIB_RDMACM_IB_ADDR 0" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: There is no IB_AF addressing support by lib rdmacm." >&5 +$as_echo "$as_me: WARNING: There is no IB_AF addressing support by lib rdmacm." >&2;} + + +fi + +done + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +$as_echo "#define BTL_OPENIB_RDMACM_IB_ADDR 0" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: There is no IB_AF addressing support by lib rdmacm." >&5 +$as_echo "$as_me: WARNING: There is no IB_AF addressing support by lib rdmacm." >&2;} + +fi +rm -f conftest* + + else + +$as_echo "#define BTL_OPENIB_RDMACM_IB_ADDR 0" >>confdefs.h + + fi + fi + if test "x$btl_openib_have_udcm" = "x1"; then + cpcs="$cpcs udcm" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which openib btl cpcs will be built" >&5 +$as_echo_n "checking which openib btl cpcs will be built... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cpcs" >&5 +$as_echo "$cpcs" >&6; } +fi + + # make sure that CUDA-aware checks have been done + + + # substitute in the things needed to build openib + + + + + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/btl/openib/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components openib" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components openib" + else + if test "btl" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/btl/openib/lib${OPAL_LIB_PREFIX}mca_btl_openib.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/btl/openib/libmca_btl_openib.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_btl_openib_component;" >> $outfile.extern + echo " &mca_btl_openib_component, " >> $outfile.struct + static_components="$static_components openib" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:openib can compile" >&5 +$as_echo_n "checking if MCA component btl:openib can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_btl" = "openib" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** btl component openib was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_btl" = "openib" ; then +as_fn_error $? "*** btl component openib was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$btl_openib_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -117043,21 +118075,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_tcp_LIBS; do + for arg in $btl_openib_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -117124,11 +118156,174 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_tcp_WRAPPER_EXTRA_LIBS; do + for arg in $btl_openib_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$btl_openib_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $btl_openib_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $btl_openib_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi @@ -117172,7 +118367,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$btl_tcp_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$btl_openib_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -117215,7 +118410,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_tcp_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $btl_openib_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -117258,32 +118453,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_tcp_WRAPPER_EXTRA_CPPFLAGS ($btl_tcp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring btl_tcp_WRAPPER_EXTRA_CPPFLAGS ($btl_tcp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_openib_WRAPPER_EXTRA_CPPFLAGS ($btl_openib_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring btl_openib_WRAPPER_EXTRA_CPPFLAGS ($btl_openib_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:tcp can compile" >&5 -$as_echo_n "checking if MCA component btl:tcp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:openib can compile" >&5 +$as_echo_n "checking if MCA component btl:openib can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_btl" = "tcp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tcp\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tcp\" failed to configure properly" >&2;} + if test "$with_btl" = "openib" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"openib\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"openib\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "tcp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tcp\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tcp\" failed to configure properly" >&2;} + if test "$DIRECT_btl" = "openib" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"openib\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"openib\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -117291,23 +118486,56 @@ fi # add component to all component list - all_components="$all_components tcp" + all_components="$all_components openib" +fi + + + if test $should_build -eq 1 && test "x$btl_openib_have_xrc" = "x1"; then + MCA_btl_openib_have_xrc_TRUE= + MCA_btl_openib_have_xrc_FALSE='#' +else + MCA_btl_openib_have_xrc_TRUE='#' + MCA_btl_openib_have_xrc_FALSE= +fi + + if test $should_build -eq 1 && test "x$btl_openib_have_rdmacm" = "x1"; then + MCA_btl_openib_have_rdmacm_TRUE= + MCA_btl_openib_have_rdmacm_FALSE='#' +else + MCA_btl_openib_have_rdmacm_TRUE='#' + MCA_btl_openib_have_rdmacm_FALSE= +fi + + if test $should_build -eq 1 && test "x$btl_openib_have_opensm_devel" = "x1"; then + MCA_btl_openib_have_dynamic_sl_TRUE= + MCA_btl_openib_have_dynamic_sl_FALSE='#' +else + MCA_btl_openib_have_dynamic_sl_TRUE='#' + MCA_btl_openib_have_dynamic_sl_FALSE= +fi + + if test $should_build -eq 1 && test "x$btl_openib_have_udcm" = "x1"; then + MCA_btl_openib_have_udcm_TRUE= + MCA_btl_openib_have_udcm_FALSE='#' +else + MCA_btl_openib_have_udcm_TRUE='#' + MCA_btl_openib_have_udcm_FALSE= fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_btl_tcp_DSO=1 + BUILD_opal_btl_openib_DSO=1 else - BUILD_opal_btl_tcp_DSO=0 + BUILD_opal_btl_openib_DSO=0 fi - if test "$BUILD_opal_btl_tcp_DSO" = "1"; then - MCA_BUILD_opal_btl_tcp_DSO_TRUE= - MCA_BUILD_opal_btl_tcp_DSO_FALSE='#' + if test "$BUILD_opal_btl_openib_DSO" = "1"; then + MCA_BUILD_opal_btl_openib_DSO_TRUE= + MCA_BUILD_opal_btl_openib_DSO_FALSE='#' else - MCA_BUILD_opal_btl_tcp_DSO_TRUE='#' - MCA_BUILD_opal_btl_tcp_DSO_FALSE= + MCA_BUILD_opal_btl_openib_DSO_TRUE='#' + MCA_BUILD_opal_btl_openib_DSO_FALSE= fi @@ -117323,13 +118551,13 @@ - opal_show_subsubsubtitle "MCA component btl:uct (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component btl:portals4 (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/btl/uct" + component_path="$srcdir/opal/mca/btl/portals4" want_component=0 # build if: @@ -117362,7 +118590,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "uct" ; then + if test "$DIRECT_btl" = "portals4" ; then want_component=1 else want_component=0 @@ -117374,7 +118602,7 @@ if test "$DISABLE_btl" = "1"; then : want_component=0 fi - if test "$DISABLE_btl_uct" = "1"; then : + if test "$DISABLE_btl_portals4" = "1"; then : want_component=0 fi @@ -117388,10 +118616,10 @@ # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE SHARED_FRAMEWORK="$DSO_btl" - SHARED_COMPONENT="$DSO_btl_uct" + SHARED_COMPONENT="$DSO_btl_portals4" STATIC_FRAMEWORK="$STATIC_btl" - STATIC_COMPONENT="$STATIC_btl_uct" + STATIC_COMPONENT="$STATIC_btl_portals4" shared_mode_override=static @@ -117409,9 +118637,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:uct compile mode" >&5 -$as_echo_n "checking for MCA component btl:uct compile mode... " >&6; } - if test "$DIRECT_btl" = "uct" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:portals4 compile mode" >&5 +$as_echo_n "checking for MCA component btl:portals4 compile mode... " >&6; } + if test "$DIRECT_btl" = "portals4" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -117422,82 +118650,44 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/btl/uct/Makefile" - - - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_check_ucx_dir; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_check_ucx_dir\"" - eval $opal_str - unset opal_str + ac_config_files="$ac_config_files opal/mca/btl/portals4/Makefile" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - if test -z "$ompi_check_ucx_happy"; then : + if test -z "$ompi_check_portals4_happy" ; then -# Check whether --with-ucx was given. -if test "${with_ucx+set}" = set; then : - withval=$with_ucx; +# Check whether --with-portals4 was given. +if test "${with_portals4+set}" = set; then : + withval=$with_portals4; fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx value" >&5 -$as_echo_n "checking --with-ucx value... " >&6; } - if test "$with_ucx" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx)" >&5 -$as_echo "simple no (specified --without-ucx)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-portals4 value" >&5 +$as_echo_n "checking --with-portals4 value... " >&6; } + if test "$with_portals4" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-portals4)" >&5 +$as_echo "simple no (specified --without-portals4)" >&6; } else - if test "$with_ucx" = "yes" || test "x$with_ucx" = "x"; then : + if test "$with_portals4" = "yes" || test "x$with_portals4" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 $as_echo "simple ok (unspecified value)" >&6; } else - if test ! -d "$with_ucx"; then : + if test ! -d "$with_portals4"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_ucx not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_portals4 not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_portals4 not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - if test "x`ls $with_ucx/include/ucp/api/ucp.h 2> /dev/null`" = "x"; then : + if test "x`ls $with_portals4/include/portals4.h 2> /dev/null`" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_portals4/include/portals4.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_portals4/include/portals4.h not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx)" >&5 -$as_echo "sanity check ok ($with_ucx)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_portals4)" >&5 +$as_echo "sanity check ok ($with_portals4)" >&6; } fi @@ -117511,38 +118701,38 @@ fi -# Check whether --with-ucx-libdir was given. -if test "${with_ucx_libdir+set}" = set; then : - withval=$with_ucx_libdir; +# Check whether --with-portals4-libdir was given. +if test "${with_portals4_libdir+set}" = set; then : + withval=$with_portals4_libdir; fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx-libdir value" >&5 -$as_echo_n "checking --with-ucx-libdir value... " >&6; } - if test "$with_ucx_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx-libdir)" >&5 -$as_echo "simple no (specified --without-ucx-libdir)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-portals4-libdir value" >&5 +$as_echo_n "checking --with-portals4-libdir value... " >&6; } + if test "$with_portals4_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-portals4-libdir)" >&5 +$as_echo "simple no (specified --without-portals4-libdir)" >&6; } else - if test "$with_ucx_libdir" = "yes" || test "x$with_ucx_libdir" = "x"; then : + if test "$with_portals4_libdir" = "yes" || test "x$with_portals4_libdir" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 $as_echo "simple ok (unspecified value)" >&6; } else - if test ! -d "$with_ucx_libdir"; then : + if test ! -d "$with_portals4_libdir"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_ucx_libdir not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_portals4_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_portals4_libdir not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - if test "x`ls $with_ucx_libdir/libucp.* 2> /dev/null`" = "x"; then : + if test "x`ls $with_portals4_libdir/libportals.* 2> /dev/null`" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_portals4_libdir/libportals.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_portals4_libdir/libportals.* not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx_libdir)" >&5 -$as_echo "sanity check ok ($with_ucx_libdir)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_portals4_libdir)" >&5 +$as_echo "sanity check ok ($with_portals4_libdir)" >&6; } fi @@ -117556,113 +118746,26 @@ fi - if test "$with_ucx" != "no"; then : - if test -n "$with_ucx" && test "$with_ucx" != "yes"; then : - ompi_check_ucx_dir="$with_ucx" -else - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ucx" >&5 -$as_echo_n "checking for ucx... " >&6; } + ompi_check_portals4_btl_portals4_save_CPPFLAGS="$CPPFLAGS" + ompi_check_portals4_btl_portals4_save_LDFLAGS="$LDFLAGS" + ompi_check_portals4_btl_portals4_save_LIBS="$LIBS" -if test -n "$ucx_CFLAGS"; then - pkg_cv_ucx_CFLAGS="$ucx_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ucx_CFLAGS=`$PKG_CONFIG --cflags "ucx" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$ucx_LIBS"; then - pkg_cv_ucx_LIBS="$ucx_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ucx_LIBS=`$PKG_CONFIG --libs "ucx" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$ucx_STATIC_LIBS"; then - pkg_cv_ucx_STATIC_LIBS="$ucx_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ucx_STATIC_LIBS=`$PKG_CONFIG --libs --static "ucx" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried + if test "$with_portals4" != "no"; then : + if test ! -z "$with_portals4" && test "$with_portals4" != "yes"; then : + ompi_check_portals4_dir="$with_portals4" fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no + if test ! -z "$with_portals4_libdir" && test "$with_portals4_libdir" != "yes"; then : + ompi_check_portals4_libdir="$with_portals4_libdir" fi - if test $_pkg_short_errors_supported = yes; then - ucx_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ucx" 2>&1` - else - ucx_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ucx" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$ucx_PKG_ERRORS" >&5 - true -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - true -else - ucx_CFLAGS=$pkg_cv_ucx_CFLAGS - ucx_LIBS=$pkg_cv_ucx_LIBS - ucx_STATIC_LIBS=$pkg_cv_ucx_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ompi_check_ucx_dir=`$PKG_CONFIG --variable=prefix ucx` - if test "$ompi_check_ucx_dir" = "/usr"; then : - ompi_check_ucx_dir= -fi -fi -fi - ompi_check_ucx_happy="no" - if test -z "$ompi_check_ucx_dir"; then : - opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" - opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" + opal_check_package_opal_check_portals4_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_opal_check_portals4_save_LDFLAGS="$LDFLAGS" + opal_check_package_opal_check_portals4_save_LIBS="$LIBS" - opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" - opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" - opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" + opal_check_package_opal_check_portals4_orig_CPPFLAGS="$opal_check_portals4_CPPFLAGS" + opal_check_package_opal_check_portals4_orig_LDFLAGS="$opal_check_portals4_LDFLAGS" + opal_check_package_opal_check_portals4_orig_LIBS="$opal_check_portals4_LIBS" # This is stolen from autoconf to peek under the covers to get the @@ -117710,22 +118813,22 @@ # so this sucks, but there's no way to get through the progression # of header includes without killing off the cache variable and trying # again... - unset ac_cv_header_ucp_api_ucp_h + unset ac_cv_header_portals4_h # get rid of the trailing slash(es) - dir_prefix=$(echo | sed -e 'sX/*$XXg') + dir_prefix=$(echo $ompi_check_portals4_dir | sed -e 'sX/*$XXg') opal_check_package_header_happy="no" if test "$dir_prefix" = "/usr" || \ test "$dir_prefix" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 $as_echo "looking for header without includes" >&6; } - for ac_header in ucp/api/ucp.h + for ac_header in portals4.h do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "portals4.h" "ac_cv_header_portals4_h" "$ac_includes_default" +if test "x$ac_cv_header_portals4_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 +#define HAVE_PORTALS4_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -117734,21 +118837,21 @@ if test "$opal_check_package_header_happy" = "no"; then : # no go on the as is - reset the cache and try again - unset ac_cv_header_ucp_api_ucp_h + unset ac_cv_header_portals4_h fi fi if test "$opal_check_package_header_happy" = "no"; then : if test "$dir_prefix" != ""; then : - ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" + opal_check_portals4_CPPFLAGS="$opal_check_portals4_CPPFLAGS -I$dir_prefix/include" CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" fi - for ac_header in ucp/api/ucp.h + for ac_header in portals4.h do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "portals4.h" "ac_cv_header_portals4_h" "$ac_includes_default" +if test "x$ac_cv_header_portals4_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 +#define HAVE_PORTALS4_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -117763,15 +118866,15 @@ # see comment above - unset ac_cv_search_ucp_cleanup + unset ac_cv_search_PtlLEAppend opal_check_package_lib_happy="no" - if test "" != ""; then : + if test "$ompi_check_portals4_libdir" != ""; then : # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$ompi_check_portals4_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_portals4_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -117784,42 +118887,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char PtlLEAppend (); int main () { -return ucp_cleanup (); +return PtlLEAppend (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' portals; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_PtlLEAppend=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_PtlLEAppend+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_PtlLEAppend+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_PtlLEAppend=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -117828,22 +118931,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend fi else # libdir was not specified - go through search path - opal_check_package_libdir="" + opal_check_package_libdir="$ompi_check_portals4_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -117856,42 +118959,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char PtlLEAppend (); int main () { -return ucp_cleanup (); +return PtlLEAppend (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' portals; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_PtlLEAppend=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_PtlLEAppend+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_PtlLEAppend+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_PtlLEAppend=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -117901,21 +119004,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -117928,42 +119031,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char PtlLEAppend (); int main () { -return ucp_cleanup (); +return PtlLEAppend (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' portals; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_PtlLEAppend=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_PtlLEAppend+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_PtlLEAppend+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_PtlLEAppend=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -117973,22 +119076,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -118001,42 +119104,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char PtlLEAppend (); int main () { -return ucp_cleanup (); +return PtlLEAppend (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' portals; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_PtlLEAppend=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_PtlLEAppend+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_PtlLEAppend+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_PtlLEAppend=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -118046,9 +119149,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend fi fi fi @@ -118145,12 +119248,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 -$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libportals requires libnl v1 or v3" >&5 +$as_echo_n "checking if libportals requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void ucp_cleanup (void); +extern void PtlLEAppend (void); int main(int argc, char *argv[]) { - ucp_cleanup (); + PtlLEAppend (); return 0; } EOF @@ -118162,14 +119265,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:118165: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 +echo "configure:119268: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:118172: \$? = $opal_status" >&5 + echo "configure:119275: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -118189,8 +119292,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib portals" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib portals" >&2;} fi @@ -118204,15 +119307,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} libnl_sane=0 fi @@ -118221,19 +119324,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs ucp" + opal_libnlv1_libs="$opal_libnlv1_libs portals" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -118312,19 +119415,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs ucp" + opal_libnlv3_libs="$opal_libnlv3_libs portals" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -118465,11 +119568,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ucp_cleanup" != "no" && - test "$ac_cv_search_ucp_cleanup" != "none required"; then : - ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" + if test "$ac_cv_search_PtlLEAppend" != "no" && + test "$ac_cv_search_PtlLEAppend" != "none required"; then : + opal_check_portals4_LIBS="$ac_cv_search_PtlLEAppend " else - ompi_check_ucx_LIBS="-luct -lucm -lucs" + opal_check_portals4_LIBS="" fi opal_check_package_happy="yes" else @@ -118488,15 +119591,15 @@ # see comment above - unset ac_cv_search_ucp_cleanup + unset ac_cv_search_PtlLEAppend opal_check_package_lib_happy="no" - if test "" != ""; then : + if test "$ompi_check_portals4_libdir" != ""; then : # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$ompi_check_portals4_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_portals4_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -118509,42 +119612,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char PtlLEAppend (); int main () { -return ucp_cleanup (); +return PtlLEAppend (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' portals; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_PtlLEAppend=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_PtlLEAppend+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_PtlLEAppend+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_PtlLEAppend=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -118553,22 +119656,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend fi else # libdir was not specified - go through search path - opal_check_package_libdir="" + opal_check_package_libdir="$ompi_check_portals4_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -118581,42 +119684,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char PtlLEAppend (); int main () { -return ucp_cleanup (); +return PtlLEAppend (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' portals; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_PtlLEAppend=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_PtlLEAppend+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_PtlLEAppend+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_PtlLEAppend=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -118626,21 +119729,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -118653,42 +119756,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char PtlLEAppend (); int main () { -return ucp_cleanup (); +return PtlLEAppend (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' portals; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_PtlLEAppend=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_PtlLEAppend+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_PtlLEAppend+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_PtlLEAppend=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -118698,22 +119801,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -118726,42 +119829,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char PtlLEAppend (); int main () { -return ucp_cleanup (); +return PtlLEAppend (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' portals; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_PtlLEAppend=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_PtlLEAppend+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_PtlLEAppend+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_PtlLEAppend=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -118771,9 +119874,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend fi fi fi @@ -118870,12 +119973,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 -$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libportals requires libnl v1 or v3" >&5 +$as_echo_n "checking if libportals requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void ucp_cleanup (void); +extern void PtlLEAppend (void); int main(int argc, char *argv[]) { - ucp_cleanup (); + PtlLEAppend (); return 0; } EOF @@ -118887,14 +119990,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:118890: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 +echo "configure:119993: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:118897: \$? = $opal_status" >&5 + echo "configure:120000: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -118914,8 +120017,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib portals" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib portals" >&2;} fi @@ -118929,15 +120032,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} libnl_sane=0 fi @@ -118946,19 +120049,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs ucp" + opal_libnlv1_libs="$opal_libnlv1_libs portals" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -119037,19 +120140,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs ucp" + opal_libnlv3_libs="$opal_libnlv3_libs portals" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -119190,11 +120293,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ucp_cleanup" != "no" && - test "$ac_cv_search_ucp_cleanup" != "none required"; then : - ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" + if test "$ac_cv_search_PtlLEAppend" != "no" && + test "$ac_cv_search_PtlLEAppend" != "none required"; then : + opal_check_portals4_LIBS="$ac_cv_search_PtlLEAppend " else - ompi_check_ucx_LIBS="-luct -lucm -lucs" + opal_check_portals4_LIBS="" fi opal_check_package_happy="yes" else @@ -119229,81 +120332,83 @@ if test "$opal_check_package_happy" = "yes"; then : - ompi_check_ucx_happy="yes" + ompi_check_portals4_happy="yes" else - ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" - ompi_check_ucx_happy="no" + opal_check_portals4_CPPFLAGS="$opal_check_package_opal_check_portals4_orig_CPPFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + opal_check_portals4_LIBS="$opal_check_package_opal_check_portals4_orig_LIBS" + ompi_check_portals4_happy="no" fi - CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" - - if test "$ompi_check_ucx_happy" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 -$as_echo_n "checking for UCX version compatibility... " >&6; } - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ + CPPFLAGS="$opal_check_package_opal_check_portals4_save_CPPFLAGS" + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + LIBS="$opal_check_package_opal_check_portals4_save_LIBS" - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ompi_check_ucx_happy="yes" else - ompi_check_ucx_happy="no" + ompi_check_portals4_happy="no" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 -$as_echo "$ompi_check_ucx_happy" >&6; } -fi - if test "$ompi_check_ucx_happy" = "no"; then : - ompi_check_ucx_dir=/opt/ucx -fi + CPPFLAGS="$ompi_check_portals4_btl_portals4_save_CPPFLAGS" + LDFLAGS="$ompi_check_portals4_btl_portals4_save_LDFLAGS" + LIBS="$ompi_check_portals4_btl_portals4_save_LIBS" + + max_md_size=0 + +# Check whether --with-portals4-max-md-size was given. +if test "${with_portals4_max_md_size+set}" = set; then : + withval=$with_portals4_max_md_size; fi - if test "$ompi_check_ucx_happy" != yes; then : - if test -n "$with_ucx_libdir"; then : - ompi_check_ucx_libdir="$with_ucx_libdir" -else - files=`ls $ompi_check_ucx_dir/lib64/libucp.* 2> /dev/null | wc -l` - if test "$files" -gt 0; then : - ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib64 + + if test "$with_portals4_max_md_size" = "yes" || test "$with_portals4_max_md_size" = "no"; then : + as_fn_error $? "--with-portals4-max-md-size requires an integer argument" "$LINENO" 5 else - ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib + if test -n "$with_portals4_max_md_size"; then : + max_md_size="$with_portals4_max_md_size" fi fi - ompi_check_ucx_btl_uct_save_CPPFLAGS="$CPPFLAGS" - ompi_check_ucx_btl_uct_save_LDFLAGS="$LDFLAGS" - ompi_check_ucx_btl_uct_save_LIBS="$LIBS" - +cat >>confdefs.h <<_ACEOF +#define OPAL_PORTALS4_MAX_MD_SIZE $max_md_size +_ACEOF - opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" - opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" - opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" - opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" - opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" + max_va_size=0 +# Check whether --with-portals4-max-va-size was given. +if test "${with_portals4_max_va_size+set}" = set; then : + withval=$with_portals4_max_va_size; +fi - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + if test "$with_portals4_max_va_size" = "yes" || test "$with_portals4_max_va_size" = "no"; then : + as_fn_error $? "--with-portals4-max-va-size requires an integer argument" "$LINENO" 5 +else + if test -n "$with_portals4_max_va_size"; then : + max_va_size="$with_portals4_max_va_size" +fi +fi +cat >>confdefs.h <<_ACEOF +#define OPAL_PORTALS4_MAX_VA_SIZE $max_va_size +_ACEOF - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then + if (test $max_md_size -eq 0 && test $max_va_size -ne 0 ) || (test $max_md_size -ne 0 && test $max_va_size -eq 0 ); then : + as_fn_error $? "If either --with-portals4-max-md-size or --with-portals4-max-va-size is set, both must be set." "$LINENO" 5 +fi + if test $max_md_size -ge $max_va_size; then : + max_md_size=0 + max_va_size=0 +fi + if test $max_md_size -ne 0 && test $max_va_size -ne 0; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: Portals 4 address space size: $max_md_size, $max_va_size" >&5 +$as_echo "$as_me: Portals 4 address space size: $max_md_size, $max_va_size" >&6;} +fi + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then opal_scope_index=1 fi @@ -119311,7 +120416,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -119330,7 +120435,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -119338,357 +120443,177 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_ucp_api_ucp_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_ucx_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in ucp/api/ucp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="Portals4: $ompi_check_portals4_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) -done + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_ucp_api_ucp_h -fi -fi - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in ucp/api/ucp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -done + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_header_happy" = "yes"; then : + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + fi - # see comment above - unset ac_cv_search_ucp_cleanup - opal_check_package_lib_happy="no" - if test "$ompi_check_ucx_libdir" != ""; then : - # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 + if test "$ompi_check_portals4_happy" = "yes"; then : + btl_portals4_LDFLAGS="$btl_portals4_LDFLAGS $opal_check_portals4_LDFLAGS" + btl_portals4_CPPFLAGS="$btl_portals4_CPPFLAGS $opal_check_portals4_CPPFLAGS" + btl_portals4_LIBS="$btl_portals4_LIBS $opal_check_portals4_LIBS" + btl_portals4_happy="yes" else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + if test ! -z "$with_portals4" && test "$with_portals4" != "no"; then : + as_fn_error $? "Portals4 support requested but not found. Aborting" "$LINENO" 5 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break + btl_portals4_happy="no" fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : + + if test "$btl_portals4_happy" = "yes"; then : + btl_portals4_WRAPPER_EXTRA_LDFLAGS="$btl_portals4_LDFLAGS" + btl_portals4_WRAPPER_EXTRA_LIBS="$btl_portals4_LIBS" + should_build=$should_build else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + should_build=0 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" + + # need to propogate CPPFLAGS to all of OPAL + if test "$DIRECT_btl" = "portals4"; then : + CPPFLAGS="$CPPFLAGS $btl_portals4_CPPFLAGS" fi - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + # Check whether --enable-btl-portals4-flow-control was given. +if test "${enable_btl_portals4_flow_control+set}" = set; then : + enableval=$enable_btl_portals4_flow_control; fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_ucx_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable flow control" >&5 +$as_echo_n "checking whether to enable flow control... " >&6; } + if test "$enable_btl_portals4_flow_control" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + btl_portals4_flow_control_enabled=1 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + btl_portals4_flow_control_enabled=0 + fi + +cat >>confdefs.h <<_ACEOF +#define OPAL_BTL_PORTALS4_FLOW_CONTROL $btl_portals4_flow_control_enabled _ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : + if test "$btl_portals4_flow_control_enabled" = "1"; then + OPAL_BTL_PORTALS4_FLOW_CONTROL_TRUE= + OPAL_BTL_PORTALS4_FLOW_CONTROL_FALSE='#' else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" + OPAL_BTL_PORTALS4_FLOW_CONTROL_TRUE='#' + OPAL_BTL_PORTALS4_FLOW_CONTROL_FALSE= fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # substitute in the things needed to build portals4 -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : + if test "$should_build" = "1"; then : -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/btl/portals4/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components portals4" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components portals4" + else + if test "btl" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/btl/portals4/lib${OPAL_LIB_PREFIX}mca_btl_portals4.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/btl/portals4/libmca_btl_portals4.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_btl_portals4_component;" >> $outfile.extern + echo " &mca_btl_portals4_component, " >> $outfile.struct + static_components="$static_components portals4" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:portals4 can compile" >&5 +$as_echo_n "checking if MCA component btl:portals4 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_btl" = "portals4" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** btl component portals4 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_btl" = "portals4" ; then +as_fn_error $? "*** btl component portals4 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$btl_portals4_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -119701,7 +120626,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -119720,16 +120645,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $btl_portals4_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -119742,7 +120707,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -119761,7 +120726,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -119769,276 +120734,187 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 -$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ucp_cleanup (void); -int main(int argc, char *argv[]) { - ucp_cleanup (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:119796: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:119803: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" + for arg in $btl_portals4_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" + done fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} - + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - - libnl_sane=0 fi + done - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs ucp" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Check the ending condition + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter +fi + if test "$btl_portals4_WRAPPER_EXTRA_LIBS" = ""; then : - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Done; do the assignment + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + for arg in $btl_portals4_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - + done fi - - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - - libnl_sane=0 + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_libnlv3_libs="$opal_libnlv3_libs ucp" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Check the ending condition + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter +else - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Done; do the assignment + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 + for arg in $btl_portals4_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - + done fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done # Unwind the index @@ -120062,10 +120938,75 @@ done - ;; - esac +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$btl_portals4_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $btl_portals4_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -120088,332 +121029,246 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ucp_cleanup" != "no" && - test "$ac_cv_search_ucp_cleanup" != "none required"; then : - ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" else - ompi_check_ucx_LIBS="-luct -lucm -lucs" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_portals4_WRAPPER_EXTRA_CPPFLAGS ($btl_portals4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring btl_portals4_WRAPPER_EXTRA_CPPFLAGS ($btl_portals4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" fi - else - opal_check_package_happy="no" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:portals4 can compile" >&5 +$as_echo_n "checking if MCA component btl:portals4 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_btl" = "portals4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"portals4\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"portals4\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_btl" ; then + if test "$DIRECT_btl" = "portals4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"portals4\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"portals4\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components portals4" fi -else - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - # see comment above - unset ac_cv_search_ucp_cleanup - opal_check_package_lib_happy="no" - if test "$ompi_check_ucx_libdir" != ""; then : - # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_btl_portals4_DSO=1 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break + BUILD_opal_btl_portals4_DSO=0 fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - + if test "$BUILD_opal_btl_portals4_DSO" = "1"; then + MCA_BUILD_opal_btl_portals4_DSO_TRUE= + MCA_BUILD_opal_btl_portals4_DSO_FALSE='#' else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + MCA_BUILD_opal_btl_portals4_DSO_TRUE='#' + MCA_BUILD_opal_btl_portals4_DSO_FALSE= fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + + + if test "$should_build" = "1"; then : + components_last_result=1 else - opal_check_package_lib_happy="no" + components_last_result=0 fi - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_ucx_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + unset compile_mode -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : + opal_show_subsubsubtitle "MCA component btl:sm (m4 configuration macro)" -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : + component_path="$srcdir/opal/mca/btl/sm" + want_component=0 -else - ac_cv_search_ucp_cleanup=no + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_btl" ; then + if test "$DIRECT_btl" = "sm" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_btl" = "1"; then : + want_component=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + if test "$DISABLE_btl_sm" = "1"; then : + want_component=0 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else - opal_check_package_lib_happy="no" + should_build=0 fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi -fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + SHARED_FRAMEWORK="$DSO_btl" + SHARED_COMPONENT="$DSO_btl_sm" + + STATIC_FRAMEWORK="$STATIC_btl" + STATIC_COMPONENT="$STATIC_btl_sm" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:sm compile mode" >&5 +$as_echo_n "checking for MCA component btl:sm compile mode... " >&6; } + if test "$DIRECT_btl" = "sm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/btl/sm/Makefile" + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/btl/sm/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components sm" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components sm" + else + if test "btl" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/btl/sm/lib${OPAL_LIB_PREFIX}mca_btl_sm.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/btl/sm/libmca_btl_sm.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_btl_sm_component;" >> $outfile.extern + echo " &mca_btl_sm_component, " >> $outfile.struct + static_components="$static_components sm" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:sm can compile" >&5 +$as_echo_n "checking if MCA component btl:sm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_btl" = "sm" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** btl component sm was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_btl" = "sm" ; then +as_fn_error $? "*** btl component sm was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$btl_sm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -120426,7 +121281,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -120445,16 +121300,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $btl_sm_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -120467,7 +121362,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -120486,7 +121381,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -120494,276 +121389,106 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 -$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ucp_cleanup (void); -int main(int argc, char *argv[]) { - ucp_cleanup (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:120521: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:120528: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" + for arg in $btl_sm_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" + done fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} - + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - - libnl_sane=0 fi - - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs ucp" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" - - # Increment the counter - - opal_i="`expr $opal_i + 1`" done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -# Clean up + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi fi + if test "$btl_sm_WRAPPER_EXTRA_LIBS" = ""; then : - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs ucp" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" - - # Increment the counter - - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Done; do the assignment + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 + for arg in $btl_sm_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - + done fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done # Unwind the index @@ -120787,10 +121512,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $btl_sm_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -120813,28 +121593,74 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no fi -fi + fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ucp_cleanup" != "no" && - test "$ac_cv_search_ucp_cleanup" != "none required"; then : - ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" -else - ompi_check_ucx_LIBS="-luct -lucm -lucs" + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$btl_sm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $btl_sm_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -120858,571 +121684,185 @@ done - - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_ucx_happy="yes" +fi else - ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" - ompi_check_ucx_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_sm_WRAPPER_EXTRA_CPPFLAGS ($btl_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring btl_sm_WRAPPER_EXTRA_CPPFLAGS ($btl_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi fi - CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" - +else - CPPFLAGS="$ompi_check_ucx_btl_uct_save_CPPFLAGS" - LDFLAGS="$ompi_check_ucx_btl_uct_save_LDFLAGS" - LIBS="$ompi_check_ucx_btl_uct_save_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:sm can compile" >&5 +$as_echo_n "checking if MCA component btl:sm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - if test "$ompi_check_ucx_happy" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 -$as_echo_n "checking for UCX version compatibility... " >&6; } + # If this component was requested as the default for this + # type, then abort. + if test "$with_btl" = "sm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - old_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ + if test ! -z "$DIRECT_btl" ; then + if test "$DIRECT_btl" = "sm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ompi_check_ucx_happy="yes" -else - ompi_check_ucx_happy="no" + # add component to all component list + all_components="$all_components sm" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 -$as_echo "$ompi_check_ucx_happy" >&6; } - CPPFLAGS=$old_CPPFLAGS -fi -fi - old_CPPFLAGS="$CPPFLAGS" - if test -n "$ompi_check_ucx_dir"; then : - CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" -fi - ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbr" "ac_cv_have_decl_ucp_tag_send_nbr" "#include -" -if test "x$ac_cv_have_decl_ucp_tag_send_nbr" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_TAG_SEND_NBR $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : - -$as_echo "#define HAVE_UCP_TAG_SEND_NBR 1" >>confdefs.h - -fi - - ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nb" "ac_cv_have_decl_ucp_ep_flush_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_ep_flush_nb" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_EP_FLUSH_NB $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_worker_flush_nb" "ac_cv_have_decl_ucp_worker_flush_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_worker_flush_nb" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_WORKER_FLUSH_NB $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_request_check_status" "ac_cv_have_decl_ucp_request_check_status" "#include -" -if test "x$ac_cv_have_decl_ucp_request_check_status" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_REQUEST_CHECK_STATUS $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_put_nb" "ac_cv_have_decl_ucp_put_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_put_nb" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_PUT_NB $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_get_nb" "ac_cv_have_decl_ucp_get_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_get_nb" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_GET_NB $ac_have_decl -_ACEOF - - ac_fn_c_check_decl "$LINENO" "ucm_test_events" "ac_cv_have_decl_ucm_test_events" "#include -" -if test "x$ac_cv_have_decl_ucm_test_events" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCM_TEST_EVENTS $ac_have_decl -_ACEOF - - ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_AND" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_POST_OP_AND $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_OR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_POST_OP_OR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_XOR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_POST_OP_XOR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FAND" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" = xyes; then : - ac_have_decl=1 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_btl_sm_DSO=1 else - ac_have_decl=0 + BUILD_opal_btl_sm_DSO=0 fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FAND $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" = xyes; then : - ac_have_decl=1 + if test "$BUILD_opal_btl_sm_DSO" = "1"; then + MCA_BUILD_opal_btl_sm_DSO_TRUE= + MCA_BUILD_opal_btl_sm_DSO_FALSE='#' else - ac_have_decl=0 + MCA_BUILD_opal_btl_sm_DSO_TRUE='#' + MCA_BUILD_opal_btl_sm_DSO_FALSE= fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FOR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FXOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FXOR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "#include -" -if test "x$ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" = xyes; then : - ac_have_decl=1 + if test "$should_build" = "1"; then : + components_last_result=1 else - ac_have_decl=0 + components_last_result=0 fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN $ac_have_decl -_ACEOF - - ac_fn_c_check_decl "$LINENO" "UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "#include -" -if test "x$ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + unset compile_mode -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : -$as_echo "#define HAVE_UCP_WORKER_ADDRESS_FLAGS 1" >>confdefs.h -fi - CPPFLAGS=$old_CPPFLAGS + opal_show_subsubsubtitle "MCA component btl:smcuda (m4 configuration macro)" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + component_path="$srcdir/opal/mca/btl/smcuda" + want_component=0 - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Open UCX: $ompi_check_ucx_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_btl" ; then + if test "$DIRECT_btl" = "smcuda" ; then + want_component=1 + else + want_component=0 + fi fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - + # if we were explicitly disabled, don't build :) + if test "$DISABLE_btl" = "1"; then : + want_component=0 fi + if test "$DISABLE_btl_smcuda" = "1"; then : + want_component=0 fi - if test "$ompi_check_ucx_happy" = "yes"; then : - btl_uct_CPPFLAGS="$btl_uct_CPPFLAGS $ompi_check_ucx_CPPFLAGS" - btl_uct_LDFLAGS="$btl_uct_LDFLAGS $ompi_check_ucx_LDFLAGS" - btl_uct_LIBS="$btl_uct_LIBS $ompi_check_ucx_LIBS" - -$as_echo "#define HAVE_UCX 1" >>confdefs.h - - btl_uct_happy="yes" + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else - if test ! -z "$with_ucx" && test "$with_ucx" != "no"; then : - as_fn_error $? "UCX support requested but not found. Aborting" "$LINENO" 5 -fi - -$as_echo "#define HAVE_UCX 0" >>confdefs.h - - btl_uct_happy="no" + should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + SHARED_FRAMEWORK="$DSO_btl" + SHARED_COMPONENT="$DSO_btl_smcuda" + STATIC_FRAMEWORK="$STATIC_btl" + STATIC_COMPONENT="$STATIC_btl_smcuda" - # Check whether --enable-uct-version-check was given. -if test "${enable_uct_version_check+set}" = set; then : - enableval=$enable_uct_version_check; -fi + shared_mode_override=static - { $as_echo "$as_me:${as_lineno-$LINENO}: checking check uct version" >&5 -$as_echo_n "checking check uct version... " >&6; } - if test "$enable_uct_version_check" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - - max_allowed_uct_major=1 - max_allowed_uct_minor=7 - if test "$btl_uct_happy" = "yes" && test "$enable_uct_version_check" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking UCT version compatibility" >&5 -$as_echo_n "checking UCT version compatibility... " >&6; } - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in CPPFLAGS_save; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"CPPFLAGS_save\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - CPPFLAGS_save="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $btl_uct_CPPFLAGS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #if (UCT_VERNO_MAJOR > $max_allowed_uct_major) - #error "UCT MAJOR VERNO > $max_allowed_uct_major" - #endif - #if (UCT_VERNO_MINOR > $max_allowed_uct_minor) - #error "UCT MINOR VERNO > $max_allowed_uct_minor" - #endif -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: UCT version compatible" >&5 -$as_echo "UCT version compatible" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: UCT version not compatible - need UCX $max_allowed_uct_major.$max_allowed_uct_minor or older" >&5 -$as_echo "UCT version not compatible - need UCX $max_allowed_uct_major.$max_allowed_uct_minor or older" >&6; } - btl_uct_happy="no" -fi -rm -f conftest.err conftest.i conftest.$ac_ext - CPPFLAGS="$CPPFLAGS_save" - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - + compile_mode="static" fi - if test "$btl_uct_happy" = "yes" ; then - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:smcuda compile mode" >&5 +$as_echo_n "checking for MCA component btl:smcuda compile mode... " >&6; } + if test "$DIRECT_btl" = "smcuda" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in CPPFLAGS_save; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"CPPFLAGS_save\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - CPPFLAGS_save="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $btl_uct_CPPFLAGS" - - ac_fn_c_check_decl "$LINENO" "UCT_PROGRESS_THREAD_SAFE" "ac_cv_have_decl_UCT_PROGRESS_THREAD_SAFE" "#include -" -if test "x$ac_cv_have_decl_UCT_PROGRESS_THREAD_SAFE" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCT_PROGRESS_THREAD_SAFE $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCT_CB_FLAG_SYNC" "ac_cv_have_decl_UCT_CB_FLAG_SYNC" "#include -" -if test "x$ac_cv_have_decl_UCT_CB_FLAG_SYNC" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCT_CB_FLAG_SYNC $ac_have_decl -_ACEOF - - CPPFLAGS="$CPPFLAGS_save" + # try to configure the component - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + ac_config_files="$ac_config_files opal/mca/btl/smcuda/Makefile" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # make sure that CUDA-aware checks have been done - fi - if test "$btl_uct_happy" = "yes"; then : + # Only build if CUDA support is available + if test "x$CUDA_SUPPORT" = "x1"; then : should_build=$should_build - btl_uct_LIBS="$btl_uct_LIBS -luct" - else should_build=0 fi - # substitute in the things needed to build ucx - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -121432,45 +121872,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/btl/uct/post_configure.sh" + infile="$srcdir/opal/mca/btl/smcuda/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components uct" + all_components="$all_components smcuda" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components uct" + dso_components="$dso_components smcuda" else if test "btl" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/btl/uct/lib${OPAL_LIB_PREFIX}mca_btl_uct.la $static_ltlibs" + static_ltlibs="mca/btl/smcuda/lib${OPAL_LIB_PREFIX}mca_btl_smcuda.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/btl/uct/libmca_btl_uct.la $static_ltlibs" + static_ltlibs="mca/btl/smcuda/libmca_btl_smcuda.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_btl_uct_component;" >> $outfile.extern - echo " &mca_btl_uct_component, " >> $outfile.struct - static_components="$static_components uct" + echo "extern const mca_base_component_t mca_btl_smcuda_component;" >> $outfile.extern + echo " &mca_btl_smcuda_component, " >> $outfile.struct + static_components="$static_components smcuda" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:uct can compile" >&5 -$as_echo_n "checking if MCA component btl:uct can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:smcuda can compile" >&5 +$as_echo_n "checking if MCA component btl:smcuda can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_btl" = "uct" ; then + if test "$DIRECT_btl" = "smcuda" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** btl component uct was supposed to be direct-called, but +as_fn_error $? "*** btl component smcuda was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -121478,8 +121918,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_btl" = "uct" ; then -as_fn_error $? "*** btl component uct was supposed to be direct-called, but + if test "$DIRECT_btl" = "smcuda" ; then +as_fn_error $? "*** btl component smcuda was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -121494,7 +121934,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$btl_uct_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$btl_smcuda_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -121534,7 +121974,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_uct_LDFLAGS; do + for arg in $btl_smcuda_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -121615,7 +122055,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_uct_WRAPPER_EXTRA_LDFLAGS; do + for arg in $btl_smcuda_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -121657,7 +122097,7 @@ fi - if test "$btl_uct_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$btl_smcuda_WRAPPER_EXTRA_LIBS" = ""; then : @@ -121697,7 +122137,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_uct_LIBS; do + for arg in $btl_smcuda_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -121778,7 +122218,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_uct_WRAPPER_EXTRA_LIBS; do + for arg in $btl_smcuda_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -121826,7 +122266,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$btl_uct_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$btl_smcuda_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -121869,7 +122309,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_uct_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $btl_smcuda_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -121912,32 +122352,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_uct_WRAPPER_EXTRA_CPPFLAGS ($btl_uct_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring btl_uct_WRAPPER_EXTRA_CPPFLAGS ($btl_uct_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_smcuda_WRAPPER_EXTRA_CPPFLAGS ($btl_smcuda_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring btl_smcuda_WRAPPER_EXTRA_CPPFLAGS ($btl_smcuda_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:uct can compile" >&5 -$as_echo_n "checking if MCA component btl:uct can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:smcuda can compile" >&5 +$as_echo_n "checking if MCA component btl:smcuda can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_btl" = "uct" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"uct\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"uct\" failed to configure properly" >&2;} + if test "$with_btl" = "smcuda" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"smcuda\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"smcuda\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "uct" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"uct\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"uct\" failed to configure properly" >&2;} + if test "$DIRECT_btl" = "smcuda" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"smcuda\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"smcuda\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -121945,23 +122385,23 @@ fi # add component to all component list - all_components="$all_components uct" + all_components="$all_components smcuda" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_btl_uct_DSO=1 + BUILD_opal_btl_smcuda_DSO=1 else - BUILD_opal_btl_uct_DSO=0 + BUILD_opal_btl_smcuda_DSO=0 fi - if test "$BUILD_opal_btl_uct_DSO" = "1"; then - MCA_BUILD_opal_btl_uct_DSO_TRUE= - MCA_BUILD_opal_btl_uct_DSO_FALSE='#' + if test "$BUILD_opal_btl_smcuda_DSO" = "1"; then + MCA_BUILD_opal_btl_smcuda_DSO_TRUE= + MCA_BUILD_opal_btl_smcuda_DSO_FALSE='#' else - MCA_BUILD_opal_btl_uct_DSO_TRUE='#' - MCA_BUILD_opal_btl_uct_DSO_FALSE= + MCA_BUILD_opal_btl_smcuda_DSO_TRUE='#' + MCA_BUILD_opal_btl_smcuda_DSO_FALSE= fi @@ -121977,13 +122417,13 @@ - opal_show_subsubsubtitle "MCA component btl:ugni (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component btl:tcp (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/btl/ugni" + component_path="$srcdir/opal/mca/btl/tcp" want_component=0 # build if: @@ -122016,7 +122456,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "ugni" ; then + if test "$DIRECT_btl" = "tcp" ; then want_component=1 else want_component=0 @@ -122028,7 +122468,7 @@ if test "$DISABLE_btl" = "1"; then : want_component=0 fi - if test "$DISABLE_btl_ugni" = "1"; then : + if test "$DISABLE_btl_tcp" = "1"; then : want_component=0 fi @@ -122042,10 +122482,10 @@ # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE SHARED_FRAMEWORK="$DSO_btl" - SHARED_COMPONENT="$DSO_btl_ugni" + SHARED_COMPONENT="$DSO_btl_tcp" STATIC_FRAMEWORK="$STATIC_btl" - STATIC_COMPONENT="$STATIC_btl_ugni" + STATIC_COMPONENT="$STATIC_btl_tcp" shared_mode_override=static @@ -122063,9 +122503,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:ugni compile mode" >&5 -$as_echo_n "checking for MCA component btl:ugni compile mode... " >&6; } - if test "$DIRECT_btl" = "ugni" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:tcp compile mode" >&5 +$as_echo_n "checking for MCA component btl:tcp compile mode... " >&6; } + if test "$DIRECT_btl" = "tcp" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -122076,137 +122516,27 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/btl/ugni/Makefile" - - - - if test -z "$opal_check_ugni_happy" ; then - -# Check whether --with-ugni was given. -if test "${with_ugni+set}" = set; then : - withval=$with_ugni; -fi - - - opal_check_ugni_happy="no" - - if test "$with_ugni" = "no"; then : - opal_check_ugni_happy="no" -else - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_UGNI" >&5 -$as_echo_n "checking for CRAY_UGNI... " >&6; } - -if test -n "$CRAY_UGNI_CFLAGS"; then - pkg_cv_CRAY_UGNI_CFLAGS="$CRAY_UGNI_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-ugni\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-ugni") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_UGNI_CFLAGS=`$PKG_CONFIG --cflags "cray-ugni" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_UGNI_LIBS"; then - pkg_cv_CRAY_UGNI_LIBS="$CRAY_UGNI_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-ugni\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-ugni") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_UGNI_LIBS=`$PKG_CONFIG --libs "cray-ugni" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_UGNI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-ugni" 2>&1` - else - CRAY_UGNI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-ugni" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_UGNI_PKG_ERRORS" >&5 - - opal_check_ugni_happy="no" -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_ugni_happy="no" -else - CRAY_UGNI_CFLAGS=$pkg_cv_CRAY_UGNI_CFLAGS - CRAY_UGNI_LIBS=$pkg_cv_CRAY_UGNI_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_ugni_happy="yes" -fi -fi - - opal_check_ugni_btl_ugni_save_CPPFLAGS="$CPPFLAGS" - opal_check_ugni_btl_ugni_save_LIBS="$LIBS" - - if test "$opal_check_ugni_happy" = "yes" ; then - CPPFLAGS="$CPPFLAGS $CRAY_UGNI_CFLAGS" - LIBS="$LIBS $CRAY_UGNI_LIBS" -# echo "+++++++++++++++++++++++CPPFLAGS",$CPPFLAGS -# echo "+++++++++++++++++++++++LDFLAGSS",$LDFLAGS -# echo "+++++++++++++++++++++++1_CPPFLAGS",$btl_ugni_CPPFLAGS -# echo "+++++++++++++++++++++++1_LDFLAGSS",$btl_ugni_LDFLAGS - -# sanity checks + ac_config_files="$ac_config_files opal/mca/btl/tcp/Makefile" - ac_fn_c_check_header_mongrel "$LINENO" "gni_pub.h" "ac_cv_header_gni_pub_h" "$ac_includes_default" -if test "x$ac_cv_header_gni_pub_h" = xyes; then : -else - as_fn_error $? "'gni_pub.h not found.'" "$LINENO" 5 -fi + # check for sockaddr_in (a good sign we have TCP) + ac_fn_c_check_type "$LINENO" "struct sockaddr_in" "ac_cv_type_struct_sockaddr_in" "$ac_includes_default +#ifdef HAVE_NETINET_IN_H +#include +#endif +" +if test "x$ac_cv_type_struct_sockaddr_in" = xyes; then : - for ac_func in GNI_GetJobResInfo -do : - ac_fn_c_check_func "$LINENO" "GNI_GetJobResInfo" "ac_cv_func_GNI_GetJobResInfo" -if test "x$ac_cv_func_GNI_GetJobResInfo" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GNI_GETJOBRESINFO 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_SOCKADDR_IN 1 _ACEOF -fi -done - - - CPPFLAGS="$opal_check_ugni_btl_ugni_save_CPPFLAGS" - LIBS="$opal_check_ugni_btl_ugni_save_LIBS" - fi - - if test "$opal_check_ugni_happy" = "yes" && test "$enable_progress_threads" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: GNI driver does not currently support progress threads. Disabling." >&5 -$as_echo "$as_me: WARNING: GNI driver does not currently support progress threads. Disabling." >&2;} - opal_check_ugni_happy="no" +opal_btl_tcp_happy=yes + should_build=$should_build +else + opal_btl_tcp_happy=no + should_build=0 fi @@ -122249,7 +122579,7 @@ ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Cray uGNI (Gemini/Aries): $opal_check_ugni_happy" + ompi_summary_line="TCP: $opal_btl_tcp_happy" ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) if test -z "$ompi_summary_section_current" ; then @@ -122285,31 +122615,6 @@ done - fi - - if test "$opal_check_ugni_happy" = "yes"; then : - btl_ugni_CPPFLAGS="$btl_ugni_CPPFLAGS $CRAY_UGNI_CFLAGS" - btl_ugni_LIBS="$btl_ugni_LIBS $CRAY_UGNI_LIBS" - btl_ugni_happy="yes" -else - if test ! -z "$with_ugni" && test "$with_ugni" != "no"; then : - as_fn_error $? "GNI support requested but not found. Cannot continue." "$LINENO" 5 -fi - btl_ugni_happy="no" -fi - - - - if test "$btl_ugni_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi - - # substitute in the things needed to build ugni - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -122319,45 +122624,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/btl/ugni/post_configure.sh" + infile="$srcdir/opal/mca/btl/tcp/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ugni" + all_components="$all_components tcp" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ugni" + dso_components="$dso_components tcp" else if test "btl" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/btl/ugni/lib${OPAL_LIB_PREFIX}mca_btl_ugni.la $static_ltlibs" + static_ltlibs="mca/btl/tcp/lib${OPAL_LIB_PREFIX}mca_btl_tcp.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/btl/ugni/libmca_btl_ugni.la $static_ltlibs" + static_ltlibs="mca/btl/tcp/libmca_btl_tcp.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_btl_ugni_component;" >> $outfile.extern - echo " &mca_btl_ugni_component, " >> $outfile.struct - static_components="$static_components ugni" + echo "extern const mca_base_component_t mca_btl_tcp_component;" >> $outfile.extern + echo " &mca_btl_tcp_component, " >> $outfile.struct + static_components="$static_components tcp" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:ugni can compile" >&5 -$as_echo_n "checking if MCA component btl:ugni can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:tcp can compile" >&5 +$as_echo_n "checking if MCA component btl:tcp can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_btl" = "ugni" ; then + if test "$DIRECT_btl" = "tcp" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** btl component ugni was supposed to be direct-called, but +as_fn_error $? "*** btl component tcp was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -122365,8 +122670,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_btl" = "ugni" ; then -as_fn_error $? "*** btl component ugni was supposed to be direct-called, but + if test "$DIRECT_btl" = "tcp" ; then +as_fn_error $? "*** btl component tcp was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -122381,7 +122686,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$btl_ugni_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$btl_tcp_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -122421,7 +122726,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_ugni_LDFLAGS; do + for arg in $btl_tcp_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -122502,7 +122807,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_ugni_WRAPPER_EXTRA_LDFLAGS; do + for arg in $btl_tcp_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -122544,7 +122849,7 @@ fi - if test "$btl_ugni_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$btl_tcp_WRAPPER_EXTRA_LIBS" = ""; then : @@ -122584,7 +122889,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_ugni_LIBS; do + for arg in $btl_tcp_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -122665,7 +122970,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_ugni_WRAPPER_EXTRA_LIBS; do + for arg in $btl_tcp_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -122713,7 +123018,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$btl_ugni_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$btl_tcp_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -122756,7 +123061,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_ugni_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $btl_tcp_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -122799,32 +123104,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_ugni_WRAPPER_EXTRA_CPPFLAGS ($btl_ugni_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring btl_ugni_WRAPPER_EXTRA_CPPFLAGS ($btl_ugni_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_tcp_WRAPPER_EXTRA_CPPFLAGS ($btl_tcp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring btl_tcp_WRAPPER_EXTRA_CPPFLAGS ($btl_tcp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:ugni can compile" >&5 -$as_echo_n "checking if MCA component btl:ugni can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:tcp can compile" >&5 +$as_echo_n "checking if MCA component btl:tcp can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_btl" = "ugni" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ugni\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ugni\" failed to configure properly" >&2;} + if test "$with_btl" = "tcp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tcp\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tcp\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "ugni" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ugni\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ugni\" failed to configure properly" >&2;} + if test "$DIRECT_btl" = "tcp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tcp\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tcp\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -122832,23 +123137,23 @@ fi # add component to all component list - all_components="$all_components ugni" + all_components="$all_components tcp" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_btl_ugni_DSO=1 + BUILD_opal_btl_tcp_DSO=1 else - BUILD_opal_btl_ugni_DSO=0 + BUILD_opal_btl_tcp_DSO=0 fi - if test "$BUILD_opal_btl_ugni_DSO" = "1"; then - MCA_BUILD_opal_btl_ugni_DSO_TRUE= - MCA_BUILD_opal_btl_ugni_DSO_FALSE='#' + if test "$BUILD_opal_btl_tcp_DSO" = "1"; then + MCA_BUILD_opal_btl_tcp_DSO_TRUE= + MCA_BUILD_opal_btl_tcp_DSO_FALSE='#' else - MCA_BUILD_opal_btl_ugni_DSO_TRUE='#' - MCA_BUILD_opal_btl_ugni_DSO_FALSE= + MCA_BUILD_opal_btl_tcp_DSO_TRUE='#' + MCA_BUILD_opal_btl_tcp_DSO_FALSE= fi @@ -122864,13 +123169,13 @@ - opal_show_subsubsubtitle "MCA component btl:usnic (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component btl:uct (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/btl/usnic" + component_path="$srcdir/opal/mca/btl/uct" want_component=0 # build if: @@ -122903,7 +123208,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "usnic" ; then + if test "$DIRECT_btl" = "uct" ; then want_component=1 else want_component=0 @@ -122915,7 +123220,7 @@ if test "$DISABLE_btl" = "1"; then : want_component=0 fi - if test "$DISABLE_btl_usnic" = "1"; then : + if test "$DISABLE_btl_uct" = "1"; then : want_component=0 fi @@ -122929,10 +123234,10 @@ # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE SHARED_FRAMEWORK="$DSO_btl" - SHARED_COMPONENT="$DSO_btl_usnic" + SHARED_COMPONENT="$DSO_btl_uct" STATIC_FRAMEWORK="$STATIC_btl" - STATIC_COMPONENT="$STATIC_btl_usnic" + STATIC_COMPONENT="$STATIC_btl_uct" shared_mode_override=static @@ -122950,9 +123255,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:usnic compile mode" >&5 -$as_echo_n "checking for MCA component btl:usnic compile mode... " >&6; } - if test "$DIRECT_btl" = "usnic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:uct compile mode" >&5 +$as_echo_n "checking for MCA component btl:uct compile mode... " >&6; } + if test "$DIRECT_btl" = "uct" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -122963,23 +123268,9 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/btl/usnic/Makefile" - - - -# Check whether --with-usnic was given. -if test "${with_usnic+set}" = set; then : - withval=$with_usnic; -fi + ac_config_files="$ac_config_files opal/mca/btl/uct/Makefile" - # If --without-usnic was specified, then gracefully exit. - # Otherwise, do the rest of the config. - if test "x$with_usnic" = "xno"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --without-usnic specified; skipping usnic BTL" >&5 -$as_echo "$as_me: WARNING: --without-usnic specified; skipping usnic BTL" >&2;} - should_build=0 -else @@ -122992,7 +123283,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in unit_tests; do + for opal_var in ompi_check_ucx_dir; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -123011,7 +123302,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"unit_tests\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_check_ucx_dir\"" eval $opal_str unset opal_str @@ -123019,170 +123310,85 @@ opal_scope_index=`expr $opal_scope_index + 1` - # see README.test for information about this scheme - # Check whether --enable-opal-btl-usnic-unit-tests was given. -if test "${enable_opal_btl_usnic_unit_tests+set}" = set; then : - enableval=$enable_opal_btl_usnic_unit_tests; -fi + if test -z "$ompi_check_ucx_happy"; then : - if test "X$enable_opal_btl_usnic_unit_tests" = "Xyes"; then : - unit_tests=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: enabling usnic BTL unit tests" >&5 -$as_echo "$as_me: enabling usnic BTL unit tests" >&6;} -else - unit_tests=0 +# Check whether --with-ucx was given. +if test "${with_ucx+set}" = set; then : + withval=$with_ucx; fi -cat >>confdefs.h <<_ACEOF -#define OPAL_BTL_USNIC_UNIT_TESTS $unit_tests -_ACEOF - unset unit_tests + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx value" >&5 +$as_echo_n "checking --with-ucx value... " >&6; } + if test "$with_ucx" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx)" >&5 +$as_echo "simple no (specified --without-ucx)" >&6; } +else + if test "$with_ucx" = "yes" || test "x$with_ucx" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_ucx"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ucx not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_ucx/include/ucp/api/ucp.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx)" >&5 +$as_echo "sanity check ok ($with_ucx)" >&6; } - # The current logic in btl_usnic_compat.h checks the OPAL version as a - # proxy for the top-level OPAL version. Unfortunately this does the wrong - # thing for other top-level projects that might use the usnic BTL, such as - # ORCM. ORCM's versioning is totally unrelated to OPAL's. As a short term - # workaround, just disqualify ourselves if the OPAL version seems too old. - # In the longer term we should be doing something else, like versioning - # OPAL and OPAL separately. - opal_btl_usnic_happy=yes - if test "$OPAL_MAJOR_VERSION" -eq "1" && \ - test "$OPAL_MINOR_VERSION" -lt "7"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL version appears to be too old, disabling the usnic BTL" >&5 -$as_echo "$as_me: OPAL version appears to be too old, disabling the usnic BTL" >&6;} - opal_btl_usnic_happy=no fi - # We only want to build on 64 bit Linux. - if test "$opal_btl_usnic_happy" = "yes"; then : - # The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 -$as_echo_n "checking size of void *... " >&6; } -if ${ac_cv_sizeof_void_p+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : -else - if test "$ac_cv_type_void_p" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (void *) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_void_p=0 - fi fi + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 -$as_echo "$ac_cv_sizeof_void_p" >&6; } +fi -cat >>confdefs.h <<_ACEOF -#define SIZEOF_VOID_P $ac_cv_sizeof_void_p -_ACEOF +# Check whether --with-ucx-libdir was given. +if test "${with_ucx_libdir+set}" = set; then : + withval=$with_ucx_libdir; +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64 bit Linux" >&5 -$as_echo_n "checking for 64 bit Linux... " >&6; } - case $host_os in - *linux*) - if test $ac_cv_sizeof_void_p -eq 8; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx-libdir value" >&5 +$as_echo_n "checking --with-ucx-libdir value... " >&6; } + if test "$with_ucx_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx-libdir)" >&5 +$as_echo "simple no (specified --without-ucx-libdir)" >&6; } else - opal_btl_usnic_happy=no -fi - ;; - *) - opal_btl_usnic_happy=no - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_btl_usnic_happy" >&5 -$as_echo "$opal_btl_usnic_happy" >&6; } - -fi - - if test "$opal_btl_usnic_happy" = "yes"; then : - # The usnic BTL requires OFI libfabric support - - # Check for OFI libfabric. Note that $opal_ofi_happy is used in - # other configure.m4's to know if OFI/libfabric configured - # successfully. We only need to run the back-end checks once, but - # at least emit a "checking..." statement each subsequent time - # this macro is invoked so that configure's stdout has - # sensible/logical output. - if test -z "$opal_ofi_happy"; then : - - # Add --with options - -# Check whether --with-libfabric was given. -if test "${with_libfabric+set}" = set; then : - withval=$with_libfabric; -fi - - -# Check whether --with-libfabric-libdir was given. -if test "${with_libfabric_libdir+set}" = set; then : - withval=$with_libfabric_libdir; -fi - - - -# Check whether --with-ofi was given. -if test "${with_ofi+set}" = set; then : - withval=$with_ofi; -fi - - - -# Check whether --with-ofi-libdir was given. -if test "${with_ofi_libdir+set}" = set; then : - withval=$with_ofi_libdir; -fi - - - if test "$with_ofi" = ""; then - with_ofi=$with_libfabric - fi - - if test "$with_ofi_libdir" = ""; then - with_ofi_libdir=$with_libfabric_libdir - fi - - # Sanity check the --with values - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ofi value" >&5 -$as_echo_n "checking --with-ofi value... " >&6; } - if test "$with_ofi" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ofi)" >&5 -$as_echo "simple no (specified --without-ofi)" >&6; } -else - if test "$with_ofi" = "yes" || test "x$with_ofi" = "x"; then : + if test "$with_ucx_libdir" = "yes" || test "x$with_ucx_libdir" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 $as_echo "simple ok (unspecified value)" >&6; } else - if test ! -d "$with_ofi"; then : + if test ! -d "$with_ucx_libdir"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ofi not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_ofi not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ucx_libdir not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - if test "x`ls $with_ofi/include/rdma/fabric.h 2> /dev/null`" = "x"; then : + if test "x`ls $with_ucx_libdir/libucp.* 2> /dev/null`" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ofi/include/rdma/fabric.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_ofi/include/rdma/fabric.h not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ofi)" >&5 -$as_echo "sanity check ok ($with_ofi)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx_libdir)" >&5 +$as_echo "sanity check ok ($with_ucx_libdir)" >&6; } fi @@ -123196,118 +123402,113 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ofi-libdir value" >&5 -$as_echo_n "checking --with-ofi-libdir value... " >&6; } - if test "$with_ofi_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ofi-libdir)" >&5 -$as_echo "simple no (specified --without-ofi-libdir)" >&6; } -else - if test "$with_ofi_libdir" = "yes" || test "x$with_ofi_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } + if test "$with_ucx" != "no"; then : + if test -n "$with_ucx" && test "$with_ucx" != "yes"; then : + ompi_check_ucx_dir="$with_ucx" else - if test ! -d "$with_ofi_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ofi_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_ofi_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ucx" >&5 +$as_echo_n "checking for ucx... " >&6; } + +if test -n "$ucx_CFLAGS"; then + pkg_cv_ucx_CFLAGS="$ucx_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ucx_CFLAGS=`$PKG_CONFIG --cflags "ucx" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - if test "x`ls $with_ofi_libdir/libfabric.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ofi_libdir/libfabric.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_ofi_libdir/libfabric.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$ucx_LIBS"; then + pkg_cv_ucx_LIBS="$ucx_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ucx_LIBS=`$PKG_CONFIG --libs "ucx" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ofi_libdir)" >&5 -$as_echo "sanity check ok ($with_ofi_libdir)" >&6; } - + pkg_failed=yes fi - - + else + pkg_failed=untried fi - - +if test -n "$ucx_STATIC_LIBS"; then + pkg_cv_ucx_STATIC_LIBS="$ucx_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ucx_STATIC_LIBS=`$PKG_CONFIG --libs --static "ucx" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes fi - - + else + pkg_failed=untried fi +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_check_ofi_save_CPPFLAGS opal_check_ofi_save_LDFLAGS opal_check_ofi_save_LIBS; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_check_ofi_save_CPPFLAGS opal_check_ofi_save_LDFLAGS opal_check_ofi_save_LIBS\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - opal_check_ofi_save_CPPFLAGS=$CPPFLAGS - opal_check_ofi_save_LDFLAGS=$LDFLAGS - opal_check_ofi_save_LIBS=$LIBS - - opal_ofi_happy=yes - if test "$with_ofi" = "no"; then : - opal_ofi_happy=no +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + ucx_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ucx" 2>&1` + else + ucx_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ucx" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$ucx_PKG_ERRORS" >&5 - if test $opal_ofi_happy = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking looking for OFI libfabric in" >&5 -$as_echo_n "checking looking for OFI libfabric in... " >&6; } - if test "$with_ofi" != "yes"; then : - opal_ofi_dir=$with_ofi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ($opal_ofi_dir)" >&5 -$as_echo "($opal_ofi_dir)" >&6; } + true +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + true else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 -$as_echo "(default search paths)" >&6; } + ucx_CFLAGS=$pkg_cv_ucx_CFLAGS + ucx_LIBS=$pkg_cv_ucx_LIBS + ucx_STATIC_LIBS=$pkg_cv_ucx_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + ompi_check_ucx_dir=`$PKG_CONFIG --variable=prefix ucx` + if test "$ompi_check_ucx_dir" = "/usr"; then : + ompi_check_ucx_dir= fi - if test ! -z "$with_ofi_libdir" && \ - test "$with_ofi_libdir" != "yes"; then : - opal_ofi_libdir=$with_ofi_libdir fi - fi + ompi_check_ucx_happy="no" + if test -z "$ompi_check_ucx_dir"; then : - if test $opal_ofi_happy = yes; then : - - opal_check_package_opal_ofi_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_opal_ofi_save_LDFLAGS="$LDFLAGS" - opal_check_package_opal_ofi_save_LIBS="$LIBS" + opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" + opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" - opal_check_package_opal_ofi_orig_CPPFLAGS="$opal_ofi_CPPFLAGS" - opal_check_package_opal_ofi_orig_LDFLAGS="$opal_ofi_LDFLAGS" - opal_check_package_opal_ofi_orig_LIBS="$opal_ofi_LIBS" + opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" + opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" + opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" # This is stolen from autoconf to peek under the covers to get the @@ -123355,22 +123556,22 @@ # so this sucks, but there's no way to get through the progression # of header includes without killing off the cache variable and trying # again... - unset ac_cv_header_rdma_fabric_h + unset ac_cv_header_ucp_api_ucp_h # get rid of the trailing slash(es) - dir_prefix=$(echo $opal_ofi_dir | sed -e 'sX/*$XXg') + dir_prefix=$(echo | sed -e 'sX/*$XXg') opal_check_package_header_happy="no" if test "$dir_prefix" = "/usr" || \ test "$dir_prefix" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 $as_echo "looking for header without includes" >&6; } - for ac_header in rdma/fabric.h + for ac_header in ucp/api/ucp.h do : - ac_fn_c_check_header_mongrel "$LINENO" "rdma/fabric.h" "ac_cv_header_rdma_fabric_h" "$ac_includes_default" -if test "x$ac_cv_header_rdma_fabric_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_RDMA_FABRIC_H 1 +#define HAVE_UCP_API_UCP_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -123379,21 +123580,21 @@ if test "$opal_check_package_header_happy" = "no"; then : # no go on the as is - reset the cache and try again - unset ac_cv_header_rdma_fabric_h + unset ac_cv_header_ucp_api_ucp_h fi fi if test "$opal_check_package_header_happy" = "no"; then : if test "$dir_prefix" != ""; then : - opal_ofi_CPPFLAGS="$opal_ofi_CPPFLAGS -I$dir_prefix/include" + ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" fi - for ac_header in rdma/fabric.h + for ac_header in ucp/api/ucp.h do : - ac_fn_c_check_header_mongrel "$LINENO" "rdma/fabric.h" "ac_cv_header_rdma_fabric_h" "$ac_includes_default" -if test "x$ac_cv_header_rdma_fabric_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_RDMA_FABRIC_H 1 +#define HAVE_UCP_API_UCP_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -123408,15 +123609,15 @@ # see comment above - unset ac_cv_search_fi_getinfo + unset ac_cv_search_ucp_cleanup opal_check_package_lib_happy="no" - if test "$opal_ofi_libdir" != ""; then : + if test "" != ""; then : # libdir was specified - search only there - opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_ofi_libdir" - LDFLAGS="$LDFLAGS -L$opal_ofi_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 -$as_echo_n "checking for library containing fi_getinfo... " >&6; } -if ${ac_cv_search_fi_getinfo+:} false; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -123429,42 +123630,42 @@ #ifdef __cplusplus extern "C" #endif -char fi_getinfo (); +char ucp_cleanup (); int main () { -return fi_getinfo (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' fabric; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fi_getinfo=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fi_getinfo+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_fi_getinfo+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_fi_getinfo=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 -$as_echo "$ac_cv_search_fi_getinfo" >&6; } -ac_res=$ac_cv_search_fi_getinfo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -123473,22 +123674,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - unset ac_cv_search_fi_getinfo + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi else # libdir was not specified - go through search path - opal_check_package_libdir="$opal_ofi_dir" + opal_check_package_libdir="" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 -$as_echo_n "checking for library containing fi_getinfo... " >&6; } -if ${ac_cv_search_fi_getinfo+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -123501,42 +123702,42 @@ #ifdef __cplusplus extern "C" #endif -char fi_getinfo (); +char ucp_cleanup (); int main () { -return fi_getinfo (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' fabric; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fi_getinfo=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fi_getinfo+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_fi_getinfo+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_fi_getinfo=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 -$as_echo "$ac_cv_search_fi_getinfo" >&6; } -ac_res=$ac_cv_search_fi_getinfo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -123546,21 +123747,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - unset ac_cv_search_fi_getinfo + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 -$as_echo_n "checking for library containing fi_getinfo... " >&6; } -if ${ac_cv_search_fi_getinfo+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -123573,42 +123774,42 @@ #ifdef __cplusplus extern "C" #endif -char fi_getinfo (); +char ucp_cleanup (); int main () { -return fi_getinfo (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' fabric; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fi_getinfo=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fi_getinfo+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_fi_getinfo+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_fi_getinfo=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 -$as_echo "$ac_cv_search_fi_getinfo" >&6; } -ac_res=$ac_cv_search_fi_getinfo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -123618,22 +123819,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - unset ac_cv_search_fi_getinfo + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib64" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 -$as_echo_n "checking for library containing fi_getinfo... " >&6; } -if ${ac_cv_search_fi_getinfo+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -123646,42 +123847,42 @@ #ifdef __cplusplus extern "C" #endif -char fi_getinfo (); +char ucp_cleanup (); int main () { -return fi_getinfo (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' fabric; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fi_getinfo=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fi_getinfo+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_fi_getinfo+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_fi_getinfo=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 -$as_echo "$ac_cv_search_fi_getinfo" >&6; } -ac_res=$ac_cv_search_fi_getinfo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -123691,9 +123892,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - unset ac_cv_search_fi_getinfo + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi @@ -123790,12 +123991,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libfabric requires libnl v1 or v3" >&5 -$as_echo_n "checking if libfabric requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void fi_getinfo (void); +extern void ucp_cleanup (void); int main(int argc, char *argv[]) { - fi_getinfo (); + ucp_cleanup (); return 0; } EOF @@ -123807,14 +124008,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:123810: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS 1>&5 2>&1 +echo "configure:124011: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:123817: \$? = $opal_status" >&5 + echo "configure:124018: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -123834,8 +124035,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib fabric" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib fabric" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} fi @@ -123849,15 +124050,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 fi @@ -123866,19 +124067,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs fabric" + opal_libnlv1_libs="$opal_libnlv1_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -123957,19 +124158,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs fabric" + opal_libnlv3_libs="$opal_libnlv3_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -124110,11 +124311,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_fi_getinfo" != "no" && - test "$ac_cv_search_fi_getinfo" != "none required"; then : - opal_ofi_LIBS="$ac_cv_search_fi_getinfo " + if test "$ac_cv_search_ucp_cleanup" != "no" && + test "$ac_cv_search_ucp_cleanup" != "none required"; then : + ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" else - opal_ofi_LIBS="" + ompi_check_ucx_LIBS="-luct -lucm -lucs" fi opal_check_package_happy="yes" else @@ -124133,15 +124334,15 @@ # see comment above - unset ac_cv_search_fi_getinfo + unset ac_cv_search_ucp_cleanup opal_check_package_lib_happy="no" - if test "$opal_ofi_libdir" != ""; then : + if test "" != ""; then : # libdir was specified - search only there - opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_ofi_libdir" - LDFLAGS="$LDFLAGS -L$opal_ofi_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 -$as_echo_n "checking for library containing fi_getinfo... " >&6; } -if ${ac_cv_search_fi_getinfo+:} false; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -124154,42 +124355,42 @@ #ifdef __cplusplus extern "C" #endif -char fi_getinfo (); +char ucp_cleanup (); int main () { -return fi_getinfo (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' fabric; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fi_getinfo=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fi_getinfo+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_fi_getinfo+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_fi_getinfo=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 -$as_echo "$ac_cv_search_fi_getinfo" >&6; } -ac_res=$ac_cv_search_fi_getinfo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -124198,22 +124399,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - unset ac_cv_search_fi_getinfo + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi else # libdir was not specified - go through search path - opal_check_package_libdir="$opal_ofi_dir" + opal_check_package_libdir="" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 -$as_echo_n "checking for library containing fi_getinfo... " >&6; } -if ${ac_cv_search_fi_getinfo+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -124226,42 +124427,42 @@ #ifdef __cplusplus extern "C" #endif -char fi_getinfo (); +char ucp_cleanup (); int main () { -return fi_getinfo (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' fabric; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fi_getinfo=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fi_getinfo+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_fi_getinfo+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_fi_getinfo=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 -$as_echo "$ac_cv_search_fi_getinfo" >&6; } -ac_res=$ac_cv_search_fi_getinfo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -124271,21 +124472,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - unset ac_cv_search_fi_getinfo + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 -$as_echo_n "checking for library containing fi_getinfo... " >&6; } -if ${ac_cv_search_fi_getinfo+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -124298,42 +124499,42 @@ #ifdef __cplusplus extern "C" #endif -char fi_getinfo (); +char ucp_cleanup (); int main () { -return fi_getinfo (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' fabric; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fi_getinfo=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fi_getinfo+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_fi_getinfo+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_fi_getinfo=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 -$as_echo "$ac_cv_search_fi_getinfo" >&6; } -ac_res=$ac_cv_search_fi_getinfo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -124343,22 +124544,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - unset ac_cv_search_fi_getinfo + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib64" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 -$as_echo_n "checking for library containing fi_getinfo... " >&6; } -if ${ac_cv_search_fi_getinfo+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -124371,42 +124572,42 @@ #ifdef __cplusplus extern "C" #endif -char fi_getinfo (); +char ucp_cleanup (); int main () { -return fi_getinfo (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' fabric; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fi_getinfo=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fi_getinfo+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_fi_getinfo+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_fi_getinfo=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 -$as_echo "$ac_cv_search_fi_getinfo" >&6; } -ac_res=$ac_cv_search_fi_getinfo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -124416,9 +124617,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - unset ac_cv_search_fi_getinfo + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi @@ -124515,12 +124716,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libfabric requires libnl v1 or v3" >&5 -$as_echo_n "checking if libfabric requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void fi_getinfo (void); +extern void ucp_cleanup (void); int main(int argc, char *argv[]) { - fi_getinfo (); + ucp_cleanup (); return 0; } EOF @@ -124532,14 +124733,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:124535: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS 1>&5 2>&1 +echo "configure:124736: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:124542: \$? = $opal_status" >&5 + echo "configure:124743: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -124559,8 +124760,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib fabric" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib fabric" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} fi @@ -124574,15 +124775,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 fi @@ -124591,19 +124792,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs fabric" + opal_libnlv1_libs="$opal_libnlv1_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -124682,19 +124883,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs fabric" + opal_libnlv3_libs="$opal_libnlv3_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -124835,11 +125036,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_fi_getinfo" != "no" && - test "$ac_cv_search_fi_getinfo" != "none required"; then : - opal_ofi_LIBS="$ac_cv_search_fi_getinfo " + if test "$ac_cv_search_ucp_cleanup" != "no" && + test "$ac_cv_search_ucp_cleanup" != "none required"; then : + ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" else - opal_ofi_LIBS="" + ompi_check_ucx_LIBS="-luct -lucm -lucs" fi opal_check_package_happy="yes" else @@ -124874,28 +125075,76 @@ if test "$opal_check_package_happy" = "yes"; then : - + ompi_check_ucx_happy="yes" else - opal_ofi_CPPFLAGS="$opal_check_package_opal_ofi_orig_CPPFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - opal_ofi_LIBS="$opal_check_package_opal_ofi_orig_LIBS" - opal_ofi_happy=no + ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" + ompi_check_ucx_happy="no" fi - CPPFLAGS="$opal_check_package_opal_ofi_save_CPPFLAGS" - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - LIBS="$opal_check_package_opal_ofi_save_LIBS" + CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" + + if test "$ompi_check_ucx_happy" = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 +$as_echo_n "checking for UCX version compatibility... " >&6; } + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ompi_check_ucx_happy="yes" +else + ompi_check_ucx_happy="no" fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CPPFLAGS=$opal_check_ofi_save_CPPFLAGS - LDFLAGS=$opal_check_ofi_save_LDFLAGS - LIBS=$opal_check_ofi_save_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 +$as_echo "$ompi_check_ucx_happy" >&6; } +fi + if test "$ompi_check_ucx_happy" = "no"; then : + ompi_check_ucx_dir=/opt/ucx +fi +fi + if test "$ompi_check_ucx_happy" != yes; then : + if test -n "$with_ucx_libdir"; then : + ompi_check_ucx_libdir="$with_ucx_libdir" +else + files=`ls $ompi_check_ucx_dir/lib64/libucp.* 2> /dev/null | wc -l` + if test "$files" -gt 0; then : + ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib64 +else + ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib +fi +fi + + ompi_check_ucx_btl_uct_save_CPPFLAGS="$CPPFLAGS" + ompi_check_ucx_btl_uct_save_LDFLAGS="$LDFLAGS" + ompi_check_ucx_btl_uct_save_LIBS="$LIBS" + opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" + opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" + opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" + opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" + opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -124908,7 +125157,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -124927,7 +125176,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -124935,322 +125184,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="OpenFabrics OFI Libfabric: $opal_ofi_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_ucp_api_ucp_h + # get rid of the trailing slash(es) + dir_prefix=$(echo $ompi_check_ucx_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in ucp/api/ucp.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UCP_API_UCP_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi +done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_ucp_api_ucp_h +fi +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in ucp/api/ucp.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UCP_API_UCP_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +done + if test "$opal_check_package_header_happy" = "yes"; then : - if test $opal_ofi_happy = no; then : - if test -n "$with_ofi" && test "$with_ofi" != "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OFI libfabric support requested (via --with-ofi or --with-libfabric), but not found." >&5 -$as_echo "$as_me: WARNING: OFI libfabric support requested (via --with-ofi or --with-libfabric), but not found." >&2;} - as_fn_error $? "Cannot continue." "$LINENO" 5 -fi + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering -fi + # see comment above + unset ac_cv_search_ucp_cleanup + opal_check_package_lib_happy="no" + if test "$ompi_check_ucx_libdir" != ""; then : + # libdir was specified - search only there + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if OFI libfabric is available" >&5 -$as_echo_n "checking if OFI libfabric is available... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_ofi_happy" >&5 -$as_echo "$opal_ofi_happy" >&6; } -fi - - opal_btl_usnic_happy=$opal_ofi_happy -fi - - # The usnic BTL requires at least OFI libfabric v1.1 (there was a - # critical bug in libfabric v1.0). - if test "$opal_btl_usnic_happy" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OFI libfabric is >= v1.1" >&5 -$as_echo_n "checking whether OFI libfabric is >= v1.1... " >&6; } - opal_btl_usnic_CPPFLAGS_save=$CPPFLAGS - CPPFLAGS="$opal_ofi_CPPFLAGS $CPPFLAGS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); int main () { - -#if !defined(FI_MAJOR_VERSION) -#error your version of OFI libfabric is too old -#elif FI_VERSION(FI_MAJOR_VERSION, FI_MINOR_VERSION) < FI_VERSION(1, 1) -#error your version of OFI libfabric is too old -#endif - +return ucp_cleanup (); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - opal_btl_usnic_happy=yes -else - opal_btl_usnic_happy=no +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_btl_usnic_happy" >&5 -$as_echo "$opal_btl_usnic_happy" >&6; } - CPPFLAGS=$opal_btl_usnic_CPPFLAGS_save - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break fi - - # Make sure we can find the OFI libfabric usnic extensions header - if test "$opal_btl_usnic_happy" = "yes" ; then : - opal_btl_usnic_CPPFLAGS_save=$CPPFLAGS - CPPFLAGS="$opal_ofi_CPPFLAGS $CPPFLAGS" - ac_fn_c_check_header_mongrel "$LINENO" "rdma/fi_ext_usnic.h" "ac_cv_header_rdma_fi_ext_usnic_h" "$ac_includes_default" -if test "x$ac_cv_header_rdma_fi_ext_usnic_h" = xyes; then : +done +if ${ac_cv_search_ucp_cleanup+:} false; then : else - opal_btl_usnic_happy=no + ac_cv_search_ucp_cleanup=no fi - - - CPPFLAGS=$opal_btl_usnic_CPPFLAGS_save - +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - - # All done - if test "$opal_btl_usnic_happy" = "yes"; then : - should_build=$should_build -else - if test "$with_usnic" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --with-usnic was specified, but Cisco usNIC support cannot be built" >&5 -$as_echo "$as_me: WARNING: --with-usnic was specified, but Cisco usNIC support cannot be built" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - should_build=0 + opal_check_package_lib_happy="no" fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_ucx_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Cisco usNIC: $opal_btl_usnic_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi - if test "$should_build" = "1"; then : + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/btl/usnic/post_configure.sh" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components usnic" + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components usnic" - else - if test "btl" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/btl/usnic/lib${OPAL_LIB_PREFIX}mca_btl_usnic.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/btl/usnic/libmca_btl_usnic.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_btl_usnic_component;" >> $outfile.extern - echo " &mca_btl_usnic_component, " >> $outfile.struct - static_components="$static_components usnic" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:usnic can compile" >&5 -$as_echo_n "checking if MCA component btl:usnic can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_btl" = "usnic" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** btl component usnic was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_btl" = "usnic" ; then -as_fn_error $? "*** btl component usnic was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi +fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$btl_usnic_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -125263,7 +125547,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -125282,56 +125566,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $btl_usnic_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -125344,7 +125588,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -125363,7 +125607,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -125371,187 +125615,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_usnic_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ucp_cleanup (void); +int main(int argc, char *argv[]) { + ucp_cleanup (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:125642: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:125649: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs ucp" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones -fi - if test "$btl_usnic_WRAPPER_EXTRA_LIBS" = ""; then : +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - for arg in $btl_usnic_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + + libnl_sane=0 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + opal_libnlv3_libs="$opal_libnlv3_libs ucp" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +# Go through each item in the variable and only keep the unique ones - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do -else + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_done="`expr $opal_i \>= $opal_count`" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Increment the counter - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $btl_usnic_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -125575,75 +125908,10 @@ done -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$btl_usnic_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $btl_usnic_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -125666,734 +125934,190 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ucp_cleanup" != "no" && + test "$ac_cv_search_ucp_cleanup" != "none required"; then : + ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_usnic_WRAPPER_EXTRA_CPPFLAGS ($btl_usnic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring btl_usnic_WRAPPER_EXTRA_CPPFLAGS ($btl_usnic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + ompi_check_ucx_LIBS="-luct -lucm -lucs" fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" fi + +else + opal_check_package_happy="no" +fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:usnic can compile" >&5 -$as_echo_n "checking if MCA component btl:usnic can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # If this component was requested as the default for this - # type, then abort. - if test "$with_btl" = "usnic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"usnic\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"usnic\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "usnic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"usnic\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"usnic\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # see comment above + unset ac_cv_search_ucp_cleanup + opal_check_package_lib_happy="no" + if test "$ompi_check_ucx_libdir" != ""; then : + # libdir was specified - search only there + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # add component to all component list - all_components="$all_components usnic" +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : - - if test "$should_build" -eq 1 && test "X$enable_opal_btl_usnic_unit_tests" = "Xyes"; then - OPAL_BTL_USNIC_BUILD_UNIT_TESTS_TRUE= - OPAL_BTL_USNIC_BUILD_UNIT_TESTS_FALSE='#' else - OPAL_BTL_USNIC_BUILD_UNIT_TESTS_TRUE='#' - OPAL_BTL_USNIC_BUILD_UNIT_TESTS_FALSE= + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_ucx_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_btl_usnic_DSO=1 else - BUILD_opal_btl_usnic_DSO=0 + ac_cv_search_ucp_cleanup=no fi - if test "$BUILD_opal_btl_usnic_DSO" = "1"; then - MCA_BUILD_opal_btl_usnic_DSO_TRUE= - MCA_BUILD_opal_btl_usnic_DSO_FALSE='#' -else - MCA_BUILD_opal_btl_usnic_DSO_TRUE='#' - MCA_BUILD_opal_btl_usnic_DSO_FALSE= +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - - - if test "$should_build" = "1"; then : - components_last_result=1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - components_last_result=0 -fi - - unset compile_mode - - - - - - opal_show_subsubsubtitle "MCA component btl:vader (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/opal/mca/btl/vader" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "vader" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_btl" = "1"; then : - want_component=0 -fi - if test "$DISABLE_btl_vader" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_btl" - SHARED_COMPONENT="$DSO_btl_vader" - - STATIC_FRAMEWORK="$STATIC_btl" - STATIC_COMPONENT="$STATIC_btl_vader" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:vader compile mode" >&5 -$as_echo_n "checking for MCA component btl:vader compile mode... " >&6; } - if test "$DIRECT_btl" = "vader" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files opal/mca/btl/vader/Makefile" - - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in btl_vader_xpmem_happy btl_vader_cma_happy btl_vader_knem_happy; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"btl_vader_xpmem_happy btl_vader_cma_happy btl_vader_knem_happy\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - # Check for single-copy APIs - - - if test -z "$opal_check_xpmem_happy" ; then - # check for a cray installed xpmem first - - if test -z "$opal_check_cray_xpmem_happy" ; then - -# Check whether --with-cray_xpmem was given. -if test "${with_cray_xpmem+set}" = set; then : - withval=$with_cray_xpmem; -else - with_cray_xpmem=auto -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Cray XPMEM support" >&5 -$as_echo_n "checking for Cray XPMEM support... " >&6; } - if test "$with_cray_xpmem" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_xpmem_happy=no -else - if test "$with_cray_xpmem" = "auto" || test "$with_cray_xpmem" = "yes"; then : - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_XPMEM" >&5 -$as_echo_n "checking for CRAY_XPMEM... " >&6; } - -if test -n "$CRAY_XPMEM_CFLAGS"; then - pkg_cv_CRAY_XPMEM_CFLAGS="$CRAY_XPMEM_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-xpmem\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-xpmem") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_XPMEM_CFLAGS=`$PKG_CONFIG --cflags "cray-xpmem" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_XPMEM_LIBS"; then - pkg_cv_CRAY_XPMEM_LIBS="$CRAY_XPMEM_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-xpmem\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-xpmem") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_XPMEM_LIBS=`$PKG_CONFIG --libs "cray-xpmem" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_XPMEM_STATIC_LIBS"; then - pkg_cv_CRAY_XPMEM_STATIC_LIBS="$CRAY_XPMEM_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-xpmem\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-xpmem") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_XPMEM_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-xpmem" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_XPMEM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-xpmem" 2>&1` - else - CRAY_XPMEM_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-xpmem" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_XPMEM_PKG_ERRORS" >&5 - - opal_check_cray_xpmem_happy="no" - if test "$with_cray_xpmem" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cray XPMEM support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: Cray XPMEM support requested but pkg-config failed." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_xpmem_happy="no" - if test "$with_cray_xpmem" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cray XPMEM support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: Cray XPMEM support requested but pkg-config failed." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -else - CRAY_XPMEM_CFLAGS=$pkg_cv_CRAY_XPMEM_CFLAGS - CRAY_XPMEM_LIBS=$pkg_cv_CRAY_XPMEM_LIBS - CRAY_XPMEM_STATIC_LIBS=$pkg_cv_CRAY_XPMEM_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_xpmem_happy="yes" -fi -fi - -fi - - if test "$opal_check_cray_xpmem_happy" = "yes" && test "$enable_static" = "yes"; then : - CRAY_XPMEM_LIBS = $CRAY_XPMEM_STATIC_LIBS -fi - fi - - if test "$opal_check_cray_xpmem_happy" = "yes"; then : - opal_check_xpmem_LDFLAGS="$opal_check_xpmem_LDFLAGS $CRAY_XPMEM_LIBS" - opal_check_xpmem_CPPFLAGS="$opal_check_xpmem_CPPFLAGS $CRAY_XPMEM_CFLAGS" - opal_check_xpmem_LIBS="$opal_check_xpmem_LIBS $CRAY_XPMEM_LIBS" - -cat >>confdefs.h <<_ACEOF -#define HAVE_XPMEM_H 1 -_ACEOF - - opal_check_xpmem_happy=yes -else - opal_check_xpmem_happy=no -fi - - - if test "$opal_check_xpmem_happy" = no ; then - -# Check whether --with-xpmem was given. -if test "${with_xpmem+set}" = set; then : - withval=$with_xpmem; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-xpmem value" >&5 -$as_echo_n "checking --with-xpmem value... " >&6; } - if test "$with_xpmem" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-xpmem)" >&5 -$as_echo "simple no (specified --without-xpmem)" >&6; } -else - if test "$with_xpmem" = "yes" || test "x$with_xpmem" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_xpmem"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_xpmem not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_xpmem not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_xpmem/include/xpmem.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_xpmem/include/xpmem.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_xpmem/include/xpmem.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_xpmem)" >&5 -$as_echo "sanity check ok ($with_xpmem)" >&6; } - -fi - - -fi - - -fi - - -fi - - - -# Check whether --with-xpmem-libdir was given. -if test "${with_xpmem_libdir+set}" = set; then : - withval=$with_xpmem_libdir; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-xpmem-libdir value" >&5 -$as_echo_n "checking --with-xpmem-libdir value... " >&6; } - if test "$with_xpmem_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-xpmem-libdir)" >&5 -$as_echo "simple no (specified --without-xpmem-libdir)" >&6; } -else - if test "$with_xpmem_libdir" = "yes" || test "x$with_xpmem_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_xpmem_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_xpmem_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_xpmem_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_xpmem_libdir/libxpmem.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_xpmem_libdir/libxpmem.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_xpmem_libdir/libxpmem.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_xpmem_libdir)" >&5 -$as_echo "sanity check ok ($with_xpmem_libdir)" >&6; } - -fi - - -fi - - -fi - - -fi - - - if test ! "$with_xpmem" = "no" ; then - if test ! -z "$with_xpmem" && test "$with_xpmem" != "yes" ; then - opal_check_xpmem_dir="$with_xpmem" - fi - - if test ! -z "$with_xpmem_libdir" && test "$with_xpmem_libdir" != "yes" ; then - opal_check_xpmem_libdir="$with_xpmem_libdir" - fi - - - opal_check_package_opal_check_xpmem_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_opal_check_xpmem_save_LDFLAGS="$LDFLAGS" - opal_check_package_opal_check_xpmem_save_LIBS="$LIBS" - - opal_check_package_opal_check_xpmem_orig_CPPFLAGS="$opal_check_xpmem_CPPFLAGS" - opal_check_package_opal_check_xpmem_orig_LDFLAGS="$opal_check_xpmem_LDFLAGS" - opal_check_package_opal_check_xpmem_orig_LIBS="$opal_check_xpmem_LIBS" - - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_xpmem_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $opal_check_xpmem_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in xpmem.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "xpmem.h" "ac_cv_header_xpmem_h" "$ac_includes_default" -if test "x$ac_cv_header_xpmem_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_XPMEM_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_xpmem_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - opal_check_xpmem_CPPFLAGS="$opal_check_xpmem_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in xpmem.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "xpmem.h" "ac_cv_header_xpmem_h" "$ac_includes_default" -if test "x$ac_cv_header_xpmem_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_XPMEM_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_xpmem_make - opal_check_package_lib_happy="no" - if test "$opal_check_xpmem_libdir" != ""; then : - # libdir was specified - search only there - opal_check_xpmem_LDFLAGS="$opal_check_xpmem_LDFLAGS -L$opal_check_xpmem_libdir" - LDFLAGS="$LDFLAGS -L$opal_check_xpmem_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xpmem_make" >&5 -$as_echo_n "checking for library containing xpmem_make... " >&6; } -if ${ac_cv_search_xpmem_make+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char xpmem_make (); -int -main () -{ -return xpmem_make (); - ; - return 0; -} -_ACEOF -for ac_lib in '' xpmem; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_xpmem_make=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_xpmem_make+:} false; then : - break -fi -done -if ${ac_cv_search_xpmem_make+:} false; then : - -else - ac_cv_search_xpmem_make=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xpmem_make" >&5 -$as_echo "$ac_cv_search_xpmem_make" >&6; } -ac_res=$ac_cv_search_xpmem_make -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" - opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" - unset ac_cv_search_xpmem_make -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$opal_check_xpmem_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xpmem_make" >&5 -$as_echo_n "checking for library containing xpmem_make... " >&6; } -if ${ac_cv_search_xpmem_make+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char xpmem_make (); -int -main () -{ -return xpmem_make (); - ; - return 0; -} -_ACEOF -for ac_lib in '' xpmem; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_xpmem_make=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_xpmem_make+:} false; then : - break -fi -done -if ${ac_cv_search_xpmem_make+:} false; then : - -else - ac_cv_search_xpmem_make=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xpmem_make" >&5 -$as_echo "$ac_cv_search_xpmem_make" >&6; } -ac_res=$ac_cv_search_xpmem_make -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" + opal_check_package_lib_happy="no" fi if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" - opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" - unset ac_cv_search_xpmem_make + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_check_xpmem_LDFLAGS="$opal_check_xpmem_LDFLAGS -L$opal_check_package_libdir/lib" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xpmem_make" >&5 -$as_echo_n "checking for library containing xpmem_make... " >&6; } -if ${ac_cv_search_xpmem_make+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -126406,42 +126130,42 @@ #ifdef __cplusplus extern "C" #endif -char xpmem_make (); +char ucp_cleanup (); int main () { -return xpmem_make (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' xpmem; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_xpmem_make=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_xpmem_make+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_xpmem_make+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_xpmem_make=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xpmem_make" >&5 -$as_echo "$ac_cv_search_xpmem_make" >&6; } -ac_res=$ac_cv_search_xpmem_make +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -126451,22 +126175,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" - opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" - unset ac_cv_search_xpmem_make + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_check_xpmem_LDFLAGS="$opal_check_xpmem_LDFLAGS -L$opal_check_package_libdir/lib64" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xpmem_make" >&5 -$as_echo_n "checking for library containing xpmem_make... " >&6; } -if ${ac_cv_search_xpmem_make+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -126479,42 +126203,42 @@ #ifdef __cplusplus extern "C" #endif -char xpmem_make (); +char ucp_cleanup (); int main () { -return xpmem_make (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' xpmem; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_xpmem_make=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_xpmem_make+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_xpmem_make+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_xpmem_make=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xpmem_make" >&5 -$as_echo "$ac_cv_search_xpmem_make" >&6; } -ac_res=$ac_cv_search_xpmem_make +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -126524,9 +126248,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" - opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" - unset ac_cv_search_xpmem_make + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi @@ -126623,12 +126347,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libxpmem requires libnl v1 or v3" >&5 -$as_echo_n "checking if libxpmem requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void xpmem_make (void); +extern void ucp_cleanup (void); int main(int argc, char *argv[]) { - xpmem_make (); + ucp_cleanup (); return 0; } EOF @@ -126640,14 +126364,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:126643: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lxpmem $LIBS $opal_check_xpmem_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lxpmem $LIBS $opal_check_xpmem_LIBS 1>&5 2>&1 +echo "configure:126367: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:126650: \$? = $opal_status" >&5 + echo "configure:126374: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -126667,8 +126391,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib xpmem" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib xpmem" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} fi @@ -126682,15 +126406,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libxpmem links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libxpmem links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libxpmem (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libxpmem (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libxpmem." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libxpmem." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 fi @@ -126699,19 +126423,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas xpmem requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas xpmem requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libxpmem (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libxpmem (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libxpmem." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libxpmem." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs xpmem" + opal_libnlv1_libs="$opal_libnlv1_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -126790,19 +126514,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libxpmem requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libxpmem requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libxpmem (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libxpmem (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libxpmem." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libxpmem." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs xpmem" + opal_libnlv3_libs="$opal_libnlv3_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -126943,11 +126667,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_xpmem_make" != "no" && - test "$ac_cv_search_xpmem_make" != "none required"; then : - opal_check_xpmem_LIBS="$ac_cv_search_xpmem_make " + if test "$ac_cv_search_ucp_cleanup" != "no" && + test "$ac_cv_search_ucp_cleanup" != "none required"; then : + ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" else - opal_check_xpmem_LIBS="" + ompi_check_ucx_LIBS="-luct -lucm -lucs" fi opal_check_package_happy="yes" else @@ -126955,353 +126679,439 @@ fi -else - opal_check_package_happy="no" fi -else + unset opal_check_package_header_happy - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # see comment above - unset ac_cv_search_xpmem_make - opal_check_package_lib_happy="no" - if test "$opal_check_xpmem_libdir" != ""; then : - # libdir was specified - search only there - opal_check_xpmem_LDFLAGS="$opal_check_xpmem_LDFLAGS -L$opal_check_xpmem_libdir" - LDFLAGS="$LDFLAGS -L$opal_check_xpmem_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xpmem_make" >&5 -$as_echo_n "checking for library containing xpmem_make... " >&6; } -if ${ac_cv_search_xpmem_make+:} false; then : - $as_echo_n "(cached) " >&6 + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_ucx_happy="yes" else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" + ompi_check_ucx_happy="no" +fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char xpmem_make (); + CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" + + + CPPFLAGS="$ompi_check_ucx_btl_uct_save_CPPFLAGS" + LDFLAGS="$ompi_check_ucx_btl_uct_save_LDFLAGS" + LIBS="$ompi_check_ucx_btl_uct_save_LIBS" + + if test "$ompi_check_ucx_happy" = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 +$as_echo_n "checking for UCX version compatibility... " >&6; } + + old_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include int main () { -return xpmem_make (); + ; return 0; } _ACEOF -for ac_lib in '' xpmem; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_xpmem_make=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_xpmem_make+:} false; then : - break -fi -done -if ${ac_cv_search_xpmem_make+:} false; then : - +if ac_fn_c_try_compile "$LINENO"; then : + ompi_check_ucx_happy="yes" else - ac_cv_search_xpmem_make=no + ompi_check_ucx_happy="no" fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 +$as_echo "$ompi_check_ucx_happy" >&6; } + CPPFLAGS=$old_CPPFLAGS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xpmem_make" >&5 -$as_echo "$ac_cv_search_xpmem_make" >&6; } -ac_res=$ac_cv_search_xpmem_make -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" fi - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" - opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" - unset ac_cv_search_xpmem_make + old_CPPFLAGS="$CPPFLAGS" + if test -n "$ompi_check_ucx_dir"; then : + CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$opal_check_xpmem_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xpmem_make" >&5 -$as_echo_n "checking for library containing xpmem_make... " >&6; } -if ${ac_cv_search_xpmem_make+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + # Turn off UCX version v1.8 due to issue #8321 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking UCX version" >&5 +$as_echo_n "checking UCX version... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char xpmem_make (); +#include + #if (UCP_API_MAJOR == 1) && (UCP_API_MINOR == 8) + #error "Invalid version" + #endif int main () { -return xpmem_make (); + ; return 0; } _ACEOF -for ac_lib in '' xpmem; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_xpmem_make=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_xpmem_make+:} false; then : - break +if ac_fn_c_try_cpp "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok (not 1.8.x)" >&5 +$as_echo "ok (not 1.8.x)" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: bad (1.8.x)" >&5 +$as_echo "bad (1.8.x)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: UCX support skipped because version 1.8.x was found, which has a known catastrophic issue." >&5 +$as_echo "$as_me: WARNING: UCX support skipped because version 1.8.x was found, which has a known catastrophic issue." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Please upgrade to UCX version 1.9 or higher." >&5 +$as_echo "$as_me: WARNING: Please upgrade to UCX version 1.9 or higher." >&2;} + ompi_check_ucx_happy=no fi -done -if ${ac_cv_search_xpmem_make+:} false; then : +rm -f conftest.err conftest.i conftest.$ac_ext + if test "$ompi_check_ucx_happy" = yes; then : + ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbr" "ac_cv_have_decl_ucp_tag_send_nbr" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_nbr" = xyes; then : + ac_have_decl=1 else - ac_cv_search_xpmem_make=no + ac_have_decl=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_SEND_NBR $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + +$as_echo "#define HAVE_UCP_TAG_SEND_NBR 1" >>confdefs.h + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xpmem_make" >&5 -$as_echo "$ac_cv_search_xpmem_make" >&6; } -ac_res=$ac_cv_search_xpmem_make -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + + ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nb" "ac_cv_have_decl_ucp_ep_flush_nb" "#include +" +if test "x$ac_cv_have_decl_ucp_ep_flush_nb" = xyes; then : + ac_have_decl=1 else - opal_check_package_lib_happy="no" + ac_have_decl=0 fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" - opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" - unset ac_cv_search_xpmem_make +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_EP_FLUSH_NB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_worker_flush_nb" "ac_cv_have_decl_ucp_worker_flush_nb" "#include +" +if test "x$ac_cv_have_decl_ucp_worker_flush_nb" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_WORKER_FLUSH_NB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_request_check_status" "ac_cv_have_decl_ucp_request_check_status" "#include +" +if test "x$ac_cv_have_decl_ucp_request_check_status" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_check_xpmem_LDFLAGS="$opal_check_xpmem_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xpmem_make" >&5 -$as_echo_n "checking for library containing xpmem_make... " >&6; } -if ${ac_cv_search_xpmem_make+:} false; then : - $as_echo_n "(cached) " >&6 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_REQUEST_CHECK_STATUS $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_put_nb" "ac_cv_have_decl_ucp_put_nb" "#include +" +if test "x$ac_cv_have_decl_ucp_put_nb" = xyes; then : + ac_have_decl=1 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + ac_have_decl=0 +fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char xpmem_make (); -int -main () -{ -return xpmem_make (); - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_PUT_NB $ac_have_decl _ACEOF -for ac_lib in '' xpmem; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_xpmem_make=$ac_res +ac_fn_c_check_decl "$LINENO" "ucp_get_nb" "ac_cv_have_decl_ucp_get_nb" "#include +" +if test "x$ac_cv_have_decl_ucp_get_nb" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_xpmem_make+:} false; then : - break + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_GET_NB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_put_nbx" "ac_cv_have_decl_ucp_put_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_put_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -done -if ${ac_cv_search_xpmem_make+:} false; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_PUT_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_get_nbx" "ac_cv_have_decl_ucp_get_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_get_nbx" = xyes; then : + ac_have_decl=1 else - ac_cv_search_xpmem_make=no + ac_have_decl=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_GET_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_atomic_op_nbx" "ac_cv_have_decl_ucp_atomic_op_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_atomic_op_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xpmem_make" >&5 -$as_echo "$ac_cv_search_xpmem_make" >&6; } -ac_res=$ac_cv_search_xpmem_make -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_OP_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nbx" "ac_cv_have_decl_ucp_ep_flush_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_ep_flush_nbx" = xyes; then : + ac_have_decl=1 else - opal_check_package_lib_happy="no" + ac_have_decl=0 fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" - opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" - unset ac_cv_search_xpmem_make +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_EP_FLUSH_NBX $ac_have_decl +_ACEOF + + ac_fn_c_check_decl "$LINENO" "ucm_test_events" "ac_cv_have_decl_ucm_test_events" "#include +" +if test "x$ac_cv_have_decl_ucm_test_events" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCM_TEST_EVENTS $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucm_test_external_events" "ac_cv_have_decl_ucm_test_external_events" "#include +" +if test "x$ac_cv_have_decl_ucm_test_external_events" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCM_TEST_EXTERNAL_EVENTS $ac_have_decl +_ACEOF + + ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_AND" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_check_xpmem_LDFLAGS="$opal_check_xpmem_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xpmem_make" >&5 -$as_echo_n "checking for library containing xpmem_make... " >&6; } -if ${ac_cv_search_xpmem_make+:} false; then : - $as_echo_n "(cached) " >&6 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_POST_OP_AND $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_OR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" = xyes; then : + ac_have_decl=1 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + ac_have_decl=0 +fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char xpmem_make (); -int -main () -{ -return xpmem_make (); - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_POST_OP_OR $ac_have_decl _ACEOF -for ac_lib in '' xpmem; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_xpmem_make=$ac_res +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_XOR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_xpmem_make+:} false; then : - break + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_POST_OP_XOR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FAND" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -done -if ${ac_cv_search_xpmem_make+:} false; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FAND $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" = xyes; then : + ac_have_decl=1 else - ac_cv_search_xpmem_make=no + ac_have_decl=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FOR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FXOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xpmem_make" >&5 -$as_echo "$ac_cv_search_xpmem_make" >&6; } -ac_res=$ac_cv_search_xpmem_make -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FXOR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "#include +" +if test "x$ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" = xyes; then : + ac_have_decl=1 else - opal_check_package_lib_happy="no" + ac_have_decl=0 fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" - opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" - unset ac_cv_search_xpmem_make +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" "ac_cv_have_decl_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" "#include +" +if test "x$ac_cv_have_decl_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_OP_ATTR_FLAG_MULTI_SEND" "ac_cv_have_decl_UCP_OP_ATTR_FLAG_MULTI_SEND" "#include +" +if test "x$ac_cv_have_decl_UCP_OP_ATTR_FLAG_MULTI_SEND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_OP_ATTR_FLAG_MULTI_SEND $ac_have_decl +_ACEOF + + ac_fn_c_check_decl "$LINENO" "UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "#include +" +if test "x$ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + +$as_echo "#define HAVE_UCP_WORKER_ADDRESS_FLAGS 1" >>confdefs.h + fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + ac_fn_c_check_decl "$LINENO" "UCP_ATTR_FIELD_MEMORY_TYPES" "ac_cv_have_decl_UCP_ATTR_FIELD_MEMORY_TYPES" "#include +" +if test "x$ac_cv_have_decl_UCP_ATTR_FIELD_MEMORY_TYPES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATTR_FIELD_MEMORY_TYPES $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : +$as_echo "#define HAVE_UCP_ATTR_MEMORY_TYPES 1" >>confdefs.h - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbx" "ac_cv_have_decl_ucp_tag_send_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_SEND_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_tag_send_sync_nbx" "ac_cv_have_decl_ucp_tag_send_sync_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_sync_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" - eval $opal_str - unset opal_str +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_SEND_SYNC_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_tag_recv_nbx" "ac_cv_have_decl_ucp_tag_recv_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_recv_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_RECV_NBX $ac_have_decl +_ACEOF + + ac_fn_c_check_type "$LINENO" "ucp_request_param_t" "ac_cv_type_ucp_request_param_t" "#include +" +if test "x$ac_cv_type_ucp_request_param_t" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UCP_REQUEST_PARAM_T 1 +_ACEOF + + +fi + + +fi + CPPFLAGS=$old_CPPFLAGS - opal_libnl_sane=1 - case $host in - *linux*) @@ -127314,7 +127124,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -127333,7 +127143,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -127341,303 +127151,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libxpmem requires libnl v1 or v3" >&5 -$as_echo_n "checking if libxpmem requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void xpmem_make (void); -int main(int argc, char *argv[]) { - xpmem_make (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:127368: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lxpmem $LIBS $opal_check_xpmem_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lxpmem $LIBS $opal_check_xpmem_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:127375: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib xpmem" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib xpmem" >&2;} - -fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libxpmem links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libxpmem links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libxpmem (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libxpmem (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libxpmem." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libxpmem." >&2;} - - libnl_sane=0 -fi - - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas xpmem requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas xpmem requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libxpmem (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libxpmem (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libxpmem." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libxpmem." >&2;} - - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs xpmem" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" - - # Increment the counter - - opal_i="`expr $opal_i + 1`" - done - - # If we didn't find the token, add it to the "array" - - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval - -# Clean up - -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi - -fi - - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libxpmem requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libxpmem requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libxpmem (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libxpmem (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libxpmem." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libxpmem." >&2;} - - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs xpmem" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" - - # Increment the counter - - opal_i="`expr $opal_i + 1`" - done - - # If we didn't find the token, add it to the "array" + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="Open UCX: $ompi_check_ucx_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" else - opal_i="`expr $opal_i - 1`" - fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval - -# Clean up - -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi - -fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - ;; - esac - - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -127660,28 +127188,26 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no fi - fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_xpmem_make" != "no" && - test "$ac_cv_search_xpmem_make" != "none required"; then : - opal_check_xpmem_LIBS="$ac_cv_search_xpmem_make " -else - opal_check_xpmem_LIBS="" -fi - opal_check_package_happy="yes" + if test "$ompi_check_ucx_happy" = "yes"; then : + btl_uct_CPPFLAGS="$btl_uct_CPPFLAGS $ompi_check_ucx_CPPFLAGS" + btl_uct_LDFLAGS="$btl_uct_LDFLAGS $ompi_check_ucx_LDFLAGS" + btl_uct_LIBS="$btl_uct_LIBS $ompi_check_ucx_LIBS" + +$as_echo "#define HAVE_UCX 1" >>confdefs.h + + btl_uct_happy="yes" else - opal_check_package_happy="no" + if test ! -z "$with_ucx" && test "$with_ucx" != "no"; then : + as_fn_error $? "UCX support requested but not found. Aborting" "$LINENO" 5 fi +$as_echo "#define HAVE_UCX 0" >>confdefs.h + btl_uct_happy="no" fi - unset opal_check_package_header_happy # Unwind the index @@ -127705,28 +127231,26 @@ done - - if test "$opal_check_package_happy" = "yes"; then : - opal_check_xpmem_happy="yes" -else - opal_check_xpmem_CPPFLAGS="$opal_check_package_opal_check_xpmem_orig_CPPFLAGS" - opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" - opal_check_xpmem_LIBS="$opal_check_package_opal_check_xpmem_orig_LIBS" - + # Check whether --enable-uct-version-check was given. +if test "${enable_uct_version_check+set}" = set; then : + enableval=$enable_uct_version_check; fi - CPPFLAGS="$opal_check_package_opal_check_xpmem_save_CPPFLAGS" - LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" - LIBS="$opal_check_package_opal_check_xpmem_save_LIBS" - - - if test "$opal_check_xpmem_happy" = "no" && test -n "$with_xpmem" && test "$with_xpmem" != "yes" ; then - as_fn_error $? "XPMEM support requested but not found. Aborting" "$LINENO" 5 - fi - fi - fi - + { $as_echo "$as_me:${as_lineno-$LINENO}: checking check uct version" >&5 +$as_echo_n "checking check uct version... " >&6; } + if test "$enable_uct_version_check" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + max_allowed_uct_major=1 + max_allowed_uct_minor=8 + if test "$btl_uct_happy" = "yes" && test "$enable_uct_version_check" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking UCT version compatibility" >&5 +$as_echo_n "checking UCT version compatibility... " >&6; } # Is the private index set? If not, set it. @@ -127738,7 +127262,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in CPPFLAGS_save; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -127757,29 +127281,42 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"CPPFLAGS_save\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` + CPPFLAGS_save="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $btl_uct_CPPFLAGS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #if (UCT_VERNO_MAJOR > $max_allowed_uct_major) + #error "UCT MAJOR VERNO > $max_allowed_uct_major" + #endif + #if (UCT_VERNO_MINOR > $max_allowed_uct_minor) + #error "UCT MINOR VERNO > $max_allowed_uct_minor" + #endif +int +main () +{ - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Shared memory/XPMEM: $opal_check_xpmem_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi - + ; + return 0; +} +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: UCT version compatible" >&5 +$as_echo "UCT version compatible" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: UCT version not compatible - need UCX $max_allowed_uct_major.$max_allowed_uct_minor or older" >&5 +$as_echo "UCT version not compatible - need UCX $max_allowed_uct_major.$max_allowed_uct_minor or older" >&6; } + btl_uct_happy="no" +fi +rm -f conftest.err conftest.i conftest.$ac_ext + CPPFLAGS="$CPPFLAGS_save" # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -127801,21 +127338,9 @@ unset $opal_var done - fi - if test "$opal_check_xpmem_happy" = "yes"; then : - - btl_vader_CPPFLAGS="$btl_vader_CPPFLAGS $opal_check_xpmem_CPPFLAGS" - btl_vader_LDFLAGS="$btl_vader_LDFLAGS $opal_check_xpmem_LDFLAGS" - btl_vader_LIBS="$btl_vader_LIBS $opal_check_xpmem_LIBS" - btl_vader_xpmem_happy=1 -else - btl_vader_xpmem_happy=0 -fi - - - if test -z "$opal_check_knem_happy" ; then + if test "$btl_uct_happy" = "yes" ; then # Is the private index set? If not, set it. @@ -127827,7 +127352,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_check_knem_btl_vader_save_CPPFLAGS opal_check_knem_dir; do + for opal_var in CPPFLAGS_save; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -127846,7 +127371,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_check_knem_btl_vader_save_CPPFLAGS opal_check_knem_dir\"" + opal_str="opal_scope_$opal_scope_index=\"CPPFLAGS_save\"" eval $opal_str unset opal_str @@ -127854,64 +127379,141 @@ opal_scope_index=`expr $opal_scope_index + 1` -# Check whether --with-knem was given. -if test "${with_knem+set}" = set; then : - withval=$with_knem; + CPPFLAGS_save="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $btl_uct_CPPFLAGS" + + ac_fn_c_check_decl "$LINENO" "UCT_PROGRESS_THREAD_SAFE" "ac_cv_have_decl_UCT_PROGRESS_THREAD_SAFE" "#include +" +if test "x$ac_cv_have_decl_UCT_PROGRESS_THREAD_SAFE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCT_PROGRESS_THREAD_SAFE $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCT_CB_FLAG_SYNC" "ac_cv_have_decl_UCT_CB_FLAG_SYNC" "#include +" +if test "x$ac_cv_have_decl_UCT_CB_FLAG_SYNC" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCT_CB_FLAG_SYNC $ac_have_decl +_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-knem value" >&5 -$as_echo_n "checking --with-knem value... " >&6; } - if test "$with_knem" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-knem)" >&5 -$as_echo "simple no (specified --without-knem)" >&6; } -else - if test "$with_knem" = "yes" || test "x$with_knem" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_knem"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_knem not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_knem not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_knem/include/knem_io.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_knem/include/knem_io.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_knem/include/knem_io.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_knem)" >&5 -$as_echo "sanity check ok ($with_knem)" >&6; } + CPPFLAGS="$CPPFLAGS_save" -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -fi + fi + if test "$btl_uct_happy" = "yes"; then : + should_build=$should_build + btl_uct_LIBS="$btl_uct_LIBS -luct" +else + should_build=0 fi + # substitute in the things needed to build ucx -fi - opal_check_knem_btl_vader_save_CPPFLAGS="$CPPFLAGS" - opal_check_knem_happy=no - if test "$with_knem" != "no"; then : - if test ! -z "$with_knem" && test "$with_knem" != "yes"; then : - opal_check_knem_dir="$with_knem" -fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/btl/uct/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components uct" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components uct" + else + if test "btl" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/btl/uct/lib${OPAL_LIB_PREFIX}mca_btl_uct.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/btl/uct/libmca_btl_uct.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_btl_uct_component;" >> $outfile.extern + echo " &mca_btl_uct_component, " >> $outfile.struct + static_components="$static_components uct" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:uct can compile" >&5 +$as_echo_n "checking if MCA component btl:uct can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_btl" = "uct" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** btl component uct was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_btl" = "uct" ; then +as_fn_error $? "*** btl component uct was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$btl_uct_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -127924,7 +127526,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -127943,7 +127545,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -127951,61 +127553,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_knem_io_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $opal_check_knem_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in knem_io.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "knem_io.h" "ac_cv_header_knem_io_h" "$ac_includes_default" -if test "x$ac_cv_header_knem_io_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_KNEM_IO_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_knem_io_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - ompi_check_knem_CPPFLAGS="$ompi_check_knem_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in knem_io.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "knem_io.h" "ac_cv_header_knem_io_h" "$ac_includes_default" -if test "x$ac_cv_header_knem_io_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_KNEM_IO_H 1 -_ACEOF - opal_check_package_header_happy="yes" + for arg in $btl_uct_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - opal_check_knem_happy="yes" + done fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_check_knem_happy="yes" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - unset opal_check_package_header_happy +fi + done # Unwind the index @@ -128029,39 +127594,7 @@ done -fi - - CPPFLAGS="$CPPFLAGS $ompi_check_knem_CPPFLAGS" - - # need at least version 0x0000000b - if test "$opal_check_knem_happy" = "yes" ; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include - -int -main () -{ - -#if KNEM_ABI_VERSION < 0xc -#error "Version less than 0xc" -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - opal_check_knem_happy=yes else - opal_check_knem_happy=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext - fi - - CPPFLAGS="$opal_check_knem_btl_vader_save_CPPFLAGS" - @@ -128074,7 +127607,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -128093,7 +127626,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -128101,20 +127634,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Shared memory/Linux KNEM: $opal_check_knem_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + for arg in $btl_uct_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -128138,6 +127675,66 @@ done +fi + if test "$btl_uct_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $btl_uct_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -128159,32 +127756,8 @@ unset $opal_var done - fi - if test "$opal_check_knem_happy" = "yes"; then : - btl_vader_CPPFLAGS="$btl_vader_CPPFLAGS $ompi_check_knem_CPPFLAGS" - btl_vader_knem_happy=1 else - if test ! -z "$with_knem" && test "$with_knem" != "no"; then : - as_fn_error $? "KNEM support requested but not found. Aborting" "$LINENO" 5 -fi - btl_vader_knem_happy=0 -fi - - - -# Check whether --with-cma was given. -if test "${with_cma+set}" = set; then : - withval=$with_cma; -fi - - - if test "x$with_cma" = "xno" ; then - opal_check_cma_happy=0 - fi - - # We only need to do the back-end test once - if test -z "$opal_check_cma_happy" ; then @@ -128197,7 +127770,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_check_cma_need_defs opal_check_cma_kernel_version opal_check_cma_CFLAGS opal_check_cma_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -128216,7 +127789,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_check_cma_need_defs opal_check_cma_kernel_version opal_check_cma_CFLAGS opal_check_cma_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -128224,129 +127797,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - # Some systems have process_cm_readv() in libc, which means CMA is - # supported. Other systems do not have process_cm_readv() in - # libc, but have support for it in the kernel if we invoke it - # directly. Check for both. - for ac_header in sys/prctl.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "sys/prctl.h" "ac_cv_header_sys_prctl_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_prctl_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SYS_PRCTL_H 1 -_ACEOF - + for arg in $btl_uct_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - -done - - - ac_fn_c_check_func "$LINENO" "process_vm_readv" "ac_cv_func_process_vm_readv" -if test "x$ac_cv_func_process_vm_readv" = xyes; then : - opal_check_cma_need_defs=0 -else - opal_check_cma_need_defs=1 + done fi - - -cat >>confdefs.h <<_ACEOF -#define OPAL_CMA_NEED_SYSCALL_DEFS $opal_check_cma_need_defs -_ACEOF - - if test $opal_check_cma_need_defs -eq 1 ; then - opal_check_cma_CFLAGS=$CFLAGS - # Need some extra include paths to locate the appropriate headers - CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/opal/include" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if internal syscall numbers for Linux CMA work" >&5 -$as_echo_n "checking if internal syscall numbers for Linux CMA work... " >&6; } - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (cross-compiling)" >&5 -$as_echo "no (cross-compiling)" >&6; } - opal_check_cma_happy=0 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include -#include - -#include -#include -#include - -#include "opal/include/opal/sys/cma.h" - -static void do_check (pid_t pid, int *in, int *out) -{ - int check[4] = {0, 0, 0, 0}, i; - struct iovec rem_iov = {out, sizeof (check)}; - struct iovec loc_iov = {check, sizeof (check)}; - ssize_t rc; - - rc = process_vm_readv (pid, &loc_iov, 1, &rem_iov, 1, 0); - if (sizeof (check) != rc) { - exit (1); - } - - for (i = 0 ; i < 4 ; ++i) { - if (check[i] != i) { - exit (1); - } - - check[i] = i * 2; - } - - rem_iov.iov_base = in; - rc = process_vm_writev (pid, &loc_iov, 1, &rem_iov, 1, 0); - if (sizeof (check) != rc) { - exit (1); - } - - exit (0); -} - -int -main () -{ - - int i, in[4] = {-1, -1, -1, -1}, out[4] = {0, 1, 2, 3}; - - do_check (getpid (), in, out); - - for (i = 0 ; i < 4 ; ++i) { - if (in[i] != 2 * i) { - return 1; - } - } - - /* all good */ - return 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cma_happy=1 + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cma_happy=0 + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext fi - - CFLAGS=$opal_check_cma_CFLAGS - else - # If we didn't need the defs, then we have process_vm_readv(), - # and CMA is happy. - opal_check_cma_happy=1 - fi + done # Unwind the index @@ -128370,12 +127838,18 @@ done - if test $opal_check_cma_happy -eq 1; then : - opal_check_cma_msg=yes -else - opal_check_cma_msg=no fi + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$btl_uct_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + # Is the private index set? If not, set it. @@ -128387,7 +127861,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -128406,7 +127880,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -128414,20 +127888,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Shared memory/Linux CMA: $opal_check_cma_msg" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + for arg in $btl_uct_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done # Unwind the index @@ -128451,68 +127929,304 @@ done +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_uct_WRAPPER_EXTRA_CPPFLAGS ($btl_uct_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring btl_uct_WRAPPER_EXTRA_CPPFLAGS ($btl_uct_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:uct can compile" >&5 +$as_echo_n "checking if MCA component btl:uct can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # If this component was requested as the default for this + # type, then abort. + if test "$with_btl" = "uct" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"uct\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"uct\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test $opal_check_cma_happy -eq 1; then : - ac_fn_c_check_header_mongrel "$LINENO" "sys/prctl.h" "ac_cv_header_sys_prctl_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_prctl_h" = xyes; then : + if test ! -z "$DIRECT_btl" ; then + if test "$DIRECT_btl" = "uct" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"uct\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"uct\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + # add component to all component list + all_components="$all_components uct" fi - btl_vader_cma_happy=1 + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_btl_uct_DSO=1 else - if test "$with_cma" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --with-cma support requested, but not available" >&5 -$as_echo "$as_me: WARNING: --with-cma support requested, but not available" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - btl_vader_cma_happy=0 + BUILD_opal_btl_uct_DSO=0 +fi + if test "$BUILD_opal_btl_uct_DSO" = "1"; then + MCA_BUILD_opal_btl_uct_DSO_TRUE= + MCA_BUILD_opal_btl_uct_DSO_FALSE='#' +else + MCA_BUILD_opal_btl_uct_DSO_TRUE='#' + MCA_BUILD_opal_btl_uct_DSO_FALSE= fi + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode -cat >>confdefs.h <<_ACEOF -#define OPAL_BTL_VADER_HAVE_XPMEM $btl_vader_xpmem_happy -_ACEOF -cat >>confdefs.h <<_ACEOF -#define OPAL_BTL_VADER_HAVE_CMA $btl_vader_cma_happy -_ACEOF + opal_show_subsubsubtitle "MCA component btl:ugni (m4 configuration macro)" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" -cat >>confdefs.h <<_ACEOF -#define OPAL_BTL_VADER_HAVE_KNEM $btl_vader_knem_happy -_ACEOF + component_path="$srcdir/opal/mca/btl/ugni" + want_component=0 - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_btl" ; then + if test "$DIRECT_btl" = "ugni" ; then + want_component=1 + else + want_component=0 + fi + fi fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # if we were explicitly disabled, don't build :) + if test "$DISABLE_btl" = "1"; then : + want_component=0 +fi + if test "$DISABLE_btl_ugni" = "1"; then : + want_component=0 +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + SHARED_FRAMEWORK="$DSO_btl" + SHARED_COMPONENT="$DSO_btl_ugni" + + STATIC_FRAMEWORK="$STATIC_btl" + STATIC_COMPONENT="$STATIC_btl_ugni" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:ugni compile mode" >&5 +$as_echo_n "checking for MCA component btl:ugni compile mode... " >&6; } + if test "$DIRECT_btl" = "ugni" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/btl/ugni/Makefile" + + + + if test -z "$opal_check_ugni_happy" ; then + +# Check whether --with-ugni was given. +if test "${with_ugni+set}" = set; then : + withval=$with_ugni; +fi + + + opal_check_ugni_happy="no" + + if test "$with_ugni" = "no"; then : + opal_check_ugni_happy="no" +else + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_UGNI" >&5 +$as_echo_n "checking for CRAY_UGNI... " >&6; } + +if test -n "$CRAY_UGNI_CFLAGS"; then + pkg_cv_CRAY_UGNI_CFLAGS="$CRAY_UGNI_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-ugni\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-ugni") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_UGNI_CFLAGS=`$PKG_CONFIG --cflags "cray-ugni" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_UGNI_LIBS"; then + pkg_cv_CRAY_UGNI_LIBS="$CRAY_UGNI_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-ugni\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-ugni") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_UGNI_LIBS=`$PKG_CONFIG --libs "cray-ugni" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_UGNI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-ugni" 2>&1` + else + CRAY_UGNI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-ugni" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_UGNI_PKG_ERRORS" >&5 + + opal_check_ugni_happy="no" +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_ugni_happy="no" +else + CRAY_UGNI_CFLAGS=$pkg_cv_CRAY_UGNI_CFLAGS + CRAY_UGNI_LIBS=$pkg_cv_CRAY_UGNI_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_ugni_happy="yes" +fi +fi + + opal_check_ugni_btl_ugni_save_CPPFLAGS="$CPPFLAGS" + opal_check_ugni_btl_ugni_save_LIBS="$LIBS" + + if test "$opal_check_ugni_happy" = "yes" ; then + CPPFLAGS="$CPPFLAGS $CRAY_UGNI_CFLAGS" + LIBS="$LIBS $CRAY_UGNI_LIBS" +# echo "+++++++++++++++++++++++CPPFLAGS",$CPPFLAGS +# echo "+++++++++++++++++++++++LDFLAGSS",$LDFLAGS +# echo "+++++++++++++++++++++++1_CPPFLAGS",$btl_ugni_CPPFLAGS +# echo "+++++++++++++++++++++++1_LDFLAGSS",$btl_ugni_LDFLAGS + +# sanity checks + + ac_fn_c_check_header_mongrel "$LINENO" "gni_pub.h" "ac_cv_header_gni_pub_h" "$ac_includes_default" +if test "x$ac_cv_header_gni_pub_h" = xyes; then : + +else + as_fn_error $? "'gni_pub.h not found.'" "$LINENO" 5 +fi + + + for ac_func in GNI_GetJobResInfo +do : + ac_fn_c_check_func "$LINENO" "GNI_GetJobResInfo" "ac_cv_func_GNI_GetJobResInfo" +if test "x$ac_cv_func_GNI_GetJobResInfo" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GNI_GETJOBRESINFO 1 +_ACEOF + +fi +done - # always happy - should_build=$should_build + + CPPFLAGS="$opal_check_ugni_btl_ugni_save_CPPFLAGS" + LIBS="$opal_check_ugni_btl_ugni_save_LIBS" + fi + + if test "$opal_check_ugni_happy" = "yes" && test "$enable_progress_threads" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: GNI driver does not currently support progress threads. Disabling." >&5 +$as_echo "$as_me: WARNING: GNI driver does not currently support progress threads. Disabling." >&2;} + opal_check_ugni_happy="no" +fi @@ -128554,7 +128268,7 @@ ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Shared memory/copy in+copy out: yes" + ompi_summary_line="Cray uGNI (Gemini/Aries): $opal_check_ugni_happy" ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) if test -z "$ompi_summary_section_current" ; then @@ -128590,9 +128304,28 @@ done + fi -# substitute in the things needed to build with XPMEM support + if test "$opal_check_ugni_happy" = "yes"; then : + btl_ugni_CPPFLAGS="$btl_ugni_CPPFLAGS $CRAY_UGNI_CFLAGS" + btl_ugni_LIBS="$btl_ugni_LIBS $CRAY_UGNI_LIBS" + btl_ugni_happy="yes" +else + if test ! -z "$with_ugni" && test "$with_ugni" != "no"; then : + as_fn_error $? "GNI support requested but not found. Cannot continue." "$LINENO" 5 +fi + btl_ugni_happy="no" +fi + + + + if test "$btl_ugni_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + # substitute in the things needed to build ugni @@ -128605,45 +128338,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/btl/vader/post_configure.sh" + infile="$srcdir/opal/mca/btl/ugni/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components vader" + all_components="$all_components ugni" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components vader" + dso_components="$dso_components ugni" else if test "btl" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/btl/vader/lib${OPAL_LIB_PREFIX}mca_btl_vader.la $static_ltlibs" + static_ltlibs="mca/btl/ugni/lib${OPAL_LIB_PREFIX}mca_btl_ugni.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/btl/vader/libmca_btl_vader.la $static_ltlibs" + static_ltlibs="mca/btl/ugni/libmca_btl_ugni.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_btl_vader_component;" >> $outfile.extern - echo " &mca_btl_vader_component, " >> $outfile.struct - static_components="$static_components vader" + echo "extern const mca_base_component_t mca_btl_ugni_component;" >> $outfile.extern + echo " &mca_btl_ugni_component, " >> $outfile.struct + static_components="$static_components ugni" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:vader can compile" >&5 -$as_echo_n "checking if MCA component btl:vader can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:ugni can compile" >&5 +$as_echo_n "checking if MCA component btl:ugni can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_btl" = "vader" ; then + if test "$DIRECT_btl" = "ugni" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** btl component vader was supposed to be direct-called, but +as_fn_error $? "*** btl component ugni was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -128651,8 +128384,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_btl" = "vader" ; then -as_fn_error $? "*** btl component vader was supposed to be direct-called, but + if test "$DIRECT_btl" = "ugni" ; then +as_fn_error $? "*** btl component ugni was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -128667,7 +128400,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$btl_vader_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$btl_ugni_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -128707,7 +128440,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_vader_LDFLAGS; do + for arg in $btl_ugni_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -128788,7 +128521,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_vader_WRAPPER_EXTRA_LDFLAGS; do + for arg in $btl_ugni_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -128830,7 +128563,7 @@ fi - if test "$btl_vader_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$btl_ugni_WRAPPER_EXTRA_LIBS" = ""; then : @@ -128870,7 +128603,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_vader_LIBS; do + for arg in $btl_ugni_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -128951,7 +128684,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_vader_WRAPPER_EXTRA_LIBS; do + for arg in $btl_ugni_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -128999,7 +128732,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$btl_vader_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$btl_ugni_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -129042,7 +128775,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $btl_vader_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $btl_ugni_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -129085,32 +128818,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_vader_WRAPPER_EXTRA_CPPFLAGS ($btl_vader_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring btl_vader_WRAPPER_EXTRA_CPPFLAGS ($btl_vader_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_ugni_WRAPPER_EXTRA_CPPFLAGS ($btl_ugni_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring btl_ugni_WRAPPER_EXTRA_CPPFLAGS ($btl_ugni_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:vader can compile" >&5 -$as_echo_n "checking if MCA component btl:vader can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:ugni can compile" >&5 +$as_echo_n "checking if MCA component btl:ugni can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_btl" = "vader" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"vader\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"vader\" failed to configure properly" >&2;} + if test "$with_btl" = "ugni" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ugni\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ugni\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "vader" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"vader\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"vader\" failed to configure properly" >&2;} + if test "$DIRECT_btl" = "ugni" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ugni\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ugni\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -129118,23 +128851,23 @@ fi # add component to all component list - all_components="$all_components vader" + all_components="$all_components ugni" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_btl_vader_DSO=1 + BUILD_opal_btl_ugni_DSO=1 else - BUILD_opal_btl_vader_DSO=0 + BUILD_opal_btl_ugni_DSO=0 fi - if test "$BUILD_opal_btl_vader_DSO" = "1"; then - MCA_BUILD_opal_btl_vader_DSO_TRUE= - MCA_BUILD_opal_btl_vader_DSO_FALSE='#' + if test "$BUILD_opal_btl_ugni_DSO" = "1"; then + MCA_BUILD_opal_btl_ugni_DSO_TRUE= + MCA_BUILD_opal_btl_ugni_DSO_FALSE='#' else - MCA_BUILD_opal_btl_vader_DSO_TRUE='#' - MCA_BUILD_opal_btl_vader_DSO_FALSE= + MCA_BUILD_opal_btl_ugni_DSO_TRUE='#' + MCA_BUILD_opal_btl_ugni_DSO_FALSE= fi @@ -129150,24 +128883,13 @@ - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - - if test "1" != "0"; then : - - for component_path in $srcdir/opal/mca/btl/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component btl:$component (need to configure)" + opal_show_subsubsubtitle "MCA component btl:usnic (m4 configuration macro)" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/btl/$component" + component_path="$srcdir/opal/mca/btl/usnic" want_component=0 # build if: @@ -129200,7 +128922,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "$component" ; then + if test "$DIRECT_btl" = "usnic" ; then want_component=1 else want_component=0 @@ -129212,26 +128934,24 @@ if test "$DISABLE_btl" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_btl_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi + if test "$DISABLE_btl_usnic" = "1"; then : + want_component=0 +fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE SHARED_FRAMEWORK="$DSO_btl" - str="SHARED_COMPONENT=\$DSO_btl_$component" - eval $str + SHARED_COMPONENT="$DSO_btl_usnic" STATIC_FRAMEWORK="$STATIC_btl" - str="STATIC_COMPONENT=\$STATIC_btl_$component" - eval $str + STATIC_COMPONENT="$STATIC_btl_usnic" shared_mode_override=static @@ -129249,9 +128969,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:$component compile mode" >&5 -$as_echo_n "checking for MCA component btl:$component compile mode... " >&6; } - if test "$DIRECT_btl" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:usnic compile mode" >&5 +$as_echo_n "checking for MCA component btl:usnic compile mode... " >&6; } + if test "$DIRECT_btl" = "usnic" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -129259,9 +128979,26 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/btl/usnic/Makefile" + + + +# Check whether --with-usnic was given. +if test "${with_usnic+set}" = set; then : + withval=$with_usnic; +fi + + + # If --without-usnic was specified, then gracefully exit. + # Otherwise, do the rest of the config. + if test "x$with_usnic" = "xno"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --without-usnic specified; skipping usnic BTL" >&5 +$as_echo "$as_me: WARNING: --without-usnic specified; skipping usnic BTL" >&2;} + should_build=0 +else @@ -129274,7 +129011,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in unit_tests; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -129293,7 +129030,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"unit_tests\"" eval $opal_str unset opal_str @@ -129301,250 +129038,221 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# opal/mca/btl/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="opal/mca/btl/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + # see README.test for information about this scheme + # Check whether --enable-opal-btl-usnic-unit-tests was given. +if test "${enable_opal_btl_usnic_unit_tests+set}" = set; then : + enableval=$enable_opal_btl_usnic_unit_tests; +fi - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + if test "X$enable_opal_btl_usnic_unit_tests" = "Xyes"; then : + unit_tests=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: enabling usnic BTL unit tests" >&5 +$as_echo "$as_me: enabling usnic BTL unit tests" >&6;} +else + unit_tests=0 +fi - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } +cat >>confdefs.h <<_ACEOF +#define OPAL_BTL_USNIC_UNIT_TESTS $unit_tests +_ACEOF - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac + unset unit_tests - # - # Move into the target directory - # + # The current logic in btl_usnic_compat.h checks the OPAL version as a + # proxy for the top-level OPAL version. Unfortunately this does the wrong + # thing for other top-level projects that might use the usnic BTL, such as + # ORCM. ORCM's versioning is totally unrelated to OPAL's. As a short term + # workaround, just disqualify ourselves if the OPAL version seems too old. + # In the longer term we should be doing something else, like versioning + # OPAL and OPAL separately. + opal_btl_usnic_happy=yes + if test "$OPAL_MAJOR_VERSION" -eq "1" && \ + test "$OPAL_MINOR_VERSION" -lt "7"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL version appears to be too old, disabling the usnic BTL" >&5 +$as_echo "$as_me: OPAL version appears to be too old, disabling the usnic BTL" >&6;} + opal_btl_usnic_happy=no +fi - subdir_parent=`pwd` - cd $subdir_dir + # We only want to build on 64 bit Linux. + if test "$opal_btl_usnic_happy" = "yes"; then : + # The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 +$as_echo_n "checking size of void *... " >&6; } +if ${ac_cv_sizeof_void_p+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : - # - # Make a "../" for each directory in $subdir_dir. - # +else + if test "$ac_cv_type_void_p" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (void *) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_void_p=0 + fi +fi - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 +$as_echo "$ac_cv_sizeof_void_p" >&6; } - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - # - # Construct the --cache-file argument - # - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" +cat >>confdefs.h <<_ACEOF +#define SIZEOF_VOID_P $ac_cv_sizeof_void_p +_ACEOF - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64 bit Linux" >&5 +$as_echo_n "checking for 64 bit Linux... " >&6; } + case $host_os in + *linux*) + if test $ac_cv_sizeof_void_p -eq 8; then : - # - # Go back to the topdir - # +else + opal_btl_usnic_happy=no +fi + ;; + *) + opal_btl_usnic_happy=no + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_btl_usnic_happy" >&5 +$as_echo "$opal_btl_usnic_happy" >&6; } - cd $subdir_parent fi -# -# Clean up -# + if test "$opal_btl_usnic_happy" = "yes"; then : + # The usnic BTL requires OFI libfabric support + # Check for OFI libfabric. Note that $opal_ofi_happy is used in + # other configure.m4's to know if OFI/libfabric configured + # successfully. We only need to run the back-end checks once, but + # at least emit a "checking..." statement each subsequent time + # this macro is invoked so that configure's stdout has + # sensible/logical output. + if test -z "$opal_ofi_happy"; then : - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Add --with options - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +# Check whether --with-libfabric was given. +if test "${with_libfabric+set}" = set; then : + withval=$with_libfabric; +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi +# Check whether --with-libfabric-libdir was given. +if test "${with_libfabric_libdir+set}" = set; then : + withval=$with_libfabric_libdir; +fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/opal/mca/btl/all_components/post_configure.sh" - if test -f $infile; then - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - btl_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - btl_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi +# Check whether --with-ofi was given. +if test "${with_ofi+set}" = set; then : + withval=$with_ofi; +fi +# Check whether --with-ofi-libdir was given. +if test "${with_ofi_libdir+set}" = set; then : + withval=$with_ofi_libdir; +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/btl/$component/post_configure.sh" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + if test "$with_ofi" = ""; then + with_ofi=$with_libfabric + fi - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "btl" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/btl/$component/lib${OPAL_LIB_PREFIX}mca_btl_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/btl/$component/libmca_btl_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_btl_$component_component;" >> $outfile.extern - echo " &mca_btl_$component_component, " >> $outfile.struct - static_components="$static_components $component" + if test "$with_ofi_libdir" = ""; then + with_ofi_libdir=$with_libfabric_libdir fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:$component can compile" >&5 -$as_echo_n "checking if MCA component btl:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # Sanity check the --with values - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_btl" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** btl component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_btl" = "$component" ; then -as_fn_error $? "*** btl component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ofi value" >&5 +$as_echo_n "checking --with-ofi value... " >&6; } + if test "$with_ofi" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ofi)" >&5 +$as_echo "simple no (specified --without-ofi)" >&6; } +else + if test "$with_ofi" = "yes" || test "x$with_ofi" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_ofi"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ofi not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ofi not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_ofi/include/rdma/fabric.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ofi/include/rdma/fabric.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ofi/include/rdma/fabric.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ofi)" >&5 +$as_echo "sanity check ok ($with_ofi)" >&6; } + +fi + + +fi + + +fi + + +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ofi-libdir value" >&5 +$as_echo_n "checking --with-ofi-libdir value... " >&6; } + if test "$with_ofi_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ofi-libdir)" >&5 +$as_echo "simple no (specified --without-ofi-libdir)" >&6; } +else + if test "$with_ofi_libdir" = "yes" || test "x$with_ofi_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_ofi_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ofi_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ofi_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_ofi_libdir/libfabric.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ofi_libdir/libfabric.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ofi_libdir/libfabric.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ofi_libdir)" >&5 +$as_echo "sanity check ok ($with_ofi_libdir)" >&6; } + +fi + + +fi + + +fi + + +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$btl_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" @@ -129557,7 +129265,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_check_ofi_save_CPPFLAGS opal_check_ofi_save_LDFLAGS opal_check_ofi_save_LIBS opal_check_fi_info_pci; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -129576,56 +129284,55 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_check_ofi_save_CPPFLAGS opal_check_ofi_save_LDFLAGS opal_check_ofi_save_LIBS opal_check_fi_info_pci\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` + opal_check_ofi_save_CPPFLAGS=$CPPFLAGS + opal_check_ofi_save_LDFLAGS=$LDFLAGS + opal_check_ofi_save_LIBS=$LIBS + opal_check_fi_info_pci=0 - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + opal_ofi_happy=yes + if test "$with_ofi" = "no"; then : + opal_ofi_happy=no fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + + if test $opal_ofi_happy = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking looking for OFI libfabric in" >&5 +$as_echo_n "checking looking for OFI libfabric in... " >&6; } + if test "$with_ofi" != "yes"; then : + opal_ofi_dir=$with_ofi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ($opal_ofi_dir)" >&5 +$as_echo "($opal_ofi_dir)" >&6; } else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 +$as_echo "(default search paths)" >&6; } fi + if test ! -z "$with_ofi_libdir" && \ + test "$with_ofi_libdir" != "yes"; then : + opal_ofi_libdir=$with_ofi_libdir fi - done +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test $opal_ofi_happy = yes; then : - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + opal_check_package_opal_ofi_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_opal_ofi_save_LDFLAGS="$LDFLAGS" + opal_check_package_opal_ofi_save_LIBS="$LIBS" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + opal_check_package_opal_ofi_orig_CPPFLAGS="$opal_ofi_CPPFLAGS" + opal_check_package_opal_ofi_orig_LDFLAGS="$opal_ofi_LDFLAGS" + opal_check_package_opal_ofi_orig_LIBS="$opal_ofi_LIBS" -str="line=\$btl_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -129638,7 +129345,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -129657,7 +129364,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -129665,378 +129372,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:$component can compile" >&5 -$as_echo_n "checking if MCA component btl:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_btl" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_btl" ; then - if test "$DIRECT_btl" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - fi - fi - done + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_rdma_fabric_h + # get rid of the trailing slash(es) + dir_prefix=$(echo $opal_ofi_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in rdma/fabric.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "rdma/fabric.h" "ac_cv_header_rdma_fabric_h" "$ac_includes_default" +if test "x$ac_cv_header_rdma_fabric_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_RDMA_FABRIC_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - MCA_opal_btl_ALL_COMPONENTS="$all_components" - MCA_opal_btl_STATIC_COMPONENTS="$static_components" - MCA_opal_btl_DSO_COMPONENTS="$dso_components" - MCA_opal_btl_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_opal_btl_ALL_SUBDIRS= - for item in $all_components ; do - MCA_opal_btl_ALL_SUBDIRS="$MCA_opal_btl_ALL_SUBDIRS mca/btl/$item" - done - +done + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_rdma_fabric_h +fi +fi - MCA_opal_btl_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_opal_btl_STATIC_SUBDIRS="$MCA_opal_btl_STATIC_SUBDIRS mca/btl/$item" - done + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + opal_ofi_CPPFLAGS="$opal_ofi_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in rdma/fabric.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "rdma/fabric.h" "ac_cv_header_rdma_fabric_h" "$ac_includes_default" +if test "x$ac_cv_header_rdma_fabric_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_RDMA_FABRIC_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi +done + if test "$opal_check_package_header_happy" = "yes"; then : - MCA_opal_btl_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_opal_btl_DSO_SUBDIRS="$MCA_opal_btl_DSO_SUBDIRS mca/btl/$item" - done + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + # see comment above + unset ac_cv_search_fi_getinfo + opal_check_package_lib_happy="no" + if test "$opal_ofi_libdir" != ""; then : + # libdir was specified - search only there + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_ofi_libdir" + LDFLAGS="$LDFLAGS -L$opal_ofi_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "btl" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS compress" - MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/compress" - MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_compress_ALL_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_compress_DSO_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_compress_STATIC_SUBDIRS)" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/compress/libmca_compress.la" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_compress_STATIC_LTLIBS)" - - opal_show_subsubtitle "Configuring MCA framework compress" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=opal/mca/compress/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files opal/mca/compress/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework compress" >&5 -$as_echo_n "checking for no configure components in framework compress... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: bzip, gzip" >&5 -$as_echo "bzip, gzip" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework compress" >&5 -$as_echo_n "checking for m4 configure components in framework compress... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - opal_show_subsubsubtitle "MCA component compress:bzip (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - - - component_path="$srcdir/opal/mca/compress/bzip" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_compress" ; then - if test "$DIRECT_compress" = "bzip" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_compress" = "1"; then : - want_component=0 +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res fi - if test "$DISABLE_compress_bzip" = "1"; then : - want_component=0 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : - if test "$want_component" = "1"; then : - should_build=1 else - should_build=0 + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_ofi_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - SHARED_FRAMEWORK="$DSO_compress" - SHARED_COMPONENT="$DSO_compress_bzip" - - STATIC_FRAMEWORK="$STATIC_compress" - STATIC_COMPONENT="$STATIC_compress_bzip" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component compress:bzip compile mode" >&5 -$as_echo_n "checking for MCA component compress:bzip compile mode... " >&6; } - if test "$DIRECT_compress" = "bzip" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +fi - if test "$should_build" = "1" ; then + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/compress/bzip/post_configure.sh" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +fi +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components bzip" + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components bzip" - else - if test "compress" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/compress/bzip/lib${OPAL_LIB_PREFIX}mca_compress_bzip.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/compress/bzip/libmca_compress_bzip.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_compress_bzip_component;" >> $outfile.extern - echo " &mca_compress_bzip_component, " >> $outfile.struct - static_components="$static_components bzip" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component compress:bzip can compile" >&5 -$as_echo_n "checking if MCA component compress:bzip can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_compress" = "bzip" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_compress_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** compress component bzip was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_compress" = "bzip" ; then -as_fn_error $? "*** compress component bzip was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +fi +fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$compress_bzip_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -130049,7 +129735,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -130068,56 +129754,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $compress_bzip_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -130130,7 +129776,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -130149,7 +129795,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -130157,582 +129803,303 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $compress_bzip_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libfabric requires libnl v1 or v3" >&5 +$as_echo_n "checking if libfabric requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void fi_getinfo (void); +int main(int argc, char *argv[]) { + fi_getinfo (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:129830: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS 1>&5 2>&1 +opal_status=$? +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:129837: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - if test "$compress_bzip_WRAPPER_EXTRA_LIBS" = ""; then : +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib fabric" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib fabric" >&2;} +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} - for arg in $compress_bzip_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi + libnl_sane=0 fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + libnl_sane=0 else + opal_libnlv1_libs="$opal_libnlv1_libs fabric" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # Loop over every token we've seen so far - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - for arg in $compress_bzip_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_done="`expr $opal_i \>= $opal_count`" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # Increment the counter - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" -fi - + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$compress_bzip_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - +# Take all the items in the "array" and assemble them back into a +# single variable - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +# Done; do the assignment - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up - for arg in $compress_bzip_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring compress_bzip_WRAPPER_EXTRA_CPPFLAGS ($compress_bzip_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring compress_bzip_WRAPPER_EXTRA_CPPFLAGS ($compress_bzip_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component compress:bzip can compile" >&5 -$as_echo_n "checking if MCA component compress:bzip can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_compress" = "bzip" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bzip\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"bzip\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_compress" ; then - if test "$DIRECT_compress" = "bzip" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bzip\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"bzip\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&2;} - # add component to all component list - all_components="$all_components bzip" - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_opal_compress_bzip_DSO=1 - else - BUILD_opal_compress_bzip_DSO=0 - fi - if test "$BUILD_opal_compress_bzip_DSO" = "1"; then - MCA_BUILD_opal_compress_bzip_DSO_TRUE= - MCA_BUILD_opal_compress_bzip_DSO_FALSE='#' + libnl_sane=0 else - MCA_BUILD_opal_compress_bzip_DSO_TRUE='#' - MCA_BUILD_opal_compress_bzip_DSO_FALSE= -fi - - - ac_config_files="$ac_config_files opal/mca/compress/bzip/Makefile" - - - unset compile_mode - - opal_show_subsubsubtitle "MCA component compress:gzip (no configuration)" + opal_libnlv3_libs="$opal_libnlv3_libs fabric" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - component_path="$srcdir/opal/mca/compress/gzip" - want_component=0 + # Loop over every token we've seen so far - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_compress" ; then - if test "$DIRECT_compress" = "gzip" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # if we were explicitly disabled, don't build :) - if test "$DISABLE_compress" = "1"; then : - want_component=0 -fi - if test "$DISABLE_compress_gzip" = "1"; then : - want_component=0 -fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - SHARED_FRAMEWORK="$DSO_compress" - SHARED_COMPONENT="$DSO_compress_gzip" + opal_done="`expr $opal_i \>= $opal_count`" - STATIC_FRAMEWORK="$STATIC_compress" - STATIC_COMPONENT="$STATIC_compress_gzip" + # Increment the counter - shared_mode_override=static + opal_i="`expr $opal_i + 1`" + done - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + # If we didn't find the token, add it to the "array" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component compress:gzip compile mode" >&5 -$as_echo_n "checking for MCA component compress:gzip compile mode... " >&6; } - if test "$DIRECT_compress" = "gzip" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + opal_i="`expr $opal_i - 1`" fi +done - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/compress/gzip/post_configure.sh" + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components gzip" +# Done; do the assignment - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components gzip" - else - if test "compress" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/compress/gzip/lib${OPAL_LIB_PREFIX}mca_compress_gzip.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/compress/gzip/libmca_compress_gzip.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_compress_gzip_component;" >> $outfile.extern - echo " &mca_compress_gzip_component, " >> $outfile.struct - static_components="$static_components gzip" - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component compress:gzip can compile" >&5 -$as_echo_n "checking if MCA component compress:gzip can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +# Clean up - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_compress" = "gzip" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_compress_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** compress component gzip was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_compress" = "gzip" ; then -as_fn_error $? "*** compress component gzip was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$compress_gzip_WRAPPER_EXTRA_LDFLAGS" = ""; then : +fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_libnl_sane=$libnl_sane - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - for arg in $compress_gzip_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -130755,89 +130122,332 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_fi_getinfo" != "no" && + test "$ac_cv_search_fi_getinfo" != "none required"; then : + opal_ofi_LIBS="$ac_cv_search_fi_getinfo " +else + opal_ofi_LIBS="" +fi + opal_check_package_happy="yes" else + opal_check_package_happy="no" +fi +else + opal_check_package_happy="no" +fi +else - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # see comment above + unset ac_cv_search_fi_getinfo + opal_check_package_lib_happy="no" + if test "$opal_ofi_libdir" != ""; then : + # libdir was specified - search only there + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_ofi_libdir" + LDFLAGS="$LDFLAGS -L$opal_ofi_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_ofi_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - for arg in $compress_gzip_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg +done +if ${ac_cv_search_fi_getinfo+:} false; then : + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + ac_cv_search_fi_getinfo=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - done + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : +else + ac_cv_search_fi_getinfo=no fi - if test "$compress_gzip_WRAPPER_EXTRA_LIBS" = ""; then : +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -130850,7 +130460,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -130869,56 +130479,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $compress_gzip_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -130931,7 +130501,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -130950,7 +130520,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -130958,26 +130528,304 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $compress_gzip_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libfabric requires libnl v1 or v3" >&5 +$as_echo_n "checking if libfabric requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void fi_getinfo (void); +int main(int argc, char *argv[]) { + fi_getinfo (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:130555: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:130562: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib fabric" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib fabric" >&2;} + +fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + + libnl_sane=0 +fi + + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs fabric" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi + +fi + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs fabric" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` opal_scope_test=`expr $opal_scope_index \> 0` @@ -130999,17 +130847,134 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_fi_getinfo" != "no" && + test "$ac_cv_search_fi_getinfo" != "none required"; then : + opal_ofi_LIBS="$ac_cv_search_fi_getinfo " +else + opal_ofi_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi + + fi + unset opal_check_package_header_happy + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$compress_gzip_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + + if test "$opal_check_package_happy" = "yes"; then : + +else + opal_ofi_CPPFLAGS="$opal_check_package_opal_ofi_orig_CPPFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + opal_ofi_LIBS="$opal_check_package_opal_ofi_orig_LIBS" + opal_ofi_happy=no +fi + + CPPFLAGS="$opal_check_package_opal_ofi_save_CPPFLAGS" + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + LIBS="$opal_check_package_opal_ofi_save_LIBS" + +fi + + CPPFLAGS="$CPPFLAGS $opal_ofi_CPPFLAGS" + + if test $opal_ofi_happy = yes; then : + for ac_header in rdma/fi_ext.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "rdma/fi_ext.h" "ac_cv_header_rdma_fi_ext_h" "$ac_includes_default" +if test "x$ac_cv_header_rdma_fi_ext_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_RDMA_FI_EXT_H 1 +_ACEOF + +fi + +done + + + ac_fn_c_check_member "$LINENO" "struct fi_info" "nic" "ac_cv_member_struct_fi_info_nic" "#include +" +if test "x$ac_cv_member_struct_fi_info_nic" = xyes; then : + opal_check_fi_info_pci=1 +else + opal_check_fi_info_pci=0 +fi + + + +cat >>confdefs.h <<_ACEOF +#define OPAL_OFI_PCI_DATA_AVAILABLE $opal_check_fi_info_pci +_ACEOF + + + ac_fn_c_check_decl "$LINENO" "PMIX_PACKAGE_RANK" "ac_cv_have_decl_PMIX_PACKAGE_RANK" "#include +" +if test "x$ac_cv_have_decl_PMIX_PACKAGE_RANK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_PMIX_PACKAGE_RANK $ac_have_decl +_ACEOF + + + ac_fn_c_check_type "$LINENO" "struct fi_ops_mem_monitor" "ac_cv_type_struct_fi_ops_mem_monitor" "#ifdef HAVE_RDMA_FI_EXT_H +#include +#endif +" +if test "x$ac_cv_type_struct_fi_ops_mem_monitor" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_FI_OPS_MEM_MONITOR 1 +_ACEOF + + +fi + +fi + + CPPFLAGS=$opal_check_ofi_save_CPPFLAGS + LDFLAGS=$opal_check_ofi_save_LDFLAGS + LIBS=$opal_check_ofi_save_LIBS + + + + + @@ -131022,7 +130987,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -131041,7 +131006,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -131049,24 +131014,20 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $compress_gzip_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="OpenFabrics OFI Libfabric: $opal_ofi_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi # Unwind the index @@ -131090,186 +131051,184 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring compress_gzip_WRAPPER_EXTRA_CPPFLAGS ($compress_gzip_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring compress_gzip_WRAPPER_EXTRA_CPPFLAGS ($compress_gzip_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component compress:gzip can compile" >&5 -$as_echo_n "checking if MCA component compress:gzip can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_compress" = "gzip" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"gzip\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"gzip\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_compress" ; then - if test "$DIRECT_compress" = "gzip" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"gzip\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"gzip\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # add component to all component list - all_components="$all_components gzip" - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_opal_compress_gzip_DSO=1 - else - BUILD_opal_compress_gzip_DSO=0 - fi - if test "$BUILD_opal_compress_gzip_DSO" = "1"; then - MCA_BUILD_opal_compress_gzip_DSO_TRUE= - MCA_BUILD_opal_compress_gzip_DSO_FALSE='#' -else - MCA_BUILD_opal_compress_gzip_DSO_TRUE='#' - MCA_BUILD_opal_compress_gzip_DSO_FALSE= + + if test $opal_ofi_happy = no; then : + if test -n "$with_ofi" && test "$with_ofi" != "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OFI libfabric support requested (via --with-ofi or --with-libfabric), but not found." >&5 +$as_echo "$as_me: WARNING: OFI libfabric support requested (via --with-ofi or --with-libfabric), but not found." >&2;} + as_fn_error $? "Cannot continue." "$LINENO" 5 fi +fi - ac_config_files="$ac_config_files opal/mca/compress/gzip/Makefile" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if OFI libfabric is available" >&5 +$as_echo_n "checking if OFI libfabric is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_ofi_happy" >&5 +$as_echo "$opal_ofi_happy" >&6; } +fi + opal_btl_usnic_happy=$opal_ofi_happy +fi - unset compile_mode + # The usnic BTL requires at least OFI libfabric v1.3. + if test "$opal_btl_usnic_happy" = "yes"; then : - # configure components that use built-in configuration scripts + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_ofi_ver_ge_save_CPPFLAGS opal_ofi_ver_ge_happy; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_ofi_ver_ge_save_CPPFLAGS opal_ofi_ver_ge_happy\"" + eval $opal_str + unset opal_str - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if OFI API version number is >= 1,3" >&5 +$as_echo_n "checking if OFI API version number is >= 1,3... " >&6; } + opal_ofi_ver_ge_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS=$opal_ofi_CPPFLAGS - if test "1" != "0"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ - for component_path in $srcdir/opal/mca/compress/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component compress:$component (need to configure)" +#if !defined(FI_MAJOR_VERSION) +#error "we cannot check the version -- sad panda" +#elif FI_VERSION_LT(FI_VERSION(FI_MAJOR_VERSION, FI_MINOR_VERSION), FI_VERSION(1,3)) +#error "version is too low -- nopes" +#endif - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + opal_ofi_ver_ge_happy=1 +else + opal_ofi_ver_ge_happy=0 +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $opal_ofi_ver_ge_happy -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_btl_usnic_happy=no +fi - component_path="$srcdir/opal/mca/compress/$component" - want_component=0 + CPPFLAGS=$opal_ofi_ver_ge_save_CPPFLAGS - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_compress" ; then - if test "$DIRECT_compress" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_compress" = "1"; then : - want_component=0 -fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_compress_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 fi + # Make sure we can find the OFI libfabric usnic extensions header + if test "$opal_btl_usnic_happy" = "yes" ; then : + opal_btl_usnic_CPPFLAGS_save=$CPPFLAGS + CPPFLAGS="$opal_ofi_CPPFLAGS $CPPFLAGS" + ac_fn_c_check_header_mongrel "$LINENO" "rdma/fi_ext_usnic.h" "ac_cv_header_rdma_fi_ext_usnic_h" "$ac_includes_default" +if test "x$ac_cv_header_rdma_fi_ext_usnic_h" = xyes; then : - SHARED_FRAMEWORK="$DSO_compress" - str="SHARED_COMPONENT=\$DSO_compress_$component" - eval $str +else + opal_btl_usnic_happy=no +fi - STATIC_FRAMEWORK="$STATIC_compress" - str="STATIC_COMPONENT=\$STATIC_compress_$component" - eval $str - shared_mode_override=static + CPPFLAGS=$opal_btl_usnic_CPPFLAGS_save - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component compress:$component compile mode" >&5 -$as_echo_n "checking for MCA component compress:$component compile mode... " >&6; } - if test "$DIRECT_compress" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + # All done + if test "$opal_btl_usnic_happy" = "yes"; then : + should_build=$should_build +else + if test "$with_usnic" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --with-usnic was specified, but Cisco usNIC support cannot be built" >&5 +$as_echo "$as_me: WARNING: --with-usnic was specified, but Cisco usNIC support cannot be built" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + should_build=0 +fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" +fi - if test "$should_build" = "1" ; then @@ -131282,7 +131241,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -131301,7 +131260,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -131309,129 +131268,42 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# opal/mca/compress/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="opal/mca/compress/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - - # - # Construct the --cache-file argument - # + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="Cisco usNIC: $opal_btl_usnic_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # - # Go back to the topdir - # + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - cd $subdir_parent -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# -# Clean up -# # Unwind the index @@ -131454,80 +131326,56 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/opal/mca/compress/all_components/post_configure.sh" - if test -f $infile; then - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi +fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - compress_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - compress_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/compress/$component/post_configure.sh" + infile="$srcdir/opal/mca/btl/usnic/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + all_components="$all_components usnic" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" + dso_components="$dso_components usnic" else - if test "compress" = "common"; then + if test "btl" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/compress/$component/lib${OPAL_LIB_PREFIX}mca_compress_$component.la $static_ltlibs" + static_ltlibs="mca/btl/usnic/lib${OPAL_LIB_PREFIX}mca_btl_usnic.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/compress/$component/libmca_compress_$component.la $static_ltlibs" + static_ltlibs="mca/btl/usnic/libmca_btl_usnic.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_compress_$component_component;" >> $outfile.extern - echo " &mca_compress_$component_component, " >> $outfile.struct - static_components="$static_components $component" + echo "extern const mca_base_component_t mca_btl_usnic_component;" >> $outfile.extern + echo " &mca_btl_usnic_component, " >> $outfile.struct + static_components="$static_components usnic" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component compress:$component can compile" >&5 -$as_echo_n "checking if MCA component compress:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:usnic can compile" >&5 +$as_echo_n "checking if MCA component btl:usnic can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_compress" = "$component" ; then + if test "$DIRECT_btl" = "usnic" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_compress_DIRECT_CALL_HEADER=$line" + str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** compress component $component was supposed to be direct-called, but +as_fn_error $? "*** btl component usnic was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -131535,8 +131383,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_compress" = "$component" ; then -as_fn_error $? "*** compress component $component was supposed to be direct-called, but + if test "$DIRECT_btl" = "usnic" ; then +as_fn_error $? "*** btl component usnic was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -131551,8 +131399,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$compress_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + if test "$btl_usnic_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -131592,7 +131439,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $btl_usnic_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -131632,8 +131479,8 @@ unset $opal_var done -str="line=\$compress_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + +else @@ -131673,21 +131520,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $btl_usnic_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -131714,557 +131561,65 @@ done - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - +fi + if test "$btl_usnic_WRAPPER_EXTRA_LIBS" = ""; then : - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component compress:$component can compile" >&5 -$as_echo_n "checking if MCA component compress:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_compress" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - if test ! -z "$DIRECT_compress" ; then - if test "$DIRECT_compress" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - MCA_opal_compress_ALL_COMPONENTS="$all_components" - MCA_opal_compress_STATIC_COMPONENTS="$static_components" - MCA_opal_compress_DSO_COMPONENTS="$dso_components" - MCA_opal_compress_STATIC_LTLIBS="$static_ltlibs" + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - - - - - - MCA_opal_compress_ALL_SUBDIRS= - for item in $all_components ; do - MCA_opal_compress_ALL_SUBDIRS="$MCA_opal_compress_ALL_SUBDIRS mca/compress/$item" - done - - - - MCA_opal_compress_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_opal_compress_STATIC_SUBDIRS="$MCA_opal_compress_STATIC_SUBDIRS mca/compress/$item" - done - - - - MCA_opal_compress_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_opal_compress_DSO_SUBDIRS="$MCA_opal_compress_DSO_SUBDIRS mca/compress/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "compress" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS crs" - MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/crs" - MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_crs_ALL_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_crs_DSO_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_crs_STATIC_SUBDIRS)" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/crs/libmca_crs.la" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_crs_STATIC_LTLIBS)" - - opal_show_subsubtitle "Configuring MCA framework crs" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=opal/mca/crs/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files opal/mca/crs/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework crs" >&5 -$as_echo_n "checking for no configure components in framework crs... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework crs" >&5 -$as_echo_n "checking for m4 configure components in framework crs... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: self" >&5 -$as_echo "self" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - opal_show_subsubsubtitle "MCA component crs:none (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - - - component_path="$srcdir/opal/mca/crs/none" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_crs" ; then - if test "$DIRECT_crs" = "none" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_crs" = "1"; then : - want_component=0 -fi - if test "$DISABLE_crs_none" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi - - - SHARED_FRAMEWORK="$DSO_crs" - SHARED_COMPONENT="$DSO_crs_none" - - STATIC_FRAMEWORK="$STATIC_crs" - STATIC_COMPONENT="$STATIC_crs_none" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component crs:none compile mode" >&5 -$as_echo_n "checking for MCA component crs:none compile mode... " >&6; } - if test "$DIRECT_crs" = "none" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/crs/none/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components none" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components none" - else - if test "crs" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/crs/none/lib${OPAL_LIB_PREFIX}mca_crs_none.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/crs/none/libmca_crs_none.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_crs_none_component;" >> $outfile.extern - echo " &mca_crs_none_component, " >> $outfile.struct - static_components="$static_components none" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crs:none can compile" >&5 -$as_echo_n "checking if MCA component crs:none can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_crs" = "none" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_crs_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** crs component none was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_crs" = "none" ; then -as_fn_error $? "*** crs component none was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$crs_none_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $crs_none_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $crs_none_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - if test "$crs_none_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $crs_none_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + for arg in $btl_usnic_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done # Unwind the index @@ -132328,7 +131683,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $crs_none_WRAPPER_EXTRA_LIBS; do + for arg in $btl_usnic_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -132376,7 +131731,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$crs_none_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$btl_usnic_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -132419,7 +131774,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $crs_none_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $btl_usnic_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -132462,79 +131817,87 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring crs_none_WRAPPER_EXTRA_CPPFLAGS ($crs_none_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring crs_none_WRAPPER_EXTRA_CPPFLAGS ($crs_none_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_usnic_WRAPPER_EXTRA_CPPFLAGS ($btl_usnic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring btl_usnic_WRAPPER_EXTRA_CPPFLAGS ($btl_usnic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crs:none can compile" >&5 -$as_echo_n "checking if MCA component crs:none can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:usnic can compile" >&5 +$as_echo_n "checking if MCA component btl:usnic can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_crs" = "none" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"none\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"none\" failed to configure properly" >&2;} + if test "$with_btl" = "usnic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"usnic\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"usnic\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_crs" ; then - if test "$DIRECT_crs" = "none" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"none\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"none\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_btl" ; then + if test "$DIRECT_btl" = "usnic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"usnic\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"usnic\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components none" - fi + # add component to all component list + all_components="$all_components usnic" +fi - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_opal_crs_none_DSO=1 - else - BUILD_opal_crs_none_DSO=0 - fi - if test "$BUILD_opal_crs_none_DSO" = "1"; then - MCA_BUILD_opal_crs_none_DSO_TRUE= - MCA_BUILD_opal_crs_none_DSO_FALSE='#' + + if test "$should_build" -eq 1 && test "X$enable_opal_btl_usnic_unit_tests" = "Xyes"; then + OPAL_BTL_USNIC_BUILD_UNIT_TESTS_TRUE= + OPAL_BTL_USNIC_BUILD_UNIT_TESTS_FALSE='#' else - MCA_BUILD_opal_crs_none_DSO_TRUE='#' - MCA_BUILD_opal_crs_none_DSO_FALSE= + OPAL_BTL_USNIC_BUILD_UNIT_TESTS_TRUE='#' + OPAL_BTL_USNIC_BUILD_UNIT_TESTS_FALSE= fi - ac_config_files="$ac_config_files opal/mca/crs/none/Makefile" + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_btl_usnic_DSO=1 +else + BUILD_opal_btl_usnic_DSO=0 +fi + if test "$BUILD_opal_btl_usnic_DSO" = "1"; then + MCA_BUILD_opal_btl_usnic_DSO_TRUE= + MCA_BUILD_opal_btl_usnic_DSO_FALSE='#' +else + MCA_BUILD_opal_btl_usnic_DSO_TRUE='#' + MCA_BUILD_opal_btl_usnic_DSO_FALSE= +fi - unset compile_mode + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # configure components that use built-in configuration scripts + unset compile_mode - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - opal_show_subsubsubtitle "MCA component crs:self (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component btl:vader (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/crs/self" + component_path="$srcdir/opal/mca/btl/vader" want_component=0 # build if: @@ -132566,8 +131929,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_crs" ; then - if test "$DIRECT_crs" = "self" ; then + if test ! -z "$DIRECT_btl" ; then + if test "$DIRECT_btl" = "vader" ; then want_component=1 else want_component=0 @@ -132576,10 +131939,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_crs" = "1"; then : + if test "$DISABLE_btl" = "1"; then : want_component=0 fi - if test "$DISABLE_crs_self" = "1"; then : + if test "$DISABLE_btl_vader" = "1"; then : want_component=0 fi @@ -132592,11 +131955,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_crs" - SHARED_COMPONENT="$DSO_crs_self" + SHARED_FRAMEWORK="$DSO_btl" + SHARED_COMPONENT="$DSO_btl_vader" - STATIC_FRAMEWORK="$STATIC_crs" - STATIC_COMPONENT="$STATIC_crs_self" + STATIC_FRAMEWORK="$STATIC_btl" + STATIC_COMPONENT="$STATIC_btl_vader" shared_mode_override=static @@ -132614,9 +131977,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component crs:self compile mode" >&5 -$as_echo_n "checking for MCA component crs:self compile mode... " >&6; } - if test "$DIRECT_crs" = "self" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:vader compile mode" >&5 +$as_echo_n "checking for MCA component btl:vader compile mode... " >&6; } + if test "$DIRECT_btl" = "vader" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -132627,116 +131990,8 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/crs/self/Makefile" - - - # If we don't want FT, don't compile this component - if test "$opal_want_ft_cr" = "1"; then : - crs_self_good="yes" -else - crs_self_good="no" -fi - - # We need the dlfcn.h so we can access dlsym and friends - if test "$crs_self_good" = "yes"; then : - ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" -if test "x$ac_cv_header_dlfcn_h" = xyes; then : - crs_self_good="yes" -else - crs_self_good="no" -fi - - -fi - - # If they did not ask for dlopen support, - # they probably do not want this component either - if test "$crs_self_good" = "yes"; then : - if test "$OPAL_ENABLE_DLOPEN_SUPPORT" = "1"; then : - crs_self_good="yes" -else - crs_self_good="no" -fi -fi - - if test "$crs_self_good" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/crs/self/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components self" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components self" - else - if test "crs" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/crs/self/lib${OPAL_LIB_PREFIX}mca_crs_self.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/crs/self/libmca_crs_self.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_crs_self_component;" >> $outfile.extern - echo " &mca_crs_self_component, " >> $outfile.struct - static_components="$static_components self" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crs:self can compile" >&5 -$as_echo_n "checking if MCA component crs:self can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_crs" = "self" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_crs_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** crs component self was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_crs" = "self" ; then -as_fn_error $? "*** crs component self was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + ac_config_files="$ac_config_files opal/mca/btl/vader/Makefile" - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$crs_self_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -132749,7 +132004,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in btl_vader_xpmem_happy btl_vader_cma_happy btl_vader_knem_happy; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -132768,7 +132023,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"btl_vader_xpmem_happy btl_vader_cma_happy btl_vader_knem_happy\"" eval $opal_str unset opal_str @@ -132776,48 +132031,270 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $crs_self_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + # Check for single-copy APIs + + + if test -z "$opal_check_xpmem_happy" ; then + # check for a cray installed xpmem first + + if test -z "$opal_check_cray_xpmem_happy" ; then + +# Check whether --with-cray_xpmem was given. +if test "${with_cray_xpmem+set}" = set; then : + withval=$with_cray_xpmem; +else + with_cray_xpmem=auto fi - done + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Cray XPMEM support" >&5 +$as_echo_n "checking for Cray XPMEM support... " >&6; } + if test "$with_cray_xpmem" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_xpmem_happy=no +else + if test "$with_cray_xpmem" = "auto" || test "$with_cray_xpmem" = "yes"; then : + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_XPMEM" >&5 +$as_echo_n "checking for CRAY_XPMEM... " >&6; } + +if test -n "$CRAY_XPMEM_CFLAGS"; then + pkg_cv_CRAY_XPMEM_CFLAGS="$CRAY_XPMEM_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-xpmem\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-xpmem") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_XPMEM_CFLAGS=`$PKG_CONFIG --cflags "cray-xpmem" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + else + pkg_failed=untried +fi +if test -n "$CRAY_XPMEM_LIBS"; then + pkg_cv_CRAY_XPMEM_LIBS="$CRAY_XPMEM_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-xpmem\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-xpmem") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_XPMEM_LIBS=`$PKG_CONFIG --libs "cray-xpmem" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + pkg_failed=yes fi + else + pkg_failed=untried +fi +if test -n "$CRAY_XPMEM_STATIC_LIBS"; then + pkg_cv_CRAY_XPMEM_STATIC_LIBS="$CRAY_XPMEM_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-xpmem\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-xpmem") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_XPMEM_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-xpmem" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried fi - done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_XPMEM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-xpmem" 2>&1` + else + CRAY_XPMEM_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-xpmem" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_XPMEM_PKG_ERRORS" >&5 + + opal_check_cray_xpmem_happy="no" + if test "$with_cray_xpmem" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cray XPMEM support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: Cray XPMEM support requested but pkg-config failed." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_xpmem_happy="no" + if test "$with_cray_xpmem" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cray XPMEM support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: Cray XPMEM support requested but pkg-config failed." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_XPMEM_CFLAGS=$pkg_cv_CRAY_XPMEM_CFLAGS + CRAY_XPMEM_LIBS=$pkg_cv_CRAY_XPMEM_LIBS + CRAY_XPMEM_STATIC_LIBS=$pkg_cv_CRAY_XPMEM_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_xpmem_happy="yes" +fi +fi + +fi + + if test "$opal_check_cray_xpmem_happy" = "yes" && test "$enable_static" = "yes"; then : + CRAY_XPMEM_LIBS = $CRAY_XPMEM_STATIC_LIBS +fi fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$opal_check_cray_xpmem_happy" = "yes"; then : + opal_check_xpmem_LDFLAGS="$opal_check_xpmem_LDFLAGS $CRAY_XPMEM_LIBS" + opal_check_xpmem_CPPFLAGS="$opal_check_xpmem_CPPFLAGS $CRAY_XPMEM_CFLAGS" + opal_check_xpmem_LIBS="$opal_check_xpmem_LIBS $CRAY_XPMEM_LIBS" + +cat >>confdefs.h <<_ACEOF +#define HAVE_XPMEM_H 1 +_ACEOF + + opal_check_xpmem_happy=yes +else + opal_check_xpmem_happy=no +fi + + + if test "$opal_check_xpmem_happy" = no ; then + +# Check whether --with-xpmem was given. +if test "${with_xpmem+set}" = set; then : + withval=$with_xpmem; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-xpmem value" >&5 +$as_echo_n "checking --with-xpmem value... " >&6; } + if test "$with_xpmem" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-xpmem)" >&5 +$as_echo "simple no (specified --without-xpmem)" >&6; } +else + if test "$with_xpmem" = "yes" || test "x$with_xpmem" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_xpmem"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_xpmem not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_xpmem not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_xpmem/include/xpmem.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_xpmem/include/xpmem.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_xpmem/include/xpmem.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_xpmem)" >&5 +$as_echo "sanity check ok ($with_xpmem)" >&6; } + +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + +fi + + +fi + + +fi + +# Check whether --with-xpmem-libdir was given. +if test "${with_xpmem_libdir+set}" = set; then : + withval=$with_xpmem_libdir; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-xpmem-libdir value" >&5 +$as_echo_n "checking --with-xpmem-libdir value... " >&6; } + if test "$with_xpmem_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-xpmem-libdir)" >&5 +$as_echo "simple no (specified --without-xpmem-libdir)" >&6; } +else + if test "$with_xpmem_libdir" = "yes" || test "x$with_xpmem_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_xpmem_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_xpmem_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_xpmem_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_xpmem_libdir/libxpmem.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_xpmem_libdir/libxpmem.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_xpmem_libdir/libxpmem.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_xpmem_libdir)" >&5 +$as_echo "sanity check ok ($with_xpmem_libdir)" >&6; } + +fi + + +fi + + +fi + + +fi + + + if test ! "$with_xpmem" = "no" ; then + if test ! -z "$with_xpmem" && test "$with_xpmem" != "yes" ; then + opal_check_xpmem_dir="$with_xpmem" + fi + + if test ! -z "$with_xpmem_libdir" && test "$with_xpmem_libdir" != "yes" ; then + opal_check_xpmem_libdir="$with_xpmem_libdir" + fi + + + opal_check_package_opal_check_xpmem_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_opal_check_xpmem_save_LDFLAGS="$LDFLAGS" + opal_check_package_opal_check_xpmem_save_LIBS="$LIBS" + + opal_check_package_opal_check_xpmem_orig_CPPFLAGS="$opal_check_xpmem_CPPFLAGS" + opal_check_package_opal_check_xpmem_orig_LDFLAGS="$opal_check_xpmem_LDFLAGS" + opal_check_package_opal_check_xpmem_orig_LIBS="$opal_check_xpmem_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -132830,7 +132307,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -132849,7 +132326,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -132857,130 +132334,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $crs_self_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_xpmem_h - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # get rid of the trailing slash(es) + dir_prefix=$(echo $opal_check_xpmem_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in xpmem.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "xpmem.h" "ac_cv_header_xpmem_h" "$ac_includes_default" +if test "x$ac_cv_header_xpmem_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_XPMEM_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +done + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_xpmem_h +fi +fi + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + opal_check_xpmem_CPPFLAGS="$opal_check_xpmem_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in xpmem.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "xpmem.h" "ac_cv_header_xpmem_h" "$ac_includes_default" +if test "x$ac_cv_header_xpmem_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_XPMEM_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - if test "$crs_self_WRAPPER_EXTRA_LIBS" = ""; then : +done + if test "$opal_check_package_header_happy" = "yes"; then : - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # see comment above + unset ac_cv_search_xpmem_make + opal_check_package_lib_happy="no" + if test "$opal_check_xpmem_libdir" != ""; then : + # libdir was specified - search only there + opal_check_xpmem_LDFLAGS="$opal_check_xpmem_LDFLAGS -L$opal_check_xpmem_libdir" + LDFLAGS="$LDFLAGS -L$opal_check_xpmem_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xpmem_make" >&5 +$as_echo_n "checking for library containing xpmem_make... " >&6; } +if ${ac_cv_search_xpmem_make+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char xpmem_make (); +int +main () +{ +return xpmem_make (); + ; + return 0; +} +_ACEOF +for ac_lib in '' xpmem; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_xpmem_make=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_xpmem_make+:} false; then : + break +fi +done +if ${ac_cv_search_xpmem_make+:} false; then : - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +else + ac_cv_search_xpmem_make=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xpmem_make" >&5 +$as_echo "$ac_cv_search_xpmem_make" >&6; } +ac_res=$ac_cv_search_xpmem_make +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" + opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" + unset ac_cv_search_xpmem_make +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_check_xpmem_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xpmem_make" >&5 +$as_echo_n "checking for library containing xpmem_make... " >&6; } +if ${ac_cv_search_xpmem_make+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - for arg in $crs_self_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char xpmem_make (); +int +main () +{ +return xpmem_make (); + ; + return 0; +} +_ACEOF +for ac_lib in '' xpmem; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_xpmem_make=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_xpmem_make+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +done +if ${ac_cv_search_xpmem_make+:} false; then : + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_cv_search_xpmem_make=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xpmem_make" >&5 +$as_echo "$ac_cv_search_xpmem_make" >&6; } +ac_res=$ac_cv_search_xpmem_make +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - done + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" + opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" + unset ac_cv_search_xpmem_make +fi +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_xpmem_LDFLAGS="$opal_check_xpmem_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xpmem_make" >&5 +$as_echo_n "checking for library containing xpmem_make... " >&6; } +if ${ac_cv_search_xpmem_make+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char xpmem_make (); +int +main () +{ +return xpmem_make (); + ; + return 0; +} +_ACEOF +for ac_lib in '' xpmem; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_xpmem_make=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_xpmem_make+:} false; then : + break +fi +done +if ${ac_cv_search_xpmem_make+:} false; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +else + ac_cv_search_xpmem_make=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xpmem_make" >&5 +$as_echo "$ac_cv_search_xpmem_make" >&6; } +ac_res=$ac_cv_search_xpmem_make +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" + opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" + unset ac_cv_search_xpmem_make +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_xpmem_LDFLAGS="$opal_check_xpmem_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xpmem_make" >&5 +$as_echo_n "checking for library containing xpmem_make... " >&6; } +if ${ac_cv_search_xpmem_make+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char xpmem_make (); +int +main () +{ +return xpmem_make (); + ; + return 0; +} +_ACEOF +for ac_lib in '' xpmem; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_xpmem_make=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_xpmem_make+:} false; then : + break +fi +done +if ${ac_cv_search_xpmem_make+:} false; then : else + ac_cv_search_xpmem_make=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xpmem_make" >&5 +$as_echo "$ac_cv_search_xpmem_make" >&6; } +ac_res=$ac_cv_search_xpmem_make +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" + opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" + unset ac_cv_search_xpmem_make +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -132993,7 +132697,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -133012,66 +132716,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $crs_self_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$crs_self_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -133084,7 +132738,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -133103,7 +132757,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -133111,389 +132765,303 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $crs_self_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libxpmem requires libnl v1 or v3" >&5 +$as_echo_n "checking if libxpmem requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void xpmem_make (void); +int main(int argc, char *argv[]) { + xpmem_make (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:132792: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lxpmem $LIBS $opal_check_xpmem_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lxpmem $LIBS $opal_check_xpmem_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:132799: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring crs_self_WRAPPER_EXTRA_CPPFLAGS ($crs_self_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring crs_self_WRAPPER_EXTRA_CPPFLAGS ($crs_self_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib xpmem" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib xpmem" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crs:self can compile" >&5 -$as_echo_n "checking if MCA component crs:self can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi - # If this component was requested as the default for this - # type, then abort. - if test "$with_crs" = "self" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"self\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"self\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - if test ! -z "$DIRECT_crs" ; then - if test "$DIRECT_crs" = "self" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"self\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"self\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # add component to all component list - all_components="$all_components self" + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libxpmem links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libxpmem links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libxpmem (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libxpmem (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libxpmem." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libxpmem." >&2;} + + libnl_sane=0 fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas xpmem requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas xpmem requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libxpmem (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libxpmem (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libxpmem." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libxpmem." >&2;} - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_crs_self_DSO=1 -else - BUILD_opal_crs_self_DSO=0 -fi - if test "$BUILD_opal_crs_self_DSO" = "1"; then - MCA_BUILD_opal_crs_self_DSO_TRUE= - MCA_BUILD_opal_crs_self_DSO_FALSE='#' + libnl_sane=0 else - MCA_BUILD_opal_crs_self_DSO_TRUE='#' - MCA_BUILD_opal_crs_self_DSO_FALSE= -fi + opal_libnlv1_libs="$opal_libnlv1_libs xpmem" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi +# Go through each item in the variable and only keep the unique ones - unset compile_mode +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + opal_i="`expr $opal_i + 1`" + done + # If we didn't find the token, add it to the "array" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done - if test "1" != "0"; then : +# Take all the items in the "array" and assemble them back into a +# single variable - for component_path in $srcdir/opal/mca/crs/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component crs:$component (need to configure)" +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - component_path="$srcdir/opal/mca/crs/$component" - want_component=0 +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_crs" ; then - if test "$DIRECT_crs" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi +# Clean up - # if we were explicitly disabled, don't build :) - if test "$DISABLE_crs" = "1"; then : - want_component=0 +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_crs_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libxpmem requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libxpmem requires libnl-3" >&2;} - SHARED_FRAMEWORK="$DSO_crs" - str="SHARED_COMPONENT=\$DSO_crs_$component" - eval $str - - STATIC_FRAMEWORK="$STATIC_crs" - str="STATIC_COMPONENT=\$STATIC_crs_$component" - eval $str + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libxpmem (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libxpmem (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libxpmem." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libxpmem." >&2;} - shared_mode_override=static + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs xpmem" - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component crs:$component compile mode" >&5 -$as_echo_n "checking for MCA component crs:$component compile mode... " >&6; } - if test "$DIRECT_crs" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +# Go through each item in the variable and only keep the unique ones - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - if test "$should_build" = "1" ; then + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Check the ending condition - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + opal_done="`expr $opal_i \>= $opal_count`" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str + # Increment the counter - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_i="`expr $opal_i + 1`" + done + # If we didn't find the token, add it to the "array" -# -# Invoke configure in a specific subdirectory. -# -# opal/mca/crs/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="opal/mca/crs/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done -# -# Sanity checks -# +# Take all the items in the "array" and assemble them back into a +# single variable -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac +# Done; do the assignment - # - # Move into the target directory - # +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - subdir_parent=`pwd` - cd $subdir_dir +# Clean up - # - # Make a "../" for each directory in $subdir_dir. - # +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # +fi - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # - # Construct the --cache-file argument - # + rm -f conftest conftest_c.$ac_ext - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + opal_libnl_sane=$libnl_sane - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # - # Go back to the topdir - # + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - cd $subdir_parent -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# -# Clean up -# + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -133515,643 +133083,31 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/opal/mca/crs/all_components/post_configure.sh" - if test -f $infile; then + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi +fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - crs_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - crs_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi - - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/crs/$component/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "crs" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/crs/$component/lib${OPAL_LIB_PREFIX}mca_crs_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/crs/$component/libmca_crs_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_crs_$component_component;" >> $outfile.extern - echo " &mca_crs_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crs:$component can compile" >&5 -$as_echo_n "checking if MCA component crs:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_crs" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_crs_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** crs component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_crs" = "$component" ; then -as_fn_error $? "*** crs component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$crs_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_xpmem_make" != "no" && + test "$ac_cv_search_xpmem_make" != "none required"; then : + opal_check_xpmem_LIBS="$ac_cv_search_xpmem_make " else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - -str="line=\$crs_$component_WRAPPER_EXTRA_LIBS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + opal_check_xpmem_LIBS="" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crs:$component can compile" >&5 -$as_echo_n "checking if MCA component crs:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_crs" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_crs" ; then - if test "$DIRECT_crs" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - fi - fi - done - + opal_check_package_happy="no" fi - MCA_opal_crs_ALL_COMPONENTS="$all_components" - MCA_opal_crs_STATIC_COMPONENTS="$static_components" - MCA_opal_crs_DSO_COMPONENTS="$dso_components" - MCA_opal_crs_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_opal_crs_ALL_SUBDIRS= - for item in $all_components ; do - MCA_opal_crs_ALL_SUBDIRS="$MCA_opal_crs_ALL_SUBDIRS mca/crs/$item" - done - - - - MCA_opal_crs_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_opal_crs_STATIC_SUBDIRS="$MCA_opal_crs_STATIC_SUBDIRS mca/crs/$item" - done - - - - MCA_opal_crs_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_opal_crs_DSO_SUBDIRS="$MCA_opal_crs_DSO_SUBDIRS mca/crs/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "crs" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS dl" - MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/dl" - MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_dl_ALL_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_dl_DSO_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_dl_STATIC_SUBDIRS)" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/dl/libmca_dl.la" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_dl_STATIC_LTLIBS)" - - OPAL_HAVE_DL_SUPPORT=0 - # If --disable-dlopen was used, then have all the components fail - # (we still need to configure them all so that things like "make - # dist" work", but we just want the MCA system to (artificially) - # conclude that it can't build any of the components. - if test "$enable_dlopen" = "no"; then : - want_dl=0 else - want_dl=1 -fi - - - opal_show_subsubtitle "Configuring MCA framework dl" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=opal/mca/dl/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files opal/mca/dl/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework dl" >&5 -$as_echo_n "checking for no configure components in framework dl... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework dl" >&5 -$as_echo_n "checking for m4 configure components in framework dl... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: dlopen, libltdl" >&5 -$as_echo "dlopen, libltdl" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - - # configure components that use built-in configuration scripts - - - - - - - best_mca_component_priority=0 - components_looking_for_succeed=$want_dl - components_last_result=0 - - - opal_show_subsubsubtitle "MCA component dl:dlopen (m4 configuration macro, priority 80)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/opal/mca/dl/dlopen" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_dl" ; then - if test "$DIRECT_dl" = "dlopen" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_dl" = "1"; then : - want_component=0 -fi - if test "$DISABLE_dl_dlopen" = "1"; then : - want_component=0 + opal_check_package_happy="no" fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component dl:dlopen compile mode" >&5 -$as_echo_n "checking for MCA component dl:dlopen compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - - - # try to configure the component - - ac_config_files="$ac_config_files opal/mca/dl/dlopen/Makefile" - - - # Check whether --enable-dl-dlopen was given. -if test "${enable_dl_dlopen+set}" = set; then : - enableval=$enable_dl_dlopen; -fi - - - opal_dl_dlopen_happy=no - if test "$enable_dl_dlopen" != "no"; then : - - opal_check_package_opal_dl_dlopen_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_opal_dl_dlopen_save_LDFLAGS="$LDFLAGS" - opal_check_package_opal_dl_dlopen_save_LIBS="$LIBS" - - opal_check_package_opal_dl_dlopen_orig_CPPFLAGS="$opal_dl_dlopen_CPPFLAGS" - opal_check_package_opal_dl_dlopen_orig_LDFLAGS="$opal_dl_dlopen_LDFLAGS" - opal_check_package_opal_dl_dlopen_orig_LIBS="$opal_dl_dlopen_LIBS" - - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_dlfcn_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in dlfcn.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" -if test "x$ac_cv_header_dlfcn_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLFCN_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_dlfcn_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - opal_dl_dlopen_CPPFLAGS="$opal_dl_dlopen_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in dlfcn.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" -if test "x$ac_cv_header_dlfcn_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLFCN_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : # This is stolen from autoconf to peek under the covers to get the # cache variable for the library check. one should not copy this @@ -134159,15 +133115,15 @@ # see comment above - unset ac_cv_search_dlopen + unset ac_cv_search_xpmem_make opal_check_package_lib_happy="no" - if test "" != ""; then : + if test "$opal_check_xpmem_libdir" != ""; then : # libdir was specified - search only there - opal_dl_dlopen_LDFLAGS="$opal_dl_dlopen_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 -$as_echo_n "checking for library containing dlopen... " >&6; } -if ${ac_cv_search_dlopen+:} false; then : + opal_check_xpmem_LDFLAGS="$opal_check_xpmem_LDFLAGS -L$opal_check_xpmem_libdir" + LDFLAGS="$LDFLAGS -L$opal_check_xpmem_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xpmem_make" >&5 +$as_echo_n "checking for library containing xpmem_make... " >&6; } +if ${ac_cv_search_xpmem_make+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -134180,16 +133136,16 @@ #ifdef __cplusplus extern "C" #endif -char dlopen (); +char xpmem_make (); int main () { -return dlopen (); +return xpmem_make (); ; return 0; } _ACEOF -for ac_lib in '' dl; do +for ac_lib in '' xpmem; do if test -z "$ac_lib"; then ac_res="none required" else @@ -134197,25 +133153,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlopen=$ac_res + ac_cv_search_xpmem_make=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_dlopen+:} false; then : + if ${ac_cv_search_xpmem_make+:} false; then : break fi done -if ${ac_cv_search_dlopen+:} false; then : +if ${ac_cv_search_xpmem_make+:} false; then : else - ac_cv_search_dlopen=no + ac_cv_search_xpmem_make=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -$as_echo "$ac_cv_search_dlopen" >&6; } -ac_res=$ac_cv_search_dlopen +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xpmem_make" >&5 +$as_echo "$ac_cv_search_xpmem_make" >&6; } +ac_res=$ac_cv_search_xpmem_make if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -134224,22 +133180,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" - opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" - unset ac_cv_search_dlopen + LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" + opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" + unset ac_cv_search_xpmem_make fi else # libdir was not specified - go through search path - opal_check_package_libdir="" + opal_check_package_libdir="$opal_check_xpmem_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 -$as_echo_n "checking for library containing dlopen... " >&6; } -if ${ac_cv_search_dlopen+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xpmem_make" >&5 +$as_echo_n "checking for library containing xpmem_make... " >&6; } +if ${ac_cv_search_xpmem_make+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -134252,16 +133208,16 @@ #ifdef __cplusplus extern "C" #endif -char dlopen (); +char xpmem_make (); int main () { -return dlopen (); +return xpmem_make (); ; return 0; } _ACEOF -for ac_lib in '' dl; do +for ac_lib in '' xpmem; do if test -z "$ac_lib"; then ac_res="none required" else @@ -134269,25 +133225,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlopen=$ac_res + ac_cv_search_xpmem_make=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_dlopen+:} false; then : + if ${ac_cv_search_xpmem_make+:} false; then : break fi done -if ${ac_cv_search_dlopen+:} false; then : +if ${ac_cv_search_xpmem_make+:} false; then : else - ac_cv_search_dlopen=no + ac_cv_search_xpmem_make=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -$as_echo "$ac_cv_search_dlopen" >&6; } -ac_res=$ac_cv_search_dlopen +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xpmem_make" >&5 +$as_echo "$ac_cv_search_xpmem_make" >&6; } +ac_res=$ac_cv_search_xpmem_make if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -134297,21 +133253,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" - opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" - unset ac_cv_search_dlopen + LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" + opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" + unset ac_cv_search_xpmem_make fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_dl_dlopen_LDFLAGS="$opal_dl_dlopen_LDFLAGS -L$opal_check_package_libdir/lib" + opal_check_xpmem_LDFLAGS="$opal_check_xpmem_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 -$as_echo_n "checking for library containing dlopen... " >&6; } -if ${ac_cv_search_dlopen+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xpmem_make" >&5 +$as_echo_n "checking for library containing xpmem_make... " >&6; } +if ${ac_cv_search_xpmem_make+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -134324,16 +133280,16 @@ #ifdef __cplusplus extern "C" #endif -char dlopen (); +char xpmem_make (); int main () { -return dlopen (); +return xpmem_make (); ; return 0; } _ACEOF -for ac_lib in '' dl; do +for ac_lib in '' xpmem; do if test -z "$ac_lib"; then ac_res="none required" else @@ -134341,25 +133297,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlopen=$ac_res + ac_cv_search_xpmem_make=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_dlopen+:} false; then : + if ${ac_cv_search_xpmem_make+:} false; then : break fi done -if ${ac_cv_search_dlopen+:} false; then : +if ${ac_cv_search_xpmem_make+:} false; then : else - ac_cv_search_dlopen=no + ac_cv_search_xpmem_make=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -$as_echo "$ac_cv_search_dlopen" >&6; } -ac_res=$ac_cv_search_dlopen +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xpmem_make" >&5 +$as_echo "$ac_cv_search_xpmem_make" >&6; } +ac_res=$ac_cv_search_xpmem_make if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -134369,22 +133325,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" - opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" - unset ac_cv_search_dlopen + LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" + opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" + unset ac_cv_search_xpmem_make fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_dl_dlopen_LDFLAGS="$opal_dl_dlopen_LDFLAGS -L$opal_check_package_libdir/lib64" + opal_check_xpmem_LDFLAGS="$opal_check_xpmem_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 -$as_echo_n "checking for library containing dlopen... " >&6; } -if ${ac_cv_search_dlopen+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing xpmem_make" >&5 +$as_echo_n "checking for library containing xpmem_make... " >&6; } +if ${ac_cv_search_xpmem_make+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -134397,16 +133353,16 @@ #ifdef __cplusplus extern "C" #endif -char dlopen (); +char xpmem_make (); int main () { -return dlopen (); +return xpmem_make (); ; return 0; } _ACEOF -for ac_lib in '' dl; do +for ac_lib in '' xpmem; do if test -z "$ac_lib"; then ac_res="none required" else @@ -134414,25 +133370,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlopen=$ac_res + ac_cv_search_xpmem_make=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_dlopen+:} false; then : + if ${ac_cv_search_xpmem_make+:} false; then : break fi done -if ${ac_cv_search_dlopen+:} false; then : +if ${ac_cv_search_xpmem_make+:} false; then : else - ac_cv_search_dlopen=no + ac_cv_search_xpmem_make=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -$as_echo "$ac_cv_search_dlopen" >&6; } -ac_res=$ac_cv_search_dlopen +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_xpmem_make" >&5 +$as_echo "$ac_cv_search_xpmem_make" >&6; } +ac_res=$ac_cv_search_xpmem_make if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -134442,9 +133398,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" - opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" - unset ac_cv_search_dlopen + LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" + opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" + unset ac_cv_search_xpmem_make fi fi fi @@ -134541,12 +133497,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libdl requires libnl v1 or v3" >&5 -$as_echo_n "checking if libdl requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libxpmem requires libnl v1 or v3" >&5 +$as_echo_n "checking if libxpmem requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void dlopen (void); +extern void xpmem_make (void); int main(int argc, char *argv[]) { - dlopen (); + xpmem_make (); return 0; } EOF @@ -134558,14 +133514,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:134561: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ldl $LIBS $opal_dl_dlopen_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ldl $LIBS $opal_dl_dlopen_LIBS 1>&5 2>&1 +echo "configure:133517: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lxpmem $LIBS $opal_check_xpmem_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lxpmem $LIBS $opal_check_xpmem_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:134568: \$? = $opal_status" >&5 + echo "configure:133524: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -134585,8 +133541,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib dl" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib dl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib xpmem" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib xpmem" >&2;} fi @@ -134600,15 +133556,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libdl links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libdl links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libxpmem links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libxpmem links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libxpmem (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libxpmem (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libxpmem." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libxpmem." >&2;} libnl_sane=0 fi @@ -134617,19 +133573,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas dl requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas dl requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas xpmem requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas xpmem requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libxpmem (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libxpmem (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libxpmem." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libxpmem." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs dl" + opal_libnlv1_libs="$opal_libnlv1_libs xpmem" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -134708,19 +133664,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libdl requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libdl requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libxpmem requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libxpmem requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libxpmem (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libxpmem (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libxpmem." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libxpmem." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs dl" + opal_libnlv3_libs="$opal_libnlv3_libs xpmem" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -134861,11 +133817,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_dlopen" != "no" && - test "$ac_cv_search_dlopen" != "none required"; then : - opal_dl_dlopen_LIBS="$ac_cv_search_dlopen " + if test "$ac_cv_search_xpmem_make" != "no" && + test "$ac_cv_search_xpmem_make" != "none required"; then : + opal_check_xpmem_LIBS="$ac_cv_search_xpmem_make " else - opal_dl_dlopen_LIBS="" + opal_check_xpmem_LIBS="" fi opal_check_package_happy="yes" else @@ -134873,313 +133829,142 @@ fi -else - opal_check_package_happy="no" fi -else + unset opal_check_package_header_happy - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # see comment above - unset ac_cv_search_dlopen - opal_check_package_lib_happy="no" - if test "" != ""; then : - # libdir was specified - search only there - opal_dl_dlopen_LDFLAGS="$opal_dl_dlopen_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 -$as_echo_n "checking for library containing dlopen... " >&6; } -if ${ac_cv_search_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_dlopen+:} false; then : + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -else - ac_cv_search_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -$as_echo "$ac_cv_search_dlopen" >&6; } -ac_res=$ac_cv_search_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" - opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" - unset ac_cv_search_dlopen -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 -$as_echo_n "checking for library containing dlopen... " >&6; } -if ${ac_cv_search_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 + + if test "$opal_check_package_happy" = "yes"; then : + opal_check_xpmem_happy="yes" else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + opal_check_xpmem_CPPFLAGS="$opal_check_package_opal_check_xpmem_orig_CPPFLAGS" + opal_check_xpmem_LDFLAGS="$opal_check_package_opal_check_xpmem_orig_LDFLAGS" + opal_check_xpmem_LIBS="$opal_check_package_opal_check_xpmem_orig_LIBS" -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dlopen+:} false; then : - break fi -done -if ${ac_cv_search_dlopen+:} false; then : -else - ac_cv_search_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -$as_echo "$ac_cv_search_dlopen" >&6; } -ac_res=$ac_cv_search_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + CPPFLAGS="$opal_check_package_opal_check_xpmem_save_CPPFLAGS" + LDFLAGS="$opal_check_package_opal_check_xpmem_save_LDFLAGS" + LIBS="$opal_check_package_opal_check_xpmem_save_LIBS" - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" - opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" - unset ac_cv_search_dlopen -fi -fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_dl_dlopen_LDFLAGS="$opal_dl_dlopen_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 -$as_echo_n "checking for library containing dlopen... " >&6; } -if ${ac_cv_search_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if test "$opal_check_xpmem_happy" = "no" && test -n "$with_xpmem" && test "$with_xpmem" != "yes" ; then + as_fn_error $? "XPMEM support requested but not found. Aborting" "$LINENO" 5 + fi + fi + fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_dlopen+:} false; then : -else - ac_cv_search_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -$as_echo "$ac_cv_search_dlopen" >&6; } -ac_res=$ac_cv_search_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" - opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" - unset ac_cv_search_dlopen -fi -fi -fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_dl_dlopen_LDFLAGS="$opal_dl_dlopen_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 -$as_echo_n "checking for library containing dlopen... " >&6; } -if ${ac_cv_search_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_dlopen+:} false; then : + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -else - ac_cv_search_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -$as_echo "$ac_cv_search_dlopen" >&6; } -ac_res=$ac_cv_search_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" - opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" - unset ac_cv_search_dlopen -fi -fi -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="Shared memory/XPMEM: $opal_check_xpmem_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + if test "$opal_check_xpmem_happy" = "yes"; then : + + btl_vader_CPPFLAGS="$btl_vader_CPPFLAGS $opal_check_xpmem_CPPFLAGS" + btl_vader_LDFLAGS="$btl_vader_LDFLAGS $opal_check_xpmem_LDFLAGS" + btl_vader_LIBS="$btl_vader_LIBS $opal_check_xpmem_LIBS" + btl_vader_xpmem_happy=1 +else + btl_vader_xpmem_happy=0 fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + if test -z "$opal_check_knem_happy" ; then # Is the private index set? If not, set it. @@ -135191,7 +133976,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_check_knem_btl_vader_save_CPPFLAGS opal_check_knem_dir; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -135210,16 +133995,72 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_check_knem_btl_vader_save_CPPFLAGS opal_check_knem_dir\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + +# Check whether --with-knem was given. +if test "${with_knem+set}" = set; then : + withval=$with_knem; +fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-knem value" >&5 +$as_echo_n "checking --with-knem value... " >&6; } + if test "$with_knem" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-knem)" >&5 +$as_echo "simple no (specified --without-knem)" >&6; } +else + if test "$with_knem" = "yes" || test "x$with_knem" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_knem"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_knem not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_knem not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_knem/include/knem_io.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_knem/include/knem_io.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_knem/include/knem_io.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_knem)" >&5 +$as_echo "sanity check ok ($with_knem)" >&6; } + +fi + + +fi + + +fi + + +fi + + opal_check_knem_btl_vader_save_CPPFLAGS="$CPPFLAGS" + + opal_check_knem_happy=no + + if test "$with_knem" != "no"; then : + if test ! -z "$with_knem" && test "$with_knem" != "yes"; then : + opal_check_knem_dir="$with_knem" +fi + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -135232,7 +134073,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -135251,7 +134092,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -135259,276 +134100,402 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libdl requires libnl v1 or v3" >&5 -$as_echo_n "checking if libdl requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void dlopen (void); -int main(int argc, char *argv[]) { - dlopen (); - return 0; -} -EOF + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_knem_io_h - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # get rid of the trailing slash(es) + dir_prefix=$(echo $opal_check_knem_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in knem_io.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "knem_io.h" "ac_cv_header_knem_io_h" "$ac_includes_default" +if test "x$ac_cv_header_knem_io_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_KNEM_IO_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:135286: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ldl $LIBS $opal_dl_dlopen_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ldl $LIBS $opal_dl_dlopen_LIBS 1>&5 2>&1 -opal_status=$? +done -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:135293: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_knem_io_h fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + ompi_check_knem_CPPFLAGS="$ompi_check_knem_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in knem_io.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "knem_io.h" "ac_cv_header_knem_io_h" "$ac_includes_default" +if test "x$ac_cv_header_knem_io_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_KNEM_IO_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib dl" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib dl" >&2;} +done + if test "$opal_check_package_header_happy" = "yes"; then : + opal_check_knem_happy="yes" +fi +else + opal_check_knem_happy="yes" fi + unset opal_check_package_header_happy - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libdl links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libdl links to both libnl and libnl-3." >&2;} + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - libnl_sane=0 -fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas dl requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas dl requires libnl" >&2;} +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} + CPPFLAGS="$CPPFLAGS $ompi_check_knem_CPPFLAGS" - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs dl" + # need at least version 0x0000000b + if test "$opal_check_knem_happy" = "yes" ; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs +#include -# Go through each item in the variable and only keep the unique ones +int +main () +{ -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 +#if KNEM_ABI_VERSION < 0xc +#error "Version less than 0xc" +#endif - # Loop over every token we've seen so far + ; + return 0; +} +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + opal_check_knem_happy=yes +else + opal_check_knem_happy=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext + fi - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + CPPFLAGS="$opal_check_knem_btl_vader_save_CPPFLAGS" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # Increment the counter + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_i="`expr $opal_i + 1`" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done - # If we didn't find the token, add it to the "array" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="Shared memory/Linux KNEM: $opal_check_knem_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" else - opal_i="`expr $opal_i - 1`" + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -# Done; do the assignment + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libdl requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libdl requires libnl-3" >&2;} + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} + fi - libnl_sane=0 + if test "$opal_check_knem_happy" = "yes"; then : + btl_vader_CPPFLAGS="$btl_vader_CPPFLAGS $ompi_check_knem_CPPFLAGS" + btl_vader_knem_happy=1 else - opal_libnlv3_libs="$opal_libnlv3_libs dl" + if test ! -z "$with_knem" && test "$with_knem" != "no"; then : + as_fn_error $? "KNEM support requested but not found. Aborting" "$LINENO" 5 +fi + btl_vader_knem_happy=0 +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 +# Check whether --with-cma was given. +if test "${with_cma+set}" = set; then : + withval=$with_cma; +fi - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + if test "x$with_cma" = "xno" ; then + opal_check_cma_happy=0 + fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # We only need to do the back-end test once + if test -z "$opal_check_cma_happy" ; then - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # Increment the counter + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_check_cma_need_defs opal_check_cma_kernel_version opal_check_cma_CFLAGS opal_check_cma_msg; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_i="`expr $opal_i + 1`" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done - # If we didn't find the token, add it to the "array" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_check_cma_need_defs opal_check_cma_kernel_version opal_check_cma_CFLAGS opal_check_cma_msg\"" + eval $opal_str + unset opal_str - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + # Some systems have process_cm_readv() in libc, which means CMA is + # supported. Other systems do not have process_cm_readv() in + # libc, but have support for it in the kernel if we invoke it + # directly. Check for both. + for ac_header in sys/prctl.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/prctl.h" "ac_cv_header_sys_prctl_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_prctl_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_PRCTL_H 1 +_ACEOF - opal_eval="unset opal_array_$opal_i" - eval $opal_eval +fi - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + ac_fn_c_check_func "$LINENO" "process_vm_readv" "ac_cv_func_process_vm_readv" +if test "x$ac_cv_func_process_vm_readv" = xyes; then : + opal_check_cma_need_defs=0 +else + opal_check_cma_need_defs=1 +fi -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi +cat >>confdefs.h <<_ACEOF +#define OPAL_CMA_NEED_SYSCALL_DEFS $opal_check_cma_need_defs +_ACEOF -fi + if test $opal_check_cma_need_defs -eq 1 ; then + opal_check_cma_CFLAGS=$CFLAGS + # Need some extra include paths to locate the appropriate headers + CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/opal/include" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if internal syscall numbers for Linux CMA work" >&5 +$as_echo_n "checking if internal syscall numbers for Linux CMA work... " >&6; } + if test "$cross_compiling" = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (cross-compiling)" >&5 +$as_echo "no (cross-compiling)" >&6; } + opal_check_cma_happy=0 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu +#include +#include +#include +#include - rm -f conftest conftest_c.$ac_ext +#include +#include +#include - opal_libnl_sane=$libnl_sane +#include "opal/include/opal/sys/cma.h" + +static void do_check (pid_t pid, int *in, int *out) +{ + int check[4] = {0, 0, 0, 0}, i; + struct iovec rem_iov = {out, sizeof (check)}; + struct iovec loc_iov = {check, sizeof (check)}; + ssize_t rc; + + rc = process_vm_readv (pid, &loc_iov, 1, &rem_iov, 1, 0); + if (sizeof (check) != rc) { + exit (1); + } + + for (i = 0 ; i < 4 ; ++i) { + if (check[i] != i) { + exit (1); + } + + check[i] = i * 2; + } + + rem_iov.iov_base = in; + rc = process_vm_writev (pid, &loc_iov, 1, &rem_iov, 1, 0); + if (sizeof (check) != rc) { + exit (1); + } + + exit (0); +} + +int +main () +{ + + int i, in[4] = {-1, -1, -1, -1}, out[4] = {0, 1, 2, 3}; + + do_check (getpid (), in, out); + + for (i = 0 ; i < 4 ; ++i) { + if (in[i] != 2 * i) { + return 1; + } + } + + /* all good */ + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cma_happy=1 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cma_happy=0 +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + CFLAGS=$opal_check_cma_CFLAGS + else + # If we didn't need the defs, then we have process_vm_readv(), + # and CMA is happy. + opal_check_cma_happy=1 + fi # Unwind the index @@ -135552,10 +134519,65 @@ done - ;; - esac + if test $opal_check_cma_happy -eq 1; then : + opal_check_cma_msg=yes +else + opal_check_cma_msg=no +fi + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="Shared memory/Linux CMA: $opal_check_cma_msg" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -135578,28 +134600,43 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi -fi + fi + + if test $opal_check_cma_happy -eq 1; then : + ac_fn_c_check_header_mongrel "$LINENO" "sys/prctl.h" "ac_cv_header_sys_prctl_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_prctl_h" = xyes; then : - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_dlopen" != "no" && - test "$ac_cv_search_dlopen" != "none required"; then : - opal_dl_dlopen_LIBS="$ac_cv_search_dlopen " -else - opal_dl_dlopen_LIBS="" fi - opal_check_package_happy="yes" + + btl_vader_cma_happy=1 else - opal_check_package_happy="no" + if test "$with_cma" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --with-cma support requested, but not available" >&5 +$as_echo "$as_me: WARNING: --with-cma support requested, but not available" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + btl_vader_cma_happy=0 fi -fi - unset opal_check_package_header_happy + +cat >>confdefs.h <<_ACEOF +#define OPAL_BTL_VADER_HAVE_XPMEM $btl_vader_xpmem_happy +_ACEOF + + + +cat >>confdefs.h <<_ACEOF +#define OPAL_BTL_VADER_HAVE_CMA $btl_vader_cma_happy +_ACEOF + + + +cat >>confdefs.h <<_ACEOF +#define OPAL_BTL_VADER_HAVE_KNEM $btl_vader_knem_happy +_ACEOF + # Unwind the index @@ -135623,30 +134660,89 @@ done + # always happy + should_build=$should_build - if test "$opal_check_package_happy" = "yes"; then : - opal_dl_dlopen_happy=yes -else - opal_dl_dlopen_CPPFLAGS="$opal_check_package_opal_dl_dlopen_orig_CPPFLAGS" - opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" - opal_dl_dlopen_LIBS="$opal_check_package_opal_dl_dlopen_orig_LIBS" - opal_dl_dlopen_happy=no -fi - CPPFLAGS="$opal_check_package_opal_dl_dlopen_save_CPPFLAGS" - LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" - LIBS="$opal_check_package_opal_dl_dlopen_save_LIBS" -fi + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="Shared memory/copy in+copy out: yes" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + +# substitute in the things needed to build with XPMEM support + - if test "$opal_dl_dlopen_happy" = "yes"; then : - dl_dlopen_ADD_LIBS=$opal_dl_dlopen_LIBS - dl_dlopen_WRAPPER_EXTRA_LIBS=$opal_dl_dlopen_LIBS - should_build=$should_build -else - should_build=0 -fi @@ -135658,45 +134754,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/dl/dlopen/post_configure.sh" + infile="$srcdir/opal/mca/btl/vader/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components dlopen" + all_components="$all_components vader" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components dlopen" + dso_components="$dso_components vader" else - if test "dl" = "common"; then + if test "btl" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/dl/dlopen/lib${OPAL_LIB_PREFIX}mca_dl_dlopen.la $static_ltlibs" + static_ltlibs="mca/btl/vader/lib${OPAL_LIB_PREFIX}mca_btl_vader.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/dl/dlopen/libmca_dl_dlopen.la $static_ltlibs" + static_ltlibs="mca/btl/vader/libmca_btl_vader.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_dl_dlopen_component;" >> $outfile.extern - echo " &mca_dl_dlopen_component, " >> $outfile.struct - static_components="$static_components dlopen" + echo "extern const mca_base_component_t mca_btl_vader_component;" >> $outfile.extern + echo " &mca_btl_vader_component, " >> $outfile.struct + static_components="$static_components vader" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component dl:dlopen can compile" >&5 -$as_echo_n "checking if MCA component dl:dlopen can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:vader can compile" >&5 +$as_echo_n "checking if MCA component btl:vader can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_dl" = "dlopen" ; then + if test "$DIRECT_btl" = "vader" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_dl_DIRECT_CALL_HEADER=$line" + str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** dl component dlopen was supposed to be direct-called, but +as_fn_error $? "*** btl component vader was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -135704,8 +134800,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_dl" = "dlopen" ; then -as_fn_error $? "*** dl component dlopen was supposed to be direct-called, but + if test "$DIRECT_btl" = "vader" ; then +as_fn_error $? "*** btl component vader was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -135720,7 +134816,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$dl_dlopen_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$btl_vader_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -135760,7 +134856,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $dl_dlopen_LDFLAGS; do + for arg in $btl_vader_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -135841,7 +134937,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $dl_dlopen_WRAPPER_EXTRA_LDFLAGS; do + for arg in $btl_vader_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -135883,7 +134979,7 @@ fi - if test "$dl_dlopen_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$btl_vader_WRAPPER_EXTRA_LIBS" = ""; then : @@ -135923,7 +135019,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $dl_dlopen_LIBS; do + for arg in $btl_vader_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -136004,7 +135100,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $dl_dlopen_WRAPPER_EXTRA_LIBS; do + for arg in $btl_vader_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -136052,8 +135148,8 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$dl_dlopen_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=1 + if test "$btl_vader_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -136095,7 +135191,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $dl_dlopen_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $btl_vader_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -136138,32 +135234,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring dl_dlopen_WRAPPER_EXTRA_CPPFLAGS ($dl_dlopen_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring dl_dlopen_WRAPPER_EXTRA_CPPFLAGS ($dl_dlopen_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring btl_vader_WRAPPER_EXTRA_CPPFLAGS ($btl_vader_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring btl_vader_WRAPPER_EXTRA_CPPFLAGS ($btl_vader_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component dl:dlopen can compile" >&5 -$as_echo_n "checking if MCA component dl:dlopen can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:vader can compile" >&5 +$as_echo_n "checking if MCA component btl:vader can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_dl" = "dlopen" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dlopen\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"dlopen\" failed to configure properly" >&2;} + if test "$with_btl" = "vader" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"vader\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"vader\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_dl" ; then - if test "$DIRECT_dl" = "dlopen" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dlopen\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"dlopen\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_btl" ; then + if test "$DIRECT_btl" = "vader" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"vader\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"vader\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -136171,23 +135267,23 @@ fi # add component to all component list - all_components="$all_components dlopen" + all_components="$all_components vader" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_dl_dlopen_DSO=1 + BUILD_opal_btl_vader_DSO=1 else - BUILD_opal_dl_dlopen_DSO=0 + BUILD_opal_btl_vader_DSO=0 fi - if test "$BUILD_opal_dl_dlopen_DSO" = "1"; then - MCA_BUILD_opal_dl_dlopen_DSO_TRUE= - MCA_BUILD_opal_dl_dlopen_DSO_FALSE='#' + if test "$BUILD_opal_btl_vader_DSO" = "1"; then + MCA_BUILD_opal_btl_vader_DSO_TRUE= + MCA_BUILD_opal_btl_vader_DSO_FALSE='#' else - MCA_BUILD_opal_dl_dlopen_DSO_TRUE='#' - MCA_BUILD_opal_dl_dlopen_DSO_FALSE= + MCA_BUILD_opal_btl_vader_DSO_TRUE='#' + MCA_BUILD_opal_btl_vader_DSO_FALSE= fi @@ -136199,19 +135295,28 @@ unset compile_mode - if test $components_last_result -eq 1; then : - components_looking_for_succeed=0 -fi - opal_show_subsubsubtitle "MCA component dl:libltdl (m4 configuration macro, priority 50)" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - component_path="$srcdir/opal/mca/dl/libltdl" + if test "1" != "0"; then : + + for component_path in $srcdir/opal/mca/btl/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component btl:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/opal/mca/btl/$component" want_component=0 # build if: @@ -136243,8 +135348,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_dl" ; then - if test "$DIRECT_dl" = "libltdl" ; then + if test ! -z "$DIRECT_btl" ; then + if test "$DIRECT_btl" = "$component" ; then want_component=1 else want_component=0 @@ -136253,30 +135358,59 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_dl" = "1"; then : - want_component=0 -fi - if test "$DISABLE_dl_libltdl" = "1"; then : + if test "$DISABLE_btl" = "1"; then : want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_btl_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component dl:libltdl compile mode" >&5 -$as_echo_n "checking for MCA component dl:libltdl compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 + SHARED_FRAMEWORK="$DSO_btl" + str="SHARED_COMPONENT=\$DSO_btl_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_btl" + str="STATIC_COMPONENT=\$STATIC_btl_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component btl:$component compile mode" >&5 +$as_echo_n "checking for MCA component btl:$component compile mode... " >&6; } + if test "$DIRECT_btl" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 $as_echo "$compile_mode" >&6; } + fi + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - # try to configure the component + if test "$should_build" = "1" ; then @@ -136289,7 +135423,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in CPPFLAGS_save LDFLAGS_save LIBS_save; do + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -136308,148 +135442,258 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"CPPFLAGS_save LDFLAGS_save LIBS_save\"" + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - ac_config_files="$ac_config_files opal/mca/dl/libltdl/Makefile" +# +# Invoke configure in a specific subdirectory. +# +# opal/mca/btl/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="opal/mca/btl/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" - # Add --with options +# +# Sanity checks +# -# Check whether --with-libltdl was given. -if test "${with_libltdl+set}" = set; then : - withval=$with_libltdl; -fi +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # -# Check whether --with-libltdl-libdir was given. -if test "${with_libltdl_libdir+set}" = set; then : - withval=$with_libltdl_libdir; -fi + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac - # Sanity check the --with values + # + # Move into the target directory + # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-libltdl value" >&5 -$as_echo_n "checking --with-libltdl value... " >&6; } - if test "$with_libltdl" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-libltdl)" >&5 -$as_echo "simple no (specified --without-libltdl)" >&6; } -else - if test "$with_libltdl" = "yes" || test "x$with_libltdl" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_libltdl"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_libltdl not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_libltdl not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_libltdl/include/ltdl.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_libltdl/include/ltdl.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_libltdl/include/ltdl.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_libltdl)" >&5 -$as_echo "sanity check ok ($with_libltdl)" >&6; } + subdir_parent=`pwd` + cd $subdir_dir -fi + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + # + # Construct the --cache-file argument + # -fi + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + # + # Invoke the configure script in the subdirectory + # -fi + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + # + # Go back to the topdir + # + cd $subdir_parent fi +# +# Clean up +# - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-libltdl-libdir value" >&5 -$as_echo_n "checking --with-libltdl-libdir value... " >&6; } - if test "$with_libltdl_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-libltdl-libdir)" >&5 -$as_echo "simple no (specified --without-libltdl-libdir)" >&6; } -else - if test "$with_libltdl_libdir" = "yes" || test "x$with_libltdl_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_libltdl_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_libltdl_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_libltdl_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_libltdl_libdir/libltdl.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_libltdl_libdir/libltdl.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_libltdl_libdir/libltdl.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_libltdl_libdir)" >&5 -$as_echo "sanity check ok ($with_libltdl_libdir)" >&6; } -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi -fi + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/opal/mca/btl/all_components/post_configure.sh" + if test -f $infile; then + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi -fi + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + btl_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + btl_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi - # Defaults - opal_check_libltdl_dir_msg="compiler default" - opal_check_libltdl_libdir_msg="linker default" - # Save directory names if supplied - if test ! -z "$with_libltdl" && test "$with_libltdl" != "yes"; then : - opal_check_libltdl_dir=$with_libltdl - opal_check_libltdl_dir_msg="$opal_check_libltdl_dir (from --with-libltdl)" -fi - if test ! -z "$with_libltdl_libdir" && test "$with_libltdl_libdir" != "yes"; then : - opal_check_libltdl_libdir=$with_libltdl_libdir - opal_check_libltdl_libdir_msg="$opal_check_libltdl_libdir (from --with-libltdl-libdir)" -fi - opal_dl_libltdl_happy=no - if test "$with_libltdl" != "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libltdl dir" >&5 -$as_echo_n "checking for libltdl dir... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_check_libltdl_dir_msg" >&5 -$as_echo "$opal_check_libltdl_dir_msg" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libltdl library dir" >&5 -$as_echo_n "checking for libltdl library dir... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_check_libltdl_libdir_msg" >&5 -$as_echo "$opal_check_libltdl_libdir_msg" >&6; } + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/btl/$component/post_configure.sh" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" - opal_check_package_opal_dl_libltdl_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_opal_dl_libltdl_save_LDFLAGS="$LDFLAGS" - opal_check_package_opal_dl_libltdl_save_LIBS="$LIBS" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "btl" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/btl/$component/lib${OPAL_LIB_PREFIX}mca_btl_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/btl/$component/libmca_btl_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_btl_$component_component;" >> $outfile.extern + echo " &mca_btl_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi - opal_check_package_opal_dl_libltdl_orig_CPPFLAGS="$opal_dl_libltdl_CPPFLAGS" - opal_check_package_opal_dl_libltdl_orig_LDFLAGS="$opal_dl_libltdl_LDFLAGS" - opal_check_package_opal_dl_libltdl_orig_LIBS="$opal_dl_libltdl_LIBS" + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:$component can compile" >&5 +$as_echo_n "checking if MCA component btl:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_btl" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_btl_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** btl component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_btl" = "$component" ; then +as_fn_error $? "*** btl component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$btl_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -136462,7 +135706,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -136481,7 +135725,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -136489,357 +135733,48 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_ltdl_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $opal_check_libltdl_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in ltdl.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default" -if test "x$ac_cv_header_ltdl_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LTDL_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_ltdl_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - opal_dl_libltdl_CPPFLAGS="$opal_dl_libltdl_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in ltdl.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default" -if test "x$ac_cv_header_ltdl_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LTDL_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_lt_dlopen - opal_check_package_lib_happy="no" - if test "$opal_check_libltdl_libdir" != ""; then : - # libdir was specified - search only there - opal_dl_libltdl_LDFLAGS="$opal_dl_libltdl_LDFLAGS -L$opal_check_libltdl_libdir" - LDFLAGS="$LDFLAGS -L$opal_check_libltdl_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 -$as_echo_n "checking for library containing lt_dlopen... " >&6; } -if ${ac_cv_search_lt_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lt_dlopen (); -int -main () -{ -return lt_dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ltdl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lt_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lt_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_lt_dlopen+:} false; then : - -else - ac_cv_search_lt_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 -$as_echo "$ac_cv_search_lt_dlopen" >&6; } -ac_res=$ac_cv_search_lt_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" - opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" - unset ac_cv_search_lt_dlopen -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$opal_check_libltdl_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 -$as_echo_n "checking for library containing lt_dlopen... " >&6; } -if ${ac_cv_search_lt_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lt_dlopen (); -int -main () -{ -return lt_dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ltdl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lt_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lt_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_lt_dlopen+:} false; then : - -else - ac_cv_search_lt_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 -$as_echo "$ac_cv_search_lt_dlopen" >&6; } -ac_res=$ac_cv_search_lt_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" - opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" - unset ac_cv_search_lt_dlopen -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_dl_libltdl_LDFLAGS="$opal_dl_libltdl_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 -$as_echo_n "checking for library containing lt_dlopen... " >&6; } -if ${ac_cv_search_lt_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lt_dlopen (); -int -main () -{ -return lt_dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ltdl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lt_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lt_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_lt_dlopen+:} false; then : - -else - ac_cv_search_lt_dlopen=no + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 -$as_echo "$ac_cv_search_lt_dlopen" >&6; } -ac_res=$ac_cv_search_lt_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" - opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" - unset ac_cv_search_lt_dlopen -fi + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_dl_libltdl_LDFLAGS="$opal_dl_libltdl_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 -$as_echo_n "checking for library containing lt_dlopen... " >&6; } -if ${ac_cv_search_lt_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lt_dlopen (); -int -main () -{ -return lt_dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ltdl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lt_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lt_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_lt_dlopen+:} false; then : + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -else - ac_cv_search_lt_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 -$as_echo "$ac_cv_search_lt_dlopen" >&6; } -ac_res=$ac_cv_search_lt_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" - opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" - unset ac_cv_search_lt_dlopen -fi -fi -fi -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. +str="line=\$btl_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -136852,7 +135787,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -136871,325 +135806,443 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libltdl requires libnl v1 or v3" >&5 -$as_echo_n "checking if libltdl requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void lt_dlopen (void); -int main(int argc, char *argv[]) { - lt_dlopen (); - return 0; -} -EOF + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component btl:$component can compile" >&5 +$as_echo_n "checking if MCA component btl:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # If this component was requested as the default for this + # type, then abort. + if test "$with_btl" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:136947: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lltdl $LIBS $opal_dl_libltdl_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lltdl $LIBS $opal_dl_libltdl_LIBS 1>&5 2>&1 -opal_status=$? + if test ! -z "$DIRECT_btl" ; then + if test "$DIRECT_btl" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + fi + fi + done -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:136954: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ltdl" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ltdl" >&2;} + MCA_opal_btl_ALL_COMPONENTS="$all_components" + MCA_opal_btl_STATIC_COMPONENTS="$static_components" + MCA_opal_btl_DSO_COMPONENTS="$dso_components" + MCA_opal_btl_STATIC_LTLIBS="$static_ltlibs" -fi - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libltdl links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libltdl links to both libnl and libnl-3." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libltdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libltdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libltdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libltdl." >&2;} - libnl_sane=0 -fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ltdl requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ltdl requires libnl" >&2;} + MCA_opal_btl_ALL_SUBDIRS= + for item in $all_components ; do + MCA_opal_btl_ALL_SUBDIRS="$MCA_opal_btl_ALL_SUBDIRS mca/btl/$item" + done - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libltdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libltdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libltdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libltdl." >&2;} - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs ltdl" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs + MCA_opal_btl_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_opal_btl_STATIC_SUBDIRS="$MCA_opal_btl_STATIC_SUBDIRS mca/btl/$item" + done -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far + MCA_opal_btl_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_opal_btl_DSO_SUBDIRS="$MCA_opal_btl_DSO_SUBDIRS mca/btl/$item" + done - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "btl" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern - # If we didn't find the token, add it to the "array" + unset all_components static_components dso_components outfile outfile_real - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS compress" + MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/compress" + MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_compress_ALL_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_compress_DSO_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_compress_STATIC_SUBDIRS)" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/compress/libmca_compress.la" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_compress_STATIC_LTLIBS)" -# Take all the items in the "array" and assemble them back into a -# single variable + opal_show_subsubtitle "Configuring MCA framework compress" -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=opal/mca/compress/base + as_dir=$outdir; as_fn_mkdir_p -# Clean up + # emit Makefile rule + ac_config_files="$ac_config_files opal/mca/compress/Makefile" -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi -fi + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libltdl requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libltdl requires libnl-3" >&2;} + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework compress" >&5 +$as_echo_n "checking for no configure components in framework compress... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: bzip, gzip" >&5 +$as_echo "bzip, gzip" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework compress" >&5 +$as_echo_n "checking for m4 configure components in framework compress... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libltdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libltdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libltdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libltdl." >&2;} + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - libnl_sane=0 + + + # run the configure logic for the no-config components + + opal_show_subsubsubtitle "MCA component compress:bzip (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/opal/mca/compress/bzip" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_compress" ; then + if test "$DIRECT_compress" = "bzip" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_compress" = "1"; then : + want_component=0 +fi + if test "$DISABLE_compress_bzip" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 else - opal_libnlv3_libs="$opal_libnlv3_libs ltdl" + should_build=0 +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones + SHARED_FRAMEWORK="$DSO_compress" + SHARED_COMPONENT="$DSO_compress_bzip" -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + STATIC_FRAMEWORK="$STATIC_compress" + STATIC_COMPONENT="$STATIC_compress_bzip" - # Loop over every token we've seen so far + shared_mode_override=static - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component compress:bzip compile mode" >&5 +$as_echo_n "checking for MCA component compress:bzip compile mode... " >&6; } + if test "$DIRECT_compress" = "bzip" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # Check the ending condition + if test "$should_build" = "1" ; then - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/compress/bzip/post_configure.sh" - # If we didn't find the token, add it to the "array" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components bzip" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components bzip" else - opal_i="`expr $opal_i - 1`" + if test "compress" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/compress/bzip/lib${OPAL_LIB_PREFIX}mca_compress_bzip.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/compress/bzip/libmca_compress_bzip.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_compress_bzip_component;" >> $outfile.extern + echo " &mca_compress_bzip_component, " >> $outfile.struct + static_components="$static_components bzip" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component compress:bzip can compile" >&5 +$as_echo_n "checking if MCA component compress:bzip can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_compress" = "bzip" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_compress_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** compress component bzip was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_compress" = "bzip" ; then +as_fn_error $? "*** compress component bzip was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$compress_bzip_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + for arg in $compress_bzip_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -137213,10 +136266,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $compress_bzip_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -137239,332 +136347,89 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_lt_dlopen" != "no" && - test "$ac_cv_search_lt_dlopen" != "none required"; then : - opal_dl_libltdl_LIBS="$ac_cv_search_lt_dlopen " -else - opal_dl_libltdl_LIBS="" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" fi + if test "$compress_bzip_WRAPPER_EXTRA_LIBS" = ""; then : -else - opal_check_package_happy="no" -fi -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # see comment above - unset ac_cv_search_lt_dlopen - opal_check_package_lib_happy="no" - if test "$opal_check_libltdl_libdir" != ""; then : - # libdir was specified - search only there - opal_dl_libltdl_LDFLAGS="$opal_dl_libltdl_LDFLAGS -L$opal_check_libltdl_libdir" - LDFLAGS="$LDFLAGS -L$opal_check_libltdl_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 -$as_echo_n "checking for library containing lt_dlopen... " >&6; } -if ${ac_cv_search_lt_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lt_dlopen (); -int -main () -{ -return lt_dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ltdl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lt_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lt_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_lt_dlopen+:} false; then : + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -else - ac_cv_search_lt_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 -$as_echo "$ac_cv_search_lt_dlopen" >&6; } -ac_res=$ac_cv_search_lt_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" - opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" - unset ac_cv_search_lt_dlopen -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$opal_check_libltdl_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 -$as_echo_n "checking for library containing lt_dlopen... " >&6; } -if ${ac_cv_search_lt_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lt_dlopen (); -int -main () -{ -return lt_dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ltdl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lt_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lt_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_lt_dlopen+:} false; then : -else - ac_cv_search_lt_dlopen=no + for arg in $compress_bzip_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 -$as_echo "$ac_cv_search_lt_dlopen" >&6; } -ac_res=$ac_cv_search_lt_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" - opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" - unset ac_cv_search_lt_dlopen + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_dl_libltdl_LDFLAGS="$opal_dl_libltdl_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 -$as_echo_n "checking for library containing lt_dlopen... " >&6; } -if ${ac_cv_search_lt_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lt_dlopen (); -int -main () -{ -return lt_dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ltdl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lt_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lt_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_lt_dlopen+:} false; then : -else - ac_cv_search_lt_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 -$as_echo "$ac_cv_search_lt_dlopen" >&6; } -ac_res=$ac_cv_search_lt_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" - opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" - unset ac_cv_search_lt_dlopen -fi -fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_dl_libltdl_LDFLAGS="$opal_dl_libltdl_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 -$as_echo_n "checking for library containing lt_dlopen... " >&6; } -if ${ac_cv_search_lt_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lt_dlopen (); -int -main () -{ -return lt_dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ltdl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lt_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lt_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_lt_dlopen+:} false; then : else - ac_cv_search_lt_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 -$as_echo "$ac_cv_search_lt_dlopen" >&6; } -ac_res=$ac_cv_search_lt_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" - opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" - unset ac_cv_search_lt_dlopen -fi -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. @@ -137577,7 +136442,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -137596,16 +136461,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $compress_bzip_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$compress_bzip_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -137618,7 +136533,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -137637,7 +136552,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -137645,501 +136560,246 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $compress_bzip_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libltdl requires libnl v1 or v3" >&5 -$as_echo_n "checking if libltdl requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void lt_dlopen (void); -int main(int argc, char *argv[]) { - lt_dlopen (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:137672: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lltdl $LIBS $opal_dl_libltdl_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lltdl $LIBS $opal_dl_libltdl_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:137679: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring compress_bzip_WRAPPER_EXTRA_CPPFLAGS ($compress_bzip_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring compress_bzip_WRAPPER_EXTRA_CPPFLAGS ($compress_bzip_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ltdl" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ltdl" >&2;} - -fi + else - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component compress:bzip can compile" >&5 +$as_echo_n "checking if MCA component compress:bzip can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + # If this component was requested as the default for this + # type, then abort. + if test "$with_compress" = "bzip" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bzip\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"bzip\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libltdl links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libltdl links to both libnl and libnl-3." >&2;} + if test ! -z "$DIRECT_compress" ; then + if test "$DIRECT_compress" = "bzip" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bzip\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"bzip\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libltdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libltdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libltdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libltdl." >&2;} + # add component to all component list + all_components="$all_components bzip" + fi - libnl_sane=0 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_opal_compress_bzip_DSO=1 + else + BUILD_opal_compress_bzip_DSO=0 + fi + if test "$BUILD_opal_compress_bzip_DSO" = "1"; then + MCA_BUILD_opal_compress_bzip_DSO_TRUE= + MCA_BUILD_opal_compress_bzip_DSO_FALSE='#' +else + MCA_BUILD_opal_compress_bzip_DSO_TRUE='#' + MCA_BUILD_opal_compress_bzip_DSO_FALSE= fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ltdl requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ltdl requires libnl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libltdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libltdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libltdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libltdl." >&2;} + ac_config_files="$ac_config_files opal/mca/compress/bzip/Makefile" - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs ltdl" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs + unset compile_mode -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition + opal_show_subsubsubtitle "MCA component compress:gzip (no configuration)" - opal_done="`expr $opal_i \>= $opal_count`" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" + component_path="$srcdir/opal/mca/compress/gzip" + want_component=0 - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_compress" ; then + if test "$DIRECT_compress" = "gzip" ; then + want_component=1 + else + want_component=0 + fi + fi fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval - -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_compress" = "1"; then : + want_component=0 fi - + if test "$DISABLE_compress_gzip" = "1"; then : + want_component=0 fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libltdl requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libltdl requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libltdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libltdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libltdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libltdl." >&2;} - - libnl_sane=0 + if test "$want_component" = "1"; then : + should_build=1 else - opal_libnlv3_libs="$opal_libnlv3_libs ltdl" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" - - # Increment the counter - - opal_i="`expr $opal_i + 1`" - done - - # If we didn't find the token, add it to the "array" - - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval - -# Clean up - -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi - -fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - ;; - esac - - opal_check_package_libnl_check_ok=$opal_libnl_sane - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - + should_build=0 fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_lt_dlopen" != "no" && - test "$ac_cv_search_lt_dlopen" != "none required"; then : - opal_dl_libltdl_LIBS="$ac_cv_search_lt_dlopen " -else - opal_dl_libltdl_LIBS="" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi + SHARED_FRAMEWORK="$DSO_compress" + SHARED_COMPONENT="$DSO_compress_gzip" -fi - unset opal_check_package_header_happy + STATIC_FRAMEWORK="$STATIC_compress" + STATIC_COMPONENT="$STATIC_compress_gzip" + shared_mode_override=static - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - - if test "$opal_check_package_happy" = "yes"; then : - opal_dl_libltdl_happy=yes -else - opal_dl_libltdl_CPPFLAGS="$opal_check_package_opal_dl_libltdl_orig_CPPFLAGS" - opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" - opal_dl_libltdl_LIBS="$opal_check_package_opal_dl_libltdl_orig_LIBS" - opal_dl_libltdl_happy=no -fi - - CPPFLAGS="$opal_check_package_opal_dl_libltdl_save_CPPFLAGS" - LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" - LIBS="$opal_check_package_opal_dl_libltdl_save_LIBS" - - -fi - - # If we have libltdl, do we have lt_dladvise? - opal_dl_libltdl_have_lt_dladvise=0 - if test "$opal_dl_libltdl_happy" = "yes"; then : - CPPFLAGS_save=$CPPFLAGS - LDFLAGS_save=$LDFLAGS - LIBS_save=$LIBS - - CPPFLAGS="$opal_dl_libltdl_CPPFLAGS $CPPFLAGS" - LDFLAGS="$opal_dl_libltdl_LDFLAGS $LDFLAGS" - LIBS="$opal_dl_libltdl_LIBS $LIBS" - ac_fn_c_check_func "$LINENO" "lt_dladvise_init" "ac_cv_func_lt_dladvise_init" -if test "x$ac_cv_func_lt_dladvise_init" = xyes; then : - opal_dl_libltdl_have_lt_dladvise=1 -fi - - CPPFLAGS=$CPPFLAGS_save - LDFLAGS=$LDFLAGS_save - LIBS=$LIBS_save - -fi - -cat >>confdefs.h <<_ACEOF -#define OPAL_DL_LIBLTDL_HAVE_LT_DLADVISE $opal_dl_libltdl_have_lt_dladvise -_ACEOF - - - if test "$opal_dl_libltdl_happy" = "yes"; then : - opal_dl_libltdl_ADD_CPPFLAGS=$opal_dl_libltdl_CPPFLAGS - opal_dl_libltdl_ADD_LDFLAGS=$opal_dl_libltdl_LDFLAGS - opal_dl_libltdl_ADD_LIBS=$opal_dl_libltdl_LIBS - should_build=$should_build -else - if test ! -z "$with_libltdl" && \ - test "$with_libltdl" != "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libltdl support requested (via --with-libltdl) but not found." >&5 -$as_echo "$as_me: WARNING: Libltdl support requested (via --with-libltdl) but not found." >&2;} - as_fn_error $? "Cannot continue." "$LINENO" 5 -fi - should_build=0 -fi - - - - - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component compress:gzip compile mode" >&5 +$as_echo_n "checking for MCA component compress:gzip compile mode... " >&6; } + if test "$DIRECT_compress" = "gzip" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/dl/libltdl/post_configure.sh" + infile="$srcdir/opal/mca/compress/gzip/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components libltdl" + all_components="$all_components gzip" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components libltdl" + dso_components="$dso_components gzip" else - if test "dl" = "common"; then + if test "compress" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/dl/libltdl/lib${OPAL_LIB_PREFIX}mca_dl_libltdl.la $static_ltlibs" + static_ltlibs="mca/compress/gzip/lib${OPAL_LIB_PREFIX}mca_compress_gzip.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/dl/libltdl/libmca_dl_libltdl.la $static_ltlibs" + static_ltlibs="mca/compress/gzip/libmca_compress_gzip.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_dl_libltdl_component;" >> $outfile.extern - echo " &mca_dl_libltdl_component, " >> $outfile.struct - static_components="$static_components libltdl" + echo "extern const mca_base_component_t mca_compress_gzip_component;" >> $outfile.extern + echo " &mca_compress_gzip_component, " >> $outfile.struct + static_components="$static_components gzip" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component dl:libltdl can compile" >&5 -$as_echo_n "checking if MCA component dl:libltdl can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component compress:gzip can compile" >&5 +$as_echo_n "checking if MCA component compress:gzip can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_dl" = "libltdl" ; then + if test "$DIRECT_compress" = "gzip" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_dl_DIRECT_CALL_HEADER=$line" + str="MCA_opal_compress_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** dl component libltdl was supposed to be direct-called, but +as_fn_error $? "*** compress component gzip was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -138147,8 +136807,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_dl" = "libltdl" ; then -as_fn_error $? "*** dl component libltdl was supposed to be direct-called, but + if test "$DIRECT_compress" = "gzip" ; then +as_fn_error $? "*** compress component gzip was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -138163,7 +136823,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$dl_libltdl_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$compress_gzip_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -138203,7 +136863,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $dl_libltdl_LDFLAGS; do + for arg in $compress_gzip_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -138284,7 +136944,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $dl_libltdl_WRAPPER_EXTRA_LDFLAGS; do + for arg in $compress_gzip_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -138326,7 +136986,7 @@ fi - if test "$dl_libltdl_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$compress_gzip_WRAPPER_EXTRA_LIBS" = ""; then : @@ -138366,7 +137026,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $dl_libltdl_LIBS; do + for arg in $compress_gzip_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -138447,7 +137107,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $dl_libltdl_WRAPPER_EXTRA_LIBS; do + for arg in $compress_gzip_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -138495,8 +137155,8 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$dl_libltdl_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=1 + if test "$compress_gzip_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -138538,7 +137198,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $dl_libltdl_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $compress_gzip_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -138581,388 +137241,90 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring dl_libltdl_WRAPPER_EXTRA_CPPFLAGS ($dl_libltdl_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring dl_libltdl_WRAPPER_EXTRA_CPPFLAGS ($dl_libltdl_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring compress_gzip_WRAPPER_EXTRA_CPPFLAGS ($compress_gzip_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring compress_gzip_WRAPPER_EXTRA_CPPFLAGS ($compress_gzip_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component dl:libltdl can compile" >&5 -$as_echo_n "checking if MCA component dl:libltdl can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component compress:gzip can compile" >&5 +$as_echo_n "checking if MCA component compress:gzip can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_dl" = "libltdl" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"libltdl\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"libltdl\" failed to configure properly" >&2;} + if test "$with_compress" = "gzip" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"gzip\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"gzip\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_dl" ; then - if test "$DIRECT_dl" = "libltdl" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"libltdl\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"libltdl\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_compress" ; then + if test "$DIRECT_compress" = "gzip" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"gzip\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"gzip\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components libltdl" -fi - - - # If we won, then do all the rest of the setup - if test "$should_build" = "1"; then : - - # Add some stuff to CPPFLAGS so that the rest of the source - # tree can be built - LDFLAGS="$LDFLAGS $opal_dl_libltdl_ADD_LDFLAGS" - LIBS="$LIBS $opal_dl_libltdl_ADD_LIBS" - -fi - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_dl_libltdl_DSO=1 -else - BUILD_opal_dl_libltdl_DSO=0 -fi - if test "$BUILD_opal_dl_libltdl_DSO" = "1"; then - MCA_BUILD_opal_dl_libltdl_DSO_TRUE= - MCA_BUILD_opal_dl_libltdl_DSO_FALSE='#' -else - MCA_BUILD_opal_dl_libltdl_DSO_TRUE='#' - MCA_BUILD_opal_dl_libltdl_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - - unset compile_mode - - if test $components_last_result -eq 1; then : - components_looking_for_succeed=0 -fi - - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - MCA_opal_dl_ALL_COMPONENTS="$all_components" - MCA_opal_dl_STATIC_COMPONENTS="$static_components" - MCA_opal_dl_DSO_COMPONENTS="$dso_components" - MCA_opal_dl_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_opal_dl_ALL_SUBDIRS= - for item in $all_components ; do - MCA_opal_dl_ALL_SUBDIRS="$MCA_opal_dl_ALL_SUBDIRS mca/dl/$item" - done - - - - MCA_opal_dl_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_opal_dl_STATIC_SUBDIRS="$MCA_opal_dl_STATIC_SUBDIRS mca/dl/$item" - done - - - - MCA_opal_dl_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_opal_dl_DSO_SUBDIRS="$MCA_opal_dl_DSO_SUBDIRS mca/dl/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "dl" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - - # If we found no suitable static dl component and dlopen support - # was not specifically disabled, this is an error. - if test "$MCA_opal_dl_STATIC_COMPONENTS" = "" && \ - test "$enable_dlopen" != "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Did not find a suitable static opal dl component" >&5 -$as_echo "$as_me: WARNING: Did not find a suitable static opal dl component" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You might need to install libltld (and its headers) or" >&5 -$as_echo "$as_me: WARNING: You might need to install libltld (and its headers) or" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: specify --disable-dlopen to configure." >&5 -$as_echo "$as_me: WARNING: specify --disable-dlopen to configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -fi - - # If we have a winning component (which, per above, will only - # happen if --disable-dlopen was *not* specified), do some more - # logic. - if test "$MCA_opal_dl_STATIC_COMPONENTS" != ""; then : - # We had a winner -- w00t! - - OPAL_HAVE_DL_SUPPORT=1 - # If we added any -L flags to ADD_LDFLAGS, then we (might) - # need to add those directories to LD_LIBRARY_PATH. - # Otherwise, if we try to AC RUN_IFELSE anything here in - # configure, it might die because it can't find the libraries - # we just linked against. - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # add component to all component list + all_components="$all_components gzip" fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_dl_base_found_l opal_dl_base_token opal_dl_base_tmp opal_dl_base_dir; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_dl_base_found_l opal_dl_base_token opal_dl_base_tmp opal_dl_base_dir\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - opal_dl_base_found_l=0 - eval "opal_dl_base_tmp=\$opal_dl_${opal_dl_winner}_ADD_LIBS" - for opal_dl_base_token in $opal_dl_base_tmp; do - case $opal_dl_base_token in - -l*) opal_dl_base_found_l=1 ;; - esac - done - if test $opal_dl_base_found_l -eq 1; then : - eval "opal_dl_base_tmp=\$opal_dl_${opal_dl_winner}_ADD_LDFLAGS" - for opal_dl_base_token in $opal_dl_base_tmp; do - case $opal_dl_base_token in - -L*) - opal_dl_base_dir=`echo $opal_dl_base_token | cut -c3-` - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$opal_dl_base_dir - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Adding to LD_LIBRARY_PATH: $opal_dl_base_dir" >&5 -$as_echo "$as_me: WARNING: Adding to LD_LIBRARY_PATH: $opal_dl_base_dir" >&2;} - ;; - esac - done -fi - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_opal_compress_gzip_DSO=1 + else + BUILD_opal_compress_gzip_DSO=0 fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - -cat >>confdefs.h <<_ACEOF -#define OPAL_HAVE_DL_SUPPORT $OPAL_HAVE_DL_SUPPORT -_ACEOF - - - MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS event" - MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/event" - MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_event_ALL_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_event_DSO_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_event_STATIC_SUBDIRS)" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/event/libmca_event.la" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_event_STATIC_LTLIBS)" - - opal_event_base_include= - - - -# Check whether --with-libevent was given. -if test "${with_libevent+set}" = set; then : - withval=$with_libevent; -fi - - - # Bozo check - if test "$with_libevent" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: It is not possible to configure Open MPI --without-libevent" >&5 -$as_echo "$as_me: WARNING: It is not possible to configure Open MPI --without-libevent" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -fi - if test "$with_libevent" = "yes"; then : - with_libevent= -fi - - -# Check whether --with-libevent-libdir was given. -if test "${with_libevent_libdir+set}" = set; then : - withval=$with_libevent_libdir; -fi - - - # Make sure the user didn't specify --with-libevent=internal and - # --with-libevent-libdir=whatever (because you can only specify - # --with-libevent-libdir when external libevent is being used). - if test "$with_libevent" = "internal" && test -n "$with_libevent_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Both --with-libevent=internal and --with-libevent-libdir=DIR" >&5 -$as_echo "$as_me: WARNING: Both --with-libevent=internal and --with-libevent-libdir=DIR" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: were specified, which does not make sense." >&5 -$as_echo "$as_me: WARNING: were specified, which does not make sense." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$BUILD_opal_compress_gzip_DSO" = "1"; then + MCA_BUILD_opal_compress_gzip_DSO_TRUE= + MCA_BUILD_opal_compress_gzip_DSO_FALSE='#' +else + MCA_BUILD_opal_compress_gzip_DSO_TRUE='#' + MCA_BUILD_opal_compress_gzip_DSO_FALSE= fi - # configure all the components - - opal_show_subsubtitle "Configuring MCA framework event" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=opal/mca/event/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files opal/mca/event/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework event" >&5 -$as_echo_n "checking for no configure components in framework event... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework event" >&5 -$as_echo_n "checking for m4 configure components in framework event... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: external, libevent2022" >&5 -$as_echo "external, libevent2022" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - + ac_config_files="$ac_config_files opal/mca/compress/gzip/Makefile" - # run the configure logic for the no-config components + unset compile_mode # configure components that use built-in configuration scripts - - - best_mca_component_priority=0 components_looking_for_succeed=1 components_last_result=0 - opal_show_subsubsubtitle "MCA component event:external (m4 configuration macro, priority 90)" + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + if test "1" != "0"; then : - component_path="$srcdir/opal/mca/event/external" + for component_path in $srcdir/opal/mca/compress/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component compress:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/opal/mca/compress/$component" want_component=0 # build if: @@ -138994,8 +137356,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_event" ; then - if test "$DIRECT_event" = "external" ; then + if test ! -z "$DIRECT_compress" ; then + if test "$DIRECT_compress" = "$component" ; then want_component=1 else want_component=0 @@ -139004,33 +137366,59 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_event" = "1"; then : - want_component=0 -fi - if test "$DISABLE_event_external" = "1"; then : + if test "$DISABLE_compress" = "1"; then : want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_compress_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component event:external compile mode" >&5 -$as_echo_n "checking for MCA component event:external compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + SHARED_FRAMEWORK="$DSO_compress" + str="SHARED_COMPONENT=\$DSO_compress_$component" + eval $str + STATIC_FRAMEWORK="$STATIC_compress" + str="STATIC_COMPONENT=\$STATIC_compress_$component" + eval $str - # try to configure the component + shared_mode_override=static - ac_config_files="$ac_config_files opal/mca/event/external/Makefile" + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component compress:$component compile mode" >&5 +$as_echo_n "checking for MCA component compress:$component compile mode... " >&6; } + if test "$DIRECT_compress" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + if test "$should_build" = "1" ; then @@ -139043,7 +137431,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_event_external_CPPFLAGS_save opal_event_external_CFLAGS_save opal_event_external_LDFLAGS_save opal_event_external_LIBS_save opal_event_dir opal_event_summary_msg; do + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -139062,7 +137450,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_event_external_CPPFLAGS_save opal_event_external_CFLAGS_save opal_event_external_LDFLAGS_save opal_event_external_LIBS_save opal_event_dir opal_event_summary_msg\"" + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $opal_str unset opal_str @@ -139070,163 +137458,250 @@ opal_scope_index=`expr $opal_scope_index + 1` - opal_event_summary_msg="internal" +# +# Invoke configure in a specific subdirectory. +# +# opal/mca/compress/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="opal/mca/compress/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" - # Check the value of $with_libevent_libdir. This macro safely - # handles "yes", "no", blank, and directory name values. +# +# Sanity checks +# - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-libevent-libdir value" >&5 -$as_echo_n "checking --with-libevent-libdir value... " >&6; } - if test "$with_libevent_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-libevent-libdir)" >&5 -$as_echo "simple no (specified --without-libevent-libdir)" >&6; } -else - if test "$with_libevent_libdir" = "yes" || test "x$with_libevent_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_libevent_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_libevent_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_libevent_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_libevent_libdir/libevent.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_libevent_libdir/libevent.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_libevent_libdir/libevent.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_libevent_libdir)" >&5 -$as_echo "sanity check ok ($with_libevent_libdir)" >&6; } +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} -fi + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } -fi + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + # + # Move into the target directory + # -fi + subdir_parent=`pwd` + cd $subdir_dir + # + # Make a "../" for each directory in $subdir_dir. + # -fi + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac - # Did the user want us to check for libevent in a specific location? - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for external libevent in" >&5 -$as_echo_n "checking for external libevent in... " >&6; } - if test -n "$with_libevent" && \ - test "$with_libevent" != "external" && \ - test "$with_libevent" != "internal" && \ - test "$with_libevent" != "yes" && \ - test "$with_libevent" != "no"; then : - opal_event_dir=$with_libevent - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_event_dir" >&5 -$as_echo "$opal_event_dir" >&6; } + # + # Construct the --cache-file argument + # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-libevent value" >&5 -$as_echo_n "checking --with-libevent value... " >&6; } - if test "$opal_event_dir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-libevent)" >&5 -$as_echo "simple no (specified --without-libevent)" >&6; } -else - if test "$opal_event_dir" = "yes" || test "x$opal_event_dir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$opal_event_dir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $opal_event_dir not found" >&5 -$as_echo "$as_me: WARNING: Directory $opal_event_dir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $opal_event_dir/include/event2/event.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $opal_event_dir/include/event2/event.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $opal_event_dir/include/event2/event.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($opal_event_dir)" >&5 -$as_echo "sanity check ok ($opal_event_dir)" >&6; } + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" -fi + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + # + # Go back to the topdir + # + cd $subdir_parent fi +# +# Clean up +# -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test -z "$with_libevent_libdir" || test "$with_libevent_libdir" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $with_libevent/lib64" >&5 -$as_echo_n "checking for $with_libevent/lib64... " >&6; } - if test -d "$with_libevent/lib64"; then : - opal_event_libdir_found=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } -else - opal_event_libdir_found=no - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } -fi - if test "$opal_event_libdir_found" = "yes"; then : - opal_event_libdir="$with_libevent/lib64" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $with_libevent/lib" >&5 -$as_echo_n "checking for $with_libevent/lib... " >&6; } - if test -d "$with_libevent/lib"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - opal_event_libdir="$with_libevent/lib" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Library directories were not found:" >&5 -$as_echo "$as_me: WARNING: Library directories were not found:" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $with_libevent/lib64" >&5 -$as_echo "$as_me: WARNING: $with_libevent/lib64" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $with_libevent/lib" >&5 -$as_echo "$as_me: WARNING: $with_libevent/lib" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Please use --with-libevent-libdir to identify it." >&5 -$as_echo "$as_me: WARNING: Please use --with-libevent-libdir to identify it." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -fi -fi -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 -$as_echo "(default search paths)" >&6; } -fi - if test ! -z "$with_libevent_libdir" && test "$with_libevent_libdir" != "yes"; then : - opal_event_libdir="$with_libevent_libdir" -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "$with_libevent" != "internal"; then : - opal_event_external_CPPFLAGS_save=$CPPFLAGS - opal_event_external_CFLAGS_save=$CFLAGS - opal_event_external_LDFLAGS_save=$LDFLAGS - opal_event_external_LIBS_save=$LIBS + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/opal/mca/compress/all_components/post_configure.sh" + if test -f $infile; then - opal_check_package_opal_event_external_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_opal_event_external_save_LDFLAGS="$LDFLAGS" - opal_check_package_opal_event_external_save_LIBS="$LIBS" + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi - opal_check_package_opal_event_external_orig_CPPFLAGS="$opal_event_external_CPPFLAGS" - opal_check_package_opal_event_external_orig_LDFLAGS="$opal_event_external_LDFLAGS" - opal_check_package_opal_event_external_orig_LIBS="$opal_event_external_LIBS" + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + compress_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + compress_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/compress/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "compress" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/compress/$component/lib${OPAL_LIB_PREFIX}mca_compress_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/compress/$component/libmca_compress_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_compress_$component_component;" >> $outfile.extern + echo " &mca_compress_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component compress:$component can compile" >&5 +$as_echo_n "checking if MCA component compress:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_compress" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_compress_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** compress component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_compress" = "$component" ; then +as_fn_error $? "*** compress component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$compress_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -139239,7 +137714,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -139258,7 +137733,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -139266,357 +137741,48 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_event2_event_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $opal_event_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in event2/event.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "event2/event.h" "ac_cv_header_event2_event_h" "$ac_includes_default" -if test "x$ac_cv_header_event2_event_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_EVENT2_EVENT_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_event2_event_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - opal_event_external_CPPFLAGS="$opal_event_external_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in event2/event.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "event2/event.h" "ac_cv_header_event2_event_h" "$ac_includes_default" -if test "x$ac_cv_header_event2_event_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_EVENT2_EVENT_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_event_config_new - opal_check_package_lib_happy="no" - if test "$opal_event_libdir" != ""; then : - # libdir was specified - search only there - opal_event_external_LDFLAGS="$opal_event_external_LDFLAGS -L$opal_event_libdir" - LDFLAGS="$LDFLAGS -L$opal_event_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 -$as_echo_n "checking for library containing event_config_new... " >&6; } -if ${ac_cv_search_event_config_new+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char event_config_new (); -int -main () -{ -return event_config_new (); - ; - return 0; -} -_ACEOF -for ac_lib in '' event; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_event_config_new=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_event_config_new+:} false; then : - break -fi -done -if ${ac_cv_search_event_config_new+:} false; then : - -else - ac_cv_search_event_config_new=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 -$as_echo "$ac_cv_search_event_config_new" >&6; } -ac_res=$ac_cv_search_event_config_new -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" - opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" - unset ac_cv_search_event_config_new -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$opal_event_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 -$as_echo_n "checking for library containing event_config_new... " >&6; } -if ${ac_cv_search_event_config_new+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char event_config_new (); -int -main () -{ -return event_config_new (); - ; - return 0; -} -_ACEOF -for ac_lib in '' event; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_event_config_new=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_event_config_new+:} false; then : - break -fi -done -if ${ac_cv_search_event_config_new+:} false; then : - -else - ac_cv_search_event_config_new=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 -$as_echo "$ac_cv_search_event_config_new" >&6; } -ac_res=$ac_cv_search_event_config_new -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" - opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" - unset ac_cv_search_event_config_new -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_event_external_LDFLAGS="$opal_event_external_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 -$as_echo_n "checking for library containing event_config_new... " >&6; } -if ${ac_cv_search_event_config_new+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char event_config_new (); -int -main () -{ -return event_config_new (); - ; - return 0; -} -_ACEOF -for ac_lib in '' event; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_event_config_new=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_event_config_new+:} false; then : - break -fi -done -if ${ac_cv_search_event_config_new+:} false; then : - -else - ac_cv_search_event_config_new=no + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 -$as_echo "$ac_cv_search_event_config_new" >&6; } -ac_res=$ac_cv_search_event_config_new -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" - opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" - unset ac_cv_search_event_config_new -fi + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_event_external_LDFLAGS="$opal_event_external_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 -$as_echo_n "checking for library containing event_config_new... " >&6; } -if ${ac_cv_search_event_config_new+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char event_config_new (); -int -main () -{ -return event_config_new (); - ; - return 0; -} -_ACEOF -for ac_lib in '' event; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_event_config_new=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_event_config_new+:} false; then : - break -fi -done -if ${ac_cv_search_event_config_new+:} false; then : + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -else - ac_cv_search_event_config_new=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 -$as_echo "$ac_cv_search_event_config_new" >&6; } -ac_res=$ac_cv_search_event_config_new -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" - opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" - unset ac_cv_search_event_config_new -fi -fi -fi -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. +str="line=\$compress_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -139629,7 +137795,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -139648,325 +137814,443 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + fi - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libevent requires libnl v1 or v3" >&5 -$as_echo_n "checking if libevent requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void event_config_new (void); -int main(int argc, char *argv[]) { - event_config_new (); - return 0; -} -EOF + else - this_requires_v1=0 - this_requires_v3=0 - result_msg= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component compress:$component can compile" >&5 +$as_echo_n "checking if MCA component compress:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:139724: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -levent $LIBS $opal_event_external_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -levent $LIBS $opal_event_external_LIBS 1>&5 2>&1 -opal_status=$? + # If this component was requested as the default for this + # type, then abort. + if test "$with_compress" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:139731: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } + if test ! -z "$DIRECT_compress" ; then + if test "$DIRECT_compress" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib event" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib event" >&2;} + fi + fi + done fi - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 + MCA_opal_compress_ALL_COMPONENTS="$all_components" + MCA_opal_compress_STATIC_COMPONENTS="$static_components" + MCA_opal_compress_DSO_COMPONENTS="$dso_components" + MCA_opal_compress_STATIC_LTLIBS="$static_ltlibs" - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libevent links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libevent links to both libnl and libnl-3." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libevent (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libevent (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libevent." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libevent." >&2;} - libnl_sane=0 -fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas event requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas event requires libnl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libevent (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libevent (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libevent." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libevent." >&2;} - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs event" + MCA_opal_compress_ALL_SUBDIRS= + for item in $all_components ; do + MCA_opal_compress_ALL_SUBDIRS="$MCA_opal_compress_ALL_SUBDIRS mca/compress/$item" + done -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + MCA_opal_compress_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_opal_compress_STATIC_SUBDIRS="$MCA_opal_compress_STATIC_SUBDIRS mca/compress/$item" + done - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + MCA_opal_compress_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_opal_compress_DSO_SUBDIRS="$MCA_opal_compress_DSO_SUBDIRS mca/compress/$item" + done - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "compress" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi fi -done + rm -f $outfile.struct $outfile.extern -# Take all the items in the "array" and assemble them back into a -# single variable + unset all_components static_components dso_components outfile outfile_real -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS crs" + MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/crs" + MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_crs_ALL_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_crs_DSO_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_crs_STATIC_SUBDIRS)" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/crs/libmca_crs.la" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_crs_STATIC_LTLIBS)" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + opal_show_subsubtitle "Configuring MCA framework crs" - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=opal/mca/crs/base + as_dir=$outdir; as_fn_mkdir_p -fi + # emit Makefile rule + ac_config_files="$ac_config_files opal/mca/crs/Makefile" - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libevent requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libevent requires libnl-3" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libevent (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libevent (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libevent." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libevent." >&2;} + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs event" + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework crs" >&5 +$as_echo_n "checking for no configure components in framework crs... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework crs" >&5 +$as_echo_n "checking for m4 configure components in framework crs... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: self" >&5 +$as_echo "self" >&6; } -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far + # run the configure logic for the no-config components - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + opal_show_subsubsubtitle "MCA component crs:none (no configuration)" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + component_path="$srcdir/opal/mca/crs/none" + want_component=0 - # Increment the counter + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_crs" ; then + if test "$DIRECT_crs" = "none" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - opal_i="`expr $opal_i + 1`" - done + # if we were explicitly disabled, don't build :) + if test "$DISABLE_crs" = "1"; then : + want_component=0 +fi + if test "$DISABLE_crs_none" = "1"; then : + want_component=0 +fi - # If we didn't find the token, add it to the "array" + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + SHARED_FRAMEWORK="$DSO_crs" + SHARED_COMPONENT="$DSO_crs_none" -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + STATIC_FRAMEWORK="$STATIC_crs" + STATIC_COMPONENT="$STATIC_crs_none" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + shared_mode_override=static - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi -# Done; do the assignment + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component crs:none compile mode" >&5 +$as_echo_n "checking for MCA component crs:none compile mode... " >&6; } + if test "$DIRECT_crs" = "none" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" -# Clean up + if test "$should_build" = "1" ; then -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi -fi - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/crs/none/post_configure.sh" - rm -f conftest conftest_c.$ac_ext + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components none" - opal_libnl_sane=$libnl_sane + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components none" + else + if test "crs" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/crs/none/lib${OPAL_LIB_PREFIX}mca_crs_none.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/crs/none/libmca_crs_none.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_crs_none_component;" >> $outfile.extern + echo " &mca_crs_none_component, " >> $outfile.struct + static_components="$static_components none" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crs:none can compile" >&5 +$as_echo_n "checking if MCA component crs:none can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_crs" = "none" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_crs_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** crs component none was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_crs" = "none" ; then +as_fn_error $? "*** crs component none was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$crs_none_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $crs_none_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -139990,10 +138274,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $crs_none_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -140016,332 +138355,89 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_event_config_new" != "no" && - test "$ac_cv_search_event_config_new" != "none required"; then : - opal_event_external_LIBS="$ac_cv_search_event_config_new -levent_pthreads" -else - opal_event_external_LIBS="-levent_pthreads" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" fi + if test "$crs_none_WRAPPER_EXTRA_LIBS" = ""; then : -else - opal_check_package_happy="no" -fi -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # see comment above - unset ac_cv_search_event_config_new - opal_check_package_lib_happy="no" - if test "$opal_event_libdir" != ""; then : - # libdir was specified - search only there - opal_event_external_LDFLAGS="$opal_event_external_LDFLAGS -L$opal_event_libdir" - LDFLAGS="$LDFLAGS -L$opal_event_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 -$as_echo_n "checking for library containing event_config_new... " >&6; } -if ${ac_cv_search_event_config_new+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char event_config_new (); -int -main () -{ -return event_config_new (); - ; - return 0; -} -_ACEOF -for ac_lib in '' event; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_event_config_new=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_event_config_new+:} false; then : - break -fi -done -if ${ac_cv_search_event_config_new+:} false; then : + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -else - ac_cv_search_event_config_new=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 -$as_echo "$ac_cv_search_event_config_new" >&6; } -ac_res=$ac_cv_search_event_config_new -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" - opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" - unset ac_cv_search_event_config_new -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$opal_event_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 -$as_echo_n "checking for library containing event_config_new... " >&6; } -if ${ac_cv_search_event_config_new+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char event_config_new (); -int -main () -{ -return event_config_new (); - ; - return 0; -} -_ACEOF -for ac_lib in '' event; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_event_config_new=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_event_config_new+:} false; then : - break -fi -done -if ${ac_cv_search_event_config_new+:} false; then : -else - ac_cv_search_event_config_new=no + for arg in $crs_none_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 -$as_echo "$ac_cv_search_event_config_new" >&6; } -ac_res=$ac_cv_search_event_config_new -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" - opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" - unset ac_cv_search_event_config_new + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_event_external_LDFLAGS="$opal_event_external_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 -$as_echo_n "checking for library containing event_config_new... " >&6; } -if ${ac_cv_search_event_config_new+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char event_config_new (); -int -main () -{ -return event_config_new (); - ; - return 0; -} -_ACEOF -for ac_lib in '' event; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_event_config_new=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_event_config_new+:} false; then : - break -fi -done -if ${ac_cv_search_event_config_new+:} false; then : -else - ac_cv_search_event_config_new=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 -$as_echo "$ac_cv_search_event_config_new" >&6; } -ac_res=$ac_cv_search_event_config_new -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" - opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" - unset ac_cv_search_event_config_new -fi -fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_event_external_LDFLAGS="$opal_event_external_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 -$as_echo_n "checking for library containing event_config_new... " >&6; } -if ${ac_cv_search_event_config_new+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char event_config_new (); -int -main () -{ -return event_config_new (); - ; - return 0; -} -_ACEOF -for ac_lib in '' event; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_event_config_new=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_event_config_new+:} false; then : - break -fi -done -if ${ac_cv_search_event_config_new+:} false; then : else - ac_cv_search_event_config_new=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 -$as_echo "$ac_cv_search_event_config_new" >&6; } -ac_res=$ac_cv_search_event_config_new -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" - opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" - unset ac_cv_search_event_config_new -fi -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. @@ -140354,7 +138450,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -140373,16 +138469,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $crs_none_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$crs_none_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -140395,7 +138541,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -140414,7 +138560,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -140422,727 +138568,300 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libevent requires libnl v1 or v3" >&5 -$as_echo_n "checking if libevent requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void event_config_new (void); -int main(int argc, char *argv[]) { - event_config_new (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:140449: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -levent $LIBS $opal_event_external_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -levent $LIBS $opal_event_external_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:140456: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" + for arg in $crs_none_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" + done fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib event" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib event" >&2;} - + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libevent links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libevent links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libevent (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libevent (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libevent." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libevent." >&2;} - - libnl_sane=0 fi + done - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas event requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas event requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libevent (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libevent (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libevent." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libevent." >&2;} - - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs event" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Loop over every token we've seen so far + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring crs_none_WRAPPER_EXTRA_CPPFLAGS ($crs_none_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring crs_none_WRAPPER_EXTRA_CPPFLAGS ($crs_none_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - # Check the ending condition + else - opal_done="`expr $opal_i \>= $opal_count`" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crs:none can compile" >&5 +$as_echo_n "checking if MCA component crs:none can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Increment the counter + # If this component was requested as the default for this + # type, then abort. + if test "$with_crs" = "none" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"none\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"none\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_i="`expr $opal_i + 1`" - done + if test ! -z "$DIRECT_crs" ; then + if test "$DIRECT_crs" = "none" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"none\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"none\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # If we didn't find the token, add it to the "array" + # add component to all component list + all_components="$all_components none" + fi - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_opal_crs_none_DSO=1 else - opal_i="`expr $opal_i - 1`" + BUILD_opal_crs_none_DSO=0 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable + if test "$BUILD_opal_crs_none_DSO" = "1"; then + MCA_BUILD_opal_crs_none_DSO_TRUE= + MCA_BUILD_opal_crs_none_DSO_FALSE='#' +else + MCA_BUILD_opal_crs_none_DSO_TRUE='#' + MCA_BUILD_opal_crs_none_DSO_FALSE= +fi -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + ac_config_files="$ac_config_files opal/mca/crs/none/Makefile" - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment + unset compile_mode -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up + # configure components that use built-in configuration scripts -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi -fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libevent requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libevent requires libnl-3" >&2;} + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libevent (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libevent (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libevent." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libevent." >&2;} - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs event" + opal_show_subsubsubtitle "MCA component crs:self (m4 configuration macro)" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far + component_path="$srcdir/opal/mca/crs/self" + want_component=0 - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_crs" ; then + if test "$DIRECT_crs" = "self" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # if we were explicitly disabled, don't build :) + if test "$DISABLE_crs" = "1"; then : + want_component=0 +fi + if test "$DISABLE_crs_self" = "1"; then : + want_component=0 +fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi - # Check the ending condition + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - opal_done="`expr $opal_i \>= $opal_count`" + SHARED_FRAMEWORK="$DSO_crs" + SHARED_COMPONENT="$DSO_crs_self" - # Increment the counter + STATIC_FRAMEWORK="$STATIC_crs" + STATIC_COMPONENT="$STATIC_crs_self" - opal_i="`expr $opal_i + 1`" - done + shared_mode_override=static - # If we didn't find the token, add it to the "array" + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component crs:self compile mode" >&5 +$as_echo_n "checking for MCA component crs:self compile mode... " >&6; } + if test "$DIRECT_crs" = "self" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } else - opal_i="`expr $opal_i - 1`" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } fi -done -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + # try to configure the component - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + ac_config_files="$ac_config_files opal/mca/crs/self/Makefile" - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment + # If we don't want FT, don't compile this component + if test "$opal_want_ft_cr" = "1"; then : + crs_self_good="yes" +else + crs_self_good="no" +fi -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # We need the dlfcn.h so we can access dlsym and friends + if test "$crs_self_good" = "yes"; then : + ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + crs_self_good="yes" +else + crs_self_good="no" +fi -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 fi + # If they did not ask for dlopen support, + # they probably do not want this component either + if test "$crs_self_good" = "yes"; then : + if test "$OPAL_ENABLE_DLOPEN_SUPPORT" = "1"; then : + crs_self_good="yes" +else + crs_self_good="no" +fi fi - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane + if test "$crs_self_good" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$should_build" = "1"; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - ;; - esac + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/crs/self/post_configure.sh" - opal_check_package_libnl_check_ok=$opal_libnl_sane - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_event_config_new" != "no" && - test "$ac_cv_search_event_config_new" != "none required"; then : - opal_event_external_LIBS="$ac_cv_search_event_config_new -levent_pthreads" -else - opal_event_external_LIBS="-levent_pthreads" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi - - -fi - unset opal_check_package_header_happy - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - - if test "$opal_check_package_happy" = "yes"; then : - opal_event_external_support=yes -else - opal_event_external_CPPFLAGS="$opal_check_package_opal_event_external_orig_CPPFLAGS" - opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" - opal_event_external_LIBS="$opal_check_package_opal_event_external_orig_LIBS" - opal_event_external_support=no -fi - - CPPFLAGS="$opal_check_package_opal_event_external_save_CPPFLAGS" - LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" - LIBS="$opal_check_package_opal_event_external_save_LIBS" - - - if test "$opal_event_external_support" = "yes"; then : - # Ensure that this libevent has the symbol - # "evthread_set_lock_callbacks", which will only exist if - # libevent was configured with thread support. - LIBS="$opal_event_external_LDFLAGS $LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for evthread_set_lock_callbacks in -levent" >&5 -$as_echo_n "checking for evthread_set_lock_callbacks in -levent... " >&6; } -if ${ac_cv_lib_event_evthread_set_lock_callbacks+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-levent $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char evthread_set_lock_callbacks (); -int -main () -{ -return evthread_set_lock_callbacks (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_event_evthread_set_lock_callbacks=yes -else - ac_cv_lib_event_evthread_set_lock_callbacks=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_event_evthread_set_lock_callbacks" >&5 -$as_echo "$ac_cv_lib_event_evthread_set_lock_callbacks" >&6; } -if test "x$ac_cv_lib_event_evthread_set_lock_callbacks" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBEVENT 1 -_ACEOF - - LIBS="-levent $LIBS" - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: External libevent does not have thread support" >&5 -$as_echo "$as_me: WARNING: External libevent does not have thread support" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI requires libevent to be compiled with" >&5 -$as_echo "$as_me: WARNING: Open MPI requires libevent to be compiled with" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: thread support enabled" >&5 -$as_echo "$as_me: WARNING: thread support enabled" >&2;} - opal_event_external_support=no -fi - -fi - - if test "$opal_event_external_support" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for evthread_use_pthreads in -levent_pthreads" >&5 -$as_echo_n "checking for evthread_use_pthreads in -levent_pthreads... " >&6; } -if ${ac_cv_lib_event_pthreads_evthread_use_pthreads+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-levent_pthreads $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char evthread_use_pthreads (); -int -main () -{ -return evthread_use_pthreads (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_event_pthreads_evthread_use_pthreads=yes -else - ac_cv_lib_event_pthreads_evthread_use_pthreads=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_event_pthreads_evthread_use_pthreads" >&5 -$as_echo "$ac_cv_lib_event_pthreads_evthread_use_pthreads" >&6; } -if test "x$ac_cv_lib_event_pthreads_evthread_use_pthreads" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBEVENT_PTHREADS 1 -_ACEOF - - LIBS="-levent_pthreads $LIBS" - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: External libevent does not have thread support" >&5 -$as_echo "$as_me: WARNING: External libevent does not have thread support" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI requires libevent to be compiled with" >&5 -$as_echo "$as_me: WARNING: Open MPI requires libevent to be compiled with" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: thread support enabled" >&5 -$as_echo "$as_me: WARNING: thread support enabled" >&2;} - opal_event_external_support=no -fi - -fi - - if test "$opal_event_external_support" = "yes"; then : - if test -z "$with_libevent" || test "$with_libevent" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if external libevent version is 2.0.22 or greater" >&5 -$as_echo_n "checking if external libevent version is 2.0.22 or greater... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - -#if defined(_EVENT_NUMERIC_VERSION) && _EVENT_NUMERIC_VERSION < 0x02001600 -#error "libevent API version is less than 0x02001600" -#elif defined(EVENT__NUMERIC_VERSION) && EVENT__NUMERIC_VERSION < 0x02001600 -#error "libevent API version is less than 0x02001600" -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_event_summary_msg="internal (external libevent version is less that internal version 2.0.22)" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: external libevent version is less than internal version (2.0.22)" >&5 -$as_echo "$as_me: WARNING: external libevent version is less than internal version (2.0.22)" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using internal libevent" >&5 -$as_echo "$as_me: WARNING: using internal libevent" >&2;} - opal_event_external_support=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -fi - - CPPFLAGS=$opal_event_external_CPPFLAGS_save - CFLAGS=$opal_event_external_CFLAGS_save - LDFLAGS=$opal_event_external_LDFLAGS_save - LIBS=$opal_event_external_LIBS_save - - - - - - # These flags need to get passed to the wrapper compilers - # (this is unnecessary for the internal/embedded event) - event_external_WRAPPER_EXTRA_CPPFLAGS=$opal_event_external_CPPFLAGS - - # Finally, add some flags to the wrapper compiler if we're - # building with developer headers so that our headers can - # be found. - event_external_WRAPPER_EXTRA_LDFLAGS=$opal_event_external_LDFLAGS - event_external_WRAPPER_EXTRA_LIBS=$opal_event_external_LIBS -fi - -################################################################## - - # Done! - if test "$opal_event_external_support" = "yes"; then : - # If we configured successfully, set - # OPAL_HAVE_WORKING_EVENTOPS to 1 (it's a calculated value - # in the embedded Open MPI libevent, so we can only assume - # what it is in the installed libevent :-\ ). - file=$opal_event_dir/include/libevent/config.h - OPAL_HAVE_WORKING_EVENTOPS=1 - opal_event_summary_msg="external" - should_build=$should_build -else - OPAL_HAVE_WORKING_EVENTOPS=0 - if test "$with_libevent" != internal && test -n "$with_libevent"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: external libevent requested but cannot be built" >&5 -$as_echo "$as_me: WARNING: external libevent requested but cannot be built" >&2;} - as_fn_error $? "Cannot continue." "$LINENO" 5 -fi - should_build=0 -fi - - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - ompi_summary_section=$(echo Miscellaneous | tr ' ' '_') - ompi_summary_line="Libevent support: $opal_event_summary_msg" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/event/external/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components external" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components self" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components external" + dso_components="$dso_components self" else - if test "event" = "common"; then + if test "crs" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/event/external/lib${OPAL_LIB_PREFIX}mca_event_external.la $static_ltlibs" + static_ltlibs="mca/crs/self/lib${OPAL_LIB_PREFIX}mca_crs_self.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/event/external/libmca_event_external.la $static_ltlibs" + static_ltlibs="mca/crs/self/libmca_crs_self.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_event_external_component;" >> $outfile.extern - echo " &mca_event_external_component, " >> $outfile.struct - static_components="$static_components external" + echo "extern const mca_base_component_t mca_crs_self_component;" >> $outfile.extern + echo " &mca_crs_self_component, " >> $outfile.struct + static_components="$static_components self" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component event:external can compile" >&5 -$as_echo_n "checking if MCA component event:external can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crs:self can compile" >&5 +$as_echo_n "checking if MCA component crs:self can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_event" = "external" ; then + if test "$DIRECT_crs" = "self" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_event_DIRECT_CALL_HEADER=$line" + str="MCA_opal_crs_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** event component external was supposed to be direct-called, but +as_fn_error $? "*** crs component self was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -141150,8 +138869,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_event" = "external" ; then -as_fn_error $? "*** event component external was supposed to be direct-called, but + if test "$DIRECT_crs" = "self" ; then +as_fn_error $? "*** crs component self was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -141166,7 +138885,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$event_external_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$crs_self_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -141206,7 +138925,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $event_external_LDFLAGS; do + for arg in $crs_self_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -141287,7 +139006,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $event_external_WRAPPER_EXTRA_LDFLAGS; do + for arg in $crs_self_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -141329,7 +139048,7 @@ fi - if test "$event_external_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$crs_self_WRAPPER_EXTRA_LIBS" = ""; then : @@ -141369,7 +139088,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $event_external_LIBS; do + for arg in $crs_self_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -141450,7 +139169,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $event_external_WRAPPER_EXTRA_LIBS; do + for arg in $crs_self_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -141498,8 +139217,8 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$event_external_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=1 + if test "$crs_self_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -141541,7 +139260,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $event_external_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $crs_self_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -141584,32 +139303,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring event_external_WRAPPER_EXTRA_CPPFLAGS ($event_external_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring event_external_WRAPPER_EXTRA_CPPFLAGS ($event_external_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring crs_self_WRAPPER_EXTRA_CPPFLAGS ($crs_self_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring crs_self_WRAPPER_EXTRA_CPPFLAGS ($crs_self_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component event:external can compile" >&5 -$as_echo_n "checking if MCA component event:external can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crs:self can compile" >&5 +$as_echo_n "checking if MCA component crs:self can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_event" = "external" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"external\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"external\" failed to configure properly" >&2;} + if test "$with_crs" = "self" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"self\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"self\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_event" ; then - if test "$DIRECT_event" = "external" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"external\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"external\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_crs" ; then + if test "$DIRECT_crs" = "self" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"self\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"self\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -141617,44 +139336,23 @@ fi # add component to all component list - all_components="$all_components external" + all_components="$all_components self" fi - # If we won, then do all the rest of the setup - if test "$should_build" = "1"; then : - -cat >>confdefs.h <<_ACEOF -#define EVENT_EXTERNAL_EVENT_VERSION external -_ACEOF - - - # Set this variable so that the framework m4 knows what - # file to include in opal/mca/event/event.h - opal_event_external_basedir=opal/mca/event/external - opal_event_base_include="external/external.h" - - # Add some stuff to CPPFLAGS so that the rest of the source - # tree can be built - CPPFLAGS="$CPPFLAGS $opal_event_external_CPPFLAGS" - LDFLAGS="$LDFLAGS $opal_event_external_LDFLAGS" - LIBS="$LIBS $opal_event_external_LIBS" - -fi - # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_event_external_DSO=1 + BUILD_opal_crs_self_DSO=1 else - BUILD_opal_event_external_DSO=0 + BUILD_opal_crs_self_DSO=0 fi - if test "$BUILD_opal_event_external_DSO" = "1"; then - MCA_BUILD_opal_event_external_DSO_TRUE= - MCA_BUILD_opal_event_external_DSO_FALSE='#' + if test "$BUILD_opal_crs_self_DSO" = "1"; then + MCA_BUILD_opal_crs_self_DSO_TRUE= + MCA_BUILD_opal_crs_self_DSO_FALSE='#' else - MCA_BUILD_opal_event_external_DSO_TRUE='#' - MCA_BUILD_opal_event_external_DSO_FALSE= + MCA_BUILD_opal_crs_self_DSO_TRUE='#' + MCA_BUILD_opal_crs_self_DSO_FALSE= fi @@ -141666,19 +139364,28 @@ unset compile_mode - if test $components_last_result -eq 1; then : - components_looking_for_succeed=0 -fi - opal_show_subsubsubtitle "MCA component event:libevent2022 (m4 configuration macro, priority 80)" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - component_path="$srcdir/opal/mca/event/libevent2022" + if test "1" != "0"; then : + + for component_path in $srcdir/opal/mca/crs/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component crs:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/opal/mca/crs/$component" want_component=0 # build if: @@ -141710,8 +139417,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_event" ; then - if test "$DIRECT_event" = "libevent2022" ; then + if test ! -z "$DIRECT_crs" ; then + if test "$DIRECT_crs" = "$component" ; then want_component=1 else want_component=0 @@ -141720,52 +139427,59 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_event" = "1"; then : - want_component=0 -fi - if test "$DISABLE_event_libevent2022" = "1"; then : + if test "$DISABLE_crs" = "1"; then : want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_crs_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component event:libevent2022 compile mode" >&5 -$as_echo_n "checking for MCA component event:libevent2022 compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - - # try to configure the component + SHARED_FRAMEWORK="$DSO_crs" + str="SHARED_COMPONENT=\$DSO_crs_$component" + eval $str - ac_config_files="$ac_config_files opal/mca/event/libevent2022/Makefile" + STATIC_FRAMEWORK="$STATIC_crs" + str="STATIC_COMPONENT=\$STATIC_crs_$component" + eval $str - opal_event_libevent2022_basedir="opal/mca/event/libevent2022" + shared_mode_override=static - # We know that the external event component will be configured - # before this one because of its priority. This component is only - # needed if the external component was not successful in selecting - # itself. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if event external component succeeded" >&5 -$as_echo_n "checking if event external component succeeded... " >&6; } - if test "$opal_event_external_support" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: event:external succeeded, so this component will be configured, but then will be skipped" >&5 -$as_echo "$as_me: event:external succeeded, so this component will be configured, but then will be skipped" >&6;} + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component crs:$component compile mode" >&5 +$as_echo_n "checking for MCA component crs:$component compile mode... " >&6; } + if test "$DIRECT_crs" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - # We define "random" to be "opal_random" so that Libevent will not - # use random(3) internally (and potentially unexpectedly perturb - # values returned by rand(3) to the application). + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + if test "$should_build" = "1" ; then @@ -141808,15 +139522,15 @@ # # Invoke configure in a specific subdirectory. # -# $opal_event_libevent2022_basedir/libevent is the directory to invoke in -# $opal_subdir_args 'CPPFLAGS=$CPPFLAGS' is the list of arguments to pass -# is actions to execute upon success -# is actions to execute upon failure +# opal/mca/crs/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure # -subdir_dir="$opal_event_libevent2022_basedir/libevent" -subdir_args=" $opal_subdir_args 'CPPFLAGS=$CPPFLAGS'" -subdir_success="" -subdir_failure="" +subdir_dir="opal/mca/crs/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" # # Sanity checks @@ -141950,16 +139664,105 @@ unset $opal_var done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: remember: event:external will be used; this component was configured, but will be skipped" >&5 -$as_echo "$as_me: remember: event:external will be used; this component was configured, but will be skipped" >&6;} - should_build=0 + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/opal/mca/crs/all_components/post_configure.sh" + if test -f $infile; then -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: event:external failed, so this component will be used" >&5 -$as_echo "$as_me: event:external failed, so this component will be used" >&6;} + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + crs_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + crs_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/crs/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "crs" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/crs/$component/lib${OPAL_LIB_PREFIX}mca_crs_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/crs/$component/libmca_crs_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_crs_$component_component;" >> $outfile.extern + echo " &mca_crs_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crs:$component can compile" >&5 +$as_echo_n "checking if MCA component crs:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_crs" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_crs_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** crs component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_crs" = "$component" ; then +as_fn_error $? "*** crs component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$crs_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -141972,7 +139775,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in CFLAGS_save CPPFLAGS_save libevent_file event_args libevent_happy; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -141991,7 +139794,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"CFLAGS_save CPPFLAGS_save libevent_file event_args libevent_happy\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -141999,112 +139802,48 @@ opal_scope_index=`expr $opal_scope_index + 1` - CFLAGS_save="$CFLAGS" - CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS" - CPPFLAGS_save="$CPPFLAGS" - CPPFLAGS="-I$OPAL_TOP_SRCDIR -I$OPAL_TOP_BUILDDIR -I$OPAL_TOP_SRCDIR/opal/include $CPPFLAGS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking libevent configuration args" >&5 -$as_echo_n "checking libevent configuration args... " >&6; } - event_args="--disable-dns --disable-http --disable-rpc --disable-openssl --enable-thread-support" - - # Check whether --enable-event-rtsig was given. -if test "${enable_event_rtsig+set}" = set; then : - enableval=$enable_event_rtsig; -fi - - if test "$enable_event_rtsig" = "yes"; then - event_args="$event_args --enable-rtsig" - fi - - # Check whether --enable-event-select was given. -if test "${enable_event_select+set}" = set; then : - enableval=$enable_event_select; -fi - - if test "$enable_event_select" = "no"; then - event_args="$event_args --disable-select" - fi - - # Check whether --enable-event-poll was given. -if test "${enable_event_poll+set}" = set; then : - enableval=$enable_event_poll; -fi - - if test "$enable_event_poll" = "no"; then - event_args="$event_args --disable-poll" - fi - - # Check whether --enable-event-devpoll was given. -if test "${enable_event_devpoll+set}" = set; then : - enableval=$enable_event_devpoll; -fi - - if test "$enable_event_devpoll" = "no"; then - event_args="$event_args --disable-devpoll" - fi - - # Check whether --enable-event-kqueue was given. -if test "${enable_event_kqueue+set}" = set; then : - enableval=$enable_event_kqueue; + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - - if test "$enable_event_kqueue" = "no"; then - event_args="$event_args --disable-kqueue" - fi - - # Check whether --enable-event-epoll was given. -if test "${enable_event_epoll+set}" = set; then : - enableval=$enable_event_epoll; + done fi - - if test "$enable_event_epoll" = "no"; then - event_args="$event_args --disable-epoll" - fi - - # Check whether --enable-event-evport was given. -if test "${enable_event_evport+set}" = set; then : - enableval=$enable_event_evport; + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - - if test "$enable_event_evport" = "yes"; then - event_args="$event_args --enable-evport" - else - event_args="$event_args --disable-evport" - fi - - # Check whether --enable-event-signal was given. -if test "${enable_event_signal+set}" = set; then : - enableval=$enable_event_signal; fi + done - if test "$enable_event_signal" = "no"; then - event_args="$event_args --disable-signal" - fi - - # Check whether --enable-event-debug was given. -if test "${enable_event_debug+set}" = set; then : - enableval=$enable_event_debug; -fi - if test "$enable_event_debug" = "yes"; then - event_args="$event_args --enable-debug-mode" - CFLAGS="-DUSE_DEBUG $CFLAGS" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $event_args" >&5 -$as_echo "$event_args" >&6; } - - # Invoke the embedded configure script. - # We define "random" to be "opal_random" so that Libevent will not - # use random(3) internally (and potentially unexpectedly perturb - # values returned by rand(3) to the application). - CPPFLAGS="$CPPFLAGS -Drandom=opal_random" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # We define "random" to be "opal_random" so that Libevent will not - # use random(3) internally (and potentially unexpectedly perturb - # values returned by rand(3) to the application). + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done +str="line=\$crs_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -142117,7 +139856,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -142136,7 +139875,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -142144,129 +139883,24 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# $opal_event_libevent2022_basedir/libevent is the directory to invoke in -# $event_args $opal_subdir_args 'CPPFLAGS=$CPPFLAGS' is the list of arguments to pass -# libevent_happy="yes" is actions to execute upon success -# libevent_happy="no" is actions to execute upon failure -# -subdir_dir="$opal_event_libevent2022_basedir/libevent" -subdir_args="$event_args $opal_subdir_args 'CPPFLAGS=$CPPFLAGS'" -subdir_success="libevent_happy="yes"" -subdir_failure="libevent_happy="no"" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - - # - # Construct the --cache-file argument - # - - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - - # - # Invoke the configure script in the subdirectory - # - - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi - - # - # Go back to the topdir - # - - cd $subdir_parent + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - -# -# Clean up -# + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done # Unwind the index @@ -142290,656 +139924,50 @@ done - if test "$libevent_happy" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Event library failed to configure" >&5 -$as_echo "$as_me: WARNING: Event library failed to configure" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Finally, add some flags to the wrapper compiler if we're - # building with developer headers so that our headers can - # be found. - event_libevent2022_WRAPPER_EXTRA_CPPFLAGS='-I${pkgincludedir}/opal/mca/event/libevent2022/libevent -I${pkgincludedir}/opal/mca/event/libevent2022/libevent/include' - - CFLAGS="$CFLAGS_save" - CPPFLAGS="$CPPFLAGS_save" + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - # If we configured successfully, set OPAL_HAVE_WORKING_EVENTOPS to - # the value in the generated libevent/config.h (NOT - # libevent/include/event2/event-config.h!). Otherwise, set it to - # 0. - libevent_file=$opal_event_libevent2022_basedir/libevent/config.h - if test "$libevent_happy" = "yes" && test -r $libevent_file; then : - OPAL_HAVE_WORKING_EVENTOPS=`grep HAVE_WORKING_EVENTOPS $libevent_file | awk '{print $3 }'` - should_build=$should_build -else - should_build=0 - OPAL_HAVE_WORKING_EVENTOPS=0 -fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crs:$component can compile" >&5 +$as_echo_n "checking if MCA component crs:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_crs" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test ! -z "$DIRECT_crs" ; then + if test "$DIRECT_crs" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/event/libevent2022/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components libevent2022" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components libevent2022" - else - if test "event" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/event/libevent2022/lib${OPAL_LIB_PREFIX}mca_event_libevent2022.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/event/libevent2022/libmca_event_libevent2022.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_event_libevent2022_component;" >> $outfile.extern - echo " &mca_event_libevent2022_component, " >> $outfile.struct - static_components="$static_components libevent2022" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component event:libevent2022 can compile" >&5 -$as_echo_n "checking if MCA component event:libevent2022 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_event" = "libevent2022" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_event_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** event component libevent2022 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 fi fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_event" = "libevent2022" ; then -as_fn_error $? "*** event component libevent2022 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$event_libevent2022_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $event_libevent2022_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $event_libevent2022_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - if test "$event_libevent2022_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $event_libevent2022_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $event_libevent2022_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$event_libevent2022_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=1 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $event_libevent2022_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var done - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring event_libevent2022_WRAPPER_EXTRA_CPPFLAGS ($event_libevent2022_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring event_libevent2022_WRAPPER_EXTRA_CPPFLAGS ($event_libevent2022_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component event:libevent2022 can compile" >&5 -$as_echo_n "checking if MCA component event:libevent2022 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_event" = "libevent2022" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"libevent2022\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"libevent2022\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_event" ; then - if test "$DIRECT_event" = "libevent2022" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"libevent2022\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"libevent2022\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components libevent2022" -fi - - - if test "$enable_event_thread_support" = "yes"; then - OPAL_EVENT_HAVE_THREAD_SUPPORT_TRUE= - OPAL_EVENT_HAVE_THREAD_SUPPORT_FALSE='#' -else - OPAL_EVENT_HAVE_THREAD_SUPPORT_TRUE='#' - OPAL_EVENT_HAVE_THREAD_SUPPORT_FALSE= -fi - - if test "$should_build" = "1"; then : - # Build libevent/include/event2/event-config.h. If we - # don't do it here, then libevent's Makefile.am will build - # it during "make all", which is too late for us (because - # other things are built before the event framework that - # end up including event-config.h). The steps below were - # copied from libevent's Makefile.am. - - ac_config_commands="$ac_config_commands opal/mca/event/libevent2022/libevent/include/event2/event-config.h" - - - # Must set this variable so that the framework m4 knows - # what file to include in opal/mca/event/event.h - opal_event_base_include="libevent2022/libevent2022.h" - - # Add some stuff to CPPFLAGS so that the rest of the source - # tree can be built - libevent_file=$opal_event_libevent2022_basedir/libevent - CPPFLAGS="-I$OPAL_TOP_SRCDIR/$libevent_file -I$OPAL_TOP_SRCDIR/$libevent_file/include $CPPFLAGS" - if test "$OPAL_TOP_BUILDDIR" != "$OPAL_TOP_SRCDIR"; then : - CPPFLAGS="-I$OPAL_TOP_BUILDDIR/$libevent_file/include $CPPFLAGS" -fi - unset libevent_file - -fi - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_event_libevent2022_DSO=1 -else - BUILD_opal_event_libevent2022_DSO=0 -fi - if test "$BUILD_opal_event_libevent2022_DSO" = "1"; then - MCA_BUILD_opal_event_libevent2022_DSO_TRUE= - MCA_BUILD_opal_event_libevent2022_DSO_FALSE='#' -else - MCA_BUILD_opal_event_libevent2022_DSO_TRUE='#' - MCA_BUILD_opal_event_libevent2022_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - - unset compile_mode - - if test $components_last_result -eq 1; then : - components_looking_for_succeed=0 fi - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - MCA_opal_event_ALL_COMPONENTS="$all_components" - MCA_opal_event_STATIC_COMPONENTS="$static_components" - MCA_opal_event_DSO_COMPONENTS="$dso_components" - MCA_opal_event_STATIC_LTLIBS="$static_ltlibs" + MCA_opal_crs_ALL_COMPONENTS="$all_components" + MCA_opal_crs_STATIC_COMPONENTS="$static_components" + MCA_opal_crs_DSO_COMPONENTS="$dso_components" + MCA_opal_crs_STATIC_LTLIBS="$static_ltlibs" @@ -142947,23 +139975,23 @@ - MCA_opal_event_ALL_SUBDIRS= + MCA_opal_crs_ALL_SUBDIRS= for item in $all_components ; do - MCA_opal_event_ALL_SUBDIRS="$MCA_opal_event_ALL_SUBDIRS mca/event/$item" + MCA_opal_crs_ALL_SUBDIRS="$MCA_opal_crs_ALL_SUBDIRS mca/crs/$item" done - MCA_opal_event_STATIC_SUBDIRS= + MCA_opal_crs_STATIC_SUBDIRS= for item in $static_components ; do - MCA_opal_event_STATIC_SUBDIRS="$MCA_opal_event_STATIC_SUBDIRS mca/event/$item" + MCA_opal_crs_STATIC_SUBDIRS="$MCA_opal_crs_STATIC_SUBDIRS mca/crs/$item" done - MCA_opal_event_DSO_SUBDIRS= + MCA_opal_crs_DSO_SUBDIRS= for item in $dso_components ; do - MCA_opal_event_DSO_SUBDIRS="$MCA_opal_event_DSO_SUBDIRS mca/event/$item" + MCA_opal_crs_DSO_SUBDIRS="$MCA_opal_crs_DSO_SUBDIRS mca/crs/$item" done @@ -142971,7 +139999,7 @@ # Create the final .h file that will be included in the type's # top-level glue. This lists all the static components. We don't # need to do this for "common". - if test "event" != "common"; then + if test "crs" != "common"; then cat > $outfile <&5 -$as_echo "$as_me: WARNING: Did not find a suitable static opal event component" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -fi + OPAL_HAVE_DL_SUPPORT=0 - # We need to find out what the underlying component set - # HAVE_WORKING_EVENTOPS was set to. This is for systems that - # don't have working poll(), etc. (e.g., Cray) -- we still need an - # event component (for timers, etc.), but we don't have working - # event ops. Ensure that it was set by the component. - echo " " - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if have working event ops for the event framework" >&5 -$as_echo_n "checking if have working event ops for the event framework... " >&6; } - if test "$OPAL_HAVE_WORKING_EVENTOPS" = ""; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5 -$as_echo "unknown" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Event component did not set OPAL_HAVE_WORKING_EVENTOPS" >&5 -$as_echo "$as_me: WARNING: Event component did not set OPAL_HAVE_WORKING_EVENTOPS" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "$OPAL_HAVE_WORKING_EVENTOPS" = "1"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # If --disable-dlopen was used, then have all the components fail + # (we still need to configure them all so that things like "make + # dist" work", but we just want the MCA system to (artificially) + # conclude that it can't build any of the components. + if test "$enable_dlopen" = "no"; then : + want_dl=0 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -fi - -cat >>confdefs.h <<_ACEOF -#define OPAL_HAVE_WORKING_EVENTOPS $OPAL_HAVE_WORKING_EVENTOPS -_ACEOF - - - # The winning component will have told us where their header file - # is located - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winning event component header file" >&5 -$as_echo_n "checking for winning event component header file... " >&6; } - if test "$opal_event_base_include" = ""; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: missing" >&5 -$as_echo "missing" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Missing implementation header" >&5 -$as_echo "$as_me: WARNING: Missing implementation header" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + want_dl=1 fi -cat >>confdefs.h <<_ACEOF -#define MCA_event_IMPLEMENTATION_HEADER "opal/mca/event/$opal_event_base_include" -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_event_base_include" >&5 -$as_echo "$opal_event_base_include" >&6; } - - MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS hwloc" - MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/hwloc" - MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_hwloc_ALL_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_hwloc_DSO_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_hwloc_STATIC_SUBDIRS)" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/hwloc/libmca_hwloc.la" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_hwloc_STATIC_LTLIBS)" - - # Use a crude shell variable to know whether this component is - # being required "early". See below. - opal_hwloc_its_time_to_configure=1 - - - MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS if" - MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/if" - MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_if_ALL_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_if_DSO_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_if_STATIC_SUBDIRS)" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/if/libmca_if.la" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_if_STATIC_LTLIBS)" - opal_show_subsubtitle "Configuring MCA framework if" + opal_show_subsubtitle "Configuring MCA framework dl" @@ -143102,11 +140072,11 @@ # exists. Need to do this for VPATH builds, because the directory # may not exist yet. For the "common" type, it's not really a # component, so it doesn't have a base. - outdir=opal/mca/if/base + outdir=opal/mca/dl/base as_dir=$outdir; as_fn_mkdir_p # emit Makefile rule - ac_config_files="$ac_config_files opal/mca/if/Makefile" + ac_config_files="$ac_config_files opal/mca/dl/Makefile" # remove any previously generated #include files @@ -143116,14 +140086,14 @@ touch $outfile.struct $outfile.extern # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework if" >&5 -$as_echo_n "checking for no configure components in framework if... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework dl" >&5 +$as_echo_n "checking for no configure components in framework dl... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework if" >&5 -$as_echo_n "checking for m4 configure components in framework if... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: bsdx_ipv4, bsdx_ipv6, linux_ipv6, posix_ipv4, solaris_ipv6" >&5 -$as_echo "bsdx_ipv4, bsdx_ipv6, linux_ipv6, posix_ipv4, solaris_ipv6" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework dl" >&5 +$as_echo_n "checking for m4 configure components in framework dl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: dlopen, libltdl" >&5 +$as_echo "dlopen, libltdl" >&6; } # If there are components in the no configure list, but we're # doing one of the "special" selection logics, abort with a @@ -143138,18 +140108,21 @@ + + + best_mca_component_priority=0 - components_looking_for_succeed=1 + components_looking_for_succeed=$want_dl components_last_result=0 - opal_show_subsubsubtitle "MCA component if:bsdx_ipv4 (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component dl:dlopen (m4 configuration macro, priority 80)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/if/bsdx_ipv4" + component_path="$srcdir/opal/mca/dl/dlopen" want_component=0 # build if: @@ -143181,8 +140154,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_if" ; then - if test "$DIRECT_if" = "bsdx_ipv4" ; then + if test ! -z "$DIRECT_dl" ; then + if test "$DIRECT_dl" = "dlopen" ; then want_component=1 else want_component=0 @@ -143191,10 +140164,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_if" = "1"; then : + if test "$DISABLE_dl" = "1"; then : want_component=0 fi - if test "$DISABLE_if_bsdx_ipv4" = "1"; then : + if test "$DISABLE_dl_dlopen" = "1"; then : want_component=0 fi @@ -143207,8 +140180,8 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component if:bsdx_ipv4 compile mode" >&5 -$as_echo_n "checking for MCA component if:bsdx_ipv4 compile mode... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component dl:dlopen compile mode" >&5 +$as_echo_n "checking for MCA component dl:dlopen compile mode... " >&6; } compile_mode="static" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 $as_echo "$compile_mode" >&6; } @@ -143216,111 +140189,30 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/if/bsdx_ipv4/Makefile" - - + ac_config_files="$ac_config_files opal/mca/dl/dlopen/Makefile" - # If we found struct sockaddr and we're on any of the BSDs, we're - # happy. I.e., this: - #if defined(__NetBSD__) || defined(__FreeBSD__) || \ - # defined(__OpenBSD__) || defined(__DragonFly__) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct sockaddr" >&5 -$as_echo_n "checking struct sockaddr... " >&6; } - if test "$opal_found_sockaddr" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (cached)" >&5 -$as_echo "yes (cached)" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking NetBSD, FreeBSD, OpenBSD, or DragonFly" >&5 -$as_echo_n "checking NetBSD, FreeBSD, OpenBSD, or DragonFly... " >&6; } - if test "$opal_found_netbsd" = "yes" || \ - test "$opal_found_freebsd" = "yes" || \ - test "$opal_found_openbsd" = "yes" || \ - test "$opal_found_dragonfly" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - should_build=$should_build -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - should_build=0 -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (cached)" >&5 -$as_echo "no (cached)" >&6; } - should_build=0 + # Check whether --enable-dl-dlopen was given. +if test "${enable_dl_dlopen+set}" = set; then : + enableval=$enable_dl_dlopen; fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/if/bsdx_ipv4/post_configure.sh" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components bsdx_ipv4" + opal_dl_dlopen_happy=no + if test "$enable_dl_dlopen" != "no"; then : - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components bsdx_ipv4" - else - if test "if" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/if/bsdx_ipv4/lib${OPAL_LIB_PREFIX}mca_if_bsdx_ipv4.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/if/bsdx_ipv4/libmca_if_bsdx_ipv4.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_if_bsdx_ipv4_component;" >> $outfile.extern - echo " &mca_if_bsdx_ipv4_component, " >> $outfile.struct - static_components="$static_components bsdx_ipv4" - fi + opal_check_package_opal_dl_dlopen_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_opal_dl_dlopen_save_LDFLAGS="$LDFLAGS" + opal_check_package_opal_dl_dlopen_save_LIBS="$LIBS" - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:bsdx_ipv4 can compile" >&5 -$as_echo_n "checking if MCA component if:bsdx_ipv4 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + opal_check_package_opal_dl_dlopen_orig_CPPFLAGS="$opal_dl_dlopen_CPPFLAGS" + opal_check_package_opal_dl_dlopen_orig_LDFLAGS="$opal_dl_dlopen_LDFLAGS" + opal_check_package_opal_dl_dlopen_orig_LIBS="$opal_dl_dlopen_LIBS" - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_if" = "bsdx_ipv4" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_if_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** if component bsdx_ipv4 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_if" = "bsdx_ipv4" ; then -as_fn_error $? "*** if component bsdx_ipv4 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$if_bsdx_ipv4_WRAPPER_EXTRA_LDFLAGS" = ""; then : + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -143333,7 +140225,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -143352,7 +140244,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -143360,211 +140252,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $if_bsdx_ipv4_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_dlfcn_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in dlfcn.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_dlfcn_h fi fi - done + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + opal_dl_dlopen_CPPFLAGS="$opal_dl_dlopen_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in dlfcn.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +done - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$opal_check_package_header_happy" = "yes"; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + # see comment above + unset ac_cv_search_dlopen + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + opal_dl_dlopen_LDFLAGS="$opal_dl_dlopen_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_dlopen+:} false; then : +else + ac_cv_search_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" + opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" + unset ac_cv_search_dlopen +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - for arg in $if_bsdx_ipv4_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg +done +if ${ac_cv_search_dlopen+:} false; then : + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + ac_cv_search_dlopen=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - if test "$if_bsdx_ipv4_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" + opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" + unset ac_cv_search_dlopen +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_dl_dlopen_LDFLAGS="$opal_dl_dlopen_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - for arg in $if_bsdx_ipv4_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +done +if ${ac_cv_search_dlopen+:} false; then : + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_cv_search_dlopen=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - done + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" + opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" + unset ac_cv_search_dlopen +fi +fi +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_dl_dlopen_LDFLAGS="$opal_dl_dlopen_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_dlopen+:} false; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +else + ac_cv_search_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" + opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" + unset ac_cv_search_dlopen +fi +fi +fi +fi -else + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -143577,7 +140615,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -143596,66 +140634,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $if_bsdx_ipv4_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$if_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -143668,7 +140656,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -143687,7 +140675,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -143695,351 +140683,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $if_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libdl requires libnl v1 or v3" >&5 +$as_echo_n "checking if libdl requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void dlopen (void); +int main(int argc, char *argv[]) { + dlopen (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:140710: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ldl $LIBS $opal_dl_dlopen_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ldl $LIBS $opal_dl_dlopen_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:140717: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring if_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS ($if_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring if_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS ($if_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib dl" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib dl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:bsdx_ipv4 can compile" >&5 -$as_echo_n "checking if MCA component if:bsdx_ipv4 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi - # If this component was requested as the default for this - # type, then abort. - if test "$with_if" = "bsdx_ipv4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bsdx_ipv4\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"bsdx_ipv4\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - if test ! -z "$DIRECT_if" ; then - if test "$DIRECT_if" = "bsdx_ipv4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bsdx_ipv4\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"bsdx_ipv4\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # add component to all component list - all_components="$all_components bsdx_ipv4" + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libdl links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libdl links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} + + libnl_sane=0 fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas dl requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas dl requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_if_bsdx_ipv4_DSO=1 -else - BUILD_opal_if_bsdx_ipv4_DSO=0 -fi - if test "$BUILD_opal_if_bsdx_ipv4_DSO" = "1"; then - MCA_BUILD_opal_if_bsdx_ipv4_DSO_TRUE= - MCA_BUILD_opal_if_bsdx_ipv4_DSO_FALSE='#' + libnl_sane=0 else - MCA_BUILD_opal_if_bsdx_ipv4_DSO_TRUE='#' - MCA_BUILD_opal_if_bsdx_ipv4_DSO_FALSE= -fi + opal_libnlv1_libs="$opal_libnlv1_libs dl" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi +# Go through each item in the variable and only keep the unique ones - unset compile_mode +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - opal_show_subsubsubtitle "MCA component if:bsdx_ipv6 (m4 configuration macro)" + # Check the ending condition - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter + opal_i="`expr $opal_i + 1`" + done - component_path="$srcdir/opal/mca/if/bsdx_ipv6" - want_component=0 + # If we didn't find the token, add it to the "array" - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_if" ; then - if test "$DIRECT_if" = "bsdx_ipv6" ; then - want_component=1 - else - want_component=0 - fi - fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # if we were explicitly disabled, don't build :) - if test "$DISABLE_if" = "1"; then : - want_component=0 -fi - if test "$DISABLE_if_bsdx_ipv6" = "1"; then : - want_component=0 -fi +# Take all the items in the "array" and assemble them back into a +# single variable - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component if:bsdx_ipv6 compile mode" >&5 -$as_echo_n "checking for MCA component if:bsdx_ipv6 compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - # try to configure the component +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - ac_config_files="$ac_config_files opal/mca/if/bsdx_ipv6/Makefile" +# Clean up +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi +fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libdl requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libdl requires libnl-3" >&2;} - # If we found struct sockaddr and we're on any of the BSDs, we're - # happy. I.e., this: - #if defined( __NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \ - # defined(__386BSD__) || defined(__bsdi__) || defined(__APPLE__) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct sockaddr" >&5 -$as_echo_n "checking struct sockaddr... " >&6; } - if test "$opal_found_sockaddr" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (cached)" >&5 -$as_echo "yes (cached)" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking some flavor of BSD" >&5 -$as_echo_n "checking some flavor of BSD... " >&6; } - if test "$opal_found_netbsd" = "yes" || \ - test "$opal_found_freebsd" = "yes" || \ - test "$opal_found_openbsd" = "yes" || \ - test "$opal_found_386bsd" = "yes" || \ - test "$opal_found_bsdi" = "yes" || - test "$opal_found_apple" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - should_build=$should_build -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - should_build=0 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} + + libnl_sane=0 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (cached)" >&5 -$as_echo "no (cached)" >&6; } - should_build=0 -fi + opal_libnlv3_libs="$opal_libnlv3_libs dl" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - if test "$should_build" = "1"; then : +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/if/bsdx_ipv6/post_configure.sh" + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components bsdx_ipv6" + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components bsdx_ipv6" - else - if test "if" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/if/bsdx_ipv6/lib${OPAL_LIB_PREFIX}mca_if_bsdx_ipv6.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/if/bsdx_ipv6/libmca_if_bsdx_ipv6.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_if_bsdx_ipv6_component;" >> $outfile.extern - echo " &mca_if_bsdx_ipv6_component, " >> $outfile.struct - static_components="$static_components bsdx_ipv6" - fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:bsdx_ipv6 can compile" >&5 -$as_echo_n "checking if MCA component if:bsdx_ipv6 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # Check the ending condition - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_if" = "bsdx_ipv6" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_if_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** if component bsdx_ipv6 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_if" = "bsdx_ipv6" ; then -as_fn_error $? "*** if component bsdx_ipv6 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + opal_done="`expr $opal_i \>= $opal_count`" - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$if_bsdx_ipv6_WRAPPER_EXTRA_LDFLAGS" = ""; then : + # Increment the counter + opal_i="`expr $opal_i + 1`" + done + # If we didn't find the token, add it to the "array" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Take all the items in the "array" and assemble them back into a +# single variable - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - for arg in $if_bsdx_ipv6_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -144063,65 +140976,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $if_bsdx_ipv6_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -144144,94 +141002,337 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - if test "$if_bsdx_ipv6_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $if_bsdx_ipv6_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_dlopen" != "no" && + test "$ac_cv_search_dlopen" != "none required"; then : + opal_dl_dlopen_LIBS="$ac_cv_search_dlopen " else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_dl_dlopen_LIBS="" fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done else + opal_check_package_happy="no" +fi +else + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then + # see comment above + unset ac_cv_search_dlopen + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + opal_dl_dlopen_LDFLAGS="$opal_dl_dlopen_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_dlopen+:} false; then : + +else + ac_cv_search_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" + opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" + unset ac_cv_search_dlopen +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_dlopen+:} false; then : + +else + ac_cv_search_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" + opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" + unset ac_cv_search_dlopen +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_dl_dlopen_LDFLAGS="$opal_dl_dlopen_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_dlopen+:} false; then : + +else + ac_cv_search_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" + opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" + unset ac_cv_search_dlopen +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_dl_dlopen_LDFLAGS="$opal_dl_dlopen_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_dlopen+:} false; then : + +else + ac_cv_search_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" + opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" + unset ac_cv_search_dlopen +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then opal_scope_index=1 fi @@ -144239,7 +141340,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -144258,66 +141359,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $if_bsdx_ipv6_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$if_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -144330,7 +141381,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -144349,7 +141400,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -144357,25 +141408,277 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $if_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libdl requires libnl v1 or v3" >&5 +$as_echo_n "checking if libdl requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void dlopen (void); +int main(int argc, char *argv[]) { + dlopen (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:141435: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ldl $LIBS $opal_dl_dlopen_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ldl $LIBS $opal_dl_dlopen_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:141442: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib dl" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib dl" >&2;} + +fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libdl links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libdl links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} + + libnl_sane=0 +fi + + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas dl requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas dl requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} + + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs dl" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi + fi + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libdl requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libdl requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} + + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs dl" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi + +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -144398,164 +141701,103 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring if_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS ($if_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring if_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS ($if_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else + ;; + esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:bsdx_ipv6 can compile" >&5 -$as_echo_n "checking if MCA component if:bsdx_ipv6 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + opal_check_package_libnl_check_ok=$opal_libnl_sane - # If this component was requested as the default for this - # type, then abort. - if test "$with_if" = "bsdx_ipv6" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bsdx_ipv6\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"bsdx_ipv6\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_if" ; then - if test "$DIRECT_if" = "bsdx_ipv6" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bsdx_ipv6\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"bsdx_ipv6\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # add component to all component list - all_components="$all_components bsdx_ipv6" -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_if_bsdx_ipv6_DSO=1 -else - BUILD_opal_if_bsdx_ipv6_DSO=0 fi - if test "$BUILD_opal_if_bsdx_ipv6_DSO" = "1"; then - MCA_BUILD_opal_if_bsdx_ipv6_DSO_TRUE= - MCA_BUILD_opal_if_bsdx_ipv6_DSO_FALSE='#' + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_dlopen" != "no" && + test "$ac_cv_search_dlopen" != "none required"; then : + opal_dl_dlopen_LIBS="$ac_cv_search_dlopen " else - MCA_BUILD_opal_if_bsdx_ipv6_DSO_TRUE='#' - MCA_BUILD_opal_if_bsdx_ipv6_DSO_FALSE= + opal_dl_dlopen_LIBS="" fi - - - if test "$should_build" = "1"; then : - components_last_result=1 + opal_check_package_happy="yes" else - components_last_result=0 + opal_check_package_happy="no" fi - unset compile_mode +fi + unset opal_check_package_header_happy + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - opal_show_subsubsubtitle "MCA component if:linux_ipv6 (m4 configuration macro)" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + if test "$opal_check_package_happy" = "yes"; then : + opal_dl_dlopen_happy=yes +else + opal_dl_dlopen_CPPFLAGS="$opal_check_package_opal_dl_dlopen_orig_CPPFLAGS" + opal_dl_dlopen_LDFLAGS="$opal_check_package_opal_dl_dlopen_orig_LDFLAGS" + opal_dl_dlopen_LIBS="$opal_check_package_opal_dl_dlopen_orig_LIBS" + opal_dl_dlopen_happy=no +fi - component_path="$srcdir/opal/mca/if/linux_ipv6" - want_component=0 + CPPFLAGS="$opal_check_package_opal_dl_dlopen_save_CPPFLAGS" + LDFLAGS="$opal_check_package_opal_dl_dlopen_save_LDFLAGS" + LIBS="$opal_check_package_opal_dl_dlopen_save_LIBS" - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_if" ; then - if test "$DIRECT_if" = "linux_ipv6" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_if" = "1"; then : - want_component=0 -fi - if test "$DISABLE_if_linux_ipv6" = "1"; then : - want_component=0 fi - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + if test "$opal_dl_dlopen_happy" = "yes"; then : + dl_dlopen_ADD_LIBS=$opal_dl_dlopen_LIBS + dl_dlopen_WRAPPER_EXTRA_LIBS=$opal_dl_dlopen_LIBS + should_build=$should_build else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component if:linux_ipv6 compile mode" >&5 -$as_echo_n "checking for MCA component if:linux_ipv6 compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - - # try to configure the component - - ac_config_files="$ac_config_files opal/mca/if/linux_ipv6/Makefile" - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we are on Linux with TCP" >&5 -$as_echo_n "checking if we are on Linux with TCP... " >&6; } - # If we have struct sockaddr and we're on Linux, then we're - # happy. - if test "$opal_found_sockaddr" = "yes" && test "$opal_found_linux" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - should_build=$should_build -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - should_build=0 -fi opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -144565,45 +141807,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/if/linux_ipv6/post_configure.sh" + infile="$srcdir/opal/mca/dl/dlopen/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components linux_ipv6" + all_components="$all_components dlopen" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components linux_ipv6" + dso_components="$dso_components dlopen" else - if test "if" = "common"; then + if test "dl" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/if/linux_ipv6/lib${OPAL_LIB_PREFIX}mca_if_linux_ipv6.la $static_ltlibs" + static_ltlibs="mca/dl/dlopen/lib${OPAL_LIB_PREFIX}mca_dl_dlopen.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/if/linux_ipv6/libmca_if_linux_ipv6.la $static_ltlibs" + static_ltlibs="mca/dl/dlopen/libmca_dl_dlopen.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_if_linux_ipv6_component;" >> $outfile.extern - echo " &mca_if_linux_ipv6_component, " >> $outfile.struct - static_components="$static_components linux_ipv6" + echo "extern const mca_base_component_t mca_dl_dlopen_component;" >> $outfile.extern + echo " &mca_dl_dlopen_component, " >> $outfile.struct + static_components="$static_components dlopen" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:linux_ipv6 can compile" >&5 -$as_echo_n "checking if MCA component if:linux_ipv6 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component dl:dlopen can compile" >&5 +$as_echo_n "checking if MCA component dl:dlopen can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_if" = "linux_ipv6" ; then + if test "$DIRECT_dl" = "dlopen" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_if_DIRECT_CALL_HEADER=$line" + str="MCA_opal_dl_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** if component linux_ipv6 was supposed to be direct-called, but +as_fn_error $? "*** dl component dlopen was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -144611,8 +141853,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_if" = "linux_ipv6" ; then -as_fn_error $? "*** if component linux_ipv6 was supposed to be direct-called, but + if test "$DIRECT_dl" = "dlopen" ; then +as_fn_error $? "*** dl component dlopen was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -144627,7 +141869,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$if_linux_ipv6_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$dl_dlopen_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -144667,7 +141909,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $if_linux_ipv6_LDFLAGS; do + for arg in $dl_dlopen_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -144748,7 +141990,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $if_linux_ipv6_WRAPPER_EXTRA_LDFLAGS; do + for arg in $dl_dlopen_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -144790,7 +142032,7 @@ fi - if test "$if_linux_ipv6_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$dl_dlopen_WRAPPER_EXTRA_LIBS" = ""; then : @@ -144830,7 +142072,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $if_linux_ipv6_LIBS; do + for arg in $dl_dlopen_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -144911,7 +142153,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $if_linux_ipv6_WRAPPER_EXTRA_LIBS; do + for arg in $dl_dlopen_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -144959,8 +142201,8 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$if_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 + if test "$dl_dlopen_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=1 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -145002,7 +142244,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $if_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $dl_dlopen_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -145045,32 +142287,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring if_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS ($if_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring if_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS ($if_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring dl_dlopen_WRAPPER_EXTRA_CPPFLAGS ($dl_dlopen_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring dl_dlopen_WRAPPER_EXTRA_CPPFLAGS ($dl_dlopen_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:linux_ipv6 can compile" >&5 -$as_echo_n "checking if MCA component if:linux_ipv6 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component dl:dlopen can compile" >&5 +$as_echo_n "checking if MCA component dl:dlopen can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_if" = "linux_ipv6" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux_ipv6\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"linux_ipv6\" failed to configure properly" >&2;} + if test "$with_dl" = "dlopen" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dlopen\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"dlopen\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_if" ; then - if test "$DIRECT_if" = "linux_ipv6" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux_ipv6\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"linux_ipv6\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_dl" ; then + if test "$DIRECT_dl" = "dlopen" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dlopen\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"dlopen\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -145078,23 +142320,23 @@ fi # add component to all component list - all_components="$all_components linux_ipv6" + all_components="$all_components dlopen" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_if_linux_ipv6_DSO=1 + BUILD_opal_dl_dlopen_DSO=1 else - BUILD_opal_if_linux_ipv6_DSO=0 + BUILD_opal_dl_dlopen_DSO=0 fi - if test "$BUILD_opal_if_linux_ipv6_DSO" = "1"; then - MCA_BUILD_opal_if_linux_ipv6_DSO_TRUE= - MCA_BUILD_opal_if_linux_ipv6_DSO_FALSE='#' + if test "$BUILD_opal_dl_dlopen_DSO" = "1"; then + MCA_BUILD_opal_dl_dlopen_DSO_TRUE= + MCA_BUILD_opal_dl_dlopen_DSO_FALSE='#' else - MCA_BUILD_opal_if_linux_ipv6_DSO_TRUE='#' - MCA_BUILD_opal_if_linux_ipv6_DSO_FALSE= + MCA_BUILD_opal_dl_dlopen_DSO_TRUE='#' + MCA_BUILD_opal_dl_dlopen_DSO_FALSE= fi @@ -145106,17 +142348,19 @@ unset compile_mode + if test $components_last_result -eq 1; then : + components_looking_for_succeed=0 +fi - - opal_show_subsubsubtitle "MCA component if:posix_ipv4 (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component dl:libltdl (m4 configuration macro, priority 50)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/if/posix_ipv4" + component_path="$srcdir/opal/mca/dl/libltdl" want_component=0 # build if: @@ -145148,8 +142392,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_if" ; then - if test "$DIRECT_if" = "posix_ipv4" ; then + if test ! -z "$DIRECT_dl" ; then + if test "$DIRECT_dl" = "libltdl" ; then want_component=1 else want_component=0 @@ -145158,10 +142402,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_if" = "1"; then : + if test "$DISABLE_dl" = "1"; then : want_component=0 fi - if test "$DISABLE_if_posix_ipv4" = "1"; then : + if test "$DISABLE_dl_libltdl" = "1"; then : want_component=0 fi @@ -145174,8 +142418,8 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component if:posix_ipv4 compile mode" >&5 -$as_echo_n "checking for MCA component if:posix_ipv4 compile mode... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component dl:libltdl compile mode" >&5 +$as_echo_n "checking for MCA component dl:libltdl compile mode... " >&6; } compile_mode="static" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 $as_echo "$compile_mode" >&6; } @@ -145183,9 +142427,6 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/if/posix_ipv4/Makefile" - - # Is the private index set? If not, set it. @@ -145197,7 +142438,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_if_posix_ipv4_happy; do + for opal_var in CPPFLAGS_save LDFLAGS_save LIBS_save; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -145216,62 +142457,63 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_if_posix_ipv4_happy\"" + opal_str="opal_scope_$opal_scope_index=\"CPPFLAGS_save LDFLAGS_save LIBS_save\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_if_posix_ipv4_happy=no - + ac_config_files="$ac_config_files opal/mca/dl/libltdl/Makefile" - # If we found struct sockaddr and we're NOT on most of the BSDs, - # we're happy. I.e., if posix but not: - #if defined(__NetBSD__) || defined(__FreeBSD__) || \ - # defined(__OpenBSD__) || defined(__DragonFly__) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct sockaddr" >&5 -$as_echo_n "checking struct sockaddr... " >&6; } - if test "$opal_found_sockaddr" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (cached)" >&5 -$as_echo "yes (cached)" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking not NetBSD, FreeBSD, OpenBSD, or DragonFly" >&5 -$as_echo_n "checking not NetBSD, FreeBSD, OpenBSD, or DragonFly... " >&6; } - if test "$opal_found_netbsd" = "no" && test "$opal_found_freebsd" = "no" && test "$opal_found_openbsd" = "no" && test "$opal_found_dragonfly" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_if_posix_ipv4_happy=yes -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Add --with options +# Check whether --with-libltdl was given. +if test "${with_libltdl+set}" = set; then : + withval=$with_libltdl; fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (cached)" >&5 -$as_echo "no (cached)" >&6; } + +# Check whether --with-libltdl-libdir was given. +if test "${with_libltdl_libdir+set}" = set; then : + withval=$with_libltdl_libdir; fi - if test "$opal_if_posix_ipv4_happy" = "yes"; then : - ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_hwaddr" "ac_cv_member_struct_ifreq_ifr_hwaddr" "#include -" -if test "x$ac_cv_member_struct_ifreq_ifr_hwaddr" = xyes; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_IFREQ_IFR_HWADDR 1 -_ACEOF + # Sanity check the --with values + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-libltdl value" >&5 +$as_echo_n "checking --with-libltdl value... " >&6; } + if test "$with_libltdl" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-libltdl)" >&5 +$as_echo "simple no (specified --without-libltdl)" >&6; } +else + if test "$with_libltdl" = "yes" || test "x$with_libltdl" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_libltdl"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_libltdl not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_libltdl not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_libltdl/include/ltdl.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_libltdl/include/ltdl.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_libltdl/include/ltdl.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_libltdl)" >&5 +$as_echo "sanity check ok ($with_libltdl)" >&6; } fi - ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_mtu" "ac_cv_member_struct_ifreq_ifr_mtu" "#include -" -if test "x$ac_cv_member_struct_ifreq_ifr_mtu" = xyes; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_IFREQ_IFR_MTU 1 -_ACEOF +fi fi @@ -145279,83 +142521,84 @@ fi - if test "$opal_if_posix_ipv4_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi; - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-libltdl-libdir value" >&5 +$as_echo_n "checking --with-libltdl-libdir value... " >&6; } + if test "$with_libltdl_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-libltdl-libdir)" >&5 +$as_echo "simple no (specified --without-libltdl-libdir)" >&6; } +else + if test "$with_libltdl_libdir" = "yes" || test "x$with_libltdl_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_libltdl_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_libltdl_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_libltdl_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_libltdl_libdir/libltdl.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_libltdl_libdir/libltdl.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_libltdl_libdir/libltdl.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_libltdl_libdir)" >&5 +$as_echo "sanity check ok ($with_libltdl_libdir)" >&6; } +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/if/posix_ipv4/post_configure.sh" +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components posix_ipv4" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components posix_ipv4" - else - if test "if" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/if/posix_ipv4/lib${OPAL_LIB_PREFIX}mca_if_posix_ipv4.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/if/posix_ipv4/libmca_if_posix_ipv4.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_if_posix_ipv4_component;" >> $outfile.extern - echo " &mca_if_posix_ipv4_component, " >> $outfile.struct - static_components="$static_components posix_ipv4" - fi +fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:posix_ipv4 can compile" >&5 -$as_echo_n "checking if MCA component if:posix_ipv4 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_if" = "posix_ipv4" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_if_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** if component posix_ipv4 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_if" = "posix_ipv4" ; then -as_fn_error $? "*** if component posix_ipv4 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$if_posix_ipv4_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + # Defaults + opal_check_libltdl_dir_msg="compiler default" + opal_check_libltdl_libdir_msg="linker default" + + # Save directory names if supplied + if test ! -z "$with_libltdl" && test "$with_libltdl" != "yes"; then : + opal_check_libltdl_dir=$with_libltdl + opal_check_libltdl_dir_msg="$opal_check_libltdl_dir (from --with-libltdl)" +fi + if test ! -z "$with_libltdl_libdir" && test "$with_libltdl_libdir" != "yes"; then : + opal_check_libltdl_libdir=$with_libltdl_libdir + opal_check_libltdl_libdir_msg="$opal_check_libltdl_libdir (from --with-libltdl-libdir)" +fi + + opal_dl_libltdl_happy=no + if test "$with_libltdl" != "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libltdl dir" >&5 +$as_echo_n "checking for libltdl dir... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_check_libltdl_dir_msg" >&5 +$as_echo "$opal_check_libltdl_dir_msg" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libltdl library dir" >&5 +$as_echo_n "checking for libltdl library dir... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_check_libltdl_libdir_msg" >&5 +$as_echo "$opal_check_libltdl_libdir_msg" >&6; } + + + opal_check_package_opal_dl_libltdl_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_opal_dl_libltdl_save_LDFLAGS="$LDFLAGS" + opal_check_package_opal_dl_libltdl_save_LIBS="$LIBS" + + opal_check_package_opal_dl_libltdl_orig_CPPFLAGS="$opal_dl_libltdl_CPPFLAGS" + opal_check_package_opal_dl_libltdl_orig_LDFLAGS="$opal_dl_libltdl_LDFLAGS" + opal_check_package_opal_dl_libltdl_orig_LIBS="$opal_dl_libltdl_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -145368,7 +142611,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -145387,7 +142630,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -145395,130 +142638,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $if_posix_ipv4_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_ltdl_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $opal_check_libltdl_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in ltdl.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default" +if test "x$ac_cv_header_ltdl_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LTDL_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_ltdl_h fi fi - done + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + opal_dl_libltdl_CPPFLAGS="$opal_dl_libltdl_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in ltdl.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default" +if test "x$ac_cv_header_ltdl_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LTDL_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +done - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$opal_check_package_header_happy" = "yes"; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + # see comment above + unset ac_cv_search_lt_dlopen + opal_check_package_lib_happy="no" + if test "$opal_check_libltdl_libdir" != ""; then : + # libdir was specified - search only there + opal_dl_libltdl_LDFLAGS="$opal_dl_libltdl_LDFLAGS -L$opal_check_libltdl_libdir" + LDFLAGS="$LDFLAGS -L$opal_check_libltdl_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 +$as_echo_n "checking for library containing lt_dlopen... " >&6; } +if ${ac_cv_search_lt_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lt_dlopen (); +int +main () +{ +return lt_dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ltdl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lt_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lt_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_lt_dlopen+:} false; then : +else + ac_cv_search_lt_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 +$as_echo "$ac_cv_search_lt_dlopen" >&6; } +ac_res=$ac_cv_search_lt_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" + opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" + unset ac_cv_search_lt_dlopen +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_check_libltdl_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 +$as_echo_n "checking for library containing lt_dlopen... " >&6; } +if ${ac_cv_search_lt_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lt_dlopen (); +int +main () +{ +return lt_dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ltdl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lt_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lt_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_lt_dlopen+:} false; then : - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +else + ac_cv_search_lt_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 +$as_echo "$ac_cv_search_lt_dlopen" >&6; } +ac_res=$ac_cv_search_lt_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" + opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" + unset ac_cv_search_lt_dlopen +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_dl_libltdl_LDFLAGS="$opal_dl_libltdl_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 +$as_echo_n "checking for library containing lt_dlopen... " >&6; } +if ${ac_cv_search_lt_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - for arg in $if_posix_ipv4_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lt_dlopen (); +int +main () +{ +return lt_dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ltdl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lt_dlopen=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lt_dlopen+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg +done +if ${ac_cv_search_lt_dlopen+:} false; then : + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + ac_cv_search_lt_dlopen=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 +$as_echo "$ac_cv_search_lt_dlopen" >&6; } +ac_res=$ac_cv_search_lt_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - done - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" + opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" + unset ac_cv_search_lt_dlopen +fi +fi +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_dl_libltdl_LDFLAGS="$opal_dl_libltdl_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 +$as_echo_n "checking for library containing lt_dlopen... " >&6; } +if ${ac_cv_search_lt_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lt_dlopen (); +int +main () +{ +return lt_dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ltdl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lt_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lt_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_lt_dlopen+:} false; then : +else + ac_cv_search_lt_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 +$as_echo "$ac_cv_search_lt_dlopen" >&6; } +ac_res=$ac_cv_search_lt_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" + opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" + unset ac_cv_search_lt_dlopen fi - if test "$if_posix_ipv4_WRAPPER_EXTRA_LIBS" = ""; then : +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -145531,7 +143001,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -145550,56 +143020,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $if_posix_ipv4_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -145612,7 +143042,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -145631,7 +143061,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -145639,115 +143069,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $if_posix_ipv4_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libltdl requires libnl v1 or v3" >&5 +$as_echo_n "checking if libltdl requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void lt_dlopen (void); +int main(int argc, char *argv[]) { + lt_dlopen (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:143096: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lltdl $LIBS $opal_dl_libltdl_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lltdl $LIBS $opal_dl_libltdl_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:143103: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ltdl" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ltdl" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libltdl links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libltdl links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libltdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libltdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libltdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libltdl." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ltdl requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ltdl requires libnl" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libltdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libltdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libltdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libltdl." >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs ltdl" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones -fi +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - fi + # Loop over every token we've seen so far - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$if_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Check the ending condition - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_done="`expr $opal_i \>= $opal_count`" - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Increment the counter + + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $if_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libltdl requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libltdl requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libltdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libltdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libltdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libltdl." >&2;} + + libnl_sane=0 else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + opal_libnlv3_libs="$opal_libnlv3_libs ltdl" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -145771,158 +143362,886 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring if_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS ($if_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring if_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS ($if_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else + ;; + esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:posix_ipv4 can compile" >&5 -$as_echo_n "checking if MCA component if:posix_ipv4 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + opal_check_package_libnl_check_ok=$opal_libnl_sane - # If this component was requested as the default for this - # type, then abort. - if test "$with_if" = "posix_ipv4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"posix_ipv4\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"posix_ipv4\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_if" ; then - if test "$DIRECT_if" = "posix_ipv4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"posix_ipv4\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"posix_ipv4\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # add component to all component list - all_components="$all_components posix_ipv4" -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + +fi - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_if_posix_ipv4_DSO=1 + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_lt_dlopen" != "no" && + test "$ac_cv_search_lt_dlopen" != "none required"; then : + opal_dl_libltdl_LIBS="$ac_cv_search_lt_dlopen " else - BUILD_opal_if_posix_ipv4_DSO=0 + opal_dl_libltdl_LIBS="" fi - if test "$BUILD_opal_if_posix_ipv4_DSO" = "1"; then - MCA_BUILD_opal_if_posix_ipv4_DSO_TRUE= - MCA_BUILD_opal_if_posix_ipv4_DSO_FALSE='#' + opal_check_package_happy="yes" else - MCA_BUILD_opal_if_posix_ipv4_DSO_TRUE='#' - MCA_BUILD_opal_if_posix_ipv4_DSO_FALSE= + opal_check_package_happy="no" fi - if test "$should_build" = "1"; then : - components_last_result=1 else - components_last_result=0 + opal_check_package_happy="no" fi +else - unset compile_mode - - - + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - opal_show_subsubsubtitle "MCA component if:solaris_ipv6 (m4 configuration macro)" + # see comment above + unset ac_cv_search_lt_dlopen + opal_check_package_lib_happy="no" + if test "$opal_check_libltdl_libdir" != ""; then : + # libdir was specified - search only there + opal_dl_libltdl_LDFLAGS="$opal_dl_libltdl_LDFLAGS -L$opal_check_libltdl_libdir" + LDFLAGS="$LDFLAGS -L$opal_check_libltdl_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 +$as_echo_n "checking for library containing lt_dlopen... " >&6; } +if ${ac_cv_search_lt_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lt_dlopen (); +int +main () +{ +return lt_dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ltdl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lt_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lt_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_lt_dlopen+:} false; then : +else + ac_cv_search_lt_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 +$as_echo "$ac_cv_search_lt_dlopen" >&6; } +ac_res=$ac_cv_search_lt_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" + opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" + unset ac_cv_search_lt_dlopen +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_check_libltdl_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 +$as_echo_n "checking for library containing lt_dlopen... " >&6; } +if ${ac_cv_search_lt_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - component_path="$srcdir/opal/mca/if/solaris_ipv6" - want_component=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lt_dlopen (); +int +main () +{ +return lt_dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ltdl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lt_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lt_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_lt_dlopen+:} false; then : - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi +else + ac_cv_search_lt_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 +$as_echo "$ac_cv_search_lt_dlopen" >&6; } +ac_res=$ac_cv_search_lt_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" + opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" + unset ac_cv_search_lt_dlopen +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_dl_libltdl_LDFLAGS="$opal_dl_libltdl_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 +$as_echo_n "checking for library containing lt_dlopen... " >&6; } +if ${ac_cv_search_lt_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lt_dlopen (); +int +main () +{ +return lt_dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ltdl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lt_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lt_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_lt_dlopen+:} false; then : + +else + ac_cv_search_lt_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 +$as_echo "$ac_cv_search_lt_dlopen" >&6; } +ac_res=$ac_cv_search_lt_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" + opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" + unset ac_cv_search_lt_dlopen +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_dl_libltdl_LDFLAGS="$opal_dl_libltdl_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 +$as_echo_n "checking for library containing lt_dlopen... " >&6; } +if ${ac_cv_search_lt_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lt_dlopen (); +int +main () +{ +return lt_dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ltdl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lt_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lt_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_lt_dlopen+:} false; then : + +else + ac_cv_search_lt_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 +$as_echo "$ac_cv_search_lt_dlopen" >&6; } +ac_res=$ac_cv_search_lt_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" + opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" + unset ac_cv_search_lt_dlopen +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_libnl_sane; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_if" ; then - if test "$DIRECT_if" = "solaris_ipv6" ; then - want_component=1 - else - want_component=0 - fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + opal_libnl_sane=1 + case $host in + *linux*) + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libltdl requires libnl v1 or v3" >&5 +$as_echo_n "checking if libltdl requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void lt_dlopen (void); +int main(int argc, char *argv[]) { + lt_dlopen (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:143821: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lltdl $LIBS $opal_dl_libltdl_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lltdl $LIBS $opal_dl_libltdl_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:143828: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ltdl" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ltdl" >&2;} + +fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libltdl links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libltdl links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libltdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libltdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libltdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libltdl." >&2;} + + libnl_sane=0 +fi + + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ltdl requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ltdl requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libltdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libltdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libltdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libltdl." >&2;} + + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs ltdl" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # if we were explicitly disabled, don't build :) - if test "$DISABLE_if" = "1"; then : - want_component=0 +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - if test "$DISABLE_if_solaris_ipv6" = "1"; then : - want_component=0 + fi - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libltdl requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libltdl requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libltdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libltdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libltdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libltdl." >&2;} + + libnl_sane=0 else - should_build=0 + opal_libnlv3_libs="$opal_libnlv3_libs ltdl" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component if:solaris_ipv6 compile mode" >&5 -$as_echo_n "checking for MCA component if:solaris_ipv6 compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - # try to configure the component + opal_libnl_sane=$libnl_sane - ac_config_files="$ac_config_files opal/mca/if/solaris_ipv6/Makefile" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # check to see if we are on a solaris machine - if test "$opal_found_sun" = "yes"; then : - should_build=$should_build + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_lt_dlopen" != "no" && + test "$ac_cv_search_lt_dlopen" != "none required"; then : + opal_dl_libltdl_LIBS="$ac_cv_search_lt_dlopen " else - should_build=0 + opal_dl_libltdl_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi + + +fi + unset opal_check_package_header_happy + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + + if test "$opal_check_package_happy" = "yes"; then : + opal_dl_libltdl_happy=yes +else + opal_dl_libltdl_CPPFLAGS="$opal_check_package_opal_dl_libltdl_orig_CPPFLAGS" + opal_dl_libltdl_LDFLAGS="$opal_check_package_opal_dl_libltdl_orig_LDFLAGS" + opal_dl_libltdl_LIBS="$opal_check_package_opal_dl_libltdl_orig_LIBS" + opal_dl_libltdl_happy=no +fi + + CPPFLAGS="$opal_check_package_opal_dl_libltdl_save_CPPFLAGS" + LDFLAGS="$opal_check_package_opal_dl_libltdl_save_LDFLAGS" + LIBS="$opal_check_package_opal_dl_libltdl_save_LIBS" + + +fi + + # If we have libltdl, do we have lt_dladvise? + opal_dl_libltdl_have_lt_dladvise=0 + if test "$opal_dl_libltdl_happy" = "yes"; then : + CPPFLAGS_save=$CPPFLAGS + LDFLAGS_save=$LDFLAGS + LIBS_save=$LIBS + + CPPFLAGS="$opal_dl_libltdl_CPPFLAGS $CPPFLAGS" + LDFLAGS="$opal_dl_libltdl_LDFLAGS $LDFLAGS" + LIBS="$opal_dl_libltdl_LIBS $LIBS" + ac_fn_c_check_func "$LINENO" "lt_dladvise_init" "ac_cv_func_lt_dladvise_init" +if test "x$ac_cv_func_lt_dladvise_init" = xyes; then : + opal_dl_libltdl_have_lt_dladvise=1 +fi + + CPPFLAGS=$CPPFLAGS_save + LDFLAGS=$LDFLAGS_save + LIBS=$LIBS_save + +fi + +cat >>confdefs.h <<_ACEOF +#define OPAL_DL_LIBLTDL_HAVE_LT_DLADVISE $opal_dl_libltdl_have_lt_dladvise +_ACEOF + + + if test "$opal_dl_libltdl_happy" = "yes"; then : + opal_dl_libltdl_ADD_CPPFLAGS=$opal_dl_libltdl_CPPFLAGS + opal_dl_libltdl_ADD_LDFLAGS=$opal_dl_libltdl_LDFLAGS + opal_dl_libltdl_ADD_LIBS=$opal_dl_libltdl_LIBS + should_build=$should_build +else + if test ! -z "$with_libltdl" && \ + test "$with_libltdl" != "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libltdl support requested (via --with-libltdl) but not found." >&5 +$as_echo "$as_me: WARNING: Libltdl support requested (via --with-libltdl) but not found." >&2;} + as_fn_error $? "Cannot continue." "$LINENO" 5 +fi + should_build=0 fi + + + + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -145931,45 +144250,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/if/solaris_ipv6/post_configure.sh" + infile="$srcdir/opal/mca/dl/libltdl/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components solaris_ipv6" + all_components="$all_components libltdl" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components solaris_ipv6" + dso_components="$dso_components libltdl" else - if test "if" = "common"; then + if test "dl" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/if/solaris_ipv6/lib${OPAL_LIB_PREFIX}mca_if_solaris_ipv6.la $static_ltlibs" + static_ltlibs="mca/dl/libltdl/lib${OPAL_LIB_PREFIX}mca_dl_libltdl.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/if/solaris_ipv6/libmca_if_solaris_ipv6.la $static_ltlibs" + static_ltlibs="mca/dl/libltdl/libmca_dl_libltdl.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_if_solaris_ipv6_component;" >> $outfile.extern - echo " &mca_if_solaris_ipv6_component, " >> $outfile.struct - static_components="$static_components solaris_ipv6" + echo "extern const mca_base_component_t mca_dl_libltdl_component;" >> $outfile.extern + echo " &mca_dl_libltdl_component, " >> $outfile.struct + static_components="$static_components libltdl" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:solaris_ipv6 can compile" >&5 -$as_echo_n "checking if MCA component if:solaris_ipv6 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component dl:libltdl can compile" >&5 +$as_echo_n "checking if MCA component dl:libltdl can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_if" = "solaris_ipv6" ; then + if test "$DIRECT_dl" = "libltdl" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_if_DIRECT_CALL_HEADER=$line" + str="MCA_opal_dl_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** if component solaris_ipv6 was supposed to be direct-called, but +as_fn_error $? "*** dl component libltdl was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -145977,8 +144296,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_if" = "solaris_ipv6" ; then -as_fn_error $? "*** if component solaris_ipv6 was supposed to be direct-called, but + if test "$DIRECT_dl" = "libltdl" ; then +as_fn_error $? "*** dl component libltdl was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -145993,7 +144312,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$if_solaris_ipv6_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$dl_libltdl_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -146033,7 +144352,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $if_solaris_ipv6_LDFLAGS; do + for arg in $dl_libltdl_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -146114,7 +144433,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $if_solaris_ipv6_WRAPPER_EXTRA_LDFLAGS; do + for arg in $dl_libltdl_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -146156,7 +144475,7 @@ fi - if test "$if_solaris_ipv6_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$dl_libltdl_WRAPPER_EXTRA_LIBS" = ""; then : @@ -146196,7 +144515,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $if_solaris_ipv6_LIBS; do + for arg in $dl_libltdl_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -146277,7 +144596,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $if_solaris_ipv6_WRAPPER_EXTRA_LIBS; do + for arg in $dl_libltdl_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -146325,8 +144644,8 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$if_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 + if test "$dl_libltdl_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=1 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -146368,7 +144687,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $if_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $dl_libltdl_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -146411,32 +144730,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring if_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS ($if_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring if_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS ($if_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring dl_libltdl_WRAPPER_EXTRA_CPPFLAGS ($dl_libltdl_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring dl_libltdl_WRAPPER_EXTRA_CPPFLAGS ($dl_libltdl_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:solaris_ipv6 can compile" >&5 -$as_echo_n "checking if MCA component if:solaris_ipv6 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component dl:libltdl can compile" >&5 +$as_echo_n "checking if MCA component dl:libltdl can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_if" = "solaris_ipv6" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"solaris_ipv6\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"solaris_ipv6\" failed to configure properly" >&2;} + if test "$with_dl" = "libltdl" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"libltdl\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"libltdl\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_if" ; then - if test "$DIRECT_if" = "solaris_ipv6" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"solaris_ipv6\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"solaris_ipv6\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_dl" ; then + if test "$DIRECT_dl" = "libltdl" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"libltdl\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"libltdl\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -146444,23 +144763,33 @@ fi # add component to all component list - all_components="$all_components solaris_ipv6" + all_components="$all_components libltdl" fi + # If we won, then do all the rest of the setup + if test "$should_build" = "1"; then : + + # Add some stuff to CPPFLAGS so that the rest of the source + # tree can be built + LDFLAGS="$LDFLAGS $opal_dl_libltdl_ADD_LDFLAGS" + LIBS="$LIBS $opal_dl_libltdl_ADD_LIBS" + +fi + # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_if_solaris_ipv6_DSO=1 + BUILD_opal_dl_libltdl_DSO=1 else - BUILD_opal_if_solaris_ipv6_DSO=0 + BUILD_opal_dl_libltdl_DSO=0 fi - if test "$BUILD_opal_if_solaris_ipv6_DSO" = "1"; then - MCA_BUILD_opal_if_solaris_ipv6_DSO_TRUE= - MCA_BUILD_opal_if_solaris_ipv6_DSO_FALSE='#' + if test "$BUILD_opal_dl_libltdl_DSO" = "1"; then + MCA_BUILD_opal_dl_libltdl_DSO_TRUE= + MCA_BUILD_opal_dl_libltdl_DSO_FALSE='#' else - MCA_BUILD_opal_if_solaris_ipv6_DSO_TRUE='#' - MCA_BUILD_opal_if_solaris_ipv6_DSO_FALSE= + MCA_BUILD_opal_dl_libltdl_DSO_TRUE='#' + MCA_BUILD_opal_dl_libltdl_DSO_FALSE= fi @@ -146472,7 +144801,9 @@ unset compile_mode - + if test $components_last_result -eq 1; then : + components_looking_for_succeed=0 +fi @@ -146481,478 +144812,104 @@ # works", so we don't :) + MCA_opal_dl_ALL_COMPONENTS="$all_components" + MCA_opal_dl_STATIC_COMPONENTS="$static_components" + MCA_opal_dl_DSO_COMPONENTS="$dso_components" + MCA_opal_dl_STATIC_LTLIBS="$static_ltlibs" - if test "1" != "0"; then : - for component_path in $srcdir/opal/mca/if/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component if:$component (need to configure)" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/opal/mca/if/$component" - want_component=0 - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_if" ; then - if test "$DIRECT_if" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + MCA_opal_dl_ALL_SUBDIRS= + for item in $all_components ; do + MCA_opal_dl_ALL_SUBDIRS="$MCA_opal_dl_ALL_SUBDIRS mca/dl/$item" + done - # if we were explicitly disabled, don't build :) - if test "$DISABLE_if" = "1"; then : - want_component=0 -fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_if_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi + MCA_opal_dl_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_opal_dl_STATIC_SUBDIRS="$MCA_opal_dl_STATIC_SUBDIRS mca/dl/$item" + done - SHARED_FRAMEWORK="$DSO_if" - str="SHARED_COMPONENT=\$DSO_if_$component" - eval $str - STATIC_FRAMEWORK="$STATIC_if" - str="STATIC_COMPONENT=\$STATIC_if_$component" - eval $str - shared_mode_override=static + MCA_opal_dl_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_opal_dl_DSO_SUBDIRS="$MCA_opal_dl_DSO_SUBDIRS mca/dl/$item" + done - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component if:$component compile mode" >&5 -$as_echo_n "checking for MCA component if:$component compile mode... " >&6; } - if test "$DIRECT_if" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - -# -# Invoke configure in a specific subdirectory. -# -# opal/mca/if/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="opal/mca/if/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - - # - # Construct the --cache-file argument - # - - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - - # - # Invoke the configure script in the subdirectory - # - - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi - - # - # Go back to the topdir - # - - cd $subdir_parent -fi - -# -# Clean up -# - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/opal/mca/if/all_components/post_configure.sh" - if test -f $infile; then - - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - if_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - if_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "dl" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/if/$component/libmca_if_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_if_$component_component;" >> $outfile.extern - echo " &mca_if_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:$component can compile" >&5 -$as_echo_n "checking if MCA component if:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_if" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_if_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** if component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_if" = "$component" ; then -as_fn_error $? "*** if component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 + rm -f $outfile fi fi + rm -f $outfile.struct $outfile.extern - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$if_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + unset all_components static_components dso_components outfile outfile_real - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi + # If we found no suitable static dl component and dlopen support + # was not specifically disabled, this is an error. + if test "$MCA_opal_dl_STATIC_COMPONENTS" = "" && \ + test "$enable_dlopen" != "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Did not find a suitable static opal dl component" >&5 +$as_echo "$as_me: WARNING: Did not find a suitable static opal dl component" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You might need to install libltld (and its headers) or" >&5 +$as_echo "$as_me: WARNING: You might need to install libltld (and its headers) or" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: specify --disable-dlopen to configure." >&5 +$as_echo "$as_me: WARNING: specify --disable-dlopen to configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done -str="line=\$if_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + # If we have a winning component (which, per above, will only + # happen if --disable-dlopen was *not* specified), do some more + # logic. + if test "$MCA_opal_dl_STATIC_COMPONENTS" != ""; then : + # We had a winner -- w00t! + OPAL_HAVE_DL_SUPPORT=1 + # If we added any -L flags to ADD_LDFLAGS, then we (might) + # need to add those directories to LD_LIBRARY_PATH. + # Otherwise, if we try to AC RUN_IFELSE anything here in + # configure, it might die because it can't find the libraries + # we just linked against. # Is the private index set? If not, set it. @@ -146964,7 +144921,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_dl_base_found_l opal_dl_base_token opal_dl_base_tmp opal_dl_base_dir; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -146983,33 +144940,33 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_dl_base_found_l opal_dl_base_token opal_dl_base_tmp opal_dl_base_dir\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi + opal_dl_base_found_l=0 + eval "opal_dl_base_tmp=\$opal_dl_${opal_dl_winner}_ADD_LIBS" + for opal_dl_base_token in $opal_dl_base_tmp; do + case $opal_dl_base_token in + -l*) opal_dl_base_found_l=1 ;; + esac + done + if test $opal_dl_base_found_l -eq 1; then : + eval "opal_dl_base_tmp=\$opal_dl_${opal_dl_winner}_ADD_LDFLAGS" + for opal_dl_base_token in $opal_dl_base_tmp; do + case $opal_dl_base_token in + -L*) + opal_dl_base_dir=`echo $opal_dl_base_token | cut -c3-` + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$opal_dl_base_dir + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Adding to LD_LIBRARY_PATH: $opal_dl_base_dir" >&5 +$as_echo "$as_me: WARNING: Adding to LD_LIBRARY_PATH: $opal_dl_base_dir" >&2;} + ;; + esac done fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -147032,127 +144989,64 @@ done - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:$component can compile" >&5 -$as_echo_n "checking if MCA component if:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_if" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_if" ; then - if test "$DIRECT_if" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - fi - fi - done - fi - MCA_opal_if_ALL_COMPONENTS="$all_components" - MCA_opal_if_STATIC_COMPONENTS="$static_components" - MCA_opal_if_DSO_COMPONENTS="$dso_components" - MCA_opal_if_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_opal_if_ALL_SUBDIRS= - for item in $all_components ; do - MCA_opal_if_ALL_SUBDIRS="$MCA_opal_if_ALL_SUBDIRS mca/if/$item" - done +cat >>confdefs.h <<_ACEOF +#define OPAL_HAVE_DL_SUPPORT $OPAL_HAVE_DL_SUPPORT +_ACEOF - MCA_opal_if_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_opal_if_STATIC_SUBDIRS="$MCA_opal_if_STATIC_SUBDIRS mca/if/$item" - done + MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS event" + MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/event" + MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_event_ALL_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_event_DSO_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_event_STATIC_SUBDIRS)" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/event/libmca_event.la" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_event_STATIC_LTLIBS)" + opal_event_base_include= - MCA_opal_if_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_opal_if_DSO_SUBDIRS="$MCA_opal_if_DSO_SUBDIRS mca/if/$item" - done +# Check whether --with-libevent was given. +if test "${with_libevent+set}" = set; then : + withval=$with_libevent; +fi - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "if" != "common"; then - cat > $outfile <&5 +$as_echo "$as_me: WARNING: It is not possible to configure Open MPI --without-libevent" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +fi + if test "$with_libevent" = "yes"; then : + with_libevent= +fi -`cat $outfile.extern` -const mca_base_component_t *mca_if_base_static_components[] = { -`cat $outfile.struct` - NULL -}; +# Check whether --with-libevent-libdir was given. +if test "${with_libevent_libdir+set}" = set; then : + withval=$with_libevent_libdir; +fi -#if defined(c_plusplus) || defined(__cplusplus) -} -#endif -EOF - # Only replace the header file if a) it doesn't previously - # exist, or b) the contents are different. Do this to not - # trigger recompilation of certain .c files just because the - # timestamp changed on $outfile_real (similar to the way AC - # handles AC_CONFIG_HEADER files). - diff $outfile $outfile_real > /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern + # Make sure the user didn't specify --with-libevent=internal and + # --with-libevent-libdir=whatever (because you can only specify + # --with-libevent-libdir when external libevent is being used). + if test "$with_libevent" = "internal" && test -n "$with_libevent_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Both --with-libevent=internal and --with-libevent-libdir=DIR" >&5 +$as_echo "$as_me: WARNING: Both --with-libevent=internal and --with-libevent-libdir=DIR" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: were specified, which does not make sense." >&5 +$as_echo "$as_me: WARNING: were specified, which does not make sense." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +fi - unset all_components static_components dso_components outfile outfile_real - MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS installdirs" - MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/installdirs" - MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_installdirs_ALL_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_installdirs_DSO_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_installdirs_STATIC_SUBDIRS)" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/installdirs/libmca_installdirs.la" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_installdirs_STATIC_LTLIBS)" + # configure all the components - opal_show_subsubtitle "Configuring MCA framework installdirs" + opal_show_subsubtitle "Configuring MCA framework event" @@ -147167,11 +145061,11 @@ # exists. Need to do this for VPATH builds, because the directory # may not exist yet. For the "common" type, it's not really a # component, so it doesn't have a base. - outdir=opal/mca/installdirs/base + outdir=opal/mca/event/base as_dir=$outdir; as_fn_mkdir_p # emit Makefile rule - ac_config_files="$ac_config_files opal/mca/installdirs/Makefile" + ac_config_files="$ac_config_files opal/mca/event/Makefile" # remove any previously generated #include files @@ -147181,14 +145075,14 @@ touch $outfile.struct $outfile.extern # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework installdirs" >&5 -$as_echo_n "checking for no configure components in framework installdirs... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework event" >&5 +$as_echo_n "checking for no configure components in framework event... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework installdirs" >&5 -$as_echo_n "checking for m4 configure components in framework installdirs... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: config, env" >&5 -$as_echo "config, env" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework event" >&5 +$as_echo_n "checking for m4 configure components in framework event... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: external, libevent2022" >&5 +$as_echo "external, libevent2022" >&6; } # If there are components in the no configure list, but we're # doing one of the "special" selection logics, abort with a @@ -147211,13 +145105,13 @@ components_last_result=0 - opal_show_subsubsubtitle "MCA component installdirs:env (m4 configuration macro, priority 10)" + opal_show_subsubsubtitle "MCA component event:external (m4 configuration macro, priority 90)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/installdirs/env" + component_path="$srcdir/opal/mca/event/external" want_component=0 # build if: @@ -147249,8 +145143,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_installdirs" ; then - if test "$DIRECT_installdirs" = "env" ; then + if test ! -z "$DIRECT_event" ; then + if test "$DIRECT_event" = "external" ; then want_component=1 else want_component=0 @@ -147259,10 +145153,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_installdirs" = "1"; then : + if test "$DISABLE_event" = "1"; then : want_component=0 fi - if test "$DISABLE_installdirs_env" = "1"; then : + if test "$DISABLE_event_external" = "1"; then : want_component=0 fi @@ -147275,8 +145169,8 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component installdirs:env compile mode" >&5 -$as_echo_n "checking for MCA component installdirs:env compile mode... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component event:external compile mode" >&5 +$as_echo_n "checking for MCA component event:external compile mode... " >&6; } compile_mode="static" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 $as_echo "$compile_mode" >&6; } @@ -147284,80 +145178,8 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/installdirs/env/Makefile" - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/installdirs/env/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components env" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components env" - else - if test "installdirs" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/installdirs/env/lib${OPAL_LIB_PREFIX}mca_installdirs_env.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/installdirs/env/libmca_installdirs_env.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_installdirs_env_component;" >> $outfile.extern - echo " &mca_installdirs_env_component, " >> $outfile.struct - static_components="$static_components env" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component installdirs:env can compile" >&5 -$as_echo_n "checking if MCA component installdirs:env can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_installdirs" = "env" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_installdirs_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** installdirs component env was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_installdirs" = "env" ; then -as_fn_error $? "*** installdirs component env was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + ac_config_files="$ac_config_files opal/mca/event/external/Makefile" - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$installdirs_env_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -147370,7 +145192,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_event_external_CPPFLAGS_save opal_event_external_CFLAGS_save opal_event_external_LDFLAGS_save opal_event_external_LIBS_save opal_event_dir opal_event_summary_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -147389,7 +145211,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_event_external_CPPFLAGS_save opal_event_external_CFLAGS_save opal_event_external_LDFLAGS_save opal_event_external_LIBS_save opal_event_dir opal_event_summary_msg\"" eval $opal_str unset opal_str @@ -147397,130 +145219,160 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $installdirs_env_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + opal_event_summary_msg="internal" + + # Check the value of $with_libevent_libdir. This macro safely + # handles "yes", "no", blank, and directory name values. + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-libevent-libdir value" >&5 +$as_echo_n "checking --with-libevent-libdir value... " >&6; } + if test "$with_libevent_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-libevent-libdir)" >&5 +$as_echo "simple no (specified --without-libevent-libdir)" >&6; } else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + if test "$with_libevent_libdir" = "yes" || test "x$with_libevent_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_libevent_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_libevent_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_libevent_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_libevent_libdir/libevent.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_libevent_libdir/libevent.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_libevent_libdir/libevent.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_libevent_libdir)" >&5 +$as_echo "sanity check ok ($with_libevent_libdir)" >&6; } + fi + + fi - done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +fi -else + # Did the user want us to check for libevent in a specific location? + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for external libevent in" >&5 +$as_echo_n "checking for external libevent in... " >&6; } + if test -n "$with_libevent" && \ + test "$with_libevent" != "external" && \ + test "$with_libevent" != "internal" && \ + test "$with_libevent" != "yes" && \ + test "$with_libevent" != "no"; then : + opal_event_dir=$with_libevent + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_event_dir" >&5 +$as_echo "$opal_event_dir" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-libevent value" >&5 +$as_echo_n "checking --with-libevent value... " >&6; } + if test "$opal_event_dir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-libevent)" >&5 +$as_echo "simple no (specified --without-libevent)" >&6; } +else + if test "$opal_event_dir" = "yes" || test "x$opal_event_dir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$opal_event_dir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $opal_event_dir not found" >&5 +$as_echo "$as_me: WARNING: Directory $opal_event_dir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $opal_event_dir/include/event2/event.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $opal_event_dir/include/event2/event.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $opal_event_dir/include/event2/event.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($opal_event_dir)" >&5 +$as_echo "sanity check ok ($opal_event_dir)" >&6; } +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +fi - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +fi - for arg in $installdirs_env_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + if test -z "$with_libevent_libdir" || test "$with_libevent_libdir" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $with_libevent/lib64" >&5 +$as_echo_n "checking for $with_libevent/lib64... " >&6; } + if test -d "$with_libevent/lib64"; then : + opal_event_libdir_found=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 +$as_echo "found" >&6; } +else + opal_event_libdir_found=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } +fi + if test "$opal_event_libdir_found" != "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $with_libevent/lib" >&5 +$as_echo_n "checking for $with_libevent/lib... " >&6; } + if test -d "$with_libevent/lib"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 +$as_echo "found" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Library directories were not found:" >&5 +$as_echo "$as_me: WARNING: Library directories were not found:" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $with_libevent/lib64" >&5 +$as_echo "$as_me: WARNING: $with_libevent/lib64" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $with_libevent/lib" >&5 +$as_echo "$as_me: WARNING: $with_libevent/lib" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Please use --with-libevent-libdir to identify it." >&5 +$as_echo "$as_me: WARNING: Please use --with-libevent-libdir to identify it." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +fi fi - done fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 +$as_echo "(default search paths)" >&6; } fi + if test ! -z "$with_libevent_libdir" && test "$with_libevent_libdir" != "yes"; then : + opal_event_libdir="$with_libevent_libdir" fi - done + if test "$with_libevent" != "internal"; then : + opal_event_external_CPPFLAGS_save=$CPPFLAGS + opal_event_external_CFLAGS_save=$CFLAGS + opal_event_external_LDFLAGS_save=$LDFLAGS + opal_event_external_LIBS_save=$LIBS - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + opal_check_package_opal_event_external_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_opal_event_external_save_LDFLAGS="$LDFLAGS" + opal_check_package_opal_event_external_save_LIBS="$LIBS" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + opal_check_package_opal_event_external_orig_CPPFLAGS="$opal_event_external_CPPFLAGS" + opal_check_package_opal_event_external_orig_LDFLAGS="$opal_event_external_LDFLAGS" + opal_check_package_opal_event_external_orig_LIBS="$opal_event_external_LIBS" -fi - if test "$installdirs_env_WRAPPER_EXTRA_LIBS" = ""; then : + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -147533,7 +145385,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -147552,7 +145404,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -147560,48 +145412,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $installdirs_env_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_event2_event_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $opal_event_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in event2/event.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "event2/event.h" "ac_cv_header_event2_event_h" "$ac_includes_default" +if test "x$ac_cv_header_event2_event_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_EVENT2_EVENT_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_event2_event_h fi fi - done + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + opal_event_external_CPPFLAGS="$opal_event_external_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in event2/event.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "event2/event.h" "ac_cv_header_event2_event_h" "$ac_includes_default" +if test "x$ac_cv_header_event2_event_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_EVENT2_EVENT_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +done - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$opal_check_package_header_happy" = "yes"; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering -else + # see comment above + unset ac_cv_search_event_config_new + opal_check_package_lib_happy="no" + if test "$opal_event_libdir" != ""; then : + # libdir was specified - search only there + opal_event_external_LDFLAGS="$opal_event_external_LDFLAGS -L$opal_event_libdir" + LDFLAGS="$LDFLAGS -L$opal_event_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 +$as_echo_n "checking for library containing event_config_new... " >&6; } +if ${ac_cv_search_event_config_new+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char event_config_new (); +int +main () +{ +return event_config_new (); + ; + return 0; +} +_ACEOF +for ac_lib in '' event_core; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_event_config_new=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_event_config_new+:} false; then : + break +fi +done +if ${ac_cv_search_event_config_new+:} false; then : + +else + ac_cv_search_event_config_new=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 +$as_echo "$ac_cv_search_event_config_new" >&6; } +ac_res=$ac_cv_search_event_config_new +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" + opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" + unset ac_cv_search_event_config_new +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_event_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 +$as_echo_n "checking for library containing event_config_new... " >&6; } +if ${ac_cv_search_event_config_new+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char event_config_new (); +int +main () +{ +return event_config_new (); + ; + return 0; +} +_ACEOF +for ac_lib in '' event_core; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_event_config_new=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_event_config_new+:} false; then : + break +fi +done +if ${ac_cv_search_event_config_new+:} false; then : + +else + ac_cv_search_event_config_new=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 +$as_echo "$ac_cv_search_event_config_new" >&6; } +ac_res=$ac_cv_search_event_config_new +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" + opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" + unset ac_cv_search_event_config_new +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_event_external_LDFLAGS="$opal_event_external_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 +$as_echo_n "checking for library containing event_config_new... " >&6; } +if ${ac_cv_search_event_config_new+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char event_config_new (); +int +main () +{ +return event_config_new (); + ; + return 0; +} +_ACEOF +for ac_lib in '' event_core; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_event_config_new=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_event_config_new+:} false; then : + break +fi +done +if ${ac_cv_search_event_config_new+:} false; then : + +else + ac_cv_search_event_config_new=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 +$as_echo "$ac_cv_search_event_config_new" >&6; } +ac_res=$ac_cv_search_event_config_new +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" + opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" + unset ac_cv_search_event_config_new +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_event_external_LDFLAGS="$opal_event_external_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 +$as_echo_n "checking for library containing event_config_new... " >&6; } +if ${ac_cv_search_event_config_new+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char event_config_new (); +int +main () +{ +return event_config_new (); + ; + return 0; +} +_ACEOF +for ac_lib in '' event_core; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_event_config_new=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_event_config_new+:} false; then : + break +fi +done +if ${ac_cv_search_event_config_new+:} false; then : + +else + ac_cv_search_event_config_new=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 +$as_echo "$ac_cv_search_event_config_new" >&6; } +ac_res=$ac_cv_search_event_config_new +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" + opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" + unset ac_cv_search_event_config_new +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -147614,7 +145775,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -147633,66 +145794,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $installdirs_env_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$installdirs_env_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -147705,7 +145816,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -147724,7 +145835,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -147732,481 +145843,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $installdirs_env_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libevent_core requires libnl v1 or v3" >&5 +$as_echo_n "checking if libevent_core requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void event_config_new (void); +int main(int argc, char *argv[]) { + event_config_new (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:145870: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -levent_core $LIBS $opal_event_external_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -levent_core $LIBS $opal_event_external_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:145877: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring installdirs_env_WRAPPER_EXTRA_CPPFLAGS ($installdirs_env_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring installdirs_env_WRAPPER_EXTRA_CPPFLAGS ($installdirs_env_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component installdirs:env can compile" >&5 -$as_echo_n "checking if MCA component installdirs:env can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_installdirs" = "env" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"env\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"env\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_installdirs" ; then - if test "$DIRECT_installdirs" = "env" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"env\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"env\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components env" + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_installdirs_env_DSO=1 else - BUILD_opal_installdirs_env_DSO=0 -fi - if test "$BUILD_opal_installdirs_env_DSO" = "1"; then - MCA_BUILD_opal_installdirs_env_DSO_TRUE= - MCA_BUILD_opal_installdirs_env_DSO_FALSE='#' -else - MCA_BUILD_opal_installdirs_env_DSO_TRUE='#' - MCA_BUILD_opal_installdirs_env_DSO_FALSE= -fi - + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib event_core" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib event_core" >&2;} - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 fi - unset compile_mode - - - - - - opal_show_subsubsubtitle "MCA component installdirs:config (m4 configuration macro, priority 0)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - component_path="$srcdir/opal/mca/installdirs/config" - want_component=0 + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libevent_core links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libevent_core links to both libnl and libnl-3." >&2;} - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_installdirs" ; then - if test "$DIRECT_installdirs" = "config" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libevent_core (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libevent_core (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libevent_core." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libevent_core." >&2;} - # if we were explicitly disabled, don't build :) - if test "$DISABLE_installdirs" = "1"; then : - want_component=0 -fi - if test "$DISABLE_installdirs_config" = "1"; then : - want_component=0 + libnl_sane=0 fi - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas event_core requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas event_core requires libnl" >&2;} - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libevent_core (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libevent_core (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libevent_core." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libevent_core." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component installdirs:config compile mode" >&5 -$as_echo_n "checking for MCA component installdirs:config compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs event_core" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - # try to configure the component +# Go through each item in the variable and only keep the unique ones - ac_config_files="$ac_config_files opal/mca/installdirs/config/Makefile opal/mca/installdirs/config/install_dirs.h" +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - if test "$should_build" = "1"; then : + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/installdirs/config/post_configure.sh" + opal_done="`expr $opal_i \>= $opal_count`" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components config" + # Increment the counter - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components config" - else - if test "installdirs" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/installdirs/config/lib${OPAL_LIB_PREFIX}mca_installdirs_config.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/installdirs/config/libmca_installdirs_config.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_installdirs_config_component;" >> $outfile.extern - echo " &mca_installdirs_config_component, " >> $outfile.struct - static_components="$static_components config" - fi + opal_i="`expr $opal_i + 1`" + done - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component installdirs:config can compile" >&5 -$as_echo_n "checking if MCA component installdirs:config can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # If we didn't find the token, add it to the "array" - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_installdirs" = "config" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_installdirs_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** installdirs component config was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_installdirs" = "config" ; then -as_fn_error $? "*** installdirs component config was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi + opal_i="`expr $opal_i - 1`" fi +done - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$installdirs_config_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - +# Take all the items in the "array" and assemble them back into a +# single variable - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +# Done; do the assignment - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up - for arg in $installdirs_config_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libevent_core requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libevent_core requires libnl-3" >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libevent_core (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libevent_core (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libevent_core." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libevent_core." >&2;} - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs event_core" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs -else +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # Check the ending condition - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - for arg in $installdirs_config_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval -fi - if test "$installdirs_config_WRAPPER_EXTRA_LIBS" = ""; then : + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Clean up - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - for arg in $installdirs_config_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + opal_libnl_sane=$libnl_sane # Unwind the index @@ -148230,65 +146136,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $installdirs_config_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -148311,583 +146162,753 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - fi +fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$installdirs_config_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_event_config_new" != "no" && + test "$ac_cv_search_event_config_new" != "none required"; then : + opal_event_external_LIBS="$ac_cv_search_event_config_new -levent_pthreads" +else + opal_event_external_LIBS="-levent_pthreads" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi +else + opal_check_package_happy="no" +fi +else - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # see comment above + unset ac_cv_search_event_config_new + opal_check_package_lib_happy="no" + if test "$opal_event_libdir" != ""; then : + # libdir was specified - search only there + opal_event_external_LDFLAGS="$opal_event_external_LDFLAGS -L$opal_event_libdir" + LDFLAGS="$LDFLAGS -L$opal_event_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 +$as_echo_n "checking for library containing event_config_new... " >&6; } +if ${ac_cv_search_event_config_new+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - for arg in $installdirs_config_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char event_config_new (); +int +main () +{ +return event_config_new (); + ; + return 0; +} +_ACEOF +for ac_lib in '' event_core; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_event_config_new=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_event_config_new+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg +done +if ${ac_cv_search_event_config_new+:} false; then : + else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + ac_cv_search_event_config_new=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 +$as_echo "$ac_cv_search_event_config_new" >&6; } +ac_res=$ac_cv_search_event_config_new +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" + opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" + unset ac_cv_search_event_config_new fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring installdirs_config_WRAPPER_EXTRA_CPPFLAGS ($installdirs_config_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring installdirs_config_WRAPPER_EXTRA_CPPFLAGS ($installdirs_config_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_event_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 +$as_echo_n "checking for library containing event_config_new... " >&6; } +if ${ac_cv_search_event_config_new+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char event_config_new (); +int +main () +{ +return event_config_new (); + ; + return 0; +} +_ACEOF +for ac_lib in '' event_core; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_event_config_new=$ac_res fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_event_config_new+:} false; then : + break fi +done +if ${ac_cv_search_event_config_new+:} false; then : else + ac_cv_search_event_config_new=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 +$as_echo "$ac_cv_search_event_config_new" >&6; } +ac_res=$ac_cv_search_event_config_new +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component installdirs:config can compile" >&5 -$as_echo_n "checking if MCA component installdirs:config can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_installdirs" = "config" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"config\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"config\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_installdirs" ; then - if test "$DIRECT_installdirs" = "config" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"config\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"config\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components config" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" + opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" + unset ac_cv_search_event_config_new +fi fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_event_external_LDFLAGS="$opal_event_external_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 +$as_echo_n "checking for library containing event_config_new... " >&6; } +if ${ac_cv_search_event_config_new+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char event_config_new (); +int +main () +{ +return event_config_new (); + ; + return 0; +} +_ACEOF +for ac_lib in '' event_core; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_event_config_new=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_event_config_new+:} false; then : + break +fi +done +if ${ac_cv_search_event_config_new+:} false; then : - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_installdirs_config_DSO=1 else - BUILD_opal_installdirs_config_DSO=0 + ac_cv_search_event_config_new=no fi - if test "$BUILD_opal_installdirs_config_DSO" = "1"; then - MCA_BUILD_opal_installdirs_config_DSO_TRUE= - MCA_BUILD_opal_installdirs_config_DSO_FALSE='#' -else - MCA_BUILD_opal_installdirs_config_DSO_TRUE='#' - MCA_BUILD_opal_installdirs_config_DSO_FALSE= +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - - - if test "$should_build" = "1"; then : - components_last_result=1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 +$as_echo "$ac_cv_search_event_config_new" >&6; } +ac_res=$ac_cv_search_event_config_new +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - components_last_result=0 + opal_check_package_lib_happy="no" fi - unset compile_mode - - + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" + opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" + unset ac_cv_search_event_config_new +fi +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_event_external_LDFLAGS="$opal_event_external_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 +$as_echo_n "checking for library containing event_config_new... " >&6; } +if ${ac_cv_search_event_config_new+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char event_config_new (); +int +main () +{ +return event_config_new (); + ; + return 0; +} +_ACEOF +for ac_lib in '' event_core; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_event_config_new=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_event_config_new+:} false; then : + break +fi +done +if ${ac_cv_search_event_config_new+:} false; then : - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) +else + ac_cv_search_event_config_new=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 +$as_echo "$ac_cv_search_event_config_new" >&6; } +ac_res=$ac_cv_search_event_config_new +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" + opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" + unset ac_cv_search_event_config_new +fi +fi +fi +fi - MCA_opal_installdirs_ALL_COMPONENTS="$all_components" - MCA_opal_installdirs_STATIC_COMPONENTS="$static_components" - MCA_opal_installdirs_DSO_COMPONENTS="$dso_components" - MCA_opal_installdirs_STATIC_LTLIBS="$static_ltlibs" + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_libnl_sane; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + eval $opal_str + unset opal_str - MCA_opal_installdirs_ALL_SUBDIRS= - for item in $all_components ; do - MCA_opal_installdirs_ALL_SUBDIRS="$MCA_opal_installdirs_ALL_SUBDIRS mca/installdirs/$item" - done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + opal_libnl_sane=1 + case $host in + *linux*) - MCA_opal_installdirs_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_opal_installdirs_STATIC_SUBDIRS="$MCA_opal_installdirs_STATIC_SUBDIRS mca/installdirs/$item" - done + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - MCA_opal_installdirs_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_opal_installdirs_DSO_SUBDIRS="$MCA_opal_installdirs_DSO_SUBDIRS mca/installdirs/$item" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "installdirs" != "common"; then - cat > $outfile <&5 +$as_echo_n "checking if libevent_core requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void event_config_new (void); +int main(int argc, char *argv[]) { + event_config_new (); + return 0; } -#endif - EOF - # Only replace the header file if a) it doesn't previously - # exist, or b) the contents are different. Do this to not - # trigger recompilation of certain .c files just because the - # timestamp changed on $outfile_real (similar to the way AC - # handles AC_CONFIG_HEADER files). - diff $outfile $outfile_real > /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - unset all_components static_components dso_components outfile outfile_real + this_requires_v1=0 + this_requires_v3=0 + result_msg= - MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS memchecker" - MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/memchecker" - MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_memchecker_ALL_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_memchecker_DSO_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_memchecker_STATIC_SUBDIRS)" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/memchecker/libmca_memchecker.la" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_memchecker_STATIC_LTLIBS)" +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:146595: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -levent_core $LIBS $opal_event_external_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -levent_core $LIBS $opal_event_external_LIBS 1>&5 2>&1 +opal_status=$? - opal_show_subsubtitle "Pre-configuring the framework memchecker" +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:146602: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib event_core" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib event_core" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-memchecker was specified" >&5 -$as_echo_n "checking if --enable-memchecker was specified... " >&6; } - # Check whether --enable-memchecker was given. -if test "${enable_memchecker+set}" = set; then : - enableval=$enable_memchecker; fi - if test "$enable_memchecker" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - WANT_MEMCHECKER=1 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (adding \"memchecker\" to --enable-mca-no-build list)" >&5 -$as_echo "no (adding \"memchecker\" to --enable-mca-no-build list)" >&6; } - WANT_MEMCHECKER=0 + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # Setting this environment variable causes - # MCA_COMONENT_BUILD_CHECK (in opal_mca.m4, invoked by - # MCA_CONFIGURE_FRAMEWORK, below) to rule that the component - # should not be built. It is effectively the same as adding - # "memchecker" to the --enable-mca-no-build list. - DISABLE_memchecker=1 - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. -cat >>confdefs.h <<_ACEOF -#define OPAL_WANT_MEMCHECKER $WANT_MEMCHECKER -_ACEOF + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libevent_core links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libevent_core links to both libnl and libnl-3." >&2;} - if test "$WANT_MEMCHECKER" = "1"; then - OPAL_WANT_MEMCHECKER_TRUE= - OPAL_WANT_MEMCHECKER_FALSE='#' -else - OPAL_WANT_MEMCHECKER_TRUE='#' - OPAL_WANT_MEMCHECKER_FALSE= -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libevent_core (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libevent_core (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libevent_core." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libevent_core." >&2;} + libnl_sane=0 +fi - # first, compile all the components + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas event_core requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas event_core requires libnl" >&2;} - opal_show_subsubtitle "Configuring MCA framework memchecker" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libevent_core (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libevent_core (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libevent_core." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libevent_core." >&2;} + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs event_core" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=opal/mca/memchecker/base - as_dir=$outdir; as_fn_mkdir_p + # Loop over every token we've seen so far - # emit Makefile rule - ac_config_files="$ac_config_files opal/mca/memchecker/Makefile" + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework memchecker" >&5 -$as_echo_n "checking for no configure components in framework memchecker... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework memchecker" >&5 -$as_echo_n "checking for m4 configure components in framework memchecker... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: valgrind" >&5 -$as_echo "valgrind" >&6; } + # Check the ending condition - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter + opal_i="`expr $opal_i + 1`" + done - # run the configure logic for the no-config components + # If we didn't find the token, add it to the "array" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done - # configure components that use built-in configuration scripts +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 +# Clean up +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi - opal_show_subsubsubtitle "MCA component memchecker:valgrind (m4 configuration macro, priority 10)" +fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libevent_core requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libevent_core requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libevent_core (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libevent_core (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libevent_core." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libevent_core." >&2;} + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs event_core" - component_path="$srcdir/opal/mca/memchecker/valgrind" - want_component=0 +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_memchecker" ; then - if test "$DIRECT_memchecker" = "valgrind" ; then - want_component=1 - else - want_component=0 - fi - fi - fi +# Go through each item in the variable and only keep the unique ones - # if we were explicitly disabled, don't build :) - if test "$DISABLE_memchecker" = "1"; then : - want_component=0 -fi - if test "$DISABLE_memchecker_valgrind" = "1"; then : - want_component=0 -fi +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi + # Loop over every token we've seen so far - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component memchecker:valgrind compile mode" >&5 -$as_echo_n "checking for MCA component memchecker:valgrind compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # try to configure the component + # Check the ending condition - ac_config_files="$ac_config_files opal/mca/memchecker/valgrind/Makefile" + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter + opal_i="`expr $opal_i + 1`" + done + # If we didn't find the token, add it to the "array" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_memchecker_valgrind_save_CPPFLAGS opal_memchecker_valgrind_happy opal_memchecker_valgrind_CPPFLAGS; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Take all the items in the "array" and assemble them back into a +# single variable - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_memchecker_valgrind_save_CPPFLAGS opal_memchecker_valgrind_happy opal_memchecker_valgrind_CPPFLAGS\"" - eval $opal_str - unset opal_str + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval -# Check whether --with-valgrind was given. -if test "${with_valgrind+set}" = set; then : - withval=$with_valgrind; +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-valgrind value" >&5 -$as_echo_n "checking --with-valgrind value... " >&6; } - if test "$with_valgrind" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-valgrind)" >&5 -$as_echo "simple no (specified --without-valgrind)" >&6; } -else - if test "$with_valgrind" = "yes" || test "x$with_valgrind" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_valgrind"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_valgrind not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_valgrind not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_valgrind/include/valgrind/valgrind.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_valgrind/include/valgrind/valgrind.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_valgrind/include/valgrind/valgrind.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_valgrind)" >&5 -$as_echo "sanity check ok ($with_valgrind)" >&6; } + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -fi + rm -f conftest conftest_c.$ac_ext + opal_libnl_sane=$libnl_sane -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -fi + ;; + esac - opal_memchecker_valgrind_CPPFLAGS= - opal_memchecker_valgrind_save_CPPFLAGS="$CPPFLAGS" - opal_memchecker_valgrind_happy=no - if test "$with_valgrind" != "no"; then : - if test -n "$with_valgrind" && test "$with_valgrind" != "yes"; then : - opal_memchecker_valgrind_CPPFLAGS="-I$with_valgrind/include" - # We need this -I to stay in CPPFLAGS when we're done - CPPFLAGS="$CPPFLAGS -I$with_valgrind/include" - opal_memchecker_valgrind_save_CPPFLAGS=$CPPFLAGS -fi - for ac_header in valgrind/valgrind.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "valgrind/valgrind.h" "ac_cv_header_valgrind_valgrind_h" "$ac_includes_default" -if test "x$ac_cv_header_valgrind_valgrind_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_VALGRIND_VALGRIND_H 1 -_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND_CHECK_MEM_IS_ADDRESSABLE" >&5 -$as_echo_n "checking for VALGRIND_CHECK_MEM_IS_ADDRESSABLE... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + opal_check_package_libnl_check_ok=$opal_libnl_sane -#include "valgrind/memcheck.h" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -int -main () -{ -char buffer = 0x0f; - VALGRIND_CHECK_MEM_IS_ADDRESSABLE(&buffer, sizeof(buffer)); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_memchecker_valgrind_happy=yes -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need Valgrind version 3.2.0 or later. Can not build component." >&5 -$as_echo "$as_me: WARNING: Need Valgrind version 3.2.0 or later. Can not build component." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cross-compiling; assume yes...?" >&5 -$as_echo "cross-compiling; assume yes...?" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OMPI will fail to compile if you do not have Valgrind version 3.2.0 or later" >&5 -$as_echo "$as_me: WARNING: OMPI will fail to compile if you do not have Valgrind version 3.2.0 or later" >&2;} - opal_memchecker_valgrind_happy=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext, + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: valgrind.h not found" >&5 -$as_echo "$as_me: WARNING: valgrind.h not found" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot compile this component" >&5 -$as_echo "$as_me: WARNING: Cannot compile this component" >&2;} -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - CPPFLAGS="$opal_memchecker_valgrind_save_CPPFLAGS" - # If we specifically requested this component and can't build it, error - if test "$with_valgrind" != "no" && test -n "$with_valgrind" && test "$opal_memchecker_valgrind_happy" != "yes"; then : - as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test "$opal_memchecker_valgrind_happy" = "yes"; then : - should_build=$should_build + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_event_config_new" != "no" && + test "$ac_cv_search_event_config_new" != "none required"; then : + opal_event_external_LIBS="$ac_cv_search_event_config_new -levent_pthreads" else - should_build=0 + opal_event_external_LIBS="-levent_pthreads" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" fi +fi + unset opal_check_package_header_happy # Unwind the index @@ -148911,53 +146932,448 @@ done - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + if test "$opal_check_package_happy" = "yes"; then : + opal_event_external_support=yes +else + opal_event_external_CPPFLAGS="$opal_check_package_opal_event_external_orig_CPPFLAGS" + opal_event_external_LDFLAGS="$opal_check_package_opal_event_external_orig_LDFLAGS" + opal_event_external_LIBS="$opal_check_package_opal_event_external_orig_LIBS" + opal_event_external_support=no +fi + CPPFLAGS="$opal_check_package_opal_event_external_save_CPPFLAGS" + LDFLAGS="$opal_check_package_opal_event_external_save_LDFLAGS" + LIBS="$opal_check_package_opal_event_external_save_LIBS" - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/memchecker/valgrind/post_configure.sh" + # Check to see if the above check failed because it conflicted with LSF's libevent.so + # This can happen if LSF's library is in the LDFLAGS envar or default search + # path. The 'event_getcode4name' function is only defined in LSF's libevent.so and not + # in Libevent's libevent.so + if test "$opal_event_external_support" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for event_getcode4name in -levent" >&5 +$as_echo_n "checking for event_getcode4name in -levent... " >&6; } +if ${ac_cv_lib_event_event_getcode4name+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-levent $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components valgrind" +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char event_getcode4name (); +int +main () +{ +return event_getcode4name (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_event_event_getcode4name=yes +else + ac_cv_lib_event_event_getcode4name=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_event_event_getcode4name" >&5 +$as_echo "$ac_cv_lib_event_event_getcode4name" >&6; } +if test "x$ac_cv_lib_event_event_getcode4name" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ===================================================================" >&5 +$as_echo "$as_me: WARNING: ===================================================================" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Possible conflicting libevent.so libraries detected on the system." >&5 +$as_echo "$as_me: WARNING: Possible conflicting libevent.so libraries detected on the system." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: " >&5 +$as_echo "$as_me: WARNING: " >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LSF provides a libevent.so that is not from Libevent in its" >&5 +$as_echo "$as_me: WARNING: LSF provides a libevent.so that is not from Libevent in its" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: library path. It is possible that you have installed Libevent" >&5 +$as_echo "$as_me: WARNING: library path. It is possible that you have installed Libevent" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the system, but the linker is picking up the wrong version." >&5 +$as_echo "$as_me: WARNING: on the system, but the linker is picking up the wrong version." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: " >&5 +$as_echo "$as_me: WARNING: " >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Configure may continue and attempt to use the 'internal' libevent" >&5 +$as_echo "$as_me: WARNING: Configure may continue and attempt to use the 'internal' libevent" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: instead of the 'external' libevent if you did not explicitly request" >&5 +$as_echo "$as_me: WARNING: instead of the 'external' libevent if you did not explicitly request" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: the 'external' component." >&5 +$as_echo "$as_me: WARNING: the 'external' component." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: " >&5 +$as_echo "$as_me: WARNING: " >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: If your intention was to use the 'external' libevent then you need" >&5 +$as_echo "$as_me: WARNING: If your intention was to use the 'external' libevent then you need" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: to address this linker path ordering issue. One way to do so is" >&5 +$as_echo "$as_me: WARNING: to address this linker path ordering issue. One way to do so is" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: to make sure the libevent system library path occurs before the" >&5 +$as_echo "$as_me: WARNING: to make sure the libevent system library path occurs before the" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LSF library path." >&5 +$as_echo "$as_me: WARNING: LSF library path." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ===================================================================" >&5 +$as_echo "$as_me: WARNING: ===================================================================" >&2;} + opal_event_external_support=no - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components valgrind" - else - if test "memchecker" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/memchecker/valgrind/lib${OPAL_LIB_PREFIX}mca_memchecker_valgrind.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/memchecker/valgrind/libmca_memchecker_valgrind.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_memchecker_valgrind_component;" >> $outfile.extern - echo " &mca_memchecker_valgrind_component, " >> $outfile.struct - static_components="$static_components valgrind" +fi + + +fi + + if test "$opal_event_external_support" = "yes"; then : + LDFLAGS="$opal_event_external_LDFLAGS $LDFLAGS" + CPPFLAGS="$opal_event_external_CPPFLAGS $CPPFLAGS" +fi + + if test "$opal_event_external_support" = "yes"; then : + # Ensure that this libevent has the symbol + # "evthread_set_lock_callbacks", which will only exist if + # libevent was configured with thread support. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for evthread_set_lock_callbacks in -levent_core" >&5 +$as_echo_n "checking for evthread_set_lock_callbacks in -levent_core... " >&6; } +if ${ac_cv_lib_event_core_evthread_set_lock_callbacks+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-levent_core $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char evthread_set_lock_callbacks (); +int +main () +{ +return evthread_set_lock_callbacks (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_event_core_evthread_set_lock_callbacks=yes +else + ac_cv_lib_event_core_evthread_set_lock_callbacks=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_event_core_evthread_set_lock_callbacks" >&5 +$as_echo "$ac_cv_lib_event_core_evthread_set_lock_callbacks" >&6; } +if test "x$ac_cv_lib_event_core_evthread_set_lock_callbacks" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBEVENT_CORE 1 +_ACEOF + + LIBS="-levent_core $LIBS" + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: External libevent does not have thread support" >&5 +$as_echo "$as_me: WARNING: External libevent does not have thread support" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI requires libevent to be compiled with" >&5 +$as_echo "$as_me: WARNING: Open MPI requires libevent to be compiled with" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: thread support enabled" >&5 +$as_echo "$as_me: WARNING: thread support enabled" >&2;} + opal_event_external_support=no +fi + +fi + + if test "$opal_event_external_support" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for evthread_use_pthreads in -levent_pthreads" >&5 +$as_echo_n "checking for evthread_use_pthreads in -levent_pthreads... " >&6; } +if ${ac_cv_lib_event_pthreads_evthread_use_pthreads+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-levent_pthreads $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char evthread_use_pthreads (); +int +main () +{ +return evthread_use_pthreads (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_event_pthreads_evthread_use_pthreads=yes +else + ac_cv_lib_event_pthreads_evthread_use_pthreads=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_event_pthreads_evthread_use_pthreads" >&5 +$as_echo "$ac_cv_lib_event_pthreads_evthread_use_pthreads" >&6; } +if test "x$ac_cv_lib_event_pthreads_evthread_use_pthreads" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBEVENT_PTHREADS 1 +_ACEOF + + LIBS="-levent_pthreads $LIBS" + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: External libevent does not have thread support" >&5 +$as_echo "$as_me: WARNING: External libevent does not have thread support" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI requires libevent to be compiled with" >&5 +$as_echo "$as_me: WARNING: Open MPI requires libevent to be compiled with" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: thread support enabled" >&5 +$as_echo "$as_me: WARNING: thread support enabled" >&2;} + opal_event_external_support=no +fi + +fi + + if test "$opal_event_external_support" = "yes"; then : + if test -z "$with_libevent" || test "$with_libevent" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if external libevent version is 2.0.22 or greater" >&5 +$as_echo_n "checking if external libevent version is 2.0.22 or greater... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + +#if defined(_EVENT_NUMERIC_VERSION) && _EVENT_NUMERIC_VERSION < 0x02001600 +#error "libevent API version is less than 0x02001600" +#elif defined(EVENT__NUMERIC_VERSION) && EVENT__NUMERIC_VERSION < 0x02001600 +#error "libevent API version is less than 0x02001600" +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_event_summary_msg="internal (external libevent version is less that internal version 2.0.22)" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: external libevent version is less than internal version (2.0.22)" >&5 +$as_echo "$as_me: WARNING: external libevent version is less than internal version (2.0.22)" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using internal libevent" >&5 +$as_echo "$as_me: WARNING: using internal libevent" >&2;} + opal_event_external_support=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +fi + + CPPFLAGS=$opal_event_external_CPPFLAGS_save + CFLAGS=$opal_event_external_CFLAGS_save + LDFLAGS=$opal_event_external_LDFLAGS_save + LIBS=$opal_event_external_LIBS_save + + + + + + # These flags need to get passed to the wrapper compilers + # (this is unnecessary for the internal/embedded event) + event_external_WRAPPER_EXTRA_CPPFLAGS=$opal_event_external_CPPFLAGS + + # Finally, add some flags to the wrapper compiler if we're + # building with developer headers so that our headers can + # be found. + event_external_WRAPPER_EXTRA_LDFLAGS=$opal_event_external_LDFLAGS + event_external_WRAPPER_EXTRA_LIBS=$opal_event_external_LIBS +fi + +################################################################## + + # Done! + if test "$opal_event_external_support" = "yes"; then : + # If we configured successfully, set + # OPAL_HAVE_WORKING_EVENTOPS to 1 (it's a calculated value + # in the embedded Open MPI libevent, so we can only assume + # what it is in the installed libevent :-\ ). + file=$opal_event_dir/include/libevent/config.h + OPAL_HAVE_WORKING_EVENTOPS=1 + opal_event_summary_msg="external" + should_build=$should_build +else + OPAL_HAVE_WORKING_EVENTOPS=0 + if test "$with_libevent" != internal && test -n "$with_libevent"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: external libevent requested but cannot be built" >&5 +$as_echo "$as_me: WARNING: external libevent requested but cannot be built" >&2;} + as_fn_error $? "Cannot continue." "$LINENO" 5 +fi + should_build=0 +fi + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ompi_summary_section=$(echo Miscellaneous | tr ' ' '_') + ompi_summary_line="Libevent support: $opal_event_summary_msg" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/event/external/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components external" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components external" + else + if test "event" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/event/external/lib${OPAL_LIB_PREFIX}mca_event_external.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/event/external/libmca_event_external.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_event_external_component;" >> $outfile.extern + echo " &mca_event_external_component, " >> $outfile.struct + static_components="$static_components external" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memchecker:valgrind can compile" >&5 -$as_echo_n "checking if MCA component memchecker:valgrind can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component event:external can compile" >&5 +$as_echo_n "checking if MCA component event:external can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_memchecker" = "valgrind" ; then + if test "$DIRECT_event" = "external" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_memchecker_DIRECT_CALL_HEADER=$line" + str="MCA_opal_event_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** memchecker component valgrind was supposed to be direct-called, but +as_fn_error $? "*** event component external was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -148965,8 +147381,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_memchecker" = "valgrind" ; then -as_fn_error $? "*** memchecker component valgrind was supposed to be direct-called, but + if test "$DIRECT_event" = "external" ; then +as_fn_error $? "*** event component external was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -148981,7 +147397,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$memchecker_valgrind_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$event_external_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -149021,7 +147437,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memchecker_valgrind_LDFLAGS; do + for arg in $event_external_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -149102,7 +147518,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memchecker_valgrind_WRAPPER_EXTRA_LDFLAGS; do + for arg in $event_external_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -149144,7 +147560,7 @@ fi - if test "$memchecker_valgrind_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$event_external_WRAPPER_EXTRA_LIBS" = ""; then : @@ -149184,7 +147600,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memchecker_valgrind_LIBS; do + for arg in $event_external_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -149265,7 +147681,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memchecker_valgrind_WRAPPER_EXTRA_LIBS; do + for arg in $event_external_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -149313,7 +147729,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$memchecker_valgrind_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$event_external_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=1 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -149356,7 +147772,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memchecker_valgrind_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $event_external_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -149399,32 +147815,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring memchecker_valgrind_WRAPPER_EXTRA_CPPFLAGS ($memchecker_valgrind_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring memchecker_valgrind_WRAPPER_EXTRA_CPPFLAGS ($memchecker_valgrind_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring event_external_WRAPPER_EXTRA_CPPFLAGS ($event_external_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring event_external_WRAPPER_EXTRA_CPPFLAGS ($event_external_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memchecker:valgrind can compile" >&5 -$as_echo_n "checking if MCA component memchecker:valgrind can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component event:external can compile" >&5 +$as_echo_n "checking if MCA component event:external can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_memchecker" = "valgrind" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"valgrind\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"valgrind\" failed to configure properly" >&2;} + if test "$with_event" = "external" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"external\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"external\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_memchecker" ; then - if test "$DIRECT_memchecker" = "valgrind" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"valgrind\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"valgrind\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_event" ; then + if test "$DIRECT_event" = "external" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"external\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"external\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -149432,23 +147848,44 @@ fi # add component to all component list - all_components="$all_components valgrind" + all_components="$all_components external" fi + # If we won, then do all the rest of the setup + if test "$should_build" = "1"; then : + +cat >>confdefs.h <<_ACEOF +#define EVENT_EXTERNAL_EVENT_VERSION external +_ACEOF + + + # Set this variable so that the framework m4 knows what + # file to include in opal/mca/event/event.h + opal_event_external_basedir=opal/mca/event/external + opal_event_base_include="external/external.h" + + # Add some stuff to CPPFLAGS so that the rest of the source + # tree can be built + CPPFLAGS="$CPPFLAGS $opal_event_external_CPPFLAGS" + LDFLAGS="$LDFLAGS $opal_event_external_LDFLAGS" + LIBS="$LIBS $opal_event_external_LIBS" + +fi + # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_memchecker_valgrind_DSO=1 + BUILD_opal_event_external_DSO=1 else - BUILD_opal_memchecker_valgrind_DSO=0 + BUILD_opal_event_external_DSO=0 fi - if test "$BUILD_opal_memchecker_valgrind_DSO" = "1"; then - MCA_BUILD_opal_memchecker_valgrind_DSO_TRUE= - MCA_BUILD_opal_memchecker_valgrind_DSO_FALSE='#' + if test "$BUILD_opal_event_external_DSO" = "1"; then + MCA_BUILD_opal_event_external_DSO_TRUE= + MCA_BUILD_opal_event_external_DSO_FALSE='#' else - MCA_BUILD_opal_memchecker_valgrind_DSO_TRUE='#' - MCA_BUILD_opal_memchecker_valgrind_DSO_FALSE= + MCA_BUILD_opal_event_external_DSO_TRUE='#' + MCA_BUILD_opal_event_external_DSO_FALSE= fi @@ -149466,346 +147903,13 @@ - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - MCA_opal_memchecker_ALL_COMPONENTS="$all_components" - MCA_opal_memchecker_STATIC_COMPONENTS="$static_components" - MCA_opal_memchecker_DSO_COMPONENTS="$dso_components" - MCA_opal_memchecker_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_opal_memchecker_ALL_SUBDIRS= - for item in $all_components ; do - MCA_opal_memchecker_ALL_SUBDIRS="$MCA_opal_memchecker_ALL_SUBDIRS mca/memchecker/$item" - done - - - - MCA_opal_memchecker_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_opal_memchecker_STATIC_SUBDIRS="$MCA_opal_memchecker_STATIC_SUBDIRS mca/memchecker/$item" - done - - - - MCA_opal_memchecker_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_opal_memchecker_DSO_SUBDIRS="$MCA_opal_memchecker_DSO_SUBDIRS mca/memchecker/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "memchecker" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - - if test "$MCA_opal_memchecker_STATIC_COMPONENTS" != "" || test "$MCA_opal_memchecker_DSO_COMPONENTS" != ""; then : - memchecker_base_found=1 -else - memchecker_base_found=0 -fi - if test $WANT_MEMCHECKER -eq 1 && test $memchecker_base_found -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Memchecker support requested, but no memchecker" >&5 -$as_echo "$as_me: WARNING: Memchecker support requested, but no memchecker" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: components configured successfully. Did you" >&5 -$as_echo "$as_me: WARNING: components configured successfully. Did you" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: forget --with-valgrind?" >&5 -$as_echo "$as_me: WARNING: forget --with-valgrind?" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -fi - - MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS memcpy" - MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/memcpy" - MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_memcpy_ALL_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_memcpy_DSO_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_memcpy_STATIC_SUBDIRS)" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/memcpy/libmca_memcpy.la" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_memcpy_STATIC_LTLIBS)" - - memcpy_base_include= - - # first, compile all the components - - opal_show_subsubtitle "Configuring MCA framework memcpy" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=opal/mca/memcpy/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files opal/mca/memcpy/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework memcpy" >&5 -$as_echo_n "checking for no configure components in framework memcpy... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework memcpy" >&5 -$as_echo_n "checking for m4 configure components in framework memcpy... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - - # configure components that use built-in configuration scripts - - - - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - MCA_opal_memcpy_ALL_COMPONENTS="$all_components" - MCA_opal_memcpy_STATIC_COMPONENTS="$static_components" - MCA_opal_memcpy_DSO_COMPONENTS="$dso_components" - MCA_opal_memcpy_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_opal_memcpy_ALL_SUBDIRS= - for item in $all_components ; do - MCA_opal_memcpy_ALL_SUBDIRS="$MCA_opal_memcpy_ALL_SUBDIRS mca/memcpy/$item" - done - - - - MCA_opal_memcpy_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_opal_memcpy_STATIC_SUBDIRS="$MCA_opal_memcpy_STATIC_SUBDIRS mca/memcpy/$item" - done - - - - MCA_opal_memcpy_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_opal_memcpy_DSO_SUBDIRS="$MCA_opal_memcpy_DSO_SUBDIRS mca/memcpy/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "memcpy" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - - # someone should have set this... - if test "$memcpy_base_include" = "" ; then - memcpy_base_include="base/memcpy_base_default.h" - fi - - -cat >>confdefs.h <<_ACEOF -#define MCA_memcpy_IMPLEMENTATION_HEADER "opal/mca/memcpy/$memcpy_base_include" -_ACEOF - - - MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS memory" - MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/memory" - MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_memory_ALL_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_memory_DSO_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_memory_STATIC_SUBDIRS)" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/memory/libmca_memory.la" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_memory_STATIC_LTLIBS)" - - -# Check whether --with-memory-manager was given. -if test "${with_memory_manager+set}" = set; then : - withval=$with_memory_manager; -fi - - - memory_base_found=0 - memory_base_want=1 - if test "$with_memory_manager" = "no"; then : - memory_base_want=0 -fi - - opal_show_subsubtitle "Configuring MCA framework memory" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=opal/mca/memory/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files opal/mca/memory/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework memory" >&5 -$as_echo_n "checking for no configure components in framework memory... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework memory" >&5 -$as_echo_n "checking for m4 configure components in framework memory... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: malloc_solaris, patcher" >&5 -$as_echo "malloc_solaris, patcher" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - - # configure components that use built-in configuration scripts - - - - - - - best_mca_component_priority=0 - components_looking_for_succeed=$memory_base_want - components_last_result=0 - - - opal_show_subsubsubtitle "MCA component memory:patcher (m4 configuration macro, priority 41)" + opal_show_subsubsubtitle "MCA component event:libevent2022 (m4 configuration macro, priority 80)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/memory/patcher" + component_path="$srcdir/opal/mca/event/libevent2022" want_component=0 # build if: @@ -149837,8 +147941,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_memory" ; then - if test "$DIRECT_memory" = "patcher" ; then + if test ! -z "$DIRECT_event" ; then + if test "$DIRECT_event" = "libevent2022" ; then want_component=1 else want_component=0 @@ -149847,10 +147951,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_memory" = "1"; then : + if test "$DISABLE_event" = "1"; then : want_component=0 fi - if test "$DISABLE_memory_patcher" = "1"; then : + if test "$DISABLE_event_libevent2022" = "1"; then : want_component=0 fi @@ -149863,8 +147967,8 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component memory:patcher compile mode" >&5 -$as_echo_n "checking for MCA component memory:patcher compile mode... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component event:libevent2022 compile mode" >&5 +$as_echo_n "checking for MCA component event:libevent2022 compile mode... " >&6; } compile_mode="static" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 $as_echo "$compile_mode" >&6; } @@ -149872,133 +147976,27 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/memory/patcher/Makefile" - - - for ac_func in __curbrk -do : - ac_fn_c_check_func "$LINENO" "__curbrk" "ac_cv_func___curbrk" -if test "x$ac_cv_func___curbrk" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE___CURBRK 1 -_ACEOF - -fi -done - - - for ac_header in linux/mman.h sys/syscall.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - ac_fn_c_check_decl "$LINENO" "__syscall" "ac_cv_have_decl___syscall" "#include -" -if test "x$ac_cv_have_decl___syscall" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL___SYSCALL $ac_have_decl -_ACEOF - - - for ac_func in __syscall -do : - ac_fn_c_check_func "$LINENO" "__syscall" "ac_cv_func___syscall" -if test "x$ac_cv_func___syscall" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE___SYSCALL 1 -_ACEOF - -fi -done - - - should_build=$should_build - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/memory/patcher/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components patcher" + ac_config_files="$ac_config_files opal/mca/event/libevent2022/Makefile" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components patcher" - else - if test "memory" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/memory/patcher/lib${OPAL_LIB_PREFIX}mca_memory_patcher.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/memory/patcher/libmca_memory_patcher.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_memory_patcher_component;" >> $outfile.extern - echo " &mca_memory_patcher_component, " >> $outfile.struct - static_components="$static_components patcher" - fi + opal_event_libevent2022_basedir="opal/mca/event/libevent2022" - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memory:patcher can compile" >&5 -$as_echo_n "checking if MCA component memory:patcher can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + # We know that the external event component will be configured + # before this one because of its priority. This component is only + # needed if the external component was not successful in selecting + # itself. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if event external component succeeded" >&5 +$as_echo_n "checking if event external component succeeded... " >&6; } + if test "$opal_event_external_support" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: event:external succeeded, so this component will be configured, but then will be skipped" >&5 +$as_echo "$as_me: event:external succeeded, so this component will be configured, but then will be skipped" >&6;} - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_memory" = "patcher" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_memory_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** memory component patcher was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_memory" = "patcher" ; then -as_fn_error $? "*** memory component patcher was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$memory_patcher_WRAPPER_EXTRA_LDFLAGS" = ""; then : + # We define "random" to be "opal_random" so that Libevent will not + # use random(3) internally (and potentially unexpectedly perturb + # values returned by rand(3) to the application). + @@ -150011,7 +148009,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -150030,7 +148028,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $opal_str unset opal_str @@ -150038,187 +148036,129 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memory_patcher_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done +# +# Invoke configure in a specific subdirectory. +# +# $opal_event_libevent2022_basedir/libevent is the directory to invoke in +# $opal_subdir_args 'CPPFLAGS=$CPPFLAGS' is the list of arguments to pass +# is actions to execute upon success +# is actions to execute upon failure +# +subdir_dir="$opal_event_libevent2022_basedir/libevent" +subdir_args=" $opal_subdir_args 'CPPFLAGS=$CPPFLAGS'" +subdir_success="" +subdir_failure="" +# +# Sanity checks +# - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -else + # + # Move into the target directory + # + subdir_parent=`pwd` + cd $subdir_dir + # + # Make a "../" for each directory in $subdir_dir. + # - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + # + # Construct the --cache-file argument + # - for arg in $memory_patcher_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + # + # Invoke the configure script in the subdirectory + # - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - + # + # Go back to the topdir + # + cd $subdir_parent fi - if test "$memory_patcher_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $memory_patcher_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done +# +# Clean up +# # Unwind the index @@ -150242,7 +148182,15 @@ done + { $as_echo "$as_me:${as_lineno-$LINENO}: remember: event:external will be used; this component was configured, but will be skipped" >&5 +$as_echo "$as_me: remember: event:external will be used; this component was configured, but will be skipped" >&6;} + should_build=0 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: event:external failed, so this component will be used" >&5 +$as_echo "$as_me: event:external failed, so this component will be used" >&6;} @@ -150255,7 +148203,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in CFLAGS_save CPPFLAGS_save libevent_file event_args libevent_happy; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -150274,7 +148222,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"CFLAGS_save CPPFLAGS_save libevent_file event_args libevent_happy\"" eval $opal_str unset opal_str @@ -150282,281 +148230,111 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memory_patcher_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + CFLAGS_save="$CFLAGS" + CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS" + CPPFLAGS_save="$CPPFLAGS" + CPPFLAGS="-I$OPAL_TOP_SRCDIR -I$OPAL_TOP_BUILDDIR -I$OPAL_TOP_SRCDIR/opal/include $CPPFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking libevent configuration args" >&5 +$as_echo_n "checking libevent configuration args... " >&6; } + event_args="--disable-dns --disable-http --disable-rpc --disable-openssl --enable-thread-support" + # Check whether --enable-event-rtsig was given. +if test "${enable_event_rtsig+set}" = set; then : + enableval=$enable_event_rtsig; fi + if test "$enable_event_rtsig" = "yes"; then + event_args="$event_args --enable-rtsig" fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$memory_patcher_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=1 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - + # Check whether --enable-event-select was given. +if test "${enable_event_select+set}" = set; then : + enableval=$enable_event_select; +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + if test "$enable_event_select" = "no"; then + event_args="$event_args --disable-select" fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $memory_patcher_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi + # Check whether --enable-event-poll was given. +if test "${enable_event_poll+set}" = set; then : + enableval=$enable_event_poll; fi - done - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$enable_event_poll" = "no"; then + event_args="$event_args --disable-poll" fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring memory_patcher_WRAPPER_EXTRA_CPPFLAGS ($memory_patcher_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring memory_patcher_WRAPPER_EXTRA_CPPFLAGS ($memory_patcher_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi + # Check whether --enable-event-devpoll was given. +if test "${enable_event_devpoll+set}" = set; then : + enableval=$enable_event_devpoll; fi -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memory:patcher can compile" >&5 -$as_echo_n "checking if MCA component memory:patcher can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_memory" = "patcher" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"patcher\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"patcher\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_memory" ; then - if test "$DIRECT_memory" = "patcher" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"patcher\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"patcher\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$enable_event_devpoll" = "no"; then + event_args="$event_args --disable-devpoll" fi - # add component to all component list - all_components="$all_components patcher" + # Check whether --enable-event-kqueue was given. +if test "${enable_event_kqueue+set}" = set; then : + enableval=$enable_event_kqueue; fi + if test "$enable_event_kqueue" = "no"; then + event_args="$event_args --disable-kqueue" + fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_memory_patcher_DSO=1 -else - BUILD_opal_memory_patcher_DSO=0 -fi - if test "$BUILD_opal_memory_patcher_DSO" = "1"; then - MCA_BUILD_opal_memory_patcher_DSO_TRUE= - MCA_BUILD_opal_memory_patcher_DSO_FALSE='#' -else - MCA_BUILD_opal_memory_patcher_DSO_TRUE='#' - MCA_BUILD_opal_memory_patcher_DSO_FALSE= + # Check whether --enable-event-epoll was given. +if test "${enable_event_epoll+set}" = set; then : + enableval=$enable_event_epoll; fi + if test "$enable_event_epoll" = "no"; then + event_args="$event_args --disable-epoll" + fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 + # Check whether --enable-event-evport was given. +if test "${enable_event_evport+set}" = set; then : + enableval=$enable_event_evport; fi - unset compile_mode + if test "$enable_event_evport" = "yes"; then + event_args="$event_args --enable-evport" + else + event_args="$event_args --disable-evport" + fi - if test $components_last_result -eq 1; then : - components_looking_for_succeed=0 + # Check whether --enable-event-signal was given. +if test "${enable_event_signal+set}" = set; then : + enableval=$enable_event_signal; fi - - - opal_show_subsubsubtitle "MCA component memory:malloc_solaris (m4 configuration macro, priority 0)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/opal/mca/memory/malloc_solaris" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_memory" ; then - if test "$DIRECT_memory" = "malloc_solaris" ; then - want_component=1 - else - want_component=0 - fi - fi + if test "$enable_event_signal" = "no"; then + event_args="$event_args --disable-signal" fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_memory" = "1"; then : - want_component=0 -fi - if test "$DISABLE_memory_malloc_solaris" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 + # Check whether --enable-event-debug was given. +if test "${enable_event_debug+set}" = set; then : + enableval=$enable_event_debug; fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component memory:malloc_solaris compile mode" >&5 -$as_echo_n "checking for MCA component memory:malloc_solaris compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + if test "$enable_event_debug" = "yes"; then + event_args="$event_args --enable-debug-mode" + CFLAGS="-DUSE_DEBUG $CFLAGS" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $event_args" >&5 +$as_echo "$event_args" >&6; } - # try to configure the component + # Invoke the embedded configure script. + # We define "random" to be "opal_random" so that Libevent will not + # use random(3) internally (and potentially unexpectedly perturb + # values returned by rand(3) to the application). + CPPFLAGS="$CPPFLAGS -Drandom=opal_random" - ac_config_files="$ac_config_files opal/mca/memory/malloc_solaris/Makefile" + # We define "random" to be "opal_random" so that Libevent will not + # use random(3) internally (and potentially unexpectedly perturb + # values returned by rand(3) to the application). @@ -150570,7 +148348,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in memory_malloc_solaris_happy memory_malloc_solaris_should_use memory_malloc_solaris_munmap memory_alloc_solaris_legacy; do + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -150589,7 +148367,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"memory_malloc_solaris_happy memory_malloc_solaris_should_use memory_malloc_solaris_munmap memory_alloc_solaris_legacy\"" + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $opal_str unset opal_str @@ -150597,193 +148375,178 @@ opal_scope_index=`expr $opal_scope_index + 1` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris" >&5 -$as_echo_n "checking for Solaris... " >&6; } - - case "$host" in - *solaris*) - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +# +# Invoke configure in a specific subdirectory. +# +# $opal_event_libevent2022_basedir/libevent is the directory to invoke in +# $event_args $opal_subdir_args 'CPPFLAGS=$CPPFLAGS' is the list of arguments to pass +# libevent_happy="yes" is actions to execute upon success +# libevent_happy="no" is actions to execute upon failure +# +subdir_dir="$opal_event_libevent2022_basedir/libevent" +subdir_args="$event_args $opal_subdir_args 'CPPFLAGS=$CPPFLAGS'" +subdir_success="libevent_happy="yes"" +subdir_failure="libevent_happy="no"" - if test "$with_memory_manager" = "malloc_solaris"; then : - memory_malloc_solaris_happy="yes" - memory_malloc_solaris_should_use=1 -else - memory_malloc_solaris_should_use=0 - if test "$with_memory_manager" = ""; then : - memory_malloc_solaris_happy="yes" -else - memory_malloc_solaris_happy="no" -fi -fi +# +# Sanity checks +# - if test "$memory_malloc_solaris_happy" = "yes"; then : - ac_fn_c_check_header_mongrel "$LINENO" "malloc.h" "ac_cv_header_malloc_h" "$ac_includes_default" -if test "x$ac_cv_header_malloc_h" = xyes; then : +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} -else - memory_malloc_solaris_happy="no" -fi + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } -fi + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac - if test "$memory_malloc_solaris_happy" = "yes"; then : - memory_malloc_solaris_munmap=0 + # + # Move into the target directory + # - ac_fn_c_check_header_mongrel "$LINENO" "sys/syscall.h" "ac_cv_header_sys_syscall_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_syscall_h" = xyes; then : - for ac_func in syscall -do : - ac_fn_c_check_func "$LINENO" "syscall" "ac_cv_func_syscall" -if test "x$ac_cv_func_syscall" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SYSCALL 1 -_ACEOF - memory_malloc_solaris_munmap=1 -fi -done + subdir_parent=`pwd` + cd $subdir_dir -fi + # + # Make a "../" for each directory in $subdir_dir. + # + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac - for ac_func in __munmap -do : - ac_fn_c_check_func "$LINENO" "__munmap" "ac_cv_func___munmap" -if test "x$ac_cv_func___munmap" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE___MUNMAP 1 -_ACEOF - memory_malloc_solaris_munmap=1 -fi -done + # + # Construct the --cache-file argument + # + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" - # only allow dlsym (and therefore add -ldl) if we - # really need to - if test "$memory_malloc_solaris_munmap" = "0"; then : - memory_malloc_solaris_LIBS_SAVE="$LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlsym in -ldl" >&5 -$as_echo_n "checking for dlsym in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlsym+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # + # Invoke the configure script in the subdirectory + # -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlsym (); -int -main () -{ -return dlsym (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlsym=yes -else - ac_cv_lib_dl_dlsym=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlsym" >&5 -$as_echo "$ac_cv_lib_dl_dlsym" >&6; } -if test "x$ac_cv_lib_dl_dlsym" = xyes; then : - memory_malloc_solaris_LIBS="-ldl" - memory_malloc_solaris_munmap=1 -fi + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi - for ac_func in dlsym -do : - ac_fn_c_check_func "$LINENO" "dlsym" "ac_cv_func_dlsym" -if test "x$ac_cv_func_dlsym" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLSYM 1 -_ACEOF + # + # Go back to the topdir + # + cd $subdir_parent fi -done - LIBS="$memory_malloc_solaris_LIBS_SAVE" -fi +# +# Clean up +# - if test "$memory_malloc_solaris_munmap" = "0"; then : - memory_malloc_solaris_happy="no" -fi -fi - # There is a difference in the munmap prototypes for different - # Solaris versions. So determine whether we are to use Legacy - # S10 or later prototypes. - memory_alloc_solaris_legacy=0 - if test "$memory_malloc_solaris_happy" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris Legacy MUNMAP" >&5 -$as_echo_n "checking for Solaris Legacy MUNMAP... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -char *addr; - extern int munmap(caddr_t addr, size_t len); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - memory_alloc_solaris_legacy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -cat >>confdefs.h <<_ACEOF -#define USE_SOLARIS_LEGACY_MUNMAP_PROTOTYPE $memory_alloc_solaris_legacy -_ACEOF + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -fi - if test "$memory_malloc_solaris_happy" = "no" && \ - test "$memory_malloc_solaris_should_use" = "1"; then : - as_fn_error $? "malloc_solaris memory management requested but not available. Aborting." "$LINENO" 5 -fi + if test "$libevent_happy" = "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Event library failed to configure" >&5 +$as_echo "$as_me: WARNING: Event library failed to configure" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Finally, add some flags to the wrapper compiler if we're + # building with developer headers so that our headers can + # be found. + event_libevent2022_WRAPPER_EXTRA_CPPFLAGS='-I${pkgincludedir}/opal/mca/event/libevent2022/libevent -I${pkgincludedir}/opal/mca/event/libevent2022/libevent/include' + CFLAGS="$CFLAGS_save" + CPPFLAGS="$CPPFLAGS_save" - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - if test "$with_memory_manager" = "malloc_solaris"; then : - memory_malloc_solaris_happy="no" - memory_malloc_solaris_should_use=0 -fi - ;; - esac + # If we configured successfully, set OPAL_HAVE_WORKING_EVENTOPS to + # the value in the generated libevent/config.h (NOT + # libevent/include/event2/event-config.h!). Otherwise, set it to + # 0. + libevent_file=$opal_event_libevent2022_basedir/libevent/config.h - if test "$memory_malloc_solaris_happy" = "yes"; then : - memory_base_found=1 + if test "$libevent_happy" = "yes" && test -r $libevent_file; then : + OPAL_HAVE_WORKING_EVENTOPS=`grep HAVE_WORKING_EVENTOPS $libevent_file | awk '{print $3 }'` should_build=$should_build else should_build=0 + OPAL_HAVE_WORKING_EVENTOPS=0 fi @@ -150808,6 +148571,8 @@ done +fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -150816,45 +148581,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/memory/malloc_solaris/post_configure.sh" + infile="$srcdir/opal/mca/event/libevent2022/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components malloc_solaris" + all_components="$all_components libevent2022" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components malloc_solaris" + dso_components="$dso_components libevent2022" else - if test "memory" = "common"; then + if test "event" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/memory/malloc_solaris/lib${OPAL_LIB_PREFIX}mca_memory_malloc_solaris.la $static_ltlibs" + static_ltlibs="mca/event/libevent2022/lib${OPAL_LIB_PREFIX}mca_event_libevent2022.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/memory/malloc_solaris/libmca_memory_malloc_solaris.la $static_ltlibs" + static_ltlibs="mca/event/libevent2022/libmca_event_libevent2022.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_memory_malloc_solaris_component;" >> $outfile.extern - echo " &mca_memory_malloc_solaris_component, " >> $outfile.struct - static_components="$static_components malloc_solaris" + echo "extern const mca_base_component_t mca_event_libevent2022_component;" >> $outfile.extern + echo " &mca_event_libevent2022_component, " >> $outfile.struct + static_components="$static_components libevent2022" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memory:malloc_solaris can compile" >&5 -$as_echo_n "checking if MCA component memory:malloc_solaris can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component event:libevent2022 can compile" >&5 +$as_echo_n "checking if MCA component event:libevent2022 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_memory" = "malloc_solaris" ; then + if test "$DIRECT_event" = "libevent2022" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_memory_DIRECT_CALL_HEADER=$line" + str="MCA_opal_event_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** memory component malloc_solaris was supposed to be direct-called, but +as_fn_error $? "*** event component libevent2022 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -150862,8 +148627,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_memory" = "malloc_solaris" ; then -as_fn_error $? "*** memory component malloc_solaris was supposed to be direct-called, but + if test "$DIRECT_event" = "libevent2022" ; then +as_fn_error $? "*** event component libevent2022 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -150878,7 +148643,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$memory_malloc_solaris_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$event_libevent2022_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -150918,7 +148683,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memory_malloc_solaris_LDFLAGS; do + for arg in $event_libevent2022_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -150999,7 +148764,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memory_malloc_solaris_WRAPPER_EXTRA_LDFLAGS; do + for arg in $event_libevent2022_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -151041,7 +148806,7 @@ fi - if test "$memory_malloc_solaris_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$event_libevent2022_WRAPPER_EXTRA_LIBS" = ""; then : @@ -151081,7 +148846,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memory_malloc_solaris_LIBS; do + for arg in $event_libevent2022_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -151162,7 +148927,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memory_malloc_solaris_WRAPPER_EXTRA_LIBS; do + for arg in $event_libevent2022_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -151210,7 +148975,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$memory_malloc_solaris_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$event_libevent2022_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=1 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -151253,7 +149018,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memory_malloc_solaris_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $event_libevent2022_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -151296,32 +149061,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring memory_malloc_solaris_WRAPPER_EXTRA_CPPFLAGS ($memory_malloc_solaris_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring memory_malloc_solaris_WRAPPER_EXTRA_CPPFLAGS ($memory_malloc_solaris_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring event_libevent2022_WRAPPER_EXTRA_CPPFLAGS ($event_libevent2022_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring event_libevent2022_WRAPPER_EXTRA_CPPFLAGS ($event_libevent2022_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memory:malloc_solaris can compile" >&5 -$as_echo_n "checking if MCA component memory:malloc_solaris can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component event:libevent2022 can compile" >&5 +$as_echo_n "checking if MCA component event:libevent2022 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_memory" = "malloc_solaris" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"malloc_solaris\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"malloc_solaris\" failed to configure properly" >&2;} + if test "$with_event" = "libevent2022" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"libevent2022\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"libevent2022\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_memory" ; then - if test "$DIRECT_memory" = "malloc_solaris" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"malloc_solaris\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"malloc_solaris\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_event" ; then + if test "$DIRECT_event" = "libevent2022" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"libevent2022\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"libevent2022\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -151329,23 +149094,57 @@ fi # add component to all component list - all_components="$all_components malloc_solaris" + all_components="$all_components libevent2022" +fi + + + if test "$enable_event_thread_support" = "yes"; then + OPAL_EVENT_HAVE_THREAD_SUPPORT_TRUE= + OPAL_EVENT_HAVE_THREAD_SUPPORT_FALSE='#' +else + OPAL_EVENT_HAVE_THREAD_SUPPORT_TRUE='#' + OPAL_EVENT_HAVE_THREAD_SUPPORT_FALSE= +fi + + if test "$should_build" = "1"; then : + # Build libevent/include/event2/event-config.h. If we + # don't do it here, then libevent's Makefile.am will build + # it during "make all", which is too late for us (because + # other things are built before the event framework that + # end up including event-config.h). The steps below were + # copied from libevent's Makefile.am. + + ac_config_commands="$ac_config_commands opal/mca/event/libevent2022/libevent/include/event2/event-config.h" + + + # Must set this variable so that the framework m4 knows + # what file to include in opal/mca/event/event.h + opal_event_base_include="libevent2022/libevent2022.h" + + # Add some stuff to CPPFLAGS so that the rest of the source + # tree can be built + libevent_file=$opal_event_libevent2022_basedir/libevent + CPPFLAGS="-I$OPAL_TOP_SRCDIR/$libevent_file -I$OPAL_TOP_SRCDIR/$libevent_file/include $CPPFLAGS" + if test "$OPAL_TOP_BUILDDIR" != "$OPAL_TOP_SRCDIR"; then : + CPPFLAGS="-I$OPAL_TOP_BUILDDIR/$libevent_file/include $CPPFLAGS" fi + unset libevent_file +fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_memory_malloc_solaris_DSO=1 + BUILD_opal_event_libevent2022_DSO=1 else - BUILD_opal_memory_malloc_solaris_DSO=0 + BUILD_opal_event_libevent2022_DSO=0 fi - if test "$BUILD_opal_memory_malloc_solaris_DSO" = "1"; then - MCA_BUILD_opal_memory_malloc_solaris_DSO_TRUE= - MCA_BUILD_opal_memory_malloc_solaris_DSO_FALSE='#' + if test "$BUILD_opal_event_libevent2022_DSO" = "1"; then + MCA_BUILD_opal_event_libevent2022_DSO_TRUE= + MCA_BUILD_opal_event_libevent2022_DSO_FALSE='#' else - MCA_BUILD_opal_memory_malloc_solaris_DSO_TRUE='#' - MCA_BUILD_opal_memory_malloc_solaris_DSO_FALSE= + MCA_BUILD_opal_event_libevent2022_DSO_TRUE='#' + MCA_BUILD_opal_event_libevent2022_DSO_FALSE= fi @@ -151368,10 +149167,10 @@ # works", so we don't :) - MCA_opal_memory_ALL_COMPONENTS="$all_components" - MCA_opal_memory_STATIC_COMPONENTS="$static_components" - MCA_opal_memory_DSO_COMPONENTS="$dso_components" - MCA_opal_memory_STATIC_LTLIBS="$static_ltlibs" + MCA_opal_event_ALL_COMPONENTS="$all_components" + MCA_opal_event_STATIC_COMPONENTS="$static_components" + MCA_opal_event_DSO_COMPONENTS="$dso_components" + MCA_opal_event_STATIC_LTLIBS="$static_ltlibs" @@ -151379,23 +149178,23 @@ - MCA_opal_memory_ALL_SUBDIRS= + MCA_opal_event_ALL_SUBDIRS= for item in $all_components ; do - MCA_opal_memory_ALL_SUBDIRS="$MCA_opal_memory_ALL_SUBDIRS mca/memory/$item" + MCA_opal_event_ALL_SUBDIRS="$MCA_opal_event_ALL_SUBDIRS mca/event/$item" done - MCA_opal_memory_STATIC_SUBDIRS= + MCA_opal_event_STATIC_SUBDIRS= for item in $static_components ; do - MCA_opal_memory_STATIC_SUBDIRS="$MCA_opal_memory_STATIC_SUBDIRS mca/memory/$item" + MCA_opal_event_STATIC_SUBDIRS="$MCA_opal_event_STATIC_SUBDIRS mca/event/$item" done - MCA_opal_memory_DSO_SUBDIRS= + MCA_opal_event_DSO_SUBDIRS= for item in $dso_components ; do - MCA_opal_memory_DSO_SUBDIRS="$MCA_opal_memory_DSO_SUBDIRS mca/memory/$item" + MCA_opal_event_DSO_SUBDIRS="$MCA_opal_event_DSO_SUBDIRS mca/event/$item" done @@ -151403,7 +149202,7 @@ # Create the final .h file that will be included in the type's # top-level glue. This lists all the static components. We don't # need to do this for "common". - if test "memory" != "common"; then + if test "event" != "common"; then cat > $outfile <&5 +$as_echo "$as_me: WARNING: Did not find a suitable static opal event component" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +fi + + # We need to find out what the underlying component set + # HAVE_WORKING_EVENTOPS was set to. This is for systems that + # don't have working poll(), etc. (e.g., Cray) -- we still need an + # event component (for timers, etc.), but we don't have working + # event ops. Ensure that it was set by the component. + echo " " + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if have working event ops for the event framework" >&5 +$as_echo_n "checking if have working event ops for the event framework... " >&6; } + if test "$OPAL_HAVE_WORKING_EVENTOPS" = ""; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5 +$as_echo "unknown" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Event component did not set OPAL_HAVE_WORKING_EVENTOPS" >&5 +$as_echo "$as_me: WARNING: Event component did not set OPAL_HAVE_WORKING_EVENTOPS" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "$OPAL_HAVE_WORKING_EVENTOPS" = "1"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +fi cat >>confdefs.h <<_ACEOF -#define OPAL_MEMORY_HAVE_COMPONENT $memory_base_found +#define OPAL_HAVE_WORKING_EVENTOPS $OPAL_HAVE_WORKING_EVENTOPS _ACEOF - # See if someone set to use their header file - if test "$memory_base_include" = "" ; then - memory_base_include="base/empty.h" - fi - + # The winning component will have told us where their header file + # is located + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for winning event component header file" >&5 +$as_echo_n "checking for winning event component header file... " >&6; } + if test "$opal_event_base_include" = ""; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: missing" >&5 +$as_echo "missing" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Missing implementation header" >&5 +$as_echo "$as_me: WARNING: Missing implementation header" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +fi cat >>confdefs.h <<_ACEOF -#define MCA_memory_IMPLEMENTATION_HEADER "opal/mca/memory/$memory_base_include" +#define MCA_event_IMPLEMENTATION_HEADER "opal/mca/event/$opal_event_base_include" _ACEOF + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_event_base_include" >&5 +$as_echo "$opal_event_base_include" >&6; } - MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS mpool" - MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/mpool" - MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_mpool_ALL_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_mpool_DSO_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_mpool_STATIC_SUBDIRS)" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/mpool/libmca_mpool.la" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_mpool_STATIC_LTLIBS)" + MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS hwloc" + MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/hwloc" + MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_hwloc_ALL_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_hwloc_DSO_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_hwloc_STATIC_SUBDIRS)" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/hwloc/libmca_hwloc.la" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_hwloc_STATIC_LTLIBS)" - opal_show_subsubtitle "Configuring MCA framework mpool" + # Use a crude shell variable to know whether this component is + # being required "early". See below. + opal_hwloc_its_time_to_configure=1 + + + MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS if" + MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/if" + MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_if_ALL_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_if_DSO_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_if_STATIC_SUBDIRS)" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/if/libmca_if.la" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_if_STATIC_LTLIBS)" + + opal_show_subsubtitle "Configuring MCA framework if" @@ -151481,11 +149333,11 @@ # exists. Need to do this for VPATH builds, because the directory # may not exist yet. For the "common" type, it's not really a # component, so it doesn't have a base. - outdir=opal/mca/mpool/base + outdir=opal/mca/if/base as_dir=$outdir; as_fn_mkdir_p # emit Makefile rule - ac_config_files="$ac_config_files opal/mca/mpool/Makefile" + ac_config_files="$ac_config_files opal/mca/if/Makefile" # remove any previously generated #include files @@ -151495,14 +149347,14 @@ touch $outfile.struct $outfile.extern # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework mpool" >&5 -$as_echo_n "checking for no configure components in framework mpool... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: hugepage" >&5 -$as_echo "hugepage" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework mpool" >&5 -$as_echo_n "checking for m4 configure components in framework mpool... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: memkind" >&5 -$as_echo "memkind" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework if" >&5 +$as_echo_n "checking for no configure components in framework if... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework if" >&5 +$as_echo_n "checking for m4 configure components in framework if... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: bsdx_ipv4, bsdx_ipv6, linux_ipv6, posix_ipv4, solaris_ipv6" >&5 +$as_echo "bsdx_ipv4, bsdx_ipv6, linux_ipv6, posix_ipv4, solaris_ipv6" >&6; } # If there are components in the no configure list, but we're # doing one of the "special" selection logics, abort with a @@ -151512,20 +149364,30 @@ # run the configure logic for the no-config components - opal_show_subsubsubtitle "MCA component mpool:hugepage (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + # configure components that use built-in configuration scripts - component_path="$srcdir/opal/mca/mpool/hugepage" - want_component=0 + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore + + opal_show_subsubsubtitle "MCA component if:bsdx_ipv4 (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/opal/mca/if/bsdx_ipv4" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore if test -d $component_path ; then # decide if we want the component to be built or not. This # is spread out because some of the logic is a little complex @@ -151550,8 +149412,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_mpool" ; then - if test "$DIRECT_mpool" = "hugepage" ; then + if test ! -z "$DIRECT_if" ; then + if test "$DIRECT_if" = "bsdx_ipv4" ; then want_component=1 else want_component=0 @@ -151560,99 +149422,112 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_mpool" = "1"; then : + if test "$DISABLE_if" = "1"; then : want_component=0 fi - if test "$DISABLE_mpool_hugepage" = "1"; then : + if test "$DISABLE_if_bsdx_ipv4" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_mpool" - SHARED_COMPONENT="$DSO_mpool_hugepage" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component if:bsdx_ipv4 compile mode" >&5 +$as_echo_n "checking for MCA component if:bsdx_ipv4 compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - STATIC_FRAMEWORK="$STATIC_mpool" - STATIC_COMPONENT="$STATIC_mpool_hugepage" - shared_mode_override=static + # try to configure the component - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + ac_config_files="$ac_config_files opal/mca/if/bsdx_ipv4/Makefile" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component mpool:hugepage compile mode" >&5 -$as_echo_n "checking for MCA component mpool:hugepage compile mode... " >&6; } - if test "$DIRECT_mpool" = "hugepage" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + + # If we found struct sockaddr and we're on any of the BSDs, we're + # happy. I.e., this: + #if defined(__NetBSD__) || defined(__FreeBSD__) || \ + # defined(__OpenBSD__) || defined(__DragonFly__) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct sockaddr" >&5 +$as_echo_n "checking struct sockaddr... " >&6; } + if test "$opal_found_sockaddr" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (cached)" >&5 +$as_echo "yes (cached)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking NetBSD, FreeBSD, OpenBSD, or DragonFly" >&5 +$as_echo_n "checking NetBSD, FreeBSD, OpenBSD, or DragonFly... " >&6; } + if test "$opal_found_netbsd" = "yes" || \ + test "$opal_found_freebsd" = "yes" || \ + test "$opal_found_openbsd" = "yes" || \ + test "$opal_found_dragonfly" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + should_build=$should_build +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + should_build=0 +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (cached)" >&5 +$as_echo "no (cached)" >&6; } + should_build=0 +fi + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/mpool/hugepage/post_configure.sh" + infile="$srcdir/opal/mca/if/bsdx_ipv4/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components hugepage" + all_components="$all_components bsdx_ipv4" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components hugepage" + dso_components="$dso_components bsdx_ipv4" else - if test "mpool" = "common"; then + if test "if" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/mpool/hugepage/lib${OPAL_LIB_PREFIX}mca_mpool_hugepage.la $static_ltlibs" + static_ltlibs="mca/if/bsdx_ipv4/lib${OPAL_LIB_PREFIX}mca_if_bsdx_ipv4.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/mpool/hugepage/libmca_mpool_hugepage.la $static_ltlibs" + static_ltlibs="mca/if/bsdx_ipv4/libmca_if_bsdx_ipv4.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_mpool_hugepage_component;" >> $outfile.extern - echo " &mca_mpool_hugepage_component, " >> $outfile.struct - static_components="$static_components hugepage" + echo "extern const mca_base_component_t mca_if_bsdx_ipv4_component;" >> $outfile.extern + echo " &mca_if_bsdx_ipv4_component, " >> $outfile.struct + static_components="$static_components bsdx_ipv4" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mpool:hugepage can compile" >&5 -$as_echo_n "checking if MCA component mpool:hugepage can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:bsdx_ipv4 can compile" >&5 +$as_echo_n "checking if MCA component if:bsdx_ipv4 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_mpool" = "hugepage" ; then + if test "$DIRECT_if" = "bsdx_ipv4" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_mpool_DIRECT_CALL_HEADER=$line" + str="MCA_opal_if_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** mpool component hugepage was supposed to be direct-called, but +as_fn_error $? "*** if component bsdx_ipv4 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -151660,8 +149535,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_mpool" = "hugepage" ; then -as_fn_error $? "*** mpool component hugepage was supposed to be direct-called, but + if test "$DIRECT_if" = "bsdx_ipv4" ; then +as_fn_error $? "*** if component bsdx_ipv4 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -151676,7 +149551,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$mpool_hugepage_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$if_bsdx_ipv4_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -151716,7 +149591,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mpool_hugepage_LDFLAGS; do + for arg in $if_bsdx_ipv4_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -151797,7 +149672,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mpool_hugepage_WRAPPER_EXTRA_LDFLAGS; do + for arg in $if_bsdx_ipv4_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -151839,7 +149714,7 @@ fi - if test "$mpool_hugepage_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$if_bsdx_ipv4_WRAPPER_EXTRA_LIBS" = ""; then : @@ -151879,7 +149754,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mpool_hugepage_LIBS; do + for arg in $if_bsdx_ipv4_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -151960,7 +149835,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mpool_hugepage_WRAPPER_EXTRA_LIBS; do + for arg in $if_bsdx_ipv4_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -152008,7 +149883,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$mpool_hugepage_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$if_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -152051,7 +149926,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mpool_hugepage_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $if_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -152094,79 +149969,78 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring mpool_hugepage_WRAPPER_EXTRA_CPPFLAGS ($mpool_hugepage_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring mpool_hugepage_WRAPPER_EXTRA_CPPFLAGS ($mpool_hugepage_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring if_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS ($if_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring if_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS ($if_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mpool:hugepage can compile" >&5 -$as_echo_n "checking if MCA component mpool:hugepage can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:bsdx_ipv4 can compile" >&5 +$as_echo_n "checking if MCA component if:bsdx_ipv4 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_mpool" = "hugepage" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hugepage\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"hugepage\" failed to configure properly" >&2;} + if test "$with_if" = "bsdx_ipv4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bsdx_ipv4\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"bsdx_ipv4\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_mpool" ; then - if test "$DIRECT_mpool" = "hugepage" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hugepage\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"hugepage\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_if" ; then + if test "$DIRECT_if" = "bsdx_ipv4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bsdx_ipv4\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"bsdx_ipv4\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components hugepage" - fi + # add component to all component list + all_components="$all_components bsdx_ipv4" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_opal_mpool_hugepage_DSO=1 - else - BUILD_opal_mpool_hugepage_DSO=0 - fi - if test "$BUILD_opal_mpool_hugepage_DSO" = "1"; then - MCA_BUILD_opal_mpool_hugepage_DSO_TRUE= - MCA_BUILD_opal_mpool_hugepage_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_opal_if_bsdx_ipv4_DSO=1 else - MCA_BUILD_opal_mpool_hugepage_DSO_TRUE='#' - MCA_BUILD_opal_mpool_hugepage_DSO_FALSE= + BUILD_opal_if_bsdx_ipv4_DSO=0 +fi + if test "$BUILD_opal_if_bsdx_ipv4_DSO" = "1"; then + MCA_BUILD_opal_if_bsdx_ipv4_DSO_TRUE= + MCA_BUILD_opal_if_bsdx_ipv4_DSO_FALSE='#' +else + MCA_BUILD_opal_if_bsdx_ipv4_DSO_TRUE='#' + MCA_BUILD_opal_if_bsdx_ipv4_DSO_FALSE= fi - ac_config_files="$ac_config_files opal/mca/mpool/hugepage/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - # configure components that use built-in configuration scripts - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - opal_show_subsubsubtitle "MCA component mpool:memkind (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component if:bsdx_ipv6 (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/mpool/memkind" + component_path="$srcdir/opal/mca/if/bsdx_ipv6" want_component=0 # build if: @@ -152198,8 +150072,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_mpool" ; then - if test "$DIRECT_mpool" = "memkind" ; then + if test ! -z "$DIRECT_if" ; then + if test "$DIRECT_if" = "bsdx_ipv6" ; then want_component=1 else want_component=0 @@ -152208,10 +150082,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_mpool" = "1"; then : + if test "$DISABLE_if" = "1"; then : want_component=0 fi - if test "$DISABLE_mpool_memkind" = "1"; then : + if test "$DISABLE_if_bsdx_ipv6" = "1"; then : want_component=0 fi @@ -152224,40 +150098,122 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_mpool" - SHARED_COMPONENT="$DSO_mpool_memkind" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component if:bsdx_ipv6 compile mode" >&5 +$as_echo_n "checking for MCA component if:bsdx_ipv6 compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - STATIC_FRAMEWORK="$STATIC_mpool" - STATIC_COMPONENT="$STATIC_mpool_memkind" - shared_mode_override=static + # try to configure the component - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" + ac_config_files="$ac_config_files opal/mca/if/bsdx_ipv6/Makefile" + + + + + # If we found struct sockaddr and we're on any of the BSDs, we're + # happy. I.e., this: + #if defined( __NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \ + # defined(__386BSD__) || defined(__bsdi__) || defined(__APPLE__) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct sockaddr" >&5 +$as_echo_n "checking struct sockaddr... " >&6; } + if test "$opal_found_sockaddr" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (cached)" >&5 +$as_echo "yes (cached)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking some flavor of BSD" >&5 +$as_echo_n "checking some flavor of BSD... " >&6; } + if test "$opal_found_netbsd" = "yes" || \ + test "$opal_found_freebsd" = "yes" || \ + test "$opal_found_openbsd" = "yes" || \ + test "$opal_found_386bsd" = "yes" || \ + test "$opal_found_bsdi" = "yes" || + test "$opal_found_apple" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + should_build=$should_build +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + should_build=0 +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (cached)" >&5 +$as_echo "no (cached)" >&6; } + should_build=0 +fi + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/if/bsdx_ipv6/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components bsdx_ipv6" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components bsdx_ipv6" else - compile_mode="static" + if test "if" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/if/bsdx_ipv6/lib${OPAL_LIB_PREFIX}mca_if_bsdx_ipv6.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/if/bsdx_ipv6/libmca_if_bsdx_ipv6.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_if_bsdx_ipv6_component;" >> $outfile.extern + echo " &mca_if_bsdx_ipv6_component, " >> $outfile.struct + static_components="$static_components bsdx_ipv6" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component mpool:memkind compile mode" >&5 -$as_echo_n "checking for MCA component mpool:memkind compile mode... " >&6; } - if test "$DIRECT_mpool" = "memkind" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:bsdx_ipv6 can compile" >&5 +$as_echo_n "checking if MCA component if:bsdx_ipv6 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_if" = "bsdx_ipv6" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_if_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** if component bsdx_ipv6 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_if" = "bsdx_ipv6" ; then +as_fn_error $? "*** if component bsdx_ipv6 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi fi - - # try to configure the component + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$if_bsdx_ipv6_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -152270,7 +150226,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_mpool_memkind_happy; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -152289,85 +150245,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_mpool_memkind_happy\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - ac_config_files="$ac_config_files opal/mca/mpool/memkind/Makefile" - - - -# Check whether --with-memkind was given. -if test "${with_memkind+set}" = set; then : - withval=$with_memkind; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-memkind value" >&5 -$as_echo_n "checking --with-memkind value... " >&6; } - if test "$with_memkind" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-memkind)" >&5 -$as_echo "simple no (specified --without-memkind)" >&6; } -else - if test "$with_memkind" = "yes" || test "x$with_memkind" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_memkind"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_memkind not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_memkind not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_memkind/include/memkind.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_memkind/include/memkind.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_memkind/include/memkind.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_memkind)" >&5 -$as_echo "sanity check ok ($with_memkind)" >&6; } + for arg in $if_bsdx_ipv6_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - - + done fi - - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - - fi + done - opal_mpool_memkind_happy="no" - - if test "$with_memkind" != "no" ; then - if test -n "$with_memkind" -a "$with_memkind" != "yes" ; then - opal_check_memkind_dir=$with_memkind - fi - - # - # memkind_create_kind was introduced with memkind v1.4.0 release - # + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_check_package_mpool_memkind_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_mpool_memkind_save_LDFLAGS="$LDFLAGS" - opal_check_package_mpool_memkind_save_LIBS="$LIBS" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - opal_check_package_mpool_memkind_orig_CPPFLAGS="$mpool_memkind_CPPFLAGS" - opal_check_package_mpool_memkind_orig_LDFLAGS="$mpool_memkind_LDFLAGS" - opal_check_package_mpool_memkind_orig_LIBS="$mpool_memkind_LIBS" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering +else @@ -152380,7 +150307,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -152399,7 +150326,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -152407,357 +150334,130 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_memkind_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $opal_check_memkind_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in memkind.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "memkind.h" "ac_cv_header_memkind_h" "$ac_includes_default" -if test "x$ac_cv_header_memkind_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_MEMKIND_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_memkind_h + for arg in $if_bsdx_ipv6_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - mpool_memkind_CPPFLAGS="$mpool_memkind_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - for ac_header in memkind.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "memkind.h" "ac_cv_header_memkind_h" "$ac_includes_default" -if test "x$ac_cv_header_memkind_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_MEMKIND_H 1 -_ACEOF - opal_check_package_header_happy="yes" fi + done -done - if test "$opal_check_package_header_happy" = "yes"; then : + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # see comment above - unset ac_cv_search_memkind_create_kind - opal_check_package_lib_happy="no" - if test "" != ""; then : - # libdir was specified - search only there - mpool_memkind_LDFLAGS="$mpool_memkind_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing memkind_create_kind" >&5 -$as_echo_n "checking for library containing memkind_create_kind... " >&6; } -if ${ac_cv_search_memkind_create_kind+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char memkind_create_kind (); -int -main () -{ -return memkind_create_kind (); - ; - return 0; -} -_ACEOF -for ac_lib in '' memkind; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lnuma $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_memkind_create_kind=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_memkind_create_kind+:} false; then : - break fi -done -if ${ac_cv_search_memkind_create_kind+:} false; then : + if test "$if_bsdx_ipv6_WRAPPER_EXTRA_LIBS" = ""; then : -else - ac_cv_search_memkind_create_kind=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_memkind_create_kind" >&5 -$as_echo "$ac_cv_search_memkind_create_kind" >&6; } -ac_res=$ac_cv_search_memkind_create_kind -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" - mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" - unset ac_cv_search_memkind_create_kind -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$opal_check_memkind_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing memkind_create_kind" >&5 -$as_echo_n "checking for library containing memkind_create_kind... " >&6; } -if ${ac_cv_search_memkind_create_kind+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char memkind_create_kind (); -int -main () -{ -return memkind_create_kind (); - ; - return 0; -} -_ACEOF -for ac_lib in '' memkind; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lnuma $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_memkind_create_kind=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_memkind_create_kind+:} false; then : - break -fi -done -if ${ac_cv_search_memkind_create_kind+:} false; then : + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -else - ac_cv_search_memkind_create_kind=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_memkind_create_kind" >&5 -$as_echo "$ac_cv_search_memkind_create_kind" >&6; } -ac_res=$ac_cv_search_memkind_create_kind -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" - mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" - unset ac_cv_search_memkind_create_kind -fi -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - mpool_memkind_LDFLAGS="$mpool_memkind_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing memkind_create_kind" >&5 -$as_echo_n "checking for library containing memkind_create_kind... " >&6; } -if ${ac_cv_search_memkind_create_kind+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char memkind_create_kind (); -int -main () -{ -return memkind_create_kind (); - ; - return 0; -} -_ACEOF -for ac_lib in '' memkind; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lnuma $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_memkind_create_kind=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_memkind_create_kind+:} false; then : - break -fi -done -if ${ac_cv_search_memkind_create_kind+:} false; then : + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -else - ac_cv_search_memkind_create_kind=no + + for arg in $if_bsdx_ipv6_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_memkind_create_kind" >&5 -$as_echo "$ac_cv_search_memkind_create_kind" >&6; } -ac_res=$ac_cv_search_memkind_create_kind -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" - mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" - unset ac_cv_search_memkind_create_kind -fi + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - mpool_memkind_LDFLAGS="$mpool_memkind_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing memkind_create_kind" >&5 -$as_echo_n "checking for library containing memkind_create_kind... " >&6; } -if ${ac_cv_search_memkind_create_kind+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char memkind_create_kind (); -int -main () -{ -return memkind_create_kind (); - ; - return 0; -} -_ACEOF -for ac_lib in '' memkind; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lnuma $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_memkind_create_kind=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_memkind_create_kind+:} false; then : - break -fi -done -if ${ac_cv_search_memkind_create_kind+:} false; then : + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -else - ac_cv_search_memkind_create_kind=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_memkind_create_kind" >&5 -$as_echo "$ac_cv_search_memkind_create_kind" >&6; } -ac_res=$ac_cv_search_memkind_create_kind -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" - mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" - unset ac_cv_search_memkind_create_kind -fi -fi -fi -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + +else @@ -152770,7 +150470,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -152789,16 +150489,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $if_bsdx_ipv6_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$if_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -152811,7 +150561,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -152830,7 +150580,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -152838,276 +150588,334 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $if_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libmemkind requires libnl v1 or v3" >&5 -$as_echo_n "checking if libmemkind requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void memkind_create_kind (void); -int main(int argc, char *argv[]) { - memkind_create_kind (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:152865: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmemkind $LIBS $mpool_memkind_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmemkind $LIBS $mpool_memkind_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:152872: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring if_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS ($if_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring if_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS ($if_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib memkind" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib memkind" >&2;} - -fi - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:bsdx_ipv6 can compile" >&5 +$as_echo_n "checking if MCA component if:bsdx_ipv6 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libmemkind links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libmemkind links to both libnl and libnl-3." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_if" = "bsdx_ipv6" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bsdx_ipv6\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"bsdx_ipv6\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmemkind (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmemkind (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmemkind." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmemkind." >&2;} + if test ! -z "$DIRECT_if" ; then + if test "$DIRECT_if" = "bsdx_ipv6" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bsdx_ipv6\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"bsdx_ipv6\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - libnl_sane=0 + # add component to all component list + all_components="$all_components bsdx_ipv6" fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas memkind requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas memkind requires libnl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmemkind (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmemkind (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmemkind." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmemkind." >&2;} - libnl_sane=0 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_if_bsdx_ipv6_DSO=1 else - opal_libnlv1_libs="$opal_libnlv1_libs memkind" + BUILD_opal_if_bsdx_ipv6_DSO=0 +fi + if test "$BUILD_opal_if_bsdx_ipv6_DSO" = "1"; then + MCA_BUILD_opal_if_bsdx_ipv6_DSO_TRUE= + MCA_BUILD_opal_if_bsdx_ipv6_DSO_FALSE='#' +else + MCA_BUILD_opal_if_bsdx_ipv6_DSO_TRUE='#' + MCA_BUILD_opal_if_bsdx_ipv6_DSO_FALSE= +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + unset compile_mode - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + opal_show_subsubsubtitle "MCA component if:linux_ipv6 (m4 configuration macro)" - opal_done="`expr $opal_i \>= $opal_count`" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" + component_path="$srcdir/opal/mca/if/linux_ipv6" + want_component=0 - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_if" ; then + if test "$DIRECT_if" = "linux_ipv6" ; then + want_component=1 + else + want_component=0 + fi + fi fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval - -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_if" = "1"; then : + want_component=0 +fi + if test "$DISABLE_if_linux_ipv6" = "1"; then : + want_component=0 fi + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmemkind requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmemkind requires libnl-3" >&2;} + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmemkind (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmemkind (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmemkind." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmemkind." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component if:linux_ipv6 compile mode" >&5 +$as_echo_n "checking for MCA component if:linux_ipv6 compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs memkind" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + # try to configure the component -# Go through each item in the variable and only keep the unique ones + ac_config_files="$ac_config_files opal/mca/if/linux_ipv6/Makefile" -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we are on Linux with TCP" >&5 +$as_echo_n "checking if we are on Linux with TCP... " >&6; } + # If we have struct sockaddr and we're on Linux, then we're + # happy. + if test "$opal_found_sockaddr" = "yes" && test "$opal_found_linux" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + should_build=$should_build +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + should_build=0 +fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - # Check the ending condition + if test "$should_build" = "1"; then : - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/if/linux_ipv6/post_configure.sh" - # If we didn't find the token, add it to the "array" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components linux_ipv6" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components linux_ipv6" else - opal_i="`expr $opal_i - 1`" + if test "if" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/if/linux_ipv6/lib${OPAL_LIB_PREFIX}mca_if_linux_ipv6.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/if/linux_ipv6/libmca_if_linux_ipv6.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_if_linux_ipv6_component;" >> $outfile.extern + echo " &mca_if_linux_ipv6_component, " >> $outfile.struct + static_components="$static_components linux_ipv6" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:linux_ipv6 can compile" >&5 +$as_echo_n "checking if MCA component if:linux_ipv6 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_if" = "linux_ipv6" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_if_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** if component linux_ipv6 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_if" = "linux_ipv6" ; then +as_fn_error $? "*** if component linux_ipv6 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$if_linux_ipv6_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + for arg in $if_linux_ipv6_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -153131,10 +150939,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $if_linux_ipv6_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -153157,332 +151020,89 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_memkind_create_kind" != "no" && - test "$ac_cv_search_memkind_create_kind" != "none required"; then : - mpool_memkind_LIBS="$ac_cv_search_memkind_create_kind -lnuma" -else - mpool_memkind_LIBS=" -lnuma" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" fi + if test "$if_linux_ipv6_WRAPPER_EXTRA_LIBS" = ""; then : -else - opal_check_package_happy="no" -fi -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # see comment above - unset ac_cv_search_memkind_create_kind - opal_check_package_lib_happy="no" - if test "" != ""; then : - # libdir was specified - search only there - mpool_memkind_LDFLAGS="$mpool_memkind_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing memkind_create_kind" >&5 -$as_echo_n "checking for library containing memkind_create_kind... " >&6; } -if ${ac_cv_search_memkind_create_kind+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char memkind_create_kind (); -int -main () -{ -return memkind_create_kind (); - ; - return 0; -} -_ACEOF -for ac_lib in '' memkind; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lnuma $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_memkind_create_kind=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_memkind_create_kind+:} false; then : - break -fi -done -if ${ac_cv_search_memkind_create_kind+:} false; then : + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -else - ac_cv_search_memkind_create_kind=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_memkind_create_kind" >&5 -$as_echo "$ac_cv_search_memkind_create_kind" >&6; } -ac_res=$ac_cv_search_memkind_create_kind -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" - mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" - unset ac_cv_search_memkind_create_kind -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$opal_check_memkind_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing memkind_create_kind" >&5 -$as_echo_n "checking for library containing memkind_create_kind... " >&6; } -if ${ac_cv_search_memkind_create_kind+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char memkind_create_kind (); -int -main () -{ -return memkind_create_kind (); - ; - return 0; -} -_ACEOF -for ac_lib in '' memkind; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lnuma $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_memkind_create_kind=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_memkind_create_kind+:} false; then : - break -fi -done -if ${ac_cv_search_memkind_create_kind+:} false; then : -else - ac_cv_search_memkind_create_kind=no + for arg in $if_linux_ipv6_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_memkind_create_kind" >&5 -$as_echo "$ac_cv_search_memkind_create_kind" >&6; } -ac_res=$ac_cv_search_memkind_create_kind -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" - mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" - unset ac_cv_search_memkind_create_kind + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - mpool_memkind_LDFLAGS="$mpool_memkind_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing memkind_create_kind" >&5 -$as_echo_n "checking for library containing memkind_create_kind... " >&6; } -if ${ac_cv_search_memkind_create_kind+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char memkind_create_kind (); -int -main () -{ -return memkind_create_kind (); - ; - return 0; -} -_ACEOF -for ac_lib in '' memkind; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lnuma $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_memkind_create_kind=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_memkind_create_kind+:} false; then : - break -fi -done -if ${ac_cv_search_memkind_create_kind+:} false; then : -else - ac_cv_search_memkind_create_kind=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_memkind_create_kind" >&5 -$as_echo "$ac_cv_search_memkind_create_kind" >&6; } -ac_res=$ac_cv_search_memkind_create_kind -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" - mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" - unset ac_cv_search_memkind_create_kind -fi -fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - mpool_memkind_LDFLAGS="$mpool_memkind_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing memkind_create_kind" >&5 -$as_echo_n "checking for library containing memkind_create_kind... " >&6; } -if ${ac_cv_search_memkind_create_kind+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char memkind_create_kind (); -int -main () -{ -return memkind_create_kind (); - ; - return 0; -} -_ACEOF -for ac_lib in '' memkind; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lnuma $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_memkind_create_kind=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_memkind_create_kind+:} false; then : - break -fi -done -if ${ac_cv_search_memkind_create_kind+:} false; then : else - ac_cv_search_memkind_create_kind=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_memkind_create_kind" >&5 -$as_echo "$ac_cv_search_memkind_create_kind" >&6; } -ac_res=$ac_cv_search_memkind_create_kind -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" - mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" - unset ac_cv_search_memkind_create_kind -fi -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. @@ -153495,7 +151115,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -153514,16 +151134,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $if_linux_ipv6_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$if_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -153536,7 +151206,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -153555,7 +151225,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -153563,276 +151233,417 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $if_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libmemkind requires libnl v1 or v3" >&5 -$as_echo_n "checking if libmemkind requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void memkind_create_kind (void); -int main(int argc, char *argv[]) { - memkind_create_kind (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:153590: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmemkind $LIBS $mpool_memkind_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmemkind $LIBS $mpool_memkind_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:153597: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring if_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS ($if_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring if_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS ($if_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib memkind" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib memkind" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:linux_ipv6 can compile" >&5 +$as_echo_n "checking if MCA component if:linux_ipv6 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_if" = "linux_ipv6" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux_ipv6\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"linux_ipv6\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_if" ; then + if test "$DIRECT_if" = "linux_ipv6" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux_ipv6\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"linux_ipv6\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components linux_ipv6" fi - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libmemkind links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libmemkind links to both libnl and libnl-3." >&2;} + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_if_linux_ipv6_DSO=1 +else + BUILD_opal_if_linux_ipv6_DSO=0 +fi + if test "$BUILD_opal_if_linux_ipv6_DSO" = "1"; then + MCA_BUILD_opal_if_linux_ipv6_DSO_TRUE= + MCA_BUILD_opal_if_linux_ipv6_DSO_FALSE='#' +else + MCA_BUILD_opal_if_linux_ipv6_DSO_TRUE='#' + MCA_BUILD_opal_if_linux_ipv6_DSO_FALSE= +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmemkind (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmemkind (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmemkind." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmemkind." >&2;} - libnl_sane=0 + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas memkind requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas memkind requires libnl" >&2;} + unset compile_mode - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmemkind (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmemkind (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmemkind." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmemkind." >&2;} - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs memkind" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + opal_show_subsubsubtitle "MCA component if:posix_ipv4 (m4 configuration macro)" - # Loop over every token we've seen so far + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + component_path="$srcdir/opal/mca/if/posix_ipv4" + want_component=0 - # Check the ending condition + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_if" ; then + if test "$DIRECT_if" = "posix_ipv4" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - opal_done="`expr $opal_i \>= $opal_count`" + # if we were explicitly disabled, don't build :) + if test "$DISABLE_if" = "1"; then : + want_component=0 +fi + if test "$DISABLE_if_posix_ipv4" = "1"; then : + want_component=0 +fi - # Increment the counter + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi - opal_i="`expr $opal_i + 1`" - done + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - # If we didn't find the token, add it to the "array" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component if:posix_ipv4 compile mode" >&5 +$as_echo_n "checking for MCA component if:posix_ipv4 compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/if/posix_ipv4/Makefile" + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_if_posix_ipv4_happy; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_if_posix_ipv4_happy\"" + eval $opal_str + unset opal_str - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Done; do the assignment + opal_if_posix_ipv4_happy=no -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + # If we found struct sockaddr and we're NOT on most of the BSDs, + # we're happy. I.e., if posix but not: + #if defined(__NetBSD__) || defined(__FreeBSD__) || \ + # defined(__OpenBSD__) || defined(__DragonFly__) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct sockaddr" >&5 +$as_echo_n "checking struct sockaddr... " >&6; } + if test "$opal_found_sockaddr" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (cached)" >&5 +$as_echo "yes (cached)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking not NetBSD, FreeBSD, OpenBSD, or DragonFly" >&5 +$as_echo_n "checking not NetBSD, FreeBSD, OpenBSD, or DragonFly... " >&6; } + if test "$opal_found_netbsd" = "no" && test "$opal_found_freebsd" = "no" && test "$opal_found_openbsd" = "no" && test "$opal_found_dragonfly" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_if_posix_ipv4_happy=yes +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (cached)" >&5 +$as_echo "no (cached)" >&6; } fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmemkind requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmemkind requires libnl-3" >&2;} + if test "$opal_if_posix_ipv4_happy" = "yes"; then : + ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_hwaddr" "ac_cv_member_struct_ifreq_ifr_hwaddr" "#include +" +if test "x$ac_cv_member_struct_ifreq_ifr_hwaddr" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmemkind (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmemkind (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmemkind." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmemkind." >&2;} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IFREQ_IFR_HWADDR 1 +_ACEOF - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs memkind" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs +fi -# Go through each item in the variable and only keep the unique ones + ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_mtu" "ac_cv_member_struct_ifreq_ifr_mtu" "#include +" +if test "x$ac_cv_member_struct_ifreq_ifr_mtu" = xyes; then : -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IFREQ_IFR_MTU 1 +_ACEOF - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do +fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` +fi - # Check the ending condition + if test "$opal_if_posix_ipv4_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi; - opal_done="`expr $opal_i \>= $opal_count`" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - # Increment the counter + if test "$should_build" = "1"; then : - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/if/posix_ipv4/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components posix_ipv4" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components posix_ipv4" else - opal_i="`expr $opal_i - 1`" + if test "if" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/if/posix_ipv4/lib${OPAL_LIB_PREFIX}mca_if_posix_ipv4.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/if/posix_ipv4/libmca_if_posix_ipv4.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_if_posix_ipv4_component;" >> $outfile.extern + echo " &mca_if_posix_ipv4_component, " >> $outfile.struct + static_components="$static_components posix_ipv4" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:posix_ipv4 can compile" >&5 +$as_echo_n "checking if MCA component if:posix_ipv4 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_if" = "posix_ipv4" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_if_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** if component posix_ipv4 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_if" = "posix_ipv4" ; then +as_fn_error $? "*** if component posix_ipv4 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$if_posix_ipv4_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + for arg in $if_posix_ipv4_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -153856,10 +151667,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $if_posix_ipv4_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -153882,28 +151748,65 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no fi + if test "$if_posix_ipv4_WRAPPER_EXTRA_LIBS" = ""; then : -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_memkind_create_kind" != "no" && - test "$ac_cv_search_memkind_create_kind" != "none required"; then : - mpool_memkind_LIBS="$ac_cv_search_memkind_create_kind -lnuma" -else - mpool_memkind_LIBS=" -lnuma" + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $if_posix_ipv4_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -153927,35 +151830,155 @@ done +else - if test "$opal_check_package_happy" = "yes"; then : - opal_mpool_memkind_happy="yes" + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $if_posix_ipv4_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mpool_memkind_CPPFLAGS="$opal_check_package_mpool_memkind_orig_CPPFLAGS" - mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" - mpool_memkind_LIBS="$opal_check_package_mpool_memkind_orig_LIBS" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + fi - CPPFLAGS="$opal_check_package_mpool_memkind_save_CPPFLAGS" - LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" - LIBS="$opal_check_package_mpool_memkind_save_LIBS" + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$if_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : - if test "$opal_mpool_memkind_happy" != "yes" -a -n "$with_memkind" ; then - as_fn_error $? "MEMKIND support requested but not found. Aborting" "$LINENO" 5 - fi + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - if test "$opal_mpool_memkind_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # substitute in the things needed to build memkind + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + for arg in $if_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done # Unwind the index @@ -153979,6 +152002,158 @@ done +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring if_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS ($if_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring if_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS ($if_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:posix_ipv4 can compile" >&5 +$as_echo_n "checking if MCA component if:posix_ipv4 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_if" = "posix_ipv4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"posix_ipv4\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"posix_ipv4\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_if" ; then + if test "$DIRECT_if" = "posix_ipv4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"posix_ipv4\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"posix_ipv4\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components posix_ipv4" +fi + + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_if_posix_ipv4_DSO=1 +else + BUILD_opal_if_posix_ipv4_DSO=0 +fi + if test "$BUILD_opal_if_posix_ipv4_DSO" = "1"; then + MCA_BUILD_opal_if_posix_ipv4_DSO_TRUE= + MCA_BUILD_opal_if_posix_ipv4_DSO_FALSE='#' +else + MCA_BUILD_opal_if_posix_ipv4_DSO_TRUE='#' + MCA_BUILD_opal_if_posix_ipv4_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + + + + + opal_show_subsubsubtitle "MCA component if:solaris_ipv6 (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/opal/mca/if/solaris_ipv6" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_if" ; then + if test "$DIRECT_if" = "solaris_ipv6" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_if" = "1"; then : + want_component=0 +fi + if test "$DISABLE_if_solaris_ipv6" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component if:solaris_ipv6 compile mode" >&5 +$as_echo_n "checking for MCA component if:solaris_ipv6 compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + + + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/if/solaris_ipv6/Makefile" + + + + + # check to see if we are on a solaris machine + if test "$opal_found_sun" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -153987,45 +152162,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/mpool/memkind/post_configure.sh" + infile="$srcdir/opal/mca/if/solaris_ipv6/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components memkind" + all_components="$all_components solaris_ipv6" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components memkind" + dso_components="$dso_components solaris_ipv6" else - if test "mpool" = "common"; then + if test "if" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/mpool/memkind/lib${OPAL_LIB_PREFIX}mca_mpool_memkind.la $static_ltlibs" + static_ltlibs="mca/if/solaris_ipv6/lib${OPAL_LIB_PREFIX}mca_if_solaris_ipv6.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/mpool/memkind/libmca_mpool_memkind.la $static_ltlibs" + static_ltlibs="mca/if/solaris_ipv6/libmca_if_solaris_ipv6.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_mpool_memkind_component;" >> $outfile.extern - echo " &mca_mpool_memkind_component, " >> $outfile.struct - static_components="$static_components memkind" + echo "extern const mca_base_component_t mca_if_solaris_ipv6_component;" >> $outfile.extern + echo " &mca_if_solaris_ipv6_component, " >> $outfile.struct + static_components="$static_components solaris_ipv6" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mpool:memkind can compile" >&5 -$as_echo_n "checking if MCA component mpool:memkind can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:solaris_ipv6 can compile" >&5 +$as_echo_n "checking if MCA component if:solaris_ipv6 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_mpool" = "memkind" ; then + if test "$DIRECT_if" = "solaris_ipv6" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_mpool_DIRECT_CALL_HEADER=$line" + str="MCA_opal_if_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** mpool component memkind was supposed to be direct-called, but +as_fn_error $? "*** if component solaris_ipv6 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -154033,8 +152208,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_mpool" = "memkind" ; then -as_fn_error $? "*** mpool component memkind was supposed to be direct-called, but + if test "$DIRECT_if" = "solaris_ipv6" ; then +as_fn_error $? "*** if component solaris_ipv6 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -154049,7 +152224,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$mpool_memkind_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$if_solaris_ipv6_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -154089,7 +152264,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mpool_memkind_LDFLAGS; do + for arg in $if_solaris_ipv6_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -154170,7 +152345,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mpool_memkind_WRAPPER_EXTRA_LDFLAGS; do + for arg in $if_solaris_ipv6_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -154212,7 +152387,7 @@ fi - if test "$mpool_memkind_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$if_solaris_ipv6_WRAPPER_EXTRA_LIBS" = ""; then : @@ -154252,7 +152427,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mpool_memkind_LIBS; do + for arg in $if_solaris_ipv6_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -154333,7 +152508,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mpool_memkind_WRAPPER_EXTRA_LIBS; do + for arg in $if_solaris_ipv6_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -154381,7 +152556,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$mpool_memkind_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$if_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -154424,7 +152599,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mpool_memkind_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $if_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -154467,32 +152642,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring mpool_memkind_WRAPPER_EXTRA_CPPFLAGS ($mpool_memkind_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring mpool_memkind_WRAPPER_EXTRA_CPPFLAGS ($mpool_memkind_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring if_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS ($if_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring if_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS ($if_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mpool:memkind can compile" >&5 -$as_echo_n "checking if MCA component mpool:memkind can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:solaris_ipv6 can compile" >&5 +$as_echo_n "checking if MCA component if:solaris_ipv6 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_mpool" = "memkind" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"memkind\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"memkind\" failed to configure properly" >&2;} + if test "$with_if" = "solaris_ipv6" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"solaris_ipv6\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"solaris_ipv6\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_mpool" ; then - if test "$DIRECT_mpool" = "memkind" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"memkind\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"memkind\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_if" ; then + if test "$DIRECT_if" = "solaris_ipv6" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"solaris_ipv6\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"solaris_ipv6\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -154500,23 +152675,23 @@ fi # add component to all component list - all_components="$all_components memkind" + all_components="$all_components solaris_ipv6" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_mpool_memkind_DSO=1 + BUILD_opal_if_solaris_ipv6_DSO=1 else - BUILD_opal_mpool_memkind_DSO=0 + BUILD_opal_if_solaris_ipv6_DSO=0 fi - if test "$BUILD_opal_mpool_memkind_DSO" = "1"; then - MCA_BUILD_opal_mpool_memkind_DSO_TRUE= - MCA_BUILD_opal_mpool_memkind_DSO_FALSE='#' + if test "$BUILD_opal_if_solaris_ipv6_DSO" = "1"; then + MCA_BUILD_opal_if_solaris_ipv6_DSO_TRUE= + MCA_BUILD_opal_if_solaris_ipv6_DSO_FALSE='#' else - MCA_BUILD_opal_mpool_memkind_DSO_TRUE='#' - MCA_BUILD_opal_mpool_memkind_DSO_FALSE= + MCA_BUILD_opal_if_solaris_ipv6_DSO_TRUE='#' + MCA_BUILD_opal_if_solaris_ipv6_DSO_FALSE= fi @@ -154540,16 +152715,16 @@ if test "1" != "0"; then : - for component_path in $srcdir/opal/mca/mpool/* ; do + for component_path in $srcdir/opal/mca/if/* ; do component="`basename $component_path`" if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component mpool:$component (need to configure)" + opal_show_subsubsubtitle "MCA component if:$component (need to configure)" opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/opal/mca/mpool/$component" + component_path="$srcdir/opal/mca/if/$component" want_component=0 # build if: @@ -154581,8 +152756,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_mpool" ; then - if test "$DIRECT_mpool" = "$component" ; then + if test ! -z "$DIRECT_if" ; then + if test "$DIRECT_if" = "$component" ; then want_component=1 else want_component=0 @@ -154591,10 +152766,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_mpool" = "1"; then : + if test "$DISABLE_if" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_mpool_$component" + str="DISABLED_COMPONENT_CHECK=\$DISABLE_if_$component" eval $str if test "$DISABLED_COMPONENT_CHECK" = "1" ; then want_component=0 @@ -154607,12 +152782,12 @@ fi - SHARED_FRAMEWORK="$DSO_mpool" - str="SHARED_COMPONENT=\$DSO_mpool_$component" + SHARED_FRAMEWORK="$DSO_if" + str="SHARED_COMPONENT=\$DSO_if_$component" eval $str - STATIC_FRAMEWORK="$STATIC_mpool" - str="STATIC_COMPONENT=\$STATIC_mpool_$component" + STATIC_FRAMEWORK="$STATIC_if" + str="STATIC_COMPONENT=\$STATIC_if_$component" eval $str shared_mode_override=static @@ -154631,9 +152806,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component mpool:$component compile mode" >&5 -$as_echo_n "checking for MCA component mpool:$component compile mode... " >&6; } - if test "$DIRECT_mpool" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component if:$component compile mode" >&5 +$as_echo_n "checking for MCA component if:$component compile mode... " >&6; } + if test "$DIRECT_if" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -154686,12 +152861,12 @@ # # Invoke configure in a specific subdirectory. # -# opal/mca/mpool/$component is the directory to invoke in +# opal/mca/if/$component is the directory to invoke in # $opal_subdir_args is the list of arguments to pass # should_build=1 is actions to execute upon success # should_build=0 is actions to execute upon failure # -subdir_dir="opal/mca/mpool/$component" +subdir_dir="opal/mca/if/$component" subdir_args="$opal_subdir_args" subdir_success="should_build=1" subdir_failure="should_build=0" @@ -154835,7 +153010,7 @@ # do some extra work to pass flags back from the # top-level configure, the way a configure.m4 # component would. - infile="$srcdir/opal/mca/mpool/all_components/post_configure.sh" + infile="$srcdir/opal/mca/if/all_components/post_configure.sh" if test -f $infile; then # First check for the ABORT tag @@ -154849,12 +153024,12 @@ line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - mpool_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + if_all_components_WRAPPER_EXTRA_LDFLAGS="$line" fi line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - mpool_all_components_WRAPPER_EXTRA_LIBS="$line" + if_all_components_WRAPPER_EXTRA_LIBS="$line" fi fi @@ -154863,7 +153038,7 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/mpool/$component/post_configure.sh" + infile="$srcdir/opal/mca/if/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs all_components="$all_components $component" @@ -154871,37 +153046,37 @@ if test "$compile_mode" = "dso" ; then dso_components="$dso_components $component" else - if test "mpool" = "common"; then + if test "if" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/mpool/$component/lib${OPAL_LIB_PREFIX}mca_mpool_$component.la $static_ltlibs" + static_ltlibs="mca/if/$component/lib${OPAL_LIB_PREFIX}mca_if_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/mpool/$component/libmca_mpool_$component.la $static_ltlibs" + static_ltlibs="mca/if/$component/libmca_if_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_mpool_$component_component;" >> $outfile.extern - echo " &mca_mpool_$component_component, " >> $outfile.struct + echo "extern const mca_base_component_t mca_if_$component_component;" >> $outfile.extern + echo " &mca_if_$component_component, " >> $outfile.struct static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mpool:$component can compile" >&5 -$as_echo_n "checking if MCA component mpool:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:$component can compile" >&5 +$as_echo_n "checking if MCA component if:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_mpool" = "$component" ; then + if test "$DIRECT_if" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_mpool_DIRECT_CALL_HEADER=$line" + str="MCA_opal_if_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** mpool component $component was supposed to be direct-called, but +as_fn_error $? "*** if component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -154909,8 +153084,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_mpool" = "$component" ; then -as_fn_error $? "*** mpool component $component was supposed to be direct-called, but + if test "$DIRECT_if" = "$component" ; then +as_fn_error $? "*** if component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -154925,7 +153100,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$mpool_$component_WRAPPER_EXTRA_LDFLAGS" + str="line=\$if_$component_WRAPPER_EXTRA_LDFLAGS" eval "$str" @@ -155006,7 +153181,7 @@ unset $opal_var done -str="line=\$mpool_$component_WRAPPER_EXTRA_LIBS" +str="line=\$if_$component_WRAPPER_EXTRA_LIBS" eval "$str" @@ -155097,14 +153272,14 @@ else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mpool:$component can compile" >&5 -$as_echo_n "checking if MCA component mpool:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component if:$component can compile" >&5 +$as_echo_n "checking if MCA component if:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_mpool" = "$component" ; then + if test "$with_if" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 @@ -155112,8 +153287,8 @@ as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_mpool" ; then - if test "$DIRECT_mpool" = "$component" ; then + if test ! -z "$DIRECT_if" ; then + if test "$DIRECT_if" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 @@ -155128,10 +153303,10 @@ fi - MCA_opal_mpool_ALL_COMPONENTS="$all_components" - MCA_opal_mpool_STATIC_COMPONENTS="$static_components" - MCA_opal_mpool_DSO_COMPONENTS="$dso_components" - MCA_opal_mpool_STATIC_LTLIBS="$static_ltlibs" + MCA_opal_if_ALL_COMPONENTS="$all_components" + MCA_opal_if_STATIC_COMPONENTS="$static_components" + MCA_opal_if_DSO_COMPONENTS="$dso_components" + MCA_opal_if_STATIC_LTLIBS="$static_ltlibs" @@ -155139,23 +153314,23 @@ - MCA_opal_mpool_ALL_SUBDIRS= + MCA_opal_if_ALL_SUBDIRS= for item in $all_components ; do - MCA_opal_mpool_ALL_SUBDIRS="$MCA_opal_mpool_ALL_SUBDIRS mca/mpool/$item" + MCA_opal_if_ALL_SUBDIRS="$MCA_opal_if_ALL_SUBDIRS mca/if/$item" done - MCA_opal_mpool_STATIC_SUBDIRS= + MCA_opal_if_STATIC_SUBDIRS= for item in $static_components ; do - MCA_opal_mpool_STATIC_SUBDIRS="$MCA_opal_mpool_STATIC_SUBDIRS mca/mpool/$item" + MCA_opal_if_STATIC_SUBDIRS="$MCA_opal_if_STATIC_SUBDIRS mca/if/$item" done - MCA_opal_mpool_DSO_SUBDIRS= + MCA_opal_if_DSO_SUBDIRS= for item in $dso_components ; do - MCA_opal_mpool_DSO_SUBDIRS="$MCA_opal_mpool_DSO_SUBDIRS mca/mpool/$item" + MCA_opal_if_DSO_SUBDIRS="$MCA_opal_if_DSO_SUBDIRS mca/if/$item" done @@ -155163,7 +153338,7 @@ # Create the final .h file that will be included in the type's # top-level glue. This lists all the static components. We don't # need to do this for "common". - if test "mpool" != "common"; then + if test "if" != "common"; then cat > $outfile <&5 -$as_echo_n "checking for no configure components in framework patcher... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework installdirs" >&5 +$as_echo_n "checking for no configure components in framework installdirs... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework patcher" >&5 -$as_echo_n "checking for m4 configure components in framework patcher... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: linux, overwrite" >&5 -$as_echo "linux, overwrite" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework installdirs" >&5 +$as_echo_n "checking for m4 configure components in framework installdirs... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: config, env" >&5 +$as_echo "config, env" >&6; } # If there are components in the no configure list, but we're # doing one of the "special" selection logics, abort with a @@ -155259,18 +153434,21 @@ + + + best_mca_component_priority=0 components_looking_for_succeed=1 components_last_result=0 - opal_show_subsubsubtitle "MCA component patcher:linux (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component installdirs:env (m4 configuration macro, priority 10)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/patcher/linux" + component_path="$srcdir/opal/mca/installdirs/env" want_component=0 # build if: @@ -155302,8 +153480,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_patcher" ; then - if test "$DIRECT_patcher" = "linux" ; then + if test ! -z "$DIRECT_installdirs" ; then + if test "$DIRECT_installdirs" = "env" ; then want_component=1 else want_component=0 @@ -155312,10 +153490,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_patcher" = "1"; then : + if test "$DISABLE_installdirs" = "1"; then : want_component=0 fi - if test "$DISABLE_patcher_linux" = "1"; then : + if test "$DISABLE_installdirs_env" = "1"; then : want_component=0 fi @@ -155328,43 +153506,89 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_patcher" - SHARED_COMPONENT="$DSO_patcher_linux" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component installdirs:env compile mode" >&5 +$as_echo_n "checking for MCA component installdirs:env compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - STATIC_FRAMEWORK="$STATIC_patcher" - STATIC_COMPONENT="$STATIC_patcher_linux" - shared_mode_override=static + # try to configure the component - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + ac_config_files="$ac_config_files opal/mca/installdirs/env/Makefile" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component patcher:linux compile mode" >&5 -$as_echo_n "checking for MCA component patcher:linux compile mode... " >&6; } - if test "$DIRECT_patcher" = "linux" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/installdirs/env/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components env" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components env" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + if test "installdirs" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/installdirs/env/lib${OPAL_LIB_PREFIX}mca_installdirs_env.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/installdirs/env/libmca_installdirs_env.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_installdirs_env_component;" >> $outfile.extern + echo " &mca_installdirs_env_component, " >> $outfile.struct + static_components="$static_components env" fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component installdirs:env can compile" >&5 +$as_echo_n "checking if MCA component installdirs:env can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - # try to configure the component - - ac_config_files="$ac_config_files opal/mca/patcher/linux/Makefile" + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_installdirs" = "env" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_installdirs_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** installdirs component env was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_installdirs" = "env" ; then +as_fn_error $? "*** installdirs component env was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$installdirs_env_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -155377,7 +153601,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_patcher_linux_CPPFLAGS_save; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -155396,7 +153620,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_patcher_linux_CPPFLAGS_save\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -155404,30 +153628,48 @@ opal_scope_index=`expr $opal_scope_index + 1` - opal_patcher_linux_happy=no - if test $OPAL_ENABLE_DLOPEN_SUPPORT = 1 ; then - # Only enable on Linux for now. In the future this component might - # be modified to work on FreeBSD. - case $host in - *-linux*) - opal_patcher_linux_happy=yes; - ;; - esac + for arg in $installdirs_env_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - if test $opal_patcher_linux_happy = yes ; then - opal_check_package_patcher_linux_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_patcher_linux_save_LDFLAGS="$LDFLAGS" - opal_check_package_patcher_linux_save_LIBS="$LIBS" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_check_package_patcher_linux_orig_CPPFLAGS="$patcher_linux_CPPFLAGS" - opal_check_package_patcher_linux_orig_LDFLAGS="$patcher_linux_LDFLAGS" - opal_check_package_patcher_linux_orig_LIBS="$patcher_linux_LIBS" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering +else @@ -155440,7 +153682,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -155459,7 +153701,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -155467,357 +153709,49 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_dlfcn_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in dlfcn.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" -if test "x$ac_cv_header_dlfcn_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLFCN_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_dlfcn_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - patcher_linux_CPPFLAGS="$patcher_linux_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in dlfcn.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" -if test "x$ac_cv_header_dlfcn_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLFCN_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_dl_iterate_phdr - opal_check_package_lib_happy="no" - if test "" != ""; then : - # libdir was specified - search only there - patcher_linux_LDFLAGS="$patcher_linux_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5 -$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; } -if ${ac_cv_search_dl_iterate_phdr+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dl_iterate_phdr (); -int -main () -{ -return dl_iterate_phdr (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dl_iterate_phdr=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dl_iterate_phdr+:} false; then : - break -fi -done -if ${ac_cv_search_dl_iterate_phdr+:} false; then : - -else - ac_cv_search_dl_iterate_phdr=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dl_iterate_phdr" >&5 -$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; } -ac_res=$ac_cv_search_dl_iterate_phdr -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" - patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" - unset ac_cv_search_dl_iterate_phdr -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5 -$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; } -if ${ac_cv_search_dl_iterate_phdr+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dl_iterate_phdr (); -int -main () -{ -return dl_iterate_phdr (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dl_iterate_phdr=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dl_iterate_phdr+:} false; then : - break -fi -done -if ${ac_cv_search_dl_iterate_phdr+:} false; then : - -else - ac_cv_search_dl_iterate_phdr=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dl_iterate_phdr" >&5 -$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; } -ac_res=$ac_cv_search_dl_iterate_phdr -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" - patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" - unset ac_cv_search_dl_iterate_phdr + for arg in $installdirs_env_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - patcher_linux_LDFLAGS="$patcher_linux_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5 -$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; } -if ${ac_cv_search_dl_iterate_phdr+:} false; then : - $as_echo_n "(cached) " >&6 + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dl_iterate_phdr (); -int -main () -{ -return dl_iterate_phdr (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dl_iterate_phdr=$ac_res + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dl_iterate_phdr+:} false; then : - break fi -done -if ${ac_cv_search_dl_iterate_phdr+:} false; then : + done -else - ac_cv_search_dl_iterate_phdr=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dl_iterate_phdr" >&5 -$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; } -ac_res=$ac_cv_search_dl_iterate_phdr -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" - patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" - unset ac_cv_search_dl_iterate_phdr -fi -fi -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - patcher_linux_LDFLAGS="$patcher_linux_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5 -$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; } -if ${ac_cv_search_dl_iterate_phdr+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dl_iterate_phdr (); -int -main () -{ -return dl_iterate_phdr (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dl_iterate_phdr=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dl_iterate_phdr+:} false; then : - break -fi -done -if ${ac_cv_search_dl_iterate_phdr+:} false; then : + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -else - ac_cv_search_dl_iterate_phdr=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dl_iterate_phdr" >&5 -$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; } -ac_res=$ac_cv_search_dl_iterate_phdr -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" - patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" - unset ac_cv_search_dl_iterate_phdr -fi -fi fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + if test "$installdirs_env_WRAPPER_EXTRA_LIBS" = ""; then : @@ -155830,7 +153764,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -155849,16 +153783,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $installdirs_env_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -155871,7 +153845,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -155890,7 +153864,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -155898,276 +153872,115 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libdl requires libnl v1 or v3" >&5 -$as_echo_n "checking if libdl requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void dl_iterate_phdr (void); -int main(int argc, char *argv[]) { - dl_iterate_phdr (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:155925: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ldl $LIBS $patcher_linux_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ldl $LIBS $patcher_linux_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:155932: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" + for arg in $installdirs_env_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" + done fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib dl" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib dl" >&2;} - + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libdl links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libdl links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} - - libnl_sane=0 fi - - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas dl requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas dl requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} - - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs dl" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" - - # Increment the counter - - opal_i="`expr $opal_i + 1`" done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -# Clean up + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libdl requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libdl requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} - - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs dl" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" + fi - # Increment the counter + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$installdirs_env_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Done; do the assignment + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 + for arg in $installdirs_env_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - + done fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done # Unwind the index @@ -156191,874 +154004,147 @@ done - ;; - esac +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring installdirs_env_WRAPPER_EXTRA_CPPFLAGS ($installdirs_env_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring installdirs_env_WRAPPER_EXTRA_CPPFLAGS ($installdirs_env_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - opal_check_package_libnl_check_ok=$opal_libnl_sane +else - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component installdirs:env can compile" >&5 +$as_echo_n "checking if MCA component installdirs:env can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_installdirs" = "env" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"env\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"env\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - + if test ! -z "$DIRECT_installdirs" ; then + if test "$DIRECT_installdirs" = "env" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"env\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"env\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no + # add component to all component list + all_components="$all_components env" fi -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_dl_iterate_phdr" != "no" && - test "$ac_cv_search_dl_iterate_phdr" != "none required"; then : - patcher_linux_LIBS="$ac_cv_search_dl_iterate_phdr " + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_installdirs_env_DSO=1 else - patcher_linux_LIBS="" + BUILD_opal_installdirs_env_DSO=0 fi - opal_check_package_happy="yes" + if test "$BUILD_opal_installdirs_env_DSO" = "1"; then + MCA_BUILD_opal_installdirs_env_DSO_TRUE= + MCA_BUILD_opal_installdirs_env_DSO_FALSE='#' else - opal_check_package_happy="no" + MCA_BUILD_opal_installdirs_env_DSO_TRUE='#' + MCA_BUILD_opal_installdirs_env_DSO_FALSE= fi + if test "$should_build" = "1"; then : + components_last_result=1 else - opal_check_package_happy="no" + components_last_result=0 fi -else - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + unset compile_mode - # see comment above - unset ac_cv_search_dl_iterate_phdr - opal_check_package_lib_happy="no" - if test "" != ""; then : - # libdir was specified - search only there - patcher_linux_LDFLAGS="$patcher_linux_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5 -$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; } -if ${ac_cv_search_dl_iterate_phdr+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dl_iterate_phdr (); -int -main () -{ -return dl_iterate_phdr (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dl_iterate_phdr=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dl_iterate_phdr+:} false; then : - break -fi -done -if ${ac_cv_search_dl_iterate_phdr+:} false; then : - -else - ac_cv_search_dl_iterate_phdr=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dl_iterate_phdr" >&5 -$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; } -ac_res=$ac_cv_search_dl_iterate_phdr -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" - patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" - unset ac_cv_search_dl_iterate_phdr -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5 -$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; } -if ${ac_cv_search_dl_iterate_phdr+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dl_iterate_phdr (); -int -main () -{ -return dl_iterate_phdr (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dl_iterate_phdr=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dl_iterate_phdr+:} false; then : - break -fi -done -if ${ac_cv_search_dl_iterate_phdr+:} false; then : - -else - ac_cv_search_dl_iterate_phdr=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dl_iterate_phdr" >&5 -$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; } -ac_res=$ac_cv_search_dl_iterate_phdr -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" - patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" - unset ac_cv_search_dl_iterate_phdr -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - patcher_linux_LDFLAGS="$patcher_linux_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5 -$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; } -if ${ac_cv_search_dl_iterate_phdr+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dl_iterate_phdr (); -int -main () -{ -return dl_iterate_phdr (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dl_iterate_phdr=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dl_iterate_phdr+:} false; then : - break -fi -done -if ${ac_cv_search_dl_iterate_phdr+:} false; then : - -else - ac_cv_search_dl_iterate_phdr=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dl_iterate_phdr" >&5 -$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; } -ac_res=$ac_cv_search_dl_iterate_phdr -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" - patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" - unset ac_cv_search_dl_iterate_phdr -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - patcher_linux_LDFLAGS="$patcher_linux_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5 -$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; } -if ${ac_cv_search_dl_iterate_phdr+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dl_iterate_phdr (); -int -main () -{ -return dl_iterate_phdr (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dl_iterate_phdr=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dl_iterate_phdr+:} false; then : - break -fi -done -if ${ac_cv_search_dl_iterate_phdr+:} false; then : - -else - ac_cv_search_dl_iterate_phdr=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dl_iterate_phdr" >&5 -$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; } -ac_res=$ac_cv_search_dl_iterate_phdr -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" - patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" - unset ac_cv_search_dl_iterate_phdr -fi -fi -fi -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + opal_show_subsubsubtitle "MCA component installdirs:config (m4 configuration macro, priority 0)" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + component_path="$srcdir/opal/mca/installdirs/config" + want_component=0 - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - opal_libnl_sane=1 - case $host in - *linux*) - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_installdirs" ; then + if test "$DIRECT_installdirs" = "config" ; then + want_component=1 + else + want_component=0 + fi fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libdl requires libnl v1 or v3" >&5 -$as_echo_n "checking if libdl requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void dl_iterate_phdr (void); -int main(int argc, char *argv[]) { - dl_iterate_phdr (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:156650: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ldl $LIBS $patcher_linux_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ldl $LIBS $patcher_linux_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:156657: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib dl" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib dl" >&2;} - -fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libdl links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libdl links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} - - libnl_sane=0 -fi - - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas dl requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas dl requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} - - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs dl" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" - - # Increment the counter - - opal_i="`expr $opal_i + 1`" - done - - # If we didn't find the token, add it to the "array" - - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval - -# Clean up - -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi - -fi - - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libdl requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libdl requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} - - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs dl" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" - - # Increment the counter - - opal_i="`expr $opal_i + 1`" - done - - # If we didn't find the token, add it to the "array" - - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval - -# Clean up - -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi - -fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - ;; - esac - - opal_check_package_libnl_check_ok=$opal_libnl_sane - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_dl_iterate_phdr" != "no" && - test "$ac_cv_search_dl_iterate_phdr" != "none required"; then : - patcher_linux_LIBS="$ac_cv_search_dl_iterate_phdr " -else - patcher_linux_LIBS="" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi - - + # if we were explicitly disabled, don't build :) + if test "$DISABLE_installdirs" = "1"; then : + want_component=0 fi - unset opal_check_package_header_happy - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - - if test "$opal_check_package_happy" = "yes"; then : - -else - patcher_linux_CPPFLAGS="$opal_check_package_patcher_linux_orig_CPPFLAGS" - patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" - patcher_linux_LIBS="$opal_check_package_patcher_linux_orig_LIBS" - opal_patcher_linux_happy=no + if test "$DISABLE_installdirs_config" = "1"; then : + want_component=0 fi - CPPFLAGS="$opal_check_package_patcher_linux_save_CPPFLAGS" - LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" - LIBS="$opal_check_package_patcher_linux_save_LIBS" - - for ac_header in elf.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "elf.h" "ac_cv_header_elf_h" "$ac_includes_default" -if test "x$ac_cv_header_elf_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_ELF_H 1 -_ACEOF - + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else - opal_patcher_linux_happy=no -fi - -done - - for ac_header in sys/auxv.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "sys/auxv.h" "ac_cv_header_sys_auxv_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_auxv_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SYS_AUXV_H 1 -_ACEOF - + should_build=0 fi -done - - fi - fi - - # this component can not be used until we can determine a way to hook munmap, etc inside - # glibc. this is needed to catch munmap called by free - opal_patcher_linux_happy=no + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - if test $opal_patcher_linux_happy = yes; then : - should_build=$should_build -else - should_build=0 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component installdirs:config compile mode" >&5 +$as_echo_n "checking for MCA component installdirs:config compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # try to configure the component - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + ac_config_files="$ac_config_files opal/mca/installdirs/config/Makefile opal/mca/installdirs/config/install_dirs.h" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -157069,45 +154155,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/patcher/linux/post_configure.sh" + infile="$srcdir/opal/mca/installdirs/config/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components linux" + all_components="$all_components config" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components linux" + dso_components="$dso_components config" else - if test "patcher" = "common"; then + if test "installdirs" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/patcher/linux/lib${OPAL_LIB_PREFIX}mca_patcher_linux.la $static_ltlibs" + static_ltlibs="mca/installdirs/config/lib${OPAL_LIB_PREFIX}mca_installdirs_config.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/patcher/linux/libmca_patcher_linux.la $static_ltlibs" + static_ltlibs="mca/installdirs/config/libmca_installdirs_config.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_patcher_linux_component;" >> $outfile.extern - echo " &mca_patcher_linux_component, " >> $outfile.struct - static_components="$static_components linux" + echo "extern const mca_base_component_t mca_installdirs_config_component;" >> $outfile.extern + echo " &mca_installdirs_config_component, " >> $outfile.struct + static_components="$static_components config" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component patcher:linux can compile" >&5 -$as_echo_n "checking if MCA component patcher:linux can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component installdirs:config can compile" >&5 +$as_echo_n "checking if MCA component installdirs:config can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_patcher" = "linux" ; then + if test "$DIRECT_installdirs" = "config" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_patcher_DIRECT_CALL_HEADER=$line" + str="MCA_opal_installdirs_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** patcher component linux was supposed to be direct-called, but +as_fn_error $? "*** installdirs component config was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -157115,8 +154201,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_patcher" = "linux" ; then -as_fn_error $? "*** patcher component linux was supposed to be direct-called, but + if test "$DIRECT_installdirs" = "config" ; then +as_fn_error $? "*** installdirs component config was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -157131,7 +154217,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$patcher_linux_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$installdirs_config_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -157171,7 +154257,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $patcher_linux_LDFLAGS; do + for arg in $installdirs_config_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -157252,7 +154338,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $patcher_linux_WRAPPER_EXTRA_LDFLAGS; do + for arg in $installdirs_config_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -157294,7 +154380,7 @@ fi - if test "$patcher_linux_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$installdirs_config_WRAPPER_EXTRA_LIBS" = ""; then : @@ -157334,7 +154420,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $patcher_linux_LIBS; do + for arg in $installdirs_config_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -157415,7 +154501,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $patcher_linux_WRAPPER_EXTRA_LIBS; do + for arg in $installdirs_config_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -157463,7 +154549,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$patcher_linux_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$installdirs_config_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -157506,7 +154592,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $patcher_linux_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $installdirs_config_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -157549,32 +154635,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring patcher_linux_WRAPPER_EXTRA_CPPFLAGS ($patcher_linux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring patcher_linux_WRAPPER_EXTRA_CPPFLAGS ($patcher_linux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring installdirs_config_WRAPPER_EXTRA_CPPFLAGS ($installdirs_config_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring installdirs_config_WRAPPER_EXTRA_CPPFLAGS ($installdirs_config_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component patcher:linux can compile" >&5 -$as_echo_n "checking if MCA component patcher:linux can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component installdirs:config can compile" >&5 +$as_echo_n "checking if MCA component installdirs:config can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_patcher" = "linux" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"linux\" failed to configure properly" >&2;} + if test "$with_installdirs" = "config" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"config\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"config\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_patcher" ; then - if test "$DIRECT_patcher" = "linux" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"linux\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_installdirs" ; then + if test "$DIRECT_installdirs" = "config" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"config\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"config\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -157582,23 +154668,23 @@ fi # add component to all component list - all_components="$all_components linux" + all_components="$all_components config" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_patcher_linux_DSO=1 + BUILD_opal_installdirs_config_DSO=1 else - BUILD_opal_patcher_linux_DSO=0 + BUILD_opal_installdirs_config_DSO=0 fi - if test "$BUILD_opal_patcher_linux_DSO" = "1"; then - MCA_BUILD_opal_patcher_linux_DSO_TRUE= - MCA_BUILD_opal_patcher_linux_DSO_FALSE='#' + if test "$BUILD_opal_installdirs_config_DSO" = "1"; then + MCA_BUILD_opal_installdirs_config_DSO_TRUE= + MCA_BUILD_opal_installdirs_config_DSO_FALSE='#' else - MCA_BUILD_opal_patcher_linux_DSO_TRUE='#' - MCA_BUILD_opal_patcher_linux_DSO_FALSE= + MCA_BUILD_opal_installdirs_config_DSO_TRUE='#' + MCA_BUILD_opal_installdirs_config_DSO_FALSE= fi @@ -157614,138 +154700,448 @@ - opal_show_subsubsubtitle "MCA component patcher:overwrite (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - component_path="$srcdir/opal/mca/patcher/overwrite" - want_component=0 - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_patcher" ; then - if test "$DIRECT_patcher" = "overwrite" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + MCA_opal_installdirs_ALL_COMPONENTS="$all_components" + MCA_opal_installdirs_STATIC_COMPONENTS="$static_components" + MCA_opal_installdirs_DSO_COMPONENTS="$dso_components" + MCA_opal_installdirs_STATIC_LTLIBS="$static_ltlibs" - # if we were explicitly disabled, don't build :) - if test "$DISABLE_patcher" = "1"; then : - want_component=0 -fi - if test "$DISABLE_patcher_overwrite" = "1"; then : - want_component=0 -fi - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_patcher" - SHARED_COMPONENT="$DSO_patcher_overwrite" - STATIC_FRAMEWORK="$STATIC_patcher" - STATIC_COMPONENT="$STATIC_patcher_overwrite" - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + MCA_opal_installdirs_ALL_SUBDIRS= + for item in $all_components ; do + MCA_opal_installdirs_ALL_SUBDIRS="$MCA_opal_installdirs_ALL_SUBDIRS mca/installdirs/$item" + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component patcher:overwrite compile mode" >&5 -$as_echo_n "checking for MCA component patcher:overwrite compile mode... " >&6; } - if test "$DIRECT_patcher" = "overwrite" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - # try to configure the component + MCA_opal_installdirs_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_opal_installdirs_STATIC_SUBDIRS="$MCA_opal_installdirs_STATIC_SUBDIRS mca/installdirs/$item" + done - ac_config_files="$ac_config_files opal/mca/patcher/overwrite/Makefile" - opal_patcher_overwrite_happy=no - if test $OPAL_ENABLE_DLOPEN_SUPPORT = 1; then -# Disable ia64 for now. We can revive it later if anyone cares - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + MCA_opal_installdirs_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_opal_installdirs_DSO_SUBDIRS="$MCA_opal_installdirs_DSO_SUBDIRS mca/installdirs/$item" + done -#if !defined(__i386__) && !defined(__x86_64__) && !defined(__PPC__) && !defined(__aarch64__) -#error "platform not supported" -#endif -int -main () -{ + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "installdirs" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS memchecker" + MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/memchecker" + MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_memchecker_ALL_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_memchecker_DSO_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_memchecker_STATIC_SUBDIRS)" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/memchecker/libmca_memchecker.la" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_memchecker_STATIC_LTLIBS)" + + opal_show_subsubtitle "Pre-configuring the framework memchecker" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-memchecker was specified" >&5 +$as_echo_n "checking if --enable-memchecker was specified... " >&6; } + # Check whether --enable-memchecker was given. +if test "${enable_memchecker+set}" = set; then : + enableval=$enable_memchecker; +fi + + if test "$enable_memchecker" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + WANT_MEMCHECKER=1 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (adding \"memchecker\" to --enable-mca-no-build list)" >&5 +$as_echo "no (adding \"memchecker\" to --enable-mca-no-build list)" >&6; } + WANT_MEMCHECKER=0 + + # Setting this environment variable causes + # MCA_COMONENT_BUILD_CHECK (in opal_mca.m4, invoked by + # MCA_CONFIGURE_FRAMEWORK, below) to rule that the component + # should not be built. It is effectively the same as adding + # "memchecker" to the --enable-mca-no-build list. + DISABLE_memchecker=1 + fi + +cat >>confdefs.h <<_ACEOF +#define OPAL_WANT_MEMCHECKER $WANT_MEMCHECKER +_ACEOF + + if test "$WANT_MEMCHECKER" = "1"; then + OPAL_WANT_MEMCHECKER_TRUE= + OPAL_WANT_MEMCHECKER_FALSE='#' +else + OPAL_WANT_MEMCHECKER_TRUE='#' + OPAL_WANT_MEMCHECKER_FALSE= +fi + + + # first, compile all the components + + opal_show_subsubtitle "Configuring MCA framework memchecker" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=opal/mca/memchecker/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files opal/mca/memchecker/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework memchecker" >&5 +$as_echo_n "checking for no configure components in framework memchecker... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework memchecker" >&5 +$as_echo_n "checking for m4 configure components in framework memchecker... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: valgrind" >&5 +$as_echo "valgrind" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + + # configure components that use built-in configuration scripts + + + + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + opal_show_subsubsubtitle "MCA component memchecker:valgrind (m4 configuration macro, priority 10)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/opal/mca/memchecker/valgrind" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_memchecker" ; then + if test "$DIRECT_memchecker" = "valgrind" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_memchecker" = "1"; then : + want_component=0 +fi + if test "$DISABLE_memchecker_valgrind" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component memchecker:valgrind compile mode" >&5 +$as_echo_n "checking for MCA component memchecker:valgrind compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + + + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/memchecker/valgrind/Makefile" + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_memchecker_valgrind_save_CPPFLAGS opal_memchecker_valgrind_happy opal_memchecker_valgrind_CPPFLAGS; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_memchecker_valgrind_save_CPPFLAGS opal_memchecker_valgrind_happy opal_memchecker_valgrind_CPPFLAGS\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + +# Check whether --with-valgrind was given. +if test "${with_valgrind+set}" = set; then : + withval=$with_valgrind; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-valgrind value" >&5 +$as_echo_n "checking --with-valgrind value... " >&6; } + if test "$with_valgrind" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-valgrind)" >&5 +$as_echo "simple no (specified --without-valgrind)" >&6; } +else + if test "$with_valgrind" = "yes" || test "x$with_valgrind" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_valgrind"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_valgrind not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_valgrind not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_valgrind/include/valgrind/valgrind.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_valgrind/include/valgrind/valgrind.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_valgrind/include/valgrind/valgrind.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_valgrind)" >&5 +$as_echo "sanity check ok ($with_valgrind)" >&6; } + +fi + + +fi + + +fi + + +fi + + + opal_memchecker_valgrind_CPPFLAGS= + opal_memchecker_valgrind_save_CPPFLAGS="$CPPFLAGS" + opal_memchecker_valgrind_happy=no + if test "$with_valgrind" != "no"; then : + if test -n "$with_valgrind" && test "$with_valgrind" != "yes"; then : + opal_memchecker_valgrind_CPPFLAGS="-I$with_valgrind/include" + # We need this -I to stay in CPPFLAGS when we're done + CPPFLAGS="$CPPFLAGS -I$with_valgrind/include" + opal_memchecker_valgrind_save_CPPFLAGS=$CPPFLAGS +fi + for ac_header in valgrind/valgrind.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "valgrind/valgrind.h" "ac_cv_header_valgrind_valgrind_h" "$ac_includes_default" +if test "x$ac_cv_header_valgrind_valgrind_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_VALGRIND_VALGRIND_H 1 +_ACEOF + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND_CHECK_MEM_IS_ADDRESSABLE" >&5 +$as_echo_n "checking for VALGRIND_CHECK_MEM_IS_ADDRESSABLE... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include "valgrind/memcheck.h" + +int +main () +{ +char buffer = 0x0f; + VALGRIND_CHECK_MEM_IS_ADDRESSABLE(&buffer, sizeof(buffer)); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - opal_patcher_overwrite_happy=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_memchecker_valgrind_happy=yes +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need Valgrind version 3.2.0 or later. Can not build component." >&5 +$as_echo "$as_me: WARNING: Need Valgrind version 3.2.0 or later. Can not build component." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: result: cross-compiling; assume yes...?" >&5 +$as_echo "cross-compiling; assume yes...?" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OMPI will fail to compile if you do not have Valgrind version 3.2.0 or later" >&5 +$as_echo "$as_me: WARNING: OMPI will fail to compile if you do not have Valgrind version 3.2.0 or later" >&2;} + opal_memchecker_valgrind_happy=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext, - if test $opal_patcher_overwrite_happy = yes; then : +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: valgrind.h not found" >&5 +$as_echo "$as_me: WARNING: valgrind.h not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot compile this component" >&5 +$as_echo "$as_me: WARNING: Cannot compile this component" >&2;} +fi + +done + +fi + CPPFLAGS="$opal_memchecker_valgrind_save_CPPFLAGS" + + # If we specifically requested this component and can't build it, error + if test "$with_valgrind" != "no" && test -n "$with_valgrind" && test "$opal_memchecker_valgrind_happy" != "yes"; then : + as_fn_error $? "Cannot continue" "$LINENO" 5 +fi + + if test "$opal_memchecker_valgrind_happy" = "yes"; then : should_build=$should_build else should_build=0 fi + + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -157754,45 +155150,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/patcher/overwrite/post_configure.sh" + infile="$srcdir/opal/mca/memchecker/valgrind/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components overwrite" + all_components="$all_components valgrind" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components overwrite" + dso_components="$dso_components valgrind" else - if test "patcher" = "common"; then + if test "memchecker" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/patcher/overwrite/lib${OPAL_LIB_PREFIX}mca_patcher_overwrite.la $static_ltlibs" + static_ltlibs="mca/memchecker/valgrind/lib${OPAL_LIB_PREFIX}mca_memchecker_valgrind.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/patcher/overwrite/libmca_patcher_overwrite.la $static_ltlibs" + static_ltlibs="mca/memchecker/valgrind/libmca_memchecker_valgrind.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_patcher_overwrite_component;" >> $outfile.extern - echo " &mca_patcher_overwrite_component, " >> $outfile.struct - static_components="$static_components overwrite" + echo "extern const mca_base_component_t mca_memchecker_valgrind_component;" >> $outfile.extern + echo " &mca_memchecker_valgrind_component, " >> $outfile.struct + static_components="$static_components valgrind" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component patcher:overwrite can compile" >&5 -$as_echo_n "checking if MCA component patcher:overwrite can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memchecker:valgrind can compile" >&5 +$as_echo_n "checking if MCA component memchecker:valgrind can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_patcher" = "overwrite" ; then + if test "$DIRECT_memchecker" = "valgrind" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_patcher_DIRECT_CALL_HEADER=$line" + str="MCA_opal_memchecker_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** patcher component overwrite was supposed to be direct-called, but +as_fn_error $? "*** memchecker component valgrind was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -157800,8 +155196,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_patcher" = "overwrite" ; then -as_fn_error $? "*** patcher component overwrite was supposed to be direct-called, but + if test "$DIRECT_memchecker" = "valgrind" ; then +as_fn_error $? "*** memchecker component valgrind was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -157816,7 +155212,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$patcher_overwrite_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$memchecker_valgrind_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -157856,7 +155252,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $patcher_overwrite_LDFLAGS; do + for arg in $memchecker_valgrind_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -157937,7 +155333,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $patcher_overwrite_WRAPPER_EXTRA_LDFLAGS; do + for arg in $memchecker_valgrind_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -157979,7 +155375,7 @@ fi - if test "$patcher_overwrite_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$memchecker_valgrind_WRAPPER_EXTRA_LIBS" = ""; then : @@ -158019,7 +155415,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $patcher_overwrite_LIBS; do + for arg in $memchecker_valgrind_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -158100,7 +155496,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $patcher_overwrite_WRAPPER_EXTRA_LIBS; do + for arg in $memchecker_valgrind_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -158148,8 +155544,8 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$patcher_overwrite_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 + if test "$memchecker_valgrind_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=1 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -158191,7 +155587,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $patcher_overwrite_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $memchecker_valgrind_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -158234,32 +155630,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring patcher_overwrite_WRAPPER_EXTRA_CPPFLAGS ($patcher_overwrite_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring patcher_overwrite_WRAPPER_EXTRA_CPPFLAGS ($patcher_overwrite_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring memchecker_valgrind_WRAPPER_EXTRA_CPPFLAGS ($memchecker_valgrind_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring memchecker_valgrind_WRAPPER_EXTRA_CPPFLAGS ($memchecker_valgrind_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component patcher:overwrite can compile" >&5 -$as_echo_n "checking if MCA component patcher:overwrite can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memchecker:valgrind can compile" >&5 +$as_echo_n "checking if MCA component memchecker:valgrind can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_patcher" = "overwrite" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"overwrite\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"overwrite\" failed to configure properly" >&2;} + if test "$with_memchecker" = "valgrind" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"valgrind\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"valgrind\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_patcher" ; then - if test "$DIRECT_patcher" = "overwrite" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"overwrite\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"overwrite\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_memchecker" ; then + if test "$DIRECT_memchecker" = "valgrind" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"valgrind\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"valgrind\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -158267,23 +155663,23 @@ fi # add component to all component list - all_components="$all_components overwrite" + all_components="$all_components valgrind" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_patcher_overwrite_DSO=1 + BUILD_opal_memchecker_valgrind_DSO=1 else - BUILD_opal_patcher_overwrite_DSO=0 + BUILD_opal_memchecker_valgrind_DSO=0 fi - if test "$BUILD_opal_patcher_overwrite_DSO" = "1"; then - MCA_BUILD_opal_patcher_overwrite_DSO_TRUE= - MCA_BUILD_opal_patcher_overwrite_DSO_FALSE='#' + if test "$BUILD_opal_memchecker_valgrind_DSO" = "1"; then + MCA_BUILD_opal_memchecker_valgrind_DSO_TRUE= + MCA_BUILD_opal_memchecker_valgrind_DSO_FALSE='#' else - MCA_BUILD_opal_patcher_overwrite_DSO_TRUE='#' - MCA_BUILD_opal_patcher_overwrite_DSO_FALSE= + MCA_BUILD_opal_memchecker_valgrind_DSO_TRUE='#' + MCA_BUILD_opal_memchecker_valgrind_DSO_FALSE= fi @@ -158295,8 +155691,174 @@ unset compile_mode + if test $components_last_result -eq 1; then : + components_looking_for_succeed=0 +fi + + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + MCA_opal_memchecker_ALL_COMPONENTS="$all_components" + MCA_opal_memchecker_STATIC_COMPONENTS="$static_components" + MCA_opal_memchecker_DSO_COMPONENTS="$dso_components" + MCA_opal_memchecker_STATIC_LTLIBS="$static_ltlibs" + + + + + + + + MCA_opal_memchecker_ALL_SUBDIRS= + for item in $all_components ; do + MCA_opal_memchecker_ALL_SUBDIRS="$MCA_opal_memchecker_ALL_SUBDIRS mca/memchecker/$item" + done + + MCA_opal_memchecker_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_opal_memchecker_STATIC_SUBDIRS="$MCA_opal_memchecker_STATIC_SUBDIRS mca/memchecker/$item" + done + + + + MCA_opal_memchecker_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_opal_memchecker_DSO_SUBDIRS="$MCA_opal_memchecker_DSO_SUBDIRS mca/memchecker/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "memchecker" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + + if test "$MCA_opal_memchecker_STATIC_COMPONENTS" != "" || test "$MCA_opal_memchecker_DSO_COMPONENTS" != ""; then : + memchecker_base_found=1 +else + memchecker_base_found=0 +fi + if test $WANT_MEMCHECKER -eq 1 && test $memchecker_base_found -eq 0; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Memchecker support requested, but no memchecker" >&5 +$as_echo "$as_me: WARNING: Memchecker support requested, but no memchecker" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: components configured successfully. Did you" >&5 +$as_echo "$as_me: WARNING: components configured successfully. Did you" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: forget --with-valgrind?" >&5 +$as_echo "$as_me: WARNING: forget --with-valgrind?" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +fi + + MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS memcpy" + MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/memcpy" + MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_memcpy_ALL_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_memcpy_DSO_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_memcpy_STATIC_SUBDIRS)" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/memcpy/libmca_memcpy.la" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_memcpy_STATIC_LTLIBS)" + + memcpy_base_include= + + # first, compile all the components + + opal_show_subsubtitle "Configuring MCA framework memcpy" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=opal/mca/memcpy/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files opal/mca/memcpy/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework memcpy" >&5 +$as_echo_n "checking for no configure components in framework memcpy... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework memcpy" >&5 +$as_echo_n "checking for m4 configure components in framework memcpy... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + + # configure components that use built-in configuration scripts + + + + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 # configure components that provide their own configure script. @@ -158304,19 +155866,177 @@ # works", so we don't :) + MCA_opal_memcpy_ALL_COMPONENTS="$all_components" + MCA_opal_memcpy_STATIC_COMPONENTS="$static_components" + MCA_opal_memcpy_DSO_COMPONENTS="$dso_components" + MCA_opal_memcpy_STATIC_LTLIBS="$static_ltlibs" - if test "1" != "0"; then : - for component_path in $srcdir/opal/mca/patcher/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component patcher:$component (need to configure)" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/opal/mca/patcher/$component" + + MCA_opal_memcpy_ALL_SUBDIRS= + for item in $all_components ; do + MCA_opal_memcpy_ALL_SUBDIRS="$MCA_opal_memcpy_ALL_SUBDIRS mca/memcpy/$item" + done + + + + MCA_opal_memcpy_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_opal_memcpy_STATIC_SUBDIRS="$MCA_opal_memcpy_STATIC_SUBDIRS mca/memcpy/$item" + done + + + + MCA_opal_memcpy_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_opal_memcpy_DSO_SUBDIRS="$MCA_opal_memcpy_DSO_SUBDIRS mca/memcpy/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "memcpy" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + + # someone should have set this... + if test "$memcpy_base_include" = "" ; then + memcpy_base_include="base/memcpy_base_default.h" + fi + + +cat >>confdefs.h <<_ACEOF +#define MCA_memcpy_IMPLEMENTATION_HEADER "opal/mca/memcpy/$memcpy_base_include" +_ACEOF + + + MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS memory" + MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/memory" + MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_memory_ALL_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_memory_DSO_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_memory_STATIC_SUBDIRS)" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/memory/libmca_memory.la" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_memory_STATIC_LTLIBS)" + + +# Check whether --with-memory-manager was given. +if test "${with_memory_manager+set}" = set; then : + withval=$with_memory_manager; +fi + + + memory_base_found=0 + memory_base_want=1 + if test "$with_memory_manager" = "no"; then : + memory_base_want=0 +fi + + opal_show_subsubtitle "Configuring MCA framework memory" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=opal/mca/memory/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files opal/mca/memory/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework memory" >&5 +$as_echo_n "checking for no configure components in framework memory... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework memory" >&5 +$as_echo_n "checking for m4 configure components in framework memory... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: malloc_solaris, patcher" >&5 +$as_echo "malloc_solaris, patcher" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + + # configure components that use built-in configuration scripts + + + + + + + best_mca_component_priority=0 + components_looking_for_succeed=$memory_base_want + components_last_result=0 + + + opal_show_subsubsubtitle "MCA component memory:patcher (m4 configuration macro, priority 41)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/opal/mca/memory/patcher" want_component=0 # build if: @@ -158348,8 +156068,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_patcher" ; then - if test "$DIRECT_patcher" = "$component" ; then + if test ! -z "$DIRECT_memory" ; then + if test "$DIRECT_memory" = "patcher" ; then want_component=1 else want_component=0 @@ -158358,59 +156078,197 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_patcher" = "1"; then : + if test "$DISABLE_memory" = "1"; then : + want_component=0 +fi + if test "$DISABLE_memory_patcher" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_patcher_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_patcher" - str="SHARED_COMPONENT=\$DSO_patcher_$component" - eval $str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component memory:patcher compile mode" >&5 +$as_echo_n "checking for MCA component memory:patcher compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - STATIC_FRAMEWORK="$STATIC_patcher" - str="STATIC_COMPONENT=\$STATIC_patcher_$component" - eval $str - shared_mode_override=static + # try to configure the component - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" + # disable on MacOS/Darwin where it isn't used and the deprecated + # syscall interface causes compiler warnings. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if memory patcher supports $host_os" >&5 +$as_echo_n "checking if memory patcher supports $host_os... " >&6; } + case $host_os in + darwin*) + opal_memory_patcher_happy=no + ;; + *) + opal_memory_patcher_happy=yes + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_memory_patcher_happy" >&5 +$as_echo "$opal_memory_patcher_happy" >&6; } + + if test "$opal_memory_patcher_happy" == "yes"; then : + + for ac_func in __curbrk +do : + ac_fn_c_check_func "$LINENO" "__curbrk" "ac_cv_func___curbrk" +if test "x$ac_cv_func___curbrk" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE___CURBRK 1 +_ACEOF + +fi +done + + for ac_header in linux/mman.h sys/syscall.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + ac_fn_c_check_decl "$LINENO" "__mmap" "ac_cv_have_decl___mmap" "#include +" +if test "x$ac_cv_have_decl___mmap" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL___MMAP $ac_have_decl +_ACEOF + + for ac_func in __mmap +do : + ac_fn_c_check_func "$LINENO" "__mmap" "ac_cv_func___mmap" +if test "x$ac_cv_func___mmap" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE___MMAP 1 +_ACEOF + +fi +done + + ac_fn_c_check_decl "$LINENO" "__syscall" "ac_cv_have_decl___syscall" "#include +" +if test "x$ac_cv_have_decl___syscall" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL___SYSCALL $ac_have_decl +_ACEOF + + for ac_func in __syscall +do : + ac_fn_c_check_func "$LINENO" "__syscall" "ac_cv_func___syscall" +if test "x$ac_cv_func___syscall" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE___SYSCALL 1 +_ACEOF + +fi +done + + should_build=$should_build +else + should_build=0 +fi + + ac_config_files="$ac_config_files opal/mca/memory/patcher/Makefile" + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/memory/patcher/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components patcher" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components patcher" else - compile_mode="static" + if test "memory" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/memory/patcher/lib${OPAL_LIB_PREFIX}mca_memory_patcher.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/memory/patcher/libmca_memory_patcher.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_memory_patcher_component;" >> $outfile.extern + echo " &mca_memory_patcher_component, " >> $outfile.struct + static_components="$static_components patcher" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component patcher:$component compile mode" >&5 -$as_echo_n "checking for MCA component patcher:$component compile mode... " >&6; } - if test "$DIRECT_patcher" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memory:patcher can compile" >&5 +$as_echo_n "checking if MCA component memory:patcher can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_memory" = "patcher" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_memory_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** memory component patcher was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_memory" = "patcher" ; then +as_fn_error $? "*** memory component patcher was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - - if test "$should_build" = "1" ; then + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$memory_patcher_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -158423,7 +156281,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -158442,7 +156300,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -158450,129 +156308,105 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# opal/mca/patcher/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="opal/mca/patcher/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# + for arg in $memory_patcher_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # - # Move into the target directory - # - subdir_parent=`pwd` - cd $subdir_dir +else - # - # Make a "../" for each directory in $subdir_dir. - # - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # - # Construct the --cache-file argument - # + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # - # Invoke the configure script in the subdirectory - # + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - # - # Go back to the topdir - # - cd $subdir_parent + for arg in $memory_patcher_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - -# -# Clean up -# + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -158595,105 +156429,9 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/opal/mca/patcher/all_components/post_configure.sh" - if test -f $infile; then - - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - patcher_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - patcher_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi - - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/patcher/$component/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "patcher" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/patcher/$component/lib${OPAL_LIB_PREFIX}mca_patcher_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/patcher/$component/libmca_patcher_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_patcher_$component_component;" >> $outfile.extern - echo " &mca_patcher_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component patcher:$component can compile" >&5 -$as_echo_n "checking if MCA component patcher:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_patcher" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_patcher_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** patcher component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_patcher" = "$component" ; then -as_fn_error $? "*** patcher component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$patcher_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" +fi + if test "$memory_patcher_WRAPPER_EXTRA_LIBS" = ""; then : @@ -158733,21 +156471,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $memory_patcher_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -158773,8 +156511,8 @@ unset $opal_var done -str="line=\$patcher_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + +else @@ -158814,7 +156552,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $memory_patcher_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -158855,179 +156593,173 @@ done +fi + fi # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... + if test "$memory_patcher_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=1 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component patcher:$component can compile" >&5 -$as_echo_n "checking if MCA component patcher:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_patcher" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - if test ! -z "$DIRECT_patcher" ; then - if test "$DIRECT_patcher" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi done -fi - - MCA_opal_patcher_ALL_COMPONENTS="$all_components" - MCA_opal_patcher_STATIC_COMPONENTS="$static_components" - MCA_opal_patcher_DSO_COMPONENTS="$dso_components" - MCA_opal_patcher_STATIC_LTLIBS="$static_ltlibs" - - - - + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - MCA_opal_patcher_ALL_SUBDIRS= - for item in $all_components ; do - MCA_opal_patcher_ALL_SUBDIRS="$MCA_opal_patcher_ALL_SUBDIRS mca/patcher/$item" + for arg in $memory_patcher_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - MCA_opal_patcher_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_opal_patcher_STATIC_SUBDIRS="$MCA_opal_patcher_STATIC_SUBDIRS mca/patcher/$item" - done - - + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - MCA_opal_patcher_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_opal_patcher_DSO_SUBDIRS="$MCA_opal_patcher_DSO_SUBDIRS mca/patcher/$item" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring memory_patcher_WRAPPER_EXTRA_CPPFLAGS ($memory_patcher_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring memory_patcher_WRAPPER_EXTRA_CPPFLAGS ($memory_patcher_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "patcher" != "common"; then - cat > $outfile <&5 +$as_echo_n "checking if MCA component memory:patcher can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -#if defined(c_plusplus) || defined(__cplusplus) -} -#endif + # If this component was requested as the default for this + # type, then abort. + if test "$with_memory" = "patcher" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"patcher\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"patcher\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -EOF - # Only replace the header file if a) it doesn't previously - # exist, or b) the contents are different. Do this to not - # trigger recompilation of certain .c files just because the - # timestamp changed on $outfile_real (similar to the way AC - # handles AC_CONFIG_HEADER files). - diff $outfile $outfile_real > /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile + if test ! -z "$DIRECT_memory" ; then + if test "$DIRECT_memory" = "patcher" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"patcher\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"patcher\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS pmix" - MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/pmix" - MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_pmix_ALL_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_pmix_DSO_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_pmix_STATIC_SUBDIRS)" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/pmix/libmca_pmix.la" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_pmix_STATIC_LTLIBS)" - opal_show_subsubtitle "Configuring MCA framework pmix" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= + # add component to all component list + all_components="$all_components patcher" +fi - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=opal/mca/pmix/base - as_dir=$outdir; as_fn_mkdir_p - # emit Makefile rule - ac_config_files="$ac_config_files opal/mca/pmix/Makefile" + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_memory_patcher_DSO=1 +else + BUILD_opal_memory_patcher_DSO=0 +fi + if test "$BUILD_opal_memory_patcher_DSO" = "1"; then + MCA_BUILD_opal_memory_patcher_DSO_TRUE= + MCA_BUILD_opal_memory_patcher_DSO_FALSE='#' +else + MCA_BUILD_opal_memory_patcher_DSO_TRUE='#' + MCA_BUILD_opal_memory_patcher_DSO_FALSE= +fi - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework pmix" >&5 -$as_echo_n "checking for no configure components in framework pmix... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: isolated" >&5 -$as_echo "isolated" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework pmix" >&5 -$as_echo_n "checking for m4 configure components in framework pmix... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cray, ext1x, ext2x, ext3x, flux, pmix3x, s1, s2" >&5 -$as_echo "cray, ext1x, ext2x, ext3x, flux, pmix3x, s1, s2" >&6; } + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + unset compile_mode + if test $components_last_result -eq 1; then : + components_looking_for_succeed=0 +fi - # run the configure logic for the no-config components - opal_show_subsubsubtitle "MCA component pmix:isolated (no configuration)" + opal_show_subsubsubtitle "MCA component memory:malloc_solaris (m4 configuration macro, priority 0)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/pmix/isolated" + component_path="$srcdir/opal/mca/memory/malloc_solaris" want_component=0 # build if: @@ -159059,8 +156791,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "isolated" ; then + if test ! -z "$DIRECT_memory" ; then + if test "$DIRECT_memory" = "malloc_solaris" ; then want_component=1 else want_component=0 @@ -159069,99 +156801,330 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_pmix" = "1"; then : + if test "$DISABLE_memory" = "1"; then : want_component=0 fi - if test "$DISABLE_pmix_isolated" = "1"; then : + if test "$DISABLE_memory_malloc_solaris" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_pmix" - SHARED_COMPONENT="$DSO_pmix_isolated" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component memory:malloc_solaris compile mode" >&5 +$as_echo_n "checking for MCA component memory:malloc_solaris compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - STATIC_FRAMEWORK="$STATIC_pmix" - STATIC_COMPONENT="$STATIC_pmix_isolated" - shared_mode_override=static + # try to configure the component - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" + ac_config_files="$ac_config_files opal/mca/memory/malloc_solaris/Makefile" + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:isolated compile mode" >&5 -$as_echo_n "checking for MCA component pmix:isolated compile mode... " >&6; } - if test "$DIRECT_pmix" = "isolated" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in memory_malloc_solaris_happy memory_malloc_solaris_should_use memory_malloc_solaris_munmap memory_alloc_solaris_legacy; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"memory_malloc_solaris_happy memory_malloc_solaris_should_use memory_malloc_solaris_munmap memory_alloc_solaris_legacy\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris" >&5 +$as_echo_n "checking for Solaris... " >&6; } + + case "$host" in + *solaris*) + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test "$with_memory_manager" = "malloc_solaris"; then : + memory_malloc_solaris_happy="yes" + memory_malloc_solaris_should_use=1 +else + memory_malloc_solaris_should_use=0 + if test "$with_memory_manager" = ""; then : + memory_malloc_solaris_happy="yes" +else + memory_malloc_solaris_happy="no" +fi +fi + + if test "$memory_malloc_solaris_happy" = "yes"; then : + ac_fn_c_check_header_mongrel "$LINENO" "malloc.h" "ac_cv_header_malloc_h" "$ac_includes_default" +if test "x$ac_cv_header_malloc_h" = xyes; then : + +else + memory_malloc_solaris_happy="no" +fi + + +fi + + if test "$memory_malloc_solaris_happy" = "yes"; then : + memory_malloc_solaris_munmap=0 + + ac_fn_c_check_header_mongrel "$LINENO" "sys/syscall.h" "ac_cv_header_sys_syscall_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_syscall_h" = xyes; then : + for ac_func in syscall +do : + ac_fn_c_check_func "$LINENO" "syscall" "ac_cv_func_syscall" +if test "x$ac_cv_func_syscall" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYSCALL 1 +_ACEOF + memory_malloc_solaris_munmap=1 +fi +done + +fi + + + + for ac_func in __munmap +do : + ac_fn_c_check_func "$LINENO" "__munmap" "ac_cv_func___munmap" +if test "x$ac_cv_func___munmap" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE___MUNMAP 1 +_ACEOF + memory_malloc_solaris_munmap=1 +fi +done + + + # only allow dlsym (and therefore add -ldl) if we + # really need to + if test "$memory_malloc_solaris_munmap" = "0"; then : + memory_malloc_solaris_LIBS_SAVE="$LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlsym in -ldl" >&5 +$as_echo_n "checking for dlsym in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlsym+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlsym (); +int +main () +{ +return dlsym (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlsym=yes +else + ac_cv_lib_dl_dlsym=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlsym" >&5 +$as_echo "$ac_cv_lib_dl_dlsym" >&6; } +if test "x$ac_cv_lib_dl_dlsym" = xyes; then : + memory_malloc_solaris_LIBS="-ldl" + memory_malloc_solaris_munmap=1 +fi + + for ac_func in dlsym +do : + ac_fn_c_check_func "$LINENO" "dlsym" "ac_cv_func_dlsym" +if test "x$ac_cv_func_dlsym" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLSYM 1 +_ACEOF + +fi +done + + LIBS="$memory_malloc_solaris_LIBS_SAVE" +fi + + if test "$memory_malloc_solaris_munmap" = "0"; then : + memory_malloc_solaris_happy="no" +fi +fi + + # There is a difference in the munmap prototypes for different + # Solaris versions. So determine whether we are to use Legacy + # S10 or later prototypes. + memory_alloc_solaris_legacy=0 + if test "$memory_malloc_solaris_happy" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris Legacy MUNMAP" >&5 +$as_echo_n "checking for Solaris Legacy MUNMAP... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +char *addr; + extern int munmap(caddr_t addr, size_t len); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + memory_alloc_solaris_legacy=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +cat >>confdefs.h <<_ACEOF +#define USE_SOLARIS_LEGACY_MUNMAP_PROTOTYPE $memory_alloc_solaris_legacy +_ACEOF + + +fi + + if test "$memory_malloc_solaris_happy" = "no" && \ + test "$memory_malloc_solaris_should_use" = "1"; then : + as_fn_error $? "malloc_solaris memory management requested but not available. Aborting." "$LINENO" 5 +fi + + + + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + if test "$with_memory_manager" = "malloc_solaris"; then : + memory_malloc_solaris_happy="no" + memory_malloc_solaris_should_use=0 +fi + ;; + esac + + if test "$memory_malloc_solaris_happy" = "yes"; then : + memory_base_found=1 + should_build=$should_build +else + should_build=0 +fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$should_build" = "1" ; then + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/pmix/isolated/post_configure.sh" + infile="$srcdir/opal/mca/memory/malloc_solaris/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components isolated" + all_components="$all_components malloc_solaris" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components isolated" + dso_components="$dso_components malloc_solaris" else - if test "pmix" = "common"; then + if test "memory" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pmix/isolated/lib${OPAL_LIB_PREFIX}mca_pmix_isolated.la $static_ltlibs" + static_ltlibs="mca/memory/malloc_solaris/lib${OPAL_LIB_PREFIX}mca_memory_malloc_solaris.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pmix/isolated/libmca_pmix_isolated.la $static_ltlibs" + static_ltlibs="mca/memory/malloc_solaris/libmca_memory_malloc_solaris.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_pmix_isolated_component;" >> $outfile.extern - echo " &mca_pmix_isolated_component, " >> $outfile.struct - static_components="$static_components isolated" + echo "extern const mca_base_component_t mca_memory_malloc_solaris_component;" >> $outfile.extern + echo " &mca_memory_malloc_solaris_component, " >> $outfile.struct + static_components="$static_components malloc_solaris" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:isolated can compile" >&5 -$as_echo_n "checking if MCA component pmix:isolated can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memory:malloc_solaris can compile" >&5 +$as_echo_n "checking if MCA component memory:malloc_solaris can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pmix" = "isolated" ; then + if test "$DIRECT_memory" = "malloc_solaris" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" + str="MCA_opal_memory_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pmix component isolated was supposed to be direct-called, but +as_fn_error $? "*** memory component malloc_solaris was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -159169,8 +157132,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pmix" = "isolated" ; then -as_fn_error $? "*** pmix component isolated was supposed to be direct-called, but + if test "$DIRECT_memory" = "malloc_solaris" ; then +as_fn_error $? "*** memory component malloc_solaris was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -159185,7 +157148,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$pmix_isolated_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$memory_malloc_solaris_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -159225,7 +157188,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_isolated_LDFLAGS; do + for arg in $memory_malloc_solaris_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -159306,7 +157269,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_isolated_WRAPPER_EXTRA_LDFLAGS; do + for arg in $memory_malloc_solaris_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -159348,7 +157311,7 @@ fi - if test "$pmix_isolated_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$memory_malloc_solaris_WRAPPER_EXTRA_LIBS" = ""; then : @@ -159388,7 +157351,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_isolated_LIBS; do + for arg in $memory_malloc_solaris_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -159469,7 +157432,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_isolated_WRAPPER_EXTRA_LIBS; do + for arg in $memory_malloc_solaris_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -159517,8 +157480,8 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$pmix_isolated_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 + if test "$memory_malloc_solaris_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=1 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -159560,7 +157523,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_isolated_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $memory_malloc_solaris_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -159603,947 +157566,387 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_isolated_WRAPPER_EXTRA_CPPFLAGS ($pmix_isolated_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pmix_isolated_WRAPPER_EXTRA_CPPFLAGS ($pmix_isolated_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring memory_malloc_solaris_WRAPPER_EXTRA_CPPFLAGS ($memory_malloc_solaris_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring memory_malloc_solaris_WRAPPER_EXTRA_CPPFLAGS ($memory_malloc_solaris_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:isolated can compile" >&5 -$as_echo_n "checking if MCA component pmix:isolated can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memory:malloc_solaris can compile" >&5 +$as_echo_n "checking if MCA component memory:malloc_solaris can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pmix" = "isolated" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"isolated\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"isolated\" failed to configure properly" >&2;} + if test "$with_memory" = "malloc_solaris" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"malloc_solaris\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"malloc_solaris\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "isolated" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"isolated\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"isolated\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_memory" ; then + if test "$DIRECT_memory" = "malloc_solaris" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"malloc_solaris\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"malloc_solaris\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components isolated" - fi + # add component to all component list + all_components="$all_components malloc_solaris" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_opal_pmix_isolated_DSO=1 - else - BUILD_opal_pmix_isolated_DSO=0 - fi - if test "$BUILD_opal_pmix_isolated_DSO" = "1"; then - MCA_BUILD_opal_pmix_isolated_DSO_TRUE= - MCA_BUILD_opal_pmix_isolated_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_opal_memory_malloc_solaris_DSO=1 else - MCA_BUILD_opal_pmix_isolated_DSO_TRUE='#' - MCA_BUILD_opal_pmix_isolated_DSO_FALSE= + BUILD_opal_memory_malloc_solaris_DSO=0 +fi + if test "$BUILD_opal_memory_malloc_solaris_DSO" = "1"; then + MCA_BUILD_opal_memory_malloc_solaris_DSO_TRUE= + MCA_BUILD_opal_memory_malloc_solaris_DSO_FALSE='#' +else + MCA_BUILD_opal_memory_malloc_solaris_DSO_TRUE='#' + MCA_BUILD_opal_memory_malloc_solaris_DSO_FALSE= fi - ac_config_files="$ac_config_files opal/mca/pmix/isolated/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode + if test $components_last_result -eq 1; then : + components_looking_for_succeed=0 +fi - # configure components that use built-in configuration scripts + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 + MCA_opal_memory_ALL_COMPONENTS="$all_components" + MCA_opal_memory_STATIC_COMPONENTS="$static_components" + MCA_opal_memory_DSO_COMPONENTS="$dso_components" + MCA_opal_memory_STATIC_LTLIBS="$static_ltlibs" - opal_show_subsubsubtitle "MCA component pmix:cray (m4 configuration macro)" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/pmix/cray" - want_component=0 - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "cray" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_pmix" = "1"; then : - want_component=0 -fi - if test "$DISABLE_pmix_cray" = "1"; then : - want_component=0 -fi + MCA_opal_memory_ALL_SUBDIRS= + for item in $all_components ; do + MCA_opal_memory_ALL_SUBDIRS="$MCA_opal_memory_ALL_SUBDIRS mca/memory/$item" + done - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_pmix" - SHARED_COMPONENT="$DSO_pmix_cray" - - STATIC_FRAMEWORK="$STATIC_pmix" - STATIC_COMPONENT="$STATIC_pmix_cray" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:cray compile mode" >&5 -$as_echo_n "checking for MCA component pmix:cray compile mode... " >&6; } - if test "$DIRECT_pmix" = "cray" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files opal/mca/pmix/cray/Makefile" + MCA_opal_memory_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_opal_memory_STATIC_SUBDIRS="$MCA_opal_memory_STATIC_SUBDIRS mca/memory/$item" + done -# -# check specifically for Cray PMI here -# -# Check whether --with-cray_pmi was given. -if test "${with_cray_pmi+set}" = set; then : - withval=$with_cray_pmi; -else - with_cray_pmi=auto -fi + MCA_opal_memory_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_opal_memory_DSO_SUBDIRS="$MCA_opal_memory_DSO_SUBDIRS mca/memory/$item" + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Cray PMI support" >&5 -$as_echo_n "checking for Cray PMI support... " >&6; } - if test "$with_cray_pmi" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - pmix_cray_good=0 -else - if test "$with_cray_pmi" = "auto" || test "$with_cray_pmi" = "yes"; then : -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_PMI" >&5 -$as_echo_n "checking for CRAY_PMI... " >&6; } -if test -n "$CRAY_PMI_CFLAGS"; then - pkg_cv_CRAY_PMI_CFLAGS="$CRAY_PMI_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-pmi\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-pmi") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_PMI_CFLAGS=`$PKG_CONFIG --cflags "cray-pmi" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_PMI_LIBS"; then - pkg_cv_CRAY_PMI_LIBS="$CRAY_PMI_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-pmi\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-pmi") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_PMI_LIBS=`$PKG_CONFIG --libs "cray-pmi" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_PMI_STATIC_LIBS"; then - pkg_cv_CRAY_PMI_STATIC_LIBS="$CRAY_PMI_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-pmi\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-pmi") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_PMI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-pmi" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "memory" != "common"; then + cat > $outfile <&5 -$as_echo "no" >&6; } +#if defined(c_plusplus) || defined(__cplusplus) +} +#endif -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_PMI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-pmi" 2>&1` +EOF + # Only replace the header file if a) it doesn't previously + # exist, or b) the contents are different. Do this to not + # trigger recompilation of certain .c files just because the + # timestamp changed on $outfile_real (similar to the way AC + # handles AC_CONFIG_HEADER files). + diff $outfile $outfile_real > /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real else - CRAY_PMI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-pmi" 2>&1` + rm -f $outfile fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_PMI_PKG_ERRORS" >&5 - - opal_check_cray_pmi_happy="no" - if test "$with_cray_pmi" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cray PMI support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: Cray PMI support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate cray pmi directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate cray pmi directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-cray-pmi option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-cray-pmi option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_pmi_happy="no" - if test "$with_cray_pmi" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cray PMI support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: Cray PMI support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate cray pmi directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate cray pmi directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-cray-pmi option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-cray-pmi option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -else - CRAY_PMI_CFLAGS=$pkg_cv_CRAY_PMI_CFLAGS - CRAY_PMI_LIBS=$pkg_cv_CRAY_PMI_LIBS - CRAY_PMI_STATIC_LIBS=$pkg_cv_CRAY_PMI_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_pmi_happy="yes" -fi -else - - - opal_cray_pmi_lib_good=0 - opal_cray_pmi_include_good=0 - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for Cray PMI with explicit path $with_cray_pmi" >&5 -$as_echo_n "checking Checking for Cray PMI with explicit path $with_cray_pmi... " >&6; } - if test -d "$with_cray_pmi/lib64"; then : - opal_cray_pmi_lib_good=1 -else - opal_cray_pmi_lib_good=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No libpmi in path specified by $with_cray_pmi" >&5 -$as_echo "$as_me: WARNING: No libpmi in path specified by $with_cray_pmi" >&2;} -fi - - if test -f "$with_cray_pmi/include/pmi.h"; then : - opal_cray_pmi_include_good=1 -else - opal_cray_pmi_include_good=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No pmi.h in path specified by $with_cray_pmi" >&5 -$as_echo "$as_me: WARNING: No pmi.h in path specified by $with_cray_pmi" >&2;} -fi - - if test "$opal_cray_pmi_lib_good" -eq 1 && test "$opal_cray_pmi_include_good" -eq 1; then : - CRAY_PMI_LDFLAGS="-L$with_cray_pmi/lib64 -L/usr/lib/alps" - CRAY_PMI_LIBS="-L$with_cray_pmi/lib64 -lpmi" - CRAY_PMI_CFLAGS="-I $with_cray_pmi/include" - opal_check_cray_pmi_happy="yes" -else - opal_check_cray_pmi_happy="no" -fi - -# -# this logic assumes knowledge about all the dependencies of the Cray PMI library, -# something that Cray doesn't generally document -# - if test "$enable_static" = "yes"; then : - if test -d /usr/lib/alps; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Detected presence of /usr/lib/alps" >&5 -$as_echo "Detected presence of /usr/lib/alps" >&6; } - CRAY_PMI_LDFLAGS="$CRAY_PMI_LDFLAGS -L/usr/lib/alps -lalpslli -lalpsutil" - CRAY_PMI_LIBS="$CRAY_PMI_LIBS -L/usr/lib/alps -lalpslli -lalpsutil" -else - if test -d /opt/cray/xe-sysroot/default/usr/lib/alps; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Detected presence of /opt/cray/xe-sysroot/default/usr/lib/alps" >&5 -$as_echo "Detected presence of /opt/cray/xe-sysroot/default/usr/lib/alps" >&6; } - CRAY_PMI_LDFLAGS="$CRAY_PMI_LDFLAGS -L/opt/cray/xe-sysroot/default/usr/lib/alps -lalpslli -lalpsutil" - CRAY_PMI_LIBS="$CRAY_PMI_LIBS -L/opt/cray/xe-sysroot/default/usr/lib/alps -lalpslli -lalpsutil" -else - as_fn_error $? "Requested enabling static linking but unable to local libalpslli and libalpsutil" "$LINENO" 5 -fi - -fi - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: opal_chack_cray_pmi_happy = $opal_check_cray_pmi_happy" >&5 -$as_echo "$as_me: WARNING: opal_chack_cray_pmi_happy = $opal_check_cray_pmi_happy" >&2;} -fi - -fi - - if test "$opal_check_cray_pmi_happy" = "yes" && test "$enable_static" = "yes"; then : - CRAY_PMI_LIBS = $CRAY_PMI_STATIC_LIBS -fi - - if test "$opal_check_cray_pmi_happy" = "yes"; then : - pmix_cray_LDFLAGS="$CRAY_PMI_LIBS" - pmix_cray_CPPFLAGS="$CRAY_PMI_CFLAGS" - pmix_cray_LIBS="$CRAY_PMI_LIBS" - pmix_cray_good=1 -else - pmix_cray_good=0 -fi + fi + rm -f $outfile.struct $outfile.extern + unset all_components static_components dso_components outfile outfile_real - if test -z "$opal_check_cray_alps_happy"; then -# Check whether --with-alps was given. -if test "${with_alps+set}" = set; then : - withval=$with_alps; -else - with_alps=auto -fi +cat >>confdefs.h <<_ACEOF +#define OPAL_MEMORY_HAVE_COMPONENT $memory_base_found +_ACEOF - if test -f /etc/opt/cray/release/clerelease; then - cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` - else - cle_level="unknown" + # See if someone set to use their header file + if test "$memory_base_include" = "" ; then + memory_base_include="base/empty.h" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 -$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } - if test "$cle_level" = "4" && test "$with_alps" != "no"; then : - - -# -# if we've gotten here, its because we are building on a CLE 4 system -# - opal_check_alps_cle4_libdir_happy="no" - opal_check_alps_cle4_dir_happy="no" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 -$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } - - -# Check whether --with-alps-libdir was given. -if test "${with_alps_libdir+set}" = set; then : - withval=$with_alps_libdir; -fi - -# -# check to see if Open MPI is being built on a CLE 4 eslogin node -# - if test -f /etc/opt/cray/release/ESLrelease; then : - default_alps_dir="/opt/cray/xe-sysroot/default/usr" -else - default_alps_dir="/usr" -fi +cat >>confdefs.h <<_ACEOF +#define MCA_memory_IMPLEMENTATION_HEADER "opal/mca/memory/$memory_base_include" +_ACEOF - if test -z "$with_alps_libdir"; then : - if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : - if test -d "$with_alps_libdir/lib64"; then : - opal_check_alps_libdir="$with_alps_libdir/lib64" -else - opal_check_alps_libdir="$with_alps_libdir/lib" -fi -else - opal_check_alps_libdir="$default_alps_dir/lib/alps" -fi -fi + MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS mpool" + MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/mpool" + MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_mpool_ALL_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_mpool_DSO_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_mpool_STATIC_SUBDIRS)" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/mpool/libmca_mpool.la" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_mpool_STATIC_LTLIBS)" - if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : - opal_check_alps_dir=$default_alps_dir -else - opal_check_alps_dir=$with_alps -fi + opal_show_subsubtitle "Configuring MCA framework mpool" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 -$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } - if test -f "$opal_check_alps_libdir/libalps.a"; then : - opal_check_alps_libdir_cle4_happy="yes" -else - opal_check_alps_libdir_cle4_happy="no", - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 -$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } - if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : - opal_check_alps_dir_cle4_happy="yes" -else - opal_check_alps_dir_cle4_happy="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : - CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" - CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - opal_check_cray_alps_happy="yes" -else - opal_check_cray_alps_happy="no" -fi -else - if test "$with_alps" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy=no - pmix_alps_happy=0 -else - if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 -$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=opal/mca/mpool/base + as_dir=$outdir; as_fn_mkdir_p -if test -n "$CRAY_ALPSLLI_CFLAGS"; then - pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSLLI_LIBS"; then - pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi + # emit Makefile rule + ac_config_files="$ac_config_files opal/mca/mpool/Makefile" + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework mpool" >&5 +$as_echo_n "checking for no configure components in framework mpool... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: hugepage" >&5 +$as_echo "hugepage" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework mpool" >&5 +$as_echo_n "checking for m4 configure components in framework mpool... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: memkind" >&5 +$as_echo "memkind" >&6; } -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` - else - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi -else - CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS - CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS - CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi + # run the configure logic for the no-config components -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 -$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } + opal_show_subsubsubtitle "MCA component mpool:hugepage (no configuration)" -if test -n "$CRAY_ALPSUTIL_CFLAGS"; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSUTIL_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + component_path="$srcdir/opal/mca/mpool/hugepage" + want_component=0 -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` - else - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_mpool" ; then + if test "$DIRECT_mpool" = "hugepage" ; then + want_component=1 + else + want_component=0 + fi + fi + fi -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_mpool" = "1"; then : + want_component=0 fi - -else - CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS - CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS - CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" + if test "$DISABLE_mpool_hugepage" = "1"; then : + want_component=0 fi - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 -$as_echo_n "checking for CRAY_ALPS... " >&6; } - -if test -n "$CRAY_ALPS_CFLAGS"; then - pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPS_LIBS"; then - pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPS_STATIC_LIBS"; then - pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + if test "$want_component" = "1"; then : + should_build=1 else - pkg_failed=yes -fi - else - pkg_failed=untried + should_build=0 fi + SHARED_FRAMEWORK="$DSO_mpool" + SHARED_COMPONENT="$DSO_mpool_hugepage" -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + STATIC_FRAMEWORK="$STATIC_mpool" + STATIC_COMPONENT="$STATIC_mpool_hugepage" -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` - else - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPS_PKG_ERRORS" >&5 + shared_mode_override=static - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component mpool:hugepage compile mode" >&5 +$as_echo_n "checking for MCA component mpool:hugepage compile mode... " >&6; } + if test "$DIRECT_mpool" = "hugepage" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi -else - CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS - CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS - CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 -$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } + if test "$should_build" = "1" ; then -if test -n "$CRAY_WLM_DETECT_CFLAGS"; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_WLM_DETECT_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/mpool/hugepage/post_configure.sh" -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components hugepage" -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components hugepage" + else + if test "mpool" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/mpool/hugepage/lib${OPAL_LIB_PREFIX}mca_mpool_hugepage.la $static_ltlibs" else - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/mpool/hugepage/libmca_mpool_hugepage.la $static_ltlibs" fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + echo "extern const mca_base_component_t mca_mpool_hugepage_component;" >> $outfile.extern + echo " &mca_mpool_hugepage_component, " >> $outfile.struct + static_components="$static_components hugepage" + fi -else - CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS - CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS - CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mpool:hugepage can compile" >&5 +$as_echo_n "checking if MCA component mpool:hugepage can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" - -cat >>confdefs.h <<_ACEOF -#define CRAY_WLM_DETECT 1 -_ACEOF - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 -$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 -$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -fi - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 -$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } - - if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : - CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS - CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS -fi + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_mpool" = "hugepage" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_mpool_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** mpool component hugepage was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_mpool" = "hugepage" ; then +as_fn_error $? "*** mpool component hugepage was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$mpool_hugepage_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -160556,7 +157959,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -160575,7 +157978,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -160583,204 +157986,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - fi - - if test "$opal_check_cray_alps_happy" = "yes"; then : - pmix_alps_LDFLAGS="$pmix_alps_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" - pmix_alps_CPPFLAGS="$pmix_alps_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" - pmix_alps_LIBS="$pmix_alps_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - pmix_alps_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - pmix_alps_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - pmix_alps_happy=1 -else - pmix_alps_happy=0 -fi - - - # Evaluate succeed / fail - if test "$pmix_cray_good" = 1 && test "$pmix_alps_happy" = 1; then : - should_build=$should_build - # need to set the wrapper flags for static builds - pmix_cray_WRAPPER_EXTRA_LDFLAGS="$pmix_cray_LDFLAGS $pmix_alps_LDFLAGS" - pmix_cray_WRAPPER_EXTRA_LIBS="$pmix_cray_LIBS $pmix_alps_LIBS" -else - should_build=0 -fi - - # set build flags to use in makefile - - - - - - - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/pmix/cray/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components cray" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components cray" - else - if test "pmix" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pmix/cray/lib${OPAL_LIB_PREFIX}mca_pmix_cray.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pmix/cray/libmca_pmix_cray.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_pmix_cray_component;" >> $outfile.extern - echo " &mca_pmix_cray_component, " >> $outfile.struct - static_components="$static_components cray" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:cray can compile" >&5 -$as_echo_n "checking if MCA component pmix:cray can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pmix" = "cray" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** pmix component cray was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pmix" = "cray" ; then -as_fn_error $? "*** pmix component cray was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pmix_cray_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $pmix_cray_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + for arg in $mpool_hugepage_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -160844,7 +158067,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_cray_WRAPPER_EXTRA_LDFLAGS; do + for arg in $mpool_hugepage_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -160886,7 +158109,7 @@ fi - if test "$pmix_cray_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$mpool_hugepage_WRAPPER_EXTRA_LIBS" = ""; then : @@ -160926,7 +158149,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_cray_LIBS; do + for arg in $mpool_hugepage_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -161007,7 +158230,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_cray_WRAPPER_EXTRA_LIBS; do + for arg in $mpool_hugepage_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -161055,7 +158278,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$pmix_cray_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$mpool_hugepage_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -161098,7 +158321,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_cray_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $mpool_hugepage_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -161141,78 +158364,79 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_cray_WRAPPER_EXTRA_CPPFLAGS ($pmix_cray_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pmix_cray_WRAPPER_EXTRA_CPPFLAGS ($pmix_cray_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring mpool_hugepage_WRAPPER_EXTRA_CPPFLAGS ($mpool_hugepage_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring mpool_hugepage_WRAPPER_EXTRA_CPPFLAGS ($mpool_hugepage_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:cray can compile" >&5 -$as_echo_n "checking if MCA component pmix:cray can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mpool:hugepage can compile" >&5 +$as_echo_n "checking if MCA component mpool:hugepage can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pmix" = "cray" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"cray\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"cray\" failed to configure properly" >&2;} + if test "$with_mpool" = "hugepage" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hugepage\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"hugepage\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "cray" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"cray\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"cray\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_mpool" ; then + if test "$DIRECT_mpool" = "hugepage" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hugepage\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"hugepage\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components cray" -fi - - + # add component to all component list + all_components="$all_components hugepage" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_pmix_cray_DSO=1 -else - BUILD_opal_pmix_cray_DSO=0 -fi - if test "$BUILD_opal_pmix_cray_DSO" = "1"; then - MCA_BUILD_opal_pmix_cray_DSO_TRUE= - MCA_BUILD_opal_pmix_cray_DSO_FALSE='#' + if test "$compile_mode" = "dso" ; then + BUILD_opal_mpool_hugepage_DSO=1 + else + BUILD_opal_mpool_hugepage_DSO=0 + fi + if test "$BUILD_opal_mpool_hugepage_DSO" = "1"; then + MCA_BUILD_opal_mpool_hugepage_DSO_TRUE= + MCA_BUILD_opal_mpool_hugepage_DSO_FALSE='#' else - MCA_BUILD_opal_pmix_cray_DSO_TRUE='#' - MCA_BUILD_opal_pmix_cray_DSO_FALSE= + MCA_BUILD_opal_mpool_hugepage_DSO_TRUE='#' + MCA_BUILD_opal_mpool_hugepage_DSO_FALSE= fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi + ac_config_files="$ac_config_files opal/mca/mpool/hugepage/Makefile" + unset compile_mode + # configure components that use built-in configuration scripts + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - opal_show_subsubsubtitle "MCA component pmix:ext1x (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component mpool:memkind (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/pmix/ext1x" + component_path="$srcdir/opal/mca/mpool/memkind" want_component=0 # build if: @@ -161244,8 +158468,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "ext1x" ; then + if test ! -z "$DIRECT_mpool" ; then + if test "$DIRECT_mpool" = "memkind" ; then want_component=1 else want_component=0 @@ -161254,10 +158478,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_pmix" = "1"; then : + if test "$DISABLE_mpool" = "1"; then : want_component=0 fi - if test "$DISABLE_pmix_ext1x" = "1"; then : + if test "$DISABLE_mpool_memkind" = "1"; then : want_component=0 fi @@ -161270,11 +158494,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_pmix" - SHARED_COMPONENT="$DSO_pmix_ext1x" + SHARED_FRAMEWORK="$DSO_mpool" + SHARED_COMPONENT="$DSO_mpool_memkind" - STATIC_FRAMEWORK="$STATIC_pmix" - STATIC_COMPONENT="$STATIC_pmix_ext1x" + STATIC_FRAMEWORK="$STATIC_mpool" + STATIC_COMPONENT="$STATIC_mpool_memkind" shared_mode_override=static @@ -161292,9 +158516,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:ext1x compile mode" >&5 -$as_echo_n "checking for MCA component pmix:ext1x compile mode... " >&6; } - if test "$DIRECT_pmix" = "ext1x" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component mpool:memkind compile mode" >&5 +$as_echo_n "checking for MCA component mpool:memkind compile mode... " >&6; } + if test "$DIRECT_mpool" = "memkind" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -161305,134 +158529,6 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/pmix/ext1x/Makefile" - - - if test "$opal_external_pmix_happy" = "yes"; then : - # check for the 1.x version ( >= 1.1.4 ?) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if external component is version 1.x" >&5 -$as_echo_n "checking if external component is version 1.x... " >&6; } - if test "$opal_external_pmix_version" = "1x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test "$opal_event_external_support" != "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT" >&5 -$as_echo "$as_me: WARNING: EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LIBRARY. THIS LIBRARY MUST POINT TO THE SAME ONE USED" >&5 -$as_echo "$as_me: WARNING: LIBRARY. THIS LIBRARY MUST POINT TO THE SAME ONE USED" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT" >&5 -$as_echo "$as_me: WARNING: TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT" >&2;} - as_fn_error $? "PLEASE CORRECT THE CONFIGURE COMMAND LINE AND REBUILD" "$LINENO" 5 -fi - if test "$opal_hwloc_external_support" != "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL HWLOC" >&5 -$as_echo "$as_me: WARNING: EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL HWLOC" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LIBRARY THIS LIBRARY MUST POINT TO THE SAME ONE USED " >&5 -$as_echo "$as_me: WARNING: LIBRARY THIS LIBRARY MUST POINT TO THE SAME ONE USED " >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT" >&5 -$as_echo "$as_me: WARNING: TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT" >&2;} - as_fn_error $? "PLEASE CORRECT THE CONFIGURE COMMAND LINE AND REBUILD" "$LINENO" 5 -fi - opal_pmix_external_1x_happy=yes -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_pmix_external_1x_happy=no -fi - - if test "$opal_pmix_external_1x_happy" = "yes"; then : - should_build=$should_build - # need to set the wrapper flags for static builds - pmix_ext1x_WRAPPER_EXTRA_LDFLAGS=$opal_external_pmix_LDFLAGS - pmix_ext1x_WRAPPER_EXTRA_LIBS=$opal_external_pmix_LIBS -else - should_build=0 -fi -else - should_build=0 -fi - - opal_pmix_ext1x_CPPFLAGS=$opal_external_pmix_CPPFLAGS - opal_pmix_ext1x_LDFLAGS=$opal_external_pmix_LDFLAGS - opal_pmix_ext1x_LIBS=$opal_external_pmix_LIBS - - - - - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/pmix/ext1x/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ext1x" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ext1x" - else - if test "pmix" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pmix/ext1x/lib${OPAL_LIB_PREFIX}mca_pmix_ext1x.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pmix/ext1x/libmca_pmix_ext1x.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_pmix_ext1x_component;" >> $outfile.extern - echo " &mca_pmix_ext1x_component, " >> $outfile.struct - static_components="$static_components ext1x" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:ext1x can compile" >&5 -$as_echo_n "checking if MCA component pmix:ext1x can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pmix" = "ext1x" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** pmix component ext1x was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pmix" = "ext1x" ; then -as_fn_error $? "*** pmix component ext1x was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pmix_ext1x_WRAPPER_EXTRA_LDFLAGS" = ""; then : - # Is the private index set? If not, set it. @@ -161444,7 +158540,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_mpool_memkind_happy; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -161463,56 +158559,85 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_mpool_memkind_happy\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` + ac_config_files="$ac_config_files opal/mca/mpool/memkind/Makefile" - for arg in $pmix_ext1x_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + + +# Check whether --with-memkind was given. +if test "${with_memkind+set}" = set; then : + withval=$with_memkind; fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-memkind value" >&5 +$as_echo_n "checking --with-memkind value... " >&6; } + if test "$with_memkind" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-memkind)" >&5 +$as_echo "simple no (specified --without-memkind)" >&6; } else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + if test "$with_memkind" = "yes" || test "x$with_memkind" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_memkind"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_memkind not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_memkind not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_memkind/include/memkind.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_memkind/include/memkind.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_memkind/include/memkind.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_memkind)" >&5 +$as_echo "sanity check ok ($with_memkind)" >&6; } + fi + + fi - done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +fi -else + opal_mpool_memkind_happy="no" + + if test "$with_memkind" != "no" ; then + if test -n "$with_memkind" -a "$with_memkind" != "yes" ; then + opal_check_memkind_dir=$with_memkind + fi + + # + # memkind_create_kind was introduced with memkind v1.4.0 release + # + + opal_check_package_mpool_memkind_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_mpool_memkind_save_LDFLAGS="$LDFLAGS" + opal_check_package_mpool_memkind_save_LIBS="$LIBS" + + opal_check_package_mpool_memkind_orig_CPPFLAGS="$mpool_memkind_CPPFLAGS" + opal_check_package_mpool_memkind_orig_LDFLAGS="$mpool_memkind_LDFLAGS" + opal_check_package_mpool_memkind_orig_LIBS="$mpool_memkind_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -161525,7 +158650,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -161544,7 +158669,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -161552,130 +158677,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_ext1x_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_memkind_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $opal_check_memkind_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in memkind.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "memkind.h" "ac_cv_header_memkind_h" "$ac_includes_default" +if test "x$ac_cv_header_memkind_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MEMKIND_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_memkind_h fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + mpool_memkind_CPPFLAGS="$mpool_memkind_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in memkind.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "memkind.h" "ac_cv_header_memkind_h" "$ac_includes_default" +if test "x$ac_cv_header_memkind_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MEMKIND_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done +done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_header_happy" = "yes"; then : - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # see comment above + unset ac_cv_search_memkind_create_kind + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + mpool_memkind_LDFLAGS="$mpool_memkind_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing memkind_create_kind" >&5 +$as_echo_n "checking for library containing memkind_create_kind... " >&6; } +if ${ac_cv_search_memkind_create_kind+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char memkind_create_kind (); +int +main () +{ +return memkind_create_kind (); + ; + return 0; +} +_ACEOF +for ac_lib in '' memkind; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lnuma $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_memkind_create_kind=$ac_res fi - if test "$pmix_ext1x_WRAPPER_EXTRA_LIBS" = ""; then : - - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_memkind_create_kind+:} false; then : + break +fi +done +if ${ac_cv_search_memkind_create_kind+:} false; then : - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +else + ac_cv_search_memkind_create_kind=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_memkind_create_kind" >&5 +$as_echo "$ac_cv_search_memkind_create_kind" >&6; } +ac_res=$ac_cv_search_memkind_create_kind +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" + mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" + unset ac_cv_search_memkind_create_kind +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_check_memkind_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing memkind_create_kind" >&5 +$as_echo_n "checking for library containing memkind_create_kind... " >&6; } +if ${ac_cv_search_memkind_create_kind+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char memkind_create_kind (); +int +main () +{ +return memkind_create_kind (); + ; + return 0; +} +_ACEOF +for ac_lib in '' memkind; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lnuma $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_memkind_create_kind=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_memkind_create_kind+:} false; then : + break +fi +done +if ${ac_cv_search_memkind_create_kind+:} false; then : - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +else + ac_cv_search_memkind_create_kind=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_memkind_create_kind" >&5 +$as_echo "$ac_cv_search_memkind_create_kind" >&6; } +ac_res=$ac_cv_search_memkind_create_kind +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" + mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" + unset ac_cv_search_memkind_create_kind +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + mpool_memkind_LDFLAGS="$mpool_memkind_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing memkind_create_kind" >&5 +$as_echo_n "checking for library containing memkind_create_kind... " >&6; } +if ${ac_cv_search_memkind_create_kind+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - for arg in $pmix_ext1x_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char memkind_create_kind (); +int +main () +{ +return memkind_create_kind (); + ; + return 0; +} +_ACEOF +for ac_lib in '' memkind; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lnuma $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_memkind_create_kind=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_memkind_create_kind+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +done +if ${ac_cv_search_memkind_create_kind+:} false; then : + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_cv_search_memkind_create_kind=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_memkind_create_kind" >&5 +$as_echo "$ac_cv_search_memkind_create_kind" >&6; } +ac_res=$ac_cv_search_memkind_create_kind +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - done + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" + mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" + unset ac_cv_search_memkind_create_kind +fi +fi +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + mpool_memkind_LDFLAGS="$mpool_memkind_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing memkind_create_kind" >&5 +$as_echo_n "checking for library containing memkind_create_kind... " >&6; } +if ${ac_cv_search_memkind_create_kind+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char memkind_create_kind (); +int +main () +{ +return memkind_create_kind (); + ; + return 0; +} +_ACEOF +for ac_lib in '' memkind; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lnuma $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_memkind_create_kind=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_memkind_create_kind+:} false; then : + break +fi +done +if ${ac_cv_search_memkind_create_kind+:} false; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +else + ac_cv_search_memkind_create_kind=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_memkind_create_kind" >&5 +$as_echo "$ac_cv_search_memkind_create_kind" >&6; } +ac_res=$ac_cv_search_memkind_create_kind +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" + mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" + unset ac_cv_search_memkind_create_kind +fi +fi +fi +fi -else + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -161688,7 +159040,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -161707,66 +159059,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $pmix_ext1x_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pmix_ext1x_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -161779,7 +159081,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -161798,7 +159100,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -161806,388 +159108,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_ext1x_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libmemkind requires libnl v1 or v3" >&5 +$as_echo_n "checking if libmemkind requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void memkind_create_kind (void); +int main(int argc, char *argv[]) { + memkind_create_kind (); + return 0; +} +EOF - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:159135: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmemkind $LIBS $mpool_memkind_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmemkind $LIBS $mpool_memkind_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:159142: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_ext1x_WRAPPER_EXTRA_CPPFLAGS ($pmix_ext1x_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pmix_ext1x_WRAPPER_EXTRA_CPPFLAGS ($pmix_ext1x_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib memkind" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib memkind" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:ext1x can compile" >&5 -$as_echo_n "checking if MCA component pmix:ext1x can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_pmix" = "ext1x" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ext1x\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ext1x\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "ext1x" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ext1x\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ext1x\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components ext1x" fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_pmix_ext1x_DSO=1 -else - BUILD_opal_pmix_ext1x_DSO=0 -fi - if test "$BUILD_opal_pmix_ext1x_DSO" = "1"; then - MCA_BUILD_opal_pmix_ext1x_DSO_TRUE= - MCA_BUILD_opal_pmix_ext1x_DSO_FALSE='#' -else - MCA_BUILD_opal_pmix_ext1x_DSO_TRUE='#' - MCA_BUILD_opal_pmix_ext1x_DSO_FALSE= -fi + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libmemkind links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libmemkind links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmemkind (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmemkind (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmemkind." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmemkind." >&2;} - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 + libnl_sane=0 fi - unset compile_mode - - + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas memkind requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas memkind requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmemkind (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmemkind (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmemkind." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmemkind." >&2;} + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs memkind" - opal_show_subsubsubtitle "MCA component pmix:ext2x (m4 configuration macro)" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - component_path="$srcdir/opal/mca/pmix/ext2x" - want_component=0 + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "ext2x" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # if we were explicitly disabled, don't build :) - if test "$DISABLE_pmix" = "1"; then : - want_component=0 -fi - if test "$DISABLE_pmix_ext2x" = "1"; then : - want_component=0 -fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi + # Check the ending condition - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + opal_done="`expr $opal_i \>= $opal_count`" - SHARED_FRAMEWORK="$DSO_pmix" - SHARED_COMPONENT="$DSO_pmix_ext2x" + # Increment the counter - STATIC_FRAMEWORK="$STATIC_pmix" - STATIC_COMPONENT="$STATIC_pmix_ext2x" + opal_i="`expr $opal_i + 1`" + done - shared_mode_override=static + # If we didn't find the token, add it to the "array" - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - compile_mode="static" + opal_i="`expr $opal_i - 1`" fi +done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:ext2x compile mode" >&5 -$as_echo_n "checking for MCA component pmix:ext2x compile mode... " >&6; } - if test "$DIRECT_pmix" = "ext2x" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # try to configure the component + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - ac_config_files="$ac_config_files opal/mca/pmix/ext2x/Makefile" + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - if test "$opal_external_pmix_happy" = "yes"; then : - # check for the 2.x version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if external component is version 2.x" >&5 -$as_echo_n "checking if external component is version 2.x... " >&6; } - if test "$opal_external_pmix_version" = "2x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test "$opal_event_external_support" != "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT" >&5 -$as_echo "$as_me: WARNING: EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LIBRARY. THIS LIBRARY MUST POINT TO THE SAME ONE USED" >&5 -$as_echo "$as_me: WARNING: LIBRARY. THIS LIBRARY MUST POINT TO THE SAME ONE USED" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT" >&5 -$as_echo "$as_me: WARNING: TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT" >&2;} - as_fn_error $? "PLEASE CORRECT THE CONFIGURE COMMAND LINE AND REBUILD" "$LINENO" 5 -fi - opal_pmix_external_2x_happy=yes -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_pmix_external_2x_happy=no +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - if test "$opal_pmix_external_2x_happy" = "yes"; then : - should_build=$should_build - # need to set the wrapper flags for static builds - pmix_ext2x_WRAPPER_EXTRA_LDFLAGS=$opal_external_pmix_LDFLAGS - pmix_ext2x_WRAPPER_EXTRA_LIBS=$opal_external_pmix_LIBS -else - should_build=0 fi + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmemkind requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmemkind requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmemkind (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmemkind (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmemkind." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmemkind." >&2;} + + libnl_sane=0 else - should_build=0 -fi + opal_libnlv3_libs="$opal_libnlv3_libs memkind" - opal_pmix_ext2x_CPPFLAGS=$opal_external_pmix_CPPFLAGS - opal_pmix_ext2x_LDFLAGS=$opal_external_pmix_LDFLAGS - opal_pmix_ext2x_LIBS=$opal_external_pmix_LIBS +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "$should_build" = "1"; then : + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/pmix/ext2x/post_configure.sh" + opal_i="`expr $opal_i + 1`" + done - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ext2x" + # If we didn't find the token, add it to the "array" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ext2x" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - if test "pmix" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pmix/ext2x/lib${OPAL_LIB_PREFIX}mca_pmix_ext2x.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pmix/ext2x/libmca_pmix_ext2x.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_pmix_ext2x_component;" >> $outfile.extern - echo " &mca_pmix_ext2x_component, " >> $outfile.struct - static_components="$static_components ext2x" + opal_i="`expr $opal_i - 1`" fi +done - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:ext2x can compile" >&5 -$as_echo_n "checking if MCA component pmix:ext2x can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +# Take all the items in the "array" and assemble them back into a +# single variable - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pmix" = "ext2x" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** pmix component ext2x was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pmix" = "ext2x" ; then -as_fn_error $? "*** pmix component ext2x was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pmix_ext2x_WRAPPER_EXTRA_LDFLAGS" = ""; then : + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Clean up - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - for arg in $pmix_ext2x_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + opal_libnl_sane=$libnl_sane # Unwind the index @@ -162211,65 +159401,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $pmix_ext2x_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -162292,89 +159427,332 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - if test "$pmix_ext2x_WRAPPER_EXTRA_LIBS" = ""; then : +fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_memkind_create_kind" != "no" && + test "$ac_cv_search_memkind_create_kind" != "none required"; then : + mpool_memkind_LIBS="$ac_cv_search_memkind_create_kind -lnuma" +else + mpool_memkind_LIBS=" -lnuma" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +else + opal_check_package_happy="no" +fi +else - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # see comment above + unset ac_cv_search_memkind_create_kind + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + mpool_memkind_LDFLAGS="$mpool_memkind_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing memkind_create_kind" >&5 +$as_echo_n "checking for library containing memkind_create_kind... " >&6; } +if ${ac_cv_search_memkind_create_kind+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char memkind_create_kind (); +int +main () +{ +return memkind_create_kind (); + ; + return 0; +} +_ACEOF +for ac_lib in '' memkind; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lnuma $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_memkind_create_kind=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_memkind_create_kind+:} false; then : + break +fi +done +if ${ac_cv_search_memkind_create_kind+:} false; then : - for arg in $pmix_ext2x_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +else + ac_cv_search_memkind_create_kind=no fi - done +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_memkind_create_kind" >&5 +$as_echo "$ac_cv_search_memkind_create_kind" >&6; } +ac_res=$ac_cv_search_memkind_create_kind +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" + mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" + unset ac_cv_search_memkind_create_kind +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_check_memkind_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing memkind_create_kind" >&5 +$as_echo_n "checking for library containing memkind_create_kind... " >&6; } +if ${ac_cv_search_memkind_create_kind+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char memkind_create_kind (); +int +main () +{ +return memkind_create_kind (); + ; + return 0; +} +_ACEOF +for ac_lib in '' memkind; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lnuma $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_memkind_create_kind=$ac_res fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_memkind_create_kind+:} false; then : + break fi - done +done +if ${ac_cv_search_memkind_create_kind+:} false; then : +else + ac_cv_search_memkind_create_kind=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_memkind_create_kind" >&5 +$as_echo "$ac_cv_search_memkind_create_kind" >&6; } +ac_res=$ac_cv_search_memkind_create_kind +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" + mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" + unset ac_cv_search_memkind_create_kind +fi +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + mpool_memkind_LDFLAGS="$mpool_memkind_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing memkind_create_kind" >&5 +$as_echo_n "checking for library containing memkind_create_kind... " >&6; } +if ${ac_cv_search_memkind_create_kind+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char memkind_create_kind (); +int +main () +{ +return memkind_create_kind (); + ; + return 0; +} +_ACEOF +for ac_lib in '' memkind; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lnuma $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_memkind_create_kind=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_memkind_create_kind+:} false; then : + break +fi +done +if ${ac_cv_search_memkind_create_kind+:} false; then : + +else + ac_cv_search_memkind_create_kind=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_memkind_create_kind" >&5 +$as_echo "$ac_cv_search_memkind_create_kind" >&6; } +ac_res=$ac_cv_search_memkind_create_kind +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" + mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" + unset ac_cv_search_memkind_create_kind +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + mpool_memkind_LDFLAGS="$mpool_memkind_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing memkind_create_kind" >&5 +$as_echo_n "checking for library containing memkind_create_kind... " >&6; } +if ${ac_cv_search_memkind_create_kind+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char memkind_create_kind (); +int +main () +{ +return memkind_create_kind (); + ; + return 0; +} +_ACEOF +for ac_lib in '' memkind; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lnuma $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_memkind_create_kind=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_memkind_create_kind+:} false; then : + break +fi +done +if ${ac_cv_search_memkind_create_kind+:} false; then : else + ac_cv_search_memkind_create_kind=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_memkind_create_kind" >&5 +$as_echo "$ac_cv_search_memkind_create_kind" >&6; } +ac_res=$ac_cv_search_memkind_create_kind +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" + mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" + unset ac_cv_search_memkind_create_kind +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -162387,7 +159765,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -162406,66 +159784,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $pmix_ext2x_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pmix_ext2x_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -162478,7 +159806,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -162497,7 +159825,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -162505,258 +159833,420 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_ext2x_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libmemkind requires libnl v1 or v3" >&5 +$as_echo_n "checking if libmemkind requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void memkind_create_kind (void); +int main(int argc, char *argv[]) { + memkind_create_kind (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:159860: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmemkind $LIBS $mpool_memkind_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmemkind $LIBS $mpool_memkind_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:159867: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_ext2x_WRAPPER_EXTRA_CPPFLAGS ($pmix_ext2x_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pmix_ext2x_WRAPPER_EXTRA_CPPFLAGS ($pmix_ext2x_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib memkind" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib memkind" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:ext2x can compile" >&5 -$as_echo_n "checking if MCA component pmix:ext2x can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi - # If this component was requested as the default for this - # type, then abort. - if test "$with_pmix" = "ext2x" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ext2x\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ext2x\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "ext2x" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ext2x\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ext2x\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # add component to all component list - all_components="$all_components ext2x" + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libmemkind links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libmemkind links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmemkind (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmemkind (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmemkind." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmemkind." >&2;} + + libnl_sane=0 fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas memkind requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas memkind requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmemkind (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmemkind (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmemkind." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmemkind." >&2;} - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_pmix_ext2x_DSO=1 + libnl_sane=0 else - BUILD_opal_pmix_ext2x_DSO=0 + opal_libnlv1_libs="$opal_libnlv1_libs memkind" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - if test "$BUILD_opal_pmix_ext2x_DSO" = "1"; then - MCA_BUILD_opal_pmix_ext2x_DSO_TRUE= - MCA_BUILD_opal_pmix_ext2x_DSO_FALSE='#' -else - MCA_BUILD_opal_pmix_ext2x_DSO_TRUE='#' - MCA_BUILD_opal_pmix_ext2x_DSO_FALSE= + fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmemkind requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmemkind requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmemkind (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmemkind (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmemkind." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmemkind." >&2;} - if test "$should_build" = "1"; then : - components_last_result=1 + libnl_sane=0 else - components_last_result=0 -fi + opal_libnlv3_libs="$opal_libnlv3_libs memkind" - unset compile_mode +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - opal_show_subsubsubtitle "MCA component pmix:ext3x (m4 configuration macro)" + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" - component_path="$srcdir/opal/mca/pmix/ext3x" - want_component=0 + # Increment the counter - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "ext3x" ; then - want_component=1 - else - want_component=0 - fi - fi + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # if we were explicitly disabled, don't build :) - if test "$DISABLE_pmix" = "1"; then : - want_component=0 -fi - if test "$DISABLE_pmix_ext3x" = "1"; then : - want_component=0 +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - SHARED_FRAMEWORK="$DSO_pmix" - SHARED_COMPONENT="$DSO_pmix_ext3x" + rm -f conftest conftest_c.$ac_ext - STATIC_FRAMEWORK="$STATIC_pmix" - STATIC_COMPONENT="$STATIC_pmix_ext3x" + opal_libnl_sane=$libnl_sane - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:ext3x compile mode" >&5 -$as_echo_n "checking for MCA component pmix:ext3x compile mode... " >&6; } - if test "$DIRECT_pmix" = "ext3x" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # try to configure the component + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - ac_config_files="$ac_config_files opal/mca/pmix/ext3x/Makefile" + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - if test "$opal_external_pmix_happy" = "yes"; then : - # check for the 3.x version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if external component is version 3.x" >&5 -$as_echo_n "checking if external component is version 3.x... " >&6; } - if test "$opal_external_pmix_version" = "3x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test "$opal_event_external_support" != "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT" >&5 -$as_echo "$as_me: WARNING: EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LIBRARY. THIS LIBRARY MUST POINT TO THE SAME ONE USED" >&5 -$as_echo "$as_me: WARNING: LIBRARY. THIS LIBRARY MUST POINT TO THE SAME ONE USED" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT" >&5 -$as_echo "$as_me: WARNING: TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT" >&2;} - as_fn_error $? "PLEASE CORRECT THE CONFIGURE COMMAND LINE AND REBUILD" "$LINENO" 5 fi - opal_pmix_external_3x_happy=yes + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_memkind_create_kind" != "no" && + test "$ac_cv_search_memkind_create_kind" != "none required"; then : + mpool_memkind_LIBS="$ac_cv_search_memkind_create_kind -lnuma" +else + mpool_memkind_LIBS=" -lnuma" +fi + opal_check_package_happy="yes" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_pmix_external_3x_happy=no + opal_check_package_happy="no" fi - if test "$opal_pmix_external_3x_happy" = "yes"; then : - should_build=$should_build - # need to set the wrapper flags for static builds - pmix_ext3x_WRAPPER_EXTRA_LDFLAGS=$opal_external_pmix_LDFLAGS - pmix_ext3x_WRAPPER_EXTRA_LIBS=$opal_external_pmix_LIBS + +fi + unset opal_check_package_header_happy + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + + if test "$opal_check_package_happy" = "yes"; then : + opal_mpool_memkind_happy="yes" else - should_build=0 + mpool_memkind_CPPFLAGS="$opal_check_package_mpool_memkind_orig_CPPFLAGS" + mpool_memkind_LDFLAGS="$opal_check_package_mpool_memkind_orig_LDFLAGS" + mpool_memkind_LIBS="$opal_check_package_mpool_memkind_orig_LIBS" + fi + + CPPFLAGS="$opal_check_package_mpool_memkind_save_CPPFLAGS" + LDFLAGS="$opal_check_package_mpool_memkind_save_LDFLAGS" + LIBS="$opal_check_package_mpool_memkind_save_LIBS" + + + if test "$opal_mpool_memkind_happy" != "yes" -a -n "$with_memkind" ; then + as_fn_error $? "MEMKIND support requested but not found. Aborting" "$LINENO" 5 + fi + fi + + if test "$opal_mpool_memkind_happy" = "yes"; then : + should_build=$should_build else should_build=0 fi - opal_pmix_ext3x_CPPFLAGS=$opal_external_pmix_CPPFLAGS - opal_pmix_ext3x_LDFLAGS=$opal_external_pmix_LDFLAGS - opal_pmix_ext3x_LIBS=$opal_external_pmix_LIBS + # substitute in the things needed to build memkind + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -162767,45 +160257,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/pmix/ext3x/post_configure.sh" + infile="$srcdir/opal/mca/mpool/memkind/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ext3x" + all_components="$all_components memkind" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ext3x" + dso_components="$dso_components memkind" else - if test "pmix" = "common"; then + if test "mpool" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pmix/ext3x/lib${OPAL_LIB_PREFIX}mca_pmix_ext3x.la $static_ltlibs" + static_ltlibs="mca/mpool/memkind/lib${OPAL_LIB_PREFIX}mca_mpool_memkind.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pmix/ext3x/libmca_pmix_ext3x.la $static_ltlibs" + static_ltlibs="mca/mpool/memkind/libmca_mpool_memkind.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_pmix_ext3x_component;" >> $outfile.extern - echo " &mca_pmix_ext3x_component, " >> $outfile.struct - static_components="$static_components ext3x" + echo "extern const mca_base_component_t mca_mpool_memkind_component;" >> $outfile.extern + echo " &mca_mpool_memkind_component, " >> $outfile.struct + static_components="$static_components memkind" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:ext3x can compile" >&5 -$as_echo_n "checking if MCA component pmix:ext3x can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mpool:memkind can compile" >&5 +$as_echo_n "checking if MCA component mpool:memkind can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pmix" = "ext3x" ; then + if test "$DIRECT_mpool" = "memkind" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" + str="MCA_opal_mpool_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pmix component ext3x was supposed to be direct-called, but +as_fn_error $? "*** mpool component memkind was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -162813,8 +160303,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pmix" = "ext3x" ; then -as_fn_error $? "*** pmix component ext3x was supposed to be direct-called, but + if test "$DIRECT_mpool" = "memkind" ; then +as_fn_error $? "*** mpool component memkind was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -162829,7 +160319,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$pmix_ext3x_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$mpool_memkind_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -162869,7 +160359,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_ext3x_LDFLAGS; do + for arg in $mpool_memkind_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -162950,7 +160440,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_ext3x_WRAPPER_EXTRA_LDFLAGS; do + for arg in $mpool_memkind_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -162992,7 +160482,7 @@ fi - if test "$pmix_ext3x_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$mpool_memkind_WRAPPER_EXTRA_LIBS" = ""; then : @@ -163032,7 +160522,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_ext3x_LIBS; do + for arg in $mpool_memkind_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -163113,7 +160603,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_ext3x_WRAPPER_EXTRA_LIBS; do + for arg in $mpool_memkind_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -163161,7 +160651,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$pmix_ext3x_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$mpool_memkind_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -163204,7 +160694,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_ext3x_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $mpool_memkind_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -163247,32 +160737,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_ext3x_WRAPPER_EXTRA_CPPFLAGS ($pmix_ext3x_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pmix_ext3x_WRAPPER_EXTRA_CPPFLAGS ($pmix_ext3x_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring mpool_memkind_WRAPPER_EXTRA_CPPFLAGS ($mpool_memkind_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring mpool_memkind_WRAPPER_EXTRA_CPPFLAGS ($mpool_memkind_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:ext3x can compile" >&5 -$as_echo_n "checking if MCA component pmix:ext3x can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mpool:memkind can compile" >&5 +$as_echo_n "checking if MCA component mpool:memkind can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pmix" = "ext3x" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ext3x\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ext3x\" failed to configure properly" >&2;} + if test "$with_mpool" = "memkind" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"memkind\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"memkind\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "ext3x" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ext3x\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ext3x\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_mpool" ; then + if test "$DIRECT_mpool" = "memkind" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"memkind\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"memkind\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -163280,23 +160770,23 @@ fi # add component to all component list - all_components="$all_components ext3x" + all_components="$all_components memkind" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_pmix_ext3x_DSO=1 + BUILD_opal_mpool_memkind_DSO=1 else - BUILD_opal_pmix_ext3x_DSO=0 + BUILD_opal_mpool_memkind_DSO=0 fi - if test "$BUILD_opal_pmix_ext3x_DSO" = "1"; then - MCA_BUILD_opal_pmix_ext3x_DSO_TRUE= - MCA_BUILD_opal_pmix_ext3x_DSO_FALSE='#' + if test "$BUILD_opal_mpool_memkind_DSO" = "1"; then + MCA_BUILD_opal_mpool_memkind_DSO_TRUE= + MCA_BUILD_opal_mpool_memkind_DSO_FALSE='#' else - MCA_BUILD_opal_pmix_ext3x_DSO_TRUE='#' - MCA_BUILD_opal_pmix_ext3x_DSO_FALSE= + MCA_BUILD_opal_mpool_memkind_DSO_TRUE='#' + MCA_BUILD_opal_mpool_memkind_DSO_FALSE= fi @@ -163312,13 +160802,24 @@ - opal_show_subsubsubtitle "MCA component pmix:flux (m4 configuration macro)" + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + if test "1" != "0"; then : + + for component_path in $srcdir/opal/mca/mpool/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component mpool:$component (need to configure)" + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/opal/mca/pmix/flux" + + + component_path="$srcdir/opal/mca/mpool/$component" want_component=0 # build if: @@ -163350,8 +160851,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "flux" ; then + if test ! -z "$DIRECT_mpool" ; then + if test "$DIRECT_mpool" = "$component" ; then want_component=1 else want_component=0 @@ -163360,27 +160861,29 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_pmix" = "1"; then : - want_component=0 -fi - if test "$DISABLE_pmix_flux" = "1"; then : + if test "$DISABLE_mpool" = "1"; then : want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_mpool_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_pmix" - SHARED_COMPONENT="$DSO_pmix_flux" + SHARED_FRAMEWORK="$DSO_mpool" + str="SHARED_COMPONENT=\$DSO_mpool_$component" + eval $str - STATIC_FRAMEWORK="$STATIC_pmix" - STATIC_COMPONENT="$STATIC_pmix_flux" + STATIC_FRAMEWORK="$STATIC_mpool" + str="STATIC_COMPONENT=\$STATIC_mpool_$component" + eval $str shared_mode_override=static @@ -163398,9 +160901,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:flux compile mode" >&5 -$as_echo_n "checking for MCA component pmix:flux compile mode... " >&6; } - if test "$DIRECT_pmix" = "flux" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component mpool:$component compile mode" >&5 +$as_echo_n "checking for MCA component mpool:$component compile mode... " >&6; } + if test "$DIRECT_mpool" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -163408,222 +160911,267 @@ $as_echo "$compile_mode" >&6; } fi + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - # try to configure the component - - - ac_config_files="$ac_config_files opal/mca/pmix/flux/Makefile" - + if test "$should_build" = "1" ; then -# Check whether --with-flux-pmi was given. -if test "${with_flux_pmi+set}" = set; then : - withval=$with_flux_pmi; -fi + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -# Check whether --with-flux-pmi-library was given. -if test "${with_flux_pmi_library+set}" = set; then : - withval=$with_flux_pmi_library; -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - # pkg-config check aborts configure on failure - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if user wants Flux support to link against PMI library" >&5 -$as_echo_n "checking if user wants Flux support to link against PMI library... " >&6; } - if test "x$with_flux_pmi_library" != "xyes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +# +# Invoke configure in a specific subdirectory. +# +# opal/mca/mpool/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="opal/mca/mpool/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FLUX_PMI" >&5 -$as_echo_n "checking for FLUX_PMI... " >&6; } +# +# Sanity checks +# -if test -n "$FLUX_PMI_CFLAGS"; then - pkg_cv_FLUX_PMI_CFLAGS="$FLUX_PMI_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"flux-pmi\""; } >&5 - ($PKG_CONFIG --exists --print-errors "flux-pmi") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_FLUX_PMI_CFLAGS=`$PKG_CONFIG --cflags "flux-pmi" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$FLUX_PMI_LIBS"; then - pkg_cv_FLUX_PMI_LIBS="$FLUX_PMI_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"flux-pmi\""; } >&5 - ($PKG_CONFIG --exists --print-errors "flux-pmi") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_FLUX_PMI_LIBS=`$PKG_CONFIG --libs "flux-pmi" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - FLUX_PMI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "flux-pmi" 2>&1` - else - FLUX_PMI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "flux-pmi" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$FLUX_PMI_PKG_ERRORS" >&5 + # + # Move into the target directory + # - as_fn_error $? "Package requirements (flux-pmi) were not met: + subdir_parent=`pwd` + cd $subdir_dir -$FLUX_PMI_PKG_ERRORS + # + # Make a "../" for each directory in $subdir_dir. + # -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # -Alternatively, you may set the environment variables FLUX_PMI_CFLAGS -and FLUX_PMI_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac -Alternatively, you may set the environment variables FLUX_PMI_CFLAGS -and FLUX_PMI_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. + # + # Construct the --cache-file argument + # -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } -else - FLUX_PMI_CFLAGS=$pkg_cv_FLUX_PMI_CFLAGS - FLUX_PMI_LIBS=$pkg_cv_FLUX_PMI_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" -fi - have_flux_pmi_library=yes + # + # Invoke the configure script in the subdirectory + # -$as_echo "#define HAVE_FLUX_PMI_LIBRARY 1" >>confdefs.h + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + # + # Go back to the topdir + # + cd $subdir_parent fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Flux support allowed to use dlopen" >&5 -$as_echo_n "checking if Flux support allowed to use dlopen... " >&6; } - if test $OPAL_ENABLE_DLOPEN_SUPPORT -eq 1 && test "x$compile_mode" = "xdso"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - flux_can_dlopen=yes +# +# Clean up +# -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking if Flux PMI support can be built" >&5 -$as_echo_n "checking Checking if Flux PMI support can be built... " >&6; } - if test "x$with_flux_pmi" != "xno" && ( test "x$have_flux_pmi_library" = "xyes" || test "x$flux_can_dlopen" = "xyes" ) ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_enable_flux=yes + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - if test "x$with_flux_pmi" = "xyes"; then : - as_fn_error $? "Aborting since Flux PMI support was requested" "$LINENO" 5 + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -fi + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi -fi + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/opal/mca/mpool/all_components/post_configure.sh" + if test -f $infile; then - # Evaluate succeed / fail - if test "x$opal_enable_flux" = "xyes"; then : - should_build=$should_build - # need to set the wrapper flags for static builds - pmix_flux_WRAPPER_EXTRA_LIBS="$FLUX_PMI_LIBS" -else - should_build=0 -fi + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + mpool_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + mpool_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi - if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/pmix/flux/post_configure.sh" + infile="$srcdir/opal/mca/mpool/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components flux" + all_components="$all_components $component" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components flux" + dso_components="$dso_components $component" else - if test "pmix" = "common"; then + if test "mpool" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pmix/flux/lib${OPAL_LIB_PREFIX}mca_pmix_flux.la $static_ltlibs" + static_ltlibs="mca/mpool/$component/lib${OPAL_LIB_PREFIX}mca_mpool_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pmix/flux/libmca_pmix_flux.la $static_ltlibs" + static_ltlibs="mca/mpool/$component/libmca_mpool_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_pmix_flux_component;" >> $outfile.extern - echo " &mca_pmix_flux_component, " >> $outfile.struct - static_components="$static_components flux" + echo "extern const mca_base_component_t mca_mpool_$component_component;" >> $outfile.extern + echo " &mca_mpool_$component_component, " >> $outfile.struct + static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:flux can compile" >&5 -$as_echo_n "checking if MCA component pmix:flux can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mpool:$component can compile" >&5 +$as_echo_n "checking if MCA component mpool:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pmix" = "flux" ; then + if test "$DIRECT_mpool" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" + str="MCA_opal_mpool_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pmix component flux was supposed to be direct-called, but +as_fn_error $? "*** mpool component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -163631,8 +161179,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pmix" = "flux" ; then -as_fn_error $? "*** pmix component flux was supposed to be direct-called, but + if test "$DIRECT_mpool" = "$component" ; then +as_fn_error $? "*** mpool component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -163647,7 +161195,8 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$pmix_flux_WRAPPER_EXTRA_LDFLAGS" = ""; then : + str="line=\$mpool_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -163687,7 +161236,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_flux_LDFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -163727,8 +161276,8 @@ unset $opal_var done - -else +str="line=\$mpool_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -163768,21 +161317,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_flux_WRAPPER_EXTRA_LDFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -163809,334 +161358,189 @@ done -fi - if test "$pmix_flux_WRAPPER_EXTRA_LIBS" = ""; then : + fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + else - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mpool:$component can compile" >&5 +$as_echo_n "checking if MCA component mpool:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_mpool" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_mpool" ; then + if test "$DIRECT_mpool" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi + fi + + fi + fi done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + MCA_opal_mpool_ALL_COMPONENTS="$all_components" + MCA_opal_mpool_STATIC_COMPONENTS="$static_components" + MCA_opal_mpool_DSO_COMPONENTS="$dso_components" + MCA_opal_mpool_STATIC_LTLIBS="$static_ltlibs" - for arg in $pmix_flux_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + MCA_opal_mpool_ALL_SUBDIRS= + for item in $all_components ; do + MCA_opal_mpool_ALL_SUBDIRS="$MCA_opal_mpool_ALL_SUBDIRS mca/mpool/$item" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_flux_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi + MCA_opal_mpool_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_opal_mpool_STATIC_SUBDIRS="$MCA_opal_mpool_STATIC_SUBDIRS mca/mpool/$item" done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + MCA_opal_mpool_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_opal_mpool_DSO_SUBDIRS="$MCA_opal_mpool_DSO_SUBDIRS mca/mpool/$item" done -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pmix_flux_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "mpool" != "common"; then + cat > $outfile <&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 +EOF + # Only replace the header file if a) it doesn't previously + # exist, or b) the contents are different. Do this to not + # trigger recompilation of certain .c files just because the + # timestamp changed on $outfile_real (similar to the way AC + # handles AC_CONFIG_HEADER files). + diff $outfile $outfile_real > /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - + fi + rm -f $outfile.struct $outfile.extern - for arg in $pmix_flux_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + unset all_components static_components dso_components outfile outfile_real + MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS patcher" + MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/patcher" + MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_patcher_ALL_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_patcher_DSO_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_patcher_STATIC_SUBDIRS)" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/patcher/libmca_patcher.la" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_patcher_STATIC_LTLIBS)" - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_show_subsubtitle "Configuring MCA framework patcher" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_flux_WRAPPER_EXTRA_CPPFLAGS ($pmix_flux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pmix_flux_WRAPPER_EXTRA_CPPFLAGS ($pmix_flux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= -else + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=opal/mca/patcher/base + as_dir=$outdir; as_fn_mkdir_p - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:flux can compile" >&5 -$as_echo_n "checking if MCA component pmix:flux can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # emit Makefile rule + ac_config_files="$ac_config_files opal/mca/patcher/Makefile" - # If this component was requested as the default for this - # type, then abort. - if test "$with_pmix" = "flux" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"flux\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"flux\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "flux" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"flux\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"flux\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - # add component to all component list - all_components="$all_components flux" -fi + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework patcher" >&5 +$as_echo_n "checking for no configure components in framework patcher... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework patcher" >&5 +$as_echo_n "checking for m4 configure components in framework patcher... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: linux, overwrite" >&5 +$as_echo "linux, overwrite" >&6; } + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_pmix_flux_DSO=1 -else - BUILD_opal_pmix_flux_DSO=0 -fi - if test "$BUILD_opal_pmix_flux_DSO" = "1"; then - MCA_BUILD_opal_pmix_flux_DSO_TRUE= - MCA_BUILD_opal_pmix_flux_DSO_FALSE='#' -else - MCA_BUILD_opal_pmix_flux_DSO_TRUE='#' - MCA_BUILD_opal_pmix_flux_DSO_FALSE= -fi + # run the configure logic for the no-config components - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - unset compile_mode + # configure components that use built-in configuration scripts + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - opal_show_subsubsubtitle "MCA component pmix:pmix3x (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component patcher:linux (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/pmix/pmix3x" + component_path="$srcdir/opal/mca/patcher/linux" want_component=0 # build if: @@ -164168,8 +161572,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "pmix3x" ; then + if test ! -z "$DIRECT_patcher" ; then + if test "$DIRECT_patcher" = "linux" ; then want_component=1 else want_component=0 @@ -164178,10 +161582,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_pmix" = "1"; then : + if test "$DISABLE_patcher" = "1"; then : want_component=0 fi - if test "$DISABLE_pmix_pmix3x" = "1"; then : + if test "$DISABLE_patcher_linux" = "1"; then : want_component=0 fi @@ -164194,11 +161598,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_pmix" - SHARED_COMPONENT="$DSO_pmix_pmix3x" + SHARED_FRAMEWORK="$DSO_patcher" + SHARED_COMPONENT="$DSO_patcher_linux" - STATIC_FRAMEWORK="$STATIC_pmix" - STATIC_COMPONENT="$STATIC_pmix_pmix3x" + STATIC_FRAMEWORK="$STATIC_patcher" + STATIC_COMPONENT="$STATIC_patcher_linux" shared_mode_override=static @@ -164216,9 +161620,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:pmix3x compile mode" >&5 -$as_echo_n "checking for MCA component pmix:pmix3x compile mode... " >&6; } - if test "$DIRECT_pmix" = "pmix3x" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component patcher:linux compile mode" >&5 +$as_echo_n "checking for MCA component patcher:linux compile mode... " >&6; } + if test "$DIRECT_patcher" = "linux" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -164229,7 +161633,7 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/pmix/pmix3x/Makefile" + ac_config_files="$ac_config_files opal/mca/patcher/linux/Makefile" @@ -164243,7 +161647,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in PMIX_VERSION opal_pmix_pmix3x_save_CPPFLAGS opal_pmix_pmix2_save_CFLAGS opal_pmix_pmix3x_save_LDFLAGS opal_pmix_pmix3x_save_LIBS opal_pmix_pmix3x_basedir opal_pmix_pmix3x_args opal_pmix_pmix3x_happy pmix_pmix3x_status_filename; do + for opal_var in opal_patcher_linux_CPPFLAGS_save; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -164262,7 +161666,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"PMIX_VERSION opal_pmix_pmix3x_save_CPPFLAGS opal_pmix_pmix2_save_CFLAGS opal_pmix_pmix3x_save_LDFLAGS opal_pmix_pmix3x_save_LIBS opal_pmix_pmix3x_basedir opal_pmix_pmix3x_args opal_pmix_pmix3x_happy pmix_pmix3x_status_filename\"" + opal_str="opal_scope_$opal_scope_index=\"opal_patcher_linux_CPPFLAGS_save\"" eval $opal_str unset opal_str @@ -164270,59 +161674,30 @@ opal_scope_index=`expr $opal_scope_index + 1` - opal_pmix_pmix3x_basedir=opal/mca/pmix/pmix3x - - opal_pmix_pmix3x_save_CFLAGS=$CFLAGS - opal_pmix_pmix3x_save_CPPFLAGS=$CPPFLAGS - opal_pmix_pmix3x_save_LDFLAGS=$LDFLAGS - opal_pmix_pmix3x_save_LIBS=$LIBS - - # Check whether --enable-install-libpmix was given. -if test "${enable_install_libpmix+set}" = set; then : - enableval=$enable_install_libpmix; -fi + opal_patcher_linux_happy=no + if test $OPAL_ENABLE_DLOPEN_SUPPORT = 1 ; then + # Only enable on Linux for now. In the future this component might + # be modified to work on FreeBSD. + case $host in + *-linux*) + opal_patcher_linux_happy=yes; + ;; + esac + if test $opal_patcher_linux_happy = yes ; then - # Check whether --enable-pmix-timing was given. -if test "${enable_pmix_timing+set}" = set; then : - enableval=$enable_pmix_timing; -fi + opal_check_package_patcher_linux_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_patcher_linux_save_LDFLAGS="$LDFLAGS" + opal_check_package_patcher_linux_save_LIBS="$LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if PMIx timing is enabled" >&5 -$as_echo_n "checking if PMIx timing is enabled... " >&6; } - if test "$enable_pmix_timing" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_pmix_pmix3x_timing_flag=--enable-pmix-timing - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (disabled)" >&5 -$as_echo "no (disabled)" >&6; } - opal_pmix_pmix3x_timing_flag=--disable-pmix-timing - fi + opal_check_package_patcher_linux_orig_CPPFLAGS="$patcher_linux_CPPFLAGS" + opal_check_package_patcher_linux_orig_LDFLAGS="$patcher_linux_LDFLAGS" + opal_check_package_patcher_linux_orig_LIBS="$patcher_linux_LIBS" - opal_pmix_pmix3x_args="$opal_pmix_pmix3x_timing_flag --without-tests-examples --disable-pmix-binaries --disable-pmix-backward-compatibility --disable-visibility --enable-embedded-libevent --with-libevent-header=\\\"opal/mca/event/$opal_event_base_include\\\" --enable-embedded-hwloc --with-hwloc-header=\\\"$opal_hwloc_base_include\\\"" - if test "$enable_debug" = "yes"; then : - opal_pmix_pmix3x_args="--enable-debug $opal_pmix_pmix3x_args" - CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS -g" -else - opal_pmix_pmix3x_args="--disable-debug $opal_pmix_pmix3x_args" - CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if want to install standalone libpmix" >&5 -$as_echo_n "checking if want to install standalone libpmix... " >&6; } - if test "$enable_install_libpmix" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_pmix_pmix3x_args="--with-pmix-symbol-rename=OPAL_MCA_PMIX3X_ --enable-embedded-mode $opal_pmix_pmix3x_args" -fi - if test "$with_devel_headers" = "yes"; then : - opal_pmix_pmix3x_args="--with-devel-headers $opal_pmix_pmix3x_args" -fi - CPPFLAGS="-I$OPAL_TOP_SRCDIR -I$OPAL_TOP_BUILDDIR -I$OPAL_TOP_SRCDIR/opal/include -I$OPAL_TOP_BUILDDIR/opal/include $CPPFLAGS" + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -164335,7 +161710,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -164354,7 +161729,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -164362,307 +161737,398 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# $opal_pmix_pmix3x_basedir/pmix is the directory to invoke in -# $opal_pmix_pmix3x_args $opal_subdir_args 'CFLAGS=$CFLAGS' 'CPPFLAGS=$CPPFLAGS' is the list of arguments to pass -# opal_pmix_pmix3x_happy=1 is actions to execute upon success -# opal_pmix_pmix3x_happy=0 is actions to execute upon failure -# -subdir_dir="$opal_pmix_pmix3x_basedir/pmix" -subdir_args="$opal_pmix_pmix3x_args $opal_subdir_args 'CFLAGS=$CFLAGS' 'CPPFLAGS=$CPPFLAGS'" -subdir_success="opal_pmix_pmix3x_happy=1" -subdir_failure="opal_pmix_pmix3x_happy=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - - # - # Construct the --cache-file argument - # - - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - - # - # Invoke the configure script in the subdirectory - # + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_dlfcn_h - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi + # get rid of the trailing slash(es) + dir_prefix=$(echo | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in dlfcn.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi - # - # Go back to the topdir - # +done - cd $subdir_parent + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_dlfcn_h +fi fi -# -# Clean up -# + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + patcher_linux_CPPFLAGS="$patcher_linux_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in dlfcn.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi +done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_header_happy" = "yes"; then : - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # see comment above + unset ac_cv_search_dl_iterate_phdr + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + patcher_linux_LDFLAGS="$patcher_linux_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5 +$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; } +if ${ac_cv_search_dl_iterate_phdr+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - CFLAGS=$opal_pmix_pmix3x_save_CFLAGS - CPPFLAGS=$opal_pmix_pmix3x_save_CPPFLAGS - LDFLAGS=$opal_pmix_pmix3x_save_LDFLAGS - LIBS=$opal_pmix_pmix3x_save_LIBS +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dl_iterate_phdr (); +int +main () +{ +return dl_iterate_phdr (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dl_iterate_phdr=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dl_iterate_phdr+:} false; then : + break +fi +done +if ${ac_cv_search_dl_iterate_phdr+:} false; then : - # See if we are using the internal version. NOTE: we still did all the - # above configury so that all the proper GNU Autotools - # infrastructure is setup properly (e.g., w.r.t. SUBDIRS=pmix in - # this directory's Makefile.am, we still need the Autotools "make - # distclean" infrastructure to work properly). - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if v3.x component is to be used" >&5 -$as_echo_n "checking if v3.x component is to be used... " >&6; } - if test "$opal_external_pmix_happy" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no - disqualifying this component" >&5 -$as_echo "no - disqualifying this component" >&6; } - opal_pmix_pmix3x_happy=0 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes - using the internal v3.x library" >&5 -$as_echo "yes - using the internal v3.x library" >&6; } - if test "$opal_pmix_pmix3x_happy" = "0"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: INTERNAL PMIX FAILED TO CONFIGURE" >&5 -$as_echo "$as_me: WARNING: INTERNAL PMIX FAILED TO CONFIGURE" >&2;} - as_fn_error $? "CANNOT CONTINUE" "$LINENO" 5 + ac_cv_search_dl_iterate_phdr=no fi - # Build flags for our Makefile.am - opal_pmix_pmix3x_LDFLAGS= - opal_pmix_pmix3x_LIBS="$OPAL_TOP_BUILDDIR/$opal_pmix_pmix3x_basedir/pmix/src/libpmix.la" - opal_pmix_pmix3x_CPPFLAGS="-I$OPAL_TOP_BUILDDIR/$opal_pmix_pmix3x_basedir/pmix/include -I$OPAL_TOP_BUILDDIR/$opal_pmix_pmix3x_basedir/pmix -I$OPAL_TOP_SRCDIR/$opal_pmix_pmix3x_basedir/pmix/include -I$OPAL_TOP_SRCDIR/$opal_pmix_pmix3x_basedir/pmix" - opal_pmix_pmix3x_DEPENDENCIES="$OPAL_TOP_BUILDDIR/$opal_pmix_pmix3x_basedir/pmix/src/libpmix.la" +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dl_iterate_phdr" >&5 +$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; } +ac_res=$ac_cv_search_dl_iterate_phdr +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" + patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" + unset ac_cv_search_dl_iterate_phdr +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5 +$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; } +if ${ac_cv_search_dl_iterate_phdr+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dl_iterate_phdr (); +int +main () +{ +return dl_iterate_phdr (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dl_iterate_phdr=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dl_iterate_phdr+:} false; then : + break +fi +done +if ${ac_cv_search_dl_iterate_phdr+:} false; then : +else + ac_cv_search_dl_iterate_phdr=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dl_iterate_phdr" >&5 +$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; } +ac_res=$ac_cv_search_dl_iterate_phdr +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" + patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" + unset ac_cv_search_dl_iterate_phdr +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + patcher_linux_LDFLAGS="$patcher_linux_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5 +$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; } +if ${ac_cv_search_dl_iterate_phdr+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Finally, add some flags to the wrapper compiler so that our - # headers can be found. - pmix_pmix3x_status_filename="$OPAL_TOP_BUILDDIR/$opal_pmix_pmix3x_basedir/pmix/config.status" - pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS=`egrep PMIX_EMBEDDED_CPPFLAGS $pmix_pmix3x_status_filename | cut -d\" -f4` - pmix_pmix3x_WRAPPER_EXTRA_LDFLAGS=`egrep PMIX_EMBEDDED_LDFLAGS $pmix_pmix3x_status_filename | cut -d\" -f4` - pmix_pmix3x_WRAPPER_EXTRA_LIBS=`egrep PMIX_EMBEDDED_LIBS $pmix_pmix3x_status_filename | cut -d\" -f4` - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking PMIx extra wrapper CPPFLAGS" >&5 -$as_echo_n "checking PMIx extra wrapper CPPFLAGS... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS" >&5 -$as_echo "$pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking PMIx extra wrapper LDFLAGS" >&5 -$as_echo_n "checking PMIx extra wrapper LDFLAGS... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_pmix3x_WRAPPER_EXTRA_LDFLAGS" >&5 -$as_echo "$pmix_pmix3x_WRAPPER_EXTRA_LDFLAGS" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking PMIx extra wrapper LIBS" >&5 -$as_echo_n "checking PMIx extra wrapper LIBS... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_pmix3x_WRAPPER_EXTRA_LIBS" >&5 -$as_echo "$pmix_pmix3x_WRAPPER_EXTRA_LIBS" >&6; } +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dl_iterate_phdr (); +int +main () +{ +return dl_iterate_phdr (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dl_iterate_phdr=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dl_iterate_phdr+:} false; then : + break +fi +done +if ${ac_cv_search_dl_iterate_phdr+:} false; then : - if test $opal_pmix_pmix3x_happy -eq 1; then : - should_build=$should_build else - should_build=0 + ac_cv_search_dl_iterate_phdr=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dl_iterate_phdr" >&5 +$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; } +ac_res=$ac_cv_search_dl_iterate_phdr +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" + patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" + unset ac_cv_search_dl_iterate_phdr +fi +fi +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + patcher_linux_LDFLAGS="$patcher_linux_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5 +$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; } +if ${ac_cv_search_dl_iterate_phdr+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dl_iterate_phdr (); +int +main () +{ +return dl_iterate_phdr (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dl_iterate_phdr=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dl_iterate_phdr+:} false; then : + break +fi +done +if ${ac_cv_search_dl_iterate_phdr+:} false; then : +else + ac_cv_search_dl_iterate_phdr=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dl_iterate_phdr" >&5 +$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; } +ac_res=$ac_cv_search_dl_iterate_phdr +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" + patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" + unset ac_cv_search_dl_iterate_phdr +fi +fi +fi +fi - if test "$should_build" = "1"; then : + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/pmix/pmix3x/post_configure.sh" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components pmix3x" + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_libnl_sane; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components pmix3x" - else - if test "pmix" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pmix/pmix3x/lib${OPAL_LIB_PREFIX}mca_pmix_pmix3x.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pmix/pmix3x/libmca_pmix_pmix3x.la $static_ltlibs" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - echo "extern const mca_base_component_t mca_pmix_pmix3x_component;" >> $outfile.extern - echo " &mca_pmix_pmix3x_component, " >> $outfile.struct - static_components="$static_components pmix3x" - fi + done - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:pmix3x can compile" >&5 -$as_echo_n "checking if MCA component pmix:pmix3x can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + eval $opal_str + unset opal_str - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pmix" = "pmix3x" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** pmix component pmix3x was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pmix" = "pmix3x" ; then -as_fn_error $? "*** pmix component pmix3x was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pmix_pmix3x_WRAPPER_EXTRA_LDFLAGS" = ""; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -164675,7 +162141,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -164694,7 +162160,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -164702,25 +162168,277 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_pmix3x_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libdl requires libnl v1 or v3" >&5 +$as_echo_n "checking if libdl requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void dl_iterate_phdr (void); +int main(int argc, char *argv[]) { + dl_iterate_phdr (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:162195: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ldl $LIBS $patcher_linux_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ldl $LIBS $patcher_linux_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:162202: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib dl" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib dl" >&2;} + +fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libdl links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libdl links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} + + libnl_sane=0 +fi + + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas dl requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas dl requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} + + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs dl" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi + fi + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libdl requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libdl requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} + + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs dl" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi + +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -164743,65 +162461,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $pmix_pmix3x_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -164824,89 +162487,332 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - if test "$pmix_pmix3x_WRAPPER_EXTRA_LIBS" = ""; then : +fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_dl_iterate_phdr" != "no" && + test "$ac_cv_search_dl_iterate_phdr" != "none required"; then : + patcher_linux_LIBS="$ac_cv_search_dl_iterate_phdr " +else + patcher_linux_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +else + opal_check_package_happy="no" +fi +else - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # see comment above + unset ac_cv_search_dl_iterate_phdr + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + patcher_linux_LDFLAGS="$patcher_linux_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5 +$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; } +if ${ac_cv_search_dl_iterate_phdr+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dl_iterate_phdr (); +int +main () +{ +return dl_iterate_phdr (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dl_iterate_phdr=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dl_iterate_phdr+:} false; then : + break +fi +done +if ${ac_cv_search_dl_iterate_phdr+:} false; then : - for arg in $pmix_pmix3x_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +else + ac_cv_search_dl_iterate_phdr=no fi - done +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dl_iterate_phdr" >&5 +$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; } +ac_res=$ac_cv_search_dl_iterate_phdr +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_lib_happy="no" fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" + patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" + unset ac_cv_search_dl_iterate_phdr fi - done +else + # libdir was not specified - go through search path + opal_check_package_libdir="" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5 +$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; } +if ${ac_cv_search_dl_iterate_phdr+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dl_iterate_phdr (); +int +main () +{ +return dl_iterate_phdr (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dl_iterate_phdr=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dl_iterate_phdr+:} false; then : + break +fi +done +if ${ac_cv_search_dl_iterate_phdr+:} false; then : - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +else + ac_cv_search_dl_iterate_phdr=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dl_iterate_phdr" >&5 +$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; } +ac_res=$ac_cv_search_dl_iterate_phdr +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" + patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" + unset ac_cv_search_dl_iterate_phdr +fi +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + patcher_linux_LDFLAGS="$patcher_linux_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5 +$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; } +if ${ac_cv_search_dl_iterate_phdr+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dl_iterate_phdr (); +int +main () +{ +return dl_iterate_phdr (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dl_iterate_phdr=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dl_iterate_phdr+:} false; then : + break +fi +done +if ${ac_cv_search_dl_iterate_phdr+:} false; then : + +else + ac_cv_search_dl_iterate_phdr=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dl_iterate_phdr" >&5 +$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; } +ac_res=$ac_cv_search_dl_iterate_phdr +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" + patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" + unset ac_cv_search_dl_iterate_phdr +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + patcher_linux_LDFLAGS="$patcher_linux_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5 +$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; } +if ${ac_cv_search_dl_iterate_phdr+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dl_iterate_phdr (); +int +main () +{ +return dl_iterate_phdr (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dl_iterate_phdr=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dl_iterate_phdr+:} false; then : + break +fi +done +if ${ac_cv_search_dl_iterate_phdr+:} false; then : else + ac_cv_search_dl_iterate_phdr=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dl_iterate_phdr" >&5 +$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; } +ac_res=$ac_cv_search_dl_iterate_phdr +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" + patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" + unset ac_cv_search_dl_iterate_phdr +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -164919,7 +162825,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -164938,66 +162844,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $pmix_pmix3x_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -165010,7 +162866,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -165029,7 +162885,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -165037,228 +162893,443 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libdl requires libnl v1 or v3" >&5 +$as_echo_n "checking if libdl requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void dl_iterate_phdr (void); +int main(int argc, char *argv[]) { + dl_iterate_phdr (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:162920: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ldl $LIBS $patcher_linux_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ldl $LIBS $patcher_linux_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:162927: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS ($pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS ($pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib dl" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib dl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:pmix3x can compile" >&5 -$as_echo_n "checking if MCA component pmix:pmix3x can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi - # If this component was requested as the default for this - # type, then abort. - if test "$with_pmix" = "pmix3x" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pmix3x\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pmix3x\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "pmix3x" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pmix3x\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pmix3x\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # add component to all component list - all_components="$all_components pmix3x" + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libdl links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libdl links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} + + libnl_sane=0 fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas dl requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas dl requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_pmix_pmix3x_DSO=1 -else - BUILD_opal_pmix_pmix3x_DSO=0 -fi - if test "$BUILD_opal_pmix_pmix3x_DSO" = "1"; then - MCA_BUILD_opal_pmix_pmix3x_DSO_TRUE= - MCA_BUILD_opal_pmix_pmix3x_DSO_FALSE='#' + libnl_sane=0 else - MCA_BUILD_opal_pmix_pmix3x_DSO_TRUE='#' - MCA_BUILD_opal_pmix_pmix3x_DSO_FALSE= -fi + opal_libnlv1_libs="$opal_libnlv1_libs dl" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi +# Go through each item in the variable and only keep the unique ones - unset compile_mode +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - opal_show_subsubsubtitle "MCA component pmix:s1 (m4 configuration macro)" + # Check the ending condition - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter + opal_i="`expr $opal_i + 1`" + done - component_path="$srcdir/opal/mca/pmix/s1" - want_component=0 + # If we didn't find the token, add it to the "array" - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "s1" ; then - want_component=1 - else - want_component=0 - fi - fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # if we were explicitly disabled, don't build :) - if test "$DISABLE_pmix" = "1"; then : - want_component=0 -fi - if test "$DISABLE_pmix_s1" = "1"; then : - want_component=0 -fi +# Take all the items in the "array" and assemble them back into a +# single variable - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - SHARED_FRAMEWORK="$DSO_pmix" - SHARED_COMPONENT="$DSO_pmix_s1" + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - STATIC_FRAMEWORK="$STATIC_pmix" - STATIC_COMPONENT="$STATIC_pmix_s1" +# Done; do the assignment - shared_mode_override=static +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi + +fi + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libdl requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libdl requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libdl (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libdl (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libdl." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libdl." >&2;} + + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs dl" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - compile_mode="static" + opal_i="`expr $opal_i - 1`" fi +done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:s1 compile mode" >&5 -$as_echo_n "checking for MCA component pmix:s1 compile mode... " >&6; } - if test "$DIRECT_pmix" = "s1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi + +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # try to configure the component + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - ac_config_files="$ac_config_files opal/mca/pmix/s1/Makefile" + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Evaluate succeed / fail - if test "$opal_enable_pmi1" = "yes" && test "$opal_check_ugni_happy" = "no"; then : + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_dl_iterate_phdr" != "no" && + test "$ac_cv_search_dl_iterate_phdr" != "none required"; then : + patcher_linux_LIBS="$ac_cv_search_dl_iterate_phdr " +else + patcher_linux_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi + + +fi + unset opal_check_package_header_happy + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + + if test "$opal_check_package_happy" = "yes"; then : + +else + patcher_linux_CPPFLAGS="$opal_check_package_patcher_linux_orig_CPPFLAGS" + patcher_linux_LDFLAGS="$opal_check_package_patcher_linux_orig_LDFLAGS" + patcher_linux_LIBS="$opal_check_package_patcher_linux_orig_LIBS" + opal_patcher_linux_happy=no +fi + + CPPFLAGS="$opal_check_package_patcher_linux_save_CPPFLAGS" + LDFLAGS="$opal_check_package_patcher_linux_save_LDFLAGS" + LIBS="$opal_check_package_patcher_linux_save_LIBS" + + for ac_header in elf.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "elf.h" "ac_cv_header_elf_h" "$ac_includes_default" +if test "x$ac_cv_header_elf_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ELF_H 1 +_ACEOF + +else + opal_patcher_linux_happy=no +fi + +done + + for ac_header in sys/auxv.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/auxv.h" "ac_cv_header_sys_auxv_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_auxv_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_AUXV_H 1 +_ACEOF + +fi + +done + + fi + fi + + # this component can not be used until we can determine a way to hook munmap, etc inside + # glibc. this is needed to catch munmap called by free + opal_patcher_linux_happy=no + + if test $opal_patcher_linux_happy = yes; then : should_build=$should_build - # need to set the wrapper flags for static builds - pmix_s1_WRAPPER_EXTRA_LDFLAGS="$opal_pmi1_LDFLAGS" - pmix_s1_WRAPPER_EXTRA_LIBS="$opal_pmi1_LIBS" else should_build=0 fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -165268,45 +163339,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/pmix/s1/post_configure.sh" + infile="$srcdir/opal/mca/patcher/linux/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components s1" + all_components="$all_components linux" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components s1" + dso_components="$dso_components linux" else - if test "pmix" = "common"; then + if test "patcher" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pmix/s1/lib${OPAL_LIB_PREFIX}mca_pmix_s1.la $static_ltlibs" + static_ltlibs="mca/patcher/linux/lib${OPAL_LIB_PREFIX}mca_patcher_linux.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pmix/s1/libmca_pmix_s1.la $static_ltlibs" + static_ltlibs="mca/patcher/linux/libmca_patcher_linux.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_pmix_s1_component;" >> $outfile.extern - echo " &mca_pmix_s1_component, " >> $outfile.struct - static_components="$static_components s1" + echo "extern const mca_base_component_t mca_patcher_linux_component;" >> $outfile.extern + echo " &mca_patcher_linux_component, " >> $outfile.struct + static_components="$static_components linux" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:s1 can compile" >&5 -$as_echo_n "checking if MCA component pmix:s1 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component patcher:linux can compile" >&5 +$as_echo_n "checking if MCA component patcher:linux can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pmix" = "s1" ; then + if test "$DIRECT_patcher" = "linux" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" + str="MCA_opal_patcher_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pmix component s1 was supposed to be direct-called, but +as_fn_error $? "*** patcher component linux was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -165314,8 +163385,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pmix" = "s1" ; then -as_fn_error $? "*** pmix component s1 was supposed to be direct-called, but + if test "$DIRECT_patcher" = "linux" ; then +as_fn_error $? "*** patcher component linux was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -165330,7 +163401,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$pmix_s1_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$patcher_linux_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -165370,7 +163441,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_s1_LDFLAGS; do + for arg in $patcher_linux_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -165451,7 +163522,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_s1_WRAPPER_EXTRA_LDFLAGS; do + for arg in $patcher_linux_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -165493,7 +163564,7 @@ fi - if test "$pmix_s1_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$patcher_linux_WRAPPER_EXTRA_LIBS" = ""; then : @@ -165533,7 +163604,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_s1_LIBS; do + for arg in $patcher_linux_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -165614,7 +163685,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_s1_WRAPPER_EXTRA_LIBS; do + for arg in $patcher_linux_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -165662,7 +163733,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$pmix_s1_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$patcher_linux_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -165705,7 +163776,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_s1_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $patcher_linux_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -165748,32 +163819,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_s1_WRAPPER_EXTRA_CPPFLAGS ($pmix_s1_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pmix_s1_WRAPPER_EXTRA_CPPFLAGS ($pmix_s1_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring patcher_linux_WRAPPER_EXTRA_CPPFLAGS ($patcher_linux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring patcher_linux_WRAPPER_EXTRA_CPPFLAGS ($patcher_linux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:s1 can compile" >&5 -$as_echo_n "checking if MCA component pmix:s1 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component patcher:linux can compile" >&5 +$as_echo_n "checking if MCA component patcher:linux can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pmix" = "s1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"s1\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"s1\" failed to configure properly" >&2;} + if test "$with_patcher" = "linux" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"linux\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "s1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"s1\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"s1\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_patcher" ; then + if test "$DIRECT_patcher" = "linux" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"linux\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -165781,23 +163852,23 @@ fi # add component to all component list - all_components="$all_components s1" + all_components="$all_components linux" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_pmix_s1_DSO=1 + BUILD_opal_patcher_linux_DSO=1 else - BUILD_opal_pmix_s1_DSO=0 + BUILD_opal_patcher_linux_DSO=0 fi - if test "$BUILD_opal_pmix_s1_DSO" = "1"; then - MCA_BUILD_opal_pmix_s1_DSO_TRUE= - MCA_BUILD_opal_pmix_s1_DSO_FALSE='#' + if test "$BUILD_opal_patcher_linux_DSO" = "1"; then + MCA_BUILD_opal_patcher_linux_DSO_TRUE= + MCA_BUILD_opal_patcher_linux_DSO_FALSE='#' else - MCA_BUILD_opal_pmix_s1_DSO_TRUE='#' - MCA_BUILD_opal_pmix_s1_DSO_FALSE= + MCA_BUILD_opal_patcher_linux_DSO_TRUE='#' + MCA_BUILD_opal_patcher_linux_DSO_FALSE= fi @@ -165813,13 +163884,13 @@ - opal_show_subsubsubtitle "MCA component pmix:s2 (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component patcher:overwrite (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/pmix/s2" + component_path="$srcdir/opal/mca/patcher/overwrite" want_component=0 # build if: @@ -165851,8 +163922,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "s2" ; then + if test ! -z "$DIRECT_patcher" ; then + if test "$DIRECT_patcher" = "overwrite" ; then want_component=1 else want_component=0 @@ -165861,10 +163932,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_pmix" = "1"; then : + if test "$DISABLE_patcher" = "1"; then : want_component=0 fi - if test "$DISABLE_pmix_s2" = "1"; then : + if test "$DISABLE_patcher_overwrite" = "1"; then : want_component=0 fi @@ -165877,11 +163948,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_pmix" - SHARED_COMPONENT="$DSO_pmix_s2" + SHARED_FRAMEWORK="$DSO_patcher" + SHARED_COMPONENT="$DSO_patcher_overwrite" - STATIC_FRAMEWORK="$STATIC_pmix" - STATIC_COMPONENT="$STATIC_pmix_s2" + STATIC_FRAMEWORK="$STATIC_patcher" + STATIC_COMPONENT="$STATIC_patcher_overwrite" shared_mode_override=static @@ -165899,9 +163970,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:s2 compile mode" >&5 -$as_echo_n "checking for MCA component pmix:s2 compile mode... " >&6; } - if test "$DIRECT_pmix" = "s2" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component patcher:overwrite compile mode" >&5 +$as_echo_n "checking for MCA component patcher:overwrite compile mode... " >&6; } + if test "$DIRECT_patcher" = "overwrite" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -165912,22 +163983,39 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/pmix/s2/Makefile" + ac_config_files="$ac_config_files opal/mca/patcher/overwrite/Makefile" + + opal_patcher_overwrite_happy=no + if test $OPAL_ENABLE_DLOPEN_SUPPORT = 1; then +# Disable ia64 for now. We can revive it later if anyone cares + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if !defined(__i386__) && !defined(__x86_64__) && !defined(__PPC__) && !defined(__aarch64__) +#error "platform not supported" +#endif +int +main () +{ - # Evaluate succeed / fail - if test "$opal_enable_pmi2" = "yes" && test "$opal_check_ugni_happy" = "no"; then : + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + opal_patcher_overwrite_happy=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + + if test $opal_patcher_overwrite_happy = yes; then : should_build=$should_build - # need to set the wrapper flags for static builds - pmix_s2_WRAPPER_EXTRA_LDFLAGS="$opal_pmi2_LDFLAGS" - pmix_s2_WRAPPER_EXTRA_LIBS="$opal_pmi2_LIBS" else should_build=0 fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -165936,45 +164024,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/pmix/s2/post_configure.sh" + infile="$srcdir/opal/mca/patcher/overwrite/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components s2" + all_components="$all_components overwrite" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components s2" + dso_components="$dso_components overwrite" else - if test "pmix" = "common"; then + if test "patcher" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pmix/s2/lib${OPAL_LIB_PREFIX}mca_pmix_s2.la $static_ltlibs" + static_ltlibs="mca/patcher/overwrite/lib${OPAL_LIB_PREFIX}mca_patcher_overwrite.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pmix/s2/libmca_pmix_s2.la $static_ltlibs" + static_ltlibs="mca/patcher/overwrite/libmca_patcher_overwrite.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_pmix_s2_component;" >> $outfile.extern - echo " &mca_pmix_s2_component, " >> $outfile.struct - static_components="$static_components s2" + echo "extern const mca_base_component_t mca_patcher_overwrite_component;" >> $outfile.extern + echo " &mca_patcher_overwrite_component, " >> $outfile.struct + static_components="$static_components overwrite" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:s2 can compile" >&5 -$as_echo_n "checking if MCA component pmix:s2 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component patcher:overwrite can compile" >&5 +$as_echo_n "checking if MCA component patcher:overwrite can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pmix" = "s2" ; then + if test "$DIRECT_patcher" = "overwrite" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" + str="MCA_opal_patcher_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pmix component s2 was supposed to be direct-called, but +as_fn_error $? "*** patcher component overwrite was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -165982,8 +164070,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pmix" = "s2" ; then -as_fn_error $? "*** pmix component s2 was supposed to be direct-called, but + if test "$DIRECT_patcher" = "overwrite" ; then +as_fn_error $? "*** patcher component overwrite was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -165998,7 +164086,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$pmix_s2_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$patcher_overwrite_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -166038,7 +164126,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_s2_LDFLAGS; do + for arg in $patcher_overwrite_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -166119,7 +164207,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_s2_WRAPPER_EXTRA_LDFLAGS; do + for arg in $patcher_overwrite_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -166161,7 +164249,7 @@ fi - if test "$pmix_s2_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$patcher_overwrite_WRAPPER_EXTRA_LIBS" = ""; then : @@ -166201,7 +164289,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_s2_LIBS; do + for arg in $patcher_overwrite_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -166282,7 +164370,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_s2_WRAPPER_EXTRA_LIBS; do + for arg in $patcher_overwrite_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -166330,7 +164418,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$pmix_s2_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$patcher_overwrite_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -166373,7 +164461,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pmix_s2_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $patcher_overwrite_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -166416,32 +164504,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_s2_WRAPPER_EXTRA_CPPFLAGS ($pmix_s2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pmix_s2_WRAPPER_EXTRA_CPPFLAGS ($pmix_s2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring patcher_overwrite_WRAPPER_EXTRA_CPPFLAGS ($patcher_overwrite_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring patcher_overwrite_WRAPPER_EXTRA_CPPFLAGS ($patcher_overwrite_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:s2 can compile" >&5 -$as_echo_n "checking if MCA component pmix:s2 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component patcher:overwrite can compile" >&5 +$as_echo_n "checking if MCA component patcher:overwrite can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pmix" = "s2" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"s2\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"s2\" failed to configure properly" >&2;} + if test "$with_patcher" = "overwrite" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"overwrite\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"overwrite\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "s2" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"s2\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"s2\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_patcher" ; then + if test "$DIRECT_patcher" = "overwrite" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"overwrite\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"overwrite\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -166449,23 +164537,23 @@ fi # add component to all component list - all_components="$all_components s2" + all_components="$all_components overwrite" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_pmix_s2_DSO=1 + BUILD_opal_patcher_overwrite_DSO=1 else - BUILD_opal_pmix_s2_DSO=0 + BUILD_opal_patcher_overwrite_DSO=0 fi - if test "$BUILD_opal_pmix_s2_DSO" = "1"; then - MCA_BUILD_opal_pmix_s2_DSO_TRUE= - MCA_BUILD_opal_pmix_s2_DSO_FALSE='#' + if test "$BUILD_opal_patcher_overwrite_DSO" = "1"; then + MCA_BUILD_opal_patcher_overwrite_DSO_TRUE= + MCA_BUILD_opal_patcher_overwrite_DSO_FALSE='#' else - MCA_BUILD_opal_pmix_s2_DSO_TRUE='#' - MCA_BUILD_opal_pmix_s2_DSO_FALSE= + MCA_BUILD_opal_patcher_overwrite_DSO_TRUE='#' + MCA_BUILD_opal_patcher_overwrite_DSO_FALSE= fi @@ -166489,16 +164577,16 @@ if test "1" != "0"; then : - for component_path in $srcdir/opal/mca/pmix/* ; do + for component_path in $srcdir/opal/mca/patcher/* ; do component="`basename $component_path`" if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component pmix:$component (need to configure)" + opal_show_subsubsubtitle "MCA component patcher:$component (need to configure)" opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/opal/mca/pmix/$component" + component_path="$srcdir/opal/mca/patcher/$component" want_component=0 # build if: @@ -166530,8 +164618,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "$component" ; then + if test ! -z "$DIRECT_patcher" ; then + if test "$DIRECT_patcher" = "$component" ; then want_component=1 else want_component=0 @@ -166540,10 +164628,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_pmix" = "1"; then : + if test "$DISABLE_patcher" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_pmix_$component" + str="DISABLED_COMPONENT_CHECK=\$DISABLE_patcher_$component" eval $str if test "$DISABLED_COMPONENT_CHECK" = "1" ; then want_component=0 @@ -166556,12 +164644,12 @@ fi - SHARED_FRAMEWORK="$DSO_pmix" - str="SHARED_COMPONENT=\$DSO_pmix_$component" + SHARED_FRAMEWORK="$DSO_patcher" + str="SHARED_COMPONENT=\$DSO_patcher_$component" eval $str - STATIC_FRAMEWORK="$STATIC_pmix" - str="STATIC_COMPONENT=\$STATIC_pmix_$component" + STATIC_FRAMEWORK="$STATIC_patcher" + str="STATIC_COMPONENT=\$STATIC_patcher_$component" eval $str shared_mode_override=static @@ -166580,9 +164668,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:$component compile mode" >&5 -$as_echo_n "checking for MCA component pmix:$component compile mode... " >&6; } - if test "$DIRECT_pmix" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component patcher:$component compile mode" >&5 +$as_echo_n "checking for MCA component patcher:$component compile mode... " >&6; } + if test "$DIRECT_patcher" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -166635,12 +164723,12 @@ # # Invoke configure in a specific subdirectory. # -# opal/mca/pmix/$component is the directory to invoke in +# opal/mca/patcher/$component is the directory to invoke in # $opal_subdir_args is the list of arguments to pass # should_build=1 is actions to execute upon success # should_build=0 is actions to execute upon failure # -subdir_dir="opal/mca/pmix/$component" +subdir_dir="opal/mca/patcher/$component" subdir_args="$opal_subdir_args" subdir_success="should_build=1" subdir_failure="should_build=0" @@ -166784,7 +164872,7 @@ # do some extra work to pass flags back from the # top-level configure, the way a configure.m4 # component would. - infile="$srcdir/opal/mca/pmix/all_components/post_configure.sh" + infile="$srcdir/opal/mca/patcher/all_components/post_configure.sh" if test -f $infile; then # First check for the ABORT tag @@ -166798,12 +164886,12 @@ line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - pmix_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + patcher_all_components_WRAPPER_EXTRA_LDFLAGS="$line" fi line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - pmix_all_components_WRAPPER_EXTRA_LIBS="$line" + patcher_all_components_WRAPPER_EXTRA_LIBS="$line" fi fi @@ -166812,7 +164900,7 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/pmix/$component/post_configure.sh" + infile="$srcdir/opal/mca/patcher/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs all_components="$all_components $component" @@ -166820,37 +164908,37 @@ if test "$compile_mode" = "dso" ; then dso_components="$dso_components $component" else - if test "pmix" = "common"; then + if test "patcher" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pmix/$component/lib${OPAL_LIB_PREFIX}mca_pmix_$component.la $static_ltlibs" + static_ltlibs="mca/patcher/$component/lib${OPAL_LIB_PREFIX}mca_patcher_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pmix/$component/libmca_pmix_$component.la $static_ltlibs" + static_ltlibs="mca/patcher/$component/libmca_patcher_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_pmix_$component_component;" >> $outfile.extern - echo " &mca_pmix_$component_component, " >> $outfile.struct + echo "extern const mca_base_component_t mca_patcher_$component_component;" >> $outfile.extern + echo " &mca_patcher_$component_component, " >> $outfile.struct static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:$component can compile" >&5 -$as_echo_n "checking if MCA component pmix:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component patcher:$component can compile" >&5 +$as_echo_n "checking if MCA component patcher:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pmix" = "$component" ; then + if test "$DIRECT_patcher" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" + str="MCA_opal_patcher_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pmix component $component was supposed to be direct-called, but +as_fn_error $? "*** patcher component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -166858,8 +164946,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pmix" = "$component" ; then -as_fn_error $? "*** pmix component $component was supposed to be direct-called, but + if test "$DIRECT_patcher" = "$component" ; then +as_fn_error $? "*** patcher component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -166874,7 +164962,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$pmix_$component_WRAPPER_EXTRA_LDFLAGS" + str="line=\$patcher_$component_WRAPPER_EXTRA_LDFLAGS" eval "$str" @@ -166955,7 +165043,7 @@ unset $opal_var done -str="line=\$pmix_$component_WRAPPER_EXTRA_LIBS" +str="line=\$patcher_$component_WRAPPER_EXTRA_LIBS" eval "$str" @@ -167046,14 +165134,14 @@ else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:$component can compile" >&5 -$as_echo_n "checking if MCA component pmix:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component patcher:$component can compile" >&5 +$as_echo_n "checking if MCA component patcher:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pmix" = "$component" ; then + if test "$with_patcher" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 @@ -167061,8 +165149,8 @@ as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_pmix" ; then - if test "$DIRECT_pmix" = "$component" ; then + if test ! -z "$DIRECT_patcher" ; then + if test "$DIRECT_patcher" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 @@ -167077,10 +165165,10 @@ fi - MCA_opal_pmix_ALL_COMPONENTS="$all_components" - MCA_opal_pmix_STATIC_COMPONENTS="$static_components" - MCA_opal_pmix_DSO_COMPONENTS="$dso_components" - MCA_opal_pmix_STATIC_LTLIBS="$static_ltlibs" + MCA_opal_patcher_ALL_COMPONENTS="$all_components" + MCA_opal_patcher_STATIC_COMPONENTS="$static_components" + MCA_opal_patcher_DSO_COMPONENTS="$dso_components" + MCA_opal_patcher_STATIC_LTLIBS="$static_ltlibs" @@ -167088,23 +165176,23 @@ - MCA_opal_pmix_ALL_SUBDIRS= + MCA_opal_patcher_ALL_SUBDIRS= for item in $all_components ; do - MCA_opal_pmix_ALL_SUBDIRS="$MCA_opal_pmix_ALL_SUBDIRS mca/pmix/$item" + MCA_opal_patcher_ALL_SUBDIRS="$MCA_opal_patcher_ALL_SUBDIRS mca/patcher/$item" done - MCA_opal_pmix_STATIC_SUBDIRS= + MCA_opal_patcher_STATIC_SUBDIRS= for item in $static_components ; do - MCA_opal_pmix_STATIC_SUBDIRS="$MCA_opal_pmix_STATIC_SUBDIRS mca/pmix/$item" + MCA_opal_patcher_STATIC_SUBDIRS="$MCA_opal_patcher_STATIC_SUBDIRS mca/patcher/$item" done - MCA_opal_pmix_DSO_SUBDIRS= + MCA_opal_patcher_DSO_SUBDIRS= for item in $dso_components ; do - MCA_opal_pmix_DSO_SUBDIRS="$MCA_opal_pmix_DSO_SUBDIRS mca/pmix/$item" + MCA_opal_patcher_DSO_SUBDIRS="$MCA_opal_patcher_DSO_SUBDIRS mca/patcher/$item" done @@ -167112,7 +165200,7 @@ # Create the final .h file that will be included in the type's # top-level glue. This lists all the static components. We don't # need to do this for "common". - if test "pmix" != "common"; then + if test "patcher" != "common"; then cat > $outfile <&5 -$as_echo_n "checking for no configure components in framework pstat... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework pstat" >&5 -$as_echo_n "checking for m4 configure components in framework pstat... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: linux, test" >&5 -$as_echo "linux, test" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework pmix" >&5 +$as_echo_n "checking for no configure components in framework pmix... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: isolated" >&5 +$as_echo "isolated" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework pmix" >&5 +$as_echo_n "checking for m4 configure components in framework pmix... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: cray, ext1x, ext2x, ext3x, flux, pmix3x, s1, s2" >&5 +$as_echo "cray, ext1x, ext2x, ext3x, flux, pmix3x, s1, s2" >&6; } # If there are components in the no configure list, but we're # doing one of the "special" selection logics, abort with a @@ -167203,28 +165291,13 @@ # run the configure logic for the no-config components + opal_show_subsubsubtitle "MCA component pmix:isolated (no configuration)" - # configure components that use built-in configuration scripts - - - - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - if test $best_mca_component_priority -gt 60; then : - components_looking_for_succeed=0 -fi - - opal_show_subsubsubtitle "MCA component pstat:linux (m4 configuration macro, priority 60)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/opal/mca/pstat/linux" + component_path="$srcdir/opal/mca/pmix/isolated" want_component=0 # build if: @@ -167256,8 +165329,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pstat" ; then - if test "$DIRECT_pstat" = "linux" ; then + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "isolated" ; then want_component=1 else want_component=0 @@ -167266,27 +165339,25 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_pstat" = "1"; then : + if test "$DISABLE_pmix" = "1"; then : want_component=0 fi - if test "$DISABLE_pstat_linux" = "1"; then : + if test "$DISABLE_pmix_isolated" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_pstat" - SHARED_COMPONENT="$DSO_pstat_linux" + SHARED_FRAMEWORK="$DSO_pmix" + SHARED_COMPONENT="$DSO_pmix_isolated" - STATIC_FRAMEWORK="$STATIC_pstat" - STATIC_COMPONENT="$STATIC_pstat_linux" + STATIC_FRAMEWORK="$STATIC_pmix" + STATIC_COMPONENT="$STATIC_pmix_isolated" shared_mode_override=static @@ -167304,9 +165375,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pstat:linux compile mode" >&5 -$as_echo_n "checking for MCA component pstat:linux compile mode... " >&6; } - if test "$DIRECT_pstat" = "linux" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:isolated compile mode" >&5 +$as_echo_n "checking for MCA component pmix:isolated compile mode... " >&6; } + if test "$DIRECT_pmix" = "isolated" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -167314,100 +165385,53 @@ $as_echo "$compile_mode" >&6; } fi + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # try to configure the component - - ac_config_files="$ac_config_files opal/mca/pstat/linux/Makefile" - - - case "${host}" in - i?86-*linux*|x86_64*linux*|ia64-*linux*|powerpc-*linux*|powerpc64-*linux*|powerpc64le-*linux*|powerpcle-*linux*|sparc*-*linux*) - if test -r "/proc/cpuinfo"; then : - pstat_linux_happy="yes" -else - pstat_linux_happy="no" -fi - ;; - *) - pstat_linux_happy="no" - ;; - esac - - if test "$pstat_linux_happy" = "yes"; then : - ac_fn_c_check_decl "$LINENO" "HZ" "ac_cv_have_decl_HZ" "$ac_includes_default -#include - -" -if test "x$ac_cv_have_decl_HZ" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_HZ $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : - -else - pstat_linux_happy="no" -fi - -fi - - if test "$pstat_linux_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/pstat/linux/post_configure.sh" + infile="$srcdir/opal/mca/pmix/isolated/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components linux" + all_components="$all_components isolated" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components linux" + dso_components="$dso_components isolated" else - if test "pstat" = "common"; then + if test "pmix" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pstat/linux/lib${OPAL_LIB_PREFIX}mca_pstat_linux.la $static_ltlibs" + static_ltlibs="mca/pmix/isolated/lib${OPAL_LIB_PREFIX}mca_pmix_isolated.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pstat/linux/libmca_pstat_linux.la $static_ltlibs" + static_ltlibs="mca/pmix/isolated/libmca_pmix_isolated.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_pstat_linux_component;" >> $outfile.extern - echo " &mca_pstat_linux_component, " >> $outfile.struct - static_components="$static_components linux" + echo "extern const mca_base_component_t mca_pmix_isolated_component;" >> $outfile.extern + echo " &mca_pmix_isolated_component, " >> $outfile.struct + static_components="$static_components isolated" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pstat:linux can compile" >&5 -$as_echo_n "checking if MCA component pstat:linux can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:isolated can compile" >&5 +$as_echo_n "checking if MCA component pmix:isolated can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pstat" = "linux" ; then + if test "$DIRECT_pmix" = "isolated" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_pstat_DIRECT_CALL_HEADER=$line" + str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pstat component linux was supposed to be direct-called, but +as_fn_error $? "*** pmix component isolated was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -167415,8 +165439,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pstat" = "linux" ; then -as_fn_error $? "*** pstat component linux was supposed to be direct-called, but + if test "$DIRECT_pmix" = "isolated" ; then +as_fn_error $? "*** pmix component isolated was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -167431,7 +165455,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$pstat_linux_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$pmix_isolated_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -167471,7 +165495,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pstat_linux_LDFLAGS; do + for arg in $pmix_isolated_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -167552,7 +165576,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pstat_linux_WRAPPER_EXTRA_LDFLAGS; do + for arg in $pmix_isolated_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -167594,7 +165618,7 @@ fi - if test "$pstat_linux_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$pmix_isolated_WRAPPER_EXTRA_LIBS" = ""; then : @@ -167634,7 +165658,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pstat_linux_LIBS; do + for arg in $pmix_isolated_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -167715,7 +165739,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pstat_linux_WRAPPER_EXTRA_LIBS; do + for arg in $pmix_isolated_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -167763,7 +165787,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$pstat_linux_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$pmix_isolated_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -167806,7 +165830,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pstat_linux_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $pmix_isolated_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -167849,82 +165873,79 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pstat_linux_WRAPPER_EXTRA_CPPFLAGS ($pstat_linux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pstat_linux_WRAPPER_EXTRA_CPPFLAGS ($pstat_linux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_isolated_WRAPPER_EXTRA_CPPFLAGS ($pmix_isolated_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pmix_isolated_WRAPPER_EXTRA_CPPFLAGS ($pmix_isolated_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pstat:linux can compile" >&5 -$as_echo_n "checking if MCA component pstat:linux can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:isolated can compile" >&5 +$as_echo_n "checking if MCA component pmix:isolated can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pstat" = "linux" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"linux\" failed to configure properly" >&2;} + if test "$with_pmix" = "isolated" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"isolated\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"isolated\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_pstat" ; then - if test "$DIRECT_pstat" = "linux" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"linux\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "isolated" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"isolated\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"isolated\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components linux" -fi - - + # add component to all component list + all_components="$all_components isolated" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_pstat_linux_DSO=1 -else - BUILD_opal_pstat_linux_DSO=0 -fi - if test "$BUILD_opal_pstat_linux_DSO" = "1"; then - MCA_BUILD_opal_pstat_linux_DSO_TRUE= - MCA_BUILD_opal_pstat_linux_DSO_FALSE='#' + if test "$compile_mode" = "dso" ; then + BUILD_opal_pmix_isolated_DSO=1 + else + BUILD_opal_pmix_isolated_DSO=0 + fi + if test "$BUILD_opal_pmix_isolated_DSO" = "1"; then + MCA_BUILD_opal_pmix_isolated_DSO_TRUE= + MCA_BUILD_opal_pmix_isolated_DSO_FALSE='#' else - MCA_BUILD_opal_pstat_linux_DSO_TRUE='#' - MCA_BUILD_opal_pstat_linux_DSO_FALSE= + MCA_BUILD_opal_pmix_isolated_DSO_TRUE='#' + MCA_BUILD_opal_pmix_isolated_DSO_FALSE= fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi + ac_config_files="$ac_config_files opal/mca/pmix/isolated/Makefile" + unset compile_mode - if test $components_last_result -eq 1; then : - best_mca_component_priority=60 -fi - if test $best_mca_component_priority -gt 10; then : - components_looking_for_succeed=0 -fi + # configure components that use built-in configuration scripts - opal_show_subsubsubtitle "MCA component pstat:test (m4 configuration macro, priority 10)" + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + opal_show_subsubsubtitle "MCA component pmix:cray (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/pstat/test" + component_path="$srcdir/opal/mca/pmix/cray" want_component=0 # build if: @@ -167956,8 +165977,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pstat" ; then - if test "$DIRECT_pstat" = "test" ; then + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "cray" ; then want_component=1 else want_component=0 @@ -167966,10 +165987,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_pstat" = "1"; then : + if test "$DISABLE_pmix" = "1"; then : want_component=0 fi - if test "$DISABLE_pstat_test" = "1"; then : + if test "$DISABLE_pmix_cray" = "1"; then : want_component=0 fi @@ -167982,11 +166003,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_pstat" - SHARED_COMPONENT="$DSO_pstat_test" + SHARED_FRAMEWORK="$DSO_pmix" + SHARED_COMPONENT="$DSO_pmix_cray" - STATIC_FRAMEWORK="$STATIC_pstat" - STATIC_COMPONENT="$STATIC_pstat_test" + STATIC_FRAMEWORK="$STATIC_pmix" + STATIC_COMPONENT="$STATIC_pmix_cray" shared_mode_override=static @@ -168004,9 +166025,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pstat:test compile mode" >&5 -$as_echo_n "checking for MCA component pstat:test compile mode... " >&6; } - if test "$DIRECT_pstat" = "test" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:cray compile mode" >&5 +$as_echo_n "checking for MCA component pmix:cray compile mode... " >&6; } + if test "$DIRECT_pmix" = "cray" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -168017,63 +166038,938 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/pstat/test/Makefile" + ac_config_files="$ac_config_files opal/mca/pmix/cray/Makefile" - pstat_test_happy="yes" - if test "$pstat_test_happy" = "yes"; then : - should_build=$should_build +# +# check specifically for Cray PMI here +# + + +# Check whether --with-cray_pmi was given. +if test "${with_cray_pmi+set}" = set; then : + withval=$with_cray_pmi; else - should_build=0 + with_cray_pmi=auto fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Cray PMI support" >&5 +$as_echo_n "checking for Cray PMI support... " >&6; } + if test "$with_cray_pmi" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + pmix_cray_good=0 +else + if test "$with_cray_pmi" = "auto" || test "$with_cray_pmi" = "yes"; then : - if test "$should_build" = "1"; then : +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_PMI" >&5 +$as_echo_n "checking for CRAY_PMI... " >&6; } +if test -n "$CRAY_PMI_CFLAGS"; then + pkg_cv_CRAY_PMI_CFLAGS="$CRAY_PMI_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-pmi\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-pmi") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_PMI_CFLAGS=`$PKG_CONFIG --cflags "cray-pmi" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_PMI_LIBS"; then + pkg_cv_CRAY_PMI_LIBS="$CRAY_PMI_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-pmi\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-pmi") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_PMI_LIBS=`$PKG_CONFIG --libs "cray-pmi" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_PMI_STATIC_LIBS"; then + pkg_cv_CRAY_PMI_STATIC_LIBS="$CRAY_PMI_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-pmi\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-pmi") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_PMI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-pmi" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/pstat/test/post_configure.sh" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components test" +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components test" - else - if test "pstat" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pstat/test/lib${OPAL_LIB_PREFIX}mca_pstat_test.la $static_ltlibs" +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_PMI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-pmi" 2>&1` else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pstat/test/libmca_pstat_test.la $static_ltlibs" + CRAY_PMI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-pmi" 2>&1` fi - echo "extern const mca_base_component_t mca_pstat_test_component;" >> $outfile.extern - echo " &mca_pstat_test_component, " >> $outfile.struct - static_components="$static_components test" - fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_PMI_PKG_ERRORS" >&5 - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pstat:test can compile" >&5 -$as_echo_n "checking if MCA component pstat:test can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + opal_check_cray_pmi_happy="no" + if test "$with_cray_pmi" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cray PMI support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: Cray PMI support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate cray pmi directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate cray pmi directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-cray-pmi option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-cray-pmi option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pstat" = "test" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_pstat_DIRECT_CALL_HEADER=$line" +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_pmi_happy="no" + if test "$with_cray_pmi" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cray PMI support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: Cray PMI support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate cray pmi directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate cray pmi directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-cray-pmi option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-cray-pmi option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_PMI_CFLAGS=$pkg_cv_CRAY_PMI_CFLAGS + CRAY_PMI_LIBS=$pkg_cv_CRAY_PMI_LIBS + CRAY_PMI_STATIC_LIBS=$pkg_cv_CRAY_PMI_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_pmi_happy="yes" +fi +else + + + opal_cray_pmi_lib_good=0 + opal_cray_pmi_include_good=0 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for Cray PMI with explicit path $with_cray_pmi" >&5 +$as_echo_n "checking Checking for Cray PMI with explicit path $with_cray_pmi... " >&6; } + if test -d "$with_cray_pmi/lib64"; then : + opal_cray_pmi_lib_good=1 +else + opal_cray_pmi_lib_good=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No libpmi in path specified by $with_cray_pmi" >&5 +$as_echo "$as_me: WARNING: No libpmi in path specified by $with_cray_pmi" >&2;} +fi + + if test -f "$with_cray_pmi/include/pmi.h"; then : + opal_cray_pmi_include_good=1 +else + opal_cray_pmi_include_good=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No pmi.h in path specified by $with_cray_pmi" >&5 +$as_echo "$as_me: WARNING: No pmi.h in path specified by $with_cray_pmi" >&2;} +fi + + if test "$opal_cray_pmi_lib_good" -eq 1 && test "$opal_cray_pmi_include_good" -eq 1; then : + CRAY_PMI_LDFLAGS="-L$with_cray_pmi/lib64 -L/usr/lib/alps" + CRAY_PMI_LIBS="-L$with_cray_pmi/lib64 -lpmi" + CRAY_PMI_CFLAGS="-I $with_cray_pmi/include" + opal_check_cray_pmi_happy="yes" +else + opal_check_cray_pmi_happy="no" +fi + +# +# this logic assumes knowledge about all the dependencies of the Cray PMI library, +# something that Cray doesn't generally document +# + if test "$enable_static" = "yes"; then : + if test -d /usr/lib/alps; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Detected presence of /usr/lib/alps" >&5 +$as_echo "Detected presence of /usr/lib/alps" >&6; } + CRAY_PMI_LDFLAGS="$CRAY_PMI_LDFLAGS -L/usr/lib/alps -lalpslli -lalpsutil" + CRAY_PMI_LIBS="$CRAY_PMI_LIBS -L/usr/lib/alps -lalpslli -lalpsutil" +else + if test -d /opt/cray/xe-sysroot/default/usr/lib/alps; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Detected presence of /opt/cray/xe-sysroot/default/usr/lib/alps" >&5 +$as_echo "Detected presence of /opt/cray/xe-sysroot/default/usr/lib/alps" >&6; } + CRAY_PMI_LDFLAGS="$CRAY_PMI_LDFLAGS -L/opt/cray/xe-sysroot/default/usr/lib/alps -lalpslli -lalpsutil" + CRAY_PMI_LIBS="$CRAY_PMI_LIBS -L/opt/cray/xe-sysroot/default/usr/lib/alps -lalpslli -lalpsutil" +else + as_fn_error $? "Requested enabling static linking but unable to local libalpslli and libalpsutil" "$LINENO" 5 +fi + +fi + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: opal_chack_cray_pmi_happy = $opal_check_cray_pmi_happy" >&5 +$as_echo "$as_me: WARNING: opal_chack_cray_pmi_happy = $opal_check_cray_pmi_happy" >&2;} +fi + +fi + + if test "$opal_check_cray_pmi_happy" = "yes" && test "$enable_static" = "yes"; then : + CRAY_PMI_LIBS = $CRAY_PMI_STATIC_LIBS +fi + + if test "$opal_check_cray_pmi_happy" = "yes"; then : + pmix_cray_LDFLAGS="$CRAY_PMI_LIBS" + pmix_cray_CPPFLAGS="$CRAY_PMI_CFLAGS" + pmix_cray_LIBS="$CRAY_PMI_LIBS" + pmix_cray_good=1 +else + pmix_cray_good=0 +fi + + + if test -z "$opal_check_cray_alps_happy"; then + + +# Check whether --with-alps was given. +if test "${with_alps+set}" = set; then : + withval=$with_alps; +else + with_alps=auto +fi + + + if test -f /etc/opt/cray/release/clerelease; then + cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` + else + cle_level="unknown" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 +$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } + if test "$cle_level" = "4" && test "$with_alps" != "no"; then : + + +# +# if we've gotten here, its because we are building on a CLE 4 system +# + opal_check_alps_cle4_libdir_happy="no" + opal_check_alps_cle4_dir_happy="no" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 +$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } + + +# Check whether --with-alps-libdir was given. +if test "${with_alps_libdir+set}" = set; then : + withval=$with_alps_libdir; +fi + + +# +# check to see if Open MPI is being built on a CLE 4 eslogin node +# + if test -f /etc/opt/cray/release/ESLrelease; then : + default_alps_dir="/opt/cray/xe-sysroot/default/usr" +else + default_alps_dir="/usr" +fi + + if test -z "$with_alps_libdir"; then : + if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : + if test -d "$with_alps_libdir/lib64"; then : + opal_check_alps_libdir="$with_alps_libdir/lib64" +else + opal_check_alps_libdir="$with_alps_libdir/lib" +fi +else + opal_check_alps_libdir="$default_alps_dir/lib/alps" +fi + +fi + + if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : + opal_check_alps_dir=$default_alps_dir +else + opal_check_alps_dir=$with_alps +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 +$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } + if test -f "$opal_check_alps_libdir/libalps.a"; then : + opal_check_alps_libdir_cle4_happy="yes" +else + opal_check_alps_libdir_cle4_happy="no", + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 +$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } + if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : + opal_check_alps_dir_cle4_happy="yes" +else + opal_check_alps_dir_cle4_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : + CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" + CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + opal_check_cray_alps_happy="yes" +else + opal_check_cray_alps_happy="no" +fi + +else + if test "$with_alps" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy=no + pmix_alps_happy=0 +else + if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 +$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } + +if test -n "$CRAY_ALPSLLI_CFLAGS"; then + pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSLLI_LIBS"; then + pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` + else + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS + CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS + CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 +$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } + +if test -n "$CRAY_ALPSUTIL_CFLAGS"; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSUTIL_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` + else + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS + CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS + CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 +$as_echo_n "checking for CRAY_ALPS... " >&6; } + +if test -n "$CRAY_ALPS_CFLAGS"; then + pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_LIBS"; then + pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_STATIC_LIBS"; then + pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` + else + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPS_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS + CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS + CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 +$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } + +if test -n "$CRAY_WLM_DETECT_CFLAGS"; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_WLM_DETECT_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + else + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS + CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS + CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" + +cat >>confdefs.h <<_ACEOF +#define CRAY_WLM_DETECT 1 +_ACEOF + + +fi + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 +$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 +$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +fi + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 +$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } + + if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : + CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS + CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS +fi + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ompi_summary_section=$(echo Resource Managers | tr ' ' '_') + ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + if test "$opal_check_cray_alps_happy" = "yes"; then : + pmix_alps_LDFLAGS="$pmix_alps_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" + pmix_alps_CPPFLAGS="$pmix_alps_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" + pmix_alps_LIBS="$pmix_alps_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + pmix_alps_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + pmix_alps_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + pmix_alps_happy=1 +else + pmix_alps_happy=0 +fi + + + # Evaluate succeed / fail + if test "$pmix_cray_good" = 1 && test "$pmix_alps_happy" = 1; then : + should_build=$should_build + # need to set the wrapper flags for static builds + pmix_cray_WRAPPER_EXTRA_LDFLAGS="$pmix_cray_LDFLAGS $pmix_alps_LDFLAGS" + pmix_cray_WRAPPER_EXTRA_LIBS="$pmix_cray_LIBS $pmix_alps_LIBS" +else + should_build=0 +fi + + # set build flags to use in makefile + + + + + + + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/pmix/cray/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components cray" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components cray" + else + if test "pmix" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pmix/cray/lib${OPAL_LIB_PREFIX}mca_pmix_cray.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pmix/cray/libmca_pmix_cray.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_pmix_cray_component;" >> $outfile.extern + echo " &mca_pmix_cray_component, " >> $outfile.struct + static_components="$static_components cray" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:cray can compile" >&5 +$as_echo_n "checking if MCA component pmix:cray can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pmix" = "cray" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pstat component test was supposed to be direct-called, but +as_fn_error $? "*** pmix component cray was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -168081,8 +166977,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pstat" = "test" ; then -as_fn_error $? "*** pstat component test was supposed to be direct-called, but + if test "$DIRECT_pmix" = "cray" ; then +as_fn_error $? "*** pmix component cray was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -168097,7 +166993,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$pstat_test_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$pmix_cray_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -168137,7 +167033,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pstat_test_LDFLAGS; do + for arg in $pmix_cray_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -168218,7 +167114,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pstat_test_WRAPPER_EXTRA_LDFLAGS; do + for arg in $pmix_cray_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -168260,7 +167156,7 @@ fi - if test "$pstat_test_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$pmix_cray_WRAPPER_EXTRA_LIBS" = ""; then : @@ -168300,7 +167196,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pstat_test_LIBS; do + for arg in $pmix_cray_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -168381,7 +167277,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pstat_test_WRAPPER_EXTRA_LIBS; do + for arg in $pmix_cray_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -168429,7 +167325,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$pstat_test_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$pmix_cray_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -168472,7 +167368,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pstat_test_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $pmix_cray_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -168515,32 +167411,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pstat_test_WRAPPER_EXTRA_CPPFLAGS ($pstat_test_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pstat_test_WRAPPER_EXTRA_CPPFLAGS ($pstat_test_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_cray_WRAPPER_EXTRA_CPPFLAGS ($pmix_cray_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pmix_cray_WRAPPER_EXTRA_CPPFLAGS ($pmix_cray_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pstat:test can compile" >&5 -$as_echo_n "checking if MCA component pstat:test can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:cray can compile" >&5 +$as_echo_n "checking if MCA component pmix:cray can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pstat" = "test" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"test\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"test\" failed to configure properly" >&2;} + if test "$with_pmix" = "cray" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"cray\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"cray\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_pstat" ; then - if test "$DIRECT_pstat" = "test" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"test\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"test\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "cray" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"cray\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"cray\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -168548,23 +167444,23 @@ fi # add component to all component list - all_components="$all_components test" + all_components="$all_components cray" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_pstat_test_DSO=1 + BUILD_opal_pmix_cray_DSO=1 else - BUILD_opal_pstat_test_DSO=0 + BUILD_opal_pmix_cray_DSO=0 fi - if test "$BUILD_opal_pstat_test_DSO" = "1"; then - MCA_BUILD_opal_pstat_test_DSO_TRUE= - MCA_BUILD_opal_pstat_test_DSO_FALSE='#' + if test "$BUILD_opal_pmix_cray_DSO" = "1"; then + MCA_BUILD_opal_pmix_cray_DSO_TRUE= + MCA_BUILD_opal_pmix_cray_DSO_FALSE='#' else - MCA_BUILD_opal_pstat_test_DSO_TRUE='#' - MCA_BUILD_opal_pstat_test_DSO_FALSE= + MCA_BUILD_opal_pmix_cray_DSO_TRUE='#' + MCA_BUILD_opal_pmix_cray_DSO_FALSE= fi @@ -168577,149 +167473,16 @@ unset compile_mode - if test $components_last_result -eq 1; then : - best_mca_component_priority=10 -fi - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - MCA_opal_pstat_ALL_COMPONENTS="$all_components" - MCA_opal_pstat_STATIC_COMPONENTS="$static_components" - MCA_opal_pstat_DSO_COMPONENTS="$dso_components" - MCA_opal_pstat_STATIC_LTLIBS="$static_ltlibs" - - + opal_show_subsubsubtitle "MCA component pmix:ext1x (m4 configuration macro)" - - MCA_opal_pstat_ALL_SUBDIRS= - for item in $all_components ; do - MCA_opal_pstat_ALL_SUBDIRS="$MCA_opal_pstat_ALL_SUBDIRS mca/pstat/$item" - done - - - - MCA_opal_pstat_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_opal_pstat_STATIC_SUBDIRS="$MCA_opal_pstat_STATIC_SUBDIRS mca/pstat/$item" - done - - - - MCA_opal_pstat_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_opal_pstat_DSO_SUBDIRS="$MCA_opal_pstat_DSO_SUBDIRS mca/pstat/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "pstat" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS rcache" - MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/rcache" - MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_rcache_ALL_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_rcache_DSO_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_rcache_STATIC_SUBDIRS)" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/rcache/libmca_rcache.la" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_rcache_STATIC_LTLIBS)" - - opal_show_subsubtitle "Configuring MCA framework rcache" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=opal/mca/rcache/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files opal/mca/rcache/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework rcache" >&5 -$as_echo_n "checking for no configure components in framework rcache... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: grdma" >&5 -$as_echo "grdma" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework rcache" >&5 -$as_echo_n "checking for m4 configure components in framework rcache... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: gpusm, rgpusm, udreg" >&5 -$as_echo "gpusm, rgpusm, udreg" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - opal_show_subsubsubtitle "MCA component rcache:grdma (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/rcache/grdma" + component_path="$srcdir/opal/mca/pmix/ext1x" want_component=0 # build if: @@ -168751,8 +167514,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rcache" ; then - if test "$DIRECT_rcache" = "grdma" ; then + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "ext1x" ; then want_component=1 else want_component=0 @@ -168761,25 +167524,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_rcache" = "1"; then : + if test "$DISABLE_pmix" = "1"; then : want_component=0 fi - if test "$DISABLE_rcache_grdma" = "1"; then : + if test "$DISABLE_pmix_ext1x" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_rcache" - SHARED_COMPONENT="$DSO_rcache_grdma" + SHARED_FRAMEWORK="$DSO_pmix" + SHARED_COMPONENT="$DSO_pmix_ext1x" - STATIC_FRAMEWORK="$STATIC_rcache" - STATIC_COMPONENT="$STATIC_rcache_grdma" + STATIC_FRAMEWORK="$STATIC_pmix" + STATIC_COMPONENT="$STATIC_pmix_ext1x" shared_mode_override=static @@ -168797,9 +167562,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rcache:grdma compile mode" >&5 -$as_echo_n "checking for MCA component rcache:grdma compile mode... " >&6; } - if test "$DIRECT_rcache" = "grdma" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:ext1x compile mode" >&5 +$as_echo_n "checking for MCA component pmix:ext1x compile mode... " >&6; } + if test "$DIRECT_pmix" = "ext1x" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -168807,53 +167572,112 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/pmix/ext1x/Makefile" + + + if test "$opal_external_pmix_happy" = "yes"; then : + # check for the 1.x version ( >= 1.1.4 ?) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if external component is version 1.x" >&5 +$as_echo_n "checking if external component is version 1.x... " >&6; } + if test "$opal_external_pmix_version" = "1x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test "$opal_event_external_support" != "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT" >&5 +$as_echo "$as_me: WARNING: EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LIBRARY. THIS LIBRARY MUST POINT TO THE SAME ONE USED" >&5 +$as_echo "$as_me: WARNING: LIBRARY. THIS LIBRARY MUST POINT TO THE SAME ONE USED" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT" >&5 +$as_echo "$as_me: WARNING: TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT" >&2;} + as_fn_error $? "PLEASE CORRECT THE CONFIGURE COMMAND LINE AND REBUILD" "$LINENO" 5 +fi + if test "$opal_hwloc_external_support" != "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL HWLOC" >&5 +$as_echo "$as_me: WARNING: EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL HWLOC" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LIBRARY THIS LIBRARY MUST POINT TO THE SAME ONE USED " >&5 +$as_echo "$as_me: WARNING: LIBRARY THIS LIBRARY MUST POINT TO THE SAME ONE USED " >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT" >&5 +$as_echo "$as_me: WARNING: TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT" >&2;} + as_fn_error $? "PLEASE CORRECT THE CONFIGURE COMMAND LINE AND REBUILD" "$LINENO" 5 +fi + opal_pmix_external_1x_happy=yes +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_pmix_external_1x_happy=no +fi + + if test "$opal_pmix_external_1x_happy" = "yes"; then : + should_build=$should_build + # need to set the wrapper flags for static builds + pmix_ext1x_WRAPPER_EXTRA_LDFLAGS=$opal_external_pmix_LDFLAGS + pmix_ext1x_WRAPPER_EXTRA_LIBS=$opal_external_pmix_LIBS +else + should_build=0 +fi +else + should_build=0 +fi + + opal_pmix_ext1x_CPPFLAGS=$opal_external_pmix_CPPFLAGS + opal_pmix_ext1x_LDFLAGS=$opal_external_pmix_LDFLAGS + opal_pmix_ext1x_LIBS=$opal_external_pmix_LIBS + + + + + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/rcache/grdma/post_configure.sh" + infile="$srcdir/opal/mca/pmix/ext1x/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components grdma" + all_components="$all_components ext1x" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components grdma" + dso_components="$dso_components ext1x" else - if test "rcache" = "common"; then + if test "pmix" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/rcache/grdma/lib${OPAL_LIB_PREFIX}mca_rcache_grdma.la $static_ltlibs" + static_ltlibs="mca/pmix/ext1x/lib${OPAL_LIB_PREFIX}mca_pmix_ext1x.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rcache/grdma/libmca_rcache_grdma.la $static_ltlibs" + static_ltlibs="mca/pmix/ext1x/libmca_pmix_ext1x.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_rcache_grdma_component;" >> $outfile.extern - echo " &mca_rcache_grdma_component, " >> $outfile.struct - static_components="$static_components grdma" + echo "extern const mca_base_component_t mca_pmix_ext1x_component;" >> $outfile.extern + echo " &mca_pmix_ext1x_component, " >> $outfile.struct + static_components="$static_components ext1x" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:grdma can compile" >&5 -$as_echo_n "checking if MCA component rcache:grdma can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:ext1x can compile" >&5 +$as_echo_n "checking if MCA component pmix:ext1x can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_rcache" = "grdma" ; then + if test "$DIRECT_pmix" = "ext1x" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_rcache_DIRECT_CALL_HEADER=$line" + str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** rcache component grdma was supposed to be direct-called, but +as_fn_error $? "*** pmix component ext1x was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -168861,8 +167685,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rcache" = "grdma" ; then -as_fn_error $? "*** rcache component grdma was supposed to be direct-called, but + if test "$DIRECT_pmix" = "ext1x" ; then +as_fn_error $? "*** pmix component ext1x was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -168877,7 +167701,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$rcache_grdma_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$pmix_ext1x_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -168917,7 +167741,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_grdma_LDFLAGS; do + for arg in $pmix_ext1x_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -168998,7 +167822,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_grdma_WRAPPER_EXTRA_LDFLAGS; do + for arg in $pmix_ext1x_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -169040,7 +167864,7 @@ fi - if test "$rcache_grdma_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$pmix_ext1x_WRAPPER_EXTRA_LIBS" = ""; then : @@ -169080,7 +167904,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_grdma_LIBS; do + for arg in $pmix_ext1x_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -169161,7 +167985,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_grdma_WRAPPER_EXTRA_LIBS; do + for arg in $pmix_ext1x_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -169209,7 +168033,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$rcache_grdma_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$pmix_ext1x_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -169252,7 +168076,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_grdma_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $pmix_ext1x_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -169295,79 +168119,78 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rcache_grdma_WRAPPER_EXTRA_CPPFLAGS ($rcache_grdma_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring rcache_grdma_WRAPPER_EXTRA_CPPFLAGS ($rcache_grdma_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_ext1x_WRAPPER_EXTRA_CPPFLAGS ($pmix_ext1x_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pmix_ext1x_WRAPPER_EXTRA_CPPFLAGS ($pmix_ext1x_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:grdma can compile" >&5 -$as_echo_n "checking if MCA component rcache:grdma can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:ext1x can compile" >&5 +$as_echo_n "checking if MCA component pmix:ext1x can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_rcache" = "grdma" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"grdma\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"grdma\" failed to configure properly" >&2;} + if test "$with_pmix" = "ext1x" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ext1x\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ext1x\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_rcache" ; then - if test "$DIRECT_rcache" = "grdma" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"grdma\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"grdma\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "ext1x" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ext1x\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ext1x\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components grdma" - fi + # add component to all component list + all_components="$all_components ext1x" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_opal_rcache_grdma_DSO=1 - else - BUILD_opal_rcache_grdma_DSO=0 - fi - if test "$BUILD_opal_rcache_grdma_DSO" = "1"; then - MCA_BUILD_opal_rcache_grdma_DSO_TRUE= - MCA_BUILD_opal_rcache_grdma_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_opal_pmix_ext1x_DSO=1 else - MCA_BUILD_opal_rcache_grdma_DSO_TRUE='#' - MCA_BUILD_opal_rcache_grdma_DSO_FALSE= + BUILD_opal_pmix_ext1x_DSO=0 +fi + if test "$BUILD_opal_pmix_ext1x_DSO" = "1"; then + MCA_BUILD_opal_pmix_ext1x_DSO_TRUE= + MCA_BUILD_opal_pmix_ext1x_DSO_FALSE='#' +else + MCA_BUILD_opal_pmix_ext1x_DSO_TRUE='#' + MCA_BUILD_opal_pmix_ext1x_DSO_FALSE= fi - ac_config_files="$ac_config_files opal/mca/rcache/grdma/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - # configure components that use built-in configuration scripts - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - opal_show_subsubsubtitle "MCA component rcache:gpusm (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component pmix:ext2x (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/rcache/gpusm" + component_path="$srcdir/opal/mca/pmix/ext2x" want_component=0 # build if: @@ -169399,8 +168222,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rcache" ; then - if test "$DIRECT_rcache" = "gpusm" ; then + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "ext2x" ; then want_component=1 else want_component=0 @@ -169409,10 +168232,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_rcache" = "1"; then : + if test "$DISABLE_pmix" = "1"; then : want_component=0 fi - if test "$DISABLE_rcache_gpusm" = "1"; then : + if test "$DISABLE_pmix_ext2x" = "1"; then : want_component=0 fi @@ -169425,11 +168248,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_rcache" - SHARED_COMPONENT="$DSO_rcache_gpusm" + SHARED_FRAMEWORK="$DSO_pmix" + SHARED_COMPONENT="$DSO_pmix_ext2x" - STATIC_FRAMEWORK="$STATIC_rcache" - STATIC_COMPONENT="$STATIC_rcache_gpusm" + STATIC_FRAMEWORK="$STATIC_pmix" + STATIC_COMPONENT="$STATIC_pmix_ext2x" shared_mode_override=static @@ -169447,9 +168270,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rcache:gpusm compile mode" >&5 -$as_echo_n "checking for MCA component rcache:gpusm compile mode... " >&6; } - if test "$DIRECT_rcache" = "gpusm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:ext2x compile mode" >&5 +$as_echo_n "checking for MCA component pmix:ext2x compile mode... " >&6; } + if test "$DIRECT_pmix" = "ext2x" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -169460,16 +168283,52 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/rcache/gpusm/Makefile" + ac_config_files="$ac_config_files opal/mca/pmix/ext2x/Makefile" - # Use CUDA_SUPPORT which was filled in by the opal configure code. - if test "x$CUDA_SUPPORT" = "x1"; then : + if test "$opal_external_pmix_happy" = "yes"; then : + # check for the 2.x version + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if external component is version 2.x" >&5 +$as_echo_n "checking if external component is version 2.x... " >&6; } + if test "$opal_external_pmix_version" = "2x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test "$opal_event_external_support" != "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT" >&5 +$as_echo "$as_me: WARNING: EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LIBRARY. THIS LIBRARY MUST POINT TO THE SAME ONE USED" >&5 +$as_echo "$as_me: WARNING: LIBRARY. THIS LIBRARY MUST POINT TO THE SAME ONE USED" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT" >&5 +$as_echo "$as_me: WARNING: TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT" >&2;} + as_fn_error $? "PLEASE CORRECT THE CONFIGURE COMMAND LINE AND REBUILD" "$LINENO" 5 +fi + opal_pmix_external_2x_happy=yes +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_pmix_external_2x_happy=no +fi + + if test "$opal_pmix_external_2x_happy" = "yes"; then : should_build=$should_build + # need to set the wrapper flags for static builds + pmix_ext2x_WRAPPER_EXTRA_LDFLAGS=$opal_external_pmix_LDFLAGS + pmix_ext2x_WRAPPER_EXTRA_LIBS=$opal_external_pmix_LIBS +else + should_build=0 +fi else should_build=0 fi + opal_pmix_ext2x_CPPFLAGS=$opal_external_pmix_CPPFLAGS + opal_pmix_ext2x_LDFLAGS=$opal_external_pmix_LDFLAGS + opal_pmix_ext2x_LIBS=$opal_external_pmix_LIBS + + + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -169479,45 +168338,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/rcache/gpusm/post_configure.sh" + infile="$srcdir/opal/mca/pmix/ext2x/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components gpusm" + all_components="$all_components ext2x" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components gpusm" + dso_components="$dso_components ext2x" else - if test "rcache" = "common"; then + if test "pmix" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/rcache/gpusm/lib${OPAL_LIB_PREFIX}mca_rcache_gpusm.la $static_ltlibs" + static_ltlibs="mca/pmix/ext2x/lib${OPAL_LIB_PREFIX}mca_pmix_ext2x.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rcache/gpusm/libmca_rcache_gpusm.la $static_ltlibs" + static_ltlibs="mca/pmix/ext2x/libmca_pmix_ext2x.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_rcache_gpusm_component;" >> $outfile.extern - echo " &mca_rcache_gpusm_component, " >> $outfile.struct - static_components="$static_components gpusm" + echo "extern const mca_base_component_t mca_pmix_ext2x_component;" >> $outfile.extern + echo " &mca_pmix_ext2x_component, " >> $outfile.struct + static_components="$static_components ext2x" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:gpusm can compile" >&5 -$as_echo_n "checking if MCA component rcache:gpusm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:ext2x can compile" >&5 +$as_echo_n "checking if MCA component pmix:ext2x can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_rcache" = "gpusm" ; then + if test "$DIRECT_pmix" = "ext2x" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_rcache_DIRECT_CALL_HEADER=$line" + str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** rcache component gpusm was supposed to be direct-called, but +as_fn_error $? "*** pmix component ext2x was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -169525,8 +168384,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rcache" = "gpusm" ; then -as_fn_error $? "*** rcache component gpusm was supposed to be direct-called, but + if test "$DIRECT_pmix" = "ext2x" ; then +as_fn_error $? "*** pmix component ext2x was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -169541,7 +168400,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$rcache_gpusm_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$pmix_ext2x_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -169581,7 +168440,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_gpusm_LDFLAGS; do + for arg in $pmix_ext2x_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -169662,7 +168521,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_gpusm_WRAPPER_EXTRA_LDFLAGS; do + for arg in $pmix_ext2x_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -169704,7 +168563,7 @@ fi - if test "$rcache_gpusm_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$pmix_ext2x_WRAPPER_EXTRA_LIBS" = ""; then : @@ -169744,7 +168603,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_gpusm_LIBS; do + for arg in $pmix_ext2x_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -169825,7 +168684,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_gpusm_WRAPPER_EXTRA_LIBS; do + for arg in $pmix_ext2x_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -169873,7 +168732,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$rcache_gpusm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$pmix_ext2x_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -169916,7 +168775,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_gpusm_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $pmix_ext2x_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -169959,32 +168818,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rcache_gpusm_WRAPPER_EXTRA_CPPFLAGS ($rcache_gpusm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring rcache_gpusm_WRAPPER_EXTRA_CPPFLAGS ($rcache_gpusm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_ext2x_WRAPPER_EXTRA_CPPFLAGS ($pmix_ext2x_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pmix_ext2x_WRAPPER_EXTRA_CPPFLAGS ($pmix_ext2x_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:gpusm can compile" >&5 -$as_echo_n "checking if MCA component rcache:gpusm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:ext2x can compile" >&5 +$as_echo_n "checking if MCA component pmix:ext2x can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_rcache" = "gpusm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"gpusm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"gpusm\" failed to configure properly" >&2;} + if test "$with_pmix" = "ext2x" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ext2x\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ext2x\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_rcache" ; then - if test "$DIRECT_rcache" = "gpusm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"gpusm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"gpusm\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "ext2x" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ext2x\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ext2x\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -169992,23 +168851,23 @@ fi # add component to all component list - all_components="$all_components gpusm" + all_components="$all_components ext2x" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_rcache_gpusm_DSO=1 + BUILD_opal_pmix_ext2x_DSO=1 else - BUILD_opal_rcache_gpusm_DSO=0 + BUILD_opal_pmix_ext2x_DSO=0 fi - if test "$BUILD_opal_rcache_gpusm_DSO" = "1"; then - MCA_BUILD_opal_rcache_gpusm_DSO_TRUE= - MCA_BUILD_opal_rcache_gpusm_DSO_FALSE='#' + if test "$BUILD_opal_pmix_ext2x_DSO" = "1"; then + MCA_BUILD_opal_pmix_ext2x_DSO_TRUE= + MCA_BUILD_opal_pmix_ext2x_DSO_FALSE='#' else - MCA_BUILD_opal_rcache_gpusm_DSO_TRUE='#' - MCA_BUILD_opal_rcache_gpusm_DSO_FALSE= + MCA_BUILD_opal_pmix_ext2x_DSO_TRUE='#' + MCA_BUILD_opal_pmix_ext2x_DSO_FALSE= fi @@ -170024,13 +168883,13 @@ - opal_show_subsubsubtitle "MCA component rcache:rgpusm (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component pmix:ext3x (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/rcache/rgpusm" + component_path="$srcdir/opal/mca/pmix/ext3x" want_component=0 # build if: @@ -170062,8 +168921,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rcache" ; then - if test "$DIRECT_rcache" = "rgpusm" ; then + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "ext3x" ; then want_component=1 else want_component=0 @@ -170072,10 +168931,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_rcache" = "1"; then : + if test "$DISABLE_pmix" = "1"; then : want_component=0 fi - if test "$DISABLE_rcache_rgpusm" = "1"; then : + if test "$DISABLE_pmix_ext3x" = "1"; then : want_component=0 fi @@ -170088,11 +168947,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_rcache" - SHARED_COMPONENT="$DSO_rcache_rgpusm" + SHARED_FRAMEWORK="$DSO_pmix" + SHARED_COMPONENT="$DSO_pmix_ext3x" - STATIC_FRAMEWORK="$STATIC_rcache" - STATIC_COMPONENT="$STATIC_rcache_rgpusm" + STATIC_FRAMEWORK="$STATIC_pmix" + STATIC_COMPONENT="$STATIC_pmix_ext3x" shared_mode_override=static @@ -170110,9 +168969,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rcache:rgpusm compile mode" >&5 -$as_echo_n "checking for MCA component rcache:rgpusm compile mode... " >&6; } - if test "$DIRECT_rcache" = "rgpusm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:ext3x compile mode" >&5 +$as_echo_n "checking for MCA component pmix:ext3x compile mode... " >&6; } + if test "$DIRECT_pmix" = "ext3x" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -170123,16 +168982,52 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/rcache/rgpusm/Makefile" + ac_config_files="$ac_config_files opal/mca/pmix/ext3x/Makefile" - # Use CUDA_SUPPORT which was filled in by the opal configure code. - if test "x$CUDA_SUPPORT" = "x1"; then : + if test "$opal_external_pmix_happy" = "yes"; then : + # check for the 3.x version + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if external component is version 3.x or higher" >&5 +$as_echo_n "checking if external component is version 3.x or higher... " >&6; } + if test $opal_external_pmix_version_major -ge 3 ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test "$opal_event_external_support" != "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT" >&5 +$as_echo "$as_me: WARNING: EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LIBRARY. THIS LIBRARY MUST POINT TO THE SAME ONE USED" >&5 +$as_echo "$as_me: WARNING: LIBRARY. THIS LIBRARY MUST POINT TO THE SAME ONE USED" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT" >&5 +$as_echo "$as_me: WARNING: TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT" >&2;} + as_fn_error $? "PLEASE CORRECT THE CONFIGURE COMMAND LINE AND REBUILD" "$LINENO" 5 +fi + opal_pmix_external_3x_happy=yes + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_pmix_external_3x_happy=no + fi + + if test "$opal_pmix_external_3x_happy" = "yes"; then : should_build=$should_build + # need to set the wrapper flags for static builds + pmix_ext3x_WRAPPER_EXTRA_LDFLAGS=$opal_external_pmix_LDFLAGS + pmix_ext3x_WRAPPER_EXTRA_LIBS=$opal_external_pmix_LIBS +else + should_build=0 +fi else should_build=0 fi + opal_pmix_ext3x_CPPFLAGS=$opal_external_pmix_CPPFLAGS + opal_pmix_ext3x_LDFLAGS=$opal_external_pmix_LDFLAGS + opal_pmix_ext3x_LIBS=$opal_external_pmix_LIBS + + + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -170142,45 +169037,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/rcache/rgpusm/post_configure.sh" + infile="$srcdir/opal/mca/pmix/ext3x/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components rgpusm" + all_components="$all_components ext3x" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components rgpusm" + dso_components="$dso_components ext3x" else - if test "rcache" = "common"; then + if test "pmix" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/rcache/rgpusm/lib${OPAL_LIB_PREFIX}mca_rcache_rgpusm.la $static_ltlibs" + static_ltlibs="mca/pmix/ext3x/lib${OPAL_LIB_PREFIX}mca_pmix_ext3x.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rcache/rgpusm/libmca_rcache_rgpusm.la $static_ltlibs" + static_ltlibs="mca/pmix/ext3x/libmca_pmix_ext3x.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_rcache_rgpusm_component;" >> $outfile.extern - echo " &mca_rcache_rgpusm_component, " >> $outfile.struct - static_components="$static_components rgpusm" + echo "extern const mca_base_component_t mca_pmix_ext3x_component;" >> $outfile.extern + echo " &mca_pmix_ext3x_component, " >> $outfile.struct + static_components="$static_components ext3x" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:rgpusm can compile" >&5 -$as_echo_n "checking if MCA component rcache:rgpusm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:ext3x can compile" >&5 +$as_echo_n "checking if MCA component pmix:ext3x can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_rcache" = "rgpusm" ; then + if test "$DIRECT_pmix" = "ext3x" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_rcache_DIRECT_CALL_HEADER=$line" + str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** rcache component rgpusm was supposed to be direct-called, but +as_fn_error $? "*** pmix component ext3x was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -170188,8 +169083,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rcache" = "rgpusm" ; then -as_fn_error $? "*** rcache component rgpusm was supposed to be direct-called, but + if test "$DIRECT_pmix" = "ext3x" ; then +as_fn_error $? "*** pmix component ext3x was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -170204,7 +169099,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$rcache_rgpusm_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$pmix_ext3x_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -170244,7 +169139,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_rgpusm_LDFLAGS; do + for arg in $pmix_ext3x_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -170325,7 +169220,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_rgpusm_WRAPPER_EXTRA_LDFLAGS; do + for arg in $pmix_ext3x_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -170367,7 +169262,7 @@ fi - if test "$rcache_rgpusm_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$pmix_ext3x_WRAPPER_EXTRA_LIBS" = ""; then : @@ -170407,7 +169302,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_rgpusm_LIBS; do + for arg in $pmix_ext3x_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -170488,7 +169383,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_rgpusm_WRAPPER_EXTRA_LIBS; do + for arg in $pmix_ext3x_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -170536,7 +169431,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$rcache_rgpusm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$pmix_ext3x_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -170579,7 +169474,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_rgpusm_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $pmix_ext3x_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -170622,32 +169517,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rcache_rgpusm_WRAPPER_EXTRA_CPPFLAGS ($rcache_rgpusm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring rcache_rgpusm_WRAPPER_EXTRA_CPPFLAGS ($rcache_rgpusm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_ext3x_WRAPPER_EXTRA_CPPFLAGS ($pmix_ext3x_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pmix_ext3x_WRAPPER_EXTRA_CPPFLAGS ($pmix_ext3x_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:rgpusm can compile" >&5 -$as_echo_n "checking if MCA component rcache:rgpusm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:ext3x can compile" >&5 +$as_echo_n "checking if MCA component pmix:ext3x can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_rcache" = "rgpusm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"rgpusm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"rgpusm\" failed to configure properly" >&2;} + if test "$with_pmix" = "ext3x" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ext3x\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ext3x\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_rcache" ; then - if test "$DIRECT_rcache" = "rgpusm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"rgpusm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"rgpusm\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "ext3x" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ext3x\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ext3x\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -170655,23 +169550,23 @@ fi # add component to all component list - all_components="$all_components rgpusm" + all_components="$all_components ext3x" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_rcache_rgpusm_DSO=1 + BUILD_opal_pmix_ext3x_DSO=1 else - BUILD_opal_rcache_rgpusm_DSO=0 + BUILD_opal_pmix_ext3x_DSO=0 fi - if test "$BUILD_opal_rcache_rgpusm_DSO" = "1"; then - MCA_BUILD_opal_rcache_rgpusm_DSO_TRUE= - MCA_BUILD_opal_rcache_rgpusm_DSO_FALSE='#' + if test "$BUILD_opal_pmix_ext3x_DSO" = "1"; then + MCA_BUILD_opal_pmix_ext3x_DSO_TRUE= + MCA_BUILD_opal_pmix_ext3x_DSO_FALSE='#' else - MCA_BUILD_opal_rcache_rgpusm_DSO_TRUE='#' - MCA_BUILD_opal_rcache_rgpusm_DSO_FALSE= + MCA_BUILD_opal_pmix_ext3x_DSO_TRUE='#' + MCA_BUILD_opal_pmix_ext3x_DSO_FALSE= fi @@ -170687,13 +169582,13 @@ - opal_show_subsubsubtitle "MCA component rcache:udreg (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component pmix:flux (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/rcache/udreg" + component_path="$srcdir/opal/mca/pmix/flux" want_component=0 # build if: @@ -170725,8 +169620,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rcache" ; then - if test "$DIRECT_rcache" = "udreg" ; then + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "flux" ; then want_component=1 else want_component=0 @@ -170735,10 +169630,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_rcache" = "1"; then : + if test "$DISABLE_pmix" = "1"; then : want_component=0 fi - if test "$DISABLE_rcache_udreg" = "1"; then : + if test "$DISABLE_pmix_flux" = "1"; then : want_component=0 fi @@ -170751,11 +169646,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_rcache" - SHARED_COMPONENT="$DSO_rcache_udreg" + SHARED_FRAMEWORK="$DSO_pmix" + SHARED_COMPONENT="$DSO_pmix_flux" - STATIC_FRAMEWORK="$STATIC_rcache" - STATIC_COMPONENT="$STATIC_rcache_udreg" + STATIC_FRAMEWORK="$STATIC_pmix" + STATIC_COMPONENT="$STATIC_pmix_flux" shared_mode_override=static @@ -170773,9 +169668,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rcache:udreg compile mode" >&5 -$as_echo_n "checking for MCA component rcache:udreg compile mode... " >&6; } - if test "$DIRECT_rcache" = "udreg" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:flux compile mode" >&5 +$as_echo_n "checking for MCA component pmix:flux compile mode... " >&6; } + if test "$DIRECT_pmix" = "flux" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -170786,36 +169681,50 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/rcache/udreg/Makefile" + ac_config_files="$ac_config_files opal/mca/pmix/flux/Makefile" -# Check whether --with-udreg was given. -if test "${with_udreg+set}" = set; then : - withval=$with_udreg; + +# Check whether --with-flux-pmi was given. +if test "${with_flux_pmi+set}" = set; then : + withval=$with_flux_pmi; fi - rcache_udreg_happy="no" - if test "$with_udreg" = "no"; then : - rcache_udreg_happy="no" +# Check whether --with-flux-pmi-library was given. +if test "${with_flux_pmi_library+set}" = set; then : + withval=$with_flux_pmi_library; +fi + + + + # pkg-config check aborts configure on failure + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if user wants Flux support to link against PMI library" >&5 +$as_echo_n "checking if user wants Flux support to link against PMI library... " >&6; } + if test "x$with_flux_pmi_library" != "xyes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_UDREG" >&5 -$as_echo_n "checking for CRAY_UDREG... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FLUX_PMI" >&5 +$as_echo_n "checking for FLUX_PMI... " >&6; } -if test -n "$CRAY_UDREG_CFLAGS"; then - pkg_cv_CRAY_UDREG_CFLAGS="$CRAY_UDREG_CFLAGS" +if test -n "$FLUX_PMI_CFLAGS"; then + pkg_cv_FLUX_PMI_CFLAGS="$FLUX_PMI_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-udreg\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-udreg") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"flux-pmi\""; } >&5 + ($PKG_CONFIG --exists --print-errors "flux-pmi") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_CRAY_UDREG_CFLAGS=`$PKG_CONFIG --cflags "cray-udreg" 2>/dev/null` + pkg_cv_FLUX_PMI_CFLAGS=`$PKG_CONFIG --cflags "flux-pmi" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -170823,16 +169732,16 @@ else pkg_failed=untried fi -if test -n "$CRAY_UDREG_LIBS"; then - pkg_cv_CRAY_UDREG_LIBS="$CRAY_UDREG_LIBS" +if test -n "$FLUX_PMI_LIBS"; then + pkg_cv_FLUX_PMI_LIBS="$FLUX_PMI_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-udreg\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-udreg") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"flux-pmi\""; } >&5 + ($PKG_CONFIG --exists --print-errors "flux-pmi") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_CRAY_UDREG_LIBS=`$PKG_CONFIG --libs "cray-udreg" 2>/dev/null` + pkg_cv_FLUX_PMI_LIBS=`$PKG_CONFIG --libs "flux-pmi" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -170853,44 +169762,90 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - CRAY_UDREG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-udreg" 2>&1` + FLUX_PMI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "flux-pmi" 2>&1` else - CRAY_UDREG_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-udreg" 2>&1` + FLUX_PMI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "flux-pmi" 2>&1` fi # Put the nasty error message in config.log where it belongs - echo "$CRAY_UDREG_PKG_ERRORS" >&5 + echo "$FLUX_PMI_PKG_ERRORS" >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - rcache_udreg_happ="no" + as_fn_error $? "Package requirements (flux-pmi) were not met: + +$FLUX_PMI_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables FLUX_PMI_CFLAGS +and FLUX_PMI_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - rcache_udreg_happ="no" + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables FLUX_PMI_CFLAGS +and FLUX_PMI_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } else - CRAY_UDREG_CFLAGS=$pkg_cv_CRAY_UDREG_CFLAGS - CRAY_UDREG_LIBS=$pkg_cv_CRAY_UDREG_LIBS + FLUX_PMI_CFLAGS=$pkg_cv_FLUX_PMI_CFLAGS + FLUX_PMI_LIBS=$pkg_cv_FLUX_PMI_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - rcache_udreg_LDFLAGS="$CRAY_UDREG_LIBS" - rcache_udreg_CPPFLAGS="$CRAY_UDREG_CFLAGS" - rcache_udreg_happy="yes" + fi + have_flux_pmi_library=yes + +$as_echo "#define HAVE_FLUX_PMI_LIBRARY 1" >>confdefs.h + + fi - if test "$rcache_udreg_happy" = "yes"; then : - should_build=$should_build + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Flux support allowed to use dlopen" >&5 +$as_echo_n "checking if Flux support allowed to use dlopen... " >&6; } + if test $OPAL_ENABLE_DLOPEN_SUPPORT -eq 1 && test "x$compile_mode" = "xdso"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + flux_can_dlopen=yes + else - should_build=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking if Flux PMI support can be built" >&5 +$as_echo_n "checking Checking if Flux PMI support can be built... " >&6; } + if test "x$with_flux_pmi" != "xno" && ( test "x$have_flux_pmi_library" = "xyes" || test "x$flux_can_dlopen" = "xyes" ) ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_enable_flux=yes - # substitute in the things needed to build udreg/rcache +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + if test "x$with_flux_pmi" = "xyes"; then : + as_fn_error $? "Aborting since Flux PMI support was requested" "$LINENO" 5 +fi +fi + # Evaluate succeed / fail + if test "x$opal_enable_flux" = "xyes"; then : + should_build=$should_build + # need to set the wrapper flags for static builds + pmix_flux_WRAPPER_EXTRA_LIBS="$FLUX_PMI_LIBS" +else + should_build=0 +fi opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -170900,45 +169855,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/rcache/udreg/post_configure.sh" + infile="$srcdir/opal/mca/pmix/flux/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components udreg" + all_components="$all_components flux" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components udreg" + dso_components="$dso_components flux" else - if test "rcache" = "common"; then + if test "pmix" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/rcache/udreg/lib${OPAL_LIB_PREFIX}mca_rcache_udreg.la $static_ltlibs" + static_ltlibs="mca/pmix/flux/lib${OPAL_LIB_PREFIX}mca_pmix_flux.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rcache/udreg/libmca_rcache_udreg.la $static_ltlibs" + static_ltlibs="mca/pmix/flux/libmca_pmix_flux.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_rcache_udreg_component;" >> $outfile.extern - echo " &mca_rcache_udreg_component, " >> $outfile.struct - static_components="$static_components udreg" + echo "extern const mca_base_component_t mca_pmix_flux_component;" >> $outfile.extern + echo " &mca_pmix_flux_component, " >> $outfile.struct + static_components="$static_components flux" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:udreg can compile" >&5 -$as_echo_n "checking if MCA component rcache:udreg can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:flux can compile" >&5 +$as_echo_n "checking if MCA component pmix:flux can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_rcache" = "udreg" ; then + if test "$DIRECT_pmix" = "flux" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_rcache_DIRECT_CALL_HEADER=$line" + str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** rcache component udreg was supposed to be direct-called, but +as_fn_error $? "*** pmix component flux was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -170946,8 +169901,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rcache" = "udreg" ; then -as_fn_error $? "*** rcache component udreg was supposed to be direct-called, but + if test "$DIRECT_pmix" = "flux" ; then +as_fn_error $? "*** pmix component flux was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -170962,7 +169917,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$rcache_udreg_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$pmix_flux_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -171002,7 +169957,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_udreg_LDFLAGS; do + for arg in $pmix_flux_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -171083,7 +170038,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_udreg_WRAPPER_EXTRA_LDFLAGS; do + for arg in $pmix_flux_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -171125,7 +170080,7 @@ fi - if test "$rcache_udreg_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$pmix_flux_WRAPPER_EXTRA_LIBS" = ""; then : @@ -171165,7 +170120,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_udreg_LIBS; do + for arg in $pmix_flux_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -171246,7 +170201,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_udreg_WRAPPER_EXTRA_LIBS; do + for arg in $pmix_flux_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -171294,7 +170249,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$rcache_udreg_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$pmix_flux_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -171337,7 +170292,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rcache_udreg_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $pmix_flux_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -171380,32 +170335,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rcache_udreg_WRAPPER_EXTRA_CPPFLAGS ($rcache_udreg_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring rcache_udreg_WRAPPER_EXTRA_CPPFLAGS ($rcache_udreg_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_flux_WRAPPER_EXTRA_CPPFLAGS ($pmix_flux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pmix_flux_WRAPPER_EXTRA_CPPFLAGS ($pmix_flux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:udreg can compile" >&5 -$as_echo_n "checking if MCA component rcache:udreg can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:flux can compile" >&5 +$as_echo_n "checking if MCA component pmix:flux can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_rcache" = "udreg" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"udreg\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"udreg\" failed to configure properly" >&2;} + if test "$with_pmix" = "flux" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"flux\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"flux\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_rcache" ; then - if test "$DIRECT_rcache" = "udreg" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"udreg\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"udreg\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "flux" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"flux\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"flux\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -171413,23 +170368,23 @@ fi # add component to all component list - all_components="$all_components udreg" + all_components="$all_components flux" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_rcache_udreg_DSO=1 + BUILD_opal_pmix_flux_DSO=1 else - BUILD_opal_rcache_udreg_DSO=0 + BUILD_opal_pmix_flux_DSO=0 fi - if test "$BUILD_opal_rcache_udreg_DSO" = "1"; then - MCA_BUILD_opal_rcache_udreg_DSO_TRUE= - MCA_BUILD_opal_rcache_udreg_DSO_FALSE='#' + if test "$BUILD_opal_pmix_flux_DSO" = "1"; then + MCA_BUILD_opal_pmix_flux_DSO_TRUE= + MCA_BUILD_opal_pmix_flux_DSO_FALSE='#' else - MCA_BUILD_opal_rcache_udreg_DSO_TRUE='#' - MCA_BUILD_opal_rcache_udreg_DSO_FALSE= + MCA_BUILD_opal_pmix_flux_DSO_TRUE='#' + MCA_BUILD_opal_pmix_flux_DSO_FALSE= fi @@ -171445,24 +170400,13 @@ - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - - if test "1" != "0"; then : - - for component_path in $srcdir/opal/mca/rcache/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component rcache:$component (need to configure)" + opal_show_subsubsubtitle "MCA component pmix:pmix3x (m4 configuration macro)" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/rcache/$component" + component_path="$srcdir/opal/mca/pmix/pmix3x" want_component=0 # build if: @@ -171494,8 +170438,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rcache" ; then - if test "$DIRECT_rcache" = "$component" ; then + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "pmix3x" ; then want_component=1 else want_component=0 @@ -171504,29 +170448,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_rcache" = "1"; then : + if test "$DISABLE_pmix" = "1"; then : + want_component=0 +fi + if test "$DISABLE_pmix_pmix3x" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_rcache_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_rcache" - str="SHARED_COMPONENT=\$DSO_rcache_$component" - eval $str + SHARED_FRAMEWORK="$DSO_pmix" + SHARED_COMPONENT="$DSO_pmix_pmix3x" - STATIC_FRAMEWORK="$STATIC_rcache" - str="STATIC_COMPONENT=\$STATIC_rcache_$component" - eval $str + STATIC_FRAMEWORK="$STATIC_pmix" + STATIC_COMPONENT="$STATIC_pmix_pmix3x" shared_mode_override=static @@ -171544,9 +170486,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rcache:$component compile mode" >&5 -$as_echo_n "checking for MCA component rcache:$component compile mode... " >&6; } - if test "$DIRECT_rcache" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:pmix3x compile mode" >&5 +$as_echo_n "checking for MCA component pmix:pmix3x compile mode... " >&6; } + if test "$DIRECT_pmix" = "pmix3x" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -171554,9 +170496,91 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/pmix/pmix3x/Makefile" + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in PMIX_VERSION opal_pmix_pmix3x_save_CPPFLAGS opal_pmix_pmix2_save_CFLAGS opal_pmix_pmix3x_save_LDFLAGS opal_pmix_pmix3x_save_LIBS opal_pmix_pmix3x_basedir opal_pmix_pmix3x_args opal_pmix_pmix3x_happy pmix_pmix3x_status_filename; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"PMIX_VERSION opal_pmix_pmix3x_save_CPPFLAGS opal_pmix_pmix2_save_CFLAGS opal_pmix_pmix3x_save_LDFLAGS opal_pmix_pmix3x_save_LIBS opal_pmix_pmix3x_basedir opal_pmix_pmix3x_args opal_pmix_pmix3x_happy pmix_pmix3x_status_filename\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + opal_pmix_pmix3x_basedir=opal/mca/pmix/pmix3x + + opal_pmix_pmix3x_save_CFLAGS=$CFLAGS + opal_pmix_pmix3x_save_CPPFLAGS=$CPPFLAGS + opal_pmix_pmix3x_save_LDFLAGS=$LDFLAGS + opal_pmix_pmix3x_save_LIBS=$LIBS + + # Check whether --enable-pmix-timing was given. +if test "${enable_pmix_timing+set}" = set; then : + enableval=$enable_pmix_timing; +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if PMIx timing is enabled" >&5 +$as_echo_n "checking if PMIx timing is enabled... " >&6; } + if test "$enable_pmix_timing" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_pmix_pmix3x_timing_flag=--enable-pmix-timing + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (disabled)" >&5 +$as_echo "no (disabled)" >&6; } + opal_pmix_pmix3x_timing_flag=--disable-pmix-timing + fi + + opal_pmix_pmix3x_args="$opal_pmix_pmix3x_timing_flag --without-tests-examples --disable-pmix-binaries --disable-pmix-backward-compatibility --disable-visibility --enable-embedded-libevent --with-libevent-header=\\\"opal/mca/event/$opal_event_base_include\\\" --enable-embedded-hwloc --with-hwloc-header=\\\"$opal_hwloc_base_include\\\"" + opal_pmix_pmix3x_args="--with-pmix-symbol-rename=OPAL_MCA_PMIX3X_ --enable-embedded-mode $opal_pmix_pmix3x_args" + if test "$enable_debug" = "yes"; then : + opal_pmix_pmix3x_args="--enable-debug $opal_pmix_pmix3x_args" + CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS -g" +else + opal_pmix_pmix3x_args="--disable-debug $opal_pmix_pmix3x_args" + CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS" +fi + if test "$with_devel_headers" = "yes"; then : + opal_pmix_pmix3x_args="--with-devel-headers $opal_pmix_pmix3x_args" +fi + CPPFLAGS="-I$OPAL_TOP_SRCDIR -I$OPAL_TOP_BUILDDIR -I$OPAL_TOP_SRCDIR/opal/include -I$OPAL_TOP_BUILDDIR/opal/include $CPPFLAGS" + + # OpenPMIx Man pages are not needed when embedded. Avoids pandoc check + opal_pmix_pmix3x_args="--disable-man-pages $opal_pmix_pmix3x_args" + @@ -171599,15 +170623,15 @@ # # Invoke configure in a specific subdirectory. # -# opal/mca/rcache/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure +# $opal_pmix_pmix3x_basedir/pmix is the directory to invoke in +# $opal_pmix_pmix3x_args $opal_subdir_args 'CFLAGS=$CFLAGS' 'CPPFLAGS=$CPPFLAGS' is the list of arguments to pass +# opal_pmix_pmix3x_happy=1 is actions to execute upon success +# opal_pmix_pmix3x_happy=0 is actions to execute upon failure # -subdir_dir="opal/mca/rcache/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" +subdir_dir="$opal_pmix_pmix3x_basedir/pmix" +subdir_args="$opal_pmix_pmix3x_args $opal_subdir_args 'CFLAGS=$CFLAGS' 'CPPFLAGS=$CPPFLAGS'" +subdir_success="opal_pmix_pmix3x_happy=1" +subdir_failure="opal_pmix_pmix3x_happy=0" # # Sanity checks @@ -171741,80 +170765,142 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/opal/mca/rcache/all_components/post_configure.sh" - if test -f $infile; then + CFLAGS=$opal_pmix_pmix3x_save_CFLAGS + CPPFLAGS=$opal_pmix_pmix3x_save_CPPFLAGS + LDFLAGS=$opal_pmix_pmix3x_save_LDFLAGS + LIBS=$opal_pmix_pmix3x_save_LIBS - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi + # See if we are using the internal version. NOTE: we still did all the + # above configury so that all the proper GNU Autotools + # infrastructure is setup properly (e.g., w.r.t. SUBDIRS=pmix in + # this directory's Makefile.am, we still need the Autotools "make + # distclean" infrastructure to work properly). + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if v3.x component is to be used" >&5 +$as_echo_n "checking if v3.x component is to be used... " >&6; } + if test "$opal_external_pmix_happy" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no - disqualifying this component" >&5 +$as_echo "no - disqualifying this component" >&6; } + opal_pmix_pmix3x_happy=0 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes - using the internal v3.x library" >&5 +$as_echo "yes - using the internal v3.x library" >&6; } + if test "$opal_pmix_pmix3x_happy" = "0"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: INTERNAL PMIX FAILED TO CONFIGURE" >&5 +$as_echo "$as_me: WARNING: INTERNAL PMIX FAILED TO CONFIGURE" >&2;} + as_fn_error $? "CANNOT CONTINUE" "$LINENO" 5 +fi + # Build flags for our Makefile.am + opal_pmix_pmix3x_LDFLAGS= + opal_pmix_pmix3x_LIBS="$OPAL_TOP_BUILDDIR/$opal_pmix_pmix3x_basedir/pmix/src/libpmix.la" + opal_pmix_pmix3x_CPPFLAGS="-I$OPAL_TOP_BUILDDIR/$opal_pmix_pmix3x_basedir/pmix/include -I$OPAL_TOP_BUILDDIR/$opal_pmix_pmix3x_basedir/pmix -I$OPAL_TOP_SRCDIR/$opal_pmix_pmix3x_basedir/pmix/include -I$OPAL_TOP_SRCDIR/$opal_pmix_pmix3x_basedir/pmix" + opal_pmix_pmix3x_DEPENDENCIES="$OPAL_TOP_BUILDDIR/$opal_pmix_pmix3x_basedir/pmix/src/libpmix.la" +fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - rcache_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - rcache_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + + # Finally, add some flags to the wrapper compiler so that our + # headers can be found. Do not grab them from config.status, + # because the value is located in an area that is part of an awk + # script, and sometimes autoconf decides to break up super-long + # lines into multiple lines (awk has line continuation syntax). + # Instead, grab it from the generated Makefile. + pmix_pmix3x_makefile_filename="$OPAL_TOP_BUILDDIR/$opal_pmix_pmix3x_basedir/pmix/Makefile" + pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS=`egrep PMIX_EMBEDDED_CPPFLAGS $pmix_pmix3x_makefile_filename | cut -d= -f2-` + pmix_pmix3x_WRAPPER_EXTRA_LDFLAGS=`egrep PMIX_EMBEDDED_LDFLAGS $pmix_pmix3x_makefile_filename | cut -d= -f2-` + pmix_pmix3x_WRAPPER_EXTRA_LIBS=`egrep PMIX_EMBEDDED_LIBS $pmix_pmix3x_makefile_filename | cut -d= -f2-` + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking PMIx extra wrapper CPPFLAGS" >&5 +$as_echo_n "checking PMIx extra wrapper CPPFLAGS... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS" >&5 +$as_echo "$pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking PMIx extra wrapper LDFLAGS" >&5 +$as_echo_n "checking PMIx extra wrapper LDFLAGS... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_pmix3x_WRAPPER_EXTRA_LDFLAGS" >&5 +$as_echo "$pmix_pmix3x_WRAPPER_EXTRA_LDFLAGS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking PMIx extra wrapper LIBS" >&5 +$as_echo_n "checking PMIx extra wrapper LIBS... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_pmix3x_WRAPPER_EXTRA_LIBS" >&5 +$as_echo "$pmix_pmix3x_WRAPPER_EXTRA_LIBS" >&6; } + + if test $opal_pmix_pmix3x_happy -eq 1; then : + should_build=$should_build +else + should_build=0 +fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/rcache/$component/post_configure.sh" + infile="$srcdir/opal/mca/pmix/pmix3x/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + all_components="$all_components pmix3x" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" + dso_components="$dso_components pmix3x" else - if test "rcache" = "common"; then + if test "pmix" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/rcache/$component/lib${OPAL_LIB_PREFIX}mca_rcache_$component.la $static_ltlibs" + static_ltlibs="mca/pmix/pmix3x/lib${OPAL_LIB_PREFIX}mca_pmix_pmix3x.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rcache/$component/libmca_rcache_$component.la $static_ltlibs" + static_ltlibs="mca/pmix/pmix3x/libmca_pmix_pmix3x.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_rcache_$component_component;" >> $outfile.extern - echo " &mca_rcache_$component_component, " >> $outfile.struct - static_components="$static_components $component" + echo "extern const mca_base_component_t mca_pmix_pmix3x_component;" >> $outfile.extern + echo " &mca_pmix_pmix3x_component, " >> $outfile.struct + static_components="$static_components pmix3x" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:$component can compile" >&5 -$as_echo_n "checking if MCA component rcache:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:pmix3x can compile" >&5 +$as_echo_n "checking if MCA component pmix:pmix3x can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_rcache" = "$component" ; then + if test "$DIRECT_pmix" = "pmix3x" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_rcache_DIRECT_CALL_HEADER=$line" + str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** rcache component $component was supposed to be direct-called, but +as_fn_error $? "*** pmix component pmix3x was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -171822,8 +170908,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rcache" = "$component" ; then -as_fn_error $? "*** rcache component $component was supposed to be direct-called, but + if test "$DIRECT_pmix" = "pmix3x" ; then +as_fn_error $? "*** pmix component pmix3x was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -171838,8 +170924,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$rcache_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + if test "$pmix_pmix3x_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -171879,7 +170964,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $pmix_pmix3x_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -171919,8 +171004,8 @@ unset $opal_var done -str="line=\$rcache_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + +else @@ -171960,21 +171045,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $pmix_pmix3x_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -172001,179 +171086,334 @@ done - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - +fi + if test "$pmix_pmix3x_WRAPPER_EXTRA_LIBS" = ""; then : - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:$component can compile" >&5 -$as_echo_n "checking if MCA component rcache:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_rcache" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - if test ! -z "$DIRECT_rcache" ; then - if test "$DIRECT_rcache" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $pmix_pmix3x_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi fi + done - MCA_opal_rcache_ALL_COMPONENTS="$all_components" - MCA_opal_rcache_STATIC_COMPONENTS="$static_components" - MCA_opal_rcache_DSO_COMPONENTS="$dso_components" - MCA_opal_rcache_STATIC_LTLIBS="$static_ltlibs" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done +else - MCA_opal_rcache_ALL_SUBDIRS= - for item in $all_components ; do - MCA_opal_rcache_ALL_SUBDIRS="$MCA_opal_rcache_ALL_SUBDIRS mca/rcache/$item" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - MCA_opal_rcache_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_opal_rcache_STATIC_SUBDIRS="$MCA_opal_rcache_STATIC_SUBDIRS mca/rcache/$item" + + for arg in $pmix_pmix3x_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - MCA_opal_rcache_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_opal_rcache_DSO_SUBDIRS="$MCA_opal_rcache_DSO_SUBDIRS mca/rcache/$item" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done +fi - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "rcache" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - rm -f $outfile.struct $outfile.extern - unset all_components static_components dso_components outfile outfile_real + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS reachable" - MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/reachable" - MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_reachable_ALL_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_reachable_DSO_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_reachable_STATIC_SUBDIRS)" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/reachable/libmca_reachable.la" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_reachable_STATIC_LTLIBS)" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_show_subsubtitle "Configuring MCA framework reachable" +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS ($pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS ($pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:pmix3x can compile" >&5 +$as_echo_n "checking if MCA component pmix:pmix3x can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= + # If this component was requested as the default for this + # type, then abort. + if test "$with_pmix" = "pmix3x" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pmix3x\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pmix3x\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=opal/mca/reachable/base - as_dir=$outdir; as_fn_mkdir_p + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "pmix3x" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pmix3x\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pmix3x\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # emit Makefile rule - ac_config_files="$ac_config_files opal/mca/reachable/Makefile" + # add component to all component list + all_components="$all_components pmix3x" +fi - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework reachable" >&5 -$as_echo_n "checking for no configure components in framework reachable... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: weighted" >&5 -$as_echo "weighted" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework reachable" >&5 -$as_echo_n "checking for m4 configure components in framework reachable... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: netlink" >&5 -$as_echo "netlink" >&6; } + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_pmix_pmix3x_DSO=1 +else + BUILD_opal_pmix_pmix3x_DSO=0 +fi + if test "$BUILD_opal_pmix_pmix3x_DSO" = "1"; then + MCA_BUILD_opal_pmix_pmix3x_DSO_TRUE= + MCA_BUILD_opal_pmix_pmix3x_DSO_FALSE='#' +else + MCA_BUILD_opal_pmix_pmix3x_DSO_TRUE='#' + MCA_BUILD_opal_pmix_pmix3x_DSO_FALSE= +fi - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode - # run the configure logic for the no-config components - opal_show_subsubsubtitle "MCA component reachable:weighted (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + opal_show_subsubsubtitle "MCA component pmix:s1 (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/reachable/weighted" + + component_path="$srcdir/opal/mca/pmix/s1" want_component=0 # build if: @@ -172205,8 +171445,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_reachable" ; then - if test "$DIRECT_reachable" = "weighted" ; then + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "s1" ; then want_component=1 else want_component=0 @@ -172215,25 +171455,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_reachable" = "1"; then : + if test "$DISABLE_pmix" = "1"; then : want_component=0 fi - if test "$DISABLE_reachable_weighted" = "1"; then : + if test "$DISABLE_pmix_s1" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_reachable" - SHARED_COMPONENT="$DSO_reachable_weighted" + SHARED_FRAMEWORK="$DSO_pmix" + SHARED_COMPONENT="$DSO_pmix_s1" - STATIC_FRAMEWORK="$STATIC_reachable" - STATIC_COMPONENT="$STATIC_reachable_weighted" + STATIC_FRAMEWORK="$STATIC_pmix" + STATIC_COMPONENT="$STATIC_pmix_s1" shared_mode_override=static @@ -172251,9 +171493,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component reachable:weighted compile mode" >&5 -$as_echo_n "checking for MCA component reachable:weighted compile mode... " >&6; } - if test "$DIRECT_reachable" = "weighted" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:s1 compile mode" >&5 +$as_echo_n "checking for MCA component pmix:s1 compile mode... " >&6; } + if test "$DIRECT_pmix" = "s1" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -172261,53 +171503,72 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/pmix/s1/Makefile" + + + + + # Evaluate succeed / fail + if test "$opal_enable_pmi1" = "yes" && test "$opal_check_ugni_happy" = "no"; then : + should_build=$should_build + # need to set the wrapper flags for static builds + pmix_s1_WRAPPER_EXTRA_LDFLAGS="$opal_pmi1_LDFLAGS" + pmix_s1_WRAPPER_EXTRA_LIBS="$opal_pmi1_LIBS" +else + should_build=0 +fi + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/reachable/weighted/post_configure.sh" + infile="$srcdir/opal/mca/pmix/s1/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components weighted" + all_components="$all_components s1" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components weighted" + dso_components="$dso_components s1" else - if test "reachable" = "common"; then + if test "pmix" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/reachable/weighted/lib${OPAL_LIB_PREFIX}mca_reachable_weighted.la $static_ltlibs" + static_ltlibs="mca/pmix/s1/lib${OPAL_LIB_PREFIX}mca_pmix_s1.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/reachable/weighted/libmca_reachable_weighted.la $static_ltlibs" + static_ltlibs="mca/pmix/s1/libmca_pmix_s1.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_reachable_weighted_component;" >> $outfile.extern - echo " &mca_reachable_weighted_component, " >> $outfile.struct - static_components="$static_components weighted" + echo "extern const mca_base_component_t mca_pmix_s1_component;" >> $outfile.extern + echo " &mca_pmix_s1_component, " >> $outfile.struct + static_components="$static_components s1" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component reachable:weighted can compile" >&5 -$as_echo_n "checking if MCA component reachable:weighted can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:s1 can compile" >&5 +$as_echo_n "checking if MCA component pmix:s1 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_reachable" = "weighted" ; then + if test "$DIRECT_pmix" = "s1" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_reachable_DIRECT_CALL_HEADER=$line" + str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** reachable component weighted was supposed to be direct-called, but +as_fn_error $? "*** pmix component s1 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -172315,8 +171576,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_reachable" = "weighted" ; then -as_fn_error $? "*** reachable component weighted was supposed to be direct-called, but + if test "$DIRECT_pmix" = "s1" ; then +as_fn_error $? "*** pmix component s1 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -172331,7 +171592,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$reachable_weighted_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$pmix_s1_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -172371,7 +171632,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $reachable_weighted_LDFLAGS; do + for arg in $pmix_s1_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -172452,7 +171713,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $reachable_weighted_WRAPPER_EXTRA_LDFLAGS; do + for arg in $pmix_s1_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -172494,7 +171755,7 @@ fi - if test "$reachable_weighted_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$pmix_s1_WRAPPER_EXTRA_LIBS" = ""; then : @@ -172534,7 +171795,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $reachable_weighted_LIBS; do + for arg in $pmix_s1_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -172615,7 +171876,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $reachable_weighted_WRAPPER_EXTRA_LIBS; do + for arg in $pmix_s1_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -172663,7 +171924,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$reachable_weighted_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$pmix_s1_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -172706,7 +171967,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $reachable_weighted_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $pmix_s1_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -172749,79 +172010,78 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring reachable_weighted_WRAPPER_EXTRA_CPPFLAGS ($reachable_weighted_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring reachable_weighted_WRAPPER_EXTRA_CPPFLAGS ($reachable_weighted_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_s1_WRAPPER_EXTRA_CPPFLAGS ($pmix_s1_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pmix_s1_WRAPPER_EXTRA_CPPFLAGS ($pmix_s1_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component reachable:weighted can compile" >&5 -$as_echo_n "checking if MCA component reachable:weighted can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:s1 can compile" >&5 +$as_echo_n "checking if MCA component pmix:s1 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_reachable" = "weighted" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"weighted\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"weighted\" failed to configure properly" >&2;} + if test "$with_pmix" = "s1" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"s1\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"s1\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_reachable" ; then - if test "$DIRECT_reachable" = "weighted" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"weighted\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"weighted\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "s1" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"s1\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"s1\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components weighted" - fi + # add component to all component list + all_components="$all_components s1" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_opal_reachable_weighted_DSO=1 - else - BUILD_opal_reachable_weighted_DSO=0 - fi - if test "$BUILD_opal_reachable_weighted_DSO" = "1"; then - MCA_BUILD_opal_reachable_weighted_DSO_TRUE= - MCA_BUILD_opal_reachable_weighted_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_opal_pmix_s1_DSO=1 else - MCA_BUILD_opal_reachable_weighted_DSO_TRUE='#' - MCA_BUILD_opal_reachable_weighted_DSO_FALSE= + BUILD_opal_pmix_s1_DSO=0 +fi + if test "$BUILD_opal_pmix_s1_DSO" = "1"; then + MCA_BUILD_opal_pmix_s1_DSO_TRUE= + MCA_BUILD_opal_pmix_s1_DSO_FALSE='#' +else + MCA_BUILD_opal_pmix_s1_DSO_TRUE='#' + MCA_BUILD_opal_pmix_s1_DSO_FALSE= fi - ac_config_files="$ac_config_files opal/mca/reachable/weighted/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - # configure components that use built-in configuration scripts - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - opal_show_subsubsubtitle "MCA component reachable:netlink (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component pmix:s2 (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/reachable/netlink" + component_path="$srcdir/opal/mca/pmix/s2" want_component=0 # build if: @@ -172853,8 +172113,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_reachable" ; then - if test "$DIRECT_reachable" = "netlink" ; then + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "s2" ; then want_component=1 else want_component=0 @@ -172863,10 +172123,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_reachable" = "1"; then : + if test "$DISABLE_pmix" = "1"; then : want_component=0 fi - if test "$DISABLE_reachable_netlink" = "1"; then : + if test "$DISABLE_pmix_s2" = "1"; then : want_component=0 fi @@ -172879,11 +172139,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_reachable" - SHARED_COMPONENT="$DSO_reachable_netlink" + SHARED_FRAMEWORK="$DSO_pmix" + SHARED_COMPONENT="$DSO_pmix_s2" - STATIC_FRAMEWORK="$STATIC_reachable" - STATIC_COMPONENT="$STATIC_reachable_netlink" + STATIC_FRAMEWORK="$STATIC_pmix" + STATIC_COMPONENT="$STATIC_pmix_s2" shared_mode_override=static @@ -172901,9 +172161,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component reachable:netlink compile mode" >&5 -$as_echo_n "checking for MCA component reachable:netlink compile mode... " >&6; } - if test "$DIRECT_reachable" = "netlink" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:s2 compile mode" >&5 +$as_echo_n "checking for MCA component pmix:s2 compile mode... " >&6; } + if test "$DIRECT_pmix" = "s2" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -172914,8 +172174,93 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/reachable/netlink/Makefile" + ac_config_files="$ac_config_files opal/mca/pmix/s2/Makefile" + + + + + # Evaluate succeed / fail + if test "$opal_enable_pmi2" = "yes" && test "$opal_check_ugni_happy" = "no"; then : + should_build=$should_build + # need to set the wrapper flags for static builds + pmix_s2_WRAPPER_EXTRA_LDFLAGS="$opal_pmi2_LDFLAGS" + pmix_s2_WRAPPER_EXTRA_LIBS="$opal_pmi2_LIBS" +else + should_build=0 +fi + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/pmix/s2/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components s2" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components s2" + else + if test "pmix" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pmix/s2/lib${OPAL_LIB_PREFIX}mca_pmix_s2.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pmix/s2/libmca_pmix_s2.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_pmix_s2_component;" >> $outfile.extern + echo " &mca_pmix_s2_component, " >> $outfile.struct + static_components="$static_components s2" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:s2 can compile" >&5 +$as_echo_n "checking if MCA component pmix:s2 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pmix" = "s2" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pmix component s2 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pmix" = "s2" ; then +as_fn_error $? "*** pmix component s2 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$pmix_s2_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -172928,7 +172273,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_reachable_netlink_happy; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -172947,7 +172292,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_reachable_netlink_happy\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -172955,28 +172300,47 @@ opal_scope_index=`expr $opal_scope_index + 1` - opal_reachable_netlink_happy=1 - ac_fn_c_check_header_compile "$LINENO" "linux/netlink.h" "ac_cv_header_linux_netlink_h" " -#include -#include - -" -if test "x$ac_cv_header_linux_netlink_h" = xyes; then : - + for arg in $pmix_s2_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_reachable_netlink_happy=0 + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi +fi + done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + - # this is terrible, but libnl-1 and libnl-3 are incompatible in - # weird ways, and once there are libraries in LIBS for one, the - # other is hard to get right. So if someone has already decided - # we have libnl version 1, get out. Otherwise, see if we have - # libnl-3, which is the only version supported by the netlink - # component. - if test $opal_libnl_version -eq 1; then : - opal_reachable_netlink_happy=0 else @@ -172990,7 +172354,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in CPPFLAGS_save opal_tmp_CPPFLAGS LIBS_save LDFLAGS_save; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -173009,74 +172373,57 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"CPPFLAGS_save opal_tmp_CPPFLAGS LIBS_save LDFLAGS_save\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libnl v3" >&5 -$as_echo "$as_me: checking for libnl v3" >&6;} - if test "$opal_want_libnl" != "no"; then : - if test -z "$opal_libnl_location"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /usr/include/libnl3" >&5 -$as_echo_n "checking for /usr/include/libnl3... " >&6; } - if test -d "/usr/include/libnl3"; then : - opal_tmp_CPPFLAGS=-I/usr/include/libnl3 - opal_libnlv3_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /usr/local/include/libnl3" >&5 -$as_echo_n "checking for /usr/local/include/libnl3... " >&6; } - if test -d "/usr/local/include/libnl3"; then : - opal_tmp_CPPFLAGS=-I/usr/local/include/netlink3 - opal_libnlv3_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } -else - opal_libnlv3_happy=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } + for arg in $pmix_s2_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $opal_libnl_location/include/libnl3" >&5 -$as_echo_n "checking for $opal_libnl_location/include/libnl3... " >&6; } - if test -d "$opal_libnl_location/include/libnl3"; then : - opal_tmp_CPPFLAGS="-I$opal_libnl_location/include/libnl3" - opal_libnlv3_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } -else - opal_libnlv3_happy=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi - CPPFLAGS_save=$CPPFLAGS - CPPFLAGS="$opal_tmp_CPPFLAGS $CPPFLAGS" + done - # Random note: netlink/version.h is only in libnl v3 - it is not in libnl v1. - # Also, nl_recvmsgs_report is only in libnl v3. - if test $opal_libnlv3_happy -eq 1; then : - opal_check_package_opal_reachable_netlink_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_opal_reachable_netlink_save_LDFLAGS="$LDFLAGS" - opal_check_package_opal_reachable_netlink_save_LIBS="$LIBS" - - opal_check_package_opal_reachable_netlink_orig_CPPFLAGS="$opal_reachable_netlink_CPPFLAGS" - opal_check_package_opal_reachable_netlink_orig_LDFLAGS="$opal_reachable_netlink_LDFLAGS" - opal_check_package_opal_reachable_netlink_orig_LIBS="$opal_reachable_netlink_LIBS" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$pmix_s2_WRAPPER_EXTRA_LIBS" = ""; then : @@ -173089,7 +172436,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -173108,7 +172455,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -173116,357 +172463,139 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_netlink_version_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $opal_libnl_location | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in netlink/version.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "netlink/version.h" "ac_cv_header_netlink_version_h" "$ac_includes_default" -if test "x$ac_cv_header_netlink_version_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_NETLINK_VERSION_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_netlink_version_h + for arg in $pmix_s2_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - opal_reachable_netlink_CPPFLAGS="$opal_reachable_netlink_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - for ac_header in netlink/version.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "netlink/version.h" "ac_cv_header_netlink_version_h" "$ac_includes_default" -if test "x$ac_cv_header_netlink_version_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_NETLINK_VERSION_H 1 -_ACEOF - opal_check_package_header_happy="yes" fi + done -done - if test "$opal_check_package_header_happy" = "yes"; then : + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # see comment above - unset ac_cv_search_nl_recvmsgs_report - opal_check_package_lib_happy="no" - if test "" != ""; then : - # libdir was specified - search only there - opal_reachable_netlink_LDFLAGS="$opal_reachable_netlink_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_recvmsgs_report" >&5 -$as_echo_n "checking for library containing nl_recvmsgs_report... " >&6; } -if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char nl_recvmsgs_report (); -int -main () -{ -return nl_recvmsgs_report (); - ; - return 0; -} -_ACEOF -for ac_lib in '' nl-3; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_nl_recvmsgs_report=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - break -fi -done -if ${ac_cv_search_nl_recvmsgs_report+:} false; then : -else - ac_cv_search_nl_recvmsgs_report=no + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $pmix_s2_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_recvmsgs_report" >&5 -$as_echo "$ac_cv_search_nl_recvmsgs_report" >&6; } -ac_res=$ac_cv_search_nl_recvmsgs_report -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_lib_happy="no" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_reachable_netlink_save_LDFLAGS" - opal_reachable_netlink_LDFLAGS="$opal_check_package_opal_reachable_netlink_orig_LDFLAGS" - unset ac_cv_search_nl_recvmsgs_report fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$opal_libnl_location" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_recvmsgs_report" >&5 -$as_echo_n "checking for library containing nl_recvmsgs_report... " >&6; } -if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char nl_recvmsgs_report (); -int -main () -{ -return nl_recvmsgs_report (); - ; - return 0; -} -_ACEOF -for ac_lib in '' nl-3; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_nl_recvmsgs_report=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - break -fi -done -if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - -else - ac_cv_search_nl_recvmsgs_report=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_recvmsgs_report" >&5 -$as_echo "$ac_cv_search_nl_recvmsgs_report" >&6; } -ac_res=$ac_cv_search_nl_recvmsgs_report -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_reachable_netlink_save_LDFLAGS" - opal_reachable_netlink_LDFLAGS="$opal_check_package_opal_reachable_netlink_orig_LDFLAGS" - unset ac_cv_search_nl_recvmsgs_report -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_reachable_netlink_LDFLAGS="$opal_reachable_netlink_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_recvmsgs_report" >&5 -$as_echo_n "checking for library containing nl_recvmsgs_report... " >&6; } -if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char nl_recvmsgs_report (); -int -main () -{ -return nl_recvmsgs_report (); - ; - return 0; -} -_ACEOF -for ac_lib in '' nl-3; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_nl_recvmsgs_report=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - break -fi -done -if ${ac_cv_search_nl_recvmsgs_report+:} false; then : -else - ac_cv_search_nl_recvmsgs_report=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_recvmsgs_report" >&5 -$as_echo "$ac_cv_search_nl_recvmsgs_report" >&6; } -ac_res=$ac_cv_search_nl_recvmsgs_report -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_reachable_netlink_save_LDFLAGS" - opal_reachable_netlink_LDFLAGS="$opal_check_package_opal_reachable_netlink_orig_LDFLAGS" - unset ac_cv_search_nl_recvmsgs_report -fi -fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_reachable_netlink_LDFLAGS="$opal_reachable_netlink_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_recvmsgs_report" >&5 -$as_echo_n "checking for library containing nl_recvmsgs_report... " >&6; } -if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char nl_recvmsgs_report (); -int -main () -{ -return nl_recvmsgs_report (); - ; - return 0; -} -_ACEOF -for ac_lib in '' nl-3; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_nl_recvmsgs_report=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - break -fi -done -if ${ac_cv_search_nl_recvmsgs_report+:} false; then : -else - ac_cv_search_nl_recvmsgs_report=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_recvmsgs_report" >&5 -$as_echo "$ac_cv_search_nl_recvmsgs_report" >&6; } -ac_res=$ac_cv_search_nl_recvmsgs_report -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_reachable_netlink_save_LDFLAGS" - opal_reachable_netlink_LDFLAGS="$opal_check_package_opal_reachable_netlink_orig_LDFLAGS" - unset ac_cv_search_nl_recvmsgs_report -fi -fi -fi -fi + fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$pmix_s2_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -173479,7 +172608,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -173498,325 +172627,574 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + for arg in $pmix_s2_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pmix_s2_WRAPPER_EXTRA_CPPFLAGS ($pmix_s2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pmix_s2_WRAPPER_EXTRA_CPPFLAGS ($pmix_s2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi +else - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:s2 can compile" >&5 +$as_echo_n "checking if MCA component pmix:s2 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # If this component was requested as the default for this + # type, then abort. + if test "$with_pmix" = "s2" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"s2\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"s2\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libnl-3 requires libnl v1 or v3" >&5 -$as_echo_n "checking if libnl-3 requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void nl_recvmsgs_report (void); -int main(int argc, char *argv[]) { - nl_recvmsgs_report (); - return 0; -} -EOF + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "s2" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"s2\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"s2\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # add component to all component list + all_components="$all_components s2" +fi -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:173574: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lnl-3 $LIBS $opal_reachable_netlink_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lnl-3 $LIBS $opal_reachable_netlink_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:173581: \$? = $opal_status" >&5 + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_pmix_s2_DSO=1 else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" + BUILD_opal_pmix_s2_DSO=0 fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" + if test "$BUILD_opal_pmix_s2_DSO" = "1"; then + MCA_BUILD_opal_pmix_s2_DSO_TRUE= + MCA_BUILD_opal_pmix_s2_DSO_FALSE='#' +else + MCA_BUILD_opal_pmix_s2_DSO_TRUE='#' + MCA_BUILD_opal_pmix_s2_DSO_FALSE= fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib nl-3" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib nl-3" >&2;} + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 fi - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 + unset compile_mode - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libnl-3 links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libnl-3 links to both libnl and libnl-3." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libnl-3 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libnl-3 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libnl-3." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libnl-3." >&2;} - libnl_sane=0 -fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas nl-3 requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas nl-3 requires libnl" >&2;} + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libnl-3 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libnl-3 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libnl-3." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libnl-3." >&2;} - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs nl-3" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs + if test "1" != "0"; then : -# Go through each item in the variable and only keep the unique ones + for component_path in $srcdir/opal/mca/pmix/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component pmix:$component (need to configure)" -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + component_path="$srcdir/opal/mca/pmix/$component" + want_component=0 - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - # Check the ending condition + # if we were explicitly disabled, don't build :) + if test "$DISABLE_pmix" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_pmix_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi - opal_done="`expr $opal_i \>= $opal_count`" + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + SHARED_FRAMEWORK="$DSO_pmix" + str="SHARED_COMPONENT=\$DSO_pmix_$component" + eval $str - # If we didn't find the token, add it to the "array" + STATIC_FRAMEWORK="$STATIC_pmix" + str="STATIC_COMPONENT=\$STATIC_pmix_$component" + eval $str - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" else - opal_i="`expr $opal_i - 1`" + compile_mode="static" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pmix:$component compile mode" >&5 +$as_echo_n "checking for MCA component pmix:$component compile mode... " >&6; } + if test "$DIRECT_pmix" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + if test "$should_build" = "1" ; then - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libnl-3 requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libnl-3 requires libnl-3" >&2;} + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libnl-3 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libnl-3 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libnl-3." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libnl-3." >&2;} - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs nl-3" +# +# Invoke configure in a specific subdirectory. +# +# opal/mca/pmix/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="opal/mca/pmix/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs +# +# Sanity checks +# -# Go through each item in the variable and only keep the unique ones +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # - # Loop over every token we've seen so far + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # + # Move into the target directory + # - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + subdir_parent=`pwd` + cd $subdir_dir - # Check the ending condition + # + # Make a "../" for each directory in $subdir_dir. + # - opal_done="`expr $opal_i \>= $opal_count`" + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - # Increment the counter + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac - opal_i="`expr $opal_i + 1`" + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # If we didn't find the token, add it to the "array" + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/opal/mca/pmix/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + pmix_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + pmix_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/pmix/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" else - opal_i="`expr $opal_i - 1`" + if test "pmix" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pmix/$component/lib${OPAL_LIB_PREFIX}mca_pmix_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pmix/$component/libmca_pmix_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_pmix_$component_component;" >> $outfile.extern + echo " &mca_pmix_$component_component, " >> $outfile.struct + static_components="$static_components $component" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:$component can compile" >&5 +$as_echo_n "checking if MCA component pmix:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pmix" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_pmix_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pmix component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pmix" = "$component" ; then +as_fn_error $? "*** pmix component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$pmix_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -173839,11 +173217,66 @@ unset $opal_var done +str="line=\$pmix_$component_WRAPPER_EXTRA_LIBS" + eval "$str" - ;; - esac - opal_check_package_libnl_check_ok=$opal_libnl_sane + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -173866,682 +173299,458 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_nl_recvmsgs_report" != "no" && - test "$ac_cv_search_nl_recvmsgs_report" != "none required"; then : - opal_reachable_netlink_LIBS="$ac_cv_search_nl_recvmsgs_report " -else - opal_reachable_netlink_LIBS="" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi + fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... -else - opal_check_package_happy="no" -fi -else - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pmix:$component can compile" >&5 +$as_echo_n "checking if MCA component pmix:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # see comment above - unset ac_cv_search_nl_recvmsgs_report - opal_check_package_lib_happy="no" - if test "" != ""; then : - # libdir was specified - search only there - opal_reachable_netlink_LDFLAGS="$opal_reachable_netlink_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_recvmsgs_report" >&5 -$as_echo_n "checking for library containing nl_recvmsgs_report... " >&6; } -if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # If this component was requested as the default for this + # type, then abort. + if test "$with_pmix" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char nl_recvmsgs_report (); -int -main () -{ -return nl_recvmsgs_report (); - ; - return 0; -} -_ACEOF -for ac_lib in '' nl-3; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_nl_recvmsgs_report=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - break -fi -done -if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + if test ! -z "$DIRECT_pmix" ; then + if test "$DIRECT_pmix" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi -else - ac_cv_search_nl_recvmsgs_report=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_recvmsgs_report" >&5 -$as_echo "$ac_cv_search_nl_recvmsgs_report" >&6; } -ac_res=$ac_cv_search_nl_recvmsgs_report -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + fi + fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_reachable_netlink_save_LDFLAGS" - opal_reachable_netlink_LDFLAGS="$opal_check_package_opal_reachable_netlink_orig_LDFLAGS" - unset ac_cv_search_nl_recvmsgs_report fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$opal_libnl_location" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_recvmsgs_report" >&5 -$as_echo_n "checking for library containing nl_recvmsgs_report... " >&6; } -if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char nl_recvmsgs_report (); -int -main () -{ -return nl_recvmsgs_report (); - ; - return 0; -} -_ACEOF -for ac_lib in '' nl-3; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_nl_recvmsgs_report=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - break -fi -done -if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + MCA_opal_pmix_ALL_COMPONENTS="$all_components" + MCA_opal_pmix_STATIC_COMPONENTS="$static_components" + MCA_opal_pmix_DSO_COMPONENTS="$dso_components" + MCA_opal_pmix_STATIC_LTLIBS="$static_ltlibs" -else - ac_cv_search_nl_recvmsgs_report=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_recvmsgs_report" >&5 -$as_echo "$ac_cv_search_nl_recvmsgs_report" >&6; } -ac_res=$ac_cv_search_nl_recvmsgs_report -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_reachable_netlink_save_LDFLAGS" - opal_reachable_netlink_LDFLAGS="$opal_check_package_opal_reachable_netlink_orig_LDFLAGS" - unset ac_cv_search_nl_recvmsgs_report -fi -fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_reachable_netlink_LDFLAGS="$opal_reachable_netlink_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_recvmsgs_report" >&5 -$as_echo_n "checking for library containing nl_recvmsgs_report... " >&6; } -if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char nl_recvmsgs_report (); -int -main () -{ -return nl_recvmsgs_report (); - ; - return 0; -} -_ACEOF -for ac_lib in '' nl-3; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_nl_recvmsgs_report=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - break -fi -done -if ${ac_cv_search_nl_recvmsgs_report+:} false; then : -else - ac_cv_search_nl_recvmsgs_report=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_recvmsgs_report" >&5 -$as_echo "$ac_cv_search_nl_recvmsgs_report" >&6; } -ac_res=$ac_cv_search_nl_recvmsgs_report -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_reachable_netlink_save_LDFLAGS" - opal_reachable_netlink_LDFLAGS="$opal_check_package_opal_reachable_netlink_orig_LDFLAGS" - unset ac_cv_search_nl_recvmsgs_report -fi -fi -fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_reachable_netlink_LDFLAGS="$opal_reachable_netlink_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_recvmsgs_report" >&5 -$as_echo_n "checking for library containing nl_recvmsgs_report... " >&6; } -if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + MCA_opal_pmix_ALL_SUBDIRS= + for item in $all_components ; do + MCA_opal_pmix_ALL_SUBDIRS="$MCA_opal_pmix_ALL_SUBDIRS mca/pmix/$item" + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char nl_recvmsgs_report (); -int -main () -{ -return nl_recvmsgs_report (); - ; - return 0; -} -_ACEOF -for ac_lib in '' nl-3; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_nl_recvmsgs_report=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - break -fi -done -if ${ac_cv_search_nl_recvmsgs_report+:} false; then : -else - ac_cv_search_nl_recvmsgs_report=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_recvmsgs_report" >&5 -$as_echo "$ac_cv_search_nl_recvmsgs_report" >&6; } -ac_res=$ac_cv_search_nl_recvmsgs_report -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_reachable_netlink_save_LDFLAGS" - opal_reachable_netlink_LDFLAGS="$opal_check_package_opal_reachable_netlink_orig_LDFLAGS" - unset ac_cv_search_nl_recvmsgs_report -fi -fi -fi -fi + MCA_opal_pmix_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_opal_pmix_STATIC_SUBDIRS="$MCA_opal_pmix_STATIC_SUBDIRS mca/pmix/$item" + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + MCA_opal_pmix_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_opal_pmix_DSO_SUBDIRS="$MCA_opal_pmix_DSO_SUBDIRS mca/pmix/$item" + done - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "pmix" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + unset all_components static_components dso_components outfile outfile_real - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS pstat" + MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/pstat" + MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_pstat_ALL_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_pstat_DSO_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_pstat_STATIC_SUBDIRS)" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/pstat/libmca_pstat.la" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_pstat_STATIC_LTLIBS)" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_show_subsubtitle "Configuring MCA framework pstat" - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=opal/mca/pstat/base + as_dir=$outdir; as_fn_mkdir_p + # emit Makefile rule + ac_config_files="$ac_config_files opal/mca/pstat/Makefile" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libnl-3 requires libnl v1 or v3" >&5 -$as_echo_n "checking if libnl-3 requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void nl_recvmsgs_report (void); -int main(int argc, char *argv[]) { - nl_recvmsgs_report (); - return 0; -} -EOF - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:174299: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lnl-3 $LIBS $opal_reachable_netlink_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lnl-3 $LIBS $opal_reachable_netlink_LIBS 1>&5 2>&1 -opal_status=$? + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework pstat" >&5 +$as_echo_n "checking for no configure components in framework pstat... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework pstat" >&5 +$as_echo_n "checking for m4 configure components in framework pstat... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: linux, test" >&5 +$as_echo "linux, test" >&6; } -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:174306: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib nl-3" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib nl-3" >&2;} -fi - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 + # run the configure logic for the no-config components - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libnl-3 links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libnl-3 links to both libnl and libnl-3." >&2;} + # configure components that use built-in configuration scripts - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libnl-3 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libnl-3 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libnl-3." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libnl-3." >&2;} - libnl_sane=0 -fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas nl-3 requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas nl-3 requires libnl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libnl-3 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libnl-3 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libnl-3." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libnl-3." >&2;} - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs nl-3" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + if test $best_mca_component_priority -gt 60; then : + components_looking_for_succeed=0 +fi -# Go through each item in the variable and only keep the unique ones + opal_show_subsubsubtitle "MCA component pstat:linux (m4 configuration macro, priority 60)" -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + component_path="$srcdir/opal/mca/pstat/linux" + want_component=0 - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_pstat" ; then + if test "$DIRECT_pstat" = "linux" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - # Check the ending condition + # if we were explicitly disabled, don't build :) + if test "$DISABLE_pstat" = "1"; then : + want_component=0 +fi + if test "$DISABLE_pstat_linux" = "1"; then : + want_component=0 +fi - opal_done="`expr $opal_i \>= $opal_count`" + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi - # Increment the counter + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - opal_i="`expr $opal_i + 1`" - done + SHARED_FRAMEWORK="$DSO_pstat" + SHARED_COMPONENT="$DSO_pstat_linux" - # If we didn't find the token, add it to the "array" + STATIC_FRAMEWORK="$STATIC_pstat" + STATIC_COMPONENT="$STATIC_pstat_linux" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" else - opal_i="`expr $opal_i - 1`" + compile_mode="static" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pstat:linux compile mode" >&5 +$as_echo_n "checking for MCA component pstat:linux compile mode... " >&6; } + if test "$DIRECT_pstat" = "linux" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # try to configure the component - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + ac_config_files="$ac_config_files opal/mca/pstat/linux/Makefile" -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + case "${host}" in + i?86-*linux*|x86_64*linux*|ia64-*linux*|powerpc-*linux*|powerpc64-*linux*|powerpc64le-*linux*|powerpcle-*linux*|sparc*-*linux*) + if test -r "/proc/cpuinfo"; then : + pstat_linux_happy="yes" +else + pstat_linux_happy="no" +fi + ;; + *) + pstat_linux_happy="no" + ;; + esac -# Clean up + if test "$pstat_linux_happy" = "yes"; then : + ac_fn_c_check_decl "$LINENO" "HZ" "ac_cv_have_decl_HZ" "$ac_includes_default +#include -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 +" +if test "x$ac_cv_have_decl_HZ" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_HZ $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libnl-3 requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libnl-3 requires libnl-3" >&2;} +else + pstat_linux_happy="no" +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libnl-3 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libnl-3 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libnl-3." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libnl-3." >&2;} +fi - libnl_sane=0 + if test "$pstat_linux_happy" = "yes"; then : + should_build=$should_build else - opal_libnlv3_libs="$opal_libnlv3_libs nl-3" + should_build=0 +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" -# Go through each item in the variable and only keep the unique ones + if test "$should_build" = "1"; then : -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/pstat/linux/post_configure.sh" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components linux" - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components linux" + else + if test "pstat" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pstat/linux/lib${OPAL_LIB_PREFIX}mca_pstat_linux.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pstat/linux/libmca_pstat_linux.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_pstat_linux_component;" >> $outfile.extern + echo " &mca_pstat_linux_component, " >> $outfile.struct + static_components="$static_components linux" + fi - # Check the ending condition + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pstat:linux can compile" >&5 +$as_echo_n "checking if MCA component pstat:linux can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - opal_done="`expr $opal_i \>= $opal_count`" + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pstat" = "linux" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_pstat_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pstat component linux was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pstat" = "linux" ; then +as_fn_error $? "*** pstat component linux was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - # Increment the counter + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$pstat_linux_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Done; do the assignment + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 + for arg in $pstat_linux_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - + done fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -174565,10 +173774,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $pstat_linux_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -174591,28 +173855,65 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no fi + if test "$pstat_linux_WRAPPER_EXTRA_LIBS" = ""; then : -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_nl_recvmsgs_report" != "no" && - test "$ac_cv_search_nl_recvmsgs_report" != "none required"; then : - opal_reachable_netlink_LIBS="$ac_cv_search_nl_recvmsgs_report " -else - opal_reachable_netlink_LIBS="" + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $pstat_linux_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -174636,157 +173937,64 @@ done - - if test "$opal_check_package_happy" = "yes"; then : - else - opal_reachable_netlink_CPPFLAGS="$opal_check_package_opal_reachable_netlink_orig_CPPFLAGS" - opal_reachable_netlink_LDFLAGS="$opal_check_package_opal_reachable_netlink_orig_LDFLAGS" - opal_reachable_netlink_LIBS="$opal_check_package_opal_reachable_netlink_orig_LIBS" - opal_libnlv3_happy=0 -fi - CPPFLAGS="$opal_check_package_opal_reachable_netlink_save_CPPFLAGS" - LDFLAGS="$opal_check_package_opal_reachable_netlink_save_LDFLAGS" - LIBS="$opal_check_package_opal_reachable_netlink_save_LIBS" - # Note that OPAL_CHECK_PACKAGE is going to add - # -I$dir/include into opal_reachable_netlink_CPPFLAGS. But because libnl v3 - # puts the headers in $dir/include/libnl3, we need to - # overwrite opal_reachable_netlink_CPPFLAGS with -I$dir/include/libnl3. We can do - # this unconditionally; we don't have to check for - # success (checking for success occurs below). - opal_reachable_netlink_CPPFLAGS=$opal_tmp_CPPFLAGS -fi - - # If we found libnl-3, we *also* need libnl-route-3 - LIBS_save=$LIBS - LDFLAGS_save=$LDFLAGS - if test -n "$opal_reachable_netlink_LDFLAGS"; then : - LDFLAGS="$opal_reachable_netlink_LDFLAGS $LDFLAGS" -fi - if test $opal_libnlv3_happy -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_rtgen_request" >&5 -$as_echo_n "checking for library containing nl_rtgen_request... " >&6; } -if ${ac_cv_search_nl_rtgen_request+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char nl_rtgen_request (); -int -main () -{ -return nl_rtgen_request (); - ; - return 0; -} -_ACEOF -for ac_lib in '' nl-route-3; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_nl_rtgen_request=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_nl_rtgen_request+:} false; then : - break -fi -done -if ${ac_cv_search_nl_rtgen_request+:} false; then : - -else - ac_cv_search_nl_rtgen_request=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_rtgen_request" >&5 -$as_echo "$ac_cv_search_nl_rtgen_request" >&6; } -ac_res=$ac_cv_search_nl_rtgen_request -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -else - opal_libnlv3_happy=0 -fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -fi - LIBS=$LIBS_save - LDFLAGS=$LDFLAGS_save + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # Just because libnl* is evil, double check that the - # netlink/version.h we found was for libnl v3. As far as we - # know, netlink/version.h only first appeared in version - # 3... but let's really be sure. - if test $opal_libnlv3_happy -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking to ensure these really are libnl v3 headers" >&5 -$as_echo_n "checking to ensure these really are libnl v3 headers... " >&6; } - if test -n "$opal_reachable_netlink_CPPFLAGS"; then : - CPPFLAGS="$opal_reachable_netlink_CPPFLAGS $CPPFLAGS" -fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -#include -#include -#ifndef LIBNL_VER_MAJ -#error "LIBNL_VER_MAJ not defined!" -#endif -/* to the best of our knowledge, version.h only exists in libnl v3 */ -#if LIBNL_VER_MAJ != 3 -#error "LIBNL_VER_MAJ != 3, I am sad" -#endif + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -int -main () -{ - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_libnlv3_happy=0 + for arg in $pstat_linux_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done fi - - CPPFLAGS=$CPPFLAGS_save + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_libnlv3_happy=0 + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - - # If we found everything - if test $opal_libnlv3_happy -eq 1; then : - opal_reachable_netlink_LIBS="-lnl-3 -lnl-route-3" - OPAL_HAVE_LIBNL3=1 -else - # OPAL_CHECK_PACKAGE(...,nl_recvmsgs_report,...) might have set the variables below - # so reset them if libnl v3 cannot be used - opal_reachable_netlink_CPPFLAGS="" - opal_reachable_netlink_LDFLAGS="" - opal_reachable_netlink_LIBS="" fi + done # Unwind the index @@ -174810,20 +174018,74 @@ done - if test "$OPAL_HAVE_LIBNL3" != "1"; then : - opal_reachable_netlink_happy=0 -fi fi - if test $opal_reachable_netlink_happy -eq 1; then : - should_build=$should_build -else - should_build=0 -fi + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$pstat_linux_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + for arg in $pstat_linux_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done # Unwind the index @@ -174847,6 +174109,186 @@ done +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pstat_linux_WRAPPER_EXTRA_CPPFLAGS ($pstat_linux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pstat_linux_WRAPPER_EXTRA_CPPFLAGS ($pstat_linux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pstat:linux can compile" >&5 +$as_echo_n "checking if MCA component pstat:linux can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_pstat" = "linux" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"linux\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_pstat" ; then + if test "$DIRECT_pstat" = "linux" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"linux\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components linux" +fi + + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_pstat_linux_DSO=1 +else + BUILD_opal_pstat_linux_DSO=0 +fi + if test "$BUILD_opal_pstat_linux_DSO" = "1"; then + MCA_BUILD_opal_pstat_linux_DSO_TRUE= + MCA_BUILD_opal_pstat_linux_DSO_FALSE='#' +else + MCA_BUILD_opal_pstat_linux_DSO_TRUE='#' + MCA_BUILD_opal_pstat_linux_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + + if test $components_last_result -eq 1; then : + best_mca_component_priority=60 +fi + if test $best_mca_component_priority -gt 10; then : + components_looking_for_succeed=0 +fi + + opal_show_subsubsubtitle "MCA component pstat:test (m4 configuration macro, priority 10)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/opal/mca/pstat/test" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_pstat" ; then + if test "$DIRECT_pstat" = "test" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_pstat" = "1"; then : + want_component=0 +fi + if test "$DISABLE_pstat_test" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + SHARED_FRAMEWORK="$DSO_pstat" + SHARED_COMPONENT="$DSO_pstat_test" + + STATIC_FRAMEWORK="$STATIC_pstat" + STATIC_COMPONENT="$STATIC_pstat_test" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pstat:test compile mode" >&5 +$as_echo_n "checking for MCA component pstat:test compile mode... " >&6; } + if test "$DIRECT_pstat" = "test" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/pstat/test/Makefile" + + + pstat_test_happy="yes" + if test "$pstat_test_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -174855,45 +174297,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/reachable/netlink/post_configure.sh" + infile="$srcdir/opal/mca/pstat/test/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components netlink" + all_components="$all_components test" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components netlink" + dso_components="$dso_components test" else - if test "reachable" = "common"; then + if test "pstat" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/reachable/netlink/lib${OPAL_LIB_PREFIX}mca_reachable_netlink.la $static_ltlibs" + static_ltlibs="mca/pstat/test/lib${OPAL_LIB_PREFIX}mca_pstat_test.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/reachable/netlink/libmca_reachable_netlink.la $static_ltlibs" + static_ltlibs="mca/pstat/test/libmca_pstat_test.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_reachable_netlink_component;" >> $outfile.extern - echo " &mca_reachable_netlink_component, " >> $outfile.struct - static_components="$static_components netlink" + echo "extern const mca_base_component_t mca_pstat_test_component;" >> $outfile.extern + echo " &mca_pstat_test_component, " >> $outfile.struct + static_components="$static_components test" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component reachable:netlink can compile" >&5 -$as_echo_n "checking if MCA component reachable:netlink can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pstat:test can compile" >&5 +$as_echo_n "checking if MCA component pstat:test can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_reachable" = "netlink" ; then + if test "$DIRECT_pstat" = "test" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_reachable_DIRECT_CALL_HEADER=$line" + str="MCA_opal_pstat_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** reachable component netlink was supposed to be direct-called, but +as_fn_error $? "*** pstat component test was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -174901,8 +174343,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_reachable" = "netlink" ; then -as_fn_error $? "*** reachable component netlink was supposed to be direct-called, but + if test "$DIRECT_pstat" = "test" ; then +as_fn_error $? "*** pstat component test was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -174917,7 +174359,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$reachable_netlink_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$pstat_test_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -174957,7 +174399,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $reachable_netlink_LDFLAGS; do + for arg in $pstat_test_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -175038,7 +174480,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $reachable_netlink_WRAPPER_EXTRA_LDFLAGS; do + for arg in $pstat_test_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -175080,7 +174522,7 @@ fi - if test "$reachable_netlink_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$pstat_test_WRAPPER_EXTRA_LIBS" = ""; then : @@ -175120,7 +174562,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $reachable_netlink_LIBS; do + for arg in $pstat_test_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -175201,7 +174643,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $reachable_netlink_WRAPPER_EXTRA_LIBS; do + for arg in $pstat_test_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -175249,7 +174691,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$reachable_netlink_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$pstat_test_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -175292,7 +174734,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $reachable_netlink_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $pstat_test_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -175335,32 +174777,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring reachable_netlink_WRAPPER_EXTRA_CPPFLAGS ($reachable_netlink_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring reachable_netlink_WRAPPER_EXTRA_CPPFLAGS ($reachable_netlink_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pstat_test_WRAPPER_EXTRA_CPPFLAGS ($pstat_test_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pstat_test_WRAPPER_EXTRA_CPPFLAGS ($pstat_test_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component reachable:netlink can compile" >&5 -$as_echo_n "checking if MCA component reachable:netlink can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pstat:test can compile" >&5 +$as_echo_n "checking if MCA component pstat:test can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_reachable" = "netlink" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"netlink\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"netlink\" failed to configure properly" >&2;} + if test "$with_pstat" = "test" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"test\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"test\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_reachable" ; then - if test "$DIRECT_reachable" = "netlink" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"netlink\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"netlink\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_pstat" ; then + if test "$DIRECT_pstat" = "test" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"test\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"test\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -175368,23 +174810,23 @@ fi # add component to all component list - all_components="$all_components netlink" + all_components="$all_components test" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_reachable_netlink_DSO=1 + BUILD_opal_pstat_test_DSO=1 else - BUILD_opal_reachable_netlink_DSO=0 + BUILD_opal_pstat_test_DSO=0 fi - if test "$BUILD_opal_reachable_netlink_DSO" = "1"; then - MCA_BUILD_opal_reachable_netlink_DSO_TRUE= - MCA_BUILD_opal_reachable_netlink_DSO_FALSE='#' + if test "$BUILD_opal_pstat_test_DSO" = "1"; then + MCA_BUILD_opal_pstat_test_DSO_TRUE= + MCA_BUILD_opal_pstat_test_DSO_FALSE='#' else - MCA_BUILD_opal_reachable_netlink_DSO_TRUE='#' - MCA_BUILD_opal_reachable_netlink_DSO_FALSE= + MCA_BUILD_opal_pstat_test_DSO_TRUE='#' + MCA_BUILD_opal_pstat_test_DSO_FALSE= fi @@ -175397,7 +174839,9 @@ unset compile_mode - + if test $components_last_result -eq 1; then : + best_mca_component_priority=10 +fi # configure components that provide their own configure script. @@ -175405,19 +174849,139 @@ # works", so we don't :) + MCA_opal_pstat_ALL_COMPONENTS="$all_components" + MCA_opal_pstat_STATIC_COMPONENTS="$static_components" + MCA_opal_pstat_DSO_COMPONENTS="$dso_components" + MCA_opal_pstat_STATIC_LTLIBS="$static_ltlibs" - if test "1" != "0"; then : - for component_path in $srcdir/opal/mca/reachable/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component reachable:$component (need to configure)" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/opal/mca/reachable/$component" + + MCA_opal_pstat_ALL_SUBDIRS= + for item in $all_components ; do + MCA_opal_pstat_ALL_SUBDIRS="$MCA_opal_pstat_ALL_SUBDIRS mca/pstat/$item" + done + + + + MCA_opal_pstat_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_opal_pstat_STATIC_SUBDIRS="$MCA_opal_pstat_STATIC_SUBDIRS mca/pstat/$item" + done + + + + MCA_opal_pstat_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_opal_pstat_DSO_SUBDIRS="$MCA_opal_pstat_DSO_SUBDIRS mca/pstat/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "pstat" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS rcache" + MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/rcache" + MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_rcache_ALL_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_rcache_DSO_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_rcache_STATIC_SUBDIRS)" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/rcache/libmca_rcache.la" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_rcache_STATIC_LTLIBS)" + + opal_show_subsubtitle "Configuring MCA framework rcache" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=opal/mca/rcache/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files opal/mca/rcache/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework rcache" >&5 +$as_echo_n "checking for no configure components in framework rcache... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: grdma" >&5 +$as_echo "grdma" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework rcache" >&5 +$as_echo_n "checking for m4 configure components in framework rcache... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: gpusm, rgpusm, udreg" >&5 +$as_echo "gpusm, rgpusm, udreg" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + opal_show_subsubsubtitle "MCA component rcache:grdma (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/opal/mca/rcache/grdma" want_component=0 # build if: @@ -175449,8 +175013,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_reachable" ; then - if test "$DIRECT_reachable" = "$component" ; then + if test ! -z "$DIRECT_rcache" ; then + if test "$DIRECT_rcache" = "grdma" ; then want_component=1 else want_component=0 @@ -175459,14 +175023,12 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_reachable" = "1"; then : + if test "$DISABLE_rcache" = "1"; then : + want_component=0 +fi + if test "$DISABLE_rcache_grdma" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_reachable_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi if test "$want_component" = "1"; then : should_build=1 @@ -175475,13 +175037,11 @@ fi - SHARED_FRAMEWORK="$DSO_reachable" - str="SHARED_COMPONENT=\$DSO_reachable_$component" - eval $str + SHARED_FRAMEWORK="$DSO_rcache" + SHARED_COMPONENT="$DSO_rcache_grdma" - STATIC_FRAMEWORK="$STATIC_reachable" - str="STATIC_COMPONENT=\$STATIC_reachable_$component" - eval $str + STATIC_FRAMEWORK="$STATIC_rcache" + STATIC_COMPONENT="$STATIC_rcache_grdma" shared_mode_override=static @@ -175499,9 +175059,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component reachable:$component compile mode" >&5 -$as_echo_n "checking for MCA component reachable:$component compile mode... " >&6; } - if test "$DIRECT_reachable" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rcache:grdma compile mode" >&5 +$as_echo_n "checking for MCA component rcache:grdma compile mode... " >&6; } + if test "$DIRECT_rcache" = "grdma" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -175509,9 +175069,77 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/rcache/grdma/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components grdma" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components grdma" + else + if test "rcache" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/rcache/grdma/lib${OPAL_LIB_PREFIX}mca_rcache_grdma.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/rcache/grdma/libmca_rcache_grdma.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_rcache_grdma_component;" >> $outfile.extern + echo " &mca_rcache_grdma_component, " >> $outfile.struct + static_components="$static_components grdma" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:grdma can compile" >&5 +$as_echo_n "checking if MCA component rcache:grdma can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_rcache" = "grdma" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_rcache_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** rcache component grdma was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_rcache" = "grdma" ; then +as_fn_error $? "*** rcache component grdma was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$rcache_grdma_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -175524,7 +175152,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -175543,7 +175171,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -175551,129 +175179,105 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# opal/mca/reachable/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="opal/mca/reachable/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# + for arg in $rcache_grdma_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # - # Move into the target directory - # - subdir_parent=`pwd` - cd $subdir_dir +else - # - # Make a "../" for each directory in $subdir_dir. - # - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # - # Construct the --cache-file argument - # + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # - # Invoke the configure script in the subdirectory - # + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - # - # Go back to the topdir - # - cd $subdir_parent + for arg in $rcache_grdma_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - -# -# Clean up -# + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -175696,105 +175300,9 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/opal/mca/reachable/all_components/post_configure.sh" - if test -f $infile; then - - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - reachable_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - reachable_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi - - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/reachable/$component/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "reachable" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/reachable/$component/lib${OPAL_LIB_PREFIX}mca_reachable_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/reachable/$component/libmca_reachable_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_reachable_$component_component;" >> $outfile.extern - echo " &mca_reachable_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component reachable:$component can compile" >&5 -$as_echo_n "checking if MCA component reachable:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_reachable" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_reachable_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** reachable component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_reachable" = "$component" ; then -as_fn_error $? "*** reachable component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$reachable_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" +fi + if test "$rcache_grdma_WRAPPER_EXTRA_LIBS" = ""; then : @@ -175834,21 +175342,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $rcache_grdma_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -175874,8 +175382,8 @@ unset $opal_var done -str="line=\$reachable_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + +else @@ -175915,7 +175423,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $rcache_grdma_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -175956,171 +175464,154 @@ done +fi + fi # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... + if test "$rcache_grdma_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component reachable:$component can compile" >&5 -$as_echo_n "checking if MCA component reachable:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_reachable" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - if test ! -z "$DIRECT_reachable" ; then - if test "$DIRECT_reachable" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi done -fi - - MCA_opal_reachable_ALL_COMPONENTS="$all_components" - MCA_opal_reachable_STATIC_COMPONENTS="$static_components" - MCA_opal_reachable_DSO_COMPONENTS="$dso_components" - MCA_opal_reachable_STATIC_LTLIBS="$static_ltlibs" - - - - + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - MCA_opal_reachable_ALL_SUBDIRS= - for item in $all_components ; do - MCA_opal_reachable_ALL_SUBDIRS="$MCA_opal_reachable_ALL_SUBDIRS mca/reachable/$item" + for arg in $rcache_grdma_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - MCA_opal_reachable_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_opal_reachable_STATIC_SUBDIRS="$MCA_opal_reachable_STATIC_SUBDIRS mca/reachable/$item" - done - - + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - MCA_opal_reachable_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_opal_reachable_DSO_SUBDIRS="$MCA_opal_reachable_DSO_SUBDIRS mca/reachable/$item" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rcache_grdma_WRAPPER_EXTRA_CPPFLAGS ($rcache_grdma_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring rcache_grdma_WRAPPER_EXTRA_CPPFLAGS ($rcache_grdma_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "reachable" != "common"; then - cat > $outfile <&5 +$as_echo_n "checking if MCA component rcache:grdma can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -#if defined(c_plusplus) || defined(__cplusplus) -} -#endif + # If this component was requested as the default for this + # type, then abort. + if test "$with_rcache" = "grdma" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"grdma\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"grdma\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -EOF - # Only replace the header file if a) it doesn't previously - # exist, or b) the contents are different. Do this to not - # trigger recompilation of certain .c files just because the - # timestamp changed on $outfile_real (similar to the way AC - # handles AC_CONFIG_HEADER files). - diff $outfile $outfile_real > /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile + if test ! -z "$DIRECT_rcache" ; then + if test "$DIRECT_rcache" = "grdma" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"grdma\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"grdma\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS shmem" - MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/shmem" - MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_shmem_ALL_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_shmem_DSO_SUBDIRS)" - MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_shmem_STATIC_SUBDIRS)" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/shmem/libmca_shmem.la" - MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_shmem_STATIC_LTLIBS)" - - opal_show_subsubtitle "Configuring MCA framework shmem" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=opal/mca/shmem/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files opal/mca/shmem/Makefile" - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern + # add component to all component list + all_components="$all_components grdma" + fi - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework shmem" >&5 -$as_echo_n "checking for no configure components in framework shmem... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework shmem" >&5 -$as_echo_n "checking for m4 configure components in framework shmem... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: mmap, posix, sysv" >&5 -$as_echo "mmap, posix, sysv" >&6; } + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_opal_rcache_grdma_DSO=1 + else + BUILD_opal_rcache_grdma_DSO=0 + fi + if test "$BUILD_opal_rcache_grdma_DSO" = "1"; then + MCA_BUILD_opal_rcache_grdma_DSO_TRUE= + MCA_BUILD_opal_rcache_grdma_DSO_FALSE='#' +else + MCA_BUILD_opal_rcache_grdma_DSO_TRUE='#' + MCA_BUILD_opal_rcache_grdma_DSO_FALSE= +fi - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + ac_config_files="$ac_config_files opal/mca/rcache/grdma/Makefile" - # run the configure logic for the no-config components + unset compile_mode # configure components that use built-in configuration scripts @@ -176132,13 +175623,13 @@ components_last_result=0 - opal_show_subsubsubtitle "MCA component shmem:mmap (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component rcache:gpusm (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/shmem/mmap" + component_path="$srcdir/opal/mca/rcache/gpusm" want_component=0 # build if: @@ -176170,8 +175661,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_shmem" ; then - if test "$DIRECT_shmem" = "mmap" ; then + if test ! -z "$DIRECT_rcache" ; then + if test "$DIRECT_rcache" = "gpusm" ; then want_component=1 else want_component=0 @@ -176180,10 +175671,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_shmem" = "1"; then : + if test "$DISABLE_rcache" = "1"; then : want_component=0 fi - if test "$DISABLE_shmem_mmap" = "1"; then : + if test "$DISABLE_rcache_gpusm" = "1"; then : want_component=0 fi @@ -176196,11 +175687,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_shmem" - SHARED_COMPONENT="$DSO_shmem_mmap" + SHARED_FRAMEWORK="$DSO_rcache" + SHARED_COMPONENT="$DSO_rcache_gpusm" - STATIC_FRAMEWORK="$STATIC_shmem" - STATIC_COMPONENT="$STATIC_shmem_mmap" + STATIC_FRAMEWORK="$STATIC_rcache" + STATIC_COMPONENT="$STATIC_rcache_gpusm" shared_mode_override=static @@ -176218,9 +175709,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component shmem:mmap compile mode" >&5 -$as_echo_n "checking for MCA component shmem:mmap compile mode... " >&6; } - if test "$DIRECT_shmem" = "mmap" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rcache:gpusm compile mode" >&5 +$as_echo_n "checking for MCA component rcache:gpusm compile mode... " >&6; } + if test "$DIRECT_rcache" = "gpusm" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -176231,101 +175722,17 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/shmem/mmap/Makefile" - - - # do we have the mmap shm stuff? - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if want mmap shared memory support" >&5 -$as_echo_n "checking if want mmap shared memory support... " >&6; } - # Check whether --enable-mmap-shmem was given. -if test "${enable_mmap_shmem+set}" = set; then : - enableval=$enable_mmap_shmem; -fi - - if test "$enable_mmap_shmem" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - shmem_mmap_sm_build_mmap=0 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mmap" >&5 -$as_echo_n "checking for library containing mmap... " >&6; } -if ${ac_cv_search_mmap+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char mmap (); -int -main () -{ -return mmap (); - ; - return 0; -} -_ACEOF -for ac_lib in '' c; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_mmap=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_mmap+:} false; then : - break -fi -done -if ${ac_cv_search_mmap+:} false; then : - -else - ac_cv_search_mmap=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mmap" >&5 -$as_echo "$ac_cv_search_mmap" >&6; } -ac_res=$ac_cv_search_mmap -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - shmem_mmap_sm_build_mmap=1 -else - shmem_mmap_sm_build_mmap=0 -fi + ac_config_files="$ac_config_files opal/mca/rcache/gpusm/Makefile" -fi - if test "$enable_mmap_shmem" = "yes" && test "$shmem_mmap_sm_build_mmap" = "0"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: mmap shared memory support requested but not found" >&5 -$as_echo "$as_me: WARNING: mmap shared memory support requested but not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -fi - if test "$shmem_mmap_sm_build_mmap" = "1"; then : + # Use CUDA_SUPPORT which was filled in by the opal configure code. + if test "x$CUDA_SUPPORT" = "x1"; then : should_build=$should_build else should_build=0 fi -cat >>confdefs.h <<_ACEOF -#define OPAL_SHMEM_MMAP $shmem_mmap_sm_build_mmap -_ACEOF - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -176334,45 +175741,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/shmem/mmap/post_configure.sh" + infile="$srcdir/opal/mca/rcache/gpusm/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components mmap" + all_components="$all_components gpusm" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components mmap" + dso_components="$dso_components gpusm" else - if test "shmem" = "common"; then + if test "rcache" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/shmem/mmap/lib${OPAL_LIB_PREFIX}mca_shmem_mmap.la $static_ltlibs" + static_ltlibs="mca/rcache/gpusm/lib${OPAL_LIB_PREFIX}mca_rcache_gpusm.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/shmem/mmap/libmca_shmem_mmap.la $static_ltlibs" + static_ltlibs="mca/rcache/gpusm/libmca_rcache_gpusm.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_shmem_mmap_component;" >> $outfile.extern - echo " &mca_shmem_mmap_component, " >> $outfile.struct - static_components="$static_components mmap" + echo "extern const mca_base_component_t mca_rcache_gpusm_component;" >> $outfile.extern + echo " &mca_rcache_gpusm_component, " >> $outfile.struct + static_components="$static_components gpusm" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component shmem:mmap can compile" >&5 -$as_echo_n "checking if MCA component shmem:mmap can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:gpusm can compile" >&5 +$as_echo_n "checking if MCA component rcache:gpusm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_shmem" = "mmap" ; then + if test "$DIRECT_rcache" = "gpusm" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_shmem_DIRECT_CALL_HEADER=$line" + str="MCA_opal_rcache_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** shmem component mmap was supposed to be direct-called, but +as_fn_error $? "*** rcache component gpusm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -176380,8 +175787,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_shmem" = "mmap" ; then -as_fn_error $? "*** shmem component mmap was supposed to be direct-called, but + if test "$DIRECT_rcache" = "gpusm" ; then +as_fn_error $? "*** rcache component gpusm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -176396,7 +175803,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$shmem_mmap_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$rcache_gpusm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -176436,7 +175843,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $shmem_mmap_LDFLAGS; do + for arg in $rcache_gpusm_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -176517,7 +175924,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $shmem_mmap_WRAPPER_EXTRA_LDFLAGS; do + for arg in $rcache_gpusm_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -176559,7 +175966,7 @@ fi - if test "$shmem_mmap_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$rcache_gpusm_WRAPPER_EXTRA_LIBS" = ""; then : @@ -176599,7 +176006,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $shmem_mmap_LIBS; do + for arg in $rcache_gpusm_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -176680,7 +176087,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $shmem_mmap_WRAPPER_EXTRA_LIBS; do + for arg in $rcache_gpusm_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -176728,7 +176135,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$shmem_mmap_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$rcache_gpusm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -176771,7 +176178,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $shmem_mmap_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $rcache_gpusm_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -176814,32 +176221,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring shmem_mmap_WRAPPER_EXTRA_CPPFLAGS ($shmem_mmap_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring shmem_mmap_WRAPPER_EXTRA_CPPFLAGS ($shmem_mmap_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rcache_gpusm_WRAPPER_EXTRA_CPPFLAGS ($rcache_gpusm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring rcache_gpusm_WRAPPER_EXTRA_CPPFLAGS ($rcache_gpusm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component shmem:mmap can compile" >&5 -$as_echo_n "checking if MCA component shmem:mmap can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:gpusm can compile" >&5 +$as_echo_n "checking if MCA component rcache:gpusm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_shmem" = "mmap" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"mmap\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"mmap\" failed to configure properly" >&2;} + if test "$with_rcache" = "gpusm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"gpusm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"gpusm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_shmem" ; then - if test "$DIRECT_shmem" = "mmap" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"mmap\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"mmap\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_rcache" ; then + if test "$DIRECT_rcache" = "gpusm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"gpusm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"gpusm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -176847,23 +176254,23 @@ fi # add component to all component list - all_components="$all_components mmap" + all_components="$all_components gpusm" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_shmem_mmap_DSO=1 + BUILD_opal_rcache_gpusm_DSO=1 else - BUILD_opal_shmem_mmap_DSO=0 + BUILD_opal_rcache_gpusm_DSO=0 fi - if test "$BUILD_opal_shmem_mmap_DSO" = "1"; then - MCA_BUILD_opal_shmem_mmap_DSO_TRUE= - MCA_BUILD_opal_shmem_mmap_DSO_FALSE='#' + if test "$BUILD_opal_rcache_gpusm_DSO" = "1"; then + MCA_BUILD_opal_rcache_gpusm_DSO_TRUE= + MCA_BUILD_opal_rcache_gpusm_DSO_FALSE='#' else - MCA_BUILD_opal_shmem_mmap_DSO_TRUE='#' - MCA_BUILD_opal_shmem_mmap_DSO_FALSE= + MCA_BUILD_opal_rcache_gpusm_DSO_TRUE='#' + MCA_BUILD_opal_rcache_gpusm_DSO_FALSE= fi @@ -176879,13 +176286,13 @@ - opal_show_subsubsubtitle "MCA component shmem:posix (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component rcache:rgpusm (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/shmem/posix" + component_path="$srcdir/opal/mca/rcache/rgpusm" want_component=0 # build if: @@ -176917,8 +176324,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_shmem" ; then - if test "$DIRECT_shmem" = "posix" ; then + if test ! -z "$DIRECT_rcache" ; then + if test "$DIRECT_rcache" = "rgpusm" ; then want_component=1 else want_component=0 @@ -176927,10 +176334,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_shmem" = "1"; then : + if test "$DISABLE_rcache" = "1"; then : want_component=0 fi - if test "$DISABLE_shmem_posix" = "1"; then : + if test "$DISABLE_rcache_rgpusm" = "1"; then : want_component=0 fi @@ -176943,11 +176350,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_shmem" - SHARED_COMPONENT="$DSO_shmem_posix" + SHARED_FRAMEWORK="$DSO_rcache" + SHARED_COMPONENT="$DSO_rcache_rgpusm" - STATIC_FRAMEWORK="$STATIC_shmem" - STATIC_COMPONENT="$STATIC_shmem_posix" + STATIC_FRAMEWORK="$STATIC_rcache" + STATIC_COMPONENT="$STATIC_rcache_rgpusm" shared_mode_override=static @@ -176965,9 +176372,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component shmem:posix compile mode" >&5 -$as_echo_n "checking for MCA component shmem:posix compile mode... " >&6; } - if test "$DIRECT_shmem" = "posix" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rcache:rgpusm compile mode" >&5 +$as_echo_n "checking for MCA component rcache:rgpusm compile mode... " >&6; } + if test "$DIRECT_rcache" = "rgpusm" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -176978,257 +176385,17 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/shmem/posix/Makefile" - - - # do we have the posix shm stuff? - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if want POSIX shared memory support" >&5 -$as_echo_n "checking if want POSIX shared memory support... " >&6; } - # Check whether --enable-posix-shmem was given. -if test "${enable_posix_shmem+set}" = set; then : - enableval=$enable_posix_shmem; -fi - - if test "$enable_posix_shmem" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - shmem_posix_sm_build_posix=0 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in LIBS_save add; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"LIBS_save add\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - LIBS_save=$LIBS - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing shm_open" >&5 -$as_echo_n "checking for library containing shm_open... " >&6; } -if ${ac_cv_search_shm_open+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shm_open (); -int -main () -{ -return shm_open (); - ; - return 0; -} -_ACEOF -for ac_lib in '' rt; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_shm_open=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_shm_open+:} false; then : - break -fi -done -if ${ac_cv_search_shm_open+:} false; then : - -else - ac_cv_search_shm_open=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_shm_open" >&5 -$as_echo "$ac_cv_search_shm_open" >&6; } -ac_res=$ac_cv_search_shm_open -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - # Found it! See if anything was added to LIBS - add=`printf '%s\n' "$LIBS" | sed -e "s/$LIBS_save$//"` - if test -n "$add"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $add; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${shmem_posix_LIBS}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$shmem_posix_LIBS"; then : - shmem_posix_LIBS=$arg -else - shmem_posix_LIBS="$shmem_posix_LIBS $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - shmem_posix_have_shm_open=1 - shmem_posix_sm_build_posix=1 -else - shmem_posix_have_shm_open=0 - shmem_posix_sm_build_posix=0 -fi - - - -cat >>confdefs.h <<_ACEOF -#define OPAL_HAVE_SHMEM_POSIX $shmem_posix_have_shm_open -_ACEOF - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - + ac_config_files="$ac_config_files opal/mca/rcache/rgpusm/Makefile" -fi - if test "$enable_posix_shmem" = "yes" && test "$shmem_posix_sm_build_posix" = "0"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: POSIX shared memory support requested but not found" >&5 -$as_echo "$as_me: WARNING: POSIX shared memory support requested but not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -fi - if test "$shmem_posix_sm_build_posix" = "1"; then : + # Use CUDA_SUPPORT which was filled in by the opal configure code. + if test "x$CUDA_SUPPORT" = "x1"; then : should_build=$should_build else should_build=0 fi -cat >>confdefs.h <<_ACEOF -#define OPAL_SHMEM_POSIX $shmem_posix_sm_build_posix -_ACEOF - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -177237,45 +176404,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/shmem/posix/post_configure.sh" + infile="$srcdir/opal/mca/rcache/rgpusm/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components posix" + all_components="$all_components rgpusm" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components posix" + dso_components="$dso_components rgpusm" else - if test "shmem" = "common"; then + if test "rcache" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/shmem/posix/lib${OPAL_LIB_PREFIX}mca_shmem_posix.la $static_ltlibs" + static_ltlibs="mca/rcache/rgpusm/lib${OPAL_LIB_PREFIX}mca_rcache_rgpusm.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/shmem/posix/libmca_shmem_posix.la $static_ltlibs" + static_ltlibs="mca/rcache/rgpusm/libmca_rcache_rgpusm.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_shmem_posix_component;" >> $outfile.extern - echo " &mca_shmem_posix_component, " >> $outfile.struct - static_components="$static_components posix" + echo "extern const mca_base_component_t mca_rcache_rgpusm_component;" >> $outfile.extern + echo " &mca_rcache_rgpusm_component, " >> $outfile.struct + static_components="$static_components rgpusm" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component shmem:posix can compile" >&5 -$as_echo_n "checking if MCA component shmem:posix can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:rgpusm can compile" >&5 +$as_echo_n "checking if MCA component rcache:rgpusm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_shmem" = "posix" ; then + if test "$DIRECT_rcache" = "rgpusm" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_shmem_DIRECT_CALL_HEADER=$line" + str="MCA_opal_rcache_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** shmem component posix was supposed to be direct-called, but +as_fn_error $? "*** rcache component rgpusm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -177283,8 +176450,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_shmem" = "posix" ; then -as_fn_error $? "*** shmem component posix was supposed to be direct-called, but + if test "$DIRECT_rcache" = "rgpusm" ; then +as_fn_error $? "*** rcache component rgpusm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -177299,7 +176466,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$shmem_posix_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$rcache_rgpusm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -177339,7 +176506,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $shmem_posix_LDFLAGS; do + for arg in $rcache_rgpusm_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -177420,7 +176587,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $shmem_posix_WRAPPER_EXTRA_LDFLAGS; do + for arg in $rcache_rgpusm_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -177462,7 +176629,7 @@ fi - if test "$shmem_posix_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$rcache_rgpusm_WRAPPER_EXTRA_LIBS" = ""; then : @@ -177502,7 +176669,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $shmem_posix_LIBS; do + for arg in $rcache_rgpusm_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -177583,7 +176750,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $shmem_posix_WRAPPER_EXTRA_LIBS; do + for arg in $rcache_rgpusm_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -177631,7 +176798,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$shmem_posix_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$rcache_rgpusm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -177674,7 +176841,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $shmem_posix_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $rcache_rgpusm_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -177717,32 +176884,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring shmem_posix_WRAPPER_EXTRA_CPPFLAGS ($shmem_posix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring shmem_posix_WRAPPER_EXTRA_CPPFLAGS ($shmem_posix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rcache_rgpusm_WRAPPER_EXTRA_CPPFLAGS ($rcache_rgpusm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring rcache_rgpusm_WRAPPER_EXTRA_CPPFLAGS ($rcache_rgpusm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component shmem:posix can compile" >&5 -$as_echo_n "checking if MCA component shmem:posix can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:rgpusm can compile" >&5 +$as_echo_n "checking if MCA component rcache:rgpusm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_shmem" = "posix" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"posix\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"posix\" failed to configure properly" >&2;} + if test "$with_rcache" = "rgpusm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"rgpusm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"rgpusm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_shmem" ; then - if test "$DIRECT_shmem" = "posix" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"posix\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"posix\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_rcache" ; then + if test "$DIRECT_rcache" = "rgpusm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"rgpusm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"rgpusm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -177750,23 +176917,23 @@ fi # add component to all component list - all_components="$all_components posix" + all_components="$all_components rgpusm" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_shmem_posix_DSO=1 + BUILD_opal_rcache_rgpusm_DSO=1 else - BUILD_opal_shmem_posix_DSO=0 + BUILD_opal_rcache_rgpusm_DSO=0 fi - if test "$BUILD_opal_shmem_posix_DSO" = "1"; then - MCA_BUILD_opal_shmem_posix_DSO_TRUE= - MCA_BUILD_opal_shmem_posix_DSO_FALSE='#' + if test "$BUILD_opal_rcache_rgpusm_DSO" = "1"; then + MCA_BUILD_opal_rcache_rgpusm_DSO_TRUE= + MCA_BUILD_opal_rcache_rgpusm_DSO_FALSE='#' else - MCA_BUILD_opal_shmem_posix_DSO_TRUE='#' - MCA_BUILD_opal_shmem_posix_DSO_FALSE= + MCA_BUILD_opal_rcache_rgpusm_DSO_TRUE='#' + MCA_BUILD_opal_rcache_rgpusm_DSO_FALSE= fi @@ -177782,13 +176949,13 @@ - opal_show_subsubsubtitle "MCA component shmem:sysv (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component rcache:udreg (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/shmem/sysv" + component_path="$srcdir/opal/mca/rcache/udreg" want_component=0 # build if: @@ -177820,8 +176987,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_shmem" ; then - if test "$DIRECT_shmem" = "sysv" ; then + if test ! -z "$DIRECT_rcache" ; then + if test "$DIRECT_rcache" = "udreg" ; then want_component=1 else want_component=0 @@ -177830,10 +176997,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_shmem" = "1"; then : + if test "$DISABLE_rcache" = "1"; then : want_component=0 fi - if test "$DISABLE_shmem_sysv" = "1"; then : + if test "$DISABLE_rcache_udreg" = "1"; then : want_component=0 fi @@ -177846,11 +177013,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_shmem" - SHARED_COMPONENT="$DSO_shmem_sysv" + SHARED_FRAMEWORK="$DSO_rcache" + SHARED_COMPONENT="$DSO_rcache_udreg" - STATIC_FRAMEWORK="$STATIC_shmem" - STATIC_COMPONENT="$STATIC_shmem_sysv" + STATIC_FRAMEWORK="$STATIC_rcache" + STATIC_COMPONENT="$STATIC_rcache_udreg" shared_mode_override=static @@ -177868,9 +177035,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component shmem:sysv compile mode" >&5 -$as_echo_n "checking for MCA component shmem:sysv compile mode... " >&6; } - if test "$DIRECT_shmem" = "sysv" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rcache:udreg compile mode" >&5 +$as_echo_n "checking for MCA component rcache:udreg compile mode... " >&6; } + if test "$DIRECT_rcache" = "udreg" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -177881,48 +177048,110 @@ # try to configure the component - ac_config_files="$ac_config_files opal/mca/shmem/sysv/Makefile" + ac_config_files="$ac_config_files opal/mca/rcache/udreg/Makefile" - # do we have the sysv shm stuff? - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if want SYSV shared memory support" >&5 -$as_echo_n "checking if want SYSV shared memory support... " >&6; } - # Check whether --enable-sysv-shmem was given. -if test "${enable_sysv_shmem+set}" = set; then : - enableval=$enable_sysv_shmem; + +# Check whether --with-udreg was given. +if test "${with_udreg+set}" = set; then : + withval=$with_udreg; fi - if test "$enable_sysv_shmem" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - shmem_sysv_sm_build_sysv=0 + + rcache_udreg_happy="no" + + if test "$with_udreg" = "no"; then : + rcache_udreg_happy="no" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ac_fn_c_check_func "$LINENO" "shmget" "ac_cv_func_shmget" -if test "x$ac_cv_func_shmget" = xyes; then : - shmem_sysv_sm_build_sysv=1 + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_UDREG" >&5 +$as_echo_n "checking for CRAY_UDREG... " >&6; } + +if test -n "$CRAY_UDREG_CFLAGS"; then + pkg_cv_CRAY_UDREG_CFLAGS="$CRAY_UDREG_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-udreg\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-udreg") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_UDREG_CFLAGS=`$PKG_CONFIG --cflags "cray-udreg" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - shmem_sysv_sm_build_sysv=0 + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_UDREG_LIBS"; then + pkg_cv_CRAY_UDREG_LIBS="$CRAY_UDREG_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-udreg\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-udreg") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_UDREG_LIBS=`$PKG_CONFIG --libs "cray-udreg" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + CRAY_UDREG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-udreg" 2>&1` + else + CRAY_UDREG_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-udreg" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_UDREG_PKG_ERRORS" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + rcache_udreg_happ="no" +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + rcache_udreg_happ="no" +else + CRAY_UDREG_CFLAGS=$pkg_cv_CRAY_UDREG_CFLAGS + CRAY_UDREG_LIBS=$pkg_cv_CRAY_UDREG_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + rcache_udreg_LDFLAGS="$CRAY_UDREG_LIBS" + rcache_udreg_CPPFLAGS="$CRAY_UDREG_CFLAGS" + rcache_udreg_happy="yes" fi - if test "$enable_sysv_shmem" = "yes" && test "$shmem_sysv_sm_build_sysv" = "0"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SYSV shared memory support requested but not found" >&5 -$as_echo "$as_me: WARNING: SYSV shared memory support requested but not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test "$shmem_sysv_sm_build_sysv" = "1"; then : + if test "$rcache_udreg_happy" = "yes"; then : should_build=$should_build else should_build=0 fi -cat >>confdefs.h <<_ACEOF -#define OPAL_SHMEM_SYSV $shmem_sysv_sm_build_sysv -_ACEOF + # substitute in the things needed to build udreg/rcache + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -177933,45 +177162,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/shmem/sysv/post_configure.sh" + infile="$srcdir/opal/mca/rcache/udreg/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components sysv" + all_components="$all_components udreg" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components sysv" + dso_components="$dso_components udreg" else - if test "shmem" = "common"; then + if test "rcache" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/shmem/sysv/lib${OPAL_LIB_PREFIX}mca_shmem_sysv.la $static_ltlibs" + static_ltlibs="mca/rcache/udreg/lib${OPAL_LIB_PREFIX}mca_rcache_udreg.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/shmem/sysv/libmca_shmem_sysv.la $static_ltlibs" + static_ltlibs="mca/rcache/udreg/libmca_rcache_udreg.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_shmem_sysv_component;" >> $outfile.extern - echo " &mca_shmem_sysv_component, " >> $outfile.struct - static_components="$static_components sysv" + echo "extern const mca_base_component_t mca_rcache_udreg_component;" >> $outfile.extern + echo " &mca_rcache_udreg_component, " >> $outfile.struct + static_components="$static_components udreg" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component shmem:sysv can compile" >&5 -$as_echo_n "checking if MCA component shmem:sysv can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:udreg can compile" >&5 +$as_echo_n "checking if MCA component rcache:udreg can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_shmem" = "sysv" ; then + if test "$DIRECT_rcache" = "udreg" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_shmem_DIRECT_CALL_HEADER=$line" + str="MCA_opal_rcache_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** shmem component sysv was supposed to be direct-called, but +as_fn_error $? "*** rcache component udreg was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -177979,8 +177208,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_shmem" = "sysv" ; then -as_fn_error $? "*** shmem component sysv was supposed to be direct-called, but + if test "$DIRECT_rcache" = "udreg" ; then +as_fn_error $? "*** rcache component udreg was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -177995,7 +177224,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$shmem_sysv_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$rcache_udreg_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -178035,7 +177264,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $shmem_sysv_LDFLAGS; do + for arg in $rcache_udreg_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -178116,7 +177345,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $shmem_sysv_WRAPPER_EXTRA_LDFLAGS; do + for arg in $rcache_udreg_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -178158,7 +177387,7 @@ fi - if test "$shmem_sysv_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$rcache_udreg_WRAPPER_EXTRA_LIBS" = ""; then : @@ -178198,7 +177427,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $shmem_sysv_LIBS; do + for arg in $rcache_udreg_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -178279,7 +177508,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $shmem_sysv_WRAPPER_EXTRA_LIBS; do + for arg in $rcache_udreg_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -178327,7 +177556,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$shmem_sysv_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$rcache_udreg_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -178370,7 +177599,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $shmem_sysv_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $rcache_udreg_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -178413,32 +177642,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring shmem_sysv_WRAPPER_EXTRA_CPPFLAGS ($shmem_sysv_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring shmem_sysv_WRAPPER_EXTRA_CPPFLAGS ($shmem_sysv_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rcache_udreg_WRAPPER_EXTRA_CPPFLAGS ($rcache_udreg_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring rcache_udreg_WRAPPER_EXTRA_CPPFLAGS ($rcache_udreg_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component shmem:sysv can compile" >&5 -$as_echo_n "checking if MCA component shmem:sysv can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:udreg can compile" >&5 +$as_echo_n "checking if MCA component rcache:udreg can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_shmem" = "sysv" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sysv\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"sysv\" failed to configure properly" >&2;} + if test "$with_rcache" = "udreg" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"udreg\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"udreg\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_shmem" ; then - if test "$DIRECT_shmem" = "sysv" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sysv\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"sysv\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_rcache" ; then + if test "$DIRECT_rcache" = "udreg" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"udreg\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"udreg\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -178446,23 +177675,23 @@ fi # add component to all component list - all_components="$all_components sysv" + all_components="$all_components udreg" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_shmem_sysv_DSO=1 + BUILD_opal_rcache_udreg_DSO=1 else - BUILD_opal_shmem_sysv_DSO=0 + BUILD_opal_rcache_udreg_DSO=0 fi - if test "$BUILD_opal_shmem_sysv_DSO" = "1"; then - MCA_BUILD_opal_shmem_sysv_DSO_TRUE= - MCA_BUILD_opal_shmem_sysv_DSO_FALSE='#' + if test "$BUILD_opal_rcache_udreg_DSO" = "1"; then + MCA_BUILD_opal_rcache_udreg_DSO_TRUE= + MCA_BUILD_opal_rcache_udreg_DSO_FALSE='#' else - MCA_BUILD_opal_shmem_sysv_DSO_TRUE='#' - MCA_BUILD_opal_shmem_sysv_DSO_FALSE= + MCA_BUILD_opal_rcache_udreg_DSO_TRUE='#' + MCA_BUILD_opal_rcache_udreg_DSO_FALSE= fi @@ -178486,16 +177715,16 @@ if test "1" != "0"; then : - for component_path in $srcdir/opal/mca/shmem/* ; do + for component_path in $srcdir/opal/mca/rcache/* ; do component="`basename $component_path`" if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component shmem:$component (need to configure)" + opal_show_subsubsubtitle "MCA component rcache:$component (need to configure)" opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/opal/mca/shmem/$component" + component_path="$srcdir/opal/mca/rcache/$component" want_component=0 # build if: @@ -178527,8 +177756,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_shmem" ; then - if test "$DIRECT_shmem" = "$component" ; then + if test ! -z "$DIRECT_rcache" ; then + if test "$DIRECT_rcache" = "$component" ; then want_component=1 else want_component=0 @@ -178537,10 +177766,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_shmem" = "1"; then : + if test "$DISABLE_rcache" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_shmem_$component" + str="DISABLED_COMPONENT_CHECK=\$DISABLE_rcache_$component" eval $str if test "$DISABLED_COMPONENT_CHECK" = "1" ; then want_component=0 @@ -178553,12 +177782,12 @@ fi - SHARED_FRAMEWORK="$DSO_shmem" - str="SHARED_COMPONENT=\$DSO_shmem_$component" + SHARED_FRAMEWORK="$DSO_rcache" + str="SHARED_COMPONENT=\$DSO_rcache_$component" eval $str - STATIC_FRAMEWORK="$STATIC_shmem" - str="STATIC_COMPONENT=\$STATIC_shmem_$component" + STATIC_FRAMEWORK="$STATIC_rcache" + str="STATIC_COMPONENT=\$STATIC_rcache_$component" eval $str shared_mode_override=static @@ -178577,9 +177806,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component shmem:$component compile mode" >&5 -$as_echo_n "checking for MCA component shmem:$component compile mode... " >&6; } - if test "$DIRECT_shmem" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rcache:$component compile mode" >&5 +$as_echo_n "checking for MCA component rcache:$component compile mode... " >&6; } + if test "$DIRECT_rcache" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -178632,12 +177861,12 @@ # # Invoke configure in a specific subdirectory. # -# opal/mca/shmem/$component is the directory to invoke in +# opal/mca/rcache/$component is the directory to invoke in # $opal_subdir_args is the list of arguments to pass # should_build=1 is actions to execute upon success # should_build=0 is actions to execute upon failure # -subdir_dir="opal/mca/shmem/$component" +subdir_dir="opal/mca/rcache/$component" subdir_args="$opal_subdir_args" subdir_success="should_build=1" subdir_failure="should_build=0" @@ -178781,7 +178010,7 @@ # do some extra work to pass flags back from the # top-level configure, the way a configure.m4 # component would. - infile="$srcdir/opal/mca/shmem/all_components/post_configure.sh" + infile="$srcdir/opal/mca/rcache/all_components/post_configure.sh" if test -f $infile; then # First check for the ABORT tag @@ -178795,12 +178024,12 @@ line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - shmem_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + rcache_all_components_WRAPPER_EXTRA_LDFLAGS="$line" fi line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - shmem_all_components_WRAPPER_EXTRA_LIBS="$line" + rcache_all_components_WRAPPER_EXTRA_LIBS="$line" fi fi @@ -178809,7 +178038,7 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/shmem/$component/post_configure.sh" + infile="$srcdir/opal/mca/rcache/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs all_components="$all_components $component" @@ -178817,37 +178046,37 @@ if test "$compile_mode" = "dso" ; then dso_components="$dso_components $component" else - if test "shmem" = "common"; then + if test "rcache" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/shmem/$component/lib${OPAL_LIB_PREFIX}mca_shmem_$component.la $static_ltlibs" + static_ltlibs="mca/rcache/$component/lib${OPAL_LIB_PREFIX}mca_rcache_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/shmem/$component/libmca_shmem_$component.la $static_ltlibs" + static_ltlibs="mca/rcache/$component/libmca_rcache_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_shmem_$component_component;" >> $outfile.extern - echo " &mca_shmem_$component_component, " >> $outfile.struct + echo "extern const mca_base_component_t mca_rcache_$component_component;" >> $outfile.extern + echo " &mca_rcache_$component_component, " >> $outfile.struct static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component shmem:$component can compile" >&5 -$as_echo_n "checking if MCA component shmem:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:$component can compile" >&5 +$as_echo_n "checking if MCA component rcache:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_shmem" = "$component" ; then + if test "$DIRECT_rcache" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_shmem_DIRECT_CALL_HEADER=$line" + str="MCA_opal_rcache_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** shmem component $component was supposed to be direct-called, but +as_fn_error $? "*** rcache component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -178855,8 +178084,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_shmem" = "$component" ; then -as_fn_error $? "*** shmem component $component was supposed to be direct-called, but + if test "$DIRECT_rcache" = "$component" ; then +as_fn_error $? "*** rcache component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -178871,7 +178100,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$shmem_$component_WRAPPER_EXTRA_LDFLAGS" + str="line=\$rcache_$component_WRAPPER_EXTRA_LDFLAGS" eval "$str" @@ -178952,7 +178181,7 @@ unset $opal_var done -str="line=\$shmem_$component_WRAPPER_EXTRA_LIBS" +str="line=\$rcache_$component_WRAPPER_EXTRA_LIBS" eval "$str" @@ -179043,14 +178272,14 @@ else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component shmem:$component can compile" >&5 -$as_echo_n "checking if MCA component shmem:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rcache:$component can compile" >&5 +$as_echo_n "checking if MCA component rcache:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_shmem" = "$component" ; then + if test "$with_rcache" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 @@ -179058,8 +178287,8 @@ as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_shmem" ; then - if test "$DIRECT_shmem" = "$component" ; then + if test ! -z "$DIRECT_rcache" ; then + if test "$DIRECT_rcache" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 @@ -179074,10 +178303,10 @@ fi - MCA_opal_shmem_ALL_COMPONENTS="$all_components" - MCA_opal_shmem_STATIC_COMPONENTS="$static_components" - MCA_opal_shmem_DSO_COMPONENTS="$dso_components" - MCA_opal_shmem_STATIC_LTLIBS="$static_ltlibs" + MCA_opal_rcache_ALL_COMPONENTS="$all_components" + MCA_opal_rcache_STATIC_COMPONENTS="$static_components" + MCA_opal_rcache_DSO_COMPONENTS="$dso_components" + MCA_opal_rcache_STATIC_LTLIBS="$static_ltlibs" @@ -179085,23 +178314,23 @@ - MCA_opal_shmem_ALL_SUBDIRS= + MCA_opal_rcache_ALL_SUBDIRS= for item in $all_components ; do - MCA_opal_shmem_ALL_SUBDIRS="$MCA_opal_shmem_ALL_SUBDIRS mca/shmem/$item" + MCA_opal_rcache_ALL_SUBDIRS="$MCA_opal_rcache_ALL_SUBDIRS mca/rcache/$item" done - MCA_opal_shmem_STATIC_SUBDIRS= + MCA_opal_rcache_STATIC_SUBDIRS= for item in $static_components ; do - MCA_opal_shmem_STATIC_SUBDIRS="$MCA_opal_shmem_STATIC_SUBDIRS mca/shmem/$item" + MCA_opal_rcache_STATIC_SUBDIRS="$MCA_opal_rcache_STATIC_SUBDIRS mca/rcache/$item" done - MCA_opal_shmem_DSO_SUBDIRS= + MCA_opal_rcache_DSO_SUBDIRS= for item in $dso_components ; do - MCA_opal_shmem_DSO_SUBDIRS="$MCA_opal_shmem_DSO_SUBDIRS mca/shmem/$item" + MCA_opal_rcache_DSO_SUBDIRS="$MCA_opal_rcache_DSO_SUBDIRS mca/rcache/$item" done @@ -179109,7 +178338,7 @@ # Create the final .h file that will be included in the type's # top-level glue. This lists all the static components. We don't # need to do this for "common". - if test "shmem" != "common"; then + if test "rcache" != "common"; then cat > $outfile <&5 -$as_echo_n "checking for no configure components in framework timer... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework timer" >&5 -$as_echo_n "checking for m4 configure components in framework timer... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: altix, darwin, linux, solaris" >&5 -$as_echo "altix, darwin, linux, solaris" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework reachable" >&5 +$as_echo_n "checking for no configure components in framework reachable... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: weighted" >&5 +$as_echo "weighted" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework reachable" >&5 +$as_echo_n "checking for m4 configure components in framework reachable... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: netlink" >&5 +$as_echo "netlink" >&6; } # If there are components in the no configure list, but we're # doing one of the "special" selection logics, abort with a @@ -179212,26 +178429,13 @@ # run the configure logic for the no-config components + opal_show_subsubsubtitle "MCA component reachable:weighted (no configuration)" - # configure components that use built-in configuration scripts - - - - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - opal_show_subsubsubtitle "MCA component timer:altix (m4 configuration macro, priority 100)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/opal/mca/timer/altix" + component_path="$srcdir/opal/mca/reachable/weighted" want_component=0 # build if: @@ -179263,8 +178467,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_timer" ; then - if test "$DIRECT_timer" = "altix" ; then + if test ! -z "$DIRECT_reachable" ; then + if test "$DIRECT_reachable" = "weighted" ; then want_component=1 else want_component=0 @@ -179273,174 +178477,99 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_timer" = "1"; then : + if test "$DISABLE_reachable" = "1"; then : want_component=0 fi - if test "$DISABLE_timer_altix" = "1"; then : + if test "$DISABLE_reachable_weighted" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component timer:altix compile mode" >&5 -$as_echo_n "checking for MCA component timer:altix compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - - - # try to configure the component - - ac_config_files="$ac_config_files opal/mca/timer/altix/Makefile" - - - if test "$with_timer" = "altix"; then : - timer_altix_happy="yes" - timer_altix_should_use=1 -else - timer_altix_should_use=0 - if test "$with_timer" = ""; then : - timer_altix_happy="yes" -else - timer_altix_happy="no" -fi -fi - - if test "$timer_altix_happy" = "yes"; then : - ac_fn_c_check_header_mongrel "$LINENO" "sn/mmtimer.h" "ac_cv_header_sn_mmtimer_h" "$ac_includes_default" -if test "x$ac_cv_header_sn_mmtimer_h" = xyes; then : - timer_altix_happy="yes" -else - timer_altix_happy="no" -fi - - -fi - - if test "$timer_altix_happy" = "yes"; then : - for ac_header in sys/ioctl.h sys/mman.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - -fi - - if test "$timer_altix_happy" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MM timer can be opened" >&5 -$as_echo_n "checking if MM timer can be opened... " >&6; } -if ${ompi_cv_mm_timer_mmap+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include -#include -#include + SHARED_FRAMEWORK="$DSO_reachable" + SHARED_COMPONENT="$DSO_reachable_weighted" -int -main () -{ + STATIC_FRAMEWORK="$STATIC_reachable" + STATIC_COMPONENT="$STATIC_reachable_weighted" - int fd; - fd = open(MMTIMER_FULLNAME, O_RDONLY); - if (-1 ==fd) return 1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ompi_cv_mm_timer_mmap="yes" -else - ompi_cv_mm_timer_mmap="no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_cv_mm_timer_mmap" >&5 -$as_echo "$ompi_cv_mm_timer_mmap" >&6; } - if test "$ompi_cv_mm_timer_mmap" = "yes"; then : - timer_altix_happy="yes" -else - timer_altix_happy="no" -fi -fi + shared_mode_override=static - if test "$timer_altix_happy" = "no" && \ - test "$timer_altix_should_use" = "1"; then : - as_fn_error $? "Altix timer requested but not available. Aborting." "$LINENO" 5 -fi + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - if test "$timer_altix_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component reachable:weighted compile mode" >&5 +$as_echo_n "checking for MCA component reachable:weighted compile mode... " >&6; } + if test "$DIRECT_reachable" = "weighted" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/timer/altix/post_configure.sh" + infile="$srcdir/opal/mca/reachable/weighted/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components altix" + all_components="$all_components weighted" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components altix" + dso_components="$dso_components weighted" else - if test "timer" = "common"; then + if test "reachable" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/timer/altix/lib${OPAL_LIB_PREFIX}mca_timer_altix.la $static_ltlibs" + static_ltlibs="mca/reachable/weighted/lib${OPAL_LIB_PREFIX}mca_reachable_weighted.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/timer/altix/libmca_timer_altix.la $static_ltlibs" + static_ltlibs="mca/reachable/weighted/libmca_reachable_weighted.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_timer_altix_component;" >> $outfile.extern - echo " &mca_timer_altix_component, " >> $outfile.struct - static_components="$static_components altix" + echo "extern const mca_base_component_t mca_reachable_weighted_component;" >> $outfile.extern + echo " &mca_reachable_weighted_component, " >> $outfile.struct + static_components="$static_components weighted" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component timer:altix can compile" >&5 -$as_echo_n "checking if MCA component timer:altix can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component reachable:weighted can compile" >&5 +$as_echo_n "checking if MCA component reachable:weighted can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_timer" = "altix" ; then + if test "$DIRECT_reachable" = "weighted" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_timer_DIRECT_CALL_HEADER=$line" + str="MCA_opal_reachable_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** timer component altix was supposed to be direct-called, but +as_fn_error $? "*** reachable component weighted was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -179448,8 +178577,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_timer" = "altix" ; then -as_fn_error $? "*** timer component altix was supposed to be direct-called, but + if test "$DIRECT_reachable" = "weighted" ; then +as_fn_error $? "*** reachable component weighted was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -179464,7 +178593,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$timer_altix_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$reachable_weighted_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -179504,7 +178633,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $timer_altix_LDFLAGS; do + for arg in $reachable_weighted_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -179585,7 +178714,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $timer_altix_WRAPPER_EXTRA_LDFLAGS; do + for arg in $reachable_weighted_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -179627,7 +178756,7 @@ fi - if test "$timer_altix_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$reachable_weighted_WRAPPER_EXTRA_LIBS" = ""; then : @@ -179667,7 +178796,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $timer_altix_LIBS; do + for arg in $reachable_weighted_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -179748,7 +178877,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $timer_altix_WRAPPER_EXTRA_LIBS; do + for arg in $reachable_weighted_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -179796,8 +178925,8 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$timer_altix_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=1 + if test "$reachable_weighted_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -179839,7 +178968,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $timer_altix_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $reachable_weighted_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -179882,84 +179011,79 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring timer_altix_WRAPPER_EXTRA_CPPFLAGS ($timer_altix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring timer_altix_WRAPPER_EXTRA_CPPFLAGS ($timer_altix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring reachable_weighted_WRAPPER_EXTRA_CPPFLAGS ($reachable_weighted_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring reachable_weighted_WRAPPER_EXTRA_CPPFLAGS ($reachable_weighted_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component timer:altix can compile" >&5 -$as_echo_n "checking if MCA component timer:altix can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component reachable:weighted can compile" >&5 +$as_echo_n "checking if MCA component reachable:weighted can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_timer" = "altix" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"altix\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"altix\" failed to configure properly" >&2;} + if test "$with_reachable" = "weighted" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"weighted\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"weighted\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_timer" ; then - if test "$DIRECT_timer" = "altix" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"altix\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"altix\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_reachable" ; then + if test "$DIRECT_reachable" = "weighted" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"weighted\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"weighted\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components altix" -fi - - - if test "$should_build" = "1"; then : - timer_base_include="altix/timer_altix.h" -fi - + # add component to all component list + all_components="$all_components weighted" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_timer_altix_DSO=1 -else - BUILD_opal_timer_altix_DSO=0 -fi - if test "$BUILD_opal_timer_altix_DSO" = "1"; then - MCA_BUILD_opal_timer_altix_DSO_TRUE= - MCA_BUILD_opal_timer_altix_DSO_FALSE='#' + if test "$compile_mode" = "dso" ; then + BUILD_opal_reachable_weighted_DSO=1 + else + BUILD_opal_reachable_weighted_DSO=0 + fi + if test "$BUILD_opal_reachable_weighted_DSO" = "1"; then + MCA_BUILD_opal_reachable_weighted_DSO_TRUE= + MCA_BUILD_opal_reachable_weighted_DSO_FALSE='#' else - MCA_BUILD_opal_timer_altix_DSO_TRUE='#' - MCA_BUILD_opal_timer_altix_DSO_FALSE= + MCA_BUILD_opal_reachable_weighted_DSO_TRUE='#' + MCA_BUILD_opal_reachable_weighted_DSO_FALSE= fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi + ac_config_files="$ac_config_files opal/mca/reachable/weighted/Makefile" + unset compile_mode - if test $components_last_result -eq 1; then : - components_looking_for_succeed=0 -fi + # configure components that use built-in configuration scripts - opal_show_subsubsubtitle "MCA component timer:darwin (m4 configuration macro, priority 30)" + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + opal_show_subsubsubtitle "MCA component reachable:netlink (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/opal/mca/timer/darwin" + component_path="$srcdir/opal/mca/reachable/netlink" want_component=0 # build if: @@ -179991,8 +179115,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_timer" ; then - if test "$DIRECT_timer" = "darwin" ; then + if test ! -z "$DIRECT_reachable" ; then + if test "$DIRECT_reachable" = "netlink" ; then want_component=1 else want_component=0 @@ -180001,10 +179125,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_timer" = "1"; then : + if test "$DISABLE_reachable" = "1"; then : want_component=0 fi - if test "$DISABLE_timer_darwin" = "1"; then : + if test "$DISABLE_reachable_netlink" = "1"; then : want_component=0 fi @@ -180017,134 +179141,43 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component timer:darwin compile mode" >&5 -$as_echo_n "checking for MCA component timer:darwin compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - - - # try to configure the component - - ac_config_files="$ac_config_files opal/mca/timer/darwin/Makefile" - - - if test "$with_timer" = "darwin"; then : - timer_darwin_happy="yes" - timer_darwin_should_use=1 -else - timer_darwin_should_use=0 - if test "$with_timer" = ""; then : - timer_darwin_happy="yes" -else - timer_darwin_happy="no" -fi -fi - - if test "$timer_darwin_happy" = "yes"; then : - for ac_header in mach/mach_time.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "mach/mach_time.h" "ac_cv_header_mach_mach_time_h" "$ac_includes_default" -if test "x$ac_cv_header_mach_mach_time_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_MACH_MACH_TIME_H 1 -_ACEOF - -fi - -done - - ac_fn_c_check_func "$LINENO" "mach_absolute_time" "ac_cv_func_mach_absolute_time" -if test "x$ac_cv_func_mach_absolute_time" = xyes; then : - timer_darwin_happy="yes" -else - timer_darwin_happy="no" -fi - -fi - - if test "$timer_darwin_happy" = "no" && \ - test "$timer_darwin_should_use" = "1"; then : - as_fn_error $? "Darwin timer requested but not available. Aborting." "$LINENO" 5 -fi - - if test "$timer_darwin_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - + SHARED_FRAMEWORK="$DSO_reachable" + SHARED_COMPONENT="$DSO_reachable_netlink" - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/timer/darwin/post_configure.sh" + STATIC_FRAMEWORK="$STATIC_reachable" + STATIC_COMPONENT="$STATIC_reachable_netlink" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components darwin" + shared_mode_override=static - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components darwin" + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" else - if test "timer" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/timer/darwin/lib${OPAL_LIB_PREFIX}mca_timer_darwin.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/timer/darwin/libmca_timer_darwin.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_timer_darwin_component;" >> $outfile.extern - echo " &mca_timer_darwin_component, " >> $outfile.struct - static_components="$static_components darwin" + compile_mode="static" fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component timer:darwin can compile" >&5 -$as_echo_n "checking if MCA component timer:darwin can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_timer" = "darwin" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_timer_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** timer component darwin was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component reachable:netlink compile mode" >&5 +$as_echo_n "checking for MCA component reachable:netlink compile mode... " >&6; } + if test "$DIRECT_reachable" = "netlink" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_timer" = "darwin" ; then -as_fn_error $? "*** timer component darwin was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$timer_darwin_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/reachable/netlink/Makefile" + @@ -180157,7 +179190,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_reachable_netlink_happy; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -180176,7 +179209,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_reachable_netlink_happy\"" eval $opal_str unset opal_str @@ -180184,47 +179217,28 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $timer_darwin_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - + opal_reachable_netlink_happy=1 + ac_fn_c_check_header_compile "$LINENO" "linux/netlink.h" "ac_cv_header_linux_netlink_h" " +#include +#include - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +" +if test "x$ac_cv_header_linux_netlink_h" = xyes; then : - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +else + opal_reachable_netlink_happy=0 +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # this is terrible, but libnl-1 and libnl-3 are incompatible in + # weird ways, and once there are libraries in LIBS for one, the + # other is hard to get right. So if someone has already decided + # we have libnl version 1, get out. Otherwise, see if we have + # libnl-3, which is the only version supported by the netlink + # component. + if test $opal_libnl_version -eq 1; then : + opal_reachable_netlink_happy=0 else @@ -180238,7 +179252,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in CPPFLAGS_save opal_tmp_CPPFLAGS LIBS_save LDFLAGS_save; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -180257,57 +179271,74 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"CPPFLAGS_save opal_tmp_CPPFLAGS LIBS_save LDFLAGS_save\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libnl v3" >&5 +$as_echo "$as_me: checking for libnl v3" >&6;} - for arg in $timer_darwin_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + if test "$opal_want_libnl" != "no"; then : + if test -z "$opal_libnl_location"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /usr/include/libnl3" >&5 +$as_echo_n "checking for /usr/include/libnl3... " >&6; } + if test -d "/usr/include/libnl3"; then : + opal_tmp_CPPFLAGS=-I/usr/include/libnl3 + opal_libnlv3_happy=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 +$as_echo "found" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /usr/local/include/libnl3" >&5 +$as_echo_n "checking for /usr/local/include/libnl3... " >&6; } + if test -d "/usr/local/include/libnl3"; then : + opal_tmp_CPPFLAGS=-I/usr/local/include/netlink3 + opal_libnlv3_happy=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 +$as_echo "found" >&6; } +else + opal_libnlv3_happy=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } fi - done fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $opal_libnl_location/include/libnl3" >&5 +$as_echo_n "checking for $opal_libnl_location/include/libnl3... " >&6; } + if test -d "$opal_libnl_location/include/libnl3"; then : + opal_tmp_CPPFLAGS="-I$opal_libnl_location/include/libnl3" + opal_libnlv3_happy=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 +$as_echo "found" >&6; } +else + opal_libnlv3_happy=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } fi fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + CPPFLAGS_save=$CPPFLAGS + CPPFLAGS="$opal_tmp_CPPFLAGS $CPPFLAGS" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # Random note: netlink/version.h is only in libnl v3 - it is not in libnl v1. + # Also, nl_recvmsgs_report is only in libnl v3. + if test $opal_libnlv3_happy -eq 1; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + opal_check_package_reachable_netlink_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_reachable_netlink_save_LDFLAGS="$LDFLAGS" + opal_check_package_reachable_netlink_save_LIBS="$LIBS" + + opal_check_package_reachable_netlink_orig_CPPFLAGS="$reachable_netlink_CPPFLAGS" + opal_check_package_reachable_netlink_orig_LDFLAGS="$reachable_netlink_LDFLAGS" + opal_check_package_reachable_netlink_orig_LIBS="$reachable_netlink_LIBS" -fi - if test "$timer_darwin_WRAPPER_EXTRA_LIBS" = ""; then : + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -180320,7 +179351,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -180339,7 +179370,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -180347,477 +179378,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $timer_darwin_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_netlink_version_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $opal_libnl_location | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in netlink/version.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "netlink/version.h" "ac_cv_header_netlink_version_h" "$ac_includes_default" +if test "x$ac_cv_header_netlink_version_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NETLINK_VERSION_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_netlink_version_h fi fi - done + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + reachable_netlink_CPPFLAGS="$reachable_netlink_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in netlink/version.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "netlink/version.h" "ac_cv_header_netlink_version_h" "$ac_includes_default" +if test "x$ac_cv_header_netlink_version_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NETLINK_VERSION_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +done - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$opal_check_package_header_happy" = "yes"; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + # see comment above + unset ac_cv_search_nl_recvmsgs_report + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + reachable_netlink_LDFLAGS="$reachable_netlink_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_recvmsgs_report" >&5 +$as_echo_n "checking for library containing nl_recvmsgs_report... " >&6; } +if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + $as_echo_n "(cached) " >&6 else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $timer_darwin_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char nl_recvmsgs_report (); +int +main () +{ +return nl_recvmsgs_report (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nl-3; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_nl_recvmsgs_report=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +done +if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_cv_search_nl_recvmsgs_report=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_recvmsgs_report" >&5 +$as_echo "$ac_cv_search_nl_recvmsgs_report" >&6; } +ac_res=$ac_cv_search_nl_recvmsgs_report +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_reachable_netlink_save_LDFLAGS" + reachable_netlink_LDFLAGS="$opal_check_package_reachable_netlink_orig_LDFLAGS" + unset ac_cv_search_nl_recvmsgs_report +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_libnl_location" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_recvmsgs_report" >&5 +$as_echo_n "checking for library containing nl_recvmsgs_report... " >&6; } +if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char nl_recvmsgs_report (); +int +main () +{ +return nl_recvmsgs_report (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nl-3; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_nl_recvmsgs_report=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + break +fi +done +if ${ac_cv_search_nl_recvmsgs_report+:} false; then : +else + ac_cv_search_nl_recvmsgs_report=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_recvmsgs_report" >&5 +$as_echo "$ac_cv_search_nl_recvmsgs_report" >&6; } +ac_res=$ac_cv_search_nl_recvmsgs_report +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_reachable_netlink_save_LDFLAGS" + reachable_netlink_LDFLAGS="$opal_check_package_reachable_netlink_orig_LDFLAGS" + unset ac_cv_search_nl_recvmsgs_report +fi fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + reachable_netlink_LDFLAGS="$reachable_netlink_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_recvmsgs_report" >&5 +$as_echo_n "checking for library containing nl_recvmsgs_report... " >&6; } +if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$timer_darwin_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=1 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $timer_darwin_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char nl_recvmsgs_report (); +int +main () +{ +return nl_recvmsgs_report (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nl-3; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_nl_recvmsgs_report=$ac_res fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + break fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - +done +if ${ac_cv_search_nl_recvmsgs_report+:} false; then : -fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring timer_darwin_WRAPPER_EXTRA_CPPFLAGS ($timer_darwin_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring timer_darwin_WRAPPER_EXTRA_CPPFLAGS ($timer_darwin_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + ac_cv_search_nl_recvmsgs_report=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_recvmsgs_report" >&5 +$as_echo "$ac_cv_search_nl_recvmsgs_report" >&6; } +ac_res=$ac_cv_search_nl_recvmsgs_report +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component timer:darwin can compile" >&5 -$as_echo_n "checking if MCA component timer:darwin can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_timer" = "darwin" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"darwin\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"darwin\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_timer" ; then - if test "$DIRECT_timer" = "darwin" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"darwin\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"darwin\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components darwin" + opal_check_package_lib_happy="no" fi - - if test "$should_build" = "1"; then : - timer_base_include="darwin/timer_darwin.h" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_reachable_netlink_save_LDFLAGS" + reachable_netlink_LDFLAGS="$opal_check_package_reachable_netlink_orig_LDFLAGS" + unset ac_cv_search_nl_recvmsgs_report fi - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_timer_darwin_DSO=1 -else - BUILD_opal_timer_darwin_DSO=0 fi - if test "$BUILD_opal_timer_darwin_DSO" = "1"; then - MCA_BUILD_opal_timer_darwin_DSO_TRUE= - MCA_BUILD_opal_timer_darwin_DSO_FALSE='#' -else - MCA_BUILD_opal_timer_darwin_DSO_TRUE='#' - MCA_BUILD_opal_timer_darwin_DSO_FALSE= fi - - if test "$should_build" = "1"; then : - components_last_result=1 + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + reachable_netlink_LDFLAGS="$reachable_netlink_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_recvmsgs_report" >&5 +$as_echo_n "checking for library containing nl_recvmsgs_report... " >&6; } +if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + $as_echo_n "(cached) " >&6 else - components_last_result=0 -fi - - unset compile_mode - - if test $components_last_result -eq 1; then : - components_looking_for_succeed=0 -fi - - - - opal_show_subsubsubtitle "MCA component timer:linux (m4 configuration macro, priority 30)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/opal/mca/timer/linux" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_timer" ; then - if test "$DIRECT_timer" = "linux" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # if we were explicitly disabled, don't build :) - if test "$DISABLE_timer" = "1"; then : - want_component=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char nl_recvmsgs_report (); +int +main () +{ +return nl_recvmsgs_report (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nl-3; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_nl_recvmsgs_report=$ac_res fi - if test "$DISABLE_timer_linux" = "1"; then : - want_component=0 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + break fi +done +if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed else - should_build=0 + ac_cv_search_nl_recvmsgs_report=no fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component timer:linux compile mode" >&5 -$as_echo_n "checking for MCA component timer:linux compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - - - # try to configure the component - - ac_config_files="$ac_config_files opal/mca/timer/linux/Makefile" - - - if test "$with_timer" = "linux"; then : - timer_linux_happy="yes" - timer_linux_should_use=1 -else - timer_linux_should_use=0 - if test "$with_timer" = ""; then : - timer_linux_happy="yes" -else - timer_linux_happy="no" +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_recvmsgs_report" >&5 +$as_echo "$ac_cv_search_nl_recvmsgs_report" >&6; } +ac_res=$ac_cv_search_nl_recvmsgs_report +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - case "${host}" in - i?86-*linux*|x86_64*linux*|ia64-*linux*|powerpc-*linux*|powerpc64-*linux*|powerpc64le-*linux*|powerpcle-*linux*|sparc*-*linux*|aarch64-*linux*) - if test "$timer_linux_happy" = "yes"; then : - if test -r "/proc/cpuinfo"; then : - timer_linux_happy="yes" -else - timer_linux_happy="no" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_reachable_netlink_save_LDFLAGS" + reachable_netlink_LDFLAGS="$opal_check_package_reachable_netlink_orig_LDFLAGS" + unset ac_cv_search_nl_recvmsgs_report fi fi - ;; - *) - timer_linux_happy="no" - ;; - esac - - if test "$timer_linux_happy" = "no" && \ - test "$timer_linux_should_use" = "1"; then : - as_fn_error $? "Linux timer requested but not available. Aborting." "$LINENO" 5 fi - - if test "$timer_linux_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/opal/mca/timer/linux/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components linux" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components linux" - else - if test "timer" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/timer/linux/lib${OPAL_LIB_PREFIX}mca_timer_linux.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/timer/linux/libmca_timer_linux.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_timer_linux_component;" >> $outfile.extern - echo " &mca_timer_linux_component, " >> $outfile.struct - static_components="$static_components linux" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component timer:linux can compile" >&5 -$as_echo_n "checking if MCA component timer:linux can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_timer" = "linux" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_timer_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** timer component linux was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_timer" = "linux" ; then -as_fn_error $? "*** timer component linux was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$timer_linux_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -180830,7 +179741,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -180849,56 +179760,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $timer_linux_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -180911,7 +179782,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -180930,7 +179801,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -180938,187 +179809,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $timer_linux_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libnl-3 requires libnl v1 or v3" >&5 +$as_echo_n "checking if libnl-3 requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void nl_recvmsgs_report (void); +int main(int argc, char *argv[]) { + nl_recvmsgs_report (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:179836: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lnl-3 $LIBS $reachable_netlink_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lnl-3 $LIBS $reachable_netlink_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:179843: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib nl-3" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib nl-3" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libnl-3 links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libnl-3 links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libnl-3 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libnl-3 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libnl-3." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libnl-3." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas nl-3 requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas nl-3 requires libnl" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libnl-3 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libnl-3 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libnl-3." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libnl-3." >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs nl-3" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones -fi - if test "$timer_linux_WRAPPER_EXTRA_LIBS" = ""; then : +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $timer_linux_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libnl-3 requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libnl-3 requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libnl-3 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libnl-3 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libnl-3." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libnl-3." >&2;} + + libnl_sane=0 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + opal_libnlv3_libs="$opal_libnlv3_libs nl-3" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +# Go through each item in the variable and only keep the unique ones - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do -else + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_done="`expr $opal_i \>= $opal_count`" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Increment the counter - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $timer_linux_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -181142,75 +180102,10 @@ done -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$timer_linux_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=1 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $timer_linux_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -181233,188 +180128,987 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_nl_recvmsgs_report" != "no" && + test "$ac_cv_search_nl_recvmsgs_report" != "none required"; then : + reachable_netlink_LIBS="$ac_cv_search_nl_recvmsgs_report " else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring timer_linux_WRAPPER_EXTRA_CPPFLAGS ($timer_linux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring timer_linux_WRAPPER_EXTRA_CPPFLAGS ($timer_linux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + reachable_netlink_LIBS="" fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" fi + +else + opal_check_package_happy="no" +fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component timer:linux can compile" >&5 -$as_echo_n "checking if MCA component timer:linux can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # If this component was requested as the default for this - # type, then abort. - if test "$with_timer" = "linux" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"linux\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - if test ! -z "$DIRECT_timer" ; then - if test "$DIRECT_timer" = "linux" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"linux\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # see comment above + unset ac_cv_search_nl_recvmsgs_report + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + reachable_netlink_LDFLAGS="$reachable_netlink_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_recvmsgs_report" >&5 +$as_echo_n "checking for library containing nl_recvmsgs_report... " >&6; } +if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # add component to all component list - all_components="$all_components linux" +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char nl_recvmsgs_report (); +int +main () +{ +return nl_recvmsgs_report (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nl-3; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_nl_recvmsgs_report=$ac_res fi - - - if test "$should_build" = "1"; then : - timer_base_include="linux/timer_linux.h" +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + break fi +done +if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_opal_timer_linux_DSO=1 else - BUILD_opal_timer_linux_DSO=0 + ac_cv_search_nl_recvmsgs_report=no fi - if test "$BUILD_opal_timer_linux_DSO" = "1"; then - MCA_BUILD_opal_timer_linux_DSO_TRUE= - MCA_BUILD_opal_timer_linux_DSO_FALSE='#' +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_recvmsgs_report" >&5 +$as_echo "$ac_cv_search_nl_recvmsgs_report" >&6; } +ac_res=$ac_cv_search_nl_recvmsgs_report +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - MCA_BUILD_opal_timer_linux_DSO_TRUE='#' - MCA_BUILD_opal_timer_linux_DSO_FALSE= + opal_check_package_lib_happy="no" fi - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_reachable_netlink_save_LDFLAGS" + reachable_netlink_LDFLAGS="$opal_check_package_reachable_netlink_orig_LDFLAGS" + unset ac_cv_search_nl_recvmsgs_report fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_libnl_location" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_recvmsgs_report" >&5 +$as_echo_n "checking for library containing nl_recvmsgs_report... " >&6; } +if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - unset compile_mode +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char nl_recvmsgs_report (); +int +main () +{ +return nl_recvmsgs_report (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nl-3; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_nl_recvmsgs_report=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + break +fi +done +if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - if test $components_last_result -eq 1; then : - components_looking_for_succeed=0 +else + ac_cv_search_nl_recvmsgs_report=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_recvmsgs_report" >&5 +$as_echo "$ac_cv_search_nl_recvmsgs_report" >&6; } +ac_res=$ac_cv_search_nl_recvmsgs_report +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_reachable_netlink_save_LDFLAGS" + reachable_netlink_LDFLAGS="$opal_check_package_reachable_netlink_orig_LDFLAGS" + unset ac_cv_search_nl_recvmsgs_report +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + reachable_netlink_LDFLAGS="$reachable_netlink_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_recvmsgs_report" >&5 +$as_echo_n "checking for library containing nl_recvmsgs_report... " >&6; } +if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - opal_show_subsubsubtitle "MCA component timer:solaris (m4 configuration macro, priority 30)" +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char nl_recvmsgs_report (); +int +main () +{ +return nl_recvmsgs_report (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nl-3; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_nl_recvmsgs_report=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + break +fi +done +if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" +else + ac_cv_search_nl_recvmsgs_report=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_recvmsgs_report" >&5 +$as_echo "$ac_cv_search_nl_recvmsgs_report" >&6; } +ac_res=$ac_cv_search_nl_recvmsgs_report +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_reachable_netlink_save_LDFLAGS" + reachable_netlink_LDFLAGS="$opal_check_package_reachable_netlink_orig_LDFLAGS" + unset ac_cv_search_nl_recvmsgs_report +fi +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + reachable_netlink_LDFLAGS="$reachable_netlink_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_recvmsgs_report" >&5 +$as_echo_n "checking for library containing nl_recvmsgs_report... " >&6; } +if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - component_path="$srcdir/opal/mca/timer/solaris" - want_component=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char nl_recvmsgs_report (); +int +main () +{ +return nl_recvmsgs_report (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nl-3; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_nl_recvmsgs_report=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_nl_recvmsgs_report+:} false; then : + break +fi +done +if ${ac_cv_search_nl_recvmsgs_report+:} false; then : - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi +else + ac_cv_search_nl_recvmsgs_report=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_recvmsgs_report" >&5 +$as_echo "$ac_cv_search_nl_recvmsgs_report" >&6; } +ac_res=$ac_cv_search_nl_recvmsgs_report +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_reachable_netlink_save_LDFLAGS" + reachable_netlink_LDFLAGS="$opal_check_package_reachable_netlink_orig_LDFLAGS" + unset ac_cv_search_nl_recvmsgs_report +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_libnl_sane; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_timer" ; then - if test "$DIRECT_timer" = "solaris" ; then - want_component=1 - else - want_component=0 - fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + opal_libnl_sane=1 + case $host in + *linux*) + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libnl-3 requires libnl v1 or v3" >&5 +$as_echo_n "checking if libnl-3 requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void nl_recvmsgs_report (void); +int main(int argc, char *argv[]) { + nl_recvmsgs_report (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:180561: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lnl-3 $LIBS $reachable_netlink_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lnl-3 $LIBS $reachable_netlink_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:180568: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib nl-3" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib nl-3" >&2;} + +fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libnl-3 links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libnl-3 links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libnl-3 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libnl-3 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libnl-3." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libnl-3." >&2;} + + libnl_sane=0 +fi + + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas nl-3 requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas nl-3 requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libnl-3 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libnl-3 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libnl-3." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libnl-3." >&2;} + + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs nl-3" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # if we were explicitly disabled, don't build :) - if test "$DISABLE_timer" = "1"; then : - want_component=0 +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - if test "$DISABLE_timer_solaris" = "1"; then : - want_component=0 + fi - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libnl-3 requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libnl-3 requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libnl-3 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libnl-3 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libnl-3." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libnl-3." >&2;} + + libnl_sane=0 else - should_build=0 + opal_libnlv3_libs="$opal_libnlv3_libs nl-3" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component timer:solaris compile mode" >&5 -$as_echo_n "checking for MCA component timer:solaris compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - # try to configure the component + opal_libnl_sane=$libnl_sane - ac_config_files="$ac_config_files opal/mca/timer/solaris/Makefile" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "$with_timer" = "solaris"; then : - timer_solaris_happy="yes" - timer_solaris_should_use=1 + + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_nl_recvmsgs_report" != "no" && + test "$ac_cv_search_nl_recvmsgs_report" != "none required"; then : + reachable_netlink_LIBS="$ac_cv_search_nl_recvmsgs_report " else - timer_solaris_should_use=0 - if test "$with_timer" = ""; then : - timer_solaris_happy="yes" + reachable_netlink_LIBS="" +fi + opal_check_package_happy="yes" else - timer_solaris_happy="no" + opal_check_package_happy="no" fi + + fi + unset opal_check_package_header_happy + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + + if test "$opal_check_package_happy" = "yes"; then : - if test "$timer_solaris_happy" = "yes"; then : - ac_fn_c_check_func "$LINENO" "gethrtime" "ac_cv_func_gethrtime" -if test "x$ac_cv_func_gethrtime" = xyes; then : - timer_solaris_happy="yes" else - timer_solaris_happy="no" + reachable_netlink_CPPFLAGS="$opal_check_package_reachable_netlink_orig_CPPFLAGS" + reachable_netlink_LDFLAGS="$opal_check_package_reachable_netlink_orig_LDFLAGS" + reachable_netlink_LIBS="$opal_check_package_reachable_netlink_orig_LIBS" + opal_libnlv3_happy=0 +fi + + CPPFLAGS="$opal_check_package_reachable_netlink_save_CPPFLAGS" + LDFLAGS="$opal_check_package_reachable_netlink_save_LDFLAGS" + LIBS="$opal_check_package_reachable_netlink_save_LIBS" + + + # Note that OPAL_CHECK_PACKAGE is going to add + # -I$dir/include into reachable_netlink_CPPFLAGS. But because libnl v3 + # puts the headers in $dir/include/libnl3, we need to + # overwrite reachable_netlink_CPPFLAGS with -I$dir/include/libnl3. We can do + # this unconditionally; we don't have to check for + # success (checking for success occurs below). + reachable_netlink_CPPFLAGS=$opal_tmp_CPPFLAGS fi + # If we found libnl-3, we *also* need libnl-route-3 + LIBS_save=$LIBS + LDFLAGS_save=$LDFLAGS + if test -n "$reachable_netlink_LDFLAGS"; then : + LDFLAGS="$reachable_netlink_LDFLAGS $LDFLAGS" fi + if test $opal_libnlv3_happy -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_rtgen_request" >&5 +$as_echo_n "checking for library containing nl_rtgen_request... " >&6; } +if ${ac_cv_search_nl_rtgen_request+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$timer_solaris_happy" = "no" && \ - test "$timer_solaris_should_use" = "1"; then : - as_fn_error $? "Solaris timer requested but not available. Aborting." "$LINENO" 5 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char nl_rtgen_request (); +int +main () +{ +return nl_rtgen_request (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nl-route-3; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_nl_rtgen_request=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_nl_rtgen_request+:} false; then : + break fi +done +if ${ac_cv_search_nl_rtgen_request+:} false; then : - if test "$timer_solaris_happy" = "yes"; then : +else + ac_cv_search_nl_rtgen_request=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_rtgen_request" >&5 +$as_echo "$ac_cv_search_nl_rtgen_request" >&6; } +ac_res=$ac_cv_search_nl_rtgen_request +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + opal_libnlv3_happy=0 +fi + +fi + LIBS=$LIBS_save + LDFLAGS=$LDFLAGS_save + + # Just because libnl* is evil, double check that the + # netlink/version.h we found was for libnl v3. As far as we + # know, netlink/version.h only first appeared in version + # 3... but let's really be sure. + if test $opal_libnlv3_happy -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to ensure these really are libnl v3 headers" >&5 +$as_echo_n "checking to ensure these really are libnl v3 headers... " >&6; } + if test -n "$reachable_netlink_CPPFLAGS"; then : + CPPFLAGS="$reachable_netlink_CPPFLAGS $CPPFLAGS" +fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#ifndef LIBNL_VER_MAJ +#error "LIBNL_VER_MAJ not defined!" +#endif +/* to the best of our knowledge, version.h only exists in libnl v3 */ +#if LIBNL_VER_MAJ != 3 +#error "LIBNL_VER_MAJ != 3, I am sad" +#endif + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_libnlv3_happy=0 +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + + CPPFLAGS=$CPPFLAGS_save +else + opal_libnlv3_happy=0 +fi + + # If we found everything + if test $opal_libnlv3_happy -eq 1; then : + reachable_netlink_LIBS="-lnl-3 -lnl-route-3" + OPAL_HAVE_LIBNL3=1 +else + # OPAL_CHECK_PACKAGE(...,nl_recvmsgs_report,...) might have set the variables below + # so reset them if libnl v3 cannot be used + reachable_netlink_CPPFLAGS="" + reachable_netlink_LDFLAGS="" + reachable_netlink_LIBS="" +fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + if test "$OPAL_HAVE_LIBNL3" != "1"; then : + opal_reachable_netlink_happy=0 +fi +fi + + if test $opal_reachable_netlink_happy -eq 1; then : should_build=$should_build else should_build=0 fi + + + + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -181423,45 +181117,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/opal/mca/timer/solaris/post_configure.sh" + infile="$srcdir/opal/mca/reachable/netlink/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components solaris" + all_components="$all_components netlink" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components solaris" + dso_components="$dso_components netlink" else - if test "timer" = "common"; then + if test "reachable" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/timer/solaris/lib${OPAL_LIB_PREFIX}mca_timer_solaris.la $static_ltlibs" + static_ltlibs="mca/reachable/netlink/lib${OPAL_LIB_PREFIX}mca_reachable_netlink.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/timer/solaris/libmca_timer_solaris.la $static_ltlibs" + static_ltlibs="mca/reachable/netlink/libmca_reachable_netlink.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_timer_solaris_component;" >> $outfile.extern - echo " &mca_timer_solaris_component, " >> $outfile.struct - static_components="$static_components solaris" + echo "extern const mca_base_component_t mca_reachable_netlink_component;" >> $outfile.extern + echo " &mca_reachable_netlink_component, " >> $outfile.struct + static_components="$static_components netlink" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component timer:solaris can compile" >&5 -$as_echo_n "checking if MCA component timer:solaris can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component reachable:netlink can compile" >&5 +$as_echo_n "checking if MCA component reachable:netlink can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_timer" = "solaris" ; then + if test "$DIRECT_reachable" = "netlink" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_opal_timer_DIRECT_CALL_HEADER=$line" + str="MCA_opal_reachable_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** timer component solaris was supposed to be direct-called, but +as_fn_error $? "*** reachable component netlink was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -181469,8 +181163,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_timer" = "solaris" ; then -as_fn_error $? "*** timer component solaris was supposed to be direct-called, but + if test "$DIRECT_reachable" = "netlink" ; then +as_fn_error $? "*** reachable component netlink was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -181485,7 +181179,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$timer_solaris_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$reachable_netlink_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -181525,7 +181219,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $timer_solaris_LDFLAGS; do + for arg in $reachable_netlink_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -181606,7 +181300,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $timer_solaris_WRAPPER_EXTRA_LDFLAGS; do + for arg in $reachable_netlink_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -181648,7 +181342,7 @@ fi - if test "$timer_solaris_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$reachable_netlink_WRAPPER_EXTRA_LIBS" = ""; then : @@ -181688,7 +181382,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $timer_solaris_LIBS; do + for arg in $reachable_netlink_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -181769,7 +181463,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $timer_solaris_WRAPPER_EXTRA_LIBS; do + for arg in $reachable_netlink_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -181817,8 +181511,8 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$timer_solaris_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=1 + if test "$reachable_netlink_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -181860,7 +181554,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $timer_solaris_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $reachable_netlink_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -181903,32 +181597,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring timer_solaris_WRAPPER_EXTRA_CPPFLAGS ($timer_solaris_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring timer_solaris_WRAPPER_EXTRA_CPPFLAGS ($timer_solaris_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring reachable_netlink_WRAPPER_EXTRA_CPPFLAGS ($reachable_netlink_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring reachable_netlink_WRAPPER_EXTRA_CPPFLAGS ($reachable_netlink_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component timer:solaris can compile" >&5 -$as_echo_n "checking if MCA component timer:solaris can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component reachable:netlink can compile" >&5 +$as_echo_n "checking if MCA component reachable:netlink can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_timer" = "solaris" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"solaris\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"solaris\" failed to configure properly" >&2;} + if test "$with_reachable" = "netlink" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"netlink\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"netlink\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_timer" ; then - if test "$DIRECT_timer" = "solaris" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"solaris\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"solaris\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_reachable" ; then + if test "$DIRECT_reachable" = "netlink" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"netlink\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"netlink\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -181936,27 +181630,23 @@ fi # add component to all component list - all_components="$all_components solaris" + all_components="$all_components netlink" fi - if test "$should_build" = "1"; then : - timer_base_include="solaris/timer_solaris.h" -fi - # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_opal_timer_solaris_DSO=1 + BUILD_opal_reachable_netlink_DSO=1 else - BUILD_opal_timer_solaris_DSO=0 + BUILD_opal_reachable_netlink_DSO=0 fi - if test "$BUILD_opal_timer_solaris_DSO" = "1"; then - MCA_BUILD_opal_timer_solaris_DSO_TRUE= - MCA_BUILD_opal_timer_solaris_DSO_FALSE='#' + if test "$BUILD_opal_reachable_netlink_DSO" = "1"; then + MCA_BUILD_opal_reachable_netlink_DSO_TRUE= + MCA_BUILD_opal_reachable_netlink_DSO_FALSE='#' else - MCA_BUILD_opal_timer_solaris_DSO_TRUE='#' - MCA_BUILD_opal_timer_solaris_DSO_FALSE= + MCA_BUILD_opal_reachable_netlink_DSO_TRUE='#' + MCA_BUILD_opal_reachable_netlink_DSO_FALSE= fi @@ -181968,9 +181658,7 @@ unset compile_mode - if test $components_last_result -eq 1; then : - components_looking_for_succeed=0 -fi + @@ -181979,150 +181667,678 @@ # works", so we don't :) - MCA_opal_timer_ALL_COMPONENTS="$all_components" - MCA_opal_timer_STATIC_COMPONENTS="$static_components" - MCA_opal_timer_DSO_COMPONENTS="$dso_components" - MCA_opal_timer_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_opal_timer_ALL_SUBDIRS= - for item in $all_components ; do - MCA_opal_timer_ALL_SUBDIRS="$MCA_opal_timer_ALL_SUBDIRS mca/timer/$item" - done - + if test "1" != "0"; then : - MCA_opal_timer_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_opal_timer_STATIC_SUBDIRS="$MCA_opal_timer_STATIC_SUBDIRS mca/timer/$item" - done - + for component_path in $srcdir/opal/mca/reachable/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component reachable:$component (need to configure)" + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - MCA_opal_timer_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_opal_timer_DSO_SUBDIRS="$MCA_opal_timer_DSO_SUBDIRS mca/timer/$item" - done + component_path="$srcdir/opal/mca/reachable/$component" + want_component=0 - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "timer" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real + SHARED_FRAMEWORK="$DSO_reachable" + str="SHARED_COMPONENT=\$DSO_reachable_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_reachable" + str="STATIC_COMPONENT=\$STATIC_reachable_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component reachable:$component compile mode" >&5 +$as_echo_n "checking for MCA component reachable:$component compile mode... " >&6; } + if test "$DIRECT_reachable" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + +# +# Invoke configure in a specific subdirectory. +# +# opal/mca/reachable/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="opal/mca/reachable/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/opal/mca/reachable/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + reachable_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + reachable_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/reachable/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "reachable" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/reachable/$component/lib${OPAL_LIB_PREFIX}mca_reachable_$component.la $static_ltlibs" else - rm -f $outfile + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/reachable/$component/libmca_reachable_$component.la $static_ltlibs" fi + echo "extern const mca_base_component_t mca_reachable_$component_component;" >> $outfile.extern + echo " &mca_reachable_$component_component, " >> $outfile.struct + static_components="$static_components $component" fi - rm -f $outfile.struct $outfile.extern - unset all_components static_components dso_components outfile outfile_real + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component reachable:$component can compile" >&5 +$as_echo_n "checking if MCA component reachable:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_reachable" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_reachable_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** reachable component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_reachable" = "$component" ; then +as_fn_error $? "*** reachable component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - # someone should have set this... - if test "$timer_base_include" = "" ; then - timer_base_include="base/timer_base_null.h" + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$reachable_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi + done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -cat >>confdefs.h <<_ACEOF -#define MCA_timer_IMPLEMENTATION_HEADER "opal/mca/timer/$timer_base_include" -_ACEOF + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - # note that mca_wrapper_extra_* is a running list, and we take checkpoints at the end of our project - opal_mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags" - opal_mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags" - opal_mca_wrapper_extra_libs="$mca_wrapper_extra_libs" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done +str="line=\$reachable_$component_WRAPPER_EXTRA_LIBS" + eval "$str" -# BWB: Until projects have separate configure scripts - # and can skip running all of ORTE, just avoid recursing - # into orte sub directory if orte disabled - if (test "orte" = "ompi" && test "$enable_mpi" != "no") || test "orte" = "opal" || test "orte" = "orte" || test "orte" = "oshmem"; then - MCA_PROJECT_SUBDIRS="$MCA_PROJECT_SUBDIRS orte" - MCA_PROJECT_DIST_SUBDIRS="$MCA_PROJECT_DIST_SUBDIRS orte" - fi + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # can't use a variable rename here because these need to be evaled - # at auto* time. + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_show_subtitle "Configuring MCA for orte" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for frameworks for orte" >&5 -$as_echo_n "checking for frameworks for orte... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: common, errmgr, ess, filem, grpcomm, iof, odls, oob, plm, ras, regx, rmaps, rml, routed, rtc, schizo, snapc, sstore, state" >&5 -$as_echo "common, errmgr, ess, filem, grpcomm, iof, odls, oob, plm, ras, regx, rmaps, rml, routed, rtc, schizo, snapc, sstore, state" >&6; } + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - # iterate through the list of frameworks. There is something - # funky with m4 foreach if the list is defined, but empty. It - # will call the 3rd argument once with an empty value for the - # first argument. Protect against calling MCA_CONFIGURE_FRAMEWORK - # with an empty second argument. Grrr.... - # if there isn't a project list, abort - # - # Also setup two variables for Makefiles: - # MCA_project_FRAMEWORKS - list of frameworks in that project - # MCA_project_FRAMEWORK_LIBS - list of libraries (or variables pointing - # to more libraries) that must be included - # in the project's main library + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - MCA_orte_FRAMEWORKS= - MCA_orte_FRAMEWORKS_SUBDIRS= - MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS= - MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS= - MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS= - MCA_orte_FRAMEWORK_LIBS= + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - MCA_orte_FRAMEWORKS="common $MCA_orte_FRAMEWORKS" - MCA_orte_FRAMEWORKS_SUBDIRS="mca/common $MCA_orte_FRAMEWORKS_SUBDIRS" - MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="\$(MCA_orte_common_ALL_SUBDIRS) $MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS" - MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="\$(MCA_orte_common_DSO_SUBDIRS) $MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS" - MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="\$(MCA_orte_common_STATIC_SUBDIRS) $MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_common_STATIC_LTLIBS)" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_show_subsubtitle "Configuring MCA framework common" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component reachable:$component can compile" >&5 +$as_echo_n "checking if MCA component reachable:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_reachable" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_reachable" ; then + if test "$DIRECT_reachable" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + fi + fi + done + +fi + + MCA_opal_reachable_ALL_COMPONENTS="$all_components" + MCA_opal_reachable_STATIC_COMPONENTS="$static_components" + MCA_opal_reachable_DSO_COMPONENTS="$dso_components" + MCA_opal_reachable_STATIC_LTLIBS="$static_ltlibs" + + + + + + + + MCA_opal_reachable_ALL_SUBDIRS= + for item in $all_components ; do + MCA_opal_reachable_ALL_SUBDIRS="$MCA_opal_reachable_ALL_SUBDIRS mca/reachable/$item" + done + + + + MCA_opal_reachable_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_opal_reachable_STATIC_SUBDIRS="$MCA_opal_reachable_STATIC_SUBDIRS mca/reachable/$item" + done + + + + MCA_opal_reachable_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_opal_reachable_DSO_SUBDIRS="$MCA_opal_reachable_DSO_SUBDIRS mca/reachable/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "reachable" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS shmem" + MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/shmem" + MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_shmem_ALL_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_shmem_DSO_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_shmem_STATIC_SUBDIRS)" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/shmem/libmca_shmem.la" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_shmem_STATIC_LTLIBS)" + + opal_show_subsubtitle "Configuring MCA framework shmem" @@ -182137,11 +182353,11 @@ # exists. Need to do this for VPATH builds, because the directory # may not exist yet. For the "common" type, it's not really a # component, so it doesn't have a base. - outdir=orte/mca/common + outdir=opal/mca/shmem/base as_dir=$outdir; as_fn_mkdir_p # emit Makefile rule - ac_config_files="$ac_config_files orte/mca/common/Makefile" + ac_config_files="$ac_config_files opal/mca/shmem/Makefile" # remove any previously generated #include files @@ -182151,14 +182367,14 @@ touch $outfile.struct $outfile.extern # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework common" >&5 -$as_echo_n "checking for no configure components in framework common... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework shmem" >&5 +$as_echo_n "checking for no configure components in framework shmem... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework common" >&5 -$as_echo_n "checking for m4 configure components in framework common... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: alps" >&5 -$as_echo "alps" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework shmem" >&5 +$as_echo_n "checking for m4 configure components in framework shmem... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: mmap, posix, sysv" >&5 +$as_echo "mmap, posix, sysv" >&6; } # If there are components in the no configure list, but we're # doing one of the "special" selection logics, abort with a @@ -182178,13 +182394,13 @@ components_last_result=0 - opal_show_subsubsubtitle "MCA component common:alps (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component shmem:mmap (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/orte/mca/common/alps" + component_path="$srcdir/opal/mca/shmem/mmap" want_component=0 # build if: @@ -182216,8 +182432,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "alps" ; then + if test ! -z "$DIRECT_shmem" ; then + if test "$DIRECT_shmem" = "mmap" ; then want_component=1 else want_component=0 @@ -182226,10 +182442,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_common" = "1"; then : + if test "$DISABLE_shmem" = "1"; then : want_component=0 fi - if test "$DISABLE_common_alps" = "1"; then : + if test "$DISABLE_shmem_mmap" = "1"; then : want_component=0 fi @@ -182242,11 +182458,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_common" - SHARED_COMPONENT="$DSO_common_alps" + SHARED_FRAMEWORK="$DSO_shmem" + SHARED_COMPONENT="$DSO_shmem_mmap" - STATIC_FRAMEWORK="$STATIC_common" - STATIC_COMPONENT="$STATIC_common_alps" + STATIC_FRAMEWORK="$STATIC_shmem" + STATIC_COMPONENT="$STATIC_shmem_mmap" shared_mode_override=static @@ -182264,9 +182480,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:alps compile mode" >&5 -$as_echo_n "checking for MCA component common:alps compile mode... " >&6; } - if test "$DIRECT_common" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component shmem:mmap compile mode" >&5 +$as_echo_n "checking for MCA component shmem:mmap compile mode... " >&6; } + if test "$DIRECT_shmem" = "mmap" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -182277,577 +182493,17619 @@ # try to configure the component - ac_config_files="$ac_config_files orte/mca/common/alps/Makefile" - - - - if test -z "$opal_check_cray_alps_happy"; then + ac_config_files="$ac_config_files opal/mca/shmem/mmap/Makefile" -# Check whether --with-alps was given. -if test "${with_alps+set}" = set; then : - withval=$with_alps; -else - with_alps=auto + # do we have the mmap shm stuff? + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if want mmap shared memory support" >&5 +$as_echo_n "checking if want mmap shared memory support... " >&6; } + # Check whether --enable-mmap-shmem was given. +if test "${enable_mmap_shmem+set}" = set; then : + enableval=$enable_mmap_shmem; fi + if test "$enable_mmap_shmem" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + shmem_mmap_sm_build_mmap=0 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mmap" >&5 +$as_echo_n "checking for library containing mmap... " >&6; } +if ${ac_cv_search_mmap+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test -f /etc/opt/cray/release/clerelease; then - cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` - else - cle_level="unknown" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 -$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } - if test "$cle_level" = "4" && test "$with_alps" != "no"; then : - - -# -# if we've gotten here, its because we are building on a CLE 4 system -# - opal_check_alps_cle4_libdir_happy="no" - opal_check_alps_cle4_dir_happy="no" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 -$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } - - -# Check whether --with-alps-libdir was given. -if test "${with_alps_libdir+set}" = set; then : - withval=$with_alps_libdir; +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char mmap (); +int +main () +{ +return mmap (); + ; + return 0; +} +_ACEOF +for ac_lib in '' c; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_mmap=$ac_res fi - - -# -# check to see if Open MPI is being built on a CLE 4 eslogin node -# - if test -f /etc/opt/cray/release/ESLrelease; then : - default_alps_dir="/opt/cray/xe-sysroot/default/usr" -else - default_alps_dir="/usr" +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_mmap+:} false; then : + break fi +done +if ${ac_cv_search_mmap+:} false; then : - if test -z "$with_alps_libdir"; then : - if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : - if test -d "$with_alps_libdir/lib64"; then : - opal_check_alps_libdir="$with_alps_libdir/lib64" else - opal_check_alps_libdir="$with_alps_libdir/lib" + ac_cv_search_mmap=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mmap" >&5 +$as_echo "$ac_cv_search_mmap" >&6; } +ac_res=$ac_cv_search_mmap +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + shmem_mmap_sm_build_mmap=1 else - opal_check_alps_libdir="$default_alps_dir/lib/alps" + shmem_mmap_sm_build_mmap=0 fi fi - - if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : - opal_check_alps_dir=$default_alps_dir -else - opal_check_alps_dir=$with_alps + if test "$enable_mmap_shmem" = "yes" && test "$shmem_mmap_sm_build_mmap" = "0"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: mmap shared memory support requested but not found" >&5 +$as_echo "$as_me: WARNING: mmap shared memory support requested but not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 -$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } - if test -f "$opal_check_alps_libdir/libalps.a"; then : - opal_check_alps_libdir_cle4_happy="yes" + if test "$shmem_mmap_sm_build_mmap" = "1"; then : + should_build=$should_build else - opal_check_alps_libdir_cle4_happy="no", - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + should_build=0 fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 -$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } - if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : - opal_check_alps_dir_cle4_happy="yes" -else - opal_check_alps_dir_cle4_happy="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : - CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" - CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - opal_check_cray_alps_happy="yes" -else - opal_check_cray_alps_happy="no" -fi +cat >>confdefs.h <<_ACEOF +#define OPAL_SHMEM_MMAP $shmem_mmap_sm_build_mmap +_ACEOF -else - if test "$with_alps" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy=no - common_alps_happy="no" -else - if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 -$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" -if test -n "$CRAY_ALPSLLI_CFLAGS"; then - pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSLLI_LIBS"; then - pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi + if test "$should_build" = "1"; then : -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/shmem/mmap/post_configure.sh" -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components mmap" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components mmap" + else + if test "shmem" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/shmem/mmap/lib${OPAL_LIB_PREFIX}mca_shmem_mmap.la $static_ltlibs" else - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/shmem/mmap/libmca_shmem_mmap.la $static_ltlibs" fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + echo "extern const mca_base_component_t mca_shmem_mmap_component;" >> $outfile.extern + echo " &mca_shmem_mmap_component, " >> $outfile.struct + static_components="$static_components mmap" + fi -else - CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS - CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS - CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component shmem:mmap can compile" >&5 +$as_echo_n "checking if MCA component shmem:mmap can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 -$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_shmem" = "mmap" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_shmem_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** shmem component mmap was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_shmem" = "mmap" ; then +as_fn_error $? "*** shmem component mmap was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi -if test -n "$CRAY_ALPSUTIL_CFLAGS"; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$shmem_mmap_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $shmem_mmap_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - pkg_failed=yes + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - else - pkg_failed=untried fi -if test -n "$CRAY_ALPSUTIL_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + else - pkg_failed=yes + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $shmem_mmap_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - else - pkg_failed=untried + done fi -if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - pkg_failed=yes + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - else - pkg_failed=untried fi + done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` - else - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` + if test "$shmem_mmap_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 + done - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + for arg in $shmem_mmap_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS - CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS - CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi fi + done -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 -$as_echo_n "checking for CRAY_ALPS... " >&6; } + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + -if test -n "$CRAY_ALPS_CFLAGS"; then - pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes else - pkg_failed=yes + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $shmem_mmap_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - else - pkg_failed=untried + done fi -if test -n "$CRAY_ALPS_LIBS"; then - pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - pkg_failed=yes + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - else - pkg_failed=untried fi -if test -n "$CRAY_ALPS_STATIC_LIBS"; then - pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$shmem_mmap_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $shmem_mmap_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - pkg_failed=yes + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi - else - pkg_failed=untried fi + done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi else - _pkg_short_errors_supported=no + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring shmem_mmap_WRAPPER_EXTRA_CPPFLAGS ($shmem_mmap_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring shmem_mmap_WRAPPER_EXTRA_CPPFLAGS ($shmem_mmap_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` - else - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component shmem:mmap can compile" >&5 +$as_echo_n "checking if MCA component shmem:mmap can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_shmem" = "mmap" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"mmap\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"mmap\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_shmem" ; then + if test "$DIRECT_shmem" = "mmap" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"mmap\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"mmap\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPS_PKG_ERRORS" >&5 + fi - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 + # add component to all component list + all_components="$all_components mmap" fi -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_shmem_mmap_DSO=1 +else + BUILD_opal_shmem_mmap_DSO=0 +fi + if test "$BUILD_opal_shmem_mmap_DSO" = "1"; then + MCA_BUILD_opal_shmem_mmap_DSO_TRUE= + MCA_BUILD_opal_shmem_mmap_DSO_FALSE='#' +else + MCA_BUILD_opal_shmem_mmap_DSO_TRUE='#' + MCA_BUILD_opal_shmem_mmap_DSO_FALSE= fi + + if test "$should_build" = "1"; then : + components_last_result=1 else - CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS - CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS - CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" + components_last_result=0 fi -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 -$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } + unset compile_mode -if test -n "$CRAY_WLM_DETECT_CFLAGS"; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + + + + + opal_show_subsubsubtitle "MCA component shmem:posix (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/opal/mca/shmem/posix" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_shmem" ; then + if test "$DIRECT_shmem" = "posix" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_shmem" = "1"; then : + want_component=0 +fi + if test "$DISABLE_shmem_posix" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else - pkg_failed=yes + should_build=0 fi - else - pkg_failed=untried + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + SHARED_FRAMEWORK="$DSO_shmem" + SHARED_COMPONENT="$DSO_shmem_posix" + + STATIC_FRAMEWORK="$STATIC_shmem" + STATIC_COMPONENT="$STATIC_shmem_posix" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component shmem:posix compile mode" >&5 +$as_echo_n "checking for MCA component shmem:posix compile mode... " >&6; } + if test "$DIRECT_shmem" = "posix" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/shmem/posix/Makefile" + + + # do we have the posix shm stuff? + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if want POSIX shared memory support" >&5 +$as_echo_n "checking if want POSIX shared memory support... " >&6; } + # Check whether --enable-posix-shmem was given. +if test "${enable_posix_shmem+set}" = set; then : + enableval=$enable_posix_shmem; fi -if test -n "$CRAY_WLM_DETECT_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + + if test "$enable_posix_shmem" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + shmem_posix_sm_build_posix=0 else - pkg_failed=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in LIBS_save add; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"LIBS_save add\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + LIBS_save=$LIBS + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing shm_open" >&5 +$as_echo_n "checking for library containing shm_open... " >&6; } +if ${ac_cv_search_shm_open+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shm_open (); +int +main () +{ +return shm_open (); + ; + return 0; +} +_ACEOF +for ac_lib in '' rt; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_shm_open=$ac_res fi - else - pkg_failed=untried +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_shm_open+:} false; then : + break fi -if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes +done +if ${ac_cv_search_shm_open+:} false; then : + else - pkg_failed=yes + ac_cv_search_shm_open=no fi - else - pkg_failed=untried +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_shm_open" >&5 +$as_echo "$ac_cv_search_shm_open" >&6; } +ac_res=$ac_cv_search_shm_open +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + # Found it! See if anything was added to LIBS + add=`printf '%s\n' "$LIBS" | sed -e "s/$LIBS_save$//"` + if test -n "$add"; then : -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` - else - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 + done - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $add; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${shmem_posix_LIBS}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$shmem_posix_LIBS"; then : + shmem_posix_LIBS=$arg +else + shmem_posix_LIBS="$shmem_posix_LIBS $arg" +fi fi + done -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + shmem_posix_have_shm_open=1 + shmem_posix_sm_build_posix=1 +else + shmem_posix_have_shm_open=0 + shmem_posix_sm_build_posix=0 fi + + +cat >>confdefs.h <<_ACEOF +#define OPAL_HAVE_SHMEM_POSIX $shmem_posix_have_shm_open +_ACEOF + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$enable_posix_shmem" = "yes" && test "$shmem_posix_sm_build_posix" = "0"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: POSIX shared memory support requested but not found" >&5 +$as_echo "$as_me: WARNING: POSIX shared memory support requested but not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +fi + + if test "$shmem_posix_sm_build_posix" = "1"; then : + should_build=$should_build +else + should_build=0 +fi + + +cat >>confdefs.h <<_ACEOF +#define OPAL_SHMEM_POSIX $shmem_posix_sm_build_posix +_ACEOF + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/shmem/posix/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components posix" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components posix" + else + if test "shmem" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/shmem/posix/lib${OPAL_LIB_PREFIX}mca_shmem_posix.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/shmem/posix/libmca_shmem_posix.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_shmem_posix_component;" >> $outfile.extern + echo " &mca_shmem_posix_component, " >> $outfile.struct + static_components="$static_components posix" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component shmem:posix can compile" >&5 +$as_echo_n "checking if MCA component shmem:posix can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_shmem" = "posix" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_shmem_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** shmem component posix was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_shmem" = "posix" ; then +as_fn_error $? "*** shmem component posix was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$shmem_posix_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $shmem_posix_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $shmem_posix_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$shmem_posix_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $shmem_posix_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $shmem_posix_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$shmem_posix_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $shmem_posix_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring shmem_posix_WRAPPER_EXTRA_CPPFLAGS ($shmem_posix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring shmem_posix_WRAPPER_EXTRA_CPPFLAGS ($shmem_posix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component shmem:posix can compile" >&5 +$as_echo_n "checking if MCA component shmem:posix can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_shmem" = "posix" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"posix\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"posix\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_shmem" ; then + if test "$DIRECT_shmem" = "posix" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"posix\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"posix\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components posix" +fi + + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_shmem_posix_DSO=1 +else + BUILD_opal_shmem_posix_DSO=0 +fi + if test "$BUILD_opal_shmem_posix_DSO" = "1"; then + MCA_BUILD_opal_shmem_posix_DSO_TRUE= + MCA_BUILD_opal_shmem_posix_DSO_FALSE='#' +else + MCA_BUILD_opal_shmem_posix_DSO_TRUE='#' + MCA_BUILD_opal_shmem_posix_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + + + + + opal_show_subsubsubtitle "MCA component shmem:sysv (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/opal/mca/shmem/sysv" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_shmem" ; then + if test "$DIRECT_shmem" = "sysv" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_shmem" = "1"; then : + want_component=0 +fi + if test "$DISABLE_shmem_sysv" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + SHARED_FRAMEWORK="$DSO_shmem" + SHARED_COMPONENT="$DSO_shmem_sysv" + + STATIC_FRAMEWORK="$STATIC_shmem" + STATIC_COMPONENT="$STATIC_shmem_sysv" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component shmem:sysv compile mode" >&5 +$as_echo_n "checking for MCA component shmem:sysv compile mode... " >&6; } + if test "$DIRECT_shmem" = "sysv" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/shmem/sysv/Makefile" + + + # do we have the sysv shm stuff? + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if want SYSV shared memory support" >&5 +$as_echo_n "checking if want SYSV shared memory support... " >&6; } + # Check whether --enable-sysv-shmem was given. +if test "${enable_sysv_shmem+set}" = set; then : + enableval=$enable_sysv_shmem; +fi + + if test "$enable_sysv_shmem" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + shmem_sysv_sm_build_sysv=0 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + ac_fn_c_check_func "$LINENO" "shmget" "ac_cv_func_shmget" +if test "x$ac_cv_func_shmget" = xyes; then : + shmem_sysv_sm_build_sysv=1 +else + shmem_sysv_sm_build_sysv=0 +fi + +fi + if test "$enable_sysv_shmem" = "yes" && test "$shmem_sysv_sm_build_sysv" = "0"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SYSV shared memory support requested but not found" >&5 +$as_echo "$as_me: WARNING: SYSV shared memory support requested but not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +fi + + if test "$shmem_sysv_sm_build_sysv" = "1"; then : + should_build=$should_build +else + should_build=0 +fi + + +cat >>confdefs.h <<_ACEOF +#define OPAL_SHMEM_SYSV $shmem_sysv_sm_build_sysv +_ACEOF + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/shmem/sysv/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components sysv" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components sysv" + else + if test "shmem" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/shmem/sysv/lib${OPAL_LIB_PREFIX}mca_shmem_sysv.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/shmem/sysv/libmca_shmem_sysv.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_shmem_sysv_component;" >> $outfile.extern + echo " &mca_shmem_sysv_component, " >> $outfile.struct + static_components="$static_components sysv" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component shmem:sysv can compile" >&5 +$as_echo_n "checking if MCA component shmem:sysv can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_shmem" = "sysv" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_shmem_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** shmem component sysv was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_shmem" = "sysv" ; then +as_fn_error $? "*** shmem component sysv was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$shmem_sysv_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $shmem_sysv_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $shmem_sysv_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$shmem_sysv_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $shmem_sysv_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $shmem_sysv_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$shmem_sysv_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $shmem_sysv_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring shmem_sysv_WRAPPER_EXTRA_CPPFLAGS ($shmem_sysv_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring shmem_sysv_WRAPPER_EXTRA_CPPFLAGS ($shmem_sysv_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component shmem:sysv can compile" >&5 +$as_echo_n "checking if MCA component shmem:sysv can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_shmem" = "sysv" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sysv\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"sysv\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_shmem" ; then + if test "$DIRECT_shmem" = "sysv" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sysv\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"sysv\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components sysv" +fi + + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_shmem_sysv_DSO=1 +else + BUILD_opal_shmem_sysv_DSO=0 +fi + if test "$BUILD_opal_shmem_sysv_DSO" = "1"; then + MCA_BUILD_opal_shmem_sysv_DSO_TRUE= + MCA_BUILD_opal_shmem_sysv_DSO_FALSE='#' +else + MCA_BUILD_opal_shmem_sysv_DSO_TRUE='#' + MCA_BUILD_opal_shmem_sysv_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + + + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/opal/mca/shmem/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component shmem:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/opal/mca/shmem/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_shmem" ; then + if test "$DIRECT_shmem" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_shmem" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_shmem_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_shmem" + str="SHARED_COMPONENT=\$DSO_shmem_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_shmem" + str="STATIC_COMPONENT=\$STATIC_shmem_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component shmem:$component compile mode" >&5 +$as_echo_n "checking for MCA component shmem:$component compile mode... " >&6; } + if test "$DIRECT_shmem" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + +# +# Invoke configure in a specific subdirectory. +# +# opal/mca/shmem/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="opal/mca/shmem/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/opal/mca/shmem/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + shmem_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + shmem_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/shmem/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "shmem" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/shmem/$component/lib${OPAL_LIB_PREFIX}mca_shmem_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/shmem/$component/libmca_shmem_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_shmem_$component_component;" >> $outfile.extern + echo " &mca_shmem_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component shmem:$component can compile" >&5 +$as_echo_n "checking if MCA component shmem:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_shmem" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_shmem_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** shmem component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_shmem" = "$component" ; then +as_fn_error $? "*** shmem component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$shmem_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + +str="line=\$shmem_$component_WRAPPER_EXTRA_LIBS" + eval "$str" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component shmem:$component can compile" >&5 +$as_echo_n "checking if MCA component shmem:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_shmem" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_shmem" ; then + if test "$DIRECT_shmem" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + fi + fi + done + +fi + + MCA_opal_shmem_ALL_COMPONENTS="$all_components" + MCA_opal_shmem_STATIC_COMPONENTS="$static_components" + MCA_opal_shmem_DSO_COMPONENTS="$dso_components" + MCA_opal_shmem_STATIC_LTLIBS="$static_ltlibs" + + + + + + + + MCA_opal_shmem_ALL_SUBDIRS= + for item in $all_components ; do + MCA_opal_shmem_ALL_SUBDIRS="$MCA_opal_shmem_ALL_SUBDIRS mca/shmem/$item" + done + + + + MCA_opal_shmem_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_opal_shmem_STATIC_SUBDIRS="$MCA_opal_shmem_STATIC_SUBDIRS mca/shmem/$item" + done + + + + MCA_opal_shmem_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_opal_shmem_DSO_SUBDIRS="$MCA_opal_shmem_DSO_SUBDIRS mca/shmem/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "shmem" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_opal_FRAMEWORKS="$MCA_opal_FRAMEWORKS timer" + MCA_opal_FRAMEWORKS_SUBDIRS="$MCA_opal_FRAMEWORKS_SUBDIRS mca/timer" + MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_opal_timer_ALL_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_opal_timer_DSO_SUBDIRS)" + MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_opal_timer_STATIC_SUBDIRS)" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS mca/timer/libmca_timer.la" + MCA_opal_FRAMEWORK_LIBS="$MCA_opal_FRAMEWORK_LIBS \$(MCA_opal_timer_STATIC_LTLIBS)" + + timer_base_include= + + # All components look at this value + +# Check whether --with-timer was given. +if test "${with_timer+set}" = set; then : + withval=$with_timer; +fi + + + # first, compile all the components + + opal_show_subsubtitle "Configuring MCA framework timer" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=opal/mca/timer/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files opal/mca/timer/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework timer" >&5 +$as_echo_n "checking for no configure components in framework timer... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework timer" >&5 +$as_echo_n "checking for m4 configure components in framework timer... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: altix, darwin, linux, solaris" >&5 +$as_echo "altix, darwin, linux, solaris" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + + # configure components that use built-in configuration scripts + + + + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + opal_show_subsubsubtitle "MCA component timer:altix (m4 configuration macro, priority 100)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/opal/mca/timer/altix" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_timer" ; then + if test "$DIRECT_timer" = "altix" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_timer" = "1"; then : + want_component=0 +fi + if test "$DISABLE_timer_altix" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component timer:altix compile mode" >&5 +$as_echo_n "checking for MCA component timer:altix compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + + + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/timer/altix/Makefile" + + + if test "$with_timer" = "altix"; then : + timer_altix_happy="yes" + timer_altix_should_use=1 +else + timer_altix_should_use=0 + if test "$with_timer" = ""; then : + timer_altix_happy="yes" +else + timer_altix_happy="no" +fi +fi + + if test "$timer_altix_happy" = "yes"; then : + ac_fn_c_check_header_mongrel "$LINENO" "sn/mmtimer.h" "ac_cv_header_sn_mmtimer_h" "$ac_includes_default" +if test "x$ac_cv_header_sn_mmtimer_h" = xyes; then : + timer_altix_happy="yes" +else + timer_altix_happy="no" +fi + + +fi + + if test "$timer_altix_happy" = "yes"; then : + for ac_header in sys/ioctl.h sys/mman.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +fi + + if test "$timer_altix_happy" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MM timer can be opened" >&5 +$as_echo_n "checking if MM timer can be opened... " >&6; } +if ${ompi_cv_mm_timer_mmap+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include +#include +#include + +int +main () +{ + + int fd; + fd = open(MMTIMER_FULLNAME, O_RDONLY); + if (-1 ==fd) return 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ompi_cv_mm_timer_mmap="yes" +else + ompi_cv_mm_timer_mmap="no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_cv_mm_timer_mmap" >&5 +$as_echo "$ompi_cv_mm_timer_mmap" >&6; } + if test "$ompi_cv_mm_timer_mmap" = "yes"; then : + timer_altix_happy="yes" +else + timer_altix_happy="no" +fi +fi + + if test "$timer_altix_happy" = "no" && \ + test "$timer_altix_should_use" = "1"; then : + as_fn_error $? "Altix timer requested but not available. Aborting." "$LINENO" 5 +fi + + if test "$timer_altix_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/timer/altix/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components altix" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components altix" + else + if test "timer" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/timer/altix/lib${OPAL_LIB_PREFIX}mca_timer_altix.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/timer/altix/libmca_timer_altix.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_timer_altix_component;" >> $outfile.extern + echo " &mca_timer_altix_component, " >> $outfile.struct + static_components="$static_components altix" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component timer:altix can compile" >&5 +$as_echo_n "checking if MCA component timer:altix can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_timer" = "altix" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_timer_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** timer component altix was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_timer" = "altix" ; then +as_fn_error $? "*** timer component altix was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$timer_altix_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_altix_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_altix_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$timer_altix_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_altix_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_altix_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$timer_altix_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=1 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_altix_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring timer_altix_WRAPPER_EXTRA_CPPFLAGS ($timer_altix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring timer_altix_WRAPPER_EXTRA_CPPFLAGS ($timer_altix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component timer:altix can compile" >&5 +$as_echo_n "checking if MCA component timer:altix can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_timer" = "altix" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"altix\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"altix\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_timer" ; then + if test "$DIRECT_timer" = "altix" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"altix\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"altix\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components altix" +fi + + + if test "$should_build" = "1"; then : + timer_base_include="altix/timer_altix.h" +fi + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_timer_altix_DSO=1 +else + BUILD_opal_timer_altix_DSO=0 +fi + if test "$BUILD_opal_timer_altix_DSO" = "1"; then + MCA_BUILD_opal_timer_altix_DSO_TRUE= + MCA_BUILD_opal_timer_altix_DSO_FALSE='#' +else + MCA_BUILD_opal_timer_altix_DSO_TRUE='#' + MCA_BUILD_opal_timer_altix_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + if test $components_last_result -eq 1; then : + components_looking_for_succeed=0 +fi + + + + opal_show_subsubsubtitle "MCA component timer:darwin (m4 configuration macro, priority 30)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/opal/mca/timer/darwin" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_timer" ; then + if test "$DIRECT_timer" = "darwin" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_timer" = "1"; then : + want_component=0 +fi + if test "$DISABLE_timer_darwin" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component timer:darwin compile mode" >&5 +$as_echo_n "checking for MCA component timer:darwin compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + + + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/timer/darwin/Makefile" + + + if test "$with_timer" = "darwin"; then : + timer_darwin_happy="yes" + timer_darwin_should_use=1 +else + timer_darwin_should_use=0 + if test "$with_timer" = ""; then : + timer_darwin_happy="yes" +else + timer_darwin_happy="no" +fi +fi + + if test "$timer_darwin_happy" = "yes"; then : + for ac_header in mach/mach_time.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "mach/mach_time.h" "ac_cv_header_mach_mach_time_h" "$ac_includes_default" +if test "x$ac_cv_header_mach_mach_time_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MACH_MACH_TIME_H 1 +_ACEOF + +fi + +done + + ac_fn_c_check_func "$LINENO" "mach_absolute_time" "ac_cv_func_mach_absolute_time" +if test "x$ac_cv_func_mach_absolute_time" = xyes; then : + timer_darwin_happy="yes" +else + timer_darwin_happy="no" +fi + +fi + + if test "$timer_darwin_happy" = "no" && \ + test "$timer_darwin_should_use" = "1"; then : + as_fn_error $? "Darwin timer requested but not available. Aborting." "$LINENO" 5 +fi + + if test "$timer_darwin_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/timer/darwin/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components darwin" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components darwin" + else + if test "timer" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/timer/darwin/lib${OPAL_LIB_PREFIX}mca_timer_darwin.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/timer/darwin/libmca_timer_darwin.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_timer_darwin_component;" >> $outfile.extern + echo " &mca_timer_darwin_component, " >> $outfile.struct + static_components="$static_components darwin" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component timer:darwin can compile" >&5 +$as_echo_n "checking if MCA component timer:darwin can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_timer" = "darwin" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_timer_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** timer component darwin was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_timer" = "darwin" ; then +as_fn_error $? "*** timer component darwin was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$timer_darwin_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_darwin_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_darwin_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$timer_darwin_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_darwin_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_darwin_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$timer_darwin_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=1 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_darwin_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring timer_darwin_WRAPPER_EXTRA_CPPFLAGS ($timer_darwin_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring timer_darwin_WRAPPER_EXTRA_CPPFLAGS ($timer_darwin_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component timer:darwin can compile" >&5 +$as_echo_n "checking if MCA component timer:darwin can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_timer" = "darwin" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"darwin\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"darwin\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_timer" ; then + if test "$DIRECT_timer" = "darwin" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"darwin\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"darwin\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components darwin" +fi + + + if test "$should_build" = "1"; then : + timer_base_include="darwin/timer_darwin.h" +fi + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_timer_darwin_DSO=1 +else + BUILD_opal_timer_darwin_DSO=0 +fi + if test "$BUILD_opal_timer_darwin_DSO" = "1"; then + MCA_BUILD_opal_timer_darwin_DSO_TRUE= + MCA_BUILD_opal_timer_darwin_DSO_FALSE='#' +else + MCA_BUILD_opal_timer_darwin_DSO_TRUE='#' + MCA_BUILD_opal_timer_darwin_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + if test $components_last_result -eq 1; then : + components_looking_for_succeed=0 +fi + + + + opal_show_subsubsubtitle "MCA component timer:linux (m4 configuration macro, priority 30)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/opal/mca/timer/linux" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_timer" ; then + if test "$DIRECT_timer" = "linux" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_timer" = "1"; then : + want_component=0 +fi + if test "$DISABLE_timer_linux" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component timer:linux compile mode" >&5 +$as_echo_n "checking for MCA component timer:linux compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + + + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/timer/linux/Makefile" + + + if test "$with_timer" = "linux"; then : + timer_linux_happy="yes" + timer_linux_should_use=1 +else + timer_linux_should_use=0 + if test "$with_timer" = ""; then : + timer_linux_happy="yes" +else + timer_linux_happy="no" +fi +fi + + case "${host}" in + i?86-*linux*|x86_64*linux*|ia64-*linux*|powerpc-*linux*|powerpc64-*linux*|powerpc64le-*linux*|powerpcle-*linux*|sparc*-*linux*|aarch64-*linux*) + if test "$timer_linux_happy" = "yes"; then : + if test -r "/proc/cpuinfo"; then : + timer_linux_happy="yes" +else + timer_linux_happy="no" +fi +fi + ;; + *) + timer_linux_happy="no" + ;; + esac + + if test "$timer_linux_happy" = "no" && \ + test "$timer_linux_should_use" = "1"; then : + as_fn_error $? "Linux timer requested but not available. Aborting." "$LINENO" 5 +fi + + if test "$timer_linux_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/timer/linux/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components linux" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components linux" + else + if test "timer" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/timer/linux/lib${OPAL_LIB_PREFIX}mca_timer_linux.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/timer/linux/libmca_timer_linux.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_timer_linux_component;" >> $outfile.extern + echo " &mca_timer_linux_component, " >> $outfile.struct + static_components="$static_components linux" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component timer:linux can compile" >&5 +$as_echo_n "checking if MCA component timer:linux can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_timer" = "linux" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_timer_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** timer component linux was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_timer" = "linux" ; then +as_fn_error $? "*** timer component linux was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$timer_linux_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_linux_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_linux_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$timer_linux_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_linux_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_linux_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$timer_linux_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=1 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_linux_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring timer_linux_WRAPPER_EXTRA_CPPFLAGS ($timer_linux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring timer_linux_WRAPPER_EXTRA_CPPFLAGS ($timer_linux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component timer:linux can compile" >&5 +$as_echo_n "checking if MCA component timer:linux can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_timer" = "linux" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"linux\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_timer" ; then + if test "$DIRECT_timer" = "linux" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"linux\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components linux" +fi + + + if test "$should_build" = "1"; then : + timer_base_include="linux/timer_linux.h" +fi + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_timer_linux_DSO=1 +else + BUILD_opal_timer_linux_DSO=0 +fi + if test "$BUILD_opal_timer_linux_DSO" = "1"; then + MCA_BUILD_opal_timer_linux_DSO_TRUE= + MCA_BUILD_opal_timer_linux_DSO_FALSE='#' +else + MCA_BUILD_opal_timer_linux_DSO_TRUE='#' + MCA_BUILD_opal_timer_linux_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + if test $components_last_result -eq 1; then : + components_looking_for_succeed=0 +fi + + + + opal_show_subsubsubtitle "MCA component timer:solaris (m4 configuration macro, priority 30)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/opal/mca/timer/solaris" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_timer" ; then + if test "$DIRECT_timer" = "solaris" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_timer" = "1"; then : + want_component=0 +fi + if test "$DISABLE_timer_solaris" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component timer:solaris compile mode" >&5 +$as_echo_n "checking for MCA component timer:solaris compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + + + # try to configure the component + + ac_config_files="$ac_config_files opal/mca/timer/solaris/Makefile" + + + if test "$with_timer" = "solaris"; then : + timer_solaris_happy="yes" + timer_solaris_should_use=1 +else + timer_solaris_should_use=0 + if test "$with_timer" = ""; then : + timer_solaris_happy="yes" +else + timer_solaris_happy="no" +fi +fi + + if test "$timer_solaris_happy" = "yes"; then : + ac_fn_c_check_func "$LINENO" "gethrtime" "ac_cv_func_gethrtime" +if test "x$ac_cv_func_gethrtime" = xyes; then : + timer_solaris_happy="yes" +else + timer_solaris_happy="no" +fi + +fi + + if test "$timer_solaris_happy" = "no" && \ + test "$timer_solaris_should_use" = "1"; then : + as_fn_error $? "Solaris timer requested but not available. Aborting." "$LINENO" 5 +fi + + if test "$timer_solaris_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/opal/mca/timer/solaris/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components solaris" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components solaris" + else + if test "timer" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/timer/solaris/lib${OPAL_LIB_PREFIX}mca_timer_solaris.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/timer/solaris/libmca_timer_solaris.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_timer_solaris_component;" >> $outfile.extern + echo " &mca_timer_solaris_component, " >> $outfile.struct + static_components="$static_components solaris" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component timer:solaris can compile" >&5 +$as_echo_n "checking if MCA component timer:solaris can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_timer" = "solaris" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_opal_timer_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** timer component solaris was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_timer" = "solaris" ; then +as_fn_error $? "*** timer component solaris was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$timer_solaris_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_solaris_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_solaris_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$timer_solaris_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_solaris_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_solaris_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$timer_solaris_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=1 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $timer_solaris_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring timer_solaris_WRAPPER_EXTRA_CPPFLAGS ($timer_solaris_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring timer_solaris_WRAPPER_EXTRA_CPPFLAGS ($timer_solaris_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component timer:solaris can compile" >&5 +$as_echo_n "checking if MCA component timer:solaris can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_timer" = "solaris" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"solaris\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"solaris\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_timer" ; then + if test "$DIRECT_timer" = "solaris" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"solaris\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"solaris\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components solaris" +fi + + + if test "$should_build" = "1"; then : + timer_base_include="solaris/timer_solaris.h" +fi + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_opal_timer_solaris_DSO=1 +else + BUILD_opal_timer_solaris_DSO=0 +fi + if test "$BUILD_opal_timer_solaris_DSO" = "1"; then + MCA_BUILD_opal_timer_solaris_DSO_TRUE= + MCA_BUILD_opal_timer_solaris_DSO_FALSE='#' +else + MCA_BUILD_opal_timer_solaris_DSO_TRUE='#' + MCA_BUILD_opal_timer_solaris_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + if test $components_last_result -eq 1; then : + components_looking_for_succeed=0 +fi + + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + MCA_opal_timer_ALL_COMPONENTS="$all_components" + MCA_opal_timer_STATIC_COMPONENTS="$static_components" + MCA_opal_timer_DSO_COMPONENTS="$dso_components" + MCA_opal_timer_STATIC_LTLIBS="$static_ltlibs" + + + + + + + + MCA_opal_timer_ALL_SUBDIRS= + for item in $all_components ; do + MCA_opal_timer_ALL_SUBDIRS="$MCA_opal_timer_ALL_SUBDIRS mca/timer/$item" + done + + + + MCA_opal_timer_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_opal_timer_STATIC_SUBDIRS="$MCA_opal_timer_STATIC_SUBDIRS mca/timer/$item" + done + + + + MCA_opal_timer_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_opal_timer_DSO_SUBDIRS="$MCA_opal_timer_DSO_SUBDIRS mca/timer/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "timer" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + + # someone should have set this... + if test "$timer_base_include" = "" ; then + timer_base_include="base/timer_base_null.h" + fi + + +cat >>confdefs.h <<_ACEOF +#define MCA_timer_IMPLEMENTATION_HEADER "opal/mca/timer/$timer_base_include" +_ACEOF + + + + # note that mca_wrapper_extra_* is a running list, and we take checkpoints at the end of our project + opal_mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags" + opal_mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags" + opal_mca_wrapper_extra_libs="$mca_wrapper_extra_libs" + + + + + + + +# BWB: Until projects have separate configure scripts + # and can skip running all of ORTE, just avoid recursing + # into orte sub directory if orte disabled + if (test "orte" = "ompi" && test "$enable_mpi" != "no") || test "orte" = "opal" || test "orte" = "orte" || test "orte" = "oshmem"; then + MCA_PROJECT_SUBDIRS="$MCA_PROJECT_SUBDIRS orte" + MCA_PROJECT_DIST_SUBDIRS="$MCA_PROJECT_DIST_SUBDIRS orte" + fi + + # can't use a variable rename here because these need to be evaled + # at auto* time. + + opal_show_subtitle "Configuring MCA for orte" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for frameworks for orte" >&5 +$as_echo_n "checking for frameworks for orte... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: common, errmgr, ess, filem, grpcomm, iof, odls, oob, plm, ras, regx, rmaps, rml, routed, rtc, schizo, snapc, sstore, state" >&5 +$as_echo "common, errmgr, ess, filem, grpcomm, iof, odls, oob, plm, ras, regx, rmaps, rml, routed, rtc, schizo, snapc, sstore, state" >&6; } + + # iterate through the list of frameworks. There is something + # funky with m4 foreach if the list is defined, but empty. It + # will call the 3rd argument once with an empty value for the + # first argument. Protect against calling MCA_CONFIGURE_FRAMEWORK + # with an empty second argument. Grrr.... + # if there isn't a project list, abort + # + # Also setup two variables for Makefiles: + # MCA_project_FRAMEWORKS - list of frameworks in that project + # MCA_project_FRAMEWORK_LIBS - list of libraries (or variables pointing + # to more libraries) that must be included + # in the project's main library + + + MCA_orte_FRAMEWORKS= + MCA_orte_FRAMEWORKS_SUBDIRS= + MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS= + MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS= + MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS= + MCA_orte_FRAMEWORK_LIBS= + + MCA_orte_FRAMEWORKS="common $MCA_orte_FRAMEWORKS" + MCA_orte_FRAMEWORKS_SUBDIRS="mca/common $MCA_orte_FRAMEWORKS_SUBDIRS" + MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="\$(MCA_orte_common_ALL_SUBDIRS) $MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS" + MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="\$(MCA_orte_common_DSO_SUBDIRS) $MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS" + MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="\$(MCA_orte_common_STATIC_SUBDIRS) $MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS" + + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_common_STATIC_LTLIBS)" + + opal_show_subsubtitle "Configuring MCA framework common" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=orte/mca/common + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files orte/mca/common/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework common" >&5 +$as_echo_n "checking for no configure components in framework common... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework common" >&5 +$as_echo_n "checking for m4 configure components in framework common... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: alps" >&5 +$as_echo "alps" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + + # configure components that use built-in configuration scripts + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + opal_show_subsubsubtitle "MCA component common:alps (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/orte/mca/common/alps" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "alps" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_common" = "1"; then : + want_component=0 +fi + if test "$DISABLE_common_alps" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + SHARED_FRAMEWORK="$DSO_common" + SHARED_COMPONENT="$DSO_common_alps" + + STATIC_FRAMEWORK="$STATIC_common" + STATIC_COMPONENT="$STATIC_common_alps" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:alps compile mode" >&5 +$as_echo_n "checking for MCA component common:alps compile mode... " >&6; } + if test "$DIRECT_common" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + + # try to configure the component + + ac_config_files="$ac_config_files orte/mca/common/alps/Makefile" + + + + if test -z "$opal_check_cray_alps_happy"; then + + +# Check whether --with-alps was given. +if test "${with_alps+set}" = set; then : + withval=$with_alps; +else + with_alps=auto +fi + + + if test -f /etc/opt/cray/release/clerelease; then + cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` + else + cle_level="unknown" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 +$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } + if test "$cle_level" = "4" && test "$with_alps" != "no"; then : + + +# +# if we've gotten here, its because we are building on a CLE 4 system +# + opal_check_alps_cle4_libdir_happy="no" + opal_check_alps_cle4_dir_happy="no" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 +$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } + + +# Check whether --with-alps-libdir was given. +if test "${with_alps_libdir+set}" = set; then : + withval=$with_alps_libdir; +fi + + +# +# check to see if Open MPI is being built on a CLE 4 eslogin node +# + if test -f /etc/opt/cray/release/ESLrelease; then : + default_alps_dir="/opt/cray/xe-sysroot/default/usr" +else + default_alps_dir="/usr" +fi + + if test -z "$with_alps_libdir"; then : + if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : + if test -d "$with_alps_libdir/lib64"; then : + opal_check_alps_libdir="$with_alps_libdir/lib64" +else + opal_check_alps_libdir="$with_alps_libdir/lib" +fi +else + opal_check_alps_libdir="$default_alps_dir/lib/alps" +fi + +fi + + if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : + opal_check_alps_dir=$default_alps_dir +else + opal_check_alps_dir=$with_alps +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 +$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } + if test -f "$opal_check_alps_libdir/libalps.a"; then : + opal_check_alps_libdir_cle4_happy="yes" +else + opal_check_alps_libdir_cle4_happy="no", + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 +$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } + if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : + opal_check_alps_dir_cle4_happy="yes" +else + opal_check_alps_dir_cle4_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : + CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" + CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + opal_check_cray_alps_happy="yes" +else + opal_check_cray_alps_happy="no" +fi + +else + if test "$with_alps" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy=no + common_alps_happy="no" +else + if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 +$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } + +if test -n "$CRAY_ALPSLLI_CFLAGS"; then + pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSLLI_LIBS"; then + pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` + else + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS + CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS + CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 +$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } + +if test -n "$CRAY_ALPSUTIL_CFLAGS"; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSUTIL_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` + else + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS + CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS + CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 +$as_echo_n "checking for CRAY_ALPS... " >&6; } + +if test -n "$CRAY_ALPS_CFLAGS"; then + pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_LIBS"; then + pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_STATIC_LIBS"; then + pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` + else + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPS_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS + CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS + CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 +$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } + +if test -n "$CRAY_WLM_DETECT_CFLAGS"; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_WLM_DETECT_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + else + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS + CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS + CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" + +cat >>confdefs.h <<_ACEOF +#define CRAY_WLM_DETECT 1 +_ACEOF + + +fi + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 +$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 +$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +fi + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 +$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } + + if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : + CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS + CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS +fi + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ompi_summary_section=$(echo Resource Managers | tr ' ' '_') + ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + if test "$opal_check_cray_alps_happy" = "yes"; then : + common_alps_LDFLAGS="$common_alps_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" + common_alps_CPPFLAGS="$common_alps_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" + common_alps_LIBS="$common_alps_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + common_alps_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + common_alps_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + common_alps_happy="yes" +else + common_alps_happy="no" +fi + + + if test "$common_alps_happy" = "yes"; then : + should_build=$should_build + + + +else + should_build=0 +fi + # + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/common/alps/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components alps" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components alps" + else + if test "common" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/common/alps/lib${ORTE_LIB_PREFIX}mca_common_alps.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/common/alps/libmca_common_alps.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_common_alps_component;" >> $outfile.extern + echo " &mca_common_alps_component, " >> $outfile.struct + static_components="$static_components alps" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:alps can compile" >&5 +$as_echo_n "checking if MCA component common:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_common" = "alps" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_common_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** common component alps was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_common" = "alps" ; then +as_fn_error $? "*** common component alps was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$common_alps_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $common_alps_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $common_alps_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$common_alps_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $common_alps_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $common_alps_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$common_alps_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $common_alps_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring common_alps_WRAPPER_EXTRA_CPPFLAGS ($common_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring common_alps_WRAPPER_EXTRA_CPPFLAGS ($common_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:alps can compile" >&5 +$as_echo_n "checking if MCA component common:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_common" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components alps" +fi + + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_orte_common_alps_DSO=1 +else + BUILD_orte_common_alps_DSO=0 +fi + if test "$BUILD_orte_common_alps_DSO" = "1"; then + MCA_BUILD_orte_common_alps_DSO_TRUE= + MCA_BUILD_orte_common_alps_DSO_FALSE='#' +else + MCA_BUILD_orte_common_alps_DSO_TRUE='#' + MCA_BUILD_orte_common_alps_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + + + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/orte/mca/common/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component common:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/orte/mca/common/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_common" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_common_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_common" + str="SHARED_COMPONENT=\$DSO_common_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_common" + str="STATIC_COMPONENT=\$STATIC_common_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:$component compile mode" >&5 +$as_echo_n "checking for MCA component common:$component compile mode... " >&6; } + if test "$DIRECT_common" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + +# +# Invoke configure in a specific subdirectory. +# +# orte/mca/common/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="orte/mca/common/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/orte/mca/common/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + common_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + common_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/common/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "common" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/common/$component/lib${ORTE_LIB_PREFIX}mca_common_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/common/$component/libmca_common_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_common_$component_component;" >> $outfile.extern + echo " &mca_common_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:$component can compile" >&5 +$as_echo_n "checking if MCA component common:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_common" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_common_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** common component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_common" = "$component" ; then +as_fn_error $? "*** common component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$common_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + +str="line=\$common_$component_WRAPPER_EXTRA_LIBS" + eval "$str" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:$component can compile" >&5 +$as_echo_n "checking if MCA component common:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_common" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + fi + fi + done + +fi + + MCA_orte_common_ALL_COMPONENTS="$all_components" + MCA_orte_common_STATIC_COMPONENTS="$static_components" + MCA_orte_common_DSO_COMPONENTS="$dso_components" + MCA_orte_common_STATIC_LTLIBS="$static_ltlibs" + + + + + + + + MCA_orte_common_ALL_SUBDIRS= + for item in $all_components ; do + MCA_orte_common_ALL_SUBDIRS="$MCA_orte_common_ALL_SUBDIRS mca/common/$item" + done + + + + MCA_orte_common_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_orte_common_STATIC_SUBDIRS="$MCA_orte_common_STATIC_SUBDIRS mca/common/$item" + done + + + + MCA_orte_common_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_orte_common_DSO_SUBDIRS="$MCA_orte_common_DSO_SUBDIRS mca/common/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "common" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS errmgr" + MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/errmgr" + MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_errmgr_ALL_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_errmgr_DSO_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_errmgr_STATIC_SUBDIRS)" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/errmgr/libmca_errmgr.la" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_errmgr_STATIC_LTLIBS)" + + opal_show_subsubtitle "Configuring MCA framework errmgr" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=orte/mca/errmgr/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files orte/mca/errmgr/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework errmgr" >&5 +$as_echo_n "checking for no configure components in framework errmgr... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: default_app, default_hnp, default_orted, default_tool" >&5 +$as_echo "default_app, default_hnp, default_orted, default_tool" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework errmgr" >&5 +$as_echo_n "checking for m4 configure components in framework errmgr... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + opal_show_subsubsubtitle "MCA component errmgr:default_app (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/orte/mca/errmgr/default_app" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_errmgr" ; then + if test "$DIRECT_errmgr" = "default_app" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_errmgr" = "1"; then : + want_component=0 +fi + if test "$DISABLE_errmgr_default_app" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_errmgr" + SHARED_COMPONENT="$DSO_errmgr_default_app" + + STATIC_FRAMEWORK="$STATIC_errmgr" + STATIC_COMPONENT="$STATIC_errmgr_default_app" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component errmgr:default_app compile mode" >&5 +$as_echo_n "checking for MCA component errmgr:default_app compile mode... " >&6; } + if test "$DIRECT_errmgr" = "default_app" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/errmgr/default_app/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components default_app" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components default_app" + else + if test "errmgr" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/errmgr/default_app/lib${ORTE_LIB_PREFIX}mca_errmgr_default_app.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/errmgr/default_app/libmca_errmgr_default_app.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_errmgr_default_app_component;" >> $outfile.extern + echo " &mca_errmgr_default_app_component, " >> $outfile.struct + static_components="$static_components default_app" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:default_app can compile" >&5 +$as_echo_n "checking if MCA component errmgr:default_app can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_errmgr" = "default_app" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_errmgr_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** errmgr component default_app was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_errmgr" = "default_app" ; then +as_fn_error $? "*** errmgr component default_app was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$errmgr_default_app_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_app_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_app_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$errmgr_default_app_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_app_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_app_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$errmgr_default_app_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_app_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring errmgr_default_app_WRAPPER_EXTRA_CPPFLAGS ($errmgr_default_app_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring errmgr_default_app_WRAPPER_EXTRA_CPPFLAGS ($errmgr_default_app_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:default_app can compile" >&5 +$as_echo_n "checking if MCA component errmgr:default_app can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_errmgr" = "default_app" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default_app\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"default_app\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_errmgr" ; then + if test "$DIRECT_errmgr" = "default_app" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default_app\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"default_app\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components default_app" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_errmgr_default_app_DSO=1 + else + BUILD_orte_errmgr_default_app_DSO=0 + fi + if test "$BUILD_orte_errmgr_default_app_DSO" = "1"; then + MCA_BUILD_orte_errmgr_default_app_DSO_TRUE= + MCA_BUILD_orte_errmgr_default_app_DSO_FALSE='#' +else + MCA_BUILD_orte_errmgr_default_app_DSO_TRUE='#' + MCA_BUILD_orte_errmgr_default_app_DSO_FALSE= +fi + + + ac_config_files="$ac_config_files orte/mca/errmgr/default_app/Makefile" + + + unset compile_mode + + opal_show_subsubsubtitle "MCA component errmgr:default_hnp (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/orte/mca/errmgr/default_hnp" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_errmgr" ; then + if test "$DIRECT_errmgr" = "default_hnp" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_errmgr" = "1"; then : + want_component=0 +fi + if test "$DISABLE_errmgr_default_hnp" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_errmgr" + SHARED_COMPONENT="$DSO_errmgr_default_hnp" + + STATIC_FRAMEWORK="$STATIC_errmgr" + STATIC_COMPONENT="$STATIC_errmgr_default_hnp" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component errmgr:default_hnp compile mode" >&5 +$as_echo_n "checking for MCA component errmgr:default_hnp compile mode... " >&6; } + if test "$DIRECT_errmgr" = "default_hnp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/errmgr/default_hnp/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components default_hnp" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components default_hnp" + else + if test "errmgr" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/errmgr/default_hnp/lib${ORTE_LIB_PREFIX}mca_errmgr_default_hnp.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/errmgr/default_hnp/libmca_errmgr_default_hnp.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_errmgr_default_hnp_component;" >> $outfile.extern + echo " &mca_errmgr_default_hnp_component, " >> $outfile.struct + static_components="$static_components default_hnp" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:default_hnp can compile" >&5 +$as_echo_n "checking if MCA component errmgr:default_hnp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_errmgr" = "default_hnp" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_errmgr_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** errmgr component default_hnp was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_errmgr" = "default_hnp" ; then +as_fn_error $? "*** errmgr component default_hnp was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$errmgr_default_hnp_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_hnp_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_hnp_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$errmgr_default_hnp_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_hnp_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_hnp_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$errmgr_default_hnp_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_hnp_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring errmgr_default_hnp_WRAPPER_EXTRA_CPPFLAGS ($errmgr_default_hnp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring errmgr_default_hnp_WRAPPER_EXTRA_CPPFLAGS ($errmgr_default_hnp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:default_hnp can compile" >&5 +$as_echo_n "checking if MCA component errmgr:default_hnp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_errmgr" = "default_hnp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default_hnp\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"default_hnp\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_errmgr" ; then + if test "$DIRECT_errmgr" = "default_hnp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default_hnp\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"default_hnp\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components default_hnp" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_errmgr_default_hnp_DSO=1 + else + BUILD_orte_errmgr_default_hnp_DSO=0 + fi + if test "$BUILD_orte_errmgr_default_hnp_DSO" = "1"; then + MCA_BUILD_orte_errmgr_default_hnp_DSO_TRUE= + MCA_BUILD_orte_errmgr_default_hnp_DSO_FALSE='#' +else + MCA_BUILD_orte_errmgr_default_hnp_DSO_TRUE='#' + MCA_BUILD_orte_errmgr_default_hnp_DSO_FALSE= +fi + + + ac_config_files="$ac_config_files orte/mca/errmgr/default_hnp/Makefile" + + + unset compile_mode + + opal_show_subsubsubtitle "MCA component errmgr:default_orted (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/orte/mca/errmgr/default_orted" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_errmgr" ; then + if test "$DIRECT_errmgr" = "default_orted" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_errmgr" = "1"; then : + want_component=0 +fi + if test "$DISABLE_errmgr_default_orted" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_errmgr" + SHARED_COMPONENT="$DSO_errmgr_default_orted" + + STATIC_FRAMEWORK="$STATIC_errmgr" + STATIC_COMPONENT="$STATIC_errmgr_default_orted" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component errmgr:default_orted compile mode" >&5 +$as_echo_n "checking for MCA component errmgr:default_orted compile mode... " >&6; } + if test "$DIRECT_errmgr" = "default_orted" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/errmgr/default_orted/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components default_orted" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components default_orted" + else + if test "errmgr" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/errmgr/default_orted/lib${ORTE_LIB_PREFIX}mca_errmgr_default_orted.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/errmgr/default_orted/libmca_errmgr_default_orted.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_errmgr_default_orted_component;" >> $outfile.extern + echo " &mca_errmgr_default_orted_component, " >> $outfile.struct + static_components="$static_components default_orted" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:default_orted can compile" >&5 +$as_echo_n "checking if MCA component errmgr:default_orted can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_errmgr" = "default_orted" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_errmgr_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** errmgr component default_orted was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_errmgr" = "default_orted" ; then +as_fn_error $? "*** errmgr component default_orted was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$errmgr_default_orted_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_orted_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_orted_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$errmgr_default_orted_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_orted_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_orted_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$errmgr_default_orted_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_orted_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring errmgr_default_orted_WRAPPER_EXTRA_CPPFLAGS ($errmgr_default_orted_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring errmgr_default_orted_WRAPPER_EXTRA_CPPFLAGS ($errmgr_default_orted_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:default_orted can compile" >&5 +$as_echo_n "checking if MCA component errmgr:default_orted can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_errmgr" = "default_orted" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default_orted\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"default_orted\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_errmgr" ; then + if test "$DIRECT_errmgr" = "default_orted" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default_orted\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"default_orted\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components default_orted" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_errmgr_default_orted_DSO=1 + else + BUILD_orte_errmgr_default_orted_DSO=0 + fi + if test "$BUILD_orte_errmgr_default_orted_DSO" = "1"; then + MCA_BUILD_orte_errmgr_default_orted_DSO_TRUE= + MCA_BUILD_orte_errmgr_default_orted_DSO_FALSE='#' +else + MCA_BUILD_orte_errmgr_default_orted_DSO_TRUE='#' + MCA_BUILD_orte_errmgr_default_orted_DSO_FALSE= +fi + + + ac_config_files="$ac_config_files orte/mca/errmgr/default_orted/Makefile" + + + unset compile_mode + + opal_show_subsubsubtitle "MCA component errmgr:default_tool (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/orte/mca/errmgr/default_tool" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_errmgr" ; then + if test "$DIRECT_errmgr" = "default_tool" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_errmgr" = "1"; then : + want_component=0 +fi + if test "$DISABLE_errmgr_default_tool" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_errmgr" + SHARED_COMPONENT="$DSO_errmgr_default_tool" + + STATIC_FRAMEWORK="$STATIC_errmgr" + STATIC_COMPONENT="$STATIC_errmgr_default_tool" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component errmgr:default_tool compile mode" >&5 +$as_echo_n "checking for MCA component errmgr:default_tool compile mode... " >&6; } + if test "$DIRECT_errmgr" = "default_tool" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/errmgr/default_tool/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components default_tool" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components default_tool" + else + if test "errmgr" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/errmgr/default_tool/lib${ORTE_LIB_PREFIX}mca_errmgr_default_tool.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/errmgr/default_tool/libmca_errmgr_default_tool.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_errmgr_default_tool_component;" >> $outfile.extern + echo " &mca_errmgr_default_tool_component, " >> $outfile.struct + static_components="$static_components default_tool" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:default_tool can compile" >&5 +$as_echo_n "checking if MCA component errmgr:default_tool can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_errmgr" = "default_tool" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_errmgr_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** errmgr component default_tool was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_errmgr" = "default_tool" ; then +as_fn_error $? "*** errmgr component default_tool was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$errmgr_default_tool_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_tool_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_tool_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$errmgr_default_tool_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_tool_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_tool_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$errmgr_default_tool_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $errmgr_default_tool_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring errmgr_default_tool_WRAPPER_EXTRA_CPPFLAGS ($errmgr_default_tool_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring errmgr_default_tool_WRAPPER_EXTRA_CPPFLAGS ($errmgr_default_tool_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:default_tool can compile" >&5 +$as_echo_n "checking if MCA component errmgr:default_tool can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_errmgr" = "default_tool" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default_tool\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"default_tool\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_errmgr" ; then + if test "$DIRECT_errmgr" = "default_tool" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default_tool\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"default_tool\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components default_tool" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_errmgr_default_tool_DSO=1 + else + BUILD_orte_errmgr_default_tool_DSO=0 + fi + if test "$BUILD_orte_errmgr_default_tool_DSO" = "1"; then + MCA_BUILD_orte_errmgr_default_tool_DSO_TRUE= + MCA_BUILD_orte_errmgr_default_tool_DSO_FALSE='#' +else + MCA_BUILD_orte_errmgr_default_tool_DSO_TRUE='#' + MCA_BUILD_orte_errmgr_default_tool_DSO_FALSE= +fi + + + ac_config_files="$ac_config_files orte/mca/errmgr/default_tool/Makefile" + + + unset compile_mode + + + # configure components that use built-in configuration scripts + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/orte/mca/errmgr/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component errmgr:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/orte/mca/errmgr/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_errmgr" ; then + if test "$DIRECT_errmgr" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_errmgr" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_errmgr_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_errmgr" + str="SHARED_COMPONENT=\$DSO_errmgr_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_errmgr" + str="STATIC_COMPONENT=\$STATIC_errmgr_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component errmgr:$component compile mode" >&5 +$as_echo_n "checking for MCA component errmgr:$component compile mode... " >&6; } + if test "$DIRECT_errmgr" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + +# +# Invoke configure in a specific subdirectory. +# +# orte/mca/errmgr/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="orte/mca/errmgr/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/orte/mca/errmgr/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + errmgr_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + errmgr_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/errmgr/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "errmgr" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/errmgr/$component/lib${ORTE_LIB_PREFIX}mca_errmgr_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/errmgr/$component/libmca_errmgr_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_errmgr_$component_component;" >> $outfile.extern + echo " &mca_errmgr_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:$component can compile" >&5 +$as_echo_n "checking if MCA component errmgr:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_errmgr" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_errmgr_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** errmgr component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_errmgr" = "$component" ; then +as_fn_error $? "*** errmgr component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$errmgr_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + +str="line=\$errmgr_$component_WRAPPER_EXTRA_LIBS" + eval "$str" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:$component can compile" >&5 +$as_echo_n "checking if MCA component errmgr:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_errmgr" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_errmgr" ; then + if test "$DIRECT_errmgr" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + fi + fi + done + +fi + + MCA_orte_errmgr_ALL_COMPONENTS="$all_components" + MCA_orte_errmgr_STATIC_COMPONENTS="$static_components" + MCA_orte_errmgr_DSO_COMPONENTS="$dso_components" + MCA_orte_errmgr_STATIC_LTLIBS="$static_ltlibs" + + + + + + + + MCA_orte_errmgr_ALL_SUBDIRS= + for item in $all_components ; do + MCA_orte_errmgr_ALL_SUBDIRS="$MCA_orte_errmgr_ALL_SUBDIRS mca/errmgr/$item" + done + + + + MCA_orte_errmgr_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_orte_errmgr_STATIC_SUBDIRS="$MCA_orte_errmgr_STATIC_SUBDIRS mca/errmgr/$item" + done + + + + MCA_orte_errmgr_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_orte_errmgr_DSO_SUBDIRS="$MCA_orte_errmgr_DSO_SUBDIRS mca/errmgr/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "errmgr" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS ess" + MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/ess" + MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_ess_ALL_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_ess_DSO_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_ess_STATIC_SUBDIRS)" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/ess/libmca_ess.la" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_ess_STATIC_LTLIBS)" + + opal_show_subsubtitle "Configuring MCA framework ess" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=orte/mca/ess/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files orte/mca/ess/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework ess" >&5 +$as_echo_n "checking for no configure components in framework ess... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: env, hnp, pmi, singleton, tool" >&5 +$as_echo "env, hnp, pmi, singleton, tool" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework ess" >&5 +$as_echo_n "checking for m4 configure components in framework ess... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: alps, lsf, slurm, tm" >&5 +$as_echo "alps, lsf, slurm, tm" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + opal_show_subsubsubtitle "MCA component ess:env (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/orte/mca/ess/env" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "env" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_ess" = "1"; then : + want_component=0 +fi + if test "$DISABLE_ess_env" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_ess" + SHARED_COMPONENT="$DSO_ess_env" + + STATIC_FRAMEWORK="$STATIC_ess" + STATIC_COMPONENT="$STATIC_ess_env" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:env compile mode" >&5 +$as_echo_n "checking for MCA component ess:env compile mode... " >&6; } + if test "$DIRECT_ess" = "env" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/ess/env/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components env" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components env" + else + if test "ess" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/ess/env/lib${ORTE_LIB_PREFIX}mca_ess_env.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/ess/env/libmca_ess_env.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_ess_env_component;" >> $outfile.extern + echo " &mca_ess_env_component, " >> $outfile.struct + static_components="$static_components env" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:env can compile" >&5 +$as_echo_n "checking if MCA component ess:env can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_ess" = "env" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** ess component env was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_ess" = "env" ; then +as_fn_error $? "*** ess component env was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$ess_env_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_env_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_env_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$ess_env_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_env_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_env_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$ess_env_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_env_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_env_WRAPPER_EXTRA_CPPFLAGS ($ess_env_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring ess_env_WRAPPER_EXTRA_CPPFLAGS ($ess_env_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:env can compile" >&5 +$as_echo_n "checking if MCA component ess:env can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_ess" = "env" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"env\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"env\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "env" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"env\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"env\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components env" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_ess_env_DSO=1 + else + BUILD_orte_ess_env_DSO=0 + fi + if test "$BUILD_orte_ess_env_DSO" = "1"; then + MCA_BUILD_orte_ess_env_DSO_TRUE= + MCA_BUILD_orte_ess_env_DSO_FALSE='#' +else + MCA_BUILD_orte_ess_env_DSO_TRUE='#' + MCA_BUILD_orte_ess_env_DSO_FALSE= +fi + + + ac_config_files="$ac_config_files orte/mca/ess/env/Makefile" + + + unset compile_mode + + opal_show_subsubsubtitle "MCA component ess:hnp (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/orte/mca/ess/hnp" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "hnp" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_ess" = "1"; then : + want_component=0 +fi + if test "$DISABLE_ess_hnp" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_ess" + SHARED_COMPONENT="$DSO_ess_hnp" + + STATIC_FRAMEWORK="$STATIC_ess" + STATIC_COMPONENT="$STATIC_ess_hnp" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:hnp compile mode" >&5 +$as_echo_n "checking for MCA component ess:hnp compile mode... " >&6; } + if test "$DIRECT_ess" = "hnp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/ess/hnp/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components hnp" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components hnp" + else + if test "ess" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/ess/hnp/lib${ORTE_LIB_PREFIX}mca_ess_hnp.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/ess/hnp/libmca_ess_hnp.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_ess_hnp_component;" >> $outfile.extern + echo " &mca_ess_hnp_component, " >> $outfile.struct + static_components="$static_components hnp" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:hnp can compile" >&5 +$as_echo_n "checking if MCA component ess:hnp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_ess" = "hnp" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** ess component hnp was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_ess" = "hnp" ; then +as_fn_error $? "*** ess component hnp was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$ess_hnp_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_hnp_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_hnp_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$ess_hnp_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_hnp_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_hnp_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$ess_hnp_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_hnp_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_hnp_WRAPPER_EXTRA_CPPFLAGS ($ess_hnp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring ess_hnp_WRAPPER_EXTRA_CPPFLAGS ($ess_hnp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:hnp can compile" >&5 +$as_echo_n "checking if MCA component ess:hnp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_ess" = "hnp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hnp\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"hnp\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "hnp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hnp\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"hnp\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components hnp" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_ess_hnp_DSO=1 + else + BUILD_orte_ess_hnp_DSO=0 + fi + if test "$BUILD_orte_ess_hnp_DSO" = "1"; then + MCA_BUILD_orte_ess_hnp_DSO_TRUE= + MCA_BUILD_orte_ess_hnp_DSO_FALSE='#' +else + MCA_BUILD_orte_ess_hnp_DSO_TRUE='#' + MCA_BUILD_orte_ess_hnp_DSO_FALSE= +fi + + + ac_config_files="$ac_config_files orte/mca/ess/hnp/Makefile" + + + unset compile_mode + + opal_show_subsubsubtitle "MCA component ess:pmi (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/orte/mca/ess/pmi" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "pmi" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_ess" = "1"; then : + want_component=0 +fi + if test "$DISABLE_ess_pmi" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_ess" + SHARED_COMPONENT="$DSO_ess_pmi" + + STATIC_FRAMEWORK="$STATIC_ess" + STATIC_COMPONENT="$STATIC_ess_pmi" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:pmi compile mode" >&5 +$as_echo_n "checking for MCA component ess:pmi compile mode... " >&6; } + if test "$DIRECT_ess" = "pmi" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/ess/pmi/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components pmi" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components pmi" + else + if test "ess" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/ess/pmi/lib${ORTE_LIB_PREFIX}mca_ess_pmi.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/ess/pmi/libmca_ess_pmi.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_ess_pmi_component;" >> $outfile.extern + echo " &mca_ess_pmi_component, " >> $outfile.struct + static_components="$static_components pmi" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:pmi can compile" >&5 +$as_echo_n "checking if MCA component ess:pmi can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_ess" = "pmi" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** ess component pmi was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_ess" = "pmi" ; then +as_fn_error $? "*** ess component pmi was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$ess_pmi_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_pmi_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_pmi_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$ess_pmi_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_pmi_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_pmi_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$ess_pmi_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_pmi_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_pmi_WRAPPER_EXTRA_CPPFLAGS ($ess_pmi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring ess_pmi_WRAPPER_EXTRA_CPPFLAGS ($ess_pmi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:pmi can compile" >&5 +$as_echo_n "checking if MCA component ess:pmi can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_ess" = "pmi" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pmi\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pmi\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "pmi" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pmi\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pmi\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components pmi" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_ess_pmi_DSO=1 + else + BUILD_orte_ess_pmi_DSO=0 + fi + if test "$BUILD_orte_ess_pmi_DSO" = "1"; then + MCA_BUILD_orte_ess_pmi_DSO_TRUE= + MCA_BUILD_orte_ess_pmi_DSO_FALSE='#' +else + MCA_BUILD_orte_ess_pmi_DSO_TRUE='#' + MCA_BUILD_orte_ess_pmi_DSO_FALSE= +fi + + + ac_config_files="$ac_config_files orte/mca/ess/pmi/Makefile" + + + unset compile_mode + + opal_show_subsubsubtitle "MCA component ess:singleton (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/orte/mca/ess/singleton" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "singleton" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_ess" = "1"; then : + want_component=0 +fi + if test "$DISABLE_ess_singleton" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_ess" + SHARED_COMPONENT="$DSO_ess_singleton" + + STATIC_FRAMEWORK="$STATIC_ess" + STATIC_COMPONENT="$STATIC_ess_singleton" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:singleton compile mode" >&5 +$as_echo_n "checking for MCA component ess:singleton compile mode... " >&6; } + if test "$DIRECT_ess" = "singleton" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/ess/singleton/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components singleton" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components singleton" + else + if test "ess" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/ess/singleton/lib${ORTE_LIB_PREFIX}mca_ess_singleton.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/ess/singleton/libmca_ess_singleton.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_ess_singleton_component;" >> $outfile.extern + echo " &mca_ess_singleton_component, " >> $outfile.struct + static_components="$static_components singleton" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:singleton can compile" >&5 +$as_echo_n "checking if MCA component ess:singleton can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_ess" = "singleton" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** ess component singleton was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_ess" = "singleton" ; then +as_fn_error $? "*** ess component singleton was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$ess_singleton_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_singleton_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_singleton_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$ess_singleton_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_singleton_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_singleton_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$ess_singleton_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_singleton_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_singleton_WRAPPER_EXTRA_CPPFLAGS ($ess_singleton_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring ess_singleton_WRAPPER_EXTRA_CPPFLAGS ($ess_singleton_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:singleton can compile" >&5 +$as_echo_n "checking if MCA component ess:singleton can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_ess" = "singleton" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"singleton\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"singleton\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "singleton" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"singleton\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"singleton\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components singleton" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_ess_singleton_DSO=1 + else + BUILD_orte_ess_singleton_DSO=0 + fi + if test "$BUILD_orte_ess_singleton_DSO" = "1"; then + MCA_BUILD_orte_ess_singleton_DSO_TRUE= + MCA_BUILD_orte_ess_singleton_DSO_FALSE='#' +else + MCA_BUILD_orte_ess_singleton_DSO_TRUE='#' + MCA_BUILD_orte_ess_singleton_DSO_FALSE= +fi + + + ac_config_files="$ac_config_files orte/mca/ess/singleton/Makefile" + + + unset compile_mode + + opal_show_subsubsubtitle "MCA component ess:tool (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/orte/mca/ess/tool" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "tool" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_ess" = "1"; then : + want_component=0 +fi + if test "$DISABLE_ess_tool" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_ess" + SHARED_COMPONENT="$DSO_ess_tool" + + STATIC_FRAMEWORK="$STATIC_ess" + STATIC_COMPONENT="$STATIC_ess_tool" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:tool compile mode" >&5 +$as_echo_n "checking for MCA component ess:tool compile mode... " >&6; } + if test "$DIRECT_ess" = "tool" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/ess/tool/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components tool" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components tool" + else + if test "ess" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/ess/tool/lib${ORTE_LIB_PREFIX}mca_ess_tool.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/ess/tool/libmca_ess_tool.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_ess_tool_component;" >> $outfile.extern + echo " &mca_ess_tool_component, " >> $outfile.struct + static_components="$static_components tool" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:tool can compile" >&5 +$as_echo_n "checking if MCA component ess:tool can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_ess" = "tool" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** ess component tool was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_ess" = "tool" ; then +as_fn_error $? "*** ess component tool was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$ess_tool_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_tool_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_tool_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$ess_tool_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_tool_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_tool_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$ess_tool_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_tool_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_tool_WRAPPER_EXTRA_CPPFLAGS ($ess_tool_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring ess_tool_WRAPPER_EXTRA_CPPFLAGS ($ess_tool_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:tool can compile" >&5 +$as_echo_n "checking if MCA component ess:tool can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_ess" = "tool" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tool\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tool\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "tool" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tool\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tool\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components tool" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_ess_tool_DSO=1 + else + BUILD_orte_ess_tool_DSO=0 + fi + if test "$BUILD_orte_ess_tool_DSO" = "1"; then + MCA_BUILD_orte_ess_tool_DSO_TRUE= + MCA_BUILD_orte_ess_tool_DSO_FALSE='#' +else + MCA_BUILD_orte_ess_tool_DSO_TRUE='#' + MCA_BUILD_orte_ess_tool_DSO_FALSE= +fi + + + ac_config_files="$ac_config_files orte/mca/ess/tool/Makefile" + + + unset compile_mode + + + # configure components that use built-in configuration scripts + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + opal_show_subsubsubtitle "MCA component ess:alps (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/orte/mca/ess/alps" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "alps" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_ess" = "1"; then : + want_component=0 +fi + if test "$DISABLE_ess_alps" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + SHARED_FRAMEWORK="$DSO_ess" + SHARED_COMPONENT="$DSO_ess_alps" + + STATIC_FRAMEWORK="$STATIC_ess" + STATIC_COMPONENT="$STATIC_ess_alps" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:alps compile mode" >&5 +$as_echo_n "checking for MCA component ess:alps compile mode... " >&6; } + if test "$DIRECT_ess" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + + # try to configure the component + + ac_config_files="$ac_config_files orte/mca/ess/alps/Makefile" + + + + if test -z "$opal_check_cray_alps_happy"; then + + +# Check whether --with-alps was given. +if test "${with_alps+set}" = set; then : + withval=$with_alps; +else + with_alps=auto +fi + + + if test -f /etc/opt/cray/release/clerelease; then + cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` + else + cle_level="unknown" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 +$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } + if test "$cle_level" = "4" && test "$with_alps" != "no"; then : + + +# +# if we've gotten here, its because we are building on a CLE 4 system +# + opal_check_alps_cle4_libdir_happy="no" + opal_check_alps_cle4_dir_happy="no" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 +$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } + + +# Check whether --with-alps-libdir was given. +if test "${with_alps_libdir+set}" = set; then : + withval=$with_alps_libdir; +fi + + +# +# check to see if Open MPI is being built on a CLE 4 eslogin node +# + if test -f /etc/opt/cray/release/ESLrelease; then : + default_alps_dir="/opt/cray/xe-sysroot/default/usr" +else + default_alps_dir="/usr" +fi + + if test -z "$with_alps_libdir"; then : + if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : + if test -d "$with_alps_libdir/lib64"; then : + opal_check_alps_libdir="$with_alps_libdir/lib64" +else + opal_check_alps_libdir="$with_alps_libdir/lib" +fi +else + opal_check_alps_libdir="$default_alps_dir/lib/alps" +fi + +fi + + if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : + opal_check_alps_dir=$default_alps_dir +else + opal_check_alps_dir=$with_alps +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 +$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } + if test -f "$opal_check_alps_libdir/libalps.a"; then : + opal_check_alps_libdir_cle4_happy="yes" +else + opal_check_alps_libdir_cle4_happy="no", + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 +$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } + if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : + opal_check_alps_dir_cle4_happy="yes" +else + opal_check_alps_dir_cle4_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : + CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" + CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + opal_check_cray_alps_happy="yes" +else + opal_check_cray_alps_happy="no" +fi + +else + if test "$with_alps" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy=no + ess_alps_happy="no" +else + if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 +$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } + +if test -n "$CRAY_ALPSLLI_CFLAGS"; then + pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSLLI_LIBS"; then + pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` + else + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS + CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS + CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 +$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } + +if test -n "$CRAY_ALPSUTIL_CFLAGS"; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSUTIL_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` + else + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS + CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS + CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 +$as_echo_n "checking for CRAY_ALPS... " >&6; } + +if test -n "$CRAY_ALPS_CFLAGS"; then + pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_LIBS"; then + pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_STATIC_LIBS"; then + pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` + else + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPS_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS + CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS + CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 +$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } + +if test -n "$CRAY_WLM_DETECT_CFLAGS"; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_WLM_DETECT_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + else + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS + CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS + CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" + +cat >>confdefs.h <<_ACEOF +#define CRAY_WLM_DETECT 1 +_ACEOF + + +fi + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 +$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 +$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +fi + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 +$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } + + if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : + CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS + CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS +fi + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ompi_summary_section=$(echo Resource Managers | tr ' ' '_') + ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + if test "$opal_check_cray_alps_happy" = "yes"; then : + ess_alps_LDFLAGS="$ess_alps_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" + ess_alps_CPPFLAGS="$ess_alps_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" + ess_alps_LIBS="$ess_alps_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + ess_alps_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + ess_alps_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + ess_alps_happy="yes" +else + ess_alps_happy="no" +fi + + + if test "$ess_alps_happy" = "yes"; then : + should_build=$should_build + + + +else + should_build=0 +fi + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/ess/alps/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components alps" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components alps" + else + if test "ess" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/ess/alps/lib${ORTE_LIB_PREFIX}mca_ess_alps.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/ess/alps/libmca_ess_alps.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_ess_alps_component;" >> $outfile.extern + echo " &mca_ess_alps_component, " >> $outfile.struct + static_components="$static_components alps" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:alps can compile" >&5 +$as_echo_n "checking if MCA component ess:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_ess" = "alps" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** ess component alps was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_ess" = "alps" ; then +as_fn_error $? "*** ess component alps was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$ess_alps_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_alps_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_alps_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$ess_alps_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_alps_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_alps_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$ess_alps_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $ess_alps_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_alps_WRAPPER_EXTRA_CPPFLAGS ($ess_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring ess_alps_WRAPPER_EXTRA_CPPFLAGS ($ess_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:alps can compile" >&5 +$as_echo_n "checking if MCA component ess:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_ess" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components alps" +fi + + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_orte_ess_alps_DSO=1 +else + BUILD_orte_ess_alps_DSO=0 +fi + if test "$BUILD_orte_ess_alps_DSO" = "1"; then + MCA_BUILD_orte_ess_alps_DSO_TRUE= + MCA_BUILD_orte_ess_alps_DSO_FALSE='#' +else + MCA_BUILD_orte_ess_alps_DSO_TRUE='#' + MCA_BUILD_orte_ess_alps_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + + + + + opal_show_subsubsubtitle "MCA component ess:lsf (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/orte/mca/ess/lsf" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "lsf" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_ess" = "1"; then : + want_component=0 +fi + if test "$DISABLE_ess_lsf" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + SHARED_FRAMEWORK="$DSO_ess" + SHARED_COMPONENT="$DSO_ess_lsf" + + STATIC_FRAMEWORK="$STATIC_ess" + STATIC_COMPONENT="$STATIC_ess_lsf" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:lsf compile mode" >&5 +$as_echo_n "checking for MCA component ess:lsf compile mode... " >&6; } + if test "$DIRECT_ess" = "lsf" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + + # try to configure the component + + ac_config_files="$ac_config_files orte/mca/ess/lsf/Makefile" + + + + if test -z "$orte_check_lsf_happy"; then : + + +# Check whether --with-lsf was given. +if test "${with_lsf+set}" = set; then : + withval=$with_lsf; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-lsf value" >&5 +$as_echo_n "checking --with-lsf value... " >&6; } + if test "$with_lsf" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-lsf)" >&5 +$as_echo "simple no (specified --without-lsf)" >&6; } +else + if test "$with_lsf" = "yes" || test "x$with_lsf" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_lsf"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_lsf not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_lsf not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_lsf/include/lsf/lsbatch.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_lsf/include/lsf/lsbatch.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_lsf/include/lsf/lsbatch.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_lsf)" >&5 +$as_echo "sanity check ok ($with_lsf)" >&6; } + +fi + + +fi + + +fi + + +fi + + +# Check whether --with-lsf-libdir was given. +if test "${with_lsf_libdir+set}" = set; then : + withval=$with_lsf_libdir; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-lsf-libdir value" >&5 +$as_echo_n "checking --with-lsf-libdir value... " >&6; } + if test "$with_lsf_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-lsf-libdir)" >&5 +$as_echo "simple no (specified --without-lsf-libdir)" >&6; } +else + if test "$with_lsf_libdir" = "yes" || test "x$with_lsf_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_lsf_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_lsf_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_lsf_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_lsf_libdir/libbat.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_lsf_libdir/libbat.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_lsf_libdir/libbat.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_lsf_libdir)" >&5 +$as_echo "sanity check ok ($with_lsf_libdir)" >&6; } + +fi + + +fi + + +fi + + +fi + + + if test "$with_lsf" != "no"; then : + + # Defaults + orte_check_lsf_dir_msg="compiler default" + orte_check_lsf_libdir_msg="linker default" + + # Save directory names if supplied + if test ! -z "$with_lsf" && test "$with_lsf" != "yes"; then : + orte_check_lsf_dir="$with_lsf" + orte_check_lsf_dir_msg="$orte_check_lsf_dir (from --with-lsf)" +fi + if test ! -z "$with_lsf_libdir" && test "$with_lsf_libdir" != "yes"; then : + orte_check_lsf_libdir="$with_lsf_libdir" + orte_check_lsf_libdir_msg="$orte_check_lsf_libdir (from --with-lsf-libdir)" +fi + + # If no directories were specified, look for LSF_LIBDIR, + # LSF_INCLUDEDIR, and/or LSF_ENVDIR. + if test -z "$orte_check_lsf_dir" && test -z "$orte_check_lsf_libdir"; then : + if test ! -z "$LSF_ENVDIR" && test -z "$LSF_LIBDIR" && test -f "$LSF_ENVDIR/lsf.conf"; then : + LSF_LIBDIR=`egrep ^LSF_LIBDIR= $LSF_ENVDIR/lsf.conf | cut -d= -f2-` +fi + if test ! -z "$LSF_ENVDIR" && test -z "$LSF_INCLUDEDIR" && test -f "$LSF_ENVDIR/lsf.conf"; then : + LSF_INCLUDEDIR=`egrep ^LSF_INCLUDEDIR= $LSF_ENVDIR/lsf.conf | cut -d= -f2-` +fi + if test ! -z "$LSF_LIBDIR"; then : + orte_check_lsf_libdir=$LSF_LIBDIR + orte_check_lsf_libdir_msg="$LSF_LIBDIR (from \$LSF_LIBDIR)" +fi + if test ! -z "$LSF_INCLUDEDIR"; then : + orte_check_lsf_dir=`dirname $LSF_INCLUDEDIR` + orte_check_lsf_dir_msg="$orte_check_lsf_dir (from \$LSF_INCLUDEDIR)" +fi +fi + + if test "$with_lsf" = "no"; then : + orte_check_lsf_happy="no" +else + orte_check_lsf_happy="yes" +fi + + orte_check_lsf_ess_lsf_save_CPPFLAGS="$CPPFLAGS" + orte_check_lsf_ess_lsf_save_LDFLAGS="$LDFLAGS" + orte_check_lsf_ess_lsf_save_LIBS="$LIBS" + + # liblsf requires yp_all, yp_get_default_domain, and ypprot_err + # on Linux, Solaris, NEC, and Sony NEWSs these are found in libnsl + # on AIX it should be in libbsd + # on HP-UX it should be in libBSD + # on IRIX < 6 it should be in libsun (IRIX 6 and later it is in libc) + # on RHEL: libnsl, libnsl2 AND libnsl2-devel are required to link libnsl to get yp_all. + if test "$orte_check_lsf_happy" = "yes"; then : + + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in LIBS_save add; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"LIBS_save add\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + LIBS_save=$LIBS + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing yp_all" >&5 +$as_echo_n "checking for library containing yp_all... " >&6; } +if ${ac_cv_search_yp_all+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char yp_all (); +int +main () +{ +return yp_all (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nsl bsd BSD sun; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_yp_all=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_yp_all+:} false; then : + break +fi +done +if ${ac_cv_search_yp_all+:} false; then : + +else + ac_cv_search_yp_all=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_yp_all" >&5 +$as_echo "$ac_cv_search_yp_all" >&6; } +ac_res=$ac_cv_search_yp_all +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + # Found it! See if anything was added to LIBS + add=`printf '%s\n' "$LIBS" | sed -e "s/$LIBS_save$//"` + if test -n "$add"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $add; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${yp_all_nsl_LIBS}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$yp_all_nsl_LIBS"; then : + yp_all_nsl_LIBS=$arg +else + yp_all_nsl_LIBS="$yp_all_nsl_LIBS $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + yp_all_nsl_have_yp_all=1 + orte_check_lsf_happy="yes" +else + yp_all_nsl_have_yp_all=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find yp_all. Please see https://www.open-mpi.org/faq/?category=building#build-rte-lsf for more details." >&5 +$as_echo "$as_me: WARNING: Could not find yp_all. Please see https://www.open-mpi.org/faq/?category=building#build-rte-lsf for more details." >&2;} + orte_check_lsf_happy="no" +fi + + + +cat >>confdefs.h <<_ACEOF +#define OPAL_HAVE_YP_ALL_NSL $yp_all_nsl_have_yp_all +_ACEOF + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + # liblsf requires shm_open, shm_unlink, which are in librt + if test "$orte_check_lsf_happy" = "yes"; then : + + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in LIBS_save add; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"LIBS_save add\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + LIBS_save=$LIBS + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing shm_open" >&5 +$as_echo_n "checking for library containing shm_open... " >&6; } +if ${ac_cv_search_shm_open+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shm_open (); +int +main () +{ +return shm_open (); + ; + return 0; +} +_ACEOF +for ac_lib in '' rt; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_shm_open=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_shm_open+:} false; then : + break +fi +done +if ${ac_cv_search_shm_open+:} false; then : + +else + ac_cv_search_shm_open=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_shm_open" >&5 +$as_echo "$ac_cv_search_shm_open" >&6; } +ac_res=$ac_cv_search_shm_open +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + # Found it! See if anything was added to LIBS + add=`printf '%s\n' "$LIBS" | sed -e "s/$LIBS_save$//"` + if test -n "$add"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $add; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${shm_open_rt_LIBS}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$shm_open_rt_LIBS"; then : + shm_open_rt_LIBS=$arg +else + shm_open_rt_LIBS="$shm_open_rt_LIBS $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + shm_open_rt_have_shm_open=1 + orte_check_lsf_happy="yes" +else + shm_open_rt_have_shm_open=0 + orte_check_lsf_happy="no" +fi + + + +cat >>confdefs.h <<_ACEOF +#define OPAL_HAVE_SHM_OPEN_RT $shm_open_rt_have_shm_open +_ACEOF + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + # liblsb requires liblsf - using ls_info as a test for liblsf presence + if test "$orte_check_lsf_happy" = "yes"; then : + + opal_check_package_ls_info_lsf_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_ls_info_lsf_save_LDFLAGS="$LDFLAGS" + opal_check_package_ls_info_lsf_save_LIBS="$LIBS" + + opal_check_package_ls_info_lsf_orig_CPPFLAGS="$ls_info_lsf_CPPFLAGS" + opal_check_package_ls_info_lsf_orig_LDFLAGS="$ls_info_lsf_LDFLAGS" + opal_check_package_ls_info_lsf_orig_LIBS="$ls_info_lsf_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in dir_prefix; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_lsf_lsf_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $orte_check_lsf_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in lsf/lsf.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "lsf/lsf.h" "ac_cv_header_lsf_lsf_h" "$ac_includes_default" +if test "x$ac_cv_header_lsf_lsf_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LSF_LSF_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_lsf_lsf_h +fi +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + ls_info_lsf_CPPFLAGS="$ls_info_lsf_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in lsf/lsf.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "lsf/lsf.h" "ac_cv_header_lsf_lsf_h" "$ac_includes_default" +if test "x$ac_cv_header_lsf_lsf_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LSF_LSF_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_ls_info + opal_check_package_lib_happy="no" + if test "$orte_check_lsf_libdir" != ""; then : + # libdir was specified - search only there + ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$orte_check_lsf_libdir" + LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 +$as_echo_n "checking for library containing ls_info... " >&6; } +if ${ac_cv_search_ls_info+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ls_info (); +int +main () +{ +return ls_info (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lsf; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ls_info=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ls_info+:} false; then : + break +fi +done +if ${ac_cv_search_ls_info+:} false; then : + +else + ac_cv_search_ls_info=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 +$as_echo "$ac_cv_search_ls_info" >&6; } +ac_res=$ac_cv_search_ls_info +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + unset ac_cv_search_ls_info +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$orte_check_lsf_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 +$as_echo_n "checking for library containing ls_info... " >&6; } +if ${ac_cv_search_ls_info+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ls_info (); +int +main () +{ +return ls_info (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lsf; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ls_info=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ls_info+:} false; then : + break +fi +done +if ${ac_cv_search_ls_info+:} false; then : + +else + ac_cv_search_ls_info=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 +$as_echo "$ac_cv_search_ls_info" >&6; } +ac_res=$ac_cv_search_ls_info +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + unset ac_cv_search_ls_info +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 +$as_echo_n "checking for library containing ls_info... " >&6; } +if ${ac_cv_search_ls_info+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ls_info (); +int +main () +{ +return ls_info (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lsf; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ls_info=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ls_info+:} false; then : + break +fi +done +if ${ac_cv_search_ls_info+:} false; then : + +else + ac_cv_search_ls_info=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 +$as_echo "$ac_cv_search_ls_info" >&6; } +ac_res=$ac_cv_search_ls_info +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + unset ac_cv_search_ls_info +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 +$as_echo_n "checking for library containing ls_info... " >&6; } +if ${ac_cv_search_ls_info+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ls_info (); +int +main () +{ +return ls_info (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lsf; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ls_info=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ls_info+:} false; then : + break +fi +done +if ${ac_cv_search_ls_info+:} false; then : + +else + ac_cv_search_ls_info=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 +$as_echo "$ac_cv_search_ls_info" >&6; } +ac_res=$ac_cv_search_ls_info +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + unset ac_cv_search_ls_info +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_libnl_sane; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + opal_libnl_sane=1 + case $host in + *linux*) + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if liblsf requires libnl v1 or v3" >&5 +$as_echo_n "checking if liblsf requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ls_info (void); +int main(int argc, char *argv[]) { + ls_info (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:199488: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:199495: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib lsf" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib lsf" >&2;} + +fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, liblsf links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, liblsf links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} + + libnl_sane=0 +fi + + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lsf requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lsf requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} + + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs lsf" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi + +fi + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblsf requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblsf requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} + + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs lsf" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi + +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ls_info" != "no" && + test "$ac_cv_search_ls_info" != "none required"; then : + ls_info_lsf_LIBS="$ac_cv_search_ls_info $yp_all_nsl_LIBS $shm_open_rt_LIBS" +else + ls_info_lsf_LIBS="$yp_all_nsl_LIBS $shm_open_rt_LIBS" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi + + +else + opal_check_package_happy="no" +fi +else + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_ls_info + opal_check_package_lib_happy="no" + if test "$orte_check_lsf_libdir" != ""; then : + # libdir was specified - search only there + ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$orte_check_lsf_libdir" + LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 +$as_echo_n "checking for library containing ls_info... " >&6; } +if ${ac_cv_search_ls_info+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ls_info (); +int +main () +{ +return ls_info (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lsf; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ls_info=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ls_info+:} false; then : + break +fi +done +if ${ac_cv_search_ls_info+:} false; then : + +else + ac_cv_search_ls_info=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 +$as_echo "$ac_cv_search_ls_info" >&6; } +ac_res=$ac_cv_search_ls_info +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + unset ac_cv_search_ls_info +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$orte_check_lsf_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 +$as_echo_n "checking for library containing ls_info... " >&6; } +if ${ac_cv_search_ls_info+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ls_info (); +int +main () +{ +return ls_info (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lsf; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ls_info=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ls_info+:} false; then : + break +fi +done +if ${ac_cv_search_ls_info+:} false; then : + +else + ac_cv_search_ls_info=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 +$as_echo "$ac_cv_search_ls_info" >&6; } +ac_res=$ac_cv_search_ls_info +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + unset ac_cv_search_ls_info +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 +$as_echo_n "checking for library containing ls_info... " >&6; } +if ${ac_cv_search_ls_info+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ls_info (); +int +main () +{ +return ls_info (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lsf; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ls_info=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ls_info+:} false; then : + break +fi +done +if ${ac_cv_search_ls_info+:} false; then : + +else + ac_cv_search_ls_info=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 +$as_echo "$ac_cv_search_ls_info" >&6; } +ac_res=$ac_cv_search_ls_info +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + unset ac_cv_search_ls_info +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 +$as_echo_n "checking for library containing ls_info... " >&6; } +if ${ac_cv_search_ls_info+:} false; then : + $as_echo_n "(cached) " >&6 else - CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS - CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS - CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -cat >>confdefs.h <<_ACEOF -#define CRAY_WLM_DETECT 1 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ls_info (); +int +main () +{ +return ls_info (); + ; + return 0; +} _ACEOF - - +for ac_lib in '' lsf; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ls_info=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ls_info+:} false; then : + break fi +done +if ${ac_cv_search_ls_info+:} false; then : else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 -$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 -$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 + ac_cv_search_ls_info=no fi - +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 +$as_echo "$ac_cv_search_ls_info" >&6; } +ac_res=$ac_cv_search_ls_info +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 -$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } - - if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : - CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS - CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + unset ac_cv_search_ls_info +fi +fi +fi fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -182860,7 +200118,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -182879,203 +200137,325 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` + opal_libnl_sane=1 + case $host in + *linux*) - ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str + unset opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - if test "$opal_check_cray_alps_happy" = "yes"; then : - common_alps_LDFLAGS="$common_alps_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" - common_alps_CPPFLAGS="$common_alps_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" - common_alps_LIBS="$common_alps_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - common_alps_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - common_alps_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - common_alps_happy="yes" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if liblsf requires libnl v1 or v3" >&5 +$as_echo_n "checking if liblsf requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ls_info (void); +int main(int argc, char *argv[]) { + ls_info (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:200213: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:200220: \$? = $opal_status" >&5 else - common_alps_happy="no" + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib lsf" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib lsf" >&2;} - if test "$common_alps_happy" = "yes"; then : - should_build=$should_build +fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, liblsf links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, liblsf links to both libnl and libnl-3." >&2;} -else - should_build=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} + + libnl_sane=0 fi - # - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lsf requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lsf requires libnl" >&2;} - if test "$should_build" = "1"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs lsf" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/common/alps/post_configure.sh" +# Go through each item in the variable and only keep the unique ones - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components alps" +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components alps" - else - if test "common" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/common/alps/lib${ORTE_LIB_PREFIX}mca_common_alps.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/common/alps/libmca_common_alps.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_common_alps_component;" >> $outfile.extern - echo " &mca_common_alps_component, " >> $outfile.struct - static_components="$static_components alps" - fi + # Loop over every token we've seen so far - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:alps can compile" >&5 -$as_echo_n "checking if MCA component common:alps can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_common" = "alps" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_common_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** common component alps was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_common" = "alps" ; then -as_fn_error $? "*** common component alps was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$common_alps_WRAPPER_EXTRA_LDFLAGS" = ""; then : + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Take all the items in the "array" and assemble them back into a +# single variable - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - for arg in $common_alps_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblsf requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblsf requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} + + libnl_sane=0 else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + opal_libnlv3_libs="$opal_libnlv3_libs lsf" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -183099,64 +200479,54 @@ done -else - + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - for arg in $common_alps_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ls_info" != "no" && + test "$ac_cv_search_ls_info" != "none required"; then : + ls_info_lsf_LIBS="$ac_cv_search_ls_info $yp_all_nsl_LIBS $shm_open_rt_LIBS" +else + ls_info_lsf_LIBS="$yp_all_nsl_LIBS $shm_open_rt_LIBS" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -183180,8 +200550,45 @@ done + + if test "$opal_check_package_happy" = "yes"; then : + orte_check_lsf_happy="yes" +else + ls_info_lsf_CPPFLAGS="$opal_check_package_ls_info_lsf_orig_CPPFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + ls_info_lsf_LIBS="$opal_check_package_ls_info_lsf_orig_LIBS" + orte_check_lsf_happy="no" fi - if test "$common_alps_WRAPPER_EXTRA_LIBS" = ""; then : + + CPPFLAGS="$opal_check_package_ls_info_lsf_save_CPPFLAGS" + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + LIBS="$opal_check_package_ls_info_lsf_save_LIBS" + +fi + + # test function of liblsb LSF package + if test "$orte_check_lsf_happy" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LSF dir" >&5 +$as_echo_n "checking for LSF dir... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_lsf_dir_msg" >&5 +$as_echo "$orte_check_lsf_dir_msg" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LSF library dir" >&5 +$as_echo_n "checking for LSF library dir... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_lsf_libdir_msg" >&5 +$as_echo "$orte_check_lsf_libdir_msg" >&6; } + + opal_check_package_orte_check_lsf_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_orte_check_lsf_save_LDFLAGS="$LDFLAGS" + opal_check_package_orte_check_lsf_save_LIBS="$LIBS" + + opal_check_package_orte_check_lsf_orig_CPPFLAGS="$orte_check_lsf_CPPFLAGS" + opal_check_package_orte_check_lsf_orig_LDFLAGS="$orte_check_lsf_LDFLAGS" + opal_check_package_orte_check_lsf_orig_LIBS="$orte_check_lsf_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -183194,7 +200601,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -183213,7 +200620,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -183221,139 +200628,398 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_alps_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_lsf_lsbatch_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $orte_check_lsf_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in lsf/lsbatch.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "lsf/lsbatch.h" "ac_cv_header_lsf_lsbatch_h" "$ac_includes_default" +if test "x$ac_cv_header_lsf_lsbatch_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LSF_LSBATCH_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_lsf_lsbatch_h fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + orte_check_lsf_CPPFLAGS="$orte_check_lsf_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in lsf/lsbatch.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "lsf/lsbatch.h" "ac_cv_header_lsf_lsbatch_h" "$ac_includes_default" +if test "x$ac_cv_header_lsf_lsbatch_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LSF_LSBATCH_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done +done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_header_happy" = "yes"; then : - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # see comment above + unset ac_cv_search_lsb_launch + opal_check_package_lib_happy="no" + if test "$orte_check_lsf_libdir" != ""; then : + # libdir was specified - search only there + orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$orte_check_lsf_libdir" + LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 +$as_echo_n "checking for library containing lsb_launch... " >&6; } +if ${ac_cv_search_lsb_launch+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lsb_launch (); +int +main () +{ +return lsb_launch (); + ; + return 0; +} +_ACEOF +for ac_lib in '' bat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lsb_launch=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lsb_launch+:} false; then : + break +fi +done +if ${ac_cv_search_lsb_launch+:} false; then : + +else + ac_cv_search_lsb_launch=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 +$as_echo "$ac_cv_search_lsb_launch" >&6; } +ac_res=$ac_cv_search_lsb_launch +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + unset ac_cv_search_lsb_launch +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$orte_check_lsf_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 +$as_echo_n "checking for library containing lsb_launch... " >&6; } +if ${ac_cv_search_lsb_launch+:} false; then : + $as_echo_n "(cached) " >&6 else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lsb_launch (); +int +main () +{ +return lsb_launch (); + ; + return 0; +} +_ACEOF +for ac_lib in '' bat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lsb_launch=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lsb_launch+:} false; then : + break +fi +done +if ${ac_cv_search_lsb_launch+:} false; then : +else + ac_cv_search_lsb_launch=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 +$as_echo "$ac_cv_search_lsb_launch" >&6; } +ac_res=$ac_cv_search_lsb_launch +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + unset ac_cv_search_lsb_launch +fi +fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 +$as_echo_n "checking for library containing lsb_launch... " >&6; } +if ${ac_cv_search_lsb_launch+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lsb_launch (); +int +main () +{ +return lsb_launch (); + ; + return 0; +} +_ACEOF +for ac_lib in '' bat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lsb_launch=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lsb_launch+:} false; then : + break +fi +done +if ${ac_cv_search_lsb_launch+:} false; then : - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +else + ac_cv_search_lsb_launch=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 +$as_echo "$ac_cv_search_lsb_launch" >&6; } +ac_res=$ac_cv_search_lsb_launch +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + unset ac_cv_search_lsb_launch +fi +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 +$as_echo_n "checking for library containing lsb_launch... " >&6; } +if ${ac_cv_search_lsb_launch+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - for arg in $common_alps_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lsb_launch (); +int +main () +{ +return lsb_launch (); + ; + return 0; +} +_ACEOF +for ac_lib in '' bat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lsb_launch=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lsb_launch+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +done +if ${ac_cv_search_lsb_launch+:} false; then : + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_cv_search_lsb_launch=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 +$as_echo "$ac_cv_search_lsb_launch" >&6; } +ac_res=$ac_cv_search_lsb_launch +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + unset ac_cv_search_lsb_launch +fi +fi fi fi - done + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_libnl_sane; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + eval $opal_str + unset opal_str -fi - - fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$common_alps_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -183366,7 +201032,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -183385,7 +201051,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -183393,389 +201059,303 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_alps_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libbat requires libnl v1 or v3" >&5 +$as_echo_n "checking if libbat requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void lsb_launch (void); +int main(int argc, char *argv[]) { + lsb_launch (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:201086: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:201093: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring common_alps_WRAPPER_EXTRA_CPPFLAGS ($common_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring common_alps_WRAPPER_EXTRA_CPPFLAGS ($common_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib bat" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib bat" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:alps can compile" >&5 -$as_echo_n "checking if MCA component common:alps can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi - # If this component was requested as the default for this - # type, then abort. - if test "$with_common" = "alps" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "alps" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # add component to all component list - all_components="$all_components alps" + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} + + libnl_sane=0 fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_common_alps_DSO=1 -else - BUILD_orte_common_alps_DSO=0 -fi - if test "$BUILD_orte_common_alps_DSO" = "1"; then - MCA_BUILD_orte_common_alps_DSO_TRUE= - MCA_BUILD_orte_common_alps_DSO_FALSE='#' + libnl_sane=0 else - MCA_BUILD_orte_common_alps_DSO_TRUE='#' - MCA_BUILD_orte_common_alps_DSO_FALSE= -fi + opal_libnlv1_libs="$opal_libnlv1_libs bat" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi +# Go through each item in the variable and only keep the unique ones - unset compile_mode +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - if test "1" != "0"; then : + opal_i="`expr $opal_i + 1`" + done - for component_path in $srcdir/orte/mca/common/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component common:$component (need to configure)" + # If we didn't find the token, add it to the "array" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - component_path="$srcdir/orte/mca/common/$component" - want_component=0 + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # if we were explicitly disabled, don't build :) - if test "$DISABLE_common" = "1"; then : - want_component=0 -fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_common_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi +# Done; do the assignment - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi +fi - SHARED_FRAMEWORK="$DSO_common" - str="SHARED_COMPONENT=\$DSO_common_$component" - eval $str + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&2;} - STATIC_FRAMEWORK="$STATIC_common" - str="STATIC_COMPONENT=\$STATIC_common_$component" - eval $str + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} - shared_mode_override=static + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs bat" - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:$component compile mode" >&5 -$as_echo_n "checking for MCA component common:$component compile mode... " >&6; } - if test "$DIRECT_common" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +# Go through each item in the variable and only keep the unique ones - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - if test "$should_build" = "1" ; then + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Check the ending condition - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + opal_done="`expr $opal_i \>= $opal_count`" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str + # Increment the counter - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_i="`expr $opal_i + 1`" + done + # If we didn't find the token, add it to the "array" -# -# Invoke configure in a specific subdirectory. -# -# orte/mca/common/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="orte/mca/common/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done -# -# Sanity checks -# +# Take all the items in the "array" and assemble them back into a +# single variable -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac +# Done; do the assignment - # - # Move into the target directory - # +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - subdir_parent=`pwd` - cd $subdir_dir +# Clean up - # - # Make a "../" for each directory in $subdir_dir. - # +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # +fi - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # - # Construct the --cache-file argument - # + rm -f conftest conftest_c.$ac_ext - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + opal_libnl_sane=$libnl_sane - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # - # Go back to the topdir - # + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - cd $subdir_parent -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# -# Clean up -# + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -183797,105 +201377,333 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/orte/mca/common/all_components/post_configure.sh" - if test -f $infile; then + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi +fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - common_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - common_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_lsb_launch" != "no" && + test "$ac_cv_search_lsb_launch" != "none required"; then : + orte_check_lsf_LIBS="$ac_cv_search_lsb_launch $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS" +else + orte_check_lsf_LIBS="$ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi +else + opal_check_package_happy="no" +fi +else + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/common/$component/post_configure.sh" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + # see comment above + unset ac_cv_search_lsb_launch + opal_check_package_lib_happy="no" + if test "$orte_check_lsf_libdir" != ""; then : + # libdir was specified - search only there + orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$orte_check_lsf_libdir" + LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 +$as_echo_n "checking for library containing lsb_launch... " >&6; } +if ${ac_cv_search_lsb_launch+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "common" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/common/$component/lib${ORTE_LIB_PREFIX}mca_common_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/common/$component/libmca_common_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_common_$component_component;" >> $outfile.extern - echo " &mca_common_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lsb_launch (); +int +main () +{ +return lsb_launch (); + ; + return 0; +} +_ACEOF +for ac_lib in '' bat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lsb_launch=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lsb_launch+:} false; then : + break +fi +done +if ${ac_cv_search_lsb_launch+:} false; then : - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:$component can compile" >&5 -$as_echo_n "checking if MCA component common:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else + ac_cv_search_lsb_launch=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 +$as_echo "$ac_cv_search_lsb_launch" >&6; } +ac_res=$ac_cv_search_lsb_launch +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_common" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_common_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** common component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_common" = "$component" ; then -as_fn_error $? "*** common component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + unset ac_cv_search_lsb_launch +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$orte_check_lsf_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 +$as_echo_n "checking for library containing lsb_launch... " >&6; } +if ${ac_cv_search_lsb_launch+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$common_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lsb_launch (); +int +main () +{ +return lsb_launch (); + ; + return 0; +} +_ACEOF +for ac_lib in '' bat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lsb_launch=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lsb_launch+:} false; then : + break +fi +done +if ${ac_cv_search_lsb_launch+:} false; then : + +else + ac_cv_search_lsb_launch=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 +$as_echo "$ac_cv_search_lsb_launch" >&6; } +ac_res=$ac_cv_search_lsb_launch +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + unset ac_cv_search_lsb_launch +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 +$as_echo_n "checking for library containing lsb_launch... " >&6; } +if ${ac_cv_search_lsb_launch+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lsb_launch (); +int +main () +{ +return lsb_launch (); + ; + return 0; +} +_ACEOF +for ac_lib in '' bat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lsb_launch=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lsb_launch+:} false; then : + break +fi +done +if ${ac_cv_search_lsb_launch+:} false; then : + +else + ac_cv_search_lsb_launch=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 +$as_echo "$ac_cv_search_lsb_launch" >&6; } +ac_res=$ac_cv_search_lsb_launch +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + unset ac_cv_search_lsb_launch +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 +$as_echo_n "checking for library containing lsb_launch... " >&6; } +if ${ac_cv_search_lsb_launch+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lsb_launch (); +int +main () +{ +return lsb_launch (); + ; + return 0; +} +_ACEOF +for ac_lib in '' bat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lsb_launch=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lsb_launch+:} false; then : + break +fi +done +if ${ac_cv_search_lsb_launch+:} false; then : + +else + ac_cv_search_lsb_launch=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 +$as_echo "$ac_cv_search_lsb_launch" >&6; } +ac_res=$ac_cv_search_lsb_launch +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + unset ac_cv_search_lsb_launch +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -183908,7 +201716,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -183927,56 +201735,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - -str="line=\$common_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + opal_libnl_sane=1 + case $host in + *linux*) @@ -183989,7 +201757,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -184008,7 +201776,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -184016,435 +201784,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libbat requires libnl v1 or v3" >&5 +$as_echo_n "checking if libbat requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void lsb_launch (void); +int main(int argc, char *argv[]) { + lsb_launch (); + return 0; +} +EOF + this_requires_v1=0 + this_requires_v3=0 + result_msg= - fi +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:201811: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS 1>&5 2>&1 +opal_status=$? - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:201818: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib bat" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib bat" >&2;} - else +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:$component can compile" >&5 -$as_echo_n "checking if MCA component common:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # If this component was requested as the default for this - # type, then abort. - if test "$with_common" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&2;} - fi - fi - done + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} + libnl_sane=0 fi - MCA_orte_common_ALL_COMPONENTS="$all_components" - MCA_orte_common_STATIC_COMPONENTS="$static_components" - MCA_orte_common_DSO_COMPONENTS="$dso_components" - MCA_orte_common_STATIC_LTLIBS="$static_ltlibs" + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs bat" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - MCA_orte_common_ALL_SUBDIRS= - for item in $all_components ; do - MCA_orte_common_ALL_SUBDIRS="$MCA_orte_common_ALL_SUBDIRS mca/common/$item" - done + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - MCA_orte_common_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_orte_common_STATIC_SUBDIRS="$MCA_orte_common_STATIC_SUBDIRS mca/common/$item" - done + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - MCA_orte_common_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_orte_common_DSO_SUBDIRS="$MCA_orte_common_DSO_SUBDIRS mca/common/$item" + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "common" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS errmgr" - MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/errmgr" - MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_errmgr_ALL_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_errmgr_DSO_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_errmgr_STATIC_SUBDIRS)" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/errmgr/libmca_errmgr.la" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_errmgr_STATIC_LTLIBS)" - - opal_show_subsubtitle "Configuring MCA framework errmgr" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=orte/mca/errmgr/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files orte/mca/errmgr/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework errmgr" >&5 -$as_echo_n "checking for no configure components in framework errmgr... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: default_app, default_hnp, default_orted, default_tool" >&5 -$as_echo "default_app, default_hnp, default_orted, default_tool" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework errmgr" >&5 -$as_echo_n "checking for m4 configure components in framework errmgr... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } +done - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # run the configure logic for the no-config components + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - opal_show_subsubsubtitle "MCA component errmgr:default_app (no configuration)" +# Done; do the assignment - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi - component_path="$srcdir/orte/mca/errmgr/default_app" - want_component=0 +fi - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_errmgr" ; then - if test "$DIRECT_errmgr" = "default_app" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&2;} - # if we were explicitly disabled, don't build :) - if test "$DISABLE_errmgr" = "1"; then : - want_component=0 -fi - if test "$DISABLE_errmgr_default_app" = "1"; then : - want_component=0 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} - if test "$want_component" = "1"; then : - should_build=1 + libnl_sane=0 else - should_build=0 -fi + opal_libnlv3_libs="$opal_libnlv3_libs bat" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - SHARED_FRAMEWORK="$DSO_errmgr" - SHARED_COMPONENT="$DSO_errmgr_default_app" +# Go through each item in the variable and only keep the unique ones - STATIC_FRAMEWORK="$STATIC_errmgr" - STATIC_COMPONENT="$STATIC_errmgr_default_app" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - shared_mode_override=static + # Loop over every token we've seen so far - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component errmgr:default_app compile mode" >&5 -$as_echo_n "checking for MCA component errmgr:default_app compile mode... " >&6; } - if test "$DIRECT_errmgr" = "default_app" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "$should_build" = "1" ; then + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/errmgr/default_app/post_configure.sh" + opal_i="`expr $opal_i + 1`" + done - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components default_app" + # If we didn't find the token, add it to the "array" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components default_app" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - if test "errmgr" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/errmgr/default_app/lib${ORTE_LIB_PREFIX}mca_errmgr_default_app.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/errmgr/default_app/libmca_errmgr_default_app.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_errmgr_default_app_component;" >> $outfile.extern - echo " &mca_errmgr_default_app_component, " >> $outfile.struct - static_components="$static_components default_app" + opal_i="`expr $opal_i - 1`" fi +done - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:default_app can compile" >&5 -$as_echo_n "checking if MCA component errmgr:default_app can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +# Take all the items in the "array" and assemble them back into a +# single variable - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_errmgr" = "default_app" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_errmgr_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** errmgr component default_app was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_errmgr" = "default_app" ; then -as_fn_error $? "*** errmgr component default_app was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$errmgr_default_app_WRAPPER_EXTRA_LDFLAGS" = ""; then : + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Clean up - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - for arg in $errmgr_default_app_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + opal_libnl_sane=$libnl_sane # Unwind the index @@ -184468,65 +202077,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $errmgr_default_app_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -184549,65 +202103,28 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - if test "$errmgr_default_app_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $errmgr_default_app_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_lsb_launch" != "no" && + test "$ac_cv_search_lsb_launch" != "none required"; then : + orte_check_lsf_LIBS="$ac_cv_search_lsb_launch $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS" +else + orte_check_lsf_LIBS="$ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -184631,98 +202148,176 @@ done -else - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + if test "$opal_check_package_happy" = "yes"; then : + orte_check_lsf_happy="yes" +else + orte_check_lsf_CPPFLAGS="$opal_check_package_orte_check_lsf_orig_CPPFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + orte_check_lsf_LIBS="$opal_check_package_orte_check_lsf_orig_LIBS" + orte_check_lsf_happy="no" +fi - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + CPPFLAGS="$opal_check_package_orte_check_lsf_save_CPPFLAGS" + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + LIBS="$opal_check_package_orte_check_lsf_save_LIBS" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Some versions of LSF ship with a libevent.so in their library path. + # This is _not_ a copy of Libevent, but something specific to their project. + # The Open MPI components should not need to link against LSF's libevent.so + # However, the presence of it in the linker search path can cause a problem + # if there is a system installed Libevent and Open MPI chooses the 'external' + # event component prior to this stage. + # + # Add a check here to see if we are in a scenario where the two are conflicting. + # In which case the earlier checks for successful compile of an LSF program will + # have failed with messages like: + # lib64/libevent_pthreads.so: undefined reference to `evthread_set_condition_callbacks' + # lib64/libevent_pthreads.so: undefined reference to `event_mm_malloc_' + # lib64/libevent_pthreads.so: undefined reference to `event_mm_free_' + # lib64/libevent_pthreads.so: undefined reference to `evthread_set_id_callback' + # lib64/libevent_pthreads.so: undefined reference to `evthread_set_lock_callbacks' + # Because it picked up -levent from LSF, but -levent_pthreads from Libevent. + # + # So look for a function that libevent_pthreads is looking for from libevent.so. + # If it does appears then we have the correct libevent.so, otherwise then we picked + # up the LSF version and a conflict has been detected. + # If the external libevent component used 'event_core' instead of 'event' + orte_check_lsf_event_conflict=na + # Split libs into an array, see if -levent is in that list + orte_check_lsf_libevent_present=`echo "$LIBS" | awk '{split($0, a, " "); {for (k in a) {if (a[k] == "-levent") {print a[k]}}}}' | wc -l | tr -d '[:space:]'` + # (1) LSF check must have failed above. We need to know why... + if test "$orte_check_lsf_happy" = "no"; then : + # (2) If there is a -levent in the $LIBS then that might be the problem + if test "$opal_event_external_support" = "yes" && test "$orte_check_lsf_libevent_present" != "0"; then : + if test "$orte_check_lsf_libdir" = "" ; then : + +else + LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" +fi + # Note that we do not want to set LIBS here to include -llsf since + # the check is not for an LSF library, but for the conflict with + # LDFLAGS. + # (3) Check to see if the -levent is from Libevent (check for a symbol it has) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for evthread_set_condition_callbacks in -levent" >&5 +$as_echo_n "checking for evthread_set_condition_callbacks in -levent... " >&6; } +if ${ac_cv_lib_event_evthread_set_condition_callbacks+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-levent $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - for arg in $errmgr_default_app_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char evthread_set_condition_callbacks (); +int +main () +{ +return evthread_set_condition_callbacks (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_event_evthread_set_condition_callbacks=yes else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_cv_lib_event_evthread_set_condition_callbacks=no fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_event_evthread_set_condition_callbacks" >&5 +$as_echo "$ac_cv_lib_event_evthread_set_condition_callbacks" >&6; } +if test "x$ac_cv_lib_event_evthread_set_condition_callbacks" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libevent conflict" >&5 +$as_echo_n "checking for libevent conflict... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: No conflict found. The correct libevent.so was linked." >&5 +$as_echo "No conflict found. The correct libevent.so was linked." >&6; } + orte_check_lsf_event_conflict=no +else + # (4) The libevent.so is not from Libevent. Warn the user. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libevent conflict" >&5 +$as_echo_n "checking for libevent conflict... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Conflict found. Detected a libevent.so that is not from Libevent." >&5 +$as_echo "Conflict found. Detected a libevent.so that is not from Libevent." >&6; } + orte_check_lsf_event_conflict=yes +fi + + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libevent conflict" >&5 +$as_echo_n "checking for libevent conflict... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: No conflict found. Internal Libevent or libevent_core is being used." >&5 +$as_echo "No conflict found. Internal Libevent or libevent_core is being used." >&6; } + orte_check_lsf_event_conflict=na +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libevent conflict" >&5 +$as_echo_n "checking for libevent conflict... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: No conflict found. LSF checks passed." >&5 +$as_echo "No conflict found. LSF checks passed." >&6; } + orte_check_lsf_event_conflict=na +fi + + if test "$orte_check_lsf_event_conflict" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ===================================================================" >&5 +$as_echo "$as_me: WARNING: ===================================================================" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Conflicting libevent.so libraries detected on the system." >&5 +$as_echo "$as_me: WARNING: Conflicting libevent.so libraries detected on the system." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: " >&5 +$as_echo "$as_me: WARNING: " >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: A system-installed Libevent library was detected and the Open MPI" >&5 +$as_echo "$as_me: WARNING: A system-installed Libevent library was detected and the Open MPI" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: build system chose to use the 'external' component expecting to" >&5 +$as_echo "$as_me: WARNING: build system chose to use the 'external' component expecting to" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: link against the Libevent in the linker search path." >&5 +$as_echo "$as_me: WARNING: link against the Libevent in the linker search path." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: If LSF is present on the system and in the default search path then" >&5 +$as_echo "$as_me: WARNING: If LSF is present on the system and in the default search path then" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: it _may be_ the source of the conflict." >&5 +$as_echo "$as_me: WARNING: it _may be_ the source of the conflict." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LSF provides a libevent.so that is not from Libevent in its" >&5 +$as_echo "$as_me: WARNING: LSF provides a libevent.so that is not from Libevent in its" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: library path. At this point the linker is attempting to resolve" >&5 +$as_echo "$as_me: WARNING: library path. At this point the linker is attempting to resolve" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libevent symbols using the LSF library because of the lack of" >&5 +$as_echo "$as_me: WARNING: Libevent symbols using the LSF library because of the lack of" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: an explicit linker path pointing to the system-installed Libevent." >&5 +$as_echo "$as_me: WARNING: an explicit linker path pointing to the system-installed Libevent." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: " >&5 +$as_echo "$as_me: WARNING: " >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: To resolve this issue either (A) explicitly pass the Libevent" >&5 +$as_echo "$as_me: WARNING: To resolve this issue either (A) explicitly pass the Libevent" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: library path on the configure line (--with-libevent-libdir), or" >&5 +$as_echo "$as_me: WARNING: library path on the configure line (--with-libevent-libdir), or" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: (B) use the internal libevent by requesting it from configure " >&5 +$as_echo "$as_me: WARNING: (B) use the internal libevent by requesting it from configure " >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: with the --with-libevent=internal option." >&5 +$as_echo "$as_me: WARNING: with the --with-libevent=internal option." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ===================================================================" >&5 +$as_echo "$as_me: WARNING: ===================================================================" >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + CPPFLAGS="$orte_check_lsf_ess_lsf_save_CPPFLAGS" + LDFLAGS="$orte_check_lsf_ess_lsf_save_LDFLAGS" + LIBS="$orte_check_lsf_ess_lsf_save_LIBS" +else + orte_check_lsf_happy=no fi - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$errmgr_default_app_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : @@ -184735,7 +202330,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -184754,7 +202349,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -184762,24 +202357,20 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $errmgr_default_app_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ompi_summary_section=$(echo Resource Managers | tr ' ' '_') + ompi_summary_line="LSF: $orte_check_lsf_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi # Unwind the index @@ -184803,205 +202394,87 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring errmgr_default_app_WRAPPER_EXTRA_CPPFLAGS ($errmgr_default_app_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring errmgr_default_app_WRAPPER_EXTRA_CPPFLAGS ($errmgr_default_app_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:default_app can compile" >&5 -$as_echo_n "checking if MCA component errmgr:default_app can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_errmgr" = "default_app" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default_app\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"default_app\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_errmgr" ; then - if test "$DIRECT_errmgr" = "default_app" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default_app\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"default_app\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components default_app" - fi - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_errmgr_default_app_DSO=1 - else - BUILD_orte_errmgr_default_app_DSO=0 - fi - if test "$BUILD_orte_errmgr_default_app_DSO" = "1"; then - MCA_BUILD_orte_errmgr_default_app_DSO_TRUE= - MCA_BUILD_orte_errmgr_default_app_DSO_FALSE='#' -else - MCA_BUILD_orte_errmgr_default_app_DSO_TRUE='#' - MCA_BUILD_orte_errmgr_default_app_DSO_FALSE= fi - - ac_config_files="$ac_config_files orte/mca/errmgr/default_app/Makefile" - - - unset compile_mode - - opal_show_subsubsubtitle "MCA component errmgr:default_hnp (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - - - component_path="$srcdir/orte/mca/errmgr/default_hnp" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_errmgr" ; then - if test "$DIRECT_errmgr" = "default_hnp" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_errmgr" = "1"; then : - want_component=0 + if test "$orte_check_lsf_happy" = "yes"; then : + ess_lsf_LIBS="$ess_lsf_LIBS $orte_check_lsf_LIBS" + ess_lsf_LDFLAGS="$ess_lsf_LDFLAGS $orte_check_lsf_LDFLAGS" + ess_lsf_CPPFLAGS="$ess_lsf_CPPFLAGS $orte_check_lsf_CPPFLAGS" + # add the LSF libraries to static builds as they are required + ess_lsf_WRAPPER_EXTRA_LDFLAGS=$ess_lsf_LDFLAGS + ess_lsf_WRAPPER_EXTRA_LIBS=$ess_lsf_LIBS + ess_lsf_good=1 +else + if test ! -z "$with_lsf" && test "$with_lsf" != "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LSF support requested (via --with-lsf) but not found." >&5 +$as_echo "$as_me: WARNING: LSF support requested (via --with-lsf) but not found." >&2;} + as_fn_error $? "Aborting." "$LINENO" 5 fi - if test "$DISABLE_errmgr_default_hnp" = "1"; then : - want_component=0 + ess_lsf_good=0 fi - if test "$want_component" = "1"; then : - should_build=1 + + # if check worked, set wrapper flags if so. + # Evaluate succeed / fail + if test "$ess_lsf_good" = "1"; then : + should_build=$should_build else should_build=0 fi + # set build flags to use in makefile - SHARED_FRAMEWORK="$DSO_errmgr" - SHARED_COMPONENT="$DSO_errmgr_default_hnp" - - STATIC_FRAMEWORK="$STATIC_errmgr" - STATIC_COMPONENT="$STATIC_errmgr_default_hnp" - - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component errmgr:default_hnp compile mode" >&5 -$as_echo_n "checking for MCA component errmgr:default_hnp compile mode... " >&6; } - if test "$DIRECT_errmgr" = "default_hnp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/errmgr/default_hnp/post_configure.sh" + infile="$srcdir/orte/mca/ess/lsf/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components default_hnp" + all_components="$all_components lsf" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components default_hnp" + dso_components="$dso_components lsf" else - if test "errmgr" = "common"; then + if test "ess" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/errmgr/default_hnp/lib${ORTE_LIB_PREFIX}mca_errmgr_default_hnp.la $static_ltlibs" + static_ltlibs="mca/ess/lsf/lib${ORTE_LIB_PREFIX}mca_ess_lsf.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/errmgr/default_hnp/libmca_errmgr_default_hnp.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_errmgr_default_hnp_component;" >> $outfile.extern - echo " &mca_errmgr_default_hnp_component, " >> $outfile.struct - static_components="$static_components default_hnp" + static_ltlibs="mca/ess/lsf/libmca_ess_lsf.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_ess_lsf_component;" >> $outfile.extern + echo " &mca_ess_lsf_component, " >> $outfile.struct + static_components="$static_components lsf" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:default_hnp can compile" >&5 -$as_echo_n "checking if MCA component errmgr:default_hnp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:lsf can compile" >&5 +$as_echo_n "checking if MCA component ess:lsf can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_errmgr" = "default_hnp" ; then + if test "$DIRECT_ess" = "lsf" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_errmgr_DIRECT_CALL_HEADER=$line" + str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** errmgr component default_hnp was supposed to be direct-called, but +as_fn_error $? "*** ess component lsf was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -185009,8 +202482,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_errmgr" = "default_hnp" ; then -as_fn_error $? "*** errmgr component default_hnp was supposed to be direct-called, but + if test "$DIRECT_ess" = "lsf" ; then +as_fn_error $? "*** ess component lsf was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -185025,7 +202498,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$errmgr_default_hnp_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$ess_lsf_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -185065,7 +202538,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $errmgr_default_hnp_LDFLAGS; do + for arg in $ess_lsf_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -185146,7 +202619,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $errmgr_default_hnp_WRAPPER_EXTRA_LDFLAGS; do + for arg in $ess_lsf_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -185188,7 +202661,7 @@ fi - if test "$errmgr_default_hnp_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$ess_lsf_WRAPPER_EXTRA_LIBS" = ""; then : @@ -185228,7 +202701,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $errmgr_default_hnp_LIBS; do + for arg in $ess_lsf_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -185309,7 +202782,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $errmgr_default_hnp_WRAPPER_EXTRA_LIBS; do + for arg in $ess_lsf_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -185357,7 +202830,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$errmgr_default_hnp_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$ess_lsf_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -185400,7 +202873,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $errmgr_default_hnp_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $ess_lsf_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -185443,203 +202916,1124 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring errmgr_default_hnp_WRAPPER_EXTRA_CPPFLAGS ($errmgr_default_hnp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring errmgr_default_hnp_WRAPPER_EXTRA_CPPFLAGS ($errmgr_default_hnp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_lsf_WRAPPER_EXTRA_CPPFLAGS ($ess_lsf_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring ess_lsf_WRAPPER_EXTRA_CPPFLAGS ($ess_lsf_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:default_hnp can compile" >&5 -$as_echo_n "checking if MCA component errmgr:default_hnp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:lsf can compile" >&5 +$as_echo_n "checking if MCA component ess:lsf can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_errmgr" = "default_hnp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default_hnp\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"default_hnp\" failed to configure properly" >&2;} + if test "$with_ess" = "lsf" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lsf\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"lsf\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_errmgr" ; then - if test "$DIRECT_errmgr" = "default_hnp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default_hnp\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"default_hnp\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "lsf" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lsf\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"lsf\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components default_hnp" + # add component to all component list + all_components="$all_components lsf" +fi + + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_orte_ess_lsf_DSO=1 +else + BUILD_orte_ess_lsf_DSO=0 +fi + if test "$BUILD_orte_ess_lsf_DSO" = "1"; then + MCA_BUILD_orte_ess_lsf_DSO_TRUE= + MCA_BUILD_orte_ess_lsf_DSO_FALSE='#' +else + MCA_BUILD_orte_ess_lsf_DSO_TRUE='#' + MCA_BUILD_orte_ess_lsf_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + + + + + opal_show_subsubsubtitle "MCA component ess:slurm (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/orte/mca/ess/slurm" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "slurm" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_ess" = "1"; then : + want_component=0 +fi + if test "$DISABLE_ess_slurm" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + SHARED_FRAMEWORK="$DSO_ess" + SHARED_COMPONENT="$DSO_ess_slurm" + + STATIC_FRAMEWORK="$STATIC_ess" + STATIC_COMPONENT="$STATIC_ess_slurm" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:slurm compile mode" >&5 +$as_echo_n "checking for MCA component ess:slurm compile mode... " >&6; } + if test "$DIRECT_ess" = "slurm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + + # try to configure the component + + ac_config_files="$ac_config_files orte/mca/ess/slurm/Makefile" + + + + if test -z "$orte_check_slurm_happy" ; then + +# Check whether --with-slurm was given. +if test "${with_slurm+set}" = set; then : + withval=$with_slurm; +fi + + + if test "$with_slurm" = "no" ; then + orte_check_slurm_happy="no" + elif test "$with_slurm" = "" ; then + # unless user asked, only build slurm component on linux, AIX, + # and OS X systems (these are the platforms that SLURM + # supports) + case $host in + *-linux*|*-aix*|*-apple-darwin*) + orte_check_slurm_happy="yes" + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SLURM srun in PATH" >&5 +$as_echo_n "checking for SLURM srun in PATH... " >&6; } + +# 1 is the variable name to do "which" on +# 2 is the variable name to assign the return value to + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_prog opal_file opal_dir opal_sentinel; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_prog opal_file opal_dir opal_sentinel\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + +opal_prog=srun + +IFS_SAVE=$IFS +IFS="$PATH_SEPARATOR" +for opal_dir in $PATH; do + if test -x "$opal_dir/$opal_prog"; then + ORTE_CHECK_SLURM_SRUN="$opal_dir/$opal_prog" + break + fi +done +IFS=$IFS_SAVE + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + if test "$ORTE_CHECK_SLURM_SRUN" = ""; then + orte_check_slurm_happy="no" + else + orte_check_slurm_happy="yes" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_slurm_happy" >&5 +$as_echo "$orte_check_slurm_happy" >&6; } + ;; + esac + else + orte_check_slurm_happy="yes" + fi + + if test "$orte_check_slurm_happy" = "yes"; then : + ac_fn_c_check_func "$LINENO" "fork" "ac_cv_func_fork" +if test "x$ac_cv_func_fork" = xyes; then : + orte_check_slurm_happy="yes" +else + orte_check_slurm_happy="no" +fi + +fi + + if test "$orte_check_slurm_happy" = "yes"; then : + ac_fn_c_check_func "$LINENO" "execve" "ac_cv_func_execve" +if test "x$ac_cv_func_execve" = xyes; then : + orte_check_slurm_happy="yes" +else + orte_check_slurm_happy="no" +fi + +fi + + if test "$orte_check_slurm_happy" = "yes"; then : + ac_fn_c_check_func "$LINENO" "setpgid" "ac_cv_func_setpgid" +if test "x$ac_cv_func_setpgid" = xyes; then : + orte_check_slurm_happy="yes" +else + orte_check_slurm_happy="no" +fi + +fi + + # check to see if this is a Cray nativized slurm env. + + slurm_cray_env=0 + + if test -z "$opal_check_cray_alps_happy"; then + + +# Check whether --with-alps was given. +if test "${with_alps+set}" = set; then : + withval=$with_alps; +else + with_alps=auto +fi + + + if test -f /etc/opt/cray/release/clerelease; then + cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` + else + cle_level="unknown" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 +$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } + if test "$cle_level" = "4" && test "$with_alps" != "no"; then : + + +# +# if we've gotten here, its because we are building on a CLE 4 system +# + opal_check_alps_cle4_libdir_happy="no" + opal_check_alps_cle4_dir_happy="no" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 +$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } + + +# Check whether --with-alps-libdir was given. +if test "${with_alps_libdir+set}" = set; then : + withval=$with_alps_libdir; +fi + + +# +# check to see if Open MPI is being built on a CLE 4 eslogin node +# + if test -f /etc/opt/cray/release/ESLrelease; then : + default_alps_dir="/opt/cray/xe-sysroot/default/usr" +else + default_alps_dir="/usr" +fi + + if test -z "$with_alps_libdir"; then : + if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : + if test -d "$with_alps_libdir/lib64"; then : + opal_check_alps_libdir="$with_alps_libdir/lib64" +else + opal_check_alps_libdir="$with_alps_libdir/lib" +fi +else + opal_check_alps_libdir="$default_alps_dir/lib/alps" +fi + +fi + + if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : + opal_check_alps_dir=$default_alps_dir +else + opal_check_alps_dir=$with_alps +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 +$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } + if test -f "$opal_check_alps_libdir/libalps.a"; then : + opal_check_alps_libdir_cle4_happy="yes" +else + opal_check_alps_libdir_cle4_happy="no", + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 +$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } + if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : + opal_check_alps_dir_cle4_happy="yes" +else + opal_check_alps_dir_cle4_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : + CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" + CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + opal_check_cray_alps_happy="yes" +else + opal_check_cray_alps_happy="no" +fi + +else + if test "$with_alps" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy=no + +else + if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 +$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } + +if test -n "$CRAY_ALPSLLI_CFLAGS"; then + pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSLLI_LIBS"; then + pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` + else + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS + CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS + CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 +$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } + +if test -n "$CRAY_ALPSUTIL_CFLAGS"; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSUTIL_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` + else + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS + CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS + CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 +$as_echo_n "checking for CRAY_ALPS... " >&6; } + +if test -n "$CRAY_ALPS_CFLAGS"; then + pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_LIBS"; then + pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_STATIC_LIBS"; then + pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` + else + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPS_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS + CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS + CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 +$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } + +if test -n "$CRAY_WLM_DETECT_CFLAGS"; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_WLM_DETECT_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + else + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS + CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS + CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" + +cat >>confdefs.h <<_ACEOF +#define CRAY_WLM_DETECT 1 +_ACEOF + + +fi + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 +$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 +$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +fi + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 +$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } + + if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : + CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS + CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS +fi + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ompi_summary_section=$(echo Resource Managers | tr ' ' '_') + ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" fi - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_errmgr_default_hnp_DSO=1 - else - BUILD_orte_errmgr_default_hnp_DSO=0 - fi - if test "$BUILD_orte_errmgr_default_hnp_DSO" = "1"; then - MCA_BUILD_orte_errmgr_default_hnp_DSO_TRUE= - MCA_BUILD_orte_errmgr_default_hnp_DSO_FALSE='#' -else - MCA_BUILD_orte_errmgr_default_hnp_DSO_TRUE='#' - MCA_BUILD_orte_errmgr_default_hnp_DSO_FALSE= -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + if test "$opal_check_cray_alps_happy" = "yes"; then : + orte_slurm_cray_LDFLAGS="$orte_slurm_cray_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" + orte_slurm_cray_CPPFLAGS="$orte_slurm_cray_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" + orte_slurm_cray_LIBS="$orte_slurm_cray_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + orte_slurm_cray_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + orte_slurm_cray_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + slurm_cray_env=1 +fi + + + +cat >>confdefs.h <<_ACEOF +#define SLURM_CRAY_ENV $slurm_cray_env +_ACEOF + + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - ac_config_files="$ac_config_files orte/mca/errmgr/default_hnp/Makefile" + ompi_summary_section=$(echo Resource Managers | tr ' ' '_') + ompi_summary_line="Slurm: $orte_check_slurm_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - unset compile_mode + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi - opal_show_subsubsubtitle "MCA component errmgr:default_orted (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - component_path="$srcdir/orte/mca/errmgr/default_orted" - want_component=0 - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_errmgr" ; then - if test "$DIRECT_errmgr" = "default_orted" ; then - want_component=1 - else - want_component=0 - fi - fi fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_errmgr" = "1"; then : - want_component=0 -fi - if test "$DISABLE_errmgr_default_orted" = "1"; then : - want_component=0 + if test "$orte_check_slurm_happy" = "yes"; then : + ess_slurm_good=1 +else + ess_slurm_good=0 fi - if test "$want_component" = "1"; then : - should_build=1 + + # if check worked, set wrapper flags if so. + # Evaluate succeed / fail + if test "$ess_slurm_good" = "1"; then : + should_build=$should_build else should_build=0 fi + # set build flags to use in makefile - SHARED_FRAMEWORK="$DSO_errmgr" - SHARED_COMPONENT="$DSO_errmgr_default_orted" - - STATIC_FRAMEWORK="$STATIC_errmgr" - STATIC_COMPONENT="$STATIC_errmgr_default_orted" - - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component errmgr:default_orted compile mode" >&5 -$as_echo_n "checking for MCA component errmgr:default_orted compile mode... " >&6; } - if test "$DIRECT_errmgr" = "default_orted" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/errmgr/default_orted/post_configure.sh" + infile="$srcdir/orte/mca/ess/slurm/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components default_orted" + all_components="$all_components slurm" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components default_orted" + dso_components="$dso_components slurm" else - if test "errmgr" = "common"; then + if test "ess" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/errmgr/default_orted/lib${ORTE_LIB_PREFIX}mca_errmgr_default_orted.la $static_ltlibs" + static_ltlibs="mca/ess/slurm/lib${ORTE_LIB_PREFIX}mca_ess_slurm.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/errmgr/default_orted/libmca_errmgr_default_orted.la $static_ltlibs" + static_ltlibs="mca/ess/slurm/libmca_ess_slurm.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_errmgr_default_orted_component;" >> $outfile.extern - echo " &mca_errmgr_default_orted_component, " >> $outfile.struct - static_components="$static_components default_orted" + echo "extern const mca_base_component_t mca_ess_slurm_component;" >> $outfile.extern + echo " &mca_ess_slurm_component, " >> $outfile.struct + static_components="$static_components slurm" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:default_orted can compile" >&5 -$as_echo_n "checking if MCA component errmgr:default_orted can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:slurm can compile" >&5 +$as_echo_n "checking if MCA component ess:slurm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_errmgr" = "default_orted" ; then + if test "$DIRECT_ess" = "slurm" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_errmgr_DIRECT_CALL_HEADER=$line" + str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** errmgr component default_orted was supposed to be direct-called, but +as_fn_error $? "*** ess component slurm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -185647,8 +204041,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_errmgr" = "default_orted" ; then -as_fn_error $? "*** errmgr component default_orted was supposed to be direct-called, but + if test "$DIRECT_ess" = "slurm" ; then +as_fn_error $? "*** ess component slurm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -185663,7 +204057,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$errmgr_default_orted_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$ess_slurm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -185703,7 +204097,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $errmgr_default_orted_LDFLAGS; do + for arg in $ess_slurm_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -185784,7 +204178,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $errmgr_default_orted_WRAPPER_EXTRA_LDFLAGS; do + for arg in $ess_slurm_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -185826,7 +204220,7 @@ fi - if test "$errmgr_default_orted_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$ess_slurm_WRAPPER_EXTRA_LIBS" = ""; then : @@ -185866,7 +204260,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $errmgr_default_orted_LIBS; do + for arg in $ess_slurm_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -185947,7 +204341,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $errmgr_default_orted_WRAPPER_EXTRA_LIBS; do + for arg in $ess_slurm_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -185995,7 +204389,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$errmgr_default_orted_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$ess_slurm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -186038,7 +204432,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $errmgr_default_orted_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $ess_slurm_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -186081,69 +204475,78 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring errmgr_default_orted_WRAPPER_EXTRA_CPPFLAGS ($errmgr_default_orted_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring errmgr_default_orted_WRAPPER_EXTRA_CPPFLAGS ($errmgr_default_orted_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_slurm_WRAPPER_EXTRA_CPPFLAGS ($ess_slurm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring ess_slurm_WRAPPER_EXTRA_CPPFLAGS ($ess_slurm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:default_orted can compile" >&5 -$as_echo_n "checking if MCA component errmgr:default_orted can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:slurm can compile" >&5 +$as_echo_n "checking if MCA component ess:slurm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_errmgr" = "default_orted" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default_orted\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"default_orted\" failed to configure properly" >&2;} + if test "$with_ess" = "slurm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"slurm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"slurm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_errmgr" ; then - if test "$DIRECT_errmgr" = "default_orted" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default_orted\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"default_orted\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "slurm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"slurm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"slurm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components default_orted" - fi + # add component to all component list + all_components="$all_components slurm" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_errmgr_default_orted_DSO=1 - else - BUILD_orte_errmgr_default_orted_DSO=0 - fi - if test "$BUILD_orte_errmgr_default_orted_DSO" = "1"; then - MCA_BUILD_orte_errmgr_default_orted_DSO_TRUE= - MCA_BUILD_orte_errmgr_default_orted_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_orte_ess_slurm_DSO=1 else - MCA_BUILD_orte_errmgr_default_orted_DSO_TRUE='#' - MCA_BUILD_orte_errmgr_default_orted_DSO_FALSE= + BUILD_orte_ess_slurm_DSO=0 +fi + if test "$BUILD_orte_ess_slurm_DSO" = "1"; then + MCA_BUILD_orte_ess_slurm_DSO_TRUE= + MCA_BUILD_orte_ess_slurm_DSO_FALSE='#' +else + MCA_BUILD_orte_ess_slurm_DSO_TRUE='#' + MCA_BUILD_orte_ess_slurm_DSO_FALSE= fi - ac_config_files="$ac_config_files orte/mca/errmgr/default_orted/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - opal_show_subsubsubtitle "MCA component errmgr:default_tool (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/errmgr/default_tool" + opal_show_subsubsubtitle "MCA component ess:tm (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/orte/mca/ess/tm" want_component=0 # build if: @@ -186175,8 +204578,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_errmgr" ; then - if test "$DIRECT_errmgr" = "default_tool" ; then + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "tm" ; then want_component=1 else want_component=0 @@ -186185,25 +204588,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_errmgr" = "1"; then : + if test "$DISABLE_ess" = "1"; then : want_component=0 fi - if test "$DISABLE_errmgr_default_tool" = "1"; then : + if test "$DISABLE_ess_tm" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_errmgr" - SHARED_COMPONENT="$DSO_errmgr_default_tool" + SHARED_FRAMEWORK="$DSO_ess" + SHARED_COMPONENT="$DSO_ess_tm" - STATIC_FRAMEWORK="$STATIC_errmgr" - STATIC_COMPONENT="$STATIC_errmgr_default_tool" + STATIC_FRAMEWORK="$STATIC_ess" + STATIC_COMPONENT="$STATIC_ess_tm" shared_mode_override=static @@ -186221,9 +204626,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component errmgr:default_tool compile mode" >&5 -$as_echo_n "checking for MCA component errmgr:default_tool compile mode... " >&6; } - if test "$DIRECT_errmgr" = "default_tool" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:tm compile mode" >&5 +$as_echo_n "checking for MCA component ess:tm compile mode... " >&6; } + if test "$DIRECT_ess" = "tm" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -186231,77 +204636,344 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + ac_config_files="$ac_config_files orte/mca/ess/tm/Makefile" - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/errmgr/default_tool/post_configure.sh" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components default_tool" + if test -z $orte_check_tm_happy ; then - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components default_tool" - else - if test "errmgr" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/errmgr/default_tool/lib${ORTE_LIB_PREFIX}mca_errmgr_default_tool.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/errmgr/default_tool/libmca_errmgr_default_tool.la $static_ltlibs" + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in orte_check_tm_found orte_check_tm_dir orte_check_tm_pbs_config orte_check_tm_LDFLAGS_save orte_check_tm_CPPFLAGS_save orte_check_tm_LIBS_save; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - echo "extern const mca_base_component_t mca_errmgr_default_tool_component;" >> $outfile.extern - echo " &mca_errmgr_default_tool_component, " >> $outfile.struct - static_components="$static_components default_tool" + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"orte_check_tm_found orte_check_tm_dir orte_check_tm_pbs_config orte_check_tm_LDFLAGS_save orte_check_tm_CPPFLAGS_save orte_check_tm_LIBS_save\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + +# Check whether --with-tm was given. +if test "${with_tm+set}" = set; then : + withval=$with_tm; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-tm value" >&5 +$as_echo_n "checking --with-tm value... " >&6; } + if test "$with_tm" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-tm)" >&5 +$as_echo "simple no (specified --without-tm)" >&6; } +else + if test "$with_tm" = "yes" || test "x$with_tm" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_tm"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_tm not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_tm not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_tm/include/tm.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_tm/include/tm.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_tm/include/tm.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_tm)" >&5 +$as_echo "sanity check ok ($with_tm)" >&6; } + +fi + + +fi + + +fi + + +fi + + + orte_check_tm_found=no + if test "$with_tm" = "no"; then : + orte_check_tm_happy="no" +else + orte_check_tm_happy="yes" + if test ! -z "$with_tm" && test "$with_tm" != "yes"; then : + orte_check_tm_dir="$with_tm" +else + orte_check_tm_dir="" +fi +fi + + if test "$orte_check_tm_happy" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pbs-config" >&5 +$as_echo_n "checking for pbs-config... " >&6; } + orte_check_tm_pbs_config="not found" + if test "$orte_check_tm_dir" != "" && test -d "$orte_check_tm_dir" && test -x "$orte_check_tm_dir/bin/pbs-config"; then : + orte_check_tm_pbs_config="$orte_check_tm_dir/bin/pbs-config" +else + if pbs-config --prefix >/dev/null 2>&1; then : + orte_check_tm_pbs_config="pbs-config" +fi +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_tm_pbs_config" >&5 +$as_echo "$orte_check_tm_pbs_config" >&6; } +fi + + # If we have pbs-config, get the flags we need from there and then + # do simplistic tests looking for the tm headers and symbols + + if test "$orte_check_tm_happy" = "yes" && test "$orte_check_tm_pbs_config" != "not found"; then : + orte_check_tm_CPPFLAGS=`$orte_check_tm_pbs_config --cflags` + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:204767: orte_check_tm_CPPFLAGS from pbs-config: $orte_check_tm_CPPFLAGS" >&5 +else + echo orte_check_tm_CPPFLAGS from pbs-config: $orte_check_tm_CPPFLAGS >&5 +fi + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:default_tool can compile" >&5 -$as_echo_n "checking if MCA component errmgr:default_tool can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in orte_check_tm_flags; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_errmgr" = "default_tool" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_errmgr_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** errmgr component default_tool was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"orte_check_tm_flags\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + orte_check_tm_flags=`$orte_check_tm_pbs_config --libs` + for orte_check_tm_val in $orte_check_tm_flags; do + if test "`echo $orte_check_tm_val | cut -c1-2`" = "-l"; then + if test "LDFLAGS" = "LIBS"; then + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS $orte_check_tm_val" + fi + else + if test "LDFLAGS" = "LDFLAGS"; then + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS $orte_check_tm_val" fi fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_errmgr" = "default_tool" ; then -as_fn_error $? "*** errmgr component default_tool was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 + done + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:204848: orte_check_tm_LDFLAGS from pbs-config: $orte_check_tm_LDFLAGS" >&5 +else + echo orte_check_tm_LDFLAGS from pbs-config: $orte_check_tm_LDFLAGS >&5 +fi + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in orte_check_tm_flags; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"orte_check_tm_flags\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + orte_check_tm_flags=`$orte_check_tm_pbs_config --libs` + for orte_check_tm_val in $orte_check_tm_flags; do + if test "`echo $orte_check_tm_val | cut -c1-2`" = "-l"; then + if test "LIBS" = "LIBS"; then + orte_check_tm_LIBS="$orte_check_tm_LIBS $orte_check_tm_val" + fi + else + if test "LIBS" = "LDFLAGS"; then + orte_check_tm_LIBS="$orte_check_tm_LIBS $orte_check_tm_val" + fi fi + done + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$errmgr_default_tool_WRAPPER_EXTRA_LDFLAGS" = ""; then : + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:204929: orte_check_tm_LIBS from pbs-config: $orte_check_tm_LIBS" >&5 +else + echo orte_check_tm_LIBS from pbs-config: $orte_check_tm_LIBS >&5 +fi + + # Now that we supposedly have the right flags, try them out. + + orte_check_tm_CPPFLAGS_save="$CPPFLAGS" + orte_check_tm_LDFLAGS_save="$LDFLAGS" + orte_check_tm_LIBS_save="$LIBS" + + CPPFLAGS="$CPPFLAGS $orte_check_tm_CPPFLAGS" + LIBS="$LIBS $orte_check_tm_LIBS" + LDFLAGS="$LDFLAGS $orte_check_tm_LDFLAGS" + + ac_fn_c_check_header_mongrel "$LINENO" "tm.h" "ac_cv_header_tm_h" "$ac_includes_default" +if test "x$ac_cv_header_tm_h" = xyes; then : + ac_fn_c_check_func "$LINENO" "tm_finalize" "ac_cv_func_tm_finalize" +if test "x$ac_cv_func_tm_finalize" = xyes; then : + orte_check_tm_found="yes" +fi + +fi + + + + CPPFLAGS="$orte_check_tm_CPPFLAGS_save" + LDFLAGS="$orte_check_tm_LDFLAGS_save" + LIBS="$orte_check_tm_LIBS_save" +fi + + # If we don't have pbs-config, then we have to look around + # manually. + + # Note that Torque 2.1.0 changed the name of their back-end + # library to "libtorque". So we have to check for both libpbs and + # libtorque. First, check for libpbs. + + orte_check_package_ess_tm_save_CPPFLAGS="$CPPFLAGS" + orte_check_package_ess_tm_save_LDFLAGS="$LDFLAGS" + orte_check_package_ess_tm_save_LIBS="$LIBS" + + if test "$orte_check_tm_found" = "no"; then : + if test "$orte_check_tm_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -186314,7 +204986,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -186333,7 +205005,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -186341,130 +205013,391 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $errmgr_default_tool_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_tm_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $orte_check_tm_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in tm.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "tm.h" "ac_cv_header_tm_h" "$ac_includes_default" +if test "x$ac_cv_header_tm_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_TM_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_tm_h +fi +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + orte_check_tm_CPPFLAGS="$orte_check_tm_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in tm.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "tm.h" "ac_cv_header_tm_h" "$ac_includes_default" +if test "x$ac_cv_header_tm_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_TM_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + orte_check_tm_found="yes" +else + orte_check_tm_found="no" +fi +else + orte_check_tm_found="yes" +fi + unset opal_check_package_header_happy + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + if test "$orte_check_tm_found" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_tm_init + opal_check_package_lib_happy="no" + if test "$orte_check_tm_libdir" != ""; then : + # libdir was specified - search only there + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$orte_check_tm_libdir" + LDFLAGS="$LDFLAGS -L$orte_check_tm_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : + +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$orte_check_tm_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : + +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : + +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg +done +if ${ac_cv_search_tm_init+:} false; then : + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + ac_cv_search_tm_init=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else + opal_check_package_lib_happy="no" +fi - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $errmgr_default_tool_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init fi - done fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - if test "$errmgr_default_tool_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -186477,7 +205410,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -186496,56 +205429,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $errmgr_default_tool_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -186558,7 +205451,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -186577,7 +205470,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -186585,481 +205478,303 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $errmgr_default_tool_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpbs requires libnl v1 or v3" >&5 +$as_echo_n "checking if libpbs requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void tm_init (void); +int main(int argc, char *argv[]) { + tm_init (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:205505: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS 1>&5 2>&1 +opal_status=$? +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:205512: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$errmgr_default_tool_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $errmgr_default_tool_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - done + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib pbs" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib pbs" >&2;} +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpbs links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libpbs links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} + libnl_sane=0 fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring errmgr_default_tool_WRAPPER_EXTRA_CPPFLAGS ($errmgr_default_tool_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring errmgr_default_tool_WRAPPER_EXTRA_CPPFLAGS ($errmgr_default_tool_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:default_tool can compile" >&5 -$as_echo_n "checking if MCA component errmgr:default_tool can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_errmgr" = "default_tool" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default_tool\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"default_tool\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - if test ! -z "$DIRECT_errmgr" ; then - if test "$DIRECT_errmgr" = "default_tool" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default_tool\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"default_tool\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pbs requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pbs requires libnl" >&2;} - # add component to all component list - all_components="$all_components default_tool" - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_errmgr_default_tool_DSO=1 - else - BUILD_orte_errmgr_default_tool_DSO=0 - fi - if test "$BUILD_orte_errmgr_default_tool_DSO" = "1"; then - MCA_BUILD_orte_errmgr_default_tool_DSO_TRUE= - MCA_BUILD_orte_errmgr_default_tool_DSO_FALSE='#' + libnl_sane=0 else - MCA_BUILD_orte_errmgr_default_tool_DSO_TRUE='#' - MCA_BUILD_orte_errmgr_default_tool_DSO_FALSE= -fi + opal_libnlv1_libs="$opal_libnlv1_libs pbs" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - ac_config_files="$ac_config_files orte/mca/errmgr/default_tool/Makefile" +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - unset compile_mode + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # configure components that use built-in configuration scripts + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + opal_i="`expr $opal_i + 1`" + done + # If we didn't find the token, add it to the "array" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done - if test "1" != "0"; then : +# Take all the items in the "array" and assemble them back into a +# single variable - for component_path in $srcdir/orte/mca/errmgr/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component errmgr:$component (need to configure)" +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - component_path="$srcdir/orte/mca/errmgr/$component" - want_component=0 +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_errmgr" ; then - if test "$DIRECT_errmgr" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi +# Clean up - # if we were explicitly disabled, don't build :) - if test "$DISABLE_errmgr" = "1"; then : - want_component=0 +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_errmgr_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpbs requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpbs requires libnl-3" >&2;} - SHARED_FRAMEWORK="$DSO_errmgr" - str="SHARED_COMPONENT=\$DSO_errmgr_$component" - eval $str - - STATIC_FRAMEWORK="$STATIC_errmgr" - str="STATIC_COMPONENT=\$STATIC_errmgr_$component" - eval $str + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} - shared_mode_override=static + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs pbs" - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component errmgr:$component compile mode" >&5 -$as_echo_n "checking for MCA component errmgr:$component compile mode... " >&6; } - if test "$DIRECT_errmgr" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +# Go through each item in the variable and only keep the unique ones - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - if test "$should_build" = "1" ; then + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Check the ending condition - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + opal_done="`expr $opal_i \>= $opal_count`" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str + # Increment the counter - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_i="`expr $opal_i + 1`" + done + # If we didn't find the token, add it to the "array" -# -# Invoke configure in a specific subdirectory. -# -# orte/mca/errmgr/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="orte/mca/errmgr/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done -# -# Sanity checks -# +# Take all the items in the "array" and assemble them back into a +# single variable -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac +# Done; do the assignment - # - # Move into the target directory - # +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - subdir_parent=`pwd` - cd $subdir_dir +# Clean up - # - # Make a "../" for each directory in $subdir_dir. - # +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # +fi - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # - # Construct the --cache-file argument - # + rm -f conftest conftest_c.$ac_ext - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + opal_libnl_sane=$libnl_sane - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # - # Go back to the topdir - # + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - cd $subdir_parent -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# -# Clean up -# + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -187081,105 +205796,325 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/orte/mca/errmgr/all_components/post_configure.sh" - if test -f $infile; then + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi +fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - errmgr_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - errmgr_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_tm_init" != "no" && + test "$ac_cv_search_tm_init" != "none required"; then : + orte_check_tm_LIBS="$ac_cv_search_tm_init " +else + orte_check_tm_LIBS="" +fi + orte_check_tm_found="yes" +else + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_tm_init + opal_check_package_lib_happy="no" + if test "$orte_check_tm_libdir" != ""; then : + # libdir was specified - search only there + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$orte_check_tm_libdir" + LDFLAGS="$LDFLAGS -L$orte_check_tm_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lcrypto $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : + +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$orte_check_tm_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lcrypto $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : + +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lcrypto $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/errmgr/$component/post_configure.sh" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +fi +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "errmgr" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/errmgr/$component/lib${ORTE_LIB_PREFIX}mca_errmgr_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/errmgr/$component/libmca_errmgr_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_errmgr_$component_component;" >> $outfile.extern - echo " &mca_errmgr_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lcrypto $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:$component can compile" >&5 -$as_echo_n "checking if MCA component errmgr:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_errmgr" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_errmgr_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** errmgr component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_errmgr" = "$component" ; then -as_fn_error $? "*** errmgr component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +fi +fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$errmgr_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -187192,7 +206127,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -187211,56 +206146,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - -str="line=\$errmgr_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + opal_libnl_sane=1 + case $host in + *linux*) @@ -187273,7 +206168,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -187292,7 +206187,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -187300,378 +206195,643 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpbs requires libnl v1 or v3" >&5 +$as_echo_n "checking if libpbs requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void tm_init (void); +int main(int argc, char *argv[]) { + tm_init (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:206222: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:206229: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib pbs" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib pbs" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpbs links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libpbs links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pbs requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pbs requires libnl" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs pbs" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones - fi +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - else + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component errmgr:$component can compile" >&5 -$as_echo_n "checking if MCA component errmgr:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # If this component was requested as the default for this - # type, then abort. - if test "$with_errmgr" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Check the ending condition - if test ! -z "$DIRECT_errmgr" ; then - if test "$DIRECT_errmgr" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + opal_done="`expr $opal_i \>= $opal_count`" - fi - fi + # Increment the counter + + opal_i="`expr $opal_i + 1`" done -fi + # If we didn't find the token, add it to the "array" - MCA_orte_errmgr_ALL_COMPONENTS="$all_components" - MCA_orte_errmgr_STATIC_COMPONENTS="$static_components" - MCA_orte_errmgr_DSO_COMPONENTS="$dso_components" - MCA_orte_errmgr_STATIC_LTLIBS="$static_ltlibs" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - MCA_orte_errmgr_ALL_SUBDIRS= - for item in $all_components ; do - MCA_orte_errmgr_ALL_SUBDIRS="$MCA_orte_errmgr_ALL_SUBDIRS mca/errmgr/$item" - done +# Clean up +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi +fi - MCA_orte_errmgr_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_orte_errmgr_STATIC_SUBDIRS="$MCA_orte_errmgr_STATIC_SUBDIRS mca/errmgr/$item" - done + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpbs requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpbs requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs pbs" - MCA_orte_errmgr_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_orte_errmgr_DSO_SUBDIRS="$MCA_orte_errmgr_DSO_SUBDIRS mca/errmgr/$item" - done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "errmgr" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern + # Check the ending condition - unset all_components static_components dso_components outfile outfile_real + opal_done="`expr $opal_i \>= $opal_count`" - MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS ess" - MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/ess" - MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_ess_ALL_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_ess_DSO_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_ess_STATIC_SUBDIRS)" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/ess/libmca_ess.la" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_ess_STATIC_LTLIBS)" + # Increment the counter - opal_show_subsubtitle "Configuring MCA framework ess" + opal_i="`expr $opal_i + 1`" + done + # If we didn't find the token, add it to the "array" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=orte/mca/ess/base - as_dir=$outdir; as_fn_mkdir_p + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # emit Makefile rule - ac_config_files="$ac_config_files orte/mca/ess/Makefile" + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework ess" >&5 -$as_echo_n "checking for no configure components in framework ess... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: env, hnp, pmi, singleton, tool" >&5 -$as_echo "env, hnp, pmi, singleton, tool" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework ess" >&5 -$as_echo_n "checking for m4 configure components in framework ess... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: alps, lsf, slurm, tm" >&5 -$as_echo "alps, lsf, slurm, tm" >&6; } +# Clean up - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - # run the configure logic for the no-config components + opal_libnl_sane=$libnl_sane - opal_show_subsubsubtitle "MCA component ess:env (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - component_path="$srcdir/orte/mca/ess/env" - want_component=0 - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "env" ; then - want_component=1 - else - want_component=0 - fi - fi + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_ess" = "1"; then : - want_component=0 + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - if test "$DISABLE_ess_env" = "1"; then : - want_component=0 + fi - if test "$want_component" = "1"; then : - should_build=1 + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_tm_init" != "no" && + test "$ac_cv_search_tm_init" != "none required"; then : + orte_check_tm_LIBS="$ac_cv_search_tm_init -lcrypto" else - should_build=0 + orte_check_tm_LIBS="-lcrypto" fi + orte_check_tm_found="yes" +else + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - SHARED_FRAMEWORK="$DSO_ess" - SHARED_COMPONENT="$DSO_ess_env" - STATIC_FRAMEWORK="$STATIC_ess" - STATIC_COMPONENT="$STATIC_ess_env" + # see comment above + unset ac_cv_search_tm_init + opal_check_package_lib_happy="no" + if test "$orte_check_tm_libdir" != ""; then : + # libdir was specified - search only there + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$orte_check_tm_libdir" + LDFLAGS="$LDFLAGS -L$orte_check_tm_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - shared_mode_override=static +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' torque; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:env compile mode" >&5 -$as_echo_n "checking for MCA component ess:env compile mode... " >&6; } - if test "$DIRECT_ess" = "env" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$orte_check_tm_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' torque; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : - if test "$should_build" = "1" ; then +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/ess/env/post_configure.sh" +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' torque; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components env" +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components env" - else - if test "ess" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/ess/env/lib${ORTE_LIB_PREFIX}mca_ess_env.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ess/env/libmca_ess_env.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_ess_env_component;" >> $outfile.extern - echo " &mca_ess_env_component, " >> $outfile.struct - static_components="$static_components env" - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +fi +fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:env can compile" >&5 -$as_echo_n "checking if MCA component ess:env can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_ess" = "env" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** ess component env was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ess" = "env" ; then -as_fn_error $? "*** ess component env was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' torque; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : + +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$ess_env_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -187684,7 +206844,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -187703,56 +206863,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $ess_env_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -187765,7 +206885,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -187784,7 +206904,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -187792,106 +206912,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_env_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtorque requires libnl v1 or v3" >&5 +$as_echo_n "checking if libtorque requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void tm_init (void); +int main(int argc, char *argv[]) { + tm_init (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:206939: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltorque $LIBS $orte_check_tm_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltorque $LIBS $orte_check_tm_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:206946: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib torque" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib torque" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libtorque links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libtorque links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtorque (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libtorque (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtorque." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtorque." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas torque requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas torque requires libnl" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtorque (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libtorque (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtorque." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtorque." >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs torque" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones -fi - if test "$ess_env_WRAPPER_EXTRA_LIBS" = ""; then : +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $ess_env_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libtorque requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libtorque requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtorque (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libtorque (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtorque." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtorque." >&2;} + + libnl_sane=0 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_libnlv3_libs="$opal_libnlv3_libs torque" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -187915,65 +207205,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $ess_env_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -187996,17 +207231,43 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_tm_init" != "no" && + test "$ac_cv_search_tm_init" != "none required"; then : + orte_check_tm_LIBS="$ac_cv_search_tm_init " +else + orte_check_tm_LIBS="" +fi + orte_check_tm_found="yes" +else + orte_check_tm_found="no" +fi + + +fi + + +fi + + +fi +fi + + CPPFLAGS="$orte_check_package_ess_tm_save_CPPFLAGS" + LDFLAGS="$orte_check_package_ess_tm_save_LDFLAGS" + LIBS="$orte_check_package_ess_tm_save_LIBS" + + if test "$orte_check_tm_found" = "no" ; then + orte_check_tm_happy=no + fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$ess_env_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : @@ -188019,7 +207280,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -188038,7 +207299,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -188046,24 +207307,20 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_env_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ompi_summary_section=$(echo Resource Managers | tr ' ' '_') + ompi_summary_line="Torque: $orte_check_tm_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi # Unwind the index @@ -188087,205 +207344,108 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_env_WRAPPER_EXTRA_CPPFLAGS ($ess_env_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring ess_env_WRAPPER_EXTRA_CPPFLAGS ($ess_env_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:env can compile" >&5 -$as_echo_n "checking if MCA component ess:env can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_ess" = "env" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"env\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"env\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "env" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"env\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"env\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components env" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_ess_env_DSO=1 - else - BUILD_orte_ess_env_DSO=0 - fi - if test "$BUILD_orte_ess_env_DSO" = "1"; then - MCA_BUILD_orte_ess_env_DSO_TRUE= - MCA_BUILD_orte_ess_env_DSO_FALSE='#' -else - MCA_BUILD_orte_ess_env_DSO_TRUE='#' - MCA_BUILD_orte_ess_env_DSO_FALSE= -fi - - - ac_config_files="$ac_config_files orte/mca/ess/env/Makefile" - - - unset compile_mode - - opal_show_subsubsubtitle "MCA component ess:hnp (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - component_path="$srcdir/orte/mca/ess/hnp" - want_component=0 + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "hnp" ; then - want_component=1 - else - want_component=0 - fi - fi fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_ess" = "1"; then : - want_component=0 + # Did we find the right stuff? + if test "$orte_check_tm_happy" = "yes"; then : + ess_tm_LIBS="$ess_tm_LIBS $orte_check_tm_LIBS" + ess_tm_LDFLAGS="$ess_tm_LDFLAGS $orte_check_tm_LDFLAGS" + ess_tm_CPPFLAGS="$ess_tm_CPPFLAGS $orte_check_tm_CPPFLAGS" + # add the TM libraries to static builds as they are required + ess_tm_WRAPPER_EXTRA_LDFLAGS=$ess_tm_LDFLAGS + ess_tm_WRAPPER_EXTRA_LIBS=$ess_tm_LIBS + ess_tm_good=1 +else + if test ! -z "$with_tm" && test "$with_tm" != "no"; then : + as_fn_error $? "TM support requested but not found. Aborting" "$LINENO" 5 fi - if test "$DISABLE_ess_hnp" = "1"; then : - want_component=0 + orte_check_tm_happy="no" + ess_tm_good=0 fi - if test "$want_component" = "1"; then : - should_build=1 + + # if check worked, set wrapper flags if so. + # Evaluate succeed / fail + if test "$ess_tm_good" = "1"; then : + should_build=$should_build else should_build=0 fi + # set build flags to use in makefile - SHARED_FRAMEWORK="$DSO_ess" - SHARED_COMPONENT="$DSO_ess_hnp" - - STATIC_FRAMEWORK="$STATIC_ess" - STATIC_COMPONENT="$STATIC_ess_hnp" - - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:hnp compile mode" >&5 -$as_echo_n "checking for MCA component ess:hnp compile mode... " >&6; } - if test "$DIRECT_ess" = "hnp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/ess/hnp/post_configure.sh" + infile="$srcdir/orte/mca/ess/tm/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components hnp" + all_components="$all_components tm" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components hnp" + dso_components="$dso_components tm" else if test "ess" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/ess/hnp/lib${ORTE_LIB_PREFIX}mca_ess_hnp.la $static_ltlibs" + static_ltlibs="mca/ess/tm/lib${ORTE_LIB_PREFIX}mca_ess_tm.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ess/hnp/libmca_ess_hnp.la $static_ltlibs" + static_ltlibs="mca/ess/tm/libmca_ess_tm.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_ess_hnp_component;" >> $outfile.extern - echo " &mca_ess_hnp_component, " >> $outfile.struct - static_components="$static_components hnp" + echo "extern const mca_base_component_t mca_ess_tm_component;" >> $outfile.extern + echo " &mca_ess_tm_component, " >> $outfile.struct + static_components="$static_components tm" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:hnp can compile" >&5 -$as_echo_n "checking if MCA component ess:hnp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:tm can compile" >&5 +$as_echo_n "checking if MCA component ess:tm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_ess" = "hnp" ; then + if test "$DIRECT_ess" = "tm" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** ess component hnp was supposed to be direct-called, but +as_fn_error $? "*** ess component tm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -188293,8 +207453,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ess" = "hnp" ; then -as_fn_error $? "*** ess component hnp was supposed to be direct-called, but + if test "$DIRECT_ess" = "tm" ; then +as_fn_error $? "*** ess component tm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -188309,7 +207469,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$ess_hnp_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$ess_tm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -188349,7 +207509,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_hnp_LDFLAGS; do + for arg in $ess_tm_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -188430,7 +207590,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_hnp_WRAPPER_EXTRA_LDFLAGS; do + for arg in $ess_tm_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -188472,7 +207632,7 @@ fi - if test "$ess_hnp_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$ess_tm_WRAPPER_EXTRA_LIBS" = ""; then : @@ -188512,7 +207672,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_hnp_LIBS; do + for arg in $ess_tm_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -188593,7 +207753,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_hnp_WRAPPER_EXTRA_LIBS; do + for arg in $ess_tm_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -188641,7 +207801,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$ess_hnp_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$ess_tm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -188684,7 +207844,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_hnp_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $ess_tm_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -188727,69 +207887,89 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_hnp_WRAPPER_EXTRA_CPPFLAGS ($ess_hnp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring ess_hnp_WRAPPER_EXTRA_CPPFLAGS ($ess_hnp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_tm_WRAPPER_EXTRA_CPPFLAGS ($ess_tm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring ess_tm_WRAPPER_EXTRA_CPPFLAGS ($ess_tm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:hnp can compile" >&5 -$as_echo_n "checking if MCA component ess:hnp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:tm can compile" >&5 +$as_echo_n "checking if MCA component ess:tm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_ess" = "hnp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hnp\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"hnp\" failed to configure properly" >&2;} + if test "$with_ess" = "tm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "hnp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hnp\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"hnp\" failed to configure properly" >&2;} + if test "$DIRECT_ess" = "tm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components hnp" - fi + # add component to all component list + all_components="$all_components tm" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_ess_hnp_DSO=1 - else - BUILD_orte_ess_hnp_DSO=0 - fi - if test "$BUILD_orte_ess_hnp_DSO" = "1"; then - MCA_BUILD_orte_ess_hnp_DSO_TRUE= - MCA_BUILD_orte_ess_hnp_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_orte_ess_tm_DSO=1 else - MCA_BUILD_orte_ess_hnp_DSO_TRUE='#' - MCA_BUILD_orte_ess_hnp_DSO_FALSE= + BUILD_orte_ess_tm_DSO=0 +fi + if test "$BUILD_orte_ess_tm_DSO" = "1"; then + MCA_BUILD_orte_ess_tm_DSO_TRUE= + MCA_BUILD_orte_ess_tm_DSO_FALSE='#' +else + MCA_BUILD_orte_ess_tm_DSO_TRUE='#' + MCA_BUILD_orte_ess_tm_DSO_FALSE= fi - ac_config_files="$ac_config_files orte/mca/ess/hnp/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - opal_show_subsubsubtitle "MCA component ess:pmi (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/ess/pmi" + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/orte/mca/ess/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component ess:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/orte/mca/ess/$component" want_component=0 # build if: @@ -188822,7 +208002,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "pmi" ; then + if test "$DIRECT_ess" = "$component" ; then want_component=1 else want_component=0 @@ -188830,100 +208010,318 @@ fi fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_ess" = "1"; then : - want_component=0 -fi - if test "$DISABLE_ess_pmi" = "1"; then : - want_component=0 -fi + # if we were explicitly disabled, don't build :) + if test "$DISABLE_ess" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_ess_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_ess" + str="SHARED_COMPONENT=\$DSO_ess_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_ess" + str="STATIC_COMPONENT=\$STATIC_ess_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:$component compile mode" >&5 +$as_echo_n "checking for MCA component ess:$component compile mode... " >&6; } + if test "$DIRECT_ess" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + +# +# Invoke configure in a specific subdirectory. +# +# orte/mca/ess/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="orte/mca/ess/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 + cd $subdir_parent fi +# +# Clean up +# - SHARED_FRAMEWORK="$DSO_ess" - SHARED_COMPONENT="$DSO_ess_pmi" - STATIC_FRAMEWORK="$STATIC_ess" - STATIC_COMPONENT="$STATIC_ess_pmi" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - shared_mode_override=static + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:pmi compile mode" >&5 -$as_echo_n "checking for MCA component ess:pmi compile mode... " >&6; } - if test "$DIRECT_ess" = "pmi" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/orte/mca/ess/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + ess_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + ess_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi - if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/ess/pmi/post_configure.sh" + infile="$srcdir/orte/mca/ess/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components pmi" + all_components="$all_components $component" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components pmi" + dso_components="$dso_components $component" else if test "ess" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/ess/pmi/lib${ORTE_LIB_PREFIX}mca_ess_pmi.la $static_ltlibs" + static_ltlibs="mca/ess/$component/lib${ORTE_LIB_PREFIX}mca_ess_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ess/pmi/libmca_ess_pmi.la $static_ltlibs" + static_ltlibs="mca/ess/$component/libmca_ess_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_ess_pmi_component;" >> $outfile.extern - echo " &mca_ess_pmi_component, " >> $outfile.struct - static_components="$static_components pmi" + echo "extern const mca_base_component_t mca_ess_$component_component;" >> $outfile.extern + echo " &mca_ess_$component_component, " >> $outfile.struct + static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:pmi can compile" >&5 -$as_echo_n "checking if MCA component ess:pmi can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:$component can compile" >&5 +$as_echo_n "checking if MCA component ess:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_ess" = "pmi" ; then + if test "$DIRECT_ess" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** ess component pmi was supposed to be direct-called, but +as_fn_error $? "*** ess component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -188931,8 +208329,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ess" = "pmi" ; then -as_fn_error $? "*** ess component pmi was supposed to be direct-called, but + if test "$DIRECT_ess" = "$component" ; then +as_fn_error $? "*** ess component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -188947,7 +208345,8 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$ess_pmi_WRAPPER_EXTRA_LDFLAGS" = ""; then : + str="line=\$ess_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -188987,7 +208386,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_pmi_LDFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -189027,8 +208426,8 @@ unset $opal_var done - -else +str="line=\$ess_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -189068,21 +208467,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_pmi_WRAPPER_EXTRA_LDFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -189109,325 +208508,179 @@ done -fi - if test "$ess_pmi_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - for arg in $ess_pmi_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:$component can compile" >&5 +$as_echo_n "checking if MCA component ess:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_ess" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + if test ! -z "$DIRECT_ess" ; then + if test "$DIRECT_ess" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + fi fi done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + MCA_orte_ess_ALL_COMPONENTS="$all_components" + MCA_orte_ess_STATIC_COMPONENTS="$static_components" + MCA_orte_ess_DSO_COMPONENTS="$dso_components" + MCA_orte_ess_STATIC_LTLIBS="$static_ltlibs" - for arg in $ess_pmi_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + + MCA_orte_ess_ALL_SUBDIRS= + for item in $all_components ; do + MCA_orte_ess_ALL_SUBDIRS="$MCA_orte_ess_ALL_SUBDIRS mca/ess/$item" done -fi - fi + MCA_orte_ess_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_orte_ess_STATIC_SUBDIRS="$MCA_orte_ess_STATIC_SUBDIRS mca/ess/$item" + done - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$ess_pmi_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + MCA_orte_ess_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_orte_ess_DSO_SUBDIRS="$MCA_orte_ess_DSO_SUBDIRS mca/ess/$item" + done - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "ess" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + unset all_components static_components dso_components outfile outfile_real - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS filem" + MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/filem" + MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_filem_ALL_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_filem_DSO_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_filem_STATIC_SUBDIRS)" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/filem/libmca_filem.la" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_filem_STATIC_LTLIBS)" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + opal_show_subsubtitle "Configuring MCA framework filem" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_pmi_WRAPPER_EXTRA_CPPFLAGS ($ess_pmi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring ess_pmi_WRAPPER_EXTRA_CPPFLAGS ($ess_pmi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - else + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:pmi can compile" >&5 -$as_echo_n "checking if MCA component ess:pmi can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=orte/mca/filem/base + as_dir=$outdir; as_fn_mkdir_p - # If this component was requested as the default for this - # type, then abort. - if test "$with_ess" = "pmi" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pmi\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pmi\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # emit Makefile rule + ac_config_files="$ac_config_files orte/mca/filem/Makefile" - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "pmi" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pmi\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pmi\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - # add component to all component list - all_components="$all_components pmi" - fi + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_ess_pmi_DSO=1 - else - BUILD_orte_ess_pmi_DSO=0 - fi - if test "$BUILD_orte_ess_pmi_DSO" = "1"; then - MCA_BUILD_orte_ess_pmi_DSO_TRUE= - MCA_BUILD_orte_ess_pmi_DSO_FALSE='#' -else - MCA_BUILD_orte_ess_pmi_DSO_TRUE='#' - MCA_BUILD_orte_ess_pmi_DSO_FALSE= -fi + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework filem" >&5 +$as_echo_n "checking for no configure components in framework filem... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: raw" >&5 +$as_echo "raw" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework filem" >&5 +$as_echo_n "checking for m4 configure components in framework filem... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - ac_config_files="$ac_config_files orte/mca/ess/pmi/Makefile" - unset compile_mode + # run the configure logic for the no-config components - opal_show_subsubsubtitle "MCA component ess:singleton (no configuration)" + opal_show_subsubsubtitle "MCA component filem:raw (no configuration)" opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/ess/singleton" + component_path="$srcdir/orte/mca/filem/raw" want_component=0 # build if: @@ -189459,8 +208712,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "singleton" ; then + if test ! -z "$DIRECT_filem" ; then + if test "$DIRECT_filem" = "raw" ; then want_component=1 else want_component=0 @@ -189469,10 +208722,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_ess" = "1"; then : + if test "$DISABLE_filem" = "1"; then : want_component=0 fi - if test "$DISABLE_ess_singleton" = "1"; then : + if test "$DISABLE_filem_raw" = "1"; then : want_component=0 fi @@ -189483,11 +208736,11 @@ fi - SHARED_FRAMEWORK="$DSO_ess" - SHARED_COMPONENT="$DSO_ess_singleton" + SHARED_FRAMEWORK="$DSO_filem" + SHARED_COMPONENT="$DSO_filem_raw" - STATIC_FRAMEWORK="$STATIC_ess" - STATIC_COMPONENT="$STATIC_ess_singleton" + STATIC_FRAMEWORK="$STATIC_filem" + STATIC_COMPONENT="$STATIC_filem_raw" shared_mode_override=static @@ -189505,9 +208758,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:singleton compile mode" >&5 -$as_echo_n "checking for MCA component ess:singleton compile mode... " >&6; } - if test "$DIRECT_ess" = "singleton" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component filem:raw compile mode" >&5 +$as_echo_n "checking for MCA component filem:raw compile mode... " >&6; } + if test "$DIRECT_filem" = "raw" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -189523,45 +208776,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/ess/singleton/post_configure.sh" + infile="$srcdir/orte/mca/filem/raw/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components singleton" + all_components="$all_components raw" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components singleton" + dso_components="$dso_components raw" else - if test "ess" = "common"; then + if test "filem" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/ess/singleton/lib${ORTE_LIB_PREFIX}mca_ess_singleton.la $static_ltlibs" + static_ltlibs="mca/filem/raw/lib${ORTE_LIB_PREFIX}mca_filem_raw.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ess/singleton/libmca_ess_singleton.la $static_ltlibs" + static_ltlibs="mca/filem/raw/libmca_filem_raw.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_ess_singleton_component;" >> $outfile.extern - echo " &mca_ess_singleton_component, " >> $outfile.struct - static_components="$static_components singleton" + echo "extern const mca_base_component_t mca_filem_raw_component;" >> $outfile.extern + echo " &mca_filem_raw_component, " >> $outfile.struct + static_components="$static_components raw" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:singleton can compile" >&5 -$as_echo_n "checking if MCA component ess:singleton can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component filem:raw can compile" >&5 +$as_echo_n "checking if MCA component filem:raw can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_ess" = "singleton" ; then + if test "$DIRECT_filem" = "raw" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" + str="MCA_orte_filem_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** ess component singleton was supposed to be direct-called, but +as_fn_error $? "*** filem component raw was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -189569,8 +208822,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ess" = "singleton" ; then -as_fn_error $? "*** ess component singleton was supposed to be direct-called, but + if test "$DIRECT_filem" = "raw" ; then +as_fn_error $? "*** filem component raw was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -189585,7 +208838,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$ess_singleton_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$filem_raw_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -189625,7 +208878,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_singleton_LDFLAGS; do + for arg in $filem_raw_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -189706,7 +208959,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_singleton_WRAPPER_EXTRA_LDFLAGS; do + for arg in $filem_raw_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -189748,7 +209001,7 @@ fi - if test "$ess_singleton_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$filem_raw_WRAPPER_EXTRA_LIBS" = ""; then : @@ -189788,7 +209041,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_singleton_LIBS; do + for arg in $filem_raw_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -189869,7 +209122,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_singleton_WRAPPER_EXTRA_LIBS; do + for arg in $filem_raw_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -189917,7 +209170,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$ess_singleton_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$filem_raw_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -189960,7 +209213,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_singleton_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $filem_raw_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -190003,32 +209256,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_singleton_WRAPPER_EXTRA_CPPFLAGS ($ess_singleton_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring ess_singleton_WRAPPER_EXTRA_CPPFLAGS ($ess_singleton_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring filem_raw_WRAPPER_EXTRA_CPPFLAGS ($filem_raw_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring filem_raw_WRAPPER_EXTRA_CPPFLAGS ($filem_raw_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:singleton can compile" >&5 -$as_echo_n "checking if MCA component ess:singleton can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component filem:raw can compile" >&5 +$as_echo_n "checking if MCA component filem:raw can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_ess" = "singleton" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"singleton\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"singleton\" failed to configure properly" >&2;} + if test "$with_filem" = "raw" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"raw\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"raw\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "singleton" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"singleton\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"singleton\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_filem" ; then + if test "$DIRECT_filem" = "raw" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"raw\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"raw\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -190036,36 +209289,57 @@ fi # add component to all component list - all_components="$all_components singleton" + all_components="$all_components raw" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso" ; then - BUILD_orte_ess_singleton_DSO=1 + BUILD_orte_filem_raw_DSO=1 else - BUILD_orte_ess_singleton_DSO=0 + BUILD_orte_filem_raw_DSO=0 fi - if test "$BUILD_orte_ess_singleton_DSO" = "1"; then - MCA_BUILD_orte_ess_singleton_DSO_TRUE= - MCA_BUILD_orte_ess_singleton_DSO_FALSE='#' + if test "$BUILD_orte_filem_raw_DSO" = "1"; then + MCA_BUILD_orte_filem_raw_DSO_TRUE= + MCA_BUILD_orte_filem_raw_DSO_FALSE='#' else - MCA_BUILD_orte_ess_singleton_DSO_TRUE='#' - MCA_BUILD_orte_ess_singleton_DSO_FALSE= + MCA_BUILD_orte_filem_raw_DSO_TRUE='#' + MCA_BUILD_orte_filem_raw_DSO_FALSE= fi - ac_config_files="$ac_config_files orte/mca/ess/singleton/Makefile" + ac_config_files="$ac_config_files orte/mca/filem/raw/Makefile" unset compile_mode - opal_show_subsubsubtitle "MCA component ess:tool (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + # configure components that use built-in configuration scripts - component_path="$srcdir/orte/mca/ess/tool" + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/orte/mca/filem/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component filem:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/orte/mca/filem/$component" want_component=0 # build if: @@ -190097,8 +209371,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "tool" ; then + if test ! -z "$DIRECT_filem" ; then + if test "$DIRECT_filem" = "$component" ; then want_component=1 else want_component=0 @@ -190107,12 +209381,14 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_ess" = "1"; then : - want_component=0 -fi - if test "$DISABLE_ess_tool" = "1"; then : + if test "$DISABLE_filem" = "1"; then : want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_filem_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : should_build=1 @@ -190121,11 +209397,13 @@ fi - SHARED_FRAMEWORK="$DSO_ess" - SHARED_COMPONENT="$DSO_ess_tool" + SHARED_FRAMEWORK="$DSO_filem" + str="SHARED_COMPONENT=\$DSO_filem_$component" + eval $str - STATIC_FRAMEWORK="$STATIC_ess" - STATIC_COMPONENT="$STATIC_ess_tool" + STATIC_FRAMEWORK="$STATIC_filem" + str="STATIC_COMPONENT=\$STATIC_filem_$component" + eval $str shared_mode_override=static @@ -190143,9 +209421,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:tool compile mode" >&5 -$as_echo_n "checking for MCA component ess:tool compile mode... " >&6; } - if test "$DIRECT_ess" = "tool" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component filem:$component compile mode" >&5 +$as_echo_n "checking for MCA component filem:$component compile mode... " >&6; } + if test "$DIRECT_filem" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -190153,77 +209431,9 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/ess/tool/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components tool" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components tool" - else - if test "ess" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/ess/tool/lib${ORTE_LIB_PREFIX}mca_ess_tool.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ess/tool/libmca_ess_tool.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_ess_tool_component;" >> $outfile.extern - echo " &mca_ess_tool_component, " >> $outfile.struct - static_components="$static_components tool" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:tool can compile" >&5 -$as_echo_n "checking if MCA component ess:tool can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_ess" = "tool" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** ess component tool was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ess" = "tool" ; then -as_fn_error $? "*** ess component tool was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$ess_tool_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$should_build" = "1" ; then @@ -190236,7 +209446,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -190255,7 +209465,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $opal_str unset opal_str @@ -190263,24 +209473,129 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_tool_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi +# +# Invoke configure in a specific subdirectory. +# +# orte/mca/filem/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="orte/mca/filem/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent fi - done + +# +# Clean up +# # Unwind the index @@ -190303,90 +209618,105 @@ unset $opal_var done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/orte/mca/filem/all_components/post_configure.sh" + if test -f $infile; then - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + filem_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + filem_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_tool_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/filem/$component/post_configure.sh" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "filem" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/filem/$component/lib${ORTE_LIB_PREFIX}mca_filem_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/filem/$component/libmca_filem_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_filem_$component_component;" >> $outfile.extern + echo " &mca_filem_$component_component, " >> $outfile.struct + static_components="$static_components $component" fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component filem:$component can compile" >&5 +$as_echo_n "checking if MCA component filem:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_filem" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_filem_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** filem component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_filem" = "$component" ; then +as_fn_error $? "*** filem component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi -fi - if test "$ess_tool_WRAPPER_EXTRA_LIBS" = ""; then : + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$filem_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -190426,21 +209756,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_tool_LIBS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -190466,8 +209796,8 @@ unset $opal_var done - -else +str="line=\$filem_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -190507,7 +209837,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_tool_WRAPPER_EXTRA_LIBS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -190548,172 +209878,179 @@ done -fi - fi # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$ess_tool_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + else - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component filem:$component can compile" >&5 +$as_echo_n "checking if MCA component filem:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # If this component was requested as the default for this + # type, then abort. + if test "$with_filem" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + if test ! -z "$DIRECT_filem" ; then + if test "$DIRECT_filem" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi + fi + + fi + fi done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + MCA_orte_filem_ALL_COMPONENTS="$all_components" + MCA_orte_filem_STATIC_COMPONENTS="$static_components" + MCA_orte_filem_DSO_COMPONENTS="$dso_components" + MCA_orte_filem_STATIC_LTLIBS="$static_ltlibs" - for arg in $ess_tool_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi + + + + + + MCA_orte_filem_ALL_SUBDIRS= + for item in $all_components ; do + MCA_orte_filem_ALL_SUBDIRS="$MCA_orte_filem_ALL_SUBDIRS mca/filem/$item" done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + MCA_orte_filem_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_orte_filem_STATIC_SUBDIRS="$MCA_orte_filem_STATIC_SUBDIRS mca/filem/$item" + done - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + + + MCA_orte_filem_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_orte_filem_DSO_SUBDIRS="$MCA_orte_filem_DSO_SUBDIRS mca/filem/$item" done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_tool_WRAPPER_EXTRA_CPPFLAGS ($ess_tool_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring ess_tool_WRAPPER_EXTRA_CPPFLAGS ($ess_tool_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - else + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "filem" != "common"; then + cat > $outfile <&5 -$as_echo_n "checking if MCA component ess:tool can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +`cat $outfile.extern` - # If this component was requested as the default for this - # type, then abort. - if test "$with_ess" = "tool" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tool\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tool\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +const mca_base_component_t *mca_filem_base_static_components[] = { +`cat $outfile.struct` + NULL +}; - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "tool" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tool\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tool\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 +#if defined(c_plusplus) || defined(__cplusplus) +} +#endif + +EOF + # Only replace the header file if a) it doesn't previously + # exist, or b) the contents are different. Do this to not + # trigger recompilation of certain .c files just because the + # timestamp changed on $outfile_real (similar to the way AC + # handles AC_CONFIG_HEADER files). + diff $outfile $outfile_real > /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile fi fi + rm -f $outfile.struct $outfile.extern - # add component to all component list - all_components="$all_components tool" - fi + unset all_components static_components dso_components outfile outfile_real - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_ess_tool_DSO=1 - else - BUILD_orte_ess_tool_DSO=0 - fi - if test "$BUILD_orte_ess_tool_DSO" = "1"; then - MCA_BUILD_orte_ess_tool_DSO_TRUE= - MCA_BUILD_orte_ess_tool_DSO_FALSE='#' -else - MCA_BUILD_orte_ess_tool_DSO_TRUE='#' - MCA_BUILD_orte_ess_tool_DSO_FALSE= -fi + MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS grpcomm" + MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/grpcomm" + MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_grpcomm_ALL_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_grpcomm_DSO_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_grpcomm_STATIC_SUBDIRS)" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/grpcomm/libmca_grpcomm.la" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_grpcomm_STATIC_LTLIBS)" + opal_show_subsubtitle "Configuring MCA framework grpcomm" - ac_config_files="$ac_config_files orte/mca/ess/tool/Makefile" - unset compile_mode + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= - # configure components that use built-in configuration scripts + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=orte/mca/grpcomm/base + as_dir=$outdir; as_fn_mkdir_p + # emit Makefile rule + ac_config_files="$ac_config_files orte/mca/grpcomm/Makefile" - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework grpcomm" >&5 +$as_echo_n "checking for no configure components in framework grpcomm... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: direct" >&5 +$as_echo "direct" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework grpcomm" >&5 +$as_echo_n "checking for m4 configure components in framework grpcomm... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - opal_show_subsubsubtitle "MCA component ess:alps (m4 configuration macro)" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + # run the configure logic for the no-config components + opal_show_subsubsubtitle "MCA component grpcomm:direct (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/ess/alps" + + component_path="$srcdir/orte/mca/grpcomm/direct" want_component=0 # build if: @@ -190745,8 +210082,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "alps" ; then + if test ! -z "$DIRECT_grpcomm" ; then + if test "$DIRECT_grpcomm" = "direct" ; then want_component=1 else want_component=0 @@ -190755,775 +210092,99 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_ess" = "1"; then : + if test "$DISABLE_grpcomm" = "1"; then : want_component=0 fi - if test "$DISABLE_ess_alps" = "1"; then : + if test "$DISABLE_grpcomm_direct" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_ess" - SHARED_COMPONENT="$DSO_ess_alps" - - STATIC_FRAMEWORK="$STATIC_ess" - STATIC_COMPONENT="$STATIC_ess_alps" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:alps compile mode" >&5 -$as_echo_n "checking for MCA component ess:alps compile mode... " >&6; } - if test "$DIRECT_ess" = "alps" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files orte/mca/ess/alps/Makefile" - - - - if test -z "$opal_check_cray_alps_happy"; then - - -# Check whether --with-alps was given. -if test "${with_alps+set}" = set; then : - withval=$with_alps; -else - with_alps=auto -fi - - - if test -f /etc/opt/cray/release/clerelease; then - cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` - else - cle_level="unknown" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 -$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } - if test "$cle_level" = "4" && test "$with_alps" != "no"; then : - - -# -# if we've gotten here, its because we are building on a CLE 4 system -# - opal_check_alps_cle4_libdir_happy="no" - opal_check_alps_cle4_dir_happy="no" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 -$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } - - -# Check whether --with-alps-libdir was given. -if test "${with_alps_libdir+set}" = set; then : - withval=$with_alps_libdir; -fi - - -# -# check to see if Open MPI is being built on a CLE 4 eslogin node -# - if test -f /etc/opt/cray/release/ESLrelease; then : - default_alps_dir="/opt/cray/xe-sysroot/default/usr" -else - default_alps_dir="/usr" -fi - - if test -z "$with_alps_libdir"; then : - if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : - if test -d "$with_alps_libdir/lib64"; then : - opal_check_alps_libdir="$with_alps_libdir/lib64" -else - opal_check_alps_libdir="$with_alps_libdir/lib" -fi -else - opal_check_alps_libdir="$default_alps_dir/lib/alps" -fi - -fi - - if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : - opal_check_alps_dir=$default_alps_dir -else - opal_check_alps_dir=$with_alps -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 -$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } - if test -f "$opal_check_alps_libdir/libalps.a"; then : - opal_check_alps_libdir_cle4_happy="yes" -else - opal_check_alps_libdir_cle4_happy="no", - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 -$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } - if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : - opal_check_alps_dir_cle4_happy="yes" -else - opal_check_alps_dir_cle4_happy="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : - CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" - CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - opal_check_cray_alps_happy="yes" -else - opal_check_cray_alps_happy="no" -fi - -else - if test "$with_alps" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy=no - ess_alps_happy="no" -else - if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 -$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } - -if test -n "$CRAY_ALPSLLI_CFLAGS"; then - pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSLLI_LIBS"; then - pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` - else - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -else - CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS - CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS - CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 -$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } - -if test -n "$CRAY_ALPSUTIL_CFLAGS"; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSUTIL_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` - else - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -else - CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS - CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS - CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 -$as_echo_n "checking for CRAY_ALPS... " >&6; } - -if test -n "$CRAY_ALPS_CFLAGS"; then - pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPS_LIBS"; then - pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPS_STATIC_LIBS"; then - pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` - else - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPS_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -else - CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS - CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS - CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 -$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } - -if test -n "$CRAY_WLM_DETECT_CFLAGS"; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_WLM_DETECT_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` - else - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -else - CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS - CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS - CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" - -cat >>confdefs.h <<_ACEOF -#define CRAY_WLM_DETECT 1 -_ACEOF - - -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 -$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 -$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -fi - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 -$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } - - if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : - CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS - CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS -fi - - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - fi - - if test "$opal_check_cray_alps_happy" = "yes"; then : - ess_alps_LDFLAGS="$ess_alps_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" - ess_alps_CPPFLAGS="$ess_alps_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" - ess_alps_LIBS="$ess_alps_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - ess_alps_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - ess_alps_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - ess_alps_happy="yes" -else - ess_alps_happy="no" -fi - - if test "$ess_alps_happy" = "yes"; then : - should_build=$should_build + SHARED_FRAMEWORK="$DSO_grpcomm" + SHARED_COMPONENT="$DSO_grpcomm_direct" + STATIC_FRAMEWORK="$STATIC_grpcomm" + STATIC_COMPONENT="$STATIC_grpcomm_direct" + shared_mode_override=static -else - should_build=0 -fi + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component grpcomm:direct compile mode" >&5 +$as_echo_n "checking for MCA component grpcomm:direct compile mode... " >&6; } + if test "$DIRECT_grpcomm" = "direct" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/ess/alps/post_configure.sh" + infile="$srcdir/orte/mca/grpcomm/direct/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components alps" + all_components="$all_components direct" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components alps" + dso_components="$dso_components direct" else - if test "ess" = "common"; then + if test "grpcomm" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/ess/alps/lib${ORTE_LIB_PREFIX}mca_ess_alps.la $static_ltlibs" + static_ltlibs="mca/grpcomm/direct/lib${ORTE_LIB_PREFIX}mca_grpcomm_direct.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ess/alps/libmca_ess_alps.la $static_ltlibs" + static_ltlibs="mca/grpcomm/direct/libmca_grpcomm_direct.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_ess_alps_component;" >> $outfile.extern - echo " &mca_ess_alps_component, " >> $outfile.struct - static_components="$static_components alps" + echo "extern const mca_base_component_t mca_grpcomm_direct_component;" >> $outfile.extern + echo " &mca_grpcomm_direct_component, " >> $outfile.struct + static_components="$static_components direct" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:alps can compile" >&5 -$as_echo_n "checking if MCA component ess:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component grpcomm:direct can compile" >&5 +$as_echo_n "checking if MCA component grpcomm:direct can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_ess" = "alps" ; then + if test "$DIRECT_grpcomm" = "direct" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" + str="MCA_orte_grpcomm_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** ess component alps was supposed to be direct-called, but +as_fn_error $? "*** grpcomm component direct was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -191531,8 +210192,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ess" = "alps" ; then -as_fn_error $? "*** ess component alps was supposed to be direct-called, but + if test "$DIRECT_grpcomm" = "direct" ; then +as_fn_error $? "*** grpcomm component direct was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -191547,7 +210208,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$ess_alps_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$grpcomm_direct_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -191587,7 +210248,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_alps_LDFLAGS; do + for arg in $grpcomm_direct_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -191668,7 +210329,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_alps_WRAPPER_EXTRA_LDFLAGS; do + for arg in $grpcomm_direct_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -191710,7 +210371,7 @@ fi - if test "$ess_alps_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$grpcomm_direct_WRAPPER_EXTRA_LIBS" = ""; then : @@ -191750,7 +210411,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_alps_LIBS; do + for arg in $grpcomm_direct_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -191831,7 +210492,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_alps_WRAPPER_EXTRA_LIBS; do + for arg in $grpcomm_direct_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -191879,7 +210540,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$ess_alps_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$grpcomm_direct_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -191922,7 +210583,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_alps_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $grpcomm_direct_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -191965,78 +210626,90 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_alps_WRAPPER_EXTRA_CPPFLAGS ($ess_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring ess_alps_WRAPPER_EXTRA_CPPFLAGS ($ess_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring grpcomm_direct_WRAPPER_EXTRA_CPPFLAGS ($grpcomm_direct_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring grpcomm_direct_WRAPPER_EXTRA_CPPFLAGS ($grpcomm_direct_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:alps can compile" >&5 -$as_echo_n "checking if MCA component ess:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component grpcomm:direct can compile" >&5 +$as_echo_n "checking if MCA component grpcomm:direct can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_ess" = "alps" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} + if test "$with_grpcomm" = "direct" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"direct\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"direct\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "alps" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_grpcomm" ; then + if test "$DIRECT_grpcomm" = "direct" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"direct\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"direct\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components alps" -fi - - + # add component to all component list + all_components="$all_components direct" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_ess_alps_DSO=1 -else - BUILD_orte_ess_alps_DSO=0 -fi - if test "$BUILD_orte_ess_alps_DSO" = "1"; then - MCA_BUILD_orte_ess_alps_DSO_TRUE= - MCA_BUILD_orte_ess_alps_DSO_FALSE='#' + if test "$compile_mode" = "dso" ; then + BUILD_orte_grpcomm_direct_DSO=1 + else + BUILD_orte_grpcomm_direct_DSO=0 + fi + if test "$BUILD_orte_grpcomm_direct_DSO" = "1"; then + MCA_BUILD_orte_grpcomm_direct_DSO_TRUE= + MCA_BUILD_orte_grpcomm_direct_DSO_FALSE='#' else - MCA_BUILD_orte_ess_alps_DSO_TRUE='#' - MCA_BUILD_orte_ess_alps_DSO_FALSE= + MCA_BUILD_orte_grpcomm_direct_DSO_TRUE='#' + MCA_BUILD_orte_grpcomm_direct_DSO_FALSE= fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi + ac_config_files="$ac_config_files orte/mca/grpcomm/direct/Makefile" + unset compile_mode + # configure components that use built-in configuration scripts - opal_show_subsubsubtitle "MCA component ess:lsf (m4 configuration macro)" + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - component_path="$srcdir/orte/mca/ess/lsf" + if test "1" != "0"; then : + + for component_path in $srcdir/orte/mca/grpcomm/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component grpcomm:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/orte/mca/grpcomm/$component" want_component=0 # build if: @@ -192068,8 +210741,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "lsf" ; then + if test ! -z "$DIRECT_grpcomm" ; then + if test "$DIRECT_grpcomm" = "$component" ; then want_component=1 else want_component=0 @@ -192078,27 +210751,29 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_ess" = "1"; then : - want_component=0 -fi - if test "$DISABLE_ess_lsf" = "1"; then : + if test "$DISABLE_grpcomm" = "1"; then : want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_grpcomm_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_ess" - SHARED_COMPONENT="$DSO_ess_lsf" + SHARED_FRAMEWORK="$DSO_grpcomm" + str="SHARED_COMPONENT=\$DSO_grpcomm_$component" + eval $str - STATIC_FRAMEWORK="$STATIC_ess" - STATIC_COMPONENT="$STATIC_ess_lsf" + STATIC_FRAMEWORK="$STATIC_grpcomm" + str="STATIC_COMPONENT=\$STATIC_grpcomm_$component" + eval $str shared_mode_override=static @@ -192116,9 +210791,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:lsf compile mode" >&5 -$as_echo_n "checking for MCA component ess:lsf compile mode... " >&6; } - if test "$DIRECT_ess" = "lsf" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component grpcomm:$component compile mode" >&5 +$as_echo_n "checking for MCA component grpcomm:$component compile mode... " >&6; } + if test "$DIRECT_grpcomm" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -192126,158 +210801,784 @@ $as_echo "$compile_mode" >&6; } fi + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - # try to configure the component + if test "$should_build" = "1" ; then - ac_config_files="$ac_config_files orte/mca/ess/lsf/Makefile" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - if test -z "$orte_check_lsf_happy"; then : + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Check whether --with-lsf was given. -if test "${with_lsf+set}" = set; then : - withval=$with_lsf; -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-lsf value" >&5 -$as_echo_n "checking --with-lsf value... " >&6; } - if test "$with_lsf" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-lsf)" >&5 -$as_echo "simple no (specified --without-lsf)" >&6; } -else - if test "$with_lsf" = "yes" || test "x$with_lsf" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_lsf"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_lsf not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_lsf not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_lsf/include/lsf/lsbatch.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_lsf/include/lsf/lsbatch.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_lsf/include/lsf/lsbatch.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_lsf)" >&5 -$as_echo "sanity check ok ($with_lsf)" >&6; } -fi +# +# Invoke configure in a specific subdirectory. +# +# orte/mca/grpcomm/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="orte/mca/grpcomm/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" +# +# Sanity checks +# -fi +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # -fi + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -fi + # + # Move into the target directory + # + subdir_parent=`pwd` + cd $subdir_dir -# Check whether --with-lsf-libdir was given. -if test "${with_lsf_libdir+set}" = set; then : - withval=$with_lsf_libdir; -fi + # + # Make a "../" for each directory in $subdir_dir. + # + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-lsf-libdir value" >&5 -$as_echo_n "checking --with-lsf-libdir value... " >&6; } - if test "$with_lsf_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-lsf-libdir)" >&5 -$as_echo "simple no (specified --without-lsf-libdir)" >&6; } -else - if test "$with_lsf_libdir" = "yes" || test "x$with_lsf_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_lsf_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_lsf_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_lsf_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_lsf_libdir/libbat.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_lsf_libdir/libbat.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_lsf_libdir/libbat.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_lsf_libdir)" >&5 -$as_echo "sanity check ok ($with_lsf_libdir)" >&6; } + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac -fi + # + # Construct the --cache-file argument + # + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" -fi + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + # + # Go back to the topdir + # + cd $subdir_parent fi +# +# Clean up +# -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$with_lsf" != "no"; then : + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Defaults - orte_check_lsf_dir_msg="compiler default" - orte_check_lsf_libdir_msg="linker default" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # Save directory names if supplied - if test ! -z "$with_lsf" && test "$with_lsf" != "yes"; then : - orte_check_lsf_dir="$with_lsf" - orte_check_lsf_dir_msg="$orte_check_lsf_dir (from --with-lsf)" + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/orte/mca/grpcomm/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + grpcomm_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + grpcomm_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/grpcomm/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "grpcomm" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/grpcomm/$component/lib${ORTE_LIB_PREFIX}mca_grpcomm_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/grpcomm/$component/libmca_grpcomm_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_grpcomm_$component_component;" >> $outfile.extern + echo " &mca_grpcomm_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component grpcomm:$component can compile" >&5 +$as_echo_n "checking if MCA component grpcomm:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_grpcomm" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_grpcomm_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** grpcomm component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_grpcomm" = "$component" ; then +as_fn_error $? "*** grpcomm component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$grpcomm_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - if test ! -z "$with_lsf_libdir" && test "$with_lsf_libdir" != "yes"; then : - orte_check_lsf_libdir="$with_lsf_libdir" - orte_check_lsf_libdir_msg="$orte_check_lsf_libdir (from --with-lsf-libdir)" + done fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - # If no directories were specified, look for LSF_LIBDIR, - # LSF_INCLUDEDIR, and/or LSF_ENVDIR. - if test -z "$orte_check_lsf_dir" && test -z "$orte_check_lsf_libdir"; then : - if test ! -z "$LSF_ENVDIR" && test -z "$LSF_LIBDIR" && test -f "$LSF_ENVDIR/lsf.conf"; then : - LSF_LIBDIR=`egrep ^LSF_LIBDIR= $LSF_ENVDIR/lsf.conf | cut -d= -f2-` + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + +str="line=\$grpcomm_$component_WRAPPER_EXTRA_LIBS" + eval "$str" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - if test ! -z "$LSF_ENVDIR" && test -z "$LSF_INCLUDEDIR" && test -f "$LSF_ENVDIR/lsf.conf"; then : - LSF_INCLUDEDIR=`egrep ^LSF_INCLUDEDIR= $LSF_ENVDIR/lsf.conf | cut -d= -f2-` + done fi - if test ! -z "$LSF_LIBDIR"; then : - orte_check_lsf_libdir=$LSF_LIBDIR - orte_check_lsf_libdir_msg="$LSF_LIBDIR (from \$LSF_LIBDIR)" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - if test ! -z "$LSF_INCLUDEDIR"; then : - orte_check_lsf_dir=`dirname $LSF_INCLUDEDIR` - orte_check_lsf_dir_msg="$orte_check_lsf_dir (from \$LSF_INCLUDEDIR)" fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component grpcomm:$component can compile" >&5 +$as_echo_n "checking if MCA component grpcomm:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_grpcomm" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_grpcomm" ; then + if test "$DIRECT_grpcomm" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + fi + fi + done + fi - if test "$with_lsf" = "no"; then : - orte_check_lsf_happy="no" + MCA_orte_grpcomm_ALL_COMPONENTS="$all_components" + MCA_orte_grpcomm_STATIC_COMPONENTS="$static_components" + MCA_orte_grpcomm_DSO_COMPONENTS="$dso_components" + MCA_orte_grpcomm_STATIC_LTLIBS="$static_ltlibs" + + + + + + + + MCA_orte_grpcomm_ALL_SUBDIRS= + for item in $all_components ; do + MCA_orte_grpcomm_ALL_SUBDIRS="$MCA_orte_grpcomm_ALL_SUBDIRS mca/grpcomm/$item" + done + + + + MCA_orte_grpcomm_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_orte_grpcomm_STATIC_SUBDIRS="$MCA_orte_grpcomm_STATIC_SUBDIRS mca/grpcomm/$item" + done + + + + MCA_orte_grpcomm_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_orte_grpcomm_DSO_SUBDIRS="$MCA_orte_grpcomm_DSO_SUBDIRS mca/grpcomm/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "grpcomm" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS iof" + MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/iof" + MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_iof_ALL_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_iof_DSO_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_iof_STATIC_SUBDIRS)" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/iof/libmca_iof.la" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_iof_STATIC_LTLIBS)" + + opal_show_subsubtitle "Configuring MCA framework iof" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=orte/mca/iof/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files orte/mca/iof/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework iof" >&5 +$as_echo_n "checking for no configure components in framework iof... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: hnp, orted, tool" >&5 +$as_echo "hnp, orted, tool" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework iof" >&5 +$as_echo_n "checking for m4 configure components in framework iof... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + opal_show_subsubsubtitle "MCA component iof:hnp (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/orte/mca/iof/hnp" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_iof" ; then + if test "$DIRECT_iof" = "hnp" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_iof" = "1"; then : + want_component=0 +fi + if test "$DISABLE_iof_hnp" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 else - orte_check_lsf_happy="yes" + should_build=0 fi - orte_check_lsf_ess_lsf_save_CPPFLAGS="$CPPFLAGS" - orte_check_lsf_ess_lsf_save_LDFLAGS="$LDFLAGS" - orte_check_lsf_ess_lsf_save_LIBS="$LIBS" - # liblsf requires yp_all, yp_get_default_domain, and ypprot_err - # on Linux, Solaris, NEC, and Sony NEWSs these are found in libnsl - # on AIX it should be in libbsd - # on HP-UX it should be in libBSD - # on IRIX < 6 it should be in libsun (IRIX 6 and later it is in libc) + SHARED_FRAMEWORK="$DSO_iof" + SHARED_COMPONENT="$DSO_iof_hnp" + + STATIC_FRAMEWORK="$STATIC_iof" + STATIC_COMPONENT="$STATIC_iof_hnp" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component iof:hnp compile mode" >&5 +$as_echo_n "checking for MCA component iof:hnp compile mode... " >&6; } + if test "$DIRECT_iof" = "hnp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/iof/hnp/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components hnp" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components hnp" + else + if test "iof" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/iof/hnp/lib${ORTE_LIB_PREFIX}mca_iof_hnp.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/iof/hnp/libmca_iof_hnp.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_iof_hnp_component;" >> $outfile.extern + echo " &mca_iof_hnp_component, " >> $outfile.struct + static_components="$static_components hnp" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component iof:hnp can compile" >&5 +$as_echo_n "checking if MCA component iof:hnp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_iof" = "hnp" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_iof_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** iof component hnp was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_iof" = "hnp" ; then +as_fn_error $? "*** iof component hnp was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$iof_hnp_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -192290,7 +211591,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in LIBS_save add; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -192309,71 +211610,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"LIBS_save add\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - LIBS_save=$LIBS - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing yp_all" >&5 -$as_echo_n "checking for library containing yp_all... " >&6; } -if ${ac_cv_search_yp_all+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char yp_all (); -int -main () -{ -return yp_all (); - ; - return 0; -} -_ACEOF -for ac_lib in '' nsl bsd BSD sun; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_yp_all=$ac_res + for arg in $iof_hnp_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_yp_all+:} false; then : - break + done fi -done -if ${ac_cv_search_yp_all+:} false; then : - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - ac_cv_search_yp_all=no + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_yp_all" >&5 -$as_echo "$ac_cv_search_yp_all" >&6; } -ac_res=$ac_cv_search_yp_all -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - # Found it! See if anything was added to LIBS - add=`printf '%s\n' "$LIBS" | sed -e "s/$LIBS_save$//"` - if test -n "$add"; then : + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -192413,21 +211699,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $add; do + for arg in $iof_hnp_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${yp_all_nsl_LIBS}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$yp_all_nsl_LIBS"; then : - yp_all_nsl_LIBS=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - yp_all_nsl_LIBS="$yp_all_nsl_LIBS $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -192455,62 +211741,7 @@ fi - yp_all_nsl_have_yp_all=1 - yp_all_nsl_happy="yes" -else - yp_all_nsl_have_yp_all=0 - yp_all_nsl_happy="no" -fi - - - -cat >>confdefs.h <<_ACEOF -#define OPAL_HAVE_YP_ALL_NSL $yp_all_nsl_have_yp_all -_ACEOF - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - - if test "$yp_all_nsl_happy" = "no"; then : - orte_check_lsf_happy="no" -else - orte_check_lsf_happy="yes" -fi - - # liblsb requires liblsf - using ls_info as a test for liblsf presence - - opal_check_package_ls_info_lsf_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_ls_info_lsf_save_LDFLAGS="$LDFLAGS" - opal_check_package_ls_info_lsf_save_LIBS="$LIBS" - - opal_check_package_ls_info_lsf_orig_CPPFLAGS="$ls_info_lsf_CPPFLAGS" - opal_check_package_ls_info_lsf_orig_LDFLAGS="$ls_info_lsf_LDFLAGS" - opal_check_package_ls_info_lsf_orig_LIBS="$ls_info_lsf_LIBS" - - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + if test "$iof_hnp_WRAPPER_EXTRA_LIBS" = ""; then : @@ -192523,7 +211754,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -192542,7 +211773,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -192550,357 +211781,48 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_lsf_lsf_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $orte_check_lsf_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in lsf/lsf.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "lsf/lsf.h" "ac_cv_header_lsf_lsf_h" "$ac_includes_default" -if test "x$ac_cv_header_lsf_lsf_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LSF_LSF_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_lsf_lsf_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - ls_info_lsf_CPPFLAGS="$ls_info_lsf_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in lsf/lsf.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "lsf/lsf.h" "ac_cv_header_lsf_lsf_h" "$ac_includes_default" -if test "x$ac_cv_header_lsf_lsf_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LSF_LSF_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_ls_info - opal_check_package_lib_happy="no" - if test "$orte_check_lsf_libdir" != ""; then : - # libdir was specified - search only there - ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$orte_check_lsf_libdir" - LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 -$as_echo_n "checking for library containing ls_info... " >&6; } -if ${ac_cv_search_ls_info+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ls_info (); -int -main () -{ -return ls_info (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lsf; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ls_info=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ls_info+:} false; then : - break -fi -done -if ${ac_cv_search_ls_info+:} false; then : - -else - ac_cv_search_ls_info=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 -$as_echo "$ac_cv_search_ls_info" >&6; } -ac_res=$ac_cv_search_ls_info -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - unset ac_cv_search_ls_info -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$orte_check_lsf_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 -$as_echo_n "checking for library containing ls_info... " >&6; } -if ${ac_cv_search_ls_info+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ls_info (); -int -main () -{ -return ls_info (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lsf; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ls_info=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ls_info+:} false; then : - break -fi -done -if ${ac_cv_search_ls_info+:} false; then : - -else - ac_cv_search_ls_info=no + for arg in $iof_hnp_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 -$as_echo "$ac_cv_search_ls_info" >&6; } -ac_res=$ac_cv_search_ls_info -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - unset ac_cv_search_ls_info + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 -$as_echo_n "checking for library containing ls_info... " >&6; } -if ${ac_cv_search_ls_info+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ls_info (); -int -main () -{ -return ls_info (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lsf; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ls_info=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ls_info+:} false; then : - break -fi -done -if ${ac_cv_search_ls_info+:} false; then : -else - ac_cv_search_ls_info=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 -$as_echo "$ac_cv_search_ls_info" >&6; } -ac_res=$ac_cv_search_ls_info -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - unset ac_cv_search_ls_info -fi -fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 -$as_echo_n "checking for library containing ls_info... " >&6; } -if ${ac_cv_search_ls_info+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ls_info (); -int -main () -{ -return ls_info (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lsf; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ls_info=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ls_info+:} false; then : - break -fi -done -if ${ac_cv_search_ls_info+:} false; then : else - ac_cv_search_ls_info=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 -$as_echo "$ac_cv_search_ls_info" >&6; } -ac_res=$ac_cv_search_ls_info -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - unset ac_cv_search_ls_info -fi -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. @@ -192913,7 +211835,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -192932,16 +211854,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $iof_hnp_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$iof_hnp_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -192954,7 +211926,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -192973,7 +211945,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -192981,276 +211953,327 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if liblsf requires libnl v1 or v3" >&5 -$as_echo_n "checking if liblsf requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ls_info (void); -int main(int argc, char *argv[]) { - ls_info (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:193008: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:193015: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" + for arg in $iof_hnp_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" + done fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib lsf" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib lsf" >&2;} - + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, liblsf links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, liblsf links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} - - libnl_sane=0 fi + done - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lsf requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lsf requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs lsf" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -# Go through each item in the variable and only keep the unique ones + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring iof_hnp_WRAPPER_EXTRA_CPPFLAGS ($iof_hnp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring iof_hnp_WRAPPER_EXTRA_CPPFLAGS ($iof_hnp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + else - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component iof:hnp can compile" >&5 +$as_echo_n "checking if MCA component iof:hnp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + # If this component was requested as the default for this + # type, then abort. + if test "$with_iof" = "hnp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hnp\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"hnp\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Check the ending condition + if test ! -z "$DIRECT_iof" ; then + if test "$DIRECT_iof" = "hnp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hnp\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"hnp\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - opal_done="`expr $opal_i \>= $opal_count`" + # add component to all component list + all_components="$all_components hnp" + fi - # Increment the counter + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_iof_hnp_DSO=1 + else + BUILD_orte_iof_hnp_DSO=0 + fi + if test "$BUILD_orte_iof_hnp_DSO" = "1"; then + MCA_BUILD_orte_iof_hnp_DSO_TRUE= + MCA_BUILD_orte_iof_hnp_DSO_FALSE='#' +else + MCA_BUILD_orte_iof_hnp_DSO_TRUE='#' + MCA_BUILD_orte_iof_hnp_DSO_FALSE= +fi - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" + ac_config_files="$ac_config_files orte/mca/iof/hnp/Makefile" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + unset compile_mode -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + opal_show_subsubsubtitle "MCA component iof:orted (no configuration)" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + component_path="$srcdir/orte/mca/iof/orted" + want_component=0 -# Clean up + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_iof" ; then + if test "$DIRECT_iof" = "orted" ; then + want_component=1 + else + want_component=0 + fi + fi + fi -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_iof" = "1"; then : + want_component=0 fi - + if test "$DISABLE_iof_orted" = "1"; then : + want_component=0 fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblsf requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblsf requires libnl-3" >&2;} + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs lsf" + SHARED_FRAMEWORK="$DSO_iof" + SHARED_COMPONENT="$DSO_iof_orted" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + STATIC_FRAMEWORK="$STATIC_iof" + STATIC_COMPONENT="$STATIC_iof_orted" -# Go through each item in the variable and only keep the unique ones + shared_mode_override=static -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Loop over every token we've seen so far + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component iof:orted compile mode" >&5 +$as_echo_n "checking for MCA component iof:orted compile mode... " >&6; } + if test "$DIRECT_iof" = "orted" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + if test "$should_build" = "1" ; then - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/iof/orted/post_configure.sh" - # Increment the counter + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components orted" - opal_i="`expr $opal_i + 1`" - done + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components orted" + else + if test "iof" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/iof/orted/lib${ORTE_LIB_PREFIX}mca_iof_orted.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/iof/orted/libmca_iof_orted.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_iof_orted_component;" >> $outfile.extern + echo " &mca_iof_orted_component, " >> $outfile.struct + static_components="$static_components orted" + fi - # If we didn't find the token, add it to the "array" + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component iof:orted can compile" >&5 +$as_echo_n "checking if MCA component iof:orted can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_iof" = "orted" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_iof_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** iof component orted was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi else - opal_i="`expr $opal_i - 1`" + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_iof" = "orted" ; then +as_fn_error $? "*** iof component orted was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$iof_orted_WRAPPER_EXTRA_LDFLAGS" = ""; then : -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Done; do the assignment + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 + for arg in $iof_orted_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - + done fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -193274,10 +212297,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $iof_orted_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -193300,332 +212378,89 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ls_info" != "no" && - test "$ac_cv_search_ls_info" != "none required"; then : - ls_info_lsf_LIBS="$ac_cv_search_ls_info $yp_all_nsl_LIBS" -else - ls_info_lsf_LIBS="$yp_all_nsl_LIBS" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" fi + if test "$iof_orted_WRAPPER_EXTRA_LIBS" = ""; then : -else - opal_check_package_happy="no" -fi -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # see comment above - unset ac_cv_search_ls_info - opal_check_package_lib_happy="no" - if test "$orte_check_lsf_libdir" != ""; then : - # libdir was specified - search only there - ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$orte_check_lsf_libdir" - LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 -$as_echo_n "checking for library containing ls_info... " >&6; } -if ${ac_cv_search_ls_info+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ls_info (); -int -main () -{ -return ls_info (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lsf; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ls_info=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ls_info+:} false; then : - break -fi -done -if ${ac_cv_search_ls_info+:} false; then : + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -else - ac_cv_search_ls_info=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 -$as_echo "$ac_cv_search_ls_info" >&6; } -ac_res=$ac_cv_search_ls_info -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - unset ac_cv_search_ls_info -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$orte_check_lsf_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 -$as_echo_n "checking for library containing ls_info... " >&6; } -if ${ac_cv_search_ls_info+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ls_info (); -int -main () -{ -return ls_info (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lsf; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ls_info=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ls_info+:} false; then : - break -fi -done -if ${ac_cv_search_ls_info+:} false; then : -else - ac_cv_search_ls_info=no + for arg in $iof_orted_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 -$as_echo "$ac_cv_search_ls_info" >&6; } -ac_res=$ac_cv_search_ls_info -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - unset ac_cv_search_ls_info + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 -$as_echo_n "checking for library containing ls_info... " >&6; } -if ${ac_cv_search_ls_info+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ls_info (); -int -main () -{ -return ls_info (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lsf; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ls_info=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ls_info+:} false; then : - break -fi -done -if ${ac_cv_search_ls_info+:} false; then : -else - ac_cv_search_ls_info=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 -$as_echo "$ac_cv_search_ls_info" >&6; } -ac_res=$ac_cv_search_ls_info -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - unset ac_cv_search_ls_info -fi -fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 -$as_echo_n "checking for library containing ls_info... " >&6; } -if ${ac_cv_search_ls_info+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ls_info (); -int -main () -{ -return ls_info (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lsf; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ls_info=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ls_info+:} false; then : - break -fi -done -if ${ac_cv_search_ls_info+:} false; then : else - ac_cv_search_ls_info=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 -$as_echo "$ac_cv_search_ls_info" >&6; } -ac_res=$ac_cv_search_ls_info -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - unset ac_cv_search_ls_info -fi -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. @@ -193638,7 +212473,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -193657,16 +212492,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $iof_orted_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$iof_orted_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -193679,7 +212564,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -193698,7 +212583,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -193706,276 +212591,490 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $iof_orted_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if liblsf requires libnl v1 or v3" >&5 -$as_echo_n "checking if liblsf requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ls_info (void); -int main(int argc, char *argv[]) { - ls_info (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:193733: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:193740: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring iof_orted_WRAPPER_EXTRA_CPPFLAGS ($iof_orted_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring iof_orted_WRAPPER_EXTRA_CPPFLAGS ($iof_orted_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib lsf" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib lsf" >&2;} + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component iof:orted can compile" >&5 +$as_echo_n "checking if MCA component iof:orted can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_iof" = "orted" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"orted\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"orted\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_iof" ; then + if test "$DIRECT_iof" = "orted" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"orted\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"orted\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components orted" + fi + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_iof_orted_DSO=1 + else + BUILD_orte_iof_orted_DSO=0 + fi + if test "$BUILD_orte_iof_orted_DSO" = "1"; then + MCA_BUILD_orte_iof_orted_DSO_TRUE= + MCA_BUILD_orte_iof_orted_DSO_FALSE='#' +else + MCA_BUILD_orte_iof_orted_DSO_TRUE='#' + MCA_BUILD_orte_iof_orted_DSO_FALSE= fi - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + ac_config_files="$ac_config_files orte/mca/iof/orted/Makefile" - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, liblsf links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, liblsf links to both libnl and libnl-3." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} + unset compile_mode - libnl_sane=0 -fi + opal_show_subsubsubtitle "MCA component iof:tool (no configuration)" - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lsf requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lsf requires libnl" >&2;} + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} - libnl_sane=0 + + component_path="$srcdir/orte/mca/iof/tool" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_iof" ; then + if test "$DIRECT_iof" = "tool" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_iof" = "1"; then : + want_component=0 +fi + if test "$DISABLE_iof_tool" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 else - opal_libnlv1_libs="$opal_libnlv1_libs lsf" + should_build=0 +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones + SHARED_FRAMEWORK="$DSO_iof" + SHARED_COMPONENT="$DSO_iof_tool" -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + STATIC_FRAMEWORK="$STATIC_iof" + STATIC_COMPONENT="$STATIC_iof_tool" - # Loop over every token we've seen so far + shared_mode_override=static - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component iof:tool compile mode" >&5 +$as_echo_n "checking for MCA component iof:tool compile mode... " >&6; } + if test "$DIRECT_iof" = "tool" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # Check the ending condition + if test "$should_build" = "1" ; then - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/iof/tool/post_configure.sh" - # If we didn't find the token, add it to the "array" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components tool" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components tool" else - opal_i="`expr $opal_i - 1`" + if test "iof" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/iof/tool/lib${ORTE_LIB_PREFIX}mca_iof_tool.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/iof/tool/libmca_iof_tool.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_iof_tool_component;" >> $outfile.extern + echo " &mca_iof_tool_component, " >> $outfile.struct + static_components="$static_components tool" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component iof:tool can compile" >&5 +$as_echo_n "checking if MCA component iof:tool can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_iof" = "tool" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_iof_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** iof component tool was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_iof" = "tool" ; then +as_fn_error $? "*** iof component tool was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$iof_tool_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblsf requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblsf requires libnl-3" >&2;} + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} - libnl_sane=0 + for arg in $iof_tool_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_libnlv3_libs="$opal_libnlv3_libs lsf" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Loop over every token we've seen so far + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. +else - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # Increment the counter + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_i="`expr $opal_i + 1`" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $iof_tool_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done +fi + if test "$iof_tool_WRAPPER_EXTRA_LIBS" = ""; then : -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - rm -f conftest conftest_c.$ac_ext + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=$libnl_sane + + for arg in $iof_tool_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done # Unwind the index @@ -193999,10 +213098,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $iof_tool_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -194025,28 +213179,74 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no fi -fi + fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ls_info" != "no" && - test "$ac_cv_search_ls_info" != "none required"; then : - ls_info_lsf_LIBS="$ac_cv_search_ls_info $yp_all_nsl_LIBS" -else - ls_info_lsf_LIBS="$yp_all_nsl_LIBS" + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$iof_tool_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $iof_tool_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -194070,58 +213270,186 @@ done +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring iof_tool_WRAPPER_EXTRA_CPPFLAGS ($iof_tool_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring iof_tool_WRAPPER_EXTRA_CPPFLAGS ($iof_tool_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component iof:tool can compile" >&5 +$as_echo_n "checking if MCA component iof:tool can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - if test "$opal_check_package_happy" = "yes"; then : - ls_info_lsf_happy="yes" + # If this component was requested as the default for this + # type, then abort. + if test "$with_iof" = "tool" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tool\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tool\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_iof" ; then + if test "$DIRECT_iof" = "tool" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tool\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tool\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components tool" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_iof_tool_DSO=1 + else + BUILD_orte_iof_tool_DSO=0 + fi + if test "$BUILD_orte_iof_tool_DSO" = "1"; then + MCA_BUILD_orte_iof_tool_DSO_TRUE= + MCA_BUILD_orte_iof_tool_DSO_FALSE='#' else - ls_info_lsf_CPPFLAGS="$opal_check_package_ls_info_lsf_orig_CPPFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - ls_info_lsf_LIBS="$opal_check_package_ls_info_lsf_orig_LIBS" - ls_info_lsf_happy="no" + MCA_BUILD_orte_iof_tool_DSO_TRUE='#' + MCA_BUILD_orte_iof_tool_DSO_FALSE= fi - CPPFLAGS="$opal_check_package_ls_info_lsf_save_CPPFLAGS" - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - LIBS="$opal_check_package_ls_info_lsf_save_LIBS" + + ac_config_files="$ac_config_files orte/mca/iof/tool/Makefile" - if test "$ls_info_lsf_happy" = "no"; then : - orte_check_lsf_happy="no" + unset compile_mode + + + # configure components that use built-in configuration scripts + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/orte/mca/iof/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component iof:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/orte/mca/iof/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_iof" ; then + if test "$DIRECT_iof" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_iof" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_iof_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 else - orte_check_lsf_happy="yes" + should_build=0 fi - # test function of liblsb LSF package - if test "$orte_check_lsf_happy" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LSF dir" >&5 -$as_echo_n "checking for LSF dir... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_lsf_dir_msg" >&5 -$as_echo "$orte_check_lsf_dir_msg" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LSF library dir" >&5 -$as_echo_n "checking for LSF library dir... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_lsf_libdir_msg" >&5 -$as_echo "$orte_check_lsf_libdir_msg" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for liblsf function" >&5 -$as_echo_n "checking for liblsf function... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ls_info_lsf_happy" >&5 -$as_echo "$ls_info_lsf_happy" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for liblsf yp requirements" >&5 -$as_echo_n "checking for liblsf yp requirements... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $yp_all_nsl_happy" >&5 -$as_echo "$yp_all_nsl_happy" >&6; } - opal_check_package_orte_check_lsf_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_orte_check_lsf_save_LDFLAGS="$LDFLAGS" - opal_check_package_orte_check_lsf_save_LIBS="$LIBS" + SHARED_FRAMEWORK="$DSO_iof" + str="SHARED_COMPONENT=\$DSO_iof_$component" + eval $str - opal_check_package_orte_check_lsf_orig_CPPFLAGS="$orte_check_lsf_CPPFLAGS" - opal_check_package_orte_check_lsf_orig_LDFLAGS="$orte_check_lsf_LDFLAGS" - opal_check_package_orte_check_lsf_orig_LIBS="$orte_check_lsf_LIBS" + STATIC_FRAMEWORK="$STATIC_iof" + str="STATIC_COMPONENT=\$STATIC_iof_$component" + eval $str + shared_mode_override=static - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component iof:$component compile mode" >&5 +$as_echo_n "checking for MCA component iof:$component compile mode... " >&6; } + if test "$DIRECT_iof" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then @@ -194134,7 +213462,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -194153,7 +213481,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $opal_str unset opal_str @@ -194161,357 +213489,250 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_lsf_lsbatch_h +# +# Invoke configure in a specific subdirectory. +# +# orte/mca/iof/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="orte/mca/iof/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" - # get rid of the trailing slash(es) - dir_prefix=$(echo $orte_check_lsf_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in lsf/lsbatch.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "lsf/lsbatch.h" "ac_cv_header_lsf_lsbatch_h" "$ac_includes_default" -if test "x$ac_cv_header_lsf_lsbatch_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LSF_LSBATCH_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi +# +# Sanity checks +# -done +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_lsf_lsbatch_h -fi -fi + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - orte_check_lsf_CPPFLAGS="$orte_check_lsf_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in lsf/lsbatch.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "lsf/lsbatch.h" "ac_cv_header_lsf_lsbatch_h" "$ac_includes_default" -if test "x$ac_cv_header_lsf_lsbatch_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LSF_LSBATCH_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } -done + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac - if test "$opal_check_package_header_happy" = "yes"; then : + # + # Move into the target directory + # - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + subdir_parent=`pwd` + cd $subdir_dir + # + # Make a "../" for each directory in $subdir_dir. + # - # see comment above - unset ac_cv_search_lsb_launch - opal_check_package_lib_happy="no" - if test "$orte_check_lsf_libdir" != ""; then : - # libdir was specified - search only there - orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$orte_check_lsf_libdir" - LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 -$as_echo_n "checking for library containing lsb_launch... " >&6; } -if ${ac_cv_search_lsb_launch+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lsb_launch (); -int -main () -{ -return lsb_launch (); - ; - return 0; -} -_ACEOF -for ac_lib in '' bat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lsb_launch=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lsb_launch+:} false; then : - break -fi -done -if ${ac_cv_search_lsb_launch+:} false; then : + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac -else - ac_cv_search_lsb_launch=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 -$as_echo "$ac_cv_search_lsb_launch" >&6; } -ac_res=$ac_cv_search_lsb_launch -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # + # Construct the --cache-file argument + # - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - unset ac_cv_search_lsb_launch -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$orte_check_lsf_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 -$as_echo_n "checking for library containing lsb_launch... " >&6; } -if ${ac_cv_search_lsb_launch+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lsb_launch (); -int -main () -{ -return lsb_launch (); - ; - return 0; -} -_ACEOF -for ac_lib in '' bat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lsb_launch=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lsb_launch+:} false; then : - break -fi -done -if ${ac_cv_search_lsb_launch+:} false; then : + # + # Invoke the configure script in the subdirectory + # -else - ac_cv_search_lsb_launch=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 -$as_echo "$ac_cv_search_lsb_launch" >&6; } -ac_res=$ac_cv_search_lsb_launch -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - unset ac_cv_search_lsb_launch -fi + # + # Go back to the topdir + # + + cd $subdir_parent fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 -$as_echo_n "checking for library containing lsb_launch... " >&6; } -if ${ac_cv_search_lsb_launch+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +# +# Clean up +# -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lsb_launch (); -int -main () -{ -return lsb_launch (); - ; - return 0; -} -_ACEOF -for ac_lib in '' bat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lsb_launch=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lsb_launch+:} false; then : - break -fi -done -if ${ac_cv_search_lsb_launch+:} false; then : -else - ac_cv_search_lsb_launch=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 -$as_echo "$ac_cv_search_lsb_launch" >&6; } -ac_res=$ac_cv_search_lsb_launch -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - unset ac_cv_search_lsb_launch -fi -fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 -$as_echo_n "checking for library containing lsb_launch... " >&6; } -if ${ac_cv_search_lsb_launch+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lsb_launch (); -int -main () -{ -return lsb_launch (); - ; - return 0; -} -_ACEOF -for ac_lib in '' bat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lsb_launch=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lsb_launch+:} false; then : - break -fi -done -if ${ac_cv_search_lsb_launch+:} false; then : + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi -else - ac_cv_search_lsb_launch=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 -$as_echo "$ac_cv_search_lsb_launch" >&6; } -ac_res=$ac_cv_search_lsb_launch -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/orte/mca/iof/all_components/post_configure.sh" + if test -f $infile; then - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - unset ac_cv_search_lsb_launch -fi -fi -fi -fi + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + iof_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + iof_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/iof/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "iof" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/iof/$component/lib${ORTE_LIB_PREFIX}mca_iof_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/iof/$component/libmca_iof_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_iof_$component_component;" >> $outfile.extern + echo " &mca_iof_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component iof:$component can compile" >&5 +$as_echo_n "checking if MCA component iof:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_iof" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_iof_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** iof component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_iof" = "$component" ; then +as_fn_error $? "*** iof component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$iof_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -194524,7 +213745,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -194543,16 +213764,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + +str="line=\$iof_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -194565,7 +213826,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -194584,7 +213845,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -194592,651 +213853,893 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libbat requires libnl v1 or v3" >&5 -$as_echo_n "checking if libbat requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void lsb_launch (void); -int main(int argc, char *argv[]) { - lsb_launch (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:194619: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS 1>&5 2>&1 -opal_status=$? + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:194626: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib bat" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib bat" >&2;} + fi -fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + else - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component iof:$component can compile" >&5 +$as_echo_n "checking if MCA component iof:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_iof" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_iof" ; then + if test "$DIRECT_iof" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + fi + fi + done - libnl_sane=0 fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&2;} + MCA_orte_iof_ALL_COMPONENTS="$all_components" + MCA_orte_iof_STATIC_COMPONENTS="$static_components" + MCA_orte_iof_DSO_COMPONENTS="$dso_components" + MCA_orte_iof_STATIC_LTLIBS="$static_ltlibs" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs bat" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + MCA_orte_iof_ALL_SUBDIRS= + for item in $all_components ; do + MCA_orte_iof_ALL_SUBDIRS="$MCA_orte_iof_ALL_SUBDIRS mca/iof/$item" + done - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + MCA_orte_iof_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_orte_iof_STATIC_SUBDIRS="$MCA_orte_iof_STATIC_SUBDIRS mca/iof/$item" + done - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" + MCA_orte_iof_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_orte_iof_DSO_SUBDIRS="$MCA_orte_iof_DSO_SUBDIRS mca/iof/$item" done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "iof" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + unset all_components static_components dso_components outfile outfile_real -# Clean up + MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS odls" + MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/odls" + MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_odls_ALL_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_odls_DSO_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_odls_STATIC_SUBDIRS)" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/odls/libmca_odls.la" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_odls_STATIC_LTLIBS)" -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + opal_show_subsubtitle "Configuring MCA framework odls" -fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs bat" + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=orte/mca/odls/base + as_dir=$outdir; as_fn_mkdir_p -# Go through each item in the variable and only keep the unique ones + # emit Makefile rule + ac_config_files="$ac_config_files orte/mca/odls/Makefile" -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework odls" >&5 +$as_echo_n "checking for no configure components in framework odls... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework odls" >&5 +$as_echo_n "checking for m4 configure components in framework odls... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: alps, default, pspawn" >&5 +$as_echo "alps, default, pspawn" >&6; } - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + # run the configure logic for the no-config components - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # configure components that use built-in configuration scripts - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + opal_show_subsubsubtitle "MCA component odls:alps (m4 configuration macro)" - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up + component_path="$srcdir/orte/mca/odls/alps" + want_component=0 -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_odls" ; then + if test "$DIRECT_odls" = "alps" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_odls" = "1"; then : + want_component=0 +fi + if test "$DISABLE_odls_alps" = "1"; then : + want_component=0 fi + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 fi - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - rm -f conftest conftest_c.$ac_ext + SHARED_FRAMEWORK="$DSO_odls" + SHARED_COMPONENT="$DSO_odls_alps" - opal_libnl_sane=$libnl_sane + STATIC_FRAMEWORK="$STATIC_odls" + STATIC_COMPONENT="$STATIC_odls_alps" + shared_mode_override=static - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component odls:alps compile mode" >&5 +$as_echo_n "checking for MCA component odls:alps compile mode... " >&6; } + if test "$DIRECT_odls" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # try to configure the component - ;; - esac + ac_config_files="$ac_config_files orte/mca/odls/alps/Makefile" - opal_check_package_libnl_check_ok=$opal_libnl_sane - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test -z "$opal_check_cray_alps_happy"; then - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# Check whether --with-alps was given. +if test "${with_alps+set}" = set; then : + withval=$with_alps; +else + with_alps=auto +fi - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no + + if test -f /etc/opt/cray/release/clerelease; then + cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` + else + cle_level="unknown" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 +$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } + if test "$cle_level" = "4" && test "$with_alps" != "no"; then : + + +# +# if we've gotten here, its because we are building on a CLE 4 system +# + opal_check_alps_cle4_libdir_happy="no" + opal_check_alps_cle4_dir_happy="no" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 +$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } + + +# Check whether --with-alps-libdir was given. +if test "${with_alps_libdir+set}" = set; then : + withval=$with_alps_libdir; fi + +# +# check to see if Open MPI is being built on a CLE 4 eslogin node +# + if test -f /etc/opt/cray/release/ESLrelease; then : + default_alps_dir="/opt/cray/xe-sysroot/default/usr" +else + default_alps_dir="/usr" fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_lsb_launch" != "no" && - test "$ac_cv_search_lsb_launch" != "none required"; then : - orte_check_lsf_LIBS="$ac_cv_search_lsb_launch $ls_info_lsf_LIBS $yp_all_nsl_LIBS" + if test -z "$with_alps_libdir"; then : + if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : + if test -d "$with_alps_libdir/lib64"; then : + opal_check_alps_libdir="$with_alps_libdir/lib64" else - orte_check_lsf_LIBS="$ls_info_lsf_LIBS $yp_all_nsl_LIBS" + opal_check_alps_libdir="$with_alps_libdir/lib" fi - opal_check_package_happy="yes" else - opal_check_package_happy="no" + opal_check_alps_libdir="$default_alps_dir/lib/alps" fi +fi + if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : + opal_check_alps_dir=$default_alps_dir else - opal_check_package_happy="no" + opal_check_alps_dir=$with_alps fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 +$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } + if test -f "$opal_check_alps_libdir/libalps.a"; then : + opal_check_alps_libdir_cle4_happy="yes" else + opal_check_alps_libdir_cle4_happy="no", + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 +$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } + if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : + opal_check_alps_dir_cle4_happy="yes" +else + opal_check_alps_dir_cle4_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : + CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" + CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + opal_check_cray_alps_happy="yes" +else + opal_check_cray_alps_happy="no" +fi - # see comment above - unset ac_cv_search_lsb_launch - opal_check_package_lib_happy="no" - if test "$orte_check_lsf_libdir" != ""; then : - # libdir was specified - search only there - orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$orte_check_lsf_libdir" - LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 -$as_echo_n "checking for library containing lsb_launch... " >&6; } -if ${ac_cv_search_lsb_launch+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if test "$with_alps" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy=no + odls_alps_happy="no" +else + if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lsb_launch (); -int -main () -{ -return lsb_launch (); - ; - return 0; -} -_ACEOF -for ac_lib in '' bat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lsb_launch=$ac_res +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 +$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } + +if test -n "$CRAY_ALPSLLI_CFLAGS"; then + pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lsb_launch+:} false; then : - break + else + pkg_failed=untried fi -done -if ${ac_cv_search_lsb_launch+:} false; then : +if test -n "$CRAY_ALPSLLI_LIBS"; then + pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes else - ac_cv_search_lsb_launch=no + _pkg_short_errors_supported=no fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` + else + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 -$as_echo "$ac_cv_search_lsb_launch" >&6; } -ac_res=$ac_cv_search_lsb_launch -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + else - opal_check_package_lib_happy="no" + CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS + CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS + CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" fi - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - unset ac_cv_search_lsb_launch +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 +$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } + +if test -n "$CRAY_ALPSUTIL_CFLAGS"; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSUTIL_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried fi +if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - # libdir was not specified - go through search path - opal_check_package_libdir="$orte_check_lsf_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 -$as_echo_n "checking for library containing lsb_launch... " >&6; } -if ${ac_cv_search_lsb_launch+:} false; then : - $as_echo_n "(cached) " >&6 + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` + else + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lsb_launch (); -int -main () -{ -return lsb_launch (); - ; - return 0; -} -_ACEOF -for ac_lib in '' bat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lsb_launch=$ac_res + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lsb_launch+:} false; then : - break + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 fi -done -if ${ac_cv_search_lsb_launch+:} false; then : else - ac_cv_search_lsb_launch=no + CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS + CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS + CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 +$as_echo_n "checking for CRAY_ALPS... " >&6; } + +if test -n "$CRAY_ALPS_CFLAGS"; then + pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 -$as_echo "$ac_cv_search_lsb_launch" >&6; } -ac_res=$ac_cv_search_lsb_launch -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_LIBS"; then + pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - opal_check_package_lib_happy="no" + pkg_failed=yes fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - unset ac_cv_search_lsb_launch + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_STATIC_LIBS"; then + pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes fi + else + pkg_failed=untried fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 -$as_echo_n "checking for library containing lsb_launch... " >&6; } -if ${ac_cv_search_lsb_launch+:} false; then : - $as_echo_n "(cached) " >&6 + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` + else + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPS_PKG_ERRORS" >&5 -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lsb_launch (); -int -main () -{ -return lsb_launch (); - ; - return 0; -} -_ACEOF -for ac_lib in '' bat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lsb_launch=$ac_res + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lsb_launch+:} false; then : - break + +else + CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS + CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS + CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" fi -done -if ${ac_cv_search_lsb_launch+:} false; then : +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 +$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } + +if test -n "$CRAY_WLM_DETECT_CFLAGS"; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - ac_cv_search_lsb_launch=no + pkg_failed=yes fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + else + pkg_failed=untried fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 -$as_echo "$ac_cv_search_lsb_launch" >&6; } -ac_res=$ac_cv_search_lsb_launch -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" +if test -n "$CRAY_WLM_DETECT_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - opal_check_package_lib_happy="no" + pkg_failed=yes fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - unset ac_cv_search_lsb_launch + else + pkg_failed=untried fi +if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes fi + else + pkg_failed=untried fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 -$as_echo_n "checking for library containing lsb_launch... " >&6; } -if ${ac_cv_search_lsb_launch+:} false; then : - $as_echo_n "(cached) " >&6 + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + else + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lsb_launch (); -int -main () -{ -return lsb_launch (); - ; - return 0; -} -_ACEOF -for ac_lib in '' bat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lsb_launch=$ac_res + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lsb_launch+:} false; then : - break + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 fi -done -if ${ac_cv_search_lsb_launch+:} false; then : else - ac_cv_search_lsb_launch=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS + CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS + CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" + +cat >>confdefs.h <<_ACEOF +#define CRAY_WLM_DETECT 1 +_ACEOF + + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 -$as_echo "$ac_cv_search_lsb_launch" >&6; } -ac_res=$ac_cv_search_lsb_launch -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + else - opal_check_package_lib_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 +$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 +$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - unset ac_cv_search_lsb_launch -fi fi + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 +$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } + + if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : + CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS + CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. @@ -195249,7 +214752,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -195268,16 +214771,145 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + ompi_summary_section=$(echo Resource Managers | tr ' ' '_') + ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + if test "$opal_check_cray_alps_happy" = "yes"; then : + odls_alps_LDFLAGS="$odls_alps_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" + odls_alps_CPPFLAGS="$odls_alps_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" + odls_alps_LIBS="$odls_alps_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + odls_alps_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + odls_alps_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + odls_alps_happy="yes" +else + odls_alps_happy="no" +fi + + + if test "$odls_alps_happy" = "yes"; then : + should_build=$should_build + + + +else + should_build=0 +fi + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/odls/alps/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components alps" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components alps" + else + if test "odls" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/odls/alps/lib${ORTE_LIB_PREFIX}mca_odls_alps.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/odls/alps/libmca_odls_alps.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_odls_alps_component;" >> $outfile.extern + echo " &mca_odls_alps_component, " >> $outfile.struct + static_components="$static_components alps" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component odls:alps can compile" >&5 +$as_echo_n "checking if MCA component odls:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_odls" = "alps" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_odls_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** odls component alps was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_odls" = "alps" ; then +as_fn_error $? "*** odls component alps was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$odls_alps_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -195290,7 +214922,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -195309,7 +214941,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -195317,276 +214949,187 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libbat requires libnl v1 or v3" >&5 -$as_echo_n "checking if libbat requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void lsb_launch (void); -int main(int argc, char *argv[]) { - lsb_launch (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:195344: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:195351: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" + for arg in $odls_alps_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" + done fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib bat" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib bat" >&2;} - + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} - - libnl_sane=0 fi + done - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} - - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs bat" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Check the ending condition + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter +else - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Done; do the assignment + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + for arg in $odls_alps_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - + done fi - - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} - - libnl_sane=0 + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_libnlv3_libs="$opal_libnlv3_libs bat" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Check the ending condition + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter +fi + if test "$odls_alps_WRAPPER_EXTRA_LIBS" = ""; then : - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Done; do the assignment + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 + for arg in $odls_alps_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - + done fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done # Unwind the index @@ -195610,54 +215153,64 @@ done - ;; - esac +else - opal_check_package_libnl_check_ok=$opal_libnl_sane - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_lsb_launch" != "no" && - test "$ac_cv_search_lsb_launch" != "none required"; then : - orte_check_lsf_LIBS="$ac_cv_search_lsb_launch $ls_info_lsf_LIBS $yp_all_nsl_LIBS" -else - orte_check_lsf_LIBS="$ls_info_lsf_LIBS $yp_all_nsl_LIBS" + for arg in $odls_alps_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -195681,31 +215234,17 @@ done - - if test "$opal_check_package_happy" = "yes"; then : - orte_check_lsf_happy="yes" -else - orte_check_lsf_CPPFLAGS="$opal_check_package_orte_check_lsf_orig_CPPFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - orte_check_lsf_LIBS="$opal_check_package_orte_check_lsf_orig_LIBS" - orte_check_lsf_happy="no" -fi - - CPPFLAGS="$opal_check_package_orte_check_lsf_save_CPPFLAGS" - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - LIBS="$opal_check_package_orte_check_lsf_save_LIBS" - fi - CPPFLAGS="$orte_check_lsf_ess_lsf_save_CPPFLAGS" - LDFLAGS="$orte_check_lsf_ess_lsf_save_LDFLAGS" - LIBS="$orte_check_lsf_ess_lsf_save_LIBS" - - -else - orte_check_lsf_happy=no -fi + fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$odls_alps_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -195718,7 +215257,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -195737,7 +215276,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -195745,20 +215284,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="LSF: $orte_check_lsf_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + for arg in $odls_alps_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done # Unwind the index @@ -195782,39 +215325,189 @@ done +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring odls_alps_WRAPPER_EXTRA_CPPFLAGS ($odls_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring odls_alps_WRAPPER_EXTRA_CPPFLAGS ($odls_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component odls:alps can compile" >&5 +$as_echo_n "checking if MCA component odls:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_odls" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_odls" ; then + if test "$DIRECT_odls" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components alps" +fi + + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_orte_odls_alps_DSO=1 +else + BUILD_orte_odls_alps_DSO=0 +fi + if test "$BUILD_orte_odls_alps_DSO" = "1"; then + MCA_BUILD_orte_odls_alps_DSO_TRUE= + MCA_BUILD_orte_odls_alps_DSO_FALSE='#' +else + MCA_BUILD_orte_odls_alps_DSO_TRUE='#' + MCA_BUILD_orte_odls_alps_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + + + + + opal_show_subsubsubtitle "MCA component odls:default (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/orte/mca/odls/default" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_odls" ; then + if test "$DIRECT_odls" = "default" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_odls" = "1"; then : + want_component=0 +fi + if test "$DISABLE_odls_default" = "1"; then : + want_component=0 +fi + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 fi - if test "$orte_check_lsf_happy" = "yes"; then : - ess_lsf_LIBS="$ess_lsf_LIBS $orte_check_lsf_LIBS" - ess_lsf_LDFLAGS="$ess_lsf_LDFLAGS $orte_check_lsf_LDFLAGS" - ess_lsf_CPPFLAGS="$ess_lsf_CPPFLAGS $orte_check_lsf_CPPFLAGS" - # add the LSF libraries to static builds as they are required - ess_lsf_WRAPPER_EXTRA_LDFLAGS=$ess_lsf_LDFLAGS - ess_lsf_WRAPPER_EXTRA_LIBS=$ess_lsf_LIBS - ess_lsf_good=1 + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + SHARED_FRAMEWORK="$DSO_odls" + SHARED_COMPONENT="$DSO_odls_default" + + STATIC_FRAMEWORK="$STATIC_odls" + STATIC_COMPONENT="$STATIC_odls_default" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component odls:default compile mode" >&5 +$as_echo_n "checking for MCA component odls:default compile mode... " >&6; } + if test "$DIRECT_odls" = "default" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + + # try to configure the component + + ac_config_files="$ac_config_files orte/mca/odls/default/Makefile" + + + ac_fn_c_check_func "$LINENO" "fork" "ac_cv_func_fork" +if test "x$ac_cv_func_fork" = xyes; then : + odls_default_happy="yes" else - if test ! -z "$with_lsf" && test "$with_lsf" != "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LSF support requested (via --with-lsf) but not found." >&5 -$as_echo "$as_me: WARNING: LSF support requested (via --with-lsf) but not found." >&2;} - as_fn_error $? "Aborting." "$LINENO" 5 -fi - ess_lsf_good=0 + odls_default_happy="no" fi - # if check worked, set wrapper flags if so. - # Evaluate succeed / fail - if test "$ess_lsf_good" = "1"; then : + if test "$odls_default_happy" = "yes"; then : should_build=$should_build else should_build=0 fi - # set build flags to use in makefile - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -195824,45 +215517,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/ess/lsf/post_configure.sh" + infile="$srcdir/orte/mca/odls/default/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components lsf" + all_components="$all_components default" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components lsf" + dso_components="$dso_components default" else - if test "ess" = "common"; then + if test "odls" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/ess/lsf/lib${ORTE_LIB_PREFIX}mca_ess_lsf.la $static_ltlibs" + static_ltlibs="mca/odls/default/lib${ORTE_LIB_PREFIX}mca_odls_default.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ess/lsf/libmca_ess_lsf.la $static_ltlibs" + static_ltlibs="mca/odls/default/libmca_odls_default.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_ess_lsf_component;" >> $outfile.extern - echo " &mca_ess_lsf_component, " >> $outfile.struct - static_components="$static_components lsf" + echo "extern const mca_base_component_t mca_odls_default_component;" >> $outfile.extern + echo " &mca_odls_default_component, " >> $outfile.struct + static_components="$static_components default" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:lsf can compile" >&5 -$as_echo_n "checking if MCA component ess:lsf can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component odls:default can compile" >&5 +$as_echo_n "checking if MCA component odls:default can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_ess" = "lsf" ; then + if test "$DIRECT_odls" = "default" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" + str="MCA_orte_odls_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** ess component lsf was supposed to be direct-called, but +as_fn_error $? "*** odls component default was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -195870,8 +215563,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ess" = "lsf" ; then -as_fn_error $? "*** ess component lsf was supposed to be direct-called, but + if test "$DIRECT_odls" = "default" ; then +as_fn_error $? "*** odls component default was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -195886,7 +215579,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$ess_lsf_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$odls_default_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -195926,7 +215619,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_lsf_LDFLAGS; do + for arg in $odls_default_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -196007,7 +215700,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_lsf_WRAPPER_EXTRA_LDFLAGS; do + for arg in $odls_default_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -196049,7 +215742,7 @@ fi - if test "$ess_lsf_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$odls_default_WRAPPER_EXTRA_LIBS" = ""; then : @@ -196089,7 +215782,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_lsf_LIBS; do + for arg in $odls_default_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -196170,7 +215863,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_lsf_WRAPPER_EXTRA_LIBS; do + for arg in $odls_default_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -196218,7 +215911,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$ess_lsf_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$odls_default_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -196261,7 +215954,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_lsf_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $odls_default_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -196304,32 +215997,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_lsf_WRAPPER_EXTRA_CPPFLAGS ($ess_lsf_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring ess_lsf_WRAPPER_EXTRA_CPPFLAGS ($ess_lsf_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring odls_default_WRAPPER_EXTRA_CPPFLAGS ($odls_default_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring odls_default_WRAPPER_EXTRA_CPPFLAGS ($odls_default_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:lsf can compile" >&5 -$as_echo_n "checking if MCA component ess:lsf can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component odls:default can compile" >&5 +$as_echo_n "checking if MCA component odls:default can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_ess" = "lsf" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lsf\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"lsf\" failed to configure properly" >&2;} + if test "$with_odls" = "default" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"default\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "lsf" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lsf\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"lsf\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_odls" ; then + if test "$DIRECT_odls" = "default" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"default\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -196337,23 +216030,23 @@ fi # add component to all component list - all_components="$all_components lsf" + all_components="$all_components default" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_orte_ess_lsf_DSO=1 + BUILD_orte_odls_default_DSO=1 else - BUILD_orte_ess_lsf_DSO=0 + BUILD_orte_odls_default_DSO=0 fi - if test "$BUILD_orte_ess_lsf_DSO" = "1"; then - MCA_BUILD_orte_ess_lsf_DSO_TRUE= - MCA_BUILD_orte_ess_lsf_DSO_FALSE='#' + if test "$BUILD_orte_odls_default_DSO" = "1"; then + MCA_BUILD_orte_odls_default_DSO_TRUE= + MCA_BUILD_orte_odls_default_DSO_FALSE='#' else - MCA_BUILD_orte_ess_lsf_DSO_TRUE='#' - MCA_BUILD_orte_ess_lsf_DSO_FALSE= + MCA_BUILD_orte_odls_default_DSO_TRUE='#' + MCA_BUILD_orte_odls_default_DSO_FALSE= fi @@ -196369,13 +216062,13 @@ - opal_show_subsubsubtitle "MCA component ess:slurm (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component odls:pspawn (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/orte/mca/ess/slurm" + component_path="$srcdir/orte/mca/odls/pspawn" want_component=0 # build if: @@ -196407,8 +216100,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "slurm" ; then + if test ! -z "$DIRECT_odls" ; then + if test "$DIRECT_odls" = "pspawn" ; then want_component=1 else want_component=0 @@ -196417,10 +216110,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_ess" = "1"; then : + if test "$DISABLE_odls" = "1"; then : want_component=0 fi - if test "$DISABLE_ess_slurm" = "1"; then : + if test "$DISABLE_odls_pspawn" = "1"; then : want_component=0 fi @@ -196433,11 +216126,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_ess" - SHARED_COMPONENT="$DSO_ess_slurm" + SHARED_FRAMEWORK="$DSO_odls" + SHARED_COMPONENT="$DSO_odls_pspawn" - STATIC_FRAMEWORK="$STATIC_ess" - STATIC_COMPONENT="$STATIC_ess_slurm" + STATIC_FRAMEWORK="$STATIC_odls" + STATIC_COMPONENT="$STATIC_odls_pspawn" shared_mode_override=static @@ -196455,9 +216148,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:slurm compile mode" >&5 -$as_echo_n "checking for MCA component ess:slurm compile mode... " >&6; } - if test "$DIRECT_ess" = "slurm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component odls:pspawn compile mode" >&5 +$as_echo_n "checking for MCA component odls:pspawn compile mode... " >&6; } + if test "$DIRECT_odls" = "pspawn" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -196468,912 +216161,23 @@ # try to configure the component - ac_config_files="$ac_config_files orte/mca/ess/slurm/Makefile" - - - - if test -z "$orte_check_slurm_happy" ; then - -# Check whether --with-slurm was given. -if test "${with_slurm+set}" = set; then : - withval=$with_slurm; -fi - - - if test "$with_slurm" = "no" ; then - orte_check_slurm_happy="no" - elif test "$with_slurm" = "" ; then - # unless user asked, only build slurm component on linux, AIX, - # and OS X systems (these are the platforms that SLURM - # supports) - case $host in - *-linux*|*-aix*|*-apple-darwin*) - orte_check_slurm_happy="yes" - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SLURM srun in PATH" >&5 -$as_echo_n "checking for SLURM srun in PATH... " >&6; } - -# 1 is the variable name to do "which" on -# 2 is the variable name to assign the return value to - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_prog opal_file opal_dir opal_sentinel; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_prog opal_file opal_dir opal_sentinel\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - -opal_prog=srun - -IFS_SAVE=$IFS -IFS="$PATH_SEPARATOR" -for opal_dir in $PATH; do - if test -x "$opal_dir/$opal_prog"; then - ORTE_CHECK_SLURM_SRUN="$opal_dir/$opal_prog" - break - fi -done -IFS=$IFS_SAVE - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - if test "$ORTE_CHECK_SLURM_SRUN" = ""; then - orte_check_slurm_happy="no" - else - orte_check_slurm_happy="yes" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_slurm_happy" >&5 -$as_echo "$orte_check_slurm_happy" >&6; } - ;; - esac - else - orte_check_slurm_happy="yes" - fi - - if test "$orte_check_slurm_happy" = "yes"; then : - ac_fn_c_check_func "$LINENO" "fork" "ac_cv_func_fork" -if test "x$ac_cv_func_fork" = xyes; then : - orte_check_slurm_happy="yes" -else - orte_check_slurm_happy="no" -fi - -fi - - if test "$orte_check_slurm_happy" = "yes"; then : - ac_fn_c_check_func "$LINENO" "execve" "ac_cv_func_execve" -if test "x$ac_cv_func_execve" = xyes; then : - orte_check_slurm_happy="yes" -else - orte_check_slurm_happy="no" -fi - -fi - - if test "$orte_check_slurm_happy" = "yes"; then : - ac_fn_c_check_func "$LINENO" "setpgid" "ac_cv_func_setpgid" -if test "x$ac_cv_func_setpgid" = xyes; then : - orte_check_slurm_happy="yes" -else - orte_check_slurm_happy="no" -fi - -fi - - # check to see if this is a Cray nativized slurm env. - - slurm_cray_env=0 - - if test -z "$opal_check_cray_alps_happy"; then - - -# Check whether --with-alps was given. -if test "${with_alps+set}" = set; then : - withval=$with_alps; -else - with_alps=auto -fi - - - if test -f /etc/opt/cray/release/clerelease; then - cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` - else - cle_level="unknown" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 -$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } - if test "$cle_level" = "4" && test "$with_alps" != "no"; then : - - -# -# if we've gotten here, its because we are building on a CLE 4 system -# - opal_check_alps_cle4_libdir_happy="no" - opal_check_alps_cle4_dir_happy="no" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 -$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } - - -# Check whether --with-alps-libdir was given. -if test "${with_alps_libdir+set}" = set; then : - withval=$with_alps_libdir; -fi - - -# -# check to see if Open MPI is being built on a CLE 4 eslogin node -# - if test -f /etc/opt/cray/release/ESLrelease; then : - default_alps_dir="/opt/cray/xe-sysroot/default/usr" -else - default_alps_dir="/usr" -fi - - if test -z "$with_alps_libdir"; then : - if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : - if test -d "$with_alps_libdir/lib64"; then : - opal_check_alps_libdir="$with_alps_libdir/lib64" -else - opal_check_alps_libdir="$with_alps_libdir/lib" -fi -else - opal_check_alps_libdir="$default_alps_dir/lib/alps" -fi - -fi - - if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : - opal_check_alps_dir=$default_alps_dir -else - opal_check_alps_dir=$with_alps -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 -$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } - if test -f "$opal_check_alps_libdir/libalps.a"; then : - opal_check_alps_libdir_cle4_happy="yes" -else - opal_check_alps_libdir_cle4_happy="no", - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 -$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } - if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : - opal_check_alps_dir_cle4_happy="yes" -else - opal_check_alps_dir_cle4_happy="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : - CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" - CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - opal_check_cray_alps_happy="yes" -else - opal_check_cray_alps_happy="no" -fi - -else - if test "$with_alps" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy=no - -else - if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 -$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } - -if test -n "$CRAY_ALPSLLI_CFLAGS"; then - pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSLLI_LIBS"; then - pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` - else - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -else - CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS - CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS - CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 -$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } - -if test -n "$CRAY_ALPSUTIL_CFLAGS"; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSUTIL_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` - else - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -else - CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS - CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS - CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 -$as_echo_n "checking for CRAY_ALPS... " >&6; } - -if test -n "$CRAY_ALPS_CFLAGS"; then - pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPS_LIBS"; then - pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPS_STATIC_LIBS"; then - pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` - else - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPS_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -else - CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS - CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS - CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 -$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } - -if test -n "$CRAY_WLM_DETECT_CFLAGS"; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_WLM_DETECT_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` - else - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -else - CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS - CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS - CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" - -cat >>confdefs.h <<_ACEOF -#define CRAY_WLM_DETECT 1 -_ACEOF - - -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 -$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 -$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -fi - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 -$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } - - if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : - CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS - CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS -fi - - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - fi - - if test "$opal_check_cray_alps_happy" = "yes"; then : - orte_slurm_cray_LDFLAGS="$orte_slurm_cray_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" - orte_slurm_cray_CPPFLAGS="$orte_slurm_cray_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" - orte_slurm_cray_LIBS="$orte_slurm_cray_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - orte_slurm_cray_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - orte_slurm_cray_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - slurm_cray_env=1 -fi - - - -cat >>confdefs.h <<_ACEOF -#define SLURM_CRAY_ENV $slurm_cray_env -_ACEOF - - - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="Slurm: $orte_check_slurm_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - + ac_config_files="$ac_config_files orte/mca/odls/pspawn/Makefile" - fi - if test "$orte_check_slurm_happy" = "yes"; then : - ess_slurm_good=1 + ac_fn_c_check_func "$LINENO" "posix_spawn" "ac_cv_func_posix_spawn" +if test "x$ac_cv_func_posix_spawn" = xyes; then : + odls_pspawn_happy="yes" else - ess_slurm_good=0 + odls_pspawn_happy="no" fi - # if check worked, set wrapper flags if so. - # Evaluate succeed / fail - if test "$ess_slurm_good" = "1"; then : + if test "$odls_pspawn_happy" = "yes"; then : should_build=$should_build else should_build=0 fi - # set build flags to use in makefile - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -197383,45 +216187,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/ess/slurm/post_configure.sh" + infile="$srcdir/orte/mca/odls/pspawn/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components slurm" + all_components="$all_components pspawn" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components slurm" + dso_components="$dso_components pspawn" else - if test "ess" = "common"; then + if test "odls" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/ess/slurm/lib${ORTE_LIB_PREFIX}mca_ess_slurm.la $static_ltlibs" + static_ltlibs="mca/odls/pspawn/lib${ORTE_LIB_PREFIX}mca_odls_pspawn.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ess/slurm/libmca_ess_slurm.la $static_ltlibs" + static_ltlibs="mca/odls/pspawn/libmca_odls_pspawn.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_ess_slurm_component;" >> $outfile.extern - echo " &mca_ess_slurm_component, " >> $outfile.struct - static_components="$static_components slurm" + echo "extern const mca_base_component_t mca_odls_pspawn_component;" >> $outfile.extern + echo " &mca_odls_pspawn_component, " >> $outfile.struct + static_components="$static_components pspawn" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:slurm can compile" >&5 -$as_echo_n "checking if MCA component ess:slurm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component odls:pspawn can compile" >&5 +$as_echo_n "checking if MCA component odls:pspawn can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_ess" = "slurm" ; then + if test "$DIRECT_odls" = "pspawn" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" + str="MCA_orte_odls_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** ess component slurm was supposed to be direct-called, but +as_fn_error $? "*** odls component pspawn was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -197429,8 +216233,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ess" = "slurm" ; then -as_fn_error $? "*** ess component slurm was supposed to be direct-called, but + if test "$DIRECT_odls" = "pspawn" ; then +as_fn_error $? "*** odls component pspawn was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -197445,7 +216249,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$ess_slurm_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$odls_pspawn_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -197485,7 +216289,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_slurm_LDFLAGS; do + for arg in $odls_pspawn_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -197566,7 +216370,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_slurm_WRAPPER_EXTRA_LDFLAGS; do + for arg in $odls_pspawn_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -197608,7 +216412,7 @@ fi - if test "$ess_slurm_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$odls_pspawn_WRAPPER_EXTRA_LIBS" = ""; then : @@ -197648,7 +216452,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_slurm_LIBS; do + for arg in $odls_pspawn_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -197729,7 +216533,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_slurm_WRAPPER_EXTRA_LIBS; do + for arg in $odls_pspawn_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -197777,7 +216581,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$ess_slurm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$odls_pspawn_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -197820,7 +216624,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_slurm_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $odls_pspawn_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -197863,32 +216667,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_slurm_WRAPPER_EXTRA_CPPFLAGS ($ess_slurm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring ess_slurm_WRAPPER_EXTRA_CPPFLAGS ($ess_slurm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring odls_pspawn_WRAPPER_EXTRA_CPPFLAGS ($odls_pspawn_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring odls_pspawn_WRAPPER_EXTRA_CPPFLAGS ($odls_pspawn_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:slurm can compile" >&5 -$as_echo_n "checking if MCA component ess:slurm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component odls:pspawn can compile" >&5 +$as_echo_n "checking if MCA component odls:pspawn can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_ess" = "slurm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"slurm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"slurm\" failed to configure properly" >&2;} + if test "$with_odls" = "pspawn" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pspawn\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pspawn\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "slurm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"slurm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"slurm\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_odls" ; then + if test "$DIRECT_odls" = "pspawn" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pspawn\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pspawn\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -197896,23 +216700,23 @@ fi # add component to all component list - all_components="$all_components slurm" + all_components="$all_components pspawn" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_orte_ess_slurm_DSO=1 + BUILD_orte_odls_pspawn_DSO=1 else - BUILD_orte_ess_slurm_DSO=0 + BUILD_orte_odls_pspawn_DSO=0 fi - if test "$BUILD_orte_ess_slurm_DSO" = "1"; then - MCA_BUILD_orte_ess_slurm_DSO_TRUE= - MCA_BUILD_orte_ess_slurm_DSO_FALSE='#' + if test "$BUILD_orte_odls_pspawn_DSO" = "1"; then + MCA_BUILD_orte_odls_pspawn_DSO_TRUE= + MCA_BUILD_orte_odls_pspawn_DSO_FALSE='#' else - MCA_BUILD_orte_ess_slurm_DSO_TRUE='#' - MCA_BUILD_orte_ess_slurm_DSO_FALSE= + MCA_BUILD_orte_odls_pspawn_DSO_TRUE='#' + MCA_BUILD_orte_odls_pspawn_DSO_FALSE= fi @@ -197928,13 +216732,745 @@ - opal_show_subsubsubtitle "MCA component ess:tm (m4 configuration macro)" + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/orte/mca/odls/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component odls:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/orte/mca/odls/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_odls" ; then + if test "$DIRECT_odls" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_odls" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_odls_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_odls" + str="SHARED_COMPONENT=\$DSO_odls_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_odls" + str="STATIC_COMPONENT=\$STATIC_odls_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component odls:$component compile mode" >&5 +$as_echo_n "checking for MCA component odls:$component compile mode... " >&6; } + if test "$DIRECT_odls" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + +# +# Invoke configure in a specific subdirectory. +# +# orte/mca/odls/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="orte/mca/odls/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/orte/mca/odls/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + odls_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + odls_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/odls/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "odls" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/odls/$component/lib${ORTE_LIB_PREFIX}mca_odls_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/odls/$component/libmca_odls_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_odls_$component_component;" >> $outfile.extern + echo " &mca_odls_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component odls:$component can compile" >&5 +$as_echo_n "checking if MCA component odls:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_odls" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_odls_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** odls component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_odls" = "$component" ; then +as_fn_error $? "*** odls component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$odls_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + +str="line=\$odls_$component_WRAPPER_EXTRA_LIBS" + eval "$str" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component odls:$component can compile" >&5 +$as_echo_n "checking if MCA component odls:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_odls" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_odls" ; then + if test "$DIRECT_odls" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + fi + fi + done + +fi + + MCA_orte_odls_ALL_COMPONENTS="$all_components" + MCA_orte_odls_STATIC_COMPONENTS="$static_components" + MCA_orte_odls_DSO_COMPONENTS="$dso_components" + MCA_orte_odls_STATIC_LTLIBS="$static_ltlibs" + + + + + + + + MCA_orte_odls_ALL_SUBDIRS= + for item in $all_components ; do + MCA_orte_odls_ALL_SUBDIRS="$MCA_orte_odls_ALL_SUBDIRS mca/odls/$item" + done + + + + MCA_orte_odls_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_orte_odls_STATIC_SUBDIRS="$MCA_orte_odls_STATIC_SUBDIRS mca/odls/$item" + done + + + + MCA_orte_odls_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_orte_odls_DSO_SUBDIRS="$MCA_orte_odls_DSO_SUBDIRS mca/odls/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "odls" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS oob" + MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/oob" + MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_oob_ALL_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_oob_DSO_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_oob_STATIC_SUBDIRS)" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/oob/libmca_oob.la" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_oob_STATIC_LTLIBS)" + + opal_show_subsubtitle "Configuring MCA framework oob" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=orte/mca/oob/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files orte/mca/oob/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework oob" >&5 +$as_echo_n "checking for no configure components in framework oob... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework oob" >&5 +$as_echo_n "checking for m4 configure components in framework oob... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: alps, tcp" >&5 +$as_echo "alps, tcp" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + + # configure components that use built-in configuration scripts + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + opal_show_subsubsubtitle "MCA component oob:alps (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/orte/mca/ess/tm" + component_path="$srcdir/orte/mca/oob/alps" want_component=0 # build if: @@ -197966,8 +217502,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "tm" ; then + if test ! -z "$DIRECT_oob" ; then + if test "$DIRECT_oob" = "alps" ; then want_component=1 else want_component=0 @@ -197976,266 +217512,626 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_ess" = "1"; then : + if test "$DISABLE_oob" = "1"; then : + want_component=0 +fi + if test "$DISABLE_oob_alps" = "1"; then : want_component=0 fi - if test "$DISABLE_ess_tm" = "1"; then : - want_component=0 + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + SHARED_FRAMEWORK="$DSO_oob" + SHARED_COMPONENT="$DSO_oob_alps" + + STATIC_FRAMEWORK="$STATIC_oob" + STATIC_COMPONENT="$STATIC_oob_alps" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component oob:alps compile mode" >&5 +$as_echo_n "checking for MCA component oob:alps compile mode... " >&6; } + if test "$DIRECT_oob" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + + # try to configure the component + + ac_config_files="$ac_config_files orte/mca/oob/alps/Makefile" + + + + if test -z "$opal_check_cray_alps_happy"; then + + +# Check whether --with-alps was given. +if test "${with_alps+set}" = set; then : + withval=$with_alps; +else + with_alps=auto +fi + + + if test -f /etc/opt/cray/release/clerelease; then + cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` + else + cle_level="unknown" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 +$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } + if test "$cle_level" = "4" && test "$with_alps" != "no"; then : + + +# +# if we've gotten here, its because we are building on a CLE 4 system +# + opal_check_alps_cle4_libdir_happy="no" + opal_check_alps_cle4_dir_happy="no" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 +$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } + + +# Check whether --with-alps-libdir was given. +if test "${with_alps_libdir+set}" = set; then : + withval=$with_alps_libdir; +fi + + +# +# check to see if Open MPI is being built on a CLE 4 eslogin node +# + if test -f /etc/opt/cray/release/ESLrelease; then : + default_alps_dir="/opt/cray/xe-sysroot/default/usr" +else + default_alps_dir="/usr" +fi + + if test -z "$with_alps_libdir"; then : + if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : + if test -d "$with_alps_libdir/lib64"; then : + opal_check_alps_libdir="$with_alps_libdir/lib64" +else + opal_check_alps_libdir="$with_alps_libdir/lib" +fi +else + opal_check_alps_libdir="$default_alps_dir/lib/alps" +fi + +fi + + if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : + opal_check_alps_dir=$default_alps_dir +else + opal_check_alps_dir=$with_alps +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 +$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } + if test -f "$opal_check_alps_libdir/libalps.a"; then : + opal_check_alps_libdir_cle4_happy="yes" +else + opal_check_alps_libdir_cle4_happy="no", + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 +$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } + if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : + opal_check_alps_dir_cle4_happy="yes" +else + opal_check_alps_dir_cle4_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : + CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" + CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + opal_check_cray_alps_happy="yes" +else + opal_check_cray_alps_happy="no" +fi + +else + if test "$with_alps" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy=no + oob_alps_happy="no" +else + if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 +$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } + +if test -n "$CRAY_ALPSLLI_CFLAGS"; then + pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSLLI_LIBS"; then + pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed +if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - should_build=0 + pkg_failed=yes +fi + else + pkg_failed=untried fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_ess" - SHARED_COMPONENT="$DSO_ess_tm" - - STATIC_FRAMEWORK="$STATIC_ess" - STATIC_COMPONENT="$STATIC_ess_tm" - - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:tm compile mode" >&5 -$as_echo_n "checking for MCA component ess:tm compile mode... " >&6; } - if test "$DIRECT_ess" = "tm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` + else + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 - # try to configure the component + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi - ac_config_files="$ac_config_files orte/mca/ess/tm/Makefile" +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi +else + CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS + CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS + CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 +$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } - if test -z $orte_check_tm_happy ; then +if test -n "$CRAY_ALPSUTIL_CFLAGS"; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSUTIL_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in orte_check_tm_found orte_check_tm_dir orte_check_tm_pbs_config orte_check_tm_LDFLAGS_save orte_check_tm_CPPFLAGS_save orte_check_tm_LIBS_save; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` + else + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"orte_check_tm_found orte_check_tm_dir orte_check_tm_pbs_config orte_check_tm_LDFLAGS_save orte_check_tm_CPPFLAGS_save orte_check_tm_LIBS_save\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi -# Check whether --with-tm was given. -if test "${with_tm+set}" = set; then : - withval=$with_tm; +else + CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS + CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS + CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-tm value" >&5 -$as_echo_n "checking --with-tm value... " >&6; } - if test "$with_tm" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-tm)" >&5 -$as_echo "simple no (specified --without-tm)" >&6; } -else - if test "$with_tm" = "yes" || test "x$with_tm" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 +$as_echo_n "checking for CRAY_ALPS... " >&6; } + +if test -n "$CRAY_ALPS_CFLAGS"; then + pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - if test ! -d "$with_tm"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_tm not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_tm not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_LIBS"; then + pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - if test "x`ls $with_tm/include/tm.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_tm/include/tm.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_tm/include/tm.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_STATIC_LIBS"; then + pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_tm)" >&5 -$as_echo "sanity check ok ($with_tm)" >&6; } - + pkg_failed=yes +fi + else + pkg_failed=untried fi -fi +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` + else + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPS_PKG_ERRORS" >&5 - + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 fi +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi - orte_check_tm_found=no - if test "$with_tm" = "no"; then : - orte_check_tm_happy="no" -else - orte_check_tm_happy="yes" - if test ! -z "$with_tm" && test "$with_tm" != "yes"; then : - orte_check_tm_dir="$with_tm" else - orte_check_tm_dir="" -fi + CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS + CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS + CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" fi - if test "$orte_check_tm_happy" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pbs-config" >&5 -$as_echo_n "checking for pbs-config... " >&6; } - orte_check_tm_pbs_config="not found" - if test "$orte_check_tm_dir" != "" && test -d "$orte_check_tm_dir" && test -x "$orte_check_tm_dir/bin/pbs-config"; then : - orte_check_tm_pbs_config="$orte_check_tm_dir/bin/pbs-config" +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 +$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } + +if test -n "$CRAY_WLM_DETECT_CFLAGS"; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - if pbs-config --prefix >/dev/null 2>&1; then : - orte_check_tm_pbs_config="pbs-config" + pkg_failed=yes fi + else + pkg_failed=untried fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_tm_pbs_config" >&5 -$as_echo "$orte_check_tm_pbs_config" >&6; } +if test -n "$CRAY_WLM_DETECT_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes fi - - # If we have pbs-config, get the flags we need from there and then - # do simplistic tests looking for the tm headers and symbols - - if test "$orte_check_tm_happy" = "yes" && test "$orte_check_tm_pbs_config" != "not found"; then : - orte_check_tm_CPPFLAGS=`$orte_check_tm_pbs_config --cflags` - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:198155: orte_check_tm_CPPFLAGS from pbs-config: $orte_check_tm_CPPFLAGS" >&5 + else + pkg_failed=untried +fi +if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - echo orte_check_tm_CPPFLAGS from pbs-config: $orte_check_tm_CPPFLAGS >&5 + pkg_failed=yes +fi + else + pkg_failed=untried fi +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + else + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in orte_check_tm_flags; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"orte_check_tm_flags\"" - eval $opal_str - unset opal_str +else + CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS + CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS + CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +cat >>confdefs.h <<_ACEOF +#define CRAY_WLM_DETECT 1 +_ACEOF - orte_check_tm_flags=`$orte_check_tm_pbs_config --libs` - for orte_check_tm_val in $orte_check_tm_flags; do - if test "`echo $orte_check_tm_val | cut -c1-2`" = "-l"; then - if test "LDFLAGS" = "LIBS"; then - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS $orte_check_tm_val" - fi - else - if test "LDFLAGS" = "LDFLAGS"; then - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS $orte_check_tm_val" - fi - fi - done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 +$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 +$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +fi +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 +$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:198236: orte_check_tm_LDFLAGS from pbs-config: $orte_check_tm_LDFLAGS" >&5 -else - echo orte_check_tm_LDFLAGS from pbs-config: $orte_check_tm_LDFLAGS >&5 + if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : + CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS + CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS fi @@ -198250,7 +218146,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in orte_check_tm_flags; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -198269,25 +218165,29 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"orte_check_tm_flags\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - orte_check_tm_flags=`$orte_check_tm_pbs_config --libs` - for orte_check_tm_val in $orte_check_tm_flags; do - if test "`echo $orte_check_tm_val | cut -c1-2`" = "-l"; then - if test "LIBS" = "LIBS"; then - orte_check_tm_LIBS="$orte_check_tm_LIBS $orte_check_tm_val" - fi + + ompi_summary_section=$(echo Resource Managers | tr ' ' '_') + ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section else - if test "LIBS" = "LDFLAGS"; then - orte_check_tm_LIBS="$orte_check_tm_LIBS $orte_check_tm_val" - fi + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" fi - done + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -198310,58 +218210,100 @@ done + fi -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:198317: orte_check_tm_LIBS from pbs-config: $orte_check_tm_LIBS" >&5 + if test "$opal_check_cray_alps_happy" = "yes"; then : + oob_alps_LDFLAGS="$oob_alps_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" + oob_alps_CPPFLAGS="$oob_alps_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" + oob_alps_LIBS="$oob_alps_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + oob_alps_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + oob_alps_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + oob_alps_happy="yes" else - echo orte_check_tm_LIBS from pbs-config: $orte_check_tm_LIBS >&5 + oob_alps_happy="no" fi - # Now that we supposedly have the right flags, try them out. - orte_check_tm_CPPFLAGS_save="$CPPFLAGS" - orte_check_tm_LDFLAGS_save="$LDFLAGS" - orte_check_tm_LIBS_save="$LIBS" + if test "$oob_alps_happy" = "yes"; then : + should_build=$should_build - CPPFLAGS="$CPPFLAGS $orte_check_tm_CPPFLAGS" - LIBS="$LIBS $orte_check_tm_LIBS" - LDFLAGS="$LDFLAGS $orte_check_tm_LDFLAGS" - ac_fn_c_check_header_mongrel "$LINENO" "tm.h" "ac_cv_header_tm_h" "$ac_includes_default" -if test "x$ac_cv_header_tm_h" = xyes; then : - ac_fn_c_check_func "$LINENO" "tm_finalize" "ac_cv_func_tm_finalize" -if test "x$ac_cv_func_tm_finalize" = xyes; then : - orte_check_tm_found="yes" -fi +else + should_build=0 fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1"; then : - CPPFLAGS="$orte_check_tm_CPPFLAGS_save" - LDFLAGS="$orte_check_tm_LDFLAGS_save" - LIBS="$orte_check_tm_LIBS_save" -fi - # If we don't have pbs-config, then we have to look around - # manually. - # Note that Torque 2.1.0 changed the name of their back-end - # library to "libtorque". So we have to check for both libpbs and - # libtorque. First, check for libpbs. + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/oob/alps/post_configure.sh" - orte_check_package_ess_tm_save_CPPFLAGS="$CPPFLAGS" - orte_check_package_ess_tm_save_LDFLAGS="$LDFLAGS" - orte_check_package_ess_tm_save_LIBS="$LIBS" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components alps" - if test "$orte_check_tm_found" = "no"; then : - if test "$orte_check_tm_happy" = "yes"; then : + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components alps" + else + if test "oob" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/oob/alps/lib${ORTE_LIB_PREFIX}mca_oob_alps.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/oob/alps/libmca_oob_alps.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_oob_alps_component;" >> $outfile.extern + echo " &mca_oob_alps_component, " >> $outfile.struct + static_components="$static_components alps" + fi - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component oob:alps can compile" >&5 +$as_echo_n "checking if MCA component oob:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_oob" = "alps" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_oob_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** oob component alps was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_oob" = "alps" ; then +as_fn_error $? "*** oob component alps was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$oob_alps_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -198374,7 +218316,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -198393,399 +218335,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_tm_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $orte_check_tm_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in tm.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "tm.h" "ac_cv_header_tm_h" "$ac_includes_default" -if test "x$ac_cv_header_tm_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_TM_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_tm_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - orte_check_tm_CPPFLAGS="$orte_check_tm_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in tm.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "tm.h" "ac_cv_header_tm_h" "$ac_includes_default" -if test "x$ac_cv_header_tm_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_TM_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - orte_check_tm_found="yes" -else - orte_check_tm_found="no" -fi -else - orte_check_tm_found="yes" -fi - unset opal_check_package_header_happy - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - if test "$orte_check_tm_found" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_tm_init - opal_check_package_lib_happy="no" - if test "$orte_check_tm_libdir" != ""; then : - # libdir was specified - search only there - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$orte_check_tm_libdir" - LDFLAGS="$LDFLAGS -L$orte_check_tm_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : - -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$orte_check_tm_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : - -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : - -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -fi -fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res + for arg in $oob_alps_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break + done fi -done -if ${ac_cv_search_tm_init+:} false; then : - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -fi -fi -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -198798,7 +218397,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -198817,16 +218416,57 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $oob_alps_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$oob_alps_WRAPPER_EXTRA_LIBS" = ""; then : @@ -198839,7 +218479,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -198858,7 +218498,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -198866,303 +218506,541 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $oob_alps_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpbs requires libnl v1 or v3" >&5 -$as_echo_n "checking if libpbs requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void tm_init (void); -int main(int argc, char *argv[]) { - tm_init (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:198893: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:198900: \$? = $opal_status" >&5 else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $oob_alps_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" + done fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib pbs" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib pbs" >&2;} - + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi +fi + done - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpbs links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libpbs links to both libnl and libnl-3." >&2;} + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} - libnl_sane=0 fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pbs requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pbs requires libnl" >&2;} + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$oob_alps_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs pbs" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Loop over every token we've seen so far + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + for arg in $oob_alps_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_i="`expr $opal_i + 1`" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring oob_alps_WRAPPER_EXTRA_CPPFLAGS ($oob_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring oob_alps_WRAPPER_EXTRA_CPPFLAGS ($oob_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi -# Take all the items in the "array" and assemble them back into a -# single variable +else -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component oob:alps can compile" >&5 +$as_echo_n "checking if MCA component oob:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # If this component was requested as the default for this + # type, then abort. + if test "$with_oob" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test ! -z "$DIRECT_oob" ; then + if test "$DIRECT_oob" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi -# Done; do the assignment + # add component to all component list + all_components="$all_components alps" +fi -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_orte_oob_alps_DSO=1 +else + BUILD_orte_oob_alps_DSO=0 +fi + if test "$BUILD_orte_oob_alps_DSO" = "1"; then + MCA_BUILD_orte_oob_alps_DSO_TRUE= + MCA_BUILD_orte_oob_alps_DSO_FALSE='#' +else + MCA_BUILD_orte_oob_alps_DSO_TRUE='#' + MCA_BUILD_orte_oob_alps_DSO_FALSE= fi + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpbs requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpbs requires libnl-3" >&2;} + unset compile_mode - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs pbs" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + opal_show_subsubsubtitle "MCA component oob:tcp (m4 configuration macro)" - # Loop over every token we've seen so far + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + component_path="$srcdir/orte/mca/oob/tcp" + want_component=0 - # Check the ending condition + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_oob" ; then + if test "$DIRECT_oob" = "tcp" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - opal_done="`expr $opal_i \>= $opal_count`" + # if we were explicitly disabled, don't build :) + if test "$DISABLE_oob" = "1"; then : + want_component=0 +fi + if test "$DISABLE_oob_tcp" = "1"; then : + want_component=0 +fi - # Increment the counter + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi - opal_i="`expr $opal_i + 1`" - done + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - # If we didn't find the token, add it to the "array" + SHARED_FRAMEWORK="$DSO_oob" + SHARED_COMPONENT="$DSO_oob_tcp" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + STATIC_FRAMEWORK="$STATIC_oob" + STATIC_COMPONENT="$STATIC_oob_tcp" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" else - opal_i="`expr $opal_i - 1`" + compile_mode="static" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component oob:tcp compile mode" >&5 +$as_echo_n "checking for MCA component oob:tcp compile mode... " >&6; } + if test "$DIRECT_oob" = "tcp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # try to configure the component - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + ac_config_files="$ac_config_files orte/mca/oob/tcp/Makefile" -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # check for sockaddr_in (a good sign we have TCP) + ac_fn_c_check_type "$LINENO" "struct sockaddr_in" "ac_cv_type_struct_sockaddr_in" "$ac_includes_default +#ifdef HAVE_NETINET_IN_H +#include +#endif +" +if test "x$ac_cv_type_struct_sockaddr_in" = xyes; then : -# Clean up +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_SOCKADDR_IN 1 +_ACEOF -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 +oob_tcp_happy="yes" +else + oob_tcp_happy="no" fi + + if test "$oob_tcp_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 fi - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - rm -f conftest conftest_c.$ac_ext + if test "$should_build" = "1"; then : - opal_libnl_sane=$libnl_sane - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/oob/tcp/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components tcp" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components tcp" + else + if test "oob" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/oob/tcp/lib${ORTE_LIB_PREFIX}mca_oob_tcp.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/oob/tcp/libmca_oob_tcp.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_oob_tcp_component;" >> $outfile.extern + echo " &mca_oob_tcp_component, " >> $outfile.struct + static_components="$static_components tcp" fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component oob:tcp can compile" >&5 +$as_echo_n "checking if MCA component oob:tcp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_oob" = "tcp" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_oob_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** oob component tcp was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_oob" = "tcp" ; then +as_fn_error $? "*** oob component tcp was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$oob_tcp_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - ;; - esac + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $oob_tcp_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -199185,324 +219063,170 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_tm_init" != "no" && - test "$ac_cv_search_tm_init" != "none required"; then : - orte_check_tm_LIBS="$ac_cv_search_tm_init " -else - orte_check_tm_LIBS="" -fi - orte_check_tm_found="yes" else - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_tm_init - opal_check_package_lib_happy="no" - if test "$orte_check_tm_libdir" != ""; then : - # libdir was specified - search only there - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$orte_check_tm_libdir" - LDFLAGS="$LDFLAGS -L$orte_check_tm_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lcrypto $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$orte_check_tm_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lcrypto $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lcrypto $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res + for arg in $oob_tcp_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break + done fi -done -if ${ac_cv_search_tm_init+:} false; then : - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -fi -fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lcrypto $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" fi + if test "$oob_tcp_WRAPPER_EXTRA_LIBS" = ""; then : - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $oob_tcp_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -199515,7 +219239,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -199534,16 +219258,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $oob_tcp_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$oob_tcp_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -199556,7 +219330,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -199575,7 +219349,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -199583,303 +219357,389 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $oob_tcp_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpbs requires libnl v1 or v3" >&5 -$as_echo_n "checking if libpbs requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void tm_init (void); -int main(int argc, char *argv[]) { - tm_init (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:199610: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:199617: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring oob_tcp_WRAPPER_EXTRA_CPPFLAGS ($oob_tcp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring oob_tcp_WRAPPER_EXTRA_CPPFLAGS ($oob_tcp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib pbs" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib pbs" >&2;} - -fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component oob:tcp can compile" >&5 +$as_echo_n "checking if MCA component oob:tcp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpbs links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libpbs links to both libnl and libnl-3." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_oob" = "tcp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tcp\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tcp\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} + if test ! -z "$DIRECT_oob" ; then + if test "$DIRECT_oob" = "tcp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tcp\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tcp\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - libnl_sane=0 + # add component to all component list + all_components="$all_components tcp" fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pbs requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pbs requires libnl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} - libnl_sane=0 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_orte_oob_tcp_DSO=1 else - opal_libnlv1_libs="$opal_libnlv1_libs pbs" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + BUILD_orte_oob_tcp_DSO=0 +fi + if test "$BUILD_orte_oob_tcp_DSO" = "1"; then + MCA_BUILD_orte_oob_tcp_DSO_TRUE= + MCA_BUILD_orte_oob_tcp_DSO_FALSE='#' +else + MCA_BUILD_orte_oob_tcp_DSO_TRUE='#' + MCA_BUILD_orte_oob_tcp_DSO_FALSE= +fi - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + unset compile_mode - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + if test "1" != "0"; then : -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + for component_path in $srcdir/orte/mca/oob/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component oob:$component (need to configure)" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + component_path="$srcdir/orte/mca/oob/$component" + want_component=0 -# Clean up + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_oob" ; then + if test "$DIRECT_oob" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_oob" = "1"; then : + want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_oob_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpbs requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpbs requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs pbs" + SHARED_FRAMEWORK="$DSO_oob" + str="SHARED_COMPONENT=\$DSO_oob_$component" + eval $str -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + STATIC_FRAMEWORK="$STATIC_oob" + str="STATIC_COMPONENT=\$STATIC_oob_$component" + eval $str -# Go through each item in the variable and only keep the unique ones + shared_mode_override=static -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Loop over every token we've seen so far + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component oob:$component compile mode" >&5 +$as_echo_n "checking for MCA component oob:$component compile mode... " >&6; } + if test "$DIRECT_oob" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + if test "$should_build" = "1" ; then - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # Increment the counter + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_i="`expr $opal_i + 1`" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done - # If we didn't find the token, add it to the "array" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval +# +# Invoke configure in a specific subdirectory. +# +# orte/mca/oob/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="orte/mca/oob/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval +# +# Sanity checks +# - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} -# Done; do the assignment + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } -# Clean up + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + # + # Move into the target directory + # -fi + subdir_parent=`pwd` + cd $subdir_dir - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + # + # Make a "../" for each directory in $subdir_dir. + # - rm -f conftest conftest_c.$ac_ext + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - opal_libnl_sane=$libnl_sane + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + # + # Construct the --cache-file argument + # - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # + # Invoke the configure script in the subdirectory + # - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + # + # Go back to the topdir + # - ;; - esac + cd $subdir_parent +fi + +# +# Clean up +# - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -199901,325 +219761,105 @@ unset $opal_var done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_tm_init" != "no" && - test "$ac_cv_search_tm_init" != "none required"; then : - orte_check_tm_LIBS="$ac_cv_search_tm_init -lcrypto" -else - orte_check_tm_LIBS="-lcrypto" -fi - orte_check_tm_found="yes" -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_tm_init - opal_check_package_lib_happy="no" - if test "$orte_check_tm_libdir" != ""; then : - # libdir was specified - search only there - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$orte_check_tm_libdir" - LDFLAGS="$LDFLAGS -L$orte_check_tm_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' torque; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : - -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$orte_check_tm_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' torque; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/orte/mca/oob/all_components/post_configure.sh" + if test -f $infile; then -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -fi + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + oob_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + oob_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' torque; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -fi -fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/oob/$component/post_configure.sh" - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' torque; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "oob" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/oob/$component/lib${ORTE_LIB_PREFIX}mca_oob_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/oob/$component/libmca_oob_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_oob_$component_component;" >> $outfile.extern + echo " &mca_oob_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component oob:$component can compile" >&5 +$as_echo_n "checking if MCA component oob:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -fi -fi -fi + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_oob" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_oob_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** oob component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_oob" = "$component" ; then +as_fn_error $? "*** oob component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$oob_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -200232,7 +219872,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -200251,16 +219891,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + +str="line=\$oob_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -200273,7 +219953,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -200292,7 +219972,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -200300,361 +219980,892 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtorque requires libnl v1 or v3" >&5 -$as_echo_n "checking if libtorque requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void tm_init (void); -int main(int argc, char *argv[]) { - tm_init (); - return 0; + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component oob:$component can compile" >&5 +$as_echo_n "checking if MCA component oob:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_oob" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_oob" ; then + if test "$DIRECT_oob" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + fi + fi + done + +fi + + MCA_orte_oob_ALL_COMPONENTS="$all_components" + MCA_orte_oob_STATIC_COMPONENTS="$static_components" + MCA_orte_oob_DSO_COMPONENTS="$dso_components" + MCA_orte_oob_STATIC_LTLIBS="$static_ltlibs" + + + + + + + + MCA_orte_oob_ALL_SUBDIRS= + for item in $all_components ; do + MCA_orte_oob_ALL_SUBDIRS="$MCA_orte_oob_ALL_SUBDIRS mca/oob/$item" + done + + + + MCA_orte_oob_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_orte_oob_STATIC_SUBDIRS="$MCA_orte_oob_STATIC_SUBDIRS mca/oob/$item" + done + + + + MCA_orte_oob_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_orte_oob_DSO_SUBDIRS="$MCA_orte_oob_DSO_SUBDIRS mca/oob/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "oob" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern - this_requires_v1=0 - this_requires_v3=0 - result_msg= + unset all_components static_components dso_components outfile outfile_real -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:200327: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltorque $LIBS $orte_check_tm_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltorque $LIBS $orte_check_tm_LIBS 1>&5 2>&1 -opal_status=$? + MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS plm" + MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/plm" + MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_plm_ALL_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_plm_DSO_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_plm_STATIC_SUBDIRS)" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/plm/libmca_plm.la" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_plm_STATIC_LTLIBS)" -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:200334: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" + opal_show_subsubtitle "Configuring MCA framework plm" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=orte/mca/plm/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files orte/mca/plm/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework plm" >&5 +$as_echo_n "checking for no configure components in framework plm... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework plm" >&5 +$as_echo_n "checking for m4 configure components in framework plm... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: alps, isolated, lsf, rsh, slurm, tm" >&5 +$as_echo "alps, isolated, lsf, rsh, slurm, tm" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + + # configure components that use built-in configuration scripts + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + opal_show_subsubsubtitle "MCA component plm:alps (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/orte/mca/plm/alps" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_plm" ; then + if test "$DIRECT_plm" = "alps" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_plm" = "1"; then : + want_component=0 fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" + if test "$DISABLE_plm_alps" = "1"; then : + want_component=0 fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib torque" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib torque" >&2;} - + should_build=0 fi - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + SHARED_FRAMEWORK="$DSO_plm" + SHARED_COMPONENT="$DSO_plm_alps" - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libtorque links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libtorque links to both libnl and libnl-3." >&2;} + STATIC_FRAMEWORK="$STATIC_plm" + STATIC_COMPONENT="$STATIC_plm_alps" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtorque (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libtorque (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtorque." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtorque." >&2;} + shared_mode_override=static - libnl_sane=0 -fi + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas torque requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas torque requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plm:alps compile mode" >&5 +$as_echo_n "checking for MCA component plm:alps compile mode... " >&6; } + if test "$DIRECT_plm" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtorque (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libtorque (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtorque." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtorque." >&2;} - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs torque" + # try to configure the component -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs + ac_config_files="$ac_config_files orte/mca/plm/alps/Makefile" -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far + if test -z "$opal_check_cray_alps_happy"; then - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. +# Check whether --with-alps was given. +if test "${with_alps+set}" = set; then : + withval=$with_alps; +else + with_alps=auto +fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + if test -f /etc/opt/cray/release/clerelease; then + cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` + else + cle_level="unknown" + fi - opal_done="`expr $opal_i \>= $opal_count`" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 +$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } + if test "$cle_level" = "4" && test "$with_alps" != "no"; then : - # Increment the counter - opal_i="`expr $opal_i + 1`" - done +# +# if we've gotten here, its because we are building on a CLE 4 system +# + opal_check_alps_cle4_libdir_happy="no" + opal_check_alps_cle4_dir_happy="no" - # If we didn't find the token, add it to the "array" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 +$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done -# Take all the items in the "array" and assemble them back into a -# single variable +# Check whether --with-alps-libdir was given. +if test "${with_alps_libdir+set}" = set; then : + withval=$with_alps_libdir; +fi -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval +# +# check to see if Open MPI is being built on a CLE 4 eslogin node +# + if test -f /etc/opt/cray/release/ESLrelease; then : + default_alps_dir="/opt/cray/xe-sysroot/default/usr" +else + default_alps_dir="/usr" +fi - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test -z "$with_alps_libdir"; then : + if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : + if test -d "$with_alps_libdir/lib64"; then : + opal_check_alps_libdir="$with_alps_libdir/lib64" +else + opal_check_alps_libdir="$with_alps_libdir/lib" +fi +else + opal_check_alps_libdir="$default_alps_dir/lib/alps" +fi -# Done; do the assignment +fi -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : + opal_check_alps_dir=$default_alps_dir +else + opal_check_alps_dir=$with_alps +fi -# Clean up + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 +$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } + if test -f "$opal_check_alps_libdir/libalps.a"; then : + opal_check_alps_libdir_cle4_happy="yes" +else + opal_check_alps_libdir_cle4_happy="no", + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 +$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } + if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : + opal_check_alps_dir_cle4_happy="yes" +else + opal_check_alps_dir_cle4_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi + if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : + CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" + CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + opal_check_cray_alps_happy="yes" +else + opal_check_cray_alps_happy="no" fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libtorque requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libtorque requires libnl-3" >&2;} +else + if test "$with_alps" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy=no + plm_alps_happy="no" +else + if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtorque (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libtorque (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtorque." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtorque." >&2;} +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 +$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } - libnl_sane=0 +if test -n "$CRAY_ALPSLLI_CFLAGS"; then + pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - opal_libnlv3_libs="$opal_libnlv3_libs torque" + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSLLI_LIBS"; then + pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Loop over every token we've seen so far +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` + else + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` +else + CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS + CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS + CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi - # Check the ending condition +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 +$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } - opal_done="`expr $opal_i \>= $opal_count`" +if test -n "$CRAY_ALPSUTIL_CFLAGS"; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSUTIL_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi - # Increment the counter - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` + else + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 -# Take all the items in the "array" and assemble them back into a -# single variable + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval +else + CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS + CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS + CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 +$as_echo_n "checking for CRAY_ALPS... " >&6; } + +if test -n "$CRAY_ALPS_CFLAGS"; then + pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_LIBS"; then + pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_STATIC_LIBS"; then + pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` + else + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPS_PKG_ERRORS" >&5 + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 fi - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi +else + CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS + CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS + CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 +$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +if test -n "$CRAY_WLM_DETECT_CFLAGS"; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_WLM_DETECT_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - ;; - esac +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - opal_check_package_libnl_check_ok=$opal_libnl_sane +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + else + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +else + CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS + CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS + CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +cat >>confdefs.h <<_ACEOF +#define CRAY_WLM_DETECT 1 +_ACEOF - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_tm_init" != "no" && - test "$ac_cv_search_tm_init" != "none required"; then : - orte_check_tm_LIBS="$ac_cv_search_tm_init " -else - orte_check_tm_LIBS="" -fi - orte_check_tm_found="yes" else - orte_check_tm_found="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 +$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 +$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 fi - fi - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 +$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } + if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : + CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS + CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS fi -fi - - CPPFLAGS="$orte_check_package_ess_tm_save_CPPFLAGS" - LDFLAGS="$orte_check_package_ess_tm_save_LDFLAGS" - LIBS="$orte_check_package_ess_tm_save_LIBS" - - if test "$orte_check_tm_found" = "no" ; then - orte_check_tm_happy=no - fi @@ -200696,7 +220907,7 @@ ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="Torque: $orte_check_tm_happy" + ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) if test -z "$ompi_summary_section_current" ; then @@ -200732,59 +220943,28 @@ done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - fi - # Did we find the right stuff? - if test "$orte_check_tm_happy" = "yes"; then : - ess_tm_LIBS="$ess_tm_LIBS $orte_check_tm_LIBS" - ess_tm_LDFLAGS="$ess_tm_LDFLAGS $orte_check_tm_LDFLAGS" - ess_tm_CPPFLAGS="$ess_tm_CPPFLAGS $orte_check_tm_CPPFLAGS" - # add the TM libraries to static builds as they are required - ess_tm_WRAPPER_EXTRA_LDFLAGS=$ess_tm_LDFLAGS - ess_tm_WRAPPER_EXTRA_LIBS=$ess_tm_LIBS - ess_tm_good=1 + if test "$opal_check_cray_alps_happy" = "yes"; then : + plm_alps_LDFLAGS="$plm_alps_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" + plm_alps_CPPFLAGS="$plm_alps_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" + plm_alps_LIBS="$plm_alps_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + plm_alps_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + plm_alps_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + plm_alps_happy="yes" else - if test ! -z "$with_tm" && test "$with_tm" != "no"; then : - as_fn_error $? "TM support requested but not found. Aborting" "$LINENO" 5 -fi - orte_check_tm_happy="no" - ess_tm_good=0 + plm_alps_happy="no" fi - # if check worked, set wrapper flags if so. - # Evaluate succeed / fail - if test "$ess_tm_good" = "1"; then : + if test "$plm_alps_happy" = "yes"; then : should_build=$should_build -else - should_build=0 -fi - # set build flags to use in makefile +else + should_build=0 +fi opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -200795,45 +220975,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/ess/tm/post_configure.sh" + infile="$srcdir/orte/mca/plm/alps/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components tm" + all_components="$all_components alps" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components tm" + dso_components="$dso_components alps" else - if test "ess" = "common"; then + if test "plm" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/ess/tm/lib${ORTE_LIB_PREFIX}mca_ess_tm.la $static_ltlibs" + static_ltlibs="mca/plm/alps/lib${ORTE_LIB_PREFIX}mca_plm_alps.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ess/tm/libmca_ess_tm.la $static_ltlibs" + static_ltlibs="mca/plm/alps/libmca_plm_alps.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_ess_tm_component;" >> $outfile.extern - echo " &mca_ess_tm_component, " >> $outfile.struct - static_components="$static_components tm" + echo "extern const mca_base_component_t mca_plm_alps_component;" >> $outfile.extern + echo " &mca_plm_alps_component, " >> $outfile.struct + static_components="$static_components alps" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:tm can compile" >&5 -$as_echo_n "checking if MCA component ess:tm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:alps can compile" >&5 +$as_echo_n "checking if MCA component plm:alps can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_ess" = "tm" ; then + if test "$DIRECT_plm" = "alps" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" + str="MCA_orte_plm_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** ess component tm was supposed to be direct-called, but +as_fn_error $? "*** plm component alps was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -200841,8 +221021,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ess" = "tm" ; then -as_fn_error $? "*** ess component tm was supposed to be direct-called, but + if test "$DIRECT_plm" = "alps" ; then +as_fn_error $? "*** plm component alps was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -200857,7 +221037,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$ess_tm_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$plm_alps_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -200897,7 +221077,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_tm_LDFLAGS; do + for arg in $plm_alps_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -200978,7 +221158,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_tm_WRAPPER_EXTRA_LDFLAGS; do + for arg in $plm_alps_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -201020,7 +221200,7 @@ fi - if test "$ess_tm_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$plm_alps_WRAPPER_EXTRA_LIBS" = ""; then : @@ -201060,7 +221240,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_tm_LIBS; do + for arg in $plm_alps_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -201141,7 +221321,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_tm_WRAPPER_EXTRA_LIBS; do + for arg in $plm_alps_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -201189,7 +221369,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$ess_tm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$plm_alps_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -201232,7 +221412,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ess_tm_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $plm_alps_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -201275,32 +221455,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ess_tm_WRAPPER_EXTRA_CPPFLAGS ($ess_tm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring ess_tm_WRAPPER_EXTRA_CPPFLAGS ($ess_tm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring plm_alps_WRAPPER_EXTRA_CPPFLAGS ($plm_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring plm_alps_WRAPPER_EXTRA_CPPFLAGS ($plm_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:tm can compile" >&5 -$as_echo_n "checking if MCA component ess:tm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:alps can compile" >&5 +$as_echo_n "checking if MCA component plm:alps can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_ess" = "tm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tm\" failed to configure properly" >&2;} + if test "$with_plm" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "tm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tm\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_plm" ; then + if test "$DIRECT_plm" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -201308,23 +221488,23 @@ fi # add component to all component list - all_components="$all_components tm" + all_components="$all_components alps" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_orte_ess_tm_DSO=1 + BUILD_orte_plm_alps_DSO=1 else - BUILD_orte_ess_tm_DSO=0 + BUILD_orte_plm_alps_DSO=0 fi - if test "$BUILD_orte_ess_tm_DSO" = "1"; then - MCA_BUILD_orte_ess_tm_DSO_TRUE= - MCA_BUILD_orte_ess_tm_DSO_FALSE='#' + if test "$BUILD_orte_plm_alps_DSO" = "1"; then + MCA_BUILD_orte_plm_alps_DSO_TRUE= + MCA_BUILD_orte_plm_alps_DSO_FALSE='#' else - MCA_BUILD_orte_ess_tm_DSO_TRUE='#' - MCA_BUILD_orte_ess_tm_DSO_FALSE= + MCA_BUILD_orte_plm_alps_DSO_TRUE='#' + MCA_BUILD_orte_plm_alps_DSO_FALSE= fi @@ -201340,24 +221520,13 @@ - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - - if test "1" != "0"; then : - - for component_path in $srcdir/orte/mca/ess/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component ess:$component (need to configure)" + opal_show_subsubsubtitle "MCA component plm:isolated (m4 configuration macro)" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/orte/mca/ess/$component" + component_path="$srcdir/orte/mca/plm/isolated" want_component=0 # build if: @@ -201389,8 +221558,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "$component" ; then + if test ! -z "$DIRECT_plm" ; then + if test "$DIRECT_plm" = "isolated" ; then want_component=1 else want_component=0 @@ -201399,29 +221568,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_ess" = "1"; then : + if test "$DISABLE_plm" = "1"; then : + want_component=0 +fi + if test "$DISABLE_plm_isolated" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_ess_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_ess" - str="SHARED_COMPONENT=\$DSO_ess_$component" - eval $str + SHARED_FRAMEWORK="$DSO_plm" + SHARED_COMPONENT="$DSO_plm_isolated" - STATIC_FRAMEWORK="$STATIC_ess" - str="STATIC_COMPONENT=\$STATIC_ess_$component" - eval $str + STATIC_FRAMEWORK="$STATIC_plm" + STATIC_COMPONENT="$STATIC_plm_isolated" shared_mode_override=static @@ -201439,9 +221606,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ess:$component compile mode" >&5 -$as_echo_n "checking for MCA component ess:$component compile mode... " >&6; } - if test "$DIRECT_ess" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plm:isolated compile mode" >&5 +$as_echo_n "checking for MCA component plm:isolated compile mode... " >&6; } + if test "$DIRECT_plm" = "isolated" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -201449,9 +221616,97 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files orte/mca/plm/isolated/Makefile" + + + ac_fn_c_check_func "$LINENO" "fork" "ac_cv_func_fork" +if test "x$ac_cv_func_fork" = xyes; then : + plm_isolated_happy="yes" +else + plm_isolated_happy="no" +fi + + + if test "$plm_isolated_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/plm/isolated/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components isolated" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components isolated" + else + if test "plm" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/plm/isolated/lib${ORTE_LIB_PREFIX}mca_plm_isolated.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/plm/isolated/libmca_plm_isolated.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_plm_isolated_component;" >> $outfile.extern + echo " &mca_plm_isolated_component, " >> $outfile.struct + static_components="$static_components isolated" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:isolated can compile" >&5 +$as_echo_n "checking if MCA component plm:isolated can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_plm" = "isolated" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_plm_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** plm component isolated was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_plm" = "isolated" ; then +as_fn_error $? "*** plm component isolated was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$plm_isolated_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -201464,7 +221719,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -201483,7 +221738,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -201491,129 +221746,105 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# orte/mca/ess/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="orte/mca/ess/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# + for arg in $plm_isolated_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # - # Move into the target directory - # - subdir_parent=`pwd` - cd $subdir_dir +else - # - # Make a "../" for each directory in $subdir_dir. - # - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # - # Construct the --cache-file argument - # + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # - # Invoke the configure script in the subdirectory - # + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - # - # Go back to the topdir - # - cd $subdir_parent + for arg in $plm_isolated_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - -# -# Clean up -# + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -201636,105 +221867,9 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/orte/mca/ess/all_components/post_configure.sh" - if test -f $infile; then - - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - ess_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - ess_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi - - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/ess/$component/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "ess" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/ess/$component/lib${ORTE_LIB_PREFIX}mca_ess_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ess/$component/libmca_ess_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_ess_$component_component;" >> $outfile.extern - echo " &mca_ess_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:$component can compile" >&5 -$as_echo_n "checking if MCA component ess:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_ess" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_ess_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** ess component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ess" = "$component" ; then -as_fn_error $? "*** ess component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$ess_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" +fi + if test "$plm_isolated_WRAPPER_EXTRA_LIBS" = ""; then : @@ -201774,21 +221909,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $plm_isolated_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -201814,8 +221949,8 @@ unset $opal_var done -str="line=\$ess_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + +else @@ -201855,7 +221990,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $plm_isolated_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -201896,179 +222031,171 @@ done +fi + fi # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... + if test "$plm_isolated_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ess:$component can compile" >&5 -$as_echo_n "checking if MCA component ess:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_ess" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - if test ! -z "$DIRECT_ess" ; then - if test "$DIRECT_ess" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi done -fi - - MCA_orte_ess_ALL_COMPONENTS="$all_components" - MCA_orte_ess_STATIC_COMPONENTS="$static_components" - MCA_orte_ess_DSO_COMPONENTS="$dso_components" - MCA_orte_ess_STATIC_LTLIBS="$static_ltlibs" - - - - + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - MCA_orte_ess_ALL_SUBDIRS= - for item in $all_components ; do - MCA_orte_ess_ALL_SUBDIRS="$MCA_orte_ess_ALL_SUBDIRS mca/ess/$item" + for arg in $plm_isolated_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - MCA_orte_ess_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_orte_ess_STATIC_SUBDIRS="$MCA_orte_ess_STATIC_SUBDIRS mca/ess/$item" - done - - + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - MCA_orte_ess_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_orte_ess_DSO_SUBDIRS="$MCA_orte_ess_DSO_SUBDIRS mca/ess/$item" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring plm_isolated_WRAPPER_EXTRA_CPPFLAGS ($plm_isolated_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring plm_isolated_WRAPPER_EXTRA_CPPFLAGS ($plm_isolated_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "ess" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS filem" - MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/filem" - MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_filem_ALL_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_filem_DSO_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_filem_STATIC_SUBDIRS)" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/filem/libmca_filem.la" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_filem_STATIC_LTLIBS)" - - opal_show_subsubtitle "Configuring MCA framework filem" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:isolated can compile" >&5 +$as_echo_n "checking if MCA component plm:isolated can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # If this component was requested as the default for this + # type, then abort. + if test "$with_plm" = "isolated" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"isolated\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"isolated\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + if test ! -z "$DIRECT_plm" ; then + if test "$DIRECT_plm" = "isolated" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"isolated\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"isolated\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= + # add component to all component list + all_components="$all_components isolated" +fi - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=orte/mca/filem/base - as_dir=$outdir; as_fn_mkdir_p - # emit Makefile rule - ac_config_files="$ac_config_files orte/mca/filem/Makefile" + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_orte_plm_isolated_DSO=1 +else + BUILD_orte_plm_isolated_DSO=0 +fi + if test "$BUILD_orte_plm_isolated_DSO" = "1"; then + MCA_BUILD_orte_plm_isolated_DSO_TRUE= + MCA_BUILD_orte_plm_isolated_DSO_FALSE='#' +else + MCA_BUILD_orte_plm_isolated_DSO_TRUE='#' + MCA_BUILD_orte_plm_isolated_DSO_FALSE= +fi - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework filem" >&5 -$as_echo_n "checking for no configure components in framework filem... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: raw" >&5 -$as_echo "raw" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework filem" >&5 -$as_echo_n "checking for m4 configure components in framework filem... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + unset compile_mode - # run the configure logic for the no-config components - opal_show_subsubsubtitle "MCA component filem:raw (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + opal_show_subsubsubtitle "MCA component plm:lsf (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/orte/mca/filem/raw" + component_path="$srcdir/orte/mca/plm/lsf" want_component=0 # build if: @@ -202100,8 +222227,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_filem" ; then - if test "$DIRECT_filem" = "raw" ; then + if test ! -z "$DIRECT_plm" ; then + if test "$DIRECT_plm" = "lsf" ; then want_component=1 else want_component=0 @@ -202110,25 +222237,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_filem" = "1"; then : + if test "$DISABLE_plm" = "1"; then : want_component=0 fi - if test "$DISABLE_filem_raw" = "1"; then : + if test "$DISABLE_plm_lsf" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_filem" - SHARED_COMPONENT="$DSO_filem_raw" + SHARED_FRAMEWORK="$DSO_plm" + SHARED_COMPONENT="$DSO_plm_lsf" - STATIC_FRAMEWORK="$STATIC_filem" - STATIC_COMPONENT="$STATIC_filem_raw" + STATIC_FRAMEWORK="$STATIC_plm" + STATIC_COMPONENT="$STATIC_plm_lsf" shared_mode_override=static @@ -202146,9 +222275,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component filem:raw compile mode" >&5 -$as_echo_n "checking for MCA component filem:raw compile mode... " >&6; } - if test "$DIRECT_filem" = "raw" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plm:lsf compile mode" >&5 +$as_echo_n "checking for MCA component plm:lsf compile mode... " >&6; } + if test "$DIRECT_plm" = "lsf" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -202156,77 +222285,160 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + ac_config_files="$ac_config_files orte/mca/plm/lsf/Makefile" - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/filem/raw/post_configure.sh" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components raw" + if test -z "$orte_check_lsf_happy"; then : - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components raw" - else - if test "filem" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/filem/raw/lib${ORTE_LIB_PREFIX}mca_filem_raw.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/filem/raw/libmca_filem_raw.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_filem_raw_component;" >> $outfile.extern - echo " &mca_filem_raw_component, " >> $outfile.struct - static_components="$static_components raw" - fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component filem:raw can compile" >&5 -$as_echo_n "checking if MCA component filem:raw can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +# Check whether --with-lsf was given. +if test "${with_lsf+set}" = set; then : + withval=$with_lsf; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-lsf value" >&5 +$as_echo_n "checking --with-lsf value... " >&6; } + if test "$with_lsf" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-lsf)" >&5 +$as_echo "simple no (specified --without-lsf)" >&6; } +else + if test "$with_lsf" = "yes" || test "x$with_lsf" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_lsf"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_lsf not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_lsf not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_lsf/include/lsf/lsbatch.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_lsf/include/lsf/lsbatch.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_lsf/include/lsf/lsbatch.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_lsf)" >&5 +$as_echo "sanity check ok ($with_lsf)" >&6; } + +fi + + +fi + + +fi + + +fi + + +# Check whether --with-lsf-libdir was given. +if test "${with_lsf_libdir+set}" = set; then : + withval=$with_lsf_libdir; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-lsf-libdir value" >&5 +$as_echo_n "checking --with-lsf-libdir value... " >&6; } + if test "$with_lsf_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-lsf-libdir)" >&5 +$as_echo "simple no (specified --without-lsf-libdir)" >&6; } +else + if test "$with_lsf_libdir" = "yes" || test "x$with_lsf_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_lsf_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_lsf_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_lsf_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_lsf_libdir/libbat.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_lsf_libdir/libbat.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_lsf_libdir/libbat.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_lsf_libdir)" >&5 +$as_echo "sanity check ok ($with_lsf_libdir)" >&6; } + +fi + + +fi + + +fi + + +fi + + + if test "$with_lsf" != "no"; then : + + # Defaults + orte_check_lsf_dir_msg="compiler default" + orte_check_lsf_libdir_msg="linker default" + + # Save directory names if supplied + if test ! -z "$with_lsf" && test "$with_lsf" != "yes"; then : + orte_check_lsf_dir="$with_lsf" + orte_check_lsf_dir_msg="$orte_check_lsf_dir (from --with-lsf)" +fi + if test ! -z "$with_lsf_libdir" && test "$with_lsf_libdir" != "yes"; then : + orte_check_lsf_libdir="$with_lsf_libdir" + orte_check_lsf_libdir_msg="$orte_check_lsf_libdir (from --with-lsf-libdir)" +fi + + # If no directories were specified, look for LSF_LIBDIR, + # LSF_INCLUDEDIR, and/or LSF_ENVDIR. + if test -z "$orte_check_lsf_dir" && test -z "$orte_check_lsf_libdir"; then : + if test ! -z "$LSF_ENVDIR" && test -z "$LSF_LIBDIR" && test -f "$LSF_ENVDIR/lsf.conf"; then : + LSF_LIBDIR=`egrep ^LSF_LIBDIR= $LSF_ENVDIR/lsf.conf | cut -d= -f2-` +fi + if test ! -z "$LSF_ENVDIR" && test -z "$LSF_INCLUDEDIR" && test -f "$LSF_ENVDIR/lsf.conf"; then : + LSF_INCLUDEDIR=`egrep ^LSF_INCLUDEDIR= $LSF_ENVDIR/lsf.conf | cut -d= -f2-` +fi + if test ! -z "$LSF_LIBDIR"; then : + orte_check_lsf_libdir=$LSF_LIBDIR + orte_check_lsf_libdir_msg="$LSF_LIBDIR (from \$LSF_LIBDIR)" +fi + if test ! -z "$LSF_INCLUDEDIR"; then : + orte_check_lsf_dir=`dirname $LSF_INCLUDEDIR` + orte_check_lsf_dir_msg="$orte_check_lsf_dir (from \$LSF_INCLUDEDIR)" +fi +fi + + if test "$with_lsf" = "no"; then : + orte_check_lsf_happy="no" +else + orte_check_lsf_happy="yes" +fi + + orte_check_lsf_plm_lsf_save_CPPFLAGS="$CPPFLAGS" + orte_check_lsf_plm_lsf_save_LDFLAGS="$LDFLAGS" + orte_check_lsf_plm_lsf_save_LIBS="$LIBS" + + # liblsf requires yp_all, yp_get_default_domain, and ypprot_err + # on Linux, Solaris, NEC, and Sony NEWSs these are found in libnsl + # on AIX it should be in libbsd + # on HP-UX it should be in libBSD + # on IRIX < 6 it should be in libsun (IRIX 6 and later it is in libc) + # on RHEL: libnsl, libnsl2 AND libnsl2-devel are required to link libnsl to get yp_all. + if test "$orte_check_lsf_happy" = "yes"; then : - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_filem" = "raw" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_filem_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** filem component raw was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_filem" = "raw" ; then -as_fn_error $? "*** filem component raw was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$filem_raw_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -202239,7 +222451,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in LIBS_save add; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -202258,56 +222470,71 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"LIBS_save add\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` + LIBS_save=$LIBS - for arg in $filem_raw_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing yp_all" >&5 +$as_echo_n "checking for library containing yp_all... " >&6; } +if ${ac_cv_search_yp_all+:} false; then : + $as_echo_n "(cached) " >&6 else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char yp_all (); +int +main () +{ +return yp_all (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nsl bsd BSD sun; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_yp_all=$ac_res fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_yp_all+:} false; then : + break fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - +done +if ${ac_cv_search_yp_all+:} false; then : else + ac_cv_search_yp_all=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_yp_all" >&5 +$as_echo "$ac_cv_search_yp_all" >&6; } +ac_res=$ac_cv_search_yp_all +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + # Found it! See if anything was added to LIBS + add=`printf '%s\n' "$LIBS" | sed -e "s/$LIBS_save$//"` + if test -n "$add"; then : @@ -202347,21 +222574,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $filem_raw_WRAPPER_EXTRA_LDFLAGS; do + for arg in $add; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${yp_all_nsl_LIBS}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$yp_all_nsl_LIBS"; then : + yp_all_nsl_LIBS=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + yp_all_nsl_LIBS="$yp_all_nsl_LIBS $arg" fi fi done @@ -202389,7 +222616,49 @@ fi - if test "$filem_raw_WRAPPER_EXTRA_LIBS" = ""; then : + yp_all_nsl_have_yp_all=1 + orte_check_lsf_happy="yes" +else + yp_all_nsl_have_yp_all=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find yp_all. Please see https://www.open-mpi.org/faq/?category=building#build-rte-lsf for more details." >&5 +$as_echo "$as_me: WARNING: Could not find yp_all. Please see https://www.open-mpi.org/faq/?category=building#build-rte-lsf for more details." >&2;} + orte_check_lsf_happy="no" +fi + + + +cat >>confdefs.h <<_ACEOF +#define OPAL_HAVE_YP_ALL_NSL $yp_all_nsl_have_yp_all +_ACEOF + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + # liblsf requires shm_open, shm_unlink, which are in librt + if test "$orte_check_lsf_happy" = "yes"; then : + + @@ -202402,7 +222671,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in LIBS_save add; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -202421,56 +222690,71 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"LIBS_save add\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` + LIBS_save=$LIBS - for arg in $filem_raw_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing shm_open" >&5 +$as_echo_n "checking for library containing shm_open... " >&6; } +if ${ac_cv_search_shm_open+:} false; then : + $as_echo_n "(cached) " >&6 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shm_open (); +int +main () +{ +return shm_open (); + ; + return 0; +} +_ACEOF +for ac_lib in '' rt; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_shm_open=$ac_res fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_shm_open+:} false; then : + break fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - +done +if ${ac_cv_search_shm_open+:} false; then : else + ac_cv_search_shm_open=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_shm_open" >&5 +$as_echo "$ac_cv_search_shm_open" >&6; } +ac_res=$ac_cv_search_shm_open +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + # Found it! See if anything was added to LIBS + add=`printf '%s\n' "$LIBS" | sed -e "s/$LIBS_save$//"` + if test -n "$add"; then : @@ -202510,21 +222794,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $filem_raw_WRAPPER_EXTRA_LIBS; do + for arg in $add; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${shm_open_rt_LIBS}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$shm_open_rt_LIBS"; then : + shm_open_rt_LIBS=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + shm_open_rt_LIBS="$shm_open_rt_LIBS $arg" fi fi done @@ -202552,16 +222836,58 @@ fi + shm_open_rt_have_shm_open=1 + orte_check_lsf_happy="yes" +else + shm_open_rt_have_shm_open=0 + orte_check_lsf_happy="no" +fi + + + +cat >>confdefs.h <<_ACEOF +#define OPAL_HAVE_SHM_OPEN_RT $shm_open_rt_have_shm_open +_ACEOF + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$filem_raw_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + # liblsb requires liblsf - using ls_info as a test for liblsf presence + if test "$orte_check_lsf_happy" = "yes"; then : + + opal_check_package_ls_info_lsf_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_ls_info_lsf_save_LDFLAGS="$LDFLAGS" + opal_check_package_ls_info_lsf_save_LIBS="$LIBS" + + opal_check_package_ls_info_lsf_orig_CPPFLAGS="$ls_info_lsf_CPPFLAGS" + opal_check_package_ls_info_lsf_orig_LDFLAGS="$ls_info_lsf_LDFLAGS" + opal_check_package_ls_info_lsf_orig_LIBS="$ls_info_lsf_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -202574,7 +222900,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -202593,7 +222919,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -202601,227 +222927,398 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $filem_raw_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_lsf_lsf_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $orte_check_lsf_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in lsf/lsf.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "lsf/lsf.h" "ac_cv_header_lsf_lsf_h" "$ac_includes_default" +if test "x$ac_cv_header_lsf_lsf_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LSF_LSF_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_lsf_lsf_h fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + ls_info_lsf_CPPFLAGS="$ls_info_lsf_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in lsf/lsf.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "lsf/lsf.h" "ac_cv_header_lsf_lsf_h" "$ac_includes_default" +if test "x$ac_cv_header_lsf_lsf_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LSF_LSF_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done +done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_header_happy" = "yes"; then : - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # see comment above + unset ac_cv_search_ls_info + opal_check_package_lib_happy="no" + if test "$orte_check_lsf_libdir" != ""; then : + # libdir was specified - search only there + ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$orte_check_lsf_libdir" + LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 +$as_echo_n "checking for library containing ls_info... " >&6; } +if ${ac_cv_search_ls_info+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ls_info (); +int +main () +{ +return ls_info (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lsf; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ls_info=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ls_info+:} false; then : + break fi +done +if ${ac_cv_search_ls_info+:} false; then : + else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring filem_raw_WRAPPER_EXTRA_CPPFLAGS ($filem_raw_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring filem_raw_WRAPPER_EXTRA_CPPFLAGS ($filem_raw_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + ac_cv_search_ls_info=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component filem:raw can compile" >&5 -$as_echo_n "checking if MCA component filem:raw can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_filem" = "raw" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"raw\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"raw\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_filem" ; then - if test "$DIRECT_filem" = "raw" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"raw\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"raw\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components raw" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_filem_raw_DSO=1 - else - BUILD_orte_filem_raw_DSO=0 - fi - if test "$BUILD_orte_filem_raw_DSO" = "1"; then - MCA_BUILD_orte_filem_raw_DSO_TRUE= - MCA_BUILD_orte_filem_raw_DSO_FALSE='#' +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 +$as_echo "$ac_cv_search_ls_info" >&6; } +ac_res=$ac_cv_search_ls_info +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - MCA_BUILD_orte_filem_raw_DSO_TRUE='#' - MCA_BUILD_orte_filem_raw_DSO_FALSE= + opal_check_package_lib_happy="no" fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + unset ac_cv_search_ls_info +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$orte_check_lsf_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 +$as_echo_n "checking for library containing ls_info... " >&6; } +if ${ac_cv_search_ls_info+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - ac_config_files="$ac_config_files orte/mca/filem/raw/Makefile" - - - unset compile_mode - - - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ls_info (); +int +main () +{ +return ls_info (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lsf; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ls_info=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ls_info+:} false; then : + break +fi +done +if ${ac_cv_search_ls_info+:} false; then : - if test "1" != "0"; then : +else + ac_cv_search_ls_info=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 +$as_echo "$ac_cv_search_ls_info" >&6; } +ac_res=$ac_cv_search_ls_info +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - for component_path in $srcdir/orte/mca/filem/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component filem:$component (need to configure)" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + unset ac_cv_search_ls_info +fi +fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 +$as_echo_n "checking for library containing ls_info... " >&6; } +if ${ac_cv_search_ls_info+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ls_info (); +int +main () +{ +return ls_info (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lsf; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ls_info=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ls_info+:} false; then : + break +fi +done +if ${ac_cv_search_ls_info+:} false; then : +else + ac_cv_search_ls_info=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 +$as_echo "$ac_cv_search_ls_info" >&6; } +ac_res=$ac_cv_search_ls_info +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - component_path="$srcdir/orte/mca/filem/$component" - want_component=0 + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + unset ac_cv_search_ls_info +fi +fi +fi - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_filem" ; then - if test "$DIRECT_filem" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 +$as_echo_n "checking for library containing ls_info... " >&6; } +if ${ac_cv_search_ls_info+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # if we were explicitly disabled, don't build :) - if test "$DISABLE_filem" = "1"; then : - want_component=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ls_info (); +int +main () +{ +return ls_info (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lsf; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ls_info=$ac_res fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_filem_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ls_info+:} false; then : + break +fi +done +if ${ac_cv_search_ls_info+:} false; then : - if test "$want_component" = "1"; then : - should_build=1 else - should_build=0 + ac_cv_search_ls_info=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 +$as_echo "$ac_cv_search_ls_info" >&6; } +ac_res=$ac_cv_search_ls_info +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + unset ac_cv_search_ls_info +fi +fi +fi +fi - SHARED_FRAMEWORK="$DSO_filem" - str="SHARED_COMPONENT=\$DSO_filem_$component" - eval $str + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. - STATIC_FRAMEWORK="$STATIC_filem" - str="STATIC_COMPONENT=\$STATIC_filem_$component" - eval $str - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component filem:$component compile mode" >&5 -$as_echo_n "checking for MCA component filem:$component compile mode... " >&6; } - if test "$DIRECT_filem" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_libnl_sane; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - if test "$should_build" = "1" ; then + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + opal_libnl_sane=1 + case $host in + *linux*) @@ -202834,7 +223331,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -202853,7 +223350,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -202861,129 +223358,276 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# orte/mca/filem/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="orte/mca/filem/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -# -# Sanity checks -# -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if liblsf requires libnl v1 or v3" >&5 +$as_echo_n "checking if liblsf requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ls_info (void); +int main(int argc, char *argv[]) { + ls_info (); + return 0; +} +EOF - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + this_requires_v1=0 + this_requires_v3=0 + result_msg= - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:223385: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS 1>&5 2>&1 +opal_status=$? - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:223392: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } - # - # Move into the target directory - # +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib lsf" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib lsf" >&2;} - subdir_parent=`pwd` - cd $subdir_dir +fi - # - # Make a "../" for each directory in $subdir_dir. - # + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, liblsf links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, liblsf links to both libnl and libnl-3." >&2;} - # - # Construct the --cache-file argument - # + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + libnl_sane=0 +fi - # - # Invoke the configure script in the subdirectory - # + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lsf requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lsf requires libnl" >&2;} - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} + + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs lsf" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + opal_i="`expr $opal_i - 1`" fi +done - # - # Go back to the topdir - # +# Take all the items in the "array" and assemble them back into a +# single variable - cd $subdir_parent +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi -# +fi + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblsf requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblsf requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} + + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs lsf" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + # Clean up -# + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi + +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -203006,186 +223650,359 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/orte/mca/filem/all_components/post_configure.sh" - if test -f $infile; then + ;; + esac - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi + opal_check_package_libnl_check_ok=$opal_libnl_sane - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - filem_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - filem_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/filem/$component/post_configure.sh" + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" +fi - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "filem" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/filem/$component/lib${ORTE_LIB_PREFIX}mca_filem_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/filem/$component/libmca_filem_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_filem_$component_component;" >> $outfile.extern - echo " &mca_filem_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ls_info" != "no" && + test "$ac_cv_search_ls_info" != "none required"; then : + ls_info_lsf_LIBS="$ac_cv_search_ls_info $yp_all_nsl_LIBS $shm_open_rt_LIBS" +else + ls_info_lsf_LIBS="$yp_all_nsl_LIBS $shm_open_rt_LIBS" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component filem:$component can compile" >&5 -$as_echo_n "checking if MCA component filem:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_filem" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_filem_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** filem component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_filem" = "$component" ; then -as_fn_error $? "*** filem component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +else + opal_check_package_happy="no" +fi +else - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$filem_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + # see comment above + unset ac_cv_search_ls_info + opal_check_package_lib_happy="no" + if test "$orte_check_lsf_libdir" != ""; then : + # libdir was specified - search only there + ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$orte_check_lsf_libdir" + LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 +$as_echo_n "checking for library containing ls_info... " >&6; } +if ${ac_cv_search_ls_info+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ls_info (); +int +main () +{ +return ls_info (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lsf; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ls_info=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ls_info+:} false; then : + break +fi +done +if ${ac_cv_search_ls_info+:} false; then : - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +else + ac_cv_search_ls_info=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 +$as_echo "$ac_cv_search_ls_info" >&6; } +ac_res=$ac_cv_search_ls_info +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + unset ac_cv_search_ls_info +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$orte_check_lsf_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 +$as_echo_n "checking for library containing ls_info... " >&6; } +if ${ac_cv_search_ls_info+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ls_info (); +int +main () +{ +return ls_info (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lsf; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ls_info=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ls_info+:} false; then : + break +fi +done +if ${ac_cv_search_ls_info+:} false; then : - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +else + ac_cv_search_ls_info=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 +$as_echo "$ac_cv_search_ls_info" >&6; } +ac_res=$ac_cv_search_ls_info +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + unset ac_cv_search_ls_info +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 +$as_echo_n "checking for library containing ls_info... " >&6; } +if ${ac_cv_search_ls_info+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ls_info (); +int +main () +{ +return ls_info (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lsf; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ls_info=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ls_info+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg +done +if ${ac_cv_search_ls_info+:} false; then : + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + ac_cv_search_ls_info=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 +$as_echo "$ac_cv_search_ls_info" >&6; } +ac_res=$ac_cv_search_ls_info +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - done + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + unset ac_cv_search_ls_info +fi +fi +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 +$as_echo_n "checking for library containing ls_info... " >&6; } +if ${ac_cv_search_ls_info+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ls_info (); +int +main () +{ +return ls_info (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lsf; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ls_info=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ls_info+:} false; then : + break +fi +done +if ${ac_cv_search_ls_info+:} false; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +else + ac_cv_search_ls_info=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 +$as_echo "$ac_cv_search_ls_info" >&6; } +ac_res=$ac_cv_search_ls_info +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi -str="line=\$filem_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + unset ac_cv_search_ls_info +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -203198,7 +224015,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -203217,443 +224034,325 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` + opal_libnl_sane=1 + case $host in + *linux*) - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component filem:$component can compile" >&5 -$as_echo_n "checking if MCA component filem:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_filem" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - if test ! -z "$DIRECT_filem" ; then - if test "$DIRECT_filem" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi done -fi - - MCA_orte_filem_ALL_COMPONENTS="$all_components" - MCA_orte_filem_STATIC_COMPONENTS="$static_components" - MCA_orte_filem_DSO_COMPONENTS="$dso_components" - MCA_orte_filem_STATIC_LTLIBS="$static_ltlibs" - + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if liblsf requires libnl v1 or v3" >&5 +$as_echo_n "checking if liblsf requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ls_info (void); +int main(int argc, char *argv[]) { + ls_info (); + return 0; +} +EOF - MCA_orte_filem_ALL_SUBDIRS= - for item in $all_components ; do - MCA_orte_filem_ALL_SUBDIRS="$MCA_orte_filem_ALL_SUBDIRS mca/filem/$item" - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:224110: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS 1>&5 2>&1 +opal_status=$? +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:224117: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } - MCA_orte_filem_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_orte_filem_STATIC_SUBDIRS="$MCA_orte_filem_STATIC_SUBDIRS mca/filem/$item" - done +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib lsf" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib lsf" >&2;} +fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - MCA_orte_filem_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_orte_filem_DSO_SUBDIRS="$MCA_orte_filem_DSO_SUBDIRS mca/filem/$item" - done + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, liblsf links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, liblsf links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "filem" != "common"; then - cat > $outfile <&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lsf requires libnl" >&2;} -const mca_base_component_t *mca_filem_base_static_components[] = { -`cat $outfile.struct` - NULL -}; + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} -#if defined(c_plusplus) || defined(__cplusplus) -} -#endif + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs lsf" -EOF - # Only replace the header file if a) it doesn't previously - # exist, or b) the contents are different. Do this to not - # trigger recompilation of certain .c files just because the - # timestamp changed on $outfile_real (similar to the way AC - # handles AC_CONFIG_HEADER files). - diff $outfile $outfile_real > /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - unset all_components static_components dso_components outfile outfile_real +# Go through each item in the variable and only keep the unique ones - MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS grpcomm" - MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/grpcomm" - MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_grpcomm_ALL_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_grpcomm_DSO_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_grpcomm_STATIC_SUBDIRS)" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/grpcomm/libmca_grpcomm.la" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_grpcomm_STATIC_LTLIBS)" +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - opal_show_subsubtitle "Configuring MCA framework grpcomm" + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= + # Check the ending condition - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=orte/mca/grpcomm/base - as_dir=$outdir; as_fn_mkdir_p + opal_done="`expr $opal_i \>= $opal_count`" - # emit Makefile rule - ac_config_files="$ac_config_files orte/mca/grpcomm/Makefile" + # Increment the counter + opal_i="`expr $opal_i + 1`" + done - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern + # If we didn't find the token, add it to the "array" - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework grpcomm" >&5 -$as_echo_n "checking for no configure components in framework grpcomm... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: direct" >&5 -$as_echo "direct" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework grpcomm" >&5 -$as_echo_n "checking for m4 configure components in framework grpcomm... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # run the configure logic for the no-config components + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - opal_show_subsubsubtitle "MCA component grpcomm:direct (no configuration)" +# Done; do the assignment - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi - component_path="$srcdir/orte/mca/grpcomm/direct" - want_component=0 +fi - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_grpcomm" ; then - if test "$DIRECT_grpcomm" = "direct" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblsf requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblsf requires libnl-3" >&2;} - # if we were explicitly disabled, don't build :) - if test "$DISABLE_grpcomm" = "1"; then : - want_component=0 -fi - if test "$DISABLE_grpcomm_direct" = "1"; then : - want_component=0 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} - if test "$want_component" = "1"; then : - should_build=1 + libnl_sane=0 else - should_build=0 -fi + opal_libnlv3_libs="$opal_libnlv3_libs lsf" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - SHARED_FRAMEWORK="$DSO_grpcomm" - SHARED_COMPONENT="$DSO_grpcomm_direct" +# Go through each item in the variable and only keep the unique ones - STATIC_FRAMEWORK="$STATIC_grpcomm" - STATIC_COMPONENT="$STATIC_grpcomm_direct" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - shared_mode_override=static + # Loop over every token we've seen so far - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component grpcomm:direct compile mode" >&5 -$as_echo_n "checking for MCA component grpcomm:direct compile mode... " >&6; } - if test "$DIRECT_grpcomm" = "direct" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "$should_build" = "1" ; then + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/grpcomm/direct/post_configure.sh" + opal_i="`expr $opal_i + 1`" + done - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components direct" + # If we didn't find the token, add it to the "array" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components direct" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - if test "grpcomm" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/grpcomm/direct/lib${ORTE_LIB_PREFIX}mca_grpcomm_direct.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/grpcomm/direct/libmca_grpcomm_direct.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_grpcomm_direct_component;" >> $outfile.extern - echo " &mca_grpcomm_direct_component, " >> $outfile.struct - static_components="$static_components direct" + opal_i="`expr $opal_i - 1`" fi +done - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component grpcomm:direct can compile" >&5 -$as_echo_n "checking if MCA component grpcomm:direct can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +# Take all the items in the "array" and assemble them back into a +# single variable - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_grpcomm" = "direct" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_grpcomm_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** grpcomm component direct was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_grpcomm" = "direct" ; then -as_fn_error $? "*** grpcomm component direct was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$grpcomm_direct_WRAPPER_EXTRA_LDFLAGS" = ""; then : + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Clean up - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - for arg in $grpcomm_direct_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + opal_libnl_sane=$libnl_sane # Unwind the index @@ -203677,64 +224376,54 @@ done -else - + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - for arg in $grpcomm_direct_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ls_info" != "no" && + test "$ac_cv_search_ls_info" != "none required"; then : + ls_info_lsf_LIBS="$ac_cv_search_ls_info $yp_all_nsl_LIBS $shm_open_rt_LIBS" +else + ls_info_lsf_LIBS="$yp_all_nsl_LIBS $shm_open_rt_LIBS" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -203758,8 +224447,45 @@ done + + if test "$opal_check_package_happy" = "yes"; then : + orte_check_lsf_happy="yes" +else + ls_info_lsf_CPPFLAGS="$opal_check_package_ls_info_lsf_orig_CPPFLAGS" + ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" + ls_info_lsf_LIBS="$opal_check_package_ls_info_lsf_orig_LIBS" + orte_check_lsf_happy="no" fi - if test "$grpcomm_direct_WRAPPER_EXTRA_LIBS" = ""; then : + + CPPFLAGS="$opal_check_package_ls_info_lsf_save_CPPFLAGS" + LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" + LIBS="$opal_check_package_ls_info_lsf_save_LIBS" + +fi + + # test function of liblsb LSF package + if test "$orte_check_lsf_happy" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LSF dir" >&5 +$as_echo_n "checking for LSF dir... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_lsf_dir_msg" >&5 +$as_echo "$orte_check_lsf_dir_msg" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LSF library dir" >&5 +$as_echo_n "checking for LSF library dir... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_lsf_libdir_msg" >&5 +$as_echo "$orte_check_lsf_libdir_msg" >&6; } + + opal_check_package_orte_check_lsf_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_orte_check_lsf_save_LDFLAGS="$LDFLAGS" + opal_check_package_orte_check_lsf_save_LIBS="$LIBS" + + opal_check_package_orte_check_lsf_orig_CPPFLAGS="$orte_check_lsf_CPPFLAGS" + opal_check_package_orte_check_lsf_orig_LDFLAGS="$orte_check_lsf_LDFLAGS" + opal_check_package_orte_check_lsf_orig_LIBS="$orte_check_lsf_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -203772,7 +224498,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -203791,7 +224517,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -203799,139 +224525,398 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $grpcomm_direct_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_lsf_lsbatch_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $orte_check_lsf_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in lsf/lsbatch.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "lsf/lsbatch.h" "ac_cv_header_lsf_lsbatch_h" "$ac_includes_default" +if test "x$ac_cv_header_lsf_lsbatch_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LSF_LSBATCH_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_lsf_lsbatch_h fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + orte_check_lsf_CPPFLAGS="$orte_check_lsf_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in lsf/lsbatch.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "lsf/lsbatch.h" "ac_cv_header_lsf_lsbatch_h" "$ac_includes_default" +if test "x$ac_cv_header_lsf_lsbatch_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LSF_LSBATCH_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done +done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_header_happy" = "yes"; then : - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # see comment above + unset ac_cv_search_lsb_launch + opal_check_package_lib_happy="no" + if test "$orte_check_lsf_libdir" != ""; then : + # libdir was specified - search only there + orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$orte_check_lsf_libdir" + LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 +$as_echo_n "checking for library containing lsb_launch... " >&6; } +if ${ac_cv_search_lsb_launch+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lsb_launch (); +int +main () +{ +return lsb_launch (); + ; + return 0; +} +_ACEOF +for ac_lib in '' bat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lsb_launch=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lsb_launch+:} false; then : + break +fi +done +if ${ac_cv_search_lsb_launch+:} false; then : + +else + ac_cv_search_lsb_launch=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 +$as_echo "$ac_cv_search_lsb_launch" >&6; } +ac_res=$ac_cv_search_lsb_launch +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + unset ac_cv_search_lsb_launch +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$orte_check_lsf_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 +$as_echo_n "checking for library containing lsb_launch... " >&6; } +if ${ac_cv_search_lsb_launch+:} false; then : + $as_echo_n "(cached) " >&6 else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lsb_launch (); +int +main () +{ +return lsb_launch (); + ; + return 0; +} +_ACEOF +for ac_lib in '' bat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lsb_launch=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lsb_launch+:} false; then : + break +fi +done +if ${ac_cv_search_lsb_launch+:} false; then : +else + ac_cv_search_lsb_launch=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 +$as_echo "$ac_cv_search_lsb_launch" >&6; } +ac_res=$ac_cv_search_lsb_launch +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + unset ac_cv_search_lsb_launch +fi +fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 +$as_echo_n "checking for library containing lsb_launch... " >&6; } +if ${ac_cv_search_lsb_launch+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lsb_launch (); +int +main () +{ +return lsb_launch (); + ; + return 0; +} +_ACEOF +for ac_lib in '' bat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lsb_launch=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lsb_launch+:} false; then : + break +fi +done +if ${ac_cv_search_lsb_launch+:} false; then : - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +else + ac_cv_search_lsb_launch=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 +$as_echo "$ac_cv_search_lsb_launch" >&6; } +ac_res=$ac_cv_search_lsb_launch +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + unset ac_cv_search_lsb_launch +fi +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 +$as_echo_n "checking for library containing lsb_launch... " >&6; } +if ${ac_cv_search_lsb_launch+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - for arg in $grpcomm_direct_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lsb_launch (); +int +main () +{ +return lsb_launch (); + ; + return 0; +} +_ACEOF +for ac_lib in '' bat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lsb_launch=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lsb_launch+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +done +if ${ac_cv_search_lsb_launch+:} false; then : + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_cv_search_lsb_launch=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 +$as_echo "$ac_cv_search_lsb_launch" >&6; } +ac_res=$ac_cv_search_lsb_launch +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + unset ac_cv_search_lsb_launch +fi +fi fi fi - done + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_libnl_sane; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + eval $opal_str + unset opal_str -fi - - fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$grpcomm_direct_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -203944,7 +224929,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -203963,7 +224948,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -203971,390 +224956,303 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $grpcomm_direct_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libbat requires libnl v1 or v3" >&5 +$as_echo_n "checking if libbat requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void lsb_launch (void); +int main(int argc, char *argv[]) { + lsb_launch (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:224983: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:224990: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring grpcomm_direct_WRAPPER_EXTRA_CPPFLAGS ($grpcomm_direct_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring grpcomm_direct_WRAPPER_EXTRA_CPPFLAGS ($grpcomm_direct_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } - else +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib bat" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib bat" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component grpcomm:direct can compile" >&5 -$as_echo_n "checking if MCA component grpcomm:direct can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi - # If this component was requested as the default for this - # type, then abort. - if test "$with_grpcomm" = "direct" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"direct\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"direct\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - if test ! -z "$DIRECT_grpcomm" ; then - if test "$DIRECT_grpcomm" = "direct" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"direct\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"direct\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # add component to all component list - all_components="$all_components direct" - fi + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&2;} - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_grpcomm_direct_DSO=1 - else - BUILD_orte_grpcomm_direct_DSO=0 - fi - if test "$BUILD_orte_grpcomm_direct_DSO" = "1"; then - MCA_BUILD_orte_grpcomm_direct_DSO_TRUE= - MCA_BUILD_orte_grpcomm_direct_DSO_FALSE='#' -else - MCA_BUILD_orte_grpcomm_direct_DSO_TRUE='#' - MCA_BUILD_orte_grpcomm_direct_DSO_FALSE= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} + + libnl_sane=0 fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} - ac_config_files="$ac_config_files orte/mca/grpcomm/direct/Makefile" + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs bat" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - unset compile_mode +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # configure components that use built-in configuration scripts + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter + opal_i="`expr $opal_i + 1`" + done - if test "1" != "0"; then : + # If we didn't find the token, add it to the "array" - for component_path in $srcdir/orte/mca/grpcomm/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component grpcomm:$component (need to configure)" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - component_path="$srcdir/orte/mca/grpcomm/$component" - want_component=0 +# Done; do the assignment - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_grpcomm" ; then - if test "$DIRECT_grpcomm" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # if we were explicitly disabled, don't build :) - if test "$DISABLE_grpcomm" = "1"; then : - want_component=0 -fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_grpcomm_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi +# Clean up - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi +fi - SHARED_FRAMEWORK="$DSO_grpcomm" - str="SHARED_COMPONENT=\$DSO_grpcomm_$component" - eval $str + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&2;} - STATIC_FRAMEWORK="$STATIC_grpcomm" - str="STATIC_COMPONENT=\$STATIC_grpcomm_$component" - eval $str + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} - shared_mode_override=static + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs bat" - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component grpcomm:$component compile mode" >&5 -$as_echo_n "checking for MCA component grpcomm:$component compile mode... " >&6; } - if test "$DIRECT_grpcomm" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +# Go through each item in the variable and only keep the unique ones - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - if test "$should_build" = "1" ; then + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Check the ending condition - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + opal_done="`expr $opal_i \>= $opal_count`" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str + # Increment the counter - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_i="`expr $opal_i + 1`" + done + # If we didn't find the token, add it to the "array" -# -# Invoke configure in a specific subdirectory. -# -# orte/mca/grpcomm/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="orte/mca/grpcomm/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done -# -# Sanity checks -# +# Take all the items in the "array" and assemble them back into a +# single variable -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac +# Done; do the assignment - # - # Move into the target directory - # +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - subdir_parent=`pwd` - cd $subdir_dir +# Clean up - # - # Make a "../" for each directory in $subdir_dir. - # +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # +fi - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # - # Construct the --cache-file argument - # + rm -f conftest conftest_c.$ac_ext - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + opal_libnl_sane=$libnl_sane - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # - # Go back to the topdir - # + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - cd $subdir_parent -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# -# Clean up -# + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -204376,105 +225274,333 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/orte/mca/grpcomm/all_components/post_configure.sh" - if test -f $infile; then + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi +fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - grpcomm_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - grpcomm_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_lsb_launch" != "no" && + test "$ac_cv_search_lsb_launch" != "none required"; then : + orte_check_lsf_LIBS="$ac_cv_search_lsb_launch $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS" +else + orte_check_lsf_LIBS="$ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi +else + opal_check_package_happy="no" +fi +else + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/grpcomm/$component/post_configure.sh" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + # see comment above + unset ac_cv_search_lsb_launch + opal_check_package_lib_happy="no" + if test "$orte_check_lsf_libdir" != ""; then : + # libdir was specified - search only there + orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$orte_check_lsf_libdir" + LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 +$as_echo_n "checking for library containing lsb_launch... " >&6; } +if ${ac_cv_search_lsb_launch+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "grpcomm" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/grpcomm/$component/lib${ORTE_LIB_PREFIX}mca_grpcomm_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/grpcomm/$component/libmca_grpcomm_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_grpcomm_$component_component;" >> $outfile.extern - echo " &mca_grpcomm_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lsb_launch (); +int +main () +{ +return lsb_launch (); + ; + return 0; +} +_ACEOF +for ac_lib in '' bat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lsb_launch=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lsb_launch+:} false; then : + break +fi +done +if ${ac_cv_search_lsb_launch+:} false; then : - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component grpcomm:$component can compile" >&5 -$as_echo_n "checking if MCA component grpcomm:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else + ac_cv_search_lsb_launch=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 +$as_echo "$ac_cv_search_lsb_launch" >&6; } +ac_res=$ac_cv_search_lsb_launch +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_grpcomm" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_grpcomm_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** grpcomm component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_grpcomm" = "$component" ; then -as_fn_error $? "*** grpcomm component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + unset ac_cv_search_lsb_launch +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$orte_check_lsf_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 +$as_echo_n "checking for library containing lsb_launch... " >&6; } +if ${ac_cv_search_lsb_launch+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$grpcomm_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lsb_launch (); +int +main () +{ +return lsb_launch (); + ; + return 0; +} +_ACEOF +for ac_lib in '' bat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lsb_launch=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lsb_launch+:} false; then : + break +fi +done +if ${ac_cv_search_lsb_launch+:} false; then : + +else + ac_cv_search_lsb_launch=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 +$as_echo "$ac_cv_search_lsb_launch" >&6; } +ac_res=$ac_cv_search_lsb_launch +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + unset ac_cv_search_lsb_launch +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 +$as_echo_n "checking for library containing lsb_launch... " >&6; } +if ${ac_cv_search_lsb_launch+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lsb_launch (); +int +main () +{ +return lsb_launch (); + ; + return 0; +} +_ACEOF +for ac_lib in '' bat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lsb_launch=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lsb_launch+:} false; then : + break +fi +done +if ${ac_cv_search_lsb_launch+:} false; then : + +else + ac_cv_search_lsb_launch=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 +$as_echo "$ac_cv_search_lsb_launch" >&6; } +ac_res=$ac_cv_search_lsb_launch +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + unset ac_cv_search_lsb_launch +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 +$as_echo_n "checking for library containing lsb_launch... " >&6; } +if ${ac_cv_search_lsb_launch+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lsb_launch (); +int +main () +{ +return lsb_launch (); + ; + return 0; +} +_ACEOF +for ac_lib in '' bat; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lsb_launch=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lsb_launch+:} false; then : + break +fi +done +if ${ac_cv_search_lsb_launch+:} false; then : + +else + ac_cv_search_lsb_launch=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 +$as_echo "$ac_cv_search_lsb_launch" >&6; } +ac_res=$ac_cv_search_lsb_launch +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + unset ac_cv_search_lsb_launch +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -204487,7 +225613,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -204506,56 +225632,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - -str="line=\$grpcomm_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + opal_libnl_sane=1 + case $host in + *linux*) @@ -204568,7 +225654,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -204587,7 +225673,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -204595,435 +225681,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libbat requires libnl v1 or v3" >&5 +$as_echo_n "checking if libbat requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void lsb_launch (void); +int main(int argc, char *argv[]) { + lsb_launch (); + return 0; +} +EOF + this_requires_v1=0 + this_requires_v3=0 + result_msg= - fi +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:225708: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS 1>&5 2>&1 +opal_status=$? - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:225715: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib bat" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib bat" >&2;} - else +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component grpcomm:$component can compile" >&5 -$as_echo_n "checking if MCA component grpcomm:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # If this component was requested as the default for this - # type, then abort. - if test "$with_grpcomm" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - if test ! -z "$DIRECT_grpcomm" ; then - if test "$DIRECT_grpcomm" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&2;} - fi - fi - done + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} + libnl_sane=0 fi - MCA_orte_grpcomm_ALL_COMPONENTS="$all_components" - MCA_orte_grpcomm_STATIC_COMPONENTS="$static_components" - MCA_orte_grpcomm_DSO_COMPONENTS="$dso_components" - MCA_orte_grpcomm_STATIC_LTLIBS="$static_ltlibs" + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs bat" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - MCA_orte_grpcomm_ALL_SUBDIRS= - for item in $all_components ; do - MCA_orte_grpcomm_ALL_SUBDIRS="$MCA_orte_grpcomm_ALL_SUBDIRS mca/grpcomm/$item" - done + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - MCA_orte_grpcomm_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_orte_grpcomm_STATIC_SUBDIRS="$MCA_orte_grpcomm_STATIC_SUBDIRS mca/grpcomm/$item" - done + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - MCA_orte_grpcomm_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_orte_grpcomm_DSO_SUBDIRS="$MCA_orte_grpcomm_DSO_SUBDIRS mca/grpcomm/$item" + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "grpcomm" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS iof" - MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/iof" - MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_iof_ALL_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_iof_DSO_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_iof_STATIC_SUBDIRS)" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/iof/libmca_iof.la" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_iof_STATIC_LTLIBS)" - - opal_show_subsubtitle "Configuring MCA framework iof" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=orte/mca/iof/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files orte/mca/iof/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework iof" >&5 -$as_echo_n "checking for no configure components in framework iof... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: hnp, orted, tool" >&5 -$as_echo "hnp, orted, tool" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework iof" >&5 -$as_echo_n "checking for m4 configure components in framework iof... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } +done - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # run the configure logic for the no-config components + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - opal_show_subsubsubtitle "MCA component iof:hnp (no configuration)" +# Done; do the assignment - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi - component_path="$srcdir/orte/mca/iof/hnp" - want_component=0 +fi - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_iof" ; then - if test "$DIRECT_iof" = "hnp" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&2;} - # if we were explicitly disabled, don't build :) - if test "$DISABLE_iof" = "1"; then : - want_component=0 -fi - if test "$DISABLE_iof_hnp" = "1"; then : - want_component=0 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} - if test "$want_component" = "1"; then : - should_build=1 + libnl_sane=0 else - should_build=0 -fi + opal_libnlv3_libs="$opal_libnlv3_libs bat" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - SHARED_FRAMEWORK="$DSO_iof" - SHARED_COMPONENT="$DSO_iof_hnp" +# Go through each item in the variable and only keep the unique ones - STATIC_FRAMEWORK="$STATIC_iof" - STATIC_COMPONENT="$STATIC_iof_hnp" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - shared_mode_override=static + # Loop over every token we've seen so far - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component iof:hnp compile mode" >&5 -$as_echo_n "checking for MCA component iof:hnp compile mode... " >&6; } - if test "$DIRECT_iof" = "hnp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "$should_build" = "1" ; then + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/iof/hnp/post_configure.sh" + opal_i="`expr $opal_i + 1`" + done - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components hnp" + # If we didn't find the token, add it to the "array" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components hnp" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - if test "iof" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/iof/hnp/lib${ORTE_LIB_PREFIX}mca_iof_hnp.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/iof/hnp/libmca_iof_hnp.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_iof_hnp_component;" >> $outfile.extern - echo " &mca_iof_hnp_component, " >> $outfile.struct - static_components="$static_components hnp" + opal_i="`expr $opal_i - 1`" fi +done - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component iof:hnp can compile" >&5 -$as_echo_n "checking if MCA component iof:hnp can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +# Take all the items in the "array" and assemble them back into a +# single variable - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_iof" = "hnp" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_iof_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** iof component hnp was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_iof" = "hnp" ; then -as_fn_error $? "*** iof component hnp was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$iof_hnp_WRAPPER_EXTRA_LDFLAGS" = ""; then : + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Clean up - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - for arg in $iof_hnp_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + opal_libnl_sane=$libnl_sane # Unwind the index @@ -205047,65 +225974,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $iof_hnp_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -205128,65 +226000,28 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - if test "$iof_hnp_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $iof_hnp_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_lsb_launch" != "no" && + test "$ac_cv_search_lsb_launch" != "none required"; then : + orte_check_lsf_LIBS="$ac_cv_search_lsb_launch $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS" +else + orte_check_lsf_LIBS="$ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -205210,98 +226045,176 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + if test "$opal_check_package_happy" = "yes"; then : + orte_check_lsf_happy="yes" +else + orte_check_lsf_CPPFLAGS="$opal_check_package_orte_check_lsf_orig_CPPFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + orte_check_lsf_LIBS="$opal_check_package_orte_check_lsf_orig_LIBS" + orte_check_lsf_happy="no" +fi - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + CPPFLAGS="$opal_check_package_orte_check_lsf_save_CPPFLAGS" + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + LIBS="$opal_check_package_orte_check_lsf_save_LIBS" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Some versions of LSF ship with a libevent.so in their library path. + # This is _not_ a copy of Libevent, but something specific to their project. + # The Open MPI components should not need to link against LSF's libevent.so + # However, the presence of it in the linker search path can cause a problem + # if there is a system installed Libevent and Open MPI chooses the 'external' + # event component prior to this stage. + # + # Add a check here to see if we are in a scenario where the two are conflicting. + # In which case the earlier checks for successful compile of an LSF program will + # have failed with messages like: + # lib64/libevent_pthreads.so: undefined reference to `evthread_set_condition_callbacks' + # lib64/libevent_pthreads.so: undefined reference to `event_mm_malloc_' + # lib64/libevent_pthreads.so: undefined reference to `event_mm_free_' + # lib64/libevent_pthreads.so: undefined reference to `evthread_set_id_callback' + # lib64/libevent_pthreads.so: undefined reference to `evthread_set_lock_callbacks' + # Because it picked up -levent from LSF, but -levent_pthreads from Libevent. + # + # So look for a function that libevent_pthreads is looking for from libevent.so. + # If it does appears then we have the correct libevent.so, otherwise then we picked + # up the LSF version and a conflict has been detected. + # If the external libevent component used 'event_core' instead of 'event' + orte_check_lsf_event_conflict=na + # Split libs into an array, see if -levent is in that list + orte_check_lsf_libevent_present=`echo "$LIBS" | awk '{split($0, a, " "); {for (k in a) {if (a[k] == "-levent") {print a[k]}}}}' | wc -l | tr -d '[:space:]'` + # (1) LSF check must have failed above. We need to know why... + if test "$orte_check_lsf_happy" = "no"; then : + # (2) If there is a -levent in the $LIBS then that might be the problem + if test "$opal_event_external_support" = "yes" && test "$orte_check_lsf_libevent_present" != "0"; then : + if test "$orte_check_lsf_libdir" = "" ; then : + +else + LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" +fi + # Note that we do not want to set LIBS here to include -llsf since + # the check is not for an LSF library, but for the conflict with + # LDFLAGS. + # (3) Check to see if the -levent is from Libevent (check for a symbol it has) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for evthread_set_condition_callbacks in -levent" >&5 +$as_echo_n "checking for evthread_set_condition_callbacks in -levent... " >&6; } +if ${ac_cv_lib_event_evthread_set_condition_callbacks+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-levent $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - for arg in $iof_hnp_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char evthread_set_condition_callbacks (); +int +main () +{ +return evthread_set_condition_callbacks (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_event_evthread_set_condition_callbacks=yes else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_cv_lib_event_evthread_set_condition_callbacks=no fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_event_evthread_set_condition_callbacks" >&5 +$as_echo "$ac_cv_lib_event_evthread_set_condition_callbacks" >&6; } +if test "x$ac_cv_lib_event_evthread_set_condition_callbacks" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libevent conflict" >&5 +$as_echo_n "checking for libevent conflict... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: No conflict found. The correct libevent.so was linked." >&5 +$as_echo "No conflict found. The correct libevent.so was linked." >&6; } + orte_check_lsf_event_conflict=no +else + # (4) The libevent.so is not from Libevent. Warn the user. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libevent conflict" >&5 +$as_echo_n "checking for libevent conflict... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Conflict found. Detected a libevent.so that is not from Libevent." >&5 +$as_echo "Conflict found. Detected a libevent.so that is not from Libevent." >&6; } + orte_check_lsf_event_conflict=yes +fi + + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libevent conflict" >&5 +$as_echo_n "checking for libevent conflict... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: No conflict found. Internal Libevent or libevent_core is being used." >&5 +$as_echo "No conflict found. Internal Libevent or libevent_core is being used." >&6; } + orte_check_lsf_event_conflict=na +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libevent conflict" >&5 +$as_echo_n "checking for libevent conflict... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: No conflict found. LSF checks passed." >&5 +$as_echo "No conflict found. LSF checks passed." >&6; } + orte_check_lsf_event_conflict=na +fi + + if test "$orte_check_lsf_event_conflict" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ===================================================================" >&5 +$as_echo "$as_me: WARNING: ===================================================================" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Conflicting libevent.so libraries detected on the system." >&5 +$as_echo "$as_me: WARNING: Conflicting libevent.so libraries detected on the system." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: " >&5 +$as_echo "$as_me: WARNING: " >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: A system-installed Libevent library was detected and the Open MPI" >&5 +$as_echo "$as_me: WARNING: A system-installed Libevent library was detected and the Open MPI" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: build system chose to use the 'external' component expecting to" >&5 +$as_echo "$as_me: WARNING: build system chose to use the 'external' component expecting to" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: link against the Libevent in the linker search path." >&5 +$as_echo "$as_me: WARNING: link against the Libevent in the linker search path." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: If LSF is present on the system and in the default search path then" >&5 +$as_echo "$as_me: WARNING: If LSF is present on the system and in the default search path then" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: it _may be_ the source of the conflict." >&5 +$as_echo "$as_me: WARNING: it _may be_ the source of the conflict." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LSF provides a libevent.so that is not from Libevent in its" >&5 +$as_echo "$as_me: WARNING: LSF provides a libevent.so that is not from Libevent in its" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: library path. At this point the linker is attempting to resolve" >&5 +$as_echo "$as_me: WARNING: library path. At this point the linker is attempting to resolve" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libevent symbols using the LSF library because of the lack of" >&5 +$as_echo "$as_me: WARNING: Libevent symbols using the LSF library because of the lack of" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: an explicit linker path pointing to the system-installed Libevent." >&5 +$as_echo "$as_me: WARNING: an explicit linker path pointing to the system-installed Libevent." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: " >&5 +$as_echo "$as_me: WARNING: " >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: To resolve this issue either (A) explicitly pass the Libevent" >&5 +$as_echo "$as_me: WARNING: To resolve this issue either (A) explicitly pass the Libevent" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: library path on the configure line (--with-libevent-libdir), or" >&5 +$as_echo "$as_me: WARNING: library path on the configure line (--with-libevent-libdir), or" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: (B) use the internal libevent by requesting it from configure " >&5 +$as_echo "$as_me: WARNING: (B) use the internal libevent by requesting it from configure " >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: with the --with-libevent=internal option." >&5 +$as_echo "$as_me: WARNING: with the --with-libevent=internal option." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ===================================================================" >&5 +$as_echo "$as_me: WARNING: ===================================================================" >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + CPPFLAGS="$orte_check_lsf_plm_lsf_save_CPPFLAGS" + LDFLAGS="$orte_check_lsf_plm_lsf_save_LDFLAGS" + LIBS="$orte_check_lsf_plm_lsf_save_LIBS" +else + orte_check_lsf_happy=no fi - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$iof_hnp_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : @@ -205314,7 +226227,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -205333,7 +226246,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -205341,24 +226254,20 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $iof_hnp_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ompi_summary_section=$(echo Resource Managers | tr ' ' '_') + ompi_summary_line="LSF: $orte_check_lsf_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi # Unwind the index @@ -205382,205 +226291,87 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring iof_hnp_WRAPPER_EXTRA_CPPFLAGS ($iof_hnp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring iof_hnp_WRAPPER_EXTRA_CPPFLAGS ($iof_hnp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component iof:hnp can compile" >&5 -$as_echo_n "checking if MCA component iof:hnp can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_iof" = "hnp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hnp\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"hnp\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_iof" ; then - if test "$DIRECT_iof" = "hnp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hnp\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"hnp\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components hnp" - fi - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_iof_hnp_DSO=1 - else - BUILD_orte_iof_hnp_DSO=0 - fi - if test "$BUILD_orte_iof_hnp_DSO" = "1"; then - MCA_BUILD_orte_iof_hnp_DSO_TRUE= - MCA_BUILD_orte_iof_hnp_DSO_FALSE='#' -else - MCA_BUILD_orte_iof_hnp_DSO_TRUE='#' - MCA_BUILD_orte_iof_hnp_DSO_FALSE= fi - - ac_config_files="$ac_config_files orte/mca/iof/hnp/Makefile" - - - unset compile_mode - - opal_show_subsubsubtitle "MCA component iof:orted (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - - - component_path="$srcdir/orte/mca/iof/orted" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_iof" ; then - if test "$DIRECT_iof" = "orted" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_iof" = "1"; then : - want_component=0 + if test "$orte_check_lsf_happy" = "yes"; then : + plm_lsf_LIBS="$plm_lsf_LIBS $orte_check_lsf_LIBS" + plm_lsf_LDFLAGS="$plm_lsf_LDFLAGS $orte_check_lsf_LDFLAGS" + plm_lsf_CPPFLAGS="$plm_lsf_CPPFLAGS $orte_check_lsf_CPPFLAGS" + # add the LSF libraries to static builds as they are required + plm_lsf_WRAPPER_EXTRA_LDFLAGS=$plm_lsf_LDFLAGS + plm_lsf_WRAPPER_EXTRA_LIBS=$plm_lsf_LIBS + plm_lsf_good=1 +else + if test ! -z "$with_lsf" && test "$with_lsf" != "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LSF support requested (via --with-lsf) but not found." >&5 +$as_echo "$as_me: WARNING: LSF support requested (via --with-lsf) but not found." >&2;} + as_fn_error $? "Aborting." "$LINENO" 5 fi - if test "$DISABLE_iof_orted" = "1"; then : - want_component=0 + plm_lsf_good=0 fi - if test "$want_component" = "1"; then : - should_build=1 + + # if check worked, set wrapper flags if so. + # Evaluate succeed / fail + if test "$plm_lsf_good" = "1"; then : + should_build=$should_build else should_build=0 fi + # set build flags to use in makefile - SHARED_FRAMEWORK="$DSO_iof" - SHARED_COMPONENT="$DSO_iof_orted" - - STATIC_FRAMEWORK="$STATIC_iof" - STATIC_COMPONENT="$STATIC_iof_orted" - - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component iof:orted compile mode" >&5 -$as_echo_n "checking for MCA component iof:orted compile mode... " >&6; } - if test "$DIRECT_iof" = "orted" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/iof/orted/post_configure.sh" + infile="$srcdir/orte/mca/plm/lsf/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components orted" + all_components="$all_components lsf" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components orted" + dso_components="$dso_components lsf" else - if test "iof" = "common"; then + if test "plm" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/iof/orted/lib${ORTE_LIB_PREFIX}mca_iof_orted.la $static_ltlibs" + static_ltlibs="mca/plm/lsf/lib${ORTE_LIB_PREFIX}mca_plm_lsf.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/iof/orted/libmca_iof_orted.la $static_ltlibs" + static_ltlibs="mca/plm/lsf/libmca_plm_lsf.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_iof_orted_component;" >> $outfile.extern - echo " &mca_iof_orted_component, " >> $outfile.struct - static_components="$static_components orted" + echo "extern const mca_base_component_t mca_plm_lsf_component;" >> $outfile.extern + echo " &mca_plm_lsf_component, " >> $outfile.struct + static_components="$static_components lsf" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component iof:orted can compile" >&5 -$as_echo_n "checking if MCA component iof:orted can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:lsf can compile" >&5 +$as_echo_n "checking if MCA component plm:lsf can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_iof" = "orted" ; then + if test "$DIRECT_plm" = "lsf" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_iof_DIRECT_CALL_HEADER=$line" + str="MCA_orte_plm_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** iof component orted was supposed to be direct-called, but +as_fn_error $? "*** plm component lsf was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -205588,8 +226379,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_iof" = "orted" ; then -as_fn_error $? "*** iof component orted was supposed to be direct-called, but + if test "$DIRECT_plm" = "lsf" ; then +as_fn_error $? "*** plm component lsf was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -205604,7 +226395,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$iof_orted_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$plm_lsf_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -205644,7 +226435,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $iof_orted_LDFLAGS; do + for arg in $plm_lsf_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -205725,7 +226516,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $iof_orted_WRAPPER_EXTRA_LDFLAGS; do + for arg in $plm_lsf_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -205767,7 +226558,7 @@ fi - if test "$iof_orted_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$plm_lsf_WRAPPER_EXTRA_LIBS" = ""; then : @@ -205807,7 +226598,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $iof_orted_LIBS; do + for arg in $plm_lsf_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -205888,7 +226679,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $iof_orted_WRAPPER_EXTRA_LIBS; do + for arg in $plm_lsf_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -205936,7 +226727,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$iof_orted_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$plm_lsf_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -205979,7 +226770,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $iof_orted_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $plm_lsf_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -206022,69 +226813,78 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring iof_orted_WRAPPER_EXTRA_CPPFLAGS ($iof_orted_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring iof_orted_WRAPPER_EXTRA_CPPFLAGS ($iof_orted_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring plm_lsf_WRAPPER_EXTRA_CPPFLAGS ($plm_lsf_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring plm_lsf_WRAPPER_EXTRA_CPPFLAGS ($plm_lsf_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component iof:orted can compile" >&5 -$as_echo_n "checking if MCA component iof:orted can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:lsf can compile" >&5 +$as_echo_n "checking if MCA component plm:lsf can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_iof" = "orted" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"orted\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"orted\" failed to configure properly" >&2;} + if test "$with_plm" = "lsf" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lsf\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"lsf\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_iof" ; then - if test "$DIRECT_iof" = "orted" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"orted\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"orted\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_plm" ; then + if test "$DIRECT_plm" = "lsf" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lsf\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"lsf\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components orted" - fi + # add component to all component list + all_components="$all_components lsf" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_iof_orted_DSO=1 - else - BUILD_orte_iof_orted_DSO=0 - fi - if test "$BUILD_orte_iof_orted_DSO" = "1"; then - MCA_BUILD_orte_iof_orted_DSO_TRUE= - MCA_BUILD_orte_iof_orted_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_orte_plm_lsf_DSO=1 else - MCA_BUILD_orte_iof_orted_DSO_TRUE='#' - MCA_BUILD_orte_iof_orted_DSO_FALSE= + BUILD_orte_plm_lsf_DSO=0 +fi + if test "$BUILD_orte_plm_lsf_DSO" = "1"; then + MCA_BUILD_orte_plm_lsf_DSO_TRUE= + MCA_BUILD_orte_plm_lsf_DSO_FALSE='#' +else + MCA_BUILD_orte_plm_lsf_DSO_TRUE='#' + MCA_BUILD_orte_plm_lsf_DSO_FALSE= fi - ac_config_files="$ac_config_files orte/mca/iof/orted/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - opal_show_subsubsubtitle "MCA component iof:tool (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/iof/tool" + opal_show_subsubsubtitle "MCA component plm:rsh (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/orte/mca/plm/rsh" want_component=0 # build if: @@ -206116,8 +226916,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_iof" ; then - if test "$DIRECT_iof" = "tool" ; then + if test ! -z "$DIRECT_plm" ; then + if test "$DIRECT_plm" = "rsh" ; then want_component=1 else want_component=0 @@ -206126,25 +226926,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_iof" = "1"; then : + if test "$DISABLE_plm" = "1"; then : want_component=0 fi - if test "$DISABLE_iof_tool" = "1"; then : + if test "$DISABLE_plm_rsh" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_iof" - SHARED_COMPONENT="$DSO_iof_tool" + SHARED_FRAMEWORK="$DSO_plm" + SHARED_COMPONENT="$DSO_plm_rsh" - STATIC_FRAMEWORK="$STATIC_iof" - STATIC_COMPONENT="$STATIC_iof_tool" + STATIC_FRAMEWORK="$STATIC_plm" + STATIC_COMPONENT="$STATIC_plm_rsh" shared_mode_override=static @@ -206162,9 +226964,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component iof:tool compile mode" >&5 -$as_echo_n "checking for MCA component iof:tool compile mode... " >&6; } - if test "$DIRECT_iof" = "tool" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plm:rsh compile mode" >&5 +$as_echo_n "checking for MCA component plm:rsh compile mode... " >&6; } + if test "$DIRECT_plm" = "rsh" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -206172,53 +226974,149 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files orte/mca/plm/rsh/Makefile" + + + ac_fn_c_check_func "$LINENO" "fork" "ac_cv_func_fork" +if test "x$ac_cv_func_fork" = xyes; then : + plm_rsh_happy="yes" +else + plm_rsh_happy="no" +fi + + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ompi_summary_section=$(echo Resource Managers | tr ' ' '_') + ompi_summary_line="ssh/rsh: $plm_rsh_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + if test "$plm_rsh_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/iof/tool/post_configure.sh" + infile="$srcdir/orte/mca/plm/rsh/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components tool" + all_components="$all_components rsh" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components tool" + dso_components="$dso_components rsh" else - if test "iof" = "common"; then + if test "plm" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/iof/tool/lib${ORTE_LIB_PREFIX}mca_iof_tool.la $static_ltlibs" + static_ltlibs="mca/plm/rsh/lib${ORTE_LIB_PREFIX}mca_plm_rsh.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/iof/tool/libmca_iof_tool.la $static_ltlibs" + static_ltlibs="mca/plm/rsh/libmca_plm_rsh.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_iof_tool_component;" >> $outfile.extern - echo " &mca_iof_tool_component, " >> $outfile.struct - static_components="$static_components tool" + echo "extern const mca_base_component_t mca_plm_rsh_component;" >> $outfile.extern + echo " &mca_plm_rsh_component, " >> $outfile.struct + static_components="$static_components rsh" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component iof:tool can compile" >&5 -$as_echo_n "checking if MCA component iof:tool can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:rsh can compile" >&5 +$as_echo_n "checking if MCA component plm:rsh can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_iof" = "tool" ; then + if test "$DIRECT_plm" = "rsh" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_iof_DIRECT_CALL_HEADER=$line" + str="MCA_orte_plm_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** iof component tool was supposed to be direct-called, but +as_fn_error $? "*** plm component rsh was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -206226,8 +227124,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_iof" = "tool" ; then -as_fn_error $? "*** iof component tool was supposed to be direct-called, but + if test "$DIRECT_plm" = "rsh" ; then +as_fn_error $? "*** plm component rsh was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -206242,7 +227140,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$iof_tool_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$plm_rsh_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -206282,7 +227180,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $iof_tool_LDFLAGS; do + for arg in $plm_rsh_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -206363,7 +227261,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $iof_tool_WRAPPER_EXTRA_LDFLAGS; do + for arg in $plm_rsh_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -206405,7 +227303,7 @@ fi - if test "$iof_tool_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$plm_rsh_WRAPPER_EXTRA_LIBS" = ""; then : @@ -206445,7 +227343,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $iof_tool_LIBS; do + for arg in $plm_rsh_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -206526,7 +227424,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $iof_tool_WRAPPER_EXTRA_LIBS; do + for arg in $plm_rsh_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -206574,7 +227472,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$iof_tool_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$plm_rsh_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -206617,7 +227515,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $iof_tool_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $plm_rsh_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -206660,90 +227558,78 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring iof_tool_WRAPPER_EXTRA_CPPFLAGS ($iof_tool_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring iof_tool_WRAPPER_EXTRA_CPPFLAGS ($iof_tool_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring plm_rsh_WRAPPER_EXTRA_CPPFLAGS ($plm_rsh_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring plm_rsh_WRAPPER_EXTRA_CPPFLAGS ($plm_rsh_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component iof:tool can compile" >&5 -$as_echo_n "checking if MCA component iof:tool can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:rsh can compile" >&5 +$as_echo_n "checking if MCA component plm:rsh can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_iof" = "tool" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tool\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tool\" failed to configure properly" >&2;} + if test "$with_plm" = "rsh" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"rsh\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"rsh\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_iof" ; then - if test "$DIRECT_iof" = "tool" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tool\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tool\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_plm" ; then + if test "$DIRECT_plm" = "rsh" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"rsh\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"rsh\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components tool" - fi + # add component to all component list + all_components="$all_components rsh" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_iof_tool_DSO=1 - else - BUILD_orte_iof_tool_DSO=0 - fi - if test "$BUILD_orte_iof_tool_DSO" = "1"; then - MCA_BUILD_orte_iof_tool_DSO_TRUE= - MCA_BUILD_orte_iof_tool_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_orte_plm_rsh_DSO=1 else - MCA_BUILD_orte_iof_tool_DSO_TRUE='#' - MCA_BUILD_orte_iof_tool_DSO_FALSE= + BUILD_orte_plm_rsh_DSO=0 +fi + if test "$BUILD_orte_plm_rsh_DSO" = "1"; then + MCA_BUILD_orte_plm_rsh_DSO_TRUE= + MCA_BUILD_orte_plm_rsh_DSO_FALSE='#' +else + MCA_BUILD_orte_plm_rsh_DSO_TRUE='#' + MCA_BUILD_orte_plm_rsh_DSO_FALSE= fi - ac_config_files="$ac_config_files orte/mca/iof/tool/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - if test "1" != "0"; then : - - for component_path in $srcdir/orte/mca/iof/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component iof:$component (need to configure)" + opal_show_subsubsubtitle "MCA component plm:slurm (m4 configuration macro)" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/orte/mca/iof/$component" + component_path="$srcdir/orte/mca/plm/slurm" want_component=0 # build if: @@ -206775,8 +227661,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_iof" ; then - if test "$DIRECT_iof" = "$component" ; then + if test ! -z "$DIRECT_plm" ; then + if test "$DIRECT_plm" = "slurm" ; then want_component=1 else want_component=0 @@ -206785,29 +227671,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_iof" = "1"; then : + if test "$DISABLE_plm" = "1"; then : + want_component=0 +fi + if test "$DISABLE_plm_slurm" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_iof_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_iof" - str="SHARED_COMPONENT=\$DSO_iof_$component" - eval $str + SHARED_FRAMEWORK="$DSO_plm" + SHARED_COMPONENT="$DSO_plm_slurm" - STATIC_FRAMEWORK="$STATIC_iof" - str="STATIC_COMPONENT=\$STATIC_iof_$component" - eval $str + STATIC_FRAMEWORK="$STATIC_plm" + STATIC_COMPONENT="$STATIC_plm_slurm" shared_mode_override=static @@ -206825,9 +227709,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component iof:$component compile mode" >&5 -$as_echo_n "checking for MCA component iof:$component compile mode... " >&6; } - if test "$DIRECT_iof" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plm:slurm compile mode" >&5 +$as_echo_n "checking for MCA component plm:slurm compile mode... " >&6; } + if test "$DIRECT_plm" = "slurm" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -206835,292 +227719,37 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - -# -# Invoke configure in a specific subdirectory. -# -# orte/mca/iof/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="orte/mca/iof/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - # - # Construct the --cache-file argument - # + # try to configure the component - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + ac_config_files="$ac_config_files orte/mca/plm/slurm/Makefile" - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi - # - # Go back to the topdir - # + if test -z "$orte_check_slurm_happy" ; then - cd $subdir_parent +# Check whether --with-slurm was given. +if test "${with_slurm+set}" = set; then : + withval=$with_slurm; fi -# -# Clean up -# - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/orte/mca/iof/all_components/post_configure.sh" - if test -f $infile; then - - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - iof_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - iof_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi - - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/iof/$component/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "iof" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/iof/$component/lib${ORTE_LIB_PREFIX}mca_iof_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/iof/$component/libmca_iof_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_iof_$component_component;" >> $outfile.extern - echo " &mca_iof_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component iof:$component can compile" >&5 -$as_echo_n "checking if MCA component iof:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_iof" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_iof_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** iof component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_iof" = "$component" ; then -as_fn_error $? "*** iof component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$with_slurm" = "no" ; then + orte_check_slurm_happy="no" + elif test "$with_slurm" = "" ; then + # unless user asked, only build slurm component on linux, AIX, + # and OS X systems (these are the platforms that SLURM + # supports) + case $host in + *-linux*|*-aix*|*-apple-darwin*) + orte_check_slurm_happy="yes" + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SLURM srun in PATH" >&5 +$as_echo_n "checking for SLURM srun in PATH... " >&6; } - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$iof_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" +# 1 is the variable name to do "which" on +# 2 is the variable name to assign the return value to @@ -207133,7 +227762,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_prog opal_file opal_dir opal_sentinel; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -207152,7 +227781,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_prog opal_file opal_dir opal_sentinel\"" eval $opal_str unset opal_str @@ -207160,105 +227789,17 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - -str="line=\$iof_$component_WRAPPER_EXTRA_LIBS" - eval "$str" - - +opal_prog=srun - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 +IFS_SAVE=$IFS +IFS="$PATH_SEPARATOR" +for opal_dir in $PATH; do + if test -x "$opal_dir/$opal_prog"; then + ORTE_CHECK_SLURM_SRUN="$opal_dir/$opal_prog" + break fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done +done +IFS=$IFS_SAVE # Unwind the index @@ -207282,284 +227823,52 @@ done - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component iof:$component can compile" >&5 -$as_echo_n "checking if MCA component iof:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_iof" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_iof" ; then - if test "$DIRECT_iof" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - fi - fi - done - -fi - - MCA_orte_iof_ALL_COMPONENTS="$all_components" - MCA_orte_iof_STATIC_COMPONENTS="$static_components" - MCA_orte_iof_DSO_COMPONENTS="$dso_components" - MCA_orte_iof_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_orte_iof_ALL_SUBDIRS= - for item in $all_components ; do - MCA_orte_iof_ALL_SUBDIRS="$MCA_orte_iof_ALL_SUBDIRS mca/iof/$item" - done - - - - MCA_orte_iof_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_orte_iof_STATIC_SUBDIRS="$MCA_orte_iof_STATIC_SUBDIRS mca/iof/$item" - done - - - - MCA_orte_iof_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_orte_iof_DSO_SUBDIRS="$MCA_orte_iof_DSO_SUBDIRS mca/iof/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "iof" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real + if test "$ORTE_CHECK_SLURM_SRUN" = ""; then + orte_check_slurm_happy="no" + else + orte_check_slurm_happy="yes" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_slurm_happy" >&5 +$as_echo "$orte_check_slurm_happy" >&6; } + ;; + esac else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS odls" - MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/odls" - MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_odls_ALL_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_odls_DSO_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_odls_STATIC_SUBDIRS)" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/odls/libmca_odls.la" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_odls_STATIC_LTLIBS)" - - opal_show_subsubtitle "Configuring MCA framework odls" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=orte/mca/odls/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files orte/mca/odls/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework odls" >&5 -$as_echo_n "checking for no configure components in framework odls... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework odls" >&5 -$as_echo_n "checking for m4 configure components in framework odls... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: alps, default, pspawn" >&5 -$as_echo "alps, default, pspawn" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - opal_show_subsubsubtitle "MCA component odls:alps (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/orte/mca/odls/alps" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_odls" ; then - if test "$DIRECT_odls" = "alps" ; then - want_component=1 - else - want_component=0 - fi + orte_check_slurm_happy="yes" fi - fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_odls" = "1"; then : - want_component=0 + if test "$orte_check_slurm_happy" = "yes"; then : + ac_fn_c_check_func "$LINENO" "fork" "ac_cv_func_fork" +if test "x$ac_cv_func_fork" = xyes; then : + orte_check_slurm_happy="yes" +else + orte_check_slurm_happy="no" fi - if test "$DISABLE_odls_alps" = "1"; then : - want_component=0 + fi - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + if test "$orte_check_slurm_happy" = "yes"; then : + ac_fn_c_check_func "$LINENO" "execve" "ac_cv_func_execve" +if test "x$ac_cv_func_execve" = xyes; then : + orte_check_slurm_happy="yes" else - should_build=0 + orte_check_slurm_happy="no" fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_odls" - SHARED_COMPONENT="$DSO_odls_alps" - - STATIC_FRAMEWORK="$STATIC_odls" - STATIC_COMPONENT="$STATIC_odls_alps" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component odls:alps compile mode" >&5 -$as_echo_n "checking for MCA component odls:alps compile mode... " >&6; } - if test "$DIRECT_odls" = "alps" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - +fi - # try to configure the component + if test "$orte_check_slurm_happy" = "yes"; then : + ac_fn_c_check_func "$LINENO" "setpgid" "ac_cv_func_setpgid" +if test "x$ac_cv_func_setpgid" = xyes; then : + orte_check_slurm_happy="yes" +else + orte_check_slurm_happy="no" +fi - ac_config_files="$ac_config_files orte/mca/odls/alps/Makefile" +fi + # check to see if this is a Cray nativized slurm env. + slurm_cray_env=0 if test -z "$opal_check_cray_alps_happy"; then @@ -207661,7 +227970,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } opal_check_cray_alps_happy=no - odls_alps_happy="no" + else if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : @@ -208207,26 +228516,120 @@ fi if test "$opal_check_cray_alps_happy" = "yes"; then : - odls_alps_LDFLAGS="$odls_alps_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" - odls_alps_CPPFLAGS="$odls_alps_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" - odls_alps_LIBS="$odls_alps_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - odls_alps_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - odls_alps_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - odls_alps_happy="yes" -else - odls_alps_happy="no" + orte_slurm_cray_LDFLAGS="$orte_slurm_cray_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" + orte_slurm_cray_CPPFLAGS="$orte_slurm_cray_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" + orte_slurm_cray_LIBS="$orte_slurm_cray_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + orte_slurm_cray_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + orte_slurm_cray_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + slurm_cray_env=1 fi - if test "$odls_alps_happy" = "yes"; then : - should_build=$should_build +cat >>confdefs.h <<_ACEOF +#define SLURM_CRAY_ENV $slurm_cray_env +_ACEOF + + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ompi_summary_section=$(echo Resource Managers | tr ' ' '_') + ompi_summary_line="Slurm: $orte_check_slurm_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + if test "$orte_check_slurm_happy" = "yes"; then : + plm_slurm_good=1 +else + plm_slurm_good=0 +fi + # if check worked, set wrapper flags if so. + # Evaluate succeed / fail + if test "$plm_slurm_good" = "1"; then : + should_build=$should_build else should_build=0 fi + # set build flags to use in makefile + + + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -208235,45 +228638,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/odls/alps/post_configure.sh" + infile="$srcdir/orte/mca/plm/slurm/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components alps" + all_components="$all_components slurm" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components alps" + dso_components="$dso_components slurm" else - if test "odls" = "common"; then + if test "plm" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/odls/alps/lib${ORTE_LIB_PREFIX}mca_odls_alps.la $static_ltlibs" + static_ltlibs="mca/plm/slurm/lib${ORTE_LIB_PREFIX}mca_plm_slurm.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/odls/alps/libmca_odls_alps.la $static_ltlibs" + static_ltlibs="mca/plm/slurm/libmca_plm_slurm.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_odls_alps_component;" >> $outfile.extern - echo " &mca_odls_alps_component, " >> $outfile.struct - static_components="$static_components alps" + echo "extern const mca_base_component_t mca_plm_slurm_component;" >> $outfile.extern + echo " &mca_plm_slurm_component, " >> $outfile.struct + static_components="$static_components slurm" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component odls:alps can compile" >&5 -$as_echo_n "checking if MCA component odls:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:slurm can compile" >&5 +$as_echo_n "checking if MCA component plm:slurm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_odls" = "alps" ; then + if test "$DIRECT_plm" = "slurm" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_odls_DIRECT_CALL_HEADER=$line" + str="MCA_orte_plm_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** odls component alps was supposed to be direct-called, but +as_fn_error $? "*** plm component slurm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -208281,8 +228684,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_odls" = "alps" ; then -as_fn_error $? "*** odls component alps was supposed to be direct-called, but + if test "$DIRECT_plm" = "slurm" ; then +as_fn_error $? "*** plm component slurm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -208297,7 +228700,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$odls_alps_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$plm_slurm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -208337,7 +228740,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $odls_alps_LDFLAGS; do + for arg in $plm_slurm_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -208418,7 +228821,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $odls_alps_WRAPPER_EXTRA_LDFLAGS; do + for arg in $plm_slurm_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -208460,7 +228863,7 @@ fi - if test "$odls_alps_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$plm_slurm_WRAPPER_EXTRA_LIBS" = ""; then : @@ -208500,7 +228903,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $odls_alps_LIBS; do + for arg in $plm_slurm_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -208581,7 +228984,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $odls_alps_WRAPPER_EXTRA_LIBS; do + for arg in $plm_slurm_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -208629,7 +229032,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$odls_alps_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$plm_slurm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -208672,7 +229075,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $odls_alps_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $plm_slurm_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -208715,32 +229118,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring odls_alps_WRAPPER_EXTRA_CPPFLAGS ($odls_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring odls_alps_WRAPPER_EXTRA_CPPFLAGS ($odls_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring plm_slurm_WRAPPER_EXTRA_CPPFLAGS ($plm_slurm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring plm_slurm_WRAPPER_EXTRA_CPPFLAGS ($plm_slurm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component odls:alps can compile" >&5 -$as_echo_n "checking if MCA component odls:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:slurm can compile" >&5 +$as_echo_n "checking if MCA component plm:slurm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_odls" = "alps" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} + if test "$with_plm" = "slurm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"slurm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"slurm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_odls" ; then - if test "$DIRECT_odls" = "alps" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_plm" ; then + if test "$DIRECT_plm" = "slurm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"slurm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"slurm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -208748,23 +229151,23 @@ fi # add component to all component list - all_components="$all_components alps" + all_components="$all_components slurm" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_orte_odls_alps_DSO=1 + BUILD_orte_plm_slurm_DSO=1 else - BUILD_orte_odls_alps_DSO=0 + BUILD_orte_plm_slurm_DSO=0 fi - if test "$BUILD_orte_odls_alps_DSO" = "1"; then - MCA_BUILD_orte_odls_alps_DSO_TRUE= - MCA_BUILD_orte_odls_alps_DSO_FALSE='#' + if test "$BUILD_orte_plm_slurm_DSO" = "1"; then + MCA_BUILD_orte_plm_slurm_DSO_TRUE= + MCA_BUILD_orte_plm_slurm_DSO_FALSE='#' else - MCA_BUILD_orte_odls_alps_DSO_TRUE='#' - MCA_BUILD_orte_odls_alps_DSO_FALSE= + MCA_BUILD_orte_plm_slurm_DSO_TRUE='#' + MCA_BUILD_orte_plm_slurm_DSO_FALSE= fi @@ -208780,13 +229183,13 @@ - opal_show_subsubsubtitle "MCA component odls:default (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component plm:tm (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/orte/mca/odls/default" + component_path="$srcdir/orte/mca/plm/tm" want_component=0 # build if: @@ -208818,8 +229221,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_odls" ; then - if test "$DIRECT_odls" = "default" ; then + if test ! -z "$DIRECT_plm" ; then + if test "$DIRECT_plm" = "tm" ; then want_component=1 else want_component=0 @@ -208828,10 +229231,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_odls" = "1"; then : + if test "$DISABLE_plm" = "1"; then : want_component=0 fi - if test "$DISABLE_odls_default" = "1"; then : + if test "$DISABLE_plm_tm" = "1"; then : want_component=0 fi @@ -208844,11 +229247,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_odls" - SHARED_COMPONENT="$DSO_odls_default" + SHARED_FRAMEWORK="$DSO_plm" + SHARED_COMPONENT="$DSO_plm_tm" - STATIC_FRAMEWORK="$STATIC_odls" - STATIC_COMPONENT="$STATIC_odls_default" + STATIC_FRAMEWORK="$STATIC_plm" + STATIC_COMPONENT="$STATIC_plm_tm" shared_mode_override=static @@ -208866,9 +229269,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component odls:default compile mode" >&5 -$as_echo_n "checking for MCA component odls:default compile mode... " >&6; } - if test "$DIRECT_odls" = "default" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plm:tm compile mode" >&5 +$as_echo_n "checking for MCA component plm:tm compile mode... " >&6; } + if test "$DIRECT_plm" = "tm" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -208879,95 +229282,341 @@ # try to configure the component - ac_config_files="$ac_config_files orte/mca/odls/default/Makefile" + ac_config_files="$ac_config_files orte/mca/plm/tm/Makefile" - ac_fn_c_check_func "$LINENO" "fork" "ac_cv_func_fork" -if test "x$ac_cv_func_fork" = xyes; then : - odls_default_happy="yes" + + if test -z $orte_check_tm_happy ; then + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in orte_check_tm_found orte_check_tm_dir orte_check_tm_pbs_config orte_check_tm_LDFLAGS_save orte_check_tm_CPPFLAGS_save orte_check_tm_LIBS_save; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"orte_check_tm_found orte_check_tm_dir orte_check_tm_pbs_config orte_check_tm_LDFLAGS_save orte_check_tm_CPPFLAGS_save orte_check_tm_LIBS_save\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + +# Check whether --with-tm was given. +if test "${with_tm+set}" = set; then : + withval=$with_tm; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-tm value" >&5 +$as_echo_n "checking --with-tm value... " >&6; } + if test "$with_tm" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-tm)" >&5 +$as_echo "simple no (specified --without-tm)" >&6; } else - odls_default_happy="no" + if test "$with_tm" = "yes" || test "x$with_tm" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_tm"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_tm not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_tm not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_tm/include/tm.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_tm/include/tm.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_tm/include/tm.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_tm)" >&5 +$as_echo "sanity check ok ($with_tm)" >&6; } + fi - if test "$odls_default_happy" = "yes"; then : - should_build=$should_build +fi + + +fi + + +fi + + + orte_check_tm_found=no + if test "$with_tm" = "no"; then : + orte_check_tm_happy="no" else - should_build=0 + orte_check_tm_happy="yes" + if test ! -z "$with_tm" && test "$with_tm" != "yes"; then : + orte_check_tm_dir="$with_tm" +else + orte_check_tm_dir="" +fi fi + if test "$orte_check_tm_happy" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pbs-config" >&5 +$as_echo_n "checking for pbs-config... " >&6; } + orte_check_tm_pbs_config="not found" + if test "$orte_check_tm_dir" != "" && test -d "$orte_check_tm_dir" && test -x "$orte_check_tm_dir/bin/pbs-config"; then : + orte_check_tm_pbs_config="$orte_check_tm_dir/bin/pbs-config" +else + if pbs-config --prefix >/dev/null 2>&1; then : + orte_check_tm_pbs_config="pbs-config" +fi +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_tm_pbs_config" >&5 +$as_echo "$orte_check_tm_pbs_config" >&6; } +fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + # If we have pbs-config, get the flags we need from there and then + # do simplistic tests looking for the tm headers and symbols - if test "$should_build" = "1"; then : + if test "$orte_check_tm_happy" = "yes" && test "$orte_check_tm_pbs_config" != "not found"; then : + orte_check_tm_CPPFLAGS=`$orte_check_tm_pbs_config --cflags` +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:229410: orte_check_tm_CPPFLAGS from pbs-config: $orte_check_tm_CPPFLAGS" >&5 +else + echo orte_check_tm_CPPFLAGS from pbs-config: $orte_check_tm_CPPFLAGS >&5 +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/odls/default/post_configure.sh" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components default" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components default" - else - if test "odls" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/odls/default/lib${ORTE_LIB_PREFIX}mca_odls_default.la $static_ltlibs" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in orte_check_tm_flags; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"orte_check_tm_flags\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + orte_check_tm_flags=`$orte_check_tm_pbs_config --libs` + for orte_check_tm_val in $orte_check_tm_flags; do + if test "`echo $orte_check_tm_val | cut -c1-2`" = "-l"; then + if test "LDFLAGS" = "LIBS"; then + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS $orte_check_tm_val" + fi else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/odls/default/libmca_odls_default.la $static_ltlibs" + if test "LDFLAGS" = "LDFLAGS"; then + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS $orte_check_tm_val" + fi fi - echo "extern const mca_base_component_t mca_odls_default_component;" >> $outfile.extern - echo " &mca_odls_default_component, " >> $outfile.struct - static_components="$static_components default" + done + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component odls:default can compile" >&5 -$as_echo_n "checking if MCA component odls:default can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_odls" = "default" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_odls_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** odls component default was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:229491: orte_check_tm_LDFLAGS from pbs-config: $orte_check_tm_LDFLAGS" >&5 +else + echo orte_check_tm_LDFLAGS from pbs-config: $orte_check_tm_LDFLAGS >&5 +fi + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in orte_check_tm_flags; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_odls" = "default" ; then -as_fn_error $? "*** odls component default was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"orte_check_tm_flags\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + orte_check_tm_flags=`$orte_check_tm_pbs_config --libs` + for orte_check_tm_val in $orte_check_tm_flags; do + if test "`echo $orte_check_tm_val | cut -c1-2`" = "-l"; then + if test "LIBS" = "LIBS"; then + orte_check_tm_LIBS="$orte_check_tm_LIBS $orte_check_tm_val" + fi + else + if test "LIBS" = "LDFLAGS"; then + orte_check_tm_LIBS="$orte_check_tm_LIBS $orte_check_tm_val" + fi fi + done + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$odls_default_WRAPPER_EXTRA_LDFLAGS" = ""; then : + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:229572: orte_check_tm_LIBS from pbs-config: $orte_check_tm_LIBS" >&5 +else + echo orte_check_tm_LIBS from pbs-config: $orte_check_tm_LIBS >&5 +fi + + # Now that we supposedly have the right flags, try them out. + + orte_check_tm_CPPFLAGS_save="$CPPFLAGS" + orte_check_tm_LDFLAGS_save="$LDFLAGS" + orte_check_tm_LIBS_save="$LIBS" + + CPPFLAGS="$CPPFLAGS $orte_check_tm_CPPFLAGS" + LIBS="$LIBS $orte_check_tm_LIBS" + LDFLAGS="$LDFLAGS $orte_check_tm_LDFLAGS" + + ac_fn_c_check_header_mongrel "$LINENO" "tm.h" "ac_cv_header_tm_h" "$ac_includes_default" +if test "x$ac_cv_header_tm_h" = xyes; then : + ac_fn_c_check_func "$LINENO" "tm_finalize" "ac_cv_func_tm_finalize" +if test "x$ac_cv_func_tm_finalize" = xyes; then : + orte_check_tm_found="yes" +fi + +fi + + + + CPPFLAGS="$orte_check_tm_CPPFLAGS_save" + LDFLAGS="$orte_check_tm_LDFLAGS_save" + LIBS="$orte_check_tm_LIBS_save" +fi + + # If we don't have pbs-config, then we have to look around + # manually. + + # Note that Torque 2.1.0 changed the name of their back-end + # library to "libtorque". So we have to check for both libpbs and + # libtorque. First, check for libpbs. + + orte_check_package_plm_tm_save_CPPFLAGS="$CPPFLAGS" + orte_check_package_plm_tm_save_LDFLAGS="$LDFLAGS" + orte_check_package_plm_tm_save_LIBS="$LIBS" + + if test "$orte_check_tm_found" = "no"; then : + if test "$orte_check_tm_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -208980,7 +229629,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -208999,7 +229648,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -209007,24 +229656,63 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $odls_default_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_tm_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $orte_check_tm_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in tm.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "tm.h" "ac_cv_header_tm_h" "$ac_includes_default" +if test "x$ac_cv_header_tm_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_TM_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_tm_h fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + orte_check_tm_CPPFLAGS="$orte_check_tm_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in tm.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "tm.h" "ac_cv_header_tm_h" "$ac_includes_default" +if test "x$ac_cv_header_tm_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_TM_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + orte_check_tm_found="yes" else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + orte_check_tm_found="no" fi +else + orte_check_tm_found="yes" fi - done + unset opal_check_package_header_happy # Unwind the index @@ -209048,7 +229736,311 @@ done -else +fi + + if test "$orte_check_tm_found" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_tm_init + opal_check_package_lib_happy="no" + if test "$orte_check_tm_libdir" != ""; then : + # libdir was specified - search only there + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$orte_check_tm_libdir" + LDFLAGS="$LDFLAGS -L$orte_check_tm_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : + +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$orte_check_tm_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : + +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : + +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : + +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -209061,7 +230053,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -209080,57 +230072,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $odls_default_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - if test "$odls_default_WRAPPER_EXTRA_LIBS" = ""; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -209143,7 +230094,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -209162,7 +230113,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -209170,532 +230121,303 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $odls_default_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpbs requires libnl v1 or v3" >&5 +$as_echo_n "checking if libpbs requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void tm_init (void); +int main(int argc, char *argv[]) { + tm_init (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:230148: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS 1>&5 2>&1 +opal_status=$? +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:230155: \$? = $opal_status" >&5 else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $odls_default_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + echo \$? = $opal_status >&5 fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi - done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib pbs" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib pbs" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpbs links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libpbs links to both libnl and libnl-3." >&2;} -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} - fi + libnl_sane=0 +fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$odls_default_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pbs requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pbs requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs pbs" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Go through each item in the variable and only keep the unique ones - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # Loop over every token we've seen so far - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - for arg in $odls_default_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_done="`expr $opal_i \>= $opal_count`" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # Increment the counter - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring odls_default_WRAPPER_EXTRA_CPPFLAGS ($odls_default_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring odls_default_WRAPPER_EXTRA_CPPFLAGS ($odls_default_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done -else +# Take all the items in the "array" and assemble them back into a +# single variable - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component odls:default can compile" >&5 -$as_echo_n "checking if MCA component odls:default can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # If this component was requested as the default for this - # type, then abort. - if test "$with_odls" = "default" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"default\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - if test ! -z "$DIRECT_odls" ; then - if test "$DIRECT_odls" = "default" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"default\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # add component to all component list - all_components="$all_components default" -fi +# Done; do the assignment +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_odls_default_DSO=1 -else - BUILD_orte_odls_default_DSO=0 -fi - if test "$BUILD_orte_odls_default_DSO" = "1"; then - MCA_BUILD_orte_odls_default_DSO_TRUE= - MCA_BUILD_orte_odls_default_DSO_FALSE='#' -else - MCA_BUILD_orte_odls_default_DSO_TRUE='#' - MCA_BUILD_orte_odls_default_DSO_FALSE= +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 fi - unset compile_mode - - + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpbs requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpbs requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs pbs" - opal_show_subsubsubtitle "MCA component odls:pspawn (m4 configuration macro)" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - component_path="$srcdir/orte/mca/odls/pspawn" - want_component=0 + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_odls" ; then - if test "$DIRECT_odls" = "pspawn" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # if we were explicitly disabled, don't build :) - if test "$DISABLE_odls" = "1"; then : - want_component=0 -fi - if test "$DISABLE_odls_pspawn" = "1"; then : - want_component=0 -fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi + # Check the ending condition - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + opal_done="`expr $opal_i \>= $opal_count`" - SHARED_FRAMEWORK="$DSO_odls" - SHARED_COMPONENT="$DSO_odls_pspawn" + # Increment the counter - STATIC_FRAMEWORK="$STATIC_odls" - STATIC_COMPONENT="$STATIC_odls_pspawn" + opal_i="`expr $opal_i + 1`" + done - shared_mode_override=static + # If we didn't find the token, add it to the "array" - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - compile_mode="static" + opal_i="`expr $opal_i - 1`" fi +done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component odls:pspawn compile mode" >&5 -$as_echo_n "checking for MCA component odls:pspawn compile mode... " >&6; } - if test "$DIRECT_odls" = "pspawn" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # try to configure the component + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - ac_config_files="$ac_config_files orte/mca/odls/pspawn/Makefile" + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - ac_fn_c_check_func "$LINENO" "posix_spawn" "ac_cv_func_posix_spawn" -if test "x$ac_cv_func_posix_spawn" = xyes; then : - odls_pspawn_happy="yes" -else - odls_pspawn_happy="no" -fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up - if test "$odls_pspawn_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi +fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/odls/pspawn/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components pspawn" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components pspawn" - else - if test "odls" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/odls/pspawn/lib${ORTE_LIB_PREFIX}mca_odls_pspawn.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/odls/pspawn/libmca_odls_pspawn.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_odls_pspawn_component;" >> $outfile.extern - echo " &mca_odls_pspawn_component, " >> $outfile.struct - static_components="$static_components pspawn" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component odls:pspawn can compile" >&5 -$as_echo_n "checking if MCA component odls:pspawn can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_odls" = "pspawn" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_odls_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** odls component pspawn was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_odls" = "pspawn" ; then -as_fn_error $? "*** odls component pspawn was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$odls_pspawn_WRAPPER_EXTRA_LDFLAGS" = ""; then : - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_libnl_sane=$libnl_sane - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - for arg in $odls_pspawn_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -209718,170 +230440,324 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_tm_init" != "no" && + test "$ac_cv_search_tm_init" != "none required"; then : + orte_check_tm_LIBS="$ac_cv_search_tm_init " +else + orte_check_tm_LIBS="" +fi + orte_check_tm_found="yes" else + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # see comment above + unset ac_cv_search_tm_init + opal_check_package_lib_happy="no" + if test "$orte_check_tm_libdir" != ""; then : + # libdir was specified - search only there + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$orte_check_tm_libdir" + LDFLAGS="$LDFLAGS -L$orte_check_tm_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lcrypto $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$orte_check_tm_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lcrypto $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : + +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +fi - for arg in $odls_pspawn_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lcrypto $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : + +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pbs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lcrypto $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg +done +if ${ac_cv_search_tm_init+:} false; then : + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + ac_cv_search_tm_init=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - if test "$odls_pspawn_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $odls_pspawn_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init fi - done fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - -else + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -209894,7 +230770,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -209913,66 +230789,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $odls_pspawn_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$odls_pspawn_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -209985,7 +230811,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -210004,7 +230830,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -210012,389 +230838,303 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $odls_pspawn_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpbs requires libnl v1 or v3" >&5 +$as_echo_n "checking if libpbs requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void tm_init (void); +int main(int argc, char *argv[]) { + tm_init (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:230865: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:230872: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring odls_pspawn_WRAPPER_EXTRA_CPPFLAGS ($odls_pspawn_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring odls_pspawn_WRAPPER_EXTRA_CPPFLAGS ($odls_pspawn_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib pbs" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib pbs" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component odls:pspawn can compile" >&5 -$as_echo_n "checking if MCA component odls:pspawn can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi - # If this component was requested as the default for this - # type, then abort. - if test "$with_odls" = "pspawn" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pspawn\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pspawn\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - if test ! -z "$DIRECT_odls" ; then - if test "$DIRECT_odls" = "pspawn" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pspawn\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pspawn\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # add component to all component list - all_components="$all_components pspawn" + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpbs links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libpbs links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} + + libnl_sane=0 fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pbs requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pbs requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_odls_pspawn_DSO=1 -else - BUILD_orte_odls_pspawn_DSO=0 -fi - if test "$BUILD_orte_odls_pspawn_DSO" = "1"; then - MCA_BUILD_orte_odls_pspawn_DSO_TRUE= - MCA_BUILD_orte_odls_pspawn_DSO_FALSE='#' + libnl_sane=0 else - MCA_BUILD_orte_odls_pspawn_DSO_TRUE='#' - MCA_BUILD_orte_odls_pspawn_DSO_FALSE= -fi + opal_libnlv1_libs="$opal_libnlv1_libs pbs" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi +# Go through each item in the variable and only keep the unique ones - unset compile_mode +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - if test "1" != "0"; then : + opal_i="`expr $opal_i + 1`" + done - for component_path in $srcdir/orte/mca/odls/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component odls:$component (need to configure)" + # If we didn't find the token, add it to the "array" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - component_path="$srcdir/orte/mca/odls/$component" - want_component=0 + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_odls" ; then - if test "$DIRECT_odls" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # if we were explicitly disabled, don't build :) - if test "$DISABLE_odls" = "1"; then : - want_component=0 -fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_odls_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi +# Done; do the assignment - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi +fi - SHARED_FRAMEWORK="$DSO_odls" - str="SHARED_COMPONENT=\$DSO_odls_$component" - eval $str + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpbs requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpbs requires libnl-3" >&2;} - STATIC_FRAMEWORK="$STATIC_odls" - str="STATIC_COMPONENT=\$STATIC_odls_$component" - eval $str + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} - shared_mode_override=static + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs pbs" - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component odls:$component compile mode" >&5 -$as_echo_n "checking for MCA component odls:$component compile mode... " >&6; } - if test "$DIRECT_odls" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +# Go through each item in the variable and only keep the unique ones - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - if test "$should_build" = "1" ; then + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Check the ending condition - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + opal_done="`expr $opal_i \>= $opal_count`" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str + # Increment the counter - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_i="`expr $opal_i + 1`" + done + # If we didn't find the token, add it to the "array" -# -# Invoke configure in a specific subdirectory. -# -# orte/mca/odls/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="orte/mca/odls/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done -# -# Sanity checks -# +# Take all the items in the "array" and assemble them back into a +# single variable -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac +# Done; do the assignment - # - # Move into the target directory - # +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - subdir_parent=`pwd` - cd $subdir_dir +# Clean up - # - # Make a "../" for each directory in $subdir_dir. - # +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # +fi - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # - # Construct the --cache-file argument - # + rm -f conftest conftest_c.$ac_ext - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + opal_libnl_sane=$libnl_sane - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # - # Go back to the topdir - # + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - cd $subdir_parent -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# -# Clean up -# + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -210416,105 +231156,325 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/orte/mca/odls/all_components/post_configure.sh" - if test -f $infile; then + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi +fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - odls_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - odls_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_tm_init" != "no" && + test "$ac_cv_search_tm_init" != "none required"; then : + orte_check_tm_LIBS="$ac_cv_search_tm_init -lcrypto" +else + orte_check_tm_LIBS="-lcrypto" +fi + orte_check_tm_found="yes" +else + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + # see comment above + unset ac_cv_search_tm_init + opal_check_package_lib_happy="no" + if test "$orte_check_tm_libdir" != ""; then : + # libdir was specified - search only there + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$orte_check_tm_libdir" + LDFLAGS="$LDFLAGS -L$orte_check_tm_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/odls/$component/post_configure.sh" +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' torque; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "odls" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/odls/$component/lib${ORTE_LIB_PREFIX}mca_odls_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/odls/$component/libmca_odls_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_odls_$component_component;" >> $outfile.extern - echo " &mca_odls_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$orte_check_tm_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' torque; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : + +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' torque; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : + +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 +$as_echo_n "checking for library containing tm_init... " >&6; } +if ${ac_cv_search_tm_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component odls:$component can compile" >&5 -$as_echo_n "checking if MCA component odls:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tm_init (); +int +main () +{ +return tm_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' torque; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tm_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tm_init+:} false; then : + break +fi +done +if ${ac_cv_search_tm_init+:} false; then : - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_odls" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_odls_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** odls component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_odls" = "$component" ; then -as_fn_error $? "*** odls component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +else + ac_cv_search_tm_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 +$as_echo "$ac_cv_search_tm_init" >&6; } +ac_res=$ac_cv_search_tm_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$odls_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" + orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" + unset ac_cv_search_tm_init +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -210527,7 +231487,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -210546,56 +231506,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - -str="line=\$odls_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + opal_libnl_sane=1 + case $host in + *linux*) @@ -210608,7 +231528,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -210627,7 +231547,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -210635,892 +231555,361 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component odls:$component can compile" >&5 -$as_echo_n "checking if MCA component odls:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_odls" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_odls" ; then - if test "$DIRECT_odls" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - fi - fi - done - -fi - - MCA_orte_odls_ALL_COMPONENTS="$all_components" - MCA_orte_odls_STATIC_COMPONENTS="$static_components" - MCA_orte_odls_DSO_COMPONENTS="$dso_components" - MCA_orte_odls_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_orte_odls_ALL_SUBDIRS= - for item in $all_components ; do - MCA_orte_odls_ALL_SUBDIRS="$MCA_orte_odls_ALL_SUBDIRS mca/odls/$item" - done - - - - MCA_orte_odls_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_orte_odls_STATIC_SUBDIRS="$MCA_orte_odls_STATIC_SUBDIRS mca/odls/$item" - done - - - - MCA_orte_odls_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_orte_odls_DSO_SUBDIRS="$MCA_orte_odls_DSO_SUBDIRS mca/odls/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "odls" != "common"; then - cat > $outfile <&5 +$as_echo_n "checking if libtorque requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void tm_init (void); +int main(int argc, char *argv[]) { + tm_init (); + return 0; } -#endif - EOF - # Only replace the header file if a) it doesn't previously - # exist, or b) the contents are different. Do this to not - # trigger recompilation of certain .c files just because the - # timestamp changed on $outfile_real (similar to the way AC - # handles AC_CONFIG_HEADER files). - diff $outfile $outfile_real > /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS oob" - MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/oob" - MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_oob_ALL_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_oob_DSO_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_oob_STATIC_SUBDIRS)" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/oob/libmca_oob.la" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_oob_STATIC_LTLIBS)" - - opal_show_subsubtitle "Configuring MCA framework oob" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=orte/mca/oob/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files orte/mca/oob/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework oob" >&5 -$as_echo_n "checking for no configure components in framework oob... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework oob" >&5 -$as_echo_n "checking for m4 configure components in framework oob... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: alps, tcp" >&5 -$as_echo "alps, tcp" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - opal_show_subsubsubtitle "MCA component oob:alps (m4 configuration macro)" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/orte/mca/oob/alps" - want_component=0 + this_requires_v1=0 + this_requires_v3=0 + result_msg= - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_oob" ; then - if test "$DIRECT_oob" = "alps" ; then - want_component=1 - else - want_component=0 - fi - fi - fi +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:231582: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltorque $LIBS $orte_check_tm_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltorque $LIBS $orte_check_tm_LIBS 1>&5 2>&1 +opal_status=$? - # if we were explicitly disabled, don't build :) - if test "$DISABLE_oob" = "1"; then : - want_component=0 +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:231589: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - if test "$DISABLE_oob_alps" = "1"; then : - want_component=0 +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_oob" - SHARED_COMPONENT="$DSO_oob_alps" - - STATIC_FRAMEWORK="$STATIC_oob" - STATIC_COMPONENT="$STATIC_oob_alps" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib torque" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib torque" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component oob:alps compile mode" >&5 -$as_echo_n "checking for MCA component oob:alps compile mode... " >&6; } - if test "$DIRECT_oob" = "alps" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # try to configure the component + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - ac_config_files="$ac_config_files orte/mca/oob/alps/Makefile" + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libtorque links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libtorque links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtorque (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libtorque (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtorque." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtorque." >&2;} + libnl_sane=0 +fi - if test -z "$opal_check_cray_alps_happy"; then + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas torque requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas torque requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtorque (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libtorque (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtorque." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtorque." >&2;} -# Check whether --with-alps was given. -if test "${with_alps+set}" = set; then : - withval=$with_alps; + libnl_sane=0 else - with_alps=auto -fi - - - if test -f /etc/opt/cray/release/clerelease; then - cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` - else - cle_level="unknown" - fi + opal_libnlv1_libs="$opal_libnlv1_libs torque" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 -$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } - if test "$cle_level" = "4" && test "$with_alps" != "no"; then : +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones -# -# if we've gotten here, its because we are building on a CLE 4 system -# - opal_check_alps_cle4_libdir_happy="no" - opal_check_alps_cle4_dir_happy="no" +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 -$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do -# Check whether --with-alps-libdir was given. -if test "${with_alps_libdir+set}" = set; then : - withval=$with_alps_libdir; -fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` -# -# check to see if Open MPI is being built on a CLE 4 eslogin node -# - if test -f /etc/opt/cray/release/ESLrelease; then : - default_alps_dir="/opt/cray/xe-sysroot/default/usr" -else - default_alps_dir="/usr" -fi + # Check the ending condition - if test -z "$with_alps_libdir"; then : - if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : - if test -d "$with_alps_libdir/lib64"; then : - opal_check_alps_libdir="$with_alps_libdir/lib64" -else - opal_check_alps_libdir="$with_alps_libdir/lib" -fi -else - opal_check_alps_libdir="$default_alps_dir/lib/alps" -fi + opal_done="`expr $opal_i \>= $opal_count`" -fi + # Increment the counter - if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : - opal_check_alps_dir=$default_alps_dir -else - opal_check_alps_dir=$with_alps -fi + opal_i="`expr $opal_i + 1`" + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 -$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } - if test -f "$opal_check_alps_libdir/libalps.a"; then : - opal_check_alps_libdir_cle4_happy="yes" -else - opal_check_alps_libdir_cle4_happy="no", - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi + # If we didn't find the token, add it to the "array" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 -$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } - if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : - opal_check_alps_dir_cle4_happy="yes" -else - opal_check_alps_dir_cle4_happy="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done - if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : - CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" - CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - opal_check_cray_alps_happy="yes" -else - opal_check_cray_alps_happy="no" -fi +# Take all the items in the "array" and assemble them back into a +# single variable -else - if test "$with_alps" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy=no - oob_alps_happy="no" -else - if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 -$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } + opal_eval="unset opal_array_$opal_i" + eval $opal_eval -if test -n "$CRAY_ALPSLLI_CFLAGS"; then - pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSLLI_LIBS"; then - pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +# Clean up -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` - else - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 fi -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libtorque requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libtorque requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtorque (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libtorque (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtorque." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtorque." >&2;} + libnl_sane=0 else - CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS - CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS - CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi + opal_libnlv3_libs="$opal_libnlv3_libs torque" -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 -$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs -if test -n "$CRAY_ALPSUTIL_CFLAGS"; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSUTIL_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` - else - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + # Check the ending condition -else - CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS - CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS - CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 -$as_echo_n "checking for CRAY_ALPS... " >&6; } + opal_i="`expr $opal_i + 1`" + done -if test -n "$CRAY_ALPS_CFLAGS"; then - pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPS_LIBS"; then - pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPS_STATIC_LIBS"; then - pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi + # If we didn't find the token, add it to the "array" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` - else - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPS_PKG_ERRORS" >&5 + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi +# Done; do the assignment -else - CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS - CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS - CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 -$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } +# Clean up -if test -n "$CRAY_WLM_DETECT_CFLAGS"; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_WLM_DETECT_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi - else - pkg_failed=untried + fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + opal_libnl_sane=$libnl_sane -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` - else - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -else - CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS - CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS - CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -cat >>confdefs.h <<_ACEOF -#define CRAY_WLM_DETECT 1 -_ACEOF + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_tm_init" != "no" && + test "$ac_cv_search_tm_init" != "none required"; then : + orte_check_tm_LIBS="$ac_cv_search_tm_init " else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 -$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 -$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 + orte_check_tm_LIBS="" +fi + orte_check_tm_found="yes" +else + orte_check_tm_found="no" fi + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 -$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } - if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : - CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS - CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS fi +fi + + CPPFLAGS="$orte_check_package_plm_tm_save_CPPFLAGS" + LDFLAGS="$orte_check_package_plm_tm_save_LDFLAGS" + LIBS="$orte_check_package_plm_tm_save_LIBS" + + if test "$orte_check_tm_found" = "no" ; then + orte_check_tm_happy=no + fi @@ -211562,7 +231951,7 @@ ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" + ompi_summary_line="Torque: $orte_check_tm_happy" ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) if test -z "$ompi_summary_section_current" ; then @@ -211598,29 +231987,61 @@ done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test "$opal_check_cray_alps_happy" = "yes"; then : - oob_alps_LDFLAGS="$oob_alps_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" - oob_alps_CPPFLAGS="$oob_alps_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" - oob_alps_LIBS="$oob_alps_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - oob_alps_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - oob_alps_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - oob_alps_happy="yes" -else - oob_alps_happy="no" -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "$oob_alps_happy" = "yes"; then : - should_build=$should_build + fi + # Did we find the right stuff? + if test "$orte_check_tm_happy" = "yes"; then : + plm_tm_LIBS="$plm_tm_LIBS $orte_check_tm_LIBS" + plm_tm_LDFLAGS="$plm_tm_LDFLAGS $orte_check_tm_LDFLAGS" + plm_tm_CPPFLAGS="$plm_tm_CPPFLAGS $orte_check_tm_CPPFLAGS" + # add the TM libraries to static builds as they are required + plm_tm_WRAPPER_EXTRA_LDFLAGS=$plm_tm_LDFLAGS + plm_tm_WRAPPER_EXTRA_LIBS=$plm_tm_LIBS + plm_tm_good=1 +else + if test ! -z "$with_tm" && test "$with_tm" != "no"; then : + as_fn_error $? "TM support requested but not found. Aborting" "$LINENO" 5 +fi + orte_check_tm_happy="no" + plm_tm_good=0 +fi + # if check worked, set wrapper flags if so. + # Evaluate succeed / fail + if test "$plm_tm_good" = "1"; then : + should_build=$should_build else should_build=0 fi + # set build flags to use in makefile + + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -211629,45 +232050,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/oob/alps/post_configure.sh" + infile="$srcdir/orte/mca/plm/tm/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components alps" + all_components="$all_components tm" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components alps" + dso_components="$dso_components tm" else - if test "oob" = "common"; then + if test "plm" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/oob/alps/lib${ORTE_LIB_PREFIX}mca_oob_alps.la $static_ltlibs" + static_ltlibs="mca/plm/tm/lib${ORTE_LIB_PREFIX}mca_plm_tm.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/oob/alps/libmca_oob_alps.la $static_ltlibs" + static_ltlibs="mca/plm/tm/libmca_plm_tm.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_oob_alps_component;" >> $outfile.extern - echo " &mca_oob_alps_component, " >> $outfile.struct - static_components="$static_components alps" + echo "extern const mca_base_component_t mca_plm_tm_component;" >> $outfile.extern + echo " &mca_plm_tm_component, " >> $outfile.struct + static_components="$static_components tm" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component oob:alps can compile" >&5 -$as_echo_n "checking if MCA component oob:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:tm can compile" >&5 +$as_echo_n "checking if MCA component plm:tm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_oob" = "alps" ; then + if test "$DIRECT_plm" = "tm" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_oob_DIRECT_CALL_HEADER=$line" + str="MCA_orte_plm_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** oob component alps was supposed to be direct-called, but +as_fn_error $? "*** plm component tm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -211675,8 +232096,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_oob" = "alps" ; then -as_fn_error $? "*** oob component alps was supposed to be direct-called, but + if test "$DIRECT_plm" = "tm" ; then +as_fn_error $? "*** plm component tm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -211691,7 +232112,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$oob_alps_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$plm_tm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -211731,7 +232152,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $oob_alps_LDFLAGS; do + for arg in $plm_tm_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -211812,7 +232233,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $oob_alps_WRAPPER_EXTRA_LDFLAGS; do + for arg in $plm_tm_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -211854,7 +232275,7 @@ fi - if test "$oob_alps_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$plm_tm_WRAPPER_EXTRA_LIBS" = ""; then : @@ -211894,7 +232315,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $oob_alps_LIBS; do + for arg in $plm_tm_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -211975,7 +232396,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $oob_alps_WRAPPER_EXTRA_LIBS; do + for arg in $plm_tm_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -212023,7 +232444,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$oob_alps_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$plm_tm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -212066,7 +232487,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $oob_alps_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $plm_tm_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -212109,32 +232530,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring oob_alps_WRAPPER_EXTRA_CPPFLAGS ($oob_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring oob_alps_WRAPPER_EXTRA_CPPFLAGS ($oob_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring plm_tm_WRAPPER_EXTRA_CPPFLAGS ($plm_tm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring plm_tm_WRAPPER_EXTRA_CPPFLAGS ($plm_tm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component oob:alps can compile" >&5 -$as_echo_n "checking if MCA component oob:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:tm can compile" >&5 +$as_echo_n "checking if MCA component plm:tm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_oob" = "alps" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} + if test "$with_plm" = "tm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_oob" ; then - if test "$DIRECT_oob" = "alps" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_plm" ; then + if test "$DIRECT_plm" = "tm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -212142,23 +232563,23 @@ fi # add component to all component list - all_components="$all_components alps" + all_components="$all_components tm" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_orte_oob_alps_DSO=1 + BUILD_orte_plm_tm_DSO=1 else - BUILD_orte_oob_alps_DSO=0 + BUILD_orte_plm_tm_DSO=0 fi - if test "$BUILD_orte_oob_alps_DSO" = "1"; then - MCA_BUILD_orte_oob_alps_DSO_TRUE= - MCA_BUILD_orte_oob_alps_DSO_FALSE='#' + if test "$BUILD_orte_plm_tm_DSO" = "1"; then + MCA_BUILD_orte_plm_tm_DSO_TRUE= + MCA_BUILD_orte_plm_tm_DSO_FALSE='#' else - MCA_BUILD_orte_oob_alps_DSO_TRUE='#' - MCA_BUILD_orte_oob_alps_DSO_FALSE= + MCA_BUILD_orte_plm_tm_DSO_TRUE='#' + MCA_BUILD_orte_plm_tm_DSO_FALSE= fi @@ -212174,13 +232595,24 @@ - opal_show_subsubsubtitle "MCA component oob:tcp (m4 configuration macro)" + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + if test "1" != "0"; then : - component_path="$srcdir/orte/mca/oob/tcp" + for component_path in $srcdir/orte/mca/plm/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component plm:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/orte/mca/plm/$component" want_component=0 # build if: @@ -212212,8 +232644,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_oob" ; then - if test "$DIRECT_oob" = "tcp" ; then + if test ! -z "$DIRECT_plm" ; then + if test "$DIRECT_plm" = "$component" ; then want_component=1 else want_component=0 @@ -212222,27 +232654,29 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_oob" = "1"; then : - want_component=0 -fi - if test "$DISABLE_oob_tcp" = "1"; then : + if test "$DISABLE_plm" = "1"; then : want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_plm_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_oob" - SHARED_COMPONENT="$DSO_oob_tcp" + SHARED_FRAMEWORK="$DSO_plm" + str="SHARED_COMPONENT=\$DSO_plm_$component" + eval $str - STATIC_FRAMEWORK="$STATIC_oob" - STATIC_COMPONENT="$STATIC_oob_tcp" + STATIC_FRAMEWORK="$STATIC_plm" + str="STATIC_COMPONENT=\$STATIC_plm_$component" + eval $str shared_mode_override=static @@ -212260,9 +232694,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component oob:tcp compile mode" >&5 -$as_echo_n "checking for MCA component oob:tcp compile mode... " >&6; } - if test "$DIRECT_oob" = "tcp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plm:$component compile mode" >&5 +$as_echo_n "checking for MCA component plm:$component compile mode... " >&6; } + if test "$DIRECT_plm" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -212270,83 +232704,267 @@ $as_echo "$compile_mode" >&6; } fi + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - # try to configure the component + if test "$should_build" = "1" ; then - ac_config_files="$ac_config_files orte/mca/oob/tcp/Makefile" - # check for sockaddr_in (a good sign we have TCP) - ac_fn_c_check_type "$LINENO" "struct sockaddr_in" "ac_cv_type_struct_sockaddr_in" "$ac_includes_default -#ifdef HAVE_NETINET_IN_H -#include -#endif -" -if test "x$ac_cv_type_struct_sockaddr_in" = xyes; then : + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_SOCKADDR_IN 1 -_ACEOF + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -oob_tcp_happy="yes" -else - oob_tcp_happy="no" -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str - if test "$oob_tcp_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + +# +# Invoke configure in a specific subdirectory. +# +# orte/mca/plm/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="orte/mca/plm/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" +# +# Clean up +# + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/orte/mca/plm/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + plm_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + plm_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi - if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/oob/tcp/post_configure.sh" + infile="$srcdir/orte/mca/plm/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components tcp" + all_components="$all_components $component" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components tcp" + dso_components="$dso_components $component" else - if test "oob" = "common"; then + if test "plm" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/oob/tcp/lib${ORTE_LIB_PREFIX}mca_oob_tcp.la $static_ltlibs" + static_ltlibs="mca/plm/$component/lib${ORTE_LIB_PREFIX}mca_plm_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/oob/tcp/libmca_oob_tcp.la $static_ltlibs" + static_ltlibs="mca/plm/$component/libmca_plm_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_oob_tcp_component;" >> $outfile.extern - echo " &mca_oob_tcp_component, " >> $outfile.struct - static_components="$static_components tcp" + echo "extern const mca_base_component_t mca_plm_$component_component;" >> $outfile.extern + echo " &mca_plm_$component_component, " >> $outfile.struct + static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component oob:tcp can compile" >&5 -$as_echo_n "checking if MCA component oob:tcp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:$component can compile" >&5 +$as_echo_n "checking if MCA component plm:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_oob" = "tcp" ; then + if test "$DIRECT_plm" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_oob_DIRECT_CALL_HEADER=$line" + str="MCA_orte_plm_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** oob component tcp was supposed to be direct-called, but +as_fn_error $? "*** plm component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -212354,8 +232972,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_oob" = "tcp" ; then -as_fn_error $? "*** oob component tcp was supposed to be direct-called, but + if test "$DIRECT_plm" = "$component" ; then +as_fn_error $? "*** plm component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -212370,7 +232988,8 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$oob_tcp_WRAPPER_EXTRA_LDFLAGS" = ""; then : + str="line=\$plm_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -212410,7 +233029,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $oob_tcp_LDFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -212450,8 +233069,8 @@ unset $opal_var done - -else +str="line=\$plm_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -212491,21 +233110,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $oob_tcp_WRAPPER_EXTRA_LDFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -212532,89 +233151,337 @@ done -fi - if test "$oob_tcp_WRAPPER_EXTRA_LIBS" = ""; then : + fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + else - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:$component can compile" >&5 +$as_echo_n "checking if MCA component plm:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_plm" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_plm" ; then + if test "$DIRECT_plm" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi + fi + + fi + fi done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + MCA_orte_plm_ALL_COMPONENTS="$all_components" + MCA_orte_plm_STATIC_COMPONENTS="$static_components" + MCA_orte_plm_DSO_COMPONENTS="$dso_components" + MCA_orte_plm_STATIC_LTLIBS="$static_ltlibs" - for arg in $oob_tcp_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + + + + + + MCA_orte_plm_ALL_SUBDIRS= + for item in $all_components ; do + MCA_orte_plm_ALL_SUBDIRS="$MCA_orte_plm_ALL_SUBDIRS mca/plm/$item" + done + + + + MCA_orte_plm_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_orte_plm_STATIC_SUBDIRS="$MCA_orte_plm_STATIC_SUBDIRS mca/plm/$item" + done + + + + MCA_orte_plm_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_orte_plm_DSO_SUBDIRS="$MCA_orte_plm_DSO_SUBDIRS mca/plm/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "plm" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS ras" + MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/ras" + MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_ras_ALL_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_ras_DSO_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_ras_STATIC_SUBDIRS)" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/ras/libmca_ras.la" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_ras_STATIC_LTLIBS)" + + opal_show_subsubtitle "Configuring MCA framework ras" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=orte/mca/ras/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files orte/mca/ras/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework ras" >&5 +$as_echo_n "checking for no configure components in framework ras... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simulator" >&5 +$as_echo "simulator" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework ras" >&5 +$as_echo_n "checking for m4 configure components in framework ras... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: alps, gridengine, lsf, slurm, tm" >&5 +$as_echo "alps, gridengine, lsf, slurm, tm" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + opal_show_subsubsubtitle "MCA component ras:simulator (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/orte/mca/ras/simulator" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_ras" ; then + if test "$DIRECT_ras" = "simulator" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_ras" = "1"; then : + want_component=0 fi - done + if test "$DISABLE_ras_simulator" = "1"; then : + want_component=0 fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + if test "$want_component" = "1"; then : + should_build=1 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi + should_build=0 fi - done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + SHARED_FRAMEWORK="$DSO_ras" + SHARED_COMPONENT="$DSO_ras_simulator" + + STATIC_FRAMEWORK="$STATIC_ras" + STATIC_COMPONENT="$STATIC_ras_simulator" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ras:simulator compile mode" >&5 +$as_echo_n "checking for MCA component ras:simulator compile mode... " >&6; } + if test "$DIRECT_ras" = "simulator" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1" ; then -else + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/ras/simulator/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components simulator" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components simulator" + else + if test "ras" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/ras/simulator/lib${ORTE_LIB_PREFIX}mca_ras_simulator.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/ras/simulator/libmca_ras_simulator.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_ras_simulator_component;" >> $outfile.extern + echo " &mca_ras_simulator_component, " >> $outfile.struct + static_components="$static_components simulator" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:simulator can compile" >&5 +$as_echo_n "checking if MCA component ras:simulator can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_ras" = "simulator" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_ras_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** ras component simulator was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_ras" = "simulator" ; then +as_fn_error $? "*** ras component simulator was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$ras_simulator_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -212654,21 +233521,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $oob_tcp_WRAPPER_EXTRA_LIBS; do + for arg in $ras_simulator_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -212695,17 +233562,7 @@ done -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$oob_tcp_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : +else @@ -212745,21 +233602,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $oob_tcp_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $ras_simulator_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -212787,184 +233644,7 @@ fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring oob_tcp_WRAPPER_EXTRA_CPPFLAGS ($oob_tcp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring oob_tcp_WRAPPER_EXTRA_CPPFLAGS ($oob_tcp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component oob:tcp can compile" >&5 -$as_echo_n "checking if MCA component oob:tcp can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_oob" = "tcp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tcp\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tcp\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_oob" ; then - if test "$DIRECT_oob" = "tcp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tcp\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tcp\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components tcp" -fi - - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_oob_tcp_DSO=1 -else - BUILD_orte_oob_tcp_DSO=0 -fi - if test "$BUILD_orte_oob_tcp_DSO" = "1"; then - MCA_BUILD_orte_oob_tcp_DSO_TRUE= - MCA_BUILD_orte_oob_tcp_DSO_FALSE='#' -else - MCA_BUILD_orte_oob_tcp_DSO_TRUE='#' - MCA_BUILD_orte_oob_tcp_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - - unset compile_mode - - - - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - - if test "1" != "0"; then : - - for component_path in $srcdir/orte/mca/oob/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component oob:$component (need to configure)" - - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - - - - component_path="$srcdir/orte/mca/oob/$component" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_oob" ; then - if test "$DIRECT_oob" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_oob" = "1"; then : - want_component=0 -fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_oob_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi - - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi - - - SHARED_FRAMEWORK="$DSO_oob" - str="SHARED_COMPONENT=\$DSO_oob_$component" - eval $str - - STATIC_FRAMEWORK="$STATIC_oob" - str="STATIC_COMPONENT=\$STATIC_oob_$component" - eval $str - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component oob:$component compile mode" >&5 -$as_echo_n "checking for MCA component oob:$component compile mode... " >&6; } - if test "$DIRECT_oob" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - - if test "$should_build" = "1" ; then + if test "$ras_simulator_WRAPPER_EXTRA_LIBS" = ""; then : @@ -212977,7 +233657,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -212996,7 +233676,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -213004,129 +233684,24 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# orte/mca/oob/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="orte/mca/oob/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - - # - # Construct the --cache-file argument - # - - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - - # - # Invoke the configure script in the subdirectory - # - - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi - - # - # Go back to the topdir - # - - cd $subdir_parent + for arg in $ras_simulator_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - -# -# Clean up -# + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done # Unwind the index @@ -213149,105 +233724,8 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/orte/mca/oob/all_components/post_configure.sh" - if test -f $infile; then - - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - oob_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - oob_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi - - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/oob/$component/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "oob" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/oob/$component/lib${ORTE_LIB_PREFIX}mca_oob_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/oob/$component/libmca_oob_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_oob_$component_component;" >> $outfile.extern - echo " &mca_oob_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component oob:$component can compile" >&5 -$as_echo_n "checking if MCA component oob:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_oob" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_oob_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** oob component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_oob" = "$component" ; then -as_fn_error $? "*** oob component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$oob_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" +else @@ -213287,21 +233765,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $ras_simulator_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -213327,8 +233805,18 @@ unset $opal_var done -str="line=\$oob_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$ras_simulator_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -213368,21 +233856,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $ras_simulator_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_cppflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi fi done @@ -213409,171 +233897,63 @@ done - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ras_simulator_WRAPPER_EXTRA_CPPFLAGS ($ras_simulator_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring ras_simulator_WRAPPER_EXTRA_CPPFLAGS ($ras_simulator_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component oob:$component can compile" >&5 -$as_echo_n "checking if MCA component oob:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:simulator can compile" >&5 +$as_echo_n "checking if MCA component ras:simulator can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_oob" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + if test "$with_ras" = "simulator" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"simulator\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"simulator\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_oob" ; then - if test "$DIRECT_oob" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_ras" ; then + if test "$DIRECT_ras" = "simulator" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"simulator\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"simulator\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - fi - fi - done - -fi - - MCA_orte_oob_ALL_COMPONENTS="$all_components" - MCA_orte_oob_STATIC_COMPONENTS="$static_components" - MCA_orte_oob_DSO_COMPONENTS="$dso_components" - MCA_orte_oob_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_orte_oob_ALL_SUBDIRS= - for item in $all_components ; do - MCA_orte_oob_ALL_SUBDIRS="$MCA_orte_oob_ALL_SUBDIRS mca/oob/$item" - done - - - - MCA_orte_oob_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_orte_oob_STATIC_SUBDIRS="$MCA_orte_oob_STATIC_SUBDIRS mca/oob/$item" - done - - - - MCA_orte_oob_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_orte_oob_DSO_SUBDIRS="$MCA_orte_oob_DSO_SUBDIRS mca/oob/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "oob" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi + # add component to all component list + all_components="$all_components simulator" fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS plm" - MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/plm" - MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_plm_ALL_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_plm_DSO_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_plm_STATIC_SUBDIRS)" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/plm/libmca_plm.la" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_plm_STATIC_LTLIBS)" - - opal_show_subsubtitle "Configuring MCA framework plm" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=orte/mca/plm/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files orte/mca/plm/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework plm" >&5 -$as_echo_n "checking for no configure components in framework plm... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework plm" >&5 -$as_echo_n "checking for m4 configure components in framework plm... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: alps, isolated, lsf, rsh, slurm, tm" >&5 -$as_echo "alps, isolated, lsf, rsh, slurm, tm" >&6; } + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_ras_simulator_DSO=1 + else + BUILD_orte_ras_simulator_DSO=0 + fi + if test "$BUILD_orte_ras_simulator_DSO" = "1"; then + MCA_BUILD_orte_ras_simulator_DSO_TRUE= + MCA_BUILD_orte_ras_simulator_DSO_FALSE='#' +else + MCA_BUILD_orte_ras_simulator_DSO_TRUE='#' + MCA_BUILD_orte_ras_simulator_DSO_FALSE= +fi - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + ac_config_files="$ac_config_files orte/mca/ras/simulator/Makefile" - # run the configure logic for the no-config components + unset compile_mode # configure components that use built-in configuration scripts @@ -213585,13 +233965,13 @@ components_last_result=0 - opal_show_subsubsubtitle "MCA component plm:alps (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component ras:alps (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/orte/mca/plm/alps" + component_path="$srcdir/orte/mca/ras/alps" want_component=0 # build if: @@ -213623,8 +234003,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_plm" ; then - if test "$DIRECT_plm" = "alps" ; then + if test ! -z "$DIRECT_ras" ; then + if test "$DIRECT_ras" = "alps" ; then want_component=1 else want_component=0 @@ -213633,10 +234013,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_plm" = "1"; then : + if test "$DISABLE_ras" = "1"; then : want_component=0 fi - if test "$DISABLE_plm_alps" = "1"; then : + if test "$DISABLE_ras_alps" = "1"; then : want_component=0 fi @@ -213649,11 +234029,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_plm" - SHARED_COMPONENT="$DSO_plm_alps" + SHARED_FRAMEWORK="$DSO_ras" + SHARED_COMPONENT="$DSO_ras_alps" - STATIC_FRAMEWORK="$STATIC_plm" - STATIC_COMPONENT="$STATIC_plm_alps" + STATIC_FRAMEWORK="$STATIC_ras" + STATIC_COMPONENT="$STATIC_ras_alps" shared_mode_override=static @@ -213671,9 +234051,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plm:alps compile mode" >&5 -$as_echo_n "checking for MCA component plm:alps compile mode... " >&6; } - if test "$DIRECT_plm" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ras:alps compile mode" >&5 +$as_echo_n "checking for MCA component ras:alps compile mode... " >&6; } + if test "$DIRECT_ras" = "alps" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -213684,7 +234064,7 @@ # try to configure the component - ac_config_files="$ac_config_files orte/mca/plm/alps/Makefile" + ac_config_files="$ac_config_files orte/mca/ras/alps/Makefile" @@ -213788,7 +234168,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } opal_check_cray_alps_happy=no - plm_alps_happy="no" + ras_alps_happy="no" else if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : @@ -214334,26 +234714,49 @@ fi if test "$opal_check_cray_alps_happy" = "yes"; then : - plm_alps_LDFLAGS="$plm_alps_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" - plm_alps_CPPFLAGS="$plm_alps_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" - plm_alps_LIBS="$plm_alps_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - plm_alps_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - plm_alps_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - plm_alps_happy="yes" + ras_alps_LDFLAGS="$ras_alps_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" + ras_alps_CPPFLAGS="$ras_alps_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" + ras_alps_LIBS="$ras_alps_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + ras_alps_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + ras_alps_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + ras_alps_happy="yes" else - plm_alps_happy="no" + ras_alps_happy="no" fi - if test "$plm_alps_happy" = "yes"; then : - should_build=$should_build + # check for alps/apInfo.h + # save current CPPFLAGS + MCA_orte_ras_save_CPPFLAGS="$CPPFLAGS" + # add flags obtained from OPAL_CHECK_ALPS + CPPFLAGS="$CPPFLAGS $ras_alps_CPPFLAGS" + for ac_header in alps/apInfo.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "alps/apInfo.h" "ac_cv_header_alps_apInfo_h" "$ac_includes_default" +if test "x$ac_cv_header_alps_apInfo_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ALPS_APINFO_H 1 +_ACEOF else - should_build=0 + ras_alps_happy="no" fi +done + + + # restore CPPFLAGS + CPPFLAGS="$MCA_orte_ras_save_CPPFLAGS" + + + + if test "$ras_alps_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -214363,7 +234766,7 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/plm/alps/post_configure.sh" + infile="$srcdir/orte/mca/ras/alps/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs all_components="$all_components alps" @@ -214371,37 +234774,37 @@ if test "$compile_mode" = "dso" ; then dso_components="$dso_components alps" else - if test "plm" = "common"; then + if test "ras" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/plm/alps/lib${ORTE_LIB_PREFIX}mca_plm_alps.la $static_ltlibs" + static_ltlibs="mca/ras/alps/lib${ORTE_LIB_PREFIX}mca_ras_alps.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/plm/alps/libmca_plm_alps.la $static_ltlibs" + static_ltlibs="mca/ras/alps/libmca_ras_alps.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_plm_alps_component;" >> $outfile.extern - echo " &mca_plm_alps_component, " >> $outfile.struct + echo "extern const mca_base_component_t mca_ras_alps_component;" >> $outfile.extern + echo " &mca_ras_alps_component, " >> $outfile.struct static_components="$static_components alps" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:alps can compile" >&5 -$as_echo_n "checking if MCA component plm:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:alps can compile" >&5 +$as_echo_n "checking if MCA component ras:alps can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_plm" = "alps" ; then + if test "$DIRECT_ras" = "alps" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_plm_DIRECT_CALL_HEADER=$line" + str="MCA_orte_ras_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** plm component alps was supposed to be direct-called, but +as_fn_error $? "*** ras component alps was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -214409,8 +234812,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_plm" = "alps" ; then -as_fn_error $? "*** plm component alps was supposed to be direct-called, but + if test "$DIRECT_ras" = "alps" ; then +as_fn_error $? "*** ras component alps was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -214425,7 +234828,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$plm_alps_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$ras_alps_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -214465,7 +234868,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_alps_LDFLAGS; do + for arg in $ras_alps_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -214546,7 +234949,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_alps_WRAPPER_EXTRA_LDFLAGS; do + for arg in $ras_alps_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -214588,7 +234991,7 @@ fi - if test "$plm_alps_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$ras_alps_WRAPPER_EXTRA_LIBS" = ""; then : @@ -214628,7 +235031,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_alps_LIBS; do + for arg in $ras_alps_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -214709,7 +235112,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_alps_WRAPPER_EXTRA_LIBS; do + for arg in $ras_alps_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -214757,7 +235160,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$plm_alps_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$ras_alps_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -214800,7 +235203,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_alps_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $ras_alps_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -214843,21 +235246,21 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring plm_alps_WRAPPER_EXTRA_CPPFLAGS ($plm_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring plm_alps_WRAPPER_EXTRA_CPPFLAGS ($plm_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ras_alps_WRAPPER_EXTRA_CPPFLAGS ($ras_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring ras_alps_WRAPPER_EXTRA_CPPFLAGS ($ras_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:alps can compile" >&5 -$as_echo_n "checking if MCA component plm:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:alps can compile" >&5 +$as_echo_n "checking if MCA component ras:alps can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_plm" = "alps" ; then + if test "$with_ras" = "alps" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 @@ -214865,8 +235268,8 @@ as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_plm" ; then - if test "$DIRECT_plm" = "alps" ; then + if test ! -z "$DIRECT_ras" ; then + if test "$DIRECT_ras" = "alps" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 @@ -214883,16 +235286,16 @@ # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_orte_plm_alps_DSO=1 + BUILD_orte_ras_alps_DSO=1 else - BUILD_orte_plm_alps_DSO=0 + BUILD_orte_ras_alps_DSO=0 fi - if test "$BUILD_orte_plm_alps_DSO" = "1"; then - MCA_BUILD_orte_plm_alps_DSO_TRUE= - MCA_BUILD_orte_plm_alps_DSO_FALSE='#' + if test "$BUILD_orte_ras_alps_DSO" = "1"; then + MCA_BUILD_orte_ras_alps_DSO_TRUE= + MCA_BUILD_orte_ras_alps_DSO_FALSE='#' else - MCA_BUILD_orte_plm_alps_DSO_TRUE='#' - MCA_BUILD_orte_plm_alps_DSO_FALSE= + MCA_BUILD_orte_ras_alps_DSO_TRUE='#' + MCA_BUILD_orte_ras_alps_DSO_FALSE= fi @@ -214908,13 +235311,13 @@ - opal_show_subsubsubtitle "MCA component plm:isolated (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component ras:gridengine (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/orte/mca/plm/isolated" + component_path="$srcdir/orte/mca/ras/gridengine" want_component=0 # build if: @@ -214946,8 +235349,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_plm" ; then - if test "$DIRECT_plm" = "isolated" ; then + if test ! -z "$DIRECT_ras" ; then + if test "$DIRECT_ras" = "gridengine" ; then want_component=1 else want_component=0 @@ -214956,10 +235359,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_plm" = "1"; then : + if test "$DISABLE_ras" = "1"; then : want_component=0 fi - if test "$DISABLE_plm_isolated" = "1"; then : + if test "$DISABLE_ras_gridengine" = "1"; then : want_component=0 fi @@ -214972,11 +235375,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_plm" - SHARED_COMPONENT="$DSO_plm_isolated" + SHARED_FRAMEWORK="$DSO_ras" + SHARED_COMPONENT="$DSO_ras_gridengine" - STATIC_FRAMEWORK="$STATIC_plm" - STATIC_COMPONENT="$STATIC_plm_isolated" + STATIC_FRAMEWORK="$STATIC_ras" + STATIC_COMPONENT="$STATIC_ras_gridengine" shared_mode_override=static @@ -214994,9 +235397,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plm:isolated compile mode" >&5 -$as_echo_n "checking for MCA component plm:isolated compile mode... " >&6; } - if test "$DIRECT_plm" = "isolated" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ras:gridengine compile mode" >&5 +$as_echo_n "checking for MCA component ras:gridengine compile mode... " >&6; } + if test "$DIRECT_ras" = "gridengine" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -215007,18 +235410,172 @@ # try to configure the component - ac_config_files="$ac_config_files orte/mca/plm/isolated/Makefile" + ac_config_files="$ac_config_files orte/mca/ras/gridengine/Makefile" - ac_fn_c_check_func "$LINENO" "fork" "ac_cv_func_fork" -if test "x$ac_cv_func_fork" = xyes; then : - plm_isolated_happy="yes" + + if test -z "$orte_gridengine_build" ; then + +# Check whether --with-sge was given. +if test "${with_sge+set}" = set; then : + withval=$with_sge; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if user requested SGE build" >&5 +$as_echo_n "checking if user requested SGE build... " >&6; } + orte_gridengine_build="no" + if test "$with_sge" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + orte_gridengine_build=yes else - plm_isolated_happy="no" + if test "$with_sge" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not specified; checking environment" >&5 +$as_echo "not specified; checking environment" >&6; } + # Extract the first word of "qrsh", so it can be a program name with args. +set dummy qrsh; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_QRSH+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$QRSH"; then + ac_cv_prog_QRSH="$QRSH" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_QRSH="qrsh" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +QRSH=$ac_cv_prog_QRSH +if test -n "$QRSH"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $QRSH" >&5 +$as_echo "$QRSH" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - if test "$plm_isolated_happy" = "yes"; then : + if test "$QRSH" != ""; then : + orte_gridengine_build=yes +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SGE_ROOT environment variable" >&5 +$as_echo_n "checking for SGE_ROOT environment variable... " >&6; } + if test "$SGE_ROOT" != ""; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 +$as_echo "found" >&6; } + orte_gridengine_build=yes +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } +fi +fi +fi +fi + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ompi_summary_section=$(echo Resource Managers | tr ' ' '_') + ompi_summary_line="Grid Engine: $orte_gridengine_build" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + if test "$orte_gridengine_build" = "yes"; then : + ras_gridengine_happy="yes" +else + ras_gridengine_happy="no" +fi + + + if test "$ras_gridengine_happy" = "yes"; then : should_build=$should_build else should_build=0 @@ -215032,45 +235589,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/plm/isolated/post_configure.sh" + infile="$srcdir/orte/mca/ras/gridengine/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components isolated" + all_components="$all_components gridengine" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components isolated" + dso_components="$dso_components gridengine" else - if test "plm" = "common"; then + if test "ras" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/plm/isolated/lib${ORTE_LIB_PREFIX}mca_plm_isolated.la $static_ltlibs" + static_ltlibs="mca/ras/gridengine/lib${ORTE_LIB_PREFIX}mca_ras_gridengine.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/plm/isolated/libmca_plm_isolated.la $static_ltlibs" + static_ltlibs="mca/ras/gridengine/libmca_ras_gridengine.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_plm_isolated_component;" >> $outfile.extern - echo " &mca_plm_isolated_component, " >> $outfile.struct - static_components="$static_components isolated" + echo "extern const mca_base_component_t mca_ras_gridengine_component;" >> $outfile.extern + echo " &mca_ras_gridengine_component, " >> $outfile.struct + static_components="$static_components gridengine" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:isolated can compile" >&5 -$as_echo_n "checking if MCA component plm:isolated can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:gridengine can compile" >&5 +$as_echo_n "checking if MCA component ras:gridengine can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_plm" = "isolated" ; then + if test "$DIRECT_ras" = "gridengine" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_plm_DIRECT_CALL_HEADER=$line" + str="MCA_orte_ras_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** plm component isolated was supposed to be direct-called, but +as_fn_error $? "*** ras component gridengine was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -215078,8 +235635,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_plm" = "isolated" ; then -as_fn_error $? "*** plm component isolated was supposed to be direct-called, but + if test "$DIRECT_ras" = "gridengine" ; then +as_fn_error $? "*** ras component gridengine was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -215094,7 +235651,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$plm_isolated_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$ras_gridengine_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -215134,7 +235691,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_isolated_LDFLAGS; do + for arg in $ras_gridengine_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -215215,7 +235772,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_isolated_WRAPPER_EXTRA_LDFLAGS; do + for arg in $ras_gridengine_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -215257,7 +235814,7 @@ fi - if test "$plm_isolated_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$ras_gridengine_WRAPPER_EXTRA_LIBS" = ""; then : @@ -215297,7 +235854,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_isolated_LIBS; do + for arg in $ras_gridengine_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -215378,7 +235935,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_isolated_WRAPPER_EXTRA_LIBS; do + for arg in $ras_gridengine_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -215426,7 +235983,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$plm_isolated_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$ras_gridengine_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -215469,7 +236026,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_isolated_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $ras_gridengine_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -215512,32 +236069,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring plm_isolated_WRAPPER_EXTRA_CPPFLAGS ($plm_isolated_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring plm_isolated_WRAPPER_EXTRA_CPPFLAGS ($plm_isolated_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ras_gridengine_WRAPPER_EXTRA_CPPFLAGS ($ras_gridengine_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring ras_gridengine_WRAPPER_EXTRA_CPPFLAGS ($ras_gridengine_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:isolated can compile" >&5 -$as_echo_n "checking if MCA component plm:isolated can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:gridengine can compile" >&5 +$as_echo_n "checking if MCA component ras:gridengine can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_plm" = "isolated" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"isolated\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"isolated\" failed to configure properly" >&2;} + if test "$with_ras" = "gridengine" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"gridengine\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"gridengine\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_plm" ; then - if test "$DIRECT_plm" = "isolated" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"isolated\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"isolated\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_ras" ; then + if test "$DIRECT_ras" = "gridengine" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"gridengine\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"gridengine\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -215545,23 +236102,23 @@ fi # add component to all component list - all_components="$all_components isolated" + all_components="$all_components gridengine" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_orte_plm_isolated_DSO=1 + BUILD_orte_ras_gridengine_DSO=1 else - BUILD_orte_plm_isolated_DSO=0 + BUILD_orte_ras_gridengine_DSO=0 fi - if test "$BUILD_orte_plm_isolated_DSO" = "1"; then - MCA_BUILD_orte_plm_isolated_DSO_TRUE= - MCA_BUILD_orte_plm_isolated_DSO_FALSE='#' + if test "$BUILD_orte_ras_gridengine_DSO" = "1"; then + MCA_BUILD_orte_ras_gridengine_DSO_TRUE= + MCA_BUILD_orte_ras_gridengine_DSO_FALSE='#' else - MCA_BUILD_orte_plm_isolated_DSO_TRUE='#' - MCA_BUILD_orte_plm_isolated_DSO_FALSE= + MCA_BUILD_orte_ras_gridengine_DSO_TRUE='#' + MCA_BUILD_orte_ras_gridengine_DSO_FALSE= fi @@ -215577,13 +236134,13 @@ - opal_show_subsubsubtitle "MCA component plm:lsf (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component ras:lsf (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/orte/mca/plm/lsf" + component_path="$srcdir/orte/mca/ras/lsf" want_component=0 # build if: @@ -215615,8 +236172,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_plm" ; then - if test "$DIRECT_plm" = "lsf" ; then + if test ! -z "$DIRECT_ras" ; then + if test "$DIRECT_ras" = "lsf" ; then want_component=1 else want_component=0 @@ -215625,10 +236182,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_plm" = "1"; then : + if test "$DISABLE_ras" = "1"; then : want_component=0 fi - if test "$DISABLE_plm_lsf" = "1"; then : + if test "$DISABLE_ras_lsf" = "1"; then : want_component=0 fi @@ -215641,11 +236198,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_plm" - SHARED_COMPONENT="$DSO_plm_lsf" + SHARED_FRAMEWORK="$DSO_ras" + SHARED_COMPONENT="$DSO_ras_lsf" - STATIC_FRAMEWORK="$STATIC_plm" - STATIC_COMPONENT="$STATIC_plm_lsf" + STATIC_FRAMEWORK="$STATIC_ras" + STATIC_COMPONENT="$STATIC_ras_lsf" shared_mode_override=static @@ -215663,9 +236220,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plm:lsf compile mode" >&5 -$as_echo_n "checking for MCA component plm:lsf compile mode... " >&6; } - if test "$DIRECT_plm" = "lsf" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ras:lsf compile mode" >&5 +$as_echo_n "checking for MCA component ras:lsf compile mode... " >&6; } + if test "$DIRECT_ras" = "lsf" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -215676,7 +236233,7 @@ # try to configure the component - ac_config_files="$ac_config_files orte/mca/plm/lsf/Makefile" + ac_config_files="$ac_config_files orte/mca/ras/lsf/Makefile" @@ -215814,15 +236371,17 @@ orte_check_lsf_happy="yes" fi - orte_check_lsf_plm_lsf_save_CPPFLAGS="$CPPFLAGS" - orte_check_lsf_plm_lsf_save_LDFLAGS="$LDFLAGS" - orte_check_lsf_plm_lsf_save_LIBS="$LIBS" + orte_check_lsf_ras_lsf_save_CPPFLAGS="$CPPFLAGS" + orte_check_lsf_ras_lsf_save_LDFLAGS="$LDFLAGS" + orte_check_lsf_ras_lsf_save_LIBS="$LIBS" # liblsf requires yp_all, yp_get_default_domain, and ypprot_err # on Linux, Solaris, NEC, and Sony NEWSs these are found in libnsl # on AIX it should be in libbsd # on HP-UX it should be in libBSD # on IRIX < 6 it should be in libsun (IRIX 6 and later it is in libc) + # on RHEL: libnsl, libnsl2 AND libnsl2-devel are required to link libnsl to get yp_all. + if test "$orte_check_lsf_happy" = "yes"; then : @@ -216003,10 +236562,12 @@ fi yp_all_nsl_have_yp_all=1 - yp_all_nsl_happy="yes" + orte_check_lsf_happy="yes" else yp_all_nsl_have_yp_all=0 - yp_all_nsl_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find yp_all. Please see https://www.open-mpi.org/faq/?category=building#build-rte-lsf for more details." >&5 +$as_echo "$as_me: WARNING: Could not find yp_all. Please see https://www.open-mpi.org/faq/?category=building#build-rte-lsf for more details." >&2;} + orte_check_lsf_happy="no" fi @@ -216037,14 +236598,228 @@ done +fi - if test "$yp_all_nsl_happy" = "no"; then : - orte_check_lsf_happy="no" + # liblsf requires shm_open, shm_unlink, which are in librt + if test "$orte_check_lsf_happy" = "yes"; then : + + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in LIBS_save add; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"LIBS_save add\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + LIBS_save=$LIBS + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing shm_open" >&5 +$as_echo_n "checking for library containing shm_open... " >&6; } +if ${ac_cv_search_shm_open+:} false; then : + $as_echo_n "(cached) " >&6 else - orte_check_lsf_happy="yes" + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shm_open (); +int +main () +{ +return shm_open (); + ; + return 0; +} +_ACEOF +for ac_lib in '' rt; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_shm_open=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_shm_open+:} false; then : + break +fi +done +if ${ac_cv_search_shm_open+:} false; then : + +else + ac_cv_search_shm_open=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_shm_open" >&5 +$as_echo "$ac_cv_search_shm_open" >&6; } +ac_res=$ac_cv_search_shm_open +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + # Found it! See if anything was added to LIBS + add=`printf '%s\n' "$LIBS" | sed -e "s/$LIBS_save$//"` + if test -n "$add"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $add; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${shm_open_rt_LIBS}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$shm_open_rt_LIBS"; then : + shm_open_rt_LIBS=$arg +else + shm_open_rt_LIBS="$shm_open_rt_LIBS $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + shm_open_rt_have_shm_open=1 + orte_check_lsf_happy="yes" +else + shm_open_rt_have_shm_open=0 + orte_check_lsf_happy="no" +fi + + + +cat >>confdefs.h <<_ACEOF +#define OPAL_HAVE_SHM_OPEN_RT $shm_open_rt_have_shm_open +_ACEOF + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + fi # liblsb requires liblsf - using ls_info as a test for liblsf presence + if test "$orte_check_lsf_happy" = "yes"; then : opal_check_package_ls_info_lsf_save_CPPFLAGS="$CPPFLAGS" opal_check_package_ls_info_lsf_save_LDFLAGS="$LDFLAGS" @@ -216188,7 +236963,7 @@ ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_ls_info=$ac_res @@ -216260,7 +237035,7 @@ ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_ls_info=$ac_res @@ -216332,7 +237107,7 @@ ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_ls_info=$ac_res @@ -216405,7 +237180,7 @@ ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_ls_info=$ac_res @@ -216552,14 +237327,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:216555: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS" >&5 +echo "configure:237330: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:216562: \$? = $opal_status" >&5 + echo "configure:237337: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -216857,9 +237632,9 @@ # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] if test "$ac_cv_search_ls_info" != "no" && test "$ac_cv_search_ls_info" != "none required"; then : - ls_info_lsf_LIBS="$ac_cv_search_ls_info $yp_all_nsl_LIBS" + ls_info_lsf_LIBS="$ac_cv_search_ls_info $yp_all_nsl_LIBS $shm_open_rt_LIBS" else - ls_info_lsf_LIBS="$yp_all_nsl_LIBS" + ls_info_lsf_LIBS="$yp_all_nsl_LIBS $shm_open_rt_LIBS" fi opal_check_package_happy="yes" else @@ -216913,7 +237688,7 @@ ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_ls_info=$ac_res @@ -216985,7 +237760,7 @@ ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_ls_info=$ac_res @@ -217057,7 +237832,7 @@ ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_ls_info=$ac_res @@ -217130,7 +237905,7 @@ ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_ls_info=$ac_res @@ -217277,14 +238052,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:217280: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS" >&5 +echo "configure:238055: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:217287: \$? = $opal_status" >&5 + echo "configure:238062: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -217582,9 +238357,9 @@ # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] if test "$ac_cv_search_ls_info" != "no" && test "$ac_cv_search_ls_info" != "none required"; then : - ls_info_lsf_LIBS="$ac_cv_search_ls_info $yp_all_nsl_LIBS" + ls_info_lsf_LIBS="$ac_cv_search_ls_info $yp_all_nsl_LIBS $shm_open_rt_LIBS" else - ls_info_lsf_LIBS="$yp_all_nsl_LIBS" + ls_info_lsf_LIBS="$yp_all_nsl_LIBS $shm_open_rt_LIBS" fi opal_check_package_happy="yes" else @@ -217619,23 +238394,18 @@ if test "$opal_check_package_happy" = "yes"; then : - ls_info_lsf_happy="yes" + orte_check_lsf_happy="yes" else ls_info_lsf_CPPFLAGS="$opal_check_package_ls_info_lsf_orig_CPPFLAGS" ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" ls_info_lsf_LIBS="$opal_check_package_ls_info_lsf_orig_LIBS" - ls_info_lsf_happy="no" + orte_check_lsf_happy="no" fi CPPFLAGS="$opal_check_package_ls_info_lsf_save_CPPFLAGS" LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" LIBS="$opal_check_package_ls_info_lsf_save_LIBS" - - if test "$ls_info_lsf_happy" = "no"; then : - orte_check_lsf_happy="no" -else - orte_check_lsf_happy="yes" fi # test function of liblsb LSF package @@ -217648,14 +238418,6 @@ $as_echo_n "checking for LSF library dir... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_lsf_libdir_msg" >&5 $as_echo "$orte_check_lsf_libdir_msg" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for liblsf function" >&5 -$as_echo_n "checking for liblsf function... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ls_info_lsf_happy" >&5 -$as_echo "$ls_info_lsf_happy" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for liblsf yp requirements" >&5 -$as_echo_n "checking for liblsf yp requirements... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $yp_all_nsl_happy" >&5 -$as_echo "$yp_all_nsl_happy" >&6; } opal_check_package_orte_check_lsf_save_CPPFLAGS="$CPPFLAGS" opal_check_package_orte_check_lsf_save_LDFLAGS="$LDFLAGS" @@ -217799,7 +238561,7 @@ ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_lsb_launch=$ac_res @@ -217871,7 +238633,7 @@ ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_lsb_launch=$ac_res @@ -217943,7 +238705,7 @@ ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_lsb_launch=$ac_res @@ -218016,7 +238778,7 @@ ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_lsb_launch=$ac_res @@ -218163,14 +238925,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:218166: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS" >&5 +echo "configure:238928: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:218173: \$? = $opal_status" >&5 + echo "configure:238935: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -218468,9 +239230,9 @@ # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] if test "$ac_cv_search_lsb_launch" != "no" && test "$ac_cv_search_lsb_launch" != "none required"; then : - orte_check_lsf_LIBS="$ac_cv_search_lsb_launch $ls_info_lsf_LIBS $yp_all_nsl_LIBS" + orte_check_lsf_LIBS="$ac_cv_search_lsb_launch $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS" else - orte_check_lsf_LIBS="$ls_info_lsf_LIBS $yp_all_nsl_LIBS" + orte_check_lsf_LIBS="$ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS" fi opal_check_package_happy="yes" else @@ -218524,7 +239286,7 @@ ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_lsb_launch=$ac_res @@ -218596,7 +239358,7 @@ ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_lsb_launch=$ac_res @@ -218668,7 +239430,7 @@ ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_lsb_launch=$ac_res @@ -218741,7 +239503,7 @@ ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_lsb_launch=$ac_res @@ -218777,744 +239539,13 @@ unset ac_cv_search_lsb_launch fi fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - opal_libnl_sane=1 - case $host in - *linux*) - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libbat requires libnl v1 or v3" >&5 -$as_echo_n "checking if libbat requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void lsb_launch (void); -int main(int argc, char *argv[]) { - lsb_launch (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:218891: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:218898: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib bat" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib bat" >&2;} - -fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} - - libnl_sane=0 -fi - - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} - - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs bat" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" - - # Increment the counter - - opal_i="`expr $opal_i + 1`" - done - - # If we didn't find the token, add it to the "array" - - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval - -# Clean up - -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi - -fi - - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} - - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs bat" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" - - # Increment the counter - - opal_i="`expr $opal_i + 1`" - done - - # If we didn't find the token, add it to the "array" - - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval - -# Clean up - -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi - -fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - ;; - esac - - opal_check_package_libnl_check_ok=$opal_libnl_sane - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_lsb_launch" != "no" && - test "$ac_cv_search_lsb_launch" != "none required"; then : - orte_check_lsf_LIBS="$ac_cv_search_lsb_launch $ls_info_lsf_LIBS $yp_all_nsl_LIBS" -else - orte_check_lsf_LIBS="$ls_info_lsf_LIBS $yp_all_nsl_LIBS" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi - - -fi - unset opal_check_package_header_happy - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - - if test "$opal_check_package_happy" = "yes"; then : - orte_check_lsf_happy="yes" -else - orte_check_lsf_CPPFLAGS="$opal_check_package_orte_check_lsf_orig_CPPFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - orte_check_lsf_LIBS="$opal_check_package_orte_check_lsf_orig_LIBS" - orte_check_lsf_happy="no" -fi - - CPPFLAGS="$opal_check_package_orte_check_lsf_save_CPPFLAGS" - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - LIBS="$opal_check_package_orte_check_lsf_save_LIBS" - -fi - - CPPFLAGS="$orte_check_lsf_plm_lsf_save_CPPFLAGS" - LDFLAGS="$orte_check_lsf_plm_lsf_save_LDFLAGS" - LIBS="$orte_check_lsf_plm_lsf_save_LIBS" - - -else - orte_check_lsf_happy=no -fi - - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="LSF: $orte_check_lsf_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - -fi - - if test "$orte_check_lsf_happy" = "yes"; then : - plm_lsf_LIBS="$plm_lsf_LIBS $orte_check_lsf_LIBS" - plm_lsf_LDFLAGS="$plm_lsf_LDFLAGS $orte_check_lsf_LDFLAGS" - plm_lsf_CPPFLAGS="$plm_lsf_CPPFLAGS $orte_check_lsf_CPPFLAGS" - # add the LSF libraries to static builds as they are required - plm_lsf_WRAPPER_EXTRA_LDFLAGS=$plm_lsf_LDFLAGS - plm_lsf_WRAPPER_EXTRA_LIBS=$plm_lsf_LIBS - plm_lsf_good=1 -else - if test ! -z "$with_lsf" && test "$with_lsf" != "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LSF support requested (via --with-lsf) but not found." >&5 -$as_echo "$as_me: WARNING: LSF support requested (via --with-lsf) but not found." >&2;} - as_fn_error $? "Aborting." "$LINENO" 5 -fi - plm_lsf_good=0 -fi - - - # if check worked, set wrapper flags if so. - # Evaluate succeed / fail - if test "$plm_lsf_good" = "1"; then : - should_build=$should_build -else - should_build=0 -fi - - # set build flags to use in makefile - - - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/plm/lsf/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components lsf" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components lsf" - else - if test "plm" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/plm/lsf/lib${ORTE_LIB_PREFIX}mca_plm_lsf.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/plm/lsf/libmca_plm_lsf.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_plm_lsf_component;" >> $outfile.extern - echo " &mca_plm_lsf_component, " >> $outfile.struct - static_components="$static_components lsf" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:lsf can compile" >&5 -$as_echo_n "checking if MCA component plm:lsf can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_plm" = "lsf" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_plm_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** plm component lsf was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_plm" = "lsf" ; then -as_fn_error $? "*** plm component lsf was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$plm_lsf_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $plm_lsf_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - +fi +fi -else + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -219527,7 +239558,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -219546,57 +239577,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $plm_lsf_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - if test "$plm_lsf_WRAPPER_EXTRA_LIBS" = ""; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -219609,7 +239599,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -219628,7 +239618,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -219636,105 +239626,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_lsf_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libbat requires libnl v1 or v3" >&5 +$as_echo_n "checking if libbat requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void lsb_launch (void); +int main(int argc, char *argv[]) { + lsb_launch (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:239653: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:239660: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib bat" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib bat" >&2;} + fi - done + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&2;} - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} + + libnl_sane=0 +fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} + libnl_sane=0 else + opal_libnlv1_libs="$opal_libnlv1_libs bat" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Loop over every token we've seen so far - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $plm_lsf_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} + + libnl_sane=0 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_libnlv3_libs="$opal_libnlv3_libs bat" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -219758,74 +239919,54 @@ done -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$plm_lsf_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - for arg in $plm_lsf_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_lsb_launch" != "no" && + test "$ac_cv_search_lsb_launch" != "none required"; then : + orte_check_lsf_LIBS="$ac_cv_search_lsb_launch $ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS" +else + orte_check_lsf_LIBS="$ls_info_lsf_LIBS $yp_all_nsl_LIBS $shm_open_rt_LIBS" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -219849,186 +239990,179 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring plm_lsf_WRAPPER_EXTRA_CPPFLAGS ($plm_lsf_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring plm_lsf_WRAPPER_EXTRA_CPPFLAGS ($plm_lsf_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + if test "$opal_check_package_happy" = "yes"; then : + orte_check_lsf_happy="yes" else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:lsf can compile" >&5 -$as_echo_n "checking if MCA component plm:lsf can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_plm" = "lsf" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lsf\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"lsf\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_plm" ; then - if test "$DIRECT_plm" = "lsf" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lsf\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"lsf\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components lsf" + orte_check_lsf_CPPFLAGS="$opal_check_package_orte_check_lsf_orig_CPPFLAGS" + orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" + orte_check_lsf_LIBS="$opal_check_package_orte_check_lsf_orig_LIBS" + orte_check_lsf_happy="no" fi + CPPFLAGS="$opal_check_package_orte_check_lsf_save_CPPFLAGS" + LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" + LIBS="$opal_check_package_orte_check_lsf_save_LIBS" - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_plm_lsf_DSO=1 -else - BUILD_orte_plm_lsf_DSO=0 -fi - if test "$BUILD_orte_plm_lsf_DSO" = "1"; then - MCA_BUILD_orte_plm_lsf_DSO_TRUE= - MCA_BUILD_orte_plm_lsf_DSO_FALSE='#' -else - MCA_BUILD_orte_plm_lsf_DSO_TRUE='#' - MCA_BUILD_orte_plm_lsf_DSO_FALSE= fi - if test "$should_build" = "1"; then : - components_last_result=1 + # Some versions of LSF ship with a libevent.so in their library path. + # This is _not_ a copy of Libevent, but something specific to their project. + # The Open MPI components should not need to link against LSF's libevent.so + # However, the presence of it in the linker search path can cause a problem + # if there is a system installed Libevent and Open MPI chooses the 'external' + # event component prior to this stage. + # + # Add a check here to see if we are in a scenario where the two are conflicting. + # In which case the earlier checks for successful compile of an LSF program will + # have failed with messages like: + # lib64/libevent_pthreads.so: undefined reference to `evthread_set_condition_callbacks' + # lib64/libevent_pthreads.so: undefined reference to `event_mm_malloc_' + # lib64/libevent_pthreads.so: undefined reference to `event_mm_free_' + # lib64/libevent_pthreads.so: undefined reference to `evthread_set_id_callback' + # lib64/libevent_pthreads.so: undefined reference to `evthread_set_lock_callbacks' + # Because it picked up -levent from LSF, but -levent_pthreads from Libevent. + # + # So look for a function that libevent_pthreads is looking for from libevent.so. + # If it does appears then we have the correct libevent.so, otherwise then we picked + # up the LSF version and a conflict has been detected. + # If the external libevent component used 'event_core' instead of 'event' + orte_check_lsf_event_conflict=na + # Split libs into an array, see if -levent is in that list + orte_check_lsf_libevent_present=`echo "$LIBS" | awk '{split($0, a, " "); {for (k in a) {if (a[k] == "-levent") {print a[k]}}}}' | wc -l | tr -d '[:space:]'` + # (1) LSF check must have failed above. We need to know why... + if test "$orte_check_lsf_happy" = "no"; then : + # (2) If there is a -levent in the $LIBS then that might be the problem + if test "$opal_event_external_support" = "yes" && test "$orte_check_lsf_libevent_present" != "0"; then : + if test "$orte_check_lsf_libdir" = "" ; then : + +else + LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" +fi + # Note that we do not want to set LIBS here to include -llsf since + # the check is not for an LSF library, but for the conflict with + # LDFLAGS. + # (3) Check to see if the -levent is from Libevent (check for a symbol it has) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for evthread_set_condition_callbacks in -levent" >&5 +$as_echo_n "checking for evthread_set_condition_callbacks in -levent... " >&6; } +if ${ac_cv_lib_event_evthread_set_condition_callbacks+:} false; then : + $as_echo_n "(cached) " >&6 else - components_last_result=0 -fi - - unset compile_mode - - - - - - opal_show_subsubsubtitle "MCA component plm:rsh (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/orte/mca/plm/rsh" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_plm" ; then - if test "$DIRECT_plm" = "rsh" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + ac_check_lib_save_LIBS=$LIBS +LIBS="-levent $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # if we were explicitly disabled, don't build :) - if test "$DISABLE_plm" = "1"; then : - want_component=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char evthread_set_condition_callbacks (); +int +main () +{ +return evthread_set_condition_callbacks (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_event_evthread_set_condition_callbacks=yes +else + ac_cv_lib_event_evthread_set_condition_callbacks=no fi - if test "$DISABLE_plm_rsh" = "1"; then : - want_component=0 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_event_evthread_set_condition_callbacks" >&5 +$as_echo "$ac_cv_lib_event_evthread_set_condition_callbacks" >&6; } +if test "x$ac_cv_lib_event_evthread_set_condition_callbacks" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libevent conflict" >&5 +$as_echo_n "checking for libevent conflict... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: No conflict found. The correct libevent.so was linked." >&5 +$as_echo "No conflict found. The correct libevent.so was linked." >&6; } + orte_check_lsf_event_conflict=no +else + # (4) The libevent.so is not from Libevent. Warn the user. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libevent conflict" >&5 +$as_echo_n "checking for libevent conflict... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Conflict found. Detected a libevent.so that is not from Libevent." >&5 +$as_echo "Conflict found. Detected a libevent.so that is not from Libevent." >&6; } + orte_check_lsf_event_conflict=yes +fi + + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libevent conflict" >&5 +$as_echo_n "checking for libevent conflict... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: No conflict found. Internal Libevent or libevent_core is being used." >&5 +$as_echo "No conflict found. Internal Libevent or libevent_core is being used." >&6; } + orte_check_lsf_event_conflict=na +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libevent conflict" >&5 +$as_echo_n "checking for libevent conflict... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: No conflict found. LSF checks passed." >&5 +$as_echo "No conflict found. LSF checks passed." >&6; } + orte_check_lsf_event_conflict=na +fi + + if test "$orte_check_lsf_event_conflict" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ===================================================================" >&5 +$as_echo "$as_me: WARNING: ===================================================================" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Conflicting libevent.so libraries detected on the system." >&5 +$as_echo "$as_me: WARNING: Conflicting libevent.so libraries detected on the system." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: " >&5 +$as_echo "$as_me: WARNING: " >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: A system-installed Libevent library was detected and the Open MPI" >&5 +$as_echo "$as_me: WARNING: A system-installed Libevent library was detected and the Open MPI" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: build system chose to use the 'external' component expecting to" >&5 +$as_echo "$as_me: WARNING: build system chose to use the 'external' component expecting to" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: link against the Libevent in the linker search path." >&5 +$as_echo "$as_me: WARNING: link against the Libevent in the linker search path." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: If LSF is present on the system and in the default search path then" >&5 +$as_echo "$as_me: WARNING: If LSF is present on the system and in the default search path then" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: it _may be_ the source of the conflict." >&5 +$as_echo "$as_me: WARNING: it _may be_ the source of the conflict." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LSF provides a libevent.so that is not from Libevent in its" >&5 +$as_echo "$as_me: WARNING: LSF provides a libevent.so that is not from Libevent in its" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: library path. At this point the linker is attempting to resolve" >&5 +$as_echo "$as_me: WARNING: library path. At this point the linker is attempting to resolve" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libevent symbols using the LSF library because of the lack of" >&5 +$as_echo "$as_me: WARNING: Libevent symbols using the LSF library because of the lack of" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: an explicit linker path pointing to the system-installed Libevent." >&5 +$as_echo "$as_me: WARNING: an explicit linker path pointing to the system-installed Libevent." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: " >&5 +$as_echo "$as_me: WARNING: " >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: To resolve this issue either (A) explicitly pass the Libevent" >&5 +$as_echo "$as_me: WARNING: To resolve this issue either (A) explicitly pass the Libevent" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: library path on the configure line (--with-libevent-libdir), or" >&5 +$as_echo "$as_me: WARNING: library path on the configure line (--with-libevent-libdir), or" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: (B) use the internal libevent by requesting it from configure " >&5 +$as_echo "$as_me: WARNING: (B) use the internal libevent by requesting it from configure " >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: with the --with-libevent=internal option." >&5 +$as_echo "$as_me: WARNING: with the --with-libevent=internal option." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ===================================================================" >&5 +$as_echo "$as_me: WARNING: ===================================================================" >&2;} - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_plm" - SHARED_COMPONENT="$DSO_plm_rsh" - - STATIC_FRAMEWORK="$STATIC_plm" - STATIC_COMPONENT="$STATIC_plm_rsh" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plm:rsh compile mode" >&5 -$as_echo_n "checking for MCA component plm:rsh compile mode... " >&6; } - if test "$DIRECT_plm" = "rsh" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files orte/mca/plm/rsh/Makefile" + CPPFLAGS="$orte_check_lsf_ras_lsf_save_CPPFLAGS" + LDFLAGS="$orte_check_lsf_ras_lsf_save_LDFLAGS" + LIBS="$orte_check_lsf_ras_lsf_save_LIBS" - ac_fn_c_check_func "$LINENO" "fork" "ac_cv_func_fork" -if test "x$ac_cv_func_fork" = xyes; then : - plm_rsh_happy="yes" else - plm_rsh_happy="no" + orte_check_lsf_happy=no fi - # Is the private index set? If not, set it. if test "x$opal_scope_index" = "x"; then opal_scope_index=1 @@ -220066,7 +240200,7 @@ ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="ssh/rsh: $plm_rsh_happy" + ompi_summary_line="LSF: $orte_check_lsf_happy" ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) if test -z "$ompi_summary_section_current" ; then @@ -220102,12 +240236,40 @@ done - if test "$plm_rsh_happy" = "yes"; then : + +fi + + if test "$orte_check_lsf_happy" = "yes"; then : + ras_lsf_LIBS="$ras_lsf_LIBS $orte_check_lsf_LIBS" + ras_lsf_LDFLAGS="$ras_lsf_LDFLAGS $orte_check_lsf_LDFLAGS" + ras_lsf_CPPFLAGS="$ras_lsf_CPPFLAGS $orte_check_lsf_CPPFLAGS" + # add the LSF libraries to static builds as they are required + ras_lsf_WRAPPER_EXTRA_LDFLAGS=$ras_lsf_LDFLAGS + ras_lsf_WRAPPER_EXTRA_LIBS=$ras_lsf_LIBS + ras_lsf_good=1 +else + if test ! -z "$with_lsf" && test "$with_lsf" != "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LSF support requested (via --with-lsf) but not found." >&5 +$as_echo "$as_me: WARNING: LSF support requested (via --with-lsf) but not found." >&2;} + as_fn_error $? "Aborting." "$LINENO" 5 +fi + ras_lsf_good=0 +fi + + + # if check worked, set wrapper flags if so. + # Evaluate succeed / fail + if test "$ras_lsf_good" = "1"; then : should_build=$should_build else should_build=0 fi + # set build flags to use in makefile + + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -220116,45 +240278,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/plm/rsh/post_configure.sh" + infile="$srcdir/orte/mca/ras/lsf/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components rsh" + all_components="$all_components lsf" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components rsh" + dso_components="$dso_components lsf" else - if test "plm" = "common"; then + if test "ras" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/plm/rsh/lib${ORTE_LIB_PREFIX}mca_plm_rsh.la $static_ltlibs" + static_ltlibs="mca/ras/lsf/lib${ORTE_LIB_PREFIX}mca_ras_lsf.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/plm/rsh/libmca_plm_rsh.la $static_ltlibs" + static_ltlibs="mca/ras/lsf/libmca_ras_lsf.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_plm_rsh_component;" >> $outfile.extern - echo " &mca_plm_rsh_component, " >> $outfile.struct - static_components="$static_components rsh" + echo "extern const mca_base_component_t mca_ras_lsf_component;" >> $outfile.extern + echo " &mca_ras_lsf_component, " >> $outfile.struct + static_components="$static_components lsf" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:rsh can compile" >&5 -$as_echo_n "checking if MCA component plm:rsh can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:lsf can compile" >&5 +$as_echo_n "checking if MCA component ras:lsf can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_plm" = "rsh" ; then + if test "$DIRECT_ras" = "lsf" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_plm_DIRECT_CALL_HEADER=$line" + str="MCA_orte_ras_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** plm component rsh was supposed to be direct-called, but +as_fn_error $? "*** ras component lsf was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -220162,8 +240324,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_plm" = "rsh" ; then -as_fn_error $? "*** plm component rsh was supposed to be direct-called, but + if test "$DIRECT_ras" = "lsf" ; then +as_fn_error $? "*** ras component lsf was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -220178,7 +240340,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$plm_rsh_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$ras_lsf_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -220218,7 +240380,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_rsh_LDFLAGS; do + for arg in $ras_lsf_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -220299,7 +240461,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_rsh_WRAPPER_EXTRA_LDFLAGS; do + for arg in $ras_lsf_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -220341,7 +240503,7 @@ fi - if test "$plm_rsh_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$ras_lsf_WRAPPER_EXTRA_LIBS" = ""; then : @@ -220381,7 +240543,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_rsh_LIBS; do + for arg in $ras_lsf_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -220462,7 +240624,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_rsh_WRAPPER_EXTRA_LIBS; do + for arg in $ras_lsf_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -220510,7 +240672,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$plm_rsh_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$ras_lsf_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -220553,7 +240715,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_rsh_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $ras_lsf_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -220596,32 +240758,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring plm_rsh_WRAPPER_EXTRA_CPPFLAGS ($plm_rsh_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring plm_rsh_WRAPPER_EXTRA_CPPFLAGS ($plm_rsh_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ras_lsf_WRAPPER_EXTRA_CPPFLAGS ($ras_lsf_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring ras_lsf_WRAPPER_EXTRA_CPPFLAGS ($ras_lsf_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:rsh can compile" >&5 -$as_echo_n "checking if MCA component plm:rsh can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:lsf can compile" >&5 +$as_echo_n "checking if MCA component ras:lsf can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_plm" = "rsh" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"rsh\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"rsh\" failed to configure properly" >&2;} + if test "$with_ras" = "lsf" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lsf\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"lsf\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_plm" ; then - if test "$DIRECT_plm" = "rsh" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"rsh\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"rsh\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_ras" ; then + if test "$DIRECT_ras" = "lsf" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lsf\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"lsf\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -220629,23 +240791,23 @@ fi # add component to all component list - all_components="$all_components rsh" + all_components="$all_components lsf" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_orte_plm_rsh_DSO=1 + BUILD_orte_ras_lsf_DSO=1 else - BUILD_orte_plm_rsh_DSO=0 + BUILD_orte_ras_lsf_DSO=0 fi - if test "$BUILD_orte_plm_rsh_DSO" = "1"; then - MCA_BUILD_orte_plm_rsh_DSO_TRUE= - MCA_BUILD_orte_plm_rsh_DSO_FALSE='#' + if test "$BUILD_orte_ras_lsf_DSO" = "1"; then + MCA_BUILD_orte_ras_lsf_DSO_TRUE= + MCA_BUILD_orte_ras_lsf_DSO_FALSE='#' else - MCA_BUILD_orte_plm_rsh_DSO_TRUE='#' - MCA_BUILD_orte_plm_rsh_DSO_FALSE= + MCA_BUILD_orte_ras_lsf_DSO_TRUE='#' + MCA_BUILD_orte_ras_lsf_DSO_FALSE= fi @@ -220661,13 +240823,13 @@ - opal_show_subsubsubtitle "MCA component plm:slurm (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component ras:slurm (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/orte/mca/plm/slurm" + component_path="$srcdir/orte/mca/ras/slurm" want_component=0 # build if: @@ -220699,8 +240861,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_plm" ; then - if test "$DIRECT_plm" = "slurm" ; then + if test ! -z "$DIRECT_ras" ; then + if test "$DIRECT_ras" = "slurm" ; then want_component=1 else want_component=0 @@ -220709,10 +240871,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_plm" = "1"; then : + if test "$DISABLE_ras" = "1"; then : want_component=0 fi - if test "$DISABLE_plm_slurm" = "1"; then : + if test "$DISABLE_ras_slurm" = "1"; then : want_component=0 fi @@ -220725,11 +240887,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_plm" - SHARED_COMPONENT="$DSO_plm_slurm" + SHARED_FRAMEWORK="$DSO_ras" + SHARED_COMPONENT="$DSO_ras_slurm" - STATIC_FRAMEWORK="$STATIC_plm" - STATIC_COMPONENT="$STATIC_plm_slurm" + STATIC_FRAMEWORK="$STATIC_ras" + STATIC_COMPONENT="$STATIC_ras_slurm" shared_mode_override=static @@ -220747,9 +240909,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plm:slurm compile mode" >&5 -$as_echo_n "checking for MCA component plm:slurm compile mode... " >&6; } - if test "$DIRECT_plm" = "slurm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ras:slurm compile mode" >&5 +$as_echo_n "checking for MCA component ras:slurm compile mode... " >&6; } + if test "$DIRECT_ras" = "slurm" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -220760,7 +240922,7 @@ # try to configure the component - ac_config_files="$ac_config_files orte/mca/plm/slurm/Makefile" + ac_config_files="$ac_config_files orte/mca/ras/slurm/Makefile" @@ -221648,15 +241810,15 @@ fi if test "$orte_check_slurm_happy" = "yes"; then : - plm_slurm_good=1 + ras_slurm_good=1 else - plm_slurm_good=0 + ras_slurm_good=0 fi # if check worked, set wrapper flags if so. # Evaluate succeed / fail - if test "$plm_slurm_good" = "1"; then : + if test "$ras_slurm_good" = "1"; then : should_build=$should_build else should_build=0 @@ -221667,7 +241829,6 @@ - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -221676,7 +241837,7 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/plm/slurm/post_configure.sh" + infile="$srcdir/orte/mca/ras/slurm/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs all_components="$all_components slurm" @@ -221684,37 +241845,37 @@ if test "$compile_mode" = "dso" ; then dso_components="$dso_components slurm" else - if test "plm" = "common"; then + if test "ras" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/plm/slurm/lib${ORTE_LIB_PREFIX}mca_plm_slurm.la $static_ltlibs" + static_ltlibs="mca/ras/slurm/lib${ORTE_LIB_PREFIX}mca_ras_slurm.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/plm/slurm/libmca_plm_slurm.la $static_ltlibs" + static_ltlibs="mca/ras/slurm/libmca_ras_slurm.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_plm_slurm_component;" >> $outfile.extern - echo " &mca_plm_slurm_component, " >> $outfile.struct + echo "extern const mca_base_component_t mca_ras_slurm_component;" >> $outfile.extern + echo " &mca_ras_slurm_component, " >> $outfile.struct static_components="$static_components slurm" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:slurm can compile" >&5 -$as_echo_n "checking if MCA component plm:slurm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:slurm can compile" >&5 +$as_echo_n "checking if MCA component ras:slurm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_plm" = "slurm" ; then + if test "$DIRECT_ras" = "slurm" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_plm_DIRECT_CALL_HEADER=$line" + str="MCA_orte_ras_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** plm component slurm was supposed to be direct-called, but +as_fn_error $? "*** ras component slurm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -221722,8 +241883,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_plm" = "slurm" ; then -as_fn_error $? "*** plm component slurm was supposed to be direct-called, but + if test "$DIRECT_ras" = "slurm" ; then +as_fn_error $? "*** ras component slurm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -221738,7 +241899,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$plm_slurm_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$ras_slurm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -221778,7 +241939,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_slurm_LDFLAGS; do + for arg in $ras_slurm_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -221859,7 +242020,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_slurm_WRAPPER_EXTRA_LDFLAGS; do + for arg in $ras_slurm_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -221901,7 +242062,7 @@ fi - if test "$plm_slurm_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$ras_slurm_WRAPPER_EXTRA_LIBS" = ""; then : @@ -221941,7 +242102,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_slurm_LIBS; do + for arg in $ras_slurm_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -222022,7 +242183,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_slurm_WRAPPER_EXTRA_LIBS; do + for arg in $ras_slurm_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -222070,7 +242231,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$plm_slurm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$ras_slurm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -222113,7 +242274,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_slurm_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $ras_slurm_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -222156,21 +242317,21 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring plm_slurm_WRAPPER_EXTRA_CPPFLAGS ($plm_slurm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring plm_slurm_WRAPPER_EXTRA_CPPFLAGS ($plm_slurm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ras_slurm_WRAPPER_EXTRA_CPPFLAGS ($ras_slurm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring ras_slurm_WRAPPER_EXTRA_CPPFLAGS ($ras_slurm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:slurm can compile" >&5 -$as_echo_n "checking if MCA component plm:slurm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:slurm can compile" >&5 +$as_echo_n "checking if MCA component ras:slurm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_plm" = "slurm" ; then + if test "$with_ras" = "slurm" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"slurm\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"slurm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 @@ -222178,8 +242339,8 @@ as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_plm" ; then - if test "$DIRECT_plm" = "slurm" ; then + if test ! -z "$DIRECT_ras" ; then + if test "$DIRECT_ras" = "slurm" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"slurm\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"slurm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 @@ -222196,16 +242357,16 @@ # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_orte_plm_slurm_DSO=1 + BUILD_orte_ras_slurm_DSO=1 else - BUILD_orte_plm_slurm_DSO=0 + BUILD_orte_ras_slurm_DSO=0 fi - if test "$BUILD_orte_plm_slurm_DSO" = "1"; then - MCA_BUILD_orte_plm_slurm_DSO_TRUE= - MCA_BUILD_orte_plm_slurm_DSO_FALSE='#' + if test "$BUILD_orte_ras_slurm_DSO" = "1"; then + MCA_BUILD_orte_ras_slurm_DSO_TRUE= + MCA_BUILD_orte_ras_slurm_DSO_FALSE='#' else - MCA_BUILD_orte_plm_slurm_DSO_TRUE='#' - MCA_BUILD_orte_plm_slurm_DSO_FALSE= + MCA_BUILD_orte_ras_slurm_DSO_TRUE='#' + MCA_BUILD_orte_ras_slurm_DSO_FALSE= fi @@ -222221,13 +242382,13 @@ - opal_show_subsubsubtitle "MCA component plm:tm (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component ras:tm (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/orte/mca/plm/tm" + component_path="$srcdir/orte/mca/ras/tm" want_component=0 # build if: @@ -222259,8 +242420,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_plm" ; then - if test "$DIRECT_plm" = "tm" ; then + if test ! -z "$DIRECT_ras" ; then + if test "$DIRECT_ras" = "tm" ; then want_component=1 else want_component=0 @@ -222269,10 +242430,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_plm" = "1"; then : + if test "$DISABLE_ras" = "1"; then : want_component=0 fi - if test "$DISABLE_plm_tm" = "1"; then : + if test "$DISABLE_ras_tm" = "1"; then : want_component=0 fi @@ -222285,11 +242446,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_plm" - SHARED_COMPONENT="$DSO_plm_tm" + SHARED_FRAMEWORK="$DSO_ras" + SHARED_COMPONENT="$DSO_ras_tm" - STATIC_FRAMEWORK="$STATIC_plm" - STATIC_COMPONENT="$STATIC_plm_tm" + STATIC_FRAMEWORK="$STATIC_ras" + STATIC_COMPONENT="$STATIC_ras_tm" shared_mode_override=static @@ -222307,9 +242468,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plm:tm compile mode" >&5 -$as_echo_n "checking for MCA component plm:tm compile mode... " >&6; } - if test "$DIRECT_plm" = "tm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ras:tm compile mode" >&5 +$as_echo_n "checking for MCA component ras:tm compile mode... " >&6; } + if test "$DIRECT_ras" = "tm" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -222320,7 +242481,7 @@ # try to configure the component - ac_config_files="$ac_config_files orte/mca/plm/tm/Makefile" + ac_config_files="$ac_config_files orte/mca/ras/tm/Makefile" @@ -222445,7 +242606,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:222448: orte_check_tm_CPPFLAGS from pbs-config: $orte_check_tm_CPPFLAGS" >&5 + echo "configure:242609: orte_check_tm_CPPFLAGS from pbs-config: $orte_check_tm_CPPFLAGS" >&5 else echo orte_check_tm_CPPFLAGS from pbs-config: $orte_check_tm_CPPFLAGS >&5 fi @@ -222526,7 +242687,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:222529: orte_check_tm_LDFLAGS from pbs-config: $orte_check_tm_LDFLAGS" >&5 + echo "configure:242690: orte_check_tm_LDFLAGS from pbs-config: $orte_check_tm_LDFLAGS" >&5 else echo orte_check_tm_LDFLAGS from pbs-config: $orte_check_tm_LDFLAGS >&5 fi @@ -222607,7 +242768,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:222610: orte_check_tm_LIBS from pbs-config: $orte_check_tm_LIBS" >&5 + echo "configure:242771: orte_check_tm_LIBS from pbs-config: $orte_check_tm_LIBS" >&5 else echo orte_check_tm_LIBS from pbs-config: $orte_check_tm_LIBS >&5 fi @@ -222645,9 +242806,9 @@ # library to "libtorque". So we have to check for both libpbs and # libtorque. First, check for libpbs. - orte_check_package_plm_tm_save_CPPFLAGS="$CPPFLAGS" - orte_check_package_plm_tm_save_LDFLAGS="$LDFLAGS" - orte_check_package_plm_tm_save_LIBS="$LIBS" + orte_check_package_ras_tm_save_CPPFLAGS="$CPPFLAGS" + orte_check_package_ras_tm_save_LDFLAGS="$LDFLAGS" + orte_check_package_ras_tm_save_LIBS="$LIBS" if test "$orte_check_tm_found" = "no"; then : if test "$orte_check_tm_happy" = "yes"; then : @@ -223183,14 +243344,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:223186: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS" >&5 +echo "configure:243347: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:223193: \$? = $opal_status" >&5 + echo "configure:243354: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -223900,14 +244061,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:223903: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS" >&5 +echo "configure:244064: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:223910: \$? = $opal_status" >&5 + echo "configure:244071: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -224617,14 +244778,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:224620: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltorque $LIBS $orte_check_tm_LIBS" >&5 +echo "configure:244781: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltorque $LIBS $orte_check_tm_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltorque $LIBS $orte_check_tm_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:224627: \$? = $opal_status" >&5 + echo "configure:244788: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -224941,9 +245102,9 @@ fi fi - CPPFLAGS="$orte_check_package_plm_tm_save_CPPFLAGS" - LDFLAGS="$orte_check_package_plm_tm_save_LDFLAGS" - LIBS="$orte_check_package_plm_tm_save_LIBS" + CPPFLAGS="$orte_check_package_ras_tm_save_CPPFLAGS" + LDFLAGS="$orte_check_package_ras_tm_save_LDFLAGS" + LIBS="$orte_check_package_ras_tm_save_LIBS" if test "$orte_check_tm_found" = "no" ; then orte_check_tm_happy=no @@ -225051,25 +245212,25 @@ # Did we find the right stuff? if test "$orte_check_tm_happy" = "yes"; then : - plm_tm_LIBS="$plm_tm_LIBS $orte_check_tm_LIBS" - plm_tm_LDFLAGS="$plm_tm_LDFLAGS $orte_check_tm_LDFLAGS" - plm_tm_CPPFLAGS="$plm_tm_CPPFLAGS $orte_check_tm_CPPFLAGS" + ras_tm_LIBS="$ras_tm_LIBS $orte_check_tm_LIBS" + ras_tm_LDFLAGS="$ras_tm_LDFLAGS $orte_check_tm_LDFLAGS" + ras_tm_CPPFLAGS="$ras_tm_CPPFLAGS $orte_check_tm_CPPFLAGS" # add the TM libraries to static builds as they are required - plm_tm_WRAPPER_EXTRA_LDFLAGS=$plm_tm_LDFLAGS - plm_tm_WRAPPER_EXTRA_LIBS=$plm_tm_LIBS - plm_tm_good=1 + ras_tm_WRAPPER_EXTRA_LDFLAGS=$ras_tm_LDFLAGS + ras_tm_WRAPPER_EXTRA_LIBS=$ras_tm_LIBS + ras_tm_good=1 else if test ! -z "$with_tm" && test "$with_tm" != "no"; then : as_fn_error $? "TM support requested but not found. Aborting" "$LINENO" 5 fi orte_check_tm_happy="no" - plm_tm_good=0 + ras_tm_good=0 fi # if check worked, set wrapper flags if so. # Evaluate succeed / fail - if test "$plm_tm_good" = "1"; then : + if test "$ras_tm_good" = "1"; then : should_build=$should_build else should_build=0 @@ -225088,7 +245249,7 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/plm/tm/post_configure.sh" + infile="$srcdir/orte/mca/ras/tm/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs all_components="$all_components tm" @@ -225096,37 +245257,37 @@ if test "$compile_mode" = "dso" ; then dso_components="$dso_components tm" else - if test "plm" = "common"; then + if test "ras" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/plm/tm/lib${ORTE_LIB_PREFIX}mca_plm_tm.la $static_ltlibs" + static_ltlibs="mca/ras/tm/lib${ORTE_LIB_PREFIX}mca_ras_tm.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/plm/tm/libmca_plm_tm.la $static_ltlibs" + static_ltlibs="mca/ras/tm/libmca_ras_tm.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_plm_tm_component;" >> $outfile.extern - echo " &mca_plm_tm_component, " >> $outfile.struct + echo "extern const mca_base_component_t mca_ras_tm_component;" >> $outfile.extern + echo " &mca_ras_tm_component, " >> $outfile.struct static_components="$static_components tm" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:tm can compile" >&5 -$as_echo_n "checking if MCA component plm:tm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:tm can compile" >&5 +$as_echo_n "checking if MCA component ras:tm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_plm" = "tm" ; then + if test "$DIRECT_ras" = "tm" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_plm_DIRECT_CALL_HEADER=$line" + str="MCA_orte_ras_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** plm component tm was supposed to be direct-called, but +as_fn_error $? "*** ras component tm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -225134,8 +245295,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_plm" = "tm" ; then -as_fn_error $? "*** plm component tm was supposed to be direct-called, but + if test "$DIRECT_ras" = "tm" ; then +as_fn_error $? "*** ras component tm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -225150,7 +245311,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$plm_tm_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$ras_tm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -225190,7 +245351,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_tm_LDFLAGS; do + for arg in $ras_tm_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -225271,7 +245432,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_tm_WRAPPER_EXTRA_LDFLAGS; do + for arg in $ras_tm_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -225313,7 +245474,7 @@ fi - if test "$plm_tm_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$ras_tm_WRAPPER_EXTRA_LIBS" = ""; then : @@ -225353,7 +245514,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_tm_LIBS; do + for arg in $ras_tm_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -225434,7 +245595,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_tm_WRAPPER_EXTRA_LIBS; do + for arg in $ras_tm_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -225482,7 +245643,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$plm_tm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$ras_tm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -225525,7 +245686,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $plm_tm_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $ras_tm_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -225568,21 +245729,21 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring plm_tm_WRAPPER_EXTRA_CPPFLAGS ($plm_tm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring plm_tm_WRAPPER_EXTRA_CPPFLAGS ($plm_tm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ras_tm_WRAPPER_EXTRA_CPPFLAGS ($ras_tm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring ras_tm_WRAPPER_EXTRA_CPPFLAGS ($ras_tm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:tm can compile" >&5 -$as_echo_n "checking if MCA component plm:tm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:tm can compile" >&5 +$as_echo_n "checking if MCA component ras:tm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_plm" = "tm" ; then + if test "$with_ras" = "tm" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tm\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"tm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 @@ -225590,8 +245751,8 @@ as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_plm" ; then - if test "$DIRECT_plm" = "tm" ; then + if test ! -z "$DIRECT_ras" ; then + if test "$DIRECT_ras" = "tm" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tm\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"tm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 @@ -225608,16 +245769,16 @@ # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_orte_plm_tm_DSO=1 + BUILD_orte_ras_tm_DSO=1 else - BUILD_orte_plm_tm_DSO=0 + BUILD_orte_ras_tm_DSO=0 fi - if test "$BUILD_orte_plm_tm_DSO" = "1"; then - MCA_BUILD_orte_plm_tm_DSO_TRUE= - MCA_BUILD_orte_plm_tm_DSO_FALSE='#' + if test "$BUILD_orte_ras_tm_DSO" = "1"; then + MCA_BUILD_orte_ras_tm_DSO_TRUE= + MCA_BUILD_orte_ras_tm_DSO_FALSE='#' else - MCA_BUILD_orte_plm_tm_DSO_TRUE='#' - MCA_BUILD_orte_plm_tm_DSO_FALSE= + MCA_BUILD_orte_ras_tm_DSO_TRUE='#' + MCA_BUILD_orte_ras_tm_DSO_FALSE= fi @@ -225641,16 +245802,16 @@ if test "1" != "0"; then : - for component_path in $srcdir/orte/mca/plm/* ; do + for component_path in $srcdir/orte/mca/ras/* ; do component="`basename $component_path`" if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component plm:$component (need to configure)" + opal_show_subsubsubtitle "MCA component ras:$component (need to configure)" opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/orte/mca/plm/$component" + component_path="$srcdir/orte/mca/ras/$component" want_component=0 # build if: @@ -225682,8 +245843,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_plm" ; then - if test "$DIRECT_plm" = "$component" ; then + if test ! -z "$DIRECT_ras" ; then + if test "$DIRECT_ras" = "$component" ; then want_component=1 else want_component=0 @@ -225692,10 +245853,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_plm" = "1"; then : + if test "$DISABLE_ras" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_plm_$component" + str="DISABLED_COMPONENT_CHECK=\$DISABLE_ras_$component" eval $str if test "$DISABLED_COMPONENT_CHECK" = "1" ; then want_component=0 @@ -225708,12 +245869,12 @@ fi - SHARED_FRAMEWORK="$DSO_plm" - str="SHARED_COMPONENT=\$DSO_plm_$component" + SHARED_FRAMEWORK="$DSO_ras" + str="SHARED_COMPONENT=\$DSO_ras_$component" eval $str - STATIC_FRAMEWORK="$STATIC_plm" - str="STATIC_COMPONENT=\$STATIC_plm_$component" + STATIC_FRAMEWORK="$STATIC_ras" + str="STATIC_COMPONENT=\$STATIC_ras_$component" eval $str shared_mode_override=static @@ -225732,9 +245893,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plm:$component compile mode" >&5 -$as_echo_n "checking for MCA component plm:$component compile mode... " >&6; } - if test "$DIRECT_plm" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ras:$component compile mode" >&5 +$as_echo_n "checking for MCA component ras:$component compile mode... " >&6; } + if test "$DIRECT_ras" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -225787,12 +245948,12 @@ # # Invoke configure in a specific subdirectory. # -# orte/mca/plm/$component is the directory to invoke in +# orte/mca/ras/$component is the directory to invoke in # $opal_subdir_args is the list of arguments to pass # should_build=1 is actions to execute upon success # should_build=0 is actions to execute upon failure # -subdir_dir="orte/mca/plm/$component" +subdir_dir="orte/mca/ras/$component" subdir_args="$opal_subdir_args" subdir_success="should_build=1" subdir_failure="should_build=0" @@ -225936,7 +246097,7 @@ # do some extra work to pass flags back from the # top-level configure, the way a configure.m4 # component would. - infile="$srcdir/orte/mca/plm/all_components/post_configure.sh" + infile="$srcdir/orte/mca/ras/all_components/post_configure.sh" if test -f $infile; then # First check for the ABORT tag @@ -225950,12 +246111,12 @@ line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - plm_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + ras_all_components_WRAPPER_EXTRA_LDFLAGS="$line" fi line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - plm_all_components_WRAPPER_EXTRA_LIBS="$line" + ras_all_components_WRAPPER_EXTRA_LIBS="$line" fi fi @@ -225964,7 +246125,7 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/plm/$component/post_configure.sh" + infile="$srcdir/orte/mca/ras/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs all_components="$all_components $component" @@ -225972,37 +246133,37 @@ if test "$compile_mode" = "dso" ; then dso_components="$dso_components $component" else - if test "plm" = "common"; then + if test "ras" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/plm/$component/lib${ORTE_LIB_PREFIX}mca_plm_$component.la $static_ltlibs" + static_ltlibs="mca/ras/$component/lib${ORTE_LIB_PREFIX}mca_ras_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/plm/$component/libmca_plm_$component.la $static_ltlibs" + static_ltlibs="mca/ras/$component/libmca_ras_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_plm_$component_component;" >> $outfile.extern - echo " &mca_plm_$component_component, " >> $outfile.struct + echo "extern const mca_base_component_t mca_ras_$component_component;" >> $outfile.extern + echo " &mca_ras_$component_component, " >> $outfile.struct static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:$component can compile" >&5 -$as_echo_n "checking if MCA component plm:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:$component can compile" >&5 +$as_echo_n "checking if MCA component ras:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_plm" = "$component" ; then + if test "$DIRECT_ras" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_plm_DIRECT_CALL_HEADER=$line" + str="MCA_orte_ras_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** plm component $component was supposed to be direct-called, but +as_fn_error $? "*** ras component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -226010,8 +246171,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_plm" = "$component" ; then -as_fn_error $? "*** plm component $component was supposed to be direct-called, but + if test "$DIRECT_ras" = "$component" ; then +as_fn_error $? "*** ras component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -226026,7 +246187,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$plm_$component_WRAPPER_EXTRA_LDFLAGS" + str="line=\$ras_$component_WRAPPER_EXTRA_LDFLAGS" eval "$str" @@ -226107,7 +246268,7 @@ unset $opal_var done -str="line=\$plm_$component_WRAPPER_EXTRA_LIBS" +str="line=\$ras_$component_WRAPPER_EXTRA_LIBS" eval "$str" @@ -226198,14 +246359,14 @@ else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plm:$component can compile" >&5 -$as_echo_n "checking if MCA component plm:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:$component can compile" >&5 +$as_echo_n "checking if MCA component ras:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_plm" = "$component" ; then + if test "$with_ras" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 @@ -226213,8 +246374,8 @@ as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_plm" ; then - if test "$DIRECT_plm" = "$component" ; then + if test ! -z "$DIRECT_ras" ; then + if test "$DIRECT_ras" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 @@ -226229,10 +246390,10 @@ fi - MCA_orte_plm_ALL_COMPONENTS="$all_components" - MCA_orte_plm_STATIC_COMPONENTS="$static_components" - MCA_orte_plm_DSO_COMPONENTS="$dso_components" - MCA_orte_plm_STATIC_LTLIBS="$static_ltlibs" + MCA_orte_ras_ALL_COMPONENTS="$all_components" + MCA_orte_ras_STATIC_COMPONENTS="$static_components" + MCA_orte_ras_DSO_COMPONENTS="$dso_components" + MCA_orte_ras_STATIC_LTLIBS="$static_ltlibs" @@ -226240,23 +246401,23 @@ - MCA_orte_plm_ALL_SUBDIRS= + MCA_orte_ras_ALL_SUBDIRS= for item in $all_components ; do - MCA_orte_plm_ALL_SUBDIRS="$MCA_orte_plm_ALL_SUBDIRS mca/plm/$item" + MCA_orte_ras_ALL_SUBDIRS="$MCA_orte_ras_ALL_SUBDIRS mca/ras/$item" done - MCA_orte_plm_STATIC_SUBDIRS= + MCA_orte_ras_STATIC_SUBDIRS= for item in $static_components ; do - MCA_orte_plm_STATIC_SUBDIRS="$MCA_orte_plm_STATIC_SUBDIRS mca/plm/$item" + MCA_orte_ras_STATIC_SUBDIRS="$MCA_orte_ras_STATIC_SUBDIRS mca/ras/$item" done - MCA_orte_plm_DSO_SUBDIRS= + MCA_orte_ras_DSO_SUBDIRS= for item in $dso_components ; do - MCA_orte_plm_DSO_SUBDIRS="$MCA_orte_plm_DSO_SUBDIRS mca/plm/$item" + MCA_orte_ras_DSO_SUBDIRS="$MCA_orte_ras_DSO_SUBDIRS mca/ras/$item" done @@ -226264,7 +246425,7 @@ # Create the final .h file that will be included in the type's # top-level glue. This lists all the static components. We don't # need to do this for "common". - if test "plm" != "common"; then + if test "ras" != "common"; then cat > $outfile <&5 -$as_echo_n "checking for no configure components in framework ras... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simulator" >&5 -$as_echo "simulator" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework ras" >&5 -$as_echo_n "checking for m4 configure components in framework ras... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: alps, gridengine, lsf, slurm, tm" >&5 -$as_echo "alps, gridengine, lsf, slurm, tm" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework regx" >&5 +$as_echo_n "checking for no configure components in framework regx... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: fwd, naive, reverse" >&5 +$as_echo "fwd, naive, reverse" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework regx" >&5 +$as_echo_n "checking for m4 configure components in framework regx... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } # If there are components in the no configure list, but we're # doing one of the "special" selection logics, abort with a @@ -226355,13 +246516,13 @@ # run the configure logic for the no-config components - opal_show_subsubsubtitle "MCA component ras:simulator (no configuration)" + opal_show_subsubsubtitle "MCA component regx:fwd (no configuration)" opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/ras/simulator" + component_path="$srcdir/orte/mca/regx/fwd" want_component=0 # build if: @@ -226393,8 +246554,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_ras" ; then - if test "$DIRECT_ras" = "simulator" ; then + if test ! -z "$DIRECT_regx" ; then + if test "$DIRECT_regx" = "fwd" ; then want_component=1 else want_component=0 @@ -226403,10 +246564,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_ras" = "1"; then : + if test "$DISABLE_regx" = "1"; then : want_component=0 fi - if test "$DISABLE_ras_simulator" = "1"; then : + if test "$DISABLE_regx_fwd" = "1"; then : want_component=0 fi @@ -226417,11 +246578,11 @@ fi - SHARED_FRAMEWORK="$DSO_ras" - SHARED_COMPONENT="$DSO_ras_simulator" + SHARED_FRAMEWORK="$DSO_regx" + SHARED_COMPONENT="$DSO_regx_fwd" - STATIC_FRAMEWORK="$STATIC_ras" - STATIC_COMPONENT="$STATIC_ras_simulator" + STATIC_FRAMEWORK="$STATIC_regx" + STATIC_COMPONENT="$STATIC_regx_fwd" shared_mode_override=static @@ -226439,9 +246600,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ras:simulator compile mode" >&5 -$as_echo_n "checking for MCA component ras:simulator compile mode... " >&6; } - if test "$DIRECT_ras" = "simulator" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component regx:fwd compile mode" >&5 +$as_echo_n "checking for MCA component regx:fwd compile mode... " >&6; } + if test "$DIRECT_regx" = "fwd" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -226457,45 +246618,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/ras/simulator/post_configure.sh" + infile="$srcdir/orte/mca/regx/fwd/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components simulator" + all_components="$all_components fwd" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components simulator" + dso_components="$dso_components fwd" else - if test "ras" = "common"; then + if test "regx" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/ras/simulator/lib${ORTE_LIB_PREFIX}mca_ras_simulator.la $static_ltlibs" + static_ltlibs="mca/regx/fwd/lib${ORTE_LIB_PREFIX}mca_regx_fwd.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ras/simulator/libmca_ras_simulator.la $static_ltlibs" + static_ltlibs="mca/regx/fwd/libmca_regx_fwd.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_ras_simulator_component;" >> $outfile.extern - echo " &mca_ras_simulator_component, " >> $outfile.struct - static_components="$static_components simulator" + echo "extern const mca_base_component_t mca_regx_fwd_component;" >> $outfile.extern + echo " &mca_regx_fwd_component, " >> $outfile.struct + static_components="$static_components fwd" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:simulator can compile" >&5 -$as_echo_n "checking if MCA component ras:simulator can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component regx:fwd can compile" >&5 +$as_echo_n "checking if MCA component regx:fwd can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_ras" = "simulator" ; then + if test "$DIRECT_regx" = "fwd" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_ras_DIRECT_CALL_HEADER=$line" + str="MCA_orte_regx_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** ras component simulator was supposed to be direct-called, but +as_fn_error $? "*** regx component fwd was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -226503,8 +246664,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ras" = "simulator" ; then -as_fn_error $? "*** ras component simulator was supposed to be direct-called, but + if test "$DIRECT_regx" = "fwd" ; then +as_fn_error $? "*** regx component fwd was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -226519,7 +246680,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$ras_simulator_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$regx_fwd_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -226559,7 +246720,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_simulator_LDFLAGS; do + for arg in $regx_fwd_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -226640,7 +246801,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_simulator_WRAPPER_EXTRA_LDFLAGS; do + for arg in $regx_fwd_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -226682,7 +246843,7 @@ fi - if test "$ras_simulator_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$regx_fwd_WRAPPER_EXTRA_LIBS" = ""; then : @@ -226722,7 +246883,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_simulator_LIBS; do + for arg in $regx_fwd_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -226803,7 +246964,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_simulator_WRAPPER_EXTRA_LIBS; do + for arg in $regx_fwd_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -226851,7 +247012,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$ras_simulator_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$regx_fwd_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -226894,7 +247055,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_simulator_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $regx_fwd_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -226937,32 +247098,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ras_simulator_WRAPPER_EXTRA_CPPFLAGS ($ras_simulator_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring ras_simulator_WRAPPER_EXTRA_CPPFLAGS ($ras_simulator_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring regx_fwd_WRAPPER_EXTRA_CPPFLAGS ($regx_fwd_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring regx_fwd_WRAPPER_EXTRA_CPPFLAGS ($regx_fwd_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:simulator can compile" >&5 -$as_echo_n "checking if MCA component ras:simulator can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component regx:fwd can compile" >&5 +$as_echo_n "checking if MCA component regx:fwd can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_ras" = "simulator" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"simulator\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"simulator\" failed to configure properly" >&2;} + if test "$with_regx" = "fwd" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"fwd\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"fwd\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_ras" ; then - if test "$DIRECT_ras" = "simulator" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"simulator\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"simulator\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_regx" ; then + if test "$DIRECT_regx" = "fwd" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"fwd\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"fwd\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -226970,879 +247131,170 @@ fi # add component to all component list - all_components="$all_components simulator" + all_components="$all_components fwd" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso" ; then - BUILD_orte_ras_simulator_DSO=1 + BUILD_orte_regx_fwd_DSO=1 else - BUILD_orte_ras_simulator_DSO=0 + BUILD_orte_regx_fwd_DSO=0 fi - if test "$BUILD_orte_ras_simulator_DSO" = "1"; then - MCA_BUILD_orte_ras_simulator_DSO_TRUE= - MCA_BUILD_orte_ras_simulator_DSO_FALSE='#' + if test "$BUILD_orte_regx_fwd_DSO" = "1"; then + MCA_BUILD_orte_regx_fwd_DSO_TRUE= + MCA_BUILD_orte_regx_fwd_DSO_FALSE='#' else - MCA_BUILD_orte_ras_simulator_DSO_TRUE='#' - MCA_BUILD_orte_ras_simulator_DSO_FALSE= + MCA_BUILD_orte_regx_fwd_DSO_TRUE='#' + MCA_BUILD_orte_regx_fwd_DSO_FALSE= fi - ac_config_files="$ac_config_files orte/mca/ras/simulator/Makefile" + ac_config_files="$ac_config_files orte/mca/regx/fwd/Makefile" unset compile_mode + opal_show_subsubsubtitle "MCA component regx:naive (no configuration)" - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - opal_show_subsubsubtitle "MCA component ras:alps (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/orte/mca/ras/alps" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_ras" ; then - if test "$DIRECT_ras" = "alps" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_ras" = "1"; then : - want_component=0 -fi - if test "$DISABLE_ras_alps" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_ras" - SHARED_COMPONENT="$DSO_ras_alps" - - STATIC_FRAMEWORK="$STATIC_ras" - STATIC_COMPONENT="$STATIC_ras_alps" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ras:alps compile mode" >&5 -$as_echo_n "checking for MCA component ras:alps compile mode... " >&6; } - if test "$DIRECT_ras" = "alps" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files orte/mca/ras/alps/Makefile" - - - - if test -z "$opal_check_cray_alps_happy"; then - - -# Check whether --with-alps was given. -if test "${with_alps+set}" = set; then : - withval=$with_alps; -else - with_alps=auto -fi - - - if test -f /etc/opt/cray/release/clerelease; then - cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` - else - cle_level="unknown" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 -$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } - if test "$cle_level" = "4" && test "$with_alps" != "no"; then : - - -# -# if we've gotten here, its because we are building on a CLE 4 system -# - opal_check_alps_cle4_libdir_happy="no" - opal_check_alps_cle4_dir_happy="no" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 -$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } - - -# Check whether --with-alps-libdir was given. -if test "${with_alps_libdir+set}" = set; then : - withval=$with_alps_libdir; -fi - - -# -# check to see if Open MPI is being built on a CLE 4 eslogin node -# - if test -f /etc/opt/cray/release/ESLrelease; then : - default_alps_dir="/opt/cray/xe-sysroot/default/usr" -else - default_alps_dir="/usr" -fi - - if test -z "$with_alps_libdir"; then : - if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : - if test -d "$with_alps_libdir/lib64"; then : - opal_check_alps_libdir="$with_alps_libdir/lib64" -else - opal_check_alps_libdir="$with_alps_libdir/lib" -fi -else - opal_check_alps_libdir="$default_alps_dir/lib/alps" -fi - -fi - - if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : - opal_check_alps_dir=$default_alps_dir -else - opal_check_alps_dir=$with_alps -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 -$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } - if test -f "$opal_check_alps_libdir/libalps.a"; then : - opal_check_alps_libdir_cle4_happy="yes" -else - opal_check_alps_libdir_cle4_happy="no", - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 -$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } - if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : - opal_check_alps_dir_cle4_happy="yes" -else - opal_check_alps_dir_cle4_happy="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : - CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" - CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - opal_check_cray_alps_happy="yes" -else - opal_check_cray_alps_happy="no" -fi - -else - if test "$with_alps" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy=no - ras_alps_happy="no" -else - if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 -$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } - -if test -n "$CRAY_ALPSLLI_CFLAGS"; then - pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSLLI_LIBS"; then - pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` - else - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -else - CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS - CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS - CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 -$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } - -if test -n "$CRAY_ALPSUTIL_CFLAGS"; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSUTIL_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` - else - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -else - CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS - CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS - CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 -$as_echo_n "checking for CRAY_ALPS... " >&6; } - -if test -n "$CRAY_ALPS_CFLAGS"; then - pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPS_LIBS"; then - pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPS_STATIC_LIBS"; then - pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` - else - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPS_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -else - CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS - CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS - CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 -$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } - -if test -n "$CRAY_WLM_DETECT_CFLAGS"; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_WLM_DETECT_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` - else - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -else - CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS - CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS - CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" - -cat >>confdefs.h <<_ACEOF -#define CRAY_WLM_DETECT 1 -_ACEOF - - -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 -$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 -$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -fi - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 -$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } - - if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : - CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS - CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS -fi - - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - fi - - if test "$opal_check_cray_alps_happy" = "yes"; then : - ras_alps_LDFLAGS="$ras_alps_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" - ras_alps_CPPFLAGS="$ras_alps_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" - ras_alps_LIBS="$ras_alps_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - ras_alps_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - ras_alps_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - ras_alps_happy="yes" -else - ras_alps_happy="no" -fi + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - # check for alps/apInfo.h - # save current CPPFLAGS - MCA_orte_ras_save_CPPFLAGS="$CPPFLAGS" - # add flags obtained from OPAL_CHECK_ALPS - CPPFLAGS="$CPPFLAGS $ras_alps_CPPFLAGS" + component_path="$srcdir/orte/mca/regx/naive" + want_component=0 - for ac_header in alps/apInfo.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "alps/apInfo.h" "ac_cv_header_alps_apInfo_h" "$ac_includes_default" -if test "x$ac_cv_header_alps_apInfo_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_ALPS_APINFO_H 1 -_ACEOF + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_regx" ; then + if test "$DIRECT_regx" = "naive" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_regx" = "1"; then : + want_component=0 +fi + if test "$DISABLE_regx_naive" = "1"; then : + want_component=0 +fi + if test "$want_component" = "1"; then : + should_build=1 else - ras_alps_happy="no" + should_build=0 fi -done + SHARED_FRAMEWORK="$DSO_regx" + SHARED_COMPONENT="$DSO_regx_naive" - # restore CPPFLAGS - CPPFLAGS="$MCA_orte_ras_save_CPPFLAGS" + STATIC_FRAMEWORK="$STATIC_regx" + STATIC_COMPONENT="$STATIC_regx_naive" + shared_mode_override=static + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - if test "$ras_alps_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component regx:naive compile mode" >&5 +$as_echo_n "checking for MCA component regx:naive compile mode... " >&6; } + if test "$DIRECT_regx" = "naive" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/ras/alps/post_configure.sh" + infile="$srcdir/orte/mca/regx/naive/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components alps" + all_components="$all_components naive" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components alps" + dso_components="$dso_components naive" else - if test "ras" = "common"; then + if test "regx" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/ras/alps/lib${ORTE_LIB_PREFIX}mca_ras_alps.la $static_ltlibs" + static_ltlibs="mca/regx/naive/lib${ORTE_LIB_PREFIX}mca_regx_naive.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ras/alps/libmca_ras_alps.la $static_ltlibs" + static_ltlibs="mca/regx/naive/libmca_regx_naive.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_ras_alps_component;" >> $outfile.extern - echo " &mca_ras_alps_component, " >> $outfile.struct - static_components="$static_components alps" + echo "extern const mca_base_component_t mca_regx_naive_component;" >> $outfile.extern + echo " &mca_regx_naive_component, " >> $outfile.struct + static_components="$static_components naive" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:alps can compile" >&5 -$as_echo_n "checking if MCA component ras:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component regx:naive can compile" >&5 +$as_echo_n "checking if MCA component regx:naive can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_ras" = "alps" ; then + if test "$DIRECT_regx" = "naive" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_ras_DIRECT_CALL_HEADER=$line" + str="MCA_orte_regx_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** ras component alps was supposed to be direct-called, but +as_fn_error $? "*** regx component naive was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -227850,8 +247302,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ras" = "alps" ; then -as_fn_error $? "*** ras component alps was supposed to be direct-called, but + if test "$DIRECT_regx" = "naive" ; then +as_fn_error $? "*** regx component naive was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -227866,7 +247318,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$ras_alps_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$regx_naive_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -227906,7 +247358,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_alps_LDFLAGS; do + for arg in $regx_naive_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -227987,7 +247439,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_alps_WRAPPER_EXTRA_LDFLAGS; do + for arg in $regx_naive_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -228029,7 +247481,7 @@ fi - if test "$ras_alps_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$regx_naive_WRAPPER_EXTRA_LIBS" = ""; then : @@ -228069,7 +247521,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_alps_LIBS; do + for arg in $regx_naive_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -228150,7 +247602,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_alps_WRAPPER_EXTRA_LIBS; do + for arg in $regx_naive_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -228198,7 +247650,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$ras_alps_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$regx_naive_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -228241,7 +247693,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_alps_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $regx_naive_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -228284,78 +247736,69 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ras_alps_WRAPPER_EXTRA_CPPFLAGS ($ras_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring ras_alps_WRAPPER_EXTRA_CPPFLAGS ($ras_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring regx_naive_WRAPPER_EXTRA_CPPFLAGS ($regx_naive_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring regx_naive_WRAPPER_EXTRA_CPPFLAGS ($regx_naive_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:alps can compile" >&5 -$as_echo_n "checking if MCA component ras:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component regx:naive can compile" >&5 +$as_echo_n "checking if MCA component regx:naive can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_ras" = "alps" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} + if test "$with_regx" = "naive" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"naive\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"naive\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_ras" ; then - if test "$DIRECT_ras" = "alps" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_regx" ; then + if test "$DIRECT_regx" = "naive" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"naive\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"naive\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components alps" -fi - - + # add component to all component list + all_components="$all_components naive" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_ras_alps_DSO=1 -else - BUILD_orte_ras_alps_DSO=0 -fi - if test "$BUILD_orte_ras_alps_DSO" = "1"; then - MCA_BUILD_orte_ras_alps_DSO_TRUE= - MCA_BUILD_orte_ras_alps_DSO_FALSE='#' -else - MCA_BUILD_orte_ras_alps_DSO_TRUE='#' - MCA_BUILD_orte_ras_alps_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 + if test "$compile_mode" = "dso" ; then + BUILD_orte_regx_naive_DSO=1 + else + BUILD_orte_regx_naive_DSO=0 + fi + if test "$BUILD_orte_regx_naive_DSO" = "1"; then + MCA_BUILD_orte_regx_naive_DSO_TRUE= + MCA_BUILD_orte_regx_naive_DSO_FALSE='#' else - components_last_result=0 + MCA_BUILD_orte_regx_naive_DSO_TRUE='#' + MCA_BUILD_orte_regx_naive_DSO_FALSE= fi - unset compile_mode - + ac_config_files="$ac_config_files orte/mca/regx/naive/Makefile" + unset compile_mode - opal_show_subsubsubtitle "MCA component ras:gridengine (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component regx:reverse (no configuration)" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/ras/gridengine" + component_path="$srcdir/orte/mca/regx/reverse" want_component=0 # build if: @@ -228387,8 +247830,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_ras" ; then - if test "$DIRECT_ras" = "gridengine" ; then + if test ! -z "$DIRECT_regx" ; then + if test "$DIRECT_regx" = "reverse" ; then want_component=1 else want_component=0 @@ -228397,27 +247840,25 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_ras" = "1"; then : + if test "$DISABLE_regx" = "1"; then : want_component=0 fi - if test "$DISABLE_ras_gridengine" = "1"; then : + if test "$DISABLE_regx_reverse" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_ras" - SHARED_COMPONENT="$DSO_ras_gridengine" + SHARED_FRAMEWORK="$DSO_regx" + SHARED_COMPONENT="$DSO_regx_reverse" - STATIC_FRAMEWORK="$STATIC_ras" - STATIC_COMPONENT="$STATIC_ras_gridengine" + STATIC_FRAMEWORK="$STATIC_regx" + STATIC_COMPONENT="$STATIC_regx_reverse" shared_mode_override=static @@ -228435,9 +247876,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ras:gridengine compile mode" >&5 -$as_echo_n "checking for MCA component ras:gridengine compile mode... " >&6; } - if test "$DIRECT_ras" = "gridengine" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component regx:reverse compile mode" >&5 +$as_echo_n "checking for MCA component regx:reverse compile mode... " >&6; } + if test "$DIRECT_regx" = "reverse" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -228445,89 +247886,77 @@ $as_echo "$compile_mode" >&6; } fi + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # try to configure the component - - ac_config_files="$ac_config_files orte/mca/ras/gridengine/Makefile" + if test "$should_build" = "1" ; then - if test -z "$orte_gridengine_build" ; then + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/regx/reverse/post_configure.sh" -# Check whether --with-sge was given. -if test "${with_sge+set}" = set; then : - withval=$with_sge; -fi + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components reverse" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components reverse" + else + if test "regx" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/regx/reverse/lib${ORTE_LIB_PREFIX}mca_regx_reverse.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/regx/reverse/libmca_regx_reverse.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_regx_reverse_component;" >> $outfile.extern + echo " &mca_regx_reverse_component, " >> $outfile.struct + static_components="$static_components reverse" + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if user requested SGE build" >&5 -$as_echo_n "checking if user requested SGE build... " >&6; } - orte_gridengine_build="no" - if test "$with_sge" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component regx:reverse can compile" >&5 +$as_echo_n "checking if MCA component regx:reverse can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - orte_gridengine_build=yes -else - if test "$with_sge" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not specified; checking environment" >&5 -$as_echo "not specified; checking environment" >&6; } - # Extract the first word of "qrsh", so it can be a program name with args. -set dummy qrsh; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_QRSH+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$QRSH"; then - ac_cv_prog_QRSH="$QRSH" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_QRSH="qrsh" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -QRSH=$ac_cv_prog_QRSH -if test -n "$QRSH"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $QRSH" >&5 -$as_echo "$QRSH" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_regx" = "reverse" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_regx_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** regx component reverse was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_regx" = "reverse" ; then +as_fn_error $? "*** regx component reverse was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - if test "$QRSH" != ""; then : - orte_gridengine_build=yes -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SGE_ROOT environment variable" >&5 -$as_echo_n "checking for SGE_ROOT environment variable... " >&6; } - if test "$SGE_ROOT" != ""; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - orte_gridengine_build=yes -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } -fi -fi -fi -fi - + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$regx_reverse_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -228540,7 +247969,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -228559,7 +247988,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -228567,20 +247996,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="Grid Engine: $orte_gridengine_build" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + for arg in $regx_reverse_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -228604,92 +248037,89 @@ done - fi - - if test "$orte_gridengine_build" = "yes"; then : - ras_gridengine_happy="yes" else - ras_gridengine_happy="no" -fi - if test "$ras_gridengine_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - if test "$should_build" = "1"; then : + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/ras/gridengine/post_configure.sh" + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components gridengine" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components gridengine" - else - if test "ras" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/ras/gridengine/lib${ORTE_LIB_PREFIX}mca_ras_gridengine.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ras/gridengine/libmca_ras_gridengine.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_ras_gridengine_component;" >> $outfile.extern - echo " &mca_ras_gridengine_component, " >> $outfile.struct - static_components="$static_components gridengine" - fi + for arg in $regx_reverse_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:gridengine can compile" >&5 -$as_echo_n "checking if MCA component ras:gridengine can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_ras" = "gridengine" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_ras_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** ras component gridengine was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ras" = "gridengine" ; then -as_fn_error $? "*** ras component gridengine was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$ras_gridengine_WRAPPER_EXTRA_LDFLAGS" = ""; then : + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$regx_reverse_WRAPPER_EXTRA_LIBS" = ""; then : @@ -228729,21 +248159,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_gridengine_LDFLAGS; do + for arg in $regx_reverse_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -228810,21 +248240,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_gridengine_WRAPPER_EXTRA_LDFLAGS; do + for arg in $regx_reverse_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -228852,7 +248282,16 @@ fi - if test "$ras_gridengine_WRAPPER_EXTRA_LIBS" = ""; then : + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$regx_reverse_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -228892,25 +248331,390 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_gridengine_LIBS; do + for arg in $regx_reverse_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_cppflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring regx_reverse_WRAPPER_EXTRA_CPPFLAGS ($regx_reverse_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring regx_reverse_WRAPPER_EXTRA_CPPFLAGS ($regx_reverse_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component regx:reverse can compile" >&5 +$as_echo_n "checking if MCA component regx:reverse can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_regx" = "reverse" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"reverse\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"reverse\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_regx" ; then + if test "$DIRECT_regx" = "reverse" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"reverse\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"reverse\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components reverse" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_regx_reverse_DSO=1 + else + BUILD_orte_regx_reverse_DSO=0 + fi + if test "$BUILD_orte_regx_reverse_DSO" = "1"; then + MCA_BUILD_orte_regx_reverse_DSO_TRUE= + MCA_BUILD_orte_regx_reverse_DSO_FALSE='#' +else + MCA_BUILD_orte_regx_reverse_DSO_TRUE='#' + MCA_BUILD_orte_regx_reverse_DSO_FALSE= +fi + + + ac_config_files="$ac_config_files orte/mca/regx/reverse/Makefile" + + + unset compile_mode + + + # configure components that use built-in configuration scripts + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/orte/mca/regx/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component regx:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/orte/mca/regx/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_regx" ; then + if test "$DIRECT_regx" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_regx" = "1"; then : + want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_regx_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 fi + + + SHARED_FRAMEWORK="$DSO_regx" + str="SHARED_COMPONENT=\$DSO_regx_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_regx" + str="STATIC_COMPONENT=\$STATIC_regx_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component regx:$component compile mode" >&5 +$as_echo_n "checking for MCA component regx:$component compile mode... " >&6; } + if test "$DIRECT_regx" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + +# +# Invoke configure in a specific subdirectory. +# +# orte/mca/regx/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="orte/mca/regx/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -228932,8 +248736,105 @@ unset $opal_var done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/orte/mca/regx/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + regx_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + regx_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/regx/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "regx" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/regx/$component/lib${ORTE_LIB_PREFIX}mca_regx_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/regx/$component/libmca_regx_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_regx_$component_component;" >> $outfile.extern + echo " &mca_regx_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component regx:$component can compile" >&5 +$as_echo_n "checking if MCA component regx:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_regx" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_regx_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** regx component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_regx" = "$component" ; then +as_fn_error $? "*** regx component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi -else + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$regx_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -228973,21 +248874,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_gridengine_WRAPPER_EXTRA_LIBS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -229013,18 +248914,8 @@ unset $opal_var done - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$ras_gridengine_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : +str="line=\$regx_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -229064,21 +248955,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_gridengine_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -229105,80 +248996,179 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ras_gridengine_WRAPPER_EXTRA_CPPFLAGS ($ras_gridengine_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring ras_gridengine_WRAPPER_EXTRA_CPPFLAGS ($ras_gridengine_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + fi -else + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:gridengine can compile" >&5 -$as_echo_n "checking if MCA component ras:gridengine can compile... " >&6; } + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component regx:$component can compile" >&5 +$as_echo_n "checking if MCA component regx:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_ras" = "gridengine" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"gridengine\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"gridengine\" failed to configure properly" >&2;} + if test "$with_regx" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_ras" ; then - if test "$DIRECT_ras" = "gridengine" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"gridengine\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"gridengine\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_regx" ; then + if test "$DIRECT_regx" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components gridengine" + fi + fi + done + fi + MCA_orte_regx_ALL_COMPONENTS="$all_components" + MCA_orte_regx_STATIC_COMPONENTS="$static_components" + MCA_orte_regx_DSO_COMPONENTS="$dso_components" + MCA_orte_regx_STATIC_LTLIBS="$static_ltlibs" + - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_ras_gridengine_DSO=1 -else - BUILD_orte_ras_gridengine_DSO=0 -fi - if test "$BUILD_orte_ras_gridengine_DSO" = "1"; then - MCA_BUILD_orte_ras_gridengine_DSO_TRUE= - MCA_BUILD_orte_ras_gridengine_DSO_FALSE='#' -else - MCA_BUILD_orte_ras_gridengine_DSO_TRUE='#' - MCA_BUILD_orte_ras_gridengine_DSO_FALSE= -fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - unset compile_mode + MCA_orte_regx_ALL_SUBDIRS= + for item in $all_components ; do + MCA_orte_regx_ALL_SUBDIRS="$MCA_orte_regx_ALL_SUBDIRS mca/regx/$item" + done + MCA_orte_regx_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_orte_regx_STATIC_SUBDIRS="$MCA_orte_regx_STATIC_SUBDIRS mca/regx/$item" + done - opal_show_subsubsubtitle "MCA component ras:lsf (m4 configuration macro)" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + MCA_orte_regx_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_orte_regx_DSO_SUBDIRS="$MCA_orte_regx_DSO_SUBDIRS mca/regx/$item" + done - component_path="$srcdir/orte/mca/ras/lsf" + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "regx" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS rmaps" + MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/rmaps" + MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_rmaps_ALL_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_rmaps_DSO_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_rmaps_STATIC_SUBDIRS)" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/rmaps/libmca_rmaps.la" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_rmaps_STATIC_LTLIBS)" + + opal_show_subsubtitle "Configuring MCA framework rmaps" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=orte/mca/rmaps/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files orte/mca/rmaps/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework rmaps" >&5 +$as_echo_n "checking for no configure components in framework rmaps... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: mindist, ppr, rank_file, resilient, round_robin, seq" >&5 +$as_echo "mindist, ppr, rank_file, resilient, round_robin, seq" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework rmaps" >&5 +$as_echo_n "checking for m4 configure components in framework rmaps... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + opal_show_subsubsubtitle "MCA component rmaps:mindist (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/orte/mca/rmaps/mindist" want_component=0 # build if: @@ -229210,8 +249200,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_ras" ; then - if test "$DIRECT_ras" = "lsf" ; then + if test ! -z "$DIRECT_rmaps" ; then + if test "$DIRECT_rmaps" = "mindist" ; then want_component=1 else want_component=0 @@ -229220,27 +249210,25 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_ras" = "1"; then : + if test "$DISABLE_rmaps" = "1"; then : want_component=0 fi - if test "$DISABLE_ras_lsf" = "1"; then : + if test "$DISABLE_rmaps_mindist" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_ras" - SHARED_COMPONENT="$DSO_ras_lsf" + SHARED_FRAMEWORK="$DSO_rmaps" + SHARED_COMPONENT="$DSO_rmaps_mindist" - STATIC_FRAMEWORK="$STATIC_ras" - STATIC_COMPONENT="$STATIC_ras_lsf" + STATIC_FRAMEWORK="$STATIC_rmaps" + STATIC_COMPONENT="$STATIC_rmaps_mindist" shared_mode_override=static @@ -229258,9 +249246,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ras:lsf compile mode" >&5 -$as_echo_n "checking for MCA component ras:lsf compile mode... " >&6; } - if test "$DIRECT_ras" = "lsf" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rmaps:mindist compile mode" >&5 +$as_echo_n "checking for MCA component rmaps:mindist compile mode... " >&6; } + if test "$DIRECT_rmaps" = "mindist" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -229268,254 +249256,77 @@ $as_echo "$compile_mode" >&6; } fi + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # try to configure the component - - ac_config_files="$ac_config_files orte/mca/ras/lsf/Makefile" - - - - if test -z "$orte_check_lsf_happy"; then : - - -# Check whether --with-lsf was given. -if test "${with_lsf+set}" = set; then : - withval=$with_lsf; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-lsf value" >&5 -$as_echo_n "checking --with-lsf value... " >&6; } - if test "$with_lsf" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-lsf)" >&5 -$as_echo "simple no (specified --without-lsf)" >&6; } -else - if test "$with_lsf" = "yes" || test "x$with_lsf" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_lsf"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_lsf not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_lsf not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_lsf/include/lsf/lsbatch.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_lsf/include/lsf/lsbatch.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_lsf/include/lsf/lsbatch.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_lsf)" >&5 -$as_echo "sanity check ok ($with_lsf)" >&6; } - -fi - - -fi - - -fi - - -fi - - -# Check whether --with-lsf-libdir was given. -if test "${with_lsf_libdir+set}" = set; then : - withval=$with_lsf_libdir; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-lsf-libdir value" >&5 -$as_echo_n "checking --with-lsf-libdir value... " >&6; } - if test "$with_lsf_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-lsf-libdir)" >&5 -$as_echo "simple no (specified --without-lsf-libdir)" >&6; } -else - if test "$with_lsf_libdir" = "yes" || test "x$with_lsf_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_lsf_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_lsf_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_lsf_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_lsf_libdir/libbat.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_lsf_libdir/libbat.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_lsf_libdir/libbat.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_lsf_libdir)" >&5 -$as_echo "sanity check ok ($with_lsf_libdir)" >&6; } - -fi - - -fi - - -fi - - -fi - - - if test "$with_lsf" != "no"; then : - - # Defaults - orte_check_lsf_dir_msg="compiler default" - orte_check_lsf_libdir_msg="linker default" - - # Save directory names if supplied - if test ! -z "$with_lsf" && test "$with_lsf" != "yes"; then : - orte_check_lsf_dir="$with_lsf" - orte_check_lsf_dir_msg="$orte_check_lsf_dir (from --with-lsf)" -fi - if test ! -z "$with_lsf_libdir" && test "$with_lsf_libdir" != "yes"; then : - orte_check_lsf_libdir="$with_lsf_libdir" - orte_check_lsf_libdir_msg="$orte_check_lsf_libdir (from --with-lsf-libdir)" -fi - - # If no directories were specified, look for LSF_LIBDIR, - # LSF_INCLUDEDIR, and/or LSF_ENVDIR. - if test -z "$orte_check_lsf_dir" && test -z "$orte_check_lsf_libdir"; then : - if test ! -z "$LSF_ENVDIR" && test -z "$LSF_LIBDIR" && test -f "$LSF_ENVDIR/lsf.conf"; then : - LSF_LIBDIR=`egrep ^LSF_LIBDIR= $LSF_ENVDIR/lsf.conf | cut -d= -f2-` -fi - if test ! -z "$LSF_ENVDIR" && test -z "$LSF_INCLUDEDIR" && test -f "$LSF_ENVDIR/lsf.conf"; then : - LSF_INCLUDEDIR=`egrep ^LSF_INCLUDEDIR= $LSF_ENVDIR/lsf.conf | cut -d= -f2-` -fi - if test ! -z "$LSF_LIBDIR"; then : - orte_check_lsf_libdir=$LSF_LIBDIR - orte_check_lsf_libdir_msg="$LSF_LIBDIR (from \$LSF_LIBDIR)" -fi - if test ! -z "$LSF_INCLUDEDIR"; then : - orte_check_lsf_dir=`dirname $LSF_INCLUDEDIR` - orte_check_lsf_dir_msg="$orte_check_lsf_dir (from \$LSF_INCLUDEDIR)" -fi -fi - - if test "$with_lsf" = "no"; then : - orte_check_lsf_happy="no" -else - orte_check_lsf_happy="yes" -fi - - orte_check_lsf_ras_lsf_save_CPPFLAGS="$CPPFLAGS" - orte_check_lsf_ras_lsf_save_LDFLAGS="$LDFLAGS" - orte_check_lsf_ras_lsf_save_LIBS="$LIBS" - - # liblsf requires yp_all, yp_get_default_domain, and ypprot_err - # on Linux, Solaris, NEC, and Sony NEWSs these are found in libnsl - # on AIX it should be in libbsd - # on HP-UX it should be in libBSD - # on IRIX < 6 it should be in libsun (IRIX 6 and later it is in libc) + if test "$should_build" = "1" ; then + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/rmaps/mindist/post_configure.sh" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components mindist" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components mindist" + else + if test "rmaps" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/rmaps/mindist/lib${ORTE_LIB_PREFIX}mca_rmaps_mindist.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/rmaps/mindist/libmca_rmaps_mindist.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_rmaps_mindist_component;" >> $outfile.extern + echo " &mca_rmaps_mindist_component, " >> $outfile.struct + static_components="$static_components mindist" fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in LIBS_save add; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:mindist can compile" >&5 +$as_echo_n "checking if MCA component rmaps:mindist can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_rmaps" = "mindist" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_rmaps_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** rmaps component mindist was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"LIBS_save add\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - LIBS_save=$LIBS - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing yp_all" >&5 -$as_echo_n "checking for library containing yp_all... " >&6; } -if ${ac_cv_search_yp_all+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char yp_all (); -int -main () -{ -return yp_all (); - ; - return 0; -} -_ACEOF -for ac_lib in '' nsl bsd BSD sun; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_yp_all=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_yp_all+:} false; then : - break -fi -done -if ${ac_cv_search_yp_all+:} false; then : + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_rmaps" = "mindist" ; then +as_fn_error $? "*** rmaps component mindist was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi -else - ac_cv_search_yp_all=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_yp_all" >&5 -$as_echo "$ac_cv_search_yp_all" >&6; } -ac_res=$ac_cv_search_yp_all -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - # Found it! See if anything was added to LIBS - add=`printf '%s\n' "$LIBS" | sed -e "s/$LIBS_save$//"` - if test -n "$add"; then : + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$rmaps_mindist_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -229555,21 +249366,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $add; do + for arg in $rmaps_mindist_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${yp_all_nsl_LIBS}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$yp_all_nsl_LIBS"; then : - yp_all_nsl_LIBS=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - yp_all_nsl_LIBS="$yp_all_nsl_LIBS $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -229596,453 +249407,7 @@ done -fi - yp_all_nsl_have_yp_all=1 - yp_all_nsl_happy="yes" -else - yp_all_nsl_have_yp_all=0 - yp_all_nsl_happy="no" -fi - - - -cat >>confdefs.h <<_ACEOF -#define OPAL_HAVE_YP_ALL_NSL $yp_all_nsl_have_yp_all -_ACEOF - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - - if test "$yp_all_nsl_happy" = "no"; then : - orte_check_lsf_happy="no" -else - orte_check_lsf_happy="yes" -fi - - # liblsb requires liblsf - using ls_info as a test for liblsf presence - - opal_check_package_ls_info_lsf_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_ls_info_lsf_save_LDFLAGS="$LDFLAGS" - opal_check_package_ls_info_lsf_save_LIBS="$LIBS" - - opal_check_package_ls_info_lsf_orig_CPPFLAGS="$ls_info_lsf_CPPFLAGS" - opal_check_package_ls_info_lsf_orig_LDFLAGS="$ls_info_lsf_LDFLAGS" - opal_check_package_ls_info_lsf_orig_LIBS="$ls_info_lsf_LIBS" - - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_lsf_lsf_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $orte_check_lsf_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in lsf/lsf.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "lsf/lsf.h" "ac_cv_header_lsf_lsf_h" "$ac_includes_default" -if test "x$ac_cv_header_lsf_lsf_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LSF_LSF_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_lsf_lsf_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - ls_info_lsf_CPPFLAGS="$ls_info_lsf_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in lsf/lsf.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "lsf/lsf.h" "ac_cv_header_lsf_lsf_h" "$ac_includes_default" -if test "x$ac_cv_header_lsf_lsf_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LSF_LSF_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_ls_info - opal_check_package_lib_happy="no" - if test "$orte_check_lsf_libdir" != ""; then : - # libdir was specified - search only there - ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$orte_check_lsf_libdir" - LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 -$as_echo_n "checking for library containing ls_info... " >&6; } -if ${ac_cv_search_ls_info+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ls_info (); -int -main () -{ -return ls_info (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lsf; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ls_info=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ls_info+:} false; then : - break -fi -done -if ${ac_cv_search_ls_info+:} false; then : - -else - ac_cv_search_ls_info=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 -$as_echo "$ac_cv_search_ls_info" >&6; } -ac_res=$ac_cv_search_ls_info -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - unset ac_cv_search_ls_info -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$orte_check_lsf_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 -$as_echo_n "checking for library containing ls_info... " >&6; } -if ${ac_cv_search_ls_info+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ls_info (); -int -main () -{ -return ls_info (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lsf; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ls_info=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ls_info+:} false; then : - break -fi -done -if ${ac_cv_search_ls_info+:} false; then : - -else - ac_cv_search_ls_info=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 -$as_echo "$ac_cv_search_ls_info" >&6; } -ac_res=$ac_cv_search_ls_info -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - unset ac_cv_search_ls_info -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 -$as_echo_n "checking for library containing ls_info... " >&6; } -if ${ac_cv_search_ls_info+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ls_info (); -int -main () -{ -return ls_info (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lsf; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ls_info=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ls_info+:} false; then : - break -fi -done -if ${ac_cv_search_ls_info+:} false; then : - -else - ac_cv_search_ls_info=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 -$as_echo "$ac_cv_search_ls_info" >&6; } -ac_res=$ac_cv_search_ls_info -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - unset ac_cv_search_ls_info -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 -$as_echo_n "checking for library containing ls_info... " >&6; } -if ${ac_cv_search_ls_info+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ls_info (); -int -main () -{ -return ls_info (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lsf; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ls_info=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ls_info+:} false; then : - break -fi -done -if ${ac_cv_search_ls_info+:} false; then : - -else - ac_cv_search_ls_info=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 -$as_echo "$ac_cv_search_ls_info" >&6; } -ac_res=$ac_cv_search_ls_info -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - unset ac_cv_search_ls_info -fi -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. +else @@ -230055,7 +249420,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -230074,16 +249439,57 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $rmaps_mindist_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$rmaps_mindist_WRAPPER_EXTRA_LIBS" = ""; then : @@ -230096,7 +249502,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -230115,7 +249521,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -230123,303 +249529,500 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $rmaps_mindist_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if liblsf requires libnl v1 or v3" >&5 -$as_echo_n "checking if liblsf requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ls_info (void); -int main(int argc, char *argv[]) { - ls_info (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:230150: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS 1>&5 2>&1 -opal_status=$? + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:230157: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib lsf" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib lsf" >&2;} -fi - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, liblsf links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, liblsf links to both libnl and libnl-3." >&2;} + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - libnl_sane=0 -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lsf requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lsf requires libnl" >&2;} + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} - libnl_sane=0 + for arg in $rmaps_mindist_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_libnlv1_libs="$opal_libnlv1_libs lsf" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Loop over every token we've seen so far + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. +fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + fi - # Check the ending condition + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$rmaps_mindist_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done - # If we didn't find the token, add it to the "array" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + for arg in $rmaps_mindist_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -# Done; do the assignment + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 fi - +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rmaps_mindist_WRAPPER_EXTRA_CPPFLAGS ($rmaps_mindist_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring rmaps_mindist_WRAPPER_EXTRA_CPPFLAGS ($rmaps_mindist_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblsf requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblsf requires libnl-3" >&2;} + else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:mindist can compile" >&5 +$as_echo_n "checking if MCA component rmaps:mindist can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - libnl_sane=0 + # If this component was requested as the default for this + # type, then abort. + if test "$with_rmaps" = "mindist" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"mindist\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"mindist\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_rmaps" ; then + if test "$DIRECT_rmaps" = "mindist" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"mindist\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"mindist\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components mindist" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_rmaps_mindist_DSO=1 + else + BUILD_orte_rmaps_mindist_DSO=0 + fi + if test "$BUILD_orte_rmaps_mindist_DSO" = "1"; then + MCA_BUILD_orte_rmaps_mindist_DSO_TRUE= + MCA_BUILD_orte_rmaps_mindist_DSO_FALSE='#' else - opal_libnlv3_libs="$opal_libnlv3_libs lsf" + MCA_BUILD_orte_rmaps_mindist_DSO_TRUE='#' + MCA_BUILD_orte_rmaps_mindist_DSO_FALSE= +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones + ac_config_files="$ac_config_files orte/mca/rmaps/mindist/Makefile" -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far + unset compile_mode - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + opal_show_subsubsubtitle "MCA component rmaps:ppr (no configuration)" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + component_path="$srcdir/orte/mca/rmaps/ppr" + want_component=0 - # Increment the counter + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_rmaps" ; then + if test "$DIRECT_rmaps" = "ppr" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - opal_i="`expr $opal_i + 1`" - done + # if we were explicitly disabled, don't build :) + if test "$DISABLE_rmaps" = "1"; then : + want_component=0 +fi + if test "$DISABLE_rmaps_ppr" = "1"; then : + want_component=0 +fi - # If we didn't find the token, add it to the "array" + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + + SHARED_FRAMEWORK="$DSO_rmaps" + SHARED_COMPONENT="$DSO_rmaps_ppr" + + STATIC_FRAMEWORK="$STATIC_rmaps" + STATIC_COMPONENT="$STATIC_rmaps_ppr" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" else - opal_i="`expr $opal_i - 1`" + compile_mode="static" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rmaps:ppr compile mode" >&5 +$as_echo_n "checking for MCA component rmaps:ppr compile mode... " >&6; } + if test "$DIRECT_rmaps" = "ppr" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + if test "$should_build" = "1" ; then - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/rmaps/ppr/post_configure.sh" -# Clean up + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components ppr" -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components ppr" + else + if test "rmaps" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/rmaps/ppr/lib${ORTE_LIB_PREFIX}mca_rmaps_ppr.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/rmaps/ppr/libmca_rmaps_ppr.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_rmaps_ppr_component;" >> $outfile.extern + echo " &mca_rmaps_ppr_component, " >> $outfile.struct + static_components="$static_components ppr" + fi -fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:ppr can compile" >&5 +$as_echo_n "checking if MCA component rmaps:ppr can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_rmaps" = "ppr" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_rmaps_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** rmaps component ppr was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_rmaps" = "ppr" ; then +as_fn_error $? "*** rmaps component ppr was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - rm -f conftest conftest_c.$ac_ext + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$rmaps_ppr_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_libnl_sane=$libnl_sane - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - ;; - esac - opal_check_package_libnl_check_ok=$opal_libnl_sane + for arg in $rmaps_ppr_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -230442,332 +250045,89 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ls_info" != "no" && - test "$ac_cv_search_ls_info" != "none required"; then : - ls_info_lsf_LIBS="$ac_cv_search_ls_info $yp_all_nsl_LIBS" -else - ls_info_lsf_LIBS="$yp_all_nsl_LIBS" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi - - -else - opal_check_package_happy="no" -fi -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_ls_info - opal_check_package_lib_happy="no" - if test "$orte_check_lsf_libdir" != ""; then : - # libdir was specified - search only there - ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$orte_check_lsf_libdir" - LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 -$as_echo_n "checking for library containing ls_info... " >&6; } -if ${ac_cv_search_ls_info+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ls_info (); -int -main () -{ -return ls_info (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lsf; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ls_info=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ls_info+:} false; then : - break -fi -done -if ${ac_cv_search_ls_info+:} false; then : -else - ac_cv_search_ls_info=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 -$as_echo "$ac_cv_search_ls_info" >&6; } -ac_res=$ac_cv_search_ls_info -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - unset ac_cv_search_ls_info -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$orte_check_lsf_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 -$as_echo_n "checking for library containing ls_info... " >&6; } -if ${ac_cv_search_ls_info+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ls_info (); -int -main () -{ -return ls_info (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lsf; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ls_info=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ls_info+:} false; then : - break -fi -done -if ${ac_cv_search_ls_info+:} false; then : + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -else - ac_cv_search_ls_info=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 -$as_echo "$ac_cv_search_ls_info" >&6; } -ac_res=$ac_cv_search_ls_info -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - unset ac_cv_search_ls_info -fi -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 -$as_echo_n "checking for library containing ls_info... " >&6; } -if ${ac_cv_search_ls_info+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ls_info (); -int -main () -{ -return ls_info (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lsf; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ls_info=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ls_info+:} false; then : - break -fi -done -if ${ac_cv_search_ls_info+:} false; then : -else - ac_cv_search_ls_info=no + for arg in $rmaps_ppr_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 -$as_echo "$ac_cv_search_ls_info" >&6; } -ac_res=$ac_cv_search_ls_info -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - unset ac_cv_search_ls_info -fi + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ls_info_lsf_LDFLAGS="$ls_info_lsf_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ls_info" >&5 -$as_echo_n "checking for library containing ls_info... " >&6; } -if ${ac_cv_search_ls_info+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ls_info (); -int -main () -{ -return ls_info (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lsf; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ls_info=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ls_info+:} false; then : - break -fi -done -if ${ac_cv_search_ls_info+:} false; then : + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -else - ac_cv_search_ls_info=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ls_info" >&5 -$as_echo "$ac_cv_search_ls_info" >&6; } -ac_res=$ac_cv_search_ls_info -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - unset ac_cv_search_ls_info -fi -fi -fi -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + +fi + if test "$rmaps_ppr_WRAPPER_EXTRA_LIBS" = ""; then : @@ -230780,7 +250140,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -230799,16 +250159,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $rmaps_ppr_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -230821,7 +250221,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -230840,7 +250240,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -230848,276 +250248,115 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if liblsf requires libnl v1 or v3" >&5 -$as_echo_n "checking if liblsf requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ls_info (void); -int main(int argc, char *argv[]) { - ls_info (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:230875: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llsf $LIBS $ls_info_lsf_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:230882: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" + for arg in $rmaps_ppr_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" + done fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib lsf" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib lsf" >&2;} - + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, liblsf links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, liblsf links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} - - libnl_sane=0 fi - - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lsf requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lsf requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} - - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs lsf" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" - - # Increment the counter - - opal_i="`expr $opal_i + 1`" done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi -done -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -# Clean up + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblsf requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblsf requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblsf (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblsf (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblsf." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblsf." >&2;} - - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs lsf" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" + fi - # Increment the counter + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$rmaps_ppr_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Done; do the assignment + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 + for arg in $rmaps_ppr_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - + done fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done # Unwind the index @@ -231141,129 +250380,229 @@ done - ;; - esac +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rmaps_ppr_WRAPPER_EXTRA_CPPFLAGS ($rmaps_ppr_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring rmaps_ppr_WRAPPER_EXTRA_CPPFLAGS ($rmaps_ppr_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - opal_check_package_libnl_check_ok=$opal_libnl_sane + else - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:ppr can compile" >&5 +$as_echo_n "checking if MCA component rmaps:ppr can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_rmaps" = "ppr" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ppr\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ppr\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + if test ! -z "$DIRECT_rmaps" ; then + if test "$DIRECT_rmaps" = "ppr" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ppr\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ppr\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + # add component to all component list + all_components="$all_components ppr" + fi - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_rmaps_ppr_DSO=1 + else + BUILD_orte_rmaps_ppr_DSO=0 + fi + if test "$BUILD_orte_rmaps_ppr_DSO" = "1"; then + MCA_BUILD_orte_rmaps_ppr_DSO_TRUE= + MCA_BUILD_orte_rmaps_ppr_DSO_FALSE='#' +else + MCA_BUILD_orte_rmaps_ppr_DSO_TRUE='#' + MCA_BUILD_orte_rmaps_ppr_DSO_FALSE= fi -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ls_info" != "no" && - test "$ac_cv_search_ls_info" != "none required"; then : - ls_info_lsf_LIBS="$ac_cv_search_ls_info $yp_all_nsl_LIBS" -else - ls_info_lsf_LIBS="$yp_all_nsl_LIBS" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi + ac_config_files="$ac_config_files orte/mca/rmaps/ppr/Makefile" -fi - unset opal_check_package_header_happy + unset compile_mode + opal_show_subsubsubtitle "MCA component rmaps:rank_file (no configuration)" - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + component_path="$srcdir/orte/mca/rmaps/rank_file" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_rmaps" ; then + if test "$DIRECT_rmaps" = "rank_file" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + # if we were explicitly disabled, don't build :) + if test "$DISABLE_rmaps" = "1"; then : + want_component=0 +fi + if test "$DISABLE_rmaps_rank_file" = "1"; then : + want_component=0 +fi - if test "$opal_check_package_happy" = "yes"; then : - ls_info_lsf_happy="yes" + if test "$want_component" = "1"; then : + should_build=1 else - ls_info_lsf_CPPFLAGS="$opal_check_package_ls_info_lsf_orig_CPPFLAGS" - ls_info_lsf_LDFLAGS="$opal_check_package_ls_info_lsf_orig_LDFLAGS" - ls_info_lsf_LIBS="$opal_check_package_ls_info_lsf_orig_LIBS" - ls_info_lsf_happy="no" + should_build=0 fi - CPPFLAGS="$opal_check_package_ls_info_lsf_save_CPPFLAGS" - LDFLAGS="$opal_check_package_ls_info_lsf_save_LDFLAGS" - LIBS="$opal_check_package_ls_info_lsf_save_LIBS" + SHARED_FRAMEWORK="$DSO_rmaps" + SHARED_COMPONENT="$DSO_rmaps_rank_file" - if test "$ls_info_lsf_happy" = "no"; then : - orte_check_lsf_happy="no" -else - orte_check_lsf_happy="yes" -fi + STATIC_FRAMEWORK="$STATIC_rmaps" + STATIC_COMPONENT="$STATIC_rmaps_rank_file" - # test function of liblsb LSF package - if test "$orte_check_lsf_happy" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LSF dir" >&5 -$as_echo_n "checking for LSF dir... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_lsf_dir_msg" >&5 -$as_echo "$orte_check_lsf_dir_msg" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LSF library dir" >&5 -$as_echo_n "checking for LSF library dir... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_lsf_libdir_msg" >&5 -$as_echo "$orte_check_lsf_libdir_msg" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for liblsf function" >&5 -$as_echo_n "checking for liblsf function... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ls_info_lsf_happy" >&5 -$as_echo "$ls_info_lsf_happy" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for liblsf yp requirements" >&5 -$as_echo_n "checking for liblsf yp requirements... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $yp_all_nsl_happy" >&5 -$as_echo "$yp_all_nsl_happy" >&6; } + shared_mode_override=static - opal_check_package_orte_check_lsf_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_orte_check_lsf_save_LDFLAGS="$LDFLAGS" - opal_check_package_orte_check_lsf_save_LIBS="$LIBS" + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - opal_check_package_orte_check_lsf_orig_CPPFLAGS="$orte_check_lsf_CPPFLAGS" - opal_check_package_orte_check_lsf_orig_LDFLAGS="$orte_check_lsf_LDFLAGS" - opal_check_package_orte_check_lsf_orig_LIBS="$orte_check_lsf_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rmaps:rank_file compile mode" >&5 +$as_echo_n "checking for MCA component rmaps:rank_file compile mode... " >&6; } + if test "$DIRECT_rmaps" = "rank_file" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1" ; then - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/rmaps/rank_file/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components rank_file" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components rank_file" + else + if test "rmaps" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/rmaps/rank_file/lib${ORTE_LIB_PREFIX}mca_rmaps_rank_file.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/rmaps/rank_file/libmca_rmaps_rank_file.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_rmaps_rank_file_component;" >> $outfile.extern + echo " &mca_rmaps_rank_file_component, " >> $outfile.struct + static_components="$static_components rank_file" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:rank_file can compile" >&5 +$as_echo_n "checking if MCA component rmaps:rank_file can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_rmaps" = "rank_file" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_rmaps_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** rmaps component rank_file was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_rmaps" = "rank_file" ; then +as_fn_error $? "*** rmaps component rank_file was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$rmaps_rank_file_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -231276,7 +250615,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -231295,7 +250634,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -231303,357 +250642,48 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_lsf_lsbatch_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $orte_check_lsf_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in lsf/lsbatch.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "lsf/lsbatch.h" "ac_cv_header_lsf_lsbatch_h" "$ac_includes_default" -if test "x$ac_cv_header_lsf_lsbatch_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LSF_LSBATCH_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_lsf_lsbatch_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - orte_check_lsf_CPPFLAGS="$orte_check_lsf_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in lsf/lsbatch.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "lsf/lsbatch.h" "ac_cv_header_lsf_lsbatch_h" "$ac_includes_default" -if test "x$ac_cv_header_lsf_lsbatch_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LSF_LSBATCH_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_lsb_launch - opal_check_package_lib_happy="no" - if test "$orte_check_lsf_libdir" != ""; then : - # libdir was specified - search only there - orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$orte_check_lsf_libdir" - LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 -$as_echo_n "checking for library containing lsb_launch... " >&6; } -if ${ac_cv_search_lsb_launch+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lsb_launch (); -int -main () -{ -return lsb_launch (); - ; - return 0; -} -_ACEOF -for ac_lib in '' bat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lsb_launch=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lsb_launch+:} false; then : - break -fi -done -if ${ac_cv_search_lsb_launch+:} false; then : - -else - ac_cv_search_lsb_launch=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 -$as_echo "$ac_cv_search_lsb_launch" >&6; } -ac_res=$ac_cv_search_lsb_launch -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - unset ac_cv_search_lsb_launch -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$orte_check_lsf_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 -$as_echo_n "checking for library containing lsb_launch... " >&6; } -if ${ac_cv_search_lsb_launch+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lsb_launch (); -int -main () -{ -return lsb_launch (); - ; - return 0; -} -_ACEOF -for ac_lib in '' bat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lsb_launch=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lsb_launch+:} false; then : - break -fi -done -if ${ac_cv_search_lsb_launch+:} false; then : - -else - ac_cv_search_lsb_launch=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 -$as_echo "$ac_cv_search_lsb_launch" >&6; } -ac_res=$ac_cv_search_lsb_launch -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - unset ac_cv_search_lsb_launch -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 -$as_echo_n "checking for library containing lsb_launch... " >&6; } -if ${ac_cv_search_lsb_launch+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lsb_launch (); -int -main () -{ -return lsb_launch (); - ; - return 0; -} -_ACEOF -for ac_lib in '' bat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lsb_launch=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lsb_launch+:} false; then : - break -fi -done -if ${ac_cv_search_lsb_launch+:} false; then : - -else - ac_cv_search_lsb_launch=no + for arg in $rmaps_rank_file_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 -$as_echo "$ac_cv_search_lsb_launch" >&6; } -ac_res=$ac_cv_search_lsb_launch -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - unset ac_cv_search_lsb_launch -fi + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 -$as_echo_n "checking for library containing lsb_launch... " >&6; } -if ${ac_cv_search_lsb_launch+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lsb_launch (); -int -main () -{ -return lsb_launch (); - ; - return 0; -} -_ACEOF -for ac_lib in '' bat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lsb_launch=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lsb_launch+:} false; then : - break -fi -done -if ${ac_cv_search_lsb_launch+:} false; then : + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -else - ac_cv_search_lsb_launch=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 -$as_echo "$ac_cv_search_lsb_launch" >&6; } -ac_res=$ac_cv_search_lsb_launch -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - unset ac_cv_search_lsb_launch -fi -fi -fi -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + +else @@ -231666,7 +250696,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -231685,16 +250715,57 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $rmaps_rank_file_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$rmaps_rank_file_WRAPPER_EXTRA_LIBS" = ""; then : @@ -231707,7 +250778,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -231726,7 +250797,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -231734,303 +250805,500 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $rmaps_rank_file_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libbat requires libnl v1 or v3" >&5 -$as_echo_n "checking if libbat requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void lsb_launch (void); -int main(int argc, char *argv[]) { - lsb_launch (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:231761: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS 1>&5 2>&1 -opal_status=$? + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:231768: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib bat" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib bat" >&2;} -fi - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&2;} + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - libnl_sane=0 -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&2;} + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} - libnl_sane=0 + for arg in $rmaps_rank_file_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_libnlv1_libs="$opal_libnlv1_libs bat" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Loop over every token we've seen so far + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. +fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + fi - # Check the ending condition + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$rmaps_rank_file_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done - # If we didn't find the token, add it to the "array" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + for arg in $rmaps_rank_file_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -# Done; do the assignment + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 fi - +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rmaps_rank_file_WRAPPER_EXTRA_CPPFLAGS ($rmaps_rank_file_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring rmaps_rank_file_WRAPPER_EXTRA_CPPFLAGS ($rmaps_rank_file_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&2;} + else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:rank_file can compile" >&5 +$as_echo_n "checking if MCA component rmaps:rank_file can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - libnl_sane=0 + # If this component was requested as the default for this + # type, then abort. + if test "$with_rmaps" = "rank_file" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"rank_file\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"rank_file\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_rmaps" ; then + if test "$DIRECT_rmaps" = "rank_file" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"rank_file\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"rank_file\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components rank_file" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_rmaps_rank_file_DSO=1 + else + BUILD_orte_rmaps_rank_file_DSO=0 + fi + if test "$BUILD_orte_rmaps_rank_file_DSO" = "1"; then + MCA_BUILD_orte_rmaps_rank_file_DSO_TRUE= + MCA_BUILD_orte_rmaps_rank_file_DSO_FALSE='#' else - opal_libnlv3_libs="$opal_libnlv3_libs bat" + MCA_BUILD_orte_rmaps_rank_file_DSO_TRUE='#' + MCA_BUILD_orte_rmaps_rank_file_DSO_FALSE= +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones + ac_config_files="$ac_config_files orte/mca/rmaps/rank_file/Makefile" -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far + unset compile_mode - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + opal_show_subsubsubtitle "MCA component rmaps:resilient (no configuration)" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + component_path="$srcdir/orte/mca/rmaps/resilient" + want_component=0 - # Increment the counter + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_rmaps" ; then + if test "$DIRECT_rmaps" = "resilient" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - opal_i="`expr $opal_i + 1`" - done + # if we were explicitly disabled, don't build :) + if test "$DISABLE_rmaps" = "1"; then : + want_component=0 +fi + if test "$DISABLE_rmaps_resilient" = "1"; then : + want_component=0 +fi - # If we didn't find the token, add it to the "array" + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + + SHARED_FRAMEWORK="$DSO_rmaps" + SHARED_COMPONENT="$DSO_rmaps_resilient" + + STATIC_FRAMEWORK="$STATIC_rmaps" + STATIC_COMPONENT="$STATIC_rmaps_resilient" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" else - opal_i="`expr $opal_i - 1`" + compile_mode="static" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rmaps:resilient compile mode" >&5 +$as_echo_n "checking for MCA component rmaps:resilient compile mode... " >&6; } + if test "$DIRECT_rmaps" = "resilient" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + if test "$should_build" = "1" ; then - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/rmaps/resilient/post_configure.sh" -# Clean up + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components resilient" -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components resilient" + else + if test "rmaps" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/rmaps/resilient/lib${ORTE_LIB_PREFIX}mca_rmaps_resilient.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/rmaps/resilient/libmca_rmaps_resilient.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_rmaps_resilient_component;" >> $outfile.extern + echo " &mca_rmaps_resilient_component, " >> $outfile.struct + static_components="$static_components resilient" + fi -fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:resilient can compile" >&5 +$as_echo_n "checking if MCA component rmaps:resilient can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_rmaps" = "resilient" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_rmaps_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** rmaps component resilient was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_rmaps" = "resilient" ; then +as_fn_error $? "*** rmaps component resilient was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - rm -f conftest conftest_c.$ac_ext + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$rmaps_resilient_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_libnl_sane=$libnl_sane - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - ;; - esac + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $rmaps_resilient_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -232053,332 +251321,89 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_lsb_launch" != "no" && - test "$ac_cv_search_lsb_launch" != "none required"; then : - orte_check_lsf_LIBS="$ac_cv_search_lsb_launch $ls_info_lsf_LIBS $yp_all_nsl_LIBS" -else - orte_check_lsf_LIBS="$ls_info_lsf_LIBS $yp_all_nsl_LIBS" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi - - -else - opal_check_package_happy="no" -fi -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_lsb_launch - opal_check_package_lib_happy="no" - if test "$orte_check_lsf_libdir" != ""; then : - # libdir was specified - search only there - orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$orte_check_lsf_libdir" - LDFLAGS="$LDFLAGS -L$orte_check_lsf_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 -$as_echo_n "checking for library containing lsb_launch... " >&6; } -if ${ac_cv_search_lsb_launch+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lsb_launch (); -int -main () -{ -return lsb_launch (); - ; - return 0; -} -_ACEOF -for ac_lib in '' bat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lsb_launch=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lsb_launch+:} false; then : - break -fi -done -if ${ac_cv_search_lsb_launch+:} false; then : - -else - ac_cv_search_lsb_launch=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 -$as_echo "$ac_cv_search_lsb_launch" >&6; } -ac_res=$ac_cv_search_lsb_launch -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - unset ac_cv_search_lsb_launch -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$orte_check_lsf_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 -$as_echo_n "checking for library containing lsb_launch... " >&6; } -if ${ac_cv_search_lsb_launch+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lsb_launch (); -int -main () -{ -return lsb_launch (); - ; - return 0; -} -_ACEOF -for ac_lib in '' bat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lsb_launch=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lsb_launch+:} false; then : - break -fi -done -if ${ac_cv_search_lsb_launch+:} false; then : - -else - ac_cv_search_lsb_launch=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 -$as_echo "$ac_cv_search_lsb_launch" >&6; } -ac_res=$ac_cv_search_lsb_launch -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - unset ac_cv_search_lsb_launch -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 -$as_echo_n "checking for library containing lsb_launch... " >&6; } -if ${ac_cv_search_lsb_launch+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lsb_launch (); -int -main () -{ -return lsb_launch (); - ; - return 0; -} -_ACEOF -for ac_lib in '' bat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lsb_launch=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lsb_launch+:} false; then : - break -fi -done -if ${ac_cv_search_lsb_launch+:} false; then : -else - ac_cv_search_lsb_launch=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 -$as_echo "$ac_cv_search_lsb_launch" >&6; } -ac_res=$ac_cv_search_lsb_launch -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - unset ac_cv_search_lsb_launch -fi -fi -fi + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_lsf_LDFLAGS="$orte_check_lsf_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lsb_launch" >&5 -$as_echo_n "checking for library containing lsb_launch... " >&6; } -if ${ac_cv_search_lsb_launch+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lsb_launch (); -int -main () -{ -return lsb_launch (); - ; - return 0; -} -_ACEOF -for ac_lib in '' bat; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ls_info_lsf_LIBS $yp_all_nsl_LIBS $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lsb_launch=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lsb_launch+:} false; then : - break -fi -done -if ${ac_cv_search_lsb_launch+:} false; then : + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -else - ac_cv_search_lsb_launch=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lsb_launch" >&5 -$as_echo "$ac_cv_search_lsb_launch" >&6; } -ac_res=$ac_cv_search_lsb_launch -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - unset ac_cv_search_lsb_launch + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $rmaps_resilient_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$rmaps_resilient_WRAPPER_EXTRA_LIBS" = ""; then : @@ -232391,7 +251416,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -232410,16 +251435,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $rmaps_resilient_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -232432,7 +251497,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -232451,7 +251516,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -232459,276 +251524,418 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $rmaps_resilient_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libbat requires libnl v1 or v3" >&5 -$as_echo_n "checking if libbat requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void lsb_launch (void); -int main(int argc, char *argv[]) { - lsb_launch (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:232486: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lbat $LIBS $orte_check_lsf_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:232493: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib bat" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib bat" >&2;} + fi -fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$rmaps_resilient_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libbat links to both libnl and libnl-3." >&2;} + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - libnl_sane=0 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas bat requires libnl" >&2;} + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs bat" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs + for arg in $rmaps_resilient_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Loop over every token we've seen so far + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rmaps_resilient_WRAPPER_EXTRA_CPPFLAGS ($rmaps_resilient_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring rmaps_resilient_WRAPPER_EXTRA_CPPFLAGS ($rmaps_resilient_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - # Check the ending condition + else - opal_done="`expr $opal_i \>= $opal_count`" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:resilient can compile" >&5 +$as_echo_n "checking if MCA component rmaps:resilient can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Increment the counter + # If this component was requested as the default for this + # type, then abort. + if test "$with_rmaps" = "resilient" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"resilient\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"resilient\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_i="`expr $opal_i + 1`" - done + if test ! -z "$DIRECT_rmaps" ; then + if test "$DIRECT_rmaps" = "resilient" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"resilient\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"resilient\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # If we didn't find the token, add it to the "array" + # add component to all component list + all_components="$all_components resilient" + fi - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_rmaps_resilient_DSO=1 else - opal_i="`expr $opal_i - 1`" + BUILD_orte_rmaps_resilient_DSO=0 fi -done + if test "$BUILD_orte_rmaps_resilient_DSO" = "1"; then + MCA_BUILD_orte_rmaps_resilient_DSO_TRUE= + MCA_BUILD_orte_rmaps_resilient_DSO_FALSE='#' +else + MCA_BUILD_orte_rmaps_resilient_DSO_TRUE='#' + MCA_BUILD_orte_rmaps_resilient_DSO_FALSE= +fi -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + ac_config_files="$ac_config_files orte/mca/rmaps/resilient/Makefile" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + unset compile_mode -# Done; do the assignment + opal_show_subsubsubtitle "MCA component rmaps:round_robin (no configuration)" -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi -fi + component_path="$srcdir/orte/mca/rmaps/round_robin" + want_component=0 - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libbat requires libnl-3" >&2;} + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_rmaps" ; then + if test "$DIRECT_rmaps" = "round_robin" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libbat (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libbat (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libbat." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libbat." >&2;} + # if we were explicitly disabled, don't build :) + if test "$DISABLE_rmaps" = "1"; then : + want_component=0 +fi + if test "$DISABLE_rmaps_round_robin" = "1"; then : + want_component=0 +fi - libnl_sane=0 + if test "$want_component" = "1"; then : + should_build=1 else - opal_libnlv3_libs="$opal_libnlv3_libs bat" + should_build=0 +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones + SHARED_FRAMEWORK="$DSO_rmaps" + SHARED_COMPONENT="$DSO_rmaps_round_robin" -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + STATIC_FRAMEWORK="$STATIC_rmaps" + STATIC_COMPONENT="$STATIC_rmaps_round_robin" - # Loop over every token we've seen so far + shared_mode_override=static - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rmaps:round_robin compile mode" >&5 +$as_echo_n "checking for MCA component rmaps:round_robin compile mode... " >&6; } + if test "$DIRECT_rmaps" = "round_robin" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # Check the ending condition + if test "$should_build" = "1" ; then - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/rmaps/round_robin/post_configure.sh" - # If we didn't find the token, add it to the "array" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components round_robin" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components round_robin" else - opal_i="`expr $opal_i - 1`" + if test "rmaps" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/rmaps/round_robin/lib${ORTE_LIB_PREFIX}mca_rmaps_round_robin.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/rmaps/round_robin/libmca_rmaps_round_robin.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_rmaps_round_robin_component;" >> $outfile.extern + echo " &mca_rmaps_round_robin_component, " >> $outfile.struct + static_components="$static_components round_robin" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:round_robin can compile" >&5 +$as_echo_n "checking if MCA component rmaps:round_robin can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_rmaps" = "round_robin" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_rmaps_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** rmaps component round_robin was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_rmaps" = "round_robin" ; then +as_fn_error $? "*** rmaps component round_robin was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$rmaps_round_robin_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + for arg in $rmaps_round_robin_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -232752,10 +251959,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $rmaps_round_robin_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -232778,28 +252040,65 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no fi + if test "$rmaps_round_robin_WRAPPER_EXTRA_LIBS" = ""; then : -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_lsb_launch" != "no" && - test "$ac_cv_search_lsb_launch" != "none required"; then : - orte_check_lsf_LIBS="$ac_cv_search_lsb_launch $ls_info_lsf_LIBS $yp_all_nsl_LIBS" -else - orte_check_lsf_LIBS="$ls_info_lsf_LIBS $yp_all_nsl_LIBS" + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $rmaps_round_robin_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -232823,31 +252122,98 @@ done +else - if test "$opal_check_package_happy" = "yes"; then : - orte_check_lsf_happy="yes" + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $rmaps_round_robin_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - orte_check_lsf_CPPFLAGS="$opal_check_package_orte_check_lsf_orig_CPPFLAGS" - orte_check_lsf_LDFLAGS="$opal_check_package_orte_check_lsf_orig_LDFLAGS" - orte_check_lsf_LIBS="$opal_check_package_orte_check_lsf_orig_LIBS" - orte_check_lsf_happy="no" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi fi + done - CPPFLAGS="$opal_check_package_orte_check_lsf_save_CPPFLAGS" - LDFLAGS="$opal_check_package_orte_check_lsf_save_LDFLAGS" - LIBS="$opal_check_package_orte_check_lsf_save_LIBS" -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - CPPFLAGS="$orte_check_lsf_ras_lsf_save_CPPFLAGS" - LDFLAGS="$orte_check_lsf_ras_lsf_save_LDFLAGS" - LIBS="$orte_check_lsf_ras_lsf_save_LIBS" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -else - orte_check_lsf_happy=no fi + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$rmaps_round_robin_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -232860,7 +252226,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -232879,7 +252245,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -232887,20 +252253,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="LSF: $orte_check_lsf_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + for arg in $rmaps_round_robin_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done # Unwind the index @@ -232924,87 +252294,205 @@ done - +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rmaps_round_robin_WRAPPER_EXTRA_CPPFLAGS ($rmaps_round_robin_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring rmaps_round_robin_WRAPPER_EXTRA_CPPFLAGS ($rmaps_round_robin_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi fi - if test "$orte_check_lsf_happy" = "yes"; then : - ras_lsf_LIBS="$ras_lsf_LIBS $orte_check_lsf_LIBS" - ras_lsf_LDFLAGS="$ras_lsf_LDFLAGS $orte_check_lsf_LDFLAGS" - ras_lsf_CPPFLAGS="$ras_lsf_CPPFLAGS $orte_check_lsf_CPPFLAGS" - # add the LSF libraries to static builds as they are required - ras_lsf_WRAPPER_EXTRA_LDFLAGS=$ras_lsf_LDFLAGS - ras_lsf_WRAPPER_EXTRA_LIBS=$ras_lsf_LIBS - ras_lsf_good=1 + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:round_robin can compile" >&5 +$as_echo_n "checking if MCA component rmaps:round_robin can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_rmaps" = "round_robin" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"round_robin\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"round_robin\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_rmaps" ; then + if test "$DIRECT_rmaps" = "round_robin" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"round_robin\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"round_robin\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components round_robin" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_rmaps_round_robin_DSO=1 + else + BUILD_orte_rmaps_round_robin_DSO=0 + fi + if test "$BUILD_orte_rmaps_round_robin_DSO" = "1"; then + MCA_BUILD_orte_rmaps_round_robin_DSO_TRUE= + MCA_BUILD_orte_rmaps_round_robin_DSO_FALSE='#' else - if test ! -z "$with_lsf" && test "$with_lsf" != "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LSF support requested (via --with-lsf) but not found." >&5 -$as_echo "$as_me: WARNING: LSF support requested (via --with-lsf) but not found." >&2;} - as_fn_error $? "Aborting." "$LINENO" 5 + MCA_BUILD_orte_rmaps_round_robin_DSO_TRUE='#' + MCA_BUILD_orte_rmaps_round_robin_DSO_FALSE= +fi + + + ac_config_files="$ac_config_files orte/mca/rmaps/round_robin/Makefile" + + + unset compile_mode + + opal_show_subsubsubtitle "MCA component rmaps:seq (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/orte/mca/rmaps/seq" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_rmaps" ; then + if test "$DIRECT_rmaps" = "seq" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_rmaps" = "1"; then : + want_component=0 fi - ras_lsf_good=0 + if test "$DISABLE_rmaps_seq" = "1"; then : + want_component=0 fi - - # if check worked, set wrapper flags if so. - # Evaluate succeed / fail - if test "$ras_lsf_good" = "1"; then : - should_build=$should_build + if test "$want_component" = "1"; then : + should_build=1 else should_build=0 fi - # set build flags to use in makefile + SHARED_FRAMEWORK="$DSO_rmaps" + SHARED_COMPONENT="$DSO_rmaps_seq" + STATIC_FRAMEWORK="$STATIC_rmaps" + STATIC_COMPONENT="$STATIC_rmaps_seq" + shared_mode_override=static - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - if test "$should_build" = "1"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rmaps:seq compile mode" >&5 +$as_echo_n "checking for MCA component rmaps:seq compile mode... " >&6; } + if test "$DIRECT_rmaps" = "seq" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/ras/lsf/post_configure.sh" + infile="$srcdir/orte/mca/rmaps/seq/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components lsf" + all_components="$all_components seq" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components lsf" + dso_components="$dso_components seq" else - if test "ras" = "common"; then + if test "rmaps" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/ras/lsf/lib${ORTE_LIB_PREFIX}mca_ras_lsf.la $static_ltlibs" + static_ltlibs="mca/rmaps/seq/lib${ORTE_LIB_PREFIX}mca_rmaps_seq.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ras/lsf/libmca_ras_lsf.la $static_ltlibs" + static_ltlibs="mca/rmaps/seq/libmca_rmaps_seq.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_ras_lsf_component;" >> $outfile.extern - echo " &mca_ras_lsf_component, " >> $outfile.struct - static_components="$static_components lsf" + echo "extern const mca_base_component_t mca_rmaps_seq_component;" >> $outfile.extern + echo " &mca_rmaps_seq_component, " >> $outfile.struct + static_components="$static_components seq" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:lsf can compile" >&5 -$as_echo_n "checking if MCA component ras:lsf can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:seq can compile" >&5 +$as_echo_n "checking if MCA component rmaps:seq can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_ras" = "lsf" ; then + if test "$DIRECT_rmaps" = "seq" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_ras_DIRECT_CALL_HEADER=$line" + str="MCA_orte_rmaps_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** ras component lsf was supposed to be direct-called, but +as_fn_error $? "*** rmaps component seq was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -233012,8 +252500,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ras" = "lsf" ; then -as_fn_error $? "*** ras component lsf was supposed to be direct-called, but + if test "$DIRECT_rmaps" = "seq" ; then +as_fn_error $? "*** rmaps component seq was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -233028,7 +252516,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$ras_lsf_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$rmaps_seq_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -233068,7 +252556,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_lsf_LDFLAGS; do + for arg in $rmaps_seq_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -233149,7 +252637,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_lsf_WRAPPER_EXTRA_LDFLAGS; do + for arg in $rmaps_seq_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -233191,7 +252679,7 @@ fi - if test "$ras_lsf_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$rmaps_seq_WRAPPER_EXTRA_LIBS" = ""; then : @@ -233231,7 +252719,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_lsf_LIBS; do + for arg in $rmaps_seq_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -233312,7 +252800,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_lsf_WRAPPER_EXTRA_LIBS; do + for arg in $rmaps_seq_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -233360,7 +252848,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$ras_lsf_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$rmaps_seq_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -233403,7 +252891,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_lsf_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $rmaps_seq_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -233446,78 +252934,90 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ras_lsf_WRAPPER_EXTRA_CPPFLAGS ($ras_lsf_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring ras_lsf_WRAPPER_EXTRA_CPPFLAGS ($ras_lsf_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rmaps_seq_WRAPPER_EXTRA_CPPFLAGS ($rmaps_seq_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring rmaps_seq_WRAPPER_EXTRA_CPPFLAGS ($rmaps_seq_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:lsf can compile" >&5 -$as_echo_n "checking if MCA component ras:lsf can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:seq can compile" >&5 +$as_echo_n "checking if MCA component rmaps:seq can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_ras" = "lsf" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lsf\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"lsf\" failed to configure properly" >&2;} + if test "$with_rmaps" = "seq" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"seq\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"seq\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_ras" ; then - if test "$DIRECT_ras" = "lsf" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lsf\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"lsf\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_rmaps" ; then + if test "$DIRECT_rmaps" = "seq" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"seq\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"seq\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components lsf" -fi - - + # add component to all component list + all_components="$all_components seq" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_ras_lsf_DSO=1 -else - BUILD_orte_ras_lsf_DSO=0 -fi - if test "$BUILD_orte_ras_lsf_DSO" = "1"; then - MCA_BUILD_orte_ras_lsf_DSO_TRUE= - MCA_BUILD_orte_ras_lsf_DSO_FALSE='#' + if test "$compile_mode" = "dso" ; then + BUILD_orte_rmaps_seq_DSO=1 + else + BUILD_orte_rmaps_seq_DSO=0 + fi + if test "$BUILD_orte_rmaps_seq_DSO" = "1"; then + MCA_BUILD_orte_rmaps_seq_DSO_TRUE= + MCA_BUILD_orte_rmaps_seq_DSO_FALSE='#' else - MCA_BUILD_orte_ras_lsf_DSO_TRUE='#' - MCA_BUILD_orte_ras_lsf_DSO_FALSE= + MCA_BUILD_orte_rmaps_seq_DSO_TRUE='#' + MCA_BUILD_orte_rmaps_seq_DSO_FALSE= fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi + ac_config_files="$ac_config_files orte/mca/rmaps/seq/Makefile" + unset compile_mode + # configure components that use built-in configuration scripts - opal_show_subsubsubtitle "MCA component ras:slurm (m4 configuration macro)" + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - component_path="$srcdir/orte/mca/ras/slurm" + if test "1" != "0"; then : + + for component_path in $srcdir/orte/mca/rmaps/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component rmaps:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/orte/mca/rmaps/$component" want_component=0 # build if: @@ -233549,8 +253049,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_ras" ; then - if test "$DIRECT_ras" = "slurm" ; then + if test ! -z "$DIRECT_rmaps" ; then + if test "$DIRECT_rmaps" = "$component" ; then want_component=1 else want_component=0 @@ -233559,27 +253059,29 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_ras" = "1"; then : - want_component=0 -fi - if test "$DISABLE_ras_slurm" = "1"; then : + if test "$DISABLE_rmaps" = "1"; then : want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_rmaps_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_ras" - SHARED_COMPONENT="$DSO_ras_slurm" + SHARED_FRAMEWORK="$DSO_rmaps" + str="SHARED_COMPONENT=\$DSO_rmaps_$component" + eval $str - STATIC_FRAMEWORK="$STATIC_ras" - STATIC_COMPONENT="$STATIC_ras_slurm" + STATIC_FRAMEWORK="$STATIC_rmaps" + str="STATIC_COMPONENT=\$STATIC_rmaps_$component" + eval $str shared_mode_override=static @@ -233597,9 +253099,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ras:slurm compile mode" >&5 -$as_echo_n "checking for MCA component ras:slurm compile mode... " >&6; } - if test "$DIRECT_ras" = "slurm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rmaps:$component compile mode" >&5 +$as_echo_n "checking for MCA component rmaps:$component compile mode... " >&6; } + if test "$DIRECT_rmaps" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -233607,37 +253109,9 @@ $as_echo "$compile_mode" >&6; } fi + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - # try to configure the component - - ac_config_files="$ac_config_files orte/mca/ras/slurm/Makefile" - - - - if test -z "$orte_check_slurm_happy" ; then - -# Check whether --with-slurm was given. -if test "${with_slurm+set}" = set; then : - withval=$with_slurm; -fi - - - if test "$with_slurm" = "no" ; then - orte_check_slurm_happy="no" - elif test "$with_slurm" = "" ; then - # unless user asked, only build slurm component on linux, AIX, - # and OS X systems (these are the platforms that SLURM - # supports) - case $host in - *-linux*|*-aix*|*-apple-darwin*) - orte_check_slurm_happy="yes" - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SLURM srun in PATH" >&5 -$as_echo_n "checking for SLURM srun in PATH... " >&6; } - -# 1 is the variable name to do "which" on -# 2 is the variable name to assign the return value to + if test "$should_build" = "1" ; then @@ -233650,7 +253124,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_prog opal_file opal_dir opal_sentinel; do + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -233669,7 +253143,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_prog opal_file opal_dir opal_sentinel\"" + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $opal_str unset opal_str @@ -233677,654 +253151,250 @@ opal_scope_index=`expr $opal_scope_index + 1` -opal_prog=srun - -IFS_SAVE=$IFS -IFS="$PATH_SEPARATOR" -for opal_dir in $PATH; do - if test -x "$opal_dir/$opal_prog"; then - ORTE_CHECK_SLURM_SRUN="$opal_dir/$opal_prog" - break - fi -done -IFS=$IFS_SAVE - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - if test "$ORTE_CHECK_SLURM_SRUN" = ""; then - orte_check_slurm_happy="no" - else - orte_check_slurm_happy="yes" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_slurm_happy" >&5 -$as_echo "$orte_check_slurm_happy" >&6; } - ;; - esac - else - orte_check_slurm_happy="yes" - fi - - if test "$orte_check_slurm_happy" = "yes"; then : - ac_fn_c_check_func "$LINENO" "fork" "ac_cv_func_fork" -if test "x$ac_cv_func_fork" = xyes; then : - orte_check_slurm_happy="yes" -else - orte_check_slurm_happy="no" -fi - -fi - - if test "$orte_check_slurm_happy" = "yes"; then : - ac_fn_c_check_func "$LINENO" "execve" "ac_cv_func_execve" -if test "x$ac_cv_func_execve" = xyes; then : - orte_check_slurm_happy="yes" -else - orte_check_slurm_happy="no" -fi - -fi - - if test "$orte_check_slurm_happy" = "yes"; then : - ac_fn_c_check_func "$LINENO" "setpgid" "ac_cv_func_setpgid" -if test "x$ac_cv_func_setpgid" = xyes; then : - orte_check_slurm_happy="yes" -else - orte_check_slurm_happy="no" -fi - -fi - - # check to see if this is a Cray nativized slurm env. - - slurm_cray_env=0 - - if test -z "$opal_check_cray_alps_happy"; then - - -# Check whether --with-alps was given. -if test "${with_alps+set}" = set; then : - withval=$with_alps; -else - with_alps=auto -fi - - - if test -f /etc/opt/cray/release/clerelease; then - cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` - else - cle_level="unknown" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 -$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } - if test "$cle_level" = "4" && test "$with_alps" != "no"; then : - - # -# if we've gotten here, its because we are building on a CLE 4 system +# Invoke configure in a specific subdirectory. # - opal_check_alps_cle4_libdir_happy="no" - opal_check_alps_cle4_dir_happy="no" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 -$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } - - -# Check whether --with-alps-libdir was given. -if test "${with_alps_libdir+set}" = set; then : - withval=$with_alps_libdir; -fi - +# orte/mca/rmaps/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="orte/mca/rmaps/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" # -# check to see if Open MPI is being built on a CLE 4 eslogin node +# Sanity checks # - if test -f /etc/opt/cray/release/ESLrelease; then : - default_alps_dir="/opt/cray/xe-sysroot/default/usr" -else - default_alps_dir="/usr" -fi - - if test -z "$with_alps_libdir"; then : - if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : - if test -d "$with_alps_libdir/lib64"; then : - opal_check_alps_libdir="$with_alps_libdir/lib64" -else - opal_check_alps_libdir="$with_alps_libdir/lib" -fi -else - opal_check_alps_libdir="$default_alps_dir/lib/alps" -fi - -fi - - if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : - opal_check_alps_dir=$default_alps_dir -else - opal_check_alps_dir=$with_alps -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 -$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } - if test -f "$opal_check_alps_libdir/libalps.a"; then : - opal_check_alps_libdir_cle4_happy="yes" -else - opal_check_alps_libdir_cle4_happy="no", - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 -$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } - if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : - opal_check_alps_dir_cle4_happy="yes" -else - opal_check_alps_dir_cle4_happy="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : - CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" - CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - opal_check_cray_alps_happy="yes" -else - opal_check_cray_alps_happy="no" -fi - -else - if test "$with_alps" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy=no - -else - if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 -$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } - -if test -n "$CRAY_ALPSLLI_CFLAGS"; then - pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSLLI_LIBS"; then - pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` - else - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + # + # Move into the target directory + # -else - CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS - CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS - CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi + subdir_parent=`pwd` + cd $subdir_dir -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 -$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } + # + # Make a "../" for each directory in $subdir_dir. + # -if test -n "$CRAY_ALPSUTIL_CFLAGS"; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSUTIL_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + # + # Construct the --cache-file argument + # -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` - else - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 + # + # Invoke the configure script in the subdirectory + # - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + # + # Go back to the topdir + # -else - CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS - CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS - CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" + cd $subdir_parent fi +# +# Clean up +# -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 -$as_echo_n "checking for CRAY_ALPS... " >&6; } - -if test -n "$CRAY_ALPS_CFLAGS"; then - pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPS_LIBS"; then - pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPS_STATIC_LIBS"; then - pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` - else - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPS_PKG_ERRORS" >&5 + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/orte/mca/rmaps/all_components/post_configure.sh" + if test -f $infile; then -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi -else - CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS - CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS - CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + rmaps_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + rmaps_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 -$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } -if test -n "$CRAY_WLM_DETECT_CFLAGS"; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_WLM_DETECT_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/rmaps/$component/post_configure.sh" -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "rmaps" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/rmaps/$component/lib${ORTE_LIB_PREFIX}mca_rmaps_$component.la $static_ltlibs" else - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/rmaps/$component/libmca_rmaps_$component.la $static_ltlibs" fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + echo "extern const mca_base_component_t mca_rmaps_$component_component;" >> $outfile.extern + echo " &mca_rmaps_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi -else - CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS - CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS - CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:$component can compile" >&5 +$as_echo_n "checking if MCA component rmaps:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" - -cat >>confdefs.h <<_ACEOF -#define CRAY_WLM_DETECT 1 -_ACEOF - - -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 -$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 -$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi -fi - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 -$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } - - if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : - CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS - CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS -fi + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_rmaps" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_rmaps_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** rmaps component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_rmaps" = "$component" ; then +as_fn_error $? "*** rmaps component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$rmaps_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -234337,7 +253407,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -234356,7 +253426,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -234364,20 +253434,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -234400,25 +253474,8 @@ unset $opal_var done - - fi - - if test "$opal_check_cray_alps_happy" = "yes"; then : - orte_slurm_cray_LDFLAGS="$orte_slurm_cray_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" - orte_slurm_cray_CPPFLAGS="$orte_slurm_cray_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" - orte_slurm_cray_LIBS="$orte_slurm_cray_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - orte_slurm_cray_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - orte_slurm_cray_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - slurm_cray_env=1 -fi - - - -cat >>confdefs.h <<_ACEOF -#define SLURM_CRAY_ENV $slurm_cray_env -_ACEOF - - +str="line=\$rmaps_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -234431,7 +253488,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -234450,7 +253507,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -234458,20 +253515,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="Slurm: $orte_check_slurm_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done # Unwind the index @@ -234497,73 +253558,311 @@ fi - if test "$orte_check_slurm_happy" = "yes"; then : - ras_slurm_good=1 -else - ras_slurm_good=0 + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:$component can compile" >&5 +$as_echo_n "checking if MCA component rmaps:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_rmaps" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_rmaps" ; then + if test "$DIRECT_rmaps" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + fi + fi + done + fi + MCA_orte_rmaps_ALL_COMPONENTS="$all_components" + MCA_orte_rmaps_STATIC_COMPONENTS="$static_components" + MCA_orte_rmaps_DSO_COMPONENTS="$dso_components" + MCA_orte_rmaps_STATIC_LTLIBS="$static_ltlibs" - # if check worked, set wrapper flags if so. - # Evaluate succeed / fail - if test "$ras_slurm_good" = "1"; then : - should_build=$should_build + + + + + + + MCA_orte_rmaps_ALL_SUBDIRS= + for item in $all_components ; do + MCA_orte_rmaps_ALL_SUBDIRS="$MCA_orte_rmaps_ALL_SUBDIRS mca/rmaps/$item" + done + + + + MCA_orte_rmaps_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_orte_rmaps_STATIC_SUBDIRS="$MCA_orte_rmaps_STATIC_SUBDIRS mca/rmaps/$item" + done + + + + MCA_orte_rmaps_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_orte_rmaps_DSO_SUBDIRS="$MCA_orte_rmaps_DSO_SUBDIRS mca/rmaps/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "rmaps" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS rml" + MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/rml" + MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_rml_ALL_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_rml_DSO_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_rml_STATIC_SUBDIRS)" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/rml/libmca_rml.la" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_rml_STATIC_LTLIBS)" + + opal_show_subsubtitle "Configuring MCA framework rml" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=orte/mca/rml/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files orte/mca/rml/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework rml" >&5 +$as_echo_n "checking for no configure components in framework rml... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: oob" >&5 +$as_echo "oob" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework rml" >&5 +$as_echo_n "checking for m4 configure components in framework rml... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + opal_show_subsubsubtitle "MCA component rml:oob (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/orte/mca/rml/oob" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_rml" ; then + if test "$DIRECT_rml" = "oob" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_rml" = "1"; then : + want_component=0 +fi + if test "$DISABLE_rml_oob" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 else should_build=0 fi - # set build flags to use in makefile + SHARED_FRAMEWORK="$DSO_rml" + SHARED_COMPONENT="$DSO_rml_oob" + + STATIC_FRAMEWORK="$STATIC_rml" + STATIC_COMPONENT="$STATIC_rml_oob" + + shared_mode_override=static + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rml:oob compile mode" >&5 +$as_echo_n "checking for MCA component rml:oob compile mode... " >&6; } + if test "$DIRECT_rml" = "oob" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/ras/slurm/post_configure.sh" + infile="$srcdir/orte/mca/rml/oob/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components slurm" + all_components="$all_components oob" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components slurm" + dso_components="$dso_components oob" else - if test "ras" = "common"; then + if test "rml" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/ras/slurm/lib${ORTE_LIB_PREFIX}mca_ras_slurm.la $static_ltlibs" + static_ltlibs="mca/rml/oob/lib${ORTE_LIB_PREFIX}mca_rml_oob.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ras/slurm/libmca_ras_slurm.la $static_ltlibs" + static_ltlibs="mca/rml/oob/libmca_rml_oob.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_ras_slurm_component;" >> $outfile.extern - echo " &mca_ras_slurm_component, " >> $outfile.struct - static_components="$static_components slurm" + echo "extern const mca_base_component_t mca_rml_oob_component;" >> $outfile.extern + echo " &mca_rml_oob_component, " >> $outfile.struct + static_components="$static_components oob" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:slurm can compile" >&5 -$as_echo_n "checking if MCA component ras:slurm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rml:oob can compile" >&5 +$as_echo_n "checking if MCA component rml:oob can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_ras" = "slurm" ; then + if test "$DIRECT_rml" = "oob" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_ras_DIRECT_CALL_HEADER=$line" + str="MCA_orte_rml_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** ras component slurm was supposed to be direct-called, but +as_fn_error $? "*** rml component oob was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -234571,8 +253870,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ras" = "slurm" ; then -as_fn_error $? "*** ras component slurm was supposed to be direct-called, but + if test "$DIRECT_rml" = "oob" ; then +as_fn_error $? "*** rml component oob was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -234587,7 +253886,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$ras_slurm_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$rml_oob_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -234627,7 +253926,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_slurm_LDFLAGS; do + for arg in $rml_oob_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -234708,7 +254007,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_slurm_WRAPPER_EXTRA_LDFLAGS; do + for arg in $rml_oob_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -234750,7 +254049,7 @@ fi - if test "$ras_slurm_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$rml_oob_WRAPPER_EXTRA_LIBS" = ""; then : @@ -234790,7 +254089,88 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_slurm_LIBS; do + for arg in $rml_oob_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $rml_oob_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -234825,13 +254205,566 @@ opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$rml_oob_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $rml_oob_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rml_oob_WRAPPER_EXTRA_CPPFLAGS ($rml_oob_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring rml_oob_WRAPPER_EXTRA_CPPFLAGS ($rml_oob_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rml:oob can compile" >&5 +$as_echo_n "checking if MCA component rml:oob can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_rml" = "oob" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"oob\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"oob\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_rml" ; then + if test "$DIRECT_rml" = "oob" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"oob\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"oob\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components oob" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_rml_oob_DSO=1 + else + BUILD_orte_rml_oob_DSO=0 + fi + if test "$BUILD_orte_rml_oob_DSO" = "1"; then + MCA_BUILD_orte_rml_oob_DSO_TRUE= + MCA_BUILD_orte_rml_oob_DSO_FALSE='#' +else + MCA_BUILD_orte_rml_oob_DSO_TRUE='#' + MCA_BUILD_orte_rml_oob_DSO_FALSE= +fi + + + ac_config_files="$ac_config_files orte/mca/rml/oob/Makefile" + + + unset compile_mode + + + # configure components that use built-in configuration scripts + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/orte/mca/rml/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component rml:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/orte/mca/rml/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_rml" ; then + if test "$DIRECT_rml" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_rml" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_rml_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_rml" + str="SHARED_COMPONENT=\$DSO_rml_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_rml" + str="STATIC_COMPONENT=\$STATIC_rml_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rml:$component compile mode" >&5 +$as_echo_n "checking for MCA component rml:$component compile mode... " >&6; } + if test "$DIRECT_rml" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + +# +# Invoke configure in a specific subdirectory. +# +# orte/mca/rml/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="orte/mca/rml/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/orte/mca/rml/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + rml_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + rml_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/rml/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "rml" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/rml/$component/lib${ORTE_LIB_PREFIX}mca_rml_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/rml/$component/libmca_rml_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_rml_$component_component;" >> $outfile.extern + echo " &mca_rml_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rml:$component can compile" >&5 +$as_echo_n "checking if MCA component rml:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_rml" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_rml_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** rml component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_rml" = "$component" ; then +as_fn_error $? "*** rml component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi -else + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$rml_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -234871,21 +254804,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_slurm_WRAPPER_EXTRA_LIBS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -234911,18 +254844,8 @@ unset $opal_var done - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$ras_slurm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : +str="line=\$rml_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -234962,21 +254885,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_slurm_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -235003,80 +254926,179 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ras_slurm_WRAPPER_EXTRA_CPPFLAGS ($ras_slurm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring ras_slurm_WRAPPER_EXTRA_CPPFLAGS ($ras_slurm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + fi -else + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:slurm can compile" >&5 -$as_echo_n "checking if MCA component ras:slurm can compile... " >&6; } + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rml:$component can compile" >&5 +$as_echo_n "checking if MCA component rml:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_ras" = "slurm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"slurm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"slurm\" failed to configure properly" >&2;} + if test "$with_rml" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_ras" ; then - if test "$DIRECT_ras" = "slurm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"slurm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"slurm\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_rml" ; then + if test "$DIRECT_rml" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components slurm" + fi + fi + done + fi + MCA_orte_rml_ALL_COMPONENTS="$all_components" + MCA_orte_rml_STATIC_COMPONENTS="$static_components" + MCA_orte_rml_DSO_COMPONENTS="$dso_components" + MCA_orte_rml_STATIC_LTLIBS="$static_ltlibs" - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_ras_slurm_DSO=1 -else - BUILD_orte_ras_slurm_DSO=0 -fi - if test "$BUILD_orte_ras_slurm_DSO" = "1"; then - MCA_BUILD_orte_ras_slurm_DSO_TRUE= - MCA_BUILD_orte_ras_slurm_DSO_FALSE='#' -else - MCA_BUILD_orte_ras_slurm_DSO_TRUE='#' - MCA_BUILD_orte_ras_slurm_DSO_FALSE= -fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - unset compile_mode + MCA_orte_rml_ALL_SUBDIRS= + for item in $all_components ; do + MCA_orte_rml_ALL_SUBDIRS="$MCA_orte_rml_ALL_SUBDIRS mca/rml/$item" + done - opal_show_subsubsubtitle "MCA component ras:tm (m4 configuration macro)" + MCA_orte_rml_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_orte_rml_STATIC_SUBDIRS="$MCA_orte_rml_STATIC_SUBDIRS mca/rml/$item" + done - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + MCA_orte_rml_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_orte_rml_DSO_SUBDIRS="$MCA_orte_rml_DSO_SUBDIRS mca/rml/$item" + done - component_path="$srcdir/orte/mca/ras/tm" + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "rml" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS routed" + MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/routed" + MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_routed_ALL_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_routed_DSO_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_routed_STATIC_SUBDIRS)" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/routed/libmca_routed.la" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_routed_STATIC_LTLIBS)" + + opal_show_subsubtitle "Configuring MCA framework routed" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=orte/mca/routed/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files orte/mca/routed/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework routed" >&5 +$as_echo_n "checking for no configure components in framework routed... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: binomial, direct, radix" >&5 +$as_echo "binomial, direct, radix" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework routed" >&5 +$as_echo_n "checking for m4 configure components in framework routed... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + opal_show_subsubsubtitle "MCA component routed:binomial (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/orte/mca/routed/binomial" want_component=0 # build if: @@ -235108,8 +255130,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_ras" ; then - if test "$DIRECT_ras" = "tm" ; then + if test ! -z "$DIRECT_routed" ; then + if test "$DIRECT_routed" = "binomial" ; then want_component=1 else want_component=0 @@ -235118,27 +255140,25 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_ras" = "1"; then : + if test "$DISABLE_routed" = "1"; then : want_component=0 fi - if test "$DISABLE_ras_tm" = "1"; then : + if test "$DISABLE_routed_binomial" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_ras" - SHARED_COMPONENT="$DSO_ras_tm" + SHARED_FRAMEWORK="$DSO_routed" + SHARED_COMPONENT="$DSO_routed_binomial" - STATIC_FRAMEWORK="$STATIC_ras" - STATIC_COMPONENT="$STATIC_ras_tm" + STATIC_FRAMEWORK="$STATIC_routed" + STATIC_COMPONENT="$STATIC_routed_binomial" shared_mode_override=static @@ -235156,9 +255176,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ras:tm compile mode" >&5 -$as_echo_n "checking for MCA component ras:tm compile mode... " >&6; } - if test "$DIRECT_ras" = "tm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component routed:binomial compile mode" >&5 +$as_echo_n "checking for MCA component routed:binomial compile mode... " >&6; } + if test "$DIRECT_routed" = "binomial" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -235166,344 +255186,77 @@ $as_echo "$compile_mode" >&6; } fi + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # try to configure the component - - ac_config_files="$ac_config_files orte/mca/ras/tm/Makefile" - - - - if test -z $orte_check_tm_happy ; then - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in orte_check_tm_found orte_check_tm_dir orte_check_tm_pbs_config orte_check_tm_LDFLAGS_save orte_check_tm_CPPFLAGS_save orte_check_tm_LIBS_save; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"orte_check_tm_found orte_check_tm_dir orte_check_tm_pbs_config orte_check_tm_LDFLAGS_save orte_check_tm_CPPFLAGS_save orte_check_tm_LIBS_save\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - -# Check whether --with-tm was given. -if test "${with_tm+set}" = set; then : - withval=$with_tm; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-tm value" >&5 -$as_echo_n "checking --with-tm value... " >&6; } - if test "$with_tm" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-tm)" >&5 -$as_echo "simple no (specified --without-tm)" >&6; } -else - if test "$with_tm" = "yes" || test "x$with_tm" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_tm"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_tm not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_tm not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_tm/include/tm.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_tm/include/tm.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_tm/include/tm.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_tm)" >&5 -$as_echo "sanity check ok ($with_tm)" >&6; } - -fi - - -fi - - -fi - - -fi - - - orte_check_tm_found=no - if test "$with_tm" = "no"; then : - orte_check_tm_happy="no" -else - orte_check_tm_happy="yes" - if test ! -z "$with_tm" && test "$with_tm" != "yes"; then : - orte_check_tm_dir="$with_tm" -else - orte_check_tm_dir="" -fi -fi - - if test "$orte_check_tm_happy" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pbs-config" >&5 -$as_echo_n "checking for pbs-config... " >&6; } - orte_check_tm_pbs_config="not found" - if test "$orte_check_tm_dir" != "" && test -d "$orte_check_tm_dir" && test -x "$orte_check_tm_dir/bin/pbs-config"; then : - orte_check_tm_pbs_config="$orte_check_tm_dir/bin/pbs-config" -else - if pbs-config --prefix >/dev/null 2>&1; then : - orte_check_tm_pbs_config="pbs-config" -fi -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_tm_pbs_config" >&5 -$as_echo "$orte_check_tm_pbs_config" >&6; } -fi - - # If we have pbs-config, get the flags we need from there and then - # do simplistic tests looking for the tm headers and symbols - - if test "$orte_check_tm_happy" = "yes" && test "$orte_check_tm_pbs_config" != "not found"; then : - orte_check_tm_CPPFLAGS=`$orte_check_tm_pbs_config --cflags` - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:235297: orte_check_tm_CPPFLAGS from pbs-config: $orte_check_tm_CPPFLAGS" >&5 -else - echo orte_check_tm_CPPFLAGS from pbs-config: $orte_check_tm_CPPFLAGS >&5 -fi - - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + if test "$should_build" = "1" ; then - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in orte_check_tm_flags; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"orte_check_tm_flags\"" - eval $opal_str - unset opal_str + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/routed/binomial/post_configure.sh" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components binomial" - orte_check_tm_flags=`$orte_check_tm_pbs_config --libs` - for orte_check_tm_val in $orte_check_tm_flags; do - if test "`echo $orte_check_tm_val | cut -c1-2`" = "-l"; then - if test "LDFLAGS" = "LIBS"; then - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS $orte_check_tm_val" - fi + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components binomial" + else + if test "routed" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/routed/binomial/lib${ORTE_LIB_PREFIX}mca_routed_binomial.la $static_ltlibs" else - if test "LDFLAGS" = "LDFLAGS"; then - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS $orte_check_tm_val" - fi + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/routed/binomial/libmca_routed_binomial.la $static_ltlibs" fi - done - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:235378: orte_check_tm_LDFLAGS from pbs-config: $orte_check_tm_LDFLAGS" >&5 -else - echo orte_check_tm_LDFLAGS from pbs-config: $orte_check_tm_LDFLAGS >&5 -fi - - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + echo "extern const mca_base_component_t mca_routed_binomial_component;" >> $outfile.extern + echo " &mca_routed_binomial_component, " >> $outfile.struct + static_components="$static_components binomial" fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in orte_check_tm_flags; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"orte_check_tm_flags\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component routed:binomial can compile" >&5 +$as_echo_n "checking if MCA component routed:binomial can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - orte_check_tm_flags=`$orte_check_tm_pbs_config --libs` - for orte_check_tm_val in $orte_check_tm_flags; do - if test "`echo $orte_check_tm_val | cut -c1-2`" = "-l"; then - if test "LIBS" = "LIBS"; then - orte_check_tm_LIBS="$orte_check_tm_LIBS $orte_check_tm_val" - fi - else - if test "LIBS" = "LDFLAGS"; then - orte_check_tm_LIBS="$orte_check_tm_LIBS $orte_check_tm_val" + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_routed" = "binomial" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_routed_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** routed component binomial was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 fi fi - done - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_routed" = "binomial" ; then +as_fn_error $? "*** routed component binomial was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:235459: orte_check_tm_LIBS from pbs-config: $orte_check_tm_LIBS" >&5 -else - echo orte_check_tm_LIBS from pbs-config: $orte_check_tm_LIBS >&5 -fi - - # Now that we supposedly have the right flags, try them out. - - orte_check_tm_CPPFLAGS_save="$CPPFLAGS" - orte_check_tm_LDFLAGS_save="$LDFLAGS" - orte_check_tm_LIBS_save="$LIBS" - - CPPFLAGS="$CPPFLAGS $orte_check_tm_CPPFLAGS" - LIBS="$LIBS $orte_check_tm_LIBS" - LDFLAGS="$LDFLAGS $orte_check_tm_LDFLAGS" - - ac_fn_c_check_header_mongrel "$LINENO" "tm.h" "ac_cv_header_tm_h" "$ac_includes_default" -if test "x$ac_cv_header_tm_h" = xyes; then : - ac_fn_c_check_func "$LINENO" "tm_finalize" "ac_cv_func_tm_finalize" -if test "x$ac_cv_func_tm_finalize" = xyes; then : - orte_check_tm_found="yes" -fi - -fi - - - - CPPFLAGS="$orte_check_tm_CPPFLAGS_save" - LDFLAGS="$orte_check_tm_LDFLAGS_save" - LIBS="$orte_check_tm_LIBS_save" -fi - - # If we don't have pbs-config, then we have to look around - # manually. - - # Note that Torque 2.1.0 changed the name of their back-end - # library to "libtorque". So we have to check for both libpbs and - # libtorque. First, check for libpbs. - - orte_check_package_ras_tm_save_CPPFLAGS="$CPPFLAGS" - orte_check_package_ras_tm_save_LDFLAGS="$LDFLAGS" - orte_check_package_ras_tm_save_LIBS="$LIBS" - - if test "$orte_check_tm_found" = "no"; then : - if test "$orte_check_tm_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$routed_binomial_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -235516,7 +255269,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -235535,7 +255288,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -235543,63 +255296,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_tm_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $orte_check_tm_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in tm.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "tm.h" "ac_cv_header_tm_h" "$ac_includes_default" -if test "x$ac_cv_header_tm_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_TM_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_tm_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - orte_check_tm_CPPFLAGS="$orte_check_tm_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" + for arg in $routed_binomial_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - for ac_header in tm.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "tm.h" "ac_cv_header_tm_h" "$ac_includes_default" -if test "x$ac_cv_header_tm_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_TM_H 1 -_ACEOF - opal_check_package_header_happy="yes" + done fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - orte_check_tm_found="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - orte_check_tm_found="no" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi -else - orte_check_tm_found="yes" fi - unset opal_check_package_header_happy + done # Unwind the index @@ -235617,317 +255331,13 @@ opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - if test "$orte_check_tm_found" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_tm_init - opal_check_package_lib_happy="no" - if test "$orte_check_tm_libdir" != ""; then : - # libdir was specified - search only there - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$orte_check_tm_libdir" - LDFLAGS="$LDFLAGS -L$orte_check_tm_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : - -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$orte_check_tm_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : - -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : - -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : - -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -fi -fi -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. +else @@ -235940,7 +255350,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -235959,16 +255369,57 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $routed_binomial_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$routed_binomial_WRAPPER_EXTRA_LIBS" = ""; then : @@ -235981,7 +255432,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -236000,7 +255451,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -236008,303 +255459,500 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $routed_binomial_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpbs requires libnl v1 or v3" >&5 -$as_echo_n "checking if libpbs requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void tm_init (void); -int main(int argc, char *argv[]) { - tm_init (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:236035: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS 1>&5 2>&1 -opal_status=$? + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:236042: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib pbs" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib pbs" >&2;} -fi - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpbs links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libpbs links to both libnl and libnl-3." >&2;} + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - libnl_sane=0 -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pbs requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pbs requires libnl" >&2;} + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} - libnl_sane=0 + for arg in $routed_binomial_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_libnlv1_libs="$opal_libnlv1_libs pbs" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Loop over every token we've seen so far + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. +fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + fi - # Check the ending condition + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$routed_binomial_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done - # If we didn't find the token, add it to the "array" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + for arg in $routed_binomial_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -# Done; do the assignment + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 fi - +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring routed_binomial_WRAPPER_EXTRA_CPPFLAGS ($routed_binomial_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring routed_binomial_WRAPPER_EXTRA_CPPFLAGS ($routed_binomial_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpbs requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpbs requires libnl-3" >&2;} + else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component routed:binomial can compile" >&5 +$as_echo_n "checking if MCA component routed:binomial can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - libnl_sane=0 + # If this component was requested as the default for this + # type, then abort. + if test "$with_routed" = "binomial" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"binomial\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"binomial\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_routed" ; then + if test "$DIRECT_routed" = "binomial" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"binomial\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"binomial\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components binomial" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_routed_binomial_DSO=1 + else + BUILD_orte_routed_binomial_DSO=0 + fi + if test "$BUILD_orte_routed_binomial_DSO" = "1"; then + MCA_BUILD_orte_routed_binomial_DSO_TRUE= + MCA_BUILD_orte_routed_binomial_DSO_FALSE='#' else - opal_libnlv3_libs="$opal_libnlv3_libs pbs" + MCA_BUILD_orte_routed_binomial_DSO_TRUE='#' + MCA_BUILD_orte_routed_binomial_DSO_FALSE= +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones + ac_config_files="$ac_config_files orte/mca/routed/binomial/Makefile" -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far + unset compile_mode - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + opal_show_subsubsubtitle "MCA component routed:direct (no configuration)" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + component_path="$srcdir/orte/mca/routed/direct" + want_component=0 - # Increment the counter + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_routed" ; then + if test "$DIRECT_routed" = "direct" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - opal_i="`expr $opal_i + 1`" - done + # if we were explicitly disabled, don't build :) + if test "$DISABLE_routed" = "1"; then : + want_component=0 +fi + if test "$DISABLE_routed_direct" = "1"; then : + want_component=0 +fi - # If we didn't find the token, add it to the "array" + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + + SHARED_FRAMEWORK="$DSO_routed" + SHARED_COMPONENT="$DSO_routed_direct" + + STATIC_FRAMEWORK="$STATIC_routed" + STATIC_COMPONENT="$STATIC_routed_direct" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" else - opal_i="`expr $opal_i - 1`" + compile_mode="static" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component routed:direct compile mode" >&5 +$as_echo_n "checking for MCA component routed:direct compile mode... " >&6; } + if test "$DIRECT_routed" = "direct" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + if test "$should_build" = "1" ; then - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/routed/direct/post_configure.sh" -# Clean up + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components direct" -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components direct" + else + if test "routed" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/routed/direct/lib${ORTE_LIB_PREFIX}mca_routed_direct.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/routed/direct/libmca_routed_direct.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_routed_direct_component;" >> $outfile.extern + echo " &mca_routed_direct_component, " >> $outfile.struct + static_components="$static_components direct" + fi -fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component routed:direct can compile" >&5 +$as_echo_n "checking if MCA component routed:direct can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_routed" = "direct" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_routed_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** routed component direct was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_routed" = "direct" ; then +as_fn_error $? "*** routed component direct was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - rm -f conftest conftest_c.$ac_ext + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$routed_direct_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_libnl_sane=$libnl_sane - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - ;; - esac - opal_check_package_libnl_check_ok=$opal_libnl_sane + for arg in $routed_direct_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -236327,324 +255975,89 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_tm_init" != "no" && - test "$ac_cv_search_tm_init" != "none required"; then : - orte_check_tm_LIBS="$ac_cv_search_tm_init " -else - orte_check_tm_LIBS="" -fi - orte_check_tm_found="yes" -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_tm_init - opal_check_package_lib_happy="no" - if test "$orte_check_tm_libdir" != ""; then : - # libdir was specified - search only there - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$orte_check_tm_libdir" - LDFLAGS="$LDFLAGS -L$orte_check_tm_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lcrypto $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : - -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$orte_check_tm_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lcrypto $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : - -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lcrypto $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -fi -fi + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pbs; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lcrypto $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $routed_direct_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + +fi + if test "$routed_direct_WRAPPER_EXTRA_LIBS" = ""; then : @@ -236657,7 +256070,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -236676,16 +256089,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $routed_direct_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -236698,7 +256151,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -236717,7 +256170,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -236725,276 +256178,418 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $routed_direct_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpbs requires libnl v1 or v3" >&5 -$as_echo_n "checking if libpbs requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void tm_init (void); -int main(int argc, char *argv[]) { - tm_init (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:236752: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpbs $LIBS $orte_check_tm_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:236759: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib pbs" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib pbs" >&2;} + fi -fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$routed_direct_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpbs links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libpbs links to both libnl and libnl-3." >&2;} + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - libnl_sane=0 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pbs requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pbs requires libnl" >&2;} + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs pbs" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs + for arg in $routed_direct_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Loop over every token we've seen so far + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring routed_direct_WRAPPER_EXTRA_CPPFLAGS ($routed_direct_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring routed_direct_WRAPPER_EXTRA_CPPFLAGS ($routed_direct_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - # Check the ending condition + else - opal_done="`expr $opal_i \>= $opal_count`" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component routed:direct can compile" >&5 +$as_echo_n "checking if MCA component routed:direct can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Increment the counter + # If this component was requested as the default for this + # type, then abort. + if test "$with_routed" = "direct" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"direct\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"direct\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_i="`expr $opal_i + 1`" - done + if test ! -z "$DIRECT_routed" ; then + if test "$DIRECT_routed" = "direct" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"direct\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"direct\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # If we didn't find the token, add it to the "array" + # add component to all component list + all_components="$all_components direct" + fi - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_routed_direct_DSO=1 else - opal_i="`expr $opal_i - 1`" + BUILD_orte_routed_direct_DSO=0 fi -done + if test "$BUILD_orte_routed_direct_DSO" = "1"; then + MCA_BUILD_orte_routed_direct_DSO_TRUE= + MCA_BUILD_orte_routed_direct_DSO_FALSE='#' +else + MCA_BUILD_orte_routed_direct_DSO_TRUE='#' + MCA_BUILD_orte_routed_direct_DSO_FALSE= +fi -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + ac_config_files="$ac_config_files orte/mca/routed/direct/Makefile" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + unset compile_mode -# Done; do the assignment + opal_show_subsubsubtitle "MCA component routed:radix (no configuration)" -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi -fi + component_path="$srcdir/orte/mca/routed/radix" + want_component=0 - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpbs requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpbs requires libnl-3" >&2;} + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_routed" ; then + if test "$DIRECT_routed" = "radix" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpbs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpbs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpbs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpbs." >&2;} + # if we were explicitly disabled, don't build :) + if test "$DISABLE_routed" = "1"; then : + want_component=0 +fi + if test "$DISABLE_routed_radix" = "1"; then : + want_component=0 +fi - libnl_sane=0 + if test "$want_component" = "1"; then : + should_build=1 else - opal_libnlv3_libs="$opal_libnlv3_libs pbs" + should_build=0 +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones + SHARED_FRAMEWORK="$DSO_routed" + SHARED_COMPONENT="$DSO_routed_radix" -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + STATIC_FRAMEWORK="$STATIC_routed" + STATIC_COMPONENT="$STATIC_routed_radix" - # Loop over every token we've seen so far + shared_mode_override=static - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component routed:radix compile mode" >&5 +$as_echo_n "checking for MCA component routed:radix compile mode... " >&6; } + if test "$DIRECT_routed" = "radix" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # Check the ending condition + if test "$should_build" = "1" ; then - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/routed/radix/post_configure.sh" - # If we didn't find the token, add it to the "array" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components radix" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components radix" else - opal_i="`expr $opal_i - 1`" + if test "routed" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/routed/radix/lib${ORTE_LIB_PREFIX}mca_routed_radix.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/routed/radix/libmca_routed_radix.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_routed_radix_component;" >> $outfile.extern + echo " &mca_routed_radix_component, " >> $outfile.struct + static_components="$static_components radix" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component routed:radix can compile" >&5 +$as_echo_n "checking if MCA component routed:radix can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_routed" = "radix" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_routed_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** routed component radix was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_routed" = "radix" ; then +as_fn_error $? "*** routed component radix was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$routed_radix_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + for arg in $routed_radix_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -237018,10 +256613,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $routed_radix_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -237044,324 +256694,89 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_tm_init" != "no" && - test "$ac_cv_search_tm_init" != "none required"; then : - orte_check_tm_LIBS="$ac_cv_search_tm_init -lcrypto" -else - orte_check_tm_LIBS="-lcrypto" -fi - orte_check_tm_found="yes" -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_tm_init - opal_check_package_lib_happy="no" - if test "$orte_check_tm_libdir" != ""; then : - # libdir was specified - search only there - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$orte_check_tm_libdir" - LDFLAGS="$LDFLAGS -L$orte_check_tm_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' torque; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : - -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$orte_check_tm_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' torque; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : - -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if test "$routed_radix_WRAPPER_EXTRA_LIBS" = ""; then : -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' torque; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init -fi -fi -fi + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_tm_LDFLAGS="$orte_check_tm_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tm_init" >&5 -$as_echo_n "checking for library containing tm_init... " >&6; } -if ${ac_cv_search_tm_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char tm_init (); -int -main () -{ -return tm_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' torque; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_tm_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_tm_init+:} false; then : - break -fi -done -if ${ac_cv_search_tm_init+:} false; then : + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -else - ac_cv_search_tm_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tm_init" >&5 -$as_echo "$ac_cv_search_tm_init" >&6; } -ac_res=$ac_cv_search_tm_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_tm_save_LDFLAGS" - orte_check_tm_LDFLAGS="$opal_check_package_orte_check_tm_orig_LDFLAGS" - unset ac_cv_search_tm_init + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $routed_radix_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -237374,7 +256789,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -237393,16 +256808,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $routed_radix_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$routed_radix_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -237415,7 +256880,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -237434,7 +256899,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -237442,276 +256907,389 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $routed_radix_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtorque requires libnl v1 or v3" >&5 -$as_echo_n "checking if libtorque requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void tm_init (void); -int main(int argc, char *argv[]) { - tm_init (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:237469: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltorque $LIBS $orte_check_tm_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltorque $LIBS $orte_check_tm_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:237476: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring routed_radix_WRAPPER_EXTRA_CPPFLAGS ($routed_radix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring routed_radix_WRAPPER_EXTRA_CPPFLAGS ($routed_radix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib torque" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib torque" >&2;} -fi + else - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component routed:radix can compile" >&5 +$as_echo_n "checking if MCA component routed:radix can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + # If this component was requested as the default for this + # type, then abort. + if test "$with_routed" = "radix" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"radix\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"radix\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libtorque links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libtorque links to both libnl and libnl-3." >&2;} + if test ! -z "$DIRECT_routed" ; then + if test "$DIRECT_routed" = "radix" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"radix\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"radix\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtorque (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libtorque (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtorque." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtorque." >&2;} + # add component to all component list + all_components="$all_components radix" + fi - libnl_sane=0 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_routed_radix_DSO=1 + else + BUILD_orte_routed_radix_DSO=0 + fi + if test "$BUILD_orte_routed_radix_DSO" = "1"; then + MCA_BUILD_orte_routed_radix_DSO_TRUE= + MCA_BUILD_orte_routed_radix_DSO_FALSE='#' +else + MCA_BUILD_orte_routed_radix_DSO_TRUE='#' + MCA_BUILD_orte_routed_radix_DSO_FALSE= fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas torque requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas torque requires libnl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtorque (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libtorque (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtorque." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtorque." >&2;} + ac_config_files="$ac_config_files orte/mca/routed/radix/Makefile" - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs torque" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs + unset compile_mode -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # configure components that use built-in configuration scripts - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + if test "1" != "0"; then : - # If we didn't find the token, add it to the "array" + for component_path in $srcdir/orte/mca/routed/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component routed:$component (need to configure)" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + component_path="$srcdir/orte/mca/routed/$component" + want_component=0 - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_routed" ; then + if test "$DIRECT_routed" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi -# Done; do the assignment + # if we were explicitly disabled, don't build :) + if test "$DISABLE_routed" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_routed_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + SHARED_FRAMEWORK="$DSO_routed" + str="SHARED_COMPONENT=\$DSO_routed_$component" + eval $str -fi + STATIC_FRAMEWORK="$STATIC_routed" + str="STATIC_COMPONENT=\$STATIC_routed_$component" + eval $str - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libtorque requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libtorque requires libnl-3" >&2;} + shared_mode_override=static - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtorque (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libtorque (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtorque." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtorque." >&2;} + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs torque" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component routed:$component compile mode" >&5 +$as_echo_n "checking for MCA component routed:$component compile mode... " >&6; } + if test "$DIRECT_routed" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" -# Go through each item in the variable and only keep the unique ones + if test "$should_build" = "1" ; then -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # Check the ending condition + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str - opal_done="`expr $opal_i \>= $opal_count`" + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - # Increment the counter - opal_i="`expr $opal_i + 1`" - done +# +# Invoke configure in a specific subdirectory. +# +# orte/mca/routed/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="orte/mca/routed/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" - # If we didn't find the token, add it to the "array" +# +# Sanity checks +# - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} -# Take all the items in the "array" and assemble them back into a -# single variable + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + # + # Move into the target directory + # -# Done; do the assignment + subdir_parent=`pwd` + cd $subdir_dir -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # + # Make a "../" for each directory in $subdir_dir. + # -# Clean up + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac -fi + # + # Construct the --cache-file argument + # - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" - rm -f conftest conftest_c.$ac_ext + # + # Invoke the configure script in the subdirectory + # - opal_libnl_sane=$libnl_sane + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# # Unwind the index @@ -237734,11 +257312,163 @@ unset $opal_var done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi - ;; - esac + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/orte/mca/routed/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + routed_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + routed_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/routed/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "routed" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/routed/$component/lib${ORTE_LIB_PREFIX}mca_routed_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/routed/$component/libmca_routed_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_routed_$component_component;" >> $outfile.extern + echo " &mca_routed_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component routed:$component can compile" >&5 +$as_echo_n "checking if MCA component routed:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_routed" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_routed_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** routed component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_routed" = "$component" ; then +as_fn_error $? "*** routed component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$routed_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -237760,44 +257490,8 @@ unset $opal_var done - - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_tm_init" != "no" && - test "$ac_cv_search_tm_init" != "none required"; then : - orte_check_tm_LIBS="$ac_cv_search_tm_init " -else - orte_check_tm_LIBS="" -fi - orte_check_tm_found="yes" -else - orte_check_tm_found="no" -fi - - -fi - - -fi - - -fi -fi - - CPPFLAGS="$orte_check_package_ras_tm_save_CPPFLAGS" - LDFLAGS="$orte_check_package_ras_tm_save_LDFLAGS" - LIBS="$orte_check_package_ras_tm_save_LIBS" - - if test "$orte_check_tm_found" = "no" ; then - orte_check_tm_happy=no - fi - +str="line=\$routed_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -237810,7 +257504,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -237829,7 +257523,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -237837,145 +257531,354 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="Torque: $orte_check_tm_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component routed:$component can compile" >&5 +$as_echo_n "checking if MCA component routed:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_routed" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_routed" ; then + if test "$DIRECT_routed" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + fi + fi + done + +fi + + MCA_orte_routed_ALL_COMPONENTS="$all_components" + MCA_orte_routed_STATIC_COMPONENTS="$static_components" + MCA_orte_routed_DSO_COMPONENTS="$dso_components" + MCA_orte_routed_STATIC_LTLIBS="$static_ltlibs" + + + + + + + + MCA_orte_routed_ALL_SUBDIRS= + for item in $all_components ; do + MCA_orte_routed_ALL_SUBDIRS="$MCA_orte_routed_ALL_SUBDIRS mca/routed/$item" + done + + + + MCA_orte_routed_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_orte_routed_STATIC_SUBDIRS="$MCA_orte_routed_STATIC_SUBDIRS mca/routed/$item" + done + + + + MCA_orte_routed_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_orte_routed_DSO_SUBDIRS="$MCA_orte_routed_DSO_SUBDIRS mca/routed/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "routed" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + rm -f $outfile fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS rtc" + MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/rtc" + MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_rtc_ALL_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_rtc_DSO_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_rtc_STATIC_SUBDIRS)" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/rtc/libmca_rtc.la" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_rtc_STATIC_LTLIBS)" + + opal_show_subsubtitle "Configuring MCA framework rtc" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=orte/mca/rtc/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files orte/mca/rtc/Makefile" + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework rtc" >&5 +$as_echo_n "checking for no configure components in framework rtc... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: hwloc" >&5 +$as_echo "hwloc" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework rtc" >&5 +$as_echo_n "checking for m4 configure components in framework rtc... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # run the configure logic for the no-config components + opal_show_subsubsubtitle "MCA component rtc:hwloc (no configuration)" - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + component_path="$srcdir/orte/mca/rtc/hwloc" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_rtc" ; then + if test "$DIRECT_rtc" = "hwloc" ; then + want_component=1 + else + want_component=0 + fi + fi fi - # Did we find the right stuff? - if test "$orte_check_tm_happy" = "yes"; then : - ras_tm_LIBS="$ras_tm_LIBS $orte_check_tm_LIBS" - ras_tm_LDFLAGS="$ras_tm_LDFLAGS $orte_check_tm_LDFLAGS" - ras_tm_CPPFLAGS="$ras_tm_CPPFLAGS $orte_check_tm_CPPFLAGS" - # add the TM libraries to static builds as they are required - ras_tm_WRAPPER_EXTRA_LDFLAGS=$ras_tm_LDFLAGS - ras_tm_WRAPPER_EXTRA_LIBS=$ras_tm_LIBS - ras_tm_good=1 -else - if test ! -z "$with_tm" && test "$with_tm" != "no"; then : - as_fn_error $? "TM support requested but not found. Aborting" "$LINENO" 5 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_rtc" = "1"; then : + want_component=0 fi - orte_check_tm_happy="no" - ras_tm_good=0 + if test "$DISABLE_rtc_hwloc" = "1"; then : + want_component=0 fi - - # if check worked, set wrapper flags if so. - # Evaluate succeed / fail - if test "$ras_tm_good" = "1"; then : - should_build=$should_build + if test "$want_component" = "1"; then : + should_build=1 else should_build=0 fi - # set build flags to use in makefile + SHARED_FRAMEWORK="$DSO_rtc" + SHARED_COMPONENT="$DSO_rtc_hwloc" + STATIC_FRAMEWORK="$STATIC_rtc" + STATIC_COMPONENT="$STATIC_rtc_hwloc" + shared_mode_override=static - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - if test "$should_build" = "1"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rtc:hwloc compile mode" >&5 +$as_echo_n "checking for MCA component rtc:hwloc compile mode... " >&6; } + if test "$DIRECT_rtc" = "hwloc" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/ras/tm/post_configure.sh" + infile="$srcdir/orte/mca/rtc/hwloc/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components tm" + all_components="$all_components hwloc" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components tm" + dso_components="$dso_components hwloc" else - if test "ras" = "common"; then + if test "rtc" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/ras/tm/lib${ORTE_LIB_PREFIX}mca_ras_tm.la $static_ltlibs" + static_ltlibs="mca/rtc/hwloc/lib${ORTE_LIB_PREFIX}mca_rtc_hwloc.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ras/tm/libmca_ras_tm.la $static_ltlibs" + static_ltlibs="mca/rtc/hwloc/libmca_rtc_hwloc.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_ras_tm_component;" >> $outfile.extern - echo " &mca_ras_tm_component, " >> $outfile.struct - static_components="$static_components tm" + echo "extern const mca_base_component_t mca_rtc_hwloc_component;" >> $outfile.extern + echo " &mca_rtc_hwloc_component, " >> $outfile.struct + static_components="$static_components hwloc" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:tm can compile" >&5 -$as_echo_n "checking if MCA component ras:tm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rtc:hwloc can compile" >&5 +$as_echo_n "checking if MCA component rtc:hwloc can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_ras" = "tm" ; then + if test "$DIRECT_rtc" = "hwloc" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_ras_DIRECT_CALL_HEADER=$line" + str="MCA_orte_rtc_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** ras component tm was supposed to be direct-called, but +as_fn_error $? "*** rtc component hwloc was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -237983,8 +257886,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ras" = "tm" ; then -as_fn_error $? "*** ras component tm was supposed to be direct-called, but + if test "$DIRECT_rtc" = "hwloc" ; then +as_fn_error $? "*** rtc component hwloc was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -237999,7 +257902,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$ras_tm_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$rtc_hwloc_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -238039,7 +257942,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_tm_LDFLAGS; do + for arg in $rtc_hwloc_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -238120,7 +258023,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_tm_WRAPPER_EXTRA_LDFLAGS; do + for arg in $rtc_hwloc_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -238162,7 +258065,7 @@ fi - if test "$ras_tm_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$rtc_hwloc_WRAPPER_EXTRA_LIBS" = ""; then : @@ -238202,7 +258105,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_tm_LIBS; do + for arg in $rtc_hwloc_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -238283,7 +258186,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_tm_WRAPPER_EXTRA_LIBS; do + for arg in $rtc_hwloc_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -238331,7 +258234,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$ras_tm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$rtc_hwloc_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -238374,7 +258277,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $ras_tm_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $rtc_hwloc_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -238417,70 +258320,71 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ras_tm_WRAPPER_EXTRA_CPPFLAGS ($ras_tm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring ras_tm_WRAPPER_EXTRA_CPPFLAGS ($ras_tm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rtc_hwloc_WRAPPER_EXTRA_CPPFLAGS ($rtc_hwloc_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring rtc_hwloc_WRAPPER_EXTRA_CPPFLAGS ($rtc_hwloc_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:tm can compile" >&5 -$as_echo_n "checking if MCA component ras:tm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rtc:hwloc can compile" >&5 +$as_echo_n "checking if MCA component rtc:hwloc can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_ras" = "tm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tm\" failed to configure properly" >&2;} + if test "$with_rtc" = "hwloc" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hwloc\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"hwloc\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_ras" ; then - if test "$DIRECT_ras" = "tm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tm\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_rtc" ; then + if test "$DIRECT_rtc" = "hwloc" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hwloc\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"hwloc\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components tm" -fi - - + # add component to all component list + all_components="$all_components hwloc" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_ras_tm_DSO=1 -else - BUILD_orte_ras_tm_DSO=0 -fi - if test "$BUILD_orte_ras_tm_DSO" = "1"; then - MCA_BUILD_orte_ras_tm_DSO_TRUE= - MCA_BUILD_orte_ras_tm_DSO_FALSE='#' + if test "$compile_mode" = "dso" ; then + BUILD_orte_rtc_hwloc_DSO=1 + else + BUILD_orte_rtc_hwloc_DSO=0 + fi + if test "$BUILD_orte_rtc_hwloc_DSO" = "1"; then + MCA_BUILD_orte_rtc_hwloc_DSO_TRUE= + MCA_BUILD_orte_rtc_hwloc_DSO_FALSE='#' else - MCA_BUILD_orte_ras_tm_DSO_TRUE='#' - MCA_BUILD_orte_ras_tm_DSO_FALSE= + MCA_BUILD_orte_rtc_hwloc_DSO_TRUE='#' + MCA_BUILD_orte_rtc_hwloc_DSO_FALSE= fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi + ac_config_files="$ac_config_files orte/mca/rtc/hwloc/Makefile" + unset compile_mode + # configure components that use built-in configuration scripts + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + # configure components that provide their own configure script. # It would be really hard to run these for "find first that @@ -238490,16 +258394,16 @@ if test "1" != "0"; then : - for component_path in $srcdir/orte/mca/ras/* ; do + for component_path in $srcdir/orte/mca/rtc/* ; do component="`basename $component_path`" if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component ras:$component (need to configure)" + opal_show_subsubsubtitle "MCA component rtc:$component (need to configure)" opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/orte/mca/ras/$component" + component_path="$srcdir/orte/mca/rtc/$component" want_component=0 # build if: @@ -238531,8 +258435,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_ras" ; then - if test "$DIRECT_ras" = "$component" ; then + if test ! -z "$DIRECT_rtc" ; then + if test "$DIRECT_rtc" = "$component" ; then want_component=1 else want_component=0 @@ -238541,10 +258445,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_ras" = "1"; then : + if test "$DISABLE_rtc" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_ras_$component" + str="DISABLED_COMPONENT_CHECK=\$DISABLE_rtc_$component" eval $str if test "$DISABLED_COMPONENT_CHECK" = "1" ; then want_component=0 @@ -238557,12 +258461,12 @@ fi - SHARED_FRAMEWORK="$DSO_ras" - str="SHARED_COMPONENT=\$DSO_ras_$component" + SHARED_FRAMEWORK="$DSO_rtc" + str="SHARED_COMPONENT=\$DSO_rtc_$component" eval $str - STATIC_FRAMEWORK="$STATIC_ras" - str="STATIC_COMPONENT=\$STATIC_ras_$component" + STATIC_FRAMEWORK="$STATIC_rtc" + str="STATIC_COMPONENT=\$STATIC_rtc_$component" eval $str shared_mode_override=static @@ -238581,9 +258485,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ras:$component compile mode" >&5 -$as_echo_n "checking for MCA component ras:$component compile mode... " >&6; } - if test "$DIRECT_ras" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rtc:$component compile mode" >&5 +$as_echo_n "checking for MCA component rtc:$component compile mode... " >&6; } + if test "$DIRECT_rtc" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -238636,12 +258540,12 @@ # # Invoke configure in a specific subdirectory. # -# orte/mca/ras/$component is the directory to invoke in +# orte/mca/rtc/$component is the directory to invoke in # $opal_subdir_args is the list of arguments to pass # should_build=1 is actions to execute upon success # should_build=0 is actions to execute upon failure # -subdir_dir="orte/mca/ras/$component" +subdir_dir="orte/mca/rtc/$component" subdir_args="$opal_subdir_args" subdir_success="should_build=1" subdir_failure="should_build=0" @@ -238785,7 +258689,7 @@ # do some extra work to pass flags back from the # top-level configure, the way a configure.m4 # component would. - infile="$srcdir/orte/mca/ras/all_components/post_configure.sh" + infile="$srcdir/orte/mca/rtc/all_components/post_configure.sh" if test -f $infile; then # First check for the ABORT tag @@ -238799,12 +258703,12 @@ line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - ras_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + rtc_all_components_WRAPPER_EXTRA_LDFLAGS="$line" fi line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - ras_all_components_WRAPPER_EXTRA_LIBS="$line" + rtc_all_components_WRAPPER_EXTRA_LIBS="$line" fi fi @@ -238813,7 +258717,7 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/ras/$component/post_configure.sh" + infile="$srcdir/orte/mca/rtc/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs all_components="$all_components $component" @@ -238821,37 +258725,37 @@ if test "$compile_mode" = "dso" ; then dso_components="$dso_components $component" else - if test "ras" = "common"; then + if test "rtc" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/ras/$component/lib${ORTE_LIB_PREFIX}mca_ras_$component.la $static_ltlibs" + static_ltlibs="mca/rtc/$component/lib${ORTE_LIB_PREFIX}mca_rtc_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ras/$component/libmca_ras_$component.la $static_ltlibs" + static_ltlibs="mca/rtc/$component/libmca_rtc_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_ras_$component_component;" >> $outfile.extern - echo " &mca_ras_$component_component, " >> $outfile.struct + echo "extern const mca_base_component_t mca_rtc_$component_component;" >> $outfile.extern + echo " &mca_rtc_$component_component, " >> $outfile.struct static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:$component can compile" >&5 -$as_echo_n "checking if MCA component ras:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rtc:$component can compile" >&5 +$as_echo_n "checking if MCA component rtc:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_ras" = "$component" ; then + if test "$DIRECT_rtc" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_ras_DIRECT_CALL_HEADER=$line" + str="MCA_orte_rtc_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** ras component $component was supposed to be direct-called, but +as_fn_error $? "*** rtc component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -238859,8 +258763,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ras" = "$component" ; then -as_fn_error $? "*** ras component $component was supposed to be direct-called, but + if test "$DIRECT_rtc" = "$component" ; then +as_fn_error $? "*** rtc component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -238875,7 +258779,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$ras_$component_WRAPPER_EXTRA_LDFLAGS" + str="line=\$rtc_$component_WRAPPER_EXTRA_LDFLAGS" eval "$str" @@ -238956,7 +258860,7 @@ unset $opal_var done -str="line=\$ras_$component_WRAPPER_EXTRA_LIBS" +str="line=\$rtc_$component_WRAPPER_EXTRA_LIBS" eval "$str" @@ -239047,14 +258951,14 @@ else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ras:$component can compile" >&5 -$as_echo_n "checking if MCA component ras:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rtc:$component can compile" >&5 +$as_echo_n "checking if MCA component rtc:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_ras" = "$component" ; then + if test "$with_rtc" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 @@ -239062,8 +258966,8 @@ as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_ras" ; then - if test "$DIRECT_ras" = "$component" ; then + if test ! -z "$DIRECT_rtc" ; then + if test "$DIRECT_rtc" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 @@ -239078,10 +258982,10 @@ fi - MCA_orte_ras_ALL_COMPONENTS="$all_components" - MCA_orte_ras_STATIC_COMPONENTS="$static_components" - MCA_orte_ras_DSO_COMPONENTS="$dso_components" - MCA_orte_ras_STATIC_LTLIBS="$static_ltlibs" + MCA_orte_rtc_ALL_COMPONENTS="$all_components" + MCA_orte_rtc_STATIC_COMPONENTS="$static_components" + MCA_orte_rtc_DSO_COMPONENTS="$dso_components" + MCA_orte_rtc_STATIC_LTLIBS="$static_ltlibs" @@ -239089,23 +258993,23 @@ - MCA_orte_ras_ALL_SUBDIRS= + MCA_orte_rtc_ALL_SUBDIRS= for item in $all_components ; do - MCA_orte_ras_ALL_SUBDIRS="$MCA_orte_ras_ALL_SUBDIRS mca/ras/$item" + MCA_orte_rtc_ALL_SUBDIRS="$MCA_orte_rtc_ALL_SUBDIRS mca/rtc/$item" done - MCA_orte_ras_STATIC_SUBDIRS= + MCA_orte_rtc_STATIC_SUBDIRS= for item in $static_components ; do - MCA_orte_ras_STATIC_SUBDIRS="$MCA_orte_ras_STATIC_SUBDIRS mca/ras/$item" + MCA_orte_rtc_STATIC_SUBDIRS="$MCA_orte_rtc_STATIC_SUBDIRS mca/rtc/$item" done - MCA_orte_ras_DSO_SUBDIRS= + MCA_orte_rtc_DSO_SUBDIRS= for item in $dso_components ; do - MCA_orte_ras_DSO_SUBDIRS="$MCA_orte_ras_DSO_SUBDIRS mca/ras/$item" + MCA_orte_rtc_DSO_SUBDIRS="$MCA_orte_rtc_DSO_SUBDIRS mca/rtc/$item" done @@ -239113,7 +259017,7 @@ # Create the final .h file that will be included in the type's # top-level glue. This lists all the static components. We don't # need to do this for "common". - if test "ras" != "common"; then + if test "rtc" != "common"; then cat > $outfile <&5 +$as_echo_n "checking for no configure components in framework schizo... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: flux, ompi, orte" >&5 +$as_echo "flux, ompi, orte" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework schizo" >&5 +$as_echo_n "checking for m4 configure components in framework schizo... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: alps, jsm, moab, singularity, slurm" >&5 +$as_echo "alps, jsm, moab, singularity, slurm" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + opal_show_subsubsubtitle "MCA component schizo:flux (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/orte/mca/schizo/flux" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "flux" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_schizo" = "1"; then : + want_component=0 +fi + if test "$DISABLE_schizo_flux" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_schizo" + SHARED_COMPONENT="$DSO_schizo_flux" + + STATIC_FRAMEWORK="$STATIC_schizo" + STATIC_COMPONENT="$STATIC_schizo_flux" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component schizo:flux compile mode" >&5 +$as_echo_n "checking for MCA component schizo:flux compile mode... " >&6; } + if test "$DIRECT_schizo" = "flux" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/schizo/flux/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components flux" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components flux" + else + if test "schizo" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/schizo/flux/lib${ORTE_LIB_PREFIX}mca_schizo_flux.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/schizo/flux/libmca_schizo_flux.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_schizo_flux_component;" >> $outfile.extern + echo " &mca_schizo_flux_component, " >> $outfile.struct + static_components="$static_components flux" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:flux can compile" >&5 +$as_echo_n "checking if MCA component schizo:flux can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_schizo" = "flux" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_schizo_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** schizo component flux was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_schizo" = "flux" ; then +as_fn_error $? "*** schizo component flux was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$schizo_flux_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $schizo_flux_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $schizo_flux_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$schizo_flux_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $schizo_flux_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $schizo_flux_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$schizo_flux_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $schizo_flux_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring schizo_flux_WRAPPER_EXTRA_CPPFLAGS ($schizo_flux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring schizo_flux_WRAPPER_EXTRA_CPPFLAGS ($schizo_flux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:flux can compile" >&5 +$as_echo_n "checking if MCA component schizo:flux can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_schizo" = "flux" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"flux\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"flux\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "flux" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"flux\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"flux\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern + # add component to all component list + all_components="$all_components flux" + fi - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework regx" >&5 -$as_echo_n "checking for no configure components in framework regx... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: fwd, naive, reverse" >&5 -$as_echo "fwd, naive, reverse" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework regx" >&5 -$as_echo_n "checking for m4 configure components in framework regx... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_schizo_flux_DSO=1 + else + BUILD_orte_schizo_flux_DSO=0 + fi + if test "$BUILD_orte_schizo_flux_DSO" = "1"; then + MCA_BUILD_orte_schizo_flux_DSO_TRUE= + MCA_BUILD_orte_schizo_flux_DSO_FALSE='#' +else + MCA_BUILD_orte_schizo_flux_DSO_TRUE='#' + MCA_BUILD_orte_schizo_flux_DSO_FALSE= +fi - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + ac_config_files="$ac_config_files orte/mca/schizo/flux/Makefile" - # run the configure logic for the no-config components + unset compile_mode - opal_show_subsubsubtitle "MCA component regx:fwd (no configuration)" + opal_show_subsubsubtitle "MCA component schizo:ompi (no configuration)" opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/regx/fwd" + component_path="$srcdir/orte/mca/schizo/ompi" want_component=0 # build if: @@ -239242,8 +259784,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_regx" ; then - if test "$DIRECT_regx" = "fwd" ; then + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "ompi" ; then want_component=1 else want_component=0 @@ -239252,10 +259794,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_regx" = "1"; then : + if test "$DISABLE_schizo" = "1"; then : want_component=0 fi - if test "$DISABLE_regx_fwd" = "1"; then : + if test "$DISABLE_schizo_ompi" = "1"; then : want_component=0 fi @@ -239266,11 +259808,11 @@ fi - SHARED_FRAMEWORK="$DSO_regx" - SHARED_COMPONENT="$DSO_regx_fwd" + SHARED_FRAMEWORK="$DSO_schizo" + SHARED_COMPONENT="$DSO_schizo_ompi" - STATIC_FRAMEWORK="$STATIC_regx" - STATIC_COMPONENT="$STATIC_regx_fwd" + STATIC_FRAMEWORK="$STATIC_schizo" + STATIC_COMPONENT="$STATIC_schizo_ompi" shared_mode_override=static @@ -239288,9 +259830,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component regx:fwd compile mode" >&5 -$as_echo_n "checking for MCA component regx:fwd compile mode... " >&6; } - if test "$DIRECT_regx" = "fwd" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component schizo:ompi compile mode" >&5 +$as_echo_n "checking for MCA component schizo:ompi compile mode... " >&6; } + if test "$DIRECT_schizo" = "ompi" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -239306,45 +259848,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/regx/fwd/post_configure.sh" + infile="$srcdir/orte/mca/schizo/ompi/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components fwd" + all_components="$all_components ompi" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components fwd" + dso_components="$dso_components ompi" else - if test "regx" = "common"; then + if test "schizo" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/regx/fwd/lib${ORTE_LIB_PREFIX}mca_regx_fwd.la $static_ltlibs" + static_ltlibs="mca/schizo/ompi/lib${ORTE_LIB_PREFIX}mca_schizo_ompi.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/regx/fwd/libmca_regx_fwd.la $static_ltlibs" + static_ltlibs="mca/schizo/ompi/libmca_schizo_ompi.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_regx_fwd_component;" >> $outfile.extern - echo " &mca_regx_fwd_component, " >> $outfile.struct - static_components="$static_components fwd" + echo "extern const mca_base_component_t mca_schizo_ompi_component;" >> $outfile.extern + echo " &mca_schizo_ompi_component, " >> $outfile.struct + static_components="$static_components ompi" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component regx:fwd can compile" >&5 -$as_echo_n "checking if MCA component regx:fwd can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:ompi can compile" >&5 +$as_echo_n "checking if MCA component schizo:ompi can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_regx" = "fwd" ; then + if test "$DIRECT_schizo" = "ompi" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_regx_DIRECT_CALL_HEADER=$line" + str="MCA_orte_schizo_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** regx component fwd was supposed to be direct-called, but +as_fn_error $? "*** schizo component ompi was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -239352,8 +259894,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_regx" = "fwd" ; then -as_fn_error $? "*** regx component fwd was supposed to be direct-called, but + if test "$DIRECT_schizo" = "ompi" ; then +as_fn_error $? "*** schizo component ompi was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -239368,7 +259910,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$regx_fwd_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$schizo_ompi_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -239408,7 +259950,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $regx_fwd_LDFLAGS; do + for arg in $schizo_ompi_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -239489,7 +260031,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $regx_fwd_WRAPPER_EXTRA_LDFLAGS; do + for arg in $schizo_ompi_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -239531,7 +260073,7 @@ fi - if test "$regx_fwd_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$schizo_ompi_WRAPPER_EXTRA_LIBS" = ""; then : @@ -239571,7 +260113,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $regx_fwd_LIBS; do + for arg in $schizo_ompi_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -239652,7 +260194,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $regx_fwd_WRAPPER_EXTRA_LIBS; do + for arg in $schizo_ompi_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -239700,7 +260242,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$regx_fwd_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$schizo_ompi_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -239743,7 +260285,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $regx_fwd_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $schizo_ompi_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -239786,32 +260328,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring regx_fwd_WRAPPER_EXTRA_CPPFLAGS ($regx_fwd_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring regx_fwd_WRAPPER_EXTRA_CPPFLAGS ($regx_fwd_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring schizo_ompi_WRAPPER_EXTRA_CPPFLAGS ($schizo_ompi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring schizo_ompi_WRAPPER_EXTRA_CPPFLAGS ($schizo_ompi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component regx:fwd can compile" >&5 -$as_echo_n "checking if MCA component regx:fwd can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:ompi can compile" >&5 +$as_echo_n "checking if MCA component schizo:ompi can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_regx" = "fwd" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"fwd\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"fwd\" failed to configure properly" >&2;} + if test "$with_schizo" = "ompi" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ompi\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ompi\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_regx" ; then - if test "$DIRECT_regx" = "fwd" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"fwd\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"fwd\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "ompi" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ompi\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ompi\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -239819,36 +260361,36 @@ fi # add component to all component list - all_components="$all_components fwd" + all_components="$all_components ompi" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso" ; then - BUILD_orte_regx_fwd_DSO=1 + BUILD_orte_schizo_ompi_DSO=1 else - BUILD_orte_regx_fwd_DSO=0 + BUILD_orte_schizo_ompi_DSO=0 fi - if test "$BUILD_orte_regx_fwd_DSO" = "1"; then - MCA_BUILD_orte_regx_fwd_DSO_TRUE= - MCA_BUILD_orte_regx_fwd_DSO_FALSE='#' + if test "$BUILD_orte_schizo_ompi_DSO" = "1"; then + MCA_BUILD_orte_schizo_ompi_DSO_TRUE= + MCA_BUILD_orte_schizo_ompi_DSO_FALSE='#' else - MCA_BUILD_orte_regx_fwd_DSO_TRUE='#' - MCA_BUILD_orte_regx_fwd_DSO_FALSE= + MCA_BUILD_orte_schizo_ompi_DSO_TRUE='#' + MCA_BUILD_orte_schizo_ompi_DSO_FALSE= fi - ac_config_files="$ac_config_files orte/mca/regx/fwd/Makefile" + ac_config_files="$ac_config_files orte/mca/schizo/ompi/Makefile" unset compile_mode - opal_show_subsubsubtitle "MCA component regx:naive (no configuration)" + opal_show_subsubsubtitle "MCA component schizo:orte (no configuration)" opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/regx/naive" + component_path="$srcdir/orte/mca/schizo/orte" want_component=0 # build if: @@ -239880,8 +260422,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_regx" ; then - if test "$DIRECT_regx" = "naive" ; then + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "orte" ; then want_component=1 else want_component=0 @@ -239890,10 +260432,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_regx" = "1"; then : + if test "$DISABLE_schizo" = "1"; then : want_component=0 fi - if test "$DISABLE_regx_naive" = "1"; then : + if test "$DISABLE_schizo_orte" = "1"; then : want_component=0 fi @@ -239904,11 +260446,11 @@ fi - SHARED_FRAMEWORK="$DSO_regx" - SHARED_COMPONENT="$DSO_regx_naive" + SHARED_FRAMEWORK="$DSO_schizo" + SHARED_COMPONENT="$DSO_schizo_orte" - STATIC_FRAMEWORK="$STATIC_regx" - STATIC_COMPONENT="$STATIC_regx_naive" + STATIC_FRAMEWORK="$STATIC_schizo" + STATIC_COMPONENT="$STATIC_schizo_orte" shared_mode_override=static @@ -239926,9 +260468,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component regx:naive compile mode" >&5 -$as_echo_n "checking for MCA component regx:naive compile mode... " >&6; } - if test "$DIRECT_regx" = "naive" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component schizo:orte compile mode" >&5 +$as_echo_n "checking for MCA component schizo:orte compile mode... " >&6; } + if test "$DIRECT_schizo" = "orte" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -239944,45 +260486,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/regx/naive/post_configure.sh" + infile="$srcdir/orte/mca/schizo/orte/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components naive" + all_components="$all_components orte" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components naive" + dso_components="$dso_components orte" else - if test "regx" = "common"; then + if test "schizo" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/regx/naive/lib${ORTE_LIB_PREFIX}mca_regx_naive.la $static_ltlibs" + static_ltlibs="mca/schizo/orte/lib${ORTE_LIB_PREFIX}mca_schizo_orte.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/regx/naive/libmca_regx_naive.la $static_ltlibs" + static_ltlibs="mca/schizo/orte/libmca_schizo_orte.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_regx_naive_component;" >> $outfile.extern - echo " &mca_regx_naive_component, " >> $outfile.struct - static_components="$static_components naive" + echo "extern const mca_base_component_t mca_schizo_orte_component;" >> $outfile.extern + echo " &mca_schizo_orte_component, " >> $outfile.struct + static_components="$static_components orte" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component regx:naive can compile" >&5 -$as_echo_n "checking if MCA component regx:naive can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:orte can compile" >&5 +$as_echo_n "checking if MCA component schizo:orte can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_regx" = "naive" ; then + if test "$DIRECT_schizo" = "orte" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_regx_DIRECT_CALL_HEADER=$line" + str="MCA_orte_schizo_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** regx component naive was supposed to be direct-called, but +as_fn_error $? "*** schizo component orte was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -239990,8 +260532,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_regx" = "naive" ; then -as_fn_error $? "*** regx component naive was supposed to be direct-called, but + if test "$DIRECT_schizo" = "orte" ; then +as_fn_error $? "*** schizo component orte was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -240006,7 +260548,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$regx_naive_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$schizo_orte_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -240046,7 +260588,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $regx_naive_LDFLAGS; do + for arg in $schizo_orte_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -240127,7 +260669,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $regx_naive_WRAPPER_EXTRA_LDFLAGS; do + for arg in $schizo_orte_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -240169,7 +260711,7 @@ fi - if test "$regx_naive_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$schizo_orte_WRAPPER_EXTRA_LIBS" = ""; then : @@ -240209,7 +260751,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $regx_naive_LIBS; do + for arg in $schizo_orte_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -240290,7 +260832,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $regx_naive_WRAPPER_EXTRA_LIBS; do + for arg in $schizo_orte_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -240338,7 +260880,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$regx_naive_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$schizo_orte_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -240381,7 +260923,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $regx_naive_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $schizo_orte_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -240422,205 +260964,914 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring regx_naive_WRAPPER_EXTRA_CPPFLAGS ($regx_naive_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring regx_naive_WRAPPER_EXTRA_CPPFLAGS ($regx_naive_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component regx:naive can compile" >&5 -$as_echo_n "checking if MCA component regx:naive can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_regx" = "naive" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"naive\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"naive\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_regx" ; then - if test "$DIRECT_regx" = "naive" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"naive\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"naive\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components naive" +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring schizo_orte_WRAPPER_EXTRA_CPPFLAGS ($schizo_orte_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring schizo_orte_WRAPPER_EXTRA_CPPFLAGS ($schizo_orte_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:orte can compile" >&5 +$as_echo_n "checking if MCA component schizo:orte can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_schizo" = "orte" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"orte\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"orte\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "orte" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"orte\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"orte\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components orte" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_schizo_orte_DSO=1 + else + BUILD_orte_schizo_orte_DSO=0 + fi + if test "$BUILD_orte_schizo_orte_DSO" = "1"; then + MCA_BUILD_orte_schizo_orte_DSO_TRUE= + MCA_BUILD_orte_schizo_orte_DSO_FALSE='#' +else + MCA_BUILD_orte_schizo_orte_DSO_TRUE='#' + MCA_BUILD_orte_schizo_orte_DSO_FALSE= +fi + + + ac_config_files="$ac_config_files orte/mca/schizo/orte/Makefile" + + + unset compile_mode + + + # configure components that use built-in configuration scripts + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + opal_show_subsubsubtitle "MCA component schizo:alps (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/orte/mca/schizo/alps" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "alps" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_schizo" = "1"; then : + want_component=0 +fi + if test "$DISABLE_schizo_alps" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + SHARED_FRAMEWORK="$DSO_schizo" + SHARED_COMPONENT="$DSO_schizo_alps" + + STATIC_FRAMEWORK="$STATIC_schizo" + STATIC_COMPONENT="$STATIC_schizo_alps" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component schizo:alps compile mode" >&5 +$as_echo_n "checking for MCA component schizo:alps compile mode... " >&6; } + if test "$DIRECT_schizo" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + + # try to configure the component + + ac_config_files="$ac_config_files orte/mca/schizo/alps/Makefile" + + + + if test -z "$opal_check_cray_alps_happy"; then + + +# Check whether --with-alps was given. +if test "${with_alps+set}" = set; then : + withval=$with_alps; +else + with_alps=auto +fi + + + if test -f /etc/opt/cray/release/clerelease; then + cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` + else + cle_level="unknown" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 +$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } + if test "$cle_level" = "4" && test "$with_alps" != "no"; then : + + +# +# if we've gotten here, its because we are building on a CLE 4 system +# + opal_check_alps_cle4_libdir_happy="no" + opal_check_alps_cle4_dir_happy="no" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 +$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } + + +# Check whether --with-alps-libdir was given. +if test "${with_alps_libdir+set}" = set; then : + withval=$with_alps_libdir; +fi + + +# +# check to see if Open MPI is being built on a CLE 4 eslogin node +# + if test -f /etc/opt/cray/release/ESLrelease; then : + default_alps_dir="/opt/cray/xe-sysroot/default/usr" +else + default_alps_dir="/usr" +fi + + if test -z "$with_alps_libdir"; then : + if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : + if test -d "$with_alps_libdir/lib64"; then : + opal_check_alps_libdir="$with_alps_libdir/lib64" +else + opal_check_alps_libdir="$with_alps_libdir/lib" +fi +else + opal_check_alps_libdir="$default_alps_dir/lib/alps" +fi + +fi + + if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : + opal_check_alps_dir=$default_alps_dir +else + opal_check_alps_dir=$with_alps +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 +$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } + if test -f "$opal_check_alps_libdir/libalps.a"; then : + opal_check_alps_libdir_cle4_happy="yes" +else + opal_check_alps_libdir_cle4_happy="no", + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 +$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } + if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : + opal_check_alps_dir_cle4_happy="yes" +else + opal_check_alps_dir_cle4_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : + CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" + CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + opal_check_cray_alps_happy="yes" +else + opal_check_cray_alps_happy="no" +fi + +else + if test "$with_alps" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy=no + schizo_alps_happy="no" +else + if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 +$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } + +if test -n "$CRAY_ALPSLLI_CFLAGS"; then + pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSLLI_LIBS"; then + pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` + else + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS + CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS + CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 +$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } + +if test -n "$CRAY_ALPSUTIL_CFLAGS"; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSUTIL_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` + else + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS + CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS + CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 +$as_echo_n "checking for CRAY_ALPS... " >&6; } + +if test -n "$CRAY_ALPS_CFLAGS"; then + pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_LIBS"; then + pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_STATIC_LIBS"; then + pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` + else + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPS_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS + CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS + CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 +$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } + +if test -n "$CRAY_WLM_DETECT_CFLAGS"; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_WLM_DETECT_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + else + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS + CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS + CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" + +cat >>confdefs.h <<_ACEOF +#define CRAY_WLM_DETECT 1 +_ACEOF + + +fi + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 +$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 +$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +fi + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 +$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } + + if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : + CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS + CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS +fi + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ompi_summary_section=$(echo Resource Managers | tr ' ' '_') + ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + fi - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_regx_naive_DSO=1 - else - BUILD_orte_regx_naive_DSO=0 - fi - if test "$BUILD_orte_regx_naive_DSO" = "1"; then - MCA_BUILD_orte_regx_naive_DSO_TRUE= - MCA_BUILD_orte_regx_naive_DSO_FALSE='#' + if test "$opal_check_cray_alps_happy" = "yes"; then : + schizo_alps_LDFLAGS="$schizo_alps_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" + schizo_alps_CPPFLAGS="$schizo_alps_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" + schizo_alps_LIBS="$schizo_alps_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + schizo_alps_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + schizo_alps_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + schizo_alps_happy="yes" else - MCA_BUILD_orte_regx_naive_DSO_TRUE='#' - MCA_BUILD_orte_regx_naive_DSO_FALSE= + schizo_alps_happy="no" fi - ac_config_files="$ac_config_files orte/mca/regx/naive/Makefile" - + # check for alps/apInfo.h + # save current CPPFLAGS + MCA_orte_schizo_save_CPPFLAGS="$CPPFLAGS" - unset compile_mode + # add flags obtained from OPAL_CHECK_ALPS + CPPFLAGS="$CPPFLAGS $schizo_alps_CPPFLAGS" - opal_show_subsubsubtitle "MCA component regx:reverse (no configuration)" + for ac_header in alps/apInfo.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "alps/apInfo.h" "ac_cv_header_alps_apInfo_h" "$ac_includes_default" +if test "x$ac_cv_header_alps_apInfo_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ALPS_APINFO_H 1 +_ACEOF - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" +else + schizo_alps_happy="no" +fi +done - component_path="$srcdir/orte/mca/regx/reverse" - want_component=0 + # restore CPPFLAGS + CPPFLAGS="$MCA_orte_schizo_save_CPPFLAGS" - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_regx" ; then - if test "$DIRECT_regx" = "reverse" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_regx" = "1"; then : - want_component=0 -fi - if test "$DISABLE_regx_reverse" = "1"; then : - want_component=0 -fi - if test "$want_component" = "1"; then : - should_build=1 + if test "$schizo_alps_happy" = "yes"; then : + should_build=$should_build else should_build=0 fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - SHARED_FRAMEWORK="$DSO_regx" - SHARED_COMPONENT="$DSO_regx_reverse" - - STATIC_FRAMEWORK="$STATIC_regx" - STATIC_COMPONENT="$STATIC_regx_reverse" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component regx:reverse compile mode" >&5 -$as_echo_n "checking for MCA component regx:reverse compile mode... " >&6; } - if test "$DIRECT_regx" = "reverse" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/regx/reverse/post_configure.sh" + infile="$srcdir/orte/mca/schizo/alps/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components reverse" + all_components="$all_components alps" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components reverse" + dso_components="$dso_components alps" else - if test "regx" = "common"; then + if test "schizo" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/regx/reverse/lib${ORTE_LIB_PREFIX}mca_regx_reverse.la $static_ltlibs" + static_ltlibs="mca/schizo/alps/lib${ORTE_LIB_PREFIX}mca_schizo_alps.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/regx/reverse/libmca_regx_reverse.la $static_ltlibs" + static_ltlibs="mca/schizo/alps/libmca_schizo_alps.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_regx_reverse_component;" >> $outfile.extern - echo " &mca_regx_reverse_component, " >> $outfile.struct - static_components="$static_components reverse" + echo "extern const mca_base_component_t mca_schizo_alps_component;" >> $outfile.extern + echo " &mca_schizo_alps_component, " >> $outfile.struct + static_components="$static_components alps" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component regx:reverse can compile" >&5 -$as_echo_n "checking if MCA component regx:reverse can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:alps can compile" >&5 +$as_echo_n "checking if MCA component schizo:alps can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_regx" = "reverse" ; then + if test "$DIRECT_schizo" = "alps" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_regx_DIRECT_CALL_HEADER=$line" + str="MCA_orte_schizo_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** regx component reverse was supposed to be direct-called, but +as_fn_error $? "*** schizo component alps was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -240628,8 +261879,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_regx" = "reverse" ; then -as_fn_error $? "*** regx component reverse was supposed to be direct-called, but + if test "$DIRECT_schizo" = "alps" ; then +as_fn_error $? "*** schizo component alps was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -240644,7 +261895,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$regx_reverse_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$schizo_alps_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -240684,7 +261935,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $regx_reverse_LDFLAGS; do + for arg in $schizo_alps_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -240765,7 +262016,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $regx_reverse_WRAPPER_EXTRA_LDFLAGS; do + for arg in $schizo_alps_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -240807,7 +262058,7 @@ fi - if test "$regx_reverse_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$schizo_alps_WRAPPER_EXTRA_LIBS" = ""; then : @@ -240847,7 +262098,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $regx_reverse_LIBS; do + for arg in $schizo_alps_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -240928,7 +262179,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $regx_reverse_WRAPPER_EXTRA_LIBS; do + for arg in $schizo_alps_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -240976,7 +262227,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$regx_reverse_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$schizo_alps_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -241019,7 +262270,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $regx_reverse_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $schizo_alps_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -241062,801 +262313,78 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring regx_reverse_WRAPPER_EXTRA_CPPFLAGS ($regx_reverse_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring regx_reverse_WRAPPER_EXTRA_CPPFLAGS ($regx_reverse_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring schizo_alps_WRAPPER_EXTRA_CPPFLAGS ($schizo_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring schizo_alps_WRAPPER_EXTRA_CPPFLAGS ($schizo_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component regx:reverse can compile" >&5 -$as_echo_n "checking if MCA component regx:reverse can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:alps can compile" >&5 +$as_echo_n "checking if MCA component schizo:alps can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_regx" = "reverse" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"reverse\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"reverse\" failed to configure properly" >&2;} + if test "$with_schizo" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_regx" ; then - if test "$DIRECT_regx" = "reverse" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"reverse\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"reverse\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components reverse" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_regx_reverse_DSO=1 - else - BUILD_orte_regx_reverse_DSO=0 - fi - if test "$BUILD_orte_regx_reverse_DSO" = "1"; then - MCA_BUILD_orte_regx_reverse_DSO_TRUE= - MCA_BUILD_orte_regx_reverse_DSO_FALSE='#' -else - MCA_BUILD_orte_regx_reverse_DSO_TRUE='#' - MCA_BUILD_orte_regx_reverse_DSO_FALSE= + # add component to all component list + all_components="$all_components alps" fi - ac_config_files="$ac_config_files orte/mca/regx/reverse/Makefile" - - - unset compile_mode - - - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - - if test "1" != "0"; then : - - for component_path in $srcdir/orte/mca/regx/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component regx:$component (need to configure)" - - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - - - - component_path="$srcdir/orte/mca/regx/$component" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_regx" ; then - if test "$DIRECT_regx" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_regx" = "1"; then : - want_component=0 -fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_regx_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi - if test "$want_component" = "1"; then : - should_build=1 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_orte_schizo_alps_DSO=1 else - should_build=0 -fi - - - SHARED_FRAMEWORK="$DSO_regx" - str="SHARED_COMPONENT=\$DSO_regx_$component" - eval $str - - STATIC_FRAMEWORK="$STATIC_regx" - str="STATIC_COMPONENT=\$STATIC_regx_$component" - eval $str - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component regx:$component compile mode" >&5 -$as_echo_n "checking for MCA component regx:$component compile mode... " >&6; } - if test "$DIRECT_regx" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - -# -# Invoke configure in a specific subdirectory. -# -# orte/mca/regx/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="orte/mca/regx/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - - # - # Construct the --cache-file argument - # - - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - - # - # Invoke the configure script in the subdirectory - # - - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi - - # - # Go back to the topdir - # - - cd $subdir_parent -fi - -# -# Clean up -# - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/orte/mca/regx/all_components/post_configure.sh" - if test -f $infile; then - - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - regx_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - regx_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi - - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/regx/$component/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "regx" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/regx/$component/lib${ORTE_LIB_PREFIX}mca_regx_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/regx/$component/libmca_regx_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_regx_$component_component;" >> $outfile.extern - echo " &mca_regx_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component regx:$component can compile" >&5 -$as_echo_n "checking if MCA component regx:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_regx" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_regx_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** regx component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_regx" = "$component" ; then -as_fn_error $? "*** regx component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$regx_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + BUILD_orte_schizo_alps_DSO=0 fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test "$BUILD_orte_schizo_alps_DSO" = "1"; then + MCA_BUILD_orte_schizo_alps_DSO_TRUE= + MCA_BUILD_orte_schizo_alps_DSO_FALSE='#' else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi + MCA_BUILD_orte_schizo_alps_DSO_TRUE='#' + MCA_BUILD_orte_schizo_alps_DSO_FALSE= fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - -str="line=\$regx_$component_WRAPPER_EXTRA_LIBS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test "$should_build" = "1"; then : + components_last_result=1 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component regx:$component can compile" >&5 -$as_echo_n "checking if MCA component regx:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_regx" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_regx" ; then - if test "$DIRECT_regx" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - fi - fi - done - + components_last_result=0 fi - MCA_orte_regx_ALL_COMPONENTS="$all_components" - MCA_orte_regx_STATIC_COMPONENTS="$static_components" - MCA_orte_regx_DSO_COMPONENTS="$dso_components" - MCA_orte_regx_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_orte_regx_ALL_SUBDIRS= - for item in $all_components ; do - MCA_orte_regx_ALL_SUBDIRS="$MCA_orte_regx_ALL_SUBDIRS mca/regx/$item" - done - - - - MCA_orte_regx_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_orte_regx_STATIC_SUBDIRS="$MCA_orte_regx_STATIC_SUBDIRS mca/regx/$item" - done - - - - MCA_orte_regx_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_orte_regx_DSO_SUBDIRS="$MCA_orte_regx_DSO_SUBDIRS mca/regx/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "regx" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS rmaps" - MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/rmaps" - MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_rmaps_ALL_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_rmaps_DSO_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_rmaps_STATIC_SUBDIRS)" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/rmaps/libmca_rmaps.la" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_rmaps_STATIC_LTLIBS)" - - opal_show_subsubtitle "Configuring MCA framework rmaps" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=orte/mca/rmaps/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files orte/mca/rmaps/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework rmaps" >&5 -$as_echo_n "checking for no configure components in framework rmaps... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: mindist, ppr, rank_file, resilient, round_robin, seq" >&5 -$as_echo "mindist, ppr, rank_file, resilient, round_robin, seq" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework rmaps" >&5 -$as_echo_n "checking for m4 configure components in framework rmaps... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } + unset compile_mode - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - # run the configure logic for the no-config components - opal_show_subsubsubtitle "MCA component rmaps:mindist (no configuration)" + opal_show_subsubsubtitle "MCA component schizo:jsm (m4 configuration macro)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/orte/mca/rmaps/mindist" + component_path="$srcdir/orte/mca/schizo/jsm" want_component=0 # build if: @@ -241888,8 +262416,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rmaps" ; then - if test "$DIRECT_rmaps" = "mindist" ; then + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "jsm" ; then want_component=1 else want_component=0 @@ -241898,25 +262426,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_rmaps" = "1"; then : + if test "$DISABLE_schizo" = "1"; then : want_component=0 fi - if test "$DISABLE_rmaps_mindist" = "1"; then : + if test "$DISABLE_schizo_jsm" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_rmaps" - SHARED_COMPONENT="$DSO_rmaps_mindist" + SHARED_FRAMEWORK="$DSO_schizo" + SHARED_COMPONENT="$DSO_schizo_jsm" - STATIC_FRAMEWORK="$STATIC_rmaps" - STATIC_COMPONENT="$STATIC_rmaps_mindist" + STATIC_FRAMEWORK="$STATIC_schizo" + STATIC_COMPONENT="$STATIC_schizo_jsm" shared_mode_override=static @@ -241934,9 +262464,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rmaps:mindist compile mode" >&5 -$as_echo_n "checking for MCA component rmaps:mindist compile mode... " >&6; } - if test "$DIRECT_rmaps" = "mindist" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component schizo:jsm compile mode" >&5 +$as_echo_n "checking for MCA component schizo:jsm compile mode... " >&6; } + if test "$DIRECT_schizo" = "jsm" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -241944,53 +262474,61 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files orte/mca/schizo/jsm/Makefile" + + + # Nothing to do for now. + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/rmaps/mindist/post_configure.sh" + infile="$srcdir/orte/mca/schizo/jsm/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components mindist" + all_components="$all_components jsm" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components mindist" + dso_components="$dso_components jsm" else - if test "rmaps" = "common"; then + if test "schizo" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/rmaps/mindist/lib${ORTE_LIB_PREFIX}mca_rmaps_mindist.la $static_ltlibs" + static_ltlibs="mca/schizo/jsm/lib${ORTE_LIB_PREFIX}mca_schizo_jsm.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rmaps/mindist/libmca_rmaps_mindist.la $static_ltlibs" + static_ltlibs="mca/schizo/jsm/libmca_schizo_jsm.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_rmaps_mindist_component;" >> $outfile.extern - echo " &mca_rmaps_mindist_component, " >> $outfile.struct - static_components="$static_components mindist" + echo "extern const mca_base_component_t mca_schizo_jsm_component;" >> $outfile.extern + echo " &mca_schizo_jsm_component, " >> $outfile.struct + static_components="$static_components jsm" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:mindist can compile" >&5 -$as_echo_n "checking if MCA component rmaps:mindist can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:jsm can compile" >&5 +$as_echo_n "checking if MCA component schizo:jsm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_rmaps" = "mindist" ; then + if test "$DIRECT_schizo" = "jsm" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_rmaps_DIRECT_CALL_HEADER=$line" + str="MCA_orte_schizo_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** rmaps component mindist was supposed to be direct-called, but +as_fn_error $? "*** schizo component jsm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -241998,8 +262536,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rmaps" = "mindist" ; then -as_fn_error $? "*** rmaps component mindist was supposed to be direct-called, but + if test "$DIRECT_schizo" = "jsm" ; then +as_fn_error $? "*** schizo component jsm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -242014,7 +262552,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$rmaps_mindist_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$schizo_jsm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -242054,7 +262592,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_mindist_LDFLAGS; do + for arg in $schizo_jsm_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -242135,7 +262673,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_mindist_WRAPPER_EXTRA_LDFLAGS; do + for arg in $schizo_jsm_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -242177,7 +262715,7 @@ fi - if test "$rmaps_mindist_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$schizo_jsm_WRAPPER_EXTRA_LIBS" = ""; then : @@ -242217,7 +262755,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_mindist_LIBS; do + for arg in $schizo_jsm_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -242298,7 +262836,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_mindist_WRAPPER_EXTRA_LIBS; do + for arg in $schizo_jsm_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -242346,7 +262884,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$rmaps_mindist_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$schizo_jsm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -242389,7 +262927,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_mindist_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $schizo_jsm_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -242432,69 +262970,78 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rmaps_mindist_WRAPPER_EXTRA_CPPFLAGS ($rmaps_mindist_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring rmaps_mindist_WRAPPER_EXTRA_CPPFLAGS ($rmaps_mindist_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring schizo_jsm_WRAPPER_EXTRA_CPPFLAGS ($schizo_jsm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring schizo_jsm_WRAPPER_EXTRA_CPPFLAGS ($schizo_jsm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:mindist can compile" >&5 -$as_echo_n "checking if MCA component rmaps:mindist can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:jsm can compile" >&5 +$as_echo_n "checking if MCA component schizo:jsm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_rmaps" = "mindist" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"mindist\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"mindist\" failed to configure properly" >&2;} + if test "$with_schizo" = "jsm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"jsm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"jsm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_rmaps" ; then - if test "$DIRECT_rmaps" = "mindist" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"mindist\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"mindist\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "jsm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"jsm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"jsm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components mindist" - fi + # add component to all component list + all_components="$all_components jsm" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_rmaps_mindist_DSO=1 - else - BUILD_orte_rmaps_mindist_DSO=0 - fi - if test "$BUILD_orte_rmaps_mindist_DSO" = "1"; then - MCA_BUILD_orte_rmaps_mindist_DSO_TRUE= - MCA_BUILD_orte_rmaps_mindist_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_orte_schizo_jsm_DSO=1 else - MCA_BUILD_orte_rmaps_mindist_DSO_TRUE='#' - MCA_BUILD_orte_rmaps_mindist_DSO_FALSE= + BUILD_orte_schizo_jsm_DSO=0 +fi + if test "$BUILD_orte_schizo_jsm_DSO" = "1"; then + MCA_BUILD_orte_schizo_jsm_DSO_TRUE= + MCA_BUILD_orte_schizo_jsm_DSO_FALSE='#' +else + MCA_BUILD_orte_schizo_jsm_DSO_TRUE='#' + MCA_BUILD_orte_schizo_jsm_DSO_FALSE= fi - ac_config_files="$ac_config_files orte/mca/rmaps/mindist/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - opal_show_subsubsubtitle "MCA component rmaps:ppr (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/rmaps/ppr" + opal_show_subsubsubtitle "MCA component schizo:moab (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/orte/mca/schizo/moab" want_component=0 # build if: @@ -242526,8 +263073,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rmaps" ; then - if test "$DIRECT_rmaps" = "ppr" ; then + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "moab" ; then want_component=1 else want_component=0 @@ -242536,25 +263083,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_rmaps" = "1"; then : + if test "$DISABLE_schizo" = "1"; then : want_component=0 fi - if test "$DISABLE_rmaps_ppr" = "1"; then : + if test "$DISABLE_schizo_moab" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_rmaps" - SHARED_COMPONENT="$DSO_rmaps_ppr" + SHARED_FRAMEWORK="$DSO_schizo" + SHARED_COMPONENT="$DSO_schizo_moab" - STATIC_FRAMEWORK="$STATIC_rmaps" - STATIC_COMPONENT="$STATIC_rmaps_ppr" + STATIC_FRAMEWORK="$STATIC_schizo" + STATIC_COMPONENT="$STATIC_schizo_moab" shared_mode_override=static @@ -242572,9 +263121,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rmaps:ppr compile mode" >&5 -$as_echo_n "checking for MCA component rmaps:ppr compile mode... " >&6; } - if test "$DIRECT_rmaps" = "ppr" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component schizo:moab compile mode" >&5 +$as_echo_n "checking for MCA component schizo:moab compile mode... " >&6; } + if test "$DIRECT_schizo" = "moab" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -242582,77 +263131,616 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + ac_config_files="$ac_config_files orte/mca/schizo/moab/Makefile" - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/rmaps/ppr/post_configure.sh" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ppr" + if test -z "$orte_check_moab_happy" ; then - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ppr" - else - if test "rmaps" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/rmaps/ppr/lib${ORTE_LIB_PREFIX}mca_rmaps_ppr.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rmaps/ppr/libmca_rmaps_ppr.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_rmaps_ppr_component;" >> $outfile.extern - echo " &mca_rmaps_ppr_component, " >> $outfile.struct - static_components="$static_components ppr" + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:ppr can compile" >&5 -$as_echo_n "checking if MCA component rmaps:ppr can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in orte_check_moab_schizo_moab_save_CPPFLAGS orte_check_moab_schizo_moab_save_LDFLAGS orte_check_moab_schizo_moab_save_LIBS; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_rmaps" = "ppr" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_rmaps_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** rmaps component ppr was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rmaps" = "ppr" ; then -as_fn_error $? "*** rmaps component ppr was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"orte_check_moab_schizo_moab_save_CPPFLAGS orte_check_moab_schizo_moab_save_LDFLAGS orte_check_moab_schizo_moab_save_LIBS\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + +# Check whether --with-moab was given. +if test "${with_moab+set}" = set; then : + withval=$with_moab; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-moab value" >&5 +$as_echo_n "checking --with-moab value... " >&6; } + if test "$with_moab" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-moab)" >&5 +$as_echo "simple no (specified --without-moab)" >&6; } +else + if test "$with_moab" = "yes" || test "x$with_moab" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_moab"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_moab not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_moab not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_moab/mapi.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_moab/mapi.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_moab/mapi.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_moab)" >&5 +$as_echo "sanity check ok ($with_moab)" >&6; } + +fi + + +fi + + +fi + + +fi + + +# Check whether --with-moab-libdir was given. +if test "${with_moab_libdir+set}" = set; then : + withval=$with_moab_libdir; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-moab-libdir value" >&5 +$as_echo_n "checking --with-moab-libdir value... " >&6; } + if test "$with_moab_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-moab-libdir)" >&5 +$as_echo "simple no (specified --without-moab-libdir)" >&6; } +else + if test "$with_moab_libdir" = "yes" || test "x$with_moab_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_moab_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_moab_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_moab_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_moab_libdir/libmoab.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_moab_libdir/libmoab.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_moab_libdir/libmoab.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_moab_libdir)" >&5 +$as_echo "sanity check ok ($with_moab_libdir)" >&6; } + +fi + + +fi + + +fi + + +fi + + + orte_check_moab_happy="yes" + if test "$with_moab" = "no"; then : + orte_check_moab_happy=no +fi + + + if test $orte_check_moab_happy = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking looking for moab in" >&5 +$as_echo_n "checking looking for moab in... " >&6; } + if test "$with_moab" != "yes"; then : + orte_moab_dir=$with_moab + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ($orte_moab_dir)" >&5 +$as_echo "($orte_moab_dir)" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 +$as_echo "(default search paths)" >&6; } +fi + if test ! -z "$with_moab_libdir" && \ + test "$with_moab_libdir" != "yes"; then : + orte_moab_libdir=$with_moab_libdir +fi + +fi + + orte_check_moab_schizo_moab_save_CPPFLAGS=$CPPFLAGS + orte_check_moab_schizo_moab_save_LDFLAGS=$LDFLAGS + orte_check_moab_schizo_moab_save_LIBS=$LIBS + + if test $orte_check_moab_happy = yes; then : + + opal_check_package_orte_check_moab_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_orte_check_moab_save_LDFLAGS="$LDFLAGS" + opal_check_package_orte_check_moab_save_LIBS="$LIBS" + + opal_check_package_orte_check_moab_orig_CPPFLAGS="$orte_check_moab_CPPFLAGS" + opal_check_package_orte_check_moab_orig_LDFLAGS="$orte_check_moab_LDFLAGS" + opal_check_package_orte_check_moab_orig_LIBS="$orte_check_moab_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in dir_prefix; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_mapi_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $orte_moab_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in mapi.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "mapi.h" "ac_cv_header_mapi_h" "$ac_includes_default" +if test "x$ac_cv_header_mapi_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MAPI_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_mapi_h +fi +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + orte_check_moab_CPPFLAGS="$orte_check_moab_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in mapi.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "mapi.h" "ac_cv_header_mapi_h" "$ac_includes_default" +if test "x$ac_cv_header_mapi_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MAPI_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_MCCJobGetRemainingTime + opal_check_package_lib_happy="no" + if test "$orte_moab_libdir" != ""; then : + # libdir was specified - search only there + orte_check_moab_LDFLAGS="$orte_check_moab_LDFLAGS -L$orte_moab_libdir" + LDFLAGS="$LDFLAGS -L$orte_moab_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing MCCJobGetRemainingTime" >&5 +$as_echo_n "checking for library containing MCCJobGetRemainingTime... " >&6; } +if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char MCCJobGetRemainingTime (); +int +main () +{ +return MCCJobGetRemainingTime (); + ; + return 0; +} +_ACEOF +for ac_lib in '' cmoab; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_MCCJobGetRemainingTime=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + break +fi +done +if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + +else + ac_cv_search_MCCJobGetRemainingTime=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MCCJobGetRemainingTime" >&5 +$as_echo "$ac_cv_search_MCCJobGetRemainingTime" >&6; } +ac_res=$ac_cv_search_MCCJobGetRemainingTime +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" + orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" + unset ac_cv_search_MCCJobGetRemainingTime +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$orte_moab_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing MCCJobGetRemainingTime" >&5 +$as_echo_n "checking for library containing MCCJobGetRemainingTime... " >&6; } +if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char MCCJobGetRemainingTime (); +int +main () +{ +return MCCJobGetRemainingTime (); + ; + return 0; +} +_ACEOF +for ac_lib in '' cmoab; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_MCCJobGetRemainingTime=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + break +fi +done +if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + +else + ac_cv_search_MCCJobGetRemainingTime=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MCCJobGetRemainingTime" >&5 +$as_echo "$ac_cv_search_MCCJobGetRemainingTime" >&6; } +ac_res=$ac_cv_search_MCCJobGetRemainingTime +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" + orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" + unset ac_cv_search_MCCJobGetRemainingTime +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_moab_LDFLAGS="$orte_check_moab_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing MCCJobGetRemainingTime" >&5 +$as_echo_n "checking for library containing MCCJobGetRemainingTime... " >&6; } +if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char MCCJobGetRemainingTime (); +int +main () +{ +return MCCJobGetRemainingTime (); + ; + return 0; +} +_ACEOF +for ac_lib in '' cmoab; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_MCCJobGetRemainingTime=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + break +fi +done +if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + +else + ac_cv_search_MCCJobGetRemainingTime=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MCCJobGetRemainingTime" >&5 +$as_echo "$ac_cv_search_MCCJobGetRemainingTime" >&6; } +ac_res=$ac_cv_search_MCCJobGetRemainingTime +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" + orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" + unset ac_cv_search_MCCJobGetRemainingTime +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_moab_LDFLAGS="$orte_check_moab_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing MCCJobGetRemainingTime" >&5 +$as_echo_n "checking for library containing MCCJobGetRemainingTime... " >&6; } +if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char MCCJobGetRemainingTime (); +int +main () +{ +return MCCJobGetRemainingTime (); + ; + return 0; +} +_ACEOF +for ac_lib in '' cmoab; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_MCCJobGetRemainingTime=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + break +fi +done +if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + +else + ac_cv_search_MCCJobGetRemainingTime=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MCCJobGetRemainingTime" >&5 +$as_echo "$ac_cv_search_MCCJobGetRemainingTime" >&6; } +ac_res=$ac_cv_search_MCCJobGetRemainingTime +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" + orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" + unset ac_cv_search_MCCJobGetRemainingTime +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$rmaps_ppr_WRAPPER_EXTRA_LDFLAGS" = ""; then : + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_libnl_sane; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + opal_libnl_sane=1 + case $host in + *linux*) @@ -242665,7 +263753,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -242684,32 +263772,284 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libcmoab requires libnl v1 or v3" >&5 +$as_echo_n "checking if libcmoab requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void MCCJobGetRemainingTime (void); +int main(int argc, char *argv[]) { + MCCJobGetRemainingTime (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:263807: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lcmoab $LIBS $orte_check_moab_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lcmoab $LIBS $orte_check_moab_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:263814: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib cmoab" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib cmoab" >&2;} + +fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libcmoab links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libcmoab links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libcmoab (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libcmoab (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libcmoab." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libcmoab." >&2;} + + libnl_sane=0 +fi + + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas cmoab requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas cmoab requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libcmoab (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libcmoab (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libcmoab." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libcmoab." >&2;} + + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs cmoab" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi + +fi + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libcmoab requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libcmoab requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libcmoab (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libcmoab (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libcmoab." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libcmoab." >&2;} + + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs cmoab" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - for arg in $rmaps_ppr_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -242733,65 +264073,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $rmaps_ppr_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -242814,89 +264099,332 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - if test "$rmaps_ppr_WRAPPER_EXTRA_LIBS" = ""; then : +fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_MCCJobGetRemainingTime" != "no" && + test "$ac_cv_search_MCCJobGetRemainingTime" != "none required"; then : + orte_check_moab_LIBS="$ac_cv_search_MCCJobGetRemainingTime " +else + orte_check_moab_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +else + opal_check_package_happy="no" +fi +else - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # see comment above + unset ac_cv_search_MCCJobGetRemainingTime + opal_check_package_lib_happy="no" + if test "$orte_moab_libdir" != ""; then : + # libdir was specified - search only there + orte_check_moab_LDFLAGS="$orte_check_moab_LDFLAGS -L$orte_moab_libdir" + LDFLAGS="$LDFLAGS -L$orte_moab_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing MCCJobGetRemainingTime" >&5 +$as_echo_n "checking for library containing MCCJobGetRemainingTime... " >&6; } +if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char MCCJobGetRemainingTime (); +int +main () +{ +return MCCJobGetRemainingTime (); + ; + return 0; +} +_ACEOF +for ac_lib in '' cmoab; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_MCCJobGetRemainingTime=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + break +fi +done +if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - for arg in $rmaps_ppr_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +else + ac_cv_search_MCCJobGetRemainingTime=no fi - done +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MCCJobGetRemainingTime" >&5 +$as_echo "$ac_cv_search_MCCJobGetRemainingTime" >&6; } +ac_res=$ac_cv_search_MCCJobGetRemainingTime +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_lib_happy="no" fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" + orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" + unset ac_cv_search_MCCJobGetRemainingTime fi - done +else + # libdir was not specified - go through search path + opal_check_package_libdir="$orte_moab_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing MCCJobGetRemainingTime" >&5 +$as_echo_n "checking for library containing MCCJobGetRemainingTime... " >&6; } +if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char MCCJobGetRemainingTime (); +int +main () +{ +return MCCJobGetRemainingTime (); + ; + return 0; +} +_ACEOF +for ac_lib in '' cmoab; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_MCCJobGetRemainingTime=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + break +fi +done +if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : +else + ac_cv_search_MCCJobGetRemainingTime=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MCCJobGetRemainingTime" >&5 +$as_echo "$ac_cv_search_MCCJobGetRemainingTime" >&6; } +ac_res=$ac_cv_search_MCCJobGetRemainingTime +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" + orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" + unset ac_cv_search_MCCJobGetRemainingTime +fi +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_moab_LDFLAGS="$orte_check_moab_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing MCCJobGetRemainingTime" >&5 +$as_echo_n "checking for library containing MCCJobGetRemainingTime... " >&6; } +if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char MCCJobGetRemainingTime (); +int +main () +{ +return MCCJobGetRemainingTime (); + ; + return 0; +} +_ACEOF +for ac_lib in '' cmoab; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_MCCJobGetRemainingTime=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + break +fi +done +if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + +else + ac_cv_search_MCCJobGetRemainingTime=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MCCJobGetRemainingTime" >&5 +$as_echo "$ac_cv_search_MCCJobGetRemainingTime" >&6; } +ac_res=$ac_cv_search_MCCJobGetRemainingTime +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" + orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" + unset ac_cv_search_MCCJobGetRemainingTime +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + orte_check_moab_LDFLAGS="$orte_check_moab_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing MCCJobGetRemainingTime" >&5 +$as_echo_n "checking for library containing MCCJobGetRemainingTime... " >&6; } +if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char MCCJobGetRemainingTime (); +int +main () +{ +return MCCJobGetRemainingTime (); + ; + return 0; +} +_ACEOF +for ac_lib in '' cmoab; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_MCCJobGetRemainingTime=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + break +fi +done +if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : else + ac_cv_search_MCCJobGetRemainingTime=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MCCJobGetRemainingTime" >&5 +$as_echo "$ac_cv_search_MCCJobGetRemainingTime" >&6; } +ac_res=$ac_cv_search_MCCJobGetRemainingTime +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" + orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" + unset ac_cv_search_MCCJobGetRemainingTime +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -242909,7 +264437,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -242928,66 +264456,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $rmaps_ppr_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$rmaps_ppr_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -243000,7 +264478,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -243019,7 +264497,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -243027,408 +264505,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_ppr_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libcmoab requires libnl v1 or v3" >&5 +$as_echo_n "checking if libcmoab requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void MCCJobGetRemainingTime (void); +int main(int argc, char *argv[]) { + MCCJobGetRemainingTime (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:264532: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lcmoab $LIBS $orte_check_moab_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lcmoab $LIBS $orte_check_moab_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:264539: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rmaps_ppr_WRAPPER_EXTRA_CPPFLAGS ($rmaps_ppr_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring rmaps_ppr_WRAPPER_EXTRA_CPPFLAGS ($rmaps_ppr_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:ppr can compile" >&5 -$as_echo_n "checking if MCA component rmaps:ppr can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib cmoab" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib cmoab" >&2;} - # If this component was requested as the default for this - # type, then abort. - if test "$with_rmaps" = "ppr" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ppr\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ppr\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +fi - if test ! -z "$DIRECT_rmaps" ; then - if test "$DIRECT_rmaps" = "ppr" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ppr\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ppr\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # add component to all component list - all_components="$all_components ppr" - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_rmaps_ppr_DSO=1 - else - BUILD_orte_rmaps_ppr_DSO=0 - fi - if test "$BUILD_orte_rmaps_ppr_DSO" = "1"; then - MCA_BUILD_orte_rmaps_ppr_DSO_TRUE= - MCA_BUILD_orte_rmaps_ppr_DSO_FALSE='#' -else - MCA_BUILD_orte_rmaps_ppr_DSO_TRUE='#' - MCA_BUILD_orte_rmaps_ppr_DSO_FALSE= -fi + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libcmoab links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libcmoab links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libcmoab (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libcmoab (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libcmoab." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libcmoab." >&2;} - ac_config_files="$ac_config_files orte/mca/rmaps/ppr/Makefile" + libnl_sane=0 +fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas cmoab requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas cmoab requires libnl" >&2;} - unset compile_mode + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libcmoab (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libcmoab (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libcmoab." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libcmoab." >&2;} - opal_show_subsubsubtitle "MCA component rmaps:rank_file (no configuration)" + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs cmoab" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - component_path="$srcdir/orte/mca/rmaps/rank_file" - want_component=0 + # Loop over every token we've seen so far - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rmaps" ; then - if test "$DIRECT_rmaps" = "rank_file" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # if we were explicitly disabled, don't build :) - if test "$DISABLE_rmaps" = "1"; then : - want_component=0 -fi - if test "$DISABLE_rmaps_rank_file" = "1"; then : - want_component=0 -fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - SHARED_FRAMEWORK="$DSO_rmaps" - SHARED_COMPONENT="$DSO_rmaps_rank_file" + opal_done="`expr $opal_i \>= $opal_count`" - STATIC_FRAMEWORK="$STATIC_rmaps" - STATIC_COMPONENT="$STATIC_rmaps_rank_file" + # Increment the counter - shared_mode_override=static + opal_i="`expr $opal_i + 1`" + done - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + # If we didn't find the token, add it to the "array" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rmaps:rank_file compile mode" >&5 -$as_echo_n "checking for MCA component rmaps:rank_file compile mode... " >&6; } - if test "$DIRECT_rmaps" = "rank_file" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + opal_i="`expr $opal_i - 1`" fi +done - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" +# Take all the items in the "array" and assemble them back into a +# single variable - if test "$should_build" = "1" ; then +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/rmaps/rank_file/post_configure.sh" +# Done; do the assignment - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components rank_file" +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components rank_file" - else - if test "rmaps" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/rmaps/rank_file/lib${ORTE_LIB_PREFIX}mca_rmaps_rank_file.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rmaps/rank_file/libmca_rmaps_rank_file.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_rmaps_rank_file_component;" >> $outfile.extern - echo " &mca_rmaps_rank_file_component, " >> $outfile.struct - static_components="$static_components rank_file" - fi +# Clean up - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:rank_file can compile" >&5 -$as_echo_n "checking if MCA component rmaps:rank_file can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_rmaps" = "rank_file" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_rmaps_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** rmaps component rank_file was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rmaps" = "rank_file" ; then -as_fn_error $? "*** rmaps component rank_file was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$rmaps_rank_file_WRAPPER_EXTRA_LDFLAGS" = ""; then : + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libcmoab requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libcmoab requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libcmoab (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libcmoab (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libcmoab." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libcmoab." >&2;} + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs cmoab" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Go through each item in the variable and only keep the unique ones - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # Loop over every token we've seen so far - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - for arg in $rmaps_rank_file_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_done="`expr $opal_i \>= $opal_count`" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # Increment the counter - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Take all the items in the "array" and assemble them back into a +# single variable - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +# Done; do the assignment +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - for arg in $rmaps_rank_file_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -243452,66 +264798,10 @@ done -fi - if test "$rmaps_rank_file_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $rmaps_rank_file_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -243534,64 +264824,28 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - for arg in $rmaps_rank_file_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_MCCJobGetRemainingTime" != "no" && + test "$ac_cv_search_MCCJobGetRemainingTime" != "none required"; then : + orte_check_moab_LIBS="$ac_cv_search_MCCJobGetRemainingTime " +else + orte_check_moab_LIBS="" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -243615,17 +264869,26 @@ done + + if test "$opal_check_package_happy" = "yes"; then : + +else + orte_check_moab_CPPFLAGS="$opal_check_package_orte_check_moab_orig_CPPFLAGS" + orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" + orte_check_moab_LIBS="$opal_check_package_orte_check_moab_orig_LIBS" + orte_check_moab_happy=no fi - fi + CPPFLAGS="$opal_check_package_orte_check_moab_save_CPPFLAGS" + LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" + LIBS="$opal_check_package_orte_check_moab_save_LIBS" + +fi + + CPPFLAGS=$orte_check_moab_schizo_moab_save_CPPFLAGS + LDFLAGS=$orte_check_moab_schizo_moab_save_LDFLAGS + LIBS=$orte_check_moab_schizo_moab_save_LIBS - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$rmaps_rank_file_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : @@ -243638,7 +264901,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -243657,7 +264920,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -243665,24 +264928,20 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_rank_file_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ompi_summary_section=$(echo Resource Managers | tr ' ' '_') + ompi_summary_line="Moab: $orte_check_moab_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi # Unwind the index @@ -243706,205 +264965,106 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rmaps_rank_file_WRAPPER_EXTRA_CPPFLAGS ($rmaps_rank_file_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring rmaps_rank_file_WRAPPER_EXTRA_CPPFLAGS ($rmaps_rank_file_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:rank_file can compile" >&5 -$as_echo_n "checking if MCA component rmaps:rank_file can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_rmaps" = "rank_file" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"rank_file\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"rank_file\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_rmaps" ; then - if test "$DIRECT_rmaps" = "rank_file" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"rank_file\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"rank_file\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # add component to all component list - all_components="$all_components rank_file" - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_rmaps_rank_file_DSO=1 - else - BUILD_orte_rmaps_rank_file_DSO=0 fi - if test "$BUILD_orte_rmaps_rank_file_DSO" = "1"; then - MCA_BUILD_orte_rmaps_rank_file_DSO_TRUE= - MCA_BUILD_orte_rmaps_rank_file_DSO_FALSE='#' -else - MCA_BUILD_orte_rmaps_rank_file_DSO_TRUE='#' - MCA_BUILD_orte_rmaps_rank_file_DSO_FALSE= -fi - - ac_config_files="$ac_config_files orte/mca/rmaps/rank_file/Makefile" - - - unset compile_mode - - opal_show_subsubsubtitle "MCA component rmaps:resilient (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + if test $orte_check_moab_happy = yes ; then + schizo_moab_CPPFLAGS="$schizo_moab_CPPFLAGS $orte_check_moab_CPPFLAGS" + schizo_moab_LIBS="$schizo_moab_LIBS $orte_check_moab_LIBS" + schizo_moab_LDFLAGS="$schizo_moab_LDFLAGS $orte_check_moab_LDFLAGS" - component_path="$srcdir/orte/mca/rmaps/resilient" - want_component=0 - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rmaps" ; then - if test "$DIRECT_rmaps" = "resilient" ; then - want_component=1 - else - want_component=0 - fi - fi fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_rmaps" = "1"; then : - want_component=0 -fi - if test "$DISABLE_rmaps_resilient" = "1"; then : - want_component=0 + if test "$orte_check_moab_happy" = "yes"; then : + schizo_moab_good=1 +else + schizo_moab_good=0 fi - if test "$want_component" = "1"; then : - should_build=1 + + # if check worked, set wrapper flags if so. + # Evaluate succeed / fail + if test "$schizo_moab_good" = "1"; then : + should_build=$should_build else should_build=0 fi + # set build flags to use in makefile - SHARED_FRAMEWORK="$DSO_rmaps" - SHARED_COMPONENT="$DSO_rmaps_resilient" - - STATIC_FRAMEWORK="$STATIC_rmaps" - STATIC_COMPONENT="$STATIC_rmaps_resilient" - - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rmaps:resilient compile mode" >&5 -$as_echo_n "checking for MCA component rmaps:resilient compile mode... " >&6; } - if test "$DIRECT_rmaps" = "resilient" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/rmaps/resilient/post_configure.sh" + infile="$srcdir/orte/mca/schizo/moab/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components resilient" + all_components="$all_components moab" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components resilient" + dso_components="$dso_components moab" else - if test "rmaps" = "common"; then + if test "schizo" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/rmaps/resilient/lib${ORTE_LIB_PREFIX}mca_rmaps_resilient.la $static_ltlibs" + static_ltlibs="mca/schizo/moab/lib${ORTE_LIB_PREFIX}mca_schizo_moab.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rmaps/resilient/libmca_rmaps_resilient.la $static_ltlibs" + static_ltlibs="mca/schizo/moab/libmca_schizo_moab.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_rmaps_resilient_component;" >> $outfile.extern - echo " &mca_rmaps_resilient_component, " >> $outfile.struct - static_components="$static_components resilient" + echo "extern const mca_base_component_t mca_schizo_moab_component;" >> $outfile.extern + echo " &mca_schizo_moab_component, " >> $outfile.struct + static_components="$static_components moab" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:resilient can compile" >&5 -$as_echo_n "checking if MCA component rmaps:resilient can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:moab can compile" >&5 +$as_echo_n "checking if MCA component schizo:moab can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_rmaps" = "resilient" ; then + if test "$DIRECT_schizo" = "moab" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_rmaps_DIRECT_CALL_HEADER=$line" + str="MCA_orte_schizo_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** rmaps component resilient was supposed to be direct-called, but +as_fn_error $? "*** schizo component moab was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -243912,8 +265072,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rmaps" = "resilient" ; then -as_fn_error $? "*** rmaps component resilient was supposed to be direct-called, but + if test "$DIRECT_schizo" = "moab" ; then +as_fn_error $? "*** schizo component moab was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -243928,7 +265088,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$rmaps_resilient_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$schizo_moab_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -243968,7 +265128,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_resilient_LDFLAGS; do + for arg in $schizo_moab_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -244049,7 +265209,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_resilient_WRAPPER_EXTRA_LDFLAGS; do + for arg in $schizo_moab_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -244091,7 +265251,7 @@ fi - if test "$rmaps_resilient_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$schizo_moab_WRAPPER_EXTRA_LIBS" = ""; then : @@ -244131,7 +265291,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_resilient_LIBS; do + for arg in $schizo_moab_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -244212,7 +265372,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_resilient_WRAPPER_EXTRA_LIBS; do + for arg in $schizo_moab_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -244260,7 +265420,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$rmaps_resilient_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$schizo_moab_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -244303,7 +265463,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_resilient_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $schizo_moab_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -244346,69 +265506,78 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rmaps_resilient_WRAPPER_EXTRA_CPPFLAGS ($rmaps_resilient_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring rmaps_resilient_WRAPPER_EXTRA_CPPFLAGS ($rmaps_resilient_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring schizo_moab_WRAPPER_EXTRA_CPPFLAGS ($schizo_moab_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring schizo_moab_WRAPPER_EXTRA_CPPFLAGS ($schizo_moab_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:resilient can compile" >&5 -$as_echo_n "checking if MCA component rmaps:resilient can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:moab can compile" >&5 +$as_echo_n "checking if MCA component schizo:moab can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_rmaps" = "resilient" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"resilient\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"resilient\" failed to configure properly" >&2;} + if test "$with_schizo" = "moab" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"moab\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"moab\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_rmaps" ; then - if test "$DIRECT_rmaps" = "resilient" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"resilient\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"resilient\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "moab" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"moab\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"moab\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components resilient" - fi + # add component to all component list + all_components="$all_components moab" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_rmaps_resilient_DSO=1 - else - BUILD_orte_rmaps_resilient_DSO=0 - fi - if test "$BUILD_orte_rmaps_resilient_DSO" = "1"; then - MCA_BUILD_orte_rmaps_resilient_DSO_TRUE= - MCA_BUILD_orte_rmaps_resilient_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_orte_schizo_moab_DSO=1 else - MCA_BUILD_orte_rmaps_resilient_DSO_TRUE='#' - MCA_BUILD_orte_rmaps_resilient_DSO_FALSE= + BUILD_orte_schizo_moab_DSO=0 +fi + if test "$BUILD_orte_schizo_moab_DSO" = "1"; then + MCA_BUILD_orte_schizo_moab_DSO_TRUE= + MCA_BUILD_orte_schizo_moab_DSO_FALSE='#' +else + MCA_BUILD_orte_schizo_moab_DSO_TRUE='#' + MCA_BUILD_orte_schizo_moab_DSO_FALSE= fi - ac_config_files="$ac_config_files orte/mca/rmaps/resilient/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - opal_show_subsubsubtitle "MCA component rmaps:round_robin (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/rmaps/round_robin" + opal_show_subsubsubtitle "MCA component schizo:singularity (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/orte/mca/schizo/singularity" want_component=0 # build if: @@ -244440,8 +265609,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rmaps" ; then - if test "$DIRECT_rmaps" = "round_robin" ; then + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "singularity" ; then want_component=1 else want_component=0 @@ -244450,25 +265619,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_rmaps" = "1"; then : + if test "$DISABLE_schizo" = "1"; then : want_component=0 fi - if test "$DISABLE_rmaps_round_robin" = "1"; then : + if test "$DISABLE_schizo_singularity" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_rmaps" - SHARED_COMPONENT="$DSO_rmaps_round_robin" + SHARED_FRAMEWORK="$DSO_schizo" + SHARED_COMPONENT="$DSO_schizo_singularity" - STATIC_FRAMEWORK="$STATIC_rmaps" - STATIC_COMPONENT="$STATIC_rmaps_round_robin" + STATIC_FRAMEWORK="$STATIC_schizo" + STATIC_COMPONENT="$STATIC_schizo_singularity" shared_mode_override=static @@ -244486,9 +265657,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rmaps:round_robin compile mode" >&5 -$as_echo_n "checking for MCA component rmaps:round_robin compile mode... " >&6; } - if test "$DIRECT_rmaps" = "round_robin" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component schizo:singularity compile mode" >&5 +$as_echo_n "checking for MCA component schizo:singularity compile mode... " >&6; } + if test "$DIRECT_schizo" = "singularity" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -244496,77 +265667,12 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/rmaps/round_robin/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components round_robin" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components round_robin" - else - if test "rmaps" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/rmaps/round_robin/lib${ORTE_LIB_PREFIX}mca_rmaps_round_robin.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rmaps/round_robin/libmca_rmaps_round_robin.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_rmaps_round_robin_component;" >> $outfile.extern - echo " &mca_rmaps_round_robin_component, " >> $outfile.struct - static_components="$static_components round_robin" - fi + # try to configure the component - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:round_robin can compile" >&5 -$as_echo_n "checking if MCA component rmaps:round_robin can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + ac_config_files="$ac_config_files orte/mca/schizo/singularity/Makefile" - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_rmaps" = "round_robin" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_rmaps_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** rmaps component round_robin was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rmaps" = "round_robin" ; then -as_fn_error $? "*** rmaps component round_robin was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$rmaps_round_robin_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -244579,7 +265685,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in spath have_singularity; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -244598,7 +265704,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"spath have_singularity\"" eval $opal_str unset opal_str @@ -244606,360 +265712,153 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_round_robin_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# Check whether --with-singularity was given. +if test "${with_singularity+set}" = set; then : + withval=$with_singularity; +fi + spath= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Singularity support is to be built" >&5 +$as_echo_n "checking if Singularity support is to be built... " >&6; } + if test "$with_singularity" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + have_singularity=no else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test -z "$with_singularity" || test "$with_singularity" = "yes"; then : + # look for the singularity command in the default path + # Extract the first word of "singularity", so it can be a program name with args. +set dummy singularity; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_SINGULARITY+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$SINGULARITY"; then + ac_cv_prog_SINGULARITY="$SINGULARITY" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_SINGULARITY="singularity" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $rmaps_round_robin_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg +SINGULARITY=$ac_cv_prog_SINGULARITY +if test -n "$SINGULARITY"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SINGULARITY" >&5 +$as_echo "$SINGULARITY" >&6; } else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - if test "$rmaps_round_robin_WRAPPER_EXTRA_LIBS" = ""; then : - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $rmaps_round_robin_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + if test "$SINGULARITY" != ""; then : + have_singularity=yes +else + if test "$with_singularity" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Singularity support requested, but required executable" >&5 +$as_echo "$as_me: WARNING: Singularity support requested, but required executable" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"singularity\" not found in default locations" >&5 +$as_echo "$as_me: WARNING: \"singularity\" not found in default locations" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done + have_singularity=no fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for existence of $with_singularity/bin" >&5 +$as_echo_n "checking for existence of $with_singularity/bin... " >&6; } + # look for the singularity command in the bin subdirectory + if test ! -d "$with_singularity/bin"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_singularity/bin not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_singularity/bin not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 +$as_echo "found" >&6; } fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - + save_path=$PATH + PATH=$with_singularity/bin:$PATH + # Extract the first word of "singularity", so it can be a program name with args. +set dummy singularity; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_SINGULARITY+:} false; then : + $as_echo_n "(cached) " >&6 else + if test -n "$SINGULARITY"; then + ac_cv_prog_SINGULARITY="$SINGULARITY" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_SINGULARITY="singularity" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $rmaps_round_robin_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +SINGULARITY=$ac_cv_prog_SINGULARITY +if test -n "$SINGULARITY"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SINGULARITY" >&5 +$as_echo "$SINGULARITY" >&6; } else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$rmaps_round_robin_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$SINGULARITY" != ""; then : + have_singularity=yes + spath=$with_singularity/bin +else + have_singlarity=no + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Singularity support requested, but required executable" >&5 +$as_echo "$as_me: WARNING: Singularity support requested, but required executable" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"singularity\" not found in either default or specified path" >&5 +$as_echo "$as_me: WARNING: \"singularity\" not found in either default or specified path" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +fi + PATH=$save_path - for arg in $rmaps_round_robin_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + + +cat >>confdefs.h <<_ACEOF +#define OPAL_SINGULARITY_PATH "$spath" +_ACEOF + + if test "$have_singularity" = "yes"; then : + schizo_singularity_happy="yes" else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi + schizo_singularity_happy="no" fi - done - # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -244982,205 +265881,60 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rmaps_round_robin_WRAPPER_EXTRA_CPPFLAGS ($rmaps_round_robin_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring rmaps_round_robin_WRAPPER_EXTRA_CPPFLAGS ($rmaps_round_robin_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:round_robin can compile" >&5 -$as_echo_n "checking if MCA component rmaps:round_robin can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_rmaps" = "round_robin" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"round_robin\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"round_robin\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_rmaps" ; then - if test "$DIRECT_rmaps" = "round_robin" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"round_robin\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"round_robin\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components round_robin" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_rmaps_round_robin_DSO=1 - else - BUILD_orte_rmaps_round_robin_DSO=0 - fi - if test "$BUILD_orte_rmaps_round_robin_DSO" = "1"; then - MCA_BUILD_orte_rmaps_round_robin_DSO_TRUE= - MCA_BUILD_orte_rmaps_round_robin_DSO_FALSE='#' -else - MCA_BUILD_orte_rmaps_round_robin_DSO_TRUE='#' - MCA_BUILD_orte_rmaps_round_robin_DSO_FALSE= -fi - - - ac_config_files="$ac_config_files orte/mca/rmaps/round_robin/Makefile" - - - unset compile_mode - - opal_show_subsubsubtitle "MCA component rmaps:seq (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - - - component_path="$srcdir/orte/mca/rmaps/seq" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rmaps" ; then - if test "$DIRECT_rmaps" = "seq" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_rmaps" = "1"; then : - want_component=0 -fi - if test "$DISABLE_rmaps_seq" = "1"; then : - want_component=0 -fi - if test "$want_component" = "1"; then : - should_build=1 + if test "$schizo_singularity_happy" = "yes"; then : + should_build=$should_build else should_build=0 fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - SHARED_FRAMEWORK="$DSO_rmaps" - SHARED_COMPONENT="$DSO_rmaps_seq" - - STATIC_FRAMEWORK="$STATIC_rmaps" - STATIC_COMPONENT="$STATIC_rmaps_seq" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rmaps:seq compile mode" >&5 -$as_echo_n "checking for MCA component rmaps:seq compile mode... " >&6; } - if test "$DIRECT_rmaps" = "seq" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/rmaps/seq/post_configure.sh" + infile="$srcdir/orte/mca/schizo/singularity/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components seq" + all_components="$all_components singularity" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components seq" + dso_components="$dso_components singularity" else - if test "rmaps" = "common"; then + if test "schizo" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/rmaps/seq/lib${ORTE_LIB_PREFIX}mca_rmaps_seq.la $static_ltlibs" + static_ltlibs="mca/schizo/singularity/lib${ORTE_LIB_PREFIX}mca_schizo_singularity.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rmaps/seq/libmca_rmaps_seq.la $static_ltlibs" + static_ltlibs="mca/schizo/singularity/libmca_schizo_singularity.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_rmaps_seq_component;" >> $outfile.extern - echo " &mca_rmaps_seq_component, " >> $outfile.struct - static_components="$static_components seq" + echo "extern const mca_base_component_t mca_schizo_singularity_component;" >> $outfile.extern + echo " &mca_schizo_singularity_component, " >> $outfile.struct + static_components="$static_components singularity" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:seq can compile" >&5 -$as_echo_n "checking if MCA component rmaps:seq can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:singularity can compile" >&5 +$as_echo_n "checking if MCA component schizo:singularity can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_rmaps" = "seq" ; then + if test "$DIRECT_schizo" = "singularity" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_rmaps_DIRECT_CALL_HEADER=$line" + str="MCA_orte_schizo_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** rmaps component seq was supposed to be direct-called, but +as_fn_error $? "*** schizo component singularity was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -245188,8 +265942,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rmaps" = "seq" ; then -as_fn_error $? "*** rmaps component seq was supposed to be direct-called, but + if test "$DIRECT_schizo" = "singularity" ; then +as_fn_error $? "*** schizo component singularity was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -245204,7 +265958,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$rmaps_seq_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$schizo_singularity_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -245244,7 +265998,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_seq_LDFLAGS; do + for arg in $schizo_singularity_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -245325,7 +266079,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_seq_WRAPPER_EXTRA_LDFLAGS; do + for arg in $schizo_singularity_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -245367,7 +266121,7 @@ fi - if test "$rmaps_seq_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$schizo_singularity_WRAPPER_EXTRA_LIBS" = ""; then : @@ -245407,7 +266161,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_seq_LIBS; do + for arg in $schizo_singularity_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -245488,7 +266242,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_seq_WRAPPER_EXTRA_LIBS; do + for arg in $schizo_singularity_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -245536,7 +266290,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$rmaps_seq_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$schizo_singularity_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -245579,7 +266333,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rmaps_seq_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $schizo_singularity_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -245622,90 +266376,78 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rmaps_seq_WRAPPER_EXTRA_CPPFLAGS ($rmaps_seq_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring rmaps_seq_WRAPPER_EXTRA_CPPFLAGS ($rmaps_seq_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring schizo_singularity_WRAPPER_EXTRA_CPPFLAGS ($schizo_singularity_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring schizo_singularity_WRAPPER_EXTRA_CPPFLAGS ($schizo_singularity_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:seq can compile" >&5 -$as_echo_n "checking if MCA component rmaps:seq can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:singularity can compile" >&5 +$as_echo_n "checking if MCA component schizo:singularity can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_rmaps" = "seq" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"seq\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"seq\" failed to configure properly" >&2;} + if test "$with_schizo" = "singularity" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"singularity\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"singularity\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_rmaps" ; then - if test "$DIRECT_rmaps" = "seq" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"seq\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"seq\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "singularity" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"singularity\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"singularity\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components seq" - fi + # add component to all component list + all_components="$all_components singularity" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_rmaps_seq_DSO=1 - else - BUILD_orte_rmaps_seq_DSO=0 - fi - if test "$BUILD_orte_rmaps_seq_DSO" = "1"; then - MCA_BUILD_orte_rmaps_seq_DSO_TRUE= - MCA_BUILD_orte_rmaps_seq_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_orte_schizo_singularity_DSO=1 else - MCA_BUILD_orte_rmaps_seq_DSO_TRUE='#' - MCA_BUILD_orte_rmaps_seq_DSO_FALSE= + BUILD_orte_schizo_singularity_DSO=0 +fi + if test "$BUILD_orte_schizo_singularity_DSO" = "1"; then + MCA_BUILD_orte_schizo_singularity_DSO_TRUE= + MCA_BUILD_orte_schizo_singularity_DSO_FALSE='#' +else + MCA_BUILD_orte_schizo_singularity_DSO_TRUE='#' + MCA_BUILD_orte_schizo_singularity_DSO_FALSE= fi - ac_config_files="$ac_config_files orte/mca/rmaps/seq/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - if test "1" != "0"; then : - for component_path in $srcdir/orte/mca/rmaps/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component rmaps:$component (need to configure)" + opal_show_subsubsubtitle "MCA component schizo:slurm (m4 configuration macro)" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/orte/mca/rmaps/$component" + component_path="$srcdir/orte/mca/schizo/slurm" want_component=0 # build if: @@ -245737,8 +266479,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rmaps" ; then - if test "$DIRECT_rmaps" = "$component" ; then + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "slurm" ; then want_component=1 else want_component=0 @@ -245747,29 +266489,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_rmaps" = "1"; then : + if test "$DISABLE_schizo" = "1"; then : + want_component=0 +fi + if test "$DISABLE_schizo_slurm" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_rmaps_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_rmaps" - str="SHARED_COMPONENT=\$DSO_rmaps_$component" - eval $str + SHARED_FRAMEWORK="$DSO_schizo" + SHARED_COMPONENT="$DSO_schizo_slurm" - STATIC_FRAMEWORK="$STATIC_rmaps" - str="STATIC_COMPONENT=\$STATIC_rmaps_$component" - eval $str + STATIC_FRAMEWORK="$STATIC_schizo" + STATIC_COMPONENT="$STATIC_schizo_slurm" shared_mode_override=static @@ -245787,9 +266527,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rmaps:$component compile mode" >&5 -$as_echo_n "checking for MCA component rmaps:$component compile mode... " >&6; } - if test "$DIRECT_rmaps" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component schizo:slurm compile mode" >&5 +$as_echo_n "checking for MCA component schizo:slurm compile mode... " >&6; } + if test "$DIRECT_schizo" = "slurm" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -245797,9 +266537,37 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files orte/mca/schizo/slurm/Makefile" + + + + if test -z "$orte_check_slurm_happy" ; then + +# Check whether --with-slurm was given. +if test "${with_slurm+set}" = set; then : + withval=$with_slurm; +fi + + + if test "$with_slurm" = "no" ; then + orte_check_slurm_happy="no" + elif test "$with_slurm" = "" ; then + # unless user asked, only build slurm component on linux, AIX, + # and OS X systems (these are the platforms that SLURM + # supports) + case $host in + *-linux*|*-aix*|*-apple-darwin*) + orte_check_slurm_happy="yes" + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SLURM srun in PATH" >&5 +$as_echo_n "checking for SLURM srun in PATH... " >&6; } + +# 1 is the variable name to do "which" on +# 2 is the variable name to assign the return value to @@ -245812,7 +266580,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in opal_prog opal_file opal_dir opal_sentinel; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -245831,7 +266599,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"opal_prog opal_file opal_dir opal_sentinel\"" eval $opal_str unset opal_str @@ -245839,250 +266607,654 @@ opal_scope_index=`expr $opal_scope_index + 1` +opal_prog=srun + +IFS_SAVE=$IFS +IFS="$PATH_SEPARATOR" +for opal_dir in $PATH; do + if test -x "$opal_dir/$opal_prog"; then + ORTE_CHECK_SLURM_SRUN="$opal_dir/$opal_prog" + break + fi +done +IFS=$IFS_SAVE + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + if test "$ORTE_CHECK_SLURM_SRUN" = ""; then + orte_check_slurm_happy="no" + else + orte_check_slurm_happy="yes" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_slurm_happy" >&5 +$as_echo "$orte_check_slurm_happy" >&6; } + ;; + esac + else + orte_check_slurm_happy="yes" + fi + + if test "$orte_check_slurm_happy" = "yes"; then : + ac_fn_c_check_func "$LINENO" "fork" "ac_cv_func_fork" +if test "x$ac_cv_func_fork" = xyes; then : + orte_check_slurm_happy="yes" +else + orte_check_slurm_happy="no" +fi + +fi + + if test "$orte_check_slurm_happy" = "yes"; then : + ac_fn_c_check_func "$LINENO" "execve" "ac_cv_func_execve" +if test "x$ac_cv_func_execve" = xyes; then : + orte_check_slurm_happy="yes" +else + orte_check_slurm_happy="no" +fi + +fi + + if test "$orte_check_slurm_happy" = "yes"; then : + ac_fn_c_check_func "$LINENO" "setpgid" "ac_cv_func_setpgid" +if test "x$ac_cv_func_setpgid" = xyes; then : + orte_check_slurm_happy="yes" +else + orte_check_slurm_happy="no" +fi + +fi + + # check to see if this is a Cray nativized slurm env. + + slurm_cray_env=0 + + if test -z "$opal_check_cray_alps_happy"; then + + +# Check whether --with-alps was given. +if test "${with_alps+set}" = set; then : + withval=$with_alps; +else + with_alps=auto +fi + + + if test -f /etc/opt/cray/release/clerelease; then + cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` + else + cle_level="unknown" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 +$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } + if test "$cle_level" = "4" && test "$with_alps" != "no"; then : + + # -# Invoke configure in a specific subdirectory. -# -# orte/mca/rmaps/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure +# if we've gotten here, its because we are building on a CLE 4 system # -subdir_dir="orte/mca/rmaps/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + opal_check_alps_cle4_libdir_happy="no" + opal_check_alps_cle4_dir_happy="no" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 +$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } + + +# Check whether --with-alps-libdir was given. +if test "${with_alps_libdir+set}" = set; then : + withval=$with_alps_libdir; +fi + # -# Sanity checks +# check to see if Open MPI is being built on a CLE 4 eslogin node # + if test -f /etc/opt/cray/release/ESLrelease; then : + default_alps_dir="/opt/cray/xe-sysroot/default/usr" +else + default_alps_dir="/usr" +fi -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + if test -z "$with_alps_libdir"; then : + if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : + if test -d "$with_alps_libdir/lib64"; then : + opal_check_alps_libdir="$with_alps_libdir/lib64" +else + opal_check_alps_libdir="$with_alps_libdir/lib" +fi +else + opal_check_alps_libdir="$default_alps_dir/lib/alps" +fi - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # +fi - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : + opal_check_alps_dir=$default_alps_dir +else + opal_check_alps_dir=$with_alps +fi - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 +$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } + if test -f "$opal_check_alps_libdir/libalps.a"; then : + opal_check_alps_libdir_cle4_happy="yes" +else + opal_check_alps_libdir_cle4_happy="no", + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - # - # Move into the target directory - # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 +$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } + if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : + opal_check_alps_dir_cle4_happy="yes" +else + opal_check_alps_dir_cle4_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - subdir_parent=`pwd` - cd $subdir_dir + if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : + CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" + CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" + opal_check_cray_alps_happy="yes" +else + opal_check_cray_alps_happy="no" +fi - # - # Make a "../" for each directory in $subdir_dir. - # +else + if test "$with_alps" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy=no - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # +else + if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 +$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } - # - # Construct the --cache-file argument - # +if test -n "$CRAY_ALPSLLI_CFLAGS"; then + pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSLLI_LIBS"; then + pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # - # Go back to the topdir - # +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` + else + CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 - cd $subdir_parent + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 fi -# -# Clean up -# +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS + CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS + CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 +$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } + +if test -n "$CRAY_ALPSUTIL_CFLAGS"; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSUTIL_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` + else + CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS + CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS + CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 +$as_echo_n "checking for CRAY_ALPS... " >&6; } + +if test -n "$CRAY_ALPS_CFLAGS"; then + pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_LIBS"; then + pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_ALPS_STATIC_LIBS"; then + pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` + else + CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_ALPS_PKG_ERRORS" >&5 + + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi + +else + CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS + CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS + CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 +$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } +if test -n "$CRAY_WLM_DETECT_CFLAGS"; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_WLM_DETECT_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + else + CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/orte/mca/rmaps/all_components/post_configure.sh" - if test -f $infile; then + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_check_cray_alps_happy="no" + if test "$with_alps" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 +$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 +$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 +$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - rmaps_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - rmaps_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi +else + CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS + CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS + CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + opal_check_cray_alps_happy="yes" +cat >>confdefs.h <<_ACEOF +#define CRAY_WLM_DETECT 1 +_ACEOF +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/rmaps/$component/post_configure.sh" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 +$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 +$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} + as_fn_error $? "Aborting" "$LINENO" 5 +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" +fi - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "rmaps" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/rmaps/$component/lib${ORTE_LIB_PREFIX}mca_rmaps_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rmaps/$component/libmca_rmaps_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_rmaps_$component_component;" >> $outfile.extern - echo " &mca_rmaps_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi +fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:$component can compile" >&5 -$as_echo_n "checking if MCA component rmaps:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 +$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_rmaps" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_rmaps_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** rmaps component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rmaps" = "$component" ; then -as_fn_error $? "*** rmaps component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : + CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS + CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$rmaps_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" @@ -246095,7 +267267,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -246114,7 +267286,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -246122,24 +267294,20 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ompi_summary_section=$(echo Resource Managers | tr ' ' '_') + ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi # Unwind the index @@ -246162,8 +267330,25 @@ unset $opal_var done -str="line=\$rmaps_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + + fi + + if test "$opal_check_cray_alps_happy" = "yes"; then : + orte_slurm_cray_LDFLAGS="$orte_slurm_cray_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" + orte_slurm_cray_CPPFLAGS="$orte_slurm_cray_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" + orte_slurm_cray_LIBS="$orte_slurm_cray_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + orte_slurm_cray_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + orte_slurm_cray_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" + slurm_cray_env=1 +fi + + + +cat >>confdefs.h <<_ACEOF +#define SLURM_CRAY_ENV $slurm_cray_env +_ACEOF + + @@ -246176,7 +267361,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -246195,7 +267380,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -246203,24 +267388,20 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + ompi_summary_section=$(echo Resource Managers | tr ' ' '_') + ompi_summary_line="Slurm: $orte_check_slurm_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi # Unwind the index @@ -246246,311 +267427,73 @@ fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rmaps:$component can compile" >&5 -$as_echo_n "checking if MCA component rmaps:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_rmaps" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_rmaps" ; then - if test "$DIRECT_rmaps" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - fi - fi - done - + if test "$orte_check_slurm_happy" = "yes"; then : + schizo_slurm_good=1 +else + schizo_slurm_good=0 fi - MCA_orte_rmaps_ALL_COMPONENTS="$all_components" - MCA_orte_rmaps_STATIC_COMPONENTS="$static_components" - MCA_orte_rmaps_DSO_COMPONENTS="$dso_components" - MCA_orte_rmaps_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_orte_rmaps_ALL_SUBDIRS= - for item in $all_components ; do - MCA_orte_rmaps_ALL_SUBDIRS="$MCA_orte_rmaps_ALL_SUBDIRS mca/rmaps/$item" - done - - - - MCA_orte_rmaps_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_orte_rmaps_STATIC_SUBDIRS="$MCA_orte_rmaps_STATIC_SUBDIRS mca/rmaps/$item" - done - - - - MCA_orte_rmaps_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_orte_rmaps_DSO_SUBDIRS="$MCA_orte_rmaps_DSO_SUBDIRS mca/rmaps/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "rmaps" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS rml" - MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/rml" - MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_rml_ALL_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_rml_DSO_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_rml_STATIC_SUBDIRS)" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/rml/libmca_rml.la" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_rml_STATIC_LTLIBS)" - - opal_show_subsubtitle "Configuring MCA framework rml" - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=orte/mca/rml/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files orte/mca/rml/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework rml" >&5 -$as_echo_n "checking for no configure components in framework rml... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: oob" >&5 -$as_echo "oob" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework rml" >&5 -$as_echo_n "checking for m4 configure components in framework rml... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - opal_show_subsubsubtitle "MCA component rml:oob (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - - - component_path="$srcdir/orte/mca/rml/oob" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rml" ; then - if test "$DIRECT_rml" = "oob" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_rml" = "1"; then : - want_component=0 -fi - if test "$DISABLE_rml_oob" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=1 + # if check worked, set wrapper flags if so. + # Evaluate succeed / fail + if test "$schizo_slurm_good" = "1"; then : + should_build=$should_build else should_build=0 fi + # set build flags to use in makefile - SHARED_FRAMEWORK="$DSO_rml" - SHARED_COMPONENT="$DSO_rml_oob" - - STATIC_FRAMEWORK="$STATIC_rml" - STATIC_COMPONENT="$STATIC_rml_oob" - - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rml:oob compile mode" >&5 -$as_echo_n "checking for MCA component rml:oob compile mode... " >&6; } - if test "$DIRECT_rml" = "oob" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/rml/oob/post_configure.sh" + infile="$srcdir/orte/mca/schizo/slurm/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components oob" + all_components="$all_components slurm" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components oob" + dso_components="$dso_components slurm" else - if test "rml" = "common"; then + if test "schizo" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/rml/oob/lib${ORTE_LIB_PREFIX}mca_rml_oob.la $static_ltlibs" + static_ltlibs="mca/schizo/slurm/lib${ORTE_LIB_PREFIX}mca_schizo_slurm.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rml/oob/libmca_rml_oob.la $static_ltlibs" + static_ltlibs="mca/schizo/slurm/libmca_schizo_slurm.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_rml_oob_component;" >> $outfile.extern - echo " &mca_rml_oob_component, " >> $outfile.struct - static_components="$static_components oob" + echo "extern const mca_base_component_t mca_schizo_slurm_component;" >> $outfile.extern + echo " &mca_schizo_slurm_component, " >> $outfile.struct + static_components="$static_components slurm" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rml:oob can compile" >&5 -$as_echo_n "checking if MCA component rml:oob can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:slurm can compile" >&5 +$as_echo_n "checking if MCA component schizo:slurm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_rml" = "oob" ; then + if test "$DIRECT_schizo" = "slurm" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_rml_DIRECT_CALL_HEADER=$line" + str="MCA_orte_schizo_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** rml component oob was supposed to be direct-called, but +as_fn_error $? "*** schizo component slurm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -246558,8 +267501,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rml" = "oob" ; then -as_fn_error $? "*** rml component oob was supposed to be direct-called, but + if test "$DIRECT_schizo" = "slurm" ; then +as_fn_error $? "*** schizo component slurm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -246574,7 +267517,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$rml_oob_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$schizo_slurm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -246614,7 +267557,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rml_oob_LDFLAGS; do + for arg in $schizo_slurm_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -246695,7 +267638,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rml_oob_WRAPPER_EXTRA_LDFLAGS; do + for arg in $schizo_slurm_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -246737,7 +267680,7 @@ fi - if test "$rml_oob_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$schizo_slurm_WRAPPER_EXTRA_LIBS" = ""; then : @@ -246777,7 +267720,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rml_oob_LIBS; do + for arg in $schizo_slurm_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -246858,7 +267801,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rml_oob_WRAPPER_EXTRA_LIBS; do + for arg in $schizo_slurm_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -246906,7 +267849,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$rml_oob_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$schizo_slurm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -246949,7 +267892,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rml_oob_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $schizo_slurm_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -246992,70 +267935,69 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rml_oob_WRAPPER_EXTRA_CPPFLAGS ($rml_oob_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring rml_oob_WRAPPER_EXTRA_CPPFLAGS ($rml_oob_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring schizo_slurm_WRAPPER_EXTRA_CPPFLAGS ($schizo_slurm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring schizo_slurm_WRAPPER_EXTRA_CPPFLAGS ($schizo_slurm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rml:oob can compile" >&5 -$as_echo_n "checking if MCA component rml:oob can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:slurm can compile" >&5 +$as_echo_n "checking if MCA component schizo:slurm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_rml" = "oob" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"oob\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"oob\" failed to configure properly" >&2;} + if test "$with_schizo" = "slurm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"slurm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"slurm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_rml" ; then - if test "$DIRECT_rml" = "oob" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"oob\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"oob\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "slurm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"slurm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"slurm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components oob" - fi + # add component to all component list + all_components="$all_components slurm" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_rml_oob_DSO=1 - else - BUILD_orte_rml_oob_DSO=0 - fi - if test "$BUILD_orte_rml_oob_DSO" = "1"; then - MCA_BUILD_orte_rml_oob_DSO_TRUE= - MCA_BUILD_orte_rml_oob_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_orte_schizo_slurm_DSO=1 else - MCA_BUILD_orte_rml_oob_DSO_TRUE='#' - MCA_BUILD_orte_rml_oob_DSO_FALSE= + BUILD_orte_schizo_slurm_DSO=0 +fi + if test "$BUILD_orte_schizo_slurm_DSO" = "1"; then + MCA_BUILD_orte_schizo_slurm_DSO_TRUE= + MCA_BUILD_orte_schizo_slurm_DSO_FALSE='#' +else + MCA_BUILD_orte_schizo_slurm_DSO_TRUE='#' + MCA_BUILD_orte_schizo_slurm_DSO_FALSE= fi - ac_config_files="$ac_config_files orte/mca/rml/oob/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - # configure components that use built-in configuration scripts - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 # configure components that provide their own configure script. @@ -247066,16 +268008,16 @@ if test "1" != "0"; then : - for component_path in $srcdir/orte/mca/rml/* ; do + for component_path in $srcdir/orte/mca/schizo/* ; do component="`basename $component_path`" if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component rml:$component (need to configure)" + opal_show_subsubsubtitle "MCA component schizo:$component (need to configure)" opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/orte/mca/rml/$component" + component_path="$srcdir/orte/mca/schizo/$component" want_component=0 # build if: @@ -247107,8 +268049,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rml" ; then - if test "$DIRECT_rml" = "$component" ; then + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "$component" ; then want_component=1 else want_component=0 @@ -247117,10 +268059,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_rml" = "1"; then : + if test "$DISABLE_schizo" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_rml_$component" + str="DISABLED_COMPONENT_CHECK=\$DISABLE_schizo_$component" eval $str if test "$DISABLED_COMPONENT_CHECK" = "1" ; then want_component=0 @@ -247133,12 +268075,12 @@ fi - SHARED_FRAMEWORK="$DSO_rml" - str="SHARED_COMPONENT=\$DSO_rml_$component" + SHARED_FRAMEWORK="$DSO_schizo" + str="SHARED_COMPONENT=\$DSO_schizo_$component" eval $str - STATIC_FRAMEWORK="$STATIC_rml" - str="STATIC_COMPONENT=\$STATIC_rml_$component" + STATIC_FRAMEWORK="$STATIC_schizo" + str="STATIC_COMPONENT=\$STATIC_schizo_$component" eval $str shared_mode_override=static @@ -247157,9 +268099,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rml:$component compile mode" >&5 -$as_echo_n "checking for MCA component rml:$component compile mode... " >&6; } - if test "$DIRECT_rml" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component schizo:$component compile mode" >&5 +$as_echo_n "checking for MCA component schizo:$component compile mode... " >&6; } + if test "$DIRECT_schizo" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -247212,12 +268154,12 @@ # # Invoke configure in a specific subdirectory. # -# orte/mca/rml/$component is the directory to invoke in +# orte/mca/schizo/$component is the directory to invoke in # $opal_subdir_args is the list of arguments to pass # should_build=1 is actions to execute upon success # should_build=0 is actions to execute upon failure # -subdir_dir="orte/mca/rml/$component" +subdir_dir="orte/mca/schizo/$component" subdir_args="$opal_subdir_args" subdir_success="should_build=1" subdir_failure="should_build=0" @@ -247361,7 +268303,7 @@ # do some extra work to pass flags back from the # top-level configure, the way a configure.m4 # component would. - infile="$srcdir/orte/mca/rml/all_components/post_configure.sh" + infile="$srcdir/orte/mca/schizo/all_components/post_configure.sh" if test -f $infile; then # First check for the ABORT tag @@ -247375,12 +268317,12 @@ line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - rml_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + schizo_all_components_WRAPPER_EXTRA_LDFLAGS="$line" fi line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - rml_all_components_WRAPPER_EXTRA_LIBS="$line" + schizo_all_components_WRAPPER_EXTRA_LIBS="$line" fi fi @@ -247389,7 +268331,7 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/rml/$component/post_configure.sh" + infile="$srcdir/orte/mca/schizo/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs all_components="$all_components $component" @@ -247397,37 +268339,37 @@ if test "$compile_mode" = "dso" ; then dso_components="$dso_components $component" else - if test "rml" = "common"; then + if test "schizo" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/rml/$component/lib${ORTE_LIB_PREFIX}mca_rml_$component.la $static_ltlibs" + static_ltlibs="mca/schizo/$component/lib${ORTE_LIB_PREFIX}mca_schizo_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rml/$component/libmca_rml_$component.la $static_ltlibs" + static_ltlibs="mca/schizo/$component/libmca_schizo_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_rml_$component_component;" >> $outfile.extern - echo " &mca_rml_$component_component, " >> $outfile.struct + echo "extern const mca_base_component_t mca_schizo_$component_component;" >> $outfile.extern + echo " &mca_schizo_$component_component, " >> $outfile.struct static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rml:$component can compile" >&5 -$as_echo_n "checking if MCA component rml:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:$component can compile" >&5 +$as_echo_n "checking if MCA component schizo:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_rml" = "$component" ; then + if test "$DIRECT_schizo" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_rml_DIRECT_CALL_HEADER=$line" + str="MCA_orte_schizo_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** rml component $component was supposed to be direct-called, but +as_fn_error $? "*** schizo component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -247435,8 +268377,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rml" = "$component" ; then -as_fn_error $? "*** rml component $component was supposed to be direct-called, but + if test "$DIRECT_schizo" = "$component" ; then +as_fn_error $? "*** schizo component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -247451,7 +268393,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$rml_$component_WRAPPER_EXTRA_LDFLAGS" + str="line=\$schizo_$component_WRAPPER_EXTRA_LDFLAGS" eval "$str" @@ -247532,7 +268474,7 @@ unset $opal_var done -str="line=\$rml_$component_WRAPPER_EXTRA_LIBS" +str="line=\$schizo_$component_WRAPPER_EXTRA_LIBS" eval "$str" @@ -247623,14 +268565,14 @@ else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rml:$component can compile" >&5 -$as_echo_n "checking if MCA component rml:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:$component can compile" >&5 +$as_echo_n "checking if MCA component schizo:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_rml" = "$component" ; then + if test "$with_schizo" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 @@ -247638,8 +268580,8 @@ as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_rml" ; then - if test "$DIRECT_rml" = "$component" ; then + if test ! -z "$DIRECT_schizo" ; then + if test "$DIRECT_schizo" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 @@ -247654,10 +268596,10 @@ fi - MCA_orte_rml_ALL_COMPONENTS="$all_components" - MCA_orte_rml_STATIC_COMPONENTS="$static_components" - MCA_orte_rml_DSO_COMPONENTS="$dso_components" - MCA_orte_rml_STATIC_LTLIBS="$static_ltlibs" + MCA_orte_schizo_ALL_COMPONENTS="$all_components" + MCA_orte_schizo_STATIC_COMPONENTS="$static_components" + MCA_orte_schizo_DSO_COMPONENTS="$dso_components" + MCA_orte_schizo_STATIC_LTLIBS="$static_ltlibs" @@ -247665,23 +268607,23 @@ - MCA_orte_rml_ALL_SUBDIRS= + MCA_orte_schizo_ALL_SUBDIRS= for item in $all_components ; do - MCA_orte_rml_ALL_SUBDIRS="$MCA_orte_rml_ALL_SUBDIRS mca/rml/$item" + MCA_orte_schizo_ALL_SUBDIRS="$MCA_orte_schizo_ALL_SUBDIRS mca/schizo/$item" done - MCA_orte_rml_STATIC_SUBDIRS= + MCA_orte_schizo_STATIC_SUBDIRS= for item in $static_components ; do - MCA_orte_rml_STATIC_SUBDIRS="$MCA_orte_rml_STATIC_SUBDIRS mca/rml/$item" + MCA_orte_schizo_STATIC_SUBDIRS="$MCA_orte_schizo_STATIC_SUBDIRS mca/schizo/$item" done - MCA_orte_rml_DSO_SUBDIRS= + MCA_orte_schizo_DSO_SUBDIRS= for item in $dso_components ; do - MCA_orte_rml_DSO_SUBDIRS="$MCA_orte_rml_DSO_SUBDIRS mca/rml/$item" + MCA_orte_schizo_DSO_SUBDIRS="$MCA_orte_schizo_DSO_SUBDIRS mca/schizo/$item" done @@ -247689,7 +268631,7 @@ # Create the final .h file that will be included in the type's # top-level glue. This lists all the static components. We don't # need to do this for "common". - if test "rml" != "common"; then + if test "schizo" != "common"; then cat > $outfile <&5 -$as_echo_n "checking for no configure components in framework routed... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: binomial, direct, radix" >&5 -$as_echo "binomial, direct, radix" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework routed" >&5 -$as_echo_n "checking for m4 configure components in framework routed... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework snapc" >&5 +$as_echo_n "checking for no configure components in framework snapc... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework snapc" >&5 +$as_echo_n "checking for m4 configure components in framework snapc... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: full" >&5 +$as_echo "full" >&6; } # If there are components in the no configure list, but we're # doing one of the "special" selection logics, abort with a @@ -247780,13 +268722,23 @@ # run the configure logic for the no-config components - opal_show_subsubsubtitle "MCA component routed:binomial (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + # configure components that use built-in configuration scripts - component_path="$srcdir/orte/mca/routed/binomial" + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + opal_show_subsubsubtitle "MCA component snapc:full (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/orte/mca/snapc/full" want_component=0 # build if: @@ -247818,8 +268770,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_routed" ; then - if test "$DIRECT_routed" = "binomial" ; then + if test ! -z "$DIRECT_snapc" ; then + if test "$DIRECT_snapc" = "full" ; then want_component=1 else want_component=0 @@ -247828,25 +268780,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_routed" = "1"; then : + if test "$DISABLE_snapc" = "1"; then : want_component=0 fi - if test "$DISABLE_routed_binomial" = "1"; then : + if test "$DISABLE_snapc_full" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_routed" - SHARED_COMPONENT="$DSO_routed_binomial" + SHARED_FRAMEWORK="$DSO_snapc" + SHARED_COMPONENT="$DSO_snapc_full" - STATIC_FRAMEWORK="$STATIC_routed" - STATIC_COMPONENT="$STATIC_routed_binomial" + STATIC_FRAMEWORK="$STATIC_snapc" + STATIC_COMPONENT="$STATIC_snapc_full" shared_mode_override=static @@ -247864,9 +268818,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component routed:binomial compile mode" >&5 -$as_echo_n "checking for MCA component routed:binomial compile mode... " >&6; } - if test "$DIRECT_routed" = "binomial" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component snapc:full compile mode" >&5 +$as_echo_n "checking for MCA component snapc:full compile mode... " >&6; } + if test "$DIRECT_snapc" = "full" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -247874,53 +268828,66 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files orte/mca/snapc/full/Makefile" + + + # If we don't want FT, don't compile this component + if test "$opal_want_ft_cr" = "1"; then : + should_build=$should_build +else + should_build=0 +fi + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/routed/binomial/post_configure.sh" + infile="$srcdir/orte/mca/snapc/full/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components binomial" + all_components="$all_components full" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components binomial" + dso_components="$dso_components full" else - if test "routed" = "common"; then + if test "snapc" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/routed/binomial/lib${ORTE_LIB_PREFIX}mca_routed_binomial.la $static_ltlibs" + static_ltlibs="mca/snapc/full/lib${ORTE_LIB_PREFIX}mca_snapc_full.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/routed/binomial/libmca_routed_binomial.la $static_ltlibs" + static_ltlibs="mca/snapc/full/libmca_snapc_full.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_routed_binomial_component;" >> $outfile.extern - echo " &mca_routed_binomial_component, " >> $outfile.struct - static_components="$static_components binomial" + echo "extern const mca_base_component_t mca_snapc_full_component;" >> $outfile.extern + echo " &mca_snapc_full_component, " >> $outfile.struct + static_components="$static_components full" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component routed:binomial can compile" >&5 -$as_echo_n "checking if MCA component routed:binomial can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component snapc:full can compile" >&5 +$as_echo_n "checking if MCA component snapc:full can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_routed" = "binomial" ; then + if test "$DIRECT_snapc" = "full" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_routed_DIRECT_CALL_HEADER=$line" + str="MCA_orte_snapc_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** routed component binomial was supposed to be direct-called, but +as_fn_error $? "*** snapc component full was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -247928,8 +268895,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_routed" = "binomial" ; then -as_fn_error $? "*** routed component binomial was supposed to be direct-called, but + if test "$DIRECT_snapc" = "full" ; then +as_fn_error $? "*** snapc component full was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -247944,7 +268911,170 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$routed_binomial_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$snapc_full_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $snapc_full_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $snapc_full_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$snapc_full_WRAPPER_EXTRA_LIBS" = ""; then : @@ -247984,21 +269114,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $routed_binomial_LDFLAGS; do + for arg in $snapc_full_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -248065,21 +269195,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $routed_binomial_WRAPPER_EXTRA_LDFLAGS; do + for arg in $snapc_full_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -248107,7 +269237,16 @@ fi - if test "$routed_binomial_WRAPPER_EXTRA_LIBS" = ""; then : + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$snapc_full_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -248147,21 +269286,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $routed_binomial_LIBS; do + for arg in $snapc_full_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_cppflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi fi done @@ -248188,7 +269327,468 @@ done +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring snapc_full_WRAPPER_EXTRA_CPPFLAGS ($snapc_full_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring snapc_full_WRAPPER_EXTRA_CPPFLAGS ($snapc_full_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component snapc:full can compile" >&5 +$as_echo_n "checking if MCA component snapc:full can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_snapc" = "full" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"full\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"full\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_snapc" ; then + if test "$DIRECT_snapc" = "full" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"full\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"full\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components full" +fi + + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_orte_snapc_full_DSO=1 +else + BUILD_orte_snapc_full_DSO=0 +fi + if test "$BUILD_orte_snapc_full_DSO" = "1"; then + MCA_BUILD_orte_snapc_full_DSO_TRUE= + MCA_BUILD_orte_snapc_full_DSO_FALSE='#' +else + MCA_BUILD_orte_snapc_full_DSO_TRUE='#' + MCA_BUILD_orte_snapc_full_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + + + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/orte/mca/snapc/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component snapc:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/orte/mca/snapc/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_snapc" ; then + if test "$DIRECT_snapc" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_snapc" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_snapc_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_snapc" + str="SHARED_COMPONENT=\$DSO_snapc_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_snapc" + str="STATIC_COMPONENT=\$STATIC_snapc_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component snapc:$component compile mode" >&5 +$as_echo_n "checking for MCA component snapc:$component compile mode... " >&6; } + if test "$DIRECT_snapc" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + +# +# Invoke configure in a specific subdirectory. +# +# orte/mca/snapc/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="orte/mca/snapc/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/orte/mca/snapc/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + snapc_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + snapc_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/snapc/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "snapc" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/snapc/$component/lib${ORTE_LIB_PREFIX}mca_snapc_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/snapc/$component/libmca_snapc_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_snapc_$component_component;" >> $outfile.extern + echo " &mca_snapc_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component snapc:$component can compile" >&5 +$as_echo_n "checking if MCA component snapc:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_snapc" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_snapc_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** snapc component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_snapc" = "$component" ; then +as_fn_error $? "*** snapc component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$snapc_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -248228,21 +269828,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $routed_binomial_WRAPPER_EXTRA_LIBS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -248268,18 +269868,8 @@ unset $opal_var done - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$routed_binomial_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : +str="line=\$snapc_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -248319,21 +269909,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $routed_binomial_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -248360,71 +269950,189 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring routed_binomial_WRAPPER_EXTRA_CPPFLAGS ($routed_binomial_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring routed_binomial_WRAPPER_EXTRA_CPPFLAGS ($routed_binomial_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + fi - else + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component routed:binomial can compile" >&5 -$as_echo_n "checking if MCA component routed:binomial can compile... " >&6; } + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component snapc:$component can compile" >&5 +$as_echo_n "checking if MCA component snapc:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_routed" = "binomial" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"binomial\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"binomial\" failed to configure properly" >&2;} + if test "$with_snapc" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_routed" ; then - if test "$DIRECT_routed" = "binomial" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"binomial\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"binomial\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_snapc" ; then + if test "$DIRECT_snapc" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components binomial" - fi + fi + fi + done - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_routed_binomial_DSO=1 - else - BUILD_orte_routed_binomial_DSO=0 - fi - if test "$BUILD_orte_routed_binomial_DSO" = "1"; then - MCA_BUILD_orte_routed_binomial_DSO_TRUE= - MCA_BUILD_orte_routed_binomial_DSO_FALSE='#' -else - MCA_BUILD_orte_routed_binomial_DSO_TRUE='#' - MCA_BUILD_orte_routed_binomial_DSO_FALSE= fi + MCA_orte_snapc_ALL_COMPONENTS="$all_components" + MCA_orte_snapc_STATIC_COMPONENTS="$static_components" + MCA_orte_snapc_DSO_COMPONENTS="$dso_components" + MCA_orte_snapc_STATIC_LTLIBS="$static_ltlibs" - ac_config_files="$ac_config_files orte/mca/routed/binomial/Makefile" - unset compile_mode - opal_show_subsubsubtitle "MCA component routed:direct (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + MCA_orte_snapc_ALL_SUBDIRS= + for item in $all_components ; do + MCA_orte_snapc_ALL_SUBDIRS="$MCA_orte_snapc_ALL_SUBDIRS mca/snapc/$item" + done - component_path="$srcdir/orte/mca/routed/direct" + + + MCA_orte_snapc_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_orte_snapc_STATIC_SUBDIRS="$MCA_orte_snapc_STATIC_SUBDIRS mca/snapc/$item" + done + + + + MCA_orte_snapc_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_orte_snapc_DSO_SUBDIRS="$MCA_orte_snapc_DSO_SUBDIRS mca/snapc/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "snapc" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS sstore" + MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/sstore" + MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_sstore_ALL_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_sstore_DSO_SUBDIRS)" + MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_sstore_STATIC_SUBDIRS)" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/sstore/libmca_sstore.la" + MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_sstore_STATIC_LTLIBS)" + + opal_show_subsubtitle "Configuring MCA framework sstore" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=orte/mca/sstore/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files orte/mca/sstore/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework sstore" >&5 +$as_echo_n "checking for no configure components in framework sstore... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework sstore" >&5 +$as_echo_n "checking for m4 configure components in framework sstore... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: central, stage" >&5 +$as_echo "central, stage" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + + # configure components that use built-in configuration scripts + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + opal_show_subsubsubtitle "MCA component sstore:central (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/orte/mca/sstore/central" want_component=0 # build if: @@ -248456,8 +270164,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_routed" ; then - if test "$DIRECT_routed" = "direct" ; then + if test ! -z "$DIRECT_sstore" ; then + if test "$DIRECT_sstore" = "central" ; then want_component=1 else want_component=0 @@ -248466,25 +270174,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_routed" = "1"; then : + if test "$DISABLE_sstore" = "1"; then : want_component=0 fi - if test "$DISABLE_routed_direct" = "1"; then : + if test "$DISABLE_sstore_central" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_routed" - SHARED_COMPONENT="$DSO_routed_direct" + SHARED_FRAMEWORK="$DSO_sstore" + SHARED_COMPONENT="$DSO_sstore_central" - STATIC_FRAMEWORK="$STATIC_routed" - STATIC_COMPONENT="$STATIC_routed_direct" + STATIC_FRAMEWORK="$STATIC_sstore" + STATIC_COMPONENT="$STATIC_sstore_central" shared_mode_override=static @@ -248502,9 +270212,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component routed:direct compile mode" >&5 -$as_echo_n "checking for MCA component routed:direct compile mode... " >&6; } - if test "$DIRECT_routed" = "direct" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component sstore:central compile mode" >&5 +$as_echo_n "checking for MCA component sstore:central compile mode... " >&6; } + if test "$DIRECT_sstore" = "central" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -248512,53 +270222,66 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files orte/mca/sstore/central/Makefile" + + + # If we don't want FT, don't compile this component + if test "$opal_want_ft_cr" = "1"; then : + should_build=$should_build +else + should_build=0 +fi + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/routed/direct/post_configure.sh" + infile="$srcdir/orte/mca/sstore/central/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components direct" + all_components="$all_components central" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components direct" + dso_components="$dso_components central" else - if test "routed" = "common"; then + if test "sstore" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/routed/direct/lib${ORTE_LIB_PREFIX}mca_routed_direct.la $static_ltlibs" + static_ltlibs="mca/sstore/central/lib${ORTE_LIB_PREFIX}mca_sstore_central.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/routed/direct/libmca_routed_direct.la $static_ltlibs" + static_ltlibs="mca/sstore/central/libmca_sstore_central.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_routed_direct_component;" >> $outfile.extern - echo " &mca_routed_direct_component, " >> $outfile.struct - static_components="$static_components direct" + echo "extern const mca_base_component_t mca_sstore_central_component;" >> $outfile.extern + echo " &mca_sstore_central_component, " >> $outfile.struct + static_components="$static_components central" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component routed:direct can compile" >&5 -$as_echo_n "checking if MCA component routed:direct can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sstore:central can compile" >&5 +$as_echo_n "checking if MCA component sstore:central can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_routed" = "direct" ; then + if test "$DIRECT_sstore" = "central" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_routed_DIRECT_CALL_HEADER=$line" + str="MCA_orte_sstore_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** routed component direct was supposed to be direct-called, but +as_fn_error $? "*** sstore component central was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -248566,8 +270289,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_routed" = "direct" ; then -as_fn_error $? "*** routed component direct was supposed to be direct-called, but + if test "$DIRECT_sstore" = "central" ; then +as_fn_error $? "*** sstore component central was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -248582,7 +270305,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$routed_direct_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$sstore_central_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -248622,7 +270345,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $routed_direct_LDFLAGS; do + for arg in $sstore_central_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -248703,7 +270426,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $routed_direct_WRAPPER_EXTRA_LDFLAGS; do + for arg in $sstore_central_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -248745,7 +270468,7 @@ fi - if test "$routed_direct_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$sstore_central_WRAPPER_EXTRA_LIBS" = ""; then : @@ -248785,7 +270508,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $routed_direct_LIBS; do + for arg in $sstore_central_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -248866,7 +270589,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $routed_direct_WRAPPER_EXTRA_LIBS; do + for arg in $sstore_central_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -248914,7 +270637,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$routed_direct_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$sstore_central_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -248957,7 +270680,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $routed_direct_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $sstore_central_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -249000,69 +270723,78 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring routed_direct_WRAPPER_EXTRA_CPPFLAGS ($routed_direct_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring routed_direct_WRAPPER_EXTRA_CPPFLAGS ($routed_direct_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring sstore_central_WRAPPER_EXTRA_CPPFLAGS ($sstore_central_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring sstore_central_WRAPPER_EXTRA_CPPFLAGS ($sstore_central_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component routed:direct can compile" >&5 -$as_echo_n "checking if MCA component routed:direct can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sstore:central can compile" >&5 +$as_echo_n "checking if MCA component sstore:central can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_routed" = "direct" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"direct\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"direct\" failed to configure properly" >&2;} + if test "$with_sstore" = "central" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"central\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"central\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_routed" ; then - if test "$DIRECT_routed" = "direct" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"direct\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"direct\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_sstore" ; then + if test "$DIRECT_sstore" = "central" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"central\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"central\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components direct" - fi + # add component to all component list + all_components="$all_components central" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_routed_direct_DSO=1 - else - BUILD_orte_routed_direct_DSO=0 - fi - if test "$BUILD_orte_routed_direct_DSO" = "1"; then - MCA_BUILD_orte_routed_direct_DSO_TRUE= - MCA_BUILD_orte_routed_direct_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_orte_sstore_central_DSO=1 else - MCA_BUILD_orte_routed_direct_DSO_TRUE='#' - MCA_BUILD_orte_routed_direct_DSO_FALSE= + BUILD_orte_sstore_central_DSO=0 +fi + if test "$BUILD_orte_sstore_central_DSO" = "1"; then + MCA_BUILD_orte_sstore_central_DSO_TRUE= + MCA_BUILD_orte_sstore_central_DSO_FALSE='#' +else + MCA_BUILD_orte_sstore_central_DSO_TRUE='#' + MCA_BUILD_orte_sstore_central_DSO_FALSE= fi - ac_config_files="$ac_config_files orte/mca/routed/direct/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - opal_show_subsubsubtitle "MCA component routed:radix (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/routed/radix" + opal_show_subsubsubtitle "MCA component sstore:stage (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/orte/mca/sstore/stage" want_component=0 # build if: @@ -249094,8 +270826,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_routed" ; then - if test "$DIRECT_routed" = "radix" ; then + if test ! -z "$DIRECT_sstore" ; then + if test "$DIRECT_sstore" = "stage" ; then want_component=1 else want_component=0 @@ -249104,25 +270836,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_routed" = "1"; then : + if test "$DISABLE_sstore" = "1"; then : want_component=0 fi - if test "$DISABLE_routed_radix" = "1"; then : + if test "$DISABLE_sstore_stage" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_routed" - SHARED_COMPONENT="$DSO_routed_radix" + SHARED_FRAMEWORK="$DSO_sstore" + SHARED_COMPONENT="$DSO_sstore_stage" - STATIC_FRAMEWORK="$STATIC_routed" - STATIC_COMPONENT="$STATIC_routed_radix" + STATIC_FRAMEWORK="$STATIC_sstore" + STATIC_COMPONENT="$STATIC_sstore_stage" shared_mode_override=static @@ -249140,9 +270874,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component routed:radix compile mode" >&5 -$as_echo_n "checking for MCA component routed:radix compile mode... " >&6; } - if test "$DIRECT_routed" = "radix" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component sstore:stage compile mode" >&5 +$as_echo_n "checking for MCA component sstore:stage compile mode... " >&6; } + if test "$DIRECT_sstore" = "stage" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -249150,53 +270884,66 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files orte/mca/sstore/stage/Makefile" + + + # If we don't want FT, don't compile this component + if test "$opal_want_ft_cr" = "1"; then : + should_build=$should_build +else + should_build=0 +fi + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/routed/radix/post_configure.sh" + infile="$srcdir/orte/mca/sstore/stage/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components radix" + all_components="$all_components stage" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components radix" + dso_components="$dso_components stage" else - if test "routed" = "common"; then + if test "sstore" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/routed/radix/lib${ORTE_LIB_PREFIX}mca_routed_radix.la $static_ltlibs" + static_ltlibs="mca/sstore/stage/lib${ORTE_LIB_PREFIX}mca_sstore_stage.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/routed/radix/libmca_routed_radix.la $static_ltlibs" + static_ltlibs="mca/sstore/stage/libmca_sstore_stage.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_routed_radix_component;" >> $outfile.extern - echo " &mca_routed_radix_component, " >> $outfile.struct - static_components="$static_components radix" + echo "extern const mca_base_component_t mca_sstore_stage_component;" >> $outfile.extern + echo " &mca_sstore_stage_component, " >> $outfile.struct + static_components="$static_components stage" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component routed:radix can compile" >&5 -$as_echo_n "checking if MCA component routed:radix can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sstore:stage can compile" >&5 +$as_echo_n "checking if MCA component sstore:stage can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_routed" = "radix" ; then + if test "$DIRECT_sstore" = "stage" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_routed_DIRECT_CALL_HEADER=$line" + str="MCA_orte_sstore_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** routed component radix was supposed to be direct-called, but +as_fn_error $? "*** sstore component stage was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -249204,8 +270951,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_routed" = "radix" ; then -as_fn_error $? "*** routed component radix was supposed to be direct-called, but + if test "$DIRECT_sstore" = "stage" ; then +as_fn_error $? "*** sstore component stage was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -249220,7 +270967,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$routed_radix_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$sstore_stage_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -249260,7 +271007,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $routed_radix_LDFLAGS; do + for arg in $sstore_stage_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -249341,7 +271088,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $routed_radix_WRAPPER_EXTRA_LDFLAGS; do + for arg in $sstore_stage_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -249383,7 +271130,7 @@ fi - if test "$routed_radix_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$sstore_stage_WRAPPER_EXTRA_LIBS" = ""; then : @@ -249423,7 +271170,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $routed_radix_LIBS; do + for arg in $sstore_stage_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -249504,7 +271251,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $routed_radix_WRAPPER_EXTRA_LIBS; do + for arg in $sstore_stage_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -249552,7 +271299,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$routed_radix_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$sstore_stage_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -249595,7 +271342,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $routed_radix_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $sstore_stage_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -249638,70 +271385,69 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring routed_radix_WRAPPER_EXTRA_CPPFLAGS ($routed_radix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring routed_radix_WRAPPER_EXTRA_CPPFLAGS ($routed_radix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring sstore_stage_WRAPPER_EXTRA_CPPFLAGS ($sstore_stage_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring sstore_stage_WRAPPER_EXTRA_CPPFLAGS ($sstore_stage_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component routed:radix can compile" >&5 -$as_echo_n "checking if MCA component routed:radix can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sstore:stage can compile" >&5 +$as_echo_n "checking if MCA component sstore:stage can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_routed" = "radix" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"radix\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"radix\" failed to configure properly" >&2;} + if test "$with_sstore" = "stage" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"stage\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"stage\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_routed" ; then - if test "$DIRECT_routed" = "radix" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"radix\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"radix\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_sstore" ; then + if test "$DIRECT_sstore" = "stage" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"stage\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"stage\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components radix" - fi + # add component to all component list + all_components="$all_components stage" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_routed_radix_DSO=1 - else - BUILD_orte_routed_radix_DSO=0 - fi - if test "$BUILD_orte_routed_radix_DSO" = "1"; then - MCA_BUILD_orte_routed_radix_DSO_TRUE= - MCA_BUILD_orte_routed_radix_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_orte_sstore_stage_DSO=1 +else + BUILD_orte_sstore_stage_DSO=0 +fi + if test "$BUILD_orte_sstore_stage_DSO" = "1"; then + MCA_BUILD_orte_sstore_stage_DSO_TRUE= + MCA_BUILD_orte_sstore_stage_DSO_FALSE='#' else - MCA_BUILD_orte_routed_radix_DSO_TRUE='#' - MCA_BUILD_orte_routed_radix_DSO_FALSE= + MCA_BUILD_orte_sstore_stage_DSO_TRUE='#' + MCA_BUILD_orte_sstore_stage_DSO_FALSE= fi - ac_config_files="$ac_config_files orte/mca/routed/radix/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - # configure components that use built-in configuration scripts - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 # configure components that provide their own configure script. @@ -249712,16 +271458,16 @@ if test "1" != "0"; then : - for component_path in $srcdir/orte/mca/routed/* ; do + for component_path in $srcdir/orte/mca/sstore/* ; do component="`basename $component_path`" if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component routed:$component (need to configure)" + opal_show_subsubsubtitle "MCA component sstore:$component (need to configure)" opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/orte/mca/routed/$component" + component_path="$srcdir/orte/mca/sstore/$component" want_component=0 # build if: @@ -249753,8 +271499,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_routed" ; then - if test "$DIRECT_routed" = "$component" ; then + if test ! -z "$DIRECT_sstore" ; then + if test "$DIRECT_sstore" = "$component" ; then want_component=1 else want_component=0 @@ -249763,10 +271509,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_routed" = "1"; then : + if test "$DISABLE_sstore" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_routed_$component" + str="DISABLED_COMPONENT_CHECK=\$DISABLE_sstore_$component" eval $str if test "$DISABLED_COMPONENT_CHECK" = "1" ; then want_component=0 @@ -249779,12 +271525,12 @@ fi - SHARED_FRAMEWORK="$DSO_routed" - str="SHARED_COMPONENT=\$DSO_routed_$component" + SHARED_FRAMEWORK="$DSO_sstore" + str="SHARED_COMPONENT=\$DSO_sstore_$component" eval $str - STATIC_FRAMEWORK="$STATIC_routed" - str="STATIC_COMPONENT=\$STATIC_routed_$component" + STATIC_FRAMEWORK="$STATIC_sstore" + str="STATIC_COMPONENT=\$STATIC_sstore_$component" eval $str shared_mode_override=static @@ -249803,9 +271549,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component routed:$component compile mode" >&5 -$as_echo_n "checking for MCA component routed:$component compile mode... " >&6; } - if test "$DIRECT_routed" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component sstore:$component compile mode" >&5 +$as_echo_n "checking for MCA component sstore:$component compile mode... " >&6; } + if test "$DIRECT_sstore" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -249858,12 +271604,12 @@ # # Invoke configure in a specific subdirectory. # -# orte/mca/routed/$component is the directory to invoke in +# orte/mca/sstore/$component is the directory to invoke in # $opal_subdir_args is the list of arguments to pass # should_build=1 is actions to execute upon success # should_build=0 is actions to execute upon failure # -subdir_dir="orte/mca/routed/$component" +subdir_dir="orte/mca/sstore/$component" subdir_args="$opal_subdir_args" subdir_success="should_build=1" subdir_failure="should_build=0" @@ -250007,7 +271753,7 @@ # do some extra work to pass flags back from the # top-level configure, the way a configure.m4 # component would. - infile="$srcdir/orte/mca/routed/all_components/post_configure.sh" + infile="$srcdir/orte/mca/sstore/all_components/post_configure.sh" if test -f $infile; then # First check for the ABORT tag @@ -250021,12 +271767,12 @@ line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - routed_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + sstore_all_components_WRAPPER_EXTRA_LDFLAGS="$line" fi line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - routed_all_components_WRAPPER_EXTRA_LIBS="$line" + sstore_all_components_WRAPPER_EXTRA_LIBS="$line" fi fi @@ -250035,7 +271781,7 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/routed/$component/post_configure.sh" + infile="$srcdir/orte/mca/sstore/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs all_components="$all_components $component" @@ -250043,37 +271789,37 @@ if test "$compile_mode" = "dso" ; then dso_components="$dso_components $component" else - if test "routed" = "common"; then + if test "sstore" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/routed/$component/lib${ORTE_LIB_PREFIX}mca_routed_$component.la $static_ltlibs" + static_ltlibs="mca/sstore/$component/lib${ORTE_LIB_PREFIX}mca_sstore_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/routed/$component/libmca_routed_$component.la $static_ltlibs" + static_ltlibs="mca/sstore/$component/libmca_sstore_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_routed_$component_component;" >> $outfile.extern - echo " &mca_routed_$component_component, " >> $outfile.struct + echo "extern const mca_base_component_t mca_sstore_$component_component;" >> $outfile.extern + echo " &mca_sstore_$component_component, " >> $outfile.struct static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component routed:$component can compile" >&5 -$as_echo_n "checking if MCA component routed:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sstore:$component can compile" >&5 +$as_echo_n "checking if MCA component sstore:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_routed" = "$component" ; then + if test "$DIRECT_sstore" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_routed_DIRECT_CALL_HEADER=$line" + str="MCA_orte_sstore_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** routed component $component was supposed to be direct-called, but +as_fn_error $? "*** sstore component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -250081,8 +271827,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_routed" = "$component" ; then -as_fn_error $? "*** routed component $component was supposed to be direct-called, but + if test "$DIRECT_sstore" = "$component" ; then +as_fn_error $? "*** sstore component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -250097,7 +271843,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$routed_$component_WRAPPER_EXTRA_LDFLAGS" + str="line=\$sstore_$component_WRAPPER_EXTRA_LDFLAGS" eval "$str" @@ -250178,7 +271924,7 @@ unset $opal_var done -str="line=\$routed_$component_WRAPPER_EXTRA_LIBS" +str="line=\$sstore_$component_WRAPPER_EXTRA_LIBS" eval "$str" @@ -250269,14 +272015,14 @@ else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component routed:$component can compile" >&5 -$as_echo_n "checking if MCA component routed:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sstore:$component can compile" >&5 +$as_echo_n "checking if MCA component sstore:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_routed" = "$component" ; then + if test "$with_sstore" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 @@ -250284,8 +272030,8 @@ as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_routed" ; then - if test "$DIRECT_routed" = "$component" ; then + if test ! -z "$DIRECT_sstore" ; then + if test "$DIRECT_sstore" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 @@ -250300,10 +272046,10 @@ fi - MCA_orte_routed_ALL_COMPONENTS="$all_components" - MCA_orte_routed_STATIC_COMPONENTS="$static_components" - MCA_orte_routed_DSO_COMPONENTS="$dso_components" - MCA_orte_routed_STATIC_LTLIBS="$static_ltlibs" + MCA_orte_sstore_ALL_COMPONENTS="$all_components" + MCA_orte_sstore_STATIC_COMPONENTS="$static_components" + MCA_orte_sstore_DSO_COMPONENTS="$dso_components" + MCA_orte_sstore_STATIC_LTLIBS="$static_ltlibs" @@ -250311,23 +272057,23 @@ - MCA_orte_routed_ALL_SUBDIRS= + MCA_orte_sstore_ALL_SUBDIRS= for item in $all_components ; do - MCA_orte_routed_ALL_SUBDIRS="$MCA_orte_routed_ALL_SUBDIRS mca/routed/$item" + MCA_orte_sstore_ALL_SUBDIRS="$MCA_orte_sstore_ALL_SUBDIRS mca/sstore/$item" done - MCA_orte_routed_STATIC_SUBDIRS= + MCA_orte_sstore_STATIC_SUBDIRS= for item in $static_components ; do - MCA_orte_routed_STATIC_SUBDIRS="$MCA_orte_routed_STATIC_SUBDIRS mca/routed/$item" + MCA_orte_sstore_STATIC_SUBDIRS="$MCA_orte_sstore_STATIC_SUBDIRS mca/sstore/$item" done - MCA_orte_routed_DSO_SUBDIRS= + MCA_orte_sstore_DSO_SUBDIRS= for item in $dso_components ; do - MCA_orte_routed_DSO_SUBDIRS="$MCA_orte_routed_DSO_SUBDIRS mca/routed/$item" + MCA_orte_sstore_DSO_SUBDIRS="$MCA_orte_sstore_DSO_SUBDIRS mca/sstore/$item" done @@ -250335,7 +272081,7 @@ # Create the final .h file that will be included in the type's # top-level glue. This lists all the static components. We don't # need to do this for "common". - if test "routed" != "common"; then + if test "sstore" != "common"; then cat > $outfile <&5 -$as_echo_n "checking for no configure components in framework rtc... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: hwloc" >&5 -$as_echo "hwloc" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework rtc" >&5 -$as_echo_n "checking for m4 configure components in framework rtc... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework state" >&5 +$as_echo_n "checking for no configure components in framework state... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: app, hnp, novm, orted, tool" >&5 +$as_echo "app, hnp, novm, orted, tool" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework state" >&5 +$as_echo_n "checking for m4 configure components in framework state... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } @@ -250426,13 +272172,13 @@ # run the configure logic for the no-config components - opal_show_subsubsubtitle "MCA component rtc:hwloc (no configuration)" + opal_show_subsubsubtitle "MCA component state:app (no configuration)" opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/rtc/hwloc" + component_path="$srcdir/orte/mca/state/app" want_component=0 # build if: @@ -250464,8 +272210,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rtc" ; then - if test "$DIRECT_rtc" = "hwloc" ; then + if test ! -z "$DIRECT_state" ; then + if test "$DIRECT_state" = "app" ; then want_component=1 else want_component=0 @@ -250474,10 +272220,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_rtc" = "1"; then : + if test "$DISABLE_state" = "1"; then : want_component=0 fi - if test "$DISABLE_rtc_hwloc" = "1"; then : + if test "$DISABLE_state_app" = "1"; then : want_component=0 fi @@ -250488,11 +272234,11 @@ fi - SHARED_FRAMEWORK="$DSO_rtc" - SHARED_COMPONENT="$DSO_rtc_hwloc" + SHARED_FRAMEWORK="$DSO_state" + SHARED_COMPONENT="$DSO_state_app" - STATIC_FRAMEWORK="$STATIC_rtc" - STATIC_COMPONENT="$STATIC_rtc_hwloc" + STATIC_FRAMEWORK="$STATIC_state" + STATIC_COMPONENT="$STATIC_state_app" shared_mode_override=static @@ -250510,9 +272256,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rtc:hwloc compile mode" >&5 -$as_echo_n "checking for MCA component rtc:hwloc compile mode... " >&6; } - if test "$DIRECT_rtc" = "hwloc" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component state:app compile mode" >&5 +$as_echo_n "checking for MCA component state:app compile mode... " >&6; } + if test "$DIRECT_state" = "app" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -250528,45 +272274,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/rtc/hwloc/post_configure.sh" + infile="$srcdir/orte/mca/state/app/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components hwloc" + all_components="$all_components app" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components hwloc" + dso_components="$dso_components app" else - if test "rtc" = "common"; then + if test "state" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/rtc/hwloc/lib${ORTE_LIB_PREFIX}mca_rtc_hwloc.la $static_ltlibs" + static_ltlibs="mca/state/app/lib${ORTE_LIB_PREFIX}mca_state_app.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rtc/hwloc/libmca_rtc_hwloc.la $static_ltlibs" + static_ltlibs="mca/state/app/libmca_state_app.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_rtc_hwloc_component;" >> $outfile.extern - echo " &mca_rtc_hwloc_component, " >> $outfile.struct - static_components="$static_components hwloc" + echo "extern const mca_base_component_t mca_state_app_component;" >> $outfile.extern + echo " &mca_state_app_component, " >> $outfile.struct + static_components="$static_components app" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rtc:hwloc can compile" >&5 -$as_echo_n "checking if MCA component rtc:hwloc can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:app can compile" >&5 +$as_echo_n "checking if MCA component state:app can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_rtc" = "hwloc" ; then + if test "$DIRECT_state" = "app" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_rtc_DIRECT_CALL_HEADER=$line" + str="MCA_orte_state_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** rtc component hwloc was supposed to be direct-called, but +as_fn_error $? "*** state component app was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -250574,8 +272320,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rtc" = "hwloc" ; then -as_fn_error $? "*** rtc component hwloc was supposed to be direct-called, but + if test "$DIRECT_state" = "app" ; then +as_fn_error $? "*** state component app was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -250590,7 +272336,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$rtc_hwloc_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$state_app_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -250630,7 +272376,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rtc_hwloc_LDFLAGS; do + for arg in $state_app_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -250711,7 +272457,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rtc_hwloc_WRAPPER_EXTRA_LDFLAGS; do + for arg in $state_app_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -250753,7 +272499,7 @@ fi - if test "$rtc_hwloc_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$state_app_WRAPPER_EXTRA_LIBS" = ""; then : @@ -250793,7 +272539,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rtc_hwloc_LIBS; do + for arg in $state_app_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -250874,7 +272620,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rtc_hwloc_WRAPPER_EXTRA_LIBS; do + for arg in $state_app_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -250922,7 +272668,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$rtc_hwloc_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$state_app_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -250965,7 +272711,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rtc_hwloc_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $state_app_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -251008,32 +272754,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rtc_hwloc_WRAPPER_EXTRA_CPPFLAGS ($rtc_hwloc_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring rtc_hwloc_WRAPPER_EXTRA_CPPFLAGS ($rtc_hwloc_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring state_app_WRAPPER_EXTRA_CPPFLAGS ($state_app_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring state_app_WRAPPER_EXTRA_CPPFLAGS ($state_app_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rtc:hwloc can compile" >&5 -$as_echo_n "checking if MCA component rtc:hwloc can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:app can compile" >&5 +$as_echo_n "checking if MCA component state:app can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_rtc" = "hwloc" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hwloc\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"hwloc\" failed to configure properly" >&2;} + if test "$with_state" = "app" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"app\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"app\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_rtc" ; then - if test "$DIRECT_rtc" = "hwloc" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hwloc\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"hwloc\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_state" ; then + if test "$DIRECT_state" = "app" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"app\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"app\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -251041,57 +272787,36 @@ fi # add component to all component list - all_components="$all_components hwloc" + all_components="$all_components app" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso" ; then - BUILD_orte_rtc_hwloc_DSO=1 + BUILD_orte_state_app_DSO=1 else - BUILD_orte_rtc_hwloc_DSO=0 + BUILD_orte_state_app_DSO=0 fi - if test "$BUILD_orte_rtc_hwloc_DSO" = "1"; then - MCA_BUILD_orte_rtc_hwloc_DSO_TRUE= - MCA_BUILD_orte_rtc_hwloc_DSO_FALSE='#' + if test "$BUILD_orte_state_app_DSO" = "1"; then + MCA_BUILD_orte_state_app_DSO_TRUE= + MCA_BUILD_orte_state_app_DSO_FALSE='#' else - MCA_BUILD_orte_rtc_hwloc_DSO_TRUE='#' - MCA_BUILD_orte_rtc_hwloc_DSO_FALSE= + MCA_BUILD_orte_state_app_DSO_TRUE='#' + MCA_BUILD_orte_state_app_DSO_FALSE= fi - ac_config_files="$ac_config_files orte/mca/rtc/hwloc/Makefile" + ac_config_files="$ac_config_files orte/mca/state/app/Makefile" unset compile_mode + opal_show_subsubsubtitle "MCA component state:hnp (no configuration)" - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - - if test "1" != "0"; then : - - for component_path in $srcdir/orte/mca/rtc/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component rtc:$component (need to configure)" - - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/rtc/$component" + component_path="$srcdir/orte/mca/state/hnp" want_component=0 # build if: @@ -251123,8 +272848,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rtc" ; then - if test "$DIRECT_rtc" = "$component" ; then + if test ! -z "$DIRECT_state" ; then + if test "$DIRECT_state" = "hnp" ; then want_component=1 else want_component=0 @@ -251133,14 +272858,12 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_rtc" = "1"; then : + if test "$DISABLE_state" = "1"; then : + want_component=0 +fi + if test "$DISABLE_state_hnp" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_rtc_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi if test "$want_component" = "1"; then : should_build=1 @@ -251149,13 +272872,11 @@ fi - SHARED_FRAMEWORK="$DSO_rtc" - str="SHARED_COMPONENT=\$DSO_rtc_$component" - eval $str + SHARED_FRAMEWORK="$DSO_state" + SHARED_COMPONENT="$DSO_state_hnp" - STATIC_FRAMEWORK="$STATIC_rtc" - str="STATIC_COMPONENT=\$STATIC_rtc_$component" - eval $str + STATIC_FRAMEWORK="$STATIC_state" + STATIC_COMPONENT="$STATIC_state_hnp" shared_mode_override=static @@ -251173,9 +272894,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rtc:$component compile mode" >&5 -$as_echo_n "checking for MCA component rtc:$component compile mode... " >&6; } - if test "$DIRECT_rtc" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component state:hnp compile mode" >&5 +$as_echo_n "checking for MCA component state:hnp compile mode... " >&6; } + if test "$DIRECT_state" = "hnp" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -251183,9 +272904,77 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/state/hnp/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components hnp" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components hnp" + else + if test "state" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/state/hnp/lib${ORTE_LIB_PREFIX}mca_state_hnp.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/state/hnp/libmca_state_hnp.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_state_hnp_component;" >> $outfile.extern + echo " &mca_state_hnp_component, " >> $outfile.struct + static_components="$static_components hnp" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:hnp can compile" >&5 +$as_echo_n "checking if MCA component state:hnp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_state" = "hnp" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_state_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** state component hnp was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_state" = "hnp" ; then +as_fn_error $? "*** state component hnp was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$state_hnp_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -251198,7 +272987,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -251217,7 +273006,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -251225,129 +273014,187 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# orte/mca/rtc/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="orte/mca/rtc/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + for arg in $state_hnp_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done -# -# Sanity checks -# -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - # - # Move into the target directory - # +else - subdir_parent=`pwd` - cd $subdir_dir - # - # Make a "../" for each directory in $subdir_dir. - # - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # - # Construct the --cache-file argument - # + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - # - # Invoke the configure script in the subdirectory - # + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + + for arg in $state_hnp_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # - # Go back to the topdir - # + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + - cd $subdir_parent fi + if test "$state_hnp_WRAPPER_EXTRA_LIBS" = ""; then : -# -# Clean up -# + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $state_hnp_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done # Unwind the index @@ -251370,80 +273217,378 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $state_hnp_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$state_hnp_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $state_hnp_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring state_hnp_WRAPPER_EXTRA_CPPFLAGS ($state_hnp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring state_hnp_WRAPPER_EXTRA_CPPFLAGS ($state_hnp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:hnp can compile" >&5 +$as_echo_n "checking if MCA component state:hnp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_state" = "hnp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hnp\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"hnp\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_state" ; then + if test "$DIRECT_state" = "hnp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hnp\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"hnp\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components hnp" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_state_hnp_DSO=1 + else + BUILD_orte_state_hnp_DSO=0 + fi + if test "$BUILD_orte_state_hnp_DSO" = "1"; then + MCA_BUILD_orte_state_hnp_DSO_TRUE= + MCA_BUILD_orte_state_hnp_DSO_FALSE='#' +else + MCA_BUILD_orte_state_hnp_DSO_TRUE='#' + MCA_BUILD_orte_state_hnp_DSO_FALSE= +fi + + + ac_config_files="$ac_config_files orte/mca/state/hnp/Makefile" + + + unset compile_mode + + opal_show_subsubsubtitle "MCA component state:novm (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/orte/mca/state/novm" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_state" ; then + if test "$DIRECT_state" = "novm" ; then + want_component=1 + else + want_component=0 fi + fi + fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/orte/mca/rtc/all_components/post_configure.sh" - if test -f $infile; then + # if we were explicitly disabled, don't build :) + if test "$DISABLE_state" = "1"; then : + want_component=0 +fi + if test "$DISABLE_state_novm" = "1"; then : + want_component=0 +fi - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - rtc_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - rtc_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + SHARED_FRAMEWORK="$DSO_state" + SHARED_COMPONENT="$DSO_state_novm" + + STATIC_FRAMEWORK="$STATIC_state" + STATIC_COMPONENT="$STATIC_state_novm" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component state:novm compile mode" >&5 +$as_echo_n "checking for MCA component state:novm compile mode... " >&6; } + if test "$DIRECT_state" = "novm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/rtc/$component/post_configure.sh" + infile="$srcdir/orte/mca/state/novm/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + all_components="$all_components novm" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" + dso_components="$dso_components novm" else - if test "rtc" = "common"; then + if test "state" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/rtc/$component/lib${ORTE_LIB_PREFIX}mca_rtc_$component.la $static_ltlibs" + static_ltlibs="mca/state/novm/lib${ORTE_LIB_PREFIX}mca_state_novm.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rtc/$component/libmca_rtc_$component.la $static_ltlibs" + static_ltlibs="mca/state/novm/libmca_state_novm.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_rtc_$component_component;" >> $outfile.extern - echo " &mca_rtc_$component_component, " >> $outfile.struct - static_components="$static_components $component" + echo "extern const mca_base_component_t mca_state_novm_component;" >> $outfile.extern + echo " &mca_state_novm_component, " >> $outfile.struct + static_components="$static_components novm" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rtc:$component can compile" >&5 -$as_echo_n "checking if MCA component rtc:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:novm can compile" >&5 +$as_echo_n "checking if MCA component state:novm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_rtc" = "$component" ; then + if test "$DIRECT_state" = "novm" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_rtc_DIRECT_CALL_HEADER=$line" + str="MCA_orte_state_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** rtc component $component was supposed to be direct-called, but +as_fn_error $? "*** state component novm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -251451,8 +273596,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rtc" = "$component" ; then -as_fn_error $? "*** rtc component $component was supposed to be direct-called, but + if test "$DIRECT_state" = "novm" ; then +as_fn_error $? "*** state component novm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -251467,8 +273612,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$rtc_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + if test "$state_novm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -251508,7 +273652,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $state_novm_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -251548,8 +273692,8 @@ unset $opal_var done -str="line=\$rtc_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + +else @@ -251589,21 +273733,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $state_novm_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -251630,179 +273774,325 @@ done - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - +fi + if test "$state_novm_WRAPPER_EXTRA_LIBS" = ""; then : - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rtc:$component can compile" >&5 -$as_echo_n "checking if MCA component rtc:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_rtc" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - if test ! -z "$DIRECT_rtc" ; then - if test "$DIRECT_rtc" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $state_novm_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi fi + done - MCA_orte_rtc_ALL_COMPONENTS="$all_components" - MCA_orte_rtc_STATIC_COMPONENTS="$static_components" - MCA_orte_rtc_DSO_COMPONENTS="$dso_components" - MCA_orte_rtc_STATIC_LTLIBS="$static_ltlibs" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done +else - MCA_orte_rtc_ALL_SUBDIRS= - for item in $all_components ; do - MCA_orte_rtc_ALL_SUBDIRS="$MCA_orte_rtc_ALL_SUBDIRS mca/rtc/$item" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - MCA_orte_rtc_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_orte_rtc_STATIC_SUBDIRS="$MCA_orte_rtc_STATIC_SUBDIRS mca/rtc/$item" + for arg in $state_novm_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - MCA_orte_rtc_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_orte_rtc_DSO_SUBDIRS="$MCA_orte_rtc_DSO_SUBDIRS mca/rtc/$item" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done +fi - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "rtc" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - rm -f $outfile.struct $outfile.extern - unset all_components static_components dso_components outfile outfile_real + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS schizo" - MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/schizo" - MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_schizo_ALL_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_schizo_DSO_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_schizo_STATIC_SUBDIRS)" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/schizo/libmca_schizo.la" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_schizo_STATIC_LTLIBS)" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - opal_show_subsubtitle "Configuring MCA framework schizo" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + for arg in $state_novm_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=orte/mca/schizo/base - as_dir=$outdir; as_fn_mkdir_p + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # emit Makefile rule - ac_config_files="$ac_config_files orte/mca/schizo/Makefile" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework schizo" >&5 -$as_echo_n "checking for no configure components in framework schizo... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: flux, ompi, orte" >&5 -$as_echo "flux, ompi, orte" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework schizo" >&5 -$as_echo_n "checking for m4 configure components in framework schizo... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: alps, moab, singularity, slurm" >&5 -$as_echo "alps, moab, singularity, slurm" >&6; } +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring state_novm_WRAPPER_EXTRA_CPPFLAGS ($state_novm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring state_novm_WRAPPER_EXTRA_CPPFLAGS ($state_novm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:novm can compile" >&5 +$as_echo_n "checking if MCA component state:novm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # If this component was requested as the default for this + # type, then abort. + if test "$with_state" = "novm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"novm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"novm\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # run the configure logic for the no-config components + if test ! -z "$DIRECT_state" ; then + if test "$DIRECT_state" = "novm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"novm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"novm\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components novm" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_orte_state_novm_DSO=1 + else + BUILD_orte_state_novm_DSO=0 + fi + if test "$BUILD_orte_state_novm_DSO" = "1"; then + MCA_BUILD_orte_state_novm_DSO_TRUE= + MCA_BUILD_orte_state_novm_DSO_FALSE='#' +else + MCA_BUILD_orte_state_novm_DSO_TRUE='#' + MCA_BUILD_orte_state_novm_DSO_FALSE= +fi - opal_show_subsubsubtitle "MCA component schizo:flux (no configuration)" + + ac_config_files="$ac_config_files orte/mca/state/novm/Makefile" + + + unset compile_mode + + opal_show_subsubsubtitle "MCA component state:orted (no configuration)" opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/schizo/flux" + component_path="$srcdir/orte/mca/state/orted" want_component=0 # build if: @@ -251834,8 +274124,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_schizo" ; then - if test "$DIRECT_schizo" = "flux" ; then + if test ! -z "$DIRECT_state" ; then + if test "$DIRECT_state" = "orted" ; then want_component=1 else want_component=0 @@ -251844,10 +274134,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_schizo" = "1"; then : + if test "$DISABLE_state" = "1"; then : want_component=0 fi - if test "$DISABLE_schizo_flux" = "1"; then : + if test "$DISABLE_state_orted" = "1"; then : want_component=0 fi @@ -251858,11 +274148,11 @@ fi - SHARED_FRAMEWORK="$DSO_schizo" - SHARED_COMPONENT="$DSO_schizo_flux" + SHARED_FRAMEWORK="$DSO_state" + SHARED_COMPONENT="$DSO_state_orted" - STATIC_FRAMEWORK="$STATIC_schizo" - STATIC_COMPONENT="$STATIC_schizo_flux" + STATIC_FRAMEWORK="$STATIC_state" + STATIC_COMPONENT="$STATIC_state_orted" shared_mode_override=static @@ -251880,9 +274170,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component schizo:flux compile mode" >&5 -$as_echo_n "checking for MCA component schizo:flux compile mode... " >&6; } - if test "$DIRECT_schizo" = "flux" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component state:orted compile mode" >&5 +$as_echo_n "checking for MCA component state:orted compile mode... " >&6; } + if test "$DIRECT_state" = "orted" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -251898,45 +274188,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/schizo/flux/post_configure.sh" + infile="$srcdir/orte/mca/state/orted/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components flux" + all_components="$all_components orted" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components flux" + dso_components="$dso_components orted" else - if test "schizo" = "common"; then + if test "state" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/schizo/flux/lib${ORTE_LIB_PREFIX}mca_schizo_flux.la $static_ltlibs" + static_ltlibs="mca/state/orted/lib${ORTE_LIB_PREFIX}mca_state_orted.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/schizo/flux/libmca_schizo_flux.la $static_ltlibs" + static_ltlibs="mca/state/orted/libmca_state_orted.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_schizo_flux_component;" >> $outfile.extern - echo " &mca_schizo_flux_component, " >> $outfile.struct - static_components="$static_components flux" + echo "extern const mca_base_component_t mca_state_orted_component;" >> $outfile.extern + echo " &mca_state_orted_component, " >> $outfile.struct + static_components="$static_components orted" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:flux can compile" >&5 -$as_echo_n "checking if MCA component schizo:flux can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:orted can compile" >&5 +$as_echo_n "checking if MCA component state:orted can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_schizo" = "flux" ; then + if test "$DIRECT_state" = "orted" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_schizo_DIRECT_CALL_HEADER=$line" + str="MCA_orte_state_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** schizo component flux was supposed to be direct-called, but +as_fn_error $? "*** state component orted was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -251944,8 +274234,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_schizo" = "flux" ; then -as_fn_error $? "*** schizo component flux was supposed to be direct-called, but + if test "$DIRECT_state" = "orted" ; then +as_fn_error $? "*** state component orted was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -251960,7 +274250,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$schizo_flux_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$state_orted_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -252000,7 +274290,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_flux_LDFLAGS; do + for arg in $state_orted_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -252081,7 +274371,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_flux_WRAPPER_EXTRA_LDFLAGS; do + for arg in $state_orted_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -252123,7 +274413,7 @@ fi - if test "$schizo_flux_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$state_orted_WRAPPER_EXTRA_LIBS" = ""; then : @@ -252163,7 +274453,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_flux_LIBS; do + for arg in $state_orted_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -252244,7 +274534,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_flux_WRAPPER_EXTRA_LIBS; do + for arg in $state_orted_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -252292,7 +274582,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$schizo_flux_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$state_orted_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -252335,7 +274625,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_flux_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $state_orted_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -252378,32 +274668,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring schizo_flux_WRAPPER_EXTRA_CPPFLAGS ($schizo_flux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring schizo_flux_WRAPPER_EXTRA_CPPFLAGS ($schizo_flux_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring state_orted_WRAPPER_EXTRA_CPPFLAGS ($state_orted_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring state_orted_WRAPPER_EXTRA_CPPFLAGS ($state_orted_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:flux can compile" >&5 -$as_echo_n "checking if MCA component schizo:flux can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:orted can compile" >&5 +$as_echo_n "checking if MCA component state:orted can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_schizo" = "flux" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"flux\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"flux\" failed to configure properly" >&2;} + if test "$with_state" = "orted" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"orted\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"orted\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_schizo" ; then - if test "$DIRECT_schizo" = "flux" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"flux\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"flux\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_state" ; then + if test "$DIRECT_state" = "orted" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"orted\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"orted\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -252411,36 +274701,36 @@ fi # add component to all component list - all_components="$all_components flux" + all_components="$all_components orted" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso" ; then - BUILD_orte_schizo_flux_DSO=1 + BUILD_orte_state_orted_DSO=1 else - BUILD_orte_schizo_flux_DSO=0 + BUILD_orte_state_orted_DSO=0 fi - if test "$BUILD_orte_schizo_flux_DSO" = "1"; then - MCA_BUILD_orte_schizo_flux_DSO_TRUE= - MCA_BUILD_orte_schizo_flux_DSO_FALSE='#' + if test "$BUILD_orte_state_orted_DSO" = "1"; then + MCA_BUILD_orte_state_orted_DSO_TRUE= + MCA_BUILD_orte_state_orted_DSO_FALSE='#' else - MCA_BUILD_orte_schizo_flux_DSO_TRUE='#' - MCA_BUILD_orte_schizo_flux_DSO_FALSE= + MCA_BUILD_orte_state_orted_DSO_TRUE='#' + MCA_BUILD_orte_state_orted_DSO_FALSE= fi - ac_config_files="$ac_config_files orte/mca/schizo/flux/Makefile" + ac_config_files="$ac_config_files orte/mca/state/orted/Makefile" unset compile_mode - opal_show_subsubsubtitle "MCA component schizo:ompi (no configuration)" + opal_show_subsubsubtitle "MCA component state:tool (no configuration)" opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/schizo/ompi" + component_path="$srcdir/orte/mca/state/tool" want_component=0 # build if: @@ -252472,8 +274762,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_schizo" ; then - if test "$DIRECT_schizo" = "ompi" ; then + if test ! -z "$DIRECT_state" ; then + if test "$DIRECT_state" = "tool" ; then want_component=1 else want_component=0 @@ -252482,10 +274772,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_schizo" = "1"; then : + if test "$DISABLE_state" = "1"; then : want_component=0 fi - if test "$DISABLE_schizo_ompi" = "1"; then : + if test "$DISABLE_state_tool" = "1"; then : want_component=0 fi @@ -252496,11 +274786,11 @@ fi - SHARED_FRAMEWORK="$DSO_schizo" - SHARED_COMPONENT="$DSO_schizo_ompi" + SHARED_FRAMEWORK="$DSO_state" + SHARED_COMPONENT="$DSO_state_tool" - STATIC_FRAMEWORK="$STATIC_schizo" - STATIC_COMPONENT="$STATIC_schizo_ompi" + STATIC_FRAMEWORK="$STATIC_state" + STATIC_COMPONENT="$STATIC_state_tool" shared_mode_override=static @@ -252518,9 +274808,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component schizo:ompi compile mode" >&5 -$as_echo_n "checking for MCA component schizo:ompi compile mode... " >&6; } - if test "$DIRECT_schizo" = "ompi" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component state:tool compile mode" >&5 +$as_echo_n "checking for MCA component state:tool compile mode... " >&6; } + if test "$DIRECT_state" = "tool" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -252536,45 +274826,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/schizo/ompi/post_configure.sh" + infile="$srcdir/orte/mca/state/tool/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ompi" + all_components="$all_components tool" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ompi" + dso_components="$dso_components tool" else - if test "schizo" = "common"; then + if test "state" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/schizo/ompi/lib${ORTE_LIB_PREFIX}mca_schizo_ompi.la $static_ltlibs" + static_ltlibs="mca/state/tool/lib${ORTE_LIB_PREFIX}mca_state_tool.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/schizo/ompi/libmca_schizo_ompi.la $static_ltlibs" + static_ltlibs="mca/state/tool/libmca_state_tool.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_schizo_ompi_component;" >> $outfile.extern - echo " &mca_schizo_ompi_component, " >> $outfile.struct - static_components="$static_components ompi" + echo "extern const mca_base_component_t mca_state_tool_component;" >> $outfile.extern + echo " &mca_state_tool_component, " >> $outfile.struct + static_components="$static_components tool" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:ompi can compile" >&5 -$as_echo_n "checking if MCA component schizo:ompi can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:tool can compile" >&5 +$as_echo_n "checking if MCA component state:tool can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_schizo" = "ompi" ; then + if test "$DIRECT_state" = "tool" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_schizo_DIRECT_CALL_HEADER=$line" + str="MCA_orte_state_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** schizo component ompi was supposed to be direct-called, but +as_fn_error $? "*** state component tool was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -252582,8 +274872,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_schizo" = "ompi" ; then -as_fn_error $? "*** schizo component ompi was supposed to be direct-called, but + if test "$DIRECT_state" = "tool" ; then +as_fn_error $? "*** state component tool was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -252598,7 +274888,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$schizo_ompi_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$state_tool_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -252638,7 +274928,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_ompi_LDFLAGS; do + for arg in $state_tool_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -252719,7 +275009,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_ompi_WRAPPER_EXTRA_LDFLAGS; do + for arg in $state_tool_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -252761,7 +275051,7 @@ fi - if test "$schizo_ompi_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$state_tool_WRAPPER_EXTRA_LIBS" = ""; then : @@ -252801,7 +275091,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_ompi_LIBS; do + for arg in $state_tool_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -252882,7 +275172,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_ompi_WRAPPER_EXTRA_LIBS; do + for arg in $state_tool_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -252930,7 +275220,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$schizo_ompi_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$state_tool_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -252973,7 +275263,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_ompi_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $state_tool_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -253016,32 +275306,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring schizo_ompi_WRAPPER_EXTRA_CPPFLAGS ($schizo_ompi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring schizo_ompi_WRAPPER_EXTRA_CPPFLAGS ($schizo_ompi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring state_tool_WRAPPER_EXTRA_CPPFLAGS ($state_tool_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring state_tool_WRAPPER_EXTRA_CPPFLAGS ($state_tool_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:ompi can compile" >&5 -$as_echo_n "checking if MCA component schizo:ompi can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:tool can compile" >&5 +$as_echo_n "checking if MCA component state:tool can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_schizo" = "ompi" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ompi\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ompi\" failed to configure properly" >&2;} + if test "$with_state" = "tool" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tool\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tool\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_schizo" ; then - if test "$DIRECT_schizo" = "ompi" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ompi\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ompi\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_state" ; then + if test "$DIRECT_state" = "tool" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tool\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tool\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -253049,36 +275339,57 @@ fi # add component to all component list - all_components="$all_components ompi" + all_components="$all_components tool" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso" ; then - BUILD_orte_schizo_ompi_DSO=1 + BUILD_orte_state_tool_DSO=1 else - BUILD_orte_schizo_ompi_DSO=0 + BUILD_orte_state_tool_DSO=0 fi - if test "$BUILD_orte_schizo_ompi_DSO" = "1"; then - MCA_BUILD_orte_schizo_ompi_DSO_TRUE= - MCA_BUILD_orte_schizo_ompi_DSO_FALSE='#' + if test "$BUILD_orte_state_tool_DSO" = "1"; then + MCA_BUILD_orte_state_tool_DSO_TRUE= + MCA_BUILD_orte_state_tool_DSO_FALSE='#' else - MCA_BUILD_orte_schizo_ompi_DSO_TRUE='#' - MCA_BUILD_orte_schizo_ompi_DSO_FALSE= + MCA_BUILD_orte_state_tool_DSO_TRUE='#' + MCA_BUILD_orte_state_tool_DSO_FALSE= fi - ac_config_files="$ac_config_files orte/mca/schizo/ompi/Makefile" + ac_config_files="$ac_config_files orte/mca/state/tool/Makefile" unset compile_mode - opal_show_subsubsubtitle "MCA component schizo:orte (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + # configure components that use built-in configuration scripts - component_path="$srcdir/orte/mca/schizo/orte" + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/orte/mca/state/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component state:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/orte/mca/state/$component" want_component=0 # build if: @@ -253110,8 +275421,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_schizo" ; then - if test "$DIRECT_schizo" = "orte" ; then + if test ! -z "$DIRECT_state" ; then + if test "$DIRECT_state" = "$component" ; then want_component=1 else want_component=0 @@ -253120,12 +275431,14 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_schizo" = "1"; then : - want_component=0 -fi - if test "$DISABLE_schizo_orte" = "1"; then : + if test "$DISABLE_state" = "1"; then : want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_state_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : should_build=1 @@ -253134,11 +275447,13 @@ fi - SHARED_FRAMEWORK="$DSO_schizo" - SHARED_COMPONENT="$DSO_schizo_orte" + SHARED_FRAMEWORK="$DSO_state" + str="SHARED_COMPONENT=\$DSO_state_$component" + eval $str - STATIC_FRAMEWORK="$STATIC_schizo" - STATIC_COMPONENT="$STATIC_schizo_orte" + STATIC_FRAMEWORK="$STATIC_state" + str="STATIC_COMPONENT=\$STATIC_state_$component" + eval $str shared_mode_override=static @@ -253156,9 +275471,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component schizo:orte compile mode" >&5 -$as_echo_n "checking for MCA component schizo:orte compile mode... " >&6; } - if test "$DIRECT_schizo" = "orte" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component state:$component compile mode" >&5 +$as_echo_n "checking for MCA component state:$component compile mode... " >&6; } + if test "$DIRECT_state" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -253166,77 +275481,9 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/schizo/orte/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components orte" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components orte" - else - if test "schizo" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/schizo/orte/lib${ORTE_LIB_PREFIX}mca_schizo_orte.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/schizo/orte/libmca_schizo_orte.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_schizo_orte_component;" >> $outfile.extern - echo " &mca_schizo_orte_component, " >> $outfile.struct - static_components="$static_components orte" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:orte can compile" >&5 -$as_echo_n "checking if MCA component schizo:orte can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_schizo" = "orte" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_schizo_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** schizo component orte was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_schizo" = "orte" ; then -as_fn_error $? "*** schizo component orte was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$schizo_orte_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$should_build" = "1" ; then @@ -253249,7 +275496,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -253268,7 +275515,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $opal_str unset opal_str @@ -253276,105 +275523,129 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_orte_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done +# +# Invoke configure in a specific subdirectory. +# +# orte/mca/state/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="orte/mca/state/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" +# +# Sanity checks +# - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -else + # + # Move into the target directory + # + subdir_parent=`pwd` + cd $subdir_dir + # + # Make a "../" for each directory in $subdir_dir. + # - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # + # Construct the --cache-file argument + # - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + # + # Go back to the topdir + # - for arg in $schizo_orte_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi + cd $subdir_parent fi - done + +# +# Clean up +# # Unwind the index @@ -253397,9 +275668,105 @@ unset $opal_var done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/orte/mca/state/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + state_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + state_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/orte/mca/state/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "state" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/state/$component/lib${ORTE_LIB_PREFIX}mca_state_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/state/$component/libmca_state_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_state_$component_component;" >> $outfile.extern + echo " &mca_state_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:$component can compile" >&5 +$as_echo_n "checking if MCA component state:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_state" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_orte_state_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** state component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_state" = "$component" ; then +as_fn_error $? "*** state component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi -fi - if test "$schizo_orte_WRAPPER_EXTRA_LIBS" = ""; then : + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$state_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -253439,21 +275806,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_orte_LIBS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -253479,8 +275846,8 @@ unset $opal_var done - -else +str="line=\$state_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -253520,7 +275887,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_orte_WRAPPER_EXTRA_LIBS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -253561,154 +275928,222 @@ done -fi - fi # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$schizo_orte_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + else - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:$component can compile" >&5 +$as_echo_n "checking if MCA component state:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # If this component was requested as the default for this + # type, then abort. + if test "$with_state" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + if test ! -z "$DIRECT_state" ; then + if test "$DIRECT_state" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi + fi + + fi + fi done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + MCA_orte_state_ALL_COMPONENTS="$all_components" + MCA_orte_state_STATIC_COMPONENTS="$static_components" + MCA_orte_state_DSO_COMPONENTS="$dso_components" + MCA_orte_state_STATIC_LTLIBS="$static_ltlibs" - for arg in $schizo_orte_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi + + + + + + MCA_orte_state_ALL_SUBDIRS= + for item in $all_components ; do + MCA_orte_state_ALL_SUBDIRS="$MCA_orte_state_ALL_SUBDIRS mca/state/$item" done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + MCA_orte_state_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_orte_state_STATIC_SUBDIRS="$MCA_orte_state_STATIC_SUBDIRS mca/state/$item" + done - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + + + MCA_orte_state_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_orte_state_DSO_SUBDIRS="$MCA_orte_state_DSO_SUBDIRS mca/state/$item" done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring schizo_orte_WRAPPER_EXTRA_CPPFLAGS ($schizo_orte_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring schizo_orte_WRAPPER_EXTRA_CPPFLAGS ($schizo_orte_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - else + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "state" != "common"; then + cat > $outfile <&5 -$as_echo_n "checking if MCA component schizo:orte can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +`cat $outfile.extern` - # If this component was requested as the default for this - # type, then abort. - if test "$with_schizo" = "orte" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"orte\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"orte\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +const mca_base_component_t *mca_state_base_static_components[] = { +`cat $outfile.struct` + NULL +}; - if test ! -z "$DIRECT_schizo" ; then - if test "$DIRECT_schizo" = "orte" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"orte\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"orte\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 +#if defined(c_plusplus) || defined(__cplusplus) +} +#endif + +EOF + # Only replace the header file if a) it doesn't previously + # exist, or b) the contents are different. Do this to not + # trigger recompilation of certain .c files just because the + # timestamp changed on $outfile_real (similar to the way AC + # handles AC_CONFIG_HEADER files). + diff $outfile $outfile_real > /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile fi fi + rm -f $outfile.struct $outfile.extern - # add component to all component list - all_components="$all_components orte" - fi + unset all_components static_components dso_components outfile outfile_real - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_schizo_orte_DSO=1 - else - BUILD_orte_schizo_orte_DSO=0 - fi - if test "$BUILD_orte_schizo_orte_DSO" = "1"; then - MCA_BUILD_orte_schizo_orte_DSO_TRUE= - MCA_BUILD_orte_schizo_orte_DSO_FALSE='#' -else - MCA_BUILD_orte_schizo_orte_DSO_TRUE='#' - MCA_BUILD_orte_schizo_orte_DSO_FALSE= -fi + + # note that mca_wrapper_extra_* is a running list, and we take checkpoints at the end of our project + orte_mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags" + orte_mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags" + orte_mca_wrapper_extra_libs="$mca_wrapper_extra_libs" - ac_config_files="$ac_config_files orte/mca/schizo/orte/Makefile" - unset compile_mode + + + +# BWB: Until projects have separate configure scripts + # and can skip running all of ORTE, just avoid recursing + # into orte sub directory if orte disabled + if (test "ompi" = "ompi" && test "$enable_mpi" != "no") || test "ompi" = "opal" || test "ompi" = "orte" || test "ompi" = "oshmem"; then + MCA_PROJECT_SUBDIRS="$MCA_PROJECT_SUBDIRS ompi" + MCA_PROJECT_DIST_SUBDIRS="$MCA_PROJECT_DIST_SUBDIRS ompi" + fi + + # can't use a variable rename here because these need to be evaled + # at auto* time. + + opal_show_subtitle "Configuring MCA for ompi" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for frameworks for ompi" >&5 +$as_echo_n "checking for frameworks for ompi... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: common, bml, coll, crcp, fbtl, fcoll, fs, hook, io, mtl, op, osc, pml, rte, sharedfp, topo, vprotocol" >&5 +$as_echo "common, bml, coll, crcp, fbtl, fcoll, fs, hook, io, mtl, op, osc, pml, rte, sharedfp, topo, vprotocol" >&6; } + + # iterate through the list of frameworks. There is something + # funky with m4 foreach if the list is defined, but empty. It + # will call the 3rd argument once with an empty value for the + # first argument. Protect against calling MCA_CONFIGURE_FRAMEWORK + # with an empty second argument. Grrr.... + # if there isn't a project list, abort + # + # Also setup two variables for Makefiles: + # MCA_project_FRAMEWORKS - list of frameworks in that project + # MCA_project_FRAMEWORK_LIBS - list of libraries (or variables pointing + # to more libraries) that must be included + # in the project's main library + + + MCA_ompi_FRAMEWORKS= + MCA_ompi_FRAMEWORKS_SUBDIRS= + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS= + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS= + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS= + MCA_ompi_FRAMEWORK_LIBS= + + MCA_ompi_FRAMEWORKS="common $MCA_ompi_FRAMEWORKS" + MCA_ompi_FRAMEWORKS_SUBDIRS="mca/common $MCA_ompi_FRAMEWORKS_SUBDIRS" + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="\$(MCA_ompi_common_ALL_SUBDIRS) $MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS" + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="\$(MCA_ompi_common_DSO_SUBDIRS) $MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS" + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="\$(MCA_ompi_common_STATIC_SUBDIRS) $MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS" + + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_common_STATIC_LTLIBS)" + + opal_show_subsubtitle "Configuring MCA framework common" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=ompi/mca/common + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files ompi/mca/common/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework common" >&5 +$as_echo_n "checking for no configure components in framework common... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework common" >&5 +$as_echo_n "checking for m4 configure components in framework common... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: monitoring, ompio" >&5 +$as_echo "monitoring, ompio" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components # configure components that use built-in configuration scripts @@ -253720,13 +276155,13 @@ components_last_result=0 - opal_show_subsubsubtitle "MCA component schizo:alps (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component common:monitoring (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/orte/mca/schizo/alps" + component_path="$srcdir/ompi/mca/common/monitoring" want_component=0 # build if: @@ -253758,8 +276193,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_schizo" ; then - if test "$DIRECT_schizo" = "alps" ; then + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "monitoring" ; then want_component=1 else want_component=0 @@ -253768,10 +276203,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_schizo" = "1"; then : + if test "$DISABLE_common" = "1"; then : want_component=0 fi - if test "$DISABLE_schizo_alps" = "1"; then : + if test "$DISABLE_common_monitoring" = "1"; then : want_component=0 fi @@ -253784,11 +276219,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_schizo" - SHARED_COMPONENT="$DSO_schizo_alps" + SHARED_FRAMEWORK="$DSO_common" + SHARED_COMPONENT="$DSO_common_monitoring" - STATIC_FRAMEWORK="$STATIC_schizo" - STATIC_COMPONENT="$STATIC_schizo_alps" + STATIC_FRAMEWORK="$STATIC_common" + STATIC_COMPONENT="$STATIC_common_monitoring" shared_mode_override=static @@ -253806,9 +276241,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component schizo:alps compile mode" >&5 -$as_echo_n "checking for MCA component schizo:alps compile mode... " >&6; } - if test "$DIRECT_schizo" = "alps" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:monitoring compile mode" >&5 +$as_echo_n "checking for MCA component common:monitoring compile mode... " >&6; } + if test "$DIRECT_common" = "monitoring" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -253819,577 +276254,425 @@ # try to configure the component - ac_config_files="$ac_config_files orte/mca/schizo/alps/Makefile" + ac_config_files="$ac_config_files ompi/mca/common/monitoring/Makefile" - if test -z "$opal_check_cray_alps_happy"; then -# Check whether --with-alps was given. -if test "${with_alps+set}" = set; then : - withval=$with_alps; + + if test "$MCA_BUILD_ompi_common_monitoring_DSO_TRUE" = ''; then : + should_build=$should_build else - with_alps=auto + should_build=0 fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test -f /etc/opt/cray/release/clerelease; then - cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` - else - cle_level="unknown" - fi + if test "$should_build" = "1"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 -$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } - if test "$cle_level" = "4" && test "$with_alps" != "no"; then : -# -# if we've gotten here, its because we are building on a CLE 4 system -# - opal_check_alps_cle4_libdir_happy="no" - opal_check_alps_cle4_dir_happy="no" + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/common/monitoring/post_configure.sh" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 -$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components monitoring" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components monitoring" + else + if test "common" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/common/monitoring/lib${OMPI_LIB_PREFIX}mca_common_monitoring.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/common/monitoring/libmca_common_monitoring.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_common_monitoring_component;" >> $outfile.extern + echo " &mca_common_monitoring_component, " >> $outfile.struct + static_components="$static_components monitoring" + fi -# Check whether --with-alps-libdir was given. -if test "${with_alps_libdir+set}" = set; then : - withval=$with_alps_libdir; -fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:monitoring can compile" >&5 +$as_echo_n "checking if MCA component common:monitoring can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_common" = "monitoring" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_common_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** common component monitoring was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_common" = "monitoring" ; then +as_fn_error $? "*** common component monitoring was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi -# -# check to see if Open MPI is being built on a CLE 4 eslogin node -# - if test -f /etc/opt/cray/release/ESLrelease; then : - default_alps_dir="/opt/cray/xe-sysroot/default/usr" -else - default_alps_dir="/usr" -fi + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$common_monitoring_WRAPPER_EXTRA_LDFLAGS" = ""; then : - if test -z "$with_alps_libdir"; then : - if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : - if test -d "$with_alps_libdir/lib64"; then : - opal_check_alps_libdir="$with_alps_libdir/lib64" -else - opal_check_alps_libdir="$with_alps_libdir/lib" -fi -else - opal_check_alps_libdir="$default_alps_dir/lib/alps" -fi -fi - if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : - opal_check_alps_dir=$default_alps_dir -else - opal_check_alps_dir=$with_alps -fi + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 -$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } - if test -f "$opal_check_alps_libdir/libalps.a"; then : - opal_check_alps_libdir_cle4_happy="yes" -else - opal_check_alps_libdir_cle4_happy="no", - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 -$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } - if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : - opal_check_alps_dir_cle4_happy="yes" -else - opal_check_alps_dir_cle4_happy="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : - CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" - CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - opal_check_cray_alps_happy="yes" -else - opal_check_cray_alps_happy="no" -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -else - if test "$with_alps" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy=no - schizo_alps_happy="no" -else - if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 -$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } -if test -n "$CRAY_ALPSLLI_CFLAGS"; then - pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSLLI_LIBS"; then - pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes + for arg in $common_monitoring_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - else - pkg_failed=untried + done fi -if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - pkg_failed=yes + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - else - pkg_failed=untried fi + done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` - else - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi else - CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS - CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS - CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 -$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } -if test -n "$CRAY_ALPSUTIL_CFLAGS"; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSUTIL_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` - else - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + done -else - CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS - CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS - CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 -$as_echo_n "checking for CRAY_ALPS... " >&6; } -if test -n "$CRAY_ALPS_CFLAGS"; then - pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPS_LIBS"; then - pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes + for arg in $common_monitoring_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - else - pkg_failed=untried + done fi -if test -n "$CRAY_ALPS_STATIC_LIBS"; then - pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - pkg_failed=yes + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - else - pkg_failed=untried fi + done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` - else - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPS_PKG_ERRORS" >&5 + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 fi + if test "$common_monitoring_WRAPPER_EXTRA_LIBS" = ""; then : -else - CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS - CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS - CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 -$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } -if test -n "$CRAY_WLM_DETECT_CFLAGS"; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_WLM_DETECT_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $common_monitoring_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - pkg_failed=yes + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - else - pkg_failed=untried fi + done + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` - else - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi -else - CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS - CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS - CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -cat >>confdefs.h <<_ACEOF -#define CRAY_WLM_DETECT 1 -_ACEOF + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -fi + for arg in $common_monitoring_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 -$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 -$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - fi + done -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 -$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + - if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : - CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS - CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS fi + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$common_monitoring_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -254402,7 +276685,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -254421,7 +276704,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -254429,20 +276712,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + for arg in $common_monitoring_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done # Unwind the index @@ -254466,48 +276753,176 @@ done +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring common_monitoring_WRAPPER_EXTRA_CPPFLAGS ($common_monitoring_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring common_monitoring_WRAPPER_EXTRA_CPPFLAGS ($common_monitoring_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:monitoring can compile" >&5 +$as_echo_n "checking if MCA component common:monitoring can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_common" = "monitoring" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"monitoring\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"monitoring\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test "$opal_check_cray_alps_happy" = "yes"; then : - schizo_alps_LDFLAGS="$schizo_alps_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" - schizo_alps_CPPFLAGS="$schizo_alps_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" - schizo_alps_LIBS="$schizo_alps_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - schizo_alps_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - schizo_alps_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - schizo_alps_happy="yes" + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "monitoring" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"monitoring\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"monitoring\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components monitoring" +fi + + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_common_monitoring_DSO=1 else - schizo_alps_happy="no" + BUILD_ompi_common_monitoring_DSO=0 +fi + if test "$BUILD_ompi_common_monitoring_DSO" = "1"; then + MCA_BUILD_ompi_common_monitoring_DSO_TRUE= + MCA_BUILD_ompi_common_monitoring_DSO_FALSE='#' +else + MCA_BUILD_ompi_common_monitoring_DSO_TRUE='#' + MCA_BUILD_ompi_common_monitoring_DSO_FALSE= fi - # check for alps/apInfo.h - # save current CPPFLAGS - MCA_orte_schizo_save_CPPFLAGS="$CPPFLAGS" + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # add flags obtained from OPAL_CHECK_ALPS - CPPFLAGS="$CPPFLAGS $schizo_alps_CPPFLAGS" + unset compile_mode - for ac_header in alps/apInfo.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "alps/apInfo.h" "ac_cv_header_alps_apInfo_h" "$ac_includes_default" -if test "x$ac_cv_header_alps_apInfo_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_ALPS_APINFO_H 1 -_ACEOF + + + + opal_show_subsubsubtitle "MCA component common:ompio (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/ompi/mca/common/ompio" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "ompio" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_common" = "1"; then : + want_component=0 +fi + if test "$DISABLE_common_ompio" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else - schizo_alps_happy="no" + should_build=0 fi -done + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + SHARED_FRAMEWORK="$DSO_common" + SHARED_COMPONENT="$DSO_common_ompio" - # restore CPPFLAGS - CPPFLAGS="$MCA_orte_schizo_save_CPPFLAGS" + STATIC_FRAMEWORK="$STATIC_common" + STATIC_COMPONENT="$STATIC_common_ompio" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:ompio compile mode" >&5 +$as_echo_n "checking for MCA component common:ompio compile mode... " >&6; } + if test "$DIRECT_common" = "ompio" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + # try to configure the component - if test "$schizo_alps_happy" = "yes"; then : + ac_config_files="$ac_config_files ompi/mca/common/ompio/Makefile" + + + if test "$enable_io_ompio" != "no"; then : should_build=$should_build else should_build=0 @@ -254521,45 +276936,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/schizo/alps/post_configure.sh" + infile="$srcdir/ompi/mca/common/ompio/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components alps" + all_components="$all_components ompio" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components alps" + dso_components="$dso_components ompio" else - if test "schizo" = "common"; then + if test "common" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/schizo/alps/lib${ORTE_LIB_PREFIX}mca_schizo_alps.la $static_ltlibs" + static_ltlibs="mca/common/ompio/lib${OMPI_LIB_PREFIX}mca_common_ompio.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/schizo/alps/libmca_schizo_alps.la $static_ltlibs" + static_ltlibs="mca/common/ompio/libmca_common_ompio.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_schizo_alps_component;" >> $outfile.extern - echo " &mca_schizo_alps_component, " >> $outfile.struct - static_components="$static_components alps" + echo "extern const mca_base_component_t mca_common_ompio_component;" >> $outfile.extern + echo " &mca_common_ompio_component, " >> $outfile.struct + static_components="$static_components ompio" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:alps can compile" >&5 -$as_echo_n "checking if MCA component schizo:alps can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:ompio can compile" >&5 +$as_echo_n "checking if MCA component common:ompio can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_schizo" = "alps" ; then + if test "$DIRECT_common" = "ompio" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_schizo_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_common_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** schizo component alps was supposed to be direct-called, but +as_fn_error $? "*** common component ompio was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -254567,8 +276982,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_schizo" = "alps" ; then -as_fn_error $? "*** schizo component alps was supposed to be direct-called, but + if test "$DIRECT_common" = "ompio" ; then +as_fn_error $? "*** common component ompio was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -254583,7 +276998,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$schizo_alps_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$common_ompio_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -254623,7 +277038,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_alps_LDFLAGS; do + for arg in $common_ompio_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -254704,7 +277119,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_alps_WRAPPER_EXTRA_LDFLAGS; do + for arg in $common_ompio_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -254721,7 +277136,625 @@ mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi - done + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$common_ompio_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $common_ompio_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $common_ompio_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$common_ompio_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $common_ompio_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring common_ompio_WRAPPER_EXTRA_CPPFLAGS ($common_ompio_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring common_ompio_WRAPPER_EXTRA_CPPFLAGS ($common_ompio_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:ompio can compile" >&5 +$as_echo_n "checking if MCA component common:ompio can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_common" = "ompio" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ompio\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ompio\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "ompio" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ompio\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ompio\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components ompio" +fi + + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_common_ompio_DSO=1 +else + BUILD_ompi_common_ompio_DSO=0 +fi + if test "$BUILD_ompi_common_ompio_DSO" = "1"; then + MCA_BUILD_ompi_common_ompio_DSO_TRUE= + MCA_BUILD_ompi_common_ompio_DSO_FALSE='#' +else + MCA_BUILD_ompi_common_ompio_DSO_TRUE='#' + MCA_BUILD_ompi_common_ompio_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + + + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/ompi/mca/common/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component common:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/ompi/mca/common/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_common" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_common_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_common" + str="SHARED_COMPONENT=\$DSO_common_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_common" + str="STATIC_COMPONENT=\$STATIC_common_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:$component compile mode" >&5 +$as_echo_n "checking for MCA component common:$component compile mode... " >&6; } + if test "$DIRECT_common" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + +# +# Invoke configure in a specific subdirectory. +# +# ompi/mca/common/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="ompi/mca/common/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# # Unwind the index @@ -254744,9 +277777,105 @@ unset $opal_var done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi -fi - if test "$schizo_alps_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/ompi/mca/common/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + common_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + common_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/common/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "common" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/common/$component/lib${OMPI_LIB_PREFIX}mca_common_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/common/$component/libmca_common_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_common_$component_component;" >> $outfile.extern + echo " &mca_common_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:$component can compile" >&5 +$as_echo_n "checking if MCA component common:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_common" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_common_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** common component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_common" = "$component" ; then +as_fn_error $? "*** common component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$common_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -254786,21 +277915,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_alps_LIBS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -254826,8 +277955,8 @@ unset $opal_var done - -else +str="line=\$common_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -254867,7 +277996,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_alps_WRAPPER_EXTRA_LIBS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -254908,171 +278037,189 @@ done -fi - fi # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$schizo_alps_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + else - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:$component can compile" >&5 +$as_echo_n "checking if MCA component common:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # If this component was requested as the default for this + # type, then abort. + if test "$with_common" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi + fi + + fi + fi done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + MCA_ompi_common_ALL_COMPONENTS="$all_components" + MCA_ompi_common_STATIC_COMPONENTS="$static_components" + MCA_ompi_common_DSO_COMPONENTS="$dso_components" + MCA_ompi_common_STATIC_LTLIBS="$static_ltlibs" - for arg in $schizo_alps_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi + + + + + + MCA_ompi_common_ALL_SUBDIRS= + for item in $all_components ; do + MCA_ompi_common_ALL_SUBDIRS="$MCA_ompi_common_ALL_SUBDIRS mca/common/$item" done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + MCA_ompi_common_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_ompi_common_STATIC_SUBDIRS="$MCA_ompi_common_STATIC_SUBDIRS mca/common/$item" + done - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + + + MCA_ompi_common_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_ompi_common_DSO_SUBDIRS="$MCA_ompi_common_DSO_SUBDIRS mca/common/$item" done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring schizo_alps_WRAPPER_EXTRA_CPPFLAGS ($schizo_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring schizo_alps_WRAPPER_EXTRA_CPPFLAGS ($schizo_alps_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi -else + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "common" != "common"; then + cat > $outfile <&5 -$as_echo_n "checking if MCA component schizo:alps can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +`cat $outfile.extern` - # If this component was requested as the default for this - # type, then abort. - if test "$with_schizo" = "alps" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +const mca_base_component_t *mca_common_base_static_components[] = { +`cat $outfile.struct` + NULL +}; - if test ! -z "$DIRECT_schizo" ; then - if test "$DIRECT_schizo" = "alps" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"alps\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"alps\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 +#if defined(c_plusplus) || defined(__cplusplus) +} +#endif + +EOF + # Only replace the header file if a) it doesn't previously + # exist, or b) the contents are different. Do this to not + # trigger recompilation of certain .c files just because the + # timestamp changed on $outfile_real (similar to the way AC + # handles AC_CONFIG_HEADER files). + diff $outfile $outfile_real > /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile fi fi + rm -f $outfile.struct $outfile.extern - # add component to all component list - all_components="$all_components alps" -fi + unset all_components static_components dso_components outfile outfile_real + MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS bml" + MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/bml" + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_bml_ALL_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_bml_DSO_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_bml_STATIC_SUBDIRS)" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/bml/libmca_bml.la" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_bml_STATIC_LTLIBS)" + opal_show_subsubtitle "Configuring MCA framework bml" - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_schizo_alps_DSO=1 -else - BUILD_orte_schizo_alps_DSO=0 -fi - if test "$BUILD_orte_schizo_alps_DSO" = "1"; then - MCA_BUILD_orte_schizo_alps_DSO_TRUE= - MCA_BUILD_orte_schizo_alps_DSO_FALSE='#' -else - MCA_BUILD_orte_schizo_alps_DSO_TRUE='#' - MCA_BUILD_orte_schizo_alps_DSO_FALSE= -fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - unset compile_mode + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=ompi/mca/bml/base + as_dir=$outdir; as_fn_mkdir_p + # emit Makefile rule + ac_config_files="$ac_config_files ompi/mca/bml/Makefile" + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework bml" >&5 +$as_echo_n "checking for no configure components in framework bml... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework bml" >&5 +$as_echo_n "checking for m4 configure components in framework bml... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: r2" >&5 +$as_echo "r2" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + + # configure components that use built-in configuration scripts + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - opal_show_subsubsubtitle "MCA component schizo:moab (m4 configuration macro)" + + opal_show_subsubsubtitle "MCA component bml:r2 (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/orte/mca/schizo/moab" + component_path="$srcdir/ompi/mca/bml/r2" want_component=0 # build if: @@ -255104,8 +278251,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_schizo" ; then - if test "$DIRECT_schizo" = "moab" ; then + if test ! -z "$DIRECT_bml" ; then + if test "$DIRECT_bml" = "r2" ; then want_component=1 else want_component=0 @@ -255114,10 +278261,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_schizo" = "1"; then : + if test "$DISABLE_bml" = "1"; then : want_component=0 fi - if test "$DISABLE_schizo_moab" = "1"; then : + if test "$DISABLE_bml_r2" = "1"; then : want_component=0 fi @@ -255130,11 +278277,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_schizo" - SHARED_COMPONENT="$DSO_schizo_moab" + SHARED_FRAMEWORK="$DSO_bml" + SHARED_COMPONENT="$DSO_bml_r2" - STATIC_FRAMEWORK="$STATIC_schizo" - STATIC_COMPONENT="$STATIC_schizo_moab" + STATIC_FRAMEWORK="$STATIC_bml" + STATIC_COMPONENT="$STATIC_bml_r2" shared_mode_override=static @@ -255152,9 +278299,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component schizo:moab compile mode" >&5 -$as_echo_n "checking for MCA component schizo:moab compile mode... " >&6; } - if test "$DIRECT_schizo" = "moab" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component bml:r2 compile mode" >&5 +$as_echo_n "checking for MCA component bml:r2 compile mode... " >&6; } + if test "$DIRECT_bml" = "r2" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -255165,11 +278312,82 @@ # try to configure the component - ac_config_files="$ac_config_files orte/mca/schizo/moab/Makefile" + ac_config_files="$ac_config_files ompi/mca/bml/r2/Makefile" + should_build=$should_build + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/bml/r2/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components r2" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components r2" + else + if test "bml" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/bml/r2/lib${OMPI_LIB_PREFIX}mca_bml_r2.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/bml/r2/libmca_bml_r2.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_bml_r2_component;" >> $outfile.extern + echo " &mca_bml_r2_component, " >> $outfile.struct + static_components="$static_components r2" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bml:r2 can compile" >&5 +$as_echo_n "checking if MCA component bml:r2 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_bml" = "r2" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_bml_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** bml component r2 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_bml" = "r2" ; then +as_fn_error $? "*** bml component r2 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$bml_r2_WRAPPER_EXTRA_LDFLAGS" = ""; then : - if test -z "$orte_check_moab_happy" ; then # Is the private index set? If not, set it. @@ -255181,7 +278399,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in orte_check_moab_schizo_moab_save_CPPFLAGS orte_check_moab_schizo_moab_save_LDFLAGS orte_check_moab_schizo_moab_save_LIBS; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -255200,7 +278418,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"orte_check_moab_schizo_moab_save_CPPFLAGS orte_check_moab_schizo_moab_save_LDFLAGS orte_check_moab_schizo_moab_save_LIBS\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -255208,139 +278426,48 @@ opal_scope_index=`expr $opal_scope_index + 1` - -# Check whether --with-moab was given. -if test "${with_moab+set}" = set; then : - withval=$with_moab; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-moab value" >&5 -$as_echo_n "checking --with-moab value... " >&6; } - if test "$with_moab" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-moab)" >&5 -$as_echo "simple no (specified --without-moab)" >&6; } -else - if test "$with_moab" = "yes" || test "x$with_moab" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_moab"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_moab not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_moab not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_moab/mapi.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_moab/mapi.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_moab/mapi.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_moab)" >&5 -$as_echo "sanity check ok ($with_moab)" >&6; } - -fi - - -fi - - -fi - - + for arg in $bml_r2_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - - -# Check whether --with-moab-libdir was given. -if test "${with_moab_libdir+set}" = set; then : - withval=$with_moab_libdir; + done fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-moab-libdir value" >&5 -$as_echo_n "checking --with-moab-libdir value... " >&6; } - if test "$with_moab_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-moab-libdir)" >&5 -$as_echo "simple no (specified --without-moab-libdir)" >&6; } -else - if test "$with_moab_libdir" = "yes" || test "x$with_moab_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_moab_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_moab_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_moab_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_moab_libdir/libmoab.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_moab_libdir/libmoab.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_moab_libdir/libmoab.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_moab_libdir)" >&5 -$as_echo "sanity check ok ($with_moab_libdir)" >&6; } - -fi - - + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - - fi + done -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - orte_check_moab_happy="yes" - if test "$with_moab" = "no"; then : - orte_check_moab_happy=no -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test $orte_check_moab_happy = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking looking for moab in" >&5 -$as_echo_n "checking looking for moab in... " >&6; } - if test "$with_moab" != "yes"; then : - orte_moab_dir=$with_moab - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ($orte_moab_dir)" >&5 -$as_echo "($orte_moab_dir)" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 -$as_echo "(default search paths)" >&6; } -fi - if test ! -z "$with_moab_libdir" && \ - test "$with_moab_libdir" != "yes"; then : - orte_moab_libdir=$with_moab_libdir -fi - -fi - - orte_check_moab_schizo_moab_save_CPPFLAGS=$CPPFLAGS - orte_check_moab_schizo_moab_save_LDFLAGS=$LDFLAGS - orte_check_moab_schizo_moab_save_LIBS=$LIBS - - if test $orte_check_moab_happy = yes; then : - - opal_check_package_orte_check_moab_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_orte_check_moab_save_LDFLAGS="$LDFLAGS" - opal_check_package_orte_check_moab_save_LIBS="$LIBS" - - opal_check_package_orte_check_moab_orig_CPPFLAGS="$orte_check_moab_CPPFLAGS" - opal_check_package_orte_check_moab_orig_LDFLAGS="$orte_check_moab_LDFLAGS" - opal_check_package_orte_check_moab_orig_LIBS="$orte_check_moab_LIBS" - - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering @@ -255353,7 +278480,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -255372,7 +278499,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -255380,357 +278507,130 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_mapi_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $orte_moab_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in mapi.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "mapi.h" "ac_cv_header_mapi_h" "$ac_includes_default" -if test "x$ac_cv_header_mapi_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_MAPI_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_mapi_h + for arg in $bml_r2_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - orte_check_moab_CPPFLAGS="$orte_check_moab_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - for ac_header in mapi.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "mapi.h" "ac_cv_header_mapi_h" "$ac_includes_default" -if test "x$ac_cv_header_mapi_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_MAPI_H 1 -_ACEOF - opal_check_package_header_happy="yes" fi + done -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_MCCJobGetRemainingTime - opal_check_package_lib_happy="no" - if test "$orte_moab_libdir" != ""; then : - # libdir was specified - search only there - orte_check_moab_LDFLAGS="$orte_check_moab_LDFLAGS -L$orte_moab_libdir" - LDFLAGS="$LDFLAGS -L$orte_moab_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing MCCJobGetRemainingTime" >&5 -$as_echo_n "checking for library containing MCCJobGetRemainingTime... " >&6; } -if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MCCJobGetRemainingTime (); -int -main () -{ -return MCCJobGetRemainingTime (); - ; - return 0; -} -_ACEOF -for ac_lib in '' cmoab; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_MCCJobGetRemainingTime=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - break -fi -done -if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -else - ac_cv_search_MCCJobGetRemainingTime=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MCCJobGetRemainingTime" >&5 -$as_echo "$ac_cv_search_MCCJobGetRemainingTime" >&6; } -ac_res=$ac_cv_search_MCCJobGetRemainingTime -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" - orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" - unset ac_cv_search_MCCJobGetRemainingTime -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$orte_moab_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing MCCJobGetRemainingTime" >&5 -$as_echo_n "checking for library containing MCCJobGetRemainingTime... " >&6; } -if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MCCJobGetRemainingTime (); -int -main () -{ -return MCCJobGetRemainingTime (); - ; - return 0; -} -_ACEOF -for ac_lib in '' cmoab; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_MCCJobGetRemainingTime=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - break -fi -done -if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : -else - ac_cv_search_MCCJobGetRemainingTime=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MCCJobGetRemainingTime" >&5 -$as_echo "$ac_cv_search_MCCJobGetRemainingTime" >&6; } -ac_res=$ac_cv_search_MCCJobGetRemainingTime -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" fi + if test "$bml_r2_WRAPPER_EXTRA_LIBS" = ""; then : - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" - orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" - unset ac_cv_search_MCCJobGetRemainingTime -fi -fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_moab_LDFLAGS="$orte_check_moab_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing MCCJobGetRemainingTime" >&5 -$as_echo_n "checking for library containing MCCJobGetRemainingTime... " >&6; } -if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MCCJobGetRemainingTime (); -int -main () -{ -return MCCJobGetRemainingTime (); - ; - return 0; -} -_ACEOF -for ac_lib in '' cmoab; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_MCCJobGetRemainingTime=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - break -fi -done -if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -else - ac_cv_search_MCCJobGetRemainingTime=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MCCJobGetRemainingTime" >&5 -$as_echo "$ac_cv_search_MCCJobGetRemainingTime" >&6; } -ac_res=$ac_cv_search_MCCJobGetRemainingTime -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" - orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" - unset ac_cv_search_MCCJobGetRemainingTime -fi -fi -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_moab_LDFLAGS="$orte_check_moab_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing MCCJobGetRemainingTime" >&5 -$as_echo_n "checking for library containing MCCJobGetRemainingTime... " >&6; } -if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MCCJobGetRemainingTime (); -int -main () -{ -return MCCJobGetRemainingTime (); - ; - return 0; -} -_ACEOF -for ac_lib in '' cmoab; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_MCCJobGetRemainingTime=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - break -fi -done -if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -else - ac_cv_search_MCCJobGetRemainingTime=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MCCJobGetRemainingTime" >&5 -$as_echo "$ac_cv_search_MCCJobGetRemainingTime" >&6; } -ac_res=$ac_cv_search_MCCJobGetRemainingTime -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" - orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" - unset ac_cv_search_MCCJobGetRemainingTime + for arg in $bml_r2_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -255743,7 +278643,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -255762,16 +278662,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $bml_r2_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$bml_r2_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -255784,7 +278734,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -255803,7 +278753,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -255811,303 +278761,408 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $bml_r2_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libcmoab requires libnl v1 or v3" >&5 -$as_echo_n "checking if libcmoab requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void MCCJobGetRemainingTime (void); -int main(int argc, char *argv[]) { - MCCJobGetRemainingTime (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:255838: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lcmoab $LIBS $orte_check_moab_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lcmoab $LIBS $orte_check_moab_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:255845: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring bml_r2_WRAPPER_EXTRA_CPPFLAGS ($bml_r2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring bml_r2_WRAPPER_EXTRA_CPPFLAGS ($bml_r2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib cmoab" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib cmoab" >&2;} -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bml:r2 can compile" >&5 +$as_echo_n "checking if MCA component bml:r2 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 + # If this component was requested as the default for this + # type, then abort. + if test "$with_bml" = "r2" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"r2\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"r2\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + if test ! -z "$DIRECT_bml" ; then + if test "$DIRECT_bml" = "r2" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"r2\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"r2\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libcmoab links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libcmoab links to both libnl and libnl-3." >&2;} + # add component to all component list + all_components="$all_components r2" +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libcmoab (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libcmoab (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libcmoab." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libcmoab." >&2;} - libnl_sane=0 -fi + if test "$should_build" = "1"; then : - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas cmoab requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas cmoab requires libnl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libcmoab (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libcmoab (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libcmoab." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libcmoab." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag BML" >&5 +$as_echo_n "checking for index in endpoint array for tag BML... " >&6; } + if test -z "$OMPI_PROC_ENDPOINT_TAG_BML"; then : + OMPI_PROC_ENDPOINT_TAG_BML=$ompi_endpoint_tag_counter - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs cmoab" +cat >>confdefs.h <<_ACEOF +#define OMPI_PROC_ENDPOINT_TAG_BML $OMPI_PROC_ENDPOINT_TAG_BML +_ACEOF -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs + ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_BML" >&5 +$as_echo "$OMPI_PROC_ENDPOINT_TAG_BML" >&6; } -# Go through each item in the variable and only keep the unique ones +fi -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_bml_r2_DSO=1 +else + BUILD_ompi_bml_r2_DSO=0 +fi + if test "$BUILD_ompi_bml_r2_DSO" = "1"; then + MCA_BUILD_ompi_bml_r2_DSO_TRUE= + MCA_BUILD_ompi_bml_r2_DSO_FALSE='#' +else + MCA_BUILD_ompi_bml_r2_DSO_TRUE='#' + MCA_BUILD_ompi_bml_r2_DSO_FALSE= +fi - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + unset compile_mode - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test "1" != "0"; then : - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + for component_path in $srcdir/ompi/mca/bml/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component bml:$component (need to configure)" - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up + component_path="$srcdir/ompi/mca/bml/$component" + want_component=0 -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_bml" ; then + if test "$DIRECT_bml" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + # if we were explicitly disabled, don't build :) + if test "$DISABLE_bml" = "1"; then : + want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_bml_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libcmoab requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libcmoab requires libnl-3" >&2;} + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libcmoab (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libcmoab (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libcmoab." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libcmoab." >&2;} - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs cmoab" + SHARED_FRAMEWORK="$DSO_bml" + str="SHARED_COMPONENT=\$DSO_bml_$component" + eval $str -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + STATIC_FRAMEWORK="$STATIC_bml" + str="STATIC_COMPONENT=\$STATIC_bml_$component" + eval $str -# Go through each item in the variable and only keep the unique ones + shared_mode_override=static -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Loop over every token we've seen so far + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component bml:$component compile mode" >&5 +$as_echo_n "checking for MCA component bml:$component compile mode... " >&6; } + if test "$DIRECT_bml" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + if test "$should_build" = "1" ; then - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # Increment the counter + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_i="`expr $opal_i + 1`" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done - # If we didn't find the token, add it to the "array" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval +# +# Invoke configure in a specific subdirectory. +# +# ompi/mca/bml/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="ompi/mca/bml/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval +# +# Sanity checks +# - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} -# Done; do the assignment + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } -# Clean up + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + # + # Move into the target directory + # -fi + subdir_parent=`pwd` + cd $subdir_dir - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + # + # Make a "../" for each directory in $subdir_dir. + # - rm -f conftest conftest_c.$ac_ext + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - opal_libnl_sane=$libnl_sane + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + # + # Construct the --cache-file argument + # - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # + # Invoke the configure script in the subdirectory + # - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + # + # Go back to the topdir + # - ;; - esac + cd $subdir_parent +fi + +# +# Clean up +# - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -256129,333 +279184,105 @@ unset $opal_var done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_MCCJobGetRemainingTime" != "no" && - test "$ac_cv_search_MCCJobGetRemainingTime" != "none required"; then : - orte_check_moab_LIBS="$ac_cv_search_MCCJobGetRemainingTime " -else - orte_check_moab_LIBS="" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi - - -else - opal_check_package_happy="no" -fi -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_MCCJobGetRemainingTime - opal_check_package_lib_happy="no" - if test "$orte_moab_libdir" != ""; then : - # libdir was specified - search only there - orte_check_moab_LDFLAGS="$orte_check_moab_LDFLAGS -L$orte_moab_libdir" - LDFLAGS="$LDFLAGS -L$orte_moab_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing MCCJobGetRemainingTime" >&5 -$as_echo_n "checking for library containing MCCJobGetRemainingTime... " >&6; } -if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MCCJobGetRemainingTime (); -int -main () -{ -return MCCJobGetRemainingTime (); - ; - return 0; -} -_ACEOF -for ac_lib in '' cmoab; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_MCCJobGetRemainingTime=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - break -fi -done -if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - -else - ac_cv_search_MCCJobGetRemainingTime=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MCCJobGetRemainingTime" >&5 -$as_echo "$ac_cv_search_MCCJobGetRemainingTime" >&6; } -ac_res=$ac_cv_search_MCCJobGetRemainingTime -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" - orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" - unset ac_cv_search_MCCJobGetRemainingTime -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$orte_moab_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing MCCJobGetRemainingTime" >&5 -$as_echo_n "checking for library containing MCCJobGetRemainingTime... " >&6; } -if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MCCJobGetRemainingTime (); -int -main () -{ -return MCCJobGetRemainingTime (); - ; - return 0; -} -_ACEOF -for ac_lib in '' cmoab; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_MCCJobGetRemainingTime=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - break -fi -done -if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/ompi/mca/bml/all_components/post_configure.sh" + if test -f $infile; then -else - ac_cv_search_MCCJobGetRemainingTime=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MCCJobGetRemainingTime" >&5 -$as_echo "$ac_cv_search_MCCJobGetRemainingTime" >&6; } -ac_res=$ac_cv_search_MCCJobGetRemainingTime -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" - orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" - unset ac_cv_search_MCCJobGetRemainingTime -fi -fi + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + bml_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + bml_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_moab_LDFLAGS="$orte_check_moab_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing MCCJobGetRemainingTime" >&5 -$as_echo_n "checking for library containing MCCJobGetRemainingTime... " >&6; } -if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MCCJobGetRemainingTime (); -int -main () -{ -return MCCJobGetRemainingTime (); - ; - return 0; -} -_ACEOF -for ac_lib in '' cmoab; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_MCCJobGetRemainingTime=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - break -fi -done -if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : -else - ac_cv_search_MCCJobGetRemainingTime=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MCCJobGetRemainingTime" >&5 -$as_echo "$ac_cv_search_MCCJobGetRemainingTime" >&6; } -ac_res=$ac_cv_search_MCCJobGetRemainingTime -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" - orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" - unset ac_cv_search_MCCJobGetRemainingTime -fi -fi -fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/bml/$component/post_configure.sh" - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - orte_check_moab_LDFLAGS="$orte_check_moab_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing MCCJobGetRemainingTime" >&5 -$as_echo_n "checking for library containing MCCJobGetRemainingTime... " >&6; } -if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char MCCJobGetRemainingTime (); -int -main () -{ -return MCCJobGetRemainingTime (); - ; - return 0; -} -_ACEOF -for ac_lib in '' cmoab; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_MCCJobGetRemainingTime=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : - break -fi -done -if ${ac_cv_search_MCCJobGetRemainingTime+:} false; then : + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "bml" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/bml/$component/lib${OMPI_LIB_PREFIX}mca_bml_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/bml/$component/libmca_bml_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_bml_$component_component;" >> $outfile.extern + echo " &mca_bml_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi -else - ac_cv_search_MCCJobGetRemainingTime=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MCCJobGetRemainingTime" >&5 -$as_echo "$ac_cv_search_MCCJobGetRemainingTime" >&6; } -ac_res=$ac_cv_search_MCCJobGetRemainingTime -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bml:$component can compile" >&5 +$as_echo_n "checking if MCA component bml:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" - orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" - unset ac_cv_search_MCCJobGetRemainingTime -fi -fi -fi -fi + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_bml" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_bml_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** bml component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_bml" = "$component" ; then +as_fn_error $? "*** bml component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$bml_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -256468,7 +279295,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -256487,16 +279314,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + +str="line=\$bml_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -256509,7 +279376,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -256528,7 +279395,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -256536,276 +279403,435 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libcmoab requires libnl v1 or v3" >&5 -$as_echo_n "checking if libcmoab requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void MCCJobGetRemainingTime (void); -int main(int argc, char *argv[]) { - MCCJobGetRemainingTime (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:256563: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lcmoab $LIBS $orte_check_moab_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lcmoab $LIBS $orte_check_moab_LIBS 1>&5 2>&1 -opal_status=$? + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:256570: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib cmoab" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib cmoab" >&2;} + fi -fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + else - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libcmoab links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libcmoab links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bml:$component can compile" >&5 +$as_echo_n "checking if MCA component bml:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libcmoab (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libcmoab (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libcmoab." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libcmoab." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_bml" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_bml" ; then + if test "$DIRECT_bml" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + fi + fi + done - libnl_sane=0 fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas cmoab requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas cmoab requires libnl" >&2;} + MCA_ompi_bml_ALL_COMPONENTS="$all_components" + MCA_ompi_bml_STATIC_COMPONENTS="$static_components" + MCA_ompi_bml_DSO_COMPONENTS="$dso_components" + MCA_ompi_bml_STATIC_LTLIBS="$static_ltlibs" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libcmoab (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libcmoab (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libcmoab." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libcmoab." >&2;} - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs cmoab" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + MCA_ompi_bml_ALL_SUBDIRS= + for item in $all_components ; do + MCA_ompi_bml_ALL_SUBDIRS="$MCA_ompi_bml_ALL_SUBDIRS mca/bml/$item" + done - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + MCA_ompi_bml_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_ompi_bml_STATIC_SUBDIRS="$MCA_ompi_bml_STATIC_SUBDIRS mca/bml/$item" + done - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" + MCA_ompi_bml_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_ompi_bml_DSO_SUBDIRS="$MCA_ompi_bml_DSO_SUBDIRS mca/bml/$item" done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "bml" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi fi -done + rm -f $outfile.struct $outfile.extern -# Take all the items in the "array" and assemble them back into a -# single variable + unset all_components static_components dso_components outfile outfile_real -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS coll" + MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/coll" + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_coll_ALL_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_coll_DSO_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_coll_STATIC_SUBDIRS)" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/coll/libmca_coll.la" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_coll_STATIC_LTLIBS)" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + opal_show_subsubtitle "Configuring MCA framework coll" - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=ompi/mca/coll/base + as_dir=$outdir; as_fn_mkdir_p -fi + # emit Makefile rule + ac_config_files="$ac_config_files ompi/mca/coll/Makefile" - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libcmoab requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libcmoab requires libnl-3" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libcmoab (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libcmoab (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libcmoab." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libcmoab." >&2;} + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - libnl_sane=0 + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework coll" >&5 +$as_echo_n "checking for no configure components in framework coll... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: adapt, basic, han, inter, libnbc, self, sm, sync, tuned" >&5 +$as_echo "adapt, basic, han, inter, libnbc, self, sm, sync, tuned" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework coll" >&5 +$as_echo_n "checking for m4 configure components in framework coll... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: cuda, fca, hcoll, monitoring, portals4, ucc" >&5 +$as_echo "cuda, fca, hcoll, monitoring, portals4, ucc" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + opal_show_subsubsubtitle "MCA component coll:adapt (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/ompi/mca/coll/adapt" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "adapt" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_coll" = "1"; then : + want_component=0 +fi + if test "$DISABLE_coll_adapt" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 else - opal_libnlv3_libs="$opal_libnlv3_libs cmoab" + should_build=0 +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones + SHARED_FRAMEWORK="$DSO_coll" + SHARED_COMPONENT="$DSO_coll_adapt" -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + STATIC_FRAMEWORK="$STATIC_coll" + STATIC_COMPONENT="$STATIC_coll_adapt" - # Loop over every token we've seen so far + shared_mode_override=static - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:adapt compile mode" >&5 +$as_echo_n "checking for MCA component coll:adapt compile mode... " >&6; } + if test "$DIRECT_coll" = "adapt" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # Check the ending condition + if test "$should_build" = "1" ; then - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/coll/adapt/post_configure.sh" - # If we didn't find the token, add it to the "array" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components adapt" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components adapt" else - opal_i="`expr $opal_i - 1`" + if test "coll" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/coll/adapt/lib${OMPI_LIB_PREFIX}mca_coll_adapt.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/coll/adapt/libmca_coll_adapt.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_coll_adapt_component;" >> $outfile.extern + echo " &mca_coll_adapt_component, " >> $outfile.struct + static_components="$static_components adapt" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:adapt can compile" >&5 +$as_echo_n "checking if MCA component coll:adapt can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_coll" = "adapt" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** coll component adapt was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_coll" = "adapt" ; then +as_fn_error $? "*** coll component adapt was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$coll_adapt_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + for arg in $coll_adapt_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -256829,10 +279855,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $coll_adapt_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -256855,28 +279936,65 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no fi + if test "$coll_adapt_WRAPPER_EXTRA_LIBS" = ""; then : -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_MCCJobGetRemainingTime" != "no" && - test "$ac_cv_search_MCCJobGetRemainingTime" != "none required"; then : - orte_check_moab_LIBS="$ac_cv_search_MCCJobGetRemainingTime " -else - orte_check_moab_LIBS="" + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $coll_adapt_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -256900,26 +280018,7 @@ done - - if test "$opal_check_package_happy" = "yes"; then : - else - orte_check_moab_CPPFLAGS="$opal_check_package_orte_check_moab_orig_CPPFLAGS" - orte_check_moab_LDFLAGS="$opal_check_package_orte_check_moab_orig_LDFLAGS" - orte_check_moab_LIBS="$opal_check_package_orte_check_moab_orig_LIBS" - orte_check_moab_happy=no -fi - - CPPFLAGS="$opal_check_package_orte_check_moab_save_CPPFLAGS" - LDFLAGS="$opal_check_package_orte_check_moab_save_LDFLAGS" - LIBS="$opal_check_package_orte_check_moab_save_LIBS" - -fi - - CPPFLAGS=$orte_check_moab_schizo_moab_save_CPPFLAGS - LDFLAGS=$orte_check_moab_schizo_moab_save_LDFLAGS - LIBS=$orte_check_moab_schizo_moab_save_LIBS - @@ -256932,7 +280031,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -256951,7 +280050,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -256959,20 +280058,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="Moab: $orte_check_moab_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + for arg in $coll_adapt_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done # Unwind the index @@ -256996,6 +280099,75 @@ done +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$coll_adapt_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $coll_adapt_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -257017,85 +280189,206 @@ unset $opal_var done - fi - if test $orte_check_moab_happy = yes ; then - schizo_moab_CPPFLAGS="$schizo_moab_CPPFLAGS $orte_check_moab_CPPFLAGS" - schizo_moab_LIBS="$schizo_moab_LIBS $orte_check_moab_LIBS" - schizo_moab_LDFLAGS="$schizo_moab_LDFLAGS $orte_check_moab_LDFLAGS" +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_adapt_WRAPPER_EXTRA_CPPFLAGS ($coll_adapt_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring coll_adapt_WRAPPER_EXTRA_CPPFLAGS ($coll_adapt_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:adapt can compile" >&5 +$as_echo_n "checking if MCA component coll:adapt can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # If this component was requested as the default for this + # type, then abort. + if test "$with_coll" = "adapt" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"adapt\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"adapt\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "adapt" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"adapt\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"adapt\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + # add component to all component list + all_components="$all_components adapt" fi - if test "$orte_check_moab_happy" = "yes"; then : - schizo_moab_good=1 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_ompi_coll_adapt_DSO=1 + else + BUILD_ompi_coll_adapt_DSO=0 + fi + if test "$BUILD_ompi_coll_adapt_DSO" = "1"; then + MCA_BUILD_ompi_coll_adapt_DSO_TRUE= + MCA_BUILD_ompi_coll_adapt_DSO_FALSE='#' else - schizo_moab_good=0 + MCA_BUILD_ompi_coll_adapt_DSO_TRUE='#' + MCA_BUILD_ompi_coll_adapt_DSO_FALSE= fi - # if check worked, set wrapper flags if so. - # Evaluate succeed / fail - if test "$schizo_moab_good" = "1"; then : - should_build=$should_build + ac_config_files="$ac_config_files ompi/mca/coll/adapt/Makefile" + + + unset compile_mode + + opal_show_subsubsubtitle "MCA component coll:basic (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/ompi/mca/coll/basic" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "basic" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_coll" = "1"; then : + want_component=0 +fi + if test "$DISABLE_coll_basic" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 else should_build=0 fi - # set build flags to use in makefile + SHARED_FRAMEWORK="$DSO_coll" + SHARED_COMPONENT="$DSO_coll_basic" + STATIC_FRAMEWORK="$STATIC_coll" + STATIC_COMPONENT="$STATIC_coll_basic" + shared_mode_override=static - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - if test "$should_build" = "1"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:basic compile mode" >&5 +$as_echo_n "checking for MCA component coll:basic compile mode... " >&6; } + if test "$DIRECT_coll" = "basic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/schizo/moab/post_configure.sh" + infile="$srcdir/ompi/mca/coll/basic/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components moab" + all_components="$all_components basic" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components moab" + dso_components="$dso_components basic" else - if test "schizo" = "common"; then + if test "coll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/schizo/moab/lib${ORTE_LIB_PREFIX}mca_schizo_moab.la $static_ltlibs" + static_ltlibs="mca/coll/basic/lib${OMPI_LIB_PREFIX}mca_coll_basic.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/schizo/moab/libmca_schizo_moab.la $static_ltlibs" + static_ltlibs="mca/coll/basic/libmca_coll_basic.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_schizo_moab_component;" >> $outfile.extern - echo " &mca_schizo_moab_component, " >> $outfile.struct - static_components="$static_components moab" + echo "extern const mca_base_component_t mca_coll_basic_component;" >> $outfile.extern + echo " &mca_coll_basic_component, " >> $outfile.struct + static_components="$static_components basic" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:moab can compile" >&5 -$as_echo_n "checking if MCA component schizo:moab can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:basic can compile" >&5 +$as_echo_n "checking if MCA component coll:basic can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_schizo" = "moab" ; then + if test "$DIRECT_coll" = "basic" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_schizo_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** schizo component moab was supposed to be direct-called, but +as_fn_error $? "*** coll component basic was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -257103,8 +280396,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_schizo" = "moab" ; then -as_fn_error $? "*** schizo component moab was supposed to be direct-called, but + if test "$DIRECT_coll" = "basic" ; then +as_fn_error $? "*** coll component basic was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -257119,7 +280412,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$schizo_moab_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$coll_basic_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -257159,7 +280452,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_moab_LDFLAGS; do + for arg in $coll_basic_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -257240,7 +280533,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_moab_WRAPPER_EXTRA_LDFLAGS; do + for arg in $coll_basic_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -257282,7 +280575,7 @@ fi - if test "$schizo_moab_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$coll_basic_WRAPPER_EXTRA_LIBS" = ""; then : @@ -257322,7 +280615,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_moab_LIBS; do + for arg in $coll_basic_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -257403,7 +280696,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_moab_WRAPPER_EXTRA_LIBS; do + for arg in $coll_basic_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -257451,7 +280744,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$schizo_moab_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$coll_basic_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -257494,7 +280787,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_moab_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $coll_basic_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -257537,78 +280830,69 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring schizo_moab_WRAPPER_EXTRA_CPPFLAGS ($schizo_moab_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring schizo_moab_WRAPPER_EXTRA_CPPFLAGS ($schizo_moab_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_basic_WRAPPER_EXTRA_CPPFLAGS ($coll_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring coll_basic_WRAPPER_EXTRA_CPPFLAGS ($coll_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:moab can compile" >&5 -$as_echo_n "checking if MCA component schizo:moab can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:basic can compile" >&5 +$as_echo_n "checking if MCA component coll:basic can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_schizo" = "moab" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"moab\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"moab\" failed to configure properly" >&2;} + if test "$with_coll" = "basic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_schizo" ; then - if test "$DIRECT_schizo" = "moab" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"moab\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"moab\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "basic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components moab" -fi - - + # add component to all component list + all_components="$all_components basic" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_schizo_moab_DSO=1 -else - BUILD_orte_schizo_moab_DSO=0 -fi - if test "$BUILD_orte_schizo_moab_DSO" = "1"; then - MCA_BUILD_orte_schizo_moab_DSO_TRUE= - MCA_BUILD_orte_schizo_moab_DSO_FALSE='#' -else - MCA_BUILD_orte_schizo_moab_DSO_TRUE='#' - MCA_BUILD_orte_schizo_moab_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 + if test "$compile_mode" = "dso" ; then + BUILD_ompi_coll_basic_DSO=1 + else + BUILD_ompi_coll_basic_DSO=0 + fi + if test "$BUILD_ompi_coll_basic_DSO" = "1"; then + MCA_BUILD_ompi_coll_basic_DSO_TRUE= + MCA_BUILD_ompi_coll_basic_DSO_FALSE='#' else - components_last_result=0 + MCA_BUILD_ompi_coll_basic_DSO_TRUE='#' + MCA_BUILD_ompi_coll_basic_DSO_FALSE= fi - unset compile_mode - + ac_config_files="$ac_config_files ompi/mca/coll/basic/Makefile" + unset compile_mode - opal_show_subsubsubtitle "MCA component schizo:singularity (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component coll:han (no configuration)" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/schizo/singularity" + component_path="$srcdir/ompi/mca/coll/han" want_component=0 # build if: @@ -257640,8 +280924,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_schizo" ; then - if test "$DIRECT_schizo" = "singularity" ; then + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "han" ; then want_component=1 else want_component=0 @@ -257650,27 +280934,25 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_schizo" = "1"; then : + if test "$DISABLE_coll" = "1"; then : want_component=0 fi - if test "$DISABLE_schizo_singularity" = "1"; then : + if test "$DISABLE_coll_han" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_schizo" - SHARED_COMPONENT="$DSO_schizo_singularity" + SHARED_FRAMEWORK="$DSO_coll" + SHARED_COMPONENT="$DSO_coll_han" - STATIC_FRAMEWORK="$STATIC_schizo" - STATIC_COMPONENT="$STATIC_schizo_singularity" + STATIC_FRAMEWORK="$STATIC_coll" + STATIC_COMPONENT="$STATIC_coll_han" shared_mode_override=static @@ -257688,9 +280970,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component schizo:singularity compile mode" >&5 -$as_echo_n "checking for MCA component schizo:singularity compile mode... " >&6; } - if test "$DIRECT_schizo" = "singularity" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:han compile mode" >&5 +$as_echo_n "checking for MCA component coll:han compile mode... " >&6; } + if test "$DIRECT_coll" = "han" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -257698,274 +280980,53 @@ $as_echo "$compile_mode" >&6; } fi + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # try to configure the component - - ac_config_files="$ac_config_files orte/mca/schizo/singularity/Makefile" - - - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in spath have_singularity; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"spath have_singularity\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - -# Check whether --with-singularity was given. -if test "${with_singularity+set}" = set; then : - withval=$with_singularity; -fi - - spath= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Singularity support is to be built" >&5 -$as_echo_n "checking if Singularity support is to be built... " >&6; } - if test "$with_singularity" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - have_singularity=no -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test -z "$with_singularity" || test "$with_singularity" = "yes"; then : - # look for the singularity command in the default path - # Extract the first word of "singularity", so it can be a program name with args. -set dummy singularity; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_SINGULARITY+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$SINGULARITY"; then - ac_cv_prog_SINGULARITY="$SINGULARITY" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_SINGULARITY="singularity" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -SINGULARITY=$ac_cv_prog_SINGULARITY -if test -n "$SINGULARITY"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SINGULARITY" >&5 -$as_echo "$SINGULARITY" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "$SINGULARITY" != ""; then : - have_singularity=yes -else - if test "$with_singularity" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Singularity support requested, but required executable" >&5 -$as_echo "$as_me: WARNING: Singularity support requested, but required executable" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"singularity\" not found in default locations" >&5 -$as_echo "$as_me: WARNING: \"singularity\" not found in default locations" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -fi - have_singularity=no -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for existence of $with_singularity/bin" >&5 -$as_echo_n "checking for existence of $with_singularity/bin... " >&6; } - # look for the singularity command in the bin subdirectory - if test ! -d "$with_singularity/bin"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_singularity/bin not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_singularity/bin not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } -fi - save_path=$PATH - PATH=$with_singularity/bin:$PATH - # Extract the first word of "singularity", so it can be a program name with args. -set dummy singularity; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_SINGULARITY+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$SINGULARITY"; then - ac_cv_prog_SINGULARITY="$SINGULARITY" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_SINGULARITY="singularity" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -SINGULARITY=$ac_cv_prog_SINGULARITY -if test -n "$SINGULARITY"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SINGULARITY" >&5 -$as_echo "$SINGULARITY" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "$SINGULARITY" != ""; then : - have_singularity=yes - spath=$with_singularity/bin -else - have_singlarity=no - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Singularity support requested, but required executable" >&5 -$as_echo "$as_me: WARNING: Singularity support requested, but required executable" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"singularity\" not found in either default or specified path" >&5 -$as_echo "$as_me: WARNING: \"singularity\" not found in either default or specified path" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -fi - PATH=$save_path - - -fi -fi - - -cat >>confdefs.h <<_ACEOF -#define OPAL_SINGULARITY_PATH "$spath" -_ACEOF - - if test "$have_singularity" = "yes"; then : - schizo_singularity_happy="yes" -else - schizo_singularity_happy="no" -fi - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - - if test "$schizo_singularity_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/schizo/singularity/post_configure.sh" + infile="$srcdir/ompi/mca/coll/han/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components singularity" + all_components="$all_components han" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components singularity" + dso_components="$dso_components han" else - if test "schizo" = "common"; then + if test "coll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/schizo/singularity/lib${ORTE_LIB_PREFIX}mca_schizo_singularity.la $static_ltlibs" + static_ltlibs="mca/coll/han/lib${OMPI_LIB_PREFIX}mca_coll_han.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/schizo/singularity/libmca_schizo_singularity.la $static_ltlibs" + static_ltlibs="mca/coll/han/libmca_coll_han.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_schizo_singularity_component;" >> $outfile.extern - echo " &mca_schizo_singularity_component, " >> $outfile.struct - static_components="$static_components singularity" + echo "extern const mca_base_component_t mca_coll_han_component;" >> $outfile.extern + echo " &mca_coll_han_component, " >> $outfile.struct + static_components="$static_components han" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:singularity can compile" >&5 -$as_echo_n "checking if MCA component schizo:singularity can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:han can compile" >&5 +$as_echo_n "checking if MCA component coll:han can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_schizo" = "singularity" ; then + if test "$DIRECT_coll" = "han" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_schizo_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** schizo component singularity was supposed to be direct-called, but +as_fn_error $? "*** coll component han was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -257973,8 +281034,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_schizo" = "singularity" ; then -as_fn_error $? "*** schizo component singularity was supposed to be direct-called, but + if test "$DIRECT_coll" = "han" ; then +as_fn_error $? "*** coll component han was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -257989,7 +281050,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$schizo_singularity_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$coll_han_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -258029,7 +281090,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_singularity_LDFLAGS; do + for arg in $coll_han_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -258110,7 +281171,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_singularity_WRAPPER_EXTRA_LDFLAGS; do + for arg in $coll_han_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -258152,7 +281213,7 @@ fi - if test "$schizo_singularity_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$coll_han_WRAPPER_EXTRA_LIBS" = ""; then : @@ -258192,7 +281253,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_singularity_LIBS; do + for arg in $coll_han_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -258273,7 +281334,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_singularity_WRAPPER_EXTRA_LIBS; do + for arg in $coll_han_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -258321,7 +281382,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$schizo_singularity_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$coll_han_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -258364,7 +281425,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_singularity_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $coll_han_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -258407,78 +281468,69 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring schizo_singularity_WRAPPER_EXTRA_CPPFLAGS ($schizo_singularity_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring schizo_singularity_WRAPPER_EXTRA_CPPFLAGS ($schizo_singularity_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_han_WRAPPER_EXTRA_CPPFLAGS ($coll_han_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring coll_han_WRAPPER_EXTRA_CPPFLAGS ($coll_han_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:singularity can compile" >&5 -$as_echo_n "checking if MCA component schizo:singularity can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:han can compile" >&5 +$as_echo_n "checking if MCA component coll:han can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_schizo" = "singularity" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"singularity\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"singularity\" failed to configure properly" >&2;} + if test "$with_coll" = "han" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"han\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"han\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_schizo" ; then - if test "$DIRECT_schizo" = "singularity" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"singularity\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"singularity\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "han" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"han\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"han\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components singularity" -fi - - + # add component to all component list + all_components="$all_components han" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_schizo_singularity_DSO=1 -else - BUILD_orte_schizo_singularity_DSO=0 -fi - if test "$BUILD_orte_schizo_singularity_DSO" = "1"; then - MCA_BUILD_orte_schizo_singularity_DSO_TRUE= - MCA_BUILD_orte_schizo_singularity_DSO_FALSE='#' -else - MCA_BUILD_orte_schizo_singularity_DSO_TRUE='#' - MCA_BUILD_orte_schizo_singularity_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 + if test "$compile_mode" = "dso" ; then + BUILD_ompi_coll_han_DSO=1 + else + BUILD_ompi_coll_han_DSO=0 + fi + if test "$BUILD_ompi_coll_han_DSO" = "1"; then + MCA_BUILD_ompi_coll_han_DSO_TRUE= + MCA_BUILD_ompi_coll_han_DSO_FALSE='#' else - components_last_result=0 + MCA_BUILD_ompi_coll_han_DSO_TRUE='#' + MCA_BUILD_ompi_coll_han_DSO_FALSE= fi - unset compile_mode - + ac_config_files="$ac_config_files ompi/mca/coll/han/Makefile" + unset compile_mode - opal_show_subsubsubtitle "MCA component schizo:slurm (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component coll:inter (no configuration)" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/schizo/slurm" + component_path="$srcdir/ompi/mca/coll/inter" want_component=0 # build if: @@ -258510,8 +281562,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_schizo" ; then - if test "$DIRECT_schizo" = "slurm" ; then + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "inter" ; then want_component=1 else want_component=0 @@ -258520,27 +281572,25 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_schizo" = "1"; then : + if test "$DISABLE_coll" = "1"; then : want_component=0 fi - if test "$DISABLE_schizo_slurm" = "1"; then : + if test "$DISABLE_coll_inter" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_schizo" - SHARED_COMPONENT="$DSO_schizo_slurm" + SHARED_FRAMEWORK="$DSO_coll" + SHARED_COMPONENT="$DSO_coll_inter" - STATIC_FRAMEWORK="$STATIC_schizo" - STATIC_COMPONENT="$STATIC_schizo_slurm" + STATIC_FRAMEWORK="$STATIC_coll" + STATIC_COMPONENT="$STATIC_coll_inter" shared_mode_override=static @@ -258558,9 +281608,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component schizo:slurm compile mode" >&5 -$as_echo_n "checking for MCA component schizo:slurm compile mode... " >&6; } - if test "$DIRECT_schizo" = "slurm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:inter compile mode" >&5 +$as_echo_n "checking for MCA component coll:inter compile mode... " >&6; } + if test "$DIRECT_coll" = "inter" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -258568,37 +281618,77 @@ $as_echo "$compile_mode" >&6; } fi + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # try to configure the component + if test "$should_build" = "1" ; then - ac_config_files="$ac_config_files orte/mca/schizo/slurm/Makefile" + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/coll/inter/post_configure.sh" - if test -z "$orte_check_slurm_happy" ; then + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components inter" -# Check whether --with-slurm was given. -if test "${with_slurm+set}" = set; then : - withval=$with_slurm; -fi + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components inter" + else + if test "coll" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/coll/inter/lib${OMPI_LIB_PREFIX}mca_coll_inter.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/coll/inter/libmca_coll_inter.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_coll_inter_component;" >> $outfile.extern + echo " &mca_coll_inter_component, " >> $outfile.struct + static_components="$static_components inter" + fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:inter can compile" >&5 +$as_echo_n "checking if MCA component coll:inter can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - if test "$with_slurm" = "no" ; then - orte_check_slurm_happy="no" - elif test "$with_slurm" = "" ; then - # unless user asked, only build slurm component on linux, AIX, - # and OS X systems (these are the platforms that SLURM - # supports) - case $host in - *-linux*|*-aix*|*-apple-darwin*) - orte_check_slurm_happy="yes" - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SLURM srun in PATH" >&5 -$as_echo_n "checking for SLURM srun in PATH... " >&6; } + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_coll" = "inter" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** coll component inter was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_coll" = "inter" ; then +as_fn_error $? "*** coll component inter was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi -# 1 is the variable name to do "which" on -# 2 is the variable name to assign the return value to + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$coll_inter_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -258611,7 +281701,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_prog opal_file opal_dir opal_sentinel; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -258630,7 +281720,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_prog opal_file opal_dir opal_sentinel\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -258638,17 +281728,24 @@ opal_scope_index=`expr $opal_scope_index + 1` -opal_prog=srun - -IFS_SAVE=$IFS -IFS="$PATH_SEPARATOR" -for opal_dir in $PATH; do - if test -x "$opal_dir/$opal_prog"; then - ORTE_CHECK_SLURM_SRUN="$opal_dir/$opal_prog" - break - fi -done -IFS=$IFS_SAVE + for arg in $coll_inter_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -258672,621 +281769,171 @@ done - if test "$ORTE_CHECK_SLURM_SRUN" = ""; then - orte_check_slurm_happy="no" - else - orte_check_slurm_happy="yes" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $orte_check_slurm_happy" >&5 -$as_echo "$orte_check_slurm_happy" >&6; } - ;; - esac - else - orte_check_slurm_happy="yes" - fi - - if test "$orte_check_slurm_happy" = "yes"; then : - ac_fn_c_check_func "$LINENO" "fork" "ac_cv_func_fork" -if test "x$ac_cv_func_fork" = xyes; then : - orte_check_slurm_happy="yes" -else - orte_check_slurm_happy="no" -fi - -fi - - if test "$orte_check_slurm_happy" = "yes"; then : - ac_fn_c_check_func "$LINENO" "execve" "ac_cv_func_execve" -if test "x$ac_cv_func_execve" = xyes; then : - orte_check_slurm_happy="yes" -else - orte_check_slurm_happy="no" -fi - -fi - - if test "$orte_check_slurm_happy" = "yes"; then : - ac_fn_c_check_func "$LINENO" "setpgid" "ac_cv_func_setpgid" -if test "x$ac_cv_func_setpgid" = xyes; then : - orte_check_slurm_happy="yes" -else - orte_check_slurm_happy="no" -fi - -fi - - # check to see if this is a Cray nativized slurm env. - - slurm_cray_env=0 - - if test -z "$opal_check_cray_alps_happy"; then - - -# Check whether --with-alps was given. -if test "${with_alps+set}" = set; then : - withval=$with_alps; -else - with_alps=auto -fi - - - if test -f /etc/opt/cray/release/clerelease; then - cle_level=`awk -F. '{print $1}' /etc/opt/cray/release/clerelease` - else - cle_level="unknown" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALPS support cle level $cle_level" >&5 -$as_echo_n "checking for ALPS support cle level $cle_level... " >&6; } - if test "$cle_level" = "4" && test "$with_alps" != "no"; then : - - -# -# if we've gotten here, its because we are building on a CLE 4 system -# - opal_check_alps_cle4_libdir_happy="no" - opal_check_alps_cle4_dir_happy="no" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ALPS components on a CLE 4 system with alps $with_alps" >&5 -$as_echo_n "checking Checking for ALPS components on a CLE 4 system with alps $with_alps... " >&6; } - - -# Check whether --with-alps-libdir was given. -if test "${with_alps_libdir+set}" = set; then : - withval=$with_alps_libdir; -fi - - -# -# check to see if Open MPI is being built on a CLE 4 eslogin node -# - if test -f /etc/opt/cray/release/ESLrelease; then : - default_alps_dir="/opt/cray/xe-sysroot/default/usr" -else - default_alps_dir="/usr" -fi - - if test -z "$with_alps_libdir"; then : - if test "$with_alps" != "yes" && test "$with_alps" != "auto"; then : - if test -d "$with_alps_libdir/lib64"; then : - opal_check_alps_libdir="$with_alps_libdir/lib64" -else - opal_check_alps_libdir="$with_alps_libdir/lib" -fi -else - opal_check_alps_libdir="$default_alps_dir/lib/alps" -fi - -fi - - if test "$with_alps" = "yes" || test "$with_alps" = "auto"; then : - opal_check_alps_dir=$default_alps_dir -else - opal_check_alps_dir=$with_alps -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_libdir/libalps.a is present" >&5 -$as_echo_n "checking if $opal_check_alps_libdir/libalps.a is present... " >&6; } - if test -f "$opal_check_alps_libdir/libalps.a"; then : - opal_check_alps_libdir_cle4_happy="yes" -else - opal_check_alps_libdir_cle4_happy="no", - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $opal_check_alps_dir/include/alps/apInfo.h is present" >&5 -$as_echo_n "checking if $opal_check_alps_dir/include/alps/apInfo.h is present... " >&6; } - if test -f "$opal_check_alps_dir/include/alps/apInfo.h"; then : - opal_check_alps_dir_cle4_happy="yes" -else - opal_check_alps_dir_cle4_happy="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "$opal_check_alps_libdir_cle4_happy" = "yes" && test "$opal_check_alps_dir_cle4_happy" = "yes"; then : - CRAY_ALPSLLI_CFLAGS="-I$opal_check_alps_dir/include" - CRAY_ALPSLLI_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - CRAY_ALPSLLI_STATIC_LIBS="-L$opal_check_alps_libdir -lalpslli -lalpsutil" - opal_check_cray_alps_happy="yes" -else - opal_check_cray_alps_happy="no" -fi - -else - if test "$with_alps" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy=no - -else - if test "$with_alps" = "auto" || test "$with_alps" = "yes"; then : - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSLLI" >&5 -$as_echo_n "checking for CRAY_ALPSLLI... " >&6; } - -if test -n "$CRAY_ALPSLLI_CFLAGS"; then - pkg_cv_CRAY_ALPSLLI_CFLAGS="$CRAY_ALPSLLI_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_CFLAGS=`$PKG_CONFIG --cflags "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSLLI_LIBS"; then - pkg_cv_CRAY_ALPSLLI_LIBS="$CRAY_ALPSLLI_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_LIBS=`$PKG_CONFIG --libs "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSLLI_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS="$CRAY_ALPSLLI_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpslli\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpslli") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSLLI_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpslli" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpslli" 2>&1` - else - CRAY_ALPSLLI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpslli" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSLLI_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -else - CRAY_ALPSLLI_CFLAGS=$pkg_cv_CRAY_ALPSLLI_CFLAGS - CRAY_ALPSLLI_LIBS=$pkg_cv_CRAY_ALPSLLI_LIBS - CRAY_ALPSLLI_STATIC_LIBS=$pkg_cv_CRAY_ALPSLLI_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPSUTIL" >&5 -$as_echo_n "checking for CRAY_ALPSUTIL... " >&6; } - -if test -n "$CRAY_ALPSUTIL_CFLAGS"; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS="$CRAY_ALPSUTIL_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_CFLAGS=`$PKG_CONFIG --cflags "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSUTIL_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_LIBS="$CRAY_ALPSUTIL_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_LIBS=`$PKG_CONFIG --libs "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPSUTIL_STATIC_LIBS"; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS="$CRAY_ALPSUTIL_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alpsutil\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alpsutil") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alpsutil" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alpsutil" 2>&1` - else - CRAY_ALPSUTIL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alpsutil" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPSUTIL_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - else - CRAY_ALPSUTIL_CFLAGS=$pkg_cv_CRAY_ALPSUTIL_CFLAGS - CRAY_ALPSUTIL_LIBS=$pkg_cv_CRAY_ALPSUTIL_LIBS - CRAY_ALPSUTIL_STATIC_LIBS=$pkg_cv_CRAY_ALPSUTIL_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_ALPS" >&5 -$as_echo_n "checking for CRAY_ALPS... " >&6; } -if test -n "$CRAY_ALPS_CFLAGS"; then - pkg_cv_CRAY_ALPS_CFLAGS="$CRAY_ALPS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_CFLAGS=`$PKG_CONFIG --cflags "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPS_LIBS"; then - pkg_cv_CRAY_ALPS_LIBS="$CRAY_ALPS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_LIBS=`$PKG_CONFIG --libs "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_ALPS_STATIC_LIBS"; then - pkg_cv_CRAY_ALPS_STATIC_LIBS="$CRAY_ALPS_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-alps\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-alps") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_ALPS_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-alps" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-alps" 2>&1` - else - CRAY_ALPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-alps" 2>&1` + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_ALPS_PKG_ERRORS" >&5 - - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi + done -else - CRAY_ALPS_CFLAGS=$pkg_cv_CRAY_ALPS_CFLAGS - CRAY_ALPS_LIBS=$pkg_cv_CRAY_ALPS_LIBS - CRAY_ALPS_STATIC_LIBS=$pkg_cv_CRAY_ALPS_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRAY_WLM_DETECT" >&5 -$as_echo_n "checking for CRAY_WLM_DETECT... " >&6; } + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -if test -n "$CRAY_WLM_DETECT_CFLAGS"; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS="$CRAY_WLM_DETECT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_CFLAGS=`$PKG_CONFIG --cflags "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRAY_WLM_DETECT_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_LIBS="$CRAY_WLM_DETECT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_LIBS=`$PKG_CONFIG --libs "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes + + for arg in $coll_inter_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - else - pkg_failed=untried + done fi -if test -n "$CRAY_WLM_DETECT_STATIC_LIBS"; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS="$CRAY_WLM_DETECT_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cray-wlm_detect\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cray-wlm_detect") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS=`$PKG_CONFIG --libs --static "cray-wlm_detect" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - pkg_failed=yes + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - else - pkg_failed=untried fi + done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cray-wlm_detect" 2>&1` - else - CRAY_WLM_DETECT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cray-wlm_detect" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRAY_WLM_DETECT_PKG_ERRORS" >&5 + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 -fi -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - opal_check_cray_alps_happy="no" - if test "$with_alps" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ALPS support requested but pkg-config failed." >&5 -$as_echo "$as_me: WARNING: ALPS support requested but pkg-config failed." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Need to explicitly indicate ALPS directory" >&5 -$as_echo "$as_me: WARNING: Need to explicitly indicate ALPS directory" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the configure line using --with-alps option." >&5 -$as_echo "$as_me: WARNING: on the configure line using --with-alps option." >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 fi + if test "$coll_inter_WRAPPER_EXTRA_LIBS" = ""; then : -else - CRAY_WLM_DETECT_CFLAGS=$pkg_cv_CRAY_WLM_DETECT_CFLAGS - CRAY_WLM_DETECT_LIBS=$pkg_cv_CRAY_WLM_DETECT_LIBS - CRAY_WLM_DETECT_STATIC_LIBS=$pkg_cv_CRAY_WLM_DETECT_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - opal_check_cray_alps_happy="yes" -cat >>confdefs.h <<_ACEOF -#define CRAY_WLM_DETECT 1 -_ACEOF + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $coll_inter_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: See ./configure --help for how to control Open MPI" >&5 -$as_echo "$as_me: WARNING: See ./configure --help for how to control Open MPI" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: configuration for ALPS on CLE 5 and higher systems" >&5 -$as_echo "$as_me: WARNING: configuration for ALPS on CLE 5 and higher systems" >&2;} - as_fn_error $? "Aborting" "$LINENO" 5 + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - fi + done -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&5 -$as_echo "opal_check_cray_alps_happy = $opal_check_cray_alps_happy" >&6; } + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$opal_check_cray_alps_happy" = "yes" && test "$enable_static" = "yes"; then : - CRAY_ALPSLLI_LIBS = $CRAY_ALPSLLI_STATIC_LIBS - CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done +else + # Is the private index set? If not, set it. @@ -259298,7 +281945,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -259317,7 +281964,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -259325,20 +281972,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="Cray Alps: $opal_check_cray_alps_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + for arg in $coll_inter_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done # Unwind the index @@ -259362,24 +282013,17 @@ done - fi - - if test "$opal_check_cray_alps_happy" = "yes"; then : - orte_slurm_cray_LDFLAGS="$orte_slurm_cray_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS" - orte_slurm_cray_CPPFLAGS="$orte_slurm_cray_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS" - orte_slurm_cray_LIBS="$orte_slurm_cray_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - orte_slurm_cray_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - orte_slurm_cray_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS" - slurm_cray_env=1 fi + fi - -cat >>confdefs.h <<_ACEOF -#define SLURM_CRAY_ENV $slurm_cray_env -_ACEOF - - + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$coll_inter_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -259392,7 +282036,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -259411,7 +282055,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -259419,20 +282063,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Resource Managers | tr ' ' '_') - ompi_summary_line="Slurm: $orte_check_slurm_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + for arg in $coll_inter_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done # Unwind the index @@ -259456,75 +282104,205 @@ done +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_inter_WRAPPER_EXTRA_CPPFLAGS ($coll_inter_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring coll_inter_WRAPPER_EXTRA_CPPFLAGS ($coll_inter_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:inter can compile" >&5 +$as_echo_n "checking if MCA component coll:inter can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_coll" = "inter" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"inter\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"inter\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test "$orte_check_slurm_happy" = "yes"; then : - schizo_slurm_good=1 + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "inter" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"inter\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"inter\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components inter" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_ompi_coll_inter_DSO=1 + else + BUILD_ompi_coll_inter_DSO=0 + fi + if test "$BUILD_ompi_coll_inter_DSO" = "1"; then + MCA_BUILD_ompi_coll_inter_DSO_TRUE= + MCA_BUILD_ompi_coll_inter_DSO_FALSE='#' else - schizo_slurm_good=0 + MCA_BUILD_ompi_coll_inter_DSO_TRUE='#' + MCA_BUILD_ompi_coll_inter_DSO_FALSE= fi - # if check worked, set wrapper flags if so. - # Evaluate succeed / fail - if test "$schizo_slurm_good" = "1"; then : - should_build=$should_build + ac_config_files="$ac_config_files ompi/mca/coll/inter/Makefile" + + + unset compile_mode + + opal_show_subsubsubtitle "MCA component coll:libnbc (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/ompi/mca/coll/libnbc" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "libnbc" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_coll" = "1"; then : + want_component=0 +fi + if test "$DISABLE_coll_libnbc" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 else should_build=0 fi - # set build flags to use in makefile + SHARED_FRAMEWORK="$DSO_coll" + SHARED_COMPONENT="$DSO_coll_libnbc" + STATIC_FRAMEWORK="$STATIC_coll" + STATIC_COMPONENT="$STATIC_coll_libnbc" + shared_mode_override=static - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - if test "$should_build" = "1"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:libnbc compile mode" >&5 +$as_echo_n "checking for MCA component coll:libnbc compile mode... " >&6; } + if test "$DIRECT_coll" = "libnbc" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/schizo/slurm/post_configure.sh" + infile="$srcdir/ompi/mca/coll/libnbc/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components slurm" + all_components="$all_components libnbc" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components slurm" + dso_components="$dso_components libnbc" else - if test "schizo" = "common"; then + if test "coll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/schizo/slurm/lib${ORTE_LIB_PREFIX}mca_schizo_slurm.la $static_ltlibs" + static_ltlibs="mca/coll/libnbc/lib${OMPI_LIB_PREFIX}mca_coll_libnbc.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/schizo/slurm/libmca_schizo_slurm.la $static_ltlibs" + static_ltlibs="mca/coll/libnbc/libmca_coll_libnbc.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_schizo_slurm_component;" >> $outfile.extern - echo " &mca_schizo_slurm_component, " >> $outfile.struct - static_components="$static_components slurm" + echo "extern const mca_base_component_t mca_coll_libnbc_component;" >> $outfile.extern + echo " &mca_coll_libnbc_component, " >> $outfile.struct + static_components="$static_components libnbc" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:slurm can compile" >&5 -$as_echo_n "checking if MCA component schizo:slurm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:libnbc can compile" >&5 +$as_echo_n "checking if MCA component coll:libnbc can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_schizo" = "slurm" ; then + if test "$DIRECT_coll" = "libnbc" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_schizo_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** schizo component slurm was supposed to be direct-called, but +as_fn_error $? "*** coll component libnbc was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -259532,8 +282310,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_schizo" = "slurm" ; then -as_fn_error $? "*** schizo component slurm was supposed to be direct-called, but + if test "$DIRECT_coll" = "libnbc" ; then +as_fn_error $? "*** coll component libnbc was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -259548,7 +282326,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$schizo_slurm_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$coll_libnbc_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -259588,7 +282366,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_slurm_LDFLAGS; do + for arg in $coll_libnbc_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -259669,7 +282447,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_slurm_WRAPPER_EXTRA_LDFLAGS; do + for arg in $coll_libnbc_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -259711,7 +282489,7 @@ fi - if test "$schizo_slurm_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$coll_libnbc_WRAPPER_EXTRA_LIBS" = ""; then : @@ -259751,7 +282529,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_slurm_LIBS; do + for arg in $coll_libnbc_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -259832,7 +282610,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_slurm_WRAPPER_EXTRA_LIBS; do + for arg in $coll_libnbc_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -259880,7 +282658,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$schizo_slurm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$coll_libnbc_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -259923,7 +282701,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $schizo_slurm_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $coll_libnbc_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -259966,89 +282744,69 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring schizo_slurm_WRAPPER_EXTRA_CPPFLAGS ($schizo_slurm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring schizo_slurm_WRAPPER_EXTRA_CPPFLAGS ($schizo_slurm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_libnbc_WRAPPER_EXTRA_CPPFLAGS ($coll_libnbc_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring coll_libnbc_WRAPPER_EXTRA_CPPFLAGS ($coll_libnbc_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:slurm can compile" >&5 -$as_echo_n "checking if MCA component schizo:slurm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:libnbc can compile" >&5 +$as_echo_n "checking if MCA component coll:libnbc can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_schizo" = "slurm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"slurm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"slurm\" failed to configure properly" >&2;} + if test "$with_coll" = "libnbc" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"libnbc\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"libnbc\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_schizo" ; then - if test "$DIRECT_schizo" = "slurm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"slurm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"slurm\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "libnbc" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"libnbc\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"libnbc\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components slurm" -fi - - + # add component to all component list + all_components="$all_components libnbc" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_schizo_slurm_DSO=1 -else - BUILD_orte_schizo_slurm_DSO=0 -fi - if test "$BUILD_orte_schizo_slurm_DSO" = "1"; then - MCA_BUILD_orte_schizo_slurm_DSO_TRUE= - MCA_BUILD_orte_schizo_slurm_DSO_FALSE='#' -else - MCA_BUILD_orte_schizo_slurm_DSO_TRUE='#' - MCA_BUILD_orte_schizo_slurm_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 + if test "$compile_mode" = "dso" ; then + BUILD_ompi_coll_libnbc_DSO=1 + else + BUILD_ompi_coll_libnbc_DSO=0 + fi + if test "$BUILD_ompi_coll_libnbc_DSO" = "1"; then + MCA_BUILD_ompi_coll_libnbc_DSO_TRUE= + MCA_BUILD_ompi_coll_libnbc_DSO_FALSE='#' else - components_last_result=0 + MCA_BUILD_ompi_coll_libnbc_DSO_TRUE='#' + MCA_BUILD_ompi_coll_libnbc_DSO_FALSE= fi - unset compile_mode - - - - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + ac_config_files="$ac_config_files ompi/mca/coll/libnbc/Makefile" - if test "1" != "0"; then : + unset compile_mode - for component_path in $srcdir/orte/mca/schizo/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component schizo:$component (need to configure)" + opal_show_subsubsubtitle "MCA component coll:self (no configuration)" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/schizo/$component" + component_path="$srcdir/ompi/mca/coll/self" want_component=0 # build if: @@ -260080,8 +282838,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_schizo" ; then - if test "$DIRECT_schizo" = "$component" ; then + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "self" ; then want_component=1 else want_component=0 @@ -260090,14 +282848,12 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_schizo" = "1"; then : + if test "$DISABLE_coll" = "1"; then : + want_component=0 +fi + if test "$DISABLE_coll_self" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_schizo_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi if test "$want_component" = "1"; then : should_build=1 @@ -260106,13 +282862,11 @@ fi - SHARED_FRAMEWORK="$DSO_schizo" - str="SHARED_COMPONENT=\$DSO_schizo_$component" - eval $str + SHARED_FRAMEWORK="$DSO_coll" + SHARED_COMPONENT="$DSO_coll_self" - STATIC_FRAMEWORK="$STATIC_schizo" - str="STATIC_COMPONENT=\$STATIC_schizo_$component" - eval $str + STATIC_FRAMEWORK="$STATIC_coll" + STATIC_COMPONENT="$STATIC_coll_self" shared_mode_override=static @@ -260130,9 +282884,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component schizo:$component compile mode" >&5 -$as_echo_n "checking for MCA component schizo:$component compile mode... " >&6; } - if test "$DIRECT_schizo" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:self compile mode" >&5 +$as_echo_n "checking for MCA component coll:self compile mode... " >&6; } + if test "$DIRECT_coll" = "self" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -260140,9 +282894,77 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/coll/self/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components self" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components self" + else + if test "coll" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/coll/self/lib${OMPI_LIB_PREFIX}mca_coll_self.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/coll/self/libmca_coll_self.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_coll_self_component;" >> $outfile.extern + echo " &mca_coll_self_component, " >> $outfile.struct + static_components="$static_components self" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:self can compile" >&5 +$as_echo_n "checking if MCA component coll:self can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_coll" = "self" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** coll component self was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_coll" = "self" ; then +as_fn_error $? "*** coll component self was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$coll_self_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -260155,7 +282977,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -260174,7 +282996,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -260182,129 +283004,105 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# orte/mca/schizo/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="orte/mca/schizo/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# + for arg in $coll_self_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # - # Move into the target directory - # - subdir_parent=`pwd` - cd $subdir_dir +else - # - # Make a "../" for each directory in $subdir_dir. - # - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # - # Construct the --cache-file argument - # + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # - # Invoke the configure script in the subdirectory - # + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - # - # Go back to the topdir - # - cd $subdir_parent + for arg in $coll_self_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - -# -# Clean up -# + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -260327,105 +283125,90 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/orte/mca/schizo/all_components/post_configure.sh" - if test -f $infile; then +fi + if test "$coll_self_WRAPPER_EXTRA_LIBS" = ""; then : - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - schizo_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - schizo_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/schizo/$component/post_configure.sh" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "schizo" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/schizo/$component/lib${ORTE_LIB_PREFIX}mca_schizo_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/schizo/$component/libmca_schizo_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_schizo_$component_component;" >> $outfile.extern - echo " &mca_schizo_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:$component can compile" >&5 -$as_echo_n "checking if MCA component schizo:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + for arg in $coll_self_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_schizo" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_schizo_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** schizo component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_schizo" = "$component" ; then -as_fn_error $? "*** schizo component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$schizo_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -260465,21 +283248,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $coll_self_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -260505,8 +283288,18 @@ unset $opal_var done -str="line=\$schizo_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$coll_self_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -260546,21 +283339,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $coll_self_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_cppflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi fi done @@ -260587,189 +283380,71 @@ done - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_self_WRAPPER_EXTRA_CPPFLAGS ($coll_self_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring coll_self_WRAPPER_EXTRA_CPPFLAGS ($coll_self_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component schizo:$component can compile" >&5 -$as_echo_n "checking if MCA component schizo:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:self can compile" >&5 +$as_echo_n "checking if MCA component coll:self can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_schizo" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + if test "$with_coll" = "self" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"self\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"self\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_schizo" ; then - if test "$DIRECT_schizo" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "self" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"self\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"self\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - fi - fi - done - -fi - - MCA_orte_schizo_ALL_COMPONENTS="$all_components" - MCA_orte_schizo_STATIC_COMPONENTS="$static_components" - MCA_orte_schizo_DSO_COMPONENTS="$dso_components" - MCA_orte_schizo_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_orte_schizo_ALL_SUBDIRS= - for item in $all_components ; do - MCA_orte_schizo_ALL_SUBDIRS="$MCA_orte_schizo_ALL_SUBDIRS mca/schizo/$item" - done - - - - MCA_orte_schizo_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_orte_schizo_STATIC_SUBDIRS="$MCA_orte_schizo_STATIC_SUBDIRS mca/schizo/$item" - done - - - - MCA_orte_schizo_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_orte_schizo_DSO_SUBDIRS="$MCA_orte_schizo_DSO_SUBDIRS mca/schizo/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "schizo" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi + # add component to all component list + all_components="$all_components self" fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS snapc" - MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/snapc" - MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_snapc_ALL_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_snapc_DSO_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_snapc_STATIC_SUBDIRS)" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/snapc/libmca_snapc.la" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_snapc_STATIC_LTLIBS)" - - opal_show_subsubtitle "Configuring MCA framework snapc" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=orte/mca/snapc/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files orte/mca/snapc/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework snapc" >&5 -$as_echo_n "checking for no configure components in framework snapc... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework snapc" >&5 -$as_echo_n "checking for m4 configure components in framework snapc... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: full" >&5 -$as_echo "full" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - # run the configure logic for the no-config components - - - # configure components that use built-in configuration scripts + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_ompi_coll_self_DSO=1 + else + BUILD_ompi_coll_self_DSO=0 + fi + if test "$BUILD_ompi_coll_self_DSO" = "1"; then + MCA_BUILD_ompi_coll_self_DSO_TRUE= + MCA_BUILD_ompi_coll_self_DSO_FALSE='#' +else + MCA_BUILD_ompi_coll_self_DSO_TRUE='#' + MCA_BUILD_ompi_coll_self_DSO_FALSE= +fi + ac_config_files="$ac_config_files ompi/mca/coll/self/Makefile" - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 + unset compile_mode - opal_show_subsubsubtitle "MCA component snapc:full (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component coll:sm (no configuration)" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/snapc/full" + component_path="$srcdir/ompi/mca/coll/sm" want_component=0 # build if: @@ -260801,8 +283476,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_snapc" ; then - if test "$DIRECT_snapc" = "full" ; then + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "sm" ; then want_component=1 else want_component=0 @@ -260811,27 +283486,25 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_snapc" = "1"; then : + if test "$DISABLE_coll" = "1"; then : want_component=0 fi - if test "$DISABLE_snapc_full" = "1"; then : + if test "$DISABLE_coll_sm" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_snapc" - SHARED_COMPONENT="$DSO_snapc_full" + SHARED_FRAMEWORK="$DSO_coll" + SHARED_COMPONENT="$DSO_coll_sm" - STATIC_FRAMEWORK="$STATIC_snapc" - STATIC_COMPONENT="$STATIC_snapc_full" + STATIC_FRAMEWORK="$STATIC_coll" + STATIC_COMPONENT="$STATIC_coll_sm" shared_mode_override=static @@ -260849,9 +283522,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component snapc:full compile mode" >&5 -$as_echo_n "checking for MCA component snapc:full compile mode... " >&6; } - if test "$DIRECT_snapc" = "full" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:sm compile mode" >&5 +$as_echo_n "checking for MCA component coll:sm compile mode... " >&6; } + if test "$DIRECT_coll" = "sm" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -260859,66 +283532,53 @@ $as_echo "$compile_mode" >&6; } fi + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # try to configure the component - - ac_config_files="$ac_config_files orte/mca/snapc/full/Makefile" - - - # If we don't want FT, don't compile this component - if test "$opal_want_ft_cr" = "1"; then : - should_build=$should_build -else - should_build=0 -fi - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/snapc/full/post_configure.sh" + infile="$srcdir/ompi/mca/coll/sm/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components full" + all_components="$all_components sm" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components full" + dso_components="$dso_components sm" else - if test "snapc" = "common"; then + if test "coll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/snapc/full/lib${ORTE_LIB_PREFIX}mca_snapc_full.la $static_ltlibs" + static_ltlibs="mca/coll/sm/lib${OMPI_LIB_PREFIX}mca_coll_sm.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/snapc/full/libmca_snapc_full.la $static_ltlibs" + static_ltlibs="mca/coll/sm/libmca_coll_sm.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_snapc_full_component;" >> $outfile.extern - echo " &mca_snapc_full_component, " >> $outfile.struct - static_components="$static_components full" + echo "extern const mca_base_component_t mca_coll_sm_component;" >> $outfile.extern + echo " &mca_coll_sm_component, " >> $outfile.struct + static_components="$static_components sm" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component snapc:full can compile" >&5 -$as_echo_n "checking if MCA component snapc:full can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:sm can compile" >&5 +$as_echo_n "checking if MCA component coll:sm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_snapc" = "full" ; then + if test "$DIRECT_coll" = "sm" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_snapc_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** snapc component full was supposed to be direct-called, but +as_fn_error $? "*** coll component sm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -260926,8 +283586,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_snapc" = "full" ; then -as_fn_error $? "*** snapc component full was supposed to be direct-called, but + if test "$DIRECT_coll" = "sm" ; then +as_fn_error $? "*** coll component sm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -260942,7 +283602,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$snapc_full_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$coll_sm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -260982,7 +283642,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $snapc_full_LDFLAGS; do + for arg in $coll_sm_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -261063,7 +283723,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $snapc_full_WRAPPER_EXTRA_LDFLAGS; do + for arg in $coll_sm_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -261105,7 +283765,7 @@ fi - if test "$snapc_full_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$coll_sm_WRAPPER_EXTRA_LIBS" = ""; then : @@ -261145,7 +283805,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $snapc_full_LIBS; do + for arg in $coll_sm_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -261226,7 +283886,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $snapc_full_WRAPPER_EXTRA_LIBS; do + for arg in $coll_sm_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -261274,7 +283934,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$snapc_full_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$coll_sm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -261317,7 +283977,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $snapc_full_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $coll_sm_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -261360,89 +284020,69 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring snapc_full_WRAPPER_EXTRA_CPPFLAGS ($snapc_full_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring snapc_full_WRAPPER_EXTRA_CPPFLAGS ($snapc_full_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_sm_WRAPPER_EXTRA_CPPFLAGS ($coll_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring coll_sm_WRAPPER_EXTRA_CPPFLAGS ($coll_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component snapc:full can compile" >&5 -$as_echo_n "checking if MCA component snapc:full can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:sm can compile" >&5 +$as_echo_n "checking if MCA component coll:sm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_snapc" = "full" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"full\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"full\" failed to configure properly" >&2;} + if test "$with_coll" = "sm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_snapc" ; then - if test "$DIRECT_snapc" = "full" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"full\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"full\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "sm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components full" -fi - - + # add component to all component list + all_components="$all_components sm" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_snapc_full_DSO=1 -else - BUILD_orte_snapc_full_DSO=0 -fi - if test "$BUILD_orte_snapc_full_DSO" = "1"; then - MCA_BUILD_orte_snapc_full_DSO_TRUE= - MCA_BUILD_orte_snapc_full_DSO_FALSE='#' -else - MCA_BUILD_orte_snapc_full_DSO_TRUE='#' - MCA_BUILD_orte_snapc_full_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 + if test "$compile_mode" = "dso" ; then + BUILD_ompi_coll_sm_DSO=1 + else + BUILD_ompi_coll_sm_DSO=0 + fi + if test "$BUILD_ompi_coll_sm_DSO" = "1"; then + MCA_BUILD_ompi_coll_sm_DSO_TRUE= + MCA_BUILD_ompi_coll_sm_DSO_FALSE='#' else - components_last_result=0 + MCA_BUILD_ompi_coll_sm_DSO_TRUE='#' + MCA_BUILD_ompi_coll_sm_DSO_FALSE= fi - unset compile_mode - - - - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + ac_config_files="$ac_config_files ompi/mca/coll/sm/Makefile" - if test "1" != "0"; then : + unset compile_mode - for component_path in $srcdir/orte/mca/snapc/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component snapc:$component (need to configure)" + opal_show_subsubsubtitle "MCA component coll:sync (no configuration)" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/snapc/$component" + component_path="$srcdir/ompi/mca/coll/sync" want_component=0 # build if: @@ -261474,8 +284114,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_snapc" ; then - if test "$DIRECT_snapc" = "$component" ; then + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "sync" ; then want_component=1 else want_component=0 @@ -261484,14 +284124,12 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_snapc" = "1"; then : + if test "$DISABLE_coll" = "1"; then : + want_component=0 +fi + if test "$DISABLE_coll_sync" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_snapc_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi if test "$want_component" = "1"; then : should_build=1 @@ -261500,13 +284138,11 @@ fi - SHARED_FRAMEWORK="$DSO_snapc" - str="SHARED_COMPONENT=\$DSO_snapc_$component" - eval $str + SHARED_FRAMEWORK="$DSO_coll" + SHARED_COMPONENT="$DSO_coll_sync" - STATIC_FRAMEWORK="$STATIC_snapc" - str="STATIC_COMPONENT=\$STATIC_snapc_$component" - eval $str + STATIC_FRAMEWORK="$STATIC_coll" + STATIC_COMPONENT="$STATIC_coll_sync" shared_mode_override=static @@ -261524,9 +284160,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component snapc:$component compile mode" >&5 -$as_echo_n "checking for MCA component snapc:$component compile mode... " >&6; } - if test "$DIRECT_snapc" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:sync compile mode" >&5 +$as_echo_n "checking for MCA component coll:sync compile mode... " >&6; } + if test "$DIRECT_coll" = "sync" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -261534,9 +284170,77 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/coll/sync/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components sync" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components sync" + else + if test "coll" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/coll/sync/lib${OMPI_LIB_PREFIX}mca_coll_sync.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/coll/sync/libmca_coll_sync.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_coll_sync_component;" >> $outfile.extern + echo " &mca_coll_sync_component, " >> $outfile.struct + static_components="$static_components sync" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:sync can compile" >&5 +$as_echo_n "checking if MCA component coll:sync can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_coll" = "sync" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** coll component sync was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_coll" = "sync" ; then +as_fn_error $? "*** coll component sync was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$coll_sync_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -261549,7 +284253,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -261568,7 +284272,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -261576,129 +284280,24 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# orte/mca/snapc/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="orte/mca/snapc/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - - # - # Construct the --cache-file argument - # - - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - - # - # Invoke the configure script in the subdirectory - # - - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi - - # - # Go back to the topdir - # - - cd $subdir_parent + for arg in $coll_sync_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - -# -# Clean up -# + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -261721,105 +284320,8 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/orte/mca/snapc/all_components/post_configure.sh" - if test -f $infile; then - - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - snapc_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - snapc_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi - - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/snapc/$component/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "snapc" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/snapc/$component/lib${ORTE_LIB_PREFIX}mca_snapc_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/snapc/$component/libmca_snapc_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_snapc_$component_component;" >> $outfile.extern - echo " &mca_snapc_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component snapc:$component can compile" >&5 -$as_echo_n "checking if MCA component snapc:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_snapc" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_snapc_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** snapc component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_snapc" = "$component" ; then -as_fn_error $? "*** snapc component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$snapc_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" +else @@ -261859,7 +284361,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $coll_sync_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -261899,8 +284401,9 @@ unset $opal_var done -str="line=\$snapc_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + +fi + if test "$coll_sync_WRAPPER_EXTRA_LIBS" = ""; then : @@ -261940,7 +284443,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $coll_sync_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -261981,189 +284484,243 @@ done - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - +else - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component snapc:$component can compile" >&5 -$as_echo_n "checking if MCA component snapc:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_snapc" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - if test ! -z "$DIRECT_snapc" ; then - if test "$DIRECT_snapc" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi done -fi - - MCA_orte_snapc_ALL_COMPONENTS="$all_components" - MCA_orte_snapc_STATIC_COMPONENTS="$static_components" - MCA_orte_snapc_DSO_COMPONENTS="$dso_components" - MCA_orte_snapc_STATIC_LTLIBS="$static_ltlibs" - - - - + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - MCA_orte_snapc_ALL_SUBDIRS= - for item in $all_components ; do - MCA_orte_snapc_ALL_SUBDIRS="$MCA_orte_snapc_ALL_SUBDIRS mca/snapc/$item" + for arg in $coll_sync_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - MCA_orte_snapc_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_orte_snapc_STATIC_SUBDIRS="$MCA_orte_snapc_STATIC_SUBDIRS mca/snapc/$item" - done - - + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - MCA_orte_snapc_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_orte_snapc_DSO_SUBDIRS="$MCA_orte_snapc_DSO_SUBDIRS mca/snapc/$item" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done +fi - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "snapc" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - rm -f $outfile.struct $outfile.extern - unset all_components static_components dso_components outfile outfile_real + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS sstore" - MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/sstore" - MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_sstore_ALL_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_sstore_DSO_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_sstore_STATIC_SUBDIRS)" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/sstore/libmca_sstore.la" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_sstore_STATIC_LTLIBS)" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - opal_show_subsubtitle "Configuring MCA framework sstore" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + for arg in $coll_sync_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=orte/mca/sstore/base - as_dir=$outdir; as_fn_mkdir_p + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # emit Makefile rule - ac_config_files="$ac_config_files orte/mca/sstore/Makefile" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework sstore" >&5 -$as_echo_n "checking for no configure components in framework sstore... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework sstore" >&5 -$as_echo_n "checking for m4 configure components in framework sstore... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: central, stage" >&5 -$as_echo "central, stage" >&6; } +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_sync_WRAPPER_EXTRA_CPPFLAGS ($coll_sync_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring coll_sync_WRAPPER_EXTRA_CPPFLAGS ($coll_sync_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:sync can compile" >&5 +$as_echo_n "checking if MCA component coll:sync can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # If this component was requested as the default for this + # type, then abort. + if test "$with_coll" = "sync" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sync\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"sync\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # run the configure logic for the no-config components + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "sync" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sync\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"sync\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + # add component to all component list + all_components="$all_components sync" + fi - # configure components that use built-in configuration scripts + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_ompi_coll_sync_DSO=1 + else + BUILD_ompi_coll_sync_DSO=0 + fi + if test "$BUILD_ompi_coll_sync_DSO" = "1"; then + MCA_BUILD_ompi_coll_sync_DSO_TRUE= + MCA_BUILD_ompi_coll_sync_DSO_FALSE='#' +else + MCA_BUILD_ompi_coll_sync_DSO_TRUE='#' + MCA_BUILD_ompi_coll_sync_DSO_FALSE= +fi + ac_config_files="$ac_config_files ompi/mca/coll/sync/Makefile" - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 + unset compile_mode - opal_show_subsubsubtitle "MCA component sstore:central (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component coll:tuned (no configuration)" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/sstore/central" + component_path="$srcdir/ompi/mca/coll/tuned" want_component=0 # build if: @@ -262195,8 +284752,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_sstore" ; then - if test "$DIRECT_sstore" = "central" ; then + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "tuned" ; then want_component=1 else want_component=0 @@ -262205,27 +284762,25 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_sstore" = "1"; then : + if test "$DISABLE_coll" = "1"; then : want_component=0 fi - if test "$DISABLE_sstore_central" = "1"; then : + if test "$DISABLE_coll_tuned" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_sstore" - SHARED_COMPONENT="$DSO_sstore_central" + SHARED_FRAMEWORK="$DSO_coll" + SHARED_COMPONENT="$DSO_coll_tuned" - STATIC_FRAMEWORK="$STATIC_sstore" - STATIC_COMPONENT="$STATIC_sstore_central" + STATIC_FRAMEWORK="$STATIC_coll" + STATIC_COMPONENT="$STATIC_coll_tuned" shared_mode_override=static @@ -262243,9 +284798,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component sstore:central compile mode" >&5 -$as_echo_n "checking for MCA component sstore:central compile mode... " >&6; } - if test "$DIRECT_sstore" = "central" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:tuned compile mode" >&5 +$as_echo_n "checking for MCA component coll:tuned compile mode... " >&6; } + if test "$DIRECT_coll" = "tuned" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -262253,66 +284808,53 @@ $as_echo "$compile_mode" >&6; } fi + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # try to configure the component - - ac_config_files="$ac_config_files orte/mca/sstore/central/Makefile" - - - # If we don't want FT, don't compile this component - if test "$opal_want_ft_cr" = "1"; then : - should_build=$should_build -else - should_build=0 -fi - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/sstore/central/post_configure.sh" + infile="$srcdir/ompi/mca/coll/tuned/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components central" + all_components="$all_components tuned" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components central" + dso_components="$dso_components tuned" else - if test "sstore" = "common"; then + if test "coll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/sstore/central/lib${ORTE_LIB_PREFIX}mca_sstore_central.la $static_ltlibs" + static_ltlibs="mca/coll/tuned/lib${OMPI_LIB_PREFIX}mca_coll_tuned.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/sstore/central/libmca_sstore_central.la $static_ltlibs" + static_ltlibs="mca/coll/tuned/libmca_coll_tuned.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_sstore_central_component;" >> $outfile.extern - echo " &mca_sstore_central_component, " >> $outfile.struct - static_components="$static_components central" + echo "extern const mca_base_component_t mca_coll_tuned_component;" >> $outfile.extern + echo " &mca_coll_tuned_component, " >> $outfile.struct + static_components="$static_components tuned" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sstore:central can compile" >&5 -$as_echo_n "checking if MCA component sstore:central can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:tuned can compile" >&5 +$as_echo_n "checking if MCA component coll:tuned can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_sstore" = "central" ; then + if test "$DIRECT_coll" = "tuned" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_sstore_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** sstore component central was supposed to be direct-called, but +as_fn_error $? "*** coll component tuned was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -262320,8 +284862,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_sstore" = "central" ; then -as_fn_error $? "*** sstore component central was supposed to be direct-called, but + if test "$DIRECT_coll" = "tuned" ; then +as_fn_error $? "*** coll component tuned was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -262336,7 +284878,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$sstore_central_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$coll_tuned_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -262376,7 +284918,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $sstore_central_LDFLAGS; do + for arg in $coll_tuned_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -262457,7 +284999,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $sstore_central_WRAPPER_EXTRA_LDFLAGS; do + for arg in $coll_tuned_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -262499,7 +285041,7 @@ fi - if test "$sstore_central_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$coll_tuned_WRAPPER_EXTRA_LIBS" = ""; then : @@ -262539,7 +285081,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $sstore_central_LIBS; do + for arg in $coll_tuned_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -262620,7 +285162,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $sstore_central_WRAPPER_EXTRA_LIBS; do + for arg in $coll_tuned_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -262668,7 +285210,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$sstore_central_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$coll_tuned_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -262711,7 +285253,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $sstore_central_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $coll_tuned_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -262754,78 +285296,79 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring sstore_central_WRAPPER_EXTRA_CPPFLAGS ($sstore_central_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring sstore_central_WRAPPER_EXTRA_CPPFLAGS ($sstore_central_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_tuned_WRAPPER_EXTRA_CPPFLAGS ($coll_tuned_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring coll_tuned_WRAPPER_EXTRA_CPPFLAGS ($coll_tuned_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sstore:central can compile" >&5 -$as_echo_n "checking if MCA component sstore:central can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:tuned can compile" >&5 +$as_echo_n "checking if MCA component coll:tuned can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_sstore" = "central" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"central\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"central\" failed to configure properly" >&2;} + if test "$with_coll" = "tuned" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tuned\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tuned\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_sstore" ; then - if test "$DIRECT_sstore" = "central" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"central\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"central\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "tuned" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tuned\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tuned\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components central" -fi - - + # add component to all component list + all_components="$all_components tuned" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_sstore_central_DSO=1 -else - BUILD_orte_sstore_central_DSO=0 -fi - if test "$BUILD_orte_sstore_central_DSO" = "1"; then - MCA_BUILD_orte_sstore_central_DSO_TRUE= - MCA_BUILD_orte_sstore_central_DSO_FALSE='#' + if test "$compile_mode" = "dso" ; then + BUILD_ompi_coll_tuned_DSO=1 + else + BUILD_ompi_coll_tuned_DSO=0 + fi + if test "$BUILD_ompi_coll_tuned_DSO" = "1"; then + MCA_BUILD_ompi_coll_tuned_DSO_TRUE= + MCA_BUILD_ompi_coll_tuned_DSO_FALSE='#' else - MCA_BUILD_orte_sstore_central_DSO_TRUE='#' - MCA_BUILD_orte_sstore_central_DSO_FALSE= + MCA_BUILD_ompi_coll_tuned_DSO_TRUE='#' + MCA_BUILD_ompi_coll_tuned_DSO_FALSE= fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi + ac_config_files="$ac_config_files ompi/mca/coll/tuned/Makefile" + unset compile_mode + # configure components that use built-in configuration scripts - opal_show_subsubsubtitle "MCA component sstore:stage (m4 configuration macro)" + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + opal_show_subsubsubtitle "MCA component coll:cuda (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/orte/mca/sstore/stage" + component_path="$srcdir/ompi/mca/coll/cuda" want_component=0 # build if: @@ -262857,8 +285400,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_sstore" ; then - if test "$DIRECT_sstore" = "stage" ; then + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "cuda" ; then want_component=1 else want_component=0 @@ -262867,10 +285410,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_sstore" = "1"; then : + if test "$DISABLE_coll" = "1"; then : want_component=0 fi - if test "$DISABLE_sstore_stage" = "1"; then : + if test "$DISABLE_coll_cuda" = "1"; then : want_component=0 fi @@ -262883,11 +285426,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_sstore" - SHARED_COMPONENT="$DSO_sstore_stage" + SHARED_FRAMEWORK="$DSO_coll" + SHARED_COMPONENT="$DSO_coll_cuda" - STATIC_FRAMEWORK="$STATIC_sstore" - STATIC_COMPONENT="$STATIC_sstore_stage" + STATIC_FRAMEWORK="$STATIC_coll" + STATIC_COMPONENT="$STATIC_coll_cuda" shared_mode_override=static @@ -262905,9 +285448,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component sstore:stage compile mode" >&5 -$as_echo_n "checking for MCA component sstore:stage compile mode... " >&6; } - if test "$DIRECT_sstore" = "stage" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:cuda compile mode" >&5 +$as_echo_n "checking for MCA component coll:cuda compile mode... " >&6; } + if test "$DIRECT_coll" = "cuda" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -262918,16 +285461,20 @@ # try to configure the component - ac_config_files="$ac_config_files orte/mca/sstore/stage/Makefile" + ac_config_files="$ac_config_files ompi/mca/coll/cuda/Makefile" - # If we don't want FT, don't compile this component - if test "$opal_want_ft_cr" = "1"; then : + # make sure that CUDA-aware checks have been done + + + # Only build if CUDA support is available + if test "x$CUDA_SUPPORT" = "x1"; then : should_build=$should_build else should_build=0 fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -262936,45 +285483,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/sstore/stage/post_configure.sh" + infile="$srcdir/ompi/mca/coll/cuda/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components stage" + all_components="$all_components cuda" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components stage" + dso_components="$dso_components cuda" else - if test "sstore" = "common"; then + if test "coll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/sstore/stage/lib${ORTE_LIB_PREFIX}mca_sstore_stage.la $static_ltlibs" + static_ltlibs="mca/coll/cuda/lib${OMPI_LIB_PREFIX}mca_coll_cuda.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/sstore/stage/libmca_sstore_stage.la $static_ltlibs" + static_ltlibs="mca/coll/cuda/libmca_coll_cuda.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_sstore_stage_component;" >> $outfile.extern - echo " &mca_sstore_stage_component, " >> $outfile.struct - static_components="$static_components stage" + echo "extern const mca_base_component_t mca_coll_cuda_component;" >> $outfile.extern + echo " &mca_coll_cuda_component, " >> $outfile.struct + static_components="$static_components cuda" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sstore:stage can compile" >&5 -$as_echo_n "checking if MCA component sstore:stage can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:cuda can compile" >&5 +$as_echo_n "checking if MCA component coll:cuda can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_sstore" = "stage" ; then + if test "$DIRECT_coll" = "cuda" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_sstore_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** sstore component stage was supposed to be direct-called, but +as_fn_error $? "*** coll component cuda was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -262982,8 +285529,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_sstore" = "stage" ; then -as_fn_error $? "*** sstore component stage was supposed to be direct-called, but + if test "$DIRECT_coll" = "cuda" ; then +as_fn_error $? "*** coll component cuda was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -262998,7 +285545,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$sstore_stage_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$coll_cuda_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -263038,7 +285585,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $sstore_stage_LDFLAGS; do + for arg in $coll_cuda_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -263119,7 +285666,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $sstore_stage_WRAPPER_EXTRA_LDFLAGS; do + for arg in $coll_cuda_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -263161,7 +285708,7 @@ fi - if test "$sstore_stage_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$coll_cuda_WRAPPER_EXTRA_LIBS" = ""; then : @@ -263201,7 +285748,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $sstore_stage_LIBS; do + for arg in $coll_cuda_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -263282,7 +285829,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $sstore_stage_WRAPPER_EXTRA_LIBS; do + for arg in $coll_cuda_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -263325,15 +285872,754 @@ fi - fi + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$coll_cuda_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $coll_cuda_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_cuda_WRAPPER_EXTRA_CPPFLAGS ($coll_cuda_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring coll_cuda_WRAPPER_EXTRA_CPPFLAGS ($coll_cuda_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:cuda can compile" >&5 +$as_echo_n "checking if MCA component coll:cuda can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_coll" = "cuda" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"cuda\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"cuda\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "cuda" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"cuda\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"cuda\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components cuda" +fi + + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_coll_cuda_DSO=1 +else + BUILD_ompi_coll_cuda_DSO=0 +fi + if test "$BUILD_ompi_coll_cuda_DSO" = "1"; then + MCA_BUILD_ompi_coll_cuda_DSO_TRUE= + MCA_BUILD_ompi_coll_cuda_DSO_FALSE='#' +else + MCA_BUILD_ompi_coll_cuda_DSO_TRUE='#' + MCA_BUILD_ompi_coll_cuda_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + + + + + opal_show_subsubsubtitle "MCA component coll:fca (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/ompi/mca/coll/fca" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "fca" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_coll" = "1"; then : + want_component=0 +fi + if test "$DISABLE_coll_fca" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + SHARED_FRAMEWORK="$DSO_coll" + SHARED_COMPONENT="$DSO_coll_fca" + + STATIC_FRAMEWORK="$STATIC_coll" + STATIC_COMPONENT="$STATIC_coll_fca" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:fca compile mode" >&5 +$as_echo_n "checking for MCA component coll:fca compile mode... " >&6; } + if test "$DIRECT_coll" = "fca" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + + # try to configure the component + + ac_config_files="$ac_config_files ompi/mca/coll/fca/Makefile" + + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_check_fca_libs ompi_check_fca_happy CPPFLAGS_save LDFLAGS_save LIBS_save; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_check_fca_libs ompi_check_fca_happy CPPFLAGS_save LDFLAGS_save LIBS_save\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + +# Check whether --with-fca was given. +if test "${with_fca+set}" = set; then : + withval=$with_fca; +fi + + + if test "$with_fca" != "no"; then : + ompi_check_fca_libs=fca + if test ! -z "$with_fca" && test "$with_fca" != "yes"; then : + ompi_check_fca_dir=$with_fca + coll_fca_HOME="$ompi_check_fca_dir" + +else + coll_fca_HOME="/" + +fi + + CPPFLAGS_save=$CPPFLAGS + LDFLAGS_save=$LDFLAGS + LIBS_save=$LIBS + + + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:286199: coll_fca_CPPFLAGS : $coll_fca_CPPFLAGS" >&5 +else + echo coll_fca_CPPFLAGS : $coll_fca_CPPFLAGS >&5 +fi + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:286207: coll_fca_LDFLAGS : $coll_fca_LDFLAGS" >&5 +else + echo coll_fca_LDFLAGS : $coll_fca_LDFLAGS >&5 +fi + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:286215: coll_fca_LIBS : $coll_fca_LIBS" >&5 +else + echo coll_fca_LIBS : $coll_fca_LIBS >&5 +fi + + + opal_check_package_coll_fca_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_coll_fca_save_LDFLAGS="$LDFLAGS" + opal_check_package_coll_fca_save_LIBS="$LIBS" + + opal_check_package_coll_fca_orig_CPPFLAGS="$coll_fca_CPPFLAGS" + opal_check_package_coll_fca_orig_LDFLAGS="$coll_fca_LDFLAGS" + opal_check_package_coll_fca_orig_LIBS="$coll_fca_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in dir_prefix; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_fca_fca_api_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $ompi_check_fca_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in fca/fca_api.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "fca/fca_api.h" "ac_cv_header_fca_fca_api_h" "$ac_includes_default" +if test "x$ac_cv_header_fca_fca_api_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_FCA_FCA_API_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_fca_fca_api_h +fi +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + coll_fca_CPPFLAGS="$coll_fca_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in fca/fca_api.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "fca/fca_api.h" "ac_cv_header_fca_fca_api_h" "$ac_includes_default" +if test "x$ac_cv_header_fca_fca_api_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_FCA_FCA_API_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_fca_get_version + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + coll_fca_LDFLAGS="$coll_fca_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 +$as_echo_n "checking for library containing fca_get_version... " >&6; } +if ${ac_cv_search_fca_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fca_get_version (); +int +main () +{ +return fca_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_fca_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fca_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fca_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_fca_get_version+:} false; then : + +else + ac_cv_search_fca_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 +$as_echo "$ac_cv_search_fca_get_version" >&6; } +ac_res=$ac_cv_search_fca_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" + coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" + unset ac_cv_search_fca_get_version +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_fca_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 +$as_echo_n "checking for library containing fca_get_version... " >&6; } +if ${ac_cv_search_fca_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fca_get_version (); +int +main () +{ +return fca_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_fca_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fca_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fca_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_fca_get_version+:} false; then : + +else + ac_cv_search_fca_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 +$as_echo "$ac_cv_search_fca_get_version" >&6; } +ac_res=$ac_cv_search_fca_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" + coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" + unset ac_cv_search_fca_get_version +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + coll_fca_LDFLAGS="$coll_fca_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 +$as_echo_n "checking for library containing fca_get_version... " >&6; } +if ${ac_cv_search_fca_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fca_get_version (); +int +main () +{ +return fca_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_fca_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fca_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fca_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_fca_get_version+:} false; then : + +else + ac_cv_search_fca_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 +$as_echo "$ac_cv_search_fca_get_version" >&6; } +ac_res=$ac_cv_search_fca_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" + coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" + unset ac_cv_search_fca_get_version +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + coll_fca_LDFLAGS="$coll_fca_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 +$as_echo_n "checking for library containing fca_get_version... " >&6; } +if ${ac_cv_search_fca_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fca_get_version (); +int +main () +{ +return fca_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_fca_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fca_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fca_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_fca_get_version+:} false; then : + +else + ac_cv_search_fca_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 +$as_echo "$ac_cv_search_fca_get_version" >&6; } +ac_res=$ac_cv_search_fca_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" + coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" + unset ac_cv_search_fca_get_version +fi +fi +fi +fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$sstore_stage_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -263346,7 +286632,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -263365,396 +286651,325 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` + opal_libnl_sane=1 + case $host in + *linux*) - for arg in $sstore_stage_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + eval $opal_str + unset opal_str -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring sstore_stage_WRAPPER_EXTRA_CPPFLAGS ($sstore_stage_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring sstore_stage_WRAPPER_EXTRA_CPPFLAGS ($sstore_stage_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sstore:stage can compile" >&5 -$as_echo_n "checking if MCA component sstore:stage can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_sstore" = "stage" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"stage\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"stage\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - if test ! -z "$DIRECT_sstore" ; then - if test "$DIRECT_sstore" = "stage" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"stage\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"stage\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - # add component to all component list - all_components="$all_components stage" -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lib$ompi_check_fca_libs requires libnl v1 or v3" >&5 +$as_echo_n "checking if lib$ompi_check_fca_libs requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void fca_get_version (void); +int main(int argc, char *argv[]) { + fca_get_version (); + return 0; +} +EOF + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:286727: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_fca_libs $LIBS $coll_fca_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_fca_libs $LIBS $coll_fca_LIBS 1>&5 2>&1 +opal_status=$? - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_orte_sstore_stage_DSO=1 +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:286734: \$? = $opal_status" >&5 else - BUILD_orte_sstore_stage_DSO=0 + echo \$? = $opal_status >&5 fi - if test "$BUILD_orte_sstore_stage_DSO" = "1"; then - MCA_BUILD_orte_sstore_stage_DSO_TRUE= - MCA_BUILD_orte_sstore_stage_DSO_FALSE='#' -else - MCA_BUILD_orte_sstore_stage_DSO_TRUE='#' - MCA_BUILD_orte_sstore_stage_DSO_FALSE= +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } - unset compile_mode +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib $ompi_check_fca_libs" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib $ompi_check_fca_libs" >&2;} +fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, lib$ompi_check_fca_libs links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, lib$ompi_check_fca_libs links to both libnl and libnl-3." >&2;} - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} + libnl_sane=0 +fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_fca_libs requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_fca_libs requires libnl" >&2;} - if test "1" != "0"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} - for component_path in $srcdir/orte/mca/sstore/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component sstore:$component (need to configure)" + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs $ompi_check_fca_libs" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - component_path="$srcdir/orte/mca/sstore/$component" - want_component=0 + # Loop over every token we've seen so far - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_sstore" ; then - if test "$DIRECT_sstore" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # if we were explicitly disabled, don't build :) - if test "$DISABLE_sstore" = "1"; then : - want_component=0 -fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_sstore_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - SHARED_FRAMEWORK="$DSO_sstore" - str="SHARED_COMPONENT=\$DSO_sstore_$component" - eval $str + opal_done="`expr $opal_i \>= $opal_count`" - STATIC_FRAMEWORK="$STATIC_sstore" - str="STATIC_COMPONENT=\$STATIC_sstore_$component" - eval $str + # Increment the counter - shared_mode_override=static + opal_i="`expr $opal_i + 1`" + done - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + # If we didn't find the token, add it to the "array" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component sstore:$component compile mode" >&5 -$as_echo_n "checking for MCA component sstore:$component compile mode... " >&6; } - if test "$DIRECT_sstore" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + opal_i="`expr $opal_i - 1`" fi +done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" +# Take all the items in the "array" and assemble them back into a +# single variable - if test "$should_build" = "1" ; then +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +# Done; do the assignment - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +# Clean up - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_fca_libs requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_fca_libs requires libnl-3" >&2;} -# -# Invoke configure in a specific subdirectory. -# -# orte/mca/sstore/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="orte/mca/sstore/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} -# -# Sanity checks -# + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs $ompi_check_fca_libs" -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # +# Go through each item in the variable and only keep the unique ones - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac + # Loop over every token we've seen so far - # - # Move into the target directory - # + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - subdir_parent=`pwd` - cd $subdir_dir + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # - # Make a "../" for each directory in $subdir_dir. - # + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # + # Check the ending condition - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + opal_done="`expr $opal_i \>= $opal_count`" - # - # Construct the --cache-file argument - # + # Increment the counter - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + opal_i="`expr $opal_i + 1`" + done - # - # Invoke the configure script in the subdirectory - # + # If we didn't find the token, add it to the "array" - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + opal_i="`expr $opal_i - 1`" fi +done - # - # Go back to the topdir - # +# Take all the items in the "array" and assemble them back into a +# single variable - cd $subdir_parent -fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval -# # Clean up -# + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi + +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -263777,186 +286992,359 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/orte/mca/sstore/all_components/post_configure.sh" - if test -f $infile; then + ;; + esac - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi + opal_check_package_libnl_check_ok=$opal_libnl_sane - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - sstore_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - sstore_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/sstore/$component/post_configure.sh" + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" +fi - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "sstore" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/sstore/$component/lib${ORTE_LIB_PREFIX}mca_sstore_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/sstore/$component/libmca_sstore_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_sstore_$component_component;" >> $outfile.extern - echo " &mca_sstore_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_fca_get_version" != "no" && + test "$ac_cv_search_fca_get_version" != "none required"; then : + coll_fca_LIBS="$ac_cv_search_fca_get_version " +else + coll_fca_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sstore:$component can compile" >&5 -$as_echo_n "checking if MCA component sstore:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_sstore" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_sstore_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** sstore component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_sstore" = "$component" ; then -as_fn_error $? "*** sstore component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +else + opal_check_package_happy="no" +fi +else - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$sstore_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + # see comment above + unset ac_cv_search_fca_get_version + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + coll_fca_LDFLAGS="$coll_fca_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 +$as_echo_n "checking for library containing fca_get_version... " >&6; } +if ${ac_cv_search_fca_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fca_get_version (); +int +main () +{ +return fca_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_fca_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fca_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fca_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_fca_get_version+:} false; then : - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +else + ac_cv_search_fca_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 +$as_echo "$ac_cv_search_fca_get_version" >&6; } +ac_res=$ac_cv_search_fca_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" + coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" + unset ac_cv_search_fca_get_version +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_fca_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 +$as_echo_n "checking for library containing fca_get_version... " >&6; } +if ${ac_cv_search_fca_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fca_get_version (); +int +main () +{ +return fca_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_fca_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fca_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fca_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_fca_get_version+:} false; then : - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +else + ac_cv_search_fca_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 +$as_echo "$ac_cv_search_fca_get_version" >&6; } +ac_res=$ac_cv_search_fca_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" + coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" + unset ac_cv_search_fca_get_version +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + coll_fca_LDFLAGS="$coll_fca_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 +$as_echo_n "checking for library containing fca_get_version... " >&6; } +if ${ac_cv_search_fca_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fca_get_version (); +int +main () +{ +return fca_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_fca_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fca_get_version=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fca_get_version+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg +done +if ${ac_cv_search_fca_get_version+:} false; then : + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + ac_cv_search_fca_get_version=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 +$as_echo "$ac_cv_search_fca_get_version" >&6; } +ac_res=$ac_cv_search_fca_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - done + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" + coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" + unset ac_cv_search_fca_get_version +fi +fi +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + coll_fca_LDFLAGS="$coll_fca_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 +$as_echo_n "checking for library containing fca_get_version... " >&6; } +if ${ac_cv_search_fca_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fca_get_version (); +int +main () +{ +return fca_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_fca_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fca_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fca_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_fca_get_version+:} false; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +else + ac_cv_search_fca_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 +$as_echo "$ac_cv_search_fca_get_version" >&6; } +ac_res=$ac_cv_search_fca_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" + coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" + unset ac_cv_search_fca_get_version +fi +fi +fi +fi -str="line=\$sstore_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -263969,7 +287357,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -263988,443 +287376,325 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` + opal_libnl_sane=1 + case $host in + *linux*) - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sstore:$component can compile" >&5 -$as_echo_n "checking if MCA component sstore:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_sstore" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - if test ! -z "$DIRECT_sstore" ; then - if test "$DIRECT_sstore" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - fi - - fi - fi done -fi - - MCA_orte_sstore_ALL_COMPONENTS="$all_components" - MCA_orte_sstore_STATIC_COMPONENTS="$static_components" - MCA_orte_sstore_DSO_COMPONENTS="$dso_components" - MCA_orte_sstore_STATIC_LTLIBS="$static_ltlibs" - + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lib$ompi_check_fca_libs requires libnl v1 or v3" >&5 +$as_echo_n "checking if lib$ompi_check_fca_libs requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void fca_get_version (void); +int main(int argc, char *argv[]) { + fca_get_version (); + return 0; +} +EOF - MCA_orte_sstore_ALL_SUBDIRS= - for item in $all_components ; do - MCA_orte_sstore_ALL_SUBDIRS="$MCA_orte_sstore_ALL_SUBDIRS mca/sstore/$item" - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:287452: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_fca_libs $LIBS $coll_fca_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_fca_libs $LIBS $coll_fca_LIBS 1>&5 2>&1 +opal_status=$? +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:287459: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } - MCA_orte_sstore_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_orte_sstore_STATIC_SUBDIRS="$MCA_orte_sstore_STATIC_SUBDIRS mca/sstore/$item" - done +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib $ompi_check_fca_libs" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib $ompi_check_fca_libs" >&2;} +fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - MCA_orte_sstore_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_orte_sstore_DSO_SUBDIRS="$MCA_orte_sstore_DSO_SUBDIRS mca/sstore/$item" - done + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, lib$ompi_check_fca_libs links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, lib$ompi_check_fca_libs links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "sstore" != "common"; then - cat > $outfile <&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_fca_libs requires libnl" >&2;} -const mca_base_component_t *mca_sstore_base_static_components[] = { -`cat $outfile.struct` - NULL -}; + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} -#if defined(c_plusplus) || defined(__cplusplus) -} -#endif + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs $ompi_check_fca_libs" -EOF - # Only replace the header file if a) it doesn't previously - # exist, or b) the contents are different. Do this to not - # trigger recompilation of certain .c files just because the - # timestamp changed on $outfile_real (similar to the way AC - # handles AC_CONFIG_HEADER files). - diff $outfile $outfile_real > /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - unset all_components static_components dso_components outfile outfile_real +# Go through each item in the variable and only keep the unique ones - MCA_orte_FRAMEWORKS="$MCA_orte_FRAMEWORKS state" - MCA_orte_FRAMEWORKS_SUBDIRS="$MCA_orte_FRAMEWORKS_SUBDIRS mca/state" - MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_orte_state_ALL_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_orte_state_DSO_SUBDIRS)" - MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_orte_state_STATIC_SUBDIRS)" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS mca/state/libmca_state.la" - MCA_orte_FRAMEWORK_LIBS="$MCA_orte_FRAMEWORK_LIBS \$(MCA_orte_state_STATIC_LTLIBS)" +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - opal_show_subsubtitle "Configuring MCA framework state" + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= + # Check the ending condition - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=orte/mca/state/base - as_dir=$outdir; as_fn_mkdir_p + opal_done="`expr $opal_i \>= $opal_count`" - # emit Makefile rule - ac_config_files="$ac_config_files orte/mca/state/Makefile" + # Increment the counter + opal_i="`expr $opal_i + 1`" + done - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern + # If we didn't find the token, add it to the "array" - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework state" >&5 -$as_echo_n "checking for no configure components in framework state... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: app, hnp, novm, orted, tool" >&5 -$as_echo "app, hnp, novm, orted, tool" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework state" >&5 -$as_echo_n "checking for m4 configure components in framework state... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # run the configure logic for the no-config components + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - opal_show_subsubsubtitle "MCA component state:app (no configuration)" +# Done; do the assignment - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi - component_path="$srcdir/orte/mca/state/app" - want_component=0 +fi - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_state" ; then - if test "$DIRECT_state" = "app" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_fca_libs requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_fca_libs requires libnl-3" >&2;} - # if we were explicitly disabled, don't build :) - if test "$DISABLE_state" = "1"; then : - want_component=0 -fi - if test "$DISABLE_state_app" = "1"; then : - want_component=0 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} - if test "$want_component" = "1"; then : - should_build=1 + libnl_sane=0 else - should_build=0 -fi + opal_libnlv3_libs="$opal_libnlv3_libs $ompi_check_fca_libs" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - SHARED_FRAMEWORK="$DSO_state" - SHARED_COMPONENT="$DSO_state_app" +# Go through each item in the variable and only keep the unique ones - STATIC_FRAMEWORK="$STATIC_state" - STATIC_COMPONENT="$STATIC_state_app" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - shared_mode_override=static + # Loop over every token we've seen so far - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component state:app compile mode" >&5 -$as_echo_n "checking for MCA component state:app compile mode... " >&6; } - if test "$DIRECT_state" = "app" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "$should_build" = "1" ; then + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/state/app/post_configure.sh" + opal_i="`expr $opal_i + 1`" + done - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components app" + # If we didn't find the token, add it to the "array" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components app" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - if test "state" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/state/app/lib${ORTE_LIB_PREFIX}mca_state_app.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/state/app/libmca_state_app.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_state_app_component;" >> $outfile.extern - echo " &mca_state_app_component, " >> $outfile.struct - static_components="$static_components app" + opal_i="`expr $opal_i - 1`" fi +done - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:app can compile" >&5 -$as_echo_n "checking if MCA component state:app can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +# Take all the items in the "array" and assemble them back into a +# single variable - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_state" = "app" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_state_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** state component app was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_state" = "app" ; then -as_fn_error $? "*** state component app was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$state_app_WRAPPER_EXTRA_LDFLAGS" = ""; then : + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Clean up - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - for arg in $state_app_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + opal_libnl_sane=$libnl_sane # Unwind the index @@ -264448,65 +287718,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $state_app_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -264529,65 +287744,28 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - if test "$state_app_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $state_app_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_fca_get_version" != "no" && + test "$ac_cv_search_fca_get_version" != "none required"; then : + coll_fca_LIBS="$ac_cv_search_fca_get_version " +else + coll_fca_LIBS="" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -264611,155 +287789,42 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $state_app_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_fca_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi + coll_fca_CPPFLAGS="$opal_check_package_coll_fca_orig_CPPFLAGS" + coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" + coll_fca_LIBS="$opal_check_package_coll_fca_orig_LIBS" + ompi_check_fca_happy="no" fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + CPPFLAGS="$opal_check_package_coll_fca_save_CPPFLAGS" + LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" + LIBS="$opal_check_package_coll_fca_save_LIBS" + CPPFLAGS=$CPPFLAGS_save + LDFLAGS=$LDFLAGS_save + LIBS=$LIBS_save +else + ompi_check_fca_happy="no" fi - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$state_app_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $state_app_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + if test "$ompi_check_fca_happy" = "yes" && test "$enable_progress_threads" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: fca driver does not currently support progress threads. Disabling FCA." >&5 +$as_echo "$as_me: WARNING: fca driver does not currently support progress threads. Disabling FCA." >&2;} + ompi_check_fca_happy="no" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + + if test "$ompi_check_fca_happy" = "yes"; then : + coll_fca_happy="yes" else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + if test ! -z "$with_fca" && test "$with_fca" != "no"; then : + as_fn_error $? "FCA support requested but not found. Aborting" "$LINENO" 5 fi + coll_fca_happy="no" fi - done # Unwind the index @@ -264783,205 +287848,66 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring state_app_WRAPPER_EXTRA_CPPFLAGS ($state_app_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring state_app_WRAPPER_EXTRA_CPPFLAGS ($state_app_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:app can compile" >&5 -$as_echo_n "checking if MCA component state:app can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_state" = "app" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"app\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"app\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_state" ; then - if test "$DIRECT_state" = "app" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"app\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"app\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components app" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_state_app_DSO=1 - else - BUILD_orte_state_app_DSO=0 - fi - if test "$BUILD_orte_state_app_DSO" = "1"; then - MCA_BUILD_orte_state_app_DSO_TRUE= - MCA_BUILD_orte_state_app_DSO_FALSE='#' -else - MCA_BUILD_orte_state_app_DSO_TRUE='#' - MCA_BUILD_orte_state_app_DSO_FALSE= -fi - - - ac_config_files="$ac_config_files orte/mca/state/app/Makefile" - - - unset compile_mode - - opal_show_subsubsubtitle "MCA component state:hnp (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - - - component_path="$srcdir/orte/mca/state/hnp" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_state" ; then - if test "$DIRECT_state" = "hnp" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_state" = "1"; then : - want_component=0 -fi - if test "$DISABLE_state_hnp" = "1"; then : - want_component=0 -fi - if test "$want_component" = "1"; then : - should_build=1 + if test "$coll_fca_happy" = "yes"; then : + should_build=$should_build else should_build=0 fi + # substitute in the things needed to build fca - SHARED_FRAMEWORK="$DSO_state" - SHARED_COMPONENT="$DSO_state_hnp" - - STATIC_FRAMEWORK="$STATIC_state" - STATIC_COMPONENT="$STATIC_state_hnp" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component state:hnp compile mode" >&5 -$as_echo_n "checking for MCA component state:hnp compile mode... " >&6; } - if test "$DIRECT_state" = "hnp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/state/hnp/post_configure.sh" + infile="$srcdir/ompi/mca/coll/fca/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components hnp" + all_components="$all_components fca" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components hnp" + dso_components="$dso_components fca" else - if test "state" = "common"; then + if test "coll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/state/hnp/lib${ORTE_LIB_PREFIX}mca_state_hnp.la $static_ltlibs" + static_ltlibs="mca/coll/fca/lib${OMPI_LIB_PREFIX}mca_coll_fca.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/state/hnp/libmca_state_hnp.la $static_ltlibs" + static_ltlibs="mca/coll/fca/libmca_coll_fca.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_state_hnp_component;" >> $outfile.extern - echo " &mca_state_hnp_component, " >> $outfile.struct - static_components="$static_components hnp" + echo "extern const mca_base_component_t mca_coll_fca_component;" >> $outfile.extern + echo " &mca_coll_fca_component, " >> $outfile.struct + static_components="$static_components fca" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:hnp can compile" >&5 -$as_echo_n "checking if MCA component state:hnp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:fca can compile" >&5 +$as_echo_n "checking if MCA component coll:fca can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_state" = "hnp" ; then + if test "$DIRECT_coll" = "fca" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_state_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** state component hnp was supposed to be direct-called, but +as_fn_error $? "*** coll component fca was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -264989,8 +287915,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_state" = "hnp" ; then -as_fn_error $? "*** state component hnp was supposed to be direct-called, but + if test "$DIRECT_coll" = "fca" ; then +as_fn_error $? "*** coll component fca was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -265005,7 +287931,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$state_hnp_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$coll_fca_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -265045,7 +287971,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $state_hnp_LDFLAGS; do + for arg in $coll_fca_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -265126,7 +288052,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $state_hnp_WRAPPER_EXTRA_LDFLAGS; do + for arg in $coll_fca_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -265168,7 +288094,7 @@ fi - if test "$state_hnp_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$coll_fca_WRAPPER_EXTRA_LIBS" = ""; then : @@ -265208,7 +288134,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $state_hnp_LIBS; do + for arg in $coll_fca_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -265289,7 +288215,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $state_hnp_WRAPPER_EXTRA_LIBS; do + for arg in $coll_fca_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -265337,7 +288263,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$state_hnp_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$coll_fca_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -265380,7 +288306,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $state_hnp_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $coll_fca_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -265423,69 +288349,78 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring state_hnp_WRAPPER_EXTRA_CPPFLAGS ($state_hnp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring state_hnp_WRAPPER_EXTRA_CPPFLAGS ($state_hnp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_fca_WRAPPER_EXTRA_CPPFLAGS ($coll_fca_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring coll_fca_WRAPPER_EXTRA_CPPFLAGS ($coll_fca_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:hnp can compile" >&5 -$as_echo_n "checking if MCA component state:hnp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:fca can compile" >&5 +$as_echo_n "checking if MCA component coll:fca can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_state" = "hnp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hnp\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"hnp\" failed to configure properly" >&2;} + if test "$with_coll" = "fca" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"fca\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"fca\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_state" ; then - if test "$DIRECT_state" = "hnp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hnp\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"hnp\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "fca" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"fca\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"fca\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components hnp" - fi + # add component to all component list + all_components="$all_components fca" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_state_hnp_DSO=1 - else - BUILD_orte_state_hnp_DSO=0 - fi - if test "$BUILD_orte_state_hnp_DSO" = "1"; then - MCA_BUILD_orte_state_hnp_DSO_TRUE= - MCA_BUILD_orte_state_hnp_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_ompi_coll_fca_DSO=1 else - MCA_BUILD_orte_state_hnp_DSO_TRUE='#' - MCA_BUILD_orte_state_hnp_DSO_FALSE= + BUILD_ompi_coll_fca_DSO=0 +fi + if test "$BUILD_ompi_coll_fca_DSO" = "1"; then + MCA_BUILD_ompi_coll_fca_DSO_TRUE= + MCA_BUILD_ompi_coll_fca_DSO_FALSE='#' +else + MCA_BUILD_ompi_coll_fca_DSO_TRUE='#' + MCA_BUILD_ompi_coll_fca_DSO_FALSE= fi - ac_config_files="$ac_config_files orte/mca/state/hnp/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - opal_show_subsubsubtitle "MCA component state:novm (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/orte/mca/state/novm" + opal_show_subsubsubtitle "MCA component coll:hcoll (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/ompi/mca/coll/hcoll" want_component=0 # build if: @@ -265517,8 +288452,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_state" ; then - if test "$DIRECT_state" = "novm" ; then + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "hcoll" ; then want_component=1 else want_component=0 @@ -265527,25 +288462,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_state" = "1"; then : + if test "$DISABLE_coll" = "1"; then : want_component=0 fi - if test "$DISABLE_state_novm" = "1"; then : + if test "$DISABLE_coll_hcoll" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_state" - SHARED_COMPONENT="$DSO_state_novm" + SHARED_FRAMEWORK="$DSO_coll" + SHARED_COMPONENT="$DSO_coll_hcoll" - STATIC_FRAMEWORK="$STATIC_state" - STATIC_COMPONENT="$STATIC_state_novm" + STATIC_FRAMEWORK="$STATIC_coll" + STATIC_COMPONENT="$STATIC_coll_hcoll" shared_mode_override=static @@ -265563,9 +288500,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component state:novm compile mode" >&5 -$as_echo_n "checking for MCA component state:novm compile mode... " >&6; } - if test "$DIRECT_state" = "novm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:hcoll compile mode" >&5 +$as_echo_n "checking for MCA component coll:hcoll compile mode... " >&6; } + if test "$DIRECT_coll" = "hcoll" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -265573,77 +288510,12 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/state/novm/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components novm" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components novm" - else - if test "state" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/state/novm/lib${ORTE_LIB_PREFIX}mca_state_novm.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/state/novm/libmca_state_novm.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_state_novm_component;" >> $outfile.extern - echo " &mca_state_novm_component, " >> $outfile.struct - static_components="$static_components novm" - fi + # try to configure the component - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:novm can compile" >&5 -$as_echo_n "checking if MCA component state:novm can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + ac_config_files="$ac_config_files ompi/mca/coll/hcoll/Makefile" - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_state" = "novm" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_state_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** state component novm was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_state" = "novm" ; then -as_fn_error $? "*** state component novm was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$state_novm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -265656,7 +288528,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in ompi_check_hcoll_dir ompi_check_hcoll_libs ompi_check_hcoll_happy CPPFLAGS_save LDFLAGS_save LIBS_save; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -265675,7 +288547,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_check_hcoll_dir ompi_check_hcoll_libs ompi_check_hcoll_happy CPPFLAGS_save LDFLAGS_save LIBS_save\"" eval $opal_str unset opal_str @@ -265683,130 +288555,61 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $state_novm_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done +# Check whether --with-hcoll was given. +if test "${with_hcoll+set}" = set; then : + withval=$with_hcoll; +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$with_hcoll" != "no"; then : + ompi_check_hcoll_libs=hcoll + if test ! -z "$with_hcoll" && test "$with_hcoll" != "yes"; then : + ompi_check_hcoll_dir=$with_hcoll +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + CPPFLAGS_save=$CPPFLAGS + LDFLAGS_save=$LDFLAGS + LIBS_save=$LIBS +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:288579: coll_hcoll_CPPFLAGS : $coll_hcoll_CPPFLAGS" >&5 else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $state_novm_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + echo coll_hcoll_CPPFLAGS : $coll_hcoll_CPPFLAGS >&5 fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:288587: coll_hcoll_LDFLAGS : $coll_hcoll_LDFLAGS" >&5 else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi + echo coll_hcoll_LDFLAGS : $coll_hcoll_LDFLAGS >&5 fi - done +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:288595: coll_hcoll_LIBS : $coll_hcoll_LIBS" >&5 +else + echo coll_hcoll_LIBS : $coll_hcoll_LIBS >&5 +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + opal_check_package_coll_hcoll_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_coll_hcoll_save_LDFLAGS="$LDFLAGS" + opal_check_package_coll_hcoll_save_LIBS="$LIBS" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + opal_check_package_coll_hcoll_orig_CPPFLAGS="$coll_hcoll_CPPFLAGS" + opal_check_package_coll_hcoll_orig_LDFLAGS="$coll_hcoll_LDFLAGS" + opal_check_package_coll_hcoll_orig_LIBS="$coll_hcoll_LIBS" -fi - if test "$state_novm_WRAPPER_EXTRA_LIBS" = ""; then : + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -265819,7 +288622,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -265838,7 +288641,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -265846,442 +288649,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $state_novm_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_hcoll_api_hcoll_api_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $ompi_check_hcoll_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in hcoll/api/hcoll_api.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "hcoll/api/hcoll_api.h" "ac_cv_header_hcoll_api_hcoll_api_h" "$ac_includes_default" +if test "x$ac_cv_header_hcoll_api_hcoll_api_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_HCOLL_API_HCOLL_API_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_hcoll_api_hcoll_api_h fi fi - done + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + coll_hcoll_CPPFLAGS="$coll_hcoll_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in hcoll/api/hcoll_api.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "hcoll/api/hcoll_api.h" "ac_cv_header_hcoll_api_hcoll_api_h" "$ac_includes_default" +if test "x$ac_cv_header_hcoll_api_hcoll_api_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_HCOLL_API_HCOLL_API_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +done - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$opal_check_package_header_happy" = "yes"; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + # see comment above + unset ac_cv_search_hcoll_get_version + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + coll_hcoll_LDFLAGS="$coll_hcoll_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hcoll_get_version" >&5 +$as_echo_n "checking for library containing hcoll_get_version... " >&6; } +if ${ac_cv_search_hcoll_get_version+:} false; then : + $as_echo_n "(cached) " >&6 else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $state_novm_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char hcoll_get_version (); +int +main () +{ +return hcoll_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_hcoll_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_hcoll_get_version=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_hcoll_get_version+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +done +if ${ac_cv_search_hcoll_get_version+:} false; then : + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_cv_search_hcoll_get_version=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hcoll_get_version" >&5 +$as_echo "$ac_cv_search_hcoll_get_version" >&6; } +ac_res=$ac_cv_search_hcoll_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$state_novm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $state_novm_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" + coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" + unset ac_cv_search_hcoll_get_version fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_hcoll_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hcoll_get_version" >&5 +$as_echo_n "checking for library containing hcoll_get_version... " >&6; } +if ${ac_cv_search_hcoll_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char hcoll_get_version (); +int +main () +{ +return hcoll_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_hcoll_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_hcoll_get_version=$ac_res fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_hcoll_get_version+:} false; then : + break fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - +done +if ${ac_cv_search_hcoll_get_version+:} false; then : -fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring state_novm_WRAPPER_EXTRA_CPPFLAGS ($state_novm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring state_novm_WRAPPER_EXTRA_CPPFLAGS ($state_novm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + ac_cv_search_hcoll_get_version=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:novm can compile" >&5 -$as_echo_n "checking if MCA component state:novm can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_state" = "novm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"novm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"novm\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_state" ; then - if test "$DIRECT_state" = "novm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"novm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"novm\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components novm" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_state_novm_DSO=1 - else - BUILD_orte_state_novm_DSO=0 - fi - if test "$BUILD_orte_state_novm_DSO" = "1"; then - MCA_BUILD_orte_state_novm_DSO_TRUE= - MCA_BUILD_orte_state_novm_DSO_FALSE='#' +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hcoll_get_version" >&5 +$as_echo "$ac_cv_search_hcoll_get_version" >&6; } +ac_res=$ac_cv_search_hcoll_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - MCA_BUILD_orte_state_novm_DSO_TRUE='#' - MCA_BUILD_orte_state_novm_DSO_FALSE= + opal_check_package_lib_happy="no" fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" + coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" + unset ac_cv_search_hcoll_get_version +fi +fi - ac_config_files="$ac_config_files orte/mca/state/novm/Makefile" - - - unset compile_mode - - opal_show_subsubsubtitle "MCA component state:orted (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - - - component_path="$srcdir/orte/mca/state/orted" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_state" ; then - if test "$DIRECT_state" = "orted" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + coll_hcoll_LDFLAGS="$coll_hcoll_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hcoll_get_version" >&5 +$as_echo_n "checking for library containing hcoll_get_version... " >&6; } +if ${ac_cv_search_hcoll_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # if we were explicitly disabled, don't build :) - if test "$DISABLE_state" = "1"; then : - want_component=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char hcoll_get_version (); +int +main () +{ +return hcoll_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_hcoll_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_hcoll_get_version=$ac_res fi - if test "$DISABLE_state_orted" = "1"; then : - want_component=0 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_hcoll_get_version+:} false; then : + break fi +done +if ${ac_cv_search_hcoll_get_version+:} false; then : - if test "$want_component" = "1"; then : - should_build=1 else - should_build=0 + ac_cv_search_hcoll_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hcoll_get_version" >&5 +$as_echo "$ac_cv_search_hcoll_get_version" >&6; } +ac_res=$ac_cv_search_hcoll_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" + coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" + unset ac_cv_search_hcoll_get_version +fi +fi +fi - SHARED_FRAMEWORK="$DSO_state" - SHARED_COMPONENT="$DSO_state_orted" - - STATIC_FRAMEWORK="$STATIC_state" - STATIC_COMPONENT="$STATIC_state_orted" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component state:orted compile mode" >&5 -$as_echo_n "checking for MCA component state:orted compile mode... " >&6; } - if test "$DIRECT_state" = "orted" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/state/orted/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components orted" + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + coll_hcoll_LDFLAGS="$coll_hcoll_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hcoll_get_version" >&5 +$as_echo_n "checking for library containing hcoll_get_version... " >&6; } +if ${ac_cv_search_hcoll_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components orted" - else - if test "state" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/state/orted/lib${ORTE_LIB_PREFIX}mca_state_orted.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/state/orted/libmca_state_orted.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_state_orted_component;" >> $outfile.extern - echo " &mca_state_orted_component, " >> $outfile.struct - static_components="$static_components orted" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char hcoll_get_version (); +int +main () +{ +return hcoll_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_hcoll_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_hcoll_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_hcoll_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_hcoll_get_version+:} false; then : - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:orted can compile" >&5 -$as_echo_n "checking if MCA component state:orted can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else + ac_cv_search_hcoll_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hcoll_get_version" >&5 +$as_echo "$ac_cv_search_hcoll_get_version" >&6; } +ac_res=$ac_cv_search_hcoll_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_state" = "orted" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_state_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** state component orted was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_state" = "orted" ; then -as_fn_error $? "*** state component orted was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" + coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" + unset ac_cv_search_hcoll_get_version +fi +fi +fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$state_orted_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -266294,7 +289012,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -266313,56 +289031,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $state_orted_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -266375,7 +289053,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -266394,7 +289072,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -266402,187 +289080,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $state_orted_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lib$ompi_check_hcoll_libs requires libnl v1 or v3" >&5 +$as_echo_n "checking if lib$ompi_check_hcoll_libs requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void hcoll_get_version (void); +int main(int argc, char *argv[]) { + hcoll_get_version (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:289107: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_hcoll_libs $LIBS $coll_hcoll_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_hcoll_libs $LIBS $coll_hcoll_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:289114: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib $ompi_check_hcoll_libs" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib $ompi_check_hcoll_libs" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, lib$ompi_check_hcoll_libs links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, lib$ompi_check_hcoll_libs links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_hcoll_libs requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_hcoll_libs requires libnl" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs $ompi_check_hcoll_libs" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones -fi - if test "$state_orted_WRAPPER_EXTRA_LIBS" = ""; then : +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $state_orted_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_hcoll_libs requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_hcoll_libs requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&2;} + + libnl_sane=0 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + opal_libnlv3_libs="$opal_libnlv3_libs $ompi_check_hcoll_libs" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs +# Go through each item in the variable and only keep the unique ones - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # Loop over every token we've seen so far - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. -else + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Take all the items in the "array" and assemble them back into a +# single variable - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - for arg in $state_orted_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -266606,75 +289373,10 @@ done -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$state_orted_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $state_orted_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -266697,229 +289399,332 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_hcoll_get_version" != "no" && + test "$ac_cv_search_hcoll_get_version" != "none required"; then : + coll_hcoll_LIBS="$ac_cv_search_hcoll_get_version " else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring state_orted_WRAPPER_EXTRA_CPPFLAGS ($state_orted_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring state_orted_WRAPPER_EXTRA_CPPFLAGS ($state_orted_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + coll_hcoll_LIBS="" fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" fi - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:orted can compile" >&5 -$as_echo_n "checking if MCA component state:orted can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_state" = "orted" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"orted\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"orted\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_state" ; then - if test "$DIRECT_state" = "orted" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"orted\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"orted\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components orted" - fi - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_state_orted_DSO=1 - else - BUILD_orte_state_orted_DSO=0 - fi - if test "$BUILD_orte_state_orted_DSO" = "1"; then - MCA_BUILD_orte_state_orted_DSO_TRUE= - MCA_BUILD_orte_state_orted_DSO_FALSE='#' else - MCA_BUILD_orte_state_orted_DSO_TRUE='#' - MCA_BUILD_orte_state_orted_DSO_FALSE= + opal_check_package_happy="no" fi +else + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - ac_config_files="$ac_config_files orte/mca/state/orted/Makefile" - - - unset compile_mode - - opal_show_subsubsubtitle "MCA component state:tool (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - - - component_path="$srcdir/orte/mca/state/tool" - want_component=0 - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_state" ; then - if test "$DIRECT_state" = "tool" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + # see comment above + unset ac_cv_search_hcoll_get_version + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + coll_hcoll_LDFLAGS="$coll_hcoll_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hcoll_get_version" >&5 +$as_echo_n "checking for library containing hcoll_get_version... " >&6; } +if ${ac_cv_search_hcoll_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # if we were explicitly disabled, don't build :) - if test "$DISABLE_state" = "1"; then : - want_component=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char hcoll_get_version (); +int +main () +{ +return hcoll_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_hcoll_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_hcoll_get_version=$ac_res fi - if test "$DISABLE_state_tool" = "1"; then : - want_component=0 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_hcoll_get_version+:} false; then : + break fi +done +if ${ac_cv_search_hcoll_get_version+:} false; then : - if test "$want_component" = "1"; then : - should_build=1 else - should_build=0 + ac_cv_search_hcoll_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hcoll_get_version" >&5 +$as_echo "$ac_cv_search_hcoll_get_version" >&6; } +ac_res=$ac_cv_search_hcoll_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" + coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" + unset ac_cv_search_hcoll_get_version +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_hcoll_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hcoll_get_version" >&5 +$as_echo_n "checking for library containing hcoll_get_version... " >&6; } +if ${ac_cv_search_hcoll_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - SHARED_FRAMEWORK="$DSO_state" - SHARED_COMPONENT="$DSO_state_tool" - - STATIC_FRAMEWORK="$STATIC_state" - STATIC_COMPONENT="$STATIC_state_tool" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char hcoll_get_version (); +int +main () +{ +return hcoll_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_hcoll_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_hcoll_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_hcoll_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_hcoll_get_version+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component state:tool compile mode" >&5 -$as_echo_n "checking for MCA component state:tool compile mode... " >&6; } - if test "$DIRECT_state" = "tool" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +else + ac_cv_search_hcoll_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hcoll_get_version" >&5 +$as_echo "$ac_cv_search_hcoll_get_version" >&6; } +ac_res=$ac_cv_search_hcoll_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" + coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" + unset ac_cv_search_hcoll_get_version +fi +fi - if test "$should_build" = "1" ; then + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + coll_hcoll_LDFLAGS="$coll_hcoll_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hcoll_get_version" >&5 +$as_echo_n "checking for library containing hcoll_get_version... " >&6; } +if ${ac_cv_search_hcoll_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char hcoll_get_version (); +int +main () +{ +return hcoll_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_hcoll_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_hcoll_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_hcoll_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_hcoll_get_version+:} false; then : +else + ac_cv_search_hcoll_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hcoll_get_version" >&5 +$as_echo "$ac_cv_search_hcoll_get_version" >&6; } +ac_res=$ac_cv_search_hcoll_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/orte/mca/state/tool/post_configure.sh" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" + coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" + unset ac_cv_search_hcoll_get_version +fi +fi +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components tool" + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + coll_hcoll_LDFLAGS="$coll_hcoll_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hcoll_get_version" >&5 +$as_echo_n "checking for library containing hcoll_get_version... " >&6; } +if ${ac_cv_search_hcoll_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components tool" - else - if test "state" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/state/tool/lib${ORTE_LIB_PREFIX}mca_state_tool.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/state/tool/libmca_state_tool.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_state_tool_component;" >> $outfile.extern - echo " &mca_state_tool_component, " >> $outfile.struct - static_components="$static_components tool" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char hcoll_get_version (); +int +main () +{ +return hcoll_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_hcoll_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_hcoll_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_hcoll_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_hcoll_get_version+:} false; then : - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:tool can compile" >&5 -$as_echo_n "checking if MCA component state:tool can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else + ac_cv_search_hcoll_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hcoll_get_version" >&5 +$as_echo "$ac_cv_search_hcoll_get_version" >&6; } +ac_res=$ac_cv_search_hcoll_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_state" = "tool" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_state_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** state component tool was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_state" = "tool" ; then -as_fn_error $? "*** state component tool was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" + coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" + unset ac_cv_search_hcoll_get_version +fi +fi +fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$state_tool_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -266932,7 +289737,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -266951,56 +289756,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $state_tool_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -267013,7 +289778,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -267032,7 +289797,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -267040,187 +289805,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $state_tool_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lib$ompi_check_hcoll_libs requires libnl v1 or v3" >&5 +$as_echo_n "checking if lib$ompi_check_hcoll_libs requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void hcoll_get_version (void); +int main(int argc, char *argv[]) { + hcoll_get_version (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:289832: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_hcoll_libs $LIBS $coll_hcoll_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_hcoll_libs $LIBS $coll_hcoll_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:289839: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib $ompi_check_hcoll_libs" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib $ompi_check_hcoll_libs" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, lib$ompi_check_hcoll_libs links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, lib$ompi_check_hcoll_libs links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_hcoll_libs requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_hcoll_libs requires libnl" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs $ompi_check_hcoll_libs" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones -fi - if test "$state_tool_WRAPPER_EXTRA_LIBS" = ""; then : +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $state_tool_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_hcoll_libs requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_hcoll_libs requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&2;} + + libnl_sane=0 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + opal_libnlv3_libs="$opal_libnlv3_libs $ompi_check_hcoll_libs" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +# Go through each item in the variable and only keep the unique ones - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do -else + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_done="`expr $opal_i \>= $opal_count`" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Increment the counter - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $state_tool_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -267244,74 +290098,54 @@ done -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$state_tool_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - for arg in $state_tool_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_hcoll_get_version" != "no" && + test "$ac_cv_search_hcoll_get_version" != "none required"; then : + coll_hcoll_LIBS="$ac_cv_search_hcoll_get_version " +else + coll_hcoll_LIBS="" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -267335,348 +290169,61 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring state_tool_WRAPPER_EXTRA_CPPFLAGS ($state_tool_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring state_tool_WRAPPER_EXTRA_CPPFLAGS ($state_tool_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:tool can compile" >&5 -$as_echo_n "checking if MCA component state:tool can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_state" = "tool" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tool\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tool\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_state" ; then - if test "$DIRECT_state" = "tool" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tool\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tool\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components tool" - fi - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_orte_state_tool_DSO=1 - else - BUILD_orte_state_tool_DSO=0 - fi - if test "$BUILD_orte_state_tool_DSO" = "1"; then - MCA_BUILD_orte_state_tool_DSO_TRUE= - MCA_BUILD_orte_state_tool_DSO_FALSE='#' + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_hcoll_happy="yes" else - MCA_BUILD_orte_state_tool_DSO_TRUE='#' - MCA_BUILD_orte_state_tool_DSO_FALSE= + coll_hcoll_CPPFLAGS="$opal_check_package_coll_hcoll_orig_CPPFLAGS" + coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" + coll_hcoll_LIBS="$opal_check_package_coll_hcoll_orig_LIBS" + ompi_check_hcoll_happy="no" fi + CPPFLAGS="$opal_check_package_coll_hcoll_save_CPPFLAGS" + LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" + LIBS="$opal_check_package_coll_hcoll_save_LIBS" - ac_config_files="$ac_config_files orte/mca/state/tool/Makefile" - - - unset compile_mode - - - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - - if test "1" != "0"; then : - - for component_path in $srcdir/orte/mca/state/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component state:$component (need to configure)" - - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + if test "$ompi_check_hcoll_happy" = "yes"; then : + CPPFLAGS=$coll_hcoll_CPPFLAGS + LDFLAGS=$coll_hcoll_LDFLAGS + LIBS=$coll_hcoll_LIBS + for ac_func in hcoll_context_free +do : + ac_fn_c_check_func "$LINENO" "hcoll_context_free" "ac_cv_func_hcoll_context_free" +if test "x$ac_cv_func_hcoll_context_free" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_HCOLL_CONTEXT_FREE 1 +_ACEOF - component_path="$srcdir/orte/mca/state/$component" - want_component=0 +fi +done - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_state" ; then - if test "$DIRECT_state" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_state" = "1"; then : - want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_state_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi - if test "$want_component" = "1"; then : - should_build=1 + CPPFLAGS=$CPPFLAGS_save + LDFLAGS=$LDFLAGS_save + LIBS=$LIBS_save else - should_build=0 + ompi_check_hcoll_happy=no fi - - SHARED_FRAMEWORK="$DSO_state" - str="SHARED_COMPONENT=\$DSO_state_$component" - eval $str - - STATIC_FRAMEWORK="$STATIC_state" - str="STATIC_COMPONENT=\$STATIC_state_$component" - eval $str - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component state:$component compile mode" >&5 -$as_echo_n "checking for MCA component state:$component compile mode... " >&6; } - if test "$DIRECT_state" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - -# -# Invoke configure in a specific subdirectory. -# -# orte/mca/state/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="orte/mca/state/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - - # - # Construct the --cache-file argument - # - - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - - # - # Invoke the configure script in the subdirectory - # - - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi - - # - # Go back to the topdir - # - - cd $subdir_parent + if test "$ompi_check_hcoll_happy" = "yes" && test "$enable_progress_threads" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: hcoll driver does not currently support progress threads. Disabling HCOLL." >&5 +$as_echo "$as_me: WARNING: hcoll driver does not currently support progress threads. Disabling HCOLL." >&2;} + ompi_check_hcoll_happy="no" fi -# -# Clean up -# + if test "$ompi_check_hcoll_happy" = "yes"; then : + coll_hcoll_happy="yes" +else + if test ! -z "$with_hcoll" && test "$with_hcoll" != "no"; then : + as_fn_error $? "HCOLL support requested but not found. Aborting" "$LINENO" 5 +fi + coll_hcoll_happy="no" +fi # Unwind the index @@ -267699,80 +290246,70 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/orte/mca/state/all_components/post_configure.sh" - if test -f $infile; then - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi + if test "$coll_hcoll_happy" = "yes"; then : + coll_hcoll_WRAPPER_EXTRA_LDFLAGS="$coll_hcoll_LDFLAGS" + coll_hcoll_CPPFLAGS="$coll_hcoll_CPPFLAGS" + coll_hcoll_WRAPPER_EXTRA_LIBS="$coll_hcoll_LIBS" + should_build=$should_build +else + should_build=0 +fi + + # substitute in the things needed to build hcoll - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - state_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - state_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/orte/mca/state/$component/post_configure.sh" + infile="$srcdir/ompi/mca/coll/hcoll/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + all_components="$all_components hcoll" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" + dso_components="$dso_components hcoll" else - if test "state" = "common"; then + if test "coll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/state/$component/lib${ORTE_LIB_PREFIX}mca_state_$component.la $static_ltlibs" + static_ltlibs="mca/coll/hcoll/lib${OMPI_LIB_PREFIX}mca_coll_hcoll.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/state/$component/libmca_state_$component.la $static_ltlibs" + static_ltlibs="mca/coll/hcoll/libmca_coll_hcoll.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_state_$component_component;" >> $outfile.extern - echo " &mca_state_$component_component, " >> $outfile.struct - static_components="$static_components $component" + echo "extern const mca_base_component_t mca_coll_hcoll_component;" >> $outfile.extern + echo " &mca_coll_hcoll_component, " >> $outfile.struct + static_components="$static_components hcoll" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:$component can compile" >&5 -$as_echo_n "checking if MCA component state:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:hcoll can compile" >&5 +$as_echo_n "checking if MCA component coll:hcoll can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_state" = "$component" ; then + if test "$DIRECT_coll" = "hcoll" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_orte_state_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** state component $component was supposed to be direct-called, but +as_fn_error $? "*** coll component hcoll was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -267780,24 +290317,104 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_state" = "$component" ; then -as_fn_error $? "*** state component $component was supposed to be direct-called, but + if test "$DIRECT_coll" = "hcoll" ; then +as_fn_error $? "*** coll component hcoll was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$state_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$coll_hcoll_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $coll_hcoll_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -267837,7 +290454,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $coll_hcoll_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -267877,8 +290494,9 @@ unset $opal_var done -str="line=\$state_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + +fi + if test "$coll_hcoll_WRAPPER_EXTRA_LIBS" = ""; then : @@ -267918,7 +290536,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $coll_hcoll_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -267959,240 +290577,252 @@ done - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - +else - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component state:$component can compile" >&5 -$as_echo_n "checking if MCA component state:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_state" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - if test ! -z "$DIRECT_state" ; then - if test "$DIRECT_state" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi done -fi - - MCA_orte_state_ALL_COMPONENTS="$all_components" - MCA_orte_state_STATIC_COMPONENTS="$static_components" - MCA_orte_state_DSO_COMPONENTS="$dso_components" - MCA_orte_state_STATIC_LTLIBS="$static_ltlibs" - - - - + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - MCA_orte_state_ALL_SUBDIRS= - for item in $all_components ; do - MCA_orte_state_ALL_SUBDIRS="$MCA_orte_state_ALL_SUBDIRS mca/state/$item" + for arg in $coll_hcoll_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - MCA_orte_state_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_orte_state_STATIC_SUBDIRS="$MCA_orte_state_STATIC_SUBDIRS mca/state/$item" - done - - + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - MCA_orte_state_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_orte_state_DSO_SUBDIRS="$MCA_orte_state_DSO_SUBDIRS mca/state/$item" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done +fi - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "state" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - - # note that mca_wrapper_extra_* is a running list, and we take checkpoints at the end of our project - orte_mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags" - orte_mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags" - orte_mca_wrapper_extra_libs="$mca_wrapper_extra_libs" - - - - + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$coll_hcoll_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : -# BWB: Until projects have separate configure scripts - # and can skip running all of ORTE, just avoid recursing - # into orte sub directory if orte disabled - if (test "ompi" = "ompi" && test "$enable_mpi" != "no") || test "ompi" = "opal" || test "ompi" = "orte" || test "ompi" = "oshmem"; then - MCA_PROJECT_SUBDIRS="$MCA_PROJECT_SUBDIRS ompi" - MCA_PROJECT_DIST_SUBDIRS="$MCA_PROJECT_DIST_SUBDIRS ompi" - fi - # can't use a variable rename here because these need to be evaled - # at auto* time. + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - opal_show_subtitle "Configuring MCA for ompi" + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for frameworks for ompi" >&5 -$as_echo_n "checking for frameworks for ompi... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: common, bml, coll, crcp, fbtl, fcoll, fs, hook, io, mtl, op, osc, pml, rte, sharedfp, topo, vprotocol" >&5 -$as_echo "common, bml, coll, crcp, fbtl, fcoll, fs, hook, io, mtl, op, osc, pml, rte, sharedfp, topo, vprotocol" >&6; } + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # iterate through the list of frameworks. There is something - # funky with m4 foreach if the list is defined, but empty. It - # will call the 3rd argument once with an empty value for the - # first argument. Protect against calling MCA_CONFIGURE_FRAMEWORK - # with an empty second argument. Grrr.... - # if there isn't a project list, abort - # - # Also setup two variables for Makefiles: - # MCA_project_FRAMEWORKS - list of frameworks in that project - # MCA_project_FRAMEWORK_LIBS - list of libraries (or variables pointing - # to more libraries) that must be included - # in the project's main library + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - MCA_ompi_FRAMEWORKS= - MCA_ompi_FRAMEWORKS_SUBDIRS= - MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS= - MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS= - MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS= - MCA_ompi_FRAMEWORK_LIBS= - MCA_ompi_FRAMEWORKS="common $MCA_ompi_FRAMEWORKS" - MCA_ompi_FRAMEWORKS_SUBDIRS="mca/common $MCA_ompi_FRAMEWORKS_SUBDIRS" - MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="\$(MCA_ompi_common_ALL_SUBDIRS) $MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS" - MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="\$(MCA_ompi_common_DSO_SUBDIRS) $MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS" - MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="\$(MCA_ompi_common_STATIC_SUBDIRS) $MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS" + for arg in $coll_hcoll_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_common_STATIC_LTLIBS)" - opal_show_subsubtitle "Configuring MCA framework common" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_hcoll_WRAPPER_EXTRA_CPPFLAGS ($coll_hcoll_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring coll_hcoll_WRAPPER_EXTRA_CPPFLAGS ($coll_hcoll_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=ompi/mca/common - as_dir=$outdir; as_fn_mkdir_p +else - # emit Makefile rule - ac_config_files="$ac_config_files ompi/mca/common/Makefile" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:hcoll can compile" >&5 +$as_echo_n "checking if MCA component coll:hcoll can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # If this component was requested as the default for this + # type, then abort. + if test "$with_coll" = "hcoll" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hcoll\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"hcoll\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "hcoll" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hcoll\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"hcoll\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework common" >&5 -$as_echo_n "checking for no configure components in framework common... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework common" >&5 -$as_echo_n "checking for m4 configure components in framework common... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: monitoring, ompio" >&5 -$as_echo "monitoring, ompio" >&6; } + # add component to all component list + all_components="$all_components hcoll" +fi - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_coll_hcoll_DSO=1 +else + BUILD_ompi_coll_hcoll_DSO=0 +fi + if test "$BUILD_ompi_coll_hcoll_DSO" = "1"; then + MCA_BUILD_ompi_coll_hcoll_DSO_TRUE= + MCA_BUILD_ompi_coll_hcoll_DSO_FALSE='#' +else + MCA_BUILD_ompi_coll_hcoll_DSO_TRUE='#' + MCA_BUILD_ompi_coll_hcoll_DSO_FALSE= +fi - # run the configure logic for the no-config components + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # configure components that use built-in configuration scripts + unset compile_mode - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - opal_show_subsubsubtitle "MCA component common:monitoring (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component coll:monitoring (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/common/monitoring" + component_path="$srcdir/ompi/mca/coll/monitoring" want_component=0 # build if: @@ -268224,8 +290854,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "monitoring" ; then + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "monitoring" ; then want_component=1 else want_component=0 @@ -268234,10 +290864,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_common" = "1"; then : + if test "$DISABLE_coll" = "1"; then : want_component=0 fi - if test "$DISABLE_common_monitoring" = "1"; then : + if test "$DISABLE_coll_monitoring" = "1"; then : want_component=0 fi @@ -268250,11 +290880,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_common" - SHARED_COMPONENT="$DSO_common_monitoring" + SHARED_FRAMEWORK="$DSO_coll" + SHARED_COMPONENT="$DSO_coll_monitoring" - STATIC_FRAMEWORK="$STATIC_common" - STATIC_COMPONENT="$STATIC_common_monitoring" + STATIC_FRAMEWORK="$STATIC_coll" + STATIC_COMPONENT="$STATIC_coll_monitoring" shared_mode_override=static @@ -268272,9 +290902,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:monitoring compile mode" >&5 -$as_echo_n "checking for MCA component common:monitoring compile mode... " >&6; } - if test "$DIRECT_common" = "monitoring" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:monitoring compile mode" >&5 +$as_echo_n "checking for MCA component coll:monitoring compile mode... " >&6; } + if test "$DIRECT_coll" = "monitoring" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -268285,11 +290915,7 @@ # try to configure the component - ac_config_files="$ac_config_files ompi/mca/common/monitoring/Makefile" - - - - + ac_config_files="$ac_config_files ompi/mca/coll/monitoring/Makefile" if test "$MCA_BUILD_ompi_common_monitoring_DSO_TRUE" = ''; then : @@ -268306,7 +290932,7 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/common/monitoring/post_configure.sh" + infile="$srcdir/ompi/mca/coll/monitoring/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs all_components="$all_components monitoring" @@ -268314,37 +290940,37 @@ if test "$compile_mode" = "dso" ; then dso_components="$dso_components monitoring" else - if test "common" = "common"; then + if test "coll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/common/monitoring/lib${OMPI_LIB_PREFIX}mca_common_monitoring.la $static_ltlibs" + static_ltlibs="mca/coll/monitoring/lib${OMPI_LIB_PREFIX}mca_coll_monitoring.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/common/monitoring/libmca_common_monitoring.la $static_ltlibs" + static_ltlibs="mca/coll/monitoring/libmca_coll_monitoring.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_common_monitoring_component;" >> $outfile.extern - echo " &mca_common_monitoring_component, " >> $outfile.struct + echo "extern const mca_base_component_t mca_coll_monitoring_component;" >> $outfile.extern + echo " &mca_coll_monitoring_component, " >> $outfile.struct static_components="$static_components monitoring" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:monitoring can compile" >&5 -$as_echo_n "checking if MCA component common:monitoring can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:monitoring can compile" >&5 +$as_echo_n "checking if MCA component coll:monitoring can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_common" = "monitoring" ; then + if test "$DIRECT_coll" = "monitoring" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_common_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** common component monitoring was supposed to be direct-called, but +as_fn_error $? "*** coll component monitoring was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -268352,8 +290978,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_common" = "monitoring" ; then -as_fn_error $? "*** common component monitoring was supposed to be direct-called, but + if test "$DIRECT_coll" = "monitoring" ; then +as_fn_error $? "*** coll component monitoring was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -268368,7 +290994,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$common_monitoring_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$coll_monitoring_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -268408,7 +291034,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_monitoring_LDFLAGS; do + for arg in $coll_monitoring_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -268489,7 +291115,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_monitoring_WRAPPER_EXTRA_LDFLAGS; do + for arg in $coll_monitoring_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -268531,7 +291157,7 @@ fi - if test "$common_monitoring_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$coll_monitoring_WRAPPER_EXTRA_LIBS" = ""; then : @@ -268571,7 +291197,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_monitoring_LIBS; do + for arg in $coll_monitoring_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -268652,7 +291278,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_monitoring_WRAPPER_EXTRA_LIBS; do + for arg in $coll_monitoring_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -268700,7 +291326,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$common_monitoring_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$coll_monitoring_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -268743,7 +291369,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_monitoring_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $coll_monitoring_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -268786,21 +291412,21 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring common_monitoring_WRAPPER_EXTRA_CPPFLAGS ($common_monitoring_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring common_monitoring_WRAPPER_EXTRA_CPPFLAGS ($common_monitoring_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_monitoring_WRAPPER_EXTRA_CPPFLAGS ($coll_monitoring_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring coll_monitoring_WRAPPER_EXTRA_CPPFLAGS ($coll_monitoring_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:monitoring can compile" >&5 -$as_echo_n "checking if MCA component common:monitoring can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:monitoring can compile" >&5 +$as_echo_n "checking if MCA component coll:monitoring can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_common" = "monitoring" ; then + if test "$with_coll" = "monitoring" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"monitoring\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"monitoring\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 @@ -268808,8 +291434,8 @@ as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "monitoring" ; then + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "monitoring" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"monitoring\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"monitoring\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 @@ -268826,16 +291452,16 @@ # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_ompi_common_monitoring_DSO=1 + BUILD_ompi_coll_monitoring_DSO=1 else - BUILD_ompi_common_monitoring_DSO=0 + BUILD_ompi_coll_monitoring_DSO=0 fi - if test "$BUILD_ompi_common_monitoring_DSO" = "1"; then - MCA_BUILD_ompi_common_monitoring_DSO_TRUE= - MCA_BUILD_ompi_common_monitoring_DSO_FALSE='#' + if test "$BUILD_ompi_coll_monitoring_DSO" = "1"; then + MCA_BUILD_ompi_coll_monitoring_DSO_TRUE= + MCA_BUILD_ompi_coll_monitoring_DSO_FALSE='#' else - MCA_BUILD_ompi_common_monitoring_DSO_TRUE='#' - MCA_BUILD_ompi_common_monitoring_DSO_FALSE= + MCA_BUILD_ompi_coll_monitoring_DSO_TRUE='#' + MCA_BUILD_ompi_coll_monitoring_DSO_FALSE= fi @@ -268851,13 +291477,13 @@ - opal_show_subsubsubtitle "MCA component common:ompio (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component coll:portals4 (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/common/ompio" + component_path="$srcdir/ompi/mca/coll/portals4" want_component=0 # build if: @@ -268889,8 +291515,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "ompio" ; then + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "portals4" ; then want_component=1 else want_component=0 @@ -268899,137 +291525,568 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_common" = "1"; then : + if test "$DISABLE_coll" = "1"; then : + want_component=0 +fi + if test "$DISABLE_coll_portals4" = "1"; then : want_component=0 fi - if test "$DISABLE_common_ompio" = "1"; then : - want_component=0 + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + SHARED_FRAMEWORK="$DSO_coll" + SHARED_COMPONENT="$DSO_coll_portals4" + + STATIC_FRAMEWORK="$STATIC_coll" + STATIC_COMPONENT="$STATIC_coll_portals4" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:portals4 compile mode" >&5 +$as_echo_n "checking for MCA component coll:portals4 compile mode... " >&6; } + if test "$DIRECT_coll" = "portals4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + + # try to configure the component + + ac_config_files="$ac_config_files ompi/mca/coll/portals4/Makefile" + + + + if test -z "$ompi_check_portals4_happy" ; then + +# Check whether --with-portals4 was given. +if test "${with_portals4+set}" = set; then : + withval=$with_portals4; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-portals4 value" >&5 +$as_echo_n "checking --with-portals4 value... " >&6; } + if test "$with_portals4" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-portals4)" >&5 +$as_echo "simple no (specified --without-portals4)" >&6; } +else + if test "$with_portals4" = "yes" || test "x$with_portals4" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_portals4"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_portals4 not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_portals4 not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_portals4/include/portals4.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_portals4/include/portals4.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_portals4/include/portals4.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_portals4)" >&5 +$as_echo "sanity check ok ($with_portals4)" >&6; } + +fi + + +fi + + +fi + + +fi + + +# Check whether --with-portals4-libdir was given. +if test "${with_portals4_libdir+set}" = set; then : + withval=$with_portals4_libdir; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-portals4-libdir value" >&5 +$as_echo_n "checking --with-portals4-libdir value... " >&6; } + if test "$with_portals4_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-portals4-libdir)" >&5 +$as_echo "simple no (specified --without-portals4-libdir)" >&6; } +else + if test "$with_portals4_libdir" = "yes" || test "x$with_portals4_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_portals4_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_portals4_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_portals4_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_portals4_libdir/libportals.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_portals4_libdir/libportals.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_portals4_libdir/libportals.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_portals4_libdir)" >&5 +$as_echo "sanity check ok ($with_portals4_libdir)" >&6; } + +fi + + +fi + + +fi + + +fi + + + ompi_check_portals4_coll_portals4_save_CPPFLAGS="$CPPFLAGS" + ompi_check_portals4_coll_portals4_save_LDFLAGS="$LDFLAGS" + ompi_check_portals4_coll_portals4_save_LIBS="$LIBS" + + if test "$with_portals4" != "no"; then : + if test ! -z "$with_portals4" && test "$with_portals4" != "yes"; then : + ompi_check_portals4_dir="$with_portals4" +fi + if test ! -z "$with_portals4_libdir" && test "$with_portals4_libdir" != "yes"; then : + ompi_check_portals4_libdir="$with_portals4_libdir" +fi + + + opal_check_package_opal_check_portals4_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_opal_check_portals4_save_LDFLAGS="$LDFLAGS" + opal_check_package_opal_check_portals4_save_LIBS="$LIBS" + + opal_check_package_opal_check_portals4_orig_CPPFLAGS="$opal_check_portals4_CPPFLAGS" + opal_check_package_opal_check_portals4_orig_LDFLAGS="$opal_check_portals4_LDFLAGS" + opal_check_package_opal_check_portals4_orig_LIBS="$opal_check_portals4_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in dir_prefix; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_portals4_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $ompi_check_portals4_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in portals4.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "portals4.h" "ac_cv_header_portals4_h" "$ac_includes_default" +if test "x$ac_cv_header_portals4_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PORTALS4_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_portals4_h +fi +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + opal_check_portals4_CPPFLAGS="$opal_check_portals4_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in portals4.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "portals4.h" "ac_cv_header_portals4_h" "$ac_includes_default" +if test "x$ac_cv_header_portals4_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PORTALS4_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_PtlLEAppend + opal_check_package_lib_happy="no" + if test "$ompi_check_portals4_libdir" != ""; then : + # libdir was specified - search only there + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$ompi_check_portals4_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_portals4_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : + +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_portals4_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : + +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : + +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed else - should_build=0 + ac_cv_search_PtlLEAppend=no fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_common" - SHARED_COMPONENT="$DSO_common_ompio" - - STATIC_FRAMEWORK="$STATIC_common" - STATIC_COMPONENT="$STATIC_common_ompio" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:ompio compile mode" >&5 -$as_echo_n "checking for MCA component common:ompio compile mode... " >&6; } - if test "$DIRECT_common" = "ompio" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files ompi/mca/common/ompio/Makefile" - - - if test "$enable_io_ompio" != "no"; then : - should_build=$should_build +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - should_build=0 + opal_check_package_lib_happy="no" fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/common/ompio/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ompio" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ompio" - else - if test "common" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/common/ompio/lib${OMPI_LIB_PREFIX}mca_common_ompio.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/common/ompio/libmca_common_ompio.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_common_ompio_component;" >> $outfile.extern - echo " &mca_common_ompio_component, " >> $outfile.struct - static_components="$static_components ompio" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:ompio can compile" >&5 -$as_echo_n "checking if MCA component common:ompio can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_common" = "ompio" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_common_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** common component ompio was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_common" = "ompio" ; then -as_fn_error $? "*** common component ompio was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +fi +fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$common_ompio_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -269042,7 +292099,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -269061,56 +292118,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $common_ompio_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -269123,7 +292140,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -269142,7 +292159,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -269150,187 +292167,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $common_ompio_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libportals requires libnl v1 or v3" >&5 +$as_echo_n "checking if libportals requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void PtlLEAppend (void); +int main(int argc, char *argv[]) { + PtlLEAppend (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:292194: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:292201: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib portals" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib portals" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs portals" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones -fi - if test "$common_ompio_WRAPPER_EXTRA_LIBS" = ""; then : +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $common_ompio_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + + libnl_sane=0 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + opal_libnlv3_libs="$opal_libnlv3_libs portals" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +# Go through each item in the variable and only keep the unique ones - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do -else + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_done="`expr $opal_i \>= $opal_count`" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Increment the counter - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $common_ompio_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -269354,75 +292460,10 @@ done -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$common_ompio_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $common_ompio_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -269445,185 +292486,373 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring common_ompio_WRAPPER_EXTRA_CPPFLAGS ($common_ompio_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring common_ompio_WRAPPER_EXTRA_CPPFLAGS ($common_ompio_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:ompio can compile" >&5 -$as_echo_n "checking if MCA component common:ompio can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_common" = "ompio" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ompio\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ompio\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "ompio" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ompio\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ompio\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - # add component to all component list - all_components="$all_components ompio" fi - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_common_ompio_DSO=1 + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_PtlLEAppend" != "no" && + test "$ac_cv_search_PtlLEAppend" != "none required"; then : + opal_check_portals4_LIBS="$ac_cv_search_PtlLEAppend " else - BUILD_ompi_common_ompio_DSO=0 + opal_check_portals4_LIBS="" fi - if test "$BUILD_ompi_common_ompio_DSO" = "1"; then - MCA_BUILD_ompi_common_ompio_DSO_TRUE= - MCA_BUILD_ompi_common_ompio_DSO_FALSE='#' + opal_check_package_happy="yes" else - MCA_BUILD_ompi_common_ompio_DSO_TRUE='#' - MCA_BUILD_ompi_common_ompio_DSO_FALSE= + opal_check_package_happy="no" fi - if test "$should_build" = "1"; then : - components_last_result=1 else - components_last_result=0 + opal_check_package_happy="no" fi +else - unset compile_mode - + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + # see comment above + unset ac_cv_search_PtlLEAppend + opal_check_package_lib_happy="no" + if test "$ompi_check_portals4_libdir" != ""; then : + # libdir was specified - search only there + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$ompi_check_portals4_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_portals4_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_portals4_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : - if test "1" != "0"; then : +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - for component_path in $srcdir/ompi/mca/common/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component common:$component (need to configure)" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - component_path="$srcdir/ompi/mca/common/$component" - want_component=0 + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +fi +fi - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # if we were explicitly disabled, don't build :) - if test "$DISABLE_common" = "1"; then : - want_component=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_common_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : - if test "$want_component" = "1"; then : - should_build=1 else - should_build=0 + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +fi +fi +fi - SHARED_FRAMEWORK="$DSO_common" - str="SHARED_COMPONENT=\$DSO_common_$component" - eval $str + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. - STATIC_FRAMEWORK="$STATIC_common" - str="STATIC_COMPONENT=\$STATIC_common_$component" - eval $str - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:$component compile mode" >&5 -$as_echo_n "checking for MCA component common:$component compile mode... " >&6; } - if test "$DIRECT_common" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_libnl_sane; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - if test "$should_build" = "1" ; then + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + opal_libnl_sane=1 + case $host in + *linux*) @@ -269636,7 +292865,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -269655,7 +292884,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -269663,307 +292892,276 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# ompi/mca/common/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="ompi/mca/common/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -# -# Sanity checks -# -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libportals requires libnl v1 or v3" >&5 +$as_echo_n "checking if libportals requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void PtlLEAppend (void); +int main(int argc, char *argv[]) { + PtlLEAppend (); + return 0; +} +EOF - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + this_requires_v1=0 + this_requires_v3=0 + result_msg= - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:292919: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS 1>&5 2>&1 +opal_status=$? - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:292926: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } - # - # Move into the target directory - # +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib portals" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib portals" >&2;} - subdir_parent=`pwd` - cd $subdir_dir +fi - # - # Make a "../" for each directory in $subdir_dir. - # + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&2;} - # - # Construct the --cache-file argument - # + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + libnl_sane=0 +fi - # - # Invoke the configure script in the subdirectory - # + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&2;} - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs portals" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + opal_i="`expr $opal_i - 1`" fi +done - # - # Go back to the topdir - # +# Take all the items in the "array" and assemble them back into a +# single variable - cd $subdir_parent -fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval -# -# Clean up -# + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +# Done; do the assignment - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# Clean up - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/ompi/mca/common/all_components/post_configure.sh" - if test -f $infile; then +fi - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&2;} - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - common_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - common_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs portals" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs +# Go through each item in the variable and only keep the unique ones - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/common/$component/post_configure.sh" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + # Loop over every token we've seen so far - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "common" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/common/$component/lib${OMPI_LIB_PREFIX}mca_common_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/common/$component/libmca_common_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_common_$component_component;" >> $outfile.extern - echo " &mca_common_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:$component can compile" >&5 -$as_echo_n "checking if MCA component common:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_common" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_common_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** common component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_common" = "$component" ; then -as_fn_error $? "*** common component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$common_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter + opal_i="`expr $opal_i + 1`" + done - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Take all the items in the "array" and assemble them back into a +# single variable - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -269986,65 +293184,55 @@ unset $opal_var done -str="line=\$common_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_PtlLEAppend" != "no" && + test "$ac_cv_search_PtlLEAppend" != "none required"; then : + opal_check_portals4_LIBS="$ac_cv_search_PtlLEAppend " +else + opal_check_portals4_LIBS="" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -270068,284 +293256,180 @@ done - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_portals4_happy="yes" +else + opal_check_portals4_CPPFLAGS="$opal_check_package_opal_check_portals4_orig_CPPFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + opal_check_portals4_LIBS="$opal_check_package_opal_check_portals4_orig_LIBS" + ompi_check_portals4_happy="no" +fi - else + CPPFLAGS="$opal_check_package_opal_check_portals4_save_CPPFLAGS" + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + LIBS="$opal_check_package_opal_check_portals4_save_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:$component can compile" >&5 -$as_echo_n "checking if MCA component common:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else + ompi_check_portals4_happy="no" +fi - # If this component was requested as the default for this - # type, then abort. - if test "$with_common" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + CPPFLAGS="$ompi_check_portals4_coll_portals4_save_CPPFLAGS" + LDFLAGS="$ompi_check_portals4_coll_portals4_save_LDFLAGS" + LIBS="$ompi_check_portals4_coll_portals4_save_LIBS" - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + max_md_size=0 - fi - fi - done +# Check whether --with-portals4-max-md-size was given. +if test "${with_portals4_max_md_size+set}" = set; then : + withval=$with_portals4_max_md_size; +fi + if test "$with_portals4_max_md_size" = "yes" || test "$with_portals4_max_md_size" = "no"; then : + as_fn_error $? "--with-portals4-max-md-size requires an integer argument" "$LINENO" 5 +else + if test -n "$with_portals4_max_md_size"; then : + max_md_size="$with_portals4_max_md_size" +fi fi - MCA_ompi_common_ALL_COMPONENTS="$all_components" - MCA_ompi_common_STATIC_COMPONENTS="$static_components" - MCA_ompi_common_DSO_COMPONENTS="$dso_components" - MCA_ompi_common_STATIC_LTLIBS="$static_ltlibs" +cat >>confdefs.h <<_ACEOF +#define OPAL_PORTALS4_MAX_MD_SIZE $max_md_size +_ACEOF + max_va_size=0 +# Check whether --with-portals4-max-va-size was given. +if test "${with_portals4_max_va_size+set}" = set; then : + withval=$with_portals4_max_va_size; +fi + if test "$with_portals4_max_va_size" = "yes" || test "$with_portals4_max_va_size" = "no"; then : + as_fn_error $? "--with-portals4-max-va-size requires an integer argument" "$LINENO" 5 +else + if test -n "$with_portals4_max_va_size"; then : + max_va_size="$with_portals4_max_va_size" +fi +fi +cat >>confdefs.h <<_ACEOF +#define OPAL_PORTALS4_MAX_VA_SIZE $max_va_size +_ACEOF - MCA_ompi_common_ALL_SUBDIRS= - for item in $all_components ; do - MCA_ompi_common_ALL_SUBDIRS="$MCA_ompi_common_ALL_SUBDIRS mca/common/$item" - done + if (test $max_md_size -eq 0 && test $max_va_size -ne 0 ) || (test $max_md_size -ne 0 && test $max_va_size -eq 0 ); then : + as_fn_error $? "If either --with-portals4-max-md-size or --with-portals4-max-va-size is set, both must be set." "$LINENO" 5 +fi + if test $max_md_size -ge $max_va_size; then : + max_md_size=0 + max_va_size=0 +fi + if test $max_md_size -ne 0 && test $max_va_size -ne 0; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: Portals 4 address space size: $max_md_size, $max_va_size" >&5 +$as_echo "$as_me: Portals 4 address space size: $max_md_size, $max_va_size" >&6;} +fi - MCA_ompi_common_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_ompi_common_STATIC_SUBDIRS="$MCA_ompi_common_STATIC_SUBDIRS mca/common/$item" - done + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - MCA_ompi_common_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_ompi_common_DSO_SUBDIRS="$MCA_ompi_common_DSO_SUBDIRS mca/common/$item" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "common" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section else - rm -f $outfile + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS bml" - MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/bml" - MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_bml_ALL_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_bml_DSO_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_bml_STATIC_SUBDIRS)" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/bml/libmca_bml.la" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_bml_STATIC_LTLIBS)" - - opal_show_subsubtitle "Configuring MCA framework bml" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=ompi/mca/bml/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files ompi/mca/bml/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework bml" >&5 -$as_echo_n "checking for no configure components in framework bml... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework bml" >&5 -$as_echo_n "checking for m4 configure components in framework bml... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: r2" >&5 -$as_echo "r2" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - opal_show_subsubsubtitle "MCA component bml:r2 (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - component_path="$srcdir/ompi/mca/bml/r2" - want_component=0 - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_bml" ; then - if test "$DIRECT_bml" = "r2" ; then - want_component=1 - else - want_component=0 - fi - fi fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_bml" = "1"; then : - want_component=0 + if test "$ompi_check_portals4_happy" = "yes"; then : + coll_portals4_LDFLAGS="$coll_portals4_LDFLAGS $opal_check_portals4_LDFLAGS" + coll_portals4_CPPFLAGS="$coll_portals4_CPPFLAGS $opal_check_portals4_CPPFLAGS" + coll_portals4_LIBS="$coll_portals4_LIBS $opal_check_portals4_LIBS" + coll_portals4_happy="yes" +else + if test ! -z "$with_portals4" && test "$with_portals4" != "no"; then : + as_fn_error $? "Portals4 support requested but not found. Aborting" "$LINENO" 5 fi - if test "$DISABLE_bml_r2" = "1"; then : - want_component=0 + coll_portals4_happy="no" fi - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + + if test "$coll_portals4_happy" = "yes"; then : + should_build=$should_build else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_bml" - SHARED_COMPONENT="$DSO_bml_r2" - - STATIC_FRAMEWORK="$STATIC_bml" - STATIC_COMPONENT="$STATIC_bml_r2" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component bml:r2 compile mode" >&5 -$as_echo_n "checking for MCA component bml:r2 compile mode... " >&6; } - if test "$DIRECT_bml" = "r2" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - # try to configure the component - ac_config_files="$ac_config_files ompi/mca/bml/r2/Makefile" - should_build=$should_build opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -270355,45 +293439,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/bml/r2/post_configure.sh" + infile="$srcdir/ompi/mca/coll/portals4/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components r2" + all_components="$all_components portals4" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components r2" + dso_components="$dso_components portals4" else - if test "bml" = "common"; then + if test "coll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/bml/r2/lib${OMPI_LIB_PREFIX}mca_bml_r2.la $static_ltlibs" + static_ltlibs="mca/coll/portals4/lib${OMPI_LIB_PREFIX}mca_coll_portals4.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/bml/r2/libmca_bml_r2.la $static_ltlibs" + static_ltlibs="mca/coll/portals4/libmca_coll_portals4.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_bml_r2_component;" >> $outfile.extern - echo " &mca_bml_r2_component, " >> $outfile.struct - static_components="$static_components r2" + echo "extern const mca_base_component_t mca_coll_portals4_component;" >> $outfile.extern + echo " &mca_coll_portals4_component, " >> $outfile.struct + static_components="$static_components portals4" fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bml:r2 can compile" >&5 -$as_echo_n "checking if MCA component bml:r2 can compile... " >&6; } + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:portals4 can compile" >&5 +$as_echo_n "checking if MCA component coll:portals4 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_bml" = "r2" ; then + if test "$DIRECT_coll" = "portals4" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_bml_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** bml component r2 was supposed to be direct-called, but +as_fn_error $? "*** coll component portals4 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -270401,8 +293485,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_bml" = "r2" ; then -as_fn_error $? "*** bml component r2 was supposed to be direct-called, but + if test "$DIRECT_coll" = "portals4" ; then +as_fn_error $? "*** coll component portals4 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -270417,7 +293501,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$bml_r2_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$coll_portals4_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -270457,7 +293541,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $bml_r2_LDFLAGS; do + for arg in $coll_portals4_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -270538,7 +293622,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $bml_r2_WRAPPER_EXTRA_LDFLAGS; do + for arg in $coll_portals4_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -270580,7 +293664,7 @@ fi - if test "$bml_r2_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$coll_portals4_WRAPPER_EXTRA_LIBS" = ""; then : @@ -270620,7 +293704,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $bml_r2_LIBS; do + for arg in $coll_portals4_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -270701,7 +293785,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $bml_r2_WRAPPER_EXTRA_LIBS; do + for arg in $coll_portals4_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -270749,7 +293833,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$bml_r2_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$coll_portals4_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -270792,7 +293876,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $bml_r2_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $coll_portals4_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -270835,32 +293919,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring bml_r2_WRAPPER_EXTRA_CPPFLAGS ($bml_r2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring bml_r2_WRAPPER_EXTRA_CPPFLAGS ($bml_r2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_portals4_WRAPPER_EXTRA_CPPFLAGS ($coll_portals4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring coll_portals4_WRAPPER_EXTRA_CPPFLAGS ($coll_portals4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bml:r2 can compile" >&5 -$as_echo_n "checking if MCA component bml:r2 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:portals4 can compile" >&5 +$as_echo_n "checking if MCA component coll:portals4 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_bml" = "r2" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"r2\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"r2\" failed to configure properly" >&2;} + if test "$with_coll" = "portals4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"portals4\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"portals4\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_bml" ; then - if test "$DIRECT_bml" = "r2" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"r2\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"r2\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "portals4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"portals4\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"portals4\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -270868,42 +293952,42 @@ fi # add component to all component list - all_components="$all_components r2" + all_components="$all_components portals4" fi if test "$should_build" = "1"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag BML" >&5 -$as_echo_n "checking for index in endpoint array for tag BML... " >&6; } - if test -z "$OMPI_PROC_ENDPOINT_TAG_BML"; then : - OMPI_PROC_ENDPOINT_TAG_BML=$ompi_endpoint_tag_counter + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag PORTALS4" >&5 +$as_echo_n "checking for index in endpoint array for tag PORTALS4... " >&6; } + if test -z "$OMPI_PROC_ENDPOINT_TAG_PORTALS4"; then : + OMPI_PROC_ENDPOINT_TAG_PORTALS4=$ompi_endpoint_tag_counter cat >>confdefs.h <<_ACEOF -#define OMPI_PROC_ENDPOINT_TAG_BML $OMPI_PROC_ENDPOINT_TAG_BML +#define OMPI_PROC_ENDPOINT_TAG_PORTALS4 $OMPI_PROC_ENDPOINT_TAG_PORTALS4 _ACEOF ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_BML" >&5 -$as_echo "$OMPI_PROC_ENDPOINT_TAG_BML" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_PORTALS4" >&5 +$as_echo "$OMPI_PROC_ENDPOINT_TAG_PORTALS4" >&6; } fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_ompi_bml_r2_DSO=1 + BUILD_ompi_coll_portals4_DSO=1 else - BUILD_ompi_bml_r2_DSO=0 + BUILD_ompi_coll_portals4_DSO=0 fi - if test "$BUILD_ompi_bml_r2_DSO" = "1"; then - MCA_BUILD_ompi_bml_r2_DSO_TRUE= - MCA_BUILD_ompi_bml_r2_DSO_FALSE='#' + if test "$BUILD_ompi_coll_portals4_DSO" = "1"; then + MCA_BUILD_ompi_coll_portals4_DSO_TRUE= + MCA_BUILD_ompi_coll_portals4_DSO_FALSE='#' else - MCA_BUILD_ompi_bml_r2_DSO_TRUE='#' - MCA_BUILD_ompi_bml_r2_DSO_FALSE= + MCA_BUILD_ompi_coll_portals4_DSO_TRUE='#' + MCA_BUILD_ompi_coll_portals4_DSO_FALSE= fi @@ -270919,24 +294003,13 @@ - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - - if test "1" != "0"; then : - - for component_path in $srcdir/ompi/mca/bml/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component bml:$component (need to configure)" + opal_show_subsubsubtitle "MCA component coll:ucc (m4 configuration macro)" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/bml/$component" + component_path="$srcdir/ompi/mca/coll/ucc" want_component=0 # build if: @@ -270968,8 +294041,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_bml" ; then - if test "$DIRECT_bml" = "$component" ; then + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "ucc" ; then want_component=1 else want_component=0 @@ -270978,29 +294051,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_bml" = "1"; then : + if test "$DISABLE_coll" = "1"; then : + want_component=0 +fi + if test "$DISABLE_coll_ucc" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_bml_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_bml" - str="SHARED_COMPONENT=\$DSO_bml_$component" - eval $str + SHARED_FRAMEWORK="$DSO_coll" + SHARED_COMPONENT="$DSO_coll_ucc" - STATIC_FRAMEWORK="$STATIC_bml" - str="STATIC_COMPONENT=\$STATIC_bml_$component" - eval $str + STATIC_FRAMEWORK="$STATIC_coll" + STATIC_COMPONENT="$STATIC_coll_ucc" shared_mode_override=static @@ -271018,9 +294089,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component bml:$component compile mode" >&5 -$as_echo_n "checking for MCA component bml:$component compile mode... " >&6; } - if test "$DIRECT_bml" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:ucc compile mode" >&5 +$as_echo_n "checking for MCA component coll:ucc compile mode... " >&6; } + if test "$DIRECT_coll" = "ucc" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -271028,9 +294099,12 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files ompi/mca/coll/ucc/Makefile" + + @@ -271043,7 +294117,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in ompi_check_ucc_dir ompi_check_ucc_happy CPPFLAGS_save LDFLAGS_save LIBS_save; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -271062,7 +294136,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_check_ucc_dir ompi_check_ucc_happy CPPFLAGS_save LDFLAGS_save LIBS_save\"" eval $opal_str unset opal_str @@ -271070,250 +294144,450 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# ompi/mca/bml/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="ompi/mca/bml/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" -# -# Sanity checks -# +# Check whether --with-ucc was given. +if test "${with_ucc+set}" = set; then : + withval=$with_ucc; +fi -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + if test "$with_ucc" != "no"; then : + if test -n "$with_ucc" && test "$with_ucc" != "yes"; then : + ompi_check_ucc_dir=$with_ucc +fi - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + CPPFLAGS_save=$CPPFLAGS + LDFLAGS_save=$LDFLAGS + LIBS_save=$LIBS - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - # - # Move into the target directory - # +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:294167: coll_ucc_CPPFLAGS : $coll_ucc_CPPFLAGS" >&5 +else + echo coll_ucc_CPPFLAGS : $coll_ucc_CPPFLAGS >&5 +fi - subdir_parent=`pwd` - cd $subdir_dir +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:294175: coll_ucc_LDFLAGS : $coll_ucc_LDFLAGS" >&5 +else + echo coll_ucc_LDFLAGS : $coll_ucc_LDFLAGS >&5 +fi - # - # Make a "../" for each directory in $subdir_dir. - # +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:294183: coll_ucc_LIBS : $coll_ucc_LIBS" >&5 +else + echo coll_ucc_LIBS : $coll_ucc_LIBS >&5 +fi - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + opal_check_package_coll_ucc_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_coll_ucc_save_LDFLAGS="$LDFLAGS" + opal_check_package_coll_ucc_save_LIBS="$LIBS" - # - # Construct the --cache-file argument - # + opal_check_package_coll_ucc_orig_CPPFLAGS="$coll_ucc_CPPFLAGS" + opal_check_package_coll_ucc_orig_LDFLAGS="$coll_ucc_LDFLAGS" + opal_check_package_coll_ucc_orig_LIBS="$coll_ucc_LIBS" - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - # - # Invoke the configure script in the subdirectory - # + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # - # Go back to the topdir - # + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in dir_prefix; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - cd $subdir_parent + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_ucc_api_ucc_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $ompi_check_ucc_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in ucc/api/ucc.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ucc/api/ucc.h" "ac_cv_header_ucc_api_ucc_h" "$ac_includes_default" +if test "x$ac_cv_header_ucc_api_ucc_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UCC_API_UCC_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi -# -# Clean up -# +done + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_ucc_api_ucc_h +fi +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + coll_ucc_CPPFLAGS="$coll_ucc_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in ucc/api/ucc.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ucc/api/ucc.h" "ac_cv_header_ucc_api_ucc_h" "$ac_includes_default" +if test "x$ac_cv_header_ucc_api_ucc_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UCC_API_UCC_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +done - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + if test "$opal_check_package_header_happy" = "yes"; then : - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/ompi/mca/bml/all_components/post_configure.sh" - if test -f $infile; then - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi + # see comment above + unset ac_cv_search_ucc_init_version + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + coll_ucc_LDFLAGS="$coll_ucc_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucc_init_version" >&5 +$as_echo_n "checking for library containing ucc_init_version... " >&6; } +if ${ac_cv_search_ucc_init_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - bml_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - bml_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucc_init_version (); +int +main () +{ +return ucc_init_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucc; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucc_init_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucc_init_version+:} false; then : + break +fi +done +if ${ac_cv_search_ucc_init_version+:} false; then : +else + ac_cv_search_ucc_init_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucc_init_version" >&5 +$as_echo "$ac_cv_search_ucc_init_version" >&6; } +ac_res=$ac_cv_search_ucc_init_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_coll_ucc_save_LDFLAGS" + coll_ucc_LDFLAGS="$opal_check_package_coll_ucc_orig_LDFLAGS" + unset ac_cv_search_ucc_init_version +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_ucc_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucc_init_version" >&5 +$as_echo_n "checking for library containing ucc_init_version... " >&6; } +if ${ac_cv_search_ucc_init_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucc_init_version (); +int +main () +{ +return ucc_init_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucc; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucc_init_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucc_init_version+:} false; then : + break +fi +done +if ${ac_cv_search_ucc_init_version+:} false; then : - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/bml/$component/post_configure.sh" +else + ac_cv_search_ucc_init_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucc_init_version" >&5 +$as_echo "$ac_cv_search_ucc_init_version" >&6; } +ac_res=$ac_cv_search_ucc_init_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_ucc_save_LDFLAGS" + coll_ucc_LDFLAGS="$opal_check_package_coll_ucc_orig_LDFLAGS" + unset ac_cv_search_ucc_init_version +fi +fi - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "bml" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/bml/$component/lib${OMPI_LIB_PREFIX}mca_bml_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/bml/$component/libmca_bml_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_bml_$component_component;" >> $outfile.extern - echo " &mca_bml_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + coll_ucc_LDFLAGS="$coll_ucc_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucc_init_version" >&5 +$as_echo_n "checking for library containing ucc_init_version... " >&6; } +if ${ac_cv_search_ucc_init_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bml:$component can compile" >&5 -$as_echo_n "checking if MCA component bml:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucc_init_version (); +int +main () +{ +return ucc_init_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucc; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucc_init_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucc_init_version+:} false; then : + break +fi +done +if ${ac_cv_search_ucc_init_version+:} false; then : - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_bml" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_bml_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** bml component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_bml" = "$component" ; then -as_fn_error $? "*** bml component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +else + ac_cv_search_ucc_init_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucc_init_version" >&5 +$as_echo "$ac_cv_search_ucc_init_version" >&6; } +ac_res=$ac_cv_search_ucc_init_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$bml_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_ucc_save_LDFLAGS" + coll_ucc_LDFLAGS="$opal_check_package_coll_ucc_orig_LDFLAGS" + unset ac_cv_search_ucc_init_version +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + coll_ucc_LDFLAGS="$coll_ucc_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucc_init_version" >&5 +$as_echo_n "checking for library containing ucc_init_version... " >&6; } +if ${ac_cv_search_ucc_init_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucc_init_version (); +int +main () +{ +return ucc_init_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucc; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucc_init_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucc_init_version+:} false; then : + break +fi +done +if ${ac_cv_search_ucc_init_version+:} false; then : + +else + ac_cv_search_ucc_init_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucc_init_version" >&5 +$as_echo "$ac_cv_search_ucc_init_version" >&6; } +ac_res=$ac_cv_search_ucc_init_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_ucc_save_LDFLAGS" + coll_ucc_LDFLAGS="$opal_check_package_coll_ucc_orig_LDFLAGS" + unset ac_cv_search_ucc_init_version +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -271326,7 +294600,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -271345,56 +294619,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - -str="line=\$bml_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + opal_libnl_sane=1 + case $host in + *linux*) @@ -271407,7 +294641,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -271426,7 +294660,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -271434,435 +294668,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucc requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucc requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ucc_init_version (void); +int main(int argc, char *argv[]) { + ucc_init_version (); + return 0; +} +EOF + this_requires_v1=0 + this_requires_v3=0 + result_msg= - fi +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:294695: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucc $LIBS $coll_ucc_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucc $LIBS $coll_ucc_LIBS 1>&5 2>&1 +opal_status=$? - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:294702: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucc" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucc" >&2;} - else +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bml:$component can compile" >&5 -$as_echo_n "checking if MCA component bml:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # If this component was requested as the default for this - # type, then abort. - if test "$with_bml" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - if test ! -z "$DIRECT_bml" ; then - if test "$DIRECT_bml" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucc links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucc links to both libnl and libnl-3." >&2;} - fi - fi - done + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucc (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucc (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucc." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucc." >&2;} + libnl_sane=0 fi - MCA_ompi_bml_ALL_COMPONENTS="$all_components" - MCA_ompi_bml_STATIC_COMPONENTS="$static_components" - MCA_ompi_bml_DSO_COMPONENTS="$dso_components" - MCA_ompi_bml_STATIC_LTLIBS="$static_ltlibs" + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucc requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucc requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucc (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucc (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucc." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucc." >&2;} + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs ucc" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - MCA_ompi_bml_ALL_SUBDIRS= - for item in $all_components ; do - MCA_ompi_bml_ALL_SUBDIRS="$MCA_ompi_bml_ALL_SUBDIRS mca/bml/$item" - done + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - MCA_ompi_bml_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_ompi_bml_STATIC_SUBDIRS="$MCA_ompi_bml_STATIC_SUBDIRS mca/bml/$item" - done + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - MCA_ompi_bml_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_ompi_bml_DSO_SUBDIRS="$MCA_ompi_bml_DSO_SUBDIRS mca/bml/$item" + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "bml" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS coll" - MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/coll" - MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_coll_ALL_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_coll_DSO_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_coll_STATIC_SUBDIRS)" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/coll/libmca_coll.la" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_coll_STATIC_LTLIBS)" - - opal_show_subsubtitle "Configuring MCA framework coll" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=ompi/mca/coll/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files ompi/mca/coll/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework coll" >&5 -$as_echo_n "checking for no configure components in framework coll... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: basic, inter, libnbc, self, sm, sync, tuned" >&5 -$as_echo "basic, inter, libnbc, self, sm, sync, tuned" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework coll" >&5 -$as_echo_n "checking for m4 configure components in framework coll... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cuda, fca, hcoll, monitoring, portals4" >&5 -$as_echo "cuda, fca, hcoll, monitoring, portals4" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - +done - # run the configure logic for the no-config components +# Take all the items in the "array" and assemble them back into a +# single variable - opal_show_subsubsubtitle "MCA component coll:basic (no configuration)" +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - component_path="$srcdir/ompi/mca/coll/basic" - want_component=0 +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "basic" ; then - want_component=1 - else - want_component=0 - fi - fi - fi +# Clean up - # if we were explicitly disabled, don't build :) - if test "$DISABLE_coll" = "1"; then : - want_component=0 +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - if test "$DISABLE_coll_basic" = "1"; then : - want_component=0 + fi - if test "$want_component" = "1"; then : - should_build=1 + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucc requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucc requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucc (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucc (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucc." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucc." >&2;} + + libnl_sane=0 else - should_build=0 -fi + opal_libnlv3_libs="$opal_libnlv3_libs ucc" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - SHARED_FRAMEWORK="$DSO_coll" - SHARED_COMPONENT="$DSO_coll_basic" +# Go through each item in the variable and only keep the unique ones - STATIC_FRAMEWORK="$STATIC_coll" - STATIC_COMPONENT="$STATIC_coll_basic" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - shared_mode_override=static + # Loop over every token we've seen so far - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:basic compile mode" >&5 -$as_echo_n "checking for MCA component coll:basic compile mode... " >&6; } - if test "$DIRECT_coll" = "basic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "$should_build" = "1" ; then + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/coll/basic/post_configure.sh" + opal_i="`expr $opal_i + 1`" + done - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components basic" + # If we didn't find the token, add it to the "array" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components basic" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - if test "coll" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/coll/basic/lib${OMPI_LIB_PREFIX}mca_coll_basic.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/coll/basic/libmca_coll_basic.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_coll_basic_component;" >> $outfile.extern - echo " &mca_coll_basic_component, " >> $outfile.struct - static_components="$static_components basic" + opal_i="`expr $opal_i - 1`" fi +done - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:basic can compile" >&5 -$as_echo_n "checking if MCA component coll:basic can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +# Take all the items in the "array" and assemble them back into a +# single variable - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_coll" = "basic" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** coll component basic was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_coll" = "basic" ; then -as_fn_error $? "*** coll component basic was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$coll_basic_WRAPPER_EXTRA_LDFLAGS" = ""; then : + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Clean up - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - for arg in $coll_basic_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + opal_libnl_sane=$libnl_sane # Unwind the index @@ -271886,65 +294961,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $coll_basic_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -271967,89 +294987,332 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - if test "$coll_basic_WRAPPER_EXTRA_LIBS" = ""; then : +fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ucc_init_version" != "no" && + test "$ac_cv_search_ucc_init_version" != "none required"; then : + coll_ucc_LIBS="$ac_cv_search_ucc_init_version " +else + coll_ucc_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +else + opal_check_package_happy="no" +fi +else - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # see comment above + unset ac_cv_search_ucc_init_version + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + coll_ucc_LDFLAGS="$coll_ucc_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucc_init_version" >&5 +$as_echo_n "checking for library containing ucc_init_version... " >&6; } +if ${ac_cv_search_ucc_init_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucc_init_version (); +int +main () +{ +return ucc_init_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucc; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucc_init_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucc_init_version+:} false; then : + break +fi +done +if ${ac_cv_search_ucc_init_version+:} false; then : - for arg in $coll_basic_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +else + ac_cv_search_ucc_init_version=no fi - done +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucc_init_version" >&5 +$as_echo "$ac_cv_search_ucc_init_version" >&6; } +ac_res=$ac_cv_search_ucc_init_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_lib_happy="no" fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_coll_ucc_save_LDFLAGS" + coll_ucc_LDFLAGS="$opal_check_package_coll_ucc_orig_LDFLAGS" + unset ac_cv_search_ucc_init_version fi - done +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_ucc_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucc_init_version" >&5 +$as_echo_n "checking for library containing ucc_init_version... " >&6; } +if ${ac_cv_search_ucc_init_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucc_init_version (); +int +main () +{ +return ucc_init_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucc; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucc_init_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucc_init_version+:} false; then : + break +fi +done +if ${ac_cv_search_ucc_init_version+:} false; then : - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +else + ac_cv_search_ucc_init_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucc_init_version" >&5 +$as_echo "$ac_cv_search_ucc_init_version" >&6; } +ac_res=$ac_cv_search_ucc_init_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_ucc_save_LDFLAGS" + coll_ucc_LDFLAGS="$opal_check_package_coll_ucc_orig_LDFLAGS" + unset ac_cv_search_ucc_init_version +fi +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + coll_ucc_LDFLAGS="$coll_ucc_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucc_init_version" >&5 +$as_echo_n "checking for library containing ucc_init_version... " >&6; } +if ${ac_cv_search_ucc_init_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucc_init_version (); +int +main () +{ +return ucc_init_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucc; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucc_init_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucc_init_version+:} false; then : + break +fi +done +if ${ac_cv_search_ucc_init_version+:} false; then : +else + ac_cv_search_ucc_init_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucc_init_version" >&5 +$as_echo "$ac_cv_search_ucc_init_version" >&6; } +ac_res=$ac_cv_search_ucc_init_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_ucc_save_LDFLAGS" + coll_ucc_LDFLAGS="$opal_check_package_coll_ucc_orig_LDFLAGS" + unset ac_cv_search_ucc_init_version +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + coll_ucc_LDFLAGS="$coll_ucc_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucc_init_version" >&5 +$as_echo_n "checking for library containing ucc_init_version... " >&6; } +if ${ac_cv_search_ucc_init_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucc_init_version (); +int +main () +{ +return ucc_init_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucc; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucc_init_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucc_init_version+:} false; then : + break +fi +done +if ${ac_cv_search_ucc_init_version+:} false; then : else + ac_cv_search_ucc_init_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucc_init_version" >&5 +$as_echo "$ac_cv_search_ucc_init_version" >&6; } +ac_res=$ac_cv_search_ucc_init_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_coll_ucc_save_LDFLAGS" + coll_ucc_LDFLAGS="$opal_check_package_coll_ucc_orig_LDFLAGS" + unset ac_cv_search_ucc_init_version +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -272062,7 +295325,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -272081,66 +295344,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $coll_basic_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$coll_basic_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -272153,7 +295366,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -272172,7 +295385,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -272180,327 +295393,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_basic_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucc requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucc requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ucc_init_version (void); +int main(int argc, char *argv[]) { + ucc_init_version (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:295420: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucc $LIBS $coll_ucc_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucc $LIBS $coll_ucc_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:295427: \$? = $opal_status" >&5 else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi - done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucc" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucc" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucc links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucc links to both libnl and libnl-3." >&2;} -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_basic_WRAPPER_EXTRA_CPPFLAGS ($coll_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring coll_basic_WRAPPER_EXTRA_CPPFLAGS ($coll_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucc (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucc (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucc." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucc." >&2;} + + libnl_sane=0 fi - else + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucc requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucc requires libnl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:basic can compile" >&5 -$as_echo_n "checking if MCA component coll:basic can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucc (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucc (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucc." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucc." >&2;} - # If this component was requested as the default for this - # type, then abort. - if test "$with_coll" = "basic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs ucc" - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "basic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - # add component to all component list - all_components="$all_components basic" - fi +# Go through each item in the variable and only keep the unique ones - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_ompi_coll_basic_DSO=1 - else - BUILD_ompi_coll_basic_DSO=0 - fi - if test "$BUILD_ompi_coll_basic_DSO" = "1"; then - MCA_BUILD_ompi_coll_basic_DSO_TRUE= - MCA_BUILD_ompi_coll_basic_DSO_FALSE='#' -else - MCA_BUILD_ompi_coll_basic_DSO_TRUE='#' - MCA_BUILD_ompi_coll_basic_DSO_FALSE= -fi +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - ac_config_files="$ac_config_files ompi/mca/coll/basic/Makefile" + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - unset compile_mode + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - opal_show_subsubsubtitle "MCA component coll:inter (no configuration)" + # Check the ending condition - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter + opal_i="`expr $opal_i + 1`" + done - component_path="$srcdir/ompi/mca/coll/inter" - want_component=0 + # If we didn't find the token, add it to the "array" - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "inter" ; then - want_component=1 - else - want_component=0 - fi - fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # if we were explicitly disabled, don't build :) - if test "$DISABLE_coll" = "1"; then : - want_component=0 -fi - if test "$DISABLE_coll_inter" = "1"; then : - want_component=0 -fi +# Take all the items in the "array" and assemble them back into a +# single variable - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - SHARED_FRAMEWORK="$DSO_coll" - SHARED_COMPONENT="$DSO_coll_inter" + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - STATIC_FRAMEWORK="$STATIC_coll" - STATIC_COMPONENT="$STATIC_coll_inter" +# Done; do the assignment - shared_mode_override=static +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +# Clean up - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:inter compile mode" >&5 -$as_echo_n "checking for MCA component coll:inter compile mode... " >&6; } - if test "$DIRECT_coll" = "inter" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" +fi - if test "$should_build" = "1" ; then + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucc requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucc requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucc (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucc (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucc." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucc." >&2;} + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs ucc" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/coll/inter/post_configure.sh" +# Go through each item in the variable and only keep the unique ones - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components inter" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components inter" - else - if test "coll" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/coll/inter/lib${OMPI_LIB_PREFIX}mca_coll_inter.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/coll/inter/libmca_coll_inter.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_coll_inter_component;" >> $outfile.extern - echo " &mca_coll_inter_component, " >> $outfile.struct - static_components="$static_components inter" - fi + # Loop over every token we've seen so far - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:inter can compile" >&5 -$as_echo_n "checking if MCA component coll:inter can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_coll" = "inter" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** coll component inter was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_coll" = "inter" ; then -as_fn_error $? "*** coll component inter was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$coll_inter_WRAPPER_EXTRA_LDFLAGS" = ""; then : + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Take all the items in the "array" and assemble them back into a +# single variable - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +# Done; do the assignment +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - for arg in $coll_inter_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -272524,65 +295686,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $coll_inter_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -272605,65 +295712,28 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - if test "$coll_inter_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $coll_inter_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ucc_init_version" != "no" && + test "$ac_cv_search_ucc_init_version" != "none required"; then : + coll_ucc_LIBS="$ac_cv_search_ucc_init_version " +else + coll_ucc_LIBS="" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -272687,64 +295757,61 @@ done -else + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_ucc_happy="yes" +else + coll_ucc_CPPFLAGS="$opal_check_package_coll_ucc_orig_CPPFLAGS" + coll_ucc_LDFLAGS="$opal_check_package_coll_ucc_orig_LDFLAGS" + coll_ucc_LIBS="$opal_check_package_coll_ucc_orig_LIBS" + ompi_check_ucc_happy="no" +fi + CPPFLAGS="$opal_check_package_coll_ucc_save_CPPFLAGS" + LDFLAGS="$opal_check_package_coll_ucc_save_LDFLAGS" + LIBS="$opal_check_package_coll_ucc_save_LIBS" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + if test "$ompi_check_ucc_happy" = "yes"; then : - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + CPPFLAGS=$coll_ucc_CPPFLAGS + LDFLAGS=$coll_ucc_LDFLAGS + LIBS=$coll_ucc_LIBS + for ac_func in ucc_comm_free +do : + ac_fn_c_check_func "$LINENO" "ucc_comm_free" "ac_cv_func_ucc_comm_free" +if test "x$ac_cv_func_ucc_comm_free" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UCC_COMM_FREE 1 +_ACEOF - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi +done - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +fi - for arg in $coll_inter_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + CPPFLAGS=$CPPFLAGS_save + LDFLAGS=$LDFLAGS_save + LIBS=$LIBS_save +else + ompi_check_ucc_happy=no fi - done + + if test "$ompi_check_ucc_happy" = "yes" && test "$enable_progress_threads" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ucc driver does not currently support progress threads. Disabling UCC." >&5 +$as_echo "$as_me: WARNING: ucc driver does not currently support progress threads. Disabling UCC." >&2;} + ompi_check_ucc_happy="no" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + if test "$ompi_check_ucc_happy" = "yes"; then : + coll_ucc_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + if test -n "$with_ucc" && test "$with_ucc" != "no"; then : + as_fn_error $? "UCC support requested but not found. Aborting" "$LINENO" 5 fi + coll_ucc_happy="no" fi - done # Unwind the index @@ -272768,17 +295835,16 @@ done -fi - fi + if test "$coll_ucc_happy" = "yes"; then : + coll_ucc_WRAPPER_EXTRA_LDFLAGS="$coll_ucc_LDFLAGS" + coll_ucc_CPPFLAGS="$coll_ucc_CPPFLAGS" + coll_ucc_WRAPPER_EXTRA_LIBS="$coll_ucc_LIBS" + should_build=$should_build +else + should_build=0 +fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$coll_inter_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : @@ -272791,7 +295857,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -272810,7 +295876,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -272818,24 +295884,20 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_inter_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ompi_summary_section=$(echo Miscellaneous | tr ' ' '_') + ompi_summary_line="Open UCC: $coll_ucc_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi # Unwind the index @@ -272859,205 +295921,53 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_inter_WRAPPER_EXTRA_CPPFLAGS ($coll_inter_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring coll_inter_WRAPPER_EXTRA_CPPFLAGS ($coll_inter_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:inter can compile" >&5 -$as_echo_n "checking if MCA component coll:inter can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_coll" = "inter" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"inter\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"inter\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "inter" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"inter\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"inter\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components inter" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_ompi_coll_inter_DSO=1 - else - BUILD_ompi_coll_inter_DSO=0 - fi - if test "$BUILD_ompi_coll_inter_DSO" = "1"; then - MCA_BUILD_ompi_coll_inter_DSO_TRUE= - MCA_BUILD_ompi_coll_inter_DSO_FALSE='#' -else - MCA_BUILD_ompi_coll_inter_DSO_TRUE='#' - MCA_BUILD_ompi_coll_inter_DSO_FALSE= -fi - - - ac_config_files="$ac_config_files ompi/mca/coll/inter/Makefile" - - - unset compile_mode - - opal_show_subsubsubtitle "MCA component coll:libnbc (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - - - component_path="$srcdir/ompi/mca/coll/libnbc" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "libnbc" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_coll" = "1"; then : - want_component=0 -fi - if test "$DISABLE_coll_libnbc" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi - - - SHARED_FRAMEWORK="$DSO_coll" - SHARED_COMPONENT="$DSO_coll_libnbc" - - STATIC_FRAMEWORK="$STATIC_coll" - STATIC_COMPONENT="$STATIC_coll_libnbc" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:libnbc compile mode" >&5 -$as_echo_n "checking for MCA component coll:libnbc compile mode... " >&6; } - if test "$DIRECT_coll" = "libnbc" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/coll/libnbc/post_configure.sh" + infile="$srcdir/ompi/mca/coll/ucc/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components libnbc" + all_components="$all_components ucc" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components libnbc" + dso_components="$dso_components ucc" else if test "coll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/coll/libnbc/lib${OMPI_LIB_PREFIX}mca_coll_libnbc.la $static_ltlibs" + static_ltlibs="mca/coll/ucc/lib${OMPI_LIB_PREFIX}mca_coll_ucc.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/coll/libnbc/libmca_coll_libnbc.la $static_ltlibs" + static_ltlibs="mca/coll/ucc/libmca_coll_ucc.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_coll_libnbc_component;" >> $outfile.extern - echo " &mca_coll_libnbc_component, " >> $outfile.struct - static_components="$static_components libnbc" + echo "extern const mca_base_component_t mca_coll_ucc_component;" >> $outfile.extern + echo " &mca_coll_ucc_component, " >> $outfile.struct + static_components="$static_components ucc" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:libnbc can compile" >&5 -$as_echo_n "checking if MCA component coll:libnbc can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:ucc can compile" >&5 +$as_echo_n "checking if MCA component coll:ucc can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_coll" = "libnbc" ; then + if test "$DIRECT_coll" = "ucc" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** coll component libnbc was supposed to be direct-called, but +as_fn_error $? "*** coll component ucc was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -273065,8 +295975,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_coll" = "libnbc" ; then -as_fn_error $? "*** coll component libnbc was supposed to be direct-called, but + if test "$DIRECT_coll" = "ucc" ; then +as_fn_error $? "*** coll component ucc was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -273081,7 +295991,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$coll_libnbc_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$coll_ucc_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -273121,7 +296031,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_libnbc_LDFLAGS; do + for arg in $coll_ucc_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -273202,7 +296112,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_libnbc_WRAPPER_EXTRA_LDFLAGS; do + for arg in $coll_ucc_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -273244,7 +296154,7 @@ fi - if test "$coll_libnbc_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$coll_ucc_WRAPPER_EXTRA_LIBS" = ""; then : @@ -273284,7 +296194,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_libnbc_LIBS; do + for arg in $coll_ucc_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -273365,7 +296275,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_libnbc_WRAPPER_EXTRA_LIBS; do + for arg in $coll_ucc_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -273413,7 +296323,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$coll_libnbc_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$coll_ucc_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -273456,7 +296366,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_libnbc_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $coll_ucc_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -273499,69 +296409,89 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_libnbc_WRAPPER_EXTRA_CPPFLAGS ($coll_libnbc_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring coll_libnbc_WRAPPER_EXTRA_CPPFLAGS ($coll_libnbc_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_ucc_WRAPPER_EXTRA_CPPFLAGS ($coll_ucc_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring coll_ucc_WRAPPER_EXTRA_CPPFLAGS ($coll_ucc_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:libnbc can compile" >&5 -$as_echo_n "checking if MCA component coll:libnbc can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:ucc can compile" >&5 +$as_echo_n "checking if MCA component coll:ucc can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_coll" = "libnbc" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"libnbc\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"libnbc\" failed to configure properly" >&2;} + if test "$with_coll" = "ucc" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucc\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ucc\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "libnbc" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"libnbc\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"libnbc\" failed to configure properly" >&2;} + if test "$DIRECT_coll" = "ucc" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucc\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ucc\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components libnbc" - fi + # add component to all component list + all_components="$all_components ucc" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_ompi_coll_libnbc_DSO=1 - else - BUILD_ompi_coll_libnbc_DSO=0 - fi - if test "$BUILD_ompi_coll_libnbc_DSO" = "1"; then - MCA_BUILD_ompi_coll_libnbc_DSO_TRUE= - MCA_BUILD_ompi_coll_libnbc_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_ompi_coll_ucc_DSO=1 else - MCA_BUILD_ompi_coll_libnbc_DSO_TRUE='#' - MCA_BUILD_ompi_coll_libnbc_DSO_FALSE= + BUILD_ompi_coll_ucc_DSO=0 +fi + if test "$BUILD_ompi_coll_ucc_DSO" = "1"; then + MCA_BUILD_ompi_coll_ucc_DSO_TRUE= + MCA_BUILD_ompi_coll_ucc_DSO_FALSE='#' +else + MCA_BUILD_ompi_coll_ucc_DSO_TRUE='#' + MCA_BUILD_ompi_coll_ucc_DSO_FALSE= fi - ac_config_files="$ac_config_files ompi/mca/coll/libnbc/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - opal_show_subsubsubtitle "MCA component coll:self (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/ompi/mca/coll/self" + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/ompi/mca/coll/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component coll:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/ompi/mca/coll/$component" want_component=0 # build if: @@ -273594,7 +296524,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "self" ; then + if test "$DIRECT_coll" = "$component" ; then want_component=1 else want_component=0 @@ -273606,9 +296536,11 @@ if test "$DISABLE_coll" = "1"; then : want_component=0 fi - if test "$DISABLE_coll_self" = "1"; then : - want_component=0 -fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_coll_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : should_build=1 @@ -273618,10 +296550,12 @@ SHARED_FRAMEWORK="$DSO_coll" - SHARED_COMPONENT="$DSO_coll_self" + str="SHARED_COMPONENT=\$DSO_coll_$component" + eval $str STATIC_FRAMEWORK="$STATIC_coll" - STATIC_COMPONENT="$STATIC_coll_self" + str="STATIC_COMPONENT=\$STATIC_coll_$component" + eval $str shared_mode_override=static @@ -273639,9 +296573,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:self compile mode" >&5 -$as_echo_n "checking for MCA component coll:self compile mode... " >&6; } - if test "$DIRECT_coll" = "self" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:$component compile mode" >&5 +$as_echo_n "checking for MCA component coll:$component compile mode... " >&6; } + if test "$DIRECT_coll" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -273649,321 +296583,9 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/coll/self/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components self" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components self" - else - if test "coll" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/coll/self/lib${OMPI_LIB_PREFIX}mca_coll_self.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/coll/self/libmca_coll_self.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_coll_self_component;" >> $outfile.extern - echo " &mca_coll_self_component, " >> $outfile.struct - static_components="$static_components self" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:self can compile" >&5 -$as_echo_n "checking if MCA component coll:self can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_coll" = "self" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** coll component self was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_coll" = "self" ; then -as_fn_error $? "*** coll component self was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$coll_self_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $coll_self_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $coll_self_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - if test "$coll_self_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $coll_self_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" -else + if test "$should_build" = "1" ; then @@ -273976,7 +296598,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -273995,7 +296617,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $opal_str unset opal_str @@ -274003,115 +296625,129 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_self_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - +# +# Invoke configure in a specific subdirectory. +# +# ompi/mca/coll/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="ompi/mca/coll/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +# +# Sanity checks +# - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } -fi + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac - fi + # + # Move into the target directory + # - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$coll_self_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + subdir_parent=`pwd` + cd $subdir_dir + # + # Make a "../" for each directory in $subdir_dir. + # + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # + # Construct the --cache-file argument + # - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # + # Invoke the configure script in the subdirectory + # - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + # + # Go back to the topdir + # - for arg in $coll_self_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi + cd $subdir_parent fi - done + +# +# Clean up +# # Unwind the index @@ -274134,206 +296770,80 @@ unset $opal_var done - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_self_WRAPPER_EXTRA_CPPFLAGS ($coll_self_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring coll_self_WRAPPER_EXTRA_CPPFLAGS ($coll_self_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:self can compile" >&5 -$as_echo_n "checking if MCA component coll:self can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_coll" = "self" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"self\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"self\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "self" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"self\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"self\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components self" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_ompi_coll_self_DSO=1 - else - BUILD_ompi_coll_self_DSO=0 - fi - if test "$BUILD_ompi_coll_self_DSO" = "1"; then - MCA_BUILD_ompi_coll_self_DSO_TRUE= - MCA_BUILD_ompi_coll_self_DSO_FALSE='#' -else - MCA_BUILD_ompi_coll_self_DSO_TRUE='#' - MCA_BUILD_ompi_coll_self_DSO_FALSE= -fi - - - ac_config_files="$ac_config_files ompi/mca/coll/self/Makefile" - - - unset compile_mode - - opal_show_subsubsubtitle "MCA component coll:sm (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - - - component_path="$srcdir/ompi/mca/coll/sm" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "sm" ; then - want_component=1 - else - want_component=0 + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_coll" = "1"; then : - want_component=0 -fi - if test "$DISABLE_coll_sm" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi - - - SHARED_FRAMEWORK="$DSO_coll" - SHARED_COMPONENT="$DSO_coll_sm" - - STATIC_FRAMEWORK="$STATIC_coll" - STATIC_COMPONENT="$STATIC_coll_sm" - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/ompi/mca/coll/all_components/post_configure.sh" + if test -f $infile; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:sm compile mode" >&5 -$as_echo_n "checking for MCA component coll:sm compile mode... " >&6; } - if test "$DIRECT_coll" = "sm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + coll_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + coll_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi - if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/coll/sm/post_configure.sh" + infile="$srcdir/ompi/mca/coll/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components sm" + all_components="$all_components $component" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components sm" + dso_components="$dso_components $component" else if test "coll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/coll/sm/lib${OMPI_LIB_PREFIX}mca_coll_sm.la $static_ltlibs" + static_ltlibs="mca/coll/$component/lib${OMPI_LIB_PREFIX}mca_coll_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/coll/sm/libmca_coll_sm.la $static_ltlibs" + static_ltlibs="mca/coll/$component/libmca_coll_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_coll_sm_component;" >> $outfile.extern - echo " &mca_coll_sm_component, " >> $outfile.struct - static_components="$static_components sm" + echo "extern const mca_base_component_t mca_coll_$component_component;" >> $outfile.extern + echo " &mca_coll_$component_component, " >> $outfile.struct + static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:sm can compile" >&5 -$as_echo_n "checking if MCA component coll:sm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:$component can compile" >&5 +$as_echo_n "checking if MCA component coll:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_coll" = "sm" ; then + if test "$DIRECT_coll" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** coll component sm was supposed to be direct-called, but +as_fn_error $? "*** coll component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -274341,8 +296851,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_coll" = "sm" ; then -as_fn_error $? "*** coll component sm was supposed to be direct-called, but + if test "$DIRECT_coll" = "$component" ; then +as_fn_error $? "*** coll component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -274357,7 +296867,8 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$coll_sm_WRAPPER_EXTRA_LDFLAGS" = ""; then : + str="line=\$coll_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -274397,7 +296908,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_sm_LDFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -274437,8 +296948,8 @@ unset $opal_var done - -else +str="line=\$coll_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -274478,21 +296989,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_sm_WRAPPER_EXTRA_LDFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -274519,325 +297030,189 @@ done -fi - if test "$coll_sm_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - for arg in $coll_sm_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:$component can compile" >&5 +$as_echo_n "checking if MCA component coll:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_coll" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test ! -z "$DIRECT_coll" ; then + if test "$DIRECT_coll" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + fi + fi done +fi -else + MCA_ompi_coll_ALL_COMPONENTS="$all_components" + MCA_ompi_coll_STATIC_COMPONENTS="$static_components" + MCA_ompi_coll_DSO_COMPONENTS="$dso_components" + MCA_ompi_coll_STATIC_LTLIBS="$static_ltlibs" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + MCA_ompi_coll_ALL_SUBDIRS= + for item in $all_components ; do + MCA_ompi_coll_ALL_SUBDIRS="$MCA_ompi_coll_ALL_SUBDIRS mca/coll/$item" + done - for arg in $coll_sm_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + MCA_ompi_coll_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_ompi_coll_STATIC_SUBDIRS="$MCA_ompi_coll_STATIC_SUBDIRS mca/coll/$item" + done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + MCA_ompi_coll_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_ompi_coll_DSO_SUBDIRS="$MCA_ompi_coll_DSO_SUBDIRS mca/coll/$item" done -fi - fi + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "coll" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi fi + rm -f $outfile.struct $outfile.extern - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + unset all_components static_components dso_components outfile outfile_real - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS crcp" + MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/crcp" + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_crcp_ALL_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_crcp_DSO_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_crcp_STATIC_SUBDIRS)" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/crcp/libmca_crcp.la" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_crcp_STATIC_LTLIBS)" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + opal_show_subsubtitle "Configuring MCA framework crcp" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_sm_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=ompi/mca/crcp/base + as_dir=$outdir; as_fn_mkdir_p - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # emit Makefile rule + ac_config_files="$ac_config_files ompi/mca/crcp/Makefile" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_sm_WRAPPER_EXTRA_CPPFLAGS ($coll_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring coll_sm_WRAPPER_EXTRA_CPPFLAGS ($coll_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework crcp" >&5 +$as_echo_n "checking for no configure components in framework crcp... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework crcp" >&5 +$as_echo_n "checking for m4 configure components in framework crcp... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: bkmrk" >&5 +$as_echo "bkmrk" >&6; } - else + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:sm can compile" >&5 -$as_echo_n "checking if MCA component coll:sm can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_coll" = "sm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "sm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # run the configure logic for the no-config components - # add component to all component list - all_components="$all_components sm" - fi - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_ompi_coll_sm_DSO=1 - else - BUILD_ompi_coll_sm_DSO=0 - fi - if test "$BUILD_ompi_coll_sm_DSO" = "1"; then - MCA_BUILD_ompi_coll_sm_DSO_TRUE= - MCA_BUILD_ompi_coll_sm_DSO_FALSE='#' -else - MCA_BUILD_ompi_coll_sm_DSO_TRUE='#' - MCA_BUILD_ompi_coll_sm_DSO_FALSE= -fi + # configure components that use built-in configuration scripts - ac_config_files="$ac_config_files ompi/mca/coll/sm/Makefile" + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - unset compile_mode - opal_show_subsubsubtitle "MCA component coll:sync (no configuration)" + opal_show_subsubsubtitle "MCA component crcp:bkmrk (m4 configuration macro)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/coll/sync" + component_path="$srcdir/ompi/mca/crcp/bkmrk" want_component=0 # build if: @@ -274869,8 +297244,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "sync" ; then + if test ! -z "$DIRECT_crcp" ; then + if test "$DIRECT_crcp" = "bkmrk" ; then want_component=1 else want_component=0 @@ -274879,25 +297254,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_coll" = "1"; then : + if test "$DISABLE_crcp" = "1"; then : want_component=0 fi - if test "$DISABLE_coll_sync" = "1"; then : + if test "$DISABLE_crcp_bkmrk" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_coll" - SHARED_COMPONENT="$DSO_coll_sync" + SHARED_FRAMEWORK="$DSO_crcp" + SHARED_COMPONENT="$DSO_crcp_bkmrk" - STATIC_FRAMEWORK="$STATIC_coll" - STATIC_COMPONENT="$STATIC_coll_sync" + STATIC_FRAMEWORK="$STATIC_crcp" + STATIC_COMPONENT="$STATIC_crcp_bkmrk" shared_mode_override=static @@ -274915,9 +297292,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:sync compile mode" >&5 -$as_echo_n "checking for MCA component coll:sync compile mode... " >&6; } - if test "$DIRECT_coll" = "sync" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component crcp:bkmrk compile mode" >&5 +$as_echo_n "checking for MCA component crcp:bkmrk compile mode... " >&6; } + if test "$DIRECT_crcp" = "bkmrk" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -274925,53 +297302,66 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files ompi/mca/crcp/bkmrk/Makefile" + + + # If we don't want FT, don't compile this component + if test "$opal_want_ft_cr" = "1"; then : + should_build=$should_build +else + should_build=0 +fi + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/coll/sync/post_configure.sh" + infile="$srcdir/ompi/mca/crcp/bkmrk/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components sync" + all_components="$all_components bkmrk" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components sync" + dso_components="$dso_components bkmrk" else - if test "coll" = "common"; then + if test "crcp" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/coll/sync/lib${OMPI_LIB_PREFIX}mca_coll_sync.la $static_ltlibs" + static_ltlibs="mca/crcp/bkmrk/lib${OMPI_LIB_PREFIX}mca_crcp_bkmrk.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/coll/sync/libmca_coll_sync.la $static_ltlibs" + static_ltlibs="mca/crcp/bkmrk/libmca_crcp_bkmrk.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_coll_sync_component;" >> $outfile.extern - echo " &mca_coll_sync_component, " >> $outfile.struct - static_components="$static_components sync" + echo "extern const mca_base_component_t mca_crcp_bkmrk_component;" >> $outfile.extern + echo " &mca_crcp_bkmrk_component, " >> $outfile.struct + static_components="$static_components bkmrk" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:sync can compile" >&5 -$as_echo_n "checking if MCA component coll:sync can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crcp:bkmrk can compile" >&5 +$as_echo_n "checking if MCA component crcp:bkmrk can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_coll" = "sync" ; then + if test "$DIRECT_crcp" = "bkmrk" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_crcp_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** coll component sync was supposed to be direct-called, but +as_fn_error $? "*** crcp component bkmrk was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -274979,8 +297369,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_coll" = "sync" ; then -as_fn_error $? "*** coll component sync was supposed to be direct-called, but + if test "$DIRECT_crcp" = "bkmrk" ; then +as_fn_error $? "*** crcp component bkmrk was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -274995,7 +297385,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$coll_sync_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$crcp_bkmrk_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -275035,7 +297425,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_sync_LDFLAGS; do + for arg in $crcp_bkmrk_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -275116,7 +297506,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_sync_WRAPPER_EXTRA_LDFLAGS; do + for arg in $crcp_bkmrk_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -275158,7 +297548,7 @@ fi - if test "$coll_sync_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$crcp_bkmrk_WRAPPER_EXTRA_LIBS" = ""; then : @@ -275198,7 +297588,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_sync_LIBS; do + for arg in $crcp_bkmrk_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -275279,7 +297669,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_sync_WRAPPER_EXTRA_LIBS; do + for arg in $crcp_bkmrk_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -275327,7 +297717,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$coll_sync_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$crcp_bkmrk_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -275370,7 +297760,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_sync_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $crcp_bkmrk_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -275413,69 +297803,89 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_sync_WRAPPER_EXTRA_CPPFLAGS ($coll_sync_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring coll_sync_WRAPPER_EXTRA_CPPFLAGS ($coll_sync_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring crcp_bkmrk_WRAPPER_EXTRA_CPPFLAGS ($crcp_bkmrk_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring crcp_bkmrk_WRAPPER_EXTRA_CPPFLAGS ($crcp_bkmrk_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:sync can compile" >&5 -$as_echo_n "checking if MCA component coll:sync can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crcp:bkmrk can compile" >&5 +$as_echo_n "checking if MCA component crcp:bkmrk can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_coll" = "sync" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sync\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"sync\" failed to configure properly" >&2;} + if test "$with_crcp" = "bkmrk" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bkmrk\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"bkmrk\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "sync" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sync\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"sync\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_crcp" ; then + if test "$DIRECT_crcp" = "bkmrk" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bkmrk\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"bkmrk\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components sync" - fi + # add component to all component list + all_components="$all_components bkmrk" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_ompi_coll_sync_DSO=1 - else - BUILD_ompi_coll_sync_DSO=0 - fi - if test "$BUILD_ompi_coll_sync_DSO" = "1"; then - MCA_BUILD_ompi_coll_sync_DSO_TRUE= - MCA_BUILD_ompi_coll_sync_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_ompi_crcp_bkmrk_DSO=1 else - MCA_BUILD_ompi_coll_sync_DSO_TRUE='#' - MCA_BUILD_ompi_coll_sync_DSO_FALSE= + BUILD_ompi_crcp_bkmrk_DSO=0 +fi + if test "$BUILD_ompi_crcp_bkmrk_DSO" = "1"; then + MCA_BUILD_ompi_crcp_bkmrk_DSO_TRUE= + MCA_BUILD_ompi_crcp_bkmrk_DSO_FALSE='#' +else + MCA_BUILD_ompi_crcp_bkmrk_DSO_TRUE='#' + MCA_BUILD_ompi_crcp_bkmrk_DSO_FALSE= fi - ac_config_files="$ac_config_files ompi/mca/coll/sync/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - opal_show_subsubsubtitle "MCA component coll:tuned (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/ompi/mca/coll/tuned" + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/ompi/mca/crcp/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component crcp:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/ompi/mca/crcp/$component" want_component=0 # build if: @@ -275507,8 +297917,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "tuned" ; then + if test ! -z "$DIRECT_crcp" ; then + if test "$DIRECT_crcp" = "$component" ; then want_component=1 else want_component=0 @@ -275517,12 +297927,14 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_coll" = "1"; then : - want_component=0 -fi - if test "$DISABLE_coll_tuned" = "1"; then : + if test "$DISABLE_crcp" = "1"; then : want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_crcp_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : should_build=1 @@ -275531,11 +297943,13 @@ fi - SHARED_FRAMEWORK="$DSO_coll" - SHARED_COMPONENT="$DSO_coll_tuned" + SHARED_FRAMEWORK="$DSO_crcp" + str="SHARED_COMPONENT=\$DSO_crcp_$component" + eval $str - STATIC_FRAMEWORK="$STATIC_coll" - STATIC_COMPONENT="$STATIC_coll_tuned" + STATIC_FRAMEWORK="$STATIC_crcp" + str="STATIC_COMPONENT=\$STATIC_crcp_$component" + eval $str shared_mode_override=static @@ -275553,63 +297967,277 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:tuned compile mode" >&5 -$as_echo_n "checking for MCA component coll:tuned compile mode... " >&6; } - if test "$DIRECT_coll" = "tuned" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component crcp:$component compile mode" >&5 +$as_echo_n "checking for MCA component crcp:$component compile mode... " >&6; } + if test "$DIRECT_crcp" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + +# +# Invoke configure in a specific subdirectory. +# +# ompi/mca/crcp/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="ompi/mca/crcp/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/ompi/mca/crcp/all_components/post_configure.sh" + if test -f $infile; then - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + crcp_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + crcp_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi - if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/coll/tuned/post_configure.sh" + infile="$srcdir/ompi/mca/crcp/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components tuned" + all_components="$all_components $component" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components tuned" + dso_components="$dso_components $component" else - if test "coll" = "common"; then + if test "crcp" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/coll/tuned/lib${OMPI_LIB_PREFIX}mca_coll_tuned.la $static_ltlibs" + static_ltlibs="mca/crcp/$component/lib${OMPI_LIB_PREFIX}mca_crcp_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/coll/tuned/libmca_coll_tuned.la $static_ltlibs" + static_ltlibs="mca/crcp/$component/libmca_crcp_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_coll_tuned_component;" >> $outfile.extern - echo " &mca_coll_tuned_component, " >> $outfile.struct - static_components="$static_components tuned" + echo "extern const mca_base_component_t mca_crcp_$component_component;" >> $outfile.extern + echo " &mca_crcp_$component_component, " >> $outfile.struct + static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:tuned can compile" >&5 -$as_echo_n "checking if MCA component coll:tuned can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crcp:$component can compile" >&5 +$as_echo_n "checking if MCA component crcp:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_coll" = "tuned" ; then + if test "$DIRECT_crcp" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_crcp_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** coll component tuned was supposed to be direct-called, but +as_fn_error $? "*** crcp component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -275617,8 +298245,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_coll" = "tuned" ; then -as_fn_error $? "*** coll component tuned was supposed to be direct-called, but + if test "$DIRECT_crcp" = "$component" ; then +as_fn_error $? "*** crcp component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -275633,7 +298261,8 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$coll_tuned_WRAPPER_EXTRA_LDFLAGS" = ""; then : + str="line=\$crcp_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -275673,7 +298302,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_tuned_LDFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -275713,8 +298342,8 @@ unset $opal_var done - -else +str="line=\$crcp_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -275754,21 +298383,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_tuned_WRAPPER_EXTRA_LDFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -275795,180 +298424,125 @@ done -fi - if test "$coll_tuned_WRAPPER_EXTRA_LIBS" = ""; then : + fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + else - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crcp:$component can compile" >&5 +$as_echo_n "checking if MCA component crcp:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_crcp" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_crcp" ; then + if test "$DIRECT_crcp" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + fi + fi + fi + done - for arg in $coll_tuned_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi fi - done + MCA_ompi_crcp_ALL_COMPONENTS="$all_components" + MCA_ompi_crcp_STATIC_COMPONENTS="$static_components" + MCA_ompi_crcp_DSO_COMPONENTS="$dso_components" + MCA_ompi_crcp_STATIC_LTLIBS="$static_ltlibs" - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done -else + MCA_ompi_crcp_ALL_SUBDIRS= + for item in $all_components ; do + MCA_ompi_crcp_ALL_SUBDIRS="$MCA_ompi_crcp_ALL_SUBDIRS mca/crcp/$item" + done - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + MCA_ompi_crcp_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_ompi_crcp_STATIC_SUBDIRS="$MCA_ompi_crcp_STATIC_SUBDIRS mca/crcp/$item" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_tuned_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi + MCA_ompi_crcp_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_ompi_crcp_DSO_SUBDIRS="$MCA_ompi_crcp_DSO_SUBDIRS mca/crcp/$item" done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "crcp" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi fi + rm -f $outfile.struct $outfile.extern - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$coll_tuned_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + unset all_components static_components dso_components outfile outfile_real + + MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS fbtl" + MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/fbtl" + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_fbtl_ALL_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_fbtl_DSO_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_fbtl_STATIC_SUBDIRS)" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/fbtl/libmca_fbtl.la" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_fbtl_STATIC_LTLIBS)" @@ -275981,7 +298555,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in want_io_ompio; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -276000,7 +298574,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"want_io_ompio\"" eval $opal_str unset opal_str @@ -276008,104 +298582,58 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_tuned_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + if test "$enable_io_ompio" != "no"; then : + want_io_ompio=1 else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi + want_io_ompio=0 fi - done - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + opal_show_subsubtitle "Configuring MCA framework fbtl" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_tuned_WRAPPER_EXTRA_CPPFLAGS ($coll_tuned_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring coll_tuned_WRAPPER_EXTRA_CPPFLAGS ($coll_tuned_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - else + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:tuned can compile" >&5 -$as_echo_n "checking if MCA component coll:tuned can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=ompi/mca/fbtl/base + as_dir=$outdir; as_fn_mkdir_p - # If this component was requested as the default for this - # type, then abort. - if test "$with_coll" = "tuned" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tuned\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tuned\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # emit Makefile rule + ac_config_files="$ac_config_files ompi/mca/fbtl/Makefile" - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "tuned" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tuned\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tuned\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - # add component to all component list - all_components="$all_components tuned" - fi + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_ompi_coll_tuned_DSO=1 - else - BUILD_ompi_coll_tuned_DSO=0 - fi - if test "$BUILD_ompi_coll_tuned_DSO" = "1"; then - MCA_BUILD_ompi_coll_tuned_DSO_TRUE= - MCA_BUILD_ompi_coll_tuned_DSO_FALSE='#' -else - MCA_BUILD_ompi_coll_tuned_DSO_TRUE='#' - MCA_BUILD_ompi_coll_tuned_DSO_FALSE= -fi + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework fbtl" >&5 +$as_echo_n "checking for no configure components in framework fbtl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework fbtl" >&5 +$as_echo_n "checking for m4 configure components in framework fbtl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ime, posix, pvfs2" >&5 +$as_echo "ime, posix, pvfs2" >&6; } + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - ac_config_files="$ac_config_files ompi/mca/coll/tuned/Makefile" - unset compile_mode + # run the configure logic for the no-config components # configure components that use built-in configuration scripts @@ -276113,17 +298641,17 @@ best_mca_component_priority=0 - components_looking_for_succeed=1 + components_looking_for_succeed=$want_io_ompio components_last_result=0 - opal_show_subsubsubtitle "MCA component coll:cuda (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component fbtl:ime (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/coll/cuda" + component_path="$srcdir/ompi/mca/fbtl/ime" want_component=0 # build if: @@ -276155,8 +298683,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "cuda" ; then + if test ! -z "$DIRECT_fbtl" ; then + if test "$DIRECT_fbtl" = "ime" ; then want_component=1 else want_component=0 @@ -276165,10 +298693,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_coll" = "1"; then : + if test "$DISABLE_fbtl" = "1"; then : want_component=0 fi - if test "$DISABLE_coll_cuda" = "1"; then : + if test "$DISABLE_fbtl_ime" = "1"; then : want_component=0 fi @@ -276181,11 +298709,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_coll" - SHARED_COMPONENT="$DSO_coll_cuda" + SHARED_FRAMEWORK="$DSO_fbtl" + SHARED_COMPONENT="$DSO_fbtl_ime" - STATIC_FRAMEWORK="$STATIC_coll" - STATIC_COMPONENT="$STATIC_coll_cuda" + STATIC_FRAMEWORK="$STATIC_fbtl" + STATIC_COMPONENT="$STATIC_fbtl_ime" shared_mode_override=static @@ -276203,9 +298731,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:cuda compile mode" >&5 -$as_echo_n "checking for MCA component coll:cuda compile mode... " >&6; } - if test "$DIRECT_coll" = "cuda" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fbtl:ime compile mode" >&5 +$as_echo_n "checking for MCA component fbtl:ime compile mode... " >&6; } + if test "$DIRECT_fbtl" = "ime" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -276214,150 +298742,837 @@ fi - # try to configure the component + # try to configure the component + + ac_config_files="$ac_config_files ompi/mca/fbtl/ime/Makefile" + + + + + check_ime_CPPFLAGS= + check_ime_LDFLAGS= + check_ime_LIBS= + + check_ime_configuration="none" + ompi_check_ime_happy="yes" + + + # Get some configuration information + +# Check whether --with-ime was given. +if test "${with_ime+set}" = set; then : + withval=$with_ime; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ime value" >&5 +$as_echo_n "checking --with-ime value... " >&6; } + if test "$with_ime" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ime)" >&5 +$as_echo "simple no (specified --without-ime)" >&6; } +else + if test "$with_ime" = "yes" || test "x$with_ime" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_ime"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ime not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ime not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_ime/include/ime_native.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ime/include/ime_native.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ime/include/ime_native.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ime)" >&5 +$as_echo "sanity check ok ($with_ime)" >&6; } + +fi + + +fi + + +fi + + +fi + + + if test "$with_ime" = "no"; then : + ompi_check_ime_happy="no" +else + if test -z "$with_ime"; then : + ompi_check_ime_dir="/usr/local" +else + ompi_check_ime_dir=$with_ime +fi + + if test -e "$ompi_check_ime_dir/lib64" ; then + ompi_check_ime_libdir="$ompi_check_ime_dir/lib64" + else + ompi_check_ime_libdir="$ompi_check_ime_dir/lib" + fi + + # Add correct -I and -L flags + + opal_check_package_fbtl_ime_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_fbtl_ime_save_LDFLAGS="$LDFLAGS" + opal_check_package_fbtl_ime_save_LIBS="$LIBS" + + opal_check_package_fbtl_ime_orig_CPPFLAGS="$fbtl_ime_CPPFLAGS" + opal_check_package_fbtl_ime_orig_LDFLAGS="$fbtl_ime_LDFLAGS" + opal_check_package_fbtl_ime_orig_LIBS="$fbtl_ime_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in dir_prefix; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_ime_native_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $ompi_check_ime_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in ime_native.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ime_native.h" "ac_cv_header_ime_native_h" "$ac_includes_default" +if test "x$ac_cv_header_ime_native_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_IME_NATIVE_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_ime_native_h +fi +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + fbtl_ime_CPPFLAGS="$fbtl_ime_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in ime_native.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ime_native.h" "ac_cv_header_ime_native_h" "$ac_includes_default" +if test "x$ac_cv_header_ime_native_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_IME_NATIVE_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_ime_client_native2_init + opal_check_package_lib_happy="no" + if test "$ompi_check_ime_libdir" != ""; then : + # libdir was specified - search only there + fbtl_ime_LDFLAGS="$fbtl_ime_LDFLAGS -L$ompi_check_ime_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ime_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_client_native2_init" >&5 +$as_echo_n "checking for library containing ime_client_native2_init... " >&6; } +if ${ac_cv_search_ime_client_native2_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ime_client_native2_init (); +int +main () +{ +return ime_client_native2_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' im_client; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ime_client_native2_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ime_client_native2_init+:} false; then : + break +fi +done +if ${ac_cv_search_ime_client_native2_init+:} false; then : + +else + ac_cv_search_ime_client_native2_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_client_native2_init" >&5 +$as_echo "$ac_cv_search_ime_client_native2_init" >&6; } +ac_res=$ac_cv_search_ime_client_native2_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + unset ac_cv_search_ime_client_native2_init +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_ime_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_client_native2_init" >&5 +$as_echo_n "checking for library containing ime_client_native2_init... " >&6; } +if ${ac_cv_search_ime_client_native2_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ime_client_native2_init (); +int +main () +{ +return ime_client_native2_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' im_client; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ime_client_native2_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ime_client_native2_init+:} false; then : + break +fi +done +if ${ac_cv_search_ime_client_native2_init+:} false; then : + +else + ac_cv_search_ime_client_native2_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_client_native2_init" >&5 +$as_echo "$ac_cv_search_ime_client_native2_init" >&6; } +ac_res=$ac_cv_search_ime_client_native2_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + unset ac_cv_search_ime_client_native2_init +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fbtl_ime_LDFLAGS="$fbtl_ime_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_client_native2_init" >&5 +$as_echo_n "checking for library containing ime_client_native2_init... " >&6; } +if ${ac_cv_search_ime_client_native2_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ime_client_native2_init (); +int +main () +{ +return ime_client_native2_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' im_client; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ime_client_native2_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ime_client_native2_init+:} false; then : + break +fi +done +if ${ac_cv_search_ime_client_native2_init+:} false; then : + +else + ac_cv_search_ime_client_native2_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_client_native2_init" >&5 +$as_echo "$ac_cv_search_ime_client_native2_init" >&6; } +ac_res=$ac_cv_search_ime_client_native2_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + unset ac_cv_search_ime_client_native2_init +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fbtl_ime_LDFLAGS="$fbtl_ime_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_client_native2_init" >&5 +$as_echo_n "checking for library containing ime_client_native2_init... " >&6; } +if ${ac_cv_search_ime_client_native2_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ime_client_native2_init (); +int +main () +{ +return ime_client_native2_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' im_client; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ime_client_native2_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ime_client_native2_init+:} false; then : + break +fi +done +if ${ac_cv_search_ime_client_native2_init+:} false; then : + +else + ac_cv_search_ime_client_native2_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_client_native2_init" >&5 +$as_echo "$ac_cv_search_ime_client_native2_init" >&6; } +ac_res=$ac_cv_search_ime_client_native2_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + unset ac_cv_search_ime_client_native2_init +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_libnl_sane; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + opal_libnl_sane=1 + case $host in + *linux*) + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libim_client requires libnl v1 or v3" >&5 +$as_echo_n "checking if libim_client requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ime_client_native2_init (void); +int main(int argc, char *argv[]) { + ime_client_native2_init (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:299330: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lim_client $LIBS $fbtl_ime_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lim_client $LIBS $fbtl_ime_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:299337: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib im_client" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib im_client" >&2;} + +fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libim_client links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libim_client links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} + + libnl_sane=0 +fi + + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas im_client requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas im_client requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} + + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs im_client" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - ac_config_files="$ac_config_files ompi/mca/coll/cuda/Makefile" +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi +fi - # make sure that CUDA-aware checks have been done + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libim_client requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libim_client requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} - # Only build if CUDA support is available - if test "x$CUDA_SUPPORT" = "x1"; then : - should_build=$should_build + libnl_sane=0 else - should_build=0 -fi - + opal_libnlv3_libs="$opal_libnlv3_libs im_client" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - if test "$should_build" = "1"; then : +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/coll/cuda/post_configure.sh" + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components cuda" + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components cuda" - else - if test "coll" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/coll/cuda/lib${OMPI_LIB_PREFIX}mca_coll_cuda.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/coll/cuda/libmca_coll_cuda.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_coll_cuda_component;" >> $outfile.extern - echo " &mca_coll_cuda_component, " >> $outfile.struct - static_components="$static_components cuda" - fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:cuda can compile" >&5 -$as_echo_n "checking if MCA component coll:cuda can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # Check the ending condition - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_coll" = "cuda" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** coll component cuda was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_coll" = "cuda" ; then -as_fn_error $? "*** coll component cuda was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + opal_done="`expr $opal_i \>= $opal_count`" - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$coll_cuda_WRAPPER_EXTRA_LDFLAGS" = ""; then : + # Increment the counter + opal_i="`expr $opal_i + 1`" + done + # If we didn't find the token, add it to the "array" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Take all the items in the "array" and assemble them back into a +# single variable - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - for arg in $coll_cuda_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -276381,65 +299596,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $coll_cuda_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -276462,89 +299622,332 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + fi - if test "$coll_cuda_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ime_client_native2_init" != "no" && + test "$ac_cv_search_ime_client_native2_init" != "none required"; then : + fbtl_ime_LIBS="$ac_cv_search_ime_client_native2_init " +else + fbtl_ime_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +else + opal_check_package_happy="no" +fi +else - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # see comment above + unset ac_cv_search_ime_client_native2_init + opal_check_package_lib_happy="no" + if test "$ompi_check_ime_libdir" != ""; then : + # libdir was specified - search only there + fbtl_ime_LDFLAGS="$fbtl_ime_LDFLAGS -L$ompi_check_ime_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ime_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_client_native2_init" >&5 +$as_echo_n "checking for library containing ime_client_native2_init... " >&6; } +if ${ac_cv_search_ime_client_native2_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ime_client_native2_init (); +int +main () +{ +return ime_client_native2_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' im_client; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ime_client_native2_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ime_client_native2_init+:} false; then : + break +fi +done +if ${ac_cv_search_ime_client_native2_init+:} false; then : +else + ac_cv_search_ime_client_native2_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_client_native2_init" >&5 +$as_echo "$ac_cv_search_ime_client_native2_init" >&6; } +ac_res=$ac_cv_search_ime_client_native2_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - for arg in $coll_cuda_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + unset ac_cv_search_ime_client_native2_init fi - done +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_ime_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_client_native2_init" >&5 +$as_echo_n "checking for library containing ime_client_native2_init... " >&6; } +if ${ac_cv_search_ime_client_native2_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ime_client_native2_init (); +int +main () +{ +return ime_client_native2_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' im_client; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ime_client_native2_init=$ac_res fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ime_client_native2_init+:} false; then : + break +fi +done +if ${ac_cv_search_ime_client_native2_init+:} false; then : + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_cv_search_ime_client_native2_init=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_client_native2_init" >&5 +$as_echo "$ac_cv_search_ime_client_native2_init" >&6; } +ac_res=$ac_cv_search_ime_client_native2_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - done + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + unset ac_cv_search_ime_client_native2_init +fi +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fbtl_ime_LDFLAGS="$fbtl_ime_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_client_native2_init" >&5 +$as_echo_n "checking for library containing ime_client_native2_init... " >&6; } +if ${ac_cv_search_ime_client_native2_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ime_client_native2_init (); +int +main () +{ +return ime_client_native2_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' im_client; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ime_client_native2_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ime_client_native2_init+:} false; then : + break +fi +done +if ${ac_cv_search_ime_client_native2_init+:} false; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +else + ac_cv_search_ime_client_native2_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_client_native2_init" >&5 +$as_echo "$ac_cv_search_ime_client_native2_init" >&6; } +ac_res=$ac_cv_search_ime_client_native2_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + unset ac_cv_search_ime_client_native2_init +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fbtl_ime_LDFLAGS="$fbtl_ime_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_client_native2_init" >&5 +$as_echo_n "checking for library containing ime_client_native2_init... " >&6; } +if ${ac_cv_search_ime_client_native2_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ime_client_native2_init (); +int +main () +{ +return ime_client_native2_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' im_client; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ime_client_native2_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ime_client_native2_init+:} false; then : + break +fi +done +if ${ac_cv_search_ime_client_native2_init+:} false; then : else + ac_cv_search_ime_client_native2_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_client_native2_init" >&5 +$as_echo "$ac_cv_search_ime_client_native2_init" >&6; } +ac_res=$ac_cv_search_ime_client_native2_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + unset ac_cv_search_ime_client_native2_init +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -276557,7 +299960,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -276576,66 +299979,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $coll_cuda_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$coll_cuda_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -276648,7 +300001,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -276667,7 +300020,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -276675,311 +300028,385 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_cuda_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libim_client requires libnl v1 or v3" >&5 +$as_echo_n "checking if libim_client requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ime_client_native2_init (void); +int main(int argc, char *argv[]) { + ime_client_native2_init (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:300055: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lim_client $LIBS $fbtl_ime_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lim_client $LIBS $fbtl_ime_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:300062: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_cuda_WRAPPER_EXTRA_CPPFLAGS ($coll_cuda_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring coll_cuda_WRAPPER_EXTRA_CPPFLAGS ($coll_cuda_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib im_client" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib im_client" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:cuda can compile" >&5 -$as_echo_n "checking if MCA component coll:cuda can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi - # If this component was requested as the default for this - # type, then abort. - if test "$with_coll" = "cuda" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"cuda\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"cuda\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "cuda" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"cuda\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"cuda\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # add component to all component list - all_components="$all_components cuda" + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libim_client links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libim_client links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} + + libnl_sane=0 fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas im_client requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas im_client requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_coll_cuda_DSO=1 -else - BUILD_ompi_coll_cuda_DSO=0 -fi - if test "$BUILD_ompi_coll_cuda_DSO" = "1"; then - MCA_BUILD_ompi_coll_cuda_DSO_TRUE= - MCA_BUILD_ompi_coll_cuda_DSO_FALSE='#' + libnl_sane=0 else - MCA_BUILD_ompi_coll_cuda_DSO_TRUE='#' - MCA_BUILD_ompi_coll_cuda_DSO_FALSE= -fi + opal_libnlv1_libs="$opal_libnlv1_libs im_client" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi +# Go through each item in the variable and only keep the unique ones - unset compile_mode +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - opal_show_subsubsubtitle "MCA component coll:fca (m4 configuration macro)" + # Check the ending condition - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter + opal_i="`expr $opal_i + 1`" + done - component_path="$srcdir/ompi/mca/coll/fca" - want_component=0 + # If we didn't find the token, add it to the "array" - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "fca" ; then - want_component=1 - else - want_component=0 - fi - fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # if we were explicitly disabled, don't build :) - if test "$DISABLE_coll" = "1"; then : - want_component=0 +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - if test "$DISABLE_coll_fca" = "1"; then : - want_component=0 + fi - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libim_client requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libim_client requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} + + libnl_sane=0 else - should_build=0 -fi + opal_libnlv3_libs="$opal_libnlv3_libs im_client" - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - SHARED_FRAMEWORK="$DSO_coll" - SHARED_COMPONENT="$DSO_coll_fca" +# Go through each item in the variable and only keep the unique ones - STATIC_FRAMEWORK="$STATIC_coll" - STATIC_COMPONENT="$STATIC_coll_fca" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - shared_mode_override=static + # Loop over every token we've seen so far - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:fca compile mode" >&5 -$as_echo_n "checking for MCA component coll:fca compile mode... " >&6; } - if test "$DIRECT_coll" = "fca" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + opal_i="`expr $opal_i - 1`" fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - # try to configure the component +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - ac_config_files="$ac_config_files ompi/mca/coll/fca/Makefile" + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_check_fca_libs ompi_check_fca_happy CPPFLAGS_save LDFLAGS_save LIBS_save; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +fi - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_check_fca_libs ompi_check_fca_happy CPPFLAGS_save LDFLAGS_save LIBS_save\"" - eval $opal_str - unset opal_str + rm -f conftest conftest_c.$ac_ext - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_libnl_sane=$libnl_sane + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -# Check whether --with-fca was given. -if test "${with_fca+set}" = set; then : - withval=$with_fca; -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "$with_fca" != "no"; then : - ompi_check_fca_libs=fca - if test ! -z "$with_fca" && test "$with_fca" != "yes"; then : - ompi_check_fca_dir=$with_fca - coll_fca_HOME="$ompi_check_fca_dir" -else - coll_fca_HOME="/" + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - CPPFLAGS_save=$CPPFLAGS - LDFLAGS_save=$LDFLAGS - LIBS_save=$LIBS + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:276954: coll_fca_CPPFLAGS : $coll_fca_CPPFLAGS" >&5 -else - echo coll_fca_CPPFLAGS : $coll_fca_CPPFLAGS >&5 fi -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:276962: coll_fca_LDFLAGS : $coll_fca_LDFLAGS" >&5 + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ime_client_native2_init" != "no" && + test "$ac_cv_search_ime_client_native2_init" != "none required"; then : + fbtl_ime_LIBS="$ac_cv_search_ime_client_native2_init " else - echo coll_fca_LDFLAGS : $coll_fca_LDFLAGS >&5 + fbtl_ime_LIBS="" fi - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:276970: coll_fca_LIBS : $coll_fca_LIBS" >&5 + opal_check_package_happy="yes" else - echo coll_fca_LIBS : $coll_fca_LIBS >&5 + opal_check_package_happy="no" fi - opal_check_package_coll_fca_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_coll_fca_save_LDFLAGS="$LDFLAGS" - opal_check_package_coll_fca_save_LIBS="$LIBS" +fi + unset opal_check_package_header_happy - opal_check_package_coll_fca_orig_CPPFLAGS="$coll_fca_CPPFLAGS" - opal_check_package_coll_fca_orig_LDFLAGS="$coll_fca_LDFLAGS" - opal_check_package_coll_fca_orig_LIBS="$coll_fca_LIBS" + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_ime_happy="yes" +else + fbtl_ime_CPPFLAGS="$opal_check_package_fbtl_ime_orig_CPPFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + fbtl_ime_LIBS="$opal_check_package_fbtl_ime_orig_LIBS" + + opal_check_package_fbtl_ime_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_fbtl_ime_save_LDFLAGS="$LDFLAGS" + opal_check_package_fbtl_ime_save_LIBS="$LIBS" + + opal_check_package_fbtl_ime_orig_CPPFLAGS="$fbtl_ime_CPPFLAGS" + opal_check_package_fbtl_ime_orig_LDFLAGS="$fbtl_ime_LDFLAGS" + opal_check_package_fbtl_ime_orig_LIBS="$fbtl_ime_LIBS" # This is stolen from autoconf to peek under the covers to get the @@ -277027,22 +300454,22 @@ # so this sucks, but there's no way to get through the progression # of header includes without killing off the cache variable and trying # again... - unset ac_cv_header_fca_fca_api_h + unset ac_cv_header_ime_native_h # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_fca_dir | sed -e 'sX/*$XXg') + dir_prefix=$(echo $ompi_check_ime_dir | sed -e 'sX/*$XXg') opal_check_package_header_happy="no" if test "$dir_prefix" = "/usr" || \ test "$dir_prefix" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 $as_echo "looking for header without includes" >&6; } - for ac_header in fca/fca_api.h + for ac_header in ime_native.h do : - ac_fn_c_check_header_mongrel "$LINENO" "fca/fca_api.h" "ac_cv_header_fca_fca_api_h" "$ac_includes_default" -if test "x$ac_cv_header_fca_fca_api_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "ime_native.h" "ac_cv_header_ime_native_h" "$ac_includes_default" +if test "x$ac_cv_header_ime_native_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_FCA_FCA_API_H 1 +#define HAVE_IME_NATIVE_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -277051,21 +300478,21 @@ if test "$opal_check_package_header_happy" = "no"; then : # no go on the as is - reset the cache and try again - unset ac_cv_header_fca_fca_api_h + unset ac_cv_header_ime_native_h fi fi if test "$opal_check_package_header_happy" = "no"; then : if test "$dir_prefix" != ""; then : - coll_fca_CPPFLAGS="$coll_fca_CPPFLAGS -I$dir_prefix/include" + fbtl_ime_CPPFLAGS="$fbtl_ime_CPPFLAGS -I$dir_prefix/include" CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" fi - for ac_header in fca/fca_api.h + for ac_header in ime_native.h do : - ac_fn_c_check_header_mongrel "$LINENO" "fca/fca_api.h" "ac_cv_header_fca_fca_api_h" "$ac_includes_default" -if test "x$ac_cv_header_fca_fca_api_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "ime_native.h" "ac_cv_header_ime_native_h" "$ac_includes_default" +if test "x$ac_cv_header_ime_native_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_FCA_FCA_API_H 1 +#define HAVE_IME_NATIVE_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -277080,15 +300507,15 @@ # see comment above - unset ac_cv_search_fca_get_version + unset ac_cv_search_ime_native_init opal_check_package_lib_happy="no" - if test "" != ""; then : + if test "$ompi_check_ime_libdir" != ""; then : # libdir was specified - search only there - coll_fca_LDFLAGS="$coll_fca_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 -$as_echo_n "checking for library containing fca_get_version... " >&6; } -if ${ac_cv_search_fca_get_version+:} false; then : + fbtl_ime_LDFLAGS="$fbtl_ime_LDFLAGS -L$ompi_check_ime_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ime_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_native_init" >&5 +$as_echo_n "checking for library containing ime_native_init... " >&6; } +if ${ac_cv_search_ime_native_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -277101,16 +300528,16 @@ #ifdef __cplusplus extern "C" #endif -char fca_get_version (); +char ime_native_init (); int main () { -return fca_get_version (); +return ime_native_init (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_fca_libs; do +for ac_lib in '' im_client; do if test -z "$ac_lib"; then ac_res="none required" else @@ -277118,25 +300545,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fca_get_version=$ac_res + ac_cv_search_ime_native_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fca_get_version+:} false; then : + if ${ac_cv_search_ime_native_init+:} false; then : break fi done -if ${ac_cv_search_fca_get_version+:} false; then : +if ${ac_cv_search_ime_native_init+:} false; then : else - ac_cv_search_fca_get_version=no + ac_cv_search_ime_native_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 -$as_echo "$ac_cv_search_fca_get_version" >&6; } -ac_res=$ac_cv_search_fca_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_native_init" >&5 +$as_echo "$ac_cv_search_ime_native_init" >&6; } +ac_res=$ac_cv_search_ime_native_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -277145,22 +300572,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" - coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" - unset ac_cv_search_fca_get_version + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + unset ac_cv_search_ime_native_init fi else # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_fca_dir" + opal_check_package_libdir="$ompi_check_ime_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 -$as_echo_n "checking for library containing fca_get_version... " >&6; } -if ${ac_cv_search_fca_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_native_init" >&5 +$as_echo_n "checking for library containing ime_native_init... " >&6; } +if ${ac_cv_search_ime_native_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -277173,16 +300600,16 @@ #ifdef __cplusplus extern "C" #endif -char fca_get_version (); +char ime_native_init (); int main () { -return fca_get_version (); +return ime_native_init (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_fca_libs; do +for ac_lib in '' im_client; do if test -z "$ac_lib"; then ac_res="none required" else @@ -277190,25 +300617,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fca_get_version=$ac_res + ac_cv_search_ime_native_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fca_get_version+:} false; then : + if ${ac_cv_search_ime_native_init+:} false; then : break fi done -if ${ac_cv_search_fca_get_version+:} false; then : +if ${ac_cv_search_ime_native_init+:} false; then : else - ac_cv_search_fca_get_version=no + ac_cv_search_ime_native_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 -$as_echo "$ac_cv_search_fca_get_version" >&6; } -ac_res=$ac_cv_search_fca_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_native_init" >&5 +$as_echo "$ac_cv_search_ime_native_init" >&6; } +ac_res=$ac_cv_search_ime_native_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -277218,21 +300645,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" - coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" - unset ac_cv_search_fca_get_version + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + unset ac_cv_search_ime_native_init fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - coll_fca_LDFLAGS="$coll_fca_LDFLAGS -L$opal_check_package_libdir/lib" + fbtl_ime_LDFLAGS="$fbtl_ime_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 -$as_echo_n "checking for library containing fca_get_version... " >&6; } -if ${ac_cv_search_fca_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_native_init" >&5 +$as_echo_n "checking for library containing ime_native_init... " >&6; } +if ${ac_cv_search_ime_native_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -277245,16 +300672,16 @@ #ifdef __cplusplus extern "C" #endif -char fca_get_version (); +char ime_native_init (); int main () { -return fca_get_version (); +return ime_native_init (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_fca_libs; do +for ac_lib in '' im_client; do if test -z "$ac_lib"; then ac_res="none required" else @@ -277262,25 +300689,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fca_get_version=$ac_res + ac_cv_search_ime_native_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fca_get_version+:} false; then : + if ${ac_cv_search_ime_native_init+:} false; then : break fi done -if ${ac_cv_search_fca_get_version+:} false; then : +if ${ac_cv_search_ime_native_init+:} false; then : else - ac_cv_search_fca_get_version=no + ac_cv_search_ime_native_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 -$as_echo "$ac_cv_search_fca_get_version" >&6; } -ac_res=$ac_cv_search_fca_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_native_init" >&5 +$as_echo "$ac_cv_search_ime_native_init" >&6; } +ac_res=$ac_cv_search_ime_native_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -277290,22 +300717,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" - coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" - unset ac_cv_search_fca_get_version + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + unset ac_cv_search_ime_native_init fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - coll_fca_LDFLAGS="$coll_fca_LDFLAGS -L$opal_check_package_libdir/lib64" + fbtl_ime_LDFLAGS="$fbtl_ime_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 -$as_echo_n "checking for library containing fca_get_version... " >&6; } -if ${ac_cv_search_fca_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_native_init" >&5 +$as_echo_n "checking for library containing ime_native_init... " >&6; } +if ${ac_cv_search_ime_native_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -277318,16 +300745,16 @@ #ifdef __cplusplus extern "C" #endif -char fca_get_version (); +char ime_native_init (); int main () { -return fca_get_version (); +return ime_native_init (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_fca_libs; do +for ac_lib in '' im_client; do if test -z "$ac_lib"; then ac_res="none required" else @@ -277335,25 +300762,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fca_get_version=$ac_res + ac_cv_search_ime_native_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fca_get_version+:} false; then : + if ${ac_cv_search_ime_native_init+:} false; then : break fi done -if ${ac_cv_search_fca_get_version+:} false; then : +if ${ac_cv_search_ime_native_init+:} false; then : else - ac_cv_search_fca_get_version=no + ac_cv_search_ime_native_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 -$as_echo "$ac_cv_search_fca_get_version" >&6; } -ac_res=$ac_cv_search_fca_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_native_init" >&5 +$as_echo "$ac_cv_search_ime_native_init" >&6; } +ac_res=$ac_cv_search_ime_native_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -277363,9 +300790,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" - coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" - unset ac_cv_search_fca_get_version + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + unset ac_cv_search_ime_native_init fi fi fi @@ -277462,12 +300889,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lib$ompi_check_fca_libs requires libnl v1 or v3" >&5 -$as_echo_n "checking if lib$ompi_check_fca_libs requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libim_client requires libnl v1 or v3" >&5 +$as_echo_n "checking if libim_client requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void fca_get_version (void); +extern void ime_native_init (void); int main(int argc, char *argv[]) { - fca_get_version (); + ime_native_init (); return 0; } EOF @@ -277479,14 +300906,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:277482: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_fca_libs $LIBS $coll_fca_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_fca_libs $LIBS $coll_fca_LIBS 1>&5 2>&1 +echo "configure:300909: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lim_client $LIBS $fbtl_ime_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lim_client $LIBS $fbtl_ime_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:277489: \$? = $opal_status" >&5 + echo "configure:300916: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -277506,8 +300933,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib $ompi_check_fca_libs" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib $ompi_check_fca_libs" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib im_client" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib im_client" >&2;} fi @@ -277521,15 +300948,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, lib$ompi_check_fca_libs links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, lib$ompi_check_fca_libs links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libim_client links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libim_client links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} libnl_sane=0 fi @@ -277538,19 +300965,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_fca_libs requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_fca_libs requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas im_client requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas im_client requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs $ompi_check_fca_libs" + opal_libnlv1_libs="$opal_libnlv1_libs im_client" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -277629,19 +301056,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_fca_libs requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_fca_libs requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libim_client requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libim_client requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs $ompi_check_fca_libs" + opal_libnlv3_libs="$opal_libnlv3_libs im_client" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -277782,11 +301209,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_fca_get_version" != "no" && - test "$ac_cv_search_fca_get_version" != "none required"; then : - coll_fca_LIBS="$ac_cv_search_fca_get_version " + if test "$ac_cv_search_ime_native_init" != "no" && + test "$ac_cv_search_ime_native_init" != "none required"; then : + fbtl_ime_LIBS="$ac_cv_search_ime_native_init " else - coll_fca_LIBS="" + fbtl_ime_LIBS="" fi opal_check_package_happy="yes" else @@ -277805,15 +301232,15 @@ # see comment above - unset ac_cv_search_fca_get_version + unset ac_cv_search_ime_native_init opal_check_package_lib_happy="no" - if test "" != ""; then : + if test "$ompi_check_ime_libdir" != ""; then : # libdir was specified - search only there - coll_fca_LDFLAGS="$coll_fca_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 -$as_echo_n "checking for library containing fca_get_version... " >&6; } -if ${ac_cv_search_fca_get_version+:} false; then : + fbtl_ime_LDFLAGS="$fbtl_ime_LDFLAGS -L$ompi_check_ime_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ime_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_native_init" >&5 +$as_echo_n "checking for library containing ime_native_init... " >&6; } +if ${ac_cv_search_ime_native_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -277826,16 +301253,16 @@ #ifdef __cplusplus extern "C" #endif -char fca_get_version (); +char ime_native_init (); int main () { -return fca_get_version (); +return ime_native_init (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_fca_libs; do +for ac_lib in '' im_client; do if test -z "$ac_lib"; then ac_res="none required" else @@ -277843,25 +301270,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fca_get_version=$ac_res + ac_cv_search_ime_native_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fca_get_version+:} false; then : + if ${ac_cv_search_ime_native_init+:} false; then : break fi done -if ${ac_cv_search_fca_get_version+:} false; then : +if ${ac_cv_search_ime_native_init+:} false; then : else - ac_cv_search_fca_get_version=no + ac_cv_search_ime_native_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 -$as_echo "$ac_cv_search_fca_get_version" >&6; } -ac_res=$ac_cv_search_fca_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_native_init" >&5 +$as_echo "$ac_cv_search_ime_native_init" >&6; } +ac_res=$ac_cv_search_ime_native_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -277870,22 +301297,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" - coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" - unset ac_cv_search_fca_get_version + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + unset ac_cv_search_ime_native_init fi else # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_fca_dir" + opal_check_package_libdir="$ompi_check_ime_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 -$as_echo_n "checking for library containing fca_get_version... " >&6; } -if ${ac_cv_search_fca_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_native_init" >&5 +$as_echo_n "checking for library containing ime_native_init... " >&6; } +if ${ac_cv_search_ime_native_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -277898,16 +301325,16 @@ #ifdef __cplusplus extern "C" #endif -char fca_get_version (); +char ime_native_init (); int main () { -return fca_get_version (); +return ime_native_init (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_fca_libs; do +for ac_lib in '' im_client; do if test -z "$ac_lib"; then ac_res="none required" else @@ -277915,25 +301342,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fca_get_version=$ac_res + ac_cv_search_ime_native_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fca_get_version+:} false; then : + if ${ac_cv_search_ime_native_init+:} false; then : break fi done -if ${ac_cv_search_fca_get_version+:} false; then : +if ${ac_cv_search_ime_native_init+:} false; then : else - ac_cv_search_fca_get_version=no + ac_cv_search_ime_native_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 -$as_echo "$ac_cv_search_fca_get_version" >&6; } -ac_res=$ac_cv_search_fca_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_native_init" >&5 +$as_echo "$ac_cv_search_ime_native_init" >&6; } +ac_res=$ac_cv_search_ime_native_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -277943,21 +301370,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" - coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" - unset ac_cv_search_fca_get_version + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + unset ac_cv_search_ime_native_init fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - coll_fca_LDFLAGS="$coll_fca_LDFLAGS -L$opal_check_package_libdir/lib" + fbtl_ime_LDFLAGS="$fbtl_ime_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 -$as_echo_n "checking for library containing fca_get_version... " >&6; } -if ${ac_cv_search_fca_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_native_init" >&5 +$as_echo_n "checking for library containing ime_native_init... " >&6; } +if ${ac_cv_search_ime_native_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -277970,16 +301397,16 @@ #ifdef __cplusplus extern "C" #endif -char fca_get_version (); +char ime_native_init (); int main () { -return fca_get_version (); +return ime_native_init (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_fca_libs; do +for ac_lib in '' im_client; do if test -z "$ac_lib"; then ac_res="none required" else @@ -277987,25 +301414,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fca_get_version=$ac_res + ac_cv_search_ime_native_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fca_get_version+:} false; then : + if ${ac_cv_search_ime_native_init+:} false; then : break fi done -if ${ac_cv_search_fca_get_version+:} false; then : +if ${ac_cv_search_ime_native_init+:} false; then : else - ac_cv_search_fca_get_version=no + ac_cv_search_ime_native_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 -$as_echo "$ac_cv_search_fca_get_version" >&6; } -ac_res=$ac_cv_search_fca_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_native_init" >&5 +$as_echo "$ac_cv_search_ime_native_init" >&6; } +ac_res=$ac_cv_search_ime_native_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -278015,22 +301442,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" - coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" - unset ac_cv_search_fca_get_version + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + unset ac_cv_search_ime_native_init fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - coll_fca_LDFLAGS="$coll_fca_LDFLAGS -L$opal_check_package_libdir/lib64" + fbtl_ime_LDFLAGS="$fbtl_ime_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 -$as_echo_n "checking for library containing fca_get_version... " >&6; } -if ${ac_cv_search_fca_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_native_init" >&5 +$as_echo_n "checking for library containing ime_native_init... " >&6; } +if ${ac_cv_search_ime_native_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -278043,16 +301470,16 @@ #ifdef __cplusplus extern "C" #endif -char fca_get_version (); +char ime_native_init (); int main () { -return fca_get_version (); +return ime_native_init (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_fca_libs; do +for ac_lib in '' im_client; do if test -z "$ac_lib"; then ac_res="none required" else @@ -278060,25 +301487,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fca_get_version=$ac_res + ac_cv_search_ime_native_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fca_get_version+:} false; then : + if ${ac_cv_search_ime_native_init+:} false; then : break fi done -if ${ac_cv_search_fca_get_version+:} false; then : +if ${ac_cv_search_ime_native_init+:} false; then : else - ac_cv_search_fca_get_version=no + ac_cv_search_ime_native_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 -$as_echo "$ac_cv_search_fca_get_version" >&6; } -ac_res=$ac_cv_search_fca_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_native_init" >&5 +$as_echo "$ac_cv_search_ime_native_init" >&6; } +ac_res=$ac_cv_search_ime_native_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -278088,9 +301515,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" - coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" - unset ac_cv_search_fca_get_version + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + unset ac_cv_search_ime_native_init fi fi fi @@ -278125,22 +301552,877 @@ $as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + opal_libnl_sane=1 + case $host in + *linux*) + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libim_client requires libnl v1 or v3" >&5 +$as_echo_n "checking if libim_client requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ime_native_init (void); +int main(int argc, char *argv[]) { + ime_native_init (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:301634: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lim_client $LIBS $fbtl_ime_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lim_client $LIBS $fbtl_ime_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:301641: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib im_client" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib im_client" >&2;} + +fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libim_client links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libim_client links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} + + libnl_sane=0 +fi + + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas im_client requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas im_client requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} + + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs im_client" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi + +fi + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libim_client requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libim_client requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} + + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs im_client" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi + +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ime_native_init" != "no" && + test "$ac_cv_search_ime_native_init" != "none required"; then : + fbtl_ime_LIBS="$ac_cv_search_ime_native_init " +else + fbtl_ime_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi + + +fi + unset opal_check_package_header_happy + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_ime_happy="yes" +else + fbtl_ime_CPPFLAGS="$opal_check_package_fbtl_ime_orig_CPPFLAGS" + fbtl_ime_LDFLAGS="$opal_check_package_fbtl_ime_orig_LDFLAGS" + fbtl_ime_LIBS="$opal_check_package_fbtl_ime_orig_LIBS" + ompi_check_ime_happy="no" +fi + + CPPFLAGS="$opal_check_package_fbtl_ime_save_CPPFLAGS" + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + LIBS="$opal_check_package_fbtl_ime_save_LIBS" + + +fi + + CPPFLAGS="$opal_check_package_fbtl_ime_save_CPPFLAGS" + LDFLAGS="$opal_check_package_fbtl_ime_save_LDFLAGS" + LIBS="$opal_check_package_fbtl_ime_save_LIBS" + + +fi + + if test "$ompi_check_ime_happy" = "yes"; then : + fbtl_ime_happy="yes" +else + if test ! -z "$with_ime" && test "$with_ime" != "no"; then : + echo IME support not found +fi + fbtl_ime_happy="no" +fi + + + + if test "$fbtl_ime_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + + # substitute in the things needed to build ime + + + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/fbtl/ime/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components ime" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components ime" + else + if test "fbtl" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/fbtl/ime/lib${OMPI_LIB_PREFIX}mca_fbtl_ime.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/fbtl/ime/libmca_fbtl_ime.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_fbtl_ime_component;" >> $outfile.extern + echo " &mca_fbtl_ime_component, " >> $outfile.struct + static_components="$static_components ime" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fbtl:ime can compile" >&5 +$as_echo_n "checking if MCA component fbtl:ime can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_fbtl" = "ime" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_fbtl_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** fbtl component ime was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_fbtl" = "ime" ; then +as_fn_error $? "*** fbtl component ime was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$fbtl_ime_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $fbtl_ime_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $fbtl_ime_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$fbtl_ime_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $fbtl_ime_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $fbtl_ime_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_libnl_sane=1 - case $host in - *linux*) + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$fbtl_ime_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -278153,7 +302435,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -278172,7 +302454,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -278180,303 +302462,375 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $fbtl_ime_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lib$ompi_check_fca_libs requires libnl v1 or v3" >&5 -$as_echo_n "checking if lib$ompi_check_fca_libs requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void fca_get_version (void); -int main(int argc, char *argv[]) { - fca_get_version (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:278207: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_fca_libs $LIBS $coll_fca_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_fca_libs $LIBS $coll_fca_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:278214: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fbtl_ime_WRAPPER_EXTRA_CPPFLAGS ($fbtl_ime_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring fbtl_ime_WRAPPER_EXTRA_CPPFLAGS ($fbtl_ime_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib $ompi_check_fca_libs" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib $ompi_check_fca_libs" >&2;} - -fi - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fbtl:ime can compile" >&5 +$as_echo_n "checking if MCA component fbtl:ime can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, lib$ompi_check_fca_libs links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, lib$ompi_check_fca_libs links to both libnl and libnl-3." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_fbtl" = "ime" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ime\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ime\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} + if test ! -z "$DIRECT_fbtl" ; then + if test "$DIRECT_fbtl" = "ime" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ime\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ime\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - libnl_sane=0 + # add component to all component list + all_components="$all_components ime" fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_fca_libs requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_fca_libs requires libnl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} - libnl_sane=0 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_fbtl_ime_DSO=1 else - opal_libnlv1_libs="$opal_libnlv1_libs $ompi_check_fca_libs" + BUILD_ompi_fbtl_ime_DSO=0 +fi + if test "$BUILD_ompi_fbtl_ime_DSO" = "1"; then + MCA_BUILD_ompi_fbtl_ime_DSO_TRUE= + MCA_BUILD_ompi_fbtl_ime_DSO_FALSE='#' +else + MCA_BUILD_ompi_fbtl_ime_DSO_TRUE='#' + MCA_BUILD_ompi_fbtl_ime_DSO_FALSE= +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + unset compile_mode - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + opal_show_subsubsubtitle "MCA component fbtl:posix (m4 configuration macro)" - opal_done="`expr $opal_i \>= $opal_count`" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" + component_path="$srcdir/ompi/mca/fbtl/posix" + want_component=0 - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_fbtl" ; then + if test "$DIRECT_fbtl" = "posix" ; then + want_component=1 + else + want_component=0 + fi + fi fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval - -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_fbtl" = "1"; then : + want_component=0 +fi + if test "$DISABLE_fbtl_posix" = "1"; then : + want_component=0 fi + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_fca_libs requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_fca_libs requires libnl-3" >&2;} + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} + SHARED_FRAMEWORK="$DSO_fbtl" + SHARED_COMPONENT="$DSO_fbtl_posix" - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs $ompi_check_fca_libs" + STATIC_FRAMEWORK="$STATIC_fbtl" + STATIC_COMPONENT="$STATIC_fbtl_posix" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + shared_mode_override=static -# Go through each item in the variable and only keep the unique ones + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fbtl:posix compile mode" >&5 +$as_echo_n "checking for MCA component fbtl:posix compile mode... " >&6; } + if test "$DIRECT_fbtl" = "posix" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # try to configure the component - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + ac_config_files="$ac_config_files ompi/mca/fbtl/posix/Makefile" - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + fbtl_posix_happy=no + ac_fn_c_check_header_mongrel "$LINENO" "aio.h" "ac_cv_header_aio_h" "$ac_includes_default" +if test "x$ac_cv_header_aio_h" = xyes; then : - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in LIBS_save add; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"LIBS_save add\"" + eval $opal_str + unset opal_str -# Done; do the assignment + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + LIBS_save=$LIBS -# Clean up + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing aio_write" >&5 +$as_echo_n "checking for library containing aio_write... " >&6; } +if ${ac_cv_search_aio_write+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char aio_write (); +int +main () +{ +return aio_write (); + ; + return 0; +} +_ACEOF +for ac_lib in '' rt; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_aio_write=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_aio_write+:} false; then : + break fi +done +if ${ac_cv_search_aio_write+:} false; then : +else + ac_cv_search_aio_write=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_aio_write" >&5 +$as_echo "$ac_cv_search_aio_write" >&6; } +ac_res=$ac_cv_search_aio_write +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + # Found it! See if anything was added to LIBS + add=`printf '%s\n' "$LIBS" | sed -e "s/$LIBS_save$//"` + if test -n "$add"; then : - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str + unset opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - ;; - esac + for arg in $add; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${fbtl_posix_LIBS}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$fbtl_posix_LIBS"; then : + fbtl_posix_LIBS=$arg +else + fbtl_posix_LIBS="$fbtl_posix_LIBS $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -278499,28 +302853,19 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no fi + fbtl_posix_have_aio_write=1 + fbtl_posix_happy="yes" +else + fbtl_posix_have_aio_write=0 fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_fca_get_version" != "no" && - test "$ac_cv_search_fca_get_version" != "none required"; then : - coll_fca_LIBS="$ac_cv_search_fca_get_version " -else - coll_fca_LIBS="" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi -fi - unset opal_check_package_header_happy +cat >>confdefs.h <<_ACEOF +#define OPAL_HAVE_FBTL_POSIX $fbtl_posix_have_aio_write +_ACEOF # Unwind the index @@ -278544,78 +302889,39 @@ done - - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_fca_happy="yes" -else - coll_fca_CPPFLAGS="$opal_check_package_coll_fca_orig_CPPFLAGS" - coll_fca_LDFLAGS="$opal_check_package_coll_fca_orig_LDFLAGS" - coll_fca_LIBS="$opal_check_package_coll_fca_orig_LIBS" - ompi_check_fca_happy="no" fi - CPPFLAGS="$opal_check_package_coll_fca_save_CPPFLAGS" - LDFLAGS="$opal_check_package_coll_fca_save_LDFLAGS" - LIBS="$opal_check_package_coll_fca_save_LIBS" - - CPPFLAGS=$CPPFLAGS_save - LDFLAGS=$LDFLAGS_save - LIBS=$LIBS_save -else - ompi_check_fca_happy="no" -fi - if test "$ompi_check_fca_happy" = "yes" && test "$enable_progress_threads" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: fca driver does not currently support progress threads. Disabling FCA." >&5 -$as_echo "$as_me: WARNING: fca driver does not currently support progress threads. Disabling FCA." >&2;} - ompi_check_fca_happy="no" -fi + for ac_func in pwritev +do : + ac_fn_c_check_func "$LINENO" "pwritev" "ac_cv_func_pwritev" +if test "x$ac_cv_func_pwritev" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PWRITEV 1 +_ACEOF - if test "$ompi_check_fca_happy" = "yes"; then : - coll_fca_happy="yes" -else - if test ! -z "$with_fca" && test "$with_fca" != "no"; then : - as_fn_error $? "FCA support requested but not found. Aborting" "$LINENO" 5 fi - coll_fca_happy="no" -fi - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +done - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + for ac_func in preadv +do : + ac_fn_c_check_func "$LINENO" "preadv" "ac_cv_func_preadv" +if test "x$ac_cv_func_preadv" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PREADV 1 +_ACEOF +fi +done - if test "$coll_fca_happy" = "yes"; then : + if test "$fbtl_posix_happy" = "yes"; then : should_build=$should_build else should_build=0 fi - # substitute in the things needed to build fca - - - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -278624,45 +302930,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/coll/fca/post_configure.sh" + infile="$srcdir/ompi/mca/fbtl/posix/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components fca" + all_components="$all_components posix" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components fca" + dso_components="$dso_components posix" else - if test "coll" = "common"; then + if test "fbtl" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/coll/fca/lib${OMPI_LIB_PREFIX}mca_coll_fca.la $static_ltlibs" + static_ltlibs="mca/fbtl/posix/lib${OMPI_LIB_PREFIX}mca_fbtl_posix.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/coll/fca/libmca_coll_fca.la $static_ltlibs" + static_ltlibs="mca/fbtl/posix/libmca_fbtl_posix.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_coll_fca_component;" >> $outfile.extern - echo " &mca_coll_fca_component, " >> $outfile.struct - static_components="$static_components fca" + echo "extern const mca_base_component_t mca_fbtl_posix_component;" >> $outfile.extern + echo " &mca_fbtl_posix_component, " >> $outfile.struct + static_components="$static_components posix" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:fca can compile" >&5 -$as_echo_n "checking if MCA component coll:fca can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fbtl:posix can compile" >&5 +$as_echo_n "checking if MCA component fbtl:posix can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_coll" = "fca" ; then + if test "$DIRECT_fbtl" = "posix" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_fbtl_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** coll component fca was supposed to be direct-called, but +as_fn_error $? "*** fbtl component posix was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -278670,8 +302976,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_coll" = "fca" ; then -as_fn_error $? "*** coll component fca was supposed to be direct-called, but + if test "$DIRECT_fbtl" = "posix" ; then +as_fn_error $? "*** fbtl component posix was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -278686,7 +302992,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$coll_fca_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$fbtl_posix_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -278726,7 +303032,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_fca_LDFLAGS; do + for arg in $fbtl_posix_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -278807,7 +303113,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_fca_WRAPPER_EXTRA_LDFLAGS; do + for arg in $fbtl_posix_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -278849,7 +303155,7 @@ fi - if test "$coll_fca_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$fbtl_posix_WRAPPER_EXTRA_LIBS" = ""; then : @@ -278889,7 +303195,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_fca_LIBS; do + for arg in $fbtl_posix_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -278970,7 +303276,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_fca_WRAPPER_EXTRA_LIBS; do + for arg in $fbtl_posix_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -279018,7 +303324,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$coll_fca_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$fbtl_posix_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -279061,7 +303367,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_fca_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $fbtl_posix_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -279104,32 +303410,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_fca_WRAPPER_EXTRA_CPPFLAGS ($coll_fca_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring coll_fca_WRAPPER_EXTRA_CPPFLAGS ($coll_fca_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fbtl_posix_WRAPPER_EXTRA_CPPFLAGS ($fbtl_posix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring fbtl_posix_WRAPPER_EXTRA_CPPFLAGS ($fbtl_posix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:fca can compile" >&5 -$as_echo_n "checking if MCA component coll:fca can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fbtl:posix can compile" >&5 +$as_echo_n "checking if MCA component fbtl:posix can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_coll" = "fca" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"fca\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"fca\" failed to configure properly" >&2;} + if test "$with_fbtl" = "posix" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"posix\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"posix\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "fca" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"fca\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"fca\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_fbtl" ; then + if test "$DIRECT_fbtl" = "posix" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"posix\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"posix\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -279137,23 +303443,23 @@ fi # add component to all component list - all_components="$all_components fca" + all_components="$all_components posix" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_ompi_coll_fca_DSO=1 + BUILD_ompi_fbtl_posix_DSO=1 else - BUILD_ompi_coll_fca_DSO=0 + BUILD_ompi_fbtl_posix_DSO=0 fi - if test "$BUILD_ompi_coll_fca_DSO" = "1"; then - MCA_BUILD_ompi_coll_fca_DSO_TRUE= - MCA_BUILD_ompi_coll_fca_DSO_FALSE='#' + if test "$BUILD_ompi_fbtl_posix_DSO" = "1"; then + MCA_BUILD_ompi_fbtl_posix_DSO_TRUE= + MCA_BUILD_ompi_fbtl_posix_DSO_FALSE='#' else - MCA_BUILD_ompi_coll_fca_DSO_TRUE='#' - MCA_BUILD_ompi_coll_fca_DSO_FALSE= + MCA_BUILD_ompi_fbtl_posix_DSO_TRUE='#' + MCA_BUILD_ompi_fbtl_posix_DSO_FALSE= fi @@ -279169,13 +303475,13 @@ - opal_show_subsubsubtitle "MCA component coll:hcoll (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component fbtl:pvfs2 (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/coll/hcoll" + component_path="$srcdir/ompi/mca/fbtl/pvfs2" want_component=0 # build if: @@ -279207,8 +303513,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "hcoll" ; then + if test ! -z "$DIRECT_fbtl" ; then + if test "$DIRECT_fbtl" = "pvfs2" ; then want_component=1 else want_component=0 @@ -279217,10 +303523,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_coll" = "1"; then : + if test "$DISABLE_fbtl" = "1"; then : want_component=0 fi - if test "$DISABLE_coll_hcoll" = "1"; then : + if test "$DISABLE_fbtl_pvfs2" = "1"; then : want_component=0 fi @@ -279233,11 +303539,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_coll" - SHARED_COMPONENT="$DSO_coll_hcoll" + SHARED_FRAMEWORK="$DSO_fbtl" + SHARED_COMPONENT="$DSO_fbtl_pvfs2" - STATIC_FRAMEWORK="$STATIC_coll" - STATIC_COMPONENT="$STATIC_coll_hcoll" + STATIC_FRAMEWORK="$STATIC_fbtl" + STATIC_COMPONENT="$STATIC_fbtl_pvfs2" shared_mode_override=static @@ -279255,9 +303561,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:hcoll compile mode" >&5 -$as_echo_n "checking for MCA component coll:hcoll compile mode... " >&6; } - if test "$DIRECT_coll" = "hcoll" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fbtl:pvfs2 compile mode" >&5 +$as_echo_n "checking for MCA component fbtl:pvfs2 compile mode... " >&6; } + if test "$DIRECT_fbtl" = "pvfs2" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -279268,98 +303574,90 @@ # try to configure the component - ac_config_files="$ac_config_files ompi/mca/coll/hcoll/Makefile" - + ac_config_files="$ac_config_files ompi/mca/fbtl/pvfs2/Makefile" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + check_pvfs2_CPPFLAGS= + check_pvfs2_LDFLAGS= + check_pvfs2_LIBS= - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_check_hcoll_dir ompi_check_hcoll_libs ompi_check_hcoll_happy CPPFLAGS_save LDFLAGS_save LIBS_save; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + check_pvfs2_configuration="none" + ompi_check_pvfs2_happy="yes" - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_check_hcoll_dir ompi_check_hcoll_libs ompi_check_hcoll_happy CPPFLAGS_save LDFLAGS_save LIBS_save\"" - eval $opal_str - unset opal_str + # Get some configuration information - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +# Check whether --with-pvfs2 was given. +if test "${with_pvfs2+set}" = set; then : + withval=$with_pvfs2; +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-pvfs2 value" >&5 +$as_echo_n "checking --with-pvfs2 value... " >&6; } + if test "$with_pvfs2" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-pvfs2)" >&5 +$as_echo "simple no (specified --without-pvfs2)" >&6; } +else + if test "$with_pvfs2" = "yes" || test "x$with_pvfs2" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_pvfs2"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_pvfs2 not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_pvfs2 not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_pvfs2/include/pvfs2.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_pvfs2/include/pvfs2.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_pvfs2/include/pvfs2.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_pvfs2)" >&5 +$as_echo "sanity check ok ($with_pvfs2)" >&6; } -# Check whether --with-hcoll was given. -if test "${with_hcoll+set}" = set; then : - withval=$with_hcoll; fi - if test "$with_hcoll" != "no"; then : - ompi_check_hcoll_libs=hcoll - if test ! -z "$with_hcoll" && test "$with_hcoll" != "yes"; then : - ompi_check_hcoll_dir=$with_hcoll fi - CPPFLAGS_save=$CPPFLAGS - LDFLAGS_save=$LDFLAGS - LIBS_save=$LIBS - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:279334: coll_hcoll_CPPFLAGS : $coll_hcoll_CPPFLAGS" >&5 -else - echo coll_hcoll_CPPFLAGS : $coll_hcoll_CPPFLAGS >&5 fi -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:279342: coll_hcoll_LDFLAGS : $coll_hcoll_LDFLAGS" >&5 -else - echo coll_hcoll_LDFLAGS : $coll_hcoll_LDFLAGS >&5 + fi -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:279350: coll_hcoll_LIBS : $coll_hcoll_LIBS" >&5 + + if test "$with_pvfs2" = "no"; then : + ompi_check_pvfs2_happy="no" else - echo coll_hcoll_LIBS : $coll_hcoll_LIBS >&5 + if test -z "$with_pvfs2"; then : + ompi_check_pvfs2_dir="/usr/local" +else + ompi_check_pvfs2_dir=$with_pvfs2 fi + if test -e "$ompi_check_pvfs2_dir/lib64" ; then + ompi_check_pvfs2_libdir="$ompi_check_pvfs2_dir/lib64" + else + ompi_check_pvfs2_libdir="$ompi_check_pvfs2_dir/lib" + fi - opal_check_package_coll_hcoll_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_coll_hcoll_save_LDFLAGS="$LDFLAGS" - opal_check_package_coll_hcoll_save_LIBS="$LIBS" + # Add correct -I and -L flags - opal_check_package_coll_hcoll_orig_CPPFLAGS="$coll_hcoll_CPPFLAGS" - opal_check_package_coll_hcoll_orig_LDFLAGS="$coll_hcoll_LDFLAGS" - opal_check_package_coll_hcoll_orig_LIBS="$coll_hcoll_LIBS" + opal_check_package_fbtl_pvfs2_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_fbtl_pvfs2_save_LDFLAGS="$LDFLAGS" + opal_check_package_fbtl_pvfs2_save_LIBS="$LIBS" + + opal_check_package_fbtl_pvfs2_orig_CPPFLAGS="$fbtl_pvfs2_CPPFLAGS" + opal_check_package_fbtl_pvfs2_orig_LDFLAGS="$fbtl_pvfs2_LDFLAGS" + opal_check_package_fbtl_pvfs2_orig_LIBS="$fbtl_pvfs2_LIBS" # This is stolen from autoconf to peek under the covers to get the @@ -279407,22 +303705,22 @@ # so this sucks, but there's no way to get through the progression # of header includes without killing off the cache variable and trying # again... - unset ac_cv_header_hcoll_api_hcoll_api_h + unset ac_cv_header_pvfs2_h # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_hcoll_dir | sed -e 'sX/*$XXg') + dir_prefix=$(echo $ompi_check_pvfs2_dir | sed -e 'sX/*$XXg') opal_check_package_header_happy="no" if test "$dir_prefix" = "/usr" || \ test "$dir_prefix" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 $as_echo "looking for header without includes" >&6; } - for ac_header in hcoll/api/hcoll_api.h + for ac_header in pvfs2.h do : - ac_fn_c_check_header_mongrel "$LINENO" "hcoll/api/hcoll_api.h" "ac_cv_header_hcoll_api_hcoll_api_h" "$ac_includes_default" -if test "x$ac_cv_header_hcoll_api_hcoll_api_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "pvfs2.h" "ac_cv_header_pvfs2_h" "$ac_includes_default" +if test "x$ac_cv_header_pvfs2_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_HCOLL_API_HCOLL_API_H 1 +#define HAVE_PVFS2_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -279431,21 +303729,21 @@ if test "$opal_check_package_header_happy" = "no"; then : # no go on the as is - reset the cache and try again - unset ac_cv_header_hcoll_api_hcoll_api_h + unset ac_cv_header_pvfs2_h fi fi if test "$opal_check_package_header_happy" = "no"; then : if test "$dir_prefix" != ""; then : - coll_hcoll_CPPFLAGS="$coll_hcoll_CPPFLAGS -I$dir_prefix/include" + fbtl_pvfs2_CPPFLAGS="$fbtl_pvfs2_CPPFLAGS -I$dir_prefix/include" CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" fi - for ac_header in hcoll/api/hcoll_api.h + for ac_header in pvfs2.h do : - ac_fn_c_check_header_mongrel "$LINENO" "hcoll/api/hcoll_api.h" "ac_cv_header_hcoll_api_hcoll_api_h" "$ac_includes_default" -if test "x$ac_cv_header_hcoll_api_hcoll_api_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "pvfs2.h" "ac_cv_header_pvfs2_h" "$ac_includes_default" +if test "x$ac_cv_header_pvfs2_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_HCOLL_API_HCOLL_API_H 1 +#define HAVE_PVFS2_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -279460,15 +303758,15 @@ # see comment above - unset ac_cv_search_hcoll_get_version + unset ac_cv_search_PVFS_util_resolve opal_check_package_lib_happy="no" - if test "" != ""; then : + if test "$ompi_check_pvfs2_libdir" != ""; then : # libdir was specified - search only there - coll_hcoll_LDFLAGS="$coll_hcoll_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hcoll_get_version" >&5 -$as_echo_n "checking for library containing hcoll_get_version... " >&6; } -if ${ac_cv_search_hcoll_get_version+:} false; then : + fbtl_pvfs2_LDFLAGS="$fbtl_pvfs2_LDFLAGS -L$ompi_check_pvfs2_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_pvfs2_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 +$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } +if ${ac_cv_search_PVFS_util_resolve+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -279481,16 +303779,16 @@ #ifdef __cplusplus extern "C" #endif -char hcoll_get_version (); +char PVFS_util_resolve (); int main () { -return hcoll_get_version (); +return PVFS_util_resolve (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_hcoll_libs; do +for ac_lib in '' pvfs2; do if test -z "$ac_lib"; then ac_res="none required" else @@ -279498,25 +303796,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_hcoll_get_version=$ac_res + ac_cv_search_PVFS_util_resolve=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_hcoll_get_version+:} false; then : + if ${ac_cv_search_PVFS_util_resolve+:} false; then : break fi done -if ${ac_cv_search_hcoll_get_version+:} false; then : +if ${ac_cv_search_PVFS_util_resolve+:} false; then : else - ac_cv_search_hcoll_get_version=no + ac_cv_search_PVFS_util_resolve=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hcoll_get_version" >&5 -$as_echo "$ac_cv_search_hcoll_get_version" >&6; } -ac_res=$ac_cv_search_hcoll_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 +$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } +ac_res=$ac_cv_search_PVFS_util_resolve if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -279525,22 +303823,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" - coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" - unset ac_cv_search_hcoll_get_version + LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" + fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" + unset ac_cv_search_PVFS_util_resolve fi else # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_hcoll_dir" + opal_check_package_libdir="$ompi_check_pvfs2_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hcoll_get_version" >&5 -$as_echo_n "checking for library containing hcoll_get_version... " >&6; } -if ${ac_cv_search_hcoll_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 +$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } +if ${ac_cv_search_PVFS_util_resolve+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -279553,16 +303851,16 @@ #ifdef __cplusplus extern "C" #endif -char hcoll_get_version (); +char PVFS_util_resolve (); int main () { -return hcoll_get_version (); +return PVFS_util_resolve (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_hcoll_libs; do +for ac_lib in '' pvfs2; do if test -z "$ac_lib"; then ac_res="none required" else @@ -279570,25 +303868,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_hcoll_get_version=$ac_res + ac_cv_search_PVFS_util_resolve=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_hcoll_get_version+:} false; then : + if ${ac_cv_search_PVFS_util_resolve+:} false; then : break fi done -if ${ac_cv_search_hcoll_get_version+:} false; then : +if ${ac_cv_search_PVFS_util_resolve+:} false; then : else - ac_cv_search_hcoll_get_version=no + ac_cv_search_PVFS_util_resolve=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hcoll_get_version" >&5 -$as_echo "$ac_cv_search_hcoll_get_version" >&6; } -ac_res=$ac_cv_search_hcoll_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 +$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } +ac_res=$ac_cv_search_PVFS_util_resolve if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -279598,21 +303896,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" - coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" - unset ac_cv_search_hcoll_get_version + LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" + fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" + unset ac_cv_search_PVFS_util_resolve fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - coll_hcoll_LDFLAGS="$coll_hcoll_LDFLAGS -L$opal_check_package_libdir/lib" + fbtl_pvfs2_LDFLAGS="$fbtl_pvfs2_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hcoll_get_version" >&5 -$as_echo_n "checking for library containing hcoll_get_version... " >&6; } -if ${ac_cv_search_hcoll_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 +$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } +if ${ac_cv_search_PVFS_util_resolve+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -279625,16 +303923,16 @@ #ifdef __cplusplus extern "C" #endif -char hcoll_get_version (); +char PVFS_util_resolve (); int main () { -return hcoll_get_version (); +return PVFS_util_resolve (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_hcoll_libs; do +for ac_lib in '' pvfs2; do if test -z "$ac_lib"; then ac_res="none required" else @@ -279642,25 +303940,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_hcoll_get_version=$ac_res + ac_cv_search_PVFS_util_resolve=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_hcoll_get_version+:} false; then : + if ${ac_cv_search_PVFS_util_resolve+:} false; then : break fi done -if ${ac_cv_search_hcoll_get_version+:} false; then : +if ${ac_cv_search_PVFS_util_resolve+:} false; then : else - ac_cv_search_hcoll_get_version=no + ac_cv_search_PVFS_util_resolve=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hcoll_get_version" >&5 -$as_echo "$ac_cv_search_hcoll_get_version" >&6; } -ac_res=$ac_cv_search_hcoll_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 +$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } +ac_res=$ac_cv_search_PVFS_util_resolve if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -279670,22 +303968,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" - coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" - unset ac_cv_search_hcoll_get_version + LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" + fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" + unset ac_cv_search_PVFS_util_resolve fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - coll_hcoll_LDFLAGS="$coll_hcoll_LDFLAGS -L$opal_check_package_libdir/lib64" + fbtl_pvfs2_LDFLAGS="$fbtl_pvfs2_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hcoll_get_version" >&5 -$as_echo_n "checking for library containing hcoll_get_version... " >&6; } -if ${ac_cv_search_hcoll_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 +$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } +if ${ac_cv_search_PVFS_util_resolve+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -279698,16 +303996,16 @@ #ifdef __cplusplus extern "C" #endif -char hcoll_get_version (); +char PVFS_util_resolve (); int main () { -return hcoll_get_version (); +return PVFS_util_resolve (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_hcoll_libs; do +for ac_lib in '' pvfs2; do if test -z "$ac_lib"; then ac_res="none required" else @@ -279715,25 +304013,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_hcoll_get_version=$ac_res + ac_cv_search_PVFS_util_resolve=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_hcoll_get_version+:} false; then : + if ${ac_cv_search_PVFS_util_resolve+:} false; then : break fi done -if ${ac_cv_search_hcoll_get_version+:} false; then : +if ${ac_cv_search_PVFS_util_resolve+:} false; then : else - ac_cv_search_hcoll_get_version=no + ac_cv_search_PVFS_util_resolve=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hcoll_get_version" >&5 -$as_echo "$ac_cv_search_hcoll_get_version" >&6; } -ac_res=$ac_cv_search_hcoll_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 +$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } +ac_res=$ac_cv_search_PVFS_util_resolve if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -279743,9 +304041,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" - coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" - unset ac_cv_search_hcoll_get_version + LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" + fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" + unset ac_cv_search_PVFS_util_resolve fi fi fi @@ -279842,12 +304140,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lib$ompi_check_hcoll_libs requires libnl v1 or v3" >&5 -$as_echo_n "checking if lib$ompi_check_hcoll_libs requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpvfs2 requires libnl v1 or v3" >&5 +$as_echo_n "checking if libpvfs2 requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void hcoll_get_version (void); +extern void PVFS_util_resolve (void); int main(int argc, char *argv[]) { - hcoll_get_version (); + PVFS_util_resolve (); return 0; } EOF @@ -279859,14 +304157,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:279862: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_hcoll_libs $LIBS $coll_hcoll_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_hcoll_libs $LIBS $coll_hcoll_LIBS 1>&5 2>&1 +echo "configure:304160: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpvfs2 $LIBS $fbtl_pvfs2_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpvfs2 $LIBS $fbtl_pvfs2_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:279869: \$? = $opal_status" >&5 + echo "configure:304167: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -279886,8 +304184,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib $ompi_check_hcoll_libs" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib $ompi_check_hcoll_libs" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib pvfs2" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib pvfs2" >&2;} fi @@ -279901,15 +304199,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, lib$ompi_check_hcoll_libs links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, lib$ompi_check_hcoll_libs links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpvfs2 links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libpvfs2 links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} libnl_sane=0 fi @@ -279918,19 +304216,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_hcoll_libs requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_hcoll_libs requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pvfs2 requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pvfs2 requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs $ompi_check_hcoll_libs" + opal_libnlv1_libs="$opal_libnlv1_libs pvfs2" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -280009,19 +304307,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_hcoll_libs requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_hcoll_libs requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpvfs2 requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpvfs2 requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs $ompi_check_hcoll_libs" + opal_libnlv3_libs="$opal_libnlv3_libs pvfs2" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -280162,11 +304460,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_hcoll_get_version" != "no" && - test "$ac_cv_search_hcoll_get_version" != "none required"; then : - coll_hcoll_LIBS="$ac_cv_search_hcoll_get_version " + if test "$ac_cv_search_PVFS_util_resolve" != "no" && + test "$ac_cv_search_PVFS_util_resolve" != "none required"; then : + fbtl_pvfs2_LIBS="$ac_cv_search_PVFS_util_resolve " else - coll_hcoll_LIBS="" + fbtl_pvfs2_LIBS="" fi opal_check_package_happy="yes" else @@ -280185,15 +304483,15 @@ # see comment above - unset ac_cv_search_hcoll_get_version + unset ac_cv_search_PVFS_util_resolve opal_check_package_lib_happy="no" - if test "" != ""; then : + if test "$ompi_check_pvfs2_libdir" != ""; then : # libdir was specified - search only there - coll_hcoll_LDFLAGS="$coll_hcoll_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hcoll_get_version" >&5 -$as_echo_n "checking for library containing hcoll_get_version... " >&6; } -if ${ac_cv_search_hcoll_get_version+:} false; then : + fbtl_pvfs2_LDFLAGS="$fbtl_pvfs2_LDFLAGS -L$ompi_check_pvfs2_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_pvfs2_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 +$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } +if ${ac_cv_search_PVFS_util_resolve+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -280206,16 +304504,16 @@ #ifdef __cplusplus extern "C" #endif -char hcoll_get_version (); +char PVFS_util_resolve (); int main () { -return hcoll_get_version (); +return PVFS_util_resolve (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_hcoll_libs; do +for ac_lib in '' pvfs2; do if test -z "$ac_lib"; then ac_res="none required" else @@ -280223,25 +304521,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_hcoll_get_version=$ac_res + ac_cv_search_PVFS_util_resolve=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_hcoll_get_version+:} false; then : + if ${ac_cv_search_PVFS_util_resolve+:} false; then : break fi done -if ${ac_cv_search_hcoll_get_version+:} false; then : +if ${ac_cv_search_PVFS_util_resolve+:} false; then : else - ac_cv_search_hcoll_get_version=no + ac_cv_search_PVFS_util_resolve=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hcoll_get_version" >&5 -$as_echo "$ac_cv_search_hcoll_get_version" >&6; } -ac_res=$ac_cv_search_hcoll_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 +$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } +ac_res=$ac_cv_search_PVFS_util_resolve if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -280250,22 +304548,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" - coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" - unset ac_cv_search_hcoll_get_version + LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" + fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" + unset ac_cv_search_PVFS_util_resolve fi else # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_hcoll_dir" + opal_check_package_libdir="$ompi_check_pvfs2_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hcoll_get_version" >&5 -$as_echo_n "checking for library containing hcoll_get_version... " >&6; } -if ${ac_cv_search_hcoll_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 +$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } +if ${ac_cv_search_PVFS_util_resolve+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -280278,16 +304576,16 @@ #ifdef __cplusplus extern "C" #endif -char hcoll_get_version (); +char PVFS_util_resolve (); int main () { -return hcoll_get_version (); +return PVFS_util_resolve (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_hcoll_libs; do +for ac_lib in '' pvfs2; do if test -z "$ac_lib"; then ac_res="none required" else @@ -280295,25 +304593,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_hcoll_get_version=$ac_res + ac_cv_search_PVFS_util_resolve=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_hcoll_get_version+:} false; then : + if ${ac_cv_search_PVFS_util_resolve+:} false; then : break fi done -if ${ac_cv_search_hcoll_get_version+:} false; then : +if ${ac_cv_search_PVFS_util_resolve+:} false; then : else - ac_cv_search_hcoll_get_version=no + ac_cv_search_PVFS_util_resolve=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hcoll_get_version" >&5 -$as_echo "$ac_cv_search_hcoll_get_version" >&6; } -ac_res=$ac_cv_search_hcoll_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 +$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } +ac_res=$ac_cv_search_PVFS_util_resolve if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -280323,21 +304621,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" - coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" - unset ac_cv_search_hcoll_get_version + LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" + fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" + unset ac_cv_search_PVFS_util_resolve fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - coll_hcoll_LDFLAGS="$coll_hcoll_LDFLAGS -L$opal_check_package_libdir/lib" + fbtl_pvfs2_LDFLAGS="$fbtl_pvfs2_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hcoll_get_version" >&5 -$as_echo_n "checking for library containing hcoll_get_version... " >&6; } -if ${ac_cv_search_hcoll_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 +$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } +if ${ac_cv_search_PVFS_util_resolve+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -280350,16 +304648,16 @@ #ifdef __cplusplus extern "C" #endif -char hcoll_get_version (); +char PVFS_util_resolve (); int main () { -return hcoll_get_version (); +return PVFS_util_resolve (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_hcoll_libs; do +for ac_lib in '' pvfs2; do if test -z "$ac_lib"; then ac_res="none required" else @@ -280367,25 +304665,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_hcoll_get_version=$ac_res + ac_cv_search_PVFS_util_resolve=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_hcoll_get_version+:} false; then : + if ${ac_cv_search_PVFS_util_resolve+:} false; then : break fi done -if ${ac_cv_search_hcoll_get_version+:} false; then : +if ${ac_cv_search_PVFS_util_resolve+:} false; then : else - ac_cv_search_hcoll_get_version=no + ac_cv_search_PVFS_util_resolve=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hcoll_get_version" >&5 -$as_echo "$ac_cv_search_hcoll_get_version" >&6; } -ac_res=$ac_cv_search_hcoll_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 +$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } +ac_res=$ac_cv_search_PVFS_util_resolve if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -280395,22 +304693,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" - coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" - unset ac_cv_search_hcoll_get_version + LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" + fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" + unset ac_cv_search_PVFS_util_resolve fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - coll_hcoll_LDFLAGS="$coll_hcoll_LDFLAGS -L$opal_check_package_libdir/lib64" + fbtl_pvfs2_LDFLAGS="$fbtl_pvfs2_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hcoll_get_version" >&5 -$as_echo_n "checking for library containing hcoll_get_version... " >&6; } -if ${ac_cv_search_hcoll_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 +$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } +if ${ac_cv_search_PVFS_util_resolve+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -280423,16 +304721,16 @@ #ifdef __cplusplus extern "C" #endif -char hcoll_get_version (); +char PVFS_util_resolve (); int main () { -return hcoll_get_version (); +return PVFS_util_resolve (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_hcoll_libs; do +for ac_lib in '' pvfs2; do if test -z "$ac_lib"; then ac_res="none required" else @@ -280440,25 +304738,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_hcoll_get_version=$ac_res + ac_cv_search_PVFS_util_resolve=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_hcoll_get_version+:} false; then : + if ${ac_cv_search_PVFS_util_resolve+:} false; then : break fi done -if ${ac_cv_search_hcoll_get_version+:} false; then : +if ${ac_cv_search_PVFS_util_resolve+:} false; then : else - ac_cv_search_hcoll_get_version=no + ac_cv_search_PVFS_util_resolve=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hcoll_get_version" >&5 -$as_echo "$ac_cv_search_hcoll_get_version" >&6; } -ac_res=$ac_cv_search_hcoll_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 +$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } +ac_res=$ac_cv_search_PVFS_util_resolve if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -280468,9 +304766,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" - coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" - unset ac_cv_search_hcoll_get_version + LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" + fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" + unset ac_cv_search_PVFS_util_resolve fi fi fi @@ -280567,12 +304865,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lib$ompi_check_hcoll_libs requires libnl v1 or v3" >&5 -$as_echo_n "checking if lib$ompi_check_hcoll_libs requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpvfs2 requires libnl v1 or v3" >&5 +$as_echo_n "checking if libpvfs2 requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void hcoll_get_version (void); +extern void PVFS_util_resolve (void); int main(int argc, char *argv[]) { - hcoll_get_version (); + PVFS_util_resolve (); return 0; } EOF @@ -280584,14 +304882,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:280587: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_hcoll_libs $LIBS $coll_hcoll_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_hcoll_libs $LIBS $coll_hcoll_LIBS 1>&5 2>&1 +echo "configure:304885: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpvfs2 $LIBS $fbtl_pvfs2_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpvfs2 $LIBS $fbtl_pvfs2_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:280594: \$? = $opal_status" >&5 + echo "configure:304892: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -280611,8 +304909,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib $ompi_check_hcoll_libs" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib $ompi_check_hcoll_libs" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib pvfs2" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib pvfs2" >&2;} fi @@ -280626,15 +304924,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, lib$ompi_check_hcoll_libs links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, lib$ompi_check_hcoll_libs links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpvfs2 links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libpvfs2 links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} libnl_sane=0 fi @@ -280643,19 +304941,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_hcoll_libs requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_hcoll_libs requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pvfs2 requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pvfs2 requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs $ompi_check_hcoll_libs" + opal_libnlv1_libs="$opal_libnlv1_libs pvfs2" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -280734,19 +305032,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_hcoll_libs requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_hcoll_libs requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpvfs2 requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpvfs2 requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_hcoll_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_hcoll_libs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs $ompi_check_hcoll_libs" + opal_libnlv3_libs="$opal_libnlv3_libs pvfs2" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -280887,11 +305185,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_hcoll_get_version" != "no" && - test "$ac_cv_search_hcoll_get_version" != "none required"; then : - coll_hcoll_LIBS="$ac_cv_search_hcoll_get_version " + if test "$ac_cv_search_PVFS_util_resolve" != "no" && + test "$ac_cv_search_PVFS_util_resolve" != "none required"; then : + fbtl_pvfs2_LIBS="$ac_cv_search_PVFS_util_resolve " else - coll_hcoll_LIBS="" + fbtl_pvfs2_LIBS="" fi opal_check_package_happy="yes" else @@ -280926,95 +305224,42 @@ if test "$opal_check_package_happy" = "yes"; then : - ompi_check_hcoll_happy="yes" + ompi_check_pvfs2_happy="yes" else - coll_hcoll_CPPFLAGS="$opal_check_package_coll_hcoll_orig_CPPFLAGS" - coll_hcoll_LDFLAGS="$opal_check_package_coll_hcoll_orig_LDFLAGS" - coll_hcoll_LIBS="$opal_check_package_coll_hcoll_orig_LIBS" - ompi_check_hcoll_happy="no" -fi - - CPPFLAGS="$opal_check_package_coll_hcoll_save_CPPFLAGS" - LDFLAGS="$opal_check_package_coll_hcoll_save_LDFLAGS" - LIBS="$opal_check_package_coll_hcoll_save_LIBS" - - - if test "$ompi_check_hcoll_happy" = "yes"; then : - - CPPFLAGS=$coll_hcoll_CPPFLAGS - LDFLAGS=$coll_hcoll_LDFLAGS - LIBS=$coll_hcoll_LIBS - for ac_func in hcoll_context_free -do : - ac_fn_c_check_func "$LINENO" "hcoll_context_free" "ac_cv_func_hcoll_context_free" -if test "x$ac_cv_func_hcoll_context_free" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_HCOLL_CONTEXT_FREE 1 -_ACEOF - + fbtl_pvfs2_CPPFLAGS="$opal_check_package_fbtl_pvfs2_orig_CPPFLAGS" + fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" + fbtl_pvfs2_LIBS="$opal_check_package_fbtl_pvfs2_orig_LIBS" + ompi_check_pvfs2_happy="no" fi -done + CPPFLAGS="$opal_check_package_fbtl_pvfs2_save_CPPFLAGS" + LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" + LIBS="$opal_check_package_fbtl_pvfs2_save_LIBS" -fi - - CPPFLAGS=$CPPFLAGS_save - LDFLAGS=$LDFLAGS_save - LIBS=$LIBS_save -else - ompi_check_hcoll_happy=no -fi - if test "$ompi_check_hcoll_happy" = "yes" && test "$enable_progress_threads" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: hcoll driver does not currently support progress threads. Disabling HCOLL." >&5 -$as_echo "$as_me: WARNING: hcoll driver does not currently support progress threads. Disabling HCOLL." >&2;} - ompi_check_hcoll_happy="no" fi - if test "$ompi_check_hcoll_happy" = "yes"; then : - coll_hcoll_happy="yes" + if test "$ompi_check_pvfs2_happy" = "yes"; then : + fbtl_pvfs2_happy="yes" else - if test ! -z "$with_hcoll" && test "$with_hcoll" != "no"; then : - as_fn_error $? "HCOLL support requested but not found. Aborting" "$LINENO" 5 + if test ! -z "$with_pvfs2" && test "$with_pvfs2" != "no"; then : + echo PVFS2 support not found fi - coll_hcoll_happy="no" + fbtl_pvfs2_happy="no" fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - if test "$coll_hcoll_happy" = "yes"; then : - coll_hcoll_WRAPPER_EXTRA_LDFLAGS="$coll_hcoll_LDFLAGS" - coll_hcoll_CPPFLAGS="$coll_hcoll_CPPFLAGS" - coll_hcoll_WRAPPER_EXTRA_LIBS="$coll_hcoll_LIBS" - should_build=$should_build + if test "$fbtl_pvfs2_happy" = "yes"; then : + should_build=$should_build else should_build=0 fi - # substitute in the things needed to build hcoll + # substitute in the things needed to build pvfs2 + @@ -281026,45 +305271,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/coll/hcoll/post_configure.sh" + infile="$srcdir/ompi/mca/fbtl/pvfs2/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components hcoll" + all_components="$all_components pvfs2" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components hcoll" + dso_components="$dso_components pvfs2" else - if test "coll" = "common"; then + if test "fbtl" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/coll/hcoll/lib${OMPI_LIB_PREFIX}mca_coll_hcoll.la $static_ltlibs" + static_ltlibs="mca/fbtl/pvfs2/lib${OMPI_LIB_PREFIX}mca_fbtl_pvfs2.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/coll/hcoll/libmca_coll_hcoll.la $static_ltlibs" + static_ltlibs="mca/fbtl/pvfs2/libmca_fbtl_pvfs2.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_coll_hcoll_component;" >> $outfile.extern - echo " &mca_coll_hcoll_component, " >> $outfile.struct - static_components="$static_components hcoll" + echo "extern const mca_base_component_t mca_fbtl_pvfs2_component;" >> $outfile.extern + echo " &mca_fbtl_pvfs2_component, " >> $outfile.struct + static_components="$static_components pvfs2" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:hcoll can compile" >&5 -$as_echo_n "checking if MCA component coll:hcoll can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fbtl:pvfs2 can compile" >&5 +$as_echo_n "checking if MCA component fbtl:pvfs2 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_coll" = "hcoll" ; then + if test "$DIRECT_fbtl" = "pvfs2" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_fbtl_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** coll component hcoll was supposed to be direct-called, but +as_fn_error $? "*** fbtl component pvfs2 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -281072,8 +305317,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_coll" = "hcoll" ; then -as_fn_error $? "*** coll component hcoll was supposed to be direct-called, but + if test "$DIRECT_fbtl" = "pvfs2" ; then +as_fn_error $? "*** fbtl component pvfs2 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -281088,7 +305333,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$coll_hcoll_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$fbtl_pvfs2_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -281128,7 +305373,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_hcoll_LDFLAGS; do + for arg in $fbtl_pvfs2_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -281209,7 +305454,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_hcoll_WRAPPER_EXTRA_LDFLAGS; do + for arg in $fbtl_pvfs2_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -281251,7 +305496,7 @@ fi - if test "$coll_hcoll_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$fbtl_pvfs2_WRAPPER_EXTRA_LIBS" = ""; then : @@ -281291,7 +305536,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_hcoll_LIBS; do + for arg in $fbtl_pvfs2_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -281372,7 +305617,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_hcoll_WRAPPER_EXTRA_LIBS; do + for arg in $fbtl_pvfs2_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -281417,13 +305662,636 @@ fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$coll_hcoll_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$fbtl_pvfs2_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $fbtl_pvfs2_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fbtl_pvfs2_WRAPPER_EXTRA_CPPFLAGS ($fbtl_pvfs2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring fbtl_pvfs2_WRAPPER_EXTRA_CPPFLAGS ($fbtl_pvfs2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fbtl:pvfs2 can compile" >&5 +$as_echo_n "checking if MCA component fbtl:pvfs2 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_fbtl" = "pvfs2" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pvfs2\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pvfs2\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_fbtl" ; then + if test "$DIRECT_fbtl" = "pvfs2" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pvfs2\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pvfs2\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components pvfs2" +fi + + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_fbtl_pvfs2_DSO=1 +else + BUILD_ompi_fbtl_pvfs2_DSO=0 +fi + if test "$BUILD_ompi_fbtl_pvfs2_DSO" = "1"; then + MCA_BUILD_ompi_fbtl_pvfs2_DSO_TRUE= + MCA_BUILD_ompi_fbtl_pvfs2_DSO_FALSE='#' +else + MCA_BUILD_ompi_fbtl_pvfs2_DSO_TRUE='#' + MCA_BUILD_ompi_fbtl_pvfs2_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + + + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "$want_io_ompio" != "0"; then : + + for component_path in $srcdir/ompi/mca/fbtl/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component fbtl:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/ompi/mca/fbtl/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_fbtl" ; then + if test "$DIRECT_fbtl" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_fbtl" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_fbtl_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_fbtl" + str="SHARED_COMPONENT=\$DSO_fbtl_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_fbtl" + str="STATIC_COMPONENT=\$STATIC_fbtl_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fbtl:$component compile mode" >&5 +$as_echo_n "checking for MCA component fbtl:$component compile mode... " >&6; } + if test "$DIRECT_fbtl" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + +# +# Invoke configure in a specific subdirectory. +# +# ompi/mca/fbtl/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="ompi/mca/fbtl/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/ompi/mca/fbtl/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + fbtl_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + fbtl_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/fbtl/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "fbtl" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/fbtl/$component/lib${OMPI_LIB_PREFIX}mca_fbtl_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/fbtl/$component/libmca_fbtl_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_fbtl_$component_component;" >> $outfile.extern + echo " &mca_fbtl_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fbtl:$component can compile" >&5 +$as_echo_n "checking if MCA component fbtl:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_fbtl" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_fbtl_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** fbtl component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_fbtl" = "$component" ; then +as_fn_error $? "*** fbtl component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$fbtl_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + +str="line=\$fbtl_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -281463,21 +306331,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_hcoll_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -281504,80 +306372,247 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_hcoll_WRAPPER_EXTRA_CPPFLAGS ($coll_hcoll_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring coll_hcoll_WRAPPER_EXTRA_CPPFLAGS ($coll_hcoll_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + fi -else + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:hcoll can compile" >&5 -$as_echo_n "checking if MCA component coll:hcoll can compile... " >&6; } + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fbtl:$component can compile" >&5 +$as_echo_n "checking if MCA component fbtl:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_coll" = "hcoll" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hcoll\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"hcoll\" failed to configure properly" >&2;} + if test "$with_fbtl" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "hcoll" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hcoll\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"hcoll\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_fbtl" ; then + if test "$DIRECT_fbtl" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components hcoll" + fi + fi + done + fi + MCA_ompi_fbtl_ALL_COMPONENTS="$all_components" + MCA_ompi_fbtl_STATIC_COMPONENTS="$static_components" + MCA_ompi_fbtl_DSO_COMPONENTS="$dso_components" + MCA_ompi_fbtl_STATIC_LTLIBS="$static_ltlibs" + - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_coll_hcoll_DSO=1 -else - BUILD_ompi_coll_hcoll_DSO=0 -fi - if test "$BUILD_ompi_coll_hcoll_DSO" = "1"; then - MCA_BUILD_ompi_coll_hcoll_DSO_TRUE= - MCA_BUILD_ompi_coll_hcoll_DSO_FALSE='#' -else - MCA_BUILD_ompi_coll_hcoll_DSO_TRUE='#' - MCA_BUILD_ompi_coll_hcoll_DSO_FALSE= -fi - if test "$should_build" = "1"; then : - components_last_result=1 + + + MCA_ompi_fbtl_ALL_SUBDIRS= + for item in $all_components ; do + MCA_ompi_fbtl_ALL_SUBDIRS="$MCA_ompi_fbtl_ALL_SUBDIRS mca/fbtl/$item" + done + + + + MCA_ompi_fbtl_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_ompi_fbtl_STATIC_SUBDIRS="$MCA_ompi_fbtl_STATIC_SUBDIRS mca/fbtl/$item" + done + + + + MCA_ompi_fbtl_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_ompi_fbtl_DSO_SUBDIRS="$MCA_ompi_fbtl_DSO_SUBDIRS mca/fbtl/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "fbtl" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS fcoll" + MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/fcoll" + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_fcoll_ALL_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_fcoll_DSO_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_fcoll_STATIC_SUBDIRS)" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/fcoll/libmca_fcoll.la" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_fcoll_STATIC_LTLIBS)" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in want_io_ompio; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"want_io_ompio\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + if test "$enable_io_ompio" != "no"; then : + want_io_ompio=1 else - components_last_result=0 + want_io_ompio=0 fi - unset compile_mode + opal_show_subsubtitle "Configuring MCA framework fcoll" - opal_show_subsubsubtitle "MCA component coll:monitoring (m4 configuration macro)" + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=ompi/mca/fcoll/base + as_dir=$outdir; as_fn_mkdir_p + # emit Makefile rule + ac_config_files="$ac_config_files ompi/mca/fcoll/Makefile" - component_path="$srcdir/ompi/mca/coll/monitoring" + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework fcoll" >&5 +$as_echo_n "checking for no configure components in framework fcoll... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: dynamic, dynamic_gen2, individual, two_phase, vulcan" >&5 +$as_echo "dynamic, dynamic_gen2, individual, two_phase, vulcan" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework fcoll" >&5 +$as_echo_n "checking for m4 configure components in framework fcoll... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + opal_show_subsubsubtitle "MCA component fcoll:dynamic (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=$want_io_ompio" + + + + component_path="$srcdir/ompi/mca/fcoll/dynamic" want_component=0 # build if: @@ -281609,8 +306644,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "monitoring" ; then + if test ! -z "$DIRECT_fcoll" ; then + if test "$DIRECT_fcoll" = "dynamic" ; then want_component=1 else want_component=0 @@ -281619,27 +306654,25 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_coll" = "1"; then : + if test "$DISABLE_fcoll" = "1"; then : want_component=0 fi - if test "$DISABLE_coll_monitoring" = "1"; then : + if test "$DISABLE_fcoll_dynamic" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=$want_io_ompio else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_coll" - SHARED_COMPONENT="$DSO_coll_monitoring" + SHARED_FRAMEWORK="$DSO_fcoll" + SHARED_COMPONENT="$DSO_fcoll_dynamic" - STATIC_FRAMEWORK="$STATIC_coll" - STATIC_COMPONENT="$STATIC_coll_monitoring" + STATIC_FRAMEWORK="$STATIC_fcoll" + STATIC_COMPONENT="$STATIC_fcoll_dynamic" shared_mode_override=static @@ -281657,9 +306690,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:monitoring compile mode" >&5 -$as_echo_n "checking for MCA component coll:monitoring compile mode... " >&6; } - if test "$DIRECT_coll" = "monitoring" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fcoll:dynamic compile mode" >&5 +$as_echo_n "checking for MCA component fcoll:dynamic compile mode... " >&6; } + if test "$DIRECT_fcoll" = "dynamic" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -281667,65 +306700,53 @@ $as_echo "$compile_mode" >&6; } fi + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # try to configure the component - - ac_config_files="$ac_config_files ompi/mca/coll/monitoring/Makefile" - - - if test "$MCA_BUILD_ompi_common_monitoring_DSO_TRUE" = ''; then : - should_build=$should_build -else - should_build=0 -fi - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/coll/monitoring/post_configure.sh" + infile="$srcdir/ompi/mca/fcoll/dynamic/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components monitoring" + all_components="$all_components dynamic" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components monitoring" + dso_components="$dso_components dynamic" else - if test "coll" = "common"; then + if test "fcoll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/coll/monitoring/lib${OMPI_LIB_PREFIX}mca_coll_monitoring.la $static_ltlibs" + static_ltlibs="mca/fcoll/dynamic/lib${OMPI_LIB_PREFIX}mca_fcoll_dynamic.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/coll/monitoring/libmca_coll_monitoring.la $static_ltlibs" + static_ltlibs="mca/fcoll/dynamic/libmca_fcoll_dynamic.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_coll_monitoring_component;" >> $outfile.extern - echo " &mca_coll_monitoring_component, " >> $outfile.struct - static_components="$static_components monitoring" + echo "extern const mca_base_component_t mca_fcoll_dynamic_component;" >> $outfile.extern + echo " &mca_fcoll_dynamic_component, " >> $outfile.struct + static_components="$static_components dynamic" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:monitoring can compile" >&5 -$as_echo_n "checking if MCA component coll:monitoring can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:dynamic can compile" >&5 +$as_echo_n "checking if MCA component fcoll:dynamic can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_coll" = "monitoring" ; then + if test "$DIRECT_fcoll" = "dynamic" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_fcoll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** coll component monitoring was supposed to be direct-called, but +as_fn_error $? "*** fcoll component dynamic was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -281733,8 +306754,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_coll" = "monitoring" ; then -as_fn_error $? "*** coll component monitoring was supposed to be direct-called, but + if test "$DIRECT_fcoll" = "dynamic" ; then +as_fn_error $? "*** fcoll component dynamic was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -281749,7 +306770,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$coll_monitoring_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$fcoll_dynamic_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -281789,7 +306810,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_monitoring_LDFLAGS; do + for arg in $fcoll_dynamic_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -281870,7 +306891,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_monitoring_WRAPPER_EXTRA_LDFLAGS; do + for arg in $fcoll_dynamic_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -281912,7 +306933,7 @@ fi - if test "$coll_monitoring_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$fcoll_dynamic_WRAPPER_EXTRA_LIBS" = ""; then : @@ -281952,7 +306973,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_monitoring_LIBS; do + for arg in $fcoll_dynamic_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -282033,7 +307054,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_monitoring_WRAPPER_EXTRA_LIBS; do + for arg in $fcoll_dynamic_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -282081,7 +307102,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$coll_monitoring_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$fcoll_dynamic_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -282124,7 +307145,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_monitoring_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $fcoll_dynamic_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -282167,78 +307188,69 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_monitoring_WRAPPER_EXTRA_CPPFLAGS ($coll_monitoring_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring coll_monitoring_WRAPPER_EXTRA_CPPFLAGS ($coll_monitoring_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fcoll_dynamic_WRAPPER_EXTRA_CPPFLAGS ($fcoll_dynamic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring fcoll_dynamic_WRAPPER_EXTRA_CPPFLAGS ($fcoll_dynamic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:monitoring can compile" >&5 -$as_echo_n "checking if MCA component coll:monitoring can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:dynamic can compile" >&5 +$as_echo_n "checking if MCA component fcoll:dynamic can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_coll" = "monitoring" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"monitoring\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"monitoring\" failed to configure properly" >&2;} + if test "$with_fcoll" = "dynamic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dynamic\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"dynamic\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "monitoring" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"monitoring\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"monitoring\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_fcoll" ; then + if test "$DIRECT_fcoll" = "dynamic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dynamic\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"dynamic\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components monitoring" -fi - - + # add component to all component list + all_components="$all_components dynamic" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_coll_monitoring_DSO=1 -else - BUILD_ompi_coll_monitoring_DSO=0 -fi - if test "$BUILD_ompi_coll_monitoring_DSO" = "1"; then - MCA_BUILD_ompi_coll_monitoring_DSO_TRUE= - MCA_BUILD_ompi_coll_monitoring_DSO_FALSE='#' -else - MCA_BUILD_ompi_coll_monitoring_DSO_TRUE='#' - MCA_BUILD_ompi_coll_monitoring_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 + if test "$compile_mode" = "dso" ; then + BUILD_ompi_fcoll_dynamic_DSO=1 + else + BUILD_ompi_fcoll_dynamic_DSO=0 + fi + if test "$BUILD_ompi_fcoll_dynamic_DSO" = "1"; then + MCA_BUILD_ompi_fcoll_dynamic_DSO_TRUE= + MCA_BUILD_ompi_fcoll_dynamic_DSO_FALSE='#' else - components_last_result=0 + MCA_BUILD_ompi_fcoll_dynamic_DSO_TRUE='#' + MCA_BUILD_ompi_fcoll_dynamic_DSO_FALSE= fi - unset compile_mode - + ac_config_files="$ac_config_files ompi/mca/fcoll/dynamic/Makefile" + unset compile_mode - opal_show_subsubsubtitle "MCA component coll:portals4 (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component fcoll:dynamic_gen2 (no configuration)" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=$want_io_ompio" - component_path="$srcdir/ompi/mca/coll/portals4" + component_path="$srcdir/ompi/mca/fcoll/dynamic_gen2" want_component=0 # build if: @@ -282270,8 +307282,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "portals4" ; then + if test ! -z "$DIRECT_fcoll" ; then + if test "$DIRECT_fcoll" = "dynamic_gen2" ; then want_component=1 else want_component=0 @@ -282280,27 +307292,25 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_coll" = "1"; then : + if test "$DISABLE_fcoll" = "1"; then : want_component=0 fi - if test "$DISABLE_coll_portals4" = "1"; then : + if test "$DISABLE_fcoll_dynamic_gen2" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=$want_io_ompio else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_coll" - SHARED_COMPONENT="$DSO_coll_portals4" + SHARED_FRAMEWORK="$DSO_fcoll" + SHARED_COMPONENT="$DSO_fcoll_dynamic_gen2" - STATIC_FRAMEWORK="$STATIC_coll" - STATIC_COMPONENT="$STATIC_coll_portals4" + STATIC_FRAMEWORK="$STATIC_fcoll" + STATIC_COMPONENT="$STATIC_fcoll_dynamic_gen2" shared_mode_override=static @@ -282318,9 +307328,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:portals4 compile mode" >&5 -$as_echo_n "checking for MCA component coll:portals4 compile mode... " >&6; } - if test "$DIRECT_coll" = "portals4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fcoll:dynamic_gen2 compile mode" >&5 +$as_echo_n "checking for MCA component fcoll:dynamic_gen2 compile mode... " >&6; } + if test "$DIRECT_fcoll" = "dynamic_gen2" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -282328,130 +307338,77 @@ $as_echo "$compile_mode" >&6; } fi + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # try to configure the component - - ac_config_files="$ac_config_files ompi/mca/coll/portals4/Makefile" - - - - if test -z "$ompi_check_portals4_happy" ; then - -# Check whether --with-portals4 was given. -if test "${with_portals4+set}" = set; then : - withval=$with_portals4; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-portals4 value" >&5 -$as_echo_n "checking --with-portals4 value... " >&6; } - if test "$with_portals4" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-portals4)" >&5 -$as_echo "simple no (specified --without-portals4)" >&6; } -else - if test "$with_portals4" = "yes" || test "x$with_portals4" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_portals4"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_portals4 not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_portals4 not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_portals4/include/portals4.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_portals4/include/portals4.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_portals4/include/portals4.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_portals4)" >&5 -$as_echo "sanity check ok ($with_portals4)" >&6; } - -fi - - -fi - - -fi - - -fi - - -# Check whether --with-portals4-libdir was given. -if test "${with_portals4_libdir+set}" = set; then : - withval=$with_portals4_libdir; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-portals4-libdir value" >&5 -$as_echo_n "checking --with-portals4-libdir value... " >&6; } - if test "$with_portals4_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-portals4-libdir)" >&5 -$as_echo "simple no (specified --without-portals4-libdir)" >&6; } -else - if test "$with_portals4_libdir" = "yes" || test "x$with_portals4_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_portals4_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_portals4_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_portals4_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_portals4_libdir/libportals.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_portals4_libdir/libportals.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_portals4_libdir/libportals.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_portals4_libdir)" >&5 -$as_echo "sanity check ok ($with_portals4_libdir)" >&6; } - -fi - - -fi - - -fi - - -fi + if test "$should_build" = "1" ; then - ompi_check_portals4_coll_portals4_save_CPPFLAGS="$CPPFLAGS" - ompi_check_portals4_coll_portals4_save_LDFLAGS="$LDFLAGS" - ompi_check_portals4_coll_portals4_save_LIBS="$LIBS" - if test "$with_portals4" != "no"; then : - if test ! -z "$with_portals4" && test "$with_portals4" != "yes"; then : - ompi_check_portals4_dir="$with_portals4" -fi - if test ! -z "$with_portals4_libdir" && test "$with_portals4_libdir" != "yes"; then : - ompi_check_portals4_libdir="$with_portals4_libdir" -fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/fcoll/dynamic_gen2/post_configure.sh" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components dynamic_gen2" - opal_check_package_opal_check_portals4_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_opal_check_portals4_save_LDFLAGS="$LDFLAGS" - opal_check_package_opal_check_portals4_save_LIBS="$LIBS" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components dynamic_gen2" + else + if test "fcoll" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/fcoll/dynamic_gen2/lib${OMPI_LIB_PREFIX}mca_fcoll_dynamic_gen2.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/fcoll/dynamic_gen2/libmca_fcoll_dynamic_gen2.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_fcoll_dynamic_gen2_component;" >> $outfile.extern + echo " &mca_fcoll_dynamic_gen2_component, " >> $outfile.struct + static_components="$static_components dynamic_gen2" + fi - opal_check_package_opal_check_portals4_orig_CPPFLAGS="$opal_check_portals4_CPPFLAGS" - opal_check_package_opal_check_portals4_orig_LDFLAGS="$opal_check_portals4_LDFLAGS" - opal_check_package_opal_check_portals4_orig_LIBS="$opal_check_portals4_LIBS" + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:dynamic_gen2 can compile" >&5 +$as_echo_n "checking if MCA component fcoll:dynamic_gen2 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_fcoll" = "dynamic_gen2" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_fcoll_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** fcoll component dynamic_gen2 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_fcoll" = "dynamic_gen2" ; then +as_fn_error $? "*** fcoll component dynamic_gen2 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$fcoll_dynamic_gen2_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -282464,7 +307421,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -282483,7 +307440,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -282491,357 +307448,130 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_portals4_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_portals4_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in portals4.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "portals4.h" "ac_cv_header_portals4_h" "$ac_includes_default" -if test "x$ac_cv_header_portals4_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PORTALS4_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_portals4_h + for arg in $fcoll_dynamic_gen2_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - opal_check_portals4_CPPFLAGS="$opal_check_portals4_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - for ac_header in portals4.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "portals4.h" "ac_cv_header_portals4_h" "$ac_includes_default" -if test "x$ac_cv_header_portals4_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PORTALS4_H 1 -_ACEOF - opal_check_package_header_happy="yes" fi + done -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_PtlLEAppend - opal_check_package_lib_happy="no" - if test "$ompi_check_portals4_libdir" != ""; then : - # libdir was specified - search only there - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$ompi_check_portals4_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_portals4_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PtlLEAppend (); -int -main () -{ -return PtlLEAppend (); - ; - return 0; -} -_ACEOF -for ac_lib in '' portals; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : - break -fi -done -if ${ac_cv_search_PtlLEAppend+:} false; then : + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -else - ac_cv_search_PtlLEAppend=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_portals4_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PtlLEAppend (); -int -main () -{ -return PtlLEAppend (); - ; - return 0; -} -_ACEOF -for ac_lib in '' portals; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : - break -fi -done -if ${ac_cv_search_PtlLEAppend+:} false; then : else - ac_cv_search_PtlLEAppend=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend -fi -fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PtlLEAppend (); -int -main () -{ -return PtlLEAppend (); - ; - return 0; -} -_ACEOF -for ac_lib in '' portals; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : - break -fi -done -if ${ac_cv_search_PtlLEAppend+:} false; then : + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -else - ac_cv_search_PtlLEAppend=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend -fi -fi -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PtlLEAppend (); -int -main () -{ -return PtlLEAppend (); - ; - return 0; -} -_ACEOF -for ac_lib in '' portals; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : - break -fi -done -if ${ac_cv_search_PtlLEAppend+:} false; then : + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -else - ac_cv_search_PtlLEAppend=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + for arg in $fcoll_dynamic_gen2_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$fcoll_dynamic_gen2_WRAPPER_EXTRA_LIBS" = ""; then : @@ -282854,7 +307584,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -282873,16 +307603,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $fcoll_dynamic_gen2_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -282895,7 +307665,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -282914,7 +307684,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -282922,276 +307692,418 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $fcoll_dynamic_gen2_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libportals requires libnl v1 or v3" >&5 -$as_echo_n "checking if libportals requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void PtlLEAppend (void); -int main(int argc, char *argv[]) { - PtlLEAppend (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:282949: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:282956: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib portals" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib portals" >&2;} + fi -fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$fcoll_dynamic_gen2_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&2;} + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - libnl_sane=0 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&2;} + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs portals" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs + for arg in $fcoll_dynamic_gen2_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Loop over every token we've seen so far + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fcoll_dynamic_gen2_WRAPPER_EXTRA_CPPFLAGS ($fcoll_dynamic_gen2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring fcoll_dynamic_gen2_WRAPPER_EXTRA_CPPFLAGS ($fcoll_dynamic_gen2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - # Check the ending condition + else - opal_done="`expr $opal_i \>= $opal_count`" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:dynamic_gen2 can compile" >&5 +$as_echo_n "checking if MCA component fcoll:dynamic_gen2 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Increment the counter + # If this component was requested as the default for this + # type, then abort. + if test "$with_fcoll" = "dynamic_gen2" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dynamic_gen2\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"dynamic_gen2\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_i="`expr $opal_i + 1`" - done + if test ! -z "$DIRECT_fcoll" ; then + if test "$DIRECT_fcoll" = "dynamic_gen2" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dynamic_gen2\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"dynamic_gen2\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # If we didn't find the token, add it to the "array" + # add component to all component list + all_components="$all_components dynamic_gen2" + fi - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_ompi_fcoll_dynamic_gen2_DSO=1 else - opal_i="`expr $opal_i - 1`" + BUILD_ompi_fcoll_dynamic_gen2_DSO=0 fi -done + if test "$BUILD_ompi_fcoll_dynamic_gen2_DSO" = "1"; then + MCA_BUILD_ompi_fcoll_dynamic_gen2_DSO_TRUE= + MCA_BUILD_ompi_fcoll_dynamic_gen2_DSO_FALSE='#' +else + MCA_BUILD_ompi_fcoll_dynamic_gen2_DSO_TRUE='#' + MCA_BUILD_ompi_fcoll_dynamic_gen2_DSO_FALSE= +fi -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + ac_config_files="$ac_config_files ompi/mca/fcoll/dynamic_gen2/Makefile" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + unset compile_mode -# Done; do the assignment + opal_show_subsubsubtitle "MCA component fcoll:individual (no configuration)" -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=$want_io_ompio" -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi -fi + component_path="$srcdir/ompi/mca/fcoll/individual" + want_component=0 - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&2;} + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_fcoll" ; then + if test "$DIRECT_fcoll" = "individual" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + # if we were explicitly disabled, don't build :) + if test "$DISABLE_fcoll" = "1"; then : + want_component=0 +fi + if test "$DISABLE_fcoll_individual" = "1"; then : + want_component=0 +fi - libnl_sane=0 + if test "$want_component" = "1"; then : + should_build=$want_io_ompio else - opal_libnlv3_libs="$opal_libnlv3_libs portals" + should_build=0 +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones + SHARED_FRAMEWORK="$DSO_fcoll" + SHARED_COMPONENT="$DSO_fcoll_individual" -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + STATIC_FRAMEWORK="$STATIC_fcoll" + STATIC_COMPONENT="$STATIC_fcoll_individual" - # Loop over every token we've seen so far + shared_mode_override=static - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fcoll:individual compile mode" >&5 +$as_echo_n "checking for MCA component fcoll:individual compile mode... " >&6; } + if test "$DIRECT_fcoll" = "individual" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # Check the ending condition + if test "$should_build" = "1" ; then - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/fcoll/individual/post_configure.sh" - # If we didn't find the token, add it to the "array" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components individual" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components individual" else - opal_i="`expr $opal_i - 1`" + if test "fcoll" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/fcoll/individual/lib${OMPI_LIB_PREFIX}mca_fcoll_individual.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/fcoll/individual/libmca_fcoll_individual.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_fcoll_individual_component;" >> $outfile.extern + echo " &mca_fcoll_individual_component, " >> $outfile.struct + static_components="$static_components individual" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:individual can compile" >&5 +$as_echo_n "checking if MCA component fcoll:individual can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_fcoll" = "individual" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_fcoll_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** fcoll component individual was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_fcoll" = "individual" ; then +as_fn_error $? "*** fcoll component individual was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$fcoll_individual_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + for arg in $fcoll_individual_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -283215,10 +308127,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $fcoll_individual_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -283241,332 +308208,89 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_PtlLEAppend" != "no" && - test "$ac_cv_search_PtlLEAppend" != "none required"; then : - opal_check_portals4_LIBS="$ac_cv_search_PtlLEAppend " -else - opal_check_portals4_LIBS="" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi - - -else - opal_check_package_happy="no" -fi -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_PtlLEAppend - opal_check_package_lib_happy="no" - if test "$ompi_check_portals4_libdir" != ""; then : - # libdir was specified - search only there - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$ompi_check_portals4_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_portals4_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PtlLEAppend (); -int -main () -{ -return PtlLEAppend (); - ; - return 0; -} -_ACEOF -for ac_lib in '' portals; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : - break -fi -done -if ${ac_cv_search_PtlLEAppend+:} false; then : - -else - ac_cv_search_PtlLEAppend=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_portals4_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PtlLEAppend (); -int -main () -{ -return PtlLEAppend (); - ; - return 0; -} -_ACEOF -for ac_lib in '' portals; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : - break -fi -done -if ${ac_cv_search_PtlLEAppend+:} false; then : - -else - ac_cv_search_PtlLEAppend=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" fi + if test "$fcoll_individual_WRAPPER_EXTRA_LIBS" = ""; then : - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend -fi -fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PtlLEAppend (); -int -main () -{ -return PtlLEAppend (); - ; - return 0; -} -_ACEOF -for ac_lib in '' portals; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : - break -fi -done -if ${ac_cv_search_PtlLEAppend+:} false; then : + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -else - ac_cv_search_PtlLEAppend=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend -fi -fi -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PtlLEAppend (); -int -main () -{ -return PtlLEAppend (); - ; - return 0; -} -_ACEOF -for ac_lib in '' portals; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : - break -fi -done -if ${ac_cv_search_PtlLEAppend+:} false; then : + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -else - ac_cv_search_PtlLEAppend=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + for arg in $fcoll_individual_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -283579,7 +308303,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -283598,16 +308322,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $fcoll_individual_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$fcoll_individual_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -283620,7 +308394,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -283639,7 +308413,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -283647,276 +308421,327 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libportals requires libnl v1 or v3" >&5 -$as_echo_n "checking if libportals requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void PtlLEAppend (void); -int main(int argc, char *argv[]) { - PtlLEAppend (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:283674: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:283681: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" + for arg in $fcoll_individual_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" + done fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib portals" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib portals" >&2;} - + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} - - libnl_sane=0 fi + done - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} - - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs portals" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Loop over every token we've seen so far + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fcoll_individual_WRAPPER_EXTRA_CPPFLAGS ($fcoll_individual_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring fcoll_individual_WRAPPER_EXTRA_CPPFLAGS ($fcoll_individual_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - # Check the ending condition + else - opal_done="`expr $opal_i \>= $opal_count`" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:individual can compile" >&5 +$as_echo_n "checking if MCA component fcoll:individual can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Increment the counter + # If this component was requested as the default for this + # type, then abort. + if test "$with_fcoll" = "individual" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"individual\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"individual\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_i="`expr $opal_i + 1`" - done + if test ! -z "$DIRECT_fcoll" ; then + if test "$DIRECT_fcoll" = "individual" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"individual\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"individual\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # If we didn't find the token, add it to the "array" + # add component to all component list + all_components="$all_components individual" + fi - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_ompi_fcoll_individual_DSO=1 else - opal_i="`expr $opal_i - 1`" + BUILD_ompi_fcoll_individual_DSO=0 fi -done + if test "$BUILD_ompi_fcoll_individual_DSO" = "1"; then + MCA_BUILD_ompi_fcoll_individual_DSO_TRUE= + MCA_BUILD_ompi_fcoll_individual_DSO_FALSE='#' +else + MCA_BUILD_ompi_fcoll_individual_DSO_TRUE='#' + MCA_BUILD_ompi_fcoll_individual_DSO_FALSE= +fi -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + ac_config_files="$ac_config_files ompi/mca/fcoll/individual/Makefile" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + unset compile_mode -# Done; do the assignment + opal_show_subsubsubtitle "MCA component fcoll:two_phase (no configuration)" -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=$want_io_ompio" -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi -fi + component_path="$srcdir/ompi/mca/fcoll/two_phase" + want_component=0 - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&2;} + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_fcoll" ; then + if test "$DIRECT_fcoll" = "two_phase" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + # if we were explicitly disabled, don't build :) + if test "$DISABLE_fcoll" = "1"; then : + want_component=0 +fi + if test "$DISABLE_fcoll_two_phase" = "1"; then : + want_component=0 +fi - libnl_sane=0 + if test "$want_component" = "1"; then : + should_build=$want_io_ompio else - opal_libnlv3_libs="$opal_libnlv3_libs portals" + should_build=0 +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones + SHARED_FRAMEWORK="$DSO_fcoll" + SHARED_COMPONENT="$DSO_fcoll_two_phase" -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + STATIC_FRAMEWORK="$STATIC_fcoll" + STATIC_COMPONENT="$STATIC_fcoll_two_phase" - # Loop over every token we've seen so far + shared_mode_override=static - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fcoll:two_phase compile mode" >&5 +$as_echo_n "checking for MCA component fcoll:two_phase compile mode... " >&6; } + if test "$DIRECT_fcoll" = "two_phase" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # Check the ending condition + if test "$should_build" = "1" ; then - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/fcoll/two_phase/post_configure.sh" - # If we didn't find the token, add it to the "array" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components two_phase" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components two_phase" else - opal_i="`expr $opal_i - 1`" + if test "fcoll" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/fcoll/two_phase/lib${OMPI_LIB_PREFIX}mca_fcoll_two_phase.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/fcoll/two_phase/libmca_fcoll_two_phase.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_fcoll_two_phase_component;" >> $outfile.extern + echo " &mca_fcoll_two_phase_component, " >> $outfile.struct + static_components="$static_components two_phase" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:two_phase can compile" >&5 +$as_echo_n "checking if MCA component fcoll:two_phase can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_fcoll" = "two_phase" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_fcoll_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** fcoll component two_phase was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_fcoll" = "two_phase" ; then +as_fn_error $? "*** fcoll component two_phase was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$fcoll_two_phase_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + for arg in $fcoll_two_phase_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -283940,10 +308765,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $fcoll_two_phase_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -283966,28 +308846,65 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no fi + if test "$fcoll_two_phase_WRAPPER_EXTRA_LIBS" = ""; then : -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_PtlLEAppend" != "no" && - test "$ac_cv_search_PtlLEAppend" != "none required"; then : - opal_check_portals4_LIBS="$ac_cv_search_PtlLEAppend " -else - opal_check_portals4_LIBS="" + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $fcoll_two_phase_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -284011,80 +308928,98 @@ done - - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_portals4_happy="yes" else - opal_check_portals4_CPPFLAGS="$opal_check_package_opal_check_portals4_orig_CPPFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - opal_check_portals4_LIBS="$opal_check_package_opal_check_portals4_orig_LIBS" - ompi_check_portals4_happy="no" -fi - CPPFLAGS="$opal_check_package_opal_check_portals4_save_CPPFLAGS" - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - LIBS="$opal_check_package_opal_check_portals4_save_LIBS" - -else - ompi_check_portals4_happy="no" -fi - CPPFLAGS="$ompi_check_portals4_coll_portals4_save_CPPFLAGS" - LDFLAGS="$ompi_check_portals4_coll_portals4_save_LDFLAGS" - LIBS="$ompi_check_portals4_coll_portals4_save_LIBS" - max_md_size=0 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Check whether --with-portals4-max-md-size was given. -if test "${with_portals4_max_md_size+set}" = set; then : - withval=$with_portals4_max_md_size; -fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - if test "$with_portals4_max_md_size" = "yes" || test "$with_portals4_max_md_size" = "no"; then : - as_fn_error $? "--with-portals4-max-md-size requires an integer argument" "$LINENO" 5 -else - if test -n "$with_portals4_max_md_size"; then : - max_md_size="$with_portals4_max_md_size" -fi -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -cat >>confdefs.h <<_ACEOF -#define OPAL_PORTALS4_MAX_MD_SIZE $max_md_size -_ACEOF + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - max_va_size=0 -# Check whether --with-portals4-max-va-size was given. -if test "${with_portals4_max_va_size+set}" = set; then : - withval=$with_portals4_max_va_size; + for arg in $fcoll_two_phase_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - - if test "$with_portals4_max_va_size" = "yes" || test "$with_portals4_max_va_size" = "no"; then : - as_fn_error $? "--with-portals4-max-va-size requires an integer argument" "$LINENO" 5 + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - if test -n "$with_portals4_max_va_size"; then : - max_va_size="$with_portals4_max_va_size" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done -cat >>confdefs.h <<_ACEOF -#define OPAL_PORTALS4_MAX_VA_SIZE $max_va_size -_ACEOF + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if (test $max_md_size -eq 0 && test $max_va_size -ne 0 ) || (test $max_md_size -ne 0 && test $max_va_size -eq 0 ); then : - as_fn_error $? "If either --with-portals4-max-md-size or --with-portals4-max-va-size is set, both must be set." "$LINENO" 5 -fi - if test $max_md_size -ge $max_va_size; then : - max_md_size=0 - max_va_size=0 -fi - if test $max_md_size -ne 0 && test $max_va_size -ne 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: Portals 4 address space size: $max_md_size, $max_va_size" >&5 -$as_echo "$as_me: Portals 4 address space size: $max_md_size, $max_va_size" >&6;} fi + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$fcoll_two_phase_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -284097,7 +309032,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -284116,7 +309051,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -284124,20 +309059,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Portals4: $ompi_check_portals4_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + for arg in $fcoll_two_phase_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done # Unwind the index @@ -284161,78 +309100,205 @@ done +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fcoll_two_phase_WRAPPER_EXTRA_CPPFLAGS ($fcoll_two_phase_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring fcoll_two_phase_WRAPPER_EXTRA_CPPFLAGS ($fcoll_two_phase_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:two_phase can compile" >&5 +$as_echo_n "checking if MCA component fcoll:two_phase can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_fcoll" = "two_phase" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"two_phase\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"two_phase\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test "$ompi_check_portals4_happy" = "yes"; then : - coll_portals4_LDFLAGS="$coll_portals4_LDFLAGS $opal_check_portals4_LDFLAGS" - coll_portals4_CPPFLAGS="$coll_portals4_CPPFLAGS $opal_check_portals4_CPPFLAGS" - coll_portals4_LIBS="$coll_portals4_LIBS $opal_check_portals4_LIBS" - coll_portals4_happy="yes" + if test ! -z "$DIRECT_fcoll" ; then + if test "$DIRECT_fcoll" = "two_phase" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"two_phase\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"two_phase\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components two_phase" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_ompi_fcoll_two_phase_DSO=1 + else + BUILD_ompi_fcoll_two_phase_DSO=0 + fi + if test "$BUILD_ompi_fcoll_two_phase_DSO" = "1"; then + MCA_BUILD_ompi_fcoll_two_phase_DSO_TRUE= + MCA_BUILD_ompi_fcoll_two_phase_DSO_FALSE='#' else - if test ! -z "$with_portals4" && test "$with_portals4" != "no"; then : - as_fn_error $? "Portals4 support requested but not found. Aborting" "$LINENO" 5 -fi - coll_portals4_happy="no" + MCA_BUILD_ompi_fcoll_two_phase_DSO_TRUE='#' + MCA_BUILD_ompi_fcoll_two_phase_DSO_FALSE= fi - if test "$coll_portals4_happy" = "yes"; then : - should_build=$should_build + ac_config_files="$ac_config_files ompi/mca/fcoll/two_phase/Makefile" + + + unset compile_mode + + opal_show_subsubsubtitle "MCA component fcoll:vulcan (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=$want_io_ompio" + + + + component_path="$srcdir/ompi/mca/fcoll/vulcan" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_fcoll" ; then + if test "$DIRECT_fcoll" = "vulcan" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_fcoll" = "1"; then : + want_component=0 +fi + if test "$DISABLE_fcoll_vulcan" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$want_io_ompio else should_build=0 fi + SHARED_FRAMEWORK="$DSO_fcoll" + SHARED_COMPONENT="$DSO_fcoll_vulcan" + + STATIC_FRAMEWORK="$STATIC_fcoll" + STATIC_COMPONENT="$STATIC_fcoll_vulcan" + + shared_mode_override=static + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fcoll:vulcan compile mode" >&5 +$as_echo_n "checking for MCA component fcoll:vulcan compile mode... " >&6; } + if test "$DIRECT_fcoll" = "vulcan" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/coll/portals4/post_configure.sh" + infile="$srcdir/ompi/mca/fcoll/vulcan/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components portals4" + all_components="$all_components vulcan" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components portals4" + dso_components="$dso_components vulcan" else - if test "coll" = "common"; then + if test "fcoll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/coll/portals4/lib${OMPI_LIB_PREFIX}mca_coll_portals4.la $static_ltlibs" + static_ltlibs="mca/fcoll/vulcan/lib${OMPI_LIB_PREFIX}mca_fcoll_vulcan.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/coll/portals4/libmca_coll_portals4.la $static_ltlibs" + static_ltlibs="mca/fcoll/vulcan/libmca_fcoll_vulcan.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_coll_portals4_component;" >> $outfile.extern - echo " &mca_coll_portals4_component, " >> $outfile.struct - static_components="$static_components portals4" + echo "extern const mca_base_component_t mca_fcoll_vulcan_component;" >> $outfile.extern + echo " &mca_fcoll_vulcan_component, " >> $outfile.struct + static_components="$static_components vulcan" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:portals4 can compile" >&5 -$as_echo_n "checking if MCA component coll:portals4 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:vulcan can compile" >&5 +$as_echo_n "checking if MCA component fcoll:vulcan can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_coll" = "portals4" ; then + if test "$DIRECT_fcoll" = "vulcan" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_fcoll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** coll component portals4 was supposed to be direct-called, but +as_fn_error $? "*** fcoll component vulcan was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -284240,8 +309306,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_coll" = "portals4" ; then -as_fn_error $? "*** coll component portals4 was supposed to be direct-called, but + if test "$DIRECT_fcoll" = "vulcan" ; then +as_fn_error $? "*** fcoll component vulcan was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -284256,7 +309322,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$coll_portals4_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$fcoll_vulcan_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -284296,7 +309362,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_portals4_LDFLAGS; do + for arg in $fcoll_vulcan_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -284377,7 +309443,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_portals4_WRAPPER_EXTRA_LDFLAGS; do + for arg in $fcoll_vulcan_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -284419,7 +309485,7 @@ fi - if test "$coll_portals4_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$fcoll_vulcan_WRAPPER_EXTRA_LIBS" = ""; then : @@ -284459,7 +309525,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_portals4_LIBS; do + for arg in $fcoll_vulcan_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -284540,7 +309606,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_portals4_WRAPPER_EXTRA_LIBS; do + for arg in $fcoll_vulcan_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -284588,7 +309654,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$coll_portals4_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$fcoll_vulcan_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -284631,7 +309697,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $coll_portals4_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $fcoll_vulcan_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -284674,88 +309740,70 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring coll_portals4_WRAPPER_EXTRA_CPPFLAGS ($coll_portals4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring coll_portals4_WRAPPER_EXTRA_CPPFLAGS ($coll_portals4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fcoll_vulcan_WRAPPER_EXTRA_CPPFLAGS ($fcoll_vulcan_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring fcoll_vulcan_WRAPPER_EXTRA_CPPFLAGS ($fcoll_vulcan_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:portals4 can compile" >&5 -$as_echo_n "checking if MCA component coll:portals4 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:vulcan can compile" >&5 +$as_echo_n "checking if MCA component fcoll:vulcan can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_coll" = "portals4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"portals4\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"portals4\" failed to configure properly" >&2;} + if test "$with_fcoll" = "vulcan" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"vulcan\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"vulcan\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "portals4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"portals4\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"portals4\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_fcoll" ; then + if test "$DIRECT_fcoll" = "vulcan" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"vulcan\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"vulcan\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components portals4" -fi - - - if test "$should_build" = "1"; then : - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag PORTALS4" >&5 -$as_echo_n "checking for index in endpoint array for tag PORTALS4... " >&6; } - if test -z "$OMPI_PROC_ENDPOINT_TAG_PORTALS4"; then : - OMPI_PROC_ENDPOINT_TAG_PORTALS4=$ompi_endpoint_tag_counter - -cat >>confdefs.h <<_ACEOF -#define OMPI_PROC_ENDPOINT_TAG_PORTALS4 $OMPI_PROC_ENDPOINT_TAG_PORTALS4 -_ACEOF - - ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_PORTALS4" >&5 -$as_echo "$OMPI_PROC_ENDPOINT_TAG_PORTALS4" >&6; } - -fi - + # add component to all component list + all_components="$all_components vulcan" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_coll_portals4_DSO=1 -else - BUILD_ompi_coll_portals4_DSO=0 -fi - if test "$BUILD_ompi_coll_portals4_DSO" = "1"; then - MCA_BUILD_ompi_coll_portals4_DSO_TRUE= - MCA_BUILD_ompi_coll_portals4_DSO_FALSE='#' + if test "$compile_mode" = "dso" ; then + BUILD_ompi_fcoll_vulcan_DSO=1 + else + BUILD_ompi_fcoll_vulcan_DSO=0 + fi + if test "$BUILD_ompi_fcoll_vulcan_DSO" = "1"; then + MCA_BUILD_ompi_fcoll_vulcan_DSO_TRUE= + MCA_BUILD_ompi_fcoll_vulcan_DSO_FALSE='#' else - MCA_BUILD_ompi_coll_portals4_DSO_TRUE='#' - MCA_BUILD_ompi_coll_portals4_DSO_FALSE= + MCA_BUILD_ompi_fcoll_vulcan_DSO_TRUE='#' + MCA_BUILD_ompi_fcoll_vulcan_DSO_FALSE= fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi + ac_config_files="$ac_config_files ompi/mca/fcoll/vulcan/Makefile" + unset compile_mode + # configure components that use built-in configuration scripts + + + best_mca_component_priority=0 + components_looking_for_succeed=$want_io_ompio + components_last_result=0 # configure components that provide their own configure script. @@ -284764,18 +309812,18 @@ - if test "1" != "0"; then : + if test "$want_io_ompio" != "0"; then : - for component_path in $srcdir/ompi/mca/coll/* ; do + for component_path in $srcdir/ompi/mca/fcoll/* ; do component="`basename $component_path`" if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component coll:$component (need to configure)" + opal_show_subsubsubtitle "MCA component fcoll:$component (need to configure)" opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/ompi/mca/coll/$component" + component_path="$srcdir/ompi/mca/fcoll/$component" want_component=0 # build if: @@ -284807,8 +309855,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "$component" ; then + if test ! -z "$DIRECT_fcoll" ; then + if test "$DIRECT_fcoll" = "$component" ; then want_component=1 else want_component=0 @@ -284817,10 +309865,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_coll" = "1"; then : + if test "$DISABLE_fcoll" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_coll_$component" + str="DISABLED_COMPONENT_CHECK=\$DISABLE_fcoll_$component" eval $str if test "$DISABLED_COMPONENT_CHECK" = "1" ; then want_component=0 @@ -284833,12 +309881,12 @@ fi - SHARED_FRAMEWORK="$DSO_coll" - str="SHARED_COMPONENT=\$DSO_coll_$component" + SHARED_FRAMEWORK="$DSO_fcoll" + str="SHARED_COMPONENT=\$DSO_fcoll_$component" eval $str - STATIC_FRAMEWORK="$STATIC_coll" - str="STATIC_COMPONENT=\$STATIC_coll_$component" + STATIC_FRAMEWORK="$STATIC_fcoll" + str="STATIC_COMPONENT=\$STATIC_fcoll_$component" eval $str shared_mode_override=static @@ -284857,9 +309905,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component coll:$component compile mode" >&5 -$as_echo_n "checking for MCA component coll:$component compile mode... " >&6; } - if test "$DIRECT_coll" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fcoll:$component compile mode" >&5 +$as_echo_n "checking for MCA component fcoll:$component compile mode... " >&6; } + if test "$DIRECT_fcoll" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -284912,12 +309960,12 @@ # # Invoke configure in a specific subdirectory. # -# ompi/mca/coll/$component is the directory to invoke in +# ompi/mca/fcoll/$component is the directory to invoke in # $opal_subdir_args is the list of arguments to pass # should_build=1 is actions to execute upon success # should_build=0 is actions to execute upon failure # -subdir_dir="ompi/mca/coll/$component" +subdir_dir="ompi/mca/fcoll/$component" subdir_args="$opal_subdir_args" subdir_success="should_build=1" subdir_failure="should_build=0" @@ -285061,7 +310109,7 @@ # do some extra work to pass flags back from the # top-level configure, the way a configure.m4 # component would. - infile="$srcdir/ompi/mca/coll/all_components/post_configure.sh" + infile="$srcdir/ompi/mca/fcoll/all_components/post_configure.sh" if test -f $infile; then # First check for the ABORT tag @@ -285075,12 +310123,12 @@ line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - coll_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fcoll_all_components_WRAPPER_EXTRA_LDFLAGS="$line" fi line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - coll_all_components_WRAPPER_EXTRA_LIBS="$line" + fcoll_all_components_WRAPPER_EXTRA_LIBS="$line" fi fi @@ -285089,7 +310137,7 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/coll/$component/post_configure.sh" + infile="$srcdir/ompi/mca/fcoll/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs all_components="$all_components $component" @@ -285097,37 +310145,37 @@ if test "$compile_mode" = "dso" ; then dso_components="$dso_components $component" else - if test "coll" = "common"; then + if test "fcoll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/coll/$component/lib${OMPI_LIB_PREFIX}mca_coll_$component.la $static_ltlibs" + static_ltlibs="mca/fcoll/$component/lib${OMPI_LIB_PREFIX}mca_fcoll_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/coll/$component/libmca_coll_$component.la $static_ltlibs" + static_ltlibs="mca/fcoll/$component/libmca_fcoll_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_coll_$component_component;" >> $outfile.extern - echo " &mca_coll_$component_component, " >> $outfile.struct + echo "extern const mca_base_component_t mca_fcoll_$component_component;" >> $outfile.extern + echo " &mca_fcoll_$component_component, " >> $outfile.struct static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:$component can compile" >&5 -$as_echo_n "checking if MCA component coll:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:$component can compile" >&5 +$as_echo_n "checking if MCA component fcoll:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_coll" = "$component" ; then + if test "$DIRECT_fcoll" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_coll_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_fcoll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** coll component $component was supposed to be direct-called, but +as_fn_error $? "*** fcoll component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -285135,8 +310183,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_coll" = "$component" ; then -as_fn_error $? "*** coll component $component was supposed to be direct-called, but + if test "$DIRECT_fcoll" = "$component" ; then +as_fn_error $? "*** fcoll component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -285151,7 +310199,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$coll_$component_WRAPPER_EXTRA_LDFLAGS" + str="line=\$fcoll_$component_WRAPPER_EXTRA_LDFLAGS" eval "$str" @@ -285232,7 +310280,7 @@ unset $opal_var done -str="line=\$coll_$component_WRAPPER_EXTRA_LIBS" +str="line=\$fcoll_$component_WRAPPER_EXTRA_LIBS" eval "$str" @@ -285323,14 +310371,14 @@ else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component coll:$component can compile" >&5 -$as_echo_n "checking if MCA component coll:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:$component can compile" >&5 +$as_echo_n "checking if MCA component fcoll:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_coll" = "$component" ; then + if test "$with_fcoll" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 @@ -285338,8 +310386,8 @@ as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_coll" ; then - if test "$DIRECT_coll" = "$component" ; then + if test ! -z "$DIRECT_fcoll" ; then + if test "$DIRECT_fcoll" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 @@ -285354,10 +310402,10 @@ fi - MCA_ompi_coll_ALL_COMPONENTS="$all_components" - MCA_ompi_coll_STATIC_COMPONENTS="$static_components" - MCA_ompi_coll_DSO_COMPONENTS="$dso_components" - MCA_ompi_coll_STATIC_LTLIBS="$static_ltlibs" + MCA_ompi_fcoll_ALL_COMPONENTS="$all_components" + MCA_ompi_fcoll_STATIC_COMPONENTS="$static_components" + MCA_ompi_fcoll_DSO_COMPONENTS="$dso_components" + MCA_ompi_fcoll_STATIC_LTLIBS="$static_ltlibs" @@ -285365,23 +310413,23 @@ - MCA_ompi_coll_ALL_SUBDIRS= + MCA_ompi_fcoll_ALL_SUBDIRS= for item in $all_components ; do - MCA_ompi_coll_ALL_SUBDIRS="$MCA_ompi_coll_ALL_SUBDIRS mca/coll/$item" + MCA_ompi_fcoll_ALL_SUBDIRS="$MCA_ompi_fcoll_ALL_SUBDIRS mca/fcoll/$item" done - MCA_ompi_coll_STATIC_SUBDIRS= + MCA_ompi_fcoll_STATIC_SUBDIRS= for item in $static_components ; do - MCA_ompi_coll_STATIC_SUBDIRS="$MCA_ompi_coll_STATIC_SUBDIRS mca/coll/$item" + MCA_ompi_fcoll_STATIC_SUBDIRS="$MCA_ompi_fcoll_STATIC_SUBDIRS mca/fcoll/$item" done - MCA_ompi_coll_DSO_SUBDIRS= + MCA_ompi_fcoll_DSO_SUBDIRS= for item in $dso_components ; do - MCA_ompi_coll_DSO_SUBDIRS="$MCA_ompi_coll_DSO_SUBDIRS mca/coll/$item" + MCA_ompi_fcoll_DSO_SUBDIRS="$MCA_ompi_fcoll_DSO_SUBDIRS mca/fcoll/$item" done @@ -285389,7 +310437,7 @@ # Create the final .h file that will be included in the type's # top-level glue. This lists all the static components. We don't # need to do this for "common". - if test "coll" != "common"; then + if test "fcoll" != "common"; then cat > $outfile < 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS fs" + MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/fs" + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_fs_ALL_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_fs_DSO_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_fs_STATIC_SUBDIRS)" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/fs/libmca_fs.la" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_fs_STATIC_LTLIBS)" + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in want_io_ompio; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"want_io_ompio\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + if test "$enable_io_ompio" != "no"; then : + want_io_ompio=1 +else + want_io_ompio=0 +fi + + + opal_show_subsubtitle "Configuring MCA framework fs" @@ -285449,11 +310565,11 @@ # exists. Need to do this for VPATH builds, because the directory # may not exist yet. For the "common" type, it's not really a # component, so it doesn't have a base. - outdir=ompi/mca/crcp/base + outdir=ompi/mca/fs/base as_dir=$outdir; as_fn_mkdir_p # emit Makefile rule - ac_config_files="$ac_config_files ompi/mca/crcp/Makefile" + ac_config_files="$ac_config_files ompi/mca/fs/Makefile" # remove any previously generated #include files @@ -285463,14 +310579,14 @@ touch $outfile.struct $outfile.extern # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework crcp" >&5 -$as_echo_n "checking for no configure components in framework crcp... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework fs" >&5 +$as_echo_n "checking for no configure components in framework fs... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework crcp" >&5 -$as_echo_n "checking for m4 configure components in framework crcp... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: bkmrk" >&5 -$as_echo "bkmrk" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework fs" >&5 +$as_echo_n "checking for m4 configure components in framework fs... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: gpfs, ime, lustre, pvfs2, ufs" >&5 +$as_echo "gpfs, ime, lustre, pvfs2, ufs" >&6; } # If there are components in the no configure list, but we're # doing one of the "special" selection logics, abort with a @@ -285486,17 +310602,17 @@ best_mca_component_priority=0 - components_looking_for_succeed=1 + components_looking_for_succeed=$want_io_ompio components_last_result=0 - opal_show_subsubsubtitle "MCA component crcp:bkmrk (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component fs:gpfs (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/crcp/bkmrk" + component_path="$srcdir/ompi/mca/fs/gpfs" want_component=0 # build if: @@ -285528,8 +310644,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_crcp" ; then - if test "$DIRECT_crcp" = "bkmrk" ; then + if test ! -z "$DIRECT_fs" ; then + if test "$DIRECT_fs" = "gpfs" ; then want_component=1 else want_component=0 @@ -285538,10 +310654,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_crcp" = "1"; then : + if test "$DISABLE_fs" = "1"; then : want_component=0 fi - if test "$DISABLE_crcp_bkmrk" = "1"; then : + if test "$DISABLE_fs_gpfs" = "1"; then : want_component=0 fi @@ -285554,11 +310670,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_crcp" - SHARED_COMPONENT="$DSO_crcp_bkmrk" + SHARED_FRAMEWORK="$DSO_fs" + SHARED_COMPONENT="$DSO_fs_gpfs" - STATIC_FRAMEWORK="$STATIC_crcp" - STATIC_COMPONENT="$STATIC_crcp_bkmrk" + STATIC_FRAMEWORK="$STATIC_fs" + STATIC_COMPONENT="$STATIC_fs_gpfs" shared_mode_override=static @@ -285576,9 +310692,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component crcp:bkmrk compile mode" >&5 -$as_echo_n "checking for MCA component crcp:bkmrk compile mode... " >&6; } - if test "$DIRECT_crcp" = "bkmrk" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fs:gpfs compile mode" >&5 +$as_echo_n "checking for MCA component fs:gpfs compile mode... " >&6; } + if test "$DIRECT_fs" = "gpfs" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -285589,87 +310705,529 @@ # try to configure the component - ac_config_files="$ac_config_files ompi/mca/crcp/bkmrk/Makefile" + ac_config_files="$ac_config_files ompi/mca/fs/gpfs/Makefile" - # If we don't want FT, don't compile this component - if test "$opal_want_ft_cr" = "1"; then : - should_build=$should_build + + + check_gpfs_CPPFLAGS= + check_gpfs_LDFLAGS= + check_gpfs_LIBS= + + check_gpfs_save_LIBS="$LIBS" + check_gpfs_save_LDFLAGS="$LDFLAGS" + check_gpfs_save_CPPFLAGS="$CPPFLAGS" + + check_gpfs_configuration="none" + ompi_check_gpfs_happy="yes" + + # Get some configuration information + +# Check whether --with-gpfs was given. +if test "${with_gpfs+set}" = set; then : + withval=$with_gpfs; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-gpfs value" >&5 +$as_echo_n "checking --with-gpfs value... " >&6; } + if test "$with_gpfs" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-gpfs)" >&5 +$as_echo "simple no (specified --without-gpfs)" >&6; } else - should_build=0 + if test "$with_gpfs" = "yes" || test "x$with_gpfs" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_gpfs"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_gpfs not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_gpfs not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_gpfs/include/gpfs.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_gpfs/include/gpfs.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_gpfs/include/gpfs.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_gpfs)" >&5 +$as_echo "sanity check ok ($with_gpfs)" >&6; } + fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : +fi +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/crcp/bkmrk/post_configure.sh" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components bkmrk" +fi - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components bkmrk" - else - if test "crcp" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/crcp/bkmrk/lib${OMPI_LIB_PREFIX}mca_crcp_bkmrk.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/crcp/bkmrk/libmca_crcp_bkmrk.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_crcp_bkmrk_component;" >> $outfile.extern - echo " &mca_crcp_bkmrk_component, " >> $outfile.struct - static_components="$static_components bkmrk" - fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crcp:bkmrk can compile" >&5 -$as_echo_n "checking if MCA component crcp:bkmrk can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + if test "$with_gpfs" = "no"; then : + ompi_check_gpfs_happy="no" +else + if test -z "$with_gpfs" || test "$with_gpfs" = "yes"; then : + ompi_check_gpfs_dir="/usr" +else + ompi_check_gpfs_dir=$with_gpfs +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_crcp" = "bkmrk" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_crcp_DIRECT_CALL_HEADER=$line" - eval $str + if test -e "$ompi_check_gpfs_dir/lib64" ; then + ompi_check_gpfs_libdir="$ompi_check_gpfs_dir/lib64" else -as_fn_error $? "*** crcp component bkmrk was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 + ompi_check_gpfs_libdir="$ompi_check_gpfs_dir/lib" fi + + # Add correct -I and -L flags + + opal_check_package_fs_gpfs_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_fs_gpfs_save_LDFLAGS="$LDFLAGS" + opal_check_package_fs_gpfs_save_LIBS="$LIBS" + + opal_check_package_fs_gpfs_orig_CPPFLAGS="$fs_gpfs_CPPFLAGS" + opal_check_package_fs_gpfs_orig_LDFLAGS="$fs_gpfs_LDFLAGS" + opal_check_package_fs_gpfs_orig_LIBS="$fs_gpfs_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in dir_prefix; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_crcp" = "bkmrk" ; then -as_fn_error $? "*** crcp component bkmrk was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_gpfs_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $ompi_check_gpfs_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in gpfs.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "gpfs.h" "ac_cv_header_gpfs_h" "$ac_includes_default" +if test "x$ac_cv_header_gpfs_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GPFS_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_gpfs_h +fi +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + fs_gpfs_CPPFLAGS="$fs_gpfs_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in gpfs.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "gpfs.h" "ac_cv_header_gpfs_h" "$ac_includes_default" +if test "x$ac_cv_header_gpfs_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GPFS_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_gpfs_lib_init + opal_check_package_lib_happy="no" + if test "$ompi_check_gpfs_libdir" != ""; then : + # libdir was specified - search only there + fs_gpfs_LDFLAGS="$fs_gpfs_LDFLAGS -L$ompi_check_gpfs_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_gpfs_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gpfs_lib_init" >&5 +$as_echo_n "checking for library containing gpfs_lib_init... " >&6; } +if ${ac_cv_search_gpfs_lib_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gpfs_lib_init (); +int +main () +{ +return gpfs_lib_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' gpfs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_gpfs_lib_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_gpfs_lib_init+:} false; then : + break +fi +done +if ${ac_cv_search_gpfs_lib_init+:} false; then : + +else + ac_cv_search_gpfs_lib_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gpfs_lib_init" >&5 +$as_echo "$ac_cv_search_gpfs_lib_init" >&6; } +ac_res=$ac_cv_search_gpfs_lib_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_fs_gpfs_save_LDFLAGS" + fs_gpfs_LDFLAGS="$opal_check_package_fs_gpfs_orig_LDFLAGS" + unset ac_cv_search_gpfs_lib_init +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_gpfs_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gpfs_lib_init" >&5 +$as_echo_n "checking for library containing gpfs_lib_init... " >&6; } +if ${ac_cv_search_gpfs_lib_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gpfs_lib_init (); +int +main () +{ +return gpfs_lib_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' gpfs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_gpfs_lib_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_gpfs_lib_init+:} false; then : + break +fi +done +if ${ac_cv_search_gpfs_lib_init+:} false; then : + +else + ac_cv_search_gpfs_lib_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gpfs_lib_init" >&5 +$as_echo "$ac_cv_search_gpfs_lib_init" >&6; } +ac_res=$ac_cv_search_gpfs_lib_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_gpfs_save_LDFLAGS" + fs_gpfs_LDFLAGS="$opal_check_package_fs_gpfs_orig_LDFLAGS" + unset ac_cv_search_gpfs_lib_init +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fs_gpfs_LDFLAGS="$fs_gpfs_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gpfs_lib_init" >&5 +$as_echo_n "checking for library containing gpfs_lib_init... " >&6; } +if ${ac_cv_search_gpfs_lib_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gpfs_lib_init (); +int +main () +{ +return gpfs_lib_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' gpfs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_gpfs_lib_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_gpfs_lib_init+:} false; then : + break +fi +done +if ${ac_cv_search_gpfs_lib_init+:} false; then : + +else + ac_cv_search_gpfs_lib_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gpfs_lib_init" >&5 +$as_echo "$ac_cv_search_gpfs_lib_init" >&6; } +ac_res=$ac_cv_search_gpfs_lib_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_gpfs_save_LDFLAGS" + fs_gpfs_LDFLAGS="$opal_check_package_fs_gpfs_orig_LDFLAGS" + unset ac_cv_search_gpfs_lib_init +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fs_gpfs_LDFLAGS="$fs_gpfs_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gpfs_lib_init" >&5 +$as_echo_n "checking for library containing gpfs_lib_init... " >&6; } +if ${ac_cv_search_gpfs_lib_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gpfs_lib_init (); +int +main () +{ +return gpfs_lib_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' gpfs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_gpfs_lib_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_gpfs_lib_init+:} false; then : + break +fi +done +if ${ac_cv_search_gpfs_lib_init+:} false; then : + +else + ac_cv_search_gpfs_lib_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gpfs_lib_init" >&5 +$as_echo "$ac_cv_search_gpfs_lib_init" >&6; } +ac_res=$ac_cv_search_gpfs_lib_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_gpfs_save_LDFLAGS" + fs_gpfs_LDFLAGS="$opal_check_package_fs_gpfs_orig_LDFLAGS" + unset ac_cv_search_gpfs_lib_init +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$crcp_bkmrk_WRAPPER_EXTRA_LDFLAGS" = ""; then : + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_libnl_sane; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + opal_libnl_sane=1 + case $host in + *linux*) @@ -285682,7 +311240,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -285699,34 +311257,286 @@ fi done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libgpfs requires libnl v1 or v3" >&5 +$as_echo_n "checking if libgpfs requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void gpfs_lib_init (void); +int main(int argc, char *argv[]) { + gpfs_lib_init (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:311294: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lgpfs $LIBS $fs_gpfs_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lgpfs $LIBS $fs_gpfs_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:311301: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib gpfs" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib gpfs" >&2;} + +fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libgpfs links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libgpfs links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libgpfs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libgpfs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libgpfs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libgpfs." >&2;} + + libnl_sane=0 +fi + + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas gpfs requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas gpfs requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libgpfs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libgpfs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libgpfs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libgpfs." >&2;} + + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs gpfs" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi + +fi + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libgpfs requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libgpfs requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libgpfs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libgpfs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libgpfs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libgpfs." >&2;} + + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs gpfs" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up - for arg in $crcp_bkmrk_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -285750,65 +311560,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $crcp_bkmrk_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -285831,8 +311586,332 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_gpfs_lib_init" != "no" && + test "$ac_cv_search_gpfs_lib_init" != "none required"; then : + fs_gpfs_LIBS="$ac_cv_search_gpfs_lib_init " +else + fs_gpfs_LIBS="" fi - if test "$crcp_bkmrk_WRAPPER_EXTRA_LIBS" = ""; then : + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi + + +else + opal_check_package_happy="no" +fi +else + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_gpfs_lib_init + opal_check_package_lib_happy="no" + if test "$ompi_check_gpfs_libdir" != ""; then : + # libdir was specified - search only there + fs_gpfs_LDFLAGS="$fs_gpfs_LDFLAGS -L$ompi_check_gpfs_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_gpfs_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gpfs_lib_init" >&5 +$as_echo_n "checking for library containing gpfs_lib_init... " >&6; } +if ${ac_cv_search_gpfs_lib_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gpfs_lib_init (); +int +main () +{ +return gpfs_lib_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' gpfs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_gpfs_lib_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_gpfs_lib_init+:} false; then : + break +fi +done +if ${ac_cv_search_gpfs_lib_init+:} false; then : + +else + ac_cv_search_gpfs_lib_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gpfs_lib_init" >&5 +$as_echo "$ac_cv_search_gpfs_lib_init" >&6; } +ac_res=$ac_cv_search_gpfs_lib_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_fs_gpfs_save_LDFLAGS" + fs_gpfs_LDFLAGS="$opal_check_package_fs_gpfs_orig_LDFLAGS" + unset ac_cv_search_gpfs_lib_init +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_gpfs_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gpfs_lib_init" >&5 +$as_echo_n "checking for library containing gpfs_lib_init... " >&6; } +if ${ac_cv_search_gpfs_lib_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gpfs_lib_init (); +int +main () +{ +return gpfs_lib_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' gpfs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_gpfs_lib_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_gpfs_lib_init+:} false; then : + break +fi +done +if ${ac_cv_search_gpfs_lib_init+:} false; then : + +else + ac_cv_search_gpfs_lib_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gpfs_lib_init" >&5 +$as_echo "$ac_cv_search_gpfs_lib_init" >&6; } +ac_res=$ac_cv_search_gpfs_lib_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_gpfs_save_LDFLAGS" + fs_gpfs_LDFLAGS="$opal_check_package_fs_gpfs_orig_LDFLAGS" + unset ac_cv_search_gpfs_lib_init +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fs_gpfs_LDFLAGS="$fs_gpfs_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gpfs_lib_init" >&5 +$as_echo_n "checking for library containing gpfs_lib_init... " >&6; } +if ${ac_cv_search_gpfs_lib_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gpfs_lib_init (); +int +main () +{ +return gpfs_lib_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' gpfs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_gpfs_lib_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_gpfs_lib_init+:} false; then : + break +fi +done +if ${ac_cv_search_gpfs_lib_init+:} false; then : + +else + ac_cv_search_gpfs_lib_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gpfs_lib_init" >&5 +$as_echo "$ac_cv_search_gpfs_lib_init" >&6; } +ac_res=$ac_cv_search_gpfs_lib_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_gpfs_save_LDFLAGS" + fs_gpfs_LDFLAGS="$opal_check_package_fs_gpfs_orig_LDFLAGS" + unset ac_cv_search_gpfs_lib_init +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fs_gpfs_LDFLAGS="$fs_gpfs_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gpfs_lib_init" >&5 +$as_echo_n "checking for library containing gpfs_lib_init... " >&6; } +if ${ac_cv_search_gpfs_lib_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gpfs_lib_init (); +int +main () +{ +return gpfs_lib_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' gpfs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_gpfs_lib_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_gpfs_lib_init+:} false; then : + break +fi +done +if ${ac_cv_search_gpfs_lib_init+:} false; then : + +else + ac_cv_search_gpfs_lib_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gpfs_lib_init" >&5 +$as_echo "$ac_cv_search_gpfs_lib_init" >&6; } +ac_res=$ac_cv_search_gpfs_lib_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_gpfs_save_LDFLAGS" + fs_gpfs_LDFLAGS="$opal_check_package_fs_gpfs_orig_LDFLAGS" + unset ac_cv_search_gpfs_lib_init +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -285845,7 +311924,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -285864,56 +311943,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $crcp_bkmrk_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -285926,7 +311965,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -285945,7 +311984,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -285953,115 +311992,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $crcp_bkmrk_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libgpfs requires libnl v1 or v3" >&5 +$as_echo_n "checking if libgpfs requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void gpfs_lib_init (void); +int main(int argc, char *argv[]) { + gpfs_lib_init (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:312019: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lgpfs $LIBS $fs_gpfs_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lgpfs $LIBS $fs_gpfs_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:312026: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib gpfs" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib gpfs" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libgpfs links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libgpfs links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libgpfs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libgpfs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libgpfs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libgpfs." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas gpfs requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas gpfs requires libnl" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libgpfs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libgpfs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libgpfs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libgpfs." >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs gpfs" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones -fi +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - fi + # Loop over every token we've seen so far - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$crcp_bkmrk_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Check the ending condition - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_done="`expr $opal_i \>= $opal_count`" - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Increment the counter + + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $crcp_bkmrk_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libgpfs requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libgpfs requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libgpfs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libgpfs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libgpfs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libgpfs." >&2;} + + libnl_sane=0 else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + opal_libnlv3_libs="$opal_libnlv3_libs gpfs" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -286085,185 +312285,112 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring crcp_bkmrk_WRAPPER_EXTRA_CPPFLAGS ($crcp_bkmrk_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring crcp_bkmrk_WRAPPER_EXTRA_CPPFLAGS ($crcp_bkmrk_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else + ;; + esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crcp:bkmrk can compile" >&5 -$as_echo_n "checking if MCA component crcp:bkmrk can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + opal_check_package_libnl_check_ok=$opal_libnl_sane - # If this component was requested as the default for this - # type, then abort. - if test "$with_crcp" = "bkmrk" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bkmrk\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"bkmrk\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_crcp" ; then - if test "$DIRECT_crcp" = "bkmrk" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bkmrk\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"bkmrk\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # add component to all component list - all_components="$all_components bkmrk" -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_crcp_bkmrk_DSO=1 -else - BUILD_ompi_crcp_bkmrk_DSO=0 fi - if test "$BUILD_ompi_crcp_bkmrk_DSO" = "1"; then - MCA_BUILD_ompi_crcp_bkmrk_DSO_TRUE= - MCA_BUILD_ompi_crcp_bkmrk_DSO_FALSE='#' + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_gpfs_lib_init" != "no" && + test "$ac_cv_search_gpfs_lib_init" != "none required"; then : + fs_gpfs_LIBS="$ac_cv_search_gpfs_lib_init " else - MCA_BUILD_ompi_crcp_bkmrk_DSO_TRUE='#' - MCA_BUILD_ompi_crcp_bkmrk_DSO_FALSE= + fs_gpfs_LIBS="" fi - - - if test "$should_build" = "1"; then : - components_last_result=1 + opal_check_package_happy="yes" else - components_last_result=0 + opal_check_package_happy="no" fi - unset compile_mode - - +fi + unset opal_check_package_header_happy - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "1" != "0"; then : + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - for component_path in $srcdir/ompi/mca/crcp/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component crcp:$component (need to configure)" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_gpfs_happy="yes" +else + fs_gpfs_CPPFLAGS="$opal_check_package_fs_gpfs_orig_CPPFLAGS" + fs_gpfs_LDFLAGS="$opal_check_package_fs_gpfs_orig_LDFLAGS" + fs_gpfs_LIBS="$opal_check_package_fs_gpfs_orig_LIBS" + ompi_check_gpfs_happy="no" +fi - component_path="$srcdir/ompi/mca/crcp/$component" - want_component=0 + CPPFLAGS="$opal_check_package_fs_gpfs_save_CPPFLAGS" + LDFLAGS="$opal_check_package_fs_gpfs_save_LDFLAGS" + LIBS="$opal_check_package_fs_gpfs_save_LIBS" - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_crcp" ; then - if test "$DIRECT_crcp" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_crcp" = "1"; then : - want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_crcp_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi - if test "$want_component" = "1"; then : - should_build=1 + if test "$ompi_check_gpfs_happy" = "yes"; then : + fs_gpfs_happy="yes" else - should_build=0 + if test ! -z "$with_gpfs" && test "$with_gpfs" != "no"; then : + as_fn_error $? "GPFS support requested but not found. Aborting" "$LINENO" 5 +fi + fs_gpfs_happy="no" fi - SHARED_FRAMEWORK="$DSO_crcp" - str="SHARED_COMPONENT=\$DSO_crcp_$component" - eval $str - - STATIC_FRAMEWORK="$STATIC_crcp" - str="STATIC_COMPONENT=\$STATIC_crcp_$component" - eval $str - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component crcp:$component compile mode" >&5 -$as_echo_n "checking for MCA component crcp:$component compile mode... " >&6; } - if test "$DIRECT_crcp" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + if test "$fs_gpfs_happy" = "yes"; then : + fs_gpfs_WRAPPER_EXTRA_LDFLAGS="$fs_gpfs_LDFLAGS" + fs_gpfs_WRAPPER_EXTRA_LIBS="$fs_gpfs_LIBS" + should_build=$should_build +else + should_build=0 +fi - if test "$should_build" = "1" ; then @@ -286276,7 +312403,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -286293,139 +312420,30 @@ fi done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - -# -# Invoke configure in a specific subdirectory. -# -# ompi/mca/crcp/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="ompi/mca/crcp/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - - # - # Construct the --cache-file argument - # - - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - - # - # Invoke the configure script in the subdirectory - # - - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str - # - # Go back to the topdir - # + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - cd $subdir_parent -fi -# -# Clean up -# + ompi_summary_section=$(echo OMPIO File Systems | tr ' ' '_') + ompi_summary_line="IBM Spectrum Scale/GPFS: $fs_gpfs_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi # Unwind the index @@ -286448,80 +312466,60 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/ompi/mca/crcp/all_components/post_configure.sh" - if test -f $infile; then - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi + # substitute in the things needed to build gpfs + + - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - crcp_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - crcp_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/crcp/$component/post_configure.sh" + infile="$srcdir/ompi/mca/fs/gpfs/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + all_components="$all_components gpfs" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" + dso_components="$dso_components gpfs" else - if test "crcp" = "common"; then + if test "fs" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/crcp/$component/lib${OMPI_LIB_PREFIX}mca_crcp_$component.la $static_ltlibs" + static_ltlibs="mca/fs/gpfs/lib${OMPI_LIB_PREFIX}mca_fs_gpfs.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/crcp/$component/libmca_crcp_$component.la $static_ltlibs" + static_ltlibs="mca/fs/gpfs/libmca_fs_gpfs.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_crcp_$component_component;" >> $outfile.extern - echo " &mca_crcp_$component_component, " >> $outfile.struct - static_components="$static_components $component" + echo "extern const mca_base_component_t mca_fs_gpfs_component;" >> $outfile.extern + echo " &mca_fs_gpfs_component, " >> $outfile.struct + static_components="$static_components gpfs" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crcp:$component can compile" >&5 -$as_echo_n "checking if MCA component crcp:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:gpfs can compile" >&5 +$as_echo_n "checking if MCA component fs:gpfs can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_crcp" = "$component" ; then + if test "$DIRECT_fs" = "gpfs" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_crcp_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_fs_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** crcp component $component was supposed to be direct-called, but +as_fn_error $? "*** fs component gpfs was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -286529,8 +312527,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_crcp" = "$component" ; then -as_fn_error $? "*** crcp component $component was supposed to be direct-called, but + if test "$DIRECT_fs" = "gpfs" ; then +as_fn_error $? "*** fs component gpfs was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -286545,8 +312543,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$crcp_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + if test "$fs_gpfs_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -286586,7 +312583,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $fs_gpfs_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -286626,8 +312623,8 @@ unset $opal_var done -str="line=\$crcp_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + +else @@ -286667,21 +312664,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $fs_gpfs_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -286708,125 +312705,180 @@ done - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - +fi + if test "$fs_gpfs_WRAPPER_EXTRA_LIBS" = ""; then : - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component crcp:$component can compile" >&5 -$as_echo_n "checking if MCA component crcp:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_crcp" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - if test ! -z "$DIRECT_crcp" ; then - if test "$DIRECT_crcp" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $fs_gpfs_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi fi + done - MCA_ompi_crcp_ALL_COMPONENTS="$all_components" - MCA_ompi_crcp_STATIC_COMPONENTS="$static_components" - MCA_ompi_crcp_DSO_COMPONENTS="$dso_components" - MCA_ompi_crcp_STATIC_LTLIBS="$static_ltlibs" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done +else - MCA_ompi_crcp_ALL_SUBDIRS= - for item in $all_components ; do - MCA_ompi_crcp_ALL_SUBDIRS="$MCA_ompi_crcp_ALL_SUBDIRS mca/crcp/$item" - done + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - MCA_ompi_crcp_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_ompi_crcp_STATIC_SUBDIRS="$MCA_ompi_crcp_STATIC_SUBDIRS mca/crcp/$item" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - MCA_ompi_crcp_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_ompi_crcp_DSO_SUBDIRS="$MCA_ompi_crcp_DSO_SUBDIRS mca/crcp/$item" + for arg in $fs_gpfs_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "crcp" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS fbtl" - MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/fbtl" - MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_fbtl_ALL_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_fbtl_DSO_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_fbtl_STATIC_SUBDIRS)" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/fbtl/libmca_fbtl.la" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_fbtl_STATIC_LTLIBS)" + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$fs_gpfs_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -286839,7 +312891,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in want_io_ompio; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -286858,7 +312910,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"want_io_ompio\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -286866,76 +312918,121 @@ opal_scope_index=`expr $opal_scope_index + 1` - if test "$enable_io_ompio" != "no"; then : - want_io_ompio=1 + for arg in $fs_gpfs_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - want_io_ompio=0 + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi +fi + done - opal_show_subsubtitle "Configuring MCA framework fbtl" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fs_gpfs_WRAPPER_EXTRA_CPPFLAGS ($fs_gpfs_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring fs_gpfs_WRAPPER_EXTRA_CPPFLAGS ($fs_gpfs_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=ompi/mca/fbtl/base - as_dir=$outdir; as_fn_mkdir_p +else - # emit Makefile rule - ac_config_files="$ac_config_files ompi/mca/fbtl/Makefile" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:gpfs can compile" >&5 +$as_echo_n "checking if MCA component fs:gpfs can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # If this component was requested as the default for this + # type, then abort. + if test "$with_fs" = "gpfs" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"gpfs\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"gpfs\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern + if test ! -z "$DIRECT_fs" ; then + if test "$DIRECT_fs" = "gpfs" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"gpfs\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"gpfs\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework fbtl" >&5 -$as_echo_n "checking for no configure components in framework fbtl... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework fbtl" >&5 -$as_echo_n "checking for m4 configure components in framework fbtl... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: posix, pvfs2" >&5 -$as_echo "posix, pvfs2" >&6; } + # add component to all component list + all_components="$all_components gpfs" +fi - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_fs_gpfs_DSO=1 +else + BUILD_ompi_fs_gpfs_DSO=0 +fi + if test "$BUILD_ompi_fs_gpfs_DSO" = "1"; then + MCA_BUILD_ompi_fs_gpfs_DSO_TRUE= + MCA_BUILD_ompi_fs_gpfs_DSO_FALSE='#' +else + MCA_BUILD_ompi_fs_gpfs_DSO_TRUE='#' + MCA_BUILD_ompi_fs_gpfs_DSO_FALSE= +fi - # run the configure logic for the no-config components + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # configure components that use built-in configuration scripts + unset compile_mode - best_mca_component_priority=0 - components_looking_for_succeed=$want_io_ompio - components_last_result=0 - opal_show_subsubsubtitle "MCA component fbtl:posix (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component fs:ime (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/fbtl/posix" + component_path="$srcdir/ompi/mca/fs/ime" want_component=0 # build if: @@ -286967,8 +313064,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_fbtl" ; then - if test "$DIRECT_fbtl" = "posix" ; then + if test ! -z "$DIRECT_fs" ; then + if test "$DIRECT_fs" = "ime" ; then want_component=1 else want_component=0 @@ -286977,10 +313074,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_fbtl" = "1"; then : + if test "$DISABLE_fs" = "1"; then : want_component=0 fi - if test "$DISABLE_fbtl_posix" = "1"; then : + if test "$DISABLE_fs_ime" = "1"; then : want_component=0 fi @@ -286993,11 +313090,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_fbtl" - SHARED_COMPONENT="$DSO_fbtl_posix" + SHARED_FRAMEWORK="$DSO_fs" + SHARED_COMPONENT="$DSO_fs_ime" - STATIC_FRAMEWORK="$STATIC_fbtl" - STATIC_COMPONENT="$STATIC_fbtl_posix" + STATIC_FRAMEWORK="$STATIC_fs" + STATIC_COMPONENT="$STATIC_fs_ime" shared_mode_override=static @@ -287015,9 +313112,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fbtl:posix compile mode" >&5 -$as_echo_n "checking for MCA component fbtl:posix compile mode... " >&6; } - if test "$DIRECT_fbtl" = "posix" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fs:ime compile mode" >&5 +$as_echo_n "checking for MCA component fs:ime compile mode... " >&6; } + if test "$DIRECT_fs" = "ime" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -287028,14 +313125,95 @@ # try to configure the component - ac_config_files="$ac_config_files ompi/mca/fbtl/posix/Makefile" + ac_config_files="$ac_config_files ompi/mca/fs/ime/Makefile" - fbtl_posix_happy=no - ac_fn_c_check_header_mongrel "$LINENO" "aio.h" "ac_cv_header_aio_h" "$ac_includes_default" -if test "x$ac_cv_header_aio_h" = xyes; then : + check_ime_CPPFLAGS= + check_ime_LDFLAGS= + check_ime_LIBS= + + check_ime_configuration="none" + ompi_check_ime_happy="yes" + + + # Get some configuration information + +# Check whether --with-ime was given. +if test "${with_ime+set}" = set; then : + withval=$with_ime; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ime value" >&5 +$as_echo_n "checking --with-ime value... " >&6; } + if test "$with_ime" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ime)" >&5 +$as_echo "simple no (specified --without-ime)" >&6; } +else + if test "$with_ime" = "yes" || test "x$with_ime" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_ime"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ime not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ime not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_ime/include/ime_native.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ime/include/ime_native.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ime/include/ime_native.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ime)" >&5 +$as_echo "sanity check ok ($with_ime)" >&6; } + +fi + + +fi + + +fi + + +fi + + + if test "$with_ime" = "no"; then : + ompi_check_ime_happy="no" +else + if test -z "$with_ime"; then : + ompi_check_ime_dir="/usr/local" +else + ompi_check_ime_dir=$with_ime +fi + + if test -e "$ompi_check_ime_dir/lib64" ; then + ompi_check_ime_libdir="$ompi_check_ime_dir/lib64" + else + ompi_check_ime_libdir="$ompi_check_ime_dir/lib" + fi + + # Add correct -I and -L flags + + opal_check_package_fs_ime_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_fs_ime_save_LDFLAGS="$LDFLAGS" + opal_check_package_fs_ime_save_LIBS="$LIBS" + + opal_check_package_fs_ime_orig_CPPFLAGS="$fs_ime_CPPFLAGS" + opal_check_package_fs_ime_orig_LDFLAGS="$fs_ime_LDFLAGS" + opal_check_package_fs_ime_orig_LIBS="$fs_ime_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -287048,7 +313226,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in LIBS_save add; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -287067,18 +313245,79 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"LIBS_save add\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - LIBS_save=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing aio_write" >&5 -$as_echo_n "checking for library containing aio_write... " >&6; } -if ${ac_cv_search_aio_write+:} false; then : + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_ime_native_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $ompi_check_ime_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in ime_native.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ime_native.h" "ac_cv_header_ime_native_h" "$ac_includes_default" +if test "x$ac_cv_header_ime_native_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_IME_NATIVE_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_ime_native_h +fi +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + fs_ime_CPPFLAGS="$fs_ime_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in ime_native.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ime_native.h" "ac_cv_header_ime_native_h" "$ac_includes_default" +if test "x$ac_cv_header_ime_native_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_IME_NATIVE_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_ime_client_native2_init + opal_check_package_lib_happy="no" + if test "$ompi_check_ime_libdir" != ""; then : + # libdir was specified - search only there + fs_ime_LDFLAGS="$fs_ime_LDFLAGS -L$ompi_check_ime_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ime_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_client_native2_init" >&5 +$as_echo_n "checking for library containing ime_client_native2_init... " >&6; } +if ${ac_cv_search_ime_client_native2_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -287091,16 +313330,16 @@ #ifdef __cplusplus extern "C" #endif -char aio_write (); +char ime_client_native2_init (); int main () { -return aio_write (); +return ime_client_native2_init (); ; return 0; } _ACEOF -for ac_lib in '' rt; do +for ac_lib in '' im_client; do if test -z "$ac_lib"; then ac_res="none required" else @@ -287108,30 +313347,263 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_aio_write=$ac_res + ac_cv_search_ime_client_native2_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_aio_write+:} false; then : + if ${ac_cv_search_ime_client_native2_init+:} false; then : break fi done -if ${ac_cv_search_aio_write+:} false; then : +if ${ac_cv_search_ime_client_native2_init+:} false; then : else - ac_cv_search_aio_write=no + ac_cv_search_ime_client_native2_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_aio_write" >&5 -$as_echo "$ac_cv_search_aio_write" >&6; } -ac_res=$ac_cv_search_aio_write +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_client_native2_init" >&5 +$as_echo "$ac_cv_search_ime_client_native2_init" >&6; } +ac_res=$ac_cv_search_ime_client_native2_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - # Found it! See if anything was added to LIBS - add=`printf '%s\n' "$LIBS" | sed -e "s/$LIBS_save$//"` - if test -n "$add"; then : + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + unset ac_cv_search_ime_client_native2_init +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_ime_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_client_native2_init" >&5 +$as_echo_n "checking for library containing ime_client_native2_init... " >&6; } +if ${ac_cv_search_ime_client_native2_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ime_client_native2_init (); +int +main () +{ +return ime_client_native2_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' im_client; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ime_client_native2_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ime_client_native2_init+:} false; then : + break +fi +done +if ${ac_cv_search_ime_client_native2_init+:} false; then : + +else + ac_cv_search_ime_client_native2_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_client_native2_init" >&5 +$as_echo "$ac_cv_search_ime_client_native2_init" >&6; } +ac_res=$ac_cv_search_ime_client_native2_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + unset ac_cv_search_ime_client_native2_init +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fs_ime_LDFLAGS="$fs_ime_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_client_native2_init" >&5 +$as_echo_n "checking for library containing ime_client_native2_init... " >&6; } +if ${ac_cv_search_ime_client_native2_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ime_client_native2_init (); +int +main () +{ +return ime_client_native2_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' im_client; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ime_client_native2_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ime_client_native2_init+:} false; then : + break +fi +done +if ${ac_cv_search_ime_client_native2_init+:} false; then : + +else + ac_cv_search_ime_client_native2_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_client_native2_init" >&5 +$as_echo "$ac_cv_search_ime_client_native2_init" >&6; } +ac_res=$ac_cv_search_ime_client_native2_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + unset ac_cv_search_ime_client_native2_init +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fs_ime_LDFLAGS="$fs_ime_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_client_native2_init" >&5 +$as_echo_n "checking for library containing ime_client_native2_init... " >&6; } +if ${ac_cv_search_ime_client_native2_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ime_client_native2_init (); +int +main () +{ +return ime_client_native2_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' im_client; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ime_client_native2_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ime_client_native2_init+:} false; then : + break +fi +done +if ${ac_cv_search_ime_client_native2_init+:} false; then : + +else + ac_cv_search_ime_client_native2_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_client_native2_init" >&5 +$as_echo "$ac_cv_search_ime_client_native2_init" >&6; } +ac_res=$ac_cv_search_ime_client_native2_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + unset ac_cv_search_ime_client_native2_init +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -287144,7 +313616,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -287163,33 +313635,326 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` + opal_libnl_sane=1 + case $host in + *linux*) - for arg in $add; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${fbtl_posix_LIBS}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libim_client requires libnl v1 or v3" >&5 +$as_echo_n "checking if libim_client requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ime_client_native2_init (void); +int main(int argc, char *argv[]) { + ime_client_native2_init (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:313711: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lim_client $LIBS $fs_ime_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lim_client $LIBS $fs_ime_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:313718: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$fbtl_posix_LIBS"; then : - fbtl_posix_LIBS=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - fbtl_posix_LIBS="$fbtl_posix_LIBS $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib im_client" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib im_client" >&2;} + +fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libim_client links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libim_client links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} + + libnl_sane=0 +fi + + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas im_client requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas im_client requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} + + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs im_client" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi + fi + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libim_client requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libim_client requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} + + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs im_client" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi + +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -287212,20 +313977,10 @@ done -fi - fbtl_posix_have_aio_write=1 - fbtl_posix_happy="yes" -else - fbtl_posix_have_aio_write=0 - -fi - - - -cat >>confdefs.h <<_ACEOF -#define OPAL_HAVE_FBTL_POSIX $fbtl_posix_have_aio_write -_ACEOF + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -287248,110 +314003,332 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi +fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ime_client_native2_init" != "no" && + test "$ac_cv_search_ime_client_native2_init" != "none required"; then : + fs_ime_LIBS="$ac_cv_search_ime_client_native2_init " +else + fs_ime_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi - for ac_func in pwritev -do : - ac_fn_c_check_func "$LINENO" "pwritev" "ac_cv_func_pwritev" -if test "x$ac_cv_func_pwritev" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PWRITEV 1 -_ACEOF +else + opal_check_package_happy="no" fi -done +else - for ac_func in preadv -do : - ac_fn_c_check_func "$LINENO" "preadv" "ac_cv_func_preadv" -if test "x$ac_cv_func_preadv" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PREADV 1 -_ACEOF + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_ime_client_native2_init + opal_check_package_lib_happy="no" + if test "$ompi_check_ime_libdir" != ""; then : + # libdir was specified - search only there + fs_ime_LDFLAGS="$fs_ime_LDFLAGS -L$ompi_check_ime_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ime_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_client_native2_init" >&5 +$as_echo_n "checking for library containing ime_client_native2_init... " >&6; } +if ${ac_cv_search_ime_client_native2_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ime_client_native2_init (); +int +main () +{ +return ime_client_native2_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' im_client; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ime_client_native2_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ime_client_native2_init+:} false; then : + break fi done +if ${ac_cv_search_ime_client_native2_init+:} false; then : +else + ac_cv_search_ime_client_native2_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_client_native2_init" >&5 +$as_echo "$ac_cv_search_ime_client_native2_init" >&6; } +ac_res=$ac_cv_search_ime_client_native2_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test "$fbtl_posix_happy" = "yes"; then : - should_build=$should_build + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + unset ac_cv_search_ime_client_native2_init +fi else - should_build=0 + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_ime_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_client_native2_init" >&5 +$as_echo_n "checking for library containing ime_client_native2_init... " >&6; } +if ${ac_cv_search_ime_client_native2_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ime_client_native2_init (); +int +main () +{ +return ime_client_native2_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' im_client; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ime_client_native2_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ime_client_native2_init+:} false; then : + break fi +done +if ${ac_cv_search_ime_client_native2_init+:} false; then : - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" +else + ac_cv_search_ime_client_native2_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_client_native2_init" >&5 +$as_echo "$ac_cv_search_ime_client_native2_init" >&6; } +ac_res=$ac_cv_search_ime_client_native2_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test "$should_build" = "1"; then : + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + unset ac_cv_search_ime_client_native2_init +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fs_ime_LDFLAGS="$fs_ime_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_client_native2_init" >&5 +$as_echo_n "checking for library containing ime_client_native2_init... " >&6; } +if ${ac_cv_search_ime_client_native2_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ime_client_native2_init (); +int +main () +{ +return ime_client_native2_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' im_client; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ime_client_native2_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ime_client_native2_init+:} false; then : + break +fi +done +if ${ac_cv_search_ime_client_native2_init+:} false; then : - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/fbtl/posix/post_configure.sh" +else + ac_cv_search_ime_client_native2_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_client_native2_init" >&5 +$as_echo "$ac_cv_search_ime_client_native2_init" >&6; } +ac_res=$ac_cv_search_ime_client_native2_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components posix" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + unset ac_cv_search_ime_client_native2_init +fi +fi +fi - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components posix" - else - if test "fbtl" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/fbtl/posix/lib${OMPI_LIB_PREFIX}mca_fbtl_posix.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/fbtl/posix/libmca_fbtl_posix.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_fbtl_posix_component;" >> $outfile.extern - echo " &mca_fbtl_posix_component, " >> $outfile.struct - static_components="$static_components posix" - fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fs_ime_LDFLAGS="$fs_ime_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_client_native2_init" >&5 +$as_echo_n "checking for library containing ime_client_native2_init... " >&6; } +if ${ac_cv_search_ime_client_native2_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fbtl:posix can compile" >&5 -$as_echo_n "checking if MCA component fbtl:posix can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ime_client_native2_init (); +int +main () +{ +return ime_client_native2_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' im_client; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ime_client_native2_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ime_client_native2_init+:} false; then : + break +fi +done +if ${ac_cv_search_ime_client_native2_init+:} false; then : - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_fbtl" = "posix" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_fbtl_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** fbtl component posix was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_fbtl" = "posix" ; then -as_fn_error $? "*** fbtl component posix was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +else + ac_cv_search_ime_client_native2_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_client_native2_init" >&5 +$as_echo "$ac_cv_search_ime_client_native2_init" >&6; } +ac_res=$ac_cv_search_ime_client_native2_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$fbtl_posix_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + unset ac_cv_search_ime_client_native2_init +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -287364,7 +314341,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -287383,56 +314360,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $fbtl_posix_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -287445,7 +314382,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -287464,7 +314401,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -287472,187 +314409,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fbtl_posix_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libim_client requires libnl v1 or v3" >&5 +$as_echo_n "checking if libim_client requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ime_client_native2_init (void); +int main(int argc, char *argv[]) { + ime_client_native2_init (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:314436: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lim_client $LIBS $fs_ime_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lim_client $LIBS $fs_ime_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:314443: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib im_client" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib im_client" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libim_client links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libim_client links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas im_client requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas im_client requires libnl" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs im_client" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones -fi - if test "$fbtl_posix_WRAPPER_EXTRA_LIBS" = ""; then : +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $fbtl_posix_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libim_client requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libim_client requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} + + libnl_sane=0 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + opal_libnlv3_libs="$opal_libnlv3_libs im_client" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +# Go through each item in the variable and only keep the unique ones - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do -else + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_done="`expr $opal_i \>= $opal_count`" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Increment the counter - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $fbtl_posix_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -287676,75 +314702,10 @@ done -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$fbtl_posix_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $fbtl_posix_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -287767,256 +314728,66 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fbtl_posix_WRAPPER_EXTRA_CPPFLAGS ($fbtl_posix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring fbtl_posix_WRAPPER_EXTRA_CPPFLAGS ($fbtl_posix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fbtl:posix can compile" >&5 -$as_echo_n "checking if MCA component fbtl:posix can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_fbtl" = "posix" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"posix\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"posix\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_fbtl" ; then - if test "$DIRECT_fbtl" = "posix" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"posix\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"posix\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - # add component to all component list - all_components="$all_components posix" fi - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_fbtl_posix_DSO=1 -else - BUILD_ompi_fbtl_posix_DSO=0 -fi - if test "$BUILD_ompi_fbtl_posix_DSO" = "1"; then - MCA_BUILD_ompi_fbtl_posix_DSO_TRUE= - MCA_BUILD_ompi_fbtl_posix_DSO_FALSE='#' + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ime_client_native2_init" != "no" && + test "$ac_cv_search_ime_client_native2_init" != "none required"; then : + fs_ime_LIBS="$ac_cv_search_ime_client_native2_init " else - MCA_BUILD_ompi_fbtl_posix_DSO_TRUE='#' - MCA_BUILD_ompi_fbtl_posix_DSO_FALSE= + fs_ime_LIBS="" fi - - - if test "$should_build" = "1"; then : - components_last_result=1 + opal_check_package_happy="yes" else - components_last_result=0 + opal_check_package_happy="no" fi - unset compile_mode - - - - - - opal_show_subsubsubtitle "MCA component fbtl:pvfs2 (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/ompi/mca/fbtl/pvfs2" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_fbtl" ; then - if test "$DIRECT_fbtl" = "pvfs2" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_fbtl" = "1"; then : - want_component=0 -fi - if test "$DISABLE_fbtl_pvfs2" = "1"; then : - want_component=0 -fi - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 fi + unset opal_check_package_header_happy - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_fbtl" - SHARED_COMPONENT="$DSO_fbtl_pvfs2" - - STATIC_FRAMEWORK="$STATIC_fbtl" - STATIC_COMPONENT="$STATIC_fbtl_pvfs2" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fbtl:pvfs2 compile mode" >&5 -$as_echo_n "checking for MCA component fbtl:pvfs2 compile mode... " >&6; } - if test "$DIRECT_fbtl" = "pvfs2" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # try to configure the component - - ac_config_files="$ac_config_files ompi/mca/fbtl/pvfs2/Makefile" - - - - - check_pvfs2_CPPFLAGS= - check_pvfs2_LDFLAGS= - check_pvfs2_LIBS= - - check_pvfs2_configuration="none" - ompi_check_pvfs2_happy="yes" - - - # Get some configuration information - -# Check whether --with-pvfs2 was given. -if test "${with_pvfs2+set}" = set; then : - withval=$with_pvfs2; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-pvfs2 value" >&5 -$as_echo_n "checking --with-pvfs2 value... " >&6; } - if test "$with_pvfs2" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-pvfs2)" >&5 -$as_echo "simple no (specified --without-pvfs2)" >&6; } -else - if test "$with_pvfs2" = "yes" || test "x$with_pvfs2" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_pvfs2"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_pvfs2 not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_pvfs2 not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_pvfs2/include/pvfs2.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_pvfs2/include/pvfs2.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_pvfs2/include/pvfs2.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_pvfs2)" >&5 -$as_echo "sanity check ok ($with_pvfs2)" >&6; } - -fi - - -fi - - -fi - - -fi - - - if test "$with_pvfs2" = "no"; then : - ompi_check_pvfs2_happy="no" -else - if test -z "$with_pvfs2"; then : - ompi_check_pvfs2_dir="/usr/local" -else - ompi_check_pvfs2_dir=$with_pvfs2 -fi - - if test -e "$ompi_check_pvfs2_dir/lib64" ; then - ompi_check_pvfs2_libdir="$ompi_check_pvfs2_dir/lib64" - else - ompi_check_pvfs2_libdir="$ompi_check_pvfs2_dir/lib" - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # Add correct -I and -L flags - opal_check_package_fbtl_pvfs2_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_fbtl_pvfs2_save_LDFLAGS="$LDFLAGS" - opal_check_package_fbtl_pvfs2_save_LIBS="$LIBS" - opal_check_package_fbtl_pvfs2_orig_CPPFLAGS="$fbtl_pvfs2_CPPFLAGS" - opal_check_package_fbtl_pvfs2_orig_LDFLAGS="$fbtl_pvfs2_LDFLAGS" - opal_check_package_fbtl_pvfs2_orig_LIBS="$fbtl_pvfs2_LIBS" + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_ime_happy="yes" +else + fs_ime_CPPFLAGS="$opal_check_package_fs_ime_orig_CPPFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + fs_ime_LIBS="$opal_check_package_fs_ime_orig_LIBS" + + opal_check_package_fs_ime_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_fs_ime_save_LDFLAGS="$LDFLAGS" + opal_check_package_fs_ime_save_LIBS="$LIBS" + + opal_check_package_fs_ime_orig_CPPFLAGS="$fs_ime_CPPFLAGS" + opal_check_package_fs_ime_orig_LDFLAGS="$fs_ime_LDFLAGS" + opal_check_package_fs_ime_orig_LIBS="$fs_ime_LIBS" # This is stolen from autoconf to peek under the covers to get the @@ -288064,22 +314835,22 @@ # so this sucks, but there's no way to get through the progression # of header includes without killing off the cache variable and trying # again... - unset ac_cv_header_pvfs2_h + unset ac_cv_header_ime_native_h # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_pvfs2_dir | sed -e 'sX/*$XXg') + dir_prefix=$(echo $ompi_check_ime_dir | sed -e 'sX/*$XXg') opal_check_package_header_happy="no" if test "$dir_prefix" = "/usr" || \ test "$dir_prefix" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 $as_echo "looking for header without includes" >&6; } - for ac_header in pvfs2.h + for ac_header in ime_native.h do : - ac_fn_c_check_header_mongrel "$LINENO" "pvfs2.h" "ac_cv_header_pvfs2_h" "$ac_includes_default" -if test "x$ac_cv_header_pvfs2_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "ime_native.h" "ac_cv_header_ime_native_h" "$ac_includes_default" +if test "x$ac_cv_header_ime_native_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_PVFS2_H 1 +#define HAVE_IME_NATIVE_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -288088,21 +314859,21 @@ if test "$opal_check_package_header_happy" = "no"; then : # no go on the as is - reset the cache and try again - unset ac_cv_header_pvfs2_h + unset ac_cv_header_ime_native_h fi fi if test "$opal_check_package_header_happy" = "no"; then : if test "$dir_prefix" != ""; then : - fbtl_pvfs2_CPPFLAGS="$fbtl_pvfs2_CPPFLAGS -I$dir_prefix/include" + fs_ime_CPPFLAGS="$fs_ime_CPPFLAGS -I$dir_prefix/include" CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" fi - for ac_header in pvfs2.h + for ac_header in ime_native.h do : - ac_fn_c_check_header_mongrel "$LINENO" "pvfs2.h" "ac_cv_header_pvfs2_h" "$ac_includes_default" -if test "x$ac_cv_header_pvfs2_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "ime_native.h" "ac_cv_header_ime_native_h" "$ac_includes_default" +if test "x$ac_cv_header_ime_native_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_PVFS2_H 1 +#define HAVE_IME_NATIVE_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -288117,15 +314888,15 @@ # see comment above - unset ac_cv_search_PVFS_util_resolve + unset ac_cv_search_ime_native_init opal_check_package_lib_happy="no" - if test "$ompi_check_pvfs2_libdir" != ""; then : + if test "$ompi_check_ime_libdir" != ""; then : # libdir was specified - search only there - fbtl_pvfs2_LDFLAGS="$fbtl_pvfs2_LDFLAGS -L$ompi_check_pvfs2_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_pvfs2_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 -$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } -if ${ac_cv_search_PVFS_util_resolve+:} false; then : + fs_ime_LDFLAGS="$fs_ime_LDFLAGS -L$ompi_check_ime_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ime_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_native_init" >&5 +$as_echo_n "checking for library containing ime_native_init... " >&6; } +if ${ac_cv_search_ime_native_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -288138,16 +314909,16 @@ #ifdef __cplusplus extern "C" #endif -char PVFS_util_resolve (); +char ime_native_init (); int main () { -return PVFS_util_resolve (); +return ime_native_init (); ; return 0; } _ACEOF -for ac_lib in '' pvfs2; do +for ac_lib in '' im_client; do if test -z "$ac_lib"; then ac_res="none required" else @@ -288155,25 +314926,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PVFS_util_resolve=$ac_res + ac_cv_search_ime_native_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PVFS_util_resolve+:} false; then : + if ${ac_cv_search_ime_native_init+:} false; then : break fi done -if ${ac_cv_search_PVFS_util_resolve+:} false; then : +if ${ac_cv_search_ime_native_init+:} false; then : else - ac_cv_search_PVFS_util_resolve=no + ac_cv_search_ime_native_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 -$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } -ac_res=$ac_cv_search_PVFS_util_resolve +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_native_init" >&5 +$as_echo "$ac_cv_search_ime_native_init" >&6; } +ac_res=$ac_cv_search_ime_native_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -288182,22 +314953,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" - fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" - unset ac_cv_search_PVFS_util_resolve + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + unset ac_cv_search_ime_native_init fi else # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_pvfs2_dir" + opal_check_package_libdir="$ompi_check_ime_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 -$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } -if ${ac_cv_search_PVFS_util_resolve+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_native_init" >&5 +$as_echo_n "checking for library containing ime_native_init... " >&6; } +if ${ac_cv_search_ime_native_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -288210,16 +314981,16 @@ #ifdef __cplusplus extern "C" #endif -char PVFS_util_resolve (); +char ime_native_init (); int main () { -return PVFS_util_resolve (); +return ime_native_init (); ; return 0; } _ACEOF -for ac_lib in '' pvfs2; do +for ac_lib in '' im_client; do if test -z "$ac_lib"; then ac_res="none required" else @@ -288227,25 +314998,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PVFS_util_resolve=$ac_res + ac_cv_search_ime_native_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PVFS_util_resolve+:} false; then : + if ${ac_cv_search_ime_native_init+:} false; then : break fi done -if ${ac_cv_search_PVFS_util_resolve+:} false; then : +if ${ac_cv_search_ime_native_init+:} false; then : else - ac_cv_search_PVFS_util_resolve=no + ac_cv_search_ime_native_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 -$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } -ac_res=$ac_cv_search_PVFS_util_resolve +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_native_init" >&5 +$as_echo "$ac_cv_search_ime_native_init" >&6; } +ac_res=$ac_cv_search_ime_native_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -288255,21 +315026,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" - fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" - unset ac_cv_search_PVFS_util_resolve + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + unset ac_cv_search_ime_native_init fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - fbtl_pvfs2_LDFLAGS="$fbtl_pvfs2_LDFLAGS -L$opal_check_package_libdir/lib" + fs_ime_LDFLAGS="$fs_ime_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 -$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } -if ${ac_cv_search_PVFS_util_resolve+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_native_init" >&5 +$as_echo_n "checking for library containing ime_native_init... " >&6; } +if ${ac_cv_search_ime_native_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -288282,16 +315053,16 @@ #ifdef __cplusplus extern "C" #endif -char PVFS_util_resolve (); +char ime_native_init (); int main () { -return PVFS_util_resolve (); +return ime_native_init (); ; return 0; } _ACEOF -for ac_lib in '' pvfs2; do +for ac_lib in '' im_client; do if test -z "$ac_lib"; then ac_res="none required" else @@ -288299,25 +315070,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PVFS_util_resolve=$ac_res + ac_cv_search_ime_native_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PVFS_util_resolve+:} false; then : + if ${ac_cv_search_ime_native_init+:} false; then : break fi done -if ${ac_cv_search_PVFS_util_resolve+:} false; then : +if ${ac_cv_search_ime_native_init+:} false; then : else - ac_cv_search_PVFS_util_resolve=no + ac_cv_search_ime_native_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 -$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } -ac_res=$ac_cv_search_PVFS_util_resolve +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_native_init" >&5 +$as_echo "$ac_cv_search_ime_native_init" >&6; } +ac_res=$ac_cv_search_ime_native_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -288327,22 +315098,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" - fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" - unset ac_cv_search_PVFS_util_resolve + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + unset ac_cv_search_ime_native_init fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - fbtl_pvfs2_LDFLAGS="$fbtl_pvfs2_LDFLAGS -L$opal_check_package_libdir/lib64" + fs_ime_LDFLAGS="$fs_ime_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 -$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } -if ${ac_cv_search_PVFS_util_resolve+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_native_init" >&5 +$as_echo_n "checking for library containing ime_native_init... " >&6; } +if ${ac_cv_search_ime_native_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -288355,16 +315126,16 @@ #ifdef __cplusplus extern "C" #endif -char PVFS_util_resolve (); +char ime_native_init (); int main () { -return PVFS_util_resolve (); +return ime_native_init (); ; return 0; } _ACEOF -for ac_lib in '' pvfs2; do +for ac_lib in '' im_client; do if test -z "$ac_lib"; then ac_res="none required" else @@ -288372,25 +315143,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PVFS_util_resolve=$ac_res + ac_cv_search_ime_native_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PVFS_util_resolve+:} false; then : + if ${ac_cv_search_ime_native_init+:} false; then : break fi done -if ${ac_cv_search_PVFS_util_resolve+:} false; then : +if ${ac_cv_search_ime_native_init+:} false; then : else - ac_cv_search_PVFS_util_resolve=no + ac_cv_search_ime_native_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 -$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } -ac_res=$ac_cv_search_PVFS_util_resolve +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_native_init" >&5 +$as_echo "$ac_cv_search_ime_native_init" >&6; } +ac_res=$ac_cv_search_ime_native_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -288400,9 +315171,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" - fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" - unset ac_cv_search_PVFS_util_resolve + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + unset ac_cv_search_ime_native_init fi fi fi @@ -288499,12 +315270,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpvfs2 requires libnl v1 or v3" >&5 -$as_echo_n "checking if libpvfs2 requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libim_client requires libnl v1 or v3" >&5 +$as_echo_n "checking if libim_client requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void PVFS_util_resolve (void); +extern void ime_native_init (void); int main(int argc, char *argv[]) { - PVFS_util_resolve (); + ime_native_init (); return 0; } EOF @@ -288516,14 +315287,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:288519: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpvfs2 $LIBS $fbtl_pvfs2_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpvfs2 $LIBS $fbtl_pvfs2_LIBS 1>&5 2>&1 +echo "configure:315290: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lim_client $LIBS $fs_ime_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lim_client $LIBS $fs_ime_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:288526: \$? = $opal_status" >&5 + echo "configure:315297: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -288543,8 +315314,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib pvfs2" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib pvfs2" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib im_client" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib im_client" >&2;} fi @@ -288558,15 +315329,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpvfs2 links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libpvfs2 links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libim_client links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libim_client links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} libnl_sane=0 fi @@ -288575,19 +315346,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pvfs2 requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pvfs2 requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas im_client requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas im_client requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs pvfs2" + opal_libnlv1_libs="$opal_libnlv1_libs im_client" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -288666,19 +315437,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpvfs2 requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpvfs2 requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libim_client requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libim_client requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs pvfs2" + opal_libnlv3_libs="$opal_libnlv3_libs im_client" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -288819,11 +315590,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_PVFS_util_resolve" != "no" && - test "$ac_cv_search_PVFS_util_resolve" != "none required"; then : - fbtl_pvfs2_LIBS="$ac_cv_search_PVFS_util_resolve " + if test "$ac_cv_search_ime_native_init" != "no" && + test "$ac_cv_search_ime_native_init" != "none required"; then : + fs_ime_LIBS="$ac_cv_search_ime_native_init " else - fbtl_pvfs2_LIBS="" + fs_ime_LIBS="" fi opal_check_package_happy="yes" else @@ -288842,15 +315613,15 @@ # see comment above - unset ac_cv_search_PVFS_util_resolve + unset ac_cv_search_ime_native_init opal_check_package_lib_happy="no" - if test "$ompi_check_pvfs2_libdir" != ""; then : + if test "$ompi_check_ime_libdir" != ""; then : # libdir was specified - search only there - fbtl_pvfs2_LDFLAGS="$fbtl_pvfs2_LDFLAGS -L$ompi_check_pvfs2_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_pvfs2_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 -$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } -if ${ac_cv_search_PVFS_util_resolve+:} false; then : + fs_ime_LDFLAGS="$fs_ime_LDFLAGS -L$ompi_check_ime_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ime_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_native_init" >&5 +$as_echo_n "checking for library containing ime_native_init... " >&6; } +if ${ac_cv_search_ime_native_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -288863,16 +315634,16 @@ #ifdef __cplusplus extern "C" #endif -char PVFS_util_resolve (); +char ime_native_init (); int main () { -return PVFS_util_resolve (); +return ime_native_init (); ; return 0; } _ACEOF -for ac_lib in '' pvfs2; do +for ac_lib in '' im_client; do if test -z "$ac_lib"; then ac_res="none required" else @@ -288880,25 +315651,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PVFS_util_resolve=$ac_res + ac_cv_search_ime_native_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PVFS_util_resolve+:} false; then : + if ${ac_cv_search_ime_native_init+:} false; then : break fi done -if ${ac_cv_search_PVFS_util_resolve+:} false; then : +if ${ac_cv_search_ime_native_init+:} false; then : else - ac_cv_search_PVFS_util_resolve=no + ac_cv_search_ime_native_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 -$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } -ac_res=$ac_cv_search_PVFS_util_resolve +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_native_init" >&5 +$as_echo "$ac_cv_search_ime_native_init" >&6; } +ac_res=$ac_cv_search_ime_native_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -288907,22 +315678,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" - fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" - unset ac_cv_search_PVFS_util_resolve + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + unset ac_cv_search_ime_native_init fi else # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_pvfs2_dir" + opal_check_package_libdir="$ompi_check_ime_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 -$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } -if ${ac_cv_search_PVFS_util_resolve+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_native_init" >&5 +$as_echo_n "checking for library containing ime_native_init... " >&6; } +if ${ac_cv_search_ime_native_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -288935,16 +315706,16 @@ #ifdef __cplusplus extern "C" #endif -char PVFS_util_resolve (); +char ime_native_init (); int main () { -return PVFS_util_resolve (); +return ime_native_init (); ; return 0; } _ACEOF -for ac_lib in '' pvfs2; do +for ac_lib in '' im_client; do if test -z "$ac_lib"; then ac_res="none required" else @@ -288952,25 +315723,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PVFS_util_resolve=$ac_res + ac_cv_search_ime_native_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PVFS_util_resolve+:} false; then : + if ${ac_cv_search_ime_native_init+:} false; then : break fi done -if ${ac_cv_search_PVFS_util_resolve+:} false; then : +if ${ac_cv_search_ime_native_init+:} false; then : else - ac_cv_search_PVFS_util_resolve=no + ac_cv_search_ime_native_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 -$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } -ac_res=$ac_cv_search_PVFS_util_resolve +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_native_init" >&5 +$as_echo "$ac_cv_search_ime_native_init" >&6; } +ac_res=$ac_cv_search_ime_native_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -288980,21 +315751,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" - fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" - unset ac_cv_search_PVFS_util_resolve + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + unset ac_cv_search_ime_native_init fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - fbtl_pvfs2_LDFLAGS="$fbtl_pvfs2_LDFLAGS -L$opal_check_package_libdir/lib" + fs_ime_LDFLAGS="$fs_ime_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 -$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } -if ${ac_cv_search_PVFS_util_resolve+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_native_init" >&5 +$as_echo_n "checking for library containing ime_native_init... " >&6; } +if ${ac_cv_search_ime_native_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -289007,16 +315778,16 @@ #ifdef __cplusplus extern "C" #endif -char PVFS_util_resolve (); +char ime_native_init (); int main () { -return PVFS_util_resolve (); +return ime_native_init (); ; return 0; } _ACEOF -for ac_lib in '' pvfs2; do +for ac_lib in '' im_client; do if test -z "$ac_lib"; then ac_res="none required" else @@ -289024,25 +315795,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PVFS_util_resolve=$ac_res + ac_cv_search_ime_native_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PVFS_util_resolve+:} false; then : + if ${ac_cv_search_ime_native_init+:} false; then : break fi done -if ${ac_cv_search_PVFS_util_resolve+:} false; then : +if ${ac_cv_search_ime_native_init+:} false; then : else - ac_cv_search_PVFS_util_resolve=no + ac_cv_search_ime_native_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 -$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } -ac_res=$ac_cv_search_PVFS_util_resolve +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_native_init" >&5 +$as_echo "$ac_cv_search_ime_native_init" >&6; } +ac_res=$ac_cv_search_ime_native_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -289052,22 +315823,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" - fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" - unset ac_cv_search_PVFS_util_resolve + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + unset ac_cv_search_ime_native_init fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - fbtl_pvfs2_LDFLAGS="$fbtl_pvfs2_LDFLAGS -L$opal_check_package_libdir/lib64" + fs_ime_LDFLAGS="$fs_ime_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 -$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } -if ${ac_cv_search_PVFS_util_resolve+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ime_native_init" >&5 +$as_echo_n "checking for library containing ime_native_init... " >&6; } +if ${ac_cv_search_ime_native_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -289080,16 +315851,16 @@ #ifdef __cplusplus extern "C" #endif -char PVFS_util_resolve (); +char ime_native_init (); int main () { -return PVFS_util_resolve (); +return ime_native_init (); ; return 0; } _ACEOF -for ac_lib in '' pvfs2; do +for ac_lib in '' im_client; do if test -z "$ac_lib"; then ac_res="none required" else @@ -289097,25 +315868,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PVFS_util_resolve=$ac_res + ac_cv_search_ime_native_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PVFS_util_resolve+:} false; then : + if ${ac_cv_search_ime_native_init+:} false; then : break fi done -if ${ac_cv_search_PVFS_util_resolve+:} false; then : +if ${ac_cv_search_ime_native_init+:} false; then : else - ac_cv_search_PVFS_util_resolve=no + ac_cv_search_ime_native_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 -$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } -ac_res=$ac_cv_search_PVFS_util_resolve +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ime_native_init" >&5 +$as_echo "$ac_cv_search_ime_native_init" >&6; } +ac_res=$ac_cv_search_ime_native_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -289125,9 +315896,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" - fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" - unset ac_cv_search_PVFS_util_resolve + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + unset ac_cv_search_ime_native_init fi fi fi @@ -289224,12 +315995,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpvfs2 requires libnl v1 or v3" >&5 -$as_echo_n "checking if libpvfs2 requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libim_client requires libnl v1 or v3" >&5 +$as_echo_n "checking if libim_client requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void PVFS_util_resolve (void); +extern void ime_native_init (void); int main(int argc, char *argv[]) { - PVFS_util_resolve (); + ime_native_init (); return 0; } EOF @@ -289241,14 +316012,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:289244: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpvfs2 $LIBS $fbtl_pvfs2_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpvfs2 $LIBS $fbtl_pvfs2_LIBS 1>&5 2>&1 +echo "configure:316015: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lim_client $LIBS $fs_ime_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lim_client $LIBS $fs_ime_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:289251: \$? = $opal_status" >&5 + echo "configure:316022: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -289268,8 +316039,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib pvfs2" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib pvfs2" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib im_client" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib im_client" >&2;} fi @@ -289283,15 +316054,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpvfs2 links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libpvfs2 links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libim_client links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libim_client links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} libnl_sane=0 fi @@ -289300,19 +316071,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pvfs2 requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pvfs2 requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas im_client requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas im_client requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs pvfs2" + opal_libnlv1_libs="$opal_libnlv1_libs im_client" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -289391,19 +316162,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpvfs2 requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpvfs2 requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libim_client requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libim_client requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libim_client (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libim_client (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libim_client." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libim_client." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs pvfs2" + opal_libnlv3_libs="$opal_libnlv3_libs im_client" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -289544,11 +316315,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_PVFS_util_resolve" != "no" && - test "$ac_cv_search_PVFS_util_resolve" != "none required"; then : - fbtl_pvfs2_LIBS="$ac_cv_search_PVFS_util_resolve " + if test "$ac_cv_search_ime_native_init" != "no" && + test "$ac_cv_search_ime_native_init" != "none required"; then : + fs_ime_LIBS="$ac_cv_search_ime_native_init " else - fbtl_pvfs2_LIBS="" + fs_ime_LIBS="" fi opal_check_package_happy="yes" else @@ -289583,872 +316354,92 @@ if test "$opal_check_package_happy" = "yes"; then : - ompi_check_pvfs2_happy="yes" -else - fbtl_pvfs2_CPPFLAGS="$opal_check_package_fbtl_pvfs2_orig_CPPFLAGS" - fbtl_pvfs2_LDFLAGS="$opal_check_package_fbtl_pvfs2_orig_LDFLAGS" - fbtl_pvfs2_LIBS="$opal_check_package_fbtl_pvfs2_orig_LIBS" - ompi_check_pvfs2_happy="no" -fi - - CPPFLAGS="$opal_check_package_fbtl_pvfs2_save_CPPFLAGS" - LDFLAGS="$opal_check_package_fbtl_pvfs2_save_LDFLAGS" - LIBS="$opal_check_package_fbtl_pvfs2_save_LIBS" - - -fi - - if test "$ompi_check_pvfs2_happy" = "yes"; then : - fbtl_pvfs2_happy="yes" -else - if test ! -z "$with_pvfs2" && test "$with_pvfs2" != "no"; then : - echo PVFS2 support not found -fi - fbtl_pvfs2_happy="no" -fi - - - - if test "$fbtl_pvfs2_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi - - - - # substitute in the things needed to build pvfs2 - - - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/fbtl/pvfs2/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components pvfs2" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components pvfs2" - else - if test "fbtl" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/fbtl/pvfs2/lib${OMPI_LIB_PREFIX}mca_fbtl_pvfs2.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/fbtl/pvfs2/libmca_fbtl_pvfs2.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_fbtl_pvfs2_component;" >> $outfile.extern - echo " &mca_fbtl_pvfs2_component, " >> $outfile.struct - static_components="$static_components pvfs2" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fbtl:pvfs2 can compile" >&5 -$as_echo_n "checking if MCA component fbtl:pvfs2 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_fbtl" = "pvfs2" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_fbtl_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** fbtl component pvfs2 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_fbtl" = "pvfs2" ; then -as_fn_error $? "*** fbtl component pvfs2 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$fbtl_pvfs2_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $fbtl_pvfs2_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $fbtl_pvfs2_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - if test "$fbtl_pvfs2_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $fbtl_pvfs2_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $fbtl_pvfs2_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$fbtl_pvfs2_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $fbtl_pvfs2_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi + ompi_check_ime_happy="yes" else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fbtl_pvfs2_WRAPPER_EXTRA_CPPFLAGS ($fbtl_pvfs2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring fbtl_pvfs2_WRAPPER_EXTRA_CPPFLAGS ($fbtl_pvfs2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi + fs_ime_CPPFLAGS="$opal_check_package_fs_ime_orig_CPPFLAGS" + fs_ime_LDFLAGS="$opal_check_package_fs_ime_orig_LDFLAGS" + fs_ime_LIBS="$opal_check_package_fs_ime_orig_LIBS" + ompi_check_ime_happy="no" fi -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fbtl:pvfs2 can compile" >&5 -$as_echo_n "checking if MCA component fbtl:pvfs2 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_fbtl" = "pvfs2" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pvfs2\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pvfs2\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + CPPFLAGS="$opal_check_package_fs_ime_save_CPPFLAGS" + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + LIBS="$opal_check_package_fs_ime_save_LIBS" - if test ! -z "$DIRECT_fbtl" ; then - if test "$DIRECT_fbtl" = "pvfs2" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pvfs2\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pvfs2\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - # add component to all component list - all_components="$all_components pvfs2" fi + CPPFLAGS="$opal_check_package_fs_ime_save_CPPFLAGS" + LDFLAGS="$opal_check_package_fs_ime_save_LDFLAGS" + LIBS="$opal_check_package_fs_ime_save_LIBS" - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_fbtl_pvfs2_DSO=1 -else - BUILD_ompi_fbtl_pvfs2_DSO=0 -fi - if test "$BUILD_ompi_fbtl_pvfs2_DSO" = "1"; then - MCA_BUILD_ompi_fbtl_pvfs2_DSO_TRUE= - MCA_BUILD_ompi_fbtl_pvfs2_DSO_FALSE='#' -else - MCA_BUILD_ompi_fbtl_pvfs2_DSO_TRUE='#' - MCA_BUILD_ompi_fbtl_pvfs2_DSO_FALSE= fi - - if test "$should_build" = "1"; then : - components_last_result=1 + if test "$ompi_check_ime_happy" = "yes"; then : + fs_ime_happy="yes" else - components_last_result=0 -fi - - unset compile_mode - - - - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - - if test "$want_io_ompio" != "0"; then : - - for component_path in $srcdir/ompi/mca/fbtl/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component fbtl:$component (need to configure)" - - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - - - - component_path="$srcdir/ompi/mca/fbtl/$component" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_fbtl" ; then - if test "$DIRECT_fbtl" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_fbtl" = "1"; then : - want_component=0 + if test ! -z "$with_ime" && test "$with_ime" != "no"; then : + echo IME support not found fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_fbtl_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi - - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 + fs_ime_happy="no" fi - SHARED_FRAMEWORK="$DSO_fbtl" - str="SHARED_COMPONENT=\$DSO_fbtl_$component" - eval $str - - STATIC_FRAMEWORK="$STATIC_fbtl" - str="STATIC_COMPONENT=\$STATIC_fbtl_$component" - eval $str - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fbtl:$component compile mode" >&5 -$as_echo_n "checking for MCA component fbtl:$component compile mode... " >&6; } - if test "$DIRECT_fbtl" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - -# -# Invoke configure in a specific subdirectory. -# -# ompi/mca/fbtl/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="ompi/mca/fbtl/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - # - # Construct the --cache-file argument - # - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # - # Invoke the configure script in the subdirectory - # + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # - # Go back to the topdir - # + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str - cd $subdir_parent -fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# -# Clean up -# + + ompi_summary_section=$(echo OMPIO File Systems | tr ' ' '_') + ompi_summary_line="DDN Infinite Memory Engine: $fs_ime_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi # Unwind the index @@ -290471,80 +316462,65 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/ompi/mca/fbtl/all_components/post_configure.sh" - if test -f $infile; then + if test "$fs_ime_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi + # substitute in the things needed to build ime - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - fbtl_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - fbtl_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/fbtl/$component/post_configure.sh" + infile="$srcdir/ompi/mca/fs/ime/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + all_components="$all_components ime" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" + dso_components="$dso_components ime" else - if test "fbtl" = "common"; then + if test "fs" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/fbtl/$component/lib${OMPI_LIB_PREFIX}mca_fbtl_$component.la $static_ltlibs" + static_ltlibs="mca/fs/ime/lib${OMPI_LIB_PREFIX}mca_fs_ime.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/fbtl/$component/libmca_fbtl_$component.la $static_ltlibs" + static_ltlibs="mca/fs/ime/libmca_fs_ime.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_fbtl_$component_component;" >> $outfile.extern - echo " &mca_fbtl_$component_component, " >> $outfile.struct - static_components="$static_components $component" + echo "extern const mca_base_component_t mca_fs_ime_component;" >> $outfile.extern + echo " &mca_fs_ime_component, " >> $outfile.struct + static_components="$static_components ime" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fbtl:$component can compile" >&5 -$as_echo_n "checking if MCA component fbtl:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:ime can compile" >&5 +$as_echo_n "checking if MCA component fs:ime can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_fbtl" = "$component" ; then + if test "$DIRECT_fs" = "ime" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_fbtl_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_fs_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** fbtl component $component was supposed to be direct-called, but +as_fn_error $? "*** fs component ime was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -290552,8 +316528,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_fbtl" = "$component" ; then -as_fn_error $? "*** fbtl component $component was supposed to be direct-called, but + if test "$DIRECT_fs" = "ime" ; then +as_fn_error $? "*** fs component ime was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -290568,8 +316544,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$fbtl_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + if test "$fs_ime_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -290609,7 +316584,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $fs_ime_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -290649,8 +316624,8 @@ unset $opal_var done -str="line=\$fbtl_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + +else @@ -290690,21 +316665,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $fs_ime_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -290731,119 +316706,147 @@ done - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - +fi + if test "$fs_ime_WRAPPER_EXTRA_LIBS" = ""; then : - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fbtl:$component can compile" >&5 -$as_echo_n "checking if MCA component fbtl:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_fbtl" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - if test ! -z "$DIRECT_fbtl" ; then - if test "$DIRECT_fbtl" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi done -fi - - MCA_ompi_fbtl_ALL_COMPONENTS="$all_components" - MCA_ompi_fbtl_STATIC_COMPONENTS="$static_components" - MCA_ompi_fbtl_DSO_COMPONENTS="$dso_components" - MCA_ompi_fbtl_STATIC_LTLIBS="$static_ltlibs" - - - - + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - MCA_ompi_fbtl_ALL_SUBDIRS= - for item in $all_components ; do - MCA_ompi_fbtl_ALL_SUBDIRS="$MCA_ompi_fbtl_ALL_SUBDIRS mca/fbtl/$item" + for arg in $fs_ime_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - MCA_ompi_fbtl_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_ompi_fbtl_STATIC_SUBDIRS="$MCA_ompi_fbtl_STATIC_SUBDIRS mca/fbtl/$item" - done - - + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - MCA_ompi_fbtl_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_ompi_fbtl_DSO_SUBDIRS="$MCA_ompi_fbtl_DSO_SUBDIRS mca/fbtl/$item" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done +else - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "fbtl" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - fi - rm -f $outfile.struct $outfile.extern + done - unset all_components static_components dso_components outfile outfile_real + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + for arg in $fs_ime_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -290866,13 +316869,17 @@ done - MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS fcoll" - MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/fcoll" - MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_fcoll_ALL_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_fcoll_DSO_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_fcoll_STATIC_SUBDIRS)" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/fcoll/libmca_fcoll.la" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_fcoll_STATIC_LTLIBS)" +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$fs_ime_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -290885,7 +316892,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in want_io_ompio; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -290904,7 +316911,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"want_io_ompio\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -290912,66 +316919,121 @@ opal_scope_index=`expr $opal_scope_index + 1` - if test "$enable_io_ompio" != "no"; then : - want_io_ompio=1 + for arg in $fs_ime_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - want_io_ompio=0 + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi fi + done - opal_show_subsubtitle "Configuring MCA framework fcoll" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fs_ime_WRAPPER_EXTRA_CPPFLAGS ($fs_ime_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring fs_ime_WRAPPER_EXTRA_CPPFLAGS ($fs_ime_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=ompi/mca/fcoll/base - as_dir=$outdir; as_fn_mkdir_p +else - # emit Makefile rule - ac_config_files="$ac_config_files ompi/mca/fcoll/Makefile" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:ime can compile" >&5 +$as_echo_n "checking if MCA component fs:ime can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # If this component was requested as the default for this + # type, then abort. + if test "$with_fs" = "ime" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ime\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ime\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern + if test ! -z "$DIRECT_fs" ; then + if test "$DIRECT_fs" = "ime" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ime\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ime\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework fcoll" >&5 -$as_echo_n "checking for no configure components in framework fcoll... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: dynamic, dynamic_gen2, individual, two_phase, vulcan" >&5 -$as_echo "dynamic, dynamic_gen2, individual, two_phase, vulcan" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework fcoll" >&5 -$as_echo_n "checking for m4 configure components in framework fcoll... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } + # add component to all component list + all_components="$all_components ime" +fi - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_fs_ime_DSO=1 +else + BUILD_ompi_fs_ime_DSO=0 +fi + if test "$BUILD_ompi_fs_ime_DSO" = "1"; then + MCA_BUILD_ompi_fs_ime_DSO_TRUE= + MCA_BUILD_ompi_fs_ime_DSO_FALSE='#' +else + MCA_BUILD_ompi_fs_ime_DSO_TRUE='#' + MCA_BUILD_ompi_fs_ime_DSO_FALSE= +fi - # run the configure logic for the no-config components - opal_show_subsubsubtitle "MCA component fcoll:dynamic (no configuration)" + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=$want_io_ompio" + unset compile_mode - component_path="$srcdir/ompi/mca/fcoll/dynamic" + + + opal_show_subsubsubtitle "MCA component fs:lustre (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/ompi/mca/fs/lustre" want_component=0 # build if: @@ -291003,8 +317065,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_fcoll" ; then - if test "$DIRECT_fcoll" = "dynamic" ; then + if test ! -z "$DIRECT_fs" ; then + if test "$DIRECT_fs" = "lustre" ; then want_component=1 else want_component=0 @@ -291013,25 +317075,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_fcoll" = "1"; then : + if test "$DISABLE_fs" = "1"; then : want_component=0 fi - if test "$DISABLE_fcoll_dynamic" = "1"; then : + if test "$DISABLE_fs_lustre" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$want_io_ompio + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_fcoll" - SHARED_COMPONENT="$DSO_fcoll_dynamic" + SHARED_FRAMEWORK="$DSO_fs" + SHARED_COMPONENT="$DSO_fs_lustre" - STATIC_FRAMEWORK="$STATIC_fcoll" - STATIC_COMPONENT="$STATIC_fcoll_dynamic" + STATIC_FRAMEWORK="$STATIC_fs" + STATIC_COMPONENT="$STATIC_fs_lustre" shared_mode_override=static @@ -291049,9 +317113,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fcoll:dynamic compile mode" >&5 -$as_echo_n "checking for MCA component fcoll:dynamic compile mode... " >&6; } - if test "$DIRECT_fcoll" = "dynamic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fs:lustre compile mode" >&5 +$as_echo_n "checking for MCA component fs:lustre compile mode... " >&6; } + if test "$DIRECT_fs" = "lustre" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -291059,158 +317123,107 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + ac_config_files="$ac_config_files ompi/mca/fs/lustre/Makefile" - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/fcoll/dynamic/post_configure.sh" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components dynamic" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components dynamic" - else - if test "fcoll" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/fcoll/dynamic/lib${OMPI_LIB_PREFIX}mca_fcoll_dynamic.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/fcoll/dynamic/libmca_fcoll_dynamic.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_fcoll_dynamic_component;" >> $outfile.extern - echo " &mca_fcoll_dynamic_component, " >> $outfile.struct - static_components="$static_components dynamic" - fi + check_lustre_CPPFLAGS= + check_lustre_LDFLAGS= + check_lustre_LIBS= - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:dynamic can compile" >&5 -$as_echo_n "checking if MCA component fcoll:dynamic can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + check_lustre_save_LIBS="$LIBS" + check_lustre_save_LDFLAGS="$LDFLAGS" + check_lustre_save_CPPFLAGS="$CPPFLAGS" - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_fcoll" = "dynamic" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_fcoll_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** fcoll component dynamic was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_fcoll" = "dynamic" ; then -as_fn_error $? "*** fcoll component dynamic was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + ompi_check_lustre_happy="yes" - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$fcoll_dynamic_WRAPPER_EXTRA_LDFLAGS" = ""; then : + # Get some configuration information +# Check whether --with-lustre was given. +if test "${with_lustre+set}" = set; then : + withval=$with_lustre; +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-lustre value" >&5 +$as_echo_n "checking --with-lustre value... " >&6; } + if test "$with_lustre" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-lustre)" >&5 +$as_echo "simple no (specified --without-lustre)" >&6; } +else + if test "$with_lustre" = "yes" || test "x$with_lustre" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_lustre"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_lustre not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_lustre not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_lustre/include/lustre/lustreapi.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_lustre/include/lustre/lustreapi.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_lustre/include/lustre/lustreapi.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_lustre)" >&5 +$as_echo "sanity check ok ($with_lustre)" >&6; } - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +fi - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + +fi - for arg in $fcoll_dynamic_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + + if test "$with_lustre" = "no"; then : + ompi_check_lustre_happy=no fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + + if test "$ompi_check_lustre_happy" != "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking looking for lustre libraries and header files in" >&5 +$as_echo_n "checking looking for lustre libraries and header files in... " >&6; } + if test "$with_lustre" != "yes"; then : + ompi_check_lustre_dir=$with_lustre + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ($ompi_check_lustre_dir)" >&5 +$as_echo "($ompi_check_lustre_dir)" >&6; } else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 +$as_echo "(default search paths)" >&6; } fi + if test -n "$with_lustre_libdir" && \ + test "$with_lustre_libdir" != "yes"; then : + ompi_check_lustre_libdir=$with_lustre_libdir fi - done +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$ompi_check_lustre_happy" != "no" ; then : - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + opal_check_package_fs_lustre_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_fs_lustre_save_LDFLAGS="$LDFLAGS" + opal_check_package_fs_lustre_save_LIBS="$LIBS" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + opal_check_package_fs_lustre_orig_CPPFLAGS="$fs_lustre_CPPFLAGS" + opal_check_package_fs_lustre_orig_LDFLAGS="$fs_lustre_LDFLAGS" + opal_check_package_fs_lustre_orig_LIBS="$fs_lustre_LIBS" -else + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -291223,7 +317236,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -291242,7 +317255,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -291250,49 +317263,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fcoll_dynamic_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_lustre_lustreapi_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $ompi_check_lustre_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in lustre/lustreapi.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "lustre/lustreapi.h" "ac_cv_header_lustre_lustreapi_h" "$ac_includes_default" +if test "x$ac_cv_header_lustre_lustreapi_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LUSTRE_LUSTREAPI_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_lustre_lustreapi_h +fi +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + fs_lustre_CPPFLAGS="$fs_lustre_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in lustre/lustreapi.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "lustre/lustreapi.h" "ac_cv_header_lustre_lustreapi_h" "$ac_includes_default" +if test "x$ac_cv_header_lustre_lustreapi_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LUSTRE_LUSTREAPI_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_llapi_file_create + opal_check_package_lib_happy="no" + if test "$ompi_check_lustre_libdir" != ""; then : + # libdir was specified - search only there + fs_lustre_LDFLAGS="$fs_lustre_LDFLAGS -L$ompi_check_lustre_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_lustre_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing llapi_file_create" >&5 +$as_echo_n "checking for library containing llapi_file_create... " >&6; } +if ${ac_cv_search_llapi_file_create+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char llapi_file_create (); +int +main () +{ +return llapi_file_create (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lustreapi; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_llapi_file_create=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_llapi_file_create+:} false; then : + break +fi +done +if ${ac_cv_search_llapi_file_create+:} false; then : + +else + ac_cv_search_llapi_file_create=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_llapi_file_create" >&5 +$as_echo "$ac_cv_search_llapi_file_create" >&6; } +ac_res=$ac_cv_search_llapi_file_create +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" + fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" + unset ac_cv_search_llapi_file_create +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_lustre_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing llapi_file_create" >&5 +$as_echo_n "checking for library containing llapi_file_create... " >&6; } +if ${ac_cv_search_llapi_file_create+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char llapi_file_create (); +int +main () +{ +return llapi_file_create (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lustreapi; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_llapi_file_create=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_llapi_file_create+:} false; then : + break +fi +done +if ${ac_cv_search_llapi_file_create+:} false; then : + +else + ac_cv_search_llapi_file_create=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_llapi_file_create" >&5 +$as_echo "$ac_cv_search_llapi_file_create" >&6; } +ac_res=$ac_cv_search_llapi_file_create +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" + fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" + unset ac_cv_search_llapi_file_create +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fs_lustre_LDFLAGS="$fs_lustre_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing llapi_file_create" >&5 +$as_echo_n "checking for library containing llapi_file_create... " >&6; } +if ${ac_cv_search_llapi_file_create+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char llapi_file_create (); +int +main () +{ +return llapi_file_create (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lustreapi; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_llapi_file_create=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_llapi_file_create+:} false; then : + break +fi +done +if ${ac_cv_search_llapi_file_create+:} false; then : + +else + ac_cv_search_llapi_file_create=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_llapi_file_create" >&5 +$as_echo "$ac_cv_search_llapi_file_create" >&6; } +ac_res=$ac_cv_search_llapi_file_create +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" + fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" + unset ac_cv_search_llapi_file_create +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fs_lustre_LDFLAGS="$fs_lustre_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing llapi_file_create" >&5 +$as_echo_n "checking for library containing llapi_file_create... " >&6; } +if ${ac_cv_search_llapi_file_create+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char llapi_file_create (); +int +main () +{ +return llapi_file_create (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lustreapi; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_llapi_file_create=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_llapi_file_create+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg +done +if ${ac_cv_search_llapi_file_create+:} false; then : + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + ac_cv_search_llapi_file_create=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_llapi_file_create" >&5 +$as_echo "$ac_cv_search_llapi_file_create" >&6; } +ac_res=$ac_cv_search_llapi_file_create +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" + fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" + unset ac_cv_search_llapi_file_create fi - if test "$fcoll_dynamic_WRAPPER_EXTRA_LIBS" = ""; then : +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -291305,7 +317626,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -291324,56 +317645,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $fcoll_dynamic_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -291386,7 +317667,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -291405,7 +317686,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -291413,418 +317694,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fcoll_dynamic_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if liblustreapi requires libnl v1 or v3" >&5 +$as_echo_n "checking if liblustreapi requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void llapi_file_create (void); +int main(int argc, char *argv[]) { + llapi_file_create (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:317721: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llustreapi $LIBS $fs_lustre_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llustreapi $LIBS $fs_lustre_LIBS 1>&5 2>&1 +opal_status=$? +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:317728: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$fcoll_dynamic_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib lustreapi" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib lustreapi" >&2;} +fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, liblustreapi links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, liblustreapi links to both libnl and libnl-3." >&2;} - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblustreapi (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblustreapi (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblustreapi." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblustreapi." >&2;} - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + libnl_sane=0 +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lustreapi requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lustreapi requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblustreapi (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblustreapi (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblustreapi." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblustreapi." >&2;} - for arg in $fcoll_dynamic_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + libnl_sane=0 else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + opal_libnlv1_libs="$opal_libnlv1_libs lustreapi" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +# Go through each item in the variable and only keep the unique ones - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fcoll_dynamic_WRAPPER_EXTRA_CPPFLAGS ($fcoll_dynamic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring fcoll_dynamic_WRAPPER_EXTRA_CPPFLAGS ($fcoll_dynamic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - else + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:dynamic can compile" >&5 -$as_echo_n "checking if MCA component fcoll:dynamic can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Check the ending condition - # If this component was requested as the default for this - # type, then abort. - if test "$with_fcoll" = "dynamic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dynamic\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"dynamic\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_done="`expr $opal_i \>= $opal_count`" - if test ! -z "$DIRECT_fcoll" ; then - if test "$DIRECT_fcoll" = "dynamic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dynamic\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"dynamic\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Increment the counter - # add component to all component list - all_components="$all_components dynamic" - fi + opal_i="`expr $opal_i + 1`" + done - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_ompi_fcoll_dynamic_DSO=1 + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - BUILD_ompi_fcoll_dynamic_DSO=0 + opal_i="`expr $opal_i - 1`" fi - if test "$BUILD_ompi_fcoll_dynamic_DSO" = "1"; then - MCA_BUILD_ompi_fcoll_dynamic_DSO_TRUE= - MCA_BUILD_ompi_fcoll_dynamic_DSO_FALSE='#' -else - MCA_BUILD_ompi_fcoll_dynamic_DSO_TRUE='#' - MCA_BUILD_ompi_fcoll_dynamic_DSO_FALSE= -fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - ac_config_files="$ac_config_files ompi/mca/fcoll/dynamic/Makefile" +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - unset compile_mode + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - opal_show_subsubsubtitle "MCA component fcoll:dynamic_gen2 (no configuration)" +# Done; do the assignment - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=$want_io_ompio" +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi - component_path="$srcdir/ompi/mca/fcoll/dynamic_gen2" - want_component=0 +fi - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_fcoll" ; then - if test "$DIRECT_fcoll" = "dynamic_gen2" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblustreapi requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblustreapi requires libnl-3" >&2;} - # if we were explicitly disabled, don't build :) - if test "$DISABLE_fcoll" = "1"; then : - want_component=0 -fi - if test "$DISABLE_fcoll_dynamic_gen2" = "1"; then : - want_component=0 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblustreapi (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblustreapi (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblustreapi." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblustreapi." >&2;} - if test "$want_component" = "1"; then : - should_build=$want_io_ompio + libnl_sane=0 else - should_build=0 -fi + opal_libnlv3_libs="$opal_libnlv3_libs lustreapi" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - SHARED_FRAMEWORK="$DSO_fcoll" - SHARED_COMPONENT="$DSO_fcoll_dynamic_gen2" +# Go through each item in the variable and only keep the unique ones - STATIC_FRAMEWORK="$STATIC_fcoll" - STATIC_COMPONENT="$STATIC_fcoll_dynamic_gen2" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - shared_mode_override=static + # Loop over every token we've seen so far - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fcoll:dynamic_gen2 compile mode" >&5 -$as_echo_n "checking for MCA component fcoll:dynamic_gen2 compile mode... " >&6; } - if test "$DIRECT_fcoll" = "dynamic_gen2" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "$should_build" = "1" ; then + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/fcoll/dynamic_gen2/post_configure.sh" + opal_i="`expr $opal_i + 1`" + done - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components dynamic_gen2" + # If we didn't find the token, add it to the "array" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components dynamic_gen2" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - if test "fcoll" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/fcoll/dynamic_gen2/lib${OMPI_LIB_PREFIX}mca_fcoll_dynamic_gen2.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/fcoll/dynamic_gen2/libmca_fcoll_dynamic_gen2.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_fcoll_dynamic_gen2_component;" >> $outfile.extern - echo " &mca_fcoll_dynamic_gen2_component, " >> $outfile.struct - static_components="$static_components dynamic_gen2" + opal_i="`expr $opal_i - 1`" fi +done - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:dynamic_gen2 can compile" >&5 -$as_echo_n "checking if MCA component fcoll:dynamic_gen2 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +# Take all the items in the "array" and assemble them back into a +# single variable - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_fcoll" = "dynamic_gen2" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_fcoll_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** fcoll component dynamic_gen2 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_fcoll" = "dynamic_gen2" ; then -as_fn_error $? "*** fcoll component dynamic_gen2 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$fcoll_dynamic_gen2_WRAPPER_EXTRA_LDFLAGS" = ""; then : + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Clean up - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - for arg in $fcoll_dynamic_gen2_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + opal_libnl_sane=$libnl_sane # Unwind the index @@ -291848,65 +317987,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $fcoll_dynamic_gen2_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -291929,8 +318013,332 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_llapi_file_create" != "no" && + test "$ac_cv_search_llapi_file_create" != "none required"; then : + fs_lustre_LIBS="$ac_cv_search_llapi_file_create " +else + fs_lustre_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi + + +else + opal_check_package_happy="no" +fi +else + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_llapi_file_create + opal_check_package_lib_happy="no" + if test "$ompi_check_lustre_libdir" != ""; then : + # libdir was specified - search only there + fs_lustre_LDFLAGS="$fs_lustre_LDFLAGS -L$ompi_check_lustre_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_lustre_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing llapi_file_create" >&5 +$as_echo_n "checking for library containing llapi_file_create... " >&6; } +if ${ac_cv_search_llapi_file_create+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char llapi_file_create (); +int +main () +{ +return llapi_file_create (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lustreapi; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_llapi_file_create=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_llapi_file_create+:} false; then : + break +fi +done +if ${ac_cv_search_llapi_file_create+:} false; then : + +else + ac_cv_search_llapi_file_create=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_llapi_file_create" >&5 +$as_echo "$ac_cv_search_llapi_file_create" >&6; } +ac_res=$ac_cv_search_llapi_file_create +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" + fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" + unset ac_cv_search_llapi_file_create +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_lustre_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing llapi_file_create" >&5 +$as_echo_n "checking for library containing llapi_file_create... " >&6; } +if ${ac_cv_search_llapi_file_create+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char llapi_file_create (); +int +main () +{ +return llapi_file_create (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lustreapi; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_llapi_file_create=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_llapi_file_create+:} false; then : + break +fi +done +if ${ac_cv_search_llapi_file_create+:} false; then : + +else + ac_cv_search_llapi_file_create=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_llapi_file_create" >&5 +$as_echo "$ac_cv_search_llapi_file_create" >&6; } +ac_res=$ac_cv_search_llapi_file_create +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" + fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" + unset ac_cv_search_llapi_file_create +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fs_lustre_LDFLAGS="$fs_lustre_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing llapi_file_create" >&5 +$as_echo_n "checking for library containing llapi_file_create... " >&6; } +if ${ac_cv_search_llapi_file_create+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char llapi_file_create (); +int +main () +{ +return llapi_file_create (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lustreapi; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_llapi_file_create=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_llapi_file_create+:} false; then : + break +fi +done +if ${ac_cv_search_llapi_file_create+:} false; then : + +else + ac_cv_search_llapi_file_create=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_llapi_file_create" >&5 +$as_echo "$ac_cv_search_llapi_file_create" >&6; } +ac_res=$ac_cv_search_llapi_file_create +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" + fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" + unset ac_cv_search_llapi_file_create +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fs_lustre_LDFLAGS="$fs_lustre_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing llapi_file_create" >&5 +$as_echo_n "checking for library containing llapi_file_create... " >&6; } +if ${ac_cv_search_llapi_file_create+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char llapi_file_create (); +int +main () +{ +return llapi_file_create (); + ; + return 0; +} +_ACEOF +for ac_lib in '' lustreapi; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_llapi_file_create=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_llapi_file_create+:} false; then : + break +fi +done +if ${ac_cv_search_llapi_file_create+:} false; then : + +else + ac_cv_search_llapi_file_create=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_llapi_file_create" >&5 +$as_echo "$ac_cv_search_llapi_file_create" >&6; } +ac_res=$ac_cv_search_llapi_file_create +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" + fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" + unset ac_cv_search_llapi_file_create fi - if test "$fcoll_dynamic_gen2_WRAPPER_EXTRA_LIBS" = ""; then : +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -291943,7 +318351,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -291962,56 +318370,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $fcoll_dynamic_gen2_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -292024,7 +318392,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -292043,7 +318411,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -292051,418 +318419,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fcoll_dynamic_gen2_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if liblustreapi requires libnl v1 or v3" >&5 +$as_echo_n "checking if liblustreapi requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void llapi_file_create (void); +int main(int argc, char *argv[]) { + llapi_file_create (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:318446: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llustreapi $LIBS $fs_lustre_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llustreapi $LIBS $fs_lustre_LIBS 1>&5 2>&1 +opal_status=$? +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:318453: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$fcoll_dynamic_gen2_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib lustreapi" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib lustreapi" >&2;} +fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, liblustreapi links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, liblustreapi links to both libnl and libnl-3." >&2;} - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblustreapi (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblustreapi (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblustreapi." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblustreapi." >&2;} - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + libnl_sane=0 +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lustreapi requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lustreapi requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblustreapi (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblustreapi (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblustreapi." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblustreapi." >&2;} - for arg in $fcoll_dynamic_gen2_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + libnl_sane=0 else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + opal_libnlv1_libs="$opal_libnlv1_libs lustreapi" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +# Go through each item in the variable and only keep the unique ones - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fcoll_dynamic_gen2_WRAPPER_EXTRA_CPPFLAGS ($fcoll_dynamic_gen2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring fcoll_dynamic_gen2_WRAPPER_EXTRA_CPPFLAGS ($fcoll_dynamic_gen2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - else + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:dynamic_gen2 can compile" >&5 -$as_echo_n "checking if MCA component fcoll:dynamic_gen2 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Check the ending condition - # If this component was requested as the default for this - # type, then abort. - if test "$with_fcoll" = "dynamic_gen2" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dynamic_gen2\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"dynamic_gen2\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_done="`expr $opal_i \>= $opal_count`" - if test ! -z "$DIRECT_fcoll" ; then - if test "$DIRECT_fcoll" = "dynamic_gen2" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dynamic_gen2\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"dynamic_gen2\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Increment the counter - # add component to all component list - all_components="$all_components dynamic_gen2" - fi + opal_i="`expr $opal_i + 1`" + done - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_ompi_fcoll_dynamic_gen2_DSO=1 + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - BUILD_ompi_fcoll_dynamic_gen2_DSO=0 + opal_i="`expr $opal_i - 1`" fi - if test "$BUILD_ompi_fcoll_dynamic_gen2_DSO" = "1"; then - MCA_BUILD_ompi_fcoll_dynamic_gen2_DSO_TRUE= - MCA_BUILD_ompi_fcoll_dynamic_gen2_DSO_FALSE='#' -else - MCA_BUILD_ompi_fcoll_dynamic_gen2_DSO_TRUE='#' - MCA_BUILD_ompi_fcoll_dynamic_gen2_DSO_FALSE= -fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - ac_config_files="$ac_config_files ompi/mca/fcoll/dynamic_gen2/Makefile" +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - unset compile_mode + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - opal_show_subsubsubtitle "MCA component fcoll:individual (no configuration)" +# Done; do the assignment - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=$want_io_ompio" +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi - component_path="$srcdir/ompi/mca/fcoll/individual" - want_component=0 +fi - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_fcoll" ; then - if test "$DIRECT_fcoll" = "individual" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblustreapi requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblustreapi requires libnl-3" >&2;} - # if we were explicitly disabled, don't build :) - if test "$DISABLE_fcoll" = "1"; then : - want_component=0 -fi - if test "$DISABLE_fcoll_individual" = "1"; then : - want_component=0 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblustreapi (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in liblustreapi (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblustreapi." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblustreapi." >&2;} - if test "$want_component" = "1"; then : - should_build=$want_io_ompio + libnl_sane=0 else - should_build=0 -fi + opal_libnlv3_libs="$opal_libnlv3_libs lustreapi" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - SHARED_FRAMEWORK="$DSO_fcoll" - SHARED_COMPONENT="$DSO_fcoll_individual" +# Go through each item in the variable and only keep the unique ones - STATIC_FRAMEWORK="$STATIC_fcoll" - STATIC_COMPONENT="$STATIC_fcoll_individual" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - shared_mode_override=static + # Loop over every token we've seen so far - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fcoll:individual compile mode" >&5 -$as_echo_n "checking for MCA component fcoll:individual compile mode... " >&6; } - if test "$DIRECT_fcoll" = "individual" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "$should_build" = "1" ; then + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/fcoll/individual/post_configure.sh" + opal_i="`expr $opal_i + 1`" + done - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components individual" + # If we didn't find the token, add it to the "array" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components individual" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - if test "fcoll" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/fcoll/individual/lib${OMPI_LIB_PREFIX}mca_fcoll_individual.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/fcoll/individual/libmca_fcoll_individual.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_fcoll_individual_component;" >> $outfile.extern - echo " &mca_fcoll_individual_component, " >> $outfile.struct - static_components="$static_components individual" + opal_i="`expr $opal_i - 1`" fi +done - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:individual can compile" >&5 -$as_echo_n "checking if MCA component fcoll:individual can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +# Take all the items in the "array" and assemble them back into a +# single variable - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_fcoll" = "individual" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_fcoll_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** fcoll component individual was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_fcoll" = "individual" ; then -as_fn_error $? "*** fcoll component individual was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$fcoll_individual_WRAPPER_EXTRA_LDFLAGS" = ""; then : + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Clean up - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - for arg in $fcoll_individual_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + opal_libnl_sane=$libnl_sane # Unwind the index @@ -292486,65 +318712,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $fcoll_individual_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -292567,65 +318738,28 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - if test "$fcoll_individual_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $fcoll_individual_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_llapi_file_create" != "no" && + test "$ac_cv_search_llapi_file_create" != "none required"; then : + fs_lustre_LIBS="$ac_cv_search_llapi_file_create " +else + fs_lustre_LIBS="" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -292649,98 +318783,83 @@ done -else - + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_lustre_happy="yes" +else + fs_lustre_CPPFLAGS="$opal_check_package_fs_lustre_orig_CPPFLAGS" + fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" + fs_lustre_LIBS="$opal_check_package_fs_lustre_orig_LIBS" + ompi_check_lustre_happy="no" +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + CPPFLAGS="$opal_check_package_fs_lustre_save_CPPFLAGS" + LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" + LIBS="$opal_check_package_fs_lustre_save_LIBS" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +fi - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + if test "$ompi_check_lustre_happy" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for required lustre data structures" >&5 +$as_echo_n "checking for required lustre data structures... " >&6; } + cat > conftest.c <&5 +$CC $CFLAGS -I$ompi_check_lustre_dir/include -c conftest.c 1>&5 2>&1 +opal_status=$? +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:318829: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ompi_check_lustre_struct_happy="yes" +else + unset opal_status + ompi_check_lustre_struct_happy="no" + ompi_check_lustre_happy="no" - for arg in $fcoll_individual_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + rm -f conftest.c conftest.o + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_lustre_struct_happy" >&5 +$as_echo "$ompi_check_lustre_struct_happy" >&6; } fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + if test "$ompi_check_lustre_happy" = "yes"; then : + fs_lustre_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + if test -n "$with_lustre" && test "$with_lustre" != "no"; then : + as_fn_error $? "Lustre support requested but not found. Aborting" "$LINENO" 5 fi + fs_lustre_happy="no" fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + if test "$fs_lustre_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 fi - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$fcoll_individual_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : @@ -292753,7 +318872,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -292772,7 +318891,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -292780,24 +318899,20 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fcoll_individual_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ompi_summary_section=$(echo OMPIO File Systems | tr ' ' '_') + ompi_summary_line="Lustre: $fs_lustre_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi # Unwind the index @@ -292813,213 +318928,67 @@ # Get the variable names from that index opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fcoll_individual_WRAPPER_EXTRA_CPPFLAGS ($fcoll_individual_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring fcoll_individual_WRAPPER_EXTRA_CPPFLAGS ($fcoll_individual_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:individual can compile" >&5 -$as_echo_n "checking if MCA component fcoll:individual can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_fcoll" = "individual" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"individual\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"individual\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_fcoll" ; then - if test "$DIRECT_fcoll" = "individual" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"individual\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"individual\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components individual" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_ompi_fcoll_individual_DSO=1 - else - BUILD_ompi_fcoll_individual_DSO=0 - fi - if test "$BUILD_ompi_fcoll_individual_DSO" = "1"; then - MCA_BUILD_ompi_fcoll_individual_DSO_TRUE= - MCA_BUILD_ompi_fcoll_individual_DSO_FALSE='#' -else - MCA_BUILD_ompi_fcoll_individual_DSO_TRUE='#' - MCA_BUILD_ompi_fcoll_individual_DSO_FALSE= -fi - - - ac_config_files="$ac_config_files ompi/mca/fcoll/individual/Makefile" - - - unset compile_mode - - opal_show_subsubsubtitle "MCA component fcoll:two_phase (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=$want_io_ompio" - - - - component_path="$srcdir/ompi/mca/fcoll/two_phase" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_fcoll" ; then - if test "$DIRECT_fcoll" = "two_phase" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_fcoll" = "1"; then : - want_component=0 -fi - if test "$DISABLE_fcoll_two_phase" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$want_io_ompio -else - should_build=0 -fi + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - SHARED_FRAMEWORK="$DSO_fcoll" - SHARED_COMPONENT="$DSO_fcoll_two_phase" - STATIC_FRAMEWORK="$STATIC_fcoll" - STATIC_COMPONENT="$STATIC_fcoll_two_phase" - shared_mode_override=static + # substitute in the things needed to build lustre - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fcoll:two_phase compile mode" >&5 -$as_echo_n "checking for MCA component fcoll:two_phase compile mode... " >&6; } - if test "$DIRECT_fcoll" = "two_phase" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/fcoll/two_phase/post_configure.sh" + infile="$srcdir/ompi/mca/fs/lustre/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components two_phase" + all_components="$all_components lustre" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components two_phase" + dso_components="$dso_components lustre" else - if test "fcoll" = "common"; then + if test "fs" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/fcoll/two_phase/lib${OMPI_LIB_PREFIX}mca_fcoll_two_phase.la $static_ltlibs" + static_ltlibs="mca/fs/lustre/lib${OMPI_LIB_PREFIX}mca_fs_lustre.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/fcoll/two_phase/libmca_fcoll_two_phase.la $static_ltlibs" + static_ltlibs="mca/fs/lustre/libmca_fs_lustre.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_fcoll_two_phase_component;" >> $outfile.extern - echo " &mca_fcoll_two_phase_component, " >> $outfile.struct - static_components="$static_components two_phase" + echo "extern const mca_base_component_t mca_fs_lustre_component;" >> $outfile.extern + echo " &mca_fs_lustre_component, " >> $outfile.struct + static_components="$static_components lustre" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:two_phase can compile" >&5 -$as_echo_n "checking if MCA component fcoll:two_phase can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:lustre can compile" >&5 +$as_echo_n "checking if MCA component fs:lustre can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_fcoll" = "two_phase" ; then + if test "$DIRECT_fs" = "lustre" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_fcoll_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_fs_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** fcoll component two_phase was supposed to be direct-called, but +as_fn_error $? "*** fs component lustre was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -293027,8 +318996,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_fcoll" = "two_phase" ; then -as_fn_error $? "*** fcoll component two_phase was supposed to be direct-called, but + if test "$DIRECT_fs" = "lustre" ; then +as_fn_error $? "*** fs component lustre was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -293043,7 +319012,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$fcoll_two_phase_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$fs_lustre_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -293083,7 +319052,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fcoll_two_phase_LDFLAGS; do + for arg in $fs_lustre_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -293164,7 +319133,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fcoll_two_phase_WRAPPER_EXTRA_LDFLAGS; do + for arg in $fs_lustre_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -293206,7 +319175,7 @@ fi - if test "$fcoll_two_phase_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$fs_lustre_WRAPPER_EXTRA_LIBS" = ""; then : @@ -293246,7 +319215,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fcoll_two_phase_LIBS; do + for arg in $fs_lustre_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -293327,7 +319296,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fcoll_two_phase_WRAPPER_EXTRA_LIBS; do + for arg in $fs_lustre_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -293375,7 +319344,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$fcoll_two_phase_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$fs_lustre_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -293418,7 +319387,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fcoll_two_phase_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $fs_lustre_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -293461,69 +319430,78 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fcoll_two_phase_WRAPPER_EXTRA_CPPFLAGS ($fcoll_two_phase_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring fcoll_two_phase_WRAPPER_EXTRA_CPPFLAGS ($fcoll_two_phase_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fs_lustre_WRAPPER_EXTRA_CPPFLAGS ($fs_lustre_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring fs_lustre_WRAPPER_EXTRA_CPPFLAGS ($fs_lustre_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:two_phase can compile" >&5 -$as_echo_n "checking if MCA component fcoll:two_phase can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:lustre can compile" >&5 +$as_echo_n "checking if MCA component fs:lustre can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_fcoll" = "two_phase" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"two_phase\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"two_phase\" failed to configure properly" >&2;} + if test "$with_fs" = "lustre" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lustre\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"lustre\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_fcoll" ; then - if test "$DIRECT_fcoll" = "two_phase" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"two_phase\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"two_phase\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_fs" ; then + if test "$DIRECT_fs" = "lustre" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lustre\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"lustre\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components two_phase" - fi + # add component to all component list + all_components="$all_components lustre" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_ompi_fcoll_two_phase_DSO=1 - else - BUILD_ompi_fcoll_two_phase_DSO=0 - fi - if test "$BUILD_ompi_fcoll_two_phase_DSO" = "1"; then - MCA_BUILD_ompi_fcoll_two_phase_DSO_TRUE= - MCA_BUILD_ompi_fcoll_two_phase_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_ompi_fs_lustre_DSO=1 else - MCA_BUILD_ompi_fcoll_two_phase_DSO_TRUE='#' - MCA_BUILD_ompi_fcoll_two_phase_DSO_FALSE= + BUILD_ompi_fs_lustre_DSO=0 +fi + if test "$BUILD_ompi_fs_lustre_DSO" = "1"; then + MCA_BUILD_ompi_fs_lustre_DSO_TRUE= + MCA_BUILD_ompi_fs_lustre_DSO_FALSE='#' +else + MCA_BUILD_ompi_fs_lustre_DSO_TRUE='#' + MCA_BUILD_ompi_fs_lustre_DSO_FALSE= fi - ac_config_files="$ac_config_files ompi/mca/fcoll/two_phase/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - opal_show_subsubsubtitle "MCA component fcoll:vulcan (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=$want_io_ompio" - component_path="$srcdir/ompi/mca/fcoll/vulcan" + opal_show_subsubsubtitle "MCA component fs:pvfs2 (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/ompi/mca/fs/pvfs2" want_component=0 # build if: @@ -293555,8 +319533,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_fcoll" ; then - if test "$DIRECT_fcoll" = "vulcan" ; then + if test ! -z "$DIRECT_fs" ; then + if test "$DIRECT_fs" = "pvfs2" ; then want_component=1 else want_component=0 @@ -293565,25 +319543,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_fcoll" = "1"; then : + if test "$DISABLE_fs" = "1"; then : want_component=0 fi - if test "$DISABLE_fcoll_vulcan" = "1"; then : + if test "$DISABLE_fs_pvfs2" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$want_io_ompio + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_fcoll" - SHARED_COMPONENT="$DSO_fcoll_vulcan" + SHARED_FRAMEWORK="$DSO_fs" + SHARED_COMPONENT="$DSO_fs_pvfs2" - STATIC_FRAMEWORK="$STATIC_fcoll" - STATIC_COMPONENT="$STATIC_fcoll_vulcan" + STATIC_FRAMEWORK="$STATIC_fs" + STATIC_COMPONENT="$STATIC_fs_pvfs2" shared_mode_override=static @@ -293601,9 +319581,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fcoll:vulcan compile mode" >&5 -$as_echo_n "checking for MCA component fcoll:vulcan compile mode... " >&6; } - if test "$DIRECT_fcoll" = "vulcan" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fs:pvfs2 compile mode" >&5 +$as_echo_n "checking for MCA component fs:pvfs2 compile mode... " >&6; } + if test "$DIRECT_fs" = "pvfs2" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -293611,77 +319591,529 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + ac_config_files="$ac_config_files ompi/mca/fs/pvfs2/Makefile" - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/fcoll/vulcan/post_configure.sh" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components vulcan" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components vulcan" - else - if test "fcoll" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/fcoll/vulcan/lib${OMPI_LIB_PREFIX}mca_fcoll_vulcan.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/fcoll/vulcan/libmca_fcoll_vulcan.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_fcoll_vulcan_component;" >> $outfile.extern - echo " &mca_fcoll_vulcan_component, " >> $outfile.struct - static_components="$static_components vulcan" - fi + check_pvfs2_CPPFLAGS= + check_pvfs2_LDFLAGS= + check_pvfs2_LIBS= - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:vulcan can compile" >&5 -$as_echo_n "checking if MCA component fcoll:vulcan can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + check_pvfs2_configuration="none" + ompi_check_pvfs2_happy="yes" - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_fcoll" = "vulcan" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_fcoll_DIRECT_CALL_HEADER=$line" - eval $str + + # Get some configuration information + +# Check whether --with-pvfs2 was given. +if test "${with_pvfs2+set}" = set; then : + withval=$with_pvfs2; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-pvfs2 value" >&5 +$as_echo_n "checking --with-pvfs2 value... " >&6; } + if test "$with_pvfs2" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-pvfs2)" >&5 +$as_echo "simple no (specified --without-pvfs2)" >&6; } +else + if test "$with_pvfs2" = "yes" || test "x$with_pvfs2" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_pvfs2"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_pvfs2 not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_pvfs2 not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_pvfs2/include/pvfs2.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_pvfs2/include/pvfs2.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_pvfs2/include/pvfs2.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_pvfs2)" >&5 +$as_echo "sanity check ok ($with_pvfs2)" >&6; } + +fi + + +fi + + +fi + + +fi + + + if test "$with_pvfs2" = "no"; then : + ompi_check_pvfs2_happy="no" +else + if test -z "$with_pvfs2"; then : + ompi_check_pvfs2_dir="/usr/local" +else + ompi_check_pvfs2_dir=$with_pvfs2 +fi + + if test -e "$ompi_check_pvfs2_dir/lib64" ; then + ompi_check_pvfs2_libdir="$ompi_check_pvfs2_dir/lib64" else -as_fn_error $? "*** fcoll component vulcan was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 + ompi_check_pvfs2_libdir="$ompi_check_pvfs2_dir/lib" fi + + # Add correct -I and -L flags + + opal_check_package_fs_pvfs2_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_fs_pvfs2_save_LDFLAGS="$LDFLAGS" + opal_check_package_fs_pvfs2_save_LIBS="$LIBS" + + opal_check_package_fs_pvfs2_orig_CPPFLAGS="$fs_pvfs2_CPPFLAGS" + opal_check_package_fs_pvfs2_orig_LDFLAGS="$fs_pvfs2_LDFLAGS" + opal_check_package_fs_pvfs2_orig_LIBS="$fs_pvfs2_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in dir_prefix; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_fcoll" = "vulcan" ; then -as_fn_error $? "*** fcoll component vulcan was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_pvfs2_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $ompi_check_pvfs2_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in pvfs2.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "pvfs2.h" "ac_cv_header_pvfs2_h" "$ac_includes_default" +if test "x$ac_cv_header_pvfs2_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PVFS2_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_pvfs2_h +fi +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + fs_pvfs2_CPPFLAGS="$fs_pvfs2_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in pvfs2.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "pvfs2.h" "ac_cv_header_pvfs2_h" "$ac_includes_default" +if test "x$ac_cv_header_pvfs2_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PVFS2_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_PVFS_util_resolve + opal_check_package_lib_happy="no" + if test "$ompi_check_pvfs2_libdir" != ""; then : + # libdir was specified - search only there + fs_pvfs2_LDFLAGS="$fs_pvfs2_LDFLAGS -L$ompi_check_pvfs2_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_pvfs2_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 +$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } +if ${ac_cv_search_PVFS_util_resolve+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PVFS_util_resolve (); +int +main () +{ +return PVFS_util_resolve (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pvfs2; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PVFS_util_resolve=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PVFS_util_resolve+:} false; then : + break +fi +done +if ${ac_cv_search_PVFS_util_resolve+:} false; then : + +else + ac_cv_search_PVFS_util_resolve=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 +$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } +ac_res=$ac_cv_search_PVFS_util_resolve +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" + fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" + unset ac_cv_search_PVFS_util_resolve +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_pvfs2_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 +$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } +if ${ac_cv_search_PVFS_util_resolve+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PVFS_util_resolve (); +int +main () +{ +return PVFS_util_resolve (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pvfs2; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PVFS_util_resolve=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PVFS_util_resolve+:} false; then : + break +fi +done +if ${ac_cv_search_PVFS_util_resolve+:} false; then : + +else + ac_cv_search_PVFS_util_resolve=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 +$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } +ac_res=$ac_cv_search_PVFS_util_resolve +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" + fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" + unset ac_cv_search_PVFS_util_resolve +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fs_pvfs2_LDFLAGS="$fs_pvfs2_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 +$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } +if ${ac_cv_search_PVFS_util_resolve+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PVFS_util_resolve (); +int +main () +{ +return PVFS_util_resolve (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pvfs2; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PVFS_util_resolve=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PVFS_util_resolve+:} false; then : + break +fi +done +if ${ac_cv_search_PVFS_util_resolve+:} false; then : + +else + ac_cv_search_PVFS_util_resolve=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 +$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } +ac_res=$ac_cv_search_PVFS_util_resolve +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" + fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" + unset ac_cv_search_PVFS_util_resolve +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fs_pvfs2_LDFLAGS="$fs_pvfs2_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 +$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } +if ${ac_cv_search_PVFS_util_resolve+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PVFS_util_resolve (); +int +main () +{ +return PVFS_util_resolve (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pvfs2; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PVFS_util_resolve=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PVFS_util_resolve+:} false; then : + break +fi +done +if ${ac_cv_search_PVFS_util_resolve+:} false; then : + +else + ac_cv_search_PVFS_util_resolve=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 +$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } +ac_res=$ac_cv_search_PVFS_util_resolve +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" + fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" + unset ac_cv_search_PVFS_util_resolve +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$fcoll_vulcan_WRAPPER_EXTRA_LDFLAGS" = ""; then : + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_libnl_sane; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + opal_libnl_sane=1 + case $host in + *linux*) @@ -293694,7 +320126,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -293713,7 +320145,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -293721,25 +320153,277 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fcoll_vulcan_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpvfs2 requires libnl v1 or v3" >&5 +$as_echo_n "checking if libpvfs2 requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void PVFS_util_resolve (void); +int main(int argc, char *argv[]) { + PVFS_util_resolve (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:320180: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpvfs2 $LIBS $fs_pvfs2_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpvfs2 $LIBS $fs_pvfs2_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:320187: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib pvfs2" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib pvfs2" >&2;} + +fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpvfs2 links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libpvfs2 links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} + + libnl_sane=0 +fi + + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pvfs2 requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pvfs2 requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} + + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs pvfs2" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi + fi + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpvfs2 requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpvfs2 requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} + + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs pvfs2" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi + +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -293762,65 +320446,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $fcoll_vulcan_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -293843,89 +320472,332 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - if test "$fcoll_vulcan_WRAPPER_EXTRA_LIBS" = ""; then : +fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_PVFS_util_resolve" != "no" && + test "$ac_cv_search_PVFS_util_resolve" != "none required"; then : + fs_pvfs2_LIBS="$ac_cv_search_PVFS_util_resolve " +else + fs_pvfs2_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +else + opal_check_package_happy="no" +fi +else - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # see comment above + unset ac_cv_search_PVFS_util_resolve + opal_check_package_lib_happy="no" + if test "$ompi_check_pvfs2_libdir" != ""; then : + # libdir was specified - search only there + fs_pvfs2_LDFLAGS="$fs_pvfs2_LDFLAGS -L$ompi_check_pvfs2_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_pvfs2_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 +$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } +if ${ac_cv_search_PVFS_util_resolve+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PVFS_util_resolve (); +int +main () +{ +return PVFS_util_resolve (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pvfs2; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PVFS_util_resolve=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PVFS_util_resolve+:} false; then : + break +fi +done +if ${ac_cv_search_PVFS_util_resolve+:} false; then : - for arg in $fcoll_vulcan_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +else + ac_cv_search_PVFS_util_resolve=no fi - done +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 +$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } +ac_res=$ac_cv_search_PVFS_util_resolve +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_lib_happy="no" fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" + fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" + unset ac_cv_search_PVFS_util_resolve fi - done +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_pvfs2_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 +$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } +if ${ac_cv_search_PVFS_util_resolve+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PVFS_util_resolve (); +int +main () +{ +return PVFS_util_resolve (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pvfs2; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PVFS_util_resolve=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PVFS_util_resolve+:} false; then : + break +fi +done +if ${ac_cv_search_PVFS_util_resolve+:} false; then : - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +else + ac_cv_search_PVFS_util_resolve=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 +$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } +ac_res=$ac_cv_search_PVFS_util_resolve +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" + fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" + unset ac_cv_search_PVFS_util_resolve +fi +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fs_pvfs2_LDFLAGS="$fs_pvfs2_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 +$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } +if ${ac_cv_search_PVFS_util_resolve+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PVFS_util_resolve (); +int +main () +{ +return PVFS_util_resolve (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pvfs2; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PVFS_util_resolve=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PVFS_util_resolve+:} false; then : + break +fi +done +if ${ac_cv_search_PVFS_util_resolve+:} false; then : + +else + ac_cv_search_PVFS_util_resolve=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 +$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } +ac_res=$ac_cv_search_PVFS_util_resolve +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" + fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" + unset ac_cv_search_PVFS_util_resolve +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + fs_pvfs2_LDFLAGS="$fs_pvfs2_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 +$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } +if ${ac_cv_search_PVFS_util_resolve+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PVFS_util_resolve (); +int +main () +{ +return PVFS_util_resolve (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pvfs2; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PVFS_util_resolve=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PVFS_util_resolve+:} false; then : + break +fi +done +if ${ac_cv_search_PVFS_util_resolve+:} false; then : else + ac_cv_search_PVFS_util_resolve=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 +$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } +ac_res=$ac_cv_search_PVFS_util_resolve +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" + fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" + unset ac_cv_search_PVFS_util_resolve +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -293938,7 +320810,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -293957,66 +320829,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $fcoll_vulcan_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$fcoll_vulcan_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -294029,7 +320851,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -294048,7 +320870,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -294056,389 +320878,451 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fcoll_vulcan_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpvfs2 requires libnl v1 or v3" >&5 +$as_echo_n "checking if libpvfs2 requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void PVFS_util_resolve (void); +int main(int argc, char *argv[]) { + PVFS_util_resolve (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:320905: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpvfs2 $LIBS $fs_pvfs2_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpvfs2 $LIBS $fs_pvfs2_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:320912: \$? = $opal_status" >&5 else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi - done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib pvfs2" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib pvfs2" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpvfs2 links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libpvfs2 links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} + libnl_sane=0 fi + + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pvfs2 requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pvfs2 requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} + + libnl_sane=0 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fcoll_vulcan_WRAPPER_EXTRA_CPPFLAGS ($fcoll_vulcan_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring fcoll_vulcan_WRAPPER_EXTRA_CPPFLAGS ($fcoll_vulcan_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + opal_libnlv1_libs="$opal_libnlv1_libs pvfs2" - else +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:vulcan can compile" >&5 -$as_echo_n "checking if MCA component fcoll:vulcan can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +# Go through each item in the variable and only keep the unique ones - # If this component was requested as the default for this - # type, then abort. - if test "$with_fcoll" = "vulcan" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"vulcan\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"vulcan\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - if test ! -z "$DIRECT_fcoll" ; then - if test "$DIRECT_fcoll" = "vulcan" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"vulcan\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"vulcan\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Loop over every token we've seen so far - # add component to all component list - all_components="$all_components vulcan" - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_ompi_fcoll_vulcan_DSO=1 + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - BUILD_ompi_fcoll_vulcan_DSO=0 + opal_i="`expr $opal_i - 1`" fi - if test "$BUILD_ompi_fcoll_vulcan_DSO" = "1"; then - MCA_BUILD_ompi_fcoll_vulcan_DSO_TRUE= - MCA_BUILD_ompi_fcoll_vulcan_DSO_FALSE='#' -else - MCA_BUILD_ompi_fcoll_vulcan_DSO_TRUE='#' - MCA_BUILD_ompi_fcoll_vulcan_DSO_FALSE= -fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - ac_config_files="$ac_config_files ompi/mca/fcoll/vulcan/Makefile" +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - unset compile_mode + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - # configure components that use built-in configuration scripts +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi - best_mca_component_priority=0 - components_looking_for_succeed=$want_io_ompio - components_last_result=0 +fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpvfs2 requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpvfs2 requires libnl-3" >&2;} - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs pvfs2" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - if test "$want_io_ompio" != "0"; then : +# Go through each item in the variable and only keep the unique ones - for component_path in $srcdir/ompi/mca/fcoll/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component fcoll:$component (need to configure)" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - component_path="$srcdir/ompi/mca/fcoll/$component" - want_component=0 + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_fcoll" ; then - if test "$DIRECT_fcoll" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # if we were explicitly disabled, don't build :) - if test "$DISABLE_fcoll" = "1"; then : - want_component=0 +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_fcoll_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - SHARED_FRAMEWORK="$DSO_fcoll" - str="SHARED_COMPONENT=\$DSO_fcoll_$component" - eval $str + rm -f conftest conftest_c.$ac_ext - STATIC_FRAMEWORK="$STATIC_fcoll" - str="STATIC_COMPONENT=\$STATIC_fcoll_$component" - eval $str + opal_libnl_sane=$libnl_sane - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fcoll:$component compile mode" >&5 -$as_echo_n "checking for MCA component fcoll:$component compile mode... " >&6; } - if test "$DIRECT_fcoll" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "$should_build" = "1" ; then + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi +fi -# -# Invoke configure in a specific subdirectory. -# -# ompi/mca/fcoll/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="ompi/mca/fcoll/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_PVFS_util_resolve" != "no" && + test "$ac_cv_search_PVFS_util_resolve" != "none required"; then : + fs_pvfs2_LIBS="$ac_cv_search_PVFS_util_resolve " +else + fs_pvfs2_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi -# -# Sanity checks -# -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} +fi + unset opal_check_package_header_happy - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - # - # Move into the target directory - # - subdir_parent=`pwd` - cd $subdir_dir + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_pvfs2_happy="yes" +else + fs_pvfs2_CPPFLAGS="$opal_check_package_fs_pvfs2_orig_CPPFLAGS" + fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" + fs_pvfs2_LIBS="$opal_check_package_fs_pvfs2_orig_LIBS" + ompi_check_pvfs2_happy="no" +fi - # - # Make a "../" for each directory in $subdir_dir. - # + CPPFLAGS="$opal_check_package_fs_pvfs2_save_CPPFLAGS" + LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" + LIBS="$opal_check_package_fs_pvfs2_save_LIBS" - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac +fi - # - # Construct the --cache-file argument - # + if test "$ompi_check_pvfs2_happy" = "yes"; then : + fs_pvfs2_happy="yes" +else + if test ! -z "$with_pvfs2" && test "$with_pvfs2" != "no"; then : + echo PVFS2 support not found +fi + fs_pvfs2_happy="no" +fi - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # - # Go back to the topdir - # + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - cd $subdir_parent -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# -# Clean up -# + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ompi_summary_section=$(echo OMPIO File Systems | tr ' ' '_') + ompi_summary_line="PVFS2/OrangeFS: $fs_pvfs2_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi # Unwind the index @@ -294461,80 +321345,71 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/ompi/mca/fcoll/all_components/post_configure.sh" - if test -f $infile; then + if test "$fs_pvfs2_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi +# AC_CHECK_HEADERS([pvfs2.h], [], +# [AC_CHECK_HEADERS([pvfs2.h], [], [should_build=0], +# [AC_INCLUDES_DEFAULT])], +# [AC_INCLUDES_DEFAULT]) - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - fcoll_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - fcoll_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + + # substitute in the things needed to build pvfs2 + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/fcoll/$component/post_configure.sh" + infile="$srcdir/ompi/mca/fs/pvfs2/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + all_components="$all_components pvfs2" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" + dso_components="$dso_components pvfs2" else - if test "fcoll" = "common"; then + if test "fs" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/fcoll/$component/lib${OMPI_LIB_PREFIX}mca_fcoll_$component.la $static_ltlibs" + static_ltlibs="mca/fs/pvfs2/lib${OMPI_LIB_PREFIX}mca_fs_pvfs2.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/fcoll/$component/libmca_fcoll_$component.la $static_ltlibs" + static_ltlibs="mca/fs/pvfs2/libmca_fs_pvfs2.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_fcoll_$component_component;" >> $outfile.extern - echo " &mca_fcoll_$component_component, " >> $outfile.struct - static_components="$static_components $component" + echo "extern const mca_base_component_t mca_fs_pvfs2_component;" >> $outfile.extern + echo " &mca_fs_pvfs2_component, " >> $outfile.struct + static_components="$static_components pvfs2" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:$component can compile" >&5 -$as_echo_n "checking if MCA component fcoll:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:pvfs2 can compile" >&5 +$as_echo_n "checking if MCA component fs:pvfs2 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_fcoll" = "$component" ; then + if test "$DIRECT_fs" = "pvfs2" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_fcoll_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_fs_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** fcoll component $component was supposed to be direct-called, but +as_fn_error $? "*** fs component pvfs2 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -294542,8 +321417,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_fcoll" = "$component" ; then -as_fn_error $? "*** fcoll component $component was supposed to be direct-called, but + if test "$DIRECT_fs" = "pvfs2" ; then +as_fn_error $? "*** fs component pvfs2 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -294558,8 +321433,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$fcoll_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + if test "$fs_pvfs2_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -294599,7 +321473,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $fs_pvfs2_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -294639,8 +321513,8 @@ unset $opal_var done -str="line=\$fcoll_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + +else @@ -294680,21 +321554,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $fs_pvfs2_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -294721,119 +321595,147 @@ done - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - +fi + if test "$fs_pvfs2_WRAPPER_EXTRA_LIBS" = ""; then : - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fcoll:$component can compile" >&5 -$as_echo_n "checking if MCA component fcoll:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_fcoll" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - if test ! -z "$DIRECT_fcoll" ; then - if test "$DIRECT_fcoll" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi done -fi - - MCA_ompi_fcoll_ALL_COMPONENTS="$all_components" - MCA_ompi_fcoll_STATIC_COMPONENTS="$static_components" - MCA_ompi_fcoll_DSO_COMPONENTS="$dso_components" - MCA_ompi_fcoll_STATIC_LTLIBS="$static_ltlibs" - - - - + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - MCA_ompi_fcoll_ALL_SUBDIRS= - for item in $all_components ; do - MCA_ompi_fcoll_ALL_SUBDIRS="$MCA_ompi_fcoll_ALL_SUBDIRS mca/fcoll/$item" + for arg in $fs_pvfs2_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - MCA_ompi_fcoll_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_ompi_fcoll_STATIC_SUBDIRS="$MCA_ompi_fcoll_STATIC_SUBDIRS mca/fcoll/$item" - done - - + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - MCA_ompi_fcoll_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_ompi_fcoll_DSO_SUBDIRS="$MCA_ompi_fcoll_DSO_SUBDIRS mca/fcoll/$item" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done +else - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "fcoll" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - fi - rm -f $outfile.struct $outfile.extern + done - unset all_components static_components dso_components outfile outfile_real + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + for arg in $fs_pvfs2_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -294856,13 +321758,17 @@ done - MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS fs" - MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/fs" - MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_fs_ALL_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_fs_DSO_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_fs_STATIC_SUBDIRS)" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/fs/libmca_fs.la" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_fs_STATIC_LTLIBS)" +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$fs_pvfs2_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -294875,7 +321781,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in want_io_ompio; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -294894,7 +321800,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"want_io_ompio\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -294902,76 +321808,121 @@ opal_scope_index=`expr $opal_scope_index + 1` - if test "$enable_io_ompio" != "no"; then : - want_io_ompio=1 + for arg in $fs_pvfs2_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - want_io_ompio=0 + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi +fi + done - opal_show_subsubtitle "Configuring MCA framework fs" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fs_pvfs2_WRAPPER_EXTRA_CPPFLAGS ($fs_pvfs2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring fs_pvfs2_WRAPPER_EXTRA_CPPFLAGS ($fs_pvfs2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=ompi/mca/fs/base - as_dir=$outdir; as_fn_mkdir_p +else - # emit Makefile rule - ac_config_files="$ac_config_files ompi/mca/fs/Makefile" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:pvfs2 can compile" >&5 +$as_echo_n "checking if MCA component fs:pvfs2 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # If this component was requested as the default for this + # type, then abort. + if test "$with_fs" = "pvfs2" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pvfs2\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pvfs2\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern + if test ! -z "$DIRECT_fs" ; then + if test "$DIRECT_fs" = "pvfs2" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pvfs2\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pvfs2\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework fs" >&5 -$as_echo_n "checking for no configure components in framework fs... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework fs" >&5 -$as_echo_n "checking for m4 configure components in framework fs... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: lustre, pvfs2, ufs" >&5 -$as_echo "lustre, pvfs2, ufs" >&6; } + # add component to all component list + all_components="$all_components pvfs2" +fi - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_fs_pvfs2_DSO=1 +else + BUILD_ompi_fs_pvfs2_DSO=0 +fi + if test "$BUILD_ompi_fs_pvfs2_DSO" = "1"; then + MCA_BUILD_ompi_fs_pvfs2_DSO_TRUE= + MCA_BUILD_ompi_fs_pvfs2_DSO_FALSE='#' +else + MCA_BUILD_ompi_fs_pvfs2_DSO_TRUE='#' + MCA_BUILD_ompi_fs_pvfs2_DSO_FALSE= +fi - # run the configure logic for the no-config components + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # configure components that use built-in configuration scripts + unset compile_mode - best_mca_component_priority=0 - components_looking_for_succeed=$want_io_ompio - components_last_result=0 - opal_show_subsubsubtitle "MCA component fs:lustre (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component fs:ufs (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/fs/lustre" + component_path="$srcdir/ompi/mca/fs/ufs" want_component=0 # build if: @@ -295004,7 +321955,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_fs" ; then - if test "$DIRECT_fs" = "lustre" ; then + if test "$DIRECT_fs" = "ufs" ; then want_component=1 else want_component=0 @@ -295016,7 +321967,7 @@ if test "$DISABLE_fs" = "1"; then : want_component=0 fi - if test "$DISABLE_fs_lustre" = "1"; then : + if test "$DISABLE_fs_ufs" = "1"; then : want_component=0 fi @@ -295030,10 +321981,10 @@ # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE SHARED_FRAMEWORK="$DSO_fs" - SHARED_COMPONENT="$DSO_fs_lustre" + SHARED_COMPONENT="$DSO_fs_ufs" STATIC_FRAMEWORK="$STATIC_fs" - STATIC_COMPONENT="$STATIC_fs_lustre" + STATIC_COMPONENT="$STATIC_fs_ufs" shared_mode_override=static @@ -295051,9 +322002,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fs:lustre compile mode" >&5 -$as_echo_n "checking for MCA component fs:lustre compile mode... " >&6; } - if test "$DIRECT_fs" = "lustre" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fs:ufs compile mode" >&5 +$as_echo_n "checking for MCA component fs:ufs compile mode... " >&6; } + if test "$DIRECT_fs" = "ufs" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -295064,98 +322015,157 @@ # try to configure the component - ac_config_files="$ac_config_files ompi/mca/fs/lustre/Makefile" + ac_config_files="$ac_config_files ompi/mca/fs/ufs/Makefile" - check_lustre_CPPFLAGS= - check_lustre_LDFLAGS= - check_lustre_LIBS= - check_lustre_save_LIBS="$LIBS" - check_lustre_save_LDFLAGS="$LDFLAGS" - check_lustre_save_CPPFLAGS="$CPPFLAGS" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - check_lustre_configuration="none" - ompi_check_lustre_happy="yes" + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Get some configuration information + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Check whether --with-lustre was given. -if test "${with_lustre+set}" = set; then : - withval=$with_lustre; -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-lustre value" >&5 -$as_echo_n "checking --with-lustre value... " >&6; } - if test "$with_lustre" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-lustre)" >&5 -$as_echo "simple no (specified --without-lustre)" >&6; } -else - if test "$with_lustre" = "yes" || test "x$with_lustre" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_lustre"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_lustre not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_lustre not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_lustre/include/lustre/lustreapi.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_lustre/include/lustre/lustreapi.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_lustre/include/lustre/lustreapi.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_lustre)" >&5 -$as_echo "sanity check ok ($with_lustre)" >&6; } -fi + ompi_summary_section=$(echo OMPIO File Systems | tr ' ' '_') + ompi_summary_line="Generic Unix FS: yes" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -fi - if test "$with_lustre" = "no"; then : - ompi_check_lustre_happy="no" -else - if test -z "$with_lustre" || test "$with_lustre" = "yes"; then : - ompi_check_lustre_dir="/usr" -else - ompi_check_lustre_dir=$with_lustre -fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test -e "$ompi_check_lustre_dir/lib64" ; then - ompi_check_lustre_libdir="$ompi_check_lustre_dir/lib64" - else - ompi_check_lustre_libdir="$ompi_check_lustre_dir/lib" - fi + if test "$should_build" = "1"; then : - # Add correct -I and -L flags - opal_check_package_fs_lustre_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_fs_lustre_save_LDFLAGS="$LDFLAGS" - opal_check_package_fs_lustre_save_LIBS="$LIBS" - opal_check_package_fs_lustre_orig_CPPFLAGS="$fs_lustre_CPPFLAGS" - opal_check_package_fs_lustre_orig_LDFLAGS="$fs_lustre_LDFLAGS" - opal_check_package_fs_lustre_orig_LIBS="$fs_lustre_LIBS" + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/fs/ufs/post_configure.sh" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components ufs" - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components ufs" + else + if test "fs" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/fs/ufs/lib${OMPI_LIB_PREFIX}mca_fs_ufs.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/fs/ufs/libmca_fs_ufs.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_fs_ufs_component;" >> $outfile.extern + echo " &mca_fs_ufs_component, " >> $outfile.struct + static_components="$static_components ufs" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:ufs can compile" >&5 +$as_echo_n "checking if MCA component fs:ufs can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_fs" = "ufs" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_fs_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** fs component ufs was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_fs" = "ufs" ; then +as_fn_error $? "*** fs component ufs was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$fs_ufs_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -295168,7 +322178,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -295187,7 +322197,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -295195,357 +322205,211 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_lustre_lustreapi_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_lustre_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in lustre/lustreapi.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "lustre/lustreapi.h" "ac_cv_header_lustre_lustreapi_h" "$ac_includes_default" -if test "x$ac_cv_header_lustre_lustreapi_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LUSTRE_LUSTREAPI_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_lustre_lustreapi_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - fs_lustre_CPPFLAGS="$fs_lustre_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in lustre/lustreapi.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "lustre/lustreapi.h" "ac_cv_header_lustre_lustreapi_h" "$ac_includes_default" -if test "x$ac_cv_header_lustre_lustreapi_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LUSTRE_LUSTREAPI_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_llapi_file_create - opal_check_package_lib_happy="no" - if test "$ompi_check_lustre_libdir" != ""; then : - # libdir was specified - search only there - fs_lustre_LDFLAGS="$fs_lustre_LDFLAGS -L$ompi_check_lustre_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_lustre_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing llapi_file_create" >&5 -$as_echo_n "checking for library containing llapi_file_create... " >&6; } -if ${ac_cv_search_llapi_file_create+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char llapi_file_create (); -int -main () -{ -return llapi_file_create (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lustreapi; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_llapi_file_create=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_llapi_file_create+:} false; then : - break -fi -done -if ${ac_cv_search_llapi_file_create+:} false; then : - -else - ac_cv_search_llapi_file_create=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_llapi_file_create" >&5 -$as_echo "$ac_cv_search_llapi_file_create" >&6; } -ac_res=$ac_cv_search_llapi_file_create -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" - fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" - unset ac_cv_search_llapi_file_create -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_lustre_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing llapi_file_create" >&5 -$as_echo_n "checking for library containing llapi_file_create... " >&6; } -if ${ac_cv_search_llapi_file_create+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char llapi_file_create (); -int -main () -{ -return llapi_file_create (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lustreapi; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_llapi_file_create=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_llapi_file_create+:} false; then : - break -fi -done -if ${ac_cv_search_llapi_file_create+:} false; then : - -else - ac_cv_search_llapi_file_create=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_llapi_file_create" >&5 -$as_echo "$ac_cv_search_llapi_file_create" >&6; } -ac_res=$ac_cv_search_llapi_file_create -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" - fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" - unset ac_cv_search_llapi_file_create -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - fs_lustre_LDFLAGS="$fs_lustre_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing llapi_file_create" >&5 -$as_echo_n "checking for library containing llapi_file_create... " >&6; } -if ${ac_cv_search_llapi_file_create+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char llapi_file_create (); -int -main () -{ -return llapi_file_create (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lustreapi; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_llapi_file_create=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_llapi_file_create+:} false; then : - break -fi -done -if ${ac_cv_search_llapi_file_create+:} false; then : - -else - ac_cv_search_llapi_file_create=no + for arg in $fs_ufs_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_llapi_file_create" >&5 -$as_echo "$ac_cv_search_llapi_file_create" >&6; } -ac_res=$ac_cv_search_llapi_file_create -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" - fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" - unset ac_cv_search_llapi_file_create -fi + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - fs_lustre_LDFLAGS="$fs_lustre_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing llapi_file_create" >&5 -$as_echo_n "checking for library containing llapi_file_create... " >&6; } -if ${ac_cv_search_llapi_file_create+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char llapi_file_create (); -int -main () -{ -return llapi_file_create (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lustreapi; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_llapi_file_create=$ac_res + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $fs_ufs_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_llapi_file_create+:} false; then : - break + done fi -done -if ${ac_cv_search_llapi_file_create+:} false; then : - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - ac_cv_search_llapi_file_create=no + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_llapi_file_create" >&5 -$as_echo "$ac_cv_search_llapi_file_create" >&6; } -ac_res=$ac_cv_search_llapi_file_create -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + fi + if test "$fs_ufs_WRAPPER_EXTRA_LIBS" = ""; then : - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" - fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" - unset ac_cv_search_llapi_file_create + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $fs_ufs_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -295558,7 +322422,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -295577,16 +322441,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $fs_ufs_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$fs_ufs_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -295599,7 +322513,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -295618,7 +322532,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -295626,303 +322540,389 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $fs_ufs_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if liblustreapi requires libnl v1 or v3" >&5 -$as_echo_n "checking if liblustreapi requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void llapi_file_create (void); -int main(int argc, char *argv[]) { - llapi_file_create (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:295653: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llustreapi $LIBS $fs_lustre_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llustreapi $LIBS $fs_lustre_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:295660: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fs_ufs_WRAPPER_EXTRA_CPPFLAGS ($fs_ufs_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring fs_ufs_WRAPPER_EXTRA_CPPFLAGS ($fs_ufs_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib lustreapi" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib lustreapi" >&2;} -fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:ufs can compile" >&5 +$as_echo_n "checking if MCA component fs:ufs can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, liblustreapi links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, liblustreapi links to both libnl and libnl-3." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_fs" = "ufs" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ufs\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ufs\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblustreapi (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblustreapi (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblustreapi." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblustreapi." >&2;} + if test ! -z "$DIRECT_fs" ; then + if test "$DIRECT_fs" = "ufs" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ufs\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ufs\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - libnl_sane=0 + # add component to all component list + all_components="$all_components ufs" fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lustreapi requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lustreapi requires libnl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblustreapi (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblustreapi (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblustreapi." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblustreapi." >&2;} - libnl_sane=0 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_fs_ufs_DSO=1 else - opal_libnlv1_libs="$opal_libnlv1_libs lustreapi" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + BUILD_ompi_fs_ufs_DSO=0 +fi + if test "$BUILD_ompi_fs_ufs_DSO" = "1"; then + MCA_BUILD_ompi_fs_ufs_DSO_TRUE= + MCA_BUILD_ompi_fs_ufs_DSO_FALSE='#' +else + MCA_BUILD_ompi_fs_ufs_DSO_TRUE='#' + MCA_BUILD_ompi_fs_ufs_DSO_FALSE= +fi - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + unset compile_mode - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + if test "$want_io_ompio" != "0"; then : -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + for component_path in $srcdir/ompi/mca/fs/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component fs:$component (need to configure)" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + component_path="$srcdir/ompi/mca/fs/$component" + want_component=0 -# Clean up + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_fs" ; then + if test "$DIRECT_fs" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_fs" = "1"; then : + want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_fs_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblustreapi requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblustreapi requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblustreapi (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblustreapi (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblustreapi." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblustreapi." >&2;} - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs lustreapi" + SHARED_FRAMEWORK="$DSO_fs" + str="SHARED_COMPONENT=\$DSO_fs_$component" + eval $str -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + STATIC_FRAMEWORK="$STATIC_fs" + str="STATIC_COMPONENT=\$STATIC_fs_$component" + eval $str -# Go through each item in the variable and only keep the unique ones + shared_mode_override=static -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Loop over every token we've seen so far + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fs:$component compile mode" >&5 +$as_echo_n "checking for MCA component fs:$component compile mode... " >&6; } + if test "$DIRECT_fs" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + if test "$should_build" = "1" ; then - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # Increment the counter + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_i="`expr $opal_i + 1`" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done - # If we didn't find the token, add it to the "array" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval +# +# Invoke configure in a specific subdirectory. +# +# ompi/mca/fs/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="ompi/mca/fs/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval +# +# Sanity checks +# - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} -# Done; do the assignment + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } -# Clean up + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + # + # Move into the target directory + # -fi + subdir_parent=`pwd` + cd $subdir_dir - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + # + # Make a "../" for each directory in $subdir_dir. + # - rm -f conftest conftest_c.$ac_ext + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - opal_libnl_sane=$libnl_sane + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + # + # Construct the --cache-file argument + # - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # + # Invoke the configure script in the subdirectory + # - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + # + # Go back to the topdir + # - ;; - esac + cd $subdir_parent +fi + +# +# Clean up +# - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -295944,333 +322944,105 @@ unset $opal_var done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_llapi_file_create" != "no" && - test "$ac_cv_search_llapi_file_create" != "none required"; then : - fs_lustre_LIBS="$ac_cv_search_llapi_file_create " -else - fs_lustre_LIBS="" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi - - -else - opal_check_package_happy="no" -fi -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_llapi_file_create - opal_check_package_lib_happy="no" - if test "$ompi_check_lustre_libdir" != ""; then : - # libdir was specified - search only there - fs_lustre_LDFLAGS="$fs_lustre_LDFLAGS -L$ompi_check_lustre_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_lustre_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing llapi_file_create" >&5 -$as_echo_n "checking for library containing llapi_file_create... " >&6; } -if ${ac_cv_search_llapi_file_create+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char llapi_file_create (); -int -main () -{ -return llapi_file_create (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lustreapi; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_llapi_file_create=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_llapi_file_create+:} false; then : - break -fi -done -if ${ac_cv_search_llapi_file_create+:} false; then : - -else - ac_cv_search_llapi_file_create=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_llapi_file_create" >&5 -$as_echo "$ac_cv_search_llapi_file_create" >&6; } -ac_res=$ac_cv_search_llapi_file_create -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" - fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" - unset ac_cv_search_llapi_file_create -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_lustre_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing llapi_file_create" >&5 -$as_echo_n "checking for library containing llapi_file_create... " >&6; } -if ${ac_cv_search_llapi_file_create+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char llapi_file_create (); -int -main () -{ -return llapi_file_create (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lustreapi; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_llapi_file_create=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_llapi_file_create+:} false; then : - break -fi -done -if ${ac_cv_search_llapi_file_create+:} false; then : - -else - ac_cv_search_llapi_file_create=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_llapi_file_create" >&5 -$as_echo "$ac_cv_search_llapi_file_create" >&6; } -ac_res=$ac_cv_search_llapi_file_create -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" - fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" - unset ac_cv_search_llapi_file_create -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - fs_lustre_LDFLAGS="$fs_lustre_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing llapi_file_create" >&5 -$as_echo_n "checking for library containing llapi_file_create... " >&6; } -if ${ac_cv_search_llapi_file_create+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/ompi/mca/fs/all_components/post_configure.sh" + if test -f $infile; then -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char llapi_file_create (); -int -main () -{ -return llapi_file_create (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lustreapi; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_llapi_file_create=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_llapi_file_create+:} false; then : - break -fi -done -if ${ac_cv_search_llapi_file_create+:} false; then : + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi -else - ac_cv_search_llapi_file_create=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_llapi_file_create" >&5 -$as_echo "$ac_cv_search_llapi_file_create" >&6; } -ac_res=$ac_cv_search_llapi_file_create -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + fs_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + fs_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" - fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" - unset ac_cv_search_llapi_file_create -fi -fi -fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - fs_lustre_LDFLAGS="$fs_lustre_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing llapi_file_create" >&5 -$as_echo_n "checking for library containing llapi_file_create... " >&6; } -if ${ac_cv_search_llapi_file_create+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char llapi_file_create (); -int -main () -{ -return llapi_file_create (); - ; - return 0; -} -_ACEOF -for ac_lib in '' lustreapi; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_llapi_file_create=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_llapi_file_create+:} false; then : - break -fi -done -if ${ac_cv_search_llapi_file_create+:} false; then : -else - ac_cv_search_llapi_file_create=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_llapi_file_create" >&5 -$as_echo "$ac_cv_search_llapi_file_create" >&6; } -ac_res=$ac_cv_search_llapi_file_create -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/fs/$component/post_configure.sh" - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" - fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" - unset ac_cv_search_llapi_file_create -fi -fi -fi -fi + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "fs" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/fs/$component/lib${OMPI_LIB_PREFIX}mca_fs_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/fs/$component/libmca_fs_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_fs_$component_component;" >> $outfile.extern + echo " &mca_fs_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:$component can compile" >&5 +$as_echo_n "checking if MCA component fs:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_fs" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_fs_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** fs component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_fs" = "$component" ; then +as_fn_error $? "*** fs component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$fs_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -296283,7 +323055,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -296302,16 +323074,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + +str="line=\$fs_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -296324,7 +323136,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -296343,7 +323155,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -296351,276 +323163,159 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if liblustreapi requires libnl v1 or v3" >&5 -$as_echo_n "checking if liblustreapi requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void llapi_file_create (void); -int main(int argc, char *argv[]) { - llapi_file_create (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:296378: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llustreapi $LIBS $fs_lustre_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -llustreapi $LIBS $fs_lustre_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:296385: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" + done fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib lustreapi" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib lustreapi" >&2;} - + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, liblustreapi links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, liblustreapi links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblustreapi (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblustreapi (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblustreapi." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblustreapi." >&2;} - - libnl_sane=0 fi + done - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lustreapi requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas lustreapi requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblustreapi (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblustreapi (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblustreapi." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblustreapi." >&2;} - - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs lustreapi" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Increment the counter + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - opal_i="`expr $opal_i + 1`" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + else -# Done; do the assignment + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:$component can compile" >&5 +$as_echo_n "checking if MCA component fs:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # If this component was requested as the default for this + # type, then abort. + if test "$with_fs" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -# Clean up + if test ! -z "$DIRECT_fs" ; then + if test "$DIRECT_fs" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + fi + fi + done fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblustreapi requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas liblustreapi requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in liblustreapi (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in liblustreapi (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using liblustreapi." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using liblustreapi." >&2;} - - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs lustreapi" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + MCA_ompi_fs_ALL_COMPONENTS="$all_components" + MCA_ompi_fs_STATIC_COMPONENTS="$static_components" + MCA_ompi_fs_DSO_COMPONENTS="$dso_components" + MCA_ompi_fs_STATIC_LTLIBS="$static_ltlibs" -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + MCA_ompi_fs_ALL_SUBDIRS= + for item in $all_components ; do + MCA_ompi_fs_ALL_SUBDIRS="$MCA_ompi_fs_ALL_SUBDIRS mca/fs/$item" + done - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" + MCA_ompi_fs_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_ompi_fs_STATIC_SUBDIRS="$MCA_ompi_fs_STATIC_SUBDIRS mca/fs/$item" done - # If we didn't find the token, add it to the "array" - - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + MCA_ompi_fs_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_ompi_fs_DSO_SUBDIRS="$MCA_ompi_fs_DSO_SUBDIRS mca/fs/$item" + done - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "fs" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern - rm -f conftest conftest_c.$ac_ext + unset all_components static_components dso_components outfile outfile_real - opal_libnl_sane=$libnl_sane # Unwind the index @@ -296644,154 +323339,185 @@ done - ;; - esac + MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS hook" + MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/hook" + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_hook_ALL_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_hook_DSO_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_hook_STATIC_SUBDIRS)" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/hook/libmca_hook.la" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_hook_STATIC_LTLIBS)" - opal_check_package_libnl_check_ok=$opal_libnl_sane + # configure all the components - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_show_subsubtitle "Configuring MCA framework hook" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= -fi + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=ompi/mca/hook/base + as_dir=$outdir; as_fn_mkdir_p - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_llapi_file_create" != "no" && - test "$ac_cv_search_llapi_file_create" != "none required"; then : - fs_lustre_LIBS="$ac_cv_search_llapi_file_create " -else - fs_lustre_LIBS="" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi + # emit Makefile rule + ac_config_files="$ac_config_files ompi/mca/hook/Makefile" -fi - unset opal_check_package_header_happy + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework hook" >&5 +$as_echo_n "checking for no configure components in framework hook... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework hook" >&5 +$as_echo_n "checking for m4 configure components in framework hook... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # run the configure logic for the no-config components - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_lustre_happy="yes" -else - fs_lustre_CPPFLAGS="$opal_check_package_fs_lustre_orig_CPPFLAGS" - fs_lustre_LDFLAGS="$opal_check_package_fs_lustre_orig_LDFLAGS" - fs_lustre_LIBS="$opal_check_package_fs_lustre_orig_LIBS" - ompi_check_lustre_happy="no" -fi + # configure components that use built-in configuration scripts - CPPFLAGS="$opal_check_package_fs_lustre_save_CPPFLAGS" - LDFLAGS="$opal_check_package_fs_lustre_save_LDFLAGS" - LIBS="$opal_check_package_fs_lustre_save_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for required lustre data structures" >&5 -$as_echo_n "checking for required lustre data structures... " >&6; } - cat > conftest.c <&5 -$CC $CFLAGS -I$with_lustre/include -c conftest.c 1>&5 2>&1 -opal_status=$? + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:296759: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ompi_check_lustre_struct_happy="yes" -else - unset opal_status - ompi_check_lustre_struct_happy="no" - ompi_check_lustre_happy="no" -fi - rm -f conftest.c conftest.o - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_lustre_struct_happy" >&5 -$as_echo "$ompi_check_lustre_struct_happy" >&6; } -fi + if test "1" != "0"; then : - if test "$ompi_check_lustre_happy" = "yes"; then : - fs_lustre_happy="yes" -else - if test ! -z "$with_lustre" && test "$with_lustre" != "no"; then : - as_fn_error $? "Lustre support requested but not found. Aborting" "$LINENO" 5 -fi - fs_lustre_happy="no" -fi + for component_path in $srcdir/ompi/mca/hook/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component hook:$component (need to configure)" + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - if test "$fs_lustre_happy" = "yes"; then : - should_build=$should_build + + + component_path="$srcdir/ompi/mca/hook/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_hook" ; then + if test "$DIRECT_hook" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_hook" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_hook_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 else should_build=0 fi + SHARED_FRAMEWORK="$DSO_hook" + str="SHARED_COMPONENT=\$DSO_hook_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_hook" + str="STATIC_COMPONENT=\$STATIC_hook_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component hook:$component compile mode" >&5 +$as_echo_n "checking for MCA component hook:$component compile mode... " >&6; } + if test "$DIRECT_hook" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + # Is the private index set? If not, set it. @@ -296803,7 +323529,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -296822,7 +323548,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $opal_str unset opal_str @@ -296830,21 +323556,130 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo OMPIO File Systems | tr ' ' '_') - ompi_summary_line="Lustre: $fs_lustre_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) +# +# Invoke configure in a specific subdirectory. +# +# ompi/mca/hook/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="ompi/mca/hook/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} fi + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -296866,60 +323701,80 @@ unset $opal_var done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/ompi/mca/hook/all_components/post_configure.sh" + if test -f $infile; then - # substitute in the things needed to build lustre - - - + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + hook_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + hook_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi - if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/fs/lustre/post_configure.sh" + infile="$srcdir/ompi/mca/hook/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components lustre" + all_components="$all_components $component" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components lustre" + dso_components="$dso_components $component" else - if test "fs" = "common"; then + if test "hook" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/fs/lustre/lib${OMPI_LIB_PREFIX}mca_fs_lustre.la $static_ltlibs" + static_ltlibs="mca/hook/$component/lib${OMPI_LIB_PREFIX}mca_hook_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/fs/lustre/libmca_fs_lustre.la $static_ltlibs" + static_ltlibs="mca/hook/$component/libmca_hook_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_fs_lustre_component;" >> $outfile.extern - echo " &mca_fs_lustre_component, " >> $outfile.struct - static_components="$static_components lustre" + echo "extern const mca_base_component_t mca_hook_$component_component;" >> $outfile.extern + echo " &mca_hook_$component_component, " >> $outfile.struct + static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:lustre can compile" >&5 -$as_echo_n "checking if MCA component fs:lustre can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component hook:$component can compile" >&5 +$as_echo_n "checking if MCA component hook:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_fs" = "lustre" ; then + if test "$DIRECT_hook" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_fs_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_hook_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** fs component lustre was supposed to be direct-called, but +as_fn_error $? "*** hook component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -296927,8 +323782,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_fs" = "lustre" ; then -as_fn_error $? "*** fs component lustre was supposed to be direct-called, but + if test "$DIRECT_hook" = "$component" ; then +as_fn_error $? "*** hook component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -296943,7 +323798,8 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$fs_lustre_WRAPPER_EXTRA_LDFLAGS" = ""; then : + str="line=\$hook_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -296983,7 +323839,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fs_lustre_LDFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -297023,8 +323879,8 @@ unset $opal_var done - -else +str="line=\$hook_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -297064,21 +323920,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fs_lustre_WRAPPER_EXTRA_LDFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -297105,334 +323961,190 @@ done -fi - if test "$fs_lustre_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - for arg in $fs_lustre_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component hook:$component can compile" >&5 +$as_echo_n "checking if MCA component hook:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_hook" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test ! -z "$DIRECT_hook" ; then + if test "$DIRECT_hook" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + fi + fi done +fi -else - - + MCA_ompi_hook_ALL_COMPONENTS="$all_components" + MCA_ompi_hook_STATIC_COMPONENTS="$static_components" + MCA_ompi_hook_DSO_COMPONENTS="$dso_components" + MCA_ompi_hook_STATIC_LTLIBS="$static_ltlibs" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fs_lustre_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi + MCA_ompi_hook_ALL_SUBDIRS= + for item in $all_components ; do + MCA_ompi_hook_ALL_SUBDIRS="$MCA_ompi_hook_ALL_SUBDIRS mca/hook/$item" done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + MCA_ompi_hook_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_ompi_hook_STATIC_SUBDIRS="$MCA_ompi_hook_STATIC_SUBDIRS mca/hook/$item" done -fi - - fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$fs_lustre_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + MCA_ompi_hook_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_ompi_hook_DSO_SUBDIRS="$MCA_ompi_hook_DSO_SUBDIRS mca/hook/$item" + done - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "hook" != "common"; then + cat > $outfile <&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +const mca_base_component_t *mca_hook_base_static_components[] = { +`cat $outfile.struct` + NULL +}; - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +#if defined(c_plusplus) || defined(__cplusplus) +} +#endif - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +EOF + # Only replace the header file if a) it doesn't previously + # exist, or b) the contents are different. Do this to not + # trigger recompilation of certain .c files just because the + # timestamp changed on $outfile_real (similar to the way AC + # handles AC_CONFIG_HEADER files). + diff $outfile $outfile_real > /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + unset all_components static_components dso_components outfile outfile_real - for arg in $fs_lustre_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS io" + MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/io" + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_io_ALL_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_io_DSO_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_io_STATIC_SUBDIRS)" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/io/libmca_io.la" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_io_STATIC_LTLIBS)" - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_show_subsubtitle "Configuring MCA framework io" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fs_lustre_WRAPPER_EXTRA_CPPFLAGS ($fs_lustre_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring fs_lustre_WRAPPER_EXTRA_CPPFLAGS ($fs_lustre_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= -else + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=ompi/mca/io/base + as_dir=$outdir; as_fn_mkdir_p - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:lustre can compile" >&5 -$as_echo_n "checking if MCA component fs:lustre can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # emit Makefile rule + ac_config_files="$ac_config_files ompi/mca/io/Makefile" - # If this component was requested as the default for this - # type, then abort. - if test "$with_fs" = "lustre" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lustre\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"lustre\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - if test ! -z "$DIRECT_fs" ; then - if test "$DIRECT_fs" = "lustre" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lustre\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"lustre\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - # add component to all component list - all_components="$all_components lustre" -fi + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework io" >&5 +$as_echo_n "checking for no configure components in framework io... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework io" >&5 +$as_echo_n "checking for m4 configure components in framework io... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ompio, romio321" >&5 +$as_echo "ompio, romio321" >&6; } + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_fs_lustre_DSO=1 -else - BUILD_ompi_fs_lustre_DSO=0 -fi - if test "$BUILD_ompi_fs_lustre_DSO" = "1"; then - MCA_BUILD_ompi_fs_lustre_DSO_TRUE= - MCA_BUILD_ompi_fs_lustre_DSO_FALSE='#' -else - MCA_BUILD_ompi_fs_lustre_DSO_TRUE='#' - MCA_BUILD_ompi_fs_lustre_DSO_FALSE= -fi + # run the configure logic for the no-config components - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - unset compile_mode + # configure components that use built-in configuration scripts + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - opal_show_subsubsubtitle "MCA component fs:pvfs2 (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component io:ompio (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/fs/pvfs2" + component_path="$srcdir/ompi/mca/io/ompio" want_component=0 # build if: @@ -297464,8 +324176,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_fs" ; then - if test "$DIRECT_fs" = "pvfs2" ; then + if test ! -z "$DIRECT_io" ; then + if test "$DIRECT_io" = "ompio" ; then want_component=1 else want_component=0 @@ -297474,10 +324186,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_fs" = "1"; then : + if test "$DISABLE_io" = "1"; then : want_component=0 fi - if test "$DISABLE_fs_pvfs2" = "1"; then : + if test "$DISABLE_io_ompio" = "1"; then : want_component=0 fi @@ -297490,11 +324202,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_fs" - SHARED_COMPONENT="$DSO_fs_pvfs2" + SHARED_FRAMEWORK="$DSO_io" + SHARED_COMPONENT="$DSO_io_ompio" - STATIC_FRAMEWORK="$STATIC_fs" - STATIC_COMPONENT="$STATIC_fs_pvfs2" + STATIC_FRAMEWORK="$STATIC_io" + STATIC_COMPONENT="$STATIC_io_ompio" shared_mode_override=static @@ -297512,9 +324224,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fs:pvfs2 compile mode" >&5 -$as_echo_n "checking for MCA component fs:pvfs2 compile mode... " >&6; } - if test "$DIRECT_fs" = "pvfs2" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component io:ompio compile mode" >&5 +$as_echo_n "checking for MCA component io:ompio compile mode... " >&6; } + if test "$DIRECT_io" = "ompio" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -297525,95 +324237,86 @@ # try to configure the component - ac_config_files="$ac_config_files ompi/mca/fs/pvfs2/Makefile" - - - - - check_pvfs2_CPPFLAGS= - check_pvfs2_LDFLAGS= - check_pvfs2_LIBS= - - check_pvfs2_configuration="none" - ompi_check_pvfs2_happy="yes" - - - # Get some configuration information - -# Check whether --with-pvfs2 was given. -if test "${with_pvfs2+set}" = set; then : - withval=$with_pvfs2; -fi + ac_config_files="$ac_config_files ompi/mca/io/ompio/Makefile" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-pvfs2 value" >&5 -$as_echo_n "checking --with-pvfs2 value... " >&6; } - if test "$with_pvfs2" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-pvfs2)" >&5 -$as_echo "simple no (specified --without-pvfs2)" >&6; } -else - if test "$with_pvfs2" = "yes" || test "x$with_pvfs2" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_pvfs2"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_pvfs2 not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_pvfs2 not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_pvfs2/include/pvfs2.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_pvfs2/include/pvfs2.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_pvfs2/include/pvfs2.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$enable_io_ompio" != "no"; then : + should_build=$should_build else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_pvfs2)" >&5 -$as_echo "sanity check ok ($with_pvfs2)" >&6; } - + should_build=0 fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" -fi + if test "$should_build" = "1"; then : -fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/io/ompio/post_configure.sh" -fi + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components ompio" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components ompio" + else + if test "io" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/io/ompio/lib${OMPI_LIB_PREFIX}mca_io_ompio.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/io/ompio/libmca_io_ompio.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_io_ompio_component;" >> $outfile.extern + echo " &mca_io_ompio_component, " >> $outfile.struct + static_components="$static_components ompio" + fi - if test "$with_pvfs2" = "no"; then : - ompi_check_pvfs2_happy="no" -else - if test -z "$with_pvfs2"; then : - ompi_check_pvfs2_dir="/usr/local" -else - ompi_check_pvfs2_dir=$with_pvfs2 -fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component io:ompio can compile" >&5 +$as_echo_n "checking if MCA component io:ompio can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - if test -e "$ompi_check_pvfs2_dir/lib64" ; then - ompi_check_pvfs2_libdir="$ompi_check_pvfs2_dir/lib64" + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_io" = "ompio" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_io_DIRECT_CALL_HEADER=$line" + eval $str else - ompi_check_pvfs2_libdir="$ompi_check_pvfs2_dir/lib" +as_fn_error $? "*** io component ompio was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_io" = "ompio" ; then +as_fn_error $? "*** io component ompio was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - # Add correct -I and -L flags - - opal_check_package_fs_pvfs2_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_fs_pvfs2_save_LDFLAGS="$LDFLAGS" - opal_check_package_fs_pvfs2_save_LIBS="$LIBS" - - opal_check_package_fs_pvfs2_orig_CPPFLAGS="$fs_pvfs2_CPPFLAGS" - opal_check_package_fs_pvfs2_orig_LDFLAGS="$fs_pvfs2_LDFLAGS" - opal_check_package_fs_pvfs2_orig_LIBS="$fs_pvfs2_LIBS" - - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$io_ompio_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -297626,7 +324329,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -297645,7 +324348,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -297653,357 +324356,211 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_pvfs2_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_pvfs2_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in pvfs2.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "pvfs2.h" "ac_cv_header_pvfs2_h" "$ac_includes_default" -if test "x$ac_cv_header_pvfs2_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PVFS2_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_pvfs2_h + for arg in $io_ompio_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - fs_pvfs2_CPPFLAGS="$fs_pvfs2_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - for ac_header in pvfs2.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "pvfs2.h" "ac_cv_header_pvfs2_h" "$ac_includes_default" -if test "x$ac_cv_header_pvfs2_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PVFS2_H 1 -_ACEOF - opal_check_package_header_happy="yes" fi + done -done - if test "$opal_check_package_header_happy" = "yes"; then : + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # see comment above - unset ac_cv_search_PVFS_util_resolve - opal_check_package_lib_happy="no" - if test "$ompi_check_pvfs2_libdir" != ""; then : - # libdir was specified - search only there - fs_pvfs2_LDFLAGS="$fs_pvfs2_LDFLAGS -L$ompi_check_pvfs2_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_pvfs2_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 -$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } -if ${ac_cv_search_PVFS_util_resolve+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PVFS_util_resolve (); -int -main () -{ -return PVFS_util_resolve (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pvfs2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PVFS_util_resolve=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PVFS_util_resolve+:} false; then : - break -fi -done -if ${ac_cv_search_PVFS_util_resolve+:} false; then : -else - ac_cv_search_PVFS_util_resolve=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 -$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } -ac_res=$ac_cv_search_PVFS_util_resolve -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" - fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" - unset ac_cv_search_PVFS_util_resolve -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_pvfs2_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 -$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } -if ${ac_cv_search_PVFS_util_resolve+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PVFS_util_resolve (); -int -main () -{ -return PVFS_util_resolve (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pvfs2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PVFS_util_resolve=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PVFS_util_resolve+:} false; then : - break -fi -done -if ${ac_cv_search_PVFS_util_resolve+:} false; then : + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -else - ac_cv_search_PVFS_util_resolve=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 -$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } -ac_res=$ac_cv_search_PVFS_util_resolve -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" - fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" - unset ac_cv_search_PVFS_util_resolve -fi -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - fs_pvfs2_LDFLAGS="$fs_pvfs2_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 -$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } -if ${ac_cv_search_PVFS_util_resolve+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PVFS_util_resolve (); -int -main () -{ -return PVFS_util_resolve (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pvfs2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PVFS_util_resolve=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PVFS_util_resolve+:} false; then : - break -fi -done -if ${ac_cv_search_PVFS_util_resolve+:} false; then : -else - ac_cv_search_PVFS_util_resolve=no + for arg in $io_ompio_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 -$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } -ac_res=$ac_cv_search_PVFS_util_resolve -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" - fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" - unset ac_cv_search_PVFS_util_resolve -fi + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - fs_pvfs2_LDFLAGS="$fs_pvfs2_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 -$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } -if ${ac_cv_search_PVFS_util_resolve+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PVFS_util_resolve (); -int -main () -{ -return PVFS_util_resolve (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pvfs2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PVFS_util_resolve=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PVFS_util_resolve+:} false; then : - break fi -done -if ${ac_cv_search_PVFS_util_resolve+:} false; then : + if test "$io_ompio_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -else - ac_cv_search_PVFS_util_resolve=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 -$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } -ac_res=$ac_cv_search_PVFS_util_resolve -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" - fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" - unset ac_cv_search_PVFS_util_resolve + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $io_ompio_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -298016,7 +324573,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -298035,16 +324592,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $io_ompio_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$io_ompio_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -298057,7 +324664,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -298076,7 +324683,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -298084,303 +324691,511 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $io_ompio_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpvfs2 requires libnl v1 or v3" >&5 -$as_echo_n "checking if libpvfs2 requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void PVFS_util_resolve (void); -int main(int argc, char *argv[]) { - PVFS_util_resolve (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:298111: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpvfs2 $LIBS $fs_pvfs2_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpvfs2 $LIBS $fs_pvfs2_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:298118: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring io_ompio_WRAPPER_EXTRA_CPPFLAGS ($io_ompio_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring io_ompio_WRAPPER_EXTRA_CPPFLAGS ($io_ompio_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib pvfs2" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib pvfs2" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component io:ompio can compile" >&5 +$as_echo_n "checking if MCA component io:ompio can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_io" = "ompio" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ompio\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ompio\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_io" ; then + if test "$DIRECT_io" = "ompio" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ompio\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ompio\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components ompio" fi - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpvfs2 links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libpvfs2 links to both libnl and libnl-3." >&2;} + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_io_ompio_DSO=1 +else + BUILD_ompi_io_ompio_DSO=0 +fi + if test "$BUILD_ompi_io_ompio_DSO" = "1"; then + MCA_BUILD_ompi_io_ompio_DSO_TRUE= + MCA_BUILD_ompi_io_ompio_DSO_FALSE='#' +else + MCA_BUILD_ompi_io_ompio_DSO_TRUE='#' + MCA_BUILD_ompi_io_ompio_DSO_FALSE= +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} - libnl_sane=0 + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pvfs2 requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pvfs2 requires libnl" >&2;} + unset compile_mode - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs pvfs2" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + opal_show_subsubsubtitle "MCA component io:romio321 (m4 configuration macro)" - # Loop over every token we've seen so far + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + component_path="$srcdir/ompi/mca/io/romio321" + want_component=0 - # Check the ending condition + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_io" ; then + if test "$DIRECT_io" = "romio321" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - opal_done="`expr $opal_i \>= $opal_count`" + # if we were explicitly disabled, don't build :) + if test "$DISABLE_io" = "1"; then : + want_component=0 +fi + if test "$DISABLE_io_romio321" = "1"; then : + want_component=0 +fi - # Increment the counter + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi - opal_i="`expr $opal_i + 1`" - done + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - # If we didn't find the token, add it to the "array" + SHARED_FRAMEWORK="$DSO_io" + SHARED_COMPONENT="$DSO_io_romio321" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + STATIC_FRAMEWORK="$STATIC_io" + STATIC_COMPONENT="$STATIC_io_romio321" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" else - opal_i="`expr $opal_i - 1`" + compile_mode="static" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component io:romio321 compile mode" >&5 +$as_echo_n "checking for MCA component io:romio321 compile mode... " >&6; } + if test "$DIRECT_io" = "romio321" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # try to configure the component - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + ac_config_files="$ac_config_files ompi/mca/io/romio321/Makefile" -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in io_romio321_flags io_romio321_flags_define io_romio321_happy io_romio321_save_LIBS; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"io_romio321_flags io_romio321_flags_define io_romio321_happy io_romio321_save_LIBS\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + # Check whether --enable-io-romio was given. +if test "${enable_io_romio+set}" = set; then : + enableval=$enable_io_romio; fi + +# Check whether --with-io-romio-flags was given. +if test "${with_io_romio_flags+set}" = set; then : + withval=$with_io_romio_flags; fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpvfs2 requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpvfs2 requires libnl-3" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} +cat >>confdefs.h <<_ACEOF +#define MCA_io_romio321_USER_CONFIGURE_FLAGS "$with_io_romio_flags" +_ACEOF - libnl_sane=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if want ROMIO component" >&5 +$as_echo_n "checking if want ROMIO component... " >&6; } + if test "$enable_io_romio" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + should_build=0 else - opal_libnlv3_libs="$opal_libnlv3_libs pvfs2" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MPI profiling is enabled" >&5 +$as_echo_n "checking if MPI profiling is enabled... " >&6; } + if test "$enable_mpi_profile" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** The ROMIO io component requires the MPI profiling layer" >&5 +$as_echo "$as_me: WARNING: *** The ROMIO io component requires the MPI profiling layer" >&2;} + if test "$enable_io_romio" = "yes"; then : + as_fn_error $? "*** ROMIO requested but not available. Aborting" "$LINENO" 5 +fi + should_build=0 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + if test -n "$with_io_romio_flags" && test "$with_io_romio_flags" != "no"; then : + io_romio321_flags="$with_io_romio_flags $io_romio321_flags" +else + io_romio321_flags= +fi + # If ROMIO is going to end up in a DSO, all we need is + # shared library-ized objects, as we're only building a + # DSO (which is always shared). Otherwise, build with + # same flags as OMPI, as we might need any combination of + # shared and static-ized objects... + if test "$compile_mode" = "dso"; then : + io_romio321_shared=enable + io_romio321_static=disable +else + if test "$enable_shared" = "yes"; then : + io_romio321_shared=enable +else + io_romio321_shared=disable +fi + if test "$enable_static" = "yes"; then : + io_romio321_static=enable +else + io_romio321_static=disable +fi +fi + if test -n "$prefix" && test "$prefix" != "NONE"; then : + io_romio321_prefix_arg="--prefix=$prefix" +else + io_romio321_prefix_arg= +fi -# Go through each item in the variable and only keep the unique ones + if test "$cross_compiling" = "yes"; then : + if test ! -z $build; then : + io_romio321_flags="$io_romio321_flags --build=$build" +fi + if test ! -z $host; then : + io_romio321_flags="$io_romio321_flags --host=$host" +fi + if test ! -z $target; then : + io_romio321_flags="$io_romio321_flags --target=$target" +fi +fi + if test "$enable_grequest_extensions" = "yes"; then : + io_romio321_flags="$io_romio321_flags --enable-grequest-extensions" +fi + io_romio321_flags_define="$io_romio321_flags FROM_OMPI=yes CC='$CC' CFLAGS='$CFLAGS -D__EXTENSIONS__' CPPFLAGS='$CPPFLAGS' FFLAGS='$FFLAGS' LDFLAGS='$LDFLAGS' --$io_romio321_shared-shared --$io_romio321_static-static $io_romio321_flags $io_romio321_prefix_arg --disable-aio --disable-weak-symbols --enable-strict --disable-f77 --disable-f90" -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 +cat >>confdefs.h <<_ACEOF +#define MCA_io_romio321_COMPLETE_CONFIGURE_FLAGS "$io_romio321_flags_define" +_ACEOF - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + io_romio321_flags="$io_romio321_flags FROM_OMPI=yes CC="'"'"$CC"'"'" CFLAGS="'"'"$CFLAGS -D__EXTENSIONS__"'"'" CPPFLAGS="'"'"$CPPFLAGS"'"'" FFLAGS="'"'"$FFLAGS"'"'" LDFLAGS="'"'"$LDFLAGS"'"'" --$io_romio321_shared-shared --$io_romio321_static-static $io_romio321_flags $io_romio321_prefix_arg --disable-aio --disable-weak-symbols --enable-strict --disable-f77 --disable-f90" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + opal_show_subtitle "Configuring ROMIO distribution" - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # Increment the counter + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_i="`expr $opal_i + 1`" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done - # If we didn't find the token, add it to the "array" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval +# +# Invoke configure in a specific subdirectory. +# +# ompi/mca/io/romio321/romio is the directory to invoke in +# $io_romio321_flags is the list of arguments to pass +# io_romio321_happy=1 is actions to execute upon success +# io_romio321_happy=0 is actions to execute upon failure +# +subdir_dir="ompi/mca/io/romio321/romio" +subdir_args="$io_romio321_flags" +subdir_success="io_romio321_happy=1" +subdir_failure="io_romio321_happy=0" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval +# +# Sanity checks +# - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} -# Done; do the assignment + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } -# Clean up + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + # + # Move into the target directory + # -fi + subdir_parent=`pwd` + cd $subdir_dir - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + # + # Make a "../" for each directory in $subdir_dir. + # - rm -f conftest conftest_c.$ac_ext + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - opal_libnl_sane=$libnl_sane + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + # + # Construct the --cache-file argument + # - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # + # Invoke the configure script in the subdirectory + # - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + # + # Go back to the topdir + # - ;; - esac + cd $subdir_parent +fi + +# +# Clean up +# - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -298403,332 +325218,123 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_PVFS_util_resolve" != "no" && - test "$ac_cv_search_PVFS_util_resolve" != "none required"; then : - fs_pvfs2_LIBS="$ac_cv_search_PVFS_util_resolve " -else - fs_pvfs2_LIBS="" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi - - -else - opal_check_package_happy="no" -fi -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_PVFS_util_resolve - opal_check_package_lib_happy="no" - if test "$ompi_check_pvfs2_libdir" != ""; then : - # libdir was specified - search only there - fs_pvfs2_LDFLAGS="$fs_pvfs2_LDFLAGS -L$ompi_check_pvfs2_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_pvfs2_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 -$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } -if ${ac_cv_search_PVFS_util_resolve+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PVFS_util_resolve (); -int -main () -{ -return PVFS_util_resolve (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pvfs2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PVFS_util_resolve=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PVFS_util_resolve+:} false; then : - break -fi -done -if ${ac_cv_search_PVFS_util_resolve+:} false; then : - -else - ac_cv_search_PVFS_util_resolve=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 -$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } -ac_res=$ac_cv_search_PVFS_util_resolve -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" - fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" - unset ac_cv_search_PVFS_util_resolve -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_pvfs2_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 -$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } -if ${ac_cv_search_PVFS_util_resolve+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PVFS_util_resolve (); -int -main () -{ -return PVFS_util_resolve (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pvfs2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PVFS_util_resolve=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PVFS_util_resolve+:} false; then : - break -fi -done -if ${ac_cv_search_PVFS_util_resolve+:} false; then : - -else - ac_cv_search_PVFS_util_resolve=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 -$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } -ac_res=$ac_cv_search_PVFS_util_resolve -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" - fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" - unset ac_cv_search_PVFS_util_resolve -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - fs_pvfs2_LDFLAGS="$fs_pvfs2_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 -$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } -if ${ac_cv_search_PVFS_util_resolve+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PVFS_util_resolve (); -int -main () -{ -return PVFS_util_resolve (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pvfs2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PVFS_util_resolve=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PVFS_util_resolve+:} false; then : - break -fi -done -if ${ac_cv_search_PVFS_util_resolve+:} false; then : - -else - ac_cv_search_PVFS_util_resolve=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 -$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } -ac_res=$ac_cv_search_PVFS_util_resolve -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" - fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" - unset ac_cv_search_PVFS_util_resolve -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - fs_pvfs2_LDFLAGS="$fs_pvfs2_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PVFS_util_resolve" >&5 -$as_echo_n "checking for library containing PVFS_util_resolve... " >&6; } -if ${ac_cv_search_PVFS_util_resolve+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char PVFS_util_resolve (); -int -main () -{ -return PVFS_util_resolve (); - ; - return 0; -} -_ACEOF -for ac_lib in '' pvfs2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PVFS_util_resolve=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_PVFS_util_resolve+:} false; then : - break -fi -done -if ${ac_cv_search_PVFS_util_resolve+:} false; then : + if test "$io_romio321_happy" = "1"; then : + # grab the libraries list from ROMIO. We don't + # need this for building the component, as libtool + # will figure that part out. But we do need it for + # the wrapper settings + io_romio321_save_LIBS="$LIBS" + LIBS= + . ompi/mca/io/romio321/romio/localdefs + io_romio321_LIBS="$LIBS" + LIBS="$io_romio321_save_LIBS" + echo "ROMIO distribution configured successfully" + should_build=$should_build else - ac_cv_search_PVFS_util_resolve=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PVFS_util_resolve" >&5 -$as_echo "$ac_cv_search_PVFS_util_resolve" >&6; } -ac_res=$ac_cv_search_PVFS_util_resolve -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$enable_io_romio" = "yes"; then : + as_fn_error $? "ROMIO distribution did not configure successfully" "$LINENO" 5 else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" - fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" - unset ac_cv_search_PVFS_util_resolve + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ROMIO distribution did not configure successfully" >&5 +$as_echo "$as_me: WARNING: ROMIO distribution did not configure successfully" >&2;} fi + should_build=0 fi fi fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/io/romio321/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components romio321" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components romio321" + else + if test "io" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/io/romio321/lib${OMPI_LIB_PREFIX}mca_io_romio321.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/io/romio321/libmca_io_romio321.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_io_romio321_component;" >> $outfile.extern + echo " &mca_io_romio321_component, " >> $outfile.struct + static_components="$static_components romio321" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component io:romio321 can compile" >&5 +$as_echo_n "checking if MCA component io:romio321 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_io" = "romio321" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_io_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** io component romio321 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_io" = "romio321" ; then +as_fn_error $? "*** io component romio321 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$io_romio321_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -298741,7 +325347,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -298760,16 +325366,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $io_romio321_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -298782,7 +325428,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -298801,7 +325447,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -298809,276 +325455,106 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpvfs2 requires libnl v1 or v3" >&5 -$as_echo_n "checking if libpvfs2 requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void PVFS_util_resolve (void); -int main(int argc, char *argv[]) { - PVFS_util_resolve (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:298836: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpvfs2 $LIBS $fs_pvfs2_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpvfs2 $LIBS $fs_pvfs2_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:298843: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" + for arg in $io_romio321_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" + done fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib pvfs2" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib pvfs2" >&2;} - + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpvfs2 links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libpvfs2 links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} - - libnl_sane=0 fi - - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pvfs2 requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas pvfs2 requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} - - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs pvfs2" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" - - # Increment the counter - - opal_i="`expr $opal_i + 1`" done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -# Clean up + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi fi + if test "$io_romio321_WRAPPER_EXTRA_LIBS" = ""; then : - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpvfs2 requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpvfs2 requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpvfs2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpvfs2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpvfs2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpvfs2." >&2;} - - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs pvfs2" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" - - # Increment the counter - - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Done; do the assignment + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 + for arg in $io_romio321_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - + done fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done # Unwind the index @@ -299102,10 +325578,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $io_romio321_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -299128,28 +325659,74 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no fi -fi + fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_PVFS_util_resolve" != "no" && - test "$ac_cv_search_PVFS_util_resolve" != "none required"; then : - fs_pvfs2_LIBS="$ac_cv_search_PVFS_util_resolve " -else - fs_pvfs2_LIBS="" + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$io_romio321_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $io_romio321_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -299173,34 +325750,194 @@ done +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring io_romio321_WRAPPER_EXTRA_CPPFLAGS ($io_romio321_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring io_romio321_WRAPPER_EXTRA_CPPFLAGS ($io_romio321_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_pvfs2_happy="yes" else - fs_pvfs2_CPPFLAGS="$opal_check_package_fs_pvfs2_orig_CPPFLAGS" - fs_pvfs2_LDFLAGS="$opal_check_package_fs_pvfs2_orig_LDFLAGS" - fs_pvfs2_LIBS="$opal_check_package_fs_pvfs2_orig_LIBS" - ompi_check_pvfs2_happy="no" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component io:romio321 can compile" >&5 +$as_echo_n "checking if MCA component io:romio321 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_io" = "romio321" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"romio321\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"romio321\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_io" ; then + if test "$DIRECT_io" = "romio321" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"romio321\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"romio321\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components romio321" fi - CPPFLAGS="$opal_check_package_fs_pvfs2_save_CPPFLAGS" - LDFLAGS="$opal_check_package_fs_pvfs2_save_LDFLAGS" - LIBS="$opal_check_package_fs_pvfs2_save_LIBS" + + if test $should_build -eq 1; then + MCA_io_romio321_SHOULD_BUILD_TRUE= + MCA_io_romio321_SHOULD_BUILD_FALSE='#' +else + MCA_io_romio321_SHOULD_BUILD_TRUE='#' + MCA_io_romio321_SHOULD_BUILD_FALSE= +fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_io_romio321_DSO=1 +else + BUILD_ompi_io_romio321_DSO=0 +fi + if test "$BUILD_ompi_io_romio321_DSO" = "1"; then + MCA_BUILD_ompi_io_romio321_DSO_TRUE= + MCA_BUILD_ompi_io_romio321_DSO_FALSE='#' +else + MCA_BUILD_ompi_io_romio321_DSO_TRUE='#' + MCA_BUILD_ompi_io_romio321_DSO_FALSE= fi - if test "$ompi_check_pvfs2_happy" = "yes"; then : - fs_pvfs2_happy="yes" + + if test "$should_build" = "1"; then : + components_last_result=1 else - if test ! -z "$with_pvfs2" && test "$with_pvfs2" != "no"; then : - echo PVFS2 support not found + components_last_result=0 fi - fs_pvfs2_happy="no" + + unset compile_mode + + + + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/ompi/mca/io/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component io:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/ompi/mca/io/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_io" ; then + if test "$DIRECT_io" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_io" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_io_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 fi + SHARED_FRAMEWORK="$DSO_io" + str="SHARED_COMPONENT=\$DSO_io_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_io" + str="STATIC_COMPONENT=\$STATIC_io_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component io:$component compile mode" >&5 +$as_echo_n "checking for MCA component io:$component compile mode... " >&6; } + if test "$DIRECT_io" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + if test "$should_build" = "1" ; then @@ -299213,7 +325950,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -299232,7 +325969,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $opal_str unset opal_str @@ -299240,21 +325977,130 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo OMPIO File Systems | tr ' ' '_') - ompi_summary_line="PVFS2/OrangeFS: $fs_pvfs2_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) +# +# Invoke configure in a specific subdirectory. +# +# ompi/mca/io/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="ompi/mca/io/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} fi + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -299276,71 +326122,80 @@ unset $opal_var done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi - if test "$fs_pvfs2_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi - -# AC_CHECK_HEADERS([pvfs2.h], [], -# [AC_CHECK_HEADERS([pvfs2.h], [], [should_build=0], -# [AC_INCLUDES_DEFAULT])], -# [AC_INCLUDES_DEFAULT]) - - - # substitute in the things needed to build pvfs2 - - + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/ompi/mca/io/all_components/post_configure.sh" + if test -f $infile; then + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + io_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + io_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi - if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/fs/pvfs2/post_configure.sh" + infile="$srcdir/ompi/mca/io/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components pvfs2" + all_components="$all_components $component" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components pvfs2" + dso_components="$dso_components $component" else - if test "fs" = "common"; then + if test "io" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/fs/pvfs2/lib${OMPI_LIB_PREFIX}mca_fs_pvfs2.la $static_ltlibs" + static_ltlibs="mca/io/$component/lib${OMPI_LIB_PREFIX}mca_io_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/fs/pvfs2/libmca_fs_pvfs2.la $static_ltlibs" + static_ltlibs="mca/io/$component/libmca_io_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_fs_pvfs2_component;" >> $outfile.extern - echo " &mca_fs_pvfs2_component, " >> $outfile.struct - static_components="$static_components pvfs2" + echo "extern const mca_base_component_t mca_io_$component_component;" >> $outfile.extern + echo " &mca_io_$component_component, " >> $outfile.struct + static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:pvfs2 can compile" >&5 -$as_echo_n "checking if MCA component fs:pvfs2 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component io:$component can compile" >&5 +$as_echo_n "checking if MCA component io:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_fs" = "pvfs2" ; then + if test "$DIRECT_io" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_fs_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_io_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** fs component pvfs2 was supposed to be direct-called, but +as_fn_error $? "*** io component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -299348,8 +326203,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_fs" = "pvfs2" ; then -as_fn_error $? "*** fs component pvfs2 was supposed to be direct-called, but + if test "$DIRECT_io" = "$component" ; then +as_fn_error $? "*** io component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -299364,7 +326219,8 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$fs_pvfs2_WRAPPER_EXTRA_LDFLAGS" = ""; then : + str="line=\$io_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -299404,7 +326260,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fs_pvfs2_LDFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -299444,8 +326300,8 @@ unset $opal_var done - -else +str="line=\$io_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -299485,21 +326341,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fs_pvfs2_WRAPPER_EXTRA_LDFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -299526,334 +326382,191 @@ done -fi - if test "$fs_pvfs2_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - for arg in $fs_pvfs2_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component io:$component can compile" >&5 +$as_echo_n "checking if MCA component io:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_io" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test ! -z "$DIRECT_io" ; then + if test "$DIRECT_io" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + fi + fi done +fi -else - - + MCA_ompi_io_ALL_COMPONENTS="$all_components" + MCA_ompi_io_STATIC_COMPONENTS="$static_components" + MCA_ompi_io_DSO_COMPONENTS="$dso_components" + MCA_ompi_io_STATIC_LTLIBS="$static_ltlibs" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fs_pvfs2_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi + MCA_ompi_io_ALL_SUBDIRS= + for item in $all_components ; do + MCA_ompi_io_ALL_SUBDIRS="$MCA_ompi_io_ALL_SUBDIRS mca/io/$item" done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + MCA_ompi_io_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_ompi_io_STATIC_SUBDIRS="$MCA_ompi_io_STATIC_SUBDIRS mca/io/$item" done -fi - - fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$fs_pvfs2_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + MCA_ompi_io_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_ompi_io_DSO_SUBDIRS="$MCA_ompi_io_DSO_SUBDIRS mca/io/$item" + done - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "io" != "common"; then + cat > $outfile <&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +const mca_base_component_t *mca_io_base_static_components[] = { +`cat $outfile.struct` + NULL +}; - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +#if defined(c_plusplus) || defined(__cplusplus) +} +#endif - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +EOF + # Only replace the header file if a) it doesn't previously + # exist, or b) the contents are different. Do this to not + # trigger recompilation of certain .c files just because the + # timestamp changed on $outfile_real (similar to the way AC + # handles AC_CONFIG_HEADER files). + diff $outfile $outfile_real > /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + unset all_components static_components dso_components outfile outfile_real - for arg in $fs_pvfs2_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS mtl" + MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/mtl" + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_mtl_ALL_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_mtl_DSO_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_mtl_STATIC_SUBDIRS)" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/mtl/libmca_mtl.la" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_mtl_STATIC_LTLIBS)" + # configure all the components - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_show_subsubtitle "Configuring MCA framework mtl" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fs_pvfs2_WRAPPER_EXTRA_CPPFLAGS ($fs_pvfs2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring fs_pvfs2_WRAPPER_EXTRA_CPPFLAGS ($fs_pvfs2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= -else + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=ompi/mca/mtl/base + as_dir=$outdir; as_fn_mkdir_p - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:pvfs2 can compile" >&5 -$as_echo_n "checking if MCA component fs:pvfs2 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # emit Makefile rule + ac_config_files="$ac_config_files ompi/mca/mtl/Makefile" - # If this component was requested as the default for this - # type, then abort. - if test "$with_fs" = "pvfs2" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pvfs2\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pvfs2\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - if test ! -z "$DIRECT_fs" ; then - if test "$DIRECT_fs" = "pvfs2" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pvfs2\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pvfs2\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - # add component to all component list - all_components="$all_components pvfs2" -fi + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework mtl" >&5 +$as_echo_n "checking for no configure components in framework mtl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework mtl" >&5 +$as_echo_n "checking for m4 configure components in framework mtl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ofi, portals4, psm, psm2" >&5 +$as_echo "ofi, portals4, psm, psm2" >&6; } + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_fs_pvfs2_DSO=1 -else - BUILD_ompi_fs_pvfs2_DSO=0 -fi - if test "$BUILD_ompi_fs_pvfs2_DSO" = "1"; then - MCA_BUILD_ompi_fs_pvfs2_DSO_TRUE= - MCA_BUILD_ompi_fs_pvfs2_DSO_FALSE='#' -else - MCA_BUILD_ompi_fs_pvfs2_DSO_TRUE='#' - MCA_BUILD_ompi_fs_pvfs2_DSO_FALSE= -fi + # run the configure logic for the no-config components - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - unset compile_mode + # configure components that use built-in configuration scripts + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - opal_show_subsubsubtitle "MCA component fs:ufs (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component mtl:ofi (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/fs/ufs" + component_path="$srcdir/ompi/mca/mtl/ofi" want_component=0 # build if: @@ -299885,8 +326598,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_fs" ; then - if test "$DIRECT_fs" = "ufs" ; then + if test ! -z "$DIRECT_mtl" ; then + if test "$DIRECT_mtl" = "ofi" ; then want_component=1 else want_component=0 @@ -299895,10 +326608,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_fs" = "1"; then : + if test "$DISABLE_mtl" = "1"; then : want_component=0 fi - if test "$DISABLE_fs_ufs" = "1"; then : + if test "$DISABLE_mtl_ofi" = "1"; then : want_component=0 fi @@ -299911,11 +326624,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_fs" - SHARED_COMPONENT="$DSO_fs_ufs" + SHARED_FRAMEWORK="$DSO_mtl" + SHARED_COMPONENT="$DSO_mtl_ofi" - STATIC_FRAMEWORK="$STATIC_fs" - STATIC_COMPONENT="$STATIC_fs_ufs" + STATIC_FRAMEWORK="$STATIC_mtl" + STATIC_COMPONENT="$STATIC_mtl_ofi" shared_mode_override=static @@ -299933,9 +326646,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fs:ufs compile mode" >&5 -$as_echo_n "checking for MCA component fs:ufs compile mode... " >&6; } - if test "$DIRECT_fs" = "ufs" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component mtl:ofi compile mode" >&5 +$as_echo_n "checking for MCA component mtl:ofi compile mode... " >&6; } + if test "$DIRECT_mtl" = "ofi" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -299946,157 +326659,134 @@ # try to configure the component - ac_config_files="$ac_config_files ompi/mca/fs/ufs/Makefile" + ac_config_files="$ac_config_files ompi/mca/mtl/ofi/Makefile" + # Check for OFI + # Check for OFI libfabric. Note that $opal_ofi_happy is used in + # other configure.m4's to know if OFI/libfabric configured + # successfully. We only need to run the back-end checks once, but + # at least emit a "checking..." statement each subsequent time + # this macro is invoked so that configure's stdout has + # sensible/logical output. + if test -z "$opal_ofi_happy"; then : + # Add --with options - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +# Check whether --with-libfabric was given. +if test "${with_libfabric+set}" = set; then : + withval=$with_libfabric; +fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +# Check whether --with-libfabric-libdir was given. +if test "${with_libfabric_libdir+set}" = set; then : + withval=$with_libfabric_libdir; +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +# Check whether --with-ofi was given. +if test "${with_ofi+set}" = set; then : + withval=$with_ofi; +fi - ompi_summary_section=$(echo OMPIO File Systems | tr ' ' '_') - ompi_summary_line="Generic Unix FS: yes" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi +# Check whether --with-ofi-libdir was given. +if test "${with_ofi_libdir+set}" = set; then : + withval=$with_ofi_libdir; +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + + if test "$with_ofi" = ""; then + with_ofi=$with_libfabric fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$with_ofi_libdir" = ""; then + with_ofi_libdir=$with_libfabric_libdir + fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Sanity check the --with values + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ofi value" >&5 +$as_echo_n "checking --with-ofi value... " >&6; } + if test "$with_ofi" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ofi)" >&5 +$as_echo "simple no (specified --without-ofi)" >&6; } +else + if test "$with_ofi" = "yes" || test "x$with_ofi" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_ofi"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ofi not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ofi not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_ofi/include/rdma/fabric.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ofi/include/rdma/fabric.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ofi/include/rdma/fabric.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ofi)" >&5 +$as_echo "sanity check ok ($with_ofi)" >&6; } +fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : +fi +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/fs/ufs/post_configure.sh" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ufs" +fi - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ufs" - else - if test "fs" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/fs/ufs/lib${OMPI_LIB_PREFIX}mca_fs_ufs.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/fs/ufs/libmca_fs_ufs.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_fs_ufs_component;" >> $outfile.extern - echo " &mca_fs_ufs_component, " >> $outfile.struct - static_components="$static_components ufs" - fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:ufs can compile" >&5 -$as_echo_n "checking if MCA component fs:ufs can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ofi-libdir value" >&5 +$as_echo_n "checking --with-ofi-libdir value... " >&6; } + if test "$with_ofi_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ofi-libdir)" >&5 +$as_echo "simple no (specified --without-ofi-libdir)" >&6; } +else + if test "$with_ofi_libdir" = "yes" || test "x$with_ofi_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_ofi_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ofi_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ofi_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_ofi_libdir/libfabric.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ofi_libdir/libfabric.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ofi_libdir/libfabric.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ofi_libdir)" >&5 +$as_echo "sanity check ok ($with_ofi_libdir)" >&6; } - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_fs" = "ufs" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_fs_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** fs component ufs was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_fs" = "ufs" ; then -as_fn_error $? "*** fs component ufs was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +fi + + +fi + + +fi + + +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$fs_ufs_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -300109,7 +326799,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_check_ofi_save_CPPFLAGS opal_check_ofi_save_LDFLAGS opal_check_ofi_save_LIBS opal_check_fi_info_pci; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -300128,56 +326818,55 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_check_ofi_save_CPPFLAGS opal_check_ofi_save_LDFLAGS opal_check_ofi_save_LIBS opal_check_fi_info_pci\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` + opal_check_ofi_save_CPPFLAGS=$CPPFLAGS + opal_check_ofi_save_LDFLAGS=$LDFLAGS + opal_check_ofi_save_LIBS=$LIBS + opal_check_fi_info_pci=0 - for arg in $fs_ufs_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done + opal_ofi_happy=yes + if test "$with_ofi" = "no"; then : + opal_ofi_happy=no fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + + if test $opal_ofi_happy = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking looking for OFI libfabric in" >&5 +$as_echo_n "checking looking for OFI libfabric in... " >&6; } + if test "$with_ofi" != "yes"; then : + opal_ofi_dir=$with_ofi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ($opal_ofi_dir)" >&5 +$as_echo "($opal_ofi_dir)" >&6; } else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 +$as_echo "(default search paths)" >&6; } fi + if test ! -z "$with_ofi_libdir" && \ + test "$with_ofi_libdir" != "yes"; then : + opal_ofi_libdir=$with_ofi_libdir fi - done +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test $opal_ofi_happy = yes; then : - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + opal_check_package_opal_ofi_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_opal_ofi_save_LDFLAGS="$LDFLAGS" + opal_check_package_opal_ofi_save_LIBS="$LIBS" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + opal_check_package_opal_ofi_orig_CPPFLAGS="$opal_ofi_CPPFLAGS" + opal_check_package_opal_ofi_orig_LDFLAGS="$opal_ofi_LDFLAGS" + opal_check_package_opal_ofi_orig_LIBS="$opal_ofi_LIBS" -else + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -300190,7 +326879,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -300209,7 +326898,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -300217,130 +326906,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fs_ufs_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_rdma_fabric_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $opal_ofi_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in rdma/fabric.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "rdma/fabric.h" "ac_cv_header_rdma_fabric_h" "$ac_includes_default" +if test "x$ac_cv_header_rdma_fabric_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_RDMA_FABRIC_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_rdma_fabric_h +fi +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + opal_ofi_CPPFLAGS="$opal_ofi_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in rdma/fabric.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "rdma/fabric.h" "ac_cv_header_rdma_fabric_h" "$ac_includes_default" +if test "x$ac_cv_header_rdma_fabric_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_RDMA_FABRIC_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_fi_getinfo + opal_check_package_lib_happy="no" + if test "$opal_ofi_libdir" != ""; then : + # libdir was specified - search only there + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_ofi_libdir" + LDFLAGS="$LDFLAGS -L$opal_ofi_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : + +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_ofi_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : + +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg +done +if ${ac_cv_search_fi_getinfo+:} false; then : + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + ac_cv_search_fi_getinfo=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - if test "$fs_ufs_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - for arg in $fs_ufs_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +done +if ${ac_cv_search_fi_getinfo+:} false; then : + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_cv_search_fi_getinfo=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +fi +fi +fi -else + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -300353,7 +327269,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -300372,66 +327288,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $fs_ufs_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$fs_ufs_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -300444,7 +327310,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -300463,7 +327329,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -300471,389 +327337,303 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $fs_ufs_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libfabric requires libnl v1 or v3" >&5 +$as_echo_n "checking if libfabric requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void fi_getinfo (void); +int main(int argc, char *argv[]) { + fi_getinfo (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:327364: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:327371: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring fs_ufs_WRAPPER_EXTRA_CPPFLAGS ($fs_ufs_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring fs_ufs_WRAPPER_EXTRA_CPPFLAGS ($fs_ufs_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib fabric" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib fabric" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:ufs can compile" >&5 -$as_echo_n "checking if MCA component fs:ufs can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi - # If this component was requested as the default for this - # type, then abort. - if test "$with_fs" = "ufs" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ufs\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ufs\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - if test ! -z "$DIRECT_fs" ; then - if test "$DIRECT_fs" = "ufs" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ufs\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ufs\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # add component to all component list - all_components="$all_components ufs" + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + + libnl_sane=0 fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_fs_ufs_DSO=1 -else - BUILD_ompi_fs_ufs_DSO=0 -fi - if test "$BUILD_ompi_fs_ufs_DSO" = "1"; then - MCA_BUILD_ompi_fs_ufs_DSO_TRUE= - MCA_BUILD_ompi_fs_ufs_DSO_FALSE='#' + libnl_sane=0 else - MCA_BUILD_ompi_fs_ufs_DSO_TRUE='#' - MCA_BUILD_ompi_fs_ufs_DSO_FALSE= -fi + opal_libnlv1_libs="$opal_libnlv1_libs fabric" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi +# Go through each item in the variable and only keep the unique ones - unset compile_mode +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - if test "$want_io_ompio" != "0"; then : + opal_i="`expr $opal_i + 1`" + done - for component_path in $srcdir/ompi/mca/fs/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component fs:$component (need to configure)" + # If we didn't find the token, add it to the "array" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - component_path="$srcdir/ompi/mca/fs/$component" - want_component=0 + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_fs" ; then - if test "$DIRECT_fs" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # if we were explicitly disabled, don't build :) - if test "$DISABLE_fs" = "1"; then : - want_component=0 -fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_fs_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi +# Done; do the assignment - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi +fi - SHARED_FRAMEWORK="$DSO_fs" - str="SHARED_COMPONENT=\$DSO_fs_$component" - eval $str + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&2;} - STATIC_FRAMEWORK="$STATIC_fs" - str="STATIC_COMPONENT=\$STATIC_fs_$component" - eval $str + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} - shared_mode_override=static + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs fabric" - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component fs:$component compile mode" >&5 -$as_echo_n "checking for MCA component fs:$component compile mode... " >&6; } - if test "$DIRECT_fs" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +# Go through each item in the variable and only keep the unique ones - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - if test "$should_build" = "1" ; then + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Check the ending condition - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + opal_done="`expr $opal_i \>= $opal_count`" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str + # Increment the counter - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_i="`expr $opal_i + 1`" + done + # If we didn't find the token, add it to the "array" -# -# Invoke configure in a specific subdirectory. -# -# ompi/mca/fs/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="ompi/mca/fs/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done -# -# Sanity checks -# +# Take all the items in the "array" and assemble them back into a +# single variable -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac +# Done; do the assignment - # - # Move into the target directory - # +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - subdir_parent=`pwd` - cd $subdir_dir +# Clean up - # - # Make a "../" for each directory in $subdir_dir. - # +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # +fi - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # - # Construct the --cache-file argument - # + rm -f conftest conftest_c.$ac_ext - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + opal_libnl_sane=$libnl_sane - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # - # Go back to the topdir - # + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - cd $subdir_parent -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# -# Clean up -# + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -300875,105 +327655,333 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/ompi/mca/fs/all_components/post_configure.sh" - if test -f $infile; then + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi +fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - fs_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - fs_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_fi_getinfo" != "no" && + test "$ac_cv_search_fi_getinfo" != "none required"; then : + opal_ofi_LIBS="$ac_cv_search_fi_getinfo " +else + opal_ofi_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi + + +else + opal_check_package_happy="no" +fi +else + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_fi_getinfo + opal_check_package_lib_happy="no" + if test "$opal_ofi_libdir" != ""; then : + # libdir was specified - search only there + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_ofi_libdir" + LDFLAGS="$LDFLAGS -L$opal_ofi_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : + +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$opal_ofi_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : + +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/fs/$component/post_configure.sh" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +fi +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 +$as_echo_n "checking for library containing fi_getinfo... " >&6; } +if ${ac_cv_search_fi_getinfo+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "fs" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/fs/$component/lib${OMPI_LIB_PREFIX}mca_fs_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/fs/$component/libmca_fs_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_fs_$component_component;" >> $outfile.extern - echo " &mca_fs_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fi_getinfo (); +int +main () +{ +return fi_getinfo (); + ; + return 0; +} +_ACEOF +for ac_lib in '' fabric; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fi_getinfo=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fi_getinfo+:} false; then : + break +fi +done +if ${ac_cv_search_fi_getinfo+:} false; then : - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:$component can compile" >&5 -$as_echo_n "checking if MCA component fs:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else + ac_cv_search_fi_getinfo=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 +$as_echo "$ac_cv_search_fi_getinfo" >&6; } +ac_res=$ac_cv_search_fi_getinfo +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_fs" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_fs_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** fs component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_fs" = "$component" ; then -as_fn_error $? "*** fs component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + unset ac_cv_search_fi_getinfo +fi +fi +fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$fs_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -300986,7 +327994,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -301005,56 +328013,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - -str="line=\$fs_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + opal_libnl_sane=1 + case $host in + *linux*) @@ -301067,7 +328035,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -301086,7 +328054,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -301094,159 +328062,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libfabric requires libnl v1 or v3" >&5 +$as_echo_n "checking if libfabric requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void fi_getinfo (void); +int main(int argc, char *argv[]) { + fi_getinfo (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:328089: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:328096: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib fabric" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib fabric" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs fabric" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - else + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component fs:$component can compile" >&5 -$as_echo_n "checking if MCA component fs:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # If this component was requested as the default for this - # type, then abort. - if test "$with_fs" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +# Done; do the assignment - if test ! -z "$DIRECT_fs" ; then - if test "$DIRECT_fs" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - fi - fi - done +# Clean up +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - MCA_ompi_fs_ALL_COMPONENTS="$all_components" - MCA_ompi_fs_STATIC_COMPONENTS="$static_components" - MCA_ompi_fs_DSO_COMPONENTS="$dso_components" - MCA_ompi_fs_STATIC_LTLIBS="$static_ltlibs" +fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs fabric" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - MCA_ompi_fs_ALL_SUBDIRS= - for item in $all_components ; do - MCA_ompi_fs_ALL_SUBDIRS="$MCA_ompi_fs_ALL_SUBDIRS mca/fs/$item" - done + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - MCA_ompi_fs_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_ompi_fs_STATIC_SUBDIRS="$MCA_ompi_fs_STATIC_SUBDIRS mca/fs/$item" - done + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" - MCA_ompi_fs_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_ompi_fs_DSO_SUBDIRS="$MCA_ompi_fs_DSO_SUBDIRS mca/fs/$item" + # Increment the counter + + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "fs" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern +# Done; do the assignment - unset all_components static_components dso_components outfile outfile_real +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi + +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + opal_libnl_sane=$libnl_sane # Unwind the index @@ -301270,184 +328355,160 @@ done - MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS hook" - MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/hook" - MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_hook_ALL_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_hook_DSO_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_hook_STATIC_SUBDIRS)" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/hook/libmca_hook.la" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_hook_STATIC_LTLIBS)" - - # configure all the components - - opal_show_subsubtitle "Configuring MCA framework hook" + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=ompi/mca/hook/base - as_dir=$outdir; as_fn_mkdir_p - # emit Makefile rule - ac_config_files="$ac_config_files ompi/mca/hook/Makefile" + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi +fi - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_fi_getinfo" != "no" && + test "$ac_cv_search_fi_getinfo" != "none required"; then : + opal_ofi_LIBS="$ac_cv_search_fi_getinfo " +else + opal_ofi_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework hook" >&5 -$as_echo_n "checking for no configure components in framework hook... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework hook" >&5 -$as_echo_n "checking for m4 configure components in framework hook... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. +fi + unset opal_check_package_header_happy + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # run the configure logic for the no-config components + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # configure components that use built-in configuration scripts + if test "$opal_check_package_happy" = "yes"; then : - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 +else + opal_ofi_CPPFLAGS="$opal_check_package_opal_ofi_orig_CPPFLAGS" + opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" + opal_ofi_LIBS="$opal_check_package_opal_ofi_orig_LIBS" + opal_ofi_happy=no +fi + CPPFLAGS="$opal_check_package_opal_ofi_save_CPPFLAGS" + LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" + LIBS="$opal_check_package_opal_ofi_save_LIBS" - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) +fi + CPPFLAGS="$CPPFLAGS $opal_ofi_CPPFLAGS" + if test $opal_ofi_happy = yes; then : + for ac_header in rdma/fi_ext.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "rdma/fi_ext.h" "ac_cv_header_rdma_fi_ext_h" "$ac_includes_default" +if test "x$ac_cv_header_rdma_fi_ext_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_RDMA_FI_EXT_H 1 +_ACEOF - if test "1" != "0"; then : +fi - for component_path in $srcdir/ompi/mca/hook/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component hook:$component (need to configure)" +done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + ac_fn_c_check_member "$LINENO" "struct fi_info" "nic" "ac_cv_member_struct_fi_info_nic" "#include +" +if test "x$ac_cv_member_struct_fi_info_nic" = xyes; then : + opal_check_fi_info_pci=1 +else + opal_check_fi_info_pci=0 +fi - component_path="$srcdir/ompi/mca/hook/$component" - want_component=0 - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_hook" ; then - if test "$DIRECT_hook" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi +cat >>confdefs.h <<_ACEOF +#define OPAL_OFI_PCI_DATA_AVAILABLE $opal_check_fi_info_pci +_ACEOF - # if we were explicitly disabled, don't build :) - if test "$DISABLE_hook" = "1"; then : - want_component=0 -fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_hook_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi - if test "$want_component" = "1"; then : - should_build=1 + ac_fn_c_check_decl "$LINENO" "PMIX_PACKAGE_RANK" "ac_cv_have_decl_PMIX_PACKAGE_RANK" "#include +" +if test "x$ac_cv_have_decl_PMIX_PACKAGE_RANK" = xyes; then : + ac_have_decl=1 else - should_build=0 + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_PMIX_PACKAGE_RANK $ac_have_decl +_ACEOF - SHARED_FRAMEWORK="$DSO_hook" - str="SHARED_COMPONENT=\$DSO_hook_$component" - eval $str - STATIC_FRAMEWORK="$STATIC_hook" - str="STATIC_COMPONENT=\$STATIC_hook_$component" - eval $str + ac_fn_c_check_type "$LINENO" "struct fi_ops_mem_monitor" "ac_cv_type_struct_fi_ops_mem_monitor" "#ifdef HAVE_RDMA_FI_EXT_H +#include +#endif +" +if test "x$ac_cv_type_struct_fi_ops_mem_monitor" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_FI_OPS_MEM_MONITOR 1 +_ACEOF + + +fi + +fi + + CPPFLAGS=$opal_check_ofi_save_CPPFLAGS + LDFLAGS=$opal_check_ofi_save_LDFLAGS + LIBS=$opal_check_ofi_save_LIBS - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component hook:$component compile mode" >&5 -$as_echo_n "checking for MCA component hook:$component compile mode... " >&6; } - if test "$DIRECT_hook" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - if test "$should_build" = "1" ; then @@ -301460,7 +328521,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -301479,7 +328540,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -301487,129 +328548,164 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# ompi/mca/hook/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="ompi/mca/hook/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="OpenFabrics OFI Libfabric: $opal_ofi_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) -# -# Sanity checks -# + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # - # Move into the target directory - # - subdir_parent=`pwd` - cd $subdir_dir - # - # Make a "../" for each directory in $subdir_dir. - # - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # - # Construct the --cache-file argument - # + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - # - # Invoke the configure script in the subdirectory - # + if test $opal_ofi_happy = no; then : + if test -n "$with_ofi" && test "$with_ofi" != "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OFI libfabric support requested (via --with-ofi or --with-libfabric), but not found." >&5 +$as_echo "$as_me: WARNING: OFI libfabric support requested (via --with-ofi or --with-libfabric), but not found." >&2;} + as_fn_error $? "Cannot continue." "$LINENO" 5 +fi - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} +fi + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if OFI libfabric is available" >&5 +$as_echo_n "checking if OFI libfabric is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_ofi_happy" >&5 +$as_echo "$opal_ofi_happy" >&6; } +fi + + + # The OFI MTL requires at least OFI libfabric v1.5. + if test "$opal_ofi_happy" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # - # Go back to the topdir - # + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_ofi_ver_ge_save_CPPFLAGS opal_ofi_ver_ge_happy; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - cd $subdir_parent + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_ofi_ver_ge_save_CPPFLAGS opal_ofi_ver_ge_happy\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if OFI API version number is >= 1,5" >&5 +$as_echo_n "checking if OFI API version number is >= 1,5... " >&6; } + opal_ofi_ver_ge_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS=$opal_ofi_CPPFLAGS + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + +#if !defined(FI_MAJOR_VERSION) +#error "we cannot check the version -- sad panda" +#elif FI_VERSION_LT(FI_VERSION(FI_MAJOR_VERSION, FI_MINOR_VERSION), FI_VERSION(1,5)) +#error "version is too low -- nopes" +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + opal_ofi_ver_ge_happy=1 +else + opal_ofi_ver_ge_happy=0 fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# -# Clean up -# + if test $opal_ofi_ver_ge_happy -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + opal_ofi_happy=no +fi + + CPPFLAGS=$opal_ofi_ver_ge_save_CPPFLAGS # Unwind the index @@ -301629,83 +328725,65 @@ # Iterate over all the variables and unset them all for opal_var in $opal_str; do - unset $opal_var - done - - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/ompi/mca/hook/all_components/post_configure.sh" - if test -f $infile; then + unset $opal_var + done - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - hook_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - hook_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi +fi + + if test "$opal_ofi_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/hook/$component/post_configure.sh" + infile="$srcdir/ompi/mca/mtl/ofi/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + all_components="$all_components ofi" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" + dso_components="$dso_components ofi" else - if test "hook" = "common"; then + if test "mtl" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/hook/$component/lib${OMPI_LIB_PREFIX}mca_hook_$component.la $static_ltlibs" + static_ltlibs="mca/mtl/ofi/lib${OMPI_LIB_PREFIX}mca_mtl_ofi.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/hook/$component/libmca_hook_$component.la $static_ltlibs" + static_ltlibs="mca/mtl/ofi/libmca_mtl_ofi.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_hook_$component_component;" >> $outfile.extern - echo " &mca_hook_$component_component, " >> $outfile.struct - static_components="$static_components $component" + echo "extern const mca_base_component_t mca_mtl_ofi_component;" >> $outfile.extern + echo " &mca_mtl_ofi_component, " >> $outfile.struct + static_components="$static_components ofi" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component hook:$component can compile" >&5 -$as_echo_n "checking if MCA component hook:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:ofi can compile" >&5 +$as_echo_n "checking if MCA component mtl:ofi can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_hook" = "$component" ; then + if test "$DIRECT_mtl" = "ofi" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_hook_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_mtl_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** hook component $component was supposed to be direct-called, but +as_fn_error $? "*** mtl component ofi was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -301713,8 +328791,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_hook" = "$component" ; then -as_fn_error $? "*** hook component $component was supposed to be direct-called, but + if test "$DIRECT_mtl" = "ofi" ; then +as_fn_error $? "*** mtl component ofi was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -301729,8 +328807,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$hook_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + if test "$mtl_ofi_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -301770,7 +328847,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $mtl_ofi_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -301810,8 +328887,8 @@ unset $opal_var done -str="line=\$hook_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + +else @@ -301851,21 +328928,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $mtl_ofi_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -301892,190 +328969,353 @@ done - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - +fi + if test "$mtl_ofi_WRAPPER_EXTRA_LIBS" = ""; then : - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component hook:$component can compile" >&5 -$as_echo_n "checking if MCA component hook:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_hook" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - if test ! -z "$DIRECT_hook" ; then - if test "$DIRECT_hook" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $mtl_ofi_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi fi + done - MCA_ompi_hook_ALL_COMPONENTS="$all_components" - MCA_ompi_hook_STATIC_COMPONENTS="$static_components" - MCA_ompi_hook_DSO_COMPONENTS="$dso_components" - MCA_ompi_hook_STATIC_LTLIBS="$static_ltlibs" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done +else + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - MCA_ompi_hook_ALL_SUBDIRS= - for item in $all_components ; do - MCA_ompi_hook_ALL_SUBDIRS="$MCA_ompi_hook_ALL_SUBDIRS mca/hook/$item" + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - MCA_ompi_hook_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_ompi_hook_STATIC_SUBDIRS="$MCA_ompi_hook_STATIC_SUBDIRS mca/hook/$item" + for arg in $mtl_ofi_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - MCA_ompi_hook_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_ompi_hook_DSO_SUBDIRS="$MCA_ompi_hook_DSO_SUBDIRS mca/hook/$item" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done +fi - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "hook" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $mtl_ofi_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - rm -f $outfile.struct $outfile.extern - unset all_components static_components dso_components outfile outfile_real + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS io" - MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/io" - MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_io_ALL_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_io_DSO_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_io_STATIC_SUBDIRS)" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/io/libmca_io.la" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_io_STATIC_LTLIBS)" +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring mtl_ofi_WRAPPER_EXTRA_CPPFLAGS ($mtl_ofi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring mtl_ofi_WRAPPER_EXTRA_CPPFLAGS ($mtl_ofi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - opal_show_subsubtitle "Configuring MCA framework io" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:ofi can compile" >&5 +$as_echo_n "checking if MCA component mtl:ofi can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # If this component was requested as the default for this + # type, then abort. + if test "$with_mtl" = "ofi" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ofi\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ofi\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + if test ! -z "$DIRECT_mtl" ; then + if test "$DIRECT_mtl" = "ofi" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ofi\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ofi\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= + # add component to all component list + all_components="$all_components ofi" +fi - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=ompi/mca/io/base - as_dir=$outdir; as_fn_mkdir_p - # emit Makefile rule - ac_config_files="$ac_config_files ompi/mca/io/Makefile" + if test "$should_build" = "1"; then : - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag MTL" >&5 +$as_echo_n "checking for index in endpoint array for tag MTL... " >&6; } + if test -z "$OMPI_PROC_ENDPOINT_TAG_MTL"; then : + OMPI_PROC_ENDPOINT_TAG_MTL=$ompi_endpoint_tag_counter - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework io" >&5 -$as_echo_n "checking for no configure components in framework io... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework io" >&5 -$as_echo_n "checking for m4 configure components in framework io... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ompio, romio321" >&5 -$as_echo "ompio, romio321" >&6; } +cat >>confdefs.h <<_ACEOF +#define OMPI_PROC_ENDPOINT_TAG_MTL $OMPI_PROC_ENDPOINT_TAG_MTL +_ACEOF - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_MTL" >&5 +$as_echo "$OMPI_PROC_ENDPOINT_TAG_MTL" >&6; } +fi - # run the configure logic for the no-config components + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_mtl_ofi_DSO=1 +else + BUILD_ompi_mtl_ofi_DSO=0 +fi + if test "$BUILD_ompi_mtl_ofi_DSO" = "1"; then + MCA_BUILD_ompi_mtl_ofi_DSO_TRUE= + MCA_BUILD_ompi_mtl_ofi_DSO_FALSE='#' +else + MCA_BUILD_ompi_mtl_ofi_DSO_TRUE='#' + MCA_BUILD_ompi_mtl_ofi_DSO_FALSE= +fi - # configure components that use built-in configuration scripts + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + unset compile_mode - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - opal_show_subsubsubtitle "MCA component io:ompio (m4 configuration macro)" + + opal_show_subsubsubtitle "MCA component mtl:portals4 (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/io/ompio" + component_path="$srcdir/ompi/mca/mtl/portals4" want_component=0 # build if: @@ -302107,8 +329347,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_io" ; then - if test "$DIRECT_io" = "ompio" ; then + if test ! -z "$DIRECT_mtl" ; then + if test "$DIRECT_mtl" = "portals4" ; then want_component=1 else want_component=0 @@ -302117,10 +329357,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_io" = "1"; then : + if test "$DISABLE_mtl" = "1"; then : want_component=0 fi - if test "$DISABLE_io_ompio" = "1"; then : + if test "$DISABLE_mtl_portals4" = "1"; then : want_component=0 fi @@ -302133,11 +329373,11 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_io" - SHARED_COMPONENT="$DSO_io_ompio" + SHARED_FRAMEWORK="$DSO_mtl" + SHARED_COMPONENT="$DSO_mtl_portals4" - STATIC_FRAMEWORK="$STATIC_io" - STATIC_COMPONENT="$STATIC_io_ompio" + STATIC_FRAMEWORK="$STATIC_mtl" + STATIC_COMPONENT="$STATIC_mtl_portals4" shared_mode_override=static @@ -302155,9 +329395,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component io:ompio compile mode" >&5 -$as_echo_n "checking for MCA component io:ompio compile mode... " >&6; } - if test "$DIRECT_io" = "ompio" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component mtl:portals4 compile mode" >&5 +$as_echo_n "checking for MCA component mtl:portals4 compile mode... " >&6; } + if test "$DIRECT_mtl" = "portals4" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -302168,167 +329408,127 @@ # try to configure the component - ac_config_files="$ac_config_files ompi/mca/io/ompio/Makefile" + ac_config_files="$ac_config_files ompi/mca/mtl/portals4/Makefile" - if test "$enable_io_ompio" != "no"; then : - should_build=$should_build -else - should_build=0 -fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + if test -z "$ompi_check_portals4_happy" ; then - if test "$should_build" = "1"; then : +# Check whether --with-portals4 was given. +if test "${with_portals4+set}" = set; then : + withval=$with_portals4; +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-portals4 value" >&5 +$as_echo_n "checking --with-portals4 value... " >&6; } + if test "$with_portals4" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-portals4)" >&5 +$as_echo "simple no (specified --without-portals4)" >&6; } +else + if test "$with_portals4" = "yes" || test "x$with_portals4" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_portals4"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_portals4 not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_portals4 not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_portals4/include/portals4.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_portals4/include/portals4.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_portals4/include/portals4.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_portals4)" >&5 +$as_echo "sanity check ok ($with_portals4)" >&6; } - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/io/ompio/post_configure.sh" +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ompio" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ompio" - else - if test "io" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/io/ompio/lib${OMPI_LIB_PREFIX}mca_io_ompio.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/io/ompio/libmca_io_ompio.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_io_ompio_component;" >> $outfile.extern - echo " &mca_io_ompio_component, " >> $outfile.struct - static_components="$static_components ompio" - fi +fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component io:ompio can compile" >&5 -$as_echo_n "checking if MCA component io:ompio can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_io" = "ompio" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_io_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** io component ompio was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_io" = "ompio" ; then -as_fn_error $? "*** io component ompio was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$io_ompio_WRAPPER_EXTRA_LDFLAGS" = ""; then : +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +# Check whether --with-portals4-libdir was given. +if test "${with_portals4_libdir+set}" = set; then : + withval=$with_portals4_libdir; +fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-portals4-libdir value" >&5 +$as_echo_n "checking --with-portals4-libdir value... " >&6; } + if test "$with_portals4_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-portals4-libdir)" >&5 +$as_echo "simple no (specified --without-portals4-libdir)" >&6; } +else + if test "$with_portals4_libdir" = "yes" || test "x$with_portals4_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_portals4_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_portals4_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_portals4_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_portals4_libdir/libportals.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_portals4_libdir/libportals.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_portals4_libdir/libportals.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_portals4_libdir)" >&5 +$as_echo "sanity check ok ($with_portals4_libdir)" >&6; } - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + +fi - for arg in $io_ompio_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + + + ompi_check_portals4_mtl_portals4_save_CPPFLAGS="$CPPFLAGS" + ompi_check_portals4_mtl_portals4_save_LDFLAGS="$LDFLAGS" + ompi_check_portals4_mtl_portals4_save_LIBS="$LIBS" + + if test "$with_portals4" != "no"; then : + if test ! -z "$with_portals4" && test "$with_portals4" != "yes"; then : + ompi_check_portals4_dir="$with_portals4" fi + if test ! -z "$with_portals4_libdir" && test "$with_portals4_libdir" != "yes"; then : + ompi_check_portals4_libdir="$with_portals4_libdir" fi - done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + opal_check_package_opal_check_portals4_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_opal_check_portals4_save_LDFLAGS="$LDFLAGS" + opal_check_package_opal_check_portals4_save_LIBS="$LIBS" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + opal_check_package_opal_check_portals4_orig_CPPFLAGS="$opal_check_portals4_CPPFLAGS" + opal_check_package_opal_check_portals4_orig_LDFLAGS="$opal_check_portals4_LDFLAGS" + opal_check_package_opal_check_portals4_orig_LIBS="$opal_check_portals4_LIBS" -else + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -302341,7 +329541,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -302360,7 +329560,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -302368,130 +329568,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $io_ompio_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_portals4_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $ompi_check_portals4_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in portals4.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "portals4.h" "ac_cv_header_portals4_h" "$ac_includes_default" +if test "x$ac_cv_header_portals4_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PORTALS4_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_portals4_h fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + opal_check_portals4_CPPFLAGS="$opal_check_portals4_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in portals4.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "portals4.h" "ac_cv_header_portals4_h" "$ac_includes_default" +if test "x$ac_cv_header_portals4_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PORTALS4_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done +done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_header_happy" = "yes"; then : - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # see comment above + unset ac_cv_search_PtlLEAppend + opal_check_package_lib_happy="no" + if test "$ompi_check_portals4_libdir" != ""; then : + # libdir was specified - search only there + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$ompi_check_portals4_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_portals4_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res fi - if test "$io_ompio_WRAPPER_EXTRA_LIBS" = ""; then : - - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_portals4_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - for arg in $io_ompio_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +done +if ${ac_cv_search_PtlLEAppend+:} false; then : + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_cv_search_PtlLEAppend=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - done + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +fi +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +fi +fi +fi -else + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -302504,7 +329931,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -302523,66 +329950,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $io_ompio_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$io_ompio_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -302595,7 +329972,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -302614,7 +329991,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -302622,511 +329999,303 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $io_ompio_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libportals requires libnl v1 or v3" >&5 +$as_echo_n "checking if libportals requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void PtlLEAppend (void); +int main(int argc, char *argv[]) { + PtlLEAppend (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:330026: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:330033: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring io_ompio_WRAPPER_EXTRA_CPPFLAGS ($io_ompio_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring io_ompio_WRAPPER_EXTRA_CPPFLAGS ($io_ompio_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib portals" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib portals" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component io:ompio can compile" >&5 -$as_echo_n "checking if MCA component io:ompio can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_io" = "ompio" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ompio\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ompio\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_io" ; then - if test "$DIRECT_io" = "ompio" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ompio\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ompio\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components ompio" fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_io_ompio_DSO=1 -else - BUILD_ompi_io_ompio_DSO=0 -fi - if test "$BUILD_ompi_io_ompio_DSO" = "1"; then - MCA_BUILD_ompi_io_ompio_DSO_TRUE= - MCA_BUILD_ompi_io_ompio_DSO_FALSE='#' -else - MCA_BUILD_ompi_io_ompio_DSO_TRUE='#' - MCA_BUILD_ompi_io_ompio_DSO_FALSE= -fi + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 + libnl_sane=0 fi - unset compile_mode - - - + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} - opal_show_subsubsubtitle "MCA component io:romio321 (m4 configuration macro)" + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs portals" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - component_path="$srcdir/ompi/mca/io/romio321" - want_component=0 + # Loop over every token we've seen so far - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_io" ; then - if test "$DIRECT_io" = "romio321" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # if we were explicitly disabled, don't build :) - if test "$DISABLE_io" = "1"; then : - want_component=0 -fi - if test "$DISABLE_io_romio321" = "1"; then : - want_component=0 -fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + # Check the ending condition - SHARED_FRAMEWORK="$DSO_io" - SHARED_COMPONENT="$DSO_io_romio321" + opal_done="`expr $opal_i \>= $opal_count`" - STATIC_FRAMEWORK="$STATIC_io" - STATIC_COMPONENT="$STATIC_io_romio321" + # Increment the counter - shared_mode_override=static + opal_i="`expr $opal_i + 1`" + done - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + # If we didn't find the token, add it to the "array" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component io:romio321 compile mode" >&5 -$as_echo_n "checking for MCA component io:romio321 compile mode... " >&6; } - if test "$DIRECT_io" = "romio321" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + opal_i="`expr $opal_i - 1`" fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - # try to configure the component - - ac_config_files="$ac_config_files ompi/mca/io/romio321/Makefile" - - - +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in io_romio321_flags io_romio321_flags_define io_romio321_happy io_romio321_save_LIBS; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +# Done; do the assignment - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"io_romio321_flags io_romio321_flags_define io_romio321_happy io_romio321_save_LIBS\"" - eval $opal_str - unset opal_str +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +# Clean up - # Check whether --enable-io-romio was given. -if test "${enable_io_romio+set}" = set; then : - enableval=$enable_io_romio; +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - -# Check whether --with-io-romio-flags was given. -if test "${with_io_romio_flags+set}" = set; then : - withval=$with_io_romio_flags; fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&2;} -cat >>confdefs.h <<_ACEOF -#define MCA_io_romio321_USER_CONFIGURE_FLAGS "$with_io_romio_flags" -_ACEOF + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if want ROMIO component" >&5 -$as_echo_n "checking if want ROMIO component... " >&6; } - if test "$enable_io_romio" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - should_build=0 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MPI profiling is enabled" >&5 -$as_echo_n "checking if MPI profiling is enabled... " >&6; } - if test "$enable_mpi_profile" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** The ROMIO io component requires the MPI profiling layer" >&5 -$as_echo "$as_me: WARNING: *** The ROMIO io component requires the MPI profiling layer" >&2;} - if test "$enable_io_romio" = "yes"; then : - as_fn_error $? "*** ROMIO requested but not available. Aborting" "$LINENO" 5 -fi - should_build=0 + libnl_sane=0 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + opal_libnlv3_libs="$opal_libnlv3_libs portals" - if test -n "$with_io_romio_flags" && test "$with_io_romio_flags" != "no"; then : - io_romio321_flags="$with_io_romio_flags $io_romio321_flags" -else - io_romio321_flags= -fi - # If ROMIO is going to end up in a DSO, all we need is - # shared library-ized objects, as we're only building a - # DSO (which is always shared). Otherwise, build with - # same flags as OMPI, as we might need any combination of - # shared and static-ized objects... - if test "$compile_mode" = "dso"; then : - io_romio321_shared=enable - io_romio321_static=disable -else - if test "$enable_shared" = "yes"; then : - io_romio321_shared=enable -else - io_romio321_shared=disable -fi - if test "$enable_static" = "yes"; then : - io_romio321_static=enable -else - io_romio321_static=disable -fi -fi - if test -n "$prefix" && test "$prefix" != "NONE"; then : - io_romio321_prefix_arg="--prefix=$prefix" -else - io_romio321_prefix_arg= -fi +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - if test "$cross_compiling" = "yes"; then : - if test ! -z $build; then : - io_romio321_flags="$io_romio321_flags --build=$build" -fi - if test ! -z $host; then : - io_romio321_flags="$io_romio321_flags --host=$host" -fi - if test ! -z $target; then : - io_romio321_flags="$io_romio321_flags --target=$target" -fi -fi - if test "$enable_grequest_extensions" = "yes"; then : - io_romio321_flags="$io_romio321_flags --enable-grequest-extensions" -fi - io_romio321_flags_define="$io_romio321_flags FROM_OMPI=yes CC='$CC' CFLAGS='$CFLAGS -D__EXTENSIONS__' CPPFLAGS='$CPPFLAGS' FFLAGS='$FFLAGS' LDFLAGS='$LDFLAGS' --$io_romio321_shared-shared --$io_romio321_static-static $io_romio321_flags $io_romio321_prefix_arg --disable-aio --disable-weak-symbols --enable-strict --disable-f77 --disable-f90" +# Go through each item in the variable and only keep the unique ones -cat >>confdefs.h <<_ACEOF -#define MCA_io_romio321_COMPLETE_CONFIGURE_FLAGS "$io_romio321_flags_define" -_ACEOF +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - io_romio321_flags="$io_romio321_flags FROM_OMPI=yes CC="'"'"$CC"'"'" CFLAGS="'"'"$CFLAGS -D__EXTENSIONS__"'"'" CPPFLAGS="'"'"$CPPFLAGS"'"'" FFLAGS="'"'"$FFLAGS"'"'" LDFLAGS="'"'"$LDFLAGS"'"'" --$io_romio321_shared-shared --$io_romio321_static-static $io_romio321_flags $io_romio321_prefix_arg --disable-aio --disable-weak-symbols --enable-strict --disable-f77 --disable-f90" + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - opal_show_subtitle "Configuring ROMIO distribution" + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_done="`expr $opal_i \>= $opal_count`" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Increment the counter - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - + # If we didn't find the token, add it to the "array" -# -# Invoke configure in a specific subdirectory. -# -# ompi/mca/io/romio321/romio is the directory to invoke in -# $io_romio321_flags is the list of arguments to pass -# io_romio321_happy=1 is actions to execute upon success -# io_romio321_happy=0 is actions to execute upon failure -# -subdir_dir="ompi/mca/io/romio321/romio" -subdir_args="$io_romio321_flags" -subdir_success="io_romio321_happy=1" -subdir_failure="io_romio321_happy=0" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done -# -# Sanity checks -# +# Take all the items in the "array" and assemble them back into a +# single variable -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac +# Done; do the assignment - # - # Move into the target directory - # +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - subdir_parent=`pwd` - cd $subdir_dir +# Clean up - # - # Make a "../" for each directory in $subdir_dir. - # +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # +fi - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # - # Construct the --cache-file argument - # + rm -f conftest conftest_c.$ac_ext - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + opal_libnl_sane=$libnl_sane - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # - # Go back to the topdir - # + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - cd $subdir_parent -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# -# Clean up -# + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -303149,123 +330318,332 @@ done - if test "$io_romio321_happy" = "1"; then : - # grab the libraries list from ROMIO. We don't - # need this for building the component, as libtool - # will figure that part out. But we do need it for - # the wrapper settings - io_romio321_save_LIBS="$LIBS" - LIBS= - . ompi/mca/io/romio321/romio/localdefs - io_romio321_LIBS="$LIBS" - LIBS="$io_romio321_save_LIBS" + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_PtlLEAppend" != "no" && + test "$ac_cv_search_PtlLEAppend" != "none required"; then : + opal_check_portals4_LIBS="$ac_cv_search_PtlLEAppend " +else + opal_check_portals4_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi + + +else + opal_check_package_happy="no" +fi +else + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_PtlLEAppend + opal_check_package_lib_happy="no" + if test "$ompi_check_portals4_libdir" != ""; then : + # libdir was specified - search only there + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$ompi_check_portals4_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_portals4_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : + +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_portals4_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : + +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : - echo "ROMIO distribution configured successfully" - should_build=$should_build else - if test "$enable_io_romio" = "yes"; then : - as_fn_error $? "ROMIO distribution did not configure successfully" "$LINENO" 5 + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ROMIO distribution did not configure successfully" >&5 -$as_echo "$as_me: WARNING: ROMIO distribution did not configure successfully" >&2;} + opal_check_package_lib_happy="no" fi - should_build=0 + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend fi fi fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/io/romio321/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components romio321" + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components romio321" - else - if test "io" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/io/romio321/lib${OMPI_LIB_PREFIX}mca_io_romio321.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/io/romio321/libmca_io_romio321.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_io_romio321_component;" >> $outfile.extern - echo " &mca_io_romio321_component, " >> $outfile.struct - static_components="$static_components romio321" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component io:romio321 can compile" >&5 -$as_echo_n "checking if MCA component io:romio321 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_io" = "romio321" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_io_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** io component romio321 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_io" = "romio321" ; then -as_fn_error $? "*** io component romio321 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +fi +fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$io_romio321_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -303278,7 +330656,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -303297,56 +330675,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $io_romio321_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -303359,7 +330697,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -303378,7 +330716,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -303386,187 +330724,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $io_romio321_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libportals requires libnl v1 or v3" >&5 +$as_echo_n "checking if libportals requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void PtlLEAppend (void); +int main(int argc, char *argv[]) { + PtlLEAppend (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:330751: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:330758: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib portals" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib portals" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs portals" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones -fi - if test "$io_romio321_WRAPPER_EXTRA_LIBS" = ""; then : +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - for arg in $io_romio321_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + + libnl_sane=0 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + opal_libnlv3_libs="$opal_libnlv3_libs portals" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +# Go through each item in the variable and only keep the unique ones - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do -else + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_done="`expr $opal_i \>= $opal_count`" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Increment the counter - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $io_romio321_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -303590,74 +331017,54 @@ done -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$io_romio321_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - for arg in $io_romio321_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_PtlLEAppend" != "no" && + test "$ac_cv_search_PtlLEAppend" != "none required"; then : + opal_check_portals4_LIBS="$ac_cv_search_PtlLEAppend " +else + opal_check_portals4_LIBS="" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -303681,194 +331088,80 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring io_romio321_WRAPPER_EXTRA_CPPFLAGS ($io_romio321_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring io_romio321_WRAPPER_EXTRA_CPPFLAGS ($io_romio321_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_portals4_happy="yes" else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component io:romio321 can compile" >&5 -$as_echo_n "checking if MCA component io:romio321 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_io" = "romio321" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"romio321\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"romio321\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_io" ; then - if test "$DIRECT_io" = "romio321" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"romio321\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"romio321\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components romio321" + opal_check_portals4_CPPFLAGS="$opal_check_package_opal_check_portals4_orig_CPPFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + opal_check_portals4_LIBS="$opal_check_package_opal_check_portals4_orig_LIBS" + ompi_check_portals4_happy="no" fi + CPPFLAGS="$opal_check_package_opal_check_portals4_save_CPPFLAGS" + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + LIBS="$opal_check_package_opal_check_portals4_save_LIBS" - if test $should_build -eq 1; then - MCA_io_romio321_SHOULD_BUILD_TRUE= - MCA_io_romio321_SHOULD_BUILD_FALSE='#' else - MCA_io_romio321_SHOULD_BUILD_TRUE='#' - MCA_io_romio321_SHOULD_BUILD_FALSE= + ompi_check_portals4_happy="no" fi + CPPFLAGS="$ompi_check_portals4_mtl_portals4_save_CPPFLAGS" + LDFLAGS="$ompi_check_portals4_mtl_portals4_save_LDFLAGS" + LIBS="$ompi_check_portals4_mtl_portals4_save_LIBS" + max_md_size=0 - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_io_romio321_DSO=1 -else - BUILD_ompi_io_romio321_DSO=0 -fi - if test "$BUILD_ompi_io_romio321_DSO" = "1"; then - MCA_BUILD_ompi_io_romio321_DSO_TRUE= - MCA_BUILD_ompi_io_romio321_DSO_FALSE='#' -else - MCA_BUILD_ompi_io_romio321_DSO_TRUE='#' - MCA_BUILD_ompi_io_romio321_DSO_FALSE= +# Check whether --with-portals4-max-md-size was given. +if test "${with_portals4_max_md_size+set}" = set; then : + withval=$with_portals4_max_md_size; fi - - if test "$should_build" = "1"; then : - components_last_result=1 + if test "$with_portals4_max_md_size" = "yes" || test "$with_portals4_max_md_size" = "no"; then : + as_fn_error $? "--with-portals4-max-md-size requires an integer argument" "$LINENO" 5 else - components_last_result=0 + if test -n "$with_portals4_max_md_size"; then : + max_md_size="$with_portals4_max_md_size" +fi fi - unset compile_mode - - - - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - - if test "1" != "0"; then : - - for component_path in $srcdir/ompi/mca/io/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component io:$component (need to configure)" - - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - - +cat >>confdefs.h <<_ACEOF +#define OPAL_PORTALS4_MAX_MD_SIZE $max_md_size +_ACEOF - component_path="$srcdir/ompi/mca/io/$component" - want_component=0 - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_io" ; then - if test "$DIRECT_io" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + max_va_size=0 - # if we were explicitly disabled, don't build :) - if test "$DISABLE_io" = "1"; then : - want_component=0 +# Check whether --with-portals4-max-va-size was given. +if test "${with_portals4_max_va_size+set}" = set; then : + withval=$with_portals4_max_va_size; fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_io_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi - if test "$want_component" = "1"; then : - should_build=1 + if test "$with_portals4_max_va_size" = "yes" || test "$with_portals4_max_va_size" = "no"; then : + as_fn_error $? "--with-portals4-max-va-size requires an integer argument" "$LINENO" 5 else - should_build=0 + if test -n "$with_portals4_max_va_size"; then : + max_va_size="$with_portals4_max_va_size" +fi fi +cat >>confdefs.h <<_ACEOF +#define OPAL_PORTALS4_MAX_VA_SIZE $max_va_size +_ACEOF - SHARED_FRAMEWORK="$DSO_io" - str="SHARED_COMPONENT=\$DSO_io_$component" - eval $str - - STATIC_FRAMEWORK="$STATIC_io" - str="STATIC_COMPONENT=\$STATIC_io_$component" - eval $str - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component io:$component compile mode" >&5 -$as_echo_n "checking for MCA component io:$component compile mode... " >&6; } - if test "$DIRECT_io" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + if (test $max_md_size -eq 0 && test $max_va_size -ne 0 ) || (test $max_md_size -ne 0 && test $max_va_size -eq 0 ); then : + as_fn_error $? "If either --with-portals4-max-md-size or --with-portals4-max-va-size is set, both must be set." "$LINENO" 5 +fi + if test $max_md_size -ge $max_va_size; then : + max_md_size=0 + max_va_size=0 +fi + if test $max_md_size -ne 0 && test $max_va_size -ne 0; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: Portals 4 address space size: $max_md_size, $max_va_size" >&5 +$as_echo "$as_me: Portals 4 address space size: $max_md_size, $max_va_size" >&6;} +fi - if test "$should_build" = "1" ; then @@ -303877,161 +331170,52 @@ opal_scope_index=1 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - -# -# Invoke configure in a specific subdirectory. -# -# ompi/mca/io/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="ompi/mca/io/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str - # - # Construct the --cache-file argument - # + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - # - # Invoke the configure script in the subdirectory - # + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="Portals4: $ompi_check_portals4_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" fi - # - # Go back to the topdir - # - - cd $subdir_parent -fi - -# -# Clean up -# - # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -304053,80 +331237,116 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/ompi/mca/io/all_components/post_configure.sh" - if test -f $infile; then + fi - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi + if test "$ompi_check_portals4_happy" = "yes"; then : + mtl_portals4_LDFLAGS="$mtl_portals4_LDFLAGS $opal_check_portals4_LDFLAGS" + mtl_portals4_CPPFLAGS="$mtl_portals4_CPPFLAGS $opal_check_portals4_CPPFLAGS" + mtl_portals4_LIBS="$mtl_portals4_LIBS $opal_check_portals4_LIBS" + mtl_portals4_happy="yes" +else + if test ! -z "$with_portals4" && test "$with_portals4" != "no"; then : + as_fn_error $? "Portals4 support requested but not found. Aborting" "$LINENO" 5 +fi + mtl_portals4_happy="no" +fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - io_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - io_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + if test "$mtl_portals4_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + + # need to propogate CPPFLAGS to all of OMPI + if test "$DIRECT_mtl" = "portals4"; then : + mtl_portals4_WRAPPER_EXTRA_CPPFLAGS="$mtl_portals4_CPPFLAGS" + CPPFLAGS="$CPPFLAGS $mtl_portals4_CPPFLAGS" +fi + + # Check whether --enable-mtl-portals4-flow-control was given. +if test "${enable_mtl_portals4_flow_control+set}" = set; then : + enableval=$enable_mtl_portals4_flow_control; +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable flow control" >&5 +$as_echo_n "checking whether to enable flow control... " >&6; } + if test "$enable_mtl_portals4_flow_control" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + mtl_portals4_flow_control_enabled=1 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + mtl_portals4_flow_control_enabled=0 + fi + +cat >>confdefs.h <<_ACEOF +#define OMPI_MTL_PORTALS4_FLOW_CONTROL $mtl_portals4_flow_control_enabled +_ACEOF + + if test "$mtl_portals4_flow_control_enabled" = "1"; then + OMPI_MTL_PORTALS4_FLOW_CONTROL_TRUE= + OMPI_MTL_PORTALS4_FLOW_CONTROL_FALSE='#' +else + OMPI_MTL_PORTALS4_FLOW_CONTROL_TRUE='#' + OMPI_MTL_PORTALS4_FLOW_CONTROL_FALSE= +fi + + + # substitute in the things needed to build portals4 + + + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/io/$component/post_configure.sh" + infile="$srcdir/ompi/mca/mtl/portals4/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + all_components="$all_components portals4" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" + dso_components="$dso_components portals4" else - if test "io" = "common"; then + if test "mtl" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/io/$component/lib${OMPI_LIB_PREFIX}mca_io_$component.la $static_ltlibs" + static_ltlibs="mca/mtl/portals4/lib${OMPI_LIB_PREFIX}mca_mtl_portals4.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/io/$component/libmca_io_$component.la $static_ltlibs" + static_ltlibs="mca/mtl/portals4/libmca_mtl_portals4.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_io_$component_component;" >> $outfile.extern - echo " &mca_io_$component_component, " >> $outfile.struct - static_components="$static_components $component" + echo "extern const mca_base_component_t mca_mtl_portals4_component;" >> $outfile.extern + echo " &mca_mtl_portals4_component, " >> $outfile.struct + static_components="$static_components portals4" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component io:$component can compile" >&5 -$as_echo_n "checking if MCA component io:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:portals4 can compile" >&5 +$as_echo_n "checking if MCA component mtl:portals4 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_io" = "$component" ; then + if test "$DIRECT_mtl" = "portals4" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_io_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_mtl_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** io component $component was supposed to be direct-called, but +as_fn_error $? "*** mtl component portals4 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -304134,8 +331354,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_io" = "$component" ; then -as_fn_error $? "*** io component $component was supposed to be direct-called, but + if test "$DIRECT_mtl" = "portals4" ; then +as_fn_error $? "*** mtl component portals4 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -304150,8 +331370,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$io_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + if test "$mtl_portals4_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -304191,7 +331410,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $mtl_portals4_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -304231,8 +331450,8 @@ unset $opal_var done -str="line=\$io_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + +else @@ -304272,21 +331491,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $mtl_portals4_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -304313,191 +331532,353 @@ done - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - +fi + if test "$mtl_portals4_WRAPPER_EXTRA_LIBS" = ""; then : - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component io:$component can compile" >&5 -$as_echo_n "checking if MCA component io:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_io" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - if test ! -z "$DIRECT_io" ; then - if test "$DIRECT_io" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $mtl_portals4_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi fi + done - MCA_ompi_io_ALL_COMPONENTS="$all_components" - MCA_ompi_io_STATIC_COMPONENTS="$static_components" - MCA_ompi_io_DSO_COMPONENTS="$dso_components" - MCA_ompi_io_STATIC_LTLIBS="$static_ltlibs" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done +else - MCA_ompi_io_ALL_SUBDIRS= - for item in $all_components ; do - MCA_ompi_io_ALL_SUBDIRS="$MCA_ompi_io_ALL_SUBDIRS mca/io/$item" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - MCA_ompi_io_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_ompi_io_STATIC_SUBDIRS="$MCA_ompi_io_STATIC_SUBDIRS mca/io/$item" + for arg in $mtl_portals4_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - MCA_ompi_io_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_ompi_io_DSO_SUBDIRS="$MCA_ompi_io_DSO_SUBDIRS mca/io/$item" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done +fi - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "io" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $mtl_portals4_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - rm -f $outfile.struct $outfile.extern - unset all_components static_components dso_components outfile outfile_real + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS mtl" - MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/mtl" - MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_mtl_ALL_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_mtl_DSO_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_mtl_STATIC_SUBDIRS)" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/mtl/libmca_mtl.la" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_mtl_STATIC_LTLIBS)" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # configure all the components - opal_show_subsubtitle "Configuring MCA framework mtl" +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring mtl_portals4_WRAPPER_EXTRA_CPPFLAGS ($mtl_portals4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring mtl_portals4_WRAPPER_EXTRA_CPPFLAGS ($mtl_portals4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:portals4 can compile" >&5 +$as_echo_n "checking if MCA component mtl:portals4 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # If this component was requested as the default for this + # type, then abort. + if test "$with_mtl" = "portals4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"portals4\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"portals4\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= + if test ! -z "$DIRECT_mtl" ; then + if test "$DIRECT_mtl" = "portals4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"portals4\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"portals4\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=ompi/mca/mtl/base - as_dir=$outdir; as_fn_mkdir_p + # add component to all component list + all_components="$all_components portals4" +fi - # emit Makefile rule - ac_config_files="$ac_config_files ompi/mca/mtl/Makefile" + if test "$should_build" = "1"; then : - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework mtl" >&5 -$as_echo_n "checking for no configure components in framework mtl... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework mtl" >&5 -$as_echo_n "checking for m4 configure components in framework mtl... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ofi, portals4, psm, psm2" >&5 -$as_echo "ofi, portals4, psm, psm2" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag PORTALS4" >&5 +$as_echo_n "checking for index in endpoint array for tag PORTALS4... " >&6; } + if test -z "$OMPI_PROC_ENDPOINT_TAG_PORTALS4"; then : + OMPI_PROC_ENDPOINT_TAG_PORTALS4=$ompi_endpoint_tag_counter - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. +cat >>confdefs.h <<_ACEOF +#define OMPI_PROC_ENDPOINT_TAG_PORTALS4 $OMPI_PROC_ENDPOINT_TAG_PORTALS4 +_ACEOF + + ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_PORTALS4" >&5 +$as_echo "$OMPI_PROC_ENDPOINT_TAG_PORTALS4" >&6; } +fi - # run the configure logic for the no-config components + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_mtl_portals4_DSO=1 +else + BUILD_ompi_mtl_portals4_DSO=0 +fi + if test "$BUILD_ompi_mtl_portals4_DSO" = "1"; then + MCA_BUILD_ompi_mtl_portals4_DSO_TRUE= + MCA_BUILD_ompi_mtl_portals4_DSO_FALSE='#' +else + MCA_BUILD_ompi_mtl_portals4_DSO_TRUE='#' + MCA_BUILD_ompi_mtl_portals4_DSO_FALSE= +fi - # configure components that use built-in configuration scripts + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + unset compile_mode - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - opal_show_subsubsubtitle "MCA component mtl:ofi (m4 configuration macro)" + + opal_show_subsubsubtitle "MCA component mtl:psm (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/mtl/ofi" + component_path="$srcdir/ompi/mca/mtl/psm" want_component=0 # build if: @@ -304530,7 +331911,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_mtl" ; then - if test "$DIRECT_mtl" = "ofi" ; then + if test "$DIRECT_mtl" = "psm" ; then want_component=1 else want_component=0 @@ -304542,7 +331923,7 @@ if test "$DISABLE_mtl" = "1"; then : want_component=0 fi - if test "$DISABLE_mtl_ofi" = "1"; then : + if test "$DISABLE_mtl_psm" = "1"; then : want_component=0 fi @@ -304556,10 +331937,10 @@ # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE SHARED_FRAMEWORK="$DSO_mtl" - SHARED_COMPONENT="$DSO_mtl_ofi" + SHARED_COMPONENT="$DSO_mtl_psm" STATIC_FRAMEWORK="$STATIC_mtl" - STATIC_COMPONENT="$STATIC_mtl_ofi" + STATIC_COMPONENT="$STATIC_mtl_psm" shared_mode_override=static @@ -304577,9 +331958,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component mtl:ofi compile mode" >&5 -$as_echo_n "checking for MCA component mtl:ofi compile mode... " >&6; } - if test "$DIRECT_mtl" = "ofi" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component mtl:psm compile mode" >&5 +$as_echo_n "checking for MCA component mtl:psm compile mode... " >&6; } + if test "$DIRECT_mtl" = "psm" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -304590,83 +331971,44 @@ # try to configure the component - ac_config_files="$ac_config_files ompi/mca/mtl/ofi/Makefile" - - - # Check for OFI - - # Check for OFI libfabric. Note that $opal_ofi_happy is used in - # other configure.m4's to know if OFI/libfabric configured - # successfully. We only need to run the back-end checks once, but - # at least emit a "checking..." statement each subsequent time - # this macro is invoked so that configure's stdout has - # sensible/logical output. - if test -z "$opal_ofi_happy"; then : - - # Add --with options - -# Check whether --with-libfabric was given. -if test "${with_libfabric+set}" = set; then : - withval=$with_libfabric; -fi - - -# Check whether --with-libfabric-libdir was given. -if test "${with_libfabric_libdir+set}" = set; then : - withval=$with_libfabric_libdir; -fi - - + ac_config_files="$ac_config_files ompi/mca/mtl/psm/Makefile" -# Check whether --with-ofi was given. -if test "${with_ofi+set}" = set; then : - withval=$with_ofi; -fi + if test -z "$ompi_check_psm_happy" ; then -# Check whether --with-ofi-libdir was given. -if test "${with_ofi_libdir+set}" = set; then : - withval=$with_ofi_libdir; +# Check whether --with-psm was given. +if test "${with_psm+set}" = set; then : + withval=$with_psm; fi - if test "$with_ofi" = ""; then - with_ofi=$with_libfabric - fi - - if test "$with_ofi_libdir" = ""; then - with_ofi_libdir=$with_libfabric_libdir - fi - - # Sanity check the --with values - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ofi value" >&5 -$as_echo_n "checking --with-ofi value... " >&6; } - if test "$with_ofi" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ofi)" >&5 -$as_echo "simple no (specified --without-ofi)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-psm value" >&5 +$as_echo_n "checking --with-psm value... " >&6; } + if test "$with_psm" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-psm)" >&5 +$as_echo "simple no (specified --without-psm)" >&6; } else - if test "$with_ofi" = "yes" || test "x$with_ofi" = "x"; then : + if test "$with_psm" = "yes" || test "x$with_psm" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 $as_echo "simple ok (unspecified value)" >&6; } else - if test ! -d "$with_ofi"; then : + if test ! -d "$with_psm"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ofi not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_ofi not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_psm not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_psm not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - if test "x`ls $with_ofi/include/rdma/fabric.h 2> /dev/null`" = "x"; then : + if test "x`ls $with_psm/include/psm.h 2> /dev/null`" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ofi/include/rdma/fabric.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_ofi/include/rdma/fabric.h not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_psm/include/psm.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_psm/include/psm.h not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ofi)" >&5 -$as_echo "sanity check ok ($with_ofi)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_psm)" >&5 +$as_echo "sanity check ok ($with_psm)" >&6; } fi @@ -304680,32 +332022,38 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ofi-libdir value" >&5 -$as_echo_n "checking --with-ofi-libdir value... " >&6; } - if test "$with_ofi_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ofi-libdir)" >&5 -$as_echo "simple no (specified --without-ofi-libdir)" >&6; } +# Check whether --with-psm-libdir was given. +if test "${with_psm_libdir+set}" = set; then : + withval=$with_psm_libdir; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-psm-libdir value" >&5 +$as_echo_n "checking --with-psm-libdir value... " >&6; } + if test "$with_psm_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-psm-libdir)" >&5 +$as_echo "simple no (specified --without-psm-libdir)" >&6; } else - if test "$with_ofi_libdir" = "yes" || test "x$with_ofi_libdir" = "x"; then : + if test "$with_psm_libdir" = "yes" || test "x$with_psm_libdir" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 $as_echo "simple ok (unspecified value)" >&6; } else - if test ! -d "$with_ofi_libdir"; then : + if test ! -d "$with_psm_libdir"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ofi_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_ofi_libdir not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_psm_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_psm_libdir not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - if test "x`ls $with_ofi_libdir/libfabric.* 2> /dev/null`" = "x"; then : + if test "x`ls $with_psm_libdir/libpsm_infinipath.* 2> /dev/null`" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ofi_libdir/libfabric.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_ofi_libdir/libfabric.* not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_psm_libdir/libpsm_infinipath.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_psm_libdir/libpsm_infinipath.* not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ofi_libdir)" >&5 -$as_echo "sanity check ok ($with_ofi_libdir)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_psm_libdir)" >&5 +$as_echo "sanity check ok ($with_psm_libdir)" >&6; } fi @@ -304719,79 +332067,26 @@ fi + ompi_check_psm_mtl_psm_save_CPPFLAGS="$CPPFLAGS" + ompi_check_psm_mtl_psm_save_LDFLAGS="$LDFLAGS" + ompi_check_psm_mtl_psm_save_LIBS="$LIBS" - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_check_ofi_save_CPPFLAGS opal_check_ofi_save_LDFLAGS opal_check_ofi_save_LIBS; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_check_ofi_save_CPPFLAGS opal_check_ofi_save_LDFLAGS opal_check_ofi_save_LIBS\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - opal_check_ofi_save_CPPFLAGS=$CPPFLAGS - opal_check_ofi_save_LDFLAGS=$LDFLAGS - opal_check_ofi_save_LIBS=$LIBS - - opal_ofi_happy=yes - if test "$with_ofi" = "no"; then : - opal_ofi_happy=no -fi - - if test $opal_ofi_happy = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking looking for OFI libfabric in" >&5 -$as_echo_n "checking looking for OFI libfabric in... " >&6; } - if test "$with_ofi" != "yes"; then : - opal_ofi_dir=$with_ofi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ($opal_ofi_dir)" >&5 -$as_echo "($opal_ofi_dir)" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 -$as_echo "(default search paths)" >&6; } -fi - if test ! -z "$with_ofi_libdir" && \ - test "$with_ofi_libdir" != "yes"; then : - opal_ofi_libdir=$with_ofi_libdir + if test "$with_psm" != "no"; then : + if test ! -z "$with_psm" && test "$with_psm" != "yes"; then : + ompi_check_psm_dir="$with_psm" fi - + if test ! -z "$with_psm_libdir" && test "$with_psm_libdir" != "yes"; then : + ompi_check_psm_libdir="$with_psm_libdir" fi - if test $opal_ofi_happy = yes; then : - opal_check_package_opal_ofi_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_opal_ofi_save_LDFLAGS="$LDFLAGS" - opal_check_package_opal_ofi_save_LIBS="$LIBS" + opal_check_package_ompi_check_psm_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_ompi_check_psm_save_LDFLAGS="$LDFLAGS" + opal_check_package_ompi_check_psm_save_LIBS="$LIBS" - opal_check_package_opal_ofi_orig_CPPFLAGS="$opal_ofi_CPPFLAGS" - opal_check_package_opal_ofi_orig_LDFLAGS="$opal_ofi_LDFLAGS" - opal_check_package_opal_ofi_orig_LIBS="$opal_ofi_LIBS" + opal_check_package_ompi_check_psm_orig_CPPFLAGS="$ompi_check_psm_CPPFLAGS" + opal_check_package_ompi_check_psm_orig_LDFLAGS="$ompi_check_psm_LDFLAGS" + opal_check_package_ompi_check_psm_orig_LIBS="$ompi_check_psm_LIBS" # This is stolen from autoconf to peek under the covers to get the @@ -304839,22 +332134,22 @@ # so this sucks, but there's no way to get through the progression # of header includes without killing off the cache variable and trying # again... - unset ac_cv_header_rdma_fabric_h + unset ac_cv_header_psm_h # get rid of the trailing slash(es) - dir_prefix=$(echo $opal_ofi_dir | sed -e 'sX/*$XXg') + dir_prefix=$(echo $ompi_check_psm_dir | sed -e 'sX/*$XXg') opal_check_package_header_happy="no" if test "$dir_prefix" = "/usr" || \ test "$dir_prefix" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 $as_echo "looking for header without includes" >&6; } - for ac_header in rdma/fabric.h + for ac_header in psm.h do : - ac_fn_c_check_header_mongrel "$LINENO" "rdma/fabric.h" "ac_cv_header_rdma_fabric_h" "$ac_includes_default" -if test "x$ac_cv_header_rdma_fabric_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "psm.h" "ac_cv_header_psm_h" "$ac_includes_default" +if test "x$ac_cv_header_psm_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_RDMA_FABRIC_H 1 +#define HAVE_PSM_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -304863,21 +332158,21 @@ if test "$opal_check_package_header_happy" = "no"; then : # no go on the as is - reset the cache and try again - unset ac_cv_header_rdma_fabric_h + unset ac_cv_header_psm_h fi fi if test "$opal_check_package_header_happy" = "no"; then : if test "$dir_prefix" != ""; then : - opal_ofi_CPPFLAGS="$opal_ofi_CPPFLAGS -I$dir_prefix/include" + ompi_check_psm_CPPFLAGS="$ompi_check_psm_CPPFLAGS -I$dir_prefix/include" CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" fi - for ac_header in rdma/fabric.h + for ac_header in psm.h do : - ac_fn_c_check_header_mongrel "$LINENO" "rdma/fabric.h" "ac_cv_header_rdma_fabric_h" "$ac_includes_default" -if test "x$ac_cv_header_rdma_fabric_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "psm.h" "ac_cv_header_psm_h" "$ac_includes_default" +if test "x$ac_cv_header_psm_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_RDMA_FABRIC_H 1 +#define HAVE_PSM_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -304892,15 +332187,15 @@ # see comment above - unset ac_cv_search_fi_getinfo + unset ac_cv_search_psm_finalize opal_check_package_lib_happy="no" - if test "$opal_ofi_libdir" != ""; then : + if test "$ompi_check_psm_libdir" != ""; then : # libdir was specified - search only there - opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_ofi_libdir" - LDFLAGS="$LDFLAGS -L$opal_ofi_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 -$as_echo_n "checking for library containing fi_getinfo... " >&6; } -if ${ac_cv_search_fi_getinfo+:} false; then : + ompi_check_psm_LDFLAGS="$ompi_check_psm_LDFLAGS -L$ompi_check_psm_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_psm_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm_finalize" >&5 +$as_echo_n "checking for library containing psm_finalize... " >&6; } +if ${ac_cv_search_psm_finalize+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -304913,16 +332208,16 @@ #ifdef __cplusplus extern "C" #endif -char fi_getinfo (); +char psm_finalize (); int main () { -return fi_getinfo (); +return psm_finalize (); ; return 0; } _ACEOF -for ac_lib in '' fabric; do +for ac_lib in '' psm_infinipath; do if test -z "$ac_lib"; then ac_res="none required" else @@ -304930,25 +332225,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fi_getinfo=$ac_res + ac_cv_search_psm_finalize=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fi_getinfo+:} false; then : + if ${ac_cv_search_psm_finalize+:} false; then : break fi done -if ${ac_cv_search_fi_getinfo+:} false; then : +if ${ac_cv_search_psm_finalize+:} false; then : else - ac_cv_search_fi_getinfo=no + ac_cv_search_psm_finalize=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 -$as_echo "$ac_cv_search_fi_getinfo" >&6; } -ac_res=$ac_cv_search_fi_getinfo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm_finalize" >&5 +$as_echo "$ac_cv_search_psm_finalize" >&6; } +ac_res=$ac_cv_search_psm_finalize if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -304957,22 +332252,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - unset ac_cv_search_fi_getinfo + LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" + ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" + unset ac_cv_search_psm_finalize fi else # libdir was not specified - go through search path - opal_check_package_libdir="$opal_ofi_dir" + opal_check_package_libdir="$ompi_check_psm_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 -$as_echo_n "checking for library containing fi_getinfo... " >&6; } -if ${ac_cv_search_fi_getinfo+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm_finalize" >&5 +$as_echo_n "checking for library containing psm_finalize... " >&6; } +if ${ac_cv_search_psm_finalize+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -304985,16 +332280,16 @@ #ifdef __cplusplus extern "C" #endif -char fi_getinfo (); +char psm_finalize (); int main () { -return fi_getinfo (); +return psm_finalize (); ; return 0; } _ACEOF -for ac_lib in '' fabric; do +for ac_lib in '' psm_infinipath; do if test -z "$ac_lib"; then ac_res="none required" else @@ -305002,25 +332297,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fi_getinfo=$ac_res + ac_cv_search_psm_finalize=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fi_getinfo+:} false; then : + if ${ac_cv_search_psm_finalize+:} false; then : break fi done -if ${ac_cv_search_fi_getinfo+:} false; then : +if ${ac_cv_search_psm_finalize+:} false; then : else - ac_cv_search_fi_getinfo=no + ac_cv_search_psm_finalize=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 -$as_echo "$ac_cv_search_fi_getinfo" >&6; } -ac_res=$ac_cv_search_fi_getinfo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm_finalize" >&5 +$as_echo "$ac_cv_search_psm_finalize" >&6; } +ac_res=$ac_cv_search_psm_finalize if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -305030,21 +332325,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - unset ac_cv_search_fi_getinfo + LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" + ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" + unset ac_cv_search_psm_finalize fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib" + ompi_check_psm_LDFLAGS="$ompi_check_psm_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 -$as_echo_n "checking for library containing fi_getinfo... " >&6; } -if ${ac_cv_search_fi_getinfo+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm_finalize" >&5 +$as_echo_n "checking for library containing psm_finalize... " >&6; } +if ${ac_cv_search_psm_finalize+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -305057,16 +332352,16 @@ #ifdef __cplusplus extern "C" #endif -char fi_getinfo (); +char psm_finalize (); int main () { -return fi_getinfo (); +return psm_finalize (); ; return 0; } _ACEOF -for ac_lib in '' fabric; do +for ac_lib in '' psm_infinipath; do if test -z "$ac_lib"; then ac_res="none required" else @@ -305074,25 +332369,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fi_getinfo=$ac_res + ac_cv_search_psm_finalize=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fi_getinfo+:} false; then : + if ${ac_cv_search_psm_finalize+:} false; then : break fi done -if ${ac_cv_search_fi_getinfo+:} false; then : +if ${ac_cv_search_psm_finalize+:} false; then : else - ac_cv_search_fi_getinfo=no + ac_cv_search_psm_finalize=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 -$as_echo "$ac_cv_search_fi_getinfo" >&6; } -ac_res=$ac_cv_search_fi_getinfo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm_finalize" >&5 +$as_echo "$ac_cv_search_psm_finalize" >&6; } +ac_res=$ac_cv_search_psm_finalize if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -305102,22 +332397,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - unset ac_cv_search_fi_getinfo + LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" + ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" + unset ac_cv_search_psm_finalize fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib64" + ompi_check_psm_LDFLAGS="$ompi_check_psm_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 -$as_echo_n "checking for library containing fi_getinfo... " >&6; } -if ${ac_cv_search_fi_getinfo+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm_finalize" >&5 +$as_echo_n "checking for library containing psm_finalize... " >&6; } +if ${ac_cv_search_psm_finalize+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -305130,16 +332425,16 @@ #ifdef __cplusplus extern "C" #endif -char fi_getinfo (); +char psm_finalize (); int main () { -return fi_getinfo (); +return psm_finalize (); ; return 0; } _ACEOF -for ac_lib in '' fabric; do +for ac_lib in '' psm_infinipath; do if test -z "$ac_lib"; then ac_res="none required" else @@ -305147,25 +332442,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fi_getinfo=$ac_res + ac_cv_search_psm_finalize=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fi_getinfo+:} false; then : + if ${ac_cv_search_psm_finalize+:} false; then : break fi done -if ${ac_cv_search_fi_getinfo+:} false; then : +if ${ac_cv_search_psm_finalize+:} false; then : else - ac_cv_search_fi_getinfo=no + ac_cv_search_psm_finalize=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 -$as_echo "$ac_cv_search_fi_getinfo" >&6; } -ac_res=$ac_cv_search_fi_getinfo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm_finalize" >&5 +$as_echo "$ac_cv_search_psm_finalize" >&6; } +ac_res=$ac_cv_search_psm_finalize if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -305175,9 +332470,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - unset ac_cv_search_fi_getinfo + LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" + ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" + unset ac_cv_search_psm_finalize fi fi fi @@ -305274,12 +332569,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libfabric requires libnl v1 or v3" >&5 -$as_echo_n "checking if libfabric requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpsm_infinipath requires libnl v1 or v3" >&5 +$as_echo_n "checking if libpsm_infinipath requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void fi_getinfo (void); +extern void psm_finalize (void); int main(int argc, char *argv[]) { - fi_getinfo (); + psm_finalize (); return 0; } EOF @@ -305291,14 +332586,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:305294: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS 1>&5 2>&1 +echo "configure:332589: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpsm_infinipath $LIBS $ompi_check_psm_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpsm_infinipath $LIBS $ompi_check_psm_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:305301: \$? = $opal_status" >&5 + echo "configure:332596: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -305318,8 +332613,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib fabric" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib fabric" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib psm_infinipath" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib psm_infinipath" >&2;} fi @@ -305333,15 +332628,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpsm_infinipath links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libpsm_infinipath links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&2;} libnl_sane=0 fi @@ -305350,19 +332645,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas psm_infinipath requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas psm_infinipath requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs fabric" + opal_libnlv1_libs="$opal_libnlv1_libs psm_infinipath" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -305441,19 +332736,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpsm_infinipath requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpsm_infinipath requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs fabric" + opal_libnlv3_libs="$opal_libnlv3_libs psm_infinipath" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -305594,11 +332889,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_fi_getinfo" != "no" && - test "$ac_cv_search_fi_getinfo" != "none required"; then : - opal_ofi_LIBS="$ac_cv_search_fi_getinfo " + if test "$ac_cv_search_psm_finalize" != "no" && + test "$ac_cv_search_psm_finalize" != "none required"; then : + ompi_check_psm_LIBS="$ac_cv_search_psm_finalize " else - opal_ofi_LIBS="" + ompi_check_psm_LIBS="" fi opal_check_package_happy="yes" else @@ -305617,15 +332912,15 @@ # see comment above - unset ac_cv_search_fi_getinfo + unset ac_cv_search_psm_finalize opal_check_package_lib_happy="no" - if test "$opal_ofi_libdir" != ""; then : + if test "$ompi_check_psm_libdir" != ""; then : # libdir was specified - search only there - opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_ofi_libdir" - LDFLAGS="$LDFLAGS -L$opal_ofi_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 -$as_echo_n "checking for library containing fi_getinfo... " >&6; } -if ${ac_cv_search_fi_getinfo+:} false; then : + ompi_check_psm_LDFLAGS="$ompi_check_psm_LDFLAGS -L$ompi_check_psm_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_psm_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm_finalize" >&5 +$as_echo_n "checking for library containing psm_finalize... " >&6; } +if ${ac_cv_search_psm_finalize+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -305638,16 +332933,16 @@ #ifdef __cplusplus extern "C" #endif -char fi_getinfo (); +char psm_finalize (); int main () { -return fi_getinfo (); +return psm_finalize (); ; return 0; } _ACEOF -for ac_lib in '' fabric; do +for ac_lib in '' psm_infinipath; do if test -z "$ac_lib"; then ac_res="none required" else @@ -305655,25 +332950,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fi_getinfo=$ac_res + ac_cv_search_psm_finalize=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fi_getinfo+:} false; then : + if ${ac_cv_search_psm_finalize+:} false; then : break fi done -if ${ac_cv_search_fi_getinfo+:} false; then : +if ${ac_cv_search_psm_finalize+:} false; then : else - ac_cv_search_fi_getinfo=no + ac_cv_search_psm_finalize=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 -$as_echo "$ac_cv_search_fi_getinfo" >&6; } -ac_res=$ac_cv_search_fi_getinfo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm_finalize" >&5 +$as_echo "$ac_cv_search_psm_finalize" >&6; } +ac_res=$ac_cv_search_psm_finalize if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -305682,22 +332977,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - unset ac_cv_search_fi_getinfo + LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" + ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" + unset ac_cv_search_psm_finalize fi else # libdir was not specified - go through search path - opal_check_package_libdir="$opal_ofi_dir" + opal_check_package_libdir="$ompi_check_psm_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 -$as_echo_n "checking for library containing fi_getinfo... " >&6; } -if ${ac_cv_search_fi_getinfo+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm_finalize" >&5 +$as_echo_n "checking for library containing psm_finalize... " >&6; } +if ${ac_cv_search_psm_finalize+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -305710,16 +333005,16 @@ #ifdef __cplusplus extern "C" #endif -char fi_getinfo (); +char psm_finalize (); int main () { -return fi_getinfo (); +return psm_finalize (); ; return 0; } _ACEOF -for ac_lib in '' fabric; do +for ac_lib in '' psm_infinipath; do if test -z "$ac_lib"; then ac_res="none required" else @@ -305727,25 +333022,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fi_getinfo=$ac_res + ac_cv_search_psm_finalize=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fi_getinfo+:} false; then : + if ${ac_cv_search_psm_finalize+:} false; then : break fi done -if ${ac_cv_search_fi_getinfo+:} false; then : +if ${ac_cv_search_psm_finalize+:} false; then : else - ac_cv_search_fi_getinfo=no + ac_cv_search_psm_finalize=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 -$as_echo "$ac_cv_search_fi_getinfo" >&6; } -ac_res=$ac_cv_search_fi_getinfo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm_finalize" >&5 +$as_echo "$ac_cv_search_psm_finalize" >&6; } +ac_res=$ac_cv_search_psm_finalize if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -305755,21 +333050,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - unset ac_cv_search_fi_getinfo + LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" + ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" + unset ac_cv_search_psm_finalize fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib" + ompi_check_psm_LDFLAGS="$ompi_check_psm_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 -$as_echo_n "checking for library containing fi_getinfo... " >&6; } -if ${ac_cv_search_fi_getinfo+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm_finalize" >&5 +$as_echo_n "checking for library containing psm_finalize... " >&6; } +if ${ac_cv_search_psm_finalize+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -305782,16 +333077,16 @@ #ifdef __cplusplus extern "C" #endif -char fi_getinfo (); +char psm_finalize (); int main () { -return fi_getinfo (); +return psm_finalize (); ; return 0; } _ACEOF -for ac_lib in '' fabric; do +for ac_lib in '' psm_infinipath; do if test -z "$ac_lib"; then ac_res="none required" else @@ -305799,25 +333094,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fi_getinfo=$ac_res + ac_cv_search_psm_finalize=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fi_getinfo+:} false; then : + if ${ac_cv_search_psm_finalize+:} false; then : break fi done -if ${ac_cv_search_fi_getinfo+:} false; then : +if ${ac_cv_search_psm_finalize+:} false; then : else - ac_cv_search_fi_getinfo=no + ac_cv_search_psm_finalize=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 -$as_echo "$ac_cv_search_fi_getinfo" >&6; } -ac_res=$ac_cv_search_fi_getinfo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm_finalize" >&5 +$as_echo "$ac_cv_search_psm_finalize" >&6; } +ac_res=$ac_cv_search_psm_finalize if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -305827,22 +333122,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - unset ac_cv_search_fi_getinfo + LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" + ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" + unset ac_cv_search_psm_finalize fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_ofi_LDFLAGS="$opal_ofi_LDFLAGS -L$opal_check_package_libdir/lib64" + ompi_check_psm_LDFLAGS="$ompi_check_psm_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fi_getinfo" >&5 -$as_echo_n "checking for library containing fi_getinfo... " >&6; } -if ${ac_cv_search_fi_getinfo+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm_finalize" >&5 +$as_echo_n "checking for library containing psm_finalize... " >&6; } +if ${ac_cv_search_psm_finalize+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -305855,16 +333150,16 @@ #ifdef __cplusplus extern "C" #endif -char fi_getinfo (); +char psm_finalize (); int main () { -return fi_getinfo (); +return psm_finalize (); ; return 0; } _ACEOF -for ac_lib in '' fabric; do +for ac_lib in '' psm_infinipath; do if test -z "$ac_lib"; then ac_res="none required" else @@ -305872,25 +333167,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fi_getinfo=$ac_res + ac_cv_search_psm_finalize=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fi_getinfo+:} false; then : + if ${ac_cv_search_psm_finalize+:} false; then : break fi done -if ${ac_cv_search_fi_getinfo+:} false; then : +if ${ac_cv_search_psm_finalize+:} false; then : else - ac_cv_search_fi_getinfo=no + ac_cv_search_psm_finalize=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fi_getinfo" >&5 -$as_echo "$ac_cv_search_fi_getinfo" >&6; } -ac_res=$ac_cv_search_fi_getinfo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm_finalize" >&5 +$as_echo "$ac_cv_search_psm_finalize" >&6; } +ac_res=$ac_cv_search_psm_finalize if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -305900,9 +333195,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - unset ac_cv_search_fi_getinfo + LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" + ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" + unset ac_cv_search_psm_finalize fi fi fi @@ -305999,12 +333294,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libfabric requires libnl v1 or v3" >&5 -$as_echo_n "checking if libfabric requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpsm_infinipath requires libnl v1 or v3" >&5 +$as_echo_n "checking if libpsm_infinipath requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void fi_getinfo (void); +extern void psm_finalize (void); int main(int argc, char *argv[]) { - fi_getinfo (); + psm_finalize (); return 0; } EOF @@ -306016,14 +333311,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:306019: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lfabric $LIBS $opal_ofi_LIBS 1>&5 2>&1 +echo "configure:333314: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpsm_infinipath $LIBS $ompi_check_psm_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpsm_infinipath $LIBS $ompi_check_psm_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:306026: \$? = $opal_status" >&5 + echo "configure:333321: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -306043,8 +333338,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib fabric" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib fabric" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib psm_infinipath" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib psm_infinipath" >&2;} fi @@ -306058,15 +333353,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libfabric links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpsm_infinipath links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libpsm_infinipath links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&2;} libnl_sane=0 fi @@ -306075,19 +333370,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas fabric requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas psm_infinipath requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas psm_infinipath requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs fabric" + opal_libnlv1_libs="$opal_libnlv1_libs psm_infinipath" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -306166,19 +333461,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libfabric requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpsm_infinipath requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpsm_infinipath requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libfabric (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libfabric (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libfabric." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libfabric." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs fabric" + opal_libnlv3_libs="$opal_libnlv3_libs psm_infinipath" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -306319,11 +333614,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_fi_getinfo" != "no" && - test "$ac_cv_search_fi_getinfo" != "none required"; then : - opal_ofi_LIBS="$ac_cv_search_fi_getinfo " + if test "$ac_cv_search_psm_finalize" != "no" && + test "$ac_cv_search_psm_finalize" != "none required"; then : + ompi_check_psm_LIBS="$ac_cv_search_psm_finalize " else - opal_ofi_LIBS="" + ompi_check_psm_LIBS="" fi opal_check_package_happy="yes" else @@ -306358,27 +333653,50 @@ if test "$opal_check_package_happy" = "yes"; then : - + ompi_check_psm_happy="yes" else - opal_ofi_CPPFLAGS="$opal_check_package_opal_ofi_orig_CPPFLAGS" - opal_ofi_LDFLAGS="$opal_check_package_opal_ofi_orig_LDFLAGS" - opal_ofi_LIBS="$opal_check_package_opal_ofi_orig_LIBS" - opal_ofi_happy=no + ompi_check_psm_CPPFLAGS="$opal_check_package_ompi_check_psm_orig_CPPFLAGS" + ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" + ompi_check_psm_LIBS="$opal_check_package_ompi_check_psm_orig_LIBS" + ompi_check_psm_happy="no" fi - CPPFLAGS="$opal_check_package_opal_ofi_save_CPPFLAGS" - LDFLAGS="$opal_check_package_opal_ofi_save_LDFLAGS" - LIBS="$opal_check_package_opal_ofi_save_LIBS" + CPPFLAGS="$opal_check_package_ompi_check_psm_save_CPPFLAGS" + LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" + LIBS="$opal_check_package_ompi_check_psm_save_LIBS" +else + ompi_check_psm_happy="no" fi - CPPFLAGS=$opal_check_ofi_save_CPPFLAGS - LDFLAGS=$opal_check_ofi_save_LDFLAGS - LIBS=$opal_check_ofi_save_LIBS + CPPFLAGS="$ompi_check_psm_mtl_psm_save_CPPFLAGS" + LDFLAGS="$ompi_check_psm_mtl_psm_save_LDFLAGS" + LIBS="$ompi_check_psm_mtl_psm_save_LIBS" + + if test "$ompi_check_psm_happy" = "yes" && test "$enable_progress_threads" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PSM driver does not currently support progress threads. Disabling BTL." >&5 +$as_echo "$as_me: WARNING: PSM driver does not currently support progress threads. Disabling BTL." >&2;} + ompi_check_psm_happy="no" +fi + if test "$ompi_check_psm_happy" = "yes"; then : + for ac_header in glob.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "glob.h" "ac_cv_header_glob_h" "$ac_includes_default" +if test "x$ac_cv_header_glob_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GLOB_H 1 +_ACEOF +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: glob.h not found. Can not build component." >&5 +$as_echo "$as_me: WARNING: glob.h not found. Can not build component." >&2;} + ompi_check_psm_happy="no" +fi +done +fi @@ -306420,7 +333738,7 @@ ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="OpenFabrics OFI Libfabric: $opal_ofi_happy" + ompi_summary_line="Intel TrueScale (PSM): $ompi_check_psm_happy" ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) if test -z "$ompi_summary_section_current" ; then @@ -306456,52 +333774,33 @@ done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - if test $opal_ofi_happy = no; then : - if test -n "$with_ofi" && test "$with_ofi" != "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OFI libfabric support requested (via --with-ofi or --with-libfabric), but not found." >&5 -$as_echo "$as_me: WARNING: OFI libfabric support requested (via --with-ofi or --with-libfabric), but not found." >&2;} - as_fn_error $? "Cannot continue." "$LINENO" 5 -fi - -fi - + if test "$ompi_check_psm_happy" = "yes"; then : + mtl_psm_LDFLAGS="$mtl_psm_LDFLAGS $ompi_check_psm_LDFLAGS" + mtl_psm_CPPFLAGS="$mtl_psm_CPPFLAGS $ompi_check_psm_CPPFLAGS" + mtl_psm_LIBS="$mtl_psm_LIBS $ompi_check_psm_LIBS" + mtl_psm_happy="yes" else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if OFI libfabric is available" >&5 -$as_echo_n "checking if OFI libfabric is available... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_ofi_happy" >&5 -$as_echo "$opal_ofi_happy" >&6; } + if test ! -z "$with_psm" && test "$with_psm" != "no"; then : + as_fn_error $? "PSM support requested but not found. Aborting" "$LINENO" 5 +fi + mtl_psm_happy="no" fi - if test "$opal_ofi_happy" = "yes"; then : + if test "$mtl_psm_happy" = "yes"; then : should_build=$should_build else should_build=0 fi + # substitute in the things needed to build psm + + + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -306510,45 +333809,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/mtl/ofi/post_configure.sh" + infile="$srcdir/ompi/mca/mtl/psm/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ofi" + all_components="$all_components psm" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ofi" + dso_components="$dso_components psm" else if test "mtl" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/mtl/ofi/lib${OMPI_LIB_PREFIX}mca_mtl_ofi.la $static_ltlibs" + static_ltlibs="mca/mtl/psm/lib${OMPI_LIB_PREFIX}mca_mtl_psm.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/mtl/ofi/libmca_mtl_ofi.la $static_ltlibs" + static_ltlibs="mca/mtl/psm/libmca_mtl_psm.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_mtl_ofi_component;" >> $outfile.extern - echo " &mca_mtl_ofi_component, " >> $outfile.struct - static_components="$static_components ofi" + echo "extern const mca_base_component_t mca_mtl_psm_component;" >> $outfile.extern + echo " &mca_mtl_psm_component, " >> $outfile.struct + static_components="$static_components psm" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:ofi can compile" >&5 -$as_echo_n "checking if MCA component mtl:ofi can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:psm can compile" >&5 +$as_echo_n "checking if MCA component mtl:psm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_mtl" = "ofi" ; then + if test "$DIRECT_mtl" = "psm" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_ompi_mtl_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** mtl component ofi was supposed to be direct-called, but +as_fn_error $? "*** mtl component psm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -306556,8 +333855,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_mtl" = "ofi" ; then -as_fn_error $? "*** mtl component ofi was supposed to be direct-called, but + if test "$DIRECT_mtl" = "psm" ; then +as_fn_error $? "*** mtl component psm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -306572,7 +333871,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$mtl_ofi_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$mtl_psm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -306612,7 +333911,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mtl_ofi_LDFLAGS; do + for arg in $mtl_psm_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -306693,7 +333992,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mtl_ofi_WRAPPER_EXTRA_LDFLAGS; do + for arg in $mtl_psm_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -306735,7 +334034,7 @@ fi - if test "$mtl_ofi_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$mtl_psm_WRAPPER_EXTRA_LIBS" = ""; then : @@ -306775,7 +334074,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mtl_ofi_LIBS; do + for arg in $mtl_psm_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -306856,7 +334155,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mtl_ofi_WRAPPER_EXTRA_LIBS; do + for arg in $mtl_psm_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -306904,7 +334203,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$mtl_ofi_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$mtl_psm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -306947,7 +334246,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mtl_ofi_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $mtl_psm_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -306990,32 +334289,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring mtl_ofi_WRAPPER_EXTRA_CPPFLAGS ($mtl_ofi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring mtl_ofi_WRAPPER_EXTRA_CPPFLAGS ($mtl_ofi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring mtl_psm_WRAPPER_EXTRA_CPPFLAGS ($mtl_psm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring mtl_psm_WRAPPER_EXTRA_CPPFLAGS ($mtl_psm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:ofi can compile" >&5 -$as_echo_n "checking if MCA component mtl:ofi can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:psm can compile" >&5 +$as_echo_n "checking if MCA component mtl:psm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_mtl" = "ofi" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ofi\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ofi\" failed to configure properly" >&2;} + if test "$with_mtl" = "psm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"psm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"psm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_mtl" ; then - if test "$DIRECT_mtl" = "ofi" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ofi\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ofi\" failed to configure properly" >&2;} + if test "$DIRECT_mtl" = "psm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"psm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"psm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -307023,7 +334322,7 @@ fi # add component to all component list - all_components="$all_components ofi" + all_components="$all_components psm" fi @@ -307049,16 +334348,16 @@ # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_ompi_mtl_ofi_DSO=1 + BUILD_ompi_mtl_psm_DSO=1 else - BUILD_ompi_mtl_ofi_DSO=0 + BUILD_ompi_mtl_psm_DSO=0 fi - if test "$BUILD_ompi_mtl_ofi_DSO" = "1"; then - MCA_BUILD_ompi_mtl_ofi_DSO_TRUE= - MCA_BUILD_ompi_mtl_ofi_DSO_FALSE='#' + if test "$BUILD_ompi_mtl_psm_DSO" = "1"; then + MCA_BUILD_ompi_mtl_psm_DSO_TRUE= + MCA_BUILD_ompi_mtl_psm_DSO_FALSE='#' else - MCA_BUILD_ompi_mtl_ofi_DSO_TRUE='#' - MCA_BUILD_ompi_mtl_ofi_DSO_FALSE= + MCA_BUILD_ompi_mtl_psm_DSO_TRUE='#' + MCA_BUILD_ompi_mtl_psm_DSO_FALSE= fi @@ -307074,13 +334373,13 @@ - opal_show_subsubsubtitle "MCA component mtl:portals4 (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component mtl:psm2 (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/mtl/portals4" + component_path="$srcdir/ompi/mca/mtl/psm2" want_component=0 # build if: @@ -307113,7 +334412,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_mtl" ; then - if test "$DIRECT_mtl" = "portals4" ; then + if test "$DIRECT_mtl" = "psm2" ; then want_component=1 else want_component=0 @@ -307125,7 +334424,7 @@ if test "$DISABLE_mtl" = "1"; then : want_component=0 fi - if test "$DISABLE_mtl_portals4" = "1"; then : + if test "$DISABLE_mtl_psm2" = "1"; then : want_component=0 fi @@ -307139,10 +334438,10 @@ # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE SHARED_FRAMEWORK="$DSO_mtl" - SHARED_COMPONENT="$DSO_mtl_portals4" + SHARED_COMPONENT="$DSO_mtl_psm2" STATIC_FRAMEWORK="$STATIC_mtl" - STATIC_COMPONENT="$STATIC_mtl_portals4" + STATIC_COMPONENT="$STATIC_mtl_psm2" shared_mode_override=static @@ -307160,9 +334459,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component mtl:portals4 compile mode" >&5 -$as_echo_n "checking for MCA component mtl:portals4 compile mode... " >&6; } - if test "$DIRECT_mtl" = "portals4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component mtl:psm2 compile mode" >&5 +$as_echo_n "checking for MCA component mtl:psm2 compile mode... " >&6; } + if test "$DIRECT_mtl" = "psm2" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -307173,44 +334472,44 @@ # try to configure the component - ac_config_files="$ac_config_files ompi/mca/mtl/portals4/Makefile" + ac_config_files="$ac_config_files ompi/mca/mtl/psm2/Makefile" - if test -z "$ompi_check_portals4_happy" ; then + if test -z "$ompi_check_psm2_happy" ; then -# Check whether --with-portals4 was given. -if test "${with_portals4+set}" = set; then : - withval=$with_portals4; +# Check whether --with-psm2 was given. +if test "${with_psm2+set}" = set; then : + withval=$with_psm2; fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-portals4 value" >&5 -$as_echo_n "checking --with-portals4 value... " >&6; } - if test "$with_portals4" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-portals4)" >&5 -$as_echo "simple no (specified --without-portals4)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-psm2 value" >&5 +$as_echo_n "checking --with-psm2 value... " >&6; } + if test "$with_psm2" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-psm2)" >&5 +$as_echo "simple no (specified --without-psm2)" >&6; } else - if test "$with_portals4" = "yes" || test "x$with_portals4" = "x"; then : + if test "$with_psm2" = "yes" || test "x$with_psm2" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 $as_echo "simple ok (unspecified value)" >&6; } else - if test ! -d "$with_portals4"; then : + if test ! -d "$with_psm2"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_portals4 not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_portals4 not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_psm2 not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_psm2 not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - if test "x`ls $with_portals4/include/portals4.h 2> /dev/null`" = "x"; then : + if test "x`ls $with_psm2/include/psm2.h 2> /dev/null`" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_portals4/include/portals4.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_portals4/include/portals4.h not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_psm2/include/psm2.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_psm2/include/psm2.h not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_portals4)" >&5 -$as_echo "sanity check ok ($with_portals4)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_psm2)" >&5 +$as_echo "sanity check ok ($with_psm2)" >&6; } fi @@ -307224,38 +334523,38 @@ fi -# Check whether --with-portals4-libdir was given. -if test "${with_portals4_libdir+set}" = set; then : - withval=$with_portals4_libdir; +# Check whether --with-psm2-libdir was given. +if test "${with_psm2_libdir+set}" = set; then : + withval=$with_psm2_libdir; fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-portals4-libdir value" >&5 -$as_echo_n "checking --with-portals4-libdir value... " >&6; } - if test "$with_portals4_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-portals4-libdir)" >&5 -$as_echo "simple no (specified --without-portals4-libdir)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-psm2-libdir value" >&5 +$as_echo_n "checking --with-psm2-libdir value... " >&6; } + if test "$with_psm2_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-psm2-libdir)" >&5 +$as_echo "simple no (specified --without-psm2-libdir)" >&6; } else - if test "$with_portals4_libdir" = "yes" || test "x$with_portals4_libdir" = "x"; then : + if test "$with_psm2_libdir" = "yes" || test "x$with_psm2_libdir" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 $as_echo "simple ok (unspecified value)" >&6; } else - if test ! -d "$with_portals4_libdir"; then : + if test ! -d "$with_psm2_libdir"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_portals4_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_portals4_libdir not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_psm2_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_psm2_libdir not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - if test "x`ls $with_portals4_libdir/libportals.* 2> /dev/null`" = "x"; then : + if test "x`ls $with_psm2_libdir/libpsm2.* 2> /dev/null`" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_portals4_libdir/libportals.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_portals4_libdir/libportals.* not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_psm2_libdir/libpsm2.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_psm2_libdir/libpsm2.* not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_portals4_libdir)" >&5 -$as_echo "sanity check ok ($with_portals4_libdir)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_psm2_libdir)" >&5 +$as_echo "sanity check ok ($with_psm2_libdir)" >&6; } fi @@ -307269,26 +334568,32 @@ fi - ompi_check_portals4_mtl_portals4_save_CPPFLAGS="$CPPFLAGS" - ompi_check_portals4_mtl_portals4_save_LDFLAGS="$LDFLAGS" - ompi_check_portals4_mtl_portals4_save_LIBS="$LIBS" + # Check whether --enable-psm2-version-check was given. +if test "${enable_psm2_version_check+set}" = set; then : + enableval=$enable_psm2_version_check; +fi - if test "$with_portals4" != "no"; then : - if test ! -z "$with_portals4" && test "$with_portals4" != "yes"; then : - ompi_check_portals4_dir="$with_portals4" + + ompi_check_psm2_mtl_psm2_save_CPPFLAGS="$CPPFLAGS" + ompi_check_psm2_mtl_psm2_save_LDFLAGS="$LDFLAGS" + ompi_check_psm2_mtl_psm2_save_LIBS="$LIBS" + + if test "$with_psm2" != "no"; then : + if test ! -z "$with_psm2" && test "$with_psm2" != "yes"; then : + ompi_check_psm2_dir="$with_psm2" fi - if test ! -z "$with_portals4_libdir" && test "$with_portals4_libdir" != "yes"; then : - ompi_check_portals4_libdir="$with_portals4_libdir" + if test ! -z "$with_psm2_libdir" && test "$with_psm2_libdir" != "yes"; then : + ompi_check_psm2_libdir="$with_psm2_libdir" fi - opal_check_package_opal_check_portals4_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_opal_check_portals4_save_LDFLAGS="$LDFLAGS" - opal_check_package_opal_check_portals4_save_LIBS="$LIBS" + opal_check_package_ompi_check_psm2_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_ompi_check_psm2_save_LDFLAGS="$LDFLAGS" + opal_check_package_ompi_check_psm2_save_LIBS="$LIBS" - opal_check_package_opal_check_portals4_orig_CPPFLAGS="$opal_check_portals4_CPPFLAGS" - opal_check_package_opal_check_portals4_orig_LDFLAGS="$opal_check_portals4_LDFLAGS" - opal_check_package_opal_check_portals4_orig_LIBS="$opal_check_portals4_LIBS" + opal_check_package_ompi_check_psm2_orig_CPPFLAGS="$ompi_check_psm2_CPPFLAGS" + opal_check_package_ompi_check_psm2_orig_LDFLAGS="$ompi_check_psm2_LDFLAGS" + opal_check_package_ompi_check_psm2_orig_LIBS="$ompi_check_psm2_LIBS" # This is stolen from autoconf to peek under the covers to get the @@ -307336,22 +334641,22 @@ # so this sucks, but there's no way to get through the progression # of header includes without killing off the cache variable and trying # again... - unset ac_cv_header_portals4_h + unset ac_cv_header_psm2_h # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_portals4_dir | sed -e 'sX/*$XXg') + dir_prefix=$(echo $ompi_check_psm2_dir | sed -e 'sX/*$XXg') opal_check_package_header_happy="no" if test "$dir_prefix" = "/usr" || \ test "$dir_prefix" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 $as_echo "looking for header without includes" >&6; } - for ac_header in portals4.h + for ac_header in psm2.h do : - ac_fn_c_check_header_mongrel "$LINENO" "portals4.h" "ac_cv_header_portals4_h" "$ac_includes_default" -if test "x$ac_cv_header_portals4_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "psm2.h" "ac_cv_header_psm2_h" "$ac_includes_default" +if test "x$ac_cv_header_psm2_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_PORTALS4_H 1 +#define HAVE_PSM2_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -307360,21 +334665,21 @@ if test "$opal_check_package_header_happy" = "no"; then : # no go on the as is - reset the cache and try again - unset ac_cv_header_portals4_h + unset ac_cv_header_psm2_h fi fi if test "$opal_check_package_header_happy" = "no"; then : if test "$dir_prefix" != ""; then : - opal_check_portals4_CPPFLAGS="$opal_check_portals4_CPPFLAGS -I$dir_prefix/include" + ompi_check_psm2_CPPFLAGS="$ompi_check_psm2_CPPFLAGS -I$dir_prefix/include" CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" fi - for ac_header in portals4.h + for ac_header in psm2.h do : - ac_fn_c_check_header_mongrel "$LINENO" "portals4.h" "ac_cv_header_portals4_h" "$ac_includes_default" -if test "x$ac_cv_header_portals4_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "psm2.h" "ac_cv_header_psm2_h" "$ac_includes_default" +if test "x$ac_cv_header_psm2_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_PORTALS4_H 1 +#define HAVE_PSM2_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -307389,15 +334694,15 @@ # see comment above - unset ac_cv_search_PtlLEAppend + unset ac_cv_search_psm2_mq_irecv2 opal_check_package_lib_happy="no" - if test "$ompi_check_portals4_libdir" != ""; then : + if test "$ompi_check_psm2_libdir" != ""; then : # libdir was specified - search only there - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$ompi_check_portals4_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_portals4_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + ompi_check_psm2_LDFLAGS="$ompi_check_psm2_LDFLAGS -L$ompi_check_psm2_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_psm2_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 +$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } +if ${ac_cv_search_psm2_mq_irecv2+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -307410,16 +334715,16 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char psm2_mq_irecv2 (); int main () { -return PtlLEAppend (); +return psm2_mq_irecv2 (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' psm2; do if test -z "$ac_lib"; then ac_res="none required" else @@ -307427,25 +334732,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_psm2_mq_irecv2=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_psm2_mq_irecv2+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_psm2_mq_irecv2+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_psm2_mq_irecv2=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 +$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } +ac_res=$ac_cv_search_psm2_mq_irecv2 if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -307454,22 +334759,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" + ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" + unset ac_cv_search_psm2_mq_irecv2 fi else # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_portals4_dir" + opal_check_package_libdir="$ompi_check_psm2_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 +$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } +if ${ac_cv_search_psm2_mq_irecv2+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -307482,16 +334787,16 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char psm2_mq_irecv2 (); int main () { -return PtlLEAppend (); +return psm2_mq_irecv2 (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' psm2; do if test -z "$ac_lib"; then ac_res="none required" else @@ -307499,25 +334804,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_psm2_mq_irecv2=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_psm2_mq_irecv2+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_psm2_mq_irecv2+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_psm2_mq_irecv2=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 +$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } +ac_res=$ac_cv_search_psm2_mq_irecv2 if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -307527,21 +334832,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" + ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" + unset ac_cv_search_psm2_mq_irecv2 fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib" + ompi_check_psm2_LDFLAGS="$ompi_check_psm2_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 +$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } +if ${ac_cv_search_psm2_mq_irecv2+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -307554,16 +334859,16 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char psm2_mq_irecv2 (); int main () { -return PtlLEAppend (); +return psm2_mq_irecv2 (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' psm2; do if test -z "$ac_lib"; then ac_res="none required" else @@ -307571,25 +334876,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_psm2_mq_irecv2=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_psm2_mq_irecv2+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_psm2_mq_irecv2+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_psm2_mq_irecv2=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 +$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } +ac_res=$ac_cv_search_psm2_mq_irecv2 if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -307599,22 +334904,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" + ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" + unset ac_cv_search_psm2_mq_irecv2 fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib64" + ompi_check_psm2_LDFLAGS="$ompi_check_psm2_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 +$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } +if ${ac_cv_search_psm2_mq_irecv2+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -307627,16 +334932,16 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char psm2_mq_irecv2 (); int main () { -return PtlLEAppend (); +return psm2_mq_irecv2 (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' psm2; do if test -z "$ac_lib"; then ac_res="none required" else @@ -307644,25 +334949,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_psm2_mq_irecv2=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_psm2_mq_irecv2+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_psm2_mq_irecv2+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_psm2_mq_irecv2=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 +$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } +ac_res=$ac_cv_search_psm2_mq_irecv2 if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -307672,9 +334977,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" + ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" + unset ac_cv_search_psm2_mq_irecv2 fi fi fi @@ -307771,12 +335076,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libportals requires libnl v1 or v3" >&5 -$as_echo_n "checking if libportals requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpsm2 requires libnl v1 or v3" >&5 +$as_echo_n "checking if libpsm2 requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void PtlLEAppend (void); +extern void psm2_mq_irecv2 (void); int main(int argc, char *argv[]) { - PtlLEAppend (); + psm2_mq_irecv2 (); return 0; } EOF @@ -307788,14 +335093,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:307791: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS 1>&5 2>&1 +echo "configure:335096: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpsm2 $LIBS $ompi_check_psm2_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpsm2 $LIBS $ompi_check_psm2_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:307798: \$? = $opal_status" >&5 + echo "configure:335103: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -307815,8 +335120,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib portals" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib portals" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib psm2" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib psm2" >&2;} fi @@ -307830,15 +335135,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpsm2 links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libpsm2 links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpsm2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm2." >&2;} libnl_sane=0 fi @@ -307847,19 +335152,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas psm2 requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas psm2 requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpsm2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm2." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs portals" + opal_libnlv1_libs="$opal_libnlv1_libs psm2" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -307938,19 +335243,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpsm2 requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpsm2 requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpsm2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm2." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs portals" + opal_libnlv3_libs="$opal_libnlv3_libs psm2" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -308091,11 +335396,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_PtlLEAppend" != "no" && - test "$ac_cv_search_PtlLEAppend" != "none required"; then : - opal_check_portals4_LIBS="$ac_cv_search_PtlLEAppend " + if test "$ac_cv_search_psm2_mq_irecv2" != "no" && + test "$ac_cv_search_psm2_mq_irecv2" != "none required"; then : + ompi_check_psm2_LIBS="$ac_cv_search_psm2_mq_irecv2 " else - opal_check_portals4_LIBS="" + ompi_check_psm2_LIBS="" fi opal_check_package_happy="yes" else @@ -308114,15 +335419,15 @@ # see comment above - unset ac_cv_search_PtlLEAppend + unset ac_cv_search_psm2_mq_irecv2 opal_check_package_lib_happy="no" - if test "$ompi_check_portals4_libdir" != ""; then : + if test "$ompi_check_psm2_libdir" != ""; then : # libdir was specified - search only there - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$ompi_check_portals4_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_portals4_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + ompi_check_psm2_LDFLAGS="$ompi_check_psm2_LDFLAGS -L$ompi_check_psm2_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_psm2_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 +$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } +if ${ac_cv_search_psm2_mq_irecv2+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -308135,16 +335440,16 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char psm2_mq_irecv2 (); int main () { -return PtlLEAppend (); +return psm2_mq_irecv2 (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' psm2; do if test -z "$ac_lib"; then ac_res="none required" else @@ -308152,25 +335457,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_psm2_mq_irecv2=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_psm2_mq_irecv2+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_psm2_mq_irecv2+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_psm2_mq_irecv2=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 +$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } +ac_res=$ac_cv_search_psm2_mq_irecv2 if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -308179,22 +335484,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" + ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" + unset ac_cv_search_psm2_mq_irecv2 fi else # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_portals4_dir" + opal_check_package_libdir="$ompi_check_psm2_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 +$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } +if ${ac_cv_search_psm2_mq_irecv2+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -308207,16 +335512,16 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char psm2_mq_irecv2 (); int main () { -return PtlLEAppend (); +return psm2_mq_irecv2 (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' psm2; do if test -z "$ac_lib"; then ac_res="none required" else @@ -308224,25 +335529,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_psm2_mq_irecv2=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_psm2_mq_irecv2+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_psm2_mq_irecv2+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_psm2_mq_irecv2=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 +$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } +ac_res=$ac_cv_search_psm2_mq_irecv2 if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -308252,21 +335557,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" + ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" + unset ac_cv_search_psm2_mq_irecv2 fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib" + ompi_check_psm2_LDFLAGS="$ompi_check_psm2_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 +$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } +if ${ac_cv_search_psm2_mq_irecv2+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -308279,16 +335584,16 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char psm2_mq_irecv2 (); int main () { -return PtlLEAppend (); +return psm2_mq_irecv2 (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' psm2; do if test -z "$ac_lib"; then ac_res="none required" else @@ -308296,25 +335601,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_psm2_mq_irecv2=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_psm2_mq_irecv2+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_psm2_mq_irecv2+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_psm2_mq_irecv2=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 +$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } +ac_res=$ac_cv_search_psm2_mq_irecv2 if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -308324,22 +335629,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" + ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" + unset ac_cv_search_psm2_mq_irecv2 fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib64" + ompi_check_psm2_LDFLAGS="$ompi_check_psm2_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 +$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } +if ${ac_cv_search_psm2_mq_irecv2+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -308352,16 +335657,16 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char psm2_mq_irecv2 (); int main () { -return PtlLEAppend (); +return psm2_mq_irecv2 (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' psm2; do if test -z "$ac_lib"; then ac_res="none required" else @@ -308369,25 +335674,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_psm2_mq_irecv2=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_psm2_mq_irecv2+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_psm2_mq_irecv2+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_psm2_mq_irecv2=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 +$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } +ac_res=$ac_cv_search_psm2_mq_irecv2 if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -308397,9 +335702,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" + ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" + unset ac_cv_search_psm2_mq_irecv2 fi fi fi @@ -308496,12 +335801,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libportals requires libnl v1 or v3" >&5 -$as_echo_n "checking if libportals requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpsm2 requires libnl v1 or v3" >&5 +$as_echo_n "checking if libpsm2 requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void PtlLEAppend (void); +extern void psm2_mq_irecv2 (void); int main(int argc, char *argv[]) { - PtlLEAppend (); + psm2_mq_irecv2 (); return 0; } EOF @@ -308513,14 +335818,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:308516: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS 1>&5 2>&1 +echo "configure:335821: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpsm2 $LIBS $ompi_check_psm2_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpsm2 $LIBS $ompi_check_psm2_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:308523: \$? = $opal_status" >&5 + echo "configure:335828: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -308540,8 +335845,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib portals" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib portals" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib psm2" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib psm2" >&2;} fi @@ -308555,15 +335860,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpsm2 links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libpsm2 links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpsm2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm2." >&2;} libnl_sane=0 fi @@ -308572,19 +335877,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas psm2 requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas psm2 requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpsm2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm2." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs portals" + opal_libnlv1_libs="$opal_libnlv1_libs psm2" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -308663,19 +335968,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpsm2 requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpsm2 requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm2 (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libpsm2 (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm2." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm2." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs portals" + opal_libnlv3_libs="$opal_libnlv3_libs psm2" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -308816,11 +336121,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_PtlLEAppend" != "no" && - test "$ac_cv_search_PtlLEAppend" != "none required"; then : - opal_check_portals4_LIBS="$ac_cv_search_PtlLEAppend " + if test "$ac_cv_search_psm2_mq_irecv2" != "no" && + test "$ac_cv_search_psm2_mq_irecv2" != "none required"; then : + ompi_check_psm2_LIBS="$ac_cv_search_psm2_mq_irecv2 " else - opal_check_portals4_LIBS="" + ompi_check_psm2_LIBS="" fi opal_check_package_happy="yes" else @@ -308855,78 +336160,73 @@ if test "$opal_check_package_happy" = "yes"; then : - ompi_check_portals4_happy="yes" + ompi_check_psm2_happy="yes" else - opal_check_portals4_CPPFLAGS="$opal_check_package_opal_check_portals4_orig_CPPFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - opal_check_portals4_LIBS="$opal_check_package_opal_check_portals4_orig_LIBS" - ompi_check_portals4_happy="no" + ompi_check_psm2_CPPFLAGS="$opal_check_package_ompi_check_psm2_orig_CPPFLAGS" + ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" + ompi_check_psm2_LIBS="$opal_check_package_ompi_check_psm2_orig_LIBS" + ompi_check_psm2_happy="no" fi - CPPFLAGS="$opal_check_package_opal_check_portals4_save_CPPFLAGS" - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - LIBS="$opal_check_package_opal_check_portals4_save_LIBS" + CPPFLAGS="$opal_check_package_ompi_check_psm2_save_CPPFLAGS" + LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" + LIBS="$opal_check_package_ompi_check_psm2_save_LIBS" else - ompi_check_portals4_happy="no" -fi - - CPPFLAGS="$ompi_check_portals4_mtl_portals4_save_CPPFLAGS" - LDFLAGS="$ompi_check_portals4_mtl_portals4_save_LDFLAGS" - LIBS="$ompi_check_portals4_mtl_portals4_save_LIBS" - - max_md_size=0 - -# Check whether --with-portals4-max-md-size was given. -if test "${with_portals4_max_md_size+set}" = set; then : - withval=$with_portals4_max_md_size; + ompi_check_psm2_happy="no" fi - if test "$with_portals4_max_md_size" = "yes" || test "$with_portals4_max_md_size" = "no"; then : - as_fn_error $? "--with-portals4-max-md-size requires an integer argument" "$LINENO" 5 -else - if test -n "$with_portals4_max_md_size"; then : - max_md_size="$with_portals4_max_md_size" -fi + if test "$ompi_check_psm2_happy" = "yes" && test "$enable_progress_threads" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PSM2 driver does not currently support progress threads. Disabling MTL." >&5 +$as_echo "$as_me: WARNING: PSM2 driver does not currently support progress threads. Disabling MTL." >&2;} + ompi_check_psm2_happy="no" fi -cat >>confdefs.h <<_ACEOF -#define OPAL_PORTALS4_MAX_MD_SIZE $max_md_size + if test "$ompi_check_psm2_happy" = "yes"; then : + for ac_header in glob.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "glob.h" "ac_cv_header_glob_h" "$ac_includes_default" +if test "x$ac_cv_header_glob_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GLOB_H 1 _ACEOF +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: glob.h not found. Can not build component." >&5 +$as_echo "$as_me: WARNING: glob.h not found. Can not build component." >&2;} + ompi_check_psm2_happy="no" +fi - max_va_size=0 +done -# Check whether --with-portals4-max-va-size was given. -if test "${with_portals4_max_va_size+set}" = set; then : - withval=$with_portals4_max_va_size; fi - if test "$with_portals4_max_va_size" = "yes" || test "$with_portals4_max_va_size" = "no"; then : - as_fn_error $? "--with-portals4-max-va-size requires an integer argument" "$LINENO" 5 -else - if test -n "$with_portals4_max_va_size"; then : - max_va_size="$with_portals4_max_va_size" -fi + if test "$ompi_check_psm2_happy" = "yes"; then : + if test ! -z "$ompi_check_psm2_dir"; then : + CPPFLAGS="-I $ompi_check_psm2_dir/include $CPPFLAGS" fi + ac_fn_c_check_decl "$LINENO" "PSM2_LIB_REFCOUNT_CAP" "ac_cv_have_decl_PSM2_LIB_REFCOUNT_CAP" "#include +" +if test "x$ac_cv_have_decl_PSM2_LIB_REFCOUNT_CAP" = xyes; then : -cat >>confdefs.h <<_ACEOF -#define OPAL_PORTALS4_MAX_VA_SIZE $max_va_size -_ACEOF +$as_echo "#define HAVE_PSM2_LIB_REFCOUNT_CAP 1" >>confdefs.h +else + if test "x$enable_psm2_version_check" != "xno"; then : + ompi_check_psm2_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PSM2 needs to be version 11.2.173 or later. Disabling MTL." >&5 +$as_echo "$as_me: WARNING: PSM2 needs to be version 11.2.173 or later. Disabling MTL." >&2;} - if (test $max_md_size -eq 0 && test $max_va_size -ne 0 ) || (test $max_md_size -ne 0 && test $max_va_size -eq 0 ); then : - as_fn_error $? "If either --with-portals4-max-md-size or --with-portals4-max-va-size is set, both must be set." "$LINENO" 5 fi - if test $max_md_size -ge $max_va_size; then : - max_md_size=0 - max_va_size=0 fi - if test $max_md_size -ne 0 && test $max_va_size -ne 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: Portals 4 address space size: $max_md_size, $max_va_size" >&5 -$as_echo "$as_me: Portals 4 address space size: $max_md_size, $max_va_size" >&6;} + + fi + CPPFLAGS="$ompi_check_psm2_mtl_psm2_save_CPPFLAGS" + LDFLAGS="$ompi_check_psm2_mtl_psm2_save_LDFLAGS" + LIBS="$ompi_check_psm2_mtl_psm2_save_LIBS" + @@ -308967,7 +336267,7 @@ ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Portals4: $ompi_check_portals4_happy" + ompi_summary_line="Intel Omnipath (PSM2): $ompi_check_psm2_happy" ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) if test -z "$ompi_summary_section_current" ; then @@ -309005,62 +336305,27 @@ fi - if test "$ompi_check_portals4_happy" = "yes"; then : - mtl_portals4_LDFLAGS="$mtl_portals4_LDFLAGS $opal_check_portals4_LDFLAGS" - mtl_portals4_CPPFLAGS="$mtl_portals4_CPPFLAGS $opal_check_portals4_CPPFLAGS" - mtl_portals4_LIBS="$mtl_portals4_LIBS $opal_check_portals4_LIBS" - mtl_portals4_happy="yes" + if test "$ompi_check_psm2_happy" = "yes"; then : + mtl_psm2_LDFLAGS="$mtl_psm2_LDFLAGS $ompi_check_psm2_LDFLAGS" + mtl_psm2_CPPFLAGS="$mtl_psm2_CPPFLAGS $ompi_check_psm2_CPPFLAGS" + mtl_psm2_LIBS="$mtl_psm2_LIBS $ompi_check_psm2_LIBS" + mtl_psm2_happy="yes" else - if test ! -z "$with_portals4" && test "$with_portals4" != "no"; then : - as_fn_error $? "Portals4 support requested but not found. Aborting" "$LINENO" 5 + if test ! -z "$with_psm2" && test "$with_psm2" != "no"; then : + as_fn_error $? "PSM2 support requested but not found. Aborting" "$LINENO" 5 fi - mtl_portals4_happy="no" + mtl_psm2_happy="no" fi - if test "$mtl_portals4_happy" = "yes"; then : + if test "$mtl_psm2_happy" = "yes"; then : should_build=$should_build else should_build=0 fi - # need to propogate CPPFLAGS to all of OMPI - if test "$DIRECT_mtl" = "portals4"; then : - mtl_portals4_WRAPPER_EXTRA_CPPFLAGS="$mtl_portals4_CPPFLAGS" - CPPFLAGS="$CPPFLAGS $mtl_portals4_CPPFLAGS" -fi - - # Check whether --enable-mtl-portals4-flow-control was given. -if test "${enable_mtl_portals4_flow_control+set}" = set; then : - enableval=$enable_mtl_portals4_flow_control; -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable flow control" >&5 -$as_echo_n "checking whether to enable flow control... " >&6; } - if test "$enable_mtl_portals4_flow_control" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - mtl_portals4_flow_control_enabled=1 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - mtl_portals4_flow_control_enabled=0 - fi - -cat >>confdefs.h <<_ACEOF -#define OMPI_MTL_PORTALS4_FLOW_CONTROL $mtl_portals4_flow_control_enabled -_ACEOF - - if test "$mtl_portals4_flow_control_enabled" = "1"; then - OMPI_MTL_PORTALS4_FLOW_CONTROL_TRUE= - OMPI_MTL_PORTALS4_FLOW_CONTROL_FALSE='#' -else - OMPI_MTL_PORTALS4_FLOW_CONTROL_TRUE='#' - OMPI_MTL_PORTALS4_FLOW_CONTROL_FALSE= -fi - + # substitute in the things needed to build psm2 - # substitute in the things needed to build portals4 @@ -309073,45 +336338,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/mtl/portals4/post_configure.sh" + infile="$srcdir/ompi/mca/mtl/psm2/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components portals4" + all_components="$all_components psm2" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components portals4" + dso_components="$dso_components psm2" else if test "mtl" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/mtl/portals4/lib${OMPI_LIB_PREFIX}mca_mtl_portals4.la $static_ltlibs" + static_ltlibs="mca/mtl/psm2/lib${OMPI_LIB_PREFIX}mca_mtl_psm2.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/mtl/portals4/libmca_mtl_portals4.la $static_ltlibs" + static_ltlibs="mca/mtl/psm2/libmca_mtl_psm2.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_mtl_portals4_component;" >> $outfile.extern - echo " &mca_mtl_portals4_component, " >> $outfile.struct - static_components="$static_components portals4" + echo "extern const mca_base_component_t mca_mtl_psm2_component;" >> $outfile.extern + echo " &mca_mtl_psm2_component, " >> $outfile.struct + static_components="$static_components psm2" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:portals4 can compile" >&5 -$as_echo_n "checking if MCA component mtl:portals4 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:psm2 can compile" >&5 +$as_echo_n "checking if MCA component mtl:psm2 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_mtl" = "portals4" ; then + if test "$DIRECT_mtl" = "psm2" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_ompi_mtl_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** mtl component portals4 was supposed to be direct-called, but +as_fn_error $? "*** mtl component psm2 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -309119,8 +336384,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_mtl" = "portals4" ; then -as_fn_error $? "*** mtl component portals4 was supposed to be direct-called, but + if test "$DIRECT_mtl" = "psm2" ; then +as_fn_error $? "*** mtl component psm2 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -309135,7 +336400,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$mtl_portals4_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$mtl_psm2_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -309175,7 +336440,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mtl_portals4_LDFLAGS; do + for arg in $mtl_psm2_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -309256,7 +336521,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mtl_portals4_WRAPPER_EXTRA_LDFLAGS; do + for arg in $mtl_psm2_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -309298,7 +336563,7 @@ fi - if test "$mtl_portals4_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$mtl_psm2_WRAPPER_EXTRA_LIBS" = ""; then : @@ -309338,7 +336603,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mtl_portals4_LIBS; do + for arg in $mtl_psm2_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -309419,7 +336684,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mtl_portals4_WRAPPER_EXTRA_LIBS; do + for arg in $mtl_psm2_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -309467,7 +336732,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$mtl_portals4_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$mtl_psm2_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -309510,7 +336775,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mtl_portals4_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $mtl_psm2_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -309553,32 +336818,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring mtl_portals4_WRAPPER_EXTRA_CPPFLAGS ($mtl_portals4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring mtl_portals4_WRAPPER_EXTRA_CPPFLAGS ($mtl_portals4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring mtl_psm2_WRAPPER_EXTRA_CPPFLAGS ($mtl_psm2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring mtl_psm2_WRAPPER_EXTRA_CPPFLAGS ($mtl_psm2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:portals4 can compile" >&5 -$as_echo_n "checking if MCA component mtl:portals4 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:psm2 can compile" >&5 +$as_echo_n "checking if MCA component mtl:psm2 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_mtl" = "portals4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"portals4\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"portals4\" failed to configure properly" >&2;} + if test "$with_mtl" = "psm2" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"psm2\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"psm2\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_mtl" ; then - if test "$DIRECT_mtl" = "portals4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"portals4\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"portals4\" failed to configure properly" >&2;} + if test "$DIRECT_mtl" = "psm2" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"psm2\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"psm2\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -309586,42 +336851,42 @@ fi # add component to all component list - all_components="$all_components portals4" + all_components="$all_components psm2" fi if test "$should_build" = "1"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag PORTALS4" >&5 -$as_echo_n "checking for index in endpoint array for tag PORTALS4... " >&6; } - if test -z "$OMPI_PROC_ENDPOINT_TAG_PORTALS4"; then : - OMPI_PROC_ENDPOINT_TAG_PORTALS4=$ompi_endpoint_tag_counter + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag MTL" >&5 +$as_echo_n "checking for index in endpoint array for tag MTL... " >&6; } + if test -z "$OMPI_PROC_ENDPOINT_TAG_MTL"; then : + OMPI_PROC_ENDPOINT_TAG_MTL=$ompi_endpoint_tag_counter cat >>confdefs.h <<_ACEOF -#define OMPI_PROC_ENDPOINT_TAG_PORTALS4 $OMPI_PROC_ENDPOINT_TAG_PORTALS4 +#define OMPI_PROC_ENDPOINT_TAG_MTL $OMPI_PROC_ENDPOINT_TAG_MTL _ACEOF ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_PORTALS4" >&5 -$as_echo "$OMPI_PROC_ENDPOINT_TAG_PORTALS4" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_MTL" >&5 +$as_echo "$OMPI_PROC_ENDPOINT_TAG_MTL" >&6; } fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_ompi_mtl_portals4_DSO=1 + BUILD_ompi_mtl_psm2_DSO=1 else - BUILD_ompi_mtl_portals4_DSO=0 + BUILD_ompi_mtl_psm2_DSO=0 fi - if test "$BUILD_ompi_mtl_portals4_DSO" = "1"; then - MCA_BUILD_ompi_mtl_portals4_DSO_TRUE= - MCA_BUILD_ompi_mtl_portals4_DSO_FALSE='#' + if test "$BUILD_ompi_mtl_psm2_DSO" = "1"; then + MCA_BUILD_ompi_mtl_psm2_DSO_TRUE= + MCA_BUILD_ompi_mtl_psm2_DSO_FALSE='#' else - MCA_BUILD_ompi_mtl_portals4_DSO_TRUE='#' - MCA_BUILD_ompi_mtl_portals4_DSO_FALSE= + MCA_BUILD_ompi_mtl_psm2_DSO_TRUE='#' + MCA_BUILD_ompi_mtl_psm2_DSO_FALSE= fi @@ -309637,13 +336902,24 @@ - opal_show_subsubsubtitle "MCA component mtl:psm (m4 configuration macro)" + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + if test "1" != "0"; then : - component_path="$srcdir/ompi/mca/mtl/psm" + for component_path in $srcdir/ompi/mca/mtl/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component mtl:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/ompi/mca/mtl/$component" want_component=0 # build if: @@ -309676,7 +336952,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_mtl" ; then - if test "$DIRECT_mtl" = "psm" ; then + if test "$DIRECT_mtl" = "$component" ; then want_component=1 else want_component=0 @@ -309688,24 +336964,26 @@ if test "$DISABLE_mtl" = "1"; then : want_component=0 fi - if test "$DISABLE_mtl_psm" = "1"; then : - want_component=0 -fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_mtl_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE SHARED_FRAMEWORK="$DSO_mtl" - SHARED_COMPONENT="$DSO_mtl_psm" + str="SHARED_COMPONENT=\$DSO_mtl_$component" + eval $str STATIC_FRAMEWORK="$STATIC_mtl" - STATIC_COMPONENT="$STATIC_mtl_psm" + str="STATIC_COMPONENT=\$STATIC_mtl_$component" + eval $str shared_mode_override=static @@ -309723,9 +337001,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component mtl:psm compile mode" >&5 -$as_echo_n "checking for MCA component mtl:psm compile mode... " >&6; } - if test "$DIRECT_mtl" = "psm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component mtl:$component compile mode" >&5 +$as_echo_n "checking for MCA component mtl:$component compile mode... " >&6; } + if test "$DIRECT_mtl" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -309733,130 +337011,292 @@ $as_echo "$compile_mode" >&6; } fi + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - # try to configure the component + if test "$should_build" = "1" ; then - ac_config_files="$ac_config_files ompi/mca/mtl/psm/Makefile" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - if test -z "$ompi_check_psm_happy" ; then + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -# Check whether --with-psm was given. -if test "${with_psm+set}" = set; then : - withval=$with_psm; -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-psm value" >&5 -$as_echo_n "checking --with-psm value... " >&6; } - if test "$with_psm" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-psm)" >&5 -$as_echo "simple no (specified --without-psm)" >&6; } -else - if test "$with_psm" = "yes" || test "x$with_psm" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_psm"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_psm not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_psm not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_psm/include/psm.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_psm/include/psm.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_psm/include/psm.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_psm)" >&5 -$as_echo "sanity check ok ($with_psm)" >&6; } + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -fi +# +# Invoke configure in a specific subdirectory. +# +# ompi/mca/mtl/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="ompi/mca/mtl/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" -fi +# +# Sanity checks +# +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} -fi + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } -fi + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + # + # Move into the target directory + # -# Check whether --with-psm-libdir was given. -if test "${with_psm_libdir+set}" = set; then : - withval=$with_psm_libdir; -fi + subdir_parent=`pwd` + cd $subdir_dir + # + # Make a "../" for each directory in $subdir_dir. + # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-psm-libdir value" >&5 -$as_echo_n "checking --with-psm-libdir value... " >&6; } - if test "$with_psm_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-psm-libdir)" >&5 -$as_echo "simple no (specified --without-psm-libdir)" >&6; } -else - if test "$with_psm_libdir" = "yes" || test "x$with_psm_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_psm_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_psm_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_psm_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_psm_libdir/libpsm_infinipath.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_psm_libdir/libpsm_infinipath.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_psm_libdir/libpsm_infinipath.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_psm_libdir)" >&5 -$as_echo "sanity check ok ($with_psm_libdir)" >&6; } + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # -fi + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + # + # Construct the --cache-file argument + # -fi + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + # + # Invoke the configure script in the subdirectory + # -fi + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + # + # Go back to the topdir + # + cd $subdir_parent fi +# +# Clean up +# - ompi_check_psm_mtl_psm_save_CPPFLAGS="$CPPFLAGS" - ompi_check_psm_mtl_psm_save_LDFLAGS="$LDFLAGS" - ompi_check_psm_mtl_psm_save_LIBS="$LIBS" - if test "$with_psm" != "no"; then : - if test ! -z "$with_psm" && test "$with_psm" != "yes"; then : - ompi_check_psm_dir="$with_psm" -fi - if test ! -z "$with_psm_libdir" && test "$with_psm_libdir" != "yes"; then : - ompi_check_psm_libdir="$with_psm_libdir" -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - opal_check_package_ompi_check_psm_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_ompi_check_psm_save_LDFLAGS="$LDFLAGS" - opal_check_package_ompi_check_psm_save_LIBS="$LIBS" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_check_package_ompi_check_psm_orig_CPPFLAGS="$ompi_check_psm_CPPFLAGS" - opal_check_package_ompi_check_psm_orig_LDFLAGS="$ompi_check_psm_LDFLAGS" - opal_check_package_ompi_check_psm_orig_LIBS="$ompi_check_psm_LIBS" + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/ompi/mca/mtl/all_components/post_configure.sh" + if test -f $infile; then - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + mtl_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + mtl_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/mtl/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "mtl" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/mtl/$component/lib${OMPI_LIB_PREFIX}mca_mtl_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/mtl/$component/libmca_mtl_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_mtl_$component_component;" >> $outfile.extern + echo " &mca_mtl_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:$component can compile" >&5 +$as_echo_n "checking if MCA component mtl:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_mtl" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_mtl_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** mtl component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_mtl" = "$component" ; then +as_fn_error $? "*** mtl component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$mtl_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -309869,7 +337309,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -309888,7 +337328,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -309896,357 +337336,48 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_psm_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_psm_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in psm.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "psm.h" "ac_cv_header_psm_h" "$ac_includes_default" -if test "x$ac_cv_header_psm_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PSM_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_psm_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - ompi_check_psm_CPPFLAGS="$ompi_check_psm_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in psm.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "psm.h" "ac_cv_header_psm_h" "$ac_includes_default" -if test "x$ac_cv_header_psm_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PSM_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_psm_finalize - opal_check_package_lib_happy="no" - if test "$ompi_check_psm_libdir" != ""; then : - # libdir was specified - search only there - ompi_check_psm_LDFLAGS="$ompi_check_psm_LDFLAGS -L$ompi_check_psm_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_psm_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm_finalize" >&5 -$as_echo_n "checking for library containing psm_finalize... " >&6; } -if ${ac_cv_search_psm_finalize+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm_finalize (); -int -main () -{ -return psm_finalize (); - ; - return 0; -} -_ACEOF -for ac_lib in '' psm_infinipath; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm_finalize=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm_finalize+:} false; then : - break -fi -done -if ${ac_cv_search_psm_finalize+:} false; then : - -else - ac_cv_search_psm_finalize=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm_finalize" >&5 -$as_echo "$ac_cv_search_psm_finalize" >&6; } -ac_res=$ac_cv_search_psm_finalize -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" - ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" - unset ac_cv_search_psm_finalize -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_psm_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm_finalize" >&5 -$as_echo_n "checking for library containing psm_finalize... " >&6; } -if ${ac_cv_search_psm_finalize+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm_finalize (); -int -main () -{ -return psm_finalize (); - ; - return 0; -} -_ACEOF -for ac_lib in '' psm_infinipath; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm_finalize=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm_finalize+:} false; then : - break -fi -done -if ${ac_cv_search_psm_finalize+:} false; then : - -else - ac_cv_search_psm_finalize=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm_finalize" >&5 -$as_echo "$ac_cv_search_psm_finalize" >&6; } -ac_res=$ac_cv_search_psm_finalize -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" - ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" - unset ac_cv_search_psm_finalize -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_psm_LDFLAGS="$ompi_check_psm_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm_finalize" >&5 -$as_echo_n "checking for library containing psm_finalize... " >&6; } -if ${ac_cv_search_psm_finalize+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm_finalize (); -int -main () -{ -return psm_finalize (); - ; - return 0; -} -_ACEOF -for ac_lib in '' psm_infinipath; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm_finalize=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm_finalize+:} false; then : - break -fi -done -if ${ac_cv_search_psm_finalize+:} false; then : - -else - ac_cv_search_psm_finalize=no + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm_finalize" >&5 -$as_echo "$ac_cv_search_psm_finalize" >&6; } -ac_res=$ac_cv_search_psm_finalize -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" - ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" - unset ac_cv_search_psm_finalize -fi + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_psm_LDFLAGS="$ompi_check_psm_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm_finalize" >&5 -$as_echo_n "checking for library containing psm_finalize... " >&6; } -if ${ac_cv_search_psm_finalize+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm_finalize (); -int -main () -{ -return psm_finalize (); - ; - return 0; -} -_ACEOF -for ac_lib in '' psm_infinipath; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm_finalize=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm_finalize+:} false; then : - break -fi -done -if ${ac_cv_search_psm_finalize+:} false; then : + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -else - ac_cv_search_psm_finalize=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm_finalize" >&5 -$as_echo "$ac_cv_search_psm_finalize" >&6; } -ac_res=$ac_cv_search_psm_finalize -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" - ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" - unset ac_cv_search_psm_finalize -fi -fi -fi -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. +str="line=\$mtl_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -310259,7 +337390,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -310276,1052 +337407,1184 @@ fi done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" - eval $opal_str - unset opal_str + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:$component can compile" >&5 +$as_echo_n "checking if MCA component mtl:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_mtl" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_mtl" ; then + if test "$DIRECT_mtl" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + fi + fi + done + +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + MCA_ompi_mtl_ALL_COMPONENTS="$all_components" + MCA_ompi_mtl_STATIC_COMPONENTS="$static_components" + MCA_ompi_mtl_DSO_COMPONENTS="$dso_components" + MCA_ompi_mtl_STATIC_LTLIBS="$static_ltlibs" - opal_libnl_sane=1 - case $host in - *linux*) - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + + MCA_ompi_mtl_ALL_SUBDIRS= + for item in $all_components ; do + MCA_ompi_mtl_ALL_SUBDIRS="$MCA_ompi_mtl_ALL_SUBDIRS mca/mtl/$item" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + MCA_ompi_mtl_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_ompi_mtl_STATIC_SUBDIRS="$MCA_ompi_mtl_STATIC_SUBDIRS mca/mtl/$item" + done - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpsm_infinipath requires libnl v1 or v3" >&5 -$as_echo_n "checking if libpsm_infinipath requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void psm_finalize (void); -int main(int argc, char *argv[]) { - psm_finalize (); - return 0; -} -EOF + MCA_ompi_mtl_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_ompi_mtl_DSO_SUBDIRS="$MCA_ompi_mtl_DSO_SUBDIRS mca/mtl/$item" + done - this_requires_v1=0 - this_requires_v3=0 - result_msg= -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:310354: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpsm_infinipath $LIBS $ompi_check_psm_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpsm_infinipath $LIBS $ompi_check_psm_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:310361: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "mtl" != "common"; then + cat > $outfile <&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib psm_infinipath" >&2;} +`cat $outfile.extern` -fi +const mca_base_component_t *mca_mtl_base_static_components[] = { +`cat $outfile.struct` + NULL +}; - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 +#if defined(c_plusplus) || defined(__cplusplus) +} +#endif - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. +EOF + # Only replace the header file if a) it doesn't previously + # exist, or b) the contents are different. Do this to not + # trigger recompilation of certain .c files just because the + # timestamp changed on $outfile_real (similar to the way AC + # handles AC_CONFIG_HEADER files). + diff $outfile $outfile_real > /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpsm_infinipath links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libpsm_infinipath links to both libnl and libnl-3." >&2;} + unset all_components static_components dso_components outfile outfile_real - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&2;} - libnl_sane=0 -fi + # this is a direct callable component, so set that up. - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas psm_infinipath requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas psm_infinipath requires libnl" >&2;} + if test ! -z "$DIRECT_mtl" ; then + MCA_ompi_mtl_DIRECT_CALL_COMPONENT=$DIRECT_mtl + MCA_ompi_mtl_DIRECT_CALL=1 + else + MCA_ompi_mtl_DIRECT_CALL_COMPONENT= + MCA_ompi_mtl_DIRECT_CALL=0 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&2;} - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs psm_infinipath" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs +cat >>confdefs.h <<_ACEOF +#define MCA_ompi_mtl_DIRECT_CALL $MCA_ompi_mtl_DIRECT_CALL +_ACEOF -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 +cat >>confdefs.h <<_ACEOF +#define MCA_ompi_mtl_DIRECT_CALL_COMPONENT $MCA_ompi_mtl_DIRECT_CALL_COMPONENT +_ACEOF - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do +cat >>confdefs.h <<_ACEOF +#define MCA_ompi_mtl_DIRECT_CALL_HEADER "$MCA_ompi_mtl_DIRECT_CALL_HEADER" +_ACEOF - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS op" + MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/op" + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_op_ALL_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_op_DSO_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_op_STATIC_SUBDIRS)" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/op/libmca_op.la" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_op_STATIC_LTLIBS)" - opal_done="`expr $opal_i \>= $opal_count`" + opal_show_subsubtitle "Configuring MCA framework op" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= -# Take all the items in the "array" and assemble them back into a -# single variable + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=ompi/mca/op/base + as_dir=$outdir; as_fn_mkdir_p -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + # emit Makefile rule + ac_config_files="$ac_config_files ompi/mca/op/Makefile" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern -# Done; do the assignment + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework op" >&5 +$as_echo_n "checking for no configure components in framework op... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework op" >&5 +$as_echo_n "checking for m4 configure components in framework op... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: avx" >&5 +$as_echo "avx" >&6; } -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi -fi + # run the configure logic for the no-config components - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpsm_infinipath requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpsm_infinipath requires libnl-3" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&2;} + # configure components that use built-in configuration scripts - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs psm_infinipath" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far + opal_show_subsubsubtitle "MCA component op:avx (m4 configuration macro)" - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + component_path="$srcdir/ompi/mca/op/avx" + want_component=0 - opal_done="`expr $opal_i \>= $opal_count`" + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_op" ; then + if test "$DIRECT_op" = "avx" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - # Increment the counter + # if we were explicitly disabled, don't build :) + if test "$DISABLE_op" = "1"; then : + want_component=0 +fi + if test "$DISABLE_op_avx" = "1"; then : + want_component=0 +fi - opal_i="`expr $opal_i + 1`" - done + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi - # If we didn't find the token, add it to the "array" + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + SHARED_FRAMEWORK="$DSO_op" + SHARED_COMPONENT="$DSO_op_avx" -# Take all the items in the "array" and assemble them back into a -# single variable + STATIC_FRAMEWORK="$STATIC_op" + STATIC_COMPONENT="$STATIC_op_avx" -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + shared_mode_override=static - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component op:avx compile mode" >&5 +$as_echo_n "checking for MCA component op:avx compile mode... " >&6; } + if test "$DIRECT_op" = "avx" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # try to configure the component -# Clean up + ac_config_files="$ac_config_files ompi/mca/op/avx/Makefile" -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi -fi + MCA_BUILD_OP_AVX_FLAGS="" + MCA_BUILD_OP_AVX2_FLAGS="" + MCA_BUILD_OP_AVX512_FLAGS="" + op_sse3_support=0 + op_sse41_support=0 + op_avx_support=0 + op_avx2_support=0 + op_avx512_support=0 - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - ;; - esac + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - opal_check_package_libnl_check_ok=$opal_libnl_sane + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in op_avx_cflags_save; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"op_avx_cflags_save\"" eval $opal_str + unset opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi + if test "$opal_cv_asm_arch" = "X86_64"; then : + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_psm_finalize" != "no" && - test "$ac_cv_search_psm_finalize" != "none required"; then : - ompi_check_psm_LIBS="$ac_cv_search_psm_finalize " -else - ompi_check_psm_LIBS="" -fi - opal_check_package_happy="yes" + # + # Check for AVX512 support + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX512 support" >&5 +$as_echo_n "checking for AVX512 support... " >&6; } +if ${ompi_cv_op_avx_check_avx512+:} false; then : + $as_echo_n "(cached) " >&6 else - opal_check_package_happy="no" -fi + ompi_cv_op_avx_check_avx512=yes +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_cv_op_avx_check_avx512" >&5 +$as_echo "$ompi_cv_op_avx_check_avx512" >&6; } + if test "$ompi_cv_op_avx_check_avx512" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX512 support (no additional flags)" >&5 +$as_echo_n "checking for AVX512 support (no additional flags)... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +#if defined(__ICC) && !defined(__AVX512F__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + __m512 vA, vB; + _mm512_add_ps(vA, vB) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + op_avx512_support=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - opal_check_package_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext - # see comment above - unset ac_cv_search_psm_finalize - opal_check_package_lib_happy="no" - if test "$ompi_check_psm_libdir" != ""; then : - # libdir was specified - search only there - ompi_check_psm_LDFLAGS="$ompi_check_psm_LDFLAGS -L$ompi_check_psm_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_psm_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm_finalize" >&5 -$as_echo_n "checking for library containing psm_finalize... " >&6; } -if ${ac_cv_search_psm_finalize+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test $op_avx512_support -eq 0; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX512 support (with -mavx512f -mavx512bw -mavx512vl -mavx512dq)" >&5 +$as_echo_n "checking for AVX512 support (with -mavx512f -mavx512bw -mavx512vl -mavx512dq)... " >&6; } + op_avx_cflags_save="$CFLAGS" + CFLAGS="-mavx512f -mavx512bw -mavx512vl -mavx512dq $CFLAGS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm_finalize (); +#include int main () { -return psm_finalize (); + +#if defined(__ICC) && !defined(__AVX512F__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + __m512 vA, vB; + _mm512_add_ps(vA, vB) + ; return 0; } _ACEOF -for ac_lib in '' psm_infinipath; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm_finalize=$ac_res +if ac_fn_c_try_link "$LINENO"; then : + op_avx512_support=1 + MCA_BUILD_OP_AVX512_FLAGS="-mavx512f -mavx512bw -mavx512vl -mavx512dq" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm_finalize+:} false; then : - break -fi -done -if ${ac_cv_search_psm_finalize+:} false; then : + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$op_avx_cflags_save" -else - ac_cv_search_psm_finalize=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm_finalize" >&5 -$as_echo "$ac_cv_search_psm_finalize" >&6; } -ac_res=$ac_cv_search_psm_finalize -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + # + # Some combination of gcc and older as would not correctly build the code generated by + # _mm256_loadu_si256. Screen them out. + # + if test $op_avx512_support -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _mm512_loadu_si512 generates code that can be compiled" >&5 +$as_echo_n "checking if _mm512_loadu_si512 generates code that can be compiled... " >&6; } + op_avx_cflags_save="$CFLAGS" + CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX512_FLAGS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + +#if defined(__ICC) && !defined(__AVX512F__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + int A[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + __m512i vA = _mm512_loadu_si512((__m512i*)&(A[1])) + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - opal_check_package_lib_happy="no" + op_avx512_support=0 + MCA_BUILD_OP_AVX512_FLAGS="" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$op_avx_cflags_save" - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" - ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" - unset ac_cv_search_psm_finalize fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_psm_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm_finalize" >&5 -$as_echo_n "checking for library containing psm_finalize... " >&6; } -if ${ac_cv_search_psm_finalize+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + # + # Some PGI compilers do not define _mm512_mullo_epi64. Screen them out. + # + if test $op_avx512_support -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _mm512_mullo_epi64 generates code that can be compiled" >&5 +$as_echo_n "checking if _mm512_mullo_epi64 generates code that can be compiled... " >&6; } + op_avx_cflags_save="$CFLAGS" + CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX512_FLAGS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm_finalize (); +#include int main () { -return psm_finalize (); + +#if defined(__ICC) && !defined(__AVX512F__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + __m512i vA, vB; + _mm512_mullo_epi64(vA, vB) + ; return 0; } _ACEOF -for ac_lib in '' psm_infinipath; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm_finalize=$ac_res +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + op_avx512_support=0 + MCA_BUILD_OP_AVX512_FLAGS="" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm_finalize+:} false; then : - break -fi -done -if ${ac_cv_search_psm_finalize+:} false; then : + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$op_avx_cflags_save" -else - ac_cv_search_psm_finalize=no fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm_finalize" >&5 -$as_echo "$ac_cv_search_psm_finalize" >&6; } -ac_res=$ac_cv_search_psm_finalize -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + # + # Check support for AVX2 + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX2 support" >&5 +$as_echo_n "checking for AVX2 support... " >&6; } +if ${ompi_cv_op_avx_check_avx2+:} false; then : + $as_echo_n "(cached) " >&6 else - opal_check_package_lib_happy="no" + ompi_cv_op_avx_check_avx2=yes fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_cv_op_avx_check_avx2" >&5 +$as_echo "$ompi_cv_op_avx_check_avx2" >&6; } + if test "$ompi_cv_op_avx_check_avx2" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX2 support (no additional flags)" >&5 +$as_echo_n "checking for AVX2 support (no additional flags)... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" - ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" - unset ac_cv_search_psm_finalize -fi -fi +#if defined(__ICC) && !defined(__AVX2__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + __m256i vA, vB, vC; + vC = _mm256_and_si256(vA, vB) - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_psm_LDFLAGS="$ompi_check_psm_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm_finalize" >&5 -$as_echo_n "checking for library containing psm_finalize... " >&6; } -if ${ac_cv_search_psm_finalize+:} false; then : - $as_echo_n "(cached) " >&6 + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + op_avx2_support=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test $op_avx2_support -eq 0; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX2 support (with -mavx2)" >&5 +$as_echo_n "checking for AVX2 support (with -mavx2)... " >&6; } + op_avx_cflags_save="$CFLAGS" + CFLAGS="-mavx2 $CFLAGS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm_finalize (); +#include int main () { -return psm_finalize (); + +#if defined(__ICC) && !defined(__AVX2__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + __m256i vA, vB, vC; + vC = _mm256_and_si256(vA, vB) + ; return 0; } _ACEOF -for ac_lib in '' psm_infinipath; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm_finalize=$ac_res +if ac_fn_c_try_link "$LINENO"; then : + op_avx2_support=1 + MCA_BUILD_OP_AVX2_FLAGS="-mavx2" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm_finalize+:} false; then : - break + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$op_avx_cflags_save" + fi -done -if ${ac_cv_search_psm_finalize+:} false; then : + # + # Some combination of gcc and older as would not correctly build the code generated by + # _mm256_loadu_si256. Screen them out. + # + if test $op_avx2_support -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if _mm256_loadu_si256 generates code that can be compiled" >&5 +$as_echo_n "checking if _mm256_loadu_si256 generates code that can be compiled... " >&6; } + op_avx_cflags_save="$CFLAGS" + CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX2_FLAGS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + +#if defined(__ICC) && !defined(__AVX2__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + int A[8] = {0, 1, 2, 3, 4, 5, 6, 7}; + __m256i vA = _mm256_loadu_si256((__m256i*)&A) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - ac_cv_search_psm_finalize=no + op_avx2_support=0 + MCA_BUILD_OP_AVX2_FLAGS="" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$op_avx_cflags_save" + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm_finalize" >&5 -$as_echo "$ac_cv_search_psm_finalize" >&6; } -ac_res=$ac_cv_search_psm_finalize -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" fi + # + # What about early AVX support? The rest of the logic is slightly different as + # we need to include some of the SSE4.1 and SSE3 instructions. So, we first check + # if we can compile AVX code without a flag, then we validate that we have support + # for the SSE4.1 and SSE3 instructions we need. If not, we check for the usage of + # the AVX flag, and then recheck if we have support for the SSE4.1 and SSE3 + # instructions. + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX support" >&5 +$as_echo_n "checking for AVX support... " >&6; } +if ${ompi_cv_op_avx_check_avx+:} false; then : + $as_echo_n "(cached) " >&6 +else + ompi_cv_op_avx_check_avx=yes +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_cv_op_avx_check_avx" >&5 +$as_echo "$ompi_cv_op_avx_check_avx" >&6; } + if test "$ompi_cv_op_avx_check_avx" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX support (no additional flags)" >&5 +$as_echo_n "checking for AVX support (no additional flags)... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" - ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" - unset ac_cv_search_psm_finalize -fi +#if defined(__ICC) && !defined(__AVX__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + __m256 vA, vB, vC; + vC = _mm256_add_ps(vA, vB) + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + op_avx_support=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_psm_LDFLAGS="$ompi_check_psm_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm_finalize" >&5 -$as_echo_n "checking for library containing psm_finalize... " >&6; } -if ${ac_cv_search_psm_finalize+:} false; then : + # + # Check for SSE4.1 support + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSE4.1 support" >&5 +$as_echo_n "checking for SSE4.1 support... " >&6; } +if ${ompi_cv_op_avx_check_sse41+:} false; then : $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ompi_cv_op_avx_check_sse41=yes +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_cv_op_avx_check_sse41" >&5 +$as_echo "$ompi_cv_op_avx_check_sse41" >&6; } + if test $op_avx_support -eq 1 && test "$ompi_cv_op_avx_check_sse41" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSE4.1 support" >&5 +$as_echo_n "checking for SSE4.1 support... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm_finalize (); +#include int main () { -return psm_finalize (); + +#if defined(__ICC) && !defined(__SSE4_1__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + __m128i vA, vB; + (void)_mm_max_epi8(vA, vB) + ; return 0; } _ACEOF -for ac_lib in '' psm_infinipath; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm_finalize=$ac_res +if ac_fn_c_try_link "$LINENO"; then : + op_sse41_support=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm_finalize+:} false; then : - break -fi -done -if ${ac_cv_search_psm_finalize+:} false; then : + conftest$ac_exeext conftest.$ac_ext -else - ac_cv_search_psm_finalize=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm_finalize" >&5 -$as_echo "$ac_cv_search_psm_finalize" >&6; } -ac_res=$ac_cv_search_psm_finalize -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + # + # Check for SSE3 support + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSE3 support" >&5 +$as_echo_n "checking for SSE3 support... " >&6; } +if ${ompi_cv_op_avx_check_sse3+:} false; then : + $as_echo_n "(cached) " >&6 else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" - ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" - unset ac_cv_search_psm_finalize -fi -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" - eval $opal_str - unset opal_str + ompi_cv_op_avx_check_sse3=yes +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_cv_op_avx_check_sse3" >&5 +$as_echo "$ompi_cv_op_avx_check_sse3" >&6; } + if test $op_avx_support -eq 1 && test "$ompi_cv_op_avx_check_sse3" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSE3 support" >&5 +$as_echo_n "checking for SSE3 support... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +#if defined(__ICC) && !defined(__SSE3__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + int A[4] = {0, 1, 2, 3}; + __m128i vA = _mm_lddqu_si128((__m128i*)&A) - opal_libnl_sane=1 - case $host in - *linux*) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + op_sse3_support=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + # Second pass, do we need to add the AVX flag ? + if test $op_avx_support -eq 0 || test $op_sse41_support -eq 0 || test $op_sse3_support -eq 0; then : + if test "$ompi_cv_op_avx_check_avx" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVX support (with -mavx)" >&5 +$as_echo_n "checking for AVX support (with -mavx)... " >&6; } + op_avx_cflags_save="$CFLAGS" + CFLAGS="-mavx $CFLAGS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + __m256 vA, vB, vC; +#if defined(__ICC) && !defined(__AVX__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + vC = _mm256_add_ps(vA, vB) - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + op_avx_support=1 + MCA_BUILD_OP_AVX_FLAGS="-mavx" + op_sse41_support=0 + op_sse3_support=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + if test "$ompi_cv_op_avx_check_sse41" = "yes" && test $op_sse41_support -eq 0; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSE4.1 support" >&5 +$as_echo_n "checking for SSE4.1 support... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +#if defined(__ICC) && !defined(__SSE4_1__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + __m128i vA, vB; + (void)_mm_max_epi8(vA, vB) - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" - eval $opal_str - unset opal_str + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + op_sse41_support=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + if test "$ompi_cv_op_avx_check_sse3" = "yes" && test $op_sse3_support -eq 0; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSE3 support" >&5 +$as_echo_n "checking for SSE3 support... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +#if defined(__ICC) && !defined(__SSE3__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + int A[4] = {0, 1, 2, 3}; + __m128i vA = _mm_lddqu_si128((__m128i*)&A) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + op_sse3_support=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + CFLAGS="$op_avx_cflags_save" +fi - ac_ext=c + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpsm_infinipath requires libnl v1 or v3" >&5 -$as_echo_n "checking if libpsm_infinipath requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void psm_finalize (void); -int main(int argc, char *argv[]) { - psm_finalize (); - return 0; -} -EOF +fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= +cat >>confdefs.h <<_ACEOF +#define OMPI_MCA_OP_HAVE_AVX512 $op_avx512_support +_ACEOF -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:311079: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpsm_infinipath $LIBS $ompi_check_psm_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpsm_infinipath $LIBS $ompi_check_psm_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:311086: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } +cat >>confdefs.h <<_ACEOF +#define OMPI_MCA_OP_HAVE_AVX2 $op_avx2_support +_ACEOF -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib psm_infinipath" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib psm_infinipath" >&2;} -fi +cat >>confdefs.h <<_ACEOF +#define OMPI_MCA_OP_HAVE_AVX $op_avx_support +_ACEOF - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. +cat >>confdefs.h <<_ACEOF +#define OMPI_MCA_OP_HAVE_SSE41 $op_sse41_support +_ACEOF - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpsm_infinipath links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libpsm_infinipath links to both libnl and libnl-3." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&2;} +cat >>confdefs.h <<_ACEOF +#define OMPI_MCA_OP_HAVE_SSE3 $op_sse3_support +_ACEOF - libnl_sane=0 + if test "$op_avx512_support" == "1"; then + MCA_BUILD_ompi_op_has_avx512_support_TRUE= + MCA_BUILD_ompi_op_has_avx512_support_FALSE='#' +else + MCA_BUILD_ompi_op_has_avx512_support_TRUE='#' + MCA_BUILD_ompi_op_has_avx512_support_FALSE= fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas psm_infinipath requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas psm_infinipath requires libnl" >&2;} + if test "$op_avx2_support" == "1"; then + MCA_BUILD_ompi_op_has_avx2_support_TRUE= + MCA_BUILD_ompi_op_has_avx2_support_FALSE='#' +else + MCA_BUILD_ompi_op_has_avx2_support_TRUE='#' + MCA_BUILD_ompi_op_has_avx2_support_FALSE= +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&2;} + if test "$op_avx_support" == "1"; then + MCA_BUILD_ompi_op_has_avx_support_TRUE= + MCA_BUILD_ompi_op_has_avx_support_FALSE='#' +else + MCA_BUILD_ompi_op_has_avx_support_TRUE='#' + MCA_BUILD_ompi_op_has_avx_support_FALSE= +fi - libnl_sane=0 + if test "$op_sse41_support" == "1"; then + MCA_BUILD_ompi_op_has_sse41_support_TRUE= + MCA_BUILD_ompi_op_has_sse41_support_FALSE='#' else - opal_libnlv1_libs="$opal_libnlv1_libs psm_infinipath" + MCA_BUILD_ompi_op_has_sse41_support_TRUE='#' + MCA_BUILD_ompi_op_has_sse41_support_FALSE= +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs + if test "$op_sse3_support" == "1"; then + MCA_BUILD_ompi_op_has_sse3_support_TRUE= + MCA_BUILD_ompi_op_has_sse3_support_FALSE='#' +else + MCA_BUILD_ompi_op_has_sse3_support_TRUE='#' + MCA_BUILD_ompi_op_has_sse3_support_FALSE= +fi -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + # Enable this component iff we have at least the most basic form of support + # for vectorial ISA + if test $op_avx_support -eq 1 || test $op_avx2_support -eq 1 || test $op_avx512_support -eq 1; then : + should_build=$should_build +else + should_build=0 fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpsm_infinipath requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpsm_infinipath requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpsm_infinipath (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm_infinipath." >&2;} - - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs psm_infinipath" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" -# Go through each item in the variable and only keep the unique ones + if test "$should_build" = "1"; then : -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/op/avx/post_configure.sh" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components avx" - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components avx" + else + if test "op" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/op/avx/lib${OMPI_LIB_PREFIX}mca_op_avx.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/op/avx/libmca_op_avx.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_op_avx_component;" >> $outfile.extern + echo " &mca_op_avx_component, " >> $outfile.struct + static_components="$static_components avx" + fi - # Check the ending condition + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component op:avx can compile" >&5 +$as_echo_n "checking if MCA component op:avx can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - opal_done="`expr $opal_i \>= $opal_count`" + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_op" = "avx" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_op_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** op component avx was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_op" = "avx" ; then +as_fn_error $? "*** op component avx was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - # Increment the counter + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$op_avx_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Done; do the assignment + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 + for arg in $op_avx_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - + done fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -311345,54 +338608,64 @@ done - ;; - esac +else - opal_check_package_libnl_check_ok=$opal_libnl_sane - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_psm_finalize" != "no" && - test "$ac_cv_search_psm_finalize" != "none required"; then : - ompi_check_psm_LIBS="$ac_cv_search_psm_finalize " -else - ompi_check_psm_LIBS="" + for arg in $op_avx_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -311416,53 +338689,8 @@ done - - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_psm_happy="yes" -else - ompi_check_psm_CPPFLAGS="$opal_check_package_ompi_check_psm_orig_CPPFLAGS" - ompi_check_psm_LDFLAGS="$opal_check_package_ompi_check_psm_orig_LDFLAGS" - ompi_check_psm_LIBS="$opal_check_package_ompi_check_psm_orig_LIBS" - ompi_check_psm_happy="no" -fi - - CPPFLAGS="$opal_check_package_ompi_check_psm_save_CPPFLAGS" - LDFLAGS="$opal_check_package_ompi_check_psm_save_LDFLAGS" - LIBS="$opal_check_package_ompi_check_psm_save_LIBS" - -else - ompi_check_psm_happy="no" -fi - - CPPFLAGS="$ompi_check_psm_mtl_psm_save_CPPFLAGS" - LDFLAGS="$ompi_check_psm_mtl_psm_save_LDFLAGS" - LIBS="$ompi_check_psm_mtl_psm_save_LIBS" - - if test "$ompi_check_psm_happy" = "yes" && test "$enable_progress_threads" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PSM driver does not currently support progress threads. Disabling BTL." >&5 -$as_echo "$as_me: WARNING: PSM driver does not currently support progress threads. Disabling BTL." >&2;} - ompi_check_psm_happy="no" -fi - - if test "$ompi_check_psm_happy" = "yes"; then : - for ac_header in glob.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "glob.h" "ac_cv_header_glob_h" "$ac_includes_default" -if test "x$ac_cv_header_glob_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GLOB_H 1 -_ACEOF - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: glob.h not found. Can not build component." >&5 -$as_echo "$as_me: WARNING: glob.h not found. Can not build component." >&2;} - ompi_check_psm_happy="no" -fi - -done - fi - + if test "$op_avx_WRAPPER_EXTRA_LIBS" = ""; then : @@ -311475,7 +338703,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -311494,7 +338722,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -311502,20 +338730,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Intel TrueScale (PSM): $ompi_check_psm_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + for arg in $op_avx_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done # Unwind the index @@ -311539,104 +338771,7 @@ done - fi - - if test "$ompi_check_psm_happy" = "yes"; then : - mtl_psm_LDFLAGS="$mtl_psm_LDFLAGS $ompi_check_psm_LDFLAGS" - mtl_psm_CPPFLAGS="$mtl_psm_CPPFLAGS $ompi_check_psm_CPPFLAGS" - mtl_psm_LIBS="$mtl_psm_LIBS $ompi_check_psm_LIBS" - mtl_psm_happy="yes" -else - if test ! -z "$with_psm" && test "$with_psm" != "no"; then : - as_fn_error $? "PSM support requested but not found. Aborting" "$LINENO" 5 -fi - mtl_psm_happy="no" -fi - - - if test "$mtl_psm_happy" = "yes"; then : - should_build=$should_build else - should_build=0 -fi - - # substitute in the things needed to build psm - - - - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/mtl/psm/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components psm" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components psm" - else - if test "mtl" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/mtl/psm/lib${OMPI_LIB_PREFIX}mca_mtl_psm.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/mtl/psm/libmca_mtl_psm.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_mtl_psm_component;" >> $outfile.extern - echo " &mca_mtl_psm_component, " >> $outfile.struct - static_components="$static_components psm" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:psm can compile" >&5 -$as_echo_n "checking if MCA component mtl:psm can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_mtl" = "psm" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_mtl_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** mtl component psm was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_mtl" = "psm" ; then -as_fn_error $? "*** mtl component psm was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$mtl_psm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -311676,21 +338811,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mtl_psm_LDFLAGS; do + for arg in $op_avx_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -311717,7 +338852,17 @@ done -else +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$op_avx_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -311757,21 +338902,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mtl_psm_WRAPPER_EXTRA_LDFLAGS; do + for arg in $op_avx_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do + for val in ${mca_wrapper_extra_cppflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi fi done @@ -311799,7 +338944,184 @@ fi - if test "$mtl_psm_WRAPPER_EXTRA_LIBS" = ""; then : +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring op_avx_WRAPPER_EXTRA_CPPFLAGS ($op_avx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring op_avx_WRAPPER_EXTRA_CPPFLAGS ($op_avx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component op:avx can compile" >&5 +$as_echo_n "checking if MCA component op:avx can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_op" = "avx" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"avx\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"avx\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_op" ; then + if test "$DIRECT_op" = "avx" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"avx\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"avx\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components avx" +fi + + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_op_avx_DSO=1 +else + BUILD_ompi_op_avx_DSO=0 +fi + if test "$BUILD_ompi_op_avx_DSO" = "1"; then + MCA_BUILD_ompi_op_avx_DSO_TRUE= + MCA_BUILD_ompi_op_avx_DSO_FALSE='#' +else + MCA_BUILD_ompi_op_avx_DSO_TRUE='#' + MCA_BUILD_ompi_op_avx_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + + + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/ompi/mca/op/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component op:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/ompi/mca/op/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_op" ; then + if test "$DIRECT_op" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_op" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_op_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_op" + str="SHARED_COMPONENT=\$DSO_op_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_op" + str="STATIC_COMPONENT=\$STATIC_op_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component op:$component compile mode" >&5 +$as_echo_n "checking for MCA component op:$component compile mode... " >&6; } + if test "$DIRECT_op" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then @@ -311812,7 +339134,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -311831,7 +339153,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $opal_str unset opal_str @@ -311839,24 +339161,129 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mtl_psm_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi +# +# Invoke configure in a specific subdirectory. +# +# ompi/mca/op/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="ompi/mca/op/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent fi - done + +# +# Clean up +# # Unwind the index @@ -311879,8 +339306,105 @@ unset $opal_var done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi -else + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/ompi/mca/op/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + op_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + op_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi + + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/op/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "op" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/op/$component/lib${OMPI_LIB_PREFIX}mca_op_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/op/$component/libmca_op_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_op_$component_component;" >> $outfile.extern + echo " &mca_op_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component op:$component can compile" >&5 +$as_echo_n "checking if MCA component op:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_op" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_op_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** op component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_op" = "$component" ; then +as_fn_error $? "*** op component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$op_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -311920,21 +339444,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mtl_psm_WRAPPER_EXTRA_LIBS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do + for val in ${mca_wrapper_extra_ldflags}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi done @@ -311960,18 +339484,8 @@ unset $opal_var done - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$mtl_psm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : +str="line=\$op_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -312011,21 +339525,21 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mtl_psm_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $line; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do + for val in ${mca_wrapper_extra_libs}; do if test "x$val" = "x$arg"; then : opal_append=0 fi done fi if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi done @@ -312052,1052 +339566,394 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring mtl_psm_WRAPPER_EXTRA_CPPFLAGS ($mtl_psm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring mtl_psm_WRAPPER_EXTRA_CPPFLAGS ($mtl_psm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + fi -else + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:psm can compile" >&5 -$as_echo_n "checking if MCA component mtl:psm can compile... " >&6; } + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component op:$component can compile" >&5 +$as_echo_n "checking if MCA component op:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_mtl" = "psm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"psm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"psm\" failed to configure properly" >&2;} + if test "$with_op" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_mtl" ; then - if test "$DIRECT_mtl" = "psm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"psm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"psm\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_op" ; then + if test "$DIRECT_op" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components psm" -fi - - - if test "$should_build" = "1"; then : - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag MTL" >&5 -$as_echo_n "checking for index in endpoint array for tag MTL... " >&6; } - if test -z "$OMPI_PROC_ENDPOINT_TAG_MTL"; then : - OMPI_PROC_ENDPOINT_TAG_MTL=$ompi_endpoint_tag_counter - -cat >>confdefs.h <<_ACEOF -#define OMPI_PROC_ENDPOINT_TAG_MTL $OMPI_PROC_ENDPOINT_TAG_MTL -_ACEOF - - ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_MTL" >&5 -$as_echo "$OMPI_PROC_ENDPOINT_TAG_MTL" >&6; } - -fi - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_mtl_psm_DSO=1 -else - BUILD_ompi_mtl_psm_DSO=0 -fi - if test "$BUILD_ompi_mtl_psm_DSO" = "1"; then - MCA_BUILD_ompi_mtl_psm_DSO_TRUE= - MCA_BUILD_ompi_mtl_psm_DSO_FALSE='#' -else - MCA_BUILD_ompi_mtl_psm_DSO_TRUE='#' - MCA_BUILD_ompi_mtl_psm_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - - unset compile_mode - - - - - - opal_show_subsubsubtitle "MCA component mtl:psm2 (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/ompi/mca/mtl/psm2" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_mtl" ; then - if test "$DIRECT_mtl" = "psm2" ; then - want_component=1 - else - want_component=0 fi fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_mtl" = "1"; then : - want_component=0 -fi - if test "$DISABLE_mtl_psm2" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_mtl" - SHARED_COMPONENT="$DSO_mtl_psm2" - - STATIC_FRAMEWORK="$STATIC_mtl" - STATIC_COMPONENT="$STATIC_mtl_psm2" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component mtl:psm2 compile mode" >&5 -$as_echo_n "checking for MCA component mtl:psm2 compile mode... " >&6; } - if test "$DIRECT_mtl" = "psm2" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files ompi/mca/mtl/psm2/Makefile" - - - - if test -z "$ompi_check_psm2_happy" ; then - -# Check whether --with-psm2 was given. -if test "${with_psm2+set}" = set; then : - withval=$with_psm2; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-psm2 value" >&5 -$as_echo_n "checking --with-psm2 value... " >&6; } - if test "$with_psm2" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-psm2)" >&5 -$as_echo "simple no (specified --without-psm2)" >&6; } -else - if test "$with_psm2" = "yes" || test "x$with_psm2" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_psm2"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_psm2 not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_psm2 not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_psm2/include/psm2.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_psm2/include/psm2.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_psm2/include/psm2.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_psm2)" >&5 -$as_echo "sanity check ok ($with_psm2)" >&6; } - -fi - - -fi - - -fi - - -fi - - -# Check whether --with-psm2-libdir was given. -if test "${with_psm2_libdir+set}" = set; then : - withval=$with_psm2_libdir; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-psm2-libdir value" >&5 -$as_echo_n "checking --with-psm2-libdir value... " >&6; } - if test "$with_psm2_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-psm2-libdir)" >&5 -$as_echo "simple no (specified --without-psm2-libdir)" >&6; } -else - if test "$with_psm2_libdir" = "yes" || test "x$with_psm2_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_psm2_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_psm2_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_psm2_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_psm2_libdir/libpsm2.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_psm2_libdir/libpsm2.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_psm2_libdir/libpsm2.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_psm2_libdir)" >&5 -$as_echo "sanity check ok ($with_psm2_libdir)" >&6; } - -fi - - -fi - - -fi - - -fi - - - ompi_check_psm2_mtl_psm2_save_CPPFLAGS="$CPPFLAGS" - ompi_check_psm2_mtl_psm2_save_LDFLAGS="$LDFLAGS" - ompi_check_psm2_mtl_psm2_save_LIBS="$LIBS" + done - if test "$with_psm2" != "no"; then : - if test ! -z "$with_psm2" && test "$with_psm2" != "yes"; then : - ompi_check_psm2_dir="$with_psm2" fi - if test ! -z "$with_psm2_libdir" && test "$with_psm2_libdir" != "yes"; then : - ompi_check_psm2_libdir="$with_psm2_libdir" -fi - - opal_check_package_ompi_check_psm2_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_ompi_check_psm2_save_LDFLAGS="$LDFLAGS" - opal_check_package_ompi_check_psm2_save_LIBS="$LIBS" - - opal_check_package_ompi_check_psm2_orig_CPPFLAGS="$ompi_check_psm2_CPPFLAGS" - opal_check_package_ompi_check_psm2_orig_LDFLAGS="$ompi_check_psm2_LDFLAGS" - opal_check_package_ompi_check_psm2_orig_LIBS="$ompi_check_psm2_LIBS" + MCA_ompi_op_ALL_COMPONENTS="$all_components" + MCA_ompi_op_STATIC_COMPONENTS="$static_components" + MCA_ompi_op_DSO_COMPONENTS="$dso_components" + MCA_ompi_op_STATIC_LTLIBS="$static_ltlibs" - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + MCA_ompi_op_ALL_SUBDIRS= + for item in $all_components ; do + MCA_ompi_op_ALL_SUBDIRS="$MCA_ompi_op_ALL_SUBDIRS mca/op/$item" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_psm2_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_psm2_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in psm2.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "psm2.h" "ac_cv_header_psm2_h" "$ac_includes_default" -if test "x$ac_cv_header_psm2_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PSM2_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_psm2_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - ompi_check_psm2_CPPFLAGS="$ompi_check_psm2_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in psm2.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "psm2.h" "ac_cv_header_psm2_h" "$ac_includes_default" -if test "x$ac_cv_header_psm2_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PSM2_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - if test "$opal_check_package_header_happy" = "yes"; then : - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + MCA_ompi_op_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_ompi_op_STATIC_SUBDIRS="$MCA_ompi_op_STATIC_SUBDIRS mca/op/$item" + done - # see comment above - unset ac_cv_search_psm2_mq_irecv2 - opal_check_package_lib_happy="no" - if test "$ompi_check_psm2_libdir" != ""; then : - # libdir was specified - search only there - ompi_check_psm2_LDFLAGS="$ompi_check_psm2_LDFLAGS -L$ompi_check_psm2_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_psm2_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 -$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm2_mq_irecv2 (); -int -main () -{ -return psm2_mq_irecv2 (); - ; - return 0; -} -_ACEOF -for ac_lib in '' psm2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm2_mq_irecv2=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - break -fi -done -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : + MCA_ompi_op_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_ompi_op_DSO_SUBDIRS="$MCA_ompi_op_DSO_SUBDIRS mca/op/$item" + done -else - ac_cv_search_psm2_mq_irecv2=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 -$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } -ac_res=$ac_cv_search_psm2_mq_irecv2 -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" - ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" - unset ac_cv_search_psm2_mq_irecv2 -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_psm2_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 -$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "op" != "common"; then + cat > $outfile <&5 -$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } -ac_res=$ac_cv_search_psm2_mq_irecv2 -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" - ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" - unset ac_cv_search_psm2_mq_irecv2 -fi -fi +`cat $outfile.extern` - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_psm2_LDFLAGS="$ompi_check_psm2_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 -$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +const mca_base_component_t *mca_op_base_static_components[] = { +`cat $outfile.struct` + NULL +}; -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm2_mq_irecv2 (); -int -main () -{ -return psm2_mq_irecv2 (); - ; - return 0; +#if defined(c_plusplus) || defined(__cplusplus) } -_ACEOF -for ac_lib in '' psm2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm2_mq_irecv2=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - break -fi -done -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - -else - ac_cv_search_psm2_mq_irecv2=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 -$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } -ac_res=$ac_cv_search_psm2_mq_irecv2 -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" - ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" - unset ac_cv_search_psm2_mq_irecv2 -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_psm2_LDFLAGS="$ompi_check_psm2_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 -$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" #endif -char psm2_mq_irecv2 (); -int -main () -{ -return psm2_mq_irecv2 (); - ; - return 0; -} -_ACEOF -for ac_lib in '' psm2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm2_mq_irecv2=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - break -fi -done -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - -else - ac_cv_search_psm2_mq_irecv2=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 -$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } -ac_res=$ac_cv_search_psm2_mq_irecv2 -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" - ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" - unset ac_cv_search_psm2_mq_irecv2 -fi -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 +EOF + # Only replace the header file if a) it doesn't previously + # exist, or b) the contents are different. Do this to not + # trigger recompilation of certain .c files just because the + # timestamp changed on $outfile_real (similar to the way AC + # handles AC_CONFIG_HEADER files). + diff $outfile $outfile_real > /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - opal_libnl_sane=1 - case $host in - *linux*) - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 fi + rm -f $outfile.struct $outfile.extern - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpsm2 requires libnl v1 or v3" >&5 -$as_echo_n "checking if libpsm2 requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void psm2_mq_irecv2 (void); -int main(int argc, char *argv[]) { - psm2_mq_irecv2 (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:312855: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpsm2 $LIBS $ompi_check_psm2_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpsm2 $LIBS $ompi_check_psm2_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:312862: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib psm2" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib psm2" >&2;} - -fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpsm2 links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libpsm2 links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpsm2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm2." >&2;} - - libnl_sane=0 -fi - - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas psm2 requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas psm2 requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpsm2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm2." >&2;} + unset all_components static_components dso_components outfile outfile_real - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs psm2" + MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS osc" + MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/osc" + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_osc_ALL_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_osc_DSO_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_osc_STATIC_SUBDIRS)" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/osc/libmca_osc.la" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_osc_STATIC_LTLIBS)" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs + opal_show_subsubtitle "Configuring MCA framework osc" -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=ompi/mca/osc/base + as_dir=$outdir; as_fn_mkdir_p - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + # emit Makefile rule + ac_config_files="$ac_config_files ompi/mca/osc/Makefile" - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - # Increment the counter + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework osc" >&5 +$as_echo_n "checking for no configure components in framework osc... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sm" >&5 +$as_echo "sm" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework osc" >&5 +$as_echo_n "checking for m4 configure components in framework osc... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: monitoring, portals4, pt2pt, rdma, ucx" >&5 +$as_echo "monitoring, portals4, pt2pt, rdma, ucx" >&6; } - opal_i="`expr $opal_i + 1`" - done + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # run the configure logic for the no-config components -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + opal_show_subsubsubtitle "MCA component osc:sm (no configuration)" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + component_path="$srcdir/ompi/mca/osc/sm" + want_component=0 -# Clean up + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_osc" ; then + if test "$DIRECT_osc" = "sm" ; then + want_component=1 + else + want_component=0 + fi + fi + fi -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_osc" = "1"; then : + want_component=0 fi - + if test "$DISABLE_osc_sm" = "1"; then : + want_component=0 fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpsm2 requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpsm2 requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpsm2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm2." >&2;} - - libnl_sane=0 + if test "$want_component" = "1"; then : + should_build=1 else - opal_libnlv3_libs="$opal_libnlv3_libs psm2" + should_build=0 +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones + SHARED_FRAMEWORK="$DSO_osc" + SHARED_COMPONENT="$DSO_osc_sm" -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + STATIC_FRAMEWORK="$STATIC_osc" + STATIC_COMPONENT="$STATIC_osc_sm" - # Loop over every token we've seen so far + shared_mode_override=static - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component osc:sm compile mode" >&5 +$as_echo_n "checking for MCA component osc:sm compile mode... " >&6; } + if test "$DIRECT_osc" = "sm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # Check the ending condition + if test "$should_build" = "1" ; then - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/osc/sm/post_configure.sh" - # If we didn't find the token, add it to the "array" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components sm" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components sm" else - opal_i="`expr $opal_i - 1`" + if test "osc" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/osc/sm/lib${OMPI_LIB_PREFIX}mca_osc_sm.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/osc/sm/libmca_osc_sm.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_osc_sm_component;" >> $outfile.extern + echo " &mca_osc_sm_component, " >> $outfile.struct + static_components="$static_components sm" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:sm can compile" >&5 +$as_echo_n "checking if MCA component osc:sm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_osc" = "sm" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_osc_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** osc component sm was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_osc" = "sm" ; then +as_fn_error $? "*** osc component sm was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$osc_sm_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + for arg in $osc_sm_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -313121,10 +339977,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $osc_sm_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -313147,332 +340058,89 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_psm2_mq_irecv2" != "no" && - test "$ac_cv_search_psm2_mq_irecv2" != "none required"; then : - ompi_check_psm2_LIBS="$ac_cv_search_psm2_mq_irecv2 " -else - ompi_check_psm2_LIBS="" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" fi + if test "$osc_sm_WRAPPER_EXTRA_LIBS" = ""; then : -else - opal_check_package_happy="no" -fi -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # see comment above - unset ac_cv_search_psm2_mq_irecv2 - opal_check_package_lib_happy="no" - if test "$ompi_check_psm2_libdir" != ""; then : - # libdir was specified - search only there - ompi_check_psm2_LDFLAGS="$ompi_check_psm2_LDFLAGS -L$ompi_check_psm2_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_psm2_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 -$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm2_mq_irecv2 (); -int -main () -{ -return psm2_mq_irecv2 (); - ; - return 0; -} -_ACEOF -for ac_lib in '' psm2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm2_mq_irecv2=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - break -fi -done -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -else - ac_cv_search_psm2_mq_irecv2=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 -$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } -ac_res=$ac_cv_search_psm2_mq_irecv2 -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" - ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" - unset ac_cv_search_psm2_mq_irecv2 -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_psm2_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 -$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm2_mq_irecv2 (); -int -main () -{ -return psm2_mq_irecv2 (); - ; - return 0; -} -_ACEOF -for ac_lib in '' psm2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm2_mq_irecv2=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - break -fi -done -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : -else - ac_cv_search_psm2_mq_irecv2=no + for arg in $osc_sm_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 -$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } -ac_res=$ac_cv_search_psm2_mq_irecv2 -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" - ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" - unset ac_cv_search_psm2_mq_irecv2 + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_psm2_LDFLAGS="$ompi_check_psm2_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 -$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm2_mq_irecv2 (); -int -main () -{ -return psm2_mq_irecv2 (); - ; - return 0; -} -_ACEOF -for ac_lib in '' psm2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm2_mq_irecv2=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - break -fi -done -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : -else - ac_cv_search_psm2_mq_irecv2=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 -$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } -ac_res=$ac_cv_search_psm2_mq_irecv2 -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" - ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" - unset ac_cv_search_psm2_mq_irecv2 -fi -fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_psm2_LDFLAGS="$ompi_check_psm2_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 -$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm2_mq_irecv2 (); -int -main () -{ -return psm2_mq_irecv2 (); - ; - return 0; -} -_ACEOF -for ac_lib in '' psm2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm2_mq_irecv2=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - break -fi -done -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : else - ac_cv_search_psm2_mq_irecv2=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 -$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } -ac_res=$ac_cv_search_psm2_mq_irecv2 -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" - ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" - unset ac_cv_search_psm2_mq_irecv2 -fi -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. @@ -313485,7 +340153,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -313504,16 +340172,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $osc_sm_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$osc_sm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -313526,7 +340244,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -313545,7 +340263,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -313553,276 +340271,353 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $osc_sm_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libpsm2 requires libnl v1 or v3" >&5 -$as_echo_n "checking if libpsm2 requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void psm2_mq_irecv2 (void); -int main(int argc, char *argv[]) { - psm2_mq_irecv2 (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:313580: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpsm2 $LIBS $ompi_check_psm2_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lpsm2 $LIBS $ompi_check_psm2_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:313587: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring osc_sm_WRAPPER_EXTRA_CPPFLAGS ($osc_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring osc_sm_WRAPPER_EXTRA_CPPFLAGS ($osc_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib psm2" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib psm2" >&2;} -fi + else - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:sm can compile" >&5 +$as_echo_n "checking if MCA component osc:sm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + # If this component was requested as the default for this + # type, then abort. + if test "$with_osc" = "sm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libpsm2 links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libpsm2 links to both libnl and libnl-3." >&2;} + if test ! -z "$DIRECT_osc" ; then + if test "$DIRECT_osc" = "sm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpsm2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm2." >&2;} + # add component to all component list + all_components="$all_components sm" + fi - libnl_sane=0 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_ompi_osc_sm_DSO=1 + else + BUILD_ompi_osc_sm_DSO=0 + fi + if test "$BUILD_ompi_osc_sm_DSO" = "1"; then + MCA_BUILD_ompi_osc_sm_DSO_TRUE= + MCA_BUILD_ompi_osc_sm_DSO_FALSE='#' +else + MCA_BUILD_ompi_osc_sm_DSO_TRUE='#' + MCA_BUILD_ompi_osc_sm_DSO_FALSE= fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas psm2 requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas psm2 requires libnl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpsm2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm2." >&2;} + ac_config_files="$ac_config_files ompi/mca/osc/sm/Makefile" - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs psm2" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs + unset compile_mode -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # configure components that use built-in configuration scripts - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + opal_show_subsubsubtitle "MCA component osc:monitoring (m4 configuration macro)" - opal_done="`expr $opal_i \>= $opal_count`" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" + component_path="$srcdir/ompi/mca/osc/monitoring" + want_component=0 - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_osc" ; then + if test "$DIRECT_osc" = "monitoring" ; then + want_component=1 + else + want_component=0 + fi + fi fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment + # if we were explicitly disabled, don't build :) + if test "$DISABLE_osc" = "1"; then : + want_component=0 +fi + if test "$DISABLE_osc_monitoring" = "1"; then : + want_component=0 +fi -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi -# Clean up + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + SHARED_FRAMEWORK="$DSO_osc" + SHARED_COMPONENT="$DSO_osc_monitoring" -fi + STATIC_FRAMEWORK="$STATIC_osc" + STATIC_COMPONENT="$STATIC_osc_monitoring" - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpsm2 requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libpsm2 requires libnl-3" >&2;} + shared_mode_override=static - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libpsm2 (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libpsm2 (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libpsm2." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libpsm2." >&2;} + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs psm2" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component osc:monitoring compile mode" >&5 +$as_echo_n "checking for MCA component osc:monitoring compile mode... " >&6; } + if test "$DIRECT_osc" = "monitoring" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones + # try to configure the component + ac_config_files="$ac_config_files ompi/mca/osc/monitoring/Makefile" -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far + if test "$MCA_BUILD_ompi_common_monitoring_DSO_TRUE" = ''; then : + should_build=$should_build +else + should_build=0 +fi - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + ac_config_commands="$ac_config_commands ompi/mca/osc/monitoring/osc_monitoring_template_gen.h" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - # Check the ending condition + if test "$should_build" = "1"; then : - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/osc/monitoring/post_configure.sh" - # If we didn't find the token, add it to the "array" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components monitoring" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components monitoring" else - opal_i="`expr $opal_i - 1`" + if test "osc" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/osc/monitoring/lib${OMPI_LIB_PREFIX}mca_osc_monitoring.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/osc/monitoring/libmca_osc_monitoring.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_osc_monitoring_component;" >> $outfile.extern + echo " &mca_osc_monitoring_component, " >> $outfile.struct + static_components="$static_components monitoring" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:monitoring can compile" >&5 +$as_echo_n "checking if MCA component osc:monitoring can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_osc" = "monitoring" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_osc_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** osc component monitoring was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_osc" = "monitoring" ; then +as_fn_error $? "*** osc component monitoring was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$osc_monitoring_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + for arg in $osc_monitoring_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -313846,10 +340641,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $osc_monitoring_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -313872,28 +340722,65 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no fi + if test "$osc_monitoring_WRAPPER_EXTRA_LIBS" = ""; then : -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_psm2_mq_irecv2" != "no" && - test "$ac_cv_search_psm2_mq_irecv2" != "none required"; then : - ompi_check_psm2_LIBS="$ac_cv_search_psm2_mq_irecv2 " -else - ompi_check_psm2_LIBS="" + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $osc_monitoring_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -313917,53 +340804,98 @@ done - - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_psm2_happy="yes" else - ompi_check_psm2_CPPFLAGS="$opal_check_package_ompi_check_psm2_orig_CPPFLAGS" - ompi_check_psm2_LDFLAGS="$opal_check_package_ompi_check_psm2_orig_LDFLAGS" - ompi_check_psm2_LIBS="$opal_check_package_ompi_check_psm2_orig_LIBS" - ompi_check_psm2_happy="no" -fi - CPPFLAGS="$opal_check_package_ompi_check_psm2_save_CPPFLAGS" - LDFLAGS="$opal_check_package_ompi_check_psm2_save_LDFLAGS" - LIBS="$opal_check_package_ompi_check_psm2_save_LIBS" -else - ompi_check_psm2_happy="no" -fi - CPPFLAGS="$ompi_check_psm2_mtl_psm2_save_CPPFLAGS" - LDFLAGS="$ompi_check_psm2_mtl_psm2_save_LDFLAGS" - LIBS="$ompi_check_psm2_mtl_psm2_save_LIBS" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - if test "$ompi_check_psm2_happy" = "yes" && test "$enable_progress_threads" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PSM2 driver does not currently support progress threads. Disabling MTL." >&5 -$as_echo "$as_me: WARNING: PSM2 driver does not currently support progress threads. Disabling MTL." >&2;} - ompi_check_psm2_happy="no" -fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - if test "$ompi_check_psm2_happy" = "yes"; then : - for ac_header in glob.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "glob.h" "ac_cv_header_glob_h" "$ac_includes_default" -if test "x$ac_cv_header_glob_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GLOB_H 1 -_ACEOF + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $osc_monitoring_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: glob.h not found. Can not build component." >&5 -$as_echo "$as_me: WARNING: glob.h not found. Can not build component." >&2;} - ompi_check_psm2_happy="no" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -done fi + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$osc_monitoring_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -313976,7 +340908,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -313995,7 +340927,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -314003,20 +340935,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Intel Omnipath (PSM2): $ompi_check_psm2_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + for arg in $osc_monitoring_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done # Unwind the index @@ -314040,104 +340976,293 @@ done +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring osc_monitoring_WRAPPER_EXTRA_CPPFLAGS ($osc_monitoring_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring osc_monitoring_WRAPPER_EXTRA_CPPFLAGS ($osc_monitoring_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:monitoring can compile" >&5 +$as_echo_n "checking if MCA component osc:monitoring can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_osc" = "monitoring" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"monitoring\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"monitoring\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_osc" ; then + if test "$DIRECT_osc" = "monitoring" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"monitoring\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"monitoring\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi fi - if test "$ompi_check_psm2_happy" = "yes"; then : - mtl_psm2_LDFLAGS="$mtl_psm2_LDFLAGS $ompi_check_psm2_LDFLAGS" - mtl_psm2_CPPFLAGS="$mtl_psm2_CPPFLAGS $ompi_check_psm2_CPPFLAGS" - mtl_psm2_LIBS="$mtl_psm2_LIBS $ompi_check_psm2_LIBS" - mtl_psm2_happy="yes" + # add component to all component list + all_components="$all_components monitoring" +fi + + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_osc_monitoring_DSO=1 else - if test ! -z "$with_psm2" && test "$with_psm2" != "no"; then : - as_fn_error $? "PSM2 support requested but not found. Aborting" "$LINENO" 5 + BUILD_ompi_osc_monitoring_DSO=0 fi - mtl_psm2_happy="no" + if test "$BUILD_ompi_osc_monitoring_DSO" = "1"; then + MCA_BUILD_ompi_osc_monitoring_DSO_TRUE= + MCA_BUILD_ompi_osc_monitoring_DSO_FALSE='#' +else + MCA_BUILD_ompi_osc_monitoring_DSO_TRUE='#' + MCA_BUILD_ompi_osc_monitoring_DSO_FALSE= fi - if test "$mtl_psm2_happy" = "yes"; then : - should_build=$should_build + if test "$should_build" = "1"; then : + components_last_result=1 else - should_build=0 + components_last_result=0 fi - # substitute in the things needed to build psm2 - + unset compile_mode - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + opal_show_subsubsubtitle "MCA component osc:portals4 (m4 configuration macro)" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/mtl/psm2/post_configure.sh" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components psm2" + component_path="$srcdir/ompi/mca/osc/portals4" + want_component=0 - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components psm2" - else - if test "mtl" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/mtl/psm2/lib${OMPI_LIB_PREFIX}mca_mtl_psm2.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/mtl/psm2/libmca_mtl_psm2.la $static_ltlibs" + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 fi - echo "extern const mca_base_component_t mca_mtl_psm2_component;" >> $outfile.extern - echo " &mca_mtl_psm2_component, " >> $outfile.struct - static_components="$static_components psm2" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:psm2 can compile" >&5 -$as_echo_n "checking if MCA component mtl:psm2 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_mtl" = "psm2" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_mtl_DIRECT_CALL_HEADER=$line" - eval $str + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_osc" ; then + if test "$DIRECT_osc" = "portals4" ; then + want_component=1 else -as_fn_error $? "*** mtl component psm2 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 + want_component=0 fi fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_osc" = "1"; then : + want_component=0 +fi + if test "$DISABLE_osc_portals4" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + SHARED_FRAMEWORK="$DSO_osc" + SHARED_COMPONENT="$DSO_osc_portals4" + + STATIC_FRAMEWORK="$STATIC_osc" + STATIC_COMPONENT="$STATIC_osc_portals4" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_mtl" = "psm2" ; then -as_fn_error $? "*** mtl component psm2 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi + compile_mode="static" fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$mtl_psm2_WRAPPER_EXTRA_LDFLAGS" = ""; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component osc:portals4 compile mode" >&5 +$as_echo_n "checking for MCA component osc:portals4 compile mode... " >&6; } + if test "$DIRECT_osc" = "portals4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + + # try to configure the component + + ac_config_files="$ac_config_files ompi/mca/osc/portals4/Makefile" + + + + if test -z "$ompi_check_portals4_happy" ; then + +# Check whether --with-portals4 was given. +if test "${with_portals4+set}" = set; then : + withval=$with_portals4; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-portals4 value" >&5 +$as_echo_n "checking --with-portals4 value... " >&6; } + if test "$with_portals4" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-portals4)" >&5 +$as_echo "simple no (specified --without-portals4)" >&6; } +else + if test "$with_portals4" = "yes" || test "x$with_portals4" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_portals4"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_portals4 not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_portals4 not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_portals4/include/portals4.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_portals4/include/portals4.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_portals4/include/portals4.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_portals4)" >&5 +$as_echo "sanity check ok ($with_portals4)" >&6; } + +fi + + +fi + + +fi + + +fi + + +# Check whether --with-portals4-libdir was given. +if test "${with_portals4_libdir+set}" = set; then : + withval=$with_portals4_libdir; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-portals4-libdir value" >&5 +$as_echo_n "checking --with-portals4-libdir value... " >&6; } + if test "$with_portals4_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-portals4-libdir)" >&5 +$as_echo "simple no (specified --without-portals4-libdir)" >&6; } +else + if test "$with_portals4_libdir" = "yes" || test "x$with_portals4_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_portals4_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_portals4_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_portals4_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_portals4_libdir/libportals.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_portals4_libdir/libportals.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_portals4_libdir/libportals.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_portals4_libdir)" >&5 +$as_echo "sanity check ok ($with_portals4_libdir)" >&6; } + +fi + + +fi + + +fi + + +fi + + + ompi_check_portals4_osc_portals4_save_CPPFLAGS="$CPPFLAGS" + ompi_check_portals4_osc_portals4_save_LDFLAGS="$LDFLAGS" + ompi_check_portals4_osc_portals4_save_LIBS="$LIBS" + + if test "$with_portals4" != "no"; then : + if test ! -z "$with_portals4" && test "$with_portals4" != "yes"; then : + ompi_check_portals4_dir="$with_portals4" +fi + if test ! -z "$with_portals4_libdir" && test "$with_portals4_libdir" != "yes"; then : + ompi_check_portals4_libdir="$with_portals4_libdir" +fi + + + opal_check_package_opal_check_portals4_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_opal_check_portals4_save_LDFLAGS="$LDFLAGS" + opal_check_package_opal_check_portals4_save_LIBS="$LIBS" + + opal_check_package_opal_check_portals4_orig_CPPFLAGS="$opal_check_portals4_CPPFLAGS" + opal_check_package_opal_check_portals4_orig_LDFLAGS="$opal_check_portals4_LDFLAGS" + opal_check_package_opal_check_portals4_orig_LIBS="$opal_check_portals4_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -314150,7 +341275,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -314169,7 +341294,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -314177,211 +341302,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mtl_psm2_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_portals4_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $ompi_check_portals4_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in portals4.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "portals4.h" "ac_cv_header_portals4_h" "$ac_includes_default" +if test "x$ac_cv_header_portals4_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PORTALS4_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_portals4_h +fi +fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + opal_check_portals4_CPPFLAGS="$opal_check_portals4_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in portals4.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "portals4.h" "ac_cv_header_portals4_h" "$ac_includes_default" +if test "x$ac_cv_header_portals4_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PORTALS4_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi + +done + + if test "$opal_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_PtlLEAppend + opal_check_package_lib_happy="no" + if test "$ompi_check_portals4_libdir" != ""; then : + # libdir was specified - search only there + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$ompi_check_portals4_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_portals4_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : + +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_portals4_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : + +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg +done +if ${ac_cv_search_PtlLEAppend+:} false; then : + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + ac_cv_search_PtlLEAppend=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else + opal_check_package_lib_happy="no" +fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $mtl_psm2_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg +done +if ${ac_cv_search_PtlLEAppend+:} false; then : + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + ac_cv_search_PtlLEAppend=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - if test "$mtl_psm2_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $mtl_psm2_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend fi - done fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -314394,7 +341665,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -314413,66 +341684,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $mtl_psm2_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$mtl_psm2_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -314485,7 +341706,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -314504,7 +341725,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -314512,408 +341733,303 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $mtl_psm2_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libportals requires libnl v1 or v3" >&5 +$as_echo_n "checking if libportals requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void PtlLEAppend (void); +int main(int argc, char *argv[]) { + PtlLEAppend (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:341760: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:341767: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring mtl_psm2_WRAPPER_EXTRA_CPPFLAGS ($mtl_psm2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring mtl_psm2_WRAPPER_EXTRA_CPPFLAGS ($mtl_psm2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib portals" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib portals" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:psm2 can compile" >&5 -$as_echo_n "checking if MCA component mtl:psm2 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_mtl" = "psm2" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"psm2\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"psm2\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_mtl" ; then - if test "$DIRECT_mtl" = "psm2" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"psm2\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"psm2\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components psm2" fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - if test "$should_build" = "1"; then : - + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag MTL" >&5 -$as_echo_n "checking for index in endpoint array for tag MTL... " >&6; } - if test -z "$OMPI_PROC_ENDPOINT_TAG_MTL"; then : - OMPI_PROC_ENDPOINT_TAG_MTL=$ompi_endpoint_tag_counter + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&2;} -cat >>confdefs.h <<_ACEOF -#define OMPI_PROC_ENDPOINT_TAG_MTL $OMPI_PROC_ENDPOINT_TAG_MTL -_ACEOF + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} - ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` + libnl_sane=0 fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_MTL" >&5 -$as_echo "$OMPI_PROC_ENDPOINT_TAG_MTL" >&6; } -fi + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_mtl_psm2_DSO=1 -else - BUILD_ompi_mtl_psm2_DSO=0 -fi - if test "$BUILD_ompi_mtl_psm2_DSO" = "1"; then - MCA_BUILD_ompi_mtl_psm2_DSO_TRUE= - MCA_BUILD_ompi_mtl_psm2_DSO_FALSE='#' + libnl_sane=0 else - MCA_BUILD_ompi_mtl_psm2_DSO_TRUE='#' - MCA_BUILD_ompi_mtl_psm2_DSO_FALSE= -fi + opal_libnlv1_libs="$opal_libnlv1_libs portals" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi +# Go through each item in the variable and only keep the unique ones - unset compile_mode +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - if test "1" != "0"; then : + opal_i="`expr $opal_i + 1`" + done - for component_path in $srcdir/ompi/mca/mtl/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component mtl:$component (need to configure)" + # If we didn't find the token, add it to the "array" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - component_path="$srcdir/ompi/mca/mtl/$component" - want_component=0 + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_mtl" ; then - if test "$DIRECT_mtl" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # if we were explicitly disabled, don't build :) - if test "$DISABLE_mtl" = "1"; then : - want_component=0 -fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_mtl_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi +# Done; do the assignment - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi +fi - SHARED_FRAMEWORK="$DSO_mtl" - str="SHARED_COMPONENT=\$DSO_mtl_$component" - eval $str + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&2;} - STATIC_FRAMEWORK="$STATIC_mtl" - str="STATIC_COMPONENT=\$STATIC_mtl_$component" - eval $str + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} - shared_mode_override=static + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs portals" - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component mtl:$component compile mode" >&5 -$as_echo_n "checking for MCA component mtl:$component compile mode... " >&6; } - if test "$DIRECT_mtl" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +# Go through each item in the variable and only keep the unique ones - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - if test "$should_build" = "1" ; then + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Check the ending condition - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + opal_done="`expr $opal_i \>= $opal_count`" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str + # Increment the counter - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_i="`expr $opal_i + 1`" + done + # If we didn't find the token, add it to the "array" -# -# Invoke configure in a specific subdirectory. -# -# ompi/mca/mtl/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="ompi/mca/mtl/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done -# -# Sanity checks -# +# Take all the items in the "array" and assemble them back into a +# single variable -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac +# Done; do the assignment - # - # Move into the target directory - # +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - subdir_parent=`pwd` - cd $subdir_dir +# Clean up - # - # Make a "../" for each directory in $subdir_dir. - # +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # +fi - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # - # Construct the --cache-file argument - # + rm -f conftest conftest_c.$ac_ext - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + opal_libnl_sane=$libnl_sane - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # - # Go back to the topdir - # + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - cd $subdir_parent -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# -# Clean up -# + ;; + esac + + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -314935,105 +342051,333 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/ompi/mca/mtl/all_components/post_configure.sh" - if test -f $infile; then + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_PtlLEAppend" != "no" && + test "$ac_cv_search_PtlLEAppend" != "none required"; then : + opal_check_portals4_LIBS="$ac_cv_search_PtlLEAppend " +else + opal_check_portals4_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi + + +else + opal_check_package_happy="no" +fi +else + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_PtlLEAppend + opal_check_package_lib_happy="no" + if test "$ompi_check_portals4_libdir" != ""; then : + # libdir was specified - search only there + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$ompi_check_portals4_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_portals4_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : + +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_portals4_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - mtl_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - mtl_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/mtl/$component/post_configure.sh" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +fi +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 +$as_echo_n "checking for library containing PtlLEAppend... " >&6; } +if ${ac_cv_search_PtlLEAppend+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "mtl" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/mtl/$component/lib${OMPI_LIB_PREFIX}mca_mtl_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/mtl/$component/libmca_mtl_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_mtl_$component_component;" >> $outfile.extern - echo " &mca_mtl_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char PtlLEAppend (); +int +main () +{ +return PtlLEAppend (); + ; + return 0; +} +_ACEOF +for ac_lib in '' portals; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_PtlLEAppend=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_PtlLEAppend+:} false; then : + break +fi +done +if ${ac_cv_search_PtlLEAppend+:} false; then : - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:$component can compile" >&5 -$as_echo_n "checking if MCA component mtl:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else + ac_cv_search_PtlLEAppend=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 +$as_echo "$ac_cv_search_PtlLEAppend" >&6; } +ac_res=$ac_cv_search_PtlLEAppend +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_mtl" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_mtl_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** mtl component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_mtl" = "$component" ; then -as_fn_error $? "*** mtl component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + unset ac_cv_search_PtlLEAppend +fi +fi +fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$mtl_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -315046,7 +342390,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -315065,56 +342409,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - -str="line=\$mtl_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + opal_libnl_sane=1 + case $host in + *linux*) @@ -315127,7 +342431,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -315146,7 +342450,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -315154,526 +342458,497 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libportals requires libnl v1 or v3" >&5 +$as_echo_n "checking if libportals requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void PtlLEAppend (void); +int main(int argc, char *argv[]) { + PtlLEAppend (); + return 0; +} +EOF + this_requires_v1=0 + this_requires_v3=0 + result_msg= - fi +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:342485: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS 1>&5 2>&1 +opal_status=$? - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:342492: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib portals" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib portals" >&2;} - else +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component mtl:$component can compile" >&5 -$as_echo_n "checking if MCA component mtl:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # If this component was requested as the default for this - # type, then abort. - if test "$with_mtl" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - if test ! -z "$DIRECT_mtl" ; then - if test "$DIRECT_mtl" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&2;} - fi - fi - done + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + libnl_sane=0 fi - MCA_ompi_mtl_ALL_COMPONENTS="$all_components" - MCA_ompi_mtl_STATIC_COMPONENTS="$static_components" - MCA_ompi_mtl_DSO_COMPONENTS="$dso_components" - MCA_ompi_mtl_STATIC_LTLIBS="$static_ltlibs" + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs portals" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - MCA_ompi_mtl_ALL_SUBDIRS= - for item in $all_components ; do - MCA_ompi_mtl_ALL_SUBDIRS="$MCA_ompi_mtl_ALL_SUBDIRS mca/mtl/$item" - done + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - MCA_ompi_mtl_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_ompi_mtl_STATIC_SUBDIRS="$MCA_ompi_mtl_STATIC_SUBDIRS mca/mtl/$item" - done + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - MCA_ompi_mtl_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_ompi_mtl_DSO_SUBDIRS="$MCA_ompi_mtl_DSO_SUBDIRS mca/mtl/$item" + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "mtl" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern +# Done; do the assignment - unset all_components static_components dso_components outfile outfile_real +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up - # this is a direct callable component, so set that up. +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi - if test ! -z "$DIRECT_mtl" ; then - MCA_ompi_mtl_DIRECT_CALL_COMPONENT=$DIRECT_mtl - MCA_ompi_mtl_DIRECT_CALL=1 - else - MCA_ompi_mtl_DIRECT_CALL_COMPONENT= - MCA_ompi_mtl_DIRECT_CALL=0 - fi +fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} -cat >>confdefs.h <<_ACEOF -#define MCA_ompi_mtl_DIRECT_CALL $MCA_ompi_mtl_DIRECT_CALL -_ACEOF + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs portals" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs -cat >>confdefs.h <<_ACEOF -#define MCA_ompi_mtl_DIRECT_CALL_COMPONENT $MCA_ompi_mtl_DIRECT_CALL_COMPONENT -_ACEOF +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 -cat >>confdefs.h <<_ACEOF -#define MCA_ompi_mtl_DIRECT_CALL_HEADER "$MCA_ompi_mtl_DIRECT_CALL_HEADER" -_ACEOF + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS op" - MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/op" - MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_op_ALL_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_op_DSO_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_op_STATIC_SUBDIRS)" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/op/libmca_op.la" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_op_STATIC_LTLIBS)" + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - opal_show_subsubtitle "Configuring MCA framework op" + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter + opal_i="`expr $opal_i + 1`" + done - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= + # If we didn't find the token, add it to the "array" - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=ompi/mca/op/base - as_dir=$outdir; as_fn_mkdir_p + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done - # emit Makefile rule - ac_config_files="$ac_config_files ompi/mca/op/Makefile" +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework op" >&5 -$as_echo_n "checking for no configure components in framework op... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework op" >&5 -$as_echo_n "checking for m4 configure components in framework op... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. +# Done; do the assignment +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up - # run the configure logic for the no-config components +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi +fi - # configure components that use built-in configuration scripts + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext + opal_libnl_sane=$libnl_sane - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "1" != "0"; then : + ;; + esac - for component_path in $srcdir/ompi/mca/op/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component op:$component (need to configure)" + opal_check_package_libnl_check_ok=$opal_libnl_sane - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - component_path="$srcdir/ompi/mca/op/$component" - want_component=0 - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_op" ; then - if test "$DIRECT_op" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_op" = "1"; then : - want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_op_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi - if test "$want_component" = "1"; then : - should_build=1 + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_PtlLEAppend" != "no" && + test "$ac_cv_search_PtlLEAppend" != "none required"; then : + opal_check_portals4_LIBS="$ac_cv_search_PtlLEAppend " else - should_build=0 + opal_check_portals4_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" fi - SHARED_FRAMEWORK="$DSO_op" - str="SHARED_COMPONENT=\$DSO_op_$component" - eval $str - - STATIC_FRAMEWORK="$STATIC_op" - str="STATIC_COMPONENT=\$STATIC_op_$component" - eval $str - - shared_mode_override=static +fi + unset opal_check_package_header_happy - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component op:$component compile mode" >&5 -$as_echo_n "checking for MCA component op:$component compile mode... " >&6; } - if test "$DIRECT_op" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_portals4_happy="yes" +else + opal_check_portals4_CPPFLAGS="$opal_check_package_opal_check_portals4_orig_CPPFLAGS" + opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" + opal_check_portals4_LIBS="$opal_check_package_opal_check_portals4_orig_LIBS" + ompi_check_portals4_happy="no" +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str + CPPFLAGS="$opal_check_package_opal_check_portals4_save_CPPFLAGS" + LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" + LIBS="$opal_check_package_opal_check_portals4_save_LIBS" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` +else + ompi_check_portals4_happy="no" +fi + CPPFLAGS="$ompi_check_portals4_osc_portals4_save_CPPFLAGS" + LDFLAGS="$ompi_check_portals4_osc_portals4_save_LDFLAGS" + LIBS="$ompi_check_portals4_osc_portals4_save_LIBS" -# -# Invoke configure in a specific subdirectory. -# -# ompi/mca/op/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="ompi/mca/op/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + max_md_size=0 -# -# Sanity checks -# +# Check whether --with-portals4-max-md-size was given. +if test "${with_portals4_max_md_size+set}" = set; then : + withval=$with_portals4_max_md_size; +fi -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + if test "$with_portals4_max_md_size" = "yes" || test "$with_portals4_max_md_size" = "no"; then : + as_fn_error $? "--with-portals4-max-md-size requires an integer argument" "$LINENO" 5 +else + if test -n "$with_portals4_max_md_size"; then : + max_md_size="$with_portals4_max_md_size" +fi +fi - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # +cat >>confdefs.h <<_ACEOF +#define OPAL_PORTALS4_MAX_MD_SIZE $max_md_size +_ACEOF - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac + max_va_size=0 - # - # Move into the target directory - # +# Check whether --with-portals4-max-va-size was given. +if test "${with_portals4_max_va_size+set}" = set; then : + withval=$with_portals4_max_va_size; +fi - subdir_parent=`pwd` - cd $subdir_dir + if test "$with_portals4_max_va_size" = "yes" || test "$with_portals4_max_va_size" = "no"; then : + as_fn_error $? "--with-portals4-max-va-size requires an integer argument" "$LINENO" 5 +else + if test -n "$with_portals4_max_va_size"; then : + max_va_size="$with_portals4_max_va_size" +fi +fi - # - # Make a "../" for each directory in $subdir_dir. - # +cat >>confdefs.h <<_ACEOF +#define OPAL_PORTALS4_MAX_VA_SIZE $max_va_size +_ACEOF - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + if (test $max_md_size -eq 0 && test $max_va_size -ne 0 ) || (test $max_md_size -ne 0 && test $max_va_size -eq 0 ); then : + as_fn_error $? "If either --with-portals4-max-md-size or --with-portals4-max-va-size is set, both must be set." "$LINENO" 5 +fi + if test $max_md_size -ge $max_va_size; then : + max_md_size=0 + max_va_size=0 +fi + if test $max_md_size -ne 0 && test $max_va_size -ne 0; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: Portals 4 address space size: $max_md_size, $max_va_size" >&5 +$as_echo "$as_me: Portals 4 address space size: $max_md_size, $max_va_size" >&6;} +fi - # - # Construct the --cache-file argument - # - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # - # Go back to the topdir - # + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - cd $subdir_parent -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# -# Clean up -# + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="Portals4: $ompi_check_portals4_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi # Unwind the index @@ -315696,80 +342971,87 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/ompi/mca/op/all_components/post_configure.sh" - if test -f $infile; then + fi + + if test "$ompi_check_portals4_happy" = "yes"; then : + osc_portals4_LDFLAGS="$osc_portals4_LDFLAGS $opal_check_portals4_LDFLAGS" + osc_portals4_CPPFLAGS="$osc_portals4_CPPFLAGS $opal_check_portals4_CPPFLAGS" + osc_portals4_LIBS="$osc_portals4_LIBS $opal_check_portals4_LIBS" + osc_portals4_happy="yes" +else + if test ! -z "$with_portals4" && test "$with_portals4" != "no"; then : + as_fn_error $? "Portals4 support requested but not found. Aborting" "$LINENO" 5 +fi + osc_portals4_happy="no" +fi + + + if test "$osc_portals4_happy" = "yes"; then : + osc_portals4_WRAPPER_EXTRA_LDFLAGS="$osc_portals4_LDFLAGS" + osc_portals4_WRAPPER_EXTRA_LIBS="$osc_portals4_LIBS" + should_build=$should_build +else + should_build=0 +fi + + # need to propogate CPPFLAGS to all of OMPI + if test "$DIRECT_osc" = "portals4"; then : + CPPFLAGS="$CPPFLAGS $osc_portals4_CPPFLAGS" +fi + + # substitute in the things needed to build portals4 - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - op_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - op_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/op/$component/post_configure.sh" + infile="$srcdir/ompi/mca/osc/portals4/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + all_components="$all_components portals4" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" + dso_components="$dso_components portals4" else - if test "op" = "common"; then + if test "osc" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/op/$component/lib${OMPI_LIB_PREFIX}mca_op_$component.la $static_ltlibs" + static_ltlibs="mca/osc/portals4/lib${OMPI_LIB_PREFIX}mca_osc_portals4.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/op/$component/libmca_op_$component.la $static_ltlibs" + static_ltlibs="mca/osc/portals4/libmca_osc_portals4.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_op_$component_component;" >> $outfile.extern - echo " &mca_op_$component_component, " >> $outfile.struct - static_components="$static_components $component" + echo "extern const mca_base_component_t mca_osc_portals4_component;" >> $outfile.extern + echo " &mca_osc_portals4_component, " >> $outfile.struct + static_components="$static_components portals4" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component op:$component can compile" >&5 -$as_echo_n "checking if MCA component op:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:portals4 can compile" >&5 +$as_echo_n "checking if MCA component osc:portals4 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_op" = "$component" ; then + if test "$DIRECT_osc" = "portals4" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_op_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_osc_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** op component $component was supposed to be direct-called, but +as_fn_error $? "*** osc component portals4 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -315777,8 +343059,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_op" = "$component" ; then -as_fn_error $? "*** op component $component was supposed to be direct-called, but + if test "$DIRECT_osc" = "portals4" ; then +as_fn_error $? "*** osc component portals4 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -315793,8 +343075,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$op_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + if test "$osc_portals4_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -315834,7 +343115,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $osc_portals4_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -315874,8 +343155,8 @@ unset $opal_var done -str="line=\$op_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + +else @@ -315915,7 +343196,89 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do + for arg in $osc_portals4_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$osc_portals4_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $osc_portals4_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -315956,179 +343319,271 @@ done +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - else + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component op:$component can compile" >&5 -$as_echo_n "checking if MCA component op:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_op" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + for arg in $osc_portals4_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_op" ; then - if test "$DIRECT_op" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - fi - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done -fi - MCA_ompi_op_ALL_COMPONENTS="$all_components" - MCA_ompi_op_STATIC_COMPONENTS="$static_components" - MCA_ompi_op_DSO_COMPONENTS="$dso_components" - MCA_ompi_op_STATIC_LTLIBS="$static_ltlibs" +fi + fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$osc_portals4_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - MCA_ompi_op_ALL_SUBDIRS= - for item in $all_components ; do - MCA_ompi_op_ALL_SUBDIRS="$MCA_ompi_op_ALL_SUBDIRS mca/op/$item" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - MCA_ompi_op_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_ompi_op_STATIC_SUBDIRS="$MCA_ompi_op_STATIC_SUBDIRS mca/op/$item" + for arg in $osc_portals4_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - MCA_ompi_op_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_ompi_op_DSO_SUBDIRS="$MCA_ompi_op_DSO_SUBDIRS mca/op/$item" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring osc_portals4_WRAPPER_EXTRA_CPPFLAGS ($osc_portals4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring osc_portals4_WRAPPER_EXTRA_CPPFLAGS ($osc_portals4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "op" != "common"; then - cat > $outfile <&5 +$as_echo_n "checking if MCA component osc:portals4 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -#if defined(c_plusplus) || defined(__cplusplus) -} -#endif + # If this component was requested as the default for this + # type, then abort. + if test "$with_osc" = "portals4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"portals4\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"portals4\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -EOF - # Only replace the header file if a) it doesn't previously - # exist, or b) the contents are different. Do this to not - # trigger recompilation of certain .c files just because the - # timestamp changed on $outfile_real (similar to the way AC - # handles AC_CONFIG_HEADER files). - diff $outfile $outfile_real > /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile + if test ! -z "$DIRECT_osc" ; then + if test "$DIRECT_osc" = "portals4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"portals4\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"portals4\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - rm -f $outfile.struct $outfile.extern - unset all_components static_components dso_components outfile outfile_real + # add component to all component list + all_components="$all_components portals4" +fi - MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS osc" - MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/osc" - MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_osc_ALL_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_osc_DSO_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_osc_STATIC_SUBDIRS)" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/osc/libmca_osc.la" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_osc_STATIC_LTLIBS)" - opal_show_subsubtitle "Configuring MCA framework osc" + if test "$should_build" = "1"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag PORTALS4" >&5 +$as_echo_n "checking for index in endpoint array for tag PORTALS4... " >&6; } + if test -z "$OMPI_PROC_ENDPOINT_TAG_PORTALS4"; then : + OMPI_PROC_ENDPOINT_TAG_PORTALS4=$ompi_endpoint_tag_counter +cat >>confdefs.h <<_ACEOF +#define OMPI_PROC_ENDPOINT_TAG_PORTALS4 $OMPI_PROC_ENDPOINT_TAG_PORTALS4 +_ACEOF - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= + ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_PORTALS4" >&5 +$as_echo "$OMPI_PROC_ENDPOINT_TAG_PORTALS4" >&6; } - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=ompi/mca/osc/base - as_dir=$outdir; as_fn_mkdir_p +fi - # emit Makefile rule - ac_config_files="$ac_config_files ompi/mca/osc/Makefile" + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_osc_portals4_DSO=1 +else + BUILD_ompi_osc_portals4_DSO=0 +fi + if test "$BUILD_ompi_osc_portals4_DSO" = "1"; then + MCA_BUILD_ompi_osc_portals4_DSO_TRUE= + MCA_BUILD_ompi_osc_portals4_DSO_FALSE='#' +else + MCA_BUILD_ompi_osc_portals4_DSO_TRUE='#' + MCA_BUILD_ompi_osc_portals4_DSO_FALSE= +fi - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework osc" >&5 -$as_echo_n "checking for no configure components in framework osc... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sm" >&5 -$as_echo "sm" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework osc" >&5 -$as_echo_n "checking for m4 configure components in framework osc... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: monitoring, portals4, pt2pt, rdma, ucx" >&5 -$as_echo "monitoring, portals4, pt2pt, rdma, ucx" >&6; } + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + unset compile_mode - # run the configure logic for the no-config components - opal_show_subsubsubtitle "MCA component osc:sm (no configuration)" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + opal_show_subsubsubtitle "MCA component osc:pt2pt (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/osc/sm" + component_path="$srcdir/ompi/mca/osc/pt2pt" want_component=0 # build if: @@ -316161,7 +343616,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_osc" ; then - if test "$DIRECT_osc" = "sm" ; then + if test "$DIRECT_osc" = "pt2pt" ; then want_component=1 else want_component=0 @@ -316173,22 +343628,24 @@ if test "$DISABLE_osc" = "1"; then : want_component=0 fi - if test "$DISABLE_osc_sm" = "1"; then : + if test "$DISABLE_osc_pt2pt" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE SHARED_FRAMEWORK="$DSO_osc" - SHARED_COMPONENT="$DSO_osc_sm" + SHARED_COMPONENT="$DSO_osc_pt2pt" STATIC_FRAMEWORK="$STATIC_osc" - STATIC_COMPONENT="$STATIC_osc_sm" + STATIC_COMPONENT="$STATIC_osc_pt2pt" shared_mode_override=static @@ -316206,9 +343663,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component osc:sm compile mode" >&5 -$as_echo_n "checking for MCA component osc:sm compile mode... " >&6; } - if test "$DIRECT_osc" = "sm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component osc:pt2pt compile mode" >&5 +$as_echo_n "checking for MCA component osc:pt2pt compile mode... " >&6; } + if test "$DIRECT_osc" = "pt2pt" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -316216,53 +343673,60 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files ompi/mca/osc/pt2pt/Makefile" + + should_build=$should_build + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/osc/sm/post_configure.sh" + infile="$srcdir/ompi/mca/osc/pt2pt/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components sm" + all_components="$all_components pt2pt" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components sm" + dso_components="$dso_components pt2pt" else if test "osc" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/osc/sm/lib${OMPI_LIB_PREFIX}mca_osc_sm.la $static_ltlibs" + static_ltlibs="mca/osc/pt2pt/lib${OMPI_LIB_PREFIX}mca_osc_pt2pt.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/osc/sm/libmca_osc_sm.la $static_ltlibs" + static_ltlibs="mca/osc/pt2pt/libmca_osc_pt2pt.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_osc_sm_component;" >> $outfile.extern - echo " &mca_osc_sm_component, " >> $outfile.struct - static_components="$static_components sm" + echo "extern const mca_base_component_t mca_osc_pt2pt_component;" >> $outfile.extern + echo " &mca_osc_pt2pt_component, " >> $outfile.struct + static_components="$static_components pt2pt" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:sm can compile" >&5 -$as_echo_n "checking if MCA component osc:sm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:pt2pt can compile" >&5 +$as_echo_n "checking if MCA component osc:pt2pt can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_osc" = "sm" ; then + if test "$DIRECT_osc" = "pt2pt" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_ompi_osc_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** osc component sm was supposed to be direct-called, but +as_fn_error $? "*** osc component pt2pt was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -316270,8 +343734,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_osc" = "sm" ; then -as_fn_error $? "*** osc component sm was supposed to be direct-called, but + if test "$DIRECT_osc" = "pt2pt" ; then +as_fn_error $? "*** osc component pt2pt was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -316286,7 +343750,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$osc_sm_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$osc_pt2pt_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -316326,7 +343790,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_sm_LDFLAGS; do + for arg in $osc_pt2pt_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -316407,7 +343871,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_sm_WRAPPER_EXTRA_LDFLAGS; do + for arg in $osc_pt2pt_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -316449,7 +343913,7 @@ fi - if test "$osc_sm_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$osc_pt2pt_WRAPPER_EXTRA_LIBS" = ""; then : @@ -316489,7 +343953,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_sm_LIBS; do + for arg in $osc_pt2pt_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -316570,7 +344034,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_sm_WRAPPER_EXTRA_LIBS; do + for arg in $osc_pt2pt_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -316618,7 +344082,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$osc_sm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$osc_pt2pt_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -316661,7 +344125,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_sm_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $osc_pt2pt_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -316704,79 +344168,78 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring osc_sm_WRAPPER_EXTRA_CPPFLAGS ($osc_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring osc_sm_WRAPPER_EXTRA_CPPFLAGS ($osc_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring osc_pt2pt_WRAPPER_EXTRA_CPPFLAGS ($osc_pt2pt_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring osc_pt2pt_WRAPPER_EXTRA_CPPFLAGS ($osc_pt2pt_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:sm can compile" >&5 -$as_echo_n "checking if MCA component osc:sm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:pt2pt can compile" >&5 +$as_echo_n "checking if MCA component osc:pt2pt can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_osc" = "sm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} + if test "$with_osc" = "pt2pt" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pt2pt\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pt2pt\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_osc" ; then - if test "$DIRECT_osc" = "sm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} + if test "$DIRECT_osc" = "pt2pt" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pt2pt\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pt2pt\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components sm" - fi + # add component to all component list + all_components="$all_components pt2pt" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_ompi_osc_sm_DSO=1 - else - BUILD_ompi_osc_sm_DSO=0 - fi - if test "$BUILD_ompi_osc_sm_DSO" = "1"; then - MCA_BUILD_ompi_osc_sm_DSO_TRUE= - MCA_BUILD_ompi_osc_sm_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_ompi_osc_pt2pt_DSO=1 else - MCA_BUILD_ompi_osc_sm_DSO_TRUE='#' - MCA_BUILD_ompi_osc_sm_DSO_FALSE= + BUILD_ompi_osc_pt2pt_DSO=0 +fi + if test "$BUILD_ompi_osc_pt2pt_DSO" = "1"; then + MCA_BUILD_ompi_osc_pt2pt_DSO_TRUE= + MCA_BUILD_ompi_osc_pt2pt_DSO_FALSE='#' +else + MCA_BUILD_ompi_osc_pt2pt_DSO_TRUE='#' + MCA_BUILD_ompi_osc_pt2pt_DSO_FALSE= fi - ac_config_files="$ac_config_files ompi/mca/osc/sm/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - # configure components that use built-in configuration scripts - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - opal_show_subsubsubtitle "MCA component osc:monitoring (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component osc:rdma (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/osc/monitoring" + component_path="$srcdir/ompi/mca/osc/rdma" want_component=0 # build if: @@ -316809,7 +344272,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_osc" ; then - if test "$DIRECT_osc" = "monitoring" ; then + if test "$DIRECT_osc" = "rdma" ; then want_component=1 else want_component=0 @@ -316821,7 +344284,7 @@ if test "$DISABLE_osc" = "1"; then : want_component=0 fi - if test "$DISABLE_osc_monitoring" = "1"; then : + if test "$DISABLE_osc_rdma" = "1"; then : want_component=0 fi @@ -316835,10 +344298,10 @@ # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE SHARED_FRAMEWORK="$DSO_osc" - SHARED_COMPONENT="$DSO_osc_monitoring" + SHARED_COMPONENT="$DSO_osc_rdma" STATIC_FRAMEWORK="$STATIC_osc" - STATIC_COMPONENT="$STATIC_osc_monitoring" + STATIC_COMPONENT="$STATIC_osc_rdma" shared_mode_override=static @@ -316856,9 +344319,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component osc:monitoring compile mode" >&5 -$as_echo_n "checking for MCA component osc:monitoring compile mode... " >&6; } - if test "$DIRECT_osc" = "monitoring" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component osc:rdma compile mode" >&5 +$as_echo_n "checking for MCA component osc:rdma compile mode... " >&6; } + if test "$DIRECT_osc" = "rdma" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -316868,17 +344331,10 @@ # try to configure the component - ac_config_files="$ac_config_files ompi/mca/osc/monitoring/Makefile" - - - if test "$MCA_BUILD_ompi_common_monitoring_DSO_TRUE" = ''; then : - should_build=$should_build -else - should_build=0 -fi - ac_config_commands="$ac_config_commands ompi/mca/osc/monitoring/osc_monitoring_template_gen.h" + ac_config_files="$ac_config_files ompi/mca/osc/rdma/Makefile" + should_build=$should_build opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -316888,45 +344344,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/osc/monitoring/post_configure.sh" + infile="$srcdir/ompi/mca/osc/rdma/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components monitoring" + all_components="$all_components rdma" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components monitoring" + dso_components="$dso_components rdma" else if test "osc" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/osc/monitoring/lib${OMPI_LIB_PREFIX}mca_osc_monitoring.la $static_ltlibs" + static_ltlibs="mca/osc/rdma/lib${OMPI_LIB_PREFIX}mca_osc_rdma.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/osc/monitoring/libmca_osc_monitoring.la $static_ltlibs" + static_ltlibs="mca/osc/rdma/libmca_osc_rdma.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_osc_monitoring_component;" >> $outfile.extern - echo " &mca_osc_monitoring_component, " >> $outfile.struct - static_components="$static_components monitoring" + echo "extern const mca_base_component_t mca_osc_rdma_component;" >> $outfile.extern + echo " &mca_osc_rdma_component, " >> $outfile.struct + static_components="$static_components rdma" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:monitoring can compile" >&5 -$as_echo_n "checking if MCA component osc:monitoring can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:rdma can compile" >&5 +$as_echo_n "checking if MCA component osc:rdma can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_osc" = "monitoring" ; then + if test "$DIRECT_osc" = "rdma" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_ompi_osc_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** osc component monitoring was supposed to be direct-called, but +as_fn_error $? "*** osc component rdma was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -316934,8 +344390,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_osc" = "monitoring" ; then -as_fn_error $? "*** osc component monitoring was supposed to be direct-called, but + if test "$DIRECT_osc" = "rdma" ; then +as_fn_error $? "*** osc component rdma was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -316950,7 +344406,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$osc_monitoring_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$osc_rdma_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -316990,7 +344446,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_monitoring_LDFLAGS; do + for arg in $osc_rdma_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -317071,7 +344527,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_monitoring_WRAPPER_EXTRA_LDFLAGS; do + for arg in $osc_rdma_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -317113,7 +344569,7 @@ fi - if test "$osc_monitoring_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$osc_rdma_WRAPPER_EXTRA_LIBS" = ""; then : @@ -317153,7 +344609,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_monitoring_LIBS; do + for arg in $osc_rdma_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -317234,7 +344690,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_monitoring_WRAPPER_EXTRA_LIBS; do + for arg in $osc_rdma_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -317282,7 +344738,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$osc_monitoring_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$osc_rdma_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -317325,7 +344781,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_monitoring_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $osc_rdma_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -317368,32 +344824,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring osc_monitoring_WRAPPER_EXTRA_CPPFLAGS ($osc_monitoring_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring osc_monitoring_WRAPPER_EXTRA_CPPFLAGS ($osc_monitoring_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring osc_rdma_WRAPPER_EXTRA_CPPFLAGS ($osc_rdma_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring osc_rdma_WRAPPER_EXTRA_CPPFLAGS ($osc_rdma_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:monitoring can compile" >&5 -$as_echo_n "checking if MCA component osc:monitoring can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:rdma can compile" >&5 +$as_echo_n "checking if MCA component osc:rdma can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_osc" = "monitoring" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"monitoring\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"monitoring\" failed to configure properly" >&2;} + if test "$with_osc" = "rdma" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"rdma\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"rdma\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_osc" ; then - if test "$DIRECT_osc" = "monitoring" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"monitoring\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"monitoring\" failed to configure properly" >&2;} + if test "$DIRECT_osc" = "rdma" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"rdma\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"rdma\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -317401,23 +344857,42 @@ fi # add component to all component list - all_components="$all_components monitoring" + all_components="$all_components rdma" +fi + + + if test "$should_build" = "1"; then : + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag BML" >&5 +$as_echo_n "checking for index in endpoint array for tag BML... " >&6; } + if test -z "$OMPI_PROC_ENDPOINT_TAG_BML"; then : + OMPI_PROC_ENDPOINT_TAG_BML=$ompi_endpoint_tag_counter + +cat >>confdefs.h <<_ACEOF +#define OMPI_PROC_ENDPOINT_TAG_BML $OMPI_PROC_ENDPOINT_TAG_BML +_ACEOF + + ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_BML" >&5 +$as_echo "$OMPI_PROC_ENDPOINT_TAG_BML" >&6; } +fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_ompi_osc_monitoring_DSO=1 + BUILD_ompi_osc_rdma_DSO=1 else - BUILD_ompi_osc_monitoring_DSO=0 + BUILD_ompi_osc_rdma_DSO=0 fi - if test "$BUILD_ompi_osc_monitoring_DSO" = "1"; then - MCA_BUILD_ompi_osc_monitoring_DSO_TRUE= - MCA_BUILD_ompi_osc_monitoring_DSO_FALSE='#' + if test "$BUILD_ompi_osc_rdma_DSO" = "1"; then + MCA_BUILD_ompi_osc_rdma_DSO_TRUE= + MCA_BUILD_ompi_osc_rdma_DSO_FALSE='#' else - MCA_BUILD_ompi_osc_monitoring_DSO_TRUE='#' - MCA_BUILD_ompi_osc_monitoring_DSO_FALSE= + MCA_BUILD_ompi_osc_rdma_DSO_TRUE='#' + MCA_BUILD_ompi_osc_rdma_DSO_FALSE= fi @@ -317433,13 +344908,13 @@ - opal_show_subsubsubtitle "MCA component osc:portals4 (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component osc:ucx (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/osc/portals4" + component_path="$srcdir/ompi/mca/osc/ucx" want_component=0 # build if: @@ -317472,7 +344947,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_osc" ; then - if test "$DIRECT_osc" = "portals4" ; then + if test "$DIRECT_osc" = "ucx" ; then want_component=1 else want_component=0 @@ -317484,7 +344959,7 @@ if test "$DISABLE_osc" = "1"; then : want_component=0 fi - if test "$DISABLE_osc_portals4" = "1"; then : + if test "$DISABLE_osc_ucx" = "1"; then : want_component=0 fi @@ -317498,10 +344973,10 @@ # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE SHARED_FRAMEWORK="$DSO_osc" - SHARED_COMPONENT="$DSO_osc_portals4" + SHARED_COMPONENT="$DSO_osc_ucx" STATIC_FRAMEWORK="$STATIC_osc" - STATIC_COMPONENT="$STATIC_osc_portals4" + STATIC_COMPONENT="$STATIC_osc_ucx" shared_mode_override=static @@ -317519,9 +344994,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component osc:portals4 compile mode" >&5 -$as_echo_n "checking for MCA component osc:portals4 compile mode... " >&6; } - if test "$DIRECT_osc" = "portals4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component osc:ucx compile mode" >&5 +$as_echo_n "checking for MCA component osc:ucx compile mode... " >&6; } + if test "$DIRECT_osc" = "ucx" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -317532,44 +345007,82 @@ # try to configure the component - ac_config_files="$ac_config_files ompi/mca/osc/portals4/Makefile" + ac_config_files="$ac_config_files ompi/mca/osc/ucx/Makefile" - if test -z "$ompi_check_portals4_happy" ; then -# Check whether --with-portals4 was given. -if test "${with_portals4+set}" = set; then : - withval=$with_portals4; + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_check_ucx_dir; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_check_ucx_dir\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + if test -z "$ompi_check_ucx_happy"; then : + +# Check whether --with-ucx was given. +if test "${with_ucx+set}" = set; then : + withval=$with_ucx; fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-portals4 value" >&5 -$as_echo_n "checking --with-portals4 value... " >&6; } - if test "$with_portals4" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-portals4)" >&5 -$as_echo "simple no (specified --without-portals4)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx value" >&5 +$as_echo_n "checking --with-ucx value... " >&6; } + if test "$with_ucx" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx)" >&5 +$as_echo "simple no (specified --without-ucx)" >&6; } else - if test "$with_portals4" = "yes" || test "x$with_portals4" = "x"; then : + if test "$with_ucx" = "yes" || test "x$with_ucx" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 $as_echo "simple ok (unspecified value)" >&6; } else - if test ! -d "$with_portals4"; then : + if test ! -d "$with_ucx"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_portals4 not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_portals4 not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ucx not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - if test "x`ls $with_portals4/include/portals4.h 2> /dev/null`" = "x"; then : + if test "x`ls $with_ucx/include/ucp/api/ucp.h 2> /dev/null`" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_portals4/include/portals4.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_portals4/include/portals4.h not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_portals4)" >&5 -$as_echo "sanity check ok ($with_portals4)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx)" >&5 +$as_echo "sanity check ok ($with_ucx)" >&6; } fi @@ -317583,71 +345096,158 @@ fi -# Check whether --with-portals4-libdir was given. -if test "${with_portals4_libdir+set}" = set; then : - withval=$with_portals4_libdir; +# Check whether --with-ucx-libdir was given. +if test "${with_ucx_libdir+set}" = set; then : + withval=$with_ucx_libdir; fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-portals4-libdir value" >&5 -$as_echo_n "checking --with-portals4-libdir value... " >&6; } - if test "$with_portals4_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-portals4-libdir)" >&5 -$as_echo "simple no (specified --without-portals4-libdir)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx-libdir value" >&5 +$as_echo_n "checking --with-ucx-libdir value... " >&6; } + if test "$with_ucx_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx-libdir)" >&5 +$as_echo "simple no (specified --without-ucx-libdir)" >&6; } else - if test "$with_portals4_libdir" = "yes" || test "x$with_portals4_libdir" = "x"; then : + if test "$with_ucx_libdir" = "yes" || test "x$with_ucx_libdir" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 $as_echo "simple ok (unspecified value)" >&6; } else - if test ! -d "$with_portals4_libdir"; then : + if test ! -d "$with_ucx_libdir"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_portals4_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_portals4_libdir not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ucx_libdir not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - if test "x`ls $with_portals4_libdir/libportals.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_portals4_libdir/libportals.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_portals4_libdir/libportals.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "x`ls $with_ucx_libdir/libucp.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx_libdir)" >&5 +$as_echo "sanity check ok ($with_ucx_libdir)" >&6; } + +fi + + +fi + + +fi + + +fi + + + if test "$with_ucx" != "no"; then : + if test -n "$with_ucx" && test "$with_ucx" != "yes"; then : + ompi_check_ucx_dir="$with_ucx" +else + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ucx" >&5 +$as_echo_n "checking for ucx... " >&6; } + +if test -n "$ucx_CFLAGS"; then + pkg_cv_ucx_CFLAGS="$ucx_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ucx_CFLAGS=`$PKG_CONFIG --cflags "ucx" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$ucx_LIBS"; then + pkg_cv_ucx_LIBS="$ucx_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ucx_LIBS=`$PKG_CONFIG --libs "ucx" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$ucx_STATIC_LIBS"; then + pkg_cv_ucx_STATIC_LIBS="$ucx_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ucx_STATIC_LIBS=`$PKG_CONFIG --libs --static "ucx" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_portals4_libdir)" >&5 -$as_echo "sanity check ok ($with_portals4_libdir)" >&6; } - + pkg_failed=yes fi - - + else + pkg_failed=untried fi -fi +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + ucx_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ucx" 2>&1` + else + ucx_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ucx" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$ucx_PKG_ERRORS" >&5 - - ompi_check_portals4_osc_portals4_save_CPPFLAGS="$CPPFLAGS" - ompi_check_portals4_osc_portals4_save_LDFLAGS="$LDFLAGS" - ompi_check_portals4_osc_portals4_save_LIBS="$LIBS" - - if test "$with_portals4" != "no"; then : - if test ! -z "$with_portals4" && test "$with_portals4" != "yes"; then : - ompi_check_portals4_dir="$with_portals4" + true +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + true +else + ucx_CFLAGS=$pkg_cv_ucx_CFLAGS + ucx_LIBS=$pkg_cv_ucx_LIBS + ucx_STATIC_LIBS=$pkg_cv_ucx_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + ompi_check_ucx_dir=`$PKG_CONFIG --variable=prefix ucx` + if test "$ompi_check_ucx_dir" = "/usr"; then : + ompi_check_ucx_dir= fi - if test ! -z "$with_portals4_libdir" && test "$with_portals4_libdir" != "yes"; then : - ompi_check_portals4_libdir="$with_portals4_libdir" fi +fi + ompi_check_ucx_happy="no" + if test -z "$ompi_check_ucx_dir"; then : + opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" + opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" - opal_check_package_opal_check_portals4_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_opal_check_portals4_save_LDFLAGS="$LDFLAGS" - opal_check_package_opal_check_portals4_save_LIBS="$LIBS" - - opal_check_package_opal_check_portals4_orig_CPPFLAGS="$opal_check_portals4_CPPFLAGS" - opal_check_package_opal_check_portals4_orig_LDFLAGS="$opal_check_portals4_LDFLAGS" - opal_check_package_opal_check_portals4_orig_LIBS="$opal_check_portals4_LIBS" + opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" + opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" + opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" # This is stolen from autoconf to peek under the covers to get the @@ -317695,22 +345295,22 @@ # so this sucks, but there's no way to get through the progression # of header includes without killing off the cache variable and trying # again... - unset ac_cv_header_portals4_h + unset ac_cv_header_ucp_api_ucp_h # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_portals4_dir | sed -e 'sX/*$XXg') + dir_prefix=$(echo | sed -e 'sX/*$XXg') opal_check_package_header_happy="no" if test "$dir_prefix" = "/usr" || \ test "$dir_prefix" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 $as_echo "looking for header without includes" >&6; } - for ac_header in portals4.h + for ac_header in ucp/api/ucp.h do : - ac_fn_c_check_header_mongrel "$LINENO" "portals4.h" "ac_cv_header_portals4_h" "$ac_includes_default" -if test "x$ac_cv_header_portals4_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_PORTALS4_H 1 +#define HAVE_UCP_API_UCP_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -317719,21 +345319,21 @@ if test "$opal_check_package_header_happy" = "no"; then : # no go on the as is - reset the cache and try again - unset ac_cv_header_portals4_h + unset ac_cv_header_ucp_api_ucp_h fi fi if test "$opal_check_package_header_happy" = "no"; then : if test "$dir_prefix" != ""; then : - opal_check_portals4_CPPFLAGS="$opal_check_portals4_CPPFLAGS -I$dir_prefix/include" + ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" fi - for ac_header in portals4.h + for ac_header in ucp/api/ucp.h do : - ac_fn_c_check_header_mongrel "$LINENO" "portals4.h" "ac_cv_header_portals4_h" "$ac_includes_default" -if test "x$ac_cv_header_portals4_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_PORTALS4_H 1 +#define HAVE_UCP_API_UCP_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -317748,15 +345348,15 @@ # see comment above - unset ac_cv_search_PtlLEAppend + unset ac_cv_search_ucp_cleanup opal_check_package_lib_happy="no" - if test "$ompi_check_portals4_libdir" != ""; then : + if test "" != ""; then : # libdir was specified - search only there - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$ompi_check_portals4_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_portals4_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -317769,42 +345369,42 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char ucp_cleanup (); int main () { -return PtlLEAppend (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -317813,22 +345413,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi else # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_portals4_dir" + opal_check_package_libdir="" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -317841,42 +345441,42 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char ucp_cleanup (); int main () { -return PtlLEAppend (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -317886,21 +345486,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -317913,42 +345513,42 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char ucp_cleanup (); int main () { -return PtlLEAppend (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -317958,22 +345558,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib64" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -317986,42 +345586,42 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char ucp_cleanup (); int main () { -return PtlLEAppend (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -318031,9 +345631,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi @@ -318130,12 +345730,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libportals requires libnl v1 or v3" >&5 -$as_echo_n "checking if libportals requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void PtlLEAppend (void); +extern void ucp_cleanup (void); int main(int argc, char *argv[]) { - PtlLEAppend (); + ucp_cleanup (); return 0; } EOF @@ -318147,14 +345747,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:318150: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS 1>&5 2>&1 +echo "configure:345750: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:318157: \$? = $opal_status" >&5 + echo "configure:345757: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -318174,8 +345774,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib portals" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib portals" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} fi @@ -318189,15 +345789,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 fi @@ -318206,19 +345806,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs portals" + opal_libnlv1_libs="$opal_libnlv1_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -318297,19 +345897,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs portals" + opal_libnlv3_libs="$opal_libnlv3_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -318450,11 +346050,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_PtlLEAppend" != "no" && - test "$ac_cv_search_PtlLEAppend" != "none required"; then : - opal_check_portals4_LIBS="$ac_cv_search_PtlLEAppend " + if test "$ac_cv_search_ucp_cleanup" != "no" && + test "$ac_cv_search_ucp_cleanup" != "none required"; then : + ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" else - opal_check_portals4_LIBS="" + ompi_check_ucx_LIBS="-luct -lucm -lucs" fi opal_check_package_happy="yes" else @@ -318473,15 +346073,15 @@ # see comment above - unset ac_cv_search_PtlLEAppend + unset ac_cv_search_ucp_cleanup opal_check_package_lib_happy="no" - if test "$ompi_check_portals4_libdir" != ""; then : + if test "" != ""; then : # libdir was specified - search only there - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$ompi_check_portals4_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_portals4_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -318494,42 +346094,42 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char ucp_cleanup (); int main () { -return PtlLEAppend (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -318538,22 +346138,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi else # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_portals4_dir" + opal_check_package_libdir="" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -318566,42 +346166,42 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char ucp_cleanup (); int main () { -return PtlLEAppend (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -318611,21 +346211,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -318638,42 +346238,42 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char ucp_cleanup (); int main () { -return PtlLEAppend (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -318683,22 +346283,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - opal_check_portals4_LDFLAGS="$opal_check_portals4_LDFLAGS -L$opal_check_package_libdir/lib64" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing PtlLEAppend" >&5 -$as_echo_n "checking for library containing PtlLEAppend... " >&6; } -if ${ac_cv_search_PtlLEAppend+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -318711,42 +346311,42 @@ #ifdef __cplusplus extern "C" #endif -char PtlLEAppend (); +char ucp_cleanup (); int main () { -return PtlLEAppend (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' portals; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_PtlLEAppend=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_PtlLEAppend+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_PtlLEAppend+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_PtlLEAppend=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_PtlLEAppend" >&5 -$as_echo "$ac_cv_search_PtlLEAppend" >&6; } -ac_res=$ac_cv_search_PtlLEAppend +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -318756,9 +346356,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - unset ac_cv_search_PtlLEAppend + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi @@ -318855,12 +346455,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libportals requires libnl v1 or v3" >&5 -$as_echo_n "checking if libportals requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void PtlLEAppend (void); +extern void ucp_cleanup (void); int main(int argc, char *argv[]) { - PtlLEAppend (); + ucp_cleanup (); return 0; } EOF @@ -318872,14 +346472,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:318875: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lportals $LIBS $opal_check_portals4_LIBS 1>&5 2>&1 +echo "configure:346475: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:318882: \$? = $opal_status" >&5 + echo "configure:346482: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -318899,8 +346499,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib portals" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib portals" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} fi @@ -318914,15 +346514,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libportals links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 fi @@ -318931,19 +346531,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas portals requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs portals" + opal_libnlv1_libs="$opal_libnlv1_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -319022,19 +346622,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libportals requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libportals (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libportals (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libportals." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libportals." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs portals" + opal_libnlv3_libs="$opal_libnlv3_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -319175,11 +346775,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_PtlLEAppend" != "no" && - test "$ac_cv_search_PtlLEAppend" != "none required"; then : - opal_check_portals4_LIBS="$ac_cv_search_PtlLEAppend " + if test "$ac_cv_search_ucp_cleanup" != "no" && + test "$ac_cv_search_ucp_cleanup" != "none required"; then : + ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" else - opal_check_portals4_LIBS="" + ompi_check_ucx_LIBS="-luct -lucm -lucs" fi opal_check_package_happy="yes" else @@ -319214,79 +346814,77 @@ if test "$opal_check_package_happy" = "yes"; then : - ompi_check_portals4_happy="yes" + ompi_check_ucx_happy="yes" else - opal_check_portals4_CPPFLAGS="$opal_check_package_opal_check_portals4_orig_CPPFLAGS" - opal_check_portals4_LDFLAGS="$opal_check_package_opal_check_portals4_orig_LDFLAGS" - opal_check_portals4_LIBS="$opal_check_package_opal_check_portals4_orig_LIBS" - ompi_check_portals4_happy="no" + ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" + ompi_check_ucx_happy="no" fi - CPPFLAGS="$opal_check_package_opal_check_portals4_save_CPPFLAGS" - LDFLAGS="$opal_check_package_opal_check_portals4_save_LDFLAGS" - LIBS="$opal_check_package_opal_check_portals4_save_LIBS" - -else - ompi_check_portals4_happy="no" -fi + CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" - CPPFLAGS="$ompi_check_portals4_osc_portals4_save_CPPFLAGS" - LDFLAGS="$ompi_check_portals4_osc_portals4_save_LDFLAGS" - LIBS="$ompi_check_portals4_osc_portals4_save_LIBS" + if test "$ompi_check_ucx_happy" = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 +$as_echo_n "checking for UCX version compatibility... " >&6; } - max_md_size=0 + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ -# Check whether --with-portals4-max-md-size was given. -if test "${with_portals4_max_md_size+set}" = set; then : - withval=$with_portals4_max_md_size; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ompi_check_ucx_happy="yes" +else + ompi_check_ucx_happy="no" fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$with_portals4_max_md_size" = "yes" || test "$with_portals4_max_md_size" = "no"; then : - as_fn_error $? "--with-portals4-max-md-size requires an integer argument" "$LINENO" 5 -else - if test -n "$with_portals4_max_md_size"; then : - max_md_size="$with_portals4_max_md_size" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 +$as_echo "$ompi_check_ucx_happy" >&6; } fi + if test "$ompi_check_ucx_happy" = "no"; then : + ompi_check_ucx_dir=/opt/ucx fi - -cat >>confdefs.h <<_ACEOF -#define OPAL_PORTALS4_MAX_MD_SIZE $max_md_size -_ACEOF - - - max_va_size=0 - -# Check whether --with-portals4-max-va-size was given. -if test "${with_portals4_max_va_size+set}" = set; then : - withval=$with_portals4_max_va_size; fi - - if test "$with_portals4_max_va_size" = "yes" || test "$with_portals4_max_va_size" = "no"; then : - as_fn_error $? "--with-portals4-max-va-size requires an integer argument" "$LINENO" 5 + if test "$ompi_check_ucx_happy" != yes; then : + if test -n "$with_ucx_libdir"; then : + ompi_check_ucx_libdir="$with_ucx_libdir" else - if test -n "$with_portals4_max_va_size"; then : - max_va_size="$with_portals4_max_va_size" + files=`ls $ompi_check_ucx_dir/lib64/libucp.* 2> /dev/null | wc -l` + if test "$files" -gt 0; then : + ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib64 +else + ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib fi fi -cat >>confdefs.h <<_ACEOF -#define OPAL_PORTALS4_MAX_VA_SIZE $max_va_size -_ACEOF + ompi_check_ucx_osc_ucx_save_CPPFLAGS="$CPPFLAGS" + ompi_check_ucx_osc_ucx_save_LDFLAGS="$LDFLAGS" + ompi_check_ucx_osc_ucx_save_LIBS="$LIBS" - if (test $max_md_size -eq 0 && test $max_va_size -ne 0 ) || (test $max_md_size -ne 0 && test $max_va_size -eq 0 ); then : - as_fn_error $? "If either --with-portals4-max-md-size or --with-portals4-max-va-size is set, both must be set." "$LINENO" 5 -fi - if test $max_md_size -ge $max_va_size; then : - max_md_size=0 - max_va_size=0 -fi - if test $max_md_size -ne 0 && test $max_va_size -ne 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: Portals 4 address space size: $max_md_size, $max_va_size" >&5 -$as_echo "$as_me: Portals 4 address space size: $max_md_size, $max_va_size" >&6;} -fi + opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" + opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" + + opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" + opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" + opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + # Is the private index set? If not, set it. @@ -319298,7 +346896,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -319317,7 +346915,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -319325,147 +346923,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Portals4: $ompi_check_portals4_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_ucp_api_ucp_h - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + # get rid of the trailing slash(es) + dir_prefix=$(echo $ompi_check_ucx_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in ucp/api/ucp.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UCP_API_UCP_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi +done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_ucp_api_ucp_h +fi +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in ucp/api/ucp.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UCP_API_UCP_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +done + if test "$opal_check_package_header_happy" = "yes"; then : - fi + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - if test "$ompi_check_portals4_happy" = "yes"; then : - osc_portals4_LDFLAGS="$osc_portals4_LDFLAGS $opal_check_portals4_LDFLAGS" - osc_portals4_CPPFLAGS="$osc_portals4_CPPFLAGS $opal_check_portals4_CPPFLAGS" - osc_portals4_LIBS="$osc_portals4_LIBS $opal_check_portals4_LIBS" - osc_portals4_happy="yes" + + # see comment above + unset ac_cv_search_ucp_cleanup + opal_check_package_lib_happy="no" + if test "$ompi_check_ucx_libdir" != ""; then : + # libdir was specified - search only there + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 else - if test ! -z "$with_portals4" && test "$with_portals4" != "no"; then : - as_fn_error $? "Portals4 support requested but not found. Aborting" "$LINENO" 5 + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res fi - osc_portals4_happy="no" +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : - - if test "$osc_portals4_happy" = "yes"; then : - osc_portals4_WRAPPER_EXTRA_LDFLAGS="$osc_portals4_LDFLAGS" - osc_portals4_WRAPPER_EXTRA_LIBS="$osc_portals4_LIBS" - should_build=$should_build else - should_build=0 + ac_cv_search_ucp_cleanup=no fi - - # need to propogate CPPFLAGS to all of OMPI - if test "$DIRECT_osc" = "portals4"; then : - CPPFLAGS="$CPPFLAGS $osc_portals4_CPPFLAGS" +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - # substitute in the things needed to build portals4 - + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_ucx_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi - if test "$should_build" = "1"; then : + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/osc/portals4/post_configure.sh" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components portals4" + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components portals4" - else - if test "osc" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/osc/portals4/lib${OMPI_LIB_PREFIX}mca_osc_portals4.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/osc/portals4/libmca_osc_portals4.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_osc_portals4_component;" >> $outfile.extern - echo " &mca_osc_portals4_component, " >> $outfile.struct - static_components="$static_components portals4" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:portals4 can compile" >&5 -$as_echo_n "checking if MCA component osc:portals4 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_osc" = "portals4" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_osc_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** osc component portals4 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_osc" = "portals4" ; then -as_fn_error $? "*** osc component portals4 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi +fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$osc_portals4_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -319478,7 +347286,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -319497,56 +347305,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $osc_portals4_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -319559,7 +347327,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -319578,7 +347346,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -319586,187 +347354,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_portals4_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ucp_cleanup (void); +int main(int argc, char *argv[]) { + ucp_cleanup (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:347381: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:347388: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs ucp" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones -fi - if test "$osc_portals4_WRAPPER_EXTRA_LIBS" = ""; then : +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $osc_portals4_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + + libnl_sane=0 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + opal_libnlv3_libs="$opal_libnlv3_libs ucp" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs +# Go through each item in the variable and only keep the unique ones - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # Loop over every token we've seen so far - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. -else + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi +done - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Take all the items in the "array" and assemble them back into a +# single variable - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - for arg in $osc_portals4_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -319790,75 +347647,10 @@ done -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$osc_portals4_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $osc_portals4_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -319881,266 +347673,332 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring osc_portals4_WRAPPER_EXTRA_CPPFLAGS ($osc_portals4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring osc_portals4_WRAPPER_EXTRA_CPPFLAGS ($osc_portals4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi + fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ucp_cleanup" != "no" && + test "$ac_cv_search_ucp_cleanup" != "none required"; then : + ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" else + ompi_check_ucx_LIBS="-luct -lucm -lucs" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:portals4 can compile" >&5 -$as_echo_n "checking if MCA component osc:portals4 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_osc" = "portals4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"portals4\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"portals4\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_osc" ; then - if test "$DIRECT_osc" = "portals4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"portals4\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"portals4\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - # add component to all component list - all_components="$all_components portals4" +else + opal_check_package_happy="no" fi +else - - if test "$should_build" = "1"; then : + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag PORTALS4" >&5 -$as_echo_n "checking for index in endpoint array for tag PORTALS4... " >&6; } - if test -z "$OMPI_PROC_ENDPOINT_TAG_PORTALS4"; then : - OMPI_PROC_ENDPOINT_TAG_PORTALS4=$ompi_endpoint_tag_counter + # see comment above + unset ac_cv_search_ucp_cleanup + opal_check_package_lib_happy="no" + if test "$ompi_check_ucx_libdir" != ""; then : + # libdir was specified - search only there + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -cat >>confdefs.h <<_ACEOF -#define OMPI_PROC_ENDPOINT_TAG_PORTALS4 $OMPI_PROC_ENDPOINT_TAG_PORTALS4 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} _ACEOF - - ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_PORTALS4" >&5 -$as_echo "$OMPI_PROC_ENDPOINT_TAG_PORTALS4" >&6; } - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_osc_portals4_DSO=1 else - BUILD_ompi_osc_portals4_DSO=0 + ac_cv_search_ucp_cleanup=no fi - if test "$BUILD_ompi_osc_portals4_DSO" = "1"; then - MCA_BUILD_ompi_osc_portals4_DSO_TRUE= - MCA_BUILD_ompi_osc_portals4_DSO_FALSE='#' -else - MCA_BUILD_ompi_osc_portals4_DSO_TRUE='#' - MCA_BUILD_ompi_osc_portals4_DSO_FALSE= +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - - - if test "$should_build" = "1"; then : - components_last_result=1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - components_last_result=0 + opal_check_package_lib_happy="no" fi - unset compile_mode - - - - - - opal_show_subsubsubtitle "MCA component osc:pt2pt (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/ompi/mca/osc/pt2pt" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_osc" ; then - if test "$DIRECT_osc" = "pt2pt" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_ucx_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # if we were explicitly disabled, don't build :) - if test "$DISABLE_osc" = "1"; then : - want_component=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res fi - if test "$DISABLE_osc_pt2pt" = "1"; then : - want_component=0 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed else - should_build=0 + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_osc" - SHARED_COMPONENT="$DSO_osc_pt2pt" - - STATIC_FRAMEWORK="$STATIC_osc" - STATIC_COMPONENT="$STATIC_osc_pt2pt" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component osc:pt2pt compile mode" >&5 -$as_echo_n "checking for MCA component osc:pt2pt compile mode... " >&6; } - if test "$DIRECT_osc" = "pt2pt" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files ompi/mca/osc/pt2pt/Makefile" - - should_build=$should_build - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/osc/pt2pt/post_configure.sh" +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components pt2pt" +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components pt2pt" - else - if test "osc" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/osc/pt2pt/lib${OMPI_LIB_PREFIX}mca_osc_pt2pt.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/osc/pt2pt/libmca_osc_pt2pt.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_osc_pt2pt_component;" >> $outfile.extern - echo " &mca_osc_pt2pt_component, " >> $outfile.struct - static_components="$static_components pt2pt" - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi +fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:pt2pt can compile" >&5 -$as_echo_n "checking if MCA component osc:pt2pt can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_osc" = "pt2pt" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_osc_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** osc component pt2pt was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_osc" = "pt2pt" ; then -as_fn_error $? "*** osc component pt2pt was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$osc_pt2pt_WRAPPER_EXTRA_LDFLAGS" = ""; then : +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -320153,7 +348011,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -320172,56 +348030,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $osc_pt2pt_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -320234,7 +348052,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -320253,7 +348071,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -320261,25 +348079,277 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_pt2pt_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ucp_cleanup (void); +int main(int argc, char *argv[]) { + ucp_cleanup (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:348106: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:348113: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} + +fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + + libnl_sane=0 +fi + + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs ucp" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi + fi + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs ucp" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi + +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -320302,65 +348372,54 @@ done -fi - if test "$osc_pt2pt_WRAPPER_EXTRA_LIBS" = ""; then : - + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - for arg in $osc_pt2pt_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ucp_cleanup" != "no" && + test "$ac_cv_search_ucp_cleanup" != "none required"; then : + ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" +else + ompi_check_ucx_LIBS="-luct -lucm -lucs" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -320384,98 +348443,414 @@ done + + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_ucx_happy="yes" else + ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" + ompi_check_ucx_happy="no" +fi + CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + CPPFLAGS="$ompi_check_ucx_osc_ucx_save_CPPFLAGS" + LDFLAGS="$ompi_check_ucx_osc_ucx_save_LDFLAGS" + LIBS="$ompi_check_ucx_osc_ucx_save_LIBS" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + if test "$ompi_check_ucx_happy" = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 +$as_echo_n "checking for UCX version compatibility... " >&6; } - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + old_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ompi_check_ucx_happy="yes" +else + ompi_check_ucx_happy="no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 +$as_echo "$ompi_check_ucx_happy" >&6; } + CPPFLAGS=$old_CPPFLAGS +fi +fi + old_CPPFLAGS="$CPPFLAGS" + if test -n "$ompi_check_ucx_dir"; then : + CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" +fi + # Turn off UCX version v1.8 due to issue #8321 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking UCX version" >&5 +$as_echo_n "checking UCX version... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #if (UCP_API_MAJOR == 1) && (UCP_API_MINOR == 8) + #error "Invalid version" + #endif +int +main () +{ - for arg in $osc_pt2pt_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ; + return 0; +} +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok (not 1.8.x)" >&5 +$as_echo "ok (not 1.8.x)" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: bad (1.8.x)" >&5 +$as_echo "bad (1.8.x)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: UCX support skipped because version 1.8.x was found, which has a known catastrophic issue." >&5 +$as_echo "$as_me: WARNING: UCX support skipped because version 1.8.x was found, which has a known catastrophic issue." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Please upgrade to UCX version 1.9 or higher." >&5 +$as_echo "$as_me: WARNING: Please upgrade to UCX version 1.9 or higher." >&2;} + ompi_check_ucx_happy=no fi - done +rm -f conftest.err conftest.i conftest.$ac_ext + if test "$ompi_check_ucx_happy" = yes; then : + + ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbr" "ac_cv_have_decl_ucp_tag_send_nbr" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_nbr" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_SEND_NBR $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + +$as_echo "#define HAVE_UCP_TAG_SEND_NBR 1" >>confdefs.h + +fi + + ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nb" "ac_cv_have_decl_ucp_ep_flush_nb" "#include +" +if test "x$ac_cv_have_decl_ucp_ep_flush_nb" = xyes; then : + ac_have_decl=1 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_EP_FLUSH_NB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_worker_flush_nb" "ac_cv_have_decl_ucp_worker_flush_nb" "#include +" +if test "x$ac_cv_have_decl_ucp_worker_flush_nb" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_WORKER_FLUSH_NB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_request_check_status" "ac_cv_have_decl_ucp_request_check_status" "#include +" +if test "x$ac_cv_have_decl_ucp_request_check_status" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - done +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_REQUEST_CHECK_STATUS $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_put_nb" "ac_cv_have_decl_ucp_put_nb" "#include +" +if test "x$ac_cv_have_decl_ucp_put_nb" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_PUT_NB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_get_nb" "ac_cv_have_decl_ucp_get_nb" "#include +" +if test "x$ac_cv_have_decl_ucp_get_nb" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_GET_NB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_put_nbx" "ac_cv_have_decl_ucp_put_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_put_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_PUT_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_get_nbx" "ac_cv_have_decl_ucp_get_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_get_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_GET_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_atomic_op_nbx" "ac_cv_have_decl_ucp_atomic_op_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_atomic_op_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_OP_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nbx" "ac_cv_have_decl_ucp_ep_flush_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_ep_flush_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_EP_FLUSH_NBX $ac_have_decl +_ACEOF + + ac_fn_c_check_decl "$LINENO" "ucm_test_events" "ac_cv_have_decl_ucm_test_events" "#include +" +if test "x$ac_cv_have_decl_ucm_test_events" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCM_TEST_EVENTS $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucm_test_external_events" "ac_cv_have_decl_ucm_test_external_events" "#include +" +if test "x$ac_cv_have_decl_ucm_test_external_events" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCM_TEST_EXTERNAL_EVENTS $ac_have_decl +_ACEOF + + ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_AND" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_POST_OP_AND $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_OR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_POST_OP_OR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_XOR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_POST_OP_XOR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FAND" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FAND $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FOR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FXOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FXOR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "#include +" +if test "x$ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" "ac_cv_have_decl_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" "#include +" +if test "x$ac_cv_have_decl_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_OP_ATTR_FLAG_MULTI_SEND" "ac_cv_have_decl_UCP_OP_ATTR_FLAG_MULTI_SEND" "#include +" +if test "x$ac_cv_have_decl_UCP_OP_ATTR_FLAG_MULTI_SEND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_OP_ATTR_FLAG_MULTI_SEND $ac_have_decl +_ACEOF + + ac_fn_c_check_decl "$LINENO" "UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "#include +" +if test "x$ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + +$as_echo "#define HAVE_UCP_WORKER_ADDRESS_FLAGS 1" >>confdefs.h + +fi + + ac_fn_c_check_decl "$LINENO" "UCP_ATTR_FIELD_MEMORY_TYPES" "ac_cv_have_decl_UCP_ATTR_FIELD_MEMORY_TYPES" "#include +" +if test "x$ac_cv_have_decl_UCP_ATTR_FIELD_MEMORY_TYPES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATTR_FIELD_MEMORY_TYPES $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + +$as_echo "#define HAVE_UCP_ATTR_MEMORY_TYPES 1" >>confdefs.h + +fi + + ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbx" "ac_cv_have_decl_ucp_tag_send_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_SEND_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_tag_send_sync_nbx" "ac_cv_have_decl_ucp_tag_send_sync_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_sync_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_SEND_SYNC_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_tag_recv_nbx" "ac_cv_have_decl_ucp_tag_recv_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_recv_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_RECV_NBX $ac_have_decl +_ACEOF + + ac_fn_c_check_type "$LINENO" "ucp_request_param_t" "ac_cv_type_ucp_request_param_t" "#include +" +if test "x$ac_cv_type_ucp_request_param_t" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UCP_REQUEST_PARAM_T 1 +_ACEOF + + +fi + + +fi + CPPFLAGS=$old_CPPFLAGS - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$osc_pt2pt_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : @@ -320488,7 +348863,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -320507,7 +348882,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -320515,24 +348890,20 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_pt2pt_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="Open UCX: $ompi_check_ucx_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi # Unwind the index @@ -320557,174 +348928,59 @@ fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring osc_pt2pt_WRAPPER_EXTRA_CPPFLAGS ($osc_pt2pt_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring osc_pt2pt_WRAPPER_EXTRA_CPPFLAGS ($osc_pt2pt_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:pt2pt can compile" >&5 -$as_echo_n "checking if MCA component osc:pt2pt can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_osc" = "pt2pt" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pt2pt\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pt2pt\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_osc" ; then - if test "$DIRECT_osc" = "pt2pt" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pt2pt\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pt2pt\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components pt2pt" fi + if test "$ompi_check_ucx_happy" = "yes"; then : + osc_ucx_CPPFLAGS="$osc_ucx_CPPFLAGS $ompi_check_ucx_CPPFLAGS" + osc_ucx_LDFLAGS="$osc_ucx_LDFLAGS $ompi_check_ucx_LDFLAGS" + osc_ucx_LIBS="$osc_ucx_LIBS $ompi_check_ucx_LIBS" +$as_echo "#define HAVE_UCX 1" >>confdefs.h - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_osc_pt2pt_DSO=1 -else - BUILD_ompi_osc_pt2pt_DSO=0 -fi - if test "$BUILD_ompi_osc_pt2pt_DSO" = "1"; then - MCA_BUILD_ompi_osc_pt2pt_DSO_TRUE= - MCA_BUILD_ompi_osc_pt2pt_DSO_FALSE='#' + osc_ucx_happy="yes" else - MCA_BUILD_ompi_osc_pt2pt_DSO_TRUE='#' - MCA_BUILD_ompi_osc_pt2pt_DSO_FALSE= + if test ! -z "$with_ucx" && test "$with_ucx" != "no"; then : + as_fn_error $? "UCX support requested but not found. Aborting" "$LINENO" 5 fi +$as_echo "#define HAVE_UCX 0" >>confdefs.h - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 + osc_ucx_happy="no" fi - unset compile_mode - - - - - - opal_show_subsubsubtitle "MCA component osc:rdma (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/ompi/mca/osc/rdma" - want_component=0 - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_osc" ; then - if test "$DIRECT_osc" = "rdma" ; then - want_component=1 - else - want_component=0 - fi - fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_osc" = "1"; then : - want_component=0 -fi - if test "$DISABLE_osc_rdma" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_osc" - SHARED_COMPONENT="$DSO_osc_rdma" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - STATIC_FRAMEWORK="$STATIC_osc" - STATIC_COMPONENT="$STATIC_osc_rdma" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component osc:rdma compile mode" >&5 -$as_echo_n "checking for MCA component osc:rdma compile mode... " >&6; } - if test "$DIRECT_osc" = "rdma" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + if test "$osc_ucx_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + # substitute in the things needed to build ucx - # try to configure the component - ac_config_files="$ac_config_files ompi/mca/osc/rdma/Makefile" - should_build=$should_build opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -320734,45 +348990,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/osc/rdma/post_configure.sh" + infile="$srcdir/ompi/mca/osc/ucx/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components rdma" + all_components="$all_components ucx" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components rdma" + dso_components="$dso_components ucx" else if test "osc" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/osc/rdma/lib${OMPI_LIB_PREFIX}mca_osc_rdma.la $static_ltlibs" + static_ltlibs="mca/osc/ucx/lib${OMPI_LIB_PREFIX}mca_osc_ucx.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/osc/rdma/libmca_osc_rdma.la $static_ltlibs" + static_ltlibs="mca/osc/ucx/libmca_osc_ucx.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_osc_rdma_component;" >> $outfile.extern - echo " &mca_osc_rdma_component, " >> $outfile.struct - static_components="$static_components rdma" + echo "extern const mca_base_component_t mca_osc_ucx_component;" >> $outfile.extern + echo " &mca_osc_ucx_component, " >> $outfile.struct + static_components="$static_components ucx" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:rdma can compile" >&5 -$as_echo_n "checking if MCA component osc:rdma can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:ucx can compile" >&5 +$as_echo_n "checking if MCA component osc:ucx can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_osc" = "rdma" ; then + if test "$DIRECT_osc" = "ucx" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_ompi_osc_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** osc component rdma was supposed to be direct-called, but +as_fn_error $? "*** osc component ucx was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -320780,8 +349036,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_osc" = "rdma" ; then -as_fn_error $? "*** osc component rdma was supposed to be direct-called, but + if test "$DIRECT_osc" = "ucx" ; then +as_fn_error $? "*** osc component ucx was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -320796,7 +349052,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$osc_rdma_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$osc_ucx_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -320836,7 +349092,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_rdma_LDFLAGS; do + for arg in $osc_ucx_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -320917,7 +349173,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_rdma_WRAPPER_EXTRA_LDFLAGS; do + for arg in $osc_ucx_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -320959,7 +349215,7 @@ fi - if test "$osc_rdma_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$osc_ucx_WRAPPER_EXTRA_LIBS" = ""; then : @@ -320999,7 +349255,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_rdma_LIBS; do + for arg in $osc_ucx_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -321080,7 +349336,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_rdma_WRAPPER_EXTRA_LIBS; do + for arg in $osc_ucx_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -321111,969 +349367,27 @@ as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$osc_rdma_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $osc_rdma_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring osc_rdma_WRAPPER_EXTRA_CPPFLAGS ($osc_rdma_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring osc_rdma_WRAPPER_EXTRA_CPPFLAGS ($osc_rdma_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:rdma can compile" >&5 -$as_echo_n "checking if MCA component osc:rdma can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_osc" = "rdma" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"rdma\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"rdma\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_osc" ; then - if test "$DIRECT_osc" = "rdma" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"rdma\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"rdma\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components rdma" -fi - - - if test "$should_build" = "1"; then : - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag BML" >&5 -$as_echo_n "checking for index in endpoint array for tag BML... " >&6; } - if test -z "$OMPI_PROC_ENDPOINT_TAG_BML"; then : - OMPI_PROC_ENDPOINT_TAG_BML=$ompi_endpoint_tag_counter - -cat >>confdefs.h <<_ACEOF -#define OMPI_PROC_ENDPOINT_TAG_BML $OMPI_PROC_ENDPOINT_TAG_BML -_ACEOF - - ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_BML" >&5 -$as_echo "$OMPI_PROC_ENDPOINT_TAG_BML" >&6; } - -fi - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_osc_rdma_DSO=1 -else - BUILD_ompi_osc_rdma_DSO=0 -fi - if test "$BUILD_ompi_osc_rdma_DSO" = "1"; then - MCA_BUILD_ompi_osc_rdma_DSO_TRUE= - MCA_BUILD_ompi_osc_rdma_DSO_FALSE='#' -else - MCA_BUILD_ompi_osc_rdma_DSO_TRUE='#' - MCA_BUILD_ompi_osc_rdma_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - - unset compile_mode - - - - - - opal_show_subsubsubtitle "MCA component osc:ucx (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/ompi/mca/osc/ucx" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_osc" ; then - if test "$DIRECT_osc" = "ucx" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_osc" = "1"; then : - want_component=0 -fi - if test "$DISABLE_osc_ucx" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_osc" - SHARED_COMPONENT="$DSO_osc_ucx" - - STATIC_FRAMEWORK="$STATIC_osc" - STATIC_COMPONENT="$STATIC_osc_ucx" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component osc:ucx compile mode" >&5 -$as_echo_n "checking for MCA component osc:ucx compile mode... " >&6; } - if test "$DIRECT_osc" = "ucx" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files ompi/mca/osc/ucx/Makefile" - - - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_check_ucx_dir; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_check_ucx_dir\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - if test -z "$ompi_check_ucx_happy"; then : - -# Check whether --with-ucx was given. -if test "${with_ucx+set}" = set; then : - withval=$with_ucx; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx value" >&5 -$as_echo_n "checking --with-ucx value... " >&6; } - if test "$with_ucx" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx)" >&5 -$as_echo "simple no (specified --without-ucx)" >&6; } -else - if test "$with_ucx" = "yes" || test "x$with_ucx" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_ucx"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_ucx not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_ucx/include/ucp/api/ucp.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx)" >&5 -$as_echo "sanity check ok ($with_ucx)" >&6; } - -fi - - -fi - - -fi - - -fi - - -# Check whether --with-ucx-libdir was given. -if test "${with_ucx_libdir+set}" = set; then : - withval=$with_ucx_libdir; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx-libdir value" >&5 -$as_echo_n "checking --with-ucx-libdir value... " >&6; } - if test "$with_ucx_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx-libdir)" >&5 -$as_echo "simple no (specified --without-ucx-libdir)" >&6; } -else - if test "$with_ucx_libdir" = "yes" || test "x$with_ucx_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_ucx_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_ucx_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_ucx_libdir/libucp.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx_libdir)" >&5 -$as_echo "sanity check ok ($with_ucx_libdir)" >&6; } - -fi - - -fi - - -fi - - -fi - - - if test "$with_ucx" != "no"; then : - if test -n "$with_ucx" && test "$with_ucx" != "yes"; then : - ompi_check_ucx_dir="$with_ucx" -else - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ucx" >&5 -$as_echo_n "checking for ucx... " >&6; } - -if test -n "$ucx_CFLAGS"; then - pkg_cv_ucx_CFLAGS="$ucx_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ucx_CFLAGS=`$PKG_CONFIG --cflags "ucx" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$ucx_LIBS"; then - pkg_cv_ucx_LIBS="$ucx_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ucx_LIBS=`$PKG_CONFIG --libs "ucx" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$ucx_STATIC_LIBS"; then - pkg_cv_ucx_STATIC_LIBS="$ucx_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ucx_STATIC_LIBS=`$PKG_CONFIG --libs --static "ucx" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - ucx_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ucx" 2>&1` - else - ucx_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ucx" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$ucx_PKG_ERRORS" >&5 - - true -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - true -else - ucx_CFLAGS=$pkg_cv_ucx_CFLAGS - ucx_LIBS=$pkg_cv_ucx_LIBS - ucx_STATIC_LIBS=$pkg_cv_ucx_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ompi_check_ucx_dir=`$PKG_CONFIG --variable=prefix ucx` - if test "$ompi_check_ucx_dir" = "/usr"; then : - ompi_check_ucx_dir= -fi -fi -fi - ompi_check_ucx_happy="no" - if test -z "$ompi_check_ucx_dir"; then : - - opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" - opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" - - opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" - opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" - opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" - - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_ucp_api_ucp_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in ucp/api/ucp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_ucp_api_ucp_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in ucp/api/ucp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_ucp_cleanup - opal_check_package_lib_happy="no" - if test "" != ""; then : - # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_libnl_sane=1 - case $host in - *linux*) + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$osc_ucx_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -322086,7 +349400,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -322105,7 +349419,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -322113,303 +349427,408 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $osc_ucx_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 -$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ucp_cleanup (void); -int main(int argc, char *argv[]) { - ucp_cleanup (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:322140: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:322147: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring osc_ucx_WRAPPER_EXTRA_CPPFLAGS ($osc_ucx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring osc_ucx_WRAPPER_EXTRA_CPPFLAGS ($osc_ucx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:ucx can compile" >&5 +$as_echo_n "checking if MCA component osc:ucx can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 + # If this component was requested as the default for this + # type, then abort. + if test "$with_osc" = "ucx" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucx\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ucx\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + if test ! -z "$DIRECT_osc" ; then + if test "$DIRECT_osc" = "ucx" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucx\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ucx\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + # add component to all component list + all_components="$all_components ucx" +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - libnl_sane=0 -fi + if test "$should_build" = "1"; then : - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag UCX" >&5 +$as_echo_n "checking for index in endpoint array for tag UCX... " >&6; } + if test -z "$OMPI_PROC_ENDPOINT_TAG_UCX"; then : + OMPI_PROC_ENDPOINT_TAG_UCX=$ompi_endpoint_tag_counter - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs ucp" +cat >>confdefs.h <<_ACEOF +#define OMPI_PROC_ENDPOINT_TAG_UCX $OMPI_PROC_ENDPOINT_TAG_UCX +_ACEOF -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs + ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_UCX" >&5 +$as_echo "$OMPI_PROC_ENDPOINT_TAG_UCX" >&6; } -# Go through each item in the variable and only keep the unique ones +fi -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_osc_ucx_DSO=1 +else + BUILD_ompi_osc_ucx_DSO=0 +fi + if test "$BUILD_ompi_osc_ucx_DSO" = "1"; then + MCA_BUILD_ompi_osc_ucx_DSO_TRUE= + MCA_BUILD_ompi_osc_ucx_DSO_FALSE='#' +else + MCA_BUILD_ompi_osc_ucx_DSO_TRUE='#' + MCA_BUILD_ompi_osc_ucx_DSO_FALSE= +fi - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + unset compile_mode - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test "1" != "0"; then : - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + for component_path in $srcdir/ompi/mca/osc/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component osc:$component (need to configure)" - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up + component_path="$srcdir/ompi/mca/osc/$component" + want_component=0 -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_osc" ; then + if test "$DIRECT_osc" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + # if we were explicitly disabled, don't build :) + if test "$DISABLE_osc" = "1"; then : + want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_osc_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs ucp" + SHARED_FRAMEWORK="$DSO_osc" + str="SHARED_COMPONENT=\$DSO_osc_$component" + eval $str -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + STATIC_FRAMEWORK="$STATIC_osc" + str="STATIC_COMPONENT=\$STATIC_osc_$component" + eval $str -# Go through each item in the variable and only keep the unique ones + shared_mode_override=static -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Loop over every token we've seen so far + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component osc:$component compile mode" >&5 +$as_echo_n "checking for MCA component osc:$component compile mode... " >&6; } + if test "$DIRECT_osc" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + if test "$should_build" = "1" ; then - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # Increment the counter + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_i="`expr $opal_i + 1`" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done - # If we didn't find the token, add it to the "array" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval +# +# Invoke configure in a specific subdirectory. +# +# ompi/mca/osc/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="ompi/mca/osc/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval +# +# Sanity checks +# - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} -# Done; do the assignment + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } -# Clean up + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + # + # Move into the target directory + # -fi + subdir_parent=`pwd` + cd $subdir_dir - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + # + # Make a "../" for each directory in $subdir_dir. + # - rm -f conftest conftest_c.$ac_ext + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - opal_libnl_sane=$libnl_sane + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + # + # Construct the --cache-file argument + # - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # + # Invoke the configure script in the subdirectory + # - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + # + # Go back to the topdir + # - ;; - esac + cd $subdir_parent +fi + +# +# Clean up +# - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -322431,333 +349850,105 @@ unset $opal_var done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ucp_cleanup" != "no" && - test "$ac_cv_search_ucp_cleanup" != "none required"; then : - ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" -else - ompi_check_ucx_LIBS="-luct -lucm -lucs" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi - - -else - opal_check_package_happy="no" -fi -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_ucp_cleanup - opal_check_package_lib_happy="no" - if test "" != ""; then : - # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/ompi/mca/osc/all_components/post_configure.sh" + if test -f $infile; then -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + osc_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + osc_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/osc/$component/post_configure.sh" - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "osc" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/osc/$component/lib${OMPI_LIB_PREFIX}mca_osc_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/osc/$component/libmca_osc_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_osc_$component_component;" >> $outfile.extern + echo " &mca_osc_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:$component can compile" >&5 +$as_echo_n "checking if MCA component osc:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi -fi + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_osc" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_osc_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** osc component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_osc" = "$component" ; then +as_fn_error $? "*** osc component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$osc_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -322770,7 +349961,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -322789,16 +349980,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + +str="line=\$osc_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -322811,7 +350042,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -322830,7 +350061,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -322838,347 +350069,437 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 -$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ucp_cleanup (void); -int main(int argc, char *argv[]) { - ucp_cleanup (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:322865: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 -opal_status=$? + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:322872: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} + fi -fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + else - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:$component can compile" >&5 +$as_echo_n "checking if MCA component osc:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_osc" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_osc" ; then + if test "$DIRECT_osc" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + fi + fi + done - libnl_sane=0 fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} + MCA_ompi_osc_ALL_COMPONENTS="$all_components" + MCA_ompi_osc_STATIC_COMPONENTS="$static_components" + MCA_ompi_osc_DSO_COMPONENTS="$dso_components" + MCA_ompi_osc_STATIC_LTLIBS="$static_ltlibs" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs ucp" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + MCA_ompi_osc_ALL_SUBDIRS= + for item in $all_components ; do + MCA_ompi_osc_ALL_SUBDIRS="$MCA_ompi_osc_ALL_SUBDIRS mca/osc/$item" + done - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + MCA_ompi_osc_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_ompi_osc_STATIC_SUBDIRS="$MCA_ompi_osc_STATIC_SUBDIRS mca/osc/$item" + done - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" + MCA_ompi_osc_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_ompi_osc_DSO_SUBDIRS="$MCA_ompi_osc_DSO_SUBDIRS mca/osc/$item" done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "osc" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + unset all_components static_components dso_components outfile outfile_real -# Clean up + MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS pml" + MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/pml" + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_pml_ALL_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_pml_DSO_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_pml_STATIC_SUBDIRS)" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/pml/libmca_pml.la" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_pml_STATIC_LTLIBS)" -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + # configure all the components -fi + opal_show_subsubtitle "Configuring MCA framework pml" - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs ucp" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= -# Go through each item in the variable and only keep the unique ones + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=ompi/mca/pml/base + as_dir=$outdir; as_fn_mkdir_p -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # emit Makefile rule + ac_config_files="$ac_config_files ompi/mca/pml/Makefile" - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework pml" >&5 +$as_echo_n "checking for no configure components in framework pml... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: cm" >&5 +$as_echo "cm" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework pml" >&5 +$as_echo_n "checking for m4 configure components in framework pml... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: crcpw, monitoring, ob1, ucx, v, yalla" >&5 +$as_echo "crcpw, monitoring, ob1, ucx, v, yalla" >&6; } - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter + # run the configure logic for the no-config components - opal_i="`expr $opal_i + 1`" - done + opal_show_subsubsubtitle "MCA component pml:cm (no configuration)" - # If we didn't find the token, add it to the "array" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + + + component_path="$srcdir/ompi/mca/pml/cm" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_pml" ; then + if test "$DIRECT_pml" = "cm" ; then + want_component=1 + else + want_component=0 + fi + fi fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # if we were explicitly disabled, don't build :) + if test "$DISABLE_pml" = "1"; then : + want_component=0 +fi + if test "$DISABLE_pml_cm" = "1"; then : + want_component=0 +fi -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + SHARED_FRAMEWORK="$DSO_pml" + SHARED_COMPONENT="$DSO_pml_cm" -# Done; do the assignment + STATIC_FRAMEWORK="$STATIC_pml" + STATIC_COMPONENT="$STATIC_pml_cm" -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + shared_mode_override=static -# Clean up + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pml:cm compile mode" >&5 +$as_echo_n "checking for MCA component pml:cm compile mode... " >&6; } + if test "$DIRECT_pml" = "cm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi -fi + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test "$should_build" = "1" ; then - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/pml/cm/post_configure.sh" - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components cm" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components cm" + else + if test "pml" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pml/cm/lib${OMPI_LIB_PREFIX}mca_pml_cm.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pml/cm/libmca_pml_cm.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_pml_cm_component;" >> $outfile.extern + echo " &mca_pml_cm_component, " >> $outfile.struct + static_components="$static_components cm" fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:cm can compile" >&5 +$as_echo_n "checking if MCA component pml:cm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pml" = "cm" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_pml_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pml component cm was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pml" = "cm" ; then +as_fn_error $? "*** pml component cm was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$pml_cm_WRAPPER_EXTRA_LDFLAGS" = ""; then : - ;; - esac - opal_check_package_libnl_check_ok=$opal_libnl_sane - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ucp_cleanup" != "no" && - test "$ac_cv_search_ucp_cleanup" != "none required"; then : - ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" -else - ompi_check_ucx_LIBS="-luct -lucm -lucs" + for arg in $pml_cm_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -323202,78 +350523,7 @@ done - - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_ucx_happy="yes" -else - ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" - ompi_check_ucx_happy="no" -fi - - CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" - - if test "$ompi_check_ucx_happy" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 -$as_echo_n "checking for UCX version compatibility... " >&6; } - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ompi_check_ucx_happy="yes" -else - ompi_check_ucx_happy="no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 -$as_echo "$ompi_check_ucx_happy" >&6; } -fi - if test "$ompi_check_ucx_happy" = "no"; then : - ompi_check_ucx_dir=/opt/ucx -fi -fi - if test "$ompi_check_ucx_happy" != yes; then : - if test -n "$with_ucx_libdir"; then : - ompi_check_ucx_libdir="$with_ucx_libdir" -else - files=`ls $ompi_check_ucx_dir/lib64/libucp.* 2> /dev/null | wc -l` - if test "$files" -gt 0; then : - ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib64 else - ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib -fi -fi - - ompi_check_ucx_osc_ucx_save_CPPFLAGS="$CPPFLAGS" - ompi_check_ucx_osc_ucx_save_LDFLAGS="$LDFLAGS" - ompi_check_ucx_osc_ucx_save_LIBS="$LIBS" - - - opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" - opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" - - opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" - opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" - opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" - - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering @@ -323286,7 +350536,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -323305,7 +350555,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -323313,357 +350563,49 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_ucp_api_ucp_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_ucx_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in ucp/api/ucp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_ucp_api_ucp_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in ucp/api/ucp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_ucp_cleanup - opal_check_package_lib_happy="no" - if test "$ompi_check_ucx_libdir" != ""; then : - # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_ucx_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + for arg in $pml_cm_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + +fi + if test "$pml_cm_WRAPPER_EXTRA_LIBS" = ""; then : @@ -323676,7 +350618,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -323695,16 +350637,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $pml_cm_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -323717,7 +350699,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -323736,7 +350718,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -323744,276 +350726,443 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $pml_cm_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 -$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ucp_cleanup (void); -int main(int argc, char *argv[]) { - ucp_cleanup (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:323771: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:323778: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} + fi -fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$pml_cm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - libnl_sane=0 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs ucp" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs + for arg in $pml_cm_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Loop over every token we've seen so far + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pml_cm_WRAPPER_EXTRA_CPPFLAGS ($pml_cm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pml_cm_WRAPPER_EXTRA_CPPFLAGS ($pml_cm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi - # Check the ending condition + else - opal_done="`expr $opal_i \>= $opal_count`" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:cm can compile" >&5 +$as_echo_n "checking if MCA component pml:cm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Increment the counter + # If this component was requested as the default for this + # type, then abort. + if test "$with_pml" = "cm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"cm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"cm\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_i="`expr $opal_i + 1`" - done + if test ! -z "$DIRECT_pml" ; then + if test "$DIRECT_pml" = "cm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"cm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"cm\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # If we didn't find the token, add it to the "array" + # add component to all component list + all_components="$all_components cm" + fi - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_ompi_pml_cm_DSO=1 else - opal_i="`expr $opal_i - 1`" + BUILD_ompi_pml_cm_DSO=0 fi -done + if test "$BUILD_ompi_pml_cm_DSO" = "1"; then + MCA_BUILD_ompi_pml_cm_DSO_TRUE= + MCA_BUILD_ompi_pml_cm_DSO_FALSE='#' +else + MCA_BUILD_ompi_pml_cm_DSO_TRUE='#' + MCA_BUILD_ompi_pml_cm_DSO_FALSE= +fi -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + ac_config_files="$ac_config_files ompi/mca/pml/cm/Makefile" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + unset compile_mode -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # configure components that use built-in configuration scripts -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + opal_show_subsubsubtitle "MCA component pml:crcpw (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/ompi/mca/pml/crcpw" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_pml" ; then + if test "$DIRECT_pml" = "crcpw" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_pml" = "1"; then : + want_component=0 +fi + if test "$DISABLE_pml_crcpw" = "1"; then : + want_component=0 fi + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + SHARED_FRAMEWORK="$DSO_pml" + SHARED_COMPONENT="$DSO_pml_crcpw" - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs ucp" + STATIC_FRAMEWORK="$STATIC_pml" + STATIC_COMPONENT="$STATIC_pml_crcpw" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + shared_mode_override=static -# Go through each item in the variable and only keep the unique ones + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pml:crcpw compile mode" >&5 +$as_echo_n "checking for MCA component pml:crcpw compile mode... " >&6; } + if test "$DIRECT_pml" = "crcpw" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # try to configure the component - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + ac_config_files="$ac_config_files ompi/mca/pml/crcpw/Makefile" - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + # If we don't want FT, don't compile this component + if test "$opal_want_ft_cr" = "1"; then : + should_build=$should_build +else + should_build=0 +fi - opal_done="`expr $opal_i \>= $opal_count`" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - # Increment the counter + if test "$should_build" = "1"; then : - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/pml/crcpw/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components crcpw" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components crcpw" else - opal_i="`expr $opal_i - 1`" + if test "pml" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pml/crcpw/lib${OMPI_LIB_PREFIX}mca_pml_crcpw.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pml/crcpw/libmca_pml_crcpw.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_pml_crcpw_component;" >> $outfile.extern + echo " &mca_pml_crcpw_component, " >> $outfile.struct + static_components="$static_components crcpw" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:crcpw can compile" >&5 +$as_echo_n "checking if MCA component pml:crcpw can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pml" = "crcpw" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_pml_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pml component crcpw was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pml" = "crcpw" ; then +as_fn_error $? "*** pml component crcpw was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$pml_crcpw_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + for arg in $pml_crcpw_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -324037,10 +351186,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $pml_crcpw_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -324063,332 +351267,89 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ucp_cleanup" != "no" && - test "$ac_cv_search_ucp_cleanup" != "none required"; then : - ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" -else - ompi_check_ucx_LIBS="-luct -lucm -lucs" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi - - -else - opal_check_package_happy="no" -fi -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_ucp_cleanup - opal_check_package_lib_happy="no" - if test "$ompi_check_ucx_libdir" != ""; then : - # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_ucx_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : + if test "$pml_crcpw_WRAPPER_EXTRA_LIBS" = ""; then : -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : -else - ac_cv_search_ucp_cleanup=no + for arg in $pml_crcpw_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -324401,7 +351362,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -324420,16 +351381,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $pml_crcpw_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$pml_crcpw_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -324442,7 +351453,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -324461,7 +351472,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -324469,276 +351480,350 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $pml_crcpw_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 -$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ucp_cleanup (void); -int main(int argc, char *argv[]) { - ucp_cleanup (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:324496: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:324503: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pml_crcpw_WRAPPER_EXTRA_CPPFLAGS ($pml_crcpw_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pml_crcpw_WRAPPER_EXTRA_CPPFLAGS ($pml_crcpw_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} - -fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:crcpw can compile" >&5 +$as_echo_n "checking if MCA component pml:crcpw can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_pml" = "crcpw" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"crcpw\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"crcpw\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + if test ! -z "$DIRECT_pml" ; then + if test "$DIRECT_pml" = "crcpw" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"crcpw\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"crcpw\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - libnl_sane=0 + # add component to all component list + all_components="$all_components crcpw" fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - libnl_sane=0 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_pml_crcpw_DSO=1 else - opal_libnlv1_libs="$opal_libnlv1_libs ucp" + BUILD_ompi_pml_crcpw_DSO=0 +fi + if test "$BUILD_ompi_pml_crcpw_DSO" = "1"; then + MCA_BUILD_ompi_pml_crcpw_DSO_TRUE= + MCA_BUILD_ompi_pml_crcpw_DSO_FALSE='#' +else + MCA_BUILD_ompi_pml_crcpw_DSO_TRUE='#' + MCA_BUILD_ompi_pml_crcpw_DSO_FALSE= +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + unset compile_mode - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + opal_show_subsubsubtitle "MCA component pml:monitoring (m4 configuration macro)" - opal_done="`expr $opal_i \>= $opal_count`" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" + component_path="$srcdir/ompi/mca/pml/monitoring" + want_component=0 - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_pml" ; then + if test "$DIRECT_pml" = "monitoring" ; then + want_component=1 + else + want_component=0 + fi + fi fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # if we were explicitly disabled, don't build :) + if test "$DISABLE_pml" = "1"; then : + want_component=0 +fi + if test "$DISABLE_pml_monitoring" = "1"; then : + want_component=0 +fi -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + SHARED_FRAMEWORK="$DSO_pml" + SHARED_COMPONENT="$DSO_pml_monitoring" -# Done; do the assignment + STATIC_FRAMEWORK="$STATIC_pml" + STATIC_COMPONENT="$STATIC_pml_monitoring" -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + shared_mode_override=static -# Clean up + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pml:monitoring compile mode" >&5 +$as_echo_n "checking for MCA component pml:monitoring compile mode... " >&6; } + if test "$DIRECT_pml" = "monitoring" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi -fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} + # try to configure the component - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + ac_config_files="$ac_config_files ompi/mca/pml/monitoring/Makefile" - libnl_sane=0 + + if test "$MCA_BUILD_ompi_common_monitoring_DSO_TRUE" = ''; then : + should_build=$should_build else - opal_libnlv3_libs="$opal_libnlv3_libs ucp" + should_build=0 +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" -# Go through each item in the variable and only keep the unique ones + if test "$should_build" = "1"; then : -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/pml/monitoring/post_configure.sh" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components monitoring" - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components monitoring" + else + if test "pml" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pml/monitoring/lib${OMPI_LIB_PREFIX}mca_pml_monitoring.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pml/monitoring/libmca_pml_monitoring.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_pml_monitoring_component;" >> $outfile.extern + echo " &mca_pml_monitoring_component, " >> $outfile.struct + static_components="$static_components monitoring" + fi - # Check the ending condition + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:monitoring can compile" >&5 +$as_echo_n "checking if MCA component pml:monitoring can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - opal_done="`expr $opal_i \>= $opal_count`" + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pml" = "monitoring" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_pml_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pml component monitoring was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pml" = "monitoring" ; then +as_fn_error $? "*** pml component monitoring was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - # Increment the counter + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$pml_monitoring_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# Done; do the assignment + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 + for arg in $pml_monitoring_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - + done fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -324762,54 +351847,64 @@ done - ;; - esac +else - opal_check_package_libnl_check_ok=$opal_libnl_sane - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ucp_cleanup" != "no" && - test "$ac_cv_search_ucp_cleanup" != "none required"; then : - ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" -else - ompi_check_ucx_LIBS="-luct -lucm -lucs" + for arg in $pml_monitoring_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -324833,241 +351928,180 @@ done - - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_ucx_happy="yes" -else - ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" - ompi_check_ucx_happy="no" fi + if test "$pml_monitoring_WRAPPER_EXTRA_LIBS" = ""; then : - CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" - CPPFLAGS="$ompi_check_ucx_osc_ucx_save_CPPFLAGS" - LDFLAGS="$ompi_check_ucx_osc_ucx_save_LDFLAGS" - LIBS="$ompi_check_ucx_osc_ucx_save_LIBS" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - if test "$ompi_check_ucx_happy" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 -$as_echo_n "checking for UCX version compatibility... " >&6; } + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - old_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ompi_check_ucx_happy="yes" -else - ompi_check_ucx_happy="no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 -$as_echo "$ompi_check_ucx_happy" >&6; } - CPPFLAGS=$old_CPPFLAGS -fi -fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - old_CPPFLAGS="$CPPFLAGS" - if test -n "$ompi_check_ucx_dir"; then : - CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" + + for arg in $pml_monitoring_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbr" "ac_cv_have_decl_ucp_tag_send_nbr" "#include -" -if test "x$ac_cv_have_decl_ucp_tag_send_nbr" = xyes; then : - ac_have_decl=1 + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - ac_have_decl=0 + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi +fi + done -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_TAG_SEND_NBR $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : -$as_echo "#define HAVE_UCP_TAG_SEND_NBR 1" >>confdefs.h + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nb" "ac_cv_have_decl_ucp_ep_flush_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_ep_flush_nb" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_EP_FLUSH_NB $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_worker_flush_nb" "ac_cv_have_decl_ucp_worker_flush_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_worker_flush_nb" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_WORKER_FLUSH_NB $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_request_check_status" "ac_cv_have_decl_ucp_request_check_status" "#include -" -if test "x$ac_cv_have_decl_ucp_request_check_status" = xyes; then : - ac_have_decl=1 else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_REQUEST_CHECK_STATUS $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_put_nb" "ac_cv_have_decl_ucp_put_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_put_nb" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_PUT_NB $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_get_nb" "ac_cv_have_decl_ucp_get_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_get_nb" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_GET_NB $ac_have_decl -_ACEOF + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - ac_fn_c_check_decl "$LINENO" "ucm_test_events" "ac_cv_have_decl_ucm_test_events" "#include -" -if test "x$ac_cv_have_decl_ucm_test_events" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCM_TEST_EVENTS $ac_have_decl -_ACEOF + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_AND" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_POST_OP_AND $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_OR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_POST_OP_OR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_XOR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_POST_OP_XOR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FAND" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 + for arg in $pml_monitoring_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FAND $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 + done fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FOR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FXOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" = xyes; then : - ac_have_decl=1 + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - ac_have_decl=0 + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FXOR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "#include -" -if test "x$ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 fi + done -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN $ac_have_decl -_ACEOF - ac_fn_c_check_decl "$LINENO" "UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "#include -" -if test "x$ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -$as_echo "#define HAVE_UCP_WORKER_ADDRESS_FLAGS 1" >>confdefs.h fi - CPPFLAGS=$old_CPPFLAGS + fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$pml_monitoring_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -325080,7 +352114,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -325099,7 +352133,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -325107,20 +352141,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Open UCX: $ompi_check_ucx_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + for arg in $pml_monitoring_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done # Unwind the index @@ -325145,59 +352183,174 @@ fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pml_monitoring_WRAPPER_EXTRA_CPPFLAGS ($pml_monitoring_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pml_monitoring_WRAPPER_EXTRA_CPPFLAGS ($pml_monitoring_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi fi - if test "$ompi_check_ucx_happy" = "yes"; then : - osc_ucx_CPPFLAGS="$osc_ucx_CPPFLAGS $ompi_check_ucx_CPPFLAGS" - osc_ucx_LDFLAGS="$osc_ucx_LDFLAGS $ompi_check_ucx_LDFLAGS" - osc_ucx_LIBS="$osc_ucx_LIBS $ompi_check_ucx_LIBS" +else -$as_echo "#define HAVE_UCX 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:monitoring can compile" >&5 +$as_echo_n "checking if MCA component pml:monitoring can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - osc_ucx_happy="yes" + # If this component was requested as the default for this + # type, then abort. + if test "$with_pml" = "monitoring" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"monitoring\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"monitoring\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_pml" ; then + if test "$DIRECT_pml" = "monitoring" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"monitoring\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"monitoring\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components monitoring" +fi + + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_pml_monitoring_DSO=1 else - if test ! -z "$with_ucx" && test "$with_ucx" != "no"; then : - as_fn_error $? "UCX support requested but not found. Aborting" "$LINENO" 5 + BUILD_ompi_pml_monitoring_DSO=0 +fi + if test "$BUILD_ompi_pml_monitoring_DSO" = "1"; then + MCA_BUILD_ompi_pml_monitoring_DSO_TRUE= + MCA_BUILD_ompi_pml_monitoring_DSO_FALSE='#' +else + MCA_BUILD_ompi_pml_monitoring_DSO_TRUE='#' + MCA_BUILD_ompi_pml_monitoring_DSO_FALSE= fi -$as_echo "#define HAVE_UCX 0" >>confdefs.h - osc_ucx_happy="no" + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 fi + unset compile_mode - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + opal_show_subsubsubtitle "MCA component pml:ob1 (m4 configuration macro)" - if test "$osc_ucx_happy" = "yes"; then : - should_build=$should_build + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/ompi/mca/pml/ob1" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_pml" ; then + if test "$DIRECT_pml" = "ob1" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_pml" = "1"; then : + want_component=0 +fi + if test "$DISABLE_pml_ob1" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else should_build=0 fi - # substitute in the things needed to build ucx + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + SHARED_FRAMEWORK="$DSO_pml" + SHARED_COMPONENT="$DSO_pml_ob1" + + STATIC_FRAMEWORK="$STATIC_pml" + STATIC_COMPONENT="$STATIC_pml_ob1" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pml:ob1 compile mode" >&5 +$as_echo_n "checking for MCA component pml:ob1 compile mode... " >&6; } + if test "$DIRECT_pml" = "ob1" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + # try to configure the component + ac_config_files="$ac_config_files ompi/mca/pml/ob1/Makefile" + should_build=$should_build opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -325207,45 +352360,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/osc/ucx/post_configure.sh" + infile="$srcdir/ompi/mca/pml/ob1/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ucx" + all_components="$all_components ob1" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ucx" + dso_components="$dso_components ob1" else - if test "osc" = "common"; then + if test "pml" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/osc/ucx/lib${OMPI_LIB_PREFIX}mca_osc_ucx.la $static_ltlibs" + static_ltlibs="mca/pml/ob1/lib${OMPI_LIB_PREFIX}mca_pml_ob1.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/osc/ucx/libmca_osc_ucx.la $static_ltlibs" + static_ltlibs="mca/pml/ob1/libmca_pml_ob1.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_osc_ucx_component;" >> $outfile.extern - echo " &mca_osc_ucx_component, " >> $outfile.struct - static_components="$static_components ucx" + echo "extern const mca_base_component_t mca_pml_ob1_component;" >> $outfile.extern + echo " &mca_pml_ob1_component, " >> $outfile.struct + static_components="$static_components ob1" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:ucx can compile" >&5 -$as_echo_n "checking if MCA component osc:ucx can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:ob1 can compile" >&5 +$as_echo_n "checking if MCA component pml:ob1 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_osc" = "ucx" ; then + if test "$DIRECT_pml" = "ob1" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_osc_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_pml_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** osc component ucx was supposed to be direct-called, but +as_fn_error $? "*** pml component ob1 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -325253,8 +352406,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_osc" = "ucx" ; then -as_fn_error $? "*** osc component ucx was supposed to be direct-called, but + if test "$DIRECT_pml" = "ob1" ; then +as_fn_error $? "*** pml component ob1 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -325269,7 +352422,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$osc_ucx_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$pml_ob1_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -325309,7 +352462,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_ucx_LDFLAGS; do + for arg in $pml_ob1_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -325390,7 +352543,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_ucx_WRAPPER_EXTRA_LDFLAGS; do + for arg in $pml_ob1_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -325432,7 +352585,7 @@ fi - if test "$osc_ucx_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$pml_ob1_WRAPPER_EXTRA_LIBS" = ""; then : @@ -325472,7 +352625,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_ucx_LIBS; do + for arg in $pml_ob1_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -325553,7 +352706,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_ucx_WRAPPER_EXTRA_LIBS; do + for arg in $pml_ob1_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -325601,7 +352754,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$osc_ucx_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$pml_ob1_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -325644,7 +352797,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $osc_ucx_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $pml_ob1_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -325687,32 +352840,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring osc_ucx_WRAPPER_EXTRA_CPPFLAGS ($osc_ucx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring osc_ucx_WRAPPER_EXTRA_CPPFLAGS ($osc_ucx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pml_ob1_WRAPPER_EXTRA_CPPFLAGS ($pml_ob1_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pml_ob1_WRAPPER_EXTRA_CPPFLAGS ($pml_ob1_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:ucx can compile" >&5 -$as_echo_n "checking if MCA component osc:ucx can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:ob1 can compile" >&5 +$as_echo_n "checking if MCA component pml:ob1 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_osc" = "ucx" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucx\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ucx\" failed to configure properly" >&2;} + if test "$with_pml" = "ob1" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ob1\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ob1\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_osc" ; then - if test "$DIRECT_osc" = "ucx" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucx\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ucx\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_pml" ; then + if test "$DIRECT_pml" = "ob1" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ob1\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ob1\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -325720,42 +352873,42 @@ fi # add component to all component list - all_components="$all_components ucx" + all_components="$all_components ob1" fi if test "$should_build" = "1"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag UCX" >&5 -$as_echo_n "checking for index in endpoint array for tag UCX... " >&6; } - if test -z "$OMPI_PROC_ENDPOINT_TAG_UCX"; then : - OMPI_PROC_ENDPOINT_TAG_UCX=$ompi_endpoint_tag_counter + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag BML" >&5 +$as_echo_n "checking for index in endpoint array for tag BML... " >&6; } + if test -z "$OMPI_PROC_ENDPOINT_TAG_BML"; then : + OMPI_PROC_ENDPOINT_TAG_BML=$ompi_endpoint_tag_counter cat >>confdefs.h <<_ACEOF -#define OMPI_PROC_ENDPOINT_TAG_UCX $OMPI_PROC_ENDPOINT_TAG_UCX +#define OMPI_PROC_ENDPOINT_TAG_BML $OMPI_PROC_ENDPOINT_TAG_BML _ACEOF ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_UCX" >&5 -$as_echo "$OMPI_PROC_ENDPOINT_TAG_UCX" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_BML" >&5 +$as_echo "$OMPI_PROC_ENDPOINT_TAG_BML" >&6; } fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_ompi_osc_ucx_DSO=1 + BUILD_ompi_pml_ob1_DSO=1 else - BUILD_ompi_osc_ucx_DSO=0 + BUILD_ompi_pml_ob1_DSO=0 fi - if test "$BUILD_ompi_osc_ucx_DSO" = "1"; then - MCA_BUILD_ompi_osc_ucx_DSO_TRUE= - MCA_BUILD_ompi_osc_ucx_DSO_FALSE='#' + if test "$BUILD_ompi_pml_ob1_DSO" = "1"; then + MCA_BUILD_ompi_pml_ob1_DSO_TRUE= + MCA_BUILD_ompi_pml_ob1_DSO_FALSE='#' else - MCA_BUILD_ompi_osc_ucx_DSO_TRUE='#' - MCA_BUILD_ompi_osc_ucx_DSO_FALSE= + MCA_BUILD_ompi_pml_ob1_DSO_TRUE='#' + MCA_BUILD_ompi_pml_ob1_DSO_FALSE= fi @@ -325771,24 +352924,13 @@ - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - - if test "1" != "0"; then : - - for component_path in $srcdir/ompi/mca/osc/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component osc:$component (need to configure)" + opal_show_subsubsubtitle "MCA component pml:ucx (m4 configuration macro)" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/osc/$component" + component_path="$srcdir/ompi/mca/pml/ucx" want_component=0 # build if: @@ -325820,8 +352962,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_osc" ; then - if test "$DIRECT_osc" = "$component" ; then + if test ! -z "$DIRECT_pml" ; then + if test "$DIRECT_pml" = "ucx" ; then want_component=1 else want_component=0 @@ -325830,29 +352972,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_osc" = "1"; then : + if test "$DISABLE_pml" = "1"; then : + want_component=0 +fi + if test "$DISABLE_pml_ucx" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_osc_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_osc" - str="SHARED_COMPONENT=\$DSO_osc_$component" - eval $str + SHARED_FRAMEWORK="$DSO_pml" + SHARED_COMPONENT="$DSO_pml_ucx" - STATIC_FRAMEWORK="$STATIC_osc" - str="STATIC_COMPONENT=\$STATIC_osc_$component" - eval $str + STATIC_FRAMEWORK="$STATIC_pml" + STATIC_COMPONENT="$STATIC_pml_ucx" shared_mode_override=static @@ -325870,9 +353010,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component osc:$component compile mode" >&5 -$as_echo_n "checking for MCA component osc:$component compile mode... " >&6; } - if test "$DIRECT_osc" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pml:ucx compile mode" >&5 +$as_echo_n "checking for MCA component pml:ucx compile mode... " >&6; } + if test "$DIRECT_pml" = "ucx" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -325880,9 +353020,12 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files ompi/mca/pml/ucx/Makefile" + + @@ -325895,7 +353038,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in ompi_check_ucx_dir; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -325914,7 +353057,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_check_ucx_dir\"" eval $opal_str unset opal_str @@ -325922,250 +353065,600 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# ompi/mca/osc/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="ompi/mca/osc/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + if test -z "$ompi_check_ucx_happy"; then : -# -# Sanity checks -# +# Check whether --with-ucx was given. +if test "${with_ucx+set}" = set; then : + withval=$with_ucx; +fi -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx value" >&5 +$as_echo_n "checking --with-ucx value... " >&6; } + if test "$with_ucx" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx)" >&5 +$as_echo "simple no (specified --without-ucx)" >&6; } +else + if test "$with_ucx" = "yes" || test "x$with_ucx" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_ucx"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ucx not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_ucx/include/ucp/api/ucp.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx)" >&5 +$as_echo "sanity check ok ($with_ucx)" >&6; } - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } +fi - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - # - # Move into the target directory - # +fi - subdir_parent=`pwd` - cd $subdir_dir - # - # Make a "../" for each directory in $subdir_dir. - # +fi - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac +fi - # - # Construct the --cache-file argument - # - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" +# Check whether --with-ucx-libdir was given. +if test "${with_ucx_libdir+set}" = set; then : + withval=$with_ucx_libdir; +fi - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx-libdir value" >&5 +$as_echo_n "checking --with-ucx-libdir value... " >&6; } + if test "$with_ucx_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx-libdir)" >&5 +$as_echo "simple no (specified --without-ucx-libdir)" >&6; } +else + if test "$with_ucx_libdir" = "yes" || test "x$with_ucx_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_ucx_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ucx_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_ucx_libdir/libucp.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx_libdir)" >&5 +$as_echo "sanity check ok ($with_ucx_libdir)" >&6; } + +fi - # - # Go back to the topdir - # - cd $subdir_parent fi -# -# Clean up -# +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + +fi + + + if test "$with_ucx" != "no"; then : + if test -n "$with_ucx" && test "$with_ucx" != "yes"; then : + ompi_check_ucx_dir="$with_ucx" +else + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ucx" >&5 +$as_echo_n "checking for ucx... " >&6; } + +if test -n "$ucx_CFLAGS"; then + pkg_cv_ucx_CFLAGS="$ucx_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ucx_CFLAGS=`$PKG_CONFIG --cflags "ucx" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$ucx_LIBS"; then + pkg_cv_ucx_LIBS="$ucx_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ucx_LIBS=`$PKG_CONFIG --libs "ucx" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$ucx_STATIC_LIBS"; then + pkg_cv_ucx_STATIC_LIBS="$ucx_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ucx_STATIC_LIBS=`$PKG_CONFIG --libs --static "ucx" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + ucx_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ucx" 2>&1` + else + ucx_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ucx" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$ucx_PKG_ERRORS" >&5 + + true +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + true +else + ucx_CFLAGS=$pkg_cv_ucx_CFLAGS + ucx_LIBS=$pkg_cv_ucx_LIBS + ucx_STATIC_LIBS=$pkg_cv_ucx_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + ompi_check_ucx_dir=`$PKG_CONFIG --variable=prefix ucx` + if test "$ompi_check_ucx_dir" = "/usr"; then : + ompi_check_ucx_dir= +fi +fi +fi + ompi_check_ucx_happy="no" + if test -z "$ompi_check_ucx_dir"; then : + + opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" + opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" + + opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" + opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" + opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in dir_prefix; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + eval $opal_str + unset opal_str - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/ompi/mca/osc/all_components/post_configure.sh" - if test -f $infile; then + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - osc_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - osc_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_ucp_api_ucp_h + # get rid of the trailing slash(es) + dir_prefix=$(echo | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in ucp/api/ucp.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UCP_API_UCP_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi +done + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_ucp_api_ucp_h +fi +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/osc/$component/post_configure.sh" + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in ucp/api/ucp.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UCP_API_UCP_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" +done - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "osc" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/osc/$component/lib${OMPI_LIB_PREFIX}mca_osc_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/osc/$component/libmca_osc_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_osc_$component_component;" >> $outfile.extern - echo " &mca_osc_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi + if test "$opal_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_ucp_cleanup + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : + +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : + +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : + +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:$component can compile" >&5 -$as_echo_n "checking if MCA component osc:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_osc" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_osc_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** osc component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_osc" = "$component" ; then -as_fn_error $? "*** osc component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi +fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$osc_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -326178,7 +353671,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -326197,56 +353690,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - -str="line=\$osc_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + opal_libnl_sane=1 + case $host in + *linux*) @@ -326259,7 +353712,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -326278,7 +353731,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -326286,438 +353739,303 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ucp_cleanup (void); +int main(int argc, char *argv[]) { + ucp_cleanup (); + return 0; +} +EOF + this_requires_v1=0 + this_requires_v3=0 + result_msg= - fi +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:353766: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 +opal_status=$? - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:353773: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} - else +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component osc:$component can compile" >&5 -$as_echo_n "checking if MCA component osc:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # If this component was requested as the default for this - # type, then abort. - if test "$with_osc" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - if test ! -z "$DIRECT_osc" ; then - if test "$DIRECT_osc" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} - fi - fi - done + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + libnl_sane=0 fi - MCA_ompi_osc_ALL_COMPONENTS="$all_components" - MCA_ompi_osc_STATIC_COMPONENTS="$static_components" - MCA_ompi_osc_DSO_COMPONENTS="$dso_components" - MCA_ompi_osc_STATIC_LTLIBS="$static_ltlibs" + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs ucp" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - MCA_ompi_osc_ALL_SUBDIRS= - for item in $all_components ; do - MCA_ompi_osc_ALL_SUBDIRS="$MCA_ompi_osc_ALL_SUBDIRS mca/osc/$item" - done + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - MCA_ompi_osc_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_ompi_osc_STATIC_SUBDIRS="$MCA_ompi_osc_STATIC_SUBDIRS mca/osc/$item" - done + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - MCA_ompi_osc_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_ompi_osc_DSO_SUBDIRS="$MCA_ompi_osc_DSO_SUBDIRS mca/osc/$item" + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "osc" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS pml" - MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/pml" - MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_pml_ALL_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_pml_DSO_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_pml_STATIC_SUBDIRS)" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/pml/libmca_pml.la" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_pml_STATIC_LTLIBS)" - - # configure all the components - - opal_show_subsubtitle "Configuring MCA framework pml" - - +done +# Take all the items in the "array" and assemble them back into a +# single variable - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=ompi/mca/pml/base - as_dir=$outdir; as_fn_mkdir_p + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # emit Makefile rule - ac_config_files="$ac_config_files ompi/mca/pml/Makefile" + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework pml" >&5 -$as_echo_n "checking for no configure components in framework pml... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cm" >&5 -$as_echo "cm" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework pml" >&5 -$as_echo_n "checking for m4 configure components in framework pml... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: crcpw, monitoring, ob1, ucx, v, yalla" >&5 -$as_echo "crcpw, monitoring, ob1, ucx, v, yalla" >&6; } +# Clean up - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi +fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} - # run the configure logic for the no-config components + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - opal_show_subsubsubtitle "MCA component pml:cm (no configuration)" + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs ucp" - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - component_path="$srcdir/ompi/mca/pml/cm" - want_component=0 + # Loop over every token we've seen so far - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pml" ; then - if test "$DIRECT_pml" = "cm" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # if we were explicitly disabled, don't build :) - if test "$DISABLE_pml" = "1"; then : - want_component=0 -fi - if test "$DISABLE_pml_cm" = "1"; then : - want_component=0 -fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - SHARED_FRAMEWORK="$DSO_pml" - SHARED_COMPONENT="$DSO_pml_cm" + opal_done="`expr $opal_i \>= $opal_count`" - STATIC_FRAMEWORK="$STATIC_pml" - STATIC_COMPONENT="$STATIC_pml_cm" + # Increment the counter - shared_mode_override=static + opal_i="`expr $opal_i + 1`" + done - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + # If we didn't find the token, add it to the "array" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pml:cm compile mode" >&5 -$as_echo_n "checking for MCA component pml:cm compile mode... " >&6; } - if test "$DIRECT_pml" = "cm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + opal_i="`expr $opal_i - 1`" fi +done - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/pml/cm/post_configure.sh" + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components cm" +# Done; do the assignment - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components cm" - else - if test "pml" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pml/cm/lib${OMPI_LIB_PREFIX}mca_pml_cm.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pml/cm/libmca_pml_cm.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_pml_cm_component;" >> $outfile.extern - echo " &mca_pml_cm_component, " >> $outfile.struct - static_components="$static_components cm" - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:cm can compile" >&5 -$as_echo_n "checking if MCA component pml:cm can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +# Clean up - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pml" = "cm" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_pml_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** pml component cm was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pml" = "cm" ; then -as_fn_error $? "*** pml component cm was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pml_cm_WRAPPER_EXTRA_LDFLAGS" = ""; then : +fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_libnl_sane=$libnl_sane - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - for arg in $pml_cm_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -326740,7 +354058,332 @@ done -else + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ucp_cleanup" != "no" && + test "$ac_cv_search_ucp_cleanup" != "none required"; then : + ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" +else + ompi_check_ucx_LIBS="-luct -lucm -lucs" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi + + +else + opal_check_package_happy="no" +fi +else + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # see comment above + unset ac_cv_search_ucp_cleanup + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : + +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : + +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : + +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : + +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -326753,7 +354396,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -326772,57 +354415,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $pml_cm_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - if test "$pml_cm_WRAPPER_EXTRA_LIBS" = ""; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -326835,7 +354437,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -326854,7 +354456,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -326862,25 +354464,277 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_cm_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ucp_cleanup (void); +int main(int argc, char *argv[]) { + ucp_cleanup (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:354491: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:354498: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} + +fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + + libnl_sane=0 +fi + + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs ucp" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi + fi + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs ucp" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi + +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -326903,64 +354757,54 @@ done -else - + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - for arg in $pml_cm_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ucp_cleanup" != "no" && + test "$ac_cv_search_ucp_cleanup" != "none required"; then : + ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" +else + ompi_check_ucx_LIBS="-luct -lucm -lucs" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -326984,17 +354828,78 @@ done + + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_ucx_happy="yes" +else + ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" + ompi_check_ucx_happy="no" fi - fi + CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pml_cm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + if test "$ompi_check_ucx_happy" = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 +$as_echo_n "checking for UCX version compatibility... " >&6; } + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ompi_check_ucx_happy="yes" +else + ompi_check_ucx_happy="no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 +$as_echo "$ompi_check_ucx_happy" >&6; } +fi + if test "$ompi_check_ucx_happy" = "no"; then : + ompi_check_ucx_dir=/opt/ucx +fi +fi + if test "$ompi_check_ucx_happy" != yes; then : + if test -n "$with_ucx_libdir"; then : + ompi_check_ucx_libdir="$with_ucx_libdir" +else + files=`ls $ompi_check_ucx_dir/lib64/libucp.* 2> /dev/null | wc -l` + if test "$files" -gt 0; then : + ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib64 +else + ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib +fi +fi + + ompi_check_ucx_pml_ucx_save_CPPFLAGS="$CPPFLAGS" + ompi_check_ucx_pml_ucx_save_LDFLAGS="$LDFLAGS" + ompi_check_ucx_pml_ucx_save_LIBS="$LIBS" + + + opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" + opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" + + opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" + opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" + opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -327007,7 +354912,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -327026,7 +354931,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -327034,295 +354939,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_cm_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_ucp_api_ucp_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $ompi_check_ucx_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in ucp/api/ucp.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UCP_API_UCP_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done + +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_ucp_api_ucp_h fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi + + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in ucp/api/ucp.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UCP_API_UCP_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi - done +done - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$opal_check_package_header_happy" = "yes"; then : - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # see comment above + unset ac_cv_search_ucp_cleanup + opal_check_package_lib_happy="no" + if test "$ompi_check_ucx_libdir" != ""; then : + # libdir was specified - search only there + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : + else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pml_cm_WRAPPER_EXTRA_CPPFLAGS ($pml_cm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pml_cm_WRAPPER_EXTRA_CPPFLAGS ($pml_cm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + ac_cv_search_ucp_cleanup=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:cm can compile" >&5 -$as_echo_n "checking if MCA component pml:cm can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_pml" = "cm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"cm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"cm\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_pml" ; then - if test "$DIRECT_pml" = "cm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"cm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"cm\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components cm" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_ompi_pml_cm_DSO=1 - else - BUILD_ompi_pml_cm_DSO=0 - fi - if test "$BUILD_ompi_pml_cm_DSO" = "1"; then - MCA_BUILD_ompi_pml_cm_DSO_TRUE= - MCA_BUILD_ompi_pml_cm_DSO_FALSE='#' +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - MCA_BUILD_ompi_pml_cm_DSO_TRUE='#' - MCA_BUILD_ompi_pml_cm_DSO_FALSE= + opal_check_package_lib_happy="no" fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_ucx_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - ac_config_files="$ac_config_files ompi/mca/pml/cm/Makefile" - - - unset compile_mode - - - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - opal_show_subsubsubtitle "MCA component pml:crcpw (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/ompi/mca/pml/crcpw" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pml" ; then - if test "$DIRECT_pml" = "crcpw" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_pml" = "1"; then : - want_component=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res fi - if test "$DISABLE_pml_crcpw" = "1"; then : - want_component=0 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed else - should_build=0 + ac_cv_search_ucp_cleanup=no fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_pml" - SHARED_COMPONENT="$DSO_pml_crcpw" - - STATIC_FRAMEWORK="$STATIC_pml" - STATIC_COMPONENT="$STATIC_pml_crcpw" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pml:crcpw compile mode" >&5 -$as_echo_n "checking for MCA component pml:crcpw compile mode... " >&6; } - if test "$DIRECT_pml" = "crcpw" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files ompi/mca/pml/crcpw/Makefile" - - - # If we don't want FT, don't compile this component - if test "$opal_want_ft_cr" = "1"; then : - should_build=$should_build +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" else - should_build=0 + opal_check_package_lib_happy="no" fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi - if test "$should_build" = "1"; then : + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/pml/crcpw/post_configure.sh" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components crcpw" + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components crcpw" - else - if test "pml" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pml/crcpw/lib${OMPI_LIB_PREFIX}mca_pml_crcpw.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pml/crcpw/libmca_pml_crcpw.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_pml_crcpw_component;" >> $outfile.extern - echo " &mca_pml_crcpw_component, " >> $outfile.struct - static_components="$static_components crcpw" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:crcpw can compile" >&5 -$as_echo_n "checking if MCA component pml:crcpw can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pml" = "crcpw" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_pml_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** pml component crcpw was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pml" = "crcpw" ; then -as_fn_error $? "*** pml component crcpw was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi +fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pml_crcpw_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -327335,7 +355302,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -327354,56 +355321,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $pml_crcpw_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -327416,7 +355343,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -327435,7 +355362,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -327443,187 +355370,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_crcpw_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ucp_cleanup (void); +int main(int argc, char *argv[]) { + ucp_cleanup (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:355397: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:355404: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs ucp" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones -fi - if test "$pml_crcpw_WRAPPER_EXTRA_LIBS" = ""; then : +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $pml_crcpw_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + + libnl_sane=0 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + opal_libnlv3_libs="$opal_libnlv3_libs ucp" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +# Go through each item in the variable and only keep the unique ones - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do -else + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_done="`expr $opal_i \>= $opal_count`" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Increment the counter - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - for arg in $pml_crcpw_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -327647,75 +355663,10 @@ done -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pml_crcpw_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $pml_crcpw_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -327738,252 +355689,332 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pml_crcpw_WRAPPER_EXTRA_CPPFLAGS ($pml_crcpw_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pml_crcpw_WRAPPER_EXTRA_CPPFLAGS ($pml_crcpw_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:crcpw can compile" >&5 -$as_echo_n "checking if MCA component pml:crcpw can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_pml" = "crcpw" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"crcpw\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"crcpw\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_pml" ; then - if test "$DIRECT_pml" = "crcpw" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"crcpw\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"crcpw\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - # add component to all component list - all_components="$all_components crcpw" fi - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_pml_crcpw_DSO=1 + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ucp_cleanup" != "no" && + test "$ac_cv_search_ucp_cleanup" != "none required"; then : + ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" else - BUILD_ompi_pml_crcpw_DSO=0 + ompi_check_ucx_LIBS="-luct -lucm -lucs" fi - if test "$BUILD_ompi_pml_crcpw_DSO" = "1"; then - MCA_BUILD_ompi_pml_crcpw_DSO_TRUE= - MCA_BUILD_ompi_pml_crcpw_DSO_FALSE='#' + opal_check_package_happy="yes" else - MCA_BUILD_ompi_pml_crcpw_DSO_TRUE='#' - MCA_BUILD_ompi_pml_crcpw_DSO_FALSE= + opal_check_package_happy="no" fi - if test "$should_build" = "1"; then : - components_last_result=1 else - components_last_result=0 + opal_check_package_happy="no" fi +else - unset compile_mode - - - - - - opal_show_subsubsubtitle "MCA component pml:monitoring (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - component_path="$srcdir/ompi/mca/pml/monitoring" - want_component=0 - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pml" ; then - if test "$DIRECT_pml" = "monitoring" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + # see comment above + unset ac_cv_search_ucp_cleanup + opal_check_package_lib_happy="no" + if test "$ompi_check_ucx_libdir" != ""; then : + # libdir was specified - search only there + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # if we were explicitly disabled, don't build :) - if test "$DISABLE_pml" = "1"; then : - want_component=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res fi - if test "$DISABLE_pml_monitoring" = "1"; then : - want_component=0 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed else - should_build=0 + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_pml" - SHARED_COMPONENT="$DSO_pml_monitoring" - - STATIC_FRAMEWORK="$STATIC_pml" - STATIC_COMPONENT="$STATIC_pml_monitoring" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pml:monitoring compile mode" >&5 -$as_echo_n "checking for MCA component pml:monitoring compile mode... " >&6; } - if test "$DIRECT_pml" = "monitoring" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files ompi/mca/pml/monitoring/Makefile" + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_ucx_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : - if test "$MCA_BUILD_ompi_common_monitoring_DSO_TRUE" = ''; then : - should_build=$should_build else - should_build=0 + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi - if test "$should_build" = "1"; then : + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/pml/monitoring/post_configure.sh" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components monitoring" + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components monitoring" - else - if test "pml" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pml/monitoring/lib${OMPI_LIB_PREFIX}mca_pml_monitoring.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pml/monitoring/libmca_pml_monitoring.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_pml_monitoring_component;" >> $outfile.extern - echo " &mca_pml_monitoring_component, " >> $outfile.struct - static_components="$static_components monitoring" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ucp_cleanup (); +int +main () +{ +return ucp_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ucp; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ucp_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ucp_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_ucp_cleanup+:} false; then : - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:monitoring can compile" >&5 -$as_echo_n "checking if MCA component pml:monitoring can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else + ac_cv_search_ucp_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pml" = "monitoring" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_pml_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** pml component monitoring was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pml" = "monitoring" ; then -as_fn_error $? "*** pml component monitoring was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup +fi +fi +fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pml_monitoring_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -327996,7 +356027,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -328015,56 +356046,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $pml_monitoring_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -328077,7 +356068,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -328096,7 +356087,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -328104,25 +356095,277 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_monitoring_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void ucp_cleanup (void); +int main(int argc, char *argv[]) { + ucp_cleanup (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:356122: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:356129: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} + +fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + + libnl_sane=0 +fi + + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs ucp" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi + fi + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs ucp" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi + +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane + # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -328145,65 +356388,54 @@ done -fi - if test "$pml_monitoring_WRAPPER_EXTRA_LIBS" = ""; then : - + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - for arg in $pml_monitoring_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ucp_cleanup" != "no" && + test "$ac_cv_search_ucp_cleanup" != "none required"; then : + ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" +else + ompi_check_ucx_LIBS="-luct -lucm -lucs" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -328227,98 +356459,414 @@ done + + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_ucx_happy="yes" else + ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" + ompi_check_ucx_happy="no" +fi + CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + CPPFLAGS="$ompi_check_ucx_pml_ucx_save_CPPFLAGS" + LDFLAGS="$ompi_check_ucx_pml_ucx_save_LDFLAGS" + LIBS="$ompi_check_ucx_pml_ucx_save_LIBS" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + if test "$ompi_check_ucx_happy" = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 +$as_echo_n "checking for UCX version compatibility... " >&6; } - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + old_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ompi_check_ucx_happy="yes" +else + ompi_check_ucx_happy="no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 +$as_echo "$ompi_check_ucx_happy" >&6; } + CPPFLAGS=$old_CPPFLAGS +fi +fi + old_CPPFLAGS="$CPPFLAGS" + if test -n "$ompi_check_ucx_dir"; then : + CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" +fi + # Turn off UCX version v1.8 due to issue #8321 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking UCX version" >&5 +$as_echo_n "checking UCX version... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #if (UCP_API_MAJOR == 1) && (UCP_API_MINOR == 8) + #error "Invalid version" + #endif +int +main () +{ - for arg in $pml_monitoring_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ; + return 0; +} +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok (not 1.8.x)" >&5 +$as_echo "ok (not 1.8.x)" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: bad (1.8.x)" >&5 +$as_echo "bad (1.8.x)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: UCX support skipped because version 1.8.x was found, which has a known catastrophic issue." >&5 +$as_echo "$as_me: WARNING: UCX support skipped because version 1.8.x was found, which has a known catastrophic issue." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Please upgrade to UCX version 1.9 or higher." >&5 +$as_echo "$as_me: WARNING: Please upgrade to UCX version 1.9 or higher." >&2;} + ompi_check_ucx_happy=no fi - done +rm -f conftest.err conftest.i conftest.$ac_ext + if test "$ompi_check_ucx_happy" = yes; then : + + ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbr" "ac_cv_have_decl_ucp_tag_send_nbr" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_nbr" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_SEND_NBR $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + +$as_echo "#define HAVE_UCP_TAG_SEND_NBR 1" >>confdefs.h + +fi + + ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nb" "ac_cv_have_decl_ucp_ep_flush_nb" "#include +" +if test "x$ac_cv_have_decl_ucp_ep_flush_nb" = xyes; then : + ac_have_decl=1 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_have_decl=0 fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_EP_FLUSH_NB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_worker_flush_nb" "ac_cv_have_decl_ucp_worker_flush_nb" "#include +" +if test "x$ac_cv_have_decl_ucp_worker_flush_nb" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - done +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_WORKER_FLUSH_NB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_request_check_status" "ac_cv_have_decl_ucp_request_check_status" "#include +" +if test "x$ac_cv_have_decl_ucp_request_check_status" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_REQUEST_CHECK_STATUS $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_put_nb" "ac_cv_have_decl_ucp_put_nb" "#include +" +if test "x$ac_cv_have_decl_ucp_put_nb" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_PUT_NB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_get_nb" "ac_cv_have_decl_ucp_get_nb" "#include +" +if test "x$ac_cv_have_decl_ucp_get_nb" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_GET_NB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_put_nbx" "ac_cv_have_decl_ucp_put_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_put_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_PUT_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_get_nbx" "ac_cv_have_decl_ucp_get_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_get_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_GET_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_atomic_op_nbx" "ac_cv_have_decl_ucp_atomic_op_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_atomic_op_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_OP_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nbx" "ac_cv_have_decl_ucp_ep_flush_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_ep_flush_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_EP_FLUSH_NBX $ac_have_decl +_ACEOF + + ac_fn_c_check_decl "$LINENO" "ucm_test_events" "ac_cv_have_decl_ucm_test_events" "#include +" +if test "x$ac_cv_have_decl_ucm_test_events" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCM_TEST_EVENTS $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucm_test_external_events" "ac_cv_have_decl_ucm_test_external_events" "#include +" +if test "x$ac_cv_have_decl_ucm_test_external_events" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCM_TEST_EXTERNAL_EVENTS $ac_have_decl +_ACEOF + + ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_AND" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_POST_OP_AND $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_OR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_POST_OP_OR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_XOR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_POST_OP_XOR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FAND" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FAND $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FOR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FXOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FXOR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "#include +" +if test "x$ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" "ac_cv_have_decl_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" "#include +" +if test "x$ac_cv_have_decl_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_OP_ATTR_FLAG_MULTI_SEND" "ac_cv_have_decl_UCP_OP_ATTR_FLAG_MULTI_SEND" "#include +" +if test "x$ac_cv_have_decl_UCP_OP_ATTR_FLAG_MULTI_SEND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_OP_ATTR_FLAG_MULTI_SEND $ac_have_decl +_ACEOF + + ac_fn_c_check_decl "$LINENO" "UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "#include +" +if test "x$ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + +$as_echo "#define HAVE_UCP_WORKER_ADDRESS_FLAGS 1" >>confdefs.h + +fi + + ac_fn_c_check_decl "$LINENO" "UCP_ATTR_FIELD_MEMORY_TYPES" "ac_cv_have_decl_UCP_ATTR_FIELD_MEMORY_TYPES" "#include +" +if test "x$ac_cv_have_decl_UCP_ATTR_FIELD_MEMORY_TYPES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATTR_FIELD_MEMORY_TYPES $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + +$as_echo "#define HAVE_UCP_ATTR_MEMORY_TYPES 1" >>confdefs.h + +fi + + ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbx" "ac_cv_have_decl_ucp_tag_send_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_SEND_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_tag_send_sync_nbx" "ac_cv_have_decl_ucp_tag_send_sync_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_sync_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_SEND_SYNC_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_tag_recv_nbx" "ac_cv_have_decl_ucp_tag_recv_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_recv_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_RECV_NBX $ac_have_decl +_ACEOF + + ac_fn_c_check_type "$LINENO" "ucp_request_param_t" "ac_cv_type_ucp_request_param_t" "#include +" +if test "x$ac_cv_type_ucp_request_param_t" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UCP_REQUEST_PARAM_T 1 +_ACEOF + + +fi + + +fi + CPPFLAGS=$old_CPPFLAGS - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pml_monitoring_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : @@ -328331,7 +356879,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -328350,7 +356898,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" eval $opal_str unset opal_str @@ -328358,24 +356906,20 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_monitoring_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="Open UCX: $ompi_check_ucx_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi # Unwind the index @@ -328400,174 +356944,59 @@ fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pml_monitoring_WRAPPER_EXTRA_CPPFLAGS ($pml_monitoring_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pml_monitoring_WRAPPER_EXTRA_CPPFLAGS ($pml_monitoring_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:monitoring can compile" >&5 -$as_echo_n "checking if MCA component pml:monitoring can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_pml" = "monitoring" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"monitoring\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"monitoring\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_pml" ; then - if test "$DIRECT_pml" = "monitoring" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"monitoring\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"monitoring\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components monitoring" fi + if test "$ompi_check_ucx_happy" = "yes"; then : + pml_ucx_CPPFLAGS="$pml_ucx_CPPFLAGS $ompi_check_ucx_CPPFLAGS" + pml_ucx_LDFLAGS="$pml_ucx_LDFLAGS $ompi_check_ucx_LDFLAGS" + pml_ucx_LIBS="$pml_ucx_LIBS $ompi_check_ucx_LIBS" +$as_echo "#define HAVE_UCX 1" >>confdefs.h - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_pml_monitoring_DSO=1 -else - BUILD_ompi_pml_monitoring_DSO=0 -fi - if test "$BUILD_ompi_pml_monitoring_DSO" = "1"; then - MCA_BUILD_ompi_pml_monitoring_DSO_TRUE= - MCA_BUILD_ompi_pml_monitoring_DSO_FALSE='#' + pml_ucx_happy="yes" else - MCA_BUILD_ompi_pml_monitoring_DSO_TRUE='#' - MCA_BUILD_ompi_pml_monitoring_DSO_FALSE= + if test ! -z "$with_ucx" && test "$with_ucx" != "no"; then : + as_fn_error $? "UCX support requested but not found. Aborting" "$LINENO" 5 fi +$as_echo "#define HAVE_UCX 0" >>confdefs.h - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 + pml_ucx_happy="no" fi - unset compile_mode - - - - - - opal_show_subsubsubtitle "MCA component pml:ob1 (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/ompi/mca/pml/ob1" - want_component=0 - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pml" ; then - if test "$DIRECT_pml" = "ob1" ; then - want_component=1 - else - want_component=0 - fi - fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_pml" = "1"; then : - want_component=0 -fi - if test "$DISABLE_pml_ob1" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_pml" - SHARED_COMPONENT="$DSO_pml_ob1" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - STATIC_FRAMEWORK="$STATIC_pml" - STATIC_COMPONENT="$STATIC_pml_ob1" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pml:ob1 compile mode" >&5 -$as_echo_n "checking for MCA component pml:ob1 compile mode... " >&6; } - if test "$DIRECT_pml" = "ob1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + if test "$pml_ucx_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + # substitute in the things needed to build ucx - # try to configure the component - ac_config_files="$ac_config_files ompi/mca/pml/ob1/Makefile" - should_build=$should_build opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -328577,45 +357006,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/pml/ob1/post_configure.sh" + infile="$srcdir/ompi/mca/pml/ucx/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ob1" + all_components="$all_components ucx" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ob1" + dso_components="$dso_components ucx" else if test "pml" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pml/ob1/lib${OMPI_LIB_PREFIX}mca_pml_ob1.la $static_ltlibs" + static_ltlibs="mca/pml/ucx/lib${OMPI_LIB_PREFIX}mca_pml_ucx.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pml/ob1/libmca_pml_ob1.la $static_ltlibs" + static_ltlibs="mca/pml/ucx/libmca_pml_ucx.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_pml_ob1_component;" >> $outfile.extern - echo " &mca_pml_ob1_component, " >> $outfile.struct - static_components="$static_components ob1" + echo "extern const mca_base_component_t mca_pml_ucx_component;" >> $outfile.extern + echo " &mca_pml_ucx_component, " >> $outfile.struct + static_components="$static_components ucx" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:ob1 can compile" >&5 -$as_echo_n "checking if MCA component pml:ob1 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:ucx can compile" >&5 +$as_echo_n "checking if MCA component pml:ucx can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pml" = "ob1" ; then + if test "$DIRECT_pml" = "ucx" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_ompi_pml_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pml component ob1 was supposed to be direct-called, but +as_fn_error $? "*** pml component ucx was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -328623,8 +357052,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pml" = "ob1" ; then -as_fn_error $? "*** pml component ob1 was supposed to be direct-called, but + if test "$DIRECT_pml" = "ucx" ; then +as_fn_error $? "*** pml component ucx was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -328639,7 +357068,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$pml_ob1_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$pml_ucx_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -328679,7 +357108,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_ob1_LDFLAGS; do + for arg in $pml_ucx_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -328760,7 +357189,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_ob1_WRAPPER_EXTRA_LDFLAGS; do + for arg in $pml_ucx_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -328802,7 +357231,7 @@ fi - if test "$pml_ob1_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$pml_ucx_WRAPPER_EXTRA_LIBS" = ""; then : @@ -328842,7 +357271,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_ob1_LIBS; do + for arg in $pml_ucx_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -328923,7 +357352,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_ob1_WRAPPER_EXTRA_LIBS; do + for arg in $pml_ucx_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -328971,7 +357400,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$pml_ob1_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$pml_ucx_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -329014,7 +357443,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_ob1_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $pml_ucx_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -329057,32 +357486,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pml_ob1_WRAPPER_EXTRA_CPPFLAGS ($pml_ob1_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pml_ob1_WRAPPER_EXTRA_CPPFLAGS ($pml_ob1_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pml_ucx_WRAPPER_EXTRA_CPPFLAGS ($pml_ucx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pml_ucx_WRAPPER_EXTRA_CPPFLAGS ($pml_ucx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:ob1 can compile" >&5 -$as_echo_n "checking if MCA component pml:ob1 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:ucx can compile" >&5 +$as_echo_n "checking if MCA component pml:ucx can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pml" = "ob1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ob1\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ob1\" failed to configure properly" >&2;} + if test "$with_pml" = "ucx" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucx\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ucx\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_pml" ; then - if test "$DIRECT_pml" = "ob1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ob1\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ob1\" failed to configure properly" >&2;} + if test "$DIRECT_pml" = "ucx" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucx\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ucx\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -329090,42 +357519,42 @@ fi # add component to all component list - all_components="$all_components ob1" + all_components="$all_components ucx" fi if test "$should_build" = "1"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag BML" >&5 -$as_echo_n "checking for index in endpoint array for tag BML... " >&6; } - if test -z "$OMPI_PROC_ENDPOINT_TAG_BML"; then : - OMPI_PROC_ENDPOINT_TAG_BML=$ompi_endpoint_tag_counter + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag PML" >&5 +$as_echo_n "checking for index in endpoint array for tag PML... " >&6; } + if test -z "$OMPI_PROC_ENDPOINT_TAG_PML"; then : + OMPI_PROC_ENDPOINT_TAG_PML=$ompi_endpoint_tag_counter cat >>confdefs.h <<_ACEOF -#define OMPI_PROC_ENDPOINT_TAG_BML $OMPI_PROC_ENDPOINT_TAG_BML +#define OMPI_PROC_ENDPOINT_TAG_PML $OMPI_PROC_ENDPOINT_TAG_PML _ACEOF ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_BML" >&5 -$as_echo "$OMPI_PROC_ENDPOINT_TAG_BML" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_PML" >&5 +$as_echo "$OMPI_PROC_ENDPOINT_TAG_PML" >&6; } fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_ompi_pml_ob1_DSO=1 + BUILD_ompi_pml_ucx_DSO=1 else - BUILD_ompi_pml_ob1_DSO=0 + BUILD_ompi_pml_ucx_DSO=0 fi - if test "$BUILD_ompi_pml_ob1_DSO" = "1"; then - MCA_BUILD_ompi_pml_ob1_DSO_TRUE= - MCA_BUILD_ompi_pml_ob1_DSO_FALSE='#' + if test "$BUILD_ompi_pml_ucx_DSO" = "1"; then + MCA_BUILD_ompi_pml_ucx_DSO_TRUE= + MCA_BUILD_ompi_pml_ucx_DSO_FALSE='#' else - MCA_BUILD_ompi_pml_ob1_DSO_TRUE='#' - MCA_BUILD_ompi_pml_ob1_DSO_FALSE= + MCA_BUILD_ompi_pml_ucx_DSO_TRUE='#' + MCA_BUILD_ompi_pml_ucx_DSO_FALSE= fi @@ -329141,13 +357570,13 @@ - opal_show_subsubsubtitle "MCA component pml:ucx (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component pml:v (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/pml/ucx" + component_path="$srcdir/ompi/mca/pml/v" want_component=0 # build if: @@ -329180,7 +357609,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_pml" ; then - if test "$DIRECT_pml" = "ucx" ; then + if test "$DIRECT_pml" = "v" ; then want_component=1 else want_component=0 @@ -329192,7 +357621,7 @@ if test "$DISABLE_pml" = "1"; then : want_component=0 fi - if test "$DISABLE_pml_ucx" = "1"; then : + if test "$DISABLE_pml_v" = "1"; then : want_component=0 fi @@ -329205,44 +357634,90 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_pml" - SHARED_COMPONENT="$DSO_pml_ucx" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pml:v compile mode" >&5 +$as_echo_n "checking for MCA component pml:v compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - STATIC_FRAMEWORK="$STATIC_pml" - STATIC_COMPONENT="$STATIC_pml_ucx" - shared_mode_override=static + # try to configure the component - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + ac_config_files="$ac_config_files ompi/mca/pml/v/Makefile" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pml:ucx compile mode" >&5 -$as_echo_n "checking for MCA component pml:ucx compile mode... " >&6; } - if test "$DIRECT_pml" = "ucx" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + should_build=$should_build + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1"; then : - # try to configure the component - ac_config_files="$ac_config_files ompi/mca/pml/ucx/Makefile" + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/pml/v/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components v" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components v" + else + if test "pml" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pml/v/lib${OMPI_LIB_PREFIX}mca_pml_v.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pml/v/libmca_pml_v.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_pml_v_component;" >> $outfile.extern + echo " &mca_pml_v_component, " >> $outfile.struct + static_components="$static_components v" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:v can compile" >&5 +$as_echo_n "checking if MCA component pml:v can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pml" = "v" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_pml_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pml component v was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pml" = "v" ; then +as_fn_error $? "*** pml component v was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$pml_v_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -329255,7 +357730,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_check_ucx_dir; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -329274,7 +357749,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_check_ucx_dir\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -329282,210 +357757,130 @@ opal_scope_index=`expr $opal_scope_index + 1` - if test -z "$ompi_check_ucx_happy"; then : - -# Check whether --with-ucx was given. -if test "${with_ucx+set}" = set; then : - withval=$with_ucx; + for arg in $pml_v_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx value" >&5 -$as_echo_n "checking --with-ucx value... " >&6; } - if test "$with_ucx" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx)" >&5 -$as_echo "simple no (specified --without-ucx)" >&6; } -else - if test "$with_ucx" = "yes" || test "x$with_ucx" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_ucx"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_ucx not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_ucx/include/ucp/api/ucp.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx)" >&5 -$as_echo "sanity check ok ($with_ucx)" >&6; } - + done fi - - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - - fi + done -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -# Check whether --with-ucx-libdir was given. -if test "${with_ucx_libdir+set}" = set; then : - withval=$with_ucx_libdir; -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx-libdir value" >&5 -$as_echo_n "checking --with-ucx-libdir value... " >&6; } - if test "$with_ucx_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx-libdir)" >&5 -$as_echo "simple no (specified --without-ucx-libdir)" >&6; } -else - if test "$with_ucx_libdir" = "yes" || test "x$with_ucx_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_ucx_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_ucx_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_ucx_libdir/libucp.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx_libdir)" >&5 -$as_echo "sanity check ok ($with_ucx_libdir)" >&6; } - -fi - -fi -fi + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$with_ucx" != "no"; then : - if test -n "$with_ucx" && test "$with_ucx" != "yes"; then : - ompi_check_ucx_dir="$with_ucx" -else + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ucx" >&5 -$as_echo_n "checking for ucx... " >&6; } -if test -n "$ucx_CFLAGS"; then - pkg_cv_ucx_CFLAGS="$ucx_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ucx_CFLAGS=`$PKG_CONFIG --cflags "ucx" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$ucx_LIBS"; then - pkg_cv_ucx_LIBS="$ucx_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ucx_LIBS=`$PKG_CONFIG --libs "ucx" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes + for arg in $pml_v_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - else - pkg_failed=untried + done fi -if test -n "$ucx_STATIC_LIBS"; then - pkg_cv_ucx_STATIC_LIBS="$ucx_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ucx_STATIC_LIBS=`$PKG_CONFIG --libs --static "ucx" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - pkg_failed=yes + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - else - pkg_failed=untried fi + done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - ucx_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ucx" 2>&1` - else - ucx_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ucx" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$ucx_PKG_ERRORS" >&5 - - true -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - true -else - ucx_CFLAGS=$pkg_cv_ucx_CFLAGS - ucx_LIBS=$pkg_cv_ucx_LIBS - ucx_STATIC_LIBS=$pkg_cv_ucx_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ompi_check_ucx_dir=`$PKG_CONFIG --variable=prefix ucx` - if test "$ompi_check_ucx_dir" = "/usr"; then : - ompi_check_ucx_dir= -fi -fi -fi - ompi_check_ucx_happy="no" - if test -z "$ompi_check_ucx_dir"; then : - - opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" - opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" - opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" - opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering +fi + if test "$pml_v_WRAPPER_EXTRA_LIBS" = ""; then : @@ -329498,7 +357893,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -329517,7 +357912,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -329525,357 +357920,48 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_ucp_api_ucp_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in ucp/api/ucp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_ucp_api_ucp_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in ucp/api/ucp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_ucp_cleanup - opal_check_package_lib_happy="no" - if test "" != ""; then : - # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - -else - ac_cv_search_ucp_cleanup=no + for arg in $pml_v_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. @@ -329888,7 +357974,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -329907,16 +357993,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $pml_v_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$pml_v_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -329929,7 +358065,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -329948,7 +358084,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -329956,349 +358092,385 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $pml_v_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 -$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ucp_cleanup (void); -int main(int argc, char *argv[]) { - ucp_cleanup (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:329983: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:329990: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pml_v_WRAPPER_EXTRA_CPPFLAGS ($pml_v_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pml_v_WRAPPER_EXTRA_CPPFLAGS ($pml_v_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} - -fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:v can compile" >&5 +$as_echo_n "checking if MCA component pml:v can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_pml" = "v" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"v\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + if test ! -z "$DIRECT_pml" ; then + if test "$DIRECT_pml" = "v" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"v\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - libnl_sane=0 + # add component to all component list + all_components="$all_components v" fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - libnl_sane=0 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_pml_v_DSO=1 else - opal_libnlv1_libs="$opal_libnlv1_libs ucp" + BUILD_ompi_pml_v_DSO=0 +fi + if test "$BUILD_ompi_pml_v_DSO" = "1"; then + MCA_BUILD_ompi_pml_v_DSO_TRUE= + MCA_BUILD_ompi_pml_v_DSO_FALSE='#' +else + MCA_BUILD_ompi_pml_v_DSO_TRUE='#' + MCA_BUILD_ompi_pml_v_DSO_FALSE= +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + unset compile_mode - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + opal_show_subsubsubtitle "MCA component pml:yalla (m4 configuration macro)" - opal_done="`expr $opal_i \>= $opal_count`" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" + component_path="$srcdir/ompi/mca/pml/yalla" + want_component=0 - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_pml" ; then + if test "$DIRECT_pml" = "yalla" ; then + want_component=1 + else + want_component=0 + fi + fi fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if we were explicitly disabled, don't build :) + if test "$DISABLE_pml" = "1"; then : + want_component=0 +fi + if test "$DISABLE_pml_yalla" = "1"; then : + want_component=0 +fi - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi -# Done; do the assignment + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + SHARED_FRAMEWORK="$DSO_pml" + SHARED_COMPONENT="$DSO_pml_yalla" -# Clean up + STATIC_FRAMEWORK="$STATIC_pml" + STATIC_COMPONENT="$STATIC_pml_yalla" -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + shared_mode_override=static -fi + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pml:yalla compile mode" >&5 +$as_echo_n "checking for MCA component pml:yalla compile mode... " >&6; } + if test "$DIRECT_pml" = "yalla" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs ucp" + # try to configure the component -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + ac_config_files="$ac_config_files ompi/mca/pml/yalla/Makefile" -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far + if test -z "$ompi_check_mxm_happy" ; then - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do +# Check whether --with-mxm was given. +if test "${with_mxm+set}" = set; then : + withval=$with_mxm; +fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` +# Check whether --with-mxm-libdir was given. +if test "${with_mxm_libdir+set}" = set; then : + withval=$with_mxm_libdir; +fi - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-mxm-libdir value" >&5 +$as_echo_n "checking --with-mxm-libdir value... " >&6; } + if test "$with_mxm_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-mxm-libdir)" >&5 +$as_echo "simple no (specified --without-mxm-libdir)" >&6; } +else + if test "$with_mxm_libdir" = "yes" || test "x$with_mxm_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_mxm_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_mxm_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_mxm_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_mxm_libdir/libmxm.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_mxm_libdir/libmxm.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_mxm_libdir/libmxm.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_mxm_libdir)" >&5 +$as_echo "sanity check ok ($with_mxm_libdir)" >&6; } - # Increment the counter +fi - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" +fi - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done -# Take all the items in the "array" and assemble them back into a -# single variable +fi -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval +fi - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment + ompi_check_mxm_pml_yalla_save_CPPFLAGS="$CPPFLAGS" + ompi_check_mxm_pml_yalla_save_LDFLAGS="$LDFLAGS" + ompi_check_mxm_pml_yalla_save_LIBS="$LIBS" -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + if test "$with_mxm" != "no"; then : + if test ! -z "$with_mxm" && test "$with_mxm" != "yes"; then : -# Clean up + ompi_check_mxm_dir="$with_mxm" -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 fi - + if test ! -z "$with_mxm_libdir" && test "$with_mxm_libdir" != "yes"; then : + ompi_check_mxm_libdir="$with_mxm_libdir" fi - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + opal_check_package_ompi_check_mxm_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_ompi_check_mxm_save_LDFLAGS="$LDFLAGS" + opal_check_package_ompi_check_mxm_save_LIBS="$LIBS" + opal_check_package_ompi_check_mxm_orig_CPPFLAGS="$ompi_check_mxm_CPPFLAGS" + opal_check_package_ompi_check_mxm_orig_LDFLAGS="$ompi_check_mxm_LDFLAGS" + opal_check_package_ompi_check_mxm_orig_LIBS="$ompi_check_mxm_LIBS" - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - ;; - esac + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - opal_check_package_libnl_check_ok=$opal_libnl_sane + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in dir_prefix; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str + unset opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_mxm_api_mxm_api_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $ompi_check_mxm_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in mxm/api/mxm_api.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "mxm/api/mxm_api.h" "ac_cv_header_mxm_api_mxm_api_h" "$ac_includes_default" +if test "x$ac_cv_header_mxm_api_mxm_api_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MXM_API_MXM_API_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi +done + + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_mxm_api_mxm_api_h +fi fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ucp_cleanup" != "no" && - test "$ac_cv_search_ucp_cleanup" != "none required"; then : - ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" -else - ompi_check_ucx_LIBS="-luct -lucm -lucs" + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + ompi_check_mxm_CPPFLAGS="$ompi_check_mxm_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" + for ac_header in mxm/api/mxm_api.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "mxm/api/mxm_api.h" "ac_cv_header_mxm_api_mxm_api_h" "$ac_includes_default" +if test "x$ac_cv_header_mxm_api_mxm_api_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MXM_API_MXM_API_H 1 +_ACEOF + opal_check_package_header_happy="yes" fi +done -else - opal_check_package_happy="no" -fi -else + if test "$opal_check_package_header_happy" = "yes"; then : # This is stolen from autoconf to peek under the covers to get the # cache variable for the library check. one should not copy this @@ -330306,15 +358478,15 @@ # see comment above - unset ac_cv_search_ucp_cleanup + unset ac_cv_search_mxm_cleanup opal_check_package_lib_happy="no" - if test "" != ""; then : + if test "$ompi_check_mxm_libdir" != ""; then : # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$ompi_check_mxm_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_mxm_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 +$as_echo_n "checking for library containing mxm_cleanup... " >&6; } +if ${ac_cv_search_mxm_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -330327,42 +358499,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char mxm_cleanup (); int main () { -return ucp_cleanup (); +return mxm_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' mxm; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_mxm_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_mxm_cleanup+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_mxm_cleanup+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_mxm_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 +$as_echo "$ac_cv_search_mxm_cleanup" >&6; } +ac_res=$ac_cv_search_mxm_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -330371,22 +358543,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + unset ac_cv_search_mxm_cleanup fi else # libdir was not specified - go through search path - opal_check_package_libdir="" + opal_check_package_libdir="$ompi_check_mxm_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 +$as_echo_n "checking for library containing mxm_cleanup... " >&6; } +if ${ac_cv_search_mxm_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -330399,42 +358571,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char mxm_cleanup (); int main () { -return ucp_cleanup (); +return mxm_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' mxm; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_mxm_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_mxm_cleanup+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_mxm_cleanup+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_mxm_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 +$as_echo "$ac_cv_search_mxm_cleanup" >&6; } +ac_res=$ac_cv_search_mxm_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -330444,21 +358616,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + unset ac_cv_search_mxm_cleanup fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" + ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 +$as_echo_n "checking for library containing mxm_cleanup... " >&6; } +if ${ac_cv_search_mxm_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -330471,42 +358643,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char mxm_cleanup (); int main () { -return ucp_cleanup (); +return mxm_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' mxm; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_mxm_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_mxm_cleanup+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_mxm_cleanup+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_mxm_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 +$as_echo "$ac_cv_search_mxm_cleanup" >&6; } +ac_res=$ac_cv_search_mxm_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -330516,22 +358688,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + unset ac_cv_search_mxm_cleanup fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" + ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 +$as_echo_n "checking for library containing mxm_cleanup... " >&6; } +if ${ac_cv_search_mxm_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -330544,42 +358716,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char mxm_cleanup (); int main () { -return ucp_cleanup (); +return mxm_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' mxm; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_mxm_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_mxm_cleanup+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_mxm_cleanup+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_mxm_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 +$as_echo "$ac_cv_search_mxm_cleanup" >&6; } +ac_res=$ac_cv_search_mxm_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -330589,9 +358761,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + unset ac_cv_search_mxm_cleanup fi fi fi @@ -330688,12 +358860,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 -$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libmxm requires libnl v1 or v3" >&5 +$as_echo_n "checking if libmxm requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void ucp_cleanup (void); +extern void mxm_cleanup (void); int main(int argc, char *argv[]) { - ucp_cleanup (); + mxm_cleanup (); return 0; } EOF @@ -330705,14 +358877,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:330708: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 +echo "configure:358880: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:330715: \$? = $opal_status" >&5 + echo "configure:358887: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -330732,8 +358904,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib mxm" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib mxm" >&2;} fi @@ -330747,15 +358919,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libmxm links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libmxm links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} libnl_sane=0 fi @@ -330764,19 +358936,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas mxm requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas mxm requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs ucp" + opal_libnlv1_libs="$opal_libnlv1_libs mxm" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -330855,19 +359027,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmxm requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmxm requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs ucp" + opal_libnlv3_libs="$opal_libnlv3_libs mxm" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -331008,11 +359180,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ucp_cleanup" != "no" && - test "$ac_cv_search_ucp_cleanup" != "none required"; then : - ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" + if test "$ac_cv_search_mxm_cleanup" != "no" && + test "$ac_cv_search_mxm_cleanup" != "none required"; then : + ompi_check_mxm_LIBS="$ac_cv_search_mxm_cleanup " else - ompi_check_ucx_LIBS="-luct -lucm -lucs" + ompi_check_mxm_LIBS="" fi opal_check_package_happy="yes" else @@ -331020,191 +359192,10 @@ fi -fi - unset opal_check_package_header_happy - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_ucx_happy="yes" -else - ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" - ompi_check_ucx_happy="no" -fi - - CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" - - if test "$ompi_check_ucx_happy" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 -$as_echo_n "checking for UCX version compatibility... " >&6; } - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ompi_check_ucx_happy="yes" else - ompi_check_ucx_happy="no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 -$as_echo "$ompi_check_ucx_happy" >&6; } -fi - if test "$ompi_check_ucx_happy" = "no"; then : - ompi_check_ucx_dir=/opt/ucx -fi + opal_check_package_happy="no" fi - if test "$ompi_check_ucx_happy" != yes; then : - if test -n "$with_ucx_libdir"; then : - ompi_check_ucx_libdir="$with_ucx_libdir" -else - files=`ls $ompi_check_ucx_dir/lib64/libucp.* 2> /dev/null | wc -l` - if test "$files" -gt 0; then : - ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib64 else - ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib -fi -fi - - ompi_check_ucx_pml_ucx_save_CPPFLAGS="$CPPFLAGS" - ompi_check_ucx_pml_ucx_save_LDFLAGS="$LDFLAGS" - ompi_check_ucx_pml_ucx_save_LIBS="$LIBS" - - - opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" - opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" - - opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" - opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" - opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" - - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_ucp_api_ucp_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_ucx_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in ucp/api/ucp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_ucp_api_ucp_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in ucp/api/ucp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : # This is stolen from autoconf to peek under the covers to get the # cache variable for the library check. one should not copy this @@ -331212,15 +359203,15 @@ # see comment above - unset ac_cv_search_ucp_cleanup + unset ac_cv_search_mxm_cleanup opal_check_package_lib_happy="no" - if test "$ompi_check_ucx_libdir" != ""; then : + if test "$ompi_check_mxm_libdir" != ""; then : # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$ompi_check_mxm_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_mxm_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 +$as_echo_n "checking for library containing mxm_cleanup... " >&6; } +if ${ac_cv_search_mxm_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -331233,42 +359224,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char mxm_cleanup (); int main () { -return ucp_cleanup (); +return mxm_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' mxm; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_mxm_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_mxm_cleanup+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_mxm_cleanup+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_mxm_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 +$as_echo "$ac_cv_search_mxm_cleanup" >&6; } +ac_res=$ac_cv_search_mxm_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -331277,22 +359268,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + unset ac_cv_search_mxm_cleanup fi else # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_ucx_dir" + opal_check_package_libdir="$ompi_check_mxm_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 +$as_echo_n "checking for library containing mxm_cleanup... " >&6; } +if ${ac_cv_search_mxm_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -331305,42 +359296,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char mxm_cleanup (); int main () { -return ucp_cleanup (); +return mxm_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' mxm; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_mxm_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_mxm_cleanup+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_mxm_cleanup+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_mxm_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 +$as_echo "$ac_cv_search_mxm_cleanup" >&6; } +ac_res=$ac_cv_search_mxm_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -331350,21 +359341,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + unset ac_cv_search_mxm_cleanup fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" + ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 +$as_echo_n "checking for library containing mxm_cleanup... " >&6; } +if ${ac_cv_search_mxm_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -331377,42 +359368,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char mxm_cleanup (); int main () { -return ucp_cleanup (); +return mxm_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' mxm; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_mxm_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_mxm_cleanup+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_mxm_cleanup+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_mxm_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 +$as_echo "$ac_cv_search_mxm_cleanup" >&6; } +ac_res=$ac_cv_search_mxm_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -331422,22 +359413,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + unset ac_cv_search_mxm_cleanup fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" + ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 +$as_echo_n "checking for library containing mxm_cleanup... " >&6; } +if ${ac_cv_search_mxm_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -331450,42 +359441,42 @@ #ifdef __cplusplus extern "C" #endif -char ucp_cleanup (); +char mxm_cleanup (); int main () { -return ucp_cleanup (); +return mxm_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' ucp; do +for ac_lib in '' mxm; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" + LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + ac_cv_search_mxm_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : + if ${ac_cv_search_mxm_cleanup+:} false; then : break fi done -if ${ac_cv_search_ucp_cleanup+:} false; then : +if ${ac_cv_search_mxm_cleanup+:} false; then : else - ac_cv_search_ucp_cleanup=no + ac_cv_search_mxm_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 +$as_echo "$ac_cv_search_mxm_cleanup" >&6; } +ac_res=$ac_cv_search_mxm_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -331495,9 +359486,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + unset ac_cv_search_mxm_cleanup fi fi fi @@ -331594,12 +359585,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 -$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libmxm requires libnl v1 or v3" >&5 +$as_echo_n "checking if libmxm requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void ucp_cleanup (void); +extern void mxm_cleanup (void); int main(int argc, char *argv[]) { - ucp_cleanup (); + mxm_cleanup (); return 0; } EOF @@ -331611,14 +359602,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:331614: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 +echo "configure:359605: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:331621: \$? = $opal_status" >&5 + echo "configure:359612: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -331638,8 +359629,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib mxm" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib mxm" >&2;} fi @@ -331653,15 +359644,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libmxm links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libmxm links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} libnl_sane=0 fi @@ -331670,19 +359661,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas mxm requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas mxm requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs ucp" + opal_libnlv1_libs="$opal_libnlv1_libs mxm" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -331761,19 +359752,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmxm requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmxm requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs ucp" + opal_libnlv3_libs="$opal_libnlv3_libs mxm" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -331914,11 +359905,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ucp_cleanup" != "no" && - test "$ac_cv_search_ucp_cleanup" != "none required"; then : - ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" + if test "$ac_cv_search_mxm_cleanup" != "no" && + test "$ac_cv_search_mxm_cleanup" != "none required"; then : + ompi_check_mxm_LIBS="$ac_cv_search_mxm_cleanup " else - ompi_check_ucx_LIBS="-luct -lucm -lucs" + ompi_check_mxm_LIBS="" fi opal_check_package_happy="yes" else @@ -331926,353 +359917,878 @@ fi +fi + unset opal_check_package_header_happy + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_mxm_happy="yes" else - opal_check_package_happy="no" + ompi_check_mxm_CPPFLAGS="$opal_check_package_ompi_check_mxm_orig_CPPFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + ompi_check_mxm_LIBS="$opal_check_package_ompi_check_mxm_orig_LIBS" + ompi_check_mxm_happy="no" fi + + CPPFLAGS="$opal_check_package_ompi_check_mxm_save_CPPFLAGS" + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + LIBS="$opal_check_package_ompi_check_mxm_save_LIBS" + else + ompi_check_mxm_happy="no" +fi - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + CPPFLAGS="$ompi_check_mxm_pml_yalla_save_CPPFLAGS" + LDFLAGS="$ompi_check_mxm_pml_yalla_save_LDFLAGS" + LIBS="$ompi_check_mxm_pml_yalla_save_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MXM version compatibility" >&5 +$as_echo_n "checking for MXM version compatibility... " >&6; } - # see comment above - unset ac_cv_search_ucp_cleanup - opal_check_package_lib_happy="no" - if test "$ompi_check_ucx_libdir" != ""; then : - # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + old_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -I$ompi_check_mxm_dir/include" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); +#include int main () { -return ucp_cleanup (); + +#ifndef MXM_VERSION +#error "MXM Version is less than 2.1, please upgrade" +#endif +# +#if MXM_API < MXM_VERSION(2,1) +#error "MXM Version is less than 2.1, please upgrade" +#endif + ; return 0; } _ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res +if ac_fn_c_try_compile "$LINENO"; then : + ompi_mxm_version_ok="yes" +else + ompi_mxm_version_ok="no" fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_mxm_version_ok" >&5 +$as_echo "$ompi_mxm_version_ok" >&6; } + CFLAGS=$old_CFLAGS + + if test "$ompi_mxm_version_ok" = "no"; then : + ompi_check_mxm_happy="no" fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="Mellanox MXM: $ompi_check_mxm_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + fi + + if test "$ompi_check_mxm_happy" = "yes"; then : + pml_yalla_LDFLAGS="$pml_yalla_LDFLAGS $ompi_check_mxm_LDFLAGS" + pml_yalla_LIBS="$pml_yalla_LIBS $ompi_check_mxm_LIBS" + pml_yalla_CPPFLAGS="$pml_yalla_CPPFLAGS $ompi_check_mxm_CPPFLAGS" + pml_yalla_happy="yes" else - ac_cv_search_ucp_cleanup=no + if test ! -z "$with_mxm" && test "$with_mxm" != "no"; then : + as_fn_error $? "MXM support requested but not found. Aborting" "$LINENO" 5 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + pml_yalla_happy="no" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + + + if test "$pml_yalla_happy" = "yes"; then : + should_build=$should_build else - opal_check_package_lib_happy="no" + should_build=0 fi - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + # substitute in the things needed to build mxm + + + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/pml/yalla/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components yalla" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components yalla" + else + if test "pml" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pml/yalla/lib${OMPI_LIB_PREFIX}mca_pml_yalla.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pml/yalla/libmca_pml_yalla.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_pml_yalla_component;" >> $outfile.extern + echo " &mca_pml_yalla_component, " >> $outfile.struct + static_components="$static_components yalla" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:yalla can compile" >&5 +$as_echo_n "checking if MCA component pml:yalla can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pml" = "yalla" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_pml_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pml component yalla was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pml" = "yalla" ; then +as_fn_error $? "*** pml component yalla was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$pml_yalla_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $pml_yalla_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_ucx_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + else - ac_cv_search_ucp_cleanup=no + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $pml_yalla_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_check_package_lib_happy="no" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + if test "$pml_yalla_WRAPPER_EXTRA_LIBS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $pml_yalla_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $pml_yalla_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break + done fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - ac_cv_search_ucp_cleanup=no + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$pml_yalla_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $pml_yalla_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - opal_check_package_lib_happy="no" + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pml_yalla_WRAPPER_EXTRA_CPPFLAGS ($pml_yalla_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring pml_yalla_WRAPPER_EXTRA_CPPFLAGS ($pml_yalla_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:yalla can compile" >&5 +$as_echo_n "checking if MCA component pml:yalla can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_pml" = "yalla" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"yalla\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"yalla\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_pml" ; then + if test "$DIRECT_pml" = "yalla" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"yalla\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"yalla\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components yalla" +fi + + + if test "$should_build" = "1"; then : + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag PML" >&5 +$as_echo_n "checking for index in endpoint array for tag PML... " >&6; } + if test -z "$OMPI_PROC_ENDPOINT_TAG_PML"; then : + OMPI_PROC_ENDPOINT_TAG_PML=$ompi_endpoint_tag_counter + +cat >>confdefs.h <<_ACEOF +#define OMPI_PROC_ENDPOINT_TAG_PML $OMPI_PROC_ENDPOINT_TAG_PML _ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res + + ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_PML" >&5 +$as_echo "$OMPI_PROC_ENDPOINT_TAG_PML" >&6; } + fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_pml_yalla_DSO=1 else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + BUILD_ompi_pml_yalla_DSO=0 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$BUILD_ompi_pml_yalla_DSO" = "1"; then + MCA_BUILD_ompi_pml_yalla_DSO_TRUE= + MCA_BUILD_ompi_pml_yalla_DSO_FALSE='#' else - opal_check_package_lib_happy="no" + MCA_BUILD_ompi_pml_yalla_DSO_TRUE='#' + MCA_BUILD_ompi_pml_yalla_DSO_FALSE= fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 fi + + unset compile_mode + + + + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/ompi/mca/pml/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component pml:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/ompi/mca/pml/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_pml" ; then + if test "$DIRECT_pml" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_pml" = "1"; then : + want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_pml_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + SHARED_FRAMEWORK="$DSO_pml" + str="SHARED_COMPONENT=\$DSO_pml_$component" + eval $str - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + STATIC_FRAMEWORK="$STATIC_pml" + str="STATIC_COMPONENT=\$STATIC_pml_$component" + eval $str - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + shared_mode_override=static - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" - eval $opal_str - unset opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pml:$component compile mode" >&5 +$as_echo_n "checking for MCA component pml:$component compile mode... " >&6; } + if test "$DIRECT_pml" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - opal_libnl_sane=1 - case $host in - *linux*) + if test "$should_build" = "1" ; then @@ -332285,7 +360801,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -332304,7 +360820,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $opal_str unset opal_str @@ -332312,276 +360828,307 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 -$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ucp_cleanup (void); -int main(int argc, char *argv[]) { - ucp_cleanup (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:332339: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:332346: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} - -fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - - libnl_sane=0 -fi - - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} +# +# Invoke configure in a specific subdirectory. +# +# ompi/mca/pml/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="ompi/mca/pml/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs ucp" +# +# Sanity checks +# -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} -# Go through each item in the variable and only keep the unique ones + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } - # Loop over every token we've seen so far + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # + # Move into the target directory + # - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + subdir_parent=`pwd` + cd $subdir_dir - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + # + # Make a "../" for each directory in $subdir_dir. + # - # Check the ending condition + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - opal_done="`expr $opal_i \>= $opal_count`" + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac - # Increment the counter + # + # Construct the --cache-file argument + # - opal_i="`expr $opal_i + 1`" - done + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" - # If we didn't find the token, add it to the "array" + # + # Invoke the configure script in the subdirectory + # - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} else - opal_i="`expr $opal_i - 1`" + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval - -# Clean up - -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + # + # Go back to the topdir + # + cd $subdir_parent fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} +# +# Clean up +# - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs ucp" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -# Go through each item in the variable and only keep the unique ones + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # Loop over every token we've seen so far + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/ompi/mca/pml/all_components/post_configure.sh" + if test -f $infile; then - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + pml_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + pml_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/pml/$component/post_configure.sh" - # If we didn't find the token, add it to the "array" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" else - opal_i="`expr $opal_i - 1`" + if test "pml" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pml/$component/lib${OMPI_LIB_PREFIX}mca_pml_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pml/$component/libmca_pml_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_pml_$component_component;" >> $outfile.extern + echo " &mca_pml_$component_component, " >> $outfile.struct + static_components="$static_components $component" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:$component can compile" >&5 +$as_echo_n "checking if MCA component pml:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pml" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_pml_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pml component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pml" = "$component" ; then +as_fn_error $? "*** pml component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$pml_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done # Unwind the index @@ -332604,55 +361151,65 @@ unset $opal_var done +str="line=\$pml_$component_WRAPPER_EXTRA_LIBS" + eval "$str" - ;; - esac - opal_check_package_libnl_check_ok=$opal_libnl_sane - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ucp_cleanup" != "no" && - test "$ac_cv_search_ucp_cleanup" != "none required"; then : - ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" -else - ompi_check_ucx_LIBS="-luct -lucm -lucs" + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -332676,372 +361233,308 @@ done + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:$component can compile" >&5 +$as_echo_n "checking if MCA component pml:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_pml" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_pml" ; then + if test "$DIRECT_pml" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + fi + fi + done - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_ucx_happy="yes" -else - ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" - ompi_check_ucx_happy="no" fi - CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" + MCA_ompi_pml_ALL_COMPONENTS="$all_components" + MCA_ompi_pml_STATIC_COMPONENTS="$static_components" + MCA_ompi_pml_DSO_COMPONENTS="$dso_components" + MCA_ompi_pml_STATIC_LTLIBS="$static_ltlibs" - CPPFLAGS="$ompi_check_ucx_pml_ucx_save_CPPFLAGS" - LDFLAGS="$ompi_check_ucx_pml_ucx_save_LDFLAGS" - LIBS="$ompi_check_ucx_pml_ucx_save_LIBS" - if test "$ompi_check_ucx_happy" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 -$as_echo_n "checking for UCX version compatibility... " >&6; } - old_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - ; - return 0; + + + MCA_ompi_pml_ALL_SUBDIRS= + for item in $all_components ; do + MCA_ompi_pml_ALL_SUBDIRS="$MCA_ompi_pml_ALL_SUBDIRS mca/pml/$item" + done + + + + MCA_ompi_pml_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_ompi_pml_STATIC_SUBDIRS="$MCA_ompi_pml_STATIC_SUBDIRS mca/pml/$item" + done + + + + MCA_ompi_pml_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_ompi_pml_DSO_SUBDIRS="$MCA_ompi_pml_DSO_SUBDIRS mca/pml/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "pml" != "common"; then + cat > $outfile <&5 -$as_echo "$ompi_check_ucx_happy" >&6; } - CPPFLAGS=$old_CPPFLAGS -fi -fi +EOF + # Only replace the header file if a) it doesn't previously + # exist, or b) the contents are different. Do this to not + # trigger recompilation of certain .c files just because the + # timestamp changed on $outfile_real (similar to the way AC + # handles AC_CONFIG_HEADER files). + diff $outfile $outfile_real > /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern - old_CPPFLAGS="$CPPFLAGS" - if test -n "$ompi_check_ucx_dir"; then : - CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" -fi - ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbr" "ac_cv_have_decl_ucp_tag_send_nbr" "#include -" -if test "x$ac_cv_have_decl_ucp_tag_send_nbr" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + unset all_components static_components dso_components outfile outfile_real -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_TAG_SEND_NBR $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : -$as_echo "#define HAVE_UCP_TAG_SEND_NBR 1" >>confdefs.h + # this is a direct callable component, so set that up. -fi + if test ! -z "$DIRECT_pml" ; then + MCA_ompi_pml_DIRECT_CALL_COMPONENT=$DIRECT_pml + MCA_ompi_pml_DIRECT_CALL=1 + else + MCA_ompi_pml_DIRECT_CALL_COMPONENT= + MCA_ompi_pml_DIRECT_CALL=0 + fi - ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nb" "ac_cv_have_decl_ucp_ep_flush_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_ep_flush_nb" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_EP_FLUSH_NB $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_worker_flush_nb" "ac_cv_have_decl_ucp_worker_flush_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_worker_flush_nb" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_WORKER_FLUSH_NB $ac_have_decl +#define MCA_ompi_pml_DIRECT_CALL $MCA_ompi_pml_DIRECT_CALL _ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_request_check_status" "ac_cv_have_decl_ucp_request_check_status" "#include -" -if test "x$ac_cv_have_decl_ucp_request_check_status" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_REQUEST_CHECK_STATUS $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_put_nb" "ac_cv_have_decl_ucp_put_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_put_nb" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_PUT_NB $ac_have_decl +#define MCA_ompi_pml_DIRECT_CALL_COMPONENT $MCA_ompi_pml_DIRECT_CALL_COMPONENT _ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_get_nb" "ac_cv_have_decl_ucp_get_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_get_nb" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_GET_NB $ac_have_decl +#define MCA_ompi_pml_DIRECT_CALL_HEADER "$MCA_ompi_pml_DIRECT_CALL_HEADER" _ACEOF - ac_fn_c_check_decl "$LINENO" "ucm_test_events" "ac_cv_have_decl_ucm_test_events" "#include -" -if test "x$ac_cv_have_decl_ucm_test_events" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCM_TEST_EVENTS $ac_have_decl -_ACEOF - ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_AND" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS rte" + MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/rte" + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_rte_ALL_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_rte_DSO_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_rte_STATIC_SUBDIRS)" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/rte/libmca_rte.la" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_rte_STATIC_LTLIBS)" -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_POST_OP_AND $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_OR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + ompi_rte_base_include= -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_POST_OP_OR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_XOR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + # configure all the components -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_POST_OP_XOR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FAND" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + opal_show_subsubtitle "Configuring MCA framework rte" -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FAND $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FOR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FXOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FXOR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "#include -" -if test "x$ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN $ac_have_decl -_ACEOF + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= - ac_fn_c_check_decl "$LINENO" "UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "#include -" -if test "x$ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=ompi/mca/rte/base + as_dir=$outdir; as_fn_mkdir_p -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : + # emit Makefile rule + ac_config_files="$ac_config_files ompi/mca/rte/Makefile" -$as_echo "#define HAVE_UCP_WORKER_ADDRESS_FLAGS 1" >>confdefs.h -fi + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - CPPFLAGS=$old_CPPFLAGS + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework rte" >&5 +$as_echo_n "checking for no configure components in framework rte... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework rte" >&5 +$as_echo_n "checking for m4 configure components in framework rte... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: orte, pmix" >&5 +$as_echo "orte, pmix" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + # run the configure logic for the no-config components - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # configure components that use built-in configuration scripts - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Open UCX: $ompi_check_ucx_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_show_subsubsubtitle "MCA component rte:pmix (m4 configuration macro, priority 50)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + component_path="$srcdir/ompi/mca/rte/pmix" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_rte" ; then + if test "$DIRECT_rte" = "pmix" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + # if we were explicitly disabled, don't build :) + if test "$DISABLE_rte" = "1"; then : + want_component=0 fi + if test "$DISABLE_rte_pmix" = "1"; then : + want_component=0 fi - if test "$ompi_check_ucx_happy" = "yes"; then : - pml_ucx_CPPFLAGS="$pml_ucx_CPPFLAGS $ompi_check_ucx_CPPFLAGS" - pml_ucx_LDFLAGS="$pml_ucx_LDFLAGS $ompi_check_ucx_LDFLAGS" - pml_ucx_LIBS="$pml_ucx_LIBS $ompi_check_ucx_LIBS" - -$as_echo "#define HAVE_UCX 1" >>confdefs.h - - pml_ucx_happy="yes" + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else - if test ! -z "$with_ucx" && test "$with_ucx" != "no"; then : - as_fn_error $? "UCX support requested but not found. Aborting" "$LINENO" 5 + should_build=0 fi -$as_echo "#define HAVE_UCX 0" >>confdefs.h + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - pml_ucx_happy="no" -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rte:pmix compile mode" >&5 +$as_echo_n "checking for MCA component rte:pmix compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # try to configure the component - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + ac_config_files="$ac_config_files ompi/mca/rte/pmix/Makefile" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# Check whether --with-ompi-pmix-rte was given. +if test "${with_ompi_pmix_rte+set}" = set; then : + withval=$with_ompi_pmix_rte; +fi - if test "$pml_ucx_happy" = "yes"; then : + if test "$with_ompi_pmix_rte" == "yes"; then : should_build=$should_build + { $as_echo "$as_me:${as_lineno-$LINENO}: PMIx RTE selected by user" >&5 +$as_echo "$as_me: PMIx RTE selected by user" >&6;} else should_build=0 fi - # substitute in the things needed to build ucx - - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -333050,45 +361543,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/pml/ucx/post_configure.sh" + infile="$srcdir/ompi/mca/rte/pmix/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ucx" + all_components="$all_components pmix" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ucx" + dso_components="$dso_components pmix" else - if test "pml" = "common"; then + if test "rte" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pml/ucx/lib${OMPI_LIB_PREFIX}mca_pml_ucx.la $static_ltlibs" + static_ltlibs="mca/rte/pmix/lib${OMPI_LIB_PREFIX}mca_rte_pmix.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pml/ucx/libmca_pml_ucx.la $static_ltlibs" + static_ltlibs="mca/rte/pmix/libmca_rte_pmix.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_pml_ucx_component;" >> $outfile.extern - echo " &mca_pml_ucx_component, " >> $outfile.struct - static_components="$static_components ucx" + echo "extern const mca_base_component_t mca_rte_pmix_component;" >> $outfile.extern + echo " &mca_rte_pmix_component, " >> $outfile.struct + static_components="$static_components pmix" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:ucx can compile" >&5 -$as_echo_n "checking if MCA component pml:ucx can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rte:pmix can compile" >&5 +$as_echo_n "checking if MCA component rte:pmix can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pml" = "ucx" ; then + if test "$DIRECT_rte" = "pmix" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_pml_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_rte_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pml component ucx was supposed to be direct-called, but +as_fn_error $? "*** rte component pmix was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -333096,8 +361589,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pml" = "ucx" ; then -as_fn_error $? "*** pml component ucx was supposed to be direct-called, but + if test "$DIRECT_rte" = "pmix" ; then +as_fn_error $? "*** rte component pmix was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -333112,7 +361605,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$pml_ucx_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$rte_pmix_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -333152,7 +361645,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_ucx_LDFLAGS; do + for arg in $rte_pmix_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -333233,7 +361726,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_ucx_WRAPPER_EXTRA_LDFLAGS; do + for arg in $rte_pmix_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -333275,7 +361768,7 @@ fi - if test "$pml_ucx_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$rte_pmix_WRAPPER_EXTRA_LIBS" = ""; then : @@ -333315,7 +361808,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_ucx_LIBS; do + for arg in $rte_pmix_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -333396,7 +361889,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_ucx_WRAPPER_EXTRA_LIBS; do + for arg in $rte_pmix_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -333444,8 +361937,8 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$pml_ucx_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 + if test "$rte_pmix_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=1 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -333487,7 +361980,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_ucx_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $rte_pmix_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -333530,32 +362023,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pml_ucx_WRAPPER_EXTRA_CPPFLAGS ($pml_ucx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pml_ucx_WRAPPER_EXTRA_CPPFLAGS ($pml_ucx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rte_pmix_WRAPPER_EXTRA_CPPFLAGS ($rte_pmix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring rte_pmix_WRAPPER_EXTRA_CPPFLAGS ($rte_pmix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:ucx can compile" >&5 -$as_echo_n "checking if MCA component pml:ucx can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rte:pmix can compile" >&5 +$as_echo_n "checking if MCA component rte:pmix can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pml" = "ucx" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucx\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ucx\" failed to configure properly" >&2;} + if test "$with_rte" = "pmix" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pmix\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pmix\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_pml" ; then - if test "$DIRECT_pml" = "ucx" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucx\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ucx\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_rte" ; then + if test "$DIRECT_rte" = "pmix" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pmix\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pmix\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -333563,42 +362056,40 @@ fi # add component to all component list - all_components="$all_components ucx" + all_components="$all_components pmix" fi if test "$should_build" = "1"; then : - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag PML" >&5 -$as_echo_n "checking for index in endpoint array for tag PML... " >&6; } - if test -z "$OMPI_PROC_ENDPOINT_TAG_PML"; then : - OMPI_PROC_ENDPOINT_TAG_PML=$ompi_endpoint_tag_counter + ompi_rte_base_include="pmix/rte_pmix.h" +fi cat >>confdefs.h <<_ACEOF -#define OMPI_PROC_ENDPOINT_TAG_PML $OMPI_PROC_ENDPOINT_TAG_PML +#define OMPI_RTE_PMIX $should_build _ACEOF - ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` + if test $should_build = 1; then + OMPI_RTE_PMIX_TRUE= + OMPI_RTE_PMIX_FALSE='#' +else + OMPI_RTE_PMIX_TRUE='#' + OMPI_RTE_PMIX_FALSE= fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_PML" >&5 -$as_echo "$OMPI_PROC_ENDPOINT_TAG_PML" >&6; } -fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_ompi_pml_ucx_DSO=1 + BUILD_ompi_rte_pmix_DSO=1 else - BUILD_ompi_pml_ucx_DSO=0 + BUILD_ompi_rte_pmix_DSO=0 fi - if test "$BUILD_ompi_pml_ucx_DSO" = "1"; then - MCA_BUILD_ompi_pml_ucx_DSO_TRUE= - MCA_BUILD_ompi_pml_ucx_DSO_FALSE='#' + if test "$BUILD_ompi_rte_pmix_DSO" = "1"; then + MCA_BUILD_ompi_rte_pmix_DSO_TRUE= + MCA_BUILD_ompi_rte_pmix_DSO_FALSE='#' else - MCA_BUILD_ompi_pml_ucx_DSO_TRUE='#' - MCA_BUILD_ompi_pml_ucx_DSO_FALSE= + MCA_BUILD_ompi_rte_pmix_DSO_TRUE='#' + MCA_BUILD_ompi_rte_pmix_DSO_FALSE= fi @@ -333610,17 +362101,19 @@ unset compile_mode + if test $components_last_result -eq 1; then : + components_looking_for_succeed=0 +fi - - opal_show_subsubsubtitle "MCA component pml:v (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component rte:orte (m4 configuration macro, priority 10)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/pml/v" + component_path="$srcdir/ompi/mca/rte/orte" want_component=0 # build if: @@ -333652,8 +362145,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pml" ; then - if test "$DIRECT_pml" = "v" ; then + if test ! -z "$DIRECT_rte" ; then + if test "$DIRECT_rte" = "orte" ; then want_component=1 else want_component=0 @@ -333662,10 +362155,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_pml" = "1"; then : + if test "$DISABLE_rte" = "1"; then : want_component=0 fi - if test "$DISABLE_pml_v" = "1"; then : + if test "$DISABLE_rte_orte" = "1"; then : want_component=0 fi @@ -333678,8 +362171,8 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pml:v compile mode" >&5 -$as_echo_n "checking for MCA component pml:v compile mode... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rte:orte compile mode" >&5 +$as_echo_n "checking for MCA component rte:orte compile mode... " >&6; } compile_mode="static" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 $as_echo "$compile_mode" >&6; } @@ -333687,9 +362180,24 @@ # try to configure the component - ac_config_files="$ac_config_files ompi/mca/pml/v/Makefile" + ac_config_files="$ac_config_files ompi/mca/rte/orte/Makefile" - should_build=$should_build + + # This will need to get more complicated when we can build against + # an external ORTE. + +# Check whether --with-orte was given. +if test "${with_orte+set}" = set; then : + withval=$with_orte; +fi + + if test "$with_orte" != "no"; then : + should_build=$should_build +else + { $as_echo "$as_me:${as_lineno-$LINENO}: ORTE disabled by user" >&5 +$as_echo "$as_me: ORTE disabled by user" >&6;} + should_build=0 +fi opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -333699,45 +362207,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/pml/v/post_configure.sh" + infile="$srcdir/ompi/mca/rte/orte/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components v" + all_components="$all_components orte" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components v" + dso_components="$dso_components orte" else - if test "pml" = "common"; then + if test "rte" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pml/v/lib${OMPI_LIB_PREFIX}mca_pml_v.la $static_ltlibs" + static_ltlibs="mca/rte/orte/lib${OMPI_LIB_PREFIX}mca_rte_orte.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pml/v/libmca_pml_v.la $static_ltlibs" + static_ltlibs="mca/rte/orte/libmca_rte_orte.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_pml_v_component;" >> $outfile.extern - echo " &mca_pml_v_component, " >> $outfile.struct - static_components="$static_components v" + echo "extern const mca_base_component_t mca_rte_orte_component;" >> $outfile.extern + echo " &mca_rte_orte_component, " >> $outfile.struct + static_components="$static_components orte" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:v can compile" >&5 -$as_echo_n "checking if MCA component pml:v can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rte:orte can compile" >&5 +$as_echo_n "checking if MCA component rte:orte can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pml" = "v" ; then + if test "$DIRECT_rte" = "orte" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_pml_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_rte_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pml component v was supposed to be direct-called, but +as_fn_error $? "*** rte component orte was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -333745,8 +362253,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pml" = "v" ; then -as_fn_error $? "*** pml component v was supposed to be direct-called, but + if test "$DIRECT_rte" = "orte" ; then +as_fn_error $? "*** rte component orte was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -333761,7 +362269,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$pml_v_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$rte_orte_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -333801,7 +362309,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_v_LDFLAGS; do + for arg in $rte_orte_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -333882,7 +362390,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_v_WRAPPER_EXTRA_LDFLAGS; do + for arg in $rte_orte_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -333924,7 +362432,7 @@ fi - if test "$pml_v_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$rte_orte_WRAPPER_EXTRA_LIBS" = ""; then : @@ -333964,7 +362472,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_v_LIBS; do + for arg in $rte_orte_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -334045,7 +362553,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_v_WRAPPER_EXTRA_LIBS; do + for arg in $rte_orte_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -334093,730 +362601,10 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$pml_v_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $pml_v_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pml_v_WRAPPER_EXTRA_CPPFLAGS ($pml_v_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pml_v_WRAPPER_EXTRA_CPPFLAGS ($pml_v_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:v can compile" >&5 -$as_echo_n "checking if MCA component pml:v can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_pml" = "v" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"v\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_pml" ; then - if test "$DIRECT_pml" = "v" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"v\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components v" -fi - - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_pml_v_DSO=1 -else - BUILD_ompi_pml_v_DSO=0 -fi - if test "$BUILD_ompi_pml_v_DSO" = "1"; then - MCA_BUILD_ompi_pml_v_DSO_TRUE= - MCA_BUILD_ompi_pml_v_DSO_FALSE='#' -else - MCA_BUILD_ompi_pml_v_DSO_TRUE='#' - MCA_BUILD_ompi_pml_v_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - - unset compile_mode - - - - - - opal_show_subsubsubtitle "MCA component pml:yalla (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/ompi/mca/pml/yalla" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pml" ; then - if test "$DIRECT_pml" = "yalla" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_pml" = "1"; then : - want_component=0 -fi - if test "$DISABLE_pml_yalla" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_pml" - SHARED_COMPONENT="$DSO_pml_yalla" - - STATIC_FRAMEWORK="$STATIC_pml" - STATIC_COMPONENT="$STATIC_pml_yalla" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pml:yalla compile mode" >&5 -$as_echo_n "checking for MCA component pml:yalla compile mode... " >&6; } - if test "$DIRECT_pml" = "yalla" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files ompi/mca/pml/yalla/Makefile" - - - - if test -z "$ompi_check_mxm_happy" ; then - -# Check whether --with-mxm was given. -if test "${with_mxm+set}" = set; then : - withval=$with_mxm; -fi - - -# Check whether --with-mxm-libdir was given. -if test "${with_mxm_libdir+set}" = set; then : - withval=$with_mxm_libdir; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-mxm-libdir value" >&5 -$as_echo_n "checking --with-mxm-libdir value... " >&6; } - if test "$with_mxm_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-mxm-libdir)" >&5 -$as_echo "simple no (specified --without-mxm-libdir)" >&6; } -else - if test "$with_mxm_libdir" = "yes" || test "x$with_mxm_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_mxm_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_mxm_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_mxm_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_mxm_libdir/libmxm.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_mxm_libdir/libmxm.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_mxm_libdir/libmxm.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_mxm_libdir)" >&5 -$as_echo "sanity check ok ($with_mxm_libdir)" >&6; } - -fi - - -fi - - -fi - - -fi - - - ompi_check_mxm_pml_yalla_save_CPPFLAGS="$CPPFLAGS" - ompi_check_mxm_pml_yalla_save_LDFLAGS="$LDFLAGS" - ompi_check_mxm_pml_yalla_save_LIBS="$LIBS" - - if test "$with_mxm" != "no"; then : - if test ! -z "$with_mxm" && test "$with_mxm" != "yes"; then : - - ompi_check_mxm_dir="$with_mxm" - -fi - if test ! -z "$with_mxm_libdir" && test "$with_mxm_libdir" != "yes"; then : - ompi_check_mxm_libdir="$with_mxm_libdir" -fi - - - opal_check_package_ompi_check_mxm_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_ompi_check_mxm_save_LDFLAGS="$LDFLAGS" - opal_check_package_ompi_check_mxm_save_LIBS="$LIBS" - - opal_check_package_ompi_check_mxm_orig_CPPFLAGS="$ompi_check_mxm_CPPFLAGS" - opal_check_package_ompi_check_mxm_orig_LDFLAGS="$ompi_check_mxm_LDFLAGS" - opal_check_package_ompi_check_mxm_orig_LIBS="$ompi_check_mxm_LIBS" - - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_mxm_api_mxm_api_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_mxm_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in mxm/api/mxm_api.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "mxm/api/mxm_api.h" "ac_cv_header_mxm_api_mxm_api_h" "$ac_includes_default" -if test "x$ac_cv_header_mxm_api_mxm_api_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_MXM_API_MXM_API_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_mxm_api_mxm_api_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - ompi_check_mxm_CPPFLAGS="$ompi_check_mxm_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in mxm/api/mxm_api.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "mxm/api/mxm_api.h" "ac_cv_header_mxm_api_mxm_api_h" "$ac_includes_default" -if test "x$ac_cv_header_mxm_api_mxm_api_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_MXM_API_MXM_API_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_mxm_cleanup - opal_check_package_lib_happy="no" - if test "$ompi_check_mxm_libdir" != ""; then : - # libdir was specified - search only there - ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$ompi_check_mxm_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_mxm_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 -$as_echo_n "checking for library containing mxm_cleanup... " >&6; } -if ${ac_cv_search_mxm_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char mxm_cleanup (); -int -main () -{ -return mxm_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' mxm; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_mxm_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_mxm_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_mxm_cleanup+:} false; then : - -else - ac_cv_search_mxm_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 -$as_echo "$ac_cv_search_mxm_cleanup" >&6; } -ac_res=$ac_cv_search_mxm_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - unset ac_cv_search_mxm_cleanup -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_mxm_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 -$as_echo_n "checking for library containing mxm_cleanup... " >&6; } -if ${ac_cv_search_mxm_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char mxm_cleanup (); -int -main () -{ -return mxm_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' mxm; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_mxm_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_mxm_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_mxm_cleanup+:} false; then : - -else - ac_cv_search_mxm_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 -$as_echo "$ac_cv_search_mxm_cleanup" >&6; } -ac_res=$ac_cv_search_mxm_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - unset ac_cv_search_mxm_cleanup -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 -$as_echo_n "checking for library containing mxm_cleanup... " >&6; } -if ${ac_cv_search_mxm_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char mxm_cleanup (); -int -main () -{ -return mxm_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' mxm; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_mxm_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_mxm_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_mxm_cleanup+:} false; then : - -else - ac_cv_search_mxm_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 -$as_echo "$ac_cv_search_mxm_cleanup" >&6; } -ac_res=$ac_cv_search_mxm_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - unset ac_cv_search_mxm_cleanup -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 -$as_echo_n "checking for library containing mxm_cleanup... " >&6; } -if ${ac_cv_search_mxm_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char mxm_cleanup (); -int -main () -{ -return mxm_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' mxm; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_mxm_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_mxm_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_mxm_cleanup+:} false; then : - -else - ac_cv_search_mxm_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 -$as_echo "$ac_cv_search_mxm_cleanup" >&6; } -ac_res=$ac_cv_search_mxm_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - unset ac_cv_search_mxm_cleanup -fi -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + if test "$rte_orte_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=1 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -334829,7 +362617,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -334848,16 +362636,236 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $rte_orte_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rte_orte_WRAPPER_EXTRA_CPPFLAGS ($rte_orte_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring rte_orte_WRAPPER_EXTRA_CPPFLAGS ($rte_orte_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rte:orte can compile" >&5 +$as_echo_n "checking if MCA component rte:orte can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_rte" = "orte" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"orte\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"orte\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_rte" ; then + if test "$DIRECT_rte" = "orte" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"orte\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"orte\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components orte" +fi + + + if test "$should_build" = "1"; then : + ompi_rte_base_include="orte/rte_orte.h" +fi + +cat >>confdefs.h <<_ACEOF +#define OMPI_RTE_ORTE $should_build +_ACEOF + + if test $should_build = 1; then + OMPI_RTE_ORTE_TRUE= + OMPI_RTE_ORTE_FALSE='#' +else + OMPI_RTE_ORTE_TRUE='#' + OMPI_RTE_ORTE_FALSE= +fi + + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_ompi_rte_orte_DSO=1 +else + BUILD_ompi_rte_orte_DSO=0 +fi + if test "$BUILD_ompi_rte_orte_DSO" = "1"; then + MCA_BUILD_ompi_rte_orte_DSO_TRUE= + MCA_BUILD_ompi_rte_orte_DSO_FALSE='#' +else + MCA_BUILD_ompi_rte_orte_DSO_TRUE='#' + MCA_BUILD_ompi_rte_orte_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + + if test $components_last_result -eq 1; then : + components_looking_for_succeed=0 +fi + + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + MCA_ompi_rte_ALL_COMPONENTS="$all_components" + MCA_ompi_rte_STATIC_COMPONENTS="$static_components" + MCA_ompi_rte_DSO_COMPONENTS="$dso_components" + MCA_ompi_rte_STATIC_LTLIBS="$static_ltlibs" + + + + + + + + MCA_ompi_rte_ALL_SUBDIRS= + for item in $all_components ; do + MCA_ompi_rte_ALL_SUBDIRS="$MCA_ompi_rte_ALL_SUBDIRS mca/rte/$item" + done + + + + MCA_ompi_rte_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_ompi_rte_STATIC_SUBDIRS="$MCA_ompi_rte_STATIC_SUBDIRS mca/rte/$item" + done + + + + MCA_ompi_rte_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_ompi_rte_DSO_SUBDIRS="$MCA_ompi_rte_DSO_SUBDIRS mca/rte/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "rte" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + + if test "$ompi_rte_base_include" = ""; then : + as_fn_error $? "Did not find a suitable rte component" "$LINENO" 5 +fi + + +cat >>confdefs.h <<_ACEOF +#define MCA_rte_IMPLEMENTATION_HEADER "ompi/mca/rte/$ompi_rte_base_include" +_ACEOF + + + MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS sharedfp" + MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/sharedfp" + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_sharedfp_ALL_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_sharedfp_DSO_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_sharedfp_STATIC_SUBDIRS)" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/sharedfp/libmca_sharedfp.la" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_sharedfp_STATIC_LTLIBS)" @@ -334870,7 +362878,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in want_io_ompio; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -334889,7 +362897,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"want_io_ompio\"" eval $opal_str unset opal_str @@ -334897,303 +362905,282 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libmxm requires libnl v1 or v3" >&5 -$as_echo_n "checking if libmxm requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void mxm_cleanup (void); -int main(int argc, char *argv[]) { - mxm_cleanup (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:334924: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:334931: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - + if test "$enable_io_ompio" != "no"; then : + want_io_ompio=1 else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib mxm" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib mxm" >&2;} - + want_io_ompio=0 fi - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + opal_show_subsubtitle "Configuring MCA framework sharedfp" - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libmxm links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libmxm links to both libnl and libnl-3." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} - libnl_sane=0 -fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas mxm requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas mxm requires libnl" >&2;} + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=ompi/mca/sharedfp/base + as_dir=$outdir; as_fn_mkdir_p - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs mxm" + # emit Makefile rule + ac_config_files="$ac_config_files ompi/mca/sharedfp/Makefile" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework sharedfp" >&5 +$as_echo_n "checking for no configure components in framework sharedfp... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: individual, lockedfile" >&5 +$as_echo "individual, lockedfile" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework sharedfp" >&5 +$as_echo_n "checking for m4 configure components in framework sharedfp... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sm" >&5 +$as_echo "sm" >&6; } - # Loop over every token we've seen so far + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + # run the configure logic for the no-config components - # Check the ending condition + opal_show_subsubsubtitle "MCA component sharedfp:individual (no configuration)" - opal_done="`expr $opal_i \>= $opal_count`" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=$want_io_ompio" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done - # If we didn't find the token, add it to the "array" + component_path="$srcdir/ompi/mca/sharedfp/individual" + want_component=0 - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_sharedfp" ; then + if test "$DIRECT_sharedfp" = "individual" ; then + want_component=1 + else + want_component=0 + fi + fi fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval - -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_sharedfp" = "1"; then : + want_component=0 fi - + if test "$DISABLE_sharedfp_individual" = "1"; then : + want_component=0 fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmxm requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmxm requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} - - libnl_sane=0 + if test "$want_component" = "1"; then : + should_build=$want_io_ompio else - opal_libnlv3_libs="$opal_libnlv3_libs mxm" + should_build=0 +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones + SHARED_FRAMEWORK="$DSO_sharedfp" + SHARED_COMPONENT="$DSO_sharedfp_individual" -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + STATIC_FRAMEWORK="$STATIC_sharedfp" + STATIC_COMPONENT="$STATIC_sharedfp_individual" - # Loop over every token we've seen so far + shared_mode_override=static - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component sharedfp:individual compile mode" >&5 +$as_echo_n "checking for MCA component sharedfp:individual compile mode... " >&6; } + if test "$DIRECT_sharedfp" = "individual" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # Check the ending condition + if test "$should_build" = "1" ; then - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/sharedfp/individual/post_configure.sh" - # If we didn't find the token, add it to the "array" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components individual" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components individual" else - opal_i="`expr $opal_i - 1`" + if test "sharedfp" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/sharedfp/individual/lib${OMPI_LIB_PREFIX}mca_sharedfp_individual.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/sharedfp/individual/libmca_sharedfp_individual.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_sharedfp_individual_component;" >> $outfile.extern + echo " &mca_sharedfp_individual_component, " >> $outfile.struct + static_components="$static_components individual" fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sharedfp:individual can compile" >&5 +$as_echo_n "checking if MCA component sharedfp:individual can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_sharedfp" = "individual" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_sharedfp_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** sharedfp component individual was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_sharedfp" = "individual" ; then +as_fn_error $? "*** sharedfp component individual was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi -fi + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$sharedfp_individual_WRAPPER_EXTRA_LDFLAGS" = ""; then : - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - rm -f conftest conftest_c.$ac_ext - opal_libnl_sane=$libnl_sane + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str + unset opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - ;; - esac + for arg in $sharedfp_individual_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -335216,332 +363203,170 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_mxm_cleanup" != "no" && - test "$ac_cv_search_mxm_cleanup" != "none required"; then : - ompi_check_mxm_LIBS="$ac_cv_search_mxm_cleanup " -else - ompi_check_mxm_LIBS="" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi - - -else - opal_check_package_happy="no" -fi else - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - # see comment above - unset ac_cv_search_mxm_cleanup - opal_check_package_lib_happy="no" - if test "$ompi_check_mxm_libdir" != ""; then : - # libdir was specified - search only there - ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$ompi_check_mxm_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_mxm_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 -$as_echo_n "checking for library containing mxm_cleanup... " >&6; } -if ${ac_cv_search_mxm_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char mxm_cleanup (); -int -main () -{ -return mxm_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' mxm; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_mxm_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_mxm_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_mxm_cleanup+:} false; then : + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -else - ac_cv_search_mxm_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 -$as_echo "$ac_cv_search_mxm_cleanup" >&6; } -ac_res=$ac_cv_search_mxm_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - unset ac_cv_search_mxm_cleanup -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_mxm_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 -$as_echo_n "checking for library containing mxm_cleanup... " >&6; } -if ${ac_cv_search_mxm_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char mxm_cleanup (); -int -main () -{ -return mxm_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' mxm; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_mxm_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_mxm_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_mxm_cleanup+:} false; then : + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -else - ac_cv_search_mxm_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 -$as_echo "$ac_cv_search_mxm_cleanup" >&6; } -ac_res=$ac_cv_search_mxm_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - unset ac_cv_search_mxm_cleanup + for arg in $sharedfp_individual_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 -$as_echo_n "checking for library containing mxm_cleanup... " >&6; } -if ${ac_cv_search_mxm_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char mxm_cleanup (); -int -main () -{ -return mxm_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' mxm; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_mxm_cleanup=$ac_res + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_mxm_cleanup+:} false; then : - break fi -done -if ${ac_cv_search_mxm_cleanup+:} false; then : + done -else - ac_cv_search_mxm_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 -$as_echo "$ac_cv_search_mxm_cleanup" >&6; } -ac_res=$ac_cv_search_mxm_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - unset ac_cv_search_mxm_cleanup -fi -fi -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 -$as_echo_n "checking for library containing mxm_cleanup... " >&6; } -if ${ac_cv_search_mxm_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char mxm_cleanup (); -int -main () -{ -return mxm_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' mxm; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_mxm_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_mxm_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_mxm_cleanup+:} false; then : -else - ac_cv_search_mxm_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 -$as_echo "$ac_cv_search_mxm_cleanup" >&6; } -ac_res=$ac_cv_search_mxm_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" fi + if test "$sharedfp_individual_WRAPPER_EXTRA_LIBS" = ""; then : - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - unset ac_cv_search_mxm_cleanup + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $sharedfp_individual_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi + done fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else @@ -335554,7 +363379,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -335573,16 +363398,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $sharedfp_individual_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$sharedfp_individual_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -335595,7 +363470,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -335614,7 +363489,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -335622,276 +363497,490 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $sharedfp_individual_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libmxm requires libnl v1 or v3" >&5 -$as_echo_n "checking if libmxm requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void mxm_cleanup (void); -int main(int argc, char *argv[]) { - mxm_cleanup (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:335649: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:335656: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring sharedfp_individual_WRAPPER_EXTRA_CPPFLAGS ($sharedfp_individual_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring sharedfp_individual_WRAPPER_EXTRA_CPPFLAGS ($sharedfp_individual_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib mxm" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib mxm" >&2;} + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sharedfp:individual can compile" >&5 +$as_echo_n "checking if MCA component sharedfp:individual can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_sharedfp" = "individual" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"individual\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"individual\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_sharedfp" ; then + if test "$DIRECT_sharedfp" = "individual" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"individual\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"individual\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + # add component to all component list + all_components="$all_components individual" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_ompi_sharedfp_individual_DSO=1 + else + BUILD_ompi_sharedfp_individual_DSO=0 + fi + if test "$BUILD_ompi_sharedfp_individual_DSO" = "1"; then + MCA_BUILD_ompi_sharedfp_individual_DSO_TRUE= + MCA_BUILD_ompi_sharedfp_individual_DSO_FALSE='#' +else + MCA_BUILD_ompi_sharedfp_individual_DSO_TRUE='#' + MCA_BUILD_ompi_sharedfp_individual_DSO_FALSE= fi - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + ac_config_files="$ac_config_files ompi/mca/sharedfp/individual/Makefile" - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libmxm links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libmxm links to both libnl and libnl-3." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} + unset compile_mode - libnl_sane=0 -fi + opal_show_subsubsubtitle "MCA component sharedfp:lockedfile (no configuration)" - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas mxm requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas mxm requires libnl" >&2;} + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=$want_io_ompio" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} - libnl_sane=0 + + component_path="$srcdir/ompi/mca/sharedfp/lockedfile" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_sharedfp" ; then + if test "$DIRECT_sharedfp" = "lockedfile" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_sharedfp" = "1"; then : + want_component=0 +fi + if test "$DISABLE_sharedfp_lockedfile" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=$want_io_ompio else - opal_libnlv1_libs="$opal_libnlv1_libs mxm" + should_build=0 +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones + SHARED_FRAMEWORK="$DSO_sharedfp" + SHARED_COMPONENT="$DSO_sharedfp_lockedfile" -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + STATIC_FRAMEWORK="$STATIC_sharedfp" + STATIC_COMPONENT="$STATIC_sharedfp_lockedfile" - # Loop over every token we've seen so far + shared_mode_override=static - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component sharedfp:lockedfile compile mode" >&5 +$as_echo_n "checking for MCA component sharedfp:lockedfile compile mode... " >&6; } + if test "$DIRECT_sharedfp" = "lockedfile" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # Check the ending condition + if test "$should_build" = "1" ; then - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/sharedfp/lockedfile/post_configure.sh" - # If we didn't find the token, add it to the "array" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components lockedfile" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components lockedfile" else - opal_i="`expr $opal_i - 1`" + if test "sharedfp" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/sharedfp/lockedfile/lib${OMPI_LIB_PREFIX}mca_sharedfp_lockedfile.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/sharedfp/lockedfile/libmca_sharedfp_lockedfile.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_sharedfp_lockedfile_component;" >> $outfile.extern + echo " &mca_sharedfp_lockedfile_component, " >> $outfile.struct + static_components="$static_components lockedfile" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sharedfp:lockedfile can compile" >&5 +$as_echo_n "checking if MCA component sharedfp:lockedfile can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_sharedfp" = "lockedfile" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_sharedfp_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** sharedfp component lockedfile was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_sharedfp" = "lockedfile" ; then +as_fn_error $? "*** sharedfp component lockedfile was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$sharedfp_lockedfile_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmxm requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmxm requires libnl-3" >&2;} + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} - libnl_sane=0 + for arg in $sharedfp_lockedfile_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_libnlv3_libs="$opal_libnlv3_libs mxm" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Loop over every token we've seen so far + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. +else - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # Increment the counter + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_i="`expr $opal_i + 1`" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done - # If we didn't find the token, add it to the "array" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + for arg in $sharedfp_lockedfile_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -# Done; do the assignment + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 fi + if test "$sharedfp_lockedfile_WRAPPER_EXTRA_LIBS" = ""; then : -fi - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - rm -f conftest conftest_c.$ac_ext + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - opal_libnl_sane=$libnl_sane + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $sharedfp_lockedfile_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done # Unwind the index @@ -335915,10 +364004,65 @@ done - ;; - esac +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $sharedfp_lockedfile_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -335941,28 +364085,74 @@ done - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no fi -fi + fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_mxm_cleanup" != "no" && - test "$ac_cv_search_mxm_cleanup" != "none required"; then : - ompi_check_mxm_LIBS="$ac_cv_search_mxm_cleanup " -else - ompi_check_mxm_LIBS="" + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$sharedfp_lockedfile_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $sharedfp_lockedfile_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -335986,169 +364176,217 @@ done - - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_mxm_happy="yes" +fi else - ompi_check_mxm_CPPFLAGS="$opal_check_package_ompi_check_mxm_orig_CPPFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - ompi_check_mxm_LIBS="$opal_check_package_ompi_check_mxm_orig_LIBS" - ompi_check_mxm_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring sharedfp_lockedfile_WRAPPER_EXTRA_CPPFLAGS ($sharedfp_lockedfile_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring sharedfp_lockedfile_WRAPPER_EXTRA_CPPFLAGS ($sharedfp_lockedfile_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi fi - CPPFLAGS="$opal_check_package_ompi_check_mxm_save_CPPFLAGS" - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - LIBS="$opal_check_package_ompi_check_mxm_save_LIBS" + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sharedfp:lockedfile can compile" >&5 +$as_echo_n "checking if MCA component sharedfp:lockedfile can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_sharedfp" = "lockedfile" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lockedfile\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"lockedfile\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_sharedfp" ; then + if test "$DIRECT_sharedfp" = "lockedfile" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lockedfile\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"lockedfile\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + # add component to all component list + all_components="$all_components lockedfile" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_ompi_sharedfp_lockedfile_DSO=1 + else + BUILD_ompi_sharedfp_lockedfile_DSO=0 + fi + if test "$BUILD_ompi_sharedfp_lockedfile_DSO" = "1"; then + MCA_BUILD_ompi_sharedfp_lockedfile_DSO_TRUE= + MCA_BUILD_ompi_sharedfp_lockedfile_DSO_FALSE='#' else - ompi_check_mxm_happy="no" + MCA_BUILD_ompi_sharedfp_lockedfile_DSO_TRUE='#' + MCA_BUILD_ompi_sharedfp_lockedfile_DSO_FALSE= fi - CPPFLAGS="$ompi_check_mxm_pml_yalla_save_CPPFLAGS" - LDFLAGS="$ompi_check_mxm_pml_yalla_save_LDFLAGS" - LIBS="$ompi_check_mxm_pml_yalla_save_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MXM version compatibility" >&5 -$as_echo_n "checking for MXM version compatibility... " >&6; } + ac_config_files="$ac_config_files ompi/mca/sharedfp/lockedfile/Makefile" - old_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -I$ompi_check_mxm_dir/include" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -#ifndef MXM_VERSION -#error "MXM Version is less than 2.1, please upgrade" -#endif -# -#if MXM_API < MXM_VERSION(2,1) -#error "MXM Version is less than 2.1, please upgrade" -#endif + unset compile_mode + + + # configure components that use built-in configuration scripts + + + + best_mca_component_priority=0 + components_looking_for_succeed=$want_io_ompio + components_last_result=0 + + + opal_show_subsubsubtitle "MCA component sharedfp:sm (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/ompi/mca/sharedfp/sm" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_sharedfp" ; then + if test "$DIRECT_sharedfp" = "sm" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_sharedfp" = "1"; then : + want_component=0 +fi + if test "$DISABLE_sharedfp_sm" = "1"; then : + want_component=0 +fi - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ompi_mxm_version_ok="yes" + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else - ompi_mxm_version_ok="no" + should_build=0 fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_mxm_version_ok" >&5 -$as_echo "$ompi_mxm_version_ok" >&6; } - CFLAGS=$old_CFLAGS - if test "$ompi_mxm_version_ok" = "no"; then : - ompi_check_mxm_happy="no" -fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + SHARED_FRAMEWORK="$DSO_sharedfp" + SHARED_COMPONENT="$DSO_sharedfp_sm" + STATIC_FRAMEWORK="$STATIC_sharedfp" + STATIC_COMPONENT="$STATIC_sharedfp_sm" + shared_mode_override=static - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Mellanox MXM: $ompi_check_mxm_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component sharedfp:sm compile mode" >&5 +$as_echo_n "checking for MCA component sharedfp:sm compile mode... " >&6; } + if test "$DIRECT_sharedfp" = "sm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } fi - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # try to configure the component - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + ac_config_files="$ac_config_files ompi/mca/sharedfp/sm/Makefile" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + sharedfp_sm_happy=no + ac_fn_c_check_header_mongrel "$LINENO" "semaphore.h" "ac_cv_header_semaphore_h" "$ac_includes_default" +if test "x$ac_cv_header_semaphore_h" = xyes; then : + for ac_func in sem_open +do : + ac_fn_c_check_func "$LINENO" "sem_open" "ac_cv_func_sem_open" +if test "x$ac_cv_func_sem_open" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SEM_OPEN 1 +_ACEOF + sharedfp_sm_happy=yes +fi +done + +fi - fi - if test "$ompi_check_mxm_happy" = "yes"; then : - pml_yalla_LDFLAGS="$pml_yalla_LDFLAGS $ompi_check_mxm_LDFLAGS" - pml_yalla_LIBS="$pml_yalla_LIBS $ompi_check_mxm_LIBS" - pml_yalla_CPPFLAGS="$pml_yalla_CPPFLAGS $ompi_check_mxm_CPPFLAGS" - pml_yalla_happy="yes" -else - if test ! -z "$with_mxm" && test "$with_mxm" != "no"; then : - as_fn_error $? "MXM support requested but not found. Aborting" "$LINENO" 5 + + ac_fn_c_check_header_mongrel "$LINENO" "semaphore.h" "ac_cv_header_semaphore_h" "$ac_includes_default" +if test "x$ac_cv_header_semaphore_h" = xyes; then : + for ac_func in sem_init +do : + ac_fn_c_check_func "$LINENO" "sem_init" "ac_cv_func_sem_init" +if test "x$ac_cv_func_sem_init" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SEM_INIT 1 +_ACEOF + sharedfp_sm_happy=yes fi - pml_yalla_happy="no" +done + fi - if test "$pml_yalla_happy" = "yes"; then : + + if test "$sharedfp_sm_happy" = "yes"; then : should_build=$should_build else should_build=0 fi - # substitute in the things needed to build mxm - - - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -336157,45 +364395,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/pml/yalla/post_configure.sh" + infile="$srcdir/ompi/mca/sharedfp/sm/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components yalla" + all_components="$all_components sm" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components yalla" + dso_components="$dso_components sm" else - if test "pml" = "common"; then + if test "sharedfp" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pml/yalla/lib${OMPI_LIB_PREFIX}mca_pml_yalla.la $static_ltlibs" + static_ltlibs="mca/sharedfp/sm/lib${OMPI_LIB_PREFIX}mca_sharedfp_sm.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pml/yalla/libmca_pml_yalla.la $static_ltlibs" + static_ltlibs="mca/sharedfp/sm/libmca_sharedfp_sm.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_pml_yalla_component;" >> $outfile.extern - echo " &mca_pml_yalla_component, " >> $outfile.struct - static_components="$static_components yalla" + echo "extern const mca_base_component_t mca_sharedfp_sm_component;" >> $outfile.extern + echo " &mca_sharedfp_sm_component, " >> $outfile.struct + static_components="$static_components sm" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:yalla can compile" >&5 -$as_echo_n "checking if MCA component pml:yalla can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sharedfp:sm can compile" >&5 +$as_echo_n "checking if MCA component sharedfp:sm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pml" = "yalla" ; then + if test "$DIRECT_sharedfp" = "sm" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_pml_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_sharedfp_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pml component yalla was supposed to be direct-called, but +as_fn_error $? "*** sharedfp component sm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -336203,8 +364441,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pml" = "yalla" ; then -as_fn_error $? "*** pml component yalla was supposed to be direct-called, but + if test "$DIRECT_sharedfp" = "sm" ; then +as_fn_error $? "*** sharedfp component sm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -336219,7 +364457,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$pml_yalla_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$sharedfp_sm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -336259,7 +364497,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_yalla_LDFLAGS; do + for arg in $sharedfp_sm_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -336340,7 +364578,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_yalla_WRAPPER_EXTRA_LDFLAGS; do + for arg in $sharedfp_sm_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -336382,7 +364620,7 @@ fi - if test "$pml_yalla_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$sharedfp_sm_WRAPPER_EXTRA_LIBS" = ""; then : @@ -336422,7 +364660,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_yalla_LIBS; do + for arg in $sharedfp_sm_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -336503,7 +364741,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_yalla_WRAPPER_EXTRA_LIBS; do + for arg in $sharedfp_sm_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -336551,7 +364789,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$pml_yalla_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$sharedfp_sm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -336594,7 +364832,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $pml_yalla_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $sharedfp_sm_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -336637,32 +364875,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pml_yalla_WRAPPER_EXTRA_CPPFLAGS ($pml_yalla_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pml_yalla_WRAPPER_EXTRA_CPPFLAGS ($pml_yalla_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring sharedfp_sm_WRAPPER_EXTRA_CPPFLAGS ($sharedfp_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring sharedfp_sm_WRAPPER_EXTRA_CPPFLAGS ($sharedfp_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:yalla can compile" >&5 -$as_echo_n "checking if MCA component pml:yalla can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sharedfp:sm can compile" >&5 +$as_echo_n "checking if MCA component sharedfp:sm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pml" = "yalla" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"yalla\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"yalla\" failed to configure properly" >&2;} + if test "$with_sharedfp" = "sm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_pml" ; then - if test "$DIRECT_pml" = "yalla" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"yalla\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"yalla\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_sharedfp" ; then + if test "$DIRECT_sharedfp" = "sm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -336670,42 +364908,23 @@ fi # add component to all component list - all_components="$all_components yalla" -fi - - - if test "$should_build" = "1"; then : - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for index in endpoint array for tag PML" >&5 -$as_echo_n "checking for index in endpoint array for tag PML... " >&6; } - if test -z "$OMPI_PROC_ENDPOINT_TAG_PML"; then : - OMPI_PROC_ENDPOINT_TAG_PML=$ompi_endpoint_tag_counter - -cat >>confdefs.h <<_ACEOF -#define OMPI_PROC_ENDPOINT_TAG_PML $OMPI_PROC_ENDPOINT_TAG_PML -_ACEOF - - ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1` + all_components="$all_components sm" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OMPI_PROC_ENDPOINT_TAG_PML" >&5 -$as_echo "$OMPI_PROC_ENDPOINT_TAG_PML" >&6; } -fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_ompi_pml_yalla_DSO=1 + BUILD_ompi_sharedfp_sm_DSO=1 else - BUILD_ompi_pml_yalla_DSO=0 + BUILD_ompi_sharedfp_sm_DSO=0 fi - if test "$BUILD_ompi_pml_yalla_DSO" = "1"; then - MCA_BUILD_ompi_pml_yalla_DSO_TRUE= - MCA_BUILD_ompi_pml_yalla_DSO_FALSE='#' + if test "$BUILD_ompi_sharedfp_sm_DSO" = "1"; then + MCA_BUILD_ompi_sharedfp_sm_DSO_TRUE= + MCA_BUILD_ompi_sharedfp_sm_DSO_FALSE='#' else - MCA_BUILD_ompi_pml_yalla_DSO_TRUE='#' - MCA_BUILD_ompi_pml_yalla_DSO_FALSE= + MCA_BUILD_ompi_sharedfp_sm_DSO_TRUE='#' + MCA_BUILD_ompi_sharedfp_sm_DSO_FALSE= fi @@ -336727,18 +364946,18 @@ - if test "1" != "0"; then : + if test "$want_io_ompio" != "0"; then : - for component_path in $srcdir/ompi/mca/pml/* ; do + for component_path in $srcdir/ompi/mca/sharedfp/* ; do component="`basename $component_path`" if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component pml:$component (need to configure)" + opal_show_subsubsubtitle "MCA component sharedfp:$component (need to configure)" opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/ompi/mca/pml/$component" + component_path="$srcdir/ompi/mca/sharedfp/$component" want_component=0 # build if: @@ -336770,8 +364989,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pml" ; then - if test "$DIRECT_pml" = "$component" ; then + if test ! -z "$DIRECT_sharedfp" ; then + if test "$DIRECT_sharedfp" = "$component" ; then want_component=1 else want_component=0 @@ -336780,10 +364999,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_pml" = "1"; then : + if test "$DISABLE_sharedfp" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_pml_$component" + str="DISABLED_COMPONENT_CHECK=\$DISABLE_sharedfp_$component" eval $str if test "$DISABLED_COMPONENT_CHECK" = "1" ; then want_component=0 @@ -336796,12 +365015,12 @@ fi - SHARED_FRAMEWORK="$DSO_pml" - str="SHARED_COMPONENT=\$DSO_pml_$component" + SHARED_FRAMEWORK="$DSO_sharedfp" + str="SHARED_COMPONENT=\$DSO_sharedfp_$component" eval $str - STATIC_FRAMEWORK="$STATIC_pml" - str="STATIC_COMPONENT=\$STATIC_pml_$component" + STATIC_FRAMEWORK="$STATIC_sharedfp" + str="STATIC_COMPONENT=\$STATIC_sharedfp_$component" eval $str shared_mode_override=static @@ -336820,9 +365039,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pml:$component compile mode" >&5 -$as_echo_n "checking for MCA component pml:$component compile mode... " >&6; } - if test "$DIRECT_pml" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component sharedfp:$component compile mode" >&5 +$as_echo_n "checking for MCA component sharedfp:$component compile mode... " >&6; } + if test "$DIRECT_sharedfp" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -336875,12 +365094,12 @@ # # Invoke configure in a specific subdirectory. # -# ompi/mca/pml/$component is the directory to invoke in +# ompi/mca/sharedfp/$component is the directory to invoke in # $opal_subdir_args is the list of arguments to pass # should_build=1 is actions to execute upon success # should_build=0 is actions to execute upon failure # -subdir_dir="ompi/mca/pml/$component" +subdir_dir="ompi/mca/sharedfp/$component" subdir_args="$opal_subdir_args" subdir_success="should_build=1" subdir_failure="should_build=0" @@ -337024,7 +365243,7 @@ # do some extra work to pass flags back from the # top-level configure, the way a configure.m4 # component would. - infile="$srcdir/ompi/mca/pml/all_components/post_configure.sh" + infile="$srcdir/ompi/mca/sharedfp/all_components/post_configure.sh" if test -f $infile; then # First check for the ABORT tag @@ -337038,12 +365257,12 @@ line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - pml_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + sharedfp_all_components_WRAPPER_EXTRA_LDFLAGS="$line" fi line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - pml_all_components_WRAPPER_EXTRA_LIBS="$line" + sharedfp_all_components_WRAPPER_EXTRA_LIBS="$line" fi fi @@ -337052,7 +365271,7 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/pml/$component/post_configure.sh" + infile="$srcdir/ompi/mca/sharedfp/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs all_components="$all_components $component" @@ -337060,37 +365279,37 @@ if test "$compile_mode" = "dso" ; then dso_components="$dso_components $component" else - if test "pml" = "common"; then + if test "sharedfp" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pml/$component/lib${OMPI_LIB_PREFIX}mca_pml_$component.la $static_ltlibs" + static_ltlibs="mca/sharedfp/$component/lib${OMPI_LIB_PREFIX}mca_sharedfp_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pml/$component/libmca_pml_$component.la $static_ltlibs" + static_ltlibs="mca/sharedfp/$component/libmca_sharedfp_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_pml_$component_component;" >> $outfile.extern - echo " &mca_pml_$component_component, " >> $outfile.struct + echo "extern const mca_base_component_t mca_sharedfp_$component_component;" >> $outfile.extern + echo " &mca_sharedfp_$component_component, " >> $outfile.struct static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:$component can compile" >&5 -$as_echo_n "checking if MCA component pml:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sharedfp:$component can compile" >&5 +$as_echo_n "checking if MCA component sharedfp:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pml" = "$component" ; then + if test "$DIRECT_sharedfp" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_pml_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_sharedfp_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pml component $component was supposed to be direct-called, but +as_fn_error $? "*** sharedfp component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -337098,8 +365317,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pml" = "$component" ; then -as_fn_error $? "*** pml component $component was supposed to be direct-called, but + if test "$DIRECT_sharedfp" = "$component" ; then +as_fn_error $? "*** sharedfp component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -337114,7 +365333,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$pml_$component_WRAPPER_EXTRA_LDFLAGS" + str="line=\$sharedfp_$component_WRAPPER_EXTRA_LDFLAGS" eval "$str" @@ -337195,7 +365414,7 @@ unset $opal_var done -str="line=\$pml_$component_WRAPPER_EXTRA_LIBS" +str="line=\$sharedfp_$component_WRAPPER_EXTRA_LIBS" eval "$str" @@ -337286,14 +365505,14 @@ else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pml:$component can compile" >&5 -$as_echo_n "checking if MCA component pml:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sharedfp:$component can compile" >&5 +$as_echo_n "checking if MCA component sharedfp:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pml" = "$component" ; then + if test "$with_sharedfp" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 @@ -337301,8 +365520,8 @@ as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_pml" ; then - if test "$DIRECT_pml" = "$component" ; then + if test ! -z "$DIRECT_sharedfp" ; then + if test "$DIRECT_sharedfp" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 @@ -337317,10 +365536,10 @@ fi - MCA_ompi_pml_ALL_COMPONENTS="$all_components" - MCA_ompi_pml_STATIC_COMPONENTS="$static_components" - MCA_ompi_pml_DSO_COMPONENTS="$dso_components" - MCA_ompi_pml_STATIC_LTLIBS="$static_ltlibs" + MCA_ompi_sharedfp_ALL_COMPONENTS="$all_components" + MCA_ompi_sharedfp_STATIC_COMPONENTS="$static_components" + MCA_ompi_sharedfp_DSO_COMPONENTS="$dso_components" + MCA_ompi_sharedfp_STATIC_LTLIBS="$static_ltlibs" @@ -337328,23 +365547,23 @@ - MCA_ompi_pml_ALL_SUBDIRS= + MCA_ompi_sharedfp_ALL_SUBDIRS= for item in $all_components ; do - MCA_ompi_pml_ALL_SUBDIRS="$MCA_ompi_pml_ALL_SUBDIRS mca/pml/$item" + MCA_ompi_sharedfp_ALL_SUBDIRS="$MCA_ompi_sharedfp_ALL_SUBDIRS mca/sharedfp/$item" done - MCA_ompi_pml_STATIC_SUBDIRS= + MCA_ompi_sharedfp_STATIC_SUBDIRS= for item in $static_components ; do - MCA_ompi_pml_STATIC_SUBDIRS="$MCA_ompi_pml_STATIC_SUBDIRS mca/pml/$item" + MCA_ompi_sharedfp_STATIC_SUBDIRS="$MCA_ompi_sharedfp_STATIC_SUBDIRS mca/sharedfp/$item" done - MCA_ompi_pml_DSO_SUBDIRS= + MCA_ompi_sharedfp_DSO_SUBDIRS= for item in $dso_components ; do - MCA_ompi_pml_DSO_SUBDIRS="$MCA_ompi_pml_DSO_SUBDIRS mca/pml/$item" + MCA_ompi_sharedfp_DSO_SUBDIRS="$MCA_ompi_sharedfp_DSO_SUBDIRS mca/sharedfp/$item" done @@ -337352,7 +365571,7 @@ # Create the final .h file that will be included in the type's # top-level glue. This lists all the static components. We don't # need to do this for "common". - if test "pml" != "common"; then + if test "sharedfp" != "common"; then cat > $outfile <>confdefs.h <<_ACEOF -#define MCA_ompi_pml_DIRECT_CALL $MCA_ompi_pml_DIRECT_CALL -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define MCA_ompi_pml_DIRECT_CALL_COMPONENT $MCA_ompi_pml_DIRECT_CALL_COMPONENT -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define MCA_ompi_pml_DIRECT_CALL_HEADER "$MCA_ompi_pml_DIRECT_CALL_HEADER" -_ACEOF - - - - MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS rte" - MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/rte" - MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_rte_ALL_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_rte_DSO_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_rte_STATIC_SUBDIRS)" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/rte/libmca_rte.la" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_rte_STATIC_LTLIBS)" - - ompi_rte_base_include= - - # configure all the components - - opal_show_subsubtitle "Configuring MCA framework rte" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=ompi/mca/rte/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files ompi/mca/rte/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework rte" >&5 -$as_echo_n "checking for no configure components in framework rte... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework rte" >&5 -$as_echo_n "checking for m4 configure components in framework rte... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: orte, pmix" >&5 -$as_echo "orte, pmix" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - - # configure components that use built-in configuration scripts - - - - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - opal_show_subsubsubtitle "MCA component rte:pmix (m4 configuration macro, priority 50)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/ompi/mca/rte/pmix" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rte" ; then - if test "$DIRECT_rte" = "pmix" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_rte" = "1"; then : - want_component=0 -fi - if test "$DISABLE_rte_pmix" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rte:pmix compile mode" >&5 -$as_echo_n "checking for MCA component rte:pmix compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - - - # try to configure the component - - ac_config_files="$ac_config_files ompi/mca/rte/pmix/Makefile" - - - -# Check whether --with-ompi-pmix-rte was given. -if test "${with_ompi_pmix_rte+set}" = set; then : - withval=$with_ompi_pmix_rte; -fi - - if test "$with_ompi_pmix_rte" == "yes"; then : - should_build=$should_build - { $as_echo "$as_me:${as_lineno-$LINENO}: PMIx RTE selected by user" >&5 -$as_echo "$as_me: PMIx RTE selected by user" >&6;} -else - should_build=0 -fi - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/rte/pmix/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components pmix" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components pmix" - else - if test "rte" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/rte/pmix/lib${OMPI_LIB_PREFIX}mca_rte_pmix.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rte/pmix/libmca_rte_pmix.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_rte_pmix_component;" >> $outfile.extern - echo " &mca_rte_pmix_component, " >> $outfile.struct - static_components="$static_components pmix" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rte:pmix can compile" >&5 -$as_echo_n "checking if MCA component rte:pmix can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_rte" = "pmix" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_rte_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** rte component pmix was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rte" = "pmix" ; then -as_fn_error $? "*** rte component pmix was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$rte_pmix_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $rte_pmix_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $rte_pmix_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - if test "$rte_pmix_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $rte_pmix_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $rte_pmix_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$rte_pmix_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=1 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + rm -f $outfile.struct $outfile.extern + unset all_components static_components dso_components outfile outfile_real - for arg in $rte_pmix_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done # Unwind the index @@ -338065,99 +365631,67 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rte_pmix_WRAPPER_EXTRA_CPPFLAGS ($rte_pmix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring rte_pmix_WRAPPER_EXTRA_CPPFLAGS ($rte_pmix_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rte:pmix can compile" >&5 -$as_echo_n "checking if MCA component rte:pmix can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_rte" = "pmix" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pmix\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pmix\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_rte" ; then - if test "$DIRECT_rte" = "pmix" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pmix\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pmix\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS topo" + MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/topo" + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_topo_ALL_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_topo_DSO_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_topo_STATIC_SUBDIRS)" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/topo/libmca_topo.la" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_topo_STATIC_LTLIBS)" - # add component to all component list - all_components="$all_components pmix" -fi + opal_show_subsubtitle "Configuring MCA framework topo" - if test "$should_build" = "1"; then : - ompi_rte_base_include="pmix/rte_pmix.h" -fi -cat >>confdefs.h <<_ACEOF -#define OMPI_RTE_PMIX $should_build -_ACEOF - if test $should_build = 1; then - OMPI_RTE_PMIX_TRUE= - OMPI_RTE_PMIX_FALSE='#' -else - OMPI_RTE_PMIX_TRUE='#' - OMPI_RTE_PMIX_FALSE= -fi + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=ompi/mca/topo/base + as_dir=$outdir; as_fn_mkdir_p + # emit Makefile rule + ac_config_files="$ac_config_files ompi/mca/topo/Makefile" - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_rte_pmix_DSO=1 -else - BUILD_ompi_rte_pmix_DSO=0 -fi - if test "$BUILD_ompi_rte_pmix_DSO" = "1"; then - MCA_BUILD_ompi_rte_pmix_DSO_TRUE= - MCA_BUILD_ompi_rte_pmix_DSO_FALSE='#' -else - MCA_BUILD_ompi_rte_pmix_DSO_TRUE='#' - MCA_BUILD_ompi_rte_pmix_DSO_FALSE= -fi + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework topo" >&5 +$as_echo_n "checking for no configure components in framework topo... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: basic" >&5 +$as_echo "basic" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework topo" >&5 +$as_echo_n "checking for m4 configure components in framework topo... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: treematch" >&5 +$as_echo "treematch" >&6; } - unset compile_mode + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - if test $components_last_result -eq 1; then : - components_looking_for_succeed=0 -fi + # run the configure logic for the no-config components - opal_show_subsubsubtitle "MCA component rte:orte (m4 configuration macro, priority 10)" + opal_show_subsubsubtitle "MCA component topo:basic (no configuration)" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/ompi/mca/rte/orte" + component_path="$srcdir/ompi/mca/topo/basic" want_component=0 # build if: @@ -338189,8 +365723,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_rte" ; then - if test "$DIRECT_rte" = "orte" ; then + if test ! -z "$DIRECT_topo" ; then + if test "$DIRECT_topo" = "basic" ; then want_component=1 else want_component=0 @@ -338199,97 +365733,99 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_rte" = "1"; then : + if test "$DISABLE_topo" = "1"; then : want_component=0 fi - if test "$DISABLE_rte_orte" = "1"; then : + if test "$DISABLE_topo_basic" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component rte:orte compile mode" >&5 -$as_echo_n "checking for MCA component rte:orte compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - - - # try to configure the component - ac_config_files="$ac_config_files ompi/mca/rte/orte/Makefile" + SHARED_FRAMEWORK="$DSO_topo" + SHARED_COMPONENT="$DSO_topo_basic" + STATIC_FRAMEWORK="$STATIC_topo" + STATIC_COMPONENT="$STATIC_topo_basic" - # This will need to get more complicated when we can build against - # an external ORTE. + shared_mode_override=static -# Check whether --with-orte was given. -if test "${with_orte+set}" = set; then : - withval=$with_orte; -fi + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - if test "$with_orte" != "no"; then : - should_build=$should_build -else - { $as_echo "$as_me:${as_lineno-$LINENO}: ORTE disabled by user" >&5 -$as_echo "$as_me: ORTE disabled by user" >&6;} - should_build=0 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component topo:basic compile mode" >&5 +$as_echo_n "checking for MCA component topo:basic compile mode... " >&6; } + if test "$DIRECT_topo" = "basic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/rte/orte/post_configure.sh" + infile="$srcdir/ompi/mca/topo/basic/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components orte" + all_components="$all_components basic" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components orte" + dso_components="$dso_components basic" else - if test "rte" = "common"; then + if test "topo" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/rte/orte/lib${OMPI_LIB_PREFIX}mca_rte_orte.la $static_ltlibs" + static_ltlibs="mca/topo/basic/lib${OMPI_LIB_PREFIX}mca_topo_basic.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/rte/orte/libmca_rte_orte.la $static_ltlibs" + static_ltlibs="mca/topo/basic/libmca_topo_basic.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_rte_orte_component;" >> $outfile.extern - echo " &mca_rte_orte_component, " >> $outfile.struct - static_components="$static_components orte" + echo "extern const mca_base_component_t mca_topo_basic_component;" >> $outfile.extern + echo " &mca_topo_basic_component, " >> $outfile.struct + static_components="$static_components basic" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rte:orte can compile" >&5 -$as_echo_n "checking if MCA component rte:orte can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component topo:basic can compile" >&5 +$as_echo_n "checking if MCA component topo:basic can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_rte" = "orte" ; then + if test "$DIRECT_topo" = "basic" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_rte_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_topo_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** rte component orte was supposed to be direct-called, but +as_fn_error $? "*** topo component basic was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -338297,8 +365833,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_rte" = "orte" ; then -as_fn_error $? "*** rte component orte was supposed to be direct-called, but + if test "$DIRECT_topo" = "basic" ; then +as_fn_error $? "*** topo component basic was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -338313,7 +365849,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$rte_orte_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$topo_basic_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -338353,7 +365889,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rte_orte_LDFLAGS; do + for arg in $topo_basic_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -338434,7 +365970,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rte_orte_WRAPPER_EXTRA_LDFLAGS; do + for arg in $topo_basic_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -338476,7 +366012,7 @@ fi - if test "$rte_orte_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$topo_basic_WRAPPER_EXTRA_LIBS" = ""; then : @@ -338516,7 +366052,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rte_orte_LIBS; do + for arg in $topo_basic_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -338597,7 +366133,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rte_orte_WRAPPER_EXTRA_LIBS; do + for arg in $topo_basic_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -338645,8 +366181,8 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$rte_orte_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=1 + if test "$topo_basic_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -338688,7 +366224,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $rte_orte_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $topo_basic_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -338731,185 +366267,329 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring rte_orte_WRAPPER_EXTRA_CPPFLAGS ($rte_orte_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring rte_orte_WRAPPER_EXTRA_CPPFLAGS ($rte_orte_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring topo_basic_WRAPPER_EXTRA_CPPFLAGS ($topo_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring topo_basic_WRAPPER_EXTRA_CPPFLAGS ($topo_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component rte:orte can compile" >&5 -$as_echo_n "checking if MCA component rte:orte can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component topo:basic can compile" >&5 +$as_echo_n "checking if MCA component topo:basic can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_rte" = "orte" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"orte\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"orte\" failed to configure properly" >&2;} + if test "$with_topo" = "basic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_rte" ; then - if test "$DIRECT_rte" = "orte" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"orte\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"orte\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_topo" ; then + if test "$DIRECT_topo" = "basic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components orte" + # add component to all component list + all_components="$all_components basic" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_ompi_topo_basic_DSO=1 + else + BUILD_ompi_topo_basic_DSO=0 + fi + if test "$BUILD_ompi_topo_basic_DSO" = "1"; then + MCA_BUILD_ompi_topo_basic_DSO_TRUE= + MCA_BUILD_ompi_topo_basic_DSO_FALSE='#' +else + MCA_BUILD_ompi_topo_basic_DSO_TRUE='#' + MCA_BUILD_ompi_topo_basic_DSO_FALSE= fi - if test "$should_build" = "1"; then : - ompi_rte_base_include="orte/rte_orte.h" -fi + ac_config_files="$ac_config_files ompi/mca/topo/basic/Makefile" -cat >>confdefs.h <<_ACEOF -#define OMPI_RTE_ORTE $should_build -_ACEOF - if test $should_build = 1; then - OMPI_RTE_ORTE_TRUE= - OMPI_RTE_ORTE_FALSE='#' -else - OMPI_RTE_ORTE_TRUE='#' - OMPI_RTE_ORTE_FALSE= -fi + unset compile_mode + # configure components that use built-in configuration scripts - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_rte_orte_DSO=1 -else - BUILD_ompi_rte_orte_DSO=0 + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + opal_show_subsubsubtitle "MCA component topo:treematch (m4 configuration macro)" + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/ompi/mca/topo/treematch" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_topo" ; then + if test "$DIRECT_topo" = "treematch" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_topo" = "1"; then : + want_component=0 fi - if test "$BUILD_ompi_rte_orte_DSO" = "1"; then - MCA_BUILD_ompi_rte_orte_DSO_TRUE= - MCA_BUILD_ompi_rte_orte_DSO_FALSE='#' -else - MCA_BUILD_ompi_rte_orte_DSO_TRUE='#' - MCA_BUILD_ompi_rte_orte_DSO_FALSE= + if test "$DISABLE_topo_treematch" = "1"; then : + want_component=0 fi - - if test "$should_build" = "1"; then : - components_last_result=1 + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else - components_last_result=0 + should_build=0 fi - unset compile_mode + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - if test $components_last_result -eq 1; then : - components_looking_for_succeed=0 -fi + SHARED_FRAMEWORK="$DSO_topo" + SHARED_COMPONENT="$DSO_topo_treematch" + STATIC_FRAMEWORK="$STATIC_topo" + STATIC_COMPONENT="$STATIC_topo_treematch" + shared_mode_override=static - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component topo:treematch compile mode" >&5 +$as_echo_n "checking for MCA component topo:treematch compile mode... " >&6; } + if test "$DIRECT_topo" = "treematch" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - MCA_ompi_rte_ALL_COMPONENTS="$all_components" - MCA_ompi_rte_STATIC_COMPONENTS="$static_components" - MCA_ompi_rte_DSO_COMPONENTS="$dso_components" - MCA_ompi_rte_STATIC_LTLIBS="$static_ltlibs" + # try to configure the component +# Check whether --with-treematch was given. +if test "${with_treematch+set}" = set; then : + withval=$with_treematch; +fi - MCA_ompi_rte_ALL_SUBDIRS= - for item in $all_components ; do - MCA_ompi_rte_ALL_SUBDIRS="$MCA_ompi_rte_ALL_SUBDIRS mca/rte/$item" - done +# Check whether --with-treematch-include was given. +if test "${with_treematch_include+set}" = set; then : + withval=$with_treematch_include; +fi +# Check whether --with-treematch-libdir was given. +if test "${with_treematch_libdir+set}" = set; then : + withval=$with_treematch_libdir; +fi - MCA_ompi_rte_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_ompi_rte_STATIC_SUBDIRS="$MCA_ompi_rte_STATIC_SUBDIRS mca/rte/$item" - done + treematch_files_local="no" + ompi_topo_treematch_dir=$srcdir + ompi_topo_treematch_libdir= + ompi_topo_treematch_happy=0 + if test "x$with_treematch" != xno; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking TreeMatch headers" >&5 +$as_echo_n "checking TreeMatch headers... " >&6; } + if test "x$with_treematch_include" = x; then : + if test "x$with_treematch" != "xno"; then : + treematch_files_local="yes" + with_treematch_include="$OMPI_TOP_SRCDIR/ompi/mca/topo/treematch/treematch" +else + with_treematch_include="$with_treematch/include" +fi +fi + if test -f "$with_treematch_include/tm_tree.h"; then : + if test "x$with_treematch" != "xno"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: in the source" >&5 +$as_echo "in the source" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: user provided" >&5 +$as_echo "user provided" >&6; } +fi + opal_check_treematch_dir=$with_treematch_include + ompi_topo_treematch_happy=1 +else + as_fn_error $? "missing tm_tree.h (${with_treematch}:${with_treematch_include})" "$LINENO" 5 +fi +fi - MCA_ompi_rte_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_ompi_rte_DSO_SUBDIRS="$MCA_ompi_rte_DSO_SUBDIRS mca/rte/$item" - done + if test $ompi_topo_treematch_happy -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-treematch value" >&5 +$as_echo_n "checking --with-treematch value... " >&6; } + if test "$with_treematch_include" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-treematch)" >&5 +$as_echo "simple no (specified --without-treematch)" >&6; } +else + if test "$with_treematch_include" = "yes" || test "x$with_treematch_include" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_treematch_include"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_treematch_include not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_treematch_include not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_treematch_include/tm_tree.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_treematch_include/tm_tree.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_treematch_include/tm_tree.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_treematch_include)" >&5 +$as_echo "sanity check ok ($with_treematch_include)" >&6; } +fi - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "rte" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - unset all_components static_components dso_components outfile outfile_real +fi + if test "x$with_treematch_libdir" = x; then : + if test "x$with_treematch" != "xyes"; then : + with_treematch_libdir=$with_treematch/lib + with_treematch_libdir=$OMPI_TOP_SRCDIR/ompi/mca/topo/treematch/treematch +fi +fi + if test "x$treematch_files_local" = xno; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-treematch-libdir value" >&5 +$as_echo_n "checking --with-treematch-libdir value... " >&6; } + if test "$with_treematch_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-treematch-libdir)" >&5 +$as_echo "simple no (specified --without-treematch-libdir)" >&6; } +else + if test "$with_treematch_libdir" = "yes" || test "x$with_treematch_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_treematch_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_treematch_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_treematch_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_treematch_libdir/libtreematch.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_treematch_libdir/libtreematch.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_treematch_libdir/libtreematch.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_treematch_libdir)" >&5 +$as_echo "sanity check ok ($with_treematch_libdir)" >&6; } - if test "$ompi_rte_base_include" = ""; then : - as_fn_error $? "Did not find a suitable rte component" "$LINENO" 5 fi -cat >>confdefs.h <<_ACEOF -#define MCA_rte_IMPLEMENTATION_HEADER "ompi/mca/rte/$ompi_rte_base_include" -_ACEOF +fi - MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS sharedfp" - MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/sharedfp" - MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_sharedfp_ALL_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_sharedfp_DSO_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_sharedfp_STATIC_SUBDIRS)" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/sharedfp/libmca_sharedfp.la" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_sharedfp_STATIC_LTLIBS)" +fi + + +fi + + if test "x$with_treematch" != xno && test "x$with_treematch" != "xyes"; then : + if test ! -z "$with_treematch" && test "$with_treematch" != "yes"; then : + ompi_topo_treematch_dir="$with_treematch" +fi + if test ! -z "$with_treematch_libdir" && test "$with_treematch_libdir" != "yes"; then : + ompi_topo_treematch_libdir="$with_treematch_libdir" +fi + + opal_check_package_topo_treematch_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_topo_treematch_save_LDFLAGS="$LDFLAGS" + opal_check_package_topo_treematch_save_LIBS="$LIBS" + + opal_check_package_topo_treematch_orig_CPPFLAGS="$topo_treematch_CPPFLAGS" + opal_check_package_topo_treematch_orig_LDFLAGS="$topo_treematch_LDFLAGS" + opal_check_package_topo_treematch_orig_LIBS="$topo_treematch_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -338922,7 +366602,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in want_io_ompio; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -338941,7 +366621,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"want_io_ompio\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -338949,224 +366629,357 @@ opal_scope_index=`expr $opal_scope_index + 1` - if test "$enable_io_ompio" != "no"; then : - want_io_ompio=1 -else - want_io_ompio=0 -fi - - - opal_show_subsubtitle "Configuring MCA framework sharedfp" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=ompi/mca/sharedfp/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files ompi/mca/sharedfp/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework sharedfp" >&5 -$as_echo_n "checking for no configure components in framework sharedfp... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: individual, lockedfile" >&5 -$as_echo "individual, lockedfile" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework sharedfp" >&5 -$as_echo_n "checking for m4 configure components in framework sharedfp... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sm" >&5 -$as_echo "sm" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_tm_tree_h + # get rid of the trailing slash(es) + dir_prefix=$(echo $with_treematch_include | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in tm_tree.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "tm_tree.h" "ac_cv_header_tm_tree_h" "$ac_includes_default" +if test "x$ac_cv_header_tm_tree_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_TM_TREE_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi +done - # run the configure logic for the no-config components + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_tm_tree_h +fi +fi - opal_show_subsubsubtitle "MCA component sharedfp:individual (no configuration)" + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + topo_treematch_CPPFLAGS="$topo_treematch_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in tm_tree.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "tm_tree.h" "ac_cv_header_tm_tree_h" "$ac_includes_default" +if test "x$ac_cv_header_tm_tree_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_TM_TREE_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=$want_io_ompio" +done + if test "$opal_check_package_header_happy" = "yes"; then : + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - component_path="$srcdir/ompi/mca/sharedfp/individual" - want_component=0 - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_sharedfp" ; then - if test "$DIRECT_sharedfp" = "individual" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + # see comment above + unset ac_cv_search_build_tree + opal_check_package_lib_happy="no" + if test "$with_treematch_libdir" != ""; then : + # libdir was specified - search only there + topo_treematch_LDFLAGS="$topo_treematch_LDFLAGS -L$with_treematch_libdir" + LDFLAGS="$LDFLAGS -L$with_treematch_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing build_tree" >&5 +$as_echo_n "checking for library containing build_tree... " >&6; } +if ${ac_cv_search_build_tree+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # if we were explicitly disabled, don't build :) - if test "$DISABLE_sharedfp" = "1"; then : - want_component=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char build_tree (); +int +main () +{ +return build_tree (); + ; + return 0; +} +_ACEOF +for ac_lib in '' treematch; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_build_tree=$ac_res fi - if test "$DISABLE_sharedfp_individual" = "1"; then : - want_component=0 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_build_tree+:} false; then : + break fi +done +if ${ac_cv_search_build_tree+:} false; then : - if test "$want_component" = "1"; then : - should_build=$want_io_ompio else - should_build=0 + ac_cv_search_build_tree=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_build_tree" >&5 +$as_echo "$ac_cv_search_build_tree" >&6; } +ac_res=$ac_cv_search_build_tree +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" + topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" + unset ac_cv_search_build_tree +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$with_treematch_include" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing build_tree" >&5 +$as_echo_n "checking for library containing build_tree... " >&6; } +if ${ac_cv_search_build_tree+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - SHARED_FRAMEWORK="$DSO_sharedfp" - SHARED_COMPONENT="$DSO_sharedfp_individual" - - STATIC_FRAMEWORK="$STATIC_sharedfp" - STATIC_COMPONENT="$STATIC_sharedfp_individual" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component sharedfp:individual compile mode" >&5 -$as_echo_n "checking for MCA component sharedfp:individual compile mode... " >&6; } - if test "$DIRECT_sharedfp" = "individual" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char build_tree (); +int +main () +{ +return build_tree (); + ; + return 0; +} +_ACEOF +for ac_lib in '' treematch; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_build_tree=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_build_tree+:} false; then : + break +fi +done +if ${ac_cv_search_build_tree+:} false; then : - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" +else + ac_cv_search_build_tree=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_build_tree" >&5 +$as_echo "$ac_cv_search_build_tree" >&6; } +ac_res=$ac_cv_search_build_tree +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test "$should_build" = "1" ; then + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" + topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" + unset ac_cv_search_build_tree +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + topo_treematch_LDFLAGS="$topo_treematch_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing build_tree" >&5 +$as_echo_n "checking for library containing build_tree... " >&6; } +if ${ac_cv_search_build_tree+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char build_tree (); +int +main () +{ +return build_tree (); + ; + return 0; +} +_ACEOF +for ac_lib in '' treematch; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_build_tree=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_build_tree+:} false; then : + break +fi +done +if ${ac_cv_search_build_tree+:} false; then : - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/sharedfp/individual/post_configure.sh" +else + ac_cv_search_build_tree=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_build_tree" >&5 +$as_echo "$ac_cv_search_build_tree" >&6; } +ac_res=$ac_cv_search_build_tree +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components individual" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" + topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" + unset ac_cv_search_build_tree +fi +fi +fi - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components individual" - else - if test "sharedfp" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/sharedfp/individual/lib${OMPI_LIB_PREFIX}mca_sharedfp_individual.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/sharedfp/individual/libmca_sharedfp_individual.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_sharedfp_individual_component;" >> $outfile.extern - echo " &mca_sharedfp_individual_component, " >> $outfile.struct - static_components="$static_components individual" - fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + topo_treematch_LDFLAGS="$topo_treematch_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing build_tree" >&5 +$as_echo_n "checking for library containing build_tree... " >&6; } +if ${ac_cv_search_build_tree+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sharedfp:individual can compile" >&5 -$as_echo_n "checking if MCA component sharedfp:individual can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char build_tree (); +int +main () +{ +return build_tree (); + ; + return 0; +} +_ACEOF +for ac_lib in '' treematch; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_build_tree=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_build_tree+:} false; then : + break +fi +done +if ${ac_cv_search_build_tree+:} false; then : - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_sharedfp" = "individual" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_sharedfp_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** sharedfp component individual was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_sharedfp" = "individual" ; then -as_fn_error $? "*** sharedfp component individual was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +else + ac_cv_search_build_tree=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_build_tree" >&5 +$as_echo "$ac_cv_search_build_tree" >&6; } +ac_res=$ac_cv_search_build_tree +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$sharedfp_individual_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" + topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" + unset ac_cv_search_build_tree +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -339179,7 +366992,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -339198,56 +367011,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $sharedfp_individual_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -339260,7 +367033,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -339279,7 +367052,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -339287,187 +367060,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $sharedfp_individual_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtreematch requires libnl v1 or v3" >&5 +$as_echo_n "checking if libtreematch requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void build_tree (void); +int main(int argc, char *argv[]) { + build_tree (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:367087: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltreematch $LIBS $topo_treematch_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltreematch $LIBS $topo_treematch_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:367094: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib treematch" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib treematch" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libtreematch links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libtreematch links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtreematch (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libtreematch (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtreematch." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtreematch." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas treematch requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas treematch requires libnl" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtreematch (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libtreematch (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtreematch." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtreematch." >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs treematch" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 -fi - if test "$sharedfp_individual_WRAPPER_EXTRA_LIBS" = ""; then : + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Check the ending condition - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $sharedfp_individual_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libtreematch requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libtreematch requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtreematch (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libtreematch (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtreematch." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtreematch." >&2;} + + libnl_sane=0 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + opal_libnlv3_libs="$opal_libnlv3_libs treematch" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +# Go through each item in the variable and only keep the unique ones - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do -else + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_done="`expr $opal_i \>= $opal_count`" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Increment the counter - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - for arg in $sharedfp_individual_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -339491,75 +367353,10 @@ done -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$sharedfp_individual_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $sharedfp_individual_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -339582,229 +367379,332 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi + fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_build_tree" != "no" && + test "$ac_cv_search_build_tree" != "none required"; then : + topo_treematch_LIBS="$ac_cv_search_build_tree " else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring sharedfp_individual_WRAPPER_EXTRA_CPPFLAGS ($sharedfp_individual_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring sharedfp_individual_WRAPPER_EXTRA_CPPFLAGS ($sharedfp_individual_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + topo_treematch_LIBS="" fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" fi - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sharedfp:individual can compile" >&5 -$as_echo_n "checking if MCA component sharedfp:individual can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_sharedfp" = "individual" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"individual\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"individual\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_sharedfp" ; then - if test "$DIRECT_sharedfp" = "individual" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"individual\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"individual\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components individual" - fi - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_ompi_sharedfp_individual_DSO=1 - else - BUILD_ompi_sharedfp_individual_DSO=0 - fi - if test "$BUILD_ompi_sharedfp_individual_DSO" = "1"; then - MCA_BUILD_ompi_sharedfp_individual_DSO_TRUE= - MCA_BUILD_ompi_sharedfp_individual_DSO_FALSE='#' else - MCA_BUILD_ompi_sharedfp_individual_DSO_TRUE='#' - MCA_BUILD_ompi_sharedfp_individual_DSO_FALSE= + opal_check_package_happy="no" fi +else + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - ac_config_files="$ac_config_files ompi/mca/sharedfp/individual/Makefile" - - - unset compile_mode - - opal_show_subsubsubtitle "MCA component sharedfp:lockedfile (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=$want_io_ompio" - - - - component_path="$srcdir/ompi/mca/sharedfp/lockedfile" - want_component=0 - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_sharedfp" ; then - if test "$DIRECT_sharedfp" = "lockedfile" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + # see comment above + unset ac_cv_search_build_tree + opal_check_package_lib_happy="no" + if test "$with_treematch_libdir" != ""; then : + # libdir was specified - search only there + topo_treematch_LDFLAGS="$topo_treematch_LDFLAGS -L$with_treematch_libdir" + LDFLAGS="$LDFLAGS -L$with_treematch_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing build_tree" >&5 +$as_echo_n "checking for library containing build_tree... " >&6; } +if ${ac_cv_search_build_tree+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # if we were explicitly disabled, don't build :) - if test "$DISABLE_sharedfp" = "1"; then : - want_component=0 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char build_tree (); +int +main () +{ +return build_tree (); + ; + return 0; +} +_ACEOF +for ac_lib in '' treematch; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_build_tree=$ac_res fi - if test "$DISABLE_sharedfp_lockedfile" = "1"; then : - want_component=0 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_build_tree+:} false; then : + break fi +done +if ${ac_cv_search_build_tree+:} false; then : - if test "$want_component" = "1"; then : - should_build=$want_io_ompio else - should_build=0 + ac_cv_search_build_tree=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_build_tree" >&5 +$as_echo "$ac_cv_search_build_tree" >&6; } +ac_res=$ac_cv_search_build_tree +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" + topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" + unset ac_cv_search_build_tree +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$with_treematch_include" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing build_tree" >&5 +$as_echo_n "checking for library containing build_tree... " >&6; } +if ${ac_cv_search_build_tree+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - SHARED_FRAMEWORK="$DSO_sharedfp" - SHARED_COMPONENT="$DSO_sharedfp_lockedfile" - - STATIC_FRAMEWORK="$STATIC_sharedfp" - STATIC_COMPONENT="$STATIC_sharedfp_lockedfile" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char build_tree (); +int +main () +{ +return build_tree (); + ; + return 0; +} +_ACEOF +for ac_lib in '' treematch; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_build_tree=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_build_tree+:} false; then : + break +fi +done +if ${ac_cv_search_build_tree+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component sharedfp:lockedfile compile mode" >&5 -$as_echo_n "checking for MCA component sharedfp:lockedfile compile mode... " >&6; } - if test "$DIRECT_sharedfp" = "lockedfile" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +else + ac_cv_search_build_tree=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_build_tree" >&5 +$as_echo "$ac_cv_search_build_tree" >&6; } +ac_res=$ac_cv_search_build_tree +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" + topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" + unset ac_cv_search_build_tree +fi +fi - if test "$should_build" = "1" ; then + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + topo_treematch_LDFLAGS="$topo_treematch_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing build_tree" >&5 +$as_echo_n "checking for library containing build_tree... " >&6; } +if ${ac_cv_search_build_tree+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char build_tree (); +int +main () +{ +return build_tree (); + ; + return 0; +} +_ACEOF +for ac_lib in '' treematch; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_build_tree=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_build_tree+:} false; then : + break +fi +done +if ${ac_cv_search_build_tree+:} false; then : +else + ac_cv_search_build_tree=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_build_tree" >&5 +$as_echo "$ac_cv_search_build_tree" >&6; } +ac_res=$ac_cv_search_build_tree +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/sharedfp/lockedfile/post_configure.sh" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" + topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" + unset ac_cv_search_build_tree +fi +fi +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components lockedfile" + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + topo_treematch_LDFLAGS="$topo_treematch_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing build_tree" >&5 +$as_echo_n "checking for library containing build_tree... " >&6; } +if ${ac_cv_search_build_tree+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components lockedfile" - else - if test "sharedfp" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/sharedfp/lockedfile/lib${OMPI_LIB_PREFIX}mca_sharedfp_lockedfile.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/sharedfp/lockedfile/libmca_sharedfp_lockedfile.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_sharedfp_lockedfile_component;" >> $outfile.extern - echo " &mca_sharedfp_lockedfile_component, " >> $outfile.struct - static_components="$static_components lockedfile" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char build_tree (); +int +main () +{ +return build_tree (); + ; + return 0; +} +_ACEOF +for ac_lib in '' treematch; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_build_tree=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_build_tree+:} false; then : + break +fi +done +if ${ac_cv_search_build_tree+:} false; then : - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sharedfp:lockedfile can compile" >&5 -$as_echo_n "checking if MCA component sharedfp:lockedfile can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else + ac_cv_search_build_tree=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_build_tree" >&5 +$as_echo "$ac_cv_search_build_tree" >&6; } +ac_res=$ac_cv_search_build_tree +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_sharedfp" = "lockedfile" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_sharedfp_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** sharedfp component lockedfile was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_sharedfp" = "lockedfile" ; then -as_fn_error $? "*** sharedfp component lockedfile was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" + topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" + unset ac_cv_search_build_tree +fi +fi +fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$sharedfp_lockedfile_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -339817,7 +367717,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -339836,56 +367736,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $sharedfp_lockedfile_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -339898,7 +367758,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -339917,7 +367777,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -339925,187 +367785,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $sharedfp_lockedfile_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtreematch requires libnl v1 or v3" >&5 +$as_echo_n "checking if libtreematch requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void build_tree (void); +int main(int argc, char *argv[]) { + build_tree (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:367812: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltreematch $LIBS $topo_treematch_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltreematch $LIBS $topo_treematch_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:367819: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib treematch" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib treematch" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libtreematch links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libtreematch links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtreematch (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libtreematch (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtreematch." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtreematch." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas treematch requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas treematch requires libnl" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtreematch (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libtreematch (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtreematch." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtreematch." >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs treematch" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones -fi - if test "$sharedfp_lockedfile_WRAPPER_EXTRA_LIBS" = ""; then : +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $sharedfp_lockedfile_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libtreematch requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libtreematch requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtreematch (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libtreematch (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtreematch." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtreematch." >&2;} + + libnl_sane=0 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + opal_libnlv3_libs="$opal_libnlv3_libs treematch" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +# Go through each item in the variable and only keep the unique ones - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do -else + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + # Check the ending condition - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + opal_done="`expr $opal_i \>= $opal_count`" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Increment the counter - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $sharedfp_lockedfile_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -340129,74 +368078,54 @@ done -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$sharedfp_lockedfile_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - for arg in $sharedfp_lockedfile_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_build_tree" != "no" && + test "$ac_cv_search_build_tree" != "none required"; then : + topo_treematch_LIBS="$ac_cv_search_build_tree " +else + topo_treematch_LIBS="" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -340220,217 +368149,63 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring sharedfp_lockedfile_WRAPPER_EXTRA_CPPFLAGS ($sharedfp_lockedfile_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring sharedfp_lockedfile_WRAPPER_EXTRA_CPPFLAGS ($sharedfp_lockedfile_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sharedfp:lockedfile can compile" >&5 -$as_echo_n "checking if MCA component sharedfp:lockedfile can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_sharedfp" = "lockedfile" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lockedfile\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"lockedfile\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_sharedfp" ; then - if test "$DIRECT_sharedfp" = "lockedfile" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"lockedfile\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"lockedfile\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components lockedfile" - fi - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_ompi_sharedfp_lockedfile_DSO=1 - else - BUILD_ompi_sharedfp_lockedfile_DSO=0 - fi - if test "$BUILD_ompi_sharedfp_lockedfile_DSO" = "1"; then - MCA_BUILD_ompi_sharedfp_lockedfile_DSO_TRUE= - MCA_BUILD_ompi_sharedfp_lockedfile_DSO_FALSE='#' + if test "$opal_check_package_happy" = "yes"; then : + ompi_topo_treematch_happy=1 else - MCA_BUILD_ompi_sharedfp_lockedfile_DSO_TRUE='#' - MCA_BUILD_ompi_sharedfp_lockedfile_DSO_FALSE= + topo_treematch_CPPFLAGS="$opal_check_package_topo_treematch_orig_CPPFLAGS" + topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" + topo_treematch_LIBS="$opal_check_package_topo_treematch_orig_LIBS" + ompi_topo_treematch_happy=1 fi + CPPFLAGS="$opal_check_package_topo_treematch_save_CPPFLAGS" + LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" + LIBS="$opal_check_package_topo_treematch_save_LIBS" - ac_config_files="$ac_config_files ompi/mca/sharedfp/lockedfile/Makefile" - - - unset compile_mode - - - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=$want_io_ompio - components_last_result=0 - - - opal_show_subsubsubtitle "MCA component sharedfp:sm (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/ompi/mca/sharedfp/sm" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_sharedfp" ; then - if test "$DIRECT_sharedfp" = "sm" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_sharedfp" = "1"; then : - want_component=0 +else + ompi_topo_treematch_happy=1 fi - if test "$DISABLE_sharedfp_sm" = "1"; then : - want_component=0 fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_sharedfp" - SHARED_COMPONENT="$DSO_sharedfp_sm" - - STATIC_FRAMEWORK="$STATIC_sharedfp" - STATIC_COMPONENT="$STATIC_sharedfp_sm" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component sharedfp:sm compile mode" >&5 -$as_echo_n "checking for MCA component sharedfp:sm compile mode... " >&6; } - if test "$DIRECT_sharedfp" = "sm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files ompi/mca/sharedfp/sm/Makefile" - - - sharedfp_sm_happy=no - ac_fn_c_check_header_mongrel "$LINENO" "semaphore.h" "ac_cv_header_semaphore_h" "$ac_includes_default" -if test "x$ac_cv_header_semaphore_h" = xyes; then : - for ac_func in sem_open -do : - ac_fn_c_check_func "$LINENO" "sem_open" "ac_cv_func_sem_open" -if test "x$ac_cv_func_sem_open" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SEM_OPEN 1 -_ACEOF - sharedfp_sm_happy=yes + if test $ompi_topo_treematch_happy -eq 1; then : + if test "x$treematch_files_local" = "xyes"; then : + if ! test -d $OMPI_TOP_BUILDDIR/ompi/mca/topo/treematch; then : + mkdir -p $OMPI_TOP_BUILDDIR/ompi/mca/topo/treematch fi -done + cat > $OMPI_TOP_BUILDDIR/ompi/mca/topo/treematch/config.h << EOF +/* + * This file is automatically generated by configure. Edits will be lost + * + * This is an dummy config.h in order to prevent the embedded treematch from using + * the config.h from the embedded hwloc + * + * see https://github.com/open-mpi/ompi/pull/6185#issuecomment-458807930 + */ +EOF fi - - - - ac_fn_c_check_header_mongrel "$LINENO" "semaphore.h" "ac_cv_header_semaphore_h" "$ac_includes_default" -if test "x$ac_cv_header_semaphore_h" = xyes; then : - for ac_func in sem_init -do : - ac_fn_c_check_func "$LINENO" "sem_init" "ac_cv_func_sem_init" -if test "x$ac_cv_func_sem_init" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SEM_INIT 1 -_ACEOF - sharedfp_sm_happy=yes + should_build=$should_build +else + if test ! -z "$with_treematch" && test "$with_treematch" != "no"; then : + as_fn_error $? "TreeMatch support requested but not found. Aborting" "$LINENO" 5 fi -done - + should_build=0 fi + ac_config_files="$ac_config_files ompi/mca/topo/treematch/Makefile" - - if test "$sharedfp_sm_happy" = "yes"; then : - should_build=$should_build + if test $ompi_topo_treematch_happy -eq 1 && \ + test "x$treematch_files_local" = "xyes"; then + topo_treematch_local_TRUE= + topo_treematch_local_FALSE='#' else - should_build=0 + topo_treematch_local_TRUE='#' + topo_treematch_local_FALSE= fi + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" if test "$should_build" = "1"; then : @@ -340439,45 +368214,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/sharedfp/sm/post_configure.sh" + infile="$srcdir/ompi/mca/topo/treematch/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components sm" + all_components="$all_components treematch" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components sm" + dso_components="$dso_components treematch" else - if test "sharedfp" = "common"; then + if test "topo" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/sharedfp/sm/lib${OMPI_LIB_PREFIX}mca_sharedfp_sm.la $static_ltlibs" + static_ltlibs="mca/topo/treematch/lib${OMPI_LIB_PREFIX}mca_topo_treematch.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/sharedfp/sm/libmca_sharedfp_sm.la $static_ltlibs" + static_ltlibs="mca/topo/treematch/libmca_topo_treematch.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_sharedfp_sm_component;" >> $outfile.extern - echo " &mca_sharedfp_sm_component, " >> $outfile.struct - static_components="$static_components sm" + echo "extern const mca_base_component_t mca_topo_treematch_component;" >> $outfile.extern + echo " &mca_topo_treematch_component, " >> $outfile.struct + static_components="$static_components treematch" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sharedfp:sm can compile" >&5 -$as_echo_n "checking if MCA component sharedfp:sm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component topo:treematch can compile" >&5 +$as_echo_n "checking if MCA component topo:treematch can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_sharedfp" = "sm" ; then + if test "$DIRECT_topo" = "treematch" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_sharedfp_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_topo_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** sharedfp component sm was supposed to be direct-called, but +as_fn_error $? "*** topo component treematch was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -340485,8 +368260,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_sharedfp" = "sm" ; then -as_fn_error $? "*** sharedfp component sm was supposed to be direct-called, but + if test "$DIRECT_topo" = "treematch" ; then +as_fn_error $? "*** topo component treematch was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -340501,7 +368276,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$sharedfp_sm_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$topo_treematch_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -340541,7 +368316,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $sharedfp_sm_LDFLAGS; do + for arg in $topo_treematch_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -340622,7 +368397,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $sharedfp_sm_WRAPPER_EXTRA_LDFLAGS; do + for arg in $topo_treematch_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -340664,7 +368439,7 @@ fi - if test "$sharedfp_sm_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$topo_treematch_WRAPPER_EXTRA_LIBS" = ""; then : @@ -340704,7 +368479,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $sharedfp_sm_LIBS; do + for arg in $topo_treematch_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -340785,7 +368560,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $sharedfp_sm_WRAPPER_EXTRA_LIBS; do + for arg in $topo_treematch_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -340833,7 +368608,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$sharedfp_sm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$topo_treematch_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -340876,7 +368651,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $sharedfp_sm_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $topo_treematch_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -340919,32 +368694,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring sharedfp_sm_WRAPPER_EXTRA_CPPFLAGS ($sharedfp_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring sharedfp_sm_WRAPPER_EXTRA_CPPFLAGS ($sharedfp_sm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring topo_treematch_WRAPPER_EXTRA_CPPFLAGS ($topo_treematch_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring topo_treematch_WRAPPER_EXTRA_CPPFLAGS ($topo_treematch_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sharedfp:sm can compile" >&5 -$as_echo_n "checking if MCA component sharedfp:sm can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component topo:treematch can compile" >&5 +$as_echo_n "checking if MCA component topo:treematch can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_sharedfp" = "sm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} + if test "$with_topo" = "treematch" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"treematch\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"treematch\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_sharedfp" ; then - if test "$DIRECT_sharedfp" = "sm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"sm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"sm\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_topo" ; then + if test "$DIRECT_topo" = "treematch" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"treematch\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"treematch\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -340952,23 +368727,23 @@ fi # add component to all component list - all_components="$all_components sm" + all_components="$all_components treematch" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_ompi_sharedfp_sm_DSO=1 + BUILD_ompi_topo_treematch_DSO=1 else - BUILD_ompi_sharedfp_sm_DSO=0 + BUILD_ompi_topo_treematch_DSO=0 fi - if test "$BUILD_ompi_sharedfp_sm_DSO" = "1"; then - MCA_BUILD_ompi_sharedfp_sm_DSO_TRUE= - MCA_BUILD_ompi_sharedfp_sm_DSO_FALSE='#' + if test "$BUILD_ompi_topo_treematch_DSO" = "1"; then + MCA_BUILD_ompi_topo_treematch_DSO_TRUE= + MCA_BUILD_ompi_topo_treematch_DSO_FALSE='#' else - MCA_BUILD_ompi_sharedfp_sm_DSO_TRUE='#' - MCA_BUILD_ompi_sharedfp_sm_DSO_FALSE= + MCA_BUILD_ompi_topo_treematch_DSO_TRUE='#' + MCA_BUILD_ompi_topo_treematch_DSO_FALSE= fi @@ -340990,18 +368765,18 @@ - if test "$want_io_ompio" != "0"; then : + if test "1" != "0"; then : - for component_path in $srcdir/ompi/mca/sharedfp/* ; do + for component_path in $srcdir/ompi/mca/topo/* ; do component="`basename $component_path`" if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component sharedfp:$component (need to configure)" + opal_show_subsubsubtitle "MCA component topo:$component (need to configure)" opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/ompi/mca/sharedfp/$component" + component_path="$srcdir/ompi/mca/topo/$component" want_component=0 # build if: @@ -341033,8 +368808,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_sharedfp" ; then - if test "$DIRECT_sharedfp" = "$component" ; then + if test ! -z "$DIRECT_topo" ; then + if test "$DIRECT_topo" = "$component" ; then want_component=1 else want_component=0 @@ -341043,10 +368818,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_sharedfp" = "1"; then : + if test "$DISABLE_topo" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_sharedfp_$component" + str="DISABLED_COMPONENT_CHECK=\$DISABLE_topo_$component" eval $str if test "$DISABLED_COMPONENT_CHECK" = "1" ; then want_component=0 @@ -341059,12 +368834,12 @@ fi - SHARED_FRAMEWORK="$DSO_sharedfp" - str="SHARED_COMPONENT=\$DSO_sharedfp_$component" + SHARED_FRAMEWORK="$DSO_topo" + str="SHARED_COMPONENT=\$DSO_topo_$component" eval $str - STATIC_FRAMEWORK="$STATIC_sharedfp" - str="STATIC_COMPONENT=\$STATIC_sharedfp_$component" + STATIC_FRAMEWORK="$STATIC_topo" + str="STATIC_COMPONENT=\$STATIC_topo_$component" eval $str shared_mode_override=static @@ -341083,9 +368858,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component sharedfp:$component compile mode" >&5 -$as_echo_n "checking for MCA component sharedfp:$component compile mode... " >&6; } - if test "$DIRECT_sharedfp" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component topo:$component compile mode" >&5 +$as_echo_n "checking for MCA component topo:$component compile mode... " >&6; } + if test "$DIRECT_topo" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -341138,12 +368913,12 @@ # # Invoke configure in a specific subdirectory. # -# ompi/mca/sharedfp/$component is the directory to invoke in +# ompi/mca/topo/$component is the directory to invoke in # $opal_subdir_args is the list of arguments to pass # should_build=1 is actions to execute upon success # should_build=0 is actions to execute upon failure # -subdir_dir="ompi/mca/sharedfp/$component" +subdir_dir="ompi/mca/topo/$component" subdir_args="$opal_subdir_args" subdir_success="should_build=1" subdir_failure="should_build=0" @@ -341287,7 +369062,7 @@ # do some extra work to pass flags back from the # top-level configure, the way a configure.m4 # component would. - infile="$srcdir/ompi/mca/sharedfp/all_components/post_configure.sh" + infile="$srcdir/ompi/mca/topo/all_components/post_configure.sh" if test -f $infile; then # First check for the ABORT tag @@ -341301,12 +369076,12 @@ line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - sharedfp_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + topo_all_components_WRAPPER_EXTRA_LDFLAGS="$line" fi line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - sharedfp_all_components_WRAPPER_EXTRA_LIBS="$line" + topo_all_components_WRAPPER_EXTRA_LIBS="$line" fi fi @@ -341315,7 +369090,7 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/sharedfp/$component/post_configure.sh" + infile="$srcdir/ompi/mca/topo/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs all_components="$all_components $component" @@ -341323,37 +369098,37 @@ if test "$compile_mode" = "dso" ; then dso_components="$dso_components $component" else - if test "sharedfp" = "common"; then + if test "topo" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/sharedfp/$component/lib${OMPI_LIB_PREFIX}mca_sharedfp_$component.la $static_ltlibs" + static_ltlibs="mca/topo/$component/lib${OMPI_LIB_PREFIX}mca_topo_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/sharedfp/$component/libmca_sharedfp_$component.la $static_ltlibs" + static_ltlibs="mca/topo/$component/libmca_topo_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_sharedfp_$component_component;" >> $outfile.extern - echo " &mca_sharedfp_$component_component, " >> $outfile.struct + echo "extern const mca_base_component_t mca_topo_$component_component;" >> $outfile.extern + echo " &mca_topo_$component_component, " >> $outfile.struct static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sharedfp:$component can compile" >&5 -$as_echo_n "checking if MCA component sharedfp:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component topo:$component can compile" >&5 +$as_echo_n "checking if MCA component topo:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_sharedfp" = "$component" ; then + if test "$DIRECT_topo" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_sharedfp_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_topo_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** sharedfp component $component was supposed to be direct-called, but +as_fn_error $? "*** topo component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -341361,8 +369136,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_sharedfp" = "$component" ; then -as_fn_error $? "*** sharedfp component $component was supposed to be direct-called, but + if test "$DIRECT_topo" = "$component" ; then +as_fn_error $? "*** topo component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -341377,7 +369152,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$sharedfp_$component_WRAPPER_EXTRA_LDFLAGS" + str="line=\$topo_$component_WRAPPER_EXTRA_LDFLAGS" eval "$str" @@ -341458,7 +369233,7 @@ unset $opal_var done -str="line=\$sharedfp_$component_WRAPPER_EXTRA_LIBS" +str="line=\$topo_$component_WRAPPER_EXTRA_LIBS" eval "$str" @@ -341549,14 +369324,14 @@ else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component sharedfp:$component can compile" >&5 -$as_echo_n "checking if MCA component sharedfp:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component topo:$component can compile" >&5 +$as_echo_n "checking if MCA component topo:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_sharedfp" = "$component" ; then + if test "$with_topo" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 @@ -341564,8 +369339,8 @@ as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_sharedfp" ; then - if test "$DIRECT_sharedfp" = "$component" ; then + if test ! -z "$DIRECT_topo" ; then + if test "$DIRECT_topo" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 @@ -341580,10 +369355,10 @@ fi - MCA_ompi_sharedfp_ALL_COMPONENTS="$all_components" - MCA_ompi_sharedfp_STATIC_COMPONENTS="$static_components" - MCA_ompi_sharedfp_DSO_COMPONENTS="$dso_components" - MCA_ompi_sharedfp_STATIC_LTLIBS="$static_ltlibs" + MCA_ompi_topo_ALL_COMPONENTS="$all_components" + MCA_ompi_topo_STATIC_COMPONENTS="$static_components" + MCA_ompi_topo_DSO_COMPONENTS="$dso_components" + MCA_ompi_topo_STATIC_LTLIBS="$static_ltlibs" @@ -341591,23 +369366,23 @@ - MCA_ompi_sharedfp_ALL_SUBDIRS= + MCA_ompi_topo_ALL_SUBDIRS= for item in $all_components ; do - MCA_ompi_sharedfp_ALL_SUBDIRS="$MCA_ompi_sharedfp_ALL_SUBDIRS mca/sharedfp/$item" + MCA_ompi_topo_ALL_SUBDIRS="$MCA_ompi_topo_ALL_SUBDIRS mca/topo/$item" done - MCA_ompi_sharedfp_STATIC_SUBDIRS= + MCA_ompi_topo_STATIC_SUBDIRS= for item in $static_components ; do - MCA_ompi_sharedfp_STATIC_SUBDIRS="$MCA_ompi_sharedfp_STATIC_SUBDIRS mca/sharedfp/$item" + MCA_ompi_topo_STATIC_SUBDIRS="$MCA_ompi_topo_STATIC_SUBDIRS mca/topo/$item" done - MCA_ompi_sharedfp_DSO_SUBDIRS= + MCA_ompi_topo_DSO_SUBDIRS= for item in $dso_components ; do - MCA_ompi_sharedfp_DSO_SUBDIRS="$MCA_ompi_sharedfp_DSO_SUBDIRS mca/sharedfp/$item" + MCA_ompi_topo_DSO_SUBDIRS="$MCA_ompi_topo_DSO_SUBDIRS mca/topo/$item" done @@ -341615,7 +369390,7 @@ # Create the final .h file that will be included in the type's # top-level glue. This lists all the static components. We don't # need to do this for "common". - if test "sharedfp" != "common"; then + if test "topo" != "common"; then cat > $outfile < /dev/null 2>&1 if test "$?" != "0"; then mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + unset all_components static_components dso_components outfile outfile_real - MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS topo" - MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/topo" - MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_topo_ALL_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_topo_DSO_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_topo_STATIC_SUBDIRS)" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/topo/libmca_topo.la" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_topo_STATIC_LTLIBS)" + MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS vprotocol" + MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/vprotocol" + MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_vprotocol_ALL_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_vprotocol_DSO_SUBDIRS)" + MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_vprotocol_STATIC_SUBDIRS)" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/vprotocol/libmca_vprotocol.la" + MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_vprotocol_STATIC_LTLIBS)" - opal_show_subsubtitle "Configuring MCA framework topo" + opal_show_subsubtitle "Configuring MCA framework vprotocol" @@ -341698,11 +369450,11 @@ # exists. Need to do this for VPATH builds, because the directory # may not exist yet. For the "common" type, it's not really a # component, so it doesn't have a base. - outdir=ompi/mca/topo/base + outdir=ompi/mca/vprotocol/base as_dir=$outdir; as_fn_mkdir_p # emit Makefile rule - ac_config_files="$ac_config_files ompi/mca/topo/Makefile" + ac_config_files="$ac_config_files ompi/mca/vprotocol/Makefile" # remove any previously generated #include files @@ -341712,14 +369464,14 @@ touch $outfile.struct $outfile.extern # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework topo" >&5 -$as_echo_n "checking for no configure components in framework topo... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: basic" >&5 -$as_echo "basic" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework topo" >&5 -$as_echo_n "checking for m4 configure components in framework topo... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: treematch" >&5 -$as_echo "treematch" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework vprotocol" >&5 +$as_echo_n "checking for no configure components in framework vprotocol... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pessimist" >&5 +$as_echo "pessimist" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework vprotocol" >&5 +$as_echo_n "checking for m4 configure components in framework vprotocol... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } # If there are components in the no configure list, but we're # doing one of the "special" selection logics, abort with a @@ -341729,13 +369481,13 @@ # run the configure logic for the no-config components - opal_show_subsubsubtitle "MCA component topo:basic (no configuration)" + opal_show_subsubsubtitle "MCA component vprotocol:pessimist (no configuration)" opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/ompi/mca/topo/basic" + component_path="$srcdir/ompi/mca/vprotocol/pessimist" want_component=0 # build if: @@ -341767,8 +369519,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_topo" ; then - if test "$DIRECT_topo" = "basic" ; then + if test ! -z "$DIRECT_vprotocol" ; then + if test "$DIRECT_vprotocol" = "pessimist" ; then want_component=1 else want_component=0 @@ -341777,10 +369529,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_topo" = "1"; then : + if test "$DISABLE_vprotocol" = "1"; then : want_component=0 fi - if test "$DISABLE_topo_basic" = "1"; then : + if test "$DISABLE_vprotocol_pessimist" = "1"; then : want_component=0 fi @@ -341791,11 +369543,11 @@ fi - SHARED_FRAMEWORK="$DSO_topo" - SHARED_COMPONENT="$DSO_topo_basic" + SHARED_FRAMEWORK="$DSO_vprotocol" + SHARED_COMPONENT="$DSO_vprotocol_pessimist" - STATIC_FRAMEWORK="$STATIC_topo" - STATIC_COMPONENT="$STATIC_topo_basic" + STATIC_FRAMEWORK="$STATIC_vprotocol" + STATIC_COMPONENT="$STATIC_vprotocol_pessimist" shared_mode_override=static @@ -341813,9 +369565,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component topo:basic compile mode" >&5 -$as_echo_n "checking for MCA component topo:basic compile mode... " >&6; } - if test "$DIRECT_topo" = "basic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component vprotocol:pessimist compile mode" >&5 +$as_echo_n "checking for MCA component vprotocol:pessimist compile mode... " >&6; } + if test "$DIRECT_vprotocol" = "pessimist" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -341831,45 +369583,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/topo/basic/post_configure.sh" + infile="$srcdir/ompi/mca/vprotocol/pessimist/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components basic" + all_components="$all_components pessimist" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components basic" + dso_components="$dso_components pessimist" else - if test "topo" = "common"; then + if test "vprotocol" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/topo/basic/lib${OMPI_LIB_PREFIX}mca_topo_basic.la $static_ltlibs" + static_ltlibs="mca/vprotocol/pessimist/lib${OMPI_LIB_PREFIX}mca_vprotocol_pessimist.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/topo/basic/libmca_topo_basic.la $static_ltlibs" + static_ltlibs="mca/vprotocol/pessimist/libmca_vprotocol_pessimist.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_topo_basic_component;" >> $outfile.extern - echo " &mca_topo_basic_component, " >> $outfile.struct - static_components="$static_components basic" + echo "extern const mca_base_component_t mca_vprotocol_pessimist_component;" >> $outfile.extern + echo " &mca_vprotocol_pessimist_component, " >> $outfile.struct + static_components="$static_components pessimist" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component topo:basic can compile" >&5 -$as_echo_n "checking if MCA component topo:basic can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component vprotocol:pessimist can compile" >&5 +$as_echo_n "checking if MCA component vprotocol:pessimist can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_topo" = "basic" ; then + if test "$DIRECT_vprotocol" = "pessimist" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_topo_DIRECT_CALL_HEADER=$line" + str="MCA_ompi_vprotocol_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** topo component basic was supposed to be direct-called, but +as_fn_error $? "*** vprotocol component pessimist was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -341877,8 +369629,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_topo" = "basic" ; then -as_fn_error $? "*** topo component basic was supposed to be direct-called, but + if test "$DIRECT_vprotocol" = "pessimist" ; then +as_fn_error $? "*** vprotocol component pessimist was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -341893,7 +369645,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$topo_basic_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$vprotocol_pessimist_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -341933,7 +369685,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $topo_basic_LDFLAGS; do + for arg in $vprotocol_pessimist_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -342014,7 +369766,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $topo_basic_WRAPPER_EXTRA_LDFLAGS; do + for arg in $vprotocol_pessimist_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -342056,7 +369808,7 @@ fi - if test "$topo_basic_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$vprotocol_pessimist_WRAPPER_EXTRA_LIBS" = ""; then : @@ -342096,7 +369848,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $topo_basic_LIBS; do + for arg in $vprotocol_pessimist_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -342177,7 +369929,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $topo_basic_WRAPPER_EXTRA_LIBS; do + for arg in $vprotocol_pessimist_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -342225,7 +369977,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$topo_basic_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$vprotocol_pessimist_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -342268,7 +370020,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $topo_basic_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $vprotocol_pessimist_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -342311,32 +370063,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring topo_basic_WRAPPER_EXTRA_CPPFLAGS ($topo_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring topo_basic_WRAPPER_EXTRA_CPPFLAGS ($topo_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring vprotocol_pessimist_WRAPPER_EXTRA_CPPFLAGS ($vprotocol_pessimist_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring vprotocol_pessimist_WRAPPER_EXTRA_CPPFLAGS ($vprotocol_pessimist_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component topo:basic can compile" >&5 -$as_echo_n "checking if MCA component topo:basic can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component vprotocol:pessimist can compile" >&5 +$as_echo_n "checking if MCA component vprotocol:pessimist can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_topo" = "basic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} + if test "$with_vprotocol" = "pessimist" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pessimist\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pessimist\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_topo" ; then - if test "$DIRECT_topo" = "basic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_vprotocol" ; then + if test "$DIRECT_vprotocol" = "pessimist" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pessimist\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pessimist\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -342344,25 +370096,25 @@ fi # add component to all component list - all_components="$all_components basic" + all_components="$all_components pessimist" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso" ; then - BUILD_ompi_topo_basic_DSO=1 + BUILD_ompi_vprotocol_pessimist_DSO=1 else - BUILD_ompi_topo_basic_DSO=0 + BUILD_ompi_vprotocol_pessimist_DSO=0 fi - if test "$BUILD_ompi_topo_basic_DSO" = "1"; then - MCA_BUILD_ompi_topo_basic_DSO_TRUE= - MCA_BUILD_ompi_topo_basic_DSO_FALSE='#' + if test "$BUILD_ompi_vprotocol_pessimist_DSO" = "1"; then + MCA_BUILD_ompi_vprotocol_pessimist_DSO_TRUE= + MCA_BUILD_ompi_vprotocol_pessimist_DSO_FALSE='#' else - MCA_BUILD_ompi_topo_basic_DSO_TRUE='#' - MCA_BUILD_ompi_topo_basic_DSO_FALSE= + MCA_BUILD_ompi_vprotocol_pessimist_DSO_TRUE='#' + MCA_BUILD_ompi_vprotocol_pessimist_DSO_FALSE= fi - ac_config_files="$ac_config_files ompi/mca/topo/basic/Makefile" + ac_config_files="$ac_config_files ompi/mca/vprotocol/pessimist/Makefile" unset compile_mode @@ -342377,13 +370129,24 @@ components_last_result=0 - opal_show_subsubsubtitle "MCA component topo:treematch (m4 configuration macro)" + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + if test "1" != "0"; then : - component_path="$srcdir/ompi/mca/topo/treematch" + for component_path in $srcdir/ompi/mca/vprotocol/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component vprotocol:$component (need to configure)" + + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/ompi/mca/vprotocol/$component" want_component=0 # build if: @@ -342415,8 +370178,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_topo" ; then - if test "$DIRECT_topo" = "treematch" ; then + if test ! -z "$DIRECT_vprotocol" ; then + if test "$DIRECT_vprotocol" = "$component" ; then want_component=1 else want_component=0 @@ -342425,982 +370188,222 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_topo" = "1"; then : - want_component=0 -fi - if test "$DISABLE_topo_treematch" = "1"; then : + if test "$DISABLE_vprotocol" = "1"; then : want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_vprotocol_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_topo" - SHARED_COMPONENT="$DSO_topo_treematch" - - STATIC_FRAMEWORK="$STATIC_topo" - STATIC_COMPONENT="$STATIC_topo_treematch" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component topo:treematch compile mode" >&5 -$as_echo_n "checking for MCA component topo:treematch compile mode... " >&6; } - if test "$DIRECT_topo" = "treematch" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - - - -# Check whether --with-treematch was given. -if test "${with_treematch+set}" = set; then : - withval=$with_treematch; -fi - - -# Check whether --with-treematch-include was given. -if test "${with_treematch_include+set}" = set; then : - withval=$with_treematch_include; -fi - - -# Check whether --with-treematch-libdir was given. -if test "${with_treematch_libdir+set}" = set; then : - withval=$with_treematch_libdir; -fi - - - treematch_files_local="no" - ompi_topo_treematch_dir=$srcdir - ompi_topo_treematch_libdir= - ompi_topo_treematch_happy=0 - - if test "x$with_treematch" != xno; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking TreeMatch headers" >&5 -$as_echo_n "checking TreeMatch headers... " >&6; } - if test "x$with_treematch_include" = x; then : - if test "x$with_treematch" != "xno"; then : - treematch_files_local="yes" - with_treematch_include="$OMPI_TOP_SRCDIR/ompi/mca/topo/treematch/treematch" -else - with_treematch_include="$with_treematch/include" -fi -fi - if test -f "$with_treematch_include/tm_tree.h"; then : - if test "x$with_treematch" != "xno"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: in the source" >&5 -$as_echo "in the source" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: user provided" >&5 -$as_echo "user provided" >&6; } -fi - opal_check_treematch_dir=$with_treematch_include - ompi_topo_treematch_happy=1 -else - as_fn_error $? "missing tm_tree.h (${with_treematch}:${with_treematch_include})" "$LINENO" 5 -fi -fi - - if test $ompi_topo_treematch_happy -eq 1; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-treematch value" >&5 -$as_echo_n "checking --with-treematch value... " >&6; } - if test "$with_treematch_include" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-treematch)" >&5 -$as_echo "simple no (specified --without-treematch)" >&6; } -else - if test "$with_treematch_include" = "yes" || test "x$with_treematch_include" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_treematch_include"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_treematch_include not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_treematch_include not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_treematch_include/tm_tree.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_treematch_include/tm_tree.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_treematch_include/tm_tree.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_treematch_include)" >&5 -$as_echo "sanity check ok ($with_treematch_include)" >&6; } - -fi - - -fi - - -fi - - -fi - - if test "x$with_treematch_libdir" = x; then : - if test "x$with_treematch" != "xyes"; then : - with_treematch_libdir=$with_treematch/lib - with_treematch_libdir=$OMPI_TOP_SRCDIR/ompi/mca/topo/treematch/treematch -fi -fi - if test "x$treematch_files_local" = xno; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-treematch-libdir value" >&5 -$as_echo_n "checking --with-treematch-libdir value... " >&6; } - if test "$with_treematch_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-treematch-libdir)" >&5 -$as_echo "simple no (specified --without-treematch-libdir)" >&6; } -else - if test "$with_treematch_libdir" = "yes" || test "x$with_treematch_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_treematch_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_treematch_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_treematch_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_treematch_libdir/libtreematch.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_treematch_libdir/libtreematch.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_treematch_libdir/libtreematch.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_treematch_libdir)" >&5 -$as_echo "sanity check ok ($with_treematch_libdir)" >&6; } - -fi - - -fi - - -fi - - -fi - - if test "x$with_treematch" != xno && test "x$with_treematch" != "xyes"; then : - if test ! -z "$with_treematch" && test "$with_treematch" != "yes"; then : - ompi_topo_treematch_dir="$with_treematch" -fi - if test ! -z "$with_treematch_libdir" && test "$with_treematch_libdir" != "yes"; then : - ompi_topo_treematch_libdir="$with_treematch_libdir" -fi - - opal_check_package_topo_treematch_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_topo_treematch_save_LDFLAGS="$LDFLAGS" - opal_check_package_topo_treematch_save_LIBS="$LIBS" - - opal_check_package_topo_treematch_orig_CPPFLAGS="$topo_treematch_CPPFLAGS" - opal_check_package_topo_treematch_orig_LDFLAGS="$topo_treematch_LDFLAGS" - opal_check_package_topo_treematch_orig_LIBS="$topo_treematch_LIBS" - - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_tm_tree_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $with_treematch_include | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in tm_tree.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "tm_tree.h" "ac_cv_header_tm_tree_h" "$ac_includes_default" -if test "x$ac_cv_header_tm_tree_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_TM_TREE_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_tm_tree_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - topo_treematch_CPPFLAGS="$topo_treematch_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in tm_tree.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "tm_tree.h" "ac_cv_header_tm_tree_h" "$ac_includes_default" -if test "x$ac_cv_header_tm_tree_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_TM_TREE_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_build_tree - opal_check_package_lib_happy="no" - if test "$with_treematch_libdir" != ""; then : - # libdir was specified - search only there - topo_treematch_LDFLAGS="$topo_treematch_LDFLAGS -L$with_treematch_libdir" - LDFLAGS="$LDFLAGS -L$with_treematch_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing build_tree" >&5 -$as_echo_n "checking for library containing build_tree... " >&6; } -if ${ac_cv_search_build_tree+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char build_tree (); -int -main () -{ -return build_tree (); - ; - return 0; -} -_ACEOF -for ac_lib in '' treematch; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_build_tree=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_build_tree+:} false; then : - break -fi -done -if ${ac_cv_search_build_tree+:} false; then : - -else - ac_cv_search_build_tree=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_build_tree" >&5 -$as_echo "$ac_cv_search_build_tree" >&6; } -ac_res=$ac_cv_search_build_tree -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" - topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" - unset ac_cv_search_build_tree -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$with_treematch_include" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing build_tree" >&5 -$as_echo_n "checking for library containing build_tree... " >&6; } -if ${ac_cv_search_build_tree+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char build_tree (); -int -main () -{ -return build_tree (); - ; - return 0; -} -_ACEOF -for ac_lib in '' treematch; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_build_tree=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_build_tree+:} false; then : - break -fi -done -if ${ac_cv_search_build_tree+:} false; then : - -else - ac_cv_search_build_tree=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_build_tree" >&5 -$as_echo "$ac_cv_search_build_tree" >&6; } -ac_res=$ac_cv_search_build_tree -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" - topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" - unset ac_cv_search_build_tree -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - topo_treematch_LDFLAGS="$topo_treematch_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing build_tree" >&5 -$as_echo_n "checking for library containing build_tree... " >&6; } -if ${ac_cv_search_build_tree+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char build_tree (); -int -main () -{ -return build_tree (); - ; - return 0; -} -_ACEOF -for ac_lib in '' treematch; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_build_tree=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_build_tree+:} false; then : - break -fi -done -if ${ac_cv_search_build_tree+:} false; then : - -else - ac_cv_search_build_tree=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_build_tree" >&5 -$as_echo "$ac_cv_search_build_tree" >&6; } -ac_res=$ac_cv_search_build_tree -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" - topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" - unset ac_cv_search_build_tree -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - topo_treematch_LDFLAGS="$topo_treematch_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing build_tree" >&5 -$as_echo_n "checking for library containing build_tree... " >&6; } -if ${ac_cv_search_build_tree+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char build_tree (); -int -main () -{ -return build_tree (); - ; - return 0; -} -_ACEOF -for ac_lib in '' treematch; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_build_tree=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_build_tree+:} false; then : - break -fi -done -if ${ac_cv_search_build_tree+:} false; then : - -else - ac_cv_search_build_tree=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_build_tree" >&5 -$as_echo "$ac_cv_search_build_tree" >&6; } -ac_res=$ac_cv_search_build_tree -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" - topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" - unset ac_cv_search_build_tree -fi -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - opal_libnl_sane=1 - case $host in - *linux*) - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtreematch requires libnl v1 or v3" >&5 -$as_echo_n "checking if libtreematch requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void build_tree (void); -int main(int argc, char *argv[]) { - build_tree (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:343131: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltreematch $LIBS $topo_treematch_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltreematch $LIBS $topo_treematch_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:343138: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib treematch" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib treematch" >&2;} - -fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libtreematch links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libtreematch links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtreematch (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libtreematch (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtreematch." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtreematch." >&2;} - - libnl_sane=0 -fi - - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas treematch requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas treematch requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtreematch (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libtreematch (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtreematch." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtreematch." >&2;} - - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs treematch" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - - # Loop over every token we've seen so far - - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - - # Check the ending condition - - opal_done="`expr $opal_i \>= $opal_count`" - - # Increment the counter - - opal_i="`expr $opal_i + 1`" - done - - # If we didn't find the token, add it to the "array" - - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable - -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - - opal_eval="unset opal_array_$opal_i" - eval $opal_eval - - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done - -# Done; do the assignment - -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval - -# Clean up - -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi - + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libtreematch requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libtreematch requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtreematch (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libtreematch (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtreematch." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtreematch." >&2;} - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs treematch" + SHARED_FRAMEWORK="$DSO_vprotocol" + str="SHARED_COMPONENT=\$DSO_vprotocol_$component" + eval $str -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + STATIC_FRAMEWORK="$STATIC_vprotocol" + str="STATIC_COMPONENT=\$STATIC_vprotocol_$component" + eval $str -# Go through each item in the variable and only keep the unique ones + shared_mode_override=static -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Loop over every token we've seen so far + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component vprotocol:$component compile mode" >&5 +$as_echo_n "checking for MCA component vprotocol:$component compile mode... " >&6; } + if test "$DIRECT_vprotocol" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + if test "$should_build" = "1" ; then - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # Increment the counter + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_i="`expr $opal_i + 1`" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done - # If we didn't find the token, add it to the "array" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval +# +# Invoke configure in a specific subdirectory. +# +# ompi/mca/vprotocol/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="ompi/mca/vprotocol/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval +# +# Sanity checks +# - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} -# Done; do the assignment + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } -# Clean up + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + # + # Move into the target directory + # -fi + subdir_parent=`pwd` + cd $subdir_dir - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + # + # Make a "../" for each directory in $subdir_dir. + # - rm -f conftest conftest_c.$ac_ext + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - opal_libnl_sane=$libnl_sane + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + # + # Construct the --cache-file argument + # - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # + # Invoke the configure script in the subdirectory + # - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + cd $subdir_parent +fi - ;; - esac +# +# Clean up +# - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -343422,333 +370425,105 @@ unset $opal_var done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_build_tree" != "no" && - test "$ac_cv_search_build_tree" != "none required"; then : - topo_treematch_LIBS="$ac_cv_search_build_tree " -else - topo_treematch_LIBS="" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi - - -else - opal_check_package_happy="no" -fi -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_build_tree - opal_check_package_lib_happy="no" - if test "$with_treematch_libdir" != ""; then : - # libdir was specified - search only there - topo_treematch_LDFLAGS="$topo_treematch_LDFLAGS -L$with_treematch_libdir" - LDFLAGS="$LDFLAGS -L$with_treematch_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing build_tree" >&5 -$as_echo_n "checking for library containing build_tree... " >&6; } -if ${ac_cv_search_build_tree+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char build_tree (); -int -main () -{ -return build_tree (); - ; - return 0; -} -_ACEOF -for ac_lib in '' treematch; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_build_tree=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_build_tree+:} false; then : - break -fi -done -if ${ac_cv_search_build_tree+:} false; then : - -else - ac_cv_search_build_tree=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_build_tree" >&5 -$as_echo "$ac_cv_search_build_tree" >&6; } -ac_res=$ac_cv_search_build_tree -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" - topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" - unset ac_cv_search_build_tree -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$with_treematch_include" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing build_tree" >&5 -$as_echo_n "checking for library containing build_tree... " >&6; } -if ${ac_cv_search_build_tree+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char build_tree (); -int -main () -{ -return build_tree (); - ; - return 0; -} -_ACEOF -for ac_lib in '' treematch; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_build_tree=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_build_tree+:} false; then : - break -fi -done -if ${ac_cv_search_build_tree+:} false; then : + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/ompi/mca/vprotocol/all_components/post_configure.sh" + if test -f $infile; then -else - ac_cv_search_build_tree=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_build_tree" >&5 -$as_echo "$ac_cv_search_build_tree" >&6; } -ac_res=$ac_cv_search_build_tree -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" - topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" - unset ac_cv_search_build_tree -fi -fi + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + vprotocol_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + vprotocol_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - topo_treematch_LDFLAGS="$topo_treematch_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing build_tree" >&5 -$as_echo_n "checking for library containing build_tree... " >&6; } -if ${ac_cv_search_build_tree+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char build_tree (); -int -main () -{ -return build_tree (); - ; - return 0; -} -_ACEOF -for ac_lib in '' treematch; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_build_tree=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_build_tree+:} false; then : - break -fi -done -if ${ac_cv_search_build_tree+:} false; then : -else - ac_cv_search_build_tree=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_build_tree" >&5 -$as_echo "$ac_cv_search_build_tree" >&6; } -ac_res=$ac_cv_search_build_tree -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" - topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" - unset ac_cv_search_build_tree -fi -fi -fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/ompi/mca/vprotocol/$component/post_configure.sh" - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - topo_treematch_LDFLAGS="$topo_treematch_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing build_tree" >&5 -$as_echo_n "checking for library containing build_tree... " >&6; } -if ${ac_cv_search_build_tree+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char build_tree (); -int -main () -{ -return build_tree (); - ; - return 0; -} -_ACEOF -for ac_lib in '' treematch; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_build_tree=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_build_tree+:} false; then : - break -fi -done -if ${ac_cv_search_build_tree+:} false; then : + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "vprotocol" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/vprotocol/$component/lib${OMPI_LIB_PREFIX}mca_vprotocol_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/vprotocol/$component/libmca_vprotocol_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_vprotocol_$component_component;" >> $outfile.extern + echo " &mca_vprotocol_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi -else - ac_cv_search_build_tree=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_build_tree" >&5 -$as_echo "$ac_cv_search_build_tree" >&6; } -ac_res=$ac_cv_search_build_tree -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component vprotocol:$component can compile" >&5 +$as_echo_n "checking if MCA component vprotocol:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" - topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" - unset ac_cv_search_build_tree -fi -fi -fi -fi + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_vprotocol" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_ompi_vprotocol_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** vprotocol component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_vprotocol" = "$component" ; then +as_fn_error $? "*** vprotocol component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$vprotocol_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -343761,7 +370536,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -343780,16 +370555,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + +str="line=\$vprotocol_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -343802,7 +370617,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -343821,7 +370636,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -343829,474 +370644,406 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtreematch requires libnl v1 or v3" >&5 -$as_echo_n "checking if libtreematch requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void build_tree (void); -int main(int argc, char *argv[]) { - build_tree (); - return 0; -} -EOF - - this_requires_v1=0 - this_requires_v3=0 - result_msg= - -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:343856: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltreematch $LIBS $topo_treematch_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -ltreematch $LIBS $topo_treematch_LIBS 1>&5 2>&1 -opal_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:343863: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" + done fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } - + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib treematch" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib treematch" >&2;} - + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. - - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libtreematch links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libtreematch links to both libnl and libnl-3." >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtreematch (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libtreematch (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtreematch." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtreematch." >&2;} - - libnl_sane=0 fi + done - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas treematch requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas treematch requires libnl" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtreematch (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libtreematch (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtreematch." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtreematch." >&2;} - - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs treematch" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + fi - opal_done="`expr $opal_i \>= $opal_count`" + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + else - # If we didn't find the token, add it to the "array" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component vprotocol:$component can compile" >&5 +$as_echo_n "checking if MCA component vprotocol:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + # If this component was requested as the default for this + # type, then abort. + if test "$with_vprotocol" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi -done - -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test ! -z "$DIRECT_vprotocol" ; then + if test "$DIRECT_vprotocol" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + fi + fi + done - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done +fi -# Done; do the assignment + MCA_ompi_vprotocol_ALL_COMPONENTS="$all_components" + MCA_ompi_vprotocol_STATIC_COMPONENTS="$static_components" + MCA_ompi_vprotocol_DSO_COMPONENTS="$dso_components" + MCA_ompi_vprotocol_STATIC_LTLIBS="$static_ltlibs" -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi -fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libtreematch requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libtreematch requires libnl-3" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libtreematch (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libtreematch (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libtreematch." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libtreematch." >&2;} - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs treematch" + MCA_ompi_vprotocol_ALL_SUBDIRS= + for item in $all_components ; do + MCA_ompi_vprotocol_ALL_SUBDIRS="$MCA_ompi_vprotocol_ALL_SUBDIRS mca/vprotocol/$item" + done -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + MCA_ompi_vprotocol_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_ompi_vprotocol_STATIC_SUBDIRS="$MCA_ompi_vprotocol_STATIC_SUBDIRS mca/vprotocol/$item" + done - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + MCA_ompi_vprotocol_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_ompi_vprotocol_DSO_SUBDIRS="$MCA_ompi_vprotocol_DSO_SUBDIRS mca/vprotocol/$item" + done - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "vprotocol" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi fi -done + rm -f $outfile.struct $outfile.extern -# Take all the items in the "array" and assemble them back into a -# single variable + unset all_components static_components dso_components outfile outfile_real -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # note that mca_wrapper_extra_* is a running list, and we take checkpoints at the end of our project + ompi_mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags" + ompi_mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags" + ompi_mca_wrapper_extra_libs="$mca_wrapper_extra_libs" + - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi -fi +# BWB: Until projects have separate configure scripts + # and can skip running all of ORTE, just avoid recursing + # into orte sub directory if orte disabled + if (test "oshmem" = "ompi" && test "$enable_mpi" != "no") || test "oshmem" = "opal" || test "oshmem" = "orte" || test "oshmem" = "oshmem"; then + MCA_PROJECT_SUBDIRS="$MCA_PROJECT_SUBDIRS oshmem" + MCA_PROJECT_DIST_SUBDIRS="$MCA_PROJECT_DIST_SUBDIRS oshmem" + fi - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + # can't use a variable rename here because these need to be evaled + # at auto* time. - rm -f conftest conftest_c.$ac_ext + opal_show_subtitle "Configuring MCA for oshmem" - opal_libnl_sane=$libnl_sane + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for frameworks for oshmem" >&5 +$as_echo_n "checking for frameworks for oshmem... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: atomic, memheap, scoll, spml, sshmem" >&5 +$as_echo "atomic, memheap, scoll, spml, sshmem" >&6; } + # iterate through the list of frameworks. There is something + # funky with m4 foreach if the list is defined, but empty. It + # will call the 3rd argument once with an empty value for the + # first argument. Protect against calling MCA_CONFIGURE_FRAMEWORK + # with an empty second argument. Grrr.... + # if there isn't a project list, abort + # + # Also setup two variables for Makefiles: + # MCA_project_FRAMEWORKS - list of frameworks in that project + # MCA_project_FRAMEWORK_LIBS - list of libraries (or variables pointing + # to more libraries) that must be included + # in the project's main library - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + MCA_oshmem_FRAMEWORKS= + MCA_oshmem_FRAMEWORKS_SUBDIRS= + MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS= + MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS= + MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS= + MCA_oshmem_FRAMEWORK_LIBS= - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + MCA_oshmem_FRAMEWORKS="$MCA_oshmem_FRAMEWORKS atomic" + MCA_oshmem_FRAMEWORKS_SUBDIRS="$MCA_oshmem_FRAMEWORKS_SUBDIRS mca/atomic" + MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_oshmem_atomic_ALL_SUBDIRS)" + MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_oshmem_atomic_DSO_SUBDIRS)" + MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_oshmem_atomic_STATIC_SUBDIRS)" + MCA_oshmem_FRAMEWORK_LIBS="$MCA_oshmem_FRAMEWORK_LIBS mca/atomic/libmca_atomic.la" + MCA_oshmem_FRAMEWORK_LIBS="$MCA_oshmem_FRAMEWORK_LIBS \$(MCA_oshmem_atomic_STATIC_LTLIBS)" - ;; - esac + opal_show_subsubtitle "Configuring MCA framework atomic" - opal_check_package_libnl_check_ok=$opal_libnl_sane - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=oshmem/mca/atomic/base + as_dir=$outdir; as_fn_mkdir_p - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi + # emit Makefile rule + ac_config_files="$ac_config_files oshmem/mca/atomic/Makefile" -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_build_tree" != "no" && - test "$ac_cv_search_build_tree" != "none required"; then : - topo_treematch_LIBS="$ac_cv_search_build_tree " -else - topo_treematch_LIBS="" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework atomic" >&5 +$as_echo_n "checking for no configure components in framework atomic... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: basic" >&5 +$as_echo "basic" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework atomic" >&5 +$as_echo_n "checking for m4 configure components in framework atomic... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: mxm, ucx" >&5 +$as_echo "mxm, ucx" >&6; } -fi - unset opal_check_package_header_happy + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # run the configure logic for the no-config components - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + opal_show_subsubsubtitle "MCA component atomic:basic (no configuration)" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - if test "$opal_check_package_happy" = "yes"; then : - ompi_topo_treematch_happy=1 -else - topo_treematch_CPPFLAGS="$opal_check_package_topo_treematch_orig_CPPFLAGS" - topo_treematch_LDFLAGS="$opal_check_package_topo_treematch_orig_LDFLAGS" - topo_treematch_LIBS="$opal_check_package_topo_treematch_orig_LIBS" - ompi_topo_treematch_happy=1 -fi - CPPFLAGS="$opal_check_package_topo_treematch_save_CPPFLAGS" - LDFLAGS="$opal_check_package_topo_treematch_save_LDFLAGS" - LIBS="$opal_check_package_topo_treematch_save_LIBS" + component_path="$srcdir/oshmem/mca/atomic/basic" + want_component=0 -else - ompi_topo_treematch_happy=1 -fi -fi -fi + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_atomic" ; then + if test "$DIRECT_atomic" = "basic" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - if test $ompi_topo_treematch_happy -eq 1; then : - if test "x$treematch_files_local" = "xyes"; then : - if ! test -d $OMPI_TOP_BUILDDIR/ompi/mca/topo/treematch; then : - mkdir -p $OMPI_TOP_BUILDDIR/ompi/mca/topo/treematch + # if we were explicitly disabled, don't build :) + if test "$DISABLE_atomic" = "1"; then : + want_component=0 fi - cat > $OMPI_TOP_BUILDDIR/ompi/mca/topo/treematch/config.h << EOF -/* - * This file is automatically generated by configure. Edits will be lost - * - * This is an dummy config.h in order to prevent the embedded treematch from using - * the config.h from the embedded hwloc - * - * see https://github.com/open-mpi/ompi/pull/6185#issuecomment-458807930 - */ -EOF - + if test "$DISABLE_atomic_basic" = "1"; then : + want_component=0 fi - should_build=$should_build + + if test "$want_component" = "1"; then : + should_build=1 else - if test ! -z "$with_treematch" && test "$with_treematch" != "no"; then : - as_fn_error $? "TreeMatch support requested but not found. Aborting" "$LINENO" 5 -fi - should_build=0 + should_build=0 fi - ac_config_files="$ac_config_files ompi/mca/topo/treematch/Makefile" - if test $ompi_topo_treematch_happy -eq 1 && \ - test "x$treematch_files_local" = "xyes"; then - topo_treematch_local_TRUE= - topo_treematch_local_FALSE='#' -else - topo_treematch_local_TRUE='#' - topo_treematch_local_FALSE= -fi + SHARED_FRAMEWORK="$DSO_atomic" + SHARED_COMPONENT="$DSO_atomic_basic" + STATIC_FRAMEWORK="$STATIC_atomic" + STATIC_COMPONENT="$STATIC_atomic_basic" - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + shared_mode_override=static - if test "$should_build" = "1"; then : + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component atomic:basic compile mode" >&5 +$as_echo_n "checking for MCA component atomic:basic compile mode... " >&6; } + if test "$DIRECT_atomic" = "basic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/ompi/mca/topo/treematch/post_configure.sh" + infile="$srcdir/oshmem/mca/atomic/basic/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components treematch" + all_components="$all_components basic" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components treematch" + dso_components="$dso_components basic" else - if test "topo" = "common"; then + if test "atomic" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/topo/treematch/lib${OMPI_LIB_PREFIX}mca_topo_treematch.la $static_ltlibs" + static_ltlibs="mca/atomic/basic/lib${OSHMEM_LIB_PREFIX}mca_atomic_basic.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/topo/treematch/libmca_topo_treematch.la $static_ltlibs" + static_ltlibs="mca/atomic/basic/libmca_atomic_basic.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_topo_treematch_component;" >> $outfile.extern - echo " &mca_topo_treematch_component, " >> $outfile.struct - static_components="$static_components treematch" + echo "extern const mca_base_component_t mca_atomic_basic_component;" >> $outfile.extern + echo " &mca_atomic_basic_component, " >> $outfile.struct + static_components="$static_components basic" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component topo:treematch can compile" >&5 -$as_echo_n "checking if MCA component topo:treematch can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component atomic:basic can compile" >&5 +$as_echo_n "checking if MCA component atomic:basic can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_topo" = "treematch" ; then + if test "$DIRECT_atomic" = "basic" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_topo_DIRECT_CALL_HEADER=$line" + str="MCA_oshmem_atomic_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** topo component treematch was supposed to be direct-called, but +as_fn_error $? "*** atomic component basic was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -344304,8 +371051,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_topo" = "treematch" ; then -as_fn_error $? "*** topo component treematch was supposed to be direct-called, but + if test "$DIRECT_atomic" = "basic" ; then +as_fn_error $? "*** atomic component basic was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -344320,7 +371067,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$topo_treematch_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$atomic_basic_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -344360,7 +371107,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $topo_treematch_LDFLAGS; do + for arg in $atomic_basic_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -344441,7 +371188,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $topo_treematch_WRAPPER_EXTRA_LDFLAGS; do + for arg in $atomic_basic_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -344483,7 +371230,7 @@ fi - if test "$topo_treematch_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$atomic_basic_WRAPPER_EXTRA_LIBS" = ""; then : @@ -344523,7 +371270,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $topo_treematch_LIBS; do + for arg in $atomic_basic_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -344604,7 +371351,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $topo_treematch_WRAPPER_EXTRA_LIBS; do + for arg in $atomic_basic_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -344652,7 +371399,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$topo_treematch_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$atomic_basic_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -344695,7 +371442,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $topo_treematch_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $atomic_basic_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -344738,89 +371485,79 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring topo_treematch_WRAPPER_EXTRA_CPPFLAGS ($topo_treematch_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring topo_treematch_WRAPPER_EXTRA_CPPFLAGS ($topo_treematch_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring atomic_basic_WRAPPER_EXTRA_CPPFLAGS ($atomic_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring atomic_basic_WRAPPER_EXTRA_CPPFLAGS ($atomic_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component topo:treematch can compile" >&5 -$as_echo_n "checking if MCA component topo:treematch can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component atomic:basic can compile" >&5 +$as_echo_n "checking if MCA component atomic:basic can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_topo" = "treematch" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"treematch\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"treematch\" failed to configure properly" >&2;} + if test "$with_atomic" = "basic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_topo" ; then - if test "$DIRECT_topo" = "treematch" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"treematch\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"treematch\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_atomic" ; then + if test "$DIRECT_atomic" = "basic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components treematch" -fi - - + # add component to all component list + all_components="$all_components basic" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_ompi_topo_treematch_DSO=1 -else - BUILD_ompi_topo_treematch_DSO=0 -fi - if test "$BUILD_ompi_topo_treematch_DSO" = "1"; then - MCA_BUILD_ompi_topo_treematch_DSO_TRUE= - MCA_BUILD_ompi_topo_treematch_DSO_FALSE='#' + if test "$compile_mode" = "dso" ; then + BUILD_oshmem_atomic_basic_DSO=1 + else + BUILD_oshmem_atomic_basic_DSO=0 + fi + if test "$BUILD_oshmem_atomic_basic_DSO" = "1"; then + MCA_BUILD_oshmem_atomic_basic_DSO_TRUE= + MCA_BUILD_oshmem_atomic_basic_DSO_FALSE='#' else - MCA_BUILD_ompi_topo_treematch_DSO_TRUE='#' - MCA_BUILD_ompi_topo_treematch_DSO_FALSE= + MCA_BUILD_oshmem_atomic_basic_DSO_TRUE='#' + MCA_BUILD_oshmem_atomic_basic_DSO_FALSE= fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - - unset compile_mode + ac_config_files="$ac_config_files oshmem/mca/atomic/basic/Makefile" + unset compile_mode + # configure components that use built-in configuration scripts - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - if test "1" != "0"; then : - for component_path in $srcdir/ompi/mca/topo/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component topo:$component (need to configure)" + opal_show_subsubsubtitle "MCA component atomic:mxm (m4 configuration macro)" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/ompi/mca/topo/$component" + component_path="$srcdir/oshmem/mca/atomic/mxm" want_component=0 # build if: @@ -344852,8 +371589,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_topo" ; then - if test "$DIRECT_topo" = "$component" ; then + if test ! -z "$DIRECT_atomic" ; then + if test "$DIRECT_atomic" = "mxm" ; then want_component=1 else want_component=0 @@ -344862,29 +371599,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_topo" = "1"; then : + if test "$DISABLE_atomic" = "1"; then : + want_component=0 +fi + if test "$DISABLE_atomic_mxm" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_topo_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_topo" - str="SHARED_COMPONENT=\$DSO_topo_$component" - eval $str + SHARED_FRAMEWORK="$DSO_atomic" + SHARED_COMPONENT="$DSO_atomic_mxm" - STATIC_FRAMEWORK="$STATIC_topo" - str="STATIC_COMPONENT=\$STATIC_topo_$component" - eval $str + STATIC_FRAMEWORK="$STATIC_atomic" + STATIC_COMPONENT="$STATIC_atomic_mxm" shared_mode_override=static @@ -344902,9 +371637,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component topo:$component compile mode" >&5 -$as_echo_n "checking for MCA component topo:$component compile mode... " >&6; } - if test "$DIRECT_topo" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component atomic:mxm compile mode" >&5 +$as_echo_n "checking for MCA component atomic:mxm compile mode... " >&6; } + if test "$DIRECT_atomic" = "mxm" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -344912,9 +371647,92 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files oshmem/mca/atomic/mxm/Makefile" + + + if test -z "$ompi_check_mxm_happy" ; then + +# Check whether --with-mxm was given. +if test "${with_mxm+set}" = set; then : + withval=$with_mxm; +fi + + +# Check whether --with-mxm-libdir was given. +if test "${with_mxm_libdir+set}" = set; then : + withval=$with_mxm_libdir; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-mxm-libdir value" >&5 +$as_echo_n "checking --with-mxm-libdir value... " >&6; } + if test "$with_mxm_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-mxm-libdir)" >&5 +$as_echo "simple no (specified --without-mxm-libdir)" >&6; } +else + if test "$with_mxm_libdir" = "yes" || test "x$with_mxm_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_mxm_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_mxm_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_mxm_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_mxm_libdir/libmxm.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_mxm_libdir/libmxm.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_mxm_libdir/libmxm.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_mxm_libdir)" >&5 +$as_echo "sanity check ok ($with_mxm_libdir)" >&6; } + +fi + + +fi + + +fi + + +fi + + + ompi_check_mxm_atomic_mxm_save_CPPFLAGS="$CPPFLAGS" + ompi_check_mxm_atomic_mxm_save_LDFLAGS="$LDFLAGS" + ompi_check_mxm_atomic_mxm_save_LIBS="$LIBS" + + if test "$with_mxm" != "no"; then : + if test ! -z "$with_mxm" && test "$with_mxm" != "yes"; then : + + ompi_check_mxm_dir="$with_mxm" + +fi + if test ! -z "$with_mxm_libdir" && test "$with_mxm_libdir" != "yes"; then : + ompi_check_mxm_libdir="$with_mxm_libdir" +fi + + + opal_check_package_ompi_check_mxm_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_ompi_check_mxm_save_LDFLAGS="$LDFLAGS" + opal_check_package_ompi_check_mxm_save_LIBS="$LIBS" + + opal_check_package_ompi_check_mxm_orig_CPPFLAGS="$ompi_check_mxm_CPPFLAGS" + opal_check_package_ompi_check_mxm_orig_LDFLAGS="$ompi_check_mxm_LDFLAGS" + opal_check_package_ompi_check_mxm_orig_LIBS="$ompi_check_mxm_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering @@ -344927,7 +371745,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in dir_prefix; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -344946,7 +371764,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" eval $opal_str unset opal_str @@ -344954,250 +371772,357 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# ompi/mca/topo/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="ompi/mca/topo/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_mxm_api_mxm_api_h - subdir_parent=`pwd` - cd $subdir_dir + # get rid of the trailing slash(es) + dir_prefix=$(echo $ompi_check_mxm_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in mxm/api/mxm_api.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "mxm/api/mxm_api.h" "ac_cv_header_mxm_api_mxm_api_h" "$ac_includes_default" +if test "x$ac_cv_header_mxm_api_mxm_api_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MXM_API_MXM_API_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi - # - # Make a "../" for each directory in $subdir_dir. - # +done - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_mxm_api_mxm_api_h +fi +fi - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + ompi_check_mxm_CPPFLAGS="$ompi_check_mxm_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in mxm/api/mxm_api.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "mxm/api/mxm_api.h" "ac_cv_header_mxm_api_mxm_api_h" "$ac_includes_default" +if test "x$ac_cv_header_mxm_api_mxm_api_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MXM_API_MXM_API_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi - # - # Construct the --cache-file argument - # +done - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + if test "$opal_check_package_header_happy" = "yes"; then : - # - # Invoke the configure script in the subdirectory - # + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi - # - # Go back to the topdir - # + # see comment above + unset ac_cv_search_mxm_cleanup + opal_check_package_lib_happy="no" + if test "$ompi_check_mxm_libdir" != ""; then : + # libdir was specified - search only there + ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$ompi_check_mxm_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_mxm_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 +$as_echo_n "checking for library containing mxm_cleanup... " >&6; } +if ${ac_cv_search_mxm_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - cd $subdir_parent +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char mxm_cleanup (); +int +main () +{ +return mxm_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' mxm; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_mxm_cleanup=$ac_res fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_mxm_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_mxm_cleanup+:} false; then : -# -# Clean up -# - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +else + ac_cv_search_mxm_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 +$as_echo "$ac_cv_search_mxm_cleanup" >&6; } +ac_res=$ac_cv_search_mxm_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + unset ac_cv_search_mxm_cleanup +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_mxm_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 +$as_echo_n "checking for library containing mxm_cleanup... " >&6; } +if ${ac_cv_search_mxm_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/ompi/mca/topo/all_components/post_configure.sh" - if test -f $infile; then +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char mxm_cleanup (); +int +main () +{ +return mxm_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' mxm; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_mxm_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_mxm_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_mxm_cleanup+:} false; then : - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi +else + ac_cv_search_mxm_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 +$as_echo "$ac_cv_search_mxm_cleanup" >&6; } +ac_res=$ac_cv_search_mxm_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - topo_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - topo_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + unset ac_cv_search_mxm_cleanup +fi +fi + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 +$as_echo_n "checking for library containing mxm_cleanup... " >&6; } +if ${ac_cv_search_mxm_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char mxm_cleanup (); +int +main () +{ +return mxm_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' mxm; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_mxm_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_mxm_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_mxm_cleanup+:} false; then : +else + ac_cv_search_mxm_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 +$as_echo "$ac_cv_search_mxm_cleanup" >&6; } +ac_res=$ac_cv_search_mxm_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/topo/$component/post_configure.sh" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + unset ac_cv_search_mxm_cleanup +fi +fi +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 +$as_echo_n "checking for library containing mxm_cleanup... " >&6; } +if ${ac_cv_search_mxm_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "topo" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/topo/$component/lib${OMPI_LIB_PREFIX}mca_topo_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/topo/$component/libmca_topo_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_topo_$component_component;" >> $outfile.extern - echo " &mca_topo_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char mxm_cleanup (); +int +main () +{ +return mxm_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' mxm; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_mxm_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_mxm_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_mxm_cleanup+:} false; then : - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component topo:$component can compile" >&5 -$as_echo_n "checking if MCA component topo:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else + ac_cv_search_mxm_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 +$as_echo "$ac_cv_search_mxm_cleanup" >&6; } +ac_res=$ac_cv_search_mxm_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_topo" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_topo_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** topo component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_topo" = "$component" ; then -as_fn_error $? "*** topo component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + unset ac_cv_search_mxm_cleanup +fi +fi +fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$topo_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -345210,7 +372135,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -345229,56 +372154,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - -str="line=\$topo_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + opal_libnl_sane=1 + case $host in + *linux*) @@ -345291,7 +372176,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -345310,7 +372195,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -345318,435 +372203,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libmxm requires libnl v1 or v3" >&5 +$as_echo_n "checking if libmxm requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void mxm_cleanup (void); +int main(int argc, char *argv[]) { + mxm_cleanup (); + return 0; +} +EOF + this_requires_v1=0 + this_requires_v3=0 + result_msg= - fi +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:372230: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS 1>&5 2>&1 +opal_status=$? - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:372237: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 +fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" +fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } +else + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib mxm" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib mxm" >&2;} - else +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component topo:$component can compile" >&5 -$as_echo_n "checking if MCA component topo:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - # If this component was requested as the default for this - # type, then abort. - if test "$with_topo" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. - if test ! -z "$DIRECT_topo" ; then - if test "$DIRECT_topo" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libmxm links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libmxm links to both libnl and libnl-3." >&2;} - fi - fi - done + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} + libnl_sane=0 fi - MCA_ompi_topo_ALL_COMPONENTS="$all_components" - MCA_ompi_topo_STATIC_COMPONENTS="$static_components" - MCA_ompi_topo_DSO_COMPONENTS="$dso_components" - MCA_ompi_topo_STATIC_LTLIBS="$static_ltlibs" + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas mxm requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas mxm requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs mxm" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - MCA_ompi_topo_ALL_SUBDIRS= - for item in $all_components ; do - MCA_ompi_topo_ALL_SUBDIRS="$MCA_ompi_topo_ALL_SUBDIRS mca/topo/$item" - done + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - MCA_ompi_topo_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_ompi_topo_STATIC_SUBDIRS="$MCA_ompi_topo_STATIC_SUBDIRS mca/topo/$item" - done + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - MCA_ompi_topo_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_ompi_topo_DSO_SUBDIRS="$MCA_ompi_topo_DSO_SUBDIRS mca/topo/$item" + opal_i="`expr $opal_i + 1`" done + # If we didn't find the token, add it to the "array" - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "topo" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_ompi_FRAMEWORKS="$MCA_ompi_FRAMEWORKS vprotocol" - MCA_ompi_FRAMEWORKS_SUBDIRS="$MCA_ompi_FRAMEWORKS_SUBDIRS mca/vprotocol" - MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_ompi_vprotocol_ALL_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_ompi_vprotocol_DSO_SUBDIRS)" - MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_ompi_vprotocol_STATIC_SUBDIRS)" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS mca/vprotocol/libmca_vprotocol.la" - MCA_ompi_FRAMEWORK_LIBS="$MCA_ompi_FRAMEWORK_LIBS \$(MCA_ompi_vprotocol_STATIC_LTLIBS)" - - opal_show_subsubtitle "Configuring MCA framework vprotocol" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=ompi/mca/vprotocol/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files ompi/mca/vprotocol/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework vprotocol" >&5 -$as_echo_n "checking for no configure components in framework vprotocol... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: pessimist" >&5 -$as_echo "pessimist" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework vprotocol" >&5 -$as_echo_n "checking for m4 configure components in framework vprotocol... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } +done - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # run the configure logic for the no-config components + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - opal_show_subsubsubtitle "MCA component vprotocol:pessimist (no configuration)" +# Done; do the assignment - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi - component_path="$srcdir/ompi/mca/vprotocol/pessimist" - want_component=0 +fi - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_vprotocol" ; then - if test "$DIRECT_vprotocol" = "pessimist" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmxm requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmxm requires libnl-3" >&2;} - # if we were explicitly disabled, don't build :) - if test "$DISABLE_vprotocol" = "1"; then : - want_component=0 -fi - if test "$DISABLE_vprotocol_pessimist" = "1"; then : - want_component=0 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} - if test "$want_component" = "1"; then : - should_build=1 + libnl_sane=0 else - should_build=0 -fi + opal_libnlv3_libs="$opal_libnlv3_libs mxm" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - SHARED_FRAMEWORK="$DSO_vprotocol" - SHARED_COMPONENT="$DSO_vprotocol_pessimist" +# Go through each item in the variable and only keep the unique ones - STATIC_FRAMEWORK="$STATIC_vprotocol" - STATIC_COMPONENT="$STATIC_vprotocol_pessimist" +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - shared_mode_override=static + # Loop over every token we've seen so far - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component vprotocol:pessimist compile mode" >&5 -$as_echo_n "checking for MCA component vprotocol:pessimist compile mode... " >&6; } - if test "$DIRECT_vprotocol" = "pessimist" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "$should_build" = "1" ; then + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/vprotocol/pessimist/post_configure.sh" + opal_i="`expr $opal_i + 1`" + done - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components pessimist" + # If we didn't find the token, add it to the "array" - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components pessimist" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - if test "vprotocol" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/vprotocol/pessimist/lib${OMPI_LIB_PREFIX}mca_vprotocol_pessimist.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/vprotocol/pessimist/libmca_vprotocol_pessimist.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_vprotocol_pessimist_component;" >> $outfile.extern - echo " &mca_vprotocol_pessimist_component, " >> $outfile.struct - static_components="$static_components pessimist" + opal_i="`expr $opal_i - 1`" fi +done - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component vprotocol:pessimist can compile" >&5 -$as_echo_n "checking if MCA component vprotocol:pessimist can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +# Take all the items in the "array" and assemble them back into a +# single variable - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_vprotocol" = "pessimist" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_vprotocol_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** vprotocol component pessimist was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_vprotocol" = "pessimist" ; then -as_fn_error $? "*** vprotocol component pessimist was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$vprotocol_pessimist_WRAPPER_EXTRA_LDFLAGS" = ""; then : + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# Clean up - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + rm -f conftest conftest_c.$ac_ext - for arg in $vprotocol_pessimist_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + opal_libnl_sane=$libnl_sane # Unwind the index @@ -345770,65 +372496,10 @@ done -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $vprotocol_pessimist_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -345851,89 +372522,332 @@ done + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi - if test "$vprotocol_pessimist_WRAPPER_EXTRA_LIBS" = ""; then : +fi + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_mxm_cleanup" != "no" && + test "$ac_cv_search_mxm_cleanup" != "none required"; then : + ompi_check_mxm_LIBS="$ac_cv_search_mxm_cleanup " +else + ompi_check_mxm_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +else + opal_check_package_happy="no" +fi +else - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # see comment above + unset ac_cv_search_mxm_cleanup + opal_check_package_lib_happy="no" + if test "$ompi_check_mxm_libdir" != ""; then : + # libdir was specified - search only there + ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$ompi_check_mxm_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_mxm_libdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 +$as_echo_n "checking for library containing mxm_cleanup... " >&6; } +if ${ac_cv_search_mxm_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char mxm_cleanup (); +int +main () +{ +return mxm_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' mxm; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_mxm_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_mxm_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_mxm_cleanup+:} false; then : +else + ac_cv_search_mxm_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 +$as_echo "$ac_cv_search_mxm_cleanup" >&6; } +ac_res=$ac_cv_search_mxm_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - for arg in $vprotocol_pessimist_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + unset ac_cv_search_mxm_cleanup +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_mxm_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 +$as_echo_n "checking for library containing mxm_cleanup... " >&6; } +if ${ac_cv_search_mxm_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char mxm_cleanup (); +int +main () +{ +return mxm_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' mxm; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_mxm_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_mxm_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_mxm_cleanup+:} false; then : + +else + ac_cv_search_mxm_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 +$as_echo "$ac_cv_search_mxm_cleanup" >&6; } +ac_res=$ac_cv_search_mxm_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + unset ac_cv_search_mxm_cleanup +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 +$as_echo_n "checking for library containing mxm_cleanup... " >&6; } +if ${ac_cv_search_mxm_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char mxm_cleanup (); +int +main () +{ +return mxm_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' mxm; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_mxm_cleanup=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_mxm_cleanup+:} false; then : + break +fi +done +if ${ac_cv_search_mxm_cleanup+:} false; then : + +else + ac_cv_search_mxm_cleanup=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 +$as_echo "$ac_cv_search_mxm_cleanup" >&6; } +ac_res=$ac_cv_search_mxm_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + unset ac_cv_search_mxm_cleanup +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 +$as_echo_n "checking for library containing mxm_cleanup... " >&6; } +if ${ac_cv_search_mxm_cleanup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char mxm_cleanup (); +int +main () +{ +return mxm_cleanup (); + ; + return 0; +} +_ACEOF +for ac_lib in '' mxm; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_mxm_cleanup=$ac_res fi - done +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_mxm_cleanup+:} false; then : + break fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg +done +if ${ac_cv_search_mxm_cleanup+:} false; then : + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + ac_cv_search_mxm_cleanup=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 +$as_echo "$ac_cv_search_mxm_cleanup" >&6; } +ac_res=$ac_cv_search_mxm_cleanup +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + unset ac_cv_search_mxm_cleanup +fi +fi +fi +fi -else + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -345946,7 +372860,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -345965,66 +372879,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $vprotocol_pessimist_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$vprotocol_pessimist_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + opal_libnl_sane=1 + case $host in + *linux*) @@ -346037,7 +372901,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -346056,7 +372920,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -346064,389 +372928,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $vprotocol_pessimist_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libmxm requires libnl v1 or v3" >&5 +$as_echo_n "checking if libmxm requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void mxm_cleanup (void); +int main(int argc, char *argv[]) { + mxm_cleanup (); + return 0; +} +EOF - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + this_requires_v1=0 + this_requires_v3=0 + result_msg= +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:372955: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS 1>&5 2>&1 +opal_status=$? -fi +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:372962: \$? = $opal_status" >&5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring vprotocol_pessimist_WRAPPER_EXTRA_CPPFLAGS ($vprotocol_pessimist_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring vprotocol_pessimist_WRAPPER_EXTRA_CPPFLAGS ($vprotocol_pessimist_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + echo \$? = $opal_status >&5 fi +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component vprotocol:pessimist can compile" >&5 -$as_echo_n "checking if MCA component vprotocol:pessimist can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_vprotocol" = "pessimist" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pessimist\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pessimist\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_vprotocol" ; then - if test "$DIRECT_vprotocol" = "pessimist" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pessimist\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pessimist\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components pessimist" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_ompi_vprotocol_pessimist_DSO=1 - else - BUILD_ompi_vprotocol_pessimist_DSO=0 - fi - if test "$BUILD_ompi_vprotocol_pessimist_DSO" = "1"; then - MCA_BUILD_ompi_vprotocol_pessimist_DSO_TRUE= - MCA_BUILD_ompi_vprotocol_pessimist_DSO_FALSE='#' else - MCA_BUILD_ompi_vprotocol_pessimist_DSO_TRUE='#' - MCA_BUILD_ompi_vprotocol_pessimist_DSO_FALSE= + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib mxm" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib mxm" >&2;} + fi + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 - ac_config_files="$ac_config_files ompi/mca/vprotocol/pessimist/Makefile" + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libmxm links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libmxm links to both libnl and libnl-3." >&2;} - unset compile_mode + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} + libnl_sane=0 +fi - # configure components that use built-in configuration scripts + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas mxm requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas mxm requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs mxm" - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - if test "1" != "0"; then : + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - for component_path in $srcdir/ompi/mca/vprotocol/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component vprotocol:$component (need to configure)" + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + # Check the ending condition + opal_done="`expr $opal_i \>= $opal_count`" + # Increment the counter - component_path="$srcdir/ompi/mca/vprotocol/$component" - want_component=0 + opal_i="`expr $opal_i + 1`" + done - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_vprotocol" ; then - if test "$DIRECT_vprotocol" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + # If we didn't find the token, add it to the "array" - # if we were explicitly disabled, don't build :) - if test "$DISABLE_vprotocol" = "1"; then : - want_component=0 -fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_vprotocol_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - SHARED_FRAMEWORK="$DSO_vprotocol" - str="SHARED_COMPONENT=\$DSO_vprotocol_$component" - eval $str + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - STATIC_FRAMEWORK="$STATIC_vprotocol" - str="STATIC_COMPONENT=\$STATIC_vprotocol_$component" - eval $str + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - shared_mode_override=static +# Done; do the assignment - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component vprotocol:$component compile mode" >&5 -$as_echo_n "checking for MCA component vprotocol:$component compile mode... " >&6; } - if test "$DIRECT_vprotocol" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +# Clean up - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi - if test "$should_build" = "1" ; then +fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmxm requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmxm requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs mxm" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +# Go through each item in the variable and only keep the unique ones - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $opal_str - unset opal_str +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do -# -# Invoke configure in a specific subdirectory. -# -# ompi/mca/vprotocol/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="ompi/mca/vprotocol/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. -# -# Sanity checks -# + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} + # Check the ending condition - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + opal_done="`expr $opal_i \>= $opal_count`" - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + # Increment the counter - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac + opal_i="`expr $opal_i + 1`" + done - # - # Move into the target directory - # + # If we didn't find the token, add it to the "array" - subdir_parent=`pwd` - cd $subdir_dir + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done - # - # Make a "../" for each directory in $subdir_dir. - # +# Take all the items in the "array" and assemble them back into a +# single variable - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + opal_eval="unset opal_array_$opal_i" + eval $opal_eval - # - # Construct the --cache-file argument - # + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" +# Done; do the assignment - # - # Invoke the configure script in the subdirectory - # +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi +# Clean up - # - # Go back to the topdir - # +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi - cd $subdir_parent fi -# -# Clean up -# + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -346469,163 +373220,11 @@ unset $opal_var done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/ompi/mca/vprotocol/all_components/post_configure.sh" - if test -f $infile; then - - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - vprotocol_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - vprotocol_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi - - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/ompi/mca/vprotocol/$component/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "vprotocol" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/vprotocol/$component/lib${OMPI_LIB_PREFIX}mca_vprotocol_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/vprotocol/$component/libmca_vprotocol_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_vprotocol_$component_component;" >> $outfile.extern - echo " &mca_vprotocol_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component vprotocol:$component can compile" >&5 -$as_echo_n "checking if MCA component vprotocol:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_vprotocol" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_ompi_vprotocol_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** vprotocol component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_vprotocol" = "$component" ; then -as_fn_error $? "*** vprotocol component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$vprotocol_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -346647,65 +373246,29 @@ unset $opal_var done -str="line=\$vprotocol_$component_WRAPPER_EXTRA_LIBS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_mxm_cleanup" != "no" && + test "$ac_cv_search_mxm_cleanup" != "none required"; then : + ompi_check_mxm_LIBS="$ac_cv_search_mxm_cleanup " +else + ompi_check_mxm_LIBS="" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -346729,365 +373292,257 @@ done - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component vprotocol:$component can compile" >&5 -$as_echo_n "checking if MCA component vprotocol:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_vprotocol" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_vprotocol" ; then - if test "$DIRECT_vprotocol" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - fi - fi - done + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_mxm_happy="yes" +else + ompi_check_mxm_CPPFLAGS="$opal_check_package_ompi_check_mxm_orig_CPPFLAGS" + ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" + ompi_check_mxm_LIBS="$opal_check_package_ompi_check_mxm_orig_LIBS" + ompi_check_mxm_happy="no" fi - MCA_ompi_vprotocol_ALL_COMPONENTS="$all_components" - MCA_ompi_vprotocol_STATIC_COMPONENTS="$static_components" - MCA_ompi_vprotocol_DSO_COMPONENTS="$dso_components" - MCA_ompi_vprotocol_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_ompi_vprotocol_ALL_SUBDIRS= - for item in $all_components ; do - MCA_ompi_vprotocol_ALL_SUBDIRS="$MCA_ompi_vprotocol_ALL_SUBDIRS mca/vprotocol/$item" - done - - - - MCA_ompi_vprotocol_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_ompi_vprotocol_STATIC_SUBDIRS="$MCA_ompi_vprotocol_STATIC_SUBDIRS mca/vprotocol/$item" - done - - - - MCA_ompi_vprotocol_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_ompi_vprotocol_DSO_SUBDIRS="$MCA_ompi_vprotocol_DSO_SUBDIRS mca/vprotocol/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "vprotocol" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - - # note that mca_wrapper_extra_* is a running list, and we take checkpoints at the end of our project - ompi_mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags" - ompi_mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags" - ompi_mca_wrapper_extra_libs="$mca_wrapper_extra_libs" - - - - - + CPPFLAGS="$opal_check_package_ompi_check_mxm_save_CPPFLAGS" + LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" + LIBS="$opal_check_package_ompi_check_mxm_save_LIBS" +else + ompi_check_mxm_happy="no" +fi -# BWB: Until projects have separate configure scripts - # and can skip running all of ORTE, just avoid recursing - # into orte sub directory if orte disabled - if (test "oshmem" = "ompi" && test "$enable_mpi" != "no") || test "oshmem" = "opal" || test "oshmem" = "orte" || test "oshmem" = "oshmem"; then - MCA_PROJECT_SUBDIRS="$MCA_PROJECT_SUBDIRS oshmem" - MCA_PROJECT_DIST_SUBDIRS="$MCA_PROJECT_DIST_SUBDIRS oshmem" - fi + CPPFLAGS="$ompi_check_mxm_atomic_mxm_save_CPPFLAGS" + LDFLAGS="$ompi_check_mxm_atomic_mxm_save_LDFLAGS" + LIBS="$ompi_check_mxm_atomic_mxm_save_LIBS" - # can't use a variable rename here because these need to be evaled - # at auto* time. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MXM version compatibility" >&5 +$as_echo_n "checking for MXM version compatibility... " >&6; } - opal_show_subtitle "Configuring MCA for oshmem" + old_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -I$ompi_check_mxm_dir/include" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for frameworks for oshmem" >&5 -$as_echo_n "checking for frameworks for oshmem... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: atomic, memheap, scoll, spml, sshmem" >&5 -$as_echo "atomic, memheap, scoll, spml, sshmem" >&6; } +#ifndef MXM_VERSION +#error "MXM Version is less than 2.1, please upgrade" +#endif +# +#if MXM_API < MXM_VERSION(2,1) +#error "MXM Version is less than 2.1, please upgrade" +#endif - # iterate through the list of frameworks. There is something - # funky with m4 foreach if the list is defined, but empty. It - # will call the 3rd argument once with an empty value for the - # first argument. Protect against calling MCA_CONFIGURE_FRAMEWORK - # with an empty second argument. Grrr.... - # if there isn't a project list, abort - # - # Also setup two variables for Makefiles: - # MCA_project_FRAMEWORKS - list of frameworks in that project - # MCA_project_FRAMEWORK_LIBS - list of libraries (or variables pointing - # to more libraries) that must be included - # in the project's main library + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ompi_mxm_version_ok="yes" +else + ompi_mxm_version_ok="no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_mxm_version_ok" >&5 +$as_echo "$ompi_mxm_version_ok" >&6; } + CFLAGS=$old_CFLAGS - MCA_oshmem_FRAMEWORKS= - MCA_oshmem_FRAMEWORKS_SUBDIRS= - MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS= - MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS= - MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS= - MCA_oshmem_FRAMEWORK_LIBS= + if test "$ompi_mxm_version_ok" = "no"; then : + ompi_check_mxm_happy="no" +fi - MCA_oshmem_FRAMEWORKS="$MCA_oshmem_FRAMEWORKS atomic" - MCA_oshmem_FRAMEWORKS_SUBDIRS="$MCA_oshmem_FRAMEWORKS_SUBDIRS mca/atomic" - MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_oshmem_atomic_ALL_SUBDIRS)" - MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_oshmem_atomic_DSO_SUBDIRS)" - MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_oshmem_atomic_STATIC_SUBDIRS)" - MCA_oshmem_FRAMEWORK_LIBS="$MCA_oshmem_FRAMEWORK_LIBS mca/atomic/libmca_atomic.la" - MCA_oshmem_FRAMEWORK_LIBS="$MCA_oshmem_FRAMEWORK_LIBS \$(MCA_oshmem_atomic_STATIC_LTLIBS)" - opal_show_subsubtitle "Configuring MCA framework atomic" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=oshmem/mca/atomic/base - as_dir=$outdir; as_fn_mkdir_p + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - # emit Makefile rule - ac_config_files="$ac_config_files oshmem/mca/atomic/Makefile" + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="Mellanox MXM: $ompi_check_mxm_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework atomic" >&5 -$as_echo_n "checking for no configure components in framework atomic... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: basic" >&5 -$as_echo "basic" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework atomic" >&5 -$as_echo_n "checking for m4 configure components in framework atomic... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: mxm, ucx" >&5 -$as_echo "mxm, ucx" >&6; } - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # run the configure logic for the no-config components - opal_show_subsubsubtitle "MCA component atomic:basic (no configuration)" + fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + if test "$ompi_check_mxm_happy" = "yes"; then : + atomic_mxm_LDFLAGS="$atomic_mxm_LDFLAGS $ompi_check_mxm_LDFLAGS" + atomic_mxm_LIBS="$atomic_mxm_LIBS $ompi_check_mxm_LIBS" + atomic_mxm_CPPFLAGS="$atomic_mxm_CPPFLAGS $ompi_check_mxm_CPPFLAGS" + save_CPPFLAGS="$CPPFLAGS" + save_LDFLAGS="$LDFLAGS" + save_LIBS="$LIBS" + CPPFLAGS="$CPPFLAGS -I$ompi_check_mxm_dir/include" + LDFLAGS="$LDFLAGS -L$ompi_check_mxm_dir/lib" + LIBS="$LIBS -lmxm" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + #include + int main() { + if (mxm_get_version() < MXM_VERSION(1,5) ) + return 1; - component_path="$srcdir/oshmem/mca/atomic/basic" - want_component=0 + /* if compiler sees these constansts then mxm has atomic support*/ + int add_index = MXM_REQ_OP_ATOMIC_ADD; + int swap_index = MXM_REQ_OP_ATOMIC_SWAP; + return 0; + } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_atomic" ; then - if test "$DIRECT_atomic" = "basic" ; then - want_component=1 - else - want_component=0 - fi - fi - fi +$as_echo "#define OSHMEM_HAS_ATOMIC_MXM 1" >>confdefs.h + atomic_mxm_happy="yes" +else + atomic_mxm_happy="no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS - # if we were explicitly disabled, don't build :) - if test "$DISABLE_atomic" = "1"; then : - want_component=0 +else + if test ! -z "$with_mxm" && test "$with_mxm" != "no"; then : + as_fn_error $? "MXM support requested but not found. Aborting" "$LINENO" 5 fi - if test "$DISABLE_atomic_basic" = "1"; then : - want_component=0 + atomic_mxm_happy="no" fi - if test "$want_component" = "1"; then : - should_build=1 + + if test "$atomic_mxm_happy" = "yes"; then : + atomic_mxm_WRAPPER_EXTRA_LDFLAGS="$atomic_mxm_LDFLAGS" + atomic_mxm_WRAPPER_EXTRA_LIBS="$atomic_mxm_LIBS" + should_build=$should_build else should_build=0 fi - SHARED_FRAMEWORK="$DSO_atomic" - SHARED_COMPONENT="$DSO_atomic_basic" + # substitute in the things needed to build mxm - STATIC_FRAMEWORK="$STATIC_atomic" - STATIC_COMPONENT="$STATIC_atomic_basic" - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component atomic:basic compile mode" >&5 -$as_echo_n "checking for MCA component atomic:basic compile mode... " >&6; } - if test "$DIRECT_atomic" = "basic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if oshmem/atomic/mxm component can be compiled" >&5 +$as_echo_n "checking if oshmem/atomic/mxm component can be compiled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $atomic_mxm_happy" >&5 +$as_echo "$atomic_mxm_happy" >&6; } - if test "$should_build" = "1" ; then + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/oshmem/mca/atomic/basic/post_configure.sh" + infile="$srcdir/oshmem/mca/atomic/mxm/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components basic" + all_components="$all_components mxm" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components basic" + dso_components="$dso_components mxm" else if test "atomic" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/atomic/basic/lib${OSHMEM_LIB_PREFIX}mca_atomic_basic.la $static_ltlibs" + static_ltlibs="mca/atomic/mxm/lib${OSHMEM_LIB_PREFIX}mca_atomic_mxm.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/atomic/basic/libmca_atomic_basic.la $static_ltlibs" + static_ltlibs="mca/atomic/mxm/libmca_atomic_mxm.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_atomic_basic_component;" >> $outfile.extern - echo " &mca_atomic_basic_component, " >> $outfile.struct - static_components="$static_components basic" + echo "extern const mca_base_component_t mca_atomic_mxm_component;" >> $outfile.extern + echo " &mca_atomic_mxm_component, " >> $outfile.struct + static_components="$static_components mxm" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component atomic:basic can compile" >&5 -$as_echo_n "checking if MCA component atomic:basic can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component atomic:mxm can compile" >&5 +$as_echo_n "checking if MCA component atomic:mxm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_atomic" = "basic" ; then + if test "$DIRECT_atomic" = "mxm" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_oshmem_atomic_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** atomic component basic was supposed to be direct-called, but +as_fn_error $? "*** atomic component mxm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -347095,8 +373550,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_atomic" = "basic" ; then -as_fn_error $? "*** atomic component basic was supposed to be direct-called, but + if test "$DIRECT_atomic" = "mxm" ; then +as_fn_error $? "*** atomic component mxm was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -347111,7 +373566,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$atomic_basic_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$atomic_mxm_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -347151,7 +373606,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $atomic_basic_LDFLAGS; do + for arg in $atomic_mxm_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -347232,7 +373687,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $atomic_basic_WRAPPER_EXTRA_LDFLAGS; do + for arg in $atomic_mxm_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -347274,7 +373729,7 @@ fi - if test "$atomic_basic_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$atomic_mxm_WRAPPER_EXTRA_LIBS" = ""; then : @@ -347314,7 +373769,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $atomic_basic_LIBS; do + for arg in $atomic_mxm_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -347395,7 +373850,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $atomic_basic_WRAPPER_EXTRA_LIBS; do + for arg in $atomic_mxm_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -347443,7 +373898,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$atomic_basic_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$atomic_mxm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -347486,7 +373941,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $atomic_basic_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $atomic_mxm_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -347529,79 +373984,78 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring atomic_basic_WRAPPER_EXTRA_CPPFLAGS ($atomic_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring atomic_basic_WRAPPER_EXTRA_CPPFLAGS ($atomic_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring atomic_mxm_WRAPPER_EXTRA_CPPFLAGS ($atomic_mxm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring atomic_mxm_WRAPPER_EXTRA_CPPFLAGS ($atomic_mxm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component atomic:basic can compile" >&5 -$as_echo_n "checking if MCA component atomic:basic can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component atomic:mxm can compile" >&5 +$as_echo_n "checking if MCA component atomic:mxm can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_atomic" = "basic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} + if test "$with_atomic" = "mxm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"mxm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"mxm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_atomic" ; then - if test "$DIRECT_atomic" = "basic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} + if test "$DIRECT_atomic" = "mxm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"mxm\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"mxm\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components basic" - fi + # add component to all component list + all_components="$all_components mxm" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_oshmem_atomic_basic_DSO=1 - else - BUILD_oshmem_atomic_basic_DSO=0 - fi - if test "$BUILD_oshmem_atomic_basic_DSO" = "1"; then - MCA_BUILD_oshmem_atomic_basic_DSO_TRUE= - MCA_BUILD_oshmem_atomic_basic_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_oshmem_atomic_mxm_DSO=1 else - MCA_BUILD_oshmem_atomic_basic_DSO_TRUE='#' - MCA_BUILD_oshmem_atomic_basic_DSO_FALSE= + BUILD_oshmem_atomic_mxm_DSO=0 +fi + if test "$BUILD_oshmem_atomic_mxm_DSO" = "1"; then + MCA_BUILD_oshmem_atomic_mxm_DSO_TRUE= + MCA_BUILD_oshmem_atomic_mxm_DSO_FALSE='#' +else + MCA_BUILD_oshmem_atomic_mxm_DSO_TRUE='#' + MCA_BUILD_oshmem_atomic_mxm_DSO_FALSE= fi - ac_config_files="$ac_config_files oshmem/mca/atomic/basic/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - # configure components that use built-in configuration scripts - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - opal_show_subsubsubtitle "MCA component atomic:mxm (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component atomic:ucx (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/oshmem/mca/atomic/mxm" + component_path="$srcdir/oshmem/mca/atomic/ucx" want_component=0 # build if: @@ -347634,7 +374088,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_atomic" ; then - if test "$DIRECT_atomic" = "mxm" ; then + if test "$DIRECT_atomic" = "ucx" ; then want_component=1 else want_component=0 @@ -347646,7 +374100,7 @@ if test "$DISABLE_atomic" = "1"; then : want_component=0 fi - if test "$DISABLE_atomic_mxm" = "1"; then : + if test "$DISABLE_atomic_ucx" = "1"; then : want_component=0 fi @@ -347660,10 +374114,10 @@ # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE SHARED_FRAMEWORK="$DSO_atomic" - SHARED_COMPONENT="$DSO_atomic_mxm" + SHARED_COMPONENT="$DSO_atomic_ucx" STATIC_FRAMEWORK="$STATIC_atomic" - STATIC_COMPONENT="$STATIC_atomic_mxm" + STATIC_COMPONENT="$STATIC_atomic_ucx" shared_mode_override=static @@ -347681,9 +374135,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component atomic:mxm compile mode" >&5 -$as_echo_n "checking for MCA component atomic:mxm compile mode... " >&6; } - if test "$DIRECT_atomic" = "mxm" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component atomic:ucx compile mode" >&5 +$as_echo_n "checking for MCA component atomic:ucx compile mode... " >&6; } + if test "$DIRECT_atomic" = "ucx" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -347694,49 +374148,82 @@ # try to configure the component - ac_config_files="$ac_config_files oshmem/mca/atomic/mxm/Makefile" + ac_config_files="$ac_config_files oshmem/mca/atomic/ucx/Makefile" - if test -z "$ompi_check_mxm_happy" ; then -# Check whether --with-mxm was given. -if test "${with_mxm+set}" = set; then : - withval=$with_mxm; -fi -# Check whether --with-mxm-libdir was given. -if test "${with_mxm_libdir+set}" = set; then : - withval=$with_mxm_libdir; + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_check_ucx_dir; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_check_ucx_dir\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + if test -z "$ompi_check_ucx_happy"; then : + +# Check whether --with-ucx was given. +if test "${with_ucx+set}" = set; then : + withval=$with_ucx; fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-mxm-libdir value" >&5 -$as_echo_n "checking --with-mxm-libdir value... " >&6; } - if test "$with_mxm_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-mxm-libdir)" >&5 -$as_echo "simple no (specified --without-mxm-libdir)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx value" >&5 +$as_echo_n "checking --with-ucx value... " >&6; } + if test "$with_ucx" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx)" >&5 +$as_echo "simple no (specified --without-ucx)" >&6; } else - if test "$with_mxm_libdir" = "yes" || test "x$with_mxm_libdir" = "x"; then : + if test "$with_ucx" = "yes" || test "x$with_ucx" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 $as_echo "simple ok (unspecified value)" >&6; } else - if test ! -d "$with_mxm_libdir"; then : + if test ! -d "$with_ucx"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_mxm_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_mxm_libdir not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ucx not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - if test "x`ls $with_mxm_libdir/libmxm.* 2> /dev/null`" = "x"; then : + if test "x`ls $with_ucx/include/ucp/api/ucp.h 2> /dev/null`" = "x"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_mxm_libdir/libmxm.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_mxm_libdir/libmxm.* not found" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_mxm_libdir)" >&5 -$as_echo "sanity check ok ($with_mxm_libdir)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx)" >&5 +$as_echo "sanity check ok ($with_ucx)" >&6; } fi @@ -347750,28 +374237,158 @@ fi - ompi_check_mxm_atomic_mxm_save_CPPFLAGS="$CPPFLAGS" - ompi_check_mxm_atomic_mxm_save_LDFLAGS="$LDFLAGS" - ompi_check_mxm_atomic_mxm_save_LIBS="$LIBS" +# Check whether --with-ucx-libdir was given. +if test "${with_ucx_libdir+set}" = set; then : + withval=$with_ucx_libdir; +fi - if test "$with_mxm" != "no"; then : - if test ! -z "$with_mxm" && test "$with_mxm" != "yes"; then : - ompi_check_mxm_dir="$with_mxm" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx-libdir value" >&5 +$as_echo_n "checking --with-ucx-libdir value... " >&6; } + if test "$with_ucx_libdir" = "no" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx-libdir)" >&5 +$as_echo "simple no (specified --without-ucx-libdir)" >&6; } +else + if test "$with_ucx_libdir" = "yes" || test "x$with_ucx_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 +$as_echo "simple ok (unspecified value)" >&6; } +else + if test ! -d "$with_ucx_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_ucx_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_ucx_libdir/libucp.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx_libdir)" >&5 +$as_echo "sanity check ok ($with_ucx_libdir)" >&6; } fi - if test ! -z "$with_mxm_libdir" && test "$with_mxm_libdir" != "yes"; then : - ompi_check_mxm_libdir="$with_mxm_libdir" + + fi - opal_check_package_ompi_check_mxm_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_ompi_check_mxm_save_LDFLAGS="$LDFLAGS" - opal_check_package_ompi_check_mxm_save_LIBS="$LIBS" +fi - opal_check_package_ompi_check_mxm_orig_CPPFLAGS="$ompi_check_mxm_CPPFLAGS" - opal_check_package_ompi_check_mxm_orig_LDFLAGS="$ompi_check_mxm_LDFLAGS" - opal_check_package_ompi_check_mxm_orig_LIBS="$ompi_check_mxm_LIBS" + +fi + + + if test "$with_ucx" != "no"; then : + if test -n "$with_ucx" && test "$with_ucx" != "yes"; then : + ompi_check_ucx_dir="$with_ucx" +else + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ucx" >&5 +$as_echo_n "checking for ucx... " >&6; } + +if test -n "$ucx_CFLAGS"; then + pkg_cv_ucx_CFLAGS="$ucx_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ucx_CFLAGS=`$PKG_CONFIG --cflags "ucx" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$ucx_LIBS"; then + pkg_cv_ucx_LIBS="$ucx_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ucx_LIBS=`$PKG_CONFIG --libs "ucx" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$ucx_STATIC_LIBS"; then + pkg_cv_ucx_STATIC_LIBS="$ucx_STATIC_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 + ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ucx_STATIC_LIBS=`$PKG_CONFIG --libs --static "ucx" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + ucx_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ucx" 2>&1` + else + ucx_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ucx" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$ucx_PKG_ERRORS" >&5 + + true +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + true +else + ucx_CFLAGS=$pkg_cv_ucx_CFLAGS + ucx_LIBS=$pkg_cv_ucx_LIBS + ucx_STATIC_LIBS=$pkg_cv_ucx_STATIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + ompi_check_ucx_dir=`$PKG_CONFIG --variable=prefix ucx` + if test "$ompi_check_ucx_dir" = "/usr"; then : + ompi_check_ucx_dir= +fi +fi +fi + ompi_check_ucx_happy="no" + if test -z "$ompi_check_ucx_dir"; then : + + opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" + opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" + + opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" + opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" + opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" # This is stolen from autoconf to peek under the covers to get the @@ -347819,22 +374436,22 @@ # so this sucks, but there's no way to get through the progression # of header includes without killing off the cache variable and trying # again... - unset ac_cv_header_mxm_api_mxm_api_h + unset ac_cv_header_ucp_api_ucp_h # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_mxm_dir | sed -e 'sX/*$XXg') + dir_prefix=$(echo | sed -e 'sX/*$XXg') opal_check_package_header_happy="no" if test "$dir_prefix" = "/usr" || \ test "$dir_prefix" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 $as_echo "looking for header without includes" >&6; } - for ac_header in mxm/api/mxm_api.h + for ac_header in ucp/api/ucp.h do : - ac_fn_c_check_header_mongrel "$LINENO" "mxm/api/mxm_api.h" "ac_cv_header_mxm_api_mxm_api_h" "$ac_includes_default" -if test "x$ac_cv_header_mxm_api_mxm_api_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_MXM_API_MXM_API_H 1 +#define HAVE_UCP_API_UCP_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -347843,21 +374460,21 @@ if test "$opal_check_package_header_happy" = "no"; then : # no go on the as is - reset the cache and try again - unset ac_cv_header_mxm_api_mxm_api_h + unset ac_cv_header_ucp_api_ucp_h fi fi if test "$opal_check_package_header_happy" = "no"; then : if test "$dir_prefix" != ""; then : - ompi_check_mxm_CPPFLAGS="$ompi_check_mxm_CPPFLAGS -I$dir_prefix/include" + ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" fi - for ac_header in mxm/api/mxm_api.h + for ac_header in ucp/api/ucp.h do : - ac_fn_c_check_header_mongrel "$LINENO" "mxm/api/mxm_api.h" "ac_cv_header_mxm_api_mxm_api_h" "$ac_includes_default" -if test "x$ac_cv_header_mxm_api_mxm_api_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" +if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_MXM_API_MXM_API_H 1 +#define HAVE_UCP_API_UCP_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -347872,15 +374489,15 @@ # see comment above - unset ac_cv_search_mxm_cleanup + unset ac_cv_search_ucp_cleanup opal_check_package_lib_happy="no" - if test "$ompi_check_mxm_libdir" != ""; then : + if test "" != ""; then : # libdir was specified - search only there - ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$ompi_check_mxm_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_mxm_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 -$as_echo_n "checking for library containing mxm_cleanup... " >&6; } -if ${ac_cv_search_mxm_cleanup+:} false; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -347893,42 +374510,42 @@ #ifdef __cplusplus extern "C" #endif -char mxm_cleanup (); +char ucp_cleanup (); int main () { -return mxm_cleanup (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' mxm; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_mxm_cleanup=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_mxm_cleanup+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_mxm_cleanup+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_mxm_cleanup=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 -$as_echo "$ac_cv_search_mxm_cleanup" >&6; } -ac_res=$ac_cv_search_mxm_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -347937,22 +374554,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - unset ac_cv_search_mxm_cleanup + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi else # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_mxm_dir" + opal_check_package_libdir="" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 -$as_echo_n "checking for library containing mxm_cleanup... " >&6; } -if ${ac_cv_search_mxm_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -347965,42 +374582,42 @@ #ifdef __cplusplus extern "C" #endif -char mxm_cleanup (); +char ucp_cleanup (); int main () { -return mxm_cleanup (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' mxm; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_mxm_cleanup=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_mxm_cleanup+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_mxm_cleanup+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_mxm_cleanup=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 -$as_echo "$ac_cv_search_mxm_cleanup" >&6; } -ac_res=$ac_cv_search_mxm_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -348010,21 +374627,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - unset ac_cv_search_mxm_cleanup + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$opal_check_package_libdir/lib" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 -$as_echo_n "checking for library containing mxm_cleanup... " >&6; } -if ${ac_cv_search_mxm_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -348037,42 +374654,42 @@ #ifdef __cplusplus extern "C" #endif -char mxm_cleanup (); +char ucp_cleanup (); int main () { -return mxm_cleanup (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' mxm; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_mxm_cleanup=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_mxm_cleanup+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_mxm_cleanup+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_mxm_cleanup=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 -$as_echo "$ac_cv_search_mxm_cleanup" >&6; } -ac_res=$ac_cv_search_mxm_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -348082,22 +374699,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - unset ac_cv_search_mxm_cleanup + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$opal_check_package_libdir/lib64" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 -$as_echo_n "checking for library containing mxm_cleanup... " >&6; } -if ${ac_cv_search_mxm_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -348110,42 +374727,42 @@ #ifdef __cplusplus extern "C" #endif -char mxm_cleanup (); +char ucp_cleanup (); int main () { -return mxm_cleanup (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' mxm; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_mxm_cleanup=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_mxm_cleanup+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_mxm_cleanup+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_mxm_cleanup=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 -$as_echo "$ac_cv_search_mxm_cleanup" >&6; } -ac_res=$ac_cv_search_mxm_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -348155,9 +374772,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - unset ac_cv_search_mxm_cleanup + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi @@ -348254,12 +374871,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libmxm requires libnl v1 or v3" >&5 -$as_echo_n "checking if libmxm requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void mxm_cleanup (void); +extern void ucp_cleanup (void); int main(int argc, char *argv[]) { - mxm_cleanup (); + ucp_cleanup (); return 0; } EOF @@ -348271,14 +374888,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:348274: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS 1>&5 2>&1 +echo "configure:374891: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:348281: \$? = $opal_status" >&5 + echo "configure:374898: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -348298,8 +374915,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib mxm" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib mxm" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} fi @@ -348313,15 +374930,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libmxm links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libmxm links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 fi @@ -348330,19 +374947,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas mxm requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas mxm requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs mxm" + opal_libnlv1_libs="$opal_libnlv1_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -348421,19 +375038,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmxm requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmxm requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs mxm" + opal_libnlv3_libs="$opal_libnlv3_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -348574,11 +375191,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_mxm_cleanup" != "no" && - test "$ac_cv_search_mxm_cleanup" != "none required"; then : - ompi_check_mxm_LIBS="$ac_cv_search_mxm_cleanup " + if test "$ac_cv_search_ucp_cleanup" != "no" && + test "$ac_cv_search_ucp_cleanup" != "none required"; then : + ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" else - ompi_check_mxm_LIBS="" + ompi_check_ucx_LIBS="-luct -lucm -lucs" fi opal_check_package_happy="yes" else @@ -348597,15 +375214,15 @@ # see comment above - unset ac_cv_search_mxm_cleanup + unset ac_cv_search_ucp_cleanup opal_check_package_lib_happy="no" - if test "$ompi_check_mxm_libdir" != ""; then : + if test "" != ""; then : # libdir was specified - search only there - ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$ompi_check_mxm_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_mxm_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 -$as_echo_n "checking for library containing mxm_cleanup... " >&6; } -if ${ac_cv_search_mxm_cleanup+:} false; then : + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -348618,42 +375235,42 @@ #ifdef __cplusplus extern "C" #endif -char mxm_cleanup (); +char ucp_cleanup (); int main () { -return mxm_cleanup (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' mxm; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_mxm_cleanup=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_mxm_cleanup+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_mxm_cleanup+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_mxm_cleanup=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 -$as_echo "$ac_cv_search_mxm_cleanup" >&6; } -ac_res=$ac_cv_search_mxm_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -348662,22 +375279,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - unset ac_cv_search_mxm_cleanup + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi else # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_mxm_dir" + opal_check_package_libdir="" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 -$as_echo_n "checking for library containing mxm_cleanup... " >&6; } -if ${ac_cv_search_mxm_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -348690,42 +375307,42 @@ #ifdef __cplusplus extern "C" #endif -char mxm_cleanup (); +char ucp_cleanup (); int main () { -return mxm_cleanup (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' mxm; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_mxm_cleanup=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_mxm_cleanup+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_mxm_cleanup+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_mxm_cleanup=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 -$as_echo "$ac_cv_search_mxm_cleanup" >&6; } -ac_res=$ac_cv_search_mxm_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -348735,21 +375352,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - unset ac_cv_search_mxm_cleanup + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$opal_check_package_libdir/lib" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 -$as_echo_n "checking for library containing mxm_cleanup... " >&6; } -if ${ac_cv_search_mxm_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -348762,42 +375379,42 @@ #ifdef __cplusplus extern "C" #endif -char mxm_cleanup (); +char ucp_cleanup (); int main () { -return mxm_cleanup (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' mxm; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_mxm_cleanup=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_mxm_cleanup+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_mxm_cleanup+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_mxm_cleanup=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 -$as_echo "$ac_cv_search_mxm_cleanup" >&6; } -ac_res=$ac_cv_search_mxm_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -348807,22 +375424,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - unset ac_cv_search_mxm_cleanup + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - ompi_check_mxm_LDFLAGS="$ompi_check_mxm_LDFLAGS -L$opal_check_package_libdir/lib64" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mxm_cleanup" >&5 -$as_echo_n "checking for library containing mxm_cleanup... " >&6; } -if ${ac_cv_search_mxm_cleanup+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 +$as_echo_n "checking for library containing ucp_cleanup... " >&6; } +if ${ac_cv_search_ucp_cleanup+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -348835,42 +375452,42 @@ #ifdef __cplusplus extern "C" #endif -char mxm_cleanup (); +char ucp_cleanup (); int main () { -return mxm_cleanup (); +return ucp_cleanup (); ; return 0; } _ACEOF -for ac_lib in '' mxm; do +for ac_lib in '' ucp; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_mxm_cleanup=$ac_res + ac_cv_search_ucp_cleanup=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_mxm_cleanup+:} false; then : + if ${ac_cv_search_ucp_cleanup+:} false; then : break fi done -if ${ac_cv_search_mxm_cleanup+:} false; then : +if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_mxm_cleanup=no + ac_cv_search_ucp_cleanup=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mxm_cleanup" >&5 -$as_echo "$ac_cv_search_mxm_cleanup" >&6; } -ac_res=$ac_cv_search_mxm_cleanup +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 +$as_echo "$ac_cv_search_ucp_cleanup" >&6; } +ac_res=$ac_cv_search_ucp_cleanup if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -348880,9 +375497,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - unset ac_cv_search_mxm_cleanup + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + unset ac_cv_search_ucp_cleanup fi fi fi @@ -348979,12 +375596,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libmxm requires libnl v1 or v3" >&5 -$as_echo_n "checking if libmxm requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void mxm_cleanup (void); +extern void ucp_cleanup (void); int main(int argc, char *argv[]) { - mxm_cleanup (); + ucp_cleanup (); return 0; } EOF @@ -348996,14 +375613,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:348999: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS 1>&5 2>&1 +echo "configure:375616: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:349006: \$? = $opal_status" >&5 + echo "configure:375623: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -349023,8 +375640,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib mxm" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib mxm" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} fi @@ -349038,15 +375655,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libmxm links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libmxm links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 fi @@ -349055,19 +375672,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas mxm requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas mxm requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs mxm" + opal_libnlv1_libs="$opal_libnlv1_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -349146,19 +375763,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmxm requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libmxm requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libmxm (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libmxm (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libmxm." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libmxm." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs mxm" + opal_libnlv3_libs="$opal_libnlv3_libs ucp" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -349244,1188 +375861,158 @@ opal_libnl_sane=$libnl_sane - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - ;; - esac - - opal_check_package_libnl_check_ok=$opal_libnl_sane - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_mxm_cleanup" != "no" && - test "$ac_cv_search_mxm_cleanup" != "none required"; then : - ompi_check_mxm_LIBS="$ac_cv_search_mxm_cleanup " -else - ompi_check_mxm_LIBS="" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi - - -fi - unset opal_check_package_header_happy - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_mxm_happy="yes" -else - ompi_check_mxm_CPPFLAGS="$opal_check_package_ompi_check_mxm_orig_CPPFLAGS" - ompi_check_mxm_LDFLAGS="$opal_check_package_ompi_check_mxm_orig_LDFLAGS" - ompi_check_mxm_LIBS="$opal_check_package_ompi_check_mxm_orig_LIBS" - ompi_check_mxm_happy="no" -fi - - CPPFLAGS="$opal_check_package_ompi_check_mxm_save_CPPFLAGS" - LDFLAGS="$opal_check_package_ompi_check_mxm_save_LDFLAGS" - LIBS="$opal_check_package_ompi_check_mxm_save_LIBS" - -else - ompi_check_mxm_happy="no" -fi - - CPPFLAGS="$ompi_check_mxm_atomic_mxm_save_CPPFLAGS" - LDFLAGS="$ompi_check_mxm_atomic_mxm_save_LDFLAGS" - LIBS="$ompi_check_mxm_atomic_mxm_save_LIBS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MXM version compatibility" >&5 -$as_echo_n "checking for MXM version compatibility... " >&6; } - - old_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -I$ompi_check_mxm_dir/include" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - -#ifndef MXM_VERSION -#error "MXM Version is less than 2.1, please upgrade" -#endif -# -#if MXM_API < MXM_VERSION(2,1) -#error "MXM Version is less than 2.1, please upgrade" -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ompi_mxm_version_ok="yes" -else - ompi_mxm_version_ok="no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_mxm_version_ok" >&5 -$as_echo "$ompi_mxm_version_ok" >&6; } - CFLAGS=$old_CFLAGS - - if test "$ompi_mxm_version_ok" = "no"; then : - ompi_check_mxm_happy="no" -fi - - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Mellanox MXM: $ompi_check_mxm_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - - fi - - if test "$ompi_check_mxm_happy" = "yes"; then : - atomic_mxm_LDFLAGS="$atomic_mxm_LDFLAGS $ompi_check_mxm_LDFLAGS" - atomic_mxm_LIBS="$atomic_mxm_LIBS $ompi_check_mxm_LIBS" - atomic_mxm_CPPFLAGS="$atomic_mxm_CPPFLAGS $ompi_check_mxm_CPPFLAGS" - save_CPPFLAGS="$CPPFLAGS" - save_LDFLAGS="$LDFLAGS" - save_LIBS="$LIBS" - - CPPFLAGS="$CPPFLAGS -I$ompi_check_mxm_dir/include" - LDFLAGS="$LDFLAGS -L$ompi_check_mxm_dir/lib" - LIBS="$LIBS -lmxm" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - int main() { - if (mxm_get_version() < MXM_VERSION(1,5) ) - return 1; - - /* if compiler sees these constansts then mxm has atomic support*/ - int add_index = MXM_REQ_OP_ATOMIC_ADD; - int swap_index = MXM_REQ_OP_ATOMIC_SWAP; - return 0; - } -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -$as_echo "#define OSHMEM_HAS_ATOMIC_MXM 1" >>confdefs.h - atomic_mxm_happy="yes" -else - atomic_mxm_happy="no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CPPFLAGS=$save_CPPFLAGS - LDFLAGS=$save_LDFLAGS - LIBS=$save_LIBS - -else - if test ! -z "$with_mxm" && test "$with_mxm" != "no"; then : - as_fn_error $? "MXM support requested but not found. Aborting" "$LINENO" 5 -fi - atomic_mxm_happy="no" -fi - - - if test "$atomic_mxm_happy" = "yes"; then : - atomic_mxm_WRAPPER_EXTRA_LDFLAGS="$atomic_mxm_LDFLAGS" - atomic_mxm_WRAPPER_EXTRA_LIBS="$atomic_mxm_LIBS" - should_build=$should_build -else - should_build=0 -fi - - - # substitute in the things needed to build mxm - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if oshmem/atomic/mxm component can be compiled" >&5 -$as_echo_n "checking if oshmem/atomic/mxm component can be compiled... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $atomic_mxm_happy" >&5 -$as_echo "$atomic_mxm_happy" >&6; } - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/oshmem/mca/atomic/mxm/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components mxm" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components mxm" - else - if test "atomic" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/atomic/mxm/lib${OSHMEM_LIB_PREFIX}mca_atomic_mxm.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/atomic/mxm/libmca_atomic_mxm.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_atomic_mxm_component;" >> $outfile.extern - echo " &mca_atomic_mxm_component, " >> $outfile.struct - static_components="$static_components mxm" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component atomic:mxm can compile" >&5 -$as_echo_n "checking if MCA component atomic:mxm can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_atomic" = "mxm" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_oshmem_atomic_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** atomic component mxm was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_atomic" = "mxm" ; then -as_fn_error $? "*** atomic component mxm was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$atomic_mxm_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $atomic_mxm_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $atomic_mxm_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - if test "$atomic_mxm_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $atomic_mxm_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $atomic_mxm_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$atomic_mxm_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` - - - for arg in $atomic_mxm_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring atomic_mxm_WRAPPER_EXTRA_CPPFLAGS ($atomic_mxm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring atomic_mxm_WRAPPER_EXTRA_CPPFLAGS ($atomic_mxm_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component atomic:mxm can compile" >&5 -$as_echo_n "checking if MCA component atomic:mxm can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_atomic" = "mxm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"mxm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"mxm\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_atomic" ; then - if test "$DIRECT_atomic" = "mxm" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"mxm\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"mxm\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components mxm" -fi - - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_oshmem_atomic_mxm_DSO=1 -else - BUILD_oshmem_atomic_mxm_DSO=0 -fi - if test "$BUILD_oshmem_atomic_mxm_DSO" = "1"; then - MCA_BUILD_oshmem_atomic_mxm_DSO_TRUE= - MCA_BUILD_oshmem_atomic_mxm_DSO_FALSE='#' -else - MCA_BUILD_oshmem_atomic_mxm_DSO_TRUE='#' - MCA_BUILD_oshmem_atomic_mxm_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - - unset compile_mode - - - - - - opal_show_subsubsubtitle "MCA component atomic:ucx (m4 configuration macro)" - - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/oshmem/mca/atomic/ucx" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_atomic" ; then - if test "$DIRECT_atomic" = "ucx" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_atomic" = "1"; then : - want_component=0 -fi - if test "$DISABLE_atomic_ucx" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_atomic" - SHARED_COMPONENT="$DSO_atomic_ucx" - - STATIC_FRAMEWORK="$STATIC_atomic" - STATIC_COMPONENT="$STATIC_atomic_ucx" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component atomic:ucx compile mode" >&5 -$as_echo_n "checking for MCA component atomic:ucx compile mode... " >&6; } - if test "$DIRECT_atomic" = "ucx" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files oshmem/mca/atomic/ucx/Makefile" - + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + ;; + esac - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_check_ucx_dir; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_check_package_libnl_check_ok=$opal_libnl_sane - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_check_ucx_dir\"" + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - if test -z "$ompi_check_ucx_happy"; then : -# Check whether --with-ucx was given. -if test "${with_ucx+set}" = set; then : - withval=$with_ucx; + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no fi +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx value" >&5 -$as_echo_n "checking --with-ucx value... " >&6; } - if test "$with_ucx" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx)" >&5 -$as_echo "simple no (specified --without-ucx)" >&6; } -else - if test "$with_ucx" = "yes" || test "x$with_ucx" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_ucx"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_ucx not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ucp_cleanup" != "no" && + test "$ac_cv_search_ucp_cleanup" != "none required"; then : + ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" else - if test "x`ls $with_ucx/include/ucp/api/ucp.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_ucx/include/ucp/api/ucp.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + ompi_check_ucx_LIBS="-luct -lucm -lucs" +fi + opal_check_package_happy="yes" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx)" >&5 -$as_echo "sanity check ok ($with_ucx)" >&6; } - + opal_check_package_happy="no" fi fi + unset opal_check_package_header_happy -fi - + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# Check whether --with-ucx-libdir was given. -if test "${with_ucx_libdir+set}" = set; then : - withval=$with_ucx_libdir; -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ucx-libdir value" >&5 -$as_echo_n "checking --with-ucx-libdir value... " >&6; } - if test "$with_ucx_libdir" = "no" ; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple no (specified --without-ucx-libdir)" >&5 -$as_echo "simple no (specified --without-ucx-libdir)" >&6; } -else - if test "$with_ucx_libdir" = "yes" || test "x$with_ucx_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified value)" >&5 -$as_echo "simple ok (unspecified value)" >&6; } -else - if test ! -d "$with_ucx_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_ucx_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_ucx_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_ucx_libdir/libucp.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_ucx_libdir/libucp.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_ucx_happy="yes" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_ucx_libdir)" >&5 -$as_echo "sanity check ok ($with_ucx_libdir)" >&6; } - + ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" + ompi_check_ucx_happy="no" fi + CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" -fi + if test "$ompi_check_ucx_happy" = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 +$as_echo_n "checking for UCX version compatibility... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ompi_check_ucx_happy="yes" +else + ompi_check_ucx_happy="no" fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 +$as_echo "$ompi_check_ucx_happy" >&6; } fi - - - if test "$with_ucx" != "no"; then : - if test -n "$with_ucx" && test "$with_ucx" != "yes"; then : - ompi_check_ucx_dir="$with_ucx" -else - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ucx" >&5 -$as_echo_n "checking for ucx... " >&6; } - -if test -n "$ucx_CFLAGS"; then - pkg_cv_ucx_CFLAGS="$ucx_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ucx_CFLAGS=`$PKG_CONFIG --cflags "ucx" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes + if test "$ompi_check_ucx_happy" = "no"; then : + ompi_check_ucx_dir=/opt/ucx fi - else - pkg_failed=untried fi -if test -n "$ucx_LIBS"; then - pkg_cv_ucx_LIBS="$ucx_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ucx_LIBS=`$PKG_CONFIG --libs "ucx" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + if test "$ompi_check_ucx_happy" != yes; then : + if test -n "$with_ucx_libdir"; then : + ompi_check_ucx_libdir="$with_ucx_libdir" else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$ucx_STATIC_LIBS"; then - pkg_cv_ucx_STATIC_LIBS="$ucx_STATIC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ucx\""; } >&5 - ($PKG_CONFIG --exists --print-errors "ucx") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ucx_STATIC_LIBS=`$PKG_CONFIG --libs --static "ucx" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes + files=`ls $ompi_check_ucx_dir/lib64/libucp.* 2> /dev/null | wc -l` + if test "$files" -gt 0; then : + ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib64 else - pkg_failed=yes + ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib fi - else - pkg_failed=untried fi + ompi_check_ucx_atomic_ucx_save_CPPFLAGS="$CPPFLAGS" + ompi_check_ucx_atomic_ucx_save_LDFLAGS="$LDFLAGS" + ompi_check_ucx_atomic_ucx_save_LIBS="$LIBS" -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - ucx_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ucx" 2>&1` - else - ucx_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ucx" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$ucx_PKG_ERRORS" >&5 - - true -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - true -else - ucx_CFLAGS=$pkg_cv_ucx_CFLAGS - ucx_LIBS=$pkg_cv_ucx_LIBS - ucx_STATIC_LIBS=$pkg_cv_ucx_STATIC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ompi_check_ucx_dir=`$PKG_CONFIG --variable=prefix ucx` - if test "$ompi_check_ucx_dir" = "/usr"; then : - ompi_check_ucx_dir= -fi -fi -fi - ompi_check_ucx_happy="no" - if test -z "$ompi_check_ucx_dir"; then : - opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" @@ -350483,7 +376070,7 @@ unset ac_cv_header_ucp_api_ucp_h # get rid of the trailing slash(es) - dir_prefix=$(echo | sed -e 'sX/*$XXg') + dir_prefix=$(echo $ompi_check_ucx_dir | sed -e 'sX/*$XXg') opal_check_package_header_happy="no" if test "$dir_prefix" = "/usr" || \ test "$dir_prefix" = "/usr/local"; then : @@ -350535,10 +376122,10 @@ # see comment above unset ac_cv_search_ucp_cleanup opal_check_package_lib_happy="no" - if test "" != ""; then : + if test "$ompi_check_ucx_libdir" != ""; then : # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 $as_echo_n "checking for library containing ucp_cleanup... " >&6; } if ${ac_cv_search_ucp_cleanup+:} false; then : @@ -350604,7 +376191,7 @@ fi else # libdir was not specified - go through search path - opal_check_package_libdir="" + opal_check_package_libdir="$ompi_check_ucx_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : @@ -350932,14 +376519,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:350935: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +echo "configure:376522: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:350942: \$? = $opal_status" >&5 + echo "configure:376529: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -351260,10 +376847,10 @@ # see comment above unset ac_cv_search_ucp_cleanup opal_check_package_lib_happy="no" - if test "" != ""; then : + if test "$ompi_check_ucx_libdir" != ""; then : # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L" - LDFLAGS="$LDFLAGS -L" + ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" + LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 $as_echo_n "checking for library containing ucp_cleanup... " >&6; } if ${ac_cv_search_ucp_cleanup+:} false; then : @@ -351329,7 +376916,7 @@ fi else # libdir was not specified - go through search path - opal_check_package_libdir="" + opal_check_package_libdir="$ompi_check_ucx_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : @@ -351657,14 +377244,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:351660: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +echo "configure:377247: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:351667: \$? = $opal_status" >&5 + echo "configure:377254: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -351966,14 +377553,787 @@ else ompi_check_ucx_LIBS="-luct -lucm -lucs" fi - opal_check_package_happy="yes" + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi + + +fi + unset opal_check_package_header_happy + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_ucx_happy="yes" +else + ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" + ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" + ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" + ompi_check_ucx_happy="no" +fi + + CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" + LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" + LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" + + + CPPFLAGS="$ompi_check_ucx_atomic_ucx_save_CPPFLAGS" + LDFLAGS="$ompi_check_ucx_atomic_ucx_save_LDFLAGS" + LIBS="$ompi_check_ucx_atomic_ucx_save_LIBS" + + if test "$ompi_check_ucx_happy" = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 +$as_echo_n "checking for UCX version compatibility... " >&6; } + + old_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ompi_check_ucx_happy="yes" +else + ompi_check_ucx_happy="no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 +$as_echo "$ompi_check_ucx_happy" >&6; } + CPPFLAGS=$old_CPPFLAGS +fi +fi + + old_CPPFLAGS="$CPPFLAGS" + if test -n "$ompi_check_ucx_dir"; then : + CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" +fi + # Turn off UCX version v1.8 due to issue #8321 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking UCX version" >&5 +$as_echo_n "checking UCX version... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #if (UCP_API_MAJOR == 1) && (UCP_API_MINOR == 8) + #error "Invalid version" + #endif +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok (not 1.8.x)" >&5 +$as_echo "ok (not 1.8.x)" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: bad (1.8.x)" >&5 +$as_echo "bad (1.8.x)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: UCX support skipped because version 1.8.x was found, which has a known catastrophic issue." >&5 +$as_echo "$as_me: WARNING: UCX support skipped because version 1.8.x was found, which has a known catastrophic issue." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Please upgrade to UCX version 1.9 or higher." >&5 +$as_echo "$as_me: WARNING: Please upgrade to UCX version 1.9 or higher." >&2;} + ompi_check_ucx_happy=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test "$ompi_check_ucx_happy" = yes; then : + + ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbr" "ac_cv_have_decl_ucp_tag_send_nbr" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_nbr" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_SEND_NBR $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + +$as_echo "#define HAVE_UCP_TAG_SEND_NBR 1" >>confdefs.h + +fi + + ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nb" "ac_cv_have_decl_ucp_ep_flush_nb" "#include +" +if test "x$ac_cv_have_decl_ucp_ep_flush_nb" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_EP_FLUSH_NB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_worker_flush_nb" "ac_cv_have_decl_ucp_worker_flush_nb" "#include +" +if test "x$ac_cv_have_decl_ucp_worker_flush_nb" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_WORKER_FLUSH_NB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_request_check_status" "ac_cv_have_decl_ucp_request_check_status" "#include +" +if test "x$ac_cv_have_decl_ucp_request_check_status" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_REQUEST_CHECK_STATUS $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_put_nb" "ac_cv_have_decl_ucp_put_nb" "#include +" +if test "x$ac_cv_have_decl_ucp_put_nb" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_PUT_NB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_get_nb" "ac_cv_have_decl_ucp_get_nb" "#include +" +if test "x$ac_cv_have_decl_ucp_get_nb" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_GET_NB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_put_nbx" "ac_cv_have_decl_ucp_put_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_put_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_PUT_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_get_nbx" "ac_cv_have_decl_ucp_get_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_get_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_GET_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_atomic_op_nbx" "ac_cv_have_decl_ucp_atomic_op_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_atomic_op_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_OP_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nbx" "ac_cv_have_decl_ucp_ep_flush_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_ep_flush_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_EP_FLUSH_NBX $ac_have_decl +_ACEOF + + ac_fn_c_check_decl "$LINENO" "ucm_test_events" "ac_cv_have_decl_ucm_test_events" "#include +" +if test "x$ac_cv_have_decl_ucm_test_events" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCM_TEST_EVENTS $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucm_test_external_events" "ac_cv_have_decl_ucm_test_external_events" "#include +" +if test "x$ac_cv_have_decl_ucm_test_external_events" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCM_TEST_EXTERNAL_EVENTS $ac_have_decl +_ACEOF + + ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_AND" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_POST_OP_AND $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_OR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_POST_OP_OR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_XOR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_POST_OP_XOR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FAND" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FAND $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FOR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FXOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" "#include +" +if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FXOR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "#include +" +if test "x$ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" "ac_cv_have_decl_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" "#include +" +if test "x$ac_cv_have_decl_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_OP_ATTR_FLAG_MULTI_SEND" "ac_cv_have_decl_UCP_OP_ATTR_FLAG_MULTI_SEND" "#include +" +if test "x$ac_cv_have_decl_UCP_OP_ATTR_FLAG_MULTI_SEND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_OP_ATTR_FLAG_MULTI_SEND $ac_have_decl +_ACEOF + + ac_fn_c_check_decl "$LINENO" "UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "#include +" +if test "x$ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + +$as_echo "#define HAVE_UCP_WORKER_ADDRESS_FLAGS 1" >>confdefs.h + +fi + + ac_fn_c_check_decl "$LINENO" "UCP_ATTR_FIELD_MEMORY_TYPES" "ac_cv_have_decl_UCP_ATTR_FIELD_MEMORY_TYPES" "#include +" +if test "x$ac_cv_have_decl_UCP_ATTR_FIELD_MEMORY_TYPES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATTR_FIELD_MEMORY_TYPES $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + +$as_echo "#define HAVE_UCP_ATTR_MEMORY_TYPES 1" >>confdefs.h + +fi + + ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbx" "ac_cv_have_decl_ucp_tag_send_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_SEND_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_tag_send_sync_nbx" "ac_cv_have_decl_ucp_tag_send_sync_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_sync_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_SEND_SYNC_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_tag_recv_nbx" "ac_cv_have_decl_ucp_tag_recv_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_recv_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_RECV_NBX $ac_have_decl +_ACEOF + + ac_fn_c_check_type "$LINENO" "ucp_request_param_t" "ac_cv_type_ucp_request_param_t" "#include +" +if test "x$ac_cv_type_ucp_request_param_t" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UCP_REQUEST_PARAM_T 1 +_ACEOF + + +fi + + +fi + CPPFLAGS=$old_CPPFLAGS + + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + ompi_summary_section=$(echo Transports | tr ' ' '_') + ompi_summary_line="Open UCX: $ompi_check_ucx_happy" + ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) + + if test -z "$ompi_summary_section_current" ; then + if test -z "$ompi_summary_sections" ; then + ompi_summary_sections=$ompi_summary_section + else + ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" + fi + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" + else + eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" + fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi +fi + + if test "$ompi_check_ucx_happy" = "yes"; then : + atomic_ucx_CPPFLAGS="$atomic_ucx_CPPFLAGS $ompi_check_ucx_CPPFLAGS" + atomic_ucx_LDFLAGS="$atomic_ucx_LDFLAGS $ompi_check_ucx_LDFLAGS" + atomic_ucx_LIBS="$atomic_ucx_LIBS $ompi_check_ucx_LIBS" + +$as_echo "#define HAVE_UCX 1" >>confdefs.h + + atomic_ucx_happy="yes" +else + if test ! -z "$with_ucx" && test "$with_ucx" != "no"; then : + as_fn_error $? "UCX support requested but not found. Aborting" "$LINENO" 5 +fi + +$as_echo "#define HAVE_UCX 0" >>confdefs.h + + atomic_ucx_happy="no" +fi + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + + + if test "$atomic_ucx_happy" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + + + # substitute in the things needed to build ucx + + + + + + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/oshmem/mca/atomic/ucx/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components ucx" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components ucx" + else + if test "atomic" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/atomic/ucx/lib${OSHMEM_LIB_PREFIX}mca_atomic_ucx.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/atomic/ucx/libmca_atomic_ucx.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_atomic_ucx_component;" >> $outfile.extern + echo " &mca_atomic_ucx_component, " >> $outfile.struct + static_components="$static_components ucx" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component atomic:ucx can compile" >&5 +$as_echo_n "checking if MCA component atomic:ucx can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_atomic" = "ucx" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_oshmem_atomic_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** atomic component ucx was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_atomic" = "ucx" ; then +as_fn_error $? "*** atomic component ucx was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$atomic_ucx_WRAPPER_EXTRA_LDFLAGS" = ""; then : + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $atomic_ucx_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +else + + + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $atomic_ucx_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -351997,78 +378357,8 @@ done - - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_ucx_happy="yes" -else - ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" - ompi_check_ucx_happy="no" -fi - - CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" - - if test "$ompi_check_ucx_happy" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 -$as_echo_n "checking for UCX version compatibility... " >&6; } - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ompi_check_ucx_happy="yes" -else - ompi_check_ucx_happy="no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 -$as_echo "$ompi_check_ucx_happy" >&6; } -fi - if test "$ompi_check_ucx_happy" = "no"; then : - ompi_check_ucx_dir=/opt/ucx -fi -fi - if test "$ompi_check_ucx_happy" != yes; then : - if test -n "$with_ucx_libdir"; then : - ompi_check_ucx_libdir="$with_ucx_libdir" -else - files=`ls $ompi_check_ucx_dir/lib64/libucp.* 2> /dev/null | wc -l` - if test "$files" -gt 0; then : - ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib64 -else - ompi_check_ucx_libdir=$ompi_check_ucx_dir/lib -fi fi - - ompi_check_ucx_atomic_ucx_save_CPPFLAGS="$CPPFLAGS" - ompi_check_ucx_atomic_ucx_save_LDFLAGS="$LDFLAGS" - ompi_check_ucx_atomic_ucx_save_LIBS="$LIBS" - - - opal_check_package_ompi_check_ucx_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_ompi_check_ucx_save_LDFLAGS="$LDFLAGS" - opal_check_package_ompi_check_ucx_save_LIBS="$LIBS" - - opal_check_package_ompi_check_ucx_orig_CPPFLAGS="$ompi_check_ucx_CPPFLAGS" - opal_check_package_ompi_check_ucx_orig_LDFLAGS="$ompi_check_ucx_LDFLAGS" - opal_check_package_ompi_check_ucx_orig_LIBS="$ompi_check_ucx_LIBS" - - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + if test "$atomic_ucx_WRAPPER_EXTRA_LIBS" = ""; then : @@ -352081,7 +378371,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in dir_prefix; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -352100,7 +378390,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -352108,357 +378398,48 @@ opal_scope_index=`expr $opal_scope_index + 1` - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_ucp_api_ucp_h - - # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_ucx_dir | sed -e 'sX/*$XXg') - opal_check_package_header_happy="no" - if test "$dir_prefix" = "/usr" || \ - test "$dir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in ucp/api/ucp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_ucp_api_ucp_h -fi -fi - - if test "$opal_check_package_header_happy" = "no"; then : - if test "$dir_prefix" != ""; then : - ompi_check_ucx_CPPFLAGS="$ompi_check_ucx_CPPFLAGS -I$dir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" -fi - for ac_header in ucp/api/ucp.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ucp/api/ucp.h" "ac_cv_header_ucp_api_ucp_h" "$ac_includes_default" -if test "x$ac_cv_header_ucp_api_ucp_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UCP_API_UCP_H 1 -_ACEOF - opal_check_package_header_happy="yes" -fi - -done - - if test "$opal_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_ucp_cleanup - opal_check_package_lib_happy="no" - if test "$ompi_check_ucx_libdir" != ""; then : - # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_ucx_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - -else - ac_cv_search_ucp_cleanup=no + for arg in $atomic_ucx_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi fi + done - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. @@ -352471,7 +378452,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -352490,16 +378471,66 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $atomic_ucx_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + + +fi + + fi + + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$atomic_ucx_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -352512,7 +378543,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -352531,7 +378562,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -352539,303 +378570,389 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $atomic_ucx_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 -$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ucp_cleanup (void); -int main(int argc, char *argv[]) { - ucp_cleanup (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:352566: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 -opal_status=$? -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:352573: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring atomic_ucx_WRAPPER_EXTRA_CPPFLAGS ($atomic_ucx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring atomic_ucx_WRAPPER_EXTRA_CPPFLAGS ($atomic_ucx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} -fi - - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component atomic:ucx can compile" >&5 +$as_echo_n "checking if MCA component atomic:ucx can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_atomic" = "ucx" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucx\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ucx\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + if test ! -z "$DIRECT_atomic" ; then + if test "$DIRECT_atomic" = "ucx" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucx\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ucx\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - libnl_sane=0 + # add component to all component list + all_components="$all_components ucx" fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - libnl_sane=0 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_oshmem_atomic_ucx_DSO=1 else - opal_libnlv1_libs="$opal_libnlv1_libs ucp" - -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs - -# Go through each item in the variable and only keep the unique ones - -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + BUILD_oshmem_atomic_ucx_DSO=0 +fi + if test "$BUILD_oshmem_atomic_ucx_DSO" = "1"; then + MCA_BUILD_oshmem_atomic_ucx_DSO_TRUE= + MCA_BUILD_oshmem_atomic_ucx_DSO_FALSE='#' +else + MCA_BUILD_oshmem_atomic_ucx_DSO_TRUE='#' + MCA_BUILD_oshmem_atomic_ucx_DSO_FALSE= +fi - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + unset compile_mode - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + if test "1" != "0"; then : -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + for component_path in $srcdir/oshmem/mca/atomic/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + opal_show_subsubsubtitle "MCA component atomic:$component (need to configure)" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + component_path="$srcdir/oshmem/mca/atomic/$component" + want_component=0 -# Clean up + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_atomic" ; then + if test "$DIRECT_atomic" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_atomic" = "1"; then : + want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_atomic_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 fi - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} - - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - libnl_sane=0 -else - opal_libnlv3_libs="$opal_libnlv3_libs ucp" + SHARED_FRAMEWORK="$DSO_atomic" + str="SHARED_COMPONENT=\$DSO_atomic_$component" + eval $str -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs + STATIC_FRAMEWORK="$STATIC_atomic" + str="STATIC_COMPONENT=\$STATIC_atomic_$component" + eval $str -# Go through each item in the variable and only keep the unique ones + shared_mode_override=static -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Loop over every token we've seen so far + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component atomic:$component compile mode" >&5 +$as_echo_n "checking for MCA component atomic:$component compile mode... " >&6; } + if test "$DIRECT_atomic" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + if test "$should_build" = "1" ; then - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition - opal_done="`expr $opal_i \>= $opal_count`" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - # Increment the counter + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - opal_i="`expr $opal_i + 1`" + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done - # If we didn't find the token, add it to the "array" + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $opal_str + unset opal_str - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" - fi -done + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -# Take all the items in the "array" and assemble them back into a -# single variable -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval +# +# Invoke configure in a specific subdirectory. +# +# oshmem/mca/atomic/$component is the directory to invoke in +# $opal_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="oshmem/mca/atomic/$component" +subdir_args="$opal_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval +# +# Sanity checks +# - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 +$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} -# Done; do the assignment + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } -# Clean up + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 -fi + # + # Move into the target directory + # -fi + subdir_parent=`pwd` + cd $subdir_dir - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + # + # Make a "../" for each directory in $subdir_dir. + # - rm -f conftest conftest_c.$ac_ext + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - opal_libnl_sane=$libnl_sane + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + # + # Construct the --cache-file argument + # - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + # + # Go back to the topdir + # + cd $subdir_parent +fi - ;; - esac +# +# Clean up +# - opal_check_package_libnl_check_ok=$opal_libnl_sane # Unwind the index opal_scope_index=`expr $opal_scope_index - 1` @@ -352857,333 +378974,105 @@ unset $opal_var done + opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi - -fi - - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ucp_cleanup" != "no" && - test "$ac_cv_search_ucp_cleanup" != "none required"; then : - ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" -else - ompi_check_ucx_LIBS="-luct -lucm -lucs" -fi - opal_check_package_happy="yes" -else - opal_check_package_happy="no" -fi - - -else - opal_check_package_happy="no" -fi -else - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # see comment above - unset ac_cv_search_ucp_cleanup - opal_check_package_lib_happy="no" - if test "$ompi_check_ucx_libdir" != ""; then : - # libdir was specified - search only there - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$ompi_check_ucx_libdir" - LDFLAGS="$LDFLAGS -L$ompi_check_ucx_libdir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : - -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - - if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -else - # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_ucx_dir" - if test "$opal_check_package_libdir" = "" || \ - test "$opal_check_package_libdir" = "/usr" || \ - test "$opal_check_package_libdir" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/oshmem/mca/atomic/all_components/post_configure.sh" + if test -f $infile; then -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi + line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + atomic_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + fi + line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" + eval "line=$line" + if test -n "$line"; then + atomic_all_components_WRAPPER_EXTRA_LIBS="$line" + fi + fi - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 -$as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/oshmem/mca/atomic/$component/post_configure.sh" - if test "$opal_check_package_lib_happy" = "no"; then : - if test "$opal_check_package_libdir" != ""; then : - ompi_check_ucx_LDFLAGS="$ompi_check_ucx_LDFLAGS -L$opal_check_package_libdir/lib64" - LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 -$as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucp_cleanup" >&5 -$as_echo_n "checking for library containing ucp_cleanup... " >&6; } -if ${ac_cv_search_ucp_cleanup+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char ucp_cleanup (); -int -main () -{ -return ucp_cleanup (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ucp; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -luct -lucm -lucs $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ucp_cleanup=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_ucp_cleanup+:} false; then : - break -fi -done -if ${ac_cv_search_ucp_cleanup+:} false; then : + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "atomic" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/atomic/$component/lib${OSHMEM_LIB_PREFIX}mca_atomic_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/atomic/$component/libmca_atomic_$component.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_atomic_$component_component;" >> $outfile.extern + echo " &mca_atomic_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi -else - ac_cv_search_ucp_cleanup=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucp_cleanup" >&5 -$as_echo "$ac_cv_search_ucp_cleanup" >&6; } -ac_res=$ac_cv_search_ucp_cleanup -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - opal_check_package_lib_happy="yes" -else - opal_check_package_lib_happy="no" -fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component atomic:$component can compile" >&5 +$as_echo_n "checking if MCA component atomic:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - if test "$opal_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - unset ac_cv_search_ucp_cleanup -fi -fi -fi -fi + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_atomic" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_oshmem_atomic_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** atomic component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_atomic" = "$component" ; then +as_fn_error $? "*** atomic component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # libnl v1 and libnl3 are known to *not* coexist - # harmoniously in the same process. Check to see if this - # new package will introduce such a conflict. + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + str="line=\$atomic_$component_WRAPPER_EXTRA_LDFLAGS" + eval "$str" @@ -353196,7 +379085,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_libnl_sane; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -353215,16 +379104,56 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - opal_libnl_sane=1 - case $host in - *linux*) + + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" +fi +fi + done + + + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done + +str="line=\$atomic_$component_WRAPPER_EXTRA_LIBS" + eval "$str" @@ -353237,7 +379166,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -353256,7 +379185,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -353264,276 +379193,437 @@ opal_scope_index=`expr $opal_scope_index + 1` - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + for arg in $line; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg +else + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucp requires libnl v1 or v3" >&5 -$as_echo_n "checking if libucp requires libnl v1 or v3... " >&6; } - cat > conftest_c.$ac_ext << EOF -extern void ucp_cleanup (void); -int main(int argc, char *argv[]) { - ucp_cleanup (); - return 0; -} -EOF + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - this_requires_v1=0 - this_requires_v3=0 - result_msg= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str -# 1 is the command -# 2 is actions to do if success -# 3 is actions to do if fail -echo "configure:353291: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 -opal_status=$? + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:353298: \$? = $opal_status" >&5 -else - echo \$? = $opal_status >&5 -fi -if test "$opal_status" = "0"; then - unset opal_status - ldd_output=`ldd conftest` - if echo $ldd_output | grep -q libnl-3.so; then : - this_requires_v3=1 - result_msg="v3" -fi - if echo $ldd_output | grep -q libnl.so; then : - this_requires_v1=1 - result_msg="v1 $result_msg" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 -$as_echo "$result_msg" >&6; } -else - unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucp" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib ucp" >&2;} + fi -fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... - # Assume that our configuration is sane; this may get reset below - libnl_sane=1 - # Note: in all the checks below, only add this library to the list - # of libraries (for v1 or v3 as relevant) if we do not fail. - # I.e., assume that a higher level will refuse to use this library - # if we return failure. + else - # Does this library require both v1 and v3? If so, fail. - if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, libucp links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component atomic:$component can compile" >&5 +$as_echo_n "checking if MCA component atomic:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_atomic" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_atomic" ; then + if test "$DIRECT_atomic" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + fi + fi + done - libnl_sane=0 fi - # Does this library require v1, but some prior library required - # v3? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : - if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucp requires libnl" >&2;} + MCA_oshmem_atomic_ALL_COMPONENTS="$all_components" + MCA_oshmem_atomic_STATIC_COMPONENTS="$static_components" + MCA_oshmem_atomic_DSO_COMPONENTS="$dso_components" + MCA_oshmem_atomic_STATIC_LTLIBS="$static_ltlibs" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - libnl_sane=0 -else - opal_libnlv1_libs="$opal_libnlv1_libs ucp" -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv1_libs -# Go through each item in the variable and only keep the unique ones -opal_count=0 -for val in ${opal_libnlv1_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 - # Loop over every token we've seen so far - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + MCA_oshmem_atomic_ALL_SUBDIRS= + for item in $all_components ; do + MCA_oshmem_atomic_ALL_SUBDIRS="$MCA_oshmem_atomic_ALL_SUBDIRS mca/atomic/$item" + done - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` - # Check the ending condition + MCA_oshmem_atomic_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_oshmem_atomic_STATIC_SUBDIRS="$MCA_oshmem_atomic_STATIC_SUBDIRS mca/atomic/$item" + done - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" + MCA_oshmem_atomic_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_oshmem_atomic_DSO_SUBDIRS="$MCA_oshmem_atomic_DSO_SUBDIRS mca/atomic/$item" done - # If we didn't find the token, add it to the "array" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" - else - opal_i="`expr $opal_i - 1`" + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "atomic" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi fi -done + rm -f $outfile.struct $outfile.extern -# Take all the items in the "array" and assemble them back into a -# single variable + unset all_components static_components dso_components outfile outfile_real -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + MCA_oshmem_FRAMEWORKS="$MCA_oshmem_FRAMEWORKS memheap" + MCA_oshmem_FRAMEWORKS_SUBDIRS="$MCA_oshmem_FRAMEWORKS_SUBDIRS mca/memheap" + MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_oshmem_memheap_ALL_SUBDIRS)" + MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_oshmem_memheap_DSO_SUBDIRS)" + MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_oshmem_memheap_STATIC_SUBDIRS)" + MCA_oshmem_FRAMEWORK_LIBS="$MCA_oshmem_FRAMEWORK_LIBS mca/memheap/libmca_memheap.la" + MCA_oshmem_FRAMEWORK_LIBS="$MCA_oshmem_FRAMEWORK_LIBS \$(MCA_oshmem_memheap_STATIC_LTLIBS)" - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # configure all the components - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done + opal_show_subsubtitle "Configuring MCA framework memheap" -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval -# Clean up -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=1 -fi + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= -fi + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=oshmem/mca/memheap/base + as_dir=$outdir; as_fn_mkdir_p - # Does this library require v3, but some prior library required - # v1? If so, fail. - if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : - if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucp requires libnl-3" >&2;} + # emit Makefile rule + ac_config_files="$ac_config_files oshmem/mca/memheap/Makefile" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 -$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucp (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in libucp (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucp." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucp." >&2;} - libnl_sane=0 + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework memheap" >&5 +$as_echo_n "checking for no configure components in framework memheap... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: buddy, ptmalloc" >&5 +$as_echo "buddy, ptmalloc" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework memheap" >&5 +$as_echo_n "checking for m4 configure components in framework memheap... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + opal_show_subsubsubtitle "MCA component memheap:buddy (no configuration)" + + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/oshmem/mca/memheap/buddy" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_memheap" ; then + if test "$DIRECT_memheap" = "buddy" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_memheap" = "1"; then : + want_component=0 +fi + if test "$DISABLE_memheap_buddy" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 else - opal_libnlv3_libs="$opal_libnlv3_libs ucp" + should_build=0 +fi -# 1 is the variable name to be uniq-ized -opal_name=opal_libnlv3_libs -# Go through each item in the variable and only keep the unique ones + SHARED_FRAMEWORK="$DSO_memheap" + SHARED_COMPONENT="$DSO_memheap_buddy" -opal_count=0 -for val in ${opal_libnlv3_libs}; do - opal_done=0 - opal_i=1 - opal_found=0 + STATIC_FRAMEWORK="$STATIC_memheap" + STATIC_COMPONENT="$STATIC_memheap_buddy" - # Loop over every token we've seen so far + shared_mode_override=static - opal_done="`expr $opal_i \> $opal_count`" - while test "$opal_found" = "0" && test "$opal_done" = "0"; do + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # Have we seen this token already? Prefix the comparison with - # "x" so that "-Lfoo" values won't be cause an error. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component memheap:buddy compile mode" >&5 +$as_echo_n "checking for MCA component memheap:buddy compile mode... " >&6; } + if test "$DIRECT_memheap" = "buddy" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_eval="expr x$val = x\$opal_array_$opal_i" - opal_found=`eval $opal_eval` + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # Check the ending condition + if test "$should_build" = "1" ; then - opal_done="`expr $opal_i \>= $opal_count`" - # Increment the counter - opal_i="`expr $opal_i + 1`" - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/oshmem/mca/memheap/buddy/post_configure.sh" - # If we didn't find the token, add it to the "array" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components buddy" - if test "$opal_found" = "0"; then - opal_eval="opal_array_$opal_i=$val" - eval $opal_eval - opal_count="`expr $opal_count + 1`" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components buddy" else - opal_i="`expr $opal_i - 1`" + if test "memheap" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/memheap/buddy/lib${OSHMEM_LIB_PREFIX}mca_memheap_buddy.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/memheap/buddy/libmca_memheap_buddy.la $static_ltlibs" + fi + echo "extern const mca_base_component_t mca_memheap_buddy_component;" >> $outfile.extern + echo " &mca_memheap_buddy_component, " >> $outfile.struct + static_components="$static_components buddy" fi -done -# Take all the items in the "array" and assemble them back into a -# single variable + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memheap:buddy can compile" >&5 +$as_echo_n "checking if MCA component memheap:buddy can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -opal_i=1 -opal_done="`expr $opal_i \> $opal_count`" -opal_newval= -while test "$opal_done" = "0"; do - opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" - eval $opal_eval + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_memheap" = "buddy" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_oshmem_memheap_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** memheap component buddy was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_memheap" = "buddy" ; then +as_fn_error $? "*** memheap component buddy was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - opal_eval="unset opal_array_$opal_i" - eval $opal_eval + # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and + # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's + # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if + # component didn't have it's own configure script (in which case, + # we know it didn't set LDFLAGS and LIBS because it can't) Don't + # have to do this if the component is building dynamically, + # because it will link against these (without a dependency from + # libmpi.so to these flags) + if test "$compile_mode" = "static"; then + if test "$memheap_buddy_WRAPPER_EXTRA_LDFLAGS" = ""; then : - opal_done="`expr $opal_i \>= $opal_count`" - opal_i="`expr $opal_i + 1`" -done -# Done; do the assignment -opal_newval="`echo $opal_newval`" -opal_eval="$opal_name=\"$opal_newval\"" -eval $opal_eval + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi -# Clean up + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -unset opal_name opal_i opal_done opal_newval opal_eval opal_count - opal_libnl_version=3 + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` + + + for arg in $memheap_buddy_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg +else + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - fi - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - rm -f conftest conftest_c.$ac_ext - - opal_libnl_sane=$libnl_sane + done # Unwind the index @@ -353557,54 +379647,64 @@ done - ;; - esac +else - opal_check_package_libnl_check_ok=$opal_libnl_sane - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - if test $opal_check_package_libnl_check_ok -eq 0; then : - opal_check_package_lib_happy=no -fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -fi - if test "$opal_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_ucp_cleanup" != "no" && - test "$ac_cv_search_ucp_cleanup" != "none required"; then : - ompi_check_ucx_LIBS="$ac_cv_search_ucp_cleanup -luct -lucm -lucs" -else - ompi_check_ucx_LIBS="-luct -lucm -lucs" + for arg in $memheap_buddy_WRAPPER_EXTRA_LDFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_ldflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - opal_check_package_happy="yes" + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_ldflags"; then : + mca_wrapper_extra_ldflags=$arg else - opal_check_package_happy="no" + mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi - - fi - unset opal_check_package_header_happy + done # Unwind the index @@ -353628,241 +379728,180 @@ done - - if test "$opal_check_package_happy" = "yes"; then : - ompi_check_ucx_happy="yes" -else - ompi_check_ucx_CPPFLAGS="$opal_check_package_ompi_check_ucx_orig_CPPFLAGS" - ompi_check_ucx_LDFLAGS="$opal_check_package_ompi_check_ucx_orig_LDFLAGS" - ompi_check_ucx_LIBS="$opal_check_package_ompi_check_ucx_orig_LIBS" - ompi_check_ucx_happy="no" fi + if test "$memheap_buddy_WRAPPER_EXTRA_LIBS" = ""; then : - CPPFLAGS="$opal_check_package_ompi_check_ucx_save_CPPFLAGS" - LDFLAGS="$opal_check_package_ompi_check_ucx_save_LDFLAGS" - LIBS="$opal_check_package_ompi_check_ucx_save_LIBS" - CPPFLAGS="$ompi_check_ucx_atomic_ucx_save_CPPFLAGS" - LDFLAGS="$ompi_check_ucx_atomic_ucx_save_LDFLAGS" - LIBS="$ompi_check_ucx_atomic_ucx_save_LIBS" + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - if test "$ompi_check_ucx_happy" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCX version compatibility" >&5 -$as_echo_n "checking for UCX version compatibility... " >&6; } + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - old_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ompi_check_ucx_happy="yes" -else - ompi_check_ucx_happy="no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ompi_check_ucx_happy" >&5 -$as_echo "$ompi_check_ucx_happy" >&6; } - CPPFLAGS=$old_CPPFLAGS -fi -fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - old_CPPFLAGS="$CPPFLAGS" - if test -n "$ompi_check_ucx_dir"; then : - CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" + + for arg in $memheap_buddy_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbr" "ac_cv_have_decl_ucp_tag_send_nbr" "#include -" -if test "x$ac_cv_have_decl_ucp_tag_send_nbr" = xyes; then : - ac_have_decl=1 + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - ac_have_decl=0 + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" +fi fi + done -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_TAG_SEND_NBR $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : -$as_echo "#define HAVE_UCP_TAG_SEND_NBR 1" >>confdefs.h + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -fi + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nb" "ac_cv_have_decl_ucp_ep_flush_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_ep_flush_nb" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_EP_FLUSH_NB $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_worker_flush_nb" "ac_cv_have_decl_ucp_worker_flush_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_worker_flush_nb" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_WORKER_FLUSH_NB $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_request_check_status" "ac_cv_have_decl_ucp_request_check_status" "#include -" -if test "x$ac_cv_have_decl_ucp_request_check_status" = xyes; then : - ac_have_decl=1 else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_REQUEST_CHECK_STATUS $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_put_nb" "ac_cv_have_decl_ucp_put_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_put_nb" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_PUT_NB $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "ucp_get_nb" "ac_cv_have_decl_ucp_get_nb" "#include -" -if test "x$ac_cv_have_decl_ucp_get_nb" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_GET_NB $ac_have_decl -_ACEOF + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi - ac_fn_c_check_decl "$LINENO" "ucm_test_events" "ac_cv_have_decl_ucm_test_events" "#include -" -if test "x$ac_cv_have_decl_ucm_test_events" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in opal_tmp opal_append; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCM_TEST_EVENTS $ac_have_decl -_ACEOF + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_AND" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + eval $opal_str + unset opal_str -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_POST_OP_AND $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_OR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_OR" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_POST_OP_OR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_XOR" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_XOR" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_POST_OP_XOR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FAND" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FAND" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 + for arg in $memheap_buddy_WRAPPER_EXTRA_LIBS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_libs}; do + if test "x$val" = "x$arg"; then : + opal_append=0 fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FAND $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FOR" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 + done fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FOR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_FETCH_OP_FXOR" "ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" "#include -" -if test "x$ac_cv_have_decl_UCP_ATOMIC_FETCH_OP_FXOR" = xyes; then : - ac_have_decl=1 + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_libs"; then : + mca_wrapper_extra_libs=$arg else - ac_have_decl=0 + mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_ATOMIC_FETCH_OP_FXOR $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" "#include -" -if test "x$ac_cv_have_decl_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 fi + done -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN $ac_have_decl -_ACEOF - ac_fn_c_check_decl "$LINENO" "UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "#include -" -if test "x$ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS $ac_have_decl -_ACEOF -if test $ac_have_decl = 1; then : + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done -$as_echo "#define HAVE_UCP_WORKER_ADDRESS_FLAGS 1" >>confdefs.h fi - CPPFLAGS=$old_CPPFLAGS + fi + # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script + # component can never be used in a STOP_AT_FIRST framework, we + # don't have to implement the else clause in the literal check... + if test "$memheap_buddy_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + stop_at_first=0 + if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : + if test "$with_devel_headers" = "yes"; then : @@ -353875,7 +379914,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_summary_section ompi_summary_line ompi_summary_section_current; do + for opal_var in opal_tmp opal_append; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -353894,7 +379933,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_summary_section ompi_summary_line ompi_summary_section_current\"" + opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" eval $opal_str unset opal_str @@ -353902,20 +379941,24 @@ opal_scope_index=`expr $opal_scope_index + 1` - ompi_summary_section=$(echo Transports | tr ' ' '_') - ompi_summary_line="Open UCX: $ompi_check_ucx_happy" - ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section) - - if test -z "$ompi_summary_section_current" ; then - if test -z "$ompi_summary_sections" ; then - ompi_summary_sections=$ompi_summary_section - else - ompi_summary_sections="$ompi_summary_sections $ompi_summary_section" - fi - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\" - else - eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\" - fi + for arg in $memheap_buddy_WRAPPER_EXTRA_CPPFLAGS; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : + for val in ${mca_wrapper_extra_cppflags}; do + if test "x$val" = "x$arg"; then : + opal_append=0 +fi + done +fi + if test "$opal_append" = "1"; then : + if test -z "$mca_wrapper_extra_cppflags"; then : + mca_wrapper_extra_cppflags=$arg +else + mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" +fi +fi + done # Unwind the index @@ -353940,109 +379983,204 @@ fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring memheap_buddy_WRAPPER_EXTRA_CPPFLAGS ($memheap_buddy_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring memheap_buddy_WRAPPER_EXTRA_CPPFLAGS ($memheap_buddy_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} +fi fi - if test "$ompi_check_ucx_happy" = "yes"; then : - atomic_ucx_CPPFLAGS="$atomic_ucx_CPPFLAGS $ompi_check_ucx_CPPFLAGS" - atomic_ucx_LDFLAGS="$atomic_ucx_LDFLAGS $ompi_check_ucx_LDFLAGS" - atomic_ucx_LIBS="$atomic_ucx_LIBS $ompi_check_ucx_LIBS" + else -$as_echo "#define HAVE_UCX 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memheap:buddy can compile" >&5 +$as_echo_n "checking if MCA component memheap:buddy can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - atomic_ucx_happy="yes" + # If this component was requested as the default for this + # type, then abort. + if test "$with_memheap" = "buddy" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"buddy\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"buddy\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_memheap" ; then + if test "$DIRECT_memheap" = "buddy" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"buddy\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"buddy\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components buddy" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_oshmem_memheap_buddy_DSO=1 + else + BUILD_oshmem_memheap_buddy_DSO=0 + fi + if test "$BUILD_oshmem_memheap_buddy_DSO" = "1"; then + MCA_BUILD_oshmem_memheap_buddy_DSO_TRUE= + MCA_BUILD_oshmem_memheap_buddy_DSO_FALSE='#' else - if test ! -z "$with_ucx" && test "$with_ucx" != "no"; then : - as_fn_error $? "UCX support requested but not found. Aborting" "$LINENO" 5 + MCA_BUILD_oshmem_memheap_buddy_DSO_TRUE='#' + MCA_BUILD_oshmem_memheap_buddy_DSO_FALSE= fi -$as_echo "#define HAVE_UCX 0" >>confdefs.h - atomic_ucx_happy="no" -fi + ac_config_files="$ac_config_files oshmem/mca/memheap/buddy/Makefile" - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + unset compile_mode - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + opal_show_subsubsubtitle "MCA component memheap:ptmalloc (no configuration)" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - if test "$atomic_ucx_happy" = "yes"; then : - should_build=$should_build + component_path="$srcdir/oshmem/mca/memheap/ptmalloc" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no opal_ignore file + # - there is an opal_ignore, but there is an empty opal_unignore + # - there is an opal_ignore, but username is in opal_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.opal_ignore ; then + # If there is an opal_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.opal_unignore ; then + # if there is an empty opal_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.opal_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_memheap" ; then + if test "$DIRECT_memheap" = "ptmalloc" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_memheap" = "1"; then : + want_component=0 +fi + if test "$DISABLE_memheap_ptmalloc" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 else should_build=0 fi - # substitute in the things needed to build ucx + SHARED_FRAMEWORK="$DSO_memheap" + SHARED_COMPONENT="$DSO_memheap_ptmalloc" + STATIC_FRAMEWORK="$STATIC_memheap" + STATIC_COMPONENT="$STATIC_memheap_ptmalloc" + shared_mode_override=static + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component memheap:ptmalloc compile mode" >&5 +$as_echo_n "checking for MCA component memheap:ptmalloc compile mode... " >&6; } + if test "$DIRECT_memheap" = "ptmalloc" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/oshmem/mca/atomic/ucx/post_configure.sh" + infile="$srcdir/oshmem/mca/memheap/ptmalloc/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ucx" + all_components="$all_components ptmalloc" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ucx" + dso_components="$dso_components ptmalloc" else - if test "atomic" = "common"; then + if test "memheap" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/atomic/ucx/lib${OSHMEM_LIB_PREFIX}mca_atomic_ucx.la $static_ltlibs" + static_ltlibs="mca/memheap/ptmalloc/lib${OSHMEM_LIB_PREFIX}mca_memheap_ptmalloc.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/atomic/ucx/libmca_atomic_ucx.la $static_ltlibs" + static_ltlibs="mca/memheap/ptmalloc/libmca_memheap_ptmalloc.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_atomic_ucx_component;" >> $outfile.extern - echo " &mca_atomic_ucx_component, " >> $outfile.struct - static_components="$static_components ucx" + echo "extern const mca_base_component_t mca_memheap_ptmalloc_component;" >> $outfile.extern + echo " &mca_memheap_ptmalloc_component, " >> $outfile.struct + static_components="$static_components ptmalloc" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component atomic:ucx can compile" >&5 -$as_echo_n "checking if MCA component atomic:ucx can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memheap:ptmalloc can compile" >&5 +$as_echo_n "checking if MCA component memheap:ptmalloc can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_atomic" = "ucx" ; then + if test "$DIRECT_memheap" = "ptmalloc" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_oshmem_atomic_DIRECT_CALL_HEADER=$line" + str="MCA_oshmem_memheap_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** atomic component ucx was supposed to be direct-called, but +as_fn_error $? "*** memheap component ptmalloc was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -354050,8 +380188,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_atomic" = "ucx" ; then -as_fn_error $? "*** atomic component ucx was supposed to be direct-called, but + if test "$DIRECT_memheap" = "ptmalloc" ; then +as_fn_error $? "*** memheap component ptmalloc was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -354066,7 +380204,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$atomic_ucx_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$memheap_ptmalloc_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -354106,7 +380244,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $atomic_ucx_LDFLAGS; do + for arg in $memheap_ptmalloc_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -354187,7 +380325,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $atomic_ucx_WRAPPER_EXTRA_LDFLAGS; do + for arg in $memheap_ptmalloc_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -354229,7 +380367,7 @@ fi - if test "$atomic_ucx_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$memheap_ptmalloc_WRAPPER_EXTRA_LIBS" = ""; then : @@ -354269,7 +380407,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $atomic_ucx_LIBS; do + for arg in $memheap_ptmalloc_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -354350,7 +380488,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $atomic_ucx_WRAPPER_EXTRA_LIBS; do + for arg in $memheap_ptmalloc_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -354398,7 +380536,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$atomic_ucx_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$memheap_ptmalloc_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -354441,7 +380579,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $atomic_ucx_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $memheap_ptmalloc_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -354484,69 +380622,70 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring atomic_ucx_WRAPPER_EXTRA_CPPFLAGS ($atomic_ucx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring atomic_ucx_WRAPPER_EXTRA_CPPFLAGS ($atomic_ucx_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring memheap_ptmalloc_WRAPPER_EXTRA_CPPFLAGS ($memheap_ptmalloc_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring memheap_ptmalloc_WRAPPER_EXTRA_CPPFLAGS ($memheap_ptmalloc_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component atomic:ucx can compile" >&5 -$as_echo_n "checking if MCA component atomic:ucx can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memheap:ptmalloc can compile" >&5 +$as_echo_n "checking if MCA component memheap:ptmalloc can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_atomic" = "ucx" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucx\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ucx\" failed to configure properly" >&2;} + if test "$with_memheap" = "ptmalloc" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ptmalloc\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ptmalloc\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_atomic" ; then - if test "$DIRECT_atomic" = "ucx" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucx\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ucx\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_memheap" ; then + if test "$DIRECT_memheap" = "ptmalloc" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ptmalloc\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ptmalloc\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components ucx" -fi - - + # add component to all component list + all_components="$all_components ptmalloc" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_oshmem_atomic_ucx_DSO=1 -else - BUILD_oshmem_atomic_ucx_DSO=0 -fi - if test "$BUILD_oshmem_atomic_ucx_DSO" = "1"; then - MCA_BUILD_oshmem_atomic_ucx_DSO_TRUE= - MCA_BUILD_oshmem_atomic_ucx_DSO_FALSE='#' + if test "$compile_mode" = "dso" ; then + BUILD_oshmem_memheap_ptmalloc_DSO=1 + else + BUILD_oshmem_memheap_ptmalloc_DSO=0 + fi + if test "$BUILD_oshmem_memheap_ptmalloc_DSO" = "1"; then + MCA_BUILD_oshmem_memheap_ptmalloc_DSO_TRUE= + MCA_BUILD_oshmem_memheap_ptmalloc_DSO_FALSE='#' else - MCA_BUILD_oshmem_atomic_ucx_DSO_TRUE='#' - MCA_BUILD_oshmem_atomic_ucx_DSO_FALSE= + MCA_BUILD_oshmem_memheap_ptmalloc_DSO_TRUE='#' + MCA_BUILD_oshmem_memheap_ptmalloc_DSO_FALSE= fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi + ac_config_files="$ac_config_files oshmem/mca/memheap/ptmalloc/Makefile" + unset compile_mode + # configure components that use built-in configuration scripts + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 # configure components that provide their own configure script. @@ -354557,16 +380696,16 @@ if test "1" != "0"; then : - for component_path in $srcdir/oshmem/mca/atomic/* ; do + for component_path in $srcdir/oshmem/mca/memheap/* ; do component="`basename $component_path`" if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component atomic:$component (need to configure)" + opal_show_subsubsubtitle "MCA component memheap:$component (need to configure)" opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/oshmem/mca/atomic/$component" + component_path="$srcdir/oshmem/mca/memheap/$component" want_component=0 # build if: @@ -354598,8 +380737,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_atomic" ; then - if test "$DIRECT_atomic" = "$component" ; then + if test ! -z "$DIRECT_memheap" ; then + if test "$DIRECT_memheap" = "$component" ; then want_component=1 else want_component=0 @@ -354608,10 +380747,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_atomic" = "1"; then : + if test "$DISABLE_memheap" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_atomic_$component" + str="DISABLED_COMPONENT_CHECK=\$DISABLE_memheap_$component" eval $str if test "$DISABLED_COMPONENT_CHECK" = "1" ; then want_component=0 @@ -354624,12 +380763,12 @@ fi - SHARED_FRAMEWORK="$DSO_atomic" - str="SHARED_COMPONENT=\$DSO_atomic_$component" + SHARED_FRAMEWORK="$DSO_memheap" + str="SHARED_COMPONENT=\$DSO_memheap_$component" eval $str - STATIC_FRAMEWORK="$STATIC_atomic" - str="STATIC_COMPONENT=\$STATIC_atomic_$component" + STATIC_FRAMEWORK="$STATIC_memheap" + str="STATIC_COMPONENT=\$STATIC_memheap_$component" eval $str shared_mode_override=static @@ -354648,9 +380787,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component atomic:$component compile mode" >&5 -$as_echo_n "checking for MCA component atomic:$component compile mode... " >&6; } - if test "$DIRECT_atomic" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component memheap:$component compile mode" >&5 +$as_echo_n "checking for MCA component memheap:$component compile mode... " >&6; } + if test "$DIRECT_memheap" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -354703,12 +380842,12 @@ # # Invoke configure in a specific subdirectory. # -# oshmem/mca/atomic/$component is the directory to invoke in +# oshmem/mca/memheap/$component is the directory to invoke in # $opal_subdir_args is the list of arguments to pass # should_build=1 is actions to execute upon success # should_build=0 is actions to execute upon failure # -subdir_dir="oshmem/mca/atomic/$component" +subdir_dir="oshmem/mca/memheap/$component" subdir_args="$opal_subdir_args" subdir_success="should_build=1" subdir_failure="should_build=0" @@ -354852,7 +380991,7 @@ # do some extra work to pass flags back from the # top-level configure, the way a configure.m4 # component would. - infile="$srcdir/oshmem/mca/atomic/all_components/post_configure.sh" + infile="$srcdir/oshmem/mca/memheap/all_components/post_configure.sh" if test -f $infile; then # First check for the ABORT tag @@ -354866,12 +381005,12 @@ line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - atomic_all_components_WRAPPER_EXTRA_LDFLAGS="$line" + memheap_all_components_WRAPPER_EXTRA_LDFLAGS="$line" fi line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" eval "line=$line" if test -n "$line"; then - atomic_all_components_WRAPPER_EXTRA_LIBS="$line" + memheap_all_components_WRAPPER_EXTRA_LIBS="$line" fi fi @@ -354880,7 +381019,7 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/oshmem/mca/atomic/$component/post_configure.sh" + infile="$srcdir/oshmem/mca/memheap/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs all_components="$all_components $component" @@ -354888,37 +381027,37 @@ if test "$compile_mode" = "dso" ; then dso_components="$dso_components $component" else - if test "atomic" = "common"; then + if test "memheap" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/atomic/$component/lib${OSHMEM_LIB_PREFIX}mca_atomic_$component.la $static_ltlibs" + static_ltlibs="mca/memheap/$component/lib${OSHMEM_LIB_PREFIX}mca_memheap_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/atomic/$component/libmca_atomic_$component.la $static_ltlibs" + static_ltlibs="mca/memheap/$component/libmca_memheap_$component.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_atomic_$component_component;" >> $outfile.extern - echo " &mca_atomic_$component_component, " >> $outfile.struct + echo "extern const mca_base_component_t mca_memheap_$component_component;" >> $outfile.extern + echo " &mca_memheap_$component_component, " >> $outfile.struct static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component atomic:$component can compile" >&5 -$as_echo_n "checking if MCA component atomic:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memheap:$component can compile" >&5 +$as_echo_n "checking if MCA component memheap:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_atomic" = "$component" ; then + if test "$DIRECT_memheap" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_oshmem_atomic_DIRECT_CALL_HEADER=$line" + str="MCA_oshmem_memheap_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** atomic component $component was supposed to be direct-called, but +as_fn_error $? "*** memheap component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -354926,8 +381065,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_atomic" = "$component" ; then -as_fn_error $? "*** atomic component $component was supposed to be direct-called, but + if test "$DIRECT_memheap" = "$component" ; then +as_fn_error $? "*** memheap component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -354942,7 +381081,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - str="line=\$atomic_$component_WRAPPER_EXTRA_LDFLAGS" + str="line=\$memheap_$component_WRAPPER_EXTRA_LDFLAGS" eval "$str" @@ -355023,7 +381162,7 @@ unset $opal_var done -str="line=\$atomic_$component_WRAPPER_EXTRA_LIBS" +str="line=\$memheap_$component_WRAPPER_EXTRA_LIBS" eval "$str" @@ -355114,14 +381253,14 @@ else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component atomic:$component can compile" >&5 -$as_echo_n "checking if MCA component atomic:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memheap:$component can compile" >&5 +$as_echo_n "checking if MCA component memheap:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_atomic" = "$component" ; then + if test "$with_memheap" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 @@ -355129,8 +381268,8 @@ as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_atomic" ; then - if test "$DIRECT_atomic" = "$component" ; then + if test ! -z "$DIRECT_memheap" ; then + if test "$DIRECT_memheap" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 @@ -355145,10 +381284,10 @@ fi - MCA_oshmem_atomic_ALL_COMPONENTS="$all_components" - MCA_oshmem_atomic_STATIC_COMPONENTS="$static_components" - MCA_oshmem_atomic_DSO_COMPONENTS="$dso_components" - MCA_oshmem_atomic_STATIC_LTLIBS="$static_ltlibs" + MCA_oshmem_memheap_ALL_COMPONENTS="$all_components" + MCA_oshmem_memheap_STATIC_COMPONENTS="$static_components" + MCA_oshmem_memheap_DSO_COMPONENTS="$dso_components" + MCA_oshmem_memheap_STATIC_LTLIBS="$static_ltlibs" @@ -355156,23 +381295,23 @@ - MCA_oshmem_atomic_ALL_SUBDIRS= + MCA_oshmem_memheap_ALL_SUBDIRS= for item in $all_components ; do - MCA_oshmem_atomic_ALL_SUBDIRS="$MCA_oshmem_atomic_ALL_SUBDIRS mca/atomic/$item" + MCA_oshmem_memheap_ALL_SUBDIRS="$MCA_oshmem_memheap_ALL_SUBDIRS mca/memheap/$item" done - MCA_oshmem_atomic_STATIC_SUBDIRS= + MCA_oshmem_memheap_STATIC_SUBDIRS= for item in $static_components ; do - MCA_oshmem_atomic_STATIC_SUBDIRS="$MCA_oshmem_atomic_STATIC_SUBDIRS mca/atomic/$item" + MCA_oshmem_memheap_STATIC_SUBDIRS="$MCA_oshmem_memheap_STATIC_SUBDIRS mca/memheap/$item" done - MCA_oshmem_atomic_DSO_SUBDIRS= + MCA_oshmem_memheap_DSO_SUBDIRS= for item in $dso_components ; do - MCA_oshmem_atomic_DSO_SUBDIRS="$MCA_oshmem_atomic_DSO_SUBDIRS mca/atomic/$item" + MCA_oshmem_memheap_DSO_SUBDIRS="$MCA_oshmem_memheap_DSO_SUBDIRS mca/memheap/$item" done @@ -355180,7 +381319,7 @@ # Create the final .h file that will be included in the type's # top-level glue. This lists all the static components. We don't # need to do this for "common". - if test "atomic" != "common"; then + if test "memheap" != "common"; then cat > $outfile <>confdefs.h <<_ACEOF +#define MCA_oshmem_memheap_DIRECT_CALL $MCA_oshmem_memheap_DIRECT_CALL +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define MCA_oshmem_memheap_DIRECT_CALL_COMPONENT $MCA_oshmem_memheap_DIRECT_CALL_COMPONENT +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define MCA_oshmem_memheap_DIRECT_CALL_HEADER "$MCA_oshmem_memheap_DIRECT_CALL_HEADER" +_ACEOF + - opal_show_subsubtitle "Configuring MCA framework memheap" + + MCA_oshmem_FRAMEWORKS="$MCA_oshmem_FRAMEWORKS scoll" + MCA_oshmem_FRAMEWORKS_SUBDIRS="$MCA_oshmem_FRAMEWORKS_SUBDIRS mca/scoll" + MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_oshmem_scoll_ALL_SUBDIRS)" + MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_oshmem_scoll_DSO_SUBDIRS)" + MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_oshmem_scoll_STATIC_SUBDIRS)" + MCA_oshmem_FRAMEWORK_LIBS="$MCA_oshmem_FRAMEWORK_LIBS mca/scoll/libmca_scoll.la" + MCA_oshmem_FRAMEWORK_LIBS="$MCA_oshmem_FRAMEWORK_LIBS \$(MCA_oshmem_scoll_STATIC_LTLIBS)" + + opal_show_subsubtitle "Configuring MCA framework scoll" @@ -355242,11 +381408,11 @@ # exists. Need to do this for VPATH builds, because the directory # may not exist yet. For the "common" type, it's not really a # component, so it doesn't have a base. - outdir=oshmem/mca/memheap/base + outdir=oshmem/mca/scoll/base as_dir=$outdir; as_fn_mkdir_p # emit Makefile rule - ac_config_files="$ac_config_files oshmem/mca/memheap/Makefile" + ac_config_files="$ac_config_files oshmem/mca/scoll/Makefile" # remove any previously generated #include files @@ -355256,14 +381422,14 @@ touch $outfile.struct $outfile.extern # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework memheap" >&5 -$as_echo_n "checking for no configure components in framework memheap... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: buddy, ptmalloc" >&5 -$as_echo "buddy, ptmalloc" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework memheap" >&5 -$as_echo_n "checking for m4 configure components in framework memheap... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework scoll" >&5 +$as_echo_n "checking for no configure components in framework scoll... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: basic, mpi" >&5 +$as_echo "basic, mpi" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework scoll" >&5 +$as_echo_n "checking for m4 configure components in framework scoll... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: fca, ucc" >&5 +$as_echo "fca, ucc" >&6; } # If there are components in the no configure list, but we're # doing one of the "special" selection logics, abort with a @@ -355273,13 +381439,13 @@ # run the configure logic for the no-config components - opal_show_subsubsubtitle "MCA component memheap:buddy (no configuration)" + opal_show_subsubsubtitle "MCA component scoll:basic (no configuration)" opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/oshmem/mca/memheap/buddy" + component_path="$srcdir/oshmem/mca/scoll/basic" want_component=0 # build if: @@ -355311,8 +381477,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_memheap" ; then - if test "$DIRECT_memheap" = "buddy" ; then + if test ! -z "$DIRECT_scoll" ; then + if test "$DIRECT_scoll" = "basic" ; then want_component=1 else want_component=0 @@ -355321,10 +381487,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_memheap" = "1"; then : + if test "$DISABLE_scoll" = "1"; then : want_component=0 fi - if test "$DISABLE_memheap_buddy" = "1"; then : + if test "$DISABLE_scoll_basic" = "1"; then : want_component=0 fi @@ -355335,11 +381501,11 @@ fi - SHARED_FRAMEWORK="$DSO_memheap" - SHARED_COMPONENT="$DSO_memheap_buddy" + SHARED_FRAMEWORK="$DSO_scoll" + SHARED_COMPONENT="$DSO_scoll_basic" - STATIC_FRAMEWORK="$STATIC_memheap" - STATIC_COMPONENT="$STATIC_memheap_buddy" + STATIC_FRAMEWORK="$STATIC_scoll" + STATIC_COMPONENT="$STATIC_scoll_basic" shared_mode_override=static @@ -355357,9 +381523,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component memheap:buddy compile mode" >&5 -$as_echo_n "checking for MCA component memheap:buddy compile mode... " >&6; } - if test "$DIRECT_memheap" = "buddy" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component scoll:basic compile mode" >&5 +$as_echo_n "checking for MCA component scoll:basic compile mode... " >&6; } + if test "$DIRECT_scoll" = "basic" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -355375,45 +381541,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/oshmem/mca/memheap/buddy/post_configure.sh" + infile="$srcdir/oshmem/mca/scoll/basic/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components buddy" + all_components="$all_components basic" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components buddy" + dso_components="$dso_components basic" else - if test "memheap" = "common"; then + if test "scoll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/memheap/buddy/lib${OSHMEM_LIB_PREFIX}mca_memheap_buddy.la $static_ltlibs" + static_ltlibs="mca/scoll/basic/lib${OSHMEM_LIB_PREFIX}mca_scoll_basic.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/memheap/buddy/libmca_memheap_buddy.la $static_ltlibs" + static_ltlibs="mca/scoll/basic/libmca_scoll_basic.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_memheap_buddy_component;" >> $outfile.extern - echo " &mca_memheap_buddy_component, " >> $outfile.struct - static_components="$static_components buddy" + echo "extern const mca_base_component_t mca_scoll_basic_component;" >> $outfile.extern + echo " &mca_scoll_basic_component, " >> $outfile.struct + static_components="$static_components basic" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memheap:buddy can compile" >&5 -$as_echo_n "checking if MCA component memheap:buddy can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component scoll:basic can compile" >&5 +$as_echo_n "checking if MCA component scoll:basic can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_memheap" = "buddy" ; then + if test "$DIRECT_scoll" = "basic" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_oshmem_memheap_DIRECT_CALL_HEADER=$line" + str="MCA_oshmem_scoll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** memheap component buddy was supposed to be direct-called, but +as_fn_error $? "*** scoll component basic was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -355421,8 +381587,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_memheap" = "buddy" ; then -as_fn_error $? "*** memheap component buddy was supposed to be direct-called, but + if test "$DIRECT_scoll" = "basic" ; then +as_fn_error $? "*** scoll component basic was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -355437,7 +381603,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$memheap_buddy_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$scoll_basic_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -355477,7 +381643,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memheap_buddy_LDFLAGS; do + for arg in $scoll_basic_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -355558,7 +381724,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memheap_buddy_WRAPPER_EXTRA_LDFLAGS; do + for arg in $scoll_basic_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -355600,7 +381766,7 @@ fi - if test "$memheap_buddy_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$scoll_basic_WRAPPER_EXTRA_LIBS" = ""; then : @@ -355640,7 +381806,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memheap_buddy_LIBS; do + for arg in $scoll_basic_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -355721,7 +381887,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memheap_buddy_WRAPPER_EXTRA_LIBS; do + for arg in $scoll_basic_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -355769,7 +381935,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$memheap_buddy_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$scoll_basic_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -355812,7 +381978,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memheap_buddy_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $scoll_basic_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -355855,32 +382021,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring memheap_buddy_WRAPPER_EXTRA_CPPFLAGS ($memheap_buddy_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring memheap_buddy_WRAPPER_EXTRA_CPPFLAGS ($memheap_buddy_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring scoll_basic_WRAPPER_EXTRA_CPPFLAGS ($scoll_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring scoll_basic_WRAPPER_EXTRA_CPPFLAGS ($scoll_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memheap:buddy can compile" >&5 -$as_echo_n "checking if MCA component memheap:buddy can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component scoll:basic can compile" >&5 +$as_echo_n "checking if MCA component scoll:basic can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_memheap" = "buddy" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"buddy\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"buddy\" failed to configure properly" >&2;} + if test "$with_scoll" = "basic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_memheap" ; then - if test "$DIRECT_memheap" = "buddy" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"buddy\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"buddy\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_scoll" ; then + if test "$DIRECT_scoll" = "basic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -355888,36 +382054,36 @@ fi # add component to all component list - all_components="$all_components buddy" + all_components="$all_components basic" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso" ; then - BUILD_oshmem_memheap_buddy_DSO=1 + BUILD_oshmem_scoll_basic_DSO=1 else - BUILD_oshmem_memheap_buddy_DSO=0 + BUILD_oshmem_scoll_basic_DSO=0 fi - if test "$BUILD_oshmem_memheap_buddy_DSO" = "1"; then - MCA_BUILD_oshmem_memheap_buddy_DSO_TRUE= - MCA_BUILD_oshmem_memheap_buddy_DSO_FALSE='#' + if test "$BUILD_oshmem_scoll_basic_DSO" = "1"; then + MCA_BUILD_oshmem_scoll_basic_DSO_TRUE= + MCA_BUILD_oshmem_scoll_basic_DSO_FALSE='#' else - MCA_BUILD_oshmem_memheap_buddy_DSO_TRUE='#' - MCA_BUILD_oshmem_memheap_buddy_DSO_FALSE= + MCA_BUILD_oshmem_scoll_basic_DSO_TRUE='#' + MCA_BUILD_oshmem_scoll_basic_DSO_FALSE= fi - ac_config_files="$ac_config_files oshmem/mca/memheap/buddy/Makefile" + ac_config_files="$ac_config_files oshmem/mca/scoll/basic/Makefile" unset compile_mode - opal_show_subsubsubtitle "MCA component memheap:ptmalloc (no configuration)" + opal_show_subsubsubtitle "MCA component scoll:mpi (no configuration)" opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/oshmem/mca/memheap/ptmalloc" + component_path="$srcdir/oshmem/mca/scoll/mpi" want_component=0 # build if: @@ -355949,8 +382115,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_memheap" ; then - if test "$DIRECT_memheap" = "ptmalloc" ; then + if test ! -z "$DIRECT_scoll" ; then + if test "$DIRECT_scoll" = "mpi" ; then want_component=1 else want_component=0 @@ -355959,10 +382125,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_memheap" = "1"; then : + if test "$DISABLE_scoll" = "1"; then : want_component=0 fi - if test "$DISABLE_memheap_ptmalloc" = "1"; then : + if test "$DISABLE_scoll_mpi" = "1"; then : want_component=0 fi @@ -355973,11 +382139,11 @@ fi - SHARED_FRAMEWORK="$DSO_memheap" - SHARED_COMPONENT="$DSO_memheap_ptmalloc" + SHARED_FRAMEWORK="$DSO_scoll" + SHARED_COMPONENT="$DSO_scoll_mpi" - STATIC_FRAMEWORK="$STATIC_memheap" - STATIC_COMPONENT="$STATIC_memheap_ptmalloc" + STATIC_FRAMEWORK="$STATIC_scoll" + STATIC_COMPONENT="$STATIC_scoll_mpi" shared_mode_override=static @@ -355995,9 +382161,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component memheap:ptmalloc compile mode" >&5 -$as_echo_n "checking for MCA component memheap:ptmalloc compile mode... " >&6; } - if test "$DIRECT_memheap" = "ptmalloc" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component scoll:mpi compile mode" >&5 +$as_echo_n "checking for MCA component scoll:mpi compile mode... " >&6; } + if test "$DIRECT_scoll" = "mpi" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -356013,45 +382179,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/oshmem/mca/memheap/ptmalloc/post_configure.sh" + infile="$srcdir/oshmem/mca/scoll/mpi/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ptmalloc" + all_components="$all_components mpi" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ptmalloc" + dso_components="$dso_components mpi" else - if test "memheap" = "common"; then + if test "scoll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/memheap/ptmalloc/lib${OSHMEM_LIB_PREFIX}mca_memheap_ptmalloc.la $static_ltlibs" + static_ltlibs="mca/scoll/mpi/lib${OSHMEM_LIB_PREFIX}mca_scoll_mpi.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/memheap/ptmalloc/libmca_memheap_ptmalloc.la $static_ltlibs" + static_ltlibs="mca/scoll/mpi/libmca_scoll_mpi.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_memheap_ptmalloc_component;" >> $outfile.extern - echo " &mca_memheap_ptmalloc_component, " >> $outfile.struct - static_components="$static_components ptmalloc" + echo "extern const mca_base_component_t mca_scoll_mpi_component;" >> $outfile.extern + echo " &mca_scoll_mpi_component, " >> $outfile.struct + static_components="$static_components mpi" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memheap:ptmalloc can compile" >&5 -$as_echo_n "checking if MCA component memheap:ptmalloc can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component scoll:mpi can compile" >&5 +$as_echo_n "checking if MCA component scoll:mpi can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_memheap" = "ptmalloc" ; then + if test "$DIRECT_scoll" = "mpi" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_oshmem_memheap_DIRECT_CALL_HEADER=$line" + str="MCA_oshmem_scoll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** memheap component ptmalloc was supposed to be direct-called, but +as_fn_error $? "*** scoll component mpi was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -356059,8 +382225,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_memheap" = "ptmalloc" ; then -as_fn_error $? "*** memheap component ptmalloc was supposed to be direct-called, but + if test "$DIRECT_scoll" = "mpi" ; then +as_fn_error $? "*** scoll component mpi was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -356075,7 +382241,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$memheap_ptmalloc_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$scoll_mpi_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -356115,7 +382281,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memheap_ptmalloc_LDFLAGS; do + for arg in $scoll_mpi_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -356196,7 +382362,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memheap_ptmalloc_WRAPPER_EXTRA_LDFLAGS; do + for arg in $scoll_mpi_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -356238,7 +382404,7 @@ fi - if test "$memheap_ptmalloc_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$scoll_mpi_WRAPPER_EXTRA_LIBS" = ""; then : @@ -356278,7 +382444,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memheap_ptmalloc_LIBS; do + for arg in $scoll_mpi_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -356359,7 +382525,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memheap_ptmalloc_WRAPPER_EXTRA_LIBS; do + for arg in $scoll_mpi_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -356407,7 +382573,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$memheap_ptmalloc_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$scoll_mpi_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -356450,7 +382616,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $memheap_ptmalloc_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $scoll_mpi_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -356493,32 +382659,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring memheap_ptmalloc_WRAPPER_EXTRA_CPPFLAGS ($memheap_ptmalloc_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring memheap_ptmalloc_WRAPPER_EXTRA_CPPFLAGS ($memheap_ptmalloc_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring scoll_mpi_WRAPPER_EXTRA_CPPFLAGS ($scoll_mpi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring scoll_mpi_WRAPPER_EXTRA_CPPFLAGS ($scoll_mpi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memheap:ptmalloc can compile" >&5 -$as_echo_n "checking if MCA component memheap:ptmalloc can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component scoll:mpi can compile" >&5 +$as_echo_n "checking if MCA component scoll:mpi can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_memheap" = "ptmalloc" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ptmalloc\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ptmalloc\" failed to configure properly" >&2;} + if test "$with_scoll" = "mpi" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"mpi\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"mpi\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_memheap" ; then - if test "$DIRECT_memheap" = "ptmalloc" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ptmalloc\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ptmalloc\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_scoll" ; then + if test "$DIRECT_scoll" = "mpi" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"mpi\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"mpi\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -356526,25 +382692,25 @@ fi # add component to all component list - all_components="$all_components ptmalloc" + all_components="$all_components mpi" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso" ; then - BUILD_oshmem_memheap_ptmalloc_DSO=1 + BUILD_oshmem_scoll_mpi_DSO=1 else - BUILD_oshmem_memheap_ptmalloc_DSO=0 + BUILD_oshmem_scoll_mpi_DSO=0 fi - if test "$BUILD_oshmem_memheap_ptmalloc_DSO" = "1"; then - MCA_BUILD_oshmem_memheap_ptmalloc_DSO_TRUE= - MCA_BUILD_oshmem_memheap_ptmalloc_DSO_FALSE='#' + if test "$BUILD_oshmem_scoll_mpi_DSO" = "1"; then + MCA_BUILD_oshmem_scoll_mpi_DSO_TRUE= + MCA_BUILD_oshmem_scoll_mpi_DSO_FALSE='#' else - MCA_BUILD_oshmem_memheap_ptmalloc_DSO_TRUE='#' - MCA_BUILD_oshmem_memheap_ptmalloc_DSO_FALSE= + MCA_BUILD_oshmem_scoll_mpi_DSO_TRUE='#' + MCA_BUILD_oshmem_scoll_mpi_DSO_FALSE= fi - ac_config_files="$ac_config_files oshmem/mca/memheap/ptmalloc/Makefile" + ac_config_files="$ac_config_files oshmem/mca/scoll/mpi/Makefile" unset compile_mode @@ -356559,24 +382725,13 @@ components_last_result=0 - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - - if test "1" != "0"; then : - - for component_path in $srcdir/oshmem/mca/memheap/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - opal_show_subsubsubtitle "MCA component memheap:$component (need to configure)" + opal_show_subsubsubtitle "MCA component scoll:fca (m4 configuration macro)" - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/oshmem/mca/memheap/$component" + component_path="$srcdir/oshmem/mca/scoll/fca" want_component=0 # build if: @@ -356608,8 +382763,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_memheap" ; then - if test "$DIRECT_memheap" = "$component" ; then + if test ! -z "$DIRECT_scoll" ; then + if test "$DIRECT_scoll" = "fca" ; then want_component=1 else want_component=0 @@ -356618,29 +382773,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_memheap" = "1"; then : + if test "$DISABLE_scoll" = "1"; then : + want_component=0 +fi + if test "$DISABLE_scoll_fca" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_memheap_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_memheap" - str="SHARED_COMPONENT=\$DSO_memheap_$component" - eval $str + SHARED_FRAMEWORK="$DSO_scoll" + SHARED_COMPONENT="$DSO_scoll_fca" - STATIC_FRAMEWORK="$STATIC_memheap" - str="STATIC_COMPONENT=\$STATIC_memheap_$component" - eval $str + STATIC_FRAMEWORK="$STATIC_scoll" + STATIC_COMPONENT="$STATIC_scoll_fca" shared_mode_override=static @@ -356658,9 +382811,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component memheap:$component compile mode" >&5 -$as_echo_n "checking for MCA component memheap:$component compile mode... " >&6; } - if test "$DIRECT_memheap" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component scoll:fca compile mode" >&5 +$as_echo_n "checking for MCA component scoll:fca compile mode... " >&6; } + if test "$DIRECT_scoll" = "fca" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -356668,9 +382821,12 @@ $as_echo "$compile_mode" >&6; } fi - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files oshmem/mca/scoll/fca/Makefile" + + @@ -356683,7 +382839,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + for opal_var in ompi_check_fca_libs ompi_check_fca_happy CPPFLAGS_save LDFLAGS_save LIBS_save; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -356702,7 +382858,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_check_fca_libs ompi_check_fca_happy CPPFLAGS_save LDFLAGS_save LIBS_save\"" eval $opal_str unset opal_str @@ -356710,250 +382866,457 @@ opal_scope_index=`expr $opal_scope_index + 1` -# -# Invoke configure in a specific subdirectory. -# -# oshmem/mca/memheap/$component is the directory to invoke in -# $opal_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="oshmem/mca/memheap/$component" -subdir_args="$opal_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" -# -# Sanity checks -# +# Check whether --with-fca was given. +if test "${with_fca+set}" = set; then : + withval=$with_fca; +fi -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: OPAL configuring in $subdir_dir" >&5 -$as_echo "$as_me: OPAL configuring in $subdir_dir" >&6;} - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + if test "$with_fca" != "no"; then : + ompi_check_fca_libs=fca + if test ! -z "$with_fca" && test "$with_fca" != "yes"; then : + ompi_check_fca_dir=$with_fca + coll_fca_HOME="$ompi_check_fca_dir" - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } +else + coll_fca_HOME="/" - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac +fi - # - # Move into the target directory - # + CPPFLAGS_save=$CPPFLAGS + LDFLAGS_save=$LDFLAGS + LIBS_save=$LIBS - subdir_parent=`pwd` - cd $subdir_dir - # - # Make a "../" for each directory in $subdir_dir. - # - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:382896: scoll_fca_CPPFLAGS : $scoll_fca_CPPFLAGS" >&5 +else + echo scoll_fca_CPPFLAGS : $scoll_fca_CPPFLAGS >&5 +fi - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:382904: scoll_fca_LDFLAGS : $scoll_fca_LDFLAGS" >&5 +else + echo scoll_fca_LDFLAGS : $scoll_fca_LDFLAGS >&5 +fi - # - # Construct the --cache-file argument - # +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:382912: scoll_fca_LIBS : $scoll_fca_LIBS" >&5 +else + echo scoll_fca_LIBS : $scoll_fca_LIBS >&5 +fi - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - # - # Invoke the configure script in the subdirectory - # + opal_check_package_scoll_fca_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_scoll_fca_save_LDFLAGS="$LDFLAGS" + opal_check_package_scoll_fca_save_LIBS="$LIBS" - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi + opal_check_package_scoll_fca_orig_CPPFLAGS="$scoll_fca_CPPFLAGS" + opal_check_package_scoll_fca_orig_LDFLAGS="$scoll_fca_LDFLAGS" + opal_check_package_scoll_fca_orig_LIBS="$scoll_fca_LIBS" - # - # Go back to the topdir - # - cd $subdir_parent -fi + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering -# -# Clean up -# - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 fi - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in dir_prefix; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var + if test "x$opal_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi done - opal_show_verbose "OPAL_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"dir_prefix\"" + eval $opal_str + unset opal_str - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/oshmem/mca/memheap/all_components/post_configure.sh" - if test -f $infile; then + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - memheap_all_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - memheap_all_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_fca_fca_api_h + + # get rid of the trailing slash(es) + dir_prefix=$(echo $ompi_check_fca_dir | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + if test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in fca/fca_api.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "fca/fca_api.h" "ac_cv_header_fca_fca_api_h" "$ac_includes_default" +if test "x$ac_cv_header_fca_fca_api_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_FCA_FCA_API_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi +done + if test "$opal_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_fca_fca_api_h +fi +fi + if test "$opal_check_package_header_happy" = "no"; then : + if test "$dir_prefix" != ""; then : + scoll_fca_CPPFLAGS="$scoll_fca_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" +fi + for ac_header in fca/fca_api.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "fca/fca_api.h" "ac_cv_header_fca_fca_api_h" "$ac_includes_default" +if test "x$ac_cv_header_fca_fca_api_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_FCA_FCA_API_H 1 +_ACEOF + opal_check_package_header_happy="yes" +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/oshmem/mca/memheap/$component/post_configure.sh" +done - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + if test "$opal_check_package_header_happy" = "yes"; then : - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "memheap" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/memheap/$component/lib${OSHMEM_LIB_PREFIX}mca_memheap_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/memheap/$component/libmca_memheap_$component.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_memheap_$component_component;" >> $outfile.extern - echo " &mca_memheap_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memheap:$component can compile" >&5 -$as_echo_n "checking if MCA component memheap:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_memheap" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_oshmem_memheap_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** memheap component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_memheap" = "$component" ; then -as_fn_error $? "*** memheap component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + # see comment above + unset ac_cv_search_fca_get_version + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + scoll_fca_LDFLAGS="$scoll_fca_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 +$as_echo_n "checking for library containing fca_get_version... " >&6; } +if ${ac_cv_search_fca_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$memheap_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fca_get_version (); +int +main () +{ +return fca_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_fca_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fca_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fca_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_fca_get_version+:} false; then : + +else + ac_cv_search_fca_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 +$as_echo "$ac_cv_search_fca_get_version" >&6; } +ac_res=$ac_cv_search_fca_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" + scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" + unset ac_cv_search_fca_get_version +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_fca_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 +$as_echo_n "checking for library containing fca_get_version... " >&6; } +if ${ac_cv_search_fca_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fca_get_version (); +int +main () +{ +return fca_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_fca_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fca_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fca_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_fca_get_version+:} false; then : + +else + ac_cv_search_fca_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 +$as_echo "$ac_cv_search_fca_get_version" >&6; } +ac_res=$ac_cv_search_fca_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" + scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" + unset ac_cv_search_fca_get_version +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + scoll_fca_LDFLAGS="$scoll_fca_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 +$as_echo_n "checking for library containing fca_get_version... " >&6; } +if ${ac_cv_search_fca_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fca_get_version (); +int +main () +{ +return fca_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_fca_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fca_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fca_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_fca_get_version+:} false; then : + +else + ac_cv_search_fca_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 +$as_echo "$ac_cv_search_fca_get_version" >&6; } +ac_res=$ac_cv_search_fca_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" + scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" + unset ac_cv_search_fca_get_version +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + scoll_fca_LDFLAGS="$scoll_fca_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 +$as_echo_n "checking for library containing fca_get_version... " >&6; } +if ${ac_cv_search_fca_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fca_get_version (); +int +main () +{ +return fca_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_fca_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fca_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fca_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_fca_get_version+:} false; then : + +else + ac_cv_search_fca_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 +$as_echo "$ac_cv_search_fca_get_version" >&6; } +ac_res=$ac_cv_search_fca_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi + + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" + scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" + unset ac_cv_search_fca_get_version +fi +fi +fi +fi + + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -356966,7 +383329,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -356985,56 +383348,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - -str="line=\$memheap_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + opal_libnl_sane=1 + case $host in + *linux*) @@ -357047,7 +383370,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -357066,7 +383389,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -357074,407 +383397,651 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $line; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lib$ompi_check_fca_libs requires libnl v1 or v3" >&5 +$as_echo_n "checking if lib$ompi_check_fca_libs requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void fca_get_version (void); +int main(int argc, char *argv[]) { + fca_get_version (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:383424: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_fca_libs $LIBS $scoll_fca_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_fca_libs $LIBS $scoll_fca_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:383431: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib $ompi_check_fca_libs" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib $ompi_check_fca_libs" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, lib$ompi_check_fca_libs links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, lib$ompi_check_fca_libs links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_fca_libs requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_fca_libs requires libnl" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs $ompi_check_fca_libs" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones - fi +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - else + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component memheap:$component can compile" >&5 -$as_echo_n "checking if MCA component memheap:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - # If this component was requested as the default for this - # type, then abort. - if test "$with_memheap" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Check the ending condition - if test ! -z "$DIRECT_memheap" ; then - if test "$DIRECT_memheap" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + opal_done="`expr $opal_i \>= $opal_count`" - fi - fi + # Increment the counter + + opal_i="`expr $opal_i + 1`" done -fi + # If we didn't find the token, add it to the "array" - MCA_oshmem_memheap_ALL_COMPONENTS="$all_components" - MCA_oshmem_memheap_STATIC_COMPONENTS="$static_components" - MCA_oshmem_memheap_DSO_COMPONENTS="$dso_components" - MCA_oshmem_memheap_STATIC_LTLIBS="$static_ltlibs" + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done +# Done; do the assignment +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval +# Clean up - MCA_oshmem_memheap_ALL_SUBDIRS= - for item in $all_components ; do - MCA_oshmem_memheap_ALL_SUBDIRS="$MCA_oshmem_memheap_ALL_SUBDIRS mca/memheap/$item" - done +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 +fi +fi + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_fca_libs requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_fca_libs requires libnl-3" >&2;} - MCA_oshmem_memheap_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_oshmem_memheap_STATIC_SUBDIRS="$MCA_oshmem_memheap_STATIC_SUBDIRS mca/memheap/$item" - done + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} + libnl_sane=0 +else + opal_libnlv3_libs="$opal_libnlv3_libs $ompi_check_fca_libs" +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs - MCA_oshmem_memheap_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_oshmem_memheap_DSO_SUBDIRS="$MCA_oshmem_memheap_DSO_SUBDIRS mca/memheap/$item" - done +# Go through each item in the variable and only keep the unique ones +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "memheap" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern + opal_done="`expr $opal_i \>= $opal_count`" - unset all_components static_components dso_components outfile outfile_real + # Increment the counter + opal_i="`expr $opal_i + 1`" + done - # this is a direct callable component, so set that up. + # If we didn't find the token, add it to the "array" - if test ! -z "$DIRECT_memheap" ; then - MCA_oshmem_memheap_DIRECT_CALL_COMPONENT=$DIRECT_memheap - MCA_oshmem_memheap_DIRECT_CALL=1 + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" else - MCA_oshmem_memheap_DIRECT_CALL_COMPONENT= - MCA_oshmem_memheap_DIRECT_CALL=0 + opal_i="`expr $opal_i - 1`" fi +done +# Take all the items in the "array" and assemble them back into a +# single variable +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval -cat >>confdefs.h <<_ACEOF -#define MCA_oshmem_memheap_DIRECT_CALL $MCA_oshmem_memheap_DIRECT_CALL -_ACEOF + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done -cat >>confdefs.h <<_ACEOF -#define MCA_oshmem_memheap_DIRECT_CALL_COMPONENT $MCA_oshmem_memheap_DIRECT_CALL_COMPONENT -_ACEOF +# Done; do the assignment +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval -cat >>confdefs.h <<_ACEOF -#define MCA_oshmem_memheap_DIRECT_CALL_HEADER "$MCA_oshmem_memheap_DIRECT_CALL_HEADER" -_ACEOF +# Clean up +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 +fi +fi - MCA_oshmem_FRAMEWORKS="$MCA_oshmem_FRAMEWORKS scoll" - MCA_oshmem_FRAMEWORKS_SUBDIRS="$MCA_oshmem_FRAMEWORKS_SUBDIRS mca/scoll" - MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_oshmem_scoll_ALL_SUBDIRS)" - MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_oshmem_scoll_DSO_SUBDIRS)" - MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_oshmem_scoll_STATIC_SUBDIRS)" - MCA_oshmem_FRAMEWORK_LIBS="$MCA_oshmem_FRAMEWORK_LIBS mca/scoll/libmca_scoll.la" - MCA_oshmem_FRAMEWORK_LIBS="$MCA_oshmem_FRAMEWORK_LIBS \$(MCA_oshmem_scoll_STATIC_LTLIBS)" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - opal_show_subsubtitle "Configuring MCA framework scoll" + rm -f conftest conftest_c.$ac_ext + opal_libnl_sane=$libnl_sane + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=oshmem/mca/scoll/base - as_dir=$outdir; as_fn_mkdir_p + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # emit Makefile rule - ac_config_files="$ac_config_files oshmem/mca/scoll/Makefile" + ;; + esac - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern + opal_check_package_libnl_check_ok=$opal_libnl_sane - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework scoll" >&5 -$as_echo_n "checking for no configure components in framework scoll... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: basic, mpi" >&5 -$as_echo "basic, mpi" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework scoll" >&5 -$as_echo_n "checking for m4 configure components in framework scoll... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: fca" >&5 -$as_echo "fca" >&6; } + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done - # run the configure logic for the no-config components + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - opal_show_subsubsubtitle "MCA component scoll:basic (no configuration)" +fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_fca_get_version" != "no" && + test "$ac_cv_search_fca_get_version" != "none required"; then : + scoll_fca_LIBS="$ac_cv_search_fca_get_version " +else + scoll_fca_LIBS="" +fi + opal_check_package_happy="yes" +else + opal_check_package_happy="no" +fi +else + opal_check_package_happy="no" +fi +else - component_path="$srcdir/oshmem/mca/scoll/basic" - want_component=0 + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_scoll" ; then - if test "$DIRECT_scoll" = "basic" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - # if we were explicitly disabled, don't build :) - if test "$DISABLE_scoll" = "1"; then : - want_component=0 + # see comment above + unset ac_cv_search_fca_get_version + opal_check_package_lib_happy="no" + if test "" != ""; then : + # libdir was specified - search only there + scoll_fca_LDFLAGS="$scoll_fca_LDFLAGS -L" + LDFLAGS="$LDFLAGS -L" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 +$as_echo_n "checking for library containing fca_get_version... " >&6; } +if ${ac_cv_search_fca_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fca_get_version (); +int +main () +{ +return fca_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_fca_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fca_get_version=$ac_res fi - if test "$DISABLE_scoll_basic" = "1"; then : - want_component=0 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fca_get_version+:} false; then : + break fi +done +if ${ac_cv_search_fca_get_version+:} false; then : - if test "$want_component" = "1"; then : - should_build=1 else - should_build=0 + ac_cv_search_fca_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 +$as_echo "$ac_cv_search_fca_get_version" >&6; } +ac_res=$ac_cv_search_fca_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" fi + if test "$opal_check_package_lib_happy" = "no"; then : + LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" + scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" + unset ac_cv_search_fca_get_version +fi +else + # libdir was not specified - go through search path + opal_check_package_libdir="$ompi_check_fca_dir" + if test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 +$as_echo_n "checking for library containing fca_get_version... " >&6; } +if ${ac_cv_search_fca_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - SHARED_FRAMEWORK="$DSO_scoll" - SHARED_COMPONENT="$DSO_scoll_basic" - - STATIC_FRAMEWORK="$STATIC_scoll" - STATIC_COMPONENT="$STATIC_scoll_basic" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fca_get_version (); +int +main () +{ +return fca_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_fca_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fca_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fca_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_fca_get_version+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component scoll:basic compile mode" >&5 -$as_echo_n "checking for MCA component scoll:basic compile mode... " >&6; } - if test "$DIRECT_scoll" = "basic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi +else + ac_cv_search_fca_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 +$as_echo "$ac_cv_search_fca_get_version" >&6; } +ac_res=$ac_cv_search_fca_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" + scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" + unset ac_cv_search_fca_get_version +fi +fi - if test "$should_build" = "1" ; then + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + scoll_fca_LDFLAGS="$scoll_fca_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 +$as_echo "looking for library in lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 +$as_echo_n "checking for library containing fca_get_version... " >&6; } +if ${ac_cv_search_fca_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fca_get_version (); +int +main () +{ +return fca_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_fca_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fca_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fca_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_fca_get_version+:} false; then : +else + ac_cv_search_fca_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 +$as_echo "$ac_cv_search_fca_get_version" >&6; } +ac_res=$ac_cv_search_fca_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/oshmem/mca/scoll/basic/post_configure.sh" + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" + scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" + unset ac_cv_search_fca_get_version +fi +fi +fi - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components basic" + if test "$opal_check_package_lib_happy" = "no"; then : + if test "$opal_check_package_libdir" != ""; then : + scoll_fca_LDFLAGS="$scoll_fca_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 +$as_echo "looking for library in lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 +$as_echo_n "checking for library containing fca_get_version... " >&6; } +if ${ac_cv_search_fca_get_version+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components basic" - else - if test "scoll" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/scoll/basic/lib${OSHMEM_LIB_PREFIX}mca_scoll_basic.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/scoll/basic/libmca_scoll_basic.la $static_ltlibs" - fi - echo "extern const mca_base_component_t mca_scoll_basic_component;" >> $outfile.extern - echo " &mca_scoll_basic_component, " >> $outfile.struct - static_components="$static_components basic" - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fca_get_version (); +int +main () +{ +return fca_get_version (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $ompi_check_fca_libs; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_fca_get_version=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_fca_get_version+:} false; then : + break +fi +done +if ${ac_cv_search_fca_get_version+:} false; then : - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component scoll:basic can compile" >&5 -$as_echo_n "checking if MCA component scoll:basic can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else + ac_cv_search_fca_get_version=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 +$as_echo "$ac_cv_search_fca_get_version" >&6; } +ac_res=$ac_cv_search_fca_get_version +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + opal_check_package_lib_happy="yes" +else + opal_check_package_lib_happy="no" +fi - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_scoll" = "basic" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_oshmem_scoll_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** scoll component basic was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_scoll" = "basic" ; then -as_fn_error $? "*** scoll component basic was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + if test "$opal_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" + scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" + unset ac_cv_search_fca_get_version +fi +fi +fi +fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$scoll_basic_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$opal_check_package_lib_happy" = "yes"; then : + # libnl v1 and libnl3 are known to *not* coexist + # harmoniously in the same process. Check to see if this + # new package will introduce such a conflict. @@ -357487,7 +384054,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in opal_libnl_sane; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -357506,56 +384073,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"opal_libnl_sane\"" eval $opal_str unset opal_str env | grep opal_scope opal_scope_index=`expr $opal_scope_index + 1` - - for arg in $scoll_basic_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 -fi - done -fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str - - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done - - -else + opal_libnl_sane=1 + case $host in + *linux*) @@ -357568,7 +384095,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do + for opal_var in this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -357587,7 +384114,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" + opal_str="opal_scope_$opal_scope_index=\"this_requires_v1 libnl_sane this_requires_v3 ldd_output result_msg\"" eval $opal_str unset opal_str @@ -357595,106 +384122,276 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $scoll_basic_WRAPPER_EXTRA_LDFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lib$ompi_check_fca_libs requires libnl v1 or v3" >&5 +$as_echo_n "checking if lib$ompi_check_fca_libs requires libnl v1 or v3... " >&6; } + cat > conftest_c.$ac_ext << EOF +extern void fca_get_version (void); +int main(int argc, char *argv[]) { + fca_get_version (); + return 0; +} +EOF + + this_requires_v1=0 + this_requires_v3=0 + result_msg= + +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:384149: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_fca_libs $LIBS $scoll_fca_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_fca_libs $LIBS $scoll_fca_LIBS 1>&5 2>&1 +opal_status=$? + +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:384156: \$? = $opal_status" >&5 +else + echo \$? = $opal_status >&5 fi - done +if test "$opal_status" = "0"; then + unset opal_status + ldd_output=`ldd conftest` + if echo $ldd_output | grep -q libnl-3.so; then : + this_requires_v3=1 + result_msg="v3" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if echo $ldd_output | grep -q libnl.so; then : + this_requires_v1=1 + result_msg="v1 $result_msg" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result_msg" >&5 +$as_echo "$result_msg" >&6; } + else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + unset opal_status + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib $ompi_check_fca_libs" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib $ompi_check_fca_libs" >&2;} + fi + + # Assume that our configuration is sane; this may get reset below + libnl_sane=1 + + # Note: in all the checks below, only add this library to the list + # of libraries (for v1 or v3 as relevant) if we do not fail. + # I.e., assume that a higher level will refuse to use this library + # if we return failure. + + # Does this library require both v1 and v3? If so, fail. + if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, lib$ompi_check_fca_libs links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, lib$ompi_check_fca_libs links to both libnl and libnl-3." >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} + + libnl_sane=0 fi - done + # Does this library require v1, but some prior library required + # v3? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : + if test $opal_libnl_version -eq 3; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_fca_libs requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_fca_libs requires libnl" >&2;} - # Unwind the index - opal_scope_index=`expr $opal_scope_index - 1` - opal_scope_test=`expr $opal_scope_index \> 0` - if test "$opal_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} - # Get the variable names from that index - opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" - eval $opal_str + libnl_sane=0 +else + opal_libnlv1_libs="$opal_libnlv1_libs $ompi_check_fca_libs" - # Iterate over all the variables and unset them all - for opal_var in $opal_str; do - unset $opal_var - done +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv1_libs +# Go through each item in the variable and only keep the unique ones -fi - if test "$scoll_basic_WRAPPER_EXTRA_LIBS" = ""; then : +opal_count=0 +for val in ${opal_libnlv1_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + # Loop over every token we've seen so far + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + # If we didn't find the token, add it to the "array" - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done +# Take all the items in the "array" and assemble them back into a +# single variable - for arg in $scoll_basic_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=1 fi - done + fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + # Does this library require v3, but some prior library required + # v1? If so, fail. + if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : + if test $opal_libnl_version -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_fca_libs requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_fca_libs requires libnl-3" >&2;} + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 +$as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} + + libnl_sane=0 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_libnlv3_libs="$opal_libnlv3_libs $ompi_check_fca_libs" + +# 1 is the variable name to be uniq-ized +opal_name=opal_libnlv3_libs + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${opal_libnlv3_libs}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count + opal_libnl_version=3 fi + fi - done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + rm -f conftest conftest_c.$ac_ext + + opal_libnl_sane=$libnl_sane # Unwind the index @@ -357718,64 +384415,54 @@ done -else - + ;; + esac + opal_check_package_libnl_check_ok=$opal_libnl_sane - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&5 +$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_POP popped too many OPAL configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str - - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + if test $opal_check_package_libnl_check_ok -eq 0; then : + opal_check_package_lib_happy=no +fi - for arg in $scoll_basic_WRAPPER_EXTRA_LIBS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - opal_append=0 fi - done + + if test "$opal_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_fca_get_version" != "no" && + test "$ac_cv_search_fca_get_version" != "none required"; then : + scoll_fca_LIBS="$ac_cv_search_fca_get_version " +else + scoll_fca_LIBS="" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + opal_check_package_happy="yes" else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + opal_check_package_happy="no" fi + + fi - done + unset opal_check_package_header_happy # Unwind the index @@ -357799,74 +384486,42 @@ done -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$scoll_basic_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$opal_scope_index" = "x"; then - opal_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for opal_var in opal_tmp opal_append; do - opal_str="opal_str=\"\$$opal_var\"" - eval $opal_str - - if test "x$opal_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash at line $LINENO!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash at line $LINENO!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&5 -$as_echo "$as_me: WARNING: OPAL_VAR_SCOPE_PUSH called on \"$opal_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$opal_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$opal_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"opal_tmp opal_append\"" - eval $opal_str - unset opal_str + if test "$opal_check_package_happy" = "yes"; then : + ompi_check_fca_happy="yes" +else + scoll_fca_CPPFLAGS="$opal_check_package_scoll_fca_orig_CPPFLAGS" + scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" + scoll_fca_LIBS="$opal_check_package_scoll_fca_orig_LIBS" + ompi_check_fca_happy="no" +fi - env | grep opal_scope - opal_scope_index=`expr $opal_scope_index + 1` + CPPFLAGS="$opal_check_package_scoll_fca_save_CPPFLAGS" + LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" + LIBS="$opal_check_package_scoll_fca_save_LIBS" - for arg in $scoll_basic_WRAPPER_EXTRA_CPPFLAGS; do - opal_tmp=`echo $arg | cut -c1-2` - opal_append=1 - if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - opal_append=0 + CPPFLAGS=$CPPFLAGS_save + LDFLAGS=$LDFLAGS_save + LIBS=$LIBS_save +else + ompi_check_fca_happy="no" fi - done + + if test "$ompi_check_fca_happy" = "yes" && test "$enable_progress_threads" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: fca driver does not currently support progress threads. Disabling FCA." >&5 +$as_echo "$as_me: WARNING: fca driver does not currently support progress threads. Disabling FCA." >&2;} + ompi_check_fca_happy="no" fi - if test "$opal_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + + if test "$ompi_check_fca_happy" = "yes"; then : + scoll_fca_happy="yes" else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + if test ! -z "$with_fca" && test "$with_fca" != "no"; then : + as_fn_error $? "FCA support requested but not found. Aborting" "$LINENO" 5 fi + scoll_fca_happy="no" fi - done # Unwind the index @@ -357890,205 +384545,71 @@ done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring scoll_basic_WRAPPER_EXTRA_CPPFLAGS ($scoll_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring scoll_basic_WRAPPER_EXTRA_CPPFLAGS ($scoll_basic_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component scoll:basic can compile" >&5 -$as_echo_n "checking if MCA component scoll:basic can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_scoll" = "basic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_scoll" ; then - if test "$DIRECT_scoll" = "basic" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"basic\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"basic\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components basic" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_oshmem_scoll_basic_DSO=1 - else - BUILD_oshmem_scoll_basic_DSO=0 - fi - if test "$BUILD_oshmem_scoll_basic_DSO" = "1"; then - MCA_BUILD_oshmem_scoll_basic_DSO_TRUE= - MCA_BUILD_oshmem_scoll_basic_DSO_FALSE='#' -else - MCA_BUILD_oshmem_scoll_basic_DSO_TRUE='#' - MCA_BUILD_oshmem_scoll_basic_DSO_FALSE= -fi - - - ac_config_files="$ac_config_files oshmem/mca/scoll/basic/Makefile" - - - unset compile_mode - - opal_show_subsubsubtitle "MCA component scoll:mpi (no configuration)" - - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - - - component_path="$srcdir/oshmem/mca/scoll/mpi" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no opal_ignore file - # - there is an opal_ignore, but there is an empty opal_unignore - # - there is an opal_ignore, but username is in opal_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.opal_ignore ; then - # If there is an opal_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.opal_unignore ; then - # if there is an empty opal_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.opal_unignore ; then - want_component=1 - elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.opal_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_scoll" ; then - if test "$DIRECT_scoll" = "mpi" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_scoll" = "1"; then : - want_component=0 -fi - if test "$DISABLE_scoll_mpi" = "1"; then : - want_component=0 -fi - if test "$want_component" = "1"; then : - should_build=1 + if test "$scoll_fca_happy" = "yes"; then : + scoll_fca_WRAPPER_EXTRA_LDFLAGS="$scoll_fca_LDFLAGS" + scoll_fca_CPPFLAGS="$scoll_fca_CPPFLAGS" + scoll_fca_WRAPPER_EXTRA_LIBS="$scoll_fca_LIBS" + should_build=$should_build else should_build=0 fi + # substitute in the things needed to build fca - SHARED_FRAMEWORK="$DSO_scoll" - SHARED_COMPONENT="$DSO_scoll_mpi" - STATIC_FRAMEWORK="$STATIC_scoll" - STATIC_COMPONENT="$STATIC_scoll_mpi" - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + scoll_fca_HOME="$ompi_check_fca_dir" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component scoll:mpi compile mode" >&5 -$as_echo_n "checking for MCA component scoll:mpi compile mode... " >&6; } - if test "$DIRECT_scoll" = "mpi" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - opal_show_verbose "OPAL_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/oshmem/mca/scoll/mpi/post_configure.sh" + infile="$srcdir/oshmem/mca/scoll/fca/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components mpi" + all_components="$all_components fca" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components mpi" + dso_components="$dso_components fca" else if test "scoll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/scoll/mpi/lib${OSHMEM_LIB_PREFIX}mca_scoll_mpi.la $static_ltlibs" + static_ltlibs="mca/scoll/fca/lib${OSHMEM_LIB_PREFIX}mca_scoll_fca.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/scoll/mpi/libmca_scoll_mpi.la $static_ltlibs" + static_ltlibs="mca/scoll/fca/libmca_scoll_fca.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_scoll_mpi_component;" >> $outfile.extern - echo " &mca_scoll_mpi_component, " >> $outfile.struct - static_components="$static_components mpi" + echo "extern const mca_base_component_t mca_scoll_fca_component;" >> $outfile.extern + echo " &mca_scoll_fca_component, " >> $outfile.struct + static_components="$static_components fca" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component scoll:mpi can compile" >&5 -$as_echo_n "checking if MCA component scoll:mpi can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component scoll:fca can compile" >&5 +$as_echo_n "checking if MCA component scoll:fca can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_scoll" = "mpi" ; then + if test "$DIRECT_scoll" = "fca" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_oshmem_scoll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** scoll component mpi was supposed to be direct-called, but +as_fn_error $? "*** scoll component fca was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -358096,8 +384617,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_scoll" = "mpi" ; then -as_fn_error $? "*** scoll component mpi was supposed to be direct-called, but + if test "$DIRECT_scoll" = "fca" ; then +as_fn_error $? "*** scoll component fca was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -358112,7 +384633,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$scoll_mpi_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$scoll_fca_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -358152,7 +384673,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $scoll_mpi_LDFLAGS; do + for arg in $scoll_fca_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -358233,7 +384754,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $scoll_mpi_WRAPPER_EXTRA_LDFLAGS; do + for arg in $scoll_fca_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -358275,7 +384796,7 @@ fi - if test "$scoll_mpi_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$scoll_fca_WRAPPER_EXTRA_LIBS" = ""; then : @@ -358315,7 +384836,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $scoll_mpi_LIBS; do + for arg in $scoll_fca_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -358396,7 +384917,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $scoll_mpi_WRAPPER_EXTRA_LIBS; do + for arg in $scoll_fca_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -358444,7 +384965,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$scoll_mpi_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$scoll_fca_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -358487,7 +385008,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $scoll_mpi_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $scoll_fca_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -358530,79 +385051,78 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring scoll_mpi_WRAPPER_EXTRA_CPPFLAGS ($scoll_mpi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring scoll_mpi_WRAPPER_EXTRA_CPPFLAGS ($scoll_mpi_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring scoll_fca_WRAPPER_EXTRA_CPPFLAGS ($scoll_fca_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring scoll_fca_WRAPPER_EXTRA_CPPFLAGS ($scoll_fca_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi - else +else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component scoll:mpi can compile" >&5 -$as_echo_n "checking if MCA component scoll:mpi can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component scoll:fca can compile" >&5 +$as_echo_n "checking if MCA component scoll:fca can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_scoll" = "mpi" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"mpi\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"mpi\" failed to configure properly" >&2;} + if test "$with_scoll" = "fca" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"fca\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"fca\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_scoll" ; then - if test "$DIRECT_scoll" = "mpi" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"mpi\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"mpi\" failed to configure properly" >&2;} + if test "$DIRECT_scoll" = "fca" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"fca\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"fca\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components mpi" - fi + # add component to all component list + all_components="$all_components fca" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_oshmem_scoll_mpi_DSO=1 - else - BUILD_oshmem_scoll_mpi_DSO=0 - fi - if test "$BUILD_oshmem_scoll_mpi_DSO" = "1"; then - MCA_BUILD_oshmem_scoll_mpi_DSO_TRUE= - MCA_BUILD_oshmem_scoll_mpi_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_oshmem_scoll_fca_DSO=1 else - MCA_BUILD_oshmem_scoll_mpi_DSO_TRUE='#' - MCA_BUILD_oshmem_scoll_mpi_DSO_FALSE= + BUILD_oshmem_scoll_fca_DSO=0 +fi + if test "$BUILD_oshmem_scoll_fca_DSO" = "1"; then + MCA_BUILD_oshmem_scoll_fca_DSO_TRUE= + MCA_BUILD_oshmem_scoll_fca_DSO_FALSE='#' +else + MCA_BUILD_oshmem_scoll_fca_DSO_TRUE='#' + MCA_BUILD_oshmem_scoll_fca_DSO_FALSE= fi - ac_config_files="$ac_config_files oshmem/mca/scoll/mpi/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - # configure components that use built-in configuration scripts - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - opal_show_subsubsubtitle "MCA component scoll:fca (m4 configuration macro)" + opal_show_subsubsubtitle "MCA component scoll:ucc (m4 configuration macro)" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/oshmem/mca/scoll/fca" + component_path="$srcdir/oshmem/mca/scoll/ucc" want_component=0 # build if: @@ -358635,7 +385155,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_scoll" ; then - if test "$DIRECT_scoll" = "fca" ; then + if test "$DIRECT_scoll" = "ucc" ; then want_component=1 else want_component=0 @@ -358647,7 +385167,7 @@ if test "$DISABLE_scoll" = "1"; then : want_component=0 fi - if test "$DISABLE_scoll_fca" = "1"; then : + if test "$DISABLE_scoll_ucc" = "1"; then : want_component=0 fi @@ -358661,10 +385181,10 @@ # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE SHARED_FRAMEWORK="$DSO_scoll" - SHARED_COMPONENT="$DSO_scoll_fca" + SHARED_COMPONENT="$DSO_scoll_ucc" STATIC_FRAMEWORK="$STATIC_scoll" - STATIC_COMPONENT="$STATIC_scoll_fca" + STATIC_COMPONENT="$STATIC_scoll_ucc" shared_mode_override=static @@ -358682,9 +385202,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component scoll:fca compile mode" >&5 -$as_echo_n "checking for MCA component scoll:fca compile mode... " >&6; } - if test "$DIRECT_scoll" = "fca" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component scoll:ucc compile mode" >&5 +$as_echo_n "checking for MCA component scoll:ucc compile mode... " >&6; } + if test "$DIRECT_scoll" = "ucc" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -358695,7 +385215,7 @@ # try to configure the component - ac_config_files="$ac_config_files oshmem/mca/scoll/fca/Makefile" + ac_config_files="$ac_config_files oshmem/mca/scoll/ucc/Makefile" @@ -358710,7 +385230,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for opal_var in ompi_check_fca_libs ompi_check_fca_happy CPPFLAGS_save LDFLAGS_save LIBS_save; do + for opal_var in ompi_check_ucc_dir ompi_check_ucc_happy CPPFLAGS_save LDFLAGS_save LIBS_save; do opal_str="opal_str=\"\$$opal_var\"" eval $opal_str @@ -358729,7 +385249,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - opal_str="opal_scope_$opal_scope_index=\"ompi_check_fca_libs ompi_check_fca_happy CPPFLAGS_save LDFLAGS_save LIBS_save\"" + opal_str="opal_scope_$opal_scope_index=\"ompi_check_ucc_dir ompi_check_ucc_happy CPPFLAGS_save LDFLAGS_save LIBS_save\"" eval $opal_str unset opal_str @@ -358738,21 +385258,15 @@ -# Check whether --with-fca was given. -if test "${with_fca+set}" = set; then : - withval=$with_fca; +# Check whether --with-ucc was given. +if test "${with_ucc+set}" = set; then : + withval=$with_ucc; fi - if test "$with_fca" != "no"; then : - ompi_check_fca_libs=fca - if test ! -z "$with_fca" && test "$with_fca" != "yes"; then : - ompi_check_fca_dir=$with_fca - coll_fca_HOME="$ompi_check_fca_dir" - -else - coll_fca_HOME="/" - + if test "$with_ucc" != "no"; then : + if test -n "$with_ucc" && test "$with_ucc" != "yes"; then : + ompi_check_ucc_dir=$with_ucc fi CPPFLAGS_save=$CPPFLAGS @@ -358760,39 +385274,38 @@ LIBS_save=$LIBS - # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:358767: scoll_fca_CPPFLAGS : $scoll_fca_CPPFLAGS" >&5 + echo "configure:385280: scoll_ucc_CPPFLAGS : $scoll_ucc_CPPFLAGS" >&5 else - echo scoll_fca_CPPFLAGS : $scoll_fca_CPPFLAGS >&5 + echo scoll_ucc_CPPFLAGS : $scoll_ucc_CPPFLAGS >&5 fi # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:358775: scoll_fca_LDFLAGS : $scoll_fca_LDFLAGS" >&5 + echo "configure:385288: scoll_ucc_LDFLAGS : $scoll_ucc_LDFLAGS" >&5 else - echo scoll_fca_LDFLAGS : $scoll_fca_LDFLAGS >&5 + echo scoll_ucc_LDFLAGS : $scoll_ucc_LDFLAGS >&5 fi # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:358783: scoll_fca_LIBS : $scoll_fca_LIBS" >&5 + echo "configure:385296: scoll_ucc_LIBS : $scoll_ucc_LIBS" >&5 else - echo scoll_fca_LIBS : $scoll_fca_LIBS >&5 + echo scoll_ucc_LIBS : $scoll_ucc_LIBS >&5 fi - opal_check_package_scoll_fca_save_CPPFLAGS="$CPPFLAGS" - opal_check_package_scoll_fca_save_LDFLAGS="$LDFLAGS" - opal_check_package_scoll_fca_save_LIBS="$LIBS" + opal_check_package_scoll_ucc_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_scoll_ucc_save_LDFLAGS="$LDFLAGS" + opal_check_package_scoll_ucc_save_LIBS="$LIBS" - opal_check_package_scoll_fca_orig_CPPFLAGS="$scoll_fca_CPPFLAGS" - opal_check_package_scoll_fca_orig_LDFLAGS="$scoll_fca_LDFLAGS" - opal_check_package_scoll_fca_orig_LIBS="$scoll_fca_LIBS" + opal_check_package_scoll_ucc_orig_CPPFLAGS="$scoll_ucc_CPPFLAGS" + opal_check_package_scoll_ucc_orig_LDFLAGS="$scoll_ucc_LDFLAGS" + opal_check_package_scoll_ucc_orig_LIBS="$scoll_ucc_LIBS" # This is stolen from autoconf to peek under the covers to get the @@ -358840,22 +385353,22 @@ # so this sucks, but there's no way to get through the progression # of header includes without killing off the cache variable and trying # again... - unset ac_cv_header_fca_fca_api_h + unset ac_cv_header_ucc_api_ucc_h # get rid of the trailing slash(es) - dir_prefix=$(echo $ompi_check_fca_dir | sed -e 'sX/*$XXg') + dir_prefix=$(echo $ompi_check_ucc_dir | sed -e 'sX/*$XXg') opal_check_package_header_happy="no" if test "$dir_prefix" = "/usr" || \ test "$dir_prefix" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 $as_echo "looking for header without includes" >&6; } - for ac_header in fca/fca_api.h + for ac_header in ucc/api/ucc.h do : - ac_fn_c_check_header_mongrel "$LINENO" "fca/fca_api.h" "ac_cv_header_fca_fca_api_h" "$ac_includes_default" -if test "x$ac_cv_header_fca_fca_api_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "ucc/api/ucc.h" "ac_cv_header_ucc_api_ucc_h" "$ac_includes_default" +if test "x$ac_cv_header_ucc_api_ucc_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_FCA_FCA_API_H 1 +#define HAVE_UCC_API_UCC_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -358864,21 +385377,21 @@ if test "$opal_check_package_header_happy" = "no"; then : # no go on the as is - reset the cache and try again - unset ac_cv_header_fca_fca_api_h + unset ac_cv_header_ucc_api_ucc_h fi fi if test "$opal_check_package_header_happy" = "no"; then : if test "$dir_prefix" != ""; then : - scoll_fca_CPPFLAGS="$scoll_fca_CPPFLAGS -I$dir_prefix/include" + scoll_ucc_CPPFLAGS="$scoll_ucc_CPPFLAGS -I$dir_prefix/include" CPPFLAGS="$CPPFLAGS -I$dir_prefix/include" fi - for ac_header in fca/fca_api.h + for ac_header in ucc/api/ucc.h do : - ac_fn_c_check_header_mongrel "$LINENO" "fca/fca_api.h" "ac_cv_header_fca_fca_api_h" "$ac_includes_default" -if test "x$ac_cv_header_fca_fca_api_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "ucc/api/ucc.h" "ac_cv_header_ucc_api_ucc_h" "$ac_includes_default" +if test "x$ac_cv_header_ucc_api_ucc_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_FCA_FCA_API_H 1 +#define HAVE_UCC_API_UCC_H 1 _ACEOF opal_check_package_header_happy="yes" fi @@ -358893,15 +385406,15 @@ # see comment above - unset ac_cv_search_fca_get_version + unset ac_cv_search_ucc_init_version opal_check_package_lib_happy="no" if test "" != ""; then : # libdir was specified - search only there - scoll_fca_LDFLAGS="$scoll_fca_LDFLAGS -L" + scoll_ucc_LDFLAGS="$scoll_ucc_LDFLAGS -L" LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 -$as_echo_n "checking for library containing fca_get_version... " >&6; } -if ${ac_cv_search_fca_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucc_init_version" >&5 +$as_echo_n "checking for library containing ucc_init_version... " >&6; } +if ${ac_cv_search_ucc_init_version+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -358914,16 +385427,16 @@ #ifdef __cplusplus extern "C" #endif -char fca_get_version (); +char ucc_init_version (); int main () { -return fca_get_version (); +return ucc_init_version (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_fca_libs; do +for ac_lib in '' ucc; do if test -z "$ac_lib"; then ac_res="none required" else @@ -358931,25 +385444,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fca_get_version=$ac_res + ac_cv_search_ucc_init_version=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fca_get_version+:} false; then : + if ${ac_cv_search_ucc_init_version+:} false; then : break fi done -if ${ac_cv_search_fca_get_version+:} false; then : +if ${ac_cv_search_ucc_init_version+:} false; then : else - ac_cv_search_fca_get_version=no + ac_cv_search_ucc_init_version=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 -$as_echo "$ac_cv_search_fca_get_version" >&6; } -ac_res=$ac_cv_search_fca_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucc_init_version" >&5 +$as_echo "$ac_cv_search_ucc_init_version" >&6; } +ac_res=$ac_cv_search_ucc_init_version if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -358958,22 +385471,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" - scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" - unset ac_cv_search_fca_get_version + LDFLAGS="$opal_check_package_scoll_ucc_save_LDFLAGS" + scoll_ucc_LDFLAGS="$opal_check_package_scoll_ucc_orig_LDFLAGS" + unset ac_cv_search_ucc_init_version fi else # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_fca_dir" + opal_check_package_libdir="$ompi_check_ucc_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 -$as_echo_n "checking for library containing fca_get_version... " >&6; } -if ${ac_cv_search_fca_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucc_init_version" >&5 +$as_echo_n "checking for library containing ucc_init_version... " >&6; } +if ${ac_cv_search_ucc_init_version+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -358986,16 +385499,16 @@ #ifdef __cplusplus extern "C" #endif -char fca_get_version (); +char ucc_init_version (); int main () { -return fca_get_version (); +return ucc_init_version (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_fca_libs; do +for ac_lib in '' ucc; do if test -z "$ac_lib"; then ac_res="none required" else @@ -359003,25 +385516,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fca_get_version=$ac_res + ac_cv_search_ucc_init_version=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fca_get_version+:} false; then : + if ${ac_cv_search_ucc_init_version+:} false; then : break fi done -if ${ac_cv_search_fca_get_version+:} false; then : +if ${ac_cv_search_ucc_init_version+:} false; then : else - ac_cv_search_fca_get_version=no + ac_cv_search_ucc_init_version=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 -$as_echo "$ac_cv_search_fca_get_version" >&6; } -ac_res=$ac_cv_search_fca_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucc_init_version" >&5 +$as_echo "$ac_cv_search_ucc_init_version" >&6; } +ac_res=$ac_cv_search_ucc_init_version if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -359031,21 +385544,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" - scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" - unset ac_cv_search_fca_get_version + LDFLAGS="$opal_check_package_scoll_ucc_save_LDFLAGS" + scoll_ucc_LDFLAGS="$opal_check_package_scoll_ucc_orig_LDFLAGS" + unset ac_cv_search_ucc_init_version fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - scoll_fca_LDFLAGS="$scoll_fca_LDFLAGS -L$opal_check_package_libdir/lib" + scoll_ucc_LDFLAGS="$scoll_ucc_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 -$as_echo_n "checking for library containing fca_get_version... " >&6; } -if ${ac_cv_search_fca_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucc_init_version" >&5 +$as_echo_n "checking for library containing ucc_init_version... " >&6; } +if ${ac_cv_search_ucc_init_version+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -359058,16 +385571,16 @@ #ifdef __cplusplus extern "C" #endif -char fca_get_version (); +char ucc_init_version (); int main () { -return fca_get_version (); +return ucc_init_version (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_fca_libs; do +for ac_lib in '' ucc; do if test -z "$ac_lib"; then ac_res="none required" else @@ -359075,25 +385588,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fca_get_version=$ac_res + ac_cv_search_ucc_init_version=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fca_get_version+:} false; then : + if ${ac_cv_search_ucc_init_version+:} false; then : break fi done -if ${ac_cv_search_fca_get_version+:} false; then : +if ${ac_cv_search_ucc_init_version+:} false; then : else - ac_cv_search_fca_get_version=no + ac_cv_search_ucc_init_version=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 -$as_echo "$ac_cv_search_fca_get_version" >&6; } -ac_res=$ac_cv_search_fca_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucc_init_version" >&5 +$as_echo "$ac_cv_search_ucc_init_version" >&6; } +ac_res=$ac_cv_search_ucc_init_version if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -359103,22 +385616,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" - scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" - unset ac_cv_search_fca_get_version + LDFLAGS="$opal_check_package_scoll_ucc_save_LDFLAGS" + scoll_ucc_LDFLAGS="$opal_check_package_scoll_ucc_orig_LDFLAGS" + unset ac_cv_search_ucc_init_version fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - scoll_fca_LDFLAGS="$scoll_fca_LDFLAGS -L$opal_check_package_libdir/lib64" + scoll_ucc_LDFLAGS="$scoll_ucc_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 -$as_echo_n "checking for library containing fca_get_version... " >&6; } -if ${ac_cv_search_fca_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucc_init_version" >&5 +$as_echo_n "checking for library containing ucc_init_version... " >&6; } +if ${ac_cv_search_ucc_init_version+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -359131,16 +385644,16 @@ #ifdef __cplusplus extern "C" #endif -char fca_get_version (); +char ucc_init_version (); int main () { -return fca_get_version (); +return ucc_init_version (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_fca_libs; do +for ac_lib in '' ucc; do if test -z "$ac_lib"; then ac_res="none required" else @@ -359148,25 +385661,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fca_get_version=$ac_res + ac_cv_search_ucc_init_version=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fca_get_version+:} false; then : + if ${ac_cv_search_ucc_init_version+:} false; then : break fi done -if ${ac_cv_search_fca_get_version+:} false; then : +if ${ac_cv_search_ucc_init_version+:} false; then : else - ac_cv_search_fca_get_version=no + ac_cv_search_ucc_init_version=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 -$as_echo "$ac_cv_search_fca_get_version" >&6; } -ac_res=$ac_cv_search_fca_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucc_init_version" >&5 +$as_echo "$ac_cv_search_ucc_init_version" >&6; } +ac_res=$ac_cv_search_ucc_init_version if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -359176,9 +385689,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" - scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" - unset ac_cv_search_fca_get_version + LDFLAGS="$opal_check_package_scoll_ucc_save_LDFLAGS" + scoll_ucc_LDFLAGS="$opal_check_package_scoll_ucc_orig_LDFLAGS" + unset ac_cv_search_ucc_init_version fi fi fi @@ -359275,12 +385788,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lib$ompi_check_fca_libs requires libnl v1 or v3" >&5 -$as_echo_n "checking if lib$ompi_check_fca_libs requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucc requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucc requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void fca_get_version (void); +extern void ucc_init_version (void); int main(int argc, char *argv[]) { - fca_get_version (); + ucc_init_version (); return 0; } EOF @@ -359292,14 +385805,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:359295: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_fca_libs $LIBS $scoll_fca_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_fca_libs $LIBS $scoll_fca_LIBS 1>&5 2>&1 +echo "configure:385808: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucc $LIBS $scoll_ucc_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucc $LIBS $scoll_ucc_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:359302: \$? = $opal_status" >&5 + echo "configure:385815: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -359319,8 +385832,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib $ompi_check_fca_libs" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib $ompi_check_fca_libs" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucc" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucc" >&2;} fi @@ -359334,15 +385847,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, lib$ompi_check_fca_libs links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, lib$ompi_check_fca_libs links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucc links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucc links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucc (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucc (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucc." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucc." >&2;} libnl_sane=0 fi @@ -359351,19 +385864,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_fca_libs requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_fca_libs requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucc requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucc requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucc (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucc (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucc." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucc." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs $ompi_check_fca_libs" + opal_libnlv1_libs="$opal_libnlv1_libs ucc" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -359442,19 +385955,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_fca_libs requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_fca_libs requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucc requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucc requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucc (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucc (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucc." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucc." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs $ompi_check_fca_libs" + opal_libnlv3_libs="$opal_libnlv3_libs ucc" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -359595,11 +386108,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_fca_get_version" != "no" && - test "$ac_cv_search_fca_get_version" != "none required"; then : - scoll_fca_LIBS="$ac_cv_search_fca_get_version " + if test "$ac_cv_search_ucc_init_version" != "no" && + test "$ac_cv_search_ucc_init_version" != "none required"; then : + scoll_ucc_LIBS="$ac_cv_search_ucc_init_version " else - scoll_fca_LIBS="" + scoll_ucc_LIBS="" fi opal_check_package_happy="yes" else @@ -359618,15 +386131,15 @@ # see comment above - unset ac_cv_search_fca_get_version + unset ac_cv_search_ucc_init_version opal_check_package_lib_happy="no" if test "" != ""; then : # libdir was specified - search only there - scoll_fca_LDFLAGS="$scoll_fca_LDFLAGS -L" + scoll_ucc_LDFLAGS="$scoll_ucc_LDFLAGS -L" LDFLAGS="$LDFLAGS -L" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 -$as_echo_n "checking for library containing fca_get_version... " >&6; } -if ${ac_cv_search_fca_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucc_init_version" >&5 +$as_echo_n "checking for library containing ucc_init_version... " >&6; } +if ${ac_cv_search_ucc_init_version+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -359639,16 +386152,16 @@ #ifdef __cplusplus extern "C" #endif -char fca_get_version (); +char ucc_init_version (); int main () { -return fca_get_version (); +return ucc_init_version (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_fca_libs; do +for ac_lib in '' ucc; do if test -z "$ac_lib"; then ac_res="none required" else @@ -359656,25 +386169,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fca_get_version=$ac_res + ac_cv_search_ucc_init_version=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fca_get_version+:} false; then : + if ${ac_cv_search_ucc_init_version+:} false; then : break fi done -if ${ac_cv_search_fca_get_version+:} false; then : +if ${ac_cv_search_ucc_init_version+:} false; then : else - ac_cv_search_fca_get_version=no + ac_cv_search_ucc_init_version=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 -$as_echo "$ac_cv_search_fca_get_version" >&6; } -ac_res=$ac_cv_search_fca_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucc_init_version" >&5 +$as_echo "$ac_cv_search_ucc_init_version" >&6; } +ac_res=$ac_cv_search_ucc_init_version if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -359683,22 +386196,22 @@ fi if test "$opal_check_package_lib_happy" = "no"; then : - LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" - scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" - unset ac_cv_search_fca_get_version + LDFLAGS="$opal_check_package_scoll_ucc_save_LDFLAGS" + scoll_ucc_LDFLAGS="$opal_check_package_scoll_ucc_orig_LDFLAGS" + unset ac_cv_search_ucc_init_version fi else # libdir was not specified - go through search path - opal_check_package_libdir="$ompi_check_fca_dir" + opal_check_package_libdir="$ompi_check_ucc_dir" if test "$opal_check_package_libdir" = "" || \ test "$opal_check_package_libdir" = "/usr" || \ test "$opal_check_package_libdir" = "/usr/local"; then : # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 -$as_echo_n "checking for library containing fca_get_version... " >&6; } -if ${ac_cv_search_fca_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucc_init_version" >&5 +$as_echo_n "checking for library containing ucc_init_version... " >&6; } +if ${ac_cv_search_ucc_init_version+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -359711,16 +386224,16 @@ #ifdef __cplusplus extern "C" #endif -char fca_get_version (); +char ucc_init_version (); int main () { -return fca_get_version (); +return ucc_init_version (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_fca_libs; do +for ac_lib in '' ucc; do if test -z "$ac_lib"; then ac_res="none required" else @@ -359728,25 +386241,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fca_get_version=$ac_res + ac_cv_search_ucc_init_version=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fca_get_version+:} false; then : + if ${ac_cv_search_ucc_init_version+:} false; then : break fi done -if ${ac_cv_search_fca_get_version+:} false; then : +if ${ac_cv_search_ucc_init_version+:} false; then : else - ac_cv_search_fca_get_version=no + ac_cv_search_ucc_init_version=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 -$as_echo "$ac_cv_search_fca_get_version" >&6; } -ac_res=$ac_cv_search_fca_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucc_init_version" >&5 +$as_echo "$ac_cv_search_ucc_init_version" >&6; } +ac_res=$ac_cv_search_ucc_init_version if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -359756,21 +386269,21 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" - scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" - unset ac_cv_search_fca_get_version + LDFLAGS="$opal_check_package_scoll_ucc_save_LDFLAGS" + scoll_ucc_LDFLAGS="$opal_check_package_scoll_ucc_orig_LDFLAGS" + unset ac_cv_search_ucc_init_version fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - scoll_fca_LDFLAGS="$scoll_fca_LDFLAGS -L$opal_check_package_libdir/lib" + scoll_ucc_LDFLAGS="$scoll_ucc_LDFLAGS -L$opal_check_package_libdir/lib" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib" >&5 $as_echo "looking for library in lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 -$as_echo_n "checking for library containing fca_get_version... " >&6; } -if ${ac_cv_search_fca_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucc_init_version" >&5 +$as_echo_n "checking for library containing ucc_init_version... " >&6; } +if ${ac_cv_search_ucc_init_version+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -359783,16 +386296,16 @@ #ifdef __cplusplus extern "C" #endif -char fca_get_version (); +char ucc_init_version (); int main () { -return fca_get_version (); +return ucc_init_version (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_fca_libs; do +for ac_lib in '' ucc; do if test -z "$ac_lib"; then ac_res="none required" else @@ -359800,25 +386313,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fca_get_version=$ac_res + ac_cv_search_ucc_init_version=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fca_get_version+:} false; then : + if ${ac_cv_search_ucc_init_version+:} false; then : break fi done -if ${ac_cv_search_fca_get_version+:} false; then : +if ${ac_cv_search_ucc_init_version+:} false; then : else - ac_cv_search_fca_get_version=no + ac_cv_search_ucc_init_version=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 -$as_echo "$ac_cv_search_fca_get_version" >&6; } -ac_res=$ac_cv_search_fca_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucc_init_version" >&5 +$as_echo "$ac_cv_search_ucc_init_version" >&6; } +ac_res=$ac_cv_search_ucc_init_version if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -359828,22 +386341,22 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" - scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" - unset ac_cv_search_fca_get_version + LDFLAGS="$opal_check_package_scoll_ucc_save_LDFLAGS" + scoll_ucc_LDFLAGS="$opal_check_package_scoll_ucc_orig_LDFLAGS" + unset ac_cv_search_ucc_init_version fi fi fi if test "$opal_check_package_lib_happy" = "no"; then : if test "$opal_check_package_libdir" != ""; then : - scoll_fca_LDFLAGS="$scoll_fca_LDFLAGS -L$opal_check_package_libdir/lib64" + scoll_ucc_LDFLAGS="$scoll_ucc_LDFLAGS -L$opal_check_package_libdir/lib64" LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in lib64" >&5 $as_echo "looking for library in lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fca_get_version" >&5 -$as_echo_n "checking for library containing fca_get_version... " >&6; } -if ${ac_cv_search_fca_get_version+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ucc_init_version" >&5 +$as_echo_n "checking for library containing ucc_init_version... " >&6; } +if ${ac_cv_search_ucc_init_version+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -359856,16 +386369,16 @@ #ifdef __cplusplus extern "C" #endif -char fca_get_version (); +char ucc_init_version (); int main () { -return fca_get_version (); +return ucc_init_version (); ; return 0; } _ACEOF -for ac_lib in '' $ompi_check_fca_libs; do +for ac_lib in '' ucc; do if test -z "$ac_lib"; then ac_res="none required" else @@ -359873,25 +386386,25 @@ LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_fca_get_version=$ac_res + ac_cv_search_ucc_init_version=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_fca_get_version+:} false; then : + if ${ac_cv_search_ucc_init_version+:} false; then : break fi done -if ${ac_cv_search_fca_get_version+:} false; then : +if ${ac_cv_search_ucc_init_version+:} false; then : else - ac_cv_search_fca_get_version=no + ac_cv_search_ucc_init_version=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fca_get_version" >&5 -$as_echo "$ac_cv_search_fca_get_version" >&6; } -ac_res=$ac_cv_search_fca_get_version +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ucc_init_version" >&5 +$as_echo "$ac_cv_search_ucc_init_version" >&6; } +ac_res=$ac_cv_search_ucc_init_version if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" opal_check_package_lib_happy="yes" @@ -359901,9 +386414,9 @@ if test "$opal_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" - scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" - unset ac_cv_search_fca_get_version + LDFLAGS="$opal_check_package_scoll_ucc_save_LDFLAGS" + scoll_ucc_LDFLAGS="$opal_check_package_scoll_ucc_orig_LDFLAGS" + unset ac_cv_search_ucc_init_version fi fi fi @@ -360000,12 +386513,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if lib$ompi_check_fca_libs requires libnl v1 or v3" >&5 -$as_echo_n "checking if lib$ompi_check_fca_libs requires libnl v1 or v3... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libucc requires libnl v1 or v3" >&5 +$as_echo_n "checking if libucc requires libnl v1 or v3... " >&6; } cat > conftest_c.$ac_ext << EOF -extern void fca_get_version (void); +extern void ucc_init_version (void); int main(int argc, char *argv[]) { - fca_get_version (); + ucc_init_version (); return 0; } EOF @@ -360017,14 +386530,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:360020: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_fca_libs $LIBS $scoll_fca_LIBS" >&5 -$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$ompi_check_fca_libs $LIBS $scoll_fca_LIBS 1>&5 2>&1 +echo "configure:386533: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucc $LIBS $scoll_ucc_LIBS" >&5 +$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucc $LIBS $scoll_ucc_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:360027: \$? = $opal_status" >&5 + echo "configure:386540: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -360044,8 +386557,8 @@ else unset opal_status - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib $ompi_check_fca_libs" >&5 -$as_echo "$as_me: WARNING: Could not link a simple program with lib $ompi_check_fca_libs" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link a simple program with lib ucc" >&5 +$as_echo "$as_me: WARNING: Could not link a simple program with lib ucc" >&2;} fi @@ -360059,15 +386572,15 @@ # Does this library require both v1 and v3? If so, fail. if test $this_requires_v1 -eq 1 && test $this_requires_v3 -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, lib$ompi_check_fca_libs links to both libnl and libnl-3." >&5 -$as_echo "$as_me: WARNING: Unfortunately, lib$ompi_check_fca_libs links to both libnl and libnl-3." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unfortunately, libucc links to both libnl and libnl-3." >&5 +$as_echo "$as_me: WARNING: Unfortunately, libucc links to both libnl and libnl-3." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucc (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucc (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucc." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucc." >&2;} libnl_sane=0 fi @@ -360076,19 +386589,19 @@ # v3? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v1 -eq 1; then : if test $opal_libnl_version -eq 3; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_fca_libs requires libnl" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $ompi_check_fca_libs requires libnl" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucc requires libnl" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv3_libs requires libnl-3 whereas ucc requires libnl" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucc (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucc (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucc." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucc." >&2;} libnl_sane=0 else - opal_libnlv1_libs="$opal_libnlv1_libs $ompi_check_fca_libs" + opal_libnlv1_libs="$opal_libnlv1_libs ucc" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv1_libs @@ -360167,19 +386680,19 @@ # v1? If so, fail. if test $libnl_sane -eq 1 && test $this_requires_v3 -eq 1; then : if test $opal_libnl_version -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_fca_libs requires libnl-3" >&5 -$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas lib$ompi_check_fca_libs requires libnl-3" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucc requires libnl-3" >&5 +$as_echo "$as_me: WARNING: libnl version conflict: $opal_libnlv1_libs requires libnl whereas libucc requires libnl-3" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is a configuration that is *known* to cause run-time crashes." >&5 $as_echo "$as_me: WARNING: This is a configuration that is *known* to cause run-time crashes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&5 -$as_echo "$as_me: WARNING: This is an error in lib$ompi_check_fca_libs (not Open MPI)." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&5 -$as_echo "$as_me: WARNING: Open MPI will therefore skip using lib$ompi_check_fca_libs." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This is an error in libucc (not Open MPI)." >&5 +$as_echo "$as_me: WARNING: This is an error in libucc (not Open MPI)." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI will therefore skip using libucc." >&5 +$as_echo "$as_me: WARNING: Open MPI will therefore skip using libucc." >&2;} libnl_sane=0 else - opal_libnlv3_libs="$opal_libnlv3_libs $ompi_check_fca_libs" + opal_libnlv3_libs="$opal_libnlv3_libs ucc" # 1 is the variable name to be uniq-ized opal_name=opal_libnlv3_libs @@ -360320,11 +386833,11 @@ if test "$opal_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_fca_get_version" != "no" && - test "$ac_cv_search_fca_get_version" != "none required"; then : - scoll_fca_LIBS="$ac_cv_search_fca_get_version " + if test "$ac_cv_search_ucc_init_version" != "no" && + test "$ac_cv_search_ucc_init_version" != "none required"; then : + scoll_ucc_LIBS="$ac_cv_search_ucc_init_version " else - scoll_fca_LIBS="" + scoll_ucc_LIBS="" fi opal_check_package_happy="yes" else @@ -360359,39 +386872,58 @@ if test "$opal_check_package_happy" = "yes"; then : - ompi_check_fca_happy="yes" + ompi_check_ucc_happy="yes" else - scoll_fca_CPPFLAGS="$opal_check_package_scoll_fca_orig_CPPFLAGS" - scoll_fca_LDFLAGS="$opal_check_package_scoll_fca_orig_LDFLAGS" - scoll_fca_LIBS="$opal_check_package_scoll_fca_orig_LIBS" - ompi_check_fca_happy="no" + scoll_ucc_CPPFLAGS="$opal_check_package_scoll_ucc_orig_CPPFLAGS" + scoll_ucc_LDFLAGS="$opal_check_package_scoll_ucc_orig_LDFLAGS" + scoll_ucc_LIBS="$opal_check_package_scoll_ucc_orig_LIBS" + ompi_check_ucc_happy="no" fi - CPPFLAGS="$opal_check_package_scoll_fca_save_CPPFLAGS" - LDFLAGS="$opal_check_package_scoll_fca_save_LDFLAGS" - LIBS="$opal_check_package_scoll_fca_save_LIBS" + CPPFLAGS="$opal_check_package_scoll_ucc_save_CPPFLAGS" + LDFLAGS="$opal_check_package_scoll_ucc_save_LDFLAGS" + LIBS="$opal_check_package_scoll_ucc_save_LIBS" + + + if test "$ompi_check_ucc_happy" = "yes"; then : + + CPPFLAGS=$coll_ucc_CPPFLAGS + LDFLAGS=$coll_ucc_LDFLAGS + LIBS=$coll_ucc_LIBS + for ac_func in ucc_comm_free +do : + ac_fn_c_check_func "$LINENO" "ucc_comm_free" "ac_cv_func_ucc_comm_free" +if test "x$ac_cv_func_ucc_comm_free" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UCC_COMM_FREE 1 +_ACEOF + +fi +done +fi + CPPFLAGS=$CPPFLAGS_save LDFLAGS=$LDFLAGS_save LIBS=$LIBS_save else - ompi_check_fca_happy="no" + ompi_check_ucc_happy=no fi - if test "$ompi_check_fca_happy" = "yes" && test "$enable_progress_threads" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: fca driver does not currently support progress threads. Disabling FCA." >&5 -$as_echo "$as_me: WARNING: fca driver does not currently support progress threads. Disabling FCA." >&2;} - ompi_check_fca_happy="no" + if test "$ompi_check_ucc_happy" = "yes" && test "$enable_progress_threads" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ucc driver does not currently support progress threads. Disabling UCC." >&5 +$as_echo "$as_me: WARNING: ucc driver does not currently support progress threads. Disabling UCC." >&2;} + ompi_check_ucc_happy="no" fi - if test "$ompi_check_fca_happy" = "yes"; then : - scoll_fca_happy="yes" + if test "$ompi_check_ucc_happy" = "yes"; then : + scoll_ucc_happy="yes" else - if test ! -z "$with_fca" && test "$with_fca" != "no"; then : - as_fn_error $? "FCA support requested but not found. Aborting" "$LINENO" 5 + if test -n "$with_ucc" && test "$with_ucc" != "no"; then : + as_fn_error $? "UCC support requested but not found. Aborting" "$LINENO" 5 fi - scoll_fca_happy="no" + scoll_ucc_happy="no" fi @@ -360417,21 +386949,19 @@ - if test "$scoll_fca_happy" = "yes"; then : - scoll_fca_WRAPPER_EXTRA_LDFLAGS="$scoll_fca_LDFLAGS" - scoll_fca_CPPFLAGS="$scoll_fca_CPPFLAGS" - scoll_fca_WRAPPER_EXTRA_LIBS="$scoll_fca_LIBS" + if test "$scoll_ucc_happy" = "yes"; then : + scoll_ucc_WRAPPER_EXTRA_LDFLAGS="$scoll_ucc_LDFLAGS" + scoll_ucc_CPPFLAGS="$scoll_ucc_CPPFLAGS" + scoll_ucc_WRAPPER_EXTRA_LIBS="$scoll_ucc_LIBS" should_build=$should_build else should_build=0 fi - # substitute in the things needed to build fca - + # substitute in the things needed to build ucc - scoll_fca_HOME="$ompi_check_fca_dir" opal_show_verbose "OPAL_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -360442,45 +386972,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/oshmem/mca/scoll/fca/post_configure.sh" + infile="$srcdir/oshmem/mca/scoll/ucc/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components fca" + all_components="$all_components ucc" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components fca" + dso_components="$dso_components ucc" else if test "scoll" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/scoll/fca/lib${OSHMEM_LIB_PREFIX}mca_scoll_fca.la $static_ltlibs" + static_ltlibs="mca/scoll/ucc/lib${OSHMEM_LIB_PREFIX}mca_scoll_ucc.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/scoll/fca/libmca_scoll_fca.la $static_ltlibs" + static_ltlibs="mca/scoll/ucc/libmca_scoll_ucc.la $static_ltlibs" fi - echo "extern const mca_base_component_t mca_scoll_fca_component;" >> $outfile.extern - echo " &mca_scoll_fca_component, " >> $outfile.struct - static_components="$static_components fca" + echo "extern const mca_base_component_t mca_scoll_ucc_component;" >> $outfile.extern + echo " &mca_scoll_ucc_component, " >> $outfile.struct + static_components="$static_components ucc" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component scoll:fca can compile" >&5 -$as_echo_n "checking if MCA component scoll:fca can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component scoll:ucc can compile" >&5 +$as_echo_n "checking if MCA component scoll:ucc can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_scoll" = "fca" ; then + if test "$DIRECT_scoll" = "ucc" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_oshmem_scoll_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** scoll component fca was supposed to be direct-called, but +as_fn_error $? "*** scoll component ucc was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -360488,8 +387018,8 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_scoll" = "fca" ; then -as_fn_error $? "*** scoll component fca was supposed to be direct-called, but + if test "$DIRECT_scoll" = "ucc" ; then +as_fn_error $? "*** scoll component ucc was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -360504,7 +387034,7 @@ # because it will link against these (without a dependency from # libmpi.so to these flags) if test "$compile_mode" = "static"; then - if test "$scoll_fca_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$scoll_ucc_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -360544,7 +387074,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $scoll_fca_LDFLAGS; do + for arg in $scoll_ucc_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -360625,7 +387155,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $scoll_fca_WRAPPER_EXTRA_LDFLAGS; do + for arg in $scoll_ucc_WRAPPER_EXTRA_LDFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -360667,7 +387197,7 @@ fi - if test "$scoll_fca_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$scoll_ucc_WRAPPER_EXTRA_LIBS" = ""; then : @@ -360707,7 +387237,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $scoll_fca_LIBS; do + for arg in $scoll_ucc_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -360788,7 +387318,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $scoll_fca_WRAPPER_EXTRA_LIBS; do + for arg in $scoll_ucc_WRAPPER_EXTRA_LIBS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -360836,7 +387366,7 @@ # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script # component can never be used in a STOP_AT_FIRST framework, we # don't have to implement the else clause in the literal check... - if test "$scoll_fca_WRAPPER_EXTRA_CPPFLAGS" != ""; then : + if test "$scoll_ucc_WRAPPER_EXTRA_CPPFLAGS" != ""; then : stop_at_first=0 if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : if test "$with_devel_headers" = "yes"; then : @@ -360879,7 +387409,7 @@ opal_scope_index=`expr $opal_scope_index + 1` - for arg in $scoll_fca_WRAPPER_EXTRA_CPPFLAGS; do + for arg in $scoll_ucc_WRAPPER_EXTRA_CPPFLAGS; do opal_tmp=`echo $arg | cut -c1-2` opal_append=1 if test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"; then : @@ -360922,32 +387452,32 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring scoll_fca_WRAPPER_EXTRA_CPPFLAGS ($scoll_fca_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring scoll_fca_WRAPPER_EXTRA_CPPFLAGS ($scoll_fca_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring scoll_ucc_WRAPPER_EXTRA_CPPFLAGS ($scoll_ucc_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 +$as_echo "$as_me: WARNING: ignoring scoll_ucc_WRAPPER_EXTRA_CPPFLAGS ($scoll_ucc_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component scoll:fca can compile" >&5 -$as_echo_n "checking if MCA component scoll:fca can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component scoll:ucc can compile" >&5 +$as_echo_n "checking if MCA component scoll:ucc can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_scoll" = "fca" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"fca\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"fca\" failed to configure properly" >&2;} + if test "$with_scoll" = "ucc" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucc\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ucc\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_scoll" ; then - if test "$DIRECT_scoll" = "fca" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"fca\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"fca\" failed to configure properly" >&2;} + if test "$DIRECT_scoll" = "ucc" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ucc\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ucc\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -360955,23 +387485,23 @@ fi # add component to all component list - all_components="$all_components fca" + all_components="$all_components ucc" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_oshmem_scoll_fca_DSO=1 + BUILD_oshmem_scoll_ucc_DSO=1 else - BUILD_oshmem_scoll_fca_DSO=0 + BUILD_oshmem_scoll_ucc_DSO=0 fi - if test "$BUILD_oshmem_scoll_fca_DSO" = "1"; then - MCA_BUILD_oshmem_scoll_fca_DSO_TRUE= - MCA_BUILD_oshmem_scoll_fca_DSO_FALSE='#' + if test "$BUILD_oshmem_scoll_ucc_DSO" = "1"; then + MCA_BUILD_oshmem_scoll_ucc_DSO_TRUE= + MCA_BUILD_oshmem_scoll_ucc_DSO_FALSE='#' else - MCA_BUILD_oshmem_scoll_fca_DSO_TRUE='#' - MCA_BUILD_oshmem_scoll_fca_DSO_FALSE= + MCA_BUILD_oshmem_scoll_ucc_DSO_TRUE='#' + MCA_BUILD_oshmem_scoll_ucc_DSO_FALSE= fi @@ -362398,14 +388928,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:362401: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS" >&5 +echo "configure:388931: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:362408: \$? = $opal_status" >&5 + echo "configure:388938: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -363123,14 +389653,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:363126: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS" >&5 +echo "configure:389656: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lmxm $LIBS $ompi_check_mxm_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:363133: \$? = $opal_status" >&5 + echo "configure:389663: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -365020,14 +391550,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:365023: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +echo "configure:391553: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:365030: \$? = $opal_status" >&5 + echo "configure:391560: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -365745,14 +392275,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:365748: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +echo "configure:392278: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:365755: \$? = $opal_status" >&5 + echo "configure:392285: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -366651,14 +393181,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:366654: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +echo "configure:393184: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:366661: \$? = $opal_status" >&5 + echo "configure:393191: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -367376,14 +393906,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:367379: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +echo "configure:393909: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:367386: \$? = $opal_status" >&5 + echo "configure:393916: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -367769,7 +394299,39 @@ if test -n "$ompi_check_ucx_dir"; then : CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" fi - ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbr" "ac_cv_have_decl_ucp_tag_send_nbr" "#include + # Turn off UCX version v1.8 due to issue #8321 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking UCX version" >&5 +$as_echo_n "checking UCX version... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #if (UCP_API_MAJOR == 1) && (UCP_API_MINOR == 8) + #error "Invalid version" + #endif +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok (not 1.8.x)" >&5 +$as_echo "ok (not 1.8.x)" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: bad (1.8.x)" >&5 +$as_echo "bad (1.8.x)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: UCX support skipped because version 1.8.x was found, which has a known catastrophic issue." >&5 +$as_echo "$as_me: WARNING: UCX support skipped because version 1.8.x was found, which has a known catastrophic issue." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Please upgrade to UCX version 1.9 or higher." >&5 +$as_echo "$as_me: WARNING: Please upgrade to UCX version 1.9 or higher." >&2;} + ompi_check_ucx_happy=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test "$ompi_check_ucx_happy" = yes; then : + + ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbr" "ac_cv_have_decl_ucp_tag_send_nbr" "#include " if test "x$ac_cv_have_decl_ucp_tag_send_nbr" = xyes; then : ac_have_decl=1 @@ -367786,7 +394348,7 @@ fi - ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nb" "ac_cv_have_decl_ucp_ep_flush_nb" "#include + ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nb" "ac_cv_have_decl_ucp_ep_flush_nb" "#include " if test "x$ac_cv_have_decl_ucp_ep_flush_nb" = xyes; then : ac_have_decl=1 @@ -367841,8 +394403,52 @@ cat >>confdefs.h <<_ACEOF #define HAVE_DECL_UCP_GET_NB $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_put_nbx" "ac_cv_have_decl_ucp_put_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_put_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_PUT_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_get_nbx" "ac_cv_have_decl_ucp_get_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_get_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_GET_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_atomic_op_nbx" "ac_cv_have_decl_ucp_atomic_op_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_atomic_op_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_OP_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nbx" "ac_cv_have_decl_ucp_ep_flush_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_ep_flush_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_EP_FLUSH_NBX $ac_have_decl +_ACEOF - ac_fn_c_check_decl "$LINENO" "ucm_test_events" "ac_cv_have_decl_ucm_test_events" "#include + ac_fn_c_check_decl "$LINENO" "ucm_test_events" "ac_cv_have_decl_ucm_test_events" "#include " if test "x$ac_cv_have_decl_ucm_test_events" = xyes; then : ac_have_decl=1 @@ -367853,8 +394459,19 @@ cat >>confdefs.h <<_ACEOF #define HAVE_DECL_UCM_TEST_EVENTS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "ucm_test_external_events" "ac_cv_have_decl_ucm_test_external_events" "#include +" +if test "x$ac_cv_have_decl_ucm_test_external_events" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCM_TEST_EXTERNAL_EVENTS $ac_have_decl +_ACEOF - ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_AND" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" "#include + ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_AND" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" "#include " if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" = xyes; then : ac_have_decl=1 @@ -367931,8 +394548,30 @@ cat >>confdefs.h <<_ACEOF #define HAVE_DECL_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" "ac_cv_have_decl_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" "#include +" +if test "x$ac_cv_have_decl_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_OP_ATTR_FLAG_MULTI_SEND" "ac_cv_have_decl_UCP_OP_ATTR_FLAG_MULTI_SEND" "#include +" +if test "x$ac_cv_have_decl_UCP_OP_ATTR_FLAG_MULTI_SEND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_OP_ATTR_FLAG_MULTI_SEND $ac_have_decl +_ACEOF - ac_fn_c_check_decl "$LINENO" "UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "#include + ac_fn_c_check_decl "$LINENO" "UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "#include " if test "x$ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" = xyes; then : ac_have_decl=1 @@ -367949,6 +394588,70 @@ fi + ac_fn_c_check_decl "$LINENO" "UCP_ATTR_FIELD_MEMORY_TYPES" "ac_cv_have_decl_UCP_ATTR_FIELD_MEMORY_TYPES" "#include +" +if test "x$ac_cv_have_decl_UCP_ATTR_FIELD_MEMORY_TYPES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATTR_FIELD_MEMORY_TYPES $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + +$as_echo "#define HAVE_UCP_ATTR_MEMORY_TYPES 1" >>confdefs.h + +fi + + ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbx" "ac_cv_have_decl_ucp_tag_send_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_SEND_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_tag_send_sync_nbx" "ac_cv_have_decl_ucp_tag_send_sync_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_sync_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_SEND_SYNC_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_tag_recv_nbx" "ac_cv_have_decl_ucp_tag_recv_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_recv_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_RECV_NBX $ac_have_decl +_ACEOF + + ac_fn_c_check_type "$LINENO" "ucp_request_param_t" "ac_cv_type_ucp_request_param_t" "#include +" +if test "x$ac_cv_type_ucp_request_param_t" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UCP_REQUEST_PARAM_T 1 +_ACEOF + + +fi + + +fi CPPFLAGS=$old_CPPFLAGS @@ -371686,14 +398389,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:371689: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +echo "configure:398392: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:371696: \$? = $opal_status" >&5 + echo "configure:398399: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -372411,14 +399114,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:372414: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +echo "configure:399117: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:372421: \$? = $opal_status" >&5 + echo "configure:399124: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -373317,14 +400020,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:373320: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +echo "configure:400023: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:373327: \$? = $opal_status" >&5 + echo "configure:400030: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -374042,14 +400745,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:374045: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 +echo "configure:400748: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -lucp $LIBS $ompi_check_ucx_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:374052: \$? = $opal_status" >&5 + echo "configure:400755: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -374435,7 +401138,39 @@ if test -n "$ompi_check_ucx_dir"; then : CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" fi - ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbr" "ac_cv_have_decl_ucp_tag_send_nbr" "#include + # Turn off UCX version v1.8 due to issue #8321 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking UCX version" >&5 +$as_echo_n "checking UCX version... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #if (UCP_API_MAJOR == 1) && (UCP_API_MINOR == 8) + #error "Invalid version" + #endif +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok (not 1.8.x)" >&5 +$as_echo "ok (not 1.8.x)" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: bad (1.8.x)" >&5 +$as_echo "bad (1.8.x)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: UCX support skipped because version 1.8.x was found, which has a known catastrophic issue." >&5 +$as_echo "$as_me: WARNING: UCX support skipped because version 1.8.x was found, which has a known catastrophic issue." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Please upgrade to UCX version 1.9 or higher." >&5 +$as_echo "$as_me: WARNING: Please upgrade to UCX version 1.9 or higher." >&2;} + ompi_check_ucx_happy=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test "$ompi_check_ucx_happy" = yes; then : + + ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbr" "ac_cv_have_decl_ucp_tag_send_nbr" "#include " if test "x$ac_cv_have_decl_ucp_tag_send_nbr" = xyes; then : ac_have_decl=1 @@ -374452,7 +401187,7 @@ fi - ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nb" "ac_cv_have_decl_ucp_ep_flush_nb" "#include + ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nb" "ac_cv_have_decl_ucp_ep_flush_nb" "#include " if test "x$ac_cv_have_decl_ucp_ep_flush_nb" = xyes; then : ac_have_decl=1 @@ -374507,8 +401242,52 @@ cat >>confdefs.h <<_ACEOF #define HAVE_DECL_UCP_GET_NB $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_put_nbx" "ac_cv_have_decl_ucp_put_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_put_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_PUT_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_get_nbx" "ac_cv_have_decl_ucp_get_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_get_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_GET_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_atomic_op_nbx" "ac_cv_have_decl_ucp_atomic_op_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_atomic_op_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATOMIC_OP_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_ep_flush_nbx" "ac_cv_have_decl_ucp_ep_flush_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_ep_flush_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_EP_FLUSH_NBX $ac_have_decl +_ACEOF - ac_fn_c_check_decl "$LINENO" "ucm_test_events" "ac_cv_have_decl_ucm_test_events" "#include + ac_fn_c_check_decl "$LINENO" "ucm_test_events" "ac_cv_have_decl_ucm_test_events" "#include " if test "x$ac_cv_have_decl_ucm_test_events" = xyes; then : ac_have_decl=1 @@ -374519,8 +401298,19 @@ cat >>confdefs.h <<_ACEOF #define HAVE_DECL_UCM_TEST_EVENTS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "ucm_test_external_events" "ac_cv_have_decl_ucm_test_external_events" "#include +" +if test "x$ac_cv_have_decl_ucm_test_external_events" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCM_TEST_EXTERNAL_EVENTS $ac_have_decl +_ACEOF - ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_AND" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" "#include + ac_fn_c_check_decl "$LINENO" "UCP_ATOMIC_POST_OP_AND" "ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" "#include " if test "x$ac_cv_have_decl_UCP_ATOMIC_POST_OP_AND" = xyes; then : ac_have_decl=1 @@ -374597,8 +401387,30 @@ cat >>confdefs.h <<_ACEOF #define HAVE_DECL_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" "ac_cv_have_decl_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" "#include +" +if test "x$ac_cv_have_decl_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "UCP_OP_ATTR_FLAG_MULTI_SEND" "ac_cv_have_decl_UCP_OP_ATTR_FLAG_MULTI_SEND" "#include +" +if test "x$ac_cv_have_decl_UCP_OP_ATTR_FLAG_MULTI_SEND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_OP_ATTR_FLAG_MULTI_SEND $ac_have_decl +_ACEOF - ac_fn_c_check_decl "$LINENO" "UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "#include + ac_fn_c_check_decl "$LINENO" "UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" "#include " if test "x$ac_cv_have_decl_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS" = xyes; then : ac_have_decl=1 @@ -374615,6 +401427,70 @@ fi + ac_fn_c_check_decl "$LINENO" "UCP_ATTR_FIELD_MEMORY_TYPES" "ac_cv_have_decl_UCP_ATTR_FIELD_MEMORY_TYPES" "#include +" +if test "x$ac_cv_have_decl_UCP_ATTR_FIELD_MEMORY_TYPES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_ATTR_FIELD_MEMORY_TYPES $ac_have_decl +_ACEOF +if test $ac_have_decl = 1; then : + +$as_echo "#define HAVE_UCP_ATTR_MEMORY_TYPES 1" >>confdefs.h + +fi + + ac_fn_c_check_decl "$LINENO" "ucp_tag_send_nbx" "ac_cv_have_decl_ucp_tag_send_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_SEND_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_tag_send_sync_nbx" "ac_cv_have_decl_ucp_tag_send_sync_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_send_sync_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_SEND_SYNC_NBX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "ucp_tag_recv_nbx" "ac_cv_have_decl_ucp_tag_recv_nbx" "#include +" +if test "x$ac_cv_have_decl_ucp_tag_recv_nbx" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_UCP_TAG_RECV_NBX $ac_have_decl +_ACEOF + + ac_fn_c_check_type "$LINENO" "ucp_request_param_t" "ac_cv_type_ucp_request_param_t" "#include +" +if test "x$ac_cv_type_ucp_request_param_t" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UCP_REQUEST_PARAM_T 1 +_ACEOF + + +fi + + +fi CPPFLAGS=$old_CPPFLAGS @@ -376107,14 +402983,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:376110: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS" >&5 +echo "configure:402986: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:376117: \$? = $opal_status" >&5 + echo "configure:402993: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -376832,14 +403708,14 @@ # 1 is the command # 2 is actions to do if success # 3 is actions to do if fail -echo "configure:376835: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS" >&5 +echo "configure:403711: $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS" >&5 $CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -libverbs $LIBS $opal_check_openib_LIBS 1>&5 2>&1 opal_status=$? # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:376842: \$? = $opal_status" >&5 + echo "configure:403718: \$? = $opal_status" >&5 else echo \$? = $opal_status >&5 fi @@ -386148,16 +413024,13 @@ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[91]*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - 10.[012][,.]*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*) + darwin*) + # Open MPI patched for Darwin / MacOS Big Sur. See + # http://lists.gnu.org/archive/html/bug-libtool/2015-07/msg00001.html + case ${MACOSX_DEPLOYMENT_TARGET},$host in + 10.[012],*|,*powerpc*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + *) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; @@ -397622,7 +424495,7 @@ Report bugs to ." lt_cl_version="\ -Open MPI config.lt 4.0.3 +Open MPI config.lt 4.1.4 configured by $0, generated by GNU Autoconf 2.69. Copyright (C) 2011 Free Software Foundation, Inc. @@ -399981,9 +426854,11 @@ esac done - # Now add in the RPATH args for @{libdir}, and the RUNPATH args + # add in the RPATH args for @{libdir}, and the RUNPATH + # args. The install libdir goes first, so that we prefer + # our libmpi over any imposter libmpi we might find. rpath_tmp=`echo ${rpath_args} | sed -e s/LIBDIR/@{libdir}/` - OPAL_WRAPPER_EXTRA_LDFLAGS="${OPAL_WRAPPER_EXTRA_LDFLAGS} $rpath_out $rpath_tmp ${runpath_args}" + OPAL_WRAPPER_EXTRA_LDFLAGS="${OPAL_WRAPPER_EXTRA_LDFLAGS} $rpath_tmp $rpath_out ${runpath_args}" fi @@ -400195,9 +427070,11 @@ esac done - # Now add in the RPATH args for @{libdir}, and the RUNPATH args + # add in the RPATH args for @{libdir}, and the RUNPATH + # args. The install libdir goes first, so that we prefer + # our libmpi over any imposter libmpi we might find. rpath_tmp=`echo ${rpath_args} | sed -e s/LIBDIR/@{libdir}/` - ORTE_WRAPPER_EXTRA_LDFLAGS="${ORTE_WRAPPER_EXTRA_LDFLAGS} $rpath_out $rpath_tmp ${runpath_args}" + ORTE_WRAPPER_EXTRA_LDFLAGS="${ORTE_WRAPPER_EXTRA_LDFLAGS} $rpath_tmp $rpath_out ${runpath_args}" fi @@ -400438,9 +427315,11 @@ esac done - # Now add in the RPATH args for @{libdir}, and the RUNPATH args + # add in the RPATH args for @{libdir}, and the RUNPATH + # args. The install libdir goes first, so that we prefer + # our libmpi over any imposter libmpi we might find. rpath_tmp=`echo ${rpath_args} | sed -e s/LIBDIR/@{libdir}/` - OMPI_WRAPPER_EXTRA_LDFLAGS="${OMPI_WRAPPER_EXTRA_LDFLAGS} $rpath_out $rpath_tmp ${runpath_args}" + OMPI_WRAPPER_EXTRA_LDFLAGS="${OMPI_WRAPPER_EXTRA_LDFLAGS} $rpath_tmp $rpath_out ${runpath_args}" fi @@ -400519,9 +427398,11 @@ esac done - # Now add in the RPATH args for @{libdir}, and the RUNPATH args + # add in the RPATH args for @{libdir}, and the RUNPATH + # args. The install libdir goes first, so that we prefer + # our libmpi over any imposter libmpi we might find. rpath_tmp=`echo ${rpath_fc_args} | sed -e s/LIBDIR/@{libdir}/` - OMPI_WRAPPER_EXTRA_FC_LDFLAGS="${OMPI_WRAPPER_EXTRA_FC_LDFLAGS} $rpath_out $rpath_tmp ${runpath_fc_args}" + OMPI_WRAPPER_EXTRA_FC_LDFLAGS="${OMPI_WRAPPER_EXTRA_FC_LDFLAGS} $rpath_tmp $rpath_out ${runpath_fc_args}" fi @@ -400819,11 +427700,14 @@ # autoconf macro defines in mpi.h. Since AC sometimes changes whether # things are defined as null tokens or an integer result, two projects # with different versions of AC can cause problems. -if test $ac_cv_header_stdc = yes; then + +# According to the autoconf 2.67 documentation the AC_HEADER_STDC macro, +# and therefore the ac_cv_header_stdc cache variable, is obsolescent, as +# current systems have conforming header files. Instead of removing the +# protection completely, let's just make sure it is always on. $as_echo "#define OPAL_STDC_HEADERS 1" >>confdefs.h -fi if test $ac_cv_header_sys_time_h = yes ; then $as_echo "#define OPAL_HAVE_SYS_TIME_H 1" >>confdefs.h @@ -400995,7 +427879,7 @@ - ac_config_files="$ac_config_files orte/Makefile orte/include/Makefile orte/etc/Makefile orte/tools/orted/Makefile orte/tools/orterun/Makefile orte/tools/wrappers/Makefile orte/tools/wrappers/ortecc-wrapper-data.txt orte/tools/wrappers/orte.pc orte/tools/orte-clean/Makefile orte/tools/orte-info/Makefile orte/tools/orte-server/Makefile" + ac_config_files="$ac_config_files orte/Makefile orte/include/Makefile orte/etc/Makefile orte/orted/orted-mpir/Makefile orte/tools/orted/Makefile orte/tools/orterun/Makefile orte/tools/wrappers/Makefile orte/tools/wrappers/ortecc-wrapper-data.txt orte/tools/wrappers/orte.pc orte/tools/orte-clean/Makefile orte/tools/orte-info/Makefile orte/tools/orte-server/Makefile" @@ -401331,6 +428215,10 @@ as_fn_error $? "conditional \"MCA_BUILD_opal_common_cuda_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${MCA_BUILD_opal_common_ofi_DSO_TRUE}" && test -z "${MCA_BUILD_opal_common_ofi_DSO_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_opal_common_ofi_DSO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MCA_BUILD_opal_common_sm_DSO_TRUE}" && test -z "${MCA_BUILD_opal_common_sm_DSO_FALSE}"; then as_fn_error $? "conditional \"MCA_BUILD_opal_common_sm_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -401371,6 +428259,10 @@ as_fn_error $? "conditional \"MCA_BUILD_opal_btl_self_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${MCA_BUILD_opal_btl_ofi_DSO_TRUE}" && test -z "${MCA_BUILD_opal_btl_ofi_DSO_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_opal_btl_ofi_DSO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MCA_btl_openib_have_xrc_TRUE}" && test -z "${MCA_btl_openib_have_xrc_FALSE}"; then as_fn_error $? "conditional \"MCA_btl_openib_have_xrc\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -402039,6 +428931,10 @@ as_fn_error $? "conditional \"MCA_BUILD_orte_schizo_alps_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${MCA_BUILD_orte_schizo_jsm_DSO_TRUE}" && test -z "${MCA_BUILD_orte_schizo_jsm_DSO_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_orte_schizo_jsm_DSO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MCA_BUILD_orte_schizo_moab_DSO_TRUE}" && test -z "${MCA_BUILD_orte_schizo_moab_DSO_FALSE}"; then as_fn_error $? "conditional \"MCA_BUILD_orte_schizo_moab_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -402095,10 +428991,18 @@ as_fn_error $? "conditional \"MCA_BUILD_ompi_bml_r2_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${MCA_BUILD_ompi_coll_adapt_DSO_TRUE}" && test -z "${MCA_BUILD_ompi_coll_adapt_DSO_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_ompi_coll_adapt_DSO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MCA_BUILD_ompi_coll_basic_DSO_TRUE}" && test -z "${MCA_BUILD_ompi_coll_basic_DSO_FALSE}"; then as_fn_error $? "conditional \"MCA_BUILD_ompi_coll_basic_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${MCA_BUILD_ompi_coll_han_DSO_TRUE}" && test -z "${MCA_BUILD_ompi_coll_han_DSO_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_ompi_coll_han_DSO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MCA_BUILD_ompi_coll_inter_DSO_TRUE}" && test -z "${MCA_BUILD_ompi_coll_inter_DSO_FALSE}"; then as_fn_error $? "conditional \"MCA_BUILD_ompi_coll_inter_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -402143,10 +429047,18 @@ as_fn_error $? "conditional \"MCA_BUILD_ompi_coll_portals4_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${MCA_BUILD_ompi_coll_ucc_DSO_TRUE}" && test -z "${MCA_BUILD_ompi_coll_ucc_DSO_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_ompi_coll_ucc_DSO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MCA_BUILD_ompi_crcp_bkmrk_DSO_TRUE}" && test -z "${MCA_BUILD_ompi_crcp_bkmrk_DSO_FALSE}"; then as_fn_error $? "conditional \"MCA_BUILD_ompi_crcp_bkmrk_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${MCA_BUILD_ompi_fbtl_ime_DSO_TRUE}" && test -z "${MCA_BUILD_ompi_fbtl_ime_DSO_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_ompi_fbtl_ime_DSO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MCA_BUILD_ompi_fbtl_posix_DSO_TRUE}" && test -z "${MCA_BUILD_ompi_fbtl_posix_DSO_FALSE}"; then as_fn_error $? "conditional \"MCA_BUILD_ompi_fbtl_posix_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -402175,6 +429087,14 @@ as_fn_error $? "conditional \"MCA_BUILD_ompi_fcoll_vulcan_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${MCA_BUILD_ompi_fs_gpfs_DSO_TRUE}" && test -z "${MCA_BUILD_ompi_fs_gpfs_DSO_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_ompi_fs_gpfs_DSO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MCA_BUILD_ompi_fs_ime_DSO_TRUE}" && test -z "${MCA_BUILD_ompi_fs_ime_DSO_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_ompi_fs_ime_DSO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MCA_BUILD_ompi_fs_lustre_DSO_TRUE}" && test -z "${MCA_BUILD_ompi_fs_lustre_DSO_FALSE}"; then as_fn_error $? "conditional \"MCA_BUILD_ompi_fs_lustre_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -402219,6 +429139,30 @@ as_fn_error $? "conditional \"MCA_BUILD_ompi_mtl_psm2_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${MCA_BUILD_ompi_op_has_avx512_support_TRUE}" && test -z "${MCA_BUILD_ompi_op_has_avx512_support_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_ompi_op_has_avx512_support\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MCA_BUILD_ompi_op_has_avx2_support_TRUE}" && test -z "${MCA_BUILD_ompi_op_has_avx2_support_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_ompi_op_has_avx2_support\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MCA_BUILD_ompi_op_has_avx_support_TRUE}" && test -z "${MCA_BUILD_ompi_op_has_avx_support_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_ompi_op_has_avx_support\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MCA_BUILD_ompi_op_has_sse41_support_TRUE}" && test -z "${MCA_BUILD_ompi_op_has_sse41_support_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_ompi_op_has_sse41_support\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MCA_BUILD_ompi_op_has_sse3_support_TRUE}" && test -z "${MCA_BUILD_ompi_op_has_sse3_support_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_ompi_op_has_sse3_support\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MCA_BUILD_ompi_op_avx_DSO_TRUE}" && test -z "${MCA_BUILD_ompi_op_avx_DSO_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_ompi_op_avx_DSO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MCA_BUILD_ompi_osc_sm_DSO_TRUE}" && test -z "${MCA_BUILD_ompi_osc_sm_DSO_FALSE}"; then as_fn_error $? "conditional \"MCA_BUILD_ompi_osc_sm_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -402347,6 +429291,10 @@ as_fn_error $? "conditional \"MCA_BUILD_oshmem_scoll_fca_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${MCA_BUILD_oshmem_scoll_ucc_DSO_TRUE}" && test -z "${MCA_BUILD_oshmem_scoll_ucc_DSO_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_oshmem_scoll_ucc_DSO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MCA_BUILD_oshmem_spml_ikrit_DSO_TRUE}" && test -z "${MCA_BUILD_oshmem_spml_ikrit_DSO_FALSE}"; then as_fn_error $? "conditional \"MCA_BUILD_oshmem_spml_ikrit_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -402792,7 +429740,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Open MPI $as_me 4.0.3, which was +This file was extended by Open MPI $as_me 4.1.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -402858,7 +429806,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Open MPI config.status 4.0.3 +Open MPI config.status 4.1.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -403471,6 +430419,7 @@ "ompi/mpi/fortran/configure-fortran-output.h") CONFIG_FILES="$CONFIG_FILES ompi/mpi/fortran/configure-fortran-output.h" ;; "opal/mca/common/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/common/Makefile" ;; "opal/mca/common/cuda/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/common/cuda/Makefile" ;; + "opal/mca/common/ofi/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/common/ofi/Makefile" ;; "opal/mca/common/sm/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/common/sm/Makefile" ;; "opal/mca/common/ucx/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/common/ucx/Makefile" ;; "opal/mca/common/verbs/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/common/verbs/Makefile" ;; @@ -403484,6 +430433,7 @@ "opal/mca/backtrace/none/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/backtrace/none/Makefile" ;; "opal/mca/btl/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/btl/Makefile" ;; "opal/mca/btl/self/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/btl/self/Makefile" ;; + "opal/mca/btl/ofi/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/btl/ofi/Makefile" ;; "opal/mca/btl/openib/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/btl/openib/Makefile" ;; "opal/mca/btl/portals4/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/btl/portals4/Makefile" ;; "opal/mca/btl/sm/Makefile") CONFIG_FILES="$CONFIG_FILES opal/mca/btl/sm/Makefile" ;; @@ -403636,6 +430586,7 @@ "orte/mca/schizo/ompi/Makefile") CONFIG_FILES="$CONFIG_FILES orte/mca/schizo/ompi/Makefile" ;; "orte/mca/schizo/orte/Makefile") CONFIG_FILES="$CONFIG_FILES orte/mca/schizo/orte/Makefile" ;; "orte/mca/schizo/alps/Makefile") CONFIG_FILES="$CONFIG_FILES orte/mca/schizo/alps/Makefile" ;; + "orte/mca/schizo/jsm/Makefile") CONFIG_FILES="$CONFIG_FILES orte/mca/schizo/jsm/Makefile" ;; "orte/mca/schizo/moab/Makefile") CONFIG_FILES="$CONFIG_FILES orte/mca/schizo/moab/Makefile" ;; "orte/mca/schizo/singularity/Makefile") CONFIG_FILES="$CONFIG_FILES orte/mca/schizo/singularity/Makefile" ;; "orte/mca/schizo/slurm/Makefile") CONFIG_FILES="$CONFIG_FILES orte/mca/schizo/slurm/Makefile" ;; @@ -403656,7 +430607,9 @@ "ompi/mca/bml/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/bml/Makefile" ;; "ompi/mca/bml/r2/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/bml/r2/Makefile" ;; "ompi/mca/coll/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/coll/Makefile" ;; + "ompi/mca/coll/adapt/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/coll/adapt/Makefile" ;; "ompi/mca/coll/basic/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/coll/basic/Makefile" ;; + "ompi/mca/coll/han/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/coll/han/Makefile" ;; "ompi/mca/coll/inter/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/coll/inter/Makefile" ;; "ompi/mca/coll/libnbc/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/coll/libnbc/Makefile" ;; "ompi/mca/coll/self/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/coll/self/Makefile" ;; @@ -403668,9 +430621,11 @@ "ompi/mca/coll/hcoll/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/coll/hcoll/Makefile" ;; "ompi/mca/coll/monitoring/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/coll/monitoring/Makefile" ;; "ompi/mca/coll/portals4/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/coll/portals4/Makefile" ;; + "ompi/mca/coll/ucc/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/coll/ucc/Makefile" ;; "ompi/mca/crcp/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/crcp/Makefile" ;; "ompi/mca/crcp/bkmrk/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/crcp/bkmrk/Makefile" ;; "ompi/mca/fbtl/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/fbtl/Makefile" ;; + "ompi/mca/fbtl/ime/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/fbtl/ime/Makefile" ;; "ompi/mca/fbtl/posix/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/fbtl/posix/Makefile" ;; "ompi/mca/fbtl/pvfs2/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/fbtl/pvfs2/Makefile" ;; "ompi/mca/fcoll/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/fcoll/Makefile" ;; @@ -403680,6 +430635,8 @@ "ompi/mca/fcoll/two_phase/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/fcoll/two_phase/Makefile" ;; "ompi/mca/fcoll/vulcan/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/fcoll/vulcan/Makefile" ;; "ompi/mca/fs/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/fs/Makefile" ;; + "ompi/mca/fs/gpfs/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/fs/gpfs/Makefile" ;; + "ompi/mca/fs/ime/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/fs/ime/Makefile" ;; "ompi/mca/fs/lustre/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/fs/lustre/Makefile" ;; "ompi/mca/fs/pvfs2/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/fs/pvfs2/Makefile" ;; "ompi/mca/fs/ufs/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/fs/ufs/Makefile" ;; @@ -403693,6 +430650,7 @@ "ompi/mca/mtl/psm/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/mtl/psm/Makefile" ;; "ompi/mca/mtl/psm2/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/mtl/psm2/Makefile" ;; "ompi/mca/op/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/op/Makefile" ;; + "ompi/mca/op/avx/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/op/avx/Makefile" ;; "ompi/mca/osc/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/osc/Makefile" ;; "ompi/mca/osc/sm/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/osc/sm/Makefile" ;; "ompi/mca/osc/monitoring/Makefile") CONFIG_FILES="$CONFIG_FILES ompi/mca/osc/monitoring/Makefile" ;; @@ -403732,6 +430690,7 @@ "oshmem/mca/scoll/basic/Makefile") CONFIG_FILES="$CONFIG_FILES oshmem/mca/scoll/basic/Makefile" ;; "oshmem/mca/scoll/mpi/Makefile") CONFIG_FILES="$CONFIG_FILES oshmem/mca/scoll/mpi/Makefile" ;; "oshmem/mca/scoll/fca/Makefile") CONFIG_FILES="$CONFIG_FILES oshmem/mca/scoll/fca/Makefile" ;; + "oshmem/mca/scoll/ucc/Makefile") CONFIG_FILES="$CONFIG_FILES oshmem/mca/scoll/ucc/Makefile" ;; "oshmem/mca/spml/Makefile") CONFIG_FILES="$CONFIG_FILES oshmem/mca/spml/Makefile" ;; "oshmem/mca/spml/ikrit/Makefile") CONFIG_FILES="$CONFIG_FILES oshmem/mca/spml/ikrit/Makefile" ;; "oshmem/mca/spml/ucx/Makefile") CONFIG_FILES="$CONFIG_FILES oshmem/mca/spml/ucx/Makefile" ;; @@ -403793,6 +430752,7 @@ "orte/Makefile") CONFIG_FILES="$CONFIG_FILES orte/Makefile" ;; "orte/include/Makefile") CONFIG_FILES="$CONFIG_FILES orte/include/Makefile" ;; "orte/etc/Makefile") CONFIG_FILES="$CONFIG_FILES orte/etc/Makefile" ;; + "orte/orted/orted-mpir/Makefile") CONFIG_FILES="$CONFIG_FILES orte/orted/orted-mpir/Makefile" ;; "orte/tools/orted/Makefile") CONFIG_FILES="$CONFIG_FILES orte/tools/orted/Makefile" ;; "orte/tools/orterun/Makefile") CONFIG_FILES="$CONFIG_FILES orte/tools/orterun/Makefile" ;; "orte/tools/wrappers/Makefile") CONFIG_FILES="$CONFIG_FILES orte/tools/wrappers/Makefile" ;; diff -Nru openmpi-4.0.3/configure.ac openmpi-4.1.4/configure.ac --- openmpi-4.0.3/configure.ac 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/configure.ac 2022-05-29 09:51:40.000000000 +0000 @@ -20,8 +20,8 @@ # Copyright (c) 2013 Mellanox Technologies, Inc. # All rights reserved. # Copyright (c) 2013-2019 Intel, Inc. All rights reserved. -# Copyright (c) 2014-2017 Research Organization for Information Science -# and Technology (RIST). All rights reserved. +# Copyright (c) 2014-2021 Research Organization for Information Science +# and Technology (RIST). All rights reserved. # Copyright (c) 2016-2017 IBM Corporation. All rights reserved. # Copyright (c) 2018 Amazon.com, Inc. or its affiliates. # All Rights reserved. @@ -111,6 +111,25 @@ # Make configure depend on the VERSION file, since it's used in AC_INIT AC_SUBST([CONFIGURE_DEPENDENCIES], ['$(top_srcdir)/VERSION']) +# Sanity checks +AC_DEFUN([OMPI_CHECK_DIR_FOR_SPACES],[ + dir="$1" + article="$2" + label="$3" + + AC_MSG_CHECKING([directory of $label]) + AC_MSG_RESULT([$dir]) + AS_IF([test -n "`echo $dir | grep ' '`"], + [AC_MSG_WARN([This version of Open MPI does not support $article $label]) + AC_MSG_WARN([with a path that contains spaces]) + AC_MSG_ERROR([Cannot continue.])]) +]) + +ompi_dir=`pwd` +OMPI_CHECK_DIR_FOR_SPACES([$ompi_dir], [a], [build tree]) +OMPI_CHECK_DIR_FOR_SPACES([$srcdir], [a], [source tree]) +OMPI_CHECK_DIR_FOR_SPACES([$prefix], [a], [prefix]) + opal_show_subtitle "Checking versions" # Get the version of OMPI that we are installing @@ -154,6 +173,7 @@ # transparently by adding some intelligence in autogen.pl # and/or opal_mca.m4, but I don't have the cycles to do this # right now. +AC_SUBST(libmca_opal_common_ofi_so_version) AC_SUBST(libmca_opal_common_cuda_so_version) AC_SUBST(libmca_opal_common_sm_so_version) AC_SUBST(libmca_opal_common_ugni_so_version) @@ -260,8 +280,7 @@ OPAL_CONFIGURE_OPTIONS OPAL_CHECK_OS_FLAVORS OPAL_CHECK_CUDA -OPAL_CHECK_PMI -OPAL_CHECK_PMIX +OPAL_CHECK_ALL_PMI m4_ifdef([project_orte], [ORTE_CONFIGURE_OPTIONS]) m4_ifdef([project_ompi], [OMPI_CONFIGURE_OPTIONS]) m4_ifdef([project_oshmem], [OSHMEM_CONFIGURE_OPTIONS]) @@ -1331,10 +1350,13 @@ # autoconf macro defines in mpi.h. Since AC sometimes changes whether # things are defined as null tokens or an integer result, two projects # with different versions of AC can cause problems. -if test $ac_cv_header_stdc = yes; then - AC_DEFINE(OPAL_STDC_HEADERS, 1, - [Do not use outside of mpi.h. Define to 1 if you have the ANSI C header files.]) -fi + +# According to the autoconf 2.67 documentation the AC_HEADER_STDC macro, +# and therefore the ac_cv_header_stdc cache variable, is obsolescent, as +# current systems have conforming header files. Instead of removing the +# protection completely, let's just make sure it is always on. +AC_DEFINE(OPAL_STDC_HEADERS, 1, + [Do not use outside of mpi.h. Define to 1 if you have the ANSI C header files.]) if test $ac_cv_header_sys_time_h = yes ; then AC_DEFINE(OPAL_HAVE_SYS_TIME_H, 1, [Do not use outside of mpi.h. Define to 1 if you have the header file.]) diff -Nru openmpi-4.0.3/contrib/dist/mofed/debian/changelog openmpi-4.1.4/contrib/dist/mofed/debian/changelog --- openmpi-4.0.3/contrib/dist/mofed/debian/changelog 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/contrib/dist/mofed/debian/changelog 2022-05-29 09:51:40.000000000 +0000 @@ -1,4 +1,4 @@ -openmpi (4.0.3) unstable; urgency=low +openmpi (4.1.4) unstable; urgency=low * Initial release. diff -Nru openmpi-4.0.3/contrib/dist/mofed/debian/copyright openmpi-4.1.4/contrib/dist/mofed/debian/copyright --- openmpi-4.0.3/contrib/dist/mofed/debian/copyright 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/contrib/dist/mofed/debian/copyright 2022-05-29 09:51:40.000000000 +0000 @@ -8,7 +8,7 @@ Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana University Research and Technology Corporation. All rights reserved. -Copyright (c) 2004-2019 The University of Tennessee and The University +Copyright (c) 2004-2020 The University of Tennessee and The University of Tennessee Research Foundation. All rights reserved. Copyright (c) 2004-2019 High Performance Computing Center Stuttgart, @@ -17,15 +17,15 @@ All rights reserved. Copyright (c) 2006-2018 Los Alamos National Security, LLC. All rights reserved. -Copyright (c) 2006-2019 Cisco Systems, Inc. All rights reserved. +Copyright (c) 2006-2020 Cisco Systems, Inc. All rights reserved. Copyright (c) 2006-2010 Voltaire, Inc. All rights reserved. Copyright (c) 2006-2018 Sandia National Laboratories. All rights reserved. Copyright (c) 2006-2010 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. -Copyright (c) 2006-2019 The University of Houston. All rights reserved. +Copyright (c) 2006-2020 The University of Houston. All rights reserved. Copyright (c) 2006-2009 Myricom, Inc. All rights reserved. Copyright (c) 2007-2018 UT-Battelle, LLC. All rights reserved. -Copyright (c) 2007-2019 IBM Corporation. All rights reserved. +Copyright (c) 2007-2020 IBM Corporation. All rights reserved. Copyright (c) 1998-2005 Forschungszentrum Juelich, Juelich Supercomputing Centre, Federal Republic of Germany Copyright (c) 2005-2008 ZIH, TU Dresden, Federal Republic of Germany @@ -51,12 +51,13 @@ Copyright (c) 2011-2019 Fujitsu Limited. All rights reserved. Copyright (c) 2014-2015 Hewlett-Packard Development Company, LP. All rights reserved. -Copyright (c) 2013-2019 Research Organization for Information Science (RIST). +Copyright (c) 2013-2020 Research Organization for Information Science (RIST). All rights reserved. -Copyright (c) 2017-2018 Amazon.com, Inc. or its affiliates. All Rights +Copyright (c) 2017-2020 Amazon.com, Inc. or its affiliates. All Rights reserved. -Copyright (c) 2019 Triad National Security, LLC. All rights +Copyright (c) 2019-2020 Triad National Security, LLC. All rights reserved. +Copyright (c) 2020-2021 Cornelis Networks, Inc. All rights reserved. $COPYRIGHT$ diff -Nru openmpi-4.0.3/contrib/Makefile.in openmpi-4.1.4/contrib/Makefile.in --- openmpi-4.0.3/contrib/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/contrib/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -128,6 +128,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -135,6 +137,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -158,6 +161,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -260,6 +264,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -267,6 +272,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -347,6 +353,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -369,9 +376,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -381,6 +392,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -401,6 +413,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -608,6 +621,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1428,6 +1444,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1460,9 +1480,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1483,6 +1512,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1567,9 +1597,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1630,6 +1657,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1643,6 +1673,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/contrib/platform/mellanox/optimized.conf openmpi-4.1.4/contrib/platform/mellanox/optimized.conf --- openmpi-4.0.3/contrib/platform/mellanox/optimized.conf 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/contrib/platform/mellanox/optimized.conf 2022-05-29 09:51:40.000000000 +0000 @@ -10,6 +10,7 @@ # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. # Copyright (c) 2006 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2019 Mellanox Technologies. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -60,6 +61,9 @@ coll = ^ml hwloc_base_binding_policy = core btl = self +pml_ucx_tls = any +pml_ucx_devices = any +opal_common_ucx_opal_mem_hooks = 0 # Basic behavior to smooth startup mca_base_component_show_load_errors = 0 orte_abort_timeout = 10 @@ -84,4 +88,8 @@ coll_tuned_alltoall_large_msg = 250000 coll_tuned_alltoall_min_procs = 2048 coll_tuned_alltoall_algorithm_max_requests = 8 +coll_tuned_scatter_intermediate_msg = 8192 +coll_tuned_scatter_large_msg = 250000 +coll_tuned_scatter_min_procs = 1048510 +coll_tuned_scatter_algorithm_max_requests = 64 diff -Nru openmpi-4.0.3/debian/changelog openmpi-4.1.4/debian/changelog --- openmpi-4.0.3/debian/changelog 2020-08-07 19:42:18.000000000 +0000 +++ openmpi-4.1.4/debian/changelog 2022-09-15 19:36:38.000000000 +0000 @@ -1,56 +1,406 @@ -openmpi (4.0.3-0ubuntu1~16.04.sav0) xenial; urgency=medium +openmpi (4.1.4-2~16.04.sav0) xenial; urgency=medium * Backport to Xenial - * debian/control: Set debhelper-compat (= 10) BD (LP highest for Xenial) + * debian/control: Add dh-exec BD (compat level < 13) + - Set debhelper-compat (= 10) BD (Launchpad highest for Xenial) + * d/libopenmpi*.{install,links},not-installed: Add dh-exec shebang, chmod +x + * debian/rules: Add --with fortran_mod to dh invocation for dh_fortran_mod + * Build against libgfortran5 from GCC >= 8 (consistency with newer series): + - debian/control: Add g++ (>= 4:9.3.0-1~) BD (ppa:savoury1/gcc-defaults-9) * Due psm2 requiring kernel >= 4.5 (psm2 uses event types not in kernel 4.4): - debian/control: Remove libpsm2-dev build dependency - - debian/rules: Change "PSM2_ARCH:= amd64" to "PSM2_ARCH:= none" + - debian/rules: Change "PSM2_ARCH:= amd64" -> "PSM2_ARCH:= none" - -- Rob Savoury Fri, 07 Aug 2020 12:42:18 -0700 + -- Rob Savoury Thu, 15 Sep 2022 12:36:38 -0700 -openmpi (4.0.3-0ubuntu1) focal; urgency=medium +openmpi (4.1.4-2) unstable; urgency=medium - * New upstream release (LP: #1870780) + * Fix broken oshmem symlink. Closes: #1009748 - -- Graham Inggs Wed, 15 Apr 2020 07:36:51 +0000 + -- Alastair McKinstry Sat, 03 Sep 2022 15:47:37 +0100 -openmpi (4.0.3~rc4-0ubuntu2) focal; urgency=medium +openmpi (4.1.4-1) unstable; urgency=medium - * debian/control: Enable default-jdk build-dep on riscv64 now that Java's - enabled on riscv64 (fixes FTBFS since 4.0.2-3). + * New upstream release + * Update links: + - libmpi.so.40.30.3 -> libmpi.so.40.30.4 + - /libmca_common_ompio.so.41.29.3 -> /libmca_common_ompio.so.41.29.4 + * Standards-Versoin: 4.6.1 - -- William Grant Sun, 05 Apr 2020 18:51:01 +1000 + -- Alastair McKinstry Sun, 29 May 2022 10:51:27 +0100 -openmpi (4.0.3~rc4-0ubuntu1) focal; urgency=medium +openmpi (4.1.3-2) unstable; urgency=medium - * New upstream release candidate. + * Update links: + - libmca_common_ompio.so.41.29.2 -> libmca_common_ompio.so.41.29.3 + - libmca_common_ucx.so.40.30.1 -> libmca_common_ucx.so.40.30.2 + Closes: #1008966 + * Fix autopkgtest that was incorrectly silent: Closes: #1009263 - -- Matthias Klose Tue, 03 Mar 2020 20:37:39 +0100 + -- Alastair McKinstry Mon, 11 Apr 2022 08:32:17 +0100 -openmpi (4.0.3~rc3-0ubuntu3) focal; urgency=medium +openmpi (4.1.3-1) unstable; urgency=medium - * Fix installation of libmca_common_ompio. + * New upstream release + * Update links: + - libmpi.so.40.30.2 -> libmpi.so.4.0.30.2 + - libompitrace.so.40.30.0 -> libompitrace.so.40.30.1 - -- Matthias Klose Fri, 28 Feb 2020 23:20:59 +0100 + -- Alastair McKinstry Sat, 02 Apr 2022 09:05:27 +0100 -openmpi (4.0.3~rc3-0ubuntu2) focal; urgency=medium +openmpi (4.1.2-2) unstable; urgency=medium - * New upstream release candidate. + * Add link for mpifort-wrapper-data. Closes: #1006453 - -- Matthias Klose Wed, 26 Feb 2020 12:52:08 +0100 + -- Alastair McKinstry Tue, 01 Mar 2022 12:39:43 +0000 -openmpi (4.0.2-5ubuntu2) focal; urgency=medium +openmpi (4.1.2-1) unstable; urgency=medium - * Also disable the direct build-dependency on libibverbs-dev (from - rdma-core) on i386. + * Nww upstream release - -- Steve Langasek Tue, 28 Jan 2020 21:01:24 -0800 + -- Alastair McKinstry Sun, 28 Nov 2021 08:20:25 +0000 -openmpi (4.0.2-5ubuntu1) focal; urgency=medium +openmpi (4.1.2~rc1-5) unstable; urgency=medium - * Disable libfabric support on i386 to avoid pulling in rdma-core. + * Drop unused and broken link to libopen-orted-mpir.so - -- Steve Langasek Mon, 27 Jan 2020 12:40:16 -0800 + -- Alastair McKinstry Wed, 27 Oct 2021 09:08:51 +0100 + +openmpi (4.1.2~rc1-4) unstable; urgency=medium + + * Move java docs to openmpi-doc package + * Add Breaks/Replaces for file move libopenmpi-dev -> openmpi-doc + * Delete obsolete breaks/replaces + + -- Alastair McKinstry Wed, 29 Sep 2021 11:49:06 +0100 + +openmpi (4.1.2~rc1-3) unstable; urgency=medium + + * Update versions: + - libmca_common_ompio.so 41.29.1 -> 41.29.2 + - libmca_common_ofi.so 10.0.1 -> 10.0.2 + Closes: #995150 + * Add autopkg test for unlinked shared libs + * Add alpha, ppc64, sparc64 to the 'nojava' arch list + * Only install javadocs via d/rules inside conditional + + -- Alastair McKinstry Tue, 28 Sep 2021 08:11:18 +0100 + +openmpi (4.1.2~rc1-2) unstable; urgency=medium + + * Drop deprecated "stage1" build profile in favour of "nojava" + * Don't depend on libfabric-dev on sh4, powerpc, x32 + * Only install java wrapper script on java platforms (not hurd) + * Don't try to build java support on kfreebsd-* + + -- Alastair McKinstry Sun, 26 Sep 2021 10:55:45 +0100 + +openmpi (4.1.2~rc1-1) experimental; urgency=medium + + * New upstream release + * Drop merged patches: + - pr8827.patch + - no-ship-orted-mpir.patch + - pr8596.patch + * Update libversions: + - libmpi.so.40.30.1 -> libmpi.so.40.30.2 + - libmpi_cxx.so.40.30.0 -> libmpi_cxx.so.40.30.1 + - libopen-pal.so.40.30.1 -> libopen-pal.so.40.30.2 + - libopen-rte.so.40.30.1 -> libopen-rte.so.40.30.2 + + -- Alastair McKinstry Sat, 25 Sep 2021 13:20:47 +0100 + +openmpi (4.1.1-5) unstable; urgency=medium + + * Include pr8596.patch from 4.1.0-9 in 4.1.1 + + -- Alastair McKinstry Wed, 08 Sep 2021 14:07:52 +0100 + +openmpi (4.1.1-4) unstable; urgency=medium + + * Don't ship libopen-orted-mpir.so. Patch from upstream for 4.1.2 + internal lib only. + * Also exclude mtl ofi to deal with libfabric fork in tests. + Closes: #979041 + + -- Alastair McKinstry Thu, 02 Sep 2021 13:31:02 +0100 + +openmpi (4.1.1-3) unstable; urgency=medium + + * Don't embed username, hostname in binaries. Closes: #990254. + Thanks, Vagrant Cascadian + * Ship libopen-orted-mpir.so in -dev pkg only. Closes: #993041, #993038 + * Close bug fixed in previous release. Closes: #945120 + * Fix FTBFS with missing javadocs in stage1/no java builds. + Closes: #979877, #975995 + + -- Alastair McKinstry Fri, 27 Aug 2021 12:04:06 +0100 + +openmpi (4.1.1-2) unstable; urgency=medium + + * Ensure libopen-orted-mpir.so is shipped + * Update so minor versions on libmca_common_ofi, libmca_common_ompio. + Closes: #989111 + * Enable IPv6. Closes: #989694. + * Standards-Version: 4.6.0; no changes required + * Build with autoconf 2.71 ; Closes: #978878 + + -- Alastair McKinstry Thu, 26 Aug 2021 09:28:50 +0100 + +openmpi (4.1.1-1) experimental; urgency=medium + + * New upstream release + * Patches merged upstream: + - external-pmix-fix.patch + - external-pmix-fix.patch + - grequest-fix.patch + + -- Alastair McKinstry Tue, 11 May 2021 10:11:22 +0100 + +openmpi (4.1.0-10) unstable; urgency=medium + + * Rebuild against ucx 1.10.1~rc1+really.1.10.0-1 for buster + + -- Alastair McKinstry Thu, 27 May 2021 09:16:24 +0100 + +openmpi (4.1.0-9) unstable; urgency=medium + + * Pull fix for Memory leak in MPI_Allreduce when using a repeatedly created + and freed MPI_Datatype. Closes: #987261 + * Workaround for mpirun crashes when trying to schedule a task on + a foreign host. Closes: #984956 + + -- Alastair McKinstry Thu, 13 May 2021 14:01:44 +0100 + +openmpi (4.1.0-8) unstable; urgency=medium + + * Ship mpiijavac.pl script. Closes: #984962 + + -- Alastair McKinstry Thu, 11 Mar 2021 18:29:08 +0000 + +openmpi (4.1.0-7) unstable; urgency=medium + + * Also disable ofi BTL to avoid libfabric issues + (user can re-enable on systems with RDMA hardware) + Closes: #979041 + * Backport grequest fix from 4.1.x. Closes: #979480 + + -- Alastair McKinstry Wed, 20 Jan 2021 17:22:18 +0000 + +openmpi (4.1.0-6) unstable; urgency=medium + + * Disable UCX by default to avoid spurious errors on systems + without rdmacm hardware. Closes: #90033 + + -- Alastair McKinstry Thu, 14 Jan 2021 11:43:39 +0000 + +openmpi (4.1.0-5) unstable; urgency=medium + + * libfabric-dev now available on all bar hurd, kfreebsd + * libnuma-dev now available on all bar hurd, kfreebsd + * Exclude openib by default, update README.Debian to explain. + * Patch to detect pmix 4. Closes: #979041 + + -- Alastair McKinstry Sat, 09 Jan 2021 19:42:23 +0000 + +openmpi (4.1.0-4) unstable; urgency=mediuzm + + * Rename some scripts to drop language suffix + - aggregate_profile.pl -> aggregate_profile + - profile2mat.pl -> profile2man + * Drop dependencies on libpmix* as we use the internal version + * Fix for missing plugin mca_op_avx.so. Closes: #979041, #978496 + * Update shymlink to jquery.js for version number change + + -- Alastair McKinstry Sun, 03 Jan 2021 22:22:09 +0000 + +openmpi (4.1.0-3) unstable; urgency=medium + + * Set -latomic on some archs for pmix + * Fix overreaching find in d/rules + * Make install of shmemc++.1 conditional + + -- Alastair McKinstry Mon, 28 Dec 2020 17:17:04 +0000 + +openmpi (4.1.0-2) unstable; urgency=medium + + * Update d/watch file + * Use internal pmix until pmix 4.0 supported. + Closes: #978022, #978308, #978203, #978066 + + -- Alastair McKinstry Sun, 27 Dec 2020 14:38:05 +0000 + +openmpi (4.1.0-1) unstable; urgency=medium + + * New upstream release + - minor lib versions updated to 40.30.0 + * Standards-Version: 4.5.1 + + -- Alastair McKinstry Mon, 21 Dec 2020 10:56:34 +0000 + +openmpi (4.0.5-7) unstable; urgency=medium + + * Undo NO_PMIX_ARCH for armel, mipsel no longer needed as atomic + primitives now provided in external pmix. Closes: #971669 + + -- Alastair McKinstry Wed, 14 Oct 2020 20:08:08 +0100 + +openmpi (4.0.5-6) unstable; urgency=medium + + * Update VCS-* headers to point to debian/latest branch. Closes: #970707 + * Rebuild to drop build of mca_pmix_pmix3.so on armel/mipsel (triggered by + misconfig in pmix package) ? + + -- Alastair McKinstry Mon, 12 Oct 2020 08:46:30 +0100 + +openmpi (4.0.5-5) unstable; urgency=medium + + * Drop amd64 from NO_PMIX_ARCH (debugging test). Closes: #970698 + * Update Breaks/Replaces to cope with bug regression below + + -- Alastair McKinstry Mon, 21 Sep 2020 21:29:06 +0100 + +openmpi (4.0.5-4) unstable; urgency=medium + + * Regression fix: man pages belong in openmpi-bin, Closes: #970442 + * Set B-D on libpmix-dev. Closes: #970193 + * Add dependency on libevent-dev to libopenmpi-dev. Closes: #945121 + + -- Alastair McKinstry Thu, 17 Sep 2020 11:25:15 +0100 + +openmpi (4.0.5-3) unstable; urgency=medium + + * Revert autogenerated vars in preinst/postinst. Closes: #970036 + * Update pmix path for libpmix-dev >= 3.2.0rc1-2 + * Ack. bug closed due to mpi4py test disabled: Closes: #965352. + + -- Alastair McKinstry Sat, 12 Sep 2020 12:33:38 +0100 + +openmpi (4.0.5-2) unstable; urgency=medium + + * in binary-indep builds, ignore stuff thats not installed (d/not-installed) + + -- Alastair McKinstry Thu, 10 Sep 2020 09:18:52 +0100 + +openmpi (4.0.5-1) unstable; urgency=medium + + * New upstream release + * Update libversions: + libmpi.so 40.20.4 -> 40.20.5 + libopen-pal.so 40.20.4 -> 40.20.5 + libopen-rte.so 40.20.4 -> 40.20.5 + libmpi_usempif08: 40.21.1 -> 40.21.2 + * Add libpmix-dev as Dependency of libopenmpi-dev + * Depend on libjs-jquery-ui in -dev pkg rather than use external version + * Move to debhelper 13; use DEB_HOST_MULTIARCH vars rather than autogenerated + link, install files + * Drop use_openib patch now that UCX enabled + * Change gdb.conf and branch names to match DEP-14 recommendations + + -- Alastair McKinstry Wed, 09 Sep 2020 16:48:29 +0100 + +openmpi (4.0.4-2) unstable; urgency=medium + + * Re-enable liboshmem.so + * Se hwloc to external for clarity + * Enable UCX support + - Add libmca_common_ucx.so lib + * Tidy up d/rules to use more dh_* commands not cp/mv + * Ship javadocs in libopenmpi-dev + + -- Alastair McKinstry Wed, 15 Jul 2020 07:59:50 +0100 + +openmpi (4.0.4-1) unstable; urgency=medium + + * New upstream release + * Update libversions: + libmpi.so 40.20.3 -> 40.20.4 + libopen-pal.so 40.20.3 -> 40.20.4 + libopen-rte.so 40.20.3 -> 40.20.4 + libmpi_usempif08: 40.21.0 -> 40.21.1 + * Updated build config for ia64, thanks to John Paul Adrian Glaubitz. + Closes: #963729 + + -- Alastair McKinstry Thu, 02 Jul 2020 08:42:05 +0100 + +openmpi (4.0.3-9) unstable; urgency=medium + + * Add config to use Infiniband on 4.0+. Closes: #962180 + + -- Alastair McKinstry Tue, 09 Jun 2020 17:09:51 +0100 + +openmpi (4.0.3-8) unstable; urgency=medium + + * Undo 64-bit; + * Add breaks to avoid libhwloc.so.5/so.15 collision. Closes: #961631 + + -- Alastair McKinstry Thu, 28 May 2020 16:35:04 +0100 + +openmpi (4.0.3-7) experimental; urgency=medium + + * Experimental full 64-bit build + + -- Alastair McKinstry Wed, 20 May 2020 12:12:06 +0100 + +openmpi (4.0.3-6) unstable; urgency=medium + + * libopenmpi-dev now depends on zlib1g-dev + + -- Alastair McKinstry Sun, 12 Apr 2020 12:47:29 +0100 + +openmpi (4.0.3-5) unstable; urgency=medium + + * Fix autopkgtest scripts to run in right directory; dep on gcc, gfortran + * Correct JAVA condition so its not built on hppa. Closes: #956161 + + -- Alastair McKinstry Fri, 10 Apr 2020 14:02:54 +0100 + +openmpi (4.0.3-4) unstable; urgency=medium + + * Hard-code GFORTRAN_VERSION as gfortran-mod-15 for the moment to avoid + pulling arch-dep stuff into openmpi-common (mpi wrappers) + + -- Alastair McKinstry Wed, 08 Apr 2020 14:19:09 +0100 + +openmpi (4.0.3-3) unstable; urgency=medium + + * Fix broken link for libmpi_usempi_ignore_tkr.so + + -- Alastair McKinstry Tue, 07 Apr 2020 13:56:17 +0100 + +openmpi (4.0.3-2) unstable; urgency=medium + + * Fix broken psm conditional that causes FTBFS on non-intel archs + * Use gcc rather than patchelf to change sonames for gfortan libs; + patchelf causes ldconfig to create wierd files and breaks dwz + Closes: #955708 + * Ensure mpif*.h headers are also present in the fortran mod dir that + mpif90/mpif77 now searches. Closes: #955749 + + -- Alastair McKinstry Sun, 05 Apr 2020 11:56:15 +0100 + +openmpi (4.0.3-1) unstable; urgency=medium + + * New upstream release. Closes: #954932 + Some lib changes: + - libmpi 40.20.2 -> 40.20.3 + - libopen-pal 40.20.2 -> 40.20.3 + - libopen-rte 40.20.2 -> 40.20.3 + - libmpi_usempif08 40.20.1 -> 40.21.0 + - libmca_common_ompio.so. 41.19.2 -> 41.19.3 + * Standards-Version: 4.5.0 + * Enable java build on riscv64. Closes: #933738 + * Build with both gfortran and flang (where possible) + But don't depend on flang until it supports llvm-9 + * Drop B-D on gcc >= 4, Obsolete + * Don't have openmpi-bin depend on libopenmpi-dev. + THIS MAY BREAK THINGS EXPECTING libopenmpi-dev TO SHIP mpicc*, etc. + THEY SHOULD DEPEND ON MPI-DEFAULT-DEV instead. + * Build without '--with-ltdl'; 4.* uses dlopen directly. + * Use dh-sequence-fortran-mod instead of --with fortran_mod + * Add initial hello_world sanity package tests + + -- Alastair McKinstry Mon, 30 Mar 2020 15:10:13 +0100 openmpi (4.0.2-5) unstable; urgency=medium diff -Nru openmpi-4.0.3/debian/control openmpi-4.1.4/debian/control --- openmpi-4.0.3/debian/control 2020-08-07 19:41:10.000000000 +0000 +++ openmpi-4.1.4/debian/control 2022-09-15 19:36:24.000000000 +0000 @@ -1,45 +1,44 @@ Source: openmpi Section: net Priority: optional -Maintainer: Ubuntu Developers -XSBC-Original-Maintainer: Alastair McKinstry +Maintainer: Alastair McKinstry Uploaders: Manuel Prinz Build-Depends: dpkg-dev (>= 1.16.1~), - dh-fortran-mod (>= 0.11), - debhelper-compat (= 10), - libltdl-dev, + dh-exec, + dh-sequence-fortran-mod, + debhelper-compat (= 10), + g++ (>= 4:9.3.0-1~), libevent-dev, libpmix-dev, + libucx-dev [amd64 arm64 ppc64el], zlib1g-dev, - gfortran | fortran-compiler, - chrpath, + gfortran, libhwloc-dev, pkg-config, - libibverbs-dev (>= 1.1.7) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386 !i386], - libfabric-dev [amd64], + libibverbs-dev (>= 1.1.7) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], + libfabric-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386 !sh4 !powerpc !x32], + libnuma-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libpsm-infinipath1-dev [amd64 i386], - libnuma-dev [amd64 i386 ia64 mips mipsel mipsn32 mipsn32el mips64 mips64el ppc64el], - default-jdk [!hppa !hurd-i386 !ia64] , + default-jdk [!hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !alpha !ppc64 !sparc64] , flex Build-Conflicts: libmpich-dev, libopenmpi-dev -Standards-Version: 4.4.1.0 +Standards-Version: 4.6.1 Homepage: https://www.open-mpi.org/ Vcs-Browser: https://salsa.debian.org/hpc-team/openmpi -Vcs-Git: https://salsa.debian.org/hpc-team/openmpi.git -b debian/master +Vcs-Git: https://salsa.debian.org/hpc-team/openmpi.git -b debian/latest Package: openmpi-bin Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, openmpi-common (>= ${source:Version}), openssh-client | ssh-client -Recommends: libopenmpi-dev Conflicts: openmpi-bin Multi-Arch: foreign Breaks: - libopenmpi-dev (<< 3.0.1~rc2-2), + libopenmpi-dev (<< 4.0.5-3), mpich (<< 3.3~b1-5), libmpich-dev (<< 3.3~b1-5), lam4-dev (<< 7.1.4-4), -Replaces: libopenmpi-dev (<< 3.0.1~rc2-2) +Replaces: libopenmpi-dev (<< 4.0.5-3), Suggests: gfortran | fortran-compiler Description: high performance message passing library -- binaries Open MPI is a project combining technologies and resources from several other @@ -73,13 +72,15 @@ openmpi-common (>= ${source:Version}), libibverbs-dev (>= 1.1.7) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libhwloc-dev, libevent-dev, + libpmix-dev, + libjs-jquery, + libjs-jquery-ui, + zlib1g-dev, openmpi-bin (>= 3.0.0-1) Recommends: libcoarrays-openmpi-dev Conflicts: libopenmpi-dev Breaks: - openmpi-bin (<< 3.0.1~rc2-2), - mpich (<< 3.3~b1-5), - libmpich-dev (<< 3.3~b1-5), + openmpi-doc (<< 4.1.2~rc1-4), lam4-dev (<< 7.1.4-4), Suggests: openmpi-doc Description: high performance message passing library -- header files @@ -95,11 +96,9 @@ Package: libopenmpi3 Section: libs Architecture: any -Recommends: openmpi-bin Multi-Arch: same -Depends: ${shlibs:Depends}, ${misc:Depends}, libhwloc-plugins, libpmix2 (>= 3.0.1-2) -Breaks: libpmix2 (<< 3.0.0-2) -Replaces: libpmix2 (<< 3.0.0-2) +Depends: ${shlibs:Depends}, ${misc:Depends}, libhwloc-plugins, libpmix2 +Breaks: gromacs-openmpi (<< 2020~beta2-2), libeztrace0 (<< 1.1-8-5+b1), starpu-contrib-examples (<< 1.3.2+dfsg-2+b1), starpu-examples (<< 1.3.2+dfsg-4+b1) Description: high performance message passing library -- shared library Open MPI is a project combining technologies and resources from several other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to build the best @@ -127,10 +126,10 @@ Section: doc Architecture: all Multi-Arch: foreign -Depends: ${misc:Depends} +Depends: ${misc:Depends}, libjs-jquery-ui Conflicts: mpi-doc, lam-mpidoc, lam4-dev, openmpi-doc -Replaces: openmpi-checkpoint (<< 1.10.2) -Breaks: openmpi-checkpoint (<< 1.10.2) +Replaces: libopenmpi-dev (<< 4.1.2~rc1-4) +Breaks: libopenmpi-dev (<< 4.1.2~rc1-4) Description: high performance message passing library -- man pages Open MPI is a project combining technologies and resources from several other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to build the best diff -Nru openmpi-4.0.3/debian/gbp.conf openmpi-4.1.4/debian/gbp.conf --- openmpi-4.0.3/debian/gbp.conf 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/gbp.conf 2022-09-03 14:47:37.000000000 +0000 @@ -1,3 +1,5 @@ [DEFAULT] -debian-branch = debian/master +debian-branch = debian/latest pristine-tar = False +upstream-branch = upstream/latest +upstream-tag = upstream/%(version)s diff -Nru openmpi-4.0.3/debian/libopenmpi3.install openmpi-4.1.4/debian/libopenmpi3.install --- openmpi-4.0.3/debian/libopenmpi3.install 2020-02-26 12:11:28.000000000 +0000 +++ openmpi-4.1.4/debian/libopenmpi3.install 2022-09-15 19:34:15.000000000 +0000 @@ -1,13 +1,15 @@ +#! /usr/bin/dh-exec # Shared libraries -usr/lib/*/openmpi/lib/libmca_common_sm.so.40.20.0 -usr/lib/*/openmpi/lib/libmpi_cxx.so.40.20.1 -usr/lib/*/openmpi/lib/libmpi_mpifh.so.40.20.2 -usr/lib/*/openmpi/lib/libmpi.so.40.20.3 -usr/lib/*/openmpi/lib/libmpi_usempif08.so.40.21.0 -usr/lib/*/openmpi/lib/libmpi_usempi_ignore_tkr.so.40.20.0 -usr/lib/*/openmpi/lib/libompitrace.so.40.20.0 -usr/lib/*/openmpi/lib/libopen-pal.so.40.20.3 -usr/lib/*/openmpi/lib/libopen-rte.so.40.20.3 +usr/lib/*/openmpi/lib/libmpi_mpifh*.so.* /usr/lib/${DEB_HOST_MULTIARCH} +usr/lib/*/openmpi/lib/libmpi_usempif08*.so.* /usr/lib/${DEB_HOST_MULTIARCH} +usr/lib/*/openmpi/lib/libmpi_usempi_ignore_tkr*.so.* /usr/lib/${DEB_HOST_MULTIARCH} +usr/lib/*/openmpi/lib/libmca_common_sm.so.* /usr/lib/${DEB_HOST_MULTIARCH} +usr/lib/*/openmpi/lib/libmpi_cxx.so.* /usr/lib/${DEB_HOST_MULTIARCH} +usr/lib/*/openmpi/lib/libmpi.so.* /usr/lib/${DEB_HOST_MULTIARCH} +usr/lib/*/openmpi/lib/libompitrace.so.* /usr/lib/${DEB_HOST_MULTIARCH} +usr/lib/*/openmpi/lib/libopen-pal.so.* /usr/lib/${DEB_HOST_MULTIARCH} +usr/lib/*/openmpi/lib/libopen-rte.so.* /usr/lib/${DEB_HOST_MULTIARCH} ## Plugins usr/lib/*/openmpi/lib/openmpi3/*.so +# usr/lib/*/openmpi/lib/libopen-orted-mpir.so usr/lib/*/openmpi/lib/ompi_monitoring_prof.so diff -Nru openmpi-4.0.3/debian/libopenmpi3.links openmpi-4.1.4/debian/libopenmpi3.links --- openmpi-4.0.3/debian/libopenmpi3.links 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/debian/libopenmpi3.links 2022-09-15 19:34:29.000000000 +0000 @@ -0,0 +1,15 @@ +#! /usr/bin/dh-exec +# Compatibility links to /usr/bin +# SONAME symlinks +usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_sm.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_sm.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_cxx.so.40.30.1 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_cxx.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh-gfortran.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh-gfortran.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/libmpi.so.40.30.4 usr/lib/${DEB_HOST_MULTIARCH}/libmpi.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08-gfortran.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08-gfortran.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr-gfortran.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr-gfortran.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/libompitrace.so.40.30.1 usr/lib/${DEB_HOST_MULTIARCH}/libompitrace.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/libopen-pal.so.40.30.2 usr/lib/${DEB_HOST_MULTIARCH}/libopen-pal.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/libopen-rte.so.40.30.2 usr/lib/${DEB_HOST_MULTIARCH}/libopen-rte.so.40 diff -Nru openmpi-4.0.3/debian/libopenmpi3.links.in openmpi-4.1.4/debian/libopenmpi3.links.in --- openmpi-4.0.3/debian/libopenmpi3.links.in 2020-02-28 19:48:37.000000000 +0000 +++ openmpi-4.1.4/debian/libopenmpi3.links.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -# Compatibility links to /usr/bin -usr/lib/@TRIPLET@/openmpi/lib/libmca_common_sm.so.40.20.0 usr/lib/@TRIPLET@/libmca_common_sm.so.40.20.0 -usr/lib/@TRIPLET@/openmpi/lib/libmpi_cxx.so.40.20.1 usr/lib/@TRIPLET@/libmpi_cxx.so.40.20.1 -usr/lib/@TRIPLET@/openmpi/lib/libmpi_mpifh.so.40.20.2 usr/lib/@TRIPLET@/libmpi_mpifh.so.40.20.2 -usr/lib/@TRIPLET@/openmpi/lib/libmpi.so.40.20.3 usr/lib/@TRIPLET@/libmpi.so.40.20.3 -usr/lib/@TRIPLET@/openmpi/lib/libmpi_usempif08.so.40.21.0 usr/lib/@TRIPLET@/libmpi_usempif08.so.40.21.0 -usr/lib/@TRIPLET@/openmpi/lib/libmpi_usempi_ignore_tkr.so.40.20.0 usr/lib/@TRIPLET@/libmpi_usempi_ignore_tkr.so.40.20.0 -usr/lib/@TRIPLET@/openmpi/lib/libompitrace.so.40.20.0 usr/lib/@TRIPLET@/libompitrace.so.40.20.0 -usr/lib/@TRIPLET@/openmpi/lib/libopen-pal.so.40.20.3 usr/lib/@TRIPLET@/libopen-pal.so.40.20.3 -usr/lib/@TRIPLET@/openmpi/lib/libopen-rte.so.40.20.3 usr/lib/@TRIPLET@/libopen-rte.so.40.20.3 -# SONAME symlinks -usr/lib/@TRIPLET@/libmca_common_sm.so.40.20.0 usr/lib/@TRIPLET@/libmca_common_sm.so.40 -usr/lib/@TRIPLET@/libmpi_cxx.so.40.20.1 usr/lib/@TRIPLET@/libmpi_cxx.so.40 -usr/lib/@TRIPLET@/libmpi_mpifh.so.40.20.2 usr/lib/@TRIPLET@/libmpi_mpifh.so.40 -usr/lib/@TRIPLET@/libmpi.so.40.20.3 usr/lib/@TRIPLET@/libmpi.so.40 -usr/lib/@TRIPLET@/libmpi_usempif08.so.40.21.0 usr/lib/@TRIPLET@/libmpi_usempif08.so.40 -usr/lib/@TRIPLET@/libmpi_usempi_ignore_tkr.so.40.20.0 usr/lib/@TRIPLET@/libmpi_usempi_ignore_tkr.so.40 -usr/lib/@TRIPLET@/libompitrace.so.40.20.0 usr/lib/@TRIPLET@/libompitrace.so.40 -usr/lib/@TRIPLET@/libopen-pal.so.40.20.3 usr/lib/@TRIPLET@/libopen-pal.so.40 -usr/lib/@TRIPLET@/libopen-rte.so.40.20.3 usr/lib/@TRIPLET@/libopen-rte.so.40 diff -Nru openmpi-4.0.3/debian/libopenmpi-dev.dirs openmpi-4.1.4/debian/libopenmpi-dev.dirs --- openmpi-4.0.3/debian/libopenmpi-dev.dirs 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/debian/libopenmpi-dev.dirs 2022-09-03 14:47:37.000000000 +0000 @@ -0,0 +1 @@ +/usr/share/man/man1 diff -Nru openmpi-4.0.3/debian/libopenmpi-dev.install openmpi-4.1.4/debian/libopenmpi-dev.install --- openmpi-4.0.3/debian/libopenmpi-dev.install 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/libopenmpi-dev.install 2022-09-15 19:32:02.000000000 +0000 @@ -1,8 +1,8 @@ +#! /usr/bin/dh-exec ## Library headers -usr/lib/*/openmpi/include/* +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/include/* +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/include/* /usr/lib/${DEB_HOST_MULTIARCH}/fortran/${GFORTRAN_VERSION}/openmpi ## .so symlinks -usr/lib/*/openmpi/lib/*.so +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/lib*.so ## pkg-config .pc files -usr/lib/*/openmpi/lib/pkgconfig/*.pc -# mod files for Fortran -/usr/lib/*/openmpi/lib/*.mod +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/*.pc diff -Nru openmpi-4.0.3/debian/libopenmpi-dev.links openmpi-4.1.4/debian/libopenmpi-dev.links --- openmpi-4.0.3/debian/libopenmpi-dev.links 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/debian/libopenmpi-dev.links 2022-09-15 19:34:07.000000000 +0000 @@ -0,0 +1,47 @@ +#! /usr/bin/dh-exec +## SONAME symlinks +/usr/lib/${DEB_HOST_MULTIARCH}/libmpi.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi.so +usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_monitoring.so.50 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_monitoring.so +usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_sm.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_sm.so +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_cxx.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_cxx.so +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_mpifh.so +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_usempif08.so +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_usempi_ignore_tkr.so +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh-gfortran.so +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08-gfortran.so +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr-gfortran.so +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/fortran/gfortran/libmpi_mpifh.so +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/fortran/gfortran/libmpi_usempif08.so +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/fortran/gfortran/libmpi_usempi_ignore_tkr.so +usr/lib/${DEB_HOST_MULTIARCH}/libompitrace.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libompitrace.so +usr/lib/${DEB_HOST_MULTIARCH}/libopen-pal.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libopen-pal.so +usr/lib/${DEB_HOST_MULTIARCH}/libopen-rte.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libopen-rte.so +## Convenience link for header files, see bug #493875 +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/include/ usr/include/${DEB_HOST_MULTIARCH}/openmpi +# pkg-config +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/ompi-fort.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/ompi-fort.pc +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/orte.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/orte.pc +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/ompi.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/ompi.pc +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/ompi-c.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/ompi-c.pc +# opal.pc bug #814515: opal.pc conflicts with libopal-dev +#usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/opal.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/opal.pc +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/ompi-cxx.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/ompi-cxx.pc +# Historical links; use $LIBDIR/openmpi/lib instead +# libmpi.so is handled by the mpi-${DEB_HOST_MULTIARCH} alternative +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh.so +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08.so +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr.so +usr/lib/${DEB_HOST_MULTIARCH}/libompitrace.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libompitrace.so +usr/lib/${DEB_HOST_MULTIARCH}/libopen-pal.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libopen-pal.so +usr/lib/${DEB_HOST_MULTIARCH}/libopen-rte.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libopen-rte.so +usr/lib/${DEB_HOST_MULTIARCH}/libmpi_cxx.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_cxx.so +usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_monitoring.so.50 usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_monitoring.so +usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_sm.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_sm.so +# JS +#/usr/share/javascript/jquery/jquery.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/external/jquery/jquery.js +#/usr/share/javascript/jquery/jquery.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-3.3.1.js +#/usr/share/javascript/jquery-ui/themes/base/jquery-ui.css /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.css +#/usr/share/javascript/jquery-ui/jquery-ui.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.js +#/usr/share/javascript/jquery-ui/themes/base/jquery-ui.min.css /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.min.css +#/usr/share/javascript/jquery-ui/jquery-ui.min.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.min.js + diff -Nru openmpi-4.0.3/debian/libopenmpi-dev.links.in openmpi-4.1.4/debian/libopenmpi-dev.links.in --- openmpi-4.0.3/debian/libopenmpi-dev.links.in 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/libopenmpi-dev.links.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,22 +0,0 @@ -## SONAME symlinks -# libmpi.so is handled by the mpi-@TRIPLET@ alternative -usr/lib/@TRIPLET@/libmca_common_monitoring.so.50 usr/lib/@TRIPLET@/libmca_common_monitoring.so -# usr/lib/@TRIPLET@/libmca_common_ofi.so.40 usr/lib/@TRIPLET@/libmca_common_ofi.so -usr/lib/@TRIPLET@/libmca_common_sm.so.40 usr/lib/@TRIPLET@/libmca_common_sm.so -usr/lib/@TRIPLET@/libmpi_cxx.so.40 usr/lib/@TRIPLET@/libmpi_cxx.so -usr/lib/@TRIPLET@/libmpi_mpifh.so.40 usr/lib/@TRIPLET@/libmpi_mpifh.so -usr/lib/@TRIPLET@/libmpi_usempif08.so.40 usr/lib/@TRIPLET@/libmpi_usempif08.so -usr/lib/@TRIPLET@/libmpi_usempi_ignore_tkr.so.40 usr/lib/@TRIPLET@/libmpi_usempi_ignore_tkr.so -usr/lib/@TRIPLET@/libompitrace.so.40 usr/lib/@TRIPLET@/libompitrace.so -usr/lib/@TRIPLET@/libopen-pal.so.40 usr/lib/@TRIPLET@/libopen-pal.so -usr/lib/@TRIPLET@/libopen-rte.so.40 usr/lib/@TRIPLET@/libopen-rte.so -## Convenience link for header files, see bug #493875 -usr/lib/@TRIPLET@/openmpi/include/ usr/include/@TRIPLET@/openmpi -# pkg-config -usr/lib/@TRIPLET@/openmpi/lib/pkgconfig/ompi-fort.pc usr/lib/@TRIPLET@/pkgconfig/ompi-fort.pc -usr/lib/@TRIPLET@/openmpi/lib/pkgconfig/orte.pc usr/lib/@TRIPLET@/pkgconfig/orte.pc -usr/lib/@TRIPLET@/openmpi/lib/pkgconfig/ompi.pc usr/lib/@TRIPLET@/pkgconfig/ompi.pc -usr/lib/@TRIPLET@/openmpi/lib/pkgconfig/ompi-c.pc usr/lib/@TRIPLET@/pkgconfig/ompi-c.pc -# opal.pc bug #814515: opal.pc conflicts with libopal-dev -#usr/lib/@TRIPLET@/openmpi/lib/pkgconfig/opal.pc usr/lib/@TRIPLET@/pkgconfig/opal.pc -usr/lib/@TRIPLET@/openmpi/lib/pkgconfig/ompi-cxx.pc usr/lib/@TRIPLET@/pkgconfig/ompi-cxx.pc diff -Nru openmpi-4.0.3/debian/libopenmpi-dev.postinst.in openmpi-4.1.4/debian/libopenmpi-dev.postinst.in --- openmpi-4.0.3/debian/libopenmpi-dev.postinst.in 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/libopenmpi-dev.postinst.in 2022-09-03 14:47:37.000000000 +0000 @@ -5,13 +5,13 @@ if [ "$1" = "configure" ]; then update-alternatives \ - --install /usr/include/@TRIPLET@/mpi mpi-@TRIPLET@ /usr/lib/@TRIPLET@/openmpi/include 50 \ - --slave /usr/lib/@TRIPLET@/libmpi.so libmpi.so-@TRIPLET@ /usr/lib/@TRIPLET@/openmpi/lib/libmpi.so \ - --slave /usr/lib/@TRIPLET@/libmpi++.so libmpi++.so-@TRIPLET@ /usr/lib/@TRIPLET@/openmpi/lib/libmpi_cxx.so \ - --slave /usr/lib/@TRIPLET@/pkgconfig/mpi.pc mpi.pc-@TRIPLET@ /usr/lib/@TRIPLET@/pkgconfig/ompi.pc \ - --slave /usr/lib/@TRIPLET@/pkgconfig/mpi-fort.pc mpi-fort.pc-@TRIPLET@ /usr/lib/@TRIPLET@/pkgconfig/ompi-fort.pc \ - --slave /usr/lib/@TRIPLET@/pkgconfig/mpi-c.pc mpi-c.pc-@TRIPLET@ /usr/lib/@TRIPLET@/pkgconfig/ompi-c.pc \ - --slave /usr/lib/@TRIPLET@/pkgconfig/mpi-cxx.pc mpi-cxx.pc-@TRIPLET@ /usr/lib/@TRIPLET@/pkgconfig/ompi-cxx.pc + --install /usr/include/@DEB_HOST_MULTIARCH@/mpi mpi-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/openmpi/include 50 \ + --slave /usr/lib/@DEB_HOST_MULTIARCH@/libmpi.so libmpi.so-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/openmpi/lib/libmpi.so \ + --slave /usr/lib/@DEB_HOST_MULTIARCH@/libmpi++.so libmpi++.so-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/openmpi/lib/libmpi_cxx.so \ + --slave /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/mpi.pc mpi.pc-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/ompi.pc \ + --slave /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/mpi-fort.pc mpi-fort.pc-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/ompi-fort.pc \ + --slave /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/mpi-c.pc mpi-c.pc-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/ompi-c.pc \ + --slave /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/mpi-cxx.pc mpi-cxx.pc-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/ompi-cxx.pc fi diff -Nru openmpi-4.0.3/debian/libopenmpi-dev.prerm.in openmpi-4.1.4/debian/libopenmpi-dev.prerm.in --- openmpi-4.0.3/debian/libopenmpi-dev.prerm.in 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/libopenmpi-dev.prerm.in 2022-09-03 14:47:37.000000000 +0000 @@ -6,7 +6,7 @@ # this is a M-A:same package which gets regularily deconfigured # during upgrades if multiple architectures are installed if [ "$1" = "remove" ]; then - update-alternatives --remove mpi-@TRIPLET@ /usr/lib/@TRIPLET@/openmpi/include + update-alternatives --remove mpi-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/openmpi/include fi #DEBHELPER# diff -Nru openmpi-4.0.3/debian/not-installed openmpi-4.1.4/debian/not-installed --- openmpi-4.0.3/debian/not-installed 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/debian/not-installed 2022-09-15 19:34:53.000000000 +0000 @@ -0,0 +1,47 @@ +#! /usr/bin/dh-exec +/usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/openmpi3/*.la +/usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/*.la +# Installed, but dh_install doesn't handle the mv well +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_monitoring.so.50 +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libopen-pal.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/liboshmem.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_mpifh.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_cxx.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libopen-rte.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_ompio.so.41 +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_usempif08.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_ucx.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_java.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_usempi_ignore_tkr.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_sm.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_verbs.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libompitrace.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi.so.40 +usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/mpi.jar +usr/bin/shmemrun +usr/bin/mpirun.openmpi +usr/bin/oshrun +usr/share/man/man1/ompi-server.1 +usr/share/man/man1/mpijavac.1 +usr/share/man/man1/oshc++.1 +usr/share/man/man1/orte-info.1 +usr/share/man/man1/oshcxx.1 +usr/share/man/man1/shmemCC.1 +usr/share/man/man1/shmemcc.1 +usr/share/man/man1/shmemfort.1 +usr/share/man/man1/shmemcxx.1 +usr/share/man/man1/orte-server.1 +usr/share/man/man1/oshmem_info.1 +usr/share/man/man1/shmemrun.1 +usr/share/man/man1/oshcc.1 +usr/share/man/man1/oshrun.1 +usr/share/man/man1/oshCC.1 +usr/share/man/man1/oshfort.1 +usr/share/man/man1/shmemc++.1 +### TODO: +# Need to handle binary-indep builds with dh_missing +/usr/bin/* +/usr/lib/*/openmpi/lib/* +usr/share/pmix/* +# These will not be installed on binary-only builds +usr/share/doc/openmpi/javadoc-openmpi/* diff -Nru openmpi-4.0.3/debian/openmpi-bin.dirs openmpi-4.1.4/debian/openmpi-bin.dirs --- openmpi-4.0.3/debian/openmpi-bin.dirs 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/debian/openmpi-bin.dirs 2022-09-03 14:47:37.000000000 +0000 @@ -0,0 +1 @@ +usr/share/man/man1 diff -Nru openmpi-4.0.3/debian/openmpi-bin.install openmpi-4.1.4/debian/openmpi-bin.install --- openmpi-4.0.3/debian/openmpi-bin.install 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/openmpi-bin.install 2022-09-03 14:47:37.000000000 +0000 @@ -1,6 +1,8 @@ ## Configuration files etc/openmpi/* ## Executables +usr/bin/aggregate_profile +usr/bin/profile2mat usr/bin/ompi-clean usr/bin/ompi_info usr/bin/ompi-server @@ -8,6 +10,10 @@ usr/bin/orte-clean usr/bin/orted usr/bin/orterun +usr/bin/orte-info +usr/bin/ortecc +usr/bin/mpiexec.openmpi +usr/bin/mpirun.openmpi ## Compiler wrappers (symlinks) and man pages usr/bin/mpic++.openmpi usr/share/man/man1/mpic++.openmpi.1 @@ -31,3 +37,5 @@ usr/bin/opal_wrapper usr/share/man/man1/opal_wrapper.1 # NOTE: There's no man page for opal_wrapper_script (upstream, lintian warning) +usr/share/man/man1/ompi-server.1 +usr/share/man/man1/orte-info.1 diff -Nru openmpi-4.0.3/debian/openmpi-bin.links openmpi-4.1.4/debian/openmpi-bin.links --- openmpi-4.0.3/debian/openmpi-bin.links 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/openmpi-bin.links 2022-09-03 14:47:37.000000000 +0000 @@ -1,5 +1,3 @@ -usr/bin/orterun usr/bin/mpirun.openmpi -usr/bin/orterun usr/bin/mpiexec.openmpi usr/share/man/man1/mpiexec.openmpi.1 usr/share/man/man1/mpirun.openmpi.1 ## Man pages (link provided by upstream, needs recreation because of renaming): usr/share/man/man1/mpic++.openmpi.1 usr/share/man/man1/mpiCC.openmpi.1 diff -Nru openmpi-4.0.3/debian/openmpi-bin.README.Debian openmpi-4.1.4/debian/openmpi-bin.README.Debian --- openmpi-4.0.3/debian/openmpi-bin.README.Debian 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/openmpi-bin.README.Debian 2022-09-03 14:47:37.000000000 +0000 @@ -4,40 +4,32 @@ InfiniBand support ------------------ -This section provides information about warning messages when OpenFabrics -hardware isn't present. This is fixed since version 1.2.6-3. The information -provided here is only for historical reasons. +InfiniBand and UCX support is build into the package and enabled by default. +On Debian, OpenMPI sets the following: -InfiniBand support is build into the package and enabled by default. On -systems that don't have InfiniBand, a warning like this will be issued: + OMPI_MCA_btl_base_warn_component_unused=0 + btl = ^uct,openib + pml = ^ucx + osc = ^ucx + +This is set in /etc/openmpi/openmpi-mca-params.conf and turns off warnings that OpenFabric is configured +but not used on the system. Many or most users of Debian will not have OpenFabric present on their systems +and turning this off prevents spurious warnings that were breaking higher-level libraries and +applications. + +However the Libfabric EFA provider currently does not support applications calling fork() +when memory registrations are handled by the EFA provider. This is to prevent applications +from encountering potential data corruption or crashes when operating in this mode. +Most applications, including the majority of MPI and NCCL applications, will still function +with this constraint. Some applications do require fork() support, however, +these applications do not require memory registrations to be handled by the EFA provider. - libibverbs: Fatal: couldn't read uverbs ABI version. - -------------------------------------------------------------------------- - [0,1,2]: OpenIB on host xyz was unable to find any HCAs. - Another transport will be used instead, although this may result in - lower performance. - -------------------------------------------------------------------------- +If you wish to use OpenIB and know the application to be safe, comment out the exclude line. -To get rid of the warning, you can either disable the use of the "openib" BTL -in /etc/openmpi/openmpi-mca-params.conf by adding a line that reads - - btl = ^openib - -or pass "--mca btl ^openib" to mpirun or mpiexec. - -Please see http://bugs.debian.org/439730 for a discussion on that topic. - - -Thread support --------------- - -Thread support was enabled until package version 1.2.3-3. It is known to be -broken in upstream and led to segfaults on several architectures. - -We disabled threading for this reason in 1.2.3-4 and will re-enable it as soon -as it is known to be working, probably in the 1.3 branch of Open MPI. Please -see http://bugs.debian.org/435581 for a discussion of this issue. +Please see https://github.com/ofiwg/libfabric/issues/6332 for details. +Similarly UCX is disabled due to spurious warnings about missing devices on systems without RDMA. +Please enable as required. MPI Alternatives ---------------- @@ -57,4 +49,4 @@ update-alternatives --set mpirun /usr/bin/mpirun.openmpi - -- Debian Open MPI Team , Tue, 05 Jan 2010 14:17:49 +0100 + -- Alastair McKinstry , Sat, 9 Jan 2021 13:34:35 +0000 diff -Nru openmpi-4.0.3/debian/openmpi-common.links openmpi-4.1.4/debian/openmpi-common.links --- openmpi-4.0.3/debian/openmpi-common.links 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/openmpi-common.links 2022-09-03 14:47:37.000000000 +0000 @@ -4,3 +4,4 @@ usr/share/openmpi/mpiCC-wrapper-data.txt usr/share/openmpi/mpiCC.openmpi-wrapper-data.txt usr/share/openmpi/mpif77-wrapper-data.txt usr/share/openmpi/mpif77.openmpi-wrapper-data.txt usr/share/openmpi/mpif90-wrapper-data.txt usr/share/openmpi/mpif90.openmpi-wrapper-data.txt +usr/share/openmpi/mpifort-wrapper-data.txt usr/share/openmpi/mpifort.openmpi-wrapper-data.txt diff -Nru openmpi-4.0.3/debian/patches/build_hurd openmpi-4.1.4/debian/patches/build_hurd --- openmpi-4.0.3/debian/patches/build_hurd 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/patches/build_hurd 2022-09-03 14:47:37.000000000 +0000 @@ -10,10 +10,10 @@ Forwarded: partially Last-Update: 2018-10-24 -Index: openmpi-4.0.0/opal/util/stacktrace.c +Index: openmpi-4.1.0/opal/util/stacktrace.c =================================================================== ---- openmpi-4.0.0.orig/opal/util/stacktrace.c -+++ openmpi-4.0.0/opal/util/stacktrace.c +--- openmpi-4.1.0.orig/opal/util/stacktrace.c ++++ openmpi-4.1.0/opal/util/stacktrace.c @@ -588,8 +588,12 @@ int opal_util_register_stackhandlers (vo /* Setup the signals to catch */ @@ -27,11 +27,11 @@ #ifdef SA_ONESHOT act.sa_flags |= SA_ONESHOT; #else -Index: openmpi-4.0.0/orte/mca/odls/base/odls_base_default_fns.c +Index: openmpi-4.1.0/orte/mca/odls/base/odls_base_default_fns.c =================================================================== ---- openmpi-4.0.0.orig/orte/mca/odls/base/odls_base_default_fns.c -+++ openmpi-4.0.0/orte/mca/odls/base/odls_base_default_fns.c -@@ -877,7 +877,11 @@ static int setup_path(orte_app_context_t +--- openmpi-4.1.0.orig/orte/mca/odls/base/odls_base_default_fns.c ++++ openmpi-4.1.0/orte/mca/odls/base/odls_base_default_fns.c +@@ -859,7 +859,11 @@ static int setup_path(orte_app_context_t * again not match getcwd! This is beyond our control - we are only * ensuring they start out matching. */ @@ -43,7 +43,7 @@ *wdir = strdup(dir); opal_setenv("PWD", dir, true, &app->env); /* update the initial wdir value too */ -@@ -1086,7 +1090,11 @@ void orte_odls_base_default_launch_local +@@ -1068,7 +1072,11 @@ void orte_odls_base_default_launch_local orte_app_context_t *app; orte_proc_t *child=NULL; int rc=ORTE_SUCCESS; @@ -56,7 +56,7 @@ int j, idx; int total_num_local_procs = 0; orte_odls_launch_local_t *caddy = (orte_odls_launch_local_t*)cbdata; -@@ -2062,7 +2070,11 @@ int orte_odls_base_default_restart_proc( +@@ -2064,7 +2072,11 @@ int orte_odls_base_default_restart_proc( * bouncing around as we execute this app, but we will always return * to this place as our default directory */ @@ -68,10 +68,10 @@ /* find this child's jobdat */ if (NULL == (jobdat = orte_get_job_data_object(child->name.jobid))) { -Index: openmpi-4.0.0/ompi/include/ompi_config.h +Index: openmpi-4.1.0/ompi/include/ompi_config.h =================================================================== ---- openmpi-4.0.0.orig/ompi/include/ompi_config.h -+++ openmpi-4.0.0/ompi/include/ompi_config.h +--- openmpi-4.1.0.orig/ompi/include/ompi_config.h ++++ openmpi-4.1.0/ompi/include/ompi_config.h @@ -28,6 +28,10 @@ #include "opal_config.h" @@ -83,10 +83,10 @@ #define OMPI_IDENT_STRING OPAL_IDENT_STRING /*********************************************************************** -Index: openmpi-4.0.0/opal/mca/base/mca_base_var.c +Index: openmpi-4.1.0/opal/mca/base/mca_base_var.c =================================================================== ---- openmpi-4.0.0.orig/opal/mca/base/mca_base_var.c -+++ openmpi-4.0.0/opal/mca/base/mca_base_var.c +--- openmpi-4.1.0.orig/opal/mca/base/mca_base_var.c ++++ openmpi-4.1.0/opal/mca/base/mca_base_var.c @@ -51,6 +51,14 @@ #include "opal/util/opal_environ.h" #include "opal/runtime/opal.h" @@ -102,10 +102,10 @@ /* * local variables */ -Index: openmpi-4.0.0/orte/include/orte_config.h +Index: openmpi-4.1.0/orte/include/orte_config.h =================================================================== ---- openmpi-4.0.0.orig/orte/include/orte_config.h -+++ openmpi-4.0.0/orte/include/orte_config.h +--- openmpi-4.1.0.orig/orte/include/orte_config.h ++++ openmpi-4.1.0/orte/include/orte_config.h @@ -26,6 +26,13 @@ #include "opal_config.h" @@ -120,13 +120,13 @@ #define ORTE_IDENT_STRING OPAL_IDENT_STRING # if OPAL_C_HAVE_VISIBILITY -Index: openmpi-4.0.0/ompi/mca/fbtl/posix/fbtl_posix_preadv.c +Index: openmpi-4.1.0/ompi/mca/fbtl/posix/fbtl_posix_preadv.c =================================================================== ---- openmpi-4.0.0.orig/ompi/mca/fbtl/posix/fbtl_posix_preadv.c -+++ openmpi-4.0.0/ompi/mca/fbtl/posix/fbtl_posix_preadv.c -@@ -28,6 +28,10 @@ - #include "ompi/constants.h" - #include "ompi/mca/fbtl/fbtl.h" +--- openmpi-4.1.0.orig/ompi/mca/fbtl/posix/fbtl_posix_preadv.c ++++ openmpi-4.1.0/ompi/mca/fbtl/posix/fbtl_posix_preadv.c +@@ -32,6 +32,10 @@ + static ssize_t mca_fbtl_posix_preadv_datasieving (ompio_file_t *fh); + static ssize_t mca_fbtl_posix_preadv_generic (ompio_file_t *fh); +#ifndef IOV_MAX +#define IOV_MAX 1024 @@ -134,14 +134,14 @@ + ssize_t mca_fbtl_posix_preadv (ompio_file_t *fh ) { - /*int *fp = NULL;*/ -Index: openmpi-4.0.0/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c + ssize_t bytes_read=0, ret_code=0; +Index: openmpi-4.1.0/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c =================================================================== ---- openmpi-4.0.0.orig/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c -+++ openmpi-4.0.0/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c -@@ -30,6 +30,10 @@ - #include "ompi/constants.h" - #include "ompi/mca/fbtl/fbtl.h" +--- openmpi-4.1.0.orig/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c ++++ openmpi-4.1.0/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c +@@ -33,6 +33,10 @@ + static ssize_t mca_fbtl_posix_pwritev_datasieving (ompio_file_t *fh ); + static ssize_t mca_fbtl_posix_pwritev_generic (ompio_file_t *fh ); +#ifndef IOV_MAX +#define IOV_MAX 1024 @@ -149,4 +149,4 @@ + ssize_t mca_fbtl_posix_pwritev(ompio_file_t *fh ) { - /*int *fp = NULL;*/ + ssize_t bytes_written=0, ret_code=0; diff -Nru openmpi-4.0.3/debian/patches/fix-underlinking.patch openmpi-4.1.4/debian/patches/fix-underlinking.patch --- openmpi-4.0.3/debian/patches/fix-underlinking.patch 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/patches/fix-underlinking.patch 2022-09-03 14:47:37.000000000 +0000 @@ -5,10 +5,10 @@ Author: Graham Inggs Last-Update: 2018-05-23 -Index: openmpi-4.0.1/ompi/mca/mtl/ofi/Makefile.am +Index: openmpi-4.1.0/ompi/mca/mtl/ofi/Makefile.am =================================================================== ---- openmpi-4.0.1.orig/ompi/mca/mtl/ofi/Makefile.am -+++ openmpi-4.0.1/ompi/mca/mtl/ofi/Makefile.am +--- openmpi-4.1.0.orig/ompi/mca/mtl/ofi/Makefile.am ++++ openmpi-4.1.0/ompi/mca/mtl/ofi/Makefile.am @@ -1,4 +1,4 @@ -# + diff -Nru openmpi-4.0.3/debian/patches/hppa.patch openmpi-4.1.4/debian/patches/hppa.patch --- openmpi-4.0.3/debian/patches/hppa.patch 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/patches/hppa.patch 2022-09-03 14:47:37.000000000 +0000 @@ -4,10 +4,10 @@ Last-Updated: 2016-09-04 Forwarded: no -Index: openmpi-4.0.0/config/opal_config_asm.m4 +Index: openmpi-4.1.0/config/opal_config_asm.m4 =================================================================== ---- openmpi-4.0.0.orig/config/opal_config_asm.m4 -+++ openmpi-4.0.0/config/opal_config_asm.m4 +--- openmpi-4.1.0.orig/config/opal_config_asm.m4 ++++ openmpi-4.1.0/config/opal_config_asm.m4 @@ -1104,6 +1104,12 @@ AC_DEFUN([OPAL_CONFIG_ASM],[ [AC_MSG_ERROR([No atomic primitives available for $host])]) ;; @@ -21,10 +21,10 @@ mips-*|mips64*) # Should really find some way to make sure that we are on # a MIPS III machine (r4000 and later) -Index: openmpi-4.0.0/opal/include/opal/sys/architecture.h +Index: openmpi-4.1.0/opal/include/opal/sys/architecture.h =================================================================== ---- openmpi-4.0.0.orig/opal/include/opal/sys/architecture.h -+++ openmpi-4.0.0/opal/include/opal/sys/architecture.h +--- openmpi-4.1.0.orig/opal/include/opal/sys/architecture.h ++++ openmpi-4.1.0/opal/include/opal/sys/architecture.h @@ -36,6 +36,7 @@ #define OPAL_X86_64 0030 #define OPAL_POWERPC32 0050 @@ -33,10 +33,10 @@ #define OPAL_SPARC 0060 #define OPAL_SPARCV9_32 0061 #define OPAL_SPARCV9_64 0062 -Index: openmpi-4.0.0/opal/include/opal/sys/hppa/atomic.h +Index: openmpi-4.1.0/opal/include/opal/sys/hppa/atomic.h =================================================================== --- /dev/null -+++ openmpi-4.0.0/opal/include/opal/sys/hppa/atomic.h ++++ openmpi-4.1.0/opal/include/opal/sys/hppa/atomic.h @@ -0,0 +1,95 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* @@ -133,10 +133,10 @@ +#define OPAL_HAVE_ATOMIC_CMPSET_64 0 + +#endif /* ! OPAL_SYS_ARCH_ATOMIC_H */ -Index: openmpi-4.0.0/opal/include/opal/sys/hppa/Makefile.am +Index: openmpi-4.1.0/opal/include/opal/sys/hppa/Makefile.am =================================================================== --- /dev/null -+++ openmpi-4.0.0/opal/include/opal/sys/hppa/Makefile.am ++++ openmpi-4.1.0/opal/include/opal/sys/hppa/Makefile.am @@ -0,0 +1,23 @@ +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana @@ -161,10 +161,10 @@ +headers += \ + opal/sys/hppa/atomic.h \ + opal/sys/hppa/timer.h -Index: openmpi-4.0.0/opal/include/opal/sys/hppa/timer.h +Index: openmpi-4.1.0/opal/include/opal/sys/hppa/timer.h =================================================================== --- /dev/null -+++ openmpi-4.0.0/opal/include/opal/sys/hppa/timer.h ++++ openmpi-4.1.0/opal/include/opal/sys/hppa/timer.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana @@ -199,10 +199,10 @@ +#define OPAL_HAVE_SYS_TIMER_GET_CYCLES 0 + +#endif /* ! OPAL_SYS_ARCH_TIMER_H */ -Index: openmpi-4.0.0/opal/include/opal/sys/timer.h +Index: openmpi-4.1.0/opal/include/opal/sys/timer.h =================================================================== ---- openmpi-4.0.0.orig/opal/include/opal/sys/timer.h -+++ openmpi-4.0.0/opal/include/opal/sys/timer.h +--- openmpi-4.1.0.orig/opal/include/opal/sys/timer.h ++++ openmpi-4.1.0/opal/include/opal/sys/timer.h @@ -90,6 +90,8 @@ BEGIN_C_DECLS #include "opal/sys/sparcv9/timer.h" #elif OPAL_ASSEMBLY_ARCH == OPAL_MIPS @@ -212,10 +212,10 @@ #endif #ifndef DOXYGEN -Index: openmpi-4.0.0/opal/mca/timer/linux/configure.m4 +Index: openmpi-4.1.0/opal/mca/timer/linux/configure.m4 =================================================================== ---- openmpi-4.0.0.orig/opal/mca/timer/linux/configure.m4 -+++ openmpi-4.0.0/opal/mca/timer/linux/configure.m4 +--- openmpi-4.1.0.orig/opal/mca/timer/linux/configure.m4 ++++ openmpi-4.1.0/opal/mca/timer/linux/configure.m4 @@ -47,7 +47,7 @@ AC_DEFUN([MCA_opal_timer_linux_CONFIG],[ [timer_linux_happy="no"])]) @@ -225,10 +225,10 @@ AS_IF([test "$timer_linux_happy" = "yes"], [AS_IF([test -r "/proc/cpuinfo"], [timer_linux_happy="yes"], -Index: openmpi-4.0.0/opal/include/opal/sys/atomic.h +Index: openmpi-4.1.0/opal/include/opal/sys/atomic.h =================================================================== ---- openmpi-4.0.0.orig/opal/include/opal/sys/atomic.h -+++ openmpi-4.0.0/opal/include/opal/sys/atomic.h +--- openmpi-4.1.0.orig/opal/include/opal/sys/atomic.h ++++ openmpi-4.1.0/opal/include/opal/sys/atomic.h @@ -169,6 +169,8 @@ enum { #include "opal/sys/ia32/atomic.h" #elif OPAL_ASSEMBLY_ARCH == OPAL_IA64 diff -Nru openmpi-4.0.3/debian/patches/ia64.patch openmpi-4.1.4/debian/patches/ia64.patch --- openmpi-4.0.3/debian/patches/ia64.patch 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/debian/patches/ia64.patch 2022-09-03 14:47:37.000000000 +0000 @@ -0,0 +1,11 @@ +--- a/opal/include/opal/sys/timer.h ++++ b/opal/include/opal/sys/timer.h +@@ -78,8 +78,6 @@ + #include "opal/sys/arm64/timer.h" + #elif OPAL_ASSEMBLY_ARCH == OPAL_IA32 + #include "opal/sys/ia32/timer.h" +-#elif OPAL_ASSEMBLY_ARCH == OPAL_IA64 +-#include "opal/sys/ia64/timer.h" + #elif OPAL_ASSEMBLY_ARCH == OPAL_POWERPC32 + #include "opal/sys/powerpc/timer.h" + #elif OPAL_ASSEMBLY_ARCH == OPAL_POWERPC64 diff -Nru openmpi-4.0.3/debian/patches/libdir.patch openmpi-4.1.4/debian/patches/libdir.patch --- openmpi-4.0.3/debian/patches/libdir.patch 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/patches/libdir.patch 2022-09-03 14:47:37.000000000 +0000 @@ -5,11 +5,11 @@ Forwarded: no -Index: openmpi-4.0.0/configure.ac +Index: openmpi-4.1.0/configure.ac =================================================================== ---- openmpi-4.0.0.orig/configure.ac -+++ openmpi-4.0.0/configure.ac -@@ -1405,11 +1405,13 @@ esac +--- openmpi-4.1.0.orig/configure.ac ++++ openmpi-4.1.0/configure.ac +@@ -1444,11 +1444,13 @@ esac # easier to deal with the problem of opal, orte, and ompi built from # their own tarballs, with their own PACKAGE variables. opaldatadir='${datadir}/openmpi' diff -Nru openmpi-4.0.3/debian/patches/manpage_macros openmpi-4.1.4/debian/patches/manpage_macros --- openmpi-4.0.3/debian/patches/manpage_macros 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/patches/manpage_macros 2022-09-03 14:47:37.000000000 +0000 @@ -5,10 +5,10 @@ Forwarded: no Last-Update: 2018-04-08 -Index: openmpi-4.0.0/ompi/mpi/man/man3/MPI_T_enum_get_info.3in +Index: openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_enum_get_info.3in =================================================================== ---- openmpi-4.0.0.orig/ompi/mpi/man/man3/MPI_T_enum_get_info.3in -+++ openmpi-4.0.0/ompi/mpi/man/man3/MPI_T_enum_get_info.3in +--- openmpi-4.1.0.orig/ompi/mpi/man/man3/MPI_T_enum_get_info.3in ++++ openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_enum_get_info.3in @@ -32,7 +32,7 @@ Length of the string and/or buffer for n .SH OUTPUT PARAMETERS @@ -18,10 +18,10 @@ num number of discrete values represented by this enumeration. .TP 1i -Index: openmpi-4.0.0/ompi/mpi/man/man3/MPI_T_pvar_get_info.3in +Index: openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_pvar_get_info.3in =================================================================== ---- openmpi-4.0.0.orig/ompi/mpi/man/man3/MPI_T_pvar_get_info.3in -+++ openmpi-4.0.0/ompi/mpi/man/man3/MPI_T_pvar_get_info.3in +--- openmpi-4.1.0.orig/ompi/mpi/man/man3/MPI_T_pvar_get_info.3in ++++ openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_pvar_get_info.3in @@ -131,7 +131,7 @@ MPI_T_PVAR_CLASS_GENERIC Variable does not fit into any other class. Can by represented by an type supported by the MPI tool information interface (see DATATYPE). Starting value is variable specific. @@ -31,10 +31,10 @@ .SH DATATYPE .ft R -Index: openmpi-4.0.0/ompi/mpi/man/man3/MPI_Get.3in +Index: openmpi-4.1.0/ompi/mpi/man/man3/MPI_Get.3in =================================================================== ---- openmpi-4.0.0.orig/ompi/mpi/man/man3/MPI_Get.3in -+++ openmpi-4.0.0/ompi/mpi/man/man3/MPI_Get.3in +--- openmpi-4.1.0.orig/ompi/mpi/man/man3/MPI_Get.3in ++++ openmpi-4.1.0/ompi/mpi/man/man3/MPI_Get.3in @@ -104,7 +104,7 @@ window object used for communication (ha .SH OUTPUT PARAMETER @@ -44,10 +44,10 @@ request MPI_Rget: RMA request .TP 1i -Index: openmpi-4.0.0/ompi/mpi/man/man3/MPI_T_enum_get_item.3in +Index: openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_enum_get_item.3in =================================================================== ---- openmpi-4.0.0.orig/ompi/mpi/man/man3/MPI_T_enum_get_item.3in -+++ openmpi-4.0.0/ompi/mpi/man/man3/MPI_T_enum_get_item.3in +--- openmpi-4.1.0.orig/ompi/mpi/man/man3/MPI_T_enum_get_item.3in ++++ openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_enum_get_item.3in @@ -36,7 +36,7 @@ Length of the string and/or buffer for n .SH OUTPUT PARAMETERS @@ -57,10 +57,10 @@ value Variable value. .TP 1i -Index: openmpi-4.0.0/orte/mca/sstore/orte_sstore.7in +Index: openmpi-4.1.0/orte/mca/sstore/orte_sstore.7in =================================================================== ---- openmpi-4.0.0.orig/orte/mca/sstore/orte_sstore.7in -+++ openmpi-4.0.0/orte/mca/sstore/orte_sstore.7in +--- openmpi-4.1.0.orig/orte/mca/sstore/orte_sstore.7in ++++ openmpi-4.1.0/orte/mca/sstore/orte_sstore.7in @@ -12,8 +12,7 @@ .\" ************************** .SH NAME diff -Nru openmpi-4.0.3/debian/patches/mpifort.patch openmpi-4.1.4/debian/patches/mpifort.patch --- openmpi-4.0.3/debian/patches/mpifort.patch 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/debian/patches/mpifort.patch 2022-09-03 14:47:37.000000000 +0000 @@ -0,0 +1,20 @@ +Index: openmpi-4.0.2/ompi/tools/wrappers/mpifort-wrapper-data.txt.in +=================================================================== +--- openmpi-4.0.2.orig/ompi/tools/wrappers/mpifort-wrapper-data.txt.in ++++ openmpi-4.0.2/ompi/tools/wrappers/mpifort-wrapper-data.txt.in +@@ -12,6 +12,7 @@ language=Fortran + compiler_env=FC + compiler_flags_env=FCFLAGS + compiler=@FC@ ++compiler_version=@COMPILER_VERSION@ + preprocessor_flags= + compiler_flags=@OMPI_WRAPPER_EXTRA_FCFLAGS@ + linker_flags=@OMPI_WRAPPER_EXTRA_FC_LDFLAGS@ +@@ -24,5 +25,5 @@ libs_static=@OMPI_FORTRAN_USEMPIF08_LIB@ + dyn_lib_file=lib@OMPI_LIBMPI_NAME@.@OPAL_DYN_LIB_SUFFIX@ + static_lib_file=lib@OMPI_LIBMPI_NAME@.a + required_file=@OMPI_WRAPPER_FORTRAN_REQUIRED_FILE@ +-includedir=${includedir} +-libdir=${libdir} ++includedir=${libdir}/../../fortran/@COMPILER_VERSION@/openmpi ++libdir=${libdir}/fortran/@FC@ diff -Nru openmpi-4.0.3/debian/patches/no-warning-unused.patch openmpi-4.1.4/debian/patches/no-warning-unused.patch --- openmpi-4.0.3/debian/patches/no-warning-unused.patch 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/patches/no-warning-unused.patch 2022-09-03 14:47:37.000000000 +0000 @@ -1,14 +1,14 @@ Description: Turn off warning that openfabric is not available - because it breaks some overlying layers/appications in Debian + because it breaks some overlying layers/appications in Debian. + Also exclude openfabric/openib by default. + See: #979041 Author: Alastair McKinstry -Last-Updated: 2019-11-19 -Forwarded: no +Last-Updated: 2021-09-02 +Forwarded: not-needed -Index: openmpi-4.0.2/opal/etc/openmpi-mca-params.conf -=================================================================== ---- openmpi-4.0.2.orig/opal/etc/openmpi-mca-params.conf -+++ openmpi-4.0.2/opal/etc/openmpi-mca-params.conf -@@ -57,3 +57,7 @@ +--- a/opal/etc/openmpi-mca-params.conf ++++ b/opal/etc/openmpi-mca-params.conf +@@ -57,3 +57,14 @@ # See "ompi_info --param all all --level 9" for a full listing of Open # MPI MCA parameters available and their default values. @@ -16,4 +16,11 @@ +# Silence this warning on Debian, as many systems don't have openfabric +# but the warning breaks higher layers or application +btl_base_warn_component_unused=0 ++# Avoid openib an in case applications use fork: see https://github.com/ofiwg/libfabric/issues/6332 ++# If you wish to use openib and know your application is safe, remove the following: ++# Similarly for UCX: https://github.com/open-mpi/ompi/issues/8367 ++mtl = ^ofi ++btl = ^uct,openib,ofi ++pml = ^ucx ++osc = ^ucx,pt2pt \ No newline at end of file diff -Nru openmpi-4.0.3/debian/patches/opal_fifo.patch openmpi-4.1.4/debian/patches/opal_fifo.patch --- openmpi-4.0.3/debian/patches/opal_fifo.patch 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/patches/opal_fifo.patch 2022-09-03 14:47:37.000000000 +0000 @@ -8,10 +8,10 @@ Last-Update: 2016-12-15 --- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ -Index: openmpi-4.0.0/test/class/opal_fifo.c +Index: openmpi-4.1.0/test/class/opal_fifo.c =================================================================== ---- openmpi-4.0.0.orig/test/class/opal_fifo.c -+++ openmpi-4.0.0/test/class/opal_fifo.c +--- openmpi-4.1.0.orig/test/class/opal_fifo.c ++++ openmpi-4.1.0/test/class/opal_fifo.c @@ -63,7 +63,7 @@ static void *thread_test (void *arg) { printf ("Atomics thread finished. Time: %d s %d us %d nsec/poppush\n", (int) total.tv_sec, (int)total.tv_usec, (int)(timing / 1e-9)); diff -Nru openmpi-4.0.3/debian/patches/pkg-config.patch openmpi-4.1.4/debian/patches/pkg-config.patch --- openmpi-4.0.3/debian/patches/pkg-config.patch 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/debian/patches/pkg-config.patch 2022-09-03 14:47:37.000000000 +0000 @@ -0,0 +1,26 @@ +Description: Enable non-gfortran compilation +Author: Alastair McKinstry +Last-Updated: 2020-01-13 +Forwarded: no + +Index: openmpi-4.0.2/ompi/tools/wrappers/ompi-fort.pc.in +=================================================================== +--- openmpi-4.0.2.orig/ompi/tools/wrappers/ompi-fort.pc.in ++++ openmpi-4.0.2/ompi/tools/wrappers/ompi-fort.pc.in +@@ -11,11 +11,15 @@ exec_prefix=@exec_prefix@ + includedir=@includedir@ + libdir=@libdir@ + pkgincludedir=@opalincludedir@ ++# override $fortran with --define-variable when building on non-gfortran compile ++fortran=gfortran ++fortrandir=${libdir}/../../fortran/${fortran} ++ + # + # Note that -lopen-pal and all the EXTRA_LIBS are only necessary when + # static linking (they're pulled in by libopen-rte.so's implicit + # dependencies), so only list these in Libs.private. + # +-Libs: -L${libdir} @OMPI_PKG_CONFIG_LDFLAGS@ @OMPI_FORTRAN_USEMPIF08_LIB@ @OMPI_FORTRAN_USEMPI_LIB@ -l@OMPI_LIBMPI_NAME@_mpifh -l@OMPI_LIBMPI_NAME@ ++Libs: -L${libdir} @OMPI_PKG_CONFIG_LDFLAGS@ @OMPI_FORTRAN_USEMPIF08_LIB@ @OMPI_FORTRAN_USEMPI_LIB@ -l@OMPI_LIBMPI_NAME@_mpifh -l@OMPI_LIBMPI_NAME@ + Libs.private: -lopen-rte -lopen-pal @OMPI_WRAPPER_EXTRA_LIBS@ + Cflags: -I${includedir} @OMPI_WRAPPER_EXTRA_CPPFLAGS@ @OMPI_WRAPPER_EXTRA_FCFLAGS@ diff -Nru openmpi-4.0.3/debian/patches/series openmpi-4.1.4/debian/patches/series --- openmpi-4.0.3/debian/patches/series 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/patches/series 2022-09-03 14:47:37.000000000 +0000 @@ -1,3 +1,5 @@ +pkg-config.patch +mpifort.patch manpage_macros build_hurd libdir.patch @@ -5,5 +7,6 @@ opal_fifo.patch verbose-ompi-rules.patch fix-underlinking.patch -# version-script.patch +#version-script.patch no-warning-unused.patch +ia64.patch diff -Nru openmpi-4.0.3/debian/patches/verbose-ompi-rules.patch openmpi-4.1.4/debian/patches/verbose-ompi-rules.patch --- openmpi-4.0.3/debian/patches/verbose-ompi-rules.patch 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/patches/verbose-ompi-rules.patch 2022-09-03 14:47:37.000000000 +0000 @@ -1,10 +1,10 @@ Description: Makefile.ompi-rules: don't set silent building Author: Adrian Bunk -Index: openmpi-4.0.1/Makefile.ompi-rules +Index: openmpi-4.1.0/Makefile.ompi-rules =================================================================== ---- openmpi-4.0.1.orig/Makefile.ompi-rules -+++ openmpi-4.0.1/Makefile.ompi-rules +--- openmpi-4.1.0.orig/Makefile.ompi-rules ++++ openmpi-4.1.0/Makefile.ompi-rules @@ -53,7 +53,7 @@ endif # A little verbosity magic; "make" will show the terse output. "make # V=1" will show the actual commands used (just like the other diff -Nru openmpi-4.0.3/debian/patches/version-script.patch openmpi-4.1.4/debian/patches/version-script.patch --- openmpi-4.0.3/debian/patches/version-script.patch 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/patches/version-script.patch 2022-09-03 14:47:37.000000000 +0000 @@ -3,10 +3,10 @@ Forwarded: yes Last-Updated: 2017-05-03 -Index: openmpi-4.0.1/config/ld-version-script.m4 +Index: openmpi-4.0.3/config/ld-version-script.m4 =================================================================== --- /dev/null -+++ openmpi-4.0.1/config/ld-version-script.m4 ++++ openmpi-4.0.3/config/ld-version-script.m4 @@ -0,0 +1,49 @@ +dnl Copyright (C) 2006-2013 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation @@ -57,11 +57,11 @@ +]) + +gl_LD_VERSION_SCRIPT() -Index: openmpi-4.0.1/ompi/Makefile.am +Index: openmpi-4.0.3/ompi/Makefile.am =================================================================== ---- openmpi-4.0.1.orig/ompi/Makefile.am -+++ openmpi-4.0.1/ompi/Makefile.am -@@ -161,6 +161,10 @@ lib@OMPI_LIBMPI_NAME@_la_LDFLAGS = \ +--- openmpi-4.0.3.orig/ompi/Makefile.am ++++ openmpi-4.0.3/ompi/Makefile.am +@@ -163,6 +163,10 @@ lib@OMPI_LIBMPI_NAME@_la_LDFLAGS = \ -version-info $(libmpi_so_version) \ $(OMPI_LIBMPI_EXTRA_LDFLAGS) @@ -72,10 +72,10 @@ # included subdirectory Makefile.am's and appended-to variables headers = noinst_LTLIBRARIES = -Index: openmpi-4.0.1/oshmem/Makefile.am +Index: openmpi-4.0.3/oshmem/Makefile.am =================================================================== ---- openmpi-4.0.1.orig/oshmem/Makefile.am -+++ openmpi-4.0.1/oshmem/Makefile.am +--- openmpi-4.0.3.orig/oshmem/Makefile.am ++++ openmpi-4.0.3/oshmem/Makefile.am @@ -73,6 +73,11 @@ liboshmem_la_LDFLAGS = \ -version-info $(liboshmem_so_version) \ $(OSHMEM_LIBSHMEM_EXTRA_LDFLAGS) @@ -88,10 +88,10 @@ # included subdirectory Makefile.am's and appended-to variables headers = noinst_LTLIBRARIES = -Index: openmpi-4.0.1/ompi/mpi/cxx/Makefile.am +Index: openmpi-4.0.3/ompi/mpi/cxx/Makefile.am =================================================================== ---- openmpi-4.0.1.orig/ompi/mpi/cxx/Makefile.am -+++ openmpi-4.0.1/ompi/mpi/cxx/Makefile.am +--- openmpi-4.0.3.orig/ompi/mpi/cxx/Makefile.am ++++ openmpi-4.0.3/ompi/mpi/cxx/Makefile.am @@ -45,6 +45,10 @@ lib@OMPI_LIBMPI_NAME@_cxx_la_SOURCES = \ lib@OMPI_LIBMPI_NAME@_cxx_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la lib@OMPI_LIBMPI_NAME@_cxx_la_LDFLAGS = -version-info $(libmpi_cxx_so_version) @@ -103,10 +103,10 @@ headers = \ mpicxx.h \ constants.h \ -Index: openmpi-4.0.1/ompi/mpi/fortran/mpif-h/Makefile.am +Index: openmpi-4.0.3/ompi/mpi/fortran/mpif-h/Makefile.am =================================================================== ---- openmpi-4.0.1.orig/ompi/mpi/fortran/mpif-h/Makefile.am -+++ openmpi-4.0.1/ompi/mpi/fortran/mpif-h/Makefile.am +--- openmpi-4.0.3.orig/ompi/mpi/fortran/mpif-h/Makefile.am ++++ openmpi-4.0.3/ompi/mpi/fortran/mpif-h/Makefile.am @@ -58,6 +58,10 @@ lib@OMPI_LIBMPI_NAME@_mpifh_la_LIBADD = lib@OMPI_LIBMPI_NAME@_mpifh_la_LDFLAGS = -version-info $(libmpi_mpifh_so_version) @@ -118,12 +118,12 @@ # Are we building the mpif.h bindings at all? if OMPI_BUILD_FORTRAN_MPIFH_BINDINGS # If yes, then we need to build the installable library and the glue -Index: openmpi-4.0.1/ompi/mpi/fortran/use-mpi-f08/Makefile.am +Index: openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/Makefile.am =================================================================== ---- openmpi-4.0.1.orig/ompi/mpi/fortran/use-mpi-f08/Makefile.am -+++ openmpi-4.0.1/ompi/mpi/fortran/use-mpi-f08/Makefile.am -@@ -823,6 +823,10 @@ lib@OMPI_LIBMPI_NAME@_usempif08_la_LIBAD - lib@OMPI_LIBMPI_NAME@_usempif08_la_DEPENDENCIES = $(module_sentinel_file) +--- openmpi-4.0.3.orig/ompi/mpi/fortran/use-mpi-f08/Makefile.am ++++ openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/Makefile.am +@@ -832,6 +832,10 @@ lib@OMPI_LIBMPI_NAME@_usempif08_la_LIBAD + lib@OMPI_LIBMPI_NAME@_usempif08_la_DEPENDENCIES = $(module_sentinel_files) lib@OMPI_LIBMPI_NAME@_usempif08_la_LDFLAGS = -version-info $(libmpi_usempif08_so_version) +if HAVE_LD_VERSION_SCRIPT @@ -133,11 +133,11 @@ # # Automake doesn't do Fortran dependency analysis, so must list them # manually here. Bummer! -Index: openmpi-4.0.1/ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.am +Index: openmpi-4.0.3/ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.am =================================================================== ---- openmpi-4.0.1.orig/ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.am -+++ openmpi-4.0.1/ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.am -@@ -62,6 +62,10 @@ lib@OMPI_LIBMPI_NAME@_usempi_ignore_tkr_ +--- openmpi-4.0.3.orig/ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.am ++++ openmpi-4.0.3/ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.am +@@ -67,6 +67,10 @@ lib@OMPI_LIBMPI_NAME@_usempi_ignore_tkr_ -version-info $(libmpi_usempi_ignore_tkr_so_version) \ $(OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS) @@ -148,10 +148,10 @@ # # mpi-ignore-tkr-sizeof.* are generated based on some results from # configure tests. -Index: openmpi-4.0.1/ompi/libmpi.map +Index: openmpi-4.0.3/ompi/libmpi.map =================================================================== --- /dev/null -+++ openmpi-4.0.1/ompi/libmpi.map ++++ openmpi-4.0.3/ompi/libmpi.map @@ -0,0 +1,1707 @@ +/* Symbol versioning for libmpi.so.20.0.0 (OpenMPI 2.0.0) + * EXPERIMENTAL @@ -1860,10 +1860,10 @@ + /* pml_v_output_close*/ + /* pml_v_output_open */ +}; -Index: openmpi-4.0.1/ompi/mpi/fortran/mpif-h/libmpi_mpifh.map +Index: openmpi-4.0.3/ompi/mpi/fortran/mpif-h/libmpi_mpifh.map =================================================================== --- /dev/null -+++ openmpi-4.0.1/ompi/mpi/fortran/mpif-h/libmpi_mpifh.map ++++ openmpi-4.0.3/ompi/mpi/fortran/mpif-h/libmpi_mpifh.map @@ -0,0 +1,4967 @@ +/* Symbol version map for libmpi_mpifh.so.20.0.0 (OpenMPI 2.0.0) + * EXPERIMENTAL @@ -6832,10 +6832,10 @@ + *; + /* libmpi_mpifh.map */ +}; -Index: openmpi-4.0.1/ompi/mpi/fortran/use-mpi-f08/libmpi_usempif08.map +Index: openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/libmpi_usempif08.map =================================================================== --- /dev/null -+++ openmpi-4.0.1/ompi/mpi/fortran/use-mpi-f08/libmpi_usempif08.map ++++ openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/libmpi_usempif08.map @@ -0,0 +1,971 @@ +/* Symbol version map for libmpi_usempif08.so.20.0.0 (OpenMPI 2.0.0) + * EXPERIMENTAL @@ -7809,10 +7809,10 @@ +__mpi_f08_types_MOD_ompi_win_op_ne +*/ \ No newline at end of file -Index: openmpi-4.0.1/oshmem/liboshmem.map +Index: openmpi-4.0.3/oshmem/liboshmem.map =================================================================== --- /dev/null -+++ openmpi-4.0.1/oshmem/liboshmem.map ++++ openmpi-4.0.3/oshmem/liboshmem.map @@ -0,0 +1,1824 @@ +/* symbol version map for liboshmem.so.20.0.0 (OpenMPI 2.0.0) + * EXPERIMENTAL @@ -9638,10 +9638,10 @@ +lock_counter_head +lock_prev_pe_container_head +*/ -Index: openmpi-4.0.1/ompi/mpi/cxx/libmpi_cxx.map +Index: openmpi-4.0.3/ompi/mpi/cxx/libmpi_cxx.map =================================================================== --- /dev/null -+++ openmpi-4.0.1/ompi/mpi/cxx/libmpi_cxx.map ++++ openmpi-4.0.3/ompi/mpi/cxx/libmpi_cxx.map @@ -0,0 +1,403 @@ +/* Symbol version map for libmpi_cxx.so.20.0.0 (OpenMPI 2.0.0) + * EXPERIMENTAL @@ -10046,10 +10046,10 @@ + *; +}; + -Index: openmpi-4.0.1/ompi/mpi/fortran/use-mpi-ignore-tkr/libmpi_usempi_ignore_tkr.map +Index: openmpi-4.0.3/ompi/mpi/fortran/use-mpi-ignore-tkr/libmpi_usempi_ignore_tkr.map =================================================================== --- /dev/null -+++ openmpi-4.0.1/ompi/mpi/fortran/use-mpi-ignore-tkr/libmpi_usempi_ignore_tkr.map ++++ openmpi-4.0.3/ompi/mpi/fortran/use-mpi-ignore-tkr/libmpi_usempi_ignore_tkr.map @@ -0,0 +1,180 @@ +/* Symbol version map for libmpi_usempi_ignore_tkr.so.20.0.0 (OpenMPI 2.0.0) + * EXPERIMENTAL @@ -10232,10 +10232,10 @@ + *; +}; \ No newline at end of file -Index: openmpi-4.0.1/configure.ac +Index: openmpi-4.0.3/configure.ac =================================================================== ---- openmpi-4.0.1.orig/configure.ac -+++ openmpi-4.0.1/configure.ac +--- openmpi-4.0.3.orig/configure.ac ++++ openmpi-4.0.3/configure.ac @@ -43,6 +43,7 @@ m4_include([config/autogen_found_items.m m4_include([config/opal_get_version.m4]) AC_LANG([C]) diff -Nru openmpi-4.0.3/debian/README.Debian openmpi-4.1.4/debian/README.Debian --- openmpi-4.0.3/debian/README.Debian 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/README.Debian 2022-09-03 14:47:37.000000000 +0000 @@ -1,11 +1,26 @@ -Please be aware that as of release 4.0.2-2, Debian now sets the following: +Please be aware that as of release 4.1.0-5, Debian now sets the following: OMPI_MCA_btl_base_warn_component_unused=0 + btl = ^uct,openib + pml = ^ucx + osc = ^ucx This is set in /etc/openmpi/openmpi-mca-params.conf and turns off warnings that OpenFabric is configured but not used on the system. Many or most users of Debian will not have OpenFabric present on their systems and turning this off prevents spurious warnings that were breaking higher-level libraries and applications. --- Alastair McKinstry , 2019-11-19 +However the Libfabric EFA provider currently does not support applications calling fork() +when memory registrations are handled by the EFA provider. This is to prevent applications +from encountering potential data corruption or crashes when operating in this mode. +Most applications, including the majority of MPI and NCCL applications, will still function +with this constraint. Some applications do require fork() support, however, +these applications do not require memory registrations to be handled by the EFA provider. + +If you wish to use OpenIB and know the application to be safe, comment out the exclude line. + +Similarly, UCX is disabled by default as it gives spurious errors on missing RDMA fabric. +Please enable this if you have the appropriate hardware. + +-- Alastair McKinstry , 2021-01-14 diff -Nru openmpi-4.0.3/debian/rules openmpi-4.1.4/debian/rules --- openmpi-4.0.3/debian/rules 2020-08-07 19:41:18.000000000 +0000 +++ openmpi-4.1.4/debian/rules 2022-09-15 19:35:27.000000000 +0000 @@ -5,31 +5,61 @@ DPKG_EXPORT_BUILDFLAGS = 1 include /usr/share/dpkg/buildflags.mk -DESTDIR:=`pwd`/debian/tmp/ +DESTDIR:=$(CURDIR)/debian/tmp/ +BUILDDIR_FLANG=debian/build-flang +BUILDDIR_GFORTRAN=debian/build-gfortran DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) LIBDIR:=/usr/lib/$(DEB_HOST_MULTIARCH) -AUTOGENERATED:= libopenmpi3.links libopenmpi-dev.links libopenmpi-dev.postinst \ - libopenmpi-dev.prerm +AUTOGENERATED:= libopenmpi-dev.postinst libopenmpi-dev.prerm ### Arch-specific stuff # No ibverbs support available on kFreeBSD, Hurd -NO_VERBS_ARCH:= hurd-i386 kfreebsd-amd64 kfreebsd-i386 s390x i386 -FABRIC_ARCH:= amd64 +NO_VERBS_ARCH:= hurd-i386 kfreebsd-amd64 kfreebsd-i386 s390x +NO_FABRIC_ARCH:= hurd-i386 kfreebsd-amd64 kfreebsd-i386 s390x sh4 powerpc x32 PSM_ARCH:= amd64 i386 PSM2_ARCH:= none -BUILTIN_ATOMICS_ARCH:= s390x riscv64 +UCX_ARCH:= amd64 ppc64el arm64 +ATOMICS_ARCH:= s390x riscv64 NO_CMA_ARCH:= s390x mipsel hppa alpha armhf armel m68k sparc64 -NO_JAVA_ARCH:= hppa hurd-i386 ia64 +NO_JAVA_ARCH:= hppa hurd-i386 kfreebsd-amd64 kfreebsd-i386 ppc64 alpha sparc64 NO_TEST_ARCH:= hppa hurd-i386 -GCC7_ARCH:= ia64 -FORTRAN:=$(shell basename $(shell readlink /etc/alternatives/f95)) -FC ?= $(FORTRAN) + +UCX:= $(if $(filter $(DEB_TARGET_ARCH), $(UCX_ARCH)), --with-ucx, ) +VERBS:= $(if $(filter $(DEB_TARGET_ARCH), $(NO_VERBS_ARCH)), , --with-verbs ) +FABRIC:= $(if $(filter $(DEB_TARGET_ARCH), $(NO_FABRIC_ARCH)), , --with-libfabric ) +PSM:= $(if $(filter $(DEB_TARGET_ARCH), $(PSM_ARCH)), --with-psm, ) +PSM2:= $(if $(filter $(DEB_TARGET_ARCH), $(PSM2_ARCH)), --with-psm2, ) +ATOMICS:= $(if $(filter $(DEB_TARGET_ARCH), $(ATOMICS_ARCH)), --enable-builtin-atomics, ) +CMA:= $(if $(filter $(DEB_TARGET_ARCH), $(NO_CMA_ARCH)), --without-cma , ) +DO_TEST:= $(if $(filter $(DEB_TARGET_ARCH), $(NO_TEST_ARCH)), false, true) +BTL_TESTS:= $(if $(DO_TEST), --enable-opal-btl-usnic-unit-tests, ) +DO_FLANG:=$(if $(wildcard /usr/bin/flang),true, false) + +ifeq ($(filter nojava,$(DEB_BUILD_PROFILES)),) + JAVA := $(if $(filter $(DEB_TARGET_ARCH), $(NO_JAVA_ARCH)), \ + ,--with-jdk-dir=/usr/lib/jvm/default-java --enable-mpi-java ) +endif + +FLANG_FCFLAGS= $(filter '-g', $(shell dpkg-buildflags --get FCFLAGS)) +FLANG_LIBDIR= $(LIBDIR)/fortran/flang + +FLANG_VERSION=$(shell basename $(shell readlink /usr/bin/flang)) +# GFORTRAN_VERSION:=$(shell basename $(shell readlink -f /usr/bin/gfortran)) +export GFORTRAN_VERSION=gfortran-mod-15 + +# FC set to f77 by default in make +# Read default compiler name unless FC is actually set +ifeq ($(FC),f77) + FC:=$(shell basename $(shell readlink /etc/alternatives/f95)) +endif + # Drop '-g' flag with flang. Known failure with 2018122 version ifneq ($(filter flang,$(FC)),) FCFLAGS=$(shell dpkg-buildflags --get FCLAGS | sed -e 's/-g //') endif + ifeq (sparc,$(DEB_HOST_GNU_CPU)) CFLAGS += -mcpu=v9 endif @@ -39,80 +69,33 @@ CXXFLAGS += -O3 FCFLAGS += -O3 -ifeq ($(filter $(NO_VERBS_ARCH),$(DEB_HOST_ARCH)),) - VERBS := --with-verbs -endif -# Use gcc-7 on ia64; ICE on gcc 8.* -ifneq ($(filter $(GCC7_ARCH),$(DEB_HOST_ARCH)),) -export CC=gcc-7 -endif -ifneq ($(filter $(BUILTIN_ATOMICS_ARCH),$(DEB_HOST_ARCH)),) - ENABLE_BUILTIN_ATOMICS:= --enable-builtin-atomics -endif -ifneq ($(filter $(FABRIC_ARCH),$(DEB_HOST_ARCH)),) - FABRIC := --with-libfabric -endif -ifneq ($(filter $(PSM_ARCH),$(DEB_HOST_ARCH)),) - PSM:= --with-psm -endif -ifneq ($(filter $(PSM2_ARCH),$(DEB_HOST_ARCH)),) - PSM:= --with-psm2 -endif -ifeq ($(filter $(NO_JAVA_ARCH),$(DEB_HOST_ARCH)),) -ifeq ($(filter stage1,$(DEB_BUILD_PROFILES)),) - JAVA := --with-jdk-dir=/usr/lib/jvm/default-java --enable-mpi-java -endif -endif -ifneq (,$(findstring $(DEB_HOST_ARCH),$(NO_TEST_ARCH))) - DO_TEST := false - BTL_TESTS := -else - DO_TEST := true - BTL_TESTS:= --enable-opal-btl-usnic-unit-tests -endif -ifneq ($(filter $(NO_CMA_ARCH),$(DEB_HOST_ARCH)),) - CMA:= --without-cma -endif - # Flags for the static build: see bug #502232 #STATIC_CONFIG_PARAMS = --enable-static STATIC_CONFIG_PARAMS = +# Do not embed build username or build system hostname, see README +export HOSTNAME=hostname +export USER=username %: - dh $@ --with=fortran_mod + dh $@ --with fortran_mod -override_dh_auto_clean: - dh_clean - find . -name .libs -exec rm -rf {} \; || true - find . -name .dirstamp -delete - find . -type l -delete - find . -name '*.o' -delete - rm -f $(patsubst %, debian/%, ${AUTOGENERATED}) - -override_dh_update_autotools_config: - (cd config && autom4te --language=m4sh opal_get_version.m4sh -o opal_get_version.sh) - ./autogen.pl --force - -override_dh_auto_configure: - for f in ${AUTOGENERATED} ; do \ - sed -e 's%@TRIPLET@%${DEB_HOST_MULTIARCH}%g' < debian/$$f.in > debian/$$f ; \ - done - dh_auto_configure -- \ +extra_flags = \ --disable-silent-rules \ --disable-wrapper-runpath \ --with-package-string="Debian OpenMPI" \ $(VERBS) $(FABRIC) $(PSM) $(PSM2) $(CMA) \ - $(ENABLE_BUILTIN_ATOMICS) \ + $(UCX) \ + --with-pmix=$(LIBDIR)/pmix2 \ + $(ATOMICS) \ $(JAVA) \ $(STATIC_CONFIG_PARAMS) \ $(BTL_TESTS) \ --with-libevent=external \ - --with-pmix=${LIBDIR}/pmix \ + --with-hwloc=external \ --disable-silent-rules \ --enable-mpi-cxx \ - --with-hwloc=/usr \ - --with-libltdl \ + --enable-ipv6 \ --with-devel-headers \ --with-slurm \ --with-sge \ @@ -121,139 +104,227 @@ --libdir=\$${prefix}/lib/${DEB_HOST_MULTIARCH}/openmpi/lib \ --includedir=\$${prefix}/lib/${DEB_HOST_MULTIARCH}/openmpi/include +override_dh_auto_clean: + dh_clean + rm -f $(patsubst %, debian/%, ${AUTOGENERATED}) + find . -name .libs -exec rm -rf {} \; || true + find . -name .dirstamp -delete + find . -type l -delete + find . -name '*.o' -delete + +override_dh_update_autotools_config: + (cd config && autom4te --language=m4sh opal_get_version.m4sh -o opal_get_version.sh) + ./autogen.pl --force + +override_dh_auto_configure: + for f in ${AUTOGENERATED} ; do \ + sed -e 's%@DEB_HOST_MULTIARCH@%${DEB_HOST_MULTIARCH}%g' < debian/$$f.in | \ + sed -e 's/@GFORTRAN_VERSION@/${GFORTRAN_VERSION}/' > debian/$$f ; \ + done + dh_auto_configure --builddirectory=$(BUILDDIR_GFORTRAN) -- $(extra_flags) + $(DO_FLANG) && dh_auto_configure --builddirectory=$(BUILDDIR_FLANG) \ + -- $(extra_flags) FC=flang FCFLAGS="$(FLANG_FCFLAGS)" || true + +override_dh_auto_build: + dh_auto_build --builddirectory=$(BUILDDIR_GFORTRAN) + $(DO_FLANG) && dh_auto_build --builddirectory=$(BUILDDIR_FLANG) || true + override_dh_install: - # Strip rpath info from all executables and libraries. - find debian/tmp/ -type f -perm -+x -a ! -name '*.la' -a ! -name '*.mod' -exec chrpath -d '{}' \; + dh_auto_install --builddirectory=$(BUILDDIR_GFORTRAN) + $(DO_FLANG) && find $(BUILDDIR_FLANG) -type f -perm -+x -a ! -name '*.la' -a ! -name '*.mod' -exec chrpath -d '{}' \; || true # Rename the compiler and startup wrappers. for f in mpic++ mpicc mpiCC mpicxx mpiexec mpif77 mpif90 mpirun mpifort ; do \ - if test -f debian/tmp/usr/bin/$${f}; then \ - mv debian/tmp/usr/bin/$${f} debian/tmp/usr/bin/$${f}.openmpi ; \ + if test -f $(DESTDIR)/usr/bin/$${f}; then \ + mv $(DESTDIR)/usr/bin/$${f} $(DESTDIR)/usr/bin/$${f}.openmpi ; \ fi; \ done + # Rename some files + mv $(DESTDIR)/usr/bin/aggregate_profile.pl $(DESTDIR)/usr/bin/aggregate_profile + mv $(DESTDIR)/usr/bin/profile2mat.pl $(DESTDIR)/usr/bin/profile2mat # Strip rpath from pc,wrapper files for f in ompi-c.pc ompi-cxx.pc ompi-f77.pc ompi-f90.pc ompi-fort.pc ompi.pc opal.pc orte.pc ; do \ sed -e 's/-Wl,-rpath -Wl,$${libdir}//' < $(DESTDIR)/$(LIBDIR)/openmpi/lib/pkgconfig/$${f} > debian/tmp.x ; \ mv debian/tmp.x $(DESTDIR)/$(LIBDIR)/openmpi/lib/pkgconfig/$${f} ; \ done find . -name '*wrapper-data.txt' | while read f; do \ - sed -e 's/-Wl,-rpath -Wl,@{libdir}//' < $$f > debian/tmp.x ; \ + sed -e 's/-Wl,-rpath -Wl,@{libdir}//' < $$f | \ + sed -e 's/@COMPILER_VERSION@/${GFORTRAN_VERSION}/' > debian/tmp.x ; \ mv debian/tmp.x $$f ; done # Rename the compiler wrapper man pages. for f in mpic++ mpicc mpicxx mpiexec mpif77 mpif90 mpirun mpifort ; do \ - if test -f debian/tmp/usr/share/man/man1/$${f}.1; then \ - mv debian/tmp/usr/share/man/man1/$${f}.1 debian/tmp/usr/share/man/man1/$${f}.openmpi.1 ; \ + if test -f $(DESTDIR)/usr/share/man/man1/$${f}.1; then \ + echo DEBUG7 $${f} ;\ + mv $(DESTDIR)/usr/share/man/man1/$${f}.1 $(DESTDIR)/usr/share/man/man1/$${f}.openmpi.1 ; \ fi; \ - if test -f debian/tmp/usr/share/man/man1/$${f}.3; then \ - mv debian/tmp/usr/share/man/man3/$${f}.3 debian/tmp/usr/share/man/man1/$${f}.openmpi.3 ; \ + if test -f $(DESTDIR)/usr/share/man/man1/$${f}.3; then \ + echo DEBUG8 $${f} ;\ + mv $(DESTDIR)/usr/share/man/man3/$${f}.3 $(DESTDIR)/usr/share/man/man1/$${f}.openmpi.3 ; \ fi; \ done - cd debian/tmp/usr/share/man/man3; \ + cd $(DESTDIR)/usr/share/man/man3; \ for f in *.3; do \ mv $$f $$(echo $$f|sed -e "s|\.3|.openmpi.3|g"); \ done; \ + mkdir -p $(DESTDIR)/$(LIBDIR)/openmpi/lib/ + cp $(BUILDDIR_GFORTRAN)/ompi/mpi/fortran/*/.libs/libmpi_mpifh.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_mpifh.so.40.30.0 + cp $(BUILDDIR_GFORTRAN)/ompi/mpi/fortran/*/.libs/libmpi_usempi_ignore_tkr.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr.so.40.30.0 + cp $(BUILDDIR_GFORTRAN)/ompi/mpi/fortran/*/.libs/libmpi_usempif08.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempif08.so.40.30.0 + gcc -shared -fPIC -Wl,-soname,libmpi_mpifh-gfortran.so.40 -o $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_mpifh-gfortran.so.40.30.0 \ + $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_mpifh.so.40.30.0 + gcc -shared -fPIC -Wl,-soname,libmpi_usempi_ignore_tkr-gfortran.so.40 \ + -o $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr-gfortran.so.40.30.0 \ + $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr.so.40.30.0 + gcc -shared -fPIC -Wl,-soname,libmpi_usempif08-gfortran.so.40 -o $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempif08-gfortran.so.40.30.0 \ + $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempif08.so.40.30.0 + # Flang, if present + $(DO_FLANG) && ( \ + mkdir -p $(DESTDIR)/$(FLANG_MODDIR) ; \ + dh_fortran_mod -p libopenmpi-dev $(BUILDDIR_FLANG)/ompi/mpi/fortran/mpiext/*.mod openmpi ; \ + dh_fortran_mod -p libopenmpi-dev $(BUILDDIR_FLANG)/ompi/mpi/fortran/use-mpi-ignore-tkr/*.mod openmpi ; \ + dh_fortran_mod -p libopenmpi-dev $(BUILDDIR_FLANG)/ompi/mpi/fortran/use-mpi-f08/*.mod openmpi ; \ + dh_fortran_mod -p libopenmpi-dev $(BUILDDIR_FLANG)/ompi/mpi/fortran/use-mpi-f08/mod/*.mod openmpi ; \ + dh_fortran_mod -p libopenmpi-dev $(BUILDDIR_FLANG)/ompi/mpi/fortran/mpiext-use-mpi/*.mod openmpi ; \ + cp $(BUILDDIR_FLANG)/ompi/mpi/fortran/*/.libs/libmpi_mpifh.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_mpifh-flang.so.40.30.0 ; \ + cp $(BUILDDIR_FLANG)/ompi/mpi/fortran/*/.libs/libmpi_usempi_ignore_tkr.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr-flang.so.40.30.0 ; \ + cp $(BUILDDIR_FLANG)/ompi/mpi/fortran/*/.libs/libmpi_usempif08.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempif08-flang.so.40.30.0 ; \ + dh_link -p libopenmpi3 $(LIBDIR)/libmpi_mpifh-flang.so.40.30.0 $(LIBDIR)/openmpi/lib/libmpi_mpifh-flang.so.40 ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/libmpi_mpifh-flang.so.40.30.0 $(FLANG_LIBDIR)/openmpi/lib/libmpi_mpifh-flang.so ; \ + dh_link -p libopenmpi3 $(LIBDIR)/libmpi_usempif08-flang.so.40.30.0 $(LIBDIR)/openmpi/lib/libmpi_usempif08-flang.so.40 ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/libmpi_usempif08-flang.so.40.30.0 $(FLANG_LIBDIR)/openmpi/lib/libmpi_usempif08.so ; \ + dh_link -p libopenmpi3 $(LIBDIR)/libmpi_usempi_ignore_tkr-flang.so.40.30.0 $(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr-flang.so.40 ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/libmpi_usempi_ignore_tkr-flang.so.40.30.0 $(FLANG_LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr.so ; \ + ) || true +# patchelf --set-soname libmpi_mpifh-flang.so.40 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_mpifh-flang.so.40.30.0 ; \ +# patchelf --set-soname libmpi_usempi_ignore_tkr-flang.so.40 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr-flang.so.40.30.0 ; \ +# patchelf --set-soname libmpi_usempif08-flang.so.40 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempif08-flang.so.40.30.0 ; \ + # Strip rpath info from all executables and libraries. + find $(DESTDIR) -type f -perm -+x -a ! -name '*.la' -a ! -name '*.mod' -exec chrpath -d '{}' \; || true # Rename orte-bootproxy.sh to orte-bootproxy - if test -f debian/tmp/usr/bin/orte-bootproxy.sh; then \ - mv debian/tmp/usr/bin/orte-bootproxy.sh debian/tmp/usr/bin/orte-bootproxy; \ + if test -f $(DESTDIR)/usr/bin/orte-bootproxy.sh; then \ + mv $(DESTDIR)/usr/bin/orte-bootproxy.sh $(DESTDIR)/usr/bin/orte-bootproxy; \ fi # Remove dangling symlink(s) - rm -f debian/tmp/usr/share/man/man1/mpiCC.1 - rm -f debian/tmp/usr/share/man/man1/orteCC.1 + rm -f $(DESTDIR)/usr/share/man/man1/mpiCC.1 + rm -f $(DESTDIR)/usr/share/man/man1/orteCC.1 # Remove COPYRIGHT file of ptmalloc2. It's reproduced in debian/copyright. - rm -f -r debian/tmp/usr/share/openmpi/doc/ + rm -fr $(DESTDIR)/usr/share/openmpi/doc/ # Remove pmi2, pmix now in separate package - rm -rf debian/tmp/usr/lib/*/openmpi/include/pmi* + rm -rf $(DESTDIR)/usr/lib/*/openmpi/include/pmi* # Remove buggy ${pkgincludedir} refs from pkg-config files. #837062 - find . -name '*.pc' | while read f ; do \ + find . -name '*.pc' -type f | while read f ; do \ cat $${f} | sed -e 's%-I$${pkgincludedir}[a-zA-Z0-9/]* %%g' > x ; \ mv x $${f}; done # sanitize build paths for bit-reproducibility - if test ./debian/tmp/${LIBDIR}/openmpi/include/openmpi/opal_config.h ; then \ - sed -e 's%${CURDIR}%/build/openmpi%g' < ./debian/tmp/${LIBDIR}/openmpi/include/openmpi/opal_config.h \ - > debian/tmp/x ; \ - mv debian/tmp/x ./debian/tmp/${LIBDIR}/openmpi/include/openmpi/opal_config.h ; \ + if test $(DESTDIR)/${LIBDIR}/openmpi/include/openmpi/opal_config.h ; then \ + sed -e 's%${CURDIR}%/build/openmpi%g' < $(DESTDIR)/${LIBDIR}/openmpi/include/openmpi/opal_config.h \ + > $(DESTDIR)/x ; \ + mv $(DESTDIR)/x /$(DESTDIR)/${LIBDIR}/openmpi/include/openmpi/opal_config.h ; \ fi # Continue as usual dh_install # oshmem, shmem only built on Linux so do by hand or it may fail ... - mkdir -p debian/libopenmpi3/${LIBDIR}/openmpi/lib - if test -f debian/tmp/usr/bin/oshmem_info ; then \ - mkdir -p debian/openmpi-bin/usr/share/man/man1 ; \ - cp -a debian/tmp/usr/bin/oshrun debian/openmpi-bin//usr/bin/ ; \ - cp -a debian/tmp/usr/bin/oshmem_info debian/openmpi-bin//usr/bin/ ; \ - cp -a debian/tmp/usr/bin/oshcc debian/libopenmpi-dev/usr/bin ; \ - cp -a debian/tmp/usr/bin/oshfort debian/libopenmpi-dev/usr/bin ; \ - cp -a debian/tmp/usr/share/man/man1/oshcc.1 debian/libopenmpi-dev/usr/share/man/man1 ; \ - cp -a debian/tmp/usr/share/man/man1/oshfort.1 debian/libopenmpi-dev/usr/share/man/man1 ; \ - cp -a debian/tmp/usr/share/man/man1/oshrun.1 debian/openmpi-bin/usr/share/man/man1 ; \ - cp -a debian/tmp/usr/share/man/man1/oshmem_info.1 debian/openmpi-bin/usr/share/man/man1 ; \ - fi - # cp -a debian/tmp/${LIBDIR}/openmpi/lib/liboshmem.so.40.20.0 debian/libopenmpi3/${LIBDIR}/openmpi/lib ; - # dh_link -p libopenmpi-dev ${LIBDIR}/liboshmem.so.40 ${LIBDIR}/liboshmem.so ; - # dh_link -p libopenmpi3 ${LIBDIR}/openmpi/lib/liboshmem.so.40.20.0 ${LIBDIR}/liboshmem.so.40 ; - if test -f debian/tmp/${LIBDIR}/openmpi/lib/libmpi_java.so.40.20.0 ; then \ - cp -a debian/tmp/${LIBDIR}/openmpi/lib/libmpi_java.so.40.20.0 \ - debian/libopenmpi3/${LIBDIR}/openmpi/lib/libmpi_java.so.40.20.0 ; \ - dh_link -p libopenmpi3 ${LIBDIR}/libmpi_java.so.40.20.0 ${LIBDIR}/libmpi_java.so.40 ; \ - dh_link -p libopenmpi3 ${LIBDIR}/openmpi/lib/libmpi_java.so.40.20.0 ${LIBDIR}/libmpi_java.so.40.20.0 ; \ - dh_link -p libopenmpi-dev ${LIBDIR}/libmpi_java.so.40 ${LIBDIR}/libmpi_java.so ; \ - fi - if test -f debian/tmp/${LIBDIR}/openmpi/lib/libmca_common_monitoring.so.50.10.0 ; then \ - cp -a debian/tmp/${LIBDIR}/openmpi/lib/libmca_common_monitoring.so.50.10.0 \ - debian/libopenmpi3/${LIBDIR}/openmpi/lib/libmca_common_monitoring.so.50.10.0 ; \ - dh_link -p libopenmpi3 ${LIBDIR}/libmca_common_monitoring.so.50.10.0 ${LIBDIR}/libmca_common_monitoring.so.50 ; \ - dh_link -p libopenmpi3 ${LIBDIR}/openmpi/lib/libmca_common_monitoring.so.50.10.0 ${LIBDIR}/libmca_common_monitoring.so.50.10.0 ; \ - dh_link -p libopenmpi-dev ${LIBDIR}/libmca_common_monitoring.so.50 ${LIBDIR}/libmca_common_monitoring.so ; \ + # mkdir -p debian/libopenmpi3/$(LIBDIR)/openmpi/lib + if test -f $(DESTDIR)/usr/bin/oshmem_info ; then \ + dh_link -p openmpi-bin /usr/bin/mpirun.openmpi /usr/bin/oshrun ;\ + dh_install -p openmpi-bin /usr/bin/oshmem_info ; \ + dh_install -p openmpi-bin /usr/bin/oshcxx ;\ + dh_install -p openmpi-bin /usr/bin/oshcc ;\ + dh_install -p openmpi-bin /usr/bin/oshc++ ;\ + dh_install -p openmpi-bin /usr/bin/oshfort ; \ + dh_install -p openmpi-bin /usr/bin/oshCC ; \ + dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshfort.1 ; \ + dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshrun.1 ; \ + dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshmem_info.1 ; \ + dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshcc.1 ; \ + dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshCC.1 ; \ + dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshc++.1 ; \ + dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshcxx.1 ; \ + dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/liboshmem.so.40.30.2 $(LIBDIR) ; \ + dh_link -p libopenmpi3 $(LIBDIR)/liboshmem.so.40.30.2 $(LIBDIR)/liboshmem.so.40 ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/liboshmem.so.40 $(LIBDIR)/openmpi/lib/liboshmem.so ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/liboshmem.so.40 $(LIBDIR)/liboshmem.so ; \ + fi + if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_java.so.40.30.0 ; then \ + dh_install -p openmpi-bin /usr/bin/mpijavac ; \ + dh_install -p openmpi-bin usr/bin/mpijavac.pl ; \ + dh_installman openmpi-bin $(DESTDIR)/usr/share/man/man1/mpijavac.1 ; \ + dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmpi_java.so.40.30.0 $(LIBDIR); \ + dh_link -p libopenmpi3 $(LIBDIR)/libmpi_java.so.40.30.0 $(LIBDIR)/libmpi_java.so.40 ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/libmpi_java.so.40 $(LIBDIR)/openmpi/lib/libmpi_java.so ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/libmpi_java.so.40 $(LIBDIR)/libmpi_java.so ; \ + fi + if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_ucx.so.40.30.2 ; then \ + dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_ucx.so.40.30.2 $(LIBDIR); \ + dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_ucx.so.40.30.2 $(LIBDIR)/libmca_common_ucx.so.40 ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ucx.so.40 $(LIBDIR)/openmpi/lib/libmca_common_ucx.so ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ucx.so.40 $(LIBDIR)/libmca_common_ucx.so ; \ + fi + if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_monitoring.so.50.20.0 ; then \ + dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_monitoring.so.50.20.0 $(LIBDIR) ; \ + dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_monitoring.so.50.20.0 $(LIBDIR)/libmca_common_monitoring.so.50 ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_monitoring.so.50 $(LIBDIR)/openmpi/lib/libmca_common_monitoring.so ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_monitoring.so.50 $(LIBDIR)/libmca_common_monitoring.so ; \ fi # No longer needed ? - if test -f debian/tmp/${LIBDIR}/openmpi/lib/libmca_common_ofi.so.40.10.0 ; then \ - cp -a debian/tmp/${LIBDIR}/openmpi/lib/libmca_common_ofi.so.40.10.0 \ - debian/libopenmpi3/${LIBDIR}/openmpi/lib/libmca_common_ofi.so.40.10.0 ; \ - dh_link -p libopenmpi3 ${LIBDIR}/libmca_common_ofi.so.40.10.0 ${LIBDIR}/libmca_common_ofi.so.40 ; \ - dh_link -p libopenmpi3 ${LIBDIR}/openmpi/lib/libmca_common_ofi.so.40.10.0 ${LIBDIR}/libmca_common_ofi.so.40.10.0 ; \ - dh_link -p libopenmpi-dev ${LIBDIR}/libmca_common_ofi.so.40 ${LIBDIR}/libmca_common_ofi.so ; \ - fi - if test -f debian/tmp/${LIBDIR}/openmpi/lib/libmca_common_ompio.so.41.19.3 ; then \ - cp -a debian/tmp/${LIBDIR}/openmpi/lib/libmca_common_ompio.so.41.19.3 \ - debian/libopenmpi3/${LIBDIR}/openmpi/lib/libmca_common_ompio.so.41.19.3 ; \ - dh_link -p libopenmpi3 ${LIBDIR}/libmca_common_ompio.so.41.19.3 ${LIBDIR}/libmca_common_ompio.so.41 ; \ - dh_link -p libopenmpi3 ${LIBDIR}/openmpi/lib/libmca_common_ompio.so.41.19.3 ${LIBDIR}/libmca_common_ompio.so.41.19.3 ; \ - dh_link -p libopenmpi-dev ${LIBDIR}/libmca_common_ompio.so.41 ${LIBDIR}/libmca_common_ompio.so ; \ - fi - if test -f debian/tmp/${LIBDIR}/openmpi/lib/libmca_common_verbs.so.40.20.0 ; then \ - cp -a debian/tmp/${LIBDIR}/openmpi/lib/libmca_common_verbs.so.40.20.0 \ - debian/libopenmpi3/${LIBDIR}/openmpi/lib/libmca_common_verbs.so.40.20.0 ; \ - dh_link -p libopenmpi3 ${LIBDIR}/libmca_common_verbs.so.40.20.0 ${LIBDIR}/libmca_common_verbs.so.40 ; \ - dh_link -p libopenmpi3 ${LIBDIR}/openmpi/lib/libmca_common_verbs.so.40.20.0 ${LIBDIR}/libmca_common_verbs.so.40.20.0 ; \ - dh_link -p libopenmpi-dev ${LIBDIR}/libmca_common_verbs.so.40 ${LIBDIR}/libmca_common_verbs.so ; \ - fi - if test -f debian/tmp/${LIBDIR}/openmpi/lib/libmca_common_libfabric.so.40.10.0 ; then \ - cp -a debian/tmp/${LIBDIR}/openmpi/lib/libmca_common_libfabric.so.40.10.0 \ - debian/libopenmpi3/${LIBDIR}/openmpi/lib/libmca_common_libfabric.so.40.i10.0 ; \ - dh_link -p libopenmpi3 ${LIBDIR}/libmca_common_libfabric.so.40.10.0 ${LIBDIR}/libmca_common_libfabric.so.40 ; \ - dh_link -p libopenmpi3 ${LIBDIR}/openmpi/lib/libmca_common_libfabric.so.40.10.0 ${LIBDIR}/libmca_common_libfabric.so.40.10.0 ; \ - dh_link -p libopenmpi-dev ${LIBDIR}/libmca_common_libfabric.so.40.10.0 ${LIBDIR}/libmca_common_libfabric.so ; \ - fi - if test -f debian/tmp/usr/bin/shmemrun ; then \ - cp -a debian/tmp/usr/bin/shmemrun debian/openmpi-bin/usr/bin/shmemrun ;\ - cp -a debian/tmp/usr/share/man/man1/shmemrun.1 debian/openmpi-bin/usr/share/man/man1 ; \ - cp -a debian/tmp/usr/bin/shmemcc debian/openmpi-bin/usr/bin/shmemcc ; \ - cp -a debian/tmp/usr/bin/shmemfort debian/openmpi-bin/usr/bin/shmemfort ; \ - cp -a debian/tmp/usr/share/man/man1/shmemcc.1 debian/openmpi-bin/usr/share/man/man1 ; \ - cp -a debian/tmp/usr/share/man/man1/shmemfort.1 debian/openmpi-bin/usr/share/man/man1 ; \ + if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_ofi.so.10.0.2 ; then \ + dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_ofi.so.10.0.2 $(LIBDIR) ; \ + dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_ofi.so.10.0.2 $(LIBDIR)/libmca_common_ofi.so.10 ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ofi.so.10 $(LIBDIR)/openmpi/lib/libmca_common_ofi.so ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ofi.so.10 $(LIBDIR)/libmca_common_ofi.so ; \ + fi + if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_ompio.so.41.29.4; then \ + dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_ompio.so.41.29.4 $(LIBDIR) ; \ + dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_ompio.so.41.29.4 $(LIBDIR)/libmca_common_ompio.so.41 ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ompio.so.41 $(LIBDIR)/openmpi/lib/libmca_common_ompio.so ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ompio.so.41 $(LIBDIR)/libmca_common_ompio.so ; \ + fi + if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_verbs.so.40.30.0 ; then \ + dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_verbs.so.40.30.0 $(LIBDIR) ; \ + dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_verbs.so.40.30.0 $(LIBDIR)/libmca_common_verbs.so.40 ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_verbs.so.40 $(LIBDIR)/openmpi/lib/libmca_common_verbs.so ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_verbs.so.40 $(LIBDIR)/libmca_common_verbs.so ; \ + fi + if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_libfabric.so.40.30.0 ; then \ + dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_libfabric.so.40.30.0 $(LIBDIR) ; \ + dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_libfabric.so.40.30.0 $(LIBDIR)/libmca_common_libfabric.so.40 ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_libfabric.so.40 $(LIBDIR)/openmpi/lib/libmca_common_libfabric.so ; \ + dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_libfabric.so.40 $(LIBDIR)/libmca_common_libfabric.so ; \ + fi + # If shmemrun exists, its a broken link so use -h to test + if test -h $(DESTDIR)/usr/bin/shmemrun ; then \ + dh_link -p openmpi-bin /usr/bin/mpirun.openmpi /usr/bin/shmemrun ;\ + dh_install -p openmpi-bin usr/bin/shmemcc ; \ + dh_install -p openmpi-bin usr/bin/shmemcxx ; \ + dh_install -p openmpi-bin usr/bin/shmemc++ ; \ + dh_install -p openmpi-bin /usr/bin/shmemCC ; \ + dh_install -p openmpi-bin /usr/bin/shmemfort ; \ + dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemcc.1 ;\ + dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemc++.1 ;\ + dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemfort.1 ; \ + dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemrun.1 ; \ + dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemCC.1 ; \ + dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemcxx.1 ; \ fi override_dh_fixperms-arch: - chmod 0644 debian/libopenmpi*/${LIBDIR}/openmpi/lib/*.mod + chmod 0644 debian/libopenmpi*/$(LIBDIR)/fortran/*/openmpi/*.mod rm -f debian/libopenmpi-dev/usr/lib/*/openmpi/lib/ompi_monitoring_prof.so - # TODO: whats causing this? - rm -f debian/libopenmpi-dev/usr/bin dh_fixperms override_dh_auto_test: $(DO_TEST) && dh_auto_test || echo "Tests disabled on ${NO_TEST_ARCH} systems for the moment" +override_dh_shlibdeps: + dh_shlibdeps -l$(DESTDIR)/$(LIBDIR)/openmpi/lib -- --ignore-missing-info + override_dh_installdocs: dh_installdocs --all NEWS README - -override_dh_shlibdeps: - dh_shlibdeps -l$(CURDIR)/debian/tmp/${LIBDIR}/openmpi/lib -- --ignore-missing-info +ifeq ($(filter nojava,$(DEB_BUILD_PROFILES)),) + dh_installdocs -p openmpi-doc debian/tmp/usr/share/doc/openmpi/javadoc-openmpi + dh_link -p libopenmpi-dev /usr/share/javascript/jquery/jquery.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/external/jquery/jquery.js + dh_link -p libopenmpi-dev /usr/share/javascript/jquery/jquery.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-3.5.1.js + dh_link -p libopenmpi-dev /usr/share/javascript/jquery-ui/themes/base/jquery-ui.css /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.css + dh_link -p libopenmpi-dev /usr/share/javascript/jquery-ui/jquery-ui.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.js + dh_link -p libopenmpi-dev /usr/share/javascript/jquery-ui/themes/base/jquery-ui.min.css /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.min.css + dh_link -p libopenmpi-dev /usr/share/javascript/jquery-ui/jquery-ui.min.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.min.js +endif diff -Nru openmpi-4.0.3/debian/tests/check_shared_objs openmpi-4.1.4/debian/tests/check_shared_objs --- openmpi-4.0.3/debian/tests/check_shared_objs 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/debian/tests/check_shared_objs 2022-09-03 14:47:37.000000000 +0000 @@ -0,0 +1,9 @@ +#!/bin/sh + + +# Ensure all mca shared objects, etc are ok + +ompi_info --all 2>&1 | grep "cannot open shared object file" + +[ $? -eq 1 ] + diff -Nru openmpi-4.0.3/debian/tests/control openmpi-4.1.4/debian/tests/control --- openmpi-4.0.3/debian/tests/control 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/debian/tests/control 2022-09-03 14:47:37.000000000 +0000 @@ -0,0 +1,11 @@ +Tests: hello1 +Depends: gcc, openmpi-bin, libopenmpi-dev + +Tests: hello2 +Depends: gfortran, libopenmpi-dev, openmpi-bin + +Tests: hello4 +Depends: gfortran, libopenmpi-dev, openmpi-bin + +Tests: check_shared_objs +Depends: openmpi-bin diff -Nru openmpi-4.0.3/debian/tests/hello1 openmpi-4.1.4/debian/tests/hello1 --- openmpi-4.0.3/debian/tests/hello1 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/debian/tests/hello1 2022-09-03 14:47:37.000000000 +0000 @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +### Compile and run a simple MPI application + +cd debian/tests +mpicc -o hello hello.c + +mpirun -n 1 ./hello +rm ./hello diff -Nru openmpi-4.0.3/debian/tests/hello2 openmpi-4.1.4/debian/tests/hello2 --- openmpi-4.0.3/debian/tests/hello2 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/debian/tests/hello2 2022-09-03 14:47:37.000000000 +0000 @@ -0,0 +1,13 @@ +#!/bin/sh + +set -e + +cd debian/tests + +### Compile and run a simple MPI application + +mpif90 -o hello hello.f90 + +mpirun -n 1 ./hello + +rm ./hello diff -Nru openmpi-4.0.3/debian/tests/hello3 openmpi-4.1.4/debian/tests/hello3 --- openmpi-4.0.3/debian/tests/hello3 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/debian/tests/hello3 2022-09-03 14:47:37.000000000 +0000 @@ -0,0 +1,10 @@ +#!/bin/sh + +set -e + +### Compile and run a simple MPI application, via pkg-config + + +cc -o hello `pkg-config mpi --libs --cflags` hello.c + +mpirun -n 1 ./hello diff -Nru openmpi-4.0.3/debian/tests/hello4 openmpi-4.1.4/debian/tests/hello4 --- openmpi-4.0.3/debian/tests/hello4 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/debian/tests/hello4 2022-09-03 14:47:37.000000000 +0000 @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +### Compile and run a simple MPI application + cd debian/tests + +mpif77 -o hello hello.f + +mpirun -n 1 ./hello +rm ./hello diff -Nru openmpi-4.0.3/debian/tests/hello.c openmpi-4.1.4/debian/tests/hello.c --- openmpi-4.0.3/debian/tests/hello.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/debian/tests/hello.c 2022-09-03 14:47:37.000000000 +0000 @@ -0,0 +1,28 @@ +#include +#include + +int main(int argc, char** argv) { + // Initialize the MPI environment + MPI_Init(NULL, NULL); + + // Get the number of processes + int world_size; + MPI_Comm_size(MPI_COMM_WORLD, &world_size); + + // Get the rank of the process + int world_rank; + MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); + + // Get the name of the processor + char processor_name[MPI_MAX_PROCESSOR_NAME]; + int name_len; + MPI_Get_processor_name(processor_name, &name_len); + + // Print off a hello world message + printf("Hello world from processor %s, rank %d out of %d processors\n", + processor_name, world_rank, world_size); + + // Finalize the MPI environment. + MPI_Finalize(); +} + diff -Nru openmpi-4.0.3/debian/tests/hello.f openmpi-4.1.4/debian/tests/hello.f --- openmpi-4.0.3/debian/tests/hello.f 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/debian/tests/hello.f 2022-09-03 14:47:37.000000000 +0000 @@ -0,0 +1,11 @@ +C Fortran example + program hello + include 'mpif.h' + integer rank, size, ierror, tag, status(MPI_STATUS_SIZE) + + call MPI_INIT(ierror) + call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror) + call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror) + print*, 'node', rank, ': Hello world' + call MPI_FINALIZE(ierror) + end diff -Nru openmpi-4.0.3/debian/tests/hello.f90 openmpi-4.1.4/debian/tests/hello.f90 --- openmpi-4.0.3/debian/tests/hello.f90 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/debian/tests/hello.f90 2022-09-03 14:47:37.000000000 +0000 @@ -0,0 +1,11 @@ +! Fortran example + program hello + use mpi + integer rank, size, ierror, tag, status(MPI_STATUS_SIZE) + + call MPI_INIT(ierror) + call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror) + call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror) + print*, 'node', rank, ': Hello world' + call MPI_FINALIZE(ierror) + end diff -Nru openmpi-4.0.3/debian/watch openmpi-4.1.4/debian/watch --- openmpi-4.0.3/debian/watch 2019-12-18 13:41:29.000000000 +0000 +++ openmpi-4.1.4/debian/watch 2022-09-03 14:47:37.000000000 +0000 @@ -1,2 +1,2 @@ version=3 -http://www.open-mpi.org/software/ompi/v1.6/ .*/openmpi-([\d+\.]+)\.tar\.gz +http://www.open-mpi.org/software/ompi/ .*/.*/openmpi-([\d+\.]+)\.tar\.gz diff -Nru openmpi-4.0.3/examples/ring_c.c openmpi-4.1.4/examples/ring_c.c --- openmpi-4.0.3/examples/ring_c.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/examples/ring_c.c 2022-05-29 09:51:40.000000000 +0000 @@ -27,7 +27,7 @@ next = (rank + 1) % size; prev = (rank + size - 1) % size; - /* If we are the "master" process (i.e., MPI_COMM_WORLD rank 0), + /* If we are the "manager" process (i.e., MPI_COMM_WORLD rank 0), put the number of times to go around the ring in the message. */ diff -Nru openmpi-4.0.3/examples/ring_cxx.cc openmpi-4.1.4/examples/ring_cxx.cc --- openmpi-4.0.3/examples/ring_cxx.cc 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/examples/ring_cxx.cc 2022-05-29 09:51:40.000000000 +0000 @@ -34,7 +34,7 @@ next = (rank + 1) % size; prev = (rank + size - 1) % size; - // If we are the "master" process (i.e., MPI_COMM_WORLD rank 0), + // If we are the "manager" process (i.e., MPI_COMM_WORLD rank 0), // put the number of times to go around the ring in the message. if (0 == rank) { diff -Nru openmpi-4.0.3/examples/Ring.java openmpi-4.1.4/examples/Ring.java --- openmpi-4.0.3/examples/Ring.java 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/examples/Ring.java 2022-05-29 09:51:40.000000000 +0000 @@ -29,7 +29,7 @@ next = (myrank + 1) % size; prev = (myrank + size - 1) % size; - /* If we are the "master" process (i.e., MPI_COMM_WORLD rank 0), + /* If we are the "manager" process (i.e., MPI_COMM_WORLD rank 0), put the number of times to go around the ring in the message. */ diff -Nru openmpi-4.0.3/examples/ring_mpifh.f openmpi-4.1.4/examples/ring_mpifh.f --- openmpi-4.0.3/examples/ring_mpifh.f 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/examples/ring_mpifh.f 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ C Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana C University Research and Technology C Corporation. All rights reserved. -C Copyright (c) 2006-2015 Cisco Systems, Inc. All rights reserved. +C Copyright (c) 2006-2022 Cisco Systems, Inc. All rights reserved C $COPYRIGHT$ C C Simple ring test program using the mpif.h Fortran bindings. @@ -26,7 +26,7 @@ next = mod((rank + 1), size) from = mod((rank + size - 1), size) -C If we are the "master" process (i.e., MPI_COMM_WORLD rank 0), put +C If we are the "manager" process (i.e., MPI_COMM_WORLD rank 0), put C the number of times to go around the ring in the message. if (rank .eq. 0) then diff -Nru openmpi-4.0.3/examples/ring_usempif08.f90 openmpi-4.1.4/examples/ring_usempif08.f90 --- openmpi-4.0.3/examples/ring_usempif08.f90 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/examples/ring_usempif08.f90 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ ! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana ! University Research and Technology ! Corporation. All rights reserved. -! Copyright (c) 2006-2015 Cisco Systems, Inc. All rights reserved. +! Copyright (c) 2006-2022 Cisco Systems, Inc. All rights reserved ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. ! All rights reserved. ! $COPYRIGHT$ @@ -29,7 +29,7 @@ next = mod((rank + 1), size) from = mod((rank + size - 1), size) -! If we are the "master" process (i.e., MPI_COMM_WORLD rank 0), put +! If we are the "manager" process (i.e., MPI_COMM_WORLD rank 0), put ! the number of times to go around the ring in the message. if (rank .eq. 0) then diff -Nru openmpi-4.0.3/examples/ring_usempi.f90 openmpi-4.1.4/examples/ring_usempi.f90 --- openmpi-4.0.3/examples/ring_usempi.f90 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/examples/ring_usempi.f90 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ ! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana ! University Research and Technology ! Corporation. All rights reserved. -! Copyright (c) 2006-2015 Cisco Systems, Inc. All rights reserved. +! Copyright (c) 2006-2022 Cisco Systems, Inc. All rights reserved ! $COPYRIGHT$ ! ! Simple ring test program using the Fortran mpi module bindings. @@ -25,7 +25,7 @@ next = mod((rank + 1), size) from = mod((rank + size - 1), size) -! If we are the "master" process (i.e., MPI_COMM_WORLD rank 0), put +! If we are the "manager" process (i.e., MPI_COMM_WORLD rank 0), put ! the number of times to go around the ring in the message. if (rank .eq. 0) then diff -Nru openmpi-4.0.3/examples/spc_example.c openmpi-4.1.4/examples/spc_example.c --- openmpi-4.0.3/examples/spc_example.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/examples/spc_example.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 The University of Tennessee and The University + * Copyright (c) 2018-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * @@ -37,7 +37,7 @@ int main(int argc, char **argv) { - int num_messages, message_size; + int num_messages, message_size, rc; if(argc < 3) { printf("Usage: mpirun -np 2 --mca mpi_spc_attach all --mca mpi_spc_dump_enabled true ./spc_example [num_messages] [message_size]\n"); @@ -72,9 +72,11 @@ MPI_T_pvar_get_num(&num); for(i = 0; i < num; i++) { name_len = desc_len = 256; - PMPI_T_pvar_get_info(i, name, &name_len, &verbosity, - &var_class, &datatype, &enumtype, description, &desc_len, &bind, - &readonly, &continuous, &atomic); + rc = PMPI_T_pvar_get_info(i, name, &name_len, &verbosity, + &var_class, &datatype, &enumtype, description, &desc_len, &bind, + &readonly, &continuous, &atomic); + if( MPI_SUCCESS != rc ) + continue; if(strcmp(name, counter_names[rank]) == 0) { index = i; printf("[%d] %s -> %s\n", rank, name, description); diff -Nru openmpi-4.0.3/LICENSE openmpi-4.1.4/LICENSE --- openmpi-4.0.3/LICENSE 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/LICENSE 2022-05-29 09:51:40.000000000 +0000 @@ -8,7 +8,7 @@ Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana University Research and Technology Corporation. All rights reserved. -Copyright (c) 2004-2019 The University of Tennessee and The University +Copyright (c) 2004-2020 The University of Tennessee and The University of Tennessee Research Foundation. All rights reserved. Copyright (c) 2004-2019 High Performance Computing Center Stuttgart, @@ -17,15 +17,15 @@ All rights reserved. Copyright (c) 2006-2018 Los Alamos National Security, LLC. All rights reserved. -Copyright (c) 2006-2019 Cisco Systems, Inc. All rights reserved. +Copyright (c) 2006-2020 Cisco Systems, Inc. All rights reserved. Copyright (c) 2006-2010 Voltaire, Inc. All rights reserved. Copyright (c) 2006-2018 Sandia National Laboratories. All rights reserved. Copyright (c) 2006-2010 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. -Copyright (c) 2006-2019 The University of Houston. All rights reserved. +Copyright (c) 2006-2020 The University of Houston. All rights reserved. Copyright (c) 2006-2009 Myricom, Inc. All rights reserved. Copyright (c) 2007-2018 UT-Battelle, LLC. All rights reserved. -Copyright (c) 2007-2019 IBM Corporation. All rights reserved. +Copyright (c) 2007-2020 IBM Corporation. All rights reserved. Copyright (c) 1998-2005 Forschungszentrum Juelich, Juelich Supercomputing Centre, Federal Republic of Germany Copyright (c) 2005-2008 ZIH, TU Dresden, Federal Republic of Germany @@ -51,12 +51,13 @@ Copyright (c) 2011-2019 Fujitsu Limited. All rights reserved. Copyright (c) 2014-2015 Hewlett-Packard Development Company, LP. All rights reserved. -Copyright (c) 2013-2019 Research Organization for Information Science (RIST). +Copyright (c) 2013-2020 Research Organization for Information Science (RIST). All rights reserved. -Copyright (c) 2017-2018 Amazon.com, Inc. or its affiliates. All Rights +Copyright (c) 2017-2020 Amazon.com, Inc. or its affiliates. All Rights reserved. -Copyright (c) 2019 Triad National Security, LLC. All rights +Copyright (c) 2019-2020 Triad National Security, LLC. All rights reserved. +Copyright (c) 2020-2021 Cornelis Networks, Inc. All rights reserved. $COPYRIGHT$ diff -Nru openmpi-4.0.3/Makefile.in openmpi-4.1.4/Makefile.in --- openmpi-4.0.3/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -154,6 +154,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -161,6 +163,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -184,6 +187,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -286,6 +290,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -293,6 +298,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -373,6 +379,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -395,9 +402,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -407,6 +418,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -427,6 +439,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -704,6 +717,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1524,6 +1540,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1556,9 +1576,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1579,6 +1608,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1663,9 +1693,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1726,6 +1753,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1739,6 +1769,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/NEWS openmpi-4.1.4/NEWS --- openmpi-4.0.3/NEWS 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/NEWS 2022-05-29 09:51:40.000000000 +0000 @@ -8,22 +8,23 @@ University of Stuttgart. All rights reserved. Copyright (c) 2004-2006 The Regents of the University of California. All rights reserved. -Copyright (c) 2006-2018 Cisco Systems, Inc. All rights reserved. +Copyright (c) 2006-2022 Cisco Systems, Inc. All rights reserved. Copyright (c) 2006 Voltaire, Inc. All rights reserved. Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Copyright (c) 2006-2018 Los Alamos National Security, LLC. All rights reserved. -Copyright (c) 2010-2019 IBM Corporation. All rights reserved. +Copyright (c) 2010-2020 IBM Corporation. All rights reserved. Copyright (c) 2012 Oak Ridge National Labs. All rights reserved. Copyright (c) 2012 Sandia National Laboratories. All rights reserved. Copyright (c) 2012 University of Houston. All rights reserved. Copyright (c) 2013 NVIDIA Corporation. All rights reserved. Copyright (c) 2013-2018 Intel, Inc. All rights reserved. -Copyright (c) 2018 Amazon.com, Inc. or its affiliates. All Rights +Copyright (c) 2018-2022 Amazon.com, Inc. or its affiliates. All Rights reserved. -Copyright (c) 2019-2020 Triad National Security, LLC. All rights +Copyright (c) 2019-2021 Triad National Security, LLC. All rights reserved. +Copyright (c) 2021 Google, LLC. All rights reserved. $COPYRIGHT$ Additional copyrights may follow @@ -57,8 +58,373 @@ (** also appeared: A.B.C) -- indicating that this item was previously included in release version vA.B.C. +4.1.4 -- May, 2022 +------------------ + +- Fix possible length integer overflow in numerous non-blocking collective + operations. +- Fix segmentation fault in UCX if MPI Tool interface is finalized before + MPI_Init is called. +- Remove /usr/bin/python dependency in configure. +- Fix OMPIO issue with long double etypes. +- Update treematch topology component to fix numerous correctness issues. +- Fix memory leak in UCX MCA parameter registration. +- Fix long operation closing file descriptors on non-Linux systems that + can appear as a hang to users. +- Fix for attribute handling on GCC 11 due to pointer aliasing. +- Fix multithreaded race in UCX PML's datatype handling. +- Fix a correctness issue in CUDA Reduce algorithm. +- Fix compilation issue with CUDA GPUDirect RDMA support. +- Fix to make shmem_calloc(..., 0) conform to the OpenSHMEM specification. +- Add UCC collectives component. +- Fix divide by zero issue in OMPI IO component. +- Fix compile issue with libnl when not in standard search locations. + + +4.1.3 -- March, 2022 +-------------------- + +- Fixed a seg fault in the smcuda BTL. Thanks to Moritz Kreutzer and + @Stadik for reporting the issue. +- Added support for ELEMENTAL to the MPI handle comparison functions + in the mpi_f08 module. Thanks to Salvatore Filippone for raising + the issue. +- Minor datatype performance improvements in the CUDA-based code paths. +- Fix MPI_ALLTOALLV when used with MPI_IN_PLACE. +- Fix MPI_BOTTOM handling for non-blocking collectives. Thanks to + Lisandro Dalcin for reporting the problem. +- Enable OPAL memory hooks by default for UCX. +- Many compiler warnings fixes, particularly for newer versions of + GCC. +- Fix intercommunicator overflow with large payload collectives. Also + fixed MPI_REDUCE_SCATTER_BLOCK for similar issues with large payload + collectives. +- Back-port ROMIO 3.3 fix to use stat64() instead of stat() on GPFS. +- Fixed several non-blocking MPI collectives to not round fractions + based on float precision. +- Fix compile failure for --enable-heterogeneous. Also updated the + README to clarify that --enable-heterogeneous is functional, but + still not recomended for most environments. +- Minor fixes to OMPIO, including: + - Fixing the open behavior of shared memory shared file pointers. + Thanks to Axel Huebl for reporting the issue + - Fixes to clean up lockfiles when closing files. Thanks to Eric + Chamberland for reporting the issue. +- Update LSF configure failure output to be more clear (e.g., on RHEL + platforms). +- Update if_[in|ex]clude behavior in btl_tcp and oob_tcp to select + *all* interfaces that fall within the specified subnet range. + + +4.1.2 -- November, 2021 +----------------------- + +- ROMIO portability fix for OpenBSD +- Fix handling of MPI_IN_PLACE with MPI_ALLTOALLW and improve performance + of MPI_ALLTOALL and MPI_ALLTOALLV for MPI_IN_PLACE. +- Fix one-sided issue with empty groups in Post-Start-Wait-Complete + synchronization mode. +- Fix Fortran status returns in certain use cases involving + Generalized Requests +- Romio datatype bug fixes. +- Fix oshmem_shmem_finalize() when main() returns non-zero value. +- Fix wrong affinity under LSF with the membind option. +- Fix count==0 cases in MPI_REDUCE and MPI_IREDUCE. +- Fix ssh launching on Bourne-flavored shells when the user has "set + -u" set in their shell startup files. +- Correctly process 0 slots with the mpirun --host option. +- Ensure to unlink and rebind socket when the Open MPI session + directory already exists. +- Fix a segv in mpirun --disable-dissable-map. +- Fix a potential hang in the memory hook handling. +- Slight performance improvement in MPI_WAITALL when running in + MPI_THREAD_MULTIPLE. +- Fix hcoll datatype mapping and rooted operation behavior. +- Correct some operations modifying MPI_Status.MPI_ERROR when it is + disallowed by the MPI standard. +- UCX updates: + - Fix datatype reference count issues. + - Detach dynamic window memory when freeing a window. + - Fix memory leak in datatype handling. +- Fix various atomic operations issues. +- mpirun: try to set the curses winsize to the pty of the spawned + task. Thanks to Stack Overflow user @Seriously for reporting the + issue. +- PMIx updates: + - Fix compatibility with external PMIx v4.x installations. + - Fix handling of PMIx v3.x compiler/linker flags. Thanks to Erik + Schnetter for reporting the issue. + - Skip SLURM-provided PMIx detection when appropriate. Thanks to + Alexander Grund for reporting the issue. +- Fix handling by C++ compilers when they #include the STL "" + header file, which ends up including Open MPI's text VERSION file + (which is not C code). Thanks to @srpgilles for reporting the + issue. +- Fix MPI_Op support for MPI_LONG. +- Make the MPI C++ bindings library (libmpi_cxx) explicitly depend on + the OPAL internal library (libopen-pal). Thanks to Ye Luo for + reporting the issue. +- Fix configure handling of "--with-libevent=/usr". +- Fix memory leak when opening Lustre files. Thanks to Bert Wesarg + for submitting the fix. +- Fix MPI_SENDRECV_REPLACE to correctly process datatype errors. + Thanks to Lisandro Dalcin for reporting the issue. +- Fix MPI_SENDRECV_REPLACE to correctly handle large data. Thanks + Jakub Benda for reporting this issue and suggesting a fix. +- Add workaround for TCP "dropped connection" errors to drastically + reduce the possibility of this happening. +- OMPIO updates: + - Fix handling when AMODE is not set. Thanks to Rainer Keller for + reporting the issue and supplying the fix. + - Fix FBTL "posix" component linking issue. Thanks for Honggang Li + for reporting the issue. + - Fixed segv with MPI_FILE_GET_BYTE_OFFSET on 0-sized file view. + - Thanks to GitHub user @shanedsnyder for submitting the issue. +- OFI updates: + - Multi-plane / Multi-Nic nic selection cleanups + - Add support for exporting Open MPI memory monitors into + Libfabric. + - Ensure that Cisco usNIC devices are never selected by the OFI + MTL. + - Fix buffer overflow in OFI networking setup. Thanks to Alexander + Grund for reporting the issue and supplying the fix. +- Fix SSEND on tag matching networks. +- Fix error handling in several MPI collectives. +- Fix the ordering of MPI_COMM_SPLIT_TYPE. Thanks to Wolfgang + Bangerth for raising the issue. +- No longer install the orted-mpir library (it's an internal / Libtool + convenience library). Thanks to Andrew Hesford for the fix. +- PSM2 updates: + - Allow advanced users to disable PSM2 version checking. + - Fix to allow non-default installation locations of psm2.h. + + +4.1.1 -- April, 2021 +-------------------- + +- Fix a number of datatype issues, including an issue with + improper handling of partial datatypes that could lead to + an unexpected application failure. +- Change UCX PML to not warn about MPI_Request leaks during + MPI_FINALIZE by default. The old behavior can be restored with + the mca_pml_ucx_request_leak_check MCA parameter. +- Reverted temporary solution that worked around launch issues in + SLURM v20.11.{0,1,2}. SchedMD encourages users to avoid these + versions and to upgrade to v20.11.3 or newer. +- Updated PMIx to v3.2.2. +- Fixed configuration issue on Apple Silicon observed with + Homebrew. Thanks to François-Xavier Coudert for reporting the issue. +- Disabled gcc built-in atomics by default on aarch64 platforms. +- Disabled UCX PML when UCX v1.8.0 is detected. UCX version 1.8.0 has a bug that + may cause data corruption when its TCP transport is used in conjunction with + the shared memory transport. UCX versions prior to v1.8.0 are not affected by + this issue. Thanks to @ksiazekm for reporting the issue. +- Fixed detection of available UCX transports/devices to better inform PML + prioritization. +- Fixed SLURM support to mark ORTE daemons as non-MPI tasks. +- Improved AVX detection to more accurately detect supported + platforms. Also improved the generated AVX code, and switched to + using word-based MCA params for the op/avx component (vs. numeric + big flags). +- Improved OFI compatibility support and fixed memory leaks in error + handling paths. +- Improved HAN collectives with support for Barrier and Scatter. Thanks + to @EmmanuelBRELLE for these changes and the relevant bug fixes. +- Fixed MPI debugger support (i.e., the MPIR_Breakpoint() symbol). + Thanks to @louisespellacy-arm for reporting the issue. +- Fixed ORTE bug that prevented debuggers from reading MPIR_Proctable. +- Removed PML uniformity check from the UCX PML to address performance + regression. +- Fixed MPI_Init_thread(3) statement about C++ binding and update + references about MPI_THREAD_MULTIPLE. Thanks to Andreas Lösel for + bringing the outdated docs to our attention. +- Added fence_nb to Flux PMIx support to address segmentation faults. +- Ensured progress of AIO requests in the POSIX FBTL component to + prevent exceeding maximum number of pending requests on MacOS. +- Used OPAL's mutli-thread support in the orted to leverage atomic + operations for object refcounting. +- Fixed segv when launching with static TCP ports. +- Fixed --debug-daemons mpirun CLI option. +- Fixed bug where mpirun did not honor --host in a managed job + allocation. +- Made a managed allocation filter a hostfile/hostlist. +- Fixed bug to marked a generalized request as pending once initiated. +- Fixed external PMIx v4.x check. +- Fixed OSHMEM build with `--enable-mem-debug`. +- Fixed a performance regression observed with older versions of GCC when + __ATOMIC_SEQ_CST is used. Thanks to @BiplabRaut for reporting the issue. +- Fixed buffer allocation bug in the binomial tree scatter algorithm when + non-contiguous datatypes are used. Thanks to @sadcat11 for reporting the issue. +- Fixed bugs related to the accumulate and atomics functionality in the + osc/rdma component. +- Fixed race condition in MPI group operations observed with + MPI_THREAD_MULTIPLE threading level. +- Fixed a deadlock in the TCP BTL's connection matching logic. +- Fixed pml/ob1 compilation error when CUDA support is enabled. +- Fixed a build issue with Lustre caused by unnecessary header includes. +- Fixed a build issue with IMB LSF workload manager. +- Fixed linker error with UCX SPML. + + +4.1.0 -- December, 2020 +----------------------- + +- collectives: Add HAN and ADAPT adaptive collectives components. + Both components are off by default and can be enabled by specifying + "mpirun --mca coll_adapt_priority 100 --mca coll_han_priority 100 ...". + We intend to enable both by default in Open MPI 5.0. +- OMPIO is now the default for MPI-IO on all filesystems, including + Lustre (prior to this, ROMIO was the default for Lustre). Many + thanks to Mark Dixon for identifying MPI I/O issues and providing + access to Lustre systems for testing. +- Updates for macOS Big Sur. Thanks to FX Coudert for reporting this + issue and pointing to a solution. +- Minor MPI one-sided RDMA performance improvements. +- Fix hcoll MPI_SCATTERV with MPI_IN_PLACE. +- Add AVX support for MPI collectives. +- Updates to mpirun(1) about "slots" and PE=x values. +- Fix buffer allocation for large environment variables. Thanks to + @zrss for reporting the issue. +- Upgrade the embedded OpenPMIx to v3.2.2. +- Take more steps towards creating fully Reproducible builds (see + https://reproducible-builds.org/). Thanks Bernhard M. Wiedemann for + bringing this to our attention. +- Fix issue with extra-long values in MCA files. Thanks to GitHub + user @zrss for bringing the issue to our attention. +- UCX: Fix zero-sized datatype transfers. +- Fix --cpu-list for non-uniform modes. +- Fix issue in PMIx callback caused by missing memory barrier on Arm platforms. +- OFI MTL: Various bug fixes. +- Fixed issue where MPI_TYPE_CREATE_RESIZED would create a datatype + with unexpected extent on oddly-aligned datatypes. +- collectives: Adjust default tuning thresholds for many collective + algorithms +- runtime: fix situation where rank-by argument does not work +- Portals4: Clean up error handling corner cases +- runtime: Remove --enable-install-libpmix option, which has not + worked since it was added +- opal: Disable memory patcher component on MacOS +- UCX: Allow UCX 1.8 to be used with the btl uct +- UCX: Replace usage of the deprecated NB API of UCX with NBX +- OMPIO: Add support for the IME file system +- OFI/libfabric: Added support for multiple NICs +- OFI/libfabric: Added support for Scalable Endpoints +- OFI/libfabric: Added btl for one-sided support +- OFI/libfabric: Multiple small bugfixes +- libnbc: Adding numerous performance-improving algorithms + +4.0.7 -- November, 2021 +----------------------- + +- Fix an issue with MPI_IALLREDUCE_SCATTER when using large count + arguments. +- Fixed an issue with POST/START/COMPLETE/WAIT when using subsets + of processes. Thanks to Thomas Gilles for reporting. +- Numerous fixes from vendor partners. +- Fix a problem with a couple of MPI_IALLREDUCE algorithms. Thanks to + John Donners for reporting. +- Fix an edge case where MPI_Reduce is invoked with zero count and NULL + source and destination buffers. +- Use the mfence instruction in opal_atomic_rmb on x86_64 cpus. Thanks + to George Katevenis for proposing a fix. +- Fix an issue with the Open MPI build system using the SLURM provided + PMIx when not requested by the user. Thanks to Alexander Grund for + reporting. +- Fix a problem compiling Open MPI with clang on case-insensitive + file systems. Thanks to @srpgilles for reporting. +- Fix some OFI usNIC/OFI MTL interaction problems. Thanks to + @roguephysicist reporting this issue. +- Fix a problem with the Posix fbtl component failing to load. + Thanks to Honggang Li for reporting. + +4.0.6 -- June, 2021 +------------------- + +- Update embedded PMIx to 3.2.3. This update addresses several + MPI_COMM_SPAWN problems. +- Fix an issue with MPI_FILE_GET_BYTE_OFFSET when supplying a + zero size file view. Thanks to @shanedsnyder for reporting. +- Fix an issue with MPI_COMM_SPLIT_TYPE not observing key correctly. + Thanks to Wolfgang Bangerth for reporting. +- Fix a derived datatype issue that could lead to potential data + corruption when using UCX. Thanks to @jayeshkrishna for reporting. +- Fix a problem with shared memory transport file name collisions. + Thanks to Moritz Kreutzer for reporting. +- Fix a problem when using Flux PMI and UCX. Thanks to Sami Ilvonen + for reporting and supplying a fix. +- Fix a problem with MPIR breakpoint being compiled out using PGI + compilers. Thanks to @louisespellacy-arm for reporting. +- Fix some ROMIO issues when using Lustre. Thanks to Mark Dixon for + reporting. +- Fix a problem using an external PMIx 4 to build Open MPI 4.0.x. +- Fix a compile problem when using the enable-timing configure option + and UCX. Thanks to Jan Bierbaum for reporting. +- Fix a symbol name collision when using the Cray compiler to build + Open SHMEM. Thanks to Pak Lui for reporting and fixing. +- Correct an issue encountered when building Open MPI under OSX Big Sur. + Thanks to FX Coudert for reporting. +- Various fixes to the OFI MTL. +- Fix an issue with allocation of sufficient memory for parsing long + environment variable values. Thanks to @zrss for reporting. +- Improve reproducibility of builds to assist Open MPI packages. + Thanks to Bernhard Wiedmann for bringing this to our attention. + +4.0.5 -- August, 2020 +--------------------- + +- Fix a problem with MPI RMA compare and swap operations. Thanks + to Wojciech Chlapek for reporting. +- Disable binding of MPI processes to system resources by Open MPI + if an application is launched using SLURM's srun command. +- Disable building of the Fortran mpi_f08 module when configuring + Open MPI with default 8 byte Fortran integer size. Thanks to + @ahcien for reporting. +- Fix a problem with mpirun when the --map-by option is used. + Thanks to Wenbin Lyu for reporting. +- Fix some issues with MPI one-sided operations uncovered using Global + Arrays regression test-suite. Thanks to @bjpalmer for reporting. +- Fix a problem with make check when using the PGI compiler. Thanks to + Carl Ponder for reporting. +- Fix a problem with MPI_FILE_READ_AT_ALL that could lead to application + hangs under certain circumstances. Thanks to Scot Breitenfeld for + reporting. +- Fix a problem building C++ applications with newer versions of GCC. + Thanks to Constantine Khrulev for reporting. + +4.0.4 -- June, 2020 +----------------------- + +- Fix a memory patcher issue intercepting shmat and shmdt. This was + observed on RHEL 8.x ppc64le (see README for more info). +- Fix an illegal access issue caught using gcc's address sanitizer. + Thanks to Georg Geiser for reporting. +- Add checks to avoid conflicts with a libevent library shipped with LSF. +- Switch to linking against libevent_core rather than libevent, if present. +- Add improved support for UCX 1.9 and later. +- Fix an ABI compatibility issue with the Fortran 2008 bindings. + Thanks to Alastair McKinstry for reporting. +- Fix an issue with rpath of /usr/lib64 when building OMPI on + systems with Lustre. Thanks to David Shrader for reporting. +- Fix a memory leak occurring with certain MPI RMA operations. +- Fix an issue with ORTE's mapping of MPI processes to resources. + Thanks to Alex Margolin for reporting and providing a fix. +- Correct a problem with incorrect error codes being returned + by OMPI MPI_T functions. +- Fix an issue with debugger tools not being able to attach + to mpirun more than once. Thanks to Gregory Lee for reporting. +- Fix an issue with the Fortran compiler wrappers when using + NAG compilers. Thanks to Peter Brady for reporting. +- Fix an issue with the ORTE ssh based process launcher at scale. + Thanks to Benjamín Hernández for reporting. +- Address an issue when using shared MPI I/O operations. OMPIO will + now successfully return from the file open statement but will + raise an error if the file system does not supported shared I/O + operations. Thanks to Romain Hild for reporting. +- Fix an issue with MPI_WIN_DETACH. Thanks to Thomas Naughton for reporting. + 4.0.3 -- March, 2020 ----------------------- + - Update embedded PMIx to 3.1.5 - Add support for Mellanox ConnectX-6. - Fix an issue in OpenMPI IO when using shared file pointers. @@ -97,6 +463,7 @@ 4.0.2 -- September, 2019 ------------------------ + - Update embedded PMIx to 3.1.4 - Enhance Open MPI to detect when processes are running in different name spaces on the same node, in which case the @@ -245,6 +612,138 @@ terminated normally but exited with non-zero error code. Thanks to Emre Brookes for reporting. +3.1.6 -- March, 2020 +-------------------- + +- Fix one-sided shared memory window configuration bug. +- Fix support for PGI'18 compiler. +- Fix issue with zero-length blockLength in MPI_TYPE_INDEXED. +- Fix run-time linker issues with OMPIO on newer Linux distros. +- Fix PMIX dstore locking compilation issue. Thanks to Marco Atzeri + for reporting the issue. +- Allow the user to override modulefile_path in the Open MPI SRPM, + even if install_in_opt is set to 1. +- Properly detect ConnectX-6 HCAs in the openib BTL. +- Fix segfault in the MTL/OFI initialization for large jobs. +- Fix issue to guarantee to properly release MPI one-sided lock when + using UCX transports to avoid a deadlock. +- Fix potential deadlock when processing outstanding transfers with + uGNI transports. +- Fix various portals4 control flow bugs. +- Fix communications ordering for alltoall and Cartesian neighborhood + collectives. +- Fix an infinite recursion crash in the memory patcher on systems + with glibc v2.26 or later (e.g., Ubuntu 18.04) when using certain + OS-bypass interconnects. + +3.1.5 -- November, 2019 +----------------------- + +- Fix OMPIO issue limiting file reads/writes to 2GB. Thanks to + Richard Warren for reporting the issue. +- At run time, automatically disable Linux cross-memory attach (CMA) + for vader BTL (shared memory) copies when running in user namespaces + (i.e., containers). Many thanks to Adrian Reber for raising the + issue and providing the fix. +- Sending very large MPI messages using the ofi MTL will fail with + some of the underlying Libfabric transports (e.g., PSM2 with + messages >=4GB, verbs with messages >=2GB). Prior version of Open + MPI failed silently; this version of Open MPI invokes the + appropriate MPI error handler upon failure. See + https://github.com/open-mpi/ompi/issues/7058 for more details. + Thanks to Emmanuel Thomé for raising the issue. +- Fix case where 0-extent datatypes might be eliminated during + optimization. Thanks to Github user @tjahns for raising the issue. +- Ensure that the MPIR_Breakpoint symbol is not optimized out on + problematic platforms. +- Fix MPI one-sided 32 bit atomic support. +- Fix OMPIO offset calculations with SEEK_END and SEEK_CUR in + MPI_FILE_GET_POSITION. Thanks to Wei-keng Liao for raising the + issue. +- Add "naive" regx component that will never fail, no matter how + esoteric the hostnames are. +- Fix corner case for datatype extent computations. Thanks to David + Dickenson for raising the issue. +- Allow individual jobs to set their map/rank/bind policies when + running LSF. Thanks to Nick R. Papior for assistance in solving the + issue. +- Fix MPI buffered sends with the "cm" PML. +- Properly propagate errors to avoid deadlocks in MPI one-sided operations. +- Update to PMIx v2.2.3. +- Fix data corruption in non-contiguous MPI accumulates over UCX. +- Fix ssh-based tree-based spawning at scale. Many thanks to Github + user @zrss for the report and diagnosis. +- Fix the Open MPI RPM spec file to not abort when grep fails. Thanks + to Daniel Letai for bringing this to our attention. +- Handle new SLURM CLI options (SLURM 19 deprecated some options that + Open MPI was using). Thanks to Jordan Hayes for the report and the + initial fix. +- OMPI: fix division by zero with an empty file view. +- Also handle shmat()/shmdt() memory patching with OS-bypass networks. +- Add support for unwinding info to all files that are present in the + stack starting from MPI_Init, which is helpful with parallel + debuggers. Thanks to James Clark for the report and initial fix. +- Fixed inadvertant use of bitwise operators in the MPI C++ bindings + header files. Thanks to Bert Wesarg for the report and the fix. + +3.1.4 -- April, 2019 +-------------------- + +- Fix compile error when configured with --enable-mpi-java and + --with-devel-headers. Thanks to @g-raffy for reporting the issue + (** also appeared: v3.0.4). +- Only use hugepages with appropriate permissions. Thanks to Hunter + Easterday for the fix. +- Fix possible floating point rounding and division issues in OMPIO + which led to crashes and/or data corruption with very large data. + Thanks to Axel Huebl and René Widera for identifing the issue, + supplying and testing the fix (** also appeared: v3.0.4). +- Use static_cast<> in mpi.h where appropriate. Thanks to @shadow-fx + for identifying the issue (** also appeared: v3.0.4). +- Fix RMA accumulate of non-predefined datatypes with predefined + operators. Thanks to Jeff Hammond for raising the issue (** also + appeared: v3.0.4). +- Fix race condition when closing open file descriptors when launching + MPI processes. Thanks to Jason Williams for identifying the issue and + supplying the fix (** also appeared: v3.0.4). +- Fix support for external PMIx v3.1.x. +- Fix Valgrind warnings for some MPI_TYPE_CREATE_* functions. Thanks + to Risto Toijala for identifying the issue and supplying the fix (** + also appeared: v3.0.4). +- Fix MPI_TYPE_CREATE_F90_{REAL,COMPLEX} for r=38 and r=308 (** also + appeared: v3.0.4). +- Fix assembly issues with old versions of gcc (<6.0.0) that affected + the stability of shared memory communications (e.g., with the vader + BTL) (** also appeared: v3.0.4). +- Fix MPI_Allreduce crashes with some cases in the coll/spacc module. +- Fix the OFI MTL handling of MPI_ANY_SOURCE (** also appeared: + v3.0.4). +- Fix noisy errors in the openib BTL with regards to + ibv_exp_query_device(). Thanks to Angel Beltre and others who + reported the issue (** also appeared: v3.0.4). +- Fix zero-size MPI one-sided windows with UCX. + +3.1.3 -- October, 2018 +---------------------- + +- Fix race condition in MPI_THREAD_MULTIPLE support of non-blocking + send/receive path. +- Fix error handling SIGCHLD forwarding. +- Add support for CHARACTER and LOGICAL Fortran datatypes for MPI_SIZEOF. +- Fix compile error when using OpenJDK 11 to compile the Java bindings. +- Fix crash when using a hostfile with a 'user@host' line. +- Numerous Fortran '08 interface fixes. +- TCP BTL error message fixes. +- OFI MTL now will use any provider other than shm, sockets, tcp, udp, or + rstream, rather than only supporting gni, psm, and psm2. +- Disable async receive of CUDA buffers by default, fixing a hang + on large transfers. +- Support the BCM57XXX and BCM58XXX Broadcomm adapters. +- Fix minmax datatype support in ROMIO. +- Bug fixes in vader shared memory transport. +- Support very large buffers with MPI_TYPE_VECTOR. +- Fix hang when launching with mpirun on Cray systems. + 3.1.2 -- August, 2018 ------------------------ @@ -351,6 +850,134 @@ - Remove support for XL compilers older than v13.1. - Remove support for atomic operations using MacOS atomics library. +3.0.6 -- March, 2020 +-------------------- + +- Fix one-sided shared memory window configuration bug. +- Fix support for PGI'18 compiler. +- Fix run-time linker issues with OMPIO on newer Linux distros. +- Allow the user to override modulefile_path in the Open MPI SRPM, + even if install_in_opt is set to 1. +- Properly detect ConnectX-6 HCAs in the openib BTL. +- Fix segfault in the MTL/OFI initialization for large jobs. +- Fix various portals4 control flow bugs. +- Fix communications ordering for alltoall and Cartesian neighborhood + collectives. +- Fix an infinite recursion crash in the memory patcher on systems + with glibc v2.26 or later (e.g., Ubuntu 18.04) when using certain + OS-bypass interconnects. + +3.0.5 -- November, 2019 +----------------------- + +- Fix OMPIO issue limiting file reads/writes to 2GB. Thanks to + Richard Warren for reporting the issue. +- At run time, automatically disable Linux cross-memory attach (CMA) + for vader BTL (shared memory) copies when running in user namespaces + (i.e., containers). Many thanks to Adrian Reber for raising the + issue and providing the fix. +- Sending very large MPI messages using the ofi MTL will fail with + some of the underlying Libfabric transports (e.g., PSM2 with + messages >=4GB, verbs with messages >=2GB). Prior version of Open + MPI failed silently; this version of Open MPI invokes the + appropriate MPI error handler upon failure. See + https://github.com/open-mpi/ompi/issues/7058 for more details. + Thanks to Emmanuel Thomé for raising the issue. +- Fix case where 0-extent datatypes might be eliminated during + optimization. Thanks to Github user @tjahns for raising the issue. +- Ensure that the MPIR_Breakpoint symbol is not optimized out on + problematic platforms. +- Fix OMPIO offset calculations with SEEK_END and SEEK_CUR in + MPI_FILE_GET_POSITION. Thanks to Wei-keng Liao for raising the + issue. +- Fix corner case for datatype extent computations. Thanks to David + Dickenson for raising the issue. +- Fix MPI buffered sends with the "cm" PML. +- Update to PMIx v2.2.3. +- Fix ssh-based tree-based spawning at scale. Many thanks to Github + user @zrss for the report and diagnosis. +- Fix the Open MPI RPM spec file to not abort when grep fails. Thanks + to Daniel Letai for bringing this to our attention. +- Handle new SLURM CLI options (SLURM 19 deprecated some options that + Open MPI was using). Thanks to Jordan Hayes for the report and the + initial fix. +- OMPI: fix division by zero with an empty file view. +- Also handle shmat()/shmdt() memory patching with OS-bypass networks. +- Add support for unwinding info to all files that are present in the + stack starting from MPI_Init, which is helpful with parallel + debuggers. Thanks to James Clark for the report and initial fix. +- Fixed inadvertant use of bitwise operators in the MPI C++ bindings + header files. Thanks to Bert Wesarg for the report and the fix. +- Added configure option --disable-wrappers-runpath (alongside the + already-existing --disable-wrappers-rpath option) to prevent Open + MPI's configure script from automatically adding runpath CLI options + to the wrapper compilers. + +3.0.4 -- April, 2019 +-------------------- + +- Fix compile error when configured with --enable-mpi-java and + --with-devel-headers. Thanks to @g-raffy for reporting the issue. +- Fix possible floating point rounding and division issues in OMPIO + which led to crashes and/or data corruption with very large data. + Thanks to Axel Huebl and René Widera for identifing the issue, + supplying and testing the fix (** also appeared: v3.0.4). +- Use static_cast<> in mpi.h where appropriate. Thanks to @shadow-fx + for identifying the issue. +- Fix datatype issue with RMA accumulate. Thanks to Jeff Hammond for + raising the issue. +- Fix RMA accumulate of non-predefined datatypes with predefined + operators. Thanks to Jeff Hammond for raising the issue. +- Fix race condition when closing open file descriptors when launching + MPI processes. Thanks to Jason Williams for identifying the issue and + supplying the fix. +- Fix Valgrind warnings for some MPI_TYPE_CREATE_* functions. Thanks + to Risto Toijala for identifying the issue and supplying the fix. +- Fix MPI_TYPE_CREATE_F90_{REAL,COMPLEX} for r=38 and r=308. +- Fix assembly issues with old versions of gcc (<6.0.0) that affected + the stability of shared memory communications (e.g., with the vader + BTL). +- Fix the OFI MTL handling of MPI_ANY_SOURCE. +- Fix noisy errors in the openib BTL with regards to + ibv_exp_query_device(). Thanks to Angel Beltre and others who + reported the issue. + +3.0.3 -- October, 2018 +---------------------- + +- Fix race condition in MPI_THREAD_MULTIPLE support of non-blocking + send/receive path. +- Fix error handling SIGCHLD forwarding. +- Add support for CHARACTER and LOGICAL Fortran datatypes for MPI_SIZEOF. +- Fix compile error when using OpenJDK 11 to compile the Java bindings. +- Fix crash when using a hostfile with a 'user@host' line. +- Numerous Fortran '08 interface fixes. +- TCP BTL error message fixes. +- OFI MTL now will use any provider other than shm, sockets, tcp, udp, or + rstream, rather than only supporting gni, psm, and psm2. +- Disable async receive of CUDA buffers by default, fixing a hang + on large transfers. +- Support the BCM57XXX and BCM58XXX Broadcomm adapters. +- Fix minmax datatype support in ROMIO. +- Bug fixes in vader shared memory transport. +- Support very large buffers with MPI_TYPE_VECTOR. +- Fix hang when launching with mpirun on Cray systems. +- Bug fixes in OFI MTL. +- Assorted Portals 4.0 bug fixes. +- Fix for possible data corruption in MPI_BSEND. +- Move shared memory file for vader btl into /dev/shm on Linux. +- Fix for MPI_ISCATTER/MPI_ISCATTERV Fortran interfaces with MPI_IN_PLACE. +- Upgrade PMIx to v2.1.4. +- Fix for Power9 built-in atomics. +- Numerous One-sided bug fixes. +- Fix for race condition in uGNI BTL. +- Improve handling of large number of interfaces with TCP BTL. +- Numerous UCX bug fixes. +- Add support for QLogic and Broadcom Cumulus RoCE HCAs to Open IB BTL. +- Add patcher support for aarch64. +- Fix hang on Power and ARM when Open MPI was built with low compiler + optimization settings. + 3.0.2 -- June, 2018 ------------------- @@ -842,7 +1469,7 @@ a file from independent jobs. Thanks to Nicolas Joly for reporting this issue. - Optimize zero size MPI_IALLTOALL{V,W} with MPI_IN_PLACE. Thanks to - Lisandro Dalcin for the report. + Lisandro Dalcín for the report. - Fix a ROMIO buffer overflow problem for large transfers when using NFS filesystems. - Fix type of MPI_ARGV[S]_NULL which prevented it from being used @@ -988,7 +1615,7 @@ for reporting. - Fix crash in MPI_COMM_SPAWN. - Fix types for MPI_UNWEIGHTED and MPI_WEIGHTS_EMPTY. Thanks to - Lisandro Dalcin for reporting. + Lisandro Dalcín for reporting. - Correctly report the name of MPI_INTEGER16. - Add some missing MPI constants to the Fortran bindings. - Fixed compile error when configuring Open MPI with --enable-timing. @@ -1004,7 +1631,7 @@ - Fix problem with use use of non-zero lower bound datatypes in collectives. Thanks to Hristo Iliev for reporting. - Fix a problem with memory allocation within MPI_GROUP_INTERSECTION. - Thanks to Lisandro Dalcin for reporting. + Thanks to Lisandro Dalcín for reporting. - Fix an issue with MPI_ALLGATHER for communicators that don't consist of two ranks. Thanks to David Love for reporting. - Various fixes for collectives when used with esoteric MPI datatypes. @@ -1173,9 +1800,9 @@ - Fix a problem with use of a 64 bit atomic counter. Thanks to Paul Hargrove for reporting. - Fix a problem with singleton job launching. Thanks to Lisandro - Dalcin for reporting. + Dalcín for reporting. - Fix a problem with use of MPI_UNDEFINED with MPI_COMM_SPLIT_TYPE. - Thanks to Lisandro Dalcin for reporting. + Thanks to Lisandro Dalcín for reporting. - Silence a compiler warning in PSM MTL. Thanks to Adrian Reber for reporting this. - Properly detect Intel TrueScale and OmniPath devices in the ACTIVE @@ -1191,7 +1818,7 @@ - Implement a workaround for a GNU Libtool problem. Thanks to Eric Schnetter for reporting and fixing. - Improve hcoll library detection in configure. Thanks to David - Shrader and Ake Sandgren for reporting this. + Shrader and Åke Sandgren for reporting this. - Miscellaneous minor bug fixes in the hcoll component. - Miscellaneous minor bug fixes in the ugni component. - Fix problems with XRC detection in OFED 3.12 and older releases. @@ -1220,9 +1847,9 @@ - Fix a problem with MPI-RMA PSCW epochs. Thanks to Berk Hess for reporting this. - Fix a problem in neighborhood collectives. Thanks to Lisandro - Dalcin for reporting. + Dalcín for reporting. - Fix MPI_IREDUCE_SCATTER_BLOCK for a one-process communicator. Thanks - to Lisandro Dalcin for reporting. + to Lisandro Dalcín for reporting. - Add (Open MPI-specific) additional flavors to MPI_COMM_SPLIT_TYPE. See MPI_Comm_split_type(3) for details. Thanks to Nick Andersen for supplying this enhancement. @@ -1381,10 +2008,10 @@ - Create a datafile in the per-proc directory in order to make it unique per communicator. Thanks to Peter Wind for the report - Fix zero-size malloc in one-sided pt-to-pt code. Thanks to Lisandro - Dalcin for the report + Dalcín for the report - Fix MPI_Get_address when passed MPI_BOTTOM to not return an error. - Thanks to Lisandro Dalcin for the report -- Fix MPI_TYPE_SET_ATTR with NULL value. Thanks to Lisandro Dalcin for + Thanks to Lisandro Dalcín for the report +- Fix MPI_TYPE_SET_ATTR with NULL value. Thanks to Lisandro Dalcín for the report - Fix various Fortran08 binding issues - Fix memchecker no-data case. Thanks to Clinton Stimpson for the report @@ -1581,11 +2208,11 @@ options. - CUDA: Made the asynchronous copy mode be the default. - Fix a malloc(0) warning in MPI_IREDUCE_SCATTER_BLOCK. Thanks to - Lisandro Dalcin for reporting the issue. + Lisandro Dalcín for reporting the issue. - Fix typo in MPI_Scatter(3) man page. Thanks to Akshay Venkatesh for noticing the mistake. - Add rudimentary protection from TCP port scanners. -- Fix typo in Open MPI error handling. Thanks to ke Sandgren for +- Fix typo in Open MPI error handling. Thanks to Åke Sandgren for pointing out the error. - Increased the performance of the CM PML (i.e., the Portals, PSM, PSM2, MXM, and OFI transports). @@ -1669,7 +2296,7 @@ source of the problem. - Fixed MPI_THREAD_MULTIPLE deadlock error in the vader BTL. Thanks to Thomas Klimpel for reporting the issue. -- Fixed several Valgrind warnings. Thanks for Lisandro Dalcin for +- Fixed several Valgrind warnings. Thanks for Lisandro Dalcín for contributing a patch fixing some one-sided code paths. - Fixed version compatibility test in OOB that broke ABI within the 1.8 series. NOTE: this will not resolve the problem between pre-1.8.5 @@ -1780,7 +2407,7 @@ reporting the issue. - Fixed seg fault in neighborhood collectives when the degree of the topology is higher than the communicator size. Thanks to Lisandro - Dalcin for reporting the issue. + Dalcín for reporting the issue. - Fixed segfault in neighborhood collectives under certain use-cases. - Fixed various issues regarding Solaris support. Thanks to Siegmar Gross for patiently identifying all the issues. @@ -1871,7 +2498,7 @@ - Ensure mpirun aborts properly when unable to map processes in scheduled environments. - Ensure that MPI RMA error codes show up properly. Thanks to - Lisandro Dalcin for reporting the issue. + Lisandro Dalcín for reporting the issue. - Minor bug fixes and improvements to the bash and zsh mpirun autocompletion scripts. - Fix sequential mpirun process mapper. Thanks to Bill Chen for @@ -1909,7 +2536,7 @@ - Add config support for the Mellanox ConnectX 4 card. - Add missing MPI_COMM_GET|SET_INFO functions, and missing MPI_WEIGHTS_EMPTY and MPI_ERR_RMA_SHARED constants. Thanks to - Lisandro Dalcin for pointing out the issue. + Lisandro Dalcín for pointing out the issue. - Update some help messages in OSHMEM, the usnic BTL, the TCP BTL, and ORTE, and update documentation about ompi_info's --level option. - Fix some compiler warnings. @@ -1961,7 +2588,7 @@ - Add version check during startup to ensure you are using the same version of Open MPI on all nodes in a job. - Significantly improved the performance of MPI_DIMS_CREATE for large - values. Thanks to Andreas Schfer for the contribution. + values. Thanks to Andreas Schäfer for the contribution. - Removed ASYNCHRONOUS keyword from the "ignore TKR" mpi_f08 module. - Deprecated the following mpirun options: --bynode, --bycore, --byslot: replaced with --map-by node|core|slot. @@ -2159,7 +2786,7 @@ Thanks to Alexey Ryzhikh for the patch. - Add bozo check for negative np values to mpirun to prevent a deadlock. Thanks to Upinder Malhi for identifying the issue. -- Fixed MPI_IS_THREAD_MAIN behavior. Thanks to Lisandro Dalcin for +- Fixed MPI_IS_THREAD_MAIN behavior. Thanks to Lisandro Dalcín for pointing out the problem. - Various rankfile fixes. - Fix functionality over iWARP devices. @@ -2355,7 +2982,7 @@ the patch. - Fixed debugger support for direct-launched jobs. - Fix MPI_IS_THREAD_MAIN to return the correct value. Thanks to - Lisandro Dalcin for pointing out the issue. + Lisandro Dalcín for pointing out the issue. - Update VT to 5.14.4.4: - Fix C++-11 issue. - Fix support for building RPMs on Fedora with CUDA libraries. @@ -2470,9 +3097,9 @@ - Improved collective algorithm selection for very large messages. - Fix PSM MTL affinity settings. - Fix issue with MPI_OP_COMMUTATIVE in the mpif.h bindings. Thanks to - Ake Sandgren for providing a patch to fix the issue. + Åke Sandgren for providing a patch to fix the issue. - Fix issue with MPI_SIZEOF when using CHARACTER and LOGICAL types in - the mpi module. Thanks to Ake Sandgren for providing a patch to fix + the mpi module. Thanks to Åke Sandgren for providing a patch to fix the issue. @@ -2543,13 +3170,13 @@ - Use aligned memory for OpenFabrics registered memory. - Multiple fixes for parameter checking in MPI_ALLGATHERV, MPI_REDUCE_SCATTER, MPI_SCATTERV, and MPI_GATHERV. Thanks to the - mpi4py community (Bennet Fauber, Lisandro Dalcin, Jonathan Dursi). + mpi4py community (Bennet Fauber, Lisandro Dalcín, Jonathan Dursi). - Fixed file positioning overflows in MPI_FILE_GET_POSITION, MPI_FILE_GET_POSITION_SHARED, FILE_GET_SIZE, FILE_GET_VIEW. - Removed the broken --cpu-set mpirun option. - Fix cleanup of MPI errorcodes. Thanks to Alexey Bayduraev for the patch. -- Fix default hostfile location. Thanks to Gtz Waschk for noticing +- Fix default hostfile location. Thanks to Götz Waschk for noticing the issue. - Improve several error messages. @@ -2661,7 +3288,7 @@ - Add support for dynamic service levels (SLs) in the openib BTL. - Fixed C++ bindings cosmetic/warnings issue with MPI::Comm::NULL_COPY_FN and MPI::Comm::NULL_DELETE_FN. Thanks to - Jlio Hoffimann for identifying the issues. + Júlio Hoffimann for identifying the issues. - Also allow the word "slots" in rankfiles (i.e., not just "slot"). (** also to appear in 1.4.4) - Add Mellanox ConnectX 3 device IDs to the openib BTL defaults. @@ -3385,7 +4012,7 @@ features. - Fix SLURM race condition. - Fix MPI_File_c2f(MPI_FILE_NULL) to return 0, not -1. Thanks to - Lisandro Dalcin for the bug report. + Lisandro Dalcín for the bug report. - Fix the DSO build of tm PLM. - Various fixes for size disparity between C int's and Fortran INTEGER's. Thanks to Christoph van Wullen for the bug report. @@ -3628,7 +4255,7 @@ - Fix for ConnectX devices and OFED 1.3. See ticket #1190. - Fixed a configure problem for Fortran 90 on Cray systems. Ticket #1189. - Fix an uninitialized variable in the error case in opal_init.c. - Thanks to Ake Sandgren for pointing out the mistake. + Thanks to Åke Sandgren for pointing out the mistake. - Fixed a hang in configure if $USER was not defined. Thanks to Darrell Kresge for noticing the problem. See ticket #900. - Added support for parallel debuggers even when we have an optimized build. @@ -3637,7 +4264,7 @@ compiling Open MPI with -g. See ticket #1179. - Removed some warnings about 'rm' from Mac OS X 10.5 (Leopard) builds. - Fix the handling of mx_finalize(). See ticket #1177. - Thanks to Ake Sandgren for bringing this issue to our attention. + Thanks to Åke Sandgren for bringing this issue to our attention. - Fixed minor file descriptor leak in the Altix timer code. Thanks to Paul Hargrove for noticing the problem and supplying the fix. - Fix a problem when using a different compiler for C and Objective C. @@ -3648,7 +4275,7 @@ - A few manpage fixes from the Debian Open MPI maintainers. Thanks to Tilman Koschnick, Sylvestre Ledru, and Dirk Eddelbuettel. - Fixed issue with pthread detection when compilers are not all - from the same vendor. Thanks to Ake Sandgren for the bug + from the same vendor. Thanks to Åke Sandgren for the bug report. See ticket #1150. - Fixed vector collectives in the self module. See ticket #1166. - Fixed some data-type engine bugs: an indexing bug, and an alignment bug. @@ -3676,12 +4303,12 @@ - Prevent users of 32-bit MPI apps from requesting >= 2GB of shared memory. - Added a Portals MTL. -- Fix 0 sized MPI_ALLOC_MEM requests. Thanks to Lisandro Dalcin for +- Fix 0 sized MPI_ALLOC_MEM requests. Thanks to Lisandro Dalcín for pointing out the problem. - Fixed a segfault crash on large SMPs when doing collectives. - A variety of fixes for Cray XT3/4 class of machines. - Fixed which error handler is used when MPI_COMM_SELF is passed - to MPI_COMM_FREE. Thanks to Lisandro Dalcini for the bug report. + to MPI_COMM_FREE. Thanks to Lisandro Dalcín for the bug report. - Fixed compilation on platforms that don't have hton/ntoh. - Fixed a logic problem in the fortran binding for MPI_TYPE_MATCH_SIZE. Thanks to Jeff Dusenberry for pointing out the problem and supplying @@ -3928,7 +4555,7 @@ in the MPI F77 bindings functions. Thanks to Pierre-Matthieu Anglade for bringing this problem to our attention. - Fix for a memory leak in the derived datatype function - ompi_ddt_duplicate(). Thanks to Andreas Schafer for reporting, + ompi_ddt_duplicate(). Thanks to Andreas Schäfer for reporting, diagnosing, and patching the leak. - Used better performing basic algorithm for MPI_ALLGATHERV. - Added a workaround for a bug in the Intel 9.1 C++ compiler (all @@ -3938,9 +4565,9 @@ - Fix MPI_SIZEOF implementation in the F90 bindings for COMPLEX variable types. - Fixes for persistent requests involving MPI_PROC_NULL. Thanks to - Lisandro Dalcin for reporting the problem. + Lisandro Dalcín for reporting the problem. - Fixes to MPI_TEST* and MPI_WAIT* for proper MPI exception reporting. - Thanks to Lisandro Dalcin for finding the issue. + Thanks to Lisandro Dalcín for finding the issue. - Various fixes for MPI generalized request handling; addition of missing MPI::Grequest functionality to the C++ bindings. - Add "mpi_preconnect_all" MCA parameter to force wireup of all MPI @@ -3951,7 +4578,7 @@ to Ralf Wildenhues for suggesting the fix. - Fix several MPI_*ERRHANDLER* functions and MPI_GROUP_TRANSLATE_RANKS with respect to what arguments they allowed and the behavior that - they effected. Thanks to Lisandro Dalcin for reporting the + they effected. Thanks to Lisandro Dalcín for reporting the problems. @@ -3960,7 +4587,7 @@ - Really fix Fortran status handling in MPI_WAITSOME and MPI_TESTSOME. - Various datatype fixes, reported by several users as causing - failures in the BLACS testing suite. Thanks to Harald Forbert, Ake + failures in the BLACS testing suite. Thanks to Harald Forbert, Åke Sandgren and, Michael Kluskens for reporting the problem. - Correctness and performance fixes for heterogeneous environments. - Fixed a error in command line parsing on some platforms (causing @@ -3974,7 +4601,7 @@ - Fix various error checking in MPI_INFO_GET_NTHKEY and MPI_GROUP_TRANSLATE_RANKS, and some collective operations (particularly with regards to MPI_IN_PLACE). Thanks to Lisandro - Dalcin for reporting the problems. + Dalcín for reporting the problems. - Fix receiving messages to buffers allocated by MPI_ALLOC_MEM. - Fix a number of race conditions with the MPI-2 Onesided interface. diff -Nru openmpi-4.0.3/ompi/attribute/attribute.c openmpi-4.1.4/ompi/attribute/attribute.c --- openmpi-4.0.3/ompi/attribute/attribute.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/attribute/attribute.c 2022-05-29 09:51:40.000000000 +0000 @@ -124,15 +124,15 @@ * ompi_set_attr_int(..., foo, ...) * * 4. C reads the attribute value. The value returned is a pointer - * that points to an int that has a value - * of 7. + * that points to an int that has a value of 7. * * Example: int *ret; * MPI_Attr_get(..., &ret); * -> *ret will equal 7. * - * 5. Fortran MPI-1 reads the attribute value. This is the unity - * case; the same value is returned. + * 5. Fortran MPI-1 reads the attribute value. The C int value is + * cast to a fortran INTEGER (i.e., MPI_Fint) -- potentially being + * truncated if sizeof(int) > sizeof(INTEGER). * * Example: INTEGER ret * CALL MPI_ATTR_GET(..., ret, ierr) @@ -158,7 +158,7 @@ * that points to an INTEGER (i.e., an MPI_Fint) that has a value * of 7. * --> NOTE: The external MPI interface does not distinguish between - * this case and case 7. It is the programer's responsibility + * this case and case 10. It is the programer's responsibility * to code accordingly. * * Example: MPI_Fint *ret; @@ -197,7 +197,7 @@ * that points to an INTEGER(KIND=MPI_ADDRESS_KIND) (i.e., a void*) * that has a value of 12. * --> NOTE: The external MPI interface does not distinguish between - * this case and case 4. It is the programer's responsibility + * this case and case 7. It is the programer's responsibility * to code accordingly. * * Example A: MPI_Aint *ret; @@ -346,8 +346,8 @@ if (MPI_SUCCESS != OMPI_FINT_2_INT(f_err)) { \ err = OMPI_FINT_2_INT(f_err); \ } else { \ - out_attr->av_value = (void*) 0; \ - *out_attr->av_fint_pointer = out; \ + out_attr->av_value.av_fint = out; \ + out_attr->av_set_from = OMPI_ATTRIBUTE_FINT; \ flag = OMPI_LOGICAL_2_INT(f_flag); \ } \ } \ @@ -364,7 +364,8 @@ if (MPI_SUCCESS != OMPI_FINT_2_INT(f_err)) { \ err = OMPI_FINT_2_INT(f_err); \ } else { \ - out_attr->av_value = (void *) out; \ + out_attr->av_value.av_aint = out; \ + out_attr->av_set_from = OMPI_ATTRIBUTE_AINT; \ flag = OMPI_LOGICAL_2_INT(f_flag); \ } \ } \ @@ -376,8 +377,9 @@ if ((err = (*((keyval_obj->copy_attr_fn).attr_##type##_copy_fn)) \ ((ompi_##type##_t *)old_object, key, keyval_obj->extra_state.c_ptr, \ in, &out, &flag, (ompi_##type##_t *)(new_object))) == MPI_SUCCESS) { \ - out_attr->av_value = out; \ - } \ + out_attr->av_value.av_pointer = out; \ + out_attr->av_set_from = OMPI_ATTRIBUTE_C; \ + } \ } \ OPAL_THREAD_LOCK(&attribute_lock); \ } while (0) @@ -386,52 +388,57 @@ * Cases for attribute values */ typedef enum ompi_attribute_translate_t { + OMPI_ATTRIBUTE_INVALID = -1, OMPI_ATTRIBUTE_C, OMPI_ATTRIBUTE_INT, OMPI_ATTRIBUTE_FINT, - OMPI_ATTRIBUTE_AINT + OMPI_ATTRIBUTE_AINT, } ompi_attribute_translate_t; +typedef union attribute_value_t { + MPI_Fint av_fint; + MPI_Aint av_aint; + int av_int; + void *av_pointer; +} attribute_value_t; + /* * struct to hold attribute values on each MPI object */ -typedef struct attribute_value_t { +typedef struct attribute_key_value_t { opal_object_t super; int av_key; - void *av_value; - int *av_int_pointer; - MPI_Fint *av_fint_pointer; - MPI_Aint *av_aint_pointer; - int av_set_from; + attribute_value_t av_value; + ompi_attribute_translate_t av_set_from; int av_sequence; -} attribute_value_t; +} attribute_key_value_t; /* * Local functions */ -static void attribute_value_construct(attribute_value_t *item); +static void attribute_key_value_construct(attribute_key_value_t *item); static void ompi_attribute_keyval_construct(ompi_attribute_keyval_t *keyval); static void ompi_attribute_keyval_destruct(ompi_attribute_keyval_t *keyval); static int set_value(ompi_attribute_type_t type, void *object, opal_hash_table_t **attr_hash, int key, - attribute_value_t *new_attr, + attribute_key_value_t *new_attr, bool predefined); static int get_value(opal_hash_table_t *attr_hash, int key, - attribute_value_t **attribute, int *flag); -static void *translate_to_c(attribute_value_t *val); -static MPI_Fint translate_to_fint(attribute_value_t *val); -static MPI_Aint translate_to_aint(attribute_value_t *val); + attribute_key_value_t **attribute, int *flag); +static void *translate_to_c(attribute_key_value_t *val); +static MPI_Fint translate_to_fint(attribute_key_value_t *val); +static MPI_Aint translate_to_aint(attribute_key_value_t *val); static int compare_attr_sequence(const void *attr1, const void *attr2); /* - * attribute_value_t class + * attribute_key_value_t class */ -static OBJ_CLASS_INSTANCE(attribute_value_t, +static OBJ_CLASS_INSTANCE(attribute_key_value_t, opal_object_t, - attribute_value_construct, + attribute_key_value_construct, NULL); @@ -451,8 +458,6 @@ static opal_hash_table_t *keyval_hash; static opal_bitmap_t *key_bitmap; static int attr_sequence; -static unsigned int int_pos = 12345; -static unsigned int integer_pos = 12345; /* * MPI attributes are *not* high performance, so just use a One Big Lock @@ -461,17 +466,14 @@ */ static opal_mutex_t attribute_lock; - /* - * attribute_value_t constructor function + * attribute_key_value_t constructor function */ -static void attribute_value_construct(attribute_value_t *item) +static void attribute_key_value_construct(attribute_key_value_t *item) { item->av_key = MPI_KEYVAL_INVALID; - item->av_aint_pointer = (MPI_Aint*) &item->av_value; - item->av_int_pointer = (int *)&item->av_value + int_pos; - item->av_fint_pointer = (MPI_Fint *)&item->av_value + integer_pos; - item->av_set_from = 0; + item->av_value.av_aint = 0; + item->av_set_from = OMPI_ATTRIBUTE_INVALID; item->av_sequence = -1; } @@ -520,8 +522,6 @@ int ompi_attr_init(void) { int ret; - void *bogus = (void*) 1; - int *p = (int *) &bogus; keyval_hash = OBJ_NEW(opal_hash_table_t); if (NULL == keyval_hash) { @@ -536,20 +536,6 @@ return OMPI_ERR_OUT_OF_RESOURCE; } - for (int_pos = 0; int_pos < (sizeof(void*) / sizeof(int)); - ++int_pos) { - if (p[int_pos] == 1) { - break; - } - } - - for (integer_pos = 0; integer_pos < (sizeof(void*) / sizeof(MPI_Fint)); - ++integer_pos) { - if (p[integer_pos] == 1) { - break; - } - } - OBJ_CONSTRUCT(&attribute_lock, opal_mutex_t); if (OMPI_SUCCESS != (ret = opal_hash_table_init(keyval_hash, @@ -721,14 +707,14 @@ int key, void *attribute, bool predefined) { int ret; - attribute_value_t *new_attr = OBJ_NEW(attribute_value_t); + attribute_key_value_t *new_attr = OBJ_NEW(attribute_key_value_t); if (NULL == new_attr) { return OMPI_ERR_OUT_OF_RESOURCE; } OPAL_THREAD_LOCK(&attribute_lock); - new_attr->av_value = attribute; + new_attr->av_value.av_pointer = attribute; new_attr->av_set_from = OMPI_ATTRIBUTE_C; ret = set_value(type, object, attr_hash, key, new_attr, predefined); if (OMPI_SUCCESS != ret) { @@ -751,15 +737,14 @@ int key, int attribute, bool predefined) { int ret; - attribute_value_t *new_attr = OBJ_NEW(attribute_value_t); + attribute_key_value_t *new_attr = OBJ_NEW(attribute_key_value_t); if (NULL == new_attr) { return OMPI_ERR_OUT_OF_RESOURCE; } OPAL_THREAD_LOCK(&attribute_lock); - new_attr->av_value = (void *) 0; - *new_attr->av_int_pointer = attribute; + new_attr->av_value.av_int = attribute; new_attr->av_set_from = OMPI_ATTRIBUTE_INT; ret = set_value(type, object, attr_hash, key, new_attr, predefined); if (OMPI_SUCCESS != ret) { @@ -783,15 +768,14 @@ bool predefined) { int ret; - attribute_value_t *new_attr = OBJ_NEW(attribute_value_t); + attribute_key_value_t *new_attr = OBJ_NEW(attribute_key_value_t); if (NULL == new_attr) { return OMPI_ERR_OUT_OF_RESOURCE; } OPAL_THREAD_LOCK(&attribute_lock); - new_attr->av_value = (void *) 0; - *new_attr->av_fint_pointer = attribute; + new_attr->av_value.av_fint = attribute; new_attr->av_set_from = OMPI_ATTRIBUTE_FINT; ret = set_value(type, object, attr_hash, key, new_attr, predefined); if (OMPI_SUCCESS != ret) { @@ -815,14 +799,14 @@ bool predefined) { int ret; - attribute_value_t *new_attr = OBJ_NEW(attribute_value_t); + attribute_key_value_t *new_attr = OBJ_NEW(attribute_key_value_t); if (NULL == new_attr) { return OMPI_ERR_OUT_OF_RESOURCE; } OPAL_THREAD_LOCK(&attribute_lock); - new_attr->av_value = (void *) attribute; + new_attr->av_value.av_aint = attribute; new_attr->av_set_from = OMPI_ATTRIBUTE_AINT; ret = set_value(type, object, attr_hash, key, new_attr, predefined); if (OMPI_SUCCESS != ret) { @@ -844,7 +828,7 @@ int ompi_attr_get_c(opal_hash_table_t *attr_hash, int key, void **attribute, int *flag) { - attribute_value_t *val = NULL; + attribute_key_value_t *val = NULL; int ret; OPAL_THREAD_LOCK(&attribute_lock); @@ -867,7 +851,7 @@ int ompi_attr_get_fint(opal_hash_table_t *attr_hash, int key, MPI_Fint *attribute, int *flag) { - attribute_value_t *val = NULL; + attribute_key_value_t *val = NULL; int ret; OPAL_THREAD_LOCK(&attribute_lock); @@ -890,7 +874,7 @@ int ompi_attr_get_aint(opal_hash_table_t *attr_hash, int key, MPI_Aint *attribute, int *flag) { - attribute_value_t *val = NULL; + attribute_key_value_t *val = NULL; int ret; OPAL_THREAD_LOCK(&attribute_lock); @@ -921,7 +905,7 @@ uint32_t key; int flag; void *node, *in_node; - attribute_value_t *old_attr, *new_attr; + attribute_key_value_t *old_attr, *new_attr; ompi_attribute_keyval_t *hash_value; /* If there's nothing to do, just return */ @@ -951,7 +935,7 @@ } err = 0; - new_attr = OBJ_NEW(attribute_value_t); + new_attr = OBJ_NEW(attribute_key_value_t); switch (type) { case COMM_ATTR: /* Now call the copy_attr_fn */ @@ -1033,7 +1017,7 @@ { ompi_attribute_keyval_t *keyval; int ret = OMPI_SUCCESS; - attribute_value_t *attr; + attribute_key_value_t *attr; /* Check if the key is valid in the master keyval hash */ ret = opal_hash_table_get_value_uint32(keyval_hash, key, @@ -1123,7 +1107,7 @@ int ret, i, num_attrs; uint32_t key; void *node, *in_node, *attr; - attribute_value_t **attrs; + attribute_key_value_t **attrs; /* Ensure that the table is not empty */ @@ -1140,7 +1124,7 @@ return MPI_SUCCESS; } - attrs = malloc(sizeof(attribute_value_t *) * num_attrs); + attrs = malloc(sizeof(attribute_key_value_t *) * num_attrs); if (NULL == attrs) { OPAL_THREAD_UNLOCK(&attribute_lock); return OMPI_ERR_OUT_OF_RESOURCE; @@ -1155,7 +1139,7 @@ } /* Sort attributes in the order that they were set */ - qsort(attrs, num_attrs, sizeof(attribute_value_t *), compare_attr_sequence); + qsort(attrs, num_attrs, sizeof(attribute_key_value_t *), compare_attr_sequence); /* Delete attributes in the reverse order that they were set. Actually this ordering is required only for MPI_COMM_SELF, as @@ -1186,12 +1170,12 @@ */ static int set_value(ompi_attribute_type_t type, void *object, opal_hash_table_t **attr_hash, int key, - attribute_value_t *new_attr, + attribute_key_value_t *new_attr, bool predefined) { ompi_attribute_keyval_t *keyval; int ret; - attribute_value_t *old_attr; + attribute_key_value_t *old_attr; bool had_old = false; /* Note that this function can be invoked by ompi_attr_copy_all() @@ -1275,7 +1259,7 @@ * Assumes that you do NOT already have the attribute lock. */ static int get_value(opal_hash_table_t *attr_hash, int key, - attribute_value_t **attribute, int *flag) + attribute_key_value_t **attribute, int *flag) { int ret; void *attr; @@ -1301,7 +1285,7 @@ ret = opal_hash_table_get_value_uint32(attr_hash, key, &attr); if (OMPI_SUCCESS == ret) { - *attribute = (attribute_value_t*)attr; + *attribute = (attribute_key_value_t*)attr; *flag = 1; } @@ -1317,25 +1301,25 @@ * This function does not fail -- it is only invoked in "safe" * situations. */ -static void *translate_to_c(attribute_value_t *val) +static void *translate_to_c(attribute_key_value_t *val) { switch (val->av_set_from) { case OMPI_ATTRIBUTE_C: /* Case 1: wrote a C pointer, read a C pointer (unity) */ - return val->av_value; + return val->av_value.av_pointer; case OMPI_ATTRIBUTE_INT: /* Case 4: wrote an int, read a C pointer */ - return (void *) val->av_int_pointer; + return &val->av_value.av_int; case OMPI_ATTRIBUTE_FINT: /* Case 7: wrote a MPI_Fint, read a C pointer */ - return (void *) val->av_fint_pointer; + return &val->av_value.av_fint; case OMPI_ATTRIBUTE_AINT: /* Case 10: wrote a MPI_Aint, read a C pointer */ - return (void *) val->av_aint_pointer; + return &val->av_value.av_aint; default: /* Should never reach here */ @@ -1351,25 +1335,25 @@ * This function does not fail -- it is only invoked in "safe" * situations. */ -static MPI_Fint translate_to_fint(attribute_value_t *val) +static MPI_Fint translate_to_fint(attribute_key_value_t *val) { switch (val->av_set_from) { case OMPI_ATTRIBUTE_C: /* Case 2: wrote a C pointer, read a MPI_Fint */ - return (MPI_Fint)*val->av_int_pointer; + return (MPI_Fint)(intptr_t)val->av_value.av_pointer; case OMPI_ATTRIBUTE_INT: /* Case 5: wrote an int, read a MPI_Fint */ - return (MPI_Fint)*val->av_int_pointer; + return (MPI_Fint)val->av_value.av_int; case OMPI_ATTRIBUTE_FINT: /* Case 8: wrote a MPI_Fint, read a MPI_Fint (unity) */ - return *val->av_fint_pointer; + return val->av_value.av_fint; case OMPI_ATTRIBUTE_AINT: /* Case 11: wrote a MPI_Aint, read a MPI_Fint */ - return (MPI_Fint)*val->av_fint_pointer; + return (MPI_Fint)val->av_value.av_aint; default: /* Should never reach here */ @@ -1385,25 +1369,25 @@ * This function does not fail -- it is only invoked in "safe" * situations. */ -static MPI_Aint translate_to_aint(attribute_value_t *val) +static MPI_Aint translate_to_aint(attribute_key_value_t *val) { switch (val->av_set_from) { case OMPI_ATTRIBUTE_C: /* Case 3: wrote a C pointer, read a MPI_Aint */ - return (MPI_Aint) val->av_value; + return (MPI_Aint) val->av_value.av_pointer; case OMPI_ATTRIBUTE_INT: /* Case 6: wrote an int, read a MPI_Aint */ - return (MPI_Aint) *val->av_int_pointer; + return (MPI_Aint) val->av_value.av_int; case OMPI_ATTRIBUTE_FINT: /* Case 9: wrote a MPI_Fint, read a MPI_Aint */ - return (MPI_Aint) *val->av_fint_pointer; + return (MPI_Aint) val->av_value.av_fint; case OMPI_ATTRIBUTE_AINT: /* Case 12: wrote a MPI_Aint, read a MPI_Aint (unity) */ - return (MPI_Aint) val->av_value; + return val->av_value.av_aint; default: /* Should never reach here */ @@ -1416,6 +1400,6 @@ */ static int compare_attr_sequence(const void *attr1, const void *attr2) { - return (*(attribute_value_t **)attr1)->av_sequence - - (*(attribute_value_t **)attr2)->av_sequence; + return (*(attribute_key_value_t **)attr1)->av_sequence - + (*(attribute_key_value_t **)attr2)->av_sequence; } diff -Nru openmpi-4.0.3/ompi/attribute/attribute_predefined.c openmpi-4.1.4/ompi/attribute/attribute_predefined.c --- openmpi-4.0.3/ompi/attribute/attribute_predefined.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/attribute/attribute_predefined.c 2022-05-29 09:51:40.000000000 +0000 @@ -92,6 +92,7 @@ #include "ompi/errhandler/errcode.h" #include "ompi/communicator/communicator.h" #include "ompi/mca/pml/pml.h" +#include "opal/runtime/opal.h" /* * Private functions @@ -108,8 +109,12 @@ int ompi_attr_create_predefined(void) { int ret; + int rc; char *univ_size; - int usize; + unsigned int usize, *usizeptr; + long int strtol_result; + + usizeptr = &usize; /* Create all the keyvals */ @@ -165,14 +170,23 @@ /* If the universe size is set, then use it. Otherwise default * to the size of MPI_COMM_WORLD */ - univ_size = getenv("OMPI_UNIVERSE_SIZE"); - if (NULL == univ_size || (usize = strtol(univ_size, NULL, 0)) <= 0) { - ret = set_f(MPI_UNIVERSE_SIZE, ompi_comm_size(MPI_COMM_WORLD)); + opal_process_name_t wildcard = {OMPI_PROC_MY_NAME->jobid, OPAL_VPID_WILDCARD}; + OPAL_MODEX_RECV_VALUE_OPTIONAL(rc, OPAL_PMIX_UNIV_SIZE, &wildcard, &usizeptr, OPAL_UINT32); + if ( 0 == rc && usize != 0) { + ret = set_f(MPI_UNIVERSE_SIZE, usize); } else { - ret = set_f(MPI_UNIVERSE_SIZE, usize); + univ_size = getenv("OMPI_UNIVERSE_SIZE"); + if (NULL == univ_size || (strtol_result = strtol(univ_size, NULL, 0)) <= 0) { + ret = set_f(MPI_UNIVERSE_SIZE, ompi_comm_size(MPI_COMM_WORLD)); + } else { + /* PMIx only supports sizes up to unsigned int and so will + * environment variable approach */ + usize = (unsigned int) strtol_result; + ret = set_f(MPI_UNIVERSE_SIZE, usize); + } } if (OMPI_SUCCESS != ret) { - return ret; + return ret; } ret = set_f(MPI_APPNUM, ompi_process_info.app_num); diff -Nru openmpi-4.0.3/ompi/communicator/comm.c openmpi-4.1.4/ompi/communicator/comm.c --- openmpi-4.0.3/ompi/communicator/comm.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/communicator/comm.c 2022-05-29 09:51:40.000000000 +0000 @@ -20,7 +20,7 @@ * All rights reserved. * Copyright (c) 2014-2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2014-2015 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. * $COPYRIGHT$ @@ -400,11 +400,10 @@ /**********************************************************************/ /**********************************************************************/ /**********************************************************************/ -/* -** Counterpart to MPI_Comm_split. To be used within OMPI (e.g. MPI_Cart_sub). -*/ -int ompi_comm_split( ompi_communicator_t* comm, int color, int key, - ompi_communicator_t **newcomm, bool pass_on_topo ) + +int ompi_comm_split_with_info( ompi_communicator_t* comm, int color, int key, + opal_info_t *info, + ompi_communicator_t **newcomm, bool pass_on_topo ) { int myinfo[2]; int size, my_size; @@ -610,7 +609,11 @@ snprintf(newcomp->c_name, MPI_MAX_OBJECT_NAME, "MPI COMMUNICATOR %d SPLIT FROM %d", newcomp->c_contextid, comm->c_contextid ); - + /* Copy info if there is one */ + if (info) { + newcomp->super.s_info = OBJ_NEW(opal_info_t); + opal_info_dup(info, &(newcomp->super.s_info)); + } /* Activate the communicator and init coll-component */ rc = ompi_comm_activate (&newcomp, comm, NULL, NULL, NULL, false, mode); @@ -637,6 +640,15 @@ } +/* +** Counterpart to MPI_Comm_split. To be used within OMPI (e.g. MPI_Cart_sub). +*/ +int ompi_comm_split( ompi_communicator_t* comm, int color, int key, + ompi_communicator_t **newcomm, bool pass_on_topo ) +{ + return ompi_comm_split_with_info(comm, color, key, NULL, newcomm, pass_on_topo); +} + /**********************************************************************/ /**********************************************************************/ /**********************************************************************/ @@ -672,7 +684,7 @@ u16ptr = &locality; - OPAL_MODEX_RECV_VALUE(ret, OPAL_PMIX_LOCALITY, &proc_name, &u16ptr, OPAL_UINT16); + OPAL_MODEX_RECV_VALUE_OPTIONAL(ret, OPAL_PMIX_LOCALITY, &proc_name, &u16ptr, OPAL_UINT16); if (OPAL_SUCCESS != ret) { continue; } @@ -772,7 +784,7 @@ } for (int i = 0 ; i < size ; ++i) { - if (MPI_UNDEFINED == results[i * 2] || (i > 1 && results[i * 2 + 1] < results[i * 2 - 1])) { + if (MPI_UNDEFINED == results[i * 2] || (i >= 1 && results[i * 2 + 1] < results[i * 2 - 1])) { *need_split = true; break; } @@ -1648,7 +1660,7 @@ * to provide this information at startup */ uint16_t *u16ptr, u16; u16ptr = &u16; - OPAL_MODEX_RECV_VALUE(rc, OPAL_PMIX_LOCALITY, &rprocs[i]->super.proc_name, &u16ptr, OPAL_UINT16); + OPAL_MODEX_RECV_VALUE_OPTIONAL(rc, OPAL_PMIX_LOCALITY, &rprocs[i]->super.proc_name, &u16ptr, OPAL_UINT16); if (OPAL_SUCCESS == rc) { rprocs[i]->super.proc_flags = u16; } else { diff -Nru openmpi-4.0.3/ompi/communicator/comm_init.c openmpi-4.1.4/ompi/communicator/comm_init.c --- openmpi-4.0.3/ompi/communicator/comm_init.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/communicator/comm_init.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2017 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -39,6 +39,7 @@ #include "ompi/constants.h" #include "ompi/mca/pml/pml.h" #include "ompi/mca/coll/base/base.h" +#include "ompi/mca/coll/base/coll_tags.h" #include "ompi/mca/topo/base/base.h" #include "ompi/runtime/params.h" #include "ompi/communicator/communicator.h" @@ -378,6 +379,7 @@ comm->c_pml_comm = NULL; comm->c_topo = NULL; comm->c_coll = NULL; + comm->c_nbc_tag = MCA_COLL_BASE_TAG_NONBLOCKING_BASE; /* A keyhash will be created if/when an attribute is cached on this communicator */ diff -Nru openmpi-4.0.3/ompi/communicator/comm_request.c openmpi-4.1.4/ompi/communicator/comm_request.c --- openmpi-4.0.3/ompi/communicator/comm_request.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/communicator/comm_request.c 2022-05-29 09:51:40.000000000 +0000 @@ -100,6 +100,7 @@ { ompi_comm_request_t *request, *next; static int32_t progressing = 0; + int completed = 0; /* don't allow re-entry */ if (opal_atomic_swap_32 (&progressing, 1)) { @@ -121,6 +122,7 @@ if( REQUEST_COMPLETE(subreq) ) { ompi_request_free (&subreq); request_item->subreq_count--; + completed++; } else { item_complete = false; break; @@ -156,7 +158,7 @@ opal_mutex_unlock (&ompi_comm_request_mutex); progressing = 0; - return 1; + return completed; } void ompi_comm_request_start (ompi_comm_request_t *request) diff -Nru openmpi-4.0.3/ompi/communicator/communicator.h openmpi-4.1.4/ompi/communicator/communicator.h --- openmpi-4.0.3/ompi/communicator/communicator.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/communicator/communicator.h 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2017 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -187,6 +187,13 @@ /* Collectives module interface and data */ mca_coll_base_comm_coll_t *c_coll; + + /* Non-blocking collective tag. These tags might be shared between + * all non-blocking collective modules (to avoid message collision + * between them in the case where multiple outstanding non-blocking + * collective coexists using multiple backends). + */ + volatile int32_t c_nbc_tag; }; typedef struct ompi_communicator_t ompi_communicator_t; @@ -457,6 +464,21 @@ ompi_communicator_t** newcomm, bool pass_on_topo); /** + * split a communicator based on color and key. Parameters + * are identical to the MPI-counterpart of the function. + * Similar to \see ompi_comm_split with an additional info parameter. + * + * @param comm: input communicator + * @param color + * @param key + * + * @ + */ +OMPI_DECLSPEC int ompi_comm_split_with_info( ompi_communicator_t* comm, int color, int key, + opal_info_t *info, + ompi_communicator_t **newcomm, bool pass_on_topo ); + +/** * split a communicator based on type and key. Parameters * are identical to the MPI-counterpart of the function. * diff -Nru openmpi-4.0.3/ompi/contrib/libompitrace/allgather.c openmpi-4.1.4/ompi/contrib/libompitrace/allgather.c --- openmpi-4.0.3/ompi/contrib/libompitrace/allgather.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/contrib/libompitrace/allgather.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2007-2009 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2007-2022 Cisco Systems, Inc. All rights reserved * Copyright (c) 2013 Los Alamos National Security, LLC. All rights * reserved. * $COPYRIGHT$ @@ -38,8 +38,18 @@ int rank; PMPI_Comm_rank(MPI_COMM_WORLD, &rank); - PMPI_Type_get_name(sendtype, sendtypename, &len); - PMPI_Type_get_name(recvtype, recvtypename, &len); + if (sendtype != MPI_DATATYPE_NULL) { + PMPI_Type_get_name(sendtype, sendtypename, &len); + } else { + strncpy(sendtypename, "MPI_DATATYPE_NULL", + sizeof(sendtypename)); + } + if (recvtype != MPI_DATATYPE_NULL) { + PMPI_Type_get_name(recvtype, recvtypename, &len); + } else { + strncpy(recvtypename, "MPI_DATATYPE_NULL", + sizeof(recvtypename)); + } PMPI_Comm_get_name(comm, commname, &len); fprintf(stderr, "MPI_ALLGATHER[%d]: sendbuf %0" PRIxPTR " sendcount %d sendtype %s\n\trecvbuf %0" PRIxPTR " recvcount %d recvtype %s comm %s\n", diff -Nru openmpi-4.0.3/ompi/contrib/libompitrace/allgatherv.c openmpi-4.1.4/ompi/contrib/libompitrace/allgatherv.c --- openmpi-4.0.3/ompi/contrib/libompitrace/allgatherv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/contrib/libompitrace/allgatherv.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2009 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2009-2022 Cisco Systems, Inc. All rights reserved * Copyright (c) 2013 Los Alamos National Security, LLC. All rights * reserved. * $COPYRIGHT$ @@ -38,8 +38,18 @@ int rank; PMPI_Comm_rank(MPI_COMM_WORLD, &rank); - PMPI_Type_get_name(sendtype, sendtypename, &len); - PMPI_Type_get_name(recvtype, recvtypename, &len); + if (sendtype != MPI_DATATYPE_NULL) { + PMPI_Type_get_name(sendtype, sendtypename, &len); + } else { + strncpy(sendtypename, "MPI_DATATYPE_NULL", + sizeof(sendtypename)); + } + if (recvtype != MPI_DATATYPE_NULL) { + PMPI_Type_get_name(recvtype, recvtypename, &len); + } else { + strncpy(recvtypename, "MPI_DATATYPE_NULL", + sizeof(recvtypename)); + } PMPI_Comm_get_name(comm, commname, &len); fprintf(stderr, "MPI_ALLGATHERV[%d]: sendbuf %0" PRIxPTR " sendcount %d sendtype %s\n\trecvbuf %0" PRIxPTR " recvtype %s comm %s\n", diff -Nru openmpi-4.0.3/ompi/contrib/libompitrace/allreduce.c openmpi-4.1.4/ompi/contrib/libompitrace/allreduce.c --- openmpi-4.0.3/ompi/contrib/libompitrace/allreduce.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/contrib/libompitrace/allreduce.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2009 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2009-2022 Cisco Systems, Inc. All rights reserved * Copyright (c) 2013 Los Alamos National Security, LLC. All rights * reserved. * $COPYRIGHT$ @@ -36,7 +36,11 @@ int rank; PMPI_Comm_rank(MPI_COMM_WORLD, &rank); - PMPI_Type_get_name(datatype, typename, &len); + if (datatype != MPI_DATATYPE_NULL) { + PMPI_Type_get_name(datatype, typename, &len); + } else { + strncpy(typename, "MPI_DATATYPE_NULL", sizeof(typename)); + } PMPI_Comm_get_name(comm, commname, &len); fprintf(stderr, "MPI_ALLREDUCE[%d]: sendbuf %0" PRIxPTR " recvbuf %0" PRIxPTR " count %d datatype %s op %s comm %s\n", diff -Nru openmpi-4.0.3/ompi/contrib/libompitrace/bcast.c openmpi-4.1.4/ompi/contrib/libompitrace/bcast.c --- openmpi-4.0.3/ompi/contrib/libompitrace/bcast.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/contrib/libompitrace/bcast.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2009 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2009-2022 Cisco Systems, Inc. All rights reserved * $COPYRIGHT$ * * Additional copyrights may follow @@ -34,7 +34,11 @@ int rank; PMPI_Comm_rank(MPI_COMM_WORLD, &rank); - PMPI_Type_get_name(datatype, typename, &len); + if (datatype != MPI_DATATYPE_NULL) { + PMPI_Type_get_name(datatype, typename, &len); + } else { + strncpy(typename, "MPI_DATATYPE_NULL", sizeof(typename)); + } PMPI_Comm_get_name(comm, commname, &len); fprintf(stderr, "MPI_BCAST[%d]: buffer %0" PRIxPTR " count %d datatype %s root %d comm %s\n", diff -Nru openmpi-4.0.3/ompi/contrib/libompitrace/isend.c openmpi-4.1.4/ompi/contrib/libompitrace/isend.c --- openmpi-4.0.3/ompi/contrib/libompitrace/isend.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/contrib/libompitrace/isend.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006-2009 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2006-2022 Cisco Systems, Inc. All rights reserved * Copyright (c) 2013 Los Alamos National Security, LLC. All rights * reserved. * $COPYRIGHT$ @@ -36,7 +36,11 @@ int rank; PMPI_Comm_rank(MPI_COMM_WORLD, &rank); - PMPI_Type_get_name(type, typename, &len); + if (type != MPI_DATATYPE_NULL) { + PMPI_Type_get_name(type, typename, &len); + } else { + strncpy(typename, "MPI_DATATYPE_NULL", sizeof(typename)); + } PMPI_Comm_get_name(comm, commname, &len); fprintf(stderr, "MPI_ISEND[%d]: buf %0" PRIxPTR " count %d datatype %s dest %d tag %d comm %s\n", diff -Nru openmpi-4.0.3/ompi/contrib/libompitrace/Makefile.in openmpi-4.1.4/ompi/contrib/libompitrace/Makefile.in --- openmpi-4.0.3/ompi/contrib/libompitrace/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/contrib/libompitrace/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -649,6 +662,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1469,6 +1485,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1501,9 +1521,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1524,6 +1553,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1608,9 +1638,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1671,6 +1698,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1684,6 +1714,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/contrib/libompitrace/recv.c openmpi-4.1.4/ompi/contrib/libompitrace/recv.c --- openmpi-4.0.3/ompi/contrib/libompitrace/recv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/contrib/libompitrace/recv.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2009 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2009-2022 Cisco Systems, Inc. All rights reserved * $COPYRIGHT$ * * Additional copyrights may follow @@ -33,7 +33,11 @@ int rank; PMPI_Comm_rank(MPI_COMM_WORLD, &rank); - PMPI_Type_get_name(type, typename, &len); + if (type != MPI_DATATYPE_NULL) { + PMPI_Type_get_name(type, typename, &len); + } else { + strncpy(typename, "MPI_DATATYPE_NULL", sizeof(typename)); + } PMPI_Comm_get_name(comm, commname, &len); fprintf(stderr, "MPI_RECV[%d]: buf %0" PRIxPTR " count %d datatype %s source %d tag %d comm %s\n", diff -Nru openmpi-4.0.3/ompi/contrib/libompitrace/reduce.c openmpi-4.1.4/ompi/contrib/libompitrace/reduce.c --- openmpi-4.0.3/ompi/contrib/libompitrace/reduce.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/contrib/libompitrace/reduce.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006-2009 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2006-2022 Cisco Systems, Inc. All rights reserved * Copyright (c) 2013 Los Alamos National Security, LLC. All rights * reserved. * $COPYRIGHT$ @@ -37,7 +37,11 @@ int rank; PMPI_Comm_rank(MPI_COMM_WORLD, &rank); - PMPI_Type_get_name(datatype, typename, &len); + if (datatype != MPI_DATATYPE_NULL) { + PMPI_Type_get_name(datatype, typename, &len); + } else { + strncpy(typename, "MPI_DATATYPE_NULL", sizeof(typename)); + } PMPI_Comm_get_name(comm, commname, &len); fprintf(stderr,"MPI_REDUCE[%d]: sendbuf %0" PRIxPTR " recvbuf %0" PRIxPTR " count %d datatype %s op %s root %d comm %s\n", diff -Nru openmpi-4.0.3/ompi/contrib/libompitrace/send.c openmpi-4.1.4/ompi/contrib/libompitrace/send.c --- openmpi-4.0.3/ompi/contrib/libompitrace/send.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/contrib/libompitrace/send.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2009 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2009-2022 Cisco Systems, Inc. All rights reserved * Copyright (c) 2013 Los Alamos National Security, LLC. All rights * reserved. * $COPYRIGHT$ @@ -36,7 +36,11 @@ int rank; PMPI_Comm_rank(MPI_COMM_WORLD, &rank); - PMPI_Type_get_name(type, typename, &len); + if (type != MPI_DATATYPE_NULL) { + PMPI_Type_get_name(type, typename, &len); + } else { + strncpy(typename, "MPI_DATATYPE_NULL", sizeof(typename)); + } PMPI_Comm_get_name(comm, commname, &len); fprintf(stderr, "MPI_SEND[%d]: : buf %0" PRIxPTR " count %d datatype %s dest %d tag %d comm %s\n", diff -Nru openmpi-4.0.3/ompi/contrib/libompitrace/sendrecv.c openmpi-4.1.4/ompi/contrib/libompitrace/sendrecv.c --- openmpi-4.0.3/ompi/contrib/libompitrace/sendrecv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/contrib/libompitrace/sendrecv.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2009 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2009-2022 Cisco Systems, Inc. All rights reserved * Copyright (c) 2013 Los Alamos National Security, LLC. All rights * reserved. * $COPYRIGHT$ @@ -41,8 +41,18 @@ int size; PMPI_Comm_rank(MPI_COMM_WORLD, &rank); - PMPI_Type_get_name(sendtype, sendtypename, &len); - PMPI_Type_get_name(sendtype, recvtypename, &len); + if (sendtype != MPI_DATATYPE_NULL) { + PMPI_Type_get_name(sendtype, sendtypename, &len); + } else { + strncpy(sendtypename, "MPI_DATATYPE_NULL", + sizeof(sendtypename)); + } + if (recvtype != MPI_DATATYPE_NULL) { + PMPI_Type_get_name(recvtype, recvtypename, &len); + } else { + strncpy(recvtypename, "MPI_DATATYPE_NULL", + sizeof(recvtypename)); + } PMPI_Comm_get_name(comm, commname, &len); PMPI_Type_size(recvtype, &size); diff -Nru openmpi-4.0.3/ompi/datatype/Makefile.in openmpi-4.1.4/ompi/datatype/Makefile.in --- openmpi-4.0.3/ompi/datatype/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/datatype/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -123,6 +123,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -130,6 +132,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -153,6 +156,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -255,6 +259,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -262,6 +267,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -342,6 +348,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -364,9 +371,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -376,6 +387,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -396,6 +408,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -655,6 +668,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1475,6 +1491,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1507,9 +1527,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1530,6 +1559,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1614,9 +1644,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1677,6 +1704,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1690,6 +1720,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/datatype/ompi_datatype_external.c openmpi-4.1.4/ompi/datatype/ompi_datatype_external.c --- openmpi-4.0.3/ompi/datatype/ompi_datatype_external.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/datatype/ompi_datatype_external.c 2022-05-29 09:51:40.000000000 +0000 @@ -126,7 +126,7 @@ CONVERTOR_SEND_CONVERSION, &local_convertor ); - opal_convertor_get_unpacked_size( &local_convertor, &length ); + opal_convertor_get_packed_size( &local_convertor, &length ); *size = (MPI_Aint)length; OBJ_DESTRUCT( &local_convertor ); diff -Nru openmpi-4.0.3/ompi/datatype/ompi_datatype.h openmpi-4.1.4/ompi/datatype/ompi_datatype.h --- openmpi-4.0.3/ompi/datatype/ompi_datatype.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/datatype/ompi_datatype.h 2022-05-29 09:51:40.000000000 +0000 @@ -7,7 +7,7 @@ * Copyright (c) 2010-2017 Cisco Systems, Inc. All rights reserved * Copyright (c) 2013 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2015-2018 Research Organization for Information Science + * Copyright (c) 2015-2020 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * @@ -57,7 +57,7 @@ #define OMPI_DATATYPE_FLAG_DATA_FORTRAN 0xC000 #define OMPI_DATATYPE_FLAG_DATA_LANGUAGE 0xC000 -#define OMPI_DATATYPE_MAX_PREDEFINED 47 +#define OMPI_DATATYPE_MAX_PREDEFINED 49 #if OMPI_DATATYPE_MAX_PREDEFINED > OPAL_DATATYPE_MAX_SUPPORTED #error Need to increase the number of supported dataypes by OPAL (value OPAL_DATATYPE_MAX_SUPPORTED). @@ -407,5 +407,15 @@ } \ } +#define OMPI_DATATYPE_RELEASE_NO_NULLIFY(ddt) \ + { \ + if( !ompi_datatype_is_predefined((ddt)) ) { \ + OPAL_OUTPUT_VERBOSE((0, 100, "Datatype %p [%s] refcount %d in file %s:%d\n", \ + (void*)(ddt), (ddt)->name, (ddt)->super.super.obj_reference_count, \ + __func__, __LINE__)); \ + OBJ_RELEASE_NO_NULLIFY((ddt)); \ + } \ + } + END_C_DECLS #endif /* OMPI_DATATYPE_H_HAS_BEEN_INCLUDED */ diff -Nru openmpi-4.0.3/ompi/datatype/ompi_datatype_internal.h openmpi-4.1.4/ompi/datatype/ompi_datatype_internal.h --- openmpi-4.0.3/ompi/datatype/ompi_datatype_internal.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/datatype/ompi_datatype_internal.h 2022-05-29 09:51:40.000000000 +0000 @@ -99,8 +99,14 @@ */ #define OMPI_DATATYPE_MPI_COUNT 0x2E +/* + * Datatypes that have a different external32 length. + */ +#define OMPI_DATATYPE_MPI_LONG 0x2F +#define OMPI_DATATYPE_MPI_UNSIGNED_LONG 0x30 + /* This should __ALWAYS__ stay last */ -#define OMPI_DATATYPE_MPI_UNAVAILABLE 0x2F +#define OMPI_DATATYPE_MPI_UNAVAILABLE 0x31 #define OMPI_DATATYPE_MPI_MAX_PREDEFINED (OMPI_DATATYPE_MPI_UNAVAILABLE+1) @@ -167,20 +173,6 @@ #define OMPI_DATATYPE_MPI_UNSIGNED OMPI_DATATYPE_MPI_UINT64_T #endif -#if SIZEOF_LONG == 1 -#define OMPI_DATATYPE_MPI_LONG OMPI_DATATYPE_MPI_INT8_T -#define OMPI_DATATYPE_MPI_UNSIGNED_LONG OMPI_DATATYPE_MPI_UINT8_T -#elif SIZEOF_LONG == 2 -#define OMPI_DATATYPE_MPI_LONG OMPI_DATATYPE_MPI_INT16_T -#define OMPI_DATATYPE_MPI_UNSIGNED_LONG OMPI_DATATYPE_MPI_UINT16_T -#elif SIZEOF_LONG == 4 -#define OMPI_DATATYPE_MPI_LONG OMPI_DATATYPE_MPI_INT32_T -#define OMPI_DATATYPE_MPI_UNSIGNED_LONG OMPI_DATATYPE_MPI_UINT32_T -#elif SIZEOF_LONG == 8 -#define OMPI_DATATYPE_MPI_LONG OMPI_DATATYPE_MPI_INT64_T -#define OMPI_DATATYPE_MPI_UNSIGNED_LONG OMPI_DATATYPE_MPI_UINT64_T -#endif - #if SIZEOF_LONG_LONG == 1 #define OMPI_DATATYPE_MPI_LONG_LONG_INT OMPI_DATATYPE_MPI_INT8_T #define OMPI_DATATYPE_MPI_UNSIGNED_LONG_LONG OMPI_DATATYPE_MPI_UINT8_T @@ -548,16 +540,8 @@ #define OMPI_DATATYPE_INITIALIZER_UNSIGNED OPAL_DATATYPE_INITIALIZER_UINT8 #endif -#if SIZEOF_LONG == 4 -#define OMPI_DATATYPE_INITIALIZER_LONG OPAL_DATATYPE_INITIALIZER_INT4 -#define OMPI_DATATYPE_INITIALIZER_UNSIGNED_LONG OPAL_DATATYPE_INITIALIZER_UINT4 -#elif SIZEOF_LONG == 8 -#define OMPI_DATATYPE_INITIALIZER_LONG OPAL_DATATYPE_INITIALIZER_INT8 -#define OMPI_DATATYPE_INITIALIZER_UNSIGNED_LONG OPAL_DATATYPE_INITIALIZER_UINT8 -#elif SIZEOF_LONG == 16 -#define OMPI_DATATYPE_INITIALIZER_LONG OPAL_DATATYPE_INITIALIZER_INT16 -#define OMPI_DATATYPE_INITIALIZER_UNSIGNED_LONG OPAL_DATATYPE_INITIALIZER_UINT16 -#endif +#define OMPI_DATATYPE_INITIALIZER_LONG OPAL_DATATYPE_INITIALIZER_LONG +#define OMPI_DATATYPE_INITIALIZER_UNSIGNED_LONG OPAL_DATATYPE_INITIALIZER_UNSIGNED_LONG #if HAVE_LONG_LONG diff -Nru openmpi-4.0.3/ompi/datatype/ompi_datatype_module.c openmpi-4.1.4/ompi/datatype/ompi_datatype_module.c --- openmpi-4.0.3/ompi/datatype/ompi_datatype_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/datatype/ompi_datatype_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -360,6 +360,8 @@ [OMPI_DATATYPE_MPI_LB] = &ompi_mpi_lb.dt, [OMPI_DATATYPE_MPI_UB] = &ompi_mpi_ub.dt, + [OMPI_DATATYPE_MPI_LONG] = &ompi_mpi_long.dt, + [OMPI_DATATYPE_MPI_UNSIGNED_LONG] = &ompi_mpi_unsigned_long.dt, /* MPI 3.0 types */ [OMPI_DATATYPE_MPI_COUNT] = &ompi_mpi_count.dt, diff -Nru openmpi-4.0.3/ompi/debuggers/Makefile.in openmpi-4.1.4/ompi/debuggers/Makefile.in --- openmpi-4.0.3/ompi/debuggers/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/debuggers/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -866,6 +879,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1686,6 +1702,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1718,9 +1738,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1741,6 +1770,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1825,9 +1855,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1888,6 +1915,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1901,6 +1931,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/debuggers/ompi_common_dll.c openmpi-4.1.4/ompi/debuggers/ompi_common_dll.c --- openmpi-4.0.3/ompi/debuggers/ompi_common_dll.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/debuggers/ompi_common_dll.c 2022-05-29 09:51:40.000000000 +0000 @@ -67,9 +67,9 @@ { \ out_name = mqs_field_offset((qh_type), #field_name); \ if (out_name < 0) { \ - fprintf(stderr, "WARNING: Open MPI is unable to find " \ + fprintf(stderr, "WARNING: " OMPI_IDENT_STRING " is unable to find " \ "field " #field_name " in the " #struct_name \ - " type. This can happen can if Open MPI is built " \ + " type. This can happen if " OMPI_IDENT_STRING " is built " \ "without debugging information, or is stripped " \ "after building.\n"); \ } \ @@ -512,7 +512,7 @@ * did our best but here we're at our limit. Give up! */ *message = missing_in_action; - fprintf(stderr, "WARNING: Open MPI is unable to find debugging information about the \"%s\" type. This can happen if Open MPI was built without debugging information, or was stripped after building.\n", + fprintf(stderr, "WARNING: " OMPI_IDENT_STRING " is unable to find debugging information about the \"%s\" type. This can happen if " OMPI_IDENT_STRING " was built without debugging information, or was stripped after building.\n", missing_in_action); return err_missing_type; } @@ -634,7 +634,7 @@ int ompi_get_lib_version(char * buf, int size) { int ret; - ret = snprintf(buf, size-1, "Open MPI v%d.%d.%d%s%s%s%s%s%s%s%s%s", + ret = snprintf(buf, size-1, OMPI_IDENT_STRING " v%d.%d.%d%s%s%s%s%s%s%s%s%s", OMPI_MAJOR_VERSION, OMPI_MINOR_VERSION, OMPI_RELEASE_VERSION, (strlen(OMPI_GREEK_VERSION) > 0)?OMPI_GREEK_VERSION:"", (strlen(OPAL_PACKAGE_STRING) > 0)?", package: ":"", diff -Nru openmpi-4.0.3/ompi/debuggers/ompi_msgq_dll.c openmpi-4.1.4/ompi/debuggers/ompi_msgq_dll.c --- openmpi-4.0.3/ompi/debuggers/ompi_msgq_dll.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/debuggers/ompi_msgq_dll.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2007-2016 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2007-2022 Cisco Systems, Inc. All rights reserved * Copyright (c) 2004-2010 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. @@ -1157,8 +1157,18 @@ mqs_fetch_data( proc, ompi_datatype + i_info->ompi_datatype_t.offset.name, 64, data_name ); if( '\0' != data_name[0] ) { - snprintf( (char*)res->extra_text[1], 64, "Data: %d * %s", - (int)res->desired_length, data_name ); + // res->extra_text[x] is only 64 chars long -- same as + // data_name. If you try to snprintf it into + // res->extra_text with additional text, some compilers + // will warn that we might truncate the string (because it + // can see the static char array lengths). So just put + // data_name in res->extra_text[2] (vs. extra_text[1]), + // where it is guaranteed to fit. + data_name[4] = '\0'; + snprintf( (char*)res->extra_text[1], 64, "Data: %d instances of MPI datatype", + (int)res->desired_length); + snprintf( (char*)res->extra_text[2], 64, "%s", + data_name ); } /* And now compute the real length as specified by the user */ res->desired_length *= diff -Nru openmpi-4.0.3/ompi/errhandler/errhandler.c openmpi-4.1.4/ompi/errhandler/errhandler.c --- openmpi-4.0.3/ompi/errhandler/errhandler.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/errhandler/errhandler.c 2022-05-29 09:51:40.000000000 +0000 @@ -229,6 +229,7 @@ default_errhandler_id = errhandler_ref; errtrk->status = status; + opal_atomic_wmb(); errtrk->active = false; } diff -Nru openmpi-4.0.3/ompi/etc/Makefile.in openmpi-4.1.4/ompi/etc/Makefile.in --- openmpi-4.0.3/ompi/etc/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/etc/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,6 +116,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -123,6 +125,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -146,6 +149,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -248,6 +252,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -255,6 +260,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -335,6 +341,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -357,9 +364,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -369,6 +380,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -389,6 +401,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -562,6 +575,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1382,6 +1398,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1414,9 +1434,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1437,6 +1466,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1521,9 +1551,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1584,6 +1611,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1597,6 +1627,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/group/group.c openmpi-4.1.4/ompi/group/group.c --- openmpi-4.0.3/ompi/group/group.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/group/group.c 2022-05-29 09:51:40.000000000 +0000 @@ -102,7 +102,7 @@ /* loop over all ranks */ for (int proc = 0; proc < n_ranks; ++proc) { - struct ompi_proc_t *proc1_pointer, *proc2_pointer; + ompi_process_name_t proc1_name, proc2_name; int rank = ranks1[proc]; if ( MPI_PROC_NULL == rank) { @@ -110,12 +110,12 @@ continue; } - proc1_pointer = ompi_group_get_proc_ptr_raw (group1, rank); + proc1_name = ompi_group_get_proc_name(group1, rank); /* initialize to no "match" */ ranks2[proc] = MPI_UNDEFINED; for (int proc2 = 0; proc2 < group2->grp_proc_count; ++proc2) { - proc2_pointer = ompi_group_get_proc_ptr_raw (group2, proc2); - if ( proc1_pointer == proc2_pointer) { + proc2_name = ompi_group_get_proc_name(group2, proc2); + if(0 == opal_compare_proc(proc1_name, proc2_name)) { ranks2[proc] = proc2; break; } @@ -446,7 +446,7 @@ int proc1,proc2,k, result; int *ranks_included=NULL; ompi_group_t *group1_pointer, *group2_pointer; - ompi_proc_t *proc1_pointer, *proc2_pointer; + ompi_process_name_t proc1_name, proc2_name; group1_pointer=(ompi_group_t *)group1; group2_pointer=(ompi_group_t *)group2; @@ -462,14 +462,14 @@ /* determine the list of included processes for the incl-method */ k = 0; for (proc1 = 0; proc1 < group1_pointer->grp_proc_count; proc1++) { - proc1_pointer = ompi_group_peer_lookup (group1_pointer , proc1); + proc1_name = ompi_group_get_proc_name(group1_pointer , proc1); /* check to see if this proc is in group2 */ for (proc2 = 0; proc2 < group2_pointer->grp_proc_count; proc2++) { - proc2_pointer = ompi_group_peer_lookup (group2_pointer ,proc2); + proc2_name = ompi_group_get_proc_name(group2_pointer ,proc2); - if( proc1_pointer == proc2_pointer ) { + if(0 == opal_compare_proc(proc1_name, proc2_name)) { ranks_included[k] = proc1; k++; break; @@ -494,7 +494,7 @@ int proc1, proc2, match; bool similar, identical; ompi_group_t *group1_pointer, *group2_pointer; - ompi_proc_t *proc1_pointer, *proc2_pointer; + opal_process_name_t proc1_name, proc2_name; /* check for same groups */ if( group1 == group2 ) { @@ -524,12 +524,12 @@ similar=true; identical=true; for(proc1=0 ; proc1 < group1_pointer->grp_proc_count ; proc1++ ) { - proc1_pointer= ompi_group_peer_lookup(group1_pointer,proc1); + proc1_name=ompi_group_get_proc_name(group1_pointer,proc1); /* loop over group2 processes to find "match" */ match=-1; for(proc2=0 ; proc2 < group2_pointer->grp_proc_count ; proc2++ ) { - proc2_pointer=ompi_group_peer_lookup(group2_pointer,proc2); - if( proc1_pointer == proc2_pointer ) { + proc2_name=ompi_group_get_proc_name(group2_pointer,proc2); + if(0 == opal_compare_proc(proc1_name, proc2_name)) { if(proc1 != proc2 ) { identical=false; } @@ -578,3 +578,31 @@ return false; } + +/** + * Count the number of processes on this group that share the same node as + * this process. + */ +int ompi_group_count_local_peers (ompi_group_t *group) +{ + int local_peers = 0; + for (int i = 0 ; i < group->grp_proc_count ; ++i) { + ompi_proc_t *proc = NULL; +#if OMPI_GROUP_SPARSE + proc = ompi_group_peer_lookup (group, i); +#else + proc = ompi_group_get_proc_ptr_raw (group, i); + if (ompi_proc_is_sentinel (proc)) { + /* the proc must be stored in the group or cached in the proc + * hash table if the process resides in the local node + * (see ompi_proc_complete_init) */ + continue; + } +#endif + if (OPAL_PROC_ON_LOCAL_NODE(proc->super.proc_flags)) { + local_peers++; + } + } + + return local_peers; +} diff -Nru openmpi-4.0.3/ompi/group/group.h openmpi-4.1.4/ompi/group/group.h --- openmpi-4.0.3/ompi/group/group.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/group/group.h 2022-05-29 09:51:40.000000000 +0000 @@ -419,9 +419,17 @@ return ompi_group_get_proc_ptr (group, peer_id, false); } +/** + * Return true if all processes in the group are not on the local node. + */ bool ompi_group_have_remote_peers (ompi_group_t *group); /** + * Count the number of processes on the local node. + */ +int ompi_group_count_local_peers (ompi_group_t *group); + +/** * Function to print the group info */ int ompi_group_dump (ompi_group_t* group); diff -Nru openmpi-4.0.3/ompi/group/group_plist.c openmpi-4.1.4/ompi/group/group_plist.c --- openmpi-4.0.3/ompi/group/group_plist.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/group/group_plist.c 2022-05-29 09:51:40.000000000 +0000 @@ -35,18 +35,18 @@ static int ompi_group_dense_overlap (ompi_group_t *group1, ompi_group_t *group2, opal_bitmap_t *bitmap) { - ompi_proc_t *proc1_pointer, *proc2_pointer; + ompi_process_name_t proc1_name, proc2_name; int rc, overlap_count; overlap_count = 0; for (int proc1 = 0 ; proc1 < group1->grp_proc_count ; ++proc1) { - proc1_pointer = ompi_group_get_proc_ptr_raw (group1, proc1); + proc1_name = ompi_group_get_proc_name(group1, proc1); /* check to see if this proc is in group2 */ for (int proc2 = 0 ; proc2 < group2->grp_proc_count ; ++proc2) { - proc2_pointer = ompi_group_get_proc_ptr_raw (group2, proc2); - if( proc1_pointer == proc2_pointer ) { + proc2_name = ompi_group_get_proc_name(group2, proc2); + if(0 == opal_compare_proc(proc1_name, proc2_name)) { rc = opal_bitmap_set_bit (bitmap, proc2); if (OPAL_SUCCESS != rc) { return rc; diff -Nru openmpi-4.0.3/ompi/include/Makefile.in openmpi-4.1.4/ompi/include/Makefile.in --- openmpi-4.0.3/ompi/include/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/include/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -167,6 +167,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -174,6 +176,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -197,6 +200,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -299,6 +303,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -306,6 +311,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -386,6 +392,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -408,9 +415,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -420,6 +431,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -440,6 +452,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -677,6 +690,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1497,6 +1513,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1529,9 +1549,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1552,6 +1581,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1636,9 +1666,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1699,6 +1726,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1712,6 +1742,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/include/mpif-values.pl openmpi-4.1.4/ompi/include/mpif-values.pl --- openmpi-4.0.3/ompi/include/mpif-values.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/include/mpif-values.pl 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ #!/usr/bin/env perl # # Copyright (c) 2011-2014 Cisco Systems, Inc. All rights reserved. -# Copyright (c) 2016-2019 Research Organization for Information Science +# Copyright (c) 2016-2020 Research Organization for Information Science # and Technology (RIST). All rights reserved. # Copyright (c) 2016 FUJITSU LIMITED. All rights reserved. # $COPYRIGHT$ @@ -489,8 +489,8 @@ * Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. * Copyright (c) 2009-2012 Los Alamos National Security, LLC. * All rights reserved. - * Copyright (c) 2016 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2016-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -498,8 +498,8 @@ * $HEADER$ */ -#ifndef USE_MPI_F08_CONSTANTS_H -#define USE_MPI_F08_CONSTANTS_H +#ifndef USE_MPI_F08_BASE_CONSTANTS_H +#define USE_MPI_F08_BASE_CONSTANTS_H '; @@ -522,9 +522,9 @@ $output .= "#define OMPI_$key $io_handles->{$key}\n"; } $output .= "\n"; -$output .= "#endif /* USE_MPI_F08_CONSTANTS_H */\n"; +$output .= "#endif /* USE_MPI_F08_BASE_CONSTANTS_H */\n"; -write_file("$topdir/ompi/mpi/fortran/use-mpi-f08/constants.h", $output); +write_file("$topdir/ompi/mpi/fortran/use-mpi-f08/base/constants.h", $output); $output = '! WARNING! THIS IS A GENERATED FILE!! ! ANY EDITS YOU PUT HERE WILL BE LOST! diff -Nru openmpi-4.0.3/ompi/include/mpi.h.in openmpi-4.1.4/ompi/include/mpi.h.in --- openmpi-4.0.3/ompi/include/mpi.h.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/include/mpi.h.in 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2007-2019 Cisco Systems, Inc. All rights reserved + * Copyright (c) 2007-2020 Cisco Systems, Inc. All rights reserved * Copyright (c) 2008-2009 Sun Microsystems, Inc. All rights reserved. * Copyright (c) 2009-2012 Oak Rigde National Laboratory. All rights reserved. * Copyright (c) 2011 Sandia National Laboratories. All rights reserved. @@ -290,11 +290,12 @@ * just emit a compiletime warning (via the deprecation function * attribute) that they're using an MPI1 removed function. * - * Otherwise, we'd like to issue a fatal error directing the user - * that they've used an MPI1 removed function. If the user's - * compiler supports C11 _Static_assert feature, we #define - * the MPI routines to instead be a call to _Static_assert - * with an appropreate message suggesting the new MPI3 equivalent. + * Otherwise, we'd like to issue a fatal error directing the + * user that they've used an MPI1 removed function. If the + * user's compiler supports C11 _Static_assert() or + * C++11 static_assert(), we #define the MPI routines to + * instead be a call to an assert with an appropriate message + * suggesting the new MPI3 equivalent. * * Otherwise, if the user's compiler supports the error function * attribute, define the MPI routines with that error attribute. @@ -312,13 +313,28 @@ # define OMPI_OMIT_MPI1_COMPAT_DECLS 0 # define OMPI_REMOVED_USE_STATIC_ASSERT 0 # define __mpi_interface_removed__(func, newfunc) __mpi_interface_deprecated__(#func " was removed in MPI-3.0. Use " #newfunc " instead. continuing...") -# elif (__STDC_VERSION__ >= 201112L) +# elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) + /* This is the C11 (or later) case, which uses + _Static_assert() */ # define OMPI_OMIT_MPI1_COMPAT_DECLS 1 # define OMPI_REMOVED_USE_STATIC_ASSERT 1 -// This macro definition may show up in compiler output. So we both -// outdent it back to column 0 and give it a user-friendly name to -// help users grok what we are trying to tell them here. -#define THIS_SYMBOL_WAS_REMOVED_IN_MPI30(func, newfunc) _Static_assert(0, #func " was removed in MPI-3.0. Use " #newfunc " instead.") +/* This macro definition may show up in compiler output. So we both + * outdent it back to column 0 and give it a user-friendly name to + * help users grok what we are trying to tell them here. + */ +#define THIS_SYMBOL_WAS_REMOVED_IN_MPI30(symbol, new_symbol) 0; _Static_assert(0, #symbol " was removed in MPI-3.0. Use " #new_symbol " instead.") +#define THIS_FUNCTION_WAS_REMOVED_IN_MPI30(func, newfunc) _Static_assert(0, #func " was removed in MPI-3.0. Use " #newfunc " instead.") +# elif defined(__cplusplus) && (__cplusplus >= 201103L) + /* This is the C++11 (or later) case, which uses + static_assert() */ +# define OMPI_OMIT_MPI1_COMPAT_DECLS 1 +# define OMPI_REMOVED_USE_STATIC_ASSERT 1 +/* This macro definition may show up in compiler output. So we both + * outdent it back to column 0 and give it a user-friendly name to + * help users grok what we are trying to tell them here. + */ +#define THIS_SYMBOL_WAS_REMOVED_IN_MPI30(symbol, new_symbol) 0; static_assert(0, #symbol " was removed in MPI-3.0. Use " #new_symbol " instead.") +#define THIS_FUNCTION_WAS_REMOVED_IN_MPI30(func, newfunc) static_assert(0, #func " was removed in MPI-3.0. Use " #newfunc " instead.") # elif OPAL_HAVE_ATTRIBUTE_ERROR # define OMPI_OMIT_MPI1_COMPAT_DECLS 0 # define OMPI_REMOVED_USE_STATIC_ASSERT 0 @@ -344,7 +360,10 @@ #endif #if !defined(THIS_SYMBOL_WAS_REMOVED_IN_MPI30) -# define THIS_SYMBOL_WAS_REMOVED_IN_MPI30(func, newfunc) +# define THIS_SYMBOL_WAS_REMOVED_IN_MPI30(symbol, newsymbol) +#endif +#if !defined(THIS_FUNCTION_WAS_REMOVED_IN_MPI30) +# define THIS_FUNCTION_WAS_REMOVED_IN_MPI30(func, newfunc) #endif #if !defined(OMPI_REMOVED_USE_STATIC_ASSERT) @@ -2838,16 +2857,16 @@ #endif /* !OMPI_OMIT_MPI1_COMPAT_DECLS */ #if OMPI_REMOVED_USE_STATIC_ASSERT -#define MPI_Address(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Address, MPI_Get_address) -#define MPI_Errhandler_create(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Errhandler_create, MPI_Comm_create_errhandler) -#define MPI_Errhandler_get(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Errhandler_get, MPI_Comm_get_errhandler) -#define MPI_Errhandler_set(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Errhandler_set, MPI_Comm_set_errhandler) -#define MPI_Type_extent(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Type_extent, MPI_Type_get_extent) -#define MPI_Type_hindexed(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Type_hindexed, MPI_Type_create_hindexed) -#define MPI_Type_hvector(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Type_hvector, MPI_Type_create_hvector) -#define MPI_Type_lb(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Type_lb, MPI_Type_get_extent) -#define MPI_Type_struct(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Type_struct, MPI_Type_create_struct) -#define MPI_Type_ub(...) THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Type_ub, MPI_Type_get_extent) +#define MPI_Address(...) THIS_FUNCTION_WAS_REMOVED_IN_MPI30(MPI_Address, MPI_Get_address) +#define MPI_Errhandler_create(...) THIS_FUNCTION_WAS_REMOVED_IN_MPI30(MPI_Errhandler_create, MPI_Comm_create_errhandler) +#define MPI_Errhandler_get(...) THIS_FUNCTION_WAS_REMOVED_IN_MPI30(MPI_Errhandler_get, MPI_Comm_get_errhandler) +#define MPI_Errhandler_set(...) THIS_FUNCTION_WAS_REMOVED_IN_MPI30(MPI_Errhandler_set, MPI_Comm_set_errhandler) +#define MPI_Type_extent(...) THIS_FUNCTION_WAS_REMOVED_IN_MPI30(MPI_Type_extent, MPI_Type_get_extent) +#define MPI_Type_hindexed(...) THIS_FUNCTION_WAS_REMOVED_IN_MPI30(MPI_Type_hindexed, MPI_Type_create_hindexed) +#define MPI_Type_hvector(...) THIS_FUNCTION_WAS_REMOVED_IN_MPI30(MPI_Type_hvector, MPI_Type_create_hvector) +#define MPI_Type_lb(...) THIS_FUNCTION_WAS_REMOVED_IN_MPI30(MPI_Type_lb, MPI_Type_get_extent) +#define MPI_Type_struct(...) THIS_FUNCTION_WAS_REMOVED_IN_MPI30(MPI_Type_struct, MPI_Type_create_struct) +#define MPI_Type_ub(...) THIS_FUNCTION_WAS_REMOVED_IN_MPI30(MPI_Type_ub, MPI_Type_get_extent) #endif #if defined(c_plusplus) || defined(__cplusplus) diff -Nru openmpi-4.0.3/ompi/interlib/interlib.c openmpi-4.1.4/ompi/interlib/interlib.c --- openmpi-4.0.3/ompi/interlib/interlib.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/interlib/interlib.c 2022-05-29 09:51:40.000000000 +0000 @@ -52,6 +52,7 @@ trk->status = status; interlibhandler_id = errhandler_ref; + opal_atomic_wmb(); trk->active = false; } static void model_callback(int status, diff -Nru openmpi-4.0.3/ompi/Makefile.in openmpi-4.1.4/ompi/Makefile.in --- openmpi-4.0.3/ompi/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -628,6 +628,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -635,6 +637,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -658,6 +661,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -760,6 +764,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -767,6 +772,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -847,6 +853,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -869,9 +876,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -881,6 +892,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -901,6 +913,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -1319,6 +1332,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -2139,6 +2155,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -2171,9 +2191,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -2194,6 +2223,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -2278,9 +2308,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -2341,6 +2368,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -2354,6 +2384,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/bml/Makefile.in openmpi-4.1.4/ompi/mca/bml/Makefile.in --- openmpi-4.0.3/ompi/mca/bml/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/bml/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -137,6 +137,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -144,6 +146,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -167,6 +170,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -269,6 +273,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -276,6 +281,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -356,6 +362,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -378,9 +385,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -390,6 +401,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -410,6 +422,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -667,6 +680,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1487,6 +1503,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1519,9 +1539,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1542,6 +1571,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1626,9 +1656,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1689,6 +1716,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1702,6 +1732,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/bml/r2/Makefile.in openmpi-4.1.4/ompi/mca/bml/r2/Makefile.in --- openmpi-4.0.3/ompi/mca/bml/r2/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/bml/r2/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -117,6 +117,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -124,6 +126,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -147,6 +150,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -249,6 +253,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -256,6 +261,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -336,6 +342,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -358,9 +365,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -370,6 +381,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -390,6 +402,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -657,6 +670,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1477,6 +1493,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1509,9 +1529,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1532,6 +1561,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1616,9 +1646,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1679,6 +1706,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1692,6 +1722,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_algorithms.h openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_algorithms.h --- openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_algorithms.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_algorithms.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2014-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi/mca/coll/coll.h" +#include "ompi/mca/coll/base/coll_base_topo.h" +#include "ompi/mca/coll/base/coll_base_functions.h" +#include + +typedef int (*ompi_mca_coll_adapt_ibcast_function_t)(IBCAST_ARGS); +typedef int (*ompi_mca_coll_adapt_ireduce_function_t)(IREDUCE_ARGS); + +typedef struct ompi_coll_adapt_algorithm_index_s { + int algorithm_index; + union { + ompi_mca_coll_adapt_ibcast_function_t ibcast_fn_ptr; + ompi_mca_coll_adapt_ireduce_function_t ireduce_fn_ptr; + }; +} ompi_coll_adapt_algorithm_index_t; + +/* Bcast */ +int ompi_coll_adapt_ibcast_register(void); +int ompi_coll_adapt_ibcast_fini(void); +int ompi_coll_adapt_bcast(BCAST_ARGS); +int ompi_coll_adapt_ibcast(IBCAST_ARGS); + +/* Reduce */ +int ompi_coll_adapt_ireduce_register(void); +int ompi_coll_adapt_ireduce_fini(void); +int ompi_coll_adapt_reduce(REDUCE_ARGS); +int ompi_coll_adapt_ireduce(IREDUCE_ARGS); diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_bcast.c openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_bcast.c --- openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_bcast.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_bcast.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2014-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "coll_adapt.h" +#include "coll_adapt_algorithms.h" + +int ompi_coll_adapt_bcast(void *buff, int count, struct ompi_datatype_t *datatype, int root, + struct ompi_communicator_t *comm, mca_coll_base_module_t * module) +{ + ompi_request_t *request = NULL; + int err = ompi_coll_adapt_ibcast(buff, count, datatype, root, comm, &request, module); + if( MPI_SUCCESS != err ) { + if( NULL == request ) + return err; + } + ompi_request_wait(&request, MPI_STATUS_IGNORE); + return err; +} diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_component.c openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_component.c --- openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_component.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,155 @@ +/* + * Copyright (c) 2014-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "opal/util/show_help.h" +#include "ompi/constants.h" +#include "ompi/mca/coll/coll.h" +#include "coll_adapt.h" +#include "coll_adapt_algorithms.h" + +/* + * Public string showing the coll ompi_adapt component version number + */ +const char *mca_coll_adapt_component_version_string = + "Open MPI ADAPT collective MCA component version " OMPI_VERSION; + +/* + * Local functions + */ +static int adapt_open(void); +static int adapt_close(void); +static int adapt_register(void); + +/* + * Instantiate the public struct with all of our public information + * and pointers to our public functions in it + */ + +mca_coll_adapt_component_t mca_coll_adapt_component = { + /* First, fill in the super */ + { + /* First, the mca_component_t struct containing meta + information about the component itself */ + .collm_version = { + MCA_COLL_BASE_VERSION_2_0_0, + + /* Component name and version */ + .mca_component_name = "adapt", + MCA_BASE_MAKE_VERSION(component, OMPI_MAJOR_VERSION, OMPI_MINOR_VERSION, + OMPI_RELEASE_VERSION), + + /* Component functions */ + .mca_open_component = adapt_open, + .mca_close_component = adapt_close, + .mca_register_component_params = adapt_register, + }, + .collm_data = { + /* The component is not checkpoint ready */ + MCA_BASE_METADATA_PARAM_NONE + }, + + /* Initialization / querying functions */ + .collm_init_query = ompi_coll_adapt_init_query, + .collm_comm_query = ompi_coll_adapt_comm_query, + }, + + /* adapt-component specific information */ + + 0, /* (default) priority */ + + 0, /* (default) output stream */ + 0, /* (default) verbose level */ + + /* default values for non-MCA parameters */ + /* Not specifying values here gives us all 0's */ +}; + +/* Open the component */ +static int adapt_open(void) +{ + mca_coll_adapt_component_t *cs = &mca_coll_adapt_component; + + if (cs->adapt_verbose > 0) { + cs->adapt_output = opal_output_open(NULL); + opal_output_set_verbosity(cs->adapt_output, cs->adapt_verbose); + } + + return OMPI_SUCCESS; +} + + +/* Shut down the component */ +static int adapt_close(void) +{ + ompi_coll_adapt_ibcast_fini(); + ompi_coll_adapt_ireduce_fini(); + + return OMPI_SUCCESS; +} + +static int adapt_verify_mca_variables(void) +{ + return OMPI_SUCCESS; +} + +/* + * Register MCA params + */ +static int adapt_register(void) +{ + mca_base_component_t *c = &mca_coll_adapt_component.super.collm_version; + mca_coll_adapt_component_t *cs = &mca_coll_adapt_component; + + /* If we want to be selected (i.e., all procs on one node), then + we should have a high priority */ + cs->adapt_priority = 0; + (void) mca_base_component_var_register(c, "priority", "Priority of the adapt coll component", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->adapt_priority); + + cs->adapt_verbose = ompi_coll_base_framework.framework_verbose; + (void) mca_base_component_var_register(c, "verbose", + "Verbose level (default set to the collective framework verbosity)", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->adapt_verbose); + + cs->adapt_context_free_list_min = 64; + (void) mca_base_component_var_register(c, "context_free_list_min", + "Minimum number of segments in context free list", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, + &cs->adapt_context_free_list_min); + + cs->adapt_context_free_list_max = 1024; + (void) mca_base_component_var_register(c, "context_free_list_max", + "Maximum number of segments in context free list", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, + &cs->adapt_context_free_list_max); + + cs->adapt_context_free_list_inc = 32; + (void) mca_base_component_var_register(c, "context_free_list_inc", + "Increasement number of segments in context free list", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, + &cs->adapt_context_free_list_inc); + ompi_coll_adapt_ibcast_register(); + ompi_coll_adapt_ireduce_register(); + + return adapt_verify_mca_variables(); +} diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_context.c openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_context.c --- openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_context.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_context.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2014-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi/mca/coll/coll.h" +#include "coll_adapt_context.h" + + +static void adapt_constant_reduce_context_construct(ompi_coll_adapt_constant_reduce_context_t *context) +{ + OBJ_CONSTRUCT(&context->recv_list, opal_list_t); + OBJ_CONSTRUCT(&context->mutex_recv_list, opal_mutex_t); + OBJ_CONSTRUCT(&context->inbuf_list, opal_free_list_t); +} + +static void adapt_constant_reduce_context_destruct(ompi_coll_adapt_constant_reduce_context_t *context) +{ + OBJ_DESTRUCT(&context->mutex_recv_list); + OBJ_DESTRUCT(&context->recv_list); + OBJ_DESTRUCT(&context->inbuf_list); +} + + +OBJ_CLASS_INSTANCE(ompi_coll_adapt_bcast_context_t, opal_free_list_item_t, + NULL, NULL); + +OBJ_CLASS_INSTANCE(ompi_coll_adapt_constant_bcast_context_t, opal_object_t, + NULL, NULL); + +OBJ_CLASS_INSTANCE(ompi_coll_adapt_reduce_context_t, opal_free_list_item_t, + NULL, NULL); + +OBJ_CLASS_INSTANCE(ompi_coll_adapt_constant_reduce_context_t, opal_object_t, + &adapt_constant_reduce_context_construct, + &adapt_constant_reduce_context_destruct); diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_context.h openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_context.h --- openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_context.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_context.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2014-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi/mca/coll/coll.h" +#include "opal/class/opal_free_list.h" +#include "opal/class/opal_list.h" +#include "ompi/datatype/ompi_datatype.h" +#include "ompi/communicator/communicator.h" +#include "ompi/op/op.h" +#include "ompi/mca/coll/base/coll_base_topo.h" +#include "coll_adapt_inbuf.h" + +/* Bcast constant context in bcast context */ +struct ompi_coll_adapt_constant_bcast_context_s { + opal_object_t super; + int root; + size_t count; + size_t seg_count; + ompi_datatype_t *datatype; + ompi_communicator_t *comm; + int real_seg_size; + int num_segs; + ompi_request_t *request; + opal_mutex_t *mutex; + int *recv_array; + int *send_array; + /* Length of the fragment array, which is the number of recevied segments */ + int num_recv_segs; + /* Number of segments that is finishing recving */ + int num_recv_fini; + /* Store the number of sent segments */ + int num_sent_segs; + ompi_coll_tree_t *tree; + int ibcast_tag; +}; + +typedef struct ompi_coll_adapt_constant_bcast_context_s ompi_coll_adapt_constant_bcast_context_t; + +OBJ_CLASS_DECLARATION(ompi_coll_adapt_constant_bcast_context_t); + + +/* Bcast context of each segment*/ +typedef struct ompi_coll_adapt_bcast_context_s ompi_coll_adapt_bcast_context_t; + +typedef int (*ompi_coll_adapt_bcast_cuda_callback_fn_t) (ompi_coll_adapt_bcast_context_t * context); + +struct ompi_coll_adapt_bcast_context_s { + opal_free_list_item_t super; + char *buff; + int frag_id; + int child_id; + int peer; + ompi_coll_adapt_constant_bcast_context_t *con; +}; + +OBJ_CLASS_DECLARATION(ompi_coll_adapt_bcast_context_t); + +/* Reduce constant context in reduce context */ +struct ompi_coll_adapt_constant_reduce_context_s { + opal_object_t super; + size_t count; + size_t seg_count; + ompi_datatype_t *datatype; + ompi_communicator_t *comm; + size_t real_seg_size; + /* Increment of each segment */ + int segment_increment; + int num_segs; + int rank; + int root; + /* The distance between the address of inbuf->buff and the address of inbuf */ + int distance; + int ireduce_tag; + /* How many sends are posted but not finished */ + int32_t ongoing_send; + /* Length of the fragment array, which is the number of recevied segments */ + int32_t num_recv_segs; + /* Number of sent segments */ + int32_t num_sent_segs; + /* Next seg need to be received for every children */ + int32_t *next_recv_segs; + /* Mutex to protect each segment when do the reduce op */ + opal_mutex_t *mutex_op_list; + /* Reduce operation */ + ompi_op_t *op; + ompi_coll_tree_t *tree; + /* Accumulate buff */ + char **accumbuf; + ptrdiff_t lower_bound; + char *sbuf; + char *rbuf; + opal_free_list_t inbuf_list; + /* Mutex to protect recv_list */ + opal_mutex_t mutex_recv_list; + /* A list to store the segments which are received and not yet be sent */ + opal_list_t recv_list; + ompi_request_t *request; +}; + +typedef struct ompi_coll_adapt_constant_reduce_context_s ompi_coll_adapt_constant_reduce_context_t; + +OBJ_CLASS_DECLARATION(ompi_coll_adapt_constant_reduce_context_t); + +/* Reduce context of each segment */ +typedef struct ompi_coll_adapt_reduce_context_s ompi_coll_adapt_reduce_context_t; + +typedef int (*ompi_coll_adapt_reduce_cuda_callback_fn_t) (ompi_coll_adapt_reduce_context_t * context); + +struct ompi_coll_adapt_reduce_context_s { + opal_free_list_item_t super; + char *buff; + int seg_index; + int child_id; + int peer; + ompi_coll_adapt_constant_reduce_context_t *con; + /* store the incoming segment */ + ompi_coll_adapt_inbuf_t *inbuf; +}; + +OBJ_CLASS_DECLARATION(ompi_coll_adapt_reduce_context_t); diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt.h openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt.h --- openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,145 @@ +/* + * Copyright (c) 2014-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + + +#ifndef MCA_COLL_ADAPT_EXPORT_H +#define MCA_COLL_ADAPT_EXPORT_H + +#include "ompi_config.h" + +#include "mpi.h" +#include "opal/mca/mca.h" +#include "opal/datatype/opal_convertor.h" +#include "ompi/mca/coll/coll.h" +#include "ompi/mca/coll/base/coll_base_topo.h" + +BEGIN_C_DECLS + +typedef struct mca_coll_adapt_module_t mca_coll_adapt_module_t; + +typedef enum { + OMPI_COLL_ADAPT_ALGORITHM_TUNED = 0, + OMPI_COLL_ADAPT_ALGORITHM_BINOMIAL, + OMPI_COLL_ADAPT_ALGORITHM_IN_ORDER_BINOMIAL, + OMPI_COLL_ADAPT_ALGORITHM_BINARY, + OMPI_COLL_ADAPT_ALGORITHM_PIPELINE, + OMPI_COLL_ADAPT_ALGORITHM_CHAIN, + OMPI_COLL_ADAPT_ALGORITHM_LINEAR, + OMPI_COLL_ADAPT_ALGORITHM_COUNT /* number of algorithms, keep last! */ +} ompi_coll_adapt_algorithm_t; + +/* + * Structure to hold the adapt coll component. First it holds the + * base coll component, and then holds a bunch of + * adapt-coll-component-specific stuff (e.g., current MCA param + * values). + */ +typedef struct mca_coll_adapt_component_t { + /* Base coll component */ + mca_coll_base_component_2_0_0_t super; + + /* MCA parameter: Priority of this component */ + int adapt_priority; + + /* MCA parameter: Output stream and verbose level */ + int adapt_output; + int adapt_verbose; + + /* MCA parameter: Maximum number of segment in context free list */ + int adapt_context_free_list_max; + + /* MCA parameter: Minimum number of segment in context free list */ + int adapt_context_free_list_min; + + /* MCA parameter: Increasement number of segment in context free list */ + int adapt_context_free_list_inc; + + /* Bcast MCA parameter */ + int adapt_ibcast_algorithm; + size_t adapt_ibcast_segment_size; + int adapt_ibcast_max_send_requests; + int adapt_ibcast_max_recv_requests; + bool adapt_ibcast_synchronous_send; + /* Bcast free list */ + opal_free_list_t *adapt_ibcast_context_free_list; + + /* Reduce MCA parameter */ + int adapt_ireduce_algorithm; + size_t adapt_ireduce_segment_size; + int adapt_ireduce_max_send_requests; + int adapt_ireduce_max_recv_requests; + int adapt_inbuf_free_list_min; + int adapt_inbuf_free_list_max; + int adapt_inbuf_free_list_inc; + bool adapt_ireduce_synchronous_send; + + /* Reduce free list */ + opal_free_list_t *adapt_ireduce_context_free_list; + +} mca_coll_adapt_component_t; + +/* + * Structure used to store what is necessary for the collective operations + * routines in case of fallback. + */ +typedef struct mca_coll_adapt_collective_fallback_s { + union { + mca_coll_base_module_reduce_fn_t reduce; + mca_coll_base_module_ireduce_fn_t ireduce; + } previous_routine; + mca_coll_base_module_t *previous_module; +} mca_coll_adapt_collective_fallback_t; + + +typedef enum mca_coll_adapt_colltype { + ADAPT_REDUCE = 0, + ADAPT_IREDUCE = 1, + ADAPT_COLLCOUNT +} mca_coll_adapt_colltype_t; + +/* + * Some defines to stick to the naming used in the other components in terms of + * fallback routines + */ +#define previous_reduce previous_routines[ADAPT_REDUCE].previous_routine.reduce +#define previous_ireduce previous_routines[ADAPT_IREDUCE].previous_routine.ireduce + +#define previous_reduce_module previous_routines[ADAPT_REDUCE].previous_module +#define previous_ireduce_module previous_routines[ADAPT_IREDUCE].previous_module + + +/* Coll adapt module per communicator*/ +struct mca_coll_adapt_module_t { + /* Base module */ + mca_coll_base_module_t super; + + /* To be able to fallback when the cases are not supported */ + struct mca_coll_adapt_collective_fallback_s previous_routines[ADAPT_COLLCOUNT]; + + /* cached topologies */ + opal_list_t *topo_cache; + + /* Whether this module has been lazily initialized or not yet */ + bool adapt_enabled; +}; +OBJ_CLASS_DECLARATION(mca_coll_adapt_module_t); + +/* Global component instance */ +OMPI_MODULE_DECLSPEC extern mca_coll_adapt_component_t mca_coll_adapt_component; + +/* ADAPT module functions */ +int ompi_coll_adapt_init_query(bool enable_progress_threads, bool enable_mpi_threads); +mca_coll_base_module_t * ompi_coll_adapt_comm_query(struct ompi_communicator_t *comm, int *priority); + +/* ADAPT request free */ +int ompi_coll_adapt_request_free(ompi_request_t **request); + +#endif /* MCA_COLL_ADAPT_EXPORT_H */ diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_ibcast.c openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_ibcast.c --- openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_ibcast.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_ibcast.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,575 @@ +/* + * Copyright (c) 2014-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" +#include "ompi/mca/pml/pml.h" +#include "coll_adapt.h" +#include "coll_adapt_algorithms.h" +#include "coll_adapt_context.h" +#include "coll_adapt_topocache.h" +#include "ompi/mca/coll/base/coll_base_util.h" +#include "ompi/mca/coll/base/coll_base_functions.h" +#include "opal/util/bit_ops.h" +#include "opal/sys/atomic.h" +#include "ompi/mca/pml/ob1/pml_ob1.h" + +static int ompi_coll_adapt_ibcast_generic(IBCAST_ARGS, + ompi_coll_tree_t * tree, size_t seg_size); + +/* + * Set up MCA parameters of MPI_Bcast and MPI_IBcast + */ +int ompi_coll_adapt_ibcast_register(void) +{ + mca_base_component_t *c = &mca_coll_adapt_component.super.collm_version; + + mca_coll_adapt_component.adapt_ibcast_algorithm = 1; + mca_base_component_var_register(c, "bcast_algorithm", + "Algorithm of broadcast, 0: tuned, 1: binomial, 2: in_order_binomial, 3: binary, 4: pipeline, 5: chain, 6: linear", MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_READONLY, + &mca_coll_adapt_component.adapt_ibcast_algorithm); + if( (mca_coll_adapt_component.adapt_ibcast_algorithm < 0) || + (mca_coll_adapt_component.adapt_ibcast_algorithm >= OMPI_COLL_ADAPT_ALGORITHM_COUNT) ) { + mca_coll_adapt_component.adapt_ibcast_algorithm = 1; + } + + mca_coll_adapt_component.adapt_ibcast_segment_size = 0; + mca_base_component_var_register(c, "bcast_segment_size", + "Segment size in bytes used by default for bcast algorithms. Only has meaning if algorithm is forced and supports segmenting. 0 bytes means no segmentation.", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_coll_adapt_component.adapt_ibcast_segment_size); + + mca_coll_adapt_component.adapt_ibcast_max_send_requests = 2; + mca_base_component_var_register(c, "bcast_max_send_requests", + "Maximum number of send requests", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_coll_adapt_component.adapt_ibcast_max_send_requests); + + mca_coll_adapt_component.adapt_ibcast_max_recv_requests = 3; + mca_base_component_var_register(c, "bcast_max_recv_requests", + "Maximum number of receive requests", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_coll_adapt_component.adapt_ibcast_max_recv_requests); + + mca_coll_adapt_component.adapt_ibcast_synchronous_send = true; + (void) mca_base_component_var_register(c, "bcast_synchronous_send", + "Whether to use synchronous send operations during setup of bcast operations", + MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_coll_adapt_component.adapt_ibcast_synchronous_send); + + mca_coll_adapt_component.adapt_ibcast_context_free_list = NULL; + return OMPI_SUCCESS; +} + +/* + * Release the free list created in ompi_coll_adapt_ibcast_generic + */ +int ompi_coll_adapt_ibcast_fini(void) +{ + if (NULL != mca_coll_adapt_component.adapt_ibcast_context_free_list) { + OBJ_RELEASE(mca_coll_adapt_component.adapt_ibcast_context_free_list); + mca_coll_adapt_component.adapt_ibcast_context_free_list = NULL; + OPAL_OUTPUT_VERBOSE((10, mca_coll_adapt_component.adapt_output, "ibcast fini\n")); + } + return OMPI_SUCCESS; +} + +/* + * Finish a ibcast request + */ +static int ibcast_request_fini(ompi_coll_adapt_bcast_context_t * context) +{ + ompi_request_t *temp_req = context->con->request; + if (context->con->tree->tree_nextsize != 0) { + free(context->con->send_array); + } + if (context->con->num_segs != 0) { + free(context->con->recv_array); + } + OBJ_RELEASE(context->con->mutex); + OBJ_RELEASE(context->con); + ompi_request_complete(temp_req, 1); + + return OMPI_SUCCESS; +} + +/* + * Callback function of isend + */ +static int send_cb(ompi_request_t * req) +{ + ompi_coll_adapt_bcast_context_t *context = + (ompi_coll_adapt_bcast_context_t *) req->req_complete_cb_data; + + int err; + + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: Send(cb): segment %d to %d at buff %p root %d\n", + ompi_comm_rank(context->con->comm), context->frag_id, + context->peer, (void *) context->buff, context->con->root)); + + OPAL_THREAD_LOCK(context->con->mutex); + int sent_id = context->con->send_array[context->child_id]; + /* If the current process has fragments in recv_array can be sent */ + if (sent_id < context->con->num_recv_segs) { + ompi_request_t *send_req; + ompi_coll_adapt_bcast_context_t *send_context; + int new_id = context->con->recv_array[sent_id]; + ++(context->con->send_array[context->child_id]); + OPAL_THREAD_UNLOCK(context->con->mutex); + + send_context = (ompi_coll_adapt_bcast_context_t *) opal_free_list_wait(mca_coll_adapt_component.adapt_ibcast_context_free_list); + send_context->buff = + context->buff + (new_id - context->frag_id) * context->con->real_seg_size; + send_context->frag_id = new_id; + send_context->child_id = context->child_id; + send_context->peer = context->peer; + send_context->con = context->con; + int send_count = send_context->con->seg_count; + if (new_id == (send_context->con->num_segs - 1)) { + send_count = send_context->con->count - new_id * send_context->con->seg_count; + } + char *send_buff = send_context->buff; + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: Send(start in send cb): segment %d to %d at buff %p send_count %d tag %d\n", + ompi_comm_rank(send_context->con->comm), send_context->frag_id, + send_context->peer, (void *) send_context->buff, send_count, + send_context->con->ibcast_tag - new_id)); + err = MCA_PML_CALL(isend + (send_buff, send_count, send_context->con->datatype, send_context->peer, + send_context->con->ibcast_tag - new_id, + MCA_PML_BASE_SEND_STANDARD, send_context->con->comm, &send_req)); + if (MPI_SUCCESS != err) { + opal_free_list_return(mca_coll_adapt_component.adapt_ibcast_context_free_list, + (opal_free_list_item_t *)send_context); + OBJ_RELEASE(context->con); + return err; + } + /* Set send callback */ + ompi_request_set_callback(send_req, send_cb, send_context); + OPAL_THREAD_LOCK(context->con->mutex); + } else { + /* No future send here, we can release the ref */ + OBJ_RELEASE(context->con); + } + int num_sent = ++(context->con->num_sent_segs); + int num_recv_fini = context->con->num_recv_fini; + int rank = ompi_comm_rank(context->con->comm); + OPAL_THREAD_UNLOCK(context->con->mutex); + /* Check whether signal the condition */ + if ((rank == context->con->root + && num_sent == context->con->tree->tree_nextsize * context->con->num_segs) + || (context->con->tree->tree_nextsize > 0 && rank != context->con->root + && num_sent == context->con->tree->tree_nextsize * context->con->num_segs + && num_recv_fini == context->con->num_segs)) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, "[%d]: Signal in send\n", + ompi_comm_rank(context->con->comm))); + ibcast_request_fini(context); + } + opal_free_list_return(mca_coll_adapt_component.adapt_ibcast_context_free_list, + (opal_free_list_item_t *) context); + req->req_free(&req); + /* Call back function return 1 to signal that request has been free'd */ + return 1; +} + +/* + * Callback function of irecv + */ +static int recv_cb(ompi_request_t * req) +{ + /* Get necessary info from request */ + ompi_coll_adapt_bcast_context_t *context = + (ompi_coll_adapt_bcast_context_t *) req->req_complete_cb_data; + + int err, i; + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: Recv(cb): segment %d from %d at buff %p root %d\n", + ompi_comm_rank(context->con->comm), context->frag_id, + context->peer, (void *) context->buff, context->con->root)); + + /* Store the frag_id to seg array */ + OPAL_THREAD_LOCK(context->con->mutex); + int num_recv_segs = ++(context->con->num_recv_segs); + context->con->recv_array[num_recv_segs - 1] = context->frag_id; + OPAL_THREAD_UNLOCK(context->con->mutex); + + int new_id = num_recv_segs + mca_coll_adapt_component.adapt_ibcast_max_recv_requests - 1; + /* Receive new segment */ + if (new_id < context->con->num_segs) { + ompi_request_t *recv_req; + ompi_coll_adapt_bcast_context_t *recv_context; + /* Get new context item from free list */ + recv_context = (ompi_coll_adapt_bcast_context_t *) opal_free_list_wait(mca_coll_adapt_component.adapt_ibcast_context_free_list); + recv_context->buff = + context->buff + (new_id - context->frag_id) * context->con->real_seg_size; + recv_context->frag_id = new_id; + recv_context->child_id = context->child_id; + recv_context->peer = context->peer; + recv_context->con = context->con; + OBJ_RETAIN(context->con); + int recv_count = recv_context->con->seg_count; + if (new_id == (recv_context->con->num_segs - 1)) { + recv_count = recv_context->con->count - new_id * recv_context->con->seg_count; + } + char *recv_buff = recv_context->buff; + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: Recv(start in recv cb): segment %d from %d at buff %p recv_count %d tag %d\n", + ompi_comm_rank(context->con->comm), context->frag_id, context->peer, + (void *) recv_buff, recv_count, + recv_context->con->ibcast_tag - recv_context->frag_id)); + MCA_PML_CALL(irecv + (recv_buff, recv_count, recv_context->con->datatype, recv_context->peer, + recv_context->con->ibcast_tag - recv_context->frag_id, + recv_context->con->comm, &recv_req)); + + /* Set the receive callback */ + ompi_request_set_callback(recv_req, recv_cb, recv_context); + } + + OPAL_THREAD_LOCK(context->con->mutex); + /* Propagate segment to all children */ + for (i = 0; i < context->con->tree->tree_nextsize; i++) { + /* If the current process can send the segment now, which means the only segment need to be sent is the just arrived one */ + if (num_recv_segs - 1 == context->con->send_array[i]) { + ompi_request_t *send_req; + + ++(context->con->send_array[i]); + + /* release mutex to avoid deadlock in case a callback is triggered below */ + OPAL_THREAD_UNLOCK(context->con->mutex); + + int send_count = context->con->seg_count; + if (context->frag_id == (context->con->num_segs - 1)) { + send_count = context->con->count - context->frag_id * context->con->seg_count; + } + + ompi_coll_adapt_bcast_context_t *send_context; + send_context = (ompi_coll_adapt_bcast_context_t *) opal_free_list_wait(mca_coll_adapt_component.adapt_ibcast_context_free_list); + send_context->buff = context->buff; + send_context->frag_id = context->frag_id; + send_context->child_id = i; + send_context->peer = context->con->tree->tree_next[i]; + send_context->con = context->con; + OBJ_RETAIN(context->con); + char *send_buff = send_context->buff; + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: Send(start in recv cb): segment %d to %d at buff %p send_count %d tag %d\n", + ompi_comm_rank(send_context->con->comm), send_context->frag_id, + send_context->peer, (void *) send_context->buff, send_count, + send_context->con->ibcast_tag - send_context->frag_id)); + err = + MCA_PML_CALL(isend + (send_buff, send_count, send_context->con->datatype, + send_context->peer, + send_context->con->ibcast_tag - send_context->frag_id, + MCA_PML_BASE_SEND_STANDARD, send_context->con->comm, &send_req)); + if (MPI_SUCCESS != err) { + opal_free_list_return(mca_coll_adapt_component.adapt_ibcast_context_free_list, + (opal_free_list_item_t *)send_context); + OBJ_RELEASE(context->con); + return err; + } + /* Set send callback */ + ompi_request_set_callback(send_req, send_cb, send_context); + + /* retake the mutex for next iteration */ + OPAL_THREAD_LOCK(context->con->mutex); + } + } + OBJ_RELEASE(context->con); + + int num_sent = context->con->num_sent_segs; + int num_recv_fini = ++(context->con->num_recv_fini); + + OPAL_THREAD_UNLOCK(context->con->mutex); + /* If this process is leaf and has received all the segments */ + if ((context->con->tree->tree_nextsize > 0 + && num_sent == context->con->tree->tree_nextsize * context->con->num_segs + && num_recv_fini == context->con->num_segs) || (context->con->tree->tree_nextsize == 0 + && num_recv_fini == context->con->num_segs)) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, "[%d]: Signal in recv\n", + ompi_comm_rank(context->con->comm))); + ibcast_request_fini(context); + } + opal_free_list_return(mca_coll_adapt_component.adapt_ibcast_context_free_list, + (opal_free_list_item_t *) context); + req->req_free(&req); + + /* Call back function return 1 to signal that request has been free'd */ + return 1; +} + +int ompi_coll_adapt_ibcast(void *buff, int count, struct ompi_datatype_t *datatype, int root, + struct ompi_communicator_t *comm, ompi_request_t ** request, + mca_coll_base_module_t * module) +{ + OPAL_OUTPUT_VERBOSE((10, mca_coll_adapt_component.adapt_output, + "ibcast root %d, algorithm %d, coll_adapt_ibcast_segment_size %zu, coll_adapt_ibcast_max_send_requests %d, coll_adapt_ibcast_max_recv_requests %d\n", + root, mca_coll_adapt_component.adapt_ibcast_algorithm, + mca_coll_adapt_component.adapt_ibcast_segment_size, + mca_coll_adapt_component.adapt_ibcast_max_send_requests, + mca_coll_adapt_component.adapt_ibcast_max_recv_requests)); + + if (OMPI_COLL_ADAPT_ALGORITHM_TUNED == mca_coll_adapt_component.adapt_ibcast_algorithm) { + OPAL_OUTPUT_VERBOSE((10, mca_coll_adapt_component.adapt_output, "tuned not implemented\n")); + return OMPI_ERR_NOT_IMPLEMENTED; + } + + return ompi_coll_adapt_ibcast_generic(buff, count, datatype, root, comm, request, module, + adapt_module_cached_topology(module, comm, root, mca_coll_adapt_component.adapt_ibcast_algorithm), + mca_coll_adapt_component.adapt_ibcast_segment_size); +} + + +int ompi_coll_adapt_ibcast_generic(void *buff, int count, struct ompi_datatype_t *datatype, int root, + struct ompi_communicator_t *comm, ompi_request_t ** request, + mca_coll_base_module_t * module, ompi_coll_tree_t * tree, + size_t seg_size) +{ + int i, j, rank, err; + /* The min of num_segs and SEND_NUM or RECV_NUM, in case the num_segs is less than SEND_NUM or RECV_NUM */ + int min; + + /* Number of datatype in a segment */ + int seg_count = count; + /* Size of a datatype */ + size_t type_size; + /* Real size of a segment */ + size_t real_seg_size; + ptrdiff_t extent, lb; + /* Number of segments */ + int num_segs; + + mca_pml_base_send_mode_t sendmode = (mca_coll_adapt_component.adapt_ibcast_synchronous_send) + ? MCA_PML_BASE_SEND_SYNCHRONOUS : MCA_PML_BASE_SEND_STANDARD; + + /* The request passed outside */ + ompi_coll_base_nbc_request_t *temp_request = NULL; + opal_mutex_t *mutex; + /* Store the segments which are received */ + int *recv_array = NULL; + /* Record how many isends have been issued for every child */ + int *send_array = NULL; + + /* Atomically set up free list */ + if (NULL == mca_coll_adapt_component.adapt_ibcast_context_free_list) { + opal_free_list_t* fl = OBJ_NEW(opal_free_list_t); + opal_free_list_init(fl, + sizeof(ompi_coll_adapt_bcast_context_t), + opal_cache_line_size, + OBJ_CLASS(ompi_coll_adapt_bcast_context_t), + 0, opal_cache_line_size, + mca_coll_adapt_component.adapt_context_free_list_min, + mca_coll_adapt_component.adapt_context_free_list_max, + mca_coll_adapt_component.adapt_context_free_list_inc, + NULL, 0, NULL, NULL, NULL); + if( !OPAL_ATOMIC_COMPARE_EXCHANGE_STRONG_PTR(&mca_coll_adapt_component.adapt_ibcast_context_free_list, + &(intptr_t){0}, fl) ) { + OBJ_RELEASE(fl); + } + } + + /* Set up request */ + temp_request = OBJ_NEW(ompi_coll_base_nbc_request_t); + OMPI_REQUEST_INIT(&temp_request->super, false); + temp_request->super.req_state = OMPI_REQUEST_ACTIVE; + temp_request->super.req_type = OMPI_REQUEST_COLL; + temp_request->super.req_free = ompi_coll_adapt_request_free; + temp_request->super.req_status.MPI_SOURCE = 0; + temp_request->super.req_status.MPI_TAG = 0; + temp_request->super.req_status.MPI_ERROR = 0; + temp_request->super.req_status._cancelled = 0; + temp_request->super.req_status._ucount = 0; + *request = (ompi_request_t*)temp_request; + + /* Set up mutex */ + mutex = OBJ_NEW(opal_mutex_t); + + rank = ompi_comm_rank(comm); + + /* Determine number of elements sent per operation */ + ompi_datatype_type_size(datatype, &type_size); + COLL_BASE_COMPUTED_SEGCOUNT(seg_size, type_size, seg_count); + + ompi_datatype_get_extent(datatype, &lb, &extent); + num_segs = (count + seg_count - 1) / seg_count; + real_seg_size = (ptrdiff_t) seg_count *extent; + + /* Set memory for recv_array and send_array, created on heap becasue they are needed to be accessed by other functions (callback functions) */ + if (num_segs != 0) { + recv_array = (int *) malloc(sizeof(int) * num_segs); + } + if (tree->tree_nextsize != 0) { + send_array = (int *) malloc(sizeof(int) * tree->tree_nextsize); + } + + /* Set constant context for send and recv call back */ + ompi_coll_adapt_constant_bcast_context_t *con = OBJ_NEW(ompi_coll_adapt_constant_bcast_context_t); + con->root = root; + con->count = count; + con->seg_count = seg_count; + con->datatype = datatype; + con->comm = comm; + con->real_seg_size = real_seg_size; + con->num_segs = num_segs; + con->recv_array = recv_array; + con->num_recv_segs = 0; + con->num_recv_fini = 0; + con->send_array = send_array; + con->num_sent_segs = 0; + con->mutex = mutex; + con->request = (ompi_request_t*)temp_request; + con->tree = tree; + con->ibcast_tag = ompi_coll_base_nbc_reserve_tags(comm, num_segs); + + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: Ibcast, root %d, tag %d\n", rank, root, + con->ibcast_tag)); + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: con->mutex = %p, num_children = %d, num_segs = %d, real_seg_size = %d, seg_count = %d, tree_adreess = %p\n", + rank, (void *) con->mutex, tree->tree_nextsize, num_segs, + (int) real_seg_size, seg_count, (void *) con->tree)); + + OPAL_THREAD_LOCK(mutex); + + /* If the current process is root, it sends segment to every children */ + if (rank == root) { + /* Handle the situation when num_segs < SEND_NUM */ + if (num_segs <= mca_coll_adapt_component.adapt_ibcast_max_send_requests) { + min = num_segs; + } else { + min = mca_coll_adapt_component.adapt_ibcast_max_send_requests; + } + + /* Set recv_array, root has already had all the segments */ + for (i = 0; i < num_segs; i++) { + recv_array[i] = i; + } + con->num_recv_segs = num_segs; + /* Set send_array, will send ompi_coll_adapt_ibcast_max_send_requests segments */ + for (i = 0; i < tree->tree_nextsize; i++) { + send_array[i] = mca_coll_adapt_component.adapt_ibcast_max_send_requests; + } + + ompi_request_t *send_req; + /* Number of datatypes in each send */ + int send_count = seg_count; + for (i = 0; i < min; i++) { + if (i == (num_segs - 1)) { + send_count = count - i * seg_count; + } + for (j = 0; j < tree->tree_nextsize; j++) { + ompi_coll_adapt_bcast_context_t *context = + (ompi_coll_adapt_bcast_context_t *) opal_free_list_wait(mca_coll_adapt_component. + adapt_ibcast_context_free_list); + context->buff = (char *) buff + i * real_seg_size; + context->frag_id = i; + /* The id of peer in in children_list */ + context->child_id = j; + /* Actural rank of the peer */ + context->peer = tree->tree_next[j]; + context->con = con; + OBJ_RETAIN(con); + + char *send_buff = context->buff; + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: Send(start in main): segment %d to %d at buff %p send_count %d tag %d\n", + rank, context->frag_id, context->peer, + (void *) send_buff, send_count, con->ibcast_tag - i)); + err = + MCA_PML_CALL(isend + (send_buff, send_count, datatype, context->peer, + con->ibcast_tag - i, sendmode, comm, + &send_req)); + if (MPI_SUCCESS != err) { + return err; + } + /* Set send callback */ + OPAL_THREAD_UNLOCK(mutex); + ompi_request_set_callback(send_req, send_cb, context); + OPAL_THREAD_LOCK(mutex); + } + } + + } + + /* If the current process is not root, it receives data from parent in the tree. */ + else { + /* Handle the situation when num_segs < RECV_NUM */ + if (num_segs <= mca_coll_adapt_component.adapt_ibcast_max_recv_requests) { + min = num_segs; + } else { + min = mca_coll_adapt_component.adapt_ibcast_max_recv_requests; + } + + /* Set recv_array, recv_array is empty */ + for (i = 0; i < num_segs; i++) { + recv_array[i] = 0; + } + /* Set send_array to empty */ + for (i = 0; i < tree->tree_nextsize; i++) { + send_array[i] = 0; + } + + /* Create a recv request */ + ompi_request_t *recv_req; + + /* Recevice some segments from its parent */ + int recv_count = seg_count; + for (i = 0; i < min; i++) { + if (i == (num_segs - 1)) { + recv_count = count - i * seg_count; + } + ompi_coll_adapt_bcast_context_t *context = + (ompi_coll_adapt_bcast_context_t *) opal_free_list_wait(mca_coll_adapt_component. + adapt_ibcast_context_free_list); + context->buff = (char *) buff + i * real_seg_size; + context->frag_id = i; + context->peer = tree->tree_prev; + context->con = con; + OBJ_RETAIN(con); + char *recv_buff = context->buff; + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: Recv(start in main): segment %d from %d at buff %p recv_count %d tag %d\n", + ompi_comm_rank(context->con->comm), context->frag_id, + context->peer, (void *) recv_buff, recv_count, + con->ibcast_tag - i)); + err = + MCA_PML_CALL(irecv + (recv_buff, recv_count, datatype, context->peer, + con->ibcast_tag - i, comm, &recv_req)); + if (MPI_SUCCESS != err) { + return err; + } + /* Set receive callback */ + OPAL_THREAD_UNLOCK(mutex); + ompi_request_set_callback(recv_req, recv_cb, context); + OPAL_THREAD_LOCK(mutex); + } + + } + + OPAL_THREAD_UNLOCK(mutex); + + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: End of Ibcast\n", rank)); + + return MPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_inbuf.c openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_inbuf.c --- openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_inbuf.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_inbuf.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2014-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "coll_adapt.h" +#include "coll_adapt_inbuf.h" + +OBJ_CLASS_INSTANCE(ompi_coll_adapt_inbuf_t, opal_free_list_item_t, + NULL, NULL); diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_inbuf.h openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_inbuf.h --- openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_inbuf.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_inbuf.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2014-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef MCA_COLL_ADAPT_INBUF_H +#define MCA_COLL_ADAPT_INBUF_H + +#include "opal/class/opal_free_list.h" + +struct ompi_coll_adapt_inbuf_s { + opal_free_list_item_t super; + char buff[]; +}; + +typedef struct ompi_coll_adapt_inbuf_s ompi_coll_adapt_inbuf_t; + +OBJ_CLASS_DECLARATION(ompi_coll_adapt_inbuf_t); + +#endif /* MCA_COLL_ADAPT_INBUF_H */ diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_ireduce.c openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_ireduce.c --- openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_ireduce.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_ireduce.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,771 @@ +/* + * Copyright (c) 2014-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Cisco Systems, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" +#include "ompi/communicator/communicator.h" +#include "coll_adapt.h" +#include "coll_adapt_algorithms.h" +#include "coll_adapt_context.h" +#include "coll_adapt_item.h" +#include "coll_adapt_topocache.h" +#include "ompi/constants.h" +#include "ompi/mca/coll/base/coll_base_util.h" +#include "ompi/mca/pml/pml.h" +#include "ompi/mca/coll/base/coll_base_topo.h" + +static int ompi_coll_adapt_ireduce_generic(IREDUCE_ARGS, + ompi_coll_tree_t * tree, size_t seg_size); + +/* MPI_Reduce and MPI_Ireduce in the ADAPT module only work for commutative operations */ + +/* + * Set up MCA parameters of MPI_Reduce and MPI_Ireduce + */ +int ompi_coll_adapt_ireduce_register(void) +{ + mca_base_component_t *c = &mca_coll_adapt_component.super.collm_version; + + mca_coll_adapt_component.adapt_ireduce_algorithm = 1; + mca_base_component_var_register(c, "reduce_algorithm", + "Algorithm of reduce, 1: binomial, 2: in_order_binomial, 3: binary, 4: pipeline, 5: chain, 6: linear", MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_READONLY, + &mca_coll_adapt_component.adapt_ireduce_algorithm); + if( (mca_coll_adapt_component.adapt_ireduce_algorithm < 0) || + (mca_coll_adapt_component.adapt_ireduce_algorithm > OMPI_COLL_ADAPT_ALGORITHM_COUNT) ) { + mca_coll_adapt_component.adapt_ireduce_algorithm = 1; + } + + mca_coll_adapt_component.adapt_ireduce_segment_size = 163740; + mca_base_component_var_register(c, "reduce_segment_size", + "Segment size in bytes used by default for reduce algorithms. Only has meaning if algorithm is forced and supports segmenting. 0 bytes means no segmentation.", + MCA_BASE_VAR_TYPE_SIZE_T, NULL, 0, 0, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_coll_adapt_component.adapt_ireduce_segment_size); + + mca_coll_adapt_component.adapt_ireduce_max_send_requests = 2; + mca_base_component_var_register(c, "reduce_max_send_requests", + "Maximum number of send requests", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_coll_adapt_component.adapt_ireduce_max_send_requests); + + mca_coll_adapt_component.adapt_ireduce_max_recv_requests = 3; + mca_base_component_var_register(c, "reduce_max_recv_requests", + "Maximum number of receive requests per peer", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_coll_adapt_component.adapt_ireduce_max_recv_requests); + + mca_coll_adapt_component.adapt_inbuf_free_list_min = 10; + mca_base_component_var_register(c, "inbuf_free_list_min", + "Minimum number of segment in inbuf free list", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_coll_adapt_component.adapt_inbuf_free_list_min); + + mca_coll_adapt_component.adapt_inbuf_free_list_max = 10000; + mca_base_component_var_register(c, "inbuf_free_list_max", + "Maximum number of segment in inbuf free list", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_coll_adapt_component.adapt_inbuf_free_list_max); + + + mca_coll_adapt_component.adapt_inbuf_free_list_inc = 10; + mca_base_component_var_register(c, "inbuf_free_list_inc", + "Number of segments to allocate when growing the inbuf free list", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_coll_adapt_component.adapt_inbuf_free_list_inc); + + mca_coll_adapt_component.adapt_ireduce_synchronous_send = true; + (void) mca_base_component_var_register(c, "reduce_synchronous_send", + "Whether to use synchronous send operations during setup of reduce operations", + MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_coll_adapt_component.adapt_ireduce_synchronous_send); + + mca_coll_adapt_component.adapt_ireduce_context_free_list = NULL; + return OMPI_SUCCESS; +} + +/* + * Release the free list created in ompi_coll_adapt_ireduce_generic + */ +int ompi_coll_adapt_ireduce_fini(void) +{ + if (NULL != mca_coll_adapt_component.adapt_ireduce_context_free_list) { + OBJ_RELEASE(mca_coll_adapt_component.adapt_ireduce_context_free_list); + mca_coll_adapt_component.adapt_ireduce_context_free_list = NULL; + OPAL_OUTPUT_VERBOSE((10, mca_coll_adapt_component.adapt_output, "ireduce fini\n")); + } + return OMPI_SUCCESS; +} + +/* + * Functions to access list + */ +static ompi_coll_adapt_item_t *get_next_ready_item(ompi_coll_adapt_constant_reduce_context_t *con, int num_children) +{ + ompi_coll_adapt_item_t *item = NULL, *temp_item; + if (opal_list_is_empty(&con->recv_list)) { + return NULL; + } + OPAL_THREAD_LOCK(&con->mutex_recv_list); + OPAL_LIST_FOREACH(temp_item, &con->recv_list, ompi_coll_adapt_item_t) { + if (temp_item->count == num_children) { + item = temp_item; + opal_list_remove_item(&con->recv_list, (opal_list_item_t *) temp_item); + break; + } + } + OPAL_THREAD_UNLOCK(&con->mutex_recv_list); + return item; +} + +static int add_to_recv_list(ompi_coll_adapt_constant_reduce_context_t *con, int id) +{ + ompi_coll_adapt_item_t *item; + + OPAL_THREAD_LOCK(&con->mutex_recv_list); + OPAL_LIST_FOREACH(item, &con->recv_list, ompi_coll_adapt_item_t) { + if (item->id == id) { + (item->count)++; + OPAL_THREAD_UNLOCK(&con->mutex_recv_list); + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, "add_to_recv_list_return 1\n")); + return 1; + } + } + + /* Add a new object to the list with count set to 1 */ + item = OBJ_NEW(ompi_coll_adapt_item_t); + item->id = id; + item->count = 1; + opal_list_append(&con->recv_list, (opal_list_item_t *) item); + OPAL_THREAD_UNLOCK(&con->mutex_recv_list); + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, "add_to_recv_list_return 2\n")); + return 2; +} + +/* + * Get the inbuf address + */ +static ompi_coll_adapt_inbuf_t *to_inbuf(char *buf, int distance) +{ + return (ompi_coll_adapt_inbuf_t *) (buf - distance); +} + +/* + * Finish a ireduce request + */ +static int ireduce_request_fini(ompi_coll_adapt_reduce_context_t * context) +{ + /* Return the allocated recourses */ + ompi_request_t *temp_req = context->con->request; + if (context->con->accumbuf != NULL) { + if (context->con->rank != context->con->root) { + for (int i = 0; i < context->con->num_segs; i++) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: Return accumbuf %d %p\n", + ompi_comm_rank(context->con->comm), i, + (void *) to_inbuf(context->con->accumbuf[i], + context->con->distance))); + opal_free_list_return_st(&context->con->inbuf_list, + (opal_free_list_item_t *) to_inbuf(context->con->accumbuf[i], + context->con->distance)); + } + } + free(context->con->accumbuf); + } + for (int i = 0; i < context->con->num_segs; i++) { + OBJ_DESTRUCT(&context->con->mutex_op_list[i]); + } + free(context->con->mutex_op_list); + if (context->con->tree->tree_nextsize > 0) { + free(context->con->next_recv_segs); + } + OBJ_RELEASE(context->con); + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, "return context_list\n")); + opal_free_list_return(mca_coll_adapt_component.adapt_ireduce_context_free_list, + (opal_free_list_item_t *) context); + /* Complete the request */ + ompi_request_complete(temp_req, 1); + return OMPI_SUCCESS; +} + +/* + * Callback function of isend + */ +static int send_cb(ompi_request_t * req) +{ + ompi_coll_adapt_reduce_context_t *context = + (ompi_coll_adapt_reduce_context_t *) req->req_complete_cb_data; + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: ireduce_send_cb, peer %d, seg_id %d\n", context->con->rank, + context->peer, context->seg_index)); + int err; + + opal_atomic_sub_fetch_32(&(context->con->ongoing_send), 1); + + /* Send a new segment */ + ompi_coll_adapt_item_t *item = + get_next_ready_item(context->con, context->con->tree->tree_nextsize); + + if (item != NULL) { + /* Get new context item from free list */ + ompi_coll_adapt_reduce_context_t *send_context = + (ompi_coll_adapt_reduce_context_t *) opal_free_list_wait(mca_coll_adapt_component. + adapt_ireduce_context_free_list); + if (context->con->tree->tree_nextsize > 0) { + send_context->buff = context->con->accumbuf[item->id]; + } else { + send_context->buff = + context->buff + (item->id - context->seg_index) * context->con->segment_increment; + } + send_context->seg_index = item->id; + send_context->peer = context->peer; + send_context->con = context->con; + + opal_atomic_add_fetch_32(&(context->con->ongoing_send), 1); + + int send_count = send_context->con->seg_count; + if (item->id == (send_context->con->num_segs - 1)) { + send_count = send_context->con->count - item->id * send_context->con->seg_count; + } + + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: In send_cb, create isend to seg %d, peer %d, tag %d\n", + send_context->con->rank, send_context->seg_index, send_context->peer, + send_context->con->ireduce_tag - send_context->seg_index)); + + ompi_request_t *send_req; + err = MCA_PML_CALL(isend + (send_context->buff, send_count, send_context->con->datatype, + send_context->peer, + context->con->ireduce_tag - send_context->seg_index, + MCA_PML_BASE_SEND_STANDARD, send_context->con->comm, &send_req)); + if (MPI_SUCCESS != err) { + return err; + } + + /* Release the item */ + OBJ_RELEASE(item); + + /* Set the send call back */ + ompi_request_set_callback(send_req, send_cb, send_context); + } + + int32_t num_sent = opal_atomic_add_fetch_32(&(context->con->num_sent_segs), 1); + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: In send_cb, root = %d, num_sent = %d, num_segs = %d\n", + context->con->rank, context->con->tree->tree_root, num_sent, + context->con->num_segs)); + /* Check whether signal the condition, non root and sent all the segments */ + if (num_sent == context->con->num_segs && + context->con->num_recv_segs == context->con->num_segs * context->con->tree->tree_nextsize) { + ireduce_request_fini(context); + } else { + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, "return context_list\n")); + opal_free_list_return(mca_coll_adapt_component.adapt_ireduce_context_free_list, + (opal_free_list_item_t *) context); + } + /* Call back function return 1, which means successful */ + req->req_free(&req); + return 1; +} + +/* + * Callback function of irecv + */ +static int recv_cb(ompi_request_t * req) +{ + ompi_coll_adapt_reduce_context_t *context = (ompi_coll_adapt_reduce_context_t *) req->req_complete_cb_data; + int32_t new_id = opal_atomic_add_fetch_32(&(context->con->next_recv_segs[context->child_id]), 1); + int err; + + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: ireduce_recv_cb, peer %d, seg_id %d\n", context->con->rank, + context->peer, context->seg_index)); + + /* Did we still need to receive subsequent fragments from this child ? */ + if (new_id < context->con->num_segs) { + char *temp_recv_buf = NULL; + ompi_coll_adapt_inbuf_t *inbuf = NULL; + /* Set inbuf, if it it first child, recv on rbuf, else recv on inbuf */ + if (context->child_id == 0 && context->con->sbuf != MPI_IN_PLACE + && context->con->root == context->con->rank) { + temp_recv_buf = (char *) context->con->rbuf + + (ptrdiff_t) new_id *(ptrdiff_t) context->con->segment_increment; + } else { + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: In recv_cb, alloc inbuf\n", context->con->rank)); + inbuf = (ompi_coll_adapt_inbuf_t *) opal_free_list_wait(&context->con->inbuf_list); + temp_recv_buf = inbuf->buff - context->con->lower_bound; + } + /* Get new context item from free list */ + ompi_coll_adapt_reduce_context_t *recv_context = + (ompi_coll_adapt_reduce_context_t *) opal_free_list_wait(mca_coll_adapt_component. + adapt_ireduce_context_free_list); + recv_context->buff = temp_recv_buf; + recv_context->seg_index = new_id; + recv_context->child_id = context->child_id; + recv_context->peer = context->peer; + recv_context->con = context->con; + recv_context->inbuf = inbuf; + int recv_count = recv_context->con->seg_count; + if (new_id == (recv_context->con->num_segs - 1)) { + recv_count = recv_context->con->count - new_id * recv_context->con->seg_count; + } + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: In recv_cb, create irecv for seg %d, peer %d, inbuf %p, tag %d\n", + context->con->rank, recv_context->seg_index, recv_context->peer, + (void *) inbuf, + recv_context->con->ireduce_tag - recv_context->seg_index)); + ompi_request_t *recv_req; + err = MCA_PML_CALL(irecv(temp_recv_buf, recv_count, recv_context->con->datatype, + recv_context->peer, + recv_context->con->ireduce_tag - recv_context->seg_index, + recv_context->con->comm, &recv_req)); + if (MPI_SUCCESS != err) { + return err; + } + /* Set the receive call back */ + ompi_request_set_callback(recv_req, recv_cb, recv_context); + } + + /* Do the op */ + int op_count = context->con->seg_count; + if (context->seg_index == (context->con->num_segs - 1)) { + op_count = context->con->count - context->seg_index * context->con->seg_count; + } + + int keep_inbuf = 0; + OPAL_THREAD_LOCK(&context->con->mutex_op_list[context->seg_index]); + if (NULL == context->con->accumbuf[context->seg_index]) { + if (NULL == context->inbuf) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: set accumbuf to rbuf\n", context->con->rank)); + context->con->accumbuf[context->seg_index] = context->buff; + } else { + keep_inbuf = 1; + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: set accumbuf to inbuf\n", context->con->rank)); + context->con->accumbuf[context->seg_index] = context->inbuf->buff - context->con->lower_bound; + } + /* Op sbuf and accmbuf to accumbuf */ + ompi_op_reduce(context->con->op, + context->con->sbuf + (ptrdiff_t) context->seg_index * (ptrdiff_t) context->con->segment_increment, + context->con->accumbuf[context->seg_index], op_count, context->con->datatype); + + } else { + if (NULL == context->inbuf) { + /* Op rbuf and accumbuf to rbuf */ + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: op rbuf and accumbuf to rbuf\n", context->con->rank)); + ompi_op_reduce(context->con->op, context->con->accumbuf[context->seg_index], + context->buff, op_count, context->con->datatype); + /* Free old accumbuf */ + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: free old accumbuf %p\n", context->con->rank, + (void *) to_inbuf(context->con->accumbuf[context->seg_index], + context->con->distance))); + opal_free_list_return(&context->con->inbuf_list, + (opal_free_list_item_t *) to_inbuf(context->con->accumbuf[context->seg_index], + context->con->distance)); + /* Set accumbut to rbuf */ + context->con->accumbuf[context->seg_index] = context->buff; + } else { + /* Op inbuf and accmbuf to accumbuf */ + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: op inbuf and accmbuf to accumbuf\n", context->con->rank)); + ompi_op_reduce(context->con->op, context->inbuf->buff - context->con->lower_bound, + context->con->accumbuf[context->seg_index], op_count, + context->con->datatype); + } + } + OPAL_THREAD_UNLOCK(&context->con->mutex_op_list[context->seg_index]); + + /* Set recv list */ + if (context->con->rank != context->con->tree->tree_root) { + add_to_recv_list(context->con, context->seg_index); + } + + /* Send to parent */ + if (context->con->rank != context->con->tree->tree_root + && context->con->ongoing_send < mca_coll_adapt_component.adapt_ireduce_max_send_requests) { + ompi_coll_adapt_item_t *item = get_next_ready_item(context->con, context->con->tree->tree_nextsize); + + if (NULL != item) { + /* Get new context item from free list */ + ompi_coll_adapt_reduce_context_t *send_context = + (ompi_coll_adapt_reduce_context_t *) opal_free_list_wait(mca_coll_adapt_component. + adapt_ireduce_context_free_list); + send_context->buff = context->con->accumbuf[context->seg_index]; + send_context->seg_index = item->id; + send_context->peer = context->con->tree->tree_prev; + send_context->con = context->con; + opal_atomic_add_fetch_32(&(context->con->ongoing_send), 1); + + int send_count = send_context->con->seg_count; + if (item->id == (send_context->con->num_segs - 1)) { + send_count = send_context->con->count - item->id * send_context->con->seg_count; + } + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: In recv_cb, create isend to seg %d, peer %d, tag %d\n", + send_context->con->rank, send_context->seg_index, send_context->peer, + send_context->con->ireduce_tag - send_context->seg_index)); + + ompi_request_t *send_req; + err = MCA_PML_CALL(isend(send_context->buff, send_count, send_context->con->datatype, + send_context->peer, + send_context->con->ireduce_tag - send_context->seg_index, + MCA_PML_BASE_SEND_STANDARD, send_context->con->comm, &send_req)); + if (MPI_SUCCESS != err) { + return err; + } + OBJ_RELEASE(item); + + /* Set the send call back */ + ompi_request_set_callback(send_req, send_cb, send_context); + } + } + + int32_t num_recv_segs = opal_atomic_add_fetch_32(&(context->con->num_recv_segs), 1); + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: In recv_cb, tree = %p, root = %d, num_recv = %d, num_segs = %d, num_child = %d\n", + context->con->rank, (void *) context->con->tree, + context->con->tree->tree_root, num_recv_segs, context->con->num_segs, + context->con->tree->tree_nextsize)); + /* Prepare for releasing all acquired resources */ + if (!keep_inbuf && NULL != context->inbuf) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: root free context inbuf %p", context->con->rank, + (void *) context->inbuf)); + opal_free_list_return(&context->con->inbuf_list, + (opal_free_list_item_t *) context->inbuf); + } + /* If this is root and has received all the segments */ + if (num_recv_segs == context->con->num_segs * context->con->tree->tree_nextsize && + (context->con->tree->tree_root == context->con->rank || context->con->num_sent_segs == context->con->num_segs)) { + ireduce_request_fini(context); + } else { + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, "[%d]: return context_list", + context->con->rank)); + opal_free_list_return(mca_coll_adapt_component.adapt_ireduce_context_free_list, + (opal_free_list_item_t *) context); + } + req->req_free(&req); + return 1; +} + +int ompi_coll_adapt_ireduce(const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype, + struct ompi_op_t *op, int root, struct ompi_communicator_t *comm, + ompi_request_t ** request, mca_coll_base_module_t * module) +{ + + /* Fall-back if operation is commutative */ + if (!ompi_op_is_commute(op)){ + mca_coll_adapt_module_t *adapt_module = (mca_coll_adapt_module_t *) module; + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "ADAPT cannot handle reduce with this (non-commutative) operation. It needs to fall back on another component\n")); + return adapt_module->previous_ireduce(sbuf, rbuf, count, dtype, op, root, + comm, request, + adapt_module->previous_reduce_module); + } + + + OPAL_OUTPUT_VERBOSE((10, mca_coll_adapt_component.adapt_output, + "ireduce root %d, algorithm %d, coll_adapt_ireduce_segment_size %zu, coll_adapt_ireduce_max_send_requests %d, coll_adapt_ireduce_max_recv_requests %d\n", + root, mca_coll_adapt_component.adapt_ireduce_algorithm, + mca_coll_adapt_component.adapt_ireduce_segment_size, + mca_coll_adapt_component.adapt_ireduce_max_send_requests, + mca_coll_adapt_component.adapt_ireduce_max_recv_requests)); + + if (OMPI_COLL_ADAPT_ALGORITHM_TUNED == mca_coll_adapt_component.adapt_ireduce_algorithm) { + OPAL_OUTPUT_VERBOSE((10, mca_coll_adapt_component.adapt_output, "tuned not implemented\n")); + return OMPI_ERR_NOT_IMPLEMENTED; + } + + + return ompi_coll_adapt_ireduce_generic(sbuf, rbuf, count, dtype, op, root, comm, request, module, + adapt_module_cached_topology(module, comm, root, mca_coll_adapt_component.adapt_ireduce_algorithm), + mca_coll_adapt_component.adapt_ireduce_segment_size); + +} + + +int ompi_coll_adapt_ireduce_generic(const void *sbuf, void *rbuf, int count, + struct ompi_datatype_t *dtype, struct ompi_op_t *op, int root, + struct ompi_communicator_t *comm, ompi_request_t ** request, + mca_coll_base_module_t * module, ompi_coll_tree_t * tree, + size_t seg_size) +{ + + ptrdiff_t extent, lower_bound, segment_increment; + ptrdiff_t true_lower_bound, true_extent, real_seg_size; + size_t typelng; + int seg_count = count, num_segs, rank, recv_count, send_count, err, min; + /* Used to store the accumuate result, pointer to every segment */ + char **accumbuf = NULL; + opal_mutex_t *mutex_op_list; + /* A list to store the segments need to be sent */ + mca_pml_base_send_mode_t sendmode = (mca_coll_adapt_component.adapt_ireduce_synchronous_send) + ? MCA_PML_BASE_SEND_SYNCHRONOUS : MCA_PML_BASE_SEND_STANDARD; + + /* Determine number of segments and number of elements sent per operation */ + rank = ompi_comm_rank(comm); + ompi_datatype_get_extent(dtype, &lower_bound, &extent); + ompi_datatype_type_size(dtype, &typelng); + COLL_BASE_COMPUTED_SEGCOUNT(seg_size, typelng, seg_count); + num_segs = (count + seg_count - 1) / seg_count; + segment_increment = (ptrdiff_t) seg_count *extent; + ompi_datatype_get_true_extent(dtype, &true_lower_bound, &true_extent); + real_seg_size = true_extent + (ptrdiff_t) (seg_count - 1) * extent; + + /* Atomically set up free list */ + if (NULL == mca_coll_adapt_component.adapt_ireduce_context_free_list) { + opal_free_list_t* fl = OBJ_NEW(opal_free_list_t); + opal_free_list_init(fl, + sizeof(ompi_coll_adapt_reduce_context_t), + opal_cache_line_size, + OBJ_CLASS(ompi_coll_adapt_reduce_context_t), + 0, opal_cache_line_size, + mca_coll_adapt_component.adapt_context_free_list_min, + mca_coll_adapt_component.adapt_context_free_list_max, + mca_coll_adapt_component.adapt_context_free_list_inc, + NULL, 0, NULL, NULL, NULL); + if( !OPAL_ATOMIC_COMPARE_EXCHANGE_STRONG_PTR(&mca_coll_adapt_component.adapt_ireduce_context_free_list, + &(intptr_t){0}, fl) ) { + OBJ_RELEASE(fl); + } + } + + ompi_coll_base_nbc_request_t *temp_request = NULL; + /* Set up request */ + temp_request = OBJ_NEW(ompi_coll_base_nbc_request_t); + OMPI_REQUEST_INIT(&temp_request->super, false); + temp_request->super.req_state = OMPI_REQUEST_ACTIVE; + temp_request->super.req_type = OMPI_REQUEST_COLL; + temp_request->super.req_free = ompi_coll_adapt_request_free; + temp_request->super.req_status.MPI_SOURCE = 0; + temp_request->super.req_status.MPI_TAG = 0; + temp_request->super.req_status.MPI_ERROR = 0; + temp_request->super.req_status._cancelled = 0; + temp_request->super.req_status._ucount = 0; + *request = (ompi_request_t*)temp_request; + + /* Set up mutex */ + mutex_op_list = (opal_mutex_t *) malloc(sizeof(opal_mutex_t) * num_segs); + for (int32_t i = 0; i < num_segs; i++) { + OBJ_CONSTRUCT(&mutex_op_list[i], opal_mutex_t); + } + + /* Set constant context for send and recv call back */ + ompi_coll_adapt_constant_reduce_context_t *con = + OBJ_NEW(ompi_coll_adapt_constant_reduce_context_t); + con->count = count; + con->seg_count = seg_count; + con->datatype = dtype; + con->comm = comm; + con->segment_increment = segment_increment; + con->num_segs = num_segs; + con->request = (ompi_request_t*)temp_request; + con->rank = rank; + con->num_recv_segs = 0; + con->num_sent_segs = 0; + con->ongoing_send = 0; + con->mutex_op_list = mutex_op_list; + con->op = op; + con->tree = tree; + con->lower_bound = lower_bound; + con->sbuf = (char *) sbuf; + con->rbuf = (char *) rbuf; + con->root = root; + con->distance = 0; + con->ireduce_tag = ompi_coll_base_nbc_reserve_tags(comm, num_segs); + con->real_seg_size = real_seg_size; + + /* If the current process is not leaf */ + if (tree->tree_nextsize > 0) { + size_t num_allocate_elems = mca_coll_adapt_component.adapt_inbuf_free_list_min; + if (((size_t) tree->tree_nextsize * num_segs) < num_allocate_elems) { + num_allocate_elems = tree->tree_nextsize * num_segs; + } + opal_free_list_init(&con->inbuf_list, + sizeof(ompi_coll_adapt_inbuf_t) + real_seg_size, + opal_cache_line_size, + OBJ_CLASS(ompi_coll_adapt_inbuf_t), + 0, opal_cache_line_size, + num_allocate_elems, + mca_coll_adapt_component.adapt_inbuf_free_list_max, + mca_coll_adapt_component.adapt_inbuf_free_list_inc, + NULL, 0, NULL, NULL, NULL); + /* Set up next_recv_segs */ + con->next_recv_segs = (int32_t *) malloc(sizeof(int32_t) * tree->tree_nextsize); + ompi_coll_adapt_inbuf_t *temp_inbuf = + (ompi_coll_adapt_inbuf_t *) opal_free_list_wait_st(&con->inbuf_list); + con->distance = (char *) temp_inbuf->buff - lower_bound - (char *) temp_inbuf; //address of inbuf->buff to address of inbuf + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: distance %d, inbuf %p, inbuf->buff %p, inbuf->buff-lb %p, to_inbuf %p, inbuf_list %p\n", + rank, con->distance, (void *) temp_inbuf, (void *) temp_inbuf->buff, + (void *) ((char *) temp_inbuf->buff - lower_bound), + (void *) to_inbuf((char *) temp_inbuf->buff - lower_bound, con->distance), + (void *) &con->inbuf_list)); + opal_free_list_return_st(&con->inbuf_list, (opal_free_list_item_t *) temp_inbuf); + } else { + con->next_recv_segs = NULL; + } + + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: start ireduce root %d tag %d\n", rank, tree->tree_root, + con->ireduce_tag)); + + /* If the current process is not leaf node */ + if (tree->tree_nextsize > 0) { + /* Set up accumbuf */ + accumbuf = (char **) malloc(sizeof(char *) * num_segs); + if (root == rank && sbuf == MPI_IN_PLACE) { + for (int32_t i = 0; i < num_segs; i++) { + accumbuf[i] = (char *) rbuf + (ptrdiff_t) i *(ptrdiff_t) segment_increment; + } + } else { + for (int32_t i = 0; i < num_segs; i++) { + accumbuf[i] = NULL; + } + } + + con->accumbuf = accumbuf; + + /* For the first batch of segments */ + min = mca_coll_adapt_component.adapt_ireduce_max_recv_requests; + if (num_segs < mca_coll_adapt_component.adapt_ireduce_max_recv_requests) { + min = num_segs; + } + for (int32_t i = 0; i < tree->tree_nextsize; i++) { + con->next_recv_segs[i] = min - 1; + } + + int num_recvs = 0; + for (int32_t seg_index = 0; seg_index < min; seg_index++) + { + /* For each child */ + for (int32_t i = 0; i < tree->tree_nextsize; i++) { + recv_count = seg_count; + if (seg_index == (num_segs - 1)) { + recv_count = count - (ptrdiff_t) seg_count *(ptrdiff_t) seg_index; + } + char *temp_recv_buf = NULL; + ompi_coll_adapt_inbuf_t *inbuf = NULL; + /* Set inbuf, if it it first child, recv on rbuf, else recv on inbuf */ + if (i == 0 && sbuf != MPI_IN_PLACE && root == rank) { + temp_recv_buf = (char *) rbuf + (ptrdiff_t) seg_index *(ptrdiff_t) segment_increment; + } else { + inbuf = (ompi_coll_adapt_inbuf_t *) opal_free_list_wait(&con->inbuf_list); + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: In ireduce, alloc inbuf %p\n", rank, + (void *) inbuf)); + temp_recv_buf = inbuf->buff - lower_bound; + } + /* Get context */ + ompi_coll_adapt_reduce_context_t *context = + (ompi_coll_adapt_reduce_context_t *)opal_free_list_wait(mca_coll_adapt_component. + adapt_ireduce_context_free_list); + context->buff = temp_recv_buf; + context->seg_index = seg_index; + context->child_id = i; //the id of peer in in the tree + context->peer = tree->tree_next[i]; //the actual rank of the peer + context->con = con; + context->inbuf = inbuf; + + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: In ireduce, create irecv for seg %d, peer %d, recv_count %d, inbuf %p tag %d\n", + context->con->rank, context->seg_index, context->peer, + recv_count, (void *) inbuf, + con->ireduce_tag - seg_index)); + + /* Create a recv request */ + ompi_request_t *recv_req; + err = MCA_PML_CALL(irecv + (temp_recv_buf, recv_count, dtype, tree->tree_next[i], + con->ireduce_tag - seg_index, comm, &recv_req)); + if (MPI_SUCCESS != err) { + return err; + } + /* Set the recv callback */ + ompi_request_set_callback(recv_req, recv_cb, context); + + ++num_recvs; + } + } + } + + /* Leaf nodes */ + else { + /* Set up recv_list */ + min = mca_coll_adapt_component.adapt_ireduce_max_send_requests; + if (num_segs <= mca_coll_adapt_component.adapt_ireduce_max_send_requests) { + min = num_segs; + } + /* put all items into the recv_list that won't be sent immediately */ + for (int32_t seg_index = min; seg_index < num_segs; seg_index++) { + ompi_coll_adapt_item_t *item; + item = OBJ_NEW(ompi_coll_adapt_item_t); + item->id = seg_index; + item->count = tree->tree_nextsize; + opal_list_append(&con->recv_list, (opal_list_item_t *) item); + } + con->accumbuf = accumbuf; + con->ongoing_send = min; + for (int32_t seg_index = 0; seg_index < min; seg_index++) { + send_count = seg_count; + if (seg_index == (num_segs - 1)) { + send_count = count - (ptrdiff_t) seg_count *(ptrdiff_t) seg_index; + } + ompi_coll_adapt_reduce_context_t *context = + (ompi_coll_adapt_reduce_context_t *)opal_free_list_wait(mca_coll_adapt_component.adapt_ireduce_context_free_list); + context->buff = (char *) sbuf + (ptrdiff_t) seg_index * (ptrdiff_t) segment_increment; + context->seg_index = seg_index; + /* Actural rank of the peer */ + context->peer = tree->tree_prev; + context->con = con; + context->inbuf = NULL; + + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "[%d]: In ireduce, create isend to seg %d, peer %d, send_count %d tag %d\n", + context->con->rank, context->seg_index, context->peer, + send_count, con->ireduce_tag - context->seg_index)); + + /* Create send request */ + ompi_request_t *send_req; + err = MCA_PML_CALL(isend + (context->buff, send_count, dtype, tree->tree_prev, + con->ireduce_tag - context->seg_index, + sendmode, comm, &send_req)); + if (MPI_SUCCESS != err) { + return err; + } + + /* Set the send callback */ + ompi_request_set_callback(send_req, send_cb, context); + } + + } + + return MPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_item.c openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_item.c --- openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_item.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_item.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2014-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "coll_adapt_item.h" + +OBJ_CLASS_INSTANCE(ompi_coll_adapt_item_t, opal_list_item_t, + NULL, NULL); diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_item.h openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_item.h --- openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_item.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_item.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2014-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "opal/class/opal_list.h" +#include "coll_adapt_inbuf.h" + +struct ompi_coll_adapt_item_s { + opal_list_item_t super; + /* Fragment id */ + int id; + /* The number of children which have received the current segment */ + int count; +}; + +typedef struct ompi_coll_adapt_item_s ompi_coll_adapt_item_t; + +OBJ_CLASS_DECLARATION(ompi_coll_adapt_item_t); diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_module.c openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_module.c --- openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_module.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,200 @@ +/* + * Copyright (c) 2014-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include +#ifdef HAVE_STRING_H +#include +#endif /* HAVE_STRING_H */ +#ifdef HAVE_SCHED_H +#include +#endif /* HAVE_SCHED_H */ +#include +#ifdef HAVE_SYS_MMAN_H +#include +#endif /* HAVE_SYS_MMAN_H */ +#ifdef HAVE_UNISTD_H +#include +#endif /* HAVE_UNISTD_H */ + +#include "mpi.h" +#include "opal_stdint.h" +#include "opal/util/os_path.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/group/group.h" +#include "ompi/mca/coll/coll.h" +#include "ompi/mca/coll/base/base.h" +#include "ompi/mca/coll/base/coll_base_functions.h" +#include "ompi/proc/proc.h" +#include "coll_adapt.h" + +#include "ompi/mca/coll/base/coll_tags.h" +#include "ompi/mca/pml/pml.h" +#include "coll_adapt_algorithms.h" +#include "coll_adapt_topocache.h" + + +/* + * Local functions + */ + +/* + * Module constructor + */ +static void adapt_module_construct(mca_coll_adapt_module_t * module) +{ + module->topo_cache = NULL; + module->adapt_enabled = false; +} + +/* + * Module destructor + */ +static void adapt_module_destruct(mca_coll_adapt_module_t * module) +{ + if (NULL != module->topo_cache) { + adapt_topology_cache_item_t *item; + while (NULL != (item = (adapt_topology_cache_item_t*)opal_list_remove_first(module->topo_cache))) { + OBJ_RELEASE(item); + } + OBJ_RELEASE(module->topo_cache); + module->topo_cache = NULL; + } + module->adapt_enabled = false; +} + + +OBJ_CLASS_INSTANCE(mca_coll_adapt_module_t, + mca_coll_base_module_t, + adapt_module_construct, + adapt_module_destruct); + +/* + * In this macro, the following variables are supposed to have been declared + * in the caller: + * . ompi_communicator_t *comm + * . mca_coll_adapt_module_t *adapt_module + */ +#define ADAPT_SAVE_PREV_COLL_API(__api) \ + do { \ + adapt_module->previous_ ## __api = comm->c_coll->coll_ ## __api; \ + adapt_module->previous_ ## __api ## _module = comm->c_coll->coll_ ## __api ## _module; \ + if (!comm->c_coll->coll_ ## __api || !comm->c_coll->coll_ ## __api ## _module) { \ + opal_output_verbose(1, ompi_coll_base_framework.framework_output, \ + "(%d/%s): no underlying " # __api"; disqualifying myself", \ + comm->c_contextid, comm->c_name); \ + return OMPI_ERROR; \ + } \ + OBJ_RETAIN(adapt_module->previous_ ## __api ## _module); \ + } while(0) + + +/* + * Init module on the communicator + */ +static int adapt_module_enable(mca_coll_base_module_t * module, + struct ompi_communicator_t *comm) +{ + mca_coll_adapt_module_t * adapt_module = (mca_coll_adapt_module_t*) module; + + ADAPT_SAVE_PREV_COLL_API(reduce); + ADAPT_SAVE_PREV_COLL_API(ireduce); + + return OMPI_SUCCESS; +} + +/* + * Initial query function that is invoked during MPI_INIT, allowing + * this component to disqualify itself if it doesn't support the + * required level of thread support. This function is invoked exactly + * once. + */ +int ompi_coll_adapt_init_query(bool enable_progress_threads, bool enable_mpi_threads) +{ + return OMPI_SUCCESS; +} + +/* + * Invoked when there's a new communicator that has been created. + * Look at the communicator and decide which set of functions and + * priority we want to return. + */ +mca_coll_base_module_t *ompi_coll_adapt_comm_query(struct ompi_communicator_t * comm, + int *priority) +{ + mca_coll_adapt_module_t *adapt_module; + + /* If we're intercomm, or if there's only one process in the communicator */ + if (OMPI_COMM_IS_INTER(comm) || 1 == ompi_comm_size(comm)) { + opal_output_verbose(10, ompi_coll_base_framework.framework_output, + "coll:adapt:comm_query (%d/%s): intercomm, " + "comm is too small; disqualifying myself", + comm->c_contextid, comm->c_name); + return NULL; + } + + /* Get the priority level attached to this module. + If priority is less than or equal to 0, then the module is unavailable. */ + *priority = mca_coll_adapt_component.adapt_priority; + if (mca_coll_adapt_component.adapt_priority < 0) { + opal_output_verbose(10, ompi_coll_base_framework.framework_output, + "coll:adapt:comm_query (%d/%s): priority too low; " + "disqualifying myself", + comm->c_contextid, comm->c_name); + return NULL; + } + + adapt_module = OBJ_NEW(mca_coll_adapt_module_t); + if (NULL == adapt_module) { + return NULL; + } + + /* All is good -- return a module */ + adapt_module->super.coll_module_enable = adapt_module_enable; + adapt_module->super.ft_event = NULL; + adapt_module->super.coll_allgather = NULL; + adapt_module->super.coll_allgatherv = NULL; + adapt_module->super.coll_allreduce = NULL; + adapt_module->super.coll_alltoall = NULL; + adapt_module->super.coll_alltoallw = NULL; + adapt_module->super.coll_barrier = NULL; + adapt_module->super.coll_bcast = ompi_coll_adapt_bcast; + adapt_module->super.coll_exscan = NULL; + adapt_module->super.coll_gather = NULL; + adapt_module->super.coll_gatherv = NULL; + adapt_module->super.coll_reduce = ompi_coll_adapt_reduce; + adapt_module->super.coll_reduce_scatter = NULL; + adapt_module->super.coll_scan = NULL; + adapt_module->super.coll_scatter = NULL; + adapt_module->super.coll_scatterv = NULL; + adapt_module->super.coll_ibcast = ompi_coll_adapt_ibcast; + adapt_module->super.coll_ireduce = ompi_coll_adapt_ireduce; + adapt_module->super.coll_iallreduce = NULL; + + opal_output_verbose(10, ompi_coll_base_framework.framework_output, + "coll:adapt:comm_query (%d/%s): pick me! pick me!", + comm->c_contextid, comm->c_name); + return &(adapt_module->super); +} + +/* + * Free ADAPT request + */ +int ompi_coll_adapt_request_free(ompi_request_t ** request) +{ + OMPI_REQUEST_FINI(*request); + (*request)->req_state = OMPI_REQUEST_INVALID; + OBJ_RELEASE(*request); + *request = MPI_REQUEST_NULL; + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_reduce.c openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_reduce.c --- openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_reduce.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_reduce.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2014-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + + +#include "ompi/op/op.h" +#include "coll_adapt.h" +#include "coll_adapt_algorithms.h" + +/* MPI_Reduce and MPI_Ireduce in the ADAPT module only work for commutative operations */ +int ompi_coll_adapt_reduce(const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype, + struct ompi_op_t *op, int root, struct ompi_communicator_t *comm, + mca_coll_base_module_t * module) +{ + /* Fall-back if operation is commutative */ + if (!ompi_op_is_commute(op)){ + mca_coll_adapt_module_t *adapt_module = (mca_coll_adapt_module_t *) module; + OPAL_OUTPUT_VERBOSE((30, mca_coll_adapt_component.adapt_output, + "ADAPT cannot handle reduce with this (commutative) operation. It needs to fall back on another component\n")); + return adapt_module->previous_reduce(sbuf, rbuf, count, dtype, op, root, + comm, + adapt_module->previous_reduce_module); + } + + ompi_request_t *request = NULL; + int err = ompi_coll_adapt_ireduce(sbuf, rbuf, count, dtype, op, root, comm, &request, module); + if( MPI_SUCCESS != err ) { + if( NULL == request ) + return err; + } + ompi_request_wait(&request, MPI_STATUS_IGNORE); + return err; +} diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_topocache.c openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_topocache.c --- openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_topocache.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_topocache.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,105 @@ +/* + * Copyright (c) 2014-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "coll_adapt.h" +#include "coll_adapt_topocache.h" + +#include "ompi/communicator/communicator.h" + +static void destruct_topology_cache(adapt_topology_cache_item_t *item) +{ + if (NULL != item->tree) { + ompi_coll_base_topo_destroy_tree(&item->tree); + } +} + +OBJ_CLASS_INSTANCE(adapt_topology_cache_item_t, opal_list_item_t, + NULL, &destruct_topology_cache); + +static ompi_coll_tree_t *create_topology( + ompi_coll_adapt_algorithm_t algorithm, + int root, + struct ompi_communicator_t *comm) +{ + switch(algorithm) { + case OMPI_COLL_ADAPT_ALGORITHM_TUNED: + { + return NULL; + } + case OMPI_COLL_ADAPT_ALGORITHM_BINOMIAL: + { + return ompi_coll_base_topo_build_bmtree(comm, root); + } + case OMPI_COLL_ADAPT_ALGORITHM_IN_ORDER_BINOMIAL: + { + return ompi_coll_base_topo_build_in_order_bmtree(comm, root); + } + case OMPI_COLL_ADAPT_ALGORITHM_BINARY: + { + return ompi_coll_base_topo_build_tree(2, comm, root); + } + case OMPI_COLL_ADAPT_ALGORITHM_PIPELINE: + { + return ompi_coll_base_topo_build_chain(1, comm, root); + } + case OMPI_COLL_ADAPT_ALGORITHM_CHAIN: + { + return ompi_coll_base_topo_build_chain(4, comm, root); + } + case OMPI_COLL_ADAPT_ALGORITHM_LINEAR: + { + int fanout = ompi_comm_size(comm) - 1; + ompi_coll_tree_t *tree; + if (fanout < 1) { + tree = ompi_coll_base_topo_build_chain(1, comm, root); + } else if (fanout <= MAXTREEFANOUT) { + tree = ompi_coll_base_topo_build_tree(ompi_comm_size(comm) - 1, comm, root); + } else { + tree = ompi_coll_base_topo_build_tree(MAXTREEFANOUT, comm, root); + } + return tree; + } + default: + printf("WARN: unknown topology %d\n", algorithm); + return NULL; + } +} + +ompi_coll_tree_t* adapt_module_cached_topology( + mca_coll_base_module_t *module, + struct ompi_communicator_t *comm, + int root, + ompi_coll_adapt_algorithm_t algorithm) +{ + mca_coll_adapt_module_t *adapt_module = (mca_coll_adapt_module_t*)module; + adapt_topology_cache_item_t *item; + ompi_coll_tree_t * tree; + if (NULL != adapt_module->topo_cache) { + OPAL_LIST_FOREACH(item, adapt_module->topo_cache, adapt_topology_cache_item_t) { + if (item->root == root && item->algorithm == algorithm) { + return item->tree; + } + } + } else { + adapt_module->topo_cache = OBJ_NEW(opal_list_t); + } + + /* topology not found, create one */ + tree = create_topology(algorithm, root, comm); + + item = OBJ_NEW(adapt_topology_cache_item_t); + item->tree = tree; + item->root = root; + item->algorithm = algorithm; + opal_list_prepend(adapt_module->topo_cache, &item->super); + return tree; +} + diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_topocache.h openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_topocache.h --- openmpi-4.0.3/ompi/mca/coll/adapt/coll_adapt_topocache.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/coll_adapt_topocache.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2014-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Cisco Systems, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef MCA_COLL_ADAPT_TOPOCACHE_H +#define MCA_COLL_ADAPT_TOPOCACHE_H + +#include "opal/class/opal_list.h" +#include "ompi/mca/coll/coll.h" +#include "ompi/mca/coll/base/coll_base_topo.h" + +typedef struct adapt_topology_cache_item_t { + opal_list_item_t super; + ompi_coll_tree_t *tree; + int root; + ompi_coll_adapt_algorithm_t algorithm; +} adapt_topology_cache_item_t; + +OBJ_CLASS_DECLARATION(adapt_topology_cache_item_t); + + +OMPI_DECLSPEC ompi_coll_tree_t* adapt_module_cached_topology( + mca_coll_base_module_t *module, + struct ompi_communicator_t *comm, + int root, + ompi_coll_adapt_algorithm_t algorithm); + +#endif /* MCA_COLL_ADAPT_TOPOCACHE_H */ diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/Makefile.am openmpi-4.1.4/ompi/mca/coll/adapt/Makefile.am --- openmpi-4.0.3/ompi/mca/coll/adapt/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,51 @@ +# +# Copyright (c) 2014-2020 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + + +sources = \ + coll_adapt_component.c \ + coll_adapt_module.c \ + coll_adapt_bcast.c \ + coll_adapt_ibcast.c \ + coll_adapt_reduce.c \ + coll_adapt_ireduce.c \ + coll_adapt.h \ + coll_adapt_algorithms.h \ + coll_adapt_context.h \ + coll_adapt_context.c \ + coll_adapt_inbuf.c \ + coll_adapt_inbuf.h \ + coll_adapt_item.c \ + coll_adapt_item.h \ + coll_adapt_topocache.c \ + coll_adapt_topocache.h + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). + +component_noinst = +component_install = +if MCA_BUILD_ompi_coll_adapt_DSO +component_install += mca_coll_adapt.la +else +component_noinst += libmca_coll_adapt.la +endif + +mcacomponentdir = $(ompilibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_coll_adapt_la_SOURCES = $(sources) +mca_coll_adapt_la_LDFLAGS = -module -avoid-version +mca_coll_adapt_la_LIBADD = + +noinst_LTLIBRARIES = $(component_noinst) +libmca_coll_adapt_la_SOURCES =$(sources) +libmca_coll_adapt_la_LDFLAGS = -module -avoid-version diff -Nru openmpi-4.0.3/ompi/mca/coll/adapt/Makefile.in openmpi-4.1.4/ompi/mca/coll/adapt/Makefile.in --- openmpi-4.0.3/ompi/mca/coll/adapt/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/adapt/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,2129 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# +# Copyright (c) 2014-2020 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +@MCA_BUILD_ompi_coll_adapt_DSO_TRUE@am__append_1 = mca_coll_adapt.la +@MCA_BUILD_ompi_coll_adapt_DSO_FALSE@am__append_2 = libmca_coll_adapt.la +subdir = ompi/mca/coll/adapt +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/c_weak_symbols.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ + $(top_srcdir)/config/ompi_check_libfca.m4 \ + $(top_srcdir)/config/ompi_check_libhcoll.m4 \ + $(top_srcdir)/config/ompi_check_lustre.m4 \ + $(top_srcdir)/config/ompi_check_mxm.m4 \ + $(top_srcdir)/config/ompi_check_psm.m4 \ + $(top_srcdir)/config/ompi_check_psm2.m4 \ + $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ + $(top_srcdir)/config/ompi_check_ucx.m4 \ + $(top_srcdir)/config/ompi_config_files.m4 \ + $(top_srcdir)/config/ompi_configure_options.m4 \ + $(top_srcdir)/config/ompi_contrib.m4 \ + $(top_srcdir)/config/ompi_cxx_find_exception_flags.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_parameters.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_repository.m4 \ + $(top_srcdir)/config/ompi_cxx_have_exceptions.m4 \ + $(top_srcdir)/config/ompi_endpoint_tag.m4 \ + $(top_srcdir)/config/ompi_ext.m4 \ + $(top_srcdir)/config/ompi_find_mpi_aint_count_offset.m4 \ + $(top_srcdir)/config/ompi_fortran_check.m4 \ + $(top_srcdir)/config/ompi_fortran_check_abstract.m4 \ + $(top_srcdir)/config/ompi_fortran_check_asynchronous.m4 \ + $(top_srcdir)/config/ompi_fortran_check_bind_c.m4 \ + $(top_srcdir)/config/ompi_fortran_check_c_funloc.m4 \ + $(top_srcdir)/config/ompi_fortran_check_f08_assumed_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_ignore_tkr.m4 \ + $(top_srcdir)/config/ompi_fortran_check_interface.m4 \ + $(top_srcdir)/config/ompi_fortran_check_iso_fortran_env.m4 \ + $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ + $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ + $(top_srcdir)/config/ompi_fortran_check_private.m4 \ + $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ + $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ + $(top_srcdir)/config/ompi_fortran_check_real16_c_equiv.m4 \ + $(top_srcdir)/config/ompi_fortran_check_storage_size.m4 \ + $(top_srcdir)/config/ompi_fortran_check_type.m4 \ + $(top_srcdir)/config/ompi_fortran_check_use_only.m4 \ + $(top_srcdir)/config/ompi_fortran_find_ext_symbol_convention.m4 \ + $(top_srcdir)/config/ompi_fortran_find_module_include_flag.m4 \ + $(top_srcdir)/config/ompi_fortran_get_alignment.m4 \ + $(top_srcdir)/config/ompi_fortran_get_handle_max.m4 \ + $(top_srcdir)/config/ompi_fortran_get_kind_value.m4 \ + $(top_srcdir)/config/ompi_fortran_get_sizeof.m4 \ + $(top_srcdir)/config/ompi_fortran_get_value_true.m4 \ + $(top_srcdir)/config/ompi_interix.m4 \ + $(top_srcdir)/config/ompi_setup_contrib.m4 \ + $(top_srcdir)/config/ompi_setup_cxx.m4 \ + $(top_srcdir)/config/ompi_setup_fc.m4 \ + $(top_srcdir)/config/ompi_setup_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_ext.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_fortran.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_profiling.m4 \ + $(top_srcdir)/config/opal_case_sensitive_fs_setup.m4 \ + $(top_srcdir)/config/opal_check_alps.m4 \ + $(top_srcdir)/config/opal_check_attributes.m4 \ + $(top_srcdir)/config/opal_check_broken_qsort.m4 \ + $(top_srcdir)/config/opal_check_cma.m4 \ + $(top_srcdir)/config/opal_check_compiler_version.m4 \ + $(top_srcdir)/config/opal_check_compiler_works.m4 \ + $(top_srcdir)/config/opal_check_cray_pmi.m4 \ + $(top_srcdir)/config/opal_check_cuda.m4 \ + $(top_srcdir)/config/opal_check_icc.m4 \ + $(top_srcdir)/config/opal_check_ident.m4 \ + $(top_srcdir)/config/opal_check_knem.m4 \ + $(top_srcdir)/config/opal_check_libnl.m4 \ + $(top_srcdir)/config/opal_check_offsetof.m4 \ + $(top_srcdir)/config/opal_check_ofi.m4 \ + $(top_srcdir)/config/opal_check_openfabrics.m4 \ + $(top_srcdir)/config/opal_check_os_flavors.m4 \ + $(top_srcdir)/config/opal_check_package.m4 \ + $(top_srcdir)/config/opal_check_pmi.m4 \ + $(top_srcdir)/config/opal_check_portals4.m4 \ + $(top_srcdir)/config/opal_check_ps.m4 \ + $(top_srcdir)/config/opal_check_pthread_pids.m4 \ + $(top_srcdir)/config/opal_check_singularity.m4 \ + $(top_srcdir)/config/opal_check_ugni.m4 \ + $(top_srcdir)/config/opal_check_vendor.m4 \ + $(top_srcdir)/config/opal_check_verbs.m4 \ + $(top_srcdir)/config/opal_check_visibility.m4 \ + $(top_srcdir)/config/opal_check_withdir.m4 \ + $(top_srcdir)/config/opal_check_xpmem.m4 \ + $(top_srcdir)/config/opal_config_asm.m4 \ + $(top_srcdir)/config/opal_config_files.m4 \ + $(top_srcdir)/config/opal_config_pthreads.m4 \ + $(top_srcdir)/config/opal_config_subdir.m4 \ + $(top_srcdir)/config/opal_config_subdir_args.m4 \ + $(top_srcdir)/config/opal_config_threads.m4 \ + $(top_srcdir)/config/opal_configure_options.m4 \ + $(top_srcdir)/config/opal_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/opal_find_type.m4 \ + $(top_srcdir)/config/opal_functions.m4 \ + $(top_srcdir)/config/opal_lang_link_with_c.m4 \ + $(top_srcdir)/config/opal_load_platform.m4 \ + $(top_srcdir)/config/opal_mca.m4 \ + $(top_srcdir)/config/opal_save_version.m4 \ + $(top_srcdir)/config/opal_search_libs.m4 \ + $(top_srcdir)/config/opal_set_lib_prefix.m4 \ + $(top_srcdir)/config/opal_set_mca_prefix.m4 \ + $(top_srcdir)/config/opal_setup_cc.m4 \ + $(top_srcdir)/config/opal_setup_cli.m4 \ + $(top_srcdir)/config/opal_setup_cxx.m4 \ + $(top_srcdir)/config/opal_setup_ft.m4 \ + $(top_srcdir)/config/opal_setup_wrappers.m4 \ + $(top_srcdir)/config/opal_setup_zlib.m4 \ + $(top_srcdir)/config/opal_strip_optflags.m4 \ + $(top_srcdir)/config/opal_summary.m4 \ + $(top_srcdir)/config/opal_try_assemble.m4 \ + $(top_srcdir)/config/orte_check_lsf.m4 \ + $(top_srcdir)/config/orte_check_moab.m4 \ + $(top_srcdir)/config/orte_check_sge.m4 \ + $(top_srcdir)/config/orte_check_slurm.m4 \ + $(top_srcdir)/config/orte_check_tm.m4 \ + $(top_srcdir)/config/orte_config_files.m4 \ + $(top_srcdir)/config/orte_configure_options.m4 \ + $(top_srcdir)/config/orte_setup_debugger_flags.m4 \ + $(top_srcdir)/config/oshmem_config_files.m4 \ + $(top_srcdir)/config/oshmem_configure_options.m4 \ + $(top_srcdir)/config/oshmem_setup_profiling.m4 \ + $(top_srcdir)/config/pkg.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/opal/mca/backtrace/configure.m4 \ + $(top_srcdir)/opal/mca/dl/configure.m4 \ + $(top_srcdir)/opal/mca/event/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/configure.m4 \ + $(top_srcdir)/opal/mca/memcpy/configure.m4 \ + $(top_srcdir)/opal/mca/memory/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/configure.m4 \ + $(top_srcdir)/opal/mca/timer/configure.m4 \ + $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/common/sm/configure.m4 \ + $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs_usnic/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ + $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ + $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ + $(top_srcdir)/opal/mca/btl/smcuda/configure.m4 \ + $(top_srcdir)/opal/mca/btl/tcp/configure.m4 \ + $(top_srcdir)/opal/mca/btl/uct/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ugni/configure.m4 \ + $(top_srcdir)/opal/mca/btl/usnic/configure.m4 \ + $(top_srcdir)/opal/mca/btl/vader/configure.m4 \ + $(top_srcdir)/opal/mca/crs/self/configure.m4 \ + $(top_srcdir)/opal/mca/dl/dlopen/configure.m4 \ + $(top_srcdir)/opal/mca/dl/libltdl/configure.m4 \ + $(top_srcdir)/opal/mca/event/external/configure.m4 \ + $(top_srcdir)/opal/mca/event/libevent2022/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/external/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_pkg.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_attributes.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_visibility.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_vendor.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_components.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_internal.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/netloc.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/linux_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/posix_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/solaris_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/config/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/env/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/valgrind/configure.m4 \ + $(top_srcdir)/opal/mca/memory/malloc_solaris/configure.m4 \ + $(top_srcdir)/opal/mca/memory/patcher/configure.m4 \ + $(top_srcdir)/opal/mca/mpool/memkind/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/linux/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/overwrite/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/cray/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext1x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext2x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/flux/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/pmix3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s1/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s2/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/linux/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/test/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/gpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/rgpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/udreg/configure.m4 \ + $(top_srcdir)/opal/mca/reachable/netlink/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/mmap/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/posix/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/sysv/configure.m4 \ + $(top_srcdir)/opal/mca/timer/altix/configure.m4 \ + $(top_srcdir)/opal/mca/timer/darwin/configure.m4 \ + $(top_srcdir)/opal/mca/timer/linux/configure.m4 \ + $(top_srcdir)/opal/mca/timer/solaris/configure.m4 \ + $(top_srcdir)/orte/mca/common/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ess/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ess/tm/configure.m4 \ + $(top_srcdir)/orte/mca/odls/alps/configure.m4 \ + $(top_srcdir)/orte/mca/odls/default/configure.m4 \ + $(top_srcdir)/orte/mca/odls/pspawn/configure.m4 \ + $(top_srcdir)/orte/mca/oob/alps/configure.m4 \ + $(top_srcdir)/orte/mca/oob/tcp/configure.m4 \ + $(top_srcdir)/orte/mca/plm/alps/configure.m4 \ + $(top_srcdir)/orte/mca/plm/isolated/configure.m4 \ + $(top_srcdir)/orte/mca/plm/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/plm/rsh/configure.m4 \ + $(top_srcdir)/orte/mca/plm/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/plm/tm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ras/gridengine/configure.m4 \ + $(top_srcdir)/orte/mca/ras/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/snapc/full/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/central/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/stage/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/configure.m4 \ + $(top_srcdir)/ompi/mca/fcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/configure.m4 \ + $(top_srcdir)/ompi/mca/hook/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/configure.m4 \ + $(top_srcdir)/ompi/mca/common/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/common/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/bml/r2/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/cuda/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/fca/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ + $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ + $(top_srcdir)/ompi/mca/io/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/io/romio321/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/ofi/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/rdma/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/crcpw/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ob1/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/v/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/yalla/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/orte/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/pmix/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/sm/configure.m4 \ + $(top_srcdir)/ompi/mca/topo/treematch/configure.m4 \ + $(top_srcdir)/oshmem/mca/memheap/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/sysv/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/verbs/configure.m4 \ + $(top_srcdir)/ompi/mpiext/affinity/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cr/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cuda/configure.m4 \ + $(top_srcdir)/ompi/mpiext/pcollreq/configure.m4 \ + $(top_srcdir)/ompi/contrib/libompitrace/configure.m4 \ + $(top_srcdir)/config/opal_get_version.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/opal/include/opal_config.h \ + $(top_builddir)/ompi/include/mpi.h \ + $(top_builddir)/oshmem/include/shmem.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen/config.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen/config.h \ + $(top_builddir)/ompi/mpiext/cuda/c/mpiext_cuda_c.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(mcacomponentdir)" +LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) +libmca_coll_adapt_la_LIBADD = +am__objects_1 = coll_adapt_component.lo coll_adapt_module.lo \ + coll_adapt_bcast.lo coll_adapt_ibcast.lo coll_adapt_reduce.lo \ + coll_adapt_ireduce.lo coll_adapt_context.lo \ + coll_adapt_inbuf.lo coll_adapt_item.lo coll_adapt_topocache.lo +am_libmca_coll_adapt_la_OBJECTS = $(am__objects_1) +libmca_coll_adapt_la_OBJECTS = $(am_libmca_coll_adapt_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libmca_coll_adapt_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libmca_coll_adapt_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_ompi_coll_adapt_DSO_FALSE@am_libmca_coll_adapt_la_rpath = +mca_coll_adapt_la_DEPENDENCIES = +am_mca_coll_adapt_la_OBJECTS = $(am__objects_1) +mca_coll_adapt_la_OBJECTS = $(am_mca_coll_adapt_la_OBJECTS) +mca_coll_adapt_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(mca_coll_adapt_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +@MCA_BUILD_ompi_coll_adapt_DSO_TRUE@am_mca_coll_adapt_la_rpath = \ +@MCA_BUILD_ompi_coll_adapt_DSO_TRUE@ -rpath $(mcacomponentdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/opal/include -I$(top_builddir)/ompi/include -I$(top_builddir)/oshmem/include -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen -I$(top_builddir)/ompi/mpiext/cuda/c +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libmca_coll_adapt_la_SOURCES) $(mca_coll_adapt_la_SOURCES) +DIST_SOURCES = $(libmca_coll_adapt_la_SOURCES) \ + $(mca_coll_adapt_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/config/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMCA_PARAM_SETS_DIR = @AMCA_PARAM_SETS_DIR@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BASH = @BASH@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAGS_WITHOUT_OPTFLAGS = @CFLAGS_WITHOUT_OPTFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CRAY_ALPSLLI_CFLAGS = @CRAY_ALPSLLI_CFLAGS@ +CRAY_ALPSLLI_LIBS = @CRAY_ALPSLLI_LIBS@ +CRAY_ALPSLLI_STATIC_LIBS = @CRAY_ALPSLLI_STATIC_LIBS@ +CRAY_ALPSUTIL_CFLAGS = @CRAY_ALPSUTIL_CFLAGS@ +CRAY_ALPSUTIL_LIBS = @CRAY_ALPSUTIL_LIBS@ +CRAY_ALPSUTIL_STATIC_LIBS = @CRAY_ALPSUTIL_STATIC_LIBS@ +CRAY_ALPS_CFLAGS = @CRAY_ALPS_CFLAGS@ +CRAY_ALPS_LIBS = @CRAY_ALPS_LIBS@ +CRAY_ALPS_STATIC_LIBS = @CRAY_ALPS_STATIC_LIBS@ +CRAY_PMI_CFLAGS = @CRAY_PMI_CFLAGS@ +CRAY_PMI_LIBS = @CRAY_PMI_LIBS@ +CRAY_PMI_STATIC_LIBS = @CRAY_PMI_STATIC_LIBS@ +CRAY_UDREG_CFLAGS = @CRAY_UDREG_CFLAGS@ +CRAY_UDREG_LIBS = @CRAY_UDREG_LIBS@ +CRAY_UGNI_CFLAGS = @CRAY_UGNI_CFLAGS@ +CRAY_UGNI_LIBS = @CRAY_UGNI_LIBS@ +CRAY_WLM_DETECT_CFLAGS = @CRAY_WLM_DETECT_CFLAGS@ +CRAY_WLM_DETECT_LIBS = @CRAY_WLM_DETECT_LIBS@ +CRAY_WLM_DETECT_STATIC_LIBS = @CRAY_WLM_DETECT_STATIC_LIBS@ +CRAY_XPMEM_CFLAGS = @CRAY_XPMEM_CFLAGS@ +CRAY_XPMEM_LIBS = @CRAY_XPMEM_LIBS@ +CRAY_XPMEM_STATIC_LIBS = @CRAY_XPMEM_STATIC_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXCPPFLAGS = @CXXCPPFLAGS@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUGGER_CFLAGS = @DEBUGGER_CFLAGS@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FC = @FC@ +FCFLAGS = @FCFLAGS@ +FCFLAGS_f = @FCFLAGS_f@ +FCFLAGS_f90 = @FCFLAGS_f90@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLUX_PMI_CFLAGS = @FLUX_PMI_CFLAGS@ +FLUX_PMI_LIBS = @FLUX_PMI_LIBS@ +GREP = @GREP@ +HWLOC_CFLAGS = @HWLOC_CFLAGS@ +HWLOC_CPPFLAGS = @HWLOC_CPPFLAGS@ +HWLOC_CUDA_LIBS = @HWLOC_CUDA_LIBS@ +HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@ +HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@ +HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@ +HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@ +HWLOC_GL_LIBS = @HWLOC_GL_LIBS@ +HWLOC_HAVE_LIBXML2 = @HWLOC_HAVE_LIBXML2@ +HWLOC_HAVE_NVML = @HWLOC_HAVE_NVML@ +HWLOC_HAVE_OPENCL = @HWLOC_HAVE_OPENCL@ +HWLOC_LDFLAGS = @HWLOC_LDFLAGS@ +HWLOC_LIBS = @HWLOC_LIBS@ +HWLOC_LIBS_PRIVATE = @HWLOC_LIBS_PRIVATE@ +HWLOC_LIBXML2_CFLAGS = @HWLOC_LIBXML2_CFLAGS@ +HWLOC_LIBXML2_LIBS = @HWLOC_LIBXML2_LIBS@ +HWLOC_MS_LIB = @HWLOC_MS_LIB@ +HWLOC_MS_LIB_ARCH = @HWLOC_MS_LIB_ARCH@ +HWLOC_NVML_LIBS = @HWLOC_NVML_LIBS@ +HWLOC_OPENCL_CFLAGS = @HWLOC_OPENCL_CFLAGS@ +HWLOC_OPENCL_LDFLAGS = @HWLOC_OPENCL_LDFLAGS@ +HWLOC_OPENCL_LIBS = @HWLOC_OPENCL_LIBS@ +HWLOC_PCIACCESS_CFLAGS = @HWLOC_PCIACCESS_CFLAGS@ +HWLOC_PCIACCESS_LIBS = @HWLOC_PCIACCESS_LIBS@ +HWLOC_PLUGINS_DIR = @HWLOC_PLUGINS_DIR@ +HWLOC_PLUGINS_PATH = @HWLOC_PLUGINS_PATH@ +HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@ +HWLOC_REQUIRES = @HWLOC_REQUIRES@ +HWLOC_VERSION = @HWLOC_VERSION@ +HWLOC_X11_CPPFLAGS = @HWLOC_X11_CPPFLAGS@ +HWLOC_X11_LIBS = @HWLOC_X11_LIBS@ +HWLOC_top_builddir = @HWLOC_top_builddir@ +HWLOC_top_srcdir = @HWLOC_top_srcdir@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JAR = @JAR@ +JAVAC = @JAVAC@ +JAVADOC = @JAVADOC@ +JAVAH = @JAVAH@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ +MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ +MCA_ompi_FRAMEWORKS_SUBDIRS = @MCA_ompi_FRAMEWORKS_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_ompi_FRAMEWORK_LIBS = @MCA_ompi_FRAMEWORK_LIBS@ +MCA_ompi_bml_ALL_COMPONENTS = @MCA_ompi_bml_ALL_COMPONENTS@ +MCA_ompi_bml_ALL_SUBDIRS = @MCA_ompi_bml_ALL_SUBDIRS@ +MCA_ompi_bml_DSO_COMPONENTS = @MCA_ompi_bml_DSO_COMPONENTS@ +MCA_ompi_bml_DSO_SUBDIRS = @MCA_ompi_bml_DSO_SUBDIRS@ +MCA_ompi_bml_STATIC_COMPONENTS = @MCA_ompi_bml_STATIC_COMPONENTS@ +MCA_ompi_bml_STATIC_LTLIBS = @MCA_ompi_bml_STATIC_LTLIBS@ +MCA_ompi_bml_STATIC_SUBDIRS = @MCA_ompi_bml_STATIC_SUBDIRS@ +MCA_ompi_coll_ALL_COMPONENTS = @MCA_ompi_coll_ALL_COMPONENTS@ +MCA_ompi_coll_ALL_SUBDIRS = @MCA_ompi_coll_ALL_SUBDIRS@ +MCA_ompi_coll_DSO_COMPONENTS = @MCA_ompi_coll_DSO_COMPONENTS@ +MCA_ompi_coll_DSO_SUBDIRS = @MCA_ompi_coll_DSO_SUBDIRS@ +MCA_ompi_coll_STATIC_COMPONENTS = @MCA_ompi_coll_STATIC_COMPONENTS@ +MCA_ompi_coll_STATIC_LTLIBS = @MCA_ompi_coll_STATIC_LTLIBS@ +MCA_ompi_coll_STATIC_SUBDIRS = @MCA_ompi_coll_STATIC_SUBDIRS@ +MCA_ompi_common_ALL_COMPONENTS = @MCA_ompi_common_ALL_COMPONENTS@ +MCA_ompi_common_ALL_SUBDIRS = @MCA_ompi_common_ALL_SUBDIRS@ +MCA_ompi_common_DSO_COMPONENTS = @MCA_ompi_common_DSO_COMPONENTS@ +MCA_ompi_common_DSO_SUBDIRS = @MCA_ompi_common_DSO_SUBDIRS@ +MCA_ompi_common_STATIC_COMPONENTS = @MCA_ompi_common_STATIC_COMPONENTS@ +MCA_ompi_common_STATIC_LTLIBS = @MCA_ompi_common_STATIC_LTLIBS@ +MCA_ompi_common_STATIC_SUBDIRS = @MCA_ompi_common_STATIC_SUBDIRS@ +MCA_ompi_crcp_ALL_COMPONENTS = @MCA_ompi_crcp_ALL_COMPONENTS@ +MCA_ompi_crcp_ALL_SUBDIRS = @MCA_ompi_crcp_ALL_SUBDIRS@ +MCA_ompi_crcp_DSO_COMPONENTS = @MCA_ompi_crcp_DSO_COMPONENTS@ +MCA_ompi_crcp_DSO_SUBDIRS = @MCA_ompi_crcp_DSO_SUBDIRS@ +MCA_ompi_crcp_STATIC_COMPONENTS = @MCA_ompi_crcp_STATIC_COMPONENTS@ +MCA_ompi_crcp_STATIC_LTLIBS = @MCA_ompi_crcp_STATIC_LTLIBS@ +MCA_ompi_crcp_STATIC_SUBDIRS = @MCA_ompi_crcp_STATIC_SUBDIRS@ +MCA_ompi_fbtl_ALL_COMPONENTS = @MCA_ompi_fbtl_ALL_COMPONENTS@ +MCA_ompi_fbtl_ALL_SUBDIRS = @MCA_ompi_fbtl_ALL_SUBDIRS@ +MCA_ompi_fbtl_DSO_COMPONENTS = @MCA_ompi_fbtl_DSO_COMPONENTS@ +MCA_ompi_fbtl_DSO_SUBDIRS = @MCA_ompi_fbtl_DSO_SUBDIRS@ +MCA_ompi_fbtl_STATIC_COMPONENTS = @MCA_ompi_fbtl_STATIC_COMPONENTS@ +MCA_ompi_fbtl_STATIC_LTLIBS = @MCA_ompi_fbtl_STATIC_LTLIBS@ +MCA_ompi_fbtl_STATIC_SUBDIRS = @MCA_ompi_fbtl_STATIC_SUBDIRS@ +MCA_ompi_fcoll_ALL_COMPONENTS = @MCA_ompi_fcoll_ALL_COMPONENTS@ +MCA_ompi_fcoll_ALL_SUBDIRS = @MCA_ompi_fcoll_ALL_SUBDIRS@ +MCA_ompi_fcoll_DSO_COMPONENTS = @MCA_ompi_fcoll_DSO_COMPONENTS@ +MCA_ompi_fcoll_DSO_SUBDIRS = @MCA_ompi_fcoll_DSO_SUBDIRS@ +MCA_ompi_fcoll_STATIC_COMPONENTS = @MCA_ompi_fcoll_STATIC_COMPONENTS@ +MCA_ompi_fcoll_STATIC_LTLIBS = @MCA_ompi_fcoll_STATIC_LTLIBS@ +MCA_ompi_fcoll_STATIC_SUBDIRS = @MCA_ompi_fcoll_STATIC_SUBDIRS@ +MCA_ompi_fs_ALL_COMPONENTS = @MCA_ompi_fs_ALL_COMPONENTS@ +MCA_ompi_fs_ALL_SUBDIRS = @MCA_ompi_fs_ALL_SUBDIRS@ +MCA_ompi_fs_DSO_COMPONENTS = @MCA_ompi_fs_DSO_COMPONENTS@ +MCA_ompi_fs_DSO_SUBDIRS = @MCA_ompi_fs_DSO_SUBDIRS@ +MCA_ompi_fs_STATIC_COMPONENTS = @MCA_ompi_fs_STATIC_COMPONENTS@ +MCA_ompi_fs_STATIC_LTLIBS = @MCA_ompi_fs_STATIC_LTLIBS@ +MCA_ompi_fs_STATIC_SUBDIRS = @MCA_ompi_fs_STATIC_SUBDIRS@ +MCA_ompi_hook_ALL_COMPONENTS = @MCA_ompi_hook_ALL_COMPONENTS@ +MCA_ompi_hook_ALL_SUBDIRS = @MCA_ompi_hook_ALL_SUBDIRS@ +MCA_ompi_hook_DSO_COMPONENTS = @MCA_ompi_hook_DSO_COMPONENTS@ +MCA_ompi_hook_DSO_SUBDIRS = @MCA_ompi_hook_DSO_SUBDIRS@ +MCA_ompi_hook_STATIC_COMPONENTS = @MCA_ompi_hook_STATIC_COMPONENTS@ +MCA_ompi_hook_STATIC_LTLIBS = @MCA_ompi_hook_STATIC_LTLIBS@ +MCA_ompi_hook_STATIC_SUBDIRS = @MCA_ompi_hook_STATIC_SUBDIRS@ +MCA_ompi_io_ALL_COMPONENTS = @MCA_ompi_io_ALL_COMPONENTS@ +MCA_ompi_io_ALL_SUBDIRS = @MCA_ompi_io_ALL_SUBDIRS@ +MCA_ompi_io_DSO_COMPONENTS = @MCA_ompi_io_DSO_COMPONENTS@ +MCA_ompi_io_DSO_SUBDIRS = @MCA_ompi_io_DSO_SUBDIRS@ +MCA_ompi_io_STATIC_COMPONENTS = @MCA_ompi_io_STATIC_COMPONENTS@ +MCA_ompi_io_STATIC_LTLIBS = @MCA_ompi_io_STATIC_LTLIBS@ +MCA_ompi_io_STATIC_SUBDIRS = @MCA_ompi_io_STATIC_SUBDIRS@ +MCA_ompi_mtl_ALL_COMPONENTS = @MCA_ompi_mtl_ALL_COMPONENTS@ +MCA_ompi_mtl_ALL_SUBDIRS = @MCA_ompi_mtl_ALL_SUBDIRS@ +MCA_ompi_mtl_DIRECT_CALL_HEADER = @MCA_ompi_mtl_DIRECT_CALL_HEADER@ +MCA_ompi_mtl_DSO_COMPONENTS = @MCA_ompi_mtl_DSO_COMPONENTS@ +MCA_ompi_mtl_DSO_SUBDIRS = @MCA_ompi_mtl_DSO_SUBDIRS@ +MCA_ompi_mtl_STATIC_COMPONENTS = @MCA_ompi_mtl_STATIC_COMPONENTS@ +MCA_ompi_mtl_STATIC_LTLIBS = @MCA_ompi_mtl_STATIC_LTLIBS@ +MCA_ompi_mtl_STATIC_SUBDIRS = @MCA_ompi_mtl_STATIC_SUBDIRS@ +MCA_ompi_op_ALL_COMPONENTS = @MCA_ompi_op_ALL_COMPONENTS@ +MCA_ompi_op_ALL_SUBDIRS = @MCA_ompi_op_ALL_SUBDIRS@ +MCA_ompi_op_DSO_COMPONENTS = @MCA_ompi_op_DSO_COMPONENTS@ +MCA_ompi_op_DSO_SUBDIRS = @MCA_ompi_op_DSO_SUBDIRS@ +MCA_ompi_op_STATIC_COMPONENTS = @MCA_ompi_op_STATIC_COMPONENTS@ +MCA_ompi_op_STATIC_LTLIBS = @MCA_ompi_op_STATIC_LTLIBS@ +MCA_ompi_op_STATIC_SUBDIRS = @MCA_ompi_op_STATIC_SUBDIRS@ +MCA_ompi_osc_ALL_COMPONENTS = @MCA_ompi_osc_ALL_COMPONENTS@ +MCA_ompi_osc_ALL_SUBDIRS = @MCA_ompi_osc_ALL_SUBDIRS@ +MCA_ompi_osc_DSO_COMPONENTS = @MCA_ompi_osc_DSO_COMPONENTS@ +MCA_ompi_osc_DSO_SUBDIRS = @MCA_ompi_osc_DSO_SUBDIRS@ +MCA_ompi_osc_STATIC_COMPONENTS = @MCA_ompi_osc_STATIC_COMPONENTS@ +MCA_ompi_osc_STATIC_LTLIBS = @MCA_ompi_osc_STATIC_LTLIBS@ +MCA_ompi_osc_STATIC_SUBDIRS = @MCA_ompi_osc_STATIC_SUBDIRS@ +MCA_ompi_pml_ALL_COMPONENTS = @MCA_ompi_pml_ALL_COMPONENTS@ +MCA_ompi_pml_ALL_SUBDIRS = @MCA_ompi_pml_ALL_SUBDIRS@ +MCA_ompi_pml_DIRECT_CALL_HEADER = @MCA_ompi_pml_DIRECT_CALL_HEADER@ +MCA_ompi_pml_DSO_COMPONENTS = @MCA_ompi_pml_DSO_COMPONENTS@ +MCA_ompi_pml_DSO_SUBDIRS = @MCA_ompi_pml_DSO_SUBDIRS@ +MCA_ompi_pml_STATIC_COMPONENTS = @MCA_ompi_pml_STATIC_COMPONENTS@ +MCA_ompi_pml_STATIC_LTLIBS = @MCA_ompi_pml_STATIC_LTLIBS@ +MCA_ompi_pml_STATIC_SUBDIRS = @MCA_ompi_pml_STATIC_SUBDIRS@ +MCA_ompi_rte_ALL_COMPONENTS = @MCA_ompi_rte_ALL_COMPONENTS@ +MCA_ompi_rte_ALL_SUBDIRS = @MCA_ompi_rte_ALL_SUBDIRS@ +MCA_ompi_rte_DSO_COMPONENTS = @MCA_ompi_rte_DSO_COMPONENTS@ +MCA_ompi_rte_DSO_SUBDIRS = @MCA_ompi_rte_DSO_SUBDIRS@ +MCA_ompi_rte_STATIC_COMPONENTS = @MCA_ompi_rte_STATIC_COMPONENTS@ +MCA_ompi_rte_STATIC_LTLIBS = @MCA_ompi_rte_STATIC_LTLIBS@ +MCA_ompi_rte_STATIC_SUBDIRS = @MCA_ompi_rte_STATIC_SUBDIRS@ +MCA_ompi_sharedfp_ALL_COMPONENTS = @MCA_ompi_sharedfp_ALL_COMPONENTS@ +MCA_ompi_sharedfp_ALL_SUBDIRS = @MCA_ompi_sharedfp_ALL_SUBDIRS@ +MCA_ompi_sharedfp_DSO_COMPONENTS = @MCA_ompi_sharedfp_DSO_COMPONENTS@ +MCA_ompi_sharedfp_DSO_SUBDIRS = @MCA_ompi_sharedfp_DSO_SUBDIRS@ +MCA_ompi_sharedfp_STATIC_COMPONENTS = @MCA_ompi_sharedfp_STATIC_COMPONENTS@ +MCA_ompi_sharedfp_STATIC_LTLIBS = @MCA_ompi_sharedfp_STATIC_LTLIBS@ +MCA_ompi_sharedfp_STATIC_SUBDIRS = @MCA_ompi_sharedfp_STATIC_SUBDIRS@ +MCA_ompi_topo_ALL_COMPONENTS = @MCA_ompi_topo_ALL_COMPONENTS@ +MCA_ompi_topo_ALL_SUBDIRS = @MCA_ompi_topo_ALL_SUBDIRS@ +MCA_ompi_topo_DSO_COMPONENTS = @MCA_ompi_topo_DSO_COMPONENTS@ +MCA_ompi_topo_DSO_SUBDIRS = @MCA_ompi_topo_DSO_SUBDIRS@ +MCA_ompi_topo_STATIC_COMPONENTS = @MCA_ompi_topo_STATIC_COMPONENTS@ +MCA_ompi_topo_STATIC_LTLIBS = @MCA_ompi_topo_STATIC_LTLIBS@ +MCA_ompi_topo_STATIC_SUBDIRS = @MCA_ompi_topo_STATIC_SUBDIRS@ +MCA_ompi_vprotocol_ALL_COMPONENTS = @MCA_ompi_vprotocol_ALL_COMPONENTS@ +MCA_ompi_vprotocol_ALL_SUBDIRS = @MCA_ompi_vprotocol_ALL_SUBDIRS@ +MCA_ompi_vprotocol_DSO_COMPONENTS = @MCA_ompi_vprotocol_DSO_COMPONENTS@ +MCA_ompi_vprotocol_DSO_SUBDIRS = @MCA_ompi_vprotocol_DSO_SUBDIRS@ +MCA_ompi_vprotocol_STATIC_COMPONENTS = @MCA_ompi_vprotocol_STATIC_COMPONENTS@ +MCA_ompi_vprotocol_STATIC_LTLIBS = @MCA_ompi_vprotocol_STATIC_LTLIBS@ +MCA_ompi_vprotocol_STATIC_SUBDIRS = @MCA_ompi_vprotocol_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORKS = @MCA_opal_FRAMEWORKS@ +MCA_opal_FRAMEWORKS_SUBDIRS = @MCA_opal_FRAMEWORKS_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORK_LIBS = @MCA_opal_FRAMEWORK_LIBS@ +MCA_opal_allocator_ALL_COMPONENTS = @MCA_opal_allocator_ALL_COMPONENTS@ +MCA_opal_allocator_ALL_SUBDIRS = @MCA_opal_allocator_ALL_SUBDIRS@ +MCA_opal_allocator_DSO_COMPONENTS = @MCA_opal_allocator_DSO_COMPONENTS@ +MCA_opal_allocator_DSO_SUBDIRS = @MCA_opal_allocator_DSO_SUBDIRS@ +MCA_opal_allocator_STATIC_COMPONENTS = @MCA_opal_allocator_STATIC_COMPONENTS@ +MCA_opal_allocator_STATIC_LTLIBS = @MCA_opal_allocator_STATIC_LTLIBS@ +MCA_opal_allocator_STATIC_SUBDIRS = @MCA_opal_allocator_STATIC_SUBDIRS@ +MCA_opal_backtrace_ALL_COMPONENTS = @MCA_opal_backtrace_ALL_COMPONENTS@ +MCA_opal_backtrace_ALL_SUBDIRS = @MCA_opal_backtrace_ALL_SUBDIRS@ +MCA_opal_backtrace_DSO_COMPONENTS = @MCA_opal_backtrace_DSO_COMPONENTS@ +MCA_opal_backtrace_DSO_SUBDIRS = @MCA_opal_backtrace_DSO_SUBDIRS@ +MCA_opal_backtrace_STATIC_COMPONENTS = @MCA_opal_backtrace_STATIC_COMPONENTS@ +MCA_opal_backtrace_STATIC_LTLIBS = @MCA_opal_backtrace_STATIC_LTLIBS@ +MCA_opal_backtrace_STATIC_SUBDIRS = @MCA_opal_backtrace_STATIC_SUBDIRS@ +MCA_opal_btl_ALL_COMPONENTS = @MCA_opal_btl_ALL_COMPONENTS@ +MCA_opal_btl_ALL_SUBDIRS = @MCA_opal_btl_ALL_SUBDIRS@ +MCA_opal_btl_DSO_COMPONENTS = @MCA_opal_btl_DSO_COMPONENTS@ +MCA_opal_btl_DSO_SUBDIRS = @MCA_opal_btl_DSO_SUBDIRS@ +MCA_opal_btl_STATIC_COMPONENTS = @MCA_opal_btl_STATIC_COMPONENTS@ +MCA_opal_btl_STATIC_LTLIBS = @MCA_opal_btl_STATIC_LTLIBS@ +MCA_opal_btl_STATIC_SUBDIRS = @MCA_opal_btl_STATIC_SUBDIRS@ +MCA_opal_common_ALL_COMPONENTS = @MCA_opal_common_ALL_COMPONENTS@ +MCA_opal_common_ALL_SUBDIRS = @MCA_opal_common_ALL_SUBDIRS@ +MCA_opal_common_DSO_COMPONENTS = @MCA_opal_common_DSO_COMPONENTS@ +MCA_opal_common_DSO_SUBDIRS = @MCA_opal_common_DSO_SUBDIRS@ +MCA_opal_common_STATIC_COMPONENTS = @MCA_opal_common_STATIC_COMPONENTS@ +MCA_opal_common_STATIC_LTLIBS = @MCA_opal_common_STATIC_LTLIBS@ +MCA_opal_common_STATIC_SUBDIRS = @MCA_opal_common_STATIC_SUBDIRS@ +MCA_opal_compress_ALL_COMPONENTS = @MCA_opal_compress_ALL_COMPONENTS@ +MCA_opal_compress_ALL_SUBDIRS = @MCA_opal_compress_ALL_SUBDIRS@ +MCA_opal_compress_DSO_COMPONENTS = @MCA_opal_compress_DSO_COMPONENTS@ +MCA_opal_compress_DSO_SUBDIRS = @MCA_opal_compress_DSO_SUBDIRS@ +MCA_opal_compress_STATIC_COMPONENTS = @MCA_opal_compress_STATIC_COMPONENTS@ +MCA_opal_compress_STATIC_LTLIBS = @MCA_opal_compress_STATIC_LTLIBS@ +MCA_opal_compress_STATIC_SUBDIRS = @MCA_opal_compress_STATIC_SUBDIRS@ +MCA_opal_crs_ALL_COMPONENTS = @MCA_opal_crs_ALL_COMPONENTS@ +MCA_opal_crs_ALL_SUBDIRS = @MCA_opal_crs_ALL_SUBDIRS@ +MCA_opal_crs_DSO_COMPONENTS = @MCA_opal_crs_DSO_COMPONENTS@ +MCA_opal_crs_DSO_SUBDIRS = @MCA_opal_crs_DSO_SUBDIRS@ +MCA_opal_crs_STATIC_COMPONENTS = @MCA_opal_crs_STATIC_COMPONENTS@ +MCA_opal_crs_STATIC_LTLIBS = @MCA_opal_crs_STATIC_LTLIBS@ +MCA_opal_crs_STATIC_SUBDIRS = @MCA_opal_crs_STATIC_SUBDIRS@ +MCA_opal_dl_ALL_COMPONENTS = @MCA_opal_dl_ALL_COMPONENTS@ +MCA_opal_dl_ALL_SUBDIRS = @MCA_opal_dl_ALL_SUBDIRS@ +MCA_opal_dl_DSO_COMPONENTS = @MCA_opal_dl_DSO_COMPONENTS@ +MCA_opal_dl_DSO_SUBDIRS = @MCA_opal_dl_DSO_SUBDIRS@ +MCA_opal_dl_STATIC_COMPONENTS = @MCA_opal_dl_STATIC_COMPONENTS@ +MCA_opal_dl_STATIC_LTLIBS = @MCA_opal_dl_STATIC_LTLIBS@ +MCA_opal_dl_STATIC_SUBDIRS = @MCA_opal_dl_STATIC_SUBDIRS@ +MCA_opal_event_ALL_COMPONENTS = @MCA_opal_event_ALL_COMPONENTS@ +MCA_opal_event_ALL_SUBDIRS = @MCA_opal_event_ALL_SUBDIRS@ +MCA_opal_event_DSO_COMPONENTS = @MCA_opal_event_DSO_COMPONENTS@ +MCA_opal_event_DSO_SUBDIRS = @MCA_opal_event_DSO_SUBDIRS@ +MCA_opal_event_STATIC_COMPONENTS = @MCA_opal_event_STATIC_COMPONENTS@ +MCA_opal_event_STATIC_LTLIBS = @MCA_opal_event_STATIC_LTLIBS@ +MCA_opal_event_STATIC_SUBDIRS = @MCA_opal_event_STATIC_SUBDIRS@ +MCA_opal_hwloc_ALL_COMPONENTS = @MCA_opal_hwloc_ALL_COMPONENTS@ +MCA_opal_hwloc_ALL_SUBDIRS = @MCA_opal_hwloc_ALL_SUBDIRS@ +MCA_opal_hwloc_DSO_COMPONENTS = @MCA_opal_hwloc_DSO_COMPONENTS@ +MCA_opal_hwloc_DSO_SUBDIRS = @MCA_opal_hwloc_DSO_SUBDIRS@ +MCA_opal_hwloc_STATIC_COMPONENTS = @MCA_opal_hwloc_STATIC_COMPONENTS@ +MCA_opal_hwloc_STATIC_LTLIBS = @MCA_opal_hwloc_STATIC_LTLIBS@ +MCA_opal_hwloc_STATIC_SUBDIRS = @MCA_opal_hwloc_STATIC_SUBDIRS@ +MCA_opal_if_ALL_COMPONENTS = @MCA_opal_if_ALL_COMPONENTS@ +MCA_opal_if_ALL_SUBDIRS = @MCA_opal_if_ALL_SUBDIRS@ +MCA_opal_if_DSO_COMPONENTS = @MCA_opal_if_DSO_COMPONENTS@ +MCA_opal_if_DSO_SUBDIRS = @MCA_opal_if_DSO_SUBDIRS@ +MCA_opal_if_STATIC_COMPONENTS = @MCA_opal_if_STATIC_COMPONENTS@ +MCA_opal_if_STATIC_LTLIBS = @MCA_opal_if_STATIC_LTLIBS@ +MCA_opal_if_STATIC_SUBDIRS = @MCA_opal_if_STATIC_SUBDIRS@ +MCA_opal_installdirs_ALL_COMPONENTS = @MCA_opal_installdirs_ALL_COMPONENTS@ +MCA_opal_installdirs_ALL_SUBDIRS = @MCA_opal_installdirs_ALL_SUBDIRS@ +MCA_opal_installdirs_DSO_COMPONENTS = @MCA_opal_installdirs_DSO_COMPONENTS@ +MCA_opal_installdirs_DSO_SUBDIRS = @MCA_opal_installdirs_DSO_SUBDIRS@ +MCA_opal_installdirs_STATIC_COMPONENTS = @MCA_opal_installdirs_STATIC_COMPONENTS@ +MCA_opal_installdirs_STATIC_LTLIBS = @MCA_opal_installdirs_STATIC_LTLIBS@ +MCA_opal_installdirs_STATIC_SUBDIRS = @MCA_opal_installdirs_STATIC_SUBDIRS@ +MCA_opal_memchecker_ALL_COMPONENTS = @MCA_opal_memchecker_ALL_COMPONENTS@ +MCA_opal_memchecker_ALL_SUBDIRS = @MCA_opal_memchecker_ALL_SUBDIRS@ +MCA_opal_memchecker_DSO_COMPONENTS = @MCA_opal_memchecker_DSO_COMPONENTS@ +MCA_opal_memchecker_DSO_SUBDIRS = @MCA_opal_memchecker_DSO_SUBDIRS@ +MCA_opal_memchecker_STATIC_COMPONENTS = @MCA_opal_memchecker_STATIC_COMPONENTS@ +MCA_opal_memchecker_STATIC_LTLIBS = @MCA_opal_memchecker_STATIC_LTLIBS@ +MCA_opal_memchecker_STATIC_SUBDIRS = @MCA_opal_memchecker_STATIC_SUBDIRS@ +MCA_opal_memcpy_ALL_COMPONENTS = @MCA_opal_memcpy_ALL_COMPONENTS@ +MCA_opal_memcpy_ALL_SUBDIRS = @MCA_opal_memcpy_ALL_SUBDIRS@ +MCA_opal_memcpy_DSO_COMPONENTS = @MCA_opal_memcpy_DSO_COMPONENTS@ +MCA_opal_memcpy_DSO_SUBDIRS = @MCA_opal_memcpy_DSO_SUBDIRS@ +MCA_opal_memcpy_STATIC_COMPONENTS = @MCA_opal_memcpy_STATIC_COMPONENTS@ +MCA_opal_memcpy_STATIC_LTLIBS = @MCA_opal_memcpy_STATIC_LTLIBS@ +MCA_opal_memcpy_STATIC_SUBDIRS = @MCA_opal_memcpy_STATIC_SUBDIRS@ +MCA_opal_memory_ALL_COMPONENTS = @MCA_opal_memory_ALL_COMPONENTS@ +MCA_opal_memory_ALL_SUBDIRS = @MCA_opal_memory_ALL_SUBDIRS@ +MCA_opal_memory_DSO_COMPONENTS = @MCA_opal_memory_DSO_COMPONENTS@ +MCA_opal_memory_DSO_SUBDIRS = @MCA_opal_memory_DSO_SUBDIRS@ +MCA_opal_memory_STATIC_COMPONENTS = @MCA_opal_memory_STATIC_COMPONENTS@ +MCA_opal_memory_STATIC_LTLIBS = @MCA_opal_memory_STATIC_LTLIBS@ +MCA_opal_memory_STATIC_SUBDIRS = @MCA_opal_memory_STATIC_SUBDIRS@ +MCA_opal_mpool_ALL_COMPONENTS = @MCA_opal_mpool_ALL_COMPONENTS@ +MCA_opal_mpool_ALL_SUBDIRS = @MCA_opal_mpool_ALL_SUBDIRS@ +MCA_opal_mpool_DSO_COMPONENTS = @MCA_opal_mpool_DSO_COMPONENTS@ +MCA_opal_mpool_DSO_SUBDIRS = @MCA_opal_mpool_DSO_SUBDIRS@ +MCA_opal_mpool_STATIC_COMPONENTS = @MCA_opal_mpool_STATIC_COMPONENTS@ +MCA_opal_mpool_STATIC_LTLIBS = @MCA_opal_mpool_STATIC_LTLIBS@ +MCA_opal_mpool_STATIC_SUBDIRS = @MCA_opal_mpool_STATIC_SUBDIRS@ +MCA_opal_patcher_ALL_COMPONENTS = @MCA_opal_patcher_ALL_COMPONENTS@ +MCA_opal_patcher_ALL_SUBDIRS = @MCA_opal_patcher_ALL_SUBDIRS@ +MCA_opal_patcher_DSO_COMPONENTS = @MCA_opal_patcher_DSO_COMPONENTS@ +MCA_opal_patcher_DSO_SUBDIRS = @MCA_opal_patcher_DSO_SUBDIRS@ +MCA_opal_patcher_STATIC_COMPONENTS = @MCA_opal_patcher_STATIC_COMPONENTS@ +MCA_opal_patcher_STATIC_LTLIBS = @MCA_opal_patcher_STATIC_LTLIBS@ +MCA_opal_patcher_STATIC_SUBDIRS = @MCA_opal_patcher_STATIC_SUBDIRS@ +MCA_opal_pmix_ALL_COMPONENTS = @MCA_opal_pmix_ALL_COMPONENTS@ +MCA_opal_pmix_ALL_SUBDIRS = @MCA_opal_pmix_ALL_SUBDIRS@ +MCA_opal_pmix_DSO_COMPONENTS = @MCA_opal_pmix_DSO_COMPONENTS@ +MCA_opal_pmix_DSO_SUBDIRS = @MCA_opal_pmix_DSO_SUBDIRS@ +MCA_opal_pmix_STATIC_COMPONENTS = @MCA_opal_pmix_STATIC_COMPONENTS@ +MCA_opal_pmix_STATIC_LTLIBS = @MCA_opal_pmix_STATIC_LTLIBS@ +MCA_opal_pmix_STATIC_SUBDIRS = @MCA_opal_pmix_STATIC_SUBDIRS@ +MCA_opal_pstat_ALL_COMPONENTS = @MCA_opal_pstat_ALL_COMPONENTS@ +MCA_opal_pstat_ALL_SUBDIRS = @MCA_opal_pstat_ALL_SUBDIRS@ +MCA_opal_pstat_DSO_COMPONENTS = @MCA_opal_pstat_DSO_COMPONENTS@ +MCA_opal_pstat_DSO_SUBDIRS = @MCA_opal_pstat_DSO_SUBDIRS@ +MCA_opal_pstat_STATIC_COMPONENTS = @MCA_opal_pstat_STATIC_COMPONENTS@ +MCA_opal_pstat_STATIC_LTLIBS = @MCA_opal_pstat_STATIC_LTLIBS@ +MCA_opal_pstat_STATIC_SUBDIRS = @MCA_opal_pstat_STATIC_SUBDIRS@ +MCA_opal_rcache_ALL_COMPONENTS = @MCA_opal_rcache_ALL_COMPONENTS@ +MCA_opal_rcache_ALL_SUBDIRS = @MCA_opal_rcache_ALL_SUBDIRS@ +MCA_opal_rcache_DSO_COMPONENTS = @MCA_opal_rcache_DSO_COMPONENTS@ +MCA_opal_rcache_DSO_SUBDIRS = @MCA_opal_rcache_DSO_SUBDIRS@ +MCA_opal_rcache_STATIC_COMPONENTS = @MCA_opal_rcache_STATIC_COMPONENTS@ +MCA_opal_rcache_STATIC_LTLIBS = @MCA_opal_rcache_STATIC_LTLIBS@ +MCA_opal_rcache_STATIC_SUBDIRS = @MCA_opal_rcache_STATIC_SUBDIRS@ +MCA_opal_reachable_ALL_COMPONENTS = @MCA_opal_reachable_ALL_COMPONENTS@ +MCA_opal_reachable_ALL_SUBDIRS = @MCA_opal_reachable_ALL_SUBDIRS@ +MCA_opal_reachable_DSO_COMPONENTS = @MCA_opal_reachable_DSO_COMPONENTS@ +MCA_opal_reachable_DSO_SUBDIRS = @MCA_opal_reachable_DSO_SUBDIRS@ +MCA_opal_reachable_STATIC_COMPONENTS = @MCA_opal_reachable_STATIC_COMPONENTS@ +MCA_opal_reachable_STATIC_LTLIBS = @MCA_opal_reachable_STATIC_LTLIBS@ +MCA_opal_reachable_STATIC_SUBDIRS = @MCA_opal_reachable_STATIC_SUBDIRS@ +MCA_opal_shmem_ALL_COMPONENTS = @MCA_opal_shmem_ALL_COMPONENTS@ +MCA_opal_shmem_ALL_SUBDIRS = @MCA_opal_shmem_ALL_SUBDIRS@ +MCA_opal_shmem_DSO_COMPONENTS = @MCA_opal_shmem_DSO_COMPONENTS@ +MCA_opal_shmem_DSO_SUBDIRS = @MCA_opal_shmem_DSO_SUBDIRS@ +MCA_opal_shmem_STATIC_COMPONENTS = @MCA_opal_shmem_STATIC_COMPONENTS@ +MCA_opal_shmem_STATIC_LTLIBS = @MCA_opal_shmem_STATIC_LTLIBS@ +MCA_opal_shmem_STATIC_SUBDIRS = @MCA_opal_shmem_STATIC_SUBDIRS@ +MCA_opal_timer_ALL_COMPONENTS = @MCA_opal_timer_ALL_COMPONENTS@ +MCA_opal_timer_ALL_SUBDIRS = @MCA_opal_timer_ALL_SUBDIRS@ +MCA_opal_timer_DSO_COMPONENTS = @MCA_opal_timer_DSO_COMPONENTS@ +MCA_opal_timer_DSO_SUBDIRS = @MCA_opal_timer_DSO_SUBDIRS@ +MCA_opal_timer_STATIC_COMPONENTS = @MCA_opal_timer_STATIC_COMPONENTS@ +MCA_opal_timer_STATIC_LTLIBS = @MCA_opal_timer_STATIC_LTLIBS@ +MCA_opal_timer_STATIC_SUBDIRS = @MCA_opal_timer_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORKS = @MCA_orte_FRAMEWORKS@ +MCA_orte_FRAMEWORKS_SUBDIRS = @MCA_orte_FRAMEWORKS_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORK_LIBS = @MCA_orte_FRAMEWORK_LIBS@ +MCA_orte_common_ALL_COMPONENTS = @MCA_orte_common_ALL_COMPONENTS@ +MCA_orte_common_ALL_SUBDIRS = @MCA_orte_common_ALL_SUBDIRS@ +MCA_orte_common_DSO_COMPONENTS = @MCA_orte_common_DSO_COMPONENTS@ +MCA_orte_common_DSO_SUBDIRS = @MCA_orte_common_DSO_SUBDIRS@ +MCA_orte_common_STATIC_COMPONENTS = @MCA_orte_common_STATIC_COMPONENTS@ +MCA_orte_common_STATIC_LTLIBS = @MCA_orte_common_STATIC_LTLIBS@ +MCA_orte_common_STATIC_SUBDIRS = @MCA_orte_common_STATIC_SUBDIRS@ +MCA_orte_errmgr_ALL_COMPONENTS = @MCA_orte_errmgr_ALL_COMPONENTS@ +MCA_orte_errmgr_ALL_SUBDIRS = @MCA_orte_errmgr_ALL_SUBDIRS@ +MCA_orte_errmgr_DSO_COMPONENTS = @MCA_orte_errmgr_DSO_COMPONENTS@ +MCA_orte_errmgr_DSO_SUBDIRS = @MCA_orte_errmgr_DSO_SUBDIRS@ +MCA_orte_errmgr_STATIC_COMPONENTS = @MCA_orte_errmgr_STATIC_COMPONENTS@ +MCA_orte_errmgr_STATIC_LTLIBS = @MCA_orte_errmgr_STATIC_LTLIBS@ +MCA_orte_errmgr_STATIC_SUBDIRS = @MCA_orte_errmgr_STATIC_SUBDIRS@ +MCA_orte_ess_ALL_COMPONENTS = @MCA_orte_ess_ALL_COMPONENTS@ +MCA_orte_ess_ALL_SUBDIRS = @MCA_orte_ess_ALL_SUBDIRS@ +MCA_orte_ess_DSO_COMPONENTS = @MCA_orte_ess_DSO_COMPONENTS@ +MCA_orte_ess_DSO_SUBDIRS = @MCA_orte_ess_DSO_SUBDIRS@ +MCA_orte_ess_STATIC_COMPONENTS = @MCA_orte_ess_STATIC_COMPONENTS@ +MCA_orte_ess_STATIC_LTLIBS = @MCA_orte_ess_STATIC_LTLIBS@ +MCA_orte_ess_STATIC_SUBDIRS = @MCA_orte_ess_STATIC_SUBDIRS@ +MCA_orte_filem_ALL_COMPONENTS = @MCA_orte_filem_ALL_COMPONENTS@ +MCA_orte_filem_ALL_SUBDIRS = @MCA_orte_filem_ALL_SUBDIRS@ +MCA_orte_filem_DSO_COMPONENTS = @MCA_orte_filem_DSO_COMPONENTS@ +MCA_orte_filem_DSO_SUBDIRS = @MCA_orte_filem_DSO_SUBDIRS@ +MCA_orte_filem_STATIC_COMPONENTS = @MCA_orte_filem_STATIC_COMPONENTS@ +MCA_orte_filem_STATIC_LTLIBS = @MCA_orte_filem_STATIC_LTLIBS@ +MCA_orte_filem_STATIC_SUBDIRS = @MCA_orte_filem_STATIC_SUBDIRS@ +MCA_orte_grpcomm_ALL_COMPONENTS = @MCA_orte_grpcomm_ALL_COMPONENTS@ +MCA_orte_grpcomm_ALL_SUBDIRS = @MCA_orte_grpcomm_ALL_SUBDIRS@ +MCA_orte_grpcomm_DSO_COMPONENTS = @MCA_orte_grpcomm_DSO_COMPONENTS@ +MCA_orte_grpcomm_DSO_SUBDIRS = @MCA_orte_grpcomm_DSO_SUBDIRS@ +MCA_orte_grpcomm_STATIC_COMPONENTS = @MCA_orte_grpcomm_STATIC_COMPONENTS@ +MCA_orte_grpcomm_STATIC_LTLIBS = @MCA_orte_grpcomm_STATIC_LTLIBS@ +MCA_orte_grpcomm_STATIC_SUBDIRS = @MCA_orte_grpcomm_STATIC_SUBDIRS@ +MCA_orte_iof_ALL_COMPONENTS = @MCA_orte_iof_ALL_COMPONENTS@ +MCA_orte_iof_ALL_SUBDIRS = @MCA_orte_iof_ALL_SUBDIRS@ +MCA_orte_iof_DSO_COMPONENTS = @MCA_orte_iof_DSO_COMPONENTS@ +MCA_orte_iof_DSO_SUBDIRS = @MCA_orte_iof_DSO_SUBDIRS@ +MCA_orte_iof_STATIC_COMPONENTS = @MCA_orte_iof_STATIC_COMPONENTS@ +MCA_orte_iof_STATIC_LTLIBS = @MCA_orte_iof_STATIC_LTLIBS@ +MCA_orte_iof_STATIC_SUBDIRS = @MCA_orte_iof_STATIC_SUBDIRS@ +MCA_orte_odls_ALL_COMPONENTS = @MCA_orte_odls_ALL_COMPONENTS@ +MCA_orte_odls_ALL_SUBDIRS = @MCA_orte_odls_ALL_SUBDIRS@ +MCA_orte_odls_DSO_COMPONENTS = @MCA_orte_odls_DSO_COMPONENTS@ +MCA_orte_odls_DSO_SUBDIRS = @MCA_orte_odls_DSO_SUBDIRS@ +MCA_orte_odls_STATIC_COMPONENTS = @MCA_orte_odls_STATIC_COMPONENTS@ +MCA_orte_odls_STATIC_LTLIBS = @MCA_orte_odls_STATIC_LTLIBS@ +MCA_orte_odls_STATIC_SUBDIRS = @MCA_orte_odls_STATIC_SUBDIRS@ +MCA_orte_oob_ALL_COMPONENTS = @MCA_orte_oob_ALL_COMPONENTS@ +MCA_orte_oob_ALL_SUBDIRS = @MCA_orte_oob_ALL_SUBDIRS@ +MCA_orte_oob_DSO_COMPONENTS = @MCA_orte_oob_DSO_COMPONENTS@ +MCA_orte_oob_DSO_SUBDIRS = @MCA_orte_oob_DSO_SUBDIRS@ +MCA_orte_oob_STATIC_COMPONENTS = @MCA_orte_oob_STATIC_COMPONENTS@ +MCA_orte_oob_STATIC_LTLIBS = @MCA_orte_oob_STATIC_LTLIBS@ +MCA_orte_oob_STATIC_SUBDIRS = @MCA_orte_oob_STATIC_SUBDIRS@ +MCA_orte_plm_ALL_COMPONENTS = @MCA_orte_plm_ALL_COMPONENTS@ +MCA_orte_plm_ALL_SUBDIRS = @MCA_orte_plm_ALL_SUBDIRS@ +MCA_orte_plm_DSO_COMPONENTS = @MCA_orte_plm_DSO_COMPONENTS@ +MCA_orte_plm_DSO_SUBDIRS = @MCA_orte_plm_DSO_SUBDIRS@ +MCA_orte_plm_STATIC_COMPONENTS = @MCA_orte_plm_STATIC_COMPONENTS@ +MCA_orte_plm_STATIC_LTLIBS = @MCA_orte_plm_STATIC_LTLIBS@ +MCA_orte_plm_STATIC_SUBDIRS = @MCA_orte_plm_STATIC_SUBDIRS@ +MCA_orte_ras_ALL_COMPONENTS = @MCA_orte_ras_ALL_COMPONENTS@ +MCA_orte_ras_ALL_SUBDIRS = @MCA_orte_ras_ALL_SUBDIRS@ +MCA_orte_ras_DSO_COMPONENTS = @MCA_orte_ras_DSO_COMPONENTS@ +MCA_orte_ras_DSO_SUBDIRS = @MCA_orte_ras_DSO_SUBDIRS@ +MCA_orte_ras_STATIC_COMPONENTS = @MCA_orte_ras_STATIC_COMPONENTS@ +MCA_orte_ras_STATIC_LTLIBS = @MCA_orte_ras_STATIC_LTLIBS@ +MCA_orte_ras_STATIC_SUBDIRS = @MCA_orte_ras_STATIC_SUBDIRS@ +MCA_orte_regx_ALL_COMPONENTS = @MCA_orte_regx_ALL_COMPONENTS@ +MCA_orte_regx_ALL_SUBDIRS = @MCA_orte_regx_ALL_SUBDIRS@ +MCA_orte_regx_DSO_COMPONENTS = @MCA_orte_regx_DSO_COMPONENTS@ +MCA_orte_regx_DSO_SUBDIRS = @MCA_orte_regx_DSO_SUBDIRS@ +MCA_orte_regx_STATIC_COMPONENTS = @MCA_orte_regx_STATIC_COMPONENTS@ +MCA_orte_regx_STATIC_LTLIBS = @MCA_orte_regx_STATIC_LTLIBS@ +MCA_orte_regx_STATIC_SUBDIRS = @MCA_orte_regx_STATIC_SUBDIRS@ +MCA_orte_rmaps_ALL_COMPONENTS = @MCA_orte_rmaps_ALL_COMPONENTS@ +MCA_orte_rmaps_ALL_SUBDIRS = @MCA_orte_rmaps_ALL_SUBDIRS@ +MCA_orte_rmaps_DSO_COMPONENTS = @MCA_orte_rmaps_DSO_COMPONENTS@ +MCA_orte_rmaps_DSO_SUBDIRS = @MCA_orte_rmaps_DSO_SUBDIRS@ +MCA_orte_rmaps_STATIC_COMPONENTS = @MCA_orte_rmaps_STATIC_COMPONENTS@ +MCA_orte_rmaps_STATIC_LTLIBS = @MCA_orte_rmaps_STATIC_LTLIBS@ +MCA_orte_rmaps_STATIC_SUBDIRS = @MCA_orte_rmaps_STATIC_SUBDIRS@ +MCA_orte_rml_ALL_COMPONENTS = @MCA_orte_rml_ALL_COMPONENTS@ +MCA_orte_rml_ALL_SUBDIRS = @MCA_orte_rml_ALL_SUBDIRS@ +MCA_orte_rml_DSO_COMPONENTS = @MCA_orte_rml_DSO_COMPONENTS@ +MCA_orte_rml_DSO_SUBDIRS = @MCA_orte_rml_DSO_SUBDIRS@ +MCA_orte_rml_STATIC_COMPONENTS = @MCA_orte_rml_STATIC_COMPONENTS@ +MCA_orte_rml_STATIC_LTLIBS = @MCA_orte_rml_STATIC_LTLIBS@ +MCA_orte_rml_STATIC_SUBDIRS = @MCA_orte_rml_STATIC_SUBDIRS@ +MCA_orte_routed_ALL_COMPONENTS = @MCA_orte_routed_ALL_COMPONENTS@ +MCA_orte_routed_ALL_SUBDIRS = @MCA_orte_routed_ALL_SUBDIRS@ +MCA_orte_routed_DSO_COMPONENTS = @MCA_orte_routed_DSO_COMPONENTS@ +MCA_orte_routed_DSO_SUBDIRS = @MCA_orte_routed_DSO_SUBDIRS@ +MCA_orte_routed_STATIC_COMPONENTS = @MCA_orte_routed_STATIC_COMPONENTS@ +MCA_orte_routed_STATIC_LTLIBS = @MCA_orte_routed_STATIC_LTLIBS@ +MCA_orte_routed_STATIC_SUBDIRS = @MCA_orte_routed_STATIC_SUBDIRS@ +MCA_orte_rtc_ALL_COMPONENTS = @MCA_orte_rtc_ALL_COMPONENTS@ +MCA_orte_rtc_ALL_SUBDIRS = @MCA_orte_rtc_ALL_SUBDIRS@ +MCA_orte_rtc_DSO_COMPONENTS = @MCA_orte_rtc_DSO_COMPONENTS@ +MCA_orte_rtc_DSO_SUBDIRS = @MCA_orte_rtc_DSO_SUBDIRS@ +MCA_orte_rtc_STATIC_COMPONENTS = @MCA_orte_rtc_STATIC_COMPONENTS@ +MCA_orte_rtc_STATIC_LTLIBS = @MCA_orte_rtc_STATIC_LTLIBS@ +MCA_orte_rtc_STATIC_SUBDIRS = @MCA_orte_rtc_STATIC_SUBDIRS@ +MCA_orte_schizo_ALL_COMPONENTS = @MCA_orte_schizo_ALL_COMPONENTS@ +MCA_orte_schizo_ALL_SUBDIRS = @MCA_orte_schizo_ALL_SUBDIRS@ +MCA_orte_schizo_DSO_COMPONENTS = @MCA_orte_schizo_DSO_COMPONENTS@ +MCA_orte_schizo_DSO_SUBDIRS = @MCA_orte_schizo_DSO_SUBDIRS@ +MCA_orte_schizo_STATIC_COMPONENTS = @MCA_orte_schizo_STATIC_COMPONENTS@ +MCA_orte_schizo_STATIC_LTLIBS = @MCA_orte_schizo_STATIC_LTLIBS@ +MCA_orte_schizo_STATIC_SUBDIRS = @MCA_orte_schizo_STATIC_SUBDIRS@ +MCA_orte_snapc_ALL_COMPONENTS = @MCA_orte_snapc_ALL_COMPONENTS@ +MCA_orte_snapc_ALL_SUBDIRS = @MCA_orte_snapc_ALL_SUBDIRS@ +MCA_orte_snapc_DSO_COMPONENTS = @MCA_orte_snapc_DSO_COMPONENTS@ +MCA_orte_snapc_DSO_SUBDIRS = @MCA_orte_snapc_DSO_SUBDIRS@ +MCA_orte_snapc_STATIC_COMPONENTS = @MCA_orte_snapc_STATIC_COMPONENTS@ +MCA_orte_snapc_STATIC_LTLIBS = @MCA_orte_snapc_STATIC_LTLIBS@ +MCA_orte_snapc_STATIC_SUBDIRS = @MCA_orte_snapc_STATIC_SUBDIRS@ +MCA_orte_sstore_ALL_COMPONENTS = @MCA_orte_sstore_ALL_COMPONENTS@ +MCA_orte_sstore_ALL_SUBDIRS = @MCA_orte_sstore_ALL_SUBDIRS@ +MCA_orte_sstore_DSO_COMPONENTS = @MCA_orte_sstore_DSO_COMPONENTS@ +MCA_orte_sstore_DSO_SUBDIRS = @MCA_orte_sstore_DSO_SUBDIRS@ +MCA_orte_sstore_STATIC_COMPONENTS = @MCA_orte_sstore_STATIC_COMPONENTS@ +MCA_orte_sstore_STATIC_LTLIBS = @MCA_orte_sstore_STATIC_LTLIBS@ +MCA_orte_sstore_STATIC_SUBDIRS = @MCA_orte_sstore_STATIC_SUBDIRS@ +MCA_orte_state_ALL_COMPONENTS = @MCA_orte_state_ALL_COMPONENTS@ +MCA_orte_state_ALL_SUBDIRS = @MCA_orte_state_ALL_SUBDIRS@ +MCA_orte_state_DSO_COMPONENTS = @MCA_orte_state_DSO_COMPONENTS@ +MCA_orte_state_DSO_SUBDIRS = @MCA_orte_state_DSO_SUBDIRS@ +MCA_orte_state_STATIC_COMPONENTS = @MCA_orte_state_STATIC_COMPONENTS@ +MCA_orte_state_STATIC_LTLIBS = @MCA_orte_state_STATIC_LTLIBS@ +MCA_orte_state_STATIC_SUBDIRS = @MCA_orte_state_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORKS = @MCA_oshmem_FRAMEWORKS@ +MCA_oshmem_FRAMEWORKS_SUBDIRS = @MCA_oshmem_FRAMEWORKS_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORK_LIBS = @MCA_oshmem_FRAMEWORK_LIBS@ +MCA_oshmem_atomic_ALL_COMPONENTS = @MCA_oshmem_atomic_ALL_COMPONENTS@ +MCA_oshmem_atomic_ALL_SUBDIRS = @MCA_oshmem_atomic_ALL_SUBDIRS@ +MCA_oshmem_atomic_DSO_COMPONENTS = @MCA_oshmem_atomic_DSO_COMPONENTS@ +MCA_oshmem_atomic_DSO_SUBDIRS = @MCA_oshmem_atomic_DSO_SUBDIRS@ +MCA_oshmem_atomic_STATIC_COMPONENTS = @MCA_oshmem_atomic_STATIC_COMPONENTS@ +MCA_oshmem_atomic_STATIC_LTLIBS = @MCA_oshmem_atomic_STATIC_LTLIBS@ +MCA_oshmem_atomic_STATIC_SUBDIRS = @MCA_oshmem_atomic_STATIC_SUBDIRS@ +MCA_oshmem_memheap_ALL_COMPONENTS = @MCA_oshmem_memheap_ALL_COMPONENTS@ +MCA_oshmem_memheap_ALL_SUBDIRS = @MCA_oshmem_memheap_ALL_SUBDIRS@ +MCA_oshmem_memheap_DIRECT_CALL_HEADER = @MCA_oshmem_memheap_DIRECT_CALL_HEADER@ +MCA_oshmem_memheap_DSO_COMPONENTS = @MCA_oshmem_memheap_DSO_COMPONENTS@ +MCA_oshmem_memheap_DSO_SUBDIRS = @MCA_oshmem_memheap_DSO_SUBDIRS@ +MCA_oshmem_memheap_STATIC_COMPONENTS = @MCA_oshmem_memheap_STATIC_COMPONENTS@ +MCA_oshmem_memheap_STATIC_LTLIBS = @MCA_oshmem_memheap_STATIC_LTLIBS@ +MCA_oshmem_memheap_STATIC_SUBDIRS = @MCA_oshmem_memheap_STATIC_SUBDIRS@ +MCA_oshmem_scoll_ALL_COMPONENTS = @MCA_oshmem_scoll_ALL_COMPONENTS@ +MCA_oshmem_scoll_ALL_SUBDIRS = @MCA_oshmem_scoll_ALL_SUBDIRS@ +MCA_oshmem_scoll_DSO_COMPONENTS = @MCA_oshmem_scoll_DSO_COMPONENTS@ +MCA_oshmem_scoll_DSO_SUBDIRS = @MCA_oshmem_scoll_DSO_SUBDIRS@ +MCA_oshmem_scoll_STATIC_COMPONENTS = @MCA_oshmem_scoll_STATIC_COMPONENTS@ +MCA_oshmem_scoll_STATIC_LTLIBS = @MCA_oshmem_scoll_STATIC_LTLIBS@ +MCA_oshmem_scoll_STATIC_SUBDIRS = @MCA_oshmem_scoll_STATIC_SUBDIRS@ +MCA_oshmem_spml_ALL_COMPONENTS = @MCA_oshmem_spml_ALL_COMPONENTS@ +MCA_oshmem_spml_ALL_SUBDIRS = @MCA_oshmem_spml_ALL_SUBDIRS@ +MCA_oshmem_spml_DIRECT_CALL_HEADER = @MCA_oshmem_spml_DIRECT_CALL_HEADER@ +MCA_oshmem_spml_DSO_COMPONENTS = @MCA_oshmem_spml_DSO_COMPONENTS@ +MCA_oshmem_spml_DSO_SUBDIRS = @MCA_oshmem_spml_DSO_SUBDIRS@ +MCA_oshmem_spml_STATIC_COMPONENTS = @MCA_oshmem_spml_STATIC_COMPONENTS@ +MCA_oshmem_spml_STATIC_LTLIBS = @MCA_oshmem_spml_STATIC_LTLIBS@ +MCA_oshmem_spml_STATIC_SUBDIRS = @MCA_oshmem_spml_STATIC_SUBDIRS@ +MCA_oshmem_sshmem_ALL_COMPONENTS = @MCA_oshmem_sshmem_ALL_COMPONENTS@ +MCA_oshmem_sshmem_ALL_SUBDIRS = @MCA_oshmem_sshmem_ALL_SUBDIRS@ +MCA_oshmem_sshmem_DSO_COMPONENTS = @MCA_oshmem_sshmem_DSO_COMPONENTS@ +MCA_oshmem_sshmem_DSO_SUBDIRS = @MCA_oshmem_sshmem_DSO_SUBDIRS@ +MCA_oshmem_sshmem_STATIC_COMPONENTS = @MCA_oshmem_sshmem_STATIC_COMPONENTS@ +MCA_oshmem_sshmem_STATIC_LTLIBS = @MCA_oshmem_sshmem_STATIC_LTLIBS@ +MCA_oshmem_sshmem_STATIC_SUBDIRS = @MCA_oshmem_sshmem_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +MPIR_UNWIND_CFLAGS = @MPIR_UNWIND_CFLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPI_ALIGNMENT_FORTRAN_CHARACTER = @OMPI_ALIGNMENT_FORTRAN_CHARACTER@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX16 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX16@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX32 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX32@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX4 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX4@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX8 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX8@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION@ +OMPI_ALIGNMENT_FORTRAN_INTEGER = @OMPI_ALIGNMENT_FORTRAN_INTEGER@ +OMPI_ALIGNMENT_FORTRAN_INTEGER1 = @OMPI_ALIGNMENT_FORTRAN_INTEGER1@ +OMPI_ALIGNMENT_FORTRAN_INTEGER16 = @OMPI_ALIGNMENT_FORTRAN_INTEGER16@ +OMPI_ALIGNMENT_FORTRAN_INTEGER2 = @OMPI_ALIGNMENT_FORTRAN_INTEGER2@ +OMPI_ALIGNMENT_FORTRAN_INTEGER4 = @OMPI_ALIGNMENT_FORTRAN_INTEGER4@ +OMPI_ALIGNMENT_FORTRAN_INTEGER8 = @OMPI_ALIGNMENT_FORTRAN_INTEGER8@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL = @OMPI_ALIGNMENT_FORTRAN_LOGICAL@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL1 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL1@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL2 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL2@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL4 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL4@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL8 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL8@ +OMPI_ALIGNMENT_FORTRAN_REAL = @OMPI_ALIGNMENT_FORTRAN_REAL@ +OMPI_ALIGNMENT_FORTRAN_REAL16 = @OMPI_ALIGNMENT_FORTRAN_REAL16@ +OMPI_ALIGNMENT_FORTRAN_REAL2 = @OMPI_ALIGNMENT_FORTRAN_REAL2@ +OMPI_ALIGNMENT_FORTRAN_REAL4 = @OMPI_ALIGNMENT_FORTRAN_REAL4@ +OMPI_ALIGNMENT_FORTRAN_REAL8 = @OMPI_ALIGNMENT_FORTRAN_REAL8@ +OMPI_CONTRIB_DIST_SUBDIRS = @OMPI_CONTRIB_DIST_SUBDIRS@ +OMPI_CONTRIB_SUBDIRS = @OMPI_CONTRIB_SUBDIRS@ +OMPI_CXX_ABSOLUTE = @OMPI_CXX_ABSOLUTE@ +OMPI_ENABLE_GREQUEST_EXTENSIONS = @OMPI_ENABLE_GREQUEST_EXTENSIONS@ +OMPI_ENABLE_MPI1_COMPAT = @OMPI_ENABLE_MPI1_COMPAT@ +OMPI_F08_SUFFIX = @OMPI_F08_SUFFIX@ +OMPI_FC = @OMPI_FC@ +OMPI_FC_ABSOLUTE = @OMPI_FC_ABSOLUTE@ +OMPI_FC_MODULE_FLAG = @OMPI_FC_MODULE_FLAG@ +OMPI_FORTRAN_BUILD_SIZEOF = @OMPI_FORTRAN_BUILD_SIZEOF@ +OMPI_FORTRAN_CAPS = @OMPI_FORTRAN_CAPS@ +OMPI_FORTRAN_CKINDS = @OMPI_FORTRAN_CKINDS@ +OMPI_FORTRAN_DOUBLE_UNDERSCORE = @OMPI_FORTRAN_DOUBLE_UNDERSCORE@ +OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS = @OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS@ +OMPI_FORTRAN_F08_PREDECL = @OMPI_FORTRAN_F08_PREDECL@ +OMPI_FORTRAN_F08_TYPE = @OMPI_FORTRAN_F08_TYPE@ +OMPI_FORTRAN_HAVE_ABSTRACT = @OMPI_FORTRAN_HAVE_ABSTRACT@ +OMPI_FORTRAN_HAVE_ASYNCHRONOUS = @OMPI_FORTRAN_HAVE_ASYNCHRONOUS@ +OMPI_FORTRAN_HAVE_BIND_C = @OMPI_FORTRAN_HAVE_BIND_C@ +OMPI_FORTRAN_HAVE_C_FUNLOC = @OMPI_FORTRAN_HAVE_C_FUNLOC@ +OMPI_FORTRAN_HAVE_INTERFACE = @OMPI_FORTRAN_HAVE_INTERFACE@ +OMPI_FORTRAN_HAVE_ISO_C_BINDING = @OMPI_FORTRAN_HAVE_ISO_C_BINDING@ +OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV = @OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV@ +OMPI_FORTRAN_HAVE_PRIVATE = @OMPI_FORTRAN_HAVE_PRIVATE@ +OMPI_FORTRAN_HAVE_PROCEDURE = @OMPI_FORTRAN_HAVE_PROCEDURE@ +OMPI_FORTRAN_HAVE_STORAGE_SIZE = @OMPI_FORTRAN_HAVE_STORAGE_SIZE@ +OMPI_FORTRAN_HAVE_USE_ONLY = @OMPI_FORTRAN_HAVE_USE_ONLY@ +OMPI_FORTRAN_IGNORE_TKR_PREDECL = @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ +OMPI_FORTRAN_IGNORE_TKR_TYPE = @OMPI_FORTRAN_IGNORE_TKR_TYPE@ +OMPI_FORTRAN_IKINDS = @OMPI_FORTRAN_IKINDS@ +OMPI_FORTRAN_MAX_ARRAY_RANK = @OMPI_FORTRAN_MAX_ARRAY_RANK@ +OMPI_FORTRAN_NEED_WRAPPER_ROUTINES = @OMPI_FORTRAN_NEED_WRAPPER_ROUTINES@ +OMPI_FORTRAN_PLAIN = @OMPI_FORTRAN_PLAIN@ +OMPI_FORTRAN_RKINDS = @OMPI_FORTRAN_RKINDS@ +OMPI_FORTRAN_SINGLE_UNDERSCORE = @OMPI_FORTRAN_SINGLE_UNDERSCORE@ +OMPI_FORTRAN_STATUS_SIZE = @OMPI_FORTRAN_STATUS_SIZE@ +OMPI_FORTRAN_USEMPIF08_LIB = @OMPI_FORTRAN_USEMPIF08_LIB@ +OMPI_FORTRAN_USEMPI_DIR = @OMPI_FORTRAN_USEMPI_DIR@ +OMPI_FORTRAN_USEMPI_LIB = @OMPI_FORTRAN_USEMPI_LIB@ +OMPI_F_SUFFIX = @OMPI_F_SUFFIX@ +OMPI_GREEK_VERSION = @OMPI_GREEK_VERSION@ +OMPI_HAVE_FORTRAN_CHARACTER = @OMPI_HAVE_FORTRAN_CHARACTER@ +OMPI_HAVE_FORTRAN_COMPLEX = @OMPI_HAVE_FORTRAN_COMPLEX@ +OMPI_HAVE_FORTRAN_COMPLEX16 = @OMPI_HAVE_FORTRAN_COMPLEX16@ +OMPI_HAVE_FORTRAN_COMPLEX32 = @OMPI_HAVE_FORTRAN_COMPLEX32@ +OMPI_HAVE_FORTRAN_COMPLEX4 = @OMPI_HAVE_FORTRAN_COMPLEX4@ +OMPI_HAVE_FORTRAN_COMPLEX8 = @OMPI_HAVE_FORTRAN_COMPLEX8@ +OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX = @OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX@ +OMPI_HAVE_FORTRAN_DOUBLE_PRECISION = @OMPI_HAVE_FORTRAN_DOUBLE_PRECISION@ +OMPI_HAVE_FORTRAN_INTEGER = @OMPI_HAVE_FORTRAN_INTEGER@ +OMPI_HAVE_FORTRAN_INTEGER1 = @OMPI_HAVE_FORTRAN_INTEGER1@ +OMPI_HAVE_FORTRAN_INTEGER16 = @OMPI_HAVE_FORTRAN_INTEGER16@ +OMPI_HAVE_FORTRAN_INTEGER2 = @OMPI_HAVE_FORTRAN_INTEGER2@ +OMPI_HAVE_FORTRAN_INTEGER4 = @OMPI_HAVE_FORTRAN_INTEGER4@ +OMPI_HAVE_FORTRAN_INTEGER8 = @OMPI_HAVE_FORTRAN_INTEGER8@ +OMPI_HAVE_FORTRAN_LOGICAL = @OMPI_HAVE_FORTRAN_LOGICAL@ +OMPI_HAVE_FORTRAN_LOGICAL1 = @OMPI_HAVE_FORTRAN_LOGICAL1@ +OMPI_HAVE_FORTRAN_LOGICAL2 = @OMPI_HAVE_FORTRAN_LOGICAL2@ +OMPI_HAVE_FORTRAN_LOGICAL4 = @OMPI_HAVE_FORTRAN_LOGICAL4@ +OMPI_HAVE_FORTRAN_LOGICAL8 = @OMPI_HAVE_FORTRAN_LOGICAL8@ +OMPI_HAVE_FORTRAN_REAL = @OMPI_HAVE_FORTRAN_REAL@ +OMPI_HAVE_FORTRAN_REAL16 = @OMPI_HAVE_FORTRAN_REAL16@ +OMPI_HAVE_FORTRAN_REAL2 = @OMPI_HAVE_FORTRAN_REAL2@ +OMPI_HAVE_FORTRAN_REAL4 = @OMPI_HAVE_FORTRAN_REAL4@ +OMPI_HAVE_FORTRAN_REAL8 = @OMPI_HAVE_FORTRAN_REAL8@ +OMPI_JDK_CPPFLAGS = @OMPI_JDK_CPPFLAGS@ +OMPI_KIND_FORTRAN_CHARACTER = @OMPI_KIND_FORTRAN_CHARACTER@ +OMPI_KIND_FORTRAN_COMPLEX = @OMPI_KIND_FORTRAN_COMPLEX@ +OMPI_KIND_FORTRAN_COMPLEX16 = @OMPI_KIND_FORTRAN_COMPLEX16@ +OMPI_KIND_FORTRAN_COMPLEX32 = @OMPI_KIND_FORTRAN_COMPLEX32@ +OMPI_KIND_FORTRAN_COMPLEX4 = @OMPI_KIND_FORTRAN_COMPLEX4@ +OMPI_KIND_FORTRAN_COMPLEX8 = @OMPI_KIND_FORTRAN_COMPLEX8@ +OMPI_KIND_FORTRAN_DOUBLE_COMPLEX = @OMPI_KIND_FORTRAN_DOUBLE_COMPLEX@ +OMPI_KIND_FORTRAN_DOUBLE_PRECISION = @OMPI_KIND_FORTRAN_DOUBLE_PRECISION@ +OMPI_KIND_FORTRAN_INTEGER = @OMPI_KIND_FORTRAN_INTEGER@ +OMPI_KIND_FORTRAN_INTEGER1 = @OMPI_KIND_FORTRAN_INTEGER1@ +OMPI_KIND_FORTRAN_INTEGER16 = @OMPI_KIND_FORTRAN_INTEGER16@ +OMPI_KIND_FORTRAN_INTEGER2 = @OMPI_KIND_FORTRAN_INTEGER2@ +OMPI_KIND_FORTRAN_INTEGER4 = @OMPI_KIND_FORTRAN_INTEGER4@ +OMPI_KIND_FORTRAN_INTEGER8 = @OMPI_KIND_FORTRAN_INTEGER8@ +OMPI_KIND_FORTRAN_LOGICAL = @OMPI_KIND_FORTRAN_LOGICAL@ +OMPI_KIND_FORTRAN_LOGICAL1 = @OMPI_KIND_FORTRAN_LOGICAL1@ +OMPI_KIND_FORTRAN_LOGICAL2 = @OMPI_KIND_FORTRAN_LOGICAL2@ +OMPI_KIND_FORTRAN_LOGICAL4 = @OMPI_KIND_FORTRAN_LOGICAL4@ +OMPI_KIND_FORTRAN_LOGICAL8 = @OMPI_KIND_FORTRAN_LOGICAL8@ +OMPI_KIND_FORTRAN_REAL = @OMPI_KIND_FORTRAN_REAL@ +OMPI_KIND_FORTRAN_REAL16 = @OMPI_KIND_FORTRAN_REAL16@ +OMPI_KIND_FORTRAN_REAL2 = @OMPI_KIND_FORTRAN_REAL2@ +OMPI_KIND_FORTRAN_REAL4 = @OMPI_KIND_FORTRAN_REAL4@ +OMPI_KIND_FORTRAN_REAL8 = @OMPI_KIND_FORTRAN_REAL8@ +OMPI_LIBMPI_EXTRA_LDFLAGS = @OMPI_LIBMPI_EXTRA_LDFLAGS@ +OMPI_LIBMPI_EXTRA_LIBS = @OMPI_LIBMPI_EXTRA_LIBS@ +OMPI_LIBMPI_NAME = @OMPI_LIBMPI_NAME@ +OMPI_MAJOR_VERSION = @OMPI_MAJOR_VERSION@ +OMPI_MINOR_VERSION = @OMPI_MINOR_VERSION@ +OMPI_MPIEXT_ALL_SUBDIRS = @OMPI_MPIEXT_ALL_SUBDIRS@ +OMPI_MPIEXT_C_DIRS = @OMPI_MPIEXT_C_DIRS@ +OMPI_MPIEXT_C_LIBS = @OMPI_MPIEXT_C_LIBS@ +OMPI_MPIEXT_MPIFH_DIRS = @OMPI_MPIEXT_MPIFH_DIRS@ +OMPI_MPIEXT_MPIFH_LIBS = @OMPI_MPIEXT_MPIFH_LIBS@ +OMPI_MPIEXT_USEMPIF08_DIRS = @OMPI_MPIEXT_USEMPIF08_DIRS@ +OMPI_MPIEXT_USEMPIF08_LIBS = @OMPI_MPIEXT_USEMPIF08_LIBS@ +OMPI_MPIEXT_USEMPI_DIRS = @OMPI_MPIEXT_USEMPI_DIRS@ +OMPI_MPIEXT_USEMPI_LIBS = @OMPI_MPIEXT_USEMPI_LIBS@ +OMPI_MPI_ADDRESS_KIND = @OMPI_MPI_ADDRESS_KIND@ +OMPI_MPI_BIND_PREFIX = @OMPI_MPI_BIND_PREFIX@ +OMPI_MPI_COUNT_KIND = @OMPI_MPI_COUNT_KIND@ +OMPI_MPI_INTEGER_KIND = @OMPI_MPI_INTEGER_KIND@ +OMPI_MPI_OFFSET_KIND = @OMPI_MPI_OFFSET_KIND@ +OMPI_MPI_PREFIX = @OMPI_MPI_PREFIX@ +OMPI_PKG_CONFIG_LDFLAGS = @OMPI_PKG_CONFIG_LDFLAGS@ +OMPI_RELEASE_DATE = @OMPI_RELEASE_DATE@ +OMPI_RELEASE_VERSION = @OMPI_RELEASE_VERSION@ +OMPI_REPO_REV = @OMPI_REPO_REV@ +OMPI_SIZEOF_FORTRAN_CHARACTER = @OMPI_SIZEOF_FORTRAN_CHARACTER@ +OMPI_SIZEOF_FORTRAN_COMPLEX = @OMPI_SIZEOF_FORTRAN_COMPLEX@ +OMPI_SIZEOF_FORTRAN_COMPLEX16 = @OMPI_SIZEOF_FORTRAN_COMPLEX16@ +OMPI_SIZEOF_FORTRAN_COMPLEX32 = @OMPI_SIZEOF_FORTRAN_COMPLEX32@ +OMPI_SIZEOF_FORTRAN_COMPLEX4 = @OMPI_SIZEOF_FORTRAN_COMPLEX4@ +OMPI_SIZEOF_FORTRAN_COMPLEX8 = @OMPI_SIZEOF_FORTRAN_COMPLEX8@ +OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX = @OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX@ +OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION = @OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION@ +OMPI_SIZEOF_FORTRAN_INTEGER = @OMPI_SIZEOF_FORTRAN_INTEGER@ +OMPI_SIZEOF_FORTRAN_INTEGER1 = @OMPI_SIZEOF_FORTRAN_INTEGER1@ +OMPI_SIZEOF_FORTRAN_INTEGER16 = @OMPI_SIZEOF_FORTRAN_INTEGER16@ +OMPI_SIZEOF_FORTRAN_INTEGER2 = @OMPI_SIZEOF_FORTRAN_INTEGER2@ +OMPI_SIZEOF_FORTRAN_INTEGER4 = @OMPI_SIZEOF_FORTRAN_INTEGER4@ +OMPI_SIZEOF_FORTRAN_INTEGER8 = @OMPI_SIZEOF_FORTRAN_INTEGER8@ +OMPI_SIZEOF_FORTRAN_LOGICAL = @OMPI_SIZEOF_FORTRAN_LOGICAL@ +OMPI_SIZEOF_FORTRAN_LOGICAL1 = @OMPI_SIZEOF_FORTRAN_LOGICAL1@ +OMPI_SIZEOF_FORTRAN_LOGICAL2 = @OMPI_SIZEOF_FORTRAN_LOGICAL2@ +OMPI_SIZEOF_FORTRAN_LOGICAL4 = @OMPI_SIZEOF_FORTRAN_LOGICAL4@ +OMPI_SIZEOF_FORTRAN_LOGICAL8 = @OMPI_SIZEOF_FORTRAN_LOGICAL8@ +OMPI_SIZEOF_FORTRAN_REAL = @OMPI_SIZEOF_FORTRAN_REAL@ +OMPI_SIZEOF_FORTRAN_REAL16 = @OMPI_SIZEOF_FORTRAN_REAL16@ +OMPI_SIZEOF_FORTRAN_REAL2 = @OMPI_SIZEOF_FORTRAN_REAL2@ +OMPI_SIZEOF_FORTRAN_REAL4 = @OMPI_SIZEOF_FORTRAN_REAL4@ +OMPI_SIZEOF_FORTRAN_REAL8 = @OMPI_SIZEOF_FORTRAN_REAL8@ +OMPI_TARBALL_VERSION = @OMPI_TARBALL_VERSION@ +OMPI_TOP_BUILDDIR = @OMPI_TOP_BUILDDIR@ +OMPI_TOP_SRCDIR = @OMPI_TOP_SRCDIR@ +OMPI_VERSION = @OMPI_VERSION@ +OMPI_WRAPPER_CXX_LIB = @OMPI_WRAPPER_CXX_LIB@ +OMPI_WRAPPER_CXX_REQUIRED_FILE = @OMPI_WRAPPER_CXX_REQUIRED_FILE@ +OMPI_WRAPPER_EXTRA_CFLAGS = @OMPI_WRAPPER_EXTRA_CFLAGS@ +OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_CPPFLAGS = @OMPI_WRAPPER_EXTRA_CPPFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS = @OMPI_WRAPPER_EXTRA_CXXFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FCFLAGS = @OMPI_WRAPPER_EXTRA_FCFLAGS@ +OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FC_LDFLAGS = @OMPI_WRAPPER_EXTRA_FC_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LDFLAGS = @OMPI_WRAPPER_EXTRA_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LIBS = @OMPI_WRAPPER_EXTRA_LIBS@ +OMPI_WRAPPER_FORTRAN_REQUIRED_FILE = @OMPI_WRAPPER_FORTRAN_REQUIRED_FILE@ +OMPI_WRAPPER_INCLUDEDIR = @OMPI_WRAPPER_INCLUDEDIR@ +OMPI_WRAPPER_LIBDIR = @OMPI_WRAPPER_LIBDIR@ +OPAL_ASM_GSYM = @OPAL_ASM_GSYM@ +OPAL_ASM_LSYM = @OPAL_ASM_LSYM@ +OPAL_ASM_SUPPORT_64BIT = @OPAL_ASM_SUPPORT_64BIT@ +OPAL_ASM_TEXT = @OPAL_ASM_TEXT@ +OPAL_ASM_TYPE = @OPAL_ASM_TYPE@ +OPAL_ASSEMBLY_ARCH = @OPAL_ASSEMBLY_ARCH@ +OPAL_ASSEMBLY_BUILTIN = @OPAL_ASSEMBLY_BUILTIN@ +OPAL_ASSEMBLY_FORMAT = @OPAL_ASSEMBLY_FORMAT@ +OPAL_AS_GLOBAL = @OPAL_AS_GLOBAL@ +OPAL_AS_LABEL_SUFFIX = @OPAL_AS_LABEL_SUFFIX@ +OPAL_CC_ABSOLUTE = @OPAL_CC_ABSOLUTE@ +OPAL_CONFIGURE_CLI = @OPAL_CONFIGURE_CLI@ +OPAL_CONFIGURE_DATE = @OPAL_CONFIGURE_DATE@ +OPAL_CONFIGURE_HOST = @OPAL_CONFIGURE_HOST@ +OPAL_CONFIGURE_USER = @OPAL_CONFIGURE_USER@ +OPAL_CXX_ABSOLUTE = @OPAL_CXX_ABSOLUTE@ +OPAL_DEFAULT_MCA_PARAM_CONF = @OPAL_DEFAULT_MCA_PARAM_CONF@ +OPAL_DYN_LIB_PREFIX = @OPAL_DYN_LIB_PREFIX@ +OPAL_DYN_LIB_SUFFIX = @OPAL_DYN_LIB_SUFFIX@ +OPAL_GREEK_VERSION = @OPAL_GREEK_VERSION@ +OPAL_LIB_PREFIX = @OPAL_LIB_PREFIX@ +OPAL_MAJOR_VERSION = @OPAL_MAJOR_VERSION@ +OPAL_MAX_DATAREP_STRING = @OPAL_MAX_DATAREP_STRING@ +OPAL_MAX_ERROR_STRING = @OPAL_MAX_ERROR_STRING@ +OPAL_MAX_INFO_KEY = @OPAL_MAX_INFO_KEY@ +OPAL_MAX_INFO_VAL = @OPAL_MAX_INFO_VAL@ +OPAL_MAX_OBJECT_NAME = @OPAL_MAX_OBJECT_NAME@ +OPAL_MAX_PORT_NAME = @OPAL_MAX_PORT_NAME@ +OPAL_MAX_PROCESSOR_NAME = @OPAL_MAX_PROCESSOR_NAME@ +OPAL_MINOR_VERSION = @OPAL_MINOR_VERSION@ +OPAL_PARAM_FROM_PLATFORM = @OPAL_PARAM_FROM_PLATFORM@ +OPAL_PKG_CONFIG_LDFLAGS = @OPAL_PKG_CONFIG_LDFLAGS@ +OPAL_RELEASE_DATE = @OPAL_RELEASE_DATE@ +OPAL_RELEASE_VERSION = @OPAL_RELEASE_VERSION@ +OPAL_REPO_REV = @OPAL_REPO_REV@ +OPAL_TARBALL_VERSION = @OPAL_TARBALL_VERSION@ +OPAL_TOP_BUILDDIR = @OPAL_TOP_BUILDDIR@ +OPAL_TOP_SRCDIR = @OPAL_TOP_SRCDIR@ +OPAL_VERSION = @OPAL_VERSION@ +OPAL_WRAPPER_EXTRA_CFLAGS = @OPAL_WRAPPER_EXTRA_CFLAGS@ +OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_CPPFLAGS = @OPAL_WRAPPER_EXTRA_CPPFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS = @OPAL_WRAPPER_EXTRA_CXXFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_LDFLAGS = @OPAL_WRAPPER_EXTRA_LDFLAGS@ +OPAL_WRAPPER_EXTRA_LIBS = @OPAL_WRAPPER_EXTRA_LIBS@ +ORTE_GREEK_VERSION = @ORTE_GREEK_VERSION@ +ORTE_LIB_PREFIX = @ORTE_LIB_PREFIX@ +ORTE_MAJOR_VERSION = @ORTE_MAJOR_VERSION@ +ORTE_MINOR_VERSION = @ORTE_MINOR_VERSION@ +ORTE_PKG_CONFIG_LDFLAGS = @ORTE_PKG_CONFIG_LDFLAGS@ +ORTE_RELEASE_DATE = @ORTE_RELEASE_DATE@ +ORTE_RELEASE_VERSION = @ORTE_RELEASE_VERSION@ +ORTE_REPO_REV = @ORTE_REPO_REV@ +ORTE_TARBALL_VERSION = @ORTE_TARBALL_VERSION@ +ORTE_TOP_BUILDDIR = @ORTE_TOP_BUILDDIR@ +ORTE_TOP_SRCDIR = @ORTE_TOP_SRCDIR@ +ORTE_VERSION = @ORTE_VERSION@ +ORTE_WRAPPER_EXTRA_CFLAGS = @ORTE_WRAPPER_EXTRA_CFLAGS@ +ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX = @ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX@ +ORTE_WRAPPER_EXTRA_CPPFLAGS = @ORTE_WRAPPER_EXTRA_CPPFLAGS@ +ORTE_WRAPPER_EXTRA_LDFLAGS = @ORTE_WRAPPER_EXTRA_LDFLAGS@ +ORTE_WRAPPER_EXTRA_LIBS = @ORTE_WRAPPER_EXTRA_LIBS@ +OSHMEM_GREEK_VERSION = @OSHMEM_GREEK_VERSION@ +OSHMEM_LIBSHMEM_EXTRA_LDFLAGS = @OSHMEM_LIBSHMEM_EXTRA_LDFLAGS@ +OSHMEM_LIBSHMEM_EXTRA_LIBS = @OSHMEM_LIBSHMEM_EXTRA_LIBS@ +OSHMEM_MAJOR_VERSION = @OSHMEM_MAJOR_VERSION@ +OSHMEM_MINOR_VERSION = @OSHMEM_MINOR_VERSION@ +OSHMEM_RELEASE_DATE = @OSHMEM_RELEASE_DATE@ +OSHMEM_RELEASE_VERSION = @OSHMEM_RELEASE_VERSION@ +OSHMEM_REPO_REV = @OSHMEM_REPO_REV@ +OSHMEM_TARBALL_VERSION = @OSHMEM_TARBALL_VERSION@ +OSHMEM_TOP_BUILDDIR = @OSHMEM_TOP_BUILDDIR@ +OSHMEM_TOP_SRCDIR = @OSHMEM_TOP_SRCDIR@ +OSHMEM_VERSION = @OSHMEM_VERSION@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +QRSH = @QRSH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SINGULARITY = @SINGULARITY@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_FC = @ac_ct_FC@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +atomic_mxm_CFLAGS = @atomic_mxm_CFLAGS@ +atomic_mxm_CPPFLAGS = @atomic_mxm_CPPFLAGS@ +atomic_mxm_LDFLAGS = @atomic_mxm_LDFLAGS@ +atomic_mxm_LIBS = @atomic_mxm_LIBS@ +atomic_ucx_CFLAGS = @atomic_ucx_CFLAGS@ +atomic_ucx_CPPFLAGS = @atomic_ucx_CPPFLAGS@ +atomic_ucx_LDFLAGS = @atomic_ucx_LDFLAGS@ +atomic_ucx_LIBS = @atomic_ucx_LIBS@ +bindir = @bindir@ +btl_openib_CFLAGS = @btl_openib_CFLAGS@ +btl_openib_CPPFLAGS = @btl_openib_CPPFLAGS@ +btl_openib_LDFLAGS = @btl_openib_LDFLAGS@ +btl_openib_LIBS = @btl_openib_LIBS@ +btl_portals4_CPPFLAGS = @btl_portals4_CPPFLAGS@ +btl_portals4_LDFLAGS = @btl_portals4_LDFLAGS@ +btl_portals4_LIBS = @btl_portals4_LIBS@ +btl_uct_CPPFLAGS = @btl_uct_CPPFLAGS@ +btl_uct_LDFLAGS = @btl_uct_LDFLAGS@ +btl_uct_LIBS = @btl_uct_LIBS@ +btl_ugni_CPPFLAGS = @btl_ugni_CPPFLAGS@ +btl_ugni_LDFLAGS = @btl_ugni_LDFLAGS@ +btl_ugni_LIBS = @btl_ugni_LIBS@ +btl_vader_CFLAGS = @btl_vader_CFLAGS@ +btl_vader_CPPFLAGS = @btl_vader_CPPFLAGS@ +btl_vader_LDFLAGS = @btl_vader_LDFLAGS@ +btl_vader_LIBS = @btl_vader_LIBS@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +coll_fca_CFLAGS = @coll_fca_CFLAGS@ +coll_fca_CPPFLAGS = @coll_fca_CPPFLAGS@ +coll_fca_HOME = @coll_fca_HOME@ +coll_fca_LDFLAGS = @coll_fca_LDFLAGS@ +coll_fca_LIBS = @coll_fca_LIBS@ +coll_hcoll_CFLAGS = @coll_hcoll_CFLAGS@ +coll_hcoll_CPPFLAGS = @coll_hcoll_CPPFLAGS@ +coll_hcoll_LDFLAGS = @coll_hcoll_LDFLAGS@ +coll_hcoll_LIBS = @coll_hcoll_LIBS@ +coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ +coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ +coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ +common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ +common_alps_LDFLAGS = @common_alps_LDFLAGS@ +common_alps_LIBS = @common_alps_LIBS@ +common_cuda_CPPFLAGS = @common_cuda_CPPFLAGS@ +common_ucx_CFLAGS = @common_ucx_CFLAGS@ +common_ucx_CPPFLAGS = @common_ucx_CPPFLAGS@ +common_ucx_LDFLAGS = @common_ucx_LDFLAGS@ +common_ucx_LIBS = @common_ucx_LIBS@ +common_verbs_CFLAGS = @common_verbs_CFLAGS@ +common_verbs_CPPFLAGS = @common_verbs_CPPFLAGS@ +common_verbs_LDFLAGS = @common_verbs_LDFLAGS@ +common_verbs_LIBS = @common_verbs_LIBS@ +common_verbs_usnic_CPPFLAGS = @common_verbs_usnic_CPPFLAGS@ +common_verbs_usnic_LDFLAGS = @common_verbs_usnic_LDFLAGS@ +common_verbs_usnic_LIBS = @common_verbs_usnic_LIBS@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +ess_alps_CPPFLAGS = @ess_alps_CPPFLAGS@ +ess_alps_LDFLAGS = @ess_alps_LDFLAGS@ +ess_alps_LIBS = @ess_alps_LIBS@ +ess_lsf_CPPFLAGS = @ess_lsf_CPPFLAGS@ +ess_lsf_LDFLAGS = @ess_lsf_LDFLAGS@ +ess_lsf_LIBS = @ess_lsf_LIBS@ +ess_slurm_CPPFLAGS = @ess_slurm_CPPFLAGS@ +ess_slurm_LDFLAGS = @ess_slurm_LDFLAGS@ +ess_slurm_LIBS = @ess_slurm_LIBS@ +ess_tm_CPPFLAGS = @ess_tm_CPPFLAGS@ +ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ +ess_tm_LIBS = @ess_tm_LIBS@ +exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ +fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ +fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ +fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ +fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ +fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ +fs_lustre_LIBS = @fs_lustre_LIBS@ +fs_pvfs2_CPPFLAGS = @fs_pvfs2_CPPFLAGS@ +fs_pvfs2_LDFLAGS = @fs_pvfs2_LDFLAGS@ +fs_pvfs2_LIBS = @fs_pvfs2_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ +libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ +libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ +libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ +libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ +libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ +libmca_opal_common_verbs_so_version = @libmca_opal_common_verbs_so_version@ +libmca_orte_common_alps_so_version = @libmca_orte_common_alps_so_version@ +libmpi_cxx_so_version = @libmpi_cxx_so_version@ +libmpi_java_so_version = @libmpi_java_so_version@ +libmpi_mpifh_so_version = @libmpi_mpifh_so_version@ +libmpi_so_version = @libmpi_so_version@ +libmpi_usempi_ignore_tkr_so_version = @libmpi_usempi_ignore_tkr_so_version@ +libmpi_usempi_tkr_so_version = @libmpi_usempi_tkr_so_version@ +libmpi_usempif08_so_version = @libmpi_usempif08_so_version@ +libompitrace_so_version = @libompitrace_so_version@ +libopen_pal_so_version = @libopen_pal_so_version@ +libopen_rte_so_version = @libopen_rte_so_version@ +liboshmem_so_version = @liboshmem_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +memory_malloc_solaris_LIBS = @memory_malloc_solaris_LIBS@ +mkdir_p = @mkdir_p@ +mpool_memkind_CPPFLAGS = @mpool_memkind_CPPFLAGS@ +mpool_memkind_LDFLAGS = @mpool_memkind_LDFLAGS@ +mpool_memkind_LIBS = @mpool_memkind_LIBS@ +mtl_portals4_CPPFLAGS = @mtl_portals4_CPPFLAGS@ +mtl_portals4_LDFLAGS = @mtl_portals4_LDFLAGS@ +mtl_portals4_LIBS = @mtl_portals4_LIBS@ +mtl_psm2_CFLAGS = @mtl_psm2_CFLAGS@ +mtl_psm2_CPPFLAGS = @mtl_psm2_CPPFLAGS@ +mtl_psm2_LDFLAGS = @mtl_psm2_LDFLAGS@ +mtl_psm2_LIBS = @mtl_psm2_LIBS@ +mtl_psm_CFLAGS = @mtl_psm_CFLAGS@ +mtl_psm_CPPFLAGS = @mtl_psm_CPPFLAGS@ +mtl_psm_LDFLAGS = @mtl_psm_LDFLAGS@ +mtl_psm_LIBS = @mtl_psm_LIBS@ +odls_alps_CPPFLAGS = @odls_alps_CPPFLAGS@ +odls_alps_LDFLAGS = @odls_alps_LDFLAGS@ +odls_alps_LIBS = @odls_alps_LIBS@ +oldincludedir = @oldincludedir@ +ompidatadir = @ompidatadir@ +ompiincludedir = @ompiincludedir@ +ompilibdir = @ompilibdir@ +oob_alps_CPPFLAGS = @oob_alps_CPPFLAGS@ +oob_alps_LDFLAGS = @oob_alps_LDFLAGS@ +oob_alps_LIBS = @oob_alps_LIBS@ +opal_datatype_cuda_CPPFLAGS = @opal_datatype_cuda_CPPFLAGS@ +opal_dl_dlopen_LIBS = @opal_dl_dlopen_LIBS@ +opal_dl_libltdl_CPPFLAGS = @opal_dl_libltdl_CPPFLAGS@ +opal_dl_libltdl_LDFLAGS = @opal_dl_libltdl_LDFLAGS@ +opal_dl_libltdl_LIBS = @opal_dl_libltdl_LIBS@ +opal_event_external_CPPFLAGS = @opal_event_external_CPPFLAGS@ +opal_event_external_LDFLAGS = @opal_event_external_LDFLAGS@ +opal_event_external_LIBS = @opal_event_external_LIBS@ +opal_hwloc_external_LDFLAGS = @opal_hwloc_external_LDFLAGS@ +opal_hwloc_external_LIBS = @opal_hwloc_external_LIBS@ +opal_hwloc_hwloc201_CFLAGS = @opal_hwloc_hwloc201_CFLAGS@ +opal_hwloc_hwloc201_CPPFLAGS = @opal_hwloc_hwloc201_CPPFLAGS@ +opal_hwloc_hwloc201_LDFLAGS = @opal_hwloc_hwloc201_LDFLAGS@ +opal_hwloc_hwloc201_LIBS = @opal_hwloc_hwloc201_LIBS@ +opal_memchecker_valgrind_CPPFLAGS = @opal_memchecker_valgrind_CPPFLAGS@ +opal_ofi_CPPFLAGS = @opal_ofi_CPPFLAGS@ +opal_ofi_LDFLAGS = @opal_ofi_LDFLAGS@ +opal_ofi_LIBS = @opal_ofi_LIBS@ +opal_pmi1_CPPFLAGS = @opal_pmi1_CPPFLAGS@ +opal_pmi1_LDFLAGS = @opal_pmi1_LDFLAGS@ +opal_pmi1_LIBS = @opal_pmi1_LIBS@ +opal_pmi1_rpath = @opal_pmi1_rpath@ +opal_pmi2_CPPFLAGS = @opal_pmi2_CPPFLAGS@ +opal_pmi2_LDFLAGS = @opal_pmi2_LDFLAGS@ +opal_pmi2_LIBS = @opal_pmi2_LIBS@ +opal_pmi2_rpath = @opal_pmi2_rpath@ +opal_pmix_ext1x_CPPFLAGS = @opal_pmix_ext1x_CPPFLAGS@ +opal_pmix_ext1x_LDFLAGS = @opal_pmix_ext1x_LDFLAGS@ +opal_pmix_ext1x_LIBS = @opal_pmix_ext1x_LIBS@ +opal_pmix_ext2x_CPPFLAGS = @opal_pmix_ext2x_CPPFLAGS@ +opal_pmix_ext2x_LDFLAGS = @opal_pmix_ext2x_LDFLAGS@ +opal_pmix_ext2x_LIBS = @opal_pmix_ext2x_LIBS@ +opal_pmix_ext3x_CPPFLAGS = @opal_pmix_ext3x_CPPFLAGS@ +opal_pmix_ext3x_LDFLAGS = @opal_pmix_ext3x_LDFLAGS@ +opal_pmix_ext3x_LIBS = @opal_pmix_ext3x_LIBS@ +opal_pmix_pmix3x_CPPFLAGS = @opal_pmix_pmix3x_CPPFLAGS@ +opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ +opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ +opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ +opaldatadir = @opaldatadir@ +opalincludedir = @opalincludedir@ +opallibdir = @opallibdir@ +ortedatadir = @ortedatadir@ +orteincludedir = @orteincludedir@ +ortelibdir = @ortelibdir@ +osc_portals4_CPPFLAGS = @osc_portals4_CPPFLAGS@ +osc_portals4_LDFLAGS = @osc_portals4_LDFLAGS@ +osc_portals4_LIBS = @osc_portals4_LIBS@ +osc_ucx_CPPFLAGS = @osc_ucx_CPPFLAGS@ +osc_ucx_LDFLAGS = @osc_ucx_LDFLAGS@ +osc_ucx_LIBS = @osc_ucx_LIBS@ +oshmem_verbs_CFLAGS = @oshmem_verbs_CFLAGS@ +oshmem_verbs_CPPFLAGS = @oshmem_verbs_CPPFLAGS@ +oshmem_verbs_LDFLAGS = @oshmem_verbs_LDFLAGS@ +oshmem_verbs_LIBS = @oshmem_verbs_LIBS@ +oshmemdatadir = @oshmemdatadir@ +oshmemincludedir = @oshmemincludedir@ +oshmemlibdir = @oshmemlibdir@ +pdfdir = @pdfdir@ +plm_alps_CPPFLAGS = @plm_alps_CPPFLAGS@ +plm_alps_LDFLAGS = @plm_alps_LDFLAGS@ +plm_alps_LIBS = @plm_alps_LIBS@ +plm_lsf_CPPFLAGS = @plm_lsf_CPPFLAGS@ +plm_lsf_LDFLAGS = @plm_lsf_LDFLAGS@ +plm_lsf_LIBS = @plm_lsf_LIBS@ +plm_slurm_CPPFLAGS = @plm_slurm_CPPFLAGS@ +plm_slurm_LDFLAGS = @plm_slurm_LDFLAGS@ +plm_slurm_LIBS = @plm_slurm_LIBS@ +plm_tm_CPPFLAGS = @plm_tm_CPPFLAGS@ +plm_tm_LDFLAGS = @plm_tm_LDFLAGS@ +plm_tm_LIBS = @plm_tm_LIBS@ +pmix_alps_CPPFLAGS = @pmix_alps_CPPFLAGS@ +pmix_alps_LDFLAGS = @pmix_alps_LDFLAGS@ +pmix_alps_LIBS = @pmix_alps_LIBS@ +pmix_cray_CPPFLAGS = @pmix_cray_CPPFLAGS@ +pmix_cray_LDFLAGS = @pmix_cray_LDFLAGS@ +pmix_cray_LIBS = @pmix_cray_LIBS@ +pml_ucx_CPPFLAGS = @pml_ucx_CPPFLAGS@ +pml_ucx_LDFLAGS = @pml_ucx_LDFLAGS@ +pml_ucx_LIBS = @pml_ucx_LIBS@ +pml_yalla_CPPFLAGS = @pml_yalla_CPPFLAGS@ +pml_yalla_LDFLAGS = @pml_yalla_LDFLAGS@ +pml_yalla_LIBS = @pml_yalla_LIBS@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +ras_alps_CPPFLAGS = @ras_alps_CPPFLAGS@ +ras_lsf_CPPFLAGS = @ras_lsf_CPPFLAGS@ +ras_lsf_LDFLAGS = @ras_lsf_LDFLAGS@ +ras_lsf_LIBS = @ras_lsf_LIBS@ +ras_slurm_CPPFLAGS = @ras_slurm_CPPFLAGS@ +ras_slurm_LDFLAGS = @ras_slurm_LDFLAGS@ +ras_slurm_LIBS = @ras_slurm_LIBS@ +ras_tm_CPPFLAGS = @ras_tm_CPPFLAGS@ +ras_tm_LDFLAGS = @ras_tm_LDFLAGS@ +ras_tm_LIBS = @ras_tm_LIBS@ +rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ +rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ +rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ +sbindir = @sbindir@ +schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ +schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ +schizo_moab_LDFLAGS = @schizo_moab_LDFLAGS@ +schizo_moab_LIBS = @schizo_moab_LIBS@ +schizo_slurm_CPPFLAGS = @schizo_slurm_CPPFLAGS@ +schizo_slurm_LDFLAGS = @schizo_slurm_LDFLAGS@ +schizo_slurm_LIBS = @schizo_slurm_LIBS@ +scoll_fca_CFLAGS = @scoll_fca_CFLAGS@ +scoll_fca_CPPFLAGS = @scoll_fca_CPPFLAGS@ +scoll_fca_HOME = @scoll_fca_HOME@ +scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ +scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ +sharedstatedir = @sharedstatedir@ +spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ +spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ +spml_ikrit_LDFLAGS = @spml_ikrit_LDFLAGS@ +spml_ikrit_LIBS = @spml_ikrit_LIBS@ +spml_ucx_CFLAGS = @spml_ucx_CFLAGS@ +spml_ucx_CPPFLAGS = @spml_ucx_CPPFLAGS@ +spml_ucx_LDFLAGS = @spml_ucx_LDFLAGS@ +spml_ucx_LIBS = @spml_ucx_LIBS@ +srcdir = @srcdir@ +sshmem_ucx_CFLAGS = @sshmem_ucx_CFLAGS@ +sshmem_ucx_CPPFLAGS = @sshmem_ucx_CPPFLAGS@ +sshmem_ucx_LDFLAGS = @sshmem_ucx_LDFLAGS@ +sshmem_ucx_LIBS = @sshmem_ucx_LIBS@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ucx_CFLAGS = @ucx_CFLAGS@ +ucx_LIBS = @ucx_LIBS@ +ucx_STATIC_LIBS = @ucx_STATIC_LIBS@ +sources = \ + coll_adapt_component.c \ + coll_adapt_module.c \ + coll_adapt_bcast.c \ + coll_adapt_ibcast.c \ + coll_adapt_reduce.c \ + coll_adapt_ireduce.c \ + coll_adapt.h \ + coll_adapt_algorithms.h \ + coll_adapt_context.h \ + coll_adapt_context.c \ + coll_adapt_inbuf.c \ + coll_adapt_inbuf.h \ + coll_adapt_item.c \ + coll_adapt_item.h \ + coll_adapt_topocache.c \ + coll_adapt_topocache.h + + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). +component_noinst = $(am__append_2) +component_install = $(am__append_1) +mcacomponentdir = $(ompilibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_coll_adapt_la_SOURCES = $(sources) +mca_coll_adapt_la_LDFLAGS = -module -avoid-version +mca_coll_adapt_la_LIBADD = +noinst_LTLIBRARIES = $(component_noinst) +libmca_coll_adapt_la_SOURCES = $(sources) +libmca_coll_adapt_la_LDFLAGS = -module -avoid-version +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign ompi/mca/coll/adapt/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign ompi/mca/coll/adapt/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-mcacomponentLTLIBRARIES: $(mcacomponent_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(mcacomponentdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(mcacomponentdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(mcacomponentdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(mcacomponentdir)"; \ + } + +uninstall-mcacomponentLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(mcacomponentdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(mcacomponentdir)/$$f"; \ + done + +clean-mcacomponentLTLIBRARIES: + -test -z "$(mcacomponent_LTLIBRARIES)" || rm -f $(mcacomponent_LTLIBRARIES) + @list='$(mcacomponent_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libmca_coll_adapt.la: $(libmca_coll_adapt_la_OBJECTS) $(libmca_coll_adapt_la_DEPENDENCIES) $(EXTRA_libmca_coll_adapt_la_DEPENDENCIES) + $(AM_V_CCLD)$(libmca_coll_adapt_la_LINK) $(am_libmca_coll_adapt_la_rpath) $(libmca_coll_adapt_la_OBJECTS) $(libmca_coll_adapt_la_LIBADD) $(LIBS) + +mca_coll_adapt.la: $(mca_coll_adapt_la_OBJECTS) $(mca_coll_adapt_la_DEPENDENCIES) $(EXTRA_mca_coll_adapt_la_DEPENDENCIES) + $(AM_V_CCLD)$(mca_coll_adapt_la_LINK) $(am_mca_coll_adapt_la_rpath) $(mca_coll_adapt_la_OBJECTS) $(mca_coll_adapt_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_adapt_bcast.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_adapt_component.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_adapt_context.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_adapt_ibcast.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_adapt_inbuf.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_adapt_ireduce.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_adapt_item.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_adapt_module.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_adapt_reduce.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_adapt_topocache.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(mcacomponentdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-mcacomponentLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-mcacomponentLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-mcacomponentLTLIBRARIES install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-mcacomponentLTLIBRARIES + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/ompi/mca/coll/base/coll_base_allgatherv.c openmpi-4.1.4/ompi/mca/coll/base/coll_base_allgatherv.c --- openmpi-4.0.3/ompi/mca/coll/base/coll_base_allgatherv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/base/coll_base_allgatherv.c 2022-05-29 09:51:40.000000000 +0000 @@ -100,7 +100,7 @@ { int line = -1, err = 0, rank, size, sendto, recvfrom, distance, blockcount, i; int *new_rcounts = NULL, *new_rdispls = NULL, *new_scounts = NULL, *new_sdispls = NULL; - ptrdiff_t slb, rlb, sext, rext; + ptrdiff_t rlb, rext; char *tmpsend = NULL, *tmprecv = NULL; struct ompi_datatype_t *new_rdtype, *new_sdtype; @@ -110,9 +110,6 @@ OPAL_OUTPUT((ompi_coll_base_framework.framework_output, "coll:base:allgather_intra_bruck rank %d", rank)); - err = ompi_datatype_get_extent (sdtype, &slb, &sext); - if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } - err = ompi_datatype_get_extent (rdtype, &rlb, &rext); if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } @@ -229,7 +226,7 @@ mca_coll_base_module_t *module) { int line = -1, rank, size, sendto, recvfrom, i, recvdatafrom, senddatafrom, err = 0; - ptrdiff_t slb, rlb, sext, rext; + ptrdiff_t rlb, rext; char *tmpsend = NULL, *tmprecv = NULL; size = ompi_comm_size(comm); @@ -238,9 +235,6 @@ OPAL_OUTPUT((ompi_coll_base_framework.framework_output, "coll:base:allgatherv_intra_ring rank %d", rank)); - err = ompi_datatype_get_extent (sdtype, &slb, &sext); - if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } - err = ompi_datatype_get_extent (rdtype, &rlb, &rext); if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } @@ -361,7 +355,7 @@ int line = -1, rank, size, i, even_rank, err = 0; int neighbor[2], offset_at_step[2], recv_data_from[2], send_data_from; int new_scounts[2], new_sdispls[2], new_rcounts[2], new_rdispls[2]; - ptrdiff_t slb, rlb, sext, rext; + ptrdiff_t rlb, rext; char *tmpsend = NULL, *tmprecv = NULL; struct ompi_datatype_t *new_rdtype, *new_sdtype; @@ -381,9 +375,6 @@ OPAL_OUTPUT((ompi_coll_base_framework.framework_output, "coll:base:allgatherv_intra_neighborexchange rank %d", rank)); - err = ompi_datatype_get_extent (sdtype, &slb, &sext); - if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } - err = ompi_datatype_get_extent (rdtype, &rlb, &rext); if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } @@ -509,7 +500,7 @@ { int line = -1, err = 0, rank, remote; char *tmpsend = NULL, *tmprecv = NULL; - ptrdiff_t sext, rext, lb; + ptrdiff_t rext, lb; rank = ompi_comm_rank(comm); @@ -520,9 +511,6 @@ return MPI_ERR_UNSUPPORTED_OPERATION; } - err = ompi_datatype_get_extent (sdtype, &lb, &sext); - if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } - err = ompi_datatype_get_extent (rdtype, &lb, &rext); if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } diff -Nru openmpi-4.0.3/ompi/mca/coll/base/coll_base_allreduce.c openmpi-4.1.4/ompi/mca/coll/base/coll_base_allreduce.c --- openmpi-4.0.3/ompi/mca/coll/base/coll_base_allreduce.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/base/coll_base_allreduce.c 2022-05-29 09:51:40.000000000 +0000 @@ -350,7 +350,7 @@ char *tmpsend = NULL, *tmprecv = NULL, *inbuf[2] = {NULL, NULL}; ptrdiff_t true_lb, true_extent, lb, extent; ptrdiff_t block_offset, max_real_segsize; - ompi_request_t *reqs[2] = {NULL, NULL}; + ompi_request_t *reqs[2] = {MPI_REQUEST_NULL, MPI_REQUEST_NULL}; size = ompi_comm_size(comm); rank = ompi_comm_rank(comm); @@ -528,6 +528,7 @@ error_hndl: OPAL_OUTPUT((ompi_coll_base_framework.framework_output, "%s:%4d\tRank %d Error occurred %d\n", __FILE__, line, rank, ret)); + ompi_coll_base_free_reqs(reqs, 2); (void)line; // silence compiler warning if (NULL != inbuf[0]) free(inbuf[0]); if (NULL != inbuf[1]) free(inbuf[1]); @@ -627,7 +628,7 @@ size_t typelng; char *tmpsend = NULL, *tmprecv = NULL, *inbuf[2] = {NULL, NULL}; ptrdiff_t block_offset, max_real_segsize; - ompi_request_t *reqs[2] = {NULL, NULL}; + ompi_request_t *reqs[2] = {MPI_REQUEST_NULL, MPI_REQUEST_NULL}; ptrdiff_t lb, extent, gap; size = ompi_comm_size(comm); @@ -847,6 +848,7 @@ error_hndl: OPAL_OUTPUT((ompi_coll_base_framework.framework_output, "%s:%4d\tRank %d Error occurred %d\n", __FILE__, line, rank, ret)); + ompi_coll_base_free_reqs(reqs, 2); (void)line; // silence compiler warning if (NULL != inbuf[0]) free(inbuf[0]); if (NULL != inbuf[1]) free(inbuf[1]); diff -Nru openmpi-4.0.3/ompi/mca/coll/base/coll_base_alltoall.c openmpi-4.1.4/ompi/mca/coll/base/coll_base_alltoall.c --- openmpi-4.0.3/ompi/mca/coll/base/coll_base_alltoall.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/base/coll_base_alltoall.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2017 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -15,6 +15,8 @@ * Copyright (c) 2014-2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2021 Amazon.com, Inc. or its affiliates. All Rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -27,6 +29,7 @@ #include "mpi.h" #include "ompi/constants.h" #include "ompi/datatype/ompi_datatype.h" +#include "opal/datatype/opal_convertor_internal.h" #include "ompi/communicator/communicator.h" #include "ompi/mca/coll/coll.h" #include "ompi/mca/coll/base/coll_tags.h" @@ -35,88 +38,112 @@ #include "coll_base_topo.h" #include "coll_base_util.h" -/* MPI_IN_PLACE all to all algorithm. TODO: implement a better one. */ +/* + * We want to minimize the amount of temporary memory needed while allowing as many ranks + * to exchange data simultaneously. We use a variation of the ring algorithm, where in a + * single step a process echange the data with both neighbors at distance k (on the left + * and the right on a logical ring topology). With this approach we need to pack the data + * for a single of the two neighbors, as we can then use the original buffer (and datatype + * and count) to send the data to the other. + */ int mca_coll_base_alltoall_intra_basic_inplace(const void *rbuf, int rcount, struct ompi_datatype_t *rdtype, struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - int i, j, size, rank, err = MPI_SUCCESS, line; - ptrdiff_t ext, gap = 0; + int i, size, rank, left, right, err = MPI_SUCCESS, line; + ptrdiff_t extent; ompi_request_t *req; - char *allocated_buffer = NULL, *tmp_buffer; - size_t max_size; + char *tmp_buffer; + size_t packed_size = 0, max_size; + opal_convertor_t convertor; /* Initialize. */ size = ompi_comm_size(comm); rank = ompi_comm_rank(comm); - /* If only one process, we're done. */ - if (1 == size) { + ompi_datatype_type_size(rdtype, &max_size); + + /* Easy way out */ + if ((1 == size) || (0 == rcount) || (0 == max_size) ) { return MPI_SUCCESS; } - /* Find the largest receive amount */ - ompi_datatype_type_extent (rdtype, &ext); - max_size = opal_datatype_span(&rdtype->super, rcount, &gap); + /* Find the largest amount of packed send/recv data among all peers where + * we need to pack before the send. + */ +#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT + for (i = 1 ; i <= (size >> 1) ; ++i) { + right = (rank + i) % size; + ompi_proc_t *ompi_proc = ompi_comm_peer_lookup(comm, right); + + if( OPAL_UNLIKELY(opal_local_arch != ompi_proc->super.proc_convertor->master->remote_arch)) { + packed_size = opal_datatype_compute_remote_size(&rdtype->super, + ompi_proc->super.proc_convertor->master->remote_sizes); + max_size = packed_size > max_size ? packed_size : max_size; + } + } +#endif /* OPAL_ENABLE_HETEROGENEOUS_SUPPORT */ + max_size *= rcount; - /* Initiate all send/recv to/from others. */ + ompi_datatype_type_extent(rdtype, &extent); /* Allocate a temporary buffer */ - allocated_buffer = calloc (max_size, 1); - if( NULL == allocated_buffer) { err = OMPI_ERR_OUT_OF_RESOURCE; line = __LINE__; goto error_hndl; } - tmp_buffer = allocated_buffer - gap; - max_size = ext * rcount; - - /* in-place alltoall slow algorithm (but works) */ - for (i = 0 ; i < size ; ++i) { - for (j = i+1 ; j < size ; ++j) { - if (i == rank) { - /* Copy the data into the temporary buffer */ - err = ompi_datatype_copy_content_same_ddt (rdtype, rcount, tmp_buffer, - (char *) rbuf + j * max_size); - if (MPI_SUCCESS != err) { line = __LINE__; goto error_hndl; } - - /* Exchange data with the peer */ - err = MCA_PML_CALL(irecv ((char *) rbuf + max_size * j, rcount, rdtype, - j, MCA_COLL_BASE_TAG_ALLTOALL, comm, &req)); - if (MPI_SUCCESS != err) { line = __LINE__; goto error_hndl; } - - err = MCA_PML_CALL(send ((char *) tmp_buffer, rcount, rdtype, - j, MCA_COLL_BASE_TAG_ALLTOALL, MCA_PML_BASE_SEND_STANDARD, - comm)); - if (MPI_SUCCESS != err) { line = __LINE__; goto error_hndl; } - } else if (j == rank) { - /* Copy the data into the temporary buffer */ - err = ompi_datatype_copy_content_same_ddt (rdtype, rcount, tmp_buffer, - (char *) rbuf + i * max_size); - if (MPI_SUCCESS != err) { line = __LINE__; goto error_hndl; } - - /* Exchange data with the peer */ - err = MCA_PML_CALL(irecv ((char *) rbuf + max_size * i, rcount, rdtype, - i, MCA_COLL_BASE_TAG_ALLTOALL, comm, &req)); - if (MPI_SUCCESS != err) { line = __LINE__; goto error_hndl; } - - err = MCA_PML_CALL(send ((char *) tmp_buffer, rcount, rdtype, - i, MCA_COLL_BASE_TAG_ALLTOALL, MCA_PML_BASE_SEND_STANDARD, - comm)); - if (MPI_SUCCESS != err) { line = __LINE__; goto error_hndl; } - } else { - continue; - } + tmp_buffer = calloc (max_size, 1); + if( NULL == tmp_buffer) { err = OMPI_ERR_OUT_OF_RESOURCE; line = __LINE__; goto error_hndl; } - /* Wait for the requests to complete */ - err = ompi_request_wait ( &req, MPI_STATUSES_IGNORE); - if (MPI_SUCCESS != err) { line = __LINE__; goto error_hndl; } + for (i = 1 ; i <= (size >> 1) ; ++i) { + struct iovec iov = {.iov_base = tmp_buffer, .iov_len = max_size}; + uint32_t iov_count = 1; + + right = (rank + i) % size; + left = (rank + size - i) % size; + + ompi_proc_t *right_proc = ompi_comm_peer_lookup(comm, right); + opal_convertor_clone(right_proc->super.proc_convertor, &convertor, 0); + opal_convertor_prepare_for_send(&convertor, &rdtype->super, rcount, + (char *) rbuf + right * rcount * extent); + packed_size = max_size; + err = opal_convertor_pack(&convertor, &iov, &iov_count, &packed_size); + if (1 != err) { goto error_hndl; } + + /* Receive data from the right */ + err = MCA_PML_CALL(irecv ((char *) rbuf + right * rcount * extent, rcount, rdtype, + right, MCA_COLL_BASE_TAG_ALLTOALL, comm, &req)); + if (MPI_SUCCESS != err) { goto error_hndl; } + + if( left != right ) { + /* Send data to the left */ + err = MCA_PML_CALL(send ((char *) rbuf + left * rcount * extent, rcount, rdtype, + left, MCA_COLL_BASE_TAG_ALLTOALL, MCA_PML_BASE_SEND_STANDARD, + comm)); + if (MPI_SUCCESS != err) { goto error_hndl; } + + err = ompi_request_wait (&req, MPI_STATUSES_IGNORE); + if (MPI_SUCCESS != err) { goto error_hndl; } + + /* Receive data from the left */ + err = MCA_PML_CALL(irecv ((char *) rbuf + left * rcount * extent, rcount, rdtype, + left, MCA_COLL_BASE_TAG_ALLTOALL, comm, &req)); + if (MPI_SUCCESS != err) { goto error_hndl; } } + + /* Send data to the right */ + err = MCA_PML_CALL(send ((char *) tmp_buffer, packed_size, MPI_PACKED, + right, MCA_COLL_BASE_TAG_ALLTOALL, MCA_PML_BASE_SEND_STANDARD, + comm)); + if (MPI_SUCCESS != err) { goto error_hndl; } + + err = ompi_request_wait (&req, MPI_STATUSES_IGNORE); + if (MPI_SUCCESS != err) { goto error_hndl; } } error_hndl: /* Free the temporary buffer */ - if( NULL != allocated_buffer ) - free (allocated_buffer); + if( NULL != tmp_buffer ) + free (tmp_buffer); if( MPI_SUCCESS != err ) { OPAL_OUTPUT((ompi_coll_base_framework.framework_output, @@ -393,6 +420,7 @@ if (0 < total_reqs) { reqs = ompi_coll_base_comm_get_reqs(module->base_data, 2 * total_reqs); if (NULL == reqs) { error = -1; line = __LINE__; goto error_hndl; } + reqs[0] = reqs[1] = MPI_REQUEST_NULL; } prcv = (char *) rbuf; @@ -468,6 +496,17 @@ return MPI_SUCCESS; error_hndl: + /* find a real error code */ + if (MPI_ERR_IN_STATUS == error) { + for( ri = 0; ri < nreqs; ri++ ) { + if (MPI_REQUEST_NULL == reqs[ri]) continue; + if (MPI_ERR_PENDING == reqs[ri]->req_status.MPI_ERROR) continue; + if (reqs[ri]->req_status.MPI_ERROR != MPI_SUCCESS) { + error = reqs[ri]->req_status.MPI_ERROR; + break; + } + } + } OPAL_OUTPUT((ompi_coll_base_framework.framework_output, "%s:%4d\tError occurred %d, rank %2d", __FILE__, line, error, rank)); @@ -661,7 +700,18 @@ if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } err_hndl: - if( MPI_SUCCESS != err ) { + if (MPI_SUCCESS != err) { + /* find a real error code */ + if (MPI_ERR_IN_STATUS == err) { + for( i = 0; i < nreqs; i++ ) { + if (MPI_REQUEST_NULL == req[i]) continue; + if (MPI_ERR_PENDING == req[i]->req_status.MPI_ERROR) continue; + if (req[i]->req_status.MPI_ERROR != MPI_SUCCESS) { + err = req[i]->req_status.MPI_ERROR; + break; + } + } + } OPAL_OUTPUT( (ompi_coll_base_framework.framework_output,"%s:%4d\tError occurred %d, rank %2d", __FILE__, line, err, rank) ); (void)line; // silence compiler warning diff -Nru openmpi-4.0.3/ompi/mca/coll/base/coll_base_alltoallv.c openmpi-4.1.4/ompi/mca/coll/base/coll_base_alltoallv.c --- openmpi-4.0.3/ompi/mca/coll/base/coll_base_alltoallv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/base/coll_base_alltoallv.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2016 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -17,6 +17,8 @@ * Copyright (c) 2014-2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2021 Amazon.com, Inc. or its affiliates. All Rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -29,6 +31,7 @@ #include "mpi.h" #include "ompi/constants.h" #include "ompi/datatype/ompi_datatype.h" +#include "opal/datatype/opal_convertor_internal.h" #include "ompi/communicator/communicator.h" #include "ompi/mca/coll/coll.h" #include "ompi/mca/coll/base/coll_tags.h" @@ -37,85 +40,130 @@ #include "coll_base_topo.h" #include "coll_base_util.h" +/* + * We want to minimize the amount of temporary memory needed while allowing as many ranks + * to exchange data simultaneously. We use a variation of the ring algorithm, where in a + * single step a process exchange the data with both neighbors at distance k (on the left + * and the right on a logical ring topology). With this approach we need to pack the data + * for a single of the two neighbors, as we can then use the original buffer (and datatype + * and count) to send the data to the other. + */ int mca_coll_base_alltoallv_intra_basic_inplace(const void *rbuf, const int *rcounts, const int *rdisps, struct ompi_datatype_t *rdtype, struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - int i, j, size, rank, err=MPI_SUCCESS; - char *allocated_buffer, *tmp_buffer; - size_t max_size; - ptrdiff_t ext, gap = 0; + int i, size, rank, left, right, err = MPI_SUCCESS, line; + ptrdiff_t extent; + ompi_request_t *req = MPI_REQUEST_NULL; + char *tmp_buffer; + size_t packed_size = 0, max_size, type_size; + opal_convertor_t convertor; /* Initialize. */ size = ompi_comm_size(comm); rank = ompi_comm_rank(comm); + ompi_datatype_type_size(rdtype, &type_size); - /* If only one process, we're done. */ - if (1 == size) { - return MPI_SUCCESS; - } - /* Find the largest receive amount */ - ompi_datatype_type_extent (rdtype, &ext); for (i = 0, max_size = 0 ; i < size ; ++i) { if (i == rank) { continue; } - size_t size = opal_datatype_span(&rdtype->super, rcounts[i], &gap); - max_size = size > max_size ? size : max_size; + packed_size = rcounts[i] * type_size; + max_size = packed_size > max_size ? packed_size : max_size; } - /* The gap will always be the same as we are working on the same datatype */ - if (OPAL_UNLIKELY(0 == max_size)) { + /* Easy way out */ + if ((1 == size) || (0 == max_size) ) { return MPI_SUCCESS; } + /* Find the largest amount of packed send/recv data among all peers where + * we need to pack before the send. + */ +#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT + for (i = 1 ; i <= (size >> 1) ; ++i) { + right = (rank + i) % size; + ompi_proc_t *ompi_proc = ompi_comm_peer_lookup(comm, right); + + if( OPAL_UNLIKELY(opal_local_arch != ompi_proc->super.proc_convertor->master->remote_arch)) { + packed_size = opal_datatype_compute_remote_size(&rdtype->super, + ompi_proc->super.proc_convertor->master->remote_sizes); + packed_size *= rcounts[right]; + max_size = packed_size > max_size ? packed_size : max_size; + } + } +#endif /* OPAL_ENABLE_HETEROGENEOUS_SUPPORT */ + + ompi_datatype_type_extent(rdtype, &extent); + /* Allocate a temporary buffer */ - allocated_buffer = calloc (max_size, 1); - if (NULL == allocated_buffer) { - return OMPI_ERR_OUT_OF_RESOURCE; - } - tmp_buffer = allocated_buffer - gap; - - /* Initiate all send/recv to/from others. */ - /* in-place alltoallv slow algorithm (but works) */ - for (i = 0 ; i < size ; ++i) { - for (j = i+1 ; j < size ; ++j) { - if (i == rank && 0 != rcounts[j]) { - /* Copy the data into the temporary buffer */ - err = ompi_datatype_copy_content_same_ddt (rdtype, rcounts[j], - tmp_buffer, (char *) rbuf + rdisps[j] * ext); - if (MPI_SUCCESS != err) { goto error_hndl; } - - /* Exchange data with the peer */ - err = ompi_coll_base_sendrecv_actual((void *) tmp_buffer, rcounts[j], rdtype, - j, MCA_COLL_BASE_TAG_ALLTOALLV, - (char *)rbuf + rdisps[j] * ext, rcounts[j], rdtype, - j, MCA_COLL_BASE_TAG_ALLTOALLV, - comm, MPI_STATUS_IGNORE); - if (MPI_SUCCESS != err) { goto error_hndl; } - } else if (j == rank && 0 != rcounts[i]) { - /* Copy the data into the temporary buffer */ - err = ompi_datatype_copy_content_same_ddt (rdtype, rcounts[i], - tmp_buffer, (char *) rbuf + rdisps[i] * ext); - if (MPI_SUCCESS != err) { goto error_hndl; } - - /* Exchange data with the peer */ - err = ompi_coll_base_sendrecv_actual((void *) tmp_buffer, rcounts[i], rdtype, - i, MCA_COLL_BASE_TAG_ALLTOALLV, - (char *) rbuf + rdisps[i] * ext, rcounts[i], rdtype, - i, MCA_COLL_BASE_TAG_ALLTOALLV, - comm, MPI_STATUS_IGNORE); - if (MPI_SUCCESS != err) { goto error_hndl; } - } + tmp_buffer = calloc (max_size, 1); + if( NULL == tmp_buffer) { err = OMPI_ERR_OUT_OF_RESOURCE; line = __LINE__; goto error_hndl; } + + for (i = 1 ; i <= (size >> 1) ; ++i) { + struct iovec iov = {.iov_base = tmp_buffer, .iov_len = max_size}; + uint32_t iov_count = 1; + + right = (rank + i) % size; + left = (rank + size - i) % size; + + if( 0 != rcounts[right] ) { /* nothing to exchange with the peer on the right */ + ompi_proc_t *right_proc = ompi_comm_peer_lookup(comm, right); + opal_convertor_clone(right_proc->super.proc_convertor, &convertor, 0); + opal_convertor_prepare_for_send(&convertor, &rdtype->super, rcounts[right], + (char *) rbuf + rdisps[right] * extent); + packed_size = max_size; + err = opal_convertor_pack(&convertor, &iov, &iov_count, &packed_size); + if (1 != err) { goto error_hndl; } + + /* Receive data from the right */ + err = MCA_PML_CALL(irecv ((char *) rbuf + rdisps[right] * extent, rcounts[right], rdtype, + right, MCA_COLL_BASE_TAG_ALLTOALLV, comm, &req)); + if (MPI_SUCCESS != err) { goto error_hndl; } + } + + if( (left != right) && (0 != rcounts[left]) ) { + /* Send data to the left */ + err = MCA_PML_CALL(send ((char *) rbuf + rdisps[left] * extent, rcounts[left], rdtype, + left, MCA_COLL_BASE_TAG_ALLTOALLV, MCA_PML_BASE_SEND_STANDARD, + comm)); + if (MPI_SUCCESS != err) { goto error_hndl; } + + err = ompi_request_wait (&req, MPI_STATUSES_IGNORE); + if (MPI_SUCCESS != err) { goto error_hndl; } + + /* Receive data from the left */ + err = MCA_PML_CALL(irecv ((char *) rbuf + rdisps[left] * extent, rcounts[left], rdtype, + left, MCA_COLL_BASE_TAG_ALLTOALLV, comm, &req)); + if (MPI_SUCCESS != err) { goto error_hndl; } } + + if( 0 != rcounts[right] ) { /* nothing to exchange with the peer on the right */ + /* Send data to the right */ + err = MCA_PML_CALL(send ((char *) tmp_buffer, packed_size, MPI_PACKED, + right, MCA_COLL_BASE_TAG_ALLTOALLV, MCA_PML_BASE_SEND_STANDARD, + comm)); + if (MPI_SUCCESS != err) { goto error_hndl; } + } + + err = ompi_request_wait (&req, MPI_STATUSES_IGNORE); + if (MPI_SUCCESS != err) { goto error_hndl; } } error_hndl: /* Free the temporary buffer */ - free (allocated_buffer); + if( NULL != tmp_buffer ) + free (tmp_buffer); + + if( MPI_SUCCESS != err ) { + OPAL_OUTPUT((ompi_coll_base_framework.framework_output, + "%s:%4d\tError occurred %d, rank %2d", __FILE__, line, err, + rank)); + (void)line; // silence compiler warning + } /* All done */ return err; @@ -276,6 +324,17 @@ err = ompi_request_wait_all(nreqs, reqs, MPI_STATUSES_IGNORE); err_hndl: + /* find a real error code */ + if (MPI_ERR_IN_STATUS == err) { + for( i = 0; i < nreqs; i++ ) { + if (MPI_REQUEST_NULL == reqs[i]) continue; + if (MPI_ERR_PENDING == reqs[i]->req_status.MPI_ERROR) continue; + if (reqs[i]->req_status.MPI_ERROR != MPI_SUCCESS) { + err = reqs[i]->req_status.MPI_ERROR; + break; + } + } + } /* Free the requests in all cases as they are persistent */ ompi_coll_base_free_reqs(reqs, nreqs); diff -Nru openmpi-4.0.3/ompi/mca/coll/base/coll_base_barrier.c openmpi-4.1.4/ompi/mca/coll/base/coll_base_barrier.c --- openmpi-4.0.3/ompi/mca/coll/base/coll_base_barrier.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/base/coll_base_barrier.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2016 The University of Tennessee and The University + * Copyright (c) 2004-2017 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -102,12 +102,14 @@ { int rank, size, err = 0, line = 0, left, right; - rank = ompi_comm_rank(comm); size = ompi_comm_size(comm); + if( 1 == size ) + return OMPI_SUCCESS; + rank = ompi_comm_rank(comm); OPAL_OUTPUT((ompi_coll_base_framework.framework_output,"ompi_coll_base_barrier_intra_doublering rank %d", rank)); - left = ((rank-1)%size); + left = ((size+rank-1)%size); right = ((rank+1)%size); if (rank > 0) { /* receive message from the left */ @@ -172,8 +174,10 @@ { int rank, size, adjsize, err, line, mask, remote; - rank = ompi_comm_rank(comm); size = ompi_comm_size(comm); + if( 1 == size ) + return OMPI_SUCCESS; + rank = ompi_comm_rank(comm); OPAL_OUTPUT((ompi_coll_base_framework.framework_output, "ompi_coll_base_barrier_intra_recursivedoubling rank %d", rank)); @@ -251,8 +255,10 @@ { int rank, size, distance, to, from, err, line = 0; - rank = ompi_comm_rank(comm); size = ompi_comm_size(comm); + if( 1 == size ) + return MPI_SUCCESS; + rank = ompi_comm_rank(comm); OPAL_OUTPUT((ompi_coll_base_framework.framework_output, "ompi_coll_base_barrier_intra_bruck rank %d", rank)); @@ -285,16 +291,19 @@ int ompi_coll_base_barrier_intra_two_procs(struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - int remote, err; + int remote, size, err; + + size = ompi_comm_size(comm); + if( 1 == size ) + return MPI_SUCCESS; + if( 2 != ompi_comm_size(comm) ) { + return MPI_ERR_UNSUPPORTED_OPERATION; + } remote = ompi_comm_rank(comm); OPAL_OUTPUT((ompi_coll_base_framework.framework_output, "ompi_coll_base_barrier_intra_two_procs rank %d", remote)); - if (2 != ompi_comm_size(comm)) { - return MPI_ERR_UNSUPPORTED_OPERATION; - } - remote = (remote + 1) & 0x1; err = ompi_coll_base_sendrecv_zero(remote, MCA_COLL_BASE_TAG_BARRIER, @@ -324,8 +333,10 @@ int i, err, rank, size, line; ompi_request_t** requests = NULL; - rank = ompi_comm_rank(comm); size = ompi_comm_size(comm); + if( 1 == size ) + return MPI_SUCCESS; + rank = ompi_comm_rank(comm); /* All non-root send & receive zero-length message. */ if (rank > 0) { @@ -367,11 +378,23 @@ /* All done */ return MPI_SUCCESS; err_hndl: + if( NULL != requests ) { + /* find a real error code */ + if (MPI_ERR_IN_STATUS == err) { + for( i = 0; i < size; i++ ) { + if (MPI_REQUEST_NULL == requests[i]) continue; + if (MPI_ERR_PENDING == requests[i]->req_status.MPI_ERROR) continue; + if (requests[i]->req_status.MPI_ERROR != MPI_SUCCESS) { + err = requests[i]->req_status.MPI_ERROR; + break; + } + } + } + ompi_coll_base_free_reqs(requests, size); + } OPAL_OUTPUT( (ompi_coll_base_framework.framework_output,"%s:%4d\tError occurred %d, rank %2d", __FILE__, line, err, rank) ); (void)line; // silence compiler warning - if( NULL != requests ) - ompi_coll_base_free_reqs(requests, size); return err; } /* copied function (with appropriate renaming) ends here */ @@ -385,8 +408,10 @@ { int rank, size, depth, err, jump, partner; - rank = ompi_comm_rank(comm); size = ompi_comm_size(comm); + if( 1 == size ) + return MPI_SUCCESS; + rank = ompi_comm_rank(comm); OPAL_OUTPUT((ompi_coll_base_framework.framework_output, "ompi_coll_base_barrier_intra_tree %d", rank)); diff -Nru openmpi-4.0.3/ompi/mca/coll/base/coll_base_bcast.c openmpi-4.1.4/ompi/mca/coll/base/coll_base_bcast.c --- openmpi-4.0.3/ompi/mca/coll/base/coll_base_bcast.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/base/coll_base_bcast.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2016 The University of Tennessee and The University + * Copyright (c) 2004-2017 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -214,13 +214,33 @@ return (MPI_SUCCESS); error_hndl: - OPAL_OUTPUT( (ompi_coll_base_framework.framework_output,"%s:%4d\tError occurred %d, rank %2d", - __FILE__, line, err, rank) ); - (void)line; // silence compiler warnings + if (MPI_ERR_IN_STATUS == err) { + for( req_index = 0; req_index < 2; req_index++ ) { + if (MPI_REQUEST_NULL == recv_reqs[req_index]) continue; + if (MPI_ERR_PENDING == recv_reqs[req_index]->req_status.MPI_ERROR) continue; + if (recv_reqs[req_index]->req_status.MPI_ERROR != MPI_SUCCESS) { + err = recv_reqs[req_index]->req_status.MPI_ERROR; + break; + } + } + } ompi_coll_base_free_reqs( recv_reqs, 2); if( NULL != send_reqs ) { + if (MPI_ERR_IN_STATUS == err) { + for( req_index = 0; req_index < tree->tree_nextsize; req_index++ ) { + if (MPI_REQUEST_NULL == send_reqs[req_index]) continue; + if (MPI_ERR_PENDING == send_reqs[req_index]->req_status.MPI_ERROR) continue; + if (send_reqs[req_index]->req_status.MPI_ERROR != MPI_SUCCESS) { + err = send_reqs[req_index]->req_status.MPI_ERROR; + break; + } + } + } ompi_coll_base_free_reqs(send_reqs, tree->tree_nextsize); } + OPAL_OUTPUT( (ompi_coll_base_framework.framework_output,"%s:%4d\tError occurred %d, rank %2d", + __FILE__, line, err, rank) ); + (void)line; // silence compiler warnings return err; } @@ -630,7 +650,9 @@ /* Root sends data to all others. */ preq = reqs = ompi_coll_base_comm_get_reqs(module->base_data, size-1); - if( NULL == reqs ) { err = OMPI_ERR_OUT_OF_RESOURCE; goto err_hndl; } + if( NULL == reqs ) { + return OMPI_ERR_OUT_OF_RESOURCE; + } for (i = 0; i < size; ++i) { if (i == rank) { @@ -649,12 +671,23 @@ * care what the error was -- just that there *was* an error. The * PML will finish all requests, even if one or more of them fail. * i.e., by the end of this call, all the requests are free-able. - * So free them anyway -- even if there was an error, and return - * the error after we free everything. */ + * So free them anyway -- even if there was an error. + * Note we still need to get the actual error, as collective + * operations cannot return MPI_ERR_IN_STATUS. + */ err = ompi_request_wait_all(i, reqs, MPI_STATUSES_IGNORE); err_hndl: if( MPI_SUCCESS != err ) { /* Free the reqs */ + /* first find the real error code */ + for( preq = reqs; preq < reqs+i; preq++ ) { + if (MPI_REQUEST_NULL == *preq) continue; + if (MPI_ERR_PENDING == (*preq)->req_status.MPI_ERROR) continue; + if ((*preq)->req_status.MPI_ERROR != MPI_SUCCESS) { + err = (*preq)->req_status.MPI_ERROR; + break; + } + } ompi_coll_base_free_reqs(reqs, i); } @@ -876,7 +909,7 @@ } else if ((vremote < vrank) && (vremote < tree_root + nprocs_alldata) && (vrank >= tree_root + nprocs_alldata)) { err = MCA_PML_CALL(recv((char *)buf + (ptrdiff_t)offset * extent, - count - offset, datatype, remote, + count, datatype, remote, MCA_COLL_BASE_TAG_BCAST, comm, &status)); if (MPI_SUCCESS != err) { goto cleanup_and_return; } diff -Nru openmpi-4.0.3/ompi/mca/coll/base/coll_base_comm_select.c openmpi-4.1.4/ompi/mca/coll/base/coll_base_comm_select.c --- openmpi-4.0.3/ompi/mca/coll/base/coll_base_comm_select.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/base/coll_base_comm_select.c 2022-05-29 09:51:40.000000000 +0000 @@ -21,6 +21,7 @@ * and Technology (RIST). All rights reserved. * Copyright (c) 2016-2017 IBM Corporation. All rights reserved. * Copyright (c) 2017 FUJITSU LIMITED. All rights reserved. + * Copyright (c) 2020 BULL S.A.S. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -37,6 +38,7 @@ #include "mpi.h" #include "ompi/communicator/communicator.h" #include "opal/util/output.h" +#include "opal/util/argv.h" #include "opal/util/show_help.h" #include "opal/class/opal_list.h" #include "opal/class/opal_object.h" @@ -44,20 +46,12 @@ #include "opal/mca/base/base.h" #include "ompi/mca/coll/coll.h" #include "ompi/mca/coll/base/base.h" - +#include "ompi/mca/coll/base/coll_base_util.h" /* - * Local types + * Stuff for the OBJ interface */ -struct avail_coll_t { - opal_list_item_t super; - - int ac_priority; - mca_coll_base_module_2_3_0_t *ac_module; - const char * ac_component_name; -}; -typedef struct avail_coll_t avail_coll_t; - +OBJ_CLASS_INSTANCE(mca_coll_base_avail_coll_t, opal_list_item_t, NULL, NULL); /* * Local functions @@ -77,12 +71,6 @@ int *priority, mca_coll_base_module_2_3_0_t ** module); -/* - * Stuff for the OBJ interface - */ -static OBJ_CLASS_INSTANCE(avail_coll_t, opal_list_item_t, NULL, NULL); - - #define COPY(module, comm, func) \ do { \ if (NULL != module->coll_ ## func) { \ @@ -138,11 +126,14 @@ /* FIX ME - Do some kind of collective operation to find a module that everyone has available */ + /* List to store every valid module */ + comm->c_coll->module_list = OBJ_NEW(opal_list_t); + /* do the selection loop */ for (item = opal_list_remove_first(selectable); NULL != item; item = opal_list_remove_first(selectable)) { - avail_coll_t *avail = (avail_coll_t *) item; + mca_coll_base_avail_coll_t *avail = (mca_coll_base_avail_coll_t *) item; /* initialize the module */ ret = avail->ac_module->coll_module_enable(avail->ac_module, comm); @@ -153,6 +144,9 @@ (OMPI_SUCCESS == ret ? "Enabled": "Disabled") ); if (OMPI_SUCCESS == ret) { + /* Save every component that is initialized, + * queried and enabled successfully */ + opal_list_append(comm->c_coll->module_list, &avail->super); /* copy over any of the pointers */ COPY(avail->ac_module, comm, allgather); @@ -230,10 +224,11 @@ COPY(avail->ac_module, comm, neighbor_alltoallw_init); COPY(avail->ac_module, comm, reduce_local); + } else { + /* release the original module reference and the list item */ + OBJ_RELEASE(avail->ac_module); + OBJ_RELEASE(avail); } - /* release the original module reference and the list item */ - OBJ_RELEASE(avail->ac_module); - OBJ_RELEASE(avail); } /* Done with the list from the check_components() call so release it. */ @@ -306,8 +301,8 @@ static int avail_coll_compare (opal_list_item_t **a, opal_list_item_t **b) { - avail_coll_t *acoll = (avail_coll_t *) *a; - avail_coll_t *bcoll = (avail_coll_t *) *b; + mca_coll_base_avail_coll_t *acoll = (mca_coll_base_avail_coll_t *) *a; + mca_coll_base_avail_coll_t *bcoll = (mca_coll_base_avail_coll_t *) *b; if (acoll->ac_priority > bcoll->ac_priority) { return 1; @@ -318,6 +313,20 @@ return 0; } +static inline int +component_in_argv(char **argv, const char* component_name) +{ + if( NULL != argv ) { + while( NULL != *argv ) { + if( 0 == strcmp(component_name, *argv) ) { + return 1; + } + argv++; /* move to the next argument */ + } + } + return 0; +} + /* * For each module in the list, check and see if it wants to run, and * do the resulting priority comparison. Make a list of modules to be @@ -327,13 +336,59 @@ static opal_list_t *check_components(opal_list_t * components, ompi_communicator_t * comm) { - int priority; + int priority, flag; + int count_include = 0; const mca_base_component_t *component; mca_base_component_list_item_t *cli; mca_coll_base_module_2_3_0_t *module; opal_list_t *selectable; - avail_coll_t *avail; - + mca_coll_base_avail_coll_t *avail; + char info_val[OPAL_MAX_INFO_VAL+1]; + char **coll_argv = NULL, **coll_exclude = NULL, **coll_include = NULL; + + /* Check if this communicator comes with restrictions on the collective modules + * it wants to use. The restrictions are consistent with the MCA parameter + * to limit the collective components loaded, but it applies for each + * communicator and is provided as an info key during the communicator + * creation. Unlike the MCA param, this info key is used not to select + * components but either to prevent components from being used or to + * force a change in the component priority. + */ + if( NULL != comm->super.s_info) { + opal_info_get(comm->super.s_info, "ompi_comm_coll_preference", + sizeof(info_val), info_val, &flag); + if( !flag ) { + goto proceed_to_select; + } + coll_argv = opal_argv_split(info_val, ','); + if(NULL == coll_argv) { + goto proceed_to_select; + } + int idx2; + count_include = opal_argv_count(coll_argv); + /* Allocate the coll_include argv */ + coll_include = (char**)malloc((count_include + 1) * sizeof(char*)); + coll_include[count_include] = NULL; /* NULL terminated array */ + /* Dispatch the include/exclude in the corresponding arrays */ + for( int idx = 0; NULL != coll_argv[idx]; idx++ ) { + if( '^' == coll_argv[idx][0] ) { + coll_include[idx] = NULL; /* NULL terminated array */ + + /* Allocate the coll_exclude argv */ + coll_exclude = (char**)malloc((count_include - idx + 1) * sizeof(char*)); + /* save the exclude components */ + for( idx2 = idx; NULL != coll_argv[idx2]; idx2++ ) { + coll_exclude[idx2 - idx] = coll_argv[idx2]; + } + coll_exclude[idx2 - idx] = NULL; /* NULL-terminated array */ + coll_exclude[0] = coll_exclude[0] + 1; /* get rid of the ^ */ + count_include = idx; + break; + } + coll_include[idx] = coll_argv[idx]; + } + } + proceed_to_select: /* Make a list of the components that query successfully */ selectable = OBJ_NEW(opal_list_t); @@ -341,11 +396,18 @@ OPAL_LIST_FOREACH(cli, &ompi_coll_base_framework.framework_components, mca_base_component_list_item_t) { component = cli->cli_component; + /* dont bother is we have this component in the exclusion list */ + if( component_in_argv(coll_exclude, component->mca_component_name) ) { + opal_output_verbose(10, ompi_coll_base_framework.framework_output, + "coll:base:comm_select: component disqualified: %s (due to communicator info key)", + component->mca_component_name ); + continue; + } priority = check_one_component(comm, component, &module); if (priority >= 0) { /* We have a component that indicated that it wants to run by giving us a module */ - avail = OBJ_NEW(avail_coll_t); + avail = OBJ_NEW(mca_coll_base_avail_coll_t); avail->ac_priority = priority; avail->ac_module = module; // Point to the string so we don't have to free later @@ -370,12 +432,42 @@ /* If we didn't find any available components, return an error */ if (0 == opal_list_get_size(selectable)) { OBJ_RELEASE(selectable); + if( NULL != coll_exclude ) { + free(coll_exclude); + } + if( NULL != coll_include ) { + free(coll_include); + } return NULL; } /* Put this list in priority order */ opal_list_sort(selectable, avail_coll_compare); + /* For all valid component reorder them not on their provided priorities but on + * the order requested in the info key. As at this point the coll_include is + * already ordered backward we can simply append the components. + * Note that the last element in selectable will have the highest priorty. + */ + for (int idx = count_include-1; idx >= 0; --idx) { + mca_coll_base_avail_coll_t *item; + OPAL_LIST_FOREACH(item, selectable, mca_coll_base_avail_coll_t) { + if (0 == strcmp(item->ac_component_name, coll_include[idx])) { + opal_list_remove_item(selectable, &item->super); + opal_list_append(selectable, &item->super); + break; + } + } + } + + opal_argv_free(coll_argv); + if( NULL != coll_exclude ) { + free(coll_exclude); + } + if( NULL != coll_include ) { + free(coll_include); + } + /* All done */ return selectable; } @@ -409,7 +501,6 @@ return priority; } - /************************************************************************** * Query functions **************************************************************************/ diff -Nru openmpi-4.0.3/ompi/mca/coll/base/coll_base_comm_unselect.c openmpi-4.1.4/ompi/mca/coll/base/coll_base_comm_unselect.c --- openmpi-4.0.3/ompi/mca/coll/base/coll_base_comm_unselect.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/base/coll_base_comm_unselect.c 2022-05-29 09:51:40.000000000 +0000 @@ -16,6 +16,7 @@ * and Technology (RIST). All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. * Copyright (c) 2017 FUJITSU LIMITED. All rights reserved. + * Copyright (c) 2020 BULL S.A.S. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -34,6 +35,7 @@ #include "ompi/communicator/communicator.h" #include "ompi/mca/coll/base/base.h" +#include "ompi/mca/coll/base/coll_base_util.h" #define CLOSE(comm, func) \ do { \ @@ -50,6 +52,8 @@ int mca_coll_base_comm_unselect(ompi_communicator_t * comm) { + opal_list_item_t *item; + CLOSE(comm, allgather); CLOSE(comm, allgatherv); CLOSE(comm, allreduce); @@ -124,6 +128,17 @@ CLOSE(comm, reduce_local); + for (item = opal_list_remove_first(comm->c_coll->module_list); + NULL != item; item = opal_list_remove_first(comm->c_coll->module_list)) { + mca_coll_base_avail_coll_t *avail = (mca_coll_base_avail_coll_t *) item; + + if(avail->ac_module) { + OBJ_RELEASE(avail->ac_module); + } + OBJ_RELEASE(avail); + } + OBJ_RELEASE(comm->c_coll->module_list); + free(comm->c_coll); comm->c_coll = NULL; diff -Nru openmpi-4.0.3/ompi/mca/coll/base/coll_base_functions.h openmpi-4.1.4/ompi/mca/coll/base/coll_base_functions.h --- openmpi-4.0.3/ompi/mca/coll/base/coll_base_functions.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/base/coll_base_functions.h 2022-05-29 09:51:40.000000000 +0000 @@ -18,6 +18,7 @@ * and Technology (RIST). All rights reserved. * Copyright (c) 2016-2017 IBM Corporation. All rights reserved. * Copyright (c) 2017 FUJITSU LIMITED. All rights reserved. + * Copyright (c) 2019 Mellanox Technologies. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -291,6 +292,7 @@ /* Scatter */ int ompi_coll_base_scatter_intra_basic_linear(SCATTER_ARGS); int ompi_coll_base_scatter_intra_binomial(SCATTER_ARGS); +int ompi_coll_base_scatter_intra_linear_nb(SCATTER_ARGS, int max_reqs); /* ScatterV */ diff -Nru openmpi-4.0.3/ompi/mca/coll/base/coll_base_gather.c openmpi-4.1.4/ompi/mca/coll/base/coll_base_gather.c --- openmpi-4.0.3/ompi/mca/coll/base/coll_base_gather.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/base/coll_base_gather.c 2022-05-29 09:51:40.000000000 +0000 @@ -326,6 +326,17 @@ return MPI_SUCCESS; error_hndl: if (NULL != reqs) { + /* find a real error code */ + if (MPI_ERR_IN_STATUS == ret) { + for( i = 0; i < size; i++ ) { + if (MPI_REQUEST_NULL == reqs[i]) continue; + if (MPI_ERR_PENDING == reqs[i]->req_status.MPI_ERROR) continue; + if (reqs[i]->req_status.MPI_ERROR != MPI_SUCCESS) { + ret = reqs[i]->req_status.MPI_ERROR; + break; + } + } + } ompi_coll_base_free_reqs(reqs, size); } OPAL_OUTPUT (( ompi_coll_base_framework.framework_output, diff -Nru openmpi-4.0.3/ompi/mca/coll/base/coll_base_reduce.c openmpi-4.1.4/ompi/mca/coll/base/coll_base_reduce.c --- openmpi-4.0.3/ompi/mca/coll/base/coll_base_reduce.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/base/coll_base_reduce.c 2022-05-29 09:51:40.000000000 +0000 @@ -338,16 +338,38 @@ return OMPI_SUCCESS; error_hndl: /* error handler */ + /* find a real error code */ + if (MPI_ERR_IN_STATUS == ret) { + for( i = 0; i < 2; i++ ) { + if (MPI_REQUEST_NULL == reqs[i]) continue; + if (MPI_ERR_PENDING == reqs[i]->req_status.MPI_ERROR) continue; + if (reqs[i]->req_status.MPI_ERROR != MPI_SUCCESS) { + ret = reqs[i]->req_status.MPI_ERROR; + break; + } + } + } + ompi_coll_base_free_reqs(reqs, 2); + if( NULL != sreq ) { + if (MPI_ERR_IN_STATUS == ret) { + for( i = 0; i < max_outstanding_reqs; i++ ) { + if (MPI_REQUEST_NULL == sreq[i]) continue; + if (MPI_ERR_PENDING == sreq[i]->req_status.MPI_ERROR) continue; + if (sreq[i]->req_status.MPI_ERROR != MPI_SUCCESS) { + ret = sreq[i]->req_status.MPI_ERROR; + break; + } + } + } + ompi_coll_base_free_reqs(sreq, max_outstanding_reqs); + } + if( inbuf_free[0] != NULL ) free(inbuf_free[0]); + if( inbuf_free[1] != NULL ) free(inbuf_free[1]); + if( accumbuf_free != NULL ) free(accumbuf); OPAL_OUTPUT (( ompi_coll_base_framework.framework_output, "ERROR_HNDL: node %d file %s line %d error %d\n", rank, __FILE__, line, ret )); (void)line; // silence compiler warning - if( inbuf_free[0] != NULL ) free(inbuf_free[0]); - if( inbuf_free[1] != NULL ) free(inbuf_free[1]); - if( accumbuf_free != NULL ) free(accumbuf); - if( NULL != sreq ) { - ompi_coll_base_free_reqs(sreq, max_outstanding_reqs); - } return ret; } diff -Nru openmpi-4.0.3/ompi/mca/coll/base/coll_base_reduce_scatter_block.c openmpi-4.1.4/ompi/mca/coll/base/coll_base_reduce_scatter_block.c --- openmpi-4.0.3/ompi/mca/coll/base/coll_base_reduce_scatter_block.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/base/coll_base_reduce_scatter_block.c 2022-05-29 09:51:40.000000000 +0000 @@ -17,6 +17,7 @@ * and Technology (RIST). All rights reserved. * Copyright (c) 2018 Siberian State University of Telecommunications * and Information Sciences. All rights reserved. + * Copyright (c) 2022 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -58,7 +59,8 @@ struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - int rank, size, count, err = OMPI_SUCCESS; + int rank, size, err = OMPI_SUCCESS; + size_t count; ptrdiff_t gap, span; char *recv_buf = NULL, *recv_buf_free = NULL; @@ -67,40 +69,106 @@ size = ompi_comm_size(comm); /* short cut the trivial case */ - count = rcount * size; + count = rcount * (size_t)size; if (0 == count) { return OMPI_SUCCESS; } - /* get datatype information */ - span = opal_datatype_span(&dtype->super, count, &gap); - /* Handle MPI_IN_PLACE */ if (MPI_IN_PLACE == sbuf) { sbuf = rbuf; } - if (0 == rank) { - /* temporary receive buffer. See coll_basic_reduce.c for - details on sizing */ - recv_buf_free = (char*) malloc(span); - if (NULL == recv_buf_free) { - err = OMPI_ERR_OUT_OF_RESOURCE; - goto cleanup; + /* + * For large payload (defined as a count greater than INT_MAX) + * to reduce the memory footprint on the root we segment the + * reductions per rank, then send to each rank. + * + * Additionally, sending the message in the coll_reduce() as + * "rcount*size" would exceed the 'int count' parameter in the + * coll_reduce() function. So another technique is required + * for count values that exceed INT_MAX. + */ + if ( OPAL_UNLIKELY(count > INT_MAX) ) { + int i; + void *sbuf_ptr; + + /* Get datatype information for an individual block */ + span = opal_datatype_span(&dtype->super, rcount, &gap); + + if (0 == rank) { + /* temporary receive buffer. See coll_basic_reduce.c for + details on sizing */ + recv_buf_free = (char*) malloc(span); + if (NULL == recv_buf_free) { + err = OMPI_ERR_OUT_OF_RESOURCE; + goto cleanup; + } + recv_buf = recv_buf_free - gap; + } + + for( i = 0; i < size; ++i ) { + /* Calculate the portion of the send buffer to reduce over */ + sbuf_ptr = (char*)sbuf + span * (size_t)i; + + /* Reduction for this peer */ + err = comm->c_coll->coll_reduce(sbuf_ptr, recv_buf, rcount, + dtype, op, 0, comm, + comm->c_coll->coll_reduce_module); + if (MPI_SUCCESS != err) { + goto cleanup; + } + + /* Send reduce results to this peer */ + if (0 == rank ) { + if( i == rank ) { + err = ompi_datatype_copy_content_same_ddt(dtype, rcount, rbuf, recv_buf); + } else { + err = MCA_PML_CALL(send(recv_buf, rcount, dtype, i, + MCA_COLL_BASE_TAG_REDUCE_SCATTER_BLOCK, + MCA_PML_BASE_SEND_STANDARD, comm)); + } + if (MPI_SUCCESS != err) { + goto cleanup; + } + } + else if( i == rank ) { + err = MCA_PML_CALL(recv(rbuf, rcount, dtype, 0, + MCA_COLL_BASE_TAG_REDUCE_SCATTER_BLOCK, + comm, MPI_STATUS_IGNORE)); + if (MPI_SUCCESS != err) { + goto cleanup; + } + } } - recv_buf = recv_buf_free - gap; } + else { + /* get datatype information */ + span = opal_datatype_span(&dtype->super, count, &gap); + + if (0 == rank) { + /* temporary receive buffer. See coll_basic_reduce.c for + details on sizing */ + recv_buf_free = (char*) malloc(span); + if (NULL == recv_buf_free) { + err = OMPI_ERR_OUT_OF_RESOURCE; + goto cleanup; + } + recv_buf = recv_buf_free - gap; + } - /* reduction */ - err = - comm->c_coll->coll_reduce(sbuf, recv_buf, count, dtype, op, 0, - comm, comm->c_coll->coll_reduce_module); + /* reduction */ + err = + comm->c_coll->coll_reduce(sbuf, recv_buf, (int)count, dtype, op, 0, + comm, comm->c_coll->coll_reduce_module); + if (MPI_SUCCESS != err) { + goto cleanup; + } - /* scatter */ - if (MPI_SUCCESS == err) { + /* scatter */ err = comm->c_coll->coll_scatter(recv_buf, rcount, dtype, - rbuf, rcount, dtype, 0, - comm, comm->c_coll->coll_scatter_module); + rbuf, rcount, dtype, 0, + comm, comm->c_coll->coll_scatter_module); } cleanup: @@ -146,7 +214,16 @@ if (comm_size < 2) return MPI_SUCCESS; - totalcount = comm_size * rcount; + totalcount = comm_size * (size_t)rcount; + if( OPAL_UNLIKELY(totalcount > INT_MAX) ) { + /* + * Large payload collectives are not supported by this algorithm. + * The blocklens and displs calculations in the loop below + * will overflow an int data type. + * Fallback to the linear algorithm. + */ + return ompi_coll_base_reduce_scatter_block_basic_linear(sbuf, rbuf, rcount, dtype, op, comm, module); + } ompi_datatype_type_extent(dtype, &extent); span = opal_datatype_span(&dtype->super, totalcount, &gap); tmpbuf_raw = malloc(span); @@ -347,7 +424,8 @@ return ompi_coll_base_reduce_scatter_block_basic_linear(sbuf, rbuf, rcount, dtype, op, comm, module); } - totalcount = comm_size * rcount; + + totalcount = comm_size * (size_t)rcount; ompi_datatype_type_extent(dtype, &extent); span = opal_datatype_span(&dtype->super, totalcount, &gap); tmpbuf_raw = malloc(span); @@ -431,22 +509,22 @@ * have their result calculated by the process to their * right (rank + 1). */ - int send_count = 0, recv_count = 0; + size_t send_count = 0, recv_count = 0; if (vrank < vpeer) { /* Send the right half of the buffer, recv the left half */ send_index = recv_index + mask; - send_count = rcount * ompi_range_sum(send_index, last_index - 1, nprocs_rem - 1); - recv_count = rcount * ompi_range_sum(recv_index, send_index - 1, nprocs_rem - 1); + send_count = rcount * (size_t)ompi_range_sum(send_index, last_index - 1, nprocs_rem - 1); + recv_count = rcount * (size_t)ompi_range_sum(recv_index, send_index - 1, nprocs_rem - 1); } else { /* Send the left half of the buffer, recv the right half */ recv_index = send_index + mask; - send_count = rcount * ompi_range_sum(send_index, recv_index - 1, nprocs_rem - 1); - recv_count = rcount * ompi_range_sum(recv_index, last_index - 1, nprocs_rem - 1); + send_count = rcount * (size_t)ompi_range_sum(send_index, recv_index - 1, nprocs_rem - 1); + recv_count = rcount * (size_t)ompi_range_sum(recv_index, last_index - 1, nprocs_rem - 1); } - ptrdiff_t rdispl = rcount * ((recv_index <= nprocs_rem - 1) ? - 2 * recv_index : nprocs_rem + recv_index); - ptrdiff_t sdispl = rcount * ((send_index <= nprocs_rem - 1) ? - 2 * send_index : nprocs_rem + send_index); + ptrdiff_t rdispl = rcount * (size_t)((recv_index <= nprocs_rem - 1) ? + 2 * recv_index : nprocs_rem + recv_index); + ptrdiff_t sdispl = rcount * (size_t)((send_index <= nprocs_rem - 1) ? + 2 * send_index : nprocs_rem + send_index); struct ompi_request_t *request = NULL; if (recv_count > 0) { @@ -587,7 +665,7 @@ sbuf, rbuf, rcount, dtype, op, comm, module); } - totalcount = comm_size * rcount; + totalcount = comm_size * (size_t)rcount; ompi_datatype_type_extent(dtype, &extent); span = opal_datatype_span(&dtype->super, totalcount, &gap); tmpbuf[0] = malloc(span); @@ -677,13 +755,17 @@ /* Send the upper half of reduction buffer, recv the lower half */ recv_index += nblocks; } - int send_count = rcount * ompi_range_sum(send_index, - send_index + nblocks - 1, nprocs_rem - 1); - int recv_count = rcount * ompi_range_sum(recv_index, - recv_index + nblocks - 1, nprocs_rem - 1); - ptrdiff_t sdispl = rcount * ((send_index <= nprocs_rem - 1) ? + size_t send_count = rcount * + (size_t)ompi_range_sum(send_index, + send_index + nblocks - 1, + nprocs_rem - 1); + size_t recv_count = rcount * + (size_t)ompi_range_sum(recv_index, + recv_index + nblocks - 1, + nprocs_rem - 1); + ptrdiff_t sdispl = rcount * (size_t)((send_index <= nprocs_rem - 1) ? 2 * send_index : nprocs_rem + send_index); - ptrdiff_t rdispl = rcount * ((recv_index <= nprocs_rem - 1) ? + ptrdiff_t rdispl = rcount * (size_t)((recv_index <= nprocs_rem - 1) ? 2 * recv_index : nprocs_rem + recv_index); err = ompi_coll_base_sendrecv(psend + (ptrdiff_t)sdispl * extent, send_count, @@ -719,7 +801,7 @@ * Process has two blocks: for excluded process and own. * Send result to the excluded process. */ - ptrdiff_t sdispl = rcount * ((send_index <= nprocs_rem - 1) ? + ptrdiff_t sdispl = rcount * (size_t)((send_index <= nprocs_rem - 1) ? 2 * send_index : nprocs_rem + send_index); err = MCA_PML_CALL(send(psend + (ptrdiff_t)sdispl * extent, rcount, dtype, peer - 1, @@ -729,7 +811,7 @@ } /* Send result to a remote process according to a mirror permutation */ - ptrdiff_t sdispl = rcount * ((send_index <= nprocs_rem - 1) ? + ptrdiff_t sdispl = rcount * (size_t)((send_index <= nprocs_rem - 1) ? 2 * send_index : nprocs_rem + send_index); /* If process has two blocks, then send the second block (own block) */ if (vpeer < nprocs_rem) @@ -821,7 +903,7 @@ if (rcount == 0 || comm_size < 2) return MPI_SUCCESS; - totalcount = comm_size * rcount; + totalcount = comm_size * (size_t)rcount; ompi_datatype_type_extent(dtype, &extent); span = opal_datatype_span(&dtype->super, totalcount, &gap); tmpbuf[0] = malloc(span); @@ -843,7 +925,7 @@ if (MPI_SUCCESS != err) { goto cleanup_and_return; } } - int nblocks = totalcount, send_index = 0, recv_index = 0; + size_t nblocks = totalcount, send_index = 0, recv_index = 0; for (int mask = 1; mask < comm_size; mask <<= 1) { int peer = rank ^ mask; nblocks /= 2; diff -Nru openmpi-4.0.3/ompi/mca/coll/base/coll_base_reduce_scatter.c openmpi-4.1.4/ompi/mca/coll/base/coll_base_reduce_scatter.c --- openmpi-4.0.3/ompi/mca/coll/base/coll_base_reduce_scatter.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/base/coll_base_reduce_scatter.c 2022-05-29 09:51:40.000000000 +0000 @@ -464,7 +464,7 @@ char *tmpsend = NULL, *tmprecv = NULL, *accumbuf = NULL, *accumbuf_free = NULL; char *inbuf_free[2] = {NULL, NULL}, *inbuf[2] = {NULL, NULL}; ptrdiff_t extent, max_real_segsize, dsize, gap = 0; - ompi_request_t *reqs[2] = {NULL, NULL}; + ompi_request_t *reqs[2] = {MPI_REQUEST_NULL, MPI_REQUEST_NULL}; size = ompi_comm_size(comm); rank = ompi_comm_rank(comm); diff -Nru openmpi-4.0.3/ompi/mca/coll/base/coll_base_scatter.c openmpi-4.1.4/ompi/mca/coll/base/coll_base_scatter.c --- openmpi-4.0.3/ompi/mca/coll/base/coll_base_scatter.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/base/coll_base_scatter.c 2022-05-29 09:51:40.000000000 +0000 @@ -14,6 +14,7 @@ * reserved. * Copyright (c) 2015-2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2019 Mellanox Technologies. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -65,12 +66,14 @@ int root, struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - int line = -1, rank, vrank, size, err; - char *ptmp, *tempbuf = NULL; - MPI_Status status; mca_coll_base_module_t *base_module = (mca_coll_base_module_t*)module; mca_coll_base_comm_t *data = base_module->base_data; - ptrdiff_t sextent, rextent, ssize, rsize, sgap = 0, rgap = 0; + int line = -1, rank, vrank, size, err, packed_size, curr_count; + char *ptmp, *tempbuf = NULL; + size_t max_data, packed_sizet; + opal_convertor_t convertor; + ptrdiff_t sextent; + MPI_Status status; size = ompi_comm_size(comm); rank = ompi_comm_rank(comm); @@ -88,99 +91,101 @@ vrank = (rank - root + size) % size; ptmp = (char *)rbuf; /* by default suppose leaf nodes, just use rbuf */ - if (rank == root) { + if ( vrank % 2 ) { /* leaves */ + /* recv from parent on leaf nodes */ + err = MCA_PML_CALL(recv(rbuf, rcount, rdtype, bmtree->tree_prev, + MCA_COLL_BASE_TAG_SCATTER, comm, &status)); + if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } + return MPI_SUCCESS; + + } + OBJ_CONSTRUCT( &convertor, opal_convertor_t ); + if (rank == root) { /* root and non-leafs */ ompi_datatype_type_extent(sdtype, &sextent); - ssize = opal_datatype_span(&sdtype->super, (int64_t)scount * size, &sgap); - if (0 == root) { - /* root on 0, just use the send buffer */ - ptmp = (char *)sbuf; - if (rbuf != MPI_IN_PLACE) { - /* local copy to rbuf */ - err = ompi_datatype_sndrcv(sbuf, scount, sdtype, - rbuf, rcount, rdtype); - if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } - } - } else { - /* root is not on 0, allocate temp buffer for send */ - tempbuf = (char *)malloc(ssize); + ptmp = (char *)sbuf; /* if root == 0, just use the send buffer */ + if (0 != root) { + opal_convertor_copy_and_prepare_for_send( ompi_mpi_local_convertor, &(sdtype->super), + scount * size, sbuf, 0, &convertor ); + opal_convertor_get_packed_size( &convertor, &packed_sizet ); + packed_size = (int)packed_sizet; + packed_sizet = packed_sizet / size; + ptmp = tempbuf = (char *)malloc(packed_size); if (NULL == tempbuf) { err = OMPI_ERR_OUT_OF_RESOURCE; line = __LINE__; goto err_hndl; } - ptmp = tempbuf - sgap; - - /* and rotate data so they will eventually in the right place */ - err = ompi_datatype_copy_content_same_ddt(sdtype, (ptrdiff_t)scount * (ptrdiff_t)(size - root), - ptmp, (char *) sbuf + sextent * (ptrdiff_t)root * (ptrdiff_t)scount); - if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } - - err = ompi_datatype_copy_content_same_ddt(sdtype, (ptrdiff_t)scount * (ptrdiff_t)root, - ptmp + sextent * (ptrdiff_t)scount * (ptrdiff_t)(size - root), (char *)sbuf); - if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } - - if (rbuf != MPI_IN_PLACE) { - /* local copy to rbuf */ - err = ompi_datatype_sndrcv(ptmp, scount, sdtype, - rbuf, rcount, rdtype); - if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } - } + /* rotate data so they will eventually be in the right place */ + struct iovec iov[1]; + uint32_t iov_size = 1; + + iov[0].iov_base = ptmp + (ptrdiff_t)(size - root) * packed_sizet; + iov[0].iov_len = max_data = packed_sizet * (ptrdiff_t)root; + opal_convertor_pack(&convertor, iov, &iov_size, &max_data); + + iov[0].iov_base = ptmp; + iov[0].iov_len = max_data = packed_sizet * (ptrdiff_t)(size - root); + opal_convertor_pack(&convertor, iov, &iov_size, &max_data); + OBJ_DESTRUCT(&convertor); + + sdtype = MPI_PACKED; + sextent = 1; /* bytes */ + scount = packed_size / size; } - } else if (!(vrank % 2)) { - /* non-root, non-leaf nodes, allocate temp buffer for recv - * the most we need is rcount*size/2 */ - ompi_datatype_type_extent(rdtype, &rextent); - rsize = opal_datatype_span(&rdtype->super, (int64_t)rcount * size, &rgap); - tempbuf = (char *)malloc(rsize / 2); + curr_count = scount * size; + } else { /* (!(vrank % 2)) */ + opal_convertor_copy_and_prepare_for_send( ompi_mpi_local_convertor, &(rdtype->super), + rcount, NULL, 0, &convertor ); + opal_convertor_get_packed_size( &convertor, &packed_sizet ); + scount = (int)packed_sizet; + + sdtype = MPI_PACKED; /* default to MPI_PACKED as the send type */ + + /* non-root, non-leaf nodes, allocate temp buffer for recv the most we need is rcount*size/2 (an upper bound) */ + int vparent = (bmtree->tree_prev - root + size) % size; + int subtree_size = vrank - vparent; + if (size - vrank < subtree_size) + subtree_size = size - vrank; + packed_size = scount * subtree_size; + + ptmp = tempbuf = (char *)malloc(packed_size); if (NULL == tempbuf) { err = OMPI_ERR_OUT_OF_RESOURCE; line = __LINE__; goto err_hndl; } - ptmp = tempbuf - rgap; - sdtype = rdtype; - scount = rcount; - sextent = rextent; - } - - int curr_count = (rank == root) ? scount * size : 0; - if (!(vrank % 2)) { - if (rank != root) { - /* recv from parent on non-root */ - err = MCA_PML_CALL(recv(ptmp, (ptrdiff_t)rcount * (ptrdiff_t)size, rdtype, bmtree->tree_prev, - MCA_COLL_BASE_TAG_SCATTER, comm, &status)); - if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } - - /* Get received count */ - size_t rdtype_size; - ompi_datatype_type_size(rdtype, &rdtype_size); - curr_count = (int)(status._ucount / rdtype_size); - - /* local copy to rbuf */ - err = ompi_datatype_sndrcv(ptmp, scount, sdtype, - rbuf, rcount, rdtype); - if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } - } - /* send to children on all non-leaf */ - for (int i = bmtree->tree_nextsize - 1; i >= 0; i--) { - /* figure out how much data I have to send to this child */ - int vchild = (bmtree->tree_next[i] - root + size) % size; - int send_count = vchild - vrank; - if (send_count > size - vchild) - send_count = size - vchild; - send_count *= scount; - err = MCA_PML_CALL(send(ptmp + (ptrdiff_t)(curr_count - send_count) * sextent, - send_count, sdtype, bmtree->tree_next[i], - MCA_COLL_BASE_TAG_SCATTER, - MCA_PML_BASE_SEND_STANDARD, comm)); - if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } - curr_count -= send_count; - } - if (NULL != tempbuf) - free(tempbuf); - } else { - /* recv from parent on leaf nodes */ - err = MCA_PML_CALL(recv(ptmp, rcount, rdtype, bmtree->tree_prev, + + /* recv from parent on non-root */ + err = MCA_PML_CALL(recv(ptmp, (ptrdiff_t)packed_size, MPI_PACKED, bmtree->tree_prev, MCA_COLL_BASE_TAG_SCATTER, comm, &status)); if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } + + /* Get received count */ + curr_count = (int)status._ucount; /* no need for conversion, work in bytes */ + sextent = 1; /* bytes */ + } + + if (rbuf != MPI_IN_PLACE) { /* local copy to rbuf */ + err = ompi_datatype_sndrcv(ptmp, scount, sdtype, + rbuf, rcount, rdtype); + if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } } + /* send to children on all non-leaf */ + for (int i = bmtree->tree_nextsize - 1; i >= 0; i--) { + /* figure out how much data I have to send to this child */ + int vchild = (bmtree->tree_next[i] - root + size) % size; + int send_count = vchild - vrank; + if (send_count > size - vchild) + send_count = size - vchild; + send_count *= scount; + + err = MCA_PML_CALL(send(ptmp + (ptrdiff_t)(curr_count - send_count) * sextent, + send_count, sdtype, bmtree->tree_next[i], + MCA_COLL_BASE_TAG_SCATTER, + MCA_PML_BASE_SEND_STANDARD, comm)); + if (MPI_SUCCESS != err) { line = __LINE__; goto err_hndl; } + curr_count -= send_count; + } + if (NULL != tempbuf) + free(tempbuf); + return MPI_SUCCESS; err_hndl: @@ -273,5 +278,116 @@ return MPI_SUCCESS; } - /* copied function (with appropriate renaming) ends here */ + +/* + * Use isends for distributing the data with periodic sync by blocking send. + * Blocking send acts like a local resources flush, because it ensures + * progression until the message is sent/(copied to some sort of transmit buffer). + */ +int +ompi_coll_base_scatter_intra_linear_nb(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, int rcount, + struct ompi_datatype_t *rdtype, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module, + int max_reqs) +{ + int i, rank, size, err, line, nreqs; + ptrdiff_t incr; + char *ptmp; + ompi_request_t **reqs = NULL, **preq; + + rank = ompi_comm_rank(comm); + size = ompi_comm_size(comm); + + /* If not root, receive data. */ + if (rank != root) { + err = MCA_PML_CALL(recv(rbuf, rcount, rdtype, root, + MCA_COLL_BASE_TAG_SCATTER, + comm, MPI_STATUS_IGNORE)); + if (MPI_SUCCESS != err) { + line = __LINE__; goto err_hndl; + } + + return MPI_SUCCESS; + } + + if (max_reqs <= 1) { + max_reqs = 0; + nreqs = size - 1; /* no send for myself */ + } else { + /* We use blocking MPI_Send (which does not need a request) + * every max_reqs send operation (which is size/max_reqs at most), + * therefore no need to allocate requests for these sends. */ + nreqs = size - (size / max_reqs); + } + + reqs = ompi_coll_base_comm_get_reqs(module->base_data, nreqs); + if (NULL == reqs) { + err = OMPI_ERR_OUT_OF_RESOURCE; + line = __LINE__; goto err_hndl; + } + + err = ompi_datatype_type_extent(sdtype, &incr); + if (OMPI_SUCCESS != err) { + line = __LINE__; goto err_hndl; + } + incr *= scount; + + /* I am the root, loop sending data. */ + for (i = 0, ptmp = (char *)sbuf, preq = reqs; i < size; ++i, ptmp += incr) { + /* simple optimization */ + if (i == rank) { + if (MPI_IN_PLACE != rbuf) { + err = ompi_datatype_sndrcv(ptmp, scount, sdtype, rbuf, rcount, + rdtype); + } + } else { + if (!max_reqs || (i % max_reqs)) { + err = MCA_PML_CALL(isend(ptmp, scount, sdtype, i, + MCA_COLL_BASE_TAG_SCATTER, + MCA_PML_BASE_SEND_STANDARD, + comm, preq++)); + } else { + err = MCA_PML_CALL(send(ptmp, scount, sdtype, i, + MCA_COLL_BASE_TAG_SCATTER, + MCA_PML_BASE_SEND_STANDARD, + comm)); + } + } + if (MPI_SUCCESS != err) { + line = __LINE__; goto err_hndl; + } + } + + err = ompi_request_wait_all(preq - reqs, reqs, MPI_STATUSES_IGNORE); + if (MPI_SUCCESS != err) { + line = __LINE__; goto err_hndl; + } + + return MPI_SUCCESS; + +err_hndl: + if (NULL != reqs) { + /* find a real error code */ + if (MPI_ERR_IN_STATUS == err) { + for (i = 0; i < nreqs; i++) { + if (MPI_REQUEST_NULL == reqs[i]) continue; + if (MPI_ERR_PENDING == reqs[i]->req_status.MPI_ERROR) continue; + if (reqs[i]->req_status.MPI_ERROR != MPI_SUCCESS) { + err = reqs[i]->req_status.MPI_ERROR; + break; + } + } + } + ompi_coll_base_free_reqs(reqs, nreqs); + } + OPAL_OUTPUT((ompi_coll_base_framework.framework_output, + "%s:%4d\tError occurred %d, rank %2d", __FILE__, line, err, rank)); + (void)line; /* silence compiler warning */ + return err; +} + diff -Nru openmpi-4.0.3/ompi/mca/coll/base/coll_base_util.c openmpi-4.1.4/ompi/mca/coll/base/coll_base_util.c --- openmpi-4.0.3/ompi/mca/coll/base/coll_base_util.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/base/coll_base_util.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,14 +2,14 @@ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2016 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2014-2019 Research Organization for Information Science + * Copyright (c) 2014-2020 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * @@ -29,6 +29,8 @@ #include "ompi/mca/topo/base/base.h" #include "ompi/mca/pml/pml.h" #include "coll_base_util.h" +#include "coll_base_functions.h" +#include int ompi_coll_base_sendrecv_actual( const void* sendbuf, size_t scount, ompi_datatype_t* sdatatype, @@ -42,7 +44,7 @@ { /* post receive first, then send, then wait... should be fast (I hope) */ int err, line = 0; size_t rtypesize, stypesize; - ompi_request_t *req; + ompi_request_t *req = MPI_REQUEST_NULL; ompi_status_public_t rstatus; /* post new irecv */ @@ -218,7 +220,7 @@ if (NULL != request->data.vecs.stypes) { for (int i=0; idata.vecs.stypes[i]) { - OMPI_DATATYPE_RELEASE(request->data.vecs.stypes[i]); + OMPI_DATATYPE_RELEASE_NO_NULLIFY(request->data.vecs.stypes[i]); } } request->data.vecs.stypes = NULL; @@ -226,7 +228,7 @@ if (NULL != request->data.vecs.rtypes) { for (int i=0; idata.vecs.rtypes[i]) { - OMPI_DATATYPE_RELEASE(request->data.vecs.rtypes[i]); + OMPI_DATATYPE_RELEASE_NO_NULLIFY(request->data.vecs.rtypes[i]); } } request->data.vecs.rtypes = NULL; @@ -255,7 +257,7 @@ } int ompi_coll_base_retain_datatypes_w( ompi_request_t *req, - ompi_datatype_t *stypes[], ompi_datatype_t *rtypes[]) { + ompi_datatype_t *const stypes[], ompi_datatype_t *const rtypes[]) { ompi_coll_base_nbc_request_t *request = (ompi_coll_base_nbc_request_t *)req; bool retain = false; ompi_communicator_t *comm = request->super.req_mpi_object.comm; @@ -268,7 +270,7 @@ } else { scount = rcount = OMPI_COMM_IS_INTER(comm)?ompi_comm_remote_size(comm):ompi_comm_size(comm); } - + for (int i=0; icb.req_complete_cb = NULL; req->req_complete_cb_data = NULL; req->data.objs.objs[0] = NULL; @@ -305,3 +308,253 @@ } OBJ_CLASS_INSTANCE(ompi_coll_base_nbc_request_t, ompi_request_t, nbc_req_cons, NULL); + +/* File reading functions */ +static void skiptonewline (FILE *fptr, int *fileline) +{ + char val; + int rc; + + do { + rc = fread(&val, 1, 1, fptr); + if (0 == rc) { + return; + } + if ('\n' == val) { + (*fileline)++; + return; + } + } while (1); +} + +int ompi_coll_base_file_getnext_long(FILE *fptr, int *fileline, long* val) +{ + char trash; + int rc; + + do { + rc = fscanf(fptr, "%li", val); + if (rc == EOF) { + return -1; + } + if (1 == rc) { + return 0; + } + /* in all other cases, skip to the end of the token */ + rc = fread(&trash, sizeof(char), 1, fptr); + if (rc == EOF) { + return -1; + } + if ('\n' == trash) (*fileline)++; + if ('#' == trash) { + skiptonewline (fptr, fileline); + } + } while (1); +} + +int ompi_coll_base_file_getnext_string(FILE *fptr, int *fileline, char** val) +{ + char trash, token[32]; + int rc; + + *val = NULL; /* security in case we fail */ + do { + rc = fscanf(fptr, "%32s", token); + if (rc == EOF) { + return -1; + } + if (1 == rc) { + if( '#' == token[0] ) { + skiptonewline(fptr, fileline); + continue; + } + *val = (char*)malloc(strlen(token) + 1); + strcpy(*val, token); + return 0; + } + /* in all other cases, skip to the end of the token */ + rc = fread(&trash, sizeof(char), 1, fptr); + if (rc == EOF) { + return -1; + } + if ('\n' == trash) (*fileline)++; + if ('#' == trash) { + skiptonewline (fptr, fileline); + } + } while (1); +} + +int ompi_coll_base_file_getnext_size_t(FILE *fptr, int *fileline, size_t* val) +{ + char trash; + int rc; + + do { + rc = fscanf(fptr, "%" PRIsize_t, val); + if (rc == EOF) { + return -1; + } + if (1 == rc) { + return 0; + } + /* in all other cases, skip to the end of the token */ + rc = fread(&trash, sizeof(char), 1, fptr); + if (rc == EOF) { + return -1; + } + if ('\n' == trash) (*fileline)++; + if ('#' == trash) { + skiptonewline (fptr, fileline); + } + } while (1); +} + +int ompi_coll_base_file_peek_next_char_is(FILE *fptr, int *fileline, int expected) +{ + char trash; + int rc; + + do { + rc = fread(&trash, sizeof(char), 1, fptr); + if (0 == rc) { /* hit the end of the file */ + return -1; + } + if ('\n' == trash) { + (*fileline)++; + continue; + } + if ('#' == trash) { + skiptonewline (fptr, fileline); + continue; + } + if( trash == expected ) + return 1; /* return true and eat the char */ + if( isblank(trash) ) /* skip all spaces if that's not what we were looking for */ + continue; + if( 0 != fseek(fptr, -1, SEEK_CUR) ) + return -1; + return 0; + } while (1); +} + +/** + * There are certainly simpler implementation for this function when performance + * is not a critical point. But, as this function is used during the collective + * configuration, and we can do this configurations once for each communicator, + * I would rather have a more complex but faster implementation. + * The approach here is to search for the largest common denominators, to create + * something similar to a dichotomic search. + */ +int mca_coll_base_name_to_colltype(const char* name) +{ + if( 'n' == name[0] ) { + if( 0 == strncmp(name, "neighbor_all", 12) ) { + if( 't' != name[12] ) { + if( 0 == strncmp(name+12, "gather", 6) ) { + if('\0' == name[18]) return NEIGHBOR_ALLGATHER; + if( 'v' == name[18]) return NEIGHBOR_ALLGATHERV; + } + } else { + if( 0 == strncmp(name+12, "toall", 5) ) { + if( '\0' == name[17] ) return NEIGHBOR_ALLTOALL; + if( 'v' == name[17] ) return NEIGHBOR_ALLTOALLV; + if( 'w' == name[17] ) return NEIGHBOR_ALLTOALLW; + } + } + } + return -1; + } + if( 'a' == name[0] ) { + if( 0 != strncmp(name, "all", 3) ) { + return -1; + } + if( 't' != name[3] ) { + if( 'r' == name[3] ) { + if( 0 == strcmp(name+3, "reduce") ) + return ALLREDUCE; + } else { + if( 0 == strncmp(name+3, "gather", 6) ) { + if( '\0' == name[9] ) return ALLGATHER; + if( 'v' == name[9] ) return ALLGATHERV; + } + } + } else { + if( 0 == strncmp(name+3, "toall", 5) ) { + if( '\0' == name[8] ) return ALLTOALL; + if( 'v' == name[8] ) return ALLTOALLV; + if( 'w' == name[8] ) return ALLTOALLW; + } + } + return -1; + } + if( 'r' > name[0] ) { + if( 'b' == name[0] ) { + if( 0 == strcmp(name, "barrier") ) + return BARRIER; + if( 0 == strcmp(name, "bcast") ) + return BCAST; + } else if( 'g'== name[0] ) { + if( 0 == strncmp(name, "gather", 6) ) { + if( '\0' == name[6] ) return GATHER; + if( 'v' == name[6] ) return GATHERV; + } + } + if( 0 == strcmp(name, "exscan") ) + return EXSCAN; + return -1; + } + if( 's' > name[0] ) { + if( 0 == strncmp(name, "reduce", 6) ) { + if( '\0' == name[6] ) return REDUCE; + if( '_' == name[6] ) { + if( 0 == strncmp(name+7, "scatter", 7) ) { + if( '\0' == name[14] ) return REDUCESCATTER; + if( 0 == strcmp(name+14, "_block") ) return REDUCESCATTERBLOCK; + } + } + } + return -1; + } + if( 0 == strcmp(name, "scan") ) + return SCAN; + if( 0 == strcmp(name, "scatterv") ) + return SCATTERV; + if( 0 == strcmp(name, "scatter") ) + return SCATTER; + return -1; +} + +/* conversion table for all COLLTYPE_T values defined in ompi/mca/coll/base/coll_base_functions.h */ +static const char* colltype_translation_table[] = { + [ALLGATHER] = "allgather", + [ALLGATHERV] = "allgatherv", + [ALLREDUCE] = "allreduce", + [ALLTOALL] = "alltoall", + [ALLTOALLV] = "alltoallv", + [ALLTOALLW] = "alltoallw", + [BARRIER] = "barrier", + [BCAST] = "bcast", + [EXSCAN] = "exscan", + [GATHER] = "gather", + [GATHERV] = "gatherv", + [REDUCE] = "reduce", + [REDUCESCATTER] = "reduce_scatter", + [REDUCESCATTERBLOCK] = "reduce_scatter_block", + [SCAN] = "scan", + [SCATTER] = "scatter", + [SCATTERV] = "scatterv", + [NEIGHBOR_ALLGATHER] = "neighbor_allgather", + [NEIGHBOR_ALLGATHERV] = "neighbor_allgatherv", + [NEIGHBOR_ALLTOALL] = "neighbor_alltoall", + [NEIGHBOR_ALLTOALLV] = "neighbor_alltoallv", + [NEIGHBOR_ALLTOALLW] = "neighbor_alltoallw", + [COLLCOUNT] = NULL +}; + +const char* mca_coll_base_colltype_to_str(int collid) +{ + if( (collid < 0) || (collid >= COLLCOUNT) ) { + return NULL; + } + return colltype_translation_table[collid]; +} diff -Nru openmpi-4.0.3/ompi/mca/coll/base/coll_base_util.h openmpi-4.1.4/ompi/mca/coll/base/coll_base_util.h --- openmpi-4.0.3/ompi/mca/coll/base/coll_base_util.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/base/coll_base_util.h 2022-05-29 09:51:40.000000000 +0000 @@ -2,14 +2,14 @@ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2015 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2007 High Performance Computing Center Stuttgart, * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2014-2019 Research Organization for Information Science + * Copyright (c) 2014-2020 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * @@ -27,11 +27,17 @@ #include "ompi/mca/mca.h" #include "ompi/datatype/ompi_datatype.h" #include "ompi/request/request.h" +#include "ompi/communicator/communicator.h" +#include "ompi/mca/coll/base/coll_tags.h" #include "ompi/op/op.h" #include "ompi/mca/pml/pml.h" BEGIN_C_DECLS +/** + * Request structure to be returned by non-blocking + * collective operations. + */ struct ompi_coll_base_nbc_request_t { ompi_request_t super; union { @@ -52,16 +58,45 @@ opal_object_t *objs[2]; } objs; struct { - ompi_datatype_t **stypes; - ompi_datatype_t **rtypes; + ompi_datatype_t * const *stypes; + ompi_datatype_t * const *rtypes; } vecs; } data; }; OMPI_DECLSPEC OBJ_CLASS_DECLARATION(ompi_coll_base_nbc_request_t); +static inline int32_t +ompi_coll_base_nbc_reserve_tags(ompi_communicator_t* comm, int32_t reserve) +{ + int32_t tag, old_tag; + assert( reserve > 0 ); + reread_tag: /* In case we fail to atomically update the tag */ + tag = old_tag = comm->c_nbc_tag; + if ((tag - reserve) < MCA_COLL_BASE_TAG_NONBLOCKING_END) { + tag = MCA_COLL_BASE_TAG_NONBLOCKING_BASE; + } + if( !OPAL_ATOMIC_COMPARE_EXCHANGE_STRONG_32(&comm->c_nbc_tag, &old_tag, tag - reserve) ) { + goto reread_tag; + } + return tag; +} + typedef struct ompi_coll_base_nbc_request_t ompi_coll_base_nbc_request_t; +/* + * Structure to store an available module + */ +struct mca_coll_base_avail_coll_t { + opal_list_item_t super; + + int ac_priority; + mca_coll_base_module_t *ac_module; + const char * ac_component_name; +}; +typedef struct mca_coll_base_avail_coll_t mca_coll_base_avail_coll_t; +OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_coll_base_avail_coll_t); + /** * A MPI_like function doing a send and a receive simultaneously. * If one of the communications results in a zero-byte message the @@ -115,17 +150,45 @@ */ int ompi_rounddown(int num, int factor); +/** + * If necessary, retain op and store it in the + * request object, which should be of type ompi_coll_base_nbc_request_t + * (will be cast internally). + */ int ompi_coll_base_retain_op( ompi_request_t *request, ompi_op_t *op, ompi_datatype_t *type); +/** + * If necessary, retain the datatypes and store them in the + * request object, which should be of type ompi_coll_base_nbc_request_t + * (will be cast internally). + */ int ompi_coll_base_retain_datatypes( ompi_request_t *request, ompi_datatype_t *stype, ompi_datatype_t *rtype); +/** + * If necessary, retain the datatypes and store them in the + * request object, which should be of type ompi_coll_base_nbc_request_t + * (will be cast internally). + */ int ompi_coll_base_retain_datatypes_w( ompi_request_t *request, - ompi_datatype_t *stypes[], - ompi_datatype_t *rtypes[]); + ompi_datatype_t * const stypes[], + ompi_datatype_t * const rtypes[]); + +/* File reading function */ +int ompi_coll_base_file_getnext_long(FILE *fptr, int *fileline, long* val); +int ompi_coll_base_file_getnext_size_t(FILE *fptr, int *fileline, size_t* val); +int ompi_coll_base_file_getnext_string(FILE *fptr, int *fileline, char** val); +/* peek at the next valid token to see if it begins with the expected value. If yes + * eat the value, otherwise put it back into the file. + */ +int ompi_coll_base_file_peek_next_char_is(FILE *fptr, int *fileline, int expected); + +/* Miscelaneous function */ +const char* mca_coll_base_colltype_to_str(int collid); +int mca_coll_base_name_to_colltype(const char* name); END_C_DECLS #endif /* MCA_COLL_BASE_UTIL_EXPORT_H */ diff -Nru openmpi-4.0.3/ompi/mca/coll/base/coll_tags.h openmpi-4.1.4/ompi/mca/coll/base/coll_tags.h --- openmpi-4.0.3/ompi/mca/coll/base/coll_tags.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/base/coll_tags.h 2022-05-29 09:51:40.000000000 +0000 @@ -45,6 +45,7 @@ #define MCA_COLL_BASE_TAG_NONBLOCKING_END ((-1 * INT_MAX/2) + 1) #define MCA_COLL_BASE_TAG_NEIGHBOR_BASE (MCA_COLL_BASE_TAG_NONBLOCKING_END - 1) #define MCA_COLL_BASE_TAG_NEIGHBOR_END (MCA_COLL_BASE_TAG_NEIGHBOR_BASE - 1024) -#define MCA_COLL_BASE_TAG_HCOLL_BASE (-1 * INT_MAX/2) +#define MCA_COLL_BASE_TAG_UCC (MCA_COLL_BASE_TAG_NEIGHBOR_END - 1) +#define MCA_COLL_BASE_TAG_HCOLL_BASE (MCA_COLL_BASE_TAG_UCC - 1) #define MCA_COLL_BASE_TAG_HCOLL_END (-1 * INT_MAX) #endif /* MCA_COLL_BASE_TAGS_H */ diff -Nru openmpi-4.0.3/ompi/mca/coll/basic/coll_basic_alltoallw.c openmpi-4.1.4/ompi/mca/coll/basic/coll_basic_alltoallw.c --- openmpi-4.0.3/ompi/mca/coll/basic/coll_basic_alltoallw.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/basic/coll_basic_alltoallw.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2016 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -14,8 +14,8 @@ * Copyright (c) 2013 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2013 FUJITSU LIMITED. All rights reserved. - * Copyright (c) 2014-2016 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2021 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. * $COPYRIGHT$ @@ -31,100 +31,123 @@ #include "mpi.h" #include "ompi/constants.h" #include "ompi/datatype/ompi_datatype.h" +#include "opal/datatype/opal_convertor_internal.h" #include "ompi/mca/coll/coll.h" #include "ompi/mca/coll/base/coll_tags.h" #include "ompi/mca/pml/pml.h" - +/* + * We want to minimize the amount of temporary memory needed while allowing as many ranks + * to exchange data simultaneously. We use a variation of the ring algorithm, where in a + * single step a process echange the data with both neighbors at distance k (on the left + * and the right on a logical ring topology). With this approach we need to pack the data + * for a single of the two neighbors, as we can then use the original buffer (and datatype + * and count) to send the data to the other. + */ static int mca_coll_basic_alltoallw_intra_inplace(const void *rbuf, const int *rcounts, const int *rdisps, struct ompi_datatype_t * const *rdtypes, struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - int i, j, size, rank, err = MPI_SUCCESS, max_size; - ompi_request_t *req; - char *tmp_buffer, *save_buffer = NULL; - ptrdiff_t ext, gap = 0; - - /* Initialize. */ + int i, size, rank, left, right, err = MPI_SUCCESS; + ompi_request_t *req = MPI_REQUEST_NULL; + char *tmp_buffer = NULL; + size_t max_size = 0, packed_size, msg_size_left, msg_size_right; + opal_convertor_t convertor; size = ompi_comm_size(comm); - rank = ompi_comm_rank(comm); - - /* If only one process, we're done. */ - if (1 == size) { + if (1 == size) { /* If only one process, we're done. */ return MPI_SUCCESS; } + rank = ompi_comm_rank(comm); - /* Find the largest receive amount */ - for (i = 0, max_size = 0 ; i < size ; ++i) { - ext = opal_datatype_span(&rdtypes[i]->super, rcounts[i], &gap); - - max_size = ext > max_size ? ext : max_size; + /* Find the largest amount of packed send/recv data among all peers where + * we need to pack before the send. + */ + for (i = 1 ; i <= (size >> 1) ; ++i) { + right = (rank + i) % size; +#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT + ompi_proc_t *ompi_proc = ompi_comm_peer_lookup(comm, right); + + if( OPAL_LIKELY(opal_local_arch == ompi_proc->super.proc_convertor->master->remote_arch)) { + opal_datatype_type_size(&rdtypes[right]->super, &packed_size); + } else { + packed_size = opal_datatype_compute_remote_size(&rdtypes[right]->super, + ompi_proc->super.proc_convertor->master->remote_sizes); + } +#else + opal_datatype_type_size(&rdtypes[right]->super, &packed_size); +#endif /* OPAL_ENABLE_HETEROGENEOUS_SUPPORT */ + packed_size *= rcounts[right]; + max_size = packed_size > max_size ? packed_size : max_size; } /* Allocate a temporary buffer */ - tmp_buffer = save_buffer = calloc (max_size, 1); + tmp_buffer = calloc (max_size, 1); if (NULL == tmp_buffer) { return OMPI_ERR_OUT_OF_RESOURCE; } - tmp_buffer -= gap; - /* in-place alltoallw slow algorithm (but works) */ - for (i = 0 ; i < size ; ++i) { - size_t msg_size_i; - ompi_datatype_type_size(rdtypes[i], &msg_size_i); - msg_size_i *= rcounts[i]; - for (j = i+1 ; j < size ; ++j) { - size_t msg_size_j; - ompi_datatype_type_size(rdtypes[j], &msg_size_j); - msg_size_j *= rcounts[j]; - - /* Initiate all send/recv to/from others. */ - if (i == rank && msg_size_j != 0) { - /* Copy the data into the temporary buffer */ - err = ompi_datatype_copy_content_same_ddt (rdtypes[j], rcounts[j], - tmp_buffer, (char *) rbuf + rdisps[j]); - if (MPI_SUCCESS != err) { goto error_hndl; } - - /* Exchange data with the peer */ - err = MCA_PML_CALL(irecv ((char *) rbuf + rdisps[j], rcounts[j], rdtypes[j], - j, MCA_COLL_BASE_TAG_ALLTOALLW, comm, &req)); - if (MPI_SUCCESS != err) { goto error_hndl; } - - err = MCA_PML_CALL(send ((void *) tmp_buffer, rcounts[j], rdtypes[j], - j, MCA_COLL_BASE_TAG_ALLTOALLW, MCA_PML_BASE_SEND_STANDARD, - comm)); - if (MPI_SUCCESS != err) { goto error_hndl; } - } else if (j == rank && msg_size_i != 0) { - /* Copy the data into the temporary buffer */ - err = ompi_datatype_copy_content_same_ddt (rdtypes[i], rcounts[i], - tmp_buffer, (char *) rbuf + rdisps[i]); - if (MPI_SUCCESS != err) { goto error_hndl; } - - /* Exchange data with the peer */ - err = MCA_PML_CALL(irecv ((char *) rbuf + rdisps[i], rcounts[i], rdtypes[i], - i, MCA_COLL_BASE_TAG_ALLTOALLW, comm, &req)); - if (MPI_SUCCESS != err) { goto error_hndl; } - - err = MCA_PML_CALL(send ((void *) tmp_buffer, rcounts[i], rdtypes[i], - i, MCA_COLL_BASE_TAG_ALLTOALLW, MCA_PML_BASE_SEND_STANDARD, - comm)); - if (MPI_SUCCESS != err) { goto error_hndl; } - } else { - continue; - } + for (i = 1 ; i <= (size >> 1) ; ++i) { + struct iovec iov = {.iov_base = tmp_buffer, .iov_len = max_size}; + uint32_t iov_count = 1; + + right = (rank + i) % size; + left = (rank + size - i) % size; + + ompi_datatype_type_size(rdtypes[right], &msg_size_right); + msg_size_right *= rcounts[right]; + + ompi_datatype_type_size(rdtypes[left], &msg_size_left); + msg_size_left *= rcounts[left]; + + if( 0 != msg_size_right ) { /* nothing to exchange with the peer on the right */ + ompi_proc_t *right_proc = ompi_comm_peer_lookup(comm, right); + opal_convertor_clone(right_proc->super.proc_convertor, &convertor, 0); + opal_convertor_prepare_for_send(&convertor, &rdtypes[right]->super, rcounts[right], + (char *) rbuf + rdisps[right]); + packed_size = max_size; + err = opal_convertor_pack(&convertor, &iov, &iov_count, &packed_size); + if (1 != err) { goto error_hndl; } + + /* Receive data from the right */ + err = MCA_PML_CALL(irecv ((char *) rbuf + rdisps[right], rcounts[right], rdtypes[right], + right, MCA_COLL_BASE_TAG_ALLTOALLW, comm, &req)); + if (MPI_SUCCESS != err) { goto error_hndl; } + } + + if( (left != right) && (0 != msg_size_left) ) { + /* Send data to the left */ + err = MCA_PML_CALL(send ((char *) rbuf + rdisps[left], rcounts[left], rdtypes[left], + left, MCA_COLL_BASE_TAG_ALLTOALLW, MCA_PML_BASE_SEND_STANDARD, + comm)); + if (MPI_SUCCESS != err) { goto error_hndl; } - /* Wait for the requests to complete */ err = ompi_request_wait (&req, MPI_STATUSES_IGNORE); if (MPI_SUCCESS != err) { goto error_hndl; } + + /* Receive data from the left */ + err = MCA_PML_CALL(irecv ((char *) rbuf + rdisps[left], rcounts[left], rdtypes[left], + left, MCA_COLL_BASE_TAG_ALLTOALLW, comm, &req)); + if (MPI_SUCCESS != err) { goto error_hndl; } } + + if( 0 != msg_size_right ) { /* nothing to exchange with the peer on the right */ + /* Send data to the right */ + err = MCA_PML_CALL(send ((char *) tmp_buffer, packed_size, MPI_PACKED, + right, MCA_COLL_BASE_TAG_ALLTOALLW, MCA_PML_BASE_SEND_STANDARD, + comm)); + if (MPI_SUCCESS != err) { goto error_hndl; } + } + + err = ompi_request_wait (&req, MPI_STATUSES_IGNORE); + if (MPI_SUCCESS != err) { goto error_hndl; } } error_hndl: /* Free the temporary buffer */ - free (save_buffer); + free (tmp_buffer); /* All done */ diff -Nru openmpi-4.0.3/ompi/mca/coll/basic/Makefile.in openmpi-4.1.4/ompi/mca/coll/basic/Makefile.in --- openmpi-4.0.3/ompi/mca/coll/basic/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/basic/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -674,6 +687,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1494,6 +1510,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1526,9 +1546,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1549,6 +1578,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1633,9 +1663,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1696,6 +1723,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1709,6 +1739,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/coll/coll.h openmpi-4.1.4/ompi/mca/coll/coll.h --- openmpi-4.0.3/ompi/mca/coll/coll.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/coll.h 2022-05-29 09:51:40.000000000 +0000 @@ -19,6 +19,7 @@ * and Technology (RIST). All rights reserved. * Copyright (c) 2016-2017 IBM Corporation. All rights reserved. * Copyright (c) 2017 FUJITSU LIMITED. All rights reserved. + * Copyright (c) 2020 BULL S.A.S. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -767,6 +768,9 @@ mca_coll_base_module_reduce_local_fn_t coll_reduce_local; mca_coll_base_module_2_3_0_t *coll_reduce_local_module; + + /* List of modules initialized, queried and enabled */ + opal_list_t *module_list; }; typedef struct mca_coll_base_comm_coll_t mca_coll_base_comm_coll_t; diff -Nru openmpi-4.0.3/ompi/mca/coll/cuda/coll_cuda_module.c openmpi-4.1.4/ompi/mca/coll/cuda/coll_cuda_module.c --- openmpi-4.0.3/ompi/mca/coll/cuda/coll_cuda_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/cuda/coll_cuda_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,6 +3,8 @@ * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2014 NVIDIA Corporation. All rights reserved. + * Copyright (c) 2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -19,8 +21,8 @@ #include "mpi.h" -#include "orte/util/show_help.h" -#include "orte/util/proc_info.h" +#include "opal/util/show_help.h" +#include "ompi/mca/rte/rte.h" #include "ompi/constants.h" #include "ompi/communicator/communicator.h" @@ -146,8 +148,8 @@ if (good) { return OMPI_SUCCESS; } - orte_show_help("help-mpi-coll-cuda.txt", "missing collective", true, - orte_process_info.nodename, + opal_show_help("help-mpi-coll-cuda.txt", "missing collective", true, + ompi_process_info.nodename, mca_coll_cuda_component.priority, msg); return OMPI_ERR_NOT_FOUND; } diff -Nru openmpi-4.0.3/ompi/mca/coll/cuda/coll_cuda_reduce.c openmpi-4.1.4/ompi/mca/coll/cuda/coll_cuda_reduce.c --- openmpi-4.0.3/ompi/mca/coll/cuda/coll_cuda_reduce.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/cuda/coll_cuda_reduce.c 2022-05-29 09:51:40.000000000 +0000 @@ -34,6 +34,7 @@ mca_coll_base_module_t *module) { mca_coll_cuda_module_t *s = (mca_coll_cuda_module_t*) module; + int rank = ompi_comm_rank(comm); ptrdiff_t gap; char *rbuf1 = NULL, *sbuf1 = NULL, *rbuf2 = NULL; const char *sbuf2; @@ -53,7 +54,7 @@ sbuf = sbuf1 - gap; } - if (opal_cuda_check_bufs(rbuf, NULL)) { + if ((rank == root) && (opal_cuda_check_bufs((char *)rbuf, NULL))) { rbuf1 = (char*)malloc(bufsize); if (NULL == rbuf1) { if (NULL != sbuf1) free(sbuf1); diff -Nru openmpi-4.0.3/ompi/mca/coll/cuda/Makefile.in openmpi-4.1.4/ompi/mca/coll/cuda/Makefile.in --- openmpi-4.0.3/ompi/mca/coll/cuda/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/cuda/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -99,6 +99,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -106,6 +108,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -129,6 +132,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -231,6 +235,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -238,6 +243,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -318,6 +324,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -340,9 +347,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -352,6 +363,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -372,6 +384,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -643,6 +656,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1463,6 +1479,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1495,9 +1515,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1518,6 +1547,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1602,9 +1632,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1665,6 +1692,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1678,6 +1708,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/coll/fca/Makefile.in openmpi-4.1.4/ompi/mca/coll/fca/Makefile.in --- openmpi-4.0.3/ompi/mca/coll/fca/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/fca/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -111,6 +111,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -118,6 +120,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -141,6 +144,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -243,6 +247,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -250,6 +255,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -330,6 +336,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -352,9 +359,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -364,6 +375,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -384,6 +396,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -653,6 +666,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1473,6 +1489,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1505,9 +1525,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1528,6 +1557,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1612,9 +1642,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1675,6 +1702,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1688,6 +1718,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han_allgather.c openmpi-4.1.4/ompi/mca/coll/han/coll_han_allgather.c --- openmpi-4.0.3/ompi/mca/coll/han/coll_han_allgather.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han_allgather.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,434 @@ +/* + * Copyright (c) 2018-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Bull S.A.S. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +/** + * @file + * + * This files contains all the hierarchical implementations of allgather + */ + +#include "coll_han.h" +#include "ompi/mca/coll/base/coll_base_functions.h" +#include "ompi/mca/coll/base/coll_tags.h" +#include "ompi/mca/pml/pml.h" +#include "coll_han_trigger.h" + +static int mca_coll_han_allgather_lb_task(void *task_args); +static int mca_coll_han_allgather_lg_task(void *task_args); +static int mca_coll_han_allgather_uag_task(void *task_args); + +static inline void +mca_coll_han_set_allgather_args(mca_coll_han_allgather_t * args, + mca_coll_task_t * cur_task, + void *sbuf, + void *sbuf_inter_free, + int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, + int rcount, + struct ompi_datatype_t *rdtype, + int root_low_rank, + struct ompi_communicator_t *up_comm, + struct ompi_communicator_t *low_comm, + int w_rank, + bool noop, + bool is_mapbycore, + int *topo, + ompi_request_t * req) +{ + args->cur_task = cur_task; + args->sbuf = sbuf; + args->sbuf_inter_free = sbuf_inter_free; + args->scount = scount; + args->sdtype = sdtype; + args->rbuf = rbuf; + args->rcount = rcount; + args->rdtype = rdtype; + args->root_low_rank = root_low_rank; + args->up_comm = up_comm; + args->low_comm = low_comm; + args->w_rank = w_rank; + args->noop = noop; + args->is_mapbycore = is_mapbycore; + args->topo = topo; + args->req = req; +} + + +/** + * Main function for taskified allgather: calls lg task, a gather on low comm + */ +int +mca_coll_han_allgather_intra(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, int rcount, + struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + mca_coll_base_module_t * module) +{ + /* Create the subcommunicators */ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t *) module; + if( OMPI_SUCCESS != mca_coll_han_comm_create_new(comm, han_module) ) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle allgather within this communicator. Fall back on another component\n")); + /* HAN cannot work with this communicator so fallback on all collectives */ + HAN_LOAD_FALLBACK_COLLECTIVES(han_module, comm); + return comm->c_coll->coll_allgather(sbuf, scount, sdtype, rbuf, rcount, rdtype, + comm, comm->c_coll->coll_allgather_module); + } + ompi_communicator_t *low_comm = han_module->sub_comm[INTRA_NODE]; + ompi_communicator_t *up_comm = han_module->sub_comm[INTER_NODE]; + int low_rank = ompi_comm_rank(low_comm); + int w_rank = ompi_comm_rank(comm); + + /* Init topo */ + int *topo = mca_coll_han_topo_init(comm, han_module, 2); + /* unbalanced case needs algo adaptation */ + if (han_module->are_ppn_imbalanced) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle allgather with this communicator (imbalance). Fall back on another component\n")); + HAN_LOAD_FALLBACK_COLLECTIVE(han_module, comm, allgather); + return comm->c_coll->coll_allgather(sbuf, scount, sdtype, rbuf, rcount, rdtype, + comm, comm->c_coll->coll_allgather_module); + } + + ompi_request_t *temp_request; + /* Set up request */ + temp_request = OBJ_NEW(ompi_request_t); + temp_request->req_state = OMPI_REQUEST_ACTIVE; + temp_request->req_type = OMPI_REQUEST_COLL; + temp_request->req_free = han_request_free; + temp_request->req_status = (ompi_status_public_t){0}; + temp_request->req_complete = REQUEST_PENDING; + + int root_low_rank = 0; + /* Create lg (lower level gather) task */ + mca_coll_task_t *lg = OBJ_NEW(mca_coll_task_t); + /* Setup lg task arguments */ + mca_coll_han_allgather_t *lg_args = malloc(sizeof(mca_coll_han_allgather_t)); + mca_coll_han_set_allgather_args(lg_args, lg, (char *) sbuf, NULL, scount, sdtype, rbuf, rcount, + rdtype, root_low_rank, up_comm, low_comm, w_rank, + low_rank != root_low_rank, han_module->is_mapbycore, topo, + temp_request); + /* Init and issue lg task */ + init_task(lg, mca_coll_han_allgather_lg_task, (void *) (lg_args)); + issue_task(lg); + + ompi_request_wait(&temp_request, MPI_STATUS_IGNORE); + + return OMPI_SUCCESS; +} + +/* lg: lower level gather task */ +int mca_coll_han_allgather_lg_task(void *task_args) +{ + mca_coll_han_allgather_t *t = (mca_coll_han_allgather_t *) task_args; + char *tmp_buf = NULL, *tmp_rbuf = NULL; + char *tmp_send = NULL; + + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, "[%d] HAN Allgather: lg\n", + t->w_rank)); + + /* If the process is one of the node leader */ + ptrdiff_t rlb, rext; + ompi_datatype_get_extent (t->rdtype, &rlb, &rext); + if (MPI_IN_PLACE == t->sbuf) { + t->sdtype = t->rdtype; + t->scount = t->rcount; + } + if (!t->noop) { + int low_size = ompi_comm_size(t->low_comm); + ptrdiff_t rsize, rgap = 0; + rsize = opal_datatype_span(&t->rdtype->super, (int64_t) t->rcount * low_size, &rgap); + tmp_buf = (char *) malloc(rsize); + tmp_rbuf = tmp_buf - rgap; + if (MPI_IN_PLACE == t->sbuf) { + tmp_send = ((char*)t->rbuf) + (ptrdiff_t)t->w_rank * (ptrdiff_t)t->rcount * rext; + ompi_datatype_copy_content_same_ddt(t->rdtype, t->rcount, tmp_rbuf, tmp_send); + } + } + /* Lower level (shared memory or intra-node) gather */ + if (MPI_IN_PLACE == t->sbuf) { + if (!t->noop) { + t->low_comm->c_coll->coll_gather(MPI_IN_PLACE, t->scount, t->sdtype, + tmp_rbuf, t->rcount, t->rdtype, t->root_low_rank, + t->low_comm, t->low_comm->c_coll->coll_gather_module); + } + else { + tmp_send = ((char*)t->rbuf) + (ptrdiff_t)t->w_rank * (ptrdiff_t)t->rcount * rext; + t->low_comm->c_coll->coll_gather(tmp_send, t->rcount, t->rdtype, + NULL, t->rcount, t->rdtype, t->root_low_rank, + t->low_comm, t->low_comm->c_coll->coll_gather_module); + } + } + else { + t->low_comm->c_coll->coll_gather((char *) t->sbuf, t->scount, t->sdtype, tmp_rbuf, t->rcount, + t->rdtype, t->root_low_rank, t->low_comm, + t->low_comm->c_coll->coll_gather_module); + } + + t->sbuf = tmp_rbuf; + t->sbuf_inter_free = tmp_buf; + + /* Create uag (upper level all-gather) task */ + mca_coll_task_t *uag = t->cur_task; + /* Init and issue uag task */ + init_task(uag, mca_coll_han_allgather_uag_task, (void *) t); + issue_task(uag); + + return OMPI_SUCCESS; +} + +/* uag: upper level (inter-node) all-gather task */ +int mca_coll_han_allgather_uag_task(void *task_args) +{ + mca_coll_han_allgather_t *t = (mca_coll_han_allgather_t *) task_args; + + if (t->noop) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d] HAN Allgather: uag noop\n", t->w_rank)); + } else { + int low_size = ompi_comm_size(t->low_comm); + int up_size = ompi_comm_size(t->up_comm); + char *reorder_buf = NULL; + char *reorder_rbuf = NULL; + if (t->is_mapbycore) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d]: HAN Allgather is bycore: ", t->w_rank)); + reorder_rbuf = (char *) t->rbuf; + } else { + ptrdiff_t rsize, rgap = 0; + rsize = + opal_datatype_span(&t->rdtype->super, + (int64_t) t->rcount * low_size * up_size, + &rgap); + reorder_buf = (char *) malloc(rsize); + reorder_rbuf = reorder_buf - rgap; + } + + /* Inter node allgather */ + t->up_comm->c_coll->coll_allgather((char *) t->sbuf, t->scount * low_size, t->sdtype, + reorder_rbuf, t->rcount * low_size, t->rdtype, + t->up_comm, t->up_comm->c_coll->coll_allgather_module); + + if (t->sbuf_inter_free != NULL) { + free(t->sbuf_inter_free); + t->sbuf_inter_free = NULL; + } + + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d] HAN Allgather: ug allgather finish\n", t->w_rank)); + + /* Reorder the node leader's rbuf, copy data from tmp_rbuf to rbuf */ + if (!t->is_mapbycore) { + int i, j; + ptrdiff_t rextent; + ompi_datatype_type_extent(t->rdtype, &rextent); + for (i = 0; i < up_size; i++) { + for (j = 0; j < low_size; j++) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d]: HAN Allgather copy from %d %d\n", t->w_rank, + (i * low_size + j) * 2 + 1, + t->topo[(i * low_size + j) * 2 + 1])); + ompi_datatype_copy_content_same_ddt(t->rdtype, + (ptrdiff_t) t->rcount, + (char *) t->rbuf + + rextent * + (ptrdiff_t) t->topo[(i * low_size + j) * 2 + + 1] * + (ptrdiff_t) t->rcount, + reorder_rbuf + rextent * (i * low_size + + j) * + (ptrdiff_t) t->rcount); + } + } + free(reorder_buf); + reorder_buf = NULL; + } + } + + + /* Create lb (low level broadcast) task */ + mca_coll_task_t *lb = t->cur_task; + /* Init and issue lb task */ + init_task(lb, mca_coll_han_allgather_lb_task, (void *) t); + issue_task(lb); + + return OMPI_SUCCESS; +} + +/* lb: low level broadcast task */ +int mca_coll_han_allgather_lb_task(void *task_args) +{ + mca_coll_han_allgather_t *t = (mca_coll_han_allgather_t *) task_args; + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, "[%d] HAN Allgather: uag noop\n", + t->w_rank)); + OBJ_RELEASE(t->cur_task); + int low_size = ompi_comm_size(t->low_comm); + int up_size = ompi_comm_size(t->up_comm); + t->low_comm->c_coll->coll_bcast((char *) t->rbuf, t->rcount * low_size * up_size, t->rdtype, + t->root_low_rank, t->low_comm, + t->low_comm->c_coll->coll_bcast_module); + + ompi_request_t *temp_req = t->req; + free(t); + ompi_request_complete(temp_req, 1); + return OMPI_SUCCESS; + +} + +/** + * Short implementation of allgather that only does hierarchical + * communications without tasks. + */ +int +mca_coll_han_allgather_intra_simple(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void* rbuf, int rcount, + struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module){ + + /* create the subcommunicators */ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t *)module; + + if( OMPI_SUCCESS != mca_coll_han_comm_create_new(comm, han_module) ) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle allgather within this communicator. Fall back on another component\n")); + /* HAN cannot work with this communicator so fallback on all collectives */ + HAN_LOAD_FALLBACK_COLLECTIVES(han_module, comm); + return comm->c_coll->coll_allgather(sbuf, scount, sdtype, rbuf, rcount, rdtype, + comm, comm->c_coll->coll_allgather_module); + } + /* discovery topology */ + int *topo = mca_coll_han_topo_init(comm, han_module, 2); + + /* unbalanced case needs algo adaptation */ + if (han_module->are_ppn_imbalanced) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle allgather within this communicator (imbalance). Fall back on another component\n")); + /* Put back the fallback collective support and call it once. All + * future calls will then be automatically redirected. + */ + HAN_LOAD_FALLBACK_COLLECTIVE(han_module, comm, allgather); + return comm->c_coll->coll_allgather(sbuf, scount, sdtype, rbuf, rcount, rdtype, + comm, comm->c_coll->coll_allgather_module); + } + + ompi_communicator_t *low_comm = han_module->sub_comm[INTRA_NODE]; + ompi_communicator_t *up_comm = han_module->sub_comm[INTER_NODE]; + int w_rank = ompi_comm_rank(comm); + /* setup up/low coordinates */ + int low_rank = ompi_comm_rank(low_comm); + int low_size = ompi_comm_size(low_comm); + int up_rank = ompi_comm_rank(up_comm); + int up_size = ompi_comm_size(up_comm); + int root_low_rank = 0; // node leader will be 0 on each rank + + /* allocate the intermediary buffer + * to gather on leaders on the low sub communicator */ + ptrdiff_t rlb, rext; + ompi_datatype_get_extent (rdtype, &rlb, &rext); + char *tmp_buf = NULL; + char *tmp_buf_start = NULL; + char *tmp_send = NULL; + if (MPI_IN_PLACE == sbuf) { + scount = rcount; + sdtype = rdtype; + } + if (low_rank == root_low_rank) { + ptrdiff_t rsize, rgap = 0; + /* Compute the size to receive all the local data, including datatypes empty gaps */ + rsize = opal_datatype_span(&rdtype->super, (int64_t)rcount * low_size, &rgap); + /* intermediary buffer on node leaders to gather on low comm */ + tmp_buf = (char *) malloc(rsize); + tmp_buf_start = tmp_buf - rgap; + if (MPI_IN_PLACE == sbuf) { + tmp_send = ((char*)rbuf) + (ptrdiff_t)w_rank * (ptrdiff_t)rcount * rext; + ompi_datatype_copy_content_same_ddt(rdtype, rcount, tmp_buf_start, tmp_send); + } + } + + /* 1. low gather on node leaders into tmp_buf */ + if (MPI_IN_PLACE == sbuf) { + if (low_rank == root_low_rank) { + low_comm->c_coll->coll_gather(MPI_IN_PLACE, scount, sdtype, + tmp_buf_start, rcount, rdtype, root_low_rank, + low_comm, low_comm->c_coll->coll_gather_module); + } + else { + tmp_send = ((char*)rbuf) + (ptrdiff_t)w_rank * (ptrdiff_t)rcount * rext; + low_comm->c_coll->coll_gather(tmp_send, rcount, rdtype, + NULL, rcount, rdtype, root_low_rank, + low_comm, low_comm->c_coll->coll_gather_module); + } + } + else { + low_comm->c_coll->coll_gather((char *)sbuf, scount, sdtype, + tmp_buf_start, rcount, rdtype, root_low_rank, + low_comm, low_comm->c_coll->coll_gather_module); + } + /* 2. allgather between node leaders, from tmp_buf to reorder_buf */ + if (low_rank == root_low_rank) { + /* allocate buffer to store unordered result on node leaders + * if the processes are mapped-by core, no need to reorder: + * distribution of ranks on core first and node next, + * in a increasing order for both patterns. + */ + char *reorder_buf = NULL; + char *reorder_buf_start = NULL; + if (han_module->is_mapbycore) { + reorder_buf_start = rbuf; + } else { + if (0 == low_rank && 0 == up_rank) { // first rank displays message + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d]: Future Allgather needs reordering: ", up_rank)); + } + ptrdiff_t rsize, rgap = 0; + rsize = opal_datatype_span(&rdtype->super, (int64_t)rcount * low_size * up_size, &rgap); + reorder_buf = (char *) malloc(rsize); + reorder_buf_start = reorder_buf - rgap; + } + + /* 2a. inter node allgather */ + up_comm->c_coll->coll_allgather(tmp_buf_start, scount*low_size, sdtype, + reorder_buf_start, rcount*low_size, rdtype, + up_comm, up_comm->c_coll->coll_allgather_module); + + if (tmp_buf != NULL) { + free(tmp_buf); + tmp_buf = NULL; + tmp_buf_start = NULL; + } + + /* 2b. reorder the node leader's into rbuf. + * if ranks are not mapped in topological order, data needs to be reordered + * (see reorder_gather) + */ + if (!han_module->is_mapbycore) { + ompi_coll_han_reorder_gather(reorder_buf_start, + rbuf, rcount, rdtype, + comm, topo); + free(reorder_buf); + reorder_buf = NULL; + } + + } + + /* 3. up broadcast: leaders broadcast on their nodes */ + low_comm->c_coll->coll_bcast(rbuf, rcount*low_size*up_size, rdtype, + root_low_rank, low_comm, + low_comm->c_coll->coll_bcast_module); + + + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han_allreduce.c openmpi-4.1.4/ompi/mca/coll/han/coll_han_allreduce.c --- openmpi-4.0.3/ompi/mca/coll/han/coll_han_allreduce.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han_allreduce.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,572 @@ +/* + * Copyright (c) 2018-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Bull S.A.S. All rights reserved. + * + * Copyright (c) 2020 Cisco Systems, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +/** + * @file + * + * This files contains all the hierarchical implementations of allreduce + * Only work with regular situation (each node has equal number of processes) + */ + +#include "coll_han.h" +#include "ompi/mca/coll/base/coll_base_functions.h" +#include "ompi/mca/coll/base/coll_tags.h" +#include "ompi/mca/pml/pml.h" +#include "coll_han_trigger.h" + +static int mca_coll_han_allreduce_t0_task(void *task_args); +static int mca_coll_han_allreduce_t1_task(void *task_args); +static int mca_coll_han_allreduce_t2_task(void *task_args); +static int mca_coll_han_allreduce_t3_task(void *task_args); + +/* Only work with regular situation (each node has equal number of processes) */ + +static inline void +mca_coll_han_set_allreduce_args(mca_coll_han_allreduce_args_t * args, + mca_coll_task_t * cur_task, + void *sbuf, + void *rbuf, + int seg_count, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, + int root_up_rank, + int root_low_rank, + struct ompi_communicator_t *up_comm, + struct ompi_communicator_t *low_comm, + int num_segments, + int cur_seg, + int w_rank, + int last_seg_count, + bool noop, ompi_request_t * req, int *completed) +{ + args->cur_task = cur_task; + args->sbuf = sbuf; + args->rbuf = rbuf; + args->seg_count = seg_count; + args->dtype = dtype; + args->op = op; + args->root_up_rank = root_up_rank; + args->root_low_rank = root_low_rank; + args->up_comm = up_comm; + args->low_comm = low_comm; + args->num_segments = num_segments; + args->cur_seg = cur_seg; + args->w_rank = w_rank; + args->last_seg_count = last_seg_count; + args->noop = noop; + args->req = req; + args->completed = completed; +} + +/* + * Each segment of the messsage needs to go though 4 steps to perform MPI_Allreduce: + * lr: lower level (shared-memory or intra-node) reduce, + * ur: upper level (inter-node) reduce, + * ub: upper level (inter-node) bcast, + * lb: lower level (shared-memory or intra-node) bcast. + * Hence, in each iteration, there is a combination of collective operations which is called a task. + * | seg 0 | seg 1 | seg 2 | seg 3 | + * iter 0 | lr | | | | task: t0, contains lr + * iter 1 | ur | lr | | | task: t1, contains ur and lr + * iter 2 | ub | ur | lr | | task: t2, contains ub, ur and lr + * iter 3 | lb | ub | ur | lr | task: t3, contains lb, ub, ur and lr + * iter 4 | | lb | ub | ur | task: t3, contains lb, ub and ur + * iter 5 | | | lb | ub | task: t3, contains lb and ub + * iter 6 | | | | lb | task: t3, contains lb + */ + +int +mca_coll_han_allreduce_intra(const void *sbuf, + void *rbuf, + int count, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, + struct ompi_communicator_t *comm, mca_coll_base_module_t * module) +{ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t *)module; + + /* No support for non-commutative operations */ + if(!ompi_op_is_commute(op)) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle allreduce with this operation. Fall back on another component\n")); + goto prev_allreduce_intra; + } + + /* Create the subcommunicators */ + if( OMPI_SUCCESS != mca_coll_han_comm_create(comm, han_module) ) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle allreduce with this communicator. Drop HAN support in this communicator and fall back on another component\n")); + /* HAN cannot work with this communicator so fallback on all collectives */ + HAN_LOAD_FALLBACK_COLLECTIVES(han_module, comm); + return comm->c_coll->coll_allreduce(sbuf, rbuf, count, dtype, op, + comm, comm->c_coll->coll_reduce_module); + } + + ptrdiff_t extent, lb; + size_t dtype_size; + ompi_datatype_get_extent(dtype, &lb, &extent); + int seg_count = count, w_rank; + w_rank = ompi_comm_rank(comm); + ompi_datatype_type_size(dtype, &dtype_size); + + ompi_communicator_t *low_comm; + ompi_communicator_t *up_comm; + + /* use MCA parameters for now */ + low_comm = han_module->cached_low_comms[mca_coll_han_component.han_allreduce_low_module]; + up_comm = han_module->cached_up_comms[mca_coll_han_component.han_allreduce_up_module]; + COLL_BASE_COMPUTED_SEGCOUNT(mca_coll_han_component.han_allreduce_segsize, dtype_size, + seg_count); + + /* Determine number of elements sent per task. */ + OPAL_OUTPUT_VERBOSE((10, mca_coll_han_component.han_output, + "In HAN Allreduce seg_size %d seg_count %d count %d\n", + mca_coll_han_component.han_allreduce_segsize, seg_count, count)); + int num_segments = (count + seg_count - 1) / seg_count; + + int low_rank = ompi_comm_rank(low_comm); + int root_up_rank = 0; + int root_low_rank = 0; + /* Create t0 task for the first segment */ + mca_coll_task_t *t0 = OBJ_NEW(mca_coll_task_t); + /* Setup up t0 task arguments */ + int *completed = (int *) malloc(sizeof(int)); + completed[0] = 0; + mca_coll_han_allreduce_args_t *t = malloc(sizeof(mca_coll_han_allreduce_args_t)); + mca_coll_han_set_allreduce_args(t, t0, (char *) sbuf, (char *) rbuf, seg_count, dtype, op, + root_up_rank, root_low_rank, up_comm, low_comm, num_segments, 0, + w_rank, count - (num_segments - 1) * seg_count, + low_rank != root_low_rank, NULL, completed); + /* Init t0 task */ + init_task(t0, mca_coll_han_allreduce_t0_task, (void *) (t)); + /* Issure t0 task */ + issue_task(t0); + + /* Create t1 tasks for the current segment */ + mca_coll_task_t *t1 = OBJ_NEW(mca_coll_task_t); + /* Setup up t1 task arguments */ + t->cur_task = t1; + /* Init t1 task */ + init_task(t1, mca_coll_han_allreduce_t1_task, (void *) t); + /* Issue t1 task */ + issue_task(t1); + + /* Create t2 tasks for the current segment */ + mca_coll_task_t *t2 = OBJ_NEW(mca_coll_task_t); + /* Setup up t2 task arguments */ + t->cur_task = t2; + /* Init t2 task */ + init_task(t2, mca_coll_han_allreduce_t2_task, (void *) t); + issue_task(t2); + + /* Create t3 tasks for the current segment */ + mca_coll_task_t *t3 = OBJ_NEW(mca_coll_task_t); + /* Setup up t3 task arguments */ + t->cur_task = t3; + /* Init t3 task */ + init_task(t3, mca_coll_han_allreduce_t3_task, (void *) t); + issue_task(t3); + + while (t->completed[0] != t->num_segments) { + /* Create t_next_seg tasks for the current segment */ + mca_coll_task_t *t_next_seg = OBJ_NEW(mca_coll_task_t); + /* Setup up t_next_seg task arguments */ + t->cur_task = t_next_seg; + t->sbuf = (char *) t->sbuf + extent * t->seg_count; + t->rbuf = (char *) t->rbuf + extent * t->seg_count; + t->cur_seg = t->cur_seg + 1; + /* Init t_next_seg task */ + init_task(t_next_seg, mca_coll_han_allreduce_t3_task, (void *) t); + issue_task(t_next_seg); + } + free(t->completed); + t->completed = NULL; + free(t); + + return OMPI_SUCCESS; + + prev_allreduce_intra: + return han_module->previous_allreduce(sbuf, rbuf, count, dtype, op, + comm, han_module->previous_allreduce_module); +} + +/* t0 task that performs a local reduction */ +int mca_coll_han_allreduce_t0_task(void *task_args) +{ + mca_coll_han_allreduce_args_t *t = (mca_coll_han_allreduce_args_t *) task_args; + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d] HAN Allreduce: t0 %d r_buf %d\n", t->w_rank, t->cur_seg, + ((int *) t->rbuf)[0])); + OBJ_RELEASE(t->cur_task); + ptrdiff_t extent, lb; + ompi_datatype_get_extent(t->dtype, &lb, &extent); + if (MPI_IN_PLACE == t->sbuf) { + if (!t->noop) { + t->low_comm->c_coll->coll_reduce(MPI_IN_PLACE, (char *) t->rbuf, t->seg_count, t->dtype, + t->op, t->root_low_rank, t->low_comm, + t->low_comm->c_coll->coll_reduce_module); + } + else { + t->low_comm->c_coll->coll_reduce((char *) t->rbuf, NULL, t->seg_count, t->dtype, + t->op, t->root_low_rank, t->low_comm, + t->low_comm->c_coll->coll_reduce_module); + } + } + else { + t->low_comm->c_coll->coll_reduce((char *) t->sbuf, (char *) t->rbuf, t->seg_count, t->dtype, + t->op, t->root_low_rank, t->low_comm, + t->low_comm->c_coll->coll_reduce_module); + } + return OMPI_SUCCESS; +} + +/* t1 task that performs a ireduce on top communicator */ +int mca_coll_han_allreduce_t1_task(void *task_args) +{ + mca_coll_han_allreduce_args_t *t = (mca_coll_han_allreduce_args_t *) task_args; + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d] HAN Allreduce: t1 %d r_buf %d\n", t->w_rank, t->cur_seg, + ((int *) t->rbuf)[0])); + OBJ_RELEASE(t->cur_task); + ptrdiff_t extent, lb; + ompi_datatype_get_extent(t->dtype, &lb, &extent); + ompi_request_t *ireduce_req; + int tmp_count = t->seg_count; + if (!t->noop) { + int up_rank = ompi_comm_rank(t->up_comm); + /* ur of cur_seg */ + if (up_rank == t->root_up_rank) { + t->up_comm->c_coll->coll_ireduce(MPI_IN_PLACE, (char *) t->rbuf, t->seg_count, t->dtype, + t->op, t->root_up_rank, t->up_comm, &ireduce_req, + t->up_comm->c_coll->coll_ireduce_module); + } else { + t->up_comm->c_coll->coll_ireduce((char *) t->rbuf, (char *) t->rbuf, t->seg_count, + t->dtype, t->op, t->root_up_rank, t->up_comm, + &ireduce_req, t->up_comm->c_coll->coll_ireduce_module); + } + } + /* lr of cur_seg+1 */ + if (t->cur_seg <= t->num_segments - 2) { + if (t->cur_seg == t->num_segments - 2 && t->last_seg_count != t->seg_count) { + tmp_count = t->last_seg_count; + } + t->low_comm->c_coll->coll_reduce((char *) t->sbuf + extent * t->seg_count, + (char *) t->rbuf + extent * t->seg_count, tmp_count, + t->dtype, t->op, t->root_low_rank, t->low_comm, + t->low_comm->c_coll->coll_reduce_module); + + } + if (!t->noop) { + ompi_request_wait(&ireduce_req, MPI_STATUS_IGNORE); + } + + return OMPI_SUCCESS; +} + +/* t2 task */ +int mca_coll_han_allreduce_t2_task(void *task_args) +{ + mca_coll_han_allreduce_args_t *t = (mca_coll_han_allreduce_args_t *) task_args; + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d] HAN Allreduce: t2 %d r_buf %d\n", t->w_rank, t->cur_seg, + ((int *) t->rbuf)[0])); + OBJ_RELEASE(t->cur_task); + ptrdiff_t extent, lb; + ompi_datatype_get_extent(t->dtype, &lb, &extent); + ompi_request_t *reqs[2]; + int req_count = 0; + int tmp_count = t->seg_count; + if (!t->noop) { + int up_rank = ompi_comm_rank(t->up_comm); + /* ub of cur_seg */ + t->up_comm->c_coll->coll_ibcast((char *) t->rbuf, t->seg_count, t->dtype, t->root_up_rank, + t->up_comm, &(reqs[0]), + t->up_comm->c_coll->coll_ibcast_module); + req_count++; + /* ur of cur_seg+1 */ + if (t->cur_seg <= t->num_segments - 2) { + if (t->cur_seg == t->num_segments - 2 && t->last_seg_count != t->seg_count) { + tmp_count = t->last_seg_count; + } + if (up_rank == t->root_up_rank) { + t->up_comm->c_coll->coll_ireduce(MPI_IN_PLACE, + (char *) t->rbuf + extent * t->seg_count, + tmp_count, t->dtype, t->op, t->root_up_rank, + t->up_comm, &(reqs[1]), + t->up_comm->c_coll->coll_ireduce_module); + } else { + t->up_comm->c_coll->coll_ireduce((char *) t->rbuf + extent * t->seg_count, + (char *) t->rbuf + extent * t->seg_count, + tmp_count, t->dtype, t->op, t->root_up_rank, + t->up_comm, &(reqs[1]), + t->up_comm->c_coll->coll_ireduce_module); + } + req_count++; + } + } + /* lr of cur_seg+2 */ + if (t->cur_seg <= t->num_segments - 3) { + if (t->cur_seg == t->num_segments - 3 && t->last_seg_count != t->seg_count) { + tmp_count = t->last_seg_count; + } + t->low_comm->c_coll->coll_reduce((char *) t->sbuf + 2 * extent * t->seg_count, + (char *) t->rbuf + 2 * extent * t->seg_count, tmp_count, + t->dtype, t->op, t->root_low_rank, t->low_comm, + t->low_comm->c_coll->coll_reduce_module); + } + if (!t->noop && req_count > 0) { + ompi_request_wait_all(req_count, reqs, MPI_STATUSES_IGNORE); + } + + + return OMPI_SUCCESS; +} + +/* t3 task that performs broadcasts */ +int mca_coll_han_allreduce_t3_task(void *task_args) +{ + mca_coll_han_allreduce_args_t *t = (mca_coll_han_allreduce_args_t *) task_args; + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d] HAN Allreduce: t3 %d r_buf %d\n", t->w_rank, t->cur_seg, + ((int *) t->rbuf)[0])); + OBJ_RELEASE(t->cur_task); + ptrdiff_t extent, lb; + ompi_datatype_get_extent(t->dtype, &lb, &extent); + ompi_request_t *reqs[2]; + int req_count = 0; + int tmp_count = t->seg_count; + if (!t->noop) { + int up_rank = ompi_comm_rank(t->up_comm); + /* ub of cur_seg+1 */ + if (t->cur_seg <= t->num_segments - 2) { + if (t->cur_seg == t->num_segments - 2 && t->last_seg_count != t->seg_count) { + tmp_count = t->last_seg_count; + } + t->up_comm->c_coll->coll_ibcast((char *) t->rbuf + extent * t->seg_count, t->seg_count, + t->dtype, t->root_up_rank, t->up_comm, &(reqs[0]), + t->up_comm->c_coll->coll_ibcast_module); + req_count++; + } + /* ur of cur_seg+2 */ + if (t->cur_seg <= t->num_segments - 3) { + if (t->cur_seg == t->num_segments - 3 && t->last_seg_count != t->seg_count) { + tmp_count = t->last_seg_count; + } + if (up_rank == t->root_up_rank) { + t->up_comm->c_coll->coll_ireduce(MPI_IN_PLACE, + (char *) t->rbuf + 2 * extent * t->seg_count, + tmp_count, t->dtype, t->op, t->root_up_rank, + t->up_comm, &(reqs[1]), + t->up_comm->c_coll->coll_ireduce_module); + } else { + t->up_comm->c_coll->coll_ireduce((char *) t->rbuf + 2 * extent * t->seg_count, + (char *) t->rbuf + 2 * extent * t->seg_count, + tmp_count, t->dtype, t->op, t->root_up_rank, + t->up_comm, &(reqs[1]), + t->up_comm->c_coll->coll_ireduce_module); + } + req_count++; + } + } + /* lr of cur_seg+3 */ + if (t->cur_seg <= t->num_segments - 4) { + if (t->cur_seg == t->num_segments - 4 && t->last_seg_count != t->seg_count) { + tmp_count = t->last_seg_count; + } + t->low_comm->c_coll->coll_reduce((char *) t->sbuf + 3 * extent * t->seg_count, + (char *) t->rbuf + 3 * extent * t->seg_count, tmp_count, + t->dtype, t->op, t->root_low_rank, t->low_comm, + t->low_comm->c_coll->coll_reduce_module); + } + /* lb of cur_seg */ + t->low_comm->c_coll->coll_bcast((char *) t->rbuf, t->seg_count, t->dtype, t->root_low_rank, + t->low_comm, t->low_comm->c_coll->coll_bcast_module); + if (!t->noop && req_count > 0) { + ompi_request_wait_all(req_count, reqs, MPI_STATUSES_IGNORE); + } + + t->completed[0]++; + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d] HAN Allreduce: t3 %d total %d\n", t->w_rank, t->cur_seg, + t->completed[0])); + + return OMPI_SUCCESS; +} + +/* + * Short implementation of allreduce that only does hierarchical + * communications without tasks. + */ +int +mca_coll_han_allreduce_intra_simple(const void *sbuf, + void *rbuf, + int count, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + ompi_communicator_t *low_comm; + ompi_communicator_t *up_comm; + int root_low_rank = 0; + int low_rank; + int ret; + mca_coll_han_module_t *han_module = (mca_coll_han_module_t *)module; +#if OPAL_ENABLE_DEBUG + mca_coll_han_component_t *cs = &mca_coll_han_component; +#endif + + OPAL_OUTPUT_VERBOSE((10, cs->han_output, + "[OMPI][han] in mca_coll_han_reduce_intra_simple\n")); + + // Fallback to another component if the op cannot commute + if (! ompi_op_is_commute(op)) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle allreduce with this operation. Fall back on another component\n")); + goto prev_allreduce; + } + + /* Create the subcommunicators */ + if( OMPI_SUCCESS != mca_coll_han_comm_create_new(comm, han_module) ) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle allreduce with this communicator. Drop HAN support in this communicator and fall back on another component\n")); + /* HAN cannot work with this communicator so fallback on all collectives */ + HAN_LOAD_FALLBACK_COLLECTIVES(han_module, comm); + return comm->c_coll->coll_allreduce(sbuf, rbuf, count, dtype, op, + comm, comm->c_coll->coll_reduce_module); + } + + low_comm = han_module->sub_comm[INTRA_NODE]; + up_comm = han_module->sub_comm[INTER_NODE]; + low_rank = ompi_comm_rank(low_comm); + + /* Low_comm reduce */ + if (MPI_IN_PLACE == sbuf) { + if (low_rank == root_low_rank) { + ret = low_comm->c_coll->coll_reduce(MPI_IN_PLACE, (char *)rbuf, + count, dtype, op, root_low_rank, + low_comm, low_comm->c_coll->coll_reduce_module); + } + else { + ret = low_comm->c_coll->coll_reduce((char *)rbuf, NULL, + count, dtype, op, root_low_rank, + low_comm, low_comm->c_coll->coll_reduce_module); + } + } + else { + ret = low_comm->c_coll->coll_reduce((char *)sbuf, (char *)rbuf, + count, dtype, op, root_low_rank, + low_comm, low_comm->c_coll->coll_reduce_module); + } + if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) { + OPAL_OUTPUT_VERBOSE((30, cs->han_output, + "HAN/ALLREDUCE: low comm reduce failed. " + "Falling back to another component\n")); + goto prev_allreduce; + } + + /* Local roots perform a allreduce on the upper comm */ + if (low_rank == root_low_rank) { + ret = up_comm->c_coll->coll_allreduce(MPI_IN_PLACE, rbuf, count, dtype, op, + up_comm, up_comm->c_coll->coll_allreduce_module); + if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) { + OPAL_OUTPUT_VERBOSE((30, cs->han_output, + "HAN/ALLREDUCE: up comm allreduce failed. \n")); + /* + * Do not fallback in such a case: only root_low_ranks follow this + * path, the other ranks are in another collective. + * ==> Falling back would potentially lead to a hang. + * Simply return the error + */ + return ret; + } + } + + /* Low_comm bcast */ + ret = low_comm->c_coll->coll_bcast(rbuf, count, dtype, + root_low_rank, low_comm, low_comm->c_coll->coll_bcast_module); + if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) { + OPAL_OUTPUT_VERBOSE((30, cs->han_output, + "HAN/ALLREDUCE: low comm bcast failed. " + "Falling back to another component\n")); + goto prev_allreduce; + } + + return OMPI_SUCCESS; + + prev_allreduce: + return han_module->previous_allreduce(sbuf, rbuf, count, dtype, op, + comm, han_module->previous_allreduce_module); +} + +/* Find a fallback on reproducible algorithm + * use tuned, or if impossible whatever available + */ +int +mca_coll_han_allreduce_reproducible_decision(struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + int w_rank = ompi_comm_rank(comm); + mca_coll_han_module_t *han_module = (mca_coll_han_module_t *)module; + + /* populate previous modules_storage*/ + mca_coll_han_get_all_coll_modules(comm, han_module); + + /* try availability of reproducible modules*/ + int fallbacks[] = {TUNED, BASIC}; + int fallbacks_len = sizeof(fallbacks) / sizeof(*fallbacks); + int i; + for (i=0; imodules_storage.modules[fallback].module_handler; + if (NULL != fallback_module && NULL != fallback_module->coll_allreduce) { + if (0 == w_rank) { + opal_output_verbose(30, mca_coll_han_component.han_output, + "coll:han:allreduce_reproducible: " + "fallback on %s\n", + available_components[fallback].component_name); + } + han_module->reproducible_allreduce_module = fallback_module; + han_module->reproducible_allreduce = fallback_module->coll_allreduce; + return OMPI_SUCCESS; + } + } + /* fallback of the fallback */ + if (0 == w_rank) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:allreduce_reproducible_decision: " + "no reproducible fallback\n"); + } + han_module->reproducible_allreduce_module = han_module->previous_allreduce_module; + han_module->reproducible_allreduce = han_module->previous_allreduce; + return OMPI_SUCCESS; +} + +/* Fallback on reproducible algorithm */ +int +mca_coll_han_allreduce_reproducible(const void *sbuf, + void *rbuf, + int count, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t *)module; + return han_module->reproducible_allreduce(sbuf, rbuf, count, dtype, + op, comm, + han_module + ->reproducible_allreduce_module); +} diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han_barrier.c openmpi-4.1.4/ompi/mca/coll/han/coll_han_barrier.c --- openmpi-4.0.3/ompi/mca/coll/han/coll_han_barrier.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han_barrier.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2018-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Bull S.A.S. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +/** + * @file + * + * This files contains all the hierarchical implementations of barrier + */ + +#include "coll_han.h" +#include "ompi/mca/coll/base/coll_base_functions.h" +#include "ompi/mca/coll/base/coll_tags.h" + + +/** + * Short implementation of barrier that only does hierarchical + * communications without tasks. + */ +int +mca_coll_han_barrier_intra_simple(struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t *)module; + ompi_communicator_t *low_comm, *up_comm; + + /* create the subcommunicators */ + if( OMPI_SUCCESS != mca_coll_han_comm_create_new(comm, han_module) ) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle barrier with this communicator. Fall back on another component\n")); + /* Put back the fallback collective support and call it once. All + * future calls will then be automatically redirected. + */ + HAN_LOAD_FALLBACK_COLLECTIVES(han_module, comm); + return comm->c_coll->coll_barrier(comm, comm->c_coll->coll_bcast_module); + } + + low_comm = han_module->sub_comm[INTRA_NODE]; + up_comm = han_module->sub_comm[INTER_NODE]; + + int low_rank = ompi_comm_rank(low_comm); + int root_low_rank = 0; /* rank leader will be 0 on each node */ + + /* TODO: extend coll interface with half barrier */ + low_comm->c_coll->coll_barrier(low_comm,low_comm->c_coll->coll_barrier_module); + + if (low_rank == root_low_rank) { + up_comm->c_coll->coll_barrier(up_comm, up_comm->c_coll->coll_barrier_module); + } + + low_comm->c_coll->coll_barrier(low_comm,low_comm->c_coll->coll_barrier_module); + + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han_bcast.c openmpi-4.1.4/ompi/mca/coll/han/coll_han_bcast.c --- openmpi-4.0.3/ompi/mca/coll/han/coll_han_bcast.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han_bcast.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,295 @@ +/* + * Copyright (c) 2018-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Bull S.A.S. All rights reserved. + * Copyright (c) 2020 Cisco Systems, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +/** + * @file + * + * This files contains all the hierarchical implementations of bcast + */ + +#include "coll_han.h" +#include "ompi/mca/coll/base/coll_base_functions.h" +#include "ompi/mca/coll/base/coll_tags.h" +#include "ompi/mca/pml/pml.h" +#include "coll_han_trigger.h" + +static int mca_coll_han_bcast_t0_task(void *task_args); +static int mca_coll_han_bcast_t1_task(void *task_args); + +static inline void +mca_coll_han_set_bcast_args(mca_coll_han_bcast_args_t * args, mca_coll_task_t * cur_task, void *buff, + int seg_count, struct ompi_datatype_t *dtype, + int root_up_rank, int root_low_rank, + struct ompi_communicator_t *up_comm, + struct ompi_communicator_t *low_comm, + int num_segments, int cur_seg, int w_rank, int last_seg_count, + bool noop) +{ + args->cur_task = cur_task; + args->buff = buff; + args->seg_count = seg_count; + args->dtype = dtype; + args->root_low_rank = root_low_rank; + args->root_up_rank = root_up_rank; + args->up_comm = up_comm; + args->low_comm = low_comm; + args->num_segments = num_segments; + args->cur_seg = cur_seg; + args->w_rank = w_rank; + args->last_seg_count = last_seg_count; + args->noop = noop; +} + +/* + * Each segment of the messsage needs to go though 2 steps to perform MPI_Bcast: + * ub: upper level (inter-node) bcast + * lb: low level (shared-memory or intra-node) bcast. + * Hence, in each iteration, there is a combination of collective operations which is called a task. + * | seg 0 | seg 1 | seg 2 | seg 3 | + * iter 0 | ub | | | | task: t0, contains ub + * iter 1 | lb | ub | | | task: t1, contains ub and lb + * iter 2 | | lb | ub | | task: t1, contains ub and lb + * iter 3 | | | lb | ub | task: t1, contains ub and lb + * iter 4 | | | | lb | task: t1, contains lb + */ +int +mca_coll_han_bcast_intra(void *buff, + int count, + struct ompi_datatype_t *dtype, + int root, + struct ompi_communicator_t *comm, mca_coll_base_module_t * module) +{ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t *)module; + int err, seg_count = count, w_rank = ompi_comm_rank(comm); + ompi_communicator_t *low_comm, *up_comm; + ptrdiff_t extent, lb; + size_t dtype_size; + + /* Create the subcommunicators */ + err = mca_coll_han_comm_create(comm, han_module); + if( OMPI_SUCCESS != err ) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle bcast with this communicator. Fall back on another component\n")); + /* Put back the fallback collective support and call it once. All + * future calls will then be automatically redirected. + */ + HAN_LOAD_FALLBACK_COLLECTIVES(han_module, comm); + return comm->c_coll->coll_bcast(buff, count, dtype, root, + comm, comm->c_coll->coll_bcast_module); + } + /* Topo must be initialized to know rank distribution which then is used to + * determine if han can be used */ + mca_coll_han_topo_init(comm, han_module, 2); + if (han_module->are_ppn_imbalanced) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle bcast with this communicator (imbalance). Fall back on another component\n")); + /* Put back the fallback collective support and call it once. All + * future calls will then be automatically redirected. + */ + HAN_LOAD_FALLBACK_COLLECTIVE(han_module, comm, bcast); + return comm->c_coll->coll_bcast(buff, count, dtype, root, + comm, comm->c_coll->coll_bcast_module); + } + + ompi_datatype_get_extent(dtype, &lb, &extent); + ompi_datatype_type_size(dtype, &dtype_size); + + /* use MCA parameters for now */ + low_comm = han_module->cached_low_comms[mca_coll_han_component.han_bcast_low_module]; + up_comm = han_module->cached_up_comms[mca_coll_han_component.han_bcast_up_module]; + COLL_BASE_COMPUTED_SEGCOUNT(mca_coll_han_component.han_bcast_segsize, dtype_size, + seg_count); + + int num_segments = (count + seg_count - 1) / seg_count; + OPAL_OUTPUT_VERBOSE((20, mca_coll_han_component.han_output, + "In HAN seg_count %d count %d num_seg %d\n", + seg_count, count, num_segments)); + + int *vranks = han_module->cached_vranks; + int low_rank = ompi_comm_rank(low_comm); + int low_size = ompi_comm_size(low_comm); + + int root_low_rank, root_up_rank; + mca_coll_han_get_ranks(vranks, root, low_size, &root_low_rank, &root_up_rank); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d]: root_low_rank %d root_up_rank %d\n", w_rank, root_low_rank, + root_up_rank)); + + /* Create t0 tasks for the first segment */ + mca_coll_task_t *t0 = OBJ_NEW(mca_coll_task_t); + /* Setup up t0 task arguments */ + mca_coll_han_bcast_args_t *t = malloc(sizeof(mca_coll_han_bcast_args_t)); + mca_coll_han_set_bcast_args(t, t0, (char *) buff, seg_count, dtype, + root_up_rank, root_low_rank, up_comm, low_comm, + num_segments, 0, w_rank, count - (num_segments - 1) * seg_count, + low_rank != root_low_rank); + /* Init the first task */ + init_task(t0, mca_coll_han_bcast_t0_task, (void *) t); + issue_task(t0); + + /* Create t1 task */ + mca_coll_task_t *t1 = OBJ_NEW(mca_coll_task_t); + /* Setup up t1 task arguments */ + t->cur_task = t1; + /* Init the t1 task */ + init_task(t1, mca_coll_han_bcast_t1_task, (void *) t); + issue_task(t1); + + while (t->cur_seg <= t->num_segments - 2) { + /* Create t1 task */ + t->cur_task = t1 = OBJ_NEW(mca_coll_task_t); + t->buff = (char *) t->buff + extent * seg_count; + t->cur_seg = t->cur_seg + 1; + /* Init the t1 task */ + init_task(t1, mca_coll_han_bcast_t1_task, (void *) t); + issue_task(t1); + } + + free(t); + + return OMPI_SUCCESS; +} + +/* t0 task: issue and wait for the upper level ibcast of segment 0 */ +int mca_coll_han_bcast_t0_task(void *task_args) +{ + mca_coll_han_bcast_args_t *t = (mca_coll_han_bcast_args_t *) task_args; + + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, "[%d]: in t0 %d\n", t->w_rank, + t->cur_seg)); + OBJ_RELEASE(t->cur_task); + if (t->noop) { + return OMPI_SUCCESS; + } + t->up_comm->c_coll->coll_bcast((char *) t->buff, t->seg_count, t->dtype, t->root_up_rank, + t->up_comm, t->up_comm->c_coll->coll_bcast_module); + return OMPI_SUCCESS; +} + +/* t1 task: + * 1. issue the upper level ibcast of segment cur_seg + 1 + * 2. issue the low level bcast of segment cur_seg + * 3. wait for the completion of the ibcast + */ +int mca_coll_han_bcast_t1_task(void *task_args) +{ + mca_coll_han_bcast_args_t *t = (mca_coll_han_bcast_args_t *) task_args; + ompi_request_t *ibcast_req = NULL; + int tmp_count = t->seg_count; + ptrdiff_t extent, lb; + + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, "[%d]: in t1 %d\n", t->w_rank, + t->cur_seg)); + OBJ_RELEASE(t->cur_task); + ompi_datatype_get_extent(t->dtype, &lb, &extent); + if (!t->noop) { + if (t->cur_seg <= t->num_segments - 2 ) { + if (t->cur_seg == t->num_segments - 2) { + tmp_count = t->last_seg_count; + } + t->up_comm->c_coll->coll_ibcast((char *) t->buff + extent * t->seg_count, + tmp_count, t->dtype, t->root_up_rank, + t->up_comm, &ibcast_req, + t->up_comm->c_coll->coll_ibcast_module); + } + } + + /* are we the last segment to be pushed downstream ? */ + tmp_count = (t->cur_seg == (t->num_segments - 1)) ? t->last_seg_count : t->seg_count; + t->low_comm->c_coll->coll_bcast((char *) t->buff, + tmp_count, t->dtype, t->root_low_rank, t->low_comm, + t->low_comm->c_coll->coll_bcast_module); + + if (NULL != ibcast_req) { + ompi_request_wait(&ibcast_req, MPI_STATUS_IGNORE); + } + + return OMPI_SUCCESS; +} + +/* + * Short implementation of bcast that only does hierarchical + * communications without tasks. + */ +int +mca_coll_han_bcast_intra_simple(void *buff, + int count, + struct ompi_datatype_t *dtype, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + /* create the subcommunicators */ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t *)module; + ompi_communicator_t *low_comm, *up_comm; + int err; +#if OPAL_ENABLE_DEBUG + int w_rank = ompi_comm_rank(comm); +#endif + + /* Create the subcommunicators */ + err = mca_coll_han_comm_create_new(comm, han_module); + if( OMPI_SUCCESS != err ) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle bcast with this communicator. Fall back on another component\n")); + /* Put back the fallback collective support and call it once. All + * future calls will then be automatically redirected. + */ + HAN_LOAD_FALLBACK_COLLECTIVES(han_module, comm); + return comm->c_coll->coll_bcast(buff, count, dtype, root, + comm, comm->c_coll->coll_bcast_module); + } + /* Topo must be initialized to know rank distribution which then is used to + * determine if han can be used */ + mca_coll_han_topo_init(comm, han_module, 2); + if (han_module->are_ppn_imbalanced) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle bcast with this communicator (imbalance). Fall back on another component\n")); + /* Put back the fallback collective support and call it once. All + * future calls will then be automatically redirected. + */ + HAN_LOAD_FALLBACK_COLLECTIVE(han_module, comm, bcast); + return comm->c_coll->coll_bcast(buff, count, dtype, root, + comm, comm->c_coll->coll_bcast_module); + } + + low_comm = han_module->sub_comm[INTRA_NODE]; + up_comm = han_module->sub_comm[INTER_NODE]; + + int *vranks = han_module->cached_vranks; + int low_rank = ompi_comm_rank(low_comm); + int low_size = ompi_comm_size(low_comm); + int root_low_rank, root_up_rank; + + mca_coll_han_get_ranks(vranks, root, low_size, &root_low_rank, &root_up_rank); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d]: root_low_rank %d root_up_rank %d\n", + w_rank, root_low_rank, root_up_rank)); + + if (low_rank == root_low_rank) { + up_comm->c_coll->coll_bcast(buff, count, dtype, root_up_rank, + up_comm, up_comm->c_coll->coll_bcast_module); + + /* To remove when han has better sub-module selection. + For now switching to ibcast enables to make runs with libnbc. */ + //ompi_request_t req; + //up_comm->c_coll->coll_ibcast(buff, count, dtype, root_up_rank, + // up_comm, &req, up_comm->c_coll->coll_ibcast_module); + //ompi_request_wait(&req, MPI_STATUS_IGNORE); + + } + low_comm->c_coll->coll_bcast(buff, count, dtype, root_low_rank, + low_comm, low_comm->c_coll->coll_bcast_module); + + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han_component.c openmpi-4.1.4/ompi/mca/coll/han/coll_han_component.c --- openmpi-4.0.3/ompi/mca/coll/han/coll_han_component.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,413 @@ +/* + * Copyright (c) 2018-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Bull S.A.S. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +/** + * @file + * + * Most of the description of the data layout is in the + * coll_han_module.c file. + */ + +#include "ompi_config.h" + +#include "opal/util/show_help.h" +#include "ompi/constants.h" +#include "ompi/mca/coll/coll.h" +#include "coll_han.h" +#include "coll_han_dynamic.h" +#include "coll_han_dynamic_file.h" +#include "ompi/mca/coll/base/coll_base_util.h" + +/* + * Public string showing the coll ompi_han component version number + */ +const char *mca_coll_han_component_version_string = + "Open MPI HAN collective MCA component version " OMPI_VERSION; + +ompi_coll_han_components available_components[COMPONENTS_COUNT] = { + { SELF, "self", NULL }, + { BASIC, "basic", NULL }, + { LIBNBC, "libnbc", NULL }, + { TUNED, "tuned", NULL }, + { SM, "sm", NULL }, + { ADAPT, "adapt", NULL }, + { HAN, "han", NULL } +}; + +/* + * Local functions + */ +static int han_open(void); +static int han_close(void); +static int han_register(void); + +/* + * Instantiate the public struct with all of our public information + * and pointers to our public functions in it + */ + +mca_coll_han_component_t mca_coll_han_component = { + /* First, fill in the super */ + { + /* First, the mca_component_t struct containing meta + information about the component itself */ + + .collm_version = { + MCA_COLL_BASE_VERSION_2_0_0, + + /* Component name and version */ + .mca_component_name = "han", + MCA_BASE_MAKE_VERSION(component, OMPI_MAJOR_VERSION, OMPI_MINOR_VERSION, + OMPI_RELEASE_VERSION), + + /* Component functions */ + .mca_open_component = han_open, + .mca_close_component = han_close, + .mca_register_component_params = han_register, + }, + .collm_data = { + /* The component is not checkpoint ready */ + MCA_BASE_METADATA_PARAM_NONE}, + + /* Initialization / querying functions */ + + .collm_init_query = mca_coll_han_init_query, + .collm_comm_query = mca_coll_han_comm_query, + }, + + /* han-component specifc information */ + + /* (default) priority */ + 20, +}; + +/* + * Init the component + */ +static int han_open(void) +{ + /* Get the global coll verbosity: it will be ours */ + mca_coll_han_component.han_output = ompi_coll_base_framework.framework_output; + + return mca_coll_han_init_dynamic_rules(); +} + + +/* + * Shut down the component + */ +static int han_close(void) +{ + mca_coll_han_free_dynamic_rules(); + return OMPI_SUCCESS; +} + +/* + * @return true if the collective has a simple version that does not use tasks. + */ +static bool is_simple_implemented(COLLTYPE_T coll) +{ + switch(coll) { + case ALLGATHER: + case ALLREDUCE: + case BCAST: + case GATHER: + case REDUCE: + case SCATTER: + return true; + default: + return false; + } +} + +/* + * Stringifier for topological level + */ +const char* mca_coll_han_topo_lvl_to_str(TOPO_LVL_T topo_lvl) +{ + switch(topo_lvl) { + case INTRA_NODE: + return "intra_node"; + case INTER_NODE: + return "inter_node"; + case GLOBAL_COMMUNICATOR: + return "global_communicator"; + case NB_TOPO_LVL: + default: + return "invalid topologic level"; + } +} + + +/* + * Register MCA params + */ +static int han_register(void) +{ + mca_base_component_t *c = &mca_coll_han_component.super.collm_version; + mca_coll_han_component_t *cs = &mca_coll_han_component; + + /* Generated parameters name and description */ + char param_name[128], param_desc[256]; + int param_desc_size; + COLLTYPE_T coll; + TOPO_LVL_T topo_lvl; + COMPONENT_T component; + + cs->han_priority = 0; + (void) mca_base_component_var_register(c, "priority", "Priority of the HAN coll component", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->han_priority); + + cs->han_bcast_segsize = 65536; + (void) mca_base_component_var_register(c, "bcast_segsize", + "segment size for bcast", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->han_bcast_segsize); + + cs->han_bcast_up_module = 0; + (void) mca_base_component_var_register(c, "bcast_up_module", + "up level module for bcast, 0 libnbc, 1 adapt", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->han_bcast_up_module); + + cs->han_bcast_low_module = 0; + (void) mca_base_component_var_register(c, "bcast_low_module", + "low level module for bcast, 0 tuned, 1 sm", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->han_bcast_low_module); + + cs->han_reduce_segsize = 65536; + (void) mca_base_component_var_register(c, "reduce_segsize", + "segment size for reduce", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->han_reduce_segsize); + + cs->han_reduce_up_module = 0; + (void) mca_base_component_var_register(c, "reduce_up_module", + "up level module for allreduce, 0 libnbc, 1 adapt", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->han_reduce_up_module); + + cs->han_reduce_low_module = 0; + (void) mca_base_component_var_register(c, "reduce_low_module", + "low level module for allreduce, 0 tuned, 1 sm", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->han_reduce_low_module); + cs->han_allreduce_segsize = 65536; + (void) mca_base_component_var_register(c, "allreduce_segsize", + "segment size for allreduce", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->han_allreduce_segsize); + + cs->han_allreduce_up_module = 0; + (void) mca_base_component_var_register(c, "allreduce_up_module", + "up level module for allreduce, 0 libnbc, 1 adapt", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->han_allreduce_up_module); + + cs->han_allreduce_low_module = 0; + (void) mca_base_component_var_register(c, "allreduce_low_module", + "low level module for allreduce, 0 tuned, 1 sm", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->han_allreduce_low_module); + + cs->han_allgather_up_module = 0; + (void) mca_base_component_var_register(c, "allgather_up_module", + "up level module for allgather, 0 libnbc, 1 adapt", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->han_allgather_up_module); + + cs->han_allgather_low_module = 0; + (void) mca_base_component_var_register(c, "allgather_low_module", + "low level module for allgather, 0 tuned, 1 sm", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->han_allgather_low_module); + + cs->han_gather_up_module = 0; + (void) mca_base_component_var_register(c, "gather_up_module", + "up level module for gather, 0 libnbc, 1 adapt", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->han_gather_up_module); + + cs->han_gather_low_module = 0; + (void) mca_base_component_var_register(c, "gather_low_module", + "low level module for gather, 0 tuned, 1 sm", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->han_gather_low_module); + + cs->han_scatter_up_module = 0; + (void) mca_base_component_var_register(c, "scatter_up_module", + "up level module for scatter, 0 libnbc, 1 adapt", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->han_scatter_up_module); + + cs->han_scatter_low_module = 0; + (void) mca_base_component_var_register(c, "scatter_low_module", + "low level module for scatter, 0 tuned, 1 sm", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cs->han_scatter_low_module); + + cs->han_reproducible = 0; + (void) mca_base_component_var_register(c, "reproducible", + "whether we need reproducible results " + "(enabling this disables optimisations using topology)" + "0 disable 1 enable, default 0", + MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0, + OPAL_INFO_LVL_3, + MCA_BASE_VAR_SCOPE_READONLY, &cs->han_reproducible); + + /* + * Simple algorithms MCA parameters : + * using simple algorithms will just perform hierarchical communications. + * By default communications are also splitted into tasks + * to handle thread noise + */ + for(coll = 0 ; coll < COLLCOUNT ; coll++) { + cs->use_simple_algorithm[coll] = false; + if(is_simple_implemented(coll)) { + snprintf(param_name, sizeof(param_name), "use_simple_%s", + mca_coll_base_colltype_to_str(coll)); + snprintf(param_desc, sizeof(param_desc), "whether to enable simple algo for %s", + mca_coll_base_colltype_to_str(coll)); + mca_base_component_var_register(c, param_name, + param_desc, + MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_READONLY, + &(cs->use_simple_algorithm[coll])); + } + } + + /* Dynamic rules MCA parameters */ + memset(cs->mca_rules, 0, + COLLCOUNT * (GLOBAL_COMMUNICATOR+1) * sizeof(COMPONENT_T)); + + for(coll = 0; coll < COLLCOUNT; coll++) { + if(!mca_coll_han_is_coll_dynamic_implemented(coll)) { + continue; + } + /* + * Default values + */ + cs->mca_rules[coll][INTRA_NODE] = TUNED; + cs->mca_rules[coll][INTER_NODE] = BASIC; + cs->mca_rules[coll][GLOBAL_COMMUNICATOR] = HAN; + } + /* Specific default values */ + cs->mca_rules[BARRIER][INTER_NODE] = TUNED; + + /* Dynamic rule MCA var registration */ + for(coll = 0; coll < COLLCOUNT; coll++) { + if(!mca_coll_han_is_coll_dynamic_implemented(coll)) { + continue; + } + for(topo_lvl = 0; topo_lvl < NB_TOPO_LVL; topo_lvl++) { + + snprintf(param_name, sizeof(param_name), "%s_dynamic_%s_module", + mca_coll_base_colltype_to_str(coll), + mca_coll_han_topo_lvl_to_str(topo_lvl)); + + param_desc_size = snprintf(param_desc, sizeof(param_desc), + "Collective module to use for %s on %s topological level: ", + mca_coll_base_colltype_to_str(coll), + mca_coll_han_topo_lvl_to_str(topo_lvl)); + /* + * Exhaustive description: + * 0 = self; 1 = basic; 2 = libnbc; ... + * FIXME: Do not print component not providing this collective + */ + for(component = 0 ; component < COMPONENTS_COUNT ; component++) { + if(HAN == component && GLOBAL_COMMUNICATOR != topo_lvl) { + /* Han can only be used on the global communicator */ + continue; + } + param_desc_size += snprintf(param_desc+param_desc_size, sizeof(param_desc) - param_desc_size, + "%d = %s; ", + component, + available_components[component].component_name); + } + + mca_base_component_var_register(c, param_name, param_desc, + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, + &(cs->mca_rules[coll][topo_lvl])); + } + } + + /* Dynamic rules */ + cs->use_dynamic_file_rules = false; + (void) mca_base_component_var_register(&mca_coll_han_component.super.collm_version, + "use_dynamic_file_rules", + "Enable the dynamic selection provided via the dynamic_rules_filename MCA", + MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0, + OPAL_INFO_LVL_6, + MCA_BASE_VAR_SCOPE_READONLY, + &(cs->use_dynamic_file_rules)); + + cs->dynamic_rules_filename = NULL; + (void) mca_base_component_var_register(&mca_coll_han_component.super.collm_version, + "dynamic_rules_filename", + "Configuration file containing the dynamic selection rules", + MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, + OPAL_INFO_LVL_6, + MCA_BASE_VAR_SCOPE_READONLY, + &(cs->dynamic_rules_filename)); + + cs->dump_dynamic_rules = false; + (void) mca_base_component_var_register(&mca_coll_han_component.super.collm_version, + "dump_dynamic_rules", + "Switch used to decide if we dump dynamic rules provided by configuration file", + MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0, + OPAL_INFO_LVL_6, + MCA_BASE_VAR_SCOPE_READONLY, + &(cs->dump_dynamic_rules)); + + if((cs->dump_dynamic_rules || NULL != cs->dynamic_rules_filename) + && !cs->use_dynamic_file_rules) { + opal_output_verbose(0, cs->han_output, + "HAN: dynamic rules for collectives are hot activated." + "Check coll_han_use_dynamic_file_rules MCA parameter"); + } + + cs->max_dynamic_errors = 10; + (void) mca_base_component_var_register(&mca_coll_han_component.super.collm_version, + "max_dynamic_errors", + "Number of dynamic rules module/function " + "errors printed on rank 0 " + "with a 0 verbosity." + "Useless if coll_base_verbose is 30 or more.", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_6, + MCA_BASE_VAR_SCOPE_READONLY, + &(cs->max_dynamic_errors)); + + + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han_dynamic.c openmpi-4.1.4/ompi/mca/coll/han/coll_han_dynamic.c --- openmpi-4.0.3/ompi/mca/coll/han/coll_han_dynamic.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han_dynamic.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,1172 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2020 Bull S.A.S. All rights reserved. + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + + +/* + * @file + * This files contains all functions to dynamically select for each collective + * the coll module based on given MCA parameters, configuration file and + * messages characteristics +*/ + +#include "opal/class/opal_list.h" +#include "ompi/mca/coll/han/coll_han.h" +#include "ompi/mca/coll/han/coll_han_dynamic.h" +#include "ompi/mca/coll/base/coll_base_util.h" + +/* + * Tests if a dynamic collective is implemented + * Usefull for file reading warnings and MCA parameter generation + * When a new dynamic collective is implemented, this function must + * return true for it + */ +bool mca_coll_han_is_coll_dynamic_implemented(COLLTYPE_T coll_id) +{ + switch (coll_id) { + case ALLGATHER: + case ALLGATHERV: + case ALLREDUCE: + case BARRIER: + case BCAST: + case GATHER: + case REDUCE: + case SCATTER: + return true; + default: + return false; + } +} + +COMPONENT_T +mca_coll_han_component_name_to_id(const char* name) +{ + if(NULL == name) { + return -1; + } + + for( int i = SELF; i < COMPONENTS_COUNT ; i++ ) { + if (0 == strcmp(name, available_components[i].component_name)) { + return i; + } + } + return -1; +} + +/* + * Get all the collective modules initialized on this communicator + * This function must be called at the start of every selector implementation + * Note that han module may be not yet enabled + */ +int +mca_coll_han_get_all_coll_modules(struct ompi_communicator_t *comm, + mca_coll_han_module_t *han_module) +{ + mca_coll_base_module_t *han_base_module = (mca_coll_base_module_t *) han_module; + TOPO_LVL_T topo_lvl = han_module->topologic_level; + int nb_modules = 0; + mca_coll_base_avail_coll_t *item; + + /* If the modules are get yet, return success */ + if(han_module->storage_initialized) { + return OMPI_SUCCESS; + } + /* This list is populated at communicator creation */ + OPAL_LIST_FOREACH(item, + comm->c_coll->module_list, + mca_coll_base_avail_coll_t) { + mca_coll_base_module_t *module = item->ac_module; + const char *name = item->ac_component_name; + int id = mca_coll_han_component_name_to_id(name); + + if(id >= 0 && NULL != module && module != han_base_module) { + /* + * The identifier is correct + * Store the module + */ + han_module->modules_storage.modules[id].module_handler = module; + opal_output_verbose(80, mca_coll_han_component.han_output, + "coll:han:get_all_coll_modules HAN found module %s with id %d " + "for topological level %d (%s) for communicator (%d/%s)\n", + name, id, topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + nb_modules++; + } + } + + /* + * Add han_module on global communicator only + * to prevent any recursive call + */ + if(GLOBAL_COMMUNICATOR == han_module->topologic_level) { + han_module->modules_storage.modules[HAN].module_handler = han_base_module; + nb_modules++; + } + + opal_output_verbose(60, mca_coll_han_component.han_output, + "coll:han:get_all_coll_modules HAN sub-communicator modules storage " + "for topological level %d (%s) gets %d modules " + "for communicator (%d/%s)\n", + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + nb_modules, comm->c_contextid, comm->c_name); + + assert(0 != nb_modules); + + /* The modules are get */ + han_module->storage_initialized = true; + return OMPI_SUCCESS; +} + +/* + * Find the correct rule in the dynamic rules + * Assume rules are sorted by increasing value + */ +static const msg_size_rule_t* +get_dynamic_rule(COLLTYPE_T collective, + size_t msg_size, + struct ompi_communicator_t *comm, + mca_coll_han_module_t *han_module) +{ + /* Indexes of the rule */ + int coll_idx, topo_idx; + int conf_idx, msg_size_idx; + + /* Aliases */ + const mca_coll_han_dynamic_rules_t *dynamic_rules; + const collective_rule_t *coll_rule = NULL; + const topologic_rule_t *topo_rule = NULL; + const configuration_rule_t *conf_rule = NULL; + const msg_size_rule_t *msg_size_rule = NULL; + + const TOPO_LVL_T topo_lvl = han_module->topologic_level; + const int comm_size = ompi_comm_size(comm); + + COMPONENT_T component; + + /* Find the collective rule */ + dynamic_rules = &(mca_coll_han_component.dynamic_rules); + for(coll_idx = dynamic_rules->nb_collectives-1; + coll_idx >= 0; coll_idx--) { + if(dynamic_rules->collective_rules[coll_idx].collective_id == collective) { + coll_rule = &(dynamic_rules->collective_rules[coll_idx]); + break; + } + } + if(coll_idx < 0 || NULL == coll_rule) { + /* No dynamic rules for this collective */ + opal_output_verbose(60, mca_coll_han_component.han_output, + "coll:han:get_dynamic_rule HAN searched for collective %d (%s) " + "but did not find any rule for this collective\n", + collective, mca_coll_base_colltype_to_str(collective)); + return NULL; + } + + /* Find the topologic level rule */ + for(topo_idx = coll_rule->nb_topologic_levels-1; + topo_idx >= 0; topo_idx--) { + if(coll_rule->topologic_rules[topo_idx].topologic_level == topo_lvl) { + topo_rule = &(coll_rule->topologic_rules[topo_idx]); + break; + } + } + if(topo_idx < 0 || NULL == topo_rule) { + /* No topologic level rules for this collective */ + opal_output_verbose(60, mca_coll_han_component.han_output, + "coll:han:get_dynamic_rule HAN searched for topologic level %d (%s) rule " + "for collective %d (%s) but did not find any rule\n", + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + collective, mca_coll_base_colltype_to_str(collective)); + return NULL; + } + + /* Find the configuration rule */ + for(conf_idx = topo_rule->nb_rules-1; + conf_idx >= 0; conf_idx--) { + if(topo_rule->configuration_rules[conf_idx].configuration_size <= comm_size) { + conf_rule = &(topo_rule->configuration_rules[conf_idx]); + break; + } + } + if(conf_idx < 0 || NULL == conf_rule) { + /* No corresponding configuration. Should not have happen with a correct file */ + opal_output_verbose(60, mca_coll_han_component.han_output, + "coll:han:get_dynamic_rule HAN searched a rule for collective %d (%s) " + "on topological level %d (%s) for a %d configuration size " + "but did not manage to find anything. " + "This is the result of an invalid configuration file: " + "the first configuration size of each collective must be 1\n", + collective, mca_coll_base_colltype_to_str(collective), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), comm_size); + return NULL; + } + + /* Find the message size rule */ + for(msg_size_idx = conf_rule->nb_msg_size-1; + msg_size_idx >= 0; msg_size_idx--) { + if(conf_rule->msg_size_rules[msg_size_idx].msg_size <= msg_size) { + msg_size_rule = &(conf_rule->msg_size_rules[msg_size_idx]); + break; + } + } + if(msg_size_idx < 0 || NULL == msg_size_rule) { + /* No corresponding message size. Should not happen with a correct file */ + opal_output_verbose(60, mca_coll_han_component.han_output, + "coll:han:get_dynamic_rule HAN searched a rule for collective %d (%s) " + "on topological level %d (%s) for a %d configuration size " + "for a %" PRIsize_t " sized message but did not manage to find anything. " + "This is the result of an invalid configuration file: " + "the first message size of each configuration must be 0\n", + collective, mca_coll_base_colltype_to_str(collective), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm_size, msg_size); + + return NULL; + } + + component = msg_size_rule->component; + /* + * We have the final rule to use + * Module correctness is checked outside + */ + opal_output_verbose(80, mca_coll_han_component.han_output, + "coll:han:get_dynamic_rule HAN searched a rule for collective %d (%s) " + "on topological level %d (%s) for a %d configuration size " + "for a %" PRIsize_t " sized message. Found a rule for collective %d (%s) " + "on topological level %d (%s) for a %d configuration size " + "for a %" PRIsize_t " sized message : component %d (%s)\n", + collective, mca_coll_base_colltype_to_str(collective), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm_size, msg_size, msg_size_rule->collective_id, + mca_coll_base_colltype_to_str(msg_size_rule->collective_id), + msg_size_rule->topologic_level, + mca_coll_han_topo_lvl_to_str(msg_size_rule->topologic_level), + msg_size_rule->configuration_size, + msg_size_rule->msg_size, component, available_components[component].component_name); + + return msg_size_rule; +} + +/* + * Return the module to use for the collective coll_id + * for a msg_size sized message on the comm communicator + * following the dynamic rules + */ +static mca_coll_base_module_t* +get_module(COLLTYPE_T coll_id, + size_t msg_size, + struct ompi_communicator_t *comm, + mca_coll_han_module_t *han_module) +{ + const msg_size_rule_t *dynamic_rule; + TOPO_LVL_T topo_lvl; + COMPONENT_T mca_rule_component; + + topo_lvl = han_module->topologic_level; + mca_rule_component = mca_coll_han_component.mca_rules[coll_id][topo_lvl]; + + mca_coll_han_get_all_coll_modules(comm, han_module); + + /* Find the correct dynamic rule to check */ + dynamic_rule = get_dynamic_rule(coll_id, + msg_size, + comm, + han_module); + if(NULL != dynamic_rule) { + /* Use dynamic rule from file */ + return han_module->modules_storage.modules[dynamic_rule->component].module_handler; + } + /* + * No dynamic rule from file + * Use rule from mca parameter + */ + if(mca_rule_component < 0 || mca_rule_component >= COMPONENTS_COUNT) { + /* + * Invalid MCA parameter value + * Warn the user and return NULL + */ + opal_output_verbose(0, mca_coll_han_component.han_output, + "coll:han:get_module Invalid MCA parameter value %d " + "for collective %d (%s) on topologic level %d (%s)\n", + mca_rule_component, coll_id, + mca_coll_base_colltype_to_str(coll_id), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl)); + return NULL; + } + return han_module->modules_storage.modules[mca_rule_component].module_handler; +} + + +/* + * Allgather selector: + * On a sub-communicator, checks the stored rules to find the module to use + * On the global communicator, calls the han collective implementation, or + * calls the correct module if fallback mechanism is activated + */ +int +mca_coll_han_allgather_intra_dynamic(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, int rcount, + struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t*) module; + TOPO_LVL_T topo_lvl = han_module->topologic_level; + mca_coll_base_module_allgather_fn_t allgather; + mca_coll_base_module_t *sub_module; + size_t dtype_size; + int rank, verbosity = 0; + + /* Compute configuration information for dynamic rules */ + if( MPI_IN_PLACE != sbuf ) { + ompi_datatype_type_size(sdtype, &dtype_size); + dtype_size = dtype_size * scount; + } else { + ompi_datatype_type_size(rdtype, &dtype_size); + dtype_size = dtype_size * rcount; + } + sub_module = get_module(ALLGATHER, + dtype_size, + comm, + han_module); + + /* First errors are always printed by rank 0 */ + rank = ompi_comm_rank(comm); + if( (0 == rank) && (han_module->dynamic_errors < mca_coll_han_component.max_dynamic_errors) ) { + verbosity = 30; + } + + if(NULL == sub_module) { + /* + * No valid collective module from dynamic rules + * nor from mca parameter + */ + han_module->dynamic_errors++; + opal_output_verbose(verbosity, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_allgather_intra_dynamic " + "HAN did not find any valid module for collective %d (%s) " + "with topological level %d (%s) on communicator (%d/%s). " + "Please check dynamic file/mca parameters\n", + ALLGATHER, mca_coll_base_colltype_to_str(ALLGATHER), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/ALLGATHER: No module found for the sub-communicator. " + "Falling back to another component\n")); + allgather = han_module->previous_allgather; + sub_module = han_module->previous_allgather_module; + } else if (NULL == sub_module->coll_allgather) { + /* + * No valid collective from dynamic rules + * nor from mca parameter + */ + han_module->dynamic_errors++; + opal_output_verbose(verbosity, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_allgather_intra_dynamic HAN found valid module for collective %d (%s) " + "with topological level %d (%s) on communicator (%d/%s) but this module cannot handle this collective. " + "Please check dynamic file/mca parameters\n", + ALLGATHER, mca_coll_base_colltype_to_str(ALLGATHER), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/ALLGATHER: the module found for the sub-communicator" + " cannot handle the ALLGATHER operation. Falling back to another component\n")); + allgather = han_module->previous_allgather; + sub_module = han_module->previous_allgather_module; + } else if (GLOBAL_COMMUNICATOR == topo_lvl && sub_module == module) { + /* + * No fallback mechanism activated for this configuration + * sub_module is valid + * sub_module->coll_allgather is valid and point to this function + * Call han topological collective algorithm + */ + if(mca_coll_han_component.use_simple_algorithm[ALLGATHER]) { + allgather = mca_coll_han_allgather_intra_simple; + } else { + allgather = mca_coll_han_allgather_intra; + } + } else { + /* + * If we get here: + * sub_module is valid + * sub_module->coll_allgather is valid + * They points to the collective to use, according to the dynamic rules + * Selector's job is done, call the collective + */ + allgather = sub_module->coll_allgather; + } + return allgather(sbuf, scount, sdtype, + rbuf, rcount, rdtype, + comm, + sub_module); +} + + +/* + * Allgatherv selector: + * On a sub-communicator, checks the stored rules to find the module to use + * On the global communicator, calls the han collective implementation, or + * calls the correct module if fallback mechanism is activated + * The allgatherv size is the size of the biggest segment + */ +int +mca_coll_han_allgatherv_intra_dynamic(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, const int *rcounts, + const int *displs, + struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t*) module; + TOPO_LVL_T topo_lvl = han_module->topologic_level; + mca_coll_base_module_allgatherv_fn_t allgatherv; + int rank, verbosity = 0, comm_size, i; + mca_coll_base_module_t *sub_module; + size_t dtype_size, msg_size = 0; + + /* Compute configuration information for dynamic rules */ + comm_size = ompi_comm_size(comm); + ompi_datatype_type_size(rdtype, &dtype_size); + + for(i = 0; i < comm_size; i++) { + if(dtype_size * rcounts[i] > msg_size) { + msg_size = dtype_size * rcounts[i]; + } + } + + sub_module = get_module(ALLGATHERV, + msg_size, + comm, + han_module); + + /* First errors are always printed by rank 0 */ + rank = ompi_comm_rank(comm); + if( (0 == rank) && (han_module->dynamic_errors < mca_coll_han_component.max_dynamic_errors) ) { + verbosity = 30; + } + + if(NULL == sub_module) { + /* + * No valid collective module from dynamic rules + * nor from mca parameter + */ + han_module->dynamic_errors++; + opal_output_verbose(verbosity, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_allgatherv_intra_dynamic " + "HAN did not find any valid module for collective %d (%s) " + "with topological level %d (%s) on communicator (%d/%s). " + "Please check dynamic file/mca parameters\n", + ALLGATHERV, mca_coll_base_colltype_to_str(ALLGATHERV), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/ALLGATHERV: No module found for the sub-communicator. " + "Falling back to another component\n")); + allgatherv = han_module->previous_allgatherv; + sub_module = han_module->previous_allgatherv_module; + } else if (NULL == sub_module->coll_allgatherv) { + /* + * No valid collective from dynamic rules + * nor from mca parameter + */ + han_module->dynamic_errors++; + opal_output_verbose(verbosity, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_allgatherv_intra_dynamic " + "HAN found valid module for collective %d (%s) " + "with topological level %d (%s) on communicator (%d/%s) " + "but this module cannot handle this collective. " + "Please check dynamic file/mca parameters\n", + ALLGATHERV, mca_coll_base_colltype_to_str(ALLGATHERV), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/ALLGATHERV: the module found for the sub-" + "communicator cannot handle the ALLGATHERV operation. " + "Falling back to another component\n")); + allgatherv = han_module->previous_allgatherv; + sub_module = han_module->previous_allgatherv_module; + } else if (GLOBAL_COMMUNICATOR == topo_lvl && sub_module == module) { + /* + * No fallback mechanism activated for this configuration + * sub_module is valid + * sub_module->coll_allgatherv is valid and point to this function + * Call han topological collective algorithm + */ + opal_output_verbose(30, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_allgatherv_intra_dynamic " + "HAN used for collective %d (%s) with topological level %d (%s) " + "on communicator (%d/%s) but this module cannot handle " + "this collective on this topologic level\n", + ALLGATHERV, mca_coll_base_colltype_to_str(ALLGATHERV), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + allgatherv = han_module->previous_allgatherv; + sub_module = han_module->previous_allgatherv_module; + } else { + /* + * If we get here: + * sub_module is valid + * sub_module->coll_allgatherv is valid + * They points to the collective to use, according to the dynamic rules + * Selector's job is done, call the collective + */ + allgatherv = sub_module->coll_allgatherv; + } + return allgatherv(sbuf, scount, sdtype, + rbuf, rcounts, displs, + rdtype, comm, + sub_module); +} + + +/* + * Allreduce selector: + * On a sub-communicator, checks the stored rules to find the module to use + * On the global communicator, calls the han collective implementation, or + * calls the correct module if fallback mechanism is activated + */ +int +mca_coll_han_allreduce_intra_dynamic(const void *sbuf, + void *rbuf, + int count, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t*) module; + TOPO_LVL_T topo_lvl = han_module->topologic_level; + mca_coll_base_module_allreduce_fn_t allreduce; + mca_coll_base_module_t *sub_module; + size_t dtype_size; + int rank, verbosity = 0; + + /* Compute configuration information for dynamic rules */ + ompi_datatype_type_size(dtype, &dtype_size); + dtype_size = dtype_size * count; + + sub_module = get_module(ALLREDUCE, + dtype_size, + comm, + han_module); + + /* First errors are always printed by rank 0 */ + rank = ompi_comm_rank(comm); + if( (0 == rank) && (han_module->dynamic_errors < mca_coll_han_component.max_dynamic_errors) ) { + verbosity = 30; + } + + if(NULL == sub_module) { + /* + * No valid collective module from dynamic rules + * nor from mca parameter + */ + han_module->dynamic_errors++; + opal_output_verbose(verbosity, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_allreduce_intra_dynamic " + "HAN did not find any valid module for collective %d (%s) " + "with topological level %d (%s) on communicator (%d/%s). " + "Please check dynamic file/mca parameters\n", + ALLREDUCE, mca_coll_base_colltype_to_str(ALLREDUCE), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/ALLREDUCE: No module found for the sub-communicator. " + "Falling back to another component\n")); + allreduce = han_module->previous_allreduce; + sub_module = han_module->previous_allreduce_module; + } else if (NULL == sub_module->coll_allreduce) { + /* + * No valid collective from dynamic rules + * nor from mca parameter + */ + han_module->dynamic_errors++; + opal_output_verbose(verbosity, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_allreduce_intra_dynamic " + "HAN found valid module for collective %d (%s) " + "with topological level %d (%s) on communicator (%d/%s) " + "but this module cannot handle this collective. " + "Please check dynamic file/mca parameters\n", + ALLREDUCE, mca_coll_base_colltype_to_str(ALLREDUCE), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/ALLREDUCE: the module found for the sub-" + "communicator cannot handle the ALLREDUCE operation. " + "Falling back to another component\n")); + allreduce = han_module->previous_allreduce; + sub_module = han_module->previous_allreduce_module; + } else if (GLOBAL_COMMUNICATOR == topo_lvl && sub_module == module) { + /* Reproducibility: fallback on reproducible algo */ + if (mca_coll_han_component.han_reproducible) { + allreduce = mca_coll_han_allreduce_reproducible; + } else { + /* + * No fallback mechanism activated for this configuration + * sub_module is valid + * sub_module->coll_allreduce is valid and point to this function + * Call han topological collective algorithm + */ + if(mca_coll_han_component.use_simple_algorithm[ALLREDUCE]) { + allreduce = mca_coll_han_allreduce_intra_simple; + } else { + allreduce = mca_coll_han_allreduce_intra; + } + } + sub_module = module; + } else { + /* + * If we get here: + * sub_module is valid + * sub_module->coll_allreduce is valid + * They points to the collective to use, according to the dynamic rules + * Selector's job is done, call the collective + */ + allreduce = mca_coll_han_allreduce_intra; + } + return allreduce(sbuf, rbuf, count, dtype, + op, comm, sub_module); +} + + +/* + * Barrier selector: + * On a sub-communicator, checks the stored rules to find the module to use + * On the global communicator, calls the han collective implementation, or + * calls the correct module if fallback mechanism is activated + */ +int +mca_coll_han_barrier_intra_dynamic(struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t*) module; + TOPO_LVL_T topo_lvl = han_module->topologic_level; + mca_coll_base_module_barrier_fn_t barrier; + mca_coll_base_module_t *sub_module; + int rank, verbosity = 0; + + + /* Compute configuration information for dynamic rules */ + sub_module = get_module(BARRIER, + 0, + comm, + han_module); + + /* First errors are always printed by rank 0 */ + rank = ompi_comm_rank(comm); + if( (0 == rank) && (han_module->dynamic_errors < mca_coll_han_component.max_dynamic_errors) ) { + verbosity = 30; + } + + if(NULL == sub_module) { + /* + * No valid collective module from dynamic rules + * nor from mca parameter + */ + han_module->dynamic_errors++; + opal_output_verbose(verbosity, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_barrier_intra_dynamic " + "Han did not find any valid module for collective %d (%s) " + "with topological level %d (%s) on communicator (%d/%s). " + "Please check dynamic file/mca parameters\n", + BARRIER, mca_coll_base_colltype_to_str(BARRIER), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/BARRIER: No module found for the sub-communicator. " + "Falling back to another component\n")); + barrier = han_module->previous_barrier; + sub_module = han_module->previous_barrier_module; + } else if (NULL == sub_module->coll_barrier) { + /* + * No valid collective from dynamic rules + * nor from mca parameter + */ + han_module->dynamic_errors++; + opal_output_verbose(verbosity, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_barrier_intra_dynamic " + "Han found valid module for collective %d (%s) " + "with topological level %d (%s) on communicator (%d/%s) " + "but this module cannot handle this collective. " + "Please check dynamic file/mca parameters\n", + BARRIER, mca_coll_base_colltype_to_str(BARRIER), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/BARRIER: the module found for the sub-" + "communicator cannot handle the BARRIER operation. " + "Falling back to another component\n")); + barrier = han_module->previous_barrier; + sub_module = han_module->previous_barrier_module; + } else if (GLOBAL_COMMUNICATOR == topo_lvl && sub_module == module) { + /* + * No fallback mechanism activated for this configuration + * sub_module is valid + * sub_module->coll_barrier is valid and point to this function + * Call han topological collective algorithm + */ + barrier = mca_coll_han_barrier_intra_simple; + } else { + /* + * If we get here: + * sub_module is valid + * sub_module->coll_barrier is valid + * They points to the collective to use, according to the dynamic rules + * Selector's job is done, call the collective + */ + barrier = sub_module->coll_barrier; + } + return barrier(comm, sub_module); +} + +/* + * Bcast selector: + * On a sub-communicator, checks the stored rules to find the module to use + * On the global communicator, calls the han collective implementation, or + * calls the correct module if fallback mechanism is activated + */ +int +mca_coll_han_bcast_intra_dynamic(void *buff, + int count, + struct ompi_datatype_t *dtype, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t*) module; + TOPO_LVL_T topo_lvl = han_module->topologic_level; + mca_coll_base_module_bcast_fn_t bcast; + mca_coll_base_module_t *sub_module; + size_t dtype_size; + int rank, verbosity = 0; + + /* Compute configuration information for dynamic rules */ + ompi_datatype_type_size(dtype, &dtype_size); + dtype_size = dtype_size * count; + + sub_module = get_module(BCAST, + dtype_size, + comm, + han_module); + + /* First errors are always printed by rank 0 */ + rank = ompi_comm_rank(comm); + if( (0 == rank) && (han_module->dynamic_errors < mca_coll_han_component.max_dynamic_errors) ) { + verbosity = 30; + } + + if(NULL == sub_module) { + /* + * No valid collective module from dynamic rules + * nor from mca parameter + */ + han_module->dynamic_errors++; + opal_output_verbose(verbosity, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_bcast_intra_dynamic " + "HAN did not find any valid module for collective %d (%s) " + "with topological level %d (%s) on communicator (%d/%s). " + "Please check dynamic file/mca parameters\n", + BCAST, mca_coll_base_colltype_to_str(BCAST), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/BCAST: No module found for the sub-communicator. " + "Falling back to another component\n")); + bcast = han_module->previous_bcast; + sub_module = han_module->previous_bcast_module; + } else if (NULL == sub_module->coll_bcast) { + /* + * No valid collective from dynamic rules + * nor from mca parameter + */ + han_module->dynamic_errors++; + opal_output_verbose(verbosity, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_bcast_intra_dynamic " + "HAN found valid module for collective %d (%s) " + "with topological level %d (%s) on communicator (%d/%s) " + "but this module cannot handle this collective. " + "Please check dynamic file/mca parameters\n", + BCAST, mca_coll_base_colltype_to_str(BCAST), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/BCAST: the module found for the sub-" + "communicator cannot handle the BCAST operation. " + "Falling back to another component\n")); + bcast = han_module->previous_bcast; + sub_module = han_module->previous_bcast_module; + } else if (GLOBAL_COMMUNICATOR == topo_lvl && sub_module == module) { + /* + * No fallback mechanism activated for this configuration + * sub_module is valid + * sub_module->coll_bcast is valid and point to this function + * Call han topological collective algorithm + */ + if(mca_coll_han_component.use_simple_algorithm[BCAST]) { + bcast = mca_coll_han_bcast_intra_simple; + } else { + bcast = mca_coll_han_bcast_intra; + } + sub_module = module; + } else { + /* + * If we get here: + * sub_module is valid + * sub_module->coll_bcast is valid + * They points to the collective to use, according to the dynamic rules + * Selector's job is done, call the collective + */ + bcast = sub_module->coll_bcast; + } + return bcast(buff, count, dtype, + root, comm, sub_module); +} + + +/* + * Gather selector: + * On a sub-communicator, checks the stored rules to find the module to use + * On the global communicator, calls the han collective implementation, or + * calls the correct module if fallback mechanism is activated + */ +int +mca_coll_han_gather_intra_dynamic(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, int rcount, + struct ompi_datatype_t *rdtype, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t*) module; + TOPO_LVL_T topo_lvl = han_module->topologic_level; + mca_coll_base_module_gather_fn_t gather; + mca_coll_base_module_t *sub_module; + size_t dtype_size; + int rank, verbosity = 0; + + /* Compute configuration information for dynamic rules */ + if( MPI_IN_PLACE != sbuf ) { + ompi_datatype_type_size(sdtype, &dtype_size); + dtype_size = dtype_size * scount; + } else { + ompi_datatype_type_size(rdtype, &dtype_size); + dtype_size = dtype_size * rcount; + } + + sub_module = get_module(GATHER, + dtype_size, + comm, + han_module); + + /* First errors are always printed by rank 0 */ + rank = ompi_comm_rank(comm); + if( (0 == rank) && (han_module->dynamic_errors < mca_coll_han_component.max_dynamic_errors) ) { + verbosity = 30; + } + + if(NULL == sub_module) { + /* + * No valid collective module from dynamic rules + * nor from mca parameter + */ + han_module->dynamic_errors++; + opal_output_verbose(verbosity, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_gather_intra_dynamic " + "HAN did not find any valid module for collective %d (%s) " + "with topological level %d (%s) on communicator (%d/%s). " + "Please check dynamic file/mca parameters\n", + GATHER, mca_coll_base_colltype_to_str(GATHER), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/GATHER: No module found for the sub-communicator. " + "Falling back to another component\n")); + gather = han_module->previous_gather; + sub_module = han_module->previous_gather_module; + } else if (NULL == sub_module->coll_gather) { + /* + * No valid collective from dynamic rules + * nor from mca parameter + */ + han_module->dynamic_errors++; + opal_output_verbose(verbosity, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_gather_intra_dynamic " + "HAN found valid module for collective %d (%s) " + "with topological level %d (%s) on communicator (%d/%s) " + "but this module cannot handle this collective. " + "Please check dynamic file/mca parameters\n", + GATHER, mca_coll_base_colltype_to_str(GATHER), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/GATHER: the module found for the sub-" + "communicator cannot handle the GATHER operation. " + "Falling back to another component\n")); + gather = han_module->previous_gather; + sub_module = han_module->previous_gather_module; + } else if (GLOBAL_COMMUNICATOR == topo_lvl && sub_module == module) { + /* + * No fallback mechanism activated for this configuration + * sub_module is valid + * sub_module->coll_gather is valid and point to this function + * Call han topological collective algorithm + */ + if(mca_coll_han_component.use_simple_algorithm[GATHER]) { + gather = mca_coll_han_gather_intra_simple; + } else { + gather = mca_coll_han_gather_intra; + } + } else { + /* + * If we get here: + * sub_module is valid + * sub_module->coll_gather is valid + * They points to the collective to use, according to the dynamic rules + * Selector's job is done, call the collective + */ + gather = sub_module->coll_gather; + } + return gather(sbuf, scount, sdtype, + rbuf, rcount, rdtype, + root, comm, + sub_module); +} + + +/* + * Reduce selector: + * On a sub-communicator, checks the stored rules to find the module to use + * On the global communicator, calls the han collective implementation, or + * calls the correct module if fallback mechanism is activated + */ +int +mca_coll_han_reduce_intra_dynamic(const void *sbuf, + void *rbuf, + int count, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t*) module; + TOPO_LVL_T topo_lvl = han_module->topologic_level; + mca_coll_base_module_reduce_fn_t reduce; + mca_coll_base_module_t *sub_module; + size_t dtype_size; + int rank, verbosity = 0; + + /* Compute configuration information for dynamic rules */ + ompi_datatype_type_size(dtype, &dtype_size); + dtype_size = dtype_size * count; + + sub_module = get_module(REDUCE, + dtype_size, + comm, + han_module); + + /* First errors are always printed by rank 0 */ + rank = ompi_comm_rank(comm); + if( (0 == rank) && (han_module->dynamic_errors < mca_coll_han_component.max_dynamic_errors) ) { + verbosity = 30; + } + + if(NULL == sub_module) { + /* + * No valid collective module from dynamic rules + * nor from mca parameter + */ + han_module->dynamic_errors++; + opal_output_verbose(verbosity, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_reduce_intra_dynamic " + "HAN did not find any valid module for collective %d (%s) " + "with topological level %d (%s) on communicator (%d/%s). " + "Please check dynamic file/mca parameters\n", + REDUCE, mca_coll_base_colltype_to_str(REDUCE), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/REDUCE: No module found for the sub-communicator. " + "Falling back to another component\n")); + reduce = han_module->previous_reduce; + sub_module = han_module->previous_reduce_module; + } else if (NULL == sub_module->coll_reduce) { + /* + * No valid collective from dynamic rules + * nor from mca parameter + */ + han_module->dynamic_errors++; + opal_output_verbose(verbosity, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_reduce_intra_dynamic " + "HAN found valid module for collective %d (%s) " + "with topological level %d (%s) on communicator (%d/%s) " + "but this module cannot handle this collective. " + "Please check dynamic file/mca parameters\n", + REDUCE, mca_coll_base_colltype_to_str(REDUCE), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/REDUCE: the module found for the sub-" + "communicator cannot handle the REDUCE operation. " + "Falling back to another component\n")); + reduce = han_module->previous_reduce; + sub_module = han_module->previous_reduce_module; + } else if (GLOBAL_COMMUNICATOR == topo_lvl && sub_module == module) { + /* Reproducibility: fallback on reproducible algo */ + if (mca_coll_han_component.han_reproducible) { + reduce = mca_coll_han_reduce_reproducible; + } else { + /* + * No fallback mechanism activated for this configuration + * sub_module is valid + * sub_module->coll_reduce is valid and point to this function + * Call han topological collective algorithm + */ + if(mca_coll_han_component.use_simple_algorithm[REDUCE]) { + reduce = mca_coll_han_reduce_intra_simple; + } else { + reduce = mca_coll_han_reduce_intra; + } + } + sub_module = module; + } else { + /* + * If we get here: + * sub_module is valid + * sub_module->coll_reduce is valid + * They points to the collective to use, according to the dynamic rules + * Selector's job is done, call the collective + */ + reduce = sub_module->coll_reduce; + } + return reduce(sbuf, rbuf, count, dtype, + op, root, comm, sub_module); +} + + +/* + * Scatter selector: + * On a sub-communicator, checks the stored rules to find the module to use + * On the global communicator, calls the han collective implementation, or + * calls the correct module if fallback mechanism is activated + */ +int +mca_coll_han_scatter_intra_dynamic(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, int rcount, + struct ompi_datatype_t *rdtype, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t*) module; + TOPO_LVL_T topo_lvl = han_module->topologic_level; + mca_coll_base_module_scatter_fn_t scatter; + mca_coll_base_module_t *sub_module; + size_t dtype_size; + int rank, verbosity = 0; + + /* Compute configuration information for dynamic rules */ + if( MPI_IN_PLACE != rbuf ) { + ompi_datatype_type_size(rdtype, &dtype_size); + dtype_size = dtype_size * rcount; + } else { + ompi_datatype_type_size(sdtype, &dtype_size); + dtype_size = dtype_size * scount; + } + + sub_module = get_module(SCATTER, + dtype_size, + comm, + han_module); + + /* First errors are always printed by rank 0 */ + rank = ompi_comm_rank(comm); + if( (0 == rank) && (han_module->dynamic_errors < mca_coll_han_component.max_dynamic_errors) ) { + verbosity = 30; + } + + if(NULL == sub_module) { + /* + * No valid collective module from dynamic rules + * nor from mca parameter + */ + han_module->dynamic_errors++; + opal_output_verbose(verbosity, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_scatter_intra_dynamic " + "HAN did not find any valid module for collective %d (%s) " + "with topological level %d (%s) on communicator (%d/%s). " + "Please check dynamic file/mca parameters\n", + SCATTER, mca_coll_base_colltype_to_str(SCATTER), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/SCATTER: No module found for the sub-communicator. " + "Falling back to another component\n")); + scatter = han_module->previous_scatter; + sub_module = han_module->previous_scatter_module; + } else if (NULL == sub_module->coll_scatter) { + /* + * No valid collective from dynamic rules + * nor from mca parameter + */ + han_module->dynamic_errors++; + opal_output_verbose(verbosity, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_scatter_intra_dynamic " + "HAN found valid module for collective %d (%s) " + "with topological level %d (%s) on communicator (%d/%s) " + "but this module cannot handle this collective. " + "Please check dynamic file/mca parameters\n", + SCATTER, mca_coll_base_colltype_to_str(SCATTER), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), + comm->c_contextid, comm->c_name); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/SCATTER: the module found for the sub-" + "communicator cannot handle the SCATTER operation. " + "Falling back to another component\n")); + scatter = han_module->previous_scatter; + sub_module = han_module->previous_scatter_module; + } else if (GLOBAL_COMMUNICATOR == topo_lvl && sub_module == module) { + /* + * No fallback mechanism activated for this configuration + * sub_module is valid + * sub_module->coll_scatter is valid and point to this function + * Call han topological collective algorithm + */ + if(mca_coll_han_component.use_simple_algorithm[SCATTER]) { + scatter = mca_coll_han_scatter_intra_simple; + } else { + scatter = mca_coll_han_scatter_intra; + } + } else { + /* + * If we get here: + * sub_module is valid + * sub_module->coll_scatter is valid + * They points to the collective to use, according to the dynamic rules + * Selector's job is done, call the collective + */ + scatter = sub_module->coll_scatter; + } + + /* + * If we get here: + * sub_module is valid + * sub_module->coll_scatter is valid + * They points to the collective to use, according to the dynamic rules + * Selector's job is done, call the collective + */ + return scatter(sbuf, scount, sdtype, + rbuf, rcount, rdtype, + root, comm, + sub_module); +} diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han_dynamic_file.c openmpi-4.1.4/ompi/mca/coll/han/coll_han_dynamic_file.c --- openmpi-4.0.3/ompi/mca/coll/han/coll_han_dynamic_file.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han_dynamic_file.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,622 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2018-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Bull S.A.S. All rights reserved. + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +/* + *@file + * Implementation of configuration file parser to set collective components to use. + */ + +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_STDIO_H +#include +#endif + +#include "ompi_config.h" +#include "coll_han.h" +#include "coll_han_dynamic.h" +#include "coll_han_dynamic_file.h" + +#include "ompi/mca/coll/base/coll_base_util.h" + +#define getnext_long(fptr, pval) ompi_coll_base_file_getnext_long(fptr, &fileline, pval) +#define getnext_string(fptr, pval) ompi_coll_base_file_getnext_string(fptr, &fileline, pval) +#define getnext_size_t(fptr, pval) ompi_coll_base_file_getnext_size_t(fptr, &fileline, pval) + +static void check_dynamic_rules(void); + +/* Current file line for verbose message */ +static int fileline = 1; + +/* + * File parsing function. Allocated memory depending on the number of rules. + * This functions expects a file formatted as describbed in coll_han_dynamic_file.h. + * The configuration is then used by coll/han component to determine which module to + * use at each topological level. + */ +int +mca_coll_han_init_dynamic_rules(void) +{ + /* File management */ + const char *fname; + FILE *fptr = NULL; + int nb_entries = 0, rc; + + /* Loop counters */ + int i, j, k, l; + + /* Collective informations */ + long nb_coll, coll_id; + char * coll_name = NULL; + collective_rule_t *coll_rules; + + /* Topo informations */ + long nb_topo, topo_lvl; + topologic_rule_t *topo_rules; + + /* Configuration informations */ + long nb_rules, conf_size; + configuration_rule_t *conf_rules; + + /* Message size informations */ + long nb_msg_size; + size_t msg_size; + msg_size_rule_t *msg_size_rules; + + /* Component informations */ + long component; + + /* If the dynamic rules are not used, do not even read the file */ + if(!mca_coll_han_component.use_dynamic_file_rules) { + return OMPI_SUCCESS; + } + + if( NULL == (fname = mca_coll_han_component.dynamic_rules_filename) ) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules coll_han_use_dynamic_file_rules is set but " + "coll_han_dynamic_rules_filename is not Rules from MCA parameters will be used instead\n"); + mca_coll_han_component.dynamic_rules.nb_collectives = 0; + return OMPI_SUCCESS; + } + + if( NULL == (fptr = fopen(fname, "r")) ) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules cannot open dynamic file provided by " + "coll_han_dynamic_rules_filename=%s. Make sure it provides the full path and " + "check file permissions. Rules from MCA parameters will be used instead\n", + fname); + mca_coll_han_component.dynamic_rules.nb_collectives = 0; + return OMPI_SUCCESS; + } + + /* The first information of the file is the collective count */ + if( (getnext_long(fptr, &nb_coll) < 0) || (nb_coll <= 0) ) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules found an error on dynamic rules file %s " + "at line %d: an invalid value %ld is given for collective count " + "or the reader encountered an unexpected EOF\n", + fname, fileline, nb_coll); + mca_coll_han_component.dynamic_rules.nb_collectives = 0; + goto file_reading_error; + } + + mca_coll_han_component.dynamic_rules.nb_collectives = nb_coll; + + /* Allocate collective rules */ + coll_rules = malloc(nb_coll * sizeof(collective_rule_t)); + mca_coll_han_component.dynamic_rules.collective_rules = coll_rules; + if(NULL == coll_rules) { + mca_coll_han_component.dynamic_rules.nb_collectives = 0; + goto cannot_allocate; + } + + /* Iterates on collective rules */ + for( i = 0 ; i < nb_coll ; i++ ) { + coll_rules[i].nb_topologic_levels = 0; + mca_coll_han_component.dynamic_rules.nb_collectives = i+1; + + /* Get the collective identifier */ + if( getnext_string(fptr, &coll_name) < 0 ) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules invalid collective at line %d." + "The rest of the input file will be ignored.\n", + fileline); + goto file_reading_error; + } + coll_id = mca_coll_base_name_to_colltype(coll_name); + if( (coll_id < ALLGATHER) || (coll_id >= COLLCOUNT)) { + /* maybe the file was in the old format and we read the collective index instead of the name. */ + char* endp; + coll_id = strtol(coll_name, &endp, 10); + if( ('\0' != *endp ) || (coll_id < ALLGATHER) || (coll_id >= COLLCOUNT) ) { /* there is garbage in the input */ + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules invalid collective %s " + "at line %d: the collective must be at least %d and less than %d. " + "The rest of the input file will be ignored.\n", + coll_name, fileline, ALLGATHER, COLLCOUNT); + goto file_reading_error; + } + if( NULL != coll_name ) { + free(coll_name); + } + coll_name = strdup(mca_coll_base_colltype_to_str(coll_id)); + } + + if(!mca_coll_han_is_coll_dynamic_implemented(coll_id)) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules found an error on dynamic rules file %s " + "read collective id %ld at line %d but this collective is not implemented yet. " + "This is not an error but this set of rules will not be used\n", + fname, coll_id, fileline); + } + + /* + * The first information of a collective rule + * is the number of topologic rules + */ + if( (getnext_long(fptr, &nb_topo) < 0) || (nb_topo < 0) ) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules found an error on dynamic rules file %s " + "at line %d: an invalid value %ld is given for topo level count " + "or the reader encountered an unexpected EOF\n", + fname, fileline, nb_topo); + goto file_reading_error; + } + + /* Store the collective rule informations */ + coll_rules[i].nb_topologic_levels = nb_topo; + coll_rules[i].collective_id = (COLLTYPE_T)coll_id; + + if(0 == nb_topo) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules Warning on dynamic rules file %s " + "at line %d: an invalid value %ld is given for topo level count\n", + fname, fileline, nb_topo); + continue; + } + + /* Allocate topologic rules */ + topo_rules = malloc(nb_topo * sizeof(topologic_rule_t)); + coll_rules[i].topologic_rules = topo_rules; + if(NULL == topo_rules) { + coll_rules[i].nb_topologic_levels = 0; + goto cannot_allocate; + } + + /* Iterates on topologic rules */ + for( j = 0 ; j < nb_topo ; j++ ) { + topo_rules[j].nb_rules = 0; + coll_rules[i].nb_topologic_levels = j+1; + + /* Get the topologic level identifier */ + if( (getnext_long(fptr, &topo_lvl) < 0) || (topo_lvl < INTRA_NODE) || (topo_lvl >= NB_TOPO_LVL) ) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules found an error on dynamic rules file %s " + "at line %d: an invalid topo level %ld is given or the reader encountered an unexpected EOF. " + "Topologic level must be at least %d and less than %d\n", + fname, fileline, topo_lvl, INTRA_NODE, NB_TOPO_LVL); + goto file_reading_error; + } + + /* + * The first information of a topologic rule + * is the number of configurations + */ + nb_rules = -1; + if( (getnext_long(fptr, &nb_rules) < 0) || (nb_rules < 0) ) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules found an error on dynamic rules file %s " + "at line %d: an invalid value %ld is given for rules count " + "or the reader encountered an unexpected EOF\n", + fname, fileline, nb_rules); + goto file_reading_error; + } + + /* Store the topologic rule informations */ + topo_rules[j].collective_id = coll_id; + topo_rules[j].topologic_level = (TOPO_LVL_T)topo_lvl; + topo_rules[j].nb_rules = nb_rules; + + if(0 == nb_rules) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules Warning on dynamic rules file %s " + "at line %d: an invalid value %ld is given for configuration rules count\n", + fname, fileline, nb_rules); + continue; + } + + /* Allocate configuration rules */ + conf_rules = malloc(nb_rules * sizeof(configuration_rule_t)); + topo_rules[j].configuration_rules = conf_rules; + if(NULL == conf_rules) { + topo_rules[j].nb_rules = 0; + goto cannot_allocate; + } + + /* Iterate on configuration rules */ + for( k = 0; k < nb_rules; k++ ) { + conf_rules[k].nb_msg_size = 0; + topo_rules[j].nb_rules = k+1; + + /* Get the configuration size */ + if( (getnext_long(fptr, &conf_size) < 0) || (conf_size < 1) || (0 == k && conf_size > 1) ) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules invalid configuration size %ld at line %d " + "or the reader encountered an unexpected EOF the configuration size must be at least %d " + "and the first configuration size of a topologic level must be %d\n", + conf_size, fileline, 1, 1); + goto file_reading_error; + } + + /* + * The first information of a configuration rule + * is the number of message size rules + */ + if( (getnext_long(fptr, &nb_msg_size) < 0) || (nb_msg_size < 0) ) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules found an error on dynamic rules file %s " + "at line %d: an invalid value %ld is given for message size rules count " + "or the reader encountered an unexpected EOF\n", + fname, fileline, nb_msg_size); + goto file_reading_error; + } + + /* Store configuration rule information */ + conf_rules[k].collective_id = coll_id; + conf_rules[k].topologic_level = topo_lvl; + conf_rules[k].configuration_size = conf_size; + conf_rules[k].nb_msg_size = nb_msg_size; + + if(0 == nb_msg_size) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules Warning on dynamic rules file %s " + "at line %d: an invalid value %ld is given for message size rules count\n", + fname, fileline, nb_msg_size); + continue; + } + + /* Allocate message size rules */ + msg_size_rules = malloc(nb_msg_size * sizeof(msg_size_rule_t)); + conf_rules[k].msg_size_rules = msg_size_rules; + if(NULL == msg_size_rules) { + conf_rules[k].nb_msg_size = 0; + goto cannot_allocate; + } + + /* Iterate on message size rules */ + for( l = 0; l < nb_msg_size; l++ ) { + char* target_comp_name = NULL; + conf_rules[k].nb_msg_size = l+1; + + /* Get the message size */ + rc = getnext_size_t(fptr, &msg_size); + if( (rc < 0) || + (0 == l && msg_size > 1)) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules found an error on dynamic rules file %s " + "at line %d: an invalid value %" PRIsize_t " is given for message size " + "or the reader encountered an unexpected EOF. " + "The first message size rule of a configuration must be 0\n", + fname, fileline, msg_size); + goto file_reading_error; + } + + /* Get the component identifier for this message size rule */ + if( getnext_string(fptr, &target_comp_name) < 0 ) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules found an error on dynamic rules file %s " + "at line %d: cannot read the name of a collective component\n", + fname, fileline); + goto file_reading_error; + } + component = mca_coll_han_component_name_to_id(target_comp_name); + if( (component < SELF) || (component >= COMPONENTS_COUNT) ) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules found an error on dynamic rules file %s " + "at line %d: an invalid collective component name %s was given or the " + "reader encountered an unexpected EOF. Collective component id must be at " + "least %d and less than %d\n", + fname, fileline, target_comp_name, SELF, COMPONENTS_COUNT); + free(target_comp_name); + goto file_reading_error; + } + + /* Store message size rule information */ + msg_size_rules[l].collective_id = coll_id; + msg_size_rules[l].topologic_level = topo_lvl; + msg_size_rules[l].configuration_size = conf_size; + msg_size_rules[l].msg_size = msg_size; + msg_size_rules[l].component = (COMPONENT_T)component; + + nb_entries++; + /* do we have the optional segment length */ + if( 1 == ompi_coll_base_file_peek_next_char_is(fptr, &fileline, '[') ) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules found optional pipelining segment lengths\n"); + long seglength; + if( 0 != topo_lvl ) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules " + "file %s line %d found segment lengths for topological collective at level != 0 " + "for collective %s component %s. These values will be ignored.\n", + fname, fileline, coll_name, target_comp_name); + } + while( 0 == ompi_coll_base_file_peek_next_char_is(fptr, &fileline, ']') ) { + if( getnext_long(fptr, &seglength) ) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules " + "file %s line %d found end of file while reading the optional list " + "of segment lengths for collective %s component %s\n", + fname, fileline, coll_name, target_comp_name); + free(target_comp_name); + goto file_reading_error; + } + } + } + free(target_comp_name); + } + } + } + if( NULL != coll_name ) { + free(coll_name); + coll_name = NULL; + } + } + + if( getnext_long(fptr, &nb_coll) > 0 ) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules. Warning on file %s at line %d: " + "rule reading is over but reader does not seem to have reached the end of the file\n", + fname, fileline); + } + + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules read %d rules from %s\n", + nb_entries, fname); + + if(mca_coll_han_component.dump_dynamic_rules) { + mca_coll_han_dump_dynamic_rules(); + } + + fclose(fptr); + + check_dynamic_rules(); + return OMPI_SUCCESS; + +cannot_allocate: + /* The dynamic rules allocation failed + * Free the already allocated rules and return a failure + */ + opal_output_verbose(0, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules " + "cannot allocate dynamic rules\n"); + if( NULL != coll_name ) { + free(coll_name); + } + fclose (fptr); + /* We disable the module, we don't need to keep the rules */ + mca_coll_han_free_dynamic_rules(); + return OMPI_ERROR; + +file_reading_error: + opal_output_verbose(0, mca_coll_han_component.han_output, + "coll:han:mca_coll_han_init_dynamic_rules " + "could not fully read dynamic rules file. " + "Will use mca parameters defined rules. " + "To see error detail, please set " + "collective verbosity level over 5\n"); + if( NULL != coll_name ) { + free(coll_name); + } + fclose (fptr); + /* We disable the module, we don't need to keep the rules */ + mca_coll_han_free_dynamic_rules(); + return OMPI_SUCCESS; +} + +/* + * Memory free all the rules parsed in the file + */ +void +mca_coll_han_free_dynamic_rules(void) +{ + /* Loop counters */ + int i, j, k; + + /* Loop ranges */ + int nb_coll, nb_conf; + + /* Aliases */ + collective_rule_t *coll_rules; + topologic_rule_t *topo_rules; + configuration_rule_t *conf_rules; + + nb_coll = mca_coll_han_component.dynamic_rules.nb_collectives; + coll_rules = mca_coll_han_component.dynamic_rules.collective_rules; + + for(i=0 ; i 0) { + free(conf_rules[k].msg_size_rules); + } + } + + if(nb_conf > 0) { + free(conf_rules); + } + } + + if(nb_topo > 0) { + free(topo_rules); + } + } + + if(nb_coll > 0) { + free(coll_rules); + } + + mca_coll_han_component.dynamic_rules.nb_collectives = 0; +} + +/* + * Try to find any logical issue in dynamic rules + */ +static void check_dynamic_rules(void) +{ + /* Loop counters */ + int i, j, k, l; + + /* Collective informations */ + int nb_coll; + COLLTYPE_T coll_id; + collective_rule_t *coll_rules; + + /* Topo informations */ + TOPO_LVL_T topo_lvl; + topologic_rule_t *topo_rules; + + /* Configuration informations */ + int nb_rules, conf_size; + configuration_rule_t *conf_rules; + + /* Message size informations */ + int nb_msg_size; + size_t msg_size; + msg_size_rule_t *msg_size_rules; + + /* Component informations */ + COMPONENT_T component; + + nb_coll = mca_coll_han_component.dynamic_rules.nb_collectives; + coll_rules = mca_coll_han_component.dynamic_rules.collective_rules; + + for( i = 0; i < nb_coll; i++ ) { + coll_id = coll_rules[i].collective_id; + int nb_topo = coll_rules[i].nb_topologic_levels; + topo_rules = coll_rules[i].topologic_rules; + + for( j = 0; j < nb_topo; j++ ) { + topo_lvl = topo_rules[j].topologic_level; + nb_rules = topo_rules[j].nb_rules; + conf_rules = topo_rules[j].configuration_rules; + + for( k = 0; k < nb_rules; k++ ) { + conf_size = conf_rules[k].configuration_size; + nb_msg_size = conf_rules[k].nb_msg_size; + msg_size_rules = conf_rules[k].msg_size_rules; + + if( k >= 1 && conf_rules[k-1].configuration_size > conf_size) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:check_dynamic_rules HAN found an issue on dynamic rules " + "for collective %d on topological level %d: " + "configuration sizes %d and %d are not sorted by increasing value\n", + coll_id, topo_lvl, conf_rules[k-1].configuration_size, conf_size); + } + + for( l = 0; l < nb_msg_size; l++ ) { + msg_size = msg_size_rules[l].msg_size; + component = msg_size_rules[l].component; + + if( l >= 1 && msg_size_rules[l-1].msg_size > msg_size) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:check_dynamic_rules HAN found an issue on dynamic rules " + "for collective %d on topological level %d with configuration size %d: " + "message sizes %" PRIsize_t " and %" PRIsize_t " are " + "not sorted by increasing value\n", + coll_id, topo_lvl, conf_size, msg_size_rules[l-1].msg_size, msg_size); + } + + if( (HAN == component) && (GLOBAL_COMMUNICATOR != topo_lvl) ) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:check_dynamic_rules HAN found an issue on dynamic rules " + "for collective %d on topological level %d with configuration size %d " + "for message size %" PRIsize_t ": han collective component %d " + "can only be activated for topology level %d\n", + coll_id, topo_lvl, conf_size, msg_size, HAN, GLOBAL_COMMUNICATOR); + } + } + } + } + } +} + +/* Print configurations parsed from the file */ +void mca_coll_han_dump_dynamic_rules(void) +{ + int nb_entries = 0; + + /* Collective informations */ + int nb_coll; + COLLTYPE_T coll_id; + collective_rule_t *coll_rules; + + /* Topo informations */ + TOPO_LVL_T topo_lvl; + topologic_rule_t *topo_rules; + + /* Configuration informations */ + int nb_rules, conf_size; + configuration_rule_t *conf_rules; + + /* Message size informations */ + int nb_msg_size, msg_size; + msg_size_rule_t *msg_size_rules; + + /* Component informations */ + COMPONENT_T component; + + nb_coll = mca_coll_han_component.dynamic_rules.nb_collectives; + coll_rules = mca_coll_han_component.dynamic_rules.collective_rules; + + for(int i = 0; i < nb_coll; i++ ) { + coll_id = coll_rules[i].collective_id; + int nb_topo = coll_rules[i].nb_topologic_levels; + topo_rules = coll_rules[i].topologic_rules; + + for(int j = 0; j < nb_topo; j++ ) { + topo_lvl = topo_rules[j].topologic_level; + nb_rules = topo_rules[j].nb_rules; + conf_rules = topo_rules[j].configuration_rules; + + for(int k = 0; k < nb_rules; k++ ) { + conf_size = conf_rules[k].configuration_size; + nb_msg_size = conf_rules[k].nb_msg_size; + msg_size_rules = conf_rules[k].msg_size_rules; + + for(int l = 0; l < nb_msg_size; l++ ) { + msg_size = msg_size_rules[l].msg_size; + component = msg_size_rules[l].component; + + opal_output(mca_coll_han_component.han_output, + "coll:han:dump_dynamic_rules %d collective %d (%s) " + "topology level %d (%s) configuration size %d " + "mesage size %d -> collective component %d (%s)\n", + nb_entries, coll_id, mca_coll_base_colltype_to_str(coll_id), + topo_lvl, mca_coll_han_topo_lvl_to_str(topo_lvl), conf_size, + msg_size, component, available_components[component].component_name); + + nb_entries++; + } + } + } + } +} diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han_dynamic_file.h openmpi-4.1.4/ompi/mca/coll/han/coll_han_dynamic_file.h --- openmpi-4.0.3/ompi/mca/coll/han/coll_han_dynamic_file.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han_dynamic_file.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,112 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Bull S.A.S. All rights reserved. + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ +#ifndef MCA_COLL_HAN_DYNAMIC_FILE_H +#define MCA_COLL_HAN_DYNAMIC_FILE_H + +#include "ompi_config.h" + +#include "mpi.h" +#include "ompi/mca/mca.h" +#include "opal/util/output.h" + +/* + * @file + * + * ############################ + * # MCA parameters interface # + * ############################ + * An MCA parameter defined rule allows the user to choose which collective + * module will be used for a specific collective communication on a specific + * topological level. The standard name for these parameters is: + * [collective]_dynamic_[topologic_level]_module + * + * ####################### + * # Dynamic file format # + * ####################### + * File defined rules precede MCA parameter defined rule. + * To activate file reader, the MCA parameter use_dynamic_file_rules must + * be set to true. The path to the dynamic file is given by the MCA + * parameter dynamic_rules_filename. If there is any issue reading the file, + * the file is considered as invalid and only MCA parameter defined rules are + * used. If a potential logical issue is identified in the file, a + * warning is printed but the file is not considered as invalid. + * + * The file is built recursively. + * A set of rules of a type is built as follows: + * Number of rules of the set + * Rule1 + * Rule2 + * ... + * + * A rule of the level i is built as follows (excluding message size rule): + * Rule property + * Set of rules of level i+1 + * + * A message size rule is built as follows: + * Message_size Component + * + * Rule properties are (by increasing level): + * - Collective identifier: + * Defined in ompi/mca/coll/base/coll_base_functions.h. + * - Topologic level: + * Defined in coll_han_dynamic.h. It defines the communicator + * topology level. This is GLOBAL_COMMUNICATOR for the user + * communicator and the corresponding level for sub-communicators + * created by han. + * - Configuration size: + * The configuration size is the number of elements in a topology level. + * For example, if topology levels are intra-node and inter-node, it can + * be the number of MPI ranks per node or the number of nodes in the global + * communicator. For the GLOBAL_COMMUNICATOR topologic level, + * the configuration size is the communicator size. + * - Message_size Component: + * This is the message size, in bytes, of the message. Component is + * the component identifier to use for this collective on this + * communicator with this message size. Components identifier are + * defined in coll_han_dynamic.h + * + * Here is an example of a dynamic rules file: + * 2 # Collective count + * 7 # Collective identifier 1 (defined in ompi/mca/coll/base/coll_base_functions.h) + * 2 # Topologic level count + * 0 # Topologic level identifier 1 + * 1 # Configuration count + * 1 # Configuration size 1 + * 2 # Message size rules count + * 0 3 # Message size 1 and component identifier + * 128 1 # Message size 2 and component identifier + * 1 # Topologic level identifier 2 + * 1 # Configuration count + * 1 # Configuration size 1 + * 1 # Message size rules count + * 0 1 # Message size 1 and component identifier + * 3 # Collective identifier 2 + * # Set of topological rules + * + * Note that configuration size and message size rules define minimal + * values and each new rule precede every other rules. This property + * implies that this types of rules must be sorted by increasing value. + * If they are not, some rules wont be used. + * + * The counts define a stack. If the count is set to x, the reader will + * attempt to read x rules of the corresponding type. If a set of rules + * has an invalid count, this is an error and it might not be detected by + * the reader. + */ + +int mca_coll_han_init_dynamic_rules(void); +void mca_coll_han_free_dynamic_rules(void); +void mca_coll_han_dump_dynamic_rules(void); + +#endif diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han_dynamic.h openmpi-4.1.4/ompi/mca/coll/han/coll_han_dynamic.h --- openmpi-4.0.3/ompi/mca/coll/han/coll_han_dynamic.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han_dynamic.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,214 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Bull S.A.S. All rights reserved. + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef MCA_COLL_HAN_DYNAMIC_H +#define MCA_COLL_HAN_DYNAMIC_H + +#include "ompi_config.h" + +#include "mpi.h" +#include "ompi/mca/mca.h" +#include "opal/util/output.h" +#include "ompi/mca/coll/base/coll_base_functions.h" +#include "ompi/mca/coll/han/coll_han.h" + + +/* + * @file + * ################################################# + * # Dynamic rules global architecture description # + * ################################################# + * + * Han dynamic rules allow the user to define the collective + * module to call depending on the topological configuration of the + * sub-communicators and the collective parameters. This mechanism + * can also be used to fallback to the main collective on another module. + * The interface is described in coll_han_dynamic_file.h. + * + * ############################# + * # Collective module storage # + * ############################# + * To be able to switch between multiple collective modules, han + * directly accesses the module on the communicator. This information is + * stored in the collective structure of the communicator during the collective + * module choice at the communicator initialization. When han needs this + * information for the first time, it identifies the modules by their name and + * stores them in its module structure. + * Then, the modules are identified by their identifier. + * + * ######################### + * # Dynamic rules storage # + * ######################### + * There are two types of dynamic rules: + * - MCA parameter defined rules + * - File defined rules + * + * MCA parameter defined rules are stored in mca_coll_han_component.mca_rules. + * This is a double indexed table. The first index is the coresponding collective + * communication and the second index is the topological level aimed by the rule. + * These parameters define the collective component to use for a specific + * collective communication on a specific topologic level. + * + * File defined rules are stored in mca_coll_han_component.dynamic_rules. + * These structures are defined bellow. The rule storage is directy deduced + * from the rule file format. + * + * File defined rules precede MCA parameter defined rules. + * + * ####################### + * # Dynamic rules usage # + * ####################### + * To choose which collective module to use on a specific configuration, han + * adds an indirection on the collective call: dynamic choice functions. These + * functions do not implement any collective. First, they try to find a dynamic + * rule from file for the given collective. If there is not any rule for the + * given configuration, MCA parameter defined rules are used. Once the module + * to use is found, the correct collective implementation is called. + * + * This indirection is also used on the global communicator. This allows han + * to provide a fallback mechanism considering the collective parameters. + * + * ############################## + * # Dynamic rules choice logic # + * ############################## + * Dynamic rules choice is made with a stack logic. Each new rule precedes + * already defined rules. MCA parameters rules are the stack base. When + * a rule is needed, rules are read as a stack and the first corresponding + * encountered is chosen. + * + * Consequences: + * - If a collective identifier appears multiple times, only the last + * will be considered + * - If a topological level appears multiple times for a collective, + * only the last will be considered + * - If configuration rules or message size rules are not stored + * by increasing value, some of them will not be considered + */ + +/* Dynamic rules support */ +typedef enum COMPONENTS { + SELF = 0, + BASIC, + LIBNBC, + TUNED, + SM, + ADAPT, + HAN, + COMPONENTS_COUNT +} COMPONENT_T; + +typedef struct { + COMPONENT_T id; + char* component_name; + mca_coll_base_component_t* component; +} ompi_coll_han_components; + +extern ompi_coll_han_components available_components[COMPONENTS_COUNT]; + +/* Topologic levels */ +typedef enum TOPO_LVL { + INTRA_NODE = 0, + INTER_NODE, + /* Identifies the global communicator as a topologic level */ + GLOBAL_COMMUNICATOR, + NB_TOPO_LVL +} TOPO_LVL_T; + +/* Rule for a specific msg size + * in a specific configuration + * for a specific collective + * in a specific topologic level */ +typedef struct msg_size_rule_s { + COLLTYPE_T collective_id; + TOPO_LVL_T topologic_level; + int configuration_size; + + /* Message size of the rule */ + size_t msg_size; + + /* Component to use on this specific configuration + * and message size */ + COMPONENT_T component; +} msg_size_rule_t; + +/* Rule for a specific configuration + * considering a specific collective + * in a specific topologic level */ +typedef struct configuration_rule_s { + COLLTYPE_T collective_id; + TOPO_LVL_T topologic_level; + + /* Number of elements of the actual topologic level + * per element of the upper topologic level */ + int configuration_size; + + /* Number of message size rules for this configuration */ + int nb_msg_size; + + /* Table of message size rules for this configuration */ + msg_size_rule_t *msg_size_rules; +} configuration_rule_t; + +/* Set of dynamic rules for a specific collective + * in a specific topologic level */ +typedef struct topologic_rule_s { + /* Collective identifier */ + COLLTYPE_T collective_id; + + /* Topologic level of the rule */ + TOPO_LVL_T topologic_level; + + /* Rule number */ + int nb_rules; + + /* Table of configuration rules + * for this collective on this topologic level */ + configuration_rule_t *configuration_rules; +} topologic_rule_t; + +/* Set of dynamic rules for a collective */ +typedef struct collective_rule_s { + COLLTYPE_T collective_id; + + /* Number of topologic level for this collective */ + int nb_topologic_levels; + + /* Table of topologic level rules + * for this collective */ + topologic_rule_t *topologic_rules; +} collective_rule_t; + +/* Global dynamic rules structure */ +typedef struct mca_coll_han_dynamic_rule_s { + int nb_collectives; + collective_rule_t *collective_rules; +} mca_coll_han_dynamic_rules_t; + +/* Module storage */ +typedef struct collective_module_storage_s { + /* Module */ + mca_coll_base_module_t *module_handler; +} collective_module_storage_t; + +/* Table of module storage */ +typedef struct mca_coll_han_collective_modules_storage_s { + /* */ + collective_module_storage_t modules[COMPONENTS_COUNT]; +} mca_coll_han_collective_modules_storage_t; + +/* Tests if a dynamic collective is implemented */ +bool mca_coll_han_is_coll_dynamic_implemented(COLLTYPE_T coll_id); +COMPONENT_T mca_coll_han_component_name_to_id(const char* name); + +#endif diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han_gather.c openmpi-4.1.4/ompi/mca/coll/han/coll_han_gather.c --- openmpi-4.0.3/ompi/mca/coll/han/coll_han_gather.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han_gather.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,524 @@ +/* + * Copyright (c) 2018-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Bull S.A.S. All rights reserved. + * Copyright (c) 2020 Cisco Systems, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "coll_han.h" +#include "ompi/mca/coll/base/coll_base_functions.h" +#include "ompi/mca/coll/base/coll_tags.h" +#include "ompi/mca/pml/pml.h" +#include "coll_han_trigger.h" + +/* + * @file + * + * This files contains all the hierarchical implementations of gather. + * Only work with regular situation (each node has equal number of processes) + */ + +static int mca_coll_han_gather_lg_task(void *task_args); +static int mca_coll_han_gather_ug_task(void *task_args); + +/* only work with regular situation (each node has equal number of processes) */ + +static inline void +mca_coll_han_set_gather_args(mca_coll_han_gather_args_t * args, + mca_coll_task_t * cur_task, + void *sbuf, + void *sbuf_inter_free, + int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, + int rcount, + struct ompi_datatype_t *rdtype, + int root, + int root_up_rank, + int root_low_rank, + struct ompi_communicator_t *up_comm, + struct ompi_communicator_t *low_comm, + int w_rank, bool noop, bool is_mapbycore, ompi_request_t * req) +{ + args->cur_task = cur_task; + args->sbuf = sbuf; + args->sbuf_inter_free = sbuf_inter_free; + args->scount = scount; + args->sdtype = sdtype; + args->rbuf = rbuf; + args->rcount = rcount; + args->rdtype = rdtype; + args->root = root; + args->root_up_rank = root_up_rank; + args->root_low_rank = root_low_rank; + args->up_comm = up_comm; + args->low_comm = low_comm; + args->w_rank = w_rank; + args->noop = noop; + args->is_mapbycore = is_mapbycore; + args->req = req; +} + + +/* + * Main function for taskified gather: calls lg task, a gather on low comm + */ +int +mca_coll_han_gather_intra(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, int rcount, + struct ompi_datatype_t *rdtype, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t * module) +{ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t *) module; + int w_rank, w_size; /* information about the global communicator */ + int root_low_rank, root_up_rank; /* root ranks for both sub-communicators */ + char *reorder_buf = NULL, *reorder_rbuf = NULL; + int err, *vranks, low_rank, low_size, *topo; + ompi_request_t *temp_request = NULL; + + /* Create the subcommunicators */ + err = mca_coll_han_comm_create(comm, han_module); + if( OMPI_SUCCESS != err ) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle gather with this communicator. Fall back on another component\n")); + /* HAN cannot work with this communicator so fallback on all collectives */ + HAN_LOAD_FALLBACK_COLLECTIVES(han_module, comm); + return comm->c_coll->coll_gather(sbuf, scount, sdtype, rbuf, + rcount, rdtype, root, + comm, comm->c_coll->coll_gather_module); + } + + /* Topo must be initialized to know rank distribution which then is used to + * determine if han can be used */ + topo = mca_coll_han_topo_init(comm, han_module, 2); + if (han_module->are_ppn_imbalanced) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle gather with this communicator (imbalance). Fall back on another component\n")); + /* Put back the fallback collective support and call it once. All + * future calls will then be automatically redirected. + */ + HAN_LOAD_FALLBACK_COLLECTIVE(han_module, comm, gather); + return comm->c_coll->coll_gather(sbuf, scount, sdtype, rbuf, + rcount, rdtype, root, + comm, comm->c_coll->coll_gather_module); + } + + w_rank = ompi_comm_rank(comm); + w_size = ompi_comm_size(comm); + + /* Set up request */ + temp_request = OBJ_NEW(ompi_request_t); + temp_request->req_state = OMPI_REQUEST_ACTIVE; + temp_request->req_type = OMPI_REQUEST_COLL; + temp_request->req_free = han_request_free; + temp_request->req_status = (ompi_status_public_t){0}; + temp_request->req_complete = REQUEST_PENDING; + + /* create the subcommunicators */ + ompi_communicator_t *low_comm = + han_module->cached_low_comms[mca_coll_han_component.han_gather_low_module]; + ompi_communicator_t *up_comm = + han_module->cached_up_comms[mca_coll_han_component.han_gather_up_module]; + + /* Get the 'virtual ranks' mapping correspondong to the communicators */ + vranks = han_module->cached_vranks; + /* information about sub-communicators */ + low_rank = ompi_comm_rank(low_comm); + low_size = ompi_comm_size(low_comm); + /* Get root ranks for low and up comms */ + mca_coll_han_get_ranks(vranks, root, low_size, &root_low_rank, &root_up_rank); + + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d]: Han Gather root %d root_low_rank %d root_up_rank %d\n", + w_rank, root, root_low_rank, root_up_rank)); + + + /* Allocate reorder buffers */ + if (w_rank == root) { + /* if the processes are mapped-by core, no need to reorder: + * distribution of ranks on core first and node next, + * in a increasing order for both patterns */ + if (han_module->is_mapbycore) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d]: Han Gather is_bycore: ", w_rank)); + reorder_rbuf = (char *)rbuf; + + } else { + /* Need a buffer to store unordered final result */ + ptrdiff_t rsize, rgap; + rsize = opal_datatype_span(&rdtype->super, + (int64_t)rcount * w_size, + &rgap); + reorder_buf = (char *)malloc(rsize); //TODO:free + /* rgap is the size of unused space at the start of the datatype */ + reorder_rbuf = reorder_buf - rgap; + + if (MPI_IN_PLACE == sbuf) { + ptrdiff_t rextent; + ompi_datatype_type_extent(rdtype, &rextent); + ptrdiff_t block_size = rextent * (ptrdiff_t)rcount; + ptrdiff_t shift = block_size * w_rank; + ompi_datatype_copy_content_same_ddt(rdtype, + (ptrdiff_t)rcount, + (char *)rbuf + shift, + reorder_rbuf + shift); + } + } + } + + + /* Create lg task */ + mca_coll_task_t *lg = OBJ_NEW(mca_coll_task_t); + /* Setup lg task arguments */ + mca_coll_han_gather_args_t *lg_args = malloc(sizeof(mca_coll_han_gather_args_t)); + mca_coll_han_set_gather_args(lg_args, lg, (char *) sbuf, NULL, scount, sdtype, reorder_rbuf, + rcount, rdtype, root, root_up_rank, root_low_rank, up_comm, + low_comm, w_rank, low_rank != root_low_rank, han_module->is_mapbycore, temp_request); + /* Init lg task */ + init_task(lg, mca_coll_han_gather_lg_task, (void *) (lg_args)); + /* Issure lg task */ + issue_task(lg); + + ompi_request_wait(&temp_request, MPI_STATUS_IGNORE); + + /* Suppose, the expected message is 0 1 2 3 4 5 6 7 but the processes are + * mapped on 2 nodes, for example |0 2 4 6| |1 3 5 7|. The messages from + * low gather will be 0 2 4 6 and 1 3 5 7. + * So the upper gather result is 0 2 4 6 1 3 5 7 which must be reordered. + * The 3rd element (4) must be recopied at the 4th place. In general, the + * i-th element must be recopied at the place given by the i-th entry of the + * topology, which is topo[i*topolevel +1] + */ + /* reorder rbuf based on rank */ + if (w_rank == root && !han_module->is_mapbycore) { + ptrdiff_t rextent; + ompi_datatype_type_extent(rdtype, &rextent); + for (int i = 0 ; i < w_size ; i++) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d]: Han Gather copy from %d to %d\n", + w_rank, + i * 2 + 1, + topo[i * 2 + 1])); + ptrdiff_t block_size = rextent * (ptrdiff_t)rcount; + ptrdiff_t src_shift = block_size * i; + ptrdiff_t dest_shift = block_size * (ptrdiff_t)topo[i * 2 + 1]; + ompi_datatype_copy_content_same_ddt(rdtype, + (ptrdiff_t)rcount, + reorder_rbuf + src_shift, + (char *)rbuf + dest_shift); + } + free(reorder_buf); + } + + return OMPI_SUCCESS; +} + +/* Perform a intra node gather and when it ends launch the inter node gather */ +int mca_coll_han_gather_lg_task(void *task_args) +{ + mca_coll_han_gather_args_t *t = (mca_coll_han_gather_args_t *) task_args; + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, "[%d] Han Gather: lg\n", + t->w_rank)); + ompi_datatype_t *dtype; + size_t count; + if (t->w_rank == t->root) { + dtype = t->rdtype; + count = t->rcount; + } else { + dtype = t->sdtype; + count = t->scount; + } + + /* If the process is one of the node leader */ + char *tmp_buf = NULL; + char *tmp_rbuf = NULL; + if (!t->noop) { + /* if the process is one of the node leader, allocate the intermediary + * buffer to gather on the low sub communicator */ + int low_size = ompi_comm_size(t->low_comm); + int low_rank = ompi_comm_rank(t->low_comm); + ptrdiff_t rsize, rgap = 0; + rsize = opal_datatype_span(&dtype->super, + count * low_size, + &rgap); + tmp_buf = (char *) malloc(rsize); + tmp_rbuf = tmp_buf - rgap; + if (t->w_rank == t->root) { + if (MPI_IN_PLACE == t->sbuf) { + ptrdiff_t rextent; + ompi_datatype_type_extent(dtype, &rextent); + ptrdiff_t block_size = rextent * (ptrdiff_t)count; + ptrdiff_t src_shift = block_size * t->w_rank; + ptrdiff_t dest_shift = block_size * low_rank; + ompi_datatype_copy_content_same_ddt(dtype, + (ptrdiff_t)count, + tmp_rbuf + dest_shift, + (char *)t->rbuf + src_shift); + } + } + } + + /* Low level (usually intra-node or shared memory) node gather */ + t->low_comm->c_coll->coll_gather((char *)t->sbuf, + count, + dtype, + tmp_rbuf, + count, + dtype, + t->root_low_rank, + t->low_comm, + t->low_comm->c_coll->coll_gather_module); + + /* Prepare up comm gather */ + t->sbuf = tmp_rbuf; + t->sbuf_inter_free = tmp_buf; + + /* Create ug (upper level all-gather) task */ + mca_coll_task_t *ug = t->cur_task; + /* Init ug task */ + init_task(ug, mca_coll_han_gather_ug_task, (void *) t); + /* Issure ug task */ + issue_task(ug); + + return OMPI_SUCCESS; +} + +/* ug: upper level (intra-node) gather task */ +int mca_coll_han_gather_ug_task(void *task_args) +{ + mca_coll_han_gather_args_t *t = (mca_coll_han_gather_args_t *) task_args; + OBJ_RELEASE(t->cur_task); + + if (t->noop) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d] Han Gather: ug noop\n", t->w_rank)); + } else { + ompi_datatype_t *dtype; + size_t count; + if (t->w_rank == t->root) { + dtype = t->rdtype; + count = t->rcount; + } else { + dtype = t->sdtype; + count = t->scount; + } + + + int low_size = ompi_comm_size(t->low_comm); + /* inter node gather */ + t->up_comm->c_coll->coll_gather((char *)t->sbuf, + count*low_size, + dtype, + (char *)t->rbuf, + count*low_size, + dtype, + t->root_up_rank, + t->up_comm, + t->up_comm->c_coll->coll_gather_module); + + if (t->sbuf_inter_free != NULL) { + free(t->sbuf_inter_free); + t->sbuf_inter_free = NULL; + } + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d] Han Gather: ug gather finish\n", t->w_rank)); + } + ompi_request_t *temp_req = t->req; + free(t); + ompi_request_complete(temp_req, 1); + return OMPI_SUCCESS; +} + +/* only work with regular situation (each node has equal number of processes) */ +int +mca_coll_han_gather_intra_simple(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, int rcount, + struct ompi_datatype_t *rdtype, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t *)module; + int *topo, w_rank = ompi_comm_rank(comm); + int w_size = ompi_comm_size(comm); + + /* Create the subcommunicators */ + if( OMPI_SUCCESS != mca_coll_han_comm_create_new(comm, han_module) ) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle gather with this communicator. Fall back on another component\n")); + /* HAN cannot work with this communicator so fallback on all collectives */ + HAN_LOAD_FALLBACK_COLLECTIVES(han_module, comm); + return comm->c_coll->coll_gather(sbuf, scount, sdtype, rbuf, + rcount, rdtype, root, + comm, comm->c_coll->coll_gather_module); + } + + /* Topo must be initialized to know rank distribution which then is used to + * determine if han can be used */ + topo = mca_coll_han_topo_init(comm, han_module, 2); + if (han_module->are_ppn_imbalanced){ + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle gather with this communicator (imbalance). Fall back on another component\n")); + /* Put back the fallback collective support and call it once. All + * future calls will then be automatically redirected. + */ + HAN_LOAD_FALLBACK_COLLECTIVE(han_module, comm, gather); + return comm->c_coll->coll_gather(sbuf, scount, sdtype, rbuf, + rcount, rdtype, root, + comm, comm->c_coll->coll_gather_module); + } + + ompi_communicator_t *low_comm = han_module->sub_comm[INTRA_NODE]; + ompi_communicator_t *up_comm = han_module->sub_comm[INTER_NODE]; + ompi_datatype_t *dtype; + size_t count; + + if (w_rank == root) { + dtype = rdtype; + count = rcount; + } else { + dtype = sdtype; + count = scount; + } + + + /* Get the 'virtual ranks' mapping corresponding to the communicators */ + int *vranks = han_module->cached_vranks; + /* information about sub-communicators */ + int low_rank = ompi_comm_rank(low_comm); + int low_size = ompi_comm_size(low_comm); + /* Get root ranks for low and up comms */ + int root_low_rank, root_up_rank; /* root ranks for both sub-communicators */ + mca_coll_han_get_ranks(vranks, root, low_size, &root_low_rank, &root_up_rank); + + /* allocate buffer to store unordered result on root + * if the processes are mapped-by core, no need to reorder: + * distribution of ranks on core first and node next, + * in a increasing order for both patterns */ + char *reorder_buf = NULL; // allocated memory + char *reorder_buf_start = NULL; // start of the data + if (w_rank == root) { + if (han_module->is_mapbycore) { + reorder_buf_start = (char *)rbuf; + } else { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d]: Future Gather needs reordering: ", w_rank)); + ptrdiff_t rgap = 0; + ptrdiff_t rsize = opal_datatype_span(&rdtype->super, + (int64_t)rcount * w_size, + &rgap); + reorder_buf = (char *)malloc(rsize); + /* rgap is the size of unused space at the start of the datatype */ + reorder_buf_start = reorder_buf - rgap; + } + + } + + /* allocate the intermediary buffer + * to gather on leaders on the low sub communicator */ + char *tmp_buf = NULL; // allocated memory + char *tmp_buf_start = NULL; // start of the data + if (low_rank == root_low_rank) { + ptrdiff_t rsize, rgap = 0; + rsize = opal_datatype_span(&dtype->super, + count * low_size, + &rgap); + tmp_buf = (char *) malloc(rsize); + tmp_buf_start = tmp_buf - rgap; + } + + /* 1. low gather on nodes leaders */ + low_comm->c_coll->coll_gather((char *)sbuf, + count, + dtype, + tmp_buf_start, + count, + dtype, + root_low_rank, + low_comm, + low_comm->c_coll->coll_gather_module); + + /* 2. upper gather (inter-node) between node leaders */ + if (low_rank == root_low_rank) { + up_comm->c_coll->coll_gather((char *)tmp_buf_start, + count*low_size, + dtype, + (char *)reorder_buf_start, + count*low_size, + dtype, + root_up_rank, + up_comm, + up_comm->c_coll->coll_gather_module); + + if (tmp_buf != NULL) { + free(tmp_buf); + tmp_buf = NULL; + tmp_buf_start = NULL; + } + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d] Future Gather: ug gather finish\n", w_rank)); + } + + /* 3. reorder data on root into rbuf + * if ranks are not mapped in topological order, data needs to be reordered + * (see reorder_gather) + */ + if (w_rank == root && !han_module->is_mapbycore) { + ompi_coll_han_reorder_gather(reorder_buf_start, + rbuf, rcount, rdtype, + comm, topo); + free(reorder_buf); + } + + return OMPI_SUCCESS; +} + +/* Reorder after gather operation, for unordered ranks + * + * Suppose, the expected message is 0 1 2 3 4 5 6 7 but the processes are + * mapped on 2 nodes, for example |0 2 4 6| |1 3 5 7|. The messages from + * low gather will be 0 2 4 6 and 1 3 5 7. + * So the upper gather result is 0 2 4 6 1 3 5 7 which must be reordered. + * The 3rd element (4) must be recopied at the 4th place. In general, the + * i-th element must be recopied at the place given by the i-th entry of the + * topology, which is topo[i*topolevel +1] + */ +void +ompi_coll_han_reorder_gather(const void *sbuf, + void *rbuf, int count, + struct ompi_datatype_t *dtype, + struct ompi_communicator_t *comm, + int * topo) +{ + int i, topolevel = 2; // always 2 levels in topo +#if OPAL_ENABLE_DEBUG + int w_rank = ompi_comm_rank(comm); +#endif + int w_size = ompi_comm_size(comm); + ptrdiff_t rextent; + ompi_datatype_type_extent(dtype, &rextent); + for ( i = 0; i < w_size; i++ ) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d]: Future reorder from %d to %d\n", + w_rank, + i * topolevel + 1, + topo[i * topolevel + 1])); + ptrdiff_t block_size = rextent * (ptrdiff_t)count; + ptrdiff_t src_shift = block_size * i; + ptrdiff_t dest_shift = block_size * (ptrdiff_t)topo[i * topolevel + 1]; + ompi_datatype_copy_content_same_ddt(dtype, + (ptrdiff_t)count, + (char *)rbuf + dest_shift, + (char *)sbuf + src_shift); + } +} diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han.h openmpi-4.1.4/ompi/mca/coll/han/coll_han.h --- openmpi-4.0.3/ompi/mca/coll/han/coll_han.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,576 @@ +/* + * Copyright (c) 2018-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Bull S.A.S. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +/** + * @file + * + * This component provides hierarchical implementations of MPI collectives. + * Hierarchical approach is efficient in case of too many process wanting a remote + * access to the same local or remote resource (high message rate). + * Some components are also better at local scale (for example with shared memory) + * where others provide scalable implementations. Hierarchical implementation + * enable a fallback on other components for intermediary operation. + * For example a MPI_Bcast will be divided into a sequence of bcasts from the + * highest to the lowest topological level. + * Some algorithms introduce more advanced feature (such as noise resiliency) + * some just link topological levels. The last ones are called 'simple'. + * To perform sub-communications, extra communicators are initialised for + * each topological level. + */ + + +#ifndef MCA_COLL_HAN_EXPORT_H +#define MCA_COLL_HAN_EXPORT_H + +#include "ompi_config.h" + +#include "mpi.h" +#include "ompi/mca/mca.h" +#include "opal/util/output.h" +#include "ompi/mca/coll/base/coll_base_functions.h" +#include "coll_han_trigger.h" +#include "ompi/mca/coll/han/coll_han_dynamic.h" + +/* + * Today; + * . only 2 modules available for intranode (low) level + * . only 2 modules available for internode (up) level + */ + +#define COLL_HAN_LOW_MODULES 2 +#define COLL_HAN_UP_MODULES 2 + +struct mca_coll_han_bcast_args_s { + mca_coll_task_t *cur_task; + ompi_communicator_t *up_comm; + ompi_communicator_t *low_comm; + void *buff; + ompi_datatype_t *dtype; + int seg_count; + int root_low_rank; + int root_up_rank; + int num_segments; + int cur_seg; + int w_rank; + int last_seg_count; + bool noop; +}; +typedef struct mca_coll_han_bcast_args_s mca_coll_han_bcast_args_t; + +struct mca_coll_han_reduce_args_s { + mca_coll_task_t *cur_task; + ompi_communicator_t *up_comm; + ompi_communicator_t *low_comm; + void *sbuf; + void *rbuf; + ompi_op_t *op; + ompi_datatype_t *dtype; + int seg_count; + int root_low_rank; + int root_up_rank; + int num_segments; + int cur_seg; + int w_rank; + int last_seg_count; + bool noop; + bool is_tmp_rbuf; +}; +typedef struct mca_coll_han_reduce_args_s mca_coll_han_reduce_args_t; + +struct mca_coll_han_allreduce_args_s { + mca_coll_task_t *cur_task; + ompi_communicator_t *up_comm; + ompi_communicator_t *low_comm; + ompi_request_t *req; + void *sbuf; + void *rbuf; + ompi_op_t *op; + ompi_datatype_t *dtype; + int seg_count; + int root_up_rank; + int root_low_rank; + int num_segments; + int cur_seg; + int w_rank; + int last_seg_count; + bool noop; + int *completed; +}; +typedef struct mca_coll_han_allreduce_args_s mca_coll_han_allreduce_args_t; + +struct mca_coll_han_scatter_args_s { + mca_coll_task_t *cur_task; + ompi_communicator_t *up_comm; + ompi_communicator_t *low_comm; + ompi_request_t *req; + void *sbuf; + void *sbuf_inter_free; + void *sbuf_reorder_free; + void *rbuf; + ompi_datatype_t *sdtype; + ompi_datatype_t *rdtype; + int scount; + int rcount; + int root; + int root_up_rank; + int root_low_rank; + int w_rank; + bool noop; +}; +typedef struct mca_coll_han_scatter_args_s mca_coll_han_scatter_args_t; + +struct mca_coll_han_gather_args_s { + mca_coll_task_t *cur_task; + ompi_communicator_t *up_comm; + ompi_communicator_t *low_comm; + ompi_request_t *req; + void *sbuf; + void *sbuf_inter_free; + void *rbuf; + ompi_datatype_t *sdtype; + ompi_datatype_t *rdtype; + int scount; + int rcount; + int root; + int root_up_rank; + int root_low_rank; + int w_rank; + bool noop; + bool is_mapbycore; +}; +typedef struct mca_coll_han_gather_args_s mca_coll_han_gather_args_t; + +struct mca_coll_han_allgather_s { + mca_coll_task_t *cur_task; + ompi_communicator_t *up_comm; + ompi_communicator_t *low_comm; + ompi_request_t *req; + void *sbuf; + void *sbuf_inter_free; + void *rbuf; + ompi_datatype_t *sdtype; + ompi_datatype_t *rdtype; + int scount; + int rcount; + int root_low_rank; + int w_rank; + bool noop; + bool is_mapbycore; + int *topo; +}; +typedef struct mca_coll_han_allgather_s mca_coll_han_allgather_t; + +/** + * Structure to hold the han coll component. First it holds the + * base coll component, and then holds a bunch of + * han-coll-component-specific stuff (e.g., current MCA param + * values). + */ +typedef struct mca_coll_han_component_t { + /** Base coll component */ + mca_coll_base_component_2_0_0_t super; + + /** MCA parameter: Priority of this component */ + int han_priority; + /* whether output the log message */ + int han_output; + /* segment size for bcast */ + uint32_t han_bcast_segsize; + /* up level module for bcast */ + uint32_t han_bcast_up_module; + /* low level module for bcast */ + uint32_t han_bcast_low_module; + /* segment size for reduce */ + uint32_t han_reduce_segsize; + /* up level module for reduce */ + uint32_t han_reduce_up_module; + /* low level module for reduce */ + uint32_t han_reduce_low_module; + /* segment size for allreduce */ + uint32_t han_allreduce_segsize; + /* up level module for allreduce */ + uint32_t han_allreduce_up_module; + /* low level module for allreduce */ + uint32_t han_allreduce_low_module; + /* up level module for allgather */ + uint32_t han_allgather_up_module; + /* low level module for allgather */ + uint32_t han_allgather_low_module; + /* up level module for gather */ + uint32_t han_gather_up_module; + /* low level module for gather */ + uint32_t han_gather_low_module; + /* up level module for scatter */ + uint32_t han_scatter_up_module; + /* low level module for scatter */ + uint32_t han_scatter_low_module; + /* whether we need reproducible results + * (but disables topological optimisations) + */ + bool han_reproducible; + bool use_simple_algorithm[COLLCOUNT]; + + /* Dynamic configuration rules */ + bool use_dynamic_file_rules; + bool dump_dynamic_rules; + char* dynamic_rules_filename; + /* Dynamic rules from file */ + mca_coll_han_dynamic_rules_t dynamic_rules; + /* Dynamic rules from mca parameter */ + COMPONENT_T mca_rules[COLLCOUNT][NB_TOPO_LVL]; + + /* Define maximum dynamic errors printed by rank 0 with a 0 verbosity level */ + int max_dynamic_errors; +} mca_coll_han_component_t; + + +/* + * Structure used to store what is necessary for the collective operations + * routines in case of fallback. + */ +typedef struct mca_coll_han_single_collective_fallback_s { + union { + mca_coll_base_module_allgather_fn_t allgather; + mca_coll_base_module_allgatherv_fn_t allgatherv; + mca_coll_base_module_allreduce_fn_t allreduce; + mca_coll_base_module_barrier_fn_t barrier; + mca_coll_base_module_bcast_fn_t bcast; + mca_coll_base_module_gather_fn_t gather; + mca_coll_base_module_reduce_fn_t reduce; + mca_coll_base_module_scatter_fn_t scatter; + }; + mca_coll_base_module_t* module; +} mca_coll_han_single_collective_fallback_t; + +/* + * The structure containing a replacement for all collective supported + * by HAN. This structure is used as a fallback during subcommunicator + * creation. + */ +typedef struct mca_coll_han_collectives_fallback_s { + mca_coll_han_single_collective_fallback_t allgather; + mca_coll_han_single_collective_fallback_t allgatherv; + mca_coll_han_single_collective_fallback_t allreduce; + mca_coll_han_single_collective_fallback_t barrier; + mca_coll_han_single_collective_fallback_t bcast; + mca_coll_han_single_collective_fallback_t reduce; + mca_coll_han_single_collective_fallback_t gather; + mca_coll_han_single_collective_fallback_t scatter; +} mca_coll_han_collectives_fallback_t; + +/** Coll han module */ +typedef struct mca_coll_han_module_t { + /** Base module */ + mca_coll_base_module_t super; + + /* Whether this module has been lazily initialized or not yet */ + bool enabled; + int recursive_free_depth; + + struct ompi_communicator_t *cached_comm; + struct ompi_communicator_t **cached_low_comms; + struct ompi_communicator_t **cached_up_comms; + int *cached_vranks; + int *cached_topo; + bool is_mapbycore; + bool are_ppn_imbalanced; + + /* To be able to fallback when the cases are not supported */ + struct mca_coll_han_collectives_fallback_s fallback; + + /* To be able to fallback on reproducible algorithm */ + mca_coll_base_module_reduce_fn_t reproducible_reduce; + mca_coll_base_module_t *reproducible_reduce_module; + mca_coll_base_module_allreduce_fn_t reproducible_allreduce; + mca_coll_base_module_t *reproducible_allreduce_module; + + /* Topological level of this communicator */ + TOPO_LVL_T topologic_level; + + /* Collective module storage for module choice */ + mca_coll_han_collective_modules_storage_t modules_storage; + bool storage_initialized; + + /* + * Number of dynamic errors encountered + * The first mca_coll_han_component.max_dynamic_errors + * of rank 0 are printed with verbosity = 0 + */ + int dynamic_errors; + + /* Sub-communicator */ + struct ompi_communicator_t *sub_comm[NB_TOPO_LVL]; +} mca_coll_han_module_t; +OBJ_CLASS_DECLARATION(mca_coll_han_module_t); + +/* + * Some defines to stick to the naming used in the other components in terms of + * fallback routines + */ +#define previous_allgather fallback.allgather.allgather +#define previous_allgather_module fallback.allgather.module + +#define previous_allgatherv fallback.allgatherv.allgatherv +#define previous_allgatherv_module fallback.allgatherv.module + +#define previous_allreduce fallback.allreduce.allreduce +#define previous_allreduce_module fallback.allreduce.module + +#define previous_barrier fallback.barrier.barrier +#define previous_barrier_module fallback.barrier.module + +#define previous_bcast fallback.bcast.bcast +#define previous_bcast_module fallback.bcast.module + +#define previous_reduce fallback.reduce.reduce +#define previous_reduce_module fallback.reduce.module + +#define previous_gather fallback.gather.gather +#define previous_gather_module fallback.gather.module + +#define previous_scatter fallback.scatter.scatter +#define previous_scatter_module fallback.scatter.module + + +/* macro to correctly load a fallback collective module */ +#define HAN_LOAD_FALLBACK_COLLECTIVE(HANM, COMM, COLL) \ + do { \ + if ( ((COMM)->c_coll->coll_ ## COLL ## _module) == (mca_coll_base_module_t*)(HANM) ) { \ + (COMM)->c_coll->coll_ ## COLL = (HANM)->fallback.COLL.COLL; \ + mca_coll_base_module_t *coll_module = (COMM)->c_coll->coll_ ## COLL ## _module; \ + (COMM)->c_coll->coll_ ## COLL ## _module = (HANM)->fallback.COLL.module; \ + OBJ_RETAIN((COMM)->c_coll->coll_ ## COLL ## _module); \ + OBJ_RELEASE(coll_module); \ + } \ + } while(0) + +/* macro to correctly load /all/ fallback collectives */ +#define HAN_LOAD_FALLBACK_COLLECTIVES(HANM, COMM) \ + do { \ + HAN_LOAD_FALLBACK_COLLECTIVE(HANM, COMM, barrier); \ + HAN_LOAD_FALLBACK_COLLECTIVE(HANM, COMM, bcast); \ + HAN_LOAD_FALLBACK_COLLECTIVE(HANM, COMM, scatter); \ + HAN_LOAD_FALLBACK_COLLECTIVE(HANM, COMM, gather); \ + HAN_LOAD_FALLBACK_COLLECTIVE(HANM, COMM, reduce); \ + HAN_LOAD_FALLBACK_COLLECTIVE(HANM, COMM, allreduce); \ + HAN_LOAD_FALLBACK_COLLECTIVE(HANM, COMM, allgather); \ + HAN_LOAD_FALLBACK_COLLECTIVE(HANM, COMM, allgatherv); \ + han_module->enabled = false; /* entire module set to pass-through from now on */ \ + } while(0) + + +/** + * Global component instance + */ +OMPI_MODULE_DECLSPEC extern mca_coll_han_component_t mca_coll_han_component; + +/* + * coll module functions + */ +int mca_coll_han_init_query(bool enable_progress_threads, bool enable_mpi_threads); + +mca_coll_base_module_t *mca_coll_han_comm_query(struct ompi_communicator_t *comm, int *priority); + +int han_request_free(ompi_request_t ** request); + +/* Subcommunicator creation */ +int mca_coll_han_comm_create(struct ompi_communicator_t *comm, mca_coll_han_module_t * han_module); +int mca_coll_han_comm_create_new(struct ompi_communicator_t *comm, mca_coll_han_module_t *han_module); + +/** + * Gather topology information + * + * Returns a pointer to the (potentially already cached) topology. + * NOTE: if the rank distribution is imbalanced, no effort will be made to gather + * the topology at all ranks and instead NULL is returned and han_module->is_mapbycore + * is set to false. + * If HAN ever learns to deal with imbalanced topologies, this needs fixing! + */ +int *mca_coll_han_topo_init(struct ompi_communicator_t *comm, mca_coll_han_module_t * han_module, + int num_topo_level); + +/* Utils */ +static inline void +mca_coll_han_get_ranks(int *vranks, int root, int low_size, + int *root_low_rank, int *root_up_rank) +{ + *root_up_rank = vranks[root] / low_size; + *root_low_rank = vranks[root] % low_size; +} + +const char* mca_coll_han_topo_lvl_to_str(TOPO_LVL_T topo_lvl); + +/** Dynamic component choice */ +/* + * Get all the collective modules initialized on this communicator + * This function must be call at the start of every selector implementation + */ +int +mca_coll_han_get_all_coll_modules(struct ompi_communicator_t *comm, + mca_coll_han_module_t *han_module); + +int +mca_coll_han_allgather_intra_dynamic(ALLGATHER_BASE_ARGS, + mca_coll_base_module_t *module); +int +mca_coll_han_allgatherv_intra_dynamic(ALLGATHERV_BASE_ARGS, + mca_coll_base_module_t *module); +int +mca_coll_han_allreduce_intra_dynamic(ALLREDUCE_BASE_ARGS, + mca_coll_base_module_t *module); +int +mca_coll_han_barrier_intra_dynamic(BARRIER_BASE_ARGS, + mca_coll_base_module_t *module); +int +mca_coll_han_bcast_intra_dynamic(BCAST_BASE_ARGS, + mca_coll_base_module_t *module); +int +mca_coll_han_gather_intra_dynamic(GATHER_BASE_ARGS, + mca_coll_base_module_t *module); +int +mca_coll_han_reduce_intra_dynamic(REDUCE_BASE_ARGS, + mca_coll_base_module_t *module); +int +mca_coll_han_scatter_intra_dynamic(SCATTER_BASE_ARGS, + mca_coll_base_module_t *module); + +int mca_coll_han_barrier_intra_simple(struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); +/* Bcast */ +int mca_coll_han_bcast_intra_simple(void *buff, + int count, + struct ompi_datatype_t *dtype, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); +int mca_coll_han_bcast_intra(void *buff, int count, struct ompi_datatype_t *dtype, int root, + struct ompi_communicator_t *comm, mca_coll_base_module_t * module); + +/* Reduce */ +int +mca_coll_han_reduce_intra_simple(const void *sbuf, + void* rbuf, + int count, + struct ompi_datatype_t *dtype, + ompi_op_t *op, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); +int +mca_coll_han_reduce_reproducible_decision(struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); +int +mca_coll_han_reduce_reproducible(const void *sbuf, + void *rbuf, + int count, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); + +int mca_coll_han_reduce_intra(const void *sbuf, + void *rbuf, + int count, + struct ompi_datatype_t *dtype, + ompi_op_t* op, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t * module); + +/* Allreduce */ +int +mca_coll_han_allreduce_intra_simple(const void *sbuf, + void *rbuf, + int count, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); +int +mca_coll_han_allreduce_reproducible_decision(struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); +int +mca_coll_han_allreduce_reproducible(const void *sbuf, + void *rbuf, + int count, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); + +int mca_coll_han_allreduce_intra(const void *sbuf, + void *rbuf, + int count, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, + struct ompi_communicator_t *comm, mca_coll_base_module_t * module); + +/* Scatter */ +int +mca_coll_han_scatter_intra(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, int rcount, + struct ompi_datatype_t *rdtype, + int root, + struct ompi_communicator_t *comm, mca_coll_base_module_t * module); +int +mca_coll_han_scatter_intra_simple(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, int rcount, + struct ompi_datatype_t *rdtype, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t * module); + +/* Gather */ +int +mca_coll_han_gather_intra(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, int rcount, + struct ompi_datatype_t *rdtype, + int root, + struct ompi_communicator_t *comm, mca_coll_base_module_t * module); +int +mca_coll_han_gather_intra_simple(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, int rcount, + struct ompi_datatype_t *rdtype, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); +/* reordering after gather, for unordered ranks */ +void +ompi_coll_han_reorder_gather(const void *sbuf, + void *rbuf, int rcount, + struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + int * topo); + + + +/* Allgather */ +int +mca_coll_han_allgather_intra(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, int rcount, + struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, mca_coll_base_module_t * module); +int +mca_coll_han_allgather_intra_simple(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void* rbuf, int rcount, + struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); + +#endif /* MCA_COLL_HAN_EXPORT_H */ diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han_module.c openmpi-4.1.4/ompi/mca/coll/han/coll_han_module.c --- openmpi-4.0.3/ompi/mca/coll/han/coll_han_module.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,361 @@ +/* + * Copyright (c) 2018-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Bull S.A.S. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "mpi.h" +#include "coll_han.h" +#include "coll_han_dynamic.h" + + +/* + *@file + * Coll han module managment file. Used for each new communicator. + */ + +/* + * Local functions + */ +static int han_module_enable(mca_coll_base_module_t * module, + struct ompi_communicator_t *comm); +static int mca_coll_han_module_disable(mca_coll_base_module_t * module, + struct ompi_communicator_t *comm); + +#define CLEAN_PREV_COLL(HANDLE, NAME) \ + do { \ + (HANDLE)->fallback.NAME.NAME = NULL; \ + (HANDLE)->fallback.NAME.module = NULL; \ + } while (0) + +/* + * Module constructor + */ +static void han_module_clear(mca_coll_han_module_t *han_module) +{ + CLEAN_PREV_COLL(han_module, allgather); + CLEAN_PREV_COLL(han_module, allgatherv); + CLEAN_PREV_COLL(han_module, allreduce); + CLEAN_PREV_COLL(han_module, barrier); + CLEAN_PREV_COLL(han_module, bcast); + CLEAN_PREV_COLL(han_module, reduce); + CLEAN_PREV_COLL(han_module, gather); + CLEAN_PREV_COLL(han_module, scatter); + + han_module->reproducible_reduce = NULL; + han_module->reproducible_reduce_module = NULL; + han_module->reproducible_allreduce = NULL; + han_module->reproducible_allreduce_module = NULL; +} + +/* + * Module constructor + */ +static void mca_coll_han_module_construct(mca_coll_han_module_t * module) +{ + int i; + + module->enabled = true; + module->recursive_free_depth = 0; + module->super.coll_module_disable = mca_coll_han_module_disable; + module->cached_low_comms = NULL; + module->cached_up_comms = NULL; + module->cached_vranks = NULL; + module->cached_topo = NULL; + module->is_mapbycore = false; + module->storage_initialized = false; + for( i = 0; i < NB_TOPO_LVL; i++ ) { + module->sub_comm[i] = NULL; + } + for( i = SELF; i < COMPONENTS_COUNT; i++ ) { + module->modules_storage.modules[i].module_handler = NULL; + } + + module->dynamic_errors = 0; + + han_module_clear(module); +} + + +#define OBJ_RELEASE_IF_NOT_NULL(obj) \ + do { \ + if (NULL != (obj)) { \ + OBJ_RELEASE(obj); \ + } \ + } while (0) + +/* + * Module destructor + */ +static void +mca_coll_han_module_destruct(mca_coll_han_module_t * module) +{ + int i; + + module->recursive_free_depth++; + module->enabled = false; + /* If the current module is in its caches during its destruction + * (i.e. last collective used HAN on a subcomm with a fallback + * on previous components) + */ + if (module->recursive_free_depth > 1){ + return; + } + + if (module->cached_low_comms != NULL) { + for (i = 0; i < COLL_HAN_LOW_MODULES; i++) { + ompi_comm_free(&(module->cached_low_comms[i])); + module->cached_low_comms[i] = NULL; + } + free(module->cached_low_comms); + module->cached_low_comms = NULL; + } + if (module->cached_up_comms != NULL) { + for (i = 0; i < COLL_HAN_UP_MODULES; i++) { + ompi_comm_free(&(module->cached_up_comms[i])); + module->cached_up_comms[i] = NULL; + } + free(module->cached_up_comms); + module->cached_up_comms = NULL; + } + if (module->cached_vranks != NULL) { + free(module->cached_vranks); + module->cached_vranks = NULL; + } + if (module->cached_topo != NULL) { + free(module->cached_topo); + module->cached_topo = NULL; + } + for(i=0 ; isub_comm[i]) { + ompi_comm_free(&(module->sub_comm[i])); + } + } + + OBJ_RELEASE_IF_NOT_NULL(module->previous_allgather_module); + OBJ_RELEASE_IF_NOT_NULL(module->previous_allreduce_module); + OBJ_RELEASE_IF_NOT_NULL(module->previous_bcast_module); + OBJ_RELEASE_IF_NOT_NULL(module->previous_gather_module); + OBJ_RELEASE_IF_NOT_NULL(module->previous_reduce_module); + OBJ_RELEASE_IF_NOT_NULL(module->previous_scatter_module); + + han_module_clear(module); +} + +OBJ_CLASS_INSTANCE(mca_coll_han_module_t, + mca_coll_base_module_t, + mca_coll_han_module_construct, + mca_coll_han_module_destruct); + +/* + * Initial query function that is invoked during MPI_INIT, allowing + * this component to disqualify itself if it doesn't support the + * required level of thread support. This function is invoked exactly + * once. + */ +int mca_coll_han_init_query(bool enable_progress_threads, + bool enable_mpi_threads) +{ + opal_output_verbose(10, ompi_coll_base_framework.framework_output, + "coll:han:init_query: pick me! pick me!"); + return OMPI_SUCCESS; +} + + +/* + * Invoked when there's a new communicator that has been created. + * Look at the communicator and decide which set of functions and + * priority we want to return. + */ +mca_coll_base_module_t * +mca_coll_han_comm_query(struct ompi_communicator_t * comm, int *priority) +{ + int flag; + mca_coll_han_module_t *han_module; + + /* + * If we're intercomm, or if there's only one process in the communicator + */ + if (OMPI_COMM_IS_INTER(comm)) { + opal_output_verbose(10, ompi_coll_base_framework.framework_output, + "coll:han:comm_query (%d/%s): intercomm; disqualifying myself", + comm->c_contextid, comm->c_name); + return NULL; + } + if (1 == ompi_comm_size(comm)) { + opal_output_verbose(10, ompi_coll_base_framework.framework_output, + "coll:han:comm_query (%d/%s): comm is too small; disqualifying myself", + comm->c_contextid, comm->c_name); + return NULL; + } + if( !ompi_group_have_remote_peers(comm->c_local_group) ) { + /* The group only contains local processes. Disable HAN for now */ + opal_output_verbose(10, ompi_coll_base_framework.framework_output, + "coll:han:comm_query (%d/%s): comm has only local processes; disqualifying myself", + comm->c_contextid, comm->c_name); + return NULL; + } + /* Get the priority level attached to this module. If priority is less + * than or equal to 0, then the module is unavailable. */ + *priority = mca_coll_han_component.han_priority; + if (mca_coll_han_component.han_priority < 0) { + opal_output_verbose(10, ompi_coll_base_framework.framework_output, + "coll:han:comm_query (%d/%s): priority too low; disqualifying myself", + comm->c_contextid, comm->c_name); + return NULL; + } + + han_module = OBJ_NEW(mca_coll_han_module_t); + if (NULL == han_module) { + return NULL; + } + + /* All is good -- return a module */ + han_module->topologic_level = GLOBAL_COMMUNICATOR; + + if (NULL != comm->super.s_info) { + char info_val[OPAL_MAX_INFO_VAL+1]; + + /* Get the info value disaqualifying coll components */ + opal_info_get(comm->super.s_info, "ompi_comm_coll_han_topo_level", + sizeof(info_val), info_val, &flag); + + if (flag) { + if (0 == strcmp(info_val, "INTER_NODE")) { + han_module->topologic_level = INTER_NODE; + } else { + han_module->topologic_level = INTRA_NODE; + } + } + } + + han_module->super.coll_module_enable = han_module_enable; + han_module->super.ft_event = NULL; + han_module->super.coll_alltoall = NULL; + han_module->super.coll_alltoallv = NULL; + han_module->super.coll_alltoallw = NULL; + han_module->super.coll_exscan = NULL; + han_module->super.coll_gatherv = NULL; + han_module->super.coll_reduce_scatter = NULL; + han_module->super.coll_scan = NULL; + han_module->super.coll_scatterv = NULL; + han_module->super.coll_barrier = mca_coll_han_barrier_intra_dynamic; + han_module->super.coll_scatter = mca_coll_han_scatter_intra_dynamic; + han_module->super.coll_reduce = mca_coll_han_reduce_intra_dynamic; + han_module->super.coll_gather = mca_coll_han_gather_intra_dynamic; + han_module->super.coll_bcast = mca_coll_han_bcast_intra_dynamic; + han_module->super.coll_allreduce = mca_coll_han_allreduce_intra_dynamic; + han_module->super.coll_allgather = mca_coll_han_allgather_intra_dynamic; + + if (GLOBAL_COMMUNICATOR == han_module->topologic_level) { + /* We are on the global communicator, return topological algorithms */ + han_module->super.coll_allgatherv = NULL; + } else { + /* We are on a topologic sub-communicator, return only the selector */ + han_module->super.coll_allgatherv = mca_coll_han_allgatherv_intra_dynamic; + } + + opal_output_verbose(10, ompi_coll_base_framework.framework_output, + "coll:han:comm_query (%d/%s): pick me! pick me!", + comm->c_contextid, comm->c_name); + return &(han_module->super); +} + + +/* + * In this macro, the following variables are supposed to have been declared + * in the caller: + * . ompi_communicator_t *comm + * . mca_coll_han_module_t *han_module + */ +#define HAN_SAVE_PREV_COLL_API(__api) \ + do { \ + if (!comm->c_coll->coll_ ## __api || !comm->c_coll->coll_ ## __api ## _module) { \ + opal_output_verbose(1, ompi_coll_base_framework.framework_output, \ + "(%d/%s): no underlying " # __api"; disqualifying myself", \ + comm->c_contextid, comm->c_name); \ + goto handle_error; \ + } \ + han_module->previous_ ## __api = comm->c_coll->coll_ ## __api; \ + han_module->previous_ ## __api ## _module = comm->c_coll->coll_ ## __api ## _module; \ + OBJ_RETAIN(han_module->previous_ ## __api ## _module); \ + } while(0) + +/* + * Init module on the communicator + */ +static int +han_module_enable(mca_coll_base_module_t * module, + struct ompi_communicator_t *comm) +{ + mca_coll_han_module_t * han_module = (mca_coll_han_module_t*) module; + + HAN_SAVE_PREV_COLL_API(allgather); + HAN_SAVE_PREV_COLL_API(allgatherv); + HAN_SAVE_PREV_COLL_API(allreduce); + HAN_SAVE_PREV_COLL_API(barrier); + HAN_SAVE_PREV_COLL_API(bcast); + HAN_SAVE_PREV_COLL_API(gather); + HAN_SAVE_PREV_COLL_API(reduce); + HAN_SAVE_PREV_COLL_API(scatter); + + /* set reproducible algos */ + mca_coll_han_reduce_reproducible_decision(comm, module); + mca_coll_han_allreduce_reproducible_decision(comm, module); + + return OMPI_SUCCESS; + +handle_error: + OBJ_RELEASE_IF_NOT_NULL(han_module->previous_allgather_module); + OBJ_RELEASE_IF_NOT_NULL(han_module->previous_allgatherv_module); + OBJ_RELEASE_IF_NOT_NULL(han_module->previous_allreduce_module); + OBJ_RELEASE_IF_NOT_NULL(han_module->previous_bcast_module); + OBJ_RELEASE_IF_NOT_NULL(han_module->previous_gather_module); + OBJ_RELEASE_IF_NOT_NULL(han_module->previous_reduce_module); + OBJ_RELEASE_IF_NOT_NULL(han_module->previous_scatter_module); + + return OMPI_ERROR; +} + +/* + * Module disable + */ +static int +mca_coll_han_module_disable(mca_coll_base_module_t * module, + struct ompi_communicator_t *comm) +{ + mca_coll_han_module_t * han_module = (mca_coll_han_module_t *) module; + + OBJ_RELEASE_IF_NOT_NULL(han_module->previous_allgather_module); + OBJ_RELEASE_IF_NOT_NULL(han_module->previous_allgatherv_module); + OBJ_RELEASE_IF_NOT_NULL(han_module->previous_allreduce_module); + OBJ_RELEASE_IF_NOT_NULL(han_module->previous_barrier_module); + OBJ_RELEASE_IF_NOT_NULL(han_module->previous_bcast_module); + OBJ_RELEASE_IF_NOT_NULL(han_module->previous_gather_module); + OBJ_RELEASE_IF_NOT_NULL(han_module->previous_reduce_module); + OBJ_RELEASE_IF_NOT_NULL(han_module->previous_scatter_module); + + han_module_clear(han_module); + + return OMPI_SUCCESS; +} + + +/* + * Free the han request + */ +int han_request_free(ompi_request_t ** request) +{ + (*request)->req_state = OMPI_REQUEST_INVALID; + OBJ_RELEASE(*request); + *request = MPI_REQUEST_NULL; + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han_reduce.c openmpi-4.1.4/ompi/mca/coll/han/coll_han_reduce.c --- openmpi-4.0.3/ompi/mca/coll/han/coll_han_reduce.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han_reduce.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,449 @@ +/* + * Copyright (c) 2018-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Bull S.A.S. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +/* + * @file + * This files contains all the hierarchical implementations of reduce + */ + +#include "coll_han.h" +#include "ompi/mca/coll/base/coll_base_functions.h" +#include "ompi/mca/pml/pml.h" +#include "coll_han_trigger.h" + +static int mca_coll_han_reduce_t0_task(void *task_args); +static int mca_coll_han_reduce_t1_task(void *task_args); + +static inline void +mca_coll_han_set_reduce_args(mca_coll_han_reduce_args_t * args, mca_coll_task_t * cur_task, void *sbuf, void *rbuf, + int seg_count, struct ompi_datatype_t *dtype, struct ompi_op_t *op, + int root_up_rank, int root_low_rank, + struct ompi_communicator_t *up_comm, + struct ompi_communicator_t *low_comm, + int num_segments, int cur_seg, int w_rank, int last_seg_count, + bool noop, bool is_tmp_rbuf) +{ + args->cur_task = cur_task; + args->sbuf = sbuf; + args->rbuf = rbuf; + args->seg_count = seg_count; + args->dtype = dtype; + args->op = op; + args->root_low_rank = root_low_rank; + args->root_up_rank = root_up_rank; + args->up_comm = up_comm; + args->low_comm = low_comm; + args->num_segments = num_segments; + args->cur_seg = cur_seg; + args->w_rank = w_rank; + args->last_seg_count = last_seg_count; + args->noop = noop; + args->is_tmp_rbuf = is_tmp_rbuf; +} + +/* + * Each segment of the messsage needs to go though 2 steps to perform MPI_Reduce: + * lb: low level (shared-memory or intra-node) reduce. + * ub: upper level (inter-node) reduce + * Hence, in each iteration, there is a combination of collective operations which is called a task. + * | seg 0 | seg 1 | seg 2 | seg 3 | + * iter 0 | lr | | | | task: t0, contains lr + * iter 1 | ur | lr | | | task: t1, contains ur and lr + * iter 2 | | ur | lr | | task: t1, contains ur and lr + * iter 3 | | | ur | lr | task: t1, contains ur and lr + * iter 4 | | | | ur | task: t1, contains ur + */ +int +mca_coll_han_reduce_intra(const void *sbuf, + void *rbuf, + int count, + struct ompi_datatype_t *dtype, + ompi_op_t* op, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t * module) +{ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t *) module; + ptrdiff_t extent, lb; + int seg_count = count, w_rank; + size_t dtype_size; + + /* No support for non-commutative operations */ + if(!ompi_op_is_commute(op)) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle reduce with this operation. Fall back on another component\n")); + goto prev_reduce_intra; + } + + /* Create the subcommunicators */ + if( OMPI_SUCCESS != mca_coll_han_comm_create(comm, han_module) ) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle reduce with this communicator. Drop HAN support in this communicator and fall back on another component\n")); + /* HAN cannot work with this communicator so fallback on all modules */ + HAN_LOAD_FALLBACK_COLLECTIVES(han_module, comm); + return comm->c_coll->coll_reduce(sbuf, rbuf, count, dtype, op, root, + comm, comm->c_coll->coll_reduce_module); + } + + /* Topo must be initialized to know rank distribution which then is used to + * determine if han can be used */ + mca_coll_han_topo_init(comm, han_module, 2); + if (han_module->are_ppn_imbalanced) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle reduce with this communicator (imbalanced). Drop HAN support in this communicator and fall back on another component\n")); + /* Put back the fallback collective support and call it once. All + * future calls will then be automatically redirected. + */ + HAN_LOAD_FALLBACK_COLLECTIVE(han_module, comm, reduce); + return comm->c_coll->coll_reduce(sbuf, rbuf, count, dtype, op, root, + comm, comm->c_coll->coll_reduce_module); + } + + ompi_datatype_get_extent(dtype, &lb, &extent); + w_rank = ompi_comm_rank(comm); + ompi_datatype_type_size(dtype, &dtype_size); + + ompi_communicator_t *low_comm; + ompi_communicator_t *up_comm; + + /* use MCA parameters for now */ + low_comm = han_module->cached_low_comms[mca_coll_han_component.han_reduce_low_module]; + up_comm = han_module->cached_up_comms[mca_coll_han_component.han_reduce_up_module]; + COLL_BASE_COMPUTED_SEGCOUNT(mca_coll_han_component.han_reduce_segsize, dtype_size, + seg_count); + + int num_segments = (count + seg_count - 1) / seg_count; + OPAL_OUTPUT_VERBOSE((20, mca_coll_han_component.han_output, + "In HAN seg_count %d count %d num_seg %d\n", + seg_count, count, num_segments)); + + int *vranks = han_module->cached_vranks; + int low_rank = ompi_comm_rank(low_comm); + int low_size = ompi_comm_size(low_comm); + int up_rank = ompi_comm_rank(up_comm); + + int root_low_rank; + int root_up_rank; + mca_coll_han_get_ranks(vranks, root, low_size, &root_low_rank, &root_up_rank); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d]: root_low_rank %d root_up_rank %d\n", w_rank, root_low_rank, + root_up_rank)); + + void *tmp_rbuf = rbuf; + void *tmp_rbuf_to_free = NULL; + if (low_rank == root_low_rank && root_up_rank != up_rank) { + /* allocate 2 segments on node leaders that are not the global root */ + tmp_rbuf = malloc(2*extent*seg_count); + tmp_rbuf_to_free = tmp_rbuf; + } + + /* Create t0 tasks for the first segment */ + mca_coll_task_t *t0 = OBJ_NEW(mca_coll_task_t); + /* Setup up t0 task arguments */ + mca_coll_han_reduce_args_t *t = malloc(sizeof(mca_coll_han_reduce_args_t)); + mca_coll_han_set_reduce_args(t, t0, (char *) sbuf, (char *) tmp_rbuf, seg_count, dtype, + op, root_up_rank, root_low_rank, up_comm, low_comm, + num_segments, 0, w_rank, count - (num_segments - 1) * seg_count, + low_rank != root_low_rank, (NULL != tmp_rbuf_to_free)); + /* Init the first task */ + init_task(t0, mca_coll_han_reduce_t0_task, (void *) t); + issue_task(t0); + + /* Create t1 task */ + mca_coll_task_t *t1 = OBJ_NEW(mca_coll_task_t); + /* Setup up t1 task arguments */ + t->cur_task = t1; + /* Init the t1 task */ + init_task(t1, mca_coll_han_reduce_t1_task, (void *) t); + issue_task(t1); + + while (t->cur_seg <= t->num_segments - 2) { + /* Create t_next_seg task */ + mca_coll_task_t *t_next_seg = OBJ_NEW(mca_coll_task_t); + /* Setup up t_next_seg task arguments */ + t->cur_task = t_next_seg; + t->sbuf = (char *) t->sbuf + extent * t->seg_count; + if (up_rank == root_up_rank) { + t->rbuf = (char *) t->rbuf + extent * t->seg_count; + } + t->cur_seg = t->cur_seg + 1; + /* Init the t_next_seg task */ + init_task(t_next_seg, mca_coll_han_reduce_t1_task, (void *) t); + issue_task(t_next_seg); + } + + free(t); + free(tmp_rbuf_to_free); + + return OMPI_SUCCESS; + + prev_reduce_intra: + return han_module->previous_reduce(sbuf, rbuf, count, dtype, op, root, + comm, + han_module->previous_reduce_module); +} + +/* t0 task: issue and wait for the low level reduce of segment 0 */ +int mca_coll_han_reduce_t0_task(void *task_args) +{ + mca_coll_han_reduce_args_t *t = (mca_coll_han_reduce_args_t *) task_args; + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, "[%d]: in t0 %d\n", t->w_rank, + t->cur_seg)); + OBJ_RELEASE(t->cur_task); + ptrdiff_t extent, lb; + ompi_datatype_get_extent(t->dtype, &lb, &extent); + t->low_comm->c_coll->coll_reduce((char *) t->sbuf, (char *) t->rbuf, t->seg_count, t->dtype, + t->op, t->root_low_rank, t->low_comm, + t->low_comm->c_coll->coll_reduce_module); + return OMPI_SUCCESS; +} + +/* t1 task */ +int mca_coll_han_reduce_t1_task(void *task_args) { + mca_coll_han_reduce_args_t *t = (mca_coll_han_reduce_args_t *) task_args; + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, "[%d]: in t1 %d\n", t->w_rank, + t->cur_seg)); + OBJ_RELEASE(t->cur_task); + ptrdiff_t extent, lb; + int cur_seg = t->cur_seg; + ompi_datatype_get_extent(t->dtype, &lb, &extent); + ompi_request_t *ireduce_req = NULL; + if (!t->noop) { + int tmp_count = t->seg_count; + if (cur_seg == t->num_segments - 1 && t->last_seg_count != t->seg_count) { + tmp_count = t->last_seg_count; + } + int up_rank = ompi_comm_rank(t->up_comm); + /* ur of cur_seg */ + if (up_rank == t->root_up_rank) { + t->up_comm->c_coll->coll_ireduce(MPI_IN_PLACE, (char *) t->rbuf, tmp_count, t->dtype, + t->op, t->root_up_rank, t->up_comm, &ireduce_req, + t->up_comm->c_coll->coll_ireduce_module); + } else { + /* this is a node leader that is not root so alternate between the two allocated segments */ + char *tmp_sbuf = (char*)t->rbuf + (cur_seg % 2)*(extent * t->seg_count); + t->up_comm->c_coll->coll_ireduce(tmp_sbuf, NULL, tmp_count, + t->dtype, t->op, t->root_up_rank, t->up_comm, + &ireduce_req, t->up_comm->c_coll->coll_ireduce_module); + } + } + /* lr of cur_seg+1 */ + int next_seg = cur_seg + 1; + if (next_seg <= t->num_segments - 1) { + int tmp_count = t->seg_count; + char *tmp_rbuf = NULL; + if (next_seg == t->num_segments - 1 && t->last_seg_count != t->seg_count) { + tmp_count = t->last_seg_count; + } + if (t->is_tmp_rbuf) { + tmp_rbuf = (char*)t->rbuf + (next_seg % 2)*(extent * t->seg_count); + } else if (NULL != t->rbuf) { + tmp_rbuf = (char*)t->rbuf + extent * t->seg_count; + } + t->low_comm->c_coll->coll_reduce((char *) t->sbuf + extent * t->seg_count, + (char *) tmp_rbuf, tmp_count, + t->dtype, t->op, t->root_low_rank, t->low_comm, + t->low_comm->c_coll->coll_reduce_module); + + } + if (!t->noop && ireduce_req) { + ompi_request_wait(&ireduce_req, MPI_STATUS_IGNORE); + } + + return OMPI_SUCCESS; +} + +/* In case of non regular situation (imbalanced number of processes per nodes), + * a fallback is made on the next component that provides a reduce in priority order */ +int +mca_coll_han_reduce_intra_simple(const void *sbuf, + void* rbuf, + int count, + struct ompi_datatype_t *dtype, + ompi_op_t *op, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + int w_rank; /* information about the global communicator */ + int root_low_rank, root_up_rank; /* root ranks for both sub-communicators */ + int ret; + int *vranks, low_rank, low_size; + ptrdiff_t rsize, rgap = 0; + void * tmp_buf; + + mca_coll_han_module_t *han_module = (mca_coll_han_module_t *)module; + + /* No support for non-commutative operations */ + if(!ompi_op_is_commute(op)){ + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle reduce with this operation. Fall back on another component\n")); + goto prev_reduce_intra; + } + + /* Create the subcommunicators */ + if( OMPI_SUCCESS != mca_coll_han_comm_create(comm, han_module) ) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle reduce with this communicator. Drop HAN support in this communicator and fall back on another component\n")); + /* HAN cannot work with this communicator so fallback on all collectives */ + HAN_LOAD_FALLBACK_COLLECTIVES(han_module, comm); + return comm->c_coll->coll_reduce(sbuf, rbuf, count, dtype, op, root, + comm, comm->c_coll->coll_reduce_module); + } + + /* Topo must be initialized to know rank distribution which then is used to + * determine if han can be used */ + mca_coll_han_topo_init(comm, han_module, 2); + if (han_module->are_ppn_imbalanced) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle reduce with this communicator (imbalanced). Drop HAN support in this communicator and fall back on another component\n")); + /* Put back the fallback collective support and call it once. All + * future calls will then be automatically redirected. + */ + HAN_LOAD_FALLBACK_COLLECTIVE(han_module, comm, reduce); + return comm->c_coll->coll_reduce(sbuf, rbuf, count, dtype, op, root, + comm, comm->c_coll->coll_reduce_module); + } + + ompi_communicator_t *low_comm = + han_module->cached_low_comms[mca_coll_han_component.han_reduce_low_module]; + ompi_communicator_t *up_comm = + han_module->cached_up_comms[mca_coll_han_component.han_reduce_up_module]; + + /* Get the 'virtual ranks' mapping corresponding to the communicators */ + vranks = han_module->cached_vranks; + w_rank = ompi_comm_rank(comm); + low_rank = ompi_comm_rank(low_comm); + + low_size = ompi_comm_size(low_comm); + /* Get root ranks for low and up comms */ + mca_coll_han_get_ranks(vranks, root, low_size, &root_low_rank, &root_up_rank); + + if (root_low_rank == low_rank && w_rank != root) { + rsize = opal_datatype_span(&dtype->super, (int64_t)count, &rgap); + tmp_buf = malloc(rsize); + if (NULL == tmp_buf) { + return OMPI_ERROR; + } + } else { + /* global root rbuf is valid, local non-root do not need buffers */ + tmp_buf = rbuf; + } + /* No need to handle MPI_IN_PLACE: only the global root may ask for it and + * it is ok to use it for intermediary reduces since it is also a local root*/ + + /* Low_comm reduce */ + ret = low_comm->c_coll->coll_reduce((char *)sbuf, (char *)tmp_buf, + count, dtype, op, root_low_rank, + low_comm, low_comm->c_coll->coll_reduce_module); + if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)){ + if (root_low_rank == low_rank && w_rank != root){ + free(tmp_buf); + } + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/REDUCE: low comm reduce failed. " + "Falling back to another component\n")); + goto prev_reduce_intra; + } + + /* Up_comm reduce */ + if (root_low_rank == low_rank ){ + if(w_rank != root){ + ret = up_comm->c_coll->coll_reduce((char *)tmp_buf, NULL, + count, dtype, op, root_up_rank, + up_comm, up_comm->c_coll->coll_reduce_module); + free(tmp_buf); + } else { + /* Take advantage of any optimisation made for IN_PLACE + * communcations */ + ret = up_comm->c_coll->coll_reduce(MPI_IN_PLACE, (char *)tmp_buf, + count, dtype, op, root_up_rank, + up_comm, up_comm->c_coll->coll_reduce_module); + } + if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)){ + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "HAN/REDUCE: low comm reduce failed.\n")); + return ret; + } + + } + return OMPI_SUCCESS; + + prev_reduce_intra: + return han_module->previous_reduce(sbuf, rbuf, count, dtype, op, root, + comm, han_module->previous_reduce_module); +} + + +/* Find a fallback on reproducible algorithm + * use tuned or basic or if impossible whatever available + */ +int +mca_coll_han_reduce_reproducible_decision(struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + int w_rank = ompi_comm_rank(comm); + mca_coll_han_module_t *han_module = (mca_coll_han_module_t *)module; + + /* populate previous modules_storage*/ + mca_coll_han_get_all_coll_modules(comm, han_module); + + /* try availability of reproducible modules */ + int fallbacks[] = {TUNED, BASIC}; + int fallbacks_len = sizeof(fallbacks) / sizeof(*fallbacks); + int i; + for (i=0; imodules_storage.modules[fallback].module_handler; + if (fallback_module != NULL && fallback_module->coll_reduce != NULL) { + if (0 == w_rank) { + opal_output_verbose(30, mca_coll_han_component.han_output, + "coll:han:reduce_reproducible: " + "fallback on %s\n", + available_components[fallback].component_name); + } + han_module->reproducible_reduce_module = fallback_module; + han_module->reproducible_reduce = fallback_module->coll_reduce; + return OMPI_SUCCESS; + } + } + /* fallback of the fallback */ + if (0 == w_rank) { + opal_output_verbose(5, mca_coll_han_component.han_output, + "coll:han:reduce_reproducible_decision: " + "no reproducible fallback\n"); + } + han_module->reproducible_reduce_module = + han_module->previous_reduce_module; + han_module->reproducible_reduce = han_module->previous_reduce; + return OMPI_SUCCESS; +} + + +/* Fallback on reproducible algorithm */ +int +mca_coll_han_reduce_reproducible(const void *sbuf, + void *rbuf, + int count, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t *)module; + return han_module->reproducible_reduce(sbuf, rbuf, count, dtype, + op, root, comm, + han_module + ->reproducible_reduce_module); +} diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han_scatter.c openmpi-4.1.4/ompi/mca/coll/han/coll_han_scatter.c --- openmpi-4.0.3/ompi/mca/coll/han/coll_han_scatter.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han_scatter.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,406 @@ +/* + * Copyright (c) 2018-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "coll_han.h" +#include "ompi/mca/coll/base/coll_base_functions.h" +#include "ompi/mca/coll/base/coll_tags.h" +#include "ompi/mca/pml/pml.h" +#include "coll_han_trigger.h" + +/* + * @file + * + * This files contains all the hierarchical implementations of scatter + */ + +static int mca_coll_han_scatter_us_task(void *task_args); +static int mca_coll_han_scatter_ls_task(void *task_args); + +/* Only work with regular situation (each node has equal number of processes) */ + +static inline void +mca_coll_han_set_scatter_args(mca_coll_han_scatter_args_t * args, + mca_coll_task_t * cur_task, + void *sbuf, + void *sbuf_inter_free, + void *sbuf_reorder_free, + int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, + int rcount, + struct ompi_datatype_t *rdtype, + int root, + int root_up_rank, + int root_low_rank, + struct ompi_communicator_t *up_comm, + struct ompi_communicator_t *low_comm, + int w_rank, bool noop, ompi_request_t * req) +{ + args->cur_task = cur_task; + args->sbuf = sbuf; + args->sbuf_inter_free = sbuf_inter_free; + args->sbuf_reorder_free = sbuf_reorder_free; + args->scount = scount; + args->sdtype = sdtype; + args->rbuf = rbuf; + args->rcount = rcount; + args->rdtype = rdtype; + args->root = root; + args->root_up_rank = root_up_rank; + args->root_low_rank = root_low_rank; + args->up_comm = up_comm; + args->low_comm = low_comm; + args->w_rank = w_rank; + args->noop = noop; + args->req = req; +} + +/* + * Main function for taskified scatter: + * after data reordring, calls us task, a scatter on up communicator + */ +int +mca_coll_han_scatter_intra(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, int rcount, + struct ompi_datatype_t *rdtype, + int root, + struct ompi_communicator_t *comm, mca_coll_base_module_t * module) +{ + mca_coll_han_module_t *han_module = (mca_coll_han_module_t *) module; + int w_rank, w_size; + w_rank = ompi_comm_rank(comm); + w_size = ompi_comm_size(comm); + + /* Create the subcommunicators */ + if( OMPI_SUCCESS != mca_coll_han_comm_create(comm, han_module) ) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle scatter with this communicator. Fall back on another component\n")); + /* HAN cannot work with this communicator so fallback on all collectives */ + HAN_LOAD_FALLBACK_COLLECTIVES(han_module, comm); + return comm->c_coll->coll_scatter(sbuf, scount, sdtype, rbuf, rcount, rdtype, root, + comm, comm->c_coll->coll_scatter_module); + } + + /* Topo must be initialized to know rank distribution which then is used to + * determine if han can be used */ + int* topo = mca_coll_han_topo_init(comm, han_module, 2); + if (han_module->are_ppn_imbalanced) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle scatter with this communicator (imbalance). Fall back on another component\n")); + /* Put back the fallback collective support and call it once. All + * future calls will then be automatically redirected. + */ + HAN_LOAD_FALLBACK_COLLECTIVE(han_module, comm, scatter); + return comm->c_coll->coll_scatter(sbuf, scount, sdtype, rbuf, rcount, rdtype, root, + comm, comm->c_coll->coll_scatter_module); + } + + ompi_communicator_t *low_comm = + han_module->cached_low_comms[mca_coll_han_component.han_scatter_low_module]; + ompi_communicator_t *up_comm = + han_module->cached_up_comms[mca_coll_han_component.han_scatter_up_module]; + int *vranks = han_module->cached_vranks; + int low_rank = ompi_comm_rank(low_comm); + int low_size = ompi_comm_size(low_comm); + int up_size = ompi_comm_size(up_comm); + + /* Set up request */ + ompi_request_t *temp_request = OBJ_NEW(ompi_request_t); + temp_request->req_state = OMPI_REQUEST_ACTIVE; + temp_request->req_type = OMPI_REQUEST_COLL; + temp_request->req_free = han_request_free; + temp_request->req_status = (ompi_status_public_t){0}; + temp_request->req_complete = REQUEST_PENDING; + + int root_low_rank; + int root_up_rank; + + mca_coll_han_get_ranks(vranks, root, low_size, &root_low_rank, &root_up_rank); + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d]: Han Scatter root %d root_low_rank %d root_up_rank %d\n", w_rank, + root, root_low_rank, root_up_rank)); + + /* Reorder sbuf based on rank. + * Suppose, message is 0 1 2 3 4 5 6 7 + * and the processes are mapped on 2 nodes (the processes on the node 0 is 0 2 4 6 and the processes on the node 1 is 1 3 5 7), + * so the message needs to be reordered to 0 2 4 6 1 3 5 7 + */ + char *reorder_buf = NULL; + char *reorder_sbuf = NULL; + + if (w_rank == root) { + /* If the processes are mapped-by core, no need to reorder */ + if (han_module->is_mapbycore) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d]: Han Scatter is_bycore: ", w_rank)); + reorder_sbuf = (char *) sbuf; + } else { + ptrdiff_t ssize, sgap = 0, sextent; + ompi_datatype_type_extent(sdtype, &sextent); + ssize = opal_datatype_span(&sdtype->super, (int64_t) scount * w_size, &sgap); + reorder_buf = (char *) malloc(ssize); + reorder_sbuf = reorder_buf - sgap; + for (int i = 0; i < up_size; i++) { + for (int j = 0; j < low_size; j++) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d]: Han Scatter copy from %d %d\n", w_rank, + (i * low_size + j) * 2 + 1, + topo[(i * low_size + j) * 2 + 1])); + ompi_datatype_copy_content_same_ddt(sdtype, (ptrdiff_t) scount, + reorder_sbuf + sextent * (i * low_size + + j) * + (ptrdiff_t) scount, + (char *) sbuf + + sextent * + (ptrdiff_t) topo[(i * low_size + j) * 2 + + 1] * (ptrdiff_t) scount); + } + } + } + } + + /* Create us task */ + mca_coll_task_t *us = OBJ_NEW(mca_coll_task_t); + /* Setup us task arguments */ + mca_coll_han_scatter_args_t *us_args = malloc(sizeof(mca_coll_han_scatter_args_t)); + mca_coll_han_set_scatter_args(us_args, us, reorder_sbuf, NULL, reorder_buf, scount, sdtype, + (char *) rbuf, rcount, rdtype, root, root_up_rank, root_low_rank, + up_comm, low_comm, w_rank, low_rank != root_low_rank, + temp_request); + /* Init us task */ + init_task(us, mca_coll_han_scatter_us_task, (void *) (us_args)); + /* Issure us task */ + issue_task(us); + + ompi_request_wait(&temp_request, MPI_STATUS_IGNORE); + return OMPI_SUCCESS; + +} + +/* us: upper level (intra-node) scatter task */ +int mca_coll_han_scatter_us_task(void *task_args) +{ + mca_coll_han_scatter_args_t *t = (mca_coll_han_scatter_args_t *) task_args; + + if (t->noop) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, "[%d] Han Scatter: us noop\n", + t->w_rank)); + } else { + size_t count; + ompi_datatype_t *dtype; + if (t->w_rank == t->root) { + dtype = t->sdtype; + count = t->scount; + } else { + dtype = t->rdtype; + count = t->rcount; + } + int low_size = ompi_comm_size(t->low_comm); + ptrdiff_t rsize, rgap = 0; + rsize = opal_datatype_span(&dtype->super, (int64_t) count * low_size, &rgap); + char *tmp_buf = (char *) malloc(rsize); + char *tmp_rbuf = tmp_buf - rgap; + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d] Han Scatter: us scatter\n", t->w_rank)); + /* Inter node scatter */ + t->up_comm->c_coll->coll_scatter((char *) t->sbuf, t->scount * low_size, t->sdtype, + tmp_rbuf, count * low_size, dtype, t->root_up_rank, + t->up_comm, t->up_comm->c_coll->coll_scatter_module); + t->sbuf = tmp_rbuf; + t->sbuf_inter_free = tmp_buf; + } + + if (t->sbuf_reorder_free != NULL && t->root == t->w_rank) { + free(t->sbuf_reorder_free); + t->sbuf_reorder_free = NULL; + } + /* Create ls tasks for the current union segment */ + mca_coll_task_t *ls = t->cur_task; + /* Init ls task */ + init_task(ls, mca_coll_han_scatter_ls_task, (void *) t); + /* Issure ls task */ + issue_task(ls); + + return OMPI_SUCCESS; +} + +/* ls: lower level (shared memory or intra-node) scatter task */ +int mca_coll_han_scatter_ls_task(void *task_args) +{ + mca_coll_han_scatter_args_t *t = (mca_coll_han_scatter_args_t *) task_args; + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, "[%d] Han Scatter: ls\n", + t->w_rank)); + OBJ_RELEASE(t->cur_task); + + t->low_comm->c_coll->coll_scatter((char *) t->sbuf, t->scount, t->sdtype, (char *) t->rbuf, + t->rcount, t->rdtype, t->root_low_rank, t->low_comm, + t->low_comm->c_coll->coll_scatter_module); + + if (t->sbuf_inter_free != NULL && t->noop != true) { + free(t->sbuf_inter_free); + t->sbuf_inter_free = NULL; + } + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, "[%d] Han Scatter: ls finish\n", + t->w_rank)); + ompi_request_t *temp_req = t->req; + free(t); + ompi_request_complete(temp_req, 1); + return OMPI_SUCCESS; +} + + +int +mca_coll_han_scatter_intra_simple(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void *rbuf, int rcount, + struct ompi_datatype_t *rdtype, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t * module) +{ + int w_rank, w_size; + struct ompi_datatype_t * dtype; + int count; + + w_rank = ompi_comm_rank(comm); + w_size = ompi_comm_size(comm); + + mca_coll_han_module_t *han_module = (mca_coll_han_module_t *) module; + /* create the subcommunicators */ + if( OMPI_SUCCESS != mca_coll_han_comm_create_new(comm, han_module) ) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle allgather within this communicator." + " Fall back on another component\n")); + /* HAN cannot work with this communicator so fallback on all collectives */ + HAN_LOAD_FALLBACK_COLLECTIVES(han_module, comm); + return comm->c_coll->coll_scatter(sbuf, scount, sdtype, rbuf, rcount, rdtype, root, + comm, han_module->previous_scatter_module); + } + /* Topo must be initialized to know rank distribution which then is used to + * determine if han can be used */ + int *topo = mca_coll_han_topo_init(comm, han_module, 2); + if (han_module->are_ppn_imbalanced){ + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "han cannot handle scatter with this communicator. It needs to fall back on another component\n")); + HAN_LOAD_FALLBACK_COLLECTIVES(han_module, comm); + return comm->c_coll->coll_scatter(sbuf, scount, sdtype, rbuf, rcount, rdtype, root, + comm, han_module->previous_scatter_module); + } + ompi_communicator_t *low_comm = han_module->sub_comm[INTRA_NODE]; + ompi_communicator_t *up_comm = han_module->sub_comm[INTER_NODE]; + + /* Get the 'virtual ranks' mapping corresponding to the communicators */ + int *vranks = han_module->cached_vranks; + /* information about sub-communicators */ + int low_rank = ompi_comm_rank(low_comm); + int low_size = ompi_comm_size(low_comm); + /* Get root ranks for low and up comms */ + int root_low_rank, root_up_rank; /* root ranks for both sub-communicators */ + mca_coll_han_get_ranks(vranks, root, low_size, &root_low_rank, &root_up_rank); + + if (w_rank == root) { + dtype = sdtype; + count = scount; + } else { + dtype = rdtype; + count = rcount; + } + + /* allocate buffer to store unordered result on root + * if the processes are mapped-by core, no need to reorder: + * distribution of ranks on core first and node next, + * in a increasing order for both patterns */ + char *reorder_buf = NULL; // allocated memory + size_t block_size; + + ompi_datatype_type_size(dtype, &block_size); + block_size *= count; + + if (w_rank == root) { + int is_contiguous = ompi_datatype_is_contiguous_memory_layout(dtype, count); + + if (han_module->is_mapbycore && is_contiguous) { + /* The copy of the data is avoided */ + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d]: Han scatter: no need to reorder: ", w_rank)); + reorder_buf = (char *)sbuf; + } else { + /* Data must be copied, let's be efficient packing it */ + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, + "[%d]: Han scatter: needs reordering or compacting: ", w_rank)); + + reorder_buf = malloc(block_size * w_size); + if ( NULL == reorder_buf){ + return OMPI_ERROR; + } + + /** Reorder and packing: + * Suppose, the message is 0 1 2 3 4 5 6 7 but the processes are + * mapped on 2 nodes, for example |0 2 4 6| |1 3 5 7|. The messages to + * leaders must be 0 2 4 6 and 1 3 5 7. + * So the upper scatter must send 0 2 4 6 1 3 5 7. + * In general, the topo[i*topolevel +1] must be taken. + */ + ptrdiff_t extent, block_extent; + ompi_datatype_type_extent(dtype, &extent); + block_extent = extent * (ptrdiff_t)count; + + for(int i = 0 ; i < w_size ; ++i){ + ompi_datatype_sndrcv((char*)sbuf + block_extent*topo[2*i+1], count, dtype, + reorder_buf + block_size*i, block_size, MPI_BYTE); + } + dtype = MPI_BYTE; + count = block_size; + } + } + + /* allocate the intermediary buffer + * to scatter from leaders on the low sub communicators */ + char *tmp_buf = NULL; // allocated memory + if (low_rank == root_low_rank) { + tmp_buf = (char *) malloc(block_size * low_size); + + /* 1. up scatter (internode) between node leaders */ + up_comm->c_coll->coll_scatter((char*) reorder_buf, + count * low_size, + dtype, + (char *)tmp_buf, + block_size * low_size, + MPI_BYTE, + root_up_rank, + up_comm, + up_comm->c_coll->coll_scatter_module); + if(reorder_buf != sbuf){ + free(reorder_buf); + reorder_buf = NULL; + } + } + + /* 2. low scatter on nodes leaders */ + low_comm->c_coll->coll_scatter((char *)tmp_buf, + block_size, + MPI_BYTE, + (char*)rbuf, + rcount, + rdtype, + root_low_rank, + low_comm, + low_comm->c_coll->coll_scatter_module); + + if (low_rank == root_low_rank) { + free(tmp_buf); + tmp_buf = NULL; + } + + return OMPI_SUCCESS; + +} diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han_subcomms.c openmpi-4.1.4/ompi/mca/coll/han/coll_han_subcomms.c --- openmpi-4.0.3/ompi/mca/coll/han/coll_han_subcomms.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han_subcomms.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,333 @@ +/* + * Copyright (c) 2018-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Bull S.A.S. All rights reserved. + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ +/** + * @file + * + * Warning: this is not for the faint of heart -- don't even bother + * reading this source code if you don't have a strong understanding + * of nested data structures and pointer math (remember that + * associativity and order of C operations is *critical* in terms of + * pointer math!). + */ + +#include "ompi_config.h" + +#include "mpi.h" +#include "coll_han.h" +#include "coll_han_dynamic.h" + +#define HAN_SUBCOM_SAVE_COLLECTIVE(FALLBACKS, COMM, HANM, COLL) \ + do { \ + (FALLBACKS).COLL.COLL = (COMM)->c_coll->coll_ ## COLL; \ + (FALLBACKS).COLL.module = (COMM)->c_coll->coll_ ## COLL ## _module; \ + (COMM)->c_coll->coll_ ## COLL = (HANM)->fallback.COLL.COLL; \ + (COMM)->c_coll->coll_ ## COLL ## _module = (HANM)->fallback.COLL.module; \ + } while(0) + +#define HAN_SUBCOM_LOAD_COLLECTIVE(FALLBACKS, COMM, HANM, COLL) \ + do { \ + (COMM)->c_coll->coll_ ## COLL = (FALLBACKS).COLL.COLL; \ + (COMM)->c_coll->coll_ ## COLL ## _module = (FALLBACKS).COLL.module; \ + } while(0) + +/* + * Routine that creates the local hierarchical sub-communicators + * Called each time a collective is called. + * comm: input communicator of the collective + */ +int mca_coll_han_comm_create_new(struct ompi_communicator_t *comm, + mca_coll_han_module_t *han_module) +{ + int low_rank, low_size, up_rank, w_rank, w_size; + ompi_communicator_t **low_comm = &(han_module->sub_comm[INTRA_NODE]); + ompi_communicator_t **up_comm = &(han_module->sub_comm[INTER_NODE]); + mca_coll_han_collectives_fallback_t fallbacks; + int vrank, *vranks; + opal_info_t comm_info; + + /* The sub communicators have already been created */ + if (han_module->enabled && NULL != han_module->sub_comm[INTRA_NODE] + && NULL != han_module->sub_comm[INTER_NODE] + && NULL != han_module->cached_vranks) { + return OMPI_SUCCESS; + } + + /* + * We cannot use han allreduce and allgather without sub-communicators, + * but we are in the creation of the data structures for the HAN, and + * temporarily need to save back the old collective. + * + * Allgather is used to compute vranks + * Allreduce is used by ompi_comm_split_type in create_intranode_comm_new + * Reduce + Bcast may be called by the allreduce implementation + * Gather + Bcast may be called by the allgather implementation + */ + HAN_SUBCOM_SAVE_COLLECTIVE(fallbacks, comm, han_module, allgatherv); + HAN_SUBCOM_SAVE_COLLECTIVE(fallbacks, comm, han_module, allgather); + HAN_SUBCOM_SAVE_COLLECTIVE(fallbacks, comm, han_module, allreduce); + HAN_SUBCOM_SAVE_COLLECTIVE(fallbacks, comm, han_module, bcast); + HAN_SUBCOM_SAVE_COLLECTIVE(fallbacks, comm, han_module, reduce); + HAN_SUBCOM_SAVE_COLLECTIVE(fallbacks, comm, han_module, gather); + HAN_SUBCOM_SAVE_COLLECTIVE(fallbacks, comm, han_module, scatter); + + /** + * HAN is not yet optimized for a single process per node case, we should + * avoid selecting it for collective communication support in such cases. + * However, in order to decide if this is true, we need to know how many + * local processes are on each node, a condition that cannot be verified + * outside the MPI support (with PRRTE the info will be eventually available, + * but we don't want to delay anything until then). We can achieve the same + * goal by using a reduction over the maximum number of peers per node among + * all participants. + */ + int local_procs = ompi_group_count_local_peers(comm->c_local_group); + comm->c_coll->coll_allreduce(MPI_IN_PLACE, &local_procs, 1, MPI_INT, + MPI_MAX, comm, + comm->c_coll->coll_allreduce_module); + if( local_procs == 1 ) { + /* restore saved collectives */ + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, allgatherv); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, allgather); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, allreduce); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, bcast); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, reduce); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, gather); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, scatter); + han_module->enabled = false; /* entire module set to pass-through from now on */ + return OMPI_ERR_NOT_SUPPORTED; + } + + OBJ_CONSTRUCT(&comm_info, opal_info_t); + + /* Create topological sub-communicators */ + w_rank = ompi_comm_rank(comm); + w_size = ompi_comm_size(comm); + + /* + * This sub-communicator contains the ranks that share my node. + */ + opal_info_set(&comm_info, "ompi_comm_coll_preference", "^han"); + opal_info_set(&comm_info, "ompi_comm_coll_han_topo_level", "INTRA_NODE"); + ompi_comm_split_type(comm, MPI_COMM_TYPE_SHARED, 0, + &comm_info, low_comm); + + /* + * Get my local rank and the local size + */ + low_size = ompi_comm_size(*low_comm); + low_rank = ompi_comm_rank(*low_comm); + + /* + * This sub-communicator contains one process per node: processes with the + * same intra-node rank id share such a sub-communicator + */ + opal_info_set(&comm_info, "ompi_comm_coll_han_topo_level", "INTER_NODE"); + ompi_comm_split_with_info(comm, low_rank, w_rank, &comm_info, up_comm, false); + + up_rank = ompi_comm_rank(*up_comm); + + /* + * Set my virtual rank number. + * my rank # = * + * + + * WARNING: this formula works only if the ranks are perfectly spread over + * the nodes + * TODO: find a better way of doing + */ + vrank = low_size * up_rank + low_rank; + vranks = (int *)malloc(sizeof(int) * w_size); + /* + * gather vrank from each process so every process will know other processes + * vrank + */ + comm->c_coll->coll_allgather(&vrank, + 1, + MPI_INT, + vranks, + 1, + MPI_INT, + comm, + comm->c_coll->coll_allgather_module); + + /* + * Set the cached info + */ + han_module->cached_vranks = vranks; + + /* Reset the saved collectives to point back to HAN */ + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, allgatherv); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, allgather); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, allreduce); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, bcast); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, reduce); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, gather); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, scatter); + + OBJ_DESTRUCT(&comm_info); + return OMPI_SUCCESS; +} + +/* + * Routine that creates the local hierarchical sub-communicators + * Called each time a collective is called. + * comm: input communicator of the collective + */ +int mca_coll_han_comm_create(struct ompi_communicator_t *comm, + mca_coll_han_module_t *han_module) +{ + int low_rank, low_size, up_rank, w_rank, w_size; + mca_coll_han_collectives_fallback_t fallbacks; + ompi_communicator_t **low_comms; + ompi_communicator_t **up_comms; + int vrank, *vranks; + opal_info_t comm_info; + + /* use cached communicators if possible */ + if (han_module->enabled && han_module->cached_low_comms != NULL && + han_module->cached_up_comms != NULL && + han_module->cached_vranks != NULL) { + return OMPI_SUCCESS; + } + + /* + * We cannot use han allreduce and allgather without sub-communicators, + * but we are in the creation of the data structures for the HAN, and + * temporarily need to save back the old collective. + * + * Allgather is used to compute vranks + * Allreduce is used by ompi_comm_split_type in create_intranode_comm_new + * Reduce + Bcast may be called by the allreduce implementation + * Gather + Bcast may be called by the allgather implementation + */ + HAN_SUBCOM_SAVE_COLLECTIVE(fallbacks, comm, han_module, allgatherv); + HAN_SUBCOM_SAVE_COLLECTIVE(fallbacks, comm, han_module, allgather); + HAN_SUBCOM_SAVE_COLLECTIVE(fallbacks, comm, han_module, allreduce); + HAN_SUBCOM_SAVE_COLLECTIVE(fallbacks, comm, han_module, bcast); + HAN_SUBCOM_SAVE_COLLECTIVE(fallbacks, comm, han_module, reduce); + HAN_SUBCOM_SAVE_COLLECTIVE(fallbacks, comm, han_module, gather); + HAN_SUBCOM_SAVE_COLLECTIVE(fallbacks, comm, han_module, scatter); + + /** + * HAN is not yet optimized for a single process per node case, we should + * avoid selecting it for collective communication support in such cases. + * However, in order to decide if this is tru, we need to know how many + * local processes are on each node, a condition that cannot be verified + * outside the MPI support (with PRRTE the info will be eventually available, + * but we don't want to delay anything until then). We can achieve the same + * goal by using a reduction over the maximum number of peers per node among + * all participants. + */ + int local_procs = ompi_group_count_local_peers(comm->c_local_group); + comm->c_coll->coll_allreduce(MPI_IN_PLACE, &local_procs, 1, MPI_INT, + MPI_MAX, comm, + comm->c_coll->coll_allreduce_module); + if( local_procs == 1 ) { + /* restore saved collectives */ + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, allgatherv); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, allgather); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, allreduce); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, bcast); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, reduce); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, gather); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, scatter); + han_module->enabled = false; /* entire module set to pass-through from now on */ + return OMPI_ERR_NOT_SUPPORTED; + } + + /* create communicators if there is no cached communicator */ + w_rank = ompi_comm_rank(comm); + w_size = ompi_comm_size(comm); + low_comms = (struct ompi_communicator_t **)malloc(COLL_HAN_LOW_MODULES * + sizeof(struct ompi_communicator_t *)); + up_comms = (struct ompi_communicator_t **)malloc(COLL_HAN_UP_MODULES * + sizeof(struct ompi_communicator_t *)); + + OBJ_CONSTRUCT(&comm_info, opal_info_t); + + /* + * Upgrade sm module priority to set up low_comms[0] with sm module + * This sub-communicator contains the ranks that share my node. + */ + opal_info_set(&comm_info, "ompi_comm_coll_preference", "tuned,^han"); + ompi_comm_split_type(comm, MPI_COMM_TYPE_SHARED, 0, + &comm_info, &(low_comms[0])); + + /* + * Get my local rank and the local size + */ + low_size = ompi_comm_size(low_comms[0]); + low_rank = ompi_comm_rank(low_comms[0]); + + /* + * Upgrade shared module priority to set up low_comms[1] with shared module + * This sub-communicator contains the ranks that share my node. + */ + opal_info_set(&comm_info, "ompi_comm_coll_preference", "sm,^han"); + ompi_comm_split_type(comm, MPI_COMM_TYPE_SHARED, 0, + &comm_info, &(low_comms[1])); + + /* + * Upgrade libnbc module priority to set up up_comms[0] with libnbc module + * This sub-communicator contains one process per node: processes with the + * same intra-node rank id share such a sub-communicator + */ + opal_info_set(&comm_info, "ompi_comm_coll_preference", "libnbc,^han"); + ompi_comm_split_with_info(comm, low_rank, w_rank, &comm_info, &(up_comms[0]), false); + + up_rank = ompi_comm_rank(up_comms[0]); + + /* + * Upgrade adapt module priority to set up up_comms[0] with adapt module + * This sub-communicator contains one process per node. + */ + opal_info_set(&comm_info, "ompi_comm_coll_preference", "adapt,^han"); + ompi_comm_split_with_info(comm, low_rank, w_rank, &comm_info, &(up_comms[1]), false); + + /* + * Set my virtual rank number. + * my rank # = * + * + + * WARNING: this formula works only if the ranks are perfectly spread over + * the nodes + * TODO: find a better way of doing + */ + vrank = low_size * up_rank + low_rank; + vranks = (int *)malloc(sizeof(int) * w_size); + /* + * gather vrank from each process so every process will know other processes + * vrank + */ + comm->c_coll->coll_allgather(&vrank, 1, MPI_INT, vranks, 1, MPI_INT, comm, + comm->c_coll->coll_allgather_module); + + /* + * Set the cached info + */ + han_module->cached_low_comms = low_comms; + han_module->cached_up_comms = up_comms; + han_module->cached_vranks = vranks; + + /* Reset the saved collectives to point back to HAN */ + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, allgatherv); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, allgather); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, allreduce); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, bcast); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, reduce); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, gather); + HAN_SUBCOM_LOAD_COLLECTIVE(fallbacks, comm, han_module, scatter); + + OBJ_DESTRUCT(&comm_info); + return OMPI_SUCCESS; +} + + diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han_topo.c openmpi-4.1.4/ompi/mca/coll/han/coll_han_topo.c --- openmpi-4.0.3/ompi/mca/coll/han/coll_han_topo.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han_topo.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,202 @@ +/* + * Copyright (c) 2018-2021 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020-2021 Bull S.A.S. All rights reserved. + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ +/** + * @file + * + * This file provides information about current run rank mapping in the shape + * of a integer array where each rank will provides a set of contiguous integer : + * its rank and its location at the different topological levels (from the + * highest to the lowest). + * At the end, the order for these data chunks uses the topological level as keys: + * the ranks are sorted first by the top level, then by the next level, ... etc. + * + * Warning: this is not for the faint of heart -- don't even bother + * reading this source code if you don't have a strong understanding + * of nested data structures and pointer math (remember that + * associativity and order of C operations is *critical* in terms of + * pointer math!). + */ + +#include "ompi_config.h" + +#ifdef HAVE_UNISTD_H +#include +#endif /* HAVE_UNISTD_H */ + +#ifdef HAVE_STDLIB_H +#include +#endif /* HAVE_STDLIB_H */ + + +#include "mpi.h" +#include "coll_han.h" + + +#if OPAL_ENABLE_DEBUG +static void +mca_coll_han_topo_print(int *topo, + struct ompi_communicator_t *comm, + int num_topo_level) +{ + int rank = ompi_comm_rank(comm); + int size = ompi_comm_size(comm); + + if (rank == 0) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, "[%d]: Han topo: ", rank)); + for( int i = 0; i < size*num_topo_level; i++ ) { + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, "%d ", topo[i])); + } + OPAL_OUTPUT_VERBOSE((30, mca_coll_han_component.han_output, "\n")); + } +} +#endif /* OPAL_ENABLE_DEBUG */ + +/** + * Topology initialization phase + * Called each time a collective that needs buffer reordering is called + * + * @param num_topo_level (IN) Number of the topological levels + */ +int* +mca_coll_han_topo_init(struct ompi_communicator_t *comm, + mca_coll_han_module_t *han_module, + int num_topo_level) +{ + if ( NULL != han_module->cached_topo ) { + return han_module->cached_topo; + } + + ompi_communicator_t *up_comm, *low_comm; + ompi_request_t *request = MPI_REQUEST_NULL; + int *my_low_rank_map = NULL; + int *ranks_map = NULL; + + int size = ompi_comm_size(comm); + + if (NULL != han_module->cached_up_comms) { + up_comm = han_module->cached_up_comms[0]; + low_comm = han_module->cached_low_comms[0]; + } else { + up_comm = han_module->sub_comm[INTER_NODE]; + low_comm = han_module->sub_comm[INTRA_NODE]; + } + assert(up_comm != NULL && low_comm != NULL); + + int low_rank = ompi_comm_rank(low_comm); + int low_size = ompi_comm_size(low_comm); + + int *topo = (int *)malloc(sizeof(int) * size * num_topo_level); + int is_imbalanced = 1; + int ranks_non_consecutive = 0; + + /* node leaders translate the node-local ranks to global ranks and check whether they are placed consecutively */ + if (0 == low_rank) { + my_low_rank_map = malloc(sizeof(int)*low_size); + for (int i = 0; i < low_size; ++i) { + topo[i] = i; + } + ompi_group_translate_ranks(low_comm->c_local_group, low_size, topo, + comm->c_local_group, my_low_rank_map); + /* check if ranks are consecutive */ + int rank = my_low_rank_map[0] + 1; + for (int i = 1; i < low_size; ++i, ++rank) { + if (my_low_rank_map[i] != rank) { + ranks_non_consecutive = 1; + break; + } + } + + int reduce_vals[] = {ranks_non_consecutive, low_size, -low_size}; + + up_comm->c_coll->coll_allreduce(MPI_IN_PLACE, &reduce_vals, 3, + MPI_INT, MPI_MAX, up_comm, + up_comm->c_coll->coll_allreduce_module); + + /* is the distribution of processes balanced per node? */ + is_imbalanced = (reduce_vals[1] == -reduce_vals[2]) ? 0 : 1; + ranks_non_consecutive = reduce_vals[0]; + + if ( ranks_non_consecutive && !is_imbalanced ) { + /* kick off up_comm allgather to collect non-consecutive rank information at node leaders */ + ranks_map = malloc(sizeof(int)*size); + up_comm->c_coll->coll_iallgather(my_low_rank_map, low_size, MPI_INT, + ranks_map, low_size, MPI_INT, up_comm, &request, + up_comm->c_coll->coll_iallgather_module); + } + } + + + /* broadcast balanced and consecutive properties from node leaders to remaining ranks */ + int bcast_vals[] = {is_imbalanced, ranks_non_consecutive}; + low_comm->c_coll->coll_bcast(bcast_vals, 2, MPI_INT, 0, + low_comm, low_comm->c_coll->coll_bcast_module); + is_imbalanced = bcast_vals[0]; + ranks_non_consecutive = bcast_vals[1]; + + /* error out if the rank distribution is not balanced */ + if (is_imbalanced) { + assert(MPI_REQUEST_NULL == request); + han_module->are_ppn_imbalanced = true; + free(topo); + if( NULL != my_low_rank_map ) free(my_low_rank_map); + if( NULL != ranks_map ) free(ranks_map); + return NULL; + } + + han_module->are_ppn_imbalanced = false; + + if (!ranks_non_consecutive) { + /* fast-path: all ranks are consecutive and balanced so fill topology locally */ + for (int i = 0; i < size; ++i) { + topo[2*i] = (i/low_size); // node leader is node ID + topo[2*i+1] = i; + } + han_module->is_mapbycore = true; + } else { + han_module->is_mapbycore = false; + /* + * Slow path: gather global-to-node-local rank mappings at node leaders + * + * The topology will contain a mapping from global consecutive positions + * to ranks in the communicator. + * + * ex: 4 ranks executing on 2 nodes, mapped by node + * ranks 0 and 2 on hid0 + * ranks 1 and 3 on hid1 + * On entry the topo array looks like + * hid0 0 hid1 1 hid0 2 hid1 3 + * After the sort: + * hid0 0 hid0 2 hid1 1 hid1 3 + */ + if (0 == low_rank) { + ompi_request_wait(&request, MPI_STATUS_IGNORE); + /* fill topology */ + for (int i = 0; i < size; ++i) { + topo[2*i] = ranks_map[(i/low_size)*low_size]; // node leader is node ID + topo[2*i+1] = ranks_map[i]; + } + free(ranks_map); + } + } + + /* broadcast topology from node leaders to remaining ranks */ + low_comm->c_coll->coll_bcast(topo, num_topo_level*size, MPI_INT, 0, + low_comm, low_comm->c_coll->coll_bcast_module); + free(my_low_rank_map); + han_module->cached_topo = topo; +#if OPAL_ENABLE_DEBUG + mca_coll_han_topo_print(topo, comm, num_topo_level); +#endif /* OPAL_ENABLE_DEBUG */ + + return topo; +} diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han_trigger.c openmpi-4.1.4/ompi/mca/coll/han/coll_han_trigger.c --- openmpi-4.0.3/ompi/mca/coll/han/coll_han_trigger.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han_trigger.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2018-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "coll_han_trigger.h" + +static void mca_coll_task_constructor(mca_coll_task_t * t) +{ + t->func_ptr = NULL; + t->func_args = NULL; +} + +static void mca_coll_task_destructor(mca_coll_task_t * t) +{ + t->func_ptr = NULL; + t->func_args = NULL; +} + +OBJ_CLASS_INSTANCE(mca_coll_task_t, opal_object_t, mca_coll_task_constructor, + mca_coll_task_destructor); diff -Nru openmpi-4.0.3/ompi/mca/coll/han/coll_han_trigger.h openmpi-4.1.4/ompi/mca/coll/han/coll_han_trigger.h --- openmpi-4.0.3/ompi/mca/coll/han/coll_han_trigger.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/coll_han_trigger.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2018-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Bull S.A.S. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +/* + * @file + * + * This file defines the API for tasks: a collective operation may be + * splitted in tasks to balance compute load on all the resources. + * This solution provide some noise resiliency. + */ + +#ifndef MCA_COLL_HAN_TRIGGER_EXPORT_H +#define MCA_COLL_HAN_TRIGGER_EXPORT_H + +#include "ompi/communicator/communicator.h" +#include "ompi/op/op.h" +#include "ompi/datatype/ompi_datatype.h" + + +typedef int (*task_func_ptr) (void *); + +struct mca_coll_task_s { + opal_object_t super; + task_func_ptr func_ptr; + void *func_args; +}; + +typedef struct mca_coll_task_s mca_coll_task_t; + +OBJ_CLASS_DECLARATION(mca_coll_task_t); + +/* Init task */ +static inline int +init_task(mca_coll_task_t * t, task_func_ptr func_ptr, void *func_args) +{ + OBJ_CONSTRUCT(t, mca_coll_task_t); + t->func_ptr = func_ptr; + t->func_args = func_args; + return OMPI_SUCCESS; +} + +/* Issue the task */ +static inline int +issue_task(mca_coll_task_t * t) +{ + return t->func_ptr(t->func_args); +} + +#endif /* MCA_COLL_HAN_TRIGGER_EXPORT_H */ diff -Nru openmpi-4.0.3/ompi/mca/coll/han/Makefile.am openmpi-4.1.4/ompi/mca/coll/han/Makefile.am --- openmpi-4.0.3/ompi/mca/coll/han/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,55 @@ +# +# Copyright (c) 2018-2020 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +sources = \ +coll_han.h \ +coll_han_trigger.h \ +coll_han_dynamic.h \ +coll_han_dynamic_file.h \ +coll_han_barrier.c \ +coll_han_bcast.c \ +coll_han_reduce.c \ +coll_han_scatter.c \ +coll_han_gather.c \ +coll_han_allreduce.c \ +coll_han_allgather.c \ +coll_han_component.c \ +coll_han_module.c \ +coll_han_trigger.c \ +coll_han_dynamic.c \ +coll_han_dynamic_file.c \ +coll_han_topo.c \ +coll_han_subcomms.c + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). + +component_noinst = +component_install = +if MCA_BUILD_ompi_coll_han_DSO +component_install += mca_coll_han.la +else +component_noinst += libmca_coll_han.la +endif + +# See ompi/mca/btl/sm/Makefile.am for an explanation of +# libmca_common_sm.la. + +mcacomponentdir = $(ompilibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_coll_han_la_SOURCES = $(sources) +mca_coll_han_la_LDFLAGS = -module -avoid-version +mca_coll_han_la_LIBADD = + +noinst_LTLIBRARIES = $(component_noinst) +libmca_coll_han_la_SOURCES =$(sources) +libmca_coll_han_la_LDFLAGS = -module -avoid-version diff -Nru openmpi-4.0.3/ompi/mca/coll/han/Makefile.in openmpi-4.1.4/ompi/mca/coll/han/Makefile.in --- openmpi-4.0.3/ompi/mca/coll/han/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/han/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,2140 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# +# Copyright (c) 2018-2020 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +@MCA_BUILD_ompi_coll_han_DSO_TRUE@am__append_1 = mca_coll_han.la +@MCA_BUILD_ompi_coll_han_DSO_FALSE@am__append_2 = libmca_coll_han.la +subdir = ompi/mca/coll/han +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/c_weak_symbols.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ + $(top_srcdir)/config/ompi_check_libfca.m4 \ + $(top_srcdir)/config/ompi_check_libhcoll.m4 \ + $(top_srcdir)/config/ompi_check_lustre.m4 \ + $(top_srcdir)/config/ompi_check_mxm.m4 \ + $(top_srcdir)/config/ompi_check_psm.m4 \ + $(top_srcdir)/config/ompi_check_psm2.m4 \ + $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ + $(top_srcdir)/config/ompi_check_ucx.m4 \ + $(top_srcdir)/config/ompi_config_files.m4 \ + $(top_srcdir)/config/ompi_configure_options.m4 \ + $(top_srcdir)/config/ompi_contrib.m4 \ + $(top_srcdir)/config/ompi_cxx_find_exception_flags.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_parameters.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_repository.m4 \ + $(top_srcdir)/config/ompi_cxx_have_exceptions.m4 \ + $(top_srcdir)/config/ompi_endpoint_tag.m4 \ + $(top_srcdir)/config/ompi_ext.m4 \ + $(top_srcdir)/config/ompi_find_mpi_aint_count_offset.m4 \ + $(top_srcdir)/config/ompi_fortran_check.m4 \ + $(top_srcdir)/config/ompi_fortran_check_abstract.m4 \ + $(top_srcdir)/config/ompi_fortran_check_asynchronous.m4 \ + $(top_srcdir)/config/ompi_fortran_check_bind_c.m4 \ + $(top_srcdir)/config/ompi_fortran_check_c_funloc.m4 \ + $(top_srcdir)/config/ompi_fortran_check_f08_assumed_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_ignore_tkr.m4 \ + $(top_srcdir)/config/ompi_fortran_check_interface.m4 \ + $(top_srcdir)/config/ompi_fortran_check_iso_fortran_env.m4 \ + $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ + $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ + $(top_srcdir)/config/ompi_fortran_check_private.m4 \ + $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ + $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ + $(top_srcdir)/config/ompi_fortran_check_real16_c_equiv.m4 \ + $(top_srcdir)/config/ompi_fortran_check_storage_size.m4 \ + $(top_srcdir)/config/ompi_fortran_check_type.m4 \ + $(top_srcdir)/config/ompi_fortran_check_use_only.m4 \ + $(top_srcdir)/config/ompi_fortran_find_ext_symbol_convention.m4 \ + $(top_srcdir)/config/ompi_fortran_find_module_include_flag.m4 \ + $(top_srcdir)/config/ompi_fortran_get_alignment.m4 \ + $(top_srcdir)/config/ompi_fortran_get_handle_max.m4 \ + $(top_srcdir)/config/ompi_fortran_get_kind_value.m4 \ + $(top_srcdir)/config/ompi_fortran_get_sizeof.m4 \ + $(top_srcdir)/config/ompi_fortran_get_value_true.m4 \ + $(top_srcdir)/config/ompi_interix.m4 \ + $(top_srcdir)/config/ompi_setup_contrib.m4 \ + $(top_srcdir)/config/ompi_setup_cxx.m4 \ + $(top_srcdir)/config/ompi_setup_fc.m4 \ + $(top_srcdir)/config/ompi_setup_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_ext.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_fortran.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_profiling.m4 \ + $(top_srcdir)/config/opal_case_sensitive_fs_setup.m4 \ + $(top_srcdir)/config/opal_check_alps.m4 \ + $(top_srcdir)/config/opal_check_attributes.m4 \ + $(top_srcdir)/config/opal_check_broken_qsort.m4 \ + $(top_srcdir)/config/opal_check_cma.m4 \ + $(top_srcdir)/config/opal_check_compiler_version.m4 \ + $(top_srcdir)/config/opal_check_compiler_works.m4 \ + $(top_srcdir)/config/opal_check_cray_pmi.m4 \ + $(top_srcdir)/config/opal_check_cuda.m4 \ + $(top_srcdir)/config/opal_check_icc.m4 \ + $(top_srcdir)/config/opal_check_ident.m4 \ + $(top_srcdir)/config/opal_check_knem.m4 \ + $(top_srcdir)/config/opal_check_libnl.m4 \ + $(top_srcdir)/config/opal_check_offsetof.m4 \ + $(top_srcdir)/config/opal_check_ofi.m4 \ + $(top_srcdir)/config/opal_check_openfabrics.m4 \ + $(top_srcdir)/config/opal_check_os_flavors.m4 \ + $(top_srcdir)/config/opal_check_package.m4 \ + $(top_srcdir)/config/opal_check_pmi.m4 \ + $(top_srcdir)/config/opal_check_portals4.m4 \ + $(top_srcdir)/config/opal_check_ps.m4 \ + $(top_srcdir)/config/opal_check_pthread_pids.m4 \ + $(top_srcdir)/config/opal_check_singularity.m4 \ + $(top_srcdir)/config/opal_check_ugni.m4 \ + $(top_srcdir)/config/opal_check_vendor.m4 \ + $(top_srcdir)/config/opal_check_verbs.m4 \ + $(top_srcdir)/config/opal_check_visibility.m4 \ + $(top_srcdir)/config/opal_check_withdir.m4 \ + $(top_srcdir)/config/opal_check_xpmem.m4 \ + $(top_srcdir)/config/opal_config_asm.m4 \ + $(top_srcdir)/config/opal_config_files.m4 \ + $(top_srcdir)/config/opal_config_pthreads.m4 \ + $(top_srcdir)/config/opal_config_subdir.m4 \ + $(top_srcdir)/config/opal_config_subdir_args.m4 \ + $(top_srcdir)/config/opal_config_threads.m4 \ + $(top_srcdir)/config/opal_configure_options.m4 \ + $(top_srcdir)/config/opal_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/opal_find_type.m4 \ + $(top_srcdir)/config/opal_functions.m4 \ + $(top_srcdir)/config/opal_lang_link_with_c.m4 \ + $(top_srcdir)/config/opal_load_platform.m4 \ + $(top_srcdir)/config/opal_mca.m4 \ + $(top_srcdir)/config/opal_save_version.m4 \ + $(top_srcdir)/config/opal_search_libs.m4 \ + $(top_srcdir)/config/opal_set_lib_prefix.m4 \ + $(top_srcdir)/config/opal_set_mca_prefix.m4 \ + $(top_srcdir)/config/opal_setup_cc.m4 \ + $(top_srcdir)/config/opal_setup_cli.m4 \ + $(top_srcdir)/config/opal_setup_cxx.m4 \ + $(top_srcdir)/config/opal_setup_ft.m4 \ + $(top_srcdir)/config/opal_setup_wrappers.m4 \ + $(top_srcdir)/config/opal_setup_zlib.m4 \ + $(top_srcdir)/config/opal_strip_optflags.m4 \ + $(top_srcdir)/config/opal_summary.m4 \ + $(top_srcdir)/config/opal_try_assemble.m4 \ + $(top_srcdir)/config/orte_check_lsf.m4 \ + $(top_srcdir)/config/orte_check_moab.m4 \ + $(top_srcdir)/config/orte_check_sge.m4 \ + $(top_srcdir)/config/orte_check_slurm.m4 \ + $(top_srcdir)/config/orte_check_tm.m4 \ + $(top_srcdir)/config/orte_config_files.m4 \ + $(top_srcdir)/config/orte_configure_options.m4 \ + $(top_srcdir)/config/orte_setup_debugger_flags.m4 \ + $(top_srcdir)/config/oshmem_config_files.m4 \ + $(top_srcdir)/config/oshmem_configure_options.m4 \ + $(top_srcdir)/config/oshmem_setup_profiling.m4 \ + $(top_srcdir)/config/pkg.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/opal/mca/backtrace/configure.m4 \ + $(top_srcdir)/opal/mca/dl/configure.m4 \ + $(top_srcdir)/opal/mca/event/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/configure.m4 \ + $(top_srcdir)/opal/mca/memcpy/configure.m4 \ + $(top_srcdir)/opal/mca/memory/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/configure.m4 \ + $(top_srcdir)/opal/mca/timer/configure.m4 \ + $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/common/sm/configure.m4 \ + $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs_usnic/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ + $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ + $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ + $(top_srcdir)/opal/mca/btl/smcuda/configure.m4 \ + $(top_srcdir)/opal/mca/btl/tcp/configure.m4 \ + $(top_srcdir)/opal/mca/btl/uct/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ugni/configure.m4 \ + $(top_srcdir)/opal/mca/btl/usnic/configure.m4 \ + $(top_srcdir)/opal/mca/btl/vader/configure.m4 \ + $(top_srcdir)/opal/mca/crs/self/configure.m4 \ + $(top_srcdir)/opal/mca/dl/dlopen/configure.m4 \ + $(top_srcdir)/opal/mca/dl/libltdl/configure.m4 \ + $(top_srcdir)/opal/mca/event/external/configure.m4 \ + $(top_srcdir)/opal/mca/event/libevent2022/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/external/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_pkg.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_attributes.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_visibility.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_vendor.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_components.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_internal.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/netloc.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/linux_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/posix_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/solaris_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/config/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/env/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/valgrind/configure.m4 \ + $(top_srcdir)/opal/mca/memory/malloc_solaris/configure.m4 \ + $(top_srcdir)/opal/mca/memory/patcher/configure.m4 \ + $(top_srcdir)/opal/mca/mpool/memkind/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/linux/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/overwrite/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/cray/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext1x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext2x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/flux/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/pmix3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s1/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s2/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/linux/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/test/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/gpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/rgpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/udreg/configure.m4 \ + $(top_srcdir)/opal/mca/reachable/netlink/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/mmap/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/posix/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/sysv/configure.m4 \ + $(top_srcdir)/opal/mca/timer/altix/configure.m4 \ + $(top_srcdir)/opal/mca/timer/darwin/configure.m4 \ + $(top_srcdir)/opal/mca/timer/linux/configure.m4 \ + $(top_srcdir)/opal/mca/timer/solaris/configure.m4 \ + $(top_srcdir)/orte/mca/common/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ess/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ess/tm/configure.m4 \ + $(top_srcdir)/orte/mca/odls/alps/configure.m4 \ + $(top_srcdir)/orte/mca/odls/default/configure.m4 \ + $(top_srcdir)/orte/mca/odls/pspawn/configure.m4 \ + $(top_srcdir)/orte/mca/oob/alps/configure.m4 \ + $(top_srcdir)/orte/mca/oob/tcp/configure.m4 \ + $(top_srcdir)/orte/mca/plm/alps/configure.m4 \ + $(top_srcdir)/orte/mca/plm/isolated/configure.m4 \ + $(top_srcdir)/orte/mca/plm/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/plm/rsh/configure.m4 \ + $(top_srcdir)/orte/mca/plm/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/plm/tm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ras/gridengine/configure.m4 \ + $(top_srcdir)/orte/mca/ras/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/snapc/full/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/central/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/stage/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/configure.m4 \ + $(top_srcdir)/ompi/mca/fcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/configure.m4 \ + $(top_srcdir)/ompi/mca/hook/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/configure.m4 \ + $(top_srcdir)/ompi/mca/common/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/common/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/bml/r2/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/cuda/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/fca/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ + $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ + $(top_srcdir)/ompi/mca/io/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/io/romio321/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/ofi/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/rdma/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/crcpw/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ob1/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/v/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/yalla/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/orte/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/pmix/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/sm/configure.m4 \ + $(top_srcdir)/ompi/mca/topo/treematch/configure.m4 \ + $(top_srcdir)/oshmem/mca/memheap/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/sysv/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/verbs/configure.m4 \ + $(top_srcdir)/ompi/mpiext/affinity/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cr/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cuda/configure.m4 \ + $(top_srcdir)/ompi/mpiext/pcollreq/configure.m4 \ + $(top_srcdir)/ompi/contrib/libompitrace/configure.m4 \ + $(top_srcdir)/config/opal_get_version.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/opal/include/opal_config.h \ + $(top_builddir)/ompi/include/mpi.h \ + $(top_builddir)/oshmem/include/shmem.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen/config.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen/config.h \ + $(top_builddir)/ompi/mpiext/cuda/c/mpiext_cuda_c.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(mcacomponentdir)" +LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) +libmca_coll_han_la_LIBADD = +am__objects_1 = coll_han_barrier.lo coll_han_bcast.lo \ + coll_han_reduce.lo coll_han_scatter.lo coll_han_gather.lo \ + coll_han_allreduce.lo coll_han_allgather.lo \ + coll_han_component.lo coll_han_module.lo coll_han_trigger.lo \ + coll_han_dynamic.lo coll_han_dynamic_file.lo coll_han_topo.lo \ + coll_han_subcomms.lo +am_libmca_coll_han_la_OBJECTS = $(am__objects_1) +libmca_coll_han_la_OBJECTS = $(am_libmca_coll_han_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libmca_coll_han_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libmca_coll_han_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_ompi_coll_han_DSO_FALSE@am_libmca_coll_han_la_rpath = +mca_coll_han_la_DEPENDENCIES = +am_mca_coll_han_la_OBJECTS = $(am__objects_1) +mca_coll_han_la_OBJECTS = $(am_mca_coll_han_la_OBJECTS) +mca_coll_han_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(mca_coll_han_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +@MCA_BUILD_ompi_coll_han_DSO_TRUE@am_mca_coll_han_la_rpath = -rpath \ +@MCA_BUILD_ompi_coll_han_DSO_TRUE@ $(mcacomponentdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/opal/include -I$(top_builddir)/ompi/include -I$(top_builddir)/oshmem/include -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen -I$(top_builddir)/ompi/mpiext/cuda/c +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libmca_coll_han_la_SOURCES) $(mca_coll_han_la_SOURCES) +DIST_SOURCES = $(libmca_coll_han_la_SOURCES) \ + $(mca_coll_han_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/config/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMCA_PARAM_SETS_DIR = @AMCA_PARAM_SETS_DIR@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BASH = @BASH@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAGS_WITHOUT_OPTFLAGS = @CFLAGS_WITHOUT_OPTFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CRAY_ALPSLLI_CFLAGS = @CRAY_ALPSLLI_CFLAGS@ +CRAY_ALPSLLI_LIBS = @CRAY_ALPSLLI_LIBS@ +CRAY_ALPSLLI_STATIC_LIBS = @CRAY_ALPSLLI_STATIC_LIBS@ +CRAY_ALPSUTIL_CFLAGS = @CRAY_ALPSUTIL_CFLAGS@ +CRAY_ALPSUTIL_LIBS = @CRAY_ALPSUTIL_LIBS@ +CRAY_ALPSUTIL_STATIC_LIBS = @CRAY_ALPSUTIL_STATIC_LIBS@ +CRAY_ALPS_CFLAGS = @CRAY_ALPS_CFLAGS@ +CRAY_ALPS_LIBS = @CRAY_ALPS_LIBS@ +CRAY_ALPS_STATIC_LIBS = @CRAY_ALPS_STATIC_LIBS@ +CRAY_PMI_CFLAGS = @CRAY_PMI_CFLAGS@ +CRAY_PMI_LIBS = @CRAY_PMI_LIBS@ +CRAY_PMI_STATIC_LIBS = @CRAY_PMI_STATIC_LIBS@ +CRAY_UDREG_CFLAGS = @CRAY_UDREG_CFLAGS@ +CRAY_UDREG_LIBS = @CRAY_UDREG_LIBS@ +CRAY_UGNI_CFLAGS = @CRAY_UGNI_CFLAGS@ +CRAY_UGNI_LIBS = @CRAY_UGNI_LIBS@ +CRAY_WLM_DETECT_CFLAGS = @CRAY_WLM_DETECT_CFLAGS@ +CRAY_WLM_DETECT_LIBS = @CRAY_WLM_DETECT_LIBS@ +CRAY_WLM_DETECT_STATIC_LIBS = @CRAY_WLM_DETECT_STATIC_LIBS@ +CRAY_XPMEM_CFLAGS = @CRAY_XPMEM_CFLAGS@ +CRAY_XPMEM_LIBS = @CRAY_XPMEM_LIBS@ +CRAY_XPMEM_STATIC_LIBS = @CRAY_XPMEM_STATIC_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXCPPFLAGS = @CXXCPPFLAGS@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUGGER_CFLAGS = @DEBUGGER_CFLAGS@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FC = @FC@ +FCFLAGS = @FCFLAGS@ +FCFLAGS_f = @FCFLAGS_f@ +FCFLAGS_f90 = @FCFLAGS_f90@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLUX_PMI_CFLAGS = @FLUX_PMI_CFLAGS@ +FLUX_PMI_LIBS = @FLUX_PMI_LIBS@ +GREP = @GREP@ +HWLOC_CFLAGS = @HWLOC_CFLAGS@ +HWLOC_CPPFLAGS = @HWLOC_CPPFLAGS@ +HWLOC_CUDA_LIBS = @HWLOC_CUDA_LIBS@ +HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@ +HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@ +HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@ +HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@ +HWLOC_GL_LIBS = @HWLOC_GL_LIBS@ +HWLOC_HAVE_LIBXML2 = @HWLOC_HAVE_LIBXML2@ +HWLOC_HAVE_NVML = @HWLOC_HAVE_NVML@ +HWLOC_HAVE_OPENCL = @HWLOC_HAVE_OPENCL@ +HWLOC_LDFLAGS = @HWLOC_LDFLAGS@ +HWLOC_LIBS = @HWLOC_LIBS@ +HWLOC_LIBS_PRIVATE = @HWLOC_LIBS_PRIVATE@ +HWLOC_LIBXML2_CFLAGS = @HWLOC_LIBXML2_CFLAGS@ +HWLOC_LIBXML2_LIBS = @HWLOC_LIBXML2_LIBS@ +HWLOC_MS_LIB = @HWLOC_MS_LIB@ +HWLOC_MS_LIB_ARCH = @HWLOC_MS_LIB_ARCH@ +HWLOC_NVML_LIBS = @HWLOC_NVML_LIBS@ +HWLOC_OPENCL_CFLAGS = @HWLOC_OPENCL_CFLAGS@ +HWLOC_OPENCL_LDFLAGS = @HWLOC_OPENCL_LDFLAGS@ +HWLOC_OPENCL_LIBS = @HWLOC_OPENCL_LIBS@ +HWLOC_PCIACCESS_CFLAGS = @HWLOC_PCIACCESS_CFLAGS@ +HWLOC_PCIACCESS_LIBS = @HWLOC_PCIACCESS_LIBS@ +HWLOC_PLUGINS_DIR = @HWLOC_PLUGINS_DIR@ +HWLOC_PLUGINS_PATH = @HWLOC_PLUGINS_PATH@ +HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@ +HWLOC_REQUIRES = @HWLOC_REQUIRES@ +HWLOC_VERSION = @HWLOC_VERSION@ +HWLOC_X11_CPPFLAGS = @HWLOC_X11_CPPFLAGS@ +HWLOC_X11_LIBS = @HWLOC_X11_LIBS@ +HWLOC_top_builddir = @HWLOC_top_builddir@ +HWLOC_top_srcdir = @HWLOC_top_srcdir@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JAR = @JAR@ +JAVAC = @JAVAC@ +JAVADOC = @JAVADOC@ +JAVAH = @JAVAH@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ +MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ +MCA_ompi_FRAMEWORKS_SUBDIRS = @MCA_ompi_FRAMEWORKS_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_ompi_FRAMEWORK_LIBS = @MCA_ompi_FRAMEWORK_LIBS@ +MCA_ompi_bml_ALL_COMPONENTS = @MCA_ompi_bml_ALL_COMPONENTS@ +MCA_ompi_bml_ALL_SUBDIRS = @MCA_ompi_bml_ALL_SUBDIRS@ +MCA_ompi_bml_DSO_COMPONENTS = @MCA_ompi_bml_DSO_COMPONENTS@ +MCA_ompi_bml_DSO_SUBDIRS = @MCA_ompi_bml_DSO_SUBDIRS@ +MCA_ompi_bml_STATIC_COMPONENTS = @MCA_ompi_bml_STATIC_COMPONENTS@ +MCA_ompi_bml_STATIC_LTLIBS = @MCA_ompi_bml_STATIC_LTLIBS@ +MCA_ompi_bml_STATIC_SUBDIRS = @MCA_ompi_bml_STATIC_SUBDIRS@ +MCA_ompi_coll_ALL_COMPONENTS = @MCA_ompi_coll_ALL_COMPONENTS@ +MCA_ompi_coll_ALL_SUBDIRS = @MCA_ompi_coll_ALL_SUBDIRS@ +MCA_ompi_coll_DSO_COMPONENTS = @MCA_ompi_coll_DSO_COMPONENTS@ +MCA_ompi_coll_DSO_SUBDIRS = @MCA_ompi_coll_DSO_SUBDIRS@ +MCA_ompi_coll_STATIC_COMPONENTS = @MCA_ompi_coll_STATIC_COMPONENTS@ +MCA_ompi_coll_STATIC_LTLIBS = @MCA_ompi_coll_STATIC_LTLIBS@ +MCA_ompi_coll_STATIC_SUBDIRS = @MCA_ompi_coll_STATIC_SUBDIRS@ +MCA_ompi_common_ALL_COMPONENTS = @MCA_ompi_common_ALL_COMPONENTS@ +MCA_ompi_common_ALL_SUBDIRS = @MCA_ompi_common_ALL_SUBDIRS@ +MCA_ompi_common_DSO_COMPONENTS = @MCA_ompi_common_DSO_COMPONENTS@ +MCA_ompi_common_DSO_SUBDIRS = @MCA_ompi_common_DSO_SUBDIRS@ +MCA_ompi_common_STATIC_COMPONENTS = @MCA_ompi_common_STATIC_COMPONENTS@ +MCA_ompi_common_STATIC_LTLIBS = @MCA_ompi_common_STATIC_LTLIBS@ +MCA_ompi_common_STATIC_SUBDIRS = @MCA_ompi_common_STATIC_SUBDIRS@ +MCA_ompi_crcp_ALL_COMPONENTS = @MCA_ompi_crcp_ALL_COMPONENTS@ +MCA_ompi_crcp_ALL_SUBDIRS = @MCA_ompi_crcp_ALL_SUBDIRS@ +MCA_ompi_crcp_DSO_COMPONENTS = @MCA_ompi_crcp_DSO_COMPONENTS@ +MCA_ompi_crcp_DSO_SUBDIRS = @MCA_ompi_crcp_DSO_SUBDIRS@ +MCA_ompi_crcp_STATIC_COMPONENTS = @MCA_ompi_crcp_STATIC_COMPONENTS@ +MCA_ompi_crcp_STATIC_LTLIBS = @MCA_ompi_crcp_STATIC_LTLIBS@ +MCA_ompi_crcp_STATIC_SUBDIRS = @MCA_ompi_crcp_STATIC_SUBDIRS@ +MCA_ompi_fbtl_ALL_COMPONENTS = @MCA_ompi_fbtl_ALL_COMPONENTS@ +MCA_ompi_fbtl_ALL_SUBDIRS = @MCA_ompi_fbtl_ALL_SUBDIRS@ +MCA_ompi_fbtl_DSO_COMPONENTS = @MCA_ompi_fbtl_DSO_COMPONENTS@ +MCA_ompi_fbtl_DSO_SUBDIRS = @MCA_ompi_fbtl_DSO_SUBDIRS@ +MCA_ompi_fbtl_STATIC_COMPONENTS = @MCA_ompi_fbtl_STATIC_COMPONENTS@ +MCA_ompi_fbtl_STATIC_LTLIBS = @MCA_ompi_fbtl_STATIC_LTLIBS@ +MCA_ompi_fbtl_STATIC_SUBDIRS = @MCA_ompi_fbtl_STATIC_SUBDIRS@ +MCA_ompi_fcoll_ALL_COMPONENTS = @MCA_ompi_fcoll_ALL_COMPONENTS@ +MCA_ompi_fcoll_ALL_SUBDIRS = @MCA_ompi_fcoll_ALL_SUBDIRS@ +MCA_ompi_fcoll_DSO_COMPONENTS = @MCA_ompi_fcoll_DSO_COMPONENTS@ +MCA_ompi_fcoll_DSO_SUBDIRS = @MCA_ompi_fcoll_DSO_SUBDIRS@ +MCA_ompi_fcoll_STATIC_COMPONENTS = @MCA_ompi_fcoll_STATIC_COMPONENTS@ +MCA_ompi_fcoll_STATIC_LTLIBS = @MCA_ompi_fcoll_STATIC_LTLIBS@ +MCA_ompi_fcoll_STATIC_SUBDIRS = @MCA_ompi_fcoll_STATIC_SUBDIRS@ +MCA_ompi_fs_ALL_COMPONENTS = @MCA_ompi_fs_ALL_COMPONENTS@ +MCA_ompi_fs_ALL_SUBDIRS = @MCA_ompi_fs_ALL_SUBDIRS@ +MCA_ompi_fs_DSO_COMPONENTS = @MCA_ompi_fs_DSO_COMPONENTS@ +MCA_ompi_fs_DSO_SUBDIRS = @MCA_ompi_fs_DSO_SUBDIRS@ +MCA_ompi_fs_STATIC_COMPONENTS = @MCA_ompi_fs_STATIC_COMPONENTS@ +MCA_ompi_fs_STATIC_LTLIBS = @MCA_ompi_fs_STATIC_LTLIBS@ +MCA_ompi_fs_STATIC_SUBDIRS = @MCA_ompi_fs_STATIC_SUBDIRS@ +MCA_ompi_hook_ALL_COMPONENTS = @MCA_ompi_hook_ALL_COMPONENTS@ +MCA_ompi_hook_ALL_SUBDIRS = @MCA_ompi_hook_ALL_SUBDIRS@ +MCA_ompi_hook_DSO_COMPONENTS = @MCA_ompi_hook_DSO_COMPONENTS@ +MCA_ompi_hook_DSO_SUBDIRS = @MCA_ompi_hook_DSO_SUBDIRS@ +MCA_ompi_hook_STATIC_COMPONENTS = @MCA_ompi_hook_STATIC_COMPONENTS@ +MCA_ompi_hook_STATIC_LTLIBS = @MCA_ompi_hook_STATIC_LTLIBS@ +MCA_ompi_hook_STATIC_SUBDIRS = @MCA_ompi_hook_STATIC_SUBDIRS@ +MCA_ompi_io_ALL_COMPONENTS = @MCA_ompi_io_ALL_COMPONENTS@ +MCA_ompi_io_ALL_SUBDIRS = @MCA_ompi_io_ALL_SUBDIRS@ +MCA_ompi_io_DSO_COMPONENTS = @MCA_ompi_io_DSO_COMPONENTS@ +MCA_ompi_io_DSO_SUBDIRS = @MCA_ompi_io_DSO_SUBDIRS@ +MCA_ompi_io_STATIC_COMPONENTS = @MCA_ompi_io_STATIC_COMPONENTS@ +MCA_ompi_io_STATIC_LTLIBS = @MCA_ompi_io_STATIC_LTLIBS@ +MCA_ompi_io_STATIC_SUBDIRS = @MCA_ompi_io_STATIC_SUBDIRS@ +MCA_ompi_mtl_ALL_COMPONENTS = @MCA_ompi_mtl_ALL_COMPONENTS@ +MCA_ompi_mtl_ALL_SUBDIRS = @MCA_ompi_mtl_ALL_SUBDIRS@ +MCA_ompi_mtl_DIRECT_CALL_HEADER = @MCA_ompi_mtl_DIRECT_CALL_HEADER@ +MCA_ompi_mtl_DSO_COMPONENTS = @MCA_ompi_mtl_DSO_COMPONENTS@ +MCA_ompi_mtl_DSO_SUBDIRS = @MCA_ompi_mtl_DSO_SUBDIRS@ +MCA_ompi_mtl_STATIC_COMPONENTS = @MCA_ompi_mtl_STATIC_COMPONENTS@ +MCA_ompi_mtl_STATIC_LTLIBS = @MCA_ompi_mtl_STATIC_LTLIBS@ +MCA_ompi_mtl_STATIC_SUBDIRS = @MCA_ompi_mtl_STATIC_SUBDIRS@ +MCA_ompi_op_ALL_COMPONENTS = @MCA_ompi_op_ALL_COMPONENTS@ +MCA_ompi_op_ALL_SUBDIRS = @MCA_ompi_op_ALL_SUBDIRS@ +MCA_ompi_op_DSO_COMPONENTS = @MCA_ompi_op_DSO_COMPONENTS@ +MCA_ompi_op_DSO_SUBDIRS = @MCA_ompi_op_DSO_SUBDIRS@ +MCA_ompi_op_STATIC_COMPONENTS = @MCA_ompi_op_STATIC_COMPONENTS@ +MCA_ompi_op_STATIC_LTLIBS = @MCA_ompi_op_STATIC_LTLIBS@ +MCA_ompi_op_STATIC_SUBDIRS = @MCA_ompi_op_STATIC_SUBDIRS@ +MCA_ompi_osc_ALL_COMPONENTS = @MCA_ompi_osc_ALL_COMPONENTS@ +MCA_ompi_osc_ALL_SUBDIRS = @MCA_ompi_osc_ALL_SUBDIRS@ +MCA_ompi_osc_DSO_COMPONENTS = @MCA_ompi_osc_DSO_COMPONENTS@ +MCA_ompi_osc_DSO_SUBDIRS = @MCA_ompi_osc_DSO_SUBDIRS@ +MCA_ompi_osc_STATIC_COMPONENTS = @MCA_ompi_osc_STATIC_COMPONENTS@ +MCA_ompi_osc_STATIC_LTLIBS = @MCA_ompi_osc_STATIC_LTLIBS@ +MCA_ompi_osc_STATIC_SUBDIRS = @MCA_ompi_osc_STATIC_SUBDIRS@ +MCA_ompi_pml_ALL_COMPONENTS = @MCA_ompi_pml_ALL_COMPONENTS@ +MCA_ompi_pml_ALL_SUBDIRS = @MCA_ompi_pml_ALL_SUBDIRS@ +MCA_ompi_pml_DIRECT_CALL_HEADER = @MCA_ompi_pml_DIRECT_CALL_HEADER@ +MCA_ompi_pml_DSO_COMPONENTS = @MCA_ompi_pml_DSO_COMPONENTS@ +MCA_ompi_pml_DSO_SUBDIRS = @MCA_ompi_pml_DSO_SUBDIRS@ +MCA_ompi_pml_STATIC_COMPONENTS = @MCA_ompi_pml_STATIC_COMPONENTS@ +MCA_ompi_pml_STATIC_LTLIBS = @MCA_ompi_pml_STATIC_LTLIBS@ +MCA_ompi_pml_STATIC_SUBDIRS = @MCA_ompi_pml_STATIC_SUBDIRS@ +MCA_ompi_rte_ALL_COMPONENTS = @MCA_ompi_rte_ALL_COMPONENTS@ +MCA_ompi_rte_ALL_SUBDIRS = @MCA_ompi_rte_ALL_SUBDIRS@ +MCA_ompi_rte_DSO_COMPONENTS = @MCA_ompi_rte_DSO_COMPONENTS@ +MCA_ompi_rte_DSO_SUBDIRS = @MCA_ompi_rte_DSO_SUBDIRS@ +MCA_ompi_rte_STATIC_COMPONENTS = @MCA_ompi_rte_STATIC_COMPONENTS@ +MCA_ompi_rte_STATIC_LTLIBS = @MCA_ompi_rte_STATIC_LTLIBS@ +MCA_ompi_rte_STATIC_SUBDIRS = @MCA_ompi_rte_STATIC_SUBDIRS@ +MCA_ompi_sharedfp_ALL_COMPONENTS = @MCA_ompi_sharedfp_ALL_COMPONENTS@ +MCA_ompi_sharedfp_ALL_SUBDIRS = @MCA_ompi_sharedfp_ALL_SUBDIRS@ +MCA_ompi_sharedfp_DSO_COMPONENTS = @MCA_ompi_sharedfp_DSO_COMPONENTS@ +MCA_ompi_sharedfp_DSO_SUBDIRS = @MCA_ompi_sharedfp_DSO_SUBDIRS@ +MCA_ompi_sharedfp_STATIC_COMPONENTS = @MCA_ompi_sharedfp_STATIC_COMPONENTS@ +MCA_ompi_sharedfp_STATIC_LTLIBS = @MCA_ompi_sharedfp_STATIC_LTLIBS@ +MCA_ompi_sharedfp_STATIC_SUBDIRS = @MCA_ompi_sharedfp_STATIC_SUBDIRS@ +MCA_ompi_topo_ALL_COMPONENTS = @MCA_ompi_topo_ALL_COMPONENTS@ +MCA_ompi_topo_ALL_SUBDIRS = @MCA_ompi_topo_ALL_SUBDIRS@ +MCA_ompi_topo_DSO_COMPONENTS = @MCA_ompi_topo_DSO_COMPONENTS@ +MCA_ompi_topo_DSO_SUBDIRS = @MCA_ompi_topo_DSO_SUBDIRS@ +MCA_ompi_topo_STATIC_COMPONENTS = @MCA_ompi_topo_STATIC_COMPONENTS@ +MCA_ompi_topo_STATIC_LTLIBS = @MCA_ompi_topo_STATIC_LTLIBS@ +MCA_ompi_topo_STATIC_SUBDIRS = @MCA_ompi_topo_STATIC_SUBDIRS@ +MCA_ompi_vprotocol_ALL_COMPONENTS = @MCA_ompi_vprotocol_ALL_COMPONENTS@ +MCA_ompi_vprotocol_ALL_SUBDIRS = @MCA_ompi_vprotocol_ALL_SUBDIRS@ +MCA_ompi_vprotocol_DSO_COMPONENTS = @MCA_ompi_vprotocol_DSO_COMPONENTS@ +MCA_ompi_vprotocol_DSO_SUBDIRS = @MCA_ompi_vprotocol_DSO_SUBDIRS@ +MCA_ompi_vprotocol_STATIC_COMPONENTS = @MCA_ompi_vprotocol_STATIC_COMPONENTS@ +MCA_ompi_vprotocol_STATIC_LTLIBS = @MCA_ompi_vprotocol_STATIC_LTLIBS@ +MCA_ompi_vprotocol_STATIC_SUBDIRS = @MCA_ompi_vprotocol_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORKS = @MCA_opal_FRAMEWORKS@ +MCA_opal_FRAMEWORKS_SUBDIRS = @MCA_opal_FRAMEWORKS_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORK_LIBS = @MCA_opal_FRAMEWORK_LIBS@ +MCA_opal_allocator_ALL_COMPONENTS = @MCA_opal_allocator_ALL_COMPONENTS@ +MCA_opal_allocator_ALL_SUBDIRS = @MCA_opal_allocator_ALL_SUBDIRS@ +MCA_opal_allocator_DSO_COMPONENTS = @MCA_opal_allocator_DSO_COMPONENTS@ +MCA_opal_allocator_DSO_SUBDIRS = @MCA_opal_allocator_DSO_SUBDIRS@ +MCA_opal_allocator_STATIC_COMPONENTS = @MCA_opal_allocator_STATIC_COMPONENTS@ +MCA_opal_allocator_STATIC_LTLIBS = @MCA_opal_allocator_STATIC_LTLIBS@ +MCA_opal_allocator_STATIC_SUBDIRS = @MCA_opal_allocator_STATIC_SUBDIRS@ +MCA_opal_backtrace_ALL_COMPONENTS = @MCA_opal_backtrace_ALL_COMPONENTS@ +MCA_opal_backtrace_ALL_SUBDIRS = @MCA_opal_backtrace_ALL_SUBDIRS@ +MCA_opal_backtrace_DSO_COMPONENTS = @MCA_opal_backtrace_DSO_COMPONENTS@ +MCA_opal_backtrace_DSO_SUBDIRS = @MCA_opal_backtrace_DSO_SUBDIRS@ +MCA_opal_backtrace_STATIC_COMPONENTS = @MCA_opal_backtrace_STATIC_COMPONENTS@ +MCA_opal_backtrace_STATIC_LTLIBS = @MCA_opal_backtrace_STATIC_LTLIBS@ +MCA_opal_backtrace_STATIC_SUBDIRS = @MCA_opal_backtrace_STATIC_SUBDIRS@ +MCA_opal_btl_ALL_COMPONENTS = @MCA_opal_btl_ALL_COMPONENTS@ +MCA_opal_btl_ALL_SUBDIRS = @MCA_opal_btl_ALL_SUBDIRS@ +MCA_opal_btl_DSO_COMPONENTS = @MCA_opal_btl_DSO_COMPONENTS@ +MCA_opal_btl_DSO_SUBDIRS = @MCA_opal_btl_DSO_SUBDIRS@ +MCA_opal_btl_STATIC_COMPONENTS = @MCA_opal_btl_STATIC_COMPONENTS@ +MCA_opal_btl_STATIC_LTLIBS = @MCA_opal_btl_STATIC_LTLIBS@ +MCA_opal_btl_STATIC_SUBDIRS = @MCA_opal_btl_STATIC_SUBDIRS@ +MCA_opal_common_ALL_COMPONENTS = @MCA_opal_common_ALL_COMPONENTS@ +MCA_opal_common_ALL_SUBDIRS = @MCA_opal_common_ALL_SUBDIRS@ +MCA_opal_common_DSO_COMPONENTS = @MCA_opal_common_DSO_COMPONENTS@ +MCA_opal_common_DSO_SUBDIRS = @MCA_opal_common_DSO_SUBDIRS@ +MCA_opal_common_STATIC_COMPONENTS = @MCA_opal_common_STATIC_COMPONENTS@ +MCA_opal_common_STATIC_LTLIBS = @MCA_opal_common_STATIC_LTLIBS@ +MCA_opal_common_STATIC_SUBDIRS = @MCA_opal_common_STATIC_SUBDIRS@ +MCA_opal_compress_ALL_COMPONENTS = @MCA_opal_compress_ALL_COMPONENTS@ +MCA_opal_compress_ALL_SUBDIRS = @MCA_opal_compress_ALL_SUBDIRS@ +MCA_opal_compress_DSO_COMPONENTS = @MCA_opal_compress_DSO_COMPONENTS@ +MCA_opal_compress_DSO_SUBDIRS = @MCA_opal_compress_DSO_SUBDIRS@ +MCA_opal_compress_STATIC_COMPONENTS = @MCA_opal_compress_STATIC_COMPONENTS@ +MCA_opal_compress_STATIC_LTLIBS = @MCA_opal_compress_STATIC_LTLIBS@ +MCA_opal_compress_STATIC_SUBDIRS = @MCA_opal_compress_STATIC_SUBDIRS@ +MCA_opal_crs_ALL_COMPONENTS = @MCA_opal_crs_ALL_COMPONENTS@ +MCA_opal_crs_ALL_SUBDIRS = @MCA_opal_crs_ALL_SUBDIRS@ +MCA_opal_crs_DSO_COMPONENTS = @MCA_opal_crs_DSO_COMPONENTS@ +MCA_opal_crs_DSO_SUBDIRS = @MCA_opal_crs_DSO_SUBDIRS@ +MCA_opal_crs_STATIC_COMPONENTS = @MCA_opal_crs_STATIC_COMPONENTS@ +MCA_opal_crs_STATIC_LTLIBS = @MCA_opal_crs_STATIC_LTLIBS@ +MCA_opal_crs_STATIC_SUBDIRS = @MCA_opal_crs_STATIC_SUBDIRS@ +MCA_opal_dl_ALL_COMPONENTS = @MCA_opal_dl_ALL_COMPONENTS@ +MCA_opal_dl_ALL_SUBDIRS = @MCA_opal_dl_ALL_SUBDIRS@ +MCA_opal_dl_DSO_COMPONENTS = @MCA_opal_dl_DSO_COMPONENTS@ +MCA_opal_dl_DSO_SUBDIRS = @MCA_opal_dl_DSO_SUBDIRS@ +MCA_opal_dl_STATIC_COMPONENTS = @MCA_opal_dl_STATIC_COMPONENTS@ +MCA_opal_dl_STATIC_LTLIBS = @MCA_opal_dl_STATIC_LTLIBS@ +MCA_opal_dl_STATIC_SUBDIRS = @MCA_opal_dl_STATIC_SUBDIRS@ +MCA_opal_event_ALL_COMPONENTS = @MCA_opal_event_ALL_COMPONENTS@ +MCA_opal_event_ALL_SUBDIRS = @MCA_opal_event_ALL_SUBDIRS@ +MCA_opal_event_DSO_COMPONENTS = @MCA_opal_event_DSO_COMPONENTS@ +MCA_opal_event_DSO_SUBDIRS = @MCA_opal_event_DSO_SUBDIRS@ +MCA_opal_event_STATIC_COMPONENTS = @MCA_opal_event_STATIC_COMPONENTS@ +MCA_opal_event_STATIC_LTLIBS = @MCA_opal_event_STATIC_LTLIBS@ +MCA_opal_event_STATIC_SUBDIRS = @MCA_opal_event_STATIC_SUBDIRS@ +MCA_opal_hwloc_ALL_COMPONENTS = @MCA_opal_hwloc_ALL_COMPONENTS@ +MCA_opal_hwloc_ALL_SUBDIRS = @MCA_opal_hwloc_ALL_SUBDIRS@ +MCA_opal_hwloc_DSO_COMPONENTS = @MCA_opal_hwloc_DSO_COMPONENTS@ +MCA_opal_hwloc_DSO_SUBDIRS = @MCA_opal_hwloc_DSO_SUBDIRS@ +MCA_opal_hwloc_STATIC_COMPONENTS = @MCA_opal_hwloc_STATIC_COMPONENTS@ +MCA_opal_hwloc_STATIC_LTLIBS = @MCA_opal_hwloc_STATIC_LTLIBS@ +MCA_opal_hwloc_STATIC_SUBDIRS = @MCA_opal_hwloc_STATIC_SUBDIRS@ +MCA_opal_if_ALL_COMPONENTS = @MCA_opal_if_ALL_COMPONENTS@ +MCA_opal_if_ALL_SUBDIRS = @MCA_opal_if_ALL_SUBDIRS@ +MCA_opal_if_DSO_COMPONENTS = @MCA_opal_if_DSO_COMPONENTS@ +MCA_opal_if_DSO_SUBDIRS = @MCA_opal_if_DSO_SUBDIRS@ +MCA_opal_if_STATIC_COMPONENTS = @MCA_opal_if_STATIC_COMPONENTS@ +MCA_opal_if_STATIC_LTLIBS = @MCA_opal_if_STATIC_LTLIBS@ +MCA_opal_if_STATIC_SUBDIRS = @MCA_opal_if_STATIC_SUBDIRS@ +MCA_opal_installdirs_ALL_COMPONENTS = @MCA_opal_installdirs_ALL_COMPONENTS@ +MCA_opal_installdirs_ALL_SUBDIRS = @MCA_opal_installdirs_ALL_SUBDIRS@ +MCA_opal_installdirs_DSO_COMPONENTS = @MCA_opal_installdirs_DSO_COMPONENTS@ +MCA_opal_installdirs_DSO_SUBDIRS = @MCA_opal_installdirs_DSO_SUBDIRS@ +MCA_opal_installdirs_STATIC_COMPONENTS = @MCA_opal_installdirs_STATIC_COMPONENTS@ +MCA_opal_installdirs_STATIC_LTLIBS = @MCA_opal_installdirs_STATIC_LTLIBS@ +MCA_opal_installdirs_STATIC_SUBDIRS = @MCA_opal_installdirs_STATIC_SUBDIRS@ +MCA_opal_memchecker_ALL_COMPONENTS = @MCA_opal_memchecker_ALL_COMPONENTS@ +MCA_opal_memchecker_ALL_SUBDIRS = @MCA_opal_memchecker_ALL_SUBDIRS@ +MCA_opal_memchecker_DSO_COMPONENTS = @MCA_opal_memchecker_DSO_COMPONENTS@ +MCA_opal_memchecker_DSO_SUBDIRS = @MCA_opal_memchecker_DSO_SUBDIRS@ +MCA_opal_memchecker_STATIC_COMPONENTS = @MCA_opal_memchecker_STATIC_COMPONENTS@ +MCA_opal_memchecker_STATIC_LTLIBS = @MCA_opal_memchecker_STATIC_LTLIBS@ +MCA_opal_memchecker_STATIC_SUBDIRS = @MCA_opal_memchecker_STATIC_SUBDIRS@ +MCA_opal_memcpy_ALL_COMPONENTS = @MCA_opal_memcpy_ALL_COMPONENTS@ +MCA_opal_memcpy_ALL_SUBDIRS = @MCA_opal_memcpy_ALL_SUBDIRS@ +MCA_opal_memcpy_DSO_COMPONENTS = @MCA_opal_memcpy_DSO_COMPONENTS@ +MCA_opal_memcpy_DSO_SUBDIRS = @MCA_opal_memcpy_DSO_SUBDIRS@ +MCA_opal_memcpy_STATIC_COMPONENTS = @MCA_opal_memcpy_STATIC_COMPONENTS@ +MCA_opal_memcpy_STATIC_LTLIBS = @MCA_opal_memcpy_STATIC_LTLIBS@ +MCA_opal_memcpy_STATIC_SUBDIRS = @MCA_opal_memcpy_STATIC_SUBDIRS@ +MCA_opal_memory_ALL_COMPONENTS = @MCA_opal_memory_ALL_COMPONENTS@ +MCA_opal_memory_ALL_SUBDIRS = @MCA_opal_memory_ALL_SUBDIRS@ +MCA_opal_memory_DSO_COMPONENTS = @MCA_opal_memory_DSO_COMPONENTS@ +MCA_opal_memory_DSO_SUBDIRS = @MCA_opal_memory_DSO_SUBDIRS@ +MCA_opal_memory_STATIC_COMPONENTS = @MCA_opal_memory_STATIC_COMPONENTS@ +MCA_opal_memory_STATIC_LTLIBS = @MCA_opal_memory_STATIC_LTLIBS@ +MCA_opal_memory_STATIC_SUBDIRS = @MCA_opal_memory_STATIC_SUBDIRS@ +MCA_opal_mpool_ALL_COMPONENTS = @MCA_opal_mpool_ALL_COMPONENTS@ +MCA_opal_mpool_ALL_SUBDIRS = @MCA_opal_mpool_ALL_SUBDIRS@ +MCA_opal_mpool_DSO_COMPONENTS = @MCA_opal_mpool_DSO_COMPONENTS@ +MCA_opal_mpool_DSO_SUBDIRS = @MCA_opal_mpool_DSO_SUBDIRS@ +MCA_opal_mpool_STATIC_COMPONENTS = @MCA_opal_mpool_STATIC_COMPONENTS@ +MCA_opal_mpool_STATIC_LTLIBS = @MCA_opal_mpool_STATIC_LTLIBS@ +MCA_opal_mpool_STATIC_SUBDIRS = @MCA_opal_mpool_STATIC_SUBDIRS@ +MCA_opal_patcher_ALL_COMPONENTS = @MCA_opal_patcher_ALL_COMPONENTS@ +MCA_opal_patcher_ALL_SUBDIRS = @MCA_opal_patcher_ALL_SUBDIRS@ +MCA_opal_patcher_DSO_COMPONENTS = @MCA_opal_patcher_DSO_COMPONENTS@ +MCA_opal_patcher_DSO_SUBDIRS = @MCA_opal_patcher_DSO_SUBDIRS@ +MCA_opal_patcher_STATIC_COMPONENTS = @MCA_opal_patcher_STATIC_COMPONENTS@ +MCA_opal_patcher_STATIC_LTLIBS = @MCA_opal_patcher_STATIC_LTLIBS@ +MCA_opal_patcher_STATIC_SUBDIRS = @MCA_opal_patcher_STATIC_SUBDIRS@ +MCA_opal_pmix_ALL_COMPONENTS = @MCA_opal_pmix_ALL_COMPONENTS@ +MCA_opal_pmix_ALL_SUBDIRS = @MCA_opal_pmix_ALL_SUBDIRS@ +MCA_opal_pmix_DSO_COMPONENTS = @MCA_opal_pmix_DSO_COMPONENTS@ +MCA_opal_pmix_DSO_SUBDIRS = @MCA_opal_pmix_DSO_SUBDIRS@ +MCA_opal_pmix_STATIC_COMPONENTS = @MCA_opal_pmix_STATIC_COMPONENTS@ +MCA_opal_pmix_STATIC_LTLIBS = @MCA_opal_pmix_STATIC_LTLIBS@ +MCA_opal_pmix_STATIC_SUBDIRS = @MCA_opal_pmix_STATIC_SUBDIRS@ +MCA_opal_pstat_ALL_COMPONENTS = @MCA_opal_pstat_ALL_COMPONENTS@ +MCA_opal_pstat_ALL_SUBDIRS = @MCA_opal_pstat_ALL_SUBDIRS@ +MCA_opal_pstat_DSO_COMPONENTS = @MCA_opal_pstat_DSO_COMPONENTS@ +MCA_opal_pstat_DSO_SUBDIRS = @MCA_opal_pstat_DSO_SUBDIRS@ +MCA_opal_pstat_STATIC_COMPONENTS = @MCA_opal_pstat_STATIC_COMPONENTS@ +MCA_opal_pstat_STATIC_LTLIBS = @MCA_opal_pstat_STATIC_LTLIBS@ +MCA_opal_pstat_STATIC_SUBDIRS = @MCA_opal_pstat_STATIC_SUBDIRS@ +MCA_opal_rcache_ALL_COMPONENTS = @MCA_opal_rcache_ALL_COMPONENTS@ +MCA_opal_rcache_ALL_SUBDIRS = @MCA_opal_rcache_ALL_SUBDIRS@ +MCA_opal_rcache_DSO_COMPONENTS = @MCA_opal_rcache_DSO_COMPONENTS@ +MCA_opal_rcache_DSO_SUBDIRS = @MCA_opal_rcache_DSO_SUBDIRS@ +MCA_opal_rcache_STATIC_COMPONENTS = @MCA_opal_rcache_STATIC_COMPONENTS@ +MCA_opal_rcache_STATIC_LTLIBS = @MCA_opal_rcache_STATIC_LTLIBS@ +MCA_opal_rcache_STATIC_SUBDIRS = @MCA_opal_rcache_STATIC_SUBDIRS@ +MCA_opal_reachable_ALL_COMPONENTS = @MCA_opal_reachable_ALL_COMPONENTS@ +MCA_opal_reachable_ALL_SUBDIRS = @MCA_opal_reachable_ALL_SUBDIRS@ +MCA_opal_reachable_DSO_COMPONENTS = @MCA_opal_reachable_DSO_COMPONENTS@ +MCA_opal_reachable_DSO_SUBDIRS = @MCA_opal_reachable_DSO_SUBDIRS@ +MCA_opal_reachable_STATIC_COMPONENTS = @MCA_opal_reachable_STATIC_COMPONENTS@ +MCA_opal_reachable_STATIC_LTLIBS = @MCA_opal_reachable_STATIC_LTLIBS@ +MCA_opal_reachable_STATIC_SUBDIRS = @MCA_opal_reachable_STATIC_SUBDIRS@ +MCA_opal_shmem_ALL_COMPONENTS = @MCA_opal_shmem_ALL_COMPONENTS@ +MCA_opal_shmem_ALL_SUBDIRS = @MCA_opal_shmem_ALL_SUBDIRS@ +MCA_opal_shmem_DSO_COMPONENTS = @MCA_opal_shmem_DSO_COMPONENTS@ +MCA_opal_shmem_DSO_SUBDIRS = @MCA_opal_shmem_DSO_SUBDIRS@ +MCA_opal_shmem_STATIC_COMPONENTS = @MCA_opal_shmem_STATIC_COMPONENTS@ +MCA_opal_shmem_STATIC_LTLIBS = @MCA_opal_shmem_STATIC_LTLIBS@ +MCA_opal_shmem_STATIC_SUBDIRS = @MCA_opal_shmem_STATIC_SUBDIRS@ +MCA_opal_timer_ALL_COMPONENTS = @MCA_opal_timer_ALL_COMPONENTS@ +MCA_opal_timer_ALL_SUBDIRS = @MCA_opal_timer_ALL_SUBDIRS@ +MCA_opal_timer_DSO_COMPONENTS = @MCA_opal_timer_DSO_COMPONENTS@ +MCA_opal_timer_DSO_SUBDIRS = @MCA_opal_timer_DSO_SUBDIRS@ +MCA_opal_timer_STATIC_COMPONENTS = @MCA_opal_timer_STATIC_COMPONENTS@ +MCA_opal_timer_STATIC_LTLIBS = @MCA_opal_timer_STATIC_LTLIBS@ +MCA_opal_timer_STATIC_SUBDIRS = @MCA_opal_timer_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORKS = @MCA_orte_FRAMEWORKS@ +MCA_orte_FRAMEWORKS_SUBDIRS = @MCA_orte_FRAMEWORKS_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORK_LIBS = @MCA_orte_FRAMEWORK_LIBS@ +MCA_orte_common_ALL_COMPONENTS = @MCA_orte_common_ALL_COMPONENTS@ +MCA_orte_common_ALL_SUBDIRS = @MCA_orte_common_ALL_SUBDIRS@ +MCA_orte_common_DSO_COMPONENTS = @MCA_orte_common_DSO_COMPONENTS@ +MCA_orte_common_DSO_SUBDIRS = @MCA_orte_common_DSO_SUBDIRS@ +MCA_orte_common_STATIC_COMPONENTS = @MCA_orte_common_STATIC_COMPONENTS@ +MCA_orte_common_STATIC_LTLIBS = @MCA_orte_common_STATIC_LTLIBS@ +MCA_orte_common_STATIC_SUBDIRS = @MCA_orte_common_STATIC_SUBDIRS@ +MCA_orte_errmgr_ALL_COMPONENTS = @MCA_orte_errmgr_ALL_COMPONENTS@ +MCA_orte_errmgr_ALL_SUBDIRS = @MCA_orte_errmgr_ALL_SUBDIRS@ +MCA_orte_errmgr_DSO_COMPONENTS = @MCA_orte_errmgr_DSO_COMPONENTS@ +MCA_orte_errmgr_DSO_SUBDIRS = @MCA_orte_errmgr_DSO_SUBDIRS@ +MCA_orte_errmgr_STATIC_COMPONENTS = @MCA_orte_errmgr_STATIC_COMPONENTS@ +MCA_orte_errmgr_STATIC_LTLIBS = @MCA_orte_errmgr_STATIC_LTLIBS@ +MCA_orte_errmgr_STATIC_SUBDIRS = @MCA_orte_errmgr_STATIC_SUBDIRS@ +MCA_orte_ess_ALL_COMPONENTS = @MCA_orte_ess_ALL_COMPONENTS@ +MCA_orte_ess_ALL_SUBDIRS = @MCA_orte_ess_ALL_SUBDIRS@ +MCA_orte_ess_DSO_COMPONENTS = @MCA_orte_ess_DSO_COMPONENTS@ +MCA_orte_ess_DSO_SUBDIRS = @MCA_orte_ess_DSO_SUBDIRS@ +MCA_orte_ess_STATIC_COMPONENTS = @MCA_orte_ess_STATIC_COMPONENTS@ +MCA_orte_ess_STATIC_LTLIBS = @MCA_orte_ess_STATIC_LTLIBS@ +MCA_orte_ess_STATIC_SUBDIRS = @MCA_orte_ess_STATIC_SUBDIRS@ +MCA_orte_filem_ALL_COMPONENTS = @MCA_orte_filem_ALL_COMPONENTS@ +MCA_orte_filem_ALL_SUBDIRS = @MCA_orte_filem_ALL_SUBDIRS@ +MCA_orte_filem_DSO_COMPONENTS = @MCA_orte_filem_DSO_COMPONENTS@ +MCA_orte_filem_DSO_SUBDIRS = @MCA_orte_filem_DSO_SUBDIRS@ +MCA_orte_filem_STATIC_COMPONENTS = @MCA_orte_filem_STATIC_COMPONENTS@ +MCA_orte_filem_STATIC_LTLIBS = @MCA_orte_filem_STATIC_LTLIBS@ +MCA_orte_filem_STATIC_SUBDIRS = @MCA_orte_filem_STATIC_SUBDIRS@ +MCA_orte_grpcomm_ALL_COMPONENTS = @MCA_orte_grpcomm_ALL_COMPONENTS@ +MCA_orte_grpcomm_ALL_SUBDIRS = @MCA_orte_grpcomm_ALL_SUBDIRS@ +MCA_orte_grpcomm_DSO_COMPONENTS = @MCA_orte_grpcomm_DSO_COMPONENTS@ +MCA_orte_grpcomm_DSO_SUBDIRS = @MCA_orte_grpcomm_DSO_SUBDIRS@ +MCA_orte_grpcomm_STATIC_COMPONENTS = @MCA_orte_grpcomm_STATIC_COMPONENTS@ +MCA_orte_grpcomm_STATIC_LTLIBS = @MCA_orte_grpcomm_STATIC_LTLIBS@ +MCA_orte_grpcomm_STATIC_SUBDIRS = @MCA_orte_grpcomm_STATIC_SUBDIRS@ +MCA_orte_iof_ALL_COMPONENTS = @MCA_orte_iof_ALL_COMPONENTS@ +MCA_orte_iof_ALL_SUBDIRS = @MCA_orte_iof_ALL_SUBDIRS@ +MCA_orte_iof_DSO_COMPONENTS = @MCA_orte_iof_DSO_COMPONENTS@ +MCA_orte_iof_DSO_SUBDIRS = @MCA_orte_iof_DSO_SUBDIRS@ +MCA_orte_iof_STATIC_COMPONENTS = @MCA_orte_iof_STATIC_COMPONENTS@ +MCA_orte_iof_STATIC_LTLIBS = @MCA_orte_iof_STATIC_LTLIBS@ +MCA_orte_iof_STATIC_SUBDIRS = @MCA_orte_iof_STATIC_SUBDIRS@ +MCA_orte_odls_ALL_COMPONENTS = @MCA_orte_odls_ALL_COMPONENTS@ +MCA_orte_odls_ALL_SUBDIRS = @MCA_orte_odls_ALL_SUBDIRS@ +MCA_orte_odls_DSO_COMPONENTS = @MCA_orte_odls_DSO_COMPONENTS@ +MCA_orte_odls_DSO_SUBDIRS = @MCA_orte_odls_DSO_SUBDIRS@ +MCA_orte_odls_STATIC_COMPONENTS = @MCA_orte_odls_STATIC_COMPONENTS@ +MCA_orte_odls_STATIC_LTLIBS = @MCA_orte_odls_STATIC_LTLIBS@ +MCA_orte_odls_STATIC_SUBDIRS = @MCA_orte_odls_STATIC_SUBDIRS@ +MCA_orte_oob_ALL_COMPONENTS = @MCA_orte_oob_ALL_COMPONENTS@ +MCA_orte_oob_ALL_SUBDIRS = @MCA_orte_oob_ALL_SUBDIRS@ +MCA_orte_oob_DSO_COMPONENTS = @MCA_orte_oob_DSO_COMPONENTS@ +MCA_orte_oob_DSO_SUBDIRS = @MCA_orte_oob_DSO_SUBDIRS@ +MCA_orte_oob_STATIC_COMPONENTS = @MCA_orte_oob_STATIC_COMPONENTS@ +MCA_orte_oob_STATIC_LTLIBS = @MCA_orte_oob_STATIC_LTLIBS@ +MCA_orte_oob_STATIC_SUBDIRS = @MCA_orte_oob_STATIC_SUBDIRS@ +MCA_orte_plm_ALL_COMPONENTS = @MCA_orte_plm_ALL_COMPONENTS@ +MCA_orte_plm_ALL_SUBDIRS = @MCA_orte_plm_ALL_SUBDIRS@ +MCA_orte_plm_DSO_COMPONENTS = @MCA_orte_plm_DSO_COMPONENTS@ +MCA_orte_plm_DSO_SUBDIRS = @MCA_orte_plm_DSO_SUBDIRS@ +MCA_orte_plm_STATIC_COMPONENTS = @MCA_orte_plm_STATIC_COMPONENTS@ +MCA_orte_plm_STATIC_LTLIBS = @MCA_orte_plm_STATIC_LTLIBS@ +MCA_orte_plm_STATIC_SUBDIRS = @MCA_orte_plm_STATIC_SUBDIRS@ +MCA_orte_ras_ALL_COMPONENTS = @MCA_orte_ras_ALL_COMPONENTS@ +MCA_orte_ras_ALL_SUBDIRS = @MCA_orte_ras_ALL_SUBDIRS@ +MCA_orte_ras_DSO_COMPONENTS = @MCA_orte_ras_DSO_COMPONENTS@ +MCA_orte_ras_DSO_SUBDIRS = @MCA_orte_ras_DSO_SUBDIRS@ +MCA_orte_ras_STATIC_COMPONENTS = @MCA_orte_ras_STATIC_COMPONENTS@ +MCA_orte_ras_STATIC_LTLIBS = @MCA_orte_ras_STATIC_LTLIBS@ +MCA_orte_ras_STATIC_SUBDIRS = @MCA_orte_ras_STATIC_SUBDIRS@ +MCA_orte_regx_ALL_COMPONENTS = @MCA_orte_regx_ALL_COMPONENTS@ +MCA_orte_regx_ALL_SUBDIRS = @MCA_orte_regx_ALL_SUBDIRS@ +MCA_orte_regx_DSO_COMPONENTS = @MCA_orte_regx_DSO_COMPONENTS@ +MCA_orte_regx_DSO_SUBDIRS = @MCA_orte_regx_DSO_SUBDIRS@ +MCA_orte_regx_STATIC_COMPONENTS = @MCA_orte_regx_STATIC_COMPONENTS@ +MCA_orte_regx_STATIC_LTLIBS = @MCA_orte_regx_STATIC_LTLIBS@ +MCA_orte_regx_STATIC_SUBDIRS = @MCA_orte_regx_STATIC_SUBDIRS@ +MCA_orte_rmaps_ALL_COMPONENTS = @MCA_orte_rmaps_ALL_COMPONENTS@ +MCA_orte_rmaps_ALL_SUBDIRS = @MCA_orte_rmaps_ALL_SUBDIRS@ +MCA_orte_rmaps_DSO_COMPONENTS = @MCA_orte_rmaps_DSO_COMPONENTS@ +MCA_orte_rmaps_DSO_SUBDIRS = @MCA_orte_rmaps_DSO_SUBDIRS@ +MCA_orte_rmaps_STATIC_COMPONENTS = @MCA_orte_rmaps_STATIC_COMPONENTS@ +MCA_orte_rmaps_STATIC_LTLIBS = @MCA_orte_rmaps_STATIC_LTLIBS@ +MCA_orte_rmaps_STATIC_SUBDIRS = @MCA_orte_rmaps_STATIC_SUBDIRS@ +MCA_orte_rml_ALL_COMPONENTS = @MCA_orte_rml_ALL_COMPONENTS@ +MCA_orte_rml_ALL_SUBDIRS = @MCA_orte_rml_ALL_SUBDIRS@ +MCA_orte_rml_DSO_COMPONENTS = @MCA_orte_rml_DSO_COMPONENTS@ +MCA_orte_rml_DSO_SUBDIRS = @MCA_orte_rml_DSO_SUBDIRS@ +MCA_orte_rml_STATIC_COMPONENTS = @MCA_orte_rml_STATIC_COMPONENTS@ +MCA_orte_rml_STATIC_LTLIBS = @MCA_orte_rml_STATIC_LTLIBS@ +MCA_orte_rml_STATIC_SUBDIRS = @MCA_orte_rml_STATIC_SUBDIRS@ +MCA_orte_routed_ALL_COMPONENTS = @MCA_orte_routed_ALL_COMPONENTS@ +MCA_orte_routed_ALL_SUBDIRS = @MCA_orte_routed_ALL_SUBDIRS@ +MCA_orte_routed_DSO_COMPONENTS = @MCA_orte_routed_DSO_COMPONENTS@ +MCA_orte_routed_DSO_SUBDIRS = @MCA_orte_routed_DSO_SUBDIRS@ +MCA_orte_routed_STATIC_COMPONENTS = @MCA_orte_routed_STATIC_COMPONENTS@ +MCA_orte_routed_STATIC_LTLIBS = @MCA_orte_routed_STATIC_LTLIBS@ +MCA_orte_routed_STATIC_SUBDIRS = @MCA_orte_routed_STATIC_SUBDIRS@ +MCA_orte_rtc_ALL_COMPONENTS = @MCA_orte_rtc_ALL_COMPONENTS@ +MCA_orte_rtc_ALL_SUBDIRS = @MCA_orte_rtc_ALL_SUBDIRS@ +MCA_orte_rtc_DSO_COMPONENTS = @MCA_orte_rtc_DSO_COMPONENTS@ +MCA_orte_rtc_DSO_SUBDIRS = @MCA_orte_rtc_DSO_SUBDIRS@ +MCA_orte_rtc_STATIC_COMPONENTS = @MCA_orte_rtc_STATIC_COMPONENTS@ +MCA_orte_rtc_STATIC_LTLIBS = @MCA_orte_rtc_STATIC_LTLIBS@ +MCA_orte_rtc_STATIC_SUBDIRS = @MCA_orte_rtc_STATIC_SUBDIRS@ +MCA_orte_schizo_ALL_COMPONENTS = @MCA_orte_schizo_ALL_COMPONENTS@ +MCA_orte_schizo_ALL_SUBDIRS = @MCA_orte_schizo_ALL_SUBDIRS@ +MCA_orte_schizo_DSO_COMPONENTS = @MCA_orte_schizo_DSO_COMPONENTS@ +MCA_orte_schizo_DSO_SUBDIRS = @MCA_orte_schizo_DSO_SUBDIRS@ +MCA_orte_schizo_STATIC_COMPONENTS = @MCA_orte_schizo_STATIC_COMPONENTS@ +MCA_orte_schizo_STATIC_LTLIBS = @MCA_orte_schizo_STATIC_LTLIBS@ +MCA_orte_schizo_STATIC_SUBDIRS = @MCA_orte_schizo_STATIC_SUBDIRS@ +MCA_orte_snapc_ALL_COMPONENTS = @MCA_orte_snapc_ALL_COMPONENTS@ +MCA_orte_snapc_ALL_SUBDIRS = @MCA_orte_snapc_ALL_SUBDIRS@ +MCA_orte_snapc_DSO_COMPONENTS = @MCA_orte_snapc_DSO_COMPONENTS@ +MCA_orte_snapc_DSO_SUBDIRS = @MCA_orte_snapc_DSO_SUBDIRS@ +MCA_orte_snapc_STATIC_COMPONENTS = @MCA_orte_snapc_STATIC_COMPONENTS@ +MCA_orte_snapc_STATIC_LTLIBS = @MCA_orte_snapc_STATIC_LTLIBS@ +MCA_orte_snapc_STATIC_SUBDIRS = @MCA_orte_snapc_STATIC_SUBDIRS@ +MCA_orte_sstore_ALL_COMPONENTS = @MCA_orte_sstore_ALL_COMPONENTS@ +MCA_orte_sstore_ALL_SUBDIRS = @MCA_orte_sstore_ALL_SUBDIRS@ +MCA_orte_sstore_DSO_COMPONENTS = @MCA_orte_sstore_DSO_COMPONENTS@ +MCA_orte_sstore_DSO_SUBDIRS = @MCA_orte_sstore_DSO_SUBDIRS@ +MCA_orte_sstore_STATIC_COMPONENTS = @MCA_orte_sstore_STATIC_COMPONENTS@ +MCA_orte_sstore_STATIC_LTLIBS = @MCA_orte_sstore_STATIC_LTLIBS@ +MCA_orte_sstore_STATIC_SUBDIRS = @MCA_orte_sstore_STATIC_SUBDIRS@ +MCA_orte_state_ALL_COMPONENTS = @MCA_orte_state_ALL_COMPONENTS@ +MCA_orte_state_ALL_SUBDIRS = @MCA_orte_state_ALL_SUBDIRS@ +MCA_orte_state_DSO_COMPONENTS = @MCA_orte_state_DSO_COMPONENTS@ +MCA_orte_state_DSO_SUBDIRS = @MCA_orte_state_DSO_SUBDIRS@ +MCA_orte_state_STATIC_COMPONENTS = @MCA_orte_state_STATIC_COMPONENTS@ +MCA_orte_state_STATIC_LTLIBS = @MCA_orte_state_STATIC_LTLIBS@ +MCA_orte_state_STATIC_SUBDIRS = @MCA_orte_state_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORKS = @MCA_oshmem_FRAMEWORKS@ +MCA_oshmem_FRAMEWORKS_SUBDIRS = @MCA_oshmem_FRAMEWORKS_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORK_LIBS = @MCA_oshmem_FRAMEWORK_LIBS@ +MCA_oshmem_atomic_ALL_COMPONENTS = @MCA_oshmem_atomic_ALL_COMPONENTS@ +MCA_oshmem_atomic_ALL_SUBDIRS = @MCA_oshmem_atomic_ALL_SUBDIRS@ +MCA_oshmem_atomic_DSO_COMPONENTS = @MCA_oshmem_atomic_DSO_COMPONENTS@ +MCA_oshmem_atomic_DSO_SUBDIRS = @MCA_oshmem_atomic_DSO_SUBDIRS@ +MCA_oshmem_atomic_STATIC_COMPONENTS = @MCA_oshmem_atomic_STATIC_COMPONENTS@ +MCA_oshmem_atomic_STATIC_LTLIBS = @MCA_oshmem_atomic_STATIC_LTLIBS@ +MCA_oshmem_atomic_STATIC_SUBDIRS = @MCA_oshmem_atomic_STATIC_SUBDIRS@ +MCA_oshmem_memheap_ALL_COMPONENTS = @MCA_oshmem_memheap_ALL_COMPONENTS@ +MCA_oshmem_memheap_ALL_SUBDIRS = @MCA_oshmem_memheap_ALL_SUBDIRS@ +MCA_oshmem_memheap_DIRECT_CALL_HEADER = @MCA_oshmem_memheap_DIRECT_CALL_HEADER@ +MCA_oshmem_memheap_DSO_COMPONENTS = @MCA_oshmem_memheap_DSO_COMPONENTS@ +MCA_oshmem_memheap_DSO_SUBDIRS = @MCA_oshmem_memheap_DSO_SUBDIRS@ +MCA_oshmem_memheap_STATIC_COMPONENTS = @MCA_oshmem_memheap_STATIC_COMPONENTS@ +MCA_oshmem_memheap_STATIC_LTLIBS = @MCA_oshmem_memheap_STATIC_LTLIBS@ +MCA_oshmem_memheap_STATIC_SUBDIRS = @MCA_oshmem_memheap_STATIC_SUBDIRS@ +MCA_oshmem_scoll_ALL_COMPONENTS = @MCA_oshmem_scoll_ALL_COMPONENTS@ +MCA_oshmem_scoll_ALL_SUBDIRS = @MCA_oshmem_scoll_ALL_SUBDIRS@ +MCA_oshmem_scoll_DSO_COMPONENTS = @MCA_oshmem_scoll_DSO_COMPONENTS@ +MCA_oshmem_scoll_DSO_SUBDIRS = @MCA_oshmem_scoll_DSO_SUBDIRS@ +MCA_oshmem_scoll_STATIC_COMPONENTS = @MCA_oshmem_scoll_STATIC_COMPONENTS@ +MCA_oshmem_scoll_STATIC_LTLIBS = @MCA_oshmem_scoll_STATIC_LTLIBS@ +MCA_oshmem_scoll_STATIC_SUBDIRS = @MCA_oshmem_scoll_STATIC_SUBDIRS@ +MCA_oshmem_spml_ALL_COMPONENTS = @MCA_oshmem_spml_ALL_COMPONENTS@ +MCA_oshmem_spml_ALL_SUBDIRS = @MCA_oshmem_spml_ALL_SUBDIRS@ +MCA_oshmem_spml_DIRECT_CALL_HEADER = @MCA_oshmem_spml_DIRECT_CALL_HEADER@ +MCA_oshmem_spml_DSO_COMPONENTS = @MCA_oshmem_spml_DSO_COMPONENTS@ +MCA_oshmem_spml_DSO_SUBDIRS = @MCA_oshmem_spml_DSO_SUBDIRS@ +MCA_oshmem_spml_STATIC_COMPONENTS = @MCA_oshmem_spml_STATIC_COMPONENTS@ +MCA_oshmem_spml_STATIC_LTLIBS = @MCA_oshmem_spml_STATIC_LTLIBS@ +MCA_oshmem_spml_STATIC_SUBDIRS = @MCA_oshmem_spml_STATIC_SUBDIRS@ +MCA_oshmem_sshmem_ALL_COMPONENTS = @MCA_oshmem_sshmem_ALL_COMPONENTS@ +MCA_oshmem_sshmem_ALL_SUBDIRS = @MCA_oshmem_sshmem_ALL_SUBDIRS@ +MCA_oshmem_sshmem_DSO_COMPONENTS = @MCA_oshmem_sshmem_DSO_COMPONENTS@ +MCA_oshmem_sshmem_DSO_SUBDIRS = @MCA_oshmem_sshmem_DSO_SUBDIRS@ +MCA_oshmem_sshmem_STATIC_COMPONENTS = @MCA_oshmem_sshmem_STATIC_COMPONENTS@ +MCA_oshmem_sshmem_STATIC_LTLIBS = @MCA_oshmem_sshmem_STATIC_LTLIBS@ +MCA_oshmem_sshmem_STATIC_SUBDIRS = @MCA_oshmem_sshmem_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +MPIR_UNWIND_CFLAGS = @MPIR_UNWIND_CFLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPI_ALIGNMENT_FORTRAN_CHARACTER = @OMPI_ALIGNMENT_FORTRAN_CHARACTER@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX16 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX16@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX32 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX32@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX4 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX4@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX8 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX8@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION@ +OMPI_ALIGNMENT_FORTRAN_INTEGER = @OMPI_ALIGNMENT_FORTRAN_INTEGER@ +OMPI_ALIGNMENT_FORTRAN_INTEGER1 = @OMPI_ALIGNMENT_FORTRAN_INTEGER1@ +OMPI_ALIGNMENT_FORTRAN_INTEGER16 = @OMPI_ALIGNMENT_FORTRAN_INTEGER16@ +OMPI_ALIGNMENT_FORTRAN_INTEGER2 = @OMPI_ALIGNMENT_FORTRAN_INTEGER2@ +OMPI_ALIGNMENT_FORTRAN_INTEGER4 = @OMPI_ALIGNMENT_FORTRAN_INTEGER4@ +OMPI_ALIGNMENT_FORTRAN_INTEGER8 = @OMPI_ALIGNMENT_FORTRAN_INTEGER8@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL = @OMPI_ALIGNMENT_FORTRAN_LOGICAL@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL1 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL1@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL2 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL2@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL4 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL4@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL8 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL8@ +OMPI_ALIGNMENT_FORTRAN_REAL = @OMPI_ALIGNMENT_FORTRAN_REAL@ +OMPI_ALIGNMENT_FORTRAN_REAL16 = @OMPI_ALIGNMENT_FORTRAN_REAL16@ +OMPI_ALIGNMENT_FORTRAN_REAL2 = @OMPI_ALIGNMENT_FORTRAN_REAL2@ +OMPI_ALIGNMENT_FORTRAN_REAL4 = @OMPI_ALIGNMENT_FORTRAN_REAL4@ +OMPI_ALIGNMENT_FORTRAN_REAL8 = @OMPI_ALIGNMENT_FORTRAN_REAL8@ +OMPI_CONTRIB_DIST_SUBDIRS = @OMPI_CONTRIB_DIST_SUBDIRS@ +OMPI_CONTRIB_SUBDIRS = @OMPI_CONTRIB_SUBDIRS@ +OMPI_CXX_ABSOLUTE = @OMPI_CXX_ABSOLUTE@ +OMPI_ENABLE_GREQUEST_EXTENSIONS = @OMPI_ENABLE_GREQUEST_EXTENSIONS@ +OMPI_ENABLE_MPI1_COMPAT = @OMPI_ENABLE_MPI1_COMPAT@ +OMPI_F08_SUFFIX = @OMPI_F08_SUFFIX@ +OMPI_FC = @OMPI_FC@ +OMPI_FC_ABSOLUTE = @OMPI_FC_ABSOLUTE@ +OMPI_FC_MODULE_FLAG = @OMPI_FC_MODULE_FLAG@ +OMPI_FORTRAN_BUILD_SIZEOF = @OMPI_FORTRAN_BUILD_SIZEOF@ +OMPI_FORTRAN_CAPS = @OMPI_FORTRAN_CAPS@ +OMPI_FORTRAN_CKINDS = @OMPI_FORTRAN_CKINDS@ +OMPI_FORTRAN_DOUBLE_UNDERSCORE = @OMPI_FORTRAN_DOUBLE_UNDERSCORE@ +OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS = @OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS@ +OMPI_FORTRAN_F08_PREDECL = @OMPI_FORTRAN_F08_PREDECL@ +OMPI_FORTRAN_F08_TYPE = @OMPI_FORTRAN_F08_TYPE@ +OMPI_FORTRAN_HAVE_ABSTRACT = @OMPI_FORTRAN_HAVE_ABSTRACT@ +OMPI_FORTRAN_HAVE_ASYNCHRONOUS = @OMPI_FORTRAN_HAVE_ASYNCHRONOUS@ +OMPI_FORTRAN_HAVE_BIND_C = @OMPI_FORTRAN_HAVE_BIND_C@ +OMPI_FORTRAN_HAVE_C_FUNLOC = @OMPI_FORTRAN_HAVE_C_FUNLOC@ +OMPI_FORTRAN_HAVE_INTERFACE = @OMPI_FORTRAN_HAVE_INTERFACE@ +OMPI_FORTRAN_HAVE_ISO_C_BINDING = @OMPI_FORTRAN_HAVE_ISO_C_BINDING@ +OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV = @OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV@ +OMPI_FORTRAN_HAVE_PRIVATE = @OMPI_FORTRAN_HAVE_PRIVATE@ +OMPI_FORTRAN_HAVE_PROCEDURE = @OMPI_FORTRAN_HAVE_PROCEDURE@ +OMPI_FORTRAN_HAVE_STORAGE_SIZE = @OMPI_FORTRAN_HAVE_STORAGE_SIZE@ +OMPI_FORTRAN_HAVE_USE_ONLY = @OMPI_FORTRAN_HAVE_USE_ONLY@ +OMPI_FORTRAN_IGNORE_TKR_PREDECL = @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ +OMPI_FORTRAN_IGNORE_TKR_TYPE = @OMPI_FORTRAN_IGNORE_TKR_TYPE@ +OMPI_FORTRAN_IKINDS = @OMPI_FORTRAN_IKINDS@ +OMPI_FORTRAN_MAX_ARRAY_RANK = @OMPI_FORTRAN_MAX_ARRAY_RANK@ +OMPI_FORTRAN_NEED_WRAPPER_ROUTINES = @OMPI_FORTRAN_NEED_WRAPPER_ROUTINES@ +OMPI_FORTRAN_PLAIN = @OMPI_FORTRAN_PLAIN@ +OMPI_FORTRAN_RKINDS = @OMPI_FORTRAN_RKINDS@ +OMPI_FORTRAN_SINGLE_UNDERSCORE = @OMPI_FORTRAN_SINGLE_UNDERSCORE@ +OMPI_FORTRAN_STATUS_SIZE = @OMPI_FORTRAN_STATUS_SIZE@ +OMPI_FORTRAN_USEMPIF08_LIB = @OMPI_FORTRAN_USEMPIF08_LIB@ +OMPI_FORTRAN_USEMPI_DIR = @OMPI_FORTRAN_USEMPI_DIR@ +OMPI_FORTRAN_USEMPI_LIB = @OMPI_FORTRAN_USEMPI_LIB@ +OMPI_F_SUFFIX = @OMPI_F_SUFFIX@ +OMPI_GREEK_VERSION = @OMPI_GREEK_VERSION@ +OMPI_HAVE_FORTRAN_CHARACTER = @OMPI_HAVE_FORTRAN_CHARACTER@ +OMPI_HAVE_FORTRAN_COMPLEX = @OMPI_HAVE_FORTRAN_COMPLEX@ +OMPI_HAVE_FORTRAN_COMPLEX16 = @OMPI_HAVE_FORTRAN_COMPLEX16@ +OMPI_HAVE_FORTRAN_COMPLEX32 = @OMPI_HAVE_FORTRAN_COMPLEX32@ +OMPI_HAVE_FORTRAN_COMPLEX4 = @OMPI_HAVE_FORTRAN_COMPLEX4@ +OMPI_HAVE_FORTRAN_COMPLEX8 = @OMPI_HAVE_FORTRAN_COMPLEX8@ +OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX = @OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX@ +OMPI_HAVE_FORTRAN_DOUBLE_PRECISION = @OMPI_HAVE_FORTRAN_DOUBLE_PRECISION@ +OMPI_HAVE_FORTRAN_INTEGER = @OMPI_HAVE_FORTRAN_INTEGER@ +OMPI_HAVE_FORTRAN_INTEGER1 = @OMPI_HAVE_FORTRAN_INTEGER1@ +OMPI_HAVE_FORTRAN_INTEGER16 = @OMPI_HAVE_FORTRAN_INTEGER16@ +OMPI_HAVE_FORTRAN_INTEGER2 = @OMPI_HAVE_FORTRAN_INTEGER2@ +OMPI_HAVE_FORTRAN_INTEGER4 = @OMPI_HAVE_FORTRAN_INTEGER4@ +OMPI_HAVE_FORTRAN_INTEGER8 = @OMPI_HAVE_FORTRAN_INTEGER8@ +OMPI_HAVE_FORTRAN_LOGICAL = @OMPI_HAVE_FORTRAN_LOGICAL@ +OMPI_HAVE_FORTRAN_LOGICAL1 = @OMPI_HAVE_FORTRAN_LOGICAL1@ +OMPI_HAVE_FORTRAN_LOGICAL2 = @OMPI_HAVE_FORTRAN_LOGICAL2@ +OMPI_HAVE_FORTRAN_LOGICAL4 = @OMPI_HAVE_FORTRAN_LOGICAL4@ +OMPI_HAVE_FORTRAN_LOGICAL8 = @OMPI_HAVE_FORTRAN_LOGICAL8@ +OMPI_HAVE_FORTRAN_REAL = @OMPI_HAVE_FORTRAN_REAL@ +OMPI_HAVE_FORTRAN_REAL16 = @OMPI_HAVE_FORTRAN_REAL16@ +OMPI_HAVE_FORTRAN_REAL2 = @OMPI_HAVE_FORTRAN_REAL2@ +OMPI_HAVE_FORTRAN_REAL4 = @OMPI_HAVE_FORTRAN_REAL4@ +OMPI_HAVE_FORTRAN_REAL8 = @OMPI_HAVE_FORTRAN_REAL8@ +OMPI_JDK_CPPFLAGS = @OMPI_JDK_CPPFLAGS@ +OMPI_KIND_FORTRAN_CHARACTER = @OMPI_KIND_FORTRAN_CHARACTER@ +OMPI_KIND_FORTRAN_COMPLEX = @OMPI_KIND_FORTRAN_COMPLEX@ +OMPI_KIND_FORTRAN_COMPLEX16 = @OMPI_KIND_FORTRAN_COMPLEX16@ +OMPI_KIND_FORTRAN_COMPLEX32 = @OMPI_KIND_FORTRAN_COMPLEX32@ +OMPI_KIND_FORTRAN_COMPLEX4 = @OMPI_KIND_FORTRAN_COMPLEX4@ +OMPI_KIND_FORTRAN_COMPLEX8 = @OMPI_KIND_FORTRAN_COMPLEX8@ +OMPI_KIND_FORTRAN_DOUBLE_COMPLEX = @OMPI_KIND_FORTRAN_DOUBLE_COMPLEX@ +OMPI_KIND_FORTRAN_DOUBLE_PRECISION = @OMPI_KIND_FORTRAN_DOUBLE_PRECISION@ +OMPI_KIND_FORTRAN_INTEGER = @OMPI_KIND_FORTRAN_INTEGER@ +OMPI_KIND_FORTRAN_INTEGER1 = @OMPI_KIND_FORTRAN_INTEGER1@ +OMPI_KIND_FORTRAN_INTEGER16 = @OMPI_KIND_FORTRAN_INTEGER16@ +OMPI_KIND_FORTRAN_INTEGER2 = @OMPI_KIND_FORTRAN_INTEGER2@ +OMPI_KIND_FORTRAN_INTEGER4 = @OMPI_KIND_FORTRAN_INTEGER4@ +OMPI_KIND_FORTRAN_INTEGER8 = @OMPI_KIND_FORTRAN_INTEGER8@ +OMPI_KIND_FORTRAN_LOGICAL = @OMPI_KIND_FORTRAN_LOGICAL@ +OMPI_KIND_FORTRAN_LOGICAL1 = @OMPI_KIND_FORTRAN_LOGICAL1@ +OMPI_KIND_FORTRAN_LOGICAL2 = @OMPI_KIND_FORTRAN_LOGICAL2@ +OMPI_KIND_FORTRAN_LOGICAL4 = @OMPI_KIND_FORTRAN_LOGICAL4@ +OMPI_KIND_FORTRAN_LOGICAL8 = @OMPI_KIND_FORTRAN_LOGICAL8@ +OMPI_KIND_FORTRAN_REAL = @OMPI_KIND_FORTRAN_REAL@ +OMPI_KIND_FORTRAN_REAL16 = @OMPI_KIND_FORTRAN_REAL16@ +OMPI_KIND_FORTRAN_REAL2 = @OMPI_KIND_FORTRAN_REAL2@ +OMPI_KIND_FORTRAN_REAL4 = @OMPI_KIND_FORTRAN_REAL4@ +OMPI_KIND_FORTRAN_REAL8 = @OMPI_KIND_FORTRAN_REAL8@ +OMPI_LIBMPI_EXTRA_LDFLAGS = @OMPI_LIBMPI_EXTRA_LDFLAGS@ +OMPI_LIBMPI_EXTRA_LIBS = @OMPI_LIBMPI_EXTRA_LIBS@ +OMPI_LIBMPI_NAME = @OMPI_LIBMPI_NAME@ +OMPI_MAJOR_VERSION = @OMPI_MAJOR_VERSION@ +OMPI_MINOR_VERSION = @OMPI_MINOR_VERSION@ +OMPI_MPIEXT_ALL_SUBDIRS = @OMPI_MPIEXT_ALL_SUBDIRS@ +OMPI_MPIEXT_C_DIRS = @OMPI_MPIEXT_C_DIRS@ +OMPI_MPIEXT_C_LIBS = @OMPI_MPIEXT_C_LIBS@ +OMPI_MPIEXT_MPIFH_DIRS = @OMPI_MPIEXT_MPIFH_DIRS@ +OMPI_MPIEXT_MPIFH_LIBS = @OMPI_MPIEXT_MPIFH_LIBS@ +OMPI_MPIEXT_USEMPIF08_DIRS = @OMPI_MPIEXT_USEMPIF08_DIRS@ +OMPI_MPIEXT_USEMPIF08_LIBS = @OMPI_MPIEXT_USEMPIF08_LIBS@ +OMPI_MPIEXT_USEMPI_DIRS = @OMPI_MPIEXT_USEMPI_DIRS@ +OMPI_MPIEXT_USEMPI_LIBS = @OMPI_MPIEXT_USEMPI_LIBS@ +OMPI_MPI_ADDRESS_KIND = @OMPI_MPI_ADDRESS_KIND@ +OMPI_MPI_BIND_PREFIX = @OMPI_MPI_BIND_PREFIX@ +OMPI_MPI_COUNT_KIND = @OMPI_MPI_COUNT_KIND@ +OMPI_MPI_INTEGER_KIND = @OMPI_MPI_INTEGER_KIND@ +OMPI_MPI_OFFSET_KIND = @OMPI_MPI_OFFSET_KIND@ +OMPI_MPI_PREFIX = @OMPI_MPI_PREFIX@ +OMPI_PKG_CONFIG_LDFLAGS = @OMPI_PKG_CONFIG_LDFLAGS@ +OMPI_RELEASE_DATE = @OMPI_RELEASE_DATE@ +OMPI_RELEASE_VERSION = @OMPI_RELEASE_VERSION@ +OMPI_REPO_REV = @OMPI_REPO_REV@ +OMPI_SIZEOF_FORTRAN_CHARACTER = @OMPI_SIZEOF_FORTRAN_CHARACTER@ +OMPI_SIZEOF_FORTRAN_COMPLEX = @OMPI_SIZEOF_FORTRAN_COMPLEX@ +OMPI_SIZEOF_FORTRAN_COMPLEX16 = @OMPI_SIZEOF_FORTRAN_COMPLEX16@ +OMPI_SIZEOF_FORTRAN_COMPLEX32 = @OMPI_SIZEOF_FORTRAN_COMPLEX32@ +OMPI_SIZEOF_FORTRAN_COMPLEX4 = @OMPI_SIZEOF_FORTRAN_COMPLEX4@ +OMPI_SIZEOF_FORTRAN_COMPLEX8 = @OMPI_SIZEOF_FORTRAN_COMPLEX8@ +OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX = @OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX@ +OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION = @OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION@ +OMPI_SIZEOF_FORTRAN_INTEGER = @OMPI_SIZEOF_FORTRAN_INTEGER@ +OMPI_SIZEOF_FORTRAN_INTEGER1 = @OMPI_SIZEOF_FORTRAN_INTEGER1@ +OMPI_SIZEOF_FORTRAN_INTEGER16 = @OMPI_SIZEOF_FORTRAN_INTEGER16@ +OMPI_SIZEOF_FORTRAN_INTEGER2 = @OMPI_SIZEOF_FORTRAN_INTEGER2@ +OMPI_SIZEOF_FORTRAN_INTEGER4 = @OMPI_SIZEOF_FORTRAN_INTEGER4@ +OMPI_SIZEOF_FORTRAN_INTEGER8 = @OMPI_SIZEOF_FORTRAN_INTEGER8@ +OMPI_SIZEOF_FORTRAN_LOGICAL = @OMPI_SIZEOF_FORTRAN_LOGICAL@ +OMPI_SIZEOF_FORTRAN_LOGICAL1 = @OMPI_SIZEOF_FORTRAN_LOGICAL1@ +OMPI_SIZEOF_FORTRAN_LOGICAL2 = @OMPI_SIZEOF_FORTRAN_LOGICAL2@ +OMPI_SIZEOF_FORTRAN_LOGICAL4 = @OMPI_SIZEOF_FORTRAN_LOGICAL4@ +OMPI_SIZEOF_FORTRAN_LOGICAL8 = @OMPI_SIZEOF_FORTRAN_LOGICAL8@ +OMPI_SIZEOF_FORTRAN_REAL = @OMPI_SIZEOF_FORTRAN_REAL@ +OMPI_SIZEOF_FORTRAN_REAL16 = @OMPI_SIZEOF_FORTRAN_REAL16@ +OMPI_SIZEOF_FORTRAN_REAL2 = @OMPI_SIZEOF_FORTRAN_REAL2@ +OMPI_SIZEOF_FORTRAN_REAL4 = @OMPI_SIZEOF_FORTRAN_REAL4@ +OMPI_SIZEOF_FORTRAN_REAL8 = @OMPI_SIZEOF_FORTRAN_REAL8@ +OMPI_TARBALL_VERSION = @OMPI_TARBALL_VERSION@ +OMPI_TOP_BUILDDIR = @OMPI_TOP_BUILDDIR@ +OMPI_TOP_SRCDIR = @OMPI_TOP_SRCDIR@ +OMPI_VERSION = @OMPI_VERSION@ +OMPI_WRAPPER_CXX_LIB = @OMPI_WRAPPER_CXX_LIB@ +OMPI_WRAPPER_CXX_REQUIRED_FILE = @OMPI_WRAPPER_CXX_REQUIRED_FILE@ +OMPI_WRAPPER_EXTRA_CFLAGS = @OMPI_WRAPPER_EXTRA_CFLAGS@ +OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_CPPFLAGS = @OMPI_WRAPPER_EXTRA_CPPFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS = @OMPI_WRAPPER_EXTRA_CXXFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FCFLAGS = @OMPI_WRAPPER_EXTRA_FCFLAGS@ +OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FC_LDFLAGS = @OMPI_WRAPPER_EXTRA_FC_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LDFLAGS = @OMPI_WRAPPER_EXTRA_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LIBS = @OMPI_WRAPPER_EXTRA_LIBS@ +OMPI_WRAPPER_FORTRAN_REQUIRED_FILE = @OMPI_WRAPPER_FORTRAN_REQUIRED_FILE@ +OMPI_WRAPPER_INCLUDEDIR = @OMPI_WRAPPER_INCLUDEDIR@ +OMPI_WRAPPER_LIBDIR = @OMPI_WRAPPER_LIBDIR@ +OPAL_ASM_GSYM = @OPAL_ASM_GSYM@ +OPAL_ASM_LSYM = @OPAL_ASM_LSYM@ +OPAL_ASM_SUPPORT_64BIT = @OPAL_ASM_SUPPORT_64BIT@ +OPAL_ASM_TEXT = @OPAL_ASM_TEXT@ +OPAL_ASM_TYPE = @OPAL_ASM_TYPE@ +OPAL_ASSEMBLY_ARCH = @OPAL_ASSEMBLY_ARCH@ +OPAL_ASSEMBLY_BUILTIN = @OPAL_ASSEMBLY_BUILTIN@ +OPAL_ASSEMBLY_FORMAT = @OPAL_ASSEMBLY_FORMAT@ +OPAL_AS_GLOBAL = @OPAL_AS_GLOBAL@ +OPAL_AS_LABEL_SUFFIX = @OPAL_AS_LABEL_SUFFIX@ +OPAL_CC_ABSOLUTE = @OPAL_CC_ABSOLUTE@ +OPAL_CONFIGURE_CLI = @OPAL_CONFIGURE_CLI@ +OPAL_CONFIGURE_DATE = @OPAL_CONFIGURE_DATE@ +OPAL_CONFIGURE_HOST = @OPAL_CONFIGURE_HOST@ +OPAL_CONFIGURE_USER = @OPAL_CONFIGURE_USER@ +OPAL_CXX_ABSOLUTE = @OPAL_CXX_ABSOLUTE@ +OPAL_DEFAULT_MCA_PARAM_CONF = @OPAL_DEFAULT_MCA_PARAM_CONF@ +OPAL_DYN_LIB_PREFIX = @OPAL_DYN_LIB_PREFIX@ +OPAL_DYN_LIB_SUFFIX = @OPAL_DYN_LIB_SUFFIX@ +OPAL_GREEK_VERSION = @OPAL_GREEK_VERSION@ +OPAL_LIB_PREFIX = @OPAL_LIB_PREFIX@ +OPAL_MAJOR_VERSION = @OPAL_MAJOR_VERSION@ +OPAL_MAX_DATAREP_STRING = @OPAL_MAX_DATAREP_STRING@ +OPAL_MAX_ERROR_STRING = @OPAL_MAX_ERROR_STRING@ +OPAL_MAX_INFO_KEY = @OPAL_MAX_INFO_KEY@ +OPAL_MAX_INFO_VAL = @OPAL_MAX_INFO_VAL@ +OPAL_MAX_OBJECT_NAME = @OPAL_MAX_OBJECT_NAME@ +OPAL_MAX_PORT_NAME = @OPAL_MAX_PORT_NAME@ +OPAL_MAX_PROCESSOR_NAME = @OPAL_MAX_PROCESSOR_NAME@ +OPAL_MINOR_VERSION = @OPAL_MINOR_VERSION@ +OPAL_PARAM_FROM_PLATFORM = @OPAL_PARAM_FROM_PLATFORM@ +OPAL_PKG_CONFIG_LDFLAGS = @OPAL_PKG_CONFIG_LDFLAGS@ +OPAL_RELEASE_DATE = @OPAL_RELEASE_DATE@ +OPAL_RELEASE_VERSION = @OPAL_RELEASE_VERSION@ +OPAL_REPO_REV = @OPAL_REPO_REV@ +OPAL_TARBALL_VERSION = @OPAL_TARBALL_VERSION@ +OPAL_TOP_BUILDDIR = @OPAL_TOP_BUILDDIR@ +OPAL_TOP_SRCDIR = @OPAL_TOP_SRCDIR@ +OPAL_VERSION = @OPAL_VERSION@ +OPAL_WRAPPER_EXTRA_CFLAGS = @OPAL_WRAPPER_EXTRA_CFLAGS@ +OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_CPPFLAGS = @OPAL_WRAPPER_EXTRA_CPPFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS = @OPAL_WRAPPER_EXTRA_CXXFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_LDFLAGS = @OPAL_WRAPPER_EXTRA_LDFLAGS@ +OPAL_WRAPPER_EXTRA_LIBS = @OPAL_WRAPPER_EXTRA_LIBS@ +ORTE_GREEK_VERSION = @ORTE_GREEK_VERSION@ +ORTE_LIB_PREFIX = @ORTE_LIB_PREFIX@ +ORTE_MAJOR_VERSION = @ORTE_MAJOR_VERSION@ +ORTE_MINOR_VERSION = @ORTE_MINOR_VERSION@ +ORTE_PKG_CONFIG_LDFLAGS = @ORTE_PKG_CONFIG_LDFLAGS@ +ORTE_RELEASE_DATE = @ORTE_RELEASE_DATE@ +ORTE_RELEASE_VERSION = @ORTE_RELEASE_VERSION@ +ORTE_REPO_REV = @ORTE_REPO_REV@ +ORTE_TARBALL_VERSION = @ORTE_TARBALL_VERSION@ +ORTE_TOP_BUILDDIR = @ORTE_TOP_BUILDDIR@ +ORTE_TOP_SRCDIR = @ORTE_TOP_SRCDIR@ +ORTE_VERSION = @ORTE_VERSION@ +ORTE_WRAPPER_EXTRA_CFLAGS = @ORTE_WRAPPER_EXTRA_CFLAGS@ +ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX = @ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX@ +ORTE_WRAPPER_EXTRA_CPPFLAGS = @ORTE_WRAPPER_EXTRA_CPPFLAGS@ +ORTE_WRAPPER_EXTRA_LDFLAGS = @ORTE_WRAPPER_EXTRA_LDFLAGS@ +ORTE_WRAPPER_EXTRA_LIBS = @ORTE_WRAPPER_EXTRA_LIBS@ +OSHMEM_GREEK_VERSION = @OSHMEM_GREEK_VERSION@ +OSHMEM_LIBSHMEM_EXTRA_LDFLAGS = @OSHMEM_LIBSHMEM_EXTRA_LDFLAGS@ +OSHMEM_LIBSHMEM_EXTRA_LIBS = @OSHMEM_LIBSHMEM_EXTRA_LIBS@ +OSHMEM_MAJOR_VERSION = @OSHMEM_MAJOR_VERSION@ +OSHMEM_MINOR_VERSION = @OSHMEM_MINOR_VERSION@ +OSHMEM_RELEASE_DATE = @OSHMEM_RELEASE_DATE@ +OSHMEM_RELEASE_VERSION = @OSHMEM_RELEASE_VERSION@ +OSHMEM_REPO_REV = @OSHMEM_REPO_REV@ +OSHMEM_TARBALL_VERSION = @OSHMEM_TARBALL_VERSION@ +OSHMEM_TOP_BUILDDIR = @OSHMEM_TOP_BUILDDIR@ +OSHMEM_TOP_SRCDIR = @OSHMEM_TOP_SRCDIR@ +OSHMEM_VERSION = @OSHMEM_VERSION@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +QRSH = @QRSH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SINGULARITY = @SINGULARITY@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_FC = @ac_ct_FC@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +atomic_mxm_CFLAGS = @atomic_mxm_CFLAGS@ +atomic_mxm_CPPFLAGS = @atomic_mxm_CPPFLAGS@ +atomic_mxm_LDFLAGS = @atomic_mxm_LDFLAGS@ +atomic_mxm_LIBS = @atomic_mxm_LIBS@ +atomic_ucx_CFLAGS = @atomic_ucx_CFLAGS@ +atomic_ucx_CPPFLAGS = @atomic_ucx_CPPFLAGS@ +atomic_ucx_LDFLAGS = @atomic_ucx_LDFLAGS@ +atomic_ucx_LIBS = @atomic_ucx_LIBS@ +bindir = @bindir@ +btl_openib_CFLAGS = @btl_openib_CFLAGS@ +btl_openib_CPPFLAGS = @btl_openib_CPPFLAGS@ +btl_openib_LDFLAGS = @btl_openib_LDFLAGS@ +btl_openib_LIBS = @btl_openib_LIBS@ +btl_portals4_CPPFLAGS = @btl_portals4_CPPFLAGS@ +btl_portals4_LDFLAGS = @btl_portals4_LDFLAGS@ +btl_portals4_LIBS = @btl_portals4_LIBS@ +btl_uct_CPPFLAGS = @btl_uct_CPPFLAGS@ +btl_uct_LDFLAGS = @btl_uct_LDFLAGS@ +btl_uct_LIBS = @btl_uct_LIBS@ +btl_ugni_CPPFLAGS = @btl_ugni_CPPFLAGS@ +btl_ugni_LDFLAGS = @btl_ugni_LDFLAGS@ +btl_ugni_LIBS = @btl_ugni_LIBS@ +btl_vader_CFLAGS = @btl_vader_CFLAGS@ +btl_vader_CPPFLAGS = @btl_vader_CPPFLAGS@ +btl_vader_LDFLAGS = @btl_vader_LDFLAGS@ +btl_vader_LIBS = @btl_vader_LIBS@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +coll_fca_CFLAGS = @coll_fca_CFLAGS@ +coll_fca_CPPFLAGS = @coll_fca_CPPFLAGS@ +coll_fca_HOME = @coll_fca_HOME@ +coll_fca_LDFLAGS = @coll_fca_LDFLAGS@ +coll_fca_LIBS = @coll_fca_LIBS@ +coll_hcoll_CFLAGS = @coll_hcoll_CFLAGS@ +coll_hcoll_CPPFLAGS = @coll_hcoll_CPPFLAGS@ +coll_hcoll_LDFLAGS = @coll_hcoll_LDFLAGS@ +coll_hcoll_LIBS = @coll_hcoll_LIBS@ +coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ +coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ +coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ +common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ +common_alps_LDFLAGS = @common_alps_LDFLAGS@ +common_alps_LIBS = @common_alps_LIBS@ +common_cuda_CPPFLAGS = @common_cuda_CPPFLAGS@ +common_ucx_CFLAGS = @common_ucx_CFLAGS@ +common_ucx_CPPFLAGS = @common_ucx_CPPFLAGS@ +common_ucx_LDFLAGS = @common_ucx_LDFLAGS@ +common_ucx_LIBS = @common_ucx_LIBS@ +common_verbs_CFLAGS = @common_verbs_CFLAGS@ +common_verbs_CPPFLAGS = @common_verbs_CPPFLAGS@ +common_verbs_LDFLAGS = @common_verbs_LDFLAGS@ +common_verbs_LIBS = @common_verbs_LIBS@ +common_verbs_usnic_CPPFLAGS = @common_verbs_usnic_CPPFLAGS@ +common_verbs_usnic_LDFLAGS = @common_verbs_usnic_LDFLAGS@ +common_verbs_usnic_LIBS = @common_verbs_usnic_LIBS@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +ess_alps_CPPFLAGS = @ess_alps_CPPFLAGS@ +ess_alps_LDFLAGS = @ess_alps_LDFLAGS@ +ess_alps_LIBS = @ess_alps_LIBS@ +ess_lsf_CPPFLAGS = @ess_lsf_CPPFLAGS@ +ess_lsf_LDFLAGS = @ess_lsf_LDFLAGS@ +ess_lsf_LIBS = @ess_lsf_LIBS@ +ess_slurm_CPPFLAGS = @ess_slurm_CPPFLAGS@ +ess_slurm_LDFLAGS = @ess_slurm_LDFLAGS@ +ess_slurm_LIBS = @ess_slurm_LIBS@ +ess_tm_CPPFLAGS = @ess_tm_CPPFLAGS@ +ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ +ess_tm_LIBS = @ess_tm_LIBS@ +exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ +fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ +fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ +fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ +fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ +fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ +fs_lustre_LIBS = @fs_lustre_LIBS@ +fs_pvfs2_CPPFLAGS = @fs_pvfs2_CPPFLAGS@ +fs_pvfs2_LDFLAGS = @fs_pvfs2_LDFLAGS@ +fs_pvfs2_LIBS = @fs_pvfs2_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ +libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ +libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ +libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ +libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ +libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ +libmca_opal_common_verbs_so_version = @libmca_opal_common_verbs_so_version@ +libmca_orte_common_alps_so_version = @libmca_orte_common_alps_so_version@ +libmpi_cxx_so_version = @libmpi_cxx_so_version@ +libmpi_java_so_version = @libmpi_java_so_version@ +libmpi_mpifh_so_version = @libmpi_mpifh_so_version@ +libmpi_so_version = @libmpi_so_version@ +libmpi_usempi_ignore_tkr_so_version = @libmpi_usempi_ignore_tkr_so_version@ +libmpi_usempi_tkr_so_version = @libmpi_usempi_tkr_so_version@ +libmpi_usempif08_so_version = @libmpi_usempif08_so_version@ +libompitrace_so_version = @libompitrace_so_version@ +libopen_pal_so_version = @libopen_pal_so_version@ +libopen_rte_so_version = @libopen_rte_so_version@ +liboshmem_so_version = @liboshmem_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +memory_malloc_solaris_LIBS = @memory_malloc_solaris_LIBS@ +mkdir_p = @mkdir_p@ +mpool_memkind_CPPFLAGS = @mpool_memkind_CPPFLAGS@ +mpool_memkind_LDFLAGS = @mpool_memkind_LDFLAGS@ +mpool_memkind_LIBS = @mpool_memkind_LIBS@ +mtl_portals4_CPPFLAGS = @mtl_portals4_CPPFLAGS@ +mtl_portals4_LDFLAGS = @mtl_portals4_LDFLAGS@ +mtl_portals4_LIBS = @mtl_portals4_LIBS@ +mtl_psm2_CFLAGS = @mtl_psm2_CFLAGS@ +mtl_psm2_CPPFLAGS = @mtl_psm2_CPPFLAGS@ +mtl_psm2_LDFLAGS = @mtl_psm2_LDFLAGS@ +mtl_psm2_LIBS = @mtl_psm2_LIBS@ +mtl_psm_CFLAGS = @mtl_psm_CFLAGS@ +mtl_psm_CPPFLAGS = @mtl_psm_CPPFLAGS@ +mtl_psm_LDFLAGS = @mtl_psm_LDFLAGS@ +mtl_psm_LIBS = @mtl_psm_LIBS@ +odls_alps_CPPFLAGS = @odls_alps_CPPFLAGS@ +odls_alps_LDFLAGS = @odls_alps_LDFLAGS@ +odls_alps_LIBS = @odls_alps_LIBS@ +oldincludedir = @oldincludedir@ +ompidatadir = @ompidatadir@ +ompiincludedir = @ompiincludedir@ +ompilibdir = @ompilibdir@ +oob_alps_CPPFLAGS = @oob_alps_CPPFLAGS@ +oob_alps_LDFLAGS = @oob_alps_LDFLAGS@ +oob_alps_LIBS = @oob_alps_LIBS@ +opal_datatype_cuda_CPPFLAGS = @opal_datatype_cuda_CPPFLAGS@ +opal_dl_dlopen_LIBS = @opal_dl_dlopen_LIBS@ +opal_dl_libltdl_CPPFLAGS = @opal_dl_libltdl_CPPFLAGS@ +opal_dl_libltdl_LDFLAGS = @opal_dl_libltdl_LDFLAGS@ +opal_dl_libltdl_LIBS = @opal_dl_libltdl_LIBS@ +opal_event_external_CPPFLAGS = @opal_event_external_CPPFLAGS@ +opal_event_external_LDFLAGS = @opal_event_external_LDFLAGS@ +opal_event_external_LIBS = @opal_event_external_LIBS@ +opal_hwloc_external_LDFLAGS = @opal_hwloc_external_LDFLAGS@ +opal_hwloc_external_LIBS = @opal_hwloc_external_LIBS@ +opal_hwloc_hwloc201_CFLAGS = @opal_hwloc_hwloc201_CFLAGS@ +opal_hwloc_hwloc201_CPPFLAGS = @opal_hwloc_hwloc201_CPPFLAGS@ +opal_hwloc_hwloc201_LDFLAGS = @opal_hwloc_hwloc201_LDFLAGS@ +opal_hwloc_hwloc201_LIBS = @opal_hwloc_hwloc201_LIBS@ +opal_memchecker_valgrind_CPPFLAGS = @opal_memchecker_valgrind_CPPFLAGS@ +opal_ofi_CPPFLAGS = @opal_ofi_CPPFLAGS@ +opal_ofi_LDFLAGS = @opal_ofi_LDFLAGS@ +opal_ofi_LIBS = @opal_ofi_LIBS@ +opal_pmi1_CPPFLAGS = @opal_pmi1_CPPFLAGS@ +opal_pmi1_LDFLAGS = @opal_pmi1_LDFLAGS@ +opal_pmi1_LIBS = @opal_pmi1_LIBS@ +opal_pmi1_rpath = @opal_pmi1_rpath@ +opal_pmi2_CPPFLAGS = @opal_pmi2_CPPFLAGS@ +opal_pmi2_LDFLAGS = @opal_pmi2_LDFLAGS@ +opal_pmi2_LIBS = @opal_pmi2_LIBS@ +opal_pmi2_rpath = @opal_pmi2_rpath@ +opal_pmix_ext1x_CPPFLAGS = @opal_pmix_ext1x_CPPFLAGS@ +opal_pmix_ext1x_LDFLAGS = @opal_pmix_ext1x_LDFLAGS@ +opal_pmix_ext1x_LIBS = @opal_pmix_ext1x_LIBS@ +opal_pmix_ext2x_CPPFLAGS = @opal_pmix_ext2x_CPPFLAGS@ +opal_pmix_ext2x_LDFLAGS = @opal_pmix_ext2x_LDFLAGS@ +opal_pmix_ext2x_LIBS = @opal_pmix_ext2x_LIBS@ +opal_pmix_ext3x_CPPFLAGS = @opal_pmix_ext3x_CPPFLAGS@ +opal_pmix_ext3x_LDFLAGS = @opal_pmix_ext3x_LDFLAGS@ +opal_pmix_ext3x_LIBS = @opal_pmix_ext3x_LIBS@ +opal_pmix_pmix3x_CPPFLAGS = @opal_pmix_pmix3x_CPPFLAGS@ +opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ +opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ +opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ +opaldatadir = @opaldatadir@ +opalincludedir = @opalincludedir@ +opallibdir = @opallibdir@ +ortedatadir = @ortedatadir@ +orteincludedir = @orteincludedir@ +ortelibdir = @ortelibdir@ +osc_portals4_CPPFLAGS = @osc_portals4_CPPFLAGS@ +osc_portals4_LDFLAGS = @osc_portals4_LDFLAGS@ +osc_portals4_LIBS = @osc_portals4_LIBS@ +osc_ucx_CPPFLAGS = @osc_ucx_CPPFLAGS@ +osc_ucx_LDFLAGS = @osc_ucx_LDFLAGS@ +osc_ucx_LIBS = @osc_ucx_LIBS@ +oshmem_verbs_CFLAGS = @oshmem_verbs_CFLAGS@ +oshmem_verbs_CPPFLAGS = @oshmem_verbs_CPPFLAGS@ +oshmem_verbs_LDFLAGS = @oshmem_verbs_LDFLAGS@ +oshmem_verbs_LIBS = @oshmem_verbs_LIBS@ +oshmemdatadir = @oshmemdatadir@ +oshmemincludedir = @oshmemincludedir@ +oshmemlibdir = @oshmemlibdir@ +pdfdir = @pdfdir@ +plm_alps_CPPFLAGS = @plm_alps_CPPFLAGS@ +plm_alps_LDFLAGS = @plm_alps_LDFLAGS@ +plm_alps_LIBS = @plm_alps_LIBS@ +plm_lsf_CPPFLAGS = @plm_lsf_CPPFLAGS@ +plm_lsf_LDFLAGS = @plm_lsf_LDFLAGS@ +plm_lsf_LIBS = @plm_lsf_LIBS@ +plm_slurm_CPPFLAGS = @plm_slurm_CPPFLAGS@ +plm_slurm_LDFLAGS = @plm_slurm_LDFLAGS@ +plm_slurm_LIBS = @plm_slurm_LIBS@ +plm_tm_CPPFLAGS = @plm_tm_CPPFLAGS@ +plm_tm_LDFLAGS = @plm_tm_LDFLAGS@ +plm_tm_LIBS = @plm_tm_LIBS@ +pmix_alps_CPPFLAGS = @pmix_alps_CPPFLAGS@ +pmix_alps_LDFLAGS = @pmix_alps_LDFLAGS@ +pmix_alps_LIBS = @pmix_alps_LIBS@ +pmix_cray_CPPFLAGS = @pmix_cray_CPPFLAGS@ +pmix_cray_LDFLAGS = @pmix_cray_LDFLAGS@ +pmix_cray_LIBS = @pmix_cray_LIBS@ +pml_ucx_CPPFLAGS = @pml_ucx_CPPFLAGS@ +pml_ucx_LDFLAGS = @pml_ucx_LDFLAGS@ +pml_ucx_LIBS = @pml_ucx_LIBS@ +pml_yalla_CPPFLAGS = @pml_yalla_CPPFLAGS@ +pml_yalla_LDFLAGS = @pml_yalla_LDFLAGS@ +pml_yalla_LIBS = @pml_yalla_LIBS@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +ras_alps_CPPFLAGS = @ras_alps_CPPFLAGS@ +ras_lsf_CPPFLAGS = @ras_lsf_CPPFLAGS@ +ras_lsf_LDFLAGS = @ras_lsf_LDFLAGS@ +ras_lsf_LIBS = @ras_lsf_LIBS@ +ras_slurm_CPPFLAGS = @ras_slurm_CPPFLAGS@ +ras_slurm_LDFLAGS = @ras_slurm_LDFLAGS@ +ras_slurm_LIBS = @ras_slurm_LIBS@ +ras_tm_CPPFLAGS = @ras_tm_CPPFLAGS@ +ras_tm_LDFLAGS = @ras_tm_LDFLAGS@ +ras_tm_LIBS = @ras_tm_LIBS@ +rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ +rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ +rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ +sbindir = @sbindir@ +schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ +schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ +schizo_moab_LDFLAGS = @schizo_moab_LDFLAGS@ +schizo_moab_LIBS = @schizo_moab_LIBS@ +schizo_slurm_CPPFLAGS = @schizo_slurm_CPPFLAGS@ +schizo_slurm_LDFLAGS = @schizo_slurm_LDFLAGS@ +schizo_slurm_LIBS = @schizo_slurm_LIBS@ +scoll_fca_CFLAGS = @scoll_fca_CFLAGS@ +scoll_fca_CPPFLAGS = @scoll_fca_CPPFLAGS@ +scoll_fca_HOME = @scoll_fca_HOME@ +scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ +scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ +sharedstatedir = @sharedstatedir@ +spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ +spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ +spml_ikrit_LDFLAGS = @spml_ikrit_LDFLAGS@ +spml_ikrit_LIBS = @spml_ikrit_LIBS@ +spml_ucx_CFLAGS = @spml_ucx_CFLAGS@ +spml_ucx_CPPFLAGS = @spml_ucx_CPPFLAGS@ +spml_ucx_LDFLAGS = @spml_ucx_LDFLAGS@ +spml_ucx_LIBS = @spml_ucx_LIBS@ +srcdir = @srcdir@ +sshmem_ucx_CFLAGS = @sshmem_ucx_CFLAGS@ +sshmem_ucx_CPPFLAGS = @sshmem_ucx_CPPFLAGS@ +sshmem_ucx_LDFLAGS = @sshmem_ucx_LDFLAGS@ +sshmem_ucx_LIBS = @sshmem_ucx_LIBS@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ucx_CFLAGS = @ucx_CFLAGS@ +ucx_LIBS = @ucx_LIBS@ +ucx_STATIC_LIBS = @ucx_STATIC_LIBS@ +sources = \ +coll_han.h \ +coll_han_trigger.h \ +coll_han_dynamic.h \ +coll_han_dynamic_file.h \ +coll_han_barrier.c \ +coll_han_bcast.c \ +coll_han_reduce.c \ +coll_han_scatter.c \ +coll_han_gather.c \ +coll_han_allreduce.c \ +coll_han_allgather.c \ +coll_han_component.c \ +coll_han_module.c \ +coll_han_trigger.c \ +coll_han_dynamic.c \ +coll_han_dynamic_file.c \ +coll_han_topo.c \ +coll_han_subcomms.c + + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). +component_noinst = $(am__append_2) +component_install = $(am__append_1) + +# See ompi/mca/btl/sm/Makefile.am for an explanation of +# libmca_common_sm.la. +mcacomponentdir = $(ompilibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_coll_han_la_SOURCES = $(sources) +mca_coll_han_la_LDFLAGS = -module -avoid-version +mca_coll_han_la_LIBADD = +noinst_LTLIBRARIES = $(component_noinst) +libmca_coll_han_la_SOURCES = $(sources) +libmca_coll_han_la_LDFLAGS = -module -avoid-version +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign ompi/mca/coll/han/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign ompi/mca/coll/han/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-mcacomponentLTLIBRARIES: $(mcacomponent_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(mcacomponentdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(mcacomponentdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(mcacomponentdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(mcacomponentdir)"; \ + } + +uninstall-mcacomponentLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(mcacomponentdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(mcacomponentdir)/$$f"; \ + done + +clean-mcacomponentLTLIBRARIES: + -test -z "$(mcacomponent_LTLIBRARIES)" || rm -f $(mcacomponent_LTLIBRARIES) + @list='$(mcacomponent_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libmca_coll_han.la: $(libmca_coll_han_la_OBJECTS) $(libmca_coll_han_la_DEPENDENCIES) $(EXTRA_libmca_coll_han_la_DEPENDENCIES) + $(AM_V_CCLD)$(libmca_coll_han_la_LINK) $(am_libmca_coll_han_la_rpath) $(libmca_coll_han_la_OBJECTS) $(libmca_coll_han_la_LIBADD) $(LIBS) + +mca_coll_han.la: $(mca_coll_han_la_OBJECTS) $(mca_coll_han_la_DEPENDENCIES) $(EXTRA_mca_coll_han_la_DEPENDENCIES) + $(AM_V_CCLD)$(mca_coll_han_la_LINK) $(am_mca_coll_han_la_rpath) $(mca_coll_han_la_OBJECTS) $(mca_coll_han_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_han_allgather.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_han_allreduce.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_han_barrier.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_han_bcast.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_han_component.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_han_dynamic.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_han_dynamic_file.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_han_gather.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_han_module.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_han_reduce.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_han_scatter.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_han_subcomms.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_han_topo.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_han_trigger.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(mcacomponentdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-mcacomponentLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-mcacomponentLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-mcacomponentLTLIBRARIES install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-mcacomponentLTLIBRARIES + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/ompi/mca/coll/hcoll/coll_hcoll_dtypes.h openmpi-4.1.4/ompi/mca/coll/hcoll/coll_hcoll_dtypes.h --- openmpi-4.0.3/ompi/mca/coll/hcoll/coll_hcoll_dtypes.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/hcoll/coll_hcoll_dtypes.h 2022-05-29 09:51:40.000000000 +0000 @@ -33,7 +33,7 @@ total 15 types */ -static dte_data_representation_t* ompi_datatype_2_dte_data_rep[OMPI_DATATYPE_MAX_PREDEFINED] = { +static dte_data_representation_t* ompi_datatype_2_dte_data_rep[OPAL_DATATYPE_MAX_PREDEFINED] = { &DTE_ZERO, /*OPAL_DATATYPE_LOOP 0 */ &DTE_ZERO, /*OPAL_DATATYPE_END_LOOP 1 */ #if defined(DTE_LB) @@ -86,7 +86,17 @@ #else &DTE_ZERO, #endif - &DTE_ZERO /*OPAL_DATATYPE_UNAVAILABLE 24 */ +#if SIZEOF_LONG == 4 + &DTE_UINT32, +#else + &DTE_UINT64, /*OPAL_DATATYPE_LONG 24 */ +#endif +#if SIZEOF_UNSIGNED_LONG == 4 + &DTE_UINT32, +#else + &DTE_UINT64, /*OPAL_DATATYPE_UNSIGNED_LONG 25 */ +#endif + &DTE_ZERO /*OPAL_DATATYPE_UNAVAILABLE 26 */ }; enum { diff -Nru openmpi-4.0.3/ompi/mca/coll/hcoll/coll_hcoll.h openmpi-4.1.4/ompi/mca/coll/hcoll/coll_hcoll.h --- openmpi-4.0.3/ompi/mca/coll/hcoll/coll_hcoll.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/hcoll/coll_hcoll.h 2022-05-29 09:51:40.000000000 +0000 @@ -138,8 +138,12 @@ mca_coll_base_module_t *previous_gather_module; mca_coll_base_module_gatherv_fn_t previous_gatherv; mca_coll_base_module_t *previous_gatherv_module; + mca_coll_base_module_scatterv_fn_t previous_scatterv; + mca_coll_base_module_t *previous_scatterv_module; mca_coll_base_module_reduce_scatter_fn_t previous_reduce_scatter; mca_coll_base_module_t *previous_reduce_scatter_module; + mca_coll_base_module_reduce_scatter_block_fn_t previous_reduce_scatter_block; + mca_coll_base_module_t *previous_reduce_scatter_block_module; mca_coll_base_module_ibcast_fn_t previous_ibcast; mca_coll_base_module_t *previous_ibcast_module; mca_coll_base_module_ibarrier_fn_t previous_ibarrier; @@ -210,6 +214,18 @@ struct ompi_communicator_t *comm, mca_coll_base_module_t *module); +#if HCOLL_API > HCOLL_VERSION(4,5) +int mca_coll_hcoll_reduce_scatter_block(const void *sbuf, void *rbuf, int rcount, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); +int mca_coll_hcoll_reduce_scatter(const void *sbuf, void *rbuf, const int* rcounts, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); +#endif int mca_coll_hcoll_reduce(const void *sbuf, void *rbuf, int count, struct ompi_datatype_t *dtype, struct ompi_op_t *op, @@ -241,6 +257,15 @@ struct ompi_communicator_t *comm, mca_coll_base_module_t *module); + +int mca_coll_hcoll_scatterv(const void* sbuf, const int *scounts, const int *displs, + struct ompi_datatype_t *sdtype, + void* rbuf, int rcount, + struct ompi_datatype_t *rdtype, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); + int mca_coll_hcoll_ibarrier(struct ompi_communicator_t *comm, ompi_request_t** request, mca_coll_base_module_t *module); @@ -292,11 +317,11 @@ mca_coll_base_module_t *module); #if HCOLL_API >= HCOLL_VERSION(3,7) -int mca_coll_hcoll_ialltoallv(const void *sbuf, int *scounts, - int *sdisps, +int mca_coll_hcoll_ialltoallv(const void *sbuf, const int *scounts, + const int *sdisps, struct ompi_datatype_t *sdtype, - void *rbuf, int *rcounts, - int *rdisps, + void *rbuf, const int *rcounts, + const int *rdisps, struct ompi_datatype_t *rdtype, struct ompi_communicator_t *comm, ompi_request_t **req, diff -Nru openmpi-4.0.3/ompi/mca/coll/hcoll/coll_hcoll_module.c openmpi-4.1.4/ompi/mca/coll/hcoll/coll_hcoll_module.c --- openmpi-4.0.3/ompi/mca/coll/hcoll/coll_hcoll_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/hcoll/coll_hcoll_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -45,11 +45,13 @@ hcoll_module->previous_allgatherv = NULL; hcoll_module->previous_gather = NULL; hcoll_module->previous_gatherv = NULL; + hcoll_module->previous_scatterv = NULL; hcoll_module->previous_alltoall = NULL; hcoll_module->previous_alltoallv = NULL; hcoll_module->previous_alltoallw = NULL; hcoll_module->previous_reduce = NULL; hcoll_module->previous_reduce_scatter = NULL; + hcoll_module->previous_reduce_scatter_block = NULL; hcoll_module->previous_ibarrier = NULL; hcoll_module->previous_ibcast = NULL; hcoll_module->previous_iallreduce = NULL; @@ -68,6 +70,7 @@ hcoll_module->previous_allgatherv_module = NULL; hcoll_module->previous_gather_module = NULL; hcoll_module->previous_gatherv_module = NULL; + hcoll_module->previous_scatterv_module = NULL; hcoll_module->previous_alltoall_module = NULL; hcoll_module->previous_alltoallv_module = NULL; hcoll_module->previous_alltoallw_module = NULL; @@ -117,9 +120,12 @@ OBJ_RELEASE_IF_NOT_NULL(hcoll_module->previous_barrier_module); OBJ_RELEASE_IF_NOT_NULL(hcoll_module->previous_bcast_module); OBJ_RELEASE_IF_NOT_NULL(hcoll_module->previous_allreduce_module); + OBJ_RELEASE_IF_NOT_NULL(hcoll_module->previous_reduce_scatter_block_module); + OBJ_RELEASE_IF_NOT_NULL(hcoll_module->previous_reduce_scatter_module); OBJ_RELEASE_IF_NOT_NULL(hcoll_module->previous_allgather_module); OBJ_RELEASE_IF_NOT_NULL(hcoll_module->previous_allgatherv_module); OBJ_RELEASE_IF_NOT_NULL(hcoll_module->previous_gatherv_module); + OBJ_RELEASE_IF_NOT_NULL(hcoll_module->previous_scatterv_module); OBJ_RELEASE_IF_NOT_NULL(hcoll_module->previous_alltoall_module); OBJ_RELEASE_IF_NOT_NULL(hcoll_module->previous_alltoallv_module); OBJ_RELEASE_IF_NOT_NULL(hcoll_module->previous_reduce_module); @@ -170,10 +176,13 @@ HCOL_SAVE_PREV_COLL_API(barrier); HCOL_SAVE_PREV_COLL_API(bcast); HCOL_SAVE_PREV_COLL_API(allreduce); + HCOL_SAVE_PREV_COLL_API(reduce_scatter_block); + HCOL_SAVE_PREV_COLL_API(reduce_scatter); HCOL_SAVE_PREV_COLL_API(reduce); HCOL_SAVE_PREV_COLL_API(allgather); HCOL_SAVE_PREV_COLL_API(allgatherv); HCOL_SAVE_PREV_COLL_API(gatherv); + HCOL_SAVE_PREV_COLL_API(scatterv); HCOL_SAVE_PREV_COLL_API(alltoall); HCOL_SAVE_PREV_COLL_API(alltoallv); @@ -392,6 +401,7 @@ hcoll_module->super.coll_alltoall = hcoll_collectives.coll_alltoall ? mca_coll_hcoll_alltoall : NULL; hcoll_module->super.coll_alltoallv = hcoll_collectives.coll_alltoallv ? mca_coll_hcoll_alltoallv : NULL; hcoll_module->super.coll_gatherv = hcoll_collectives.coll_gatherv ? mca_coll_hcoll_gatherv : NULL; + hcoll_module->super.coll_scatterv = hcoll_collectives.coll_scatterv ? mca_coll_hcoll_scatterv : NULL; hcoll_module->super.coll_reduce = hcoll_collectives.coll_reduce ? mca_coll_hcoll_reduce : NULL; hcoll_module->super.coll_ibarrier = hcoll_collectives.coll_ibarrier ? mca_coll_hcoll_ibarrier : NULL; hcoll_module->super.coll_ibcast = hcoll_collectives.coll_ibcast ? mca_coll_hcoll_ibcast : NULL; @@ -415,6 +425,12 @@ #else hcoll_module->super.coll_ialltoallv = NULL; #endif +#if HCOLL_API > HCOLL_VERSION(4,5) + hcoll_module->super.coll_reduce_scatter_block = hcoll_collectives.coll_reduce_scatter_block ? + mca_coll_hcoll_reduce_scatter_block : NULL; + hcoll_module->super.coll_reduce_scatter = hcoll_collectives.coll_reduce_scatter ? + mca_coll_hcoll_reduce_scatter : NULL; +#endif *priority = cm->hcoll_priority; module = &hcoll_module->super; diff -Nru openmpi-4.0.3/ompi/mca/coll/hcoll/coll_hcoll_ops.c openmpi-4.1.4/ompi/mca/coll/hcoll/coll_hcoll_ops.c --- openmpi-4.0.3/ompi/mca/coll/hcoll/coll_hcoll_ops.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/hcoll/coll_hcoll_ops.c 2022-05-29 09:51:40.000000000 +0000 @@ -136,7 +136,8 @@ hcoll_module->previous_allgatherv_module); return rc; } - rc = hcoll_collectives.coll_allgatherv((void *)sbuf,scount,stype,rbuf,rcount,displs,rtype,hcoll_module->hcoll_context); + rc = hcoll_collectives.coll_allgatherv((void *)sbuf,scount,stype,rbuf,(int*)rcount, + (int*)displs,rtype,hcoll_module->hcoll_context); if (HCOLL_SUCCESS != rc){ HCOL_VERBOSE(20,"RUNNING FALLBACK ALLGATHERV"); rc = hcoll_module->previous_allgatherv(sbuf,scount,sdtype, @@ -155,12 +156,19 @@ struct ompi_datatype_t *rdtype, int root, struct ompi_communicator_t *comm, - mca_coll_base_module_t *module){ + mca_coll_base_module_t *module) +{ + mca_coll_hcoll_module_t *hcoll_module = (mca_coll_hcoll_module_t*)module; dte_data_representation_t stype; dte_data_representation_t rtype; int rc; + HCOL_VERBOSE(20,"RUNNING HCOL GATHER"); - mca_coll_hcoll_module_t *hcoll_module = (mca_coll_hcoll_module_t*)module; + + if (root != comm->c_my_rank) { + rdtype = sdtype; + } + stype = ompi_dtype_2_hcoll_dtype(sdtype, NO_DERIVED); rtype = ompi_dtype_2_hcoll_dtype(rdtype, NO_DERIVED); if (OPAL_UNLIKELY(HCOL_DTE_IS_ZERO(stype) || HCOL_DTE_IS_ZERO(rtype))) { @@ -367,13 +375,19 @@ struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { + mca_coll_hcoll_module_t *hcoll_module = (mca_coll_hcoll_module_t*)module; dte_data_representation_t stype; dte_data_representation_t rtype; int rc; HCOL_VERBOSE(20,"RUNNING HCOL GATHERV"); - mca_coll_hcoll_module_t *hcoll_module = (mca_coll_hcoll_module_t*)module; + + if (root != comm->c_my_rank) { + rdtype = sdtype; + } + stype = ompi_dtype_2_hcoll_dtype(sdtype, NO_DERIVED); rtype = ompi_dtype_2_hcoll_dtype(rdtype, NO_DERIVED); + if (OPAL_UNLIKELY(HCOL_DTE_IS_ZERO(stype) || HCOL_DTE_IS_ZERO(rtype))) { /*If we are here then datatype is not simple predefined datatype */ /*In future we need to add more complex mapping to the dte_data_representation_t */ @@ -386,7 +400,9 @@ comm, hcoll_module->previous_gatherv_module); return rc; } - rc = hcoll_collectives.coll_gatherv((void *)sbuf, scount, stype, rbuf, (int *)rcounts, (int *)displs, rtype, root, hcoll_module->hcoll_context); + rc = hcoll_collectives.coll_gatherv((void *)sbuf, scount, stype, rbuf, + (int *)rcounts, (int *)displs, rtype, + root, hcoll_module->hcoll_context); if (HCOLL_SUCCESS != rc){ HCOL_VERBOSE(20,"RUNNING FALLBACK GATHERV"); rc = hcoll_module->previous_gatherv(sbuf,scount,sdtype, @@ -397,6 +413,54 @@ } +int mca_coll_hcoll_scatterv(const void* sbuf, const int *scounts, const int *displs, + struct ompi_datatype_t *sdtype, + void* rbuf, int rcount, + struct ompi_datatype_t *rdtype, + int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_hcoll_module_t *hcoll_module = (mca_coll_hcoll_module_t*)module; + dte_data_representation_t stype; + dte_data_representation_t rtype; + int rc; + + HCOL_VERBOSE(20,"RUNNING HCOL SCATTERV"); + + if (root != comm->c_my_rank) { + sdtype = rdtype; + } + + stype = ompi_dtype_2_hcoll_dtype(sdtype, NO_DERIVED); + rtype = ompi_dtype_2_hcoll_dtype(rdtype, NO_DERIVED); + + if (rbuf == MPI_IN_PLACE) { + assert(root == comm->c_my_rank); + rtype = stype; + } + if (OPAL_UNLIKELY(HCOL_DTE_IS_ZERO(stype) || HCOL_DTE_IS_ZERO(rtype))) { + /*If we are here then datatype is not simple predefined datatype */ + /*In future we need to add more complex mapping to the dte_data_representation_t */ + /* Now use fallback */ + HCOL_VERBOSE(20,"Ompi_datatype is not supported: sdtype = %s, rdtype = %s; calling fallback scatterv;", + sdtype->super.name, + rdtype->super.name); + rc = hcoll_module->previous_scatterv(sbuf, scounts, displs, sdtype, + rbuf, rcount, rdtype, root, + comm, hcoll_module->previous_scatterv_module); + return rc; + } + rc = hcoll_collectives.coll_scatterv((void *)sbuf, (int *)scounts, (int *)displs, stype, rbuf, rcount, rtype, root, hcoll_module->hcoll_context); + if (HCOLL_SUCCESS != rc){ + HCOL_VERBOSE(20,"RUNNING FALLBACK SCATTERV"); + rc = hcoll_module->previous_scatterv(sbuf, scounts, displs, sdtype, + rbuf, rcount, rdtype, root, + comm, hcoll_module->previous_scatterv_module); + } + return rc; +} + int mca_coll_hcoll_ibarrier(struct ompi_communicator_t *comm, ompi_request_t ** request, mca_coll_base_module_t *module) @@ -521,7 +585,7 @@ hcoll_module->previous_iallgatherv_module); return rc; } - rc = hcoll_collectives.coll_iallgatherv((void *)sbuf,scount,stype,rbuf,rcount,displs,rtype, + rc = hcoll_collectives.coll_iallgatherv((void *)sbuf,scount,stype,rbuf,(int*)rcount,(int*)displs,rtype, hcoll_module->hcoll_context, rt_handle); if (HCOLL_SUCCESS != rc){ HCOL_VERBOSE(20,"RUNNING FALLBACK NON-BLOCKING ALLGATHER"); @@ -651,13 +715,20 @@ ompi_request_t ** request, mca_coll_base_module_t *module) { + mca_coll_hcoll_module_t *hcoll_module = (mca_coll_hcoll_module_t*)module; dte_data_representation_t stype; dte_data_representation_t rtype; int rc; void** rt_handle; + HCOL_VERBOSE(20,"RUNNING HCOL IGATHERV"); - mca_coll_hcoll_module_t *hcoll_module = (mca_coll_hcoll_module_t*)module; + rt_handle = (void**) request; + + if (root != comm->c_my_rank) { + rdtype = sdtype; + } + stype = ompi_dtype_2_hcoll_dtype(sdtype, NO_DERIVED); rtype = ompi_dtype_2_hcoll_dtype(rdtype, NO_DERIVED); if (OPAL_UNLIKELY(HCOL_DTE_IS_ZERO(stype) || HCOL_DTE_IS_ZERO(rtype))) { @@ -687,9 +758,9 @@ #if HCOLL_API >= HCOLL_VERSION(3,7) -int mca_coll_hcoll_ialltoallv(const void *sbuf, int *scounts, int *sdisps, +int mca_coll_hcoll_ialltoallv(const void *sbuf, const int *scounts, const int *sdisps, struct ompi_datatype_t *sdtype, - void *rbuf, int *rcounts, int *rdisps, + void *rbuf, const int *rcounts, const int *rdisps, struct ompi_datatype_t *rdtype, struct ompi_communicator_t *comm, ompi_request_t ** request, @@ -722,4 +793,89 @@ } return rc; } +#endif + +#if HCOLL_API > HCOLL_VERSION(4,5) +int mca_coll_hcoll_reduce_scatter_block(const void *sbuf, void *rbuf, int rcount, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) { + dte_data_representation_t Dtype; + hcoll_dte_op_t *Op; + int rc; + HCOL_VERBOSE(20,"RUNNING HCOL REDUCE SCATTER BLOCK"); + mca_coll_hcoll_module_t *hcoll_module = (mca_coll_hcoll_module_t*)module; + Dtype = ompi_dtype_2_hcoll_dtype(dtype, NO_DERIVED); + if (OPAL_UNLIKELY(HCOL_DTE_IS_ZERO(Dtype))){ + /*If we are here then datatype is not simple predefined datatype */ + /*In future we need to add more complex mapping to the dte_data_representation_t */ + /* Now use fallback */ + HCOL_VERBOSE(20,"Ompi_datatype is not supported: dtype = %s; calling fallback allreduce;", + dtype->super.name); + goto fallback; + } + + Op = ompi_op_2_hcolrte_op(op); + if (OPAL_UNLIKELY(HCOL_DTE_OP_NULL == Op->id)){ + /*If we are here then datatype is not simple predefined datatype */ + /*In future we need to add more complex mapping to the dte_data_representation_t */ + /* Now use fallback */ + HCOL_VERBOSE(20,"ompi_op_t is not supported: op = %s; calling fallback allreduce;", + op->o_name); + goto fallback; + } + + rc = hcoll_collectives.coll_reduce_scatter_block((void *)sbuf,rbuf,rcount,Dtype,Op,hcoll_module->hcoll_context); + if (HCOLL_SUCCESS != rc){ + fallback: + HCOL_VERBOSE(20,"RUNNING FALLBACK ALLREDUCE"); + rc = hcoll_module->previous_reduce_scatter_block(sbuf,rbuf, + rcount,dtype,op, + comm, hcoll_module->previous_allreduce_module); + } + return rc; +} + +int mca_coll_hcoll_reduce_scatter(const void *sbuf, void *rbuf, const int* rcounts, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) { + dte_data_representation_t Dtype; + hcoll_dte_op_t *Op; + int rc; + HCOL_VERBOSE(20,"RUNNING HCOL REDUCE SCATTER"); + mca_coll_hcoll_module_t *hcoll_module = (mca_coll_hcoll_module_t*)module; + Dtype = ompi_dtype_2_hcoll_dtype(dtype, NO_DERIVED); + if (OPAL_UNLIKELY(HCOL_DTE_IS_ZERO(Dtype))){ + /*If we are here then datatype is not simple predefined datatype */ + /*In future we need to add more complex mapping to the dte_data_representation_t */ + /* Now use fallback */ + HCOL_VERBOSE(20,"Ompi_datatype is not supported: dtype = %s; calling fallback allreduce;", + dtype->super.name); + goto fallback; + } + + Op = ompi_op_2_hcolrte_op(op); + if (OPAL_UNLIKELY(HCOL_DTE_OP_NULL == Op->id)){ + /*If we are here then datatype is not simple predefined datatype */ + /*In future we need to add more complex mapping to the dte_data_representation_t */ + /* Now use fallback */ + HCOL_VERBOSE(20,"ompi_op_t is not supported: op = %s; calling fallback allreduce;", + op->o_name); + goto fallback; + } + + rc = hcoll_collectives.coll_reduce_scatter((void*)sbuf, rbuf, (int*)rcounts, + Dtype, Op, hcoll_module->hcoll_context); + if (HCOLL_SUCCESS != rc){ + fallback: + HCOL_VERBOSE(20,"RUNNING FALLBACK ALLREDUCE"); + rc = hcoll_module->previous_reduce_scatter(sbuf,rbuf, + rcounts,dtype,op, + comm, hcoll_module->previous_allreduce_module); + } + return rc; +} #endif diff -Nru openmpi-4.0.3/ompi/mca/coll/hcoll/Makefile.in openmpi-4.1.4/ompi/mca/coll/hcoll/Makefile.in --- openmpi-4.0.3/ompi/mca/coll/hcoll/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/hcoll/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -113,6 +113,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -120,6 +122,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -143,6 +146,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -245,6 +249,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -252,6 +257,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -332,6 +338,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -354,9 +361,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -366,6 +377,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -386,6 +398,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -655,6 +668,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1475,6 +1491,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1507,9 +1527,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1530,6 +1559,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1614,9 +1644,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1677,6 +1704,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1690,6 +1720,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/coll/inter/coll_inter_allgather.c openmpi-4.1.4/ompi/mca/coll/inter/coll_inter_allgather.c --- openmpi-4.0.3/ompi/mca/coll/inter/coll_inter_allgather.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/inter/coll_inter_allgather.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,6 +12,7 @@ * Copyright (c) 2006-2010 University of Houston. All rights reserved. * Copyright (c) 2015-2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2022 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -48,9 +49,10 @@ struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - int rank, root = 0, size, rsize, err = OMPI_SUCCESS; + int rank, root = 0, size, rsize, err = OMPI_SUCCESS, i; char *ptmp_free = NULL, *ptmp = NULL; ptrdiff_t gap, span; + void *rbuf_ptr; rank = ompi_comm_rank(comm); size = ompi_comm_size(comm->c_local_comm); @@ -76,9 +78,9 @@ if (rank == root) { /* Do a send-recv between the two root procs. to avoid deadlock */ - err = ompi_coll_base_sendrecv_actual(ptmp, scount*size, sdtype, 0, + err = ompi_coll_base_sendrecv_actual(ptmp, scount*(size_t)size, sdtype, 0, MCA_COLL_BASE_TAG_ALLGATHER, - rbuf, rcount*rsize, rdtype, 0, + rbuf, rcount*(size_t)rsize, rdtype, 0, MCA_COLL_BASE_TAG_ALLGATHER, comm, MPI_STATUS_IGNORE); if (OMPI_SUCCESS != err) { @@ -87,12 +89,28 @@ } /* bcast the message to all the local processes */ if ( rcount > 0 ) { - err = comm->c_local_comm->c_coll->coll_bcast(rbuf, rcount*rsize, rdtype, - root, comm->c_local_comm, - comm->c_local_comm->c_coll->coll_bcast_module); - if (OMPI_SUCCESS != err) { - goto exit; - } + if ( OPAL_UNLIKELY(rcount*(size_t)rsize > INT_MAX) ) { + // Sending the message in the coll_bcast as "rcount*rsize" would exceed + // the 'int count' parameter in the coll_bcast() function. Instead broadcast + // the result in "rcount" chunks to the local group. + span = opal_datatype_span(&rdtype->super, rcount, &gap); + for( i = 0; i < rsize; ++i) { + rbuf_ptr = (char*)rbuf + span * (size_t)i; + err = comm->c_local_comm->c_coll->coll_bcast(rbuf_ptr, rcount, rdtype, + root, comm->c_local_comm, + comm->c_local_comm->c_coll->coll_bcast_module); + if (OMPI_SUCCESS != err) { + goto exit; + } + } + } else { + err = comm->c_local_comm->c_coll->coll_bcast(rbuf, rcount*rsize, rdtype, + root, comm->c_local_comm, + comm->c_local_comm->c_coll->coll_bcast_module); + if (OMPI_SUCCESS != err) { + goto exit; + } + } } exit: diff -Nru openmpi-4.0.3/ompi/mca/coll/inter/coll_inter_allgatherv.c openmpi-4.1.4/ompi/mca/coll/inter/coll_inter_allgatherv.c --- openmpi-4.0.3/ompi/mca/coll/inter/coll_inter_allgatherv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/inter/coll_inter_allgatherv.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,6 +12,7 @@ * Copyright (c) 2006-2010 University of Houston. All rights reserved. * Copyright (c) 2015-2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2022 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -47,7 +48,8 @@ struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - int i, rank, size, size_local, total=0, err; + int i, rank, size, size_local, err; + size_t total = 0; int *count=NULL,*displace=NULL; char *ptmp_free=NULL, *ptmp=NULL; ompi_datatype_t *ndtype = NULL; diff -Nru openmpi-4.0.3/ompi/mca/coll/inter/coll_inter_gather.c openmpi-4.1.4/ompi/mca/coll/inter/coll_inter_gather.c --- openmpi-4.0.3/ompi/mca/coll/inter/coll_inter_gather.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/inter/coll_inter_gather.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,6 +12,7 @@ * Copyright (c) 2006-2007 University of Houston. All rights reserved. * Copyright (c) 2015-2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2022 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -76,7 +77,7 @@ comm->c_local_comm->c_coll->coll_gather_module); if (0 == rank) { /* First process sends data to the root */ - err = MCA_PML_CALL(send(ptmp, scount*size_local, sdtype, root, + err = MCA_PML_CALL(send(ptmp, scount*(size_t)size_local, sdtype, root, MCA_COLL_BASE_TAG_GATHER, MCA_PML_BASE_SEND_STANDARD, comm)); if (OMPI_SUCCESS != err) { @@ -86,7 +87,7 @@ free(ptmp_free); } else { /* I am the root, loop receiving the data. */ - err = MCA_PML_CALL(recv(rbuf, rcount*size, rdtype, 0, + err = MCA_PML_CALL(recv(rbuf, rcount*(size_t)size, rdtype, 0, MCA_COLL_BASE_TAG_GATHER, comm, MPI_STATUS_IGNORE)); if (OMPI_SUCCESS != err) { diff -Nru openmpi-4.0.3/ompi/mca/coll/inter/coll_inter_gatherv.c openmpi-4.1.4/ompi/mca/coll/inter/coll_inter_gatherv.c --- openmpi-4.0.3/ompi/mca/coll/inter/coll_inter_gatherv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/inter/coll_inter_gatherv.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,6 +12,7 @@ * Copyright (c) 2006-2010 University of Houston. All rights reserved. * Copyright (c) 2015-2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2022 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -44,7 +45,8 @@ struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - int i, rank, size, size_local, total=0, err; + int i, rank, size, size_local, err; + size_t total = 0; int *count=NULL, *displace=NULL; char *ptmp_free=NULL, *ptmp=NULL; ompi_datatype_t *ndtype; diff -Nru openmpi-4.0.3/ompi/mca/coll/inter/coll_inter_scatter.c openmpi-4.1.4/ompi/mca/coll/inter/coll_inter_scatter.c --- openmpi-4.0.3/ompi/mca/coll/inter/coll_inter_scatter.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/inter/coll_inter_scatter.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,6 +12,7 @@ * Copyright (c) 2006-2008 University of Houston. All rights reserved. * Copyright (c) 2015-2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2022 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -69,7 +70,7 @@ } ptmp = ptmp_free - gap; - err = MCA_PML_CALL(recv(ptmp, rcount*size_local, rdtype, + err = MCA_PML_CALL(recv(ptmp, rcount*(size_t)size_local, rdtype, root, MCA_COLL_BASE_TAG_SCATTER, comm, MPI_STATUS_IGNORE)); if (OMPI_SUCCESS != err) { @@ -86,7 +87,7 @@ } } else { /* Root sends data to the first process in the remote group */ - err = MCA_PML_CALL(send(sbuf, scount*size, sdtype, 0, + err = MCA_PML_CALL(send(sbuf, scount*(size_t)size, sdtype, 0, MCA_COLL_BASE_TAG_SCATTER, MCA_PML_BASE_SEND_STANDARD, comm)); if (OMPI_SUCCESS != err) { diff -Nru openmpi-4.0.3/ompi/mca/coll/inter/coll_inter_scatterv.c openmpi-4.1.4/ompi/mca/coll/inter/coll_inter_scatterv.c --- openmpi-4.0.3/ompi/mca/coll/inter/coll_inter_scatterv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/inter/coll_inter_scatterv.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,6 +12,7 @@ * Copyright (c) 2006-2010 University of Houston. All rights reserved. * Copyright (c) 2015-2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2022 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -45,7 +46,8 @@ struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - int i, rank, size, err, total=0, size_local; + int i, rank, size, err, size_local; + size_t total = 0; int *counts=NULL,*displace=NULL; char *ptmp_free=NULL, *ptmp=NULL; ompi_datatype_t *ndtype; diff -Nru openmpi-4.0.3/ompi/mca/coll/inter/Makefile.in openmpi-4.1.4/ompi/mca/coll/inter/Makefile.in --- openmpi-4.0.3/ompi/mca/coll/inter/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/inter/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -665,6 +678,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1485,6 +1501,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1517,9 +1537,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1540,6 +1569,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1624,9 +1654,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1687,6 +1714,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1700,6 +1730,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/coll_libnbc_component.c openmpi-4.1.4/ompi/mca/coll/libnbc/coll_libnbc_component.c --- openmpi-4.0.3/ompi/mca/coll/libnbc/coll_libnbc_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/coll_libnbc_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -46,6 +46,59 @@ static bool libnbc_in_progress = false; /* protect from recursive calls */ bool libnbc_ibcast_skip_dt_decision = true; +int libnbc_iallgather_algorithm = 0; /* iallgather user forced algorithm */ +static mca_base_var_enum_value_t iallgather_algorithms[] = { + {0, "ignore"}, + {1, "linear"}, + {2, "recursive_doubling"}, + {0, NULL} +}; + +int libnbc_iallreduce_algorithm = 0; /* iallreduce user forced algorithm */ +static mca_base_var_enum_value_t iallreduce_algorithms[] = { + {0, "ignore"}, + {1, "ring"}, + {2, "binomial"}, + {3, "rabenseifner"}, + {4, "recursive_doubling"}, + {0, NULL} +}; + +int libnbc_ibcast_algorithm = 0; /* ibcast user forced algorithm */ +int libnbc_ibcast_knomial_radix = 4; +static mca_base_var_enum_value_t ibcast_algorithms[] = { + {0, "ignore"}, + {1, "linear"}, + {2, "binomial"}, + {3, "chain"}, + {4, "knomial"}, + {0, NULL} +}; + +int libnbc_iexscan_algorithm = 0; /* iexscan user forced algorithm */ +static mca_base_var_enum_value_t iexscan_algorithms[] = { + {0, "ignore"}, + {1, "linear"}, + {2, "recursive_doubling"}, + {0, NULL} +}; + +int libnbc_ireduce_algorithm = 0; /* ireduce user forced algorithm */ +static mca_base_var_enum_value_t ireduce_algorithms[] = { + {0, "ignore"}, + {1, "chain"}, + {2, "binomial"}, + {3, "rabenseifner"}, + {0, NULL} +}; + +int libnbc_iscan_algorithm = 0; /* iscan user forced algorithm */ +static mca_base_var_enum_value_t iscan_algorithms[] = { + {0, "ignore"}, + {1, "linear"}, + {2, "recursive_doubling"}, + {0, NULL} +}; static int libnbc_open(void); static int libnbc_close(void); @@ -54,7 +107,6 @@ static mca_coll_base_module_t *libnbc_comm_query(struct ompi_communicator_t *, int *); static int libnbc_module_enable(mca_coll_base_module_t *, struct ompi_communicator_t *); - /* * Instantiate the public struct with all of our public information * and pointers to our public functions in it @@ -128,6 +180,8 @@ static int libnbc_register(void) { + mca_base_var_enum_t *new_enum = NULL; + /* Use a low priority, but allow other components to be lower */ libnbc_priority = 10; (void) mca_base_component_var_register(&mca_coll_libnbc_component.super.collm_version, @@ -158,10 +212,76 @@ MCA_BASE_VAR_SCOPE_READONLY, &libnbc_ibcast_skip_dt_decision); - return OMPI_SUCCESS; -} + libnbc_iallgather_algorithm = 0; + (void) mca_base_var_enum_create("coll_libnbc_iallgather_algorithms", iallgather_algorithms, &new_enum); + mca_base_component_var_register(&mca_coll_libnbc_component.super.collm_version, + "iallgather_algorithm", + "Which iallgather algorithm is used: 0 ignore, 1 linear, 2 recursive_doubling", + MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, + OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, + &libnbc_iallgather_algorithm); + OBJ_RELEASE(new_enum); + + libnbc_iallreduce_algorithm = 0; + (void) mca_base_var_enum_create("coll_libnbc_iallreduce_algorithms", iallreduce_algorithms, &new_enum); + mca_base_component_var_register(&mca_coll_libnbc_component.super.collm_version, + "iallreduce_algorithm", + "Which iallreduce algorithm is used: 0 ignore, 1 ring, 2 binomial, 3 rabenseifner, 4 recursive_doubling", + MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, + OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, + &libnbc_iallreduce_algorithm); + OBJ_RELEASE(new_enum); + + libnbc_ibcast_algorithm = 0; + (void) mca_base_var_enum_create("coll_libnbc_ibcast_algorithms", ibcast_algorithms, &new_enum); + mca_base_component_var_register(&mca_coll_libnbc_component.super.collm_version, + "ibcast_algorithm", + "Which ibcast algorithm is used: 0 ignore, 1 linear, 2 binomial, 3 chain, 4 knomial", + MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, + OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, + &libnbc_ibcast_algorithm); + OBJ_RELEASE(new_enum); + libnbc_ibcast_knomial_radix = 4; + (void) mca_base_component_var_register(&mca_coll_libnbc_component.super.collm_version, + "ibcast_knomial_radix", "k-nomial tree radix for the ibcast algorithm (radix > 1)", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, + &libnbc_ibcast_knomial_radix); + + libnbc_iexscan_algorithm = 0; + (void) mca_base_var_enum_create("coll_libnbc_iexscan_algorithms", iexscan_algorithms, &new_enum); + mca_base_component_var_register(&mca_coll_libnbc_component.super.collm_version, + "iexscan_algorithm", + "Which iexscan algorithm is used: 0 ignore, 1 linear, 2 recursive_doubling", + MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, + OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, + &libnbc_iexscan_algorithm); + OBJ_RELEASE(new_enum); + + libnbc_ireduce_algorithm = 0; + (void) mca_base_var_enum_create("coll_libnbc_ireduce_algorithms", ireduce_algorithms, &new_enum); + mca_base_component_var_register(&mca_coll_libnbc_component.super.collm_version, + "ireduce_algorithm", + "Which ireduce algorithm is used: 0 ignore, 1 chain, 2 binomial, 3 rabenseifner", + MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, + OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, + &libnbc_ireduce_algorithm); + OBJ_RELEASE(new_enum); + + libnbc_iscan_algorithm = 0; + (void) mca_base_var_enum_create("coll_libnbc_iscan_algorithms", iscan_algorithms, &new_enum); + mca_base_component_var_register(&mca_coll_libnbc_component.super.collm_version, + "iscan_algorithm", + "Which iscan algorithm is used: 0 ignore, 1 linear, 2 recursive_doubling", + MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, + OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, + &libnbc_iscan_algorithm); + OBJ_RELEASE(new_enum); + return OMPI_SUCCESS; +} /* * Initial query function that is invoked during MPI_INIT, allowing @@ -307,6 +427,7 @@ { ompi_coll_libnbc_request_t* request, *next; int res; + int completed = 0; if (0 == opal_list_get_size (&mca_coll_libnbc_component.active_requests)) { /* no requests -- nothing to do. do not grab a lock */ @@ -344,6 +465,7 @@ if(!request->super.super.req_persistent || !REQUEST_COMPLETE(&request->super.super)) { ompi_request_complete(&request->super.super, true); } + completed++; } OPAL_THREAD_LOCK(&mca_coll_libnbc_component.lock); } @@ -351,7 +473,7 @@ } OPAL_THREAD_UNLOCK(&mca_coll_libnbc_component.lock); - return 0; + return completed; } diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/coll_libnbc.h openmpi-4.1.4/ompi/mca/coll/libnbc/coll_libnbc.h --- openmpi-4.0.3/ompi/mca/coll/libnbc/coll_libnbc.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/coll_libnbc.h 2022-05-29 09:51:40.000000000 +0000 @@ -70,6 +70,13 @@ #define NBC_NUM_COLL 17 extern bool libnbc_ibcast_skip_dt_decision; +extern int libnbc_iallgather_algorithm; +extern int libnbc_iallreduce_algorithm; +extern int libnbc_ibcast_algorithm; +extern int libnbc_ibcast_knomial_radix; +extern int libnbc_iexscan_algorithm; +extern int libnbc_ireduce_algorithm; +extern int libnbc_iscan_algorithm; struct ompi_coll_libnbc_component_t { mca_coll_base_component_2_0_0_t super; @@ -87,7 +94,6 @@ mca_coll_base_module_t super; opal_mutex_t mutex; bool comm_registered; - int tag; #ifdef NBC_CACHE_SCHEDULE void *NBC_Dict[NBC_NUM_COLL]; /* this should point to a struct hb_tree, but since this is a diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/libdict/dict.h openmpi-4.1.4/ompi/mca/coll/libnbc/libdict/dict.h --- openmpi-4.0.3/ompi/mca/coll/libnbc/libdict/dict.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/libdict/dict.h 2022-05-29 09:51:40.000000000 +0000 @@ -62,7 +62,6 @@ int (*_insert) __P((void *obj, void *k, void *d, int ow)); int (*_probe) __P((void *obj, void *key, void **dat)); void *(*_search) __P((void *obj, const void *k)); - const void *(*_csearch) __P((const void *obj, const void *k)); int (*_remove) __P((void *obj, const void *key, int del)); void (*_walk) __P((void *obj, dict_vis_func func)); unsigned (*_count) __P((const void *obj)); @@ -75,7 +74,6 @@ #define dict_insert(dct,k,d,o) (dct)->_insert((dct)->_object, (k), (d), (o)) #define dict_probe(dct,k,d) (dct)->_probe((dct)->_object, (k), (d)) #define dict_search(dct,k) (dct)->_search((dct)->_object, (k)) -#define dict_csearch(dct,k) (dct)->_csearch((dct)->_object, (k)) #define dict_remove(dct,k,del) (dct)->_remove((dct)->_object, (k), (del)) #define dict_walk(dct,f) (dct)->_walk((dct)->_object, (f)) #define dict_count(dct) (dct)->_count((dct)->_object) diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/libdict/dict_private.h openmpi-4.1.4/ompi/mca/coll/libnbc/libdict/dict_private.h --- openmpi-4.0.3/ompi/mca/coll/libnbc/libdict/dict_private.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/libdict/dict_private.h 2022-05-29 09:51:40.000000000 +0000 @@ -15,7 +15,6 @@ typedef int (*insert_func) __P((void *, void *k, void *d, int o)); typedef int (*probe_func) __P((void *, void *k, void **d)); typedef void *(*search_func) __P((void *, const void *k)); -typedef const void *(*csearch_func) __P((const void *, const void *k)); typedef int (*remove_func) __P((void *, const void *k, int d)); typedef void (*walk_func) __P((void *, dict_vis_func visit)); typedef unsigned (*count_func) __P((const void *)); diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/libdict/hb_tree.c openmpi-4.1.4/ompi/mca/coll/libnbc/libdict/hb_tree.c --- openmpi-4.0.3/ompi/mca/coll/libnbc/libdict/hb_tree.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/libdict/hb_tree.c 2022-05-29 09:51:40.000000000 +0000 @@ -90,7 +90,6 @@ dct->_insert = (insert_func)hb_tree_insert; dct->_probe = (probe_func)hb_tree_probe; dct->_search = (search_func)hb_tree_search; - dct->_csearch = (csearch_func)hb_tree_csearch; dct->_remove = (remove_func)hb_tree_remove; dct->_empty = (empty_func)hb_tree_empty; dct->_walk = (walk_func)hb_tree_walk; @@ -170,12 +169,6 @@ return NULL; } -const void * -hb_tree_csearch(const hb_tree *tree, const void *key) -{ - return hb_tree_csearch((hb_tree *)tree, key); -} - int hb_tree_insert(hb_tree *tree, void *key, void *dat, int overwrite) { diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/libdict/hb_tree.h openmpi-4.1.4/ompi/mca/coll/libnbc/libdict/hb_tree.h --- openmpi-4.0.3/ompi/mca/coll/libnbc/libdict/hb_tree.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/libdict/hb_tree.h 2022-05-29 09:51:40.000000000 +0000 @@ -26,7 +26,6 @@ int hb_tree_insert __P((hb_tree *tree, void *key, void *dat, int overwrite)); int hb_tree_probe __P((hb_tree *tree, void *key, void **dat)); void *hb_tree_search __P((hb_tree *tree, const void *key)); -const void *hb_tree_csearch __P((const hb_tree *tree, const void *key)); int hb_tree_remove __P((hb_tree *tree, const void *key, int del)); void hb_tree_empty __P((hb_tree *tree, int del)); void hb_tree_walk __P((hb_tree *tree, dict_vis_func visit)); diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/Makefile.in openmpi-4.1.4/ompi/mca/coll/libnbc/Makefile.in --- openmpi-4.0.3/ompi/mca/coll/libnbc/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -122,6 +122,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -129,6 +131,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -152,6 +155,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -254,6 +258,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -261,6 +266,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -341,6 +347,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -363,9 +370,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -375,6 +386,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -395,6 +407,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -672,6 +685,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1492,6 +1508,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1524,9 +1544,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1547,6 +1576,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1631,9 +1661,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1694,6 +1721,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1707,6 +1737,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/nbc.c openmpi-4.1.4/ompi/mca/coll/libnbc/nbc.c --- openmpi-4.0.3/ompi/mca/coll/libnbc/nbc.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/nbc.c 2022-05-29 09:51:40.000000000 +0000 @@ -16,7 +16,7 @@ * Author(s): Torsten Hoefler * * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2016 IBM Corporation. All rights reserved. + * Copyright (c) 2016-2021 IBM Corporation. All rights reserved. * Copyright (c) 2017 Ian Bradley Morgan and Anthony Skjellum. All * rights reserved. * Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. @@ -25,7 +25,7 @@ * Additional copyrights may follow */ #include "nbc_internal.h" -#include "ompi/mca/coll/base/coll_tags.h" +#include "ompi/mca/coll/base/coll_base_util.h" #include "ompi/op/op.h" #include "ompi/mca/pml/pml.h" @@ -117,7 +117,7 @@ } /* this function puts a send into the schedule */ -static int NBC_Sched_send_internal (const void* buf, char tmpbuf, int count, MPI_Datatype datatype, int dest, bool local, NBC_Schedule *schedule, bool barrier) { +static int NBC_Sched_send_internal (const void* buf, char tmpbuf, size_t count, MPI_Datatype datatype, int dest, bool local, NBC_Schedule *schedule, bool barrier) { NBC_Args_send send_args; int ret; @@ -141,16 +141,16 @@ return OMPI_SUCCESS; } -int NBC_Sched_send (const void* buf, char tmpbuf, int count, MPI_Datatype datatype, int dest, NBC_Schedule *schedule, bool barrier) { +int NBC_Sched_send (const void* buf, char tmpbuf, size_t count, MPI_Datatype datatype, int dest, NBC_Schedule *schedule, bool barrier) { return NBC_Sched_send_internal (buf, tmpbuf, count, datatype, dest, false, schedule, barrier); } -int NBC_Sched_local_send (const void* buf, char tmpbuf, int count, MPI_Datatype datatype, int dest, NBC_Schedule *schedule, bool barrier) { +int NBC_Sched_local_send (const void* buf, char tmpbuf, size_t count, MPI_Datatype datatype, int dest, NBC_Schedule *schedule, bool barrier) { return NBC_Sched_send_internal (buf, tmpbuf, count, datatype, dest, true, schedule, barrier); } /* this function puts a receive into the schedule */ -static int NBC_Sched_recv_internal (void* buf, char tmpbuf, int count, MPI_Datatype datatype, int source, bool local, NBC_Schedule *schedule, bool barrier) { +static int NBC_Sched_recv_internal (void* buf, char tmpbuf, size_t count, MPI_Datatype datatype, int source, bool local, NBC_Schedule *schedule, bool barrier) { NBC_Args_recv recv_args; int ret; @@ -174,16 +174,16 @@ return OMPI_SUCCESS; } -int NBC_Sched_recv (void* buf, char tmpbuf, int count, MPI_Datatype datatype, int source, NBC_Schedule *schedule, bool barrier) { +int NBC_Sched_recv (void* buf, char tmpbuf, size_t count, MPI_Datatype datatype, int source, NBC_Schedule *schedule, bool barrier) { return NBC_Sched_recv_internal(buf, tmpbuf, count, datatype, source, false, schedule, barrier); } -int NBC_Sched_local_recv (void* buf, char tmpbuf, int count, MPI_Datatype datatype, int source, NBC_Schedule *schedule, bool barrier) { +int NBC_Sched_local_recv (void* buf, char tmpbuf, size_t count, MPI_Datatype datatype, int source, NBC_Schedule *schedule, bool barrier) { return NBC_Sched_recv_internal(buf, tmpbuf, count, datatype, source, true, schedule, barrier); } /* this function puts an operation into the schedule */ -int NBC_Sched_op (const void* buf1, char tmpbuf1, void* buf2, char tmpbuf2, int count, MPI_Datatype datatype, +int NBC_Sched_op (const void* buf1, char tmpbuf1, void* buf2, char tmpbuf2, size_t count, MPI_Datatype datatype, MPI_Op op, NBC_Schedule *schedule, bool barrier) { NBC_Args_op op_args; int ret; @@ -210,7 +210,8 @@ } /* this function puts a copy into the schedule */ -int NBC_Sched_copy (void *src, char tmpsrc, int srccount, MPI_Datatype srctype, void *tgt, char tmptgt, int tgtcount, +int NBC_Sched_copy (void *src, char tmpsrc, size_t srccount, MPI_Datatype srctype, + void *tgt, char tmptgt, size_t tgtcount, MPI_Datatype tgttype, NBC_Schedule *schedule, bool barrier) { NBC_Args_copy copy_args; int ret; @@ -238,7 +239,7 @@ } /* this function puts a unpack into the schedule */ -int NBC_Sched_unpack (void *inbuf, char tmpinbuf, int count, MPI_Datatype datatype, void *outbuf, char tmpoutbuf, +int NBC_Sched_unpack (void *inbuf, char tmpinbuf, size_t count, MPI_Datatype datatype, void *outbuf, char tmpoutbuf, NBC_Schedule *schedule, bool barrier) { NBC_Args_unpack unpack_args; int ret; @@ -520,6 +521,7 @@ } else { buf2=opargs.buf2; } + ompi_op_reduce(opargs.op, buf1, buf2, opargs.count, opargs.datatype); break; case COPY: @@ -595,7 +597,6 @@ } int NBC_Init_comm(MPI_Comm comm, NBC_Comminfo *comminfo) { - comminfo->tag= MCA_COLL_BASE_TAG_NONBLOCKING_BASE; #ifdef NBC_CACHE_SCHEDULE /* initialize the NBC_ALLTOALL SchedCache tree */ @@ -672,7 +673,7 @@ int NBC_Schedule_request(NBC_Schedule *schedule, ompi_communicator_t *comm, ompi_coll_libnbc_module_t *module, bool persistent, ompi_request_t **request, void *tmpbuf) { - int ret, tmp_tag; + int ret; bool need_register = false; ompi_coll_libnbc_request_t *handle; @@ -685,13 +686,7 @@ /* update the module->tag here because other processes may have operations * and they may update the module->tag */ - OPAL_THREAD_LOCK(&module->mutex); - tmp_tag = module->tag--; - if (tmp_tag == MCA_COLL_BASE_TAG_NONBLOCKING_END) { - tmp_tag = module->tag = MCA_COLL_BASE_TAG_NONBLOCKING_BASE; - NBC_DEBUG(2,"resetting tags ...\n"); - } - OPAL_THREAD_UNLOCK(&module->mutex); + (void)ompi_coll_base_nbc_reserve_tags(comm, 1); OBJ_RELEASE(schedule); free(tmpbuf); @@ -712,20 +707,15 @@ /******************** Do the tag and shadow comm administration ... ***************/ - OPAL_THREAD_LOCK(&module->mutex); - tmp_tag = module->tag--; - if (tmp_tag == MCA_COLL_BASE_TAG_NONBLOCKING_END) { - tmp_tag = module->tag = MCA_COLL_BASE_TAG_NONBLOCKING_BASE; - NBC_DEBUG(2,"resetting tags ...\n"); - } + handle->tag = ompi_coll_base_nbc_reserve_tags(comm, 1); + OPAL_THREAD_LOCK(&module->mutex); if (true != module->comm_registered) { module->comm_registered = true; need_register = true; } OPAL_THREAD_UNLOCK(&module->mutex); - handle->tag = tmp_tag; /* register progress */ if (need_register) { @@ -737,7 +727,6 @@ } handle->comm=comm; - /*printf("got module: %lu tag: %i\n", module, module->tag);*/ /******************** end of tag and shadow comm administration ... ***************/ handle->comminfo = module; diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_iallgather.c openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_iallgather.c --- openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_iallgather.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_iallgather.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * and Technology (RIST). All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2017-2022 IBM Corporation. All rights reserved. * Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. * $COPYRIGHT$ * @@ -20,6 +20,15 @@ */ #include "nbc_internal.h" +static inline int allgather_sched_linear( + int rank, int comm_size, NBC_Schedule *schedule, const void *sendbuf, + int scount, struct ompi_datatype_t *sdtype, void *recvbuf, int rcount, + struct ompi_datatype_t *rdtype); +static inline int allgather_sched_recursivedoubling( + int rank, int comm_size, NBC_Schedule *schedule, const void *sbuf, + int scount, struct ompi_datatype_t *sdtype, void *rbuf, int rcount, + struct ompi_datatype_t *rdtype); + #ifdef NBC_CACHE_SCHEDULE /* tree comparison function for schedule cache */ int NBC_Allgather_args_compare(NBC_Allgather_args *a, NBC_Allgather_args *b, void *param) { @@ -40,10 +49,6 @@ } #endif -/* simple linear MPI_Iallgather - * the algorithm uses p-1 rounds - * each node sends the packet it received last round (or has in round 0) to it's right neighbor (modulo p) - * each node receives from it's left (modulo p) neighbor */ static int nbc_allgather_init(const void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int recvcount, MPI_Datatype recvtype, struct ompi_communicator_t *comm, ompi_request_t ** request, struct mca_coll_base_module_2_3_0_t *module, bool persistent) @@ -51,16 +56,31 @@ int rank, p, res; MPI_Aint rcvext; NBC_Schedule *schedule; - char *rbuf, *sbuf, inplace; + char *rbuf, inplace; #ifdef NBC_CACHE_SCHEDULE NBC_Allgather_args *args, *found, search; #endif + enum { NBC_ALLGATHER_LINEAR, NBC_ALLGATHER_RDBL} alg; ompi_coll_libnbc_module_t *libnbc_module = (ompi_coll_libnbc_module_t*) module; NBC_IN_PLACE(sendbuf, recvbuf, inplace); rank = ompi_comm_rank (comm); p = ompi_comm_size (comm); + int is_commsize_pow2 = !(p & (p - 1)); + + if (libnbc_iallgather_algorithm == 0) { + alg = NBC_ALLGATHER_LINEAR; + } else { + /* user forced dynamic decision */ + if (libnbc_iallgather_algorithm == 1) { + alg = NBC_ALLGATHER_LINEAR; + } else if (libnbc_iallgather_algorithm == 2 && is_commsize_pow2) { + alg = NBC_ALLGATHER_RDBL; + } else { + alg = NBC_ALLGATHER_LINEAR; + } + } res = ompi_datatype_type_extent(recvtype, &rcvext); if (MPI_SUCCESS != res) { @@ -72,7 +92,7 @@ sendcount = recvcount; } else if (!persistent) { /* for persistent, the copy must be scheduled */ /* copy my data to receive buffer */ - rbuf = (char *) recvbuf + rank * recvcount * rcvext; + rbuf = (char *) recvbuf + (MPI_Aint)rcvext * rank * recvcount; res = NBC_Copy (sendbuf, sendcount, sendtype, rbuf, recvcount, recvtype, comm); if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { return res; @@ -98,36 +118,32 @@ return OMPI_ERR_OUT_OF_RESOURCE; } - sbuf = (char *)recvbuf + rank * recvcount * rcvext; - - if (persistent && !inplace) { /* for nonblocking, data has been copied already */ + if (persistent && !inplace) { + /* for nonblocking, data has been copied already */ /* copy my data to receive buffer (= send buffer of NBC_Sched_send) */ - res = NBC_Sched_copy ((void *)sendbuf, false, sendcount, sendtype, - sbuf, false, recvcount, recvtype, schedule, true); + rbuf = (char *)recvbuf + (MPI_Aint) rcvext * rank * recvcount; + res = NBC_Sched_copy((void *)sendbuf, false, sendcount, sendtype, + rbuf, false, recvcount, recvtype, schedule, true); if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { OBJ_RELEASE(schedule); return res; } } - /* do p-1 rounds */ - for(int r = 0 ; r < p ; ++r) { - if(r != rank) { - /* recv from rank r */ - rbuf = (char *)recvbuf + r * recvcount * rcvext; - res = NBC_Sched_recv (rbuf, false, recvcount, recvtype, r, schedule, false); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - OBJ_RELEASE(schedule); - return res; - } + switch (alg) { + case NBC_ALLGATHER_LINEAR: + res = allgather_sched_linear(rank, p, schedule, sendbuf, sendcount, sendtype, + recvbuf, recvcount, recvtype); + break; + case NBC_ALLGATHER_RDBL: + res = allgather_sched_recursivedoubling(rank, p, schedule, sendbuf, sendcount, + sendtype, recvbuf, recvcount, recvtype); + break; + } - /* send to rank r - not from the sendbuf to optimize MPI_IN_PLACE */ - res = NBC_Sched_send (sbuf, false, recvcount, recvtype, r, schedule, false); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - OBJ_RELEASE(schedule); - return res; - } - } + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { + OBJ_RELEASE(schedule); + return res; } res = NBC_Sched_commit(schedule); @@ -221,7 +237,7 @@ /* do rsize - 1 rounds */ for (int r = 0 ; r < rsize ; ++r) { /* recv from rank r */ - rbuf = (char *) recvbuf + r * recvcount * rcvext; + rbuf = (char *) recvbuf + (MPI_Aint) rcvext * r * recvcount; res = NBC_Sched_recv (rbuf, false, recvcount, recvtype, r, schedule, false); if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { OBJ_RELEASE(schedule); @@ -270,6 +286,109 @@ return OMPI_SUCCESS; } +/* + * allgather_sched_linear + * + * Description: an implementation of Iallgather using linear algorithm + * + * Time: O(comm_size) + * Schedule length (rounds): O(comm_size) + */ +static inline int allgather_sched_linear( + int rank, int comm_size, NBC_Schedule *schedule, const void *sendbuf, + int scount, struct ompi_datatype_t *sdtype, void *recvbuf, int rcount, + struct ompi_datatype_t *rdtype) +{ + int res = OMPI_SUCCESS; + ptrdiff_t rlb, rext; + + res = ompi_datatype_get_extent(rdtype, &rlb, &rext); + char *sbuf = (char *)recvbuf + (MPI_Aint) rext * rank * rcount; + + for (int remote = 0; remote < comm_size ; ++remote) { + if (remote != rank) { + /* Recv from rank remote */ + char *rbuf = (char *)recvbuf + (MPI_Aint) rext * remote * rcount; + res = NBC_Sched_recv(rbuf, false, rcount, rdtype, remote, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + /* Send to rank remote - not from the sendbuf to optimize MPI_IN_PLACE */ + res = NBC_Sched_send(sbuf, false, rcount, rdtype, remote, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } + } + +cleanup_and_return: + return res; +} + +/* + * allgather_sched_recursivedoubling + * + * Description: an implementation of Iallgather using recursive doubling algorithm + * Limitation: power-of-two number of processes only + * Time: O(log(comm_size)) + * Schedule length (rounds): O(log(comm_size)) + * Memory: no additional memory requirements beyond user-supplied buffers. + * + * Example on 4 nodes: + * Initialization: everyone has its own buffer at location rank in rbuf + * # 0 1 2 3 + * [0] [ ] [ ] [ ] + * [ ] [1] [ ] [ ] + * [ ] [ ] [2] [ ] + * [ ] [ ] [ ] [3] + * Step 0: exchange data with (rank ^ 2^0) + * # 0 1 2 3 + * [0] [0] [ ] [ ] + * [1] [1] [ ] [ ] + * [ ] [ ] [2] [2] + * [ ] [ ] [3] [3] + * Step 1: exchange data with (rank ^ 2^1) (if you can) + * # 0 1 2 3 + * [0] [0] [0] [0] + * [1] [1] [1] [1] + * [2] [2] [2] [2] + * [3] [3] [3] [3] + * + */ +static inline int allgather_sched_recursivedoubling( + int rank, int comm_size, NBC_Schedule *schedule, const void *sbuf, + int scount, struct ompi_datatype_t *sdtype, void *rbuf, int rcount, + struct ompi_datatype_t *rdtype) +{ + int res = OMPI_SUCCESS; + ptrdiff_t rlb, rext; + char *tmpsend = NULL, *tmprecv = NULL; + + res = ompi_datatype_get_extent(rdtype, &rlb, &rext); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + int sendblocklocation = rank; + for (int distance = 1; distance < comm_size; distance <<= 1) { + int remote = rank ^ distance; + + tmpsend = (char *)rbuf + (ptrdiff_t)sendblocklocation * (ptrdiff_t)rcount * rext; + if (rank < remote) { + tmprecv = (char *)rbuf + (ptrdiff_t)(sendblocklocation + distance) * (ptrdiff_t)rcount * rext; + } else { + tmprecv = (char *)rbuf + (ptrdiff_t)(sendblocklocation - distance) * (ptrdiff_t)rcount * rext; + sendblocklocation -= distance; + } + + res = NBC_Sched_send(tmpsend, false, (ptrdiff_t)distance * (ptrdiff_t)rcount, + rdtype, remote, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + res = NBC_Sched_recv(tmprecv, false, (ptrdiff_t)distance * (ptrdiff_t)rcount, + rdtype, remote, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } + +cleanup_and_return: + return res; +} + int ompi_coll_libnbc_allgather_init(const void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int recvcount, MPI_Datatype recvtype, struct ompi_communicator_t *comm, MPI_Info info, ompi_request_t ** request, struct mca_coll_base_module_2_3_0_t *module) { diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_iallreduce.c openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_iallreduce.c --- openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_iallreduce.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_iallreduce.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * reserved. * Copyright (c) 2014-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2017-2022 IBM Corporation. All rights reserved. * Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. * $COPYRIGHT$ * @@ -22,17 +22,25 @@ #include "ompi/communicator/communicator.h" #include "ompi/datatype/ompi_datatype.h" #include "ompi/op/op.h" +#include "opal/util/bit_ops.h" #include static inline int allred_sched_diss(int rank, int p, int count, MPI_Datatype datatype, ptrdiff_t gap, const void *sendbuf, void *recvbuf, MPI_Op op, char inplace, NBC_Schedule *schedule, void *tmpbuf); +static inline int allred_sched_recursivedoubling(int rank, int p, const void *sendbuf, void *recvbuf, + int count, MPI_Datatype datatype, ptrdiff_t gap, MPI_Op op, + char inplace, NBC_Schedule *schedule, void *tmpbuf); static inline int allred_sched_ring(int rank, int p, int count, MPI_Datatype datatype, const void *sendbuf, void *recvbuf, MPI_Op op, int size, int ext, NBC_Schedule *schedule, void *tmpbuf); static inline int allred_sched_linear(int rank, int p, const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, ptrdiff_t gap, MPI_Op op, int ext, int size, NBC_Schedule *schedule, void *tmpbuf); +static inline int allred_sched_redscat_allgather( + int rank, int comm_size, int count, MPI_Datatype datatype, ptrdiff_t gap, + const void *sbuf, void *rbuf, MPI_Op op, char inplace, + NBC_Schedule *schedule, void *tmpbuf, struct ompi_communicator_t *comm); #ifdef NBC_CACHE_SCHEDULE /* tree comparison function for schedule cache */ @@ -64,7 +72,7 @@ #ifdef NBC_CACHE_SCHEDULE NBC_Allreduce_args *args, *found, search; #endif - enum { NBC_ARED_BINOMIAL, NBC_ARED_RING } alg; + enum { NBC_ARED_BINOMIAL, NBC_ARED_RING, NBC_ARED_REDSCAT_ALLGATHER, NBC_ARED_RDBL } alg; char inplace; void *tmpbuf = NULL; ompi_coll_libnbc_module_t *libnbc_module = (ompi_coll_libnbc_module_t*) module; @@ -104,13 +112,25 @@ return OMPI_ERR_OUT_OF_RESOURCE; } + alg = NBC_ARED_RING; /* default generic selection */ /* algorithm selection */ - if(p < 4 || size*count < 65536 || !ompi_op_is_commute(op) || inplace) { - alg = NBC_ARED_BINOMIAL; + int nprocs_pof2 = opal_next_poweroftwo(p) >> 1; + if (libnbc_iallreduce_algorithm == 0) { + if(p < 4 || size*count < 65536 || !ompi_op_is_commute(op) || inplace) { + alg = NBC_ARED_BINOMIAL; + } else if (count >= nprocs_pof2 && ompi_op_is_commute(op)) { + alg = NBC_ARED_REDSCAT_ALLGATHER; + } } else { - alg = NBC_ARED_RING; + if (libnbc_iallreduce_algorithm == 1) + alg = NBC_ARED_RING; + else if (libnbc_iallreduce_algorithm == 2) + alg = NBC_ARED_BINOMIAL; + else if (libnbc_iallreduce_algorithm == 3 && count >= nprocs_pof2 && ompi_op_is_commute(op)) + alg = NBC_ARED_REDSCAT_ALLGATHER; + else if (libnbc_iallreduce_algorithm == 4) + alg = NBC_ARED_RDBL; } - #ifdef NBC_CACHE_SCHEDULE /* search schedule in communicator specific tree */ search.sendbuf = sendbuf; @@ -135,9 +155,15 @@ case NBC_ARED_BINOMIAL: res = allred_sched_diss(rank, p, count, datatype, gap, sendbuf, recvbuf, op, inplace, schedule, tmpbuf); break; + case NBC_ARED_REDSCAT_ALLGATHER: + res = allred_sched_redscat_allgather(rank, p, count, datatype, gap, sendbuf, recvbuf, op, inplace, schedule, tmpbuf, comm); + break; case NBC_ARED_RING: res = allred_sched_ring(rank, p, count, datatype, sendbuf, recvbuf, op, size, ext, schedule, tmpbuf); break; + case NBC_ARED_RDBL: + res = allred_sched_recursivedoubling(rank, p, sendbuf, recvbuf, count, datatype, gap, op, inplace, schedule, tmpbuf); + break; } } @@ -340,7 +366,7 @@ root = 0; /* this makes the code for ireduce and iallreduce nearly identical - could be changed to improve performance */ RANK2VRANK(rank, vrank, root); - maxr = (int)ceil((log((double)p)/LOG2)); + maxr = ceil_of_log2(p); /* ensure the result ends up in recvbuf on vrank 0 */ if (0 == (maxr%2)) { rbuf = (void *)(-gap); @@ -449,38 +475,192 @@ return OMPI_SUCCESS; } -static inline int allred_sched_ring (int r, int p, int count, MPI_Datatype datatype, const void *sendbuf, void *recvbuf, MPI_Op op, - int size, int ext, NBC_Schedule *schedule, void *tmpbuf) { +/* + * allred_sched_recursivedoubling + * + * Function: Recursive doubling algorithm for iallreduce operation + * + * Description: Implements recursive doubling algorithm for iallreduce. + * The algorithm preserves order of operations so it can + * be used both by commutative and non-commutative operations. + * Schedule length: O(\log(p)) + * Memory requirements: + * Each process requires a temporary buffer: count * typesize = O(count) + * + * Example on 7 nodes: + * Initial state + * # 0 1 2 3 4 5 6 + * [0] [1] [2] [3] [4] [5] [6] + * Initial adjustment step for non-power of two nodes. + * old rank 1 3 5 6 + * new rank 0 1 2 3 + * [0+1] [2+3] [4+5] [6] + * Step 1 + * old rank 1 3 5 6 + * new rank 0 1 2 3 + * [0+1+] [0+1+] [4+5+] [4+5+] + * [2+3+] [2+3+] [6 ] [6 ] + * Step 2 + * old rank 1 3 5 6 + * new rank 0 1 2 3 + * [0+1+] [0+1+] [0+1+] [0+1+] + * [2+3+] [2+3+] [2+3+] [2+3+] + * [4+5+] [4+5+] [4+5+] [4+5+] + * [6 ] [6 ] [6 ] [6 ] + * Final adjustment step for non-power of two nodes + * # 0 1 2 3 4 5 6 + * [0+1+] [0+1+] [0+1+] [0+1+] [0+1+] [0+1+] [0+1+] + * [2+3+] [2+3+] [2+3+] [2+3+] [2+3+] [2+3+] [2+3+] + * [4+5+] [4+5+] [4+5+] [4+5+] [4+5+] [4+5+] [4+5+] + * [6 ] [6 ] [6 ] [6 ] [6 ] [6 ] [6 ] + * + */ +static inline int allred_sched_recursivedoubling(int rank, int p, const void *sendbuf, void *recvbuf, + int count, MPI_Datatype datatype, ptrdiff_t gap, MPI_Op op, + char inplace, NBC_Schedule *schedule, void *tmpbuf) +{ + int res, pof2, nprocs_rem, vrank; + char *tmpsend = NULL, *tmprecv = NULL, *tmpswap = NULL; + + tmpsend = (char*) tmpbuf - gap; + tmprecv = (char*) recvbuf; + + if (inplace) { + res = NBC_Sched_copy(recvbuf, false, count, datatype, + tmpsend, false, count, datatype, schedule, true); + } else { + res = NBC_Sched_copy((void *)sendbuf, false, count, datatype, + tmpsend, false, count, datatype, schedule, true); + } + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { return res; } + + /* Get nearest power of two less than or equal to comm size */ + pof2 = opal_next_poweroftwo(p) >> 1; + + /* Handle non-power-of-two case: + - Even ranks less than 2 * nprocs_rem send their data to (rank + 1), and + sets new rank to -1. + - Odd ranks less than 2 * nprocs_rem receive data from (rank - 1), + apply appropriate operation, and set new rank to rank/2 + - Everyone else sets rank to rank - nprocs_rem + */ + nprocs_rem = p - pof2; + if (rank < 2 * nprocs_rem) { + if (0 == rank % 2) { /* Even */ + res = NBC_Sched_send(tmpsend, false, count, datatype, rank + 1, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { return res; } + vrank = -1; + } else { /* Odd */ + res = NBC_Sched_recv(tmprecv, false, count, datatype, rank - 1, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { return res; } + + /* tmpsend = tmprecv (op) tmpsend */ + res = NBC_Sched_op(tmprecv, false, tmpsend, false, count, datatype, op, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { return res; } + + vrank = rank >> 1; + } + } else { + vrank = rank - nprocs_rem; + } + + /* Communication/Computation loop + - Exchange message with remote node. + - Perform appropriate operation taking in account order of operations: + result = value (op) result + */ + if (0 <= vrank) { + for (int distance = 1; distance < pof2; distance <<= 1) { + int remote = vrank ^ distance; + + /* Find real rank of remote node */ + if (remote < nprocs_rem) { + remote = remote * 2 + 1; + } else { + remote += nprocs_rem; + } + + /* Exchange the data */ + res = NBC_Sched_send(tmpsend, false, count, datatype, remote, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { return res; } + + res = NBC_Sched_recv(tmprecv, false, count, datatype, remote, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { return res; } + + /* Apply operation */ + if (rank < remote) { + /* tmprecv = tmpsend (op) tmprecv */ + res = NBC_Sched_op(tmpsend, false, tmprecv, false, + count, datatype, op, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { return res; } + + /* Swap tmpsend and tmprecv buffers */ + tmpswap = tmprecv; tmprecv = tmpsend; tmpsend = tmpswap; + } else { + /* tmpsend = tmprecv (op) tmpsend */ + res = NBC_Sched_op(tmprecv, false, tmpsend, false, + count, datatype, op, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { return res; } + } + } + } + + /* Handle non-power-of-two case: + - Even ranks less than 2 * nprocs_rem receive result from (rank + 1) + - Odd ranks less than 2 * nprocs_rem send result from tmpsend to (rank - 1) + */ + if (rank < 2 * nprocs_rem) { + if (0 == rank % 2) { /* Even */ + res = NBC_Sched_recv(recvbuf, false, count, datatype, rank + 1, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { return res; } + tmpsend = (char *)recvbuf; + } else { /* Odd */ + res = NBC_Sched_send(tmpsend, false, count, datatype, rank - 1, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { return res; } + } + } + + /* Copy result back into recvbuf */ + if (tmpsend != recvbuf) { + res = NBC_Sched_copy(tmpsend, false, count, datatype, + recvbuf, false, count, datatype, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { return res; } + } + + return OMPI_SUCCESS; +} + +static inline int +allred_sched_ring(int r, int p, + int count, MPI_Datatype datatype, const void *sendbuf, void *recvbuf, + MPI_Op op, int size, int ext, NBC_Schedule *schedule, void *tmpbuf) +{ int segsize, *segsizes, *segoffsets; /* segment sizes and offsets per segment (number of segments == number of nodes */ - int speer, rpeer; /* send and recvpeer */ + int speer, rpeer; /* send and recv peers */ int res = OMPI_SUCCESS; - if (count == 0) { + if (0 == count) { return OMPI_SUCCESS; } - segsizes = (int *) malloc (sizeof (int) * p); - segoffsets = (int *) malloc (sizeof (int) * p); - if (NULL == segsizes || NULL == segoffsets) { - free (segsizes); - free (segoffsets); + segsizes = (int *) malloc((2 * p + 1 ) *sizeof (int)); + if (NULL == segsizes) { return OMPI_ERR_OUT_OF_RESOURCE; } + segoffsets = segsizes + p; - segsize = (count + p - 1) / p; /* size of the segments */ + segsize = count / p; /* size of the segments across the last ranks. + The remainder will be evenly distributed across the smaller ranks */ segoffsets[0] = 0; - for (int i = 0, mycount = count ; i < p ; ++i) { - mycount -= segsize; + for (int i = 0, mycount = count % p; i < p ; ++i) { segsizes[i] = segsize; - if (mycount < 0) { - segsizes[i] = segsize + mycount; - mycount = 0; + if( mycount > 0 ) { /* We have extra segments to distribute */ + segsizes[i]++; + mycount--; } - if (i) { - segoffsets[i] = segoffsets[i-1] + segsizes[i-1]; - } + segoffsets[i+1] = segoffsets[i] + segsizes[i]; } /* reduce peers */ @@ -588,9 +768,9 @@ /* first p-1 rounds are reductions */ for (int round = 0 ; round < p - 1 ; ++round) { int selement = (r+1-round + 2*p /*2*p avoids negative mod*/)%p; /* the element I am sending */ - int soffset = segoffsets[selement]*ext; + size_t soffset = segoffsets[selement]*(size_t)ext; int relement = (r-round + 2*p /*2*p avoids negative mod*/)%p; /* the element that I receive from my neighbor */ - int roffset = segoffsets[relement]*ext; + size_t roffset = segoffsets[relement]*(size_t)ext; /* first message come out of sendbuf */ if (round == 0) { @@ -602,49 +782,48 @@ } if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - break; + goto free_and_return; } - - res = NBC_Sched_recv ((char *) recvbuf + roffset, false, segsizes[relement], datatype, rpeer, - schedule, true); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - break; + if( recvbuf != sendbuf ) { /* check for MPI_IN_PLACE */ + res = NBC_Sched_recv ((char *) recvbuf + roffset, false, segsizes[relement], datatype, rpeer, + schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { + goto free_and_return; + } + res = NBC_Sched_op ((char *) sendbuf + roffset, false, (char *) recvbuf + roffset, false, + segsizes[relement], datatype, op, schedule, true); + } else { + res = NBC_Sched_recv ((char *) tmpbuf, false, segsizes[relement], datatype, rpeer, + schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { + goto free_and_return; + } + res = NBC_Sched_op ((char *) tmpbuf, false, (char *) recvbuf + roffset, false, + segsizes[relement], datatype, op, schedule, true); } - - res = NBC_Sched_op ((char *) sendbuf + roffset, false, (char *) recvbuf + roffset, false, - segsizes[relement], datatype, op, schedule, true); if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - break; + goto free_and_return; } } - - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - free (segsizes); - free (segoffsets); - return res; - } - for (int round = p - 1 ; round < 2 * p - 2 ; ++round) { int selement = (r+1-round + 2*p /*2*p avoids negative mod*/)%p; /* the element I am sending */ - int soffset = segoffsets[selement]*ext; + size_t soffset = segoffsets[selement]*(size_t)ext; int relement = (r-round + 2*p /*2*p avoids negative mod*/)%p; /* the element that I receive from my neighbor */ - int roffset = segoffsets[relement]*ext; + size_t roffset = segoffsets[relement]*(size_t)ext; res = NBC_Sched_send ((char *) recvbuf + soffset, false, segsizes[selement], datatype, speer, schedule, false); if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { break; } - res = NBC_Sched_recv ((char *) recvbuf + roffset, false, segsizes[relement], datatype, rpeer, schedule, true); if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { break; } } - +free_and_return: free (segsizes); - free (segoffsets); return res; } @@ -735,6 +914,271 @@ return OMPI_SUCCESS; } +/* + * allred_sched_redscat_allgather: + * + * Description: an implementation of Rabenseifner's Allreduce algorithm [1, 2]. + * [1] Rajeev Thakur, Rolf Rabenseifner and William Gropp. + * Optimization of Collective Communication Operations in MPICH // + * The Int. Journal of High Performance Computing Applications. Vol 19, + * Issue 1, pp. 49--66. + * [2] http://www.hlrs.de/mpi/myreduce.html. + * + * This algorithm is a combination of a reduce-scatter implemented with + * recursive vector halving and recursive distance doubling, followed either + * by an allgather implemented with recursive doubling. + * + * Step 1. If the number of processes is not a power of two, reduce it to + * the nearest lower power of two (p' = 2^{\floor{\log_2 p}}) + * by removing r = p - p' extra processes as follows. In the first 2r processes + * (ranks 0 to 2r - 1), all the even ranks send the second half of the input + * vector to their right neighbor (rank + 1), and all the odd ranks send + * the first half of the input vector to their left neighbor (rank - 1). + * The even ranks compute the reduction on the first half of the vector and + * the odd ranks compute the reduction on the second half. The odd ranks then + * send the result to their left neighbors (the even ranks). As a result, + * the even ranks among the first 2r processes now contain the reduction with + * the input vector on their right neighbors (the odd ranks). These odd ranks + * do not participate in the rest of the algorithm, which leaves behind + * a power-of-two number of processes. The first r even-ranked processes and + * the last p - 2r processes are now renumbered from 0 to p' - 1. + * + * Step 2. The remaining processes now perform a reduce-scatter by using + * recursive vector halving and recursive distance doubling. The even-ranked + * processes send the second half of their buffer to rank + 1 and the odd-ranked + * processes send the first half of their buffer to rank - 1. All processes + * then compute the reduction between the local buffer and the received buffer. + * In the next log_2(p') - 1 steps, the buffers are recursively halved, and the + * distance is doubled. At the end, each of the p' processes has 1 / p' of the + * total reduction result. + * + * Step 3. An allgather is performed by using recursive vector doubling and + * distance halving. All exchanges are executed in reverse order relative + * to recursive doubling on previous step. If the number of processes is not + * a power of two, the total result vector must be sent to the r processes + * that were removed in the first step. + * + * Limitations: + * count >= 2^{\floor{\log_2 p}} + * commutative operations only + * intra-communicators only + * + * Memory requirements (per process): + * count * typesize + 4 * \log_2(p) * sizeof(int) = O(count) + * + * Schedule length (rounds): O(\log(p)) + */ +static inline int allred_sched_redscat_allgather( + int rank, int comm_size, int count, MPI_Datatype datatype, ptrdiff_t gap, + const void *sbuf, void *rbuf, MPI_Op op, char inplace, + NBC_Schedule *schedule, void *tmpbuf, struct ompi_communicator_t *comm) +{ + int res = OMPI_SUCCESS; + int *rindex = NULL, *rcount = NULL, *sindex = NULL, *scount = NULL; + /* Find nearest power-of-two less than or equal to comm_size */ + int nsteps = opal_hibit(comm_size, comm->c_cube_dim + 1); /* ilog2(comm_size) */ + int nprocs_pof2 = 1 << nsteps; /* flp2(comm_size) */ + if (!inplace) { + res = NBC_Sched_copy((char *)sbuf, false, count, datatype, + rbuf, false, count, datatype, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } + char *tmp_buf = (char *)tmpbuf - gap; + ptrdiff_t lb, extent; + ompi_datatype_get_extent(datatype, &lb, &extent); + /* + * Step 1. Reduce the number of processes to the nearest lower power of two + * p' = 2^{\floor{\log_2 p}} by removing r = p - p' processes. + * 1. In the first 2r processes (ranks 0 to 2r - 1), all the even ranks send + * the second half of the input vector to their right neighbor (rank + 1) + * and all the odd ranks send the first half of the input vector to their + * left neighbor (rank - 1). + * 2. All 2r processes compute the reduction on their half. + * 3. The odd ranks then send the result to their left neighbors + * (the even ranks). + * + * The even ranks (0 to 2r - 1) now contain the reduction with the input + * vector on their right neighbors (the odd ranks). The first r even + * processes and the p - 2r last processes are renumbered from + * 0 to 2^{\floor{\log_2 p}} - 1. + */ + int vrank, step, wsize; + int nprocs_rem = comm_size - nprocs_pof2; + if (rank < 2 * nprocs_rem) { + int count_lhalf = count / 2; + int count_rhalf = count - count_lhalf; + if (rank % 2 != 0) { + /* + * Odd process -- exchange with rank - 1 + * Send the left half of the input vector to the left neighbor, + * Recv the right half of the input vector from the left neighbor + */ + res = NBC_Sched_send(rbuf, false, count_lhalf, datatype, rank - 1, + schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + res = NBC_Sched_recv(tmp_buf + (ptrdiff_t)count_lhalf * extent, + false, count_rhalf, datatype, rank - 1, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + res = NBC_Sched_op(tmp_buf + (ptrdiff_t)count_lhalf * extent, + false, (char *)rbuf + (ptrdiff_t)count_lhalf * extent, + false, count_rhalf, datatype, op, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + /* Send the right half to the left neighbor */ + res = NBC_Sched_send((char *)rbuf + (ptrdiff_t)count_lhalf * extent, + false, count_rhalf, datatype, rank - 1, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + /* This process does not participate in recursive doubling phase */ + vrank = -1; + } else { + /* + * Even process -- exchange with rank + 1 + * Send the right half of the input vector to the right neighbor, + * Recv the left half of the input vector from the right neighbor + */ + res = NBC_Sched_send((char *)rbuf + (ptrdiff_t)count_lhalf * extent, + false, count_rhalf, datatype, rank + 1, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + res = NBC_Sched_recv(tmp_buf, false, count_lhalf, datatype, rank + 1, + schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + res = NBC_Sched_op(tmp_buf, false, rbuf, false, count_lhalf, + datatype, op, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + /* Recv the right half from the right neighbor */ + res = NBC_Sched_recv((char *)rbuf + (ptrdiff_t)count_lhalf * extent, + false, count_rhalf, datatype, rank + 1, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + vrank = rank / 2; + } + } else { /* rank >= 2 * nprocs_rem */ + vrank = rank - nprocs_rem; + } + /* + * Step 2. Reduce-scatter implemented with recursive vector halving and + * recursive distance doubling. We have p' = 2^{\floor{\log_2 p}} + * power-of-two number of processes with new ranks (vrank) and result in rbuf. + * + * The even-ranked processes send the right half of their buffer to rank + 1 + * and the odd-ranked processes send the left half of their buffer to + * rank - 1. All processes then compute the reduction between the local + * buffer and the received buffer. In the next \log_2(p') - 1 steps, the + * buffers are recursively halved, and the distance is doubled. At the end, + * each of the p' processes has 1 / p' of the total reduction result. + */ + rindex = malloc(sizeof(*rindex) * nsteps); + sindex = malloc(sizeof(*sindex) * nsteps); + rcount = malloc(sizeof(*rcount) * nsteps); + scount = malloc(sizeof(*scount) * nsteps); + if (NULL == rindex || NULL == sindex || NULL == rcount || NULL == scount) { + res = OMPI_ERR_OUT_OF_RESOURCE; + goto cleanup_and_return; + } + if (vrank != -1) { + step = 0; + wsize = count; + sindex[0] = rindex[0] = 0; + for (int mask = 1; mask < nprocs_pof2; mask <<= 1) { + /* + * On each iteration: rindex[step] = sindex[step] -- begining of the + * current window. Length of the current window is storded in wsize. + */ + int vdest = vrank ^ mask; + /* Translate vdest virtual rank to real rank */ + int dest = (vdest < nprocs_rem) ? vdest * 2 : vdest + nprocs_rem; + if (rank < dest) { + /* + * Recv into the left half of the current window, send the right + * half of the window to the peer (perform reduce on the left + * half of the current window) + */ + rcount[step] = wsize / 2; + scount[step] = wsize - rcount[step]; + sindex[step] = rindex[step] + rcount[step]; + } else { + /* + * Recv into the right half of the current window, send the left + * half of the window to the peer (perform reduce on the right + * half of the current window) + */ + scount[step] = wsize / 2; + rcount[step] = wsize - scount[step]; + rindex[step] = sindex[step] + scount[step]; + } + /* Send part of data from the rbuf, recv into the tmp_buf */ + res = NBC_Sched_send((char *)rbuf + (ptrdiff_t)sindex[step] * extent, + false, scount[step], datatype, dest, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + res = NBC_Sched_recv((char *)tmp_buf + (ptrdiff_t)rindex[step] * extent, + false, rcount[step], datatype, dest, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + /* Local reduce: rbuf[] = tmp_buf[] rbuf[] */ + res = NBC_Sched_op((char *)tmp_buf + (ptrdiff_t)rindex[step] * extent, + false, (char *)rbuf + (ptrdiff_t)rindex[step] * extent, + false, rcount[step], datatype, op, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + /* Move the current window to the received message */ + if (step + 1 < nsteps) { + rindex[step + 1] = rindex[step]; + sindex[step + 1] = rindex[step]; + wsize = rcount[step]; + step++; + } + } + /* + * Assertion: each process has 1 / p' of the total reduction result: + * rcount[nsteps - 1] elements in the rbuf[rindex[nsteps - 1], ...]. + */ + /* + * Step 3. Allgather by the recursive doubling algorithm. + * Each process has 1 / p' of the total reduction result: + * rcount[nsteps - 1] elements in the rbuf[rindex[nsteps - 1], ...]. + * All exchanges are executed in reverse order relative + * to recursive doubling (previous step). + */ + step = nsteps - 1; + for (int mask = nprocs_pof2 >> 1; mask > 0; mask >>= 1) { + int vdest = vrank ^ mask; + /* Translate vdest virtual rank to real rank */ + int dest = (vdest < nprocs_rem) ? vdest * 2 : vdest + nprocs_rem; + /* + * Send rcount[step] elements from rbuf[rindex[step]...] + * Recv scount[step] elements to rbuf[sindex[step]...] + */ + res = NBC_Sched_send((char *)rbuf + (ptrdiff_t)rindex[step] * extent, + false, rcount[step], datatype, dest, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + res = NBC_Sched_recv((char *)rbuf + (ptrdiff_t)sindex[step] * extent, + false, scount[step], datatype, dest, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + step--; + } + } + /* + * Step 4. Send total result to excluded odd ranks. + */ + if (rank < 2 * nprocs_rem) { + if (rank % 2 != 0) { + /* Odd process -- recv result from rank - 1 */ + res = NBC_Sched_recv(rbuf, false, count, datatype, rank - 1, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } else { + /* Even process -- send result to rank + 1 */ + res = NBC_Sched_send(rbuf, false, count, datatype, rank + 1, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } + } + cleanup_and_return: + if (NULL != rindex) + free(rindex); + if (NULL != sindex) + free(sindex); + if (NULL != rcount) + free(rcount); + if (NULL != scount) + free(scount); + return res; +} + int ompi_coll_libnbc_allreduce_init(const void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op op, struct ompi_communicator_t *comm, MPI_Info info, ompi_request_t ** request, struct mca_coll_base_module_2_3_0_t *module) { @@ -758,4 +1202,3 @@ return OMPI_SUCCESS; } - diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_ialltoall.c openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_ialltoall.c --- openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_ialltoall.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_ialltoall.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * Copyright (c) 2014 NVIDIA Corporation. All rights reserved. * Copyright (c) 2014-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2017-2022 IBM Corporation. All rights reserved. * Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. * $COPYRIGHT$ * @@ -331,14 +331,14 @@ for (int i = 0; i < rsize; i++) { /* post all sends */ - sbuf = (char *) sendbuf + i * sendcount * sndext; + sbuf = (char *) sendbuf + (MPI_Aint) sndext * i * sendcount; res = NBC_Sched_send (sbuf, false, sendcount, sendtype, i, schedule, false); if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { break; } /* post all receives */ - rbuf = (char *) recvbuf + i * recvcount * rcvext; + rbuf = (char *) recvbuf + (MPI_Aint) rcvext * i * recvcount; res = NBC_Sched_recv (rbuf, false, recvcount, recvtype, i, schedule, false); if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { break; @@ -397,13 +397,13 @@ int sndpeer = (rank + r) % p; int rcvpeer = (rank - r + p) % p; - char *rbuf = (char *) recvbuf + rcvpeer * recvcount * rcvext; + char *rbuf = (char *) recvbuf + (MPI_Aint) rcvext * rcvpeer * recvcount; res = NBC_Sched_recv (rbuf, false, recvcount, recvtype, rcvpeer, schedule, false); if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { return res; } - char *sbuf = (char *) sendbuf + sndpeer * sendcount * sndext; + char *sbuf = (char *) sendbuf + (MPI_Aint) sndext * sndpeer * sendcount; res = NBC_Sched_send (sbuf, false, sendcount, sendtype, sndpeer, schedule, true); if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { return res; @@ -523,7 +523,7 @@ /* phase 3 - reorder - data is now in wrong order in tmpbuf - reorder it into recvbuf */ for (int i = 0 ; i < p; ++i) { - rbuf = (char *) recvbuf + ((rank - i + p) % p) * recvcount * rcvext; + rbuf = (char *) recvbuf + (MPI_Aint) rcvext * ((rank - i + p) % p) * recvcount; res = NBC_Sched_unpack ((void *)(intptr_t) (i * datasize), true, recvcount, recvtype, rbuf, false, schedule, false); if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_ibarrier.c openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_ibarrier.c --- openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_ibarrier.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_ibarrier.c 2022-05-29 09:51:40.000000000 +0000 @@ -45,7 +45,7 @@ return OMPI_ERR_OUT_OF_RESOURCE; } - maxround = (int)ceil((log((double)p)/LOG2)-1); + maxround = ceil_of_log2(p) -1; for (int round = 0 ; round <= maxround ; ++round) { sendpeer = (rank + (1 << round)) % p; diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_ibcast.c openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_ibcast.c --- openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_ibcast.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_ibcast.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * and Technology (RIST). All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2017 IBM Corporation. All rights reserved. + * Copyright (c) 2016-2022 IBM Corporation. All rights reserved. * Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. * $COPYRIGHT$ * @@ -26,6 +26,8 @@ MPI_Datatype datatype); static inline int bcast_sched_chain(int rank, int p, int root, NBC_Schedule *schedule, void *buffer, int count, MPI_Datatype datatype, int fragsize, size_t size); +static inline int bcast_sched_knomial(int rank, int comm_size, int root, NBC_Schedule *schedule, void *buf, + int count, MPI_Datatype datatype, int knomial_radix); #ifdef NBC_CACHE_SCHEDULE /* tree comparison function for schedule cache */ @@ -55,7 +57,7 @@ #ifdef NBC_CACHE_SCHEDULE NBC_Bcast_args *args, *found, search; #endif - enum { NBC_BCAST_LINEAR, NBC_BCAST_BINOMIAL, NBC_BCAST_CHAIN } alg; + enum { NBC_BCAST_LINEAR, NBC_BCAST_BINOMIAL, NBC_BCAST_CHAIN, NBC_BCAST_KNOMIAL } alg; ompi_coll_libnbc_module_t *libnbc_module = (ompi_coll_libnbc_module_t*) module; rank = ompi_comm_rank (comm); @@ -73,25 +75,40 @@ segsize = 16384; /* algorithm selection */ - if( libnbc_ibcast_skip_dt_decision ) { - if (p <= 4) { - alg = NBC_BCAST_LINEAR; + if (libnbc_ibcast_algorithm == 0) { + if( libnbc_ibcast_skip_dt_decision ) { + if (p <= 4) { + alg = NBC_BCAST_LINEAR; + } + else { + alg = NBC_BCAST_BINOMIAL; + } } else { - alg = NBC_BCAST_BINOMIAL; + if (p <= 4) { + alg = NBC_BCAST_LINEAR; + } else if (size * count < 65536) { + alg = NBC_BCAST_BINOMIAL; + } else if (size * count < 524288) { + alg = NBC_BCAST_CHAIN; + segsize = 8192; + } else { + alg = NBC_BCAST_CHAIN; + segsize = 32768; + } } - } - else { - if (p <= 4) { + } else { + /* user forced dynamic decision */ + if (libnbc_ibcast_algorithm == 1) { alg = NBC_BCAST_LINEAR; - } else if (size * count < 65536) { + } else if (libnbc_ibcast_algorithm == 2) { alg = NBC_BCAST_BINOMIAL; - } else if (size * count < 524288) { + } else if (libnbc_ibcast_algorithm == 3) { alg = NBC_BCAST_CHAIN; - segsize = 8192; + } else if (libnbc_ibcast_algorithm == 4 && libnbc_ibcast_knomial_radix > 1) { + alg = NBC_BCAST_KNOMIAL; } else { - alg = NBC_BCAST_CHAIN; - segsize = 32768; + alg = NBC_BCAST_LINEAR; } } @@ -119,6 +136,9 @@ case NBC_BCAST_CHAIN: res = bcast_sched_chain(rank, p, root, schedule, buffer, count, datatype, segsize, size); break; + case NBC_BCAST_KNOMIAL: + res = bcast_sched_knomial(rank, p, root, schedule, buffer, count, datatype, libnbc_ibcast_knomial_radix); + break; } if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { @@ -218,7 +238,7 @@ static inline int bcast_sched_binomial(int rank, int p, int root, NBC_Schedule *schedule, void *buffer, int count, MPI_Datatype datatype) { int maxr, vrank, peer, res; - maxr = (int)ceil((log((double)p)/LOG2)); + maxr = ceil_of_log2(p); RANK2VRANK(rank, vrank, root); @@ -307,11 +327,11 @@ fragcount = count/numfrag; for (int fragnum = 0 ; fragnum < numfrag ; ++fragnum) { - buf = (char *) buffer + fragnum * fragcount * ext; + buf = (char *) buffer + (MPI_Aint)ext * fragnum * fragcount; thiscount = fragcount; if (fragnum == numfrag-1) { /* last fragment may not be full */ - thiscount = count - fragcount * fragnum; + thiscount = count - (size_t)fragcount * fragnum; } /* root does not receive */ @@ -342,6 +362,52 @@ return OMPI_SUCCESS; } +/* + * bcast_sched_knomial: + * + * Description: an implementation of Ibcast using k-nomial tree algorithm + * + * Time: (radix - 1)O(log_{radix}(comm_size)) + * Schedule length (rounds): O(log(comm_size)) + */ +static inline int bcast_sched_knomial( + int rank, int comm_size, int root, NBC_Schedule *schedule, void *buf, + int count, MPI_Datatype datatype, int knomial_radix) +{ + int res = OMPI_SUCCESS; + + /* Receive from parent */ + int vrank = (rank - root + comm_size) % comm_size; + int mask = 0x1; + while (mask < comm_size) { + if (vrank % (knomial_radix * mask)) { + int parent = vrank / (knomial_radix * mask) * (knomial_radix * mask); + parent = (parent + root) % comm_size; + res = NBC_Sched_recv(buf, false, count, datatype, parent, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + break; + } + mask *= knomial_radix; + } + mask /= knomial_radix; + + /* Send data to all children */ + while (mask > 0) { + for (int r = 1; r < knomial_radix; r++) { + int child = vrank + mask * r; + if (child < comm_size) { + child = (child + root) % comm_size; + res = NBC_Sched_send(buf, false, count, datatype, child, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } + } + mask /= knomial_radix; + } + +cleanup_and_return: + return res; +} + static int nbc_bcast_inter_init(void *buffer, int count, MPI_Datatype datatype, int root, struct ompi_communicator_t *comm, ompi_request_t ** request, struct mca_coll_base_module_2_3_0_t *module, bool persistent) { diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_iexscan.c openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_iexscan.c --- openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_iexscan.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_iexscan.c 2022-05-29 09:51:40.000000000 +0000 @@ -18,8 +18,20 @@ * Author(s): Torsten Hoefler * */ +#include "opal/align.h" +#include "ompi/op/op.h" + #include "nbc_internal.h" +static inline int exscan_sched_linear( + int rank, int comm_size, const void *sendbuf, void *recvbuf, int count, + MPI_Datatype datatype, MPI_Op op, char inplace, NBC_Schedule *schedule, + void *tmpbuf); +static inline int exscan_sched_recursivedoubling( + int rank, int comm_size, const void *sendbuf, void *recvbuf, + int count, MPI_Datatype datatype, MPI_Op op, char inplace, + NBC_Schedule *schedule, void *tmpbuf1, void *tmpbuf2); + #ifdef NBC_CACHE_SCHEDULE /* tree comparison function for schedule cache */ int NBC_Scan_args_compare(NBC_Scan_args *a, NBC_Scan_args *b, void *param) { @@ -39,32 +51,44 @@ } #endif -/* linear iexscan - * working principle: - * 1. each node (but node 0) receives from left neigbor - * 2. performs op - * 3. all but rank p-1 do sends to it's right neigbor and exits - * - */ static int nbc_exscan_init(const void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op op, struct ompi_communicator_t *comm, ompi_request_t ** request, struct mca_coll_base_module_2_3_0_t *module, bool persistent) { int rank, p, res; - ptrdiff_t gap, span; NBC_Schedule *schedule; -#ifdef NBC_CACHE_SCHEDULE - NBC_Scan_args *args, *found, search; -#endif char inplace; - void *tmpbuf = NULL; + void *tmpbuf = NULL, *tmpbuf1 = NULL, *tmpbuf2 = NULL; + enum { NBC_EXSCAN_LINEAR, NBC_EXSCAN_RDBL } alg; ompi_coll_libnbc_module_t *libnbc_module = (ompi_coll_libnbc_module_t*) module; + ptrdiff_t span, gap; NBC_IN_PLACE(sendbuf, recvbuf, inplace); - rank = ompi_comm_rank (comm); - p = ompi_comm_size (comm); + rank = ompi_comm_rank(comm); + p = ompi_comm_size(comm); + + if (p < 2) { + return nbc_get_noop_request(persistent, request); + } + + span = opal_datatype_span(&datatype->super, count, &gap); + if (libnbc_iexscan_algorithm == 2) { + alg = NBC_EXSCAN_RDBL; + ptrdiff_t span_align = OPAL_ALIGN(span, datatype->super.align, ptrdiff_t); + tmpbuf = malloc(span_align + span); + if (NULL == tmpbuf) { return OMPI_ERR_OUT_OF_RESOURCE; } + tmpbuf1 = (void *)(-gap); + tmpbuf2 = (char *)(span_align) - gap; + } else { + alg = NBC_EXSCAN_LINEAR; + if (rank > 0) { + tmpbuf = malloc(span); + if (NULL == tmpbuf) { return OMPI_ERR_OUT_OF_RESOURCE; } + } + } #ifdef NBC_CACHE_SCHEDULE + NBC_Scan_args *args, *found, search; /* search schedule in communicator specific tree */ search.sendbuf = sendbuf; search.recvbuf = recvbuf; @@ -74,84 +98,31 @@ found = (NBC_Scan_args *) hb_tree_search ((hb_tree *) libnbc_module->NBC_Dict[NBC_EXSCAN], &search); if (NULL == found) { #endif - schedule = OBJ_NEW(NBC_Schedule); - if (OPAL_UNLIKELY(NULL == schedule)) { - free(tmpbuf); - return OMPI_ERR_OUT_OF_RESOURCE; - } - - if (rank != 0) { - span = opal_datatype_span(&datatype->super, count, &gap); - tmpbuf = malloc(span); - if (NULL == tmpbuf) { - return OMPI_ERR_OUT_OF_RESOURCE; - } - if (inplace) { - res = NBC_Sched_copy(recvbuf, false, count, datatype, - (char *)tmpbuf-gap, false, count, datatype, schedule, false); - } else { - res = NBC_Sched_copy((void *)sendbuf, false, count, datatype, - (char *)tmpbuf-gap, false, count, datatype, schedule, false); - } - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - OBJ_RELEASE(schedule); - free(tmpbuf); - return res; - } - - res = NBC_Sched_recv (recvbuf, false, count, datatype, rank-1, schedule, false); - - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - OBJ_RELEASE(schedule); - free(tmpbuf); - return res; - } - - if (rank < p - 1) { - /* we have to wait until we have the data */ - res = NBC_Sched_barrier(schedule); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - OBJ_RELEASE(schedule); - free(tmpbuf); - return res; - } - - res = NBC_Sched_op (recvbuf, false, (void *)(-gap), true, count, - datatype, op, schedule, true); - - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - OBJ_RELEASE(schedule); - free(tmpbuf); - return res; - } + schedule = OBJ_NEW(NBC_Schedule); + if (OPAL_UNLIKELY(NULL == schedule)) { + free(tmpbuf); + return OMPI_ERR_OUT_OF_RESOURCE; + } - /* send reduced data onward */ - res = NBC_Sched_send ((void *)(-gap), true, count, datatype, rank + 1, schedule, false); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - OBJ_RELEASE(schedule); - free(tmpbuf); - return res; - } - } - } else if (p > 1) { - if (inplace) { - res = NBC_Sched_send (recvbuf, false, count, datatype, 1, schedule, false); - } else { - res = NBC_Sched_send (sendbuf, false, count, datatype, 1, schedule, false); - } - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - OBJ_RELEASE(schedule); - free(tmpbuf); - return res; - } - } + if (alg == NBC_EXSCAN_LINEAR) { + res = exscan_sched_linear(rank, p, sendbuf, recvbuf, count, datatype, + op, inplace, schedule, tmpbuf); + } else { + res = exscan_sched_recursivedoubling(rank, p, sendbuf, recvbuf, count, + datatype, op, inplace, schedule, tmpbuf1, tmpbuf2); + } + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { + OBJ_RELEASE(schedule); + free(tmpbuf); + return res; + } - res = NBC_Sched_commit(schedule); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - OBJ_RELEASE(schedule); - free(tmpbuf); - return res; - } + res = NBC_Sched_commit(schedule); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { + OBJ_RELEASE(schedule); + free(tmpbuf); + return res; + } #ifdef NBC_CACHE_SCHEDULE /* save schedule to tree */ @@ -224,3 +195,168 @@ return OMPI_SUCCESS; } + +/* + * exscan_sched_linear: + * + * Function: Linear algorithm for exclusive scan. + * Accepts: Same as MPI_Iexscan + * Returns: MPI_SUCCESS or error code + * + * Working principle: + * 1. Each process (but process 0) receives from left neighbor + * 2. Performs op + * 3. All but rank p - 1 do sends to it's right neighbor and exits + * + * Schedule length: O(1) + */ +static inline int exscan_sched_linear( + int rank, int comm_size, const void *sendbuf, void *recvbuf, int count, + MPI_Datatype datatype, MPI_Op op, char inplace, NBC_Schedule *schedule, + void *tmpbuf) +{ + int res = OMPI_SUCCESS; + ptrdiff_t gap; + opal_datatype_span(&datatype->super, count, &gap); + + if (rank > 0) { + if (inplace) { + res = NBC_Sched_copy(recvbuf, false, count, datatype, + (char *)tmpbuf - gap, false, count, datatype, schedule, false); + } else { + res = NBC_Sched_copy((void *)sendbuf, false, count, datatype, + (char *)tmpbuf - gap, false, count, datatype, schedule, false); + } + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + res = NBC_Sched_recv(recvbuf, false, count, datatype, rank - 1, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + if (rank < comm_size - 1) { + /* We have to wait until we have the data */ + res = NBC_Sched_barrier(schedule); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + res = NBC_Sched_op(recvbuf, false, (void *)(-gap), true, count, + datatype, op, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + /* Send reduced data onward */ + res = NBC_Sched_send ((void *)(-gap), true, count, datatype, rank + 1, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } + } else if (comm_size > 1) { + /* Process 0 */ + if (inplace) { + res = NBC_Sched_send(recvbuf, false, count, datatype, 1, schedule, false); + } else { + res = NBC_Sched_send(sendbuf, false, count, datatype, 1, schedule, false); + } + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } + +cleanup_and_return: + return res; +} + +/* + * exscan_sched_recursivedoubling: + * + * Function: Recursive doubling algorithm for exclusive scan. + * Accepts: Same as MPI_Iexscan + * Returns: MPI_SUCCESS or error code + * + * Description: Implements recursive doubling algorithm for MPI_Iexscan. + * The algorithm preserves order of operations so it can + * be used both by commutative and non-commutative operations. + * + * Example for 5 processes and commutative operation MPI_SUM: + * Process: 0 1 2 3 4 + * recvbuf: - - - - - + * psend: [0] [1] [2] [3] [4] + * + * Step 1: + * recvbuf: - [0] - [2] - + * psend: [1+0] [0+1] [3+2] [2+3] [4] + * + * Step 2: + * recvbuf: - [0] [1+0] [(0+1)+2] - + * psend: [(3+2)+(1+0)] [(2+3)+(0+1)] [(1+0)+(3+2)] [(1+0)+(2+3)] [4] + * + * Step 3: + * recvbuf: - [0] [1+0] [(0+1)+2] [(3+2)+(1+0)] + * psend: [4+((3+2)+(1+0))] [((3+2)+(1+0))+4] + * + * Time complexity (worst case): \ceil(\log_2(p))(2\alpha + 2m\beta + 2m\gamma) + * Memory requirements (per process): 2 * count * typesize = O(count) + * Limitations: intra-communicators only + * Schedule length: O(log(p)) + */ +static inline int exscan_sched_recursivedoubling( + int rank, int comm_size, const void *sendbuf, void *recvbuf, int count, + MPI_Datatype datatype, MPI_Op op, char inplace, + NBC_Schedule *schedule, void *tmpbuf1, void *tmpbuf2) +{ + int res = OMPI_SUCCESS; + char *psend = (char *)tmpbuf1; + char *precv = (char *)tmpbuf2; + + if (!inplace) { + res = NBC_Sched_copy((char *)sendbuf, false, count, datatype, + psend, true, count, datatype, schedule, true); + } else { + res = NBC_Sched_copy((char *)recvbuf, false, count, datatype, + psend, true, count, datatype, schedule, true); + } + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + int is_commute = ompi_op_is_commute(op); + int is_first_block = 1; + + for (int mask = 1; mask < comm_size; mask <<= 1) { + int remote = rank ^ mask; + if (remote < comm_size) { + res = NBC_Sched_send(psend, true, count, datatype, remote, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + res = NBC_Sched_recv(precv, true, count, datatype, remote, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + if (rank > remote) { + /* Assertion: rank > 0 and rbuf is valid */ + if (is_first_block) { + res = NBC_Sched_copy(precv, true, count, datatype, + recvbuf, false, count, datatype, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + is_first_block = 0; + } else { + /* Accumulate prefix reduction: recvbuf = precv recvbuf */ + res = NBC_Sched_op(precv, true, recvbuf, false, count, + datatype, op, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } + /* Partial result: psend = precv psend */ + res = NBC_Sched_op(precv, true, psend, true, count, + datatype, op, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } else { + if (is_commute) { + /* psend = precv psend */ + res = NBC_Sched_op(precv, true, psend, true, count, + datatype, op, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } else { + /* precv = psend precv */ + res = NBC_Sched_op(psend, true, precv, true, count, + datatype, op, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + char *tmp = psend; + psend = precv; + precv = tmp; + } + } + } + } + +cleanup_and_return: + return res; +} diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_igather.c openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_igather.c --- openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_igather.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_igather.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * and Technology (RIST). All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2017-2022 IBM Corporation. All rights reserved. * Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. * $COPYRIGHT$ * @@ -103,7 +103,7 @@ } } else { for (int i = 0 ; i < p ; ++i) { - rbuf = (char *)recvbuf + i * recvcount * rcvext; + rbuf = (char *)recvbuf + (MPI_Aint) rcvext * i * recvcount; if (i == root) { if (!inplace) { /* if I am the root - just copy the message */ @@ -228,7 +228,7 @@ } } else if (MPI_ROOT == root) { for (int i = 0 ; i < rsize ; ++i) { - rbuf = ((char *)recvbuf) + (i * recvcount * rcvext); + rbuf = ((char *)recvbuf) + ((MPI_Aint) rcvext * i * recvcount); /* root receives message to the right buffer */ res = NBC_Sched_recv (rbuf, false, recvcount, recvtype, i, schedule, false); if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_ineighbor_allgather.c openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_ineighbor_allgather.c --- openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_ineighbor_allgather.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_ineighbor_allgather.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * and Technology (RIST). All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2017-2022 IBM Corporation. All rights reserved. * Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. * $COPYRIGHT$ * @@ -86,7 +86,7 @@ for (int i = 0 ; i < indegree ; ++i) { if (MPI_PROC_NULL != srcs[i]) { - res = NBC_Sched_recv ((char *) rbuf + i * rcount * rcvext, true, rcount, rtype, srcs[i], schedule, false); + res = NBC_Sched_recv ((char *) rbuf + (MPI_Aint) rcvext * i * rcount, true, rcount, rtype, srcs[i], schedule, false); if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { break; } @@ -181,157 +181,6 @@ return OMPI_SUCCESS; } -/* better binomial bcast - * working principle: - * - each node gets a virtual rank vrank - * - the 'root' node get vrank 0 - * - node 0 gets the vrank of the 'root' - * - all other ranks stay identical (they do not matter) - * - * Algorithm: - * - each node with vrank > 2^r and vrank < 2^r+1 receives from node - * vrank - 2^r (vrank=1 receives from 0, vrank 0 receives never) - * - each node sends each round r to node vrank + 2^r - * - a node stops to send if 2^r > commsize - */ -#define RANK2VRANK(rank, vrank, root) \ -{ \ - vrank = rank; \ - if (rank == 0) vrank = root; \ - if (rank == root) vrank = 0; \ -} -#define VRANK2RANK(rank, vrank, root) \ -{ \ - rank = vrank; \ - if (vrank == 0) rank = root; \ - if (vrank == root) rank = 0; \ -} -static inline int bcast_sched_binomial(int rank, int p, int root, NBC_Schedule *schedule, void *buffer, int count, MPI_Datatype datatype) { - int maxr, vrank, peer, res; - - maxr = (int)ceil((log((double)p)/LOG2)); - - RANK2VRANK(rank, vrank, root); - - /* receive from the right hosts */ - if (vrank != 0) { - for (int r = 0 ; r < maxr ; ++r) { - if ((vrank >= (1 << r)) && (vrank < (1 << (r + 1)))) { - VRANK2RANK(peer, vrank - (1 << r), root); - res = NBC_Sched_recv (buffer, false, count, datatype, peer, schedule, false); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - return res; - } - } - } - - res = NBC_Sched_barrier (schedule); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - return res; - } - } - - /* now send to the right hosts */ - for (int r = 0 ; r < maxr ; ++r) { - if (((vrank + (1 << r) < p) && (vrank < (1 << r))) || (vrank == 0)) { - VRANK2RANK(peer, vrank + (1 << r), root); - res = NBC_Sched_send (buffer, false, count, datatype, peer, schedule, false); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - return res; - } - } - } - - return OMPI_SUCCESS; -} - -/* simple linear MPI_Ibcast */ -static inline int bcast_sched_linear(int rank, int p, int root, NBC_Schedule *schedule, void *buffer, int count, MPI_Datatype datatype) { - int res; - - /* send to all others */ - if(rank == root) { - for (int peer = 0 ; peer < p ; ++peer) { - if (peer != root) { - /* send msg to peer */ - res = NBC_Sched_send (buffer, false, count, datatype, peer, schedule, false); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - return res; - } - } - } - } else { - /* recv msg from root */ - res = NBC_Sched_recv (buffer, false, count, datatype, root, schedule, false); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - return res; - } - } - - return OMPI_SUCCESS; -} - -/* simple chained MPI_Ibcast */ -static inline int bcast_sched_chain(int rank, int p, int root, NBC_Schedule *schedule, void *buffer, int count, MPI_Datatype datatype, int fragsize, size_t size) { - int res, vrank, rpeer, speer, numfrag, fragcount, thiscount; - MPI_Aint ext; - char *buf; - - RANK2VRANK(rank, vrank, root); - VRANK2RANK(rpeer, vrank-1, root); - VRANK2RANK(speer, vrank+1, root); - res = ompi_datatype_type_extent(datatype, &ext); - if (MPI_SUCCESS != res) { - NBC_Error("MPI Error in ompi_datatype_type_extent() (%i)", res); - return res; - } - - if (count == 0) { - return OMPI_SUCCESS; - } - - numfrag = count * size/fragsize; - if ((count * size) % fragsize != 0) { - numfrag++; - } - - fragcount = count/numfrag; - - for (int fragnum = 0 ; fragnum < numfrag ; ++fragnum) { - buf = (char *) buffer + fragnum * fragcount * ext; - thiscount = fragcount; - if (fragnum == numfrag-1) { - /* last fragment may not be full */ - thiscount = count - fragcount * fragnum; - } - - /* root does not receive */ - if (vrank != 0) { - res = NBC_Sched_recv (buf, false, thiscount, datatype, rpeer, schedule, true); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - return res; - } - } - - /* last rank does not send */ - if (vrank != p-1) { - res = NBC_Sched_send (buf, false, thiscount, datatype, speer, schedule, false); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - return res; - } - - /* this barrier here seems awaward but isn't!!!! */ - if (vrank == 0) { - res = NBC_Sched_barrier (schedule); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - return res; - } - } - } - } - - return OMPI_SUCCESS; -} int ompi_coll_libnbc_neighbor_allgather_init(const void *sbuf, int scount, MPI_Datatype stype, void *rbuf, int rcount, MPI_Datatype rtype, struct ompi_communicator_t *comm, diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_ineighbor_alltoall.c openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_ineighbor_alltoall.c --- openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_ineighbor_alltoall.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_ineighbor_alltoall.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * and Technology (RIST). All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2017-2022 IBM Corporation. All rights reserved. * Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. * $COPYRIGHT$ * @@ -89,7 +89,7 @@ for (int i = 0 ; i < indegree ; ++i) { if (MPI_PROC_NULL != srcs[i]) { - res = NBC_Sched_recv ((char *) rbuf + i * rcount * rcvext, true, rcount, rtype, srcs[i], schedule, false); + res = NBC_Sched_recv ((char *) rbuf + (MPI_Aint) rcvext * i * rcount, true, rcount, rtype, srcs[i], schedule, false); if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { break; } @@ -106,7 +106,7 @@ for (int i = 0 ; i < outdegree ; ++i) { if (MPI_PROC_NULL != dsts[i]) { - res = NBC_Sched_send ((char *) sbuf + i * scount * sndext, false, scount, stype, dsts[i], schedule, false); + res = NBC_Sched_send ((char *) sbuf + (MPI_Aint) sndext * i * scount, false, scount, stype, dsts[i], schedule, false); if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { break; } diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_internal.h openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_internal.h --- openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_internal.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_internal.h 2022-05-29 09:51:40.000000000 +0000 @@ -10,11 +10,12 @@ * * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014 NVIDIA Corporation. All rights reserved. - * Copyright (c) 2015-2018 Research Organization for Information Science + * Copyright (c) 2015-2021 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. + * Copyright (c) 2021 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -50,8 +51,15 @@ extern "C" { #endif -/* log(2) */ -#define LOG2 0.69314718055994530941 +/* Dividing very close floats may lead to unexpected roundings */ +static inline int +ceil_of_log2 (int val) { + int ret = 0; + while (1 << ret < val) { + ret ++; + } + return ret; +} /* true/false */ #define true 1 @@ -90,7 +98,7 @@ /* the send argument struct */ typedef struct { NBC_Fn_type type; - int count; + size_t count; const void *buf; MPI_Datatype datatype; int dest; @@ -101,7 +109,7 @@ /* the receive argument struct */ typedef struct { NBC_Fn_type type; - int count; + size_t count; void *buf; MPI_Datatype datatype; char tmpbuf; @@ -118,18 +126,18 @@ void *buf2; MPI_Op op; MPI_Datatype datatype; - int count; + size_t count; } NBC_Args_op; /* the copy argument struct */ typedef struct { NBC_Fn_type type; - int srccount; + size_t srccount; void *src; void *tgt; MPI_Datatype srctype; MPI_Datatype tgttype; - int tgtcount; + size_t tgtcount; char tmpsrc; char tmptgt; } NBC_Args_copy; @@ -137,7 +145,7 @@ /* unpack operation arguments */ typedef struct { NBC_Fn_type type; - int count; + size_t count; void *inbuf; void *outbuf; MPI_Datatype datatype; @@ -146,15 +154,15 @@ } NBC_Args_unpack; /* internal function prototypes */ -int NBC_Sched_send (const void* buf, char tmpbuf, int count, MPI_Datatype datatype, int dest, NBC_Schedule *schedule, bool barrier); -int NBC_Sched_local_send (const void* buf, char tmpbuf, int count, MPI_Datatype datatype, int dest,NBC_Schedule *schedule, bool barrier); -int NBC_Sched_recv (void* buf, char tmpbuf, int count, MPI_Datatype datatype, int source, NBC_Schedule *schedule, bool barrier); -int NBC_Sched_local_recv (void* buf, char tmpbuf, int count, MPI_Datatype datatype, int source, NBC_Schedule *schedule, bool barrier); -int NBC_Sched_op (const void* buf1, char tmpbuf1, void* buf2, char tmpbuf2, int count, MPI_Datatype datatype, +int NBC_Sched_send (const void* buf, char tmpbuf, size_t count, MPI_Datatype datatype, int dest, NBC_Schedule *schedule, bool barrier); +int NBC_Sched_local_send (const void* buf, char tmpbuf, size_t count, MPI_Datatype datatype, int dest,NBC_Schedule *schedule, bool barrier); +int NBC_Sched_recv (void* buf, char tmpbuf, size_t count, MPI_Datatype datatype, int source, NBC_Schedule *schedule, bool barrier); +int NBC_Sched_local_recv (void* buf, char tmpbuf, size_t count, MPI_Datatype datatype, int source, NBC_Schedule *schedule, bool barrier); +int NBC_Sched_op (const void* buf1, char tmpbuf1, void* buf2, char tmpbuf2, size_t count, MPI_Datatype datatype, MPI_Op op, NBC_Schedule *schedule, bool barrier); -int NBC_Sched_copy (void *src, char tmpsrc, int srccount, MPI_Datatype srctype, void *tgt, char tmptgt, int tgtcount, +int NBC_Sched_copy (void *src, char tmpsrc, size_t srccount, MPI_Datatype srctype, void *tgt, char tmptgt, size_t tgtcount, MPI_Datatype tgttype, NBC_Schedule *schedule, bool barrier); -int NBC_Sched_unpack (void *inbuf, char tmpinbuf, int count, MPI_Datatype datatype, void *outbuf, char tmpoutbuf, +int NBC_Sched_unpack (void *inbuf, char tmpinbuf, size_t count, MPI_Datatype datatype, void *outbuf, char tmpoutbuf, NBC_Schedule *schedule, bool barrier); int NBC_Sched_barrier (NBC_Schedule *schedule); @@ -516,6 +524,11 @@ int res; ptrdiff_t ext, lb; + res = ompi_datatype_pack_external_size("external32", srccount, srctype, &size); + if (OMPI_SUCCESS != res) { + NBC_Error ("MPI Error in ompi_datatype_pack_external_size() (%i)", res); + return res; + } #if OPAL_CUDA_SUPPORT if(NBC_Type_intrinsic(srctype) && !(opal_cuda_check_bufs((char *)tgt, (char *)src))) { #else @@ -523,7 +536,6 @@ #endif /* OPAL_CUDA_SUPPORT */ /* if we have the same types and they are contiguous (intrinsic * types are contiguous), we can just use a single memcpy */ - res = ompi_datatype_pack_external_size("external32", srccount, srctype, &size); res = ompi_datatype_get_extent (srctype, &lb, &ext); if (OMPI_SUCCESS != res) { NBC_Error ("MPI Error in MPI_Type_extent() (%i)", res); @@ -560,7 +572,7 @@ #define NBC_IN_PLACE(sendbuf, recvbuf, inplace) \ { \ inplace = 0; \ - if(recvbuf == sendbuf) { \ + if(recvbuf == sendbuf && MPI_BOTTOM != sendbuf) { \ inplace = 1; \ } else \ if(sendbuf == MPI_IN_PLACE) { \ diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_ireduce.c openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_ireduce.c --- openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_ireduce.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_ireduce.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * reserved. * Copyright (c) 2014-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2017-2022 IBM Corporation. All rights reserved. * Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. * $COPYRIGHT$ * @@ -19,7 +19,9 @@ * */ -#include "opal/include/opal/align.h" +#include "ompi_config.h" +#include "opal/align.h" +#include "opal/util/bit_ops.h" #include "ompi/op/op.h" #include "nbc_internal.h" @@ -27,10 +29,14 @@ static inline int red_sched_binomial (int rank, int p, int root, const void *sendbuf, void *redbuf, char tmpredbuf, int count, MPI_Datatype datatype, MPI_Op op, char inplace, NBC_Schedule *schedule, void *tmpbuf); static inline int red_sched_chain (int rank, int p, int root, const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, - MPI_Op op, int ext, size_t size, NBC_Schedule *schedule, void *tmpbuf, int fragsize); + MPI_Op op, MPI_Aint ext, size_t size, NBC_Schedule *schedule, void *tmpbuf, int fragsize); static inline int red_sched_linear (int rank, int rsize, int root, const void *sendbuf, void *recvbuf, void *tmpbuf, int count, MPI_Datatype datatype, MPI_Op op, NBC_Schedule *schedule); +static inline int red_sched_redscat_gather( + int rank, int comm_size, int root, const void *sbuf, void *rbuf, + char tmpredbuf, int count, MPI_Datatype datatype, MPI_Op op, char inplace, + NBC_Schedule *schedule, void *tmp_buf, struct ompi_communicator_t *comm); #ifdef NBC_CACHE_SCHEDULE /* tree comparison function for schedule cache */ @@ -63,7 +69,7 @@ char *redbuf=NULL, inplace; void *tmpbuf; char tmpredbuf = 0; - enum { NBC_RED_BINOMIAL, NBC_RED_CHAIN } alg; + enum { NBC_RED_BINOMIAL, NBC_RED_CHAIN, NBC_RED_REDSCAT_GATHER} alg; ompi_coll_libnbc_module_t *libnbc_module = (ompi_coll_libnbc_module_t*) module; ptrdiff_t span, gap; @@ -98,22 +104,42 @@ span = opal_datatype_span(&datatype->super, count, &gap); /* algorithm selection */ - if (p > 4 || size * count < 65536 || !ompi_op_is_commute(op)) { - alg = NBC_RED_BINOMIAL; - if(rank == root) { - /* root reduces in receivebuffer */ - tmpbuf = malloc (span); + int nprocs_pof2 = opal_next_poweroftwo(p) >> 1; + if (libnbc_ireduce_algorithm == 0) { + if (ompi_op_is_commute(op) && p > 2 && count >= nprocs_pof2) { + alg = NBC_RED_REDSCAT_GATHER; + } else if (p > 4 || size * count < 65536 || !ompi_op_is_commute(op)) { + alg = NBC_RED_BINOMIAL; + } else { + alg = NBC_RED_CHAIN; + } + } else { + if (libnbc_ireduce_algorithm == 1) { + alg = NBC_RED_CHAIN; + } else if (libnbc_ireduce_algorithm == 2) { + alg = NBC_RED_BINOMIAL; + } else if (libnbc_ireduce_algorithm == 3 && ompi_op_is_commute(op) && p > 2 && count >= nprocs_pof2) { + alg = NBC_RED_REDSCAT_GATHER; + } else { + alg = NBC_RED_CHAIN; + } + } + + /* allocate temporary buffers */ + if (alg == NBC_RED_REDSCAT_GATHER || alg == NBC_RED_BINOMIAL) { + if (rank == root) { + /* root reduces in receive buffer */ + tmpbuf = malloc(span); redbuf = recvbuf; } else { /* recvbuf may not be valid on non-root nodes */ ptrdiff_t span_align = OPAL_ALIGN(span, datatype->super.align, ptrdiff_t); - tmpbuf = malloc (span_align + span); - redbuf = (char*)span_align - gap; + tmpbuf = malloc(span_align + span); + redbuf = (char *)span_align - gap; tmpredbuf = 1; } } else { tmpbuf = malloc (span); - alg = NBC_RED_CHAIN; segsize = 16384/2; } @@ -151,6 +177,9 @@ case NBC_RED_CHAIN: res = red_sched_chain(rank, p, root, sendbuf, recvbuf, count, datatype, op, ext, size, schedule, tmpbuf, segsize); break; + case NBC_RED_REDSCAT_GATHER: + res = red_sched_redscat_gather(rank, p, root, sendbuf, redbuf, tmpredbuf, count, datatype, op, inplace, schedule, tmpbuf, comm); + break; } } @@ -338,7 +367,7 @@ vroot = 0; } RANK2VRANK(rank, vrank, vroot); - maxr = (int)ceil((log((double)p)/LOG2)); + maxr = ceil_of_log2(p); if (rank != root) { inplace = 0; @@ -430,7 +459,7 @@ /* chain send ... */ static inline int red_sched_chain (int rank, int p, int root, const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, - MPI_Op op, int ext, size_t size, NBC_Schedule *schedule, void *tmpbuf, int fragsize) { + MPI_Op op, MPI_Aint ext, size_t size, NBC_Schedule *schedule, void *tmpbuf, int fragsize) { int res, vrank, rpeer, speer, numfrag, fragcount, thiscount; long offset; @@ -450,11 +479,11 @@ fragcount = count / numfrag; for (int fragnum = 0 ; fragnum < numfrag ; ++fragnum) { - offset = fragnum * fragcount * ext; + offset = (MPI_Aint) ext * fragnum * fragcount; thiscount = fragcount; if(fragnum == numfrag - 1) { /* last fragment may not be full */ - thiscount = count - fragcount * fragnum; + thiscount = count - (size_t)fragcount * fragnum; } /* last node does not recv */ @@ -560,6 +589,354 @@ return OMPI_SUCCESS; } +/* + * red_sched_redscat_gather: + * + * Description: an implementation of Rabenseifner's Reduce algorithm [1, 2]. + * [1] Rajeev Thakur, Rolf Rabenseifner and William Gropp. + * Optimization of Collective Communication Operations in MPICH // + * The Int. Journal of High Performance Computing Applications. Vol 19, + * Issue 1, pp. 49--66. + * [2] http://www.hlrs.de/mpi/myreduce.html. + * + * This algorithm is a combination of a reduce-scatter implemented with + * recursive vector halving and recursive distance doubling, followed either + * by a binomial tree gather. + * + * Step 1. If the number of processes is not a power of two, reduce it to + * the nearest lower power of two (p' = 2^{\floor{\log_2 p}}) + * by removing r = p - p' extra processes as follows. In the first 2r processes + * (ranks 0 to 2r - 1), all the even ranks send the second half of the input + * vector to their right neighbor (rank + 1), and all the odd ranks send + * the first half of the input vector to their left neighbor (rank - 1). + * The even ranks compute the reduction on the first half of the vector and + * the odd ranks compute the reduction on the second half. The odd ranks then + * send the result to their left neighbors (the even ranks). As a result, + * the even ranks among the first 2r processes now contain the reduction with + * the input vector on their right neighbors (the odd ranks). These odd ranks + * do not participate in the rest of the algorithm, which leaves behind + * a power-of-two number of processes. The first r even-ranked processes and + * the last p - 2r processes are now renumbered from 0 to p' - 1. + * + * Step 2. The remaining processes now perform a reduce-scatter by using + * recursive vector halving and recursive distance doubling. The even-ranked + * processes send the second half of their buffer to rank + 1 and the odd-ranked + * processes send the first half of their buffer to rank - 1. All processes + * then compute the reduction between the local buffer and the received buffer. + * In the next log_2(p') - 1 steps, the buffers are recursively halved, and the + * distance is doubled. At the end, each of the p' processes has 1 / p' of the + * total reduction result. + * + * Step 3. A binomial tree gather is performed by using recursive vector + * doubling and distance halving. In the non-power-of-two case, if the root + * happens to be one of those odd-ranked processes that would normally + * be removed in the first step, then the role of this process and process 0 + * are interchanged. + * + * Limitations: + * count >= 2^{\floor{\log_2 p}} + * commutative operations only + * intra-communicators only + * + * Memory requirements (per process): + * rank != root: 2 * count * typesize + 4 * \log_2(p) * sizeof(int) = O(count) + * rank == root: count * typesize + 4 * \log_2(p) * sizeof(int) = O(count) + * + * Schedule length (rounds): O(\log(p)) + * Recommendations: root = 0, otherwise it is required additional steps + * in the root process. + */ +static inline int red_sched_redscat_gather( + int rank, int comm_size, int root, const void *sbuf, void *rbuf, + char tmpredbuf, int count, MPI_Datatype datatype, MPI_Op op, char inplace, + NBC_Schedule *schedule, void *tmp_buf, struct ompi_communicator_t *comm) +{ + int res = OMPI_SUCCESS; + int *rindex = NULL, *rcount = NULL, *sindex = NULL, *scount = NULL; + + /* Find nearest power-of-two less than or equal to comm_size */ + int nsteps = opal_hibit(comm_size, comm->c_cube_dim + 1); /* ilog2(comm_size) */ + if (nsteps < 1) { + /* This case never happens (for comm_size < 2 other algorithms are used) */ + return OMPI_ERR_NOT_SUPPORTED; + } + int nprocs_pof2 = 1 << nsteps; /* flp2(comm_size) */ + + ptrdiff_t lb, extent; + ompi_datatype_get_extent(datatype, &lb, &extent); + + if ((rank != root) || !inplace) { + res = NBC_Sched_copy((char *)sbuf, false, count, datatype, + rbuf, tmpredbuf, count, datatype, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } + + /* + * Step 1. Reduce the number of processes to the nearest lower power of two + * p' = 2^{\floor{\log_2 p}} by removing r = p - p' processes. + * 1. In the first 2r processes (ranks 0 to 2r - 1), all the even ranks send + * the second half of the input vector to their right neighbor (rank + 1) + * and all the odd ranks send the first half of the input vector to their + * left neighbor (rank - 1). + * 2. All 2r processes compute the reduction on their half. + * 3. The odd ranks then send the result to their left neighbors + * (the even ranks). + * + * The even ranks (0 to 2r - 1) now contain the reduction with the input + * vector on their right neighbors (the odd ranks). The first r even + * processes and the p - 2r last processes are renumbered from + * 0 to 2^{\floor{\log_2 p}} - 1. These odd ranks do not participate in the + * rest of the algorithm. + */ + + int vrank, step, wsize; + int nprocs_rem = comm_size - nprocs_pof2; + + if (rank < 2 * nprocs_rem) { + int count_lhalf = count / 2; + int count_rhalf = count - count_lhalf; + + if (rank % 2 != 0) { + /* + * Odd process -- exchange with rank - 1 + * Send the left half of the input vector to the left neighbor, + * Recv the right half of the input vector from the left neighbor + */ + res = NBC_Sched_send(rbuf, tmpredbuf, count_lhalf, datatype, rank - 1, + schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + res = NBC_Sched_recv((char *)tmp_buf + (ptrdiff_t)count_lhalf * extent, + false, count_rhalf, datatype, rank - 1, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + res = NBC_Sched_op((char *)tmp_buf + (ptrdiff_t)count_lhalf * extent, + false, (char *)rbuf + (ptrdiff_t)count_lhalf * extent, + tmpredbuf, count_rhalf, datatype, op, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + /* Send the right half to the left neighbor */ + res = NBC_Sched_send((char *)rbuf + (ptrdiff_t)count_lhalf * extent, + tmpredbuf, count_rhalf, datatype, rank - 1, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + /* This process does not participate in recursive doubling phase */ + vrank = -1; + + } else { + /* + * Even process -- exchange with rank + 1 + * Send the right half of the input vector to the right neighbor, + * Recv the left half of the input vector from the right neighbor + */ + res = NBC_Sched_send((char *)rbuf + (ptrdiff_t)count_lhalf * extent, + tmpredbuf, count_rhalf, datatype, rank + 1, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + res = NBC_Sched_recv((char *)tmp_buf, false, count_lhalf, datatype, rank + 1, + schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + res = NBC_Sched_op(tmp_buf, false, rbuf, tmpredbuf, count_lhalf, + datatype, op, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + /* Recv the right half from the right neighbor */ + res = NBC_Sched_recv((char *)rbuf + (ptrdiff_t)count_lhalf * extent, + tmpredbuf, count_rhalf, datatype, rank + 1, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + vrank = rank / 2; + } + } else { /* rank >= 2 * nprocs_rem */ + vrank = rank - nprocs_rem; + } + + /* + * Step 2. Reduce-scatter implemented with recursive vector halving and + * recursive distance doubling. We have p' = 2^{\floor{\log_2 p}} + * power-of-two number of processes with new ranks (vrank) and result in rbuf. + * + * The even-ranked processes send the right half of their buffer to rank + 1 + * and the odd-ranked processes send the left half of their buffer to + * rank - 1. All processes then compute the reduction between the local + * buffer and the received buffer. In the next \log_2(p') - 1 steps, the + * buffers are recursively halved, and the distance is doubled. At the end, + * each of the p' processes has 1 / p' of the total reduction result. + */ + + rindex = malloc(sizeof(*rindex) * nsteps); /* O(\log_2(p)) */ + sindex = malloc(sizeof(*sindex) * nsteps); + rcount = malloc(sizeof(*rcount) * nsteps); + scount = malloc(sizeof(*scount) * nsteps); + if (NULL == rindex || NULL == sindex || NULL == rcount || NULL == scount) { + res = OMPI_ERR_OUT_OF_RESOURCE; + goto cleanup_and_return; + } + + if (vrank != -1) { + step = 0; + wsize = count; + sindex[0] = rindex[0] = 0; + + for (int mask = 1; mask < nprocs_pof2; mask <<= 1) { + /* + * On each iteration: rindex[step] = sindex[step] -- begining of the + * current window. Length of the current window is storded in wsize. + */ + int vdest = vrank ^ mask; + /* Translate vdest virtual rank to real rank */ + int dest = (vdest < nprocs_rem) ? vdest * 2 : vdest + nprocs_rem; + + if (rank < dest) { + /* + * Recv into the left half of the current window, send the right + * half of the window to the peer (perform reduce on the left + * half of the current window) + */ + rcount[step] = wsize / 2; + scount[step] = wsize - rcount[step]; + sindex[step] = rindex[step] + rcount[step]; + } else { + /* + * Recv into the right half of the current window, send the left + * half of the window to the peer (perform reduce on the right + * half of the current window) + */ + scount[step] = wsize / 2; + rcount[step] = wsize - scount[step]; + rindex[step] = sindex[step] + scount[step]; + } + + /* Send part of data from the rbuf, recv into the tmp_buf */ + res = NBC_Sched_send((char *)rbuf + (ptrdiff_t)sindex[step] * extent, + tmpredbuf, scount[step], datatype, dest, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + res = NBC_Sched_recv((char *)tmp_buf + (ptrdiff_t)rindex[step] * extent, + false, rcount[step], datatype, dest, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + /* Local reduce: rbuf[] = tmp_buf[] rbuf[] */ + res = NBC_Sched_op((char *)tmp_buf + (ptrdiff_t)rindex[step] * extent, + false, (char *)rbuf + (ptrdiff_t)rindex[step] * extent, + tmpredbuf, rcount[step], datatype, op, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + /* Move the current window to the received message */ + if (step + 1 < nsteps) { + rindex[step + 1] = rindex[step]; + sindex[step + 1] = rindex[step]; + wsize = rcount[step]; + step++; + } + } + } + /* + * Assertion: each process has 1 / p' of the total reduction result: + * rcount[nsteps - 1] elements in the rbuf[rindex[nsteps - 1], ...]. + */ + + /* + * Setup the root process for gather operation. + * Case 1: root < 2r and root is odd -- root process was excluded on step 1 + * Recv data from process 0, vroot = 0, vrank = 0 + * Case 2: root < 2r and root is even: vroot = root / 2 + * Case 3: root >= 2r: vroot = root - r + */ + int vroot = 0; + if (root < 2 * nprocs_rem) { + if (root % 2 != 0) { + vroot = 0; + if (rank == root) { + /* + * Case 1: root < 2r and root is odd -- root process was + * excluded on step 1 (newrank == -1). + * Recv a data from the process 0. + */ + rindex[0] = 0; + step = 0, wsize = count; + for (int mask = 1; mask < nprocs_pof2; mask *= 2) { + rcount[step] = wsize / 2; + scount[step] = wsize - rcount[step]; + rindex[step] = 0; + sindex[step] = rcount[step]; + step++; + wsize /= 2; + } + + res = NBC_Sched_recv(rbuf, tmpredbuf, rcount[nsteps - 1], datatype, + 0, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + vrank = 0; + + } else if (vrank == 0) { + /* Send a data to the root */ + res = NBC_Sched_send(rbuf, tmpredbuf, rcount[nsteps - 1], datatype, + root, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + vrank = -1; + } + } else { + /* Case 2: root < 2r and a root is even: vroot = root / 2 */ + vroot = root / 2; + } + } else { + /* Case 3: root >= 2r: newroot = root - r */ + vroot = root - nprocs_rem; + } + + /* + * Step 3. Gather result at the vroot by the binomial tree algorithm. + * Each process has 1 / p' of the total reduction result: + * rcount[nsteps - 1] elements in the rbuf[rindex[nsteps - 1], ...]. + * All exchanges are executed in reverse order relative + * to recursive doubling (previous step). + */ + + if (vrank != -1) { + int vdest_tree, vroot_tree; + step = nsteps - 1; /* step = ilog2(p') - 1 */ + + for (int mask = nprocs_pof2 >> 1; mask > 0; mask >>= 1) { + int vdest = vrank ^ mask; + /* Translate vdest virtual rank to real rank */ + int dest = (vdest < nprocs_rem) ? vdest * 2 : vdest + nprocs_rem; + if ((vdest == 0) && (root < 2 * nprocs_rem) && (root % 2 != 0)) + dest = root; + + vdest_tree = vdest >> step; + vdest_tree <<= step; + vroot_tree = vroot >> step; + vroot_tree <<= step; + if (vdest_tree == vroot_tree) { + /* Send data from rbuf and exit */ + + res = NBC_Sched_send((char *)rbuf + (ptrdiff_t)rindex[step] * extent, + tmpredbuf, rcount[step], datatype, dest, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + break; + } else { + /* Recv and continue */ + res = NBC_Sched_recv((char *)rbuf + (ptrdiff_t)sindex[step] * extent, + tmpredbuf, scount[step], datatype, dest, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } + step--; + } + } + + cleanup_and_return: + if (NULL != rindex) + free(rindex); + if (NULL != sindex) + free(sindex); + if (NULL != rcount) + free(rcount); + if (NULL != scount) + free(scount); + return res; +} + int ompi_coll_libnbc_reduce_init(const void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, struct ompi_communicator_t *comm, MPI_Info info, ompi_request_t ** request, struct mca_coll_base_module_2_3_0_t *module) { diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_ireduce_scatter_block.c openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_ireduce_scatter_block.c --- openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_ireduce_scatter_block.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_ireduce_scatter_block.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * reserved. * Copyright (c) 2014-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2017-2022 IBM Corporation. All rights reserved. * Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. * $COPYRIGHT$ * @@ -19,7 +19,7 @@ * Author(s): Torsten Hoefler * */ -#include "opal/include/opal/align.h" +#include "opal/align.h" #include "nbc_internal.h" @@ -43,7 +43,8 @@ static int nbc_reduce_scatter_block_init(const void* sendbuf, void* recvbuf, int recvcount, MPI_Datatype datatype, MPI_Op op, struct ompi_communicator_t *comm, ompi_request_t ** request, struct mca_coll_base_module_2_3_0_t *module, bool persistent) { - int peer, rank, maxr, p, res, count; + int peer, rank, maxr, p, res; + size_t count; MPI_Aint ext; ptrdiff_t gap, span; char *redbuf, *sbuf, inplace; @@ -67,9 +68,9 @@ return OMPI_ERR_OUT_OF_RESOURCE; } - maxr = (int)ceil((log((double)p)/LOG2)); + maxr = ceil_of_log2(p); - count = p * recvcount; + count = (size_t) p * recvcount; if (0 < count) { char *rbuf, *lbuf, *buf; @@ -166,7 +167,8 @@ return res; } } else { - for (int r = 1, offset = 0 ; r < p ; ++r) { + size_t offset = 0; + for (int r = 1 ; r < p ; ++r) { offset += recvcount; sbuf = lbuf + (offset*ext); /* root sends the right buffer to the right receiver */ @@ -228,7 +230,8 @@ static int nbc_reduce_scatter_block_inter_init(const void *sendbuf, void *recvbuf, int rcount, struct ompi_datatype_t *dtype, struct ompi_op_t *op, struct ompi_communicator_t *comm, ompi_request_t **request, struct mca_coll_base_module_2_3_0_t *module, bool persistent) { - int rank, res, count, lsize, rsize; + int rank, res, lsize, rsize; + size_t count; MPI_Aint ext; ptrdiff_t gap, span, span_align; NBC_Schedule *schedule; @@ -245,7 +248,7 @@ return res; } - count = rcount * lsize; + count = (size_t)rcount * lsize; span = opal_datatype_span(&dtype->super, count, &gap); span_align = OPAL_ALIGN(span, dtype->super.align, ptrdiff_t); diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_ireduce_scatter.c openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_ireduce_scatter.c --- openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_ireduce_scatter.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_ireduce_scatter.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * Copyright (c) 2015 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. - * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2017-2021 IBM Corporation. All rights reserved. * Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. * $COPYRIGHT$ * @@ -21,7 +21,7 @@ * Author(s): Torsten Hoefler * */ -#include "opal/include/opal/align.h" +#include "opal/align.h" #include "nbc_internal.h" @@ -45,7 +45,8 @@ static int nbc_reduce_scatter_init(const void* sendbuf, void* recvbuf, const int *recvcounts, MPI_Datatype datatype, MPI_Op op, struct ompi_communicator_t *comm, ompi_request_t ** request, struct mca_coll_base_module_2_3_0_t *module, bool persistent) { - int peer, rank, maxr, p, res, count; + int peer, rank, maxr, p, res; + size_t count; MPI_Aint ext; ptrdiff_t gap, span, span_align; char *sbuf, inplace; @@ -82,7 +83,7 @@ return nbc_get_noop_request(persistent, request); } - maxr = (int) ceil ((log((double) p) / LOG2)); + maxr = ceil_of_log2(p); span = opal_datatype_span(&datatype->super, count, &gap); span_align = OPAL_ALIGN(span, datatype->super.align, ptrdiff_t); @@ -161,7 +162,8 @@ /* rank 0 is root and sends - all others receive */ if (rank == 0) { - for (long int r = 1, offset = 0 ; r < p ; ++r) { + size_t offset = 0; + for (long int r = 1 ; r < p ; ++r) { offset += recvcounts[r-1]; sbuf = lbuf + (offset*ext); /* root sends the right buffer to the right receiver */ @@ -229,7 +231,8 @@ static int nbc_reduce_scatter_inter_init (const void* sendbuf, void* recvbuf, const int *recvcounts, MPI_Datatype datatype, MPI_Op op, struct ompi_communicator_t *comm, ompi_request_t ** request, struct mca_coll_base_module_2_3_0_t *module, bool persistent) { - int rank, res, count, lsize, rsize; + int rank, res, lsize, rsize; + size_t count; MPI_Aint ext; ptrdiff_t gap, span, span_align; NBC_Schedule *schedule; @@ -313,7 +316,8 @@ free(tmpbuf); return res; } - for (int peer = 1, offset = recvcounts[0] * ext; peer < lsize ; ++peer) { + size_t offset = recvcounts[0] * ext; + for (int peer = 1; peer < lsize ; ++peer) { res = NBC_Sched_local_send (lbuf + offset, true, recvcounts[peer], datatype, peer, schedule, false); if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_iscan.c openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_iscan.c --- openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_iscan.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_iscan.c 2022-05-29 09:51:40.000000000 +0000 @@ -18,8 +18,20 @@ * Author(s): Torsten Hoefler * */ +#include "opal/align.h" +#include "ompi/op/op.h" + #include "nbc_internal.h" +static inline int scan_sched_linear( + int rank, int comm_size, const void *sendbuf, void *recvbuf, int count, + MPI_Datatype datatype, MPI_Op op, char inplace, NBC_Schedule *schedule, + void *tmpbuf); +static inline int scan_sched_recursivedoubling( + int rank, int comm_size, const void *sendbuf, void *recvbuf, + int count, MPI_Datatype datatype, MPI_Op op, char inplace, + NBC_Schedule *schedule, void *tmpbuf1, void *tmpbuf2); + #ifdef NBC_CACHE_SCHEDULE /* tree comparison function for schedule cache */ int NBC_Scan_args_compare(NBC_Scan_args *a, NBC_Scan_args *b, void *param) { @@ -39,27 +51,41 @@ } #endif -/* linear iscan - * working principle: - * 1. each node (but node 0) receives from left neighbor - * 2. performs op - * 3. all but rank p-1 do sends to it's right neighbor and exits - * - */ static int nbc_scan_init(const void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op op, struct ompi_communicator_t *comm, ompi_request_t ** request, struct mca_coll_base_module_2_3_0_t *module, bool persistent) { - int rank, p, res; - ptrdiff_t gap, span; - NBC_Schedule *schedule; - void *tmpbuf = NULL; - char inplace; - ompi_coll_libnbc_module_t *libnbc_module = (ompi_coll_libnbc_module_t*) module; + int rank, p, res; + ptrdiff_t gap, span; + NBC_Schedule *schedule; + void *tmpbuf = NULL, *tmpbuf1 = NULL, *tmpbuf2 = NULL; + enum { NBC_SCAN_LINEAR, NBC_SCAN_RDBL } alg; + char inplace; + ompi_coll_libnbc_module_t *libnbc_module = (ompi_coll_libnbc_module_t*) module; + + NBC_IN_PLACE(sendbuf, recvbuf, inplace); - NBC_IN_PLACE(sendbuf, recvbuf, inplace); + rank = ompi_comm_rank (comm); + p = ompi_comm_size (comm); - rank = ompi_comm_rank (comm); - p = ompi_comm_size (comm); + if (count == 0) { + return nbc_get_noop_request(persistent, request); + } + + span = opal_datatype_span(&datatype->super, count, &gap); + if (libnbc_iscan_algorithm == 2) { + alg = NBC_SCAN_RDBL; + ptrdiff_t span_align = OPAL_ALIGN(span, datatype->super.align, ptrdiff_t); + tmpbuf = malloc(span_align + span); + if (NULL == tmpbuf) { return OMPI_ERR_OUT_OF_RESOURCE; } + tmpbuf1 = (void *)(-gap); + tmpbuf2 = (char *)(span_align) - gap; + } else { + alg = NBC_SCAN_LINEAR; + if (rank > 0) { + tmpbuf = malloc(span); + if (NULL == tmpbuf) { return OMPI_ERR_OUT_OF_RESOURCE; } + } + } #ifdef NBC_CACHE_SCHEDULE NBC_Scan_args *args, *found, search; @@ -75,60 +101,28 @@ #endif schedule = OBJ_NEW(NBC_Schedule); if (OPAL_UNLIKELY(NULL == schedule)) { - return OMPI_ERR_OUT_OF_RESOURCE; + free(tmpbuf); + return OMPI_ERR_OUT_OF_RESOURCE; } - if (!inplace) { - /* copy data to receivebuf */ - res = NBC_Sched_copy ((void *)sendbuf, false, count, datatype, - recvbuf, false, count, datatype, schedule, false); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - OBJ_RELEASE(schedule); - return res; - } + if (alg == NBC_SCAN_LINEAR) { + res = scan_sched_linear(rank, p, sendbuf, recvbuf, count, datatype, + op, inplace, schedule, tmpbuf); + } else { + res = scan_sched_recursivedoubling(rank, p, sendbuf, recvbuf, count, + datatype, op, inplace, schedule, tmpbuf1, tmpbuf2); } - - if(rank != 0) { - span = opal_datatype_span(&datatype->super, count, &gap); - tmpbuf = malloc (span); - if (NULL == tmpbuf) { - OBJ_RELEASE(schedule); - return OMPI_ERR_OUT_OF_RESOURCE; - } - - /* we have to wait until we have the data */ - res = NBC_Sched_recv ((void *)(-gap), true, count, datatype, rank-1, schedule, true); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - OBJ_RELEASE(schedule); - free(tmpbuf); - return res; - } - - /* perform the reduce in my local buffer */ - /* this cannot be done until tmpbuf is unused :-( so barrier after the op */ - res = NBC_Sched_op ((void *)(-gap), true, recvbuf, false, count, datatype, op, schedule, - true); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { OBJ_RELEASE(schedule); free(tmpbuf); return res; - } } - if (rank != p-1) { - res = NBC_Sched_send (recvbuf, false, count, datatype, rank+1, schedule, false); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { + res = NBC_Sched_commit(schedule); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { OBJ_RELEASE(schedule); free(tmpbuf); return res; - } - } - - res = NBC_Sched_commit (schedule); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - OBJ_RELEASE(schedule); - free(tmpbuf); - return res; } #ifdef NBC_CACHE_SCHEDULE @@ -162,14 +156,160 @@ } #endif - res = NBC_Schedule_request(schedule, comm, libnbc_module, persistent, request, tmpbuf); - if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { - OBJ_RELEASE(schedule); - free(tmpbuf); + res = NBC_Schedule_request(schedule, comm, libnbc_module, persistent, request, tmpbuf); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { + OBJ_RELEASE(schedule); + free(tmpbuf); + return res; + } + + return OMPI_SUCCESS; +} + +/* + * scan_sched_linear: + * + * Function: Linear algorithm for inclusive scan. + * Accepts: Same as MPI_Iscan + * Returns: MPI_SUCCESS or error code + * + * Working principle: + * 1. Each process (but process 0) receives from left neighbor + * 2. Performs op + * 3. All but rank p-1 do sends to it's right neighbor and exits + * + * Schedule length: O(1) + */ +static inline int scan_sched_linear( + int rank, int comm_size, const void *sendbuf, void *recvbuf, int count, + MPI_Datatype datatype, MPI_Op op, char inplace, NBC_Schedule *schedule, + void *tmpbuf) +{ + int res = OMPI_SUCCESS; + + if (!inplace) { + /* Copy data to recvbuf */ + res = NBC_Sched_copy((void *)sendbuf, false, count, datatype, + recvbuf, false, count, datatype, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } + + if (rank > 0) { + ptrdiff_t gap; + opal_datatype_span(&datatype->super, count, &gap); + /* We have to wait until we have the data */ + res = NBC_Sched_recv((void *)(-gap), true, count, datatype, rank - 1, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + /* Perform the reduce in my local buffer */ + /* this cannot be done until tmpbuf is unused :-( so barrier after the op */ + res = NBC_Sched_op((void *)(-gap), true, recvbuf, false, count, datatype, op, schedule, + true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } + + if (rank != comm_size - 1) { + res = NBC_Sched_send(recvbuf, false, count, datatype, rank + 1, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } + +cleanup_and_return: return res; - } +} - return OMPI_SUCCESS; +/* + * scan_sched_recursivedoubling: + * + * Function: Recursive doubling algorithm for inclusive scan. + * Accepts: Same as MPI_Iscan + * Returns: MPI_SUCCESS or error code + * + * Description: Implements recursive doubling algorithm for MPI_Iscan. + * The algorithm preserves order of operations so it can + * be used both by commutative and non-commutative operations. + * + * Example for 5 processes and commutative operation MPI_SUM: + * Process: 0 1 2 3 4 + * recvbuf: [0] [1] [2] [3] [4] + * psend: [0] [1] [2] [3] [4] + * + * Step 1: + * recvbuf: [0] [0+1] [2] [2+3] [4] + * psend: [1+0] [0+1] [3+2] [2+3] [4] + * + * Step 2: + * recvbuf: [0] [0+1] [(1+0)+2] [(1+0)+(2+3)] [4] + * psend: [(3+2)+(1+0)] [(2+3)+(0+1)] [(1+0)+(3+2)] [(1+0)+(2+3)] [4] + * + * Step 3: + * recvbuf: [0] [0+1] [(1+0)+2] [(1+0)+(2+3)] [((3+2)+(1+0))+4] + * psend: [4+((3+2)+(1+0))] [((3+2)+(1+0))+4] + * + * Time complexity (worst case): \ceil(\log_2(p))(2\alpha + 2m\beta + 2m\gamma) + * Memory requirements (per process): 2 * count * typesize = O(count) + * Limitations: intra-communicators only + * Schedule length: O(log(p)) + */ +static inline int scan_sched_recursivedoubling( + int rank, int comm_size, const void *sendbuf, void *recvbuf, int count, + MPI_Datatype datatype, MPI_Op op, char inplace, + NBC_Schedule *schedule, void *tmpbuf1, void *tmpbuf2) +{ + int res = OMPI_SUCCESS; + + if (!inplace) { + res = NBC_Sched_copy((void *)sendbuf, false, count, datatype, + recvbuf, false, count, datatype, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } + if (comm_size < 2) + goto cleanup_and_return; + + char *psend = (char *)tmpbuf1; + char *precv = (char *)tmpbuf2; + res = NBC_Sched_copy(recvbuf, false, count, datatype, + psend, true, count, datatype, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + int is_commute = ompi_op_is_commute(op); + for (int mask = 1; mask < comm_size; mask <<= 1) { + int remote = rank ^ mask; + if (remote < comm_size) { + res = NBC_Sched_send(psend, true, count, datatype, remote, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + res = NBC_Sched_recv(precv, true, count, datatype, remote, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + + if (rank > remote) { + /* Accumulate prefix reduction: recvbuf = precv recvbuf */ + res = NBC_Sched_op(precv, true, recvbuf, false, count, + datatype, op, schedule, false); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + /* Partial result: psend = precv psend */ + res = NBC_Sched_op(precv, true, psend, true, count, + datatype, op, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } else { + if (is_commute) { + /* psend = precv psend */ + res = NBC_Sched_op(precv, true, psend, true, count, + datatype, op, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + } else { + /* precv = psend precv */ + res = NBC_Sched_op(psend, true, precv, true, count, + datatype, op, schedule, true); + if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { goto cleanup_and_return; } + char *tmp = psend; + psend = precv; + precv = tmp; + } + } + } + } + + cleanup_and_return: + return res; } int ompi_coll_libnbc_iscan(const void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op op, diff -Nru openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_iscatter.c openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_iscatter.c --- openmpi-4.0.3/ompi/mca/coll/libnbc/nbc_iscatter.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/libnbc/nbc_iscatter.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * reserved. * Copyright (c) 2014-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2017-2022 IBM Corporation. All rights reserved. * Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. * $COPYRIGHT$ * @@ -99,7 +99,7 @@ } } else { for (int i = 0 ; i < p ; ++i) { - sbuf = (char *) sendbuf + i * sendcount * sndext; + sbuf = (char *) sendbuf + (MPI_Aint) sndext * i * sendcount; if (i == root) { if (!inplace) { /* if I am the root - just copy the message */ @@ -222,7 +222,7 @@ } } else if (MPI_ROOT == root) { for (int i = 0 ; i < rsize ; ++i) { - sbuf = ((char *)sendbuf) + (i * sendcount * sndext); + sbuf = ((char *)sendbuf) + ((MPI_Aint) sndext * i * sendcount); /* root sends the right buffer to the right receiver */ res = NBC_Sched_send(sbuf, false, sendcount, sendtype, i, schedule, false); if (OPAL_UNLIKELY(OMPI_SUCCESS != res)) { diff -Nru openmpi-4.0.3/ompi/mca/coll/Makefile.in openmpi-4.1.4/ompi/mca/coll/Makefile.in --- openmpi-4.0.3/ompi/mca/coll/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -137,6 +137,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -144,6 +146,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -167,6 +170,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -269,6 +273,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -276,6 +281,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -356,6 +362,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -378,9 +385,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -390,6 +401,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -410,6 +422,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -679,6 +692,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1499,6 +1515,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1531,9 +1551,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1554,6 +1583,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1638,9 +1668,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1701,6 +1728,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1714,6 +1744,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/coll/monitoring/Makefile.in openmpi-4.1.4/ompi/mca/coll/monitoring/Makefile.in --- openmpi-4.0.3/ompi/mca/coll/monitoring/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/monitoring/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -666,6 +679,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1486,6 +1502,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1518,9 +1538,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1541,6 +1570,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1625,9 +1655,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1688,6 +1715,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1701,6 +1731,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/coll/portals4/coll_portals4_component.c openmpi-4.1.4/ompi/mca/coll/portals4/coll_portals4_component.c --- openmpi-4.0.3/ompi/mca/coll/portals4/coll_portals4_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/portals4/coll_portals4_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -655,7 +655,11 @@ return OMPI_SUCCESS; } - +#if OPAL_ENABLE_DEBUG +/* These string maps are only used for debugging output. + * They will be compiled-out when OPAL is configured + * without --enable-debug. + */ static char *failtype[] = { "PTL_NI_OK", "PTL_NI_PERM_VIOLATION", @@ -689,6 +693,7 @@ "PTL_EVENT_SEARCH", "PTL_EVENT_LINK" }; +#endif /* Target EQ */ static int @@ -754,7 +759,7 @@ } else if (PTL_EQ_DROPPED == ret) { opal_output(ompi_coll_base_framework.framework_output, "Flow control situation without recovery (EQ_DROPPED)\n"); - abort(); + ompi_rte_abort(ret, "coll-portals4: Flow control situation without recovery (EQ_DROPPED)"); } else { opal_output(ompi_coll_base_framework.framework_output, "Error returned from PtlEQGet: %d", ret); diff -Nru openmpi-4.0.3/ompi/mca/coll/portals4/coll_portals4_gather.c openmpi-4.1.4/ompi/mca/coll/portals4/coll_portals4_gather.c --- openmpi-4.0.3/ompi/mca/coll/portals4/coll_portals4_gather.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/portals4/coll_portals4_gather.c 2022-05-29 09:51:40.000000000 +0000 @@ -76,7 +76,7 @@ ompi_coll_portals4_build_in_order_bmtree( struct ompi_communicator_t* comm, int root ) { - int childs = 0, rank, vrank, vparent, size, mask = 1, remote, i; + int childs = 0, rank, vrank, vparent, size, mask = 1, remote; ompi_coll_portals4_tree_t *bmtree; /* @@ -97,7 +97,7 @@ bmtree->tree_bmtree = 1; bmtree->tree_root = MPI_UNDEFINED; bmtree->tree_nextsize = MPI_UNDEFINED; - for(i=0;itree_next[i] = -1; } @@ -520,8 +520,6 @@ int vrank=-1; - int32_t i=0; - ompi_coll_portals4_tree_t* bmtree; int32_t expected_ops =0; @@ -606,7 +604,7 @@ "%s:%d: packed_size=%lu, fragment_size=%lu", __FILE__, __LINE__, request->u.gather.packed_size, mca_coll_portals4_component.ni_limits.max_msg_size)); - for (int i =0; i < bmtree->tree_nextsize; i++) { + for (int i = 0; i < bmtree->tree_nextsize; i++) { int child_vrank = VRANK(bmtree->tree_next[i], request->u.gather.root_rank, request->u.gather.size); int sub_tree_size = get_tree_numdescendants_of(comm, child_vrank) + 1; ptl_size_t local_number_of_fragment = ((sub_tree_size * request->u.gather.packed_size) + mca_coll_portals4_component.ni_limits.max_msg_size -1) / mca_coll_portals4_component.ni_limits.max_msg_size; @@ -688,7 +686,7 @@ /************************************/ /* put Recv-ACK to each child */ /************************************/ - for (i=0;itree_nextsize;i++) { + for (int i = 0; i < bmtree->tree_nextsize; i++) { int32_t child=bmtree->tree_next[i]; ret = PtlTriggeredPut(request->u.gather.sync_mdh, 0, @@ -730,7 +728,7 @@ /**********************************/ /* put RTR to each child */ /**********************************/ - for (i=0;itree_nextsize;i++) { + for (int i = 0; i < bmtree->tree_nextsize; i++) { int32_t child=bmtree->tree_next[i]; ret = PtlTriggeredPut(request->u.gather.sync_mdh, 0, @@ -750,7 +748,7 @@ /**********************************/ /* put RTR to each child */ /**********************************/ - for (i=0;itree_nextsize;i++) { + for (int i = 0; i < bmtree->tree_nextsize; i++) { int32_t child=bmtree->tree_next[i]; ret = PtlPut(request->u.gather.sync_mdh, 0, @@ -818,8 +816,6 @@ int8_t i_am_root; - int32_t i=0; - int32_t expected_ops =0; int32_t expected_acks=0; @@ -975,7 +971,7 @@ /* root puts Recv-ACK to all other ranks */ /*****************************************/ if (i_am_root) { - for (i=0;iu.gather.size;i++) { + for (int i = 0; i < request->u.gather.size; i++) { if (i == request->u.gather.root_rank) { continue; } ret = PtlTriggeredPut(request->u.gather.sync_mdh, 0, @@ -1019,7 +1015,7 @@ /* root puts RTR to all other ranks */ /************************************/ if (i_am_root) { - for (i=0;iu.gather.size;i++) { + for (int i = 0; i < request->u.gather.size; i++) { if (i == request->u.gather.root_rank) { continue; } ret = PtlTriggeredPut(request->u.gather.sync_mdh, 0, @@ -1041,7 +1037,7 @@ /* root puts RTR to all other ranks */ /************************************/ if (i_am_root) { - for (i=0;iu.gather.size;i++) { + for (int i = 0; i < request->u.gather.size; i++) { if (i == request->u.gather.root_rank) { continue; } ret = PtlPut(request->u.gather.sync_mdh, 0, @@ -1093,7 +1089,6 @@ ompi_coll_portals4_request_t *request) { int ret, line; - int i; OPAL_OUTPUT_VERBOSE((10, ompi_coll_base_framework.framework_output, "coll:portals4:gather_intra_binomial_bottom enter rank %d", request->u.gather.my_rank)); @@ -1109,7 +1104,7 @@ struct iovec iov; size_t max_data; - for (i=0;iu.gather.size;i++) { + for (int i = 0; i < request->u.gather.size; i++) { uint64_t offset = request->u.gather.unpack_dst_extent * request->u.gather.unpack_dst_count * ((request->u.gather.my_rank + i) % request->u.gather.size); opal_output_verbose(30, ompi_coll_base_framework.framework_output, @@ -1161,7 +1156,6 @@ ompi_coll_portals4_request_t *request) { int ret, line; - int i; OPAL_OUTPUT_VERBOSE((10, ompi_coll_base_framework.framework_output, "coll:portals4:gather_intra_linear_bottom enter rank %d", request->u.gather.my_rank)); @@ -1177,7 +1171,7 @@ struct iovec iov; size_t max_data; - for (i=0;iu.gather.size;i++) { + for (int i = 0; i < request->u.gather.size; i++) { ompi_coll_portals4_create_recv_converter (&request->u.gather.recv_converter, request->u.gather.unpack_dst_buf + (request->u.gather.unpack_dst_extent*request->u.gather.unpack_dst_count*i), ompi_comm_peer_lookup(comm, request->u.gather.my_rank), diff -Nru openmpi-4.0.3/ompi/mca/coll/portals4/coll_portals4_request.c openmpi-4.1.4/ompi/mca/coll/portals4/coll_portals4_request.c --- openmpi-4.0.3/ompi/mca/coll/portals4/coll_portals4_request.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/portals4/coll_portals4_request.c 2022-05-29 09:51:40.000000000 +0000 @@ -27,7 +27,7 @@ ompi_coll_portals4_request_t *request = (ompi_coll_portals4_request_t*) *ompi_req; - if (true != request->super.req_complete) { + if (!REQUEST_COMPLETE(&request->super)) { return MPI_ERR_REQUEST; } diff -Nru openmpi-4.0.3/ompi/mca/coll/portals4/coll_portals4_request.h openmpi-4.1.4/ompi/mca/coll/portals4/coll_portals4_request.h --- openmpi-4.0.3/ompi/mca/coll/portals4/coll_portals4_request.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/portals4/coll_portals4_request.h 2022-05-29 09:51:40.000000000 +0000 @@ -176,7 +176,6 @@ req = (ompi_coll_portals4_request_t*) item; \ OMPI_REQUEST_INIT(&req->super, false); \ req->super.req_mpi_object.comm = comm; \ - req->super.req_complete = false; \ req->super.req_state = OMPI_REQUEST_ACTIVE; \ } while (0) diff -Nru openmpi-4.0.3/ompi/mca/coll/portals4/Makefile.in openmpi-4.1.4/ompi/mca/coll/portals4/Makefile.in --- openmpi-4.0.3/ompi/mca/coll/portals4/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/portals4/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -656,6 +669,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1476,6 +1492,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1508,9 +1528,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1531,6 +1560,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1615,9 +1645,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1678,6 +1705,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1691,6 +1721,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/coll/self/Makefile.in openmpi-4.1.4/ompi/mca/coll/self/Makefile.in --- openmpi-4.0.3/ompi/mca/coll/self/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/self/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -664,6 +677,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1484,6 +1500,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1516,9 +1536,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1539,6 +1568,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1623,9 +1653,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1686,6 +1713,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1699,6 +1729,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/coll/sm/coll_sm_module.c openmpi-4.1.4/ompi/mca/coll/sm/coll_sm_module.c --- openmpi-4.0.3/ompi/mca/coll/sm/coll_sm_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/sm/coll_sm_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -174,16 +174,16 @@ if (OMPI_COMM_IS_INTER(comm) || 1 == ompi_comm_size(comm) || ompi_group_have_remote_peers (comm->c_local_group)) { opal_output_verbose(10, ompi_coll_base_framework.framework_output, "coll:sm:comm_query (%d/%s): intercomm, comm is too small, or not all peers local; disqualifying myself", comm->c_contextid, comm->c_name); - return NULL; + return NULL; } /* Get the priority level attached to this module. If priority is less * than or equal to 0, then the module is unavailable. */ *priority = mca_coll_sm_component.sm_priority; - if (mca_coll_sm_component.sm_priority <= 0) { + if (mca_coll_sm_component.sm_priority < 0) { opal_output_verbose(10, ompi_coll_base_framework.framework_output, "coll:sm:comm_query (%d/%s): priority too low; disqualifying myself", comm->c_contextid, comm->c_name); - return NULL; + return NULL; } sm_module = OBJ_NEW(mca_coll_sm_module_t); diff -Nru openmpi-4.0.3/ompi/mca/coll/sm/Makefile.in openmpi-4.1.4/ompi/mca/coll/sm/Makefile.in --- openmpi-4.0.3/ompi/mca/coll/sm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/sm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -665,6 +678,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1485,6 +1501,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1517,9 +1537,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1540,6 +1569,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1624,9 +1654,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1687,6 +1714,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1700,6 +1730,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/coll/sync/Makefile.in openmpi-4.1.4/ompi/mca/coll/sync/Makefile.in --- openmpi-4.0.3/ompi/mca/coll/sync/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/sync/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -666,6 +679,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1486,6 +1502,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1518,9 +1538,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1541,6 +1570,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1625,9 +1655,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1688,6 +1715,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1701,6 +1731,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_allgather_decision.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_allgather_decision.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_allgather_decision.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_allgather_decision.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,9 +1,10 @@ /* - * Copyright (c) 2004-2017 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2021 FUJITSU LIMITED. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -31,7 +32,7 @@ static int coll_tuned_allgather_chain_fanout; /* valid values for coll_tuned_allgather_forced_algorithm */ -static mca_base_var_enum_value_t allgather_algorithms[] = { +static const mca_base_var_enum_value_t allgather_algorithms[] = { {0, "ignore"}, {1, "linear"}, {2, "bruck"}, @@ -77,7 +78,8 @@ mca_param_indices->algorithm_param_index = mca_base_component_var_register(&mca_coll_tuned_component.super.collm_version, "allgather_algorithm", - "Which allallgather algorithm is used. Can be locked down to choice of: 0 ignore, 1 basic linear, 2 bruck, 3 recursive doubling, 4 ring, 5 neighbor exchange, 6: two proc only.", + "Which allgather algorithm is used. Can be locked down to choice of: 0 ignore, 1 basic linear, 2 bruck, 3 recursive doubling, 4 ring, 5 neighbor exchange, 6: two proc only. " + "Only relevant if coll_tuned_use_dynamic_rules is true.", MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_allgatherv_decision.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_allgatherv_decision.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_allgatherv_decision.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_allgatherv_decision.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,10 +1,11 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2004-2017 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2021 FUJITSU LIMITED. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -31,7 +32,7 @@ static int coll_tuned_allgatherv_chain_fanout; /* valid values for coll_tuned_allgatherv_forced_algorithm */ -static mca_base_var_enum_value_t allgatherv_algorithms[] = { +static const mca_base_var_enum_value_t allgatherv_algorithms[] = { {0, "ignore"}, {1, "default"}, {2, "bruck"}, @@ -76,7 +77,8 @@ mca_param_indices->algorithm_param_index = mca_base_component_var_register(&mca_coll_tuned_component.super.collm_version, "allgatherv_algorithm", - "Which allallgatherv algorithm is used. Can be locked down to choice of: 0 ignore, 1 default (allgathervv + bcast), 2 bruck, 3 ring, 4 neighbor exchange, 5: two proc only.", + "Which allgatherv algorithm is used. Can be locked down to choice of: 0 ignore, 1 default (allgathervv + bcast), 2 bruck, 3 ring, 4 neighbor exchange, 5: two proc only. " + "Only relevant if coll_tuned_use_dynamic_rules is true.", MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_CONSTANT, diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_allreduce_decision.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_allreduce_decision.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_allreduce_decision.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_allreduce_decision.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2004-2017 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2015-2018 Research Organization for Information Science @@ -34,7 +34,7 @@ static int coll_tuned_allreduce_chain_fanout; /* valid values for coll_tuned_allreduce_forced_algorithm */ -static mca_base_var_enum_value_t allreduce_algorithms[] = { +static const mca_base_var_enum_value_t allreduce_algorithms[] = { {0, "ignore"}, {1, "basic_linear"}, {2, "nonoverlapping"}, @@ -77,7 +77,8 @@ mca_param_indices->algorithm_param_index = mca_base_component_var_register(&mca_coll_tuned_component.super.collm_version, "allreduce_algorithm", - "Which allreduce algorithm is used. Can be locked down to any of: 0 ignore, 1 basic linear, 2 nonoverlapping (tuned reduce + tuned bcast), 3 recursive doubling, 4 ring, 5 segmented ring", + "Which allreduce algorithm is used. Can be locked down to any of: 0 ignore, 1 basic linear, 2 nonoverlapping (tuned reduce + tuned bcast), 3 recursive doubling, 4 ring, 5 segmented ring. " + "Only relevant if coll_tuned_use_dynamic_rules is true.", MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_alltoall_decision.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_alltoall_decision.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_alltoall_decision.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_alltoall_decision.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2004-2017 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2015 Research Organization for Information Science @@ -32,7 +32,7 @@ static int coll_tuned_alltoall_chain_fanout; /* valid values for coll_tuned_alltoall_forced_algorithm */ -static mca_base_var_enum_value_t alltoall_algorithms[] = { +static const mca_base_var_enum_value_t alltoall_algorithms[] = { {0, "ignore"}, {1, "linear"}, {2, "pairwise"}, @@ -74,7 +74,8 @@ mca_param_indices->algorithm_param_index = mca_base_component_var_register(&mca_coll_tuned_component.super.collm_version, "alltoall_algorithm", - "Which alltoall algorithm is used. Can be locked down to choice of: 0 ignore, 1 basic linear, 2 pairwise, 3: modified bruck, 4: linear with sync, 5:two proc only.", + "Which alltoall algorithm is used. Can be locked down to choice of: 0 ignore, 1 basic linear, 2 pairwise, 3: modified bruck, 4: linear with sync, 5:two proc only. " + "Only relevant if coll_tuned_use_dynamic_rules is true.", MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_alltoallv_decision.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_alltoallv_decision.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_alltoallv_decision.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_alltoallv_decision.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2004-2017 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2015 Research Organization for Information Science @@ -29,7 +29,7 @@ static int coll_tuned_alltoallv_forced_algorithm = 0; /* valid values for coll_tuned_alltoallv_forced_algorithm */ -static mca_base_var_enum_value_t alltoallv_algorithms[] = { +static const mca_base_var_enum_value_t alltoallv_algorithms[] = { {0, "ignore"}, {1, "basic_linear"}, {2, "pairwise"}, @@ -71,7 +71,8 @@ "alltoallv_algorithm", "Which alltoallv algorithm is used. " "Can be locked down to choice of: 0 ignore, " - "1 basic linear, 2 pairwise.", + "1 basic linear, 2 pairwise. " + "Only relevant if coll_tuned_use_dynamic_rules is true.", MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_barrier_decision.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_barrier_decision.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_barrier_decision.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_barrier_decision.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2004-2015 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * $COPYRIGHT$ @@ -27,7 +27,7 @@ static int coll_tuned_barrier_forced_algorithm = 0; /* valid values for coll_tuned_barrier_forced_algorithm */ -static mca_base_var_enum_value_t barrier_algorithms[] = { +static const mca_base_var_enum_value_t barrier_algorithms[] = { {0, "ignore"}, {1, "linear"}, {2, "double_ring"}, @@ -72,7 +72,8 @@ mca_param_indices->algorithm_param_index = mca_base_component_var_register(&mca_coll_tuned_component.super.collm_version, "barrier_algorithm", - "Which barrier algorithm is used. Can be locked down to choice of: 0 ignore, 1 linear, 2 double ring, 3: recursive doubling 4: bruck, 5: two proc only, 6: tree", + "Which barrier algorithm is used. Can be locked down to choice of: 0 ignore, 1 linear, 2 double ring, 3: recursive doubling 4: bruck, 5: two proc only, 6: tree. " + "Only relevant if coll_tuned_use_dynamic_rules is true.", MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_bcast_decision.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_bcast_decision.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_bcast_decision.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_bcast_decision.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2004-2017 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2015 Research Organization for Information Science @@ -34,7 +34,7 @@ static int coll_tuned_bcast_knomial_radix = 4; /* valid values for coll_tuned_bcast_forced_algorithm */ -static mca_base_var_enum_value_t bcast_algorithms[] = { +static const mca_base_var_enum_value_t bcast_algorithms[] = { {0, "ignore"}, {1, "basic_linear"}, {2, "chain"}, @@ -80,7 +80,8 @@ mca_param_indices->algorithm_param_index = mca_base_component_var_register(&mca_coll_tuned_component.super.collm_version, "bcast_algorithm", - "Which bcast algorithm is used. Can be locked down to choice of: 0 ignore, 1 basic linear, 2 chain, 3: pipeline, 4: split binary tree, 5: binary tree, 6: binomial tree, 7: knomial tree, 8: scatter_allgather, 9: scatter_allgather_ring.", + "Which bcast algorithm is used. Can be locked down to choice of: 0 ignore, 1 basic linear, 2 chain, 3: pipeline, 4: split binary tree, 5: binary tree, 6: binomial tree, 7: knomial tree, 8: scatter_allgather, 9: scatter_allgather_ring. " + "Only relevant if coll_tuned_use_dynamic_rules is true.", MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_component.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_component.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -16,6 +16,7 @@ * reserved. * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2019 Mellanox Technologies. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -64,6 +65,12 @@ int ompi_coll_tuned_alltoall_min_procs = 0; /* disable by default */ int ompi_coll_tuned_alltoall_max_requests = 0; /* no limit for alltoall by default */ +/* Disable by default */ +int ompi_coll_tuned_scatter_intermediate_msg = 0; +int ompi_coll_tuned_scatter_large_msg = 0; +int ompi_coll_tuned_scatter_min_procs = 0; +int ompi_coll_tuned_scatter_blocking_send_ratio = 0; + /* forced alogrithm variables */ /* indices for the MCA parameters */ coll_tuned_force_algorithm_mca_param_indices_t ompi_coll_tuned_forced_params[COLLCOUNT] = {{0}}; @@ -208,17 +215,8 @@ int rc; #if OPAL_ENABLE_DEBUG - { - int param; - - param = mca_base_var_find("ompi", "coll", "base", "verbose"); - if (param >= 0) { - const int *verbose = NULL; - mca_base_var_get_value(param, &verbose, NULL, NULL); - if (verbose && verbose[0] > 0) { - ompi_coll_tuned_stream = opal_output_open(NULL); - } - } + if (ompi_coll_base_framework.framework_verbose) { + ompi_coll_tuned_stream = opal_output_open(NULL); } #endif /* OPAL_ENABLE_DEBUG */ diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_decision_dynamic.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_decision_dynamic.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_decision_dynamic.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_decision_dynamic.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2015 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -12,6 +12,8 @@ * Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved. * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2020 Amazon.com, Inc. or its affiliates. + * All Rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -95,7 +97,7 @@ * * Function: - seletects alltoall algorithm to use * Accepts: - same arguments as MPI_Alltoall() - * Returns: - MPI_SUCCESS or error code (passed from the bcast implementation) + * Returns: - MPI_SUCCESS or error code (passed from the alltoall implementation) */ int ompi_coll_tuned_alltoall_intra_dec_dynamic(const void *sbuf, int scount, @@ -236,7 +238,7 @@ /* * bcast_intra_dec * - * Function: - seletects broadcast algorithm to use + * Function: - selects broadcast algorithm to use * Accepts: - same arguments as MPI_Bcast() * Returns: - MPI_SUCCESS or error code (passed from the bcast implementation) */ @@ -526,15 +528,17 @@ - calculate message size and other necessary information */ int comsize, i; int alg, faninout, segsize, ignoreme; - size_t dsize, total_size; + size_t dsize, total_size, per_rank_size; comsize = ompi_comm_size(comm); ompi_datatype_type_size (sdtype, &dsize); total_size = 0; for (i = 0; i < comsize; i++) { total_size += dsize * rcounts[i]; } + per_rank_size = total_size / comsize; + alg = ompi_coll_tuned_get_target_method_params (tuned_module->com_rules[ALLGATHERV], - total_size, &faninout, &segsize, &ignoreme); + per_rank_size, &faninout, &segsize, &ignoreme); if (alg) { /* we have found a valid choice from the file based rules for this message size */ @@ -586,7 +590,7 @@ comsize = ompi_comm_size(comm); ompi_datatype_type_size (sdtype, &dsize); - dsize *= comsize; + dsize *= scount * comsize; alg = ompi_coll_tuned_get_target_method_params (tuned_module->com_rules[GATHER], dsize, &faninout, &segsize, &max_requests); @@ -635,7 +639,7 @@ comsize = ompi_comm_size(comm); ompi_datatype_type_size (sdtype, &dsize); - dsize *= comsize; + dsize *= scount * comsize; alg = ompi_coll_tuned_get_target_method_params (tuned_module->com_rules[SCATTER], dsize, &faninout, &segsize, &max_requests); diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_decision_fixed.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_decision_fixed.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_decision_fixed.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_decision_fixed.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2015 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -15,6 +15,9 @@ * reserved. * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2019 Mellanox Technologies. All rights reserved. + * Copyright (c) 2020 Amazon.com, Inc. or its affiliates. + * All Rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -34,6 +37,14 @@ #include "coll_tuned.h" /* + * The new default fixed decision functions were generated based off of + * results that were gathered using the ompi-collectives-tuning package. + * These results were submitted by multiple OMPI developers on their clusters + * and were subsequently averaged to generate the algorithm switch points + * seen below. + */ + +/* * allreduce_intra * * Function: - allreduce using other MPI collectives @@ -47,48 +58,169 @@ struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - size_t dsize, block_dsize; - int comm_size = ompi_comm_size(comm); - const size_t intermediate_message = 10000; + size_t dsize, total_dsize; + int communicator_size, alg; + communicator_size = ompi_comm_size(comm); OPAL_OUTPUT((ompi_coll_tuned_stream, "ompi_coll_tuned_allreduce_intra_dec_fixed")); - /** - * Decision function based on MX results from the Grig cluster at UTK. - * - * Currently, linear, recursive doubling, and nonoverlapping algorithms - * can handle both commutative and non-commutative operations. - * Ring algorithm does not support non-commutative operations. - */ ompi_datatype_type_size(dtype, &dsize); - block_dsize = dsize * (ptrdiff_t)count; - - if (block_dsize < intermediate_message) { - return (ompi_coll_base_allreduce_intra_recursivedoubling(sbuf, rbuf, - count, dtype, - op, comm, module)); - } + total_dsize = dsize * (ptrdiff_t)count; - if( ompi_op_is_commute(op) && (count > comm_size) ) { - const size_t segment_size = 1 << 20; /* 1 MB */ - if (((size_t)comm_size * (size_t)segment_size >= block_dsize)) { - return (ompi_coll_base_allreduce_intra_ring(sbuf, rbuf, count, dtype, - op, comm, module)); + /** Algorithms: + * {1, "basic_linear"}, + * {2, "nonoverlapping"}, + * {3, "recursive_doubling"}, + * {4, "ring"}, + * {5, "segmented_ring"}, + * {6, "rabenseifner" + * + * Currently, ring, segmented ring, and rabenseifner do not support + * non-commutative operations. + */ + if( !ompi_op_is_commute(op) ) { + if (communicator_size < 4) { + if (total_dsize < 131072) { + alg = 3; + } else { + alg = 1; + } + } else if (communicator_size < 8) { + alg = 3; + } else if (communicator_size < 16) { + if (total_dsize < 1048576) { + alg = 3; + } else { + alg = 2; + } + } else if (communicator_size < 128) { + alg = 3; + } else if (communicator_size < 256) { + if (total_dsize < 131072) { + alg = 2; + } else if (total_dsize < 524288) { + alg = 3; + } else { + alg = 2; + } + } else if (communicator_size < 512) { + if (total_dsize < 4096) { + alg = 2; + } else if (total_dsize < 524288) { + alg = 3; + } else { + alg = 2; + } } else { - return (ompi_coll_base_allreduce_intra_ring_segmented(sbuf, rbuf, - count, dtype, - op, comm, module, - segment_size)); + if (total_dsize < 2048) { + alg = 2; + } else { + alg = 3; + } + } + } else { + if (communicator_size < 4) { + if (total_dsize < 8) { + alg = 4; + } else if (total_dsize < 4096) { + alg = 3; + } else if (total_dsize < 8192) { + alg = 4; + } else if (total_dsize < 16384) { + alg = 3; + } else if (total_dsize < 65536) { + alg = 4; + } else if (total_dsize < 262144) { + alg = 5; + } else { + alg = 6; + } + } else if (communicator_size < 8) { + if (total_dsize < 16) { + alg = 4; + } else if (total_dsize < 8192) { + alg = 3; + } else { + alg = 6; + } + } else if (communicator_size < 16) { + if (total_dsize < 8192) { + alg = 3; + } else { + alg = 6; + } + } else if (communicator_size < 32) { + if (total_dsize < 64) { + alg = 5; + } else if (total_dsize < 4096) { + alg = 3; + } else { + alg = 6; + } + } else if (communicator_size < 64) { + if (total_dsize < 128) { + alg = 5; + } else { + alg = 6; + } + } else if (communicator_size < 128) { + if (total_dsize < 262144) { + alg = 3; + } else { + alg = 6; + } + } else if (communicator_size < 256) { + if (total_dsize < 131072) { + alg = 2; + } else if (total_dsize < 262144) { + alg = 3; + } else { + alg = 6; + } + } else if (communicator_size < 512) { + if (total_dsize < 4096) { + alg = 2; + } else { + alg = 6; + } + } else if (communicator_size < 2048) { + if (total_dsize < 2048) { + alg = 2; + } else if (total_dsize < 16384) { + alg = 3; + } else { + alg = 6; + } + } else if (communicator_size < 4096) { + if (total_dsize < 2048) { + alg = 2; + } else if (total_dsize < 4096) { + alg = 5; + } else if (total_dsize < 16384) { + alg = 3; + } else { + alg = 6; + } + } else { + if (total_dsize < 2048) { + alg = 2; + } else if (total_dsize < 16384) { + alg = 5; + } else if (total_dsize < 32768) { + alg = 3; + } else { + alg = 6; + } } } - return (ompi_coll_base_allreduce_intra_nonoverlapping(sbuf, rbuf, count, - dtype, op, comm, module)); + return ompi_coll_tuned_allreduce_intra_do_this (sbuf, rbuf, count, dtype, op, + comm, module, alg, 0, 0); } /* * alltoall_intra_dec * - * Function: - seletects alltoall algorithm to use + * Function: - selects alltoall algorithm to use * Accepts: - same arguments as MPI_Alltoall() * Returns: - MPI_SUCCESS or error code */ @@ -100,72 +232,182 @@ struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - int communicator_size; - size_t dsize, block_dsize; -#if 0 - size_t total_dsize; -#endif + int communicator_size, alg; + size_t dsize, total_dsize; communicator_size = ompi_comm_size(comm); - - /* special case */ - if (communicator_size==2) { - return ompi_coll_base_alltoall_intra_two_procs(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - comm, module); - } - - /* Decision function based on measurement on Grig cluster at - the University of Tennessee (2GB MX) up to 64 nodes. - Has better performance for messages of intermediate sizes than the old one */ - /* determine block size */ if (MPI_IN_PLACE != sbuf) { ompi_datatype_type_size(sdtype, &dsize); } else { ompi_datatype_type_size(rdtype, &dsize); } - block_dsize = dsize * (ptrdiff_t)scount; + total_dsize = dsize * (ptrdiff_t)scount; - if ((block_dsize < (size_t) ompi_coll_tuned_alltoall_small_msg) - && (communicator_size > 12)) { - return ompi_coll_base_alltoall_intra_bruck(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - comm, module); - - } else if (block_dsize < (size_t) ompi_coll_tuned_alltoall_intermediate_msg) { - return ompi_coll_base_alltoall_intra_basic_linear(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - comm, module); - } else if ((block_dsize < (size_t) ompi_coll_tuned_alltoall_large_msg) && - (communicator_size <= ompi_coll_tuned_alltoall_min_procs)) { - return ompi_coll_base_alltoall_intra_linear_sync(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - comm, module, - ompi_coll_tuned_alltoall_max_requests); + /** Algorithms: + * {1, "linear"}, + * {2, "pairwise"}, + * {3, "modified_bruck"}, + * {4, "linear_sync"}, + * {5, "two_proc"}, + */ + if (communicator_size == 2) { + if (total_dsize < 2) { + alg = 2; + } else if (total_dsize < 4) { + alg = 5; + } else if (total_dsize < 16) { + alg = 2; + } else if (total_dsize < 64) { + alg = 5; + } else if (total_dsize < 256) { + alg = 2; + } else if (total_dsize < 4096) { + alg = 5; + } else if (total_dsize < 32768) { + alg = 2; + } else if (total_dsize < 262144) { + alg = 4; + } else if (total_dsize < 1048576) { + alg = 5; + } else { + alg = 2; + } + } else if (communicator_size < 8) { + if (total_dsize < 8192) { + alg = 4; + } else if (total_dsize < 16384) { + alg = 1; + } else if (total_dsize < 65536) { + alg = 4; + } else if (total_dsize < 524288) { + alg = 1; + } else if (total_dsize < 1048576) { + alg = 2; + } else { + alg = 1; + } + } else if (communicator_size < 16) { + if (total_dsize < 262144) { + alg = 4; + } else { + alg = 1; + } + } else if (communicator_size < 32) { + if (total_dsize < 4) { + alg = 4; + } else if (total_dsize < 512) { + alg = 3; + } else if (total_dsize < 8192) { + alg = 4; + } else if (total_dsize < 32768) { + alg = 1; + } else if (total_dsize < 262144) { + alg = 4; + } else if (total_dsize < 524288) { + alg = 1; + } else { + alg = 4; + } + } else if (communicator_size < 64) { + if (total_dsize < 512) { + alg = 3; + } else if (total_dsize < 524288) { + alg = 1; + } else { + alg = 4; + } + } else if (communicator_size < 128) { + if (total_dsize < 1024) { + alg = 3; + } else if (total_dsize < 2048) { + alg = 1; + } else if (total_dsize < 4096) { + alg = 4; + } else if (total_dsize < 262144) { + alg = 1; + } else { + alg = 2; + } + } else if (communicator_size < 256) { + if (total_dsize < 1024) { + alg = 3; + } else if (total_dsize < 2048) { + alg = 4; + } else if (total_dsize < 262144) { + alg = 1; + } else { + alg = 2; + } + } else if (communicator_size < 512) { + if (total_dsize < 1024) { + alg = 3; + } else if (total_dsize < 8192) { + alg = 4; + } else if (total_dsize < 32768) { + alg = 1; + } else { + alg = 2; + } + } else if (communicator_size < 1024) { + if (total_dsize < 512) { + alg = 3; + } else if (total_dsize < 8192) { + alg = 4; + } else if (total_dsize < 16384) { + alg = 1; + } else if (total_dsize < 131072) { + alg = 4; + } else if (total_dsize < 262144) { + alg = 1; + } else { + alg = 2; + } + } else if (communicator_size < 2048) { + if (total_dsize < 512) { + alg = 3; + } else if (total_dsize < 1024) { + alg = 4; + } else if (total_dsize < 2048) { + alg = 1; + } else if (total_dsize < 16384) { + alg = 4; + } else if (total_dsize < 262144) { + alg = 1; + } else { + alg = 4; + } + } else if (communicator_size < 4096) { + if (total_dsize < 1024) { + alg = 3; + } else if (total_dsize < 4096) { + alg = 4; + } else if (total_dsize < 8192) { + alg = 1; + } else if (total_dsize < 131072) { + alg = 4; + } else { + alg = 1; + } + } else { + if (total_dsize < 2048) { + alg = 3; + } else if (total_dsize < 8192) { + alg = 4; + } else if (total_dsize < 16384) { + alg = 1; + } else if (total_dsize < 32768) { + alg = 4; + } else if (total_dsize < 65536) { + alg = 1; + } else { + alg = 4; + } } - return ompi_coll_base_alltoall_intra_pairwise(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - comm, module); - -#if 0 - /* previous decision */ - - /* else we need data size for decision function */ - ompi_datatype_type_size(sdtype, &dsize); - total_dsize = dsize * scount * communicator_size; /* needed for decision */ - - OPAL_OUTPUT((ompi_coll_tuned_stream, "ompi_coll_tuned_alltoall_intra_dec_fixed rank %d com_size %d msg_length %ld", - ompi_comm_rank(comm), communicator_size, total_dsize)); - - if (communicator_size >= 12 && total_dsize <= 768) { - return ompi_coll_base_alltoall_intra_bruck(sbuf, scount, sdtype, rbuf, rcount, rdtype, comm, module); - } - if (total_dsize <= 131072) { - return ompi_coll_base_alltoall_intra_basic_linear(sbuf, scount, sdtype, rbuf, rcount, rdtype, comm, module); - } - return ompi_coll_base_alltoall_intra_pairwise(sbuf, scount, sdtype, rbuf, rcount, rdtype, comm, module); -#endif + return ompi_coll_tuned_alltoall_intra_do_this (sbuf, scount, sdtype, + rbuf, rcount, rdtype, + comm, module, + alg, 0, 0, ompi_coll_tuned_alltoall_max_requests); } /* @@ -180,53 +422,90 @@ struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - /* For starters, just keep the original algorithm. */ - return ompi_coll_base_alltoallv_intra_pairwise(sbuf, scounts, sdisps, sdtype, - rbuf, rcounts, rdisps,rdtype, - comm, module); + int communicator_size, alg; + communicator_size = ompi_comm_size(comm); + + OPAL_OUTPUT((ompi_coll_tuned_stream, "ompi_coll_tuned_alltoallv_intra_dec_fixed com_size %d", + communicator_size)); + /** Algorithms: + * {1, "basic_linear"}, + * {2, "pairwise"}, + * + * We can only optimize based on com size + */ + if (communicator_size < 4) { + alg = 2; + } else if (communicator_size < 64) { + alg = 1; + } else if (communicator_size < 128) { + alg = 2; + } else if (communicator_size < 256) { + alg = 1; + } else if (communicator_size < 1024) { + alg = 2; + } else { + alg = 1; + } + + return ompi_coll_tuned_alltoallv_intra_do_this (sbuf, scounts, sdisps, sdtype, + rbuf, rcounts, rdisps, rdtype, + comm, module, + alg); } /* * barrier_intra_dec * - * Function: - seletects barrier algorithm to use + * Function: - selects barrier algorithm to use * Accepts: - same arguments as MPI_Barrier() * Returns: - MPI_SUCCESS or error code (passed from the barrier implementation) */ int ompi_coll_tuned_barrier_intra_dec_fixed(struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - int communicator_size = ompi_comm_size(comm); + int communicator_size, alg; + communicator_size = ompi_comm_size(comm); OPAL_OUTPUT((ompi_coll_tuned_stream, "ompi_coll_tuned_barrier_intra_dec_fixed com_size %d", communicator_size)); - - if( 2 == communicator_size ) - return ompi_coll_base_barrier_intra_two_procs(comm, module); - /** - * Basic optimisation. If we have a power of 2 number of nodes - * the use the recursive doubling algorithm, otherwise - * bruck is the one we want. - */ - { - bool has_one = false; - for( ; communicator_size > 0; communicator_size >>= 1 ) { - if( communicator_size & 0x1 ) { - if( has_one ) - return ompi_coll_base_barrier_intra_bruck(comm, module); - has_one = true; - } - } + /** Algorithms: + * {1, "linear"}, + * {2, "double_ring"}, + * {3, "recursive_doubling"}, + * {4, "bruck"}, + * {5, "two_proc"}, + * {6, "tree"}, + * + * We can only optimize based on com size + */ + if (communicator_size < 4) { + alg = 3; + } else if (communicator_size < 8) { + alg = 1; + } else if (communicator_size < 64) { + alg = 3; + } else if (communicator_size < 256) { + alg = 4; + } else if (communicator_size < 512) { + alg = 6; + } else if (communicator_size < 1024) { + alg = 4; + } else if (communicator_size < 4096) { + alg = 6; + } else { + alg = 4; } - return ompi_coll_base_barrier_intra_recursivedoubling(comm, module); + + return ompi_coll_tuned_barrier_intra_do_this (comm, module, + alg, 0, 0); } /* * bcast_intra_dec * - * Function: - seletects broadcast algorithm to use + * Function: - selects broadcast algorithm to use * Accepts: - same arguments as MPI_Bcast() * Returns: - MPI_SUCCESS or error code (passed from the bcast implementation) */ @@ -235,117 +514,147 @@ struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - /* Decision function based on MX results for - messages up to 36MB and communicator sizes up to 64 nodes */ - const size_t small_message_size = 2048; - const size_t intermediate_message_size = 370728; - const double a_p16 = 3.2118e-6; /* [1 / byte] */ - const double b_p16 = 8.7936; - const double a_p64 = 2.3679e-6; /* [1 / byte] */ - const double b_p64 = 1.1787; - const double a_p128 = 1.6134e-6; /* [1 / byte] */ - const double b_p128 = 2.1102; - - int communicator_size; - int segsize = 0; - size_t message_size, dsize; - - communicator_size = ompi_comm_size(comm); + size_t total_dsize, dsize; + int communicator_size, alg; + communicator_size = ompi_comm_size(comm); - /* else we need data size for decision function */ ompi_datatype_type_size(datatype, &dsize); - message_size = dsize * (unsigned long)count; /* needed for decision */ + total_dsize = dsize * (unsigned long)count; OPAL_OUTPUT((ompi_coll_tuned_stream, "ompi_coll_tuned_bcast_intra_dec_fixed" - " root %d rank %d com_size %d msg_length %lu", - root, ompi_comm_rank(comm), communicator_size, (unsigned long)message_size)); + " root %d rank %d com_size %d", + root, ompi_comm_rank(comm), communicator_size)); - /* Handle messages of small and intermediate size, and - single-element broadcasts */ - if ((message_size < small_message_size) || (count <= 1)) { - /* Binomial without segmentation */ - segsize = 0; - return ompi_coll_base_bcast_intra_binomial(buff, count, datatype, - root, comm, module, - segsize); - - } else if (message_size < intermediate_message_size) { - /* SplittedBinary with 1KB segments */ - segsize = 1024; - return ompi_coll_base_bcast_intra_split_bintree(buff, count, datatype, - root, comm, module, - segsize); - - } - /* Handle large message sizes */ - else if (communicator_size < (a_p128 * message_size + b_p128)) { - /* Pipeline with 128KB segments */ - segsize = 1024 << 7; - return ompi_coll_base_bcast_intra_pipeline(buff, count, datatype, - root, comm, module, - segsize); - - } else if (communicator_size < 13) { - /* Split Binary with 8KB segments */ - segsize = 1024 << 3; - return ompi_coll_base_bcast_intra_split_bintree(buff, count, datatype, - root, comm, module, - segsize); - - } else if (communicator_size < (a_p64 * message_size + b_p64)) { - /* Pipeline with 64KB segments */ - segsize = 1024 << 6; - return ompi_coll_base_bcast_intra_pipeline(buff, count, datatype, - root, comm, module, - segsize); - - } else if (communicator_size < (a_p16 * message_size + b_p16)) { - /* Pipeline with 16KB segments */ - segsize = 1024 << 4; - return ompi_coll_base_bcast_intra_pipeline(buff, count, datatype, - root, comm, module, - segsize); - - } - - /* Pipeline with 8KB segments */ - segsize = 1024 << 3; - return ompi_coll_base_bcast_intra_pipeline(buff, count, datatype, - root, comm, module, - segsize); -#if 0 - /* this is based on gige measurements */ - - if (communicator_size < 4) { - return ompi_coll_base_bcast_intra_basic_linear(buff, count, datatype, root, comm, module); - } - if (communicator_size == 4) { - if (message_size < 524288) segsize = 0; - else segsize = 16384; - return ompi_coll_base_bcast_intra_bintree(buff, count, datatype, root, comm, module, segsize); - } - if (communicator_size <= 8 && message_size < 4096) { - return ompi_coll_base_bcast_intra_basic_linear(buff, count, datatype, root, comm, module); - } - if (communicator_size > 8 && message_size >= 32768 && message_size < 524288) { - segsize = 16384; - return ompi_coll_base_bcast_intra_bintree(buff, count, datatype, root, comm, module, segsize); - } - if (message_size >= 524288) { - segsize = 16384; - return ompi_coll_base_bcast_intra_pipeline(buff, count, datatype, root, comm, module, segsize); - } - segsize = 0; - /* once tested can swap this back in */ - /* return ompi_coll_base_bcast_intra_bmtree(buff, count, datatype, root, comm, segsize); */ - return ompi_coll_base_bcast_intra_bintree(buff, count, datatype, root, comm, module, segsize); -#endif /* 0 */ + /** Algorithms: + * {1, "basic_linear"}, + * {2, "chain"}, + * {3, "pipeline"}, + * {4, "split_binary_tree"}, + * {5, "binary_tree"}, + * {6, "binomial"}, + * {7, "knomial"}, + * {8, "scatter_allgather"}, + * {9, "scatter_allgather_ring"}, + */ + if (communicator_size < 4) { + if (total_dsize < 32) { + alg = 3; + } else if (total_dsize < 256) { + alg = 5; + } else if (total_dsize < 512) { + alg = 3; + } else if (total_dsize < 1024) { + alg = 7; + } else if (total_dsize < 32768) { + alg = 1; + } else if (total_dsize < 131072) { + alg = 5; + } else if (total_dsize < 262144) { + alg = 2; + } else if (total_dsize < 524288) { + alg = 1; + } else if (total_dsize < 1048576) { + alg = 6; + } else { + alg = 5; + } + } else if (communicator_size < 8) { + if (total_dsize < 64) { + alg = 5; + } else if (total_dsize < 128) { + alg = 6; + } else if (total_dsize < 2048) { + alg = 5; + } else if (total_dsize < 8192) { + alg = 6; + } else if (total_dsize < 1048576) { + alg = 1; + } else { + alg = 2; + } + } else if (communicator_size < 16) { + if (total_dsize < 8) { + alg = 7; + } else if (total_dsize < 64) { + alg = 5; + } else if (total_dsize < 4096) { + alg = 7; + } else if (total_dsize < 16384) { + alg = 5; + } else if (total_dsize < 32768) { + alg = 6; + } else { + alg = 1; + } + } else if (communicator_size < 32) { + if (total_dsize < 4096) { + alg = 7; + } else if (total_dsize < 1048576) { + alg = 6; + } else { + alg = 8; + } + } else if (communicator_size < 64) { + if (total_dsize < 2048) { + alg = 6; + } else { + alg = 7; + } + } else if (communicator_size < 128) { + alg = 7; + } else if (communicator_size < 256) { + if (total_dsize < 2) { + alg = 6; + } else if (total_dsize < 16384) { + alg = 5; + } else if (total_dsize < 32768) { + alg = 1; + } else if (total_dsize < 65536) { + alg = 5; + } else { + alg = 7; + } + } else if (communicator_size < 1024) { + if (total_dsize < 16384) { + alg = 7; + } else if (total_dsize < 32768) { + alg = 4; + } else { + alg = 7; + } + } else if (communicator_size < 2048) { + if (total_dsize < 524288) { + alg = 7; + } else { + alg = 8; + } + } else if (communicator_size < 4096) { + if (total_dsize < 262144) { + alg = 7; + } else { + alg = 8; + } + } else { + if (total_dsize < 8192) { + alg = 7; + } else if (total_dsize < 16384) { + alg = 5; + } else if (total_dsize < 262144) { + alg = 7; + } else { + alg = 8; + } + } + + return ompi_coll_tuned_bcast_intra_do_this (buff, count, datatype, root, + comm, module, + alg, 0, 0); } /* * reduce_intra_dec * - * Function: - seletects reduce algorithm to use + * Function: - selects reduce algorithm to use * Accepts: - same arguments as MPI_reduce() * Returns: - MPI_SUCCESS or error code (passed from the reduce implementation) * @@ -356,108 +665,158 @@ struct ompi_communicator_t* comm, mca_coll_base_module_t *module) { - int communicator_size, segsize = 0; - size_t message_size, dsize; - const double a1 = 0.6016 / 1024.0; /* [1/B] */ - const double b1 = 1.3496; - const double a2 = 0.0410 / 1024.0; /* [1/B] */ - const double b2 = 9.7128; - const double a3 = 0.0422 / 1024.0; /* [1/B] */ - const double b3 = 1.1614; - const double a4 = 0.0033 / 1024.0; /* [1/B] */ - const double b4 = 1.6761; - - const int max_requests = 0; /* no limit on # of outstanding requests */ + int communicator_size, alg; + size_t total_dsize, dsize; communicator_size = ompi_comm_size(comm); - /* need data size for decision function */ + OPAL_OUTPUT((ompi_coll_tuned_stream, "ompi_coll_tuned_reduce_intra_dec_fixed " + "root %d rank %d com_size %d", root, ompi_comm_rank(comm), communicator_size)); + ompi_datatype_type_size(datatype, &dsize); - message_size = dsize * (ptrdiff_t)count; /* needed for decision */ + total_dsize = dsize * (ptrdiff_t)count; /* needed for decision */ - /** - * If the operation is non commutative we currently have choice of linear - * or in-order binary tree algorithm. + /** Algorithms: + * {1, "linear"}, + * {2, "chain"}, + * {3, "pipeline"}, + * {4, "binary"}, + * {5, "binomial"}, + * {6, "in-order_binary"}, + * {7, "rabenseifner"}, + * + * Currently, only linear and in-order binary tree algorithms are + * capable of non commutative ops. */ if( !ompi_op_is_commute(op) ) { - if ((communicator_size < 12) && (message_size < 2048)) { - return ompi_coll_base_reduce_intra_basic_linear (sendbuf, recvbuf, count, datatype, op, root, comm, module); + if (communicator_size < 4) { + if (total_dsize < 8) { + alg = 6; + } else { + alg = 1; + } + } else if (communicator_size < 8) { + alg = 1; + } else if (communicator_size < 16) { + if (total_dsize < 1024) { + alg = 6; + } else if (total_dsize < 8192) { + alg = 1; + } else if (total_dsize < 16384) { + alg = 6; + } else if (total_dsize < 262144) { + alg = 1; + } else { + alg = 6; + } + } else if (communicator_size < 128) { + alg = 6; + } else if (communicator_size < 256) { + if (total_dsize < 512) { + alg = 6; + } else if (total_dsize < 1024) { + alg = 1; + } else { + alg = 6; + } + } else { + alg = 6; + } + } else { + if (communicator_size < 4) { + if (total_dsize < 8) { + alg = 7; + } else if (total_dsize < 16) { + alg = 4; + } else if (total_dsize < 32) { + alg = 3; + } else if (total_dsize < 262144) { + alg = 1; + } else if (total_dsize < 524288) { + alg = 3; + } else if (total_dsize < 1048576) { + alg = 2; + } else { + alg = 3; + } + } else if (communicator_size < 8) { + if (total_dsize < 4096) { + alg = 4; + } else if (total_dsize < 65536) { + alg = 2; + } else if (total_dsize < 262144) { + alg = 5; + } else if (total_dsize < 524288) { + alg = 1; + } else if (total_dsize < 1048576) { + alg = 5; + } else { + alg = 1; + } + } else if (communicator_size < 16) { + if (total_dsize < 8192) { + alg = 4; + } else { + alg = 5; + } + } else if (communicator_size < 32) { + if (total_dsize < 4096) { + alg = 4; + } else { + alg = 5; + } + } else if (communicator_size < 256) { + alg = 5; + } else if (communicator_size < 512) { + if (total_dsize < 8192) { + alg = 5; + } else if (total_dsize < 16384) { + alg = 6; + } else { + alg = 5; + } + } else if (communicator_size < 2048) { + alg = 5; + } else if (communicator_size < 4096) { + if (total_dsize < 512) { + alg = 5; + } else if (total_dsize < 1024) { + alg = 6; + } else if (total_dsize < 8192) { + alg = 5; + } else if (total_dsize < 16384) { + alg = 6; + } else { + alg = 5; + } + } else { + if (total_dsize < 16) { + alg = 5; + } else if (total_dsize < 32) { + alg = 6; + } else if (total_dsize < 1024) { + alg = 5; + } else if (total_dsize < 2048) { + alg = 6; + } else if (total_dsize < 8192) { + alg = 5; + } else if (total_dsize < 16384) { + alg = 6; + } else { + alg = 5; + } } - return ompi_coll_base_reduce_intra_in_order_binary (sendbuf, recvbuf, count, datatype, op, root, comm, module, - 0, max_requests); } - OPAL_OUTPUT((ompi_coll_tuned_stream, "ompi_coll_tuned_reduce_intra_dec_fixed " - "root %d rank %d com_size %d msg_length %lu", - root, ompi_comm_rank(comm), communicator_size, (unsigned long)message_size)); - - if ((communicator_size < 8) && (message_size < 512)){ - /* Linear_0K */ - return ompi_coll_base_reduce_intra_basic_linear(sendbuf, recvbuf, count, datatype, op, root, comm, module); - } else if (((communicator_size < 8) && (message_size < 20480)) || - (message_size < 2048) || (count <= 1)) { - /* Binomial_0K */ - segsize = 0; - return ompi_coll_base_reduce_intra_binomial(sendbuf, recvbuf, count, datatype, op, root, comm, module, - segsize, max_requests); - } else if (communicator_size > (a1 * message_size + b1)) { - /* Binomial_1K */ - segsize = 1024; - return ompi_coll_base_reduce_intra_binomial(sendbuf, recvbuf, count, datatype, op, root, comm, module, - segsize, max_requests); - } else if (communicator_size > (a2 * message_size + b2)) { - /* Pipeline_1K */ - segsize = 1024; - return ompi_coll_base_reduce_intra_pipeline(sendbuf, recvbuf, count, datatype, op, root, comm, module, - segsize, max_requests); - } else if (communicator_size > (a3 * message_size + b3)) { - /* Binary_32K */ - segsize = 32*1024; - return ompi_coll_base_reduce_intra_binary( sendbuf, recvbuf, count, datatype, op, root, - comm, module, segsize, max_requests); - } - if (communicator_size > (a4 * message_size + b4)) { - /* Pipeline_32K */ - segsize = 32*1024; - } else { - /* Pipeline_64K */ - segsize = 64*1024; - } - return ompi_coll_base_reduce_intra_pipeline(sendbuf, recvbuf, count, datatype, op, root, comm, module, - segsize, max_requests); - -#if 0 - /* for small messages use linear algorithm */ - if (message_size <= 4096) { - segsize = 0; - fanout = communicator_size - 1; - /* when linear implemented or taken from basic put here, right now using chain as a linear system */ - /* it is implemented and I shouldn't be calling a chain with a fanout bigger than MAXTREEFANOUT from topo.h! */ - return ompi_coll_base_reduce_intra_basic_linear(sendbuf, recvbuf, count, datatype, op, root, comm, module); - } - if (message_size < 524288) { - if (message_size <= 65536 ) { - segsize = 32768; - fanout = 8; - } else { - segsize = 1024; - fanout = communicator_size/2; - } - /* later swap this for a binary tree */ - /* fanout = 2; */ - return ompi_coll_base_reduce_intra_chain(sendbuf, recvbuf, count, datatype, op, root, comm, module, - segsize, fanout, max_requests); - } - segsize = 1024; - return ompi_coll_base_reduce_intra_pipeline(sendbuf, recvbuf, count, datatype, op, root, comm, module, - segsize, max_requests); -#endif /* 0 */ + return ompi_coll_tuned_reduce_intra_do_this (sendbuf, recvbuf, count, datatype, + op, root, comm, module, + alg, 0, 0, 0); } /* * reduce_scatter_intra_dec * - * Function: - seletects reduce_scatter algorithm to use + * Function: - selects reduce_scatter algorithm to use * Accepts: - same arguments as MPI_Reduce_scatter() * Returns: - MPI_SUCCESS or error code (passed from * the reduce scatter implementation) @@ -469,51 +828,143 @@ struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - int comm_size, i, pow2; - size_t total_message_size, dsize; - const double a = 0.0012; - const double b = 8.0; - const size_t small_message_size = 12 * 1024; - const size_t large_message_size = 256 * 1024; + int communicator_size, i, alg; + size_t total_dsize, dsize; OPAL_OUTPUT((ompi_coll_tuned_stream, "ompi_coll_tuned_reduce_scatter_intra_dec_fixed")); - comm_size = ompi_comm_size(comm); - /* We need data size for decision function */ + communicator_size = ompi_comm_size(comm); ompi_datatype_type_size(dtype, &dsize); - total_message_size = 0; - for (i = 0; i < comm_size; i++) { - total_message_size += rcounts[i]; + total_dsize = 0; + for (i = 0; i < communicator_size; i++) { + total_dsize += rcounts[i]; } + total_dsize *= dsize; - if( !ompi_op_is_commute(op) ) { - return ompi_coll_base_reduce_scatter_intra_nonoverlapping(sbuf, rbuf, rcounts, - dtype, op, - comm, module); - } - - total_message_size *= dsize; - - /* compute the nearest power of 2 */ - pow2 = opal_next_poweroftwo_inclusive (comm_size); - - if ((total_message_size <= small_message_size) || - ((total_message_size <= large_message_size) && (pow2 == comm_size)) || - (comm_size >= a * total_message_size + b)) { - return - ompi_coll_base_reduce_scatter_intra_basic_recursivehalving(sbuf, rbuf, rcounts, - dtype, op, - comm, module); - } - return ompi_coll_base_reduce_scatter_intra_ring(sbuf, rbuf, rcounts, - dtype, op, - comm, module); + /** Algorithms: + * {1, "non-overlapping"}, + * {2, "recursive_halving"}, + * {3, "ring"}, + * {4, "butterfly"}, + * + * Non commutative algorithm capability needs re-investigation. + * Defaulting to non overlapping for non commutative ops. + */ + if (!ompi_op_is_commute(op)) { + alg = 1; + } else { + if (communicator_size < 4) { + if (total_dsize < 65536) { + alg = 3; + } else if (total_dsize < 131072) { + alg = 4; + } else { + alg = 3; + } + } else if (communicator_size < 8) { + if (total_dsize < 8) { + alg = 1; + } else if (total_dsize < 262144) { + alg = 2; + } else { + alg = 3; + } + } else if (communicator_size < 32) { + if (total_dsize < 262144) { + alg = 2; + } else { + alg = 3; + } + } else if (communicator_size < 64) { + if (total_dsize < 64) { + alg = 1; + } else if (total_dsize < 2048) { + alg = 2; + } else if (total_dsize < 524288) { + alg = 4; + } else { + alg = 3; + } + } else if (communicator_size < 128) { + if (total_dsize < 256) { + alg = 1; + } else if (total_dsize < 512) { + alg = 2; + } else if (total_dsize < 2048) { + alg = 4; + } else if (total_dsize < 4096) { + alg = 2; + } else { + alg = 4; + } + } else if (communicator_size < 256) { + if (total_dsize < 256) { + alg = 1; + } else if (total_dsize < 512) { + alg = 2; + } else { + alg = 4; + } + } else if (communicator_size < 512) { + if (total_dsize < 256) { + alg = 1; + } else if (total_dsize < 1024) { + alg = 2; + } else { + alg = 4; + } + } else if (communicator_size < 1024) { + if (total_dsize < 512) { + alg = 1; + } else if (total_dsize < 2048) { + alg = 2; + } else if (total_dsize < 8192) { + alg = 4; + } else if (total_dsize < 16384) { + alg = 2; + } else { + alg = 4; + } + } else if (communicator_size < 2048) { + if (total_dsize < 512) { + alg = 1; + } else if (total_dsize < 4096) { + alg = 2; + } else if (total_dsize < 16384) { + alg = 4; + } else if (total_dsize < 32768) { + alg = 2; + } else { + alg = 4; + } + } else if (communicator_size < 4096) { + if (total_dsize < 512) { + alg = 1; + } else if (total_dsize < 4096) { + alg = 2; + } else { + alg = 4; + } + } else { + if (total_dsize < 1024) { + alg = 1; + } else if (total_dsize < 8192) { + alg = 2; + } else { + alg = 4; + } + } + } + + return ompi_coll_tuned_reduce_scatter_intra_do_this (sbuf, rbuf, rcounts, dtype, + op, comm, module, + alg, 0, 0); } /* * reduce_scatter_block_intra_dec * - * Function: - seletects reduce_scatter_block algorithm to use + * Function: - selects reduce_scatter_block algorithm to use * Accepts: - same arguments as MPI_Reduce_scatter_block() * Returns: - MPI_SUCCESS or error code (passed from * the reduce scatter implementation) @@ -525,15 +976,115 @@ struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { + int communicator_size, alg; + size_t dsize, total_dsize; + OPAL_OUTPUT((ompi_coll_tuned_stream, "ompi_coll_tuned_reduce_scatter_block_intra_dec_fixed")); - return ompi_coll_base_reduce_scatter_block_basic_linear(sbuf, rbuf, rcount, - dtype, op, comm, module); + + + ompi_datatype_type_size(dtype, &dsize); + total_dsize = dsize * (ptrdiff_t)rcount; + + communicator_size = ompi_comm_size(comm); + + /** Algorithms: + * {1, "basic_linear"}, + * {2, "recursive_doubling"}, + * {3, "recursive_halving"}, + * {4, "butterfly"}, + * + * Non commutative algorithm capability needs re-investigation. + * Defaulting to basic linear for non commutative ops. + */ + if( !ompi_op_is_commute(op) ) { + alg = 1; + } else { + if (communicator_size < 4) { + if (total_dsize < 4) { + alg = 2; + } else if (total_dsize < 8) { + alg = 4; + } else if (total_dsize < 16) { + alg = 3; + } else if (total_dsize < 128) { + alg = 4; + } else if (total_dsize < 256) { + alg = 3; + } else if (total_dsize < 4096) { + alg = 4; + } else if (total_dsize < 8192) { + alg = 3; + } else if (total_dsize < 131072) { + alg = 4; + } else { + alg = 1; + } + } else if (communicator_size < 8) { + if (total_dsize < 8) { + alg = 3; + } else if (total_dsize < 32) { + alg = 2; + } else if (total_dsize < 256) { + alg = 4; + } else if (total_dsize < 8192) { + alg = 3; + } else if (total_dsize < 16384) { + alg = 4; + } else if (total_dsize < 1048576) { + alg = 3; + } else { + alg = 1; + } + } else if (communicator_size < 16) { + if (total_dsize < 4) { + alg = 1; + } else if (total_dsize < 32) { + alg = 3; + } else if (total_dsize < 128) { + alg = 4; + } else if (total_dsize < 524288) { + alg = 3; + } else if (total_dsize < 4194304) { + alg = 1; + } else { + alg = 4; + } + } else if (communicator_size < 32) { + if (total_dsize < 32) { + alg = 1; + } else if (total_dsize < 524288) { + alg = 3; + } else if (total_dsize < 2097152) { + alg = 1; + } else if (total_dsize < 4194304) { + alg = 3; + } else { + alg = 4; + } + } else { + if (total_dsize < 4) { + alg = 3; + } else if (total_dsize < 16) { + alg = 1; + } else if (total_dsize < 65536) { + alg = 4; + } else if (total_dsize < 262144) { + alg = 1; + } else { + alg = 4; + } + } + } + + return ompi_coll_tuned_reduce_scatter_block_intra_do_this (sbuf, rbuf, rcount, dtype, + op, comm, module, + alg, 0, 0); } /* * allgather_intra_dec * - * Function: - seletects allgather algorithm to use + * Function: - selects allgather algorithm to use * Accepts: - same arguments as MPI_Allgather() * Returns: - MPI_SUCCESS or error code, passed from corresponding * internal allgather function. @@ -546,91 +1097,140 @@ struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - int communicator_size, pow2_size; + int communicator_size, alg; size_t dsize, total_dsize; - - communicator_size = ompi_comm_size(comm); - - /* Special case for 2 processes */ - if (communicator_size == 2) { - return ompi_coll_base_allgather_intra_two_procs(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - comm, module); - } - - /* Determine complete data size */ if (MPI_IN_PLACE != sbuf) { ompi_datatype_type_size(sdtype, &dsize); } else { ompi_datatype_type_size(rdtype, &dsize); } - total_dsize = dsize * (ptrdiff_t)scount * (ptrdiff_t)communicator_size; - - OPAL_OUTPUT((ompi_coll_tuned_stream, "ompi_coll_tuned_allgather_intra_dec_fixed" - " rank %d com_size %d msg_length %lu", - ompi_comm_rank(comm), communicator_size, (unsigned long)total_dsize)); - - pow2_size = opal_next_poweroftwo_inclusive (communicator_size); + total_dsize = dsize * (ptrdiff_t)scount; - /* Decision based on MX 2Gb results from Grig cluster at - The University of Tennesse, Knoxville - - if total message size is less than 50KB use either bruck or - recursive doubling for non-power of two and power of two nodes, - respectively. - - else use ring and neighbor exchange algorithms for odd and even - number of nodes, respectively. - */ - if (total_dsize < 50000) { - if (pow2_size == communicator_size) { - return ompi_coll_base_allgather_intra_recursivedoubling(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - comm, module); - } else { - return ompi_coll_base_allgather_intra_bruck(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - comm, module); - } - } else { - if (communicator_size % 2) { - return ompi_coll_base_allgather_intra_ring(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - comm, module); - } else { - return ompi_coll_base_allgather_intra_neighborexchange(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - comm, module); + communicator_size = ompi_comm_size(comm); + /** Algorithms: + * {1, "linear"}, + * {2, "bruck"}, + * {3, "recursive_doubling"}, + * {4, "ring"}, + * {5, "neighbor"}, + * {6, "two_proc"} + */ + if (communicator_size == 2) { + alg = 6; + } else if (communicator_size < 32) { + alg = 3; + } else if (communicator_size < 64) { + if (total_dsize < 1024) { + alg = 3; + } else if (total_dsize < 65536) { + alg = 5; + } else { + alg = 4; + } + } else if (communicator_size < 128) { + if (total_dsize < 512) { + alg = 3; + } else if (total_dsize < 65536) { + alg = 5; + } else { + alg = 4; + } + } else if (communicator_size < 256) { + if (total_dsize < 512) { + alg = 3; + } else if (total_dsize < 131072) { + alg = 5; + } else if (total_dsize < 524288) { + alg = 4; + } else if (total_dsize < 1048576) { + alg = 5; + } else { + alg = 4; + } + } else if (communicator_size < 512) { + if (total_dsize < 32) { + alg = 3; + } else if (total_dsize < 128) { + alg = 2; + } else if (total_dsize < 1024) { + alg = 3; + } else if (total_dsize < 131072) { + alg = 5; + } else if (total_dsize < 524288) { + alg = 4; + } else if (total_dsize < 1048576) { + alg = 5; + } else { + alg = 4; + } + } else if (communicator_size < 1024) { + if (total_dsize < 64) { + alg = 3; + } else if (total_dsize < 256) { + alg = 2; + } else if (total_dsize < 2048) { + alg = 3; + } else { + alg = 5; + } + } else if (communicator_size < 2048) { + if (total_dsize < 4) { + alg = 3; + } else if (total_dsize < 8) { + alg = 2; + } else if (total_dsize < 16) { + alg = 3; + } else if (total_dsize < 32) { + alg = 2; + } else if (total_dsize < 256) { + alg = 3; + } else if (total_dsize < 512) { + alg = 2; + } else if (total_dsize < 4096) { + alg = 3; + } else { + alg = 5; + } + } else if (communicator_size < 4096) { + if (total_dsize < 32) { + alg = 2; + } else if (total_dsize < 128) { + alg = 3; + } else if (total_dsize < 512) { + alg = 2; + } else if (total_dsize < 4096) { + alg = 3; + } else { + alg = 5; + } + } else { + if (total_dsize < 2) { + alg = 3; + } else if (total_dsize < 8) { + alg = 2; + } else if (total_dsize < 16) { + alg = 3; + } else if (total_dsize < 512) { + alg = 2; + } else if (total_dsize < 4096) { + alg = 3; + } else { + alg = 5; } } -#if defined(USE_MPICH2_DECISION) - /* Decision as in MPICH-2 - presented in Thakur et.al. "Optimization of Collective Communication - Operations in MPICH", International Journal of High Performance Computing - Applications, Vol. 19, No. 1, 49-66 (2005) - - for power-of-two processes and small and medium size messages - (up to 512KB) use recursive doubling - - for non-power-of-two processes and small messages (80KB) use bruck, - - for everything else use ring. - */ - if ((pow2_size == communicator_size) && (total_dsize < 524288)) { - return ompi_coll_base_allgather_intra_recursivedoubling(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - comm, module); - } else if (total_dsize <= 81920) { - return ompi_coll_base_allgather_intra_bruck(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - comm, module); - } - return ompi_coll_base_allgather_intra_ring(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - comm, module); -#endif /* defined(USE_MPICH2_DECISION) */ + OPAL_OUTPUT((ompi_coll_tuned_stream, "ompi_coll_tuned_allgather_intra_dec_fixed" + " rank %d com_size %d", ompi_comm_rank(comm), communicator_size)); + + return ompi_coll_tuned_allgather_intra_do_this(sbuf, scount, sdtype, + rbuf, rcount, rdtype, + comm, module, alg, 0, 0); } /* * allgatherv_intra_dec * - * Function: - seletects allgatherv algorithm to use + * Function: - selects allgatherv algorithm to use * Accepts: - same arguments as MPI_Allgatherv() * Returns: - MPI_SUCCESS or error code, passed from corresponding * internal allgatherv function. @@ -644,20 +1244,11 @@ struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - int i; - int communicator_size; - size_t dsize, total_dsize; + int communicator_size, alg, i; + size_t dsize, total_dsize, per_rank_dsize; communicator_size = ompi_comm_size(comm); - /* Special case for 2 processes */ - if (communicator_size == 2) { - return ompi_coll_base_allgatherv_intra_two_procs(sbuf, scount, sdtype, - rbuf, rcounts, rdispls, rdtype, - comm, module); - } - - /* Determine complete data size */ if (MPI_IN_PLACE != sbuf) { ompi_datatype_type_size(sdtype, &dsize); } else { @@ -665,37 +1256,121 @@ } total_dsize = 0; - for (i = 0; i < communicator_size; i++) { - total_dsize += dsize * (ptrdiff_t)rcounts[i]; + for (i = 0; i < communicator_size; i++) { total_dsize += dsize * rcounts[i]; } + + /* use the per-rank data size as basis, similar to allgather */ + per_rank_dsize = total_dsize / communicator_size; + + /** Algorithms: + * {1, "default"}, + * {2, "bruck"}, + * {3, "ring"}, + * {4, "neighbor"}, + * {5, "two_proc"}, + */ + if (communicator_size == 2) { + if (per_rank_dsize < 2048) { + alg = 3; + } else if (per_rank_dsize < 4096) { + alg = 5; + } else if (per_rank_dsize < 8192) { + alg = 3; + } else { + alg = 5; + } + } else if (communicator_size < 8) { + if (per_rank_dsize < 256) { + alg = 1; + } else if (per_rank_dsize < 4096) { + alg = 4; + } else if (per_rank_dsize < 8192) { + alg = 3; + } else if (per_rank_dsize < 16384) { + alg = 4; + } else if (per_rank_dsize < 262144) { + alg = 2; + } else { + alg = 4; + } + } else if (communicator_size < 16) { + if (per_rank_dsize < 1024) { + alg = 1; + } else { + alg = 2; + } + } else if (communicator_size < 32) { + if (per_rank_dsize < 128) { + alg = 1; + } else if (per_rank_dsize < 262144) { + alg = 2; + } else { + alg = 3; + } + } else if (communicator_size < 64) { + if (per_rank_dsize < 256) { + alg = 1; + } else if (per_rank_dsize < 8192) { + alg = 2; + } else { + alg = 3; + } + } else if (communicator_size < 128) { + if (per_rank_dsize < 256) { + alg = 1; + } else if (per_rank_dsize < 4096) { + alg = 2; + } else { + alg = 3; + } + } else if (communicator_size < 256) { + if (per_rank_dsize < 1024) { + alg = 2; + } else if (per_rank_dsize < 65536) { + alg = 4; + } else { + alg = 3; + } + } else if (communicator_size < 512) { + if (per_rank_dsize < 1024) { + alg = 2; + } else { + alg = 3; + } + } else if (communicator_size < 1024) { + if (per_rank_dsize < 512) { + alg = 2; + } else if (per_rank_dsize < 1024) { + alg = 1; + } else if (per_rank_dsize < 4096) { + alg = 2; + } else if (per_rank_dsize < 1048576) { + alg = 4; + } else { + alg = 3; + } + } else { + if (per_rank_dsize < 4096) { + alg = 2; + } else { + alg = 4; + } } OPAL_OUTPUT((ompi_coll_tuned_stream, "ompi_coll_tuned_allgatherv_intra_dec_fixed" - " rank %d com_size %d msg_length %lu", - ompi_comm_rank(comm), communicator_size, (unsigned long)total_dsize)); + " rank %d com_size %d", ompi_comm_rank(comm), communicator_size)); - /* Decision based on allgather decision. */ - if (total_dsize < 50000) { - return ompi_coll_base_allgatherv_intra_bruck(sbuf, scount, sdtype, - rbuf, rcounts, rdispls, rdtype, - comm, module); - } else { - if (communicator_size % 2) { - return ompi_coll_base_allgatherv_intra_ring(sbuf, scount, sdtype, - rbuf, rcounts, rdispls, rdtype, - comm, module); - } else { - return ompi_coll_base_allgatherv_intra_neighborexchange(sbuf, scount, sdtype, - rbuf, rcounts, rdispls, rdtype, - comm, module); - } - } + return ompi_coll_tuned_allgatherv_intra_do_this (sbuf, scount, sdtype, + rbuf, rcounts, + rdispls, rdtype, + comm, module, + alg, 0, 0); } /* * gather_intra_dec * - * Function: - seletects gather algorithm to use + * Function: - selects gather algorithm to use * Accepts: - same arguments as MPI_Gather() * Returns: - MPI_SUCCESS or error code, passed from corresponding * internal allgather function. @@ -709,18 +1384,8 @@ struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - const int large_segment_size = 32768; - const int small_segment_size = 1024; - - const size_t large_block_size = 92160; - const size_t intermediate_block_size = 6000; - const size_t small_block_size = 1024; - - const int large_communicator_size = 60; - const int small_communicator_size = 10; - - int communicator_size, rank; - size_t dsize, block_size; + int communicator_size, alg, rank; + size_t dsize, total_dsize; OPAL_OUTPUT((ompi_coll_tuned_stream, "ompi_coll_tuned_gather_intra_dec_fixed")); @@ -729,43 +1394,72 @@ rank = ompi_comm_rank(comm); /* Determine block size */ - if (rank == root) { + if ( (rank == root) || (MPI_IN_PLACE == sbuf) ) { ompi_datatype_type_size(rdtype, &dsize); - block_size = dsize * (ptrdiff_t)rcount; + total_dsize = dsize * (ptrdiff_t)rcount; } else { ompi_datatype_type_size(sdtype, &dsize); - block_size = dsize * (ptrdiff_t)scount; + total_dsize = dsize * (ptrdiff_t)scount; } - if (block_size > large_block_size) { - return ompi_coll_base_gather_intra_linear_sync(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - root, comm, module, - large_segment_size); - - } else if (block_size > intermediate_block_size) { - return ompi_coll_base_gather_intra_linear_sync(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - root, comm, module, - small_segment_size); - - } else if ((communicator_size > large_communicator_size) || - ((communicator_size > small_communicator_size) && - (block_size < small_block_size))) { - return ompi_coll_base_gather_intra_binomial(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - root, comm, module); - } - /* Otherwise, use basic linear */ - return ompi_coll_base_gather_intra_basic_linear(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - root, comm, module); + /** Algorithms: + * {1, "basic_linear"}, + * {2, "binomial"}, + * {3, "linear_sync"}, + * + * We do not make any rank specific checks since the params + * should be uniform across ranks. + */ + if (communicator_size < 4) { + if (total_dsize < 2) { + alg = 3; + } else if (total_dsize < 4) { + alg = 1; + } else if (total_dsize < 32768) { + alg = 2; + } else if (total_dsize < 65536) { + alg = 1; + } else if (total_dsize < 131072) { + alg = 2; + } else { + alg = 3; + } + } else if (communicator_size < 8) { + if (total_dsize < 1024) { + alg = 2; + } else if (total_dsize < 8192) { + alg = 1; + } else if (total_dsize < 32768) { + alg = 2; + } else if (total_dsize < 262144) { + alg = 1; + } else { + alg = 3; + } + } else if (communicator_size < 256) { + alg = 2; + } else if (communicator_size < 512) { + if (total_dsize < 2048) { + alg = 2; + } else if (total_dsize < 8192) { + alg = 1; + } else { + alg = 2; + } + } else { + alg = 2; + } + + return ompi_coll_tuned_gather_intra_do_this (sbuf, scount, sdtype, + rbuf, rcount, rdtype, + root, comm, module, + alg, 0, 0); } /* * scatter_intra_dec * - * Function: - seletects scatter algorithm to use + * Function: - selects scatter algorithm to use * Accepts: - same arguments as MPI_Scatter() * Returns: - MPI_SUCCESS or error code, passed from corresponding * internal allgather function. @@ -778,32 +1472,91 @@ int root, struct ompi_communicator_t *comm, mca_coll_base_module_t *module) { - const size_t small_block_size = 300; - const int small_comm_size = 10; - int communicator_size, rank; - size_t dsize, block_size; + int communicator_size, alg, rank; + size_t dsize, total_dsize; OPAL_OUTPUT((ompi_coll_tuned_stream, "ompi_coll_tuned_scatter_intra_dec_fixed")); communicator_size = ompi_comm_size(comm); rank = ompi_comm_rank(comm); - /* Determine block size */ + if (root == rank) { ompi_datatype_type_size(sdtype, &dsize); - block_size = dsize * (ptrdiff_t)scount; + total_dsize = dsize * (ptrdiff_t)scount; } else { ompi_datatype_type_size(rdtype, &dsize); - block_size = dsize * (ptrdiff_t)rcount; + total_dsize = dsize * (ptrdiff_t)rcount; + } + + /** Algorithms: + * {1, "basic_linear"}, + * {2, "binomial"}, + * {3, "linear_nb"}, + * + * We do not make any rank specific checks since the params + * should be uniform across ranks. + */ + if (communicator_size < 4) { + if (total_dsize < 2) { + alg = 3; + } else if (total_dsize < 131072) { + alg = 1; + } else if (total_dsize < 262144) { + alg = 3; + } else { + alg = 1; + } + } else if (communicator_size < 8) { + if (total_dsize < 2048) { + alg = 2; + } else if (total_dsize < 4096) { + alg = 1; + } else if (total_dsize < 8192) { + alg = 2; + } else if (total_dsize < 32768) { + alg = 1; + } else if (total_dsize < 1048576) { + alg = 3; + } else { + alg = 1; + } + } else if (communicator_size < 16) { + if (total_dsize < 16384) { + alg = 2; + } else if (total_dsize < 1048576) { + alg = 3; + } else { + alg = 1; + } + } else if (communicator_size < 32) { + if (total_dsize < 16384) { + alg = 2; + } else if (total_dsize < 32768) { + alg = 1; + } else { + alg = 3; + } + } else if (communicator_size < 64) { + if (total_dsize < 512) { + alg = 2; + } else if (total_dsize < 8192) { + alg = 3; + } else if (total_dsize < 16384) { + alg = 2; + } else { + alg = 3; + } + } else { + if (total_dsize < 512) { + alg = 2; + } else { + alg = 3; + } } - if ((communicator_size > small_comm_size) && - (block_size < small_block_size)) { - return ompi_coll_base_scatter_intra_binomial(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - root, comm, module); - } - return ompi_coll_base_scatter_intra_basic_linear(sbuf, scount, sdtype, - rbuf, rcount, rdtype, - root, comm, module); + return ompi_coll_tuned_scatter_intra_do_this (sbuf, scount, sdtype, + rbuf, rcount, rdtype, + root, comm, module, + alg, 0, 0); } diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_dynamic_file.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_dynamic_file.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_dynamic_file.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_dynamic_file.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2015 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -29,19 +29,19 @@ /* need to include our own topo prototypes so we can malloc data on the comm correctly */ #include "ompi/mca/coll/base/coll_base_topo.h" +/* need file reading function */ +#include "ompi/mca/coll/base/coll_base_util.h" + /* also need the dynamic rule structures */ #include "coll_tuned_dynamic_rules.h" /* and our own prototypes */ #include "coll_tuned_dynamic_file.h" - -#define MYEOF -999 - -static long getnext (FILE *fptr); /* local function */ - static int fileline=0; /* used for verbose error messages */ +#define getnext(fptr, pval) ompi_coll_base_file_getnext_long(fptr, &fileline, pval) + /* * Reads a rule file called fname * Builds the algorithm rule table for a max of n_collectives @@ -56,9 +56,8 @@ int ompi_coll_tuned_read_rules_config_file (char *fname, ompi_coll_alg_rule_t** rules, int n_collectives) { + long CI, NCS, CS, ALG, NMS, FANINOUT, X, MS, SS; FILE *fptr = (FILE*) NULL; - int X, CI, NCS, CS, ALG, NMS, FANINOUT; - long MS, SS; int x, ncs, nms; ompi_coll_alg_rule_t *alg_rules = (ompi_coll_alg_rule_t*) NULL; /* complete table of rules */ @@ -90,80 +89,83 @@ fptr = fopen (fname, "r"); if (!fptr) { - OPAL_OUTPUT((ompi_coll_tuned_stream,"cannot read rules file [%s]\n", fname)); + OPAL_OUTPUT((ompi_coll_tuned_stream,"Cannot read rules file [%s]\n", fname)); goto on_file_error; } /* make space and init the algorithm rules for each of the n_collectives MPI collectives */ alg_rules = ompi_coll_tuned_mk_alg_rules (n_collectives); if (NULL == alg_rules) { - OPAL_OUTPUT((ompi_coll_tuned_stream,"cannot cannot allocate rules for file [%s]\n", fname)); + OPAL_OUTPUT((ompi_coll_tuned_stream,"Cannot allocate rules for file [%s]\n", fname)); goto on_file_error; } - X = (int)getnext(fptr); - if (X<0) { + if( (getnext(fptr, &X) < 0) || (X < 0) ) { OPAL_OUTPUT((ompi_coll_tuned_stream,"Could not read number of collectives in configuration file around line %d\n", fileline)); goto on_file_error; } if (X>n_collectives) { - OPAL_OUTPUT((ompi_coll_tuned_stream,"Number of collectives in configuration file %d is greater than number of MPI collectives possible %d ??? error around line %d\n", X, n_collectives, fileline)); + OPAL_OUTPUT((ompi_coll_tuned_stream,"Number of collectives in configuration file %ld is greater than number of MPI collectives possible %d ??? error around line %d\n", X, n_collectives, fileline)); goto on_file_error; } for (x=0;x=n_collectives) { - OPAL_OUTPUT((ompi_coll_tuned_stream,"Collective id in configuration file %d is greater than MPI collectives possible %d. Error around line %d\n", CI, n_collectives, fileline)); + OPAL_OUTPUT((ompi_coll_tuned_stream,"Collective id in configuration file %ld is greater than MPI collectives possible %d. Error around line %d\n", CI, n_collectives, fileline)); goto on_file_error; } if (alg_rules[CI].alg_rule_id != CI) { - OPAL_OUTPUT((ompi_coll_tuned_stream, "Internal error in handling collective ID %d\n", CI)); + OPAL_OUTPUT((ompi_coll_tuned_stream, "Internal error in handling collective ID %ld\n", CI)); goto on_file_error; } - OPAL_OUTPUT((ompi_coll_tuned_stream, "Reading dynamic rule for collective ID %d\n", CI)); + OPAL_OUTPUT((ompi_coll_tuned_stream, "Reading dynamic rule for collective ID %ld\n", CI)); alg_p = &alg_rules[CI]; alg_p->alg_rule_id = CI; alg_p->n_com_sizes = 0; alg_p->com_rules = (ompi_coll_com_rule_t *) NULL; - NCS = (int)getnext (fptr); - if (NCS<0) { - OPAL_OUTPUT((ompi_coll_tuned_stream,"Could not read count of communicators for collective ID %d at around line %d\n", CI, fileline)); + if( (getnext (fptr, &NCS) < 0) || (NCS < 0) ) { + OPAL_OUTPUT((ompi_coll_tuned_stream,"Could not read count of communicators for collective ID %ld at around line %d\n", CI, fileline)); goto on_file_error; } - OPAL_OUTPUT((ompi_coll_tuned_stream, "Read communicator count %d for dynamic rule for collective ID %d\n", NCS, CI)); + OPAL_OUTPUT((ompi_coll_tuned_stream, "Read communicator count %ld for dynamic rule for collective ID %ld\n", NCS, CI)); alg_p->n_com_sizes = NCS; alg_p->com_rules = ompi_coll_tuned_mk_com_rules (NCS, CI); + if (NULL == alg_p->com_rules) { + OPAL_OUTPUT((ompi_coll_tuned_stream,"Cannot allocate com rules for file [%s]\n", fname)); + goto on_file_error; + } for (ncs=0;ncscom_rules[ncs]); - CS = (int)getnext (fptr); - if (CS<0) { - OPAL_OUTPUT((ompi_coll_tuned_stream,"Could not read communicator size for collective ID %d com rule %d at around line %d\n", CI, ncs, fileline)); + if( (getnext (fptr, &CS) < 0) || (CS < 0) ) { + OPAL_OUTPUT((ompi_coll_tuned_stream,"Could not read communicator size for collective ID %ld com rule %d at around line %d\n", CI, ncs, fileline)); goto on_file_error; } com_p->mpi_comsize = CS; - NMS = (int)getnext (fptr); - if (NMS<0) { - OPAL_OUTPUT((ompi_coll_tuned_stream,"Could not read number of message sizes for collective ID %d com rule %d at around line %d\n", CI, ncs, fileline)); + if( (getnext (fptr, &NMS) < 0) || (NMS < 0) ) { + OPAL_OUTPUT((ompi_coll_tuned_stream,"Could not read number of message sizes for collective ID %ld com rule %d at around line %d\n", CI, ncs, fileline)); goto on_file_error; } - OPAL_OUTPUT((ompi_coll_tuned_stream, "Read message count %d for dynamic rule for collective ID %d and comm size %d\n", + OPAL_OUTPUT((ompi_coll_tuned_stream, "Read message count %ld for dynamic rule for collective ID %ld and comm size %ld\n", NMS, CI, CS)); com_p->n_msg_sizes = NMS; com_p->msg_rules = ompi_coll_tuned_mk_msg_rules (NMS, CI, ncs, CS); + if (NULL == com_p->msg_rules) { + OPAL_OUTPUT((ompi_coll_tuned_stream,"Cannot allocate msg rules for file [%s]\n", fname)); + goto on_file_error; + } msg_p = com_p->msg_rules; @@ -171,37 +173,33 @@ msg_p = &(com_p->msg_rules[nms]); - MS = getnext (fptr); - if (MS<0) { - OPAL_OUTPUT((ompi_coll_tuned_stream,"Could not read message size for collective ID %d com rule %d msg rule %d at around line %d\n", CI, ncs, nms, fileline)); + if( (getnext (fptr, &MS) < 0) || (MS < 0) ) { + OPAL_OUTPUT((ompi_coll_tuned_stream,"Could not read message size for collective ID %ld com rule %d msg rule %d at around line %d\n", CI, ncs, nms, fileline)); goto on_file_error; } msg_p->msg_size = (size_t)MS; - ALG = (int)getnext (fptr); - if (ALG<0) { - OPAL_OUTPUT((ompi_coll_tuned_stream,"Could not read target algorithm method for collective ID %d com rule %d msg rule %d at around line %d\n", CI, ncs, nms, fileline)); + if( (getnext (fptr, &ALG) < 0) || (ALG < 0) ) { + OPAL_OUTPUT((ompi_coll_tuned_stream,"Could not read target algorithm method for collective ID %ld com rule %d msg rule %d at around line %d\n", CI, ncs, nms, fileline)); goto on_file_error; } msg_p->result_alg = ALG; - FANINOUT = (int)getnext (fptr); - if (FANINOUT<0) { - OPAL_OUTPUT((ompi_coll_tuned_stream,"Could not read fan in/out topo for collective ID %d com rule %d msg rule %d at around line %d\n", CI, ncs, nms, fileline)); + if( (getnext (fptr, &FANINOUT) < 0) || (FANINOUT < 0) ) { + OPAL_OUTPUT((ompi_coll_tuned_stream,"Could not read fan in/out topo for collective ID %ld com rule %d msg rule %d at around line %d\n", CI, ncs, nms, fileline)); goto on_file_error; } msg_p->result_topo_faninout = FANINOUT; - SS = getnext (fptr); - if (SS<0) { - OPAL_OUTPUT((ompi_coll_tuned_stream,"Could not read target segment size for collective ID %d com rule %d msg rule %d at around line %d\n", CI, ncs, nms, fileline)); + if( (getnext (fptr, &SS) < 0) || (SS < 0) ) { + OPAL_OUTPUT((ompi_coll_tuned_stream,"Could not read target segment size for collective ID %ld com rule %d msg rule %d at around line %d\n", CI, ncs, nms, fileline)); goto on_file_error; } msg_p->result_segsize = SS; if (!nms && MS) { OPAL_OUTPUT((ompi_coll_tuned_stream,"All algorithms must specify a rule for message size of zero upwards always first!\n")); - OPAL_OUTPUT((ompi_coll_tuned_stream,"Message size was %lu for collective ID %d com rule %d msg rule %d at around line %d\n", MS, CI, ncs, nms, fileline)); + OPAL_OUTPUT((ompi_coll_tuned_stream,"Message size was %lu for collective ID %ld com rule %d msg rule %d at around line %d\n", MS, CI, ncs, nms, fileline)); goto on_file_error; } @@ -214,7 +212,7 @@ } /* comm size */ total_alg_count++; - OPAL_OUTPUT((ompi_coll_tuned_stream, "Done reading dynamic rule for collective ID %d\n", CI)); + OPAL_OUTPUT((ompi_coll_tuned_stream, "Done reading dynamic rule for collective ID %ld\n", CI)); } /* per collective */ @@ -253,36 +251,3 @@ return (-1); } - -static void skiptonewline (FILE *fptr) -{ - char val; - int rc; - - do { - rc = fread(&val, 1, 1, fptr); - if (0 == rc) return; - if ((1 == rc)&&('\n' == val)) { - fileline++; - return; - } - } while (1); -} - -static long getnext (FILE *fptr) -{ - long val; - int rc; - char trash; - - do { - rc = fscanf(fptr, "%li", &val); - if (rc == EOF) return MYEOF; - if (1 == rc) return val; - /* in all other cases, skip to the end */ - rc = fread(&trash, 1, 1, fptr); - if (rc == EOF) return MYEOF; - if ('\n' == trash) fileline++; - if ('#' == trash) skiptonewline (fptr); - } while (1); -} diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_exscan_decision.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_exscan_decision.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_exscan_decision.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_exscan_decision.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,6 +2,9 @@ /* * Copyright (c) 2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -26,7 +29,7 @@ static int coll_tuned_exscan_forced_algorithm = 0; /* valid values for coll_tuned_exscan_forced_algorithm */ -static mca_base_var_enum_value_t exscan_algorithms[] = { +static const mca_base_var_enum_value_t exscan_algorithms[] = { {0, "ignore"}, {1, "linear"}, {2, "recursive_doubling"}, @@ -68,7 +71,8 @@ mca_param_indices->algorithm_param_index = mca_base_component_var_register(&mca_coll_tuned_component.super.collm_version, "exscan_algorithm", - "Which exscan algorithm is used. Can be locked down to choice of: 0 ignore, 1 linear, 2 recursive_doubling", + "Which exscan algorithm is used. Can be locked down to choice of: 0 ignore, 1 linear, 2 recursive_doubling. " + "Only relevant if coll_tuned_use_dynamic_rules is true.", MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_gather_decision.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_gather_decision.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_gather_decision.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_gather_decision.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2004-2017 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2015-2017 Research Organization for Information Science @@ -32,7 +32,7 @@ static int coll_tuned_gather_chain_fanout; /* valid values for coll_tuned_gather_forced_algorithm */ -static mca_base_var_enum_value_t gather_algorithms[] = { +static const mca_base_var_enum_value_t gather_algorithms[] = { {0, "ignore"}, {1, "basic_linear"}, {2, "binomial"}, @@ -75,7 +75,8 @@ mca_param_indices->algorithm_param_index = mca_base_component_var_register(&mca_coll_tuned_component.super.collm_version, "gather_algorithm", - "Which gather algorithm is used. Can be locked down to choice of: 0 ignore, 1 basic linear, 2 binomial, 3 linear with synchronization.", + "Which gather algorithm is used. Can be locked down to choice of: 0 ignore, 1 basic linear, 2 binomial, 3 linear with synchronization. " + "Only relevant if coll_tuned_use_dynamic_rules is true.", MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned.h openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned.h --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned.h 2022-05-29 09:51:40.000000000 +0000 @@ -5,6 +5,7 @@ * reserved. * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2019 Mellanox Technologies. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -41,6 +42,10 @@ extern int ompi_coll_tuned_alltoall_large_msg; extern int ompi_coll_tuned_alltoall_min_procs; extern int ompi_coll_tuned_alltoall_max_requests; +extern int ompi_coll_tuned_scatter_intermediate_msg; +extern int ompi_coll_tuned_scatter_large_msg; +extern int ompi_coll_tuned_scatter_min_procs; +extern int ompi_coll_tuned_scatter_blocking_send_ratio; /* forced algorithm choices */ /* this structure is for storing the indexes to the forced algorithm mca params... */ diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_module.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_module.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -91,7 +91,7 @@ tuned_module->super.coll_module_enable = tuned_module_enable; tuned_module->super.ft_event = mca_coll_tuned_ft_event; - /* By default stick with the fied version of the tuned collectives. Later on, + /* By default stick with the fixed version of the tuned collectives. Later on, * when the module get enabled, set the correct version based on the availability * of the dynamic rules. */ diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_reduce_decision.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_reduce_decision.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_reduce_decision.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_reduce_decision.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2004-2017 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2015-2018 Research Organization for Information Science @@ -33,7 +33,7 @@ static int coll_tuned_reduce_chain_fanout; /* valid values for coll_tuned_reduce_forced_algorithm */ -static mca_base_var_enum_value_t reduce_algorithms[] = { +static const mca_base_var_enum_value_t reduce_algorithms[] = { {0, "ignore"}, {1, "linear"}, {2, "chain"}, @@ -80,7 +80,8 @@ mca_param_indices->algorithm_param_index = mca_base_component_var_register(&mca_coll_tuned_component.super.collm_version, "reduce_algorithm", - "Which reduce algorithm is used. Can be locked down to choice of: 0 ignore, 1 linear, 2 chain, 3 pipeline, 4 binary, 5 binomial, 6 in-order binary, 7 rabenseifner", + "Which reduce algorithm is used. Can be locked down to choice of: 0 ignore, 1 linear, 2 chain, 3 pipeline, 4 binary, 5 binomial, 6 in-order binary, 7 rabenseifner. " + "Only relevant if coll_tuned_use_dynamic_rules is true.", MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_reduce_scatter_block_decision.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_reduce_scatter_block_decision.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_reduce_scatter_block_decision.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_reduce_scatter_block_decision.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * and Information Sciences. All rights reserved. * Copyright (c) 2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -31,7 +34,7 @@ static int coll_tuned_reduce_scatter_block_tree_fanout; /* valid values for coll_tuned_reduce_scatter_blokc_forced_algorithm */ -static mca_base_var_enum_value_t reduce_scatter_block_algorithms[] = { +static const mca_base_var_enum_value_t reduce_scatter_block_algorithms[] = { {0, "ignore"}, {1, "basic_linear"}, {2, "recursive_doubling"}, @@ -77,7 +80,8 @@ "reduce_scatter_block_algorithm", "Which reduce reduce_scatter_block algorithm is used. " "Can be locked down to choice of: 0 ignore, 1 basic_linear, 2 recursive_doubling, " - "3 recursive_halving, 4 butterfly", + "3 recursive_halving, 4 butterfly. " + "Only relevant if coll_tuned_use_dynamic_rules is true.", MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, @@ -130,7 +134,7 @@ dtype, op, comm, module); case (3): return ompi_coll_base_reduce_scatter_block_intra_recursivehalving(sbuf, rbuf, rcount, dtype, op, comm, module); - case (4): return ompi_coll_base_reduce_scatter_block_intra_butterfly(sbuf, rbuf, rcount, dtype, op, comm, + case (4): return ompi_coll_base_reduce_scatter_block_intra_butterfly(sbuf, rbuf, rcount, dtype, op, comm, module); } /* switch */ OPAL_OUTPUT((ompi_coll_tuned_stream, "coll:tuned:reduce_scatter_block_intra_do_this attempt to select algorithm %d when only 0-%d is valid?", diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_reduce_scatter_decision.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_reduce_scatter_decision.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_reduce_scatter_decision.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_reduce_scatter_decision.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2004-2017 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2015 Research Organization for Information Science @@ -33,7 +33,7 @@ static int coll_tuned_reduce_scatter_chain_fanout; /* valid values for coll_tuned_reduce_scatter_forced_algorithm */ -static mca_base_var_enum_value_t reduce_scatter_algorithms[] = { +static const mca_base_var_enum_value_t reduce_scatter_algorithms[] = { {0, "ignore"}, {1, "non-overlapping"}, {2, "recursive_halving"}, @@ -77,7 +77,8 @@ mca_param_indices->algorithm_param_index = mca_base_component_var_register(&mca_coll_tuned_component.super.collm_version, "reduce_scatter_algorithm", - "Which reduce reduce_scatter algorithm is used. Can be locked down to choice of: 0 ignore, 1 non-overlapping (Reduce + Scatterv), 2 recursive halving, 3 ring, 4 butterfly", + "Which reduce reduce_scatter algorithm is used. Can be locked down to choice of: 0 ignore, 1 non-overlapping (Reduce + Scatterv), 2 recursive halving, 3 ring, 4 butterfly. " + "Only relevant if coll_tuned_use_dynamic_rules is true.", MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_scan_decision.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_scan_decision.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_scan_decision.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_scan_decision.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,6 +2,9 @@ /* * Copyright (c) 2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -26,7 +29,7 @@ static int coll_tuned_scan_forced_algorithm = 0; /* valid values for coll_tuned_scan_forced_algorithm */ -static mca_base_var_enum_value_t scan_algorithms[] = { +static const mca_base_var_enum_value_t scan_algorithms[] = { {0, "ignore"}, {1, "linear"}, {2, "recursive_doubling"}, @@ -68,7 +71,8 @@ mca_param_indices->algorithm_param_index = mca_base_component_var_register(&mca_coll_tuned_component.super.collm_version, "scan_algorithm", - "Which scan algorithm is used. Can be locked down to choice of: 0 ignore, 1 linear, 2 recursive_doubling", + "Which scan algorithm is used. Can be locked down to choice of: 0 ignore, 1 linear, 2 recursive_doubling. " + "Only relevant if coll_tuned_use_dynamic_rules is true.", MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_scatter_decision.c openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_scatter_decision.c --- openmpi-4.0.3/ompi/mca/coll/tuned/coll_tuned_scatter_decision.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/coll_tuned_scatter_decision.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,10 +1,11 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2004-2017 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2019 Mellanox Technologies. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -32,10 +33,11 @@ static int coll_tuned_scatter_chain_fanout; /* valid values for coll_tuned_scatter_forced_algorithm */ -static mca_base_var_enum_value_t scatter_algorithms[] = { +static const mca_base_var_enum_value_t scatter_algorithms[] = { {0, "ignore"}, {1, "basic_linear"}, {2, "binomial"}, + {3, "linear_nb"}, {0, NULL} }; @@ -74,7 +76,8 @@ mca_param_indices->algorithm_param_index = mca_base_component_var_register(&mca_coll_tuned_component.super.collm_version, "scatter_algorithm", - "Which scatter algorithm is used. Can be locked down to choice of: 0 ignore, 1 basic linear, 2 binomial.", + "Which scatter algorithm is used. Can be locked down to choice of: 0 ignore, 1 basic linear, 2 binomial, 3 non-blocking linear. " + "Only relevant if coll_tuned_use_dynamic_rules is true.", MCA_BASE_VAR_TYPE_INT, new_enum, 0, MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_5, MCA_BASE_VAR_SCOPE_ALL, @@ -114,6 +117,38 @@ MCA_BASE_VAR_SCOPE_ALL, &coll_tuned_scatter_chain_fanout); + (void) mca_base_component_var_register(&mca_coll_tuned_component.super.collm_version, + "scatter_min_procs", + "use basic linear algorithm for communicators larger than this value", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_6, + MCA_BASE_VAR_SCOPE_READONLY, + &ompi_coll_tuned_scatter_min_procs); + + (void)mca_base_component_var_register(&mca_coll_tuned_component.super.collm_version, + "scatter_algorithm_max_requests", + "Issue a blocking send every this many non-blocking requests. Only has meaning for non-blocking linear algorithm.", + MCA_BASE_VAR_TYPE_INT, NULL, 0, MCA_BASE_VAR_FLAG_SETTABLE, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_ALL, + &ompi_coll_tuned_scatter_blocking_send_ratio); + + (void) mca_base_component_var_register(&mca_coll_tuned_component.super.collm_version, + "scatter_intermediate_msg", + "use non-blocking linear algorithm for messages larger than this value", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_6, + MCA_BASE_VAR_SCOPE_READONLY, + &ompi_coll_tuned_scatter_intermediate_msg); + + (void) mca_base_component_var_register(&mca_coll_tuned_component.super.collm_version, + "scatter_large_msg", + "use linear algorithm for messages larger than this value", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_6, + MCA_BASE_VAR_SCOPE_READONLY, + &ompi_coll_tuned_scatter_large_msg); + return (MPI_SUCCESS); } @@ -144,6 +179,11 @@ return ompi_coll_base_scatter_intra_binomial(sbuf, scount, sdtype, rbuf, rcount, rdtype, root, comm, module); + case (3): + return ompi_coll_base_scatter_intra_linear_nb(sbuf, scount, sdtype, + rbuf, rcount, rdtype, + root, comm, module, + ompi_coll_tuned_scatter_blocking_send_ratio); } /* switch */ OPAL_OUTPUT((ompi_coll_tuned_stream, "coll:tuned:scatter_intra_do_this attempt to select algorithm %d when only 0-%d is valid?", diff -Nru openmpi-4.0.3/ompi/mca/coll/tuned/Makefile.in openmpi-4.1.4/ompi/mca/coll/tuned/Makefile.in --- openmpi-4.0.3/ompi/mca/coll/tuned/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/tuned/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -672,6 +685,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1492,6 +1508,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1524,9 +1544,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1547,6 +1576,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1631,9 +1661,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1694,6 +1721,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1707,6 +1737,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_allgather.c openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_allgather.c --- openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_allgather.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_allgather.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,108 @@ + +/** + * Copyright (c) 2021 Mellanox Technologies. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + */ + +#include "coll_ucc_common.h" + +static inline ucc_status_t mca_coll_ucc_allgather_init(const void *sbuf, int scount, struct ompi_datatype_t *sdtype, + void* rbuf, int rcount, struct ompi_datatype_t *rdtype, + mca_coll_ucc_module_t *ucc_module, + ucc_coll_req_h *req, + mca_coll_ucc_req_t *coll_req) +{ + ucc_datatype_t ucc_sdt, ucc_rdt; + int comm_size = ompi_comm_size(ucc_module->comm); + + if (!ompi_datatype_is_contiguous_memory_layout(sdtype, scount) || + !ompi_datatype_is_contiguous_memory_layout(rdtype, rcount * comm_size)) { + goto fallback; + } + ucc_sdt = ompi_dtype_to_ucc_dtype(sdtype); + ucc_rdt = ompi_dtype_to_ucc_dtype(rdtype); + if (COLL_UCC_DT_UNSUPPORTED == ucc_sdt || + COLL_UCC_DT_UNSUPPORTED == ucc_rdt) { + UCC_VERBOSE(5, "ompi_datatype is not supported: dtype = %s", + (COLL_UCC_DT_UNSUPPORTED == ucc_sdt) ? + sdtype->super.name : rdtype->super.name); + goto fallback; + } + + ucc_coll_args_t coll = { + .mask = 0, + .coll_type = UCC_COLL_TYPE_ALLGATHER, + .src.info = { + .buffer = (void*)sbuf, + .count = scount, + .datatype = ucc_sdt, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + }, + .dst.info = { + .buffer = (void*)rbuf, + .count = rcount * comm_size, + .datatype = ucc_rdt, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + } + }; + + if (MPI_IN_PLACE == sbuf) { + coll.mask = UCC_COLL_ARGS_FIELD_FLAGS; + coll.flags = UCC_COLL_ARGS_FLAG_IN_PLACE; + } + COLL_UCC_REQ_INIT(coll_req, req, coll, ucc_module); + return UCC_OK; +fallback: + return UCC_ERR_NOT_SUPPORTED; +} + +int mca_coll_ucc_allgather(const void *sbuf, int scount, struct ompi_datatype_t *sdtype, + void* rbuf, int rcount, struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t*)module; + ucc_coll_req_h req; + + UCC_VERBOSE(3, "running ucc allgather"); + COLL_UCC_CHECK(mca_coll_ucc_allgather_init(sbuf, scount, sdtype, + rbuf, rcount, rdtype, + ucc_module, &req, NULL)); + COLL_UCC_POST_AND_CHECK(req); + COLL_UCC_CHECK(coll_ucc_req_wait(req)); + return OMPI_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback allgather"); + return ucc_module->previous_allgather(sbuf, scount, sdtype, rbuf, rcount, rdtype, + comm, ucc_module->previous_allgather_module); +} + +int mca_coll_ucc_iallgather(const void *sbuf, int scount, struct ompi_datatype_t *sdtype, + void* rbuf, int rcount, struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + ompi_request_t** request, + mca_coll_base_module_t *module) +{ + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t*)module; + ucc_coll_req_h req; + mca_coll_ucc_req_t *coll_req = NULL; + + UCC_VERBOSE(3, "running ucc iallgather"); + COLL_UCC_GET_REQ(coll_req); + COLL_UCC_CHECK(mca_coll_ucc_allgather_init(sbuf, scount, sdtype, + rbuf, rcount, rdtype, + ucc_module, &req, coll_req)); + COLL_UCC_POST_AND_CHECK(req); + *request = &coll_req->super; + return OMPI_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback iallgather"); + if (coll_req) { + mca_coll_ucc_req_free((ompi_request_t **)&coll_req); + } + return ucc_module->previous_iallgather(sbuf, scount, sdtype, rbuf, rcount, rdtype, + comm, request, ucc_module->previous_iallgather_module); +} diff -Nru openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_allgatherv.c openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_allgatherv.c --- openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_allgatherv.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_allgatherv.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,113 @@ + +/** + * Copyright (c) 2021 Mellanox Technologies. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + */ + +#include "coll_ucc_common.h" + +static inline ucc_status_t mca_coll_ucc_allgatherv_init(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void* rbuf, const int *rcounts, const int *rdisps, + struct ompi_datatype_t *rdtype, + mca_coll_ucc_module_t *ucc_module, + ucc_coll_req_h *req, + mca_coll_ucc_req_t *coll_req) +{ + ucc_datatype_t ucc_sdt, ucc_rdt; + + ucc_sdt = ompi_dtype_to_ucc_dtype(sdtype); + ucc_rdt = ompi_dtype_to_ucc_dtype(rdtype); + if (COLL_UCC_DT_UNSUPPORTED == ucc_sdt || + COLL_UCC_DT_UNSUPPORTED == ucc_rdt) { + UCC_VERBOSE(5, "ompi_datatype is not supported: dtype = %s", + (COLL_UCC_DT_UNSUPPORTED == ucc_sdt) ? + sdtype->super.name : rdtype->super.name); + goto fallback; + } + + ucc_coll_args_t coll = { + .mask = 0, + .coll_type = UCC_COLL_TYPE_ALLGATHERV, + .src.info = { + .buffer = (void*)sbuf, + .count = scount, + .datatype = ucc_sdt, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + }, + .dst.info_v = { + .buffer = (void*)rbuf, + .counts = (ucc_count_t*)rcounts, + .displacements = (ucc_aint_t*)rdisps, + .datatype = ucc_rdt, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + } + }; + + if (MPI_IN_PLACE == sbuf) { + coll.mask = UCC_COLL_ARGS_FIELD_FLAGS; + coll.flags = UCC_COLL_ARGS_FLAG_IN_PLACE; + } + COLL_UCC_REQ_INIT(coll_req, req, coll, ucc_module); + return UCC_OK; +fallback: + return UCC_ERR_NOT_SUPPORTED; +} + +int mca_coll_ucc_allgatherv(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void* rbuf, const int *rcounts, const int *rdisps, + struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t*)module; + ucc_coll_req_h req; + + UCC_VERBOSE(3, "running ucc allgatherv"); + + COLL_UCC_CHECK(mca_coll_ucc_allgatherv_init(sbuf, scount, sdtype, + rbuf, rcounts, rdisps, rdtype, + ucc_module, &req, NULL)); + COLL_UCC_POST_AND_CHECK(req); + COLL_UCC_CHECK(coll_ucc_req_wait(req)); + return OMPI_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback allgatherv"); + return ucc_module->previous_allgatherv(sbuf, scount, sdtype, + rbuf, rcounts, rdisps, rdtype, + comm, ucc_module->previous_allgatherv_module); +} + +int mca_coll_ucc_iallgatherv(const void *sbuf, int scount, + struct ompi_datatype_t *sdtype, + void* rbuf, const int *rcounts, const int *rdisps, + struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + ompi_request_t** request, + mca_coll_base_module_t *module) +{ + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t*)module; + ucc_coll_req_h req; + mca_coll_ucc_req_t *coll_req = NULL; + + UCC_VERBOSE(3, "running ucc iallgatherv"); + COLL_UCC_GET_REQ(coll_req); + COLL_UCC_CHECK(mca_coll_ucc_allgatherv_init(sbuf, scount, sdtype, + rbuf, rcounts, rdisps, rdtype, + ucc_module, &req, coll_req)); + COLL_UCC_POST_AND_CHECK(req); + *request = &coll_req->super; + return OMPI_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback iallgatherv"); + if (coll_req) { + mca_coll_ucc_req_free((ompi_request_t **)&coll_req); + } + return ucc_module->previous_iallgatherv(sbuf, scount, sdtype, + rbuf, rcounts, rdisps, rdtype, + comm, request, ucc_module->previous_iallgatherv_module); +} diff -Nru openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_allreduce.c openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_allreduce.c --- openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_allreduce.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_allreduce.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,104 @@ + +/** + * Copyright (c) 2021 Mellanox Technologies. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + */ + +#include "coll_ucc_common.h" + +static inline ucc_status_t mca_coll_ucc_allreduce_init(const void *sbuf, void *rbuf, int count, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, mca_coll_ucc_module_t *ucc_module, + ucc_coll_req_h *req, + mca_coll_ucc_req_t *coll_req) +{ + ucc_datatype_t ucc_dt; + ucc_reduction_op_t ucc_op; + + ucc_dt = ompi_dtype_to_ucc_dtype(dtype); + ucc_op = ompi_op_to_ucc_op(op); + if (OPAL_UNLIKELY(COLL_UCC_DT_UNSUPPORTED == ucc_dt)) { + UCC_VERBOSE(5, "ompi_datatype is not supported: dtype = %s", + dtype->super.name); + goto fallback; + } + if (OPAL_UNLIKELY(COLL_UCC_OP_UNSUPPORTED == ucc_op)) { + UCC_VERBOSE(5, "ompi_op is not supported: op = %s", + op->o_name); + goto fallback; + } + ucc_coll_args_t coll = { + .mask = 0, + .coll_type = UCC_COLL_TYPE_ALLREDUCE, + .src.info = { + .buffer = (void*)sbuf, + .count = count, + .datatype = ucc_dt, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + }, + .dst.info = { + .buffer = rbuf, + .count = count, + .datatype = ucc_dt, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + }, + .op = ucc_op, + }; + if (MPI_IN_PLACE == sbuf) { + coll.mask |= UCC_COLL_ARGS_FIELD_FLAGS; + coll.flags = UCC_COLL_ARGS_FLAG_IN_PLACE; + } + COLL_UCC_REQ_INIT(coll_req, req, coll, ucc_module); + return UCC_OK; +fallback: + return UCC_ERR_NOT_SUPPORTED; +} + +int mca_coll_ucc_allreduce(const void *sbuf, void *rbuf, int count, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t*)module; + ucc_coll_req_h req; + + UCC_VERBOSE(3, "running ucc allreduce"); + COLL_UCC_CHECK(mca_coll_ucc_allreduce_init(sbuf, rbuf, count, dtype, op, + ucc_module, &req, NULL)); + COLL_UCC_POST_AND_CHECK(req); + COLL_UCC_CHECK(coll_ucc_req_wait(req)); + return OMPI_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback allreduce"); + return ucc_module->previous_allreduce(sbuf, rbuf, count, dtype, op, + comm, ucc_module->previous_allreduce_module); +} + +int mca_coll_ucc_iallreduce(const void *sbuf, void *rbuf, int count, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, struct ompi_communicator_t *comm, + ompi_request_t** request, + mca_coll_base_module_t *module) +{ + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t*)module; + ucc_coll_req_h req; + mca_coll_ucc_req_t *coll_req = NULL; + + UCC_VERBOSE(3, "running ucc iallreduce"); + COLL_UCC_GET_REQ(coll_req); + COLL_UCC_CHECK(mca_coll_ucc_allreduce_init(sbuf, rbuf, count, dtype, op, + ucc_module, &req, coll_req)); + COLL_UCC_POST_AND_CHECK(req); + *request = &coll_req->super; + return OMPI_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback iallreduce"); + if (coll_req) { + mca_coll_ucc_req_free((ompi_request_t **)&coll_req); + } + return ucc_module->previous_iallreduce(sbuf, rbuf, count, dtype, op, + comm, request, ucc_module->previous_iallreduce_module); +} diff -Nru openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_alltoall.c openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_alltoall.c --- openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_alltoall.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_alltoall.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,108 @@ + +/** + * Copyright (c) 2021 Mellanox Technologies. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + */ + +#include "coll_ucc_common.h" + +static inline ucc_status_t mca_coll_ucc_alltoall_init(const void *sbuf, int scount, struct ompi_datatype_t *sdtype, + void* rbuf, int rcount, struct ompi_datatype_t *rdtype, + mca_coll_ucc_module_t *ucc_module, + ucc_coll_req_h *req, + mca_coll_ucc_req_t *coll_req) +{ + ucc_datatype_t ucc_sdt, ucc_rdt; + int comm_size = ompi_comm_size(ucc_module->comm); + + if (!ompi_datatype_is_contiguous_memory_layout(sdtype, scount * comm_size) || + !ompi_datatype_is_contiguous_memory_layout(rdtype, rcount * comm_size)) { + goto fallback; + } + ucc_sdt = ompi_dtype_to_ucc_dtype(sdtype); + ucc_rdt = ompi_dtype_to_ucc_dtype(rdtype); + if (COLL_UCC_DT_UNSUPPORTED == ucc_sdt || + COLL_UCC_DT_UNSUPPORTED == ucc_rdt) { + UCC_VERBOSE(5, "ompi_datatype is not supported: dtype = %s", + (COLL_UCC_DT_UNSUPPORTED == ucc_sdt) ? + sdtype->super.name : rdtype->super.name); + goto fallback; + } + + ucc_coll_args_t coll = { + .mask = 0, + .coll_type = UCC_COLL_TYPE_ALLTOALL, + .src.info = { + .buffer = (void*)sbuf, + .count = scount * comm_size, + .datatype = ucc_sdt, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + }, + .dst.info = { + .buffer = (void*)rbuf, + .count = rcount * comm_size, + .datatype = ucc_rdt, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + } + }; + + if (MPI_IN_PLACE == sbuf) { + coll.mask = UCC_COLL_ARGS_FIELD_FLAGS; + coll.flags = UCC_COLL_ARGS_FLAG_IN_PLACE; + } + COLL_UCC_REQ_INIT(coll_req, req, coll, ucc_module); + return UCC_OK; +fallback: + return UCC_ERR_NOT_SUPPORTED; +} + +int mca_coll_ucc_alltoall(const void *sbuf, int scount, struct ompi_datatype_t *sdtype, + void* rbuf, int rcount, struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t*)module; + ucc_coll_req_h req; + + UCC_VERBOSE(3, "running ucc alltoall"); + COLL_UCC_CHECK(mca_coll_ucc_alltoall_init(sbuf, scount, sdtype, + rbuf, rcount, rdtype, + ucc_module, &req, NULL)); + COLL_UCC_POST_AND_CHECK(req); + COLL_UCC_CHECK(coll_ucc_req_wait(req)); + return OMPI_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback alltoall"); + return ucc_module->previous_alltoall(sbuf, scount, sdtype, rbuf, rcount, rdtype, + comm, ucc_module->previous_alltoall_module); +} + +int mca_coll_ucc_ialltoall(const void *sbuf, int scount, struct ompi_datatype_t *sdtype, + void* rbuf, int rcount, struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + ompi_request_t** request, + mca_coll_base_module_t *module) +{ + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t*)module; + ucc_coll_req_h req; + mca_coll_ucc_req_t *coll_req = NULL; + + UCC_VERBOSE(3, "running ucc ialltoall"); + COLL_UCC_GET_REQ(coll_req); + COLL_UCC_CHECK(mca_coll_ucc_alltoall_init(sbuf, scount, sdtype, + rbuf, rcount, rdtype, + ucc_module, &req, coll_req)); + COLL_UCC_POST_AND_CHECK(req); + *request = &coll_req->super; + return OMPI_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback ialltoall"); + if (coll_req) { + mca_coll_ucc_req_free((ompi_request_t **)&coll_req); + } + return ucc_module->previous_ialltoall(sbuf, scount, sdtype, rbuf, rcount, rdtype, + comm, request, ucc_module->previous_ialltoall_module); +} diff -Nru openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_alltoallv.c openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_alltoallv.c --- openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_alltoallv.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_alltoallv.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,114 @@ + +/** + * Copyright (c) 2021 Mellanox Technologies. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + */ + +#include "coll_ucc_common.h" + +static inline ucc_status_t mca_coll_ucc_alltoallv_init(const void *sbuf, const int *scounts, + const int *sdisps, struct ompi_datatype_t *sdtype, + void* rbuf, const int *rcounts, const int *rdisps, + struct ompi_datatype_t *rdtype, + mca_coll_ucc_module_t *ucc_module, + ucc_coll_req_h *req, + mca_coll_ucc_req_t *coll_req) +{ + ucc_datatype_t ucc_sdt, ucc_rdt; + + ucc_sdt = ompi_dtype_to_ucc_dtype(sdtype); + ucc_rdt = ompi_dtype_to_ucc_dtype(rdtype); + if (COLL_UCC_DT_UNSUPPORTED == ucc_sdt || + COLL_UCC_DT_UNSUPPORTED == ucc_rdt) { + UCC_VERBOSE(5, "ompi_datatype is not supported: dtype = %s", + (COLL_UCC_DT_UNSUPPORTED == ucc_sdt) ? + sdtype->super.name : rdtype->super.name); + goto fallback; + } + + ucc_coll_args_t coll = { + .mask = 0, + .coll_type = UCC_COLL_TYPE_ALLTOALLV, + .src.info_v = { + .buffer = (void*)sbuf, + .counts = (ucc_count_t*)scounts, + .displacements = (ucc_aint_t*)sdisps, + .datatype = ucc_sdt, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + }, + .dst.info_v = { + .buffer = (void*)rbuf, + .counts = (ucc_count_t*)rcounts, + .displacements = (ucc_aint_t*)rdisps, + .datatype = ucc_rdt, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + } + }; + + if (MPI_IN_PLACE == sbuf) { + coll.mask = UCC_COLL_ARGS_FIELD_FLAGS; + coll.flags = UCC_COLL_ARGS_FLAG_IN_PLACE; + } + COLL_UCC_REQ_INIT(coll_req, req, coll, ucc_module); + return UCC_OK; +fallback: + return UCC_ERR_NOT_SUPPORTED; +} + +int mca_coll_ucc_alltoallv(const void *sbuf, const int *scounts, + const int *sdisps, struct ompi_datatype_t *sdtype, + void* rbuf, const int *rcounts, const int *rdisps, + struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t*)module; + ucc_coll_req_h req; + + UCC_VERBOSE(3, "running ucc alltoallv"); + + COLL_UCC_CHECK(mca_coll_ucc_alltoallv_init(sbuf, scounts, sdisps, sdtype, + rbuf, rcounts, rdisps, rdtype, + ucc_module, &req, NULL)); + COLL_UCC_POST_AND_CHECK(req); + COLL_UCC_CHECK(coll_ucc_req_wait(req)); + return OMPI_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback alltoallv"); + return ucc_module->previous_alltoallv(sbuf, scounts, sdisps, sdtype, + rbuf, rcounts, rdisps, rdtype, + comm, ucc_module->previous_alltoallv_module); +} + +int mca_coll_ucc_ialltoallv(const void *sbuf, const int *scounts, + const int *sdisps, struct ompi_datatype_t *sdtype, + void* rbuf, const int *rcounts, const int *rdisps, + struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + ompi_request_t** request, + mca_coll_base_module_t *module) +{ + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t*)module; + ucc_coll_req_h req; + mca_coll_ucc_req_t *coll_req = NULL; + + UCC_VERBOSE(3, "running ucc ialltoallv"); + COLL_UCC_GET_REQ(coll_req); + COLL_UCC_CHECK(mca_coll_ucc_alltoallv_init(sbuf, scounts, sdisps, sdtype, + rbuf, rcounts, rdisps, rdtype, + ucc_module, &req, coll_req)); + COLL_UCC_POST_AND_CHECK(req); + *request = &coll_req->super; + return OMPI_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback ialltoallv"); + if (coll_req) { + mca_coll_ucc_req_free((ompi_request_t **)&coll_req); + } + return ucc_module->previous_ialltoallv(sbuf, scounts, sdisps, sdtype, + rbuf, rcounts, rdisps, rdtype, + comm, request, ucc_module->previous_ialltoallv_module); +} diff -Nru openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_barrier.c openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_barrier.c --- openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_barrier.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_barrier.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,62 @@ +/** + * Copyright (c) 2021 Mellanox Technologies. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + */ + +#include "coll_ucc_common.h" + +static inline ucc_status_t mca_coll_ucc_barrier_init(mca_coll_ucc_module_t *ucc_module, + ucc_coll_req_h *req, + mca_coll_ucc_req_t *coll_req) +{ + ucc_coll_args_t coll = { + .mask = 0, + .coll_type = UCC_COLL_TYPE_BARRIER + }; + COLL_UCC_REQ_INIT(coll_req, req, coll, ucc_module); + return UCC_OK; +fallback: + return UCC_ERR_NOT_SUPPORTED; +} + +int mca_coll_ucc_barrier(struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t*)module; + ucc_coll_req_h req; + + UCC_VERBOSE(3, "running ucc barrier"); + COLL_UCC_CHECK(mca_coll_ucc_barrier_init(ucc_module, &req, NULL)); + COLL_UCC_POST_AND_CHECK(req); + COLL_UCC_CHECK(coll_ucc_req_wait(req)); + return OMPI_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback barrier"); + return ucc_module->previous_barrier(comm, ucc_module->previous_barrier_module); +} + +int mca_coll_ucc_ibarrier(struct ompi_communicator_t *comm, + ompi_request_t** request, + mca_coll_base_module_t *module) +{ + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t*)module; + ucc_coll_req_h req; + mca_coll_ucc_req_t *coll_req = NULL; + + UCC_VERBOSE(3, "running ucc ibarrier"); + COLL_UCC_GET_REQ(coll_req); + COLL_UCC_CHECK(mca_coll_ucc_barrier_init(ucc_module, &req, coll_req)); + COLL_UCC_POST_AND_CHECK(req); + *request = &coll_req->super; + return OMPI_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback ibarrier"); + if (coll_req) { + mca_coll_ucc_req_free((ompi_request_t **)&coll_req); + } + return ucc_module->previous_ibarrier(comm, request, + ucc_module->previous_ibarrier_module); +} diff -Nru openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_bcast.c openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_bcast.c --- openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_bcast.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_bcast.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,80 @@ +/** + * Copyright (c) 2021 Mellanox Technologies. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + */ + +#include "coll_ucc_common.h" + +static inline ucc_status_t mca_coll_ucc_bcast_init(void *buf, int count, struct ompi_datatype_t *dtype, + int root, mca_coll_ucc_module_t *ucc_module, + ucc_coll_req_h *req, + mca_coll_ucc_req_t *coll_req) +{ + ucc_datatype_t ucc_dt = ompi_dtype_to_ucc_dtype(dtype); + if (COLL_UCC_DT_UNSUPPORTED == ucc_dt) { + UCC_VERBOSE(5, "ompi_datatype is not supported: dtype = %s", dtype->super.name); + goto fallback; + } + + ucc_coll_args_t coll = { + .mask = 0, + .coll_type = UCC_COLL_TYPE_BCAST, + .root = root, + .src.info = { + .buffer = buf, + .count = count, + .datatype = ucc_dt, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + } + }; + COLL_UCC_REQ_INIT(coll_req, req, coll, ucc_module); + return UCC_OK; +fallback: + return UCC_ERR_NOT_SUPPORTED; +} + +int mca_coll_ucc_bcast(void *buf, int count, struct ompi_datatype_t *dtype, + int root, struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t*)module; + ucc_coll_req_h req; + UCC_VERBOSE(3, "running ucc bcast"); + COLL_UCC_CHECK(mca_coll_ucc_bcast_init(buf, count, dtype, root, + ucc_module, &req, NULL)); + COLL_UCC_POST_AND_CHECK(req); + COLL_UCC_CHECK(coll_ucc_req_wait(req)); + return OMPI_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback bcast"); + return ucc_module->previous_bcast(buf, count, dtype, root, + comm, ucc_module->previous_bcast_module); +} + +int mca_coll_ucc_ibcast(void *buf, int count, struct ompi_datatype_t *dtype, + int root, struct ompi_communicator_t *comm, + ompi_request_t** request, + mca_coll_base_module_t *module) +{ + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t*)module; + ucc_coll_req_h req; + mca_coll_ucc_req_t *coll_req = NULL; + + UCC_VERBOSE(3, "running ucc ibcast"); + COLL_UCC_GET_REQ(coll_req); + COLL_UCC_CHECK(mca_coll_ucc_bcast_init(buf, count, dtype, root, + ucc_module, &req, coll_req)); + COLL_UCC_POST_AND_CHECK(req); + *request = &coll_req->super; + return OMPI_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback ibcast"); + if (coll_req) { + mca_coll_ucc_req_free((ompi_request_t **)&coll_req); + } + return ucc_module->previous_ibcast(buf, count, dtype, root, + comm, request, ucc_module->previous_ibcast_module); +} diff -Nru openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_common.h openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_common.h --- openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_common.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_common.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,77 @@ +/** + Copyright (c) 2021 Mellanox Technologies. All rights reserved. + $COPYRIGHT$ + Additional copyrights may follow + $HEADER$ + */ + +#ifndef MCA_COLL_UCC_COMMON_H +#define MCA_COLL_UCC_COMMON_H + +#include "ompi/constants.h" +#include "coll_ucc.h" +#include "coll_ucc_dtypes.h" + +#define COLL_UCC_CHECK(_call) do { \ + if (UCC_OK != (_call)) { \ + goto fallback; \ + } \ + } while(0) + +#define COLL_UCC_POST_AND_CHECK(_req) do { \ + if (UCC_OK != ucc_collective_post(_req)) { \ + ucc_collective_finalize(_req); \ + goto fallback; \ + } \ + } while(0) + +#define COLL_UCC_GET_REQ(_coll_req) do { \ + opal_free_list_item_t *item; \ + item = opal_free_list_wait (&mca_coll_ucc_component.requests); \ + if (OPAL_UNLIKELY(NULL == item)) { \ + UCC_ERROR("failed to get mca_coll_ucc_req from free_list"); \ + goto fallback; \ + } \ + _coll_req = (mca_coll_ucc_req_t*)item; \ + OMPI_REQUEST_INIT(&_coll_req->super, false); \ + _coll_req->super.req_complete_cb = NULL; \ + _coll_req->super.req_complete_cb_data = NULL; \ + _coll_req->super.req_status.MPI_ERROR = MPI_SUCCESS; \ + _coll_req->super.req_state = OMPI_REQUEST_ACTIVE; \ + _coll_req->super.req_free = mca_coll_ucc_req_free; \ + _coll_req->super.req_type = OMPI_REQUEST_COLL; \ + } while(0) + +#define COLL_UCC_REQ_INIT(_coll_req, _req, _coll, _module) do{ \ + if (_coll_req) { \ + _coll.mask |= UCC_COLL_ARGS_FIELD_CB; \ + _coll.cb.cb = mca_coll_ucc_completion; \ + _coll.cb.data = (void*)_coll_req; \ + } \ + COLL_UCC_CHECK(ucc_collective_init(&_coll, _req, \ + _module->ucc_team)); \ + if (_coll_req) { \ + _coll_req->ucc_req = *(_req); \ + } \ + } while(0) + +static inline ucc_status_t coll_ucc_req_wait(ucc_coll_req_h req) +{ + ucc_status_t status; + while (UCC_OK != (status = ucc_collective_test(req))) { + if (status < 0) { + UCC_ERROR("ucc_collective_test failed: %s", + ucc_status_string(status)); + ucc_collective_finalize(req); + return status; + } + ucc_context_progress(mca_coll_ucc_component.ucc_context); + opal_progress(); + } + return ucc_collective_finalize(req); +} + +int mca_coll_ucc_req_free(struct ompi_request_t **ompi_req); +void mca_coll_ucc_completion(void *data, ucc_status_t status); + +#endif diff -Nru openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_component.c openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_component.c --- openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_component.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,179 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2021 Mellanox Technologies. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ +#include "ompi_config.h" +#include "coll_ucc.h" +#include "coll_ucc_dtypes.h" +#include "opal/util/argv.h" + +static int mca_coll_ucc_open(void); +static int mca_coll_ucc_close(void); +static int mca_coll_ucc_register(void); + +int mca_coll_ucc_output = -1; + +mca_coll_ucc_component_t mca_coll_ucc_component = { + /* First, the mca_component_t struct containing meta information + about the component */ + { + .collm_version = { + MCA_COLL_BASE_VERSION_2_0_0, + + /* Component name and version */ + .mca_component_name = "ucc", + MCA_BASE_MAKE_VERSION(component, OMPI_MAJOR_VERSION, OMPI_MINOR_VERSION, + OMPI_RELEASE_VERSION), + + /* Component open and close functions */ + .mca_open_component = mca_coll_ucc_open, + .mca_close_component = mca_coll_ucc_close, + .mca_register_component_params = mca_coll_ucc_register, + .mca_query_component = NULL, + }, + .collm_data = { + /* The component is not checkpoint ready */ + MCA_BASE_METADATA_PARAM_NONE + }, + + /* Initialization / querying functions */ + .collm_init_query = mca_coll_ucc_init_query, + .collm_comm_query = mca_coll_ucc_comm_query, + }, + 10, /* ucc_priority */ + 0, /* ucc_verbose */ + 0, /* ucc_enable */ + 2, /* ucc_np */ + "basic", /* cls */ + COLL_UCC_CTS_STR, /* requested coll_types string */ + UCC_VERSION_STRING /* ucc version */ +}; + +static int mca_coll_ucc_register(void) +{ + mca_coll_ucc_component_t *cm = &mca_coll_ucc_component; + mca_base_component_t *c = &cm->super.collm_version; + mca_base_component_var_register(c, "priority", "Priority of the UCC coll component", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cm->ucc_priority); + + mca_base_component_var_register(c, "verbose", "Verbose level of the UCC coll component", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cm->ucc_verbose); + + mca_base_component_var_register(c, "enable", "[0|1] Enable/Disable the UCC coll component", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cm->ucc_enable); + + mca_base_component_var_register(c, "np", "Minimal communicator size for the UCC coll component", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &cm->ucc_np); + + mca_base_component_var_register(c, MCA_COMPILETIME_VER, + "Version of the libucc library with which Open MPI was compiled", + MCA_BASE_VAR_TYPE_VERSION_STRING, NULL, 0, 0, + OPAL_INFO_LVL_3, MCA_BASE_VAR_SCOPE_READONLY, + &cm->compiletime_version); + + mca_base_component_var_register(c, MCA_RUNTIME_VER, + "Version of the libucc library with which Open MPI is running", + MCA_BASE_VAR_TYPE_VERSION_STRING, NULL, 0, 0, + OPAL_INFO_LVL_3, MCA_BASE_VAR_SCOPE_READONLY, + &cm->runtime_version); + + mca_base_component_var_register(c, "cls", + "Comma separated list of UCC CLS to be used for team creation", + MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, + OPAL_INFO_LVL_6, MCA_BASE_VAR_SCOPE_READONLY, &cm->cls); + + mca_base_component_var_register(c, "cts", + "Comma separated list of UCC coll types to be enabled", + MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, + OPAL_INFO_LVL_6, MCA_BASE_VAR_SCOPE_READONLY, &cm->cts); + return OMPI_SUCCESS; +} + +static ucc_coll_type_t mca_coll_ucc_str_to_type(const char *str) +{ + if (0 == strcasecmp(str, "barrier")) { + return UCC_COLL_TYPE_BARRIER; + } else if (0 == strcasecmp(str, "bcast")) { + return UCC_COLL_TYPE_BCAST; + } else if (0 == strcasecmp(str, "allreduce")) { + return UCC_COLL_TYPE_ALLREDUCE; + } else if (0 == strcasecmp(str, "alltoall")) { + return UCC_COLL_TYPE_ALLTOALL; + } else if (0 == strcasecmp(str, "alltoallv")) { + return UCC_COLL_TYPE_ALLTOALLV; + } else if (0 == strcasecmp(str, "allgather")) { + return UCC_COLL_TYPE_ALLGATHER; + } else if (0 == strcasecmp(str, "allgatherv")) { + return UCC_COLL_TYPE_ALLGATHERV; + } else if (0 == strcasecmp(str, "reduce")) { + return UCC_COLL_TYPE_REDUCE; + } + UCC_ERROR("incorrect value for cts: %s, allowed: %s", + str, COLL_UCC_CTS_STR); + return UCC_COLL_TYPE_LAST; +} + +static void mca_coll_ucc_init_default_cts(void) +{ + mca_coll_ucc_component_t *cm = &mca_coll_ucc_component; + bool disable; + char** cts; + int n_cts, i; + char* str; + ucc_coll_type_t *ct, c; + + disable = (cm->cts[0] == '^') ? true : false; + cts = opal_argv_split(disable ? (cm->cts + 1) : cm->cts, ','); + n_cts = opal_argv_count(cts); + cm->cts_requested = disable ? COLL_UCC_CTS : 0; + cm->nb_cts_requested = disable ? COLL_UCC_CTS : 0; + for (i = 0; i < n_cts; i++) { + if (('i' == cts[i][0]) || ('I' == cts[i][0])) { + /* non blocking collective setting */ + str = cts[i] + 1; + ct = &cm->nb_cts_requested; + } else { + str = cts[i]; + ct = &cm->cts_requested; + } + c = mca_coll_ucc_str_to_type(str); + if (UCC_COLL_TYPE_LAST == c) { + *ct = COLL_UCC_CTS; + break; + } + if (disable) { + (*ct) &= ~c; + } else { + (*ct) |= c; + } + } + opal_argv_free(cts); +} + +static int mca_coll_ucc_open(void) +{ + mca_coll_ucc_component_t *cm = &mca_coll_ucc_component; + mca_coll_ucc_output = opal_output_open(NULL); + cm->libucc_initialized = false; + opal_output_set_verbosity(mca_coll_ucc_output, cm->ucc_verbose); + mca_coll_ucc_init_default_cts(); + return OMPI_SUCCESS; +} + +static int mca_coll_ucc_close(void) +{ + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_debug.h openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_debug.h --- openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_debug.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_debug.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,30 @@ +/** + Copyright (c) 2021 Mellanox Technologies. All rights reserved. + $COPYRIGHT$ + + Additional copyrights may follow + + $HEADER$ + */ + +#ifndef COLL_UCC_DEBUG_H +#define COLL_UCC_DEBUG_H +#include "ompi_config.h" +#pragma GCC system_header + +#ifdef __BASE_FILE__ +#define __UCC_FILE__ __BASE_FILE__ +#else +#define __UCC_FILE__ __FILE__ +#endif + +#define UCC_VERBOSE(level, format, ...) \ + opal_output_verbose(level, mca_coll_ucc_output, "%s:%d - %s() " format, \ + __UCC_FILE__, __LINE__, __FUNCTION__, ## __VA_ARGS__) + +#define UCC_ERROR(format, ... ) \ + opal_output_verbose(0, mca_coll_ucc_output, "Error: %s:%d - %s() " format, \ + __UCC_FILE__, __LINE__, __FUNCTION__, ## __VA_ARGS__) + +extern int mca_coll_ucc_output; +#endif diff -Nru openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_dtypes.h openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_dtypes.h --- openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_dtypes.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_dtypes.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2021 Mellanox Technologies. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ +#ifndef COLL_UCC_DTYPES_H +#define COLL_UCC_DTYPES_H +#include "ompi/datatype/ompi_datatype.h" +#include "ompi/datatype/ompi_datatype_internal.h" +#include "ompi/mca/op/op.h" +#include + +#define COLL_UCC_DT_UNSUPPORTED ((ucc_datatype_t)-1) +#define COLL_UCC_OP_UNSUPPORTED ((ucc_reduction_op_t)-1) + +static ucc_datatype_t ompi_datatype_2_ucc_dt[OPAL_DATATYPE_MAX_PREDEFINED] = { + COLL_UCC_DT_UNSUPPORTED, /*OPAL_DATATYPE_LOOP 0 */ + COLL_UCC_DT_UNSUPPORTED, /*OPAL_DATATYPE_END_LOOP 1 */ + COLL_UCC_DT_UNSUPPORTED, /*OPAL_DATATYPE_LB 2 */ + COLL_UCC_DT_UNSUPPORTED, /*OPAL_DATATYPE_UB 3 */ + UCC_DT_INT8, /*OPAL_DATATYPE_INT1 4 */ + UCC_DT_INT16, /*OPAL_DATATYPE_INT2 5 */ + UCC_DT_INT32, /*OPAL_DATATYPE_INT4 6 */ + UCC_DT_INT64, /*OPAL_DATATYPE_INT8 7 */ + UCC_DT_INT128, /*OPAL_DATATYPE_INT16 8 */ + UCC_DT_UINT8, /*OPAL_DATATYPE_UINT1 9 */ + UCC_DT_UINT16, /*OPAL_DATATYPE_UINT2 10 */ + UCC_DT_UINT32, /*OPAL_DATATYPE_UINT4 11 */ + UCC_DT_UINT64, /*OPAL_DATATYPE_UINT8 12 */ + UCC_DT_UINT128, /*OPAL_DATATYPE_UINT16 13 */ + UCC_DT_FLOAT16, /*OPAL_DATATYPE_FLOAT2 14 */ + UCC_DT_FLOAT32, /*OPAL_DATATYPE_FLOAT4 15 */ + UCC_DT_FLOAT64, /*OPAL_DATATYPE_FLOAT8 16 */ + COLL_UCC_DT_UNSUPPORTED, /*OPAL_DATATYPE_FLOAT12 17 */ + COLL_UCC_DT_UNSUPPORTED, /*OPAL_DATATYPE_FLOAT16 18 */ + COLL_UCC_DT_UNSUPPORTED, /*OPAL_DATATYPE_FLOAT_COMPLEX 19 */ + COLL_UCC_DT_UNSUPPORTED, /*OPAL_DATATYPE_DOUBLE_COMPLEX 20 */ + COLL_UCC_DT_UNSUPPORTED, /*OPAL_DATATYPE_LONG_DOUBLE_COMPLEX 21 */ + COLL_UCC_DT_UNSUPPORTED, /*OPAL_DATATYPE_BOOL 22 */ + COLL_UCC_DT_UNSUPPORTED, /*OPAL_DATATYPE_WCHAR 23 */ + UCC_DT_INT64, /*OPAL_DATATYPE_LONG 24 */ + UCC_DT_UINT64, /*OPAL_DATATYPE_UNSIGNED_LONG 25 */ + COLL_UCC_DT_UNSUPPORTED /*OPAL_DATATYPE_UNAVAILABLE 26 */ +}; + +static inline ucc_datatype_t ompi_dtype_to_ucc_dtype(ompi_datatype_t *dtype) +{ + int ompi_type_id = dtype->id; + int opal_type_id = dtype->super.id; + + if (ompi_type_id < OMPI_DATATYPE_MPI_MAX_PREDEFINED && + dtype->super.flags & OMPI_DATATYPE_FLAG_PREDEFINED) { + if (opal_type_id > 0 && opal_type_id < OPAL_DATATYPE_MAX_PREDEFINED) { + return ompi_datatype_2_ucc_dt[opal_type_id]; + } + } + return COLL_UCC_DT_UNSUPPORTED; +} + +static ucc_reduction_op_t ompi_op_to_ucc_op_map[OMPI_OP_BASE_FORTRAN_OP_MAX + 1] = { + COLL_UCC_OP_UNSUPPORTED, /* OMPI_OP_BASE_FORTRAN_NULL = 0 */ + UCC_OP_MAX, /* OMPI_OP_BASE_FORTRAN_MAX */ + UCC_OP_MIN, /* OMPI_OP_BASE_FORTRAN_MIN */ + UCC_OP_SUM, /* OMPI_OP_BASE_FORTRAN_SUM */ + UCC_OP_PROD, /* OMPI_OP_BASE_FORTRAN_PROD */ + UCC_OP_LAND, /* OMPI_OP_BASE_FORTRAN_LAND */ + UCC_OP_BAND, /* OMPI_OP_BASE_FORTRAN_BAND */ + UCC_OP_LOR, /* OMPI_OP_BASE_FORTRAN_LOR */ + UCC_OP_BOR, /* OMPI_OP_BASE_FORTRAN_BOR */ + UCC_OP_LXOR, /* OMPI_OP_BASE_FORTRAN_LXOR */ + UCC_OP_BXOR, /* OMPI_OP_BASE_FORTRAN_BXOR */ + COLL_UCC_OP_UNSUPPORTED, /* OMPI_OP_BASE_FORTRAN_MAXLOC */ + COLL_UCC_OP_UNSUPPORTED, /* OMPI_OP_BASE_FORTRAN_MINLOC */ + COLL_UCC_OP_UNSUPPORTED, /* OMPI_OP_BASE_FORTRAN_REPLACE */ + COLL_UCC_OP_UNSUPPORTED, /* OMPI_OP_BASE_FORTRAN_NO_OP */ + COLL_UCC_OP_UNSUPPORTED /* OMPI_OP_BASE_FORTRAN_OP_MAX */ +}; + +static inline ucc_reduction_op_t ompi_op_to_ucc_op(ompi_op_t *op) { + if (op->o_f_to_c_index > OMPI_OP_BASE_FORTRAN_OP_MAX) { + return COLL_UCC_OP_UNSUPPORTED; + } + return ompi_op_to_ucc_op_map[op->o_f_to_c_index]; +} + +#endif /* COLL_UCC_DTYPES_H */ diff -Nru openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc.h openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc.h --- openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,199 @@ +/** + Copyright (c) 2021 Mellanox Technologies. All rights reserved. + $COPYRIGHT$ + + Additional copyrights may follow + + $HEADER$ + */ + +#ifndef MCA_COLL_UCC_H +#define MCA_COLL_UCC_H + +#include "ompi_config.h" +#include "mpi.h" +#include "ompi/mca/mca.h" +#include "opal/memoryhooks/memory.h" +#include "opal/mca/memory/base/base.h" +#include "ompi/mca/coll/coll.h" +#include "ompi/communicator/communicator.h" +#include "ompi/attribute/attribute.h" +#include "ompi/op/op.h" +#include "coll_ucc_debug.h" +#include + +BEGIN_C_DECLS + +#define COLL_UCC_CTS (UCC_COLL_TYPE_BARRIER | UCC_COLL_TYPE_BCAST | \ + UCC_COLL_TYPE_ALLREDUCE | UCC_COLL_TYPE_ALLTOALL | \ + UCC_COLL_TYPE_ALLTOALLV | UCC_COLL_TYPE_ALLGATHER | \ + UCC_COLL_TYPE_REDUCE | UCC_COLL_TYPE_ALLGATHERV) + +#define COLL_UCC_CTS_STR "barrier,bcast,allreduce,alltoall,alltoallv,allgather,allgatherv,reduce," \ + "ibarrier,ibcast,iallreduce,ialltoall,ialltoallv,iallgather,iallgatherv,ireduce" + +typedef struct mca_coll_ucc_req { + ompi_request_t super; + ucc_coll_req_h ucc_req; +} mca_coll_ucc_req_t; +OBJ_CLASS_DECLARATION(mca_coll_ucc_req_t); + +struct mca_coll_ucc_component_t { + mca_coll_base_component_2_0_0_t super; + int ucc_priority; + int ucc_verbose; + int ucc_enable; + int ucc_np; + char *cls; + char *cts; + const char *compiletime_version; + const char *runtime_version; + bool libucc_initialized; + ucc_lib_h ucc_lib; + ucc_lib_attr_t ucc_lib_attr; + ucc_coll_type_t cts_requested; + ucc_coll_type_t nb_cts_requested; + ucc_context_h ucc_context; + opal_free_list_t requests; +}; +typedef struct mca_coll_ucc_component_t mca_coll_ucc_component_t; + +OMPI_MODULE_DECLSPEC extern mca_coll_ucc_component_t mca_coll_ucc_component; + +/** + * UCC enabled communicator + */ +struct mca_coll_ucc_module_t { + mca_coll_base_module_t super; + ompi_communicator_t* comm; + int rank; + ucc_team_h ucc_team; + mca_coll_base_module_allreduce_fn_t previous_allreduce; + mca_coll_base_module_t* previous_allreduce_module; + mca_coll_base_module_iallreduce_fn_t previous_iallreduce; + mca_coll_base_module_t* previous_iallreduce_module; + mca_coll_base_module_reduce_fn_t previous_reduce; + mca_coll_base_module_t* previous_reduce_module; + mca_coll_base_module_ireduce_fn_t previous_ireduce; + mca_coll_base_module_t* previous_ireduce_module; + mca_coll_base_module_barrier_fn_t previous_barrier; + mca_coll_base_module_t* previous_barrier_module; + mca_coll_base_module_ibarrier_fn_t previous_ibarrier; + mca_coll_base_module_t* previous_ibarrier_module; + mca_coll_base_module_bcast_fn_t previous_bcast; + mca_coll_base_module_t* previous_bcast_module; + mca_coll_base_module_ibcast_fn_t previous_ibcast; + mca_coll_base_module_t* previous_ibcast_module; + mca_coll_base_module_alltoall_fn_t previous_alltoall; + mca_coll_base_module_t* previous_alltoall_module; + mca_coll_base_module_ialltoall_fn_t previous_ialltoall; + mca_coll_base_module_t* previous_ialltoall_module; + mca_coll_base_module_alltoallv_fn_t previous_alltoallv; + mca_coll_base_module_t* previous_alltoallv_module; + mca_coll_base_module_ialltoallv_fn_t previous_ialltoallv; + mca_coll_base_module_t* previous_ialltoallv_module; + mca_coll_base_module_allgather_fn_t previous_allgather; + mca_coll_base_module_t* previous_allgather_module; + mca_coll_base_module_iallgather_fn_t previous_iallgather; + mca_coll_base_module_t* previous_iallgather_module; + mca_coll_base_module_allgatherv_fn_t previous_allgatherv; + mca_coll_base_module_t* previous_allgatherv_module; + mca_coll_base_module_iallgatherv_fn_t previous_iallgatherv; + mca_coll_base_module_t* previous_iallgatherv_module; +}; +typedef struct mca_coll_ucc_module_t mca_coll_ucc_module_t; +OBJ_CLASS_DECLARATION(mca_coll_ucc_module_t); + +int mca_coll_ucc_init_query(bool enable_progress_threads, bool enable_mpi_threads); +mca_coll_base_module_t *mca_coll_ucc_comm_query(struct ompi_communicator_t *comm, int *priority); + +int mca_coll_ucc_allreduce(const void *sbuf, void *rbuf, int count, + struct ompi_datatype_t *dtype, struct ompi_op_t *op, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); + +int mca_coll_ucc_iallreduce(const void *sbuf, void *rbuf, int count, + struct ompi_datatype_t *dtype, struct ompi_op_t *op, + struct ompi_communicator_t *comm, + ompi_request_t** request, + mca_coll_base_module_t *module); + +int mca_coll_ucc_reduce(const void *sbuf, void* rbuf, int count, + struct ompi_datatype_t *dtype, struct ompi_op_t *op, + int root, struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); + +int mca_coll_ucc_ireduce(const void *sbuf, void* rbuf, int count, + struct ompi_datatype_t *dtype, struct ompi_op_t *op, + int root, struct ompi_communicator_t *comm, + ompi_request_t** request, + mca_coll_base_module_t *module); + +int mca_coll_ucc_barrier(struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); + +int mca_coll_ucc_ibarrier(struct ompi_communicator_t *comm, + ompi_request_t** request, + mca_coll_base_module_t *module); + +int mca_coll_ucc_bcast(void *buf, int count, struct ompi_datatype_t *dtype, + int root, struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); + +int mca_coll_ucc_ibcast(void *buf, int count, struct ompi_datatype_t *dtype, + int root, struct ompi_communicator_t *comm, + ompi_request_t** request, + mca_coll_base_module_t *module); + +int mca_coll_ucc_alltoall(const void *sbuf, int scount, struct ompi_datatype_t *sdtype, + void* rbuf, int rcount, struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); + +int mca_coll_ucc_ialltoall(const void *sbuf, int scount, struct ompi_datatype_t *sdtype, + void* rbuf, int rcount, struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + ompi_request_t** request, + mca_coll_base_module_t *module); + +int mca_coll_ucc_alltoallv(const void *sbuf, const int *scounts, const int *sdips, + struct ompi_datatype_t *sdtype, + void* rbuf, const int *rcounts, const int *rdisps, + struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); + +int mca_coll_ucc_ialltoallv(const void *sbuf, const int *scounts, const int *sdips, + struct ompi_datatype_t *sdtype, + void* rbuf, const int *rcounts, const int *rdisps, + struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + ompi_request_t** request, + mca_coll_base_module_t *module); + +int mca_coll_ucc_allgather(const void *sbuf, int scount, struct ompi_datatype_t *sdtype, + void* rbuf, int rcount, struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); + +int mca_coll_ucc_iallgather(const void *sbuf, int scount, struct ompi_datatype_t *sdtype, + void* rbuf, int rcount, struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + ompi_request_t** request, + mca_coll_base_module_t *module); + +int mca_coll_ucc_allgatherv(const void *sbuf, int scount, struct ompi_datatype_t *sdtype, + void* rbuf, const int *rcounts, const int *rdisps, + struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module); + +int mca_coll_ucc_iallgatherv(const void *sbuf, int scount, struct ompi_datatype_t *sdtype, + void* rbuf, const int *rcounts, const int *rdisps, + struct ompi_datatype_t *rdtype, + struct ompi_communicator_t *comm, + ompi_request_t** request, + mca_coll_base_module_t *module); + +END_C_DECLS +#endif diff -Nru openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_module.c openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_module.c --- openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_module.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,522 @@ +/** + * Copyright (c) 2021 Mellanox Technologies. All rights reserved. + * Copyright (c) 2022 Amazon.com, Inc. or its affiliates. + * All Rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" +#include "coll_ucc.h" +#include "coll_ucc_dtypes.h" +#include "ompi/mca/coll/base/coll_tags.h" +#include "ompi/mca/pml/pml.h" + +#define OBJ_RELEASE_IF_NOT_NULL( obj ) if( NULL != (obj) ) OBJ_RELEASE( obj ); + +static int ucc_comm_attr_keyval; +/* + * Initial query function that is invoked during MPI_INIT, allowing + * this module to indicate what level of thread support it provides. + */ +int mca_coll_ucc_init_query(bool enable_progress_threads, bool enable_mpi_threads) +{ + return OMPI_SUCCESS; +} + +static void mca_coll_ucc_module_clear(mca_coll_ucc_module_t *ucc_module) +{ + ucc_module->ucc_team = NULL; + ucc_module->previous_allreduce = NULL; + ucc_module->previous_iallreduce = NULL; + ucc_module->previous_barrier = NULL; + ucc_module->previous_ibarrier = NULL; + ucc_module->previous_bcast = NULL; + ucc_module->previous_ibcast = NULL; + ucc_module->previous_alltoall = NULL; + ucc_module->previous_ialltoall = NULL; + ucc_module->previous_alltoallv = NULL; + ucc_module->previous_ialltoallv = NULL; + ucc_module->previous_allgather = NULL; + ucc_module->previous_iallgather = NULL; + ucc_module->previous_allgatherv = NULL; + ucc_module->previous_iallgatherv = NULL; + ucc_module->previous_reduce = NULL; + ucc_module->previous_ireduce = NULL; +} + +static void mca_coll_ucc_module_construct(mca_coll_ucc_module_t *ucc_module) +{ + mca_coll_ucc_module_clear(ucc_module); +} + +int mca_coll_ucc_progress(void) +{ + ucc_context_progress(mca_coll_ucc_component.ucc_context); + return OPAL_SUCCESS; +} + +static void mca_coll_ucc_module_destruct(mca_coll_ucc_module_t *ucc_module) +{ + if (ucc_module->comm == &ompi_mpi_comm_world.comm){ + if (OMPI_SUCCESS != ompi_attr_free_keyval(COMM_ATTR, &ucc_comm_attr_keyval, 0)) { + UCC_ERROR("ucc ompi_attr_free_keyval failed"); + } + } + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_allreduce_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_iallreduce_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_barrier_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_ibarrier_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_bcast_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_ibcast_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_alltoall_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_ialltoall_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_alltoallv_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_ialltoallv_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_allgather_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_iallgather_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_allgatherv_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_iallgatherv_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_reduce_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_ireduce_module); + mca_coll_ucc_module_clear(ucc_module); +} + +#define SAVE_PREV_COLL_API(__api) do { \ + ucc_module->previous_ ## __api = comm->c_coll->coll_ ## __api; \ + ucc_module->previous_ ## __api ## _module = comm->c_coll->coll_ ## __api ## _module; \ + if (!comm->c_coll->coll_ ## __api || !comm->c_coll->coll_ ## __api ## _module) { \ + return OMPI_ERROR; \ + } \ + OBJ_RETAIN(ucc_module->previous_ ## __api ## _module); \ + } while(0) + +static int mca_coll_ucc_save_coll_handlers(mca_coll_ucc_module_t *ucc_module) +{ + ompi_communicator_t *comm = ucc_module->comm; + SAVE_PREV_COLL_API(allreduce); + SAVE_PREV_COLL_API(iallreduce); + SAVE_PREV_COLL_API(barrier); + SAVE_PREV_COLL_API(ibarrier); + SAVE_PREV_COLL_API(bcast); + SAVE_PREV_COLL_API(ibcast); + SAVE_PREV_COLL_API(alltoall); + SAVE_PREV_COLL_API(ialltoall); + SAVE_PREV_COLL_API(alltoallv); + SAVE_PREV_COLL_API(ialltoallv); + SAVE_PREV_COLL_API(allgather); + SAVE_PREV_COLL_API(iallgather); + SAVE_PREV_COLL_API(allgatherv); + SAVE_PREV_COLL_API(iallgatherv); + SAVE_PREV_COLL_API(reduce); + SAVE_PREV_COLL_API(ireduce); + return OMPI_SUCCESS; +} + +/* +** Communicator free callback +*/ +static int ucc_comm_attr_del_fn(MPI_Comm comm, int keyval, void *attr_val, void *extra) +{ + + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t*) attr_val; + ucc_team_destroy(ucc_module->ucc_team); + if (ucc_module->comm == &ompi_mpi_comm_world.comm) { + if (mca_coll_ucc_component.libucc_initialized) { + UCC_VERBOSE(1,"finalizing ucc library"); + opal_progress_unregister(mca_coll_ucc_progress); + ucc_context_destroy(mca_coll_ucc_component.ucc_context); + ucc_finalize(mca_coll_ucc_component.ucc_lib); + } + } + return OMPI_SUCCESS; +} + +typedef struct oob_allgather_req{ + void *sbuf; + void *rbuf; + void *oob_coll_ctx; + size_t msglen; + int iter; + ompi_request_t *reqs[2]; +} oob_allgather_req_t; + +static ucc_status_t oob_allgather_test(void *req) +{ + oob_allgather_req_t *oob_req = (oob_allgather_req_t*)req; + ompi_communicator_t *comm = (ompi_communicator_t *)oob_req->oob_coll_ctx; + char *tmpsend = NULL; + char *tmprecv = NULL; + size_t msglen = oob_req->msglen; + int probe_count = 5; + int rank, size, sendto, recvfrom, recvdatafrom, + senddatafrom, completed, probe; + + size = ompi_comm_size(comm); + rank = ompi_comm_rank(comm); + if (oob_req->iter == 0) { + tmprecv = (char*) oob_req->rbuf + (ptrdiff_t)rank * (ptrdiff_t)msglen; + memcpy(tmprecv, oob_req->sbuf, msglen); + } + sendto = (rank + 1) % size; + recvfrom = (rank - 1 + size) % size; + for (; oob_req->iter < size - 1; oob_req->iter++) { + if (oob_req->iter > 0) { + probe = 0; + do { + ompi_request_test_all(2, oob_req->reqs, &completed, MPI_STATUS_IGNORE); + probe++; + } while (!completed && probe < probe_count); + if (!completed) { + return UCC_INPROGRESS; + } + } + recvdatafrom = (rank - oob_req->iter - 1 + size) % size; + senddatafrom = (rank - oob_req->iter + size) % size; + tmprecv = (char*)oob_req->rbuf + (ptrdiff_t)recvdatafrom * (ptrdiff_t)msglen; + tmpsend = (char*)oob_req->rbuf + (ptrdiff_t)senddatafrom * (ptrdiff_t)msglen; + MCA_PML_CALL(isend(tmpsend, msglen, MPI_BYTE, sendto, MCA_COLL_BASE_TAG_UCC, + MCA_PML_BASE_SEND_STANDARD, comm, &oob_req->reqs[0])); + MCA_PML_CALL(irecv(tmprecv, msglen, MPI_BYTE, recvfrom, + MCA_COLL_BASE_TAG_UCC, comm, &oob_req->reqs[1])); + } + probe = 0; + do { + ompi_request_test_all(2, oob_req->reqs, &completed, MPI_STATUS_IGNORE); + probe++; + } while (!completed && probe < probe_count); + if (!completed) { + return UCC_INPROGRESS; + } + return UCC_OK; +} + +static ucc_status_t oob_allgather_free(void *req) +{ + free(req); + return UCC_OK; +} + +static ucc_status_t oob_allgather(void *sbuf, void *rbuf, size_t msglen, + void *oob_coll_ctx, void **req) +{ + oob_allgather_req_t *oob_req = malloc(sizeof(*oob_req)); + oob_req->sbuf = sbuf; + oob_req->rbuf = rbuf; + oob_req->msglen = msglen; + oob_req->oob_coll_ctx = oob_coll_ctx; + oob_req->iter = 0; + *req = oob_req; + return UCC_OK; +} + + +static int mca_coll_ucc_init_ctx() { + mca_coll_ucc_component_t *cm = &mca_coll_ucc_component; + char str_buf[256]; + ompi_attribute_fn_ptr_union_t del_fn; + ompi_attribute_fn_ptr_union_t copy_fn; + ucc_lib_config_h lib_config; + ucc_context_config_h ctx_config; + ucc_thread_mode_t tm_requested; + ucc_lib_params_t lib_params; + ucc_context_params_t ctx_params; + + tm_requested = ompi_mpi_thread_multiple ? UCC_THREAD_MULTIPLE : + UCC_THREAD_SINGLE; + lib_params.mask = UCC_LIB_PARAM_FIELD_THREAD_MODE; + lib_params.thread_mode = tm_requested; + + if (UCC_OK != ucc_lib_config_read("OMPI", NULL, &lib_config)) { + UCC_ERROR("UCC lib config read failed"); + return OMPI_ERROR; + } + if (UCC_OK != ucc_lib_config_modify(lib_config, "CLS", cm->cls)) { + ucc_lib_config_release(lib_config); + UCC_ERROR("failed to modify UCC lib config to set CLS"); + return OMPI_ERROR; + } + + if (UCC_OK != ucc_init(&lib_params, lib_config, &cm->ucc_lib)) { + UCC_ERROR("UCC lib init failed"); + ucc_lib_config_release(lib_config); + cm->ucc_enable = 0; + return OMPI_ERROR; + } + ucc_lib_config_release(lib_config); + + cm->ucc_lib_attr.mask = UCC_LIB_ATTR_FIELD_THREAD_MODE | + UCC_LIB_ATTR_FIELD_COLL_TYPES; + if (UCC_OK != ucc_lib_get_attr(cm->ucc_lib, &cm->ucc_lib_attr)) { + UCC_ERROR("UCC get lib attr failed"); + goto cleanup_lib; + } + + if (cm->ucc_lib_attr.thread_mode < tm_requested) { + UCC_ERROR("UCC library doesn't support MPI_THREAD_MULTIPLE"); + goto cleanup_lib; + } + ctx_params.mask = UCC_CONTEXT_PARAM_FIELD_OOB; + ctx_params.oob.allgather = oob_allgather; + ctx_params.oob.req_test = oob_allgather_test; + ctx_params.oob.req_free = oob_allgather_free; + ctx_params.oob.coll_info = (void*)MPI_COMM_WORLD; + ctx_params.oob.n_oob_eps = ompi_comm_size(&ompi_mpi_comm_world.comm); + ctx_params.oob.oob_ep = ompi_comm_rank(&ompi_mpi_comm_world.comm); + if (UCC_OK != ucc_context_config_read(cm->ucc_lib, NULL, &ctx_config)) { + UCC_ERROR("UCC context config read failed"); + goto cleanup_lib; + } + + sprintf(str_buf, "%u", ompi_proc_world_size()); + if (UCC_OK != ucc_context_config_modify(ctx_config, NULL, "ESTIMATED_NUM_EPS", + str_buf)) { + UCC_ERROR("UCC context config modify failed for estimated_num_eps"); + goto cleanup_lib; + } + + sprintf(str_buf, "%u", opal_process_info.num_local_peers + 1); + if (UCC_OK != ucc_context_config_modify(ctx_config, NULL, "ESTIMATED_NUM_PPN", + str_buf)) { + UCC_ERROR("UCC context config modify failed for estimated_num_eps"); + goto cleanup_lib; + } + + if (UCC_OK != ucc_context_create(cm->ucc_lib, &ctx_params, + ctx_config, &cm->ucc_context)) { + UCC_ERROR("UCC context create failed"); + ucc_context_config_release(ctx_config); + goto cleanup_lib; + } + ucc_context_config_release(ctx_config); + + copy_fn.attr_communicator_copy_fn = (MPI_Comm_internal_copy_attr_function*) + MPI_COMM_NULL_COPY_FN; + del_fn.attr_communicator_delete_fn = ucc_comm_attr_del_fn; + if (OMPI_SUCCESS != ompi_attr_create_keyval(COMM_ATTR, copy_fn, del_fn, + &ucc_comm_attr_keyval, NULL ,0, NULL)) { + UCC_ERROR("UCC comm keyval create failed"); + goto cleanup_ctx; + } + + OBJ_CONSTRUCT(&cm->requests, opal_free_list_t); + opal_free_list_init(&cm->requests, sizeof(mca_coll_ucc_req_t), + opal_cache_line_size, OBJ_CLASS(mca_coll_ucc_req_t), + 0, 0, /* no payload data */ + 8, -1, 8, /* num_to_alloc, max, per alloc */ + NULL, 0, NULL, NULL, NULL /* no Mpool or init function */); + + opal_progress_register(mca_coll_ucc_progress); + UCC_VERBOSE(1, "initialized ucc context"); + cm->libucc_initialized = true; + return OMPI_SUCCESS; +cleanup_ctx: + ucc_context_destroy(cm->ucc_context); + +cleanup_lib: + ucc_finalize(cm->ucc_lib); + cm->ucc_enable = 0; + cm->libucc_initialized = false; + return OMPI_ERROR; +} + +uint64_t rank_map_cb(uint64_t ep, void *cb_ctx) +{ + struct ompi_communicator_t *comm = cb_ctx; + + return ((ompi_process_name_t*)&ompi_comm_peer_lookup(comm, ep)->super. + proc_name)->vpid; +} + +static inline ucc_ep_map_t get_rank_map(struct ompi_communicator_t *comm) +{ + ucc_ep_map_t map; + int64_t r1, r2, stride, i; + int is_strided; + + map.ep_num = ompi_comm_size(comm); + if (comm == &ompi_mpi_comm_world.comm) { + map.type = UCC_EP_MAP_FULL; + return map; + } + + /* try to detect strided pattern */ + is_strided = 1; + r1 = rank_map_cb(0, comm); + r2 = rank_map_cb(1, comm); + stride = r2 - r1; + for (i = 2; i < map.ep_num; i++) { + r1 = r2; + r2 = rank_map_cb(i, comm); + if (r2 - r1 != stride) { + is_strided = 0; + break; + } + } + + if (is_strided) { + map.type = UCC_EP_MAP_STRIDED; + map.strided.start = r1; + map.strided.stride = stride; + } else { + map.type = UCC_EP_MAP_CB; + map.cb.cb = rank_map_cb; + map.cb.cb_ctx = (void*)comm; + } + + return map; +} +/* + * Initialize module on the communicator + */ +static int mca_coll_ucc_module_enable(mca_coll_base_module_t *module, + struct ompi_communicator_t *comm) +{ + mca_coll_ucc_component_t *cm = &mca_coll_ucc_component; + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t *)module; + ucc_status_t status; + int rc; + ucc_team_params_t team_params = { + .mask = UCC_TEAM_PARAM_FIELD_EP_MAP | + UCC_TEAM_PARAM_FIELD_EP | + UCC_TEAM_PARAM_FIELD_EP_RANGE | + UCC_TEAM_PARAM_FIELD_ID, + .ep_map = { + .type = (comm == &ompi_mpi_comm_world.comm) ? + UCC_EP_MAP_FULL : UCC_EP_MAP_CB, + .ep_num = ompi_comm_size(comm), + .cb.cb = rank_map_cb, + .cb.cb_ctx = (void*)comm + }, + .ep = ompi_comm_rank(comm), + .ep_range = UCC_COLLECTIVE_EP_RANGE_CONTIG, + .id = comm->c_contextid + }; + UCC_VERBOSE(2,"creating ucc_team for comm %p, comm_id %d, comm_size %d", + (void*)comm,comm->c_contextid,ompi_comm_size(comm)); + + if (OMPI_SUCCESS != mca_coll_ucc_save_coll_handlers(ucc_module)){ + UCC_ERROR("mca_coll_ucc_save_coll_handlers failed"); + goto err; + } + + if (UCC_OK != ucc_team_create_post(&cm->ucc_context, 1, + &team_params, &ucc_module->ucc_team)) { + UCC_ERROR("ucc_team_create_post failed"); + goto err; + } + while (UCC_INPROGRESS == (status = ucc_team_create_test( + ucc_module->ucc_team))) { + opal_progress(); + } + if (UCC_OK != status) { + UCC_ERROR("ucc_team_create_test failed"); + goto err; + } + + rc = ompi_attr_set_c(COMM_ATTR, comm, &comm->c_keyhash, + ucc_comm_attr_keyval, (void *)module, false); + if (OMPI_SUCCESS != rc) { + UCC_ERROR("ucc ompi_attr_set_c failed"); + goto err; + } + return OMPI_SUCCESS; + +err: + ucc_module->ucc_team = NULL; + cm->ucc_enable = 0; + opal_progress_unregister(mca_coll_ucc_progress); + return OMPI_ERROR; +} + + +#define SET_COLL_PTR(_module, _COLL, _coll) do { \ + _module->super.coll_ ## _coll = NULL; \ + _module->super.coll_i ## _coll = NULL; \ + if ((mca_coll_ucc_component.ucc_lib_attr.coll_types & \ + UCC_COLL_TYPE_ ## _COLL)) { \ + if (mca_coll_ucc_component.cts_requested & \ + UCC_COLL_TYPE_ ## _COLL) { \ + _module->super.coll_ ## _coll = mca_coll_ucc_ ## _coll; \ + } \ + if (mca_coll_ucc_component.nb_cts_requested & \ + UCC_COLL_TYPE_ ## _COLL) { \ + _module->super.coll_i ## _coll = mca_coll_ucc_i ## _coll; \ + } \ + } \ + } while(0) + +/* + * Invoked when there's a new communicator that has been created. + * Look at the communicator and decide which set of functions and + * priority we want to return. + */ +mca_coll_base_module_t * +mca_coll_ucc_comm_query(struct ompi_communicator_t *comm, int *priority) +{ + mca_coll_ucc_component_t *cm = &mca_coll_ucc_component; + mca_coll_ucc_module_t *ucc_module; + *priority = 0; + + if (!cm->ucc_enable){ + return NULL; + } + + if (OMPI_COMM_IS_INTER(comm) || ompi_comm_size(comm) < cm->ucc_np + || ompi_comm_size(comm) < 2){ + return NULL; + } + + if (!cm->libucc_initialized) { + if (OMPI_SUCCESS != mca_coll_ucc_init_ctx()) { + cm->ucc_enable = 0; + return NULL; + } + } + + ucc_module = OBJ_NEW(mca_coll_ucc_module_t); + if (!ucc_module) { + cm->ucc_enable = 0; + return NULL; + } + ucc_module->comm = comm; + ucc_module->super.coll_module_enable = mca_coll_ucc_module_enable; + *priority = cm->ucc_priority; + SET_COLL_PTR(ucc_module, BARRIER, barrier); + SET_COLL_PTR(ucc_module, BCAST, bcast); + SET_COLL_PTR(ucc_module, ALLREDUCE, allreduce); + SET_COLL_PTR(ucc_module, ALLTOALL, alltoall); + SET_COLL_PTR(ucc_module, ALLTOALLV, alltoallv); + SET_COLL_PTR(ucc_module, REDUCE, reduce); + SET_COLL_PTR(ucc_module, ALLGATHER, allgather); + SET_COLL_PTR(ucc_module, ALLGATHERV, allgatherv); + return &ucc_module->super; +} + + +OBJ_CLASS_INSTANCE(mca_coll_ucc_module_t, + mca_coll_base_module_t, + mca_coll_ucc_module_construct, + mca_coll_ucc_module_destruct); + +OBJ_CLASS_INSTANCE(mca_coll_ucc_req_t, ompi_request_t, + NULL, NULL); + +int mca_coll_ucc_req_free(struct ompi_request_t **ompi_req) +{ + opal_free_list_return (&mca_coll_ucc_component.requests, + (opal_free_list_item_t *)(*ompi_req)); + *ompi_req = &ompi_request_empty; + return OMPI_SUCCESS; +} + + +void mca_coll_ucc_completion(void *data, ucc_status_t status) +{ + mca_coll_ucc_req_t *coll_req = (mca_coll_ucc_req_t*)data; + ucc_collective_finalize(coll_req->ucc_req); + ompi_request_complete(&coll_req->super, true); +} diff -Nru openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_reduce.c openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_reduce.c --- openmpi-4.0.3/ompi/mca/coll/ucc/coll_ucc_reduce.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/ucc/coll_ucc_reduce.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,107 @@ +/** + * Copyright (c) 2021 Mellanox Technologies. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + */ + +#include "coll_ucc_common.h" + +static inline ucc_status_t mca_coll_ucc_reduce_init(const void *sbuf, void *rbuf, int count, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, int root, + mca_coll_ucc_module_t *ucc_module, + ucc_coll_req_h *req, + mca_coll_ucc_req_t *coll_req) +{ + ucc_datatype_t ucc_dt; + ucc_reduction_op_t ucc_op; + + ucc_dt = ompi_dtype_to_ucc_dtype(dtype); + ucc_op = ompi_op_to_ucc_op(op); + if (OPAL_UNLIKELY(COLL_UCC_DT_UNSUPPORTED == ucc_dt)) { + UCC_VERBOSE(5, "ompi_datatype is not supported: dtype = %s", + dtype->super.name); + goto fallback; + } + if (OPAL_UNLIKELY(COLL_UCC_OP_UNSUPPORTED == ucc_op)) { + UCC_VERBOSE(5, "ompi_op is not supported: op = %s", + op->o_name); + goto fallback; + } + ucc_coll_args_t coll = { + .mask = 0, + .coll_type = UCC_COLL_TYPE_REDUCE, + .root = root, + .src.info = { + .buffer = (void*)sbuf, + .count = count, + .datatype = ucc_dt, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + }, + .dst.info = { + .buffer = rbuf, + .count = count, + .datatype = ucc_dt, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + }, + .op = ucc_op, + }; + if (MPI_IN_PLACE == sbuf) { + coll.mask |= UCC_COLL_ARGS_FIELD_FLAGS; + coll.flags = UCC_COLL_ARGS_FLAG_IN_PLACE; + } + COLL_UCC_REQ_INIT(coll_req, req, coll, ucc_module); + return UCC_OK; +fallback: + return UCC_ERR_NOT_SUPPORTED; +} + +int mca_coll_ucc_reduce(const void *sbuf, void* rbuf, int count, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, int root, + struct ompi_communicator_t *comm, + mca_coll_base_module_t *module) +{ + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t*)module; + ucc_coll_req_h req; + + UCC_VERBOSE(3, "running ucc reduce"); + COLL_UCC_CHECK(mca_coll_ucc_reduce_init(sbuf, rbuf, count, dtype, op, + root, ucc_module, &req, NULL)); + COLL_UCC_POST_AND_CHECK(req); + COLL_UCC_CHECK(coll_ucc_req_wait(req)); + return OMPI_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback reduce"); + return ucc_module->previous_reduce(sbuf, rbuf, count, dtype, op, root, + comm, ucc_module->previous_reduce_module); +} + +int mca_coll_ucc_ireduce(const void *sbuf, void* rbuf, int count, + struct ompi_datatype_t *dtype, + struct ompi_op_t *op, int root, + struct ompi_communicator_t *comm, + ompi_request_t** request, + mca_coll_base_module_t *module) +{ + mca_coll_ucc_module_t *ucc_module = (mca_coll_ucc_module_t*)module; + ucc_coll_req_h req; + mca_coll_ucc_req_t *coll_req = NULL; + + UCC_VERBOSE(3, "running ucc ireduce"); + COLL_UCC_GET_REQ(coll_req); + COLL_UCC_CHECK(mca_coll_ucc_reduce_init(sbuf, rbuf, count, dtype, op, root, + ucc_module, &req, coll_req)); + COLL_UCC_POST_AND_CHECK(req); + *request = &coll_req->super; + return OMPI_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback ireduce"); + if (coll_req) { + mca_coll_ucc_req_free((ompi_request_t **)&coll_req); + } + return ucc_module->previous_ireduce(sbuf, rbuf, count, dtype, op, root, + comm, request, ucc_module->previous_ireduce_module); +} diff -Nru openmpi-4.0.3/ompi/mca/coll/ucc/configure.m4 openmpi-4.1.4/ompi/mca/coll/ucc/configure.m4 --- openmpi-4.0.3/ompi/mca/coll/ucc/configure.m4 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/ucc/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,39 @@ +# -*- shell-script -*- +# +# +# Copyright (c) 2021 Mellanox Technologies. All rights reserved. +# Copyright (c) 2015 Research Organization for Information Science +# and Technology (RIST). All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + + +# MCA_coll_ucc_CONFIG([action-if-can-compile], +# [action-if-cant-compile]) +# ------------------------------------------------ +AC_DEFUN([MCA_ompi_coll_ucc_CONFIG],[ + AC_CONFIG_FILES([ompi/mca/coll/ucc/Makefile]) + + OMPI_CHECK_UCC([coll_ucc], + [coll_ucc_happy="yes"], + [coll_ucc_happy="no"]) + + AS_IF([test "$coll_ucc_happy" = "yes"], + [coll_ucc_WRAPPER_EXTRA_LDFLAGS="$coll_ucc_LDFLAGS" + coll_ucc_CPPFLAGS="$coll_ucc_CPPFLAGS" + coll_ucc_WRAPPER_EXTRA_LIBS="$coll_ucc_LIBS" + $1], + [$2]) + + OPAL_SUMMARY_ADD([[Miscellaneous]],[[Open UCC]],[$1],[$coll_ucc_happy])])]) + + # substitute in the things needed to build ucc + AC_SUBST([coll_ucc_CFLAGS]) + AC_SUBST([coll_ucc_CPPFLAGS]) + AC_SUBST([coll_ucc_LDFLAGS]) + AC_SUBST([coll_ucc_LIBS]) +])dnl diff -Nru openmpi-4.0.3/ompi/mca/coll/ucc/Makefile.am openmpi-4.1.4/ompi/mca/coll/ucc/Makefile.am --- openmpi-4.0.3/ompi/mca/coll/ucc/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/ucc/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,53 @@ +# -*- shell-script -*- +# +# +# Copyright (c) 2021 Mellanox Technologies. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# +# + +AM_CPPFLAGS = $(coll_ucc_CPPFLAGS) + +coll_ucc_sources = \ + coll_ucc.h \ + coll_ucc_debug.h \ + coll_ucc_dtypes.h \ + coll_ucc_common.h \ + coll_ucc_module.c \ + coll_ucc_component.c \ + coll_ucc_barrier.c \ + coll_ucc_bcast.c \ + coll_ucc_allreduce.c \ + coll_ucc_reduce.c \ + coll_ucc_alltoall.c \ + coll_ucc_alltoallv.c \ + coll_ucc_allgather.c \ + coll_ucc_allgatherv.c + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). + +if MCA_BUILD_ompi_coll_ucc_DSO +component_noinst = +component_install = mca_coll_ucc.la +else +component_noinst = libmca_coll_ucc.la +component_install = +endif + +mcacomponentdir = $(ompilibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_coll_ucc_la_SOURCES = $(coll_ucc_sources) +mca_coll_ucc_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(coll_ucc_LIBS) +mca_coll_ucc_la_LDFLAGS = -module -avoid-version $(coll_ucc_LDFLAGS) + +noinst_LTLIBRARIES = $(component_noinst) +libmca_coll_ucc_la_SOURCES = $(coll_ucc_sources) +libmca_coll_ucc_la_LIBADD = $(coll_ucc_LIBS) +libmca_coll_ucc_la_LDFLAGS = -module -avoid-version $(coll_ucc_LDFLAGS) diff -Nru openmpi-4.0.3/ompi/mca/coll/ucc/Makefile.in openmpi-4.1.4/ompi/mca/coll/ucc/Makefile.in --- openmpi-4.0.3/ompi/mca/coll/ucc/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/coll/ucc/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,2135 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# -*- shell-script -*- +# +# +# Copyright (c) 2021 Mellanox Technologies. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# +# + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = ompi/mca/coll/ucc +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/c_weak_symbols.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ + $(top_srcdir)/config/ompi_check_libfca.m4 \ + $(top_srcdir)/config/ompi_check_libhcoll.m4 \ + $(top_srcdir)/config/ompi_check_lustre.m4 \ + $(top_srcdir)/config/ompi_check_mxm.m4 \ + $(top_srcdir)/config/ompi_check_psm.m4 \ + $(top_srcdir)/config/ompi_check_psm2.m4 \ + $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ + $(top_srcdir)/config/ompi_check_ucx.m4 \ + $(top_srcdir)/config/ompi_config_files.m4 \ + $(top_srcdir)/config/ompi_configure_options.m4 \ + $(top_srcdir)/config/ompi_contrib.m4 \ + $(top_srcdir)/config/ompi_cxx_find_exception_flags.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_parameters.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_repository.m4 \ + $(top_srcdir)/config/ompi_cxx_have_exceptions.m4 \ + $(top_srcdir)/config/ompi_endpoint_tag.m4 \ + $(top_srcdir)/config/ompi_ext.m4 \ + $(top_srcdir)/config/ompi_find_mpi_aint_count_offset.m4 \ + $(top_srcdir)/config/ompi_fortran_check.m4 \ + $(top_srcdir)/config/ompi_fortran_check_abstract.m4 \ + $(top_srcdir)/config/ompi_fortran_check_asynchronous.m4 \ + $(top_srcdir)/config/ompi_fortran_check_bind_c.m4 \ + $(top_srcdir)/config/ompi_fortran_check_c_funloc.m4 \ + $(top_srcdir)/config/ompi_fortran_check_f08_assumed_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_ignore_tkr.m4 \ + $(top_srcdir)/config/ompi_fortran_check_interface.m4 \ + $(top_srcdir)/config/ompi_fortran_check_iso_fortran_env.m4 \ + $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ + $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ + $(top_srcdir)/config/ompi_fortran_check_private.m4 \ + $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ + $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ + $(top_srcdir)/config/ompi_fortran_check_real16_c_equiv.m4 \ + $(top_srcdir)/config/ompi_fortran_check_storage_size.m4 \ + $(top_srcdir)/config/ompi_fortran_check_type.m4 \ + $(top_srcdir)/config/ompi_fortran_check_use_only.m4 \ + $(top_srcdir)/config/ompi_fortran_find_ext_symbol_convention.m4 \ + $(top_srcdir)/config/ompi_fortran_find_module_include_flag.m4 \ + $(top_srcdir)/config/ompi_fortran_get_alignment.m4 \ + $(top_srcdir)/config/ompi_fortran_get_handle_max.m4 \ + $(top_srcdir)/config/ompi_fortran_get_kind_value.m4 \ + $(top_srcdir)/config/ompi_fortran_get_sizeof.m4 \ + $(top_srcdir)/config/ompi_fortran_get_value_true.m4 \ + $(top_srcdir)/config/ompi_interix.m4 \ + $(top_srcdir)/config/ompi_setup_contrib.m4 \ + $(top_srcdir)/config/ompi_setup_cxx.m4 \ + $(top_srcdir)/config/ompi_setup_fc.m4 \ + $(top_srcdir)/config/ompi_setup_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_ext.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_fortran.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_profiling.m4 \ + $(top_srcdir)/config/opal_case_sensitive_fs_setup.m4 \ + $(top_srcdir)/config/opal_check_alps.m4 \ + $(top_srcdir)/config/opal_check_attributes.m4 \ + $(top_srcdir)/config/opal_check_broken_qsort.m4 \ + $(top_srcdir)/config/opal_check_cma.m4 \ + $(top_srcdir)/config/opal_check_compiler_version.m4 \ + $(top_srcdir)/config/opal_check_compiler_works.m4 \ + $(top_srcdir)/config/opal_check_cray_pmi.m4 \ + $(top_srcdir)/config/opal_check_cuda.m4 \ + $(top_srcdir)/config/opal_check_icc.m4 \ + $(top_srcdir)/config/opal_check_ident.m4 \ + $(top_srcdir)/config/opal_check_knem.m4 \ + $(top_srcdir)/config/opal_check_libnl.m4 \ + $(top_srcdir)/config/opal_check_offsetof.m4 \ + $(top_srcdir)/config/opal_check_ofi.m4 \ + $(top_srcdir)/config/opal_check_openfabrics.m4 \ + $(top_srcdir)/config/opal_check_os_flavors.m4 \ + $(top_srcdir)/config/opal_check_package.m4 \ + $(top_srcdir)/config/opal_check_pmi.m4 \ + $(top_srcdir)/config/opal_check_portals4.m4 \ + $(top_srcdir)/config/opal_check_ps.m4 \ + $(top_srcdir)/config/opal_check_pthread_pids.m4 \ + $(top_srcdir)/config/opal_check_singularity.m4 \ + $(top_srcdir)/config/opal_check_ugni.m4 \ + $(top_srcdir)/config/opal_check_vendor.m4 \ + $(top_srcdir)/config/opal_check_verbs.m4 \ + $(top_srcdir)/config/opal_check_visibility.m4 \ + $(top_srcdir)/config/opal_check_withdir.m4 \ + $(top_srcdir)/config/opal_check_xpmem.m4 \ + $(top_srcdir)/config/opal_config_asm.m4 \ + $(top_srcdir)/config/opal_config_files.m4 \ + $(top_srcdir)/config/opal_config_pthreads.m4 \ + $(top_srcdir)/config/opal_config_subdir.m4 \ + $(top_srcdir)/config/opal_config_subdir_args.m4 \ + $(top_srcdir)/config/opal_config_threads.m4 \ + $(top_srcdir)/config/opal_configure_options.m4 \ + $(top_srcdir)/config/opal_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/opal_find_type.m4 \ + $(top_srcdir)/config/opal_functions.m4 \ + $(top_srcdir)/config/opal_lang_link_with_c.m4 \ + $(top_srcdir)/config/opal_load_platform.m4 \ + $(top_srcdir)/config/opal_mca.m4 \ + $(top_srcdir)/config/opal_save_version.m4 \ + $(top_srcdir)/config/opal_search_libs.m4 \ + $(top_srcdir)/config/opal_set_lib_prefix.m4 \ + $(top_srcdir)/config/opal_set_mca_prefix.m4 \ + $(top_srcdir)/config/opal_setup_cc.m4 \ + $(top_srcdir)/config/opal_setup_cli.m4 \ + $(top_srcdir)/config/opal_setup_cxx.m4 \ + $(top_srcdir)/config/opal_setup_ft.m4 \ + $(top_srcdir)/config/opal_setup_wrappers.m4 \ + $(top_srcdir)/config/opal_setup_zlib.m4 \ + $(top_srcdir)/config/opal_strip_optflags.m4 \ + $(top_srcdir)/config/opal_summary.m4 \ + $(top_srcdir)/config/opal_try_assemble.m4 \ + $(top_srcdir)/config/orte_check_lsf.m4 \ + $(top_srcdir)/config/orte_check_moab.m4 \ + $(top_srcdir)/config/orte_check_sge.m4 \ + $(top_srcdir)/config/orte_check_slurm.m4 \ + $(top_srcdir)/config/orte_check_tm.m4 \ + $(top_srcdir)/config/orte_config_files.m4 \ + $(top_srcdir)/config/orte_configure_options.m4 \ + $(top_srcdir)/config/orte_setup_debugger_flags.m4 \ + $(top_srcdir)/config/oshmem_config_files.m4 \ + $(top_srcdir)/config/oshmem_configure_options.m4 \ + $(top_srcdir)/config/oshmem_setup_profiling.m4 \ + $(top_srcdir)/config/pkg.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/opal/mca/backtrace/configure.m4 \ + $(top_srcdir)/opal/mca/dl/configure.m4 \ + $(top_srcdir)/opal/mca/event/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/configure.m4 \ + $(top_srcdir)/opal/mca/memcpy/configure.m4 \ + $(top_srcdir)/opal/mca/memory/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/configure.m4 \ + $(top_srcdir)/opal/mca/timer/configure.m4 \ + $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/common/sm/configure.m4 \ + $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs_usnic/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ + $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ + $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ + $(top_srcdir)/opal/mca/btl/smcuda/configure.m4 \ + $(top_srcdir)/opal/mca/btl/tcp/configure.m4 \ + $(top_srcdir)/opal/mca/btl/uct/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ugni/configure.m4 \ + $(top_srcdir)/opal/mca/btl/usnic/configure.m4 \ + $(top_srcdir)/opal/mca/btl/vader/configure.m4 \ + $(top_srcdir)/opal/mca/crs/self/configure.m4 \ + $(top_srcdir)/opal/mca/dl/dlopen/configure.m4 \ + $(top_srcdir)/opal/mca/dl/libltdl/configure.m4 \ + $(top_srcdir)/opal/mca/event/external/configure.m4 \ + $(top_srcdir)/opal/mca/event/libevent2022/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/external/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_pkg.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_attributes.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_visibility.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_vendor.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_components.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_internal.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/netloc.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/linux_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/posix_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/solaris_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/config/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/env/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/valgrind/configure.m4 \ + $(top_srcdir)/opal/mca/memory/malloc_solaris/configure.m4 \ + $(top_srcdir)/opal/mca/memory/patcher/configure.m4 \ + $(top_srcdir)/opal/mca/mpool/memkind/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/linux/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/overwrite/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/cray/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext1x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext2x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/flux/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/pmix3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s1/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s2/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/linux/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/test/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/gpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/rgpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/udreg/configure.m4 \ + $(top_srcdir)/opal/mca/reachable/netlink/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/mmap/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/posix/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/sysv/configure.m4 \ + $(top_srcdir)/opal/mca/timer/altix/configure.m4 \ + $(top_srcdir)/opal/mca/timer/darwin/configure.m4 \ + $(top_srcdir)/opal/mca/timer/linux/configure.m4 \ + $(top_srcdir)/opal/mca/timer/solaris/configure.m4 \ + $(top_srcdir)/orte/mca/common/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ess/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ess/tm/configure.m4 \ + $(top_srcdir)/orte/mca/odls/alps/configure.m4 \ + $(top_srcdir)/orte/mca/odls/default/configure.m4 \ + $(top_srcdir)/orte/mca/odls/pspawn/configure.m4 \ + $(top_srcdir)/orte/mca/oob/alps/configure.m4 \ + $(top_srcdir)/orte/mca/oob/tcp/configure.m4 \ + $(top_srcdir)/orte/mca/plm/alps/configure.m4 \ + $(top_srcdir)/orte/mca/plm/isolated/configure.m4 \ + $(top_srcdir)/orte/mca/plm/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/plm/rsh/configure.m4 \ + $(top_srcdir)/orte/mca/plm/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/plm/tm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ras/gridengine/configure.m4 \ + $(top_srcdir)/orte/mca/ras/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/snapc/full/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/central/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/stage/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/configure.m4 \ + $(top_srcdir)/ompi/mca/fcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/configure.m4 \ + $(top_srcdir)/ompi/mca/hook/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/configure.m4 \ + $(top_srcdir)/ompi/mca/common/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/common/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/bml/r2/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/cuda/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/fca/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ + $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ + $(top_srcdir)/ompi/mca/io/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/io/romio321/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/ofi/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/rdma/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/crcpw/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ob1/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/v/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/yalla/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/orte/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/pmix/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/sm/configure.m4 \ + $(top_srcdir)/ompi/mca/topo/treematch/configure.m4 \ + $(top_srcdir)/oshmem/mca/memheap/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/sysv/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/verbs/configure.m4 \ + $(top_srcdir)/ompi/mpiext/affinity/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cr/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cuda/configure.m4 \ + $(top_srcdir)/ompi/mpiext/pcollreq/configure.m4 \ + $(top_srcdir)/ompi/contrib/libompitrace/configure.m4 \ + $(top_srcdir)/config/opal_get_version.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/opal/include/opal_config.h \ + $(top_builddir)/ompi/include/mpi.h \ + $(top_builddir)/oshmem/include/shmem.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen/config.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen/config.h \ + $(top_builddir)/ompi/mpiext/cuda/c/mpiext_cuda_c.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(mcacomponentdir)" +LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) +am__DEPENDENCIES_1 = +libmca_coll_ucc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +am__objects_1 = coll_ucc_module.lo coll_ucc_component.lo \ + coll_ucc_barrier.lo coll_ucc_bcast.lo coll_ucc_allreduce.lo \ + coll_ucc_reduce.lo coll_ucc_alltoall.lo coll_ucc_alltoallv.lo \ + coll_ucc_allgather.lo coll_ucc_allgatherv.lo +am_libmca_coll_ucc_la_OBJECTS = $(am__objects_1) +libmca_coll_ucc_la_OBJECTS = $(am_libmca_coll_ucc_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libmca_coll_ucc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libmca_coll_ucc_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_ompi_coll_ucc_DSO_FALSE@am_libmca_coll_ucc_la_rpath = +mca_coll_ucc_la_DEPENDENCIES = \ + $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(am__DEPENDENCIES_1) +am_mca_coll_ucc_la_OBJECTS = $(am__objects_1) +mca_coll_ucc_la_OBJECTS = $(am_mca_coll_ucc_la_OBJECTS) +mca_coll_ucc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(mca_coll_ucc_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +@MCA_BUILD_ompi_coll_ucc_DSO_TRUE@am_mca_coll_ucc_la_rpath = -rpath \ +@MCA_BUILD_ompi_coll_ucc_DSO_TRUE@ $(mcacomponentdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/opal/include -I$(top_builddir)/ompi/include -I$(top_builddir)/oshmem/include -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen -I$(top_builddir)/ompi/mpiext/cuda/c +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libmca_coll_ucc_la_SOURCES) $(mca_coll_ucc_la_SOURCES) +DIST_SOURCES = $(libmca_coll_ucc_la_SOURCES) \ + $(mca_coll_ucc_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/config/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMCA_PARAM_SETS_DIR = @AMCA_PARAM_SETS_DIR@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BASH = @BASH@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAGS_WITHOUT_OPTFLAGS = @CFLAGS_WITHOUT_OPTFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CRAY_ALPSLLI_CFLAGS = @CRAY_ALPSLLI_CFLAGS@ +CRAY_ALPSLLI_LIBS = @CRAY_ALPSLLI_LIBS@ +CRAY_ALPSLLI_STATIC_LIBS = @CRAY_ALPSLLI_STATIC_LIBS@ +CRAY_ALPSUTIL_CFLAGS = @CRAY_ALPSUTIL_CFLAGS@ +CRAY_ALPSUTIL_LIBS = @CRAY_ALPSUTIL_LIBS@ +CRAY_ALPSUTIL_STATIC_LIBS = @CRAY_ALPSUTIL_STATIC_LIBS@ +CRAY_ALPS_CFLAGS = @CRAY_ALPS_CFLAGS@ +CRAY_ALPS_LIBS = @CRAY_ALPS_LIBS@ +CRAY_ALPS_STATIC_LIBS = @CRAY_ALPS_STATIC_LIBS@ +CRAY_PMI_CFLAGS = @CRAY_PMI_CFLAGS@ +CRAY_PMI_LIBS = @CRAY_PMI_LIBS@ +CRAY_PMI_STATIC_LIBS = @CRAY_PMI_STATIC_LIBS@ +CRAY_UDREG_CFLAGS = @CRAY_UDREG_CFLAGS@ +CRAY_UDREG_LIBS = @CRAY_UDREG_LIBS@ +CRAY_UGNI_CFLAGS = @CRAY_UGNI_CFLAGS@ +CRAY_UGNI_LIBS = @CRAY_UGNI_LIBS@ +CRAY_WLM_DETECT_CFLAGS = @CRAY_WLM_DETECT_CFLAGS@ +CRAY_WLM_DETECT_LIBS = @CRAY_WLM_DETECT_LIBS@ +CRAY_WLM_DETECT_STATIC_LIBS = @CRAY_WLM_DETECT_STATIC_LIBS@ +CRAY_XPMEM_CFLAGS = @CRAY_XPMEM_CFLAGS@ +CRAY_XPMEM_LIBS = @CRAY_XPMEM_LIBS@ +CRAY_XPMEM_STATIC_LIBS = @CRAY_XPMEM_STATIC_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXCPPFLAGS = @CXXCPPFLAGS@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUGGER_CFLAGS = @DEBUGGER_CFLAGS@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FC = @FC@ +FCFLAGS = @FCFLAGS@ +FCFLAGS_f = @FCFLAGS_f@ +FCFLAGS_f90 = @FCFLAGS_f90@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLUX_PMI_CFLAGS = @FLUX_PMI_CFLAGS@ +FLUX_PMI_LIBS = @FLUX_PMI_LIBS@ +GREP = @GREP@ +HWLOC_CFLAGS = @HWLOC_CFLAGS@ +HWLOC_CPPFLAGS = @HWLOC_CPPFLAGS@ +HWLOC_CUDA_LIBS = @HWLOC_CUDA_LIBS@ +HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@ +HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@ +HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@ +HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@ +HWLOC_GL_LIBS = @HWLOC_GL_LIBS@ +HWLOC_HAVE_LIBXML2 = @HWLOC_HAVE_LIBXML2@ +HWLOC_HAVE_NVML = @HWLOC_HAVE_NVML@ +HWLOC_HAVE_OPENCL = @HWLOC_HAVE_OPENCL@ +HWLOC_LDFLAGS = @HWLOC_LDFLAGS@ +HWLOC_LIBS = @HWLOC_LIBS@ +HWLOC_LIBS_PRIVATE = @HWLOC_LIBS_PRIVATE@ +HWLOC_LIBXML2_CFLAGS = @HWLOC_LIBXML2_CFLAGS@ +HWLOC_LIBXML2_LIBS = @HWLOC_LIBXML2_LIBS@ +HWLOC_MS_LIB = @HWLOC_MS_LIB@ +HWLOC_MS_LIB_ARCH = @HWLOC_MS_LIB_ARCH@ +HWLOC_NVML_LIBS = @HWLOC_NVML_LIBS@ +HWLOC_OPENCL_CFLAGS = @HWLOC_OPENCL_CFLAGS@ +HWLOC_OPENCL_LDFLAGS = @HWLOC_OPENCL_LDFLAGS@ +HWLOC_OPENCL_LIBS = @HWLOC_OPENCL_LIBS@ +HWLOC_PCIACCESS_CFLAGS = @HWLOC_PCIACCESS_CFLAGS@ +HWLOC_PCIACCESS_LIBS = @HWLOC_PCIACCESS_LIBS@ +HWLOC_PLUGINS_DIR = @HWLOC_PLUGINS_DIR@ +HWLOC_PLUGINS_PATH = @HWLOC_PLUGINS_PATH@ +HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@ +HWLOC_REQUIRES = @HWLOC_REQUIRES@ +HWLOC_VERSION = @HWLOC_VERSION@ +HWLOC_X11_CPPFLAGS = @HWLOC_X11_CPPFLAGS@ +HWLOC_X11_LIBS = @HWLOC_X11_LIBS@ +HWLOC_top_builddir = @HWLOC_top_builddir@ +HWLOC_top_srcdir = @HWLOC_top_srcdir@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JAR = @JAR@ +JAVAC = @JAVAC@ +JAVADOC = @JAVADOC@ +JAVAH = @JAVAH@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ +MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ +MCA_ompi_FRAMEWORKS_SUBDIRS = @MCA_ompi_FRAMEWORKS_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_ompi_FRAMEWORK_LIBS = @MCA_ompi_FRAMEWORK_LIBS@ +MCA_ompi_bml_ALL_COMPONENTS = @MCA_ompi_bml_ALL_COMPONENTS@ +MCA_ompi_bml_ALL_SUBDIRS = @MCA_ompi_bml_ALL_SUBDIRS@ +MCA_ompi_bml_DSO_COMPONENTS = @MCA_ompi_bml_DSO_COMPONENTS@ +MCA_ompi_bml_DSO_SUBDIRS = @MCA_ompi_bml_DSO_SUBDIRS@ +MCA_ompi_bml_STATIC_COMPONENTS = @MCA_ompi_bml_STATIC_COMPONENTS@ +MCA_ompi_bml_STATIC_LTLIBS = @MCA_ompi_bml_STATIC_LTLIBS@ +MCA_ompi_bml_STATIC_SUBDIRS = @MCA_ompi_bml_STATIC_SUBDIRS@ +MCA_ompi_coll_ALL_COMPONENTS = @MCA_ompi_coll_ALL_COMPONENTS@ +MCA_ompi_coll_ALL_SUBDIRS = @MCA_ompi_coll_ALL_SUBDIRS@ +MCA_ompi_coll_DSO_COMPONENTS = @MCA_ompi_coll_DSO_COMPONENTS@ +MCA_ompi_coll_DSO_SUBDIRS = @MCA_ompi_coll_DSO_SUBDIRS@ +MCA_ompi_coll_STATIC_COMPONENTS = @MCA_ompi_coll_STATIC_COMPONENTS@ +MCA_ompi_coll_STATIC_LTLIBS = @MCA_ompi_coll_STATIC_LTLIBS@ +MCA_ompi_coll_STATIC_SUBDIRS = @MCA_ompi_coll_STATIC_SUBDIRS@ +MCA_ompi_common_ALL_COMPONENTS = @MCA_ompi_common_ALL_COMPONENTS@ +MCA_ompi_common_ALL_SUBDIRS = @MCA_ompi_common_ALL_SUBDIRS@ +MCA_ompi_common_DSO_COMPONENTS = @MCA_ompi_common_DSO_COMPONENTS@ +MCA_ompi_common_DSO_SUBDIRS = @MCA_ompi_common_DSO_SUBDIRS@ +MCA_ompi_common_STATIC_COMPONENTS = @MCA_ompi_common_STATIC_COMPONENTS@ +MCA_ompi_common_STATIC_LTLIBS = @MCA_ompi_common_STATIC_LTLIBS@ +MCA_ompi_common_STATIC_SUBDIRS = @MCA_ompi_common_STATIC_SUBDIRS@ +MCA_ompi_crcp_ALL_COMPONENTS = @MCA_ompi_crcp_ALL_COMPONENTS@ +MCA_ompi_crcp_ALL_SUBDIRS = @MCA_ompi_crcp_ALL_SUBDIRS@ +MCA_ompi_crcp_DSO_COMPONENTS = @MCA_ompi_crcp_DSO_COMPONENTS@ +MCA_ompi_crcp_DSO_SUBDIRS = @MCA_ompi_crcp_DSO_SUBDIRS@ +MCA_ompi_crcp_STATIC_COMPONENTS = @MCA_ompi_crcp_STATIC_COMPONENTS@ +MCA_ompi_crcp_STATIC_LTLIBS = @MCA_ompi_crcp_STATIC_LTLIBS@ +MCA_ompi_crcp_STATIC_SUBDIRS = @MCA_ompi_crcp_STATIC_SUBDIRS@ +MCA_ompi_fbtl_ALL_COMPONENTS = @MCA_ompi_fbtl_ALL_COMPONENTS@ +MCA_ompi_fbtl_ALL_SUBDIRS = @MCA_ompi_fbtl_ALL_SUBDIRS@ +MCA_ompi_fbtl_DSO_COMPONENTS = @MCA_ompi_fbtl_DSO_COMPONENTS@ +MCA_ompi_fbtl_DSO_SUBDIRS = @MCA_ompi_fbtl_DSO_SUBDIRS@ +MCA_ompi_fbtl_STATIC_COMPONENTS = @MCA_ompi_fbtl_STATIC_COMPONENTS@ +MCA_ompi_fbtl_STATIC_LTLIBS = @MCA_ompi_fbtl_STATIC_LTLIBS@ +MCA_ompi_fbtl_STATIC_SUBDIRS = @MCA_ompi_fbtl_STATIC_SUBDIRS@ +MCA_ompi_fcoll_ALL_COMPONENTS = @MCA_ompi_fcoll_ALL_COMPONENTS@ +MCA_ompi_fcoll_ALL_SUBDIRS = @MCA_ompi_fcoll_ALL_SUBDIRS@ +MCA_ompi_fcoll_DSO_COMPONENTS = @MCA_ompi_fcoll_DSO_COMPONENTS@ +MCA_ompi_fcoll_DSO_SUBDIRS = @MCA_ompi_fcoll_DSO_SUBDIRS@ +MCA_ompi_fcoll_STATIC_COMPONENTS = @MCA_ompi_fcoll_STATIC_COMPONENTS@ +MCA_ompi_fcoll_STATIC_LTLIBS = @MCA_ompi_fcoll_STATIC_LTLIBS@ +MCA_ompi_fcoll_STATIC_SUBDIRS = @MCA_ompi_fcoll_STATIC_SUBDIRS@ +MCA_ompi_fs_ALL_COMPONENTS = @MCA_ompi_fs_ALL_COMPONENTS@ +MCA_ompi_fs_ALL_SUBDIRS = @MCA_ompi_fs_ALL_SUBDIRS@ +MCA_ompi_fs_DSO_COMPONENTS = @MCA_ompi_fs_DSO_COMPONENTS@ +MCA_ompi_fs_DSO_SUBDIRS = @MCA_ompi_fs_DSO_SUBDIRS@ +MCA_ompi_fs_STATIC_COMPONENTS = @MCA_ompi_fs_STATIC_COMPONENTS@ +MCA_ompi_fs_STATIC_LTLIBS = @MCA_ompi_fs_STATIC_LTLIBS@ +MCA_ompi_fs_STATIC_SUBDIRS = @MCA_ompi_fs_STATIC_SUBDIRS@ +MCA_ompi_hook_ALL_COMPONENTS = @MCA_ompi_hook_ALL_COMPONENTS@ +MCA_ompi_hook_ALL_SUBDIRS = @MCA_ompi_hook_ALL_SUBDIRS@ +MCA_ompi_hook_DSO_COMPONENTS = @MCA_ompi_hook_DSO_COMPONENTS@ +MCA_ompi_hook_DSO_SUBDIRS = @MCA_ompi_hook_DSO_SUBDIRS@ +MCA_ompi_hook_STATIC_COMPONENTS = @MCA_ompi_hook_STATIC_COMPONENTS@ +MCA_ompi_hook_STATIC_LTLIBS = @MCA_ompi_hook_STATIC_LTLIBS@ +MCA_ompi_hook_STATIC_SUBDIRS = @MCA_ompi_hook_STATIC_SUBDIRS@ +MCA_ompi_io_ALL_COMPONENTS = @MCA_ompi_io_ALL_COMPONENTS@ +MCA_ompi_io_ALL_SUBDIRS = @MCA_ompi_io_ALL_SUBDIRS@ +MCA_ompi_io_DSO_COMPONENTS = @MCA_ompi_io_DSO_COMPONENTS@ +MCA_ompi_io_DSO_SUBDIRS = @MCA_ompi_io_DSO_SUBDIRS@ +MCA_ompi_io_STATIC_COMPONENTS = @MCA_ompi_io_STATIC_COMPONENTS@ +MCA_ompi_io_STATIC_LTLIBS = @MCA_ompi_io_STATIC_LTLIBS@ +MCA_ompi_io_STATIC_SUBDIRS = @MCA_ompi_io_STATIC_SUBDIRS@ +MCA_ompi_mtl_ALL_COMPONENTS = @MCA_ompi_mtl_ALL_COMPONENTS@ +MCA_ompi_mtl_ALL_SUBDIRS = @MCA_ompi_mtl_ALL_SUBDIRS@ +MCA_ompi_mtl_DIRECT_CALL_HEADER = @MCA_ompi_mtl_DIRECT_CALL_HEADER@ +MCA_ompi_mtl_DSO_COMPONENTS = @MCA_ompi_mtl_DSO_COMPONENTS@ +MCA_ompi_mtl_DSO_SUBDIRS = @MCA_ompi_mtl_DSO_SUBDIRS@ +MCA_ompi_mtl_STATIC_COMPONENTS = @MCA_ompi_mtl_STATIC_COMPONENTS@ +MCA_ompi_mtl_STATIC_LTLIBS = @MCA_ompi_mtl_STATIC_LTLIBS@ +MCA_ompi_mtl_STATIC_SUBDIRS = @MCA_ompi_mtl_STATIC_SUBDIRS@ +MCA_ompi_op_ALL_COMPONENTS = @MCA_ompi_op_ALL_COMPONENTS@ +MCA_ompi_op_ALL_SUBDIRS = @MCA_ompi_op_ALL_SUBDIRS@ +MCA_ompi_op_DSO_COMPONENTS = @MCA_ompi_op_DSO_COMPONENTS@ +MCA_ompi_op_DSO_SUBDIRS = @MCA_ompi_op_DSO_SUBDIRS@ +MCA_ompi_op_STATIC_COMPONENTS = @MCA_ompi_op_STATIC_COMPONENTS@ +MCA_ompi_op_STATIC_LTLIBS = @MCA_ompi_op_STATIC_LTLIBS@ +MCA_ompi_op_STATIC_SUBDIRS = @MCA_ompi_op_STATIC_SUBDIRS@ +MCA_ompi_osc_ALL_COMPONENTS = @MCA_ompi_osc_ALL_COMPONENTS@ +MCA_ompi_osc_ALL_SUBDIRS = @MCA_ompi_osc_ALL_SUBDIRS@ +MCA_ompi_osc_DSO_COMPONENTS = @MCA_ompi_osc_DSO_COMPONENTS@ +MCA_ompi_osc_DSO_SUBDIRS = @MCA_ompi_osc_DSO_SUBDIRS@ +MCA_ompi_osc_STATIC_COMPONENTS = @MCA_ompi_osc_STATIC_COMPONENTS@ +MCA_ompi_osc_STATIC_LTLIBS = @MCA_ompi_osc_STATIC_LTLIBS@ +MCA_ompi_osc_STATIC_SUBDIRS = @MCA_ompi_osc_STATIC_SUBDIRS@ +MCA_ompi_pml_ALL_COMPONENTS = @MCA_ompi_pml_ALL_COMPONENTS@ +MCA_ompi_pml_ALL_SUBDIRS = @MCA_ompi_pml_ALL_SUBDIRS@ +MCA_ompi_pml_DIRECT_CALL_HEADER = @MCA_ompi_pml_DIRECT_CALL_HEADER@ +MCA_ompi_pml_DSO_COMPONENTS = @MCA_ompi_pml_DSO_COMPONENTS@ +MCA_ompi_pml_DSO_SUBDIRS = @MCA_ompi_pml_DSO_SUBDIRS@ +MCA_ompi_pml_STATIC_COMPONENTS = @MCA_ompi_pml_STATIC_COMPONENTS@ +MCA_ompi_pml_STATIC_LTLIBS = @MCA_ompi_pml_STATIC_LTLIBS@ +MCA_ompi_pml_STATIC_SUBDIRS = @MCA_ompi_pml_STATIC_SUBDIRS@ +MCA_ompi_rte_ALL_COMPONENTS = @MCA_ompi_rte_ALL_COMPONENTS@ +MCA_ompi_rte_ALL_SUBDIRS = @MCA_ompi_rte_ALL_SUBDIRS@ +MCA_ompi_rte_DSO_COMPONENTS = @MCA_ompi_rte_DSO_COMPONENTS@ +MCA_ompi_rte_DSO_SUBDIRS = @MCA_ompi_rte_DSO_SUBDIRS@ +MCA_ompi_rte_STATIC_COMPONENTS = @MCA_ompi_rte_STATIC_COMPONENTS@ +MCA_ompi_rte_STATIC_LTLIBS = @MCA_ompi_rte_STATIC_LTLIBS@ +MCA_ompi_rte_STATIC_SUBDIRS = @MCA_ompi_rte_STATIC_SUBDIRS@ +MCA_ompi_sharedfp_ALL_COMPONENTS = @MCA_ompi_sharedfp_ALL_COMPONENTS@ +MCA_ompi_sharedfp_ALL_SUBDIRS = @MCA_ompi_sharedfp_ALL_SUBDIRS@ +MCA_ompi_sharedfp_DSO_COMPONENTS = @MCA_ompi_sharedfp_DSO_COMPONENTS@ +MCA_ompi_sharedfp_DSO_SUBDIRS = @MCA_ompi_sharedfp_DSO_SUBDIRS@ +MCA_ompi_sharedfp_STATIC_COMPONENTS = @MCA_ompi_sharedfp_STATIC_COMPONENTS@ +MCA_ompi_sharedfp_STATIC_LTLIBS = @MCA_ompi_sharedfp_STATIC_LTLIBS@ +MCA_ompi_sharedfp_STATIC_SUBDIRS = @MCA_ompi_sharedfp_STATIC_SUBDIRS@ +MCA_ompi_topo_ALL_COMPONENTS = @MCA_ompi_topo_ALL_COMPONENTS@ +MCA_ompi_topo_ALL_SUBDIRS = @MCA_ompi_topo_ALL_SUBDIRS@ +MCA_ompi_topo_DSO_COMPONENTS = @MCA_ompi_topo_DSO_COMPONENTS@ +MCA_ompi_topo_DSO_SUBDIRS = @MCA_ompi_topo_DSO_SUBDIRS@ +MCA_ompi_topo_STATIC_COMPONENTS = @MCA_ompi_topo_STATIC_COMPONENTS@ +MCA_ompi_topo_STATIC_LTLIBS = @MCA_ompi_topo_STATIC_LTLIBS@ +MCA_ompi_topo_STATIC_SUBDIRS = @MCA_ompi_topo_STATIC_SUBDIRS@ +MCA_ompi_vprotocol_ALL_COMPONENTS = @MCA_ompi_vprotocol_ALL_COMPONENTS@ +MCA_ompi_vprotocol_ALL_SUBDIRS = @MCA_ompi_vprotocol_ALL_SUBDIRS@ +MCA_ompi_vprotocol_DSO_COMPONENTS = @MCA_ompi_vprotocol_DSO_COMPONENTS@ +MCA_ompi_vprotocol_DSO_SUBDIRS = @MCA_ompi_vprotocol_DSO_SUBDIRS@ +MCA_ompi_vprotocol_STATIC_COMPONENTS = @MCA_ompi_vprotocol_STATIC_COMPONENTS@ +MCA_ompi_vprotocol_STATIC_LTLIBS = @MCA_ompi_vprotocol_STATIC_LTLIBS@ +MCA_ompi_vprotocol_STATIC_SUBDIRS = @MCA_ompi_vprotocol_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORKS = @MCA_opal_FRAMEWORKS@ +MCA_opal_FRAMEWORKS_SUBDIRS = @MCA_opal_FRAMEWORKS_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORK_LIBS = @MCA_opal_FRAMEWORK_LIBS@ +MCA_opal_allocator_ALL_COMPONENTS = @MCA_opal_allocator_ALL_COMPONENTS@ +MCA_opal_allocator_ALL_SUBDIRS = @MCA_opal_allocator_ALL_SUBDIRS@ +MCA_opal_allocator_DSO_COMPONENTS = @MCA_opal_allocator_DSO_COMPONENTS@ +MCA_opal_allocator_DSO_SUBDIRS = @MCA_opal_allocator_DSO_SUBDIRS@ +MCA_opal_allocator_STATIC_COMPONENTS = @MCA_opal_allocator_STATIC_COMPONENTS@ +MCA_opal_allocator_STATIC_LTLIBS = @MCA_opal_allocator_STATIC_LTLIBS@ +MCA_opal_allocator_STATIC_SUBDIRS = @MCA_opal_allocator_STATIC_SUBDIRS@ +MCA_opal_backtrace_ALL_COMPONENTS = @MCA_opal_backtrace_ALL_COMPONENTS@ +MCA_opal_backtrace_ALL_SUBDIRS = @MCA_opal_backtrace_ALL_SUBDIRS@ +MCA_opal_backtrace_DSO_COMPONENTS = @MCA_opal_backtrace_DSO_COMPONENTS@ +MCA_opal_backtrace_DSO_SUBDIRS = @MCA_opal_backtrace_DSO_SUBDIRS@ +MCA_opal_backtrace_STATIC_COMPONENTS = @MCA_opal_backtrace_STATIC_COMPONENTS@ +MCA_opal_backtrace_STATIC_LTLIBS = @MCA_opal_backtrace_STATIC_LTLIBS@ +MCA_opal_backtrace_STATIC_SUBDIRS = @MCA_opal_backtrace_STATIC_SUBDIRS@ +MCA_opal_btl_ALL_COMPONENTS = @MCA_opal_btl_ALL_COMPONENTS@ +MCA_opal_btl_ALL_SUBDIRS = @MCA_opal_btl_ALL_SUBDIRS@ +MCA_opal_btl_DSO_COMPONENTS = @MCA_opal_btl_DSO_COMPONENTS@ +MCA_opal_btl_DSO_SUBDIRS = @MCA_opal_btl_DSO_SUBDIRS@ +MCA_opal_btl_STATIC_COMPONENTS = @MCA_opal_btl_STATIC_COMPONENTS@ +MCA_opal_btl_STATIC_LTLIBS = @MCA_opal_btl_STATIC_LTLIBS@ +MCA_opal_btl_STATIC_SUBDIRS = @MCA_opal_btl_STATIC_SUBDIRS@ +MCA_opal_common_ALL_COMPONENTS = @MCA_opal_common_ALL_COMPONENTS@ +MCA_opal_common_ALL_SUBDIRS = @MCA_opal_common_ALL_SUBDIRS@ +MCA_opal_common_DSO_COMPONENTS = @MCA_opal_common_DSO_COMPONENTS@ +MCA_opal_common_DSO_SUBDIRS = @MCA_opal_common_DSO_SUBDIRS@ +MCA_opal_common_STATIC_COMPONENTS = @MCA_opal_common_STATIC_COMPONENTS@ +MCA_opal_common_STATIC_LTLIBS = @MCA_opal_common_STATIC_LTLIBS@ +MCA_opal_common_STATIC_SUBDIRS = @MCA_opal_common_STATIC_SUBDIRS@ +MCA_opal_compress_ALL_COMPONENTS = @MCA_opal_compress_ALL_COMPONENTS@ +MCA_opal_compress_ALL_SUBDIRS = @MCA_opal_compress_ALL_SUBDIRS@ +MCA_opal_compress_DSO_COMPONENTS = @MCA_opal_compress_DSO_COMPONENTS@ +MCA_opal_compress_DSO_SUBDIRS = @MCA_opal_compress_DSO_SUBDIRS@ +MCA_opal_compress_STATIC_COMPONENTS = @MCA_opal_compress_STATIC_COMPONENTS@ +MCA_opal_compress_STATIC_LTLIBS = @MCA_opal_compress_STATIC_LTLIBS@ +MCA_opal_compress_STATIC_SUBDIRS = @MCA_opal_compress_STATIC_SUBDIRS@ +MCA_opal_crs_ALL_COMPONENTS = @MCA_opal_crs_ALL_COMPONENTS@ +MCA_opal_crs_ALL_SUBDIRS = @MCA_opal_crs_ALL_SUBDIRS@ +MCA_opal_crs_DSO_COMPONENTS = @MCA_opal_crs_DSO_COMPONENTS@ +MCA_opal_crs_DSO_SUBDIRS = @MCA_opal_crs_DSO_SUBDIRS@ +MCA_opal_crs_STATIC_COMPONENTS = @MCA_opal_crs_STATIC_COMPONENTS@ +MCA_opal_crs_STATIC_LTLIBS = @MCA_opal_crs_STATIC_LTLIBS@ +MCA_opal_crs_STATIC_SUBDIRS = @MCA_opal_crs_STATIC_SUBDIRS@ +MCA_opal_dl_ALL_COMPONENTS = @MCA_opal_dl_ALL_COMPONENTS@ +MCA_opal_dl_ALL_SUBDIRS = @MCA_opal_dl_ALL_SUBDIRS@ +MCA_opal_dl_DSO_COMPONENTS = @MCA_opal_dl_DSO_COMPONENTS@ +MCA_opal_dl_DSO_SUBDIRS = @MCA_opal_dl_DSO_SUBDIRS@ +MCA_opal_dl_STATIC_COMPONENTS = @MCA_opal_dl_STATIC_COMPONENTS@ +MCA_opal_dl_STATIC_LTLIBS = @MCA_opal_dl_STATIC_LTLIBS@ +MCA_opal_dl_STATIC_SUBDIRS = @MCA_opal_dl_STATIC_SUBDIRS@ +MCA_opal_event_ALL_COMPONENTS = @MCA_opal_event_ALL_COMPONENTS@ +MCA_opal_event_ALL_SUBDIRS = @MCA_opal_event_ALL_SUBDIRS@ +MCA_opal_event_DSO_COMPONENTS = @MCA_opal_event_DSO_COMPONENTS@ +MCA_opal_event_DSO_SUBDIRS = @MCA_opal_event_DSO_SUBDIRS@ +MCA_opal_event_STATIC_COMPONENTS = @MCA_opal_event_STATIC_COMPONENTS@ +MCA_opal_event_STATIC_LTLIBS = @MCA_opal_event_STATIC_LTLIBS@ +MCA_opal_event_STATIC_SUBDIRS = @MCA_opal_event_STATIC_SUBDIRS@ +MCA_opal_hwloc_ALL_COMPONENTS = @MCA_opal_hwloc_ALL_COMPONENTS@ +MCA_opal_hwloc_ALL_SUBDIRS = @MCA_opal_hwloc_ALL_SUBDIRS@ +MCA_opal_hwloc_DSO_COMPONENTS = @MCA_opal_hwloc_DSO_COMPONENTS@ +MCA_opal_hwloc_DSO_SUBDIRS = @MCA_opal_hwloc_DSO_SUBDIRS@ +MCA_opal_hwloc_STATIC_COMPONENTS = @MCA_opal_hwloc_STATIC_COMPONENTS@ +MCA_opal_hwloc_STATIC_LTLIBS = @MCA_opal_hwloc_STATIC_LTLIBS@ +MCA_opal_hwloc_STATIC_SUBDIRS = @MCA_opal_hwloc_STATIC_SUBDIRS@ +MCA_opal_if_ALL_COMPONENTS = @MCA_opal_if_ALL_COMPONENTS@ +MCA_opal_if_ALL_SUBDIRS = @MCA_opal_if_ALL_SUBDIRS@ +MCA_opal_if_DSO_COMPONENTS = @MCA_opal_if_DSO_COMPONENTS@ +MCA_opal_if_DSO_SUBDIRS = @MCA_opal_if_DSO_SUBDIRS@ +MCA_opal_if_STATIC_COMPONENTS = @MCA_opal_if_STATIC_COMPONENTS@ +MCA_opal_if_STATIC_LTLIBS = @MCA_opal_if_STATIC_LTLIBS@ +MCA_opal_if_STATIC_SUBDIRS = @MCA_opal_if_STATIC_SUBDIRS@ +MCA_opal_installdirs_ALL_COMPONENTS = @MCA_opal_installdirs_ALL_COMPONENTS@ +MCA_opal_installdirs_ALL_SUBDIRS = @MCA_opal_installdirs_ALL_SUBDIRS@ +MCA_opal_installdirs_DSO_COMPONENTS = @MCA_opal_installdirs_DSO_COMPONENTS@ +MCA_opal_installdirs_DSO_SUBDIRS = @MCA_opal_installdirs_DSO_SUBDIRS@ +MCA_opal_installdirs_STATIC_COMPONENTS = @MCA_opal_installdirs_STATIC_COMPONENTS@ +MCA_opal_installdirs_STATIC_LTLIBS = @MCA_opal_installdirs_STATIC_LTLIBS@ +MCA_opal_installdirs_STATIC_SUBDIRS = @MCA_opal_installdirs_STATIC_SUBDIRS@ +MCA_opal_memchecker_ALL_COMPONENTS = @MCA_opal_memchecker_ALL_COMPONENTS@ +MCA_opal_memchecker_ALL_SUBDIRS = @MCA_opal_memchecker_ALL_SUBDIRS@ +MCA_opal_memchecker_DSO_COMPONENTS = @MCA_opal_memchecker_DSO_COMPONENTS@ +MCA_opal_memchecker_DSO_SUBDIRS = @MCA_opal_memchecker_DSO_SUBDIRS@ +MCA_opal_memchecker_STATIC_COMPONENTS = @MCA_opal_memchecker_STATIC_COMPONENTS@ +MCA_opal_memchecker_STATIC_LTLIBS = @MCA_opal_memchecker_STATIC_LTLIBS@ +MCA_opal_memchecker_STATIC_SUBDIRS = @MCA_opal_memchecker_STATIC_SUBDIRS@ +MCA_opal_memcpy_ALL_COMPONENTS = @MCA_opal_memcpy_ALL_COMPONENTS@ +MCA_opal_memcpy_ALL_SUBDIRS = @MCA_opal_memcpy_ALL_SUBDIRS@ +MCA_opal_memcpy_DSO_COMPONENTS = @MCA_opal_memcpy_DSO_COMPONENTS@ +MCA_opal_memcpy_DSO_SUBDIRS = @MCA_opal_memcpy_DSO_SUBDIRS@ +MCA_opal_memcpy_STATIC_COMPONENTS = @MCA_opal_memcpy_STATIC_COMPONENTS@ +MCA_opal_memcpy_STATIC_LTLIBS = @MCA_opal_memcpy_STATIC_LTLIBS@ +MCA_opal_memcpy_STATIC_SUBDIRS = @MCA_opal_memcpy_STATIC_SUBDIRS@ +MCA_opal_memory_ALL_COMPONENTS = @MCA_opal_memory_ALL_COMPONENTS@ +MCA_opal_memory_ALL_SUBDIRS = @MCA_opal_memory_ALL_SUBDIRS@ +MCA_opal_memory_DSO_COMPONENTS = @MCA_opal_memory_DSO_COMPONENTS@ +MCA_opal_memory_DSO_SUBDIRS = @MCA_opal_memory_DSO_SUBDIRS@ +MCA_opal_memory_STATIC_COMPONENTS = @MCA_opal_memory_STATIC_COMPONENTS@ +MCA_opal_memory_STATIC_LTLIBS = @MCA_opal_memory_STATIC_LTLIBS@ +MCA_opal_memory_STATIC_SUBDIRS = @MCA_opal_memory_STATIC_SUBDIRS@ +MCA_opal_mpool_ALL_COMPONENTS = @MCA_opal_mpool_ALL_COMPONENTS@ +MCA_opal_mpool_ALL_SUBDIRS = @MCA_opal_mpool_ALL_SUBDIRS@ +MCA_opal_mpool_DSO_COMPONENTS = @MCA_opal_mpool_DSO_COMPONENTS@ +MCA_opal_mpool_DSO_SUBDIRS = @MCA_opal_mpool_DSO_SUBDIRS@ +MCA_opal_mpool_STATIC_COMPONENTS = @MCA_opal_mpool_STATIC_COMPONENTS@ +MCA_opal_mpool_STATIC_LTLIBS = @MCA_opal_mpool_STATIC_LTLIBS@ +MCA_opal_mpool_STATIC_SUBDIRS = @MCA_opal_mpool_STATIC_SUBDIRS@ +MCA_opal_patcher_ALL_COMPONENTS = @MCA_opal_patcher_ALL_COMPONENTS@ +MCA_opal_patcher_ALL_SUBDIRS = @MCA_opal_patcher_ALL_SUBDIRS@ +MCA_opal_patcher_DSO_COMPONENTS = @MCA_opal_patcher_DSO_COMPONENTS@ +MCA_opal_patcher_DSO_SUBDIRS = @MCA_opal_patcher_DSO_SUBDIRS@ +MCA_opal_patcher_STATIC_COMPONENTS = @MCA_opal_patcher_STATIC_COMPONENTS@ +MCA_opal_patcher_STATIC_LTLIBS = @MCA_opal_patcher_STATIC_LTLIBS@ +MCA_opal_patcher_STATIC_SUBDIRS = @MCA_opal_patcher_STATIC_SUBDIRS@ +MCA_opal_pmix_ALL_COMPONENTS = @MCA_opal_pmix_ALL_COMPONENTS@ +MCA_opal_pmix_ALL_SUBDIRS = @MCA_opal_pmix_ALL_SUBDIRS@ +MCA_opal_pmix_DSO_COMPONENTS = @MCA_opal_pmix_DSO_COMPONENTS@ +MCA_opal_pmix_DSO_SUBDIRS = @MCA_opal_pmix_DSO_SUBDIRS@ +MCA_opal_pmix_STATIC_COMPONENTS = @MCA_opal_pmix_STATIC_COMPONENTS@ +MCA_opal_pmix_STATIC_LTLIBS = @MCA_opal_pmix_STATIC_LTLIBS@ +MCA_opal_pmix_STATIC_SUBDIRS = @MCA_opal_pmix_STATIC_SUBDIRS@ +MCA_opal_pstat_ALL_COMPONENTS = @MCA_opal_pstat_ALL_COMPONENTS@ +MCA_opal_pstat_ALL_SUBDIRS = @MCA_opal_pstat_ALL_SUBDIRS@ +MCA_opal_pstat_DSO_COMPONENTS = @MCA_opal_pstat_DSO_COMPONENTS@ +MCA_opal_pstat_DSO_SUBDIRS = @MCA_opal_pstat_DSO_SUBDIRS@ +MCA_opal_pstat_STATIC_COMPONENTS = @MCA_opal_pstat_STATIC_COMPONENTS@ +MCA_opal_pstat_STATIC_LTLIBS = @MCA_opal_pstat_STATIC_LTLIBS@ +MCA_opal_pstat_STATIC_SUBDIRS = @MCA_opal_pstat_STATIC_SUBDIRS@ +MCA_opal_rcache_ALL_COMPONENTS = @MCA_opal_rcache_ALL_COMPONENTS@ +MCA_opal_rcache_ALL_SUBDIRS = @MCA_opal_rcache_ALL_SUBDIRS@ +MCA_opal_rcache_DSO_COMPONENTS = @MCA_opal_rcache_DSO_COMPONENTS@ +MCA_opal_rcache_DSO_SUBDIRS = @MCA_opal_rcache_DSO_SUBDIRS@ +MCA_opal_rcache_STATIC_COMPONENTS = @MCA_opal_rcache_STATIC_COMPONENTS@ +MCA_opal_rcache_STATIC_LTLIBS = @MCA_opal_rcache_STATIC_LTLIBS@ +MCA_opal_rcache_STATIC_SUBDIRS = @MCA_opal_rcache_STATIC_SUBDIRS@ +MCA_opal_reachable_ALL_COMPONENTS = @MCA_opal_reachable_ALL_COMPONENTS@ +MCA_opal_reachable_ALL_SUBDIRS = @MCA_opal_reachable_ALL_SUBDIRS@ +MCA_opal_reachable_DSO_COMPONENTS = @MCA_opal_reachable_DSO_COMPONENTS@ +MCA_opal_reachable_DSO_SUBDIRS = @MCA_opal_reachable_DSO_SUBDIRS@ +MCA_opal_reachable_STATIC_COMPONENTS = @MCA_opal_reachable_STATIC_COMPONENTS@ +MCA_opal_reachable_STATIC_LTLIBS = @MCA_opal_reachable_STATIC_LTLIBS@ +MCA_opal_reachable_STATIC_SUBDIRS = @MCA_opal_reachable_STATIC_SUBDIRS@ +MCA_opal_shmem_ALL_COMPONENTS = @MCA_opal_shmem_ALL_COMPONENTS@ +MCA_opal_shmem_ALL_SUBDIRS = @MCA_opal_shmem_ALL_SUBDIRS@ +MCA_opal_shmem_DSO_COMPONENTS = @MCA_opal_shmem_DSO_COMPONENTS@ +MCA_opal_shmem_DSO_SUBDIRS = @MCA_opal_shmem_DSO_SUBDIRS@ +MCA_opal_shmem_STATIC_COMPONENTS = @MCA_opal_shmem_STATIC_COMPONENTS@ +MCA_opal_shmem_STATIC_LTLIBS = @MCA_opal_shmem_STATIC_LTLIBS@ +MCA_opal_shmem_STATIC_SUBDIRS = @MCA_opal_shmem_STATIC_SUBDIRS@ +MCA_opal_timer_ALL_COMPONENTS = @MCA_opal_timer_ALL_COMPONENTS@ +MCA_opal_timer_ALL_SUBDIRS = @MCA_opal_timer_ALL_SUBDIRS@ +MCA_opal_timer_DSO_COMPONENTS = @MCA_opal_timer_DSO_COMPONENTS@ +MCA_opal_timer_DSO_SUBDIRS = @MCA_opal_timer_DSO_SUBDIRS@ +MCA_opal_timer_STATIC_COMPONENTS = @MCA_opal_timer_STATIC_COMPONENTS@ +MCA_opal_timer_STATIC_LTLIBS = @MCA_opal_timer_STATIC_LTLIBS@ +MCA_opal_timer_STATIC_SUBDIRS = @MCA_opal_timer_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORKS = @MCA_orte_FRAMEWORKS@ +MCA_orte_FRAMEWORKS_SUBDIRS = @MCA_orte_FRAMEWORKS_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORK_LIBS = @MCA_orte_FRAMEWORK_LIBS@ +MCA_orte_common_ALL_COMPONENTS = @MCA_orte_common_ALL_COMPONENTS@ +MCA_orte_common_ALL_SUBDIRS = @MCA_orte_common_ALL_SUBDIRS@ +MCA_orte_common_DSO_COMPONENTS = @MCA_orte_common_DSO_COMPONENTS@ +MCA_orte_common_DSO_SUBDIRS = @MCA_orte_common_DSO_SUBDIRS@ +MCA_orte_common_STATIC_COMPONENTS = @MCA_orte_common_STATIC_COMPONENTS@ +MCA_orte_common_STATIC_LTLIBS = @MCA_orte_common_STATIC_LTLIBS@ +MCA_orte_common_STATIC_SUBDIRS = @MCA_orte_common_STATIC_SUBDIRS@ +MCA_orte_errmgr_ALL_COMPONENTS = @MCA_orte_errmgr_ALL_COMPONENTS@ +MCA_orte_errmgr_ALL_SUBDIRS = @MCA_orte_errmgr_ALL_SUBDIRS@ +MCA_orte_errmgr_DSO_COMPONENTS = @MCA_orte_errmgr_DSO_COMPONENTS@ +MCA_orte_errmgr_DSO_SUBDIRS = @MCA_orte_errmgr_DSO_SUBDIRS@ +MCA_orte_errmgr_STATIC_COMPONENTS = @MCA_orte_errmgr_STATIC_COMPONENTS@ +MCA_orte_errmgr_STATIC_LTLIBS = @MCA_orte_errmgr_STATIC_LTLIBS@ +MCA_orte_errmgr_STATIC_SUBDIRS = @MCA_orte_errmgr_STATIC_SUBDIRS@ +MCA_orte_ess_ALL_COMPONENTS = @MCA_orte_ess_ALL_COMPONENTS@ +MCA_orte_ess_ALL_SUBDIRS = @MCA_orte_ess_ALL_SUBDIRS@ +MCA_orte_ess_DSO_COMPONENTS = @MCA_orte_ess_DSO_COMPONENTS@ +MCA_orte_ess_DSO_SUBDIRS = @MCA_orte_ess_DSO_SUBDIRS@ +MCA_orte_ess_STATIC_COMPONENTS = @MCA_orte_ess_STATIC_COMPONENTS@ +MCA_orte_ess_STATIC_LTLIBS = @MCA_orte_ess_STATIC_LTLIBS@ +MCA_orte_ess_STATIC_SUBDIRS = @MCA_orte_ess_STATIC_SUBDIRS@ +MCA_orte_filem_ALL_COMPONENTS = @MCA_orte_filem_ALL_COMPONENTS@ +MCA_orte_filem_ALL_SUBDIRS = @MCA_orte_filem_ALL_SUBDIRS@ +MCA_orte_filem_DSO_COMPONENTS = @MCA_orte_filem_DSO_COMPONENTS@ +MCA_orte_filem_DSO_SUBDIRS = @MCA_orte_filem_DSO_SUBDIRS@ +MCA_orte_filem_STATIC_COMPONENTS = @MCA_orte_filem_STATIC_COMPONENTS@ +MCA_orte_filem_STATIC_LTLIBS = @MCA_orte_filem_STATIC_LTLIBS@ +MCA_orte_filem_STATIC_SUBDIRS = @MCA_orte_filem_STATIC_SUBDIRS@ +MCA_orte_grpcomm_ALL_COMPONENTS = @MCA_orte_grpcomm_ALL_COMPONENTS@ +MCA_orte_grpcomm_ALL_SUBDIRS = @MCA_orte_grpcomm_ALL_SUBDIRS@ +MCA_orte_grpcomm_DSO_COMPONENTS = @MCA_orte_grpcomm_DSO_COMPONENTS@ +MCA_orte_grpcomm_DSO_SUBDIRS = @MCA_orte_grpcomm_DSO_SUBDIRS@ +MCA_orte_grpcomm_STATIC_COMPONENTS = @MCA_orte_grpcomm_STATIC_COMPONENTS@ +MCA_orte_grpcomm_STATIC_LTLIBS = @MCA_orte_grpcomm_STATIC_LTLIBS@ +MCA_orte_grpcomm_STATIC_SUBDIRS = @MCA_orte_grpcomm_STATIC_SUBDIRS@ +MCA_orte_iof_ALL_COMPONENTS = @MCA_orte_iof_ALL_COMPONENTS@ +MCA_orte_iof_ALL_SUBDIRS = @MCA_orte_iof_ALL_SUBDIRS@ +MCA_orte_iof_DSO_COMPONENTS = @MCA_orte_iof_DSO_COMPONENTS@ +MCA_orte_iof_DSO_SUBDIRS = @MCA_orte_iof_DSO_SUBDIRS@ +MCA_orte_iof_STATIC_COMPONENTS = @MCA_orte_iof_STATIC_COMPONENTS@ +MCA_orte_iof_STATIC_LTLIBS = @MCA_orte_iof_STATIC_LTLIBS@ +MCA_orte_iof_STATIC_SUBDIRS = @MCA_orte_iof_STATIC_SUBDIRS@ +MCA_orte_odls_ALL_COMPONENTS = @MCA_orte_odls_ALL_COMPONENTS@ +MCA_orte_odls_ALL_SUBDIRS = @MCA_orte_odls_ALL_SUBDIRS@ +MCA_orte_odls_DSO_COMPONENTS = @MCA_orte_odls_DSO_COMPONENTS@ +MCA_orte_odls_DSO_SUBDIRS = @MCA_orte_odls_DSO_SUBDIRS@ +MCA_orte_odls_STATIC_COMPONENTS = @MCA_orte_odls_STATIC_COMPONENTS@ +MCA_orte_odls_STATIC_LTLIBS = @MCA_orte_odls_STATIC_LTLIBS@ +MCA_orte_odls_STATIC_SUBDIRS = @MCA_orte_odls_STATIC_SUBDIRS@ +MCA_orte_oob_ALL_COMPONENTS = @MCA_orte_oob_ALL_COMPONENTS@ +MCA_orte_oob_ALL_SUBDIRS = @MCA_orte_oob_ALL_SUBDIRS@ +MCA_orte_oob_DSO_COMPONENTS = @MCA_orte_oob_DSO_COMPONENTS@ +MCA_orte_oob_DSO_SUBDIRS = @MCA_orte_oob_DSO_SUBDIRS@ +MCA_orte_oob_STATIC_COMPONENTS = @MCA_orte_oob_STATIC_COMPONENTS@ +MCA_orte_oob_STATIC_LTLIBS = @MCA_orte_oob_STATIC_LTLIBS@ +MCA_orte_oob_STATIC_SUBDIRS = @MCA_orte_oob_STATIC_SUBDIRS@ +MCA_orte_plm_ALL_COMPONENTS = @MCA_orte_plm_ALL_COMPONENTS@ +MCA_orte_plm_ALL_SUBDIRS = @MCA_orte_plm_ALL_SUBDIRS@ +MCA_orte_plm_DSO_COMPONENTS = @MCA_orte_plm_DSO_COMPONENTS@ +MCA_orte_plm_DSO_SUBDIRS = @MCA_orte_plm_DSO_SUBDIRS@ +MCA_orte_plm_STATIC_COMPONENTS = @MCA_orte_plm_STATIC_COMPONENTS@ +MCA_orte_plm_STATIC_LTLIBS = @MCA_orte_plm_STATIC_LTLIBS@ +MCA_orte_plm_STATIC_SUBDIRS = @MCA_orte_plm_STATIC_SUBDIRS@ +MCA_orte_ras_ALL_COMPONENTS = @MCA_orte_ras_ALL_COMPONENTS@ +MCA_orte_ras_ALL_SUBDIRS = @MCA_orte_ras_ALL_SUBDIRS@ +MCA_orte_ras_DSO_COMPONENTS = @MCA_orte_ras_DSO_COMPONENTS@ +MCA_orte_ras_DSO_SUBDIRS = @MCA_orte_ras_DSO_SUBDIRS@ +MCA_orte_ras_STATIC_COMPONENTS = @MCA_orte_ras_STATIC_COMPONENTS@ +MCA_orte_ras_STATIC_LTLIBS = @MCA_orte_ras_STATIC_LTLIBS@ +MCA_orte_ras_STATIC_SUBDIRS = @MCA_orte_ras_STATIC_SUBDIRS@ +MCA_orte_regx_ALL_COMPONENTS = @MCA_orte_regx_ALL_COMPONENTS@ +MCA_orte_regx_ALL_SUBDIRS = @MCA_orte_regx_ALL_SUBDIRS@ +MCA_orte_regx_DSO_COMPONENTS = @MCA_orte_regx_DSO_COMPONENTS@ +MCA_orte_regx_DSO_SUBDIRS = @MCA_orte_regx_DSO_SUBDIRS@ +MCA_orte_regx_STATIC_COMPONENTS = @MCA_orte_regx_STATIC_COMPONENTS@ +MCA_orte_regx_STATIC_LTLIBS = @MCA_orte_regx_STATIC_LTLIBS@ +MCA_orte_regx_STATIC_SUBDIRS = @MCA_orte_regx_STATIC_SUBDIRS@ +MCA_orte_rmaps_ALL_COMPONENTS = @MCA_orte_rmaps_ALL_COMPONENTS@ +MCA_orte_rmaps_ALL_SUBDIRS = @MCA_orte_rmaps_ALL_SUBDIRS@ +MCA_orte_rmaps_DSO_COMPONENTS = @MCA_orte_rmaps_DSO_COMPONENTS@ +MCA_orte_rmaps_DSO_SUBDIRS = @MCA_orte_rmaps_DSO_SUBDIRS@ +MCA_orte_rmaps_STATIC_COMPONENTS = @MCA_orte_rmaps_STATIC_COMPONENTS@ +MCA_orte_rmaps_STATIC_LTLIBS = @MCA_orte_rmaps_STATIC_LTLIBS@ +MCA_orte_rmaps_STATIC_SUBDIRS = @MCA_orte_rmaps_STATIC_SUBDIRS@ +MCA_orte_rml_ALL_COMPONENTS = @MCA_orte_rml_ALL_COMPONENTS@ +MCA_orte_rml_ALL_SUBDIRS = @MCA_orte_rml_ALL_SUBDIRS@ +MCA_orte_rml_DSO_COMPONENTS = @MCA_orte_rml_DSO_COMPONENTS@ +MCA_orte_rml_DSO_SUBDIRS = @MCA_orte_rml_DSO_SUBDIRS@ +MCA_orte_rml_STATIC_COMPONENTS = @MCA_orte_rml_STATIC_COMPONENTS@ +MCA_orte_rml_STATIC_LTLIBS = @MCA_orte_rml_STATIC_LTLIBS@ +MCA_orte_rml_STATIC_SUBDIRS = @MCA_orte_rml_STATIC_SUBDIRS@ +MCA_orte_routed_ALL_COMPONENTS = @MCA_orte_routed_ALL_COMPONENTS@ +MCA_orte_routed_ALL_SUBDIRS = @MCA_orte_routed_ALL_SUBDIRS@ +MCA_orte_routed_DSO_COMPONENTS = @MCA_orte_routed_DSO_COMPONENTS@ +MCA_orte_routed_DSO_SUBDIRS = @MCA_orte_routed_DSO_SUBDIRS@ +MCA_orte_routed_STATIC_COMPONENTS = @MCA_orte_routed_STATIC_COMPONENTS@ +MCA_orte_routed_STATIC_LTLIBS = @MCA_orte_routed_STATIC_LTLIBS@ +MCA_orte_routed_STATIC_SUBDIRS = @MCA_orte_routed_STATIC_SUBDIRS@ +MCA_orte_rtc_ALL_COMPONENTS = @MCA_orte_rtc_ALL_COMPONENTS@ +MCA_orte_rtc_ALL_SUBDIRS = @MCA_orte_rtc_ALL_SUBDIRS@ +MCA_orte_rtc_DSO_COMPONENTS = @MCA_orte_rtc_DSO_COMPONENTS@ +MCA_orte_rtc_DSO_SUBDIRS = @MCA_orte_rtc_DSO_SUBDIRS@ +MCA_orte_rtc_STATIC_COMPONENTS = @MCA_orte_rtc_STATIC_COMPONENTS@ +MCA_orte_rtc_STATIC_LTLIBS = @MCA_orte_rtc_STATIC_LTLIBS@ +MCA_orte_rtc_STATIC_SUBDIRS = @MCA_orte_rtc_STATIC_SUBDIRS@ +MCA_orte_schizo_ALL_COMPONENTS = @MCA_orte_schizo_ALL_COMPONENTS@ +MCA_orte_schizo_ALL_SUBDIRS = @MCA_orte_schizo_ALL_SUBDIRS@ +MCA_orte_schizo_DSO_COMPONENTS = @MCA_orte_schizo_DSO_COMPONENTS@ +MCA_orte_schizo_DSO_SUBDIRS = @MCA_orte_schizo_DSO_SUBDIRS@ +MCA_orte_schizo_STATIC_COMPONENTS = @MCA_orte_schizo_STATIC_COMPONENTS@ +MCA_orte_schizo_STATIC_LTLIBS = @MCA_orte_schizo_STATIC_LTLIBS@ +MCA_orte_schizo_STATIC_SUBDIRS = @MCA_orte_schizo_STATIC_SUBDIRS@ +MCA_orte_snapc_ALL_COMPONENTS = @MCA_orte_snapc_ALL_COMPONENTS@ +MCA_orte_snapc_ALL_SUBDIRS = @MCA_orte_snapc_ALL_SUBDIRS@ +MCA_orte_snapc_DSO_COMPONENTS = @MCA_orte_snapc_DSO_COMPONENTS@ +MCA_orte_snapc_DSO_SUBDIRS = @MCA_orte_snapc_DSO_SUBDIRS@ +MCA_orte_snapc_STATIC_COMPONENTS = @MCA_orte_snapc_STATIC_COMPONENTS@ +MCA_orte_snapc_STATIC_LTLIBS = @MCA_orte_snapc_STATIC_LTLIBS@ +MCA_orte_snapc_STATIC_SUBDIRS = @MCA_orte_snapc_STATIC_SUBDIRS@ +MCA_orte_sstore_ALL_COMPONENTS = @MCA_orte_sstore_ALL_COMPONENTS@ +MCA_orte_sstore_ALL_SUBDIRS = @MCA_orte_sstore_ALL_SUBDIRS@ +MCA_orte_sstore_DSO_COMPONENTS = @MCA_orte_sstore_DSO_COMPONENTS@ +MCA_orte_sstore_DSO_SUBDIRS = @MCA_orte_sstore_DSO_SUBDIRS@ +MCA_orte_sstore_STATIC_COMPONENTS = @MCA_orte_sstore_STATIC_COMPONENTS@ +MCA_orte_sstore_STATIC_LTLIBS = @MCA_orte_sstore_STATIC_LTLIBS@ +MCA_orte_sstore_STATIC_SUBDIRS = @MCA_orte_sstore_STATIC_SUBDIRS@ +MCA_orte_state_ALL_COMPONENTS = @MCA_orte_state_ALL_COMPONENTS@ +MCA_orte_state_ALL_SUBDIRS = @MCA_orte_state_ALL_SUBDIRS@ +MCA_orte_state_DSO_COMPONENTS = @MCA_orte_state_DSO_COMPONENTS@ +MCA_orte_state_DSO_SUBDIRS = @MCA_orte_state_DSO_SUBDIRS@ +MCA_orte_state_STATIC_COMPONENTS = @MCA_orte_state_STATIC_COMPONENTS@ +MCA_orte_state_STATIC_LTLIBS = @MCA_orte_state_STATIC_LTLIBS@ +MCA_orte_state_STATIC_SUBDIRS = @MCA_orte_state_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORKS = @MCA_oshmem_FRAMEWORKS@ +MCA_oshmem_FRAMEWORKS_SUBDIRS = @MCA_oshmem_FRAMEWORKS_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORK_LIBS = @MCA_oshmem_FRAMEWORK_LIBS@ +MCA_oshmem_atomic_ALL_COMPONENTS = @MCA_oshmem_atomic_ALL_COMPONENTS@ +MCA_oshmem_atomic_ALL_SUBDIRS = @MCA_oshmem_atomic_ALL_SUBDIRS@ +MCA_oshmem_atomic_DSO_COMPONENTS = @MCA_oshmem_atomic_DSO_COMPONENTS@ +MCA_oshmem_atomic_DSO_SUBDIRS = @MCA_oshmem_atomic_DSO_SUBDIRS@ +MCA_oshmem_atomic_STATIC_COMPONENTS = @MCA_oshmem_atomic_STATIC_COMPONENTS@ +MCA_oshmem_atomic_STATIC_LTLIBS = @MCA_oshmem_atomic_STATIC_LTLIBS@ +MCA_oshmem_atomic_STATIC_SUBDIRS = @MCA_oshmem_atomic_STATIC_SUBDIRS@ +MCA_oshmem_memheap_ALL_COMPONENTS = @MCA_oshmem_memheap_ALL_COMPONENTS@ +MCA_oshmem_memheap_ALL_SUBDIRS = @MCA_oshmem_memheap_ALL_SUBDIRS@ +MCA_oshmem_memheap_DIRECT_CALL_HEADER = @MCA_oshmem_memheap_DIRECT_CALL_HEADER@ +MCA_oshmem_memheap_DSO_COMPONENTS = @MCA_oshmem_memheap_DSO_COMPONENTS@ +MCA_oshmem_memheap_DSO_SUBDIRS = @MCA_oshmem_memheap_DSO_SUBDIRS@ +MCA_oshmem_memheap_STATIC_COMPONENTS = @MCA_oshmem_memheap_STATIC_COMPONENTS@ +MCA_oshmem_memheap_STATIC_LTLIBS = @MCA_oshmem_memheap_STATIC_LTLIBS@ +MCA_oshmem_memheap_STATIC_SUBDIRS = @MCA_oshmem_memheap_STATIC_SUBDIRS@ +MCA_oshmem_scoll_ALL_COMPONENTS = @MCA_oshmem_scoll_ALL_COMPONENTS@ +MCA_oshmem_scoll_ALL_SUBDIRS = @MCA_oshmem_scoll_ALL_SUBDIRS@ +MCA_oshmem_scoll_DSO_COMPONENTS = @MCA_oshmem_scoll_DSO_COMPONENTS@ +MCA_oshmem_scoll_DSO_SUBDIRS = @MCA_oshmem_scoll_DSO_SUBDIRS@ +MCA_oshmem_scoll_STATIC_COMPONENTS = @MCA_oshmem_scoll_STATIC_COMPONENTS@ +MCA_oshmem_scoll_STATIC_LTLIBS = @MCA_oshmem_scoll_STATIC_LTLIBS@ +MCA_oshmem_scoll_STATIC_SUBDIRS = @MCA_oshmem_scoll_STATIC_SUBDIRS@ +MCA_oshmem_spml_ALL_COMPONENTS = @MCA_oshmem_spml_ALL_COMPONENTS@ +MCA_oshmem_spml_ALL_SUBDIRS = @MCA_oshmem_spml_ALL_SUBDIRS@ +MCA_oshmem_spml_DIRECT_CALL_HEADER = @MCA_oshmem_spml_DIRECT_CALL_HEADER@ +MCA_oshmem_spml_DSO_COMPONENTS = @MCA_oshmem_spml_DSO_COMPONENTS@ +MCA_oshmem_spml_DSO_SUBDIRS = @MCA_oshmem_spml_DSO_SUBDIRS@ +MCA_oshmem_spml_STATIC_COMPONENTS = @MCA_oshmem_spml_STATIC_COMPONENTS@ +MCA_oshmem_spml_STATIC_LTLIBS = @MCA_oshmem_spml_STATIC_LTLIBS@ +MCA_oshmem_spml_STATIC_SUBDIRS = @MCA_oshmem_spml_STATIC_SUBDIRS@ +MCA_oshmem_sshmem_ALL_COMPONENTS = @MCA_oshmem_sshmem_ALL_COMPONENTS@ +MCA_oshmem_sshmem_ALL_SUBDIRS = @MCA_oshmem_sshmem_ALL_SUBDIRS@ +MCA_oshmem_sshmem_DSO_COMPONENTS = @MCA_oshmem_sshmem_DSO_COMPONENTS@ +MCA_oshmem_sshmem_DSO_SUBDIRS = @MCA_oshmem_sshmem_DSO_SUBDIRS@ +MCA_oshmem_sshmem_STATIC_COMPONENTS = @MCA_oshmem_sshmem_STATIC_COMPONENTS@ +MCA_oshmem_sshmem_STATIC_LTLIBS = @MCA_oshmem_sshmem_STATIC_LTLIBS@ +MCA_oshmem_sshmem_STATIC_SUBDIRS = @MCA_oshmem_sshmem_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +MPIR_UNWIND_CFLAGS = @MPIR_UNWIND_CFLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPI_ALIGNMENT_FORTRAN_CHARACTER = @OMPI_ALIGNMENT_FORTRAN_CHARACTER@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX16 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX16@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX32 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX32@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX4 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX4@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX8 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX8@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION@ +OMPI_ALIGNMENT_FORTRAN_INTEGER = @OMPI_ALIGNMENT_FORTRAN_INTEGER@ +OMPI_ALIGNMENT_FORTRAN_INTEGER1 = @OMPI_ALIGNMENT_FORTRAN_INTEGER1@ +OMPI_ALIGNMENT_FORTRAN_INTEGER16 = @OMPI_ALIGNMENT_FORTRAN_INTEGER16@ +OMPI_ALIGNMENT_FORTRAN_INTEGER2 = @OMPI_ALIGNMENT_FORTRAN_INTEGER2@ +OMPI_ALIGNMENT_FORTRAN_INTEGER4 = @OMPI_ALIGNMENT_FORTRAN_INTEGER4@ +OMPI_ALIGNMENT_FORTRAN_INTEGER8 = @OMPI_ALIGNMENT_FORTRAN_INTEGER8@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL = @OMPI_ALIGNMENT_FORTRAN_LOGICAL@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL1 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL1@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL2 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL2@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL4 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL4@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL8 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL8@ +OMPI_ALIGNMENT_FORTRAN_REAL = @OMPI_ALIGNMENT_FORTRAN_REAL@ +OMPI_ALIGNMENT_FORTRAN_REAL16 = @OMPI_ALIGNMENT_FORTRAN_REAL16@ +OMPI_ALIGNMENT_FORTRAN_REAL2 = @OMPI_ALIGNMENT_FORTRAN_REAL2@ +OMPI_ALIGNMENT_FORTRAN_REAL4 = @OMPI_ALIGNMENT_FORTRAN_REAL4@ +OMPI_ALIGNMENT_FORTRAN_REAL8 = @OMPI_ALIGNMENT_FORTRAN_REAL8@ +OMPI_CONTRIB_DIST_SUBDIRS = @OMPI_CONTRIB_DIST_SUBDIRS@ +OMPI_CONTRIB_SUBDIRS = @OMPI_CONTRIB_SUBDIRS@ +OMPI_CXX_ABSOLUTE = @OMPI_CXX_ABSOLUTE@ +OMPI_ENABLE_GREQUEST_EXTENSIONS = @OMPI_ENABLE_GREQUEST_EXTENSIONS@ +OMPI_ENABLE_MPI1_COMPAT = @OMPI_ENABLE_MPI1_COMPAT@ +OMPI_F08_SUFFIX = @OMPI_F08_SUFFIX@ +OMPI_FC = @OMPI_FC@ +OMPI_FC_ABSOLUTE = @OMPI_FC_ABSOLUTE@ +OMPI_FC_MODULE_FLAG = @OMPI_FC_MODULE_FLAG@ +OMPI_FORTRAN_BUILD_SIZEOF = @OMPI_FORTRAN_BUILD_SIZEOF@ +OMPI_FORTRAN_CAPS = @OMPI_FORTRAN_CAPS@ +OMPI_FORTRAN_CKINDS = @OMPI_FORTRAN_CKINDS@ +OMPI_FORTRAN_DOUBLE_UNDERSCORE = @OMPI_FORTRAN_DOUBLE_UNDERSCORE@ +OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS = @OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS@ +OMPI_FORTRAN_F08_PREDECL = @OMPI_FORTRAN_F08_PREDECL@ +OMPI_FORTRAN_F08_TYPE = @OMPI_FORTRAN_F08_TYPE@ +OMPI_FORTRAN_HAVE_ABSTRACT = @OMPI_FORTRAN_HAVE_ABSTRACT@ +OMPI_FORTRAN_HAVE_ASYNCHRONOUS = @OMPI_FORTRAN_HAVE_ASYNCHRONOUS@ +OMPI_FORTRAN_HAVE_BIND_C = @OMPI_FORTRAN_HAVE_BIND_C@ +OMPI_FORTRAN_HAVE_C_FUNLOC = @OMPI_FORTRAN_HAVE_C_FUNLOC@ +OMPI_FORTRAN_HAVE_INTERFACE = @OMPI_FORTRAN_HAVE_INTERFACE@ +OMPI_FORTRAN_HAVE_ISO_C_BINDING = @OMPI_FORTRAN_HAVE_ISO_C_BINDING@ +OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV = @OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV@ +OMPI_FORTRAN_HAVE_PRIVATE = @OMPI_FORTRAN_HAVE_PRIVATE@ +OMPI_FORTRAN_HAVE_PROCEDURE = @OMPI_FORTRAN_HAVE_PROCEDURE@ +OMPI_FORTRAN_HAVE_STORAGE_SIZE = @OMPI_FORTRAN_HAVE_STORAGE_SIZE@ +OMPI_FORTRAN_HAVE_USE_ONLY = @OMPI_FORTRAN_HAVE_USE_ONLY@ +OMPI_FORTRAN_IGNORE_TKR_PREDECL = @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ +OMPI_FORTRAN_IGNORE_TKR_TYPE = @OMPI_FORTRAN_IGNORE_TKR_TYPE@ +OMPI_FORTRAN_IKINDS = @OMPI_FORTRAN_IKINDS@ +OMPI_FORTRAN_MAX_ARRAY_RANK = @OMPI_FORTRAN_MAX_ARRAY_RANK@ +OMPI_FORTRAN_NEED_WRAPPER_ROUTINES = @OMPI_FORTRAN_NEED_WRAPPER_ROUTINES@ +OMPI_FORTRAN_PLAIN = @OMPI_FORTRAN_PLAIN@ +OMPI_FORTRAN_RKINDS = @OMPI_FORTRAN_RKINDS@ +OMPI_FORTRAN_SINGLE_UNDERSCORE = @OMPI_FORTRAN_SINGLE_UNDERSCORE@ +OMPI_FORTRAN_STATUS_SIZE = @OMPI_FORTRAN_STATUS_SIZE@ +OMPI_FORTRAN_USEMPIF08_LIB = @OMPI_FORTRAN_USEMPIF08_LIB@ +OMPI_FORTRAN_USEMPI_DIR = @OMPI_FORTRAN_USEMPI_DIR@ +OMPI_FORTRAN_USEMPI_LIB = @OMPI_FORTRAN_USEMPI_LIB@ +OMPI_F_SUFFIX = @OMPI_F_SUFFIX@ +OMPI_GREEK_VERSION = @OMPI_GREEK_VERSION@ +OMPI_HAVE_FORTRAN_CHARACTER = @OMPI_HAVE_FORTRAN_CHARACTER@ +OMPI_HAVE_FORTRAN_COMPLEX = @OMPI_HAVE_FORTRAN_COMPLEX@ +OMPI_HAVE_FORTRAN_COMPLEX16 = @OMPI_HAVE_FORTRAN_COMPLEX16@ +OMPI_HAVE_FORTRAN_COMPLEX32 = @OMPI_HAVE_FORTRAN_COMPLEX32@ +OMPI_HAVE_FORTRAN_COMPLEX4 = @OMPI_HAVE_FORTRAN_COMPLEX4@ +OMPI_HAVE_FORTRAN_COMPLEX8 = @OMPI_HAVE_FORTRAN_COMPLEX8@ +OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX = @OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX@ +OMPI_HAVE_FORTRAN_DOUBLE_PRECISION = @OMPI_HAVE_FORTRAN_DOUBLE_PRECISION@ +OMPI_HAVE_FORTRAN_INTEGER = @OMPI_HAVE_FORTRAN_INTEGER@ +OMPI_HAVE_FORTRAN_INTEGER1 = @OMPI_HAVE_FORTRAN_INTEGER1@ +OMPI_HAVE_FORTRAN_INTEGER16 = @OMPI_HAVE_FORTRAN_INTEGER16@ +OMPI_HAVE_FORTRAN_INTEGER2 = @OMPI_HAVE_FORTRAN_INTEGER2@ +OMPI_HAVE_FORTRAN_INTEGER4 = @OMPI_HAVE_FORTRAN_INTEGER4@ +OMPI_HAVE_FORTRAN_INTEGER8 = @OMPI_HAVE_FORTRAN_INTEGER8@ +OMPI_HAVE_FORTRAN_LOGICAL = @OMPI_HAVE_FORTRAN_LOGICAL@ +OMPI_HAVE_FORTRAN_LOGICAL1 = @OMPI_HAVE_FORTRAN_LOGICAL1@ +OMPI_HAVE_FORTRAN_LOGICAL2 = @OMPI_HAVE_FORTRAN_LOGICAL2@ +OMPI_HAVE_FORTRAN_LOGICAL4 = @OMPI_HAVE_FORTRAN_LOGICAL4@ +OMPI_HAVE_FORTRAN_LOGICAL8 = @OMPI_HAVE_FORTRAN_LOGICAL8@ +OMPI_HAVE_FORTRAN_REAL = @OMPI_HAVE_FORTRAN_REAL@ +OMPI_HAVE_FORTRAN_REAL16 = @OMPI_HAVE_FORTRAN_REAL16@ +OMPI_HAVE_FORTRAN_REAL2 = @OMPI_HAVE_FORTRAN_REAL2@ +OMPI_HAVE_FORTRAN_REAL4 = @OMPI_HAVE_FORTRAN_REAL4@ +OMPI_HAVE_FORTRAN_REAL8 = @OMPI_HAVE_FORTRAN_REAL8@ +OMPI_JDK_CPPFLAGS = @OMPI_JDK_CPPFLAGS@ +OMPI_KIND_FORTRAN_CHARACTER = @OMPI_KIND_FORTRAN_CHARACTER@ +OMPI_KIND_FORTRAN_COMPLEX = @OMPI_KIND_FORTRAN_COMPLEX@ +OMPI_KIND_FORTRAN_COMPLEX16 = @OMPI_KIND_FORTRAN_COMPLEX16@ +OMPI_KIND_FORTRAN_COMPLEX32 = @OMPI_KIND_FORTRAN_COMPLEX32@ +OMPI_KIND_FORTRAN_COMPLEX4 = @OMPI_KIND_FORTRAN_COMPLEX4@ +OMPI_KIND_FORTRAN_COMPLEX8 = @OMPI_KIND_FORTRAN_COMPLEX8@ +OMPI_KIND_FORTRAN_DOUBLE_COMPLEX = @OMPI_KIND_FORTRAN_DOUBLE_COMPLEX@ +OMPI_KIND_FORTRAN_DOUBLE_PRECISION = @OMPI_KIND_FORTRAN_DOUBLE_PRECISION@ +OMPI_KIND_FORTRAN_INTEGER = @OMPI_KIND_FORTRAN_INTEGER@ +OMPI_KIND_FORTRAN_INTEGER1 = @OMPI_KIND_FORTRAN_INTEGER1@ +OMPI_KIND_FORTRAN_INTEGER16 = @OMPI_KIND_FORTRAN_INTEGER16@ +OMPI_KIND_FORTRAN_INTEGER2 = @OMPI_KIND_FORTRAN_INTEGER2@ +OMPI_KIND_FORTRAN_INTEGER4 = @OMPI_KIND_FORTRAN_INTEGER4@ +OMPI_KIND_FORTRAN_INTEGER8 = @OMPI_KIND_FORTRAN_INTEGER8@ +OMPI_KIND_FORTRAN_LOGICAL = @OMPI_KIND_FORTRAN_LOGICAL@ +OMPI_KIND_FORTRAN_LOGICAL1 = @OMPI_KIND_FORTRAN_LOGICAL1@ +OMPI_KIND_FORTRAN_LOGICAL2 = @OMPI_KIND_FORTRAN_LOGICAL2@ +OMPI_KIND_FORTRAN_LOGICAL4 = @OMPI_KIND_FORTRAN_LOGICAL4@ +OMPI_KIND_FORTRAN_LOGICAL8 = @OMPI_KIND_FORTRAN_LOGICAL8@ +OMPI_KIND_FORTRAN_REAL = @OMPI_KIND_FORTRAN_REAL@ +OMPI_KIND_FORTRAN_REAL16 = @OMPI_KIND_FORTRAN_REAL16@ +OMPI_KIND_FORTRAN_REAL2 = @OMPI_KIND_FORTRAN_REAL2@ +OMPI_KIND_FORTRAN_REAL4 = @OMPI_KIND_FORTRAN_REAL4@ +OMPI_KIND_FORTRAN_REAL8 = @OMPI_KIND_FORTRAN_REAL8@ +OMPI_LIBMPI_EXTRA_LDFLAGS = @OMPI_LIBMPI_EXTRA_LDFLAGS@ +OMPI_LIBMPI_EXTRA_LIBS = @OMPI_LIBMPI_EXTRA_LIBS@ +OMPI_LIBMPI_NAME = @OMPI_LIBMPI_NAME@ +OMPI_MAJOR_VERSION = @OMPI_MAJOR_VERSION@ +OMPI_MINOR_VERSION = @OMPI_MINOR_VERSION@ +OMPI_MPIEXT_ALL_SUBDIRS = @OMPI_MPIEXT_ALL_SUBDIRS@ +OMPI_MPIEXT_C_DIRS = @OMPI_MPIEXT_C_DIRS@ +OMPI_MPIEXT_C_LIBS = @OMPI_MPIEXT_C_LIBS@ +OMPI_MPIEXT_MPIFH_DIRS = @OMPI_MPIEXT_MPIFH_DIRS@ +OMPI_MPIEXT_MPIFH_LIBS = @OMPI_MPIEXT_MPIFH_LIBS@ +OMPI_MPIEXT_USEMPIF08_DIRS = @OMPI_MPIEXT_USEMPIF08_DIRS@ +OMPI_MPIEXT_USEMPIF08_LIBS = @OMPI_MPIEXT_USEMPIF08_LIBS@ +OMPI_MPIEXT_USEMPI_DIRS = @OMPI_MPIEXT_USEMPI_DIRS@ +OMPI_MPIEXT_USEMPI_LIBS = @OMPI_MPIEXT_USEMPI_LIBS@ +OMPI_MPI_ADDRESS_KIND = @OMPI_MPI_ADDRESS_KIND@ +OMPI_MPI_BIND_PREFIX = @OMPI_MPI_BIND_PREFIX@ +OMPI_MPI_COUNT_KIND = @OMPI_MPI_COUNT_KIND@ +OMPI_MPI_INTEGER_KIND = @OMPI_MPI_INTEGER_KIND@ +OMPI_MPI_OFFSET_KIND = @OMPI_MPI_OFFSET_KIND@ +OMPI_MPI_PREFIX = @OMPI_MPI_PREFIX@ +OMPI_PKG_CONFIG_LDFLAGS = @OMPI_PKG_CONFIG_LDFLAGS@ +OMPI_RELEASE_DATE = @OMPI_RELEASE_DATE@ +OMPI_RELEASE_VERSION = @OMPI_RELEASE_VERSION@ +OMPI_REPO_REV = @OMPI_REPO_REV@ +OMPI_SIZEOF_FORTRAN_CHARACTER = @OMPI_SIZEOF_FORTRAN_CHARACTER@ +OMPI_SIZEOF_FORTRAN_COMPLEX = @OMPI_SIZEOF_FORTRAN_COMPLEX@ +OMPI_SIZEOF_FORTRAN_COMPLEX16 = @OMPI_SIZEOF_FORTRAN_COMPLEX16@ +OMPI_SIZEOF_FORTRAN_COMPLEX32 = @OMPI_SIZEOF_FORTRAN_COMPLEX32@ +OMPI_SIZEOF_FORTRAN_COMPLEX4 = @OMPI_SIZEOF_FORTRAN_COMPLEX4@ +OMPI_SIZEOF_FORTRAN_COMPLEX8 = @OMPI_SIZEOF_FORTRAN_COMPLEX8@ +OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX = @OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX@ +OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION = @OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION@ +OMPI_SIZEOF_FORTRAN_INTEGER = @OMPI_SIZEOF_FORTRAN_INTEGER@ +OMPI_SIZEOF_FORTRAN_INTEGER1 = @OMPI_SIZEOF_FORTRAN_INTEGER1@ +OMPI_SIZEOF_FORTRAN_INTEGER16 = @OMPI_SIZEOF_FORTRAN_INTEGER16@ +OMPI_SIZEOF_FORTRAN_INTEGER2 = @OMPI_SIZEOF_FORTRAN_INTEGER2@ +OMPI_SIZEOF_FORTRAN_INTEGER4 = @OMPI_SIZEOF_FORTRAN_INTEGER4@ +OMPI_SIZEOF_FORTRAN_INTEGER8 = @OMPI_SIZEOF_FORTRAN_INTEGER8@ +OMPI_SIZEOF_FORTRAN_LOGICAL = @OMPI_SIZEOF_FORTRAN_LOGICAL@ +OMPI_SIZEOF_FORTRAN_LOGICAL1 = @OMPI_SIZEOF_FORTRAN_LOGICAL1@ +OMPI_SIZEOF_FORTRAN_LOGICAL2 = @OMPI_SIZEOF_FORTRAN_LOGICAL2@ +OMPI_SIZEOF_FORTRAN_LOGICAL4 = @OMPI_SIZEOF_FORTRAN_LOGICAL4@ +OMPI_SIZEOF_FORTRAN_LOGICAL8 = @OMPI_SIZEOF_FORTRAN_LOGICAL8@ +OMPI_SIZEOF_FORTRAN_REAL = @OMPI_SIZEOF_FORTRAN_REAL@ +OMPI_SIZEOF_FORTRAN_REAL16 = @OMPI_SIZEOF_FORTRAN_REAL16@ +OMPI_SIZEOF_FORTRAN_REAL2 = @OMPI_SIZEOF_FORTRAN_REAL2@ +OMPI_SIZEOF_FORTRAN_REAL4 = @OMPI_SIZEOF_FORTRAN_REAL4@ +OMPI_SIZEOF_FORTRAN_REAL8 = @OMPI_SIZEOF_FORTRAN_REAL8@ +OMPI_TARBALL_VERSION = @OMPI_TARBALL_VERSION@ +OMPI_TOP_BUILDDIR = @OMPI_TOP_BUILDDIR@ +OMPI_TOP_SRCDIR = @OMPI_TOP_SRCDIR@ +OMPI_VERSION = @OMPI_VERSION@ +OMPI_WRAPPER_CXX_LIB = @OMPI_WRAPPER_CXX_LIB@ +OMPI_WRAPPER_CXX_REQUIRED_FILE = @OMPI_WRAPPER_CXX_REQUIRED_FILE@ +OMPI_WRAPPER_EXTRA_CFLAGS = @OMPI_WRAPPER_EXTRA_CFLAGS@ +OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_CPPFLAGS = @OMPI_WRAPPER_EXTRA_CPPFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS = @OMPI_WRAPPER_EXTRA_CXXFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FCFLAGS = @OMPI_WRAPPER_EXTRA_FCFLAGS@ +OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FC_LDFLAGS = @OMPI_WRAPPER_EXTRA_FC_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LDFLAGS = @OMPI_WRAPPER_EXTRA_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LIBS = @OMPI_WRAPPER_EXTRA_LIBS@ +OMPI_WRAPPER_FORTRAN_REQUIRED_FILE = @OMPI_WRAPPER_FORTRAN_REQUIRED_FILE@ +OMPI_WRAPPER_INCLUDEDIR = @OMPI_WRAPPER_INCLUDEDIR@ +OMPI_WRAPPER_LIBDIR = @OMPI_WRAPPER_LIBDIR@ +OPAL_ASM_GSYM = @OPAL_ASM_GSYM@ +OPAL_ASM_LSYM = @OPAL_ASM_LSYM@ +OPAL_ASM_SUPPORT_64BIT = @OPAL_ASM_SUPPORT_64BIT@ +OPAL_ASM_TEXT = @OPAL_ASM_TEXT@ +OPAL_ASM_TYPE = @OPAL_ASM_TYPE@ +OPAL_ASSEMBLY_ARCH = @OPAL_ASSEMBLY_ARCH@ +OPAL_ASSEMBLY_BUILTIN = @OPAL_ASSEMBLY_BUILTIN@ +OPAL_ASSEMBLY_FORMAT = @OPAL_ASSEMBLY_FORMAT@ +OPAL_AS_GLOBAL = @OPAL_AS_GLOBAL@ +OPAL_AS_LABEL_SUFFIX = @OPAL_AS_LABEL_SUFFIX@ +OPAL_CC_ABSOLUTE = @OPAL_CC_ABSOLUTE@ +OPAL_CONFIGURE_CLI = @OPAL_CONFIGURE_CLI@ +OPAL_CONFIGURE_DATE = @OPAL_CONFIGURE_DATE@ +OPAL_CONFIGURE_HOST = @OPAL_CONFIGURE_HOST@ +OPAL_CONFIGURE_USER = @OPAL_CONFIGURE_USER@ +OPAL_CXX_ABSOLUTE = @OPAL_CXX_ABSOLUTE@ +OPAL_DEFAULT_MCA_PARAM_CONF = @OPAL_DEFAULT_MCA_PARAM_CONF@ +OPAL_DYN_LIB_PREFIX = @OPAL_DYN_LIB_PREFIX@ +OPAL_DYN_LIB_SUFFIX = @OPAL_DYN_LIB_SUFFIX@ +OPAL_GREEK_VERSION = @OPAL_GREEK_VERSION@ +OPAL_LIB_PREFIX = @OPAL_LIB_PREFIX@ +OPAL_MAJOR_VERSION = @OPAL_MAJOR_VERSION@ +OPAL_MAX_DATAREP_STRING = @OPAL_MAX_DATAREP_STRING@ +OPAL_MAX_ERROR_STRING = @OPAL_MAX_ERROR_STRING@ +OPAL_MAX_INFO_KEY = @OPAL_MAX_INFO_KEY@ +OPAL_MAX_INFO_VAL = @OPAL_MAX_INFO_VAL@ +OPAL_MAX_OBJECT_NAME = @OPAL_MAX_OBJECT_NAME@ +OPAL_MAX_PORT_NAME = @OPAL_MAX_PORT_NAME@ +OPAL_MAX_PROCESSOR_NAME = @OPAL_MAX_PROCESSOR_NAME@ +OPAL_MINOR_VERSION = @OPAL_MINOR_VERSION@ +OPAL_PARAM_FROM_PLATFORM = @OPAL_PARAM_FROM_PLATFORM@ +OPAL_PKG_CONFIG_LDFLAGS = @OPAL_PKG_CONFIG_LDFLAGS@ +OPAL_RELEASE_DATE = @OPAL_RELEASE_DATE@ +OPAL_RELEASE_VERSION = @OPAL_RELEASE_VERSION@ +OPAL_REPO_REV = @OPAL_REPO_REV@ +OPAL_TARBALL_VERSION = @OPAL_TARBALL_VERSION@ +OPAL_TOP_BUILDDIR = @OPAL_TOP_BUILDDIR@ +OPAL_TOP_SRCDIR = @OPAL_TOP_SRCDIR@ +OPAL_VERSION = @OPAL_VERSION@ +OPAL_WRAPPER_EXTRA_CFLAGS = @OPAL_WRAPPER_EXTRA_CFLAGS@ +OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_CPPFLAGS = @OPAL_WRAPPER_EXTRA_CPPFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS = @OPAL_WRAPPER_EXTRA_CXXFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_LDFLAGS = @OPAL_WRAPPER_EXTRA_LDFLAGS@ +OPAL_WRAPPER_EXTRA_LIBS = @OPAL_WRAPPER_EXTRA_LIBS@ +ORTE_GREEK_VERSION = @ORTE_GREEK_VERSION@ +ORTE_LIB_PREFIX = @ORTE_LIB_PREFIX@ +ORTE_MAJOR_VERSION = @ORTE_MAJOR_VERSION@ +ORTE_MINOR_VERSION = @ORTE_MINOR_VERSION@ +ORTE_PKG_CONFIG_LDFLAGS = @ORTE_PKG_CONFIG_LDFLAGS@ +ORTE_RELEASE_DATE = @ORTE_RELEASE_DATE@ +ORTE_RELEASE_VERSION = @ORTE_RELEASE_VERSION@ +ORTE_REPO_REV = @ORTE_REPO_REV@ +ORTE_TARBALL_VERSION = @ORTE_TARBALL_VERSION@ +ORTE_TOP_BUILDDIR = @ORTE_TOP_BUILDDIR@ +ORTE_TOP_SRCDIR = @ORTE_TOP_SRCDIR@ +ORTE_VERSION = @ORTE_VERSION@ +ORTE_WRAPPER_EXTRA_CFLAGS = @ORTE_WRAPPER_EXTRA_CFLAGS@ +ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX = @ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX@ +ORTE_WRAPPER_EXTRA_CPPFLAGS = @ORTE_WRAPPER_EXTRA_CPPFLAGS@ +ORTE_WRAPPER_EXTRA_LDFLAGS = @ORTE_WRAPPER_EXTRA_LDFLAGS@ +ORTE_WRAPPER_EXTRA_LIBS = @ORTE_WRAPPER_EXTRA_LIBS@ +OSHMEM_GREEK_VERSION = @OSHMEM_GREEK_VERSION@ +OSHMEM_LIBSHMEM_EXTRA_LDFLAGS = @OSHMEM_LIBSHMEM_EXTRA_LDFLAGS@ +OSHMEM_LIBSHMEM_EXTRA_LIBS = @OSHMEM_LIBSHMEM_EXTRA_LIBS@ +OSHMEM_MAJOR_VERSION = @OSHMEM_MAJOR_VERSION@ +OSHMEM_MINOR_VERSION = @OSHMEM_MINOR_VERSION@ +OSHMEM_RELEASE_DATE = @OSHMEM_RELEASE_DATE@ +OSHMEM_RELEASE_VERSION = @OSHMEM_RELEASE_VERSION@ +OSHMEM_REPO_REV = @OSHMEM_REPO_REV@ +OSHMEM_TARBALL_VERSION = @OSHMEM_TARBALL_VERSION@ +OSHMEM_TOP_BUILDDIR = @OSHMEM_TOP_BUILDDIR@ +OSHMEM_TOP_SRCDIR = @OSHMEM_TOP_SRCDIR@ +OSHMEM_VERSION = @OSHMEM_VERSION@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +QRSH = @QRSH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SINGULARITY = @SINGULARITY@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_FC = @ac_ct_FC@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +atomic_mxm_CFLAGS = @atomic_mxm_CFLAGS@ +atomic_mxm_CPPFLAGS = @atomic_mxm_CPPFLAGS@ +atomic_mxm_LDFLAGS = @atomic_mxm_LDFLAGS@ +atomic_mxm_LIBS = @atomic_mxm_LIBS@ +atomic_ucx_CFLAGS = @atomic_ucx_CFLAGS@ +atomic_ucx_CPPFLAGS = @atomic_ucx_CPPFLAGS@ +atomic_ucx_LDFLAGS = @atomic_ucx_LDFLAGS@ +atomic_ucx_LIBS = @atomic_ucx_LIBS@ +bindir = @bindir@ +btl_openib_CFLAGS = @btl_openib_CFLAGS@ +btl_openib_CPPFLAGS = @btl_openib_CPPFLAGS@ +btl_openib_LDFLAGS = @btl_openib_LDFLAGS@ +btl_openib_LIBS = @btl_openib_LIBS@ +btl_portals4_CPPFLAGS = @btl_portals4_CPPFLAGS@ +btl_portals4_LDFLAGS = @btl_portals4_LDFLAGS@ +btl_portals4_LIBS = @btl_portals4_LIBS@ +btl_uct_CPPFLAGS = @btl_uct_CPPFLAGS@ +btl_uct_LDFLAGS = @btl_uct_LDFLAGS@ +btl_uct_LIBS = @btl_uct_LIBS@ +btl_ugni_CPPFLAGS = @btl_ugni_CPPFLAGS@ +btl_ugni_LDFLAGS = @btl_ugni_LDFLAGS@ +btl_ugni_LIBS = @btl_ugni_LIBS@ +btl_vader_CFLAGS = @btl_vader_CFLAGS@ +btl_vader_CPPFLAGS = @btl_vader_CPPFLAGS@ +btl_vader_LDFLAGS = @btl_vader_LDFLAGS@ +btl_vader_LIBS = @btl_vader_LIBS@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +coll_fca_CFLAGS = @coll_fca_CFLAGS@ +coll_fca_CPPFLAGS = @coll_fca_CPPFLAGS@ +coll_fca_HOME = @coll_fca_HOME@ +coll_fca_LDFLAGS = @coll_fca_LDFLAGS@ +coll_fca_LIBS = @coll_fca_LIBS@ +coll_hcoll_CFLAGS = @coll_hcoll_CFLAGS@ +coll_hcoll_CPPFLAGS = @coll_hcoll_CPPFLAGS@ +coll_hcoll_LDFLAGS = @coll_hcoll_LDFLAGS@ +coll_hcoll_LIBS = @coll_hcoll_LIBS@ +coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ +coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ +coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ +common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ +common_alps_LDFLAGS = @common_alps_LDFLAGS@ +common_alps_LIBS = @common_alps_LIBS@ +common_cuda_CPPFLAGS = @common_cuda_CPPFLAGS@ +common_ucx_CFLAGS = @common_ucx_CFLAGS@ +common_ucx_CPPFLAGS = @common_ucx_CPPFLAGS@ +common_ucx_LDFLAGS = @common_ucx_LDFLAGS@ +common_ucx_LIBS = @common_ucx_LIBS@ +common_verbs_CFLAGS = @common_verbs_CFLAGS@ +common_verbs_CPPFLAGS = @common_verbs_CPPFLAGS@ +common_verbs_LDFLAGS = @common_verbs_LDFLAGS@ +common_verbs_LIBS = @common_verbs_LIBS@ +common_verbs_usnic_CPPFLAGS = @common_verbs_usnic_CPPFLAGS@ +common_verbs_usnic_LDFLAGS = @common_verbs_usnic_LDFLAGS@ +common_verbs_usnic_LIBS = @common_verbs_usnic_LIBS@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +ess_alps_CPPFLAGS = @ess_alps_CPPFLAGS@ +ess_alps_LDFLAGS = @ess_alps_LDFLAGS@ +ess_alps_LIBS = @ess_alps_LIBS@ +ess_lsf_CPPFLAGS = @ess_lsf_CPPFLAGS@ +ess_lsf_LDFLAGS = @ess_lsf_LDFLAGS@ +ess_lsf_LIBS = @ess_lsf_LIBS@ +ess_slurm_CPPFLAGS = @ess_slurm_CPPFLAGS@ +ess_slurm_LDFLAGS = @ess_slurm_LDFLAGS@ +ess_slurm_LIBS = @ess_slurm_LIBS@ +ess_tm_CPPFLAGS = @ess_tm_CPPFLAGS@ +ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ +ess_tm_LIBS = @ess_tm_LIBS@ +exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ +fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ +fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ +fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ +fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ +fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ +fs_lustre_LIBS = @fs_lustre_LIBS@ +fs_pvfs2_CPPFLAGS = @fs_pvfs2_CPPFLAGS@ +fs_pvfs2_LDFLAGS = @fs_pvfs2_LDFLAGS@ +fs_pvfs2_LIBS = @fs_pvfs2_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ +libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ +libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ +libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ +libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ +libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ +libmca_opal_common_verbs_so_version = @libmca_opal_common_verbs_so_version@ +libmca_orte_common_alps_so_version = @libmca_orte_common_alps_so_version@ +libmpi_cxx_so_version = @libmpi_cxx_so_version@ +libmpi_java_so_version = @libmpi_java_so_version@ +libmpi_mpifh_so_version = @libmpi_mpifh_so_version@ +libmpi_so_version = @libmpi_so_version@ +libmpi_usempi_ignore_tkr_so_version = @libmpi_usempi_ignore_tkr_so_version@ +libmpi_usempi_tkr_so_version = @libmpi_usempi_tkr_so_version@ +libmpi_usempif08_so_version = @libmpi_usempif08_so_version@ +libompitrace_so_version = @libompitrace_so_version@ +libopen_pal_so_version = @libopen_pal_so_version@ +libopen_rte_so_version = @libopen_rte_so_version@ +liboshmem_so_version = @liboshmem_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +memory_malloc_solaris_LIBS = @memory_malloc_solaris_LIBS@ +mkdir_p = @mkdir_p@ +mpool_memkind_CPPFLAGS = @mpool_memkind_CPPFLAGS@ +mpool_memkind_LDFLAGS = @mpool_memkind_LDFLAGS@ +mpool_memkind_LIBS = @mpool_memkind_LIBS@ +mtl_portals4_CPPFLAGS = @mtl_portals4_CPPFLAGS@ +mtl_portals4_LDFLAGS = @mtl_portals4_LDFLAGS@ +mtl_portals4_LIBS = @mtl_portals4_LIBS@ +mtl_psm2_CFLAGS = @mtl_psm2_CFLAGS@ +mtl_psm2_CPPFLAGS = @mtl_psm2_CPPFLAGS@ +mtl_psm2_LDFLAGS = @mtl_psm2_LDFLAGS@ +mtl_psm2_LIBS = @mtl_psm2_LIBS@ +mtl_psm_CFLAGS = @mtl_psm_CFLAGS@ +mtl_psm_CPPFLAGS = @mtl_psm_CPPFLAGS@ +mtl_psm_LDFLAGS = @mtl_psm_LDFLAGS@ +mtl_psm_LIBS = @mtl_psm_LIBS@ +odls_alps_CPPFLAGS = @odls_alps_CPPFLAGS@ +odls_alps_LDFLAGS = @odls_alps_LDFLAGS@ +odls_alps_LIBS = @odls_alps_LIBS@ +oldincludedir = @oldincludedir@ +ompidatadir = @ompidatadir@ +ompiincludedir = @ompiincludedir@ +ompilibdir = @ompilibdir@ +oob_alps_CPPFLAGS = @oob_alps_CPPFLAGS@ +oob_alps_LDFLAGS = @oob_alps_LDFLAGS@ +oob_alps_LIBS = @oob_alps_LIBS@ +opal_datatype_cuda_CPPFLAGS = @opal_datatype_cuda_CPPFLAGS@ +opal_dl_dlopen_LIBS = @opal_dl_dlopen_LIBS@ +opal_dl_libltdl_CPPFLAGS = @opal_dl_libltdl_CPPFLAGS@ +opal_dl_libltdl_LDFLAGS = @opal_dl_libltdl_LDFLAGS@ +opal_dl_libltdl_LIBS = @opal_dl_libltdl_LIBS@ +opal_event_external_CPPFLAGS = @opal_event_external_CPPFLAGS@ +opal_event_external_LDFLAGS = @opal_event_external_LDFLAGS@ +opal_event_external_LIBS = @opal_event_external_LIBS@ +opal_hwloc_external_LDFLAGS = @opal_hwloc_external_LDFLAGS@ +opal_hwloc_external_LIBS = @opal_hwloc_external_LIBS@ +opal_hwloc_hwloc201_CFLAGS = @opal_hwloc_hwloc201_CFLAGS@ +opal_hwloc_hwloc201_CPPFLAGS = @opal_hwloc_hwloc201_CPPFLAGS@ +opal_hwloc_hwloc201_LDFLAGS = @opal_hwloc_hwloc201_LDFLAGS@ +opal_hwloc_hwloc201_LIBS = @opal_hwloc_hwloc201_LIBS@ +opal_memchecker_valgrind_CPPFLAGS = @opal_memchecker_valgrind_CPPFLAGS@ +opal_ofi_CPPFLAGS = @opal_ofi_CPPFLAGS@ +opal_ofi_LDFLAGS = @opal_ofi_LDFLAGS@ +opal_ofi_LIBS = @opal_ofi_LIBS@ +opal_pmi1_CPPFLAGS = @opal_pmi1_CPPFLAGS@ +opal_pmi1_LDFLAGS = @opal_pmi1_LDFLAGS@ +opal_pmi1_LIBS = @opal_pmi1_LIBS@ +opal_pmi1_rpath = @opal_pmi1_rpath@ +opal_pmi2_CPPFLAGS = @opal_pmi2_CPPFLAGS@ +opal_pmi2_LDFLAGS = @opal_pmi2_LDFLAGS@ +opal_pmi2_LIBS = @opal_pmi2_LIBS@ +opal_pmi2_rpath = @opal_pmi2_rpath@ +opal_pmix_ext1x_CPPFLAGS = @opal_pmix_ext1x_CPPFLAGS@ +opal_pmix_ext1x_LDFLAGS = @opal_pmix_ext1x_LDFLAGS@ +opal_pmix_ext1x_LIBS = @opal_pmix_ext1x_LIBS@ +opal_pmix_ext2x_CPPFLAGS = @opal_pmix_ext2x_CPPFLAGS@ +opal_pmix_ext2x_LDFLAGS = @opal_pmix_ext2x_LDFLAGS@ +opal_pmix_ext2x_LIBS = @opal_pmix_ext2x_LIBS@ +opal_pmix_ext3x_CPPFLAGS = @opal_pmix_ext3x_CPPFLAGS@ +opal_pmix_ext3x_LDFLAGS = @opal_pmix_ext3x_LDFLAGS@ +opal_pmix_ext3x_LIBS = @opal_pmix_ext3x_LIBS@ +opal_pmix_pmix3x_CPPFLAGS = @opal_pmix_pmix3x_CPPFLAGS@ +opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ +opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ +opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ +opaldatadir = @opaldatadir@ +opalincludedir = @opalincludedir@ +opallibdir = @opallibdir@ +ortedatadir = @ortedatadir@ +orteincludedir = @orteincludedir@ +ortelibdir = @ortelibdir@ +osc_portals4_CPPFLAGS = @osc_portals4_CPPFLAGS@ +osc_portals4_LDFLAGS = @osc_portals4_LDFLAGS@ +osc_portals4_LIBS = @osc_portals4_LIBS@ +osc_ucx_CPPFLAGS = @osc_ucx_CPPFLAGS@ +osc_ucx_LDFLAGS = @osc_ucx_LDFLAGS@ +osc_ucx_LIBS = @osc_ucx_LIBS@ +oshmem_verbs_CFLAGS = @oshmem_verbs_CFLAGS@ +oshmem_verbs_CPPFLAGS = @oshmem_verbs_CPPFLAGS@ +oshmem_verbs_LDFLAGS = @oshmem_verbs_LDFLAGS@ +oshmem_verbs_LIBS = @oshmem_verbs_LIBS@ +oshmemdatadir = @oshmemdatadir@ +oshmemincludedir = @oshmemincludedir@ +oshmemlibdir = @oshmemlibdir@ +pdfdir = @pdfdir@ +plm_alps_CPPFLAGS = @plm_alps_CPPFLAGS@ +plm_alps_LDFLAGS = @plm_alps_LDFLAGS@ +plm_alps_LIBS = @plm_alps_LIBS@ +plm_lsf_CPPFLAGS = @plm_lsf_CPPFLAGS@ +plm_lsf_LDFLAGS = @plm_lsf_LDFLAGS@ +plm_lsf_LIBS = @plm_lsf_LIBS@ +plm_slurm_CPPFLAGS = @plm_slurm_CPPFLAGS@ +plm_slurm_LDFLAGS = @plm_slurm_LDFLAGS@ +plm_slurm_LIBS = @plm_slurm_LIBS@ +plm_tm_CPPFLAGS = @plm_tm_CPPFLAGS@ +plm_tm_LDFLAGS = @plm_tm_LDFLAGS@ +plm_tm_LIBS = @plm_tm_LIBS@ +pmix_alps_CPPFLAGS = @pmix_alps_CPPFLAGS@ +pmix_alps_LDFLAGS = @pmix_alps_LDFLAGS@ +pmix_alps_LIBS = @pmix_alps_LIBS@ +pmix_cray_CPPFLAGS = @pmix_cray_CPPFLAGS@ +pmix_cray_LDFLAGS = @pmix_cray_LDFLAGS@ +pmix_cray_LIBS = @pmix_cray_LIBS@ +pml_ucx_CPPFLAGS = @pml_ucx_CPPFLAGS@ +pml_ucx_LDFLAGS = @pml_ucx_LDFLAGS@ +pml_ucx_LIBS = @pml_ucx_LIBS@ +pml_yalla_CPPFLAGS = @pml_yalla_CPPFLAGS@ +pml_yalla_LDFLAGS = @pml_yalla_LDFLAGS@ +pml_yalla_LIBS = @pml_yalla_LIBS@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +ras_alps_CPPFLAGS = @ras_alps_CPPFLAGS@ +ras_lsf_CPPFLAGS = @ras_lsf_CPPFLAGS@ +ras_lsf_LDFLAGS = @ras_lsf_LDFLAGS@ +ras_lsf_LIBS = @ras_lsf_LIBS@ +ras_slurm_CPPFLAGS = @ras_slurm_CPPFLAGS@ +ras_slurm_LDFLAGS = @ras_slurm_LDFLAGS@ +ras_slurm_LIBS = @ras_slurm_LIBS@ +ras_tm_CPPFLAGS = @ras_tm_CPPFLAGS@ +ras_tm_LDFLAGS = @ras_tm_LDFLAGS@ +ras_tm_LIBS = @ras_tm_LIBS@ +rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ +rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ +rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ +sbindir = @sbindir@ +schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ +schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ +schizo_moab_LDFLAGS = @schizo_moab_LDFLAGS@ +schizo_moab_LIBS = @schizo_moab_LIBS@ +schizo_slurm_CPPFLAGS = @schizo_slurm_CPPFLAGS@ +schizo_slurm_LDFLAGS = @schizo_slurm_LDFLAGS@ +schizo_slurm_LIBS = @schizo_slurm_LIBS@ +scoll_fca_CFLAGS = @scoll_fca_CFLAGS@ +scoll_fca_CPPFLAGS = @scoll_fca_CPPFLAGS@ +scoll_fca_HOME = @scoll_fca_HOME@ +scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ +scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ +sharedstatedir = @sharedstatedir@ +spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ +spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ +spml_ikrit_LDFLAGS = @spml_ikrit_LDFLAGS@ +spml_ikrit_LIBS = @spml_ikrit_LIBS@ +spml_ucx_CFLAGS = @spml_ucx_CFLAGS@ +spml_ucx_CPPFLAGS = @spml_ucx_CPPFLAGS@ +spml_ucx_LDFLAGS = @spml_ucx_LDFLAGS@ +spml_ucx_LIBS = @spml_ucx_LIBS@ +srcdir = @srcdir@ +sshmem_ucx_CFLAGS = @sshmem_ucx_CFLAGS@ +sshmem_ucx_CPPFLAGS = @sshmem_ucx_CPPFLAGS@ +sshmem_ucx_LDFLAGS = @sshmem_ucx_LDFLAGS@ +sshmem_ucx_LIBS = @sshmem_ucx_LIBS@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ucx_CFLAGS = @ucx_CFLAGS@ +ucx_LIBS = @ucx_LIBS@ +ucx_STATIC_LIBS = @ucx_STATIC_LIBS@ +AM_CPPFLAGS = $(coll_ucc_CPPFLAGS) +coll_ucc_sources = \ + coll_ucc.h \ + coll_ucc_debug.h \ + coll_ucc_dtypes.h \ + coll_ucc_common.h \ + coll_ucc_module.c \ + coll_ucc_component.c \ + coll_ucc_barrier.c \ + coll_ucc_bcast.c \ + coll_ucc_allreduce.c \ + coll_ucc_reduce.c \ + coll_ucc_alltoall.c \ + coll_ucc_alltoallv.c \ + coll_ucc_allgather.c \ + coll_ucc_allgatherv.c + +@MCA_BUILD_ompi_coll_ucc_DSO_FALSE@component_noinst = libmca_coll_ucc.la + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). +@MCA_BUILD_ompi_coll_ucc_DSO_TRUE@component_noinst = +@MCA_BUILD_ompi_coll_ucc_DSO_FALSE@component_install = +@MCA_BUILD_ompi_coll_ucc_DSO_TRUE@component_install = mca_coll_ucc.la +mcacomponentdir = $(ompilibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_coll_ucc_la_SOURCES = $(coll_ucc_sources) +mca_coll_ucc_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(coll_ucc_LIBS) + +mca_coll_ucc_la_LDFLAGS = -module -avoid-version $(coll_ucc_LDFLAGS) +noinst_LTLIBRARIES = $(component_noinst) +libmca_coll_ucc_la_SOURCES = $(coll_ucc_sources) +libmca_coll_ucc_la_LIBADD = $(coll_ucc_LIBS) +libmca_coll_ucc_la_LDFLAGS = -module -avoid-version $(coll_ucc_LDFLAGS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign ompi/mca/coll/ucc/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign ompi/mca/coll/ucc/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-mcacomponentLTLIBRARIES: $(mcacomponent_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(mcacomponentdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(mcacomponentdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(mcacomponentdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(mcacomponentdir)"; \ + } + +uninstall-mcacomponentLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(mcacomponentdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(mcacomponentdir)/$$f"; \ + done + +clean-mcacomponentLTLIBRARIES: + -test -z "$(mcacomponent_LTLIBRARIES)" || rm -f $(mcacomponent_LTLIBRARIES) + @list='$(mcacomponent_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libmca_coll_ucc.la: $(libmca_coll_ucc_la_OBJECTS) $(libmca_coll_ucc_la_DEPENDENCIES) $(EXTRA_libmca_coll_ucc_la_DEPENDENCIES) + $(AM_V_CCLD)$(libmca_coll_ucc_la_LINK) $(am_libmca_coll_ucc_la_rpath) $(libmca_coll_ucc_la_OBJECTS) $(libmca_coll_ucc_la_LIBADD) $(LIBS) + +mca_coll_ucc.la: $(mca_coll_ucc_la_OBJECTS) $(mca_coll_ucc_la_DEPENDENCIES) $(EXTRA_mca_coll_ucc_la_DEPENDENCIES) + $(AM_V_CCLD)$(mca_coll_ucc_la_LINK) $(am_mca_coll_ucc_la_rpath) $(mca_coll_ucc_la_OBJECTS) $(mca_coll_ucc_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_ucc_allgather.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_ucc_allgatherv.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_ucc_allreduce.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_ucc_alltoall.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_ucc_alltoallv.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_ucc_barrier.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_ucc_bcast.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_ucc_component.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_ucc_module.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coll_ucc_reduce.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(mcacomponentdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-mcacomponentLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-mcacomponentLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-mcacomponentLTLIBRARIES install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-mcacomponentLTLIBRARIES + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/ompi/mca/common/Makefile.in openmpi-4.1.4/ompi/mca/common/Makefile.in --- openmpi-4.0.3/ompi/mca/common/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,6 +116,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -123,6 +125,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -146,6 +149,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -248,6 +252,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -255,6 +260,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -335,6 +341,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -357,9 +364,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -369,6 +380,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -389,6 +401,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -562,6 +575,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1382,6 +1398,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1414,9 +1434,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1437,6 +1466,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1521,9 +1551,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1584,6 +1611,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1597,6 +1627,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/common/monitoring/Makefile.am openmpi-4.1.4/ompi/mca/common/monitoring/Makefile.am --- openmpi-4.0.3/ompi/mca/common/monitoring/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/monitoring/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -28,6 +28,9 @@ lib_LTLIBRARIES += ompi_monitoring_prof.la ompi_monitoring_prof_la_SOURCES = monitoring_prof.c +if OMPI_BUILD_FORTRAN_MPIFH_BINDINGS +ompi_monitoring_prof_la_SOURCES += monitoring_prof_f.c +endif ompi_monitoring_prof_la_LDFLAGS= \ -module -avoid-version -shared $(WRAPPER_EXTRA_LDFLAGS) ompi_monitoring_prof_la_LIBADD = \ diff -Nru openmpi-4.0.3/ompi/mca/common/monitoring/Makefile.in openmpi-4.1.4/ompi/mca/common/monitoring/Makefile.in --- openmpi-4.0.3/ompi/mca/common/monitoring/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/monitoring/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -107,7 +107,8 @@ target_triplet = @target@ @MCA_BUILD_ompi_common_monitoring_DSO_TRUE@am__append_1 = $(component_install) \ @MCA_BUILD_ompi_common_monitoring_DSO_TRUE@ ompi_monitoring_prof.la -@MCA_BUILD_ompi_common_monitoring_DSO_FALSE@am__append_2 = $(component_noinst) +@MCA_BUILD_ompi_common_monitoring_DSO_TRUE@@OMPI_BUILD_FORTRAN_MPIFH_BINDINGS_TRUE@am__append_2 = monitoring_prof_f.c +@MCA_BUILD_ompi_common_monitoring_DSO_FALSE@am__append_3 = $(component_noinst) subdir = ompi/mca/common/monitoring ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ @@ -117,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -124,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -147,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -249,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -256,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -336,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -358,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -370,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -390,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -471,9 +485,12 @@ @MCA_BUILD_ompi_common_monitoring_DSO_FALSE@am_libmca_common_monitoring_noinst_la_rpath = @MCA_BUILD_ompi_common_monitoring_DSO_TRUE@ompi_monitoring_prof_la_DEPENDENCIES = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ @MCA_BUILD_ompi_common_monitoring_DSO_TRUE@ $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la -am__ompi_monitoring_prof_la_SOURCES_DIST = monitoring_prof.c +am__ompi_monitoring_prof_la_SOURCES_DIST = monitoring_prof.c \ + monitoring_prof_f.c +@MCA_BUILD_ompi_common_monitoring_DSO_TRUE@@OMPI_BUILD_FORTRAN_MPIFH_BINDINGS_TRUE@am__objects_4 = monitoring_prof_f.lo @MCA_BUILD_ompi_common_monitoring_DSO_TRUE@am_ompi_monitoring_prof_la_OBJECTS = \ -@MCA_BUILD_ompi_common_monitoring_DSO_TRUE@ monitoring_prof.lo +@MCA_BUILD_ompi_common_monitoring_DSO_TRUE@ monitoring_prof.lo \ +@MCA_BUILD_ompi_common_monitoring_DSO_TRUE@ $(am__objects_4) ompi_monitoring_prof_la_OBJECTS = \ $(am_ompi_monitoring_prof_la_OBJECTS) ompi_monitoring_prof_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ @@ -676,6 +693,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1496,6 +1516,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1528,9 +1552,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1551,6 +1584,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1635,9 +1669,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1698,6 +1729,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1711,6 +1745,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ @@ -1741,10 +1779,12 @@ sources = common_monitoring.c common_monitoring_coll.c headers = common_monitoring.h common_monitoring_coll.h lib_LTLIBRARIES = $(am__append_1) -noinst_LTLIBRARIES = $(am__append_2) +noinst_LTLIBRARIES = $(am__append_3) component_install = libmca_common_monitoring.la component_noinst = libmca_common_monitoring_noinst.la -@MCA_BUILD_ompi_common_monitoring_DSO_TRUE@ompi_monitoring_prof_la_SOURCES = monitoring_prof.c +@MCA_BUILD_ompi_common_monitoring_DSO_TRUE@ompi_monitoring_prof_la_SOURCES = \ +@MCA_BUILD_ompi_common_monitoring_DSO_TRUE@ monitoring_prof.c \ +@MCA_BUILD_ompi_common_monitoring_DSO_TRUE@ $(am__append_2) @MCA_BUILD_ompi_common_monitoring_DSO_TRUE@ompi_monitoring_prof_la_LDFLAGS = \ @MCA_BUILD_ompi_common_monitoring_DSO_TRUE@ -module -avoid-version -shared $(WRAPPER_EXTRA_LDFLAGS) @@ -1904,6 +1944,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmca_common_monitoring_la-common_monitoring.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmca_common_monitoring_la-common_monitoring_coll.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/monitoring_prof.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/monitoring_prof_f.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ diff -Nru openmpi-4.0.3/ompi/mca/common/monitoring/monitoring_prof.c openmpi-4.1.4/ompi/mca/common/monitoring/monitoring_prof.c --- openmpi-4.0.3/ompi/mca/common/monitoring/monitoring_prof.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/monitoring/monitoring_prof.c 2022-05-29 09:51:40.000000000 +0000 @@ -378,67 +378,3 @@ return 0; } - -/** - * MPI binding for fortran - */ - -#include -#include "ompi_config.h" -#include "opal/threads/thread_usage.h" -#include "ompi/mpi/fortran/base/constants.h" -#include "ompi/mpi/fortran/base/fint_2_int.h" - -void monitoring_prof_mpi_init_f2c( MPI_Fint * ); -void monitoring_prof_mpi_finalize_f2c( MPI_Fint * ); - -void monitoring_prof_mpi_init_f2c( MPI_Fint *ierr ) { - int c_ierr; - int argc = 0; - char ** argv = NULL; - - c_ierr = MPI_Init(&argc, &argv); - if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); -} - -void monitoring_prof_mpi_finalize_f2c( MPI_Fint *ierr ) { - int c_ierr; - - c_ierr = MPI_Finalize(); - if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); -} - -#if OPAL_HAVE_WEAK_SYMBOLS -#pragma weak MPI_INIT = monitoring_prof_mpi_init_f2c -#pragma weak mpi_init = monitoring_prof_mpi_init_f2c -#pragma weak mpi_init_ = monitoring_prof_mpi_init_f2c -#pragma weak mpi_init__ = monitoring_prof_mpi_init_f2c -#pragma weak MPI_Init_f = monitoring_prof_mpi_init_f2c -#pragma weak MPI_Init_f08 = monitoring_prof_mpi_init_f2c - -#pragma weak MPI_FINALIZE = monitoring_prof_mpi_finalize_f2c -#pragma weak mpi_finalize = monitoring_prof_mpi_finalize_f2c -#pragma weak mpi_finalize_ = monitoring_prof_mpi_finalize_f2c -#pragma weak mpi_finalize__ = monitoring_prof_mpi_finalize_f2c -#pragma weak MPI_Finalize_f = monitoring_prof_mpi_finalize_f2c -#pragma weak MPI_Finalize_f08 = monitoring_prof_mpi_finalize_f2c -#elif OMPI_BUILD_FORTRAN_BINDINGS -#define OMPI_F77_PROTOTYPES_MPI_H -#include "ompi/mpi/fortran/mpif-h/bindings.h" - -OMPI_GENERATE_F77_BINDINGS (MPI_INIT, - mpi_init, - mpi_init_, - mpi_init__, - monitoring_prof_mpi_init_f2c, - (MPI_Fint *ierr), - (ierr) ) - -OMPI_GENERATE_F77_BINDINGS (MPI_FINALIZE, - mpi_finalize, - mpi_finalize_, - mpi_finalize__, - monitoring_prof_mpi_finalize_f2c, - (MPI_Fint *ierr), - (ierr) ) -#endif diff -Nru openmpi-4.0.3/ompi/mca/common/monitoring/monitoring_prof_f.c openmpi-4.1.4/ompi/mca/common/monitoring/monitoring_prof_f.c --- openmpi-4.0.3/ompi/mca/common/monitoring/monitoring_prof_f.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/monitoring/monitoring_prof_f.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2013-2017 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2013-2017 Inria. All rights reserved. + * Copyright (c) 2013-2015 Bull SAS. All rights reserved. + * Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2017 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +/* + * MPI binding for fortran + */ + +#define OMPI_BUILD_MPI_PROFILING 0 +#define OMPI_COMPILING_FORTRAN_WRAPPERS 1 + +#include + +#include "ompi_config.h" + +#include "ompi/mpi/fortran/mpif-h/bindings.h" +#include "ompi/mpi/fortran/base/constants.h" + + +void monitoring_prof_mpi_init_f2c( MPI_Fint * ); +void monitoring_prof_mpi_finalize_f2c( MPI_Fint * ); + +void monitoring_prof_mpi_init_f2c( MPI_Fint *ierr ) { + int c_ierr; + int argc = 0; + char ** argv = NULL; + + c_ierr = PMPI_Init(&argc, &argv); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} + +void monitoring_prof_mpi_finalize_f2c( MPI_Fint *ierr ) { + int c_ierr; + + c_ierr = PMPI_Finalize(); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} + +#if OPAL_HAVE_WEAK_SYMBOLS +#pragma weak MPI_INIT = monitoring_prof_mpi_init_f2c +#pragma weak mpi_init = monitoring_prof_mpi_init_f2c +#pragma weak mpi_init_ = monitoring_prof_mpi_init_f2c +#pragma weak mpi_init__ = monitoring_prof_mpi_init_f2c +#pragma weak MPI_Init_f = monitoring_prof_mpi_init_f2c +#pragma weak MPI_Init_f08 = monitoring_prof_mpi_init_f2c + +#pragma weak MPI_FINALIZE = monitoring_prof_mpi_finalize_f2c +#pragma weak mpi_finalize = monitoring_prof_mpi_finalize_f2c +#pragma weak mpi_finalize_ = monitoring_prof_mpi_finalize_f2c +#pragma weak mpi_finalize__ = monitoring_prof_mpi_finalize_f2c +#pragma weak MPI_Finalize_f = monitoring_prof_mpi_finalize_f2c +#pragma weak MPI_Finalize_f08 = monitoring_prof_mpi_finalize_f2c +#else + +OMPI_GENERATE_F77_BINDINGS (MPI_INIT, + mpi_init, + mpi_init_, + mpi_init__, + monitoring_prof_mpi_init_f2c, + (MPI_Fint *ierr), + (ierr) ) + +OMPI_GENERATE_F77_BINDINGS (MPI_FINALIZE, + mpi_finalize, + mpi_finalize_, + mpi_finalize__, + monitoring_prof_mpi_finalize_f2c, + (MPI_Fint *ierr), + (ierr) ) +#endif diff -Nru openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_aggregators.c openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_aggregators.c --- openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_aggregators.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_aggregators.c 2022-05-29 09:51:40.000000000 +0000 @@ -107,7 +107,7 @@ /* Determine whether to use the formula for 1-D or 2-D data decomposition. Anything ** that is not 1-D is assumed to be 2-D in this version */ - mode = ( fh->f_cc_size == fh->f_view_size ) ? 1 : 2; + mode = ( fh->f_cc_size == fh->f_avg_view_size ) ? 1 : 2; /* Determine the increment size when searching the optimal ** no. of aggregators @@ -1303,12 +1303,14 @@ fh->f_comm); if ( OMPI_SUCCESS != ret ) { opal_output (1, "mca_common_ompio_prepare_to_group: error in ompi_fcoll_base_coll_allgather_array\n"); + free(start_offsets_lens_tmp); goto exit; } end_offsets_tmp = (OMPI_MPI_OFFSET_TYPE* )malloc (fh->f_init_procs_per_group * sizeof(OMPI_MPI_OFFSET_TYPE)); if (NULL == end_offsets_tmp) { opal_output (1, "OUT OF MEMORY\n"); - goto exit; + free(start_offsets_lens_tmp); + return OMPI_ERR_OUT_OF_RESOURCE; } for( k = 0 ; k < fh->f_init_procs_per_group; k++){ end_offsets_tmp[k] = start_offsets_lens_tmp[3*k] + start_offsets_lens_tmp[3*k+1]; @@ -1333,14 +1335,12 @@ if (NULL == aggr_bytes_per_group_tmp) { opal_output (1, "OUT OF MEMORY\n"); ret = OMPI_ERR_OUT_OF_RESOURCE; - free(end_offsets_tmp); goto exit; } decision_list_tmp = (int* )malloc (fh->f_init_num_aggrs * sizeof(int)); if (NULL == decision_list_tmp) { opal_output (1, "OUT OF MEMORY\n"); ret = OMPI_ERR_OUT_OF_RESOURCE; - free(end_offsets_tmp); if (NULL != aggr_bytes_per_group_tmp) { free(aggr_bytes_per_group_tmp); } @@ -1459,8 +1459,8 @@ */ static double cost_calc (int P, int P_a, size_t d_p, size_t b_c, int dim ) { - float n_as=1.0, m_s=1.0, n_s=1.0; - float n_ar=1.0; + double n_as=1.0, m_s=1.0, n_s=1.0; + double n_ar=1.0; double t_send, t_recv, t_tot; /* LogGP parameters based on DDR InfiniBand values */ @@ -1470,7 +1470,7 @@ double G=.00000000067; long file_domain = (P * d_p) / P_a; - float n_r = (float)file_domain/(float) b_c; + double n_r = (double)file_domain/(double) b_c; switch (dim) { case DIM1: @@ -1480,10 +1480,10 @@ n_ar = 1; n_as = 1; m_s = b_c; - n_s = (float)d_p/(float)b_c; + n_s = (double)d_p/(double)b_c; } else { - n_ar = (float)b_c/(float)d_p; + n_ar = (double)b_c/(double)d_p; n_as = 1; m_s = d_p; n_s = 1; @@ -1495,14 +1495,14 @@ int P_x, P_y; P_x = P_y = (int) sqrt(P); - n_as = (float) P_a / (float)P_x; + n_as = (double) P_a / (double)P_x; - n_ar = (float) P_y; + n_ar = (double) P_y; if ( d_p > (P_a*b_c/P )) { - m_s = fmin(b_c / P_y, d_p); + m_s = fmin((double) b_c / (double)P_y, (double)d_p); } else { - m_s = fmin(d_p * P_x / P_a, d_p); + m_s = fmin((double) (d_p * P_x) / (double)P_a, (double)d_p); } break; } @@ -1511,7 +1511,7 @@ break; } - n_s = (float) d_p / (float)(n_as * m_s); + n_s = (double) d_p / (double)(n_as * m_s); if( m_s < 33554432) { g = .00000108; diff -Nru openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_buffer.c openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_buffer.c --- openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_buffer.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_buffer.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,171 @@ +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2016 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2008-2019 University of Houston. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "opal/datatype/opal_convertor.h" +#include "opal/datatype/opal_datatype_cuda.h" +#include "opal/mca/common/cuda/common_cuda.h" +#include "opal/util/sys_limits.h" + +#include "opal/mca/allocator/allocator.h" +#include "opal/mca/allocator/base/base.h" +#include "common_ompio.h" +#include "common_ompio_buffer.h" + + +static opal_mutex_t mca_common_ompio_buffer_mutex; /* lock for thread safety */ +static mca_allocator_base_component_t* mca_common_ompio_allocator_component=NULL; +static mca_allocator_base_module_t* mca_common_ompio_allocator=NULL; + +//static opal_atomic_int32_t mca_common_ompio_buffer_init = 0; +static int32_t mca_common_ompio_buffer_init = 0; +static int32_t mca_common_ompio_pagesize=4096; +static void* mca_common_ompio_buffer_alloc_seg ( void *ctx, size_t *size ); +static void mca_common_ompio_buffer_free_seg ( void *ctx, void *buf ); + +#if OPAL_CUDA_SUPPORT +void mca_common_ompio_check_gpu_buf ( ompio_file_t *fh, const void *buf, int *is_gpu, + int *is_managed) +{ + opal_convertor_t convertor; + + *is_gpu=0; + *is_managed=0; + + convertor.flags=0; + if ( opal_cuda_check_one_buf ( (char *)buf, &convertor ) ) { + *is_gpu = 1; + if ( convertor.flags & CONVERTOR_CUDA_UNIFIED ){ + *is_managed =1; + } + } + + return; +} +#endif + +static void* mca_common_ompio_buffer_alloc_seg ( void*ctx, size_t *size ) +{ + char *buf=NULL; + size_t realsize, numpages; + + numpages = (*size + mca_common_ompio_pagesize -1 )/mca_common_ompio_pagesize; + realsize = numpages * mca_common_ompio_pagesize; + + buf = malloc ( realsize); +#if OPAL_CUDA_SUPPORT + if ( NULL != buf ) { + mca_common_cuda_register ( ( char *)buf, realsize, NULL ); + } +#endif + *size = realsize; + return buf; +} + +static void mca_common_ompio_buffer_free_seg ( void *ctx, void *buf ) +{ + if ( NULL != buf ) { +#if OPAL_CUDA_SUPPORT + mca_common_cuda_unregister ( (char *) buf, NULL ); +#endif + free ( buf ); + } + return; +} + +int mca_common_ompio_buffer_alloc_init ( void ) +{ + bool thread_safe=true; + + if(OPAL_THREAD_ADD_FETCH32(&mca_common_ompio_buffer_init, 1) > 1) + return OMPI_SUCCESS; + + /* initialize static objects */ + OBJ_CONSTRUCT(&mca_common_ompio_buffer_mutex, opal_mutex_t); + + OPAL_THREAD_LOCK (&mca_common_ompio_buffer_mutex ); + /* lookup name of the allocator to use */ + if(NULL == (mca_common_ompio_allocator_component = mca_allocator_component_lookup("basic"))) { + OPAL_THREAD_UNLOCK(&mca_common_ompio_buffer_mutex); + return OMPI_ERR_BUFFER; + } + + /* create an instance of the allocator */ + mca_common_ompio_allocator = mca_common_ompio_allocator_component->allocator_init(thread_safe, + mca_common_ompio_buffer_alloc_seg, + mca_common_ompio_buffer_free_seg, + NULL); + if(NULL == mca_common_ompio_allocator) { + OPAL_THREAD_UNLOCK(&mca_common_ompio_buffer_mutex); + return OMPI_ERR_BUFFER; + } + + mca_common_ompio_pagesize = opal_getpagesize(); + + OPAL_THREAD_UNLOCK(&mca_common_ompio_buffer_mutex); + return OMPI_SUCCESS; +} + +int mca_common_ompio_buffer_alloc_fini ( void ) +{ + if ( NULL != mca_common_ompio_allocator ) { + OPAL_THREAD_LOCK (&mca_common_ompio_buffer_mutex); + mca_common_ompio_allocator->alc_finalize(mca_common_ompio_allocator); + mca_common_ompio_allocator=NULL; + OPAL_THREAD_UNLOCK (&mca_common_ompio_buffer_mutex); + OBJ_DESTRUCT (&mca_common_ompio_buffer_mutex); + } + + return OMPI_SUCCESS; +} + +void *mca_common_ompio_alloc_buf ( ompio_file_t *fh, size_t bufsize ) +{ + char *tmp=NULL; + + if ( !mca_common_ompio_buffer_init ){ + mca_common_ompio_buffer_alloc_init (); + } + + OPAL_THREAD_LOCK (&mca_common_ompio_buffer_mutex); + tmp = mca_common_ompio_allocator->alc_alloc (mca_common_ompio_allocator, + bufsize, 0 ); + OPAL_THREAD_UNLOCK (&mca_common_ompio_buffer_mutex); + return tmp; +} + +void mca_common_ompio_release_buf ( ompio_file_t *fh, void *buf ) +{ + + if ( !mca_common_ompio_buffer_init ){ + /* Should not happen. You can not release a buf without + ** having it allocated first. + */ + opal_output (1, "error in mca_common_ompio_release_buf: allocator not initialized\n"); + } + + OPAL_THREAD_LOCK (&mca_common_ompio_buffer_mutex); + mca_common_ompio_allocator->alc_free (mca_common_ompio_allocator, + buf); + OPAL_THREAD_UNLOCK (&mca_common_ompio_buffer_mutex); + + return; +} + diff -Nru openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_buffer.h openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_buffer.h --- openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_buffer.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_buffer.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,72 @@ +/* -*- Mode: C; c-basic-offset:4 ; -*- */ +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2007 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2008-2019 University of Houston. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef MCA_COMMON_OMPIO_CUDA_H +#define MCA_COMMON_OMPIO_CUDA_H + + +#define OMPIO_PREPARE_BUF(_fh,_buf,_count,_datatype,_tbuf,_convertor,_max_data,_decoded_iov,_iov_count){ \ + OBJ_CONSTRUCT( _convertor, opal_convertor_t); \ + opal_convertor_copy_and_prepare_for_send ( _fh->f_file_convertor, &(_datatype->super), _count, _buf, CONVERTOR_SEND_CONVERSION, _convertor ); \ + opal_convertor_get_packed_size( _convertor, &_max_data ); \ + _tbuf = mca_common_ompio_alloc_buf (_fh, _max_data); \ + if ( NULL == _tbuf ) { \ + opal_output(1, "common_ompio: error allocating memory\n"); \ + return OMPI_ERR_OUT_OF_RESOURCE; \ + } \ + _decoded_iov = (struct iovec *) malloc ( sizeof ( struct iovec )); \ + if ( NULL == _decoded_iov ) { \ + opal_output(1, "common_ompio: could not allocate memory.\n"); \ + return OMPI_ERR_OUT_OF_RESOURCE; \ + } \ + _decoded_iov->iov_base = _tbuf; \ + _decoded_iov->iov_len = _max_data; \ + _iov_count=1;} + +#define OMPIO_PREPARE_READ_BUF(_fh,_buf,_count,_datatype,_tbuf,_convertor,_max_data,_decoded_iov,_iov_count){ \ + OBJ_CONSTRUCT( _convertor, opal_convertor_t); \ + opal_convertor_copy_and_prepare_for_recv ( _fh->f_file_convertor, &(_datatype->super), _count, _buf, 0, _convertor ); \ + opal_convertor_get_packed_size( _convertor, &_max_data ); \ + _tbuf = mca_common_ompio_alloc_buf (_fh, _max_data); \ + if ( NULL == _tbuf ) { \ + opal_output(1, "common_ompio: error allocating memory\n"); \ + return OMPI_ERR_OUT_OF_RESOURCE; \ + } \ + _decoded_iov = (struct iovec *) malloc ( sizeof ( struct iovec )); \ + if ( NULL == _decoded_iov ) { \ + opal_output(1, "common_ompio: could not allocate memory.\n"); \ + return OMPI_ERR_OUT_OF_RESOURCE; \ + } \ + _decoded_iov->iov_base = _tbuf; \ + _decoded_iov->iov_len = _max_data; \ + _iov_count=1;} + +#if OPAL_CUDA_SUPPORT +void mca_common_ompio_check_gpu_buf ( ompio_file_t *fh, const void *buf, + int *is_gpu, int *is_managed); +#endif +int mca_common_ompio_buffer_alloc_init ( void ); +int mca_common_ompio_buffer_alloc_fini ( void ); + + +void* mca_common_ompio_alloc_buf ( ompio_file_t *fh, size_t bufsize); +void mca_common_ompio_release_buf ( ompio_file_t *fh, void *buf ); + +#endif diff -Nru openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_cuda.c openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_cuda.c --- openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_cuda.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_cuda.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,165 +0,0 @@ -/* - * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2016 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * Copyright (c) 2004-2005 The Regents of the University of California. - * All rights reserved. - * Copyright (c) 2008-2018 University of Houston. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "ompi_config.h" - -#include "opal/datatype/opal_convertor.h" -#include "opal/datatype/opal_datatype_cuda.h" -#include "opal/mca/common/cuda/common_cuda.h" -#include "opal/util/sys_limits.h" - -#include "opal/mca/allocator/allocator.h" -#include "opal/mca/allocator/base/base.h" -#include "common_ompio.h" -#include "common_ompio_cuda.h" - - -static opal_mutex_t mca_common_ompio_cuda_mutex; /* lock for thread safety */ -static mca_allocator_base_component_t* mca_common_ompio_allocator_component=NULL; -static mca_allocator_base_module_t* mca_common_ompio_allocator=NULL; - -static int32_t mca_common_ompio_cuda_init = 0; -static int32_t mca_common_ompio_pagesize=4096; -static void* mca_common_ompio_cuda_alloc_seg ( void *ctx, size_t *size ); -static void mca_common_ompio_cuda_free_seg ( void *ctx, void *buf ); - -void mca_common_ompio_check_gpu_buf ( ompio_file_t *fh, const void *buf, int *is_gpu, - int *is_managed) -{ - opal_convertor_t convertor; - - *is_gpu=0; - *is_managed=0; - - convertor.flags=0; - if ( opal_cuda_check_one_buf ( (char *)buf, &convertor ) ) { - *is_gpu = 1; - if ( convertor.flags & CONVERTOR_CUDA_UNIFIED ){ - *is_managed =1; - } - } - - return; -} - -static void* mca_common_ompio_cuda_alloc_seg ( void*ctx, size_t *size ) -{ - char *buf=NULL; - size_t realsize, numpages; - - numpages = (*size + mca_common_ompio_pagesize -1 )/mca_common_ompio_pagesize; - realsize = numpages * mca_common_ompio_pagesize; - - buf = malloc ( realsize); - if ( NULL != buf ) { - mca_common_cuda_register ( ( char *)buf, realsize, NULL ); - } - *size = realsize; - return buf; -} - -static void mca_common_ompio_cuda_free_seg ( void *ctx, void *buf ) -{ - if ( NULL != buf ) { - mca_common_cuda_unregister ( (char *) buf, NULL ); - free ( buf ); - } - return; -} - -int mca_common_ompio_cuda_alloc_init ( void ) -{ - bool thread_safe=true; - - if(OPAL_THREAD_ADD_FETCH32(&mca_common_ompio_cuda_init, 1) > 1) - return OMPI_SUCCESS; - - /* initialize static objects */ - OBJ_CONSTRUCT(&mca_common_ompio_cuda_mutex, opal_mutex_t); - - OPAL_THREAD_LOCK (&mca_common_ompio_cuda_mutex ); - /* lookup name of the allocator to use */ - if(NULL == (mca_common_ompio_allocator_component = mca_allocator_component_lookup("basic"))) { - OPAL_THREAD_UNLOCK(&mca_common_ompio_cuda_mutex); - return OMPI_ERR_BUFFER; - } - - /* create an instance of the allocator */ - mca_common_ompio_allocator = mca_common_ompio_allocator_component->allocator_init(thread_safe, - mca_common_ompio_cuda_alloc_seg, - mca_common_ompio_cuda_free_seg, - NULL); - if(NULL == mca_common_ompio_allocator) { - OPAL_THREAD_UNLOCK(&mca_common_ompio_cuda_mutex); - return OMPI_ERR_BUFFER; - } - -// mca_common_ompio_pagesize = sysconf(_SC_PAGESIZE); - mca_common_ompio_pagesize = opal_getpagesize(); - - OPAL_THREAD_UNLOCK(&mca_common_ompio_cuda_mutex); - return OMPI_SUCCESS; -} - -int mca_common_ompio_cuda_alloc_fini ( void ) -{ - if ( NULL != mca_common_ompio_allocator ) { - OPAL_THREAD_LOCK (&mca_common_ompio_cuda_mutex); - mca_common_ompio_allocator->alc_finalize(mca_common_ompio_allocator); - mca_common_ompio_allocator=NULL; - OPAL_THREAD_UNLOCK (&mca_common_ompio_cuda_mutex); - OBJ_DESTRUCT (&mca_common_ompio_cuda_mutex); - } - - return OMPI_SUCCESS; -} - -void *mca_common_ompio_alloc_buf ( ompio_file_t *fh, size_t bufsize ) -{ - char *tmp=NULL; - - if ( !mca_common_ompio_cuda_init ){ - mca_common_ompio_cuda_alloc_init (); - } - - OPAL_THREAD_LOCK (&mca_common_ompio_cuda_mutex); - tmp = mca_common_ompio_allocator->alc_alloc (mca_common_ompio_allocator, - bufsize, 0 ); - OPAL_THREAD_UNLOCK (&mca_common_ompio_cuda_mutex); - return tmp; -} - -void mca_common_ompio_release_buf ( ompio_file_t *fh, void *buf ) -{ - - if ( !mca_common_ompio_cuda_init ){ - /* Should not happen. You can not release a buf without - ** having it allocated first. - */ - opal_output (1, "error in mca_common_ompio_release_buf: allocator not initialized\n"); - } - - OPAL_THREAD_LOCK (&mca_common_ompio_cuda_mutex); - mca_common_ompio_allocator->alc_free (mca_common_ompio_allocator, - buf); - OPAL_THREAD_UNLOCK (&mca_common_ompio_cuda_mutex); - - return; -} - diff -Nru openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_cuda.h openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_cuda.h --- openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_cuda.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_cuda.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ -/* -*- Mode: C; c-basic-offset:4 ; -*- */ -/* - * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2007 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * Copyright (c) 2004-2005 The Regents of the University of California. - * All rights reserved. - * Copyright (c) 2008-2018 University of Houston. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef MCA_COMMON_OMPIO_CUDA_H -#define MCA_COMMON_OMPIO_CUDA_H - - -#define OMPIO_CUDA_PREPARE_BUF(_fh,_buf,_count,_datatype,_tbuf,_convertor,_max_data,_decoded_iov,_iov_count){ \ - opal_convertor_clone ( _fh->f_convertor, _convertor, 0); \ - opal_convertor_prepare_for_send ( _convertor, &(_datatype->super), _count, _buf );\ - opal_convertor_get_packed_size( _convertor, &_max_data ); \ - _tbuf = mca_common_ompio_alloc_buf (_fh, _max_data); \ - if ( NULL == _tbuf ) { \ - opal_output(1, "common_ompio: error allocating memory\n"); \ - return OMPI_ERR_OUT_OF_RESOURCE; \ - } \ - _decoded_iov = (struct iovec *) malloc ( sizeof ( struct iovec )); \ - if ( NULL == _decoded_iov ) { \ - opal_output(1, "common_ompio: could not allocate memory.\n"); \ - return OMPI_ERR_OUT_OF_RESOURCE; \ - } \ - _decoded_iov->iov_base = _tbuf; \ - _decoded_iov->iov_len = _max_data; \ - _iov_count=1;} - - -void mca_common_ompio_check_gpu_buf ( ompio_file_t *fh, const void *buf, - int *is_gpu, int *is_managed); -int mca_common_ompio_cuda_alloc_init ( void ); -int mca_common_ompio_cuda_alloc_fini ( void ); - - -void* mca_common_ompio_alloc_buf ( ompio_file_t *fh, size_t bufsize); -void mca_common_ompio_release_buf ( ompio_file_t *fh, void *buf ); - -#endif diff -Nru openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_file_open.c openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_file_open.c --- openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_file_open.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_file_open.c 2022-05-29 09:51:40.000000000 +0000 @@ -41,6 +41,9 @@ #include #include "common_ompio.h" #include "ompi/mca/topo/topo.h" +#include "opal/util/opal_getcwd.h" +#include "opal/util/path.h" +#include "opal/util/os_path.h" static mca_common_ompio_generate_current_file_view_fn_t generate_current_file_view_fn; static mca_common_ompio_get_mca_parameter_value_fn_t get_mca_parameter_value_fn; @@ -75,7 +78,8 @@ ompio_fh->f_rank = ompi_comm_rank (comm); ompio_fh->f_size = ompi_comm_size (comm); remote_arch = opal_local_arch; - ompio_fh->f_convertor = opal_convertor_create (remote_arch, 0); + ompio_fh->f_mem_convertor = opal_convertor_create (remote_arch, 0); + ompio_fh->f_file_convertor = opal_convertor_create (remote_arch, 0); if ( true == use_sharedfp ) { ret = ompi_comm_dup (comm, &ompio_fh->f_comm); @@ -99,6 +103,22 @@ ompio_fh->f_get_mca_parameter_value=get_mca_parameter_value_fn; ompio_fh->f_filename = filename; + if (opal_path_is_absolute(filename) ) { + ompio_fh->f_fullfilename = strdup(filename); + } + else { + char path[OPAL_PATH_MAX]; + ret = opal_getcwd(path, OPAL_PATH_MAX); + if (OPAL_SUCCESS != ret) { + goto fn_fail; + } + ompio_fh->f_fullfilename = opal_os_path(0, path, filename, NULL); + if (NULL == ompio_fh->f_fullfilename){ + ret = OMPI_ERROR; + goto fn_fail; + } + } + mca_common_ompio_set_file_defaults (ompio_fh); ompio_fh->f_split_coll_req = NULL; @@ -234,6 +254,11 @@ int delete_flag = 0; char name[256]; + /* Call coll_barrier only if collectives are set (same reasoning as below for f_fs) */ + if (NULL == ompio_fh->f_comm || NULL == ompio_fh->f_comm->c_coll) { + return OMPI_SUCCESS; + } + ret = ompio_fh->f_comm->c_coll->coll_barrier ( ompio_fh->f_comm, ompio_fh->f_comm->c_coll->coll_barrier_module); if ( OMPI_SUCCESS != ret ) { /* Not sure what to do */ @@ -279,7 +304,7 @@ ret = ompio_fh->f_fs->fs_file_close (ompio_fh); } if ( delete_flag ) { - ret = mca_common_ompio_file_delete ( ompio_fh->f_filename, &(MPI_INFO_NULL->super) ); + ret = mca_common_ompio_file_delete ( ompio_fh->f_fullfilename, &(MPI_INFO_NULL->super) ); } if ( NULL != ompio_fh->f_fs ) { @@ -323,22 +348,29 @@ ompio_fh->f_decoded_iov = NULL; } - if (NULL != ompio_fh->f_convertor) { - free (ompio_fh->f_convertor); - ompio_fh->f_convertor = NULL; + if (NULL != ompio_fh->f_mem_convertor) { + opal_convertor_cleanup (ompio_fh->f_mem_convertor); + free (ompio_fh->f_mem_convertor); + ompio_fh->f_mem_convertor = NULL; } + if (NULL != ompio_fh->f_file_convertor) { + opal_convertor_cleanup (ompio_fh->f_file_convertor); + free (ompio_fh->f_file_convertor); + ompio_fh->f_file_convertor = NULL; + } + if (NULL != ompio_fh->f_datarep) { free (ompio_fh->f_datarep); ompio_fh->f_datarep = NULL; } - if ( NULL != ompio_fh->f_coll_write_time ) { free ( ompio_fh->f_coll_write_time ); ompio_fh->f_coll_write_time = NULL; } - + free (ompio_fh->f_fullfilename); + if ( NULL != ompio_fh->f_coll_read_time ) { free ( ompio_fh->f_coll_read_time ); ompio_fh->f_coll_read_time = NULL; @@ -359,8 +391,7 @@ if ( MPI_DATATYPE_NULL != ompio_fh->f_orig_filetype ){ ompi_datatype_destroy (&ompio_fh->f_orig_filetype); } - - + if (MPI_COMM_NULL != ompio_fh->f_comm && !(ompio_fh->f_flags & OMPIO_SHAREDFP_IS_SET) ) { ompi_comm_free (&ompio_fh->f_comm); } @@ -387,10 +418,10 @@ if ( 0 == fh->f_view_extent || 0 == fh->f_view_size || 0 == fh->f_etype_size ) { + /* not sure whether we should raise an error here */ *offset = 0; return OMPI_SUCCESS; } - /* No. of copies of the entire file view */ off = (fh->f_offset - fh->f_disp)/fh->f_view_extent; @@ -564,6 +595,7 @@ int count, const void *buf, size_t *max_data, + opal_convertor_t *conv, struct iovec **iov, uint32_t *iovec_count) { @@ -578,7 +610,7 @@ size_t temp_data; - opal_convertor_clone (fh->f_convertor, &convertor, 0); + opal_convertor_clone (conv, &convertor, 0); if (OMPI_SUCCESS != opal_convertor_prepare_for_send (&convertor, &(datatype->super), @@ -674,7 +706,8 @@ } free (temp_iov); - + opal_convertor_cleanup (&convertor); + return OMPI_SUCCESS; } diff -Nru openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_file_read.c openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_file_read.c --- openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_file_read.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_file_read.c 2022-05-29 09:51:40.000000000 +0000 @@ -33,12 +33,10 @@ #include "common_ompio.h" #include "common_ompio_request.h" +#include "common_ompio_buffer.h" #include #include -#if OPAL_CUDA_SUPPORT -#include "common_ompio_cuda.h" -#endif /* Read and write routines are split into two interfaces. ** The @@ -90,39 +88,52 @@ return ret; } - + bool need_to_copy = false; + opal_convertor_t convertor; #if OPAL_CUDA_SUPPORT int is_gpu, is_managed; - opal_convertor_t convertor; mca_common_ompio_check_gpu_buf ( fh, buf, &is_gpu, &is_managed); if ( is_gpu && !is_managed ) { + need_to_copy = true; + } +#endif + + if ( !( fh->f_flags & OMPIO_DATAREP_NATIVE ) && + !(datatype == &ompi_mpi_byte.dt || + datatype == &ompi_mpi_char.dt )) { + /* only need to copy if any of these conditions are given: + 1. buffer is an unmanaged CUDA buffer (checked above). + 2. Datarepresentation is anything other than 'native' and + 3. datatype is not byte or char (i.e it does require some actual + work to be done e.g. for external32. + */ + need_to_copy = true; + } + + if ( need_to_copy ) { char *tbuf=NULL; - OMPIO_CUDA_PREPARE_BUF(fh,buf,count,datatype,tbuf,&convertor,max_data,decoded_iov,iov_count); - - } + OMPIO_PREPARE_READ_BUF(fh,buf,count,datatype,tbuf,&convertor,max_data,decoded_iov,iov_count); + } else { mca_common_ompio_decode_datatype (fh, datatype, count, buf, &max_data, + fh->f_mem_convertor, &decoded_iov, &iov_count); } -#else - mca_common_ompio_decode_datatype (fh, - datatype, - count, - buf, - &max_data, - &decoded_iov, - &iov_count); -#endif + if ( 0 < max_data && 0 == fh->f_iov_count ) { if ( MPI_STATUS_IGNORE != status ) { status->_ucount = 0; } + if (NULL != decoded_iov) { + free (decoded_iov); + decoded_iov = NULL; + } return OMPI_SUCCESS; } @@ -152,7 +163,9 @@ &i, &j, &total_bytes_read, - &spc); + &spc, + &fh->f_io_array, + &fh->f_num_of_io_entries); if (fh->f_num_of_io_entries) { ret_code = fh->f_fbtl->fbtl_preadv (fh); @@ -168,15 +181,14 @@ } } -#if OPAL_CUDA_SUPPORT - if ( is_gpu && !is_managed ) { + if ( need_to_copy ) { size_t pos=0; opal_convertor_unpack (&convertor, decoded_iov, &iov_count, &pos ); opal_convertor_cleanup (&convertor); mca_common_ompio_release_buf (fh, decoded_iov->iov_base); } -#endif + if (NULL != decoded_iov) { free (decoded_iov); decoded_iov = NULL; @@ -255,13 +267,32 @@ int i = 0; /* index into the decoded iovec of the buffer */ int j = 0; /* index into the file vie iovec */ + bool need_to_copy = false; + #if OPAL_CUDA_SUPPORT int is_gpu, is_managed; mca_common_ompio_check_gpu_buf ( fh, buf, &is_gpu, &is_managed); if ( is_gpu && !is_managed ) { + need_to_copy = true; + } +#endif + + if ( !( fh->f_flags & OMPIO_DATAREP_NATIVE ) && + !(datatype == &ompi_mpi_byte.dt || + datatype == &ompi_mpi_char.dt )) { + /* only need to copy if any of these conditions are given: + 1. buffer is an unmanaged CUDA buffer (checked above). + 2. Datarepresentation is anything other than 'native' and + 3. datatype is not byte or char (i.e it does require some actual + work to be done e.g. for external32. + */ + need_to_copy = true; + } + + if ( need_to_copy ) { char *tbuf=NULL; - OMPIO_CUDA_PREPARE_BUF(fh,buf,count,datatype,tbuf,&ompio_req->req_convertor,max_data,decoded_iov,iov_count); + OMPIO_PREPARE_READ_BUF(fh,buf,count,datatype,tbuf,&ompio_req->req_convertor,max_data,decoded_iov,iov_count); ompio_req->req_tbuf = tbuf; ompio_req->req_size = max_data; @@ -272,23 +303,21 @@ count, buf, &max_data, + fh->f_mem_convertor, &decoded_iov, &iov_count); } -#else - mca_common_ompio_decode_datatype (fh, - datatype, - count, - buf, - &max_data, - &decoded_iov, - &iov_count); -#endif + if ( 0 < max_data && 0 == fh->f_iov_count ) { ompio_req->req_ompi.req_status.MPI_ERROR = OMPI_SUCCESS; ompio_req->req_ompi.req_status._ucount = 0; ompi_request_complete (&ompio_req->req_ompi, false); *request = (ompi_request_t *) ompio_req; + if (NULL != decoded_iov) { + free (decoded_iov); + decoded_iov = NULL; + } + return OMPI_SUCCESS; } @@ -305,7 +334,9 @@ &i, &j, &total_bytes_read, - &spc); + &spc, + &fh->f_io_array, + &fh->f_num_of_io_entries); if (fh->f_num_of_io_entries) { fh->f_fbtl->fbtl_ipreadv (fh, (ompi_request_t *) ompio_req); @@ -372,6 +403,62 @@ /* Infrastructure for collective operations */ +int mca_common_ompio_file_read_all (ompio_file_t *fh, + void *buf, + int count, + struct ompi_datatype_t *datatype, + ompi_status_public_t * status) +{ + int ret = OMPI_SUCCESS; + + + if ( !( fh->f_flags & OMPIO_DATAREP_NATIVE ) && + !(datatype == &ompi_mpi_byte.dt || + datatype == &ompi_mpi_char.dt )) { + /* No need to check for GPU buffer for collective I/O. + Most algorithms copy data from aggregators, and send/recv + to/from GPU buffers works if ompi was compiled was GPU support. + + If the individual fcoll component is used: there are no aggregators + in that concept. However, since they call common_ompio_file_write, + CUDA buffers are handled by that routine. + + Thus, we only check for + 1. Datarepresentation is anything other than 'native' and + 2. datatype is not byte or char (i.e it does require some actual + work to be done e.g. for external32. + */ + size_t pos=0, max_data=0; + char *tbuf=NULL; + opal_convertor_t convertor; + struct iovec *decoded_iov = NULL; + uint32_t iov_count = 0; + + OMPIO_PREPARE_READ_BUF(fh,buf,count,datatype,tbuf,&convertor,max_data,decoded_iov,iov_count); + ret = fh->f_fcoll->fcoll_file_read_all (fh, + decoded_iov->iov_base, + decoded_iov->iov_len, + MPI_BYTE, + status); + opal_convertor_unpack (&convertor, decoded_iov, &iov_count, &pos ); + + opal_convertor_cleanup (&convertor); + mca_common_ompio_release_buf (fh, decoded_iov->iov_base); + if (NULL != decoded_iov) { + free (decoded_iov); + decoded_iov = NULL; + } + } + else { + ret = fh->f_fcoll->fcoll_file_read_all (fh, + buf, + count, + datatype, + status); + } + return ret; +} + int mca_common_ompio_file_read_at_all (ompio_file_t *fh, OMPI_MPI_OFFSET_TYPE offset, void *buf, @@ -384,28 +471,23 @@ mca_common_ompio_file_get_position (fh, &prev_offset ); mca_common_ompio_set_explicit_offset (fh, offset); - ret = fh->f_fcoll->fcoll_file_read_all (fh, - buf, - count, - datatype, - status); - + ret = mca_common_ompio_file_read_all (fh, + buf, + count, + datatype, + status); + mca_common_ompio_set_explicit_offset (fh, prev_offset); return ret; } -int mca_common_ompio_file_iread_at_all (ompio_file_t *fp, - OMPI_MPI_OFFSET_TYPE offset, - void *buf, - int count, - struct ompi_datatype_t *datatype, - ompi_request_t **request) +int mca_common_ompio_file_iread_all (ompio_file_t *fp, + void *buf, + int count, + struct ompi_datatype_t *datatype, + ompi_request_t **request) { int ret = OMPI_SUCCESS; - OMPI_MPI_OFFSET_TYPE prev_offset; - - mca_common_ompio_file_get_position (fp, &prev_offset ); - mca_common_ompio_set_explicit_offset (fp, offset); if ( NULL != fp->f_fcoll->fcoll_file_iread_all ) { ret = fp->f_fcoll->fcoll_file_iread_all (fp, @@ -421,11 +503,33 @@ ret = mca_common_ompio_file_iread ( fp, buf, count, datatype, request ); } + return ret; +} +int mca_common_ompio_file_iread_at_all (ompio_file_t *fp, + OMPI_MPI_OFFSET_TYPE offset, + void *buf, + int count, + struct ompi_datatype_t *datatype, + ompi_request_t **request) +{ + int ret = OMPI_SUCCESS; + OMPI_MPI_OFFSET_TYPE prev_offset; + + mca_common_ompio_file_get_position (fp, &prev_offset ); + mca_common_ompio_set_explicit_offset (fp, offset); + + ret = mca_common_ompio_file_iread_all (fp, + buf, + count, + datatype, + request); + mca_common_ompio_set_explicit_offset (fp, prev_offset); return ret; } + int mca_common_ompio_set_explicit_offset (ompio_file_t *fh, OMPI_MPI_OFFSET_TYPE offset) { diff -Nru openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_file_view.c openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_file_view.c --- openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_file_view.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_file_view.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2008-2018 University of Houston. All rights reserved. + * Copyright (c) 2008-2021 University of Houston. All rights reserved. * Copyright (c) 2017-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. @@ -72,6 +72,16 @@ ptrdiff_t ftype_extent, lb, ub; ompi_datatype_t *newfiletype; + if ( (MPI_DISPLACEMENT_CURRENT == disp) && + (fh->f_amode & MPI_MODE_SEQUENTIAL) ) { + mca_sharedfp_base_module_t * shared_fp_base_module = fh->f_sharedfp; + if ( NULL == shared_fp_base_module ){ + opal_output(0, "No shared file pointer component found for this file. Can not execute\n"); + return OMPI_ERROR; + } + shared_fp_base_module->sharedfp_get_position(fh, &disp); + } + if ( NULL != fh->f_etype ) { ompi_datatype_destroy (&fh->f_etype); } @@ -91,6 +101,12 @@ fh->f_datarep = NULL; } + if (NULL != fh->f_file_convertor) { + opal_convertor_cleanup (fh->f_file_convertor); + free (fh->f_file_convertor); + fh->f_file_convertor = NULL; + } + /* Reset the flags first */ if ( fh->f_flags & OMPIO_CONTIGUOUS_FVIEW ) { fh->f_flags &= ~OMPIO_CONTIGUOUS_FVIEW; @@ -98,9 +114,24 @@ if ( fh->f_flags & OMPIO_UNIFORM_FVIEW ) { fh->f_flags &= ~OMPIO_UNIFORM_FVIEW; } + if ( fh->f_flags & OMPIO_DATAREP_NATIVE ) { + fh->f_flags &= ~OMPIO_DATAREP_NATIVE; + } fh->f_datarep = strdup (datarep); - datatype_duplicate (filetype, &fh->f_orig_filetype ); + if ( !(strcmp(datarep, "external32") && strcmp(datarep, "EXTERNAL32"))) { + fh->f_file_convertor = malloc ( sizeof(struct opal_convertor_t) ); + if ( NULL == fh->f_file_convertor ) { + return OMPI_ERR_OUT_OF_RESOURCE; + } + opal_convertor_clone (ompi_mpi_external32_convertor, fh->f_file_convertor, 0); + } + else { + fh->f_file_convertor = opal_convertor_create (opal_local_arch, 0); + fh->f_flags |= OMPIO_DATAREP_NATIVE; + } + + datatype_duplicate (filetype, &fh->f_orig_filetype ); opal_datatype_get_extent(&filetype->super, &lb, &ftype_extent); opal_datatype_type_size (&filetype->super, &ftype_size); @@ -129,6 +160,7 @@ 1, NULL, &max_data, + fh->f_file_convertor, &fh->f_decoded_iov, &fh->f_iov_count); @@ -145,7 +177,17 @@ // File view is not a multiple of the etype. return MPI_ERR_ARG; } + + // make sure that displacement is not negative, which could + // lead to an illegal access. + if ( 0 < fh->f_iov_count && 0 > (off_t)fh->f_decoded_iov[0].iov_base ) { + // I think MPI_ERR_TYPE would be more appropriate, but + // this is the error code expected in a testsuite, so I just + // go with this. + return MPI_ERR_IO; + } + if( SIMPLE_PLUS == OMPIO_MCA_GET(fh, grouping_option) ) { fh->f_cc_size = get_contiguous_chunk_size (fh, 1); } @@ -328,36 +370,28 @@ OMPI_MPI_OFFSET_TYPE get_contiguous_chunk_size (ompio_file_t *fh, int flag) { - int uniform = 0; OMPI_MPI_OFFSET_TYPE avg[3] = {0,0,0}; OMPI_MPI_OFFSET_TYPE global_avg[3] = {0,0,0}; int i = 0; - /* This function does two things: first, it determines the average data chunk - ** size in the file view for each process and across all processes. - ** Second, it establishes whether the view across all processes is uniform. - ** By definition, uniform means: - ** 1. the file view of each process has the same number of contiguous sections - ** 2. each section in the file view has exactly the same size + /* This function determines the average data chunk + ** size in the file view for each process and across all processes, + ** and the avg. file_view size across processes. */ if ( flag ) { global_avg[0] = MCA_IO_DEFAULT_FILE_VIEW_SIZE; + fh->f_avg_view_size = fh->f_view_size; } else { for (i=0 ; i<(int)fh->f_iov_count ; i++) { avg[0] += fh->f_decoded_iov[i].iov_len; - if (i && 0 == uniform) { - if (fh->f_decoded_iov[i].iov_len != fh->f_decoded_iov[i-1].iov_len) { - uniform = 1; - } - } } if ( 0 != fh->f_iov_count ) { avg[0] = avg[0]/fh->f_iov_count; } avg[1] = (OMPI_MPI_OFFSET_TYPE) fh->f_iov_count; - avg[2] = (OMPI_MPI_OFFSET_TYPE) uniform; + avg[2] = (OMPI_MPI_OFFSET_TYPE) fh->f_view_size; fh->f_comm->c_coll->coll_allreduce (avg, global_avg, @@ -368,37 +402,7 @@ fh->f_comm->c_coll->coll_allreduce_module); global_avg[0] = global_avg[0]/fh->f_size; global_avg[1] = global_avg[1]/fh->f_size; - -#if 0 - /* Disabling the feature since we are not using it anyway. Saves us one allreduce operation. */ - int global_uniform=0; - - if ( global_avg[0] == avg[0] && - global_avg[1] == avg[1] && - 0 == avg[2] && - 0 == global_avg[2] ) { - uniform = 0; - } - else { - uniform = 1; - } - - /* second confirmation round to see whether all processes agree - ** on having a uniform file view or not - */ - fh->f_comm->c_coll->coll_allreduce (&uniform, - &global_uniform, - 1, - MPI_INT, - MPI_MAX, - fh->f_comm, - fh->f_comm->c_coll->coll_allreduce_module); - - if ( 0 == global_uniform ){ - /* yes, everybody agrees on having a uniform file view */ - fh->f_flags |= OMPIO_UNIFORM_FVIEW; - } -#endif + fh->f_avg_view_size = global_avg[2]/fh->f_size; } return global_avg[0]; diff -Nru openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_file_write.c openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_file_write.c --- openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_file_write.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_file_write.c 2022-05-29 09:51:40.000000000 +0000 @@ -31,13 +31,10 @@ #include "common_ompio.h" #include "common_ompio_request.h" +#include "common_ompio_buffer.h" #include #include -#if OPAL_CUDA_SUPPORT -#include "common_ompio_cuda.h" -#endif - int mca_common_ompio_file_write (ompio_file_t *fh, const void *buf, int count, @@ -72,16 +69,34 @@ return ret; } + bool need_to_copy = false; + #if OPAL_CUDA_SUPPORT int is_gpu, is_managed; mca_common_ompio_check_gpu_buf ( fh, buf, &is_gpu, &is_managed); if ( is_gpu && !is_managed ) { + need_to_copy = true; + } +#endif + + if ( !( fh->f_flags & OMPIO_DATAREP_NATIVE ) && + !(datatype == &ompi_mpi_byte.dt || + datatype == &ompi_mpi_char.dt )) { + /* only need to copy if any of these conditions are given: + 1. buffer is an unmanaged CUDA buffer (checked above). + 2. Datarepresentation is anything other than 'native' and + 3. datatype is not byte or char (i.e it does require some actual + work to be done e.g. for external32. + */ + need_to_copy = true; + } + + if ( need_to_copy ) { size_t pos=0; char *tbuf=NULL; opal_convertor_t convertor; - OMPIO_CUDA_PREPARE_BUF(fh,buf,count,datatype,tbuf,&convertor,max_data,decoded_iov,iov_count); - + OMPIO_PREPARE_BUF(fh,buf,count,datatype,tbuf,&convertor,max_data,decoded_iov,iov_count); opal_convertor_pack (&convertor, decoded_iov, &iov_count, &pos ); opal_convertor_cleanup ( &convertor); } @@ -91,22 +106,19 @@ count, buf, &max_data, + fh->f_mem_convertor, &decoded_iov, &iov_count); } -#else - mca_common_ompio_decode_datatype (fh, - datatype, - count, - buf, - &max_data, - &decoded_iov, - &iov_count); -#endif + if ( 0 < max_data && 0 == fh->f_iov_count ) { if ( MPI_STATUS_IGNORE != status ) { status->_ucount = 0; } + if (NULL != decoded_iov) { + free (decoded_iov); + decoded_iov = NULL; + } return OMPI_SUCCESS; } @@ -134,7 +146,9 @@ &i, &j, &total_bytes_written, - &spc); + &spc, + &fh->f_io_array, + &fh->f_num_of_io_entries); if (fh->f_num_of_io_entries) { ret_code =fh->f_fbtl->fbtl_pwritev (fh); @@ -149,11 +163,11 @@ fh->f_io_array = NULL; } } -#if OPAL_CUDA_SUPPORT - if ( is_gpu && !is_managed ) { + + if ( need_to_copy ) { mca_common_ompio_release_buf (fh, decoded_iov->iov_base); } -#endif + if (NULL != decoded_iov) { free (decoded_iov); @@ -228,16 +242,34 @@ int i = 0; /* index into the decoded iovec of the buffer */ int j = 0; /* index into the file vie iovec */ + bool need_to_copy = false; + #if OPAL_CUDA_SUPPORT int is_gpu, is_managed; mca_common_ompio_check_gpu_buf ( fh, buf, &is_gpu, &is_managed); if ( is_gpu && !is_managed ) { + need_to_copy = true; + } +#endif + + if ( !( fh->f_flags & OMPIO_DATAREP_NATIVE ) && + !(datatype == &ompi_mpi_byte.dt || + datatype == &ompi_mpi_char.dt )) { + /* only need to copy if any of these conditions are given: + 1. buffer is an unmanaged CUDA buffer (checked above). + 2. Datarepresentation is anything other than 'native' and + 3. datatype is not byte or char (i.e it does require some actual + work to be done e.g. for external32. + */ + need_to_copy = true; + } + + if ( need_to_copy ) { size_t pos=0; char *tbuf=NULL; opal_convertor_t convertor; - - OMPIO_CUDA_PREPARE_BUF(fh,buf,count,datatype,tbuf,&convertor,max_data,decoded_iov,iov_count); + OMPIO_PREPARE_BUF(fh,buf,count,datatype,tbuf,&convertor,max_data,decoded_iov,iov_count); opal_convertor_pack (&convertor, decoded_iov, &iov_count, &pos ); opal_convertor_cleanup (&convertor); @@ -250,23 +282,21 @@ count, buf, &max_data, + fh->f_mem_convertor, &decoded_iov, &iov_count); } -#else - mca_common_ompio_decode_datatype (fh, - datatype, - count, - buf, - &max_data, - &decoded_iov, - &iov_count); -#endif + if ( 0 < max_data && 0 == fh->f_iov_count ) { ompio_req->req_ompi.req_status.MPI_ERROR = OMPI_SUCCESS; ompio_req->req_ompi.req_status._ucount = 0; ompi_request_complete (&ompio_req->req_ompi, false); *request = (ompi_request_t *) ompio_req; + if (NULL != decoded_iov) { + free (decoded_iov); + decoded_iov = NULL; + } + return OMPI_SUCCESS; } @@ -283,7 +313,9 @@ &i, &j, &total_bytes_written, - &spc); + &spc, + &fh->f_io_array, + &fh->f_num_of_io_entries); if (fh->f_num_of_io_entries) { fh->f_fbtl->fbtl_ipwritev (fh, (ompi_request_t *) ompio_req); @@ -348,6 +380,62 @@ /* Collective operations */ /******************************************************************/ +int mca_common_ompio_file_write_all (ompio_file_t *fh, + const void *buf, + int count, + struct ompi_datatype_t *datatype, + ompi_status_public_t *status) +{ + int ret = OMPI_SUCCESS; + + if ( !( fh->f_flags & OMPIO_DATAREP_NATIVE ) && + !(datatype == &ompi_mpi_byte.dt || + datatype == &ompi_mpi_char.dt )) { + /* No need to check for GPU buffer for collective I/O. + Most algorithms first copy data to aggregators, and send/recv + to/from GPU buffers works if ompi was compiled was GPU support. + + If the individual fcoll component is used: there are no aggregators + in that concept. However, since they call common_ompio_file_write, + CUDA buffers are handled by that routine. + + Thus, we only check for + 1. Datarepresentation is anything other than 'native' and + 2. datatype is not byte or char (i.e it does require some actual + work to be done e.g. for external32. + */ + size_t pos=0, max_data=0; + char *tbuf=NULL; + opal_convertor_t convertor; + struct iovec *decoded_iov = NULL; + uint32_t iov_count = 0; + + OMPIO_PREPARE_BUF(fh,buf,count,datatype,tbuf,&convertor,max_data,decoded_iov,iov_count); + opal_convertor_pack (&convertor, decoded_iov, &iov_count, &pos ); + opal_convertor_cleanup ( &convertor); + + ret = fh->f_fcoll->fcoll_file_write_all (fh, + decoded_iov->iov_base, + decoded_iov->iov_len, + MPI_BYTE, + status); + + + mca_common_ompio_release_buf (fh, decoded_iov->iov_base); + if (NULL != decoded_iov) { + free (decoded_iov); + decoded_iov = NULL; + } + } + else { + ret = fh->f_fcoll->fcoll_file_write_all (fh, + buf, + count, + datatype, + status); + } + return ret; +} int mca_common_ompio_file_write_at_all (ompio_file_t *fh, OMPI_MPI_OFFSET_TYPE offset, @@ -361,30 +449,23 @@ mca_common_ompio_file_get_position (fh, &prev_offset ); mca_common_ompio_set_explicit_offset (fh, offset); - ret = fh->f_fcoll->fcoll_file_write_all (fh, - buf, - count, - datatype, - status); - + ret = mca_common_ompio_file_write_all (fh, + buf, + count, + datatype, + status); + mca_common_ompio_set_explicit_offset (fh, prev_offset); return ret; } -int mca_common_ompio_file_iwrite_at_all (ompio_file_t *fp, - OMPI_MPI_OFFSET_TYPE offset, - const void *buf, - int count, - struct ompi_datatype_t *datatype, - ompi_request_t **request) +int mca_common_ompio_file_iwrite_all (ompio_file_t *fp, + const void *buf, + int count, + struct ompi_datatype_t *datatype, + ompi_request_t **request) { - int ret = OMPI_SUCCESS; - OMPI_MPI_OFFSET_TYPE prev_offset; - - mca_common_ompio_file_get_position (fp, &prev_offset ); - - mca_common_ompio_set_explicit_offset (fp, offset); if ( NULL != fp->f_fcoll->fcoll_file_iwrite_all ) { ret = fp->f_fcoll->fcoll_file_iwrite_all (fp, @@ -400,18 +481,40 @@ ret = mca_common_ompio_file_iwrite ( fp, buf, count, datatype, request ); } + return ret; +} + + +int mca_common_ompio_file_iwrite_at_all (ompio_file_t *fp, + OMPI_MPI_OFFSET_TYPE offset, + const void *buf, + int count, + struct ompi_datatype_t *datatype, + ompi_request_t **request) +{ + + int ret = OMPI_SUCCESS; + OMPI_MPI_OFFSET_TYPE prev_offset; + + mca_common_ompio_file_get_position (fp, &prev_offset ); + mca_common_ompio_set_explicit_offset (fp, offset); + + ret = mca_common_ompio_file_iwrite_all ( fp, buf, count, datatype, request ); + mca_common_ompio_set_explicit_offset (fp, prev_offset); return ret; } + /* Helper function used by both read and write operations */ /**************************************************************/ int mca_common_ompio_build_io_array ( ompio_file_t *fh, int index, int cycles, size_t bytes_per_cycle, size_t max_data, uint32_t iov_count, struct iovec *decoded_iov, int *ii, int *jj, size_t *tbw, - size_t *spc) + size_t *spc, mca_common_ompio_io_array_t **io_array, + int *num_io_entries) { ptrdiff_t disp; int block = 1; @@ -424,7 +527,9 @@ int k = 0; /* index into the io_array */ int i = *ii; int j = *jj; - + mca_common_ompio_io_array_t *f_io_array=NULL; + int f_num_io_entries=0; + sum_previous_length = fh->f_position_in_file_view; if ((index == cycles-1) && (max_data % bytes_per_cycle)) { @@ -434,9 +539,9 @@ bytes_to_write_in_cycle = bytes_per_cycle; } - fh->f_io_array = (mca_common_ompio_io_array_t *)malloc + f_io_array = (mca_common_ompio_io_array_t *)malloc (OMPIO_IOVEC_INITIAL_SIZE * sizeof (mca_common_ompio_io_array_t)); - if (NULL == fh->f_io_array) { + if (NULL == f_io_array) { opal_output(1, "OUT OF MEMORY\n"); return OMPI_ERR_OUT_OF_RESOURCE; } @@ -445,10 +550,10 @@ /* reallocate if needed */ if (OMPIO_IOVEC_INITIAL_SIZE*block <= k) { block ++; - fh->f_io_array = (mca_common_ompio_io_array_t *)realloc - (fh->f_io_array, OMPIO_IOVEC_INITIAL_SIZE * + f_io_array = (mca_common_ompio_io_array_t *)realloc + (f_io_array, OMPIO_IOVEC_INITIAL_SIZE * block * sizeof (mca_common_ompio_io_array_t)); - if (NULL == fh->f_io_array) { + if (NULL == f_io_array) { opal_output(1, "OUT OF MEMORY\n"); return OMPI_ERR_OUT_OF_RESOURCE; } @@ -462,15 +567,15 @@ disp = (ptrdiff_t)decoded_iov[i].iov_base + (total_bytes_written - sum_previous_counts); - fh->f_io_array[k].memory_address = (IOVBASE_TYPE *)disp; + f_io_array[k].memory_address = (IOVBASE_TYPE *)disp; if (decoded_iov[i].iov_len - (total_bytes_written - sum_previous_counts) >= bytes_to_write_in_cycle) { - fh->f_io_array[k].length = bytes_to_write_in_cycle; + f_io_array[k].length = bytes_to_write_in_cycle; } else { - fh->f_io_array[k].length = decoded_iov[i].iov_len - + f_io_array[k].length = decoded_iov[i].iov_len - (total_bytes_written - sum_previous_counts); } @@ -492,36 +597,36 @@ disp = (ptrdiff_t)fh->f_decoded_iov[j].iov_base + (fh->f_total_bytes - sum_previous_length); - fh->f_io_array[k].offset = (IOVBASE_TYPE *)(intptr_t)(disp + fh->f_offset); + f_io_array[k].offset = (IOVBASE_TYPE *)(intptr_t)(disp + fh->f_offset); if (! (fh->f_flags & OMPIO_CONTIGUOUS_FVIEW)) { if (fh->f_decoded_iov[j].iov_len - (fh->f_total_bytes - sum_previous_length) - < fh->f_io_array[k].length) { - fh->f_io_array[k].length = fh->f_decoded_iov[j].iov_len - + < f_io_array[k].length) { + f_io_array[k].length = fh->f_decoded_iov[j].iov_len - (fh->f_total_bytes - sum_previous_length); } } - total_bytes_written += fh->f_io_array[k].length; - fh->f_total_bytes += fh->f_io_array[k].length; - bytes_to_write_in_cycle -= fh->f_io_array[k].length; + total_bytes_written += f_io_array[k].length; + fh->f_total_bytes += f_io_array[k].length; + bytes_to_write_in_cycle -= f_io_array[k].length; k = k + 1; } fh->f_position_in_file_view = sum_previous_length; fh->f_index_in_file_view = j; - fh->f_num_of_io_entries = k; + f_num_io_entries = k; #if 0 if (fh->f_rank == 0) { int d; - printf("*************************** %d\n", fh->f_num_of_io_entries); + printf("*************************** %d\n", f_num_io_entries); - for (d=0 ; df_num_of_io_entries ; d++) { + for (d=0 ; df_io_array[d].memory_address, - fh->f_io_array[d].offset, - fh->f_io_array[d].length, + f_io_array[d].memory_address, + f_io_array[d].offset, + f_io_array[d].length, sum_previous_counts, sum_previous_length); } } @@ -530,7 +635,9 @@ *jj = j; *tbw = total_bytes_written; *spc = sum_previous_counts; - + *io_array = f_io_array; + *num_io_entries = f_num_io_entries; + return OMPI_SUCCESS; } diff -Nru openmpi-4.0.3/ompi/mca/common/ompio/common_ompio.h openmpi-4.1.4/ompi/mca/common/ompio/common_ompio.h --- openmpi-4.0.3/ompi/mca/common/ompio/common_ompio.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/ompio/common_ompio.h 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2008-2016 University of Houston. All rights reserved. + * Copyright (c) 2008-2020 University of Houston. All rights reserved. * Copyright (c) 2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2018 DataDirect Networks. All rights reserved. @@ -29,7 +29,6 @@ #include "mpi.h" #include "opal/class/opal_list.h" #include "ompi/errhandler/errhandler.h" -#include "opal/threads/mutex.h" #include "ompi/file/file.h" #include "ompi/mca/io/io.h" #include "ompi/mca/fs/fs.h" @@ -66,7 +65,8 @@ #define OMPIO_LOCK_ENTIRE_FILE 0x00000080 #define OMPIO_LOCK_NEVER 0x00000100 #define OMPIO_LOCK_NOT_THIS_OP 0x00000200 - +#define OMPIO_DATAREP_NATIVE 0x00000400 +#define OMPIO_COLLECTIVE_OP 0x00000800 #define OMPIO_ROOT 0 @@ -87,7 +87,7 @@ #define OMPIO_LOCK_SELECTIVE 11 #define OMPIO_FCOLL_WANT_TIME_BREAKDOWN 0 -#define MCA_IO_DEFAULT_FILE_VIEW_SIZE 4*1024*1024 +#define MCA_IO_DEFAULT_FILE_VIEW_SIZE 6*1024*1024 #define OMPIO_UNIFORM_DIST_THRESHOLD 0.5 #define OMPIO_CONTG_THRESHOLD 1048576 @@ -106,7 +106,9 @@ UFS = 1, PVFS2 = 2, LUSTRE = 3, - PLFS = 4 + PLFS = 4, + IME = 5, + GPFS = 6 }; typedef struct mca_common_ompio_io_array_t { @@ -155,8 +157,10 @@ int f_perm; ompi_communicator_t *f_comm; const char *f_filename; + char *f_fullfilename; char *f_datarep; - opal_convertor_t *f_convertor; + opal_convertor_t *f_mem_convertor; + opal_convertor_t *f_file_convertor; opal_info_t *f_info; int32_t f_flags; void *f_fs_ptr; @@ -165,6 +169,7 @@ size_t f_stripe_size; int f_stripe_count; size_t f_cc_size; + size_t f_avg_view_size; int f_bytes_per_agg; enum ompio_fs_type f_fstype; ompi_request_t *f_split_coll_req; @@ -252,10 +257,16 @@ const void *buf, int count, struct ompi_datatype_t *datatype, ompi_request_t **request); +OMPI_DECLSPEC int mca_common_ompio_file_write_all (ompio_file_t *fh, const void *buf, + int count, struct ompi_datatype_t *datatype, + ompi_status_public_t *status); + OMPI_DECLSPEC int mca_common_ompio_file_write_at_all (ompio_file_t *fh, OMPI_MPI_OFFSET_TYPE offset, const void *buf, int count, struct ompi_datatype_t *datatype, ompi_status_public_t *status); +OMPI_DECLSPEC int mca_common_ompio_file_iwrite_all (ompio_file_t *fp, const void *buf, + int count, struct ompi_datatype_t *datatype, ompi_request_t **request); OMPI_DECLSPEC int mca_common_ompio_file_iwrite_at_all (ompio_file_t *fp, OMPI_MPI_OFFSET_TYPE offset, const void *buf, int count, struct ompi_datatype_t *datatype, ompi_request_t **request); @@ -263,7 +274,8 @@ OMPI_DECLSPEC int mca_common_ompio_build_io_array ( ompio_file_t *fh, int index, int cycles, size_t bytes_per_cycle, size_t max_data, uint32_t iov_count, struct iovec *decoded_iov, int *ii, int *jj, size_t *tbw, - size_t *spc ); + size_t *spc, mca_common_ompio_io_array_t **io_array, + int *num_io_entries ); OMPI_DECLSPEC int mca_common_ompio_file_read (ompio_file_t *fh, void *buf, int count, @@ -280,10 +292,16 @@ void *buf, int count, struct ompi_datatype_t *datatype, ompi_request_t **request); +OMPI_DECLSPEC int mca_common_ompio_file_read_all (ompio_file_t *fh, void *buf, int count, struct ompi_datatype_t *datatype, + ompi_status_public_t * status); + OMPI_DECLSPEC int mca_common_ompio_file_read_at_all (ompio_file_t *fh, OMPI_MPI_OFFSET_TYPE offset, void *buf, int count, struct ompi_datatype_t *datatype, ompi_status_public_t * status); +OMPI_DECLSPEC int mca_common_ompio_file_iread_all (ompio_file_t *fp, void *buf, int count, struct ompi_datatype_t *datatype, + ompi_request_t **request); + OMPI_DECLSPEC int mca_common_ompio_file_iread_at_all (ompio_file_t *fp, OMPI_MPI_OFFSET_TYPE offset, void *buf, int count, struct ompi_datatype_t *datatype, ompi_request_t **request); @@ -316,6 +334,7 @@ int count, const void *buf, size_t *max_data, + opal_convertor_t *convertor, struct iovec **iov, uint32_t *iov_count); diff -Nru openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_request.c openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_request.c --- openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_request.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_request.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2008-2018 University of Houston. All rights reserved. + * Copyright (c) 2008-2019 University of Houston. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -19,9 +19,7 @@ */ #include "common_ompio_request.h" -#if OPAL_CUDA_SUPPORT -#include "common_ompio_cuda.h" -#endif +#include "common_ompio_buffer.h" static void mca_common_ompio_request_construct(mca_ompio_request_t* req); static void mca_common_ompio_request_destruct(mca_ompio_request_t *req); @@ -37,7 +35,6 @@ static int mca_common_ompio_request_free ( struct ompi_request_t **req) { mca_ompio_request_t *ompio_req = ( mca_ompio_request_t *)*req; -#if OPAL_CUDA_SUPPORT if ( NULL != ompio_req->req_tbuf ) { if ( MCA_OMPIO_REQUEST_READ == ompio_req->req_type ){ struct iovec decoded_iov; @@ -50,7 +47,6 @@ } mca_common_ompio_release_buf ( NULL, ompio_req->req_tbuf ); } -#endif if ( NULL != ompio_req->req_free_fn ) { ompio_req->req_free_fn (ompio_req ); } @@ -77,10 +73,8 @@ req->req_ompi.req_cancel = mca_common_ompio_request_cancel; req->req_ompi.req_type = OMPI_REQUEST_IO; req->req_data = NULL; -#if OPAL_CUDA_SUPPORT req->req_tbuf = NULL; req->req_size = 0; -#endif req->req_progress_fn = NULL; req->req_free_fn = NULL; diff -Nru openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_request.h openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_request.h --- openmpi-4.0.3/ompi/mca/common/ompio/common_ompio_request.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/ompio/common_ompio_request.h 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2008-2018 University of Houston. All rights reserved. + * Copyright (c) 2008-2019 University of Houston. All rights reserved. * Copyright (c) 2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -52,11 +52,9 @@ mca_ompio_request_type_t req_type; void *req_data; opal_list_item_t req_item; -#if OPAL_CUDA_SUPPORT void *req_tbuf; size_t req_size; opal_convertor_t req_convertor; -#endif mca_fbtl_base_module_progress_fn_t req_progress_fn; mca_fbtl_base_module_request_free_fn_t req_free_fn; }; diff -Nru openmpi-4.0.3/ompi/mca/common/ompio/Makefile.am openmpi-4.1.4/ompi/mca/common/ompio/Makefile.am --- openmpi-4.0.3/ompi/mca/common/ompio/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/ompio/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -25,6 +25,7 @@ common_ompio_aggregators.h \ common_ompio_print_queue.h \ common_ompio_request.h \ + common_ompio_buffer.h \ common_ompio.h sources = \ @@ -34,6 +35,7 @@ common_ompio_file_open.c \ common_ompio_file_view.c \ common_ompio_file_read.c \ + common_ompio_buffer.c \ common_ompio_file_write.c @@ -74,10 +76,6 @@ ompidir = $(includedir) endif -if OPAL_cuda_support -headers += common_ompio_cuda.h -sources += common_ompio_cuda.c -endif # These two rules will sym link the "noinst" libtool library filename # to the installable libtool library filename in the case where we are diff -Nru openmpi-4.0.3/ompi/mca/common/ompio/Makefile.in openmpi-4.1.4/ompi/mca/common/ompio/Makefile.in --- openmpi-4.0.3/ompi/mca/common/ompio/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/common/ompio/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -115,8 +115,6 @@ target_triplet = @target@ @MCA_BUILD_ompi_common_ompio_DSO_TRUE@am__append_1 = $(comp_inst) @MCA_BUILD_ompi_common_ompio_DSO_FALSE@am__append_2 = $(comp_noinst) -@OPAL_cuda_support_TRUE@am__append_3 = common_ompio_cuda.h -@OPAL_cuda_support_TRUE@am__append_4 = common_ompio_cuda.c subdir = ompi/mca/common/ompio ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ @@ -126,6 +124,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -133,6 +133,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -156,6 +157,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -258,6 +260,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -265,6 +268,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -345,6 +349,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -367,9 +372,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -379,6 +388,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -399,6 +409,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -455,25 +466,16 @@ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(ompidir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) libmca_common_ompio_la_DEPENDENCIES = -am__libmca_common_ompio_la_SOURCES_DIST = common_ompio_aggregators.h \ - common_ompio_print_queue.h common_ompio_request.h \ - common_ompio.h common_ompio_cuda.h common_ompio_aggregators.c \ - common_ompio_print_queue.c common_ompio_request.c \ - common_ompio_file_open.c common_ompio_file_view.c \ - common_ompio_file_read.c common_ompio_file_write.c \ - common_ompio_cuda.c am__objects_1 = -am__objects_2 = $(am__objects_1) -@OPAL_cuda_support_TRUE@am__objects_3 = libmca_common_ompio_la-common_ompio_cuda.lo -am__objects_4 = libmca_common_ompio_la-common_ompio_aggregators.lo \ +am__objects_2 = libmca_common_ompio_la-common_ompio_aggregators.lo \ libmca_common_ompio_la-common_ompio_print_queue.lo \ libmca_common_ompio_la-common_ompio_request.lo \ libmca_common_ompio_la-common_ompio_file_open.lo \ libmca_common_ompio_la-common_ompio_file_view.lo \ libmca_common_ompio_la-common_ompio_file_read.lo \ - libmca_common_ompio_la-common_ompio_file_write.lo \ - $(am__objects_3) -am_libmca_common_ompio_la_OBJECTS = $(am__objects_2) $(am__objects_4) + libmca_common_ompio_la-common_ompio_buffer.lo \ + libmca_common_ompio_la-common_ompio_file_write.lo +am_libmca_common_ompio_la_OBJECTS = $(am__objects_1) $(am__objects_2) libmca_common_ompio_la_OBJECTS = $(am_libmca_common_ompio_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -486,21 +488,13 @@ @MCA_BUILD_ompi_common_ompio_DSO_TRUE@am_libmca_common_ompio_la_rpath = \ @MCA_BUILD_ompi_common_ompio_DSO_TRUE@ -rpath $(libdir) libmca_common_ompio_noinst_la_LIBADD = -am__libmca_common_ompio_noinst_la_SOURCES_DIST = \ - common_ompio_aggregators.h common_ompio_print_queue.h \ - common_ompio_request.h common_ompio.h common_ompio_cuda.h \ - common_ompio_aggregators.c common_ompio_print_queue.c \ - common_ompio_request.c common_ompio_file_open.c \ - common_ompio_file_view.c common_ompio_file_read.c \ - common_ompio_file_write.c common_ompio_cuda.c -@OPAL_cuda_support_TRUE@am__objects_5 = common_ompio_cuda.lo -am__objects_6 = common_ompio_aggregators.lo \ +am__objects_3 = common_ompio_aggregators.lo \ common_ompio_print_queue.lo common_ompio_request.lo \ common_ompio_file_open.lo common_ompio_file_view.lo \ - common_ompio_file_read.lo common_ompio_file_write.lo \ - $(am__objects_5) -am_libmca_common_ompio_noinst_la_OBJECTS = $(am__objects_2) \ - $(am__objects_6) + common_ompio_file_read.lo common_ompio_buffer.lo \ + common_ompio_file_write.lo +am_libmca_common_ompio_noinst_la_OBJECTS = $(am__objects_1) \ + $(am__objects_3) libmca_common_ompio_noinst_la_OBJECTS = \ $(am_libmca_common_ompio_noinst_la_OBJECTS) @MCA_BUILD_ompi_common_ompio_DSO_FALSE@am_libmca_common_ompio_noinst_la_rpath = @@ -540,8 +534,8 @@ am__v_CCLD_1 = SOURCES = $(libmca_common_ompio_la_SOURCES) \ $(libmca_common_ompio_noinst_la_SOURCES) -DIST_SOURCES = $(am__libmca_common_ompio_la_SOURCES_DIST) \ - $(am__libmca_common_ompio_noinst_la_SOURCES_DIST) +DIST_SOURCES = $(libmca_common_ompio_la_SOURCES) \ + $(libmca_common_ompio_noinst_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -549,7 +543,7 @@ esac am__ompi_HEADERS_DIST = common_ompio_aggregators.h \ common_ompio_print_queue.h common_ompio_request.h \ - common_ompio.h common_ompio_cuda.h + common_ompio_buffer.h common_ompio.h HEADERS = $(ompi_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, @@ -698,6 +692,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1518,6 +1515,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1550,9 +1551,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1573,6 +1583,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1657,9 +1668,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1720,6 +1728,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1733,6 +1744,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ @@ -1759,12 +1774,23 @@ ucx_CFLAGS = @ucx_CFLAGS@ ucx_LIBS = @ucx_LIBS@ ucx_STATIC_LIBS = @ucx_STATIC_LIBS@ -headers = common_ompio_aggregators.h common_ompio_print_queue.h \ - common_ompio_request.h common_ompio.h $(am__append_3) -sources = common_ompio_aggregators.c common_ompio_print_queue.c \ - common_ompio_request.c common_ompio_file_open.c \ - common_ompio_file_view.c common_ompio_file_read.c \ - common_ompio_file_write.c $(am__append_4) +headers = \ + common_ompio_aggregators.h \ + common_ompio_print_queue.h \ + common_ompio_request.h \ + common_ompio_buffer.h \ + common_ompio.h + +sources = \ + common_ompio_aggregators.c \ + common_ompio_print_queue.c \ + common_ompio_request.c \ + common_ompio_file_open.c \ + common_ompio_file_view.c \ + common_ompio_file_read.c \ + common_ompio_buffer.c \ + common_ompio_file_write.c + # To simplify components that link to this library, we will *always* # have an output libtool library named libmca__.la -- even @@ -1892,7 +1918,7 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common_ompio_aggregators.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common_ompio_cuda.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common_ompio_buffer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common_ompio_file_open.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common_ompio_file_read.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common_ompio_file_view.Plo@am__quote@ @@ -1900,7 +1926,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common_ompio_print_queue.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common_ompio_request.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmca_common_ompio_la-common_ompio_aggregators.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmca_common_ompio_la-common_ompio_cuda.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmca_common_ompio_la-common_ompio_buffer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmca_common_ompio_la-common_ompio_file_open.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmca_common_ompio_la-common_ompio_file_read.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmca_common_ompio_la-common_ompio_file_view.Plo@am__quote@ @@ -1974,6 +2000,13 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmca_common_ompio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmca_common_ompio_la-common_ompio_file_read.lo `test -f 'common_ompio_file_read.c' || echo '$(srcdir)/'`common_ompio_file_read.c +libmca_common_ompio_la-common_ompio_buffer.lo: common_ompio_buffer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmca_common_ompio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmca_common_ompio_la-common_ompio_buffer.lo -MD -MP -MF $(DEPDIR)/libmca_common_ompio_la-common_ompio_buffer.Tpo -c -o libmca_common_ompio_la-common_ompio_buffer.lo `test -f 'common_ompio_buffer.c' || echo '$(srcdir)/'`common_ompio_buffer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmca_common_ompio_la-common_ompio_buffer.Tpo $(DEPDIR)/libmca_common_ompio_la-common_ompio_buffer.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common_ompio_buffer.c' object='libmca_common_ompio_la-common_ompio_buffer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmca_common_ompio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmca_common_ompio_la-common_ompio_buffer.lo `test -f 'common_ompio_buffer.c' || echo '$(srcdir)/'`common_ompio_buffer.c + libmca_common_ompio_la-common_ompio_file_write.lo: common_ompio_file_write.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmca_common_ompio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmca_common_ompio_la-common_ompio_file_write.lo -MD -MP -MF $(DEPDIR)/libmca_common_ompio_la-common_ompio_file_write.Tpo -c -o libmca_common_ompio_la-common_ompio_file_write.lo `test -f 'common_ompio_file_write.c' || echo '$(srcdir)/'`common_ompio_file_write.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmca_common_ompio_la-common_ompio_file_write.Tpo $(DEPDIR)/libmca_common_ompio_la-common_ompio_file_write.Plo @@ -1981,13 +2014,6 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmca_common_ompio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmca_common_ompio_la-common_ompio_file_write.lo `test -f 'common_ompio_file_write.c' || echo '$(srcdir)/'`common_ompio_file_write.c -libmca_common_ompio_la-common_ompio_cuda.lo: common_ompio_cuda.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmca_common_ompio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmca_common_ompio_la-common_ompio_cuda.lo -MD -MP -MF $(DEPDIR)/libmca_common_ompio_la-common_ompio_cuda.Tpo -c -o libmca_common_ompio_la-common_ompio_cuda.lo `test -f 'common_ompio_cuda.c' || echo '$(srcdir)/'`common_ompio_cuda.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmca_common_ompio_la-common_ompio_cuda.Tpo $(DEPDIR)/libmca_common_ompio_la-common_ompio_cuda.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common_ompio_cuda.c' object='libmca_common_ompio_la-common_ompio_cuda.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmca_common_ompio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmca_common_ompio_la-common_ompio_cuda.lo `test -f 'common_ompio_cuda.c' || echo '$(srcdir)/'`common_ompio_cuda.c - mostlyclean-libtool: -rm -f *.lo diff -Nru openmpi-4.0.3/ompi/mca/crcp/bkmrk/Makefile.in openmpi-4.1.4/ompi/mca/crcp/bkmrk/Makefile.in --- openmpi-4.0.3/ompi/mca/crcp/bkmrk/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/crcp/bkmrk/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,6 +116,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -123,6 +125,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -146,6 +149,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -248,6 +252,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -255,6 +260,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -335,6 +341,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -357,9 +364,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -369,6 +380,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -389,6 +401,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -656,6 +669,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1476,6 +1492,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1508,9 +1528,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1531,6 +1560,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1615,9 +1645,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1678,6 +1705,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1691,6 +1721,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/crcp/Makefile.in openmpi-4.1.4/ompi/mca/crcp/Makefile.in --- openmpi-4.0.3/ompi/mca/crcp/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/crcp/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -151,6 +151,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -158,6 +160,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -181,6 +184,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -283,6 +287,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -290,6 +295,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -370,6 +376,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -392,9 +399,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -404,6 +415,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -424,6 +436,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -683,6 +696,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1503,6 +1519,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1535,9 +1555,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1558,6 +1587,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1642,9 +1672,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1705,6 +1732,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1718,6 +1748,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/fbtl/ime/configure.m4 openmpi-4.1.4/ompi/mca/fbtl/ime/configure.m4 --- openmpi-4.0.3/ompi/mca/fbtl/ime/configure.m4 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/ime/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,29 @@ +# -*- shell-script -*- +# +# Copyright (c) 2018 DataDirect Networks. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# MCA_fbtl_ime_CONFIG(action-if-can-compile, +# [action-if-cant-compile]) +# ------------------------------------------------ +AC_DEFUN([MCA_ompi_fbtl_ime_CONFIG],[ + AC_CONFIG_FILES([ompi/mca/fbtl/ime/Makefile]) + + OMPI_CHECK_IME([fbtl_ime], + [fbtl_ime_happy="yes"], + [fbtl_ime_happy="no"]) + + AS_IF([test "$fbtl_ime_happy" = "yes"], + [$1], + [$2]) + + # substitute in the things needed to build ime + AC_SUBST([fbtl_ime_CPPFLAGS]) + AC_SUBST([fbtl_ime_LDFLAGS]) + AC_SUBST([fbtl_ime_LIBS]) +])dnl diff -Nru openmpi-4.0.3/ompi/mca/fbtl/ime/fbtl_ime_blocking_op.c openmpi-4.1.4/ompi/mca/fbtl/ime/fbtl_ime_blocking_op.c --- openmpi-4.0.3/ompi/mca/fbtl/ime/fbtl_ime_blocking_op.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/ime/fbtl_ime_blocking_op.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2018 DataDirect Networks. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" +#include "fbtl_ime.h" + +#include "mpi.h" +#include "ompi/constants.h" +#include "ompi/mca/fbtl/fbtl.h" + +static ssize_t mca_fbtl_ime_blocking_op(ompio_file_t *fh, int io_op); + +ssize_t mca_fbtl_ime_preadv(ompio_file_t *fh) +{ + return mca_fbtl_ime_blocking_op(fh, FBTL_IME_READ); +} + +ssize_t mca_fbtl_ime_pwritev(ompio_file_t *fh) +{ + return mca_fbtl_ime_blocking_op(fh, FBTL_IME_WRITE); +} + +static ssize_t mca_fbtl_ime_blocking_op(ompio_file_t *fh, int io_op) +{ + int i, block = 1, ret; + struct iovec *iov = NULL; + int iov_count = 0; + OMPI_MPI_OFFSET_TYPE iov_offset = 0; + ssize_t bytes_processed = 0, ret_code = 0; + + if (NULL == fh->f_io_array) { + return OMPI_ERROR; + } + + iov = (struct iovec *) malloc + (OMPIO_IOVEC_INITIAL_SIZE * sizeof (struct iovec)); + if (NULL == iov) { + opal_output(1, "OUT OF MEMORY\n"); + return OMPI_ERR_OUT_OF_RESOURCE; + } + + /* Go through all IO entries and try to aggregate them. */ + for (i = 0 ; i < fh->f_num_of_io_entries; i++) { + iov[iov_count].iov_base = fh->f_io_array[i].memory_address; + iov[iov_count].iov_len = fh->f_io_array[i].length; + iov_count++; + + /* Save the file offset if the current iovec is + the first one in the iovec array. */ + if (iov_count == 1) { + iov_offset = (OMPI_MPI_OFFSET_TYPE)(intptr_t)fh->f_io_array[i].offset; + } + + /* Allocate more memory for the iovecs if necessary */ + if (iov_count == OMPIO_IOVEC_INITIAL_SIZE * block) { + block++; + struct iovec *new_iov = (struct iovec *) realloc(iov, + OMPIO_IOVEC_INITIAL_SIZE * block * sizeof(struct iovec)); + if (new_iov == NULL) { + free(iov); + opal_output(1, "OUT OF MEMORY\n"); + return OMPI_ERR_OUT_OF_RESOURCE; + } + } + + /* If: + - There is no next iovec + - OR the next iovec is not "contiguous" + - OR we exceeded the advised number of iovecs for IME + Then: pwritev/preadv shall be called, + and the iovec array resetted */ + if (i+1 == fh->f_num_of_io_entries || + ((OMPI_MPI_OFFSET_TYPE)(intptr_t)fh->f_io_array[i].offset + + (ptrdiff_t)fh->f_io_array[i].length) != + (OMPI_MPI_OFFSET_TYPE)(intptr_t)fh->f_io_array[i+1].offset || + iov_count >= mca_fbtl_ime_iov_max ) { + + switch (io_op) { + case FBTL_IME_READ: + ret_code = ime_native_preadv(fh->fd, iov, iov_count, iov_offset); + if (ret_code < 0) { + opal_output(1, "mca_fbtl_ime_blocking_op: error in " + "ime_native_preadv error ret=%zd %s", + ret_code, strerror(errno)); + goto error_exit; + } + break; + + case FBTL_IME_WRITE: + ret_code = ime_native_pwritev(fh->fd, iov, iov_count, iov_offset); + if (ret_code < 0) { + opal_output(1, "mca_fbtl_ime_blocking_op: error in " + "ime_native_pwritev error ret=%zd %s", + ret_code, strerror(errno)); + goto error_exit; + } + break; + + default: + opal_output(1, "mca_fbtl_ime_blocking_op: an unsupported " + "IO operation was requested. io_op=%d", io_op); + goto error_exit; + } + + bytes_processed += ret_code; + iov_count = 0; + } + } + + free (iov); + return bytes_processed; + +error_exit: + free(iov); + return OMPI_ERROR; +} diff -Nru openmpi-4.0.3/ompi/mca/fbtl/ime/fbtl_ime.c openmpi-4.1.4/ompi/mca/fbtl/ime/fbtl_ime.c --- openmpi-4.0.3/ompi/mca/fbtl/ime/fbtl_ime.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/ime/fbtl_ime.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,182 @@ +/* + * Copyright (c) 2018 DataDirect Networks. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" +#include "mpi.h" + +#include "ompi/mca/fbtl/fbtl.h" +#include "ompi/mca/fbtl/ime/fbtl_ime.h" + +/* + * ******************************************************************* + * ************************ actions structure ************************ + * ******************************************************************* + */ +static mca_fbtl_base_module_1_0_0_t ime = { + mca_fbtl_ime_module_init, /* initalise after being selected */ + mca_fbtl_ime_module_finalize, /* close a module on a communicator */ + mca_fbtl_ime_preadv, /* blocking read */ + mca_fbtl_ime_ipreadv, /* non-blocking read*/ + mca_fbtl_ime_pwritev, /* blocking write */ + mca_fbtl_ime_ipwritev, /* non-blocking write */ + mca_fbtl_ime_progress, /* module specific progress */ + mca_fbtl_ime_request_free /* free module specific data items on the request */ +}; +/* + * ******************************************************************* + * ************************* structure ends ************************** + * ******************************************************************* + */ + +int mca_fbtl_ime_component_init_query(bool enable_progress_threads, + bool enable_mpi_threads) +{ + /* Nothing to do */ + return OMPI_SUCCESS; +} + +struct mca_fbtl_base_module_1_0_0_t * +mca_fbtl_ime_component_file_query (ompio_file_t *fh, int *priority) +{ + *priority = mca_fbtl_ime_priority; + + /* Do the same as the FS component: + Only return a non-null component if IME + can handle the IO operations. */ + if (IME == fh->f_fstype) { + if (*priority < FBTL_IME_INCREASED_PRIORITY) { + *priority = FBTL_IME_INCREASED_PRIORITY; + } + return &ime; + } + + return NULL; +} + +int mca_fbtl_ime_component_file_unquery (ompio_file_t *file) +{ + /* This function might be needed for some purposes later. for now it + * does not have anything to do since there are no steps which need + * to be undone if this module is not selected */ + + return OMPI_SUCCESS; +} + +int mca_fbtl_ime_module_init (ompio_file_t *file) +{ + return OMPI_SUCCESS; +} + + +int mca_fbtl_ime_module_finalize (ompio_file_t *file) +{ + return OMPI_SUCCESS; +} + +bool mca_fbtl_ime_progress ( mca_ompio_request_t *req) +{ + int i=0, lcount=0, ret_code=0; + mca_fbtl_ime_request_data_t *data=(mca_fbtl_ime_request_data_t *)req->req_data; + + /* Go through all the requests in the current batch to check + * if they have finished. */ + for (i=data->aio_first_active_req; i < data->aio_last_active_req; i++ ) { + if ( data->aio_req_status[i] == FBTL_IME_REQ_CLOSED ) { + lcount++; + } + else if ( data->aio_req_status[i] >= 0 ) { + /* request has finished */ + data->aio_open_reqs--; + lcount++; + data->aio_total_len += data->aio_req_status[i]; + data->aio_req_status[i] = FBTL_IME_REQ_CLOSED; + } + else if ( data->aio_req_status[i] == FBTL_IME_REQ_ERROR ) { + /* an error occured. */ + data->aio_open_reqs--; + lcount++; + data->aio_req_fail_count++; + data->aio_req_status[i] = FBTL_IME_REQ_CLOSED; + } + else { + /* not yet done */ + } + } + + /* In case the current batch of requests terminated, exit if an error + * happened for any request. + */ + if ( data->aio_req_fail_count > 0 && + lcount == data->aio_last_active_req - data->aio_first_active_req ) { + goto error_exit; + } + + /* In case some requests are pending, and no error happened in any of the + * previous requests, then the next batch of operations should be prepared. + */ + if ( (lcount == data->aio_req_chunks) && (0 != data->aio_open_reqs) ) { + + /* prepare the next batch of operations */ + data->aio_first_active_req = data->aio_last_active_req; + if ( (data->aio_req_count-data->aio_last_active_req) > data->aio_req_chunks ) { + data->aio_last_active_req += data->aio_req_chunks; + } + else { + data->aio_last_active_req = data->aio_req_count; + } + + /* Send the requests. */ + for ( i=data->aio_first_active_req; i< data->aio_last_active_req; i++ ) { + if ( FBTL_IME_READ == data->aio_req_type && + ime_native_aio_read(&data->aio_reqs[i]) < 0 ) { + opal_output(1, "mca_fbtl_ime_progress: error in aio_read()"); + data->aio_req_status[i] = FBTL_IME_REQ_ERROR; + data->aio_last_active_req = i + 1; + break; + } + else if ( FBTL_IME_WRITE == data->aio_req_type && + ime_native_aio_write(&data->aio_reqs[i]) < 0 ) { + opal_output(1, "mca_fbtl_ime_progress: error in aio_write()"); + data->aio_req_status[i] = FBTL_IME_REQ_ERROR; + data->aio_last_active_req = i + 1; + break; + } + } + } + + if ( 0 == data->aio_open_reqs ) { + /* all pending operations are finished for this request */ + req->req_ompi.req_status.MPI_ERROR = OMPI_SUCCESS; + req->req_ompi.req_status._ucount = data->aio_total_len; + return true; + } + return false; + +error_exit: + req->req_ompi.req_status.MPI_ERROR = OMPI_ERROR; + req->req_ompi.req_status._ucount = data->aio_total_len; + return true; +} + +void mca_fbtl_ime_request_free ( mca_ompio_request_t *req) +{ + /* Free the fbtl specific data structures */ + mca_fbtl_ime_request_data_t *data=(mca_fbtl_ime_request_data_t *)req->req_data; + if (NULL != data) { + free (data->allocated_data); + free (data); + req->req_data = NULL; + } +} + +void mca_fbtl_ime_complete_cb (struct ime_aiocb *aiocb, int err, ssize_t bytes) +{ + ssize_t *req_status = (ssize_t *) aiocb->user_context; + *req_status = err == 0 ? bytes : FBTL_IME_REQ_ERROR; +} \ No newline at end of file diff -Nru openmpi-4.0.3/ompi/mca/fbtl/ime/fbtl_ime_component.c openmpi-4.1.4/ompi/mca/fbtl/ime/fbtl_ime_component.c --- openmpi-4.0.3/ompi/mca/fbtl/ime/fbtl_ime_component.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/ime/fbtl_ime_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,79 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2018 DataDirect Networks. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" +#include "fbtl_ime.h" +#include "mpi.h" + +int mca_fbtl_ime_priority = FBTL_IME_BASE_PRIORITY; +int mca_fbtl_ime_iov_max = FBTL_IME_IOV_MAX; +int mca_fbtl_ime_aio_reqs_max = FBTL_IME_AIO_REQS_MAX; + +/* + * Private functions + */ +static int register_component(void); + +/* + * Public string showing the fbtl ime component version number + */ +const char *mca_fbtl_ime_component_version_string = + "OMPI/MPI IME FBTL MCA component version " OMPI_VERSION; + + +/* + * Instantiate the public struct with all of our public information + * and pointers to our public functions in it + */ +mca_fbtl_base_component_2_0_0_t mca_fbtl_ime_component = { + + /* First, the mca_component_t struct containing meta information + about the component itself */ + + .fbtlm_version = { + MCA_FBTL_BASE_VERSION_2_0_0, + + /* Component name and version */ + .mca_component_name = "ime", + MCA_BASE_MAKE_VERSION(component, OMPI_MAJOR_VERSION, OMPI_MINOR_VERSION, + OMPI_RELEASE_VERSION), + .mca_register_component_params = register_component, + }, + .fbtlm_data = { + /* This component is checkpointable */ + MCA_BASE_METADATA_PARAM_CHECKPOINT + }, + .fbtlm_init_query = mca_fbtl_ime_component_init_query, /* get thread level */ + .fbtlm_file_query = mca_fbtl_ime_component_file_query, /* get priority and actions */ + .fbtlm_file_unquery = mca_fbtl_ime_component_file_unquery, /* undo what was done by previous function */ +}; + +static int register_component(void) +{ + mca_fbtl_ime_iov_max = FBTL_IME_IOV_MAX; + (void) mca_base_component_var_register(&mca_fbtl_ime_component.fbtlm_version, + "iov_max", "Maximum iov count that should be used when " + "calling an IME native function", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_fbtl_ime_iov_max); + + mca_fbtl_ime_aio_reqs_max = FBTL_IME_AIO_REQS_MAX; + (void) mca_base_component_var_register(&mca_fbtl_ime_component.fbtlm_version, + "aio_reqs_max", "Maximum number of aiocb requests that should " + "be sent simultaneously when calling an IME native function", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_fbtl_ime_aio_reqs_max ); + + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/fbtl/ime/fbtl_ime.h openmpi-4.1.4/ompi/mca/fbtl/ime/fbtl_ime.h --- openmpi-4.0.3/ompi/mca/fbtl/ime/fbtl_ime.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/ime/fbtl_ime.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2018 DataDirect Networks. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef MCA_FBTL_IME_H +#define MCA_FBTL_IME_H + +#include "ime_native.h" + +#include "ompi_config.h" +#include "ompi/mca/mca.h" +#include "ompi/mca/fbtl/fbtl.h" +#include "ompi/mca/common/ompio/common_ompio.h" +#include "ompi/mca/common/ompio/common_ompio_request.h" + +extern int mca_fbtl_ime_priority; +extern int mca_fbtl_ime_iov_max; +extern int mca_fbtl_ime_aio_reqs_max; + +#define FBTL_IME_BASE_PRIORITY 0 +#define FBTL_IME_INCREASED_PRIORITY 50 +#define FBTL_IME_AIO_REQS_MAX 128 + +#ifdef IME_IOV_MAX +#define FBTL_IME_IOV_MAX IME_IOV_MAX +#else +#define FBTL_IME_IOV_MAX 1024 +#endif + + +BEGIN_C_DECLS + +int mca_fbtl_ime_component_init_query(bool enable_progress_threads, + bool enable_mpi_threads); +struct mca_fbtl_base_module_1_0_0_t * +mca_fbtl_ime_component_file_query (ompio_file_t *file, int *priority); +int mca_fbtl_ime_component_file_unquery (ompio_file_t *file); + +int mca_fbtl_ime_module_init (ompio_file_t *file); +int mca_fbtl_ime_module_finalize (ompio_file_t *file); + +OMPI_MODULE_DECLSPEC extern mca_fbtl_base_component_2_0_0_t mca_fbtl_ime_component; +/* + * ****************************************************************** + * ********* functions which are implemented in this module ********* + * ****************************************************************** + */ + +ssize_t mca_fbtl_ime_preadv (ompio_file_t *file ); +ssize_t mca_fbtl_ime_pwritev (ompio_file_t *file ); +ssize_t mca_fbtl_ime_ipreadv (ompio_file_t *file, + ompi_request_t *request); +ssize_t mca_fbtl_ime_ipwritev (ompio_file_t *file, + ompi_request_t *request); + +bool mca_fbtl_ime_progress (mca_ompio_request_t *req); +void mca_fbtl_ime_request_free (mca_ompio_request_t *req); +void mca_fbtl_ime_complete_cb (struct ime_aiocb *aiocb, int err, ssize_t bytes); + +struct mca_fbtl_ime_request_data_t { + int aio_req_count; /* total number of aio reqs */ + int aio_open_reqs; /* number of unfinished reqs */ + int aio_req_type; /* read or write */ + int aio_req_chunks; /* max. no. of aio reqs that can be posted at once*/ + int aio_first_active_req; /* first active posted req */ + int aio_last_active_req; /* last currently active poted req */ + int aio_req_fail_count; /* number of requests that failed*/ + struct iovec *aio_iovecs; /* array of iovecs copied from the file handle */ + struct ime_aiocb *aio_reqs; /* array of aio requests that will be sent to IME */ + ssize_t *aio_req_status; /* array of status for the IME requests */ + ssize_t aio_total_len; /* total amount of data written */ + ompio_file_t *aio_fh; /* pointer back to the mca_io_ompio_fh structure */ + void *allocated_data; /* pointer to the allocated space + that will contain all the necessary iovecs, + IME requests and their statuses */ +}; +typedef struct mca_fbtl_ime_request_data_t mca_fbtl_ime_request_data_t; + +/* define constants for read/write operations */ +#define FBTL_IME_READ 1 +#define FBTL_IME_WRITE 2 +#define FBTL_IME_IN_PROGRESS -1 +#define FBTL_IME_REQ_ERROR -2 +#define FBTL_IME_REQ_CLOSED -3 + +/* + * ****************************************************************** + * ************ functions implemented in this module end ************ + * ****************************************************************** + */ + +END_C_DECLS + +#endif /* MCA_FBTL_IME_H */ diff -Nru openmpi-4.0.3/ompi/mca/fbtl/ime/fbtl_ime_nonblocking_op.c openmpi-4.1.4/ompi/mca/fbtl/ime/fbtl_ime_nonblocking_op.c --- openmpi-4.0.3/ompi/mca/fbtl/ime/fbtl_ime_nonblocking_op.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/ime/fbtl_ime_nonblocking_op.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,175 @@ +/* + * Copyright (c) 2018 DataDirect Networks. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" +#include "fbtl_ime.h" + +#include "mpi.h" +#include "ompi/constants.h" +#include "ompi/mca/fbtl/fbtl.h" + +static ssize_t mca_fbtl_ime_nonblocking_op (ompio_file_t *fh, + ompi_request_t *request, int io_op); + +ssize_t mca_fbtl_ime_ipreadv (ompio_file_t *fh, ompi_request_t *request) +{ + return mca_fbtl_ime_nonblocking_op(fh, request, FBTL_IME_READ); +} +ssize_t mca_fbtl_ime_ipwritev (ompio_file_t *fh, ompi_request_t *request) +{ + return mca_fbtl_ime_nonblocking_op(fh, request, FBTL_IME_WRITE); +} + +static ssize_t mca_fbtl_ime_nonblocking_op (ompio_file_t *fh, + ompi_request_t *request, int io_op) +{ + mca_fbtl_ime_request_data_t *data; + mca_ompio_request_t *req = (mca_ompio_request_t *) request; + int i=0, req_index = 0, ret; + + data = (mca_fbtl_ime_request_data_t *) malloc ( sizeof (mca_fbtl_ime_request_data_t)); + if ( NULL == data ) { + opal_output (1,"could not allocate memory\n"); + return OMPI_ERR_OUT_OF_RESOURCE; + } + + /* We might allocate too much memory here because we don't know + how many IME requests will be necessary. + + We will use all the iovec "slots" in the array, + but maybe not all the request and request status slots. + That is, because an IME request can handle several iovecs, + not just one. */ + data->allocated_data = (void*) malloc( fh->f_num_of_io_entries * + (sizeof(struct iovec) + + sizeof(struct ime_aiocb) + + sizeof(ssize_t)) ); + if (NULL == data->allocated_data) { + opal_output(1, "OUT OF MEMORY\n"); + free(data); + return OMPI_ERR_OUT_OF_RESOURCE; + } + data->aio_iovecs = (struct iovec *) data->allocated_data; + data->aio_reqs = (struct ime_aiocb *) (data->aio_iovecs + + fh->f_num_of_io_entries); + data->aio_req_status = (ssize_t *) (data->aio_reqs + + fh->f_num_of_io_entries); + + /* Fill some attributes of the OMPIO request data */ + data->aio_req_type = io_op; /* The correctness of io_op will be checked later */ + data->aio_req_chunks = mca_fbtl_ime_aio_reqs_max; + data->aio_req_fail_count = 0; + data->aio_total_len = 0; + data->aio_fh = fh; + data->aio_reqs[0].iovcnt = 0; + + /* Go through all IO entries and try to aggregate them. */ + for ( i=0; if_num_of_io_entries; i++ ) { + data->aio_iovecs[i].iov_base = fh->f_io_array[i].memory_address; + data->aio_iovecs[i].iov_len = fh->f_io_array[i].length; + + /* If the processed iovec will be the first in our ime_aiocb request, + then we initialize this aio request for IME. */ + if (data->aio_reqs[req_index].iovcnt == 0) { + data->aio_reqs[req_index].iov = &data->aio_iovecs[i]; + data->aio_reqs[req_index].iovcnt = 1; + data->aio_reqs[req_index].file_offset = (off_t) + fh->f_io_array[i].offset; + data->aio_reqs[req_index].fd = fh->fd; + data->aio_reqs[req_index].complete_cb = &mca_fbtl_ime_complete_cb; + data->aio_reqs[req_index].user_context = (intptr_t) + &data->aio_req_status[req_index]; + data->aio_req_status[req_index] = FBTL_IME_IN_PROGRESS; + } + + /* Here we check if the next iovec will be appended to + the current ime_aiocb request. + ie: if data is contiguous + AND we don't exceed the advised number of iovecs for IME + In that case, the next iovec will be appended to the IME req. */ + if (i+1 != fh->f_num_of_io_entries && + ((OMPI_MPI_OFFSET_TYPE)(intptr_t)fh->f_io_array[i].offset + + (ptrdiff_t)fh->f_io_array[i].length) == + (OMPI_MPI_OFFSET_TYPE)(intptr_t)fh->f_io_array[i+1].offset && + data->aio_reqs[req_index].iovcnt < mca_fbtl_ime_iov_max ) { + data->aio_reqs[req_index].iovcnt++; + } + + /* Otherwise, we need to create a new request + (except if there is no next iovec to process) */ + else if ( i+1 != fh->f_num_of_io_entries ) { + req_index++; + data->aio_reqs[req_index].iovcnt = 0; + } + } + + /* Fill the missing attributes of the OMPI request */ + data->aio_req_count = req_index + 1; + data->aio_open_reqs = req_index + 1; + data->aio_first_active_req = 0; + if ( data->aio_req_count > data->aio_req_chunks ) { + data->aio_last_active_req = data->aio_req_chunks; + } + else { + data->aio_last_active_req = data->aio_req_count; + } + + /* Actually start the requests (or at least the first batch). + In case an error happened when one request is started, we + don't send the next ones and mark the failing request as + the last active one. Finally we exit as if no error happened, + because some other requests might have already been started + and they need to be finalized properly (via the progress function). + */ + for (i=0; i < data->aio_last_active_req; i++) { + switch(io_op) { + + case FBTL_IME_READ: + ret = ime_native_aio_read(&data->aio_reqs[i]); + if (ret < 0) { + opal_output(1, "mca_fbtl_ime_nonblocking_op: error in " + "ime_native_aio_read() error ret=%d %s", + ret, strerror(errno)); + data->aio_req_status[i] = FBTL_IME_REQ_ERROR; + data->aio_last_active_req = i + 1; + goto standard_exit; + } + break; + + case FBTL_IME_WRITE: + ret = ime_native_aio_write(&data->aio_reqs[i]); + if (ret < 0) { + opal_output(1, "mca_fbtl_ime_nonblocking_op: error in " + "ime_native_aio_write() error ret=%d %s", + ret, strerror(errno)); + data->aio_req_status[i] = FBTL_IME_REQ_ERROR; + data->aio_last_active_req = i + 1; + goto standard_exit; + } + break; + + default: + opal_output(1, "mca_fbtl_ime_nonblocking_op: an unsupported " + "IO operation was requested. io_op=%d", io_op); + goto error_exit; + } + } + +standard_exit: + req->req_data = data; + req->req_progress_fn = mca_fbtl_ime_progress; + req->req_free_fn = mca_fbtl_ime_request_free; + + return OMPI_SUCCESS; + +error_exit: + free(data->allocated_data); + free(data); + return OMPI_ERROR; +} diff -Nru openmpi-4.0.3/ompi/mca/fbtl/ime/Makefile.am openmpi-4.1.4/ompi/mca/fbtl/ime/Makefile.am --- openmpi-4.0.3/ompi/mca/fbtl/ime/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/ime/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,40 @@ +# +# Copyright (c) 2018 DataDirect Networks. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +if MCA_BUILD_ompi_fbtl_ime_DSO +component_noinst = +component_install = mca_fbtl_ime.la +else +component_noinst = libmca_fbtl_ime.la +component_install = +endif + + +# Source files + +fbtl_ime_sources = \ + fbtl_ime.h \ + fbtl_ime.c \ + fbtl_ime_component.c \ + fbtl_ime_blocking_op.c \ + fbtl_ime_nonblocking_op.c + +AM_CPPFLAGS = $(fbtl_ime_CPPFLAGS) + +mcacomponentdir = $(ompilibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_fbtl_ime_la_SOURCES = $(fbtl_ime_sources) +mca_fbtl_ime_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(fbtl_ime_LIBS) +mca_fbtl_ime_la_LDFLAGS = -module -avoid-version $(fbtl_ime_LDFLAGS) + +noinst_LTLIBRARIES = $(component_noinst) +libmca_fbtl_ime_la_SOURCES = $(fbtl_ime_sources) +libmca_fbtl_ime_la_LIBADD = $(fbtl_ime_LIBS) +libmca_fbtl_ime_la_LDFLAGS = -module -avoid-version $(fbtl_ime_LDFLAGS) \ No newline at end of file diff -Nru openmpi-4.0.3/ompi/mca/fbtl/ime/Makefile.in openmpi-4.1.4/ompi/mca/fbtl/ime/Makefile.in --- openmpi-4.0.3/ompi/mca/fbtl/ime/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/ime/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,2113 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# +# Copyright (c) 2018 DataDirect Networks. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = ompi/mca/fbtl/ime +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/c_weak_symbols.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ + $(top_srcdir)/config/ompi_check_libfca.m4 \ + $(top_srcdir)/config/ompi_check_libhcoll.m4 \ + $(top_srcdir)/config/ompi_check_lustre.m4 \ + $(top_srcdir)/config/ompi_check_mxm.m4 \ + $(top_srcdir)/config/ompi_check_psm.m4 \ + $(top_srcdir)/config/ompi_check_psm2.m4 \ + $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ + $(top_srcdir)/config/ompi_check_ucx.m4 \ + $(top_srcdir)/config/ompi_config_files.m4 \ + $(top_srcdir)/config/ompi_configure_options.m4 \ + $(top_srcdir)/config/ompi_contrib.m4 \ + $(top_srcdir)/config/ompi_cxx_find_exception_flags.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_parameters.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_repository.m4 \ + $(top_srcdir)/config/ompi_cxx_have_exceptions.m4 \ + $(top_srcdir)/config/ompi_endpoint_tag.m4 \ + $(top_srcdir)/config/ompi_ext.m4 \ + $(top_srcdir)/config/ompi_find_mpi_aint_count_offset.m4 \ + $(top_srcdir)/config/ompi_fortran_check.m4 \ + $(top_srcdir)/config/ompi_fortran_check_abstract.m4 \ + $(top_srcdir)/config/ompi_fortran_check_asynchronous.m4 \ + $(top_srcdir)/config/ompi_fortran_check_bind_c.m4 \ + $(top_srcdir)/config/ompi_fortran_check_c_funloc.m4 \ + $(top_srcdir)/config/ompi_fortran_check_f08_assumed_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_ignore_tkr.m4 \ + $(top_srcdir)/config/ompi_fortran_check_interface.m4 \ + $(top_srcdir)/config/ompi_fortran_check_iso_fortran_env.m4 \ + $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ + $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ + $(top_srcdir)/config/ompi_fortran_check_private.m4 \ + $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ + $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ + $(top_srcdir)/config/ompi_fortran_check_real16_c_equiv.m4 \ + $(top_srcdir)/config/ompi_fortran_check_storage_size.m4 \ + $(top_srcdir)/config/ompi_fortran_check_type.m4 \ + $(top_srcdir)/config/ompi_fortran_check_use_only.m4 \ + $(top_srcdir)/config/ompi_fortran_find_ext_symbol_convention.m4 \ + $(top_srcdir)/config/ompi_fortran_find_module_include_flag.m4 \ + $(top_srcdir)/config/ompi_fortran_get_alignment.m4 \ + $(top_srcdir)/config/ompi_fortran_get_handle_max.m4 \ + $(top_srcdir)/config/ompi_fortran_get_kind_value.m4 \ + $(top_srcdir)/config/ompi_fortran_get_sizeof.m4 \ + $(top_srcdir)/config/ompi_fortran_get_value_true.m4 \ + $(top_srcdir)/config/ompi_interix.m4 \ + $(top_srcdir)/config/ompi_setup_contrib.m4 \ + $(top_srcdir)/config/ompi_setup_cxx.m4 \ + $(top_srcdir)/config/ompi_setup_fc.m4 \ + $(top_srcdir)/config/ompi_setup_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_ext.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_fortran.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_profiling.m4 \ + $(top_srcdir)/config/opal_case_sensitive_fs_setup.m4 \ + $(top_srcdir)/config/opal_check_alps.m4 \ + $(top_srcdir)/config/opal_check_attributes.m4 \ + $(top_srcdir)/config/opal_check_broken_qsort.m4 \ + $(top_srcdir)/config/opal_check_cma.m4 \ + $(top_srcdir)/config/opal_check_compiler_version.m4 \ + $(top_srcdir)/config/opal_check_compiler_works.m4 \ + $(top_srcdir)/config/opal_check_cray_pmi.m4 \ + $(top_srcdir)/config/opal_check_cuda.m4 \ + $(top_srcdir)/config/opal_check_icc.m4 \ + $(top_srcdir)/config/opal_check_ident.m4 \ + $(top_srcdir)/config/opal_check_knem.m4 \ + $(top_srcdir)/config/opal_check_libnl.m4 \ + $(top_srcdir)/config/opal_check_offsetof.m4 \ + $(top_srcdir)/config/opal_check_ofi.m4 \ + $(top_srcdir)/config/opal_check_openfabrics.m4 \ + $(top_srcdir)/config/opal_check_os_flavors.m4 \ + $(top_srcdir)/config/opal_check_package.m4 \ + $(top_srcdir)/config/opal_check_pmi.m4 \ + $(top_srcdir)/config/opal_check_portals4.m4 \ + $(top_srcdir)/config/opal_check_ps.m4 \ + $(top_srcdir)/config/opal_check_pthread_pids.m4 \ + $(top_srcdir)/config/opal_check_singularity.m4 \ + $(top_srcdir)/config/opal_check_ugni.m4 \ + $(top_srcdir)/config/opal_check_vendor.m4 \ + $(top_srcdir)/config/opal_check_verbs.m4 \ + $(top_srcdir)/config/opal_check_visibility.m4 \ + $(top_srcdir)/config/opal_check_withdir.m4 \ + $(top_srcdir)/config/opal_check_xpmem.m4 \ + $(top_srcdir)/config/opal_config_asm.m4 \ + $(top_srcdir)/config/opal_config_files.m4 \ + $(top_srcdir)/config/opal_config_pthreads.m4 \ + $(top_srcdir)/config/opal_config_subdir.m4 \ + $(top_srcdir)/config/opal_config_subdir_args.m4 \ + $(top_srcdir)/config/opal_config_threads.m4 \ + $(top_srcdir)/config/opal_configure_options.m4 \ + $(top_srcdir)/config/opal_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/opal_find_type.m4 \ + $(top_srcdir)/config/opal_functions.m4 \ + $(top_srcdir)/config/opal_lang_link_with_c.m4 \ + $(top_srcdir)/config/opal_load_platform.m4 \ + $(top_srcdir)/config/opal_mca.m4 \ + $(top_srcdir)/config/opal_save_version.m4 \ + $(top_srcdir)/config/opal_search_libs.m4 \ + $(top_srcdir)/config/opal_set_lib_prefix.m4 \ + $(top_srcdir)/config/opal_set_mca_prefix.m4 \ + $(top_srcdir)/config/opal_setup_cc.m4 \ + $(top_srcdir)/config/opal_setup_cli.m4 \ + $(top_srcdir)/config/opal_setup_cxx.m4 \ + $(top_srcdir)/config/opal_setup_ft.m4 \ + $(top_srcdir)/config/opal_setup_wrappers.m4 \ + $(top_srcdir)/config/opal_setup_zlib.m4 \ + $(top_srcdir)/config/opal_strip_optflags.m4 \ + $(top_srcdir)/config/opal_summary.m4 \ + $(top_srcdir)/config/opal_try_assemble.m4 \ + $(top_srcdir)/config/orte_check_lsf.m4 \ + $(top_srcdir)/config/orte_check_moab.m4 \ + $(top_srcdir)/config/orte_check_sge.m4 \ + $(top_srcdir)/config/orte_check_slurm.m4 \ + $(top_srcdir)/config/orte_check_tm.m4 \ + $(top_srcdir)/config/orte_config_files.m4 \ + $(top_srcdir)/config/orte_configure_options.m4 \ + $(top_srcdir)/config/orte_setup_debugger_flags.m4 \ + $(top_srcdir)/config/oshmem_config_files.m4 \ + $(top_srcdir)/config/oshmem_configure_options.m4 \ + $(top_srcdir)/config/oshmem_setup_profiling.m4 \ + $(top_srcdir)/config/pkg.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/opal/mca/backtrace/configure.m4 \ + $(top_srcdir)/opal/mca/dl/configure.m4 \ + $(top_srcdir)/opal/mca/event/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/configure.m4 \ + $(top_srcdir)/opal/mca/memcpy/configure.m4 \ + $(top_srcdir)/opal/mca/memory/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/configure.m4 \ + $(top_srcdir)/opal/mca/timer/configure.m4 \ + $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/common/sm/configure.m4 \ + $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs_usnic/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ + $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ + $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ + $(top_srcdir)/opal/mca/btl/smcuda/configure.m4 \ + $(top_srcdir)/opal/mca/btl/tcp/configure.m4 \ + $(top_srcdir)/opal/mca/btl/uct/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ugni/configure.m4 \ + $(top_srcdir)/opal/mca/btl/usnic/configure.m4 \ + $(top_srcdir)/opal/mca/btl/vader/configure.m4 \ + $(top_srcdir)/opal/mca/crs/self/configure.m4 \ + $(top_srcdir)/opal/mca/dl/dlopen/configure.m4 \ + $(top_srcdir)/opal/mca/dl/libltdl/configure.m4 \ + $(top_srcdir)/opal/mca/event/external/configure.m4 \ + $(top_srcdir)/opal/mca/event/libevent2022/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/external/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_pkg.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_attributes.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_visibility.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_vendor.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_components.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_internal.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/netloc.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/linux_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/posix_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/solaris_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/config/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/env/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/valgrind/configure.m4 \ + $(top_srcdir)/opal/mca/memory/malloc_solaris/configure.m4 \ + $(top_srcdir)/opal/mca/memory/patcher/configure.m4 \ + $(top_srcdir)/opal/mca/mpool/memkind/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/linux/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/overwrite/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/cray/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext1x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext2x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/flux/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/pmix3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s1/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s2/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/linux/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/test/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/gpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/rgpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/udreg/configure.m4 \ + $(top_srcdir)/opal/mca/reachable/netlink/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/mmap/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/posix/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/sysv/configure.m4 \ + $(top_srcdir)/opal/mca/timer/altix/configure.m4 \ + $(top_srcdir)/opal/mca/timer/darwin/configure.m4 \ + $(top_srcdir)/opal/mca/timer/linux/configure.m4 \ + $(top_srcdir)/opal/mca/timer/solaris/configure.m4 \ + $(top_srcdir)/orte/mca/common/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ess/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ess/tm/configure.m4 \ + $(top_srcdir)/orte/mca/odls/alps/configure.m4 \ + $(top_srcdir)/orte/mca/odls/default/configure.m4 \ + $(top_srcdir)/orte/mca/odls/pspawn/configure.m4 \ + $(top_srcdir)/orte/mca/oob/alps/configure.m4 \ + $(top_srcdir)/orte/mca/oob/tcp/configure.m4 \ + $(top_srcdir)/orte/mca/plm/alps/configure.m4 \ + $(top_srcdir)/orte/mca/plm/isolated/configure.m4 \ + $(top_srcdir)/orte/mca/plm/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/plm/rsh/configure.m4 \ + $(top_srcdir)/orte/mca/plm/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/plm/tm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ras/gridengine/configure.m4 \ + $(top_srcdir)/orte/mca/ras/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/snapc/full/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/central/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/stage/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/configure.m4 \ + $(top_srcdir)/ompi/mca/fcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/configure.m4 \ + $(top_srcdir)/ompi/mca/hook/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/configure.m4 \ + $(top_srcdir)/ompi/mca/common/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/common/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/bml/r2/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/cuda/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/fca/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ + $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ + $(top_srcdir)/ompi/mca/io/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/io/romio321/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/ofi/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/rdma/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/crcpw/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ob1/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/v/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/yalla/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/orte/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/pmix/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/sm/configure.m4 \ + $(top_srcdir)/ompi/mca/topo/treematch/configure.m4 \ + $(top_srcdir)/oshmem/mca/memheap/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/sysv/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/verbs/configure.m4 \ + $(top_srcdir)/ompi/mpiext/affinity/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cr/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cuda/configure.m4 \ + $(top_srcdir)/ompi/mpiext/pcollreq/configure.m4 \ + $(top_srcdir)/ompi/contrib/libompitrace/configure.m4 \ + $(top_srcdir)/config/opal_get_version.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/opal/include/opal_config.h \ + $(top_builddir)/ompi/include/mpi.h \ + $(top_builddir)/oshmem/include/shmem.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen/config.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen/config.h \ + $(top_builddir)/ompi/mpiext/cuda/c/mpiext_cuda_c.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(mcacomponentdir)" +LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) +am__DEPENDENCIES_1 = +libmca_fbtl_ime_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +am__objects_1 = fbtl_ime.lo fbtl_ime_component.lo \ + fbtl_ime_blocking_op.lo fbtl_ime_nonblocking_op.lo +am_libmca_fbtl_ime_la_OBJECTS = $(am__objects_1) +libmca_fbtl_ime_la_OBJECTS = $(am_libmca_fbtl_ime_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libmca_fbtl_ime_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libmca_fbtl_ime_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_ompi_fbtl_ime_DSO_FALSE@am_libmca_fbtl_ime_la_rpath = +mca_fbtl_ime_la_DEPENDENCIES = \ + $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(am__DEPENDENCIES_1) +am_mca_fbtl_ime_la_OBJECTS = $(am__objects_1) +mca_fbtl_ime_la_OBJECTS = $(am_mca_fbtl_ime_la_OBJECTS) +mca_fbtl_ime_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(mca_fbtl_ime_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +@MCA_BUILD_ompi_fbtl_ime_DSO_TRUE@am_mca_fbtl_ime_la_rpath = -rpath \ +@MCA_BUILD_ompi_fbtl_ime_DSO_TRUE@ $(mcacomponentdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/opal/include -I$(top_builddir)/ompi/include -I$(top_builddir)/oshmem/include -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen -I$(top_builddir)/ompi/mpiext/cuda/c +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libmca_fbtl_ime_la_SOURCES) $(mca_fbtl_ime_la_SOURCES) +DIST_SOURCES = $(libmca_fbtl_ime_la_SOURCES) \ + $(mca_fbtl_ime_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/config/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMCA_PARAM_SETS_DIR = @AMCA_PARAM_SETS_DIR@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BASH = @BASH@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAGS_WITHOUT_OPTFLAGS = @CFLAGS_WITHOUT_OPTFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CRAY_ALPSLLI_CFLAGS = @CRAY_ALPSLLI_CFLAGS@ +CRAY_ALPSLLI_LIBS = @CRAY_ALPSLLI_LIBS@ +CRAY_ALPSLLI_STATIC_LIBS = @CRAY_ALPSLLI_STATIC_LIBS@ +CRAY_ALPSUTIL_CFLAGS = @CRAY_ALPSUTIL_CFLAGS@ +CRAY_ALPSUTIL_LIBS = @CRAY_ALPSUTIL_LIBS@ +CRAY_ALPSUTIL_STATIC_LIBS = @CRAY_ALPSUTIL_STATIC_LIBS@ +CRAY_ALPS_CFLAGS = @CRAY_ALPS_CFLAGS@ +CRAY_ALPS_LIBS = @CRAY_ALPS_LIBS@ +CRAY_ALPS_STATIC_LIBS = @CRAY_ALPS_STATIC_LIBS@ +CRAY_PMI_CFLAGS = @CRAY_PMI_CFLAGS@ +CRAY_PMI_LIBS = @CRAY_PMI_LIBS@ +CRAY_PMI_STATIC_LIBS = @CRAY_PMI_STATIC_LIBS@ +CRAY_UDREG_CFLAGS = @CRAY_UDREG_CFLAGS@ +CRAY_UDREG_LIBS = @CRAY_UDREG_LIBS@ +CRAY_UGNI_CFLAGS = @CRAY_UGNI_CFLAGS@ +CRAY_UGNI_LIBS = @CRAY_UGNI_LIBS@ +CRAY_WLM_DETECT_CFLAGS = @CRAY_WLM_DETECT_CFLAGS@ +CRAY_WLM_DETECT_LIBS = @CRAY_WLM_DETECT_LIBS@ +CRAY_WLM_DETECT_STATIC_LIBS = @CRAY_WLM_DETECT_STATIC_LIBS@ +CRAY_XPMEM_CFLAGS = @CRAY_XPMEM_CFLAGS@ +CRAY_XPMEM_LIBS = @CRAY_XPMEM_LIBS@ +CRAY_XPMEM_STATIC_LIBS = @CRAY_XPMEM_STATIC_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXCPPFLAGS = @CXXCPPFLAGS@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUGGER_CFLAGS = @DEBUGGER_CFLAGS@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FC = @FC@ +FCFLAGS = @FCFLAGS@ +FCFLAGS_f = @FCFLAGS_f@ +FCFLAGS_f90 = @FCFLAGS_f90@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLUX_PMI_CFLAGS = @FLUX_PMI_CFLAGS@ +FLUX_PMI_LIBS = @FLUX_PMI_LIBS@ +GREP = @GREP@ +HWLOC_CFLAGS = @HWLOC_CFLAGS@ +HWLOC_CPPFLAGS = @HWLOC_CPPFLAGS@ +HWLOC_CUDA_LIBS = @HWLOC_CUDA_LIBS@ +HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@ +HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@ +HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@ +HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@ +HWLOC_GL_LIBS = @HWLOC_GL_LIBS@ +HWLOC_HAVE_LIBXML2 = @HWLOC_HAVE_LIBXML2@ +HWLOC_HAVE_NVML = @HWLOC_HAVE_NVML@ +HWLOC_HAVE_OPENCL = @HWLOC_HAVE_OPENCL@ +HWLOC_LDFLAGS = @HWLOC_LDFLAGS@ +HWLOC_LIBS = @HWLOC_LIBS@ +HWLOC_LIBS_PRIVATE = @HWLOC_LIBS_PRIVATE@ +HWLOC_LIBXML2_CFLAGS = @HWLOC_LIBXML2_CFLAGS@ +HWLOC_LIBXML2_LIBS = @HWLOC_LIBXML2_LIBS@ +HWLOC_MS_LIB = @HWLOC_MS_LIB@ +HWLOC_MS_LIB_ARCH = @HWLOC_MS_LIB_ARCH@ +HWLOC_NVML_LIBS = @HWLOC_NVML_LIBS@ +HWLOC_OPENCL_CFLAGS = @HWLOC_OPENCL_CFLAGS@ +HWLOC_OPENCL_LDFLAGS = @HWLOC_OPENCL_LDFLAGS@ +HWLOC_OPENCL_LIBS = @HWLOC_OPENCL_LIBS@ +HWLOC_PCIACCESS_CFLAGS = @HWLOC_PCIACCESS_CFLAGS@ +HWLOC_PCIACCESS_LIBS = @HWLOC_PCIACCESS_LIBS@ +HWLOC_PLUGINS_DIR = @HWLOC_PLUGINS_DIR@ +HWLOC_PLUGINS_PATH = @HWLOC_PLUGINS_PATH@ +HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@ +HWLOC_REQUIRES = @HWLOC_REQUIRES@ +HWLOC_VERSION = @HWLOC_VERSION@ +HWLOC_X11_CPPFLAGS = @HWLOC_X11_CPPFLAGS@ +HWLOC_X11_LIBS = @HWLOC_X11_LIBS@ +HWLOC_top_builddir = @HWLOC_top_builddir@ +HWLOC_top_srcdir = @HWLOC_top_srcdir@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JAR = @JAR@ +JAVAC = @JAVAC@ +JAVADOC = @JAVADOC@ +JAVAH = @JAVAH@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ +MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ +MCA_ompi_FRAMEWORKS_SUBDIRS = @MCA_ompi_FRAMEWORKS_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_ompi_FRAMEWORK_LIBS = @MCA_ompi_FRAMEWORK_LIBS@ +MCA_ompi_bml_ALL_COMPONENTS = @MCA_ompi_bml_ALL_COMPONENTS@ +MCA_ompi_bml_ALL_SUBDIRS = @MCA_ompi_bml_ALL_SUBDIRS@ +MCA_ompi_bml_DSO_COMPONENTS = @MCA_ompi_bml_DSO_COMPONENTS@ +MCA_ompi_bml_DSO_SUBDIRS = @MCA_ompi_bml_DSO_SUBDIRS@ +MCA_ompi_bml_STATIC_COMPONENTS = @MCA_ompi_bml_STATIC_COMPONENTS@ +MCA_ompi_bml_STATIC_LTLIBS = @MCA_ompi_bml_STATIC_LTLIBS@ +MCA_ompi_bml_STATIC_SUBDIRS = @MCA_ompi_bml_STATIC_SUBDIRS@ +MCA_ompi_coll_ALL_COMPONENTS = @MCA_ompi_coll_ALL_COMPONENTS@ +MCA_ompi_coll_ALL_SUBDIRS = @MCA_ompi_coll_ALL_SUBDIRS@ +MCA_ompi_coll_DSO_COMPONENTS = @MCA_ompi_coll_DSO_COMPONENTS@ +MCA_ompi_coll_DSO_SUBDIRS = @MCA_ompi_coll_DSO_SUBDIRS@ +MCA_ompi_coll_STATIC_COMPONENTS = @MCA_ompi_coll_STATIC_COMPONENTS@ +MCA_ompi_coll_STATIC_LTLIBS = @MCA_ompi_coll_STATIC_LTLIBS@ +MCA_ompi_coll_STATIC_SUBDIRS = @MCA_ompi_coll_STATIC_SUBDIRS@ +MCA_ompi_common_ALL_COMPONENTS = @MCA_ompi_common_ALL_COMPONENTS@ +MCA_ompi_common_ALL_SUBDIRS = @MCA_ompi_common_ALL_SUBDIRS@ +MCA_ompi_common_DSO_COMPONENTS = @MCA_ompi_common_DSO_COMPONENTS@ +MCA_ompi_common_DSO_SUBDIRS = @MCA_ompi_common_DSO_SUBDIRS@ +MCA_ompi_common_STATIC_COMPONENTS = @MCA_ompi_common_STATIC_COMPONENTS@ +MCA_ompi_common_STATIC_LTLIBS = @MCA_ompi_common_STATIC_LTLIBS@ +MCA_ompi_common_STATIC_SUBDIRS = @MCA_ompi_common_STATIC_SUBDIRS@ +MCA_ompi_crcp_ALL_COMPONENTS = @MCA_ompi_crcp_ALL_COMPONENTS@ +MCA_ompi_crcp_ALL_SUBDIRS = @MCA_ompi_crcp_ALL_SUBDIRS@ +MCA_ompi_crcp_DSO_COMPONENTS = @MCA_ompi_crcp_DSO_COMPONENTS@ +MCA_ompi_crcp_DSO_SUBDIRS = @MCA_ompi_crcp_DSO_SUBDIRS@ +MCA_ompi_crcp_STATIC_COMPONENTS = @MCA_ompi_crcp_STATIC_COMPONENTS@ +MCA_ompi_crcp_STATIC_LTLIBS = @MCA_ompi_crcp_STATIC_LTLIBS@ +MCA_ompi_crcp_STATIC_SUBDIRS = @MCA_ompi_crcp_STATIC_SUBDIRS@ +MCA_ompi_fbtl_ALL_COMPONENTS = @MCA_ompi_fbtl_ALL_COMPONENTS@ +MCA_ompi_fbtl_ALL_SUBDIRS = @MCA_ompi_fbtl_ALL_SUBDIRS@ +MCA_ompi_fbtl_DSO_COMPONENTS = @MCA_ompi_fbtl_DSO_COMPONENTS@ +MCA_ompi_fbtl_DSO_SUBDIRS = @MCA_ompi_fbtl_DSO_SUBDIRS@ +MCA_ompi_fbtl_STATIC_COMPONENTS = @MCA_ompi_fbtl_STATIC_COMPONENTS@ +MCA_ompi_fbtl_STATIC_LTLIBS = @MCA_ompi_fbtl_STATIC_LTLIBS@ +MCA_ompi_fbtl_STATIC_SUBDIRS = @MCA_ompi_fbtl_STATIC_SUBDIRS@ +MCA_ompi_fcoll_ALL_COMPONENTS = @MCA_ompi_fcoll_ALL_COMPONENTS@ +MCA_ompi_fcoll_ALL_SUBDIRS = @MCA_ompi_fcoll_ALL_SUBDIRS@ +MCA_ompi_fcoll_DSO_COMPONENTS = @MCA_ompi_fcoll_DSO_COMPONENTS@ +MCA_ompi_fcoll_DSO_SUBDIRS = @MCA_ompi_fcoll_DSO_SUBDIRS@ +MCA_ompi_fcoll_STATIC_COMPONENTS = @MCA_ompi_fcoll_STATIC_COMPONENTS@ +MCA_ompi_fcoll_STATIC_LTLIBS = @MCA_ompi_fcoll_STATIC_LTLIBS@ +MCA_ompi_fcoll_STATIC_SUBDIRS = @MCA_ompi_fcoll_STATIC_SUBDIRS@ +MCA_ompi_fs_ALL_COMPONENTS = @MCA_ompi_fs_ALL_COMPONENTS@ +MCA_ompi_fs_ALL_SUBDIRS = @MCA_ompi_fs_ALL_SUBDIRS@ +MCA_ompi_fs_DSO_COMPONENTS = @MCA_ompi_fs_DSO_COMPONENTS@ +MCA_ompi_fs_DSO_SUBDIRS = @MCA_ompi_fs_DSO_SUBDIRS@ +MCA_ompi_fs_STATIC_COMPONENTS = @MCA_ompi_fs_STATIC_COMPONENTS@ +MCA_ompi_fs_STATIC_LTLIBS = @MCA_ompi_fs_STATIC_LTLIBS@ +MCA_ompi_fs_STATIC_SUBDIRS = @MCA_ompi_fs_STATIC_SUBDIRS@ +MCA_ompi_hook_ALL_COMPONENTS = @MCA_ompi_hook_ALL_COMPONENTS@ +MCA_ompi_hook_ALL_SUBDIRS = @MCA_ompi_hook_ALL_SUBDIRS@ +MCA_ompi_hook_DSO_COMPONENTS = @MCA_ompi_hook_DSO_COMPONENTS@ +MCA_ompi_hook_DSO_SUBDIRS = @MCA_ompi_hook_DSO_SUBDIRS@ +MCA_ompi_hook_STATIC_COMPONENTS = @MCA_ompi_hook_STATIC_COMPONENTS@ +MCA_ompi_hook_STATIC_LTLIBS = @MCA_ompi_hook_STATIC_LTLIBS@ +MCA_ompi_hook_STATIC_SUBDIRS = @MCA_ompi_hook_STATIC_SUBDIRS@ +MCA_ompi_io_ALL_COMPONENTS = @MCA_ompi_io_ALL_COMPONENTS@ +MCA_ompi_io_ALL_SUBDIRS = @MCA_ompi_io_ALL_SUBDIRS@ +MCA_ompi_io_DSO_COMPONENTS = @MCA_ompi_io_DSO_COMPONENTS@ +MCA_ompi_io_DSO_SUBDIRS = @MCA_ompi_io_DSO_SUBDIRS@ +MCA_ompi_io_STATIC_COMPONENTS = @MCA_ompi_io_STATIC_COMPONENTS@ +MCA_ompi_io_STATIC_LTLIBS = @MCA_ompi_io_STATIC_LTLIBS@ +MCA_ompi_io_STATIC_SUBDIRS = @MCA_ompi_io_STATIC_SUBDIRS@ +MCA_ompi_mtl_ALL_COMPONENTS = @MCA_ompi_mtl_ALL_COMPONENTS@ +MCA_ompi_mtl_ALL_SUBDIRS = @MCA_ompi_mtl_ALL_SUBDIRS@ +MCA_ompi_mtl_DIRECT_CALL_HEADER = @MCA_ompi_mtl_DIRECT_CALL_HEADER@ +MCA_ompi_mtl_DSO_COMPONENTS = @MCA_ompi_mtl_DSO_COMPONENTS@ +MCA_ompi_mtl_DSO_SUBDIRS = @MCA_ompi_mtl_DSO_SUBDIRS@ +MCA_ompi_mtl_STATIC_COMPONENTS = @MCA_ompi_mtl_STATIC_COMPONENTS@ +MCA_ompi_mtl_STATIC_LTLIBS = @MCA_ompi_mtl_STATIC_LTLIBS@ +MCA_ompi_mtl_STATIC_SUBDIRS = @MCA_ompi_mtl_STATIC_SUBDIRS@ +MCA_ompi_op_ALL_COMPONENTS = @MCA_ompi_op_ALL_COMPONENTS@ +MCA_ompi_op_ALL_SUBDIRS = @MCA_ompi_op_ALL_SUBDIRS@ +MCA_ompi_op_DSO_COMPONENTS = @MCA_ompi_op_DSO_COMPONENTS@ +MCA_ompi_op_DSO_SUBDIRS = @MCA_ompi_op_DSO_SUBDIRS@ +MCA_ompi_op_STATIC_COMPONENTS = @MCA_ompi_op_STATIC_COMPONENTS@ +MCA_ompi_op_STATIC_LTLIBS = @MCA_ompi_op_STATIC_LTLIBS@ +MCA_ompi_op_STATIC_SUBDIRS = @MCA_ompi_op_STATIC_SUBDIRS@ +MCA_ompi_osc_ALL_COMPONENTS = @MCA_ompi_osc_ALL_COMPONENTS@ +MCA_ompi_osc_ALL_SUBDIRS = @MCA_ompi_osc_ALL_SUBDIRS@ +MCA_ompi_osc_DSO_COMPONENTS = @MCA_ompi_osc_DSO_COMPONENTS@ +MCA_ompi_osc_DSO_SUBDIRS = @MCA_ompi_osc_DSO_SUBDIRS@ +MCA_ompi_osc_STATIC_COMPONENTS = @MCA_ompi_osc_STATIC_COMPONENTS@ +MCA_ompi_osc_STATIC_LTLIBS = @MCA_ompi_osc_STATIC_LTLIBS@ +MCA_ompi_osc_STATIC_SUBDIRS = @MCA_ompi_osc_STATIC_SUBDIRS@ +MCA_ompi_pml_ALL_COMPONENTS = @MCA_ompi_pml_ALL_COMPONENTS@ +MCA_ompi_pml_ALL_SUBDIRS = @MCA_ompi_pml_ALL_SUBDIRS@ +MCA_ompi_pml_DIRECT_CALL_HEADER = @MCA_ompi_pml_DIRECT_CALL_HEADER@ +MCA_ompi_pml_DSO_COMPONENTS = @MCA_ompi_pml_DSO_COMPONENTS@ +MCA_ompi_pml_DSO_SUBDIRS = @MCA_ompi_pml_DSO_SUBDIRS@ +MCA_ompi_pml_STATIC_COMPONENTS = @MCA_ompi_pml_STATIC_COMPONENTS@ +MCA_ompi_pml_STATIC_LTLIBS = @MCA_ompi_pml_STATIC_LTLIBS@ +MCA_ompi_pml_STATIC_SUBDIRS = @MCA_ompi_pml_STATIC_SUBDIRS@ +MCA_ompi_rte_ALL_COMPONENTS = @MCA_ompi_rte_ALL_COMPONENTS@ +MCA_ompi_rte_ALL_SUBDIRS = @MCA_ompi_rte_ALL_SUBDIRS@ +MCA_ompi_rte_DSO_COMPONENTS = @MCA_ompi_rte_DSO_COMPONENTS@ +MCA_ompi_rte_DSO_SUBDIRS = @MCA_ompi_rte_DSO_SUBDIRS@ +MCA_ompi_rte_STATIC_COMPONENTS = @MCA_ompi_rte_STATIC_COMPONENTS@ +MCA_ompi_rte_STATIC_LTLIBS = @MCA_ompi_rte_STATIC_LTLIBS@ +MCA_ompi_rte_STATIC_SUBDIRS = @MCA_ompi_rte_STATIC_SUBDIRS@ +MCA_ompi_sharedfp_ALL_COMPONENTS = @MCA_ompi_sharedfp_ALL_COMPONENTS@ +MCA_ompi_sharedfp_ALL_SUBDIRS = @MCA_ompi_sharedfp_ALL_SUBDIRS@ +MCA_ompi_sharedfp_DSO_COMPONENTS = @MCA_ompi_sharedfp_DSO_COMPONENTS@ +MCA_ompi_sharedfp_DSO_SUBDIRS = @MCA_ompi_sharedfp_DSO_SUBDIRS@ +MCA_ompi_sharedfp_STATIC_COMPONENTS = @MCA_ompi_sharedfp_STATIC_COMPONENTS@ +MCA_ompi_sharedfp_STATIC_LTLIBS = @MCA_ompi_sharedfp_STATIC_LTLIBS@ +MCA_ompi_sharedfp_STATIC_SUBDIRS = @MCA_ompi_sharedfp_STATIC_SUBDIRS@ +MCA_ompi_topo_ALL_COMPONENTS = @MCA_ompi_topo_ALL_COMPONENTS@ +MCA_ompi_topo_ALL_SUBDIRS = @MCA_ompi_topo_ALL_SUBDIRS@ +MCA_ompi_topo_DSO_COMPONENTS = @MCA_ompi_topo_DSO_COMPONENTS@ +MCA_ompi_topo_DSO_SUBDIRS = @MCA_ompi_topo_DSO_SUBDIRS@ +MCA_ompi_topo_STATIC_COMPONENTS = @MCA_ompi_topo_STATIC_COMPONENTS@ +MCA_ompi_topo_STATIC_LTLIBS = @MCA_ompi_topo_STATIC_LTLIBS@ +MCA_ompi_topo_STATIC_SUBDIRS = @MCA_ompi_topo_STATIC_SUBDIRS@ +MCA_ompi_vprotocol_ALL_COMPONENTS = @MCA_ompi_vprotocol_ALL_COMPONENTS@ +MCA_ompi_vprotocol_ALL_SUBDIRS = @MCA_ompi_vprotocol_ALL_SUBDIRS@ +MCA_ompi_vprotocol_DSO_COMPONENTS = @MCA_ompi_vprotocol_DSO_COMPONENTS@ +MCA_ompi_vprotocol_DSO_SUBDIRS = @MCA_ompi_vprotocol_DSO_SUBDIRS@ +MCA_ompi_vprotocol_STATIC_COMPONENTS = @MCA_ompi_vprotocol_STATIC_COMPONENTS@ +MCA_ompi_vprotocol_STATIC_LTLIBS = @MCA_ompi_vprotocol_STATIC_LTLIBS@ +MCA_ompi_vprotocol_STATIC_SUBDIRS = @MCA_ompi_vprotocol_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORKS = @MCA_opal_FRAMEWORKS@ +MCA_opal_FRAMEWORKS_SUBDIRS = @MCA_opal_FRAMEWORKS_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORK_LIBS = @MCA_opal_FRAMEWORK_LIBS@ +MCA_opal_allocator_ALL_COMPONENTS = @MCA_opal_allocator_ALL_COMPONENTS@ +MCA_opal_allocator_ALL_SUBDIRS = @MCA_opal_allocator_ALL_SUBDIRS@ +MCA_opal_allocator_DSO_COMPONENTS = @MCA_opal_allocator_DSO_COMPONENTS@ +MCA_opal_allocator_DSO_SUBDIRS = @MCA_opal_allocator_DSO_SUBDIRS@ +MCA_opal_allocator_STATIC_COMPONENTS = @MCA_opal_allocator_STATIC_COMPONENTS@ +MCA_opal_allocator_STATIC_LTLIBS = @MCA_opal_allocator_STATIC_LTLIBS@ +MCA_opal_allocator_STATIC_SUBDIRS = @MCA_opal_allocator_STATIC_SUBDIRS@ +MCA_opal_backtrace_ALL_COMPONENTS = @MCA_opal_backtrace_ALL_COMPONENTS@ +MCA_opal_backtrace_ALL_SUBDIRS = @MCA_opal_backtrace_ALL_SUBDIRS@ +MCA_opal_backtrace_DSO_COMPONENTS = @MCA_opal_backtrace_DSO_COMPONENTS@ +MCA_opal_backtrace_DSO_SUBDIRS = @MCA_opal_backtrace_DSO_SUBDIRS@ +MCA_opal_backtrace_STATIC_COMPONENTS = @MCA_opal_backtrace_STATIC_COMPONENTS@ +MCA_opal_backtrace_STATIC_LTLIBS = @MCA_opal_backtrace_STATIC_LTLIBS@ +MCA_opal_backtrace_STATIC_SUBDIRS = @MCA_opal_backtrace_STATIC_SUBDIRS@ +MCA_opal_btl_ALL_COMPONENTS = @MCA_opal_btl_ALL_COMPONENTS@ +MCA_opal_btl_ALL_SUBDIRS = @MCA_opal_btl_ALL_SUBDIRS@ +MCA_opal_btl_DSO_COMPONENTS = @MCA_opal_btl_DSO_COMPONENTS@ +MCA_opal_btl_DSO_SUBDIRS = @MCA_opal_btl_DSO_SUBDIRS@ +MCA_opal_btl_STATIC_COMPONENTS = @MCA_opal_btl_STATIC_COMPONENTS@ +MCA_opal_btl_STATIC_LTLIBS = @MCA_opal_btl_STATIC_LTLIBS@ +MCA_opal_btl_STATIC_SUBDIRS = @MCA_opal_btl_STATIC_SUBDIRS@ +MCA_opal_common_ALL_COMPONENTS = @MCA_opal_common_ALL_COMPONENTS@ +MCA_opal_common_ALL_SUBDIRS = @MCA_opal_common_ALL_SUBDIRS@ +MCA_opal_common_DSO_COMPONENTS = @MCA_opal_common_DSO_COMPONENTS@ +MCA_opal_common_DSO_SUBDIRS = @MCA_opal_common_DSO_SUBDIRS@ +MCA_opal_common_STATIC_COMPONENTS = @MCA_opal_common_STATIC_COMPONENTS@ +MCA_opal_common_STATIC_LTLIBS = @MCA_opal_common_STATIC_LTLIBS@ +MCA_opal_common_STATIC_SUBDIRS = @MCA_opal_common_STATIC_SUBDIRS@ +MCA_opal_compress_ALL_COMPONENTS = @MCA_opal_compress_ALL_COMPONENTS@ +MCA_opal_compress_ALL_SUBDIRS = @MCA_opal_compress_ALL_SUBDIRS@ +MCA_opal_compress_DSO_COMPONENTS = @MCA_opal_compress_DSO_COMPONENTS@ +MCA_opal_compress_DSO_SUBDIRS = @MCA_opal_compress_DSO_SUBDIRS@ +MCA_opal_compress_STATIC_COMPONENTS = @MCA_opal_compress_STATIC_COMPONENTS@ +MCA_opal_compress_STATIC_LTLIBS = @MCA_opal_compress_STATIC_LTLIBS@ +MCA_opal_compress_STATIC_SUBDIRS = @MCA_opal_compress_STATIC_SUBDIRS@ +MCA_opal_crs_ALL_COMPONENTS = @MCA_opal_crs_ALL_COMPONENTS@ +MCA_opal_crs_ALL_SUBDIRS = @MCA_opal_crs_ALL_SUBDIRS@ +MCA_opal_crs_DSO_COMPONENTS = @MCA_opal_crs_DSO_COMPONENTS@ +MCA_opal_crs_DSO_SUBDIRS = @MCA_opal_crs_DSO_SUBDIRS@ +MCA_opal_crs_STATIC_COMPONENTS = @MCA_opal_crs_STATIC_COMPONENTS@ +MCA_opal_crs_STATIC_LTLIBS = @MCA_opal_crs_STATIC_LTLIBS@ +MCA_opal_crs_STATIC_SUBDIRS = @MCA_opal_crs_STATIC_SUBDIRS@ +MCA_opal_dl_ALL_COMPONENTS = @MCA_opal_dl_ALL_COMPONENTS@ +MCA_opal_dl_ALL_SUBDIRS = @MCA_opal_dl_ALL_SUBDIRS@ +MCA_opal_dl_DSO_COMPONENTS = @MCA_opal_dl_DSO_COMPONENTS@ +MCA_opal_dl_DSO_SUBDIRS = @MCA_opal_dl_DSO_SUBDIRS@ +MCA_opal_dl_STATIC_COMPONENTS = @MCA_opal_dl_STATIC_COMPONENTS@ +MCA_opal_dl_STATIC_LTLIBS = @MCA_opal_dl_STATIC_LTLIBS@ +MCA_opal_dl_STATIC_SUBDIRS = @MCA_opal_dl_STATIC_SUBDIRS@ +MCA_opal_event_ALL_COMPONENTS = @MCA_opal_event_ALL_COMPONENTS@ +MCA_opal_event_ALL_SUBDIRS = @MCA_opal_event_ALL_SUBDIRS@ +MCA_opal_event_DSO_COMPONENTS = @MCA_opal_event_DSO_COMPONENTS@ +MCA_opal_event_DSO_SUBDIRS = @MCA_opal_event_DSO_SUBDIRS@ +MCA_opal_event_STATIC_COMPONENTS = @MCA_opal_event_STATIC_COMPONENTS@ +MCA_opal_event_STATIC_LTLIBS = @MCA_opal_event_STATIC_LTLIBS@ +MCA_opal_event_STATIC_SUBDIRS = @MCA_opal_event_STATIC_SUBDIRS@ +MCA_opal_hwloc_ALL_COMPONENTS = @MCA_opal_hwloc_ALL_COMPONENTS@ +MCA_opal_hwloc_ALL_SUBDIRS = @MCA_opal_hwloc_ALL_SUBDIRS@ +MCA_opal_hwloc_DSO_COMPONENTS = @MCA_opal_hwloc_DSO_COMPONENTS@ +MCA_opal_hwloc_DSO_SUBDIRS = @MCA_opal_hwloc_DSO_SUBDIRS@ +MCA_opal_hwloc_STATIC_COMPONENTS = @MCA_opal_hwloc_STATIC_COMPONENTS@ +MCA_opal_hwloc_STATIC_LTLIBS = @MCA_opal_hwloc_STATIC_LTLIBS@ +MCA_opal_hwloc_STATIC_SUBDIRS = @MCA_opal_hwloc_STATIC_SUBDIRS@ +MCA_opal_if_ALL_COMPONENTS = @MCA_opal_if_ALL_COMPONENTS@ +MCA_opal_if_ALL_SUBDIRS = @MCA_opal_if_ALL_SUBDIRS@ +MCA_opal_if_DSO_COMPONENTS = @MCA_opal_if_DSO_COMPONENTS@ +MCA_opal_if_DSO_SUBDIRS = @MCA_opal_if_DSO_SUBDIRS@ +MCA_opal_if_STATIC_COMPONENTS = @MCA_opal_if_STATIC_COMPONENTS@ +MCA_opal_if_STATIC_LTLIBS = @MCA_opal_if_STATIC_LTLIBS@ +MCA_opal_if_STATIC_SUBDIRS = @MCA_opal_if_STATIC_SUBDIRS@ +MCA_opal_installdirs_ALL_COMPONENTS = @MCA_opal_installdirs_ALL_COMPONENTS@ +MCA_opal_installdirs_ALL_SUBDIRS = @MCA_opal_installdirs_ALL_SUBDIRS@ +MCA_opal_installdirs_DSO_COMPONENTS = @MCA_opal_installdirs_DSO_COMPONENTS@ +MCA_opal_installdirs_DSO_SUBDIRS = @MCA_opal_installdirs_DSO_SUBDIRS@ +MCA_opal_installdirs_STATIC_COMPONENTS = @MCA_opal_installdirs_STATIC_COMPONENTS@ +MCA_opal_installdirs_STATIC_LTLIBS = @MCA_opal_installdirs_STATIC_LTLIBS@ +MCA_opal_installdirs_STATIC_SUBDIRS = @MCA_opal_installdirs_STATIC_SUBDIRS@ +MCA_opal_memchecker_ALL_COMPONENTS = @MCA_opal_memchecker_ALL_COMPONENTS@ +MCA_opal_memchecker_ALL_SUBDIRS = @MCA_opal_memchecker_ALL_SUBDIRS@ +MCA_opal_memchecker_DSO_COMPONENTS = @MCA_opal_memchecker_DSO_COMPONENTS@ +MCA_opal_memchecker_DSO_SUBDIRS = @MCA_opal_memchecker_DSO_SUBDIRS@ +MCA_opal_memchecker_STATIC_COMPONENTS = @MCA_opal_memchecker_STATIC_COMPONENTS@ +MCA_opal_memchecker_STATIC_LTLIBS = @MCA_opal_memchecker_STATIC_LTLIBS@ +MCA_opal_memchecker_STATIC_SUBDIRS = @MCA_opal_memchecker_STATIC_SUBDIRS@ +MCA_opal_memcpy_ALL_COMPONENTS = @MCA_opal_memcpy_ALL_COMPONENTS@ +MCA_opal_memcpy_ALL_SUBDIRS = @MCA_opal_memcpy_ALL_SUBDIRS@ +MCA_opal_memcpy_DSO_COMPONENTS = @MCA_opal_memcpy_DSO_COMPONENTS@ +MCA_opal_memcpy_DSO_SUBDIRS = @MCA_opal_memcpy_DSO_SUBDIRS@ +MCA_opal_memcpy_STATIC_COMPONENTS = @MCA_opal_memcpy_STATIC_COMPONENTS@ +MCA_opal_memcpy_STATIC_LTLIBS = @MCA_opal_memcpy_STATIC_LTLIBS@ +MCA_opal_memcpy_STATIC_SUBDIRS = @MCA_opal_memcpy_STATIC_SUBDIRS@ +MCA_opal_memory_ALL_COMPONENTS = @MCA_opal_memory_ALL_COMPONENTS@ +MCA_opal_memory_ALL_SUBDIRS = @MCA_opal_memory_ALL_SUBDIRS@ +MCA_opal_memory_DSO_COMPONENTS = @MCA_opal_memory_DSO_COMPONENTS@ +MCA_opal_memory_DSO_SUBDIRS = @MCA_opal_memory_DSO_SUBDIRS@ +MCA_opal_memory_STATIC_COMPONENTS = @MCA_opal_memory_STATIC_COMPONENTS@ +MCA_opal_memory_STATIC_LTLIBS = @MCA_opal_memory_STATIC_LTLIBS@ +MCA_opal_memory_STATIC_SUBDIRS = @MCA_opal_memory_STATIC_SUBDIRS@ +MCA_opal_mpool_ALL_COMPONENTS = @MCA_opal_mpool_ALL_COMPONENTS@ +MCA_opal_mpool_ALL_SUBDIRS = @MCA_opal_mpool_ALL_SUBDIRS@ +MCA_opal_mpool_DSO_COMPONENTS = @MCA_opal_mpool_DSO_COMPONENTS@ +MCA_opal_mpool_DSO_SUBDIRS = @MCA_opal_mpool_DSO_SUBDIRS@ +MCA_opal_mpool_STATIC_COMPONENTS = @MCA_opal_mpool_STATIC_COMPONENTS@ +MCA_opal_mpool_STATIC_LTLIBS = @MCA_opal_mpool_STATIC_LTLIBS@ +MCA_opal_mpool_STATIC_SUBDIRS = @MCA_opal_mpool_STATIC_SUBDIRS@ +MCA_opal_patcher_ALL_COMPONENTS = @MCA_opal_patcher_ALL_COMPONENTS@ +MCA_opal_patcher_ALL_SUBDIRS = @MCA_opal_patcher_ALL_SUBDIRS@ +MCA_opal_patcher_DSO_COMPONENTS = @MCA_opal_patcher_DSO_COMPONENTS@ +MCA_opal_patcher_DSO_SUBDIRS = @MCA_opal_patcher_DSO_SUBDIRS@ +MCA_opal_patcher_STATIC_COMPONENTS = @MCA_opal_patcher_STATIC_COMPONENTS@ +MCA_opal_patcher_STATIC_LTLIBS = @MCA_opal_patcher_STATIC_LTLIBS@ +MCA_opal_patcher_STATIC_SUBDIRS = @MCA_opal_patcher_STATIC_SUBDIRS@ +MCA_opal_pmix_ALL_COMPONENTS = @MCA_opal_pmix_ALL_COMPONENTS@ +MCA_opal_pmix_ALL_SUBDIRS = @MCA_opal_pmix_ALL_SUBDIRS@ +MCA_opal_pmix_DSO_COMPONENTS = @MCA_opal_pmix_DSO_COMPONENTS@ +MCA_opal_pmix_DSO_SUBDIRS = @MCA_opal_pmix_DSO_SUBDIRS@ +MCA_opal_pmix_STATIC_COMPONENTS = @MCA_opal_pmix_STATIC_COMPONENTS@ +MCA_opal_pmix_STATIC_LTLIBS = @MCA_opal_pmix_STATIC_LTLIBS@ +MCA_opal_pmix_STATIC_SUBDIRS = @MCA_opal_pmix_STATIC_SUBDIRS@ +MCA_opal_pstat_ALL_COMPONENTS = @MCA_opal_pstat_ALL_COMPONENTS@ +MCA_opal_pstat_ALL_SUBDIRS = @MCA_opal_pstat_ALL_SUBDIRS@ +MCA_opal_pstat_DSO_COMPONENTS = @MCA_opal_pstat_DSO_COMPONENTS@ +MCA_opal_pstat_DSO_SUBDIRS = @MCA_opal_pstat_DSO_SUBDIRS@ +MCA_opal_pstat_STATIC_COMPONENTS = @MCA_opal_pstat_STATIC_COMPONENTS@ +MCA_opal_pstat_STATIC_LTLIBS = @MCA_opal_pstat_STATIC_LTLIBS@ +MCA_opal_pstat_STATIC_SUBDIRS = @MCA_opal_pstat_STATIC_SUBDIRS@ +MCA_opal_rcache_ALL_COMPONENTS = @MCA_opal_rcache_ALL_COMPONENTS@ +MCA_opal_rcache_ALL_SUBDIRS = @MCA_opal_rcache_ALL_SUBDIRS@ +MCA_opal_rcache_DSO_COMPONENTS = @MCA_opal_rcache_DSO_COMPONENTS@ +MCA_opal_rcache_DSO_SUBDIRS = @MCA_opal_rcache_DSO_SUBDIRS@ +MCA_opal_rcache_STATIC_COMPONENTS = @MCA_opal_rcache_STATIC_COMPONENTS@ +MCA_opal_rcache_STATIC_LTLIBS = @MCA_opal_rcache_STATIC_LTLIBS@ +MCA_opal_rcache_STATIC_SUBDIRS = @MCA_opal_rcache_STATIC_SUBDIRS@ +MCA_opal_reachable_ALL_COMPONENTS = @MCA_opal_reachable_ALL_COMPONENTS@ +MCA_opal_reachable_ALL_SUBDIRS = @MCA_opal_reachable_ALL_SUBDIRS@ +MCA_opal_reachable_DSO_COMPONENTS = @MCA_opal_reachable_DSO_COMPONENTS@ +MCA_opal_reachable_DSO_SUBDIRS = @MCA_opal_reachable_DSO_SUBDIRS@ +MCA_opal_reachable_STATIC_COMPONENTS = @MCA_opal_reachable_STATIC_COMPONENTS@ +MCA_opal_reachable_STATIC_LTLIBS = @MCA_opal_reachable_STATIC_LTLIBS@ +MCA_opal_reachable_STATIC_SUBDIRS = @MCA_opal_reachable_STATIC_SUBDIRS@ +MCA_opal_shmem_ALL_COMPONENTS = @MCA_opal_shmem_ALL_COMPONENTS@ +MCA_opal_shmem_ALL_SUBDIRS = @MCA_opal_shmem_ALL_SUBDIRS@ +MCA_opal_shmem_DSO_COMPONENTS = @MCA_opal_shmem_DSO_COMPONENTS@ +MCA_opal_shmem_DSO_SUBDIRS = @MCA_opal_shmem_DSO_SUBDIRS@ +MCA_opal_shmem_STATIC_COMPONENTS = @MCA_opal_shmem_STATIC_COMPONENTS@ +MCA_opal_shmem_STATIC_LTLIBS = @MCA_opal_shmem_STATIC_LTLIBS@ +MCA_opal_shmem_STATIC_SUBDIRS = @MCA_opal_shmem_STATIC_SUBDIRS@ +MCA_opal_timer_ALL_COMPONENTS = @MCA_opal_timer_ALL_COMPONENTS@ +MCA_opal_timer_ALL_SUBDIRS = @MCA_opal_timer_ALL_SUBDIRS@ +MCA_opal_timer_DSO_COMPONENTS = @MCA_opal_timer_DSO_COMPONENTS@ +MCA_opal_timer_DSO_SUBDIRS = @MCA_opal_timer_DSO_SUBDIRS@ +MCA_opal_timer_STATIC_COMPONENTS = @MCA_opal_timer_STATIC_COMPONENTS@ +MCA_opal_timer_STATIC_LTLIBS = @MCA_opal_timer_STATIC_LTLIBS@ +MCA_opal_timer_STATIC_SUBDIRS = @MCA_opal_timer_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORKS = @MCA_orte_FRAMEWORKS@ +MCA_orte_FRAMEWORKS_SUBDIRS = @MCA_orte_FRAMEWORKS_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORK_LIBS = @MCA_orte_FRAMEWORK_LIBS@ +MCA_orte_common_ALL_COMPONENTS = @MCA_orte_common_ALL_COMPONENTS@ +MCA_orte_common_ALL_SUBDIRS = @MCA_orte_common_ALL_SUBDIRS@ +MCA_orte_common_DSO_COMPONENTS = @MCA_orte_common_DSO_COMPONENTS@ +MCA_orte_common_DSO_SUBDIRS = @MCA_orte_common_DSO_SUBDIRS@ +MCA_orte_common_STATIC_COMPONENTS = @MCA_orte_common_STATIC_COMPONENTS@ +MCA_orte_common_STATIC_LTLIBS = @MCA_orte_common_STATIC_LTLIBS@ +MCA_orte_common_STATIC_SUBDIRS = @MCA_orte_common_STATIC_SUBDIRS@ +MCA_orte_errmgr_ALL_COMPONENTS = @MCA_orte_errmgr_ALL_COMPONENTS@ +MCA_orte_errmgr_ALL_SUBDIRS = @MCA_orte_errmgr_ALL_SUBDIRS@ +MCA_orte_errmgr_DSO_COMPONENTS = @MCA_orte_errmgr_DSO_COMPONENTS@ +MCA_orte_errmgr_DSO_SUBDIRS = @MCA_orte_errmgr_DSO_SUBDIRS@ +MCA_orte_errmgr_STATIC_COMPONENTS = @MCA_orte_errmgr_STATIC_COMPONENTS@ +MCA_orte_errmgr_STATIC_LTLIBS = @MCA_orte_errmgr_STATIC_LTLIBS@ +MCA_orte_errmgr_STATIC_SUBDIRS = @MCA_orte_errmgr_STATIC_SUBDIRS@ +MCA_orte_ess_ALL_COMPONENTS = @MCA_orte_ess_ALL_COMPONENTS@ +MCA_orte_ess_ALL_SUBDIRS = @MCA_orte_ess_ALL_SUBDIRS@ +MCA_orte_ess_DSO_COMPONENTS = @MCA_orte_ess_DSO_COMPONENTS@ +MCA_orte_ess_DSO_SUBDIRS = @MCA_orte_ess_DSO_SUBDIRS@ +MCA_orte_ess_STATIC_COMPONENTS = @MCA_orte_ess_STATIC_COMPONENTS@ +MCA_orte_ess_STATIC_LTLIBS = @MCA_orte_ess_STATIC_LTLIBS@ +MCA_orte_ess_STATIC_SUBDIRS = @MCA_orte_ess_STATIC_SUBDIRS@ +MCA_orte_filem_ALL_COMPONENTS = @MCA_orte_filem_ALL_COMPONENTS@ +MCA_orte_filem_ALL_SUBDIRS = @MCA_orte_filem_ALL_SUBDIRS@ +MCA_orte_filem_DSO_COMPONENTS = @MCA_orte_filem_DSO_COMPONENTS@ +MCA_orte_filem_DSO_SUBDIRS = @MCA_orte_filem_DSO_SUBDIRS@ +MCA_orte_filem_STATIC_COMPONENTS = @MCA_orte_filem_STATIC_COMPONENTS@ +MCA_orte_filem_STATIC_LTLIBS = @MCA_orte_filem_STATIC_LTLIBS@ +MCA_orte_filem_STATIC_SUBDIRS = @MCA_orte_filem_STATIC_SUBDIRS@ +MCA_orte_grpcomm_ALL_COMPONENTS = @MCA_orte_grpcomm_ALL_COMPONENTS@ +MCA_orte_grpcomm_ALL_SUBDIRS = @MCA_orte_grpcomm_ALL_SUBDIRS@ +MCA_orte_grpcomm_DSO_COMPONENTS = @MCA_orte_grpcomm_DSO_COMPONENTS@ +MCA_orte_grpcomm_DSO_SUBDIRS = @MCA_orte_grpcomm_DSO_SUBDIRS@ +MCA_orte_grpcomm_STATIC_COMPONENTS = @MCA_orte_grpcomm_STATIC_COMPONENTS@ +MCA_orte_grpcomm_STATIC_LTLIBS = @MCA_orte_grpcomm_STATIC_LTLIBS@ +MCA_orte_grpcomm_STATIC_SUBDIRS = @MCA_orte_grpcomm_STATIC_SUBDIRS@ +MCA_orte_iof_ALL_COMPONENTS = @MCA_orte_iof_ALL_COMPONENTS@ +MCA_orte_iof_ALL_SUBDIRS = @MCA_orte_iof_ALL_SUBDIRS@ +MCA_orte_iof_DSO_COMPONENTS = @MCA_orte_iof_DSO_COMPONENTS@ +MCA_orte_iof_DSO_SUBDIRS = @MCA_orte_iof_DSO_SUBDIRS@ +MCA_orte_iof_STATIC_COMPONENTS = @MCA_orte_iof_STATIC_COMPONENTS@ +MCA_orte_iof_STATIC_LTLIBS = @MCA_orte_iof_STATIC_LTLIBS@ +MCA_orte_iof_STATIC_SUBDIRS = @MCA_orte_iof_STATIC_SUBDIRS@ +MCA_orte_odls_ALL_COMPONENTS = @MCA_orte_odls_ALL_COMPONENTS@ +MCA_orte_odls_ALL_SUBDIRS = @MCA_orte_odls_ALL_SUBDIRS@ +MCA_orte_odls_DSO_COMPONENTS = @MCA_orte_odls_DSO_COMPONENTS@ +MCA_orte_odls_DSO_SUBDIRS = @MCA_orte_odls_DSO_SUBDIRS@ +MCA_orte_odls_STATIC_COMPONENTS = @MCA_orte_odls_STATIC_COMPONENTS@ +MCA_orte_odls_STATIC_LTLIBS = @MCA_orte_odls_STATIC_LTLIBS@ +MCA_orte_odls_STATIC_SUBDIRS = @MCA_orte_odls_STATIC_SUBDIRS@ +MCA_orte_oob_ALL_COMPONENTS = @MCA_orte_oob_ALL_COMPONENTS@ +MCA_orte_oob_ALL_SUBDIRS = @MCA_orte_oob_ALL_SUBDIRS@ +MCA_orte_oob_DSO_COMPONENTS = @MCA_orte_oob_DSO_COMPONENTS@ +MCA_orte_oob_DSO_SUBDIRS = @MCA_orte_oob_DSO_SUBDIRS@ +MCA_orte_oob_STATIC_COMPONENTS = @MCA_orte_oob_STATIC_COMPONENTS@ +MCA_orte_oob_STATIC_LTLIBS = @MCA_orte_oob_STATIC_LTLIBS@ +MCA_orte_oob_STATIC_SUBDIRS = @MCA_orte_oob_STATIC_SUBDIRS@ +MCA_orte_plm_ALL_COMPONENTS = @MCA_orte_plm_ALL_COMPONENTS@ +MCA_orte_plm_ALL_SUBDIRS = @MCA_orte_plm_ALL_SUBDIRS@ +MCA_orte_plm_DSO_COMPONENTS = @MCA_orte_plm_DSO_COMPONENTS@ +MCA_orte_plm_DSO_SUBDIRS = @MCA_orte_plm_DSO_SUBDIRS@ +MCA_orte_plm_STATIC_COMPONENTS = @MCA_orte_plm_STATIC_COMPONENTS@ +MCA_orte_plm_STATIC_LTLIBS = @MCA_orte_plm_STATIC_LTLIBS@ +MCA_orte_plm_STATIC_SUBDIRS = @MCA_orte_plm_STATIC_SUBDIRS@ +MCA_orte_ras_ALL_COMPONENTS = @MCA_orte_ras_ALL_COMPONENTS@ +MCA_orte_ras_ALL_SUBDIRS = @MCA_orte_ras_ALL_SUBDIRS@ +MCA_orte_ras_DSO_COMPONENTS = @MCA_orte_ras_DSO_COMPONENTS@ +MCA_orte_ras_DSO_SUBDIRS = @MCA_orte_ras_DSO_SUBDIRS@ +MCA_orte_ras_STATIC_COMPONENTS = @MCA_orte_ras_STATIC_COMPONENTS@ +MCA_orte_ras_STATIC_LTLIBS = @MCA_orte_ras_STATIC_LTLIBS@ +MCA_orte_ras_STATIC_SUBDIRS = @MCA_orte_ras_STATIC_SUBDIRS@ +MCA_orte_regx_ALL_COMPONENTS = @MCA_orte_regx_ALL_COMPONENTS@ +MCA_orte_regx_ALL_SUBDIRS = @MCA_orte_regx_ALL_SUBDIRS@ +MCA_orte_regx_DSO_COMPONENTS = @MCA_orte_regx_DSO_COMPONENTS@ +MCA_orte_regx_DSO_SUBDIRS = @MCA_orte_regx_DSO_SUBDIRS@ +MCA_orte_regx_STATIC_COMPONENTS = @MCA_orte_regx_STATIC_COMPONENTS@ +MCA_orte_regx_STATIC_LTLIBS = @MCA_orte_regx_STATIC_LTLIBS@ +MCA_orte_regx_STATIC_SUBDIRS = @MCA_orte_regx_STATIC_SUBDIRS@ +MCA_orte_rmaps_ALL_COMPONENTS = @MCA_orte_rmaps_ALL_COMPONENTS@ +MCA_orte_rmaps_ALL_SUBDIRS = @MCA_orte_rmaps_ALL_SUBDIRS@ +MCA_orte_rmaps_DSO_COMPONENTS = @MCA_orte_rmaps_DSO_COMPONENTS@ +MCA_orte_rmaps_DSO_SUBDIRS = @MCA_orte_rmaps_DSO_SUBDIRS@ +MCA_orte_rmaps_STATIC_COMPONENTS = @MCA_orte_rmaps_STATIC_COMPONENTS@ +MCA_orte_rmaps_STATIC_LTLIBS = @MCA_orte_rmaps_STATIC_LTLIBS@ +MCA_orte_rmaps_STATIC_SUBDIRS = @MCA_orte_rmaps_STATIC_SUBDIRS@ +MCA_orte_rml_ALL_COMPONENTS = @MCA_orte_rml_ALL_COMPONENTS@ +MCA_orte_rml_ALL_SUBDIRS = @MCA_orte_rml_ALL_SUBDIRS@ +MCA_orte_rml_DSO_COMPONENTS = @MCA_orte_rml_DSO_COMPONENTS@ +MCA_orte_rml_DSO_SUBDIRS = @MCA_orte_rml_DSO_SUBDIRS@ +MCA_orte_rml_STATIC_COMPONENTS = @MCA_orte_rml_STATIC_COMPONENTS@ +MCA_orte_rml_STATIC_LTLIBS = @MCA_orte_rml_STATIC_LTLIBS@ +MCA_orte_rml_STATIC_SUBDIRS = @MCA_orte_rml_STATIC_SUBDIRS@ +MCA_orte_routed_ALL_COMPONENTS = @MCA_orte_routed_ALL_COMPONENTS@ +MCA_orte_routed_ALL_SUBDIRS = @MCA_orte_routed_ALL_SUBDIRS@ +MCA_orte_routed_DSO_COMPONENTS = @MCA_orte_routed_DSO_COMPONENTS@ +MCA_orte_routed_DSO_SUBDIRS = @MCA_orte_routed_DSO_SUBDIRS@ +MCA_orte_routed_STATIC_COMPONENTS = @MCA_orte_routed_STATIC_COMPONENTS@ +MCA_orte_routed_STATIC_LTLIBS = @MCA_orte_routed_STATIC_LTLIBS@ +MCA_orte_routed_STATIC_SUBDIRS = @MCA_orte_routed_STATIC_SUBDIRS@ +MCA_orte_rtc_ALL_COMPONENTS = @MCA_orte_rtc_ALL_COMPONENTS@ +MCA_orte_rtc_ALL_SUBDIRS = @MCA_orte_rtc_ALL_SUBDIRS@ +MCA_orte_rtc_DSO_COMPONENTS = @MCA_orte_rtc_DSO_COMPONENTS@ +MCA_orte_rtc_DSO_SUBDIRS = @MCA_orte_rtc_DSO_SUBDIRS@ +MCA_orte_rtc_STATIC_COMPONENTS = @MCA_orte_rtc_STATIC_COMPONENTS@ +MCA_orte_rtc_STATIC_LTLIBS = @MCA_orte_rtc_STATIC_LTLIBS@ +MCA_orte_rtc_STATIC_SUBDIRS = @MCA_orte_rtc_STATIC_SUBDIRS@ +MCA_orte_schizo_ALL_COMPONENTS = @MCA_orte_schizo_ALL_COMPONENTS@ +MCA_orte_schizo_ALL_SUBDIRS = @MCA_orte_schizo_ALL_SUBDIRS@ +MCA_orte_schizo_DSO_COMPONENTS = @MCA_orte_schizo_DSO_COMPONENTS@ +MCA_orte_schizo_DSO_SUBDIRS = @MCA_orte_schizo_DSO_SUBDIRS@ +MCA_orte_schizo_STATIC_COMPONENTS = @MCA_orte_schizo_STATIC_COMPONENTS@ +MCA_orte_schizo_STATIC_LTLIBS = @MCA_orte_schizo_STATIC_LTLIBS@ +MCA_orte_schizo_STATIC_SUBDIRS = @MCA_orte_schizo_STATIC_SUBDIRS@ +MCA_orte_snapc_ALL_COMPONENTS = @MCA_orte_snapc_ALL_COMPONENTS@ +MCA_orte_snapc_ALL_SUBDIRS = @MCA_orte_snapc_ALL_SUBDIRS@ +MCA_orte_snapc_DSO_COMPONENTS = @MCA_orte_snapc_DSO_COMPONENTS@ +MCA_orte_snapc_DSO_SUBDIRS = @MCA_orte_snapc_DSO_SUBDIRS@ +MCA_orte_snapc_STATIC_COMPONENTS = @MCA_orte_snapc_STATIC_COMPONENTS@ +MCA_orte_snapc_STATIC_LTLIBS = @MCA_orte_snapc_STATIC_LTLIBS@ +MCA_orte_snapc_STATIC_SUBDIRS = @MCA_orte_snapc_STATIC_SUBDIRS@ +MCA_orte_sstore_ALL_COMPONENTS = @MCA_orte_sstore_ALL_COMPONENTS@ +MCA_orte_sstore_ALL_SUBDIRS = @MCA_orte_sstore_ALL_SUBDIRS@ +MCA_orte_sstore_DSO_COMPONENTS = @MCA_orte_sstore_DSO_COMPONENTS@ +MCA_orte_sstore_DSO_SUBDIRS = @MCA_orte_sstore_DSO_SUBDIRS@ +MCA_orte_sstore_STATIC_COMPONENTS = @MCA_orte_sstore_STATIC_COMPONENTS@ +MCA_orte_sstore_STATIC_LTLIBS = @MCA_orte_sstore_STATIC_LTLIBS@ +MCA_orte_sstore_STATIC_SUBDIRS = @MCA_orte_sstore_STATIC_SUBDIRS@ +MCA_orte_state_ALL_COMPONENTS = @MCA_orte_state_ALL_COMPONENTS@ +MCA_orte_state_ALL_SUBDIRS = @MCA_orte_state_ALL_SUBDIRS@ +MCA_orte_state_DSO_COMPONENTS = @MCA_orte_state_DSO_COMPONENTS@ +MCA_orte_state_DSO_SUBDIRS = @MCA_orte_state_DSO_SUBDIRS@ +MCA_orte_state_STATIC_COMPONENTS = @MCA_orte_state_STATIC_COMPONENTS@ +MCA_orte_state_STATIC_LTLIBS = @MCA_orte_state_STATIC_LTLIBS@ +MCA_orte_state_STATIC_SUBDIRS = @MCA_orte_state_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORKS = @MCA_oshmem_FRAMEWORKS@ +MCA_oshmem_FRAMEWORKS_SUBDIRS = @MCA_oshmem_FRAMEWORKS_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORK_LIBS = @MCA_oshmem_FRAMEWORK_LIBS@ +MCA_oshmem_atomic_ALL_COMPONENTS = @MCA_oshmem_atomic_ALL_COMPONENTS@ +MCA_oshmem_atomic_ALL_SUBDIRS = @MCA_oshmem_atomic_ALL_SUBDIRS@ +MCA_oshmem_atomic_DSO_COMPONENTS = @MCA_oshmem_atomic_DSO_COMPONENTS@ +MCA_oshmem_atomic_DSO_SUBDIRS = @MCA_oshmem_atomic_DSO_SUBDIRS@ +MCA_oshmem_atomic_STATIC_COMPONENTS = @MCA_oshmem_atomic_STATIC_COMPONENTS@ +MCA_oshmem_atomic_STATIC_LTLIBS = @MCA_oshmem_atomic_STATIC_LTLIBS@ +MCA_oshmem_atomic_STATIC_SUBDIRS = @MCA_oshmem_atomic_STATIC_SUBDIRS@ +MCA_oshmem_memheap_ALL_COMPONENTS = @MCA_oshmem_memheap_ALL_COMPONENTS@ +MCA_oshmem_memheap_ALL_SUBDIRS = @MCA_oshmem_memheap_ALL_SUBDIRS@ +MCA_oshmem_memheap_DIRECT_CALL_HEADER = @MCA_oshmem_memheap_DIRECT_CALL_HEADER@ +MCA_oshmem_memheap_DSO_COMPONENTS = @MCA_oshmem_memheap_DSO_COMPONENTS@ +MCA_oshmem_memheap_DSO_SUBDIRS = @MCA_oshmem_memheap_DSO_SUBDIRS@ +MCA_oshmem_memheap_STATIC_COMPONENTS = @MCA_oshmem_memheap_STATIC_COMPONENTS@ +MCA_oshmem_memheap_STATIC_LTLIBS = @MCA_oshmem_memheap_STATIC_LTLIBS@ +MCA_oshmem_memheap_STATIC_SUBDIRS = @MCA_oshmem_memheap_STATIC_SUBDIRS@ +MCA_oshmem_scoll_ALL_COMPONENTS = @MCA_oshmem_scoll_ALL_COMPONENTS@ +MCA_oshmem_scoll_ALL_SUBDIRS = @MCA_oshmem_scoll_ALL_SUBDIRS@ +MCA_oshmem_scoll_DSO_COMPONENTS = @MCA_oshmem_scoll_DSO_COMPONENTS@ +MCA_oshmem_scoll_DSO_SUBDIRS = @MCA_oshmem_scoll_DSO_SUBDIRS@ +MCA_oshmem_scoll_STATIC_COMPONENTS = @MCA_oshmem_scoll_STATIC_COMPONENTS@ +MCA_oshmem_scoll_STATIC_LTLIBS = @MCA_oshmem_scoll_STATIC_LTLIBS@ +MCA_oshmem_scoll_STATIC_SUBDIRS = @MCA_oshmem_scoll_STATIC_SUBDIRS@ +MCA_oshmem_spml_ALL_COMPONENTS = @MCA_oshmem_spml_ALL_COMPONENTS@ +MCA_oshmem_spml_ALL_SUBDIRS = @MCA_oshmem_spml_ALL_SUBDIRS@ +MCA_oshmem_spml_DIRECT_CALL_HEADER = @MCA_oshmem_spml_DIRECT_CALL_HEADER@ +MCA_oshmem_spml_DSO_COMPONENTS = @MCA_oshmem_spml_DSO_COMPONENTS@ +MCA_oshmem_spml_DSO_SUBDIRS = @MCA_oshmem_spml_DSO_SUBDIRS@ +MCA_oshmem_spml_STATIC_COMPONENTS = @MCA_oshmem_spml_STATIC_COMPONENTS@ +MCA_oshmem_spml_STATIC_LTLIBS = @MCA_oshmem_spml_STATIC_LTLIBS@ +MCA_oshmem_spml_STATIC_SUBDIRS = @MCA_oshmem_spml_STATIC_SUBDIRS@ +MCA_oshmem_sshmem_ALL_COMPONENTS = @MCA_oshmem_sshmem_ALL_COMPONENTS@ +MCA_oshmem_sshmem_ALL_SUBDIRS = @MCA_oshmem_sshmem_ALL_SUBDIRS@ +MCA_oshmem_sshmem_DSO_COMPONENTS = @MCA_oshmem_sshmem_DSO_COMPONENTS@ +MCA_oshmem_sshmem_DSO_SUBDIRS = @MCA_oshmem_sshmem_DSO_SUBDIRS@ +MCA_oshmem_sshmem_STATIC_COMPONENTS = @MCA_oshmem_sshmem_STATIC_COMPONENTS@ +MCA_oshmem_sshmem_STATIC_LTLIBS = @MCA_oshmem_sshmem_STATIC_LTLIBS@ +MCA_oshmem_sshmem_STATIC_SUBDIRS = @MCA_oshmem_sshmem_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +MPIR_UNWIND_CFLAGS = @MPIR_UNWIND_CFLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPI_ALIGNMENT_FORTRAN_CHARACTER = @OMPI_ALIGNMENT_FORTRAN_CHARACTER@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX16 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX16@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX32 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX32@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX4 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX4@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX8 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX8@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION@ +OMPI_ALIGNMENT_FORTRAN_INTEGER = @OMPI_ALIGNMENT_FORTRAN_INTEGER@ +OMPI_ALIGNMENT_FORTRAN_INTEGER1 = @OMPI_ALIGNMENT_FORTRAN_INTEGER1@ +OMPI_ALIGNMENT_FORTRAN_INTEGER16 = @OMPI_ALIGNMENT_FORTRAN_INTEGER16@ +OMPI_ALIGNMENT_FORTRAN_INTEGER2 = @OMPI_ALIGNMENT_FORTRAN_INTEGER2@ +OMPI_ALIGNMENT_FORTRAN_INTEGER4 = @OMPI_ALIGNMENT_FORTRAN_INTEGER4@ +OMPI_ALIGNMENT_FORTRAN_INTEGER8 = @OMPI_ALIGNMENT_FORTRAN_INTEGER8@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL = @OMPI_ALIGNMENT_FORTRAN_LOGICAL@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL1 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL1@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL2 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL2@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL4 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL4@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL8 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL8@ +OMPI_ALIGNMENT_FORTRAN_REAL = @OMPI_ALIGNMENT_FORTRAN_REAL@ +OMPI_ALIGNMENT_FORTRAN_REAL16 = @OMPI_ALIGNMENT_FORTRAN_REAL16@ +OMPI_ALIGNMENT_FORTRAN_REAL2 = @OMPI_ALIGNMENT_FORTRAN_REAL2@ +OMPI_ALIGNMENT_FORTRAN_REAL4 = @OMPI_ALIGNMENT_FORTRAN_REAL4@ +OMPI_ALIGNMENT_FORTRAN_REAL8 = @OMPI_ALIGNMENT_FORTRAN_REAL8@ +OMPI_CONTRIB_DIST_SUBDIRS = @OMPI_CONTRIB_DIST_SUBDIRS@ +OMPI_CONTRIB_SUBDIRS = @OMPI_CONTRIB_SUBDIRS@ +OMPI_CXX_ABSOLUTE = @OMPI_CXX_ABSOLUTE@ +OMPI_ENABLE_GREQUEST_EXTENSIONS = @OMPI_ENABLE_GREQUEST_EXTENSIONS@ +OMPI_ENABLE_MPI1_COMPAT = @OMPI_ENABLE_MPI1_COMPAT@ +OMPI_F08_SUFFIX = @OMPI_F08_SUFFIX@ +OMPI_FC = @OMPI_FC@ +OMPI_FC_ABSOLUTE = @OMPI_FC_ABSOLUTE@ +OMPI_FC_MODULE_FLAG = @OMPI_FC_MODULE_FLAG@ +OMPI_FORTRAN_BUILD_SIZEOF = @OMPI_FORTRAN_BUILD_SIZEOF@ +OMPI_FORTRAN_CAPS = @OMPI_FORTRAN_CAPS@ +OMPI_FORTRAN_CKINDS = @OMPI_FORTRAN_CKINDS@ +OMPI_FORTRAN_DOUBLE_UNDERSCORE = @OMPI_FORTRAN_DOUBLE_UNDERSCORE@ +OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS = @OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS@ +OMPI_FORTRAN_F08_PREDECL = @OMPI_FORTRAN_F08_PREDECL@ +OMPI_FORTRAN_F08_TYPE = @OMPI_FORTRAN_F08_TYPE@ +OMPI_FORTRAN_HAVE_ABSTRACT = @OMPI_FORTRAN_HAVE_ABSTRACT@ +OMPI_FORTRAN_HAVE_ASYNCHRONOUS = @OMPI_FORTRAN_HAVE_ASYNCHRONOUS@ +OMPI_FORTRAN_HAVE_BIND_C = @OMPI_FORTRAN_HAVE_BIND_C@ +OMPI_FORTRAN_HAVE_C_FUNLOC = @OMPI_FORTRAN_HAVE_C_FUNLOC@ +OMPI_FORTRAN_HAVE_INTERFACE = @OMPI_FORTRAN_HAVE_INTERFACE@ +OMPI_FORTRAN_HAVE_ISO_C_BINDING = @OMPI_FORTRAN_HAVE_ISO_C_BINDING@ +OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV = @OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV@ +OMPI_FORTRAN_HAVE_PRIVATE = @OMPI_FORTRAN_HAVE_PRIVATE@ +OMPI_FORTRAN_HAVE_PROCEDURE = @OMPI_FORTRAN_HAVE_PROCEDURE@ +OMPI_FORTRAN_HAVE_STORAGE_SIZE = @OMPI_FORTRAN_HAVE_STORAGE_SIZE@ +OMPI_FORTRAN_HAVE_USE_ONLY = @OMPI_FORTRAN_HAVE_USE_ONLY@ +OMPI_FORTRAN_IGNORE_TKR_PREDECL = @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ +OMPI_FORTRAN_IGNORE_TKR_TYPE = @OMPI_FORTRAN_IGNORE_TKR_TYPE@ +OMPI_FORTRAN_IKINDS = @OMPI_FORTRAN_IKINDS@ +OMPI_FORTRAN_MAX_ARRAY_RANK = @OMPI_FORTRAN_MAX_ARRAY_RANK@ +OMPI_FORTRAN_NEED_WRAPPER_ROUTINES = @OMPI_FORTRAN_NEED_WRAPPER_ROUTINES@ +OMPI_FORTRAN_PLAIN = @OMPI_FORTRAN_PLAIN@ +OMPI_FORTRAN_RKINDS = @OMPI_FORTRAN_RKINDS@ +OMPI_FORTRAN_SINGLE_UNDERSCORE = @OMPI_FORTRAN_SINGLE_UNDERSCORE@ +OMPI_FORTRAN_STATUS_SIZE = @OMPI_FORTRAN_STATUS_SIZE@ +OMPI_FORTRAN_USEMPIF08_LIB = @OMPI_FORTRAN_USEMPIF08_LIB@ +OMPI_FORTRAN_USEMPI_DIR = @OMPI_FORTRAN_USEMPI_DIR@ +OMPI_FORTRAN_USEMPI_LIB = @OMPI_FORTRAN_USEMPI_LIB@ +OMPI_F_SUFFIX = @OMPI_F_SUFFIX@ +OMPI_GREEK_VERSION = @OMPI_GREEK_VERSION@ +OMPI_HAVE_FORTRAN_CHARACTER = @OMPI_HAVE_FORTRAN_CHARACTER@ +OMPI_HAVE_FORTRAN_COMPLEX = @OMPI_HAVE_FORTRAN_COMPLEX@ +OMPI_HAVE_FORTRAN_COMPLEX16 = @OMPI_HAVE_FORTRAN_COMPLEX16@ +OMPI_HAVE_FORTRAN_COMPLEX32 = @OMPI_HAVE_FORTRAN_COMPLEX32@ +OMPI_HAVE_FORTRAN_COMPLEX4 = @OMPI_HAVE_FORTRAN_COMPLEX4@ +OMPI_HAVE_FORTRAN_COMPLEX8 = @OMPI_HAVE_FORTRAN_COMPLEX8@ +OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX = @OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX@ +OMPI_HAVE_FORTRAN_DOUBLE_PRECISION = @OMPI_HAVE_FORTRAN_DOUBLE_PRECISION@ +OMPI_HAVE_FORTRAN_INTEGER = @OMPI_HAVE_FORTRAN_INTEGER@ +OMPI_HAVE_FORTRAN_INTEGER1 = @OMPI_HAVE_FORTRAN_INTEGER1@ +OMPI_HAVE_FORTRAN_INTEGER16 = @OMPI_HAVE_FORTRAN_INTEGER16@ +OMPI_HAVE_FORTRAN_INTEGER2 = @OMPI_HAVE_FORTRAN_INTEGER2@ +OMPI_HAVE_FORTRAN_INTEGER4 = @OMPI_HAVE_FORTRAN_INTEGER4@ +OMPI_HAVE_FORTRAN_INTEGER8 = @OMPI_HAVE_FORTRAN_INTEGER8@ +OMPI_HAVE_FORTRAN_LOGICAL = @OMPI_HAVE_FORTRAN_LOGICAL@ +OMPI_HAVE_FORTRAN_LOGICAL1 = @OMPI_HAVE_FORTRAN_LOGICAL1@ +OMPI_HAVE_FORTRAN_LOGICAL2 = @OMPI_HAVE_FORTRAN_LOGICAL2@ +OMPI_HAVE_FORTRAN_LOGICAL4 = @OMPI_HAVE_FORTRAN_LOGICAL4@ +OMPI_HAVE_FORTRAN_LOGICAL8 = @OMPI_HAVE_FORTRAN_LOGICAL8@ +OMPI_HAVE_FORTRAN_REAL = @OMPI_HAVE_FORTRAN_REAL@ +OMPI_HAVE_FORTRAN_REAL16 = @OMPI_HAVE_FORTRAN_REAL16@ +OMPI_HAVE_FORTRAN_REAL2 = @OMPI_HAVE_FORTRAN_REAL2@ +OMPI_HAVE_FORTRAN_REAL4 = @OMPI_HAVE_FORTRAN_REAL4@ +OMPI_HAVE_FORTRAN_REAL8 = @OMPI_HAVE_FORTRAN_REAL8@ +OMPI_JDK_CPPFLAGS = @OMPI_JDK_CPPFLAGS@ +OMPI_KIND_FORTRAN_CHARACTER = @OMPI_KIND_FORTRAN_CHARACTER@ +OMPI_KIND_FORTRAN_COMPLEX = @OMPI_KIND_FORTRAN_COMPLEX@ +OMPI_KIND_FORTRAN_COMPLEX16 = @OMPI_KIND_FORTRAN_COMPLEX16@ +OMPI_KIND_FORTRAN_COMPLEX32 = @OMPI_KIND_FORTRAN_COMPLEX32@ +OMPI_KIND_FORTRAN_COMPLEX4 = @OMPI_KIND_FORTRAN_COMPLEX4@ +OMPI_KIND_FORTRAN_COMPLEX8 = @OMPI_KIND_FORTRAN_COMPLEX8@ +OMPI_KIND_FORTRAN_DOUBLE_COMPLEX = @OMPI_KIND_FORTRAN_DOUBLE_COMPLEX@ +OMPI_KIND_FORTRAN_DOUBLE_PRECISION = @OMPI_KIND_FORTRAN_DOUBLE_PRECISION@ +OMPI_KIND_FORTRAN_INTEGER = @OMPI_KIND_FORTRAN_INTEGER@ +OMPI_KIND_FORTRAN_INTEGER1 = @OMPI_KIND_FORTRAN_INTEGER1@ +OMPI_KIND_FORTRAN_INTEGER16 = @OMPI_KIND_FORTRAN_INTEGER16@ +OMPI_KIND_FORTRAN_INTEGER2 = @OMPI_KIND_FORTRAN_INTEGER2@ +OMPI_KIND_FORTRAN_INTEGER4 = @OMPI_KIND_FORTRAN_INTEGER4@ +OMPI_KIND_FORTRAN_INTEGER8 = @OMPI_KIND_FORTRAN_INTEGER8@ +OMPI_KIND_FORTRAN_LOGICAL = @OMPI_KIND_FORTRAN_LOGICAL@ +OMPI_KIND_FORTRAN_LOGICAL1 = @OMPI_KIND_FORTRAN_LOGICAL1@ +OMPI_KIND_FORTRAN_LOGICAL2 = @OMPI_KIND_FORTRAN_LOGICAL2@ +OMPI_KIND_FORTRAN_LOGICAL4 = @OMPI_KIND_FORTRAN_LOGICAL4@ +OMPI_KIND_FORTRAN_LOGICAL8 = @OMPI_KIND_FORTRAN_LOGICAL8@ +OMPI_KIND_FORTRAN_REAL = @OMPI_KIND_FORTRAN_REAL@ +OMPI_KIND_FORTRAN_REAL16 = @OMPI_KIND_FORTRAN_REAL16@ +OMPI_KIND_FORTRAN_REAL2 = @OMPI_KIND_FORTRAN_REAL2@ +OMPI_KIND_FORTRAN_REAL4 = @OMPI_KIND_FORTRAN_REAL4@ +OMPI_KIND_FORTRAN_REAL8 = @OMPI_KIND_FORTRAN_REAL8@ +OMPI_LIBMPI_EXTRA_LDFLAGS = @OMPI_LIBMPI_EXTRA_LDFLAGS@ +OMPI_LIBMPI_EXTRA_LIBS = @OMPI_LIBMPI_EXTRA_LIBS@ +OMPI_LIBMPI_NAME = @OMPI_LIBMPI_NAME@ +OMPI_MAJOR_VERSION = @OMPI_MAJOR_VERSION@ +OMPI_MINOR_VERSION = @OMPI_MINOR_VERSION@ +OMPI_MPIEXT_ALL_SUBDIRS = @OMPI_MPIEXT_ALL_SUBDIRS@ +OMPI_MPIEXT_C_DIRS = @OMPI_MPIEXT_C_DIRS@ +OMPI_MPIEXT_C_LIBS = @OMPI_MPIEXT_C_LIBS@ +OMPI_MPIEXT_MPIFH_DIRS = @OMPI_MPIEXT_MPIFH_DIRS@ +OMPI_MPIEXT_MPIFH_LIBS = @OMPI_MPIEXT_MPIFH_LIBS@ +OMPI_MPIEXT_USEMPIF08_DIRS = @OMPI_MPIEXT_USEMPIF08_DIRS@ +OMPI_MPIEXT_USEMPIF08_LIBS = @OMPI_MPIEXT_USEMPIF08_LIBS@ +OMPI_MPIEXT_USEMPI_DIRS = @OMPI_MPIEXT_USEMPI_DIRS@ +OMPI_MPIEXT_USEMPI_LIBS = @OMPI_MPIEXT_USEMPI_LIBS@ +OMPI_MPI_ADDRESS_KIND = @OMPI_MPI_ADDRESS_KIND@ +OMPI_MPI_BIND_PREFIX = @OMPI_MPI_BIND_PREFIX@ +OMPI_MPI_COUNT_KIND = @OMPI_MPI_COUNT_KIND@ +OMPI_MPI_INTEGER_KIND = @OMPI_MPI_INTEGER_KIND@ +OMPI_MPI_OFFSET_KIND = @OMPI_MPI_OFFSET_KIND@ +OMPI_MPI_PREFIX = @OMPI_MPI_PREFIX@ +OMPI_PKG_CONFIG_LDFLAGS = @OMPI_PKG_CONFIG_LDFLAGS@ +OMPI_RELEASE_DATE = @OMPI_RELEASE_DATE@ +OMPI_RELEASE_VERSION = @OMPI_RELEASE_VERSION@ +OMPI_REPO_REV = @OMPI_REPO_REV@ +OMPI_SIZEOF_FORTRAN_CHARACTER = @OMPI_SIZEOF_FORTRAN_CHARACTER@ +OMPI_SIZEOF_FORTRAN_COMPLEX = @OMPI_SIZEOF_FORTRAN_COMPLEX@ +OMPI_SIZEOF_FORTRAN_COMPLEX16 = @OMPI_SIZEOF_FORTRAN_COMPLEX16@ +OMPI_SIZEOF_FORTRAN_COMPLEX32 = @OMPI_SIZEOF_FORTRAN_COMPLEX32@ +OMPI_SIZEOF_FORTRAN_COMPLEX4 = @OMPI_SIZEOF_FORTRAN_COMPLEX4@ +OMPI_SIZEOF_FORTRAN_COMPLEX8 = @OMPI_SIZEOF_FORTRAN_COMPLEX8@ +OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX = @OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX@ +OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION = @OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION@ +OMPI_SIZEOF_FORTRAN_INTEGER = @OMPI_SIZEOF_FORTRAN_INTEGER@ +OMPI_SIZEOF_FORTRAN_INTEGER1 = @OMPI_SIZEOF_FORTRAN_INTEGER1@ +OMPI_SIZEOF_FORTRAN_INTEGER16 = @OMPI_SIZEOF_FORTRAN_INTEGER16@ +OMPI_SIZEOF_FORTRAN_INTEGER2 = @OMPI_SIZEOF_FORTRAN_INTEGER2@ +OMPI_SIZEOF_FORTRAN_INTEGER4 = @OMPI_SIZEOF_FORTRAN_INTEGER4@ +OMPI_SIZEOF_FORTRAN_INTEGER8 = @OMPI_SIZEOF_FORTRAN_INTEGER8@ +OMPI_SIZEOF_FORTRAN_LOGICAL = @OMPI_SIZEOF_FORTRAN_LOGICAL@ +OMPI_SIZEOF_FORTRAN_LOGICAL1 = @OMPI_SIZEOF_FORTRAN_LOGICAL1@ +OMPI_SIZEOF_FORTRAN_LOGICAL2 = @OMPI_SIZEOF_FORTRAN_LOGICAL2@ +OMPI_SIZEOF_FORTRAN_LOGICAL4 = @OMPI_SIZEOF_FORTRAN_LOGICAL4@ +OMPI_SIZEOF_FORTRAN_LOGICAL8 = @OMPI_SIZEOF_FORTRAN_LOGICAL8@ +OMPI_SIZEOF_FORTRAN_REAL = @OMPI_SIZEOF_FORTRAN_REAL@ +OMPI_SIZEOF_FORTRAN_REAL16 = @OMPI_SIZEOF_FORTRAN_REAL16@ +OMPI_SIZEOF_FORTRAN_REAL2 = @OMPI_SIZEOF_FORTRAN_REAL2@ +OMPI_SIZEOF_FORTRAN_REAL4 = @OMPI_SIZEOF_FORTRAN_REAL4@ +OMPI_SIZEOF_FORTRAN_REAL8 = @OMPI_SIZEOF_FORTRAN_REAL8@ +OMPI_TARBALL_VERSION = @OMPI_TARBALL_VERSION@ +OMPI_TOP_BUILDDIR = @OMPI_TOP_BUILDDIR@ +OMPI_TOP_SRCDIR = @OMPI_TOP_SRCDIR@ +OMPI_VERSION = @OMPI_VERSION@ +OMPI_WRAPPER_CXX_LIB = @OMPI_WRAPPER_CXX_LIB@ +OMPI_WRAPPER_CXX_REQUIRED_FILE = @OMPI_WRAPPER_CXX_REQUIRED_FILE@ +OMPI_WRAPPER_EXTRA_CFLAGS = @OMPI_WRAPPER_EXTRA_CFLAGS@ +OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_CPPFLAGS = @OMPI_WRAPPER_EXTRA_CPPFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS = @OMPI_WRAPPER_EXTRA_CXXFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FCFLAGS = @OMPI_WRAPPER_EXTRA_FCFLAGS@ +OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FC_LDFLAGS = @OMPI_WRAPPER_EXTRA_FC_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LDFLAGS = @OMPI_WRAPPER_EXTRA_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LIBS = @OMPI_WRAPPER_EXTRA_LIBS@ +OMPI_WRAPPER_FORTRAN_REQUIRED_FILE = @OMPI_WRAPPER_FORTRAN_REQUIRED_FILE@ +OMPI_WRAPPER_INCLUDEDIR = @OMPI_WRAPPER_INCLUDEDIR@ +OMPI_WRAPPER_LIBDIR = @OMPI_WRAPPER_LIBDIR@ +OPAL_ASM_GSYM = @OPAL_ASM_GSYM@ +OPAL_ASM_LSYM = @OPAL_ASM_LSYM@ +OPAL_ASM_SUPPORT_64BIT = @OPAL_ASM_SUPPORT_64BIT@ +OPAL_ASM_TEXT = @OPAL_ASM_TEXT@ +OPAL_ASM_TYPE = @OPAL_ASM_TYPE@ +OPAL_ASSEMBLY_ARCH = @OPAL_ASSEMBLY_ARCH@ +OPAL_ASSEMBLY_BUILTIN = @OPAL_ASSEMBLY_BUILTIN@ +OPAL_ASSEMBLY_FORMAT = @OPAL_ASSEMBLY_FORMAT@ +OPAL_AS_GLOBAL = @OPAL_AS_GLOBAL@ +OPAL_AS_LABEL_SUFFIX = @OPAL_AS_LABEL_SUFFIX@ +OPAL_CC_ABSOLUTE = @OPAL_CC_ABSOLUTE@ +OPAL_CONFIGURE_CLI = @OPAL_CONFIGURE_CLI@ +OPAL_CONFIGURE_DATE = @OPAL_CONFIGURE_DATE@ +OPAL_CONFIGURE_HOST = @OPAL_CONFIGURE_HOST@ +OPAL_CONFIGURE_USER = @OPAL_CONFIGURE_USER@ +OPAL_CXX_ABSOLUTE = @OPAL_CXX_ABSOLUTE@ +OPAL_DEFAULT_MCA_PARAM_CONF = @OPAL_DEFAULT_MCA_PARAM_CONF@ +OPAL_DYN_LIB_PREFIX = @OPAL_DYN_LIB_PREFIX@ +OPAL_DYN_LIB_SUFFIX = @OPAL_DYN_LIB_SUFFIX@ +OPAL_GREEK_VERSION = @OPAL_GREEK_VERSION@ +OPAL_LIB_PREFIX = @OPAL_LIB_PREFIX@ +OPAL_MAJOR_VERSION = @OPAL_MAJOR_VERSION@ +OPAL_MAX_DATAREP_STRING = @OPAL_MAX_DATAREP_STRING@ +OPAL_MAX_ERROR_STRING = @OPAL_MAX_ERROR_STRING@ +OPAL_MAX_INFO_KEY = @OPAL_MAX_INFO_KEY@ +OPAL_MAX_INFO_VAL = @OPAL_MAX_INFO_VAL@ +OPAL_MAX_OBJECT_NAME = @OPAL_MAX_OBJECT_NAME@ +OPAL_MAX_PORT_NAME = @OPAL_MAX_PORT_NAME@ +OPAL_MAX_PROCESSOR_NAME = @OPAL_MAX_PROCESSOR_NAME@ +OPAL_MINOR_VERSION = @OPAL_MINOR_VERSION@ +OPAL_PARAM_FROM_PLATFORM = @OPAL_PARAM_FROM_PLATFORM@ +OPAL_PKG_CONFIG_LDFLAGS = @OPAL_PKG_CONFIG_LDFLAGS@ +OPAL_RELEASE_DATE = @OPAL_RELEASE_DATE@ +OPAL_RELEASE_VERSION = @OPAL_RELEASE_VERSION@ +OPAL_REPO_REV = @OPAL_REPO_REV@ +OPAL_TARBALL_VERSION = @OPAL_TARBALL_VERSION@ +OPAL_TOP_BUILDDIR = @OPAL_TOP_BUILDDIR@ +OPAL_TOP_SRCDIR = @OPAL_TOP_SRCDIR@ +OPAL_VERSION = @OPAL_VERSION@ +OPAL_WRAPPER_EXTRA_CFLAGS = @OPAL_WRAPPER_EXTRA_CFLAGS@ +OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_CPPFLAGS = @OPAL_WRAPPER_EXTRA_CPPFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS = @OPAL_WRAPPER_EXTRA_CXXFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_LDFLAGS = @OPAL_WRAPPER_EXTRA_LDFLAGS@ +OPAL_WRAPPER_EXTRA_LIBS = @OPAL_WRAPPER_EXTRA_LIBS@ +ORTE_GREEK_VERSION = @ORTE_GREEK_VERSION@ +ORTE_LIB_PREFIX = @ORTE_LIB_PREFIX@ +ORTE_MAJOR_VERSION = @ORTE_MAJOR_VERSION@ +ORTE_MINOR_VERSION = @ORTE_MINOR_VERSION@ +ORTE_PKG_CONFIG_LDFLAGS = @ORTE_PKG_CONFIG_LDFLAGS@ +ORTE_RELEASE_DATE = @ORTE_RELEASE_DATE@ +ORTE_RELEASE_VERSION = @ORTE_RELEASE_VERSION@ +ORTE_REPO_REV = @ORTE_REPO_REV@ +ORTE_TARBALL_VERSION = @ORTE_TARBALL_VERSION@ +ORTE_TOP_BUILDDIR = @ORTE_TOP_BUILDDIR@ +ORTE_TOP_SRCDIR = @ORTE_TOP_SRCDIR@ +ORTE_VERSION = @ORTE_VERSION@ +ORTE_WRAPPER_EXTRA_CFLAGS = @ORTE_WRAPPER_EXTRA_CFLAGS@ +ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX = @ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX@ +ORTE_WRAPPER_EXTRA_CPPFLAGS = @ORTE_WRAPPER_EXTRA_CPPFLAGS@ +ORTE_WRAPPER_EXTRA_LDFLAGS = @ORTE_WRAPPER_EXTRA_LDFLAGS@ +ORTE_WRAPPER_EXTRA_LIBS = @ORTE_WRAPPER_EXTRA_LIBS@ +OSHMEM_GREEK_VERSION = @OSHMEM_GREEK_VERSION@ +OSHMEM_LIBSHMEM_EXTRA_LDFLAGS = @OSHMEM_LIBSHMEM_EXTRA_LDFLAGS@ +OSHMEM_LIBSHMEM_EXTRA_LIBS = @OSHMEM_LIBSHMEM_EXTRA_LIBS@ +OSHMEM_MAJOR_VERSION = @OSHMEM_MAJOR_VERSION@ +OSHMEM_MINOR_VERSION = @OSHMEM_MINOR_VERSION@ +OSHMEM_RELEASE_DATE = @OSHMEM_RELEASE_DATE@ +OSHMEM_RELEASE_VERSION = @OSHMEM_RELEASE_VERSION@ +OSHMEM_REPO_REV = @OSHMEM_REPO_REV@ +OSHMEM_TARBALL_VERSION = @OSHMEM_TARBALL_VERSION@ +OSHMEM_TOP_BUILDDIR = @OSHMEM_TOP_BUILDDIR@ +OSHMEM_TOP_SRCDIR = @OSHMEM_TOP_SRCDIR@ +OSHMEM_VERSION = @OSHMEM_VERSION@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +QRSH = @QRSH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SINGULARITY = @SINGULARITY@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_FC = @ac_ct_FC@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +atomic_mxm_CFLAGS = @atomic_mxm_CFLAGS@ +atomic_mxm_CPPFLAGS = @atomic_mxm_CPPFLAGS@ +atomic_mxm_LDFLAGS = @atomic_mxm_LDFLAGS@ +atomic_mxm_LIBS = @atomic_mxm_LIBS@ +atomic_ucx_CFLAGS = @atomic_ucx_CFLAGS@ +atomic_ucx_CPPFLAGS = @atomic_ucx_CPPFLAGS@ +atomic_ucx_LDFLAGS = @atomic_ucx_LDFLAGS@ +atomic_ucx_LIBS = @atomic_ucx_LIBS@ +bindir = @bindir@ +btl_openib_CFLAGS = @btl_openib_CFLAGS@ +btl_openib_CPPFLAGS = @btl_openib_CPPFLAGS@ +btl_openib_LDFLAGS = @btl_openib_LDFLAGS@ +btl_openib_LIBS = @btl_openib_LIBS@ +btl_portals4_CPPFLAGS = @btl_portals4_CPPFLAGS@ +btl_portals4_LDFLAGS = @btl_portals4_LDFLAGS@ +btl_portals4_LIBS = @btl_portals4_LIBS@ +btl_uct_CPPFLAGS = @btl_uct_CPPFLAGS@ +btl_uct_LDFLAGS = @btl_uct_LDFLAGS@ +btl_uct_LIBS = @btl_uct_LIBS@ +btl_ugni_CPPFLAGS = @btl_ugni_CPPFLAGS@ +btl_ugni_LDFLAGS = @btl_ugni_LDFLAGS@ +btl_ugni_LIBS = @btl_ugni_LIBS@ +btl_vader_CFLAGS = @btl_vader_CFLAGS@ +btl_vader_CPPFLAGS = @btl_vader_CPPFLAGS@ +btl_vader_LDFLAGS = @btl_vader_LDFLAGS@ +btl_vader_LIBS = @btl_vader_LIBS@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +coll_fca_CFLAGS = @coll_fca_CFLAGS@ +coll_fca_CPPFLAGS = @coll_fca_CPPFLAGS@ +coll_fca_HOME = @coll_fca_HOME@ +coll_fca_LDFLAGS = @coll_fca_LDFLAGS@ +coll_fca_LIBS = @coll_fca_LIBS@ +coll_hcoll_CFLAGS = @coll_hcoll_CFLAGS@ +coll_hcoll_CPPFLAGS = @coll_hcoll_CPPFLAGS@ +coll_hcoll_LDFLAGS = @coll_hcoll_LDFLAGS@ +coll_hcoll_LIBS = @coll_hcoll_LIBS@ +coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ +coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ +coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ +common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ +common_alps_LDFLAGS = @common_alps_LDFLAGS@ +common_alps_LIBS = @common_alps_LIBS@ +common_cuda_CPPFLAGS = @common_cuda_CPPFLAGS@ +common_ucx_CFLAGS = @common_ucx_CFLAGS@ +common_ucx_CPPFLAGS = @common_ucx_CPPFLAGS@ +common_ucx_LDFLAGS = @common_ucx_LDFLAGS@ +common_ucx_LIBS = @common_ucx_LIBS@ +common_verbs_CFLAGS = @common_verbs_CFLAGS@ +common_verbs_CPPFLAGS = @common_verbs_CPPFLAGS@ +common_verbs_LDFLAGS = @common_verbs_LDFLAGS@ +common_verbs_LIBS = @common_verbs_LIBS@ +common_verbs_usnic_CPPFLAGS = @common_verbs_usnic_CPPFLAGS@ +common_verbs_usnic_LDFLAGS = @common_verbs_usnic_LDFLAGS@ +common_verbs_usnic_LIBS = @common_verbs_usnic_LIBS@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +ess_alps_CPPFLAGS = @ess_alps_CPPFLAGS@ +ess_alps_LDFLAGS = @ess_alps_LDFLAGS@ +ess_alps_LIBS = @ess_alps_LIBS@ +ess_lsf_CPPFLAGS = @ess_lsf_CPPFLAGS@ +ess_lsf_LDFLAGS = @ess_lsf_LDFLAGS@ +ess_lsf_LIBS = @ess_lsf_LIBS@ +ess_slurm_CPPFLAGS = @ess_slurm_CPPFLAGS@ +ess_slurm_LDFLAGS = @ess_slurm_LDFLAGS@ +ess_slurm_LIBS = @ess_slurm_LIBS@ +ess_tm_CPPFLAGS = @ess_tm_CPPFLAGS@ +ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ +ess_tm_LIBS = @ess_tm_LIBS@ +exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ +fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ +fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ +fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ +fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ +fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ +fs_lustre_LIBS = @fs_lustre_LIBS@ +fs_pvfs2_CPPFLAGS = @fs_pvfs2_CPPFLAGS@ +fs_pvfs2_LDFLAGS = @fs_pvfs2_LDFLAGS@ +fs_pvfs2_LIBS = @fs_pvfs2_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ +libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ +libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ +libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ +libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ +libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ +libmca_opal_common_verbs_so_version = @libmca_opal_common_verbs_so_version@ +libmca_orte_common_alps_so_version = @libmca_orte_common_alps_so_version@ +libmpi_cxx_so_version = @libmpi_cxx_so_version@ +libmpi_java_so_version = @libmpi_java_so_version@ +libmpi_mpifh_so_version = @libmpi_mpifh_so_version@ +libmpi_so_version = @libmpi_so_version@ +libmpi_usempi_ignore_tkr_so_version = @libmpi_usempi_ignore_tkr_so_version@ +libmpi_usempi_tkr_so_version = @libmpi_usempi_tkr_so_version@ +libmpi_usempif08_so_version = @libmpi_usempif08_so_version@ +libompitrace_so_version = @libompitrace_so_version@ +libopen_pal_so_version = @libopen_pal_so_version@ +libopen_rte_so_version = @libopen_rte_so_version@ +liboshmem_so_version = @liboshmem_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +memory_malloc_solaris_LIBS = @memory_malloc_solaris_LIBS@ +mkdir_p = @mkdir_p@ +mpool_memkind_CPPFLAGS = @mpool_memkind_CPPFLAGS@ +mpool_memkind_LDFLAGS = @mpool_memkind_LDFLAGS@ +mpool_memkind_LIBS = @mpool_memkind_LIBS@ +mtl_portals4_CPPFLAGS = @mtl_portals4_CPPFLAGS@ +mtl_portals4_LDFLAGS = @mtl_portals4_LDFLAGS@ +mtl_portals4_LIBS = @mtl_portals4_LIBS@ +mtl_psm2_CFLAGS = @mtl_psm2_CFLAGS@ +mtl_psm2_CPPFLAGS = @mtl_psm2_CPPFLAGS@ +mtl_psm2_LDFLAGS = @mtl_psm2_LDFLAGS@ +mtl_psm2_LIBS = @mtl_psm2_LIBS@ +mtl_psm_CFLAGS = @mtl_psm_CFLAGS@ +mtl_psm_CPPFLAGS = @mtl_psm_CPPFLAGS@ +mtl_psm_LDFLAGS = @mtl_psm_LDFLAGS@ +mtl_psm_LIBS = @mtl_psm_LIBS@ +odls_alps_CPPFLAGS = @odls_alps_CPPFLAGS@ +odls_alps_LDFLAGS = @odls_alps_LDFLAGS@ +odls_alps_LIBS = @odls_alps_LIBS@ +oldincludedir = @oldincludedir@ +ompidatadir = @ompidatadir@ +ompiincludedir = @ompiincludedir@ +ompilibdir = @ompilibdir@ +oob_alps_CPPFLAGS = @oob_alps_CPPFLAGS@ +oob_alps_LDFLAGS = @oob_alps_LDFLAGS@ +oob_alps_LIBS = @oob_alps_LIBS@ +opal_datatype_cuda_CPPFLAGS = @opal_datatype_cuda_CPPFLAGS@ +opal_dl_dlopen_LIBS = @opal_dl_dlopen_LIBS@ +opal_dl_libltdl_CPPFLAGS = @opal_dl_libltdl_CPPFLAGS@ +opal_dl_libltdl_LDFLAGS = @opal_dl_libltdl_LDFLAGS@ +opal_dl_libltdl_LIBS = @opal_dl_libltdl_LIBS@ +opal_event_external_CPPFLAGS = @opal_event_external_CPPFLAGS@ +opal_event_external_LDFLAGS = @opal_event_external_LDFLAGS@ +opal_event_external_LIBS = @opal_event_external_LIBS@ +opal_hwloc_external_LDFLAGS = @opal_hwloc_external_LDFLAGS@ +opal_hwloc_external_LIBS = @opal_hwloc_external_LIBS@ +opal_hwloc_hwloc201_CFLAGS = @opal_hwloc_hwloc201_CFLAGS@ +opal_hwloc_hwloc201_CPPFLAGS = @opal_hwloc_hwloc201_CPPFLAGS@ +opal_hwloc_hwloc201_LDFLAGS = @opal_hwloc_hwloc201_LDFLAGS@ +opal_hwloc_hwloc201_LIBS = @opal_hwloc_hwloc201_LIBS@ +opal_memchecker_valgrind_CPPFLAGS = @opal_memchecker_valgrind_CPPFLAGS@ +opal_ofi_CPPFLAGS = @opal_ofi_CPPFLAGS@ +opal_ofi_LDFLAGS = @opal_ofi_LDFLAGS@ +opal_ofi_LIBS = @opal_ofi_LIBS@ +opal_pmi1_CPPFLAGS = @opal_pmi1_CPPFLAGS@ +opal_pmi1_LDFLAGS = @opal_pmi1_LDFLAGS@ +opal_pmi1_LIBS = @opal_pmi1_LIBS@ +opal_pmi1_rpath = @opal_pmi1_rpath@ +opal_pmi2_CPPFLAGS = @opal_pmi2_CPPFLAGS@ +opal_pmi2_LDFLAGS = @opal_pmi2_LDFLAGS@ +opal_pmi2_LIBS = @opal_pmi2_LIBS@ +opal_pmi2_rpath = @opal_pmi2_rpath@ +opal_pmix_ext1x_CPPFLAGS = @opal_pmix_ext1x_CPPFLAGS@ +opal_pmix_ext1x_LDFLAGS = @opal_pmix_ext1x_LDFLAGS@ +opal_pmix_ext1x_LIBS = @opal_pmix_ext1x_LIBS@ +opal_pmix_ext2x_CPPFLAGS = @opal_pmix_ext2x_CPPFLAGS@ +opal_pmix_ext2x_LDFLAGS = @opal_pmix_ext2x_LDFLAGS@ +opal_pmix_ext2x_LIBS = @opal_pmix_ext2x_LIBS@ +opal_pmix_ext3x_CPPFLAGS = @opal_pmix_ext3x_CPPFLAGS@ +opal_pmix_ext3x_LDFLAGS = @opal_pmix_ext3x_LDFLAGS@ +opal_pmix_ext3x_LIBS = @opal_pmix_ext3x_LIBS@ +opal_pmix_pmix3x_CPPFLAGS = @opal_pmix_pmix3x_CPPFLAGS@ +opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ +opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ +opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ +opaldatadir = @opaldatadir@ +opalincludedir = @opalincludedir@ +opallibdir = @opallibdir@ +ortedatadir = @ortedatadir@ +orteincludedir = @orteincludedir@ +ortelibdir = @ortelibdir@ +osc_portals4_CPPFLAGS = @osc_portals4_CPPFLAGS@ +osc_portals4_LDFLAGS = @osc_portals4_LDFLAGS@ +osc_portals4_LIBS = @osc_portals4_LIBS@ +osc_ucx_CPPFLAGS = @osc_ucx_CPPFLAGS@ +osc_ucx_LDFLAGS = @osc_ucx_LDFLAGS@ +osc_ucx_LIBS = @osc_ucx_LIBS@ +oshmem_verbs_CFLAGS = @oshmem_verbs_CFLAGS@ +oshmem_verbs_CPPFLAGS = @oshmem_verbs_CPPFLAGS@ +oshmem_verbs_LDFLAGS = @oshmem_verbs_LDFLAGS@ +oshmem_verbs_LIBS = @oshmem_verbs_LIBS@ +oshmemdatadir = @oshmemdatadir@ +oshmemincludedir = @oshmemincludedir@ +oshmemlibdir = @oshmemlibdir@ +pdfdir = @pdfdir@ +plm_alps_CPPFLAGS = @plm_alps_CPPFLAGS@ +plm_alps_LDFLAGS = @plm_alps_LDFLAGS@ +plm_alps_LIBS = @plm_alps_LIBS@ +plm_lsf_CPPFLAGS = @plm_lsf_CPPFLAGS@ +plm_lsf_LDFLAGS = @plm_lsf_LDFLAGS@ +plm_lsf_LIBS = @plm_lsf_LIBS@ +plm_slurm_CPPFLAGS = @plm_slurm_CPPFLAGS@ +plm_slurm_LDFLAGS = @plm_slurm_LDFLAGS@ +plm_slurm_LIBS = @plm_slurm_LIBS@ +plm_tm_CPPFLAGS = @plm_tm_CPPFLAGS@ +plm_tm_LDFLAGS = @plm_tm_LDFLAGS@ +plm_tm_LIBS = @plm_tm_LIBS@ +pmix_alps_CPPFLAGS = @pmix_alps_CPPFLAGS@ +pmix_alps_LDFLAGS = @pmix_alps_LDFLAGS@ +pmix_alps_LIBS = @pmix_alps_LIBS@ +pmix_cray_CPPFLAGS = @pmix_cray_CPPFLAGS@ +pmix_cray_LDFLAGS = @pmix_cray_LDFLAGS@ +pmix_cray_LIBS = @pmix_cray_LIBS@ +pml_ucx_CPPFLAGS = @pml_ucx_CPPFLAGS@ +pml_ucx_LDFLAGS = @pml_ucx_LDFLAGS@ +pml_ucx_LIBS = @pml_ucx_LIBS@ +pml_yalla_CPPFLAGS = @pml_yalla_CPPFLAGS@ +pml_yalla_LDFLAGS = @pml_yalla_LDFLAGS@ +pml_yalla_LIBS = @pml_yalla_LIBS@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +ras_alps_CPPFLAGS = @ras_alps_CPPFLAGS@ +ras_lsf_CPPFLAGS = @ras_lsf_CPPFLAGS@ +ras_lsf_LDFLAGS = @ras_lsf_LDFLAGS@ +ras_lsf_LIBS = @ras_lsf_LIBS@ +ras_slurm_CPPFLAGS = @ras_slurm_CPPFLAGS@ +ras_slurm_LDFLAGS = @ras_slurm_LDFLAGS@ +ras_slurm_LIBS = @ras_slurm_LIBS@ +ras_tm_CPPFLAGS = @ras_tm_CPPFLAGS@ +ras_tm_LDFLAGS = @ras_tm_LDFLAGS@ +ras_tm_LIBS = @ras_tm_LIBS@ +rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ +rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ +rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ +sbindir = @sbindir@ +schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ +schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ +schizo_moab_LDFLAGS = @schizo_moab_LDFLAGS@ +schizo_moab_LIBS = @schizo_moab_LIBS@ +schizo_slurm_CPPFLAGS = @schizo_slurm_CPPFLAGS@ +schizo_slurm_LDFLAGS = @schizo_slurm_LDFLAGS@ +schizo_slurm_LIBS = @schizo_slurm_LIBS@ +scoll_fca_CFLAGS = @scoll_fca_CFLAGS@ +scoll_fca_CPPFLAGS = @scoll_fca_CPPFLAGS@ +scoll_fca_HOME = @scoll_fca_HOME@ +scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ +scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ +sharedstatedir = @sharedstatedir@ +spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ +spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ +spml_ikrit_LDFLAGS = @spml_ikrit_LDFLAGS@ +spml_ikrit_LIBS = @spml_ikrit_LIBS@ +spml_ucx_CFLAGS = @spml_ucx_CFLAGS@ +spml_ucx_CPPFLAGS = @spml_ucx_CPPFLAGS@ +spml_ucx_LDFLAGS = @spml_ucx_LDFLAGS@ +spml_ucx_LIBS = @spml_ucx_LIBS@ +srcdir = @srcdir@ +sshmem_ucx_CFLAGS = @sshmem_ucx_CFLAGS@ +sshmem_ucx_CPPFLAGS = @sshmem_ucx_CPPFLAGS@ +sshmem_ucx_LDFLAGS = @sshmem_ucx_LDFLAGS@ +sshmem_ucx_LIBS = @sshmem_ucx_LIBS@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ucx_CFLAGS = @ucx_CFLAGS@ +ucx_LIBS = @ucx_LIBS@ +ucx_STATIC_LIBS = @ucx_STATIC_LIBS@ +@MCA_BUILD_ompi_fbtl_ime_DSO_FALSE@component_noinst = libmca_fbtl_ime.la +@MCA_BUILD_ompi_fbtl_ime_DSO_TRUE@component_noinst = +@MCA_BUILD_ompi_fbtl_ime_DSO_FALSE@component_install = +@MCA_BUILD_ompi_fbtl_ime_DSO_TRUE@component_install = mca_fbtl_ime.la + +# Source files +fbtl_ime_sources = \ + fbtl_ime.h \ + fbtl_ime.c \ + fbtl_ime_component.c \ + fbtl_ime_blocking_op.c \ + fbtl_ime_nonblocking_op.c + +AM_CPPFLAGS = $(fbtl_ime_CPPFLAGS) +mcacomponentdir = $(ompilibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_fbtl_ime_la_SOURCES = $(fbtl_ime_sources) +mca_fbtl_ime_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(fbtl_ime_LIBS) + +mca_fbtl_ime_la_LDFLAGS = -module -avoid-version $(fbtl_ime_LDFLAGS) +noinst_LTLIBRARIES = $(component_noinst) +libmca_fbtl_ime_la_SOURCES = $(fbtl_ime_sources) +libmca_fbtl_ime_la_LIBADD = $(fbtl_ime_LIBS) +libmca_fbtl_ime_la_LDFLAGS = -module -avoid-version $(fbtl_ime_LDFLAGS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign ompi/mca/fbtl/ime/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign ompi/mca/fbtl/ime/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-mcacomponentLTLIBRARIES: $(mcacomponent_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(mcacomponentdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(mcacomponentdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(mcacomponentdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(mcacomponentdir)"; \ + } + +uninstall-mcacomponentLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(mcacomponentdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(mcacomponentdir)/$$f"; \ + done + +clean-mcacomponentLTLIBRARIES: + -test -z "$(mcacomponent_LTLIBRARIES)" || rm -f $(mcacomponent_LTLIBRARIES) + @list='$(mcacomponent_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libmca_fbtl_ime.la: $(libmca_fbtl_ime_la_OBJECTS) $(libmca_fbtl_ime_la_DEPENDENCIES) $(EXTRA_libmca_fbtl_ime_la_DEPENDENCIES) + $(AM_V_CCLD)$(libmca_fbtl_ime_la_LINK) $(am_libmca_fbtl_ime_la_rpath) $(libmca_fbtl_ime_la_OBJECTS) $(libmca_fbtl_ime_la_LIBADD) $(LIBS) + +mca_fbtl_ime.la: $(mca_fbtl_ime_la_OBJECTS) $(mca_fbtl_ime_la_DEPENDENCIES) $(EXTRA_mca_fbtl_ime_la_DEPENDENCIES) + $(AM_V_CCLD)$(mca_fbtl_ime_la_LINK) $(am_mca_fbtl_ime_la_rpath) $(mca_fbtl_ime_la_OBJECTS) $(mca_fbtl_ime_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fbtl_ime.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fbtl_ime_blocking_op.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fbtl_ime_component.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fbtl_ime_nonblocking_op.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(mcacomponentdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-mcacomponentLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-mcacomponentLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-mcacomponentLTLIBRARIES install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-mcacomponentLTLIBRARIES + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/ompi/mca/fbtl/Makefile.in openmpi-4.1.4/ompi/mca/fbtl/Makefile.in --- openmpi-4.0.3/ompi/mca/fbtl/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -138,6 +138,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -145,6 +147,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -168,6 +171,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -270,6 +274,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -277,6 +282,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -357,6 +363,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -379,9 +386,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -391,6 +402,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -411,6 +423,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -668,6 +681,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1488,6 +1504,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1520,9 +1540,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1543,6 +1572,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1627,9 +1657,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1690,6 +1717,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1703,6 +1733,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/fbtl/posix/fbtl_posix.c openmpi-4.1.4/ompi/mca/fbtl/posix/fbtl_posix.c --- openmpi-4.0.3/ompi/mca/fbtl/posix/fbtl_posix.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/posix/fbtl_posix.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2008-2015 University of Houston. All rights reserved. + * Copyright (c) 2008-2021 University of Houston. All rights reserved. * Copyright (c) 2018 Cisco Systems, Inc. All rights reserved * Copyright (c) 2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -127,14 +127,57 @@ if ( EINPROGRESS == data->aio_req_status[i] ) { data->aio_req_status[i] = aio_error ( &data->aio_reqs[i]); if ( 0 == data->aio_req_status[i]){ - data->aio_open_reqs--; - lcount++; /* assuming right now that aio_return will return ** the number of bytes written/read and not an error code, ** since aio_error should have returned an error in that ** case and not 0 ( which means request is complete) */ - data->aio_total_len += aio_return (&data->aio_reqs[i]); + ssize_t ret2 = aio_return (&data->aio_reqs[i]); + data->aio_total_len += ret2; + if ( data->aio_reqs[i].aio_nbytes != (size_t)ret2 ) { + /* Partial completion */ + data->aio_reqs[i].aio_offset += ret2; + data->aio_reqs[i].aio_buf = (char*)data->aio_reqs[i].aio_buf + ret2; + data->aio_reqs[i].aio_nbytes -= ret2; + data->aio_reqs[i].aio_reqprio = 0; + data->aio_reqs[i].aio_sigevent.sigev_notify = SIGEV_NONE; + data->aio_req_status[i] = EINPROGRESS; + start_offset = data->aio_reqs[i].aio_offset; + total_length = data->aio_reqs[i].aio_nbytes; + if ( data->aio_req_type == FBTL_POSIX_WRITE ) { + ret_code = mca_fbtl_posix_lock( &data->aio_lock, data->aio_fh, F_WRLCK, start_offset, total_length, OMPIO_LOCK_ENTIRE_REGION ); + if ( 0 < ret_code ) { + opal_output(1, "mca_fbtl_posix_progress: error in mca_fbtl_posix_lock() %d", ret_code); + /* Just in case some part of the lock actually succeeded. */ + mca_fbtl_posix_unlock ( &data->aio_lock, data->aio_fh ); + return OMPI_ERROR; + } + if (-1 == aio_write(&data->aio_reqs[i])) { + opal_output(1, "mca_fbtl_posix_progress: error in aio_write()"); + mca_fbtl_posix_unlock ( &data->aio_lock, data->aio_fh ); + return OMPI_ERROR; + } + } + else if ( data->aio_req_type == FBTL_POSIX_READ ) { + ret_code = mca_fbtl_posix_lock( &data->aio_lock, data->aio_fh, F_RDLCK, start_offset, total_length, OMPIO_LOCK_ENTIRE_REGION ); + if ( 0 < ret_code ) { + opal_output(1, "mca_fbtl_posix_progress: error in mca_fbtl_posix_lock() %d", ret_code); + /* Just in case some part of the lock actually succeeded. */ + mca_fbtl_posix_unlock ( &data->aio_lock, data->aio_fh ); + return OMPI_ERROR; + } + if (-1 == aio_read(&data->aio_reqs[i])) { + opal_output(1, "mca_fbtl_posix_progress: error in aio_read()"); + mca_fbtl_posix_unlock ( &data->aio_lock, data->aio_fh ); + return OMPI_ERROR; + } + mca_fbtl_posix_unlock ( &data->aio_lock, data->aio_fh ); + } + } + else { + data->aio_open_reqs--; + lcount++; + } } else if ( EINPROGRESS == data->aio_req_status[i]){ /* not yet done */ diff -Nru openmpi-4.0.3/ompi/mca/fbtl/posix/fbtl_posix_component.c openmpi-4.1.4/ompi/mca/fbtl/posix/fbtl_posix_component.c --- openmpi-4.0.3/ompi/mca/fbtl/posix/fbtl_posix_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/posix/fbtl_posix_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2008-2018 University of Houston. All rights reserved. + * Copyright (c) 2008-2020 University of Houston. All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. * $COPYRIGHT$ @@ -37,6 +37,15 @@ "OMPI/MPI posix FBTL MCA component version " OMPI_VERSION; int mca_fbtl_posix_priority = 10; +bool mca_fbtl_posix_read_datasieving = true; +bool mca_fbtl_posix_write_datasieving = true; +size_t mca_fbtl_posix_max_block_size = 1048576; // 1MB +size_t mca_fbtl_posix_max_gap_size = 4096; // Size of a block in many linux fs +size_t mca_fbtl_posix_max_tmpbuf_size = 67108864; // 64 MB +/* + * Private functions + */ +static int register_component(void); /* * Instantiate the public struct with all of our public information @@ -54,6 +63,7 @@ .mca_component_name = "posix", MCA_BASE_MAKE_VERSION(component, OMPI_MAJOR_VERSION, OMPI_MINOR_VERSION, OMPI_RELEASE_VERSION), + .mca_register_component_params = register_component, }, .fbtlm_data = { /* This component is checkpointable */ @@ -63,3 +73,62 @@ .fbtlm_file_query = mca_fbtl_posix_component_file_query, /* get priority and actions */ .fbtlm_file_unquery = mca_fbtl_posix_component_file_unquery, /* undo what was done by previous function */ }; + +static int register_component(void) +{ + mca_fbtl_posix_priority = 10; + (void) mca_base_component_var_register(&mca_fbtl_posix_component.fbtlm_version, + "priority", "Priority of the fbtl posix component", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_fbtl_posix_priority); + + mca_fbtl_posix_max_block_size = 1048576; + (void) mca_base_component_var_register(&mca_fbtl_posix_component.fbtlm_version, + "max_block_size", "Maximum average size in bytes of a data block in an iovec for data sieving. " + "An average block size larger than this parameter will disable data sieving. Default: 1048576 bytes.", + MCA_BASE_VAR_TYPE_SIZE_T, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_fbtl_posix_max_block_size ); + + mca_fbtl_posix_max_gap_size = 4096; + (void) mca_base_component_var_register(&mca_fbtl_posix_component.fbtlm_version, + "max_gap_size", "Maximum average gap size between two blocks in an iovec for data sieving. " + "An average gap size larger than this parameter will disable data sieving. Default: 4096 bytes. " , + MCA_BASE_VAR_TYPE_SIZE_T, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_fbtl_posix_max_gap_size ); + + mca_fbtl_posix_max_tmpbuf_size = 67108864; + (void) mca_base_component_var_register(&mca_fbtl_posix_component.fbtlm_version, + "max_tmpbuf_size", "Maximum size of the temporary buffer used for data sieving in bytes. " + "Default: 67108864 (64MB). " , + MCA_BASE_VAR_TYPE_SIZE_T, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_fbtl_posix_max_tmpbuf_size ); + + mca_fbtl_posix_read_datasieving = true; + (void) mca_base_component_var_register(&mca_fbtl_posix_component.fbtlm_version, + "read_datasieving", "Parameter indicating whether to perform data sieving for read operations. " + "Default: true.", + MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_fbtl_posix_read_datasieving ); + + mca_fbtl_posix_write_datasieving = true; + (void) mca_base_component_var_register(&mca_fbtl_posix_component.fbtlm_version, + "write_datasieving", "Parameter indicating whether to perform data sieving for write operations. " + "Default: true.", + MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_fbtl_posix_write_datasieving ); + + + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/fbtl/posix/fbtl_posix.h openmpi-4.1.4/ompi/mca/fbtl/posix/fbtl_posix.h --- openmpi-4.0.3/ompi/mca/fbtl/posix/fbtl_posix.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/posix/fbtl_posix.h 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2008-2018 University of Houston. All rights reserved. + * Copyright (c) 2008-2020 University of Houston. All rights reserved. * Copyright (c) 2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -29,6 +29,11 @@ #include "ompi/mca/common/ompio/common_ompio_request.h" extern int mca_fbtl_posix_priority; +extern bool mca_fbtl_posix_read_datasieving; +extern bool mca_fbtl_posix_write_datasieving; +extern size_t mca_fbtl_posix_max_block_size; +extern size_t mca_fbtl_posix_max_gap_size; +extern size_t mca_fbtl_posix_max_tmpbuf_size; BEGIN_C_DECLS diff -Nru openmpi-4.0.3/ompi/mca/fbtl/posix/fbtl_posix_ipreadv.c openmpi-4.1.4/ompi/mca/fbtl/posix/fbtl_posix_ipreadv.c --- openmpi-4.0.3/ompi/mca/fbtl/posix/fbtl_posix_ipreadv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/posix/fbtl_posix_ipreadv.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2008-2015 University of Houston. All rights reserved. + * Copyright (c) 2008-2021 University of Houston. All rights reserved. * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -33,6 +33,8 @@ #include "ompi/constants.h" #include "ompi/mca/fbtl/fbtl.h" +#define MAX_ATTEMPTS 10 + ssize_t mca_fbtl_posix_ipreadv (ompio_file_t *fh, ompi_request_t *request) { @@ -44,7 +46,7 @@ data = (mca_fbtl_posix_request_data_t *) malloc ( sizeof (mca_fbtl_posix_request_data_t)); if ( NULL == data ) { - opal_output (1,"could not allocate memory\n"); + opal_output (1,"mca_fbtl_posix_ipreadv: could not allocate memory\n"); return 0; } @@ -56,14 +58,14 @@ data->aio_reqs = (struct aiocb *) malloc (sizeof(struct aiocb) * fh->f_num_of_io_entries); if (NULL == data->aio_reqs) { - opal_output(1, "OUT OF MEMORY\n"); + opal_output(1, "mca_fbtl_posix_ipreadv: could not allocate memory\n"); free(data); return 0; } data->aio_req_status = (int *) malloc (sizeof(int) * fh->f_num_of_io_entries); if (NULL == data->aio_req_status) { - opal_output(1, "OUT OF MEMORY\n"); + opal_output(1, "mca_fbtl_posix_ipreadv: could not allocate memory\n"); free(data->aio_reqs); free(data); return 0; @@ -103,14 +105,22 @@ } for (i=0; i < data->aio_last_active_req; i++) { - if (-1 == aio_read(&data->aio_reqs[i])) { - opal_output(1, "mca_fbtl_posix_ipreadv: error in aio_read(): %s", strerror(errno)); - mca_fbtl_posix_unlock ( &data->aio_lock, data->aio_fh ); - free(data->aio_reqs); - free(data->aio_req_status); - free(data); - return OMPI_ERROR; - } + int counter=0; + while ( MAX_ATTEMPTS > counter ) { + if ( -1 != aio_read(&data->aio_reqs[i]) ) { + break; + } + counter++; + mca_common_ompio_progress(); + } + if ( MAX_ATTEMPTS == counter ) { + opal_output(1, "mca_fbtl_posix_ipreadv: error in aio_read(): errno %d %s", errno, strerror(errno)); + mca_fbtl_posix_unlock ( &data->aio_lock, data->aio_fh ); + free(data->aio_reqs); + free(data->aio_req_status); + free(data); + return OMPI_ERROR; + } } req->req_data = data; diff -Nru openmpi-4.0.3/ompi/mca/fbtl/posix/fbtl_posix_ipwritev.c openmpi-4.1.4/ompi/mca/fbtl/posix/fbtl_posix_ipwritev.c --- openmpi-4.0.3/ompi/mca/fbtl/posix/fbtl_posix_ipwritev.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/posix/fbtl_posix_ipwritev.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2008-2015 University of Houston. All rights reserved. + * Copyright (c) 2008-2021 University of Houston. All rights reserved. * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -32,6 +32,8 @@ #include "ompi/constants.h" #include "ompi/mca/fbtl/fbtl.h" +#define MAX_ATTEMPTS 10 + ssize_t mca_fbtl_posix_ipwritev (ompio_file_t *fh, ompi_request_t *request) { @@ -43,7 +45,7 @@ data = (mca_fbtl_posix_request_data_t *) malloc ( sizeof (mca_fbtl_posix_request_data_t)); if ( NULL == data ) { - opal_output (1,"could not allocate memory\n"); + opal_output (1,"mca_fbtl_posix_ipwritev: could not allocate memory\n"); return 0; } @@ -55,14 +57,14 @@ data->aio_reqs = (struct aiocb *) malloc (sizeof(struct aiocb) * fh->f_num_of_io_entries); if (NULL == data->aio_reqs) { - opal_output(1, "OUT OF MEMORY\n"); + opal_output (1,"mca_fbtl_posix_ipwritev: could not allocate memory\n"); free(data); return 0; } data->aio_req_status = (int *) malloc (sizeof(int) * fh->f_num_of_io_entries); if (NULL == data->aio_req_status) { - opal_output(1, "OUT OF MEMORY\n"); + opal_output (1,"mca_fbtl_posix_ipwritev: could not allocate memory\n"); free(data->aio_reqs); free(data); return 0; @@ -102,7 +104,15 @@ } for (i=0; i < data->aio_last_active_req; i++) { - if (-1 == aio_write(&data->aio_reqs[i])) { + int counter=0; + while ( MAX_ATTEMPTS > counter ) { + if (-1 != aio_write(&data->aio_reqs[i])) { + break; + } + counter++; + mca_common_ompio_progress(); + } + if ( MAX_ATTEMPTS == counter ) { opal_output(1, "mca_fbtl_posix_ipwritev: error in aio_write(): %s", strerror(errno)); mca_fbtl_posix_unlock ( &data->aio_lock, data->aio_fh ); free(data->aio_req_status); diff -Nru openmpi-4.0.3/ompi/mca/fbtl/posix/fbtl_posix_preadv.c openmpi-4.1.4/ompi/mca/fbtl/posix/fbtl_posix_preadv.c --- openmpi-4.0.3/ompi/mca/fbtl/posix/fbtl_posix_preadv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/posix/fbtl_posix_preadv.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2008-2017 University of Houston. All rights reserved. + * Copyright (c) 2008-2020 University of Houston. All rights reserved. * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -28,100 +28,260 @@ #include "ompi/constants.h" #include "ompi/mca/fbtl/fbtl.h" + +static ssize_t mca_fbtl_posix_preadv_datasieving (ompio_file_t *fh); +static ssize_t mca_fbtl_posix_preadv_generic (ompio_file_t *fh); + ssize_t mca_fbtl_posix_preadv (ompio_file_t *fh ) { - /*int *fp = NULL;*/ - int i, block=1, ret; - struct iovec *iov = NULL; - int iov_count = 0; - OMPI_MPI_OFFSET_TYPE iov_offset = 0; ssize_t bytes_read=0, ret_code=0; struct flock lock; - off_t total_length, end_offset=0; + int ret; if (NULL == fh->f_io_array) { return OMPI_ERROR; } + + if ( fh->f_num_of_io_entries > 1 ) { + bool do_data_sieving = true; + + size_t avg_gap_size=0; + size_t avg_block_size = 0; + off_t prev_offset = (off_t)fh->f_io_array[0].offset; + int i; + for ( i=0; i< fh->f_num_of_io_entries; i++ ) { + avg_block_size += fh->f_io_array[i].length; + avg_gap_size += (size_t)((off_t)fh->f_io_array[i].offset - prev_offset); + prev_offset = (off_t)fh->f_io_array[i].offset; + } + avg_block_size = avg_block_size / fh->f_num_of_io_entries; + avg_gap_size = avg_gap_size / fh->f_num_of_io_entries; + + if ( false == mca_fbtl_posix_read_datasieving || + 0 == avg_gap_size || + avg_block_size > mca_fbtl_posix_max_block_size || + avg_gap_size > mca_fbtl_posix_max_gap_size ) { + do_data_sieving = false; + } + + if ( do_data_sieving) { + return mca_fbtl_posix_preadv_datasieving (fh); + } + else { + return mca_fbtl_posix_preadv_generic (fh); + } + } + else { + // i.e. fh->f_num_of_io_entries == 1 + ret = mca_fbtl_posix_lock ( &lock, fh, F_RDLCK, (off_t)fh->f_io_array[0].offset, + (off_t)fh->f_io_array[0].length, OMPIO_LOCK_ENTIRE_REGION ); + if ( 0 < ret ) { + opal_output(1, "mca_fbtl_posix_preadv: error in mca_fbtl_posix_lock() ret=%d: %s", + ret, strerror(errno)); + /* Just in case some part of the lock worked */ + mca_fbtl_posix_unlock ( &lock, fh); + return OMPI_ERROR; + } + + ret_code = pread(fh->fd, fh->f_io_array[0].memory_address, fh->f_io_array[0].length, + (off_t)fh->f_io_array[0].offset ); + mca_fbtl_posix_unlock ( &lock, fh ); + if ( ret_code == -1 ) { + opal_output(1, "mca_fbtl_posix_preadv: error in (p)read(v):%s", strerror(errno)); + return OMPI_ERROR; + } + + bytes_read += ret_code; + } + + return bytes_read; +} - iov = (struct iovec *) malloc - (OMPIO_IOVEC_INITIAL_SIZE * sizeof (struct iovec)); +ssize_t mca_fbtl_posix_preadv_datasieving (ompio_file_t *fh) +{ + size_t start, end, len; + size_t bufsize = 0; + int ret, i, j; + ssize_t bytes_read=0, ret_code=0; + struct flock lock; + char *temp_buf = NULL; + + int startindex = 0; + int endindex = 0; + bool done = false; + + while (!done) { + // Break the io_array into chunks such that the size of the temporary + // buffer does not exceed mca_fbtl_posix_max_tmpbuf_size bytes. + // Each iteration will thus work in the range (startindex, endindex[ + startindex = endindex; + if ( startindex >= fh->f_num_of_io_entries ) { + done = true; + break; + } + + size_t sstart = (size_t)fh->f_io_array[startindex].offset; + size_t slen=0; + + for ( j = startindex; j < fh->f_num_of_io_entries; j++ ) { + endindex = j; + slen = ((size_t)fh->f_io_array[j].offset + fh->f_io_array[j].length) - sstart; + if (slen > mca_fbtl_posix_max_tmpbuf_size ) { + endindex = j-1; + break; + } + } + // Need to increment the value of endindex + // by one for the loop syntax to work correctly. + endindex++; + + start = (size_t)fh->f_io_array[startindex].offset; + end = (size_t)fh->f_io_array[endindex-1].offset + fh->f_io_array[endindex-1].length; + len = end - start; + + if ( len > bufsize ) { + if ( NULL != temp_buf ) { + free ( temp_buf); + } + temp_buf = (char *) malloc ( len ); + if ( NULL == temp_buf ) { + opal_output(1, "OUT OF MEMORY\n"); + return OMPI_ERR_OUT_OF_RESOURCE; + } + bufsize = len; + } + + // Read the entire block. + ret = mca_fbtl_posix_lock ( &lock, fh, F_RDLCK, start, len, OMPIO_LOCK_ENTIRE_REGION ); + if ( 0 < ret ) { + opal_output(1, "mca_fbtl_posix_preadv_datasieving: error in mca_fbtl_posix_lock() ret=%d: %s", + ret, strerror(errno)); + /* Just in case some part of the lock worked */ + mca_fbtl_posix_unlock ( &lock, fh); + free ( temp_buf); + return OMPI_ERROR; + } + + ret_code = pread (fh->fd, temp_buf, len, start); + mca_fbtl_posix_unlock ( &lock, fh); + if ( ret_code == -1 ) { + opal_output(1, "mca_fbtl_posix_preadv_datasieving: error in (p)read(v):%s", strerror(errno)); + free ( temp_buf); + return OMPI_ERROR; + } + + // Copy out the elements that were requested. + size_t pos = 0; + size_t num_bytes; + size_t start_offset = (size_t) fh->f_io_array[startindex].offset; + for ( i = startindex ; i < endindex ; i++) { + pos = (size_t) fh->f_io_array[i].offset - start_offset; + if ( (ssize_t) pos > ret_code ) { + break; + } + num_bytes = fh->f_io_array[i].length; + if ( ((ssize_t) pos + (ssize_t)num_bytes) > ret_code ) { + num_bytes = ret_code - (ssize_t)pos; + } + + memcpy (fh->f_io_array[i].memory_address, temp_buf + pos, num_bytes); + bytes_read += num_bytes; + } + } + + free ( temp_buf); + return bytes_read; +} + +ssize_t mca_fbtl_posix_preadv_generic (ompio_file_t *fh ) +{ + ssize_t bytes_read=0, ret_code=0; + struct iovec *iov = NULL; + struct flock lock; + int ret, i; + + int block=1; + int iov_count = 0; + OMPI_MPI_OFFSET_TYPE iov_offset = 0; + off_t total_length, end_offset=0; + + iov = (struct iovec *) malloc (OMPIO_IOVEC_INITIAL_SIZE * sizeof (struct iovec)); if (NULL == iov) { opal_output(1, "OUT OF MEMORY\n"); return OMPI_ERR_OUT_OF_RESOURCE; } - + for (i=0 ; if_num_of_io_entries ; i++) { - if (0 == iov_count) { - iov[iov_count].iov_base = fh->f_io_array[i].memory_address; - iov[iov_count].iov_len = fh->f_io_array[i].length; - iov_offset = (OMPI_MPI_OFFSET_TYPE)(intptr_t)fh->f_io_array[i].offset; + if (0 == iov_count) { + iov[iov_count].iov_base = fh->f_io_array[i].memory_address; + iov[iov_count].iov_len = fh->f_io_array[i].length; + iov_offset = (OMPI_MPI_OFFSET_TYPE)(intptr_t)fh->f_io_array[i].offset; end_offset = (off_t)fh->f_io_array[i].offset + (off_t)fh->f_io_array[i].length; - iov_count ++; - } - - if (OMPIO_IOVEC_INITIAL_SIZE*block <= iov_count) { - block ++; - iov = (struct iovec *)realloc - (iov, OMPIO_IOVEC_INITIAL_SIZE * block * - sizeof(struct iovec)); - if (NULL == iov) { - opal_output(1, "OUT OF MEMORY\n"); - return OMPI_ERR_OUT_OF_RESOURCE; - } - } - - if (fh->f_num_of_io_entries != i+1) { - if (((((OMPI_MPI_OFFSET_TYPE)(intptr_t)fh->f_io_array[i].offset + - (ptrdiff_t)fh->f_io_array[i].length) == - (OMPI_MPI_OFFSET_TYPE)(intptr_t)fh->f_io_array[i+1].offset)) && - (iov_count < IOV_MAX ) ){ - iov[iov_count].iov_base = - fh->f_io_array[i+1].memory_address; - iov[iov_count].iov_len = fh->f_io_array[i+1].length; - end_offset = (off_t)fh->f_io_array[i].offset + (off_t)fh->f_io_array[i].length; - iov_count ++; - continue; - } - } - + iov_count ++; + } + + if (OMPIO_IOVEC_INITIAL_SIZE*block <= iov_count) { + block ++; + iov = (struct iovec *)realloc + (iov, OMPIO_IOVEC_INITIAL_SIZE * block * + sizeof(struct iovec)); + if (NULL == iov) { + opal_output(1, "OUT OF MEMORY\n"); + return OMPI_ERR_OUT_OF_RESOURCE; + } + } + + if (fh->f_num_of_io_entries != i+1) { + if (((((OMPI_MPI_OFFSET_TYPE)(intptr_t)fh->f_io_array[i].offset + + (ptrdiff_t)fh->f_io_array[i].length) == + (OMPI_MPI_OFFSET_TYPE)(intptr_t)fh->f_io_array[i+1].offset)) && + (iov_count < IOV_MAX ) ){ + iov[iov_count].iov_base = + fh->f_io_array[i+1].memory_address; + iov[iov_count].iov_len = fh->f_io_array[i+1].length; + end_offset = (off_t)fh->f_io_array[i].offset + (off_t)fh->f_io_array[i].length; + iov_count ++; + continue; + } + } + total_length = (end_offset - (off_t)iov_offset ); - + ret = mca_fbtl_posix_lock ( &lock, fh, F_RDLCK, iov_offset, total_length, OMPIO_LOCK_SELECTIVE ); if ( 0 < ret ) { - opal_output(1, "mca_fbtl_posix_preadv: error in mca_fbtl_posix_lock() ret=%d: %s", ret, strerror(errno)); + opal_output(1, "mca_fbtl_posix_preadv_generic: error in mca_fbtl_posix_lock() ret=%d: %s", ret, strerror(errno)); free (iov); /* Just in case some part of the lock worked */ mca_fbtl_posix_unlock ( &lock, fh); return OMPI_ERROR; } #if defined(HAVE_PREADV) - ret_code = preadv (fh->fd, iov, iov_count, iov_offset); + ret_code = preadv (fh->fd, iov, iov_count, iov_offset); #else - if (-1 == lseek (fh->fd, iov_offset, SEEK_SET)) { - opal_output(1, "mca_fbtl_posix_preadv: error in lseek:%s", strerror(errno)); + if (-1 == lseek (fh->fd, iov_offset, SEEK_SET)) { + opal_output(1, "mca_fbtl_posix_preadv_generic: error in lseek:%s", strerror(errno)); free(iov); mca_fbtl_posix_unlock ( &lock, fh ); - return OMPI_ERROR; - } - ret_code = readv (fh->fd, iov, iov_count); + return OMPI_ERROR; + } + ret_code = readv (fh->fd, iov, iov_count); #endif mca_fbtl_posix_unlock ( &lock, fh ); - if ( 0 < ret_code ) { - bytes_read+=ret_code; - } - else if ( ret_code == -1 ) { - opal_output(1, "mca_fbtl_posix_preadv: error in (p)readv:%s", strerror(errno)); + if ( 0 < ret_code ) { + bytes_read+=ret_code; + } + else if ( ret_code == -1 ) { + opal_output(1, "mca_fbtl_posix_preadv_generic: error in (p)readv:%s", strerror(errno)); free(iov); - return OMPI_ERROR; - } - else if ( 0 == ret_code ){ - /* end of file reached, no point in continue reading; */ - break; - } - iov_count = 0; - } + return OMPI_ERROR; + } + else if ( 0 == ret_code ){ + /* end of file reached, no point in continue reading; */ + break; + } + iov_count = 0; + } free (iov); - return bytes_read; } diff -Nru openmpi-4.0.3/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c openmpi-4.1.4/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c --- openmpi-4.0.3/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2008-2017 University of Houston. All rights reserved. + * Copyright (c) 2008-2020 University of Houston. All rights reserved. * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -30,8 +30,188 @@ #include "ompi/constants.h" #include "ompi/mca/fbtl/fbtl.h" +static ssize_t mca_fbtl_posix_pwritev_datasieving (ompio_file_t *fh ); +static ssize_t mca_fbtl_posix_pwritev_generic (ompio_file_t *fh ); + ssize_t mca_fbtl_posix_pwritev(ompio_file_t *fh ) { + ssize_t bytes_written=0, ret_code=0; + struct flock lock; + int ret; + + if (NULL == fh->f_io_array) { + return OMPI_ERROR; + } + + if ( fh->f_num_of_io_entries > 1 ) { + bool do_data_sieving = true; + + size_t avg_gap_size=0; + size_t avg_block_size = 0; + off_t prev_offset = (off_t)fh->f_io_array[0].offset; + int i; + for ( i=0; i< fh->f_num_of_io_entries; i++ ) { + avg_block_size += fh->f_io_array[i].length; + avg_gap_size += (size_t)((off_t)fh->f_io_array[i].offset - prev_offset); + prev_offset = (off_t)fh->f_io_array[i].offset; + } + avg_block_size = avg_block_size / fh->f_num_of_io_entries; + avg_gap_size = avg_gap_size / fh->f_num_of_io_entries; + + if ( false == mca_fbtl_posix_write_datasieving || + 0 == avg_gap_size || + avg_block_size > mca_fbtl_posix_max_block_size || + avg_gap_size > mca_fbtl_posix_max_gap_size || + ompi_mpi_thread_multiple || + !(fh->f_flags & OMPIO_COLLECTIVE_OP) ) { + do_data_sieving = false; + } + + if ( do_data_sieving) { + return mca_fbtl_posix_pwritev_datasieving (fh); + } + else { + return mca_fbtl_posix_pwritev_generic (fh); + } + } + else { + // i.e. fh->f_num_of_io_entries == 1 + ret = mca_fbtl_posix_lock ( &lock, fh, F_WRLCK, (off_t)fh->f_io_array[0].offset, + (off_t)fh->f_io_array[0].length, OMPIO_LOCK_ENTIRE_REGION ); + if ( 0 < ret ) { + opal_output(1, "mca_fbtl_posix_pwritev: error in mca_fbtl_posix_lock() ret=%d: %s", + ret, strerror(errno)); + /* Just in case some part of the lock worked */ + mca_fbtl_posix_unlock ( &lock, fh); + return OMPI_ERROR; + } + + ret_code = pwrite(fh->fd, fh->f_io_array[0].memory_address, fh->f_io_array[0].length, + (off_t)fh->f_io_array[0].offset ); + mca_fbtl_posix_unlock ( &lock, fh ); + if ( ret_code == -1 ) { + opal_output(1, "mca_fbtl_posix_pwritev: error in (p)write(v):%s", strerror(errno)); + return OMPI_ERROR; + } + + bytes_written += ret_code; + } + + return bytes_written; +} + +ssize_t mca_fbtl_posix_pwritev_datasieving (ompio_file_t *fh) +{ + size_t start, end, len; + size_t bufsize = 0; + int ret, i, j; + ssize_t bytes_written=0, ret_code=0; + struct flock lock; + char *temp_buf = NULL; + + int startindex = 0; + int endindex = 0; + bool done = false; + + while (!done) { + // Break the io_array into chunks such that the size of the temporary + // buffer does not exceed mca_fbtl_posix_max_tmpbuf_size bytes. + // Each iteration will thus work in the range (startindex, endindex[ + startindex = endindex; + if ( startindex >= fh->f_num_of_io_entries ) { + done = true; + break; + } + + size_t sstart = (size_t)fh->f_io_array[startindex].offset; + size_t slen=0; + + for ( j = startindex; j < fh->f_num_of_io_entries; j++ ) { + endindex = j; + slen = ((size_t)fh->f_io_array[j].offset + fh->f_io_array[j].length) - sstart; + if (slen > mca_fbtl_posix_max_tmpbuf_size ) { + endindex = j-1; + break; + } + } + // Need to increment the value of endindex + // by one for the loop syntax to work correctly. + endindex++; + + start = (size_t)fh->f_io_array[startindex].offset; + end = (size_t)fh->f_io_array[endindex-1].offset + fh->f_io_array[endindex-1].length; + len = end - start; + + if ( len > bufsize ) { + if ( NULL != temp_buf ) { + free ( temp_buf); + } + temp_buf = (char *) malloc ( len ); + if ( NULL == temp_buf ) { + opal_output(1, "OUT OF MEMORY\n"); + return OMPI_ERR_OUT_OF_RESOURCE; + } + bufsize = len; + } + + // Read the entire block. + ret = mca_fbtl_posix_lock ( &lock, fh, F_WRLCK, start, len, OMPIO_LOCK_ENTIRE_REGION ); + if ( 0 < ret ) { + opal_output(1, "mca_fbtl_posix_pwritev_datasieving: error in mca_fbtl_posix_lock() ret=%d: %s", + ret, strerror(errno)); + /* Just in case some part of the lock worked */ + mca_fbtl_posix_unlock ( &lock, fh); + free ( temp_buf); + return OMPI_ERROR; + } + + ret_code = pread (fh->fd, temp_buf, len, start); + if ( ret_code == -1 ) { + //opal_output(1, "mca_fbtl_posix_pwritev_datasieving: error in pwrite:%s", strerror(errno)); + opal_output(1, "mca_fbtl_posix_pwritev_datasieving: error in pwrite:%s", strerror(errno)); + /* Just in case some part of the lock worked */ + mca_fbtl_posix_unlock ( &lock, fh); + free ( temp_buf); + return OMPI_ERROR; + } + + // Copy out the elements to write into temporary buffer. + size_t pos = 0; + size_t num_bytes; + size_t start_offset = (size_t) fh->f_io_array[startindex].offset; + for ( i = startindex ; i < endindex ; i++) { + pos = (size_t) fh->f_io_array[i].offset - start_offset; + num_bytes = fh->f_io_array[i].length; + memcpy (temp_buf + pos, fh->f_io_array[i].memory_address, num_bytes); + bytes_written += num_bytes; + } + ret_code = pwrite (fh->fd, temp_buf, len, start); + if ( ret_code == -1 ) { + opal_output(1, "mca_fbtl_posix_pwritev_datasieving: error in pwrite:%s", strerror(errno)); + /* Just in case some part of the lock worked */ + mca_fbtl_posix_unlock ( &lock, fh); + free ( temp_buf); + return OMPI_ERROR; + } + + mca_fbtl_posix_unlock ( &lock, fh); + if ( ret_code == -1 ) { + opal_output(1, "mca_fbtl_posix_pwritev_datasieving: error in pwrite:%s", strerror(errno)); + /* Just in case some part of the lock worked */ + mca_fbtl_posix_unlock ( &lock, fh); + free ( temp_buf); + return OMPI_ERROR; + } + + } + + free ( temp_buf); + return bytes_written; +} + + +ssize_t mca_fbtl_posix_pwritev_generic (ompio_file_t *fh ) +{ /*int *fp = NULL;*/ int i, block = 1, ret; struct iovec *iov = NULL; diff -Nru openmpi-4.0.3/ompi/mca/fbtl/posix/Makefile.am openmpi-4.1.4/ompi/mca/fbtl/posix/Makefile.am --- openmpi-4.0.3/ompi/mca/fbtl/posix/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/posix/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -34,7 +34,8 @@ mcacomponent_LTLIBRARIES = $(component_install) mca_fbtl_posix_la_SOURCES = $(sources) mca_fbtl_posix_la_LDFLAGS = -module -avoid-version -mca_fbtl_posix_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la +mca_fbtl_posix_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(OMPI_TOP_BUILDDIR)/ompi/mca/common/ompio/libmca_common_ompio.la noinst_LTLIBRARIES = $(component_noinst) libmca_fbtl_posix_la_SOURCES = $(sources) diff -Nru openmpi-4.0.3/ompi/mca/fbtl/posix/Makefile.in openmpi-4.1.4/ompi/mca/fbtl/posix/Makefile.in --- openmpi-4.0.3/ompi/mca/fbtl/posix/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/posix/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -122,6 +122,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -129,6 +131,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -152,6 +155,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -254,6 +258,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -261,6 +266,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -341,6 +347,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -363,9 +370,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -375,6 +386,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -395,6 +407,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -466,7 +479,8 @@ $(LDFLAGS) -o $@ @MCA_BUILD_ompi_fbtl_posix_DSO_FALSE@am_libmca_fbtl_posix_la_rpath = mca_fbtl_posix_la_DEPENDENCIES = \ - $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la + $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(OMPI_TOP_BUILDDIR)/ompi/mca/common/ompio/libmca_common_ompio.la am_mca_fbtl_posix_la_OBJECTS = $(am__objects_1) mca_fbtl_posix_la_OBJECTS = $(am_mca_fbtl_posix_la_OBJECTS) mca_fbtl_posix_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ @@ -664,6 +678,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1484,6 +1501,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1516,9 +1537,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1539,6 +1569,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1623,9 +1654,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1686,6 +1714,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1699,6 +1730,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ @@ -1733,7 +1768,9 @@ mcacomponent_LTLIBRARIES = $(component_install) mca_fbtl_posix_la_SOURCES = $(sources) mca_fbtl_posix_la_LDFLAGS = -module -avoid-version -mca_fbtl_posix_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la +mca_fbtl_posix_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(OMPI_TOP_BUILDDIR)/ompi/mca/common/ompio/libmca_common_ompio.la + noinst_LTLIBRARIES = $(component_noinst) libmca_fbtl_posix_la_SOURCES = $(sources) libmca_fbtl_posix_la_LDFLAGS = -module -avoid-version diff -Nru openmpi-4.0.3/ompi/mca/fbtl/pvfs2/Makefile.in openmpi-4.1.4/ompi/mca/fbtl/pvfs2/Makefile.in --- openmpi-4.0.3/ompi/mca/fbtl/pvfs2/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fbtl/pvfs2/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -122,6 +122,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -129,6 +131,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -152,6 +155,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -254,6 +258,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -261,6 +266,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -341,6 +347,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -363,9 +370,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -375,6 +386,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -395,6 +407,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -665,6 +678,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1485,6 +1501,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1517,9 +1537,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1540,6 +1569,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1624,9 +1654,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1687,6 +1714,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1700,6 +1730,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/fcoll/dynamic/fcoll_dynamic_file_read_all.c openmpi-4.1.4/ompi/mca/fcoll/dynamic/fcoll_dynamic_file_read_all.c --- openmpi-4.0.3/ompi/mca/fcoll/dynamic/fcoll_dynamic_file_read_all.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fcoll/dynamic/fcoll_dynamic_file_read_all.c 2022-05-29 09:51:40.000000000 +0000 @@ -130,6 +130,7 @@ count, buf, &max_data, + fh->f_mem_convertor, &decoded_iov, &iov_count); if (OMPI_SUCCESS != ret){ diff -Nru openmpi-4.0.3/ompi/mca/fcoll/dynamic/fcoll_dynamic_file_write_all.c openmpi-4.1.4/ompi/mca/fcoll/dynamic/fcoll_dynamic_file_write_all.c --- openmpi-4.0.3/ompi/mca/fcoll/dynamic/fcoll_dynamic_file_write_all.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fcoll/dynamic/fcoll_dynamic_file_write_all.c 2022-05-29 09:51:40.000000000 +0000 @@ -132,6 +132,7 @@ count, buf, &max_data, + fh->f_mem_convertor, &decoded_iov, &iov_count); if (OMPI_SUCCESS != ret ){ diff -Nru openmpi-4.0.3/ompi/mca/fcoll/dynamic/Makefile.in openmpi-4.1.4/ompi/mca/fcoll/dynamic/Makefile.in --- openmpi-4.0.3/ompi/mca/fcoll/dynamic/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fcoll/dynamic/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -663,6 +676,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1483,6 +1499,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1515,9 +1535,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1538,6 +1567,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1622,9 +1652,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1685,6 +1712,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1698,6 +1728,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2_component.c openmpi-4.1.4/ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2_component.c --- openmpi-4.0.3/ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2008-2016 University of Houston. All rights reserved. + * Copyright (c) 2008-2020 University of Houston. All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. * $COPYRIGHT$ @@ -42,7 +42,6 @@ */ int mca_fcoll_dynamic_gen2_priority = 10; int mca_fcoll_dynamic_gen2_num_groups = 1; -int mca_fcoll_dynamic_gen2_write_chunksize = -1; /* * Local function @@ -95,12 +94,5 @@ OPAL_INFO_LVL_9, MCA_BASE_VAR_SCOPE_READONLY, &mca_fcoll_dynamic_gen2_num_groups); - mca_fcoll_dynamic_gen2_write_chunksize = -1; - (void) mca_base_component_var_register(&mca_fcoll_dynamic_gen2_component.fcollm_version, - "write_chunksize", "Chunk size written at once. Default: stripe_size of the file system", - MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, - OPAL_INFO_LVL_9, - MCA_BASE_VAR_SCOPE_READONLY, &mca_fcoll_dynamic_gen2_write_chunksize); - return OMPI_SUCCESS; } diff -Nru openmpi-4.0.3/ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2_file_read_all.c openmpi-4.1.4/ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2_file_read_all.c --- openmpi-4.0.3/ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2_file_read_all.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2_file_read_all.c 2022-05-29 09:51:40.000000000 +0000 @@ -130,6 +130,7 @@ count, buf, &max_data, + fh->f_mem_convertor, &decoded_iov, &iov_count); if (OMPI_SUCCESS != ret){ diff -Nru openmpi-4.0.3/ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2_file_write_all.c openmpi-4.1.4/ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2_file_write_all.c --- openmpi-4.0.3/ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2_file_write_all.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2_file_write_all.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2008-2016 University of Houston. All rights reserved. + * Copyright (c) 2008-2020 University of Houston. All rights reserved. * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. @@ -92,7 +92,7 @@ static int shuffle_init ( int index, int cycles, int aggregator, int rank, mca_io_ompio_aggregator_data *data, ompi_request_t **reqs ); -static int write_init (ompio_file_t *fh, int aggregator, mca_io_ompio_aggregator_data *aggr_data, int write_chunksize ); +static int write_init (ompio_file_t *fh, int aggregator, mca_io_ompio_aggregator_data *aggr_data ); int mca_fcoll_dynamic_gen2_break_file_view ( struct iovec *decoded_iov, int iov_count, struct iovec *local_iov_array, int local_count, @@ -111,8 +111,7 @@ int *sorted); int mca_fcoll_dynamic_gen2_split_iov_array ( ompio_file_t *fh, mca_common_ompio_io_array_t *work_array, - int num_entries, int *last_array_pos, int *last_pos_in_field, - int chunk_size ); + int num_entries, int *last_array_pos, int *last_pos_in_field ); int mca_fcoll_dynamic_gen2_file_write_all (ompio_file_t *fh, @@ -145,7 +144,7 @@ MPI_Aint *broken_total_lengths=NULL; int *aggregators=NULL; - int write_chunksize, *result_counts=NULL; + int *result_counts=NULL; #if OMPIO_FCOLL_WANT_TIME_BREAKDOWN @@ -170,6 +169,7 @@ count, buf, &max_data, + fh->f_mem_convertor, &decoded_iov, &iov_count); if (OMPI_SUCCESS != ret ){ @@ -198,15 +198,9 @@ if ( fh->f_stripe_size == 0 ) { // EDGAR: just a quick heck for testing + //fh->f_stripe_size = 1048576; fh->f_stripe_size = 65536; } - if ( -1 == mca_fcoll_dynamic_gen2_write_chunksize ) { - write_chunksize = fh->f_stripe_size; - } - else { - write_chunksize = mca_fcoll_dynamic_gen2_write_chunksize; - } - ret = mca_fcoll_dynamic_gen2_get_configuration (fh, &dynamic_gen2_num_io_procs, &aggregators); if (OMPI_SUCCESS != ret){ @@ -607,7 +601,7 @@ #if OMPIO_FCOLL_WANT_TIME_BREAKDOWN start_write_time = MPI_Wtime(); #endif - ret = write_init (fh, aggregators[i], aggr_data[i], write_chunksize ); + ret = write_init (fh, aggregators[i], aggr_data[i] ); if (OMPI_SUCCESS != ret){ goto exit; } @@ -636,7 +630,7 @@ #if OMPIO_FCOLL_WANT_TIME_BREAKDOWN start_write_time = MPI_Wtime(); #endif - ret = write_init (fh, aggregators[i], aggr_data[i], write_chunksize ); + ret = write_init (fh, aggregators[i], aggr_data[i] ); if (OMPI_SUCCESS != ret){ goto exit; } @@ -734,7 +728,7 @@ } -static int write_init (ompio_file_t *fh, int aggregator, mca_io_ompio_aggregator_data *aggr_data, int write_chunksize ) +static int write_init (ompio_file_t *fh, int aggregator, mca_io_ompio_aggregator_data *aggr_data ) { int ret=OMPI_SUCCESS; int last_array_pos=0; @@ -742,18 +736,36 @@ if ( aggregator == fh->f_rank && aggr_data->prev_num_io_entries) { - while ( aggr_data->prev_bytes_to_write > 0 ) { + fh->f_flags |= OMPIO_COLLECTIVE_OP; + while ( aggr_data->prev_bytes_to_write > 0 ) { + ssize_t tret; aggr_data->prev_bytes_to_write -= mca_fcoll_dynamic_gen2_split_iov_array (fh, aggr_data->prev_io_array, aggr_data->prev_num_io_entries, - &last_array_pos, &last_pos, - write_chunksize ); - if ( 0 > fh->f_fbtl->fbtl_pwritev (fh)) { + &last_array_pos, &last_pos ); + tret = fh->f_fbtl->fbtl_pwritev (fh); + if ( 0 > tret ) { free ( aggr_data->prev_io_array); opal_output (1, "dynamic_gen2_write_all: fbtl_pwritev failed\n"); ret = OMPI_ERROR; goto exit; } + +#if DEBUG_ON + printf("fh->f_num_of_io_entries=%d\n", fh->f_num_of_io_entries); + printf("[%d]: fh->f_io_array[0].offset = %ld .size = %ld\n", fh->f_rank, (long)fh->f_io_array[0].offset, + fh->f_io_array[0].length); + if ( fh->f_num_of_io_entries > 1 ) + printf("[%d]: fh->f_io_array[1].offset = %ld .size = %ld\n", fh->f_rank, (long)fh->f_io_array[1].offset, + fh->f_io_array[1].length); + + + int n = fh->f_num_of_io_entries-1; + if ( fh->f_num_of_io_entries > 2 ) + printf("[%d]: fh->f_io_array[n].offset = %ld .size = %ld\n", fh->f_rank, (long)fh->f_io_array[n].offset, + fh->f_io_array[n].length); +#endif } + fh->f_flags &= ~OMPIO_COLLECTIVE_OP; free ( fh->f_io_array ); free ( aggr_data->prev_io_array); } @@ -800,7 +812,7 @@ } for(l=0;lprocs_per_group;l++){ - data->disp_index[l] = 1; + data->disp_index[l] = 0; if(data->max_disp_index[l] == 0) { data->blocklen_per_process[l] = (int *) calloc (INIT_LEN, sizeof(int)); @@ -879,8 +891,8 @@ if (data->bytes_remaining <= data->bytes_to_write_in_cycle) { /* The data fits completely into the block */ if (aggregator == rank) { - data->blocklen_per_process[data->n][data->disp_index[data->n] - 1] = data->bytes_remaining; - data->displs_per_process[data->n][data->disp_index[data->n] - 1] = + data->blocklen_per_process[data->n][data->disp_index[data->n]] = data->bytes_remaining; + data->displs_per_process[data->n][data->disp_index[data->n]] = (ptrdiff_t)data->global_iov_array[data->sorted[data->current_index]].iov_base + (data->global_iov_array[data->sorted[data->current_index]].iov_len - data->bytes_remaining); @@ -913,11 +925,12 @@ /* the remaining data from the previous cycle is larger than the data->bytes_to_write_in_cycle, so we have to segment again */ if (aggregator == rank) { - data->blocklen_per_process[data->n][data->disp_index[data->n] - 1] = data->bytes_to_write_in_cycle; - data->displs_per_process[data->n][data->disp_index[data->n] - 1] = + data->blocklen_per_process[data->n][data->disp_index[data->n]] = data->bytes_to_write_in_cycle; + data->displs_per_process[data->n][data->disp_index[data->n]] = (ptrdiff_t)data->global_iov_array[data->sorted[data->current_index]].iov_base + (data->global_iov_array[data->sorted[data->current_index]].iov_len - data->bytes_remaining); + data->disp_index[data->n] += 1; } if (data->procs_in_group[data->n] == rank) { @@ -934,9 +947,10 @@ (MPI_Aint) data->global_iov_array[data->sorted[data->current_index]].iov_len) { /* This entry has more data than we can sendin one cycle */ if (aggregator == rank) { - data->blocklen_per_process[data->n][data->disp_index[data->n] - 1] = data->bytes_to_write_in_cycle; - data->displs_per_process[data->n][data->disp_index[data->n] - 1] = + data->blocklen_per_process[data->n][data->disp_index[data->n]] = data->bytes_to_write_in_cycle; + data->displs_per_process[data->n][data->disp_index[data->n]] = (ptrdiff_t)data->global_iov_array[data->sorted[data->current_index]].iov_base ; + data->disp_index[data->n] += 1; } if (data->procs_in_group[data->n] == rank) { bytes_sent += data->bytes_to_write_in_cycle; @@ -950,9 +964,9 @@ else { /* Next data entry is less than data->bytes_to_write_in_cycle */ if (aggregator == rank) { - data->blocklen_per_process[data->n][data->disp_index[data->n] - 1] = + data->blocklen_per_process[data->n][data->disp_index[data->n]] = data->global_iov_array[data->sorted[data->current_index]].iov_len; - data->displs_per_process[data->n][data->disp_index[data->n] - 1] = (ptrdiff_t) + data->displs_per_process[data->n][data->disp_index[data->n]] = (ptrdiff_t) data->global_iov_array[data->sorted[data->current_index]].iov_base; data->disp_index[data->n] += 1; @@ -1592,14 +1606,15 @@ int mca_fcoll_dynamic_gen2_split_iov_array ( ompio_file_t *fh, mca_common_ompio_io_array_t *io_array, int num_entries, - int *ret_array_pos, int *ret_pos, int chunk_size ) + int *ret_array_pos, int *ret_pos ) { int array_pos = *ret_array_pos; int pos = *ret_pos; size_t bytes_written = 0; - size_t bytes_to_write = chunk_size; - + off_t baseaddr = ((off_t)io_array[array_pos].offset + pos) - (((off_t)io_array[array_pos].offset + pos) % (off_t)fh->f_stripe_size); + off_t endaddr = baseaddr + fh->f_stripe_size; + if ( 0 == array_pos && 0 == pos ) { fh->f_io_array = (mca_common_ompio_io_array_t *) malloc ( num_entries * sizeof(mca_common_ompio_io_array_t)); if ( NULL == fh->f_io_array ){ @@ -1609,32 +1624,28 @@ } int i=0; - while (bytes_to_write > 0 ) { - fh->f_io_array[i].memory_address = &(((char *)io_array[array_pos].memory_address)[pos]); - fh->f_io_array[i].offset = &(((char *)io_array[array_pos].offset)[pos]); + do { + fh->f_io_array[i].memory_address = (char *)io_array[array_pos].memory_address + pos; + fh->f_io_array[i].offset = (char *)io_array[array_pos].offset + pos; - if ( (io_array[array_pos].length - pos ) >= bytes_to_write ) { - fh->f_io_array[i].length = bytes_to_write; + off_t length = io_array[array_pos].length - pos; + + if ( ( (off_t)fh->f_io_array[i].offset + length) < endaddr ) { + fh->f_io_array[i].length = length; } else { - fh->f_io_array[i].length = io_array[array_pos].length - pos; + fh->f_io_array[i].length = endaddr - (size_t)fh->f_io_array[i].offset; } - + pos += fh->f_io_array[i].length; bytes_written += fh->f_io_array[i].length; - bytes_to_write-= fh->f_io_array[i].length; i++; if ( pos == (int)io_array[array_pos].length ) { pos = 0; - if ((array_pos + 1) < num_entries) { - array_pos++; - } - else { - break; - } + array_pos++; } - } + } while ( (array_pos < num_entries) && (((off_t)io_array[array_pos].offset+pos ) < endaddr) ); fh->f_num_of_io_entries = i; *ret_array_pos = array_pos; diff -Nru openmpi-4.0.3/ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2.h openmpi-4.1.4/ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2.h --- openmpi-4.0.3/ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2.h 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2008-2016 University of Houston. All rights reserved. + * Copyright (c) 2008-2020 University of Houston. All rights reserved. * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -36,7 +36,6 @@ extern int mca_fcoll_dynamic_gen2_priority; extern int mca_fcoll_dynamic_gen2_num_groups; -extern int mca_fcoll_dynamic_gen2_write_chunksize; OMPI_MODULE_DECLSPEC extern mca_fcoll_base_component_2_0_0_t mca_fcoll_dynamic_gen2_component; diff -Nru openmpi-4.0.3/ompi/mca/fcoll/dynamic_gen2/Makefile.in openmpi-4.1.4/ompi/mca/fcoll/dynamic_gen2/Makefile.in --- openmpi-4.0.3/ompi/mca/fcoll/dynamic_gen2/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fcoll/dynamic_gen2/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -666,6 +679,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1486,6 +1502,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1518,9 +1538,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1541,6 +1570,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1625,9 +1655,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1688,6 +1715,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1701,6 +1731,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/fcoll/individual/Makefile.in openmpi-4.1.4/ompi/mca/fcoll/individual/Makefile.in --- openmpi-4.0.3/ompi/mca/fcoll/individual/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fcoll/individual/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -666,6 +679,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1486,6 +1502,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1518,9 +1538,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1541,6 +1570,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1625,9 +1655,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1688,6 +1715,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1701,6 +1731,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/fcoll/Makefile.in openmpi-4.1.4/ompi/mca/fcoll/Makefile.in --- openmpi-4.0.3/ompi/mca/fcoll/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fcoll/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -138,6 +138,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -145,6 +147,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -168,6 +171,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -270,6 +274,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -277,6 +282,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -357,6 +363,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -379,9 +386,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -391,6 +402,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -411,6 +423,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -671,6 +684,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1491,6 +1507,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1523,9 +1543,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1546,6 +1575,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1630,9 +1660,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1693,6 +1720,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1706,6 +1736,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/fcoll/two_phase/fcoll_two_phase_file_read_all.c openmpi-4.1.4/ompi/mca/fcoll/two_phase/fcoll_two_phase_file_read_all.c --- openmpi-4.0.3/ompi/mca/fcoll/two_phase/fcoll_two_phase_file_read_all.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fcoll/two_phase/fcoll_two_phase_file_read_all.c 2022-05-29 09:51:40.000000000 +0000 @@ -155,6 +155,7 @@ count, buf, &max_data, + fh->f_mem_convertor, &temp_iov, &iov_count); if (OMPI_SUCCESS != ret ){ diff -Nru openmpi-4.0.3/ompi/mca/fcoll/two_phase/fcoll_two_phase_file_write_all.c openmpi-4.1.4/ompi/mca/fcoll/two_phase/fcoll_two_phase_file_write_all.c --- openmpi-4.0.3/ompi/mca/fcoll/two_phase/fcoll_two_phase_file_write_all.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fcoll/two_phase/fcoll_two_phase_file_write_all.c 2022-05-29 09:51:40.000000000 +0000 @@ -185,6 +185,7 @@ count, buf, &max_data, + fh->f_mem_convertor, &temp_iov, &iov_count); if (OMPI_SUCCESS != ret ){ diff -Nru openmpi-4.0.3/ompi/mca/fcoll/two_phase/Makefile.in openmpi-4.1.4/ompi/mca/fcoll/two_phase/Makefile.in --- openmpi-4.0.3/ompi/mca/fcoll/two_phase/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fcoll/two_phase/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -665,6 +678,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1485,6 +1501,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1517,9 +1537,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1540,6 +1569,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1624,9 +1654,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1687,6 +1714,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1700,6 +1730,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/fcoll/vulcan/fcoll_vulcan_file_read_all.c openmpi-4.1.4/ompi/mca/fcoll/vulcan/fcoll_vulcan_file_read_all.c --- openmpi-4.0.3/ompi/mca/fcoll/vulcan/fcoll_vulcan_file_read_all.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fcoll/vulcan/fcoll_vulcan_file_read_all.c 2022-05-29 09:51:40.000000000 +0000 @@ -129,6 +129,7 @@ count, buf, &max_data, + fh->f_mem_convertor, &decoded_iov, &iov_count); if (OMPI_SUCCESS != ret){ diff -Nru openmpi-4.0.3/ompi/mca/fcoll/vulcan/fcoll_vulcan_file_write_all.c openmpi-4.1.4/ompi/mca/fcoll/vulcan/fcoll_vulcan_file_write_all.c --- openmpi-4.0.3/ompi/mca/fcoll/vulcan/fcoll_vulcan_file_write_all.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fcoll/vulcan/fcoll_vulcan_file_write_all.c 2022-05-29 09:51:40.000000000 +0000 @@ -185,6 +185,7 @@ count, buf, &max_data, + fh->f_mem_convertor, &decoded_iov, &iov_count); if (OMPI_SUCCESS != ret ){ @@ -770,7 +771,9 @@ } } else { + fh->f_flags |= OMPIO_COLLECTIVE_OP; ret_temp = fh->f_fbtl->fbtl_pwritev(fh); + fh->f_flags &= ~OMPIO_COLLECTIVE_OP; if(0 > ret_temp) { opal_output (1, "vulcan_write_all: fbtl_pwritev failed\n"); ret = ret_temp; @@ -835,7 +838,7 @@ for(l=0;lprocs_per_group;l++){ - data->disp_index[l] = 1; + data->disp_index[l] = 0; if ( data->max_disp_index[l] == 0 ) { data->blocklen_per_process[l] = (int *) calloc (INIT_LEN, sizeof(int)); @@ -914,8 +917,8 @@ if (data->bytes_remaining <= data->bytes_to_write_in_cycle) { /* The data fits completely into the block */ if (aggregator == rank) { - data->blocklen_per_process[data->n][data->disp_index[data->n] - 1] = data->bytes_remaining; - data->displs_per_process[data->n][data->disp_index[data->n] - 1] = + data->blocklen_per_process[data->n][data->disp_index[data->n]] = data->bytes_remaining; + data->displs_per_process[data->n][data->disp_index[data->n]] = (ptrdiff_t)data->global_iov_array[data->sorted[data->current_index]].iov_base + (data->global_iov_array[data->sorted[data->current_index]].iov_len - data->bytes_remaining); @@ -949,11 +952,12 @@ /* the remaining data from the previous cycle is larger than the data->bytes_to_write_in_cycle, so we have to segment again */ if (aggregator == rank) { - data->blocklen_per_process[data->n][data->disp_index[data->n] - 1] = data->bytes_to_write_in_cycle; - data->displs_per_process[data->n][data->disp_index[data->n] - 1] = + data->blocklen_per_process[data->n][data->disp_index[data->n]] = data->bytes_to_write_in_cycle; + data->displs_per_process[data->n][data->disp_index[data->n]] = (ptrdiff_t)data->global_iov_array[data->sorted[data->current_index]].iov_base + (data->global_iov_array[data->sorted[data->current_index]].iov_len - data->bytes_remaining); + data->disp_index[data->n] += 1; } if (data->procs_in_group[data->n] == rank) { @@ -970,9 +974,10 @@ (MPI_Aint) data->global_iov_array[data->sorted[data->current_index]].iov_len) { /* This entry has more data than we can sendin one cycle */ if (aggregator == rank) { - data->blocklen_per_process[data->n][data->disp_index[data->n] - 1] = data->bytes_to_write_in_cycle; - data->displs_per_process[data->n][data->disp_index[data->n] - 1] = + data->blocklen_per_process[data->n][data->disp_index[data->n]] = data->bytes_to_write_in_cycle; + data->displs_per_process[data->n][data->disp_index[data->n]] = (ptrdiff_t)data->global_iov_array[data->sorted[data->current_index]].iov_base ; + data->disp_index[data->n] += 1; } if (data->procs_in_group[data->n] == rank) { bytes_sent += data->bytes_to_write_in_cycle; @@ -986,9 +991,9 @@ else { /* Next data entry is less than data->bytes_to_write_in_cycle */ if (aggregator == rank) { - data->blocklen_per_process[data->n][data->disp_index[data->n] - 1] = + data->blocklen_per_process[data->n][data->disp_index[data->n]] = data->global_iov_array[data->sorted[data->current_index]].iov_len; - data->displs_per_process[data->n][data->disp_index[data->n] - 1] = (ptrdiff_t) + data->displs_per_process[data->n][data->disp_index[data->n]] = (ptrdiff_t) data->global_iov_array[data->sorted[data->current_index]].iov_base; data->disp_index[data->n] += 1; diff -Nru openmpi-4.0.3/ompi/mca/fcoll/vulcan/Makefile.in openmpi-4.1.4/ompi/mca/fcoll/vulcan/Makefile.in --- openmpi-4.0.3/ompi/mca/fcoll/vulcan/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fcoll/vulcan/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -661,6 +674,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1481,6 +1497,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1513,9 +1533,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1536,6 +1565,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1620,9 +1650,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1683,6 +1710,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1696,6 +1726,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/fs/base/base.h openmpi-4.1.4/ompi/mca/fs/base/base.h --- openmpi-4.0.3/ompi/mca/fs/base/base.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/base/base.h 2022-05-29 09:51:40.000000000 +0000 @@ -52,6 +52,9 @@ OMPI_DECLSPEC int mca_fs_base_get_param (struct ompio_file_t *file, int keyval); OMPI_DECLSPEC void mca_fs_base_get_parent_dir (char *filename, char **dirnamep); OMPI_DECLSPEC int mca_fs_base_get_fstype(char *fname); +OMPI_DECLSPEC int mca_fs_base_get_mpi_err(int errno_val); +OMPI_DECLSPEC int mca_fs_base_get_file_perm(ompio_file_t *fh); +OMPI_DECLSPEC int mca_fs_base_get_file_amode(int rank, int access_mode); OMPI_DECLSPEC int mca_fs_base_file_delete (char* file_name, struct opal_info_t *info); OMPI_DECLSPEC int mca_fs_base_file_sync (ompio_file_t *fh); diff -Nru openmpi-4.0.3/ompi/mca/fs/base/fs_base_get_parent_dir.c openmpi-4.1.4/ompi/mca/fs/base/fs_base_get_parent_dir.c --- openmpi-4.0.3/ompi/mca/fs/base/fs_base_get_parent_dir.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/base/fs_base_get_parent_dir.c 2022-05-29 09:51:40.000000000 +0000 @@ -117,8 +117,93 @@ else if ( 0 == strncasecmp(fstype, "pvfs2", sizeof("pvfs2"))) { ompio_type = PVFS2; } + else if ( 0 == strncasecmp(fstype, "ime", sizeof("ime"))) { + ompio_type = IME; + } + else if ( 0 == strncasecmp(fstype, "gpfs", sizeof("gpfs"))) { + ompio_type = GPFS; + } free (fstype); return ompio_type; } +int mca_fs_base_get_mpi_err(int errno_val) +{ + int ret; + switch (errno_val) { + case EACCES: + ret = MPI_ERR_ACCESS; + break; + case ENAMETOOLONG: + case EISDIR: + ret = MPI_ERR_BAD_FILE; + break; + case ENOENT: + ret = MPI_ERR_NO_SUCH_FILE; + break; + case EROFS: + ret = MPI_ERR_READ_ONLY; + break; + case EEXIST: + ret = MPI_ERR_FILE_EXISTS; + break; + case ENOSPC: + ret = MPI_ERR_NO_SPACE; + break; + case EDQUOT: + ret = MPI_ERR_QUOTA; + break; + case ETXTBSY: + ret = MPI_ERR_FILE_IN_USE; + break; + case EBADF: + ret = MPI_ERR_FILE; + break; + default: + ret = MPI_ERR_OTHER; + break; + } + return ret; +} + +int mca_fs_base_get_file_perm(ompio_file_t *fh) +{ + int old_mask; + int perm = fh->f_perm; + + if (OMPIO_PERM_NULL == perm) { + old_mask = umask(022); + umask(old_mask); + perm = old_mask ^ 0666; + } + return perm; +} + +int mca_fs_base_get_file_amode(int rank, int access_mode) +{ + int amode = 0; + + if (access_mode & MPI_MODE_RDONLY) { + amode = amode | O_RDONLY; + } + if (access_mode & MPI_MODE_WRONLY) { + amode = amode | O_WRONLY; + } + if (access_mode & MPI_MODE_RDWR) { + amode = amode | O_RDWR; + } + + /* MODE_CREATE and MODE_EXCL should only be set by one process */ + if(OMPIO_ROOT == rank) { + if (access_mode & MPI_MODE_CREATE) { + amode = amode | O_CREAT; + } + if (access_mode & MPI_MODE_EXCL) { + amode = amode | O_EXCL; + } + } + + return amode; +} + diff -Nru openmpi-4.0.3/ompi/mca/fs/gpfs/configure.m4 openmpi-4.1.4/ompi/mca/fs/gpfs/configure.m4 --- openmpi-4.0.3/ompi/mca/fs/gpfs/configure.m4 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/gpfs/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,45 @@ +# -*- shell-script -*- +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2008-2012 University of Houston. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + + +# MCA_fs_gpfs_CONFIG(action-if-can-compile, +# [action-if-cant-compile]) +# ------------------------------------------------ +AC_DEFUN([MCA_ompi_fs_gpfs_CONFIG],[ + AC_CONFIG_FILES([ompi/mca/fs/gpfs/Makefile]) + + OMPI_CHECK_GPFS([fs_gpfs], + [fs_gpfs_happy="yes"], + [fs_gpfs_happy="no"]) + + AS_IF([test "$fs_gpfs_happy" = "yes"], + [fs_gpfs_WRAPPER_EXTRA_LDFLAGS="$fs_gpfs_LDFLAGS" + fs_gpfs_WRAPPER_EXTRA_LIBS="$fs_gpfs_LIBS" + $1], + [$2]) + + OPAL_SUMMARY_ADD([[OMPIO File Systems]],[[IBM Spectrum Scale/GPFS]],[$1],[$fs_gpfs_happy]) + + # substitute in the things needed to build gpfs + AC_SUBST([fs_gpfs_CPPFLAGS]) + AC_SUBST([fs_gpfs_LDFLAGS]) + AC_SUBST([fs_gpfs_LIBS]) +])dnl diff -Nru openmpi-4.0.3/ompi/mca/fs/gpfs/fs_gpfs.c openmpi-4.1.4/ompi/mca/fs/gpfs/fs_gpfs.c --- openmpi-4.0.3/ompi/mca/fs/gpfs/fs_gpfs.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/gpfs/fs_gpfs.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,142 @@ +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2017 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2008-2018 University of Houston. All rights reserved. + * Copyright (c) 2018 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + * + * These symbols are in a file by themselves to provide nice linker + * semantics. Since linkers generally pull in symbols by object fules, + * keeping these symbols as the only symbols in this file prevents + * utility programs such as "ompi_info" from having to import entire + * modules just to query their version and parameters + */ + +#include "ompi_config.h" +#include "mpi.h" +#include "ompi/mca/fs/fs.h" +#include "ompi/mca/fs/base/base.h" +#include "ompi/mca/fs/gpfs/fs_gpfs.h" + +#ifdef HAVE_SYS_STATFS_H +#include /* or */ +#endif +#ifdef HAVE_SYS_PARAM_H +#include +#endif +#ifdef HAVE_SYS_MOUNT_H +#include +#endif +#ifdef HAVE_SYS_STAT_H +#include +#endif + +#include + +/* + * ******************************************************************* + * ************************ actions structure ************************ + * ******************************************************************* + */ +static mca_fs_base_module_1_0_0_t gpfs = { + mca_fs_gpfs_module_init, /* initalise after being selected */ + mca_fs_gpfs_module_finalize, /* close a module on a communicator */ + mca_fs_gpfs_file_open, + mca_fs_base_file_close, + mca_fs_base_file_delete, + mca_fs_base_file_set_size, + mca_fs_base_file_get_size, + mca_fs_base_file_sync +}; +/* + * ******************************************************************* + * ************************* structure ends ************************** + * ******************************************************************* + */ + +int mca_fs_gpfs_component_init_query(bool enable_progress_threads, + bool enable_mpi_threads) +{ + /* Nothing to do */ + + return OMPI_SUCCESS; +} + +struct mca_fs_base_module_1_0_0_t * +mca_fs_gpfs_component_file_query (ompio_file_t *fh, int *priority) +{ + char *tmp; + + /* The code in this function is based on the ADIO FS selection in ROMIO + * Copyright (C) 1997 University of Chicago. + * See COPYRIGHT notice in top-level directory. + */ + + *priority = mca_fs_gpfs_priority; + + tmp = strchr (fh->f_filename, ':'); + if (!tmp) { + if (OMPIO_ROOT == fh->f_rank) { + fh->f_fstype = mca_fs_base_get_fstype ( (char *) fh->f_filename ); + } + if (MPI_COMM_NULL != fh->f_comm) { + fh->f_comm->c_coll->coll_bcast (&(fh->f_fstype), + 1, + MPI_INT, + OMPIO_ROOT, + fh->f_comm, + fh->f_comm->c_coll->coll_bcast_module); + } + } + else { + if (!strncmp(fh->f_filename, "gpfs:", 5) || + !strncmp(fh->f_filename, "GPFS:", 5)) { + fh->f_fstype = GPFS; + } + } + + if (GPFS == fh->f_fstype) { + if (*priority < 50) { + *priority = 50; + return &gpfs; + } + } + + return NULL; +} + +int mca_fs_gpfs_component_file_unquery (ompio_file_t *file) +{ + /* This function might be needed for some purposes later. for now it + * does not have anything to do since there are no steps which need + * to be undone if this module is not selected */ + + return OMPI_SUCCESS; +} + +int mca_fs_gpfs_module_init (ompio_file_t *file) +{ + /* Make sure the file type is not overwritten by the last queried + * component */ + file->f_fstype = GPFS; + return OMPI_SUCCESS; +} + + +int mca_fs_gpfs_module_finalize (ompio_file_t *file) +{ + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/fs/gpfs/fs_gpfs_component.c openmpi-4.1.4/ompi/mca/fs/gpfs/fs_gpfs_component.c --- openmpi-4.0.3/ompi/mca/fs/gpfs/fs_gpfs_component.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/gpfs/fs_gpfs_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,78 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2005 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2008-2011 University of Houston. All rights reserved. + * Copyright (c) 2015 Los Alamos National Security, LLC. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + * + * These symbols are in a file by themselves to provide nice linker + * semantics. Since linkers generally pull in symbols by object + * files, keeping these symbols as the only symbols in this file + * prevents utility programs such as "ompi_info" from having to import + * entire components just to query their version and parameters. + */ + +#include "ompi_config.h" +#include "fs_gpfs.h" +#include "mpi.h" + +/* + * Public string showing the fs gpfs component version number + */ +const char *mca_fs_gpfs_component_version_string = + "OMPI/MPI gpfs FS MCA component version " OMPI_VERSION; + +static int gpfs_register(void); + +int mca_fs_gpfs_priority = 20; +/* + * Instantiate the public struct with all of our public information + * and pointers to our public functions in it + */ +mca_fs_base_component_2_0_0_t mca_fs_gpfs_component = { + + /* First, the mca_component_t struct containing meta information + about the component itself */ + + .fsm_version = { + MCA_FS_BASE_VERSION_2_0_0, + + /* Component name and version */ + .mca_component_name = "gpfs", + MCA_BASE_MAKE_VERSION(component, OMPI_MAJOR_VERSION, OMPI_MINOR_VERSION, + OMPI_RELEASE_VERSION), + .mca_register_component_params = gpfs_register, + }, + .fsm_data = { + /* This component is checkpointable */ + MCA_BASE_METADATA_PARAM_CHECKPOINT + }, + .fsm_init_query = mca_fs_gpfs_component_init_query, /* get thread level */ + .fsm_file_query = mca_fs_gpfs_component_file_query, /* get priority and actions */ + .fsm_file_unquery = mca_fs_gpfs_component_file_unquery, /* undo what was done by previous function */ +}; + +static int gpfs_register(void) +{ + mca_fs_gpfs_priority = 20; + (void) mca_base_component_var_register(&mca_fs_gpfs_component.fsm_version, + "priority", "Priority of the gpfs fs component", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, &mca_fs_gpfs_priority); + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/fs/gpfs/fs_gpfs_file_get_info.c openmpi-4.1.4/ompi/mca/fs/gpfs/fs_gpfs_file_get_info.c --- openmpi-4.0.3/ompi/mca/fs/gpfs/fs_gpfs_file_get_info.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/gpfs/fs_gpfs_file_get_info.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2011 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2015 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2008-2011 University of Houston. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" +#include "fs_gpfs.h" +#include "mpi.h" +#include "ompi/constants.h" +#include "ompi/mca/fs/fs.h" + +#include +#include + +#include +#include +#include +#include + +/* + * file_get_info_gpfs + * + * Function: - get_info of a file + * Accepts: - same arguments as MPI_File_get_info() + * Returns: - new info object + */ + +int mca_fs_gpfs_file_get_info(ompio_file_t *fh, + ompi_info_t **info_used) +{ + int ret = OMPI_SUCCESS; + + *info_used = OBJ_NEW(ompi_info_t); + if (NULL == *info_used) { + return OMPI_ERR_OUT_OF_RESOURCE; + } + + ret = ompi_info_dup ((ompi_info_t *)fh->f_info, info_used); + + return ret; +} diff -Nru openmpi-4.0.3/ompi/mca/fs/gpfs/fs_gpfs_file_open.c openmpi-4.1.4/ompi/mca/fs/gpfs/fs_gpfs_file_open.c --- openmpi-4.0.3/ompi/mca/fs/gpfs/fs_gpfs_file_open.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/gpfs/fs_gpfs_file_open.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2005 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2015 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2008-2012 University of Houston. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/communicator/communicator.h" +#include "ompi/info/info.h" +#include "ompi/file/file.h" +#include "ompi/mca/fs/fs.h" +#include "ompi/mca/fs/base/base.h" +#include "ompi/mca/fcoll/fcoll.h" +#include "ompi/mca/fcoll/base/base.h" +#include "ompi/mca/fbtl/fbtl.h" +#include "ompi/mca/fbtl/base/base.h" +#include "fs_gpfs.h" + +#include +#include + +#include +#include +#include +#include +#include + +int +mca_fs_gpfs_file_open (struct ompi_communicator_t *comm, + const char* filename, + int access_mode, + struct opal_info_t *info, + ompio_file_t *fh) +{ + int perm, amode; + int ret = OMPI_SUCCESS; + + perm = mca_fs_base_get_file_perm(fh); + amode = mca_fs_base_get_file_amode(fh->f_rank, access_mode); + + if(OMPIO_ROOT == fh->f_rank) { + fh->fd = open (filename, amode, perm); + if ( 0 > fh->fd ) { + ret = mca_fs_base_get_mpi_err(errno); + } + } + + comm->c_coll->coll_bcast ( &ret, 1, MPI_INT, 0, comm, comm->c_coll->coll_bcast_module); + if ( OMPI_SUCCESS != ret ) { + fh->fd = -1; + return ret; + } + + if (OMPIO_ROOT != fh->f_rank) { + fh->fd = open (filename, amode, perm); + if ( 0 > fh->fd) { + return mca_fs_base_get_mpi_err(errno); + } + } + + fh->f_amode=access_mode; + mca_fs_gpfs_file_set_info(fh, (struct ompi_info_t *) info); + + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/fs/gpfs/fs_gpfs_file_set_info.c openmpi-4.1.4/ompi/mca/fs/gpfs/fs_gpfs_file_set_info.c --- openmpi-4.0.3/ompi/mca/fs/gpfs/fs_gpfs_file_set_info.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/gpfs/fs_gpfs_file_set_info.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,594 @@ +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2011 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2015 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2008-2011 University of Houston. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" +#include "fs_gpfs.h" +#include "mpi.h" +#include "ompi/constants.h" +#include "ompi/mca/fs/fs.h" +#include "ompi/mca/fs/base/base.h" + +#include +#include + +#include +#include +#include +#include + +/* + * file_set_info_gpfs + * + * Function: - set_info of a file + * Accepts: - same arguments as MPI_File_set_info() + * Returns: - Success if info is set + */ + +int mca_fs_gpfs_file_set_info(ompio_file_t *fh, struct ompi_info_t *info) +{ + int rc = 0; + int flag; + int valueLen = MPI_MAX_INFO_VAL; + char value[MPI_MAX_INFO_VAL + 1]; + char gpfsHintsKey[50]; + const char* split = ","; + char* token; + int ret = OMPI_SUCCESS; + ompi_info_t *info_selected; + info_selected = info; + gpfs_file_t gpfs_file_handle = fh->fd; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsAccessRange_t gpfsAccessRange; + } gpfs_hint_AccessRange; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsFreeRange_t gpfsFreeRange; + } gpfs_hint_FreeRange; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsClearFileCache_t gpfsClearFileCache; + } gpfs_hint_ClearFileCache; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsCancelHints_t gpfsCancelHints; + } gpfs_hint_CancelHints; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsSetReplication_t gpfsSetReplication; + } gpfs_hint_SetReplication; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsByteRange_t gpfsByteRange; + } gpfs_hint_ByteRange; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsRestripeData_t gpfsRestripeData; + } gpfs_hint_RestripeData; + + //CN: TODO: Implement the following currently unused GPFS hints + /* + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsRestripeRange_t gpfsRestripeRange; + } gpfs_hint_RestripeRange; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsGetReplication_t gpfsGetReplication; + } gpfs_hint_GetReplication; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsGetStoragePool_t gpfsGetStoragePool; + } gpfs_hint_GetStoragePool; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsGetFilesetName_t gpfsGetFilesetName; + } gpfs_hint_GetFilesetName; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsGetSnapshotName_t gpfsGetSnapshotName; + } gpfs_hint_GetSnapshotName; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsSetImmutable_t gpfsSetImmutable; + } gpfs_hint_SetImmutable; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsGetImmutable_t gpfsGetImmutable; + } gpfs_hint_GetImmutable; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsSetExpTime_t gpfsSetExpTime; + } gpfs_hint_SetExpTime; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsGetExpTime_t gpfsGetExpTime; + } gpfs_hint_GetExpTime; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsSetAppendOnly_t gpfsSetAppendOnly; + } gpfs_hint_SetAppendOnly; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsGetAppendOnly_t gpfsGetAppendOnly; + } gpfs_hint_GetAppendOnly; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsSetStoragePool_t gpfsSetStoragePool; + } gpfs_hint_SetStoragePool; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsRangeArray_t gpfsRangeArray; + } gpfs_hint_RangeArray; + + struct { + gpfsFcntlHeader_t gpfsFcntlHeader; + gpfsMultipleAccessRange_t gpfsMultipleAccessRange; + } gpfs_hint_MultipleAccessRange; + */ + + strcpy(gpfsHintsKey, "useSIOXLib"); + ompi_info_get(info_selected, gpfsHintsKey, valueLen, value, &flag); + if (flag) { + if(strcmp(value, "true") == 0) { + //using the SIOX lib and the I/O pattern selection + ret = mca_fs_gpfs_io_selection(fh, info, info_selected); + if (ret != OMPI_SUCCESS) + return ret; + } + else { + //CN: Is there something left to do here? + //TODO Sending the MPI_INFO to SIOX for knowledgebase + } + } + + //Setting GPFS Hint - gpfsAccessRange + strcpy(gpfsHintsKey, "gpfsAccessRange"); + ompi_info_get(info_selected, gpfsHintsKey, valueLen, value, &flag); + if (flag) { + opal_output(ompi_fs_base_framework.framework_output, + "GPFS Access Range is set: %s: %s\n", gpfsHintsKey, value); + gpfs_hint_AccessRange.gpfsFcntlHeader.totalLength = sizeof(gpfs_hint_AccessRange); + gpfs_hint_AccessRange.gpfsFcntlHeader.fcntlVersion = GPFS_FCNTL_CURRENT_VERSION; + gpfs_hint_AccessRange.gpfsFcntlHeader.fcntlReserved = 0; + + gpfs_hint_AccessRange.gpfsAccessRange.structLen = + sizeof(gpfs_hint_AccessRange.gpfsAccessRange); + gpfs_hint_AccessRange.gpfsAccessRange.structType = GPFS_ACCESS_RANGE; + token = strtok(value, split); + gpfs_hint_AccessRange.gpfsAccessRange.start = atol(token); + token = strtok(NULL, split); + gpfs_hint_AccessRange.gpfsAccessRange.length = atol(token); + token = strtok(NULL, split); + gpfs_hint_AccessRange.gpfsAccessRange.isWrite = atoi(token); + + rc = gpfs_fcntl(gpfs_file_handle, &gpfs_hint_AccessRange); + if (rc != 0) { + rc = errno; + opal_output(ompi_fs_base_framework.framework_output, + "gpfs_hint_AccessRange gpfs_fcntl(file handle: %d): Error number is %d, %s\n", + gpfs_file_handle, rc, strerror(rc)); + ret = OMPI_ERROR; + } + } + + //Setting GPFS Hint - gpfsFreeRange + strcpy(gpfsHintsKey, "gpfsFreeRange"); + ompi_info_get(info_selected, gpfsHintsKey, valueLen, value, &flag); + if (flag) { + opal_output(ompi_fs_base_framework.framework_output, + "GPFS Free Range is set: %s: %s\n", gpfsHintsKey, value); + gpfs_hint_FreeRange.gpfsFcntlHeader.totalLength = sizeof(gpfs_hint_FreeRange); + gpfs_hint_FreeRange.gpfsFcntlHeader.fcntlVersion = GPFS_FCNTL_CURRENT_VERSION; + gpfs_hint_FreeRange.gpfsFcntlHeader.fcntlReserved = 0; + + gpfs_hint_FreeRange.gpfsFreeRange.structLen = + sizeof(gpfs_hint_FreeRange.gpfsFreeRange); + gpfs_hint_FreeRange.gpfsFreeRange.structType = GPFS_FREE_RANGE; + token = strtok(value, split); + gpfs_hint_FreeRange.gpfsFreeRange.start = atol(token); + token = strtok(NULL, split); + gpfs_hint_FreeRange.gpfsFreeRange.length = atol(token); + + rc = gpfs_fcntl(gpfs_file_handle, &gpfs_hint_FreeRange); + if (rc != 0) { + rc = errno; + opal_output(ompi_fs_base_framework.framework_output, + "gpfs_hint_FreeRange gpfs_fcntl(file handle: %d): Error number is %d, %s\n", + gpfs_file_handle, rc, strerror(rc)); + ret = OMPI_ERROR; + } + } + + //CN: TODO + //Setting GPFS Hint - gpfsRangeArray + //Setting GPFS Hint - gpfsMultipleAccessRange + + //Setting GPFS Hint - gpfsClearFileCache + strcpy(gpfsHintsKey, "gpfsClearFileCache"); + ompi_info_get(info_selected, gpfsHintsKey, valueLen, value, &flag); + if (flag & (strcmp(value, "true") == 0)) { + opal_output(ompi_fs_base_framework.framework_output, + "GPFS Clear File Cache is set: %s: %s\n", gpfsHintsKey, value); + gpfs_hint_ClearFileCache.gpfsFcntlHeader.totalLength = sizeof(gpfs_hint_ClearFileCache); + gpfs_hint_ClearFileCache.gpfsFcntlHeader.fcntlVersion = GPFS_FCNTL_CURRENT_VERSION; + gpfs_hint_ClearFileCache.gpfsFcntlHeader.fcntlReserved = 0; + + gpfs_hint_ClearFileCache.gpfsClearFileCache.structLen = + sizeof(gpfs_hint_ClearFileCache.gpfsClearFileCache); + gpfs_hint_ClearFileCache.gpfsClearFileCache.structType = GPFS_CLEAR_FILE_CACHE; + + rc = gpfs_fcntl(gpfs_file_handle, &gpfs_hint_ClearFileCache); + if (rc != 0) { + rc = errno; + opal_output(ompi_fs_base_framework.framework_output, + "gpfs_hint_ClearFileCache gpfs_fcntl(file handle: %d): Error number is %d, %s\n", + gpfs_file_handle, rc, strerror(rc)); + ret = OMPI_ERROR; + } + } + + //Setting GPFS Hint - gpfsCancelHints + strcpy(gpfsHintsKey, "gpfsCancelHints"); + ompi_info_get(info_selected, gpfsHintsKey, valueLen, value, &flag); + if (flag & (strcmp(value, "true") == 0)) { + opal_output(ompi_fs_base_framework.framework_output, + "GPFS Cancel Hints is set: %s: %s\n", gpfsHintsKey, value); + gpfs_hint_CancelHints.gpfsFcntlHeader.totalLength = sizeof(gpfs_hint_CancelHints); + gpfs_hint_CancelHints.gpfsFcntlHeader.fcntlVersion = GPFS_FCNTL_CURRENT_VERSION; + gpfs_hint_CancelHints.gpfsFcntlHeader.fcntlReserved = 0; + + gpfs_hint_CancelHints.gpfsCancelHints.structLen = + sizeof(gpfs_hint_CancelHints.gpfsCancelHints); + gpfs_hint_CancelHints.gpfsCancelHints.structType = GPFS_CANCEL_HINTS; + + rc = gpfs_fcntl(gpfs_file_handle, &gpfs_hint_CancelHints); + if (rc != 0) { + rc = errno; + opal_output(ompi_fs_base_framework.framework_output, + "gpfs_hint_CancelHints gpfs_fcntl(file handle: %d): Error number is %d, %s\n", + gpfs_file_handle, rc, strerror(rc)); + ret = OMPI_ERROR; + } + } + + //Setting GPFS Hint - gpfsSetReplication + strcpy(gpfsHintsKey, "gpfsSetReplication"); + ompi_info_get(info_selected, gpfsHintsKey, valueLen, value, &flag); + if (flag) { + opal_output(ompi_fs_base_framework.framework_output, + "GPFS Set Replication is set: %s: %s\n", gpfsHintsKey, value); + gpfs_hint_SetReplication.gpfsFcntlHeader.totalLength = sizeof(gpfs_hint_SetReplication); + gpfs_hint_SetReplication.gpfsFcntlHeader.fcntlVersion = GPFS_FCNTL_CURRENT_VERSION; + gpfs_hint_SetReplication.gpfsFcntlHeader.fcntlReserved = 0; + + gpfs_hint_SetReplication.gpfsSetReplication.structLen = + sizeof(gpfs_hint_SetReplication.gpfsSetReplication); + gpfs_hint_SetReplication.gpfsSetReplication.structType = GPFS_FCNTL_SET_REPLICATION; + token = strtok(value, split); + gpfs_hint_SetReplication.gpfsSetReplication.metadataReplicas = atoi(token); + gpfs_hint_SetReplication.gpfsSetReplication.maxMetadataReplicas = atoi(token); + gpfs_hint_SetReplication.gpfsSetReplication.dataReplicas = atoi(token); + gpfs_hint_SetReplication.gpfsSetReplication.maxDataReplicas = atoi(token); + gpfs_hint_SetReplication.gpfsSetReplication.reserved = 0; + + rc = gpfs_fcntl(gpfs_file_handle, &gpfs_hint_SetReplication); + if (rc != 0) { + rc = errno; + opal_output(ompi_fs_base_framework.framework_output, + "gpfs_hint_SetReplication gpfs_fcntl(file handle: %d): Error number is %d, %s\n", + gpfs_file_handle, rc, strerror(rc)); + ret = OMPI_ERROR; + } + } + + //CN: TODO + //Setting GPFS Hint - gpfsSetStoragePool + + //Setting GPFS Hint - gpfsByteRange + strcpy(gpfsHintsKey, "gpfsByteRange"); + ompi_info_get(info_selected, gpfsHintsKey, valueLen, value, &flag); + if (flag) { + opal_output(ompi_fs_base_framework.framework_output, + "GPFS Byte Range is set: %s: %s\n", gpfsHintsKey, value); + gpfs_hint_ByteRange.gpfsFcntlHeader.totalLength = sizeof(gpfs_hint_ByteRange); + gpfs_hint_ByteRange.gpfsFcntlHeader.fcntlVersion = GPFS_FCNTL_CURRENT_VERSION; + gpfs_hint_ByteRange.gpfsFcntlHeader.fcntlReserved = 0; + + token = strtok(value, split); + gpfs_hint_ByteRange.gpfsByteRange.startOffset = atol(token); + token = strtok(value, split); + gpfs_hint_ByteRange.gpfsByteRange.numOfBlks = atol(token); + + rc = gpfs_fcntl(gpfs_file_handle, &gpfs_hint_ByteRange); + if (rc != 0) { + rc = errno; + opal_output(ompi_fs_base_framework.framework_output, + "gpfs_hint_ByteRange gpfs_fcntl(file handle: %d): Error number is %d, %s\n", + gpfs_file_handle, rc, strerror(rc)); + ret = OMPI_ERROR; + } + } + + //Setting GPFS Hint - gpfsRestripeData + strcpy(gpfsHintsKey, "gpfsRestripeData"); + ompi_info_get(info_selected, gpfsHintsKey, valueLen, value, &flag); + if (flag) { + opal_output(ompi_fs_base_framework.framework_output, + "GPFS Restripe Data is set: %s: %s\n", gpfsHintsKey, value); + gpfs_hint_RestripeData.gpfsFcntlHeader.totalLength = sizeof(gpfs_hint_RestripeData); + gpfs_hint_RestripeData.gpfsFcntlHeader.fcntlVersion = GPFS_FCNTL_CURRENT_VERSION; + gpfs_hint_RestripeData.gpfsFcntlHeader.fcntlReserved = 0; + + gpfs_hint_RestripeData.gpfsRestripeData.structLen = + sizeof(gpfs_hint_RestripeData.gpfsRestripeData); + gpfs_hint_RestripeData.gpfsRestripeData.structType = GPFS_FCNTL_RESTRIPE_DATA; + token = strtok(value, split); + gpfs_hint_RestripeData.gpfsRestripeData.options = atoi(token); + gpfs_hint_RestripeData.gpfsRestripeData.reserved1 = 0; + gpfs_hint_RestripeData.gpfsRestripeData.reserved2 = 0; + + rc = gpfs_fcntl(gpfs_file_handle, &gpfs_hint_RestripeData); + if (rc != 0) { + rc = errno; + opal_output(ompi_fs_base_framework.framework_output, + "gpfs_hint_RestripeData gpfs_fcntl(file handle: %d): Error number is %d, %s\n", + gpfs_file_handle, rc, strerror(rc)); + ret = OMPI_ERROR; + } + } + + //CN: TODO + //Setting GPFS Hint - gpfsRestripeRange + //Setting GPFS Hint - gpfsGetReplication + //Setting GPFS Hint - gpfsGetStoragePool + //Setting GPFS Hint - gpfsGetFilesetName + //Setting GPFS Hint - gpfsGetSnapshotName + //Setting GPFS Hint - gpfsSetImmutable + //Setting GPFS Hint - gpfsGetImmutable + //Setting GPFS Hint - gpfsSetExpTime + //Setting GPFS Hint - gpfsGetExpTime + //Setting GPFS Hint - gpfsSetAppendOnly + //Setting GPFS Hint - gpfsGetAppendOnly + + return ret; +} + +//CN: Will this function set info keys with siox prefix? +//CN: Where shall the knowledge of the optimization of GPFS hints go? Into Open MPI or into SIOX? +//CN: Never ever exit! Open MPI requires error propagation. +int mca_fs_gpfs_io_selection(ompio_file_t *fh, + struct ompi_info_t *info, struct ompi_info_t *info_selected) { + +//CN: configure option to enable/disable SIOX support? +#ifdef HAVE_C_SIOX_H + char value[MPI_MAX_INFO_VAL + 1], sioxHintsKey[50], optimal_value_str[MPI_MAX_INFO_VAL + 1]; + int rc = 0, valueLen = MPI_MAX_INFO_VAL, flag; + //START SIOX initialization + if (siox_gpfs_uiid == SIOX_INVALID_ID){ + siox_gpfs_uiid = siox_system_information_lookup_interface_id("MPI", + "Generic"); + if (!siox_component_is_registered(siox_gpfs_uiid)){ + fprintf(stderr, "SIOX Component MPI Generic is NOT registered!\n"); + siox_gpfs_component = siox_component_register(siox_gpfs_uiid, "GPFS"); + } + siox_gpfs_component_activity = siox_component_register_activity( + siox_gpfs_uiid, "MPI_File_open"); + } + //DEBUG: fprintf(stderr, "Beginning the SIOX_activity in mca_fs_gpfs_siox_io_selection()\n"); + + fh->f_siox_component = siox_gpfs_component; + fh->f_siox_activity = siox_activity_begin(siox_gpfs_component, + siox_gpfs_component_activity); + siox_activity_start(fh->f_siox_activity); + //END SIOX initialization + + info_selected = info; + + //DEBUG: fprintf(stderr, "Starting setting the SIOX_activity_attribute\n"); +//CN: Why we need all attributes as an dynamic array? +//CN: Only one element used at a time to be added to mpi_info object at a time + siox_attribute **siox_attribute_array; + //START Registering the SIOX activities' attributes + //Make sure how many SIOX activities' attributes should be registered + int i = 0; + int number_of_info = opal_list_get_size(&(info_selected->super)); + //DEBUG: fprintf(stderr, "The size of number_of_info is: %d\n", number_of_info); + +//CN: Why we need all attributes as an dynamic array? +//CN: Where is the corresponding free? + siox_attribute_array = (siox_attribute **) malloc( + sizeof(siox_attribute*) * number_of_info); + if (siox_attribute_array == 0) { + //DEBUG: fprintf(stderr, "assign siox_attribute_array fail, out of memory!\n"); + return OMPI_ERROR; + } + //END Registering the SIOX activities' attributes + // Setting the fileNameAttribute + siox_attribute_array[i] = siox_ontology_register_attribute("MPI", + "descriptor/filename", SIOX_STORAGE_STRING); + siox_activity_set_attribute(fh->f_siox_activity, + siox_attribute_array[i], fh->f_filename); + i++; + +//CN: Code duplication en mass (9 times same code block wich changing key!) +//CN: do this with a loop over a list of sioxHintsKeys + //START setting the siox activity attributes + strcpy(sioxHintsKey, "sioxAccessRange"); + ompi_info_get(info_selected, sioxHintsKey, valueLen, value, &flag); + if (flag) { + printf("Setting sioxAccessRange hints to SIOX activity attribute.\n"); + siox_attribute_array[i] = siox_ontology_register_attribute("GPFS", + "sioxAccessRange", SIOX_STORAGE_STRING); + siox_activity_set_attribute(fh->f_siox_activity, + siox_attribute_array[i], &value); + if(siox_suggest_optimal_value_for_str(fh->f_siox_component, siox_attribute_array[i], fh->f_siox_activity, optimal_value_str, valueLen)) { + printf("Getting optimal value of sioxAccessRange hints from SIOX: %s \n", optimal_value_str); + ompi_info_set(info_selected, sioxHintsKey, optimal_value_str); + } + i++; + } + + strcpy(sioxHintsKey, "sioxFreeRange"); + ompi_info_get(info_selected, sioxHintsKey, valueLen, value, &flag); + if (flag) { + //DEBUG: fprintf(stderr, "Setting sioxFreeRange hints to SIOX activity attribute.\n"); + siox_attribute_array[i] = siox_ontology_register_attribute("GPFS", + "sioxFreeRange", SIOX_STORAGE_STRING); + siox_activity_set_attribute(fh->f_siox_activity, + siox_attribute_array[i], &value); + if(siox_suggest_optimal_value_for_str(fh->f_siox_component, siox_attribute_array[i], fh->f_siox_activity, optimal_value_str, valueLen)) { + //DEBUG: fprintf(stderr, "Getting optimal value of sioxFreeRange hints from SIOX: %s \n", optimal_value_str); + ompi_info_set(info_selected, sioxHintsKey, optimal_value_str); + } + i++; + } + + strcpy(sioxHintsKey, "sioxClearFileCache"); + ompi_info_get(info_selected, sioxHintsKey, valueLen, value, &flag); + if (flag) { + //DEBUG: fprintf(stderr, "Setting sioxClearFileCache hints to SIOX activity attribute.\n"); + siox_attribute_array[i] = siox_ontology_register_attribute("GPFS", + "sioxClearFileCache", SIOX_STORAGE_STRING); + siox_activity_set_attribute(fh->f_siox_activity, + siox_attribute_array[i], &value); + if(siox_suggest_optimal_value_for_str(fh->f_siox_component, siox_attribute_array[i], fh->f_siox_activity, optimal_value_str, valueLen)) { + printf("Getting optimal value of sioxClearFileCache hints from SIOX: %s \n", optimal_value_str); + ompi_info_set(info_selected, sioxHintsKey, optimal_value_str); + } + i++; + } + + strcpy(sioxHintsKey, "sioxCancelHints"); + ompi_info_get(info_selected, sioxHintsKey, valueLen, value, &flag); + if (flag) { + //DEBUG: fprintf(stderr, "Setting sioxCancelHints hints to SIOX activity attribute.\n"); + siox_attribute_array[i] = siox_ontology_register_attribute("GPFS", + "sioxCancelHints", SIOX_STORAGE_STRING); + siox_activity_set_attribute(fh->f_siox_activity, + siox_attribute_array[i], &value); + if(siox_suggest_optimal_value_for_str(fh->f_siox_component, siox_attribute_array[i], fh->f_siox_activity, optimal_value_str, valueLen)) { + //DEBUG: fprintf(stderr, "Getting optimal value of sioxCancelHints hints from SIOX: %s \n", optimal_value_str); + ompi_info_set(info_selected, sioxHintsKey, optimal_value_str); + } + i++; + } + + strcpy(sioxHintsKey, "sioxDataShipStart"); + ompi_info_get(info_selected, sioxHintsKey, valueLen, value, &flag); + if (flag) { + //DEBUG: fprintf(stderr, "Setting sioxDataShipStart hints to SIOX activity attribute.\n"); + siox_attribute_array[i] = siox_ontology_register_attribute("GPFS", + "sioxDataShipStart", SIOX_STORAGE_STRING); + siox_activity_set_attribute(fh->f_siox_activity, + siox_attribute_array[i], &value); + if(siox_suggest_optimal_value_for_str(fh->f_siox_component, siox_attribute_array[i], fh->f_siox_activity, optimal_value_str, valueLen)) { + printf("Getting optimal value of sioxDataShipStart hints from SIOX: %s \n", optimal_value_str); + ompi_info_set(info_selected, sioxHintsKey, optimal_value_str); + } + i++; + } + + strcpy(sioxHintsKey, "sioxDataShipStop"); + ompi_info_get(info_selected, sioxHintsKey, valueLen, value, &flag); + if (flag) { + printf("Setting sioxDataShipStop hints to SIOX activity attribute.\n"); + siox_attribute_array[i] = siox_ontology_register_attribute("GPFS", + "sioxDataShipStop", SIOX_STORAGE_STRING); + siox_activity_set_attribute(fh->f_siox_activity, + siox_attribute_array[i], &value); + if(siox_suggest_optimal_value_for_str(fh->f_siox_component, siox_attribute_array[i], fh->f_siox_activity, optimal_value_str, valueLen)) { + //DEBUG: fprintf(stderr, "Getting optimal value of sioxDataShipStop hints from SIOX: %s \n", optimal_value_str); + ompi_info_set(info_selected, sioxHintsKey, optimal_value_str); + } + i++; + } + + strcpy(sioxHintsKey, "sioxSetReplication"); + ompi_info_get(info_selected, sioxHintsKey, valueLen, value, &flag); + if (flag) { + //DEBUG: fprintf(stderr, "Setting sioxSetReplication hints to SIOX activity attribute.\n"); + siox_attribute_array[i] = siox_ontology_register_attribute("GPFS", + "sioxSetReplication", SIOX_STORAGE_STRING); + siox_activity_set_attribute(fh->f_siox_activity, + siox_attribute_array[i], &value); + if(siox_suggest_optimal_value_for_str(fh->f_siox_component, siox_attribute_array[i], fh->f_siox_activity, optimal_value_str, valueLen)) { + //DEBUG: fprintf(stderr, "Getting optimal value of sioxSetReplication hints from SIOX: %s \n", optimal_value_str); + ompi_info_set(info_selected, sioxHintsKey, optimal_value_str); + } + i++; + } + + strcpy(sioxHintsKey, "sioxByteRange"); + ompi_info_get(info_selected, sioxHintsKey, valueLen, value, &flag); + if (flag) { + //DEBUG: fprintf(stderr, "Setting sioxByteRange hints to SIOX activity attribute.\n"); + siox_attribute_array[i] = siox_ontology_register_attribute("GPFS", + "sioxByteRange", SIOX_STORAGE_STRING); + siox_activity_set_attribute(fh->f_siox_activity, + siox_attribute_array[i], &value); + if(siox_suggest_optimal_value_for_str(fh->f_siox_component, siox_attribute_array[i], fh->f_siox_activity, optimal_value_str, valueLen)) { + //DEBUG: fprintf(stderr, "Getting optimal value of sioxByteRange hints from SIOX: %s \n", optimal_value_str); + ompi_info_set(info_selected, sioxHintsKey, optimal_value_str); + } + i++; + } + + strcpy(sioxHintsKey, "sioxRestripeData"); + ompi_info_get(info_selected, sioxHintsKey, valueLen, value, &flag); + if (flag) { + //DEBUG: fprintf(stderr, "Setting sioxRestripeData hints to SIOX activity attribute.\n"); + siox_attribute_array[i] = siox_ontology_register_attribute("GPFS", + "sioxRestripeData", SIOX_STORAGE_STRING); + siox_activity_set_attribute(fh->f_siox_activity, + siox_attribute_array[i], &value); + if(siox_suggest_optimal_value_for_str(fh->f_siox_component, siox_attribute_array[i], fh->f_siox_activity, optimal_value_str, valueLen)) { + //DEBUG: fprintf(stderr, "Getting optimal value of sioxRestripeData hints from SIOX: %s \n", optimal_value_str); + ompi_info_set(info_selected, sioxHintsKey, optimal_value_str); + } + i++; + } + + //DEBUG: fprintf(stderr, "Stopping and ending the SIOX activity in mca_fs_gpfs_siox_io_selection()\n"); + siox_activity_stop(fh->f_siox_activity); + siox_activity_end(fh->f_siox_activity); +#else + info_selected = info; +#endif /* HAVE_C_SIOX_H */ + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/fs/gpfs/fs_gpfs.h openmpi-4.1.4/ompi/mca/fs/gpfs/fs_gpfs.h --- openmpi-4.0.3/ompi/mca/fs/gpfs/fs_gpfs.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/gpfs/fs_gpfs.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,68 @@ +/* -*- Mode: C; c-basic-offset:4 ; -*- */ +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2007 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2015 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2008-2012 University of Houston. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef MCA_FS_GPFS_H +#define MCA_FS_GPFS_H + +#include "ompi_config.h" +#include "opal/mca/mca.h" +#include "ompi/mca/fs/fs.h" +#include "ompi/mca/io/ompio/io_ompio.h" + +#include + +extern int mca_fs_gpfs_priority; + +BEGIN_C_DECLS + +int mca_fs_gpfs_component_init_query(bool enable_progress_threads, + bool enable_mpi_threads); +struct mca_fs_base_module_1_0_0_t * +mca_fs_gpfs_component_file_query(ompio_file_t *fh, int *priority); +int mca_fs_gpfs_component_file_unquery(ompio_file_t *file); + +int mca_fs_gpfs_module_init(ompio_file_t *file); +int mca_fs_gpfs_module_finalize(ompio_file_t *file); +OMPI_MODULE_DECLSPEC extern mca_fs_base_component_2_0_0_t mca_fs_gpfs_component; + +/* + * ****************************************************************** + * ********* functions which are implemented in this module ********* + * ****************************************************************** + */ + +int mca_fs_gpfs_file_open(struct ompi_communicator_t *comm, const char *filename, + int amode, struct opal_info_t *info, struct ompio_file_t *fh); +int mca_fs_gpfs_file_set_info(struct ompio_file_t *fh, + struct ompi_info_t *info); +int mca_fs_gpfs_file_get_info(struct ompio_file_t *fh, + struct ompi_info_t **info_used); +int mca_fs_gpfs_io_selection(ompio_file_t *fh, + struct ompi_info_t *info, struct ompi_info_t *info_selected); + +/* + * ****************************************************************** + * ************ functions implemented in this module end ************ + * ****************************************************************** + */ + +END_C_DECLS + +#endif /* MCA_FS_GPFS_H */ diff -Nru openmpi-4.0.3/ompi/mca/fs/gpfs/Makefile.am openmpi-4.1.4/ompi/mca/fs/gpfs/Makefile.am --- openmpi-4.0.3/ompi/mca/fs/gpfs/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/gpfs/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,54 @@ +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2008-2011 University of Houston. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). + +if MCA_BUILD_ompi_fs_gpfs_DSO +component_noinst = +component_install = mca_fs_gpfs.la +else +component_noinst = libmca_fs_gpfs.la +component_install = +endif + +# Source files + +fs_gpfs_sources = \ + fs_gpfs_component.c \ + fs_gpfs_file_open.c \ + fs_gpfs_file_set_info.c\ + fs_gpfs_file_get_info.c\ + fs_gpfs.c \ + fs_gpfs.h + +AM_CPPFLAGS = $(fs_gpfs_CPPFLAGS) + +mcacomponentdir = $(pkglibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_fs_gpfs_la_SOURCES = $(fs_gpfs_sources) +mca_fs_gpfs_la_LIBADD = $(fs_gpfs_LIBS) +mca_fs_gpfs_la_LDFLAGS = -module -avoid-version $(fs_gpfs_LDFLAGS) + +noinst_LTLIBRARIES = $(component_noinst) +libmca_fs_gpfs_la_SOURCES = $(fs_gpfs_sources) +libmca_fs_gpfs_la_LIBADD = $(fs_gpfs_LIBS) +libmca_fs_gpfs_la_LDFLAGS = -module -avoid-version $(fs_gpfs_LDFLAGS) + diff -Nru openmpi-4.0.3/ompi/mca/fs/gpfs/Makefile.in openmpi-4.1.4/ompi/mca/fs/gpfs/Makefile.in --- openmpi-4.0.3/ompi/mca/fs/gpfs/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/gpfs/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,2124 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2008-2011 University of Houston. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = ompi/mca/fs/gpfs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/c_weak_symbols.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ + $(top_srcdir)/config/ompi_check_libfca.m4 \ + $(top_srcdir)/config/ompi_check_libhcoll.m4 \ + $(top_srcdir)/config/ompi_check_lustre.m4 \ + $(top_srcdir)/config/ompi_check_mxm.m4 \ + $(top_srcdir)/config/ompi_check_psm.m4 \ + $(top_srcdir)/config/ompi_check_psm2.m4 \ + $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ + $(top_srcdir)/config/ompi_check_ucx.m4 \ + $(top_srcdir)/config/ompi_config_files.m4 \ + $(top_srcdir)/config/ompi_configure_options.m4 \ + $(top_srcdir)/config/ompi_contrib.m4 \ + $(top_srcdir)/config/ompi_cxx_find_exception_flags.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_parameters.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_repository.m4 \ + $(top_srcdir)/config/ompi_cxx_have_exceptions.m4 \ + $(top_srcdir)/config/ompi_endpoint_tag.m4 \ + $(top_srcdir)/config/ompi_ext.m4 \ + $(top_srcdir)/config/ompi_find_mpi_aint_count_offset.m4 \ + $(top_srcdir)/config/ompi_fortran_check.m4 \ + $(top_srcdir)/config/ompi_fortran_check_abstract.m4 \ + $(top_srcdir)/config/ompi_fortran_check_asynchronous.m4 \ + $(top_srcdir)/config/ompi_fortran_check_bind_c.m4 \ + $(top_srcdir)/config/ompi_fortran_check_c_funloc.m4 \ + $(top_srcdir)/config/ompi_fortran_check_f08_assumed_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_ignore_tkr.m4 \ + $(top_srcdir)/config/ompi_fortran_check_interface.m4 \ + $(top_srcdir)/config/ompi_fortran_check_iso_fortran_env.m4 \ + $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ + $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ + $(top_srcdir)/config/ompi_fortran_check_private.m4 \ + $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ + $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ + $(top_srcdir)/config/ompi_fortran_check_real16_c_equiv.m4 \ + $(top_srcdir)/config/ompi_fortran_check_storage_size.m4 \ + $(top_srcdir)/config/ompi_fortran_check_type.m4 \ + $(top_srcdir)/config/ompi_fortran_check_use_only.m4 \ + $(top_srcdir)/config/ompi_fortran_find_ext_symbol_convention.m4 \ + $(top_srcdir)/config/ompi_fortran_find_module_include_flag.m4 \ + $(top_srcdir)/config/ompi_fortran_get_alignment.m4 \ + $(top_srcdir)/config/ompi_fortran_get_handle_max.m4 \ + $(top_srcdir)/config/ompi_fortran_get_kind_value.m4 \ + $(top_srcdir)/config/ompi_fortran_get_sizeof.m4 \ + $(top_srcdir)/config/ompi_fortran_get_value_true.m4 \ + $(top_srcdir)/config/ompi_interix.m4 \ + $(top_srcdir)/config/ompi_setup_contrib.m4 \ + $(top_srcdir)/config/ompi_setup_cxx.m4 \ + $(top_srcdir)/config/ompi_setup_fc.m4 \ + $(top_srcdir)/config/ompi_setup_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_ext.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_fortran.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_profiling.m4 \ + $(top_srcdir)/config/opal_case_sensitive_fs_setup.m4 \ + $(top_srcdir)/config/opal_check_alps.m4 \ + $(top_srcdir)/config/opal_check_attributes.m4 \ + $(top_srcdir)/config/opal_check_broken_qsort.m4 \ + $(top_srcdir)/config/opal_check_cma.m4 \ + $(top_srcdir)/config/opal_check_compiler_version.m4 \ + $(top_srcdir)/config/opal_check_compiler_works.m4 \ + $(top_srcdir)/config/opal_check_cray_pmi.m4 \ + $(top_srcdir)/config/opal_check_cuda.m4 \ + $(top_srcdir)/config/opal_check_icc.m4 \ + $(top_srcdir)/config/opal_check_ident.m4 \ + $(top_srcdir)/config/opal_check_knem.m4 \ + $(top_srcdir)/config/opal_check_libnl.m4 \ + $(top_srcdir)/config/opal_check_offsetof.m4 \ + $(top_srcdir)/config/opal_check_ofi.m4 \ + $(top_srcdir)/config/opal_check_openfabrics.m4 \ + $(top_srcdir)/config/opal_check_os_flavors.m4 \ + $(top_srcdir)/config/opal_check_package.m4 \ + $(top_srcdir)/config/opal_check_pmi.m4 \ + $(top_srcdir)/config/opal_check_portals4.m4 \ + $(top_srcdir)/config/opal_check_ps.m4 \ + $(top_srcdir)/config/opal_check_pthread_pids.m4 \ + $(top_srcdir)/config/opal_check_singularity.m4 \ + $(top_srcdir)/config/opal_check_ugni.m4 \ + $(top_srcdir)/config/opal_check_vendor.m4 \ + $(top_srcdir)/config/opal_check_verbs.m4 \ + $(top_srcdir)/config/opal_check_visibility.m4 \ + $(top_srcdir)/config/opal_check_withdir.m4 \ + $(top_srcdir)/config/opal_check_xpmem.m4 \ + $(top_srcdir)/config/opal_config_asm.m4 \ + $(top_srcdir)/config/opal_config_files.m4 \ + $(top_srcdir)/config/opal_config_pthreads.m4 \ + $(top_srcdir)/config/opal_config_subdir.m4 \ + $(top_srcdir)/config/opal_config_subdir_args.m4 \ + $(top_srcdir)/config/opal_config_threads.m4 \ + $(top_srcdir)/config/opal_configure_options.m4 \ + $(top_srcdir)/config/opal_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/opal_find_type.m4 \ + $(top_srcdir)/config/opal_functions.m4 \ + $(top_srcdir)/config/opal_lang_link_with_c.m4 \ + $(top_srcdir)/config/opal_load_platform.m4 \ + $(top_srcdir)/config/opal_mca.m4 \ + $(top_srcdir)/config/opal_save_version.m4 \ + $(top_srcdir)/config/opal_search_libs.m4 \ + $(top_srcdir)/config/opal_set_lib_prefix.m4 \ + $(top_srcdir)/config/opal_set_mca_prefix.m4 \ + $(top_srcdir)/config/opal_setup_cc.m4 \ + $(top_srcdir)/config/opal_setup_cli.m4 \ + $(top_srcdir)/config/opal_setup_cxx.m4 \ + $(top_srcdir)/config/opal_setup_ft.m4 \ + $(top_srcdir)/config/opal_setup_wrappers.m4 \ + $(top_srcdir)/config/opal_setup_zlib.m4 \ + $(top_srcdir)/config/opal_strip_optflags.m4 \ + $(top_srcdir)/config/opal_summary.m4 \ + $(top_srcdir)/config/opal_try_assemble.m4 \ + $(top_srcdir)/config/orte_check_lsf.m4 \ + $(top_srcdir)/config/orte_check_moab.m4 \ + $(top_srcdir)/config/orte_check_sge.m4 \ + $(top_srcdir)/config/orte_check_slurm.m4 \ + $(top_srcdir)/config/orte_check_tm.m4 \ + $(top_srcdir)/config/orte_config_files.m4 \ + $(top_srcdir)/config/orte_configure_options.m4 \ + $(top_srcdir)/config/orte_setup_debugger_flags.m4 \ + $(top_srcdir)/config/oshmem_config_files.m4 \ + $(top_srcdir)/config/oshmem_configure_options.m4 \ + $(top_srcdir)/config/oshmem_setup_profiling.m4 \ + $(top_srcdir)/config/pkg.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/opal/mca/backtrace/configure.m4 \ + $(top_srcdir)/opal/mca/dl/configure.m4 \ + $(top_srcdir)/opal/mca/event/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/configure.m4 \ + $(top_srcdir)/opal/mca/memcpy/configure.m4 \ + $(top_srcdir)/opal/mca/memory/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/configure.m4 \ + $(top_srcdir)/opal/mca/timer/configure.m4 \ + $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/common/sm/configure.m4 \ + $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs_usnic/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ + $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ + $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ + $(top_srcdir)/opal/mca/btl/smcuda/configure.m4 \ + $(top_srcdir)/opal/mca/btl/tcp/configure.m4 \ + $(top_srcdir)/opal/mca/btl/uct/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ugni/configure.m4 \ + $(top_srcdir)/opal/mca/btl/usnic/configure.m4 \ + $(top_srcdir)/opal/mca/btl/vader/configure.m4 \ + $(top_srcdir)/opal/mca/crs/self/configure.m4 \ + $(top_srcdir)/opal/mca/dl/dlopen/configure.m4 \ + $(top_srcdir)/opal/mca/dl/libltdl/configure.m4 \ + $(top_srcdir)/opal/mca/event/external/configure.m4 \ + $(top_srcdir)/opal/mca/event/libevent2022/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/external/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_pkg.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_attributes.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_visibility.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_vendor.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_components.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_internal.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/netloc.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/linux_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/posix_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/solaris_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/config/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/env/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/valgrind/configure.m4 \ + $(top_srcdir)/opal/mca/memory/malloc_solaris/configure.m4 \ + $(top_srcdir)/opal/mca/memory/patcher/configure.m4 \ + $(top_srcdir)/opal/mca/mpool/memkind/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/linux/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/overwrite/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/cray/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext1x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext2x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/flux/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/pmix3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s1/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s2/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/linux/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/test/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/gpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/rgpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/udreg/configure.m4 \ + $(top_srcdir)/opal/mca/reachable/netlink/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/mmap/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/posix/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/sysv/configure.m4 \ + $(top_srcdir)/opal/mca/timer/altix/configure.m4 \ + $(top_srcdir)/opal/mca/timer/darwin/configure.m4 \ + $(top_srcdir)/opal/mca/timer/linux/configure.m4 \ + $(top_srcdir)/opal/mca/timer/solaris/configure.m4 \ + $(top_srcdir)/orte/mca/common/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ess/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ess/tm/configure.m4 \ + $(top_srcdir)/orte/mca/odls/alps/configure.m4 \ + $(top_srcdir)/orte/mca/odls/default/configure.m4 \ + $(top_srcdir)/orte/mca/odls/pspawn/configure.m4 \ + $(top_srcdir)/orte/mca/oob/alps/configure.m4 \ + $(top_srcdir)/orte/mca/oob/tcp/configure.m4 \ + $(top_srcdir)/orte/mca/plm/alps/configure.m4 \ + $(top_srcdir)/orte/mca/plm/isolated/configure.m4 \ + $(top_srcdir)/orte/mca/plm/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/plm/rsh/configure.m4 \ + $(top_srcdir)/orte/mca/plm/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/plm/tm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ras/gridengine/configure.m4 \ + $(top_srcdir)/orte/mca/ras/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/snapc/full/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/central/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/stage/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/configure.m4 \ + $(top_srcdir)/ompi/mca/fcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/configure.m4 \ + $(top_srcdir)/ompi/mca/hook/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/configure.m4 \ + $(top_srcdir)/ompi/mca/common/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/common/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/bml/r2/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/cuda/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/fca/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ + $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ + $(top_srcdir)/ompi/mca/io/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/io/romio321/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/ofi/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/rdma/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/crcpw/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ob1/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/v/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/yalla/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/orte/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/pmix/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/sm/configure.m4 \ + $(top_srcdir)/ompi/mca/topo/treematch/configure.m4 \ + $(top_srcdir)/oshmem/mca/memheap/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/sysv/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/verbs/configure.m4 \ + $(top_srcdir)/ompi/mpiext/affinity/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cr/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cuda/configure.m4 \ + $(top_srcdir)/ompi/mpiext/pcollreq/configure.m4 \ + $(top_srcdir)/ompi/contrib/libompitrace/configure.m4 \ + $(top_srcdir)/config/opal_get_version.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/opal/include/opal_config.h \ + $(top_builddir)/ompi/include/mpi.h \ + $(top_builddir)/oshmem/include/shmem.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen/config.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen/config.h \ + $(top_builddir)/ompi/mpiext/cuda/c/mpiext_cuda_c.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(mcacomponentdir)" +LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) +am__DEPENDENCIES_1 = +libmca_fs_gpfs_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +am__objects_1 = fs_gpfs_component.lo fs_gpfs_file_open.lo \ + fs_gpfs_file_set_info.lo fs_gpfs_file_get_info.lo fs_gpfs.lo +am_libmca_fs_gpfs_la_OBJECTS = $(am__objects_1) +libmca_fs_gpfs_la_OBJECTS = $(am_libmca_fs_gpfs_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libmca_fs_gpfs_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libmca_fs_gpfs_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +@MCA_BUILD_ompi_fs_gpfs_DSO_FALSE@am_libmca_fs_gpfs_la_rpath = +mca_fs_gpfs_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +am_mca_fs_gpfs_la_OBJECTS = $(am__objects_1) +mca_fs_gpfs_la_OBJECTS = $(am_mca_fs_gpfs_la_OBJECTS) +mca_fs_gpfs_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(mca_fs_gpfs_la_LDFLAGS) $(LDFLAGS) -o \ + $@ +@MCA_BUILD_ompi_fs_gpfs_DSO_TRUE@am_mca_fs_gpfs_la_rpath = -rpath \ +@MCA_BUILD_ompi_fs_gpfs_DSO_TRUE@ $(mcacomponentdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/opal/include -I$(top_builddir)/ompi/include -I$(top_builddir)/oshmem/include -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen -I$(top_builddir)/ompi/mpiext/cuda/c +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libmca_fs_gpfs_la_SOURCES) $(mca_fs_gpfs_la_SOURCES) +DIST_SOURCES = $(libmca_fs_gpfs_la_SOURCES) $(mca_fs_gpfs_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/config/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMCA_PARAM_SETS_DIR = @AMCA_PARAM_SETS_DIR@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BASH = @BASH@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAGS_WITHOUT_OPTFLAGS = @CFLAGS_WITHOUT_OPTFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CRAY_ALPSLLI_CFLAGS = @CRAY_ALPSLLI_CFLAGS@ +CRAY_ALPSLLI_LIBS = @CRAY_ALPSLLI_LIBS@ +CRAY_ALPSLLI_STATIC_LIBS = @CRAY_ALPSLLI_STATIC_LIBS@ +CRAY_ALPSUTIL_CFLAGS = @CRAY_ALPSUTIL_CFLAGS@ +CRAY_ALPSUTIL_LIBS = @CRAY_ALPSUTIL_LIBS@ +CRAY_ALPSUTIL_STATIC_LIBS = @CRAY_ALPSUTIL_STATIC_LIBS@ +CRAY_ALPS_CFLAGS = @CRAY_ALPS_CFLAGS@ +CRAY_ALPS_LIBS = @CRAY_ALPS_LIBS@ +CRAY_ALPS_STATIC_LIBS = @CRAY_ALPS_STATIC_LIBS@ +CRAY_PMI_CFLAGS = @CRAY_PMI_CFLAGS@ +CRAY_PMI_LIBS = @CRAY_PMI_LIBS@ +CRAY_PMI_STATIC_LIBS = @CRAY_PMI_STATIC_LIBS@ +CRAY_UDREG_CFLAGS = @CRAY_UDREG_CFLAGS@ +CRAY_UDREG_LIBS = @CRAY_UDREG_LIBS@ +CRAY_UGNI_CFLAGS = @CRAY_UGNI_CFLAGS@ +CRAY_UGNI_LIBS = @CRAY_UGNI_LIBS@ +CRAY_WLM_DETECT_CFLAGS = @CRAY_WLM_DETECT_CFLAGS@ +CRAY_WLM_DETECT_LIBS = @CRAY_WLM_DETECT_LIBS@ +CRAY_WLM_DETECT_STATIC_LIBS = @CRAY_WLM_DETECT_STATIC_LIBS@ +CRAY_XPMEM_CFLAGS = @CRAY_XPMEM_CFLAGS@ +CRAY_XPMEM_LIBS = @CRAY_XPMEM_LIBS@ +CRAY_XPMEM_STATIC_LIBS = @CRAY_XPMEM_STATIC_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXCPPFLAGS = @CXXCPPFLAGS@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUGGER_CFLAGS = @DEBUGGER_CFLAGS@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FC = @FC@ +FCFLAGS = @FCFLAGS@ +FCFLAGS_f = @FCFLAGS_f@ +FCFLAGS_f90 = @FCFLAGS_f90@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLUX_PMI_CFLAGS = @FLUX_PMI_CFLAGS@ +FLUX_PMI_LIBS = @FLUX_PMI_LIBS@ +GREP = @GREP@ +HWLOC_CFLAGS = @HWLOC_CFLAGS@ +HWLOC_CPPFLAGS = @HWLOC_CPPFLAGS@ +HWLOC_CUDA_LIBS = @HWLOC_CUDA_LIBS@ +HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@ +HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@ +HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@ +HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@ +HWLOC_GL_LIBS = @HWLOC_GL_LIBS@ +HWLOC_HAVE_LIBXML2 = @HWLOC_HAVE_LIBXML2@ +HWLOC_HAVE_NVML = @HWLOC_HAVE_NVML@ +HWLOC_HAVE_OPENCL = @HWLOC_HAVE_OPENCL@ +HWLOC_LDFLAGS = @HWLOC_LDFLAGS@ +HWLOC_LIBS = @HWLOC_LIBS@ +HWLOC_LIBS_PRIVATE = @HWLOC_LIBS_PRIVATE@ +HWLOC_LIBXML2_CFLAGS = @HWLOC_LIBXML2_CFLAGS@ +HWLOC_LIBXML2_LIBS = @HWLOC_LIBXML2_LIBS@ +HWLOC_MS_LIB = @HWLOC_MS_LIB@ +HWLOC_MS_LIB_ARCH = @HWLOC_MS_LIB_ARCH@ +HWLOC_NVML_LIBS = @HWLOC_NVML_LIBS@ +HWLOC_OPENCL_CFLAGS = @HWLOC_OPENCL_CFLAGS@ +HWLOC_OPENCL_LDFLAGS = @HWLOC_OPENCL_LDFLAGS@ +HWLOC_OPENCL_LIBS = @HWLOC_OPENCL_LIBS@ +HWLOC_PCIACCESS_CFLAGS = @HWLOC_PCIACCESS_CFLAGS@ +HWLOC_PCIACCESS_LIBS = @HWLOC_PCIACCESS_LIBS@ +HWLOC_PLUGINS_DIR = @HWLOC_PLUGINS_DIR@ +HWLOC_PLUGINS_PATH = @HWLOC_PLUGINS_PATH@ +HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@ +HWLOC_REQUIRES = @HWLOC_REQUIRES@ +HWLOC_VERSION = @HWLOC_VERSION@ +HWLOC_X11_CPPFLAGS = @HWLOC_X11_CPPFLAGS@ +HWLOC_X11_LIBS = @HWLOC_X11_LIBS@ +HWLOC_top_builddir = @HWLOC_top_builddir@ +HWLOC_top_srcdir = @HWLOC_top_srcdir@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JAR = @JAR@ +JAVAC = @JAVAC@ +JAVADOC = @JAVADOC@ +JAVAH = @JAVAH@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ +MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ +MCA_ompi_FRAMEWORKS_SUBDIRS = @MCA_ompi_FRAMEWORKS_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_ompi_FRAMEWORK_LIBS = @MCA_ompi_FRAMEWORK_LIBS@ +MCA_ompi_bml_ALL_COMPONENTS = @MCA_ompi_bml_ALL_COMPONENTS@ +MCA_ompi_bml_ALL_SUBDIRS = @MCA_ompi_bml_ALL_SUBDIRS@ +MCA_ompi_bml_DSO_COMPONENTS = @MCA_ompi_bml_DSO_COMPONENTS@ +MCA_ompi_bml_DSO_SUBDIRS = @MCA_ompi_bml_DSO_SUBDIRS@ +MCA_ompi_bml_STATIC_COMPONENTS = @MCA_ompi_bml_STATIC_COMPONENTS@ +MCA_ompi_bml_STATIC_LTLIBS = @MCA_ompi_bml_STATIC_LTLIBS@ +MCA_ompi_bml_STATIC_SUBDIRS = @MCA_ompi_bml_STATIC_SUBDIRS@ +MCA_ompi_coll_ALL_COMPONENTS = @MCA_ompi_coll_ALL_COMPONENTS@ +MCA_ompi_coll_ALL_SUBDIRS = @MCA_ompi_coll_ALL_SUBDIRS@ +MCA_ompi_coll_DSO_COMPONENTS = @MCA_ompi_coll_DSO_COMPONENTS@ +MCA_ompi_coll_DSO_SUBDIRS = @MCA_ompi_coll_DSO_SUBDIRS@ +MCA_ompi_coll_STATIC_COMPONENTS = @MCA_ompi_coll_STATIC_COMPONENTS@ +MCA_ompi_coll_STATIC_LTLIBS = @MCA_ompi_coll_STATIC_LTLIBS@ +MCA_ompi_coll_STATIC_SUBDIRS = @MCA_ompi_coll_STATIC_SUBDIRS@ +MCA_ompi_common_ALL_COMPONENTS = @MCA_ompi_common_ALL_COMPONENTS@ +MCA_ompi_common_ALL_SUBDIRS = @MCA_ompi_common_ALL_SUBDIRS@ +MCA_ompi_common_DSO_COMPONENTS = @MCA_ompi_common_DSO_COMPONENTS@ +MCA_ompi_common_DSO_SUBDIRS = @MCA_ompi_common_DSO_SUBDIRS@ +MCA_ompi_common_STATIC_COMPONENTS = @MCA_ompi_common_STATIC_COMPONENTS@ +MCA_ompi_common_STATIC_LTLIBS = @MCA_ompi_common_STATIC_LTLIBS@ +MCA_ompi_common_STATIC_SUBDIRS = @MCA_ompi_common_STATIC_SUBDIRS@ +MCA_ompi_crcp_ALL_COMPONENTS = @MCA_ompi_crcp_ALL_COMPONENTS@ +MCA_ompi_crcp_ALL_SUBDIRS = @MCA_ompi_crcp_ALL_SUBDIRS@ +MCA_ompi_crcp_DSO_COMPONENTS = @MCA_ompi_crcp_DSO_COMPONENTS@ +MCA_ompi_crcp_DSO_SUBDIRS = @MCA_ompi_crcp_DSO_SUBDIRS@ +MCA_ompi_crcp_STATIC_COMPONENTS = @MCA_ompi_crcp_STATIC_COMPONENTS@ +MCA_ompi_crcp_STATIC_LTLIBS = @MCA_ompi_crcp_STATIC_LTLIBS@ +MCA_ompi_crcp_STATIC_SUBDIRS = @MCA_ompi_crcp_STATIC_SUBDIRS@ +MCA_ompi_fbtl_ALL_COMPONENTS = @MCA_ompi_fbtl_ALL_COMPONENTS@ +MCA_ompi_fbtl_ALL_SUBDIRS = @MCA_ompi_fbtl_ALL_SUBDIRS@ +MCA_ompi_fbtl_DSO_COMPONENTS = @MCA_ompi_fbtl_DSO_COMPONENTS@ +MCA_ompi_fbtl_DSO_SUBDIRS = @MCA_ompi_fbtl_DSO_SUBDIRS@ +MCA_ompi_fbtl_STATIC_COMPONENTS = @MCA_ompi_fbtl_STATIC_COMPONENTS@ +MCA_ompi_fbtl_STATIC_LTLIBS = @MCA_ompi_fbtl_STATIC_LTLIBS@ +MCA_ompi_fbtl_STATIC_SUBDIRS = @MCA_ompi_fbtl_STATIC_SUBDIRS@ +MCA_ompi_fcoll_ALL_COMPONENTS = @MCA_ompi_fcoll_ALL_COMPONENTS@ +MCA_ompi_fcoll_ALL_SUBDIRS = @MCA_ompi_fcoll_ALL_SUBDIRS@ +MCA_ompi_fcoll_DSO_COMPONENTS = @MCA_ompi_fcoll_DSO_COMPONENTS@ +MCA_ompi_fcoll_DSO_SUBDIRS = @MCA_ompi_fcoll_DSO_SUBDIRS@ +MCA_ompi_fcoll_STATIC_COMPONENTS = @MCA_ompi_fcoll_STATIC_COMPONENTS@ +MCA_ompi_fcoll_STATIC_LTLIBS = @MCA_ompi_fcoll_STATIC_LTLIBS@ +MCA_ompi_fcoll_STATIC_SUBDIRS = @MCA_ompi_fcoll_STATIC_SUBDIRS@ +MCA_ompi_fs_ALL_COMPONENTS = @MCA_ompi_fs_ALL_COMPONENTS@ +MCA_ompi_fs_ALL_SUBDIRS = @MCA_ompi_fs_ALL_SUBDIRS@ +MCA_ompi_fs_DSO_COMPONENTS = @MCA_ompi_fs_DSO_COMPONENTS@ +MCA_ompi_fs_DSO_SUBDIRS = @MCA_ompi_fs_DSO_SUBDIRS@ +MCA_ompi_fs_STATIC_COMPONENTS = @MCA_ompi_fs_STATIC_COMPONENTS@ +MCA_ompi_fs_STATIC_LTLIBS = @MCA_ompi_fs_STATIC_LTLIBS@ +MCA_ompi_fs_STATIC_SUBDIRS = @MCA_ompi_fs_STATIC_SUBDIRS@ +MCA_ompi_hook_ALL_COMPONENTS = @MCA_ompi_hook_ALL_COMPONENTS@ +MCA_ompi_hook_ALL_SUBDIRS = @MCA_ompi_hook_ALL_SUBDIRS@ +MCA_ompi_hook_DSO_COMPONENTS = @MCA_ompi_hook_DSO_COMPONENTS@ +MCA_ompi_hook_DSO_SUBDIRS = @MCA_ompi_hook_DSO_SUBDIRS@ +MCA_ompi_hook_STATIC_COMPONENTS = @MCA_ompi_hook_STATIC_COMPONENTS@ +MCA_ompi_hook_STATIC_LTLIBS = @MCA_ompi_hook_STATIC_LTLIBS@ +MCA_ompi_hook_STATIC_SUBDIRS = @MCA_ompi_hook_STATIC_SUBDIRS@ +MCA_ompi_io_ALL_COMPONENTS = @MCA_ompi_io_ALL_COMPONENTS@ +MCA_ompi_io_ALL_SUBDIRS = @MCA_ompi_io_ALL_SUBDIRS@ +MCA_ompi_io_DSO_COMPONENTS = @MCA_ompi_io_DSO_COMPONENTS@ +MCA_ompi_io_DSO_SUBDIRS = @MCA_ompi_io_DSO_SUBDIRS@ +MCA_ompi_io_STATIC_COMPONENTS = @MCA_ompi_io_STATIC_COMPONENTS@ +MCA_ompi_io_STATIC_LTLIBS = @MCA_ompi_io_STATIC_LTLIBS@ +MCA_ompi_io_STATIC_SUBDIRS = @MCA_ompi_io_STATIC_SUBDIRS@ +MCA_ompi_mtl_ALL_COMPONENTS = @MCA_ompi_mtl_ALL_COMPONENTS@ +MCA_ompi_mtl_ALL_SUBDIRS = @MCA_ompi_mtl_ALL_SUBDIRS@ +MCA_ompi_mtl_DIRECT_CALL_HEADER = @MCA_ompi_mtl_DIRECT_CALL_HEADER@ +MCA_ompi_mtl_DSO_COMPONENTS = @MCA_ompi_mtl_DSO_COMPONENTS@ +MCA_ompi_mtl_DSO_SUBDIRS = @MCA_ompi_mtl_DSO_SUBDIRS@ +MCA_ompi_mtl_STATIC_COMPONENTS = @MCA_ompi_mtl_STATIC_COMPONENTS@ +MCA_ompi_mtl_STATIC_LTLIBS = @MCA_ompi_mtl_STATIC_LTLIBS@ +MCA_ompi_mtl_STATIC_SUBDIRS = @MCA_ompi_mtl_STATIC_SUBDIRS@ +MCA_ompi_op_ALL_COMPONENTS = @MCA_ompi_op_ALL_COMPONENTS@ +MCA_ompi_op_ALL_SUBDIRS = @MCA_ompi_op_ALL_SUBDIRS@ +MCA_ompi_op_DSO_COMPONENTS = @MCA_ompi_op_DSO_COMPONENTS@ +MCA_ompi_op_DSO_SUBDIRS = @MCA_ompi_op_DSO_SUBDIRS@ +MCA_ompi_op_STATIC_COMPONENTS = @MCA_ompi_op_STATIC_COMPONENTS@ +MCA_ompi_op_STATIC_LTLIBS = @MCA_ompi_op_STATIC_LTLIBS@ +MCA_ompi_op_STATIC_SUBDIRS = @MCA_ompi_op_STATIC_SUBDIRS@ +MCA_ompi_osc_ALL_COMPONENTS = @MCA_ompi_osc_ALL_COMPONENTS@ +MCA_ompi_osc_ALL_SUBDIRS = @MCA_ompi_osc_ALL_SUBDIRS@ +MCA_ompi_osc_DSO_COMPONENTS = @MCA_ompi_osc_DSO_COMPONENTS@ +MCA_ompi_osc_DSO_SUBDIRS = @MCA_ompi_osc_DSO_SUBDIRS@ +MCA_ompi_osc_STATIC_COMPONENTS = @MCA_ompi_osc_STATIC_COMPONENTS@ +MCA_ompi_osc_STATIC_LTLIBS = @MCA_ompi_osc_STATIC_LTLIBS@ +MCA_ompi_osc_STATIC_SUBDIRS = @MCA_ompi_osc_STATIC_SUBDIRS@ +MCA_ompi_pml_ALL_COMPONENTS = @MCA_ompi_pml_ALL_COMPONENTS@ +MCA_ompi_pml_ALL_SUBDIRS = @MCA_ompi_pml_ALL_SUBDIRS@ +MCA_ompi_pml_DIRECT_CALL_HEADER = @MCA_ompi_pml_DIRECT_CALL_HEADER@ +MCA_ompi_pml_DSO_COMPONENTS = @MCA_ompi_pml_DSO_COMPONENTS@ +MCA_ompi_pml_DSO_SUBDIRS = @MCA_ompi_pml_DSO_SUBDIRS@ +MCA_ompi_pml_STATIC_COMPONENTS = @MCA_ompi_pml_STATIC_COMPONENTS@ +MCA_ompi_pml_STATIC_LTLIBS = @MCA_ompi_pml_STATIC_LTLIBS@ +MCA_ompi_pml_STATIC_SUBDIRS = @MCA_ompi_pml_STATIC_SUBDIRS@ +MCA_ompi_rte_ALL_COMPONENTS = @MCA_ompi_rte_ALL_COMPONENTS@ +MCA_ompi_rte_ALL_SUBDIRS = @MCA_ompi_rte_ALL_SUBDIRS@ +MCA_ompi_rte_DSO_COMPONENTS = @MCA_ompi_rte_DSO_COMPONENTS@ +MCA_ompi_rte_DSO_SUBDIRS = @MCA_ompi_rte_DSO_SUBDIRS@ +MCA_ompi_rte_STATIC_COMPONENTS = @MCA_ompi_rte_STATIC_COMPONENTS@ +MCA_ompi_rte_STATIC_LTLIBS = @MCA_ompi_rte_STATIC_LTLIBS@ +MCA_ompi_rte_STATIC_SUBDIRS = @MCA_ompi_rte_STATIC_SUBDIRS@ +MCA_ompi_sharedfp_ALL_COMPONENTS = @MCA_ompi_sharedfp_ALL_COMPONENTS@ +MCA_ompi_sharedfp_ALL_SUBDIRS = @MCA_ompi_sharedfp_ALL_SUBDIRS@ +MCA_ompi_sharedfp_DSO_COMPONENTS = @MCA_ompi_sharedfp_DSO_COMPONENTS@ +MCA_ompi_sharedfp_DSO_SUBDIRS = @MCA_ompi_sharedfp_DSO_SUBDIRS@ +MCA_ompi_sharedfp_STATIC_COMPONENTS = @MCA_ompi_sharedfp_STATIC_COMPONENTS@ +MCA_ompi_sharedfp_STATIC_LTLIBS = @MCA_ompi_sharedfp_STATIC_LTLIBS@ +MCA_ompi_sharedfp_STATIC_SUBDIRS = @MCA_ompi_sharedfp_STATIC_SUBDIRS@ +MCA_ompi_topo_ALL_COMPONENTS = @MCA_ompi_topo_ALL_COMPONENTS@ +MCA_ompi_topo_ALL_SUBDIRS = @MCA_ompi_topo_ALL_SUBDIRS@ +MCA_ompi_topo_DSO_COMPONENTS = @MCA_ompi_topo_DSO_COMPONENTS@ +MCA_ompi_topo_DSO_SUBDIRS = @MCA_ompi_topo_DSO_SUBDIRS@ +MCA_ompi_topo_STATIC_COMPONENTS = @MCA_ompi_topo_STATIC_COMPONENTS@ +MCA_ompi_topo_STATIC_LTLIBS = @MCA_ompi_topo_STATIC_LTLIBS@ +MCA_ompi_topo_STATIC_SUBDIRS = @MCA_ompi_topo_STATIC_SUBDIRS@ +MCA_ompi_vprotocol_ALL_COMPONENTS = @MCA_ompi_vprotocol_ALL_COMPONENTS@ +MCA_ompi_vprotocol_ALL_SUBDIRS = @MCA_ompi_vprotocol_ALL_SUBDIRS@ +MCA_ompi_vprotocol_DSO_COMPONENTS = @MCA_ompi_vprotocol_DSO_COMPONENTS@ +MCA_ompi_vprotocol_DSO_SUBDIRS = @MCA_ompi_vprotocol_DSO_SUBDIRS@ +MCA_ompi_vprotocol_STATIC_COMPONENTS = @MCA_ompi_vprotocol_STATIC_COMPONENTS@ +MCA_ompi_vprotocol_STATIC_LTLIBS = @MCA_ompi_vprotocol_STATIC_LTLIBS@ +MCA_ompi_vprotocol_STATIC_SUBDIRS = @MCA_ompi_vprotocol_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORKS = @MCA_opal_FRAMEWORKS@ +MCA_opal_FRAMEWORKS_SUBDIRS = @MCA_opal_FRAMEWORKS_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORK_LIBS = @MCA_opal_FRAMEWORK_LIBS@ +MCA_opal_allocator_ALL_COMPONENTS = @MCA_opal_allocator_ALL_COMPONENTS@ +MCA_opal_allocator_ALL_SUBDIRS = @MCA_opal_allocator_ALL_SUBDIRS@ +MCA_opal_allocator_DSO_COMPONENTS = @MCA_opal_allocator_DSO_COMPONENTS@ +MCA_opal_allocator_DSO_SUBDIRS = @MCA_opal_allocator_DSO_SUBDIRS@ +MCA_opal_allocator_STATIC_COMPONENTS = @MCA_opal_allocator_STATIC_COMPONENTS@ +MCA_opal_allocator_STATIC_LTLIBS = @MCA_opal_allocator_STATIC_LTLIBS@ +MCA_opal_allocator_STATIC_SUBDIRS = @MCA_opal_allocator_STATIC_SUBDIRS@ +MCA_opal_backtrace_ALL_COMPONENTS = @MCA_opal_backtrace_ALL_COMPONENTS@ +MCA_opal_backtrace_ALL_SUBDIRS = @MCA_opal_backtrace_ALL_SUBDIRS@ +MCA_opal_backtrace_DSO_COMPONENTS = @MCA_opal_backtrace_DSO_COMPONENTS@ +MCA_opal_backtrace_DSO_SUBDIRS = @MCA_opal_backtrace_DSO_SUBDIRS@ +MCA_opal_backtrace_STATIC_COMPONENTS = @MCA_opal_backtrace_STATIC_COMPONENTS@ +MCA_opal_backtrace_STATIC_LTLIBS = @MCA_opal_backtrace_STATIC_LTLIBS@ +MCA_opal_backtrace_STATIC_SUBDIRS = @MCA_opal_backtrace_STATIC_SUBDIRS@ +MCA_opal_btl_ALL_COMPONENTS = @MCA_opal_btl_ALL_COMPONENTS@ +MCA_opal_btl_ALL_SUBDIRS = @MCA_opal_btl_ALL_SUBDIRS@ +MCA_opal_btl_DSO_COMPONENTS = @MCA_opal_btl_DSO_COMPONENTS@ +MCA_opal_btl_DSO_SUBDIRS = @MCA_opal_btl_DSO_SUBDIRS@ +MCA_opal_btl_STATIC_COMPONENTS = @MCA_opal_btl_STATIC_COMPONENTS@ +MCA_opal_btl_STATIC_LTLIBS = @MCA_opal_btl_STATIC_LTLIBS@ +MCA_opal_btl_STATIC_SUBDIRS = @MCA_opal_btl_STATIC_SUBDIRS@ +MCA_opal_common_ALL_COMPONENTS = @MCA_opal_common_ALL_COMPONENTS@ +MCA_opal_common_ALL_SUBDIRS = @MCA_opal_common_ALL_SUBDIRS@ +MCA_opal_common_DSO_COMPONENTS = @MCA_opal_common_DSO_COMPONENTS@ +MCA_opal_common_DSO_SUBDIRS = @MCA_opal_common_DSO_SUBDIRS@ +MCA_opal_common_STATIC_COMPONENTS = @MCA_opal_common_STATIC_COMPONENTS@ +MCA_opal_common_STATIC_LTLIBS = @MCA_opal_common_STATIC_LTLIBS@ +MCA_opal_common_STATIC_SUBDIRS = @MCA_opal_common_STATIC_SUBDIRS@ +MCA_opal_compress_ALL_COMPONENTS = @MCA_opal_compress_ALL_COMPONENTS@ +MCA_opal_compress_ALL_SUBDIRS = @MCA_opal_compress_ALL_SUBDIRS@ +MCA_opal_compress_DSO_COMPONENTS = @MCA_opal_compress_DSO_COMPONENTS@ +MCA_opal_compress_DSO_SUBDIRS = @MCA_opal_compress_DSO_SUBDIRS@ +MCA_opal_compress_STATIC_COMPONENTS = @MCA_opal_compress_STATIC_COMPONENTS@ +MCA_opal_compress_STATIC_LTLIBS = @MCA_opal_compress_STATIC_LTLIBS@ +MCA_opal_compress_STATIC_SUBDIRS = @MCA_opal_compress_STATIC_SUBDIRS@ +MCA_opal_crs_ALL_COMPONENTS = @MCA_opal_crs_ALL_COMPONENTS@ +MCA_opal_crs_ALL_SUBDIRS = @MCA_opal_crs_ALL_SUBDIRS@ +MCA_opal_crs_DSO_COMPONENTS = @MCA_opal_crs_DSO_COMPONENTS@ +MCA_opal_crs_DSO_SUBDIRS = @MCA_opal_crs_DSO_SUBDIRS@ +MCA_opal_crs_STATIC_COMPONENTS = @MCA_opal_crs_STATIC_COMPONENTS@ +MCA_opal_crs_STATIC_LTLIBS = @MCA_opal_crs_STATIC_LTLIBS@ +MCA_opal_crs_STATIC_SUBDIRS = @MCA_opal_crs_STATIC_SUBDIRS@ +MCA_opal_dl_ALL_COMPONENTS = @MCA_opal_dl_ALL_COMPONENTS@ +MCA_opal_dl_ALL_SUBDIRS = @MCA_opal_dl_ALL_SUBDIRS@ +MCA_opal_dl_DSO_COMPONENTS = @MCA_opal_dl_DSO_COMPONENTS@ +MCA_opal_dl_DSO_SUBDIRS = @MCA_opal_dl_DSO_SUBDIRS@ +MCA_opal_dl_STATIC_COMPONENTS = @MCA_opal_dl_STATIC_COMPONENTS@ +MCA_opal_dl_STATIC_LTLIBS = @MCA_opal_dl_STATIC_LTLIBS@ +MCA_opal_dl_STATIC_SUBDIRS = @MCA_opal_dl_STATIC_SUBDIRS@ +MCA_opal_event_ALL_COMPONENTS = @MCA_opal_event_ALL_COMPONENTS@ +MCA_opal_event_ALL_SUBDIRS = @MCA_opal_event_ALL_SUBDIRS@ +MCA_opal_event_DSO_COMPONENTS = @MCA_opal_event_DSO_COMPONENTS@ +MCA_opal_event_DSO_SUBDIRS = @MCA_opal_event_DSO_SUBDIRS@ +MCA_opal_event_STATIC_COMPONENTS = @MCA_opal_event_STATIC_COMPONENTS@ +MCA_opal_event_STATIC_LTLIBS = @MCA_opal_event_STATIC_LTLIBS@ +MCA_opal_event_STATIC_SUBDIRS = @MCA_opal_event_STATIC_SUBDIRS@ +MCA_opal_hwloc_ALL_COMPONENTS = @MCA_opal_hwloc_ALL_COMPONENTS@ +MCA_opal_hwloc_ALL_SUBDIRS = @MCA_opal_hwloc_ALL_SUBDIRS@ +MCA_opal_hwloc_DSO_COMPONENTS = @MCA_opal_hwloc_DSO_COMPONENTS@ +MCA_opal_hwloc_DSO_SUBDIRS = @MCA_opal_hwloc_DSO_SUBDIRS@ +MCA_opal_hwloc_STATIC_COMPONENTS = @MCA_opal_hwloc_STATIC_COMPONENTS@ +MCA_opal_hwloc_STATIC_LTLIBS = @MCA_opal_hwloc_STATIC_LTLIBS@ +MCA_opal_hwloc_STATIC_SUBDIRS = @MCA_opal_hwloc_STATIC_SUBDIRS@ +MCA_opal_if_ALL_COMPONENTS = @MCA_opal_if_ALL_COMPONENTS@ +MCA_opal_if_ALL_SUBDIRS = @MCA_opal_if_ALL_SUBDIRS@ +MCA_opal_if_DSO_COMPONENTS = @MCA_opal_if_DSO_COMPONENTS@ +MCA_opal_if_DSO_SUBDIRS = @MCA_opal_if_DSO_SUBDIRS@ +MCA_opal_if_STATIC_COMPONENTS = @MCA_opal_if_STATIC_COMPONENTS@ +MCA_opal_if_STATIC_LTLIBS = @MCA_opal_if_STATIC_LTLIBS@ +MCA_opal_if_STATIC_SUBDIRS = @MCA_opal_if_STATIC_SUBDIRS@ +MCA_opal_installdirs_ALL_COMPONENTS = @MCA_opal_installdirs_ALL_COMPONENTS@ +MCA_opal_installdirs_ALL_SUBDIRS = @MCA_opal_installdirs_ALL_SUBDIRS@ +MCA_opal_installdirs_DSO_COMPONENTS = @MCA_opal_installdirs_DSO_COMPONENTS@ +MCA_opal_installdirs_DSO_SUBDIRS = @MCA_opal_installdirs_DSO_SUBDIRS@ +MCA_opal_installdirs_STATIC_COMPONENTS = @MCA_opal_installdirs_STATIC_COMPONENTS@ +MCA_opal_installdirs_STATIC_LTLIBS = @MCA_opal_installdirs_STATIC_LTLIBS@ +MCA_opal_installdirs_STATIC_SUBDIRS = @MCA_opal_installdirs_STATIC_SUBDIRS@ +MCA_opal_memchecker_ALL_COMPONENTS = @MCA_opal_memchecker_ALL_COMPONENTS@ +MCA_opal_memchecker_ALL_SUBDIRS = @MCA_opal_memchecker_ALL_SUBDIRS@ +MCA_opal_memchecker_DSO_COMPONENTS = @MCA_opal_memchecker_DSO_COMPONENTS@ +MCA_opal_memchecker_DSO_SUBDIRS = @MCA_opal_memchecker_DSO_SUBDIRS@ +MCA_opal_memchecker_STATIC_COMPONENTS = @MCA_opal_memchecker_STATIC_COMPONENTS@ +MCA_opal_memchecker_STATIC_LTLIBS = @MCA_opal_memchecker_STATIC_LTLIBS@ +MCA_opal_memchecker_STATIC_SUBDIRS = @MCA_opal_memchecker_STATIC_SUBDIRS@ +MCA_opal_memcpy_ALL_COMPONENTS = @MCA_opal_memcpy_ALL_COMPONENTS@ +MCA_opal_memcpy_ALL_SUBDIRS = @MCA_opal_memcpy_ALL_SUBDIRS@ +MCA_opal_memcpy_DSO_COMPONENTS = @MCA_opal_memcpy_DSO_COMPONENTS@ +MCA_opal_memcpy_DSO_SUBDIRS = @MCA_opal_memcpy_DSO_SUBDIRS@ +MCA_opal_memcpy_STATIC_COMPONENTS = @MCA_opal_memcpy_STATIC_COMPONENTS@ +MCA_opal_memcpy_STATIC_LTLIBS = @MCA_opal_memcpy_STATIC_LTLIBS@ +MCA_opal_memcpy_STATIC_SUBDIRS = @MCA_opal_memcpy_STATIC_SUBDIRS@ +MCA_opal_memory_ALL_COMPONENTS = @MCA_opal_memory_ALL_COMPONENTS@ +MCA_opal_memory_ALL_SUBDIRS = @MCA_opal_memory_ALL_SUBDIRS@ +MCA_opal_memory_DSO_COMPONENTS = @MCA_opal_memory_DSO_COMPONENTS@ +MCA_opal_memory_DSO_SUBDIRS = @MCA_opal_memory_DSO_SUBDIRS@ +MCA_opal_memory_STATIC_COMPONENTS = @MCA_opal_memory_STATIC_COMPONENTS@ +MCA_opal_memory_STATIC_LTLIBS = @MCA_opal_memory_STATIC_LTLIBS@ +MCA_opal_memory_STATIC_SUBDIRS = @MCA_opal_memory_STATIC_SUBDIRS@ +MCA_opal_mpool_ALL_COMPONENTS = @MCA_opal_mpool_ALL_COMPONENTS@ +MCA_opal_mpool_ALL_SUBDIRS = @MCA_opal_mpool_ALL_SUBDIRS@ +MCA_opal_mpool_DSO_COMPONENTS = @MCA_opal_mpool_DSO_COMPONENTS@ +MCA_opal_mpool_DSO_SUBDIRS = @MCA_opal_mpool_DSO_SUBDIRS@ +MCA_opal_mpool_STATIC_COMPONENTS = @MCA_opal_mpool_STATIC_COMPONENTS@ +MCA_opal_mpool_STATIC_LTLIBS = @MCA_opal_mpool_STATIC_LTLIBS@ +MCA_opal_mpool_STATIC_SUBDIRS = @MCA_opal_mpool_STATIC_SUBDIRS@ +MCA_opal_patcher_ALL_COMPONENTS = @MCA_opal_patcher_ALL_COMPONENTS@ +MCA_opal_patcher_ALL_SUBDIRS = @MCA_opal_patcher_ALL_SUBDIRS@ +MCA_opal_patcher_DSO_COMPONENTS = @MCA_opal_patcher_DSO_COMPONENTS@ +MCA_opal_patcher_DSO_SUBDIRS = @MCA_opal_patcher_DSO_SUBDIRS@ +MCA_opal_patcher_STATIC_COMPONENTS = @MCA_opal_patcher_STATIC_COMPONENTS@ +MCA_opal_patcher_STATIC_LTLIBS = @MCA_opal_patcher_STATIC_LTLIBS@ +MCA_opal_patcher_STATIC_SUBDIRS = @MCA_opal_patcher_STATIC_SUBDIRS@ +MCA_opal_pmix_ALL_COMPONENTS = @MCA_opal_pmix_ALL_COMPONENTS@ +MCA_opal_pmix_ALL_SUBDIRS = @MCA_opal_pmix_ALL_SUBDIRS@ +MCA_opal_pmix_DSO_COMPONENTS = @MCA_opal_pmix_DSO_COMPONENTS@ +MCA_opal_pmix_DSO_SUBDIRS = @MCA_opal_pmix_DSO_SUBDIRS@ +MCA_opal_pmix_STATIC_COMPONENTS = @MCA_opal_pmix_STATIC_COMPONENTS@ +MCA_opal_pmix_STATIC_LTLIBS = @MCA_opal_pmix_STATIC_LTLIBS@ +MCA_opal_pmix_STATIC_SUBDIRS = @MCA_opal_pmix_STATIC_SUBDIRS@ +MCA_opal_pstat_ALL_COMPONENTS = @MCA_opal_pstat_ALL_COMPONENTS@ +MCA_opal_pstat_ALL_SUBDIRS = @MCA_opal_pstat_ALL_SUBDIRS@ +MCA_opal_pstat_DSO_COMPONENTS = @MCA_opal_pstat_DSO_COMPONENTS@ +MCA_opal_pstat_DSO_SUBDIRS = @MCA_opal_pstat_DSO_SUBDIRS@ +MCA_opal_pstat_STATIC_COMPONENTS = @MCA_opal_pstat_STATIC_COMPONENTS@ +MCA_opal_pstat_STATIC_LTLIBS = @MCA_opal_pstat_STATIC_LTLIBS@ +MCA_opal_pstat_STATIC_SUBDIRS = @MCA_opal_pstat_STATIC_SUBDIRS@ +MCA_opal_rcache_ALL_COMPONENTS = @MCA_opal_rcache_ALL_COMPONENTS@ +MCA_opal_rcache_ALL_SUBDIRS = @MCA_opal_rcache_ALL_SUBDIRS@ +MCA_opal_rcache_DSO_COMPONENTS = @MCA_opal_rcache_DSO_COMPONENTS@ +MCA_opal_rcache_DSO_SUBDIRS = @MCA_opal_rcache_DSO_SUBDIRS@ +MCA_opal_rcache_STATIC_COMPONENTS = @MCA_opal_rcache_STATIC_COMPONENTS@ +MCA_opal_rcache_STATIC_LTLIBS = @MCA_opal_rcache_STATIC_LTLIBS@ +MCA_opal_rcache_STATIC_SUBDIRS = @MCA_opal_rcache_STATIC_SUBDIRS@ +MCA_opal_reachable_ALL_COMPONENTS = @MCA_opal_reachable_ALL_COMPONENTS@ +MCA_opal_reachable_ALL_SUBDIRS = @MCA_opal_reachable_ALL_SUBDIRS@ +MCA_opal_reachable_DSO_COMPONENTS = @MCA_opal_reachable_DSO_COMPONENTS@ +MCA_opal_reachable_DSO_SUBDIRS = @MCA_opal_reachable_DSO_SUBDIRS@ +MCA_opal_reachable_STATIC_COMPONENTS = @MCA_opal_reachable_STATIC_COMPONENTS@ +MCA_opal_reachable_STATIC_LTLIBS = @MCA_opal_reachable_STATIC_LTLIBS@ +MCA_opal_reachable_STATIC_SUBDIRS = @MCA_opal_reachable_STATIC_SUBDIRS@ +MCA_opal_shmem_ALL_COMPONENTS = @MCA_opal_shmem_ALL_COMPONENTS@ +MCA_opal_shmem_ALL_SUBDIRS = @MCA_opal_shmem_ALL_SUBDIRS@ +MCA_opal_shmem_DSO_COMPONENTS = @MCA_opal_shmem_DSO_COMPONENTS@ +MCA_opal_shmem_DSO_SUBDIRS = @MCA_opal_shmem_DSO_SUBDIRS@ +MCA_opal_shmem_STATIC_COMPONENTS = @MCA_opal_shmem_STATIC_COMPONENTS@ +MCA_opal_shmem_STATIC_LTLIBS = @MCA_opal_shmem_STATIC_LTLIBS@ +MCA_opal_shmem_STATIC_SUBDIRS = @MCA_opal_shmem_STATIC_SUBDIRS@ +MCA_opal_timer_ALL_COMPONENTS = @MCA_opal_timer_ALL_COMPONENTS@ +MCA_opal_timer_ALL_SUBDIRS = @MCA_opal_timer_ALL_SUBDIRS@ +MCA_opal_timer_DSO_COMPONENTS = @MCA_opal_timer_DSO_COMPONENTS@ +MCA_opal_timer_DSO_SUBDIRS = @MCA_opal_timer_DSO_SUBDIRS@ +MCA_opal_timer_STATIC_COMPONENTS = @MCA_opal_timer_STATIC_COMPONENTS@ +MCA_opal_timer_STATIC_LTLIBS = @MCA_opal_timer_STATIC_LTLIBS@ +MCA_opal_timer_STATIC_SUBDIRS = @MCA_opal_timer_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORKS = @MCA_orte_FRAMEWORKS@ +MCA_orte_FRAMEWORKS_SUBDIRS = @MCA_orte_FRAMEWORKS_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORK_LIBS = @MCA_orte_FRAMEWORK_LIBS@ +MCA_orte_common_ALL_COMPONENTS = @MCA_orte_common_ALL_COMPONENTS@ +MCA_orte_common_ALL_SUBDIRS = @MCA_orte_common_ALL_SUBDIRS@ +MCA_orte_common_DSO_COMPONENTS = @MCA_orte_common_DSO_COMPONENTS@ +MCA_orte_common_DSO_SUBDIRS = @MCA_orte_common_DSO_SUBDIRS@ +MCA_orte_common_STATIC_COMPONENTS = @MCA_orte_common_STATIC_COMPONENTS@ +MCA_orte_common_STATIC_LTLIBS = @MCA_orte_common_STATIC_LTLIBS@ +MCA_orte_common_STATIC_SUBDIRS = @MCA_orte_common_STATIC_SUBDIRS@ +MCA_orte_errmgr_ALL_COMPONENTS = @MCA_orte_errmgr_ALL_COMPONENTS@ +MCA_orte_errmgr_ALL_SUBDIRS = @MCA_orte_errmgr_ALL_SUBDIRS@ +MCA_orte_errmgr_DSO_COMPONENTS = @MCA_orte_errmgr_DSO_COMPONENTS@ +MCA_orte_errmgr_DSO_SUBDIRS = @MCA_orte_errmgr_DSO_SUBDIRS@ +MCA_orte_errmgr_STATIC_COMPONENTS = @MCA_orte_errmgr_STATIC_COMPONENTS@ +MCA_orte_errmgr_STATIC_LTLIBS = @MCA_orte_errmgr_STATIC_LTLIBS@ +MCA_orte_errmgr_STATIC_SUBDIRS = @MCA_orte_errmgr_STATIC_SUBDIRS@ +MCA_orte_ess_ALL_COMPONENTS = @MCA_orte_ess_ALL_COMPONENTS@ +MCA_orte_ess_ALL_SUBDIRS = @MCA_orte_ess_ALL_SUBDIRS@ +MCA_orte_ess_DSO_COMPONENTS = @MCA_orte_ess_DSO_COMPONENTS@ +MCA_orte_ess_DSO_SUBDIRS = @MCA_orte_ess_DSO_SUBDIRS@ +MCA_orte_ess_STATIC_COMPONENTS = @MCA_orte_ess_STATIC_COMPONENTS@ +MCA_orte_ess_STATIC_LTLIBS = @MCA_orte_ess_STATIC_LTLIBS@ +MCA_orte_ess_STATIC_SUBDIRS = @MCA_orte_ess_STATIC_SUBDIRS@ +MCA_orte_filem_ALL_COMPONENTS = @MCA_orte_filem_ALL_COMPONENTS@ +MCA_orte_filem_ALL_SUBDIRS = @MCA_orte_filem_ALL_SUBDIRS@ +MCA_orte_filem_DSO_COMPONENTS = @MCA_orte_filem_DSO_COMPONENTS@ +MCA_orte_filem_DSO_SUBDIRS = @MCA_orte_filem_DSO_SUBDIRS@ +MCA_orte_filem_STATIC_COMPONENTS = @MCA_orte_filem_STATIC_COMPONENTS@ +MCA_orte_filem_STATIC_LTLIBS = @MCA_orte_filem_STATIC_LTLIBS@ +MCA_orte_filem_STATIC_SUBDIRS = @MCA_orte_filem_STATIC_SUBDIRS@ +MCA_orte_grpcomm_ALL_COMPONENTS = @MCA_orte_grpcomm_ALL_COMPONENTS@ +MCA_orte_grpcomm_ALL_SUBDIRS = @MCA_orte_grpcomm_ALL_SUBDIRS@ +MCA_orte_grpcomm_DSO_COMPONENTS = @MCA_orte_grpcomm_DSO_COMPONENTS@ +MCA_orte_grpcomm_DSO_SUBDIRS = @MCA_orte_grpcomm_DSO_SUBDIRS@ +MCA_orte_grpcomm_STATIC_COMPONENTS = @MCA_orte_grpcomm_STATIC_COMPONENTS@ +MCA_orte_grpcomm_STATIC_LTLIBS = @MCA_orte_grpcomm_STATIC_LTLIBS@ +MCA_orte_grpcomm_STATIC_SUBDIRS = @MCA_orte_grpcomm_STATIC_SUBDIRS@ +MCA_orte_iof_ALL_COMPONENTS = @MCA_orte_iof_ALL_COMPONENTS@ +MCA_orte_iof_ALL_SUBDIRS = @MCA_orte_iof_ALL_SUBDIRS@ +MCA_orte_iof_DSO_COMPONENTS = @MCA_orte_iof_DSO_COMPONENTS@ +MCA_orte_iof_DSO_SUBDIRS = @MCA_orte_iof_DSO_SUBDIRS@ +MCA_orte_iof_STATIC_COMPONENTS = @MCA_orte_iof_STATIC_COMPONENTS@ +MCA_orte_iof_STATIC_LTLIBS = @MCA_orte_iof_STATIC_LTLIBS@ +MCA_orte_iof_STATIC_SUBDIRS = @MCA_orte_iof_STATIC_SUBDIRS@ +MCA_orte_odls_ALL_COMPONENTS = @MCA_orte_odls_ALL_COMPONENTS@ +MCA_orte_odls_ALL_SUBDIRS = @MCA_orte_odls_ALL_SUBDIRS@ +MCA_orte_odls_DSO_COMPONENTS = @MCA_orte_odls_DSO_COMPONENTS@ +MCA_orte_odls_DSO_SUBDIRS = @MCA_orte_odls_DSO_SUBDIRS@ +MCA_orte_odls_STATIC_COMPONENTS = @MCA_orte_odls_STATIC_COMPONENTS@ +MCA_orte_odls_STATIC_LTLIBS = @MCA_orte_odls_STATIC_LTLIBS@ +MCA_orte_odls_STATIC_SUBDIRS = @MCA_orte_odls_STATIC_SUBDIRS@ +MCA_orte_oob_ALL_COMPONENTS = @MCA_orte_oob_ALL_COMPONENTS@ +MCA_orte_oob_ALL_SUBDIRS = @MCA_orte_oob_ALL_SUBDIRS@ +MCA_orte_oob_DSO_COMPONENTS = @MCA_orte_oob_DSO_COMPONENTS@ +MCA_orte_oob_DSO_SUBDIRS = @MCA_orte_oob_DSO_SUBDIRS@ +MCA_orte_oob_STATIC_COMPONENTS = @MCA_orte_oob_STATIC_COMPONENTS@ +MCA_orte_oob_STATIC_LTLIBS = @MCA_orte_oob_STATIC_LTLIBS@ +MCA_orte_oob_STATIC_SUBDIRS = @MCA_orte_oob_STATIC_SUBDIRS@ +MCA_orte_plm_ALL_COMPONENTS = @MCA_orte_plm_ALL_COMPONENTS@ +MCA_orte_plm_ALL_SUBDIRS = @MCA_orte_plm_ALL_SUBDIRS@ +MCA_orte_plm_DSO_COMPONENTS = @MCA_orte_plm_DSO_COMPONENTS@ +MCA_orte_plm_DSO_SUBDIRS = @MCA_orte_plm_DSO_SUBDIRS@ +MCA_orte_plm_STATIC_COMPONENTS = @MCA_orte_plm_STATIC_COMPONENTS@ +MCA_orte_plm_STATIC_LTLIBS = @MCA_orte_plm_STATIC_LTLIBS@ +MCA_orte_plm_STATIC_SUBDIRS = @MCA_orte_plm_STATIC_SUBDIRS@ +MCA_orte_ras_ALL_COMPONENTS = @MCA_orte_ras_ALL_COMPONENTS@ +MCA_orte_ras_ALL_SUBDIRS = @MCA_orte_ras_ALL_SUBDIRS@ +MCA_orte_ras_DSO_COMPONENTS = @MCA_orte_ras_DSO_COMPONENTS@ +MCA_orte_ras_DSO_SUBDIRS = @MCA_orte_ras_DSO_SUBDIRS@ +MCA_orte_ras_STATIC_COMPONENTS = @MCA_orte_ras_STATIC_COMPONENTS@ +MCA_orte_ras_STATIC_LTLIBS = @MCA_orte_ras_STATIC_LTLIBS@ +MCA_orte_ras_STATIC_SUBDIRS = @MCA_orte_ras_STATIC_SUBDIRS@ +MCA_orte_regx_ALL_COMPONENTS = @MCA_orte_regx_ALL_COMPONENTS@ +MCA_orte_regx_ALL_SUBDIRS = @MCA_orte_regx_ALL_SUBDIRS@ +MCA_orte_regx_DSO_COMPONENTS = @MCA_orte_regx_DSO_COMPONENTS@ +MCA_orte_regx_DSO_SUBDIRS = @MCA_orte_regx_DSO_SUBDIRS@ +MCA_orte_regx_STATIC_COMPONENTS = @MCA_orte_regx_STATIC_COMPONENTS@ +MCA_orte_regx_STATIC_LTLIBS = @MCA_orte_regx_STATIC_LTLIBS@ +MCA_orte_regx_STATIC_SUBDIRS = @MCA_orte_regx_STATIC_SUBDIRS@ +MCA_orte_rmaps_ALL_COMPONENTS = @MCA_orte_rmaps_ALL_COMPONENTS@ +MCA_orte_rmaps_ALL_SUBDIRS = @MCA_orte_rmaps_ALL_SUBDIRS@ +MCA_orte_rmaps_DSO_COMPONENTS = @MCA_orte_rmaps_DSO_COMPONENTS@ +MCA_orte_rmaps_DSO_SUBDIRS = @MCA_orte_rmaps_DSO_SUBDIRS@ +MCA_orte_rmaps_STATIC_COMPONENTS = @MCA_orte_rmaps_STATIC_COMPONENTS@ +MCA_orte_rmaps_STATIC_LTLIBS = @MCA_orte_rmaps_STATIC_LTLIBS@ +MCA_orte_rmaps_STATIC_SUBDIRS = @MCA_orte_rmaps_STATIC_SUBDIRS@ +MCA_orte_rml_ALL_COMPONENTS = @MCA_orte_rml_ALL_COMPONENTS@ +MCA_orte_rml_ALL_SUBDIRS = @MCA_orte_rml_ALL_SUBDIRS@ +MCA_orte_rml_DSO_COMPONENTS = @MCA_orte_rml_DSO_COMPONENTS@ +MCA_orte_rml_DSO_SUBDIRS = @MCA_orte_rml_DSO_SUBDIRS@ +MCA_orte_rml_STATIC_COMPONENTS = @MCA_orte_rml_STATIC_COMPONENTS@ +MCA_orte_rml_STATIC_LTLIBS = @MCA_orte_rml_STATIC_LTLIBS@ +MCA_orte_rml_STATIC_SUBDIRS = @MCA_orte_rml_STATIC_SUBDIRS@ +MCA_orte_routed_ALL_COMPONENTS = @MCA_orte_routed_ALL_COMPONENTS@ +MCA_orte_routed_ALL_SUBDIRS = @MCA_orte_routed_ALL_SUBDIRS@ +MCA_orte_routed_DSO_COMPONENTS = @MCA_orte_routed_DSO_COMPONENTS@ +MCA_orte_routed_DSO_SUBDIRS = @MCA_orte_routed_DSO_SUBDIRS@ +MCA_orte_routed_STATIC_COMPONENTS = @MCA_orte_routed_STATIC_COMPONENTS@ +MCA_orte_routed_STATIC_LTLIBS = @MCA_orte_routed_STATIC_LTLIBS@ +MCA_orte_routed_STATIC_SUBDIRS = @MCA_orte_routed_STATIC_SUBDIRS@ +MCA_orte_rtc_ALL_COMPONENTS = @MCA_orte_rtc_ALL_COMPONENTS@ +MCA_orte_rtc_ALL_SUBDIRS = @MCA_orte_rtc_ALL_SUBDIRS@ +MCA_orte_rtc_DSO_COMPONENTS = @MCA_orte_rtc_DSO_COMPONENTS@ +MCA_orte_rtc_DSO_SUBDIRS = @MCA_orte_rtc_DSO_SUBDIRS@ +MCA_orte_rtc_STATIC_COMPONENTS = @MCA_orte_rtc_STATIC_COMPONENTS@ +MCA_orte_rtc_STATIC_LTLIBS = @MCA_orte_rtc_STATIC_LTLIBS@ +MCA_orte_rtc_STATIC_SUBDIRS = @MCA_orte_rtc_STATIC_SUBDIRS@ +MCA_orte_schizo_ALL_COMPONENTS = @MCA_orte_schizo_ALL_COMPONENTS@ +MCA_orte_schizo_ALL_SUBDIRS = @MCA_orte_schizo_ALL_SUBDIRS@ +MCA_orte_schizo_DSO_COMPONENTS = @MCA_orte_schizo_DSO_COMPONENTS@ +MCA_orte_schizo_DSO_SUBDIRS = @MCA_orte_schizo_DSO_SUBDIRS@ +MCA_orte_schizo_STATIC_COMPONENTS = @MCA_orte_schizo_STATIC_COMPONENTS@ +MCA_orte_schizo_STATIC_LTLIBS = @MCA_orte_schizo_STATIC_LTLIBS@ +MCA_orte_schizo_STATIC_SUBDIRS = @MCA_orte_schizo_STATIC_SUBDIRS@ +MCA_orte_snapc_ALL_COMPONENTS = @MCA_orte_snapc_ALL_COMPONENTS@ +MCA_orte_snapc_ALL_SUBDIRS = @MCA_orte_snapc_ALL_SUBDIRS@ +MCA_orte_snapc_DSO_COMPONENTS = @MCA_orte_snapc_DSO_COMPONENTS@ +MCA_orte_snapc_DSO_SUBDIRS = @MCA_orte_snapc_DSO_SUBDIRS@ +MCA_orte_snapc_STATIC_COMPONENTS = @MCA_orte_snapc_STATIC_COMPONENTS@ +MCA_orte_snapc_STATIC_LTLIBS = @MCA_orte_snapc_STATIC_LTLIBS@ +MCA_orte_snapc_STATIC_SUBDIRS = @MCA_orte_snapc_STATIC_SUBDIRS@ +MCA_orte_sstore_ALL_COMPONENTS = @MCA_orte_sstore_ALL_COMPONENTS@ +MCA_orte_sstore_ALL_SUBDIRS = @MCA_orte_sstore_ALL_SUBDIRS@ +MCA_orte_sstore_DSO_COMPONENTS = @MCA_orte_sstore_DSO_COMPONENTS@ +MCA_orte_sstore_DSO_SUBDIRS = @MCA_orte_sstore_DSO_SUBDIRS@ +MCA_orte_sstore_STATIC_COMPONENTS = @MCA_orte_sstore_STATIC_COMPONENTS@ +MCA_orte_sstore_STATIC_LTLIBS = @MCA_orte_sstore_STATIC_LTLIBS@ +MCA_orte_sstore_STATIC_SUBDIRS = @MCA_orte_sstore_STATIC_SUBDIRS@ +MCA_orte_state_ALL_COMPONENTS = @MCA_orte_state_ALL_COMPONENTS@ +MCA_orte_state_ALL_SUBDIRS = @MCA_orte_state_ALL_SUBDIRS@ +MCA_orte_state_DSO_COMPONENTS = @MCA_orte_state_DSO_COMPONENTS@ +MCA_orte_state_DSO_SUBDIRS = @MCA_orte_state_DSO_SUBDIRS@ +MCA_orte_state_STATIC_COMPONENTS = @MCA_orte_state_STATIC_COMPONENTS@ +MCA_orte_state_STATIC_LTLIBS = @MCA_orte_state_STATIC_LTLIBS@ +MCA_orte_state_STATIC_SUBDIRS = @MCA_orte_state_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORKS = @MCA_oshmem_FRAMEWORKS@ +MCA_oshmem_FRAMEWORKS_SUBDIRS = @MCA_oshmem_FRAMEWORKS_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORK_LIBS = @MCA_oshmem_FRAMEWORK_LIBS@ +MCA_oshmem_atomic_ALL_COMPONENTS = @MCA_oshmem_atomic_ALL_COMPONENTS@ +MCA_oshmem_atomic_ALL_SUBDIRS = @MCA_oshmem_atomic_ALL_SUBDIRS@ +MCA_oshmem_atomic_DSO_COMPONENTS = @MCA_oshmem_atomic_DSO_COMPONENTS@ +MCA_oshmem_atomic_DSO_SUBDIRS = @MCA_oshmem_atomic_DSO_SUBDIRS@ +MCA_oshmem_atomic_STATIC_COMPONENTS = @MCA_oshmem_atomic_STATIC_COMPONENTS@ +MCA_oshmem_atomic_STATIC_LTLIBS = @MCA_oshmem_atomic_STATIC_LTLIBS@ +MCA_oshmem_atomic_STATIC_SUBDIRS = @MCA_oshmem_atomic_STATIC_SUBDIRS@ +MCA_oshmem_memheap_ALL_COMPONENTS = @MCA_oshmem_memheap_ALL_COMPONENTS@ +MCA_oshmem_memheap_ALL_SUBDIRS = @MCA_oshmem_memheap_ALL_SUBDIRS@ +MCA_oshmem_memheap_DIRECT_CALL_HEADER = @MCA_oshmem_memheap_DIRECT_CALL_HEADER@ +MCA_oshmem_memheap_DSO_COMPONENTS = @MCA_oshmem_memheap_DSO_COMPONENTS@ +MCA_oshmem_memheap_DSO_SUBDIRS = @MCA_oshmem_memheap_DSO_SUBDIRS@ +MCA_oshmem_memheap_STATIC_COMPONENTS = @MCA_oshmem_memheap_STATIC_COMPONENTS@ +MCA_oshmem_memheap_STATIC_LTLIBS = @MCA_oshmem_memheap_STATIC_LTLIBS@ +MCA_oshmem_memheap_STATIC_SUBDIRS = @MCA_oshmem_memheap_STATIC_SUBDIRS@ +MCA_oshmem_scoll_ALL_COMPONENTS = @MCA_oshmem_scoll_ALL_COMPONENTS@ +MCA_oshmem_scoll_ALL_SUBDIRS = @MCA_oshmem_scoll_ALL_SUBDIRS@ +MCA_oshmem_scoll_DSO_COMPONENTS = @MCA_oshmem_scoll_DSO_COMPONENTS@ +MCA_oshmem_scoll_DSO_SUBDIRS = @MCA_oshmem_scoll_DSO_SUBDIRS@ +MCA_oshmem_scoll_STATIC_COMPONENTS = @MCA_oshmem_scoll_STATIC_COMPONENTS@ +MCA_oshmem_scoll_STATIC_LTLIBS = @MCA_oshmem_scoll_STATIC_LTLIBS@ +MCA_oshmem_scoll_STATIC_SUBDIRS = @MCA_oshmem_scoll_STATIC_SUBDIRS@ +MCA_oshmem_spml_ALL_COMPONENTS = @MCA_oshmem_spml_ALL_COMPONENTS@ +MCA_oshmem_spml_ALL_SUBDIRS = @MCA_oshmem_spml_ALL_SUBDIRS@ +MCA_oshmem_spml_DIRECT_CALL_HEADER = @MCA_oshmem_spml_DIRECT_CALL_HEADER@ +MCA_oshmem_spml_DSO_COMPONENTS = @MCA_oshmem_spml_DSO_COMPONENTS@ +MCA_oshmem_spml_DSO_SUBDIRS = @MCA_oshmem_spml_DSO_SUBDIRS@ +MCA_oshmem_spml_STATIC_COMPONENTS = @MCA_oshmem_spml_STATIC_COMPONENTS@ +MCA_oshmem_spml_STATIC_LTLIBS = @MCA_oshmem_spml_STATIC_LTLIBS@ +MCA_oshmem_spml_STATIC_SUBDIRS = @MCA_oshmem_spml_STATIC_SUBDIRS@ +MCA_oshmem_sshmem_ALL_COMPONENTS = @MCA_oshmem_sshmem_ALL_COMPONENTS@ +MCA_oshmem_sshmem_ALL_SUBDIRS = @MCA_oshmem_sshmem_ALL_SUBDIRS@ +MCA_oshmem_sshmem_DSO_COMPONENTS = @MCA_oshmem_sshmem_DSO_COMPONENTS@ +MCA_oshmem_sshmem_DSO_SUBDIRS = @MCA_oshmem_sshmem_DSO_SUBDIRS@ +MCA_oshmem_sshmem_STATIC_COMPONENTS = @MCA_oshmem_sshmem_STATIC_COMPONENTS@ +MCA_oshmem_sshmem_STATIC_LTLIBS = @MCA_oshmem_sshmem_STATIC_LTLIBS@ +MCA_oshmem_sshmem_STATIC_SUBDIRS = @MCA_oshmem_sshmem_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +MPIR_UNWIND_CFLAGS = @MPIR_UNWIND_CFLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPI_ALIGNMENT_FORTRAN_CHARACTER = @OMPI_ALIGNMENT_FORTRAN_CHARACTER@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX16 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX16@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX32 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX32@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX4 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX4@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX8 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX8@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION@ +OMPI_ALIGNMENT_FORTRAN_INTEGER = @OMPI_ALIGNMENT_FORTRAN_INTEGER@ +OMPI_ALIGNMENT_FORTRAN_INTEGER1 = @OMPI_ALIGNMENT_FORTRAN_INTEGER1@ +OMPI_ALIGNMENT_FORTRAN_INTEGER16 = @OMPI_ALIGNMENT_FORTRAN_INTEGER16@ +OMPI_ALIGNMENT_FORTRAN_INTEGER2 = @OMPI_ALIGNMENT_FORTRAN_INTEGER2@ +OMPI_ALIGNMENT_FORTRAN_INTEGER4 = @OMPI_ALIGNMENT_FORTRAN_INTEGER4@ +OMPI_ALIGNMENT_FORTRAN_INTEGER8 = @OMPI_ALIGNMENT_FORTRAN_INTEGER8@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL = @OMPI_ALIGNMENT_FORTRAN_LOGICAL@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL1 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL1@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL2 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL2@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL4 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL4@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL8 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL8@ +OMPI_ALIGNMENT_FORTRAN_REAL = @OMPI_ALIGNMENT_FORTRAN_REAL@ +OMPI_ALIGNMENT_FORTRAN_REAL16 = @OMPI_ALIGNMENT_FORTRAN_REAL16@ +OMPI_ALIGNMENT_FORTRAN_REAL2 = @OMPI_ALIGNMENT_FORTRAN_REAL2@ +OMPI_ALIGNMENT_FORTRAN_REAL4 = @OMPI_ALIGNMENT_FORTRAN_REAL4@ +OMPI_ALIGNMENT_FORTRAN_REAL8 = @OMPI_ALIGNMENT_FORTRAN_REAL8@ +OMPI_CONTRIB_DIST_SUBDIRS = @OMPI_CONTRIB_DIST_SUBDIRS@ +OMPI_CONTRIB_SUBDIRS = @OMPI_CONTRIB_SUBDIRS@ +OMPI_CXX_ABSOLUTE = @OMPI_CXX_ABSOLUTE@ +OMPI_ENABLE_GREQUEST_EXTENSIONS = @OMPI_ENABLE_GREQUEST_EXTENSIONS@ +OMPI_ENABLE_MPI1_COMPAT = @OMPI_ENABLE_MPI1_COMPAT@ +OMPI_F08_SUFFIX = @OMPI_F08_SUFFIX@ +OMPI_FC = @OMPI_FC@ +OMPI_FC_ABSOLUTE = @OMPI_FC_ABSOLUTE@ +OMPI_FC_MODULE_FLAG = @OMPI_FC_MODULE_FLAG@ +OMPI_FORTRAN_BUILD_SIZEOF = @OMPI_FORTRAN_BUILD_SIZEOF@ +OMPI_FORTRAN_CAPS = @OMPI_FORTRAN_CAPS@ +OMPI_FORTRAN_CKINDS = @OMPI_FORTRAN_CKINDS@ +OMPI_FORTRAN_DOUBLE_UNDERSCORE = @OMPI_FORTRAN_DOUBLE_UNDERSCORE@ +OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS = @OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS@ +OMPI_FORTRAN_F08_PREDECL = @OMPI_FORTRAN_F08_PREDECL@ +OMPI_FORTRAN_F08_TYPE = @OMPI_FORTRAN_F08_TYPE@ +OMPI_FORTRAN_HAVE_ABSTRACT = @OMPI_FORTRAN_HAVE_ABSTRACT@ +OMPI_FORTRAN_HAVE_ASYNCHRONOUS = @OMPI_FORTRAN_HAVE_ASYNCHRONOUS@ +OMPI_FORTRAN_HAVE_BIND_C = @OMPI_FORTRAN_HAVE_BIND_C@ +OMPI_FORTRAN_HAVE_C_FUNLOC = @OMPI_FORTRAN_HAVE_C_FUNLOC@ +OMPI_FORTRAN_HAVE_INTERFACE = @OMPI_FORTRAN_HAVE_INTERFACE@ +OMPI_FORTRAN_HAVE_ISO_C_BINDING = @OMPI_FORTRAN_HAVE_ISO_C_BINDING@ +OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV = @OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV@ +OMPI_FORTRAN_HAVE_PRIVATE = @OMPI_FORTRAN_HAVE_PRIVATE@ +OMPI_FORTRAN_HAVE_PROCEDURE = @OMPI_FORTRAN_HAVE_PROCEDURE@ +OMPI_FORTRAN_HAVE_STORAGE_SIZE = @OMPI_FORTRAN_HAVE_STORAGE_SIZE@ +OMPI_FORTRAN_HAVE_USE_ONLY = @OMPI_FORTRAN_HAVE_USE_ONLY@ +OMPI_FORTRAN_IGNORE_TKR_PREDECL = @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ +OMPI_FORTRAN_IGNORE_TKR_TYPE = @OMPI_FORTRAN_IGNORE_TKR_TYPE@ +OMPI_FORTRAN_IKINDS = @OMPI_FORTRAN_IKINDS@ +OMPI_FORTRAN_MAX_ARRAY_RANK = @OMPI_FORTRAN_MAX_ARRAY_RANK@ +OMPI_FORTRAN_NEED_WRAPPER_ROUTINES = @OMPI_FORTRAN_NEED_WRAPPER_ROUTINES@ +OMPI_FORTRAN_PLAIN = @OMPI_FORTRAN_PLAIN@ +OMPI_FORTRAN_RKINDS = @OMPI_FORTRAN_RKINDS@ +OMPI_FORTRAN_SINGLE_UNDERSCORE = @OMPI_FORTRAN_SINGLE_UNDERSCORE@ +OMPI_FORTRAN_STATUS_SIZE = @OMPI_FORTRAN_STATUS_SIZE@ +OMPI_FORTRAN_USEMPIF08_LIB = @OMPI_FORTRAN_USEMPIF08_LIB@ +OMPI_FORTRAN_USEMPI_DIR = @OMPI_FORTRAN_USEMPI_DIR@ +OMPI_FORTRAN_USEMPI_LIB = @OMPI_FORTRAN_USEMPI_LIB@ +OMPI_F_SUFFIX = @OMPI_F_SUFFIX@ +OMPI_GREEK_VERSION = @OMPI_GREEK_VERSION@ +OMPI_HAVE_FORTRAN_CHARACTER = @OMPI_HAVE_FORTRAN_CHARACTER@ +OMPI_HAVE_FORTRAN_COMPLEX = @OMPI_HAVE_FORTRAN_COMPLEX@ +OMPI_HAVE_FORTRAN_COMPLEX16 = @OMPI_HAVE_FORTRAN_COMPLEX16@ +OMPI_HAVE_FORTRAN_COMPLEX32 = @OMPI_HAVE_FORTRAN_COMPLEX32@ +OMPI_HAVE_FORTRAN_COMPLEX4 = @OMPI_HAVE_FORTRAN_COMPLEX4@ +OMPI_HAVE_FORTRAN_COMPLEX8 = @OMPI_HAVE_FORTRAN_COMPLEX8@ +OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX = @OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX@ +OMPI_HAVE_FORTRAN_DOUBLE_PRECISION = @OMPI_HAVE_FORTRAN_DOUBLE_PRECISION@ +OMPI_HAVE_FORTRAN_INTEGER = @OMPI_HAVE_FORTRAN_INTEGER@ +OMPI_HAVE_FORTRAN_INTEGER1 = @OMPI_HAVE_FORTRAN_INTEGER1@ +OMPI_HAVE_FORTRAN_INTEGER16 = @OMPI_HAVE_FORTRAN_INTEGER16@ +OMPI_HAVE_FORTRAN_INTEGER2 = @OMPI_HAVE_FORTRAN_INTEGER2@ +OMPI_HAVE_FORTRAN_INTEGER4 = @OMPI_HAVE_FORTRAN_INTEGER4@ +OMPI_HAVE_FORTRAN_INTEGER8 = @OMPI_HAVE_FORTRAN_INTEGER8@ +OMPI_HAVE_FORTRAN_LOGICAL = @OMPI_HAVE_FORTRAN_LOGICAL@ +OMPI_HAVE_FORTRAN_LOGICAL1 = @OMPI_HAVE_FORTRAN_LOGICAL1@ +OMPI_HAVE_FORTRAN_LOGICAL2 = @OMPI_HAVE_FORTRAN_LOGICAL2@ +OMPI_HAVE_FORTRAN_LOGICAL4 = @OMPI_HAVE_FORTRAN_LOGICAL4@ +OMPI_HAVE_FORTRAN_LOGICAL8 = @OMPI_HAVE_FORTRAN_LOGICAL8@ +OMPI_HAVE_FORTRAN_REAL = @OMPI_HAVE_FORTRAN_REAL@ +OMPI_HAVE_FORTRAN_REAL16 = @OMPI_HAVE_FORTRAN_REAL16@ +OMPI_HAVE_FORTRAN_REAL2 = @OMPI_HAVE_FORTRAN_REAL2@ +OMPI_HAVE_FORTRAN_REAL4 = @OMPI_HAVE_FORTRAN_REAL4@ +OMPI_HAVE_FORTRAN_REAL8 = @OMPI_HAVE_FORTRAN_REAL8@ +OMPI_JDK_CPPFLAGS = @OMPI_JDK_CPPFLAGS@ +OMPI_KIND_FORTRAN_CHARACTER = @OMPI_KIND_FORTRAN_CHARACTER@ +OMPI_KIND_FORTRAN_COMPLEX = @OMPI_KIND_FORTRAN_COMPLEX@ +OMPI_KIND_FORTRAN_COMPLEX16 = @OMPI_KIND_FORTRAN_COMPLEX16@ +OMPI_KIND_FORTRAN_COMPLEX32 = @OMPI_KIND_FORTRAN_COMPLEX32@ +OMPI_KIND_FORTRAN_COMPLEX4 = @OMPI_KIND_FORTRAN_COMPLEX4@ +OMPI_KIND_FORTRAN_COMPLEX8 = @OMPI_KIND_FORTRAN_COMPLEX8@ +OMPI_KIND_FORTRAN_DOUBLE_COMPLEX = @OMPI_KIND_FORTRAN_DOUBLE_COMPLEX@ +OMPI_KIND_FORTRAN_DOUBLE_PRECISION = @OMPI_KIND_FORTRAN_DOUBLE_PRECISION@ +OMPI_KIND_FORTRAN_INTEGER = @OMPI_KIND_FORTRAN_INTEGER@ +OMPI_KIND_FORTRAN_INTEGER1 = @OMPI_KIND_FORTRAN_INTEGER1@ +OMPI_KIND_FORTRAN_INTEGER16 = @OMPI_KIND_FORTRAN_INTEGER16@ +OMPI_KIND_FORTRAN_INTEGER2 = @OMPI_KIND_FORTRAN_INTEGER2@ +OMPI_KIND_FORTRAN_INTEGER4 = @OMPI_KIND_FORTRAN_INTEGER4@ +OMPI_KIND_FORTRAN_INTEGER8 = @OMPI_KIND_FORTRAN_INTEGER8@ +OMPI_KIND_FORTRAN_LOGICAL = @OMPI_KIND_FORTRAN_LOGICAL@ +OMPI_KIND_FORTRAN_LOGICAL1 = @OMPI_KIND_FORTRAN_LOGICAL1@ +OMPI_KIND_FORTRAN_LOGICAL2 = @OMPI_KIND_FORTRAN_LOGICAL2@ +OMPI_KIND_FORTRAN_LOGICAL4 = @OMPI_KIND_FORTRAN_LOGICAL4@ +OMPI_KIND_FORTRAN_LOGICAL8 = @OMPI_KIND_FORTRAN_LOGICAL8@ +OMPI_KIND_FORTRAN_REAL = @OMPI_KIND_FORTRAN_REAL@ +OMPI_KIND_FORTRAN_REAL16 = @OMPI_KIND_FORTRAN_REAL16@ +OMPI_KIND_FORTRAN_REAL2 = @OMPI_KIND_FORTRAN_REAL2@ +OMPI_KIND_FORTRAN_REAL4 = @OMPI_KIND_FORTRAN_REAL4@ +OMPI_KIND_FORTRAN_REAL8 = @OMPI_KIND_FORTRAN_REAL8@ +OMPI_LIBMPI_EXTRA_LDFLAGS = @OMPI_LIBMPI_EXTRA_LDFLAGS@ +OMPI_LIBMPI_EXTRA_LIBS = @OMPI_LIBMPI_EXTRA_LIBS@ +OMPI_LIBMPI_NAME = @OMPI_LIBMPI_NAME@ +OMPI_MAJOR_VERSION = @OMPI_MAJOR_VERSION@ +OMPI_MINOR_VERSION = @OMPI_MINOR_VERSION@ +OMPI_MPIEXT_ALL_SUBDIRS = @OMPI_MPIEXT_ALL_SUBDIRS@ +OMPI_MPIEXT_C_DIRS = @OMPI_MPIEXT_C_DIRS@ +OMPI_MPIEXT_C_LIBS = @OMPI_MPIEXT_C_LIBS@ +OMPI_MPIEXT_MPIFH_DIRS = @OMPI_MPIEXT_MPIFH_DIRS@ +OMPI_MPIEXT_MPIFH_LIBS = @OMPI_MPIEXT_MPIFH_LIBS@ +OMPI_MPIEXT_USEMPIF08_DIRS = @OMPI_MPIEXT_USEMPIF08_DIRS@ +OMPI_MPIEXT_USEMPIF08_LIBS = @OMPI_MPIEXT_USEMPIF08_LIBS@ +OMPI_MPIEXT_USEMPI_DIRS = @OMPI_MPIEXT_USEMPI_DIRS@ +OMPI_MPIEXT_USEMPI_LIBS = @OMPI_MPIEXT_USEMPI_LIBS@ +OMPI_MPI_ADDRESS_KIND = @OMPI_MPI_ADDRESS_KIND@ +OMPI_MPI_BIND_PREFIX = @OMPI_MPI_BIND_PREFIX@ +OMPI_MPI_COUNT_KIND = @OMPI_MPI_COUNT_KIND@ +OMPI_MPI_INTEGER_KIND = @OMPI_MPI_INTEGER_KIND@ +OMPI_MPI_OFFSET_KIND = @OMPI_MPI_OFFSET_KIND@ +OMPI_MPI_PREFIX = @OMPI_MPI_PREFIX@ +OMPI_PKG_CONFIG_LDFLAGS = @OMPI_PKG_CONFIG_LDFLAGS@ +OMPI_RELEASE_DATE = @OMPI_RELEASE_DATE@ +OMPI_RELEASE_VERSION = @OMPI_RELEASE_VERSION@ +OMPI_REPO_REV = @OMPI_REPO_REV@ +OMPI_SIZEOF_FORTRAN_CHARACTER = @OMPI_SIZEOF_FORTRAN_CHARACTER@ +OMPI_SIZEOF_FORTRAN_COMPLEX = @OMPI_SIZEOF_FORTRAN_COMPLEX@ +OMPI_SIZEOF_FORTRAN_COMPLEX16 = @OMPI_SIZEOF_FORTRAN_COMPLEX16@ +OMPI_SIZEOF_FORTRAN_COMPLEX32 = @OMPI_SIZEOF_FORTRAN_COMPLEX32@ +OMPI_SIZEOF_FORTRAN_COMPLEX4 = @OMPI_SIZEOF_FORTRAN_COMPLEX4@ +OMPI_SIZEOF_FORTRAN_COMPLEX8 = @OMPI_SIZEOF_FORTRAN_COMPLEX8@ +OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX = @OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX@ +OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION = @OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION@ +OMPI_SIZEOF_FORTRAN_INTEGER = @OMPI_SIZEOF_FORTRAN_INTEGER@ +OMPI_SIZEOF_FORTRAN_INTEGER1 = @OMPI_SIZEOF_FORTRAN_INTEGER1@ +OMPI_SIZEOF_FORTRAN_INTEGER16 = @OMPI_SIZEOF_FORTRAN_INTEGER16@ +OMPI_SIZEOF_FORTRAN_INTEGER2 = @OMPI_SIZEOF_FORTRAN_INTEGER2@ +OMPI_SIZEOF_FORTRAN_INTEGER4 = @OMPI_SIZEOF_FORTRAN_INTEGER4@ +OMPI_SIZEOF_FORTRAN_INTEGER8 = @OMPI_SIZEOF_FORTRAN_INTEGER8@ +OMPI_SIZEOF_FORTRAN_LOGICAL = @OMPI_SIZEOF_FORTRAN_LOGICAL@ +OMPI_SIZEOF_FORTRAN_LOGICAL1 = @OMPI_SIZEOF_FORTRAN_LOGICAL1@ +OMPI_SIZEOF_FORTRAN_LOGICAL2 = @OMPI_SIZEOF_FORTRAN_LOGICAL2@ +OMPI_SIZEOF_FORTRAN_LOGICAL4 = @OMPI_SIZEOF_FORTRAN_LOGICAL4@ +OMPI_SIZEOF_FORTRAN_LOGICAL8 = @OMPI_SIZEOF_FORTRAN_LOGICAL8@ +OMPI_SIZEOF_FORTRAN_REAL = @OMPI_SIZEOF_FORTRAN_REAL@ +OMPI_SIZEOF_FORTRAN_REAL16 = @OMPI_SIZEOF_FORTRAN_REAL16@ +OMPI_SIZEOF_FORTRAN_REAL2 = @OMPI_SIZEOF_FORTRAN_REAL2@ +OMPI_SIZEOF_FORTRAN_REAL4 = @OMPI_SIZEOF_FORTRAN_REAL4@ +OMPI_SIZEOF_FORTRAN_REAL8 = @OMPI_SIZEOF_FORTRAN_REAL8@ +OMPI_TARBALL_VERSION = @OMPI_TARBALL_VERSION@ +OMPI_TOP_BUILDDIR = @OMPI_TOP_BUILDDIR@ +OMPI_TOP_SRCDIR = @OMPI_TOP_SRCDIR@ +OMPI_VERSION = @OMPI_VERSION@ +OMPI_WRAPPER_CXX_LIB = @OMPI_WRAPPER_CXX_LIB@ +OMPI_WRAPPER_CXX_REQUIRED_FILE = @OMPI_WRAPPER_CXX_REQUIRED_FILE@ +OMPI_WRAPPER_EXTRA_CFLAGS = @OMPI_WRAPPER_EXTRA_CFLAGS@ +OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_CPPFLAGS = @OMPI_WRAPPER_EXTRA_CPPFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS = @OMPI_WRAPPER_EXTRA_CXXFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FCFLAGS = @OMPI_WRAPPER_EXTRA_FCFLAGS@ +OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FC_LDFLAGS = @OMPI_WRAPPER_EXTRA_FC_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LDFLAGS = @OMPI_WRAPPER_EXTRA_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LIBS = @OMPI_WRAPPER_EXTRA_LIBS@ +OMPI_WRAPPER_FORTRAN_REQUIRED_FILE = @OMPI_WRAPPER_FORTRAN_REQUIRED_FILE@ +OMPI_WRAPPER_INCLUDEDIR = @OMPI_WRAPPER_INCLUDEDIR@ +OMPI_WRAPPER_LIBDIR = @OMPI_WRAPPER_LIBDIR@ +OPAL_ASM_GSYM = @OPAL_ASM_GSYM@ +OPAL_ASM_LSYM = @OPAL_ASM_LSYM@ +OPAL_ASM_SUPPORT_64BIT = @OPAL_ASM_SUPPORT_64BIT@ +OPAL_ASM_TEXT = @OPAL_ASM_TEXT@ +OPAL_ASM_TYPE = @OPAL_ASM_TYPE@ +OPAL_ASSEMBLY_ARCH = @OPAL_ASSEMBLY_ARCH@ +OPAL_ASSEMBLY_BUILTIN = @OPAL_ASSEMBLY_BUILTIN@ +OPAL_ASSEMBLY_FORMAT = @OPAL_ASSEMBLY_FORMAT@ +OPAL_AS_GLOBAL = @OPAL_AS_GLOBAL@ +OPAL_AS_LABEL_SUFFIX = @OPAL_AS_LABEL_SUFFIX@ +OPAL_CC_ABSOLUTE = @OPAL_CC_ABSOLUTE@ +OPAL_CONFIGURE_CLI = @OPAL_CONFIGURE_CLI@ +OPAL_CONFIGURE_DATE = @OPAL_CONFIGURE_DATE@ +OPAL_CONFIGURE_HOST = @OPAL_CONFIGURE_HOST@ +OPAL_CONFIGURE_USER = @OPAL_CONFIGURE_USER@ +OPAL_CXX_ABSOLUTE = @OPAL_CXX_ABSOLUTE@ +OPAL_DEFAULT_MCA_PARAM_CONF = @OPAL_DEFAULT_MCA_PARAM_CONF@ +OPAL_DYN_LIB_PREFIX = @OPAL_DYN_LIB_PREFIX@ +OPAL_DYN_LIB_SUFFIX = @OPAL_DYN_LIB_SUFFIX@ +OPAL_GREEK_VERSION = @OPAL_GREEK_VERSION@ +OPAL_LIB_PREFIX = @OPAL_LIB_PREFIX@ +OPAL_MAJOR_VERSION = @OPAL_MAJOR_VERSION@ +OPAL_MAX_DATAREP_STRING = @OPAL_MAX_DATAREP_STRING@ +OPAL_MAX_ERROR_STRING = @OPAL_MAX_ERROR_STRING@ +OPAL_MAX_INFO_KEY = @OPAL_MAX_INFO_KEY@ +OPAL_MAX_INFO_VAL = @OPAL_MAX_INFO_VAL@ +OPAL_MAX_OBJECT_NAME = @OPAL_MAX_OBJECT_NAME@ +OPAL_MAX_PORT_NAME = @OPAL_MAX_PORT_NAME@ +OPAL_MAX_PROCESSOR_NAME = @OPAL_MAX_PROCESSOR_NAME@ +OPAL_MINOR_VERSION = @OPAL_MINOR_VERSION@ +OPAL_PARAM_FROM_PLATFORM = @OPAL_PARAM_FROM_PLATFORM@ +OPAL_PKG_CONFIG_LDFLAGS = @OPAL_PKG_CONFIG_LDFLAGS@ +OPAL_RELEASE_DATE = @OPAL_RELEASE_DATE@ +OPAL_RELEASE_VERSION = @OPAL_RELEASE_VERSION@ +OPAL_REPO_REV = @OPAL_REPO_REV@ +OPAL_TARBALL_VERSION = @OPAL_TARBALL_VERSION@ +OPAL_TOP_BUILDDIR = @OPAL_TOP_BUILDDIR@ +OPAL_TOP_SRCDIR = @OPAL_TOP_SRCDIR@ +OPAL_VERSION = @OPAL_VERSION@ +OPAL_WRAPPER_EXTRA_CFLAGS = @OPAL_WRAPPER_EXTRA_CFLAGS@ +OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_CPPFLAGS = @OPAL_WRAPPER_EXTRA_CPPFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS = @OPAL_WRAPPER_EXTRA_CXXFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_LDFLAGS = @OPAL_WRAPPER_EXTRA_LDFLAGS@ +OPAL_WRAPPER_EXTRA_LIBS = @OPAL_WRAPPER_EXTRA_LIBS@ +ORTE_GREEK_VERSION = @ORTE_GREEK_VERSION@ +ORTE_LIB_PREFIX = @ORTE_LIB_PREFIX@ +ORTE_MAJOR_VERSION = @ORTE_MAJOR_VERSION@ +ORTE_MINOR_VERSION = @ORTE_MINOR_VERSION@ +ORTE_PKG_CONFIG_LDFLAGS = @ORTE_PKG_CONFIG_LDFLAGS@ +ORTE_RELEASE_DATE = @ORTE_RELEASE_DATE@ +ORTE_RELEASE_VERSION = @ORTE_RELEASE_VERSION@ +ORTE_REPO_REV = @ORTE_REPO_REV@ +ORTE_TARBALL_VERSION = @ORTE_TARBALL_VERSION@ +ORTE_TOP_BUILDDIR = @ORTE_TOP_BUILDDIR@ +ORTE_TOP_SRCDIR = @ORTE_TOP_SRCDIR@ +ORTE_VERSION = @ORTE_VERSION@ +ORTE_WRAPPER_EXTRA_CFLAGS = @ORTE_WRAPPER_EXTRA_CFLAGS@ +ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX = @ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX@ +ORTE_WRAPPER_EXTRA_CPPFLAGS = @ORTE_WRAPPER_EXTRA_CPPFLAGS@ +ORTE_WRAPPER_EXTRA_LDFLAGS = @ORTE_WRAPPER_EXTRA_LDFLAGS@ +ORTE_WRAPPER_EXTRA_LIBS = @ORTE_WRAPPER_EXTRA_LIBS@ +OSHMEM_GREEK_VERSION = @OSHMEM_GREEK_VERSION@ +OSHMEM_LIBSHMEM_EXTRA_LDFLAGS = @OSHMEM_LIBSHMEM_EXTRA_LDFLAGS@ +OSHMEM_LIBSHMEM_EXTRA_LIBS = @OSHMEM_LIBSHMEM_EXTRA_LIBS@ +OSHMEM_MAJOR_VERSION = @OSHMEM_MAJOR_VERSION@ +OSHMEM_MINOR_VERSION = @OSHMEM_MINOR_VERSION@ +OSHMEM_RELEASE_DATE = @OSHMEM_RELEASE_DATE@ +OSHMEM_RELEASE_VERSION = @OSHMEM_RELEASE_VERSION@ +OSHMEM_REPO_REV = @OSHMEM_REPO_REV@ +OSHMEM_TARBALL_VERSION = @OSHMEM_TARBALL_VERSION@ +OSHMEM_TOP_BUILDDIR = @OSHMEM_TOP_BUILDDIR@ +OSHMEM_TOP_SRCDIR = @OSHMEM_TOP_SRCDIR@ +OSHMEM_VERSION = @OSHMEM_VERSION@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +QRSH = @QRSH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SINGULARITY = @SINGULARITY@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_FC = @ac_ct_FC@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +atomic_mxm_CFLAGS = @atomic_mxm_CFLAGS@ +atomic_mxm_CPPFLAGS = @atomic_mxm_CPPFLAGS@ +atomic_mxm_LDFLAGS = @atomic_mxm_LDFLAGS@ +atomic_mxm_LIBS = @atomic_mxm_LIBS@ +atomic_ucx_CFLAGS = @atomic_ucx_CFLAGS@ +atomic_ucx_CPPFLAGS = @atomic_ucx_CPPFLAGS@ +atomic_ucx_LDFLAGS = @atomic_ucx_LDFLAGS@ +atomic_ucx_LIBS = @atomic_ucx_LIBS@ +bindir = @bindir@ +btl_openib_CFLAGS = @btl_openib_CFLAGS@ +btl_openib_CPPFLAGS = @btl_openib_CPPFLAGS@ +btl_openib_LDFLAGS = @btl_openib_LDFLAGS@ +btl_openib_LIBS = @btl_openib_LIBS@ +btl_portals4_CPPFLAGS = @btl_portals4_CPPFLAGS@ +btl_portals4_LDFLAGS = @btl_portals4_LDFLAGS@ +btl_portals4_LIBS = @btl_portals4_LIBS@ +btl_uct_CPPFLAGS = @btl_uct_CPPFLAGS@ +btl_uct_LDFLAGS = @btl_uct_LDFLAGS@ +btl_uct_LIBS = @btl_uct_LIBS@ +btl_ugni_CPPFLAGS = @btl_ugni_CPPFLAGS@ +btl_ugni_LDFLAGS = @btl_ugni_LDFLAGS@ +btl_ugni_LIBS = @btl_ugni_LIBS@ +btl_vader_CFLAGS = @btl_vader_CFLAGS@ +btl_vader_CPPFLAGS = @btl_vader_CPPFLAGS@ +btl_vader_LDFLAGS = @btl_vader_LDFLAGS@ +btl_vader_LIBS = @btl_vader_LIBS@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +coll_fca_CFLAGS = @coll_fca_CFLAGS@ +coll_fca_CPPFLAGS = @coll_fca_CPPFLAGS@ +coll_fca_HOME = @coll_fca_HOME@ +coll_fca_LDFLAGS = @coll_fca_LDFLAGS@ +coll_fca_LIBS = @coll_fca_LIBS@ +coll_hcoll_CFLAGS = @coll_hcoll_CFLAGS@ +coll_hcoll_CPPFLAGS = @coll_hcoll_CPPFLAGS@ +coll_hcoll_LDFLAGS = @coll_hcoll_LDFLAGS@ +coll_hcoll_LIBS = @coll_hcoll_LIBS@ +coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ +coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ +coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ +common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ +common_alps_LDFLAGS = @common_alps_LDFLAGS@ +common_alps_LIBS = @common_alps_LIBS@ +common_cuda_CPPFLAGS = @common_cuda_CPPFLAGS@ +common_ucx_CFLAGS = @common_ucx_CFLAGS@ +common_ucx_CPPFLAGS = @common_ucx_CPPFLAGS@ +common_ucx_LDFLAGS = @common_ucx_LDFLAGS@ +common_ucx_LIBS = @common_ucx_LIBS@ +common_verbs_CFLAGS = @common_verbs_CFLAGS@ +common_verbs_CPPFLAGS = @common_verbs_CPPFLAGS@ +common_verbs_LDFLAGS = @common_verbs_LDFLAGS@ +common_verbs_LIBS = @common_verbs_LIBS@ +common_verbs_usnic_CPPFLAGS = @common_verbs_usnic_CPPFLAGS@ +common_verbs_usnic_LDFLAGS = @common_verbs_usnic_LDFLAGS@ +common_verbs_usnic_LIBS = @common_verbs_usnic_LIBS@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +ess_alps_CPPFLAGS = @ess_alps_CPPFLAGS@ +ess_alps_LDFLAGS = @ess_alps_LDFLAGS@ +ess_alps_LIBS = @ess_alps_LIBS@ +ess_lsf_CPPFLAGS = @ess_lsf_CPPFLAGS@ +ess_lsf_LDFLAGS = @ess_lsf_LDFLAGS@ +ess_lsf_LIBS = @ess_lsf_LIBS@ +ess_slurm_CPPFLAGS = @ess_slurm_CPPFLAGS@ +ess_slurm_LDFLAGS = @ess_slurm_LDFLAGS@ +ess_slurm_LIBS = @ess_slurm_LIBS@ +ess_tm_CPPFLAGS = @ess_tm_CPPFLAGS@ +ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ +ess_tm_LIBS = @ess_tm_LIBS@ +exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ +fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ +fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ +fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ +fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ +fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ +fs_lustre_LIBS = @fs_lustre_LIBS@ +fs_pvfs2_CPPFLAGS = @fs_pvfs2_CPPFLAGS@ +fs_pvfs2_LDFLAGS = @fs_pvfs2_LDFLAGS@ +fs_pvfs2_LIBS = @fs_pvfs2_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ +libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ +libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ +libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ +libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ +libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ +libmca_opal_common_verbs_so_version = @libmca_opal_common_verbs_so_version@ +libmca_orte_common_alps_so_version = @libmca_orte_common_alps_so_version@ +libmpi_cxx_so_version = @libmpi_cxx_so_version@ +libmpi_java_so_version = @libmpi_java_so_version@ +libmpi_mpifh_so_version = @libmpi_mpifh_so_version@ +libmpi_so_version = @libmpi_so_version@ +libmpi_usempi_ignore_tkr_so_version = @libmpi_usempi_ignore_tkr_so_version@ +libmpi_usempi_tkr_so_version = @libmpi_usempi_tkr_so_version@ +libmpi_usempif08_so_version = @libmpi_usempif08_so_version@ +libompitrace_so_version = @libompitrace_so_version@ +libopen_pal_so_version = @libopen_pal_so_version@ +libopen_rte_so_version = @libopen_rte_so_version@ +liboshmem_so_version = @liboshmem_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +memory_malloc_solaris_LIBS = @memory_malloc_solaris_LIBS@ +mkdir_p = @mkdir_p@ +mpool_memkind_CPPFLAGS = @mpool_memkind_CPPFLAGS@ +mpool_memkind_LDFLAGS = @mpool_memkind_LDFLAGS@ +mpool_memkind_LIBS = @mpool_memkind_LIBS@ +mtl_portals4_CPPFLAGS = @mtl_portals4_CPPFLAGS@ +mtl_portals4_LDFLAGS = @mtl_portals4_LDFLAGS@ +mtl_portals4_LIBS = @mtl_portals4_LIBS@ +mtl_psm2_CFLAGS = @mtl_psm2_CFLAGS@ +mtl_psm2_CPPFLAGS = @mtl_psm2_CPPFLAGS@ +mtl_psm2_LDFLAGS = @mtl_psm2_LDFLAGS@ +mtl_psm2_LIBS = @mtl_psm2_LIBS@ +mtl_psm_CFLAGS = @mtl_psm_CFLAGS@ +mtl_psm_CPPFLAGS = @mtl_psm_CPPFLAGS@ +mtl_psm_LDFLAGS = @mtl_psm_LDFLAGS@ +mtl_psm_LIBS = @mtl_psm_LIBS@ +odls_alps_CPPFLAGS = @odls_alps_CPPFLAGS@ +odls_alps_LDFLAGS = @odls_alps_LDFLAGS@ +odls_alps_LIBS = @odls_alps_LIBS@ +oldincludedir = @oldincludedir@ +ompidatadir = @ompidatadir@ +ompiincludedir = @ompiincludedir@ +ompilibdir = @ompilibdir@ +oob_alps_CPPFLAGS = @oob_alps_CPPFLAGS@ +oob_alps_LDFLAGS = @oob_alps_LDFLAGS@ +oob_alps_LIBS = @oob_alps_LIBS@ +opal_datatype_cuda_CPPFLAGS = @opal_datatype_cuda_CPPFLAGS@ +opal_dl_dlopen_LIBS = @opal_dl_dlopen_LIBS@ +opal_dl_libltdl_CPPFLAGS = @opal_dl_libltdl_CPPFLAGS@ +opal_dl_libltdl_LDFLAGS = @opal_dl_libltdl_LDFLAGS@ +opal_dl_libltdl_LIBS = @opal_dl_libltdl_LIBS@ +opal_event_external_CPPFLAGS = @opal_event_external_CPPFLAGS@ +opal_event_external_LDFLAGS = @opal_event_external_LDFLAGS@ +opal_event_external_LIBS = @opal_event_external_LIBS@ +opal_hwloc_external_LDFLAGS = @opal_hwloc_external_LDFLAGS@ +opal_hwloc_external_LIBS = @opal_hwloc_external_LIBS@ +opal_hwloc_hwloc201_CFLAGS = @opal_hwloc_hwloc201_CFLAGS@ +opal_hwloc_hwloc201_CPPFLAGS = @opal_hwloc_hwloc201_CPPFLAGS@ +opal_hwloc_hwloc201_LDFLAGS = @opal_hwloc_hwloc201_LDFLAGS@ +opal_hwloc_hwloc201_LIBS = @opal_hwloc_hwloc201_LIBS@ +opal_memchecker_valgrind_CPPFLAGS = @opal_memchecker_valgrind_CPPFLAGS@ +opal_ofi_CPPFLAGS = @opal_ofi_CPPFLAGS@ +opal_ofi_LDFLAGS = @opal_ofi_LDFLAGS@ +opal_ofi_LIBS = @opal_ofi_LIBS@ +opal_pmi1_CPPFLAGS = @opal_pmi1_CPPFLAGS@ +opal_pmi1_LDFLAGS = @opal_pmi1_LDFLAGS@ +opal_pmi1_LIBS = @opal_pmi1_LIBS@ +opal_pmi1_rpath = @opal_pmi1_rpath@ +opal_pmi2_CPPFLAGS = @opal_pmi2_CPPFLAGS@ +opal_pmi2_LDFLAGS = @opal_pmi2_LDFLAGS@ +opal_pmi2_LIBS = @opal_pmi2_LIBS@ +opal_pmi2_rpath = @opal_pmi2_rpath@ +opal_pmix_ext1x_CPPFLAGS = @opal_pmix_ext1x_CPPFLAGS@ +opal_pmix_ext1x_LDFLAGS = @opal_pmix_ext1x_LDFLAGS@ +opal_pmix_ext1x_LIBS = @opal_pmix_ext1x_LIBS@ +opal_pmix_ext2x_CPPFLAGS = @opal_pmix_ext2x_CPPFLAGS@ +opal_pmix_ext2x_LDFLAGS = @opal_pmix_ext2x_LDFLAGS@ +opal_pmix_ext2x_LIBS = @opal_pmix_ext2x_LIBS@ +opal_pmix_ext3x_CPPFLAGS = @opal_pmix_ext3x_CPPFLAGS@ +opal_pmix_ext3x_LDFLAGS = @opal_pmix_ext3x_LDFLAGS@ +opal_pmix_ext3x_LIBS = @opal_pmix_ext3x_LIBS@ +opal_pmix_pmix3x_CPPFLAGS = @opal_pmix_pmix3x_CPPFLAGS@ +opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ +opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ +opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ +opaldatadir = @opaldatadir@ +opalincludedir = @opalincludedir@ +opallibdir = @opallibdir@ +ortedatadir = @ortedatadir@ +orteincludedir = @orteincludedir@ +ortelibdir = @ortelibdir@ +osc_portals4_CPPFLAGS = @osc_portals4_CPPFLAGS@ +osc_portals4_LDFLAGS = @osc_portals4_LDFLAGS@ +osc_portals4_LIBS = @osc_portals4_LIBS@ +osc_ucx_CPPFLAGS = @osc_ucx_CPPFLAGS@ +osc_ucx_LDFLAGS = @osc_ucx_LDFLAGS@ +osc_ucx_LIBS = @osc_ucx_LIBS@ +oshmem_verbs_CFLAGS = @oshmem_verbs_CFLAGS@ +oshmem_verbs_CPPFLAGS = @oshmem_verbs_CPPFLAGS@ +oshmem_verbs_LDFLAGS = @oshmem_verbs_LDFLAGS@ +oshmem_verbs_LIBS = @oshmem_verbs_LIBS@ +oshmemdatadir = @oshmemdatadir@ +oshmemincludedir = @oshmemincludedir@ +oshmemlibdir = @oshmemlibdir@ +pdfdir = @pdfdir@ +plm_alps_CPPFLAGS = @plm_alps_CPPFLAGS@ +plm_alps_LDFLAGS = @plm_alps_LDFLAGS@ +plm_alps_LIBS = @plm_alps_LIBS@ +plm_lsf_CPPFLAGS = @plm_lsf_CPPFLAGS@ +plm_lsf_LDFLAGS = @plm_lsf_LDFLAGS@ +plm_lsf_LIBS = @plm_lsf_LIBS@ +plm_slurm_CPPFLAGS = @plm_slurm_CPPFLAGS@ +plm_slurm_LDFLAGS = @plm_slurm_LDFLAGS@ +plm_slurm_LIBS = @plm_slurm_LIBS@ +plm_tm_CPPFLAGS = @plm_tm_CPPFLAGS@ +plm_tm_LDFLAGS = @plm_tm_LDFLAGS@ +plm_tm_LIBS = @plm_tm_LIBS@ +pmix_alps_CPPFLAGS = @pmix_alps_CPPFLAGS@ +pmix_alps_LDFLAGS = @pmix_alps_LDFLAGS@ +pmix_alps_LIBS = @pmix_alps_LIBS@ +pmix_cray_CPPFLAGS = @pmix_cray_CPPFLAGS@ +pmix_cray_LDFLAGS = @pmix_cray_LDFLAGS@ +pmix_cray_LIBS = @pmix_cray_LIBS@ +pml_ucx_CPPFLAGS = @pml_ucx_CPPFLAGS@ +pml_ucx_LDFLAGS = @pml_ucx_LDFLAGS@ +pml_ucx_LIBS = @pml_ucx_LIBS@ +pml_yalla_CPPFLAGS = @pml_yalla_CPPFLAGS@ +pml_yalla_LDFLAGS = @pml_yalla_LDFLAGS@ +pml_yalla_LIBS = @pml_yalla_LIBS@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +ras_alps_CPPFLAGS = @ras_alps_CPPFLAGS@ +ras_lsf_CPPFLAGS = @ras_lsf_CPPFLAGS@ +ras_lsf_LDFLAGS = @ras_lsf_LDFLAGS@ +ras_lsf_LIBS = @ras_lsf_LIBS@ +ras_slurm_CPPFLAGS = @ras_slurm_CPPFLAGS@ +ras_slurm_LDFLAGS = @ras_slurm_LDFLAGS@ +ras_slurm_LIBS = @ras_slurm_LIBS@ +ras_tm_CPPFLAGS = @ras_tm_CPPFLAGS@ +ras_tm_LDFLAGS = @ras_tm_LDFLAGS@ +ras_tm_LIBS = @ras_tm_LIBS@ +rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ +rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ +rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ +sbindir = @sbindir@ +schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ +schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ +schizo_moab_LDFLAGS = @schizo_moab_LDFLAGS@ +schizo_moab_LIBS = @schizo_moab_LIBS@ +schizo_slurm_CPPFLAGS = @schizo_slurm_CPPFLAGS@ +schizo_slurm_LDFLAGS = @schizo_slurm_LDFLAGS@ +schizo_slurm_LIBS = @schizo_slurm_LIBS@ +scoll_fca_CFLAGS = @scoll_fca_CFLAGS@ +scoll_fca_CPPFLAGS = @scoll_fca_CPPFLAGS@ +scoll_fca_HOME = @scoll_fca_HOME@ +scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ +scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ +sharedstatedir = @sharedstatedir@ +spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ +spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ +spml_ikrit_LDFLAGS = @spml_ikrit_LDFLAGS@ +spml_ikrit_LIBS = @spml_ikrit_LIBS@ +spml_ucx_CFLAGS = @spml_ucx_CFLAGS@ +spml_ucx_CPPFLAGS = @spml_ucx_CPPFLAGS@ +spml_ucx_LDFLAGS = @spml_ucx_LDFLAGS@ +spml_ucx_LIBS = @spml_ucx_LIBS@ +srcdir = @srcdir@ +sshmem_ucx_CFLAGS = @sshmem_ucx_CFLAGS@ +sshmem_ucx_CPPFLAGS = @sshmem_ucx_CPPFLAGS@ +sshmem_ucx_LDFLAGS = @sshmem_ucx_LDFLAGS@ +sshmem_ucx_LIBS = @sshmem_ucx_LIBS@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ucx_CFLAGS = @ucx_CFLAGS@ +ucx_LIBS = @ucx_LIBS@ +ucx_STATIC_LIBS = @ucx_STATIC_LIBS@ +@MCA_BUILD_ompi_fs_gpfs_DSO_FALSE@component_noinst = libmca_fs_gpfs.la +@MCA_BUILD_ompi_fs_gpfs_DSO_TRUE@component_noinst = +@MCA_BUILD_ompi_fs_gpfs_DSO_FALSE@component_install = +@MCA_BUILD_ompi_fs_gpfs_DSO_TRUE@component_install = mca_fs_gpfs.la + +# Source files +fs_gpfs_sources = \ + fs_gpfs_component.c \ + fs_gpfs_file_open.c \ + fs_gpfs_file_set_info.c\ + fs_gpfs_file_get_info.c\ + fs_gpfs.c \ + fs_gpfs.h + +AM_CPPFLAGS = $(fs_gpfs_CPPFLAGS) +mcacomponentdir = $(pkglibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_fs_gpfs_la_SOURCES = $(fs_gpfs_sources) +mca_fs_gpfs_la_LIBADD = $(fs_gpfs_LIBS) +mca_fs_gpfs_la_LDFLAGS = -module -avoid-version $(fs_gpfs_LDFLAGS) +noinst_LTLIBRARIES = $(component_noinst) +libmca_fs_gpfs_la_SOURCES = $(fs_gpfs_sources) +libmca_fs_gpfs_la_LIBADD = $(fs_gpfs_LIBS) +libmca_fs_gpfs_la_LDFLAGS = -module -avoid-version $(fs_gpfs_LDFLAGS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign ompi/mca/fs/gpfs/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign ompi/mca/fs/gpfs/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-mcacomponentLTLIBRARIES: $(mcacomponent_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(mcacomponentdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(mcacomponentdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(mcacomponentdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(mcacomponentdir)"; \ + } + +uninstall-mcacomponentLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(mcacomponentdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(mcacomponentdir)/$$f"; \ + done + +clean-mcacomponentLTLIBRARIES: + -test -z "$(mcacomponent_LTLIBRARIES)" || rm -f $(mcacomponent_LTLIBRARIES) + @list='$(mcacomponent_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libmca_fs_gpfs.la: $(libmca_fs_gpfs_la_OBJECTS) $(libmca_fs_gpfs_la_DEPENDENCIES) $(EXTRA_libmca_fs_gpfs_la_DEPENDENCIES) + $(AM_V_CCLD)$(libmca_fs_gpfs_la_LINK) $(am_libmca_fs_gpfs_la_rpath) $(libmca_fs_gpfs_la_OBJECTS) $(libmca_fs_gpfs_la_LIBADD) $(LIBS) + +mca_fs_gpfs.la: $(mca_fs_gpfs_la_OBJECTS) $(mca_fs_gpfs_la_DEPENDENCIES) $(EXTRA_mca_fs_gpfs_la_DEPENDENCIES) + $(AM_V_CCLD)$(mca_fs_gpfs_la_LINK) $(am_mca_fs_gpfs_la_rpath) $(mca_fs_gpfs_la_OBJECTS) $(mca_fs_gpfs_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs_gpfs.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs_gpfs_component.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs_gpfs_file_get_info.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs_gpfs_file_open.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs_gpfs_file_set_info.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(mcacomponentdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-mcacomponentLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-mcacomponentLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-mcacomponentLTLIBRARIES install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-mcacomponentLTLIBRARIES + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/ompi/mca/fs/ime/configure.m4 openmpi-4.1.4/ompi/mca/fs/ime/configure.m4 --- openmpi-4.0.3/ompi/mca/fs/ime/configure.m4 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/ime/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,30 @@ +# -*- shell-script -*- +# +# Copyright (c) 2018 DataDirect Networks. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# MCA_fs_ime_CONFIG(action-if-can-compile, +# [action-if-cant-compile]) +# ------------------------------------------------ +AC_DEFUN([MCA_ompi_fs_ime_CONFIG],[ + AC_CONFIG_FILES([ompi/mca/fs/ime/Makefile]) + + OMPI_CHECK_IME([fs_ime], + [fs_ime_happy="yes"], + [fs_ime_happy="no"]) + + OPAL_SUMMARY_ADD([[OMPIO File Systems]],[[DDN Infinite Memory Engine]],[$1],[$fs_ime_happy]) + AS_IF([test "$fs_ime_happy" = "yes"], + [$1], + [$2]) + + # substitute in the things needed to build ime + AC_SUBST([fs_ime_CPPFLAGS]) + AC_SUBST([fs_ime_LDFLAGS]) + AC_SUBST([fs_ime_LIBS]) +])dnl diff -Nru openmpi-4.0.3/ompi/mca/fs/ime/fs_ime.c openmpi-4.1.4/ompi/mca/fs/ime/fs_ime.c --- openmpi-4.0.3/ompi/mca/fs/ime/fs_ime.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/ime/fs_ime.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,155 @@ +/* + * Copyright (c) 2018 DataDirect Networks. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ime_native.h" + +#include "ompi_config.h" +#include "mpi.h" +#include "ompi/mca/fs/fs.h" +#include "ompi/mca/fs/base/base.h" +#include "ompi/mca/fs/ime/fs_ime.h" + +/* + * ******************************************************************* + * ************************ actions structure ************************ + * ******************************************************************* + */ +static mca_fs_base_module_1_0_0_t ime = { + mca_fs_ime_module_init, /* initalise after being selected */ + mca_fs_ime_module_finalize, /* close a module on a communicator */ + mca_fs_ime_file_open, + mca_fs_ime_file_close, + mca_fs_ime_file_delete, + mca_fs_ime_file_set_size, + mca_fs_ime_file_get_size, + mca_fs_ime_file_sync +}; +/* + * ******************************************************************* + * ************************* structure ends ************************** + * ******************************************************************* + */ + +/* + * Private variables + */ +static int mca_fs_ime_IS_INITIALIZED = 0; + +/* + * Function decls + */ +int mca_fs_ime_component_init_query(bool enable_progress_threads, + bool enable_mpi_threads) +{ + /* Nothing to do */ + + return OMPI_SUCCESS; +} + +struct mca_fs_base_module_1_0_0_t * +mca_fs_ime_component_file_query (ompio_file_t *fh, int *priority) +{ + /* IME should only be used for paths starting with ime: or IME: + Therefore, this function will return a NULL module when no IME + path is detected. */ + + char *tmp; + + *priority = mca_fs_ime_priority; + + tmp = strchr (fh->f_filename, ':'); + if (!tmp) { + /* The communicator might be NULL if we only want to delete the file */ + if (OMPIO_ROOT == fh->f_rank || MPI_COMM_NULL == fh->f_comm) { + fh->f_fstype = mca_fs_base_get_fstype ( fh->f_filename ); + } + if (fh->f_comm != MPI_COMM_NULL) { + fh->f_comm->c_coll->coll_bcast (&(fh->f_fstype), + 1, + MPI_INT, + OMPIO_ROOT, + fh->f_comm, + fh->f_comm->c_coll->coll_bcast_module); + } + } + else { + if (!strncmp(fh->f_filename, DEFAULT_IME_PREFIX_NO_FWD_SLASH, + IME_FILE_PREFIX_LEN_NO_FWD_SLASH)){ + fh->f_fstype = IME; + } + } + + /* According to my understanding, a valid module should be returned + as long as a valid FS type is detected. (This isn't what is done + for LUSTRE or PVFS2) + */ + if (IME == fh->f_fstype) { + if (*priority < FS_IME_INCREASED_PRIORITY) { + *priority = FS_IME_INCREASED_PRIORITY; + } + return &ime; + } + + return NULL; +} + +int mca_fs_ime_component_file_unquery (ompio_file_t *file) +{ + /* This function might be needed for some purposes later. for now it + * does not have anything to do since there are no steps which need + * to be undone if this module is not selected */ + + return OMPI_SUCCESS; +} + +int mca_fs_ime_module_init (ompio_file_t *file) +{ + /* Make sure the file type is not overwritten by the last queried + * component */ + file->f_fstype = IME; + + if (mca_fs_ime_IS_INITIALIZED == 0) { + mca_fs_ime_IS_INITIALIZED = 1; + ime_native_init(); + } + return OMPI_SUCCESS; +} + +int mca_fs_ime_module_finalize (ompio_file_t *file) +{ + /* + * Nothing to do here: + * We can't finalize IME here because other files might + * still be using it. Instead, IME is finalized when + * the OMPIO component is closed. + */ + + return OMPI_SUCCESS; +} + +int mca_fs_ime_native_fini() +{ + int ret; + if (mca_fs_ime_IS_INITIALIZED == 0) { + return OMPI_SUCCESS; + } + + /* We don't actually need to reset this variable since + mca_fs_ime_native_fini is only called once: + when OMPIO is closed + */ + mca_fs_ime_IS_INITIALIZED = 0; + + ret = ime_native_finalize(); + if (ret != 0) { + return OMPI_ERROR; + } + + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/fs/ime/fs_ime_component.c openmpi-4.1.4/ompi/mca/fs/ime/fs_ime_component.c --- openmpi-4.0.3/ompi/mca/fs/ime/fs_ime_component.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/ime/fs_ime_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,77 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2018 DataDirect Networks. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" +#include "fs_ime.h" +#include "mpi.h" + +int mca_fs_ime_priority = FS_IME_BASE_PRIORITY; +int mca_fs_ime_lock_algorithm = FS_IME_LOCK_AUTO; + +/* + * Private functions + */ +static int register_component(void); + + +/* + * Public string showing the fs ime component version number + */ +const char *mca_fs_ime_component_version_string = + "OMPI/MPI IME FS MCA component version " OMPI_VERSION; + +/* + * Instantiate the public struct with all of our public information + * and pointers to our public functions in it + */ +mca_fs_base_component_2_0_0_t mca_fs_ime_component = { + + /* First, the mca_component_t struct containing meta information + about the component itself */ + + .fsm_version = { + MCA_FS_BASE_VERSION_2_0_0, + + /* Component name and version */ + .mca_component_name = "ime", + MCA_BASE_MAKE_VERSION(component, OMPI_MAJOR_VERSION, OMPI_MINOR_VERSION, + OMPI_RELEASE_VERSION), + .mca_register_component_params = register_component, + }, + .fsm_data = { + /* This component is checkpointable */ + MCA_BASE_METADATA_PARAM_CHECKPOINT + }, + .fsm_init_query = mca_fs_ime_component_init_query, /* get thread level */ + .fsm_file_query = mca_fs_ime_component_file_query, /* get priority and actions */ + .fsm_file_unquery = mca_fs_ime_component_file_unquery, /* undo what was done by previous function */ +}; + +static int register_component(void) +{ + mca_fs_ime_priority = FS_IME_BASE_PRIORITY; + (void) mca_base_component_var_register(&mca_fs_ime_component.fsm_version, + "priority", "Priority of the fs ime component", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_fs_ime_priority); + + mca_fs_ime_lock_algorithm = FS_IME_LOCK_AUTO; + (void) mca_base_component_var_register(&mca_fs_ime_component.fsm_version, + "lock_algorithm", "Locking algorithm used by the fs ime component. " + " 0: auto (default)", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_fs_ime_lock_algorithm ); + + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/fs/ime/fs_ime_file_close.c openmpi-4.1.4/ompi/mca/fs/ime/fs_ime_file_close.c --- openmpi-4.0.3/ompi/mca/fs/ime/fs_ime_file_close.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/ime/fs_ime_file_close.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2018 DataDirect Networks. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ime_native.h" + +#include "ompi_config.h" +#include "fs_ime.h" + +#include "mpi.h" +#include "ompi/constants.h" +#include "ompi/mca/fs/base/base.h" +#include "ompi/mca/fs/fs.h" + +/* + * file_close_ime + * + * Function: - closes a new file + * Accepts: - file handle + * Returns: - Success if file closed + */ +int mca_fs_ime_file_close (ompio_file_t *fh) +{ + int ret; + + fh->f_comm->c_coll->coll_barrier (fh->f_comm, + fh->f_comm->c_coll->coll_barrier_module); + /* reset errno */ + errno = 0; + + ret = ime_native_close(fh->fd); + if (ret != 0) { + return mca_fs_base_get_mpi_err(errno); + } + + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/fs/ime/fs_ime_file_delete.c openmpi-4.1.4/ompi/mca/fs/ime/fs_ime_file_delete.c --- openmpi-4.0.3/ompi/mca/fs/ime/fs_ime_file_delete.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/ime/fs_ime_file_delete.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2018 DataDirect Networks. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ime_native.h" + +#include "ompi_config.h" +#include "fs_ime.h" + +#include "mpi.h" +#include "ompi/constants.h" +#include "ompi/mca/fs/base/base.h" +#include "ompi/mca/fs/fs.h" + +/* + * file_delete_ime + * + * Function: - deletes a file + * Accepts: - file name & info + * Returns: - Success if file closed + */ +int mca_fs_ime_file_delete (char* file_name, + struct opal_info_t *info) +{ + int ret; + + /* reset errno */ + errno = 0; + + ret = ime_native_unlink(file_name); + if (ret != 0) { + return mca_fs_base_get_mpi_err(errno); + } + + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/fs/ime/fs_ime_file_get_size.c openmpi-4.1.4/ompi/mca/fs/ime/fs_ime_file_get_size.c --- openmpi-4.0.3/ompi/mca/fs/ime/fs_ime_file_get_size.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/ime/fs_ime_file_get_size.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2018 DataDirect Networks. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ime_native.h" + +#include "ompi_config.h" +#include "fs_ime.h" + +#include "mpi.h" +#include "ompi/constants.h" +#include "ompi/mca/fs/base/base.h" +#include "ompi/mca/fs/fs.h" + +/* + * file_get_size_ime + * + * Function: - get_size of a file + * Accepts: - same arguments as MPI_File_get_size() + * Returns: - Success if size is get + */ +int mca_fs_ime_file_get_size (ompio_file_t *fh, + OMPI_MPI_OFFSET_TYPE *size) +{ + /* reset errno */ + errno = 0; + + *size = ime_native_lseek(fh->fd, 0, SEEK_END); + if (*size < 0) { + return mca_fs_base_get_mpi_err(errno); + } + + errno = 0; + if ((ime_native_lseek(fh->fd, fh->f_offset, SEEK_SET)) < 0) { + return mca_fs_base_get_mpi_err(errno); + } + + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/fs/ime/fs_ime_file_open.c openmpi-4.1.4/ompi/mca/fs/ime/fs_ime_file_open.c --- openmpi-4.0.3/ompi/mca/fs/ime/fs_ime_file_open.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/ime/fs_ime_file_open.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2018 DataDirect Networks. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ime_native.h" + +#include "ompi_config.h" +#include "fs_ime.h" + +#include +#include "mpi.h" +#include "ompi/constants.h" +#include "ompi/mca/fs/base/base.h" +#include "ompi/mca/fs/fs.h" +#include "ompi/communicator/communicator.h" +#include "ompi/info/info.h" +#include "opal/util/path.h" + +/* + * file_open_ime + * + * Function: - opens a new file + * Accepts: - same arguments as MPI_File_open() + * Returns: - Success if new file handle + */ +int mca_fs_ime_file_open (struct ompi_communicator_t *comm, + const char* filename, + int access_mode, + struct opal_info_t *info, + ompio_file_t *fh) +{ + int perm, amode; + int ret = OMPI_SUCCESS; + + perm = mca_fs_base_get_file_perm(fh); + amode = mca_fs_base_get_file_amode(fh->f_rank, access_mode); + + + /* Reset errno */ + errno = 0; + + if (OMPIO_ROOT == fh->f_rank) { + fh->fd = ime_native_open(filename, amode, perm); + if ( fh->fd < 0 ) { + ret = mca_fs_base_get_mpi_err(errno); + } + } + + comm->c_coll->coll_bcast (&ret, 1, MPI_INT, OMPIO_ROOT, comm, + comm->c_coll->coll_bcast_module); + if ( ret != OMPI_SUCCESS ) { + fh->fd = -1; + return ret; + } + + if (OMPIO_ROOT != fh->f_rank) { + errno = 0; + fh->fd = ime_native_open(filename, amode, perm); + if ( fh->fd < 0 ) { + return mca_fs_base_get_mpi_err(errno); + } + } + + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/fs/ime/fs_ime_file_set_size.c openmpi-4.1.4/ompi/mca/fs/ime/fs_ime_file_set_size.c --- openmpi-4.0.3/ompi/mca/fs/ime/fs_ime_file_set_size.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/ime/fs_ime_file_set_size.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2018 DataDirect Networks. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ime_native.h" + +#include "ompi_config.h" +#include "fs_ime.h" + +#include "mpi.h" +#include "ompi/constants.h" +#include "ompi/mca/fs/base/base.h" +#include "ompi/mca/fs/fs.h" + +/* + * file_set_size_ime + * + * Function: - set_size of a file + * Accepts: - same arguments as MPI_File_set_size() + * Returns: - Success if size is set + */ +int mca_fs_ime_file_set_size (ompio_file_t *fh, + OMPI_MPI_OFFSET_TYPE size) +{ + int ret = 0; + + /* reset errno */ + errno = 0; + + if (OMPIO_ROOT == fh->f_rank) { + ret = ime_native_ftruncate(fh->fd, size); + } + + fh->f_comm->c_coll->coll_bcast(&ret, + 1, + MPI_INT, + OMPIO_ROOT, + fh->f_comm, + fh->f_comm->c_coll->coll_bcast_module); + + if (ret < 0) { + return mca_fs_base_get_mpi_err(errno); + } + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/fs/ime/fs_ime_file_sync.c openmpi-4.1.4/ompi/mca/fs/ime/fs_ime_file_sync.c --- openmpi-4.0.3/ompi/mca/fs/ime/fs_ime_file_sync.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/ime/fs_ime_file_sync.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2018 DataDirect Networks. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ime_native.h" + +#include "ompi_config.h" +#include "fs_ime.h" + +#include "mpi.h" +#include "ompi/constants.h" +#include "ompi/mca/fs/base/base.h" +#include "ompi/mca/fs/fs.h" + +int mca_fs_ime_file_sync (ompio_file_t *fh) +{ + int ret; + + /* reset errno */ + errno = 0; + + ret = ime_native_fsync(fh->fd); + if (ret != 0) { + return mca_fs_base_get_mpi_err(errno); + } + + return OMPI_SUCCESS; +} diff -Nru openmpi-4.0.3/ompi/mca/fs/ime/fs_ime.h openmpi-4.1.4/ompi/mca/fs/ime/fs_ime.h --- openmpi-4.0.3/ompi/mca/fs/ime/fs_ime.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/ime/fs_ime.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2018 DataDirect Networks. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef MCA_FS_IME_H +#define MCA_FS_IME_H + +#include "ompi_config.h" +#include "ompi/mca/mca.h" +#include "ompi/mca/fs/fs.h" +#include "ompi/mca/common/ompio/common_ompio.h" + +extern int mca_fs_ime_priority; +extern int mca_fs_ime_lock_algorithm; + +#define FS_IME_LOCK_AUTO 0 +#define FS_IME_BASE_PRIORITY 20 +#define FS_IME_INCREASED_PRIORITY 50 + +BEGIN_C_DECLS + +int mca_fs_ime_component_init_query(bool enable_progress_threads, + bool enable_mpi_threads); +struct mca_fs_base_module_1_0_0_t * +mca_fs_ime_component_file_query (ompio_file_t *fh, int *priority); +int mca_fs_ime_component_file_unquery (ompio_file_t *file); + +int mca_fs_ime_module_init (ompio_file_t *file); +int mca_fs_ime_module_finalize (ompio_file_t *file); + +int mca_fs_ime_native_fini(); + +OMPI_MODULE_DECLSPEC extern mca_fs_base_component_2_0_0_t mca_fs_ime_component; +/* + * ****************************************************************** + * ********* functions which are implemented in this module ********* + * ****************************************************************** + */ + +int mca_fs_ime_file_open (struct ompi_communicator_t *comm, + const char *filename, + int amode, + struct opal_info_t *info, + ompio_file_t *fh); + +int mca_fs_ime_file_close (ompio_file_t *fh); + +int mca_fs_ime_file_delete (char *filename, + struct opal_info_t *info); + +int mca_fs_ime_file_set_size (ompio_file_t *fh, + OMPI_MPI_OFFSET_TYPE size); + +int mca_fs_ime_file_get_size (ompio_file_t *fh, + OMPI_MPI_OFFSET_TYPE *size); + +int mca_fs_ime_file_sync (ompio_file_t *fh); + +/* + * ****************************************************************** + * ************ functions implemented in this module end ************ + * ****************************************************************** + */ + +END_C_DECLS + +#endif /* MCA_FS_IME_H */ diff -Nru openmpi-4.0.3/ompi/mca/fs/ime/Makefile.am openmpi-4.1.4/ompi/mca/fs/ime/Makefile.am --- openmpi-4.0.3/ompi/mca/fs/ime/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/ime/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,47 @@ +# +# Copyright (c) 2018 DataDirect Networks. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). + +if MCA_BUILD_ompi_fs_ime_DSO +component_noinst = +component_install = mca_fs_ime.la +else +component_noinst = libmca_fs_ime.la +component_install = +endif + +# Source files + +fs_ime_sources = \ + fs_ime.h \ + fs_ime.c \ + fs_ime_component.c \ + fs_ime_file_open.c \ + fs_ime_file_close.c \ + fs_ime_file_delete.c \ + fs_ime_file_sync.c \ + fs_ime_file_set_size.c \ + fs_ime_file_get_size.c + +AM_CPPFLAGS = $(fs_ime_CPPFLAGS) + +mcacomponentdir = $(ompilibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_fs_ime_la_SOURCES = $(fs_ime_sources) +mca_fs_ime_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(fs_ime_LIBS) +mca_fs_ime_la_LDFLAGS = -module -avoid-version $(fs_ime_LDFLAGS) + +noinst_LTLIBRARIES = $(component_noinst) +libmca_fs_ime_la_SOURCES = $(fs_ime_sources) +libmca_fs_ime_la_LIBADD = $(fs_ime_LIBS) +libmca_fs_ime_la_LDFLAGS = -module -avoid-version $(fs_ime_LDFLAGS) \ No newline at end of file diff -Nru openmpi-4.0.3/ompi/mca/fs/ime/Makefile.in openmpi-4.1.4/ompi/mca/fs/ime/Makefile.in --- openmpi-4.0.3/ompi/mca/fs/ime/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/ime/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,2124 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# +# Copyright (c) 2018 DataDirect Networks. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = ompi/mca/fs/ime +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/c_weak_symbols.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ + $(top_srcdir)/config/ompi_check_libfca.m4 \ + $(top_srcdir)/config/ompi_check_libhcoll.m4 \ + $(top_srcdir)/config/ompi_check_lustre.m4 \ + $(top_srcdir)/config/ompi_check_mxm.m4 \ + $(top_srcdir)/config/ompi_check_psm.m4 \ + $(top_srcdir)/config/ompi_check_psm2.m4 \ + $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ + $(top_srcdir)/config/ompi_check_ucx.m4 \ + $(top_srcdir)/config/ompi_config_files.m4 \ + $(top_srcdir)/config/ompi_configure_options.m4 \ + $(top_srcdir)/config/ompi_contrib.m4 \ + $(top_srcdir)/config/ompi_cxx_find_exception_flags.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_parameters.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_repository.m4 \ + $(top_srcdir)/config/ompi_cxx_have_exceptions.m4 \ + $(top_srcdir)/config/ompi_endpoint_tag.m4 \ + $(top_srcdir)/config/ompi_ext.m4 \ + $(top_srcdir)/config/ompi_find_mpi_aint_count_offset.m4 \ + $(top_srcdir)/config/ompi_fortran_check.m4 \ + $(top_srcdir)/config/ompi_fortran_check_abstract.m4 \ + $(top_srcdir)/config/ompi_fortran_check_asynchronous.m4 \ + $(top_srcdir)/config/ompi_fortran_check_bind_c.m4 \ + $(top_srcdir)/config/ompi_fortran_check_c_funloc.m4 \ + $(top_srcdir)/config/ompi_fortran_check_f08_assumed_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_ignore_tkr.m4 \ + $(top_srcdir)/config/ompi_fortran_check_interface.m4 \ + $(top_srcdir)/config/ompi_fortran_check_iso_fortran_env.m4 \ + $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ + $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ + $(top_srcdir)/config/ompi_fortran_check_private.m4 \ + $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ + $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ + $(top_srcdir)/config/ompi_fortran_check_real16_c_equiv.m4 \ + $(top_srcdir)/config/ompi_fortran_check_storage_size.m4 \ + $(top_srcdir)/config/ompi_fortran_check_type.m4 \ + $(top_srcdir)/config/ompi_fortran_check_use_only.m4 \ + $(top_srcdir)/config/ompi_fortran_find_ext_symbol_convention.m4 \ + $(top_srcdir)/config/ompi_fortran_find_module_include_flag.m4 \ + $(top_srcdir)/config/ompi_fortran_get_alignment.m4 \ + $(top_srcdir)/config/ompi_fortran_get_handle_max.m4 \ + $(top_srcdir)/config/ompi_fortran_get_kind_value.m4 \ + $(top_srcdir)/config/ompi_fortran_get_sizeof.m4 \ + $(top_srcdir)/config/ompi_fortran_get_value_true.m4 \ + $(top_srcdir)/config/ompi_interix.m4 \ + $(top_srcdir)/config/ompi_setup_contrib.m4 \ + $(top_srcdir)/config/ompi_setup_cxx.m4 \ + $(top_srcdir)/config/ompi_setup_fc.m4 \ + $(top_srcdir)/config/ompi_setup_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_ext.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_fortran.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_profiling.m4 \ + $(top_srcdir)/config/opal_case_sensitive_fs_setup.m4 \ + $(top_srcdir)/config/opal_check_alps.m4 \ + $(top_srcdir)/config/opal_check_attributes.m4 \ + $(top_srcdir)/config/opal_check_broken_qsort.m4 \ + $(top_srcdir)/config/opal_check_cma.m4 \ + $(top_srcdir)/config/opal_check_compiler_version.m4 \ + $(top_srcdir)/config/opal_check_compiler_works.m4 \ + $(top_srcdir)/config/opal_check_cray_pmi.m4 \ + $(top_srcdir)/config/opal_check_cuda.m4 \ + $(top_srcdir)/config/opal_check_icc.m4 \ + $(top_srcdir)/config/opal_check_ident.m4 \ + $(top_srcdir)/config/opal_check_knem.m4 \ + $(top_srcdir)/config/opal_check_libnl.m4 \ + $(top_srcdir)/config/opal_check_offsetof.m4 \ + $(top_srcdir)/config/opal_check_ofi.m4 \ + $(top_srcdir)/config/opal_check_openfabrics.m4 \ + $(top_srcdir)/config/opal_check_os_flavors.m4 \ + $(top_srcdir)/config/opal_check_package.m4 \ + $(top_srcdir)/config/opal_check_pmi.m4 \ + $(top_srcdir)/config/opal_check_portals4.m4 \ + $(top_srcdir)/config/opal_check_ps.m4 \ + $(top_srcdir)/config/opal_check_pthread_pids.m4 \ + $(top_srcdir)/config/opal_check_singularity.m4 \ + $(top_srcdir)/config/opal_check_ugni.m4 \ + $(top_srcdir)/config/opal_check_vendor.m4 \ + $(top_srcdir)/config/opal_check_verbs.m4 \ + $(top_srcdir)/config/opal_check_visibility.m4 \ + $(top_srcdir)/config/opal_check_withdir.m4 \ + $(top_srcdir)/config/opal_check_xpmem.m4 \ + $(top_srcdir)/config/opal_config_asm.m4 \ + $(top_srcdir)/config/opal_config_files.m4 \ + $(top_srcdir)/config/opal_config_pthreads.m4 \ + $(top_srcdir)/config/opal_config_subdir.m4 \ + $(top_srcdir)/config/opal_config_subdir_args.m4 \ + $(top_srcdir)/config/opal_config_threads.m4 \ + $(top_srcdir)/config/opal_configure_options.m4 \ + $(top_srcdir)/config/opal_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/opal_find_type.m4 \ + $(top_srcdir)/config/opal_functions.m4 \ + $(top_srcdir)/config/opal_lang_link_with_c.m4 \ + $(top_srcdir)/config/opal_load_platform.m4 \ + $(top_srcdir)/config/opal_mca.m4 \ + $(top_srcdir)/config/opal_save_version.m4 \ + $(top_srcdir)/config/opal_search_libs.m4 \ + $(top_srcdir)/config/opal_set_lib_prefix.m4 \ + $(top_srcdir)/config/opal_set_mca_prefix.m4 \ + $(top_srcdir)/config/opal_setup_cc.m4 \ + $(top_srcdir)/config/opal_setup_cli.m4 \ + $(top_srcdir)/config/opal_setup_cxx.m4 \ + $(top_srcdir)/config/opal_setup_ft.m4 \ + $(top_srcdir)/config/opal_setup_wrappers.m4 \ + $(top_srcdir)/config/opal_setup_zlib.m4 \ + $(top_srcdir)/config/opal_strip_optflags.m4 \ + $(top_srcdir)/config/opal_summary.m4 \ + $(top_srcdir)/config/opal_try_assemble.m4 \ + $(top_srcdir)/config/orte_check_lsf.m4 \ + $(top_srcdir)/config/orte_check_moab.m4 \ + $(top_srcdir)/config/orte_check_sge.m4 \ + $(top_srcdir)/config/orte_check_slurm.m4 \ + $(top_srcdir)/config/orte_check_tm.m4 \ + $(top_srcdir)/config/orte_config_files.m4 \ + $(top_srcdir)/config/orte_configure_options.m4 \ + $(top_srcdir)/config/orte_setup_debugger_flags.m4 \ + $(top_srcdir)/config/oshmem_config_files.m4 \ + $(top_srcdir)/config/oshmem_configure_options.m4 \ + $(top_srcdir)/config/oshmem_setup_profiling.m4 \ + $(top_srcdir)/config/pkg.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/opal/mca/backtrace/configure.m4 \ + $(top_srcdir)/opal/mca/dl/configure.m4 \ + $(top_srcdir)/opal/mca/event/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/configure.m4 \ + $(top_srcdir)/opal/mca/memcpy/configure.m4 \ + $(top_srcdir)/opal/mca/memory/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/configure.m4 \ + $(top_srcdir)/opal/mca/timer/configure.m4 \ + $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/common/sm/configure.m4 \ + $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs_usnic/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ + $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ + $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ + $(top_srcdir)/opal/mca/btl/smcuda/configure.m4 \ + $(top_srcdir)/opal/mca/btl/tcp/configure.m4 \ + $(top_srcdir)/opal/mca/btl/uct/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ugni/configure.m4 \ + $(top_srcdir)/opal/mca/btl/usnic/configure.m4 \ + $(top_srcdir)/opal/mca/btl/vader/configure.m4 \ + $(top_srcdir)/opal/mca/crs/self/configure.m4 \ + $(top_srcdir)/opal/mca/dl/dlopen/configure.m4 \ + $(top_srcdir)/opal/mca/dl/libltdl/configure.m4 \ + $(top_srcdir)/opal/mca/event/external/configure.m4 \ + $(top_srcdir)/opal/mca/event/libevent2022/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/external/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_pkg.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_attributes.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_visibility.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_vendor.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_components.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_internal.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/netloc.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/linux_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/posix_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/solaris_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/config/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/env/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/valgrind/configure.m4 \ + $(top_srcdir)/opal/mca/memory/malloc_solaris/configure.m4 \ + $(top_srcdir)/opal/mca/memory/patcher/configure.m4 \ + $(top_srcdir)/opal/mca/mpool/memkind/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/linux/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/overwrite/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/cray/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext1x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext2x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/flux/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/pmix3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s1/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s2/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/linux/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/test/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/gpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/rgpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/udreg/configure.m4 \ + $(top_srcdir)/opal/mca/reachable/netlink/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/mmap/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/posix/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/sysv/configure.m4 \ + $(top_srcdir)/opal/mca/timer/altix/configure.m4 \ + $(top_srcdir)/opal/mca/timer/darwin/configure.m4 \ + $(top_srcdir)/opal/mca/timer/linux/configure.m4 \ + $(top_srcdir)/opal/mca/timer/solaris/configure.m4 \ + $(top_srcdir)/orte/mca/common/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ess/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ess/tm/configure.m4 \ + $(top_srcdir)/orte/mca/odls/alps/configure.m4 \ + $(top_srcdir)/orte/mca/odls/default/configure.m4 \ + $(top_srcdir)/orte/mca/odls/pspawn/configure.m4 \ + $(top_srcdir)/orte/mca/oob/alps/configure.m4 \ + $(top_srcdir)/orte/mca/oob/tcp/configure.m4 \ + $(top_srcdir)/orte/mca/plm/alps/configure.m4 \ + $(top_srcdir)/orte/mca/plm/isolated/configure.m4 \ + $(top_srcdir)/orte/mca/plm/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/plm/rsh/configure.m4 \ + $(top_srcdir)/orte/mca/plm/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/plm/tm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ras/gridengine/configure.m4 \ + $(top_srcdir)/orte/mca/ras/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/snapc/full/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/central/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/stage/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/configure.m4 \ + $(top_srcdir)/ompi/mca/fcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/configure.m4 \ + $(top_srcdir)/ompi/mca/hook/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/configure.m4 \ + $(top_srcdir)/ompi/mca/common/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/common/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/bml/r2/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/cuda/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/fca/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ + $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ + $(top_srcdir)/ompi/mca/io/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/io/romio321/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/ofi/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/rdma/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/crcpw/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ob1/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/v/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/yalla/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/orte/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/pmix/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/sm/configure.m4 \ + $(top_srcdir)/ompi/mca/topo/treematch/configure.m4 \ + $(top_srcdir)/oshmem/mca/memheap/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/sysv/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/verbs/configure.m4 \ + $(top_srcdir)/ompi/mpiext/affinity/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cr/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cuda/configure.m4 \ + $(top_srcdir)/ompi/mpiext/pcollreq/configure.m4 \ + $(top_srcdir)/ompi/contrib/libompitrace/configure.m4 \ + $(top_srcdir)/config/opal_get_version.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/opal/include/opal_config.h \ + $(top_builddir)/ompi/include/mpi.h \ + $(top_builddir)/oshmem/include/shmem.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen/config.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen/config.h \ + $(top_builddir)/ompi/mpiext/cuda/c/mpiext_cuda_c.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(mcacomponentdir)" +LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) +am__DEPENDENCIES_1 = +libmca_fs_ime_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +am__objects_1 = fs_ime.lo fs_ime_component.lo fs_ime_file_open.lo \ + fs_ime_file_close.lo fs_ime_file_delete.lo fs_ime_file_sync.lo \ + fs_ime_file_set_size.lo fs_ime_file_get_size.lo +am_libmca_fs_ime_la_OBJECTS = $(am__objects_1) +libmca_fs_ime_la_OBJECTS = $(am_libmca_fs_ime_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libmca_fs_ime_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libmca_fs_ime_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +@MCA_BUILD_ompi_fs_ime_DSO_FALSE@am_libmca_fs_ime_la_rpath = +mca_fs_ime_la_DEPENDENCIES = \ + $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(am__DEPENDENCIES_1) +am_mca_fs_ime_la_OBJECTS = $(am__objects_1) +mca_fs_ime_la_OBJECTS = $(am_mca_fs_ime_la_OBJECTS) +mca_fs_ime_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(mca_fs_ime_la_LDFLAGS) $(LDFLAGS) -o $@ +@MCA_BUILD_ompi_fs_ime_DSO_TRUE@am_mca_fs_ime_la_rpath = -rpath \ +@MCA_BUILD_ompi_fs_ime_DSO_TRUE@ $(mcacomponentdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/opal/include -I$(top_builddir)/ompi/include -I$(top_builddir)/oshmem/include -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen -I$(top_builddir)/ompi/mpiext/cuda/c +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libmca_fs_ime_la_SOURCES) $(mca_fs_ime_la_SOURCES) +DIST_SOURCES = $(libmca_fs_ime_la_SOURCES) $(mca_fs_ime_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/config/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMCA_PARAM_SETS_DIR = @AMCA_PARAM_SETS_DIR@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BASH = @BASH@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAGS_WITHOUT_OPTFLAGS = @CFLAGS_WITHOUT_OPTFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CRAY_ALPSLLI_CFLAGS = @CRAY_ALPSLLI_CFLAGS@ +CRAY_ALPSLLI_LIBS = @CRAY_ALPSLLI_LIBS@ +CRAY_ALPSLLI_STATIC_LIBS = @CRAY_ALPSLLI_STATIC_LIBS@ +CRAY_ALPSUTIL_CFLAGS = @CRAY_ALPSUTIL_CFLAGS@ +CRAY_ALPSUTIL_LIBS = @CRAY_ALPSUTIL_LIBS@ +CRAY_ALPSUTIL_STATIC_LIBS = @CRAY_ALPSUTIL_STATIC_LIBS@ +CRAY_ALPS_CFLAGS = @CRAY_ALPS_CFLAGS@ +CRAY_ALPS_LIBS = @CRAY_ALPS_LIBS@ +CRAY_ALPS_STATIC_LIBS = @CRAY_ALPS_STATIC_LIBS@ +CRAY_PMI_CFLAGS = @CRAY_PMI_CFLAGS@ +CRAY_PMI_LIBS = @CRAY_PMI_LIBS@ +CRAY_PMI_STATIC_LIBS = @CRAY_PMI_STATIC_LIBS@ +CRAY_UDREG_CFLAGS = @CRAY_UDREG_CFLAGS@ +CRAY_UDREG_LIBS = @CRAY_UDREG_LIBS@ +CRAY_UGNI_CFLAGS = @CRAY_UGNI_CFLAGS@ +CRAY_UGNI_LIBS = @CRAY_UGNI_LIBS@ +CRAY_WLM_DETECT_CFLAGS = @CRAY_WLM_DETECT_CFLAGS@ +CRAY_WLM_DETECT_LIBS = @CRAY_WLM_DETECT_LIBS@ +CRAY_WLM_DETECT_STATIC_LIBS = @CRAY_WLM_DETECT_STATIC_LIBS@ +CRAY_XPMEM_CFLAGS = @CRAY_XPMEM_CFLAGS@ +CRAY_XPMEM_LIBS = @CRAY_XPMEM_LIBS@ +CRAY_XPMEM_STATIC_LIBS = @CRAY_XPMEM_STATIC_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXCPPFLAGS = @CXXCPPFLAGS@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUGGER_CFLAGS = @DEBUGGER_CFLAGS@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FC = @FC@ +FCFLAGS = @FCFLAGS@ +FCFLAGS_f = @FCFLAGS_f@ +FCFLAGS_f90 = @FCFLAGS_f90@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLUX_PMI_CFLAGS = @FLUX_PMI_CFLAGS@ +FLUX_PMI_LIBS = @FLUX_PMI_LIBS@ +GREP = @GREP@ +HWLOC_CFLAGS = @HWLOC_CFLAGS@ +HWLOC_CPPFLAGS = @HWLOC_CPPFLAGS@ +HWLOC_CUDA_LIBS = @HWLOC_CUDA_LIBS@ +HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@ +HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@ +HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@ +HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@ +HWLOC_GL_LIBS = @HWLOC_GL_LIBS@ +HWLOC_HAVE_LIBXML2 = @HWLOC_HAVE_LIBXML2@ +HWLOC_HAVE_NVML = @HWLOC_HAVE_NVML@ +HWLOC_HAVE_OPENCL = @HWLOC_HAVE_OPENCL@ +HWLOC_LDFLAGS = @HWLOC_LDFLAGS@ +HWLOC_LIBS = @HWLOC_LIBS@ +HWLOC_LIBS_PRIVATE = @HWLOC_LIBS_PRIVATE@ +HWLOC_LIBXML2_CFLAGS = @HWLOC_LIBXML2_CFLAGS@ +HWLOC_LIBXML2_LIBS = @HWLOC_LIBXML2_LIBS@ +HWLOC_MS_LIB = @HWLOC_MS_LIB@ +HWLOC_MS_LIB_ARCH = @HWLOC_MS_LIB_ARCH@ +HWLOC_NVML_LIBS = @HWLOC_NVML_LIBS@ +HWLOC_OPENCL_CFLAGS = @HWLOC_OPENCL_CFLAGS@ +HWLOC_OPENCL_LDFLAGS = @HWLOC_OPENCL_LDFLAGS@ +HWLOC_OPENCL_LIBS = @HWLOC_OPENCL_LIBS@ +HWLOC_PCIACCESS_CFLAGS = @HWLOC_PCIACCESS_CFLAGS@ +HWLOC_PCIACCESS_LIBS = @HWLOC_PCIACCESS_LIBS@ +HWLOC_PLUGINS_DIR = @HWLOC_PLUGINS_DIR@ +HWLOC_PLUGINS_PATH = @HWLOC_PLUGINS_PATH@ +HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@ +HWLOC_REQUIRES = @HWLOC_REQUIRES@ +HWLOC_VERSION = @HWLOC_VERSION@ +HWLOC_X11_CPPFLAGS = @HWLOC_X11_CPPFLAGS@ +HWLOC_X11_LIBS = @HWLOC_X11_LIBS@ +HWLOC_top_builddir = @HWLOC_top_builddir@ +HWLOC_top_srcdir = @HWLOC_top_srcdir@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JAR = @JAR@ +JAVAC = @JAVAC@ +JAVADOC = @JAVADOC@ +JAVAH = @JAVAH@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ +MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ +MCA_ompi_FRAMEWORKS_SUBDIRS = @MCA_ompi_FRAMEWORKS_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_ompi_FRAMEWORK_LIBS = @MCA_ompi_FRAMEWORK_LIBS@ +MCA_ompi_bml_ALL_COMPONENTS = @MCA_ompi_bml_ALL_COMPONENTS@ +MCA_ompi_bml_ALL_SUBDIRS = @MCA_ompi_bml_ALL_SUBDIRS@ +MCA_ompi_bml_DSO_COMPONENTS = @MCA_ompi_bml_DSO_COMPONENTS@ +MCA_ompi_bml_DSO_SUBDIRS = @MCA_ompi_bml_DSO_SUBDIRS@ +MCA_ompi_bml_STATIC_COMPONENTS = @MCA_ompi_bml_STATIC_COMPONENTS@ +MCA_ompi_bml_STATIC_LTLIBS = @MCA_ompi_bml_STATIC_LTLIBS@ +MCA_ompi_bml_STATIC_SUBDIRS = @MCA_ompi_bml_STATIC_SUBDIRS@ +MCA_ompi_coll_ALL_COMPONENTS = @MCA_ompi_coll_ALL_COMPONENTS@ +MCA_ompi_coll_ALL_SUBDIRS = @MCA_ompi_coll_ALL_SUBDIRS@ +MCA_ompi_coll_DSO_COMPONENTS = @MCA_ompi_coll_DSO_COMPONENTS@ +MCA_ompi_coll_DSO_SUBDIRS = @MCA_ompi_coll_DSO_SUBDIRS@ +MCA_ompi_coll_STATIC_COMPONENTS = @MCA_ompi_coll_STATIC_COMPONENTS@ +MCA_ompi_coll_STATIC_LTLIBS = @MCA_ompi_coll_STATIC_LTLIBS@ +MCA_ompi_coll_STATIC_SUBDIRS = @MCA_ompi_coll_STATIC_SUBDIRS@ +MCA_ompi_common_ALL_COMPONENTS = @MCA_ompi_common_ALL_COMPONENTS@ +MCA_ompi_common_ALL_SUBDIRS = @MCA_ompi_common_ALL_SUBDIRS@ +MCA_ompi_common_DSO_COMPONENTS = @MCA_ompi_common_DSO_COMPONENTS@ +MCA_ompi_common_DSO_SUBDIRS = @MCA_ompi_common_DSO_SUBDIRS@ +MCA_ompi_common_STATIC_COMPONENTS = @MCA_ompi_common_STATIC_COMPONENTS@ +MCA_ompi_common_STATIC_LTLIBS = @MCA_ompi_common_STATIC_LTLIBS@ +MCA_ompi_common_STATIC_SUBDIRS = @MCA_ompi_common_STATIC_SUBDIRS@ +MCA_ompi_crcp_ALL_COMPONENTS = @MCA_ompi_crcp_ALL_COMPONENTS@ +MCA_ompi_crcp_ALL_SUBDIRS = @MCA_ompi_crcp_ALL_SUBDIRS@ +MCA_ompi_crcp_DSO_COMPONENTS = @MCA_ompi_crcp_DSO_COMPONENTS@ +MCA_ompi_crcp_DSO_SUBDIRS = @MCA_ompi_crcp_DSO_SUBDIRS@ +MCA_ompi_crcp_STATIC_COMPONENTS = @MCA_ompi_crcp_STATIC_COMPONENTS@ +MCA_ompi_crcp_STATIC_LTLIBS = @MCA_ompi_crcp_STATIC_LTLIBS@ +MCA_ompi_crcp_STATIC_SUBDIRS = @MCA_ompi_crcp_STATIC_SUBDIRS@ +MCA_ompi_fbtl_ALL_COMPONENTS = @MCA_ompi_fbtl_ALL_COMPONENTS@ +MCA_ompi_fbtl_ALL_SUBDIRS = @MCA_ompi_fbtl_ALL_SUBDIRS@ +MCA_ompi_fbtl_DSO_COMPONENTS = @MCA_ompi_fbtl_DSO_COMPONENTS@ +MCA_ompi_fbtl_DSO_SUBDIRS = @MCA_ompi_fbtl_DSO_SUBDIRS@ +MCA_ompi_fbtl_STATIC_COMPONENTS = @MCA_ompi_fbtl_STATIC_COMPONENTS@ +MCA_ompi_fbtl_STATIC_LTLIBS = @MCA_ompi_fbtl_STATIC_LTLIBS@ +MCA_ompi_fbtl_STATIC_SUBDIRS = @MCA_ompi_fbtl_STATIC_SUBDIRS@ +MCA_ompi_fcoll_ALL_COMPONENTS = @MCA_ompi_fcoll_ALL_COMPONENTS@ +MCA_ompi_fcoll_ALL_SUBDIRS = @MCA_ompi_fcoll_ALL_SUBDIRS@ +MCA_ompi_fcoll_DSO_COMPONENTS = @MCA_ompi_fcoll_DSO_COMPONENTS@ +MCA_ompi_fcoll_DSO_SUBDIRS = @MCA_ompi_fcoll_DSO_SUBDIRS@ +MCA_ompi_fcoll_STATIC_COMPONENTS = @MCA_ompi_fcoll_STATIC_COMPONENTS@ +MCA_ompi_fcoll_STATIC_LTLIBS = @MCA_ompi_fcoll_STATIC_LTLIBS@ +MCA_ompi_fcoll_STATIC_SUBDIRS = @MCA_ompi_fcoll_STATIC_SUBDIRS@ +MCA_ompi_fs_ALL_COMPONENTS = @MCA_ompi_fs_ALL_COMPONENTS@ +MCA_ompi_fs_ALL_SUBDIRS = @MCA_ompi_fs_ALL_SUBDIRS@ +MCA_ompi_fs_DSO_COMPONENTS = @MCA_ompi_fs_DSO_COMPONENTS@ +MCA_ompi_fs_DSO_SUBDIRS = @MCA_ompi_fs_DSO_SUBDIRS@ +MCA_ompi_fs_STATIC_COMPONENTS = @MCA_ompi_fs_STATIC_COMPONENTS@ +MCA_ompi_fs_STATIC_LTLIBS = @MCA_ompi_fs_STATIC_LTLIBS@ +MCA_ompi_fs_STATIC_SUBDIRS = @MCA_ompi_fs_STATIC_SUBDIRS@ +MCA_ompi_hook_ALL_COMPONENTS = @MCA_ompi_hook_ALL_COMPONENTS@ +MCA_ompi_hook_ALL_SUBDIRS = @MCA_ompi_hook_ALL_SUBDIRS@ +MCA_ompi_hook_DSO_COMPONENTS = @MCA_ompi_hook_DSO_COMPONENTS@ +MCA_ompi_hook_DSO_SUBDIRS = @MCA_ompi_hook_DSO_SUBDIRS@ +MCA_ompi_hook_STATIC_COMPONENTS = @MCA_ompi_hook_STATIC_COMPONENTS@ +MCA_ompi_hook_STATIC_LTLIBS = @MCA_ompi_hook_STATIC_LTLIBS@ +MCA_ompi_hook_STATIC_SUBDIRS = @MCA_ompi_hook_STATIC_SUBDIRS@ +MCA_ompi_io_ALL_COMPONENTS = @MCA_ompi_io_ALL_COMPONENTS@ +MCA_ompi_io_ALL_SUBDIRS = @MCA_ompi_io_ALL_SUBDIRS@ +MCA_ompi_io_DSO_COMPONENTS = @MCA_ompi_io_DSO_COMPONENTS@ +MCA_ompi_io_DSO_SUBDIRS = @MCA_ompi_io_DSO_SUBDIRS@ +MCA_ompi_io_STATIC_COMPONENTS = @MCA_ompi_io_STATIC_COMPONENTS@ +MCA_ompi_io_STATIC_LTLIBS = @MCA_ompi_io_STATIC_LTLIBS@ +MCA_ompi_io_STATIC_SUBDIRS = @MCA_ompi_io_STATIC_SUBDIRS@ +MCA_ompi_mtl_ALL_COMPONENTS = @MCA_ompi_mtl_ALL_COMPONENTS@ +MCA_ompi_mtl_ALL_SUBDIRS = @MCA_ompi_mtl_ALL_SUBDIRS@ +MCA_ompi_mtl_DIRECT_CALL_HEADER = @MCA_ompi_mtl_DIRECT_CALL_HEADER@ +MCA_ompi_mtl_DSO_COMPONENTS = @MCA_ompi_mtl_DSO_COMPONENTS@ +MCA_ompi_mtl_DSO_SUBDIRS = @MCA_ompi_mtl_DSO_SUBDIRS@ +MCA_ompi_mtl_STATIC_COMPONENTS = @MCA_ompi_mtl_STATIC_COMPONENTS@ +MCA_ompi_mtl_STATIC_LTLIBS = @MCA_ompi_mtl_STATIC_LTLIBS@ +MCA_ompi_mtl_STATIC_SUBDIRS = @MCA_ompi_mtl_STATIC_SUBDIRS@ +MCA_ompi_op_ALL_COMPONENTS = @MCA_ompi_op_ALL_COMPONENTS@ +MCA_ompi_op_ALL_SUBDIRS = @MCA_ompi_op_ALL_SUBDIRS@ +MCA_ompi_op_DSO_COMPONENTS = @MCA_ompi_op_DSO_COMPONENTS@ +MCA_ompi_op_DSO_SUBDIRS = @MCA_ompi_op_DSO_SUBDIRS@ +MCA_ompi_op_STATIC_COMPONENTS = @MCA_ompi_op_STATIC_COMPONENTS@ +MCA_ompi_op_STATIC_LTLIBS = @MCA_ompi_op_STATIC_LTLIBS@ +MCA_ompi_op_STATIC_SUBDIRS = @MCA_ompi_op_STATIC_SUBDIRS@ +MCA_ompi_osc_ALL_COMPONENTS = @MCA_ompi_osc_ALL_COMPONENTS@ +MCA_ompi_osc_ALL_SUBDIRS = @MCA_ompi_osc_ALL_SUBDIRS@ +MCA_ompi_osc_DSO_COMPONENTS = @MCA_ompi_osc_DSO_COMPONENTS@ +MCA_ompi_osc_DSO_SUBDIRS = @MCA_ompi_osc_DSO_SUBDIRS@ +MCA_ompi_osc_STATIC_COMPONENTS = @MCA_ompi_osc_STATIC_COMPONENTS@ +MCA_ompi_osc_STATIC_LTLIBS = @MCA_ompi_osc_STATIC_LTLIBS@ +MCA_ompi_osc_STATIC_SUBDIRS = @MCA_ompi_osc_STATIC_SUBDIRS@ +MCA_ompi_pml_ALL_COMPONENTS = @MCA_ompi_pml_ALL_COMPONENTS@ +MCA_ompi_pml_ALL_SUBDIRS = @MCA_ompi_pml_ALL_SUBDIRS@ +MCA_ompi_pml_DIRECT_CALL_HEADER = @MCA_ompi_pml_DIRECT_CALL_HEADER@ +MCA_ompi_pml_DSO_COMPONENTS = @MCA_ompi_pml_DSO_COMPONENTS@ +MCA_ompi_pml_DSO_SUBDIRS = @MCA_ompi_pml_DSO_SUBDIRS@ +MCA_ompi_pml_STATIC_COMPONENTS = @MCA_ompi_pml_STATIC_COMPONENTS@ +MCA_ompi_pml_STATIC_LTLIBS = @MCA_ompi_pml_STATIC_LTLIBS@ +MCA_ompi_pml_STATIC_SUBDIRS = @MCA_ompi_pml_STATIC_SUBDIRS@ +MCA_ompi_rte_ALL_COMPONENTS = @MCA_ompi_rte_ALL_COMPONENTS@ +MCA_ompi_rte_ALL_SUBDIRS = @MCA_ompi_rte_ALL_SUBDIRS@ +MCA_ompi_rte_DSO_COMPONENTS = @MCA_ompi_rte_DSO_COMPONENTS@ +MCA_ompi_rte_DSO_SUBDIRS = @MCA_ompi_rte_DSO_SUBDIRS@ +MCA_ompi_rte_STATIC_COMPONENTS = @MCA_ompi_rte_STATIC_COMPONENTS@ +MCA_ompi_rte_STATIC_LTLIBS = @MCA_ompi_rte_STATIC_LTLIBS@ +MCA_ompi_rte_STATIC_SUBDIRS = @MCA_ompi_rte_STATIC_SUBDIRS@ +MCA_ompi_sharedfp_ALL_COMPONENTS = @MCA_ompi_sharedfp_ALL_COMPONENTS@ +MCA_ompi_sharedfp_ALL_SUBDIRS = @MCA_ompi_sharedfp_ALL_SUBDIRS@ +MCA_ompi_sharedfp_DSO_COMPONENTS = @MCA_ompi_sharedfp_DSO_COMPONENTS@ +MCA_ompi_sharedfp_DSO_SUBDIRS = @MCA_ompi_sharedfp_DSO_SUBDIRS@ +MCA_ompi_sharedfp_STATIC_COMPONENTS = @MCA_ompi_sharedfp_STATIC_COMPONENTS@ +MCA_ompi_sharedfp_STATIC_LTLIBS = @MCA_ompi_sharedfp_STATIC_LTLIBS@ +MCA_ompi_sharedfp_STATIC_SUBDIRS = @MCA_ompi_sharedfp_STATIC_SUBDIRS@ +MCA_ompi_topo_ALL_COMPONENTS = @MCA_ompi_topo_ALL_COMPONENTS@ +MCA_ompi_topo_ALL_SUBDIRS = @MCA_ompi_topo_ALL_SUBDIRS@ +MCA_ompi_topo_DSO_COMPONENTS = @MCA_ompi_topo_DSO_COMPONENTS@ +MCA_ompi_topo_DSO_SUBDIRS = @MCA_ompi_topo_DSO_SUBDIRS@ +MCA_ompi_topo_STATIC_COMPONENTS = @MCA_ompi_topo_STATIC_COMPONENTS@ +MCA_ompi_topo_STATIC_LTLIBS = @MCA_ompi_topo_STATIC_LTLIBS@ +MCA_ompi_topo_STATIC_SUBDIRS = @MCA_ompi_topo_STATIC_SUBDIRS@ +MCA_ompi_vprotocol_ALL_COMPONENTS = @MCA_ompi_vprotocol_ALL_COMPONENTS@ +MCA_ompi_vprotocol_ALL_SUBDIRS = @MCA_ompi_vprotocol_ALL_SUBDIRS@ +MCA_ompi_vprotocol_DSO_COMPONENTS = @MCA_ompi_vprotocol_DSO_COMPONENTS@ +MCA_ompi_vprotocol_DSO_SUBDIRS = @MCA_ompi_vprotocol_DSO_SUBDIRS@ +MCA_ompi_vprotocol_STATIC_COMPONENTS = @MCA_ompi_vprotocol_STATIC_COMPONENTS@ +MCA_ompi_vprotocol_STATIC_LTLIBS = @MCA_ompi_vprotocol_STATIC_LTLIBS@ +MCA_ompi_vprotocol_STATIC_SUBDIRS = @MCA_ompi_vprotocol_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORKS = @MCA_opal_FRAMEWORKS@ +MCA_opal_FRAMEWORKS_SUBDIRS = @MCA_opal_FRAMEWORKS_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORK_LIBS = @MCA_opal_FRAMEWORK_LIBS@ +MCA_opal_allocator_ALL_COMPONENTS = @MCA_opal_allocator_ALL_COMPONENTS@ +MCA_opal_allocator_ALL_SUBDIRS = @MCA_opal_allocator_ALL_SUBDIRS@ +MCA_opal_allocator_DSO_COMPONENTS = @MCA_opal_allocator_DSO_COMPONENTS@ +MCA_opal_allocator_DSO_SUBDIRS = @MCA_opal_allocator_DSO_SUBDIRS@ +MCA_opal_allocator_STATIC_COMPONENTS = @MCA_opal_allocator_STATIC_COMPONENTS@ +MCA_opal_allocator_STATIC_LTLIBS = @MCA_opal_allocator_STATIC_LTLIBS@ +MCA_opal_allocator_STATIC_SUBDIRS = @MCA_opal_allocator_STATIC_SUBDIRS@ +MCA_opal_backtrace_ALL_COMPONENTS = @MCA_opal_backtrace_ALL_COMPONENTS@ +MCA_opal_backtrace_ALL_SUBDIRS = @MCA_opal_backtrace_ALL_SUBDIRS@ +MCA_opal_backtrace_DSO_COMPONENTS = @MCA_opal_backtrace_DSO_COMPONENTS@ +MCA_opal_backtrace_DSO_SUBDIRS = @MCA_opal_backtrace_DSO_SUBDIRS@ +MCA_opal_backtrace_STATIC_COMPONENTS = @MCA_opal_backtrace_STATIC_COMPONENTS@ +MCA_opal_backtrace_STATIC_LTLIBS = @MCA_opal_backtrace_STATIC_LTLIBS@ +MCA_opal_backtrace_STATIC_SUBDIRS = @MCA_opal_backtrace_STATIC_SUBDIRS@ +MCA_opal_btl_ALL_COMPONENTS = @MCA_opal_btl_ALL_COMPONENTS@ +MCA_opal_btl_ALL_SUBDIRS = @MCA_opal_btl_ALL_SUBDIRS@ +MCA_opal_btl_DSO_COMPONENTS = @MCA_opal_btl_DSO_COMPONENTS@ +MCA_opal_btl_DSO_SUBDIRS = @MCA_opal_btl_DSO_SUBDIRS@ +MCA_opal_btl_STATIC_COMPONENTS = @MCA_opal_btl_STATIC_COMPONENTS@ +MCA_opal_btl_STATIC_LTLIBS = @MCA_opal_btl_STATIC_LTLIBS@ +MCA_opal_btl_STATIC_SUBDIRS = @MCA_opal_btl_STATIC_SUBDIRS@ +MCA_opal_common_ALL_COMPONENTS = @MCA_opal_common_ALL_COMPONENTS@ +MCA_opal_common_ALL_SUBDIRS = @MCA_opal_common_ALL_SUBDIRS@ +MCA_opal_common_DSO_COMPONENTS = @MCA_opal_common_DSO_COMPONENTS@ +MCA_opal_common_DSO_SUBDIRS = @MCA_opal_common_DSO_SUBDIRS@ +MCA_opal_common_STATIC_COMPONENTS = @MCA_opal_common_STATIC_COMPONENTS@ +MCA_opal_common_STATIC_LTLIBS = @MCA_opal_common_STATIC_LTLIBS@ +MCA_opal_common_STATIC_SUBDIRS = @MCA_opal_common_STATIC_SUBDIRS@ +MCA_opal_compress_ALL_COMPONENTS = @MCA_opal_compress_ALL_COMPONENTS@ +MCA_opal_compress_ALL_SUBDIRS = @MCA_opal_compress_ALL_SUBDIRS@ +MCA_opal_compress_DSO_COMPONENTS = @MCA_opal_compress_DSO_COMPONENTS@ +MCA_opal_compress_DSO_SUBDIRS = @MCA_opal_compress_DSO_SUBDIRS@ +MCA_opal_compress_STATIC_COMPONENTS = @MCA_opal_compress_STATIC_COMPONENTS@ +MCA_opal_compress_STATIC_LTLIBS = @MCA_opal_compress_STATIC_LTLIBS@ +MCA_opal_compress_STATIC_SUBDIRS = @MCA_opal_compress_STATIC_SUBDIRS@ +MCA_opal_crs_ALL_COMPONENTS = @MCA_opal_crs_ALL_COMPONENTS@ +MCA_opal_crs_ALL_SUBDIRS = @MCA_opal_crs_ALL_SUBDIRS@ +MCA_opal_crs_DSO_COMPONENTS = @MCA_opal_crs_DSO_COMPONENTS@ +MCA_opal_crs_DSO_SUBDIRS = @MCA_opal_crs_DSO_SUBDIRS@ +MCA_opal_crs_STATIC_COMPONENTS = @MCA_opal_crs_STATIC_COMPONENTS@ +MCA_opal_crs_STATIC_LTLIBS = @MCA_opal_crs_STATIC_LTLIBS@ +MCA_opal_crs_STATIC_SUBDIRS = @MCA_opal_crs_STATIC_SUBDIRS@ +MCA_opal_dl_ALL_COMPONENTS = @MCA_opal_dl_ALL_COMPONENTS@ +MCA_opal_dl_ALL_SUBDIRS = @MCA_opal_dl_ALL_SUBDIRS@ +MCA_opal_dl_DSO_COMPONENTS = @MCA_opal_dl_DSO_COMPONENTS@ +MCA_opal_dl_DSO_SUBDIRS = @MCA_opal_dl_DSO_SUBDIRS@ +MCA_opal_dl_STATIC_COMPONENTS = @MCA_opal_dl_STATIC_COMPONENTS@ +MCA_opal_dl_STATIC_LTLIBS = @MCA_opal_dl_STATIC_LTLIBS@ +MCA_opal_dl_STATIC_SUBDIRS = @MCA_opal_dl_STATIC_SUBDIRS@ +MCA_opal_event_ALL_COMPONENTS = @MCA_opal_event_ALL_COMPONENTS@ +MCA_opal_event_ALL_SUBDIRS = @MCA_opal_event_ALL_SUBDIRS@ +MCA_opal_event_DSO_COMPONENTS = @MCA_opal_event_DSO_COMPONENTS@ +MCA_opal_event_DSO_SUBDIRS = @MCA_opal_event_DSO_SUBDIRS@ +MCA_opal_event_STATIC_COMPONENTS = @MCA_opal_event_STATIC_COMPONENTS@ +MCA_opal_event_STATIC_LTLIBS = @MCA_opal_event_STATIC_LTLIBS@ +MCA_opal_event_STATIC_SUBDIRS = @MCA_opal_event_STATIC_SUBDIRS@ +MCA_opal_hwloc_ALL_COMPONENTS = @MCA_opal_hwloc_ALL_COMPONENTS@ +MCA_opal_hwloc_ALL_SUBDIRS = @MCA_opal_hwloc_ALL_SUBDIRS@ +MCA_opal_hwloc_DSO_COMPONENTS = @MCA_opal_hwloc_DSO_COMPONENTS@ +MCA_opal_hwloc_DSO_SUBDIRS = @MCA_opal_hwloc_DSO_SUBDIRS@ +MCA_opal_hwloc_STATIC_COMPONENTS = @MCA_opal_hwloc_STATIC_COMPONENTS@ +MCA_opal_hwloc_STATIC_LTLIBS = @MCA_opal_hwloc_STATIC_LTLIBS@ +MCA_opal_hwloc_STATIC_SUBDIRS = @MCA_opal_hwloc_STATIC_SUBDIRS@ +MCA_opal_if_ALL_COMPONENTS = @MCA_opal_if_ALL_COMPONENTS@ +MCA_opal_if_ALL_SUBDIRS = @MCA_opal_if_ALL_SUBDIRS@ +MCA_opal_if_DSO_COMPONENTS = @MCA_opal_if_DSO_COMPONENTS@ +MCA_opal_if_DSO_SUBDIRS = @MCA_opal_if_DSO_SUBDIRS@ +MCA_opal_if_STATIC_COMPONENTS = @MCA_opal_if_STATIC_COMPONENTS@ +MCA_opal_if_STATIC_LTLIBS = @MCA_opal_if_STATIC_LTLIBS@ +MCA_opal_if_STATIC_SUBDIRS = @MCA_opal_if_STATIC_SUBDIRS@ +MCA_opal_installdirs_ALL_COMPONENTS = @MCA_opal_installdirs_ALL_COMPONENTS@ +MCA_opal_installdirs_ALL_SUBDIRS = @MCA_opal_installdirs_ALL_SUBDIRS@ +MCA_opal_installdirs_DSO_COMPONENTS = @MCA_opal_installdirs_DSO_COMPONENTS@ +MCA_opal_installdirs_DSO_SUBDIRS = @MCA_opal_installdirs_DSO_SUBDIRS@ +MCA_opal_installdirs_STATIC_COMPONENTS = @MCA_opal_installdirs_STATIC_COMPONENTS@ +MCA_opal_installdirs_STATIC_LTLIBS = @MCA_opal_installdirs_STATIC_LTLIBS@ +MCA_opal_installdirs_STATIC_SUBDIRS = @MCA_opal_installdirs_STATIC_SUBDIRS@ +MCA_opal_memchecker_ALL_COMPONENTS = @MCA_opal_memchecker_ALL_COMPONENTS@ +MCA_opal_memchecker_ALL_SUBDIRS = @MCA_opal_memchecker_ALL_SUBDIRS@ +MCA_opal_memchecker_DSO_COMPONENTS = @MCA_opal_memchecker_DSO_COMPONENTS@ +MCA_opal_memchecker_DSO_SUBDIRS = @MCA_opal_memchecker_DSO_SUBDIRS@ +MCA_opal_memchecker_STATIC_COMPONENTS = @MCA_opal_memchecker_STATIC_COMPONENTS@ +MCA_opal_memchecker_STATIC_LTLIBS = @MCA_opal_memchecker_STATIC_LTLIBS@ +MCA_opal_memchecker_STATIC_SUBDIRS = @MCA_opal_memchecker_STATIC_SUBDIRS@ +MCA_opal_memcpy_ALL_COMPONENTS = @MCA_opal_memcpy_ALL_COMPONENTS@ +MCA_opal_memcpy_ALL_SUBDIRS = @MCA_opal_memcpy_ALL_SUBDIRS@ +MCA_opal_memcpy_DSO_COMPONENTS = @MCA_opal_memcpy_DSO_COMPONENTS@ +MCA_opal_memcpy_DSO_SUBDIRS = @MCA_opal_memcpy_DSO_SUBDIRS@ +MCA_opal_memcpy_STATIC_COMPONENTS = @MCA_opal_memcpy_STATIC_COMPONENTS@ +MCA_opal_memcpy_STATIC_LTLIBS = @MCA_opal_memcpy_STATIC_LTLIBS@ +MCA_opal_memcpy_STATIC_SUBDIRS = @MCA_opal_memcpy_STATIC_SUBDIRS@ +MCA_opal_memory_ALL_COMPONENTS = @MCA_opal_memory_ALL_COMPONENTS@ +MCA_opal_memory_ALL_SUBDIRS = @MCA_opal_memory_ALL_SUBDIRS@ +MCA_opal_memory_DSO_COMPONENTS = @MCA_opal_memory_DSO_COMPONENTS@ +MCA_opal_memory_DSO_SUBDIRS = @MCA_opal_memory_DSO_SUBDIRS@ +MCA_opal_memory_STATIC_COMPONENTS = @MCA_opal_memory_STATIC_COMPONENTS@ +MCA_opal_memory_STATIC_LTLIBS = @MCA_opal_memory_STATIC_LTLIBS@ +MCA_opal_memory_STATIC_SUBDIRS = @MCA_opal_memory_STATIC_SUBDIRS@ +MCA_opal_mpool_ALL_COMPONENTS = @MCA_opal_mpool_ALL_COMPONENTS@ +MCA_opal_mpool_ALL_SUBDIRS = @MCA_opal_mpool_ALL_SUBDIRS@ +MCA_opal_mpool_DSO_COMPONENTS = @MCA_opal_mpool_DSO_COMPONENTS@ +MCA_opal_mpool_DSO_SUBDIRS = @MCA_opal_mpool_DSO_SUBDIRS@ +MCA_opal_mpool_STATIC_COMPONENTS = @MCA_opal_mpool_STATIC_COMPONENTS@ +MCA_opal_mpool_STATIC_LTLIBS = @MCA_opal_mpool_STATIC_LTLIBS@ +MCA_opal_mpool_STATIC_SUBDIRS = @MCA_opal_mpool_STATIC_SUBDIRS@ +MCA_opal_patcher_ALL_COMPONENTS = @MCA_opal_patcher_ALL_COMPONENTS@ +MCA_opal_patcher_ALL_SUBDIRS = @MCA_opal_patcher_ALL_SUBDIRS@ +MCA_opal_patcher_DSO_COMPONENTS = @MCA_opal_patcher_DSO_COMPONENTS@ +MCA_opal_patcher_DSO_SUBDIRS = @MCA_opal_patcher_DSO_SUBDIRS@ +MCA_opal_patcher_STATIC_COMPONENTS = @MCA_opal_patcher_STATIC_COMPONENTS@ +MCA_opal_patcher_STATIC_LTLIBS = @MCA_opal_patcher_STATIC_LTLIBS@ +MCA_opal_patcher_STATIC_SUBDIRS = @MCA_opal_patcher_STATIC_SUBDIRS@ +MCA_opal_pmix_ALL_COMPONENTS = @MCA_opal_pmix_ALL_COMPONENTS@ +MCA_opal_pmix_ALL_SUBDIRS = @MCA_opal_pmix_ALL_SUBDIRS@ +MCA_opal_pmix_DSO_COMPONENTS = @MCA_opal_pmix_DSO_COMPONENTS@ +MCA_opal_pmix_DSO_SUBDIRS = @MCA_opal_pmix_DSO_SUBDIRS@ +MCA_opal_pmix_STATIC_COMPONENTS = @MCA_opal_pmix_STATIC_COMPONENTS@ +MCA_opal_pmix_STATIC_LTLIBS = @MCA_opal_pmix_STATIC_LTLIBS@ +MCA_opal_pmix_STATIC_SUBDIRS = @MCA_opal_pmix_STATIC_SUBDIRS@ +MCA_opal_pstat_ALL_COMPONENTS = @MCA_opal_pstat_ALL_COMPONENTS@ +MCA_opal_pstat_ALL_SUBDIRS = @MCA_opal_pstat_ALL_SUBDIRS@ +MCA_opal_pstat_DSO_COMPONENTS = @MCA_opal_pstat_DSO_COMPONENTS@ +MCA_opal_pstat_DSO_SUBDIRS = @MCA_opal_pstat_DSO_SUBDIRS@ +MCA_opal_pstat_STATIC_COMPONENTS = @MCA_opal_pstat_STATIC_COMPONENTS@ +MCA_opal_pstat_STATIC_LTLIBS = @MCA_opal_pstat_STATIC_LTLIBS@ +MCA_opal_pstat_STATIC_SUBDIRS = @MCA_opal_pstat_STATIC_SUBDIRS@ +MCA_opal_rcache_ALL_COMPONENTS = @MCA_opal_rcache_ALL_COMPONENTS@ +MCA_opal_rcache_ALL_SUBDIRS = @MCA_opal_rcache_ALL_SUBDIRS@ +MCA_opal_rcache_DSO_COMPONENTS = @MCA_opal_rcache_DSO_COMPONENTS@ +MCA_opal_rcache_DSO_SUBDIRS = @MCA_opal_rcache_DSO_SUBDIRS@ +MCA_opal_rcache_STATIC_COMPONENTS = @MCA_opal_rcache_STATIC_COMPONENTS@ +MCA_opal_rcache_STATIC_LTLIBS = @MCA_opal_rcache_STATIC_LTLIBS@ +MCA_opal_rcache_STATIC_SUBDIRS = @MCA_opal_rcache_STATIC_SUBDIRS@ +MCA_opal_reachable_ALL_COMPONENTS = @MCA_opal_reachable_ALL_COMPONENTS@ +MCA_opal_reachable_ALL_SUBDIRS = @MCA_opal_reachable_ALL_SUBDIRS@ +MCA_opal_reachable_DSO_COMPONENTS = @MCA_opal_reachable_DSO_COMPONENTS@ +MCA_opal_reachable_DSO_SUBDIRS = @MCA_opal_reachable_DSO_SUBDIRS@ +MCA_opal_reachable_STATIC_COMPONENTS = @MCA_opal_reachable_STATIC_COMPONENTS@ +MCA_opal_reachable_STATIC_LTLIBS = @MCA_opal_reachable_STATIC_LTLIBS@ +MCA_opal_reachable_STATIC_SUBDIRS = @MCA_opal_reachable_STATIC_SUBDIRS@ +MCA_opal_shmem_ALL_COMPONENTS = @MCA_opal_shmem_ALL_COMPONENTS@ +MCA_opal_shmem_ALL_SUBDIRS = @MCA_opal_shmem_ALL_SUBDIRS@ +MCA_opal_shmem_DSO_COMPONENTS = @MCA_opal_shmem_DSO_COMPONENTS@ +MCA_opal_shmem_DSO_SUBDIRS = @MCA_opal_shmem_DSO_SUBDIRS@ +MCA_opal_shmem_STATIC_COMPONENTS = @MCA_opal_shmem_STATIC_COMPONENTS@ +MCA_opal_shmem_STATIC_LTLIBS = @MCA_opal_shmem_STATIC_LTLIBS@ +MCA_opal_shmem_STATIC_SUBDIRS = @MCA_opal_shmem_STATIC_SUBDIRS@ +MCA_opal_timer_ALL_COMPONENTS = @MCA_opal_timer_ALL_COMPONENTS@ +MCA_opal_timer_ALL_SUBDIRS = @MCA_opal_timer_ALL_SUBDIRS@ +MCA_opal_timer_DSO_COMPONENTS = @MCA_opal_timer_DSO_COMPONENTS@ +MCA_opal_timer_DSO_SUBDIRS = @MCA_opal_timer_DSO_SUBDIRS@ +MCA_opal_timer_STATIC_COMPONENTS = @MCA_opal_timer_STATIC_COMPONENTS@ +MCA_opal_timer_STATIC_LTLIBS = @MCA_opal_timer_STATIC_LTLIBS@ +MCA_opal_timer_STATIC_SUBDIRS = @MCA_opal_timer_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORKS = @MCA_orte_FRAMEWORKS@ +MCA_orte_FRAMEWORKS_SUBDIRS = @MCA_orte_FRAMEWORKS_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORK_LIBS = @MCA_orte_FRAMEWORK_LIBS@ +MCA_orte_common_ALL_COMPONENTS = @MCA_orte_common_ALL_COMPONENTS@ +MCA_orte_common_ALL_SUBDIRS = @MCA_orte_common_ALL_SUBDIRS@ +MCA_orte_common_DSO_COMPONENTS = @MCA_orte_common_DSO_COMPONENTS@ +MCA_orte_common_DSO_SUBDIRS = @MCA_orte_common_DSO_SUBDIRS@ +MCA_orte_common_STATIC_COMPONENTS = @MCA_orte_common_STATIC_COMPONENTS@ +MCA_orte_common_STATIC_LTLIBS = @MCA_orte_common_STATIC_LTLIBS@ +MCA_orte_common_STATIC_SUBDIRS = @MCA_orte_common_STATIC_SUBDIRS@ +MCA_orte_errmgr_ALL_COMPONENTS = @MCA_orte_errmgr_ALL_COMPONENTS@ +MCA_orte_errmgr_ALL_SUBDIRS = @MCA_orte_errmgr_ALL_SUBDIRS@ +MCA_orte_errmgr_DSO_COMPONENTS = @MCA_orte_errmgr_DSO_COMPONENTS@ +MCA_orte_errmgr_DSO_SUBDIRS = @MCA_orte_errmgr_DSO_SUBDIRS@ +MCA_orte_errmgr_STATIC_COMPONENTS = @MCA_orte_errmgr_STATIC_COMPONENTS@ +MCA_orte_errmgr_STATIC_LTLIBS = @MCA_orte_errmgr_STATIC_LTLIBS@ +MCA_orte_errmgr_STATIC_SUBDIRS = @MCA_orte_errmgr_STATIC_SUBDIRS@ +MCA_orte_ess_ALL_COMPONENTS = @MCA_orte_ess_ALL_COMPONENTS@ +MCA_orte_ess_ALL_SUBDIRS = @MCA_orte_ess_ALL_SUBDIRS@ +MCA_orte_ess_DSO_COMPONENTS = @MCA_orte_ess_DSO_COMPONENTS@ +MCA_orte_ess_DSO_SUBDIRS = @MCA_orte_ess_DSO_SUBDIRS@ +MCA_orte_ess_STATIC_COMPONENTS = @MCA_orte_ess_STATIC_COMPONENTS@ +MCA_orte_ess_STATIC_LTLIBS = @MCA_orte_ess_STATIC_LTLIBS@ +MCA_orte_ess_STATIC_SUBDIRS = @MCA_orte_ess_STATIC_SUBDIRS@ +MCA_orte_filem_ALL_COMPONENTS = @MCA_orte_filem_ALL_COMPONENTS@ +MCA_orte_filem_ALL_SUBDIRS = @MCA_orte_filem_ALL_SUBDIRS@ +MCA_orte_filem_DSO_COMPONENTS = @MCA_orte_filem_DSO_COMPONENTS@ +MCA_orte_filem_DSO_SUBDIRS = @MCA_orte_filem_DSO_SUBDIRS@ +MCA_orte_filem_STATIC_COMPONENTS = @MCA_orte_filem_STATIC_COMPONENTS@ +MCA_orte_filem_STATIC_LTLIBS = @MCA_orte_filem_STATIC_LTLIBS@ +MCA_orte_filem_STATIC_SUBDIRS = @MCA_orte_filem_STATIC_SUBDIRS@ +MCA_orte_grpcomm_ALL_COMPONENTS = @MCA_orte_grpcomm_ALL_COMPONENTS@ +MCA_orte_grpcomm_ALL_SUBDIRS = @MCA_orte_grpcomm_ALL_SUBDIRS@ +MCA_orte_grpcomm_DSO_COMPONENTS = @MCA_orte_grpcomm_DSO_COMPONENTS@ +MCA_orte_grpcomm_DSO_SUBDIRS = @MCA_orte_grpcomm_DSO_SUBDIRS@ +MCA_orte_grpcomm_STATIC_COMPONENTS = @MCA_orte_grpcomm_STATIC_COMPONENTS@ +MCA_orte_grpcomm_STATIC_LTLIBS = @MCA_orte_grpcomm_STATIC_LTLIBS@ +MCA_orte_grpcomm_STATIC_SUBDIRS = @MCA_orte_grpcomm_STATIC_SUBDIRS@ +MCA_orte_iof_ALL_COMPONENTS = @MCA_orte_iof_ALL_COMPONENTS@ +MCA_orte_iof_ALL_SUBDIRS = @MCA_orte_iof_ALL_SUBDIRS@ +MCA_orte_iof_DSO_COMPONENTS = @MCA_orte_iof_DSO_COMPONENTS@ +MCA_orte_iof_DSO_SUBDIRS = @MCA_orte_iof_DSO_SUBDIRS@ +MCA_orte_iof_STATIC_COMPONENTS = @MCA_orte_iof_STATIC_COMPONENTS@ +MCA_orte_iof_STATIC_LTLIBS = @MCA_orte_iof_STATIC_LTLIBS@ +MCA_orte_iof_STATIC_SUBDIRS = @MCA_orte_iof_STATIC_SUBDIRS@ +MCA_orte_odls_ALL_COMPONENTS = @MCA_orte_odls_ALL_COMPONENTS@ +MCA_orte_odls_ALL_SUBDIRS = @MCA_orte_odls_ALL_SUBDIRS@ +MCA_orte_odls_DSO_COMPONENTS = @MCA_orte_odls_DSO_COMPONENTS@ +MCA_orte_odls_DSO_SUBDIRS = @MCA_orte_odls_DSO_SUBDIRS@ +MCA_orte_odls_STATIC_COMPONENTS = @MCA_orte_odls_STATIC_COMPONENTS@ +MCA_orte_odls_STATIC_LTLIBS = @MCA_orte_odls_STATIC_LTLIBS@ +MCA_orte_odls_STATIC_SUBDIRS = @MCA_orte_odls_STATIC_SUBDIRS@ +MCA_orte_oob_ALL_COMPONENTS = @MCA_orte_oob_ALL_COMPONENTS@ +MCA_orte_oob_ALL_SUBDIRS = @MCA_orte_oob_ALL_SUBDIRS@ +MCA_orte_oob_DSO_COMPONENTS = @MCA_orte_oob_DSO_COMPONENTS@ +MCA_orte_oob_DSO_SUBDIRS = @MCA_orte_oob_DSO_SUBDIRS@ +MCA_orte_oob_STATIC_COMPONENTS = @MCA_orte_oob_STATIC_COMPONENTS@ +MCA_orte_oob_STATIC_LTLIBS = @MCA_orte_oob_STATIC_LTLIBS@ +MCA_orte_oob_STATIC_SUBDIRS = @MCA_orte_oob_STATIC_SUBDIRS@ +MCA_orte_plm_ALL_COMPONENTS = @MCA_orte_plm_ALL_COMPONENTS@ +MCA_orte_plm_ALL_SUBDIRS = @MCA_orte_plm_ALL_SUBDIRS@ +MCA_orte_plm_DSO_COMPONENTS = @MCA_orte_plm_DSO_COMPONENTS@ +MCA_orte_plm_DSO_SUBDIRS = @MCA_orte_plm_DSO_SUBDIRS@ +MCA_orte_plm_STATIC_COMPONENTS = @MCA_orte_plm_STATIC_COMPONENTS@ +MCA_orte_plm_STATIC_LTLIBS = @MCA_orte_plm_STATIC_LTLIBS@ +MCA_orte_plm_STATIC_SUBDIRS = @MCA_orte_plm_STATIC_SUBDIRS@ +MCA_orte_ras_ALL_COMPONENTS = @MCA_orte_ras_ALL_COMPONENTS@ +MCA_orte_ras_ALL_SUBDIRS = @MCA_orte_ras_ALL_SUBDIRS@ +MCA_orte_ras_DSO_COMPONENTS = @MCA_orte_ras_DSO_COMPONENTS@ +MCA_orte_ras_DSO_SUBDIRS = @MCA_orte_ras_DSO_SUBDIRS@ +MCA_orte_ras_STATIC_COMPONENTS = @MCA_orte_ras_STATIC_COMPONENTS@ +MCA_orte_ras_STATIC_LTLIBS = @MCA_orte_ras_STATIC_LTLIBS@ +MCA_orte_ras_STATIC_SUBDIRS = @MCA_orte_ras_STATIC_SUBDIRS@ +MCA_orte_regx_ALL_COMPONENTS = @MCA_orte_regx_ALL_COMPONENTS@ +MCA_orte_regx_ALL_SUBDIRS = @MCA_orte_regx_ALL_SUBDIRS@ +MCA_orte_regx_DSO_COMPONENTS = @MCA_orte_regx_DSO_COMPONENTS@ +MCA_orte_regx_DSO_SUBDIRS = @MCA_orte_regx_DSO_SUBDIRS@ +MCA_orte_regx_STATIC_COMPONENTS = @MCA_orte_regx_STATIC_COMPONENTS@ +MCA_orte_regx_STATIC_LTLIBS = @MCA_orte_regx_STATIC_LTLIBS@ +MCA_orte_regx_STATIC_SUBDIRS = @MCA_orte_regx_STATIC_SUBDIRS@ +MCA_orte_rmaps_ALL_COMPONENTS = @MCA_orte_rmaps_ALL_COMPONENTS@ +MCA_orte_rmaps_ALL_SUBDIRS = @MCA_orte_rmaps_ALL_SUBDIRS@ +MCA_orte_rmaps_DSO_COMPONENTS = @MCA_orte_rmaps_DSO_COMPONENTS@ +MCA_orte_rmaps_DSO_SUBDIRS = @MCA_orte_rmaps_DSO_SUBDIRS@ +MCA_orte_rmaps_STATIC_COMPONENTS = @MCA_orte_rmaps_STATIC_COMPONENTS@ +MCA_orte_rmaps_STATIC_LTLIBS = @MCA_orte_rmaps_STATIC_LTLIBS@ +MCA_orte_rmaps_STATIC_SUBDIRS = @MCA_orte_rmaps_STATIC_SUBDIRS@ +MCA_orte_rml_ALL_COMPONENTS = @MCA_orte_rml_ALL_COMPONENTS@ +MCA_orte_rml_ALL_SUBDIRS = @MCA_orte_rml_ALL_SUBDIRS@ +MCA_orte_rml_DSO_COMPONENTS = @MCA_orte_rml_DSO_COMPONENTS@ +MCA_orte_rml_DSO_SUBDIRS = @MCA_orte_rml_DSO_SUBDIRS@ +MCA_orte_rml_STATIC_COMPONENTS = @MCA_orte_rml_STATIC_COMPONENTS@ +MCA_orte_rml_STATIC_LTLIBS = @MCA_orte_rml_STATIC_LTLIBS@ +MCA_orte_rml_STATIC_SUBDIRS = @MCA_orte_rml_STATIC_SUBDIRS@ +MCA_orte_routed_ALL_COMPONENTS = @MCA_orte_routed_ALL_COMPONENTS@ +MCA_orte_routed_ALL_SUBDIRS = @MCA_orte_routed_ALL_SUBDIRS@ +MCA_orte_routed_DSO_COMPONENTS = @MCA_orte_routed_DSO_COMPONENTS@ +MCA_orte_routed_DSO_SUBDIRS = @MCA_orte_routed_DSO_SUBDIRS@ +MCA_orte_routed_STATIC_COMPONENTS = @MCA_orte_routed_STATIC_COMPONENTS@ +MCA_orte_routed_STATIC_LTLIBS = @MCA_orte_routed_STATIC_LTLIBS@ +MCA_orte_routed_STATIC_SUBDIRS = @MCA_orte_routed_STATIC_SUBDIRS@ +MCA_orte_rtc_ALL_COMPONENTS = @MCA_orte_rtc_ALL_COMPONENTS@ +MCA_orte_rtc_ALL_SUBDIRS = @MCA_orte_rtc_ALL_SUBDIRS@ +MCA_orte_rtc_DSO_COMPONENTS = @MCA_orte_rtc_DSO_COMPONENTS@ +MCA_orte_rtc_DSO_SUBDIRS = @MCA_orte_rtc_DSO_SUBDIRS@ +MCA_orte_rtc_STATIC_COMPONENTS = @MCA_orte_rtc_STATIC_COMPONENTS@ +MCA_orte_rtc_STATIC_LTLIBS = @MCA_orte_rtc_STATIC_LTLIBS@ +MCA_orte_rtc_STATIC_SUBDIRS = @MCA_orte_rtc_STATIC_SUBDIRS@ +MCA_orte_schizo_ALL_COMPONENTS = @MCA_orte_schizo_ALL_COMPONENTS@ +MCA_orte_schizo_ALL_SUBDIRS = @MCA_orte_schizo_ALL_SUBDIRS@ +MCA_orte_schizo_DSO_COMPONENTS = @MCA_orte_schizo_DSO_COMPONENTS@ +MCA_orte_schizo_DSO_SUBDIRS = @MCA_orte_schizo_DSO_SUBDIRS@ +MCA_orte_schizo_STATIC_COMPONENTS = @MCA_orte_schizo_STATIC_COMPONENTS@ +MCA_orte_schizo_STATIC_LTLIBS = @MCA_orte_schizo_STATIC_LTLIBS@ +MCA_orte_schizo_STATIC_SUBDIRS = @MCA_orte_schizo_STATIC_SUBDIRS@ +MCA_orte_snapc_ALL_COMPONENTS = @MCA_orte_snapc_ALL_COMPONENTS@ +MCA_orte_snapc_ALL_SUBDIRS = @MCA_orte_snapc_ALL_SUBDIRS@ +MCA_orte_snapc_DSO_COMPONENTS = @MCA_orte_snapc_DSO_COMPONENTS@ +MCA_orte_snapc_DSO_SUBDIRS = @MCA_orte_snapc_DSO_SUBDIRS@ +MCA_orte_snapc_STATIC_COMPONENTS = @MCA_orte_snapc_STATIC_COMPONENTS@ +MCA_orte_snapc_STATIC_LTLIBS = @MCA_orte_snapc_STATIC_LTLIBS@ +MCA_orte_snapc_STATIC_SUBDIRS = @MCA_orte_snapc_STATIC_SUBDIRS@ +MCA_orte_sstore_ALL_COMPONENTS = @MCA_orte_sstore_ALL_COMPONENTS@ +MCA_orte_sstore_ALL_SUBDIRS = @MCA_orte_sstore_ALL_SUBDIRS@ +MCA_orte_sstore_DSO_COMPONENTS = @MCA_orte_sstore_DSO_COMPONENTS@ +MCA_orte_sstore_DSO_SUBDIRS = @MCA_orte_sstore_DSO_SUBDIRS@ +MCA_orte_sstore_STATIC_COMPONENTS = @MCA_orte_sstore_STATIC_COMPONENTS@ +MCA_orte_sstore_STATIC_LTLIBS = @MCA_orte_sstore_STATIC_LTLIBS@ +MCA_orte_sstore_STATIC_SUBDIRS = @MCA_orte_sstore_STATIC_SUBDIRS@ +MCA_orte_state_ALL_COMPONENTS = @MCA_orte_state_ALL_COMPONENTS@ +MCA_orte_state_ALL_SUBDIRS = @MCA_orte_state_ALL_SUBDIRS@ +MCA_orte_state_DSO_COMPONENTS = @MCA_orte_state_DSO_COMPONENTS@ +MCA_orte_state_DSO_SUBDIRS = @MCA_orte_state_DSO_SUBDIRS@ +MCA_orte_state_STATIC_COMPONENTS = @MCA_orte_state_STATIC_COMPONENTS@ +MCA_orte_state_STATIC_LTLIBS = @MCA_orte_state_STATIC_LTLIBS@ +MCA_orte_state_STATIC_SUBDIRS = @MCA_orte_state_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORKS = @MCA_oshmem_FRAMEWORKS@ +MCA_oshmem_FRAMEWORKS_SUBDIRS = @MCA_oshmem_FRAMEWORKS_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORK_LIBS = @MCA_oshmem_FRAMEWORK_LIBS@ +MCA_oshmem_atomic_ALL_COMPONENTS = @MCA_oshmem_atomic_ALL_COMPONENTS@ +MCA_oshmem_atomic_ALL_SUBDIRS = @MCA_oshmem_atomic_ALL_SUBDIRS@ +MCA_oshmem_atomic_DSO_COMPONENTS = @MCA_oshmem_atomic_DSO_COMPONENTS@ +MCA_oshmem_atomic_DSO_SUBDIRS = @MCA_oshmem_atomic_DSO_SUBDIRS@ +MCA_oshmem_atomic_STATIC_COMPONENTS = @MCA_oshmem_atomic_STATIC_COMPONENTS@ +MCA_oshmem_atomic_STATIC_LTLIBS = @MCA_oshmem_atomic_STATIC_LTLIBS@ +MCA_oshmem_atomic_STATIC_SUBDIRS = @MCA_oshmem_atomic_STATIC_SUBDIRS@ +MCA_oshmem_memheap_ALL_COMPONENTS = @MCA_oshmem_memheap_ALL_COMPONENTS@ +MCA_oshmem_memheap_ALL_SUBDIRS = @MCA_oshmem_memheap_ALL_SUBDIRS@ +MCA_oshmem_memheap_DIRECT_CALL_HEADER = @MCA_oshmem_memheap_DIRECT_CALL_HEADER@ +MCA_oshmem_memheap_DSO_COMPONENTS = @MCA_oshmem_memheap_DSO_COMPONENTS@ +MCA_oshmem_memheap_DSO_SUBDIRS = @MCA_oshmem_memheap_DSO_SUBDIRS@ +MCA_oshmem_memheap_STATIC_COMPONENTS = @MCA_oshmem_memheap_STATIC_COMPONENTS@ +MCA_oshmem_memheap_STATIC_LTLIBS = @MCA_oshmem_memheap_STATIC_LTLIBS@ +MCA_oshmem_memheap_STATIC_SUBDIRS = @MCA_oshmem_memheap_STATIC_SUBDIRS@ +MCA_oshmem_scoll_ALL_COMPONENTS = @MCA_oshmem_scoll_ALL_COMPONENTS@ +MCA_oshmem_scoll_ALL_SUBDIRS = @MCA_oshmem_scoll_ALL_SUBDIRS@ +MCA_oshmem_scoll_DSO_COMPONENTS = @MCA_oshmem_scoll_DSO_COMPONENTS@ +MCA_oshmem_scoll_DSO_SUBDIRS = @MCA_oshmem_scoll_DSO_SUBDIRS@ +MCA_oshmem_scoll_STATIC_COMPONENTS = @MCA_oshmem_scoll_STATIC_COMPONENTS@ +MCA_oshmem_scoll_STATIC_LTLIBS = @MCA_oshmem_scoll_STATIC_LTLIBS@ +MCA_oshmem_scoll_STATIC_SUBDIRS = @MCA_oshmem_scoll_STATIC_SUBDIRS@ +MCA_oshmem_spml_ALL_COMPONENTS = @MCA_oshmem_spml_ALL_COMPONENTS@ +MCA_oshmem_spml_ALL_SUBDIRS = @MCA_oshmem_spml_ALL_SUBDIRS@ +MCA_oshmem_spml_DIRECT_CALL_HEADER = @MCA_oshmem_spml_DIRECT_CALL_HEADER@ +MCA_oshmem_spml_DSO_COMPONENTS = @MCA_oshmem_spml_DSO_COMPONENTS@ +MCA_oshmem_spml_DSO_SUBDIRS = @MCA_oshmem_spml_DSO_SUBDIRS@ +MCA_oshmem_spml_STATIC_COMPONENTS = @MCA_oshmem_spml_STATIC_COMPONENTS@ +MCA_oshmem_spml_STATIC_LTLIBS = @MCA_oshmem_spml_STATIC_LTLIBS@ +MCA_oshmem_spml_STATIC_SUBDIRS = @MCA_oshmem_spml_STATIC_SUBDIRS@ +MCA_oshmem_sshmem_ALL_COMPONENTS = @MCA_oshmem_sshmem_ALL_COMPONENTS@ +MCA_oshmem_sshmem_ALL_SUBDIRS = @MCA_oshmem_sshmem_ALL_SUBDIRS@ +MCA_oshmem_sshmem_DSO_COMPONENTS = @MCA_oshmem_sshmem_DSO_COMPONENTS@ +MCA_oshmem_sshmem_DSO_SUBDIRS = @MCA_oshmem_sshmem_DSO_SUBDIRS@ +MCA_oshmem_sshmem_STATIC_COMPONENTS = @MCA_oshmem_sshmem_STATIC_COMPONENTS@ +MCA_oshmem_sshmem_STATIC_LTLIBS = @MCA_oshmem_sshmem_STATIC_LTLIBS@ +MCA_oshmem_sshmem_STATIC_SUBDIRS = @MCA_oshmem_sshmem_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +MPIR_UNWIND_CFLAGS = @MPIR_UNWIND_CFLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPI_ALIGNMENT_FORTRAN_CHARACTER = @OMPI_ALIGNMENT_FORTRAN_CHARACTER@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX16 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX16@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX32 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX32@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX4 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX4@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX8 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX8@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION@ +OMPI_ALIGNMENT_FORTRAN_INTEGER = @OMPI_ALIGNMENT_FORTRAN_INTEGER@ +OMPI_ALIGNMENT_FORTRAN_INTEGER1 = @OMPI_ALIGNMENT_FORTRAN_INTEGER1@ +OMPI_ALIGNMENT_FORTRAN_INTEGER16 = @OMPI_ALIGNMENT_FORTRAN_INTEGER16@ +OMPI_ALIGNMENT_FORTRAN_INTEGER2 = @OMPI_ALIGNMENT_FORTRAN_INTEGER2@ +OMPI_ALIGNMENT_FORTRAN_INTEGER4 = @OMPI_ALIGNMENT_FORTRAN_INTEGER4@ +OMPI_ALIGNMENT_FORTRAN_INTEGER8 = @OMPI_ALIGNMENT_FORTRAN_INTEGER8@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL = @OMPI_ALIGNMENT_FORTRAN_LOGICAL@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL1 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL1@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL2 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL2@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL4 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL4@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL8 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL8@ +OMPI_ALIGNMENT_FORTRAN_REAL = @OMPI_ALIGNMENT_FORTRAN_REAL@ +OMPI_ALIGNMENT_FORTRAN_REAL16 = @OMPI_ALIGNMENT_FORTRAN_REAL16@ +OMPI_ALIGNMENT_FORTRAN_REAL2 = @OMPI_ALIGNMENT_FORTRAN_REAL2@ +OMPI_ALIGNMENT_FORTRAN_REAL4 = @OMPI_ALIGNMENT_FORTRAN_REAL4@ +OMPI_ALIGNMENT_FORTRAN_REAL8 = @OMPI_ALIGNMENT_FORTRAN_REAL8@ +OMPI_CONTRIB_DIST_SUBDIRS = @OMPI_CONTRIB_DIST_SUBDIRS@ +OMPI_CONTRIB_SUBDIRS = @OMPI_CONTRIB_SUBDIRS@ +OMPI_CXX_ABSOLUTE = @OMPI_CXX_ABSOLUTE@ +OMPI_ENABLE_GREQUEST_EXTENSIONS = @OMPI_ENABLE_GREQUEST_EXTENSIONS@ +OMPI_ENABLE_MPI1_COMPAT = @OMPI_ENABLE_MPI1_COMPAT@ +OMPI_F08_SUFFIX = @OMPI_F08_SUFFIX@ +OMPI_FC = @OMPI_FC@ +OMPI_FC_ABSOLUTE = @OMPI_FC_ABSOLUTE@ +OMPI_FC_MODULE_FLAG = @OMPI_FC_MODULE_FLAG@ +OMPI_FORTRAN_BUILD_SIZEOF = @OMPI_FORTRAN_BUILD_SIZEOF@ +OMPI_FORTRAN_CAPS = @OMPI_FORTRAN_CAPS@ +OMPI_FORTRAN_CKINDS = @OMPI_FORTRAN_CKINDS@ +OMPI_FORTRAN_DOUBLE_UNDERSCORE = @OMPI_FORTRAN_DOUBLE_UNDERSCORE@ +OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS = @OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS@ +OMPI_FORTRAN_F08_PREDECL = @OMPI_FORTRAN_F08_PREDECL@ +OMPI_FORTRAN_F08_TYPE = @OMPI_FORTRAN_F08_TYPE@ +OMPI_FORTRAN_HAVE_ABSTRACT = @OMPI_FORTRAN_HAVE_ABSTRACT@ +OMPI_FORTRAN_HAVE_ASYNCHRONOUS = @OMPI_FORTRAN_HAVE_ASYNCHRONOUS@ +OMPI_FORTRAN_HAVE_BIND_C = @OMPI_FORTRAN_HAVE_BIND_C@ +OMPI_FORTRAN_HAVE_C_FUNLOC = @OMPI_FORTRAN_HAVE_C_FUNLOC@ +OMPI_FORTRAN_HAVE_INTERFACE = @OMPI_FORTRAN_HAVE_INTERFACE@ +OMPI_FORTRAN_HAVE_ISO_C_BINDING = @OMPI_FORTRAN_HAVE_ISO_C_BINDING@ +OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV = @OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV@ +OMPI_FORTRAN_HAVE_PRIVATE = @OMPI_FORTRAN_HAVE_PRIVATE@ +OMPI_FORTRAN_HAVE_PROCEDURE = @OMPI_FORTRAN_HAVE_PROCEDURE@ +OMPI_FORTRAN_HAVE_STORAGE_SIZE = @OMPI_FORTRAN_HAVE_STORAGE_SIZE@ +OMPI_FORTRAN_HAVE_USE_ONLY = @OMPI_FORTRAN_HAVE_USE_ONLY@ +OMPI_FORTRAN_IGNORE_TKR_PREDECL = @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ +OMPI_FORTRAN_IGNORE_TKR_TYPE = @OMPI_FORTRAN_IGNORE_TKR_TYPE@ +OMPI_FORTRAN_IKINDS = @OMPI_FORTRAN_IKINDS@ +OMPI_FORTRAN_MAX_ARRAY_RANK = @OMPI_FORTRAN_MAX_ARRAY_RANK@ +OMPI_FORTRAN_NEED_WRAPPER_ROUTINES = @OMPI_FORTRAN_NEED_WRAPPER_ROUTINES@ +OMPI_FORTRAN_PLAIN = @OMPI_FORTRAN_PLAIN@ +OMPI_FORTRAN_RKINDS = @OMPI_FORTRAN_RKINDS@ +OMPI_FORTRAN_SINGLE_UNDERSCORE = @OMPI_FORTRAN_SINGLE_UNDERSCORE@ +OMPI_FORTRAN_STATUS_SIZE = @OMPI_FORTRAN_STATUS_SIZE@ +OMPI_FORTRAN_USEMPIF08_LIB = @OMPI_FORTRAN_USEMPIF08_LIB@ +OMPI_FORTRAN_USEMPI_DIR = @OMPI_FORTRAN_USEMPI_DIR@ +OMPI_FORTRAN_USEMPI_LIB = @OMPI_FORTRAN_USEMPI_LIB@ +OMPI_F_SUFFIX = @OMPI_F_SUFFIX@ +OMPI_GREEK_VERSION = @OMPI_GREEK_VERSION@ +OMPI_HAVE_FORTRAN_CHARACTER = @OMPI_HAVE_FORTRAN_CHARACTER@ +OMPI_HAVE_FORTRAN_COMPLEX = @OMPI_HAVE_FORTRAN_COMPLEX@ +OMPI_HAVE_FORTRAN_COMPLEX16 = @OMPI_HAVE_FORTRAN_COMPLEX16@ +OMPI_HAVE_FORTRAN_COMPLEX32 = @OMPI_HAVE_FORTRAN_COMPLEX32@ +OMPI_HAVE_FORTRAN_COMPLEX4 = @OMPI_HAVE_FORTRAN_COMPLEX4@ +OMPI_HAVE_FORTRAN_COMPLEX8 = @OMPI_HAVE_FORTRAN_COMPLEX8@ +OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX = @OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX@ +OMPI_HAVE_FORTRAN_DOUBLE_PRECISION = @OMPI_HAVE_FORTRAN_DOUBLE_PRECISION@ +OMPI_HAVE_FORTRAN_INTEGER = @OMPI_HAVE_FORTRAN_INTEGER@ +OMPI_HAVE_FORTRAN_INTEGER1 = @OMPI_HAVE_FORTRAN_INTEGER1@ +OMPI_HAVE_FORTRAN_INTEGER16 = @OMPI_HAVE_FORTRAN_INTEGER16@ +OMPI_HAVE_FORTRAN_INTEGER2 = @OMPI_HAVE_FORTRAN_INTEGER2@ +OMPI_HAVE_FORTRAN_INTEGER4 = @OMPI_HAVE_FORTRAN_INTEGER4@ +OMPI_HAVE_FORTRAN_INTEGER8 = @OMPI_HAVE_FORTRAN_INTEGER8@ +OMPI_HAVE_FORTRAN_LOGICAL = @OMPI_HAVE_FORTRAN_LOGICAL@ +OMPI_HAVE_FORTRAN_LOGICAL1 = @OMPI_HAVE_FORTRAN_LOGICAL1@ +OMPI_HAVE_FORTRAN_LOGICAL2 = @OMPI_HAVE_FORTRAN_LOGICAL2@ +OMPI_HAVE_FORTRAN_LOGICAL4 = @OMPI_HAVE_FORTRAN_LOGICAL4@ +OMPI_HAVE_FORTRAN_LOGICAL8 = @OMPI_HAVE_FORTRAN_LOGICAL8@ +OMPI_HAVE_FORTRAN_REAL = @OMPI_HAVE_FORTRAN_REAL@ +OMPI_HAVE_FORTRAN_REAL16 = @OMPI_HAVE_FORTRAN_REAL16@ +OMPI_HAVE_FORTRAN_REAL2 = @OMPI_HAVE_FORTRAN_REAL2@ +OMPI_HAVE_FORTRAN_REAL4 = @OMPI_HAVE_FORTRAN_REAL4@ +OMPI_HAVE_FORTRAN_REAL8 = @OMPI_HAVE_FORTRAN_REAL8@ +OMPI_JDK_CPPFLAGS = @OMPI_JDK_CPPFLAGS@ +OMPI_KIND_FORTRAN_CHARACTER = @OMPI_KIND_FORTRAN_CHARACTER@ +OMPI_KIND_FORTRAN_COMPLEX = @OMPI_KIND_FORTRAN_COMPLEX@ +OMPI_KIND_FORTRAN_COMPLEX16 = @OMPI_KIND_FORTRAN_COMPLEX16@ +OMPI_KIND_FORTRAN_COMPLEX32 = @OMPI_KIND_FORTRAN_COMPLEX32@ +OMPI_KIND_FORTRAN_COMPLEX4 = @OMPI_KIND_FORTRAN_COMPLEX4@ +OMPI_KIND_FORTRAN_COMPLEX8 = @OMPI_KIND_FORTRAN_COMPLEX8@ +OMPI_KIND_FORTRAN_DOUBLE_COMPLEX = @OMPI_KIND_FORTRAN_DOUBLE_COMPLEX@ +OMPI_KIND_FORTRAN_DOUBLE_PRECISION = @OMPI_KIND_FORTRAN_DOUBLE_PRECISION@ +OMPI_KIND_FORTRAN_INTEGER = @OMPI_KIND_FORTRAN_INTEGER@ +OMPI_KIND_FORTRAN_INTEGER1 = @OMPI_KIND_FORTRAN_INTEGER1@ +OMPI_KIND_FORTRAN_INTEGER16 = @OMPI_KIND_FORTRAN_INTEGER16@ +OMPI_KIND_FORTRAN_INTEGER2 = @OMPI_KIND_FORTRAN_INTEGER2@ +OMPI_KIND_FORTRAN_INTEGER4 = @OMPI_KIND_FORTRAN_INTEGER4@ +OMPI_KIND_FORTRAN_INTEGER8 = @OMPI_KIND_FORTRAN_INTEGER8@ +OMPI_KIND_FORTRAN_LOGICAL = @OMPI_KIND_FORTRAN_LOGICAL@ +OMPI_KIND_FORTRAN_LOGICAL1 = @OMPI_KIND_FORTRAN_LOGICAL1@ +OMPI_KIND_FORTRAN_LOGICAL2 = @OMPI_KIND_FORTRAN_LOGICAL2@ +OMPI_KIND_FORTRAN_LOGICAL4 = @OMPI_KIND_FORTRAN_LOGICAL4@ +OMPI_KIND_FORTRAN_LOGICAL8 = @OMPI_KIND_FORTRAN_LOGICAL8@ +OMPI_KIND_FORTRAN_REAL = @OMPI_KIND_FORTRAN_REAL@ +OMPI_KIND_FORTRAN_REAL16 = @OMPI_KIND_FORTRAN_REAL16@ +OMPI_KIND_FORTRAN_REAL2 = @OMPI_KIND_FORTRAN_REAL2@ +OMPI_KIND_FORTRAN_REAL4 = @OMPI_KIND_FORTRAN_REAL4@ +OMPI_KIND_FORTRAN_REAL8 = @OMPI_KIND_FORTRAN_REAL8@ +OMPI_LIBMPI_EXTRA_LDFLAGS = @OMPI_LIBMPI_EXTRA_LDFLAGS@ +OMPI_LIBMPI_EXTRA_LIBS = @OMPI_LIBMPI_EXTRA_LIBS@ +OMPI_LIBMPI_NAME = @OMPI_LIBMPI_NAME@ +OMPI_MAJOR_VERSION = @OMPI_MAJOR_VERSION@ +OMPI_MINOR_VERSION = @OMPI_MINOR_VERSION@ +OMPI_MPIEXT_ALL_SUBDIRS = @OMPI_MPIEXT_ALL_SUBDIRS@ +OMPI_MPIEXT_C_DIRS = @OMPI_MPIEXT_C_DIRS@ +OMPI_MPIEXT_C_LIBS = @OMPI_MPIEXT_C_LIBS@ +OMPI_MPIEXT_MPIFH_DIRS = @OMPI_MPIEXT_MPIFH_DIRS@ +OMPI_MPIEXT_MPIFH_LIBS = @OMPI_MPIEXT_MPIFH_LIBS@ +OMPI_MPIEXT_USEMPIF08_DIRS = @OMPI_MPIEXT_USEMPIF08_DIRS@ +OMPI_MPIEXT_USEMPIF08_LIBS = @OMPI_MPIEXT_USEMPIF08_LIBS@ +OMPI_MPIEXT_USEMPI_DIRS = @OMPI_MPIEXT_USEMPI_DIRS@ +OMPI_MPIEXT_USEMPI_LIBS = @OMPI_MPIEXT_USEMPI_LIBS@ +OMPI_MPI_ADDRESS_KIND = @OMPI_MPI_ADDRESS_KIND@ +OMPI_MPI_BIND_PREFIX = @OMPI_MPI_BIND_PREFIX@ +OMPI_MPI_COUNT_KIND = @OMPI_MPI_COUNT_KIND@ +OMPI_MPI_INTEGER_KIND = @OMPI_MPI_INTEGER_KIND@ +OMPI_MPI_OFFSET_KIND = @OMPI_MPI_OFFSET_KIND@ +OMPI_MPI_PREFIX = @OMPI_MPI_PREFIX@ +OMPI_PKG_CONFIG_LDFLAGS = @OMPI_PKG_CONFIG_LDFLAGS@ +OMPI_RELEASE_DATE = @OMPI_RELEASE_DATE@ +OMPI_RELEASE_VERSION = @OMPI_RELEASE_VERSION@ +OMPI_REPO_REV = @OMPI_REPO_REV@ +OMPI_SIZEOF_FORTRAN_CHARACTER = @OMPI_SIZEOF_FORTRAN_CHARACTER@ +OMPI_SIZEOF_FORTRAN_COMPLEX = @OMPI_SIZEOF_FORTRAN_COMPLEX@ +OMPI_SIZEOF_FORTRAN_COMPLEX16 = @OMPI_SIZEOF_FORTRAN_COMPLEX16@ +OMPI_SIZEOF_FORTRAN_COMPLEX32 = @OMPI_SIZEOF_FORTRAN_COMPLEX32@ +OMPI_SIZEOF_FORTRAN_COMPLEX4 = @OMPI_SIZEOF_FORTRAN_COMPLEX4@ +OMPI_SIZEOF_FORTRAN_COMPLEX8 = @OMPI_SIZEOF_FORTRAN_COMPLEX8@ +OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX = @OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX@ +OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION = @OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION@ +OMPI_SIZEOF_FORTRAN_INTEGER = @OMPI_SIZEOF_FORTRAN_INTEGER@ +OMPI_SIZEOF_FORTRAN_INTEGER1 = @OMPI_SIZEOF_FORTRAN_INTEGER1@ +OMPI_SIZEOF_FORTRAN_INTEGER16 = @OMPI_SIZEOF_FORTRAN_INTEGER16@ +OMPI_SIZEOF_FORTRAN_INTEGER2 = @OMPI_SIZEOF_FORTRAN_INTEGER2@ +OMPI_SIZEOF_FORTRAN_INTEGER4 = @OMPI_SIZEOF_FORTRAN_INTEGER4@ +OMPI_SIZEOF_FORTRAN_INTEGER8 = @OMPI_SIZEOF_FORTRAN_INTEGER8@ +OMPI_SIZEOF_FORTRAN_LOGICAL = @OMPI_SIZEOF_FORTRAN_LOGICAL@ +OMPI_SIZEOF_FORTRAN_LOGICAL1 = @OMPI_SIZEOF_FORTRAN_LOGICAL1@ +OMPI_SIZEOF_FORTRAN_LOGICAL2 = @OMPI_SIZEOF_FORTRAN_LOGICAL2@ +OMPI_SIZEOF_FORTRAN_LOGICAL4 = @OMPI_SIZEOF_FORTRAN_LOGICAL4@ +OMPI_SIZEOF_FORTRAN_LOGICAL8 = @OMPI_SIZEOF_FORTRAN_LOGICAL8@ +OMPI_SIZEOF_FORTRAN_REAL = @OMPI_SIZEOF_FORTRAN_REAL@ +OMPI_SIZEOF_FORTRAN_REAL16 = @OMPI_SIZEOF_FORTRAN_REAL16@ +OMPI_SIZEOF_FORTRAN_REAL2 = @OMPI_SIZEOF_FORTRAN_REAL2@ +OMPI_SIZEOF_FORTRAN_REAL4 = @OMPI_SIZEOF_FORTRAN_REAL4@ +OMPI_SIZEOF_FORTRAN_REAL8 = @OMPI_SIZEOF_FORTRAN_REAL8@ +OMPI_TARBALL_VERSION = @OMPI_TARBALL_VERSION@ +OMPI_TOP_BUILDDIR = @OMPI_TOP_BUILDDIR@ +OMPI_TOP_SRCDIR = @OMPI_TOP_SRCDIR@ +OMPI_VERSION = @OMPI_VERSION@ +OMPI_WRAPPER_CXX_LIB = @OMPI_WRAPPER_CXX_LIB@ +OMPI_WRAPPER_CXX_REQUIRED_FILE = @OMPI_WRAPPER_CXX_REQUIRED_FILE@ +OMPI_WRAPPER_EXTRA_CFLAGS = @OMPI_WRAPPER_EXTRA_CFLAGS@ +OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_CPPFLAGS = @OMPI_WRAPPER_EXTRA_CPPFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS = @OMPI_WRAPPER_EXTRA_CXXFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FCFLAGS = @OMPI_WRAPPER_EXTRA_FCFLAGS@ +OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FC_LDFLAGS = @OMPI_WRAPPER_EXTRA_FC_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LDFLAGS = @OMPI_WRAPPER_EXTRA_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LIBS = @OMPI_WRAPPER_EXTRA_LIBS@ +OMPI_WRAPPER_FORTRAN_REQUIRED_FILE = @OMPI_WRAPPER_FORTRAN_REQUIRED_FILE@ +OMPI_WRAPPER_INCLUDEDIR = @OMPI_WRAPPER_INCLUDEDIR@ +OMPI_WRAPPER_LIBDIR = @OMPI_WRAPPER_LIBDIR@ +OPAL_ASM_GSYM = @OPAL_ASM_GSYM@ +OPAL_ASM_LSYM = @OPAL_ASM_LSYM@ +OPAL_ASM_SUPPORT_64BIT = @OPAL_ASM_SUPPORT_64BIT@ +OPAL_ASM_TEXT = @OPAL_ASM_TEXT@ +OPAL_ASM_TYPE = @OPAL_ASM_TYPE@ +OPAL_ASSEMBLY_ARCH = @OPAL_ASSEMBLY_ARCH@ +OPAL_ASSEMBLY_BUILTIN = @OPAL_ASSEMBLY_BUILTIN@ +OPAL_ASSEMBLY_FORMAT = @OPAL_ASSEMBLY_FORMAT@ +OPAL_AS_GLOBAL = @OPAL_AS_GLOBAL@ +OPAL_AS_LABEL_SUFFIX = @OPAL_AS_LABEL_SUFFIX@ +OPAL_CC_ABSOLUTE = @OPAL_CC_ABSOLUTE@ +OPAL_CONFIGURE_CLI = @OPAL_CONFIGURE_CLI@ +OPAL_CONFIGURE_DATE = @OPAL_CONFIGURE_DATE@ +OPAL_CONFIGURE_HOST = @OPAL_CONFIGURE_HOST@ +OPAL_CONFIGURE_USER = @OPAL_CONFIGURE_USER@ +OPAL_CXX_ABSOLUTE = @OPAL_CXX_ABSOLUTE@ +OPAL_DEFAULT_MCA_PARAM_CONF = @OPAL_DEFAULT_MCA_PARAM_CONF@ +OPAL_DYN_LIB_PREFIX = @OPAL_DYN_LIB_PREFIX@ +OPAL_DYN_LIB_SUFFIX = @OPAL_DYN_LIB_SUFFIX@ +OPAL_GREEK_VERSION = @OPAL_GREEK_VERSION@ +OPAL_LIB_PREFIX = @OPAL_LIB_PREFIX@ +OPAL_MAJOR_VERSION = @OPAL_MAJOR_VERSION@ +OPAL_MAX_DATAREP_STRING = @OPAL_MAX_DATAREP_STRING@ +OPAL_MAX_ERROR_STRING = @OPAL_MAX_ERROR_STRING@ +OPAL_MAX_INFO_KEY = @OPAL_MAX_INFO_KEY@ +OPAL_MAX_INFO_VAL = @OPAL_MAX_INFO_VAL@ +OPAL_MAX_OBJECT_NAME = @OPAL_MAX_OBJECT_NAME@ +OPAL_MAX_PORT_NAME = @OPAL_MAX_PORT_NAME@ +OPAL_MAX_PROCESSOR_NAME = @OPAL_MAX_PROCESSOR_NAME@ +OPAL_MINOR_VERSION = @OPAL_MINOR_VERSION@ +OPAL_PARAM_FROM_PLATFORM = @OPAL_PARAM_FROM_PLATFORM@ +OPAL_PKG_CONFIG_LDFLAGS = @OPAL_PKG_CONFIG_LDFLAGS@ +OPAL_RELEASE_DATE = @OPAL_RELEASE_DATE@ +OPAL_RELEASE_VERSION = @OPAL_RELEASE_VERSION@ +OPAL_REPO_REV = @OPAL_REPO_REV@ +OPAL_TARBALL_VERSION = @OPAL_TARBALL_VERSION@ +OPAL_TOP_BUILDDIR = @OPAL_TOP_BUILDDIR@ +OPAL_TOP_SRCDIR = @OPAL_TOP_SRCDIR@ +OPAL_VERSION = @OPAL_VERSION@ +OPAL_WRAPPER_EXTRA_CFLAGS = @OPAL_WRAPPER_EXTRA_CFLAGS@ +OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_CPPFLAGS = @OPAL_WRAPPER_EXTRA_CPPFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS = @OPAL_WRAPPER_EXTRA_CXXFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_LDFLAGS = @OPAL_WRAPPER_EXTRA_LDFLAGS@ +OPAL_WRAPPER_EXTRA_LIBS = @OPAL_WRAPPER_EXTRA_LIBS@ +ORTE_GREEK_VERSION = @ORTE_GREEK_VERSION@ +ORTE_LIB_PREFIX = @ORTE_LIB_PREFIX@ +ORTE_MAJOR_VERSION = @ORTE_MAJOR_VERSION@ +ORTE_MINOR_VERSION = @ORTE_MINOR_VERSION@ +ORTE_PKG_CONFIG_LDFLAGS = @ORTE_PKG_CONFIG_LDFLAGS@ +ORTE_RELEASE_DATE = @ORTE_RELEASE_DATE@ +ORTE_RELEASE_VERSION = @ORTE_RELEASE_VERSION@ +ORTE_REPO_REV = @ORTE_REPO_REV@ +ORTE_TARBALL_VERSION = @ORTE_TARBALL_VERSION@ +ORTE_TOP_BUILDDIR = @ORTE_TOP_BUILDDIR@ +ORTE_TOP_SRCDIR = @ORTE_TOP_SRCDIR@ +ORTE_VERSION = @ORTE_VERSION@ +ORTE_WRAPPER_EXTRA_CFLAGS = @ORTE_WRAPPER_EXTRA_CFLAGS@ +ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX = @ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX@ +ORTE_WRAPPER_EXTRA_CPPFLAGS = @ORTE_WRAPPER_EXTRA_CPPFLAGS@ +ORTE_WRAPPER_EXTRA_LDFLAGS = @ORTE_WRAPPER_EXTRA_LDFLAGS@ +ORTE_WRAPPER_EXTRA_LIBS = @ORTE_WRAPPER_EXTRA_LIBS@ +OSHMEM_GREEK_VERSION = @OSHMEM_GREEK_VERSION@ +OSHMEM_LIBSHMEM_EXTRA_LDFLAGS = @OSHMEM_LIBSHMEM_EXTRA_LDFLAGS@ +OSHMEM_LIBSHMEM_EXTRA_LIBS = @OSHMEM_LIBSHMEM_EXTRA_LIBS@ +OSHMEM_MAJOR_VERSION = @OSHMEM_MAJOR_VERSION@ +OSHMEM_MINOR_VERSION = @OSHMEM_MINOR_VERSION@ +OSHMEM_RELEASE_DATE = @OSHMEM_RELEASE_DATE@ +OSHMEM_RELEASE_VERSION = @OSHMEM_RELEASE_VERSION@ +OSHMEM_REPO_REV = @OSHMEM_REPO_REV@ +OSHMEM_TARBALL_VERSION = @OSHMEM_TARBALL_VERSION@ +OSHMEM_TOP_BUILDDIR = @OSHMEM_TOP_BUILDDIR@ +OSHMEM_TOP_SRCDIR = @OSHMEM_TOP_SRCDIR@ +OSHMEM_VERSION = @OSHMEM_VERSION@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +QRSH = @QRSH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SINGULARITY = @SINGULARITY@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_FC = @ac_ct_FC@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +atomic_mxm_CFLAGS = @atomic_mxm_CFLAGS@ +atomic_mxm_CPPFLAGS = @atomic_mxm_CPPFLAGS@ +atomic_mxm_LDFLAGS = @atomic_mxm_LDFLAGS@ +atomic_mxm_LIBS = @atomic_mxm_LIBS@ +atomic_ucx_CFLAGS = @atomic_ucx_CFLAGS@ +atomic_ucx_CPPFLAGS = @atomic_ucx_CPPFLAGS@ +atomic_ucx_LDFLAGS = @atomic_ucx_LDFLAGS@ +atomic_ucx_LIBS = @atomic_ucx_LIBS@ +bindir = @bindir@ +btl_openib_CFLAGS = @btl_openib_CFLAGS@ +btl_openib_CPPFLAGS = @btl_openib_CPPFLAGS@ +btl_openib_LDFLAGS = @btl_openib_LDFLAGS@ +btl_openib_LIBS = @btl_openib_LIBS@ +btl_portals4_CPPFLAGS = @btl_portals4_CPPFLAGS@ +btl_portals4_LDFLAGS = @btl_portals4_LDFLAGS@ +btl_portals4_LIBS = @btl_portals4_LIBS@ +btl_uct_CPPFLAGS = @btl_uct_CPPFLAGS@ +btl_uct_LDFLAGS = @btl_uct_LDFLAGS@ +btl_uct_LIBS = @btl_uct_LIBS@ +btl_ugni_CPPFLAGS = @btl_ugni_CPPFLAGS@ +btl_ugni_LDFLAGS = @btl_ugni_LDFLAGS@ +btl_ugni_LIBS = @btl_ugni_LIBS@ +btl_vader_CFLAGS = @btl_vader_CFLAGS@ +btl_vader_CPPFLAGS = @btl_vader_CPPFLAGS@ +btl_vader_LDFLAGS = @btl_vader_LDFLAGS@ +btl_vader_LIBS = @btl_vader_LIBS@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +coll_fca_CFLAGS = @coll_fca_CFLAGS@ +coll_fca_CPPFLAGS = @coll_fca_CPPFLAGS@ +coll_fca_HOME = @coll_fca_HOME@ +coll_fca_LDFLAGS = @coll_fca_LDFLAGS@ +coll_fca_LIBS = @coll_fca_LIBS@ +coll_hcoll_CFLAGS = @coll_hcoll_CFLAGS@ +coll_hcoll_CPPFLAGS = @coll_hcoll_CPPFLAGS@ +coll_hcoll_LDFLAGS = @coll_hcoll_LDFLAGS@ +coll_hcoll_LIBS = @coll_hcoll_LIBS@ +coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ +coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ +coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ +common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ +common_alps_LDFLAGS = @common_alps_LDFLAGS@ +common_alps_LIBS = @common_alps_LIBS@ +common_cuda_CPPFLAGS = @common_cuda_CPPFLAGS@ +common_ucx_CFLAGS = @common_ucx_CFLAGS@ +common_ucx_CPPFLAGS = @common_ucx_CPPFLAGS@ +common_ucx_LDFLAGS = @common_ucx_LDFLAGS@ +common_ucx_LIBS = @common_ucx_LIBS@ +common_verbs_CFLAGS = @common_verbs_CFLAGS@ +common_verbs_CPPFLAGS = @common_verbs_CPPFLAGS@ +common_verbs_LDFLAGS = @common_verbs_LDFLAGS@ +common_verbs_LIBS = @common_verbs_LIBS@ +common_verbs_usnic_CPPFLAGS = @common_verbs_usnic_CPPFLAGS@ +common_verbs_usnic_LDFLAGS = @common_verbs_usnic_LDFLAGS@ +common_verbs_usnic_LIBS = @common_verbs_usnic_LIBS@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +ess_alps_CPPFLAGS = @ess_alps_CPPFLAGS@ +ess_alps_LDFLAGS = @ess_alps_LDFLAGS@ +ess_alps_LIBS = @ess_alps_LIBS@ +ess_lsf_CPPFLAGS = @ess_lsf_CPPFLAGS@ +ess_lsf_LDFLAGS = @ess_lsf_LDFLAGS@ +ess_lsf_LIBS = @ess_lsf_LIBS@ +ess_slurm_CPPFLAGS = @ess_slurm_CPPFLAGS@ +ess_slurm_LDFLAGS = @ess_slurm_LDFLAGS@ +ess_slurm_LIBS = @ess_slurm_LIBS@ +ess_tm_CPPFLAGS = @ess_tm_CPPFLAGS@ +ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ +ess_tm_LIBS = @ess_tm_LIBS@ +exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ +fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ +fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ +fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ +fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ +fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ +fs_lustre_LIBS = @fs_lustre_LIBS@ +fs_pvfs2_CPPFLAGS = @fs_pvfs2_CPPFLAGS@ +fs_pvfs2_LDFLAGS = @fs_pvfs2_LDFLAGS@ +fs_pvfs2_LIBS = @fs_pvfs2_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ +libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ +libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ +libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ +libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ +libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ +libmca_opal_common_verbs_so_version = @libmca_opal_common_verbs_so_version@ +libmca_orte_common_alps_so_version = @libmca_orte_common_alps_so_version@ +libmpi_cxx_so_version = @libmpi_cxx_so_version@ +libmpi_java_so_version = @libmpi_java_so_version@ +libmpi_mpifh_so_version = @libmpi_mpifh_so_version@ +libmpi_so_version = @libmpi_so_version@ +libmpi_usempi_ignore_tkr_so_version = @libmpi_usempi_ignore_tkr_so_version@ +libmpi_usempi_tkr_so_version = @libmpi_usempi_tkr_so_version@ +libmpi_usempif08_so_version = @libmpi_usempif08_so_version@ +libompitrace_so_version = @libompitrace_so_version@ +libopen_pal_so_version = @libopen_pal_so_version@ +libopen_rte_so_version = @libopen_rte_so_version@ +liboshmem_so_version = @liboshmem_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +memory_malloc_solaris_LIBS = @memory_malloc_solaris_LIBS@ +mkdir_p = @mkdir_p@ +mpool_memkind_CPPFLAGS = @mpool_memkind_CPPFLAGS@ +mpool_memkind_LDFLAGS = @mpool_memkind_LDFLAGS@ +mpool_memkind_LIBS = @mpool_memkind_LIBS@ +mtl_portals4_CPPFLAGS = @mtl_portals4_CPPFLAGS@ +mtl_portals4_LDFLAGS = @mtl_portals4_LDFLAGS@ +mtl_portals4_LIBS = @mtl_portals4_LIBS@ +mtl_psm2_CFLAGS = @mtl_psm2_CFLAGS@ +mtl_psm2_CPPFLAGS = @mtl_psm2_CPPFLAGS@ +mtl_psm2_LDFLAGS = @mtl_psm2_LDFLAGS@ +mtl_psm2_LIBS = @mtl_psm2_LIBS@ +mtl_psm_CFLAGS = @mtl_psm_CFLAGS@ +mtl_psm_CPPFLAGS = @mtl_psm_CPPFLAGS@ +mtl_psm_LDFLAGS = @mtl_psm_LDFLAGS@ +mtl_psm_LIBS = @mtl_psm_LIBS@ +odls_alps_CPPFLAGS = @odls_alps_CPPFLAGS@ +odls_alps_LDFLAGS = @odls_alps_LDFLAGS@ +odls_alps_LIBS = @odls_alps_LIBS@ +oldincludedir = @oldincludedir@ +ompidatadir = @ompidatadir@ +ompiincludedir = @ompiincludedir@ +ompilibdir = @ompilibdir@ +oob_alps_CPPFLAGS = @oob_alps_CPPFLAGS@ +oob_alps_LDFLAGS = @oob_alps_LDFLAGS@ +oob_alps_LIBS = @oob_alps_LIBS@ +opal_datatype_cuda_CPPFLAGS = @opal_datatype_cuda_CPPFLAGS@ +opal_dl_dlopen_LIBS = @opal_dl_dlopen_LIBS@ +opal_dl_libltdl_CPPFLAGS = @opal_dl_libltdl_CPPFLAGS@ +opal_dl_libltdl_LDFLAGS = @opal_dl_libltdl_LDFLAGS@ +opal_dl_libltdl_LIBS = @opal_dl_libltdl_LIBS@ +opal_event_external_CPPFLAGS = @opal_event_external_CPPFLAGS@ +opal_event_external_LDFLAGS = @opal_event_external_LDFLAGS@ +opal_event_external_LIBS = @opal_event_external_LIBS@ +opal_hwloc_external_LDFLAGS = @opal_hwloc_external_LDFLAGS@ +opal_hwloc_external_LIBS = @opal_hwloc_external_LIBS@ +opal_hwloc_hwloc201_CFLAGS = @opal_hwloc_hwloc201_CFLAGS@ +opal_hwloc_hwloc201_CPPFLAGS = @opal_hwloc_hwloc201_CPPFLAGS@ +opal_hwloc_hwloc201_LDFLAGS = @opal_hwloc_hwloc201_LDFLAGS@ +opal_hwloc_hwloc201_LIBS = @opal_hwloc_hwloc201_LIBS@ +opal_memchecker_valgrind_CPPFLAGS = @opal_memchecker_valgrind_CPPFLAGS@ +opal_ofi_CPPFLAGS = @opal_ofi_CPPFLAGS@ +opal_ofi_LDFLAGS = @opal_ofi_LDFLAGS@ +opal_ofi_LIBS = @opal_ofi_LIBS@ +opal_pmi1_CPPFLAGS = @opal_pmi1_CPPFLAGS@ +opal_pmi1_LDFLAGS = @opal_pmi1_LDFLAGS@ +opal_pmi1_LIBS = @opal_pmi1_LIBS@ +opal_pmi1_rpath = @opal_pmi1_rpath@ +opal_pmi2_CPPFLAGS = @opal_pmi2_CPPFLAGS@ +opal_pmi2_LDFLAGS = @opal_pmi2_LDFLAGS@ +opal_pmi2_LIBS = @opal_pmi2_LIBS@ +opal_pmi2_rpath = @opal_pmi2_rpath@ +opal_pmix_ext1x_CPPFLAGS = @opal_pmix_ext1x_CPPFLAGS@ +opal_pmix_ext1x_LDFLAGS = @opal_pmix_ext1x_LDFLAGS@ +opal_pmix_ext1x_LIBS = @opal_pmix_ext1x_LIBS@ +opal_pmix_ext2x_CPPFLAGS = @opal_pmix_ext2x_CPPFLAGS@ +opal_pmix_ext2x_LDFLAGS = @opal_pmix_ext2x_LDFLAGS@ +opal_pmix_ext2x_LIBS = @opal_pmix_ext2x_LIBS@ +opal_pmix_ext3x_CPPFLAGS = @opal_pmix_ext3x_CPPFLAGS@ +opal_pmix_ext3x_LDFLAGS = @opal_pmix_ext3x_LDFLAGS@ +opal_pmix_ext3x_LIBS = @opal_pmix_ext3x_LIBS@ +opal_pmix_pmix3x_CPPFLAGS = @opal_pmix_pmix3x_CPPFLAGS@ +opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ +opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ +opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ +opaldatadir = @opaldatadir@ +opalincludedir = @opalincludedir@ +opallibdir = @opallibdir@ +ortedatadir = @ortedatadir@ +orteincludedir = @orteincludedir@ +ortelibdir = @ortelibdir@ +osc_portals4_CPPFLAGS = @osc_portals4_CPPFLAGS@ +osc_portals4_LDFLAGS = @osc_portals4_LDFLAGS@ +osc_portals4_LIBS = @osc_portals4_LIBS@ +osc_ucx_CPPFLAGS = @osc_ucx_CPPFLAGS@ +osc_ucx_LDFLAGS = @osc_ucx_LDFLAGS@ +osc_ucx_LIBS = @osc_ucx_LIBS@ +oshmem_verbs_CFLAGS = @oshmem_verbs_CFLAGS@ +oshmem_verbs_CPPFLAGS = @oshmem_verbs_CPPFLAGS@ +oshmem_verbs_LDFLAGS = @oshmem_verbs_LDFLAGS@ +oshmem_verbs_LIBS = @oshmem_verbs_LIBS@ +oshmemdatadir = @oshmemdatadir@ +oshmemincludedir = @oshmemincludedir@ +oshmemlibdir = @oshmemlibdir@ +pdfdir = @pdfdir@ +plm_alps_CPPFLAGS = @plm_alps_CPPFLAGS@ +plm_alps_LDFLAGS = @plm_alps_LDFLAGS@ +plm_alps_LIBS = @plm_alps_LIBS@ +plm_lsf_CPPFLAGS = @plm_lsf_CPPFLAGS@ +plm_lsf_LDFLAGS = @plm_lsf_LDFLAGS@ +plm_lsf_LIBS = @plm_lsf_LIBS@ +plm_slurm_CPPFLAGS = @plm_slurm_CPPFLAGS@ +plm_slurm_LDFLAGS = @plm_slurm_LDFLAGS@ +plm_slurm_LIBS = @plm_slurm_LIBS@ +plm_tm_CPPFLAGS = @plm_tm_CPPFLAGS@ +plm_tm_LDFLAGS = @plm_tm_LDFLAGS@ +plm_tm_LIBS = @plm_tm_LIBS@ +pmix_alps_CPPFLAGS = @pmix_alps_CPPFLAGS@ +pmix_alps_LDFLAGS = @pmix_alps_LDFLAGS@ +pmix_alps_LIBS = @pmix_alps_LIBS@ +pmix_cray_CPPFLAGS = @pmix_cray_CPPFLAGS@ +pmix_cray_LDFLAGS = @pmix_cray_LDFLAGS@ +pmix_cray_LIBS = @pmix_cray_LIBS@ +pml_ucx_CPPFLAGS = @pml_ucx_CPPFLAGS@ +pml_ucx_LDFLAGS = @pml_ucx_LDFLAGS@ +pml_ucx_LIBS = @pml_ucx_LIBS@ +pml_yalla_CPPFLAGS = @pml_yalla_CPPFLAGS@ +pml_yalla_LDFLAGS = @pml_yalla_LDFLAGS@ +pml_yalla_LIBS = @pml_yalla_LIBS@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +ras_alps_CPPFLAGS = @ras_alps_CPPFLAGS@ +ras_lsf_CPPFLAGS = @ras_lsf_CPPFLAGS@ +ras_lsf_LDFLAGS = @ras_lsf_LDFLAGS@ +ras_lsf_LIBS = @ras_lsf_LIBS@ +ras_slurm_CPPFLAGS = @ras_slurm_CPPFLAGS@ +ras_slurm_LDFLAGS = @ras_slurm_LDFLAGS@ +ras_slurm_LIBS = @ras_slurm_LIBS@ +ras_tm_CPPFLAGS = @ras_tm_CPPFLAGS@ +ras_tm_LDFLAGS = @ras_tm_LDFLAGS@ +ras_tm_LIBS = @ras_tm_LIBS@ +rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ +rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ +rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ +sbindir = @sbindir@ +schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ +schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ +schizo_moab_LDFLAGS = @schizo_moab_LDFLAGS@ +schizo_moab_LIBS = @schizo_moab_LIBS@ +schizo_slurm_CPPFLAGS = @schizo_slurm_CPPFLAGS@ +schizo_slurm_LDFLAGS = @schizo_slurm_LDFLAGS@ +schizo_slurm_LIBS = @schizo_slurm_LIBS@ +scoll_fca_CFLAGS = @scoll_fca_CFLAGS@ +scoll_fca_CPPFLAGS = @scoll_fca_CPPFLAGS@ +scoll_fca_HOME = @scoll_fca_HOME@ +scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ +scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ +sharedstatedir = @sharedstatedir@ +spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ +spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ +spml_ikrit_LDFLAGS = @spml_ikrit_LDFLAGS@ +spml_ikrit_LIBS = @spml_ikrit_LIBS@ +spml_ucx_CFLAGS = @spml_ucx_CFLAGS@ +spml_ucx_CPPFLAGS = @spml_ucx_CPPFLAGS@ +spml_ucx_LDFLAGS = @spml_ucx_LDFLAGS@ +spml_ucx_LIBS = @spml_ucx_LIBS@ +srcdir = @srcdir@ +sshmem_ucx_CFLAGS = @sshmem_ucx_CFLAGS@ +sshmem_ucx_CPPFLAGS = @sshmem_ucx_CPPFLAGS@ +sshmem_ucx_LDFLAGS = @sshmem_ucx_LDFLAGS@ +sshmem_ucx_LIBS = @sshmem_ucx_LIBS@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ucx_CFLAGS = @ucx_CFLAGS@ +ucx_LIBS = @ucx_LIBS@ +ucx_STATIC_LIBS = @ucx_STATIC_LIBS@ +@MCA_BUILD_ompi_fs_ime_DSO_FALSE@component_noinst = libmca_fs_ime.la +@MCA_BUILD_ompi_fs_ime_DSO_TRUE@component_noinst = +@MCA_BUILD_ompi_fs_ime_DSO_FALSE@component_install = +@MCA_BUILD_ompi_fs_ime_DSO_TRUE@component_install = mca_fs_ime.la + +# Source files +fs_ime_sources = \ + fs_ime.h \ + fs_ime.c \ + fs_ime_component.c \ + fs_ime_file_open.c \ + fs_ime_file_close.c \ + fs_ime_file_delete.c \ + fs_ime_file_sync.c \ + fs_ime_file_set_size.c \ + fs_ime_file_get_size.c + +AM_CPPFLAGS = $(fs_ime_CPPFLAGS) +mcacomponentdir = $(ompilibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_fs_ime_la_SOURCES = $(fs_ime_sources) +mca_fs_ime_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(fs_ime_LIBS) + +mca_fs_ime_la_LDFLAGS = -module -avoid-version $(fs_ime_LDFLAGS) +noinst_LTLIBRARIES = $(component_noinst) +libmca_fs_ime_la_SOURCES = $(fs_ime_sources) +libmca_fs_ime_la_LIBADD = $(fs_ime_LIBS) +libmca_fs_ime_la_LDFLAGS = -module -avoid-version $(fs_ime_LDFLAGS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign ompi/mca/fs/ime/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign ompi/mca/fs/ime/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-mcacomponentLTLIBRARIES: $(mcacomponent_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(mcacomponentdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(mcacomponentdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(mcacomponentdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(mcacomponentdir)"; \ + } + +uninstall-mcacomponentLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(mcacomponentdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(mcacomponentdir)/$$f"; \ + done + +clean-mcacomponentLTLIBRARIES: + -test -z "$(mcacomponent_LTLIBRARIES)" || rm -f $(mcacomponent_LTLIBRARIES) + @list='$(mcacomponent_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libmca_fs_ime.la: $(libmca_fs_ime_la_OBJECTS) $(libmca_fs_ime_la_DEPENDENCIES) $(EXTRA_libmca_fs_ime_la_DEPENDENCIES) + $(AM_V_CCLD)$(libmca_fs_ime_la_LINK) $(am_libmca_fs_ime_la_rpath) $(libmca_fs_ime_la_OBJECTS) $(libmca_fs_ime_la_LIBADD) $(LIBS) + +mca_fs_ime.la: $(mca_fs_ime_la_OBJECTS) $(mca_fs_ime_la_DEPENDENCIES) $(EXTRA_mca_fs_ime_la_DEPENDENCIES) + $(AM_V_CCLD)$(mca_fs_ime_la_LINK) $(am_mca_fs_ime_la_rpath) $(mca_fs_ime_la_OBJECTS) $(mca_fs_ime_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs_ime.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs_ime_component.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs_ime_file_close.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs_ime_file_delete.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs_ime_file_get_size.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs_ime_file_open.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs_ime_file_set_size.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs_ime_file_sync.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(mcacomponentdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-mcacomponentLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-mcacomponentLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-mcacomponentLTLIBRARIES install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-mcacomponentLTLIBRARIES + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/ompi/mca/fs/lustre/fs_lustre.c openmpi-4.1.4/ompi/mca/fs/lustre/fs_lustre.c --- openmpi-4.0.3/ompi/mca/fs/lustre/fs_lustre.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/lustre/fs_lustre.c 2022-05-29 09:51:40.000000000 +0000 @@ -32,21 +32,6 @@ #include "ompi/mca/fs/base/base.h" #include "ompi/mca/fs/lustre/fs_lustre.h" -#ifdef HAVE_SYS_STATFS_H -#include /* or */ -#endif -#ifdef HAVE_SYS_PARAM_H -#include -#endif -#ifdef HAVE_SYS_MOUNT_H -#include -#endif -#ifdef HAVE_SYS_STAT_H -#include -#endif - -#include - /* * ******************************************************************* * ************************ actions structure ************************ diff -Nru openmpi-4.0.3/ompi/mca/fs/lustre/fs_lustre_file_open.c openmpi-4.1.4/ompi/mca/fs/lustre/fs_lustre_file_open.c --- openmpi-4.0.3/ompi/mca/fs/lustre/fs_lustre_file_open.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/lustre/fs_lustre_file_open.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2008-2018 University of Houston. All rights reserved. - * Copyright (c) 2015-2018 Research Organization for Information Science + * Copyright (c) 2015-2020 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2016-2017 IBM Corporation. All rights reserved. * $COPYRIGHT$ @@ -29,6 +29,7 @@ #include "mpi.h" #include "ompi/constants.h" #include "ompi/mca/fs/fs.h" +#include "ompi/mca/fs/base/base.h" #include "ompi/communicator/communicator.h" #include "ompi/info/info.h" @@ -63,8 +64,7 @@ struct opal_info_t *info, ompio_file_t *fh) { - int amode, rank; - int old_mask, perm; + int amode, perm; int rc, ret=OMPI_SUCCESS; int flag; int fs_lustre_stripe_size = -1; @@ -73,24 +73,8 @@ struct lov_user_md *lump=NULL; - if (fh->f_perm == OMPIO_PERM_NULL) { - old_mask = umask(022); - umask(old_mask); - perm = old_mask ^ 0666; - } - else { - perm = fh->f_perm; - } - - rank = fh->f_rank; - - amode = 0; - if (access_mode & MPI_MODE_RDONLY) - amode = amode | O_RDONLY; - if (access_mode & MPI_MODE_WRONLY) - amode = amode | O_WRONLY; - if (access_mode & MPI_MODE_RDWR) - amode = amode | O_RDWR; + perm = mca_fs_base_get_file_perm(fh); + amode = mca_fs_base_get_file_amode(fh->f_rank, access_mode); opal_info_get (info, "stripe_size", MPI_MAX_INFO_VAL, char_stripe, &flag); if ( flag ) { @@ -113,13 +97,7 @@ /* Reset errno */ errno = 0; - if (0 == fh->f_rank) { - /* MODE_CREATE and MODE_EXCL can only be set by one process */ - if ( access_mode & MPI_MODE_CREATE ) - amode = amode | O_CREAT; - if (access_mode & MPI_MODE_EXCL) - amode = amode | O_EXCL; - + if (OMPIO_ROOT == fh->f_rank) { if ( (fs_lustre_stripe_size>0 || fs_lustre_stripe_width>0) && ( amode&O_CREAT) && ( (amode&O_RDWR)|| amode&O_WRONLY) ) { @@ -134,28 +112,9 @@ else { fh->fd = open (filename, amode, perm); } + if ( 0 > fh->fd ) { - if ( EACCES == errno ) { - ret = MPI_ERR_ACCESS; - } - else if ( ENAMETOOLONG == errno ) { - ret = MPI_ERR_BAD_FILE; - } - else if ( ENOENT == errno ) { - ret = MPI_ERR_NO_SUCH_FILE; - } - else if ( EISDIR == errno ) { - ret = MPI_ERR_BAD_FILE; - } - else if ( EROFS == errno ) { - ret = MPI_ERR_READ_ONLY; - } - else if ( EEXIST == errno ) { - ret = MPI_ERR_FILE_EXISTS; - } - else { - ret = MPI_ERR_OTHER; - } + ret = mca_fs_base_get_mpi_err(errno); } } @@ -165,48 +124,29 @@ return ret; } - if ( 0 != rank ) { + if (OMPIO_ROOT != fh->f_rank) { fh->fd = open (filename, amode, perm); if ( 0 > fh->fd) { - if ( EACCES == errno ) { - ret = MPI_ERR_ACCESS; - } - else if ( ENAMETOOLONG == errno ) { - ret = MPI_ERR_BAD_FILE; - } - else if ( ENOENT == errno ) { - ret = MPI_ERR_NO_SUCH_FILE; - } - else if ( EISDIR == errno ) { - ret = MPI_ERR_BAD_FILE; - } - else if ( EROFS == errno ) { - ret = MPI_ERR_READ_ONLY; - } - else if ( EEXIST == errno ) { - ret = MPI_ERR_FILE_EXISTS; - } - else { - ret = MPI_ERR_OTHER; - } + return mca_fs_base_get_mpi_err(errno); } } - - lump = alloc_lum(); - if (NULL == lump ){ - fprintf(stderr,"Cannot allocate memory for extracting stripe size\n"); - return OMPI_ERROR; + if (NULL == lump) { + fprintf(stderr,"Cannot allocate memory for extracting stripe size\n"); + return OMPI_ERROR; } rc = llapi_file_get_stripe(filename, lump); if (rc != 0) { opal_output(1, "get_stripe failed: %d (%s)\n", errno, strerror(errno)); + free(lump); return OMPI_ERROR; } fh->f_stripe_size = lump->lmm_stripe_size; fh->f_stripe_count = lump->lmm_stripe_count; fh->f_fs_block_size = lump->lmm_stripe_size; - + fh->f_flags |= OMPIO_LOCK_NEVER; + free(lump); + return OMPI_SUCCESS; } diff -Nru openmpi-4.0.3/ompi/mca/fs/lustre/fs_lustre.h openmpi-4.1.4/ompi/mca/fs/lustre/fs_lustre.h --- openmpi-4.0.3/ompi/mca/fs/lustre/fs_lustre.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/lustre/fs_lustre.h 2022-05-29 09:51:40.000000000 +0000 @@ -64,22 +64,6 @@ struct opal_info_t *info, ompio_file_t *fh); -int mca_fs_lustre_file_close (ompio_file_t *fh); - -int mca_fs_lustre_file_delete (char *filename, - struct opal_info_t *info); - -int mca_fs_lustre_file_set_size (ompio_file_t *fh, - OMPI_MPI_OFFSET_TYPE size); - -int mca_fs_lustre_file_get_size (ompio_file_t *fh, - OMPI_MPI_OFFSET_TYPE *size); - -int mca_fs_lustre_file_sync (ompio_file_t *fh); - -int mca_fs_lustre_file_seek (ompio_file_t *fh, - OMPI_MPI_OFFSET_TYPE offset, - int whence); /* * ****************************************************************** * ************ functions implemented in this module end ************ diff -Nru openmpi-4.0.3/ompi/mca/fs/lustre/Makefile.in openmpi-4.1.4/ompi/mca/fs/lustre/Makefile.in --- openmpi-4.0.3/ompi/mca/fs/lustre/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/lustre/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -122,6 +122,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -129,6 +131,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -152,6 +155,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -254,6 +258,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -261,6 +266,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -341,6 +347,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -363,9 +370,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -375,6 +386,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -395,6 +407,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -664,6 +677,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1484,6 +1500,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1516,9 +1536,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1539,6 +1568,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1623,9 +1653,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1686,6 +1713,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1699,6 +1729,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/fs/Makefile.in openmpi-4.1.4/ompi/mca/fs/Makefile.in --- openmpi-4.0.3/ompi/mca/fs/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -138,6 +138,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -145,6 +147,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -168,6 +171,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -270,6 +274,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -277,6 +282,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -357,6 +363,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -379,9 +386,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -391,6 +402,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -411,6 +423,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -671,6 +684,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1491,6 +1507,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1523,9 +1543,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1546,6 +1575,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1630,9 +1660,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1693,6 +1720,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1706,6 +1736,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/fs/pvfs2/fs_pvfs2.h openmpi-4.1.4/ompi/mca/fs/pvfs2/fs_pvfs2.h --- openmpi-4.0.3/ompi/mca/fs/pvfs2/fs_pvfs2.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/pvfs2/fs_pvfs2.h 2022-05-29 09:51:40.000000000 +0000 @@ -89,9 +89,6 @@ int mca_fs_pvfs2_file_sync (ompio_file_t *fh); -int mca_fs_pvfs2_file_seek (ompio_file_t *fh, - OMPI_MPI_OFFSET_TYPE offset, - int whence); /* * ****************************************************************** * ************ functions implemented in this module end ************ diff -Nru openmpi-4.0.3/ompi/mca/fs/pvfs2/Makefile.in openmpi-4.1.4/ompi/mca/fs/pvfs2/Makefile.in --- openmpi-4.0.3/ompi/mca/fs/pvfs2/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/pvfs2/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -122,6 +122,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -129,6 +131,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -152,6 +155,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -254,6 +258,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -261,6 +266,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -341,6 +347,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -363,9 +370,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -375,6 +386,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -395,6 +407,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -666,6 +679,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1486,6 +1502,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1518,9 +1538,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1541,6 +1570,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1625,9 +1655,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1688,6 +1715,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1701,6 +1731,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/fs/ufs/fs_ufs_file_open.c openmpi-4.1.4/ompi/mca/fs/ufs/fs_ufs_file_open.c --- openmpi-4.0.3/ompi/mca/fs/ufs/fs_ufs_file_open.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/ufs/fs_ufs_file_open.c 2022-05-29 09:51:40.000000000 +0000 @@ -48,114 +48,32 @@ struct opal_info_t *info, ompio_file_t *fh) { - int amode; - int old_mask, perm; - int rank, ret=OMPI_SUCCESS; + int amode, perm; + int ret=OMPI_SUCCESS; - rank = ompi_comm_rank ( comm ); - - if (fh->f_perm == OMPIO_PERM_NULL) { - old_mask = umask(022); - umask(old_mask); - perm = old_mask ^ 0666; - } - else { - perm = fh->f_perm; - } - - amode = 0; - - if (access_mode & MPI_MODE_RDONLY) - amode = amode | O_RDONLY; - if (access_mode & MPI_MODE_WRONLY) - amode = amode | O_WRONLY; - if (access_mode & MPI_MODE_RDWR) - amode = amode | O_RDWR; + perm = mca_fs_base_get_file_perm(fh); + amode = mca_fs_base_get_file_amode(fh->f_rank, access_mode); /* Reset errno */ errno = 0; - if ( 0 == rank ) { - /* MODE_CREATE and MODE_EXCL can only be set by one process */ - if ( access_mode & MPI_MODE_CREATE ) - amode = amode | O_CREAT; - if (access_mode & MPI_MODE_EXCL) - amode = amode | O_EXCL; - - fh->fd = open (filename, amode, perm); - if ( 0 > fh->fd ) { - if ( EACCES == errno ) { - ret = MPI_ERR_ACCESS; - } - else if ( ENAMETOOLONG == errno ) { - ret = MPI_ERR_BAD_FILE; - } - else if ( ENOENT == errno ) { - ret = MPI_ERR_NO_SUCH_FILE; - } - else if ( EISDIR == errno ) { - ret = MPI_ERR_BAD_FILE; - } - else if ( EROFS == errno ) { - ret = MPI_ERR_READ_ONLY; - } - else if ( EEXIST == errno ) { - ret = MPI_ERR_FILE_EXISTS; - } - else if ( ENOSPC == errno ) { - ret = MPI_ERR_NO_SPACE; - } - else if ( EDQUOT == errno ) { - ret = MPI_ERR_QUOTA; - } - else if ( ETXTBSY == errno ) { - ret = MPI_ERR_FILE_IN_USE; - } - else { - ret = MPI_ERR_OTHER; - } + if (OMPIO_ROOT == fh->f_rank) { + fh->fd = open (filename, amode, perm); + if ( 0 > fh->fd ) { + ret = mca_fs_base_get_mpi_err(errno); } } comm->c_coll->coll_bcast ( &ret, 1, MPI_INT, 0, comm, comm->c_coll->coll_bcast_module); if ( OMPI_SUCCESS != ret ) { - fh->fd = -1; - return ret; + fh->fd = -1; + return ret; } - if ( 0 != rank ) { - fh->fd = open (filename, amode, perm); - if ( 0 > fh->fd) { - if ( EACCES == errno ) { - ret = MPI_ERR_ACCESS; - } - else if ( ENAMETOOLONG == errno ) { - ret = MPI_ERR_BAD_FILE; - } - else if ( ENOENT == errno ) { - ret = MPI_ERR_NO_SUCH_FILE; - } - else if ( EISDIR == errno ) { - ret = MPI_ERR_BAD_FILE; - } - else if ( EROFS == errno ) { - ret = MPI_ERR_READ_ONLY; - } - else if ( EEXIST == errno ) { - ret = MPI_ERR_FILE_EXISTS; - } - else if ( ENOSPC == errno ) { - ret = MPI_ERR_NO_SPACE; - } - else if ( EDQUOT == errno ) { - ret = MPI_ERR_QUOTA; - } - else if ( ETXTBSY == errno ) { - ret = MPI_ERR_FILE_IN_USE; - } - else { - ret = MPI_ERR_OTHER; - } - } + if (OMPIO_ROOT != fh->f_rank) { + fh->fd = open (filename, amode, perm); + if ( 0 > fh->fd) { + return mca_fs_base_get_mpi_err(errno); + } } fh->f_stripe_size=0; diff -Nru openmpi-4.0.3/ompi/mca/fs/ufs/fs_ufs.h openmpi-4.1.4/ompi/mca/fs/ufs/fs_ufs.h --- openmpi-4.0.3/ompi/mca/fs/ufs/fs_ufs.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/ufs/fs_ufs.h 2022-05-29 09:51:40.000000000 +0000 @@ -60,22 +60,6 @@ struct opal_info_t *info, ompio_file_t *fh); -int mca_fs_ufs_file_close (ompio_file_t *fh); - -int mca_fs_ufs_file_delete (char *filename, - struct opal_info_t *info); - -int mca_fs_ufs_file_set_size (ompio_file_t *fh, - OMPI_MPI_OFFSET_TYPE size); - -int mca_fs_ufs_file_get_size (ompio_file_t *fh, - OMPI_MPI_OFFSET_TYPE *size); - -int mca_fs_ufs_file_sync (ompio_file_t *fh); - -int mca_fs_ufs_file_seek (ompio_file_t *fh, - OMPI_MPI_OFFSET_TYPE offset, - int whence); /* * ****************************************************************** * ************ functions implemented in this module end ************ diff -Nru openmpi-4.0.3/ompi/mca/fs/ufs/Makefile.in openmpi-4.1.4/ompi/mca/fs/ufs/Makefile.in --- openmpi-4.0.3/ompi/mca/fs/ufs/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/fs/ufs/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -122,6 +122,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -129,6 +131,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -152,6 +155,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -254,6 +258,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -261,6 +266,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -341,6 +347,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -363,9 +370,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -375,6 +386,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -395,6 +407,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -659,6 +672,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1479,6 +1495,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1511,9 +1531,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1534,6 +1563,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1618,9 +1648,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1681,6 +1708,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1694,6 +1724,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/hook/Makefile.in openmpi-4.1.4/ompi/mca/hook/Makefile.in --- openmpi-4.0.3/ompi/mca/hook/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/hook/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -647,6 +660,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1467,6 +1483,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1499,9 +1519,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1522,6 +1551,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1606,9 +1636,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1669,6 +1696,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1682,6 +1712,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/io/Makefile.in openmpi-4.1.4/ompi/mca/io/Makefile.in --- openmpi-4.0.3/ompi/mca/io/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -136,6 +136,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -143,6 +145,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -166,6 +169,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -268,6 +272,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -275,6 +280,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -355,6 +361,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -377,9 +384,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -389,6 +400,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -409,6 +421,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -667,6 +680,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1487,6 +1503,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1519,9 +1539,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1542,6 +1571,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1626,9 +1656,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1689,6 +1716,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1702,6 +1732,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/io/ompio/io_ompio_component.c openmpi-4.1.4/ompi/mca/io/ompio/io_ompio_component.c --- openmpi-4.0.3/ompi/mca/io/ompio/io_ompio_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/ompio/io_ompio_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,12 +10,13 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2008-2018 University of Houston. All rights reserved. + * Copyright (c) 2008-2020 University of Houston. All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2016-2017 IBM Corporation. All rights reserved. + * Copyright (c) 2018 DataDirect Networks. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -27,17 +28,18 @@ #include "mpi.h" #include "opal/class/opal_list.h" -#include "opal/threads/mutex.h" #include "opal/mca/base/base.h" #include "ompi/mca/io/io.h" #include "ompi/mca/fs/base/base.h" #include "io_ompio.h" #include "ompi/mca/common/ompio/common_ompio_request.h" +#include "ompi/mca/common/ompio/common_ompio_buffer.h" -#if OPAL_CUDA_SUPPORT -#include "ompi/mca/common/ompio/common_ompio_cuda.h" +#ifdef HAVE_IME_NATIVE_H +#include "ompi/mca/fs/ime/fs_ime.h" #endif + int mca_io_ompio_cycle_buffer_size = OMPIO_DEFAULT_CYCLE_BUF_SIZE; int mca_io_ompio_bytes_per_agg = OMPIO_PREALLOC_MAX_BUF_SIZE; int mca_io_ompio_num_aggregators = -1; @@ -275,13 +277,13 @@ static int close_component(void) { mca_common_ompio_request_fini (); + mca_common_ompio_buffer_alloc_fini(); + OBJ_DESTRUCT(&mca_io_ompio_mutex); -#if OPAL_CUDA_SUPPORT - mca_common_ompio_cuda_alloc_fini(); +#ifdef HAVE_IME_NATIVE_H + mca_fs_ime_native_fini(); #endif - OBJ_DESTRUCT(&mca_io_ompio_mutex); - return OMPI_SUCCESS; } @@ -299,42 +301,11 @@ int *priority) { mca_common_ompio_data_t *data; - char *tmp; - int rank; - int is_lustre=0; //false - - tmp = strchr (file->f_filename, ':'); - rank = ompi_comm_rank ( file->f_comm); - if (!tmp) { - if ( 0 == rank) { - if (LUSTRE == mca_fs_base_get_fstype(file->f_filename)) { - is_lustre = 1; //true - } - } - - file->f_comm->c_coll->coll_bcast (&is_lustre, - 1, - MPI_INT, - 0, - file->f_comm, - file->f_comm->c_coll->coll_bcast_module); - } - else { - if (!strncasecmp(file->f_filename, "lustre:", 7) ) { - is_lustre = 1; - } - } - if (is_lustre) { - *priority = 1; - } - else { - *priority = priority_param; - } + *priority = priority_param; /* Allocate a space for this module to hang private data (e.g., the OMPIO file handle) */ - data = calloc(1, sizeof(mca_common_ompio_data_t)); if (NULL == data) { return NULL; @@ -343,7 +314,6 @@ *private_data = (struct mca_io_base_file_t*) data; /* All done */ - return &mca_io_ompio_module; } diff -Nru openmpi-4.0.3/ompi/mca/io/ompio/io_ompio_file_open.c openmpi-4.1.4/ompi/mca/io/ompio/io_ompio_file_open.c --- openmpi-4.0.3/ompi/mca/io/ompio/io_ompio_file_open.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/ompio/io_ompio_file_open.c 2022-05-29 09:51:40.000000000 +0000 @@ -507,6 +507,11 @@ data = (mca_common_ompio_data_t *) fh->f_io_selected_data; OPAL_THREAD_LOCK(&fh->f_lock); + if ( data->ompio_fh.f_view_size == 0 ) { + *disp = 0; + OPAL_THREAD_UNLOCK(&fh->f_lock); + return OMPI_SUCCESS; + } temp_offset = (long) data->ompio_fh.f_view_extent * (offset*data->ompio_fh.f_etype_size / data->ompio_fh.f_view_size); if ( 0 > temp_offset ) { diff -Nru openmpi-4.0.3/ompi/mca/io/ompio/io_ompio_file_read.c openmpi-4.1.4/ompi/mca/io/ompio/io_ompio_file_read.c --- openmpi-4.0.3/ompi/mca/io/ompio/io_ompio_file_read.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/ompio/io_ompio_file_read.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2008-2018 University of Houston. All rights reserved. + * Copyright (c) 2008-2019 University of Houston. All rights reserved. * Copyright (c) 2017-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -137,12 +137,11 @@ data = (mca_common_ompio_data_t *) fh->f_io_selected_data; OPAL_THREAD_LOCK(&fh->f_lock); - ret = data->ompio_fh. - f_fcoll->fcoll_file_read_all (&data->ompio_fh, - buf, - count, - datatype, - status); + ret = mca_common_ompio_file_read_all (&data->ompio_fh, + buf, + count, + datatype, + status); OPAL_THREAD_UNLOCK(&fh->f_lock); if ( MPI_STATUS_IGNORE != status ) { size_t size; @@ -162,25 +161,15 @@ { int ret = OMPI_SUCCESS; mca_common_ompio_data_t *data=NULL; - ompio_file_t *fp=NULL; data = (mca_common_ompio_data_t *) fh->f_io_selected_data; - fp = &data->ompio_fh; OPAL_THREAD_LOCK(&fh->f_lock); - if ( NULL != fp->f_fcoll->fcoll_file_iread_all ) { - ret = fp->f_fcoll->fcoll_file_iread_all (&data->ompio_fh, - buf, - count, - datatype, - request); - } - else { - /* this fcoll component does not support non-blocking - collective I/O operations. WE fake it with - individual non-blocking I/O operations. */ - ret = mca_common_ompio_file_iread ( fp, buf, count, datatype, request ); - } + ret = mca_common_ompio_file_iread_all (&data->ompio_fh, + buf, + count, + datatype, + request); OPAL_THREAD_UNLOCK(&fh->f_lock); return ret; diff -Nru openmpi-4.0.3/ompi/mca/io/ompio/io_ompio_file_set_view.c openmpi-4.1.4/ompi/mca/io/ompio/io_ompio_file_set_view.c --- openmpi-4.0.3/ompi/mca/io/ompio/io_ompio_file_set_view.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/ompio/io_ompio_file_set_view.c 2022-05-29 09:51:40.000000000 +0000 @@ -66,7 +66,8 @@ mca_common_ompio_data_t *data; ompio_file_t *fh; - if ( (strcmp(datarep, "native") && strcmp(datarep, "NATIVE"))) { + if ( (strcmp(datarep, "native") && strcmp(datarep, "NATIVE") && + strcmp(datarep, "external32") && strcmp(datarep, "EXTERNAL32"))) { return MPI_ERR_UNSUPPORTED_DATAREP; } @@ -76,7 +77,14 @@ file pointer, once for the shared file pointer (if it is existent) */ fh = &data->ompio_fh; - + + if ( MPI_DISPLACEMENT_CURRENT == disp && + !(fh->f_amode & MPI_MODE_SEQUENTIAL ) ) { + // MPI_DISPLACEMENT_CURRENT is only valid if amode is MPI_MODE_SEQUENTIAL + return MPI_ERR_DISP; + } + + OPAL_THREAD_LOCK(&fp->f_lock); ret = mca_common_ompio_set_view(fh, disp, etype, filetype, datarep, info); OPAL_THREAD_UNLOCK(&fp->f_lock); diff -Nru openmpi-4.0.3/ompi/mca/io/ompio/io_ompio_file_write.c openmpi-4.1.4/ompi/mca/io/ompio/io_ompio_file_write.c --- openmpi-4.0.3/ompi/mca/io/ompio/io_ompio_file_write.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/ompio/io_ompio_file_write.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2008-2018 University of Houston. All rights reserved. + * Copyright (c) 2008-2019 University of Houston. All rights reserved. * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -143,12 +143,11 @@ data = (mca_common_ompio_data_t *) fh->f_io_selected_data; OPAL_THREAD_LOCK(&fh->f_lock); - ret = data->ompio_fh. - f_fcoll->fcoll_file_write_all (&data->ompio_fh, - buf, - count, - datatype, - status); + ret = mca_common_ompio_file_write_all (&data->ompio_fh, + buf, + count, + datatype, + status); OPAL_THREAD_UNLOCK(&fh->f_lock); if ( MPI_STATUS_IGNORE != status ) { size_t size; @@ -186,25 +185,15 @@ { int ret = OMPI_SUCCESS; mca_common_ompio_data_t *data=NULL; - ompio_file_t *fp=NULL; data = (mca_common_ompio_data_t *) fh->f_io_selected_data; - fp = &data->ompio_fh; OPAL_THREAD_LOCK(&fh->f_lock); - if ( NULL != fp->f_fcoll->fcoll_file_iwrite_all ) { - ret = fp->f_fcoll->fcoll_file_iwrite_all (&data->ompio_fh, - buf, - count, - datatype, - request); - } - else { - /* this fcoll component does not support non-blocking - collective I/O operations. WE fake it with - individual non-blocking I/O operations. */ - ret = mca_common_ompio_file_iwrite ( fp, buf, count, datatype, request ); - } + ret = mca_common_ompio_file_iwrite_all (&data->ompio_fh, + buf, + count, + datatype, + request); OPAL_THREAD_UNLOCK(&fh->f_lock); return ret; diff -Nru openmpi-4.0.3/ompi/mca/io/ompio/io_ompio.h openmpi-4.1.4/ompi/mca/io/ompio/io_ompio.h --- openmpi-4.0.3/ompi/mca/io/ompio/io_ompio.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/ompio/io_ompio.h 2022-05-29 09:51:40.000000000 +0000 @@ -29,7 +29,6 @@ #include "mpi.h" #include "opal/class/opal_list.h" #include "ompi/errhandler/errhandler.h" -#include "opal/threads/mutex.h" #include "ompi/file/file.h" #include "ompi/mca/io/io.h" #include "ompi/mca/fs/fs.h" diff -Nru openmpi-4.0.3/ompi/mca/io/ompio/io_ompio_module.c openmpi-4.1.4/ompi/mca/io/ompio/io_ompio_module.c --- openmpi-4.0.3/ompi/mca/io/ompio/io_ompio_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/ompio/io_ompio_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2008-2011 University of Houston. All rights reserved. - * Copyright (c) 2016-2017 IBM Corporation. All rights reserved. + * Copyright (c) 2016-2019 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -20,7 +20,6 @@ #include "ompi_config.h" #include "mpi.h" -#include "opal/threads/mutex.h" #include "ompi/mca/io/io.h" #include "io_ompio.h" diff -Nru openmpi-4.0.3/ompi/mca/io/ompio/Makefile.in openmpi-4.1.4/ompi/mca/io/ompio/Makefile.in --- openmpi-4.0.3/ompi/mca/io/ompio/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/ompio/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -124,6 +124,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -131,6 +133,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -154,6 +157,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -256,6 +260,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -263,6 +268,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -343,6 +349,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -365,9 +372,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -377,6 +388,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -397,6 +409,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -665,6 +678,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1485,6 +1501,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1517,9 +1537,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1540,6 +1569,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1624,9 +1654,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1687,6 +1714,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1700,6 +1730,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/io/romio321/Makefile.in openmpi-4.1.4/ompi/mca/io/romio321/Makefile.in --- openmpi-4.0.3/ompi/mca/io/romio321/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/romio321/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -142,6 +142,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -149,6 +151,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -172,6 +175,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -274,6 +278,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -281,6 +286,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -361,6 +367,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -383,9 +390,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -395,6 +406,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -415,6 +427,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -735,6 +748,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1555,6 +1571,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1587,9 +1607,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1610,6 +1639,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1694,9 +1724,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1757,6 +1784,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1770,6 +1800,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/io/romio321/romio/adio/ad_gpfs/ad_gpfs_aggrs.c openmpi-4.1.4/ompi/mca/io/romio321/romio/adio/ad_gpfs/ad_gpfs_aggrs.c --- openmpi-4.0.3/ompi/mca/io/romio321/romio/adio/ad_gpfs/ad_gpfs_aggrs.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/romio321/romio/adio/ad_gpfs/ad_gpfs_aggrs.c 2022-05-29 09:51:40.000000000 +0000 @@ -719,6 +719,7 @@ others_req[i].count = 0; others_req[i].offsets = NULL; others_req[i].lens = NULL; + others_req[i].mem_ptrs = NULL; } } diff -Nru openmpi-4.0.3/ompi/mca/io/romio321/romio/adio/ad_gpfs/ad_gpfs_open.c openmpi-4.1.4/ompi/mca/io/romio321/romio/adio/ad_gpfs/ad_gpfs_open.c --- openmpi-4.0.3/ompi/mca/io/romio321/romio/adio/ad_gpfs/ad_gpfs_open.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/romio321/romio/adio/ad_gpfs/ad_gpfs_open.c 2022-05-29 09:51:40.000000000 +0000 @@ -115,9 +115,9 @@ MPI_Comm_rank(fd->comm, &rank); if ((rank == fd->hints->ranklist[0]) || (fd->comm == MPI_COMM_SELF)) { - struct stat64 gpfs_statbuf; + struct stat gpfs_statbuf; /* Get the (real) underlying file system block size */ - rc = stat64(fd->filename, &gpfs_statbuf); + rc = stat(fd->filename, &gpfs_statbuf); if (rc >= 0) { fd->blksize = gpfs_statbuf.st_blksize; diff -Nru openmpi-4.0.3/ompi/mca/io/romio321/romio/adio/ad_gpfs/ad_gpfs_rdcoll.c openmpi-4.1.4/ompi/mca/io/romio321/romio/adio/ad_gpfs/ad_gpfs_rdcoll.c --- openmpi-4.0.3/ompi/mca/io/romio321/romio/adio/ad_gpfs/ad_gpfs_rdcoll.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/romio321/romio/adio/ad_gpfs/ad_gpfs_rdcoll.c 2022-05-29 09:51:40.000000000 +0000 @@ -444,8 +444,8 @@ ADIOI_Free(count_my_req_per_proc); for (i=0; iatomicity)) \ + if (!fd->atomicity && fd->hints->ds_write == ADIOI_HINT_DISABLE) \ ADIOI_UNLOCK(fd, writebuf_off, SEEK_SET, writebuf_len); \ if (*error_code != MPI_SUCCESS) { \ *error_code = MPIO_Err_create_code(*error_code, \ @@ -35,7 +35,7 @@ writebuf_len = (unsigned) ADIOI_MIN(end_offset - writebuf_off + 1, \ (writebuf_off / stripe_size + 1) * \ stripe_size - writebuf_off); \ - if (!(fd->atomicity)) \ + if (!fd->atomicity && fd->hints->ds_write == ADIOI_HINT_DISABLE) \ ADIOI_WRITE_LOCK(fd, writebuf_off, SEEK_SET, writebuf_len); \ ADIO_ReadContig(fd, writebuf, writebuf_len, MPI_BYTE, \ ADIO_EXPLICIT_OFFSET, \ @@ -58,7 +58,7 @@ while (write_sz != req_len) { \ ADIO_WriteContig(fd, writebuf, writebuf_len, MPI_BYTE, \ ADIO_EXPLICIT_OFFSET, writebuf_off, &status1, error_code); \ - if (!(fd->atomicity)) \ + if (!fd->atomicity && fd->hints->ds_write == ADIOI_HINT_DISABLE) \ ADIOI_UNLOCK(fd, writebuf_off, SEEK_SET, writebuf_len); \ if (*error_code != MPI_SUCCESS) { \ *error_code = MPIO_Err_create_code(*error_code, \ @@ -75,7 +75,7 @@ writebuf_len = (unsigned) ADIOI_MIN(end_offset - writebuf_off + 1, \ (writebuf_off / stripe_size + 1) * \ stripe_size - writebuf_off); \ - if (!(fd->atomicity)) \ + if (!fd->atomicity && fd->hints->ds_write == ADIOI_HINT_DISABLE) \ ADIOI_WRITE_LOCK(fd, writebuf_off, SEEK_SET, writebuf_len); \ ADIO_ReadContig(fd, writebuf, writebuf_len, MPI_BYTE, \ ADIO_EXPLICIT_OFFSET, \ @@ -221,8 +221,9 @@ writebuf_off = 0; writebuf_len = 0; - /* if atomicity is true, lock the region to be accessed */ - if (fd->atomicity) + /* if atomicity is true or data sieving is not disable, lock the region + * to be accessed */ + if (fd->atomicity || fd->hints->ds_write != ADIOI_HINT_DISABLE) ADIOI_WRITE_LOCK(fd, start_off, SEEK_SET, bufsize); for (j = 0; j < count; j++) { @@ -241,7 +242,7 @@ ADIO_EXPLICIT_OFFSET, writebuf_off, &status1, error_code); - if (fd->atomicity) + if (fd->atomicity || fd->hints->ds_write != ADIOI_HINT_DISABLE) ADIOI_UNLOCK(fd, start_off, SEEK_SET, bufsize); if (*error_code != MPI_SUCCESS) { ADIOI_Free(writebuf); @@ -325,9 +326,13 @@ userbuf_off = 0; ADIOI_BUFFERED_WRITE_WITHOUT_READ /* write the buffer out finally */ + if (fd->hints->ds_write != ADIOI_HINT_DISABLE) + ADIOI_WRITE_LOCK(fd, writebuf_off, SEEK_SET, writebuf_len); ADIO_WriteContig(fd, writebuf, writebuf_len, MPI_BYTE, ADIO_EXPLICIT_OFFSET, writebuf_off, &status1, error_code); + if (fd->hints->ds_write != ADIOI_HINT_DISABLE) + ADIOI_UNLOCK(fd, writebuf_off, SEEK_SET, writebuf_len); if (file_ptr_type == ADIO_INDIVIDUAL) { /* update MPI-IO file pointer to point to the first byte @@ -378,8 +383,9 @@ fwr_size = ADIOI_MIN(flat_file->blocklens[j], bufsize-i_offset); } -/* if atomicity is true, lock the region to be accessed */ - if (fd->atomicity) + /* if atomicity is true or data sieving is not disable, lock the region + * to be accessed */ + if (fd->atomicity || fd->hints->ds_write != ADIOI_HINT_DISABLE) ADIOI_WRITE_LOCK(fd, start_off, SEEK_SET, end_offset-start_off+1); writebuf_off = 0; @@ -502,11 +508,11 @@ ADIO_WriteContig(fd, writebuf, writebuf_len, MPI_BYTE, ADIO_EXPLICIT_OFFSET, writebuf_off, &status1, error_code); - if (!(fd->atomicity)) + if (!fd->atomicity && fd->hints->ds_write == ADIOI_HINT_DISABLE) ADIOI_UNLOCK(fd, writebuf_off, SEEK_SET, writebuf_len); if (*error_code != MPI_SUCCESS) return; } - if (fd->atomicity) + if (fd->atomicity || fd->hints->ds_write != ADIOI_HINT_DISABLE) ADIOI_UNLOCK(fd, start_off, SEEK_SET, end_offset-start_off+1); ADIOI_Free(writebuf); diff -Nru openmpi-4.0.3/ompi/mca/io/romio321/romio/adio/common/ad_darray.c openmpi-4.1.4/ompi/mca/io/romio321/romio/adio/common/ad_darray.c --- openmpi-4.0.3/ompi/mca/io/romio321/romio/adio/common/ad_darray.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/romio321/romio/adio/common/ad_darray.c 2022-05-29 09:51:40.000000000 +0000 @@ -199,6 +199,13 @@ /* in terms of no. of elements of type oldtype in this dimension */ if (mysize == 0) *st_offset = 0; + MPI_Aint ex; + MPI_Type_extent(type_old, &ex); + MPI_Datatype type_tmp; + MPI_Type_create_resized(*type_new, 0, array_of_gsizes[dim] * ex, &type_tmp); + MPI_Type_free(type_new); + *type_new = type_tmp; + return MPI_SUCCESS; } @@ -287,5 +294,12 @@ if (local_size == 0) *st_offset = 0; + MPI_Aint ex; + MPI_Type_extent(type_old, &ex); + MPI_Datatype type_tmp2; + MPI_Type_create_resized(*type_new, 0, array_of_gsizes[dim] * ex, &type_tmp2); + MPI_Type_free(type_new); + *type_new = type_tmp2; + return MPI_SUCCESS; } diff -Nru openmpi-4.0.3/ompi/mca/io/romio321/romio/adio/common/ad_fstype.c openmpi-4.1.4/ompi/mca/io/romio321/romio/adio/common/ad_fstype.c --- openmpi-4.0.3/ompi/mca/io/romio321/romio/adio/common/ad_fstype.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/romio321/romio/adio/common/ad_fstype.c 2022-05-29 09:51:40.000000000 +0000 @@ -343,7 +343,7 @@ *fstype = ADIO_NFS; return; } -# endif +# else #ifdef ROMIO_GPFS @@ -423,6 +423,7 @@ myname, __LINE__, MPI_ERR_NO_SUCH_FILE, "**filename", "**filename %s", filename); /* --END ERROR HANDLING-- */ +# endif /* no fstypename */ #endif /* STATFS APPROACH */ #ifdef ROMIO_HAVE_STRUCT_STAT_WITH_ST_FSTYPE diff -Nru openmpi-4.0.3/ompi/mca/io/romio321/romio/adio/common/ad_write_str.c openmpi-4.1.4/ompi/mca/io/romio321/romio/adio/common/ad_write_str.c --- openmpi-4.0.3/ompi/mca/io/romio321/romio/adio/common/ad_write_str.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/romio321/romio/adio/common/ad_write_str.c 2022-05-29 09:51:40.000000000 +0000 @@ -14,7 +14,8 @@ if (writebuf_len) { \ ADIO_WriteContig(fd, writebuf, writebuf_len, MPI_BYTE, \ ADIO_EXPLICIT_OFFSET, writebuf_off, &status1, error_code); \ - if (!(fd->atomicity)) ADIOI_UNLOCK(fd, writebuf_off, SEEK_SET, writebuf_len); \ + if (!fd->atomicity && fd->hints->ds_write == ADIOI_HINT_DISABLE) \ + ADIOI_UNLOCK(fd, writebuf_off, SEEK_SET, writebuf_len); \ if (*error_code != MPI_SUCCESS) { \ *error_code = MPIO_Err_create_code(*error_code, \ MPIR_ERR_RECOVERABLE, myname, \ @@ -25,7 +26,8 @@ } \ writebuf_off = req_off; \ writebuf_len = (unsigned) (ADIOI_MIN(max_bufsize,end_offset-writebuf_off+1));\ - if (!(fd->atomicity)) ADIOI_WRITE_LOCK(fd, writebuf_off, SEEK_SET, writebuf_len); \ + if (!fd->atomicity && fd->hints->ds_write == ADIOI_HINT_DISABLE) \ + ADIOI_WRITE_LOCK(fd, writebuf_off, SEEK_SET, writebuf_len); \ ADIO_ReadContig(fd, writebuf, writebuf_len, MPI_BYTE, \ ADIO_EXPLICIT_OFFSET, writebuf_off, &status1, error_code); \ if (*error_code != MPI_SUCCESS) { \ @@ -42,7 +44,8 @@ while (write_sz != req_len) { \ ADIO_WriteContig(fd, writebuf, writebuf_len, MPI_BYTE, \ ADIO_EXPLICIT_OFFSET, writebuf_off, &status1, error_code); \ - if (!(fd->atomicity)) ADIOI_UNLOCK(fd, writebuf_off, SEEK_SET, writebuf_len); \ + if (!fd->atomicity && fd->hints->ds_write == ADIOI_HINT_DISABLE) \ + ADIOI_UNLOCK(fd, writebuf_off, SEEK_SET, writebuf_len); \ if (*error_code != MPI_SUCCESS) { \ *error_code = MPIO_Err_create_code(*error_code, \ MPIR_ERR_RECOVERABLE, myname, \ @@ -54,7 +57,8 @@ userbuf_off += write_sz; \ writebuf_off += writebuf_len; \ writebuf_len = (unsigned) (ADIOI_MIN(max_bufsize,end_offset-writebuf_off+1));\ - if (!(fd->atomicity)) ADIOI_WRITE_LOCK(fd, writebuf_off, SEEK_SET, writebuf_len); \ + if (!fd->atomicity && fd->hints->ds_write == ADIOI_HINT_DISABLE) \ + ADIOI_WRITE_LOCK(fd, writebuf_off, SEEK_SET, writebuf_len); \ ADIO_ReadContig(fd, writebuf, writebuf_len, MPI_BYTE, \ ADIO_EXPLICIT_OFFSET, writebuf_off, &status1, error_code); \ if (*error_code != MPI_SUCCESS) { \ @@ -191,9 +195,10 @@ writebuf = (char *) ADIOI_Malloc(max_bufsize); writebuf_len = (unsigned) (ADIOI_MIN(max_bufsize, end_offset-writebuf_off+1)); -/* if atomicity is true, lock the region to be accessed */ - if (fd->atomicity) - ADIOI_WRITE_LOCK(fd, start_off, SEEK_SET, end_offset-start_off+1); + /* if atomicity is true or data sieving is not disable, lock the region + * to be accessed */ + if (fd->atomicity || fd->hints->ds_write != ADIOI_HINT_DISABLE) + ADIOI_WRITE_LOCK(fd, start_off, SEEK_SET, end_offset - start_off + 1); for (j=0; jatomicity) + if (fd->atomicity || fd->hints->ds_write != ADIOI_HINT_DISABLE) ADIOI_UNLOCK(fd, start_off, SEEK_SET, end_offset-start_off+1); if (*error_code != MPI_SUCCESS) goto fn_exit; @@ -287,8 +292,10 @@ * datatypes, instead of a count of bytes (which might overflow) * Other WriteContig calls in this path are operating on data * sieving buffer */ + ADIOI_WRITE_LOCK(fd, offset, SEEK_SET, bufsize); ADIO_WriteContig(fd, buf, count, datatype, ADIO_EXPLICIT_OFFSET, offset, status, error_code); + ADIOI_UNLOCK(fd, offset, SEEK_SET, bufsize); if (file_ptr_type == ADIO_INDIVIDUAL) { /* update MPI-IO file pointer to point to the first byte @@ -338,9 +345,10 @@ fwr_size = ADIOI_MIN(flat_file->blocklens[j], bufsize-i_offset); } -/* if atomicity is true, lock the region to be accessed */ - if (fd->atomicity) - ADIOI_WRITE_LOCK(fd, start_off, SEEK_SET, end_offset-start_off+1); + /* if atomicity is true or data sieving is not disable, lock the region + * to be accessed */ + if (fd->atomicity || fd->hints->ds_write != ADIOI_HINT_DISABLE) + ADIOI_WRITE_LOCK(fd, start_off, SEEK_SET, end_offset - start_off + 1); writebuf_off = 0; writebuf_len = 0; @@ -460,11 +468,11 @@ if (writebuf_len) { ADIO_WriteContig(fd, writebuf, writebuf_len, MPI_BYTE, ADIO_EXPLICIT_OFFSET, writebuf_off, &status1, error_code); - if (!(fd->atomicity)) + if (!fd->atomicity && fd->hints->ds_write == ADIOI_HINT_DISABLE) ADIOI_UNLOCK(fd, writebuf_off, SEEK_SET, writebuf_len); if (*error_code != MPI_SUCCESS) goto fn_exit; } - if (fd->atomicity) + if (fd->atomicity || fd->hints->ds_write != ADIOI_HINT_DISABLE) ADIOI_UNLOCK(fd, start_off, SEEK_SET, end_offset-start_off+1); if (file_ptr_type == ADIO_INDIVIDUAL) fd->fp_ind = off; diff -Nru openmpi-4.0.3/ompi/mca/io/romio321/romio/adio/common/flatten.c openmpi-4.1.4/ompi/mca/io/romio321/romio/adio/common/flatten.c --- openmpi-4.0.3/ompi/mca/io/romio321/romio/adio/common/flatten.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/romio321/romio/adio/common/flatten.c 2022-05-29 09:51:40.000000000 +0000 @@ -98,6 +98,33 @@ return rc; } +/* + * I don't really expect this to ever trigger, but without the below safety + * valve, the design relies on the Count function coming out >= whatever + * the Flatten function comes up with. There are enough differences between + * the two that it's hard to be positive this will always be true. So every + * time something's added to flat's arrays, let's make sure they're big enough + * and re-alloc if not. + */ +static void flatlist_node_grow(ADIOI_Flatlist_node * flat, int idx) +{ + if (idx >= flat->count) { + ADIO_Offset *new_blocklens; + ADIO_Offset *new_indices; + int new_count = (flat->count * 1.25 + 4); + new_blocklens = (ADIO_Offset *) ADIOI_Calloc(new_count * 2, sizeof(ADIO_Offset)); + new_indices = new_blocklens + new_count; + if (flat->count) { + memcpy(new_blocklens, flat->blocklens, flat->count * sizeof(ADIO_Offset)); + memcpy(new_indices, flat->indices, flat->count * sizeof(ADIO_Offset)); + ADIOI_Free(flat->blocklens); + } + flat->blocklens = new_blocklens; + flat->indices = new_indices; + flat->count = new_count; + } +} + void ADIOI_Optimize_flattened(ADIOI_Flatlist_node *flat_type); /* flatten datatype and add it to Flatlist */ void ADIOI_Flatten_datatype(MPI_Datatype datatype) @@ -168,6 +195,16 @@ DBG_FPRINTF(stderr,"ADIOI_Flatten_datatype:: ADIOI_Flatten\n"); #endif +/* + * Setting flat->count to curr_index, since curr_index is the most fundamentally + * correct updated value that represents what's in the indices/blocklens arrays. + * It would be nice if the counter function and the flatten function were in sync, + * but the numerous cases that decrement flat->count in the flatten function show + * that syncing them is a hack, and as long as the counter doesn't under-count + * it's good enough. + */ + flat->count = curr_index; + ADIOI_Optimize_flattened(flat); #endif /* debug */ @@ -318,6 +355,7 @@ if (prev_index == *curr_index) { /* simplest case, made up of basic or contiguous types */ j = *curr_index; + flatlist_node_grow(flat, j); flat->indices[j] = st_offset; MPI_Type_size_x(types[0], &old_size); flat->blocklens[j] = top_count * old_size; @@ -335,6 +373,7 @@ MPI_Type_get_extent(types[0], &lb, &old_extent); for (m=1; mindices[j] = flat->indices[j-num] + ADIOI_AINT_CAST_TO_OFFSET old_extent; flat->blocklens[j] = flat->blocklens[j-num]; #ifdef FLATTEN_DEBUG @@ -366,10 +405,12 @@ avoid >2G integer arithmetic problems */ ADIO_Offset blocklength = ints[1], stride = ints[2]; j = *curr_index; + flatlist_node_grow(flat, j); flat->indices[j] = st_offset; MPI_Type_size_x(types[0], &old_size); flat->blocklens[j] = blocklength * old_size; for (i=j+1; iindices[i] = flat->indices[i-1] + stride * old_size; flat->blocklens[i] = flat->blocklens[j]; } @@ -389,6 +430,7 @@ MPI_Type_get_extent(types[0], &lb, &old_extent); for (m=1; mindices[j] = flat->indices[j-num] + ADIOI_AINT_CAST_TO_OFFSET old_extent; flat->blocklens[j] = flat->blocklens[j-num]; j++; @@ -400,6 +442,7 @@ num = *curr_index - prev_index; for (i=1; iindices[j] = flat->indices[j-num] + stride * ADIOI_AINT_CAST_TO_OFFSET old_extent; flat->blocklens[j] = flat->blocklens[j-num]; j++; @@ -429,10 +472,12 @@ avoid >2G integer arithmetic problems */ ADIO_Offset blocklength = ints[1]; j = *curr_index; + flatlist_node_grow(flat, j); flat->indices[j] = st_offset; MPI_Type_size_x(types[0], &old_size); flat->blocklens[j] = blocklength * old_size; for (i=j+1; iindices[i] = flat->indices[i-1] + adds[0]; flat->blocklens[i] = flat->blocklens[j]; } @@ -452,6 +497,7 @@ MPI_Type_get_extent(types[0], &lb, &old_extent); for (m=1; mindices[j] = flat->indices[j-num] + ADIOI_AINT_CAST_TO_OFFSET old_extent; flat->blocklens[j] = flat->blocklens[j-num]; j++; @@ -463,6 +509,7 @@ num = *curr_index - prev_index; for (i=1; iindices[j] = flat->indices[j-num] + adds[0]; flat->blocklens[j] = flat->blocklens[j-num]; j++; @@ -500,16 +547,15 @@ avoid >2G integer arithmetic problems */ ADIO_Offset blocklength = ints[1+i-j], stride = ints[top_count+1+i-j]; if (blocklength > 0) { + flatlist_node_grow(flat, nonzeroth); flat->indices[nonzeroth] = st_offset + stride* ADIOI_AINT_CAST_TO_OFFSET old_extent; flat->blocklens[nonzeroth] = blocklength* ADIOI_AINT_CAST_TO_OFFSET old_extent; nonzeroth++; - } else { - flat->count--; /* don't count/consider any zero-length blocklens */ } } - *curr_index = i; + *curr_index = nonzeroth; } else { /* indexed type made up of noncontiguous derived types */ @@ -523,14 +569,13 @@ for (m=1; mblocklens[j-num] > 0) { + flatlist_node_grow(flat, nonzeroth); flat->indices[nonzeroth] = flat->indices[nonzeroth-num] + ADIOI_AINT_CAST_TO_OFFSET old_extent; flat->blocklens[nonzeroth] = flat->blocklens[nonzeroth-num]; j++; nonzeroth++; - } else { - flat->count --; } } } @@ -545,26 +590,24 @@ avoid >2G integer arithmetic problems */ ADIO_Offset stride = ints[top_count+1+i]-ints[top_count+i]; if (flat->blocklens[j-num] > 0 ) { + flatlist_node_grow(flat, nonzeroth); flat->indices[nonzeroth] = flat->indices[j-num] + stride* ADIOI_AINT_CAST_TO_OFFSET old_extent; flat->blocklens[nonzeroth] = flat->blocklens[j-num]; j++; nonzeroth++; - } else { - flat->count--; } } *curr_index = j; for (m=1; mblocklens[j-basic_num] > 0) { + flatlist_node_grow(flat, nonzeroth); flat->indices[nonzeroth] = flat->indices[j-basic_num] + ADIOI_AINT_CAST_TO_OFFSET old_extent; flat->blocklens[nonzeroth] = flat->blocklens[j-basic_num]; j++; nonzeroth++; - } else { - flat->count --; } } } @@ -611,9 +654,11 @@ avoid >2G integer arithmetic problems */ ADIO_Offset blocklength = ints[1]; if (is_hindexed_block) { + flatlist_node_grow(flat, i); flat->indices[i] = st_offset + adds[i-j]; } else { ADIO_Offset stride = ints[1+1+i-j]; + flatlist_node_grow(flat, i); flat->indices[i] = st_offset + stride* ADIOI_AINT_CAST_TO_OFFSET old_extent; } @@ -636,6 +681,7 @@ * extent of a type */ MPI_Type_get_extent(types[0], &lb, &old_extent); } + flatlist_node_grow(flat, j); flat->indices[j] = flat->indices[j-num] + ADIOI_AINT_CAST_TO_OFFSET old_extent; flat->blocklens[j] = flat->blocklens[j-num]; @@ -649,12 +695,14 @@ for (i=1; iindices[j] = flat->indices[j-num] + adds[i] - adds[i-1]; } else { /* By using ADIO_Offset we preserve +/- sign and avoid >2G integer arithmetic problems */ ADIO_Offset stride = ints[2+i]-ints[1+i]; + flatlist_node_grow(flat, j); flat->indices[j] = flat->indices[j-num] + stride* ADIOI_AINT_CAST_TO_OFFSET old_extent; } @@ -691,14 +739,13 @@ /* By using ADIO_Offset we preserve +/- sign and avoid >2G integer arithmetic problems */ ADIO_Offset blocklength = ints[1+i-j]; + flatlist_node_grow(flat, nonzeroth); flat->indices[nonzeroth] = st_offset + adds[i-j]; flat->blocklens[nonzeroth] = blocklength*old_size; nonzeroth++; - } else { - flat->count--; } } - *curr_index = i; + *curr_index = nonzeroth; } else { /* indexed type made up of noncontiguous derived types */ @@ -713,13 +760,12 @@ for (m=1; mblocklens[j-num] > 0) { + flatlist_node_grow(flat, nonzeroth); flat->indices[nonzeroth] = flat->indices[j-num] + ADIOI_AINT_CAST_TO_OFFSET old_extent; flat->blocklens[nonzeroth] = flat->blocklens[j-num]; j++; nonzeroth++; - } else { - flat->count--; } } } @@ -731,19 +777,19 @@ prev_index = *curr_index; for (m=0, nonzeroth=j; mblocklens[j-num] > 0) { + flatlist_node_grow(flat, nonzeroth); flat->indices[nonzeroth] = flat->indices[j-num] + adds[i] - adds[i-1]; flat->blocklens[nonzeroth] = flat->blocklens[j-num]; j++; nonzeroth++; - } else { - flat->count--; } } *curr_index = j; for (m=1; mblocklens[j-basic_num] >0) { + flatlist_node_grow(flat, nonzeroth); flat->indices[nonzeroth] = flat->indices[j-basic_num] + ADIOI_AINT_CAST_TO_OFFSET old_extent; flat->blocklens[nonzeroth] = flat->blocklens[j-basic_num]; @@ -779,6 +825,7 @@ if (ints[1+n] > 0) { ADIO_Offset blocklength = ints[1+n]; j = *curr_index; + flatlist_node_grow(flat, j); flat->indices[j] = st_offset + adds[n]; MPI_Type_size_x(types[n], &old_size); flat->blocklens[j] = blocklength * old_size; @@ -798,6 +845,7 @@ MPI_Type_get_extent(types[n], &lb, &old_extent); for (m=1; mindices[j] = flat->indices[j-num] + ADIOI_AINT_CAST_TO_OFFSET old_extent; flat->blocklens[j] = flat->blocklens[j-num]; @@ -827,6 +875,7 @@ * bound based on the inner type, but the lower bound based on the * upper type. check both lb and ub to prevent mixing updates */ if (flat->lb_idx == -1 && flat->ub_idx == -1) { + flatlist_node_grow(flat, j); flat->indices[j] = st_offset + adds[0]; /* this zero-length blocklens[] element, unlike eleswhere in the * flattening code, is correct and is used to indicate a lower bound @@ -843,7 +892,6 @@ } else { /* skipped over this chunk because something else higher-up in the * type construction set this for us already */ - flat->count--; st_offset -= adds[0]; } @@ -859,6 +907,7 @@ else { /* current type is basic or contiguous */ j = *curr_index; + flatlist_node_grow(flat, j); flat->indices[j] = st_offset; MPI_Type_size_x(types[0], &old_size); flat->blocklens[j] = old_size; @@ -874,6 +923,7 @@ /* see note above about mixing updates for why we check lb and ub */ if ((flat->lb_idx == -1 && flat->ub_idx == -1) || lb_updated) { j = *curr_index; + flatlist_node_grow(flat, j); flat->indices[j] = st_offset + adds[0] + adds[1]; /* again, zero-element ok: an upper-bound marker explicitly set by the * constructor of this resized type */ @@ -882,7 +932,6 @@ } else { /* skipped over this chunk because something else higher-up in the * type construction set this for us already */ - flat->count--; (*curr_index)--; } diff -Nru openmpi-4.0.3/ompi/mca/io/romio321/romio/confdb/config.guess openmpi-4.1.4/ompi/mca/io/romio321/romio/confdb/config.guess --- openmpi-4.0.3/ompi/mca/io/romio321/romio/confdb/config.guess 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/romio321/romio/confdb/config.guess 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2021 Free Software Foundation, Inc. -timestamp='2014-11-04' +timestamp='2021-01-25' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -27,19 +27,19 @@ # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess # # Please send patches to . -me=`echo "$0" | sed -e 's,.*/,,'` +me=$(echo "$0" | sed -e 's,.*/,,') usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -50,7 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -84,8 +84,6 @@ exit 1 fi -trap 'exit 1' 1 2 15 - # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a @@ -96,66 +94,89 @@ # Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039 + { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$driver" + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then +if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown +UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown +UNAME_RELEASE=$( (uname -r) 2>/dev/null) || UNAME_RELEASE=unknown +UNAME_SYSTEM=$( (uname -s) 2>/dev/null) || UNAME_SYSTEM=unknown +UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in +case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu + LIBC=unknown - eval $set_cc_for_build - cat <<-EOF > $dummy.c + set_cc_for_build + cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc - #else + #elif defined(__GLIBC__) LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -167,22 +188,32 @@ # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)) + case "$UNAME_MACHINE_ARCH" in + aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + earmv*) + arch=$(echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,') + endian=$(echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p') + machine="${arch}${endian}"-unknown + ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -197,117 +228,137 @@ os=netbsd ;; esac + # Determine ABI tags. + case "$UNAME_MACHINE_ARCH" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=$(echo "$UNAME_MACHINE_ARCH" | sed -e "$expr") + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=$(echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2) ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "$machine-${os}${release}${abi-}" exit ;; *:Bitrig:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//') + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//') + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//') + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" exit ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" + exit ;; + *:OS108:*:*) + echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:Sortix:*:*) + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Twizzler:*:*) + echo "$UNAME_MACHINE"-unknown-twizzler + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $3}') ;; *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $4}') ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + ALPHA_CPU_TYPE=$(/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1) case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + echo "$UNAME_MACHINE"-dec-osf"$(echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos + echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos + echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition @@ -319,7 +370,7 @@ echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} + echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos @@ -329,7 +380,7 @@ exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then + if test "$( (/bin/universe) 2>/dev/null)" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd @@ -342,69 +393,69 @@ echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in + case $(/usr/bin/uname -p) in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$UNAME_MACHINE"-ibm-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" exit ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-hal-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} + echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" + set_cc_for_build + SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then - SUN_ARCH="x86_64" + SUN_ARCH=x86_64 fi fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$SUN_ARCH"-pc-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris3"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" exit ;; sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in + case "$(/usr/bin/arch -k)" in Series*|S4*) - UNAME_RELEASE=`uname -v` + UNAME_RELEASE=$(uname -v) ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + echo sparc-sun-sunos"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/')" exit ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" exit ;; sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in + UNAME_RELEASE=$( (sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null) + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case "$(/bin/arch)" in sun3) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" ;; sun4) - echo sparc-sun-sunos${UNAME_RELEASE} + echo sparc-sun-sunos"$UNAME_RELEASE" ;; esac exit ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} + echo sparc-auspex-sunos"$UNAME_RELEASE" exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not @@ -415,44 +466,44 @@ # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} + echo m68k-milan-mint"$UNAME_RELEASE" exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} + echo m68k-hades-mint"$UNAME_RELEASE" exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} + echo m68k-unknown-mint"$UNAME_RELEASE" exit ;; m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} + echo m68k-apple-machten"$UNAME_RELEASE" exit ;; powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} + echo powerpc-apple-machten"$UNAME_RELEASE" exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} + echo mips-dec-ultrix"$UNAME_RELEASE" exit ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} + echo vax-dec-ultrix"$UNAME_RELEASE" exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} + echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { @@ -461,23 +512,23 @@ #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=$(echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p') && + SYSTEM_NAME=$("$dummy" "$dummyarg") && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} + echo mips-mips-riscos"$UNAME_RELEASE" exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax @@ -502,18 +553,18 @@ exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + UNAME_PROCESSOR=$(/usr/bin/uname -p) + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x then - echo m88k-dg-dgux${UNAME_RELEASE} + echo m88k-dg-dgux"$UNAME_RELEASE" else - echo m88k-dg-dguxbcs${UNAME_RELEASE} + echo m88k-dg-dguxbcs"$UNAME_RELEASE" fi else - echo i586-dg-dgux${UNAME_RELEASE} + echo i586-dg-dgux"$UNAME_RELEASE" fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) @@ -530,26 +581,26 @@ echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + echo mips-sgi-irix"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/g')" exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + exit ;; # Note that: echo "'$(uname -s)'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if test -x /usr/bin/oslevel ; then + IBM_REV=$(/usr/bin/oslevel) else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #include main() @@ -560,7 +611,7 @@ exit(0); } EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") then echo "$SYSTEM_NAME" else @@ -573,28 +624,28 @@ fi exit ;; *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_CPU_ID=$(/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }') + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi - if [ -x /usr/bin/lslpp ] ; then - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | - awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + if test -x /usr/bin/lslpp ; then + IBM_REV=$(/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/) else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx @@ -609,28 +660,28 @@ echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; + HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + if test -x /usr/bin/getconf; then + sc_cpu_version=$(/usr/bin/getconf SC_CPU_VERSION 2>/dev/null) + sc_kernel_bits=$(/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null) + case "$sc_cpu_version" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + case "$sc_kernel_bits" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include @@ -663,13 +714,13 @@ exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=$("$dummy") test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if test "$HP_ARCH" = hppa2.0w then - eval $set_cc_for_build + set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -680,23 +731,23 @@ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" exit ;; ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} + HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') + echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #include int main () @@ -721,11 +772,11 @@ exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) @@ -734,17 +785,17 @@ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk + if test -x /usr/sbin/sysversion ; then + echo "$UNAME_MACHINE"-unknown-osf1mk else - echo ${UNAME_MACHINE}-unknown-osf1 + echo "$UNAME_MACHINE"-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) @@ -769,130 +820,123 @@ echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + FUJITSU_PROC=$(uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz) + FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') + FUJITSU_REL=$(echo "$UNAME_RELEASE" | sed -e 's/ /_/') echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') + FUJITSU_REL=$(echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/') echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" exit ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} + echo sparc-unknown-bsdi"$UNAME_RELEASE" exit ;; *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" + exit ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=$(uname -p) + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabi + else + echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabihf + fi exit ;; *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in + UNAME_PROCESSOR=$(/usr/bin/uname -p) + case "$UNAME_PROCESSOR" in amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" exit ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin + echo "$UNAME_MACHINE"-pc-cygwin exit ;; *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 + echo "$UNAME_MACHINE"-pc-mingw64 exit ;; *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 + echo "$UNAME_MACHINE"-pc-mingw32 exit ;; *:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 + echo "$UNAME_MACHINE"-pc-msys exit ;; i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 + echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case "$UNAME_MACHINE" in x86) - echo i586-pc-interix${UNAME_RELEASE} + echo i586-pc-interix"$UNAME_RELEASE" exit ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} + echo x86_64-unknown-interix"$UNAME_RELEASE" exit ;; IA64) - echo ia64-unknown-interix${UNAME_RELEASE} + echo ia64-unknown-interix"$UNAME_RELEASE" exit ;; esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin + echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin + echo x86_64-pc-cygwin exit ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo powerpcle-unknown-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo "$(echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,')-unknown-$LIBC$(echo "$UNAME_RELEASE"|sed -e 's,/.*$,,')" exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo "$UNAME_MACHINE-unknown-$(echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]")$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')-$LIBC" exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix + *:Minix:*:*) + echo "$UNAME_MACHINE"-unknown-minix exit ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + case $(sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null) in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; @@ -902,129 +946,182 @@ EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) - eval $set_cc_for_build + set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + e2k:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + k1om:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el + MIPS_ENDIAN=el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} + MIPS_ENDIAN= #else - CPU= + MIPS_ENDIAN= #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI')" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; + mips64el:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-${LIBC} + echo or1k-unknown-linux-"$LIBC" exit ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} + echo sparc-unknown-linux-"$LIBC" exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} + echo hppa64-unknown-linux-"$LIBC" exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; + case $(grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2) in + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} + echo powerpc64-unknown-linux-"$LIBC" exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} + echo powerpc-unknown-linux-"$LIBC" exit ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} + echo powerpc64le-unknown-linux-"$LIBC" exit ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} + echo powerpcle-unknown-linux-"$LIBC" + exit ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI="$LIBC"x32 + fi + fi + echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI" exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1038,51 +1135,51 @@ # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx + echo "$UNAME_MACHINE"-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop + echo "$UNAME_MACHINE"-unknown-stop exit ;; i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos + echo "$UNAME_MACHINE"-unknown-atheos exit ;; i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable + echo "$UNAME_MACHINE"-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} + echo i386-unknown-lynxos"$UNAME_RELEASE" exit ;; i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp + echo "$UNAME_MACHINE"-pc-msdosdjgpp exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + i*86:*:4.*:*) + UNAME_REL=$(echo "$UNAME_RELEASE" | sed 's/\/MP$//') if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in + case $(/bin/uname -X | grep "^Machine") in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + UNAME_REL=$( (/bin/uname -X|grep Release|sed -e 's/.*= //')) (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 @@ -1090,9 +1187,9 @@ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv32 + echo "$UNAME_MACHINE"-pc-sysv32 fi exit ;; pc:*:*:*) @@ -1100,7 +1197,7 @@ # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that + # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; @@ -1112,9 +1209,9 @@ exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) @@ -1132,41 +1229,41 @@ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} + echo m68k-unknown-lynxos"$UNAME_RELEASE" exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} + echo sparc-unknown-lynxos"$UNAME_RELEASE" exit ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} + echo rs6000-unknown-lynxos"$UNAME_RELEASE" exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} + echo powerpc-unknown-lynxos"$UNAME_RELEASE" exit ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} + echo mips-dde-sysv"$UNAME_RELEASE" exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 @@ -1176,8 +1273,8 @@ exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 + UNAME_MACHINE=$( (uname -p) 2>/dev/null) + echo "$UNAME_MACHINE"-sni-sysv4 else echo ns32k-sni-sysv fi @@ -1197,23 +1294,23 @@ exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos + echo "$UNAME_MACHINE"-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} + echo m68k-apple-aux"$UNAME_RELEASE" exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + if test -d /usr/nec; then + echo mips-nec-sysv"$UNAME_RELEASE" else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv"$UNAME_RELEASE" fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. @@ -1232,77 +1329,97 @@ echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} + echo sx4-nec-superux"$UNAME_RELEASE" exit ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} + echo sx5-nec-superux"$UNAME_RELEASE" exit ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} + echo sx6-nec-superux"$UNAME_RELEASE" exit ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} + echo sx7-nec-superux"$UNAME_RELEASE" exit ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} + echo sx8-nec-superux"$UNAME_RELEASE" exit ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} + echo sx8r-nec-superux"$UNAME_RELEASE" + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux"$UNAME_RELEASE" exit ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} + echo powerpc-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" + exit ;; + arm64:Darwin:*:*) + echo aarch64-apple-darwin"$UNAME_RELEASE" exit ;; *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc - fi - if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi + UNAME_PROCESSOR=$(uname -p) + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc fi elif test "$UNAME_PROCESSOR" = i386 ; then - # Avoid executing cc on OS X 10.9, as it ships with a stub - # that puts up a graphical alert prompting to install - # developer tools. Any system running Mac OS X 10.7 or - # later (Darwin 11 and later) is required to have a 64-bit - # processor. This is not true of the ARM version of Darwin - # that Apple uses in portable devices. - UNAME_PROCESSOR=x86_64 + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=$(uname -p) + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; - NEO-?:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" exit ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} + echo nse-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux @@ -1311,18 +1428,19 @@ echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + # shellcheck disable=SC2154 + if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi - echo ${UNAME_MACHINE}-unknown-plan9 + echo "$UNAME_MACHINE"-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 @@ -1343,14 +1461,14 @@ echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux"$UNAME_RELEASE" exit ;; *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + echo "$UNAME_MACHINE"-unknown-dragonfly"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" exit ;; *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in + UNAME_MACHINE=$( (uname -p) 2>/dev/null) + case "$UNAME_MACHINE" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; @@ -1359,62 +1477,223 @@ echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + echo "$UNAME_MACHINE"-pc-skyos"$(echo "$UNAME_RELEASE" | sed -e 's/ .*$//')" exit ;; i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos + echo "$UNAME_MACHINE"-pc-rdos exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros + *:AROS:*:*) + echo "$UNAME_MACHINE"-unknown-aros exit ;; x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx + echo "$UNAME_MACHINE"-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; + *:Unleashed:*:*) + echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" exit ;; esac +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=$( (hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null); + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=$($dummy) && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 < in order to provide the needed -information to handle your system. +year=$(echo $timestamp | sed 's,-.*,,') +# shellcheck disable=SC2003 +if test "$(expr "$(date +%Y)" - "$year")" -lt 3 ; then + cat >&2 </dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} +uname -m = $( (uname -m) 2>/dev/null || echo unknown) +uname -r = $( (uname -r) 2>/dev/null || echo unknown) +uname -s = $( (uname -s) 2>/dev/null || echo unknown) +uname -v = $( (uname -v) 2>/dev/null || echo unknown) + +/usr/bin/uname -p = $( (/usr/bin/uname -p) 2>/dev/null) +/bin/uname -X = $( (/bin/uname -X) 2>/dev/null) + +hostinfo = $( (hostinfo) 2>/dev/null) +/bin/universe = $( (/bin/universe) 2>/dev/null) +/usr/bin/arch -k = $( (/usr/bin/arch -k) 2>/dev/null) +/bin/arch = $( (/bin/arch) 2>/dev/null) +/usr/bin/oslevel = $( (/usr/bin/oslevel) 2>/dev/null) +/usr/convex/getsysinfo = $( (/usr/convex/getsysinfo) 2>/dev/null) + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" EOF +fi exit 1 # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff -Nru openmpi-4.0.3/ompi/mca/io/romio321/romio/confdb/config.sub openmpi-4.1.4/ompi/mca/io/romio321/romio/confdb/config.sub --- openmpi-4.0.3/ompi/mca/io/romio321/romio/confdb/config.sub 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/romio321/romio/confdb/config.sub 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2021 Free Software Foundation, Inc. -timestamp='2014-12-03' +timestamp='2021-01-08' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -33,7 +33,7 @@ # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -50,15 +50,14 @@ # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. -me=`echo "$0" | sed -e 's,.*/,,'` +me=$(echo "$0" | sed -e 's,.*/,,') usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -68,7 +67,7 @@ version="\ GNU config.sub ($timestamp) -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -90,12 +89,12 @@ - ) # Use stdin as input. break ;; -* ) - echo "$me: invalid option $1$help" + echo "$me: invalid option $1$help" >&2 exit 1 ;; *local*) # First pass through any local machine types. - echo $1 + echo "$1" exit ;; * ) @@ -111,1228 +110,1169 @@ exit 1;; esac -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 - ;; - -lynx*) - os=-lynxos +# Split fields of configuration type +# shellcheck disable=SC2162 +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac ;; - -psos*) - os=-psos + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac ;; esac -# Decode aliases for certain CPU-COMPANY combinations. +# Decode 1-component or ad-hoc basic machines case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | epiphany \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pyramid \ - | riscv32 | riscv64 \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | visium \ - | we32k \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - leon|leon[3-9]) - basic_machine=sparc-$basic_machine - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + op50n) + cpu=hppa1.1 + vendor=oki ;; - ms1) - basic_machine=mt-unknown + op60c) + cpu=hppa1.1 + vendor=oki ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown + ibm*) + cpu=i370 + vendor=ibm ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none + orion105) + cpu=clipper + vendor=highlevel ;; - xscaleeb) - basic_machine=armeb-unknown + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple ;; - - xscaleel) - basic_machine=armel-unknown + pmac | pmac-mpw) + cpu=powerpc + vendor=apple ;; - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pyramid-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | visium-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att + cpu=m68000 + vendor=att ;; 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux + cpu=we32k + vendor=att ;; bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec + cpu=powerpc + vendor=ibm + basic_os=cnk ;; decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 + cpu=pdp10 + vendor=dec + basic_os=tops10 ;; decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 + cpu=pdp10 + vendor=dec + basic_os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon + cpu=m68k + vendor=motorola ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 ;; encore | umax | mmax) - basic_machine=ns32k-encore + cpu=ns32k + vendor=encore ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} ;; fx2800) - basic_machine=i860-alliant + cpu=i860 + vendor=alliant ;; genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 + cpu=ns32k + vendor=ns ;; h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp + cpu=m68000 + vendor=hp ;; hp9k3[2-9][0-9]) - basic_machine=m68k-hp + cpu=m68k + vendor=hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm + cpu=hppa1.0 + vendor=hp ;; i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=sysv32 ;; i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=sysv4 ;; i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=sysv ;; i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} ;; iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) + cpu=mips + vendor=sgi + case $basic_os in + irix*) ;; *) - os=-irix4 + basic_os=irix4 ;; esac ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - leon-*|leon[3-9]-*) - basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + cpu=m68000 + vendor=convergent ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - moxiebox) - basic_machine=moxie-unknown - os=-moxiebox - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint ;; news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) ;; - -ns2*) - os=-nextstep2 + ns2*) + basic_os=nextstep2 ;; *) - os=-nextstep3 + basic_os=nextstep3 ;; esac ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem + cpu=np1 + vendor=gould ;; op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k + cpu=hppa1.1 + vendor=oki + basic_os=proelf ;; pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 ;; pbd) - basic_machine=sparc-tti + cpu=sparc + vendor=tti ;; pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + cpu=m68k + vendor=tti ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc + pc532) + cpu=ns32k + vendor=pc532 ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc + pn) + cpu=pn + vendor=gould ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + power) + cpu=power + vendor=ibm ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ps2) + cpu=i386 + vendor=ibm ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + rm[46]00) + cpu=mips + vendor=siemens ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + rtpc | rtpc-*) + cpu=romp + vendor=ibm ;; - pn) - basic_machine=pn-gould + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks ;; - power) basic_machine=power-ibm + tower | tower-32) + cpu=m68k + vendor=ncr ;; - ppc | ppcbe) basic_machine=powerpc-unknown + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + w65) + cpu=w65 + vendor=wdc ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + none) + cpu=none + vendor=none ;; - ppc64) basic_machine=powerpc64-unknown + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + leon-*|leon[3-9]-*) + cpu=sparc + vendor=$(echo "$basic_machine" | sed 's/-.*//') ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown + + *-*) + # shellcheck disable=SC2162 + IFS="-" read cpu vendor <&2 - exit 1 + # Recognize the canonical CPU types that are allowed with any + # company name. + case $cpu in + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | abacus \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ + | alphapca5[67] | alpha64pca5[67] \ + | am33_2.0 \ + | amdgcn \ + | arc | arceb \ + | arm | arm[lb]e | arme[lb] | armv* \ + | avr | avr32 \ + | asmjs \ + | ba \ + | be32 | be64 \ + | bfin | bpf | bs2000 \ + | c[123]* | c30 | [cjt]90 | c4x \ + | c8051 | clipper | craynv | csky | cydra \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | elxsi | epiphany \ + | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ + | h8300 | h8500 \ + | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i*86 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | loongarch32 | loongarch64 | loongarchx32 \ + | m32c | m32r | m32rle \ + | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ + | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ + | m88110 | m88k | maxq | mb | mcore | mep | metag \ + | microblaze | microblazeel \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64eb | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mmix \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nfp \ + | nios | nios2 | nios2eb | nios2el \ + | none | np1 | ns16k | ns32k | nvptx \ + | open8 \ + | or1k* \ + | or32 \ + | orion \ + | picochip \ + | pdp10 | pdp11 | pj | pjl | pn | power \ + | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ + | pru \ + | pyramid \ + | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ + | rl78 | romp | rs6000 | rx \ + | s390 | s390x \ + | score \ + | sh | shl \ + | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ + | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ + | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ + | spu \ + | tahoe \ + | thumbv7* \ + | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ + | tron \ + | ubicom32 \ + | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ + | vax \ + | visium \ + | w65 \ + | wasm32 | wasm64 \ + | we32k \ + | x86 | x86_64 | xc16x | xgate | xps100 \ + | xstormy16 | xtensa* \ + | ymp \ + | z8k | z80) + ;; + + *) + echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 + exit 1 + ;; + esac ;; esac # Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` +case $vendor in + digital*) + vendor=dec ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + commodore*) + vendor=cbm ;; *) ;; @@ -1340,200 +1280,213 @@ # Decode manufacturer-specific aliases for certain operating systems. -if [ x"$os" != x"" ] +if test x$basic_os != x then + +# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=$(echo $basic_os | sed -e 's|gnu/linux|gnu|') + ;; + os2-emx) + kernel=os2 + os=$(echo $basic_os | sed -e 's|os2-emx|emx|') + ;; + nto-qnx*) + kernel=nto + os=$(echo $basic_os | sed -e 's|nto-qnx|qnx|') + ;; + *-*) + # shellcheck disable=SC2162 + IFS="-" read kernel os <&2 - exit 1 + # No normalization, but not necessarily accepted, that comes below. ;; esac + else # Here we handle the default operating systems that come with various machines. @@ -1546,261 +1499,361 @@ # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. -case $basic_machine in +kernel= +case $cpu-$vendor in score-*) - os=-elf + os=elf ;; spu-*) - os=-elf + os=elf ;; *-acorn) - os=-riscix1.2 + os=riscix1.2 ;; arm*-rebel) - os=-linux + kernel=linux + os=gnu ;; arm*-semi) - os=-aout + os=aout ;; c4x-* | tic4x-*) - os=-coff + os=coff ;; c8051-*) - os=-elf + os=elf + ;; + clipper-intergraph) + os=clix ;; hexagon-*) - os=-elf + os=elf ;; tic54x-*) - os=-coff + os=coff ;; tic55x-*) - os=-coff + os=coff ;; tic6x-*) - os=-coff + os=coff ;; # This must come before the *-dec entry. pdp10-*) - os=-tops20 + os=tops20 ;; pdp11-*) - os=-none + os=none ;; *-dec | vax-*) - os=-ultrix4.2 + os=ultrix4.2 ;; m68*-apollo) - os=-domain + os=domain ;; i386-sun) - os=-sunos4.0.2 + os=sunos4.0.2 ;; m68000-sun) - os=-sunos3 + os=sunos3 ;; m68*-cisco) - os=-aout + os=aout ;; mep-*) - os=-elf + os=elf ;; mips*-cisco) - os=-elf + os=elf ;; mips*-*) - os=-elf + os=elf ;; or32-*) - os=-coff + os=coff ;; *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 + os=sysv3 ;; sparc-* | *-sun) - os=-sunos4.1.1 + os=sunos4.1.1 ;; - *-be) - os=-beos + pru-*) + os=elf ;; - *-haiku) - os=-haiku + *-be) + os=beos ;; *-ibm) - os=-aix + os=aix ;; *-knuth) - os=-mmixware + os=mmixware ;; *-wec) - os=-proelf + os=proelf ;; *-winbond) - os=-proelf + os=proelf ;; *-oki) - os=-proelf + os=proelf ;; *-hp) - os=-hpux + os=hpux ;; *-hitachi) - os=-hiux + os=hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv + os=sysv ;; *-cbm) - os=-amigaos + os=amigaos ;; *-dg) - os=-dgux + os=dgux ;; *-dolphin) - os=-sysv3 + os=sysv3 ;; m68k-ccur) - os=-rtu + os=rtu ;; m88k-omron*) - os=-luna + os=luna ;; - *-next ) - os=-nextstep + *-next) + os=nextstep ;; *-sequent) - os=-ptx + os=ptx ;; *-crds) - os=-unos + os=unos ;; *-ns) - os=-genix + os=genix ;; i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 + os=mvs ;; *-gould) - os=-sysv + os=sysv ;; *-highlevel) - os=-bsd + os=bsd ;; *-encore) - os=-bsd + os=bsd ;; *-sgi) - os=-irix + os=irix ;; *-siemens) - os=-sysv4 + os=sysv4 ;; *-masscomp) - os=-rtu + os=rtu ;; f30[01]-fujitsu | f700-fujitsu) - os=-uxpv + os=uxpv ;; *-rom68k) - os=-coff + os=coff ;; *-*bug) - os=-coff + os=coff ;; *-apple) - os=-macos + os=macos ;; *-atari*) - os=-mint + os=mint + ;; + *-wrs) + os=vxworks ;; *) - os=-none + os=none ;; esac + fi +# Now, validate our (potentially fixed-up) OS. +case $os in + # Sometimes we do "kernel-libc", so those need to count as OSes. + musl* | newlib* | uclibc*) + ;; + # Likewise for "kernel-abi" + eabi* | gnueabi*) + ;; + # VxWorks passes extra cpu info in the 4th filed. + simlinux | simwindows | spe) + ;; + # Now accept the basic system types. + # The portable systems comes first. + # Each alternative MUST end in a * to match a version number. + gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ + | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ + | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ + | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ + | hiux* | abug | nacl* | netware* | windows* \ + | os9* | macos* | osx* | ios* \ + | mpw* | magic* | mmixware* | mon960* | lnews* \ + | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ + | aos* | aros* | cloudabi* | sortix* | twizzler* \ + | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ + | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ + | mirbsd* | netbsd* | dicos* | openedition* | ose* \ + | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \ + | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ + | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ + | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ + | udi* | lites* | ieee* | go32* | aux* | hcos* \ + | chorusrdb* | cegcc* | glidix* \ + | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ + | midipix* | mingw32* | mingw64* | mint* \ + | uxpv* | beos* | mpeix* | udk* | moxiebox* \ + | interix* | uwin* | mks* | rhapsody* | darwin* \ + | openstep* | oskit* | conix* | pw32* | nonstopux* \ + | storm-chaos* | tops10* | tenex* | tops20* | its* \ + | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ + | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ + | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ + | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*) + ;; + # This one is extra strict with allowed versions + sco3.2v2 | sco3.2v[4-9]* | sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + ;; + none) + ;; + *) + echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) vendor=acorn ;; - -sunos*) + *-sunos*) vendor=sun ;; - -cnk*|-aix*) + *-cnk* | *-aix*) vendor=ibm ;; - -beos*) + *-beos*) vendor=be ;; - -hpux*) + *-hpux*) vendor=hp ;; - -mpeix*) + *-mpeix*) vendor=hp ;; - -hiux*) + *-hiux*) vendor=hitachi ;; - -unos*) + *-unos*) vendor=crds ;; - -dgux*) + *-dgux*) vendor=dg ;; - -luna*) + *-luna*) vendor=omron ;; - -genix*) + *-genix*) vendor=ns ;; - -mvs* | -opened*) + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) vendor=ibm ;; - -os400*) + s390-* | s390x-*) vendor=ibm ;; - -ptx*) + *-ptx*) vendor=sequent ;; - -tpf*) + *-tpf*) vendor=ibm ;; - -vxsim* | -vxworks* | -windiss*) + *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; - -aux*) + *-aux*) vendor=apple ;; - -hms*) + *-hms*) vendor=hitachi ;; - -mpw* | -macos*) + *-mpw* | *-macos*) vendor=apple ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; - -vos*) + *-vos*) vendor=stratus ;; esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac -echo $basic_machine$os +echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff -Nru openmpi-4.0.3/ompi/mca/io/romio321/romio/configure openmpi-4.1.4/ompi/mca/io/romio321/romio/configure --- openmpi-4.0.3/ompi/mca/io/romio321/romio/configure 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/io/romio321/romio/configure 2022-05-29 09:51:40.000000000 +0000 @@ -8048,16 +8048,13 @@ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[91]*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - 10.[012][,.]*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*) + darwin*) + # Open MPI patched for Darwin / MacOS Big Sur. See + # http://lists.gnu.org/archive/html/bug-libtool/2015-07/msg00001.html + case ${MACOSX_DEPLOYMENT_TARGET},$host in + 10.[012],*|,*powerpc*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + *) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; diff -Nru openmpi-4.0.3/ompi/mca/mtl/Makefile.in openmpi-4.1.4/ompi/mca/mtl/Makefile.in --- openmpi-4.0.3/ompi/mca/mtl/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -136,6 +136,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -143,6 +145,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -166,6 +169,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -268,6 +272,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -275,6 +280,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -355,6 +361,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -377,9 +384,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -389,6 +400,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -409,6 +421,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -665,6 +678,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1485,6 +1501,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1517,9 +1537,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1540,6 +1569,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1624,9 +1654,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1687,6 +1714,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1700,6 +1730,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/configure.m4 openmpi-4.1.4/ompi/mca/mtl/ofi/configure.m4 --- openmpi-4.0.3/ompi/mca/mtl/ofi/configure.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ # # Copyright (c) 2013-2014 Intel, Inc. All rights reserved # -# Copyright (c) 2014-2019 Cisco Systems, Inc. All rights reserved +# Copyright (c) 2014-2020 Cisco Systems, Inc. All rights reserved # Copyright (c) 2017 Los Alamos National Security, LLC. All rights # reserved. # $COPYRIGHT$ @@ -28,6 +28,12 @@ # Check for OFI OPAL_CHECK_OFI + # The OFI MTL requires at least OFI libfabric v1.5. + AS_IF([test "$opal_ofi_happy" = "yes"], + [OPAL_CHECK_OFI_VERSION_GE([1,5], + [], + [opal_ofi_happy=no])]) + AS_IF([test "$opal_ofi_happy" = "yes"], [$1], [$2]) diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/help-mtl-ofi.txt openmpi-4.1.4/ompi/mca/mtl/ofi/help-mtl-ofi.txt --- openmpi-4.0.3/ompi/mca/mtl/ofi/help-mtl-ofi.txt 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/help-mtl-ofi.txt 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ # -*- text -*- # -# Copyright (c) 2013-2017 Intel, Inc. All rights reserved +# Copyright (c) 2013-2018 Intel, Inc. All rights reserved # # Copyright (c) 2017 Cisco Systems, Inc. All rights reserved # $COPYRIGHT$ @@ -16,5 +16,64 @@ Local host: %s Location: %s:%d Error: %s (%zd) +# +[Not enough bits for CID] +OFI provider "%s" does not have enough free bits in its tag to fit the MPI +Communicator ID. See the mem_tag_format of the provider by running: +fi_info -v -p %s + + Local host: %s + Location: %s:%d + +[SEP unavailable] +Scalable Endpoint feature is enabled by the user but it is not supported by +%s provider. Try disabling this feature or use a different provider that +supports it using mtl_ofi_provider_include. + + Local host: %s + Location: %s:%d + +[SEP required] +Scalable Endpoint feature is required for Thread Grouping feature to work. +Please try enabling Scalable Endpoints using mtl_ofi_enable_sep. + + Local host: %s + Location: %s:%d + +[SEP thread grouping ctxt limit] +Reached limit (%d) for number of OFI contexts set by mtl_ofi_num_ctxts. +Please set mtl_ofi_num_ctxts to a larger value if you need more contexts. +If an MPI application creates more communicators than mtl_ofi_num_ctxts, +OFI MTL will make the new communicators re-use existing contexts in +round-robin fashion which will impact performance. + + Local host: %s + Location: %s:%d + +[Local ranks exceed ofi contexts] +Number of local ranks exceed the number of available OFI contexts in %s +provider and we cannot provision enough contexts for each rank. Try disabling +Scalable Endpoint feature. + + Local host: %s + Location: %s:%d + +[Ctxts exceeded available] +User requested for more than available contexts from provider. Limiting +to max allowed (%d). Contexts will be re used in round-robin fashion if there +are more threads than the available contexts. + + Local host: %s + Location: %s:%d + +[modex failed] +The OFI MTL was not able to find endpoint information for a remote +endpoint. Most likely, this means that the remote process was unable +to initialize the Libfabric NIC correctly. This error is not +recoverable and your application is likely to abort. + + Local host: %s + Remote host: %s + Error: %s (%d) [message too big] Message size %llu bigger than supported by selected transport. Max = %llu diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/Makefile.am openmpi-4.1.4/ompi/mca/mtl/ofi/Makefile.am --- openmpi-4.0.3/ompi/mca/mtl/ofi/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -7,6 +7,8 @@ # Copyright (c) 2017 IBM Corporation. All rights reserved. # Copyright (c) 2019 Research Organization for Information Science # and Technology (RIST). All rights reserved. +# Copyright (c) 2020 Triad National Security, LLC. All rights +# reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -14,21 +16,50 @@ # $HEADER$ # -EXTRA_DIST = post_configure.sh +EXTRA_DIST = post_configure.sh \ + $(generated_source_modules) + +MAINTAINERCLEANFILES = \ + $(generated_sources) AM_CPPFLAGS = $(opal_ofi_CPPFLAGS) dist_ompidata_DATA = help-mtl-ofi.txt +generated_source_modules = \ + mtl_ofi_send_opt.pm \ + mtl_ofi_isend_opt.pm \ + mtl_ofi_irecv_opt.pm \ + mtl_ofi_iprobe_opt.pm \ + mtl_ofi_improbe_opt.pm + +generated_sources = \ + mtl_ofi_send_opt.c \ + mtl_ofi_isend_opt.c \ + mtl_ofi_irecv_opt.c \ + mtl_ofi_iprobe_opt.c \ + mtl_ofi_improbe_opt.c + mtl_ofi_sources = \ - mtl_ofi.h \ - mtl_ofi.c \ - mtl_ofi_compat.h \ - mtl_ofi_component.c \ - mtl_ofi_endpoint.h \ - mtl_ofi_endpoint.c \ - mtl_ofi_request.h \ - mtl_ofi_types.h + mtl_ofi.h \ + mtl_ofi.c \ + mtl_ofi_compat.h \ + mtl_ofi_component.c \ + mtl_ofi_endpoint.h \ + mtl_ofi_endpoint.c \ + mtl_ofi_request.h \ + mtl_ofi_types.h \ + mtl_ofi_opt.h \ + $(generated_sources) + +# A number of files are generated from macro expansion to minimize +# branches in the critical path. These files have perl modules with the suffix +# .pm that generate the corresponding .c file with all possible branches as +# their own function and symbol. Additional input +# files should be added to generated_source_modules, as well as adding +# their .c variants to generated_sources. +%.c : %.pm; + $(PERL) -I$(top_srcdir)/ompi/mca/mtl/ofi $(top_srcdir)/ompi/mca/mtl/ofi/generate-opt-funcs.pl $@ # Make the output library in this directory, and name it either # mca__.la (for DSO builds) or libmca__.la @@ -49,6 +80,7 @@ $(opal_ofi_LDFLAGS) \ -module -avoid-version mca_mtl_ofi_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(OPAL_TOP_BUILDDIR)/opal/mca/common/ofi/lib@OPAL_LIB_PREFIX@mca_common_ofi.la \ $(opal_ofi_LIBS) noinst_LTLIBRARIES = $(component_noinst) diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/Makefile.in openmpi-4.1.4/ompi/mca/mtl/ofi/Makefile.in --- openmpi-4.0.3/ompi/mca/mtl/ofi/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -23,6 +23,8 @@ # Copyright (c) 2017 IBM Corporation. All rights reserved. # Copyright (c) 2019 Research Organization for Information Science # and Technology (RIST). All rights reserved. +# Copyright (c) 2020 Triad National Security, LLC. All rights +# reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -115,6 +117,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -122,6 +126,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -145,6 +150,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -247,6 +253,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -254,6 +261,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -334,6 +342,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -356,9 +365,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -368,6 +381,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -388,6 +402,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -446,8 +461,12 @@ LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = libmca_mtl_ofi_la_DEPENDENCIES = $(am__DEPENDENCIES_1) -am__objects_1 = mtl_ofi.lo mtl_ofi_component.lo mtl_ofi_endpoint.lo -am_libmca_mtl_ofi_la_OBJECTS = $(am__objects_1) +am__objects_1 = mtl_ofi_send_opt.lo mtl_ofi_isend_opt.lo \ + mtl_ofi_irecv_opt.lo mtl_ofi_iprobe_opt.lo \ + mtl_ofi_improbe_opt.lo +am__objects_2 = mtl_ofi.lo mtl_ofi_component.lo mtl_ofi_endpoint.lo \ + $(am__objects_1) +am_libmca_mtl_ofi_la_OBJECTS = $(am__objects_2) libmca_mtl_ofi_la_OBJECTS = $(am_libmca_mtl_ofi_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -460,8 +479,9 @@ @MCA_BUILD_ompi_mtl_ofi_DSO_FALSE@am_libmca_mtl_ofi_la_rpath = mca_mtl_ofi_la_DEPENDENCIES = \ $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(OPAL_TOP_BUILDDIR)/opal/mca/common/ofi/lib@OPAL_LIB_PREFIX@mca_common_ofi.la \ $(am__DEPENDENCIES_1) -am_mca_mtl_ofi_la_OBJECTS = $(am__objects_1) +am_mca_mtl_ofi_la_OBJECTS = $(am__objects_2) mca_mtl_ofi_la_OBJECTS = $(am_mca_mtl_ofi_la_OBJECTS) mca_mtl_ofi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ @@ -659,6 +679,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1479,6 +1502,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1511,9 +1538,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1534,6 +1570,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1618,9 +1655,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1681,6 +1715,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1694,6 +1731,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ @@ -1720,18 +1761,39 @@ ucx_CFLAGS = @ucx_CFLAGS@ ucx_LIBS = @ucx_LIBS@ ucx_STATIC_LIBS = @ucx_STATIC_LIBS@ -EXTRA_DIST = post_configure.sh +EXTRA_DIST = post_configure.sh \ + $(generated_source_modules) + +MAINTAINERCLEANFILES = \ + $(generated_sources) + AM_CPPFLAGS = $(opal_ofi_CPPFLAGS) dist_ompidata_DATA = help-mtl-ofi.txt +generated_source_modules = \ + mtl_ofi_send_opt.pm \ + mtl_ofi_isend_opt.pm \ + mtl_ofi_irecv_opt.pm \ + mtl_ofi_iprobe_opt.pm \ + mtl_ofi_improbe_opt.pm + +generated_sources = \ + mtl_ofi_send_opt.c \ + mtl_ofi_isend_opt.c \ + mtl_ofi_irecv_opt.c \ + mtl_ofi_iprobe_opt.c \ + mtl_ofi_improbe_opt.c + mtl_ofi_sources = \ - mtl_ofi.h \ - mtl_ofi.c \ - mtl_ofi_compat.h \ - mtl_ofi_component.c \ - mtl_ofi_endpoint.h \ - mtl_ofi_endpoint.c \ - mtl_ofi_request.h \ - mtl_ofi_types.h + mtl_ofi.h \ + mtl_ofi.c \ + mtl_ofi_compat.h \ + mtl_ofi_component.c \ + mtl_ofi_endpoint.h \ + mtl_ofi_endpoint.c \ + mtl_ofi_request.h \ + mtl_ofi_types.h \ + mtl_ofi_opt.h \ + $(generated_sources) @MCA_BUILD_ompi_mtl_ofi_DSO_FALSE@component_noinst = libmca_mtl_ofi.la @@ -1749,6 +1811,7 @@ -module -avoid-version mca_mtl_ofi_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(OPAL_TOP_BUILDDIR)/opal/mca/common/ofi/lib@OPAL_LIB_PREFIX@mca_common_ofi.la \ $(opal_ofi_LIBS) noinst_LTLIBRARIES = $(component_noinst) @@ -1853,6 +1916,11 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mtl_ofi.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mtl_ofi_component.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mtl_ofi_endpoint.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mtl_ofi_improbe_opt.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mtl_ofi_iprobe_opt.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mtl_ofi_irecv_opt.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mtl_ofi_isend_opt.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mtl_ofi_send_opt.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @@ -2025,6 +2093,7 @@ maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ @@ -2120,6 +2189,15 @@ .PRECIOUS: Makefile +# A number of files are generated from macro expansion to minimize +# branches in the critical path. These files have perl modules with the suffix +# .pm that generate the corresponding .c file with all possible branches as +# their own function and symbol. Additional input +# files should be added to generated_source_modules, as well as adding +# their .c variants to generated_sources. +%.c : %.pm; + $(PERL) -I$(top_srcdir)/ompi/mca/mtl/ofi $(top_srcdir)/ompi/mca/mtl/ofi/generate-opt-funcs.pl $@ + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi.c openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi.c --- openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi.c 2022-05-29 09:51:40.000000000 +0000 @@ -23,12 +23,12 @@ ompi_mtl_ofi_del_procs, ompi_mtl_ofi_finalize, - ompi_mtl_ofi_send, - ompi_mtl_ofi_isend, - ompi_mtl_ofi_irecv, - ompi_mtl_ofi_iprobe, - ompi_mtl_ofi_imrecv, - ompi_mtl_ofi_improbe, + NULL, + NULL, + NULL, + NULL, + ompi_mtl_ofi_imrecv, + NULL, ompi_mtl_ofi_cancel, ompi_mtl_ofi_add_comm, @@ -98,9 +98,10 @@ (void**)&ep_name, &size); if (OMPI_SUCCESS != ret) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: modex_recv failed: %d\n", - __FILE__, __LINE__, ret); + opal_show_help("help-mtl-ofi.txt", "modex failed", + true, ompi_process_info.nodename, + procs[i]->super.proc_hostname, + opal_strerror(ret), ret); goto bail; } memcpy(&ep_names[i*namelen], ep_name, namelen); @@ -111,7 +112,7 @@ */ count = fi_av_insert(ompi_mtl_ofi.av, ep_names, nprocs, fi_addrs, 0, NULL); if ((count < 0) || (nprocs != (size_t)count)) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + opal_output_verbose(1, opal_common_ofi.output, "%s:%d: fi_av_insert failed: %d\n", __FILE__, __LINE__, count); ret = OMPI_ERROR; @@ -124,7 +125,7 @@ for (i = 0; i < nprocs; ++i) { endpoint = OBJ_NEW(mca_mtl_ofi_endpoint_t); if (NULL == endpoint) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + opal_output_verbose(1, opal_common_ofi.output, "%s:%d: mtl/ofi: could not allocate endpoint" " structure\n", __FILE__, __LINE__); @@ -169,7 +170,7 @@ endpoint = procs[i]->proc_endpoints[OMPI_PROC_ENDPOINT_TAG_MTL]; ret = fi_av_remove(ompi_mtl_ofi.av, &endpoint->peer_fiaddr, 1, 0); if (ret) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + opal_output_verbose(1, opal_common_ofi.output, "%s:%d: fi_av_remove failed: %s\n", __FILE__, __LINE__, fi_strerror(errno)); return ret; } diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_component.c openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_component.c --- openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,9 +2,12 @@ /* * Copyright (c) 2013-2018 Intel, Inc. All rights reserved * - * Copyright (c) 2014-2017 Cisco Systems, Inc. All rights reserved + * Copyright (c) 2014-2021 Cisco Systems, Inc. All rights reserved * Copyright (c) 2015-2016 Los Alamos National Security, LLC. All rights * reserved. + * Copyright (c) 2018-2021 Amazon.com, Inc. or its affiliates. All Rights reserved. + * Copyright (c) 2020 Triad National Security, LLC. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -12,9 +15,11 @@ * $HEADER$ */ +#include "opal_config.h" #include "mtl_ofi.h" #include "opal/util/argv.h" #include "opal/util/printf.h" +#include "opal/mca/common/ofi/common_ofi.h" static int ompi_mtl_ofi_component_open(void); static int ompi_mtl_ofi_component_query(mca_base_module_t **module, int *priority); @@ -26,13 +31,16 @@ bool enable_mpi_threads); static int param_priority; -static char *prov_include; -static char *prov_exclude; static int control_progress; static int data_progress; static int av_type; static int ofi_tag_mode; +#if OPAL_HAVE_THREAD_LOCAL + opal_thread_local int ompi_mtl_ofi_per_thread_ctx; + opal_thread_local struct fi_cq_tagged_entry ompi_mtl_ofi_wc[MTL_OFI_MAX_PROG_EVENT_COUNT]; +#endif + /* * Enumerators */ @@ -124,26 +132,8 @@ MCA_BASE_VAR_SCOPE_READONLY, ¶m_priority); - prov_include = NULL; - mca_base_component_var_register(&mca_mtl_ofi_component.super.mtl_version, - "provider_include", - "Comma-delimited list of OFI providers that are considered for use (e.g., \"psm,psm2\"; an empty value means that all providers will be considered). Mutually exclusive with mtl_ofi_provider_exclude.", - MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, - OPAL_INFO_LVL_1, - MCA_BASE_VAR_SCOPE_READONLY, - &prov_include); - - prov_exclude = "shm,sockets,tcp,udp,rstream"; - mca_base_component_var_register(&mca_mtl_ofi_component.super.mtl_version, - "provider_exclude", - "Comma-delimited list of OFI providers that are not considered for use (default: \"sockets,mxm\"; empty value means that all providers will be considered). Mutually exclusive with mtl_ofi_provider_include.", - MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, - OPAL_INFO_LVL_1, - MCA_BASE_VAR_SCOPE_READONLY, - &prov_exclude); - - ompi_mtl_ofi.ofi_progress_event_count = 100; - asprintf(&desc, "Max number of events to read each call to OFI progress (default: %d events will be read per OFI progress call)", ompi_mtl_ofi.ofi_progress_event_count); + ompi_mtl_ofi.ofi_progress_event_count = MTL_OFI_MAX_PROG_EVENT_COUNT; + opal_asprintf(&desc, "Max number of events to read each call to OFI progress (default: %d events will be read per OFI progress call)", ompi_mtl_ofi.ofi_progress_event_count); mca_base_component_var_register(&mca_mtl_ofi_component.super.mtl_version, "progress_event_cnt", desc, @@ -229,7 +219,39 @@ &av_type); OBJ_RELEASE(new_enum); - return OMPI_SUCCESS; + ompi_mtl_ofi.enable_sep = 0; + mca_base_component_var_register(&mca_mtl_ofi_component.super.mtl_version, + "enable_sep", + "Enable SEP feature", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_3, + MCA_BASE_VAR_SCOPE_READONLY, + &ompi_mtl_ofi.enable_sep); + + ompi_mtl_ofi.thread_grouping = 0; + mca_base_component_var_register(&mca_mtl_ofi_component.super.mtl_version, + "thread_grouping", + "Enable/Disable Thread Grouping feature", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_3, + MCA_BASE_VAR_SCOPE_READONLY, + &ompi_mtl_ofi.thread_grouping); + + /* + * Default Policy: Create 1 context and let user ask for more for + * multi-threaded workloads. User needs to ask for as many contexts as the + * number of threads that are anticipated to make MPI calls. + */ + ompi_mtl_ofi.num_ofi_contexts = 1; + mca_base_component_var_register(&mca_mtl_ofi_component.super.mtl_version, + "num_ctxts", + "Specify number of OFI contexts to create", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_4, + MCA_BASE_VAR_SCOPE_READONLY, + &ompi_mtl_ofi.num_ofi_contexts); + + return opal_common_ofi_mca_register(&mca_mtl_ofi_component.super.mtl_version); } @@ -242,8 +264,7 @@ ompi_mtl_ofi.domain = NULL; ompi_mtl_ofi.av = NULL; - ompi_mtl_ofi.cq = NULL; - ompi_mtl_ofi.ep = NULL; + ompi_mtl_ofi.sep = NULL; /** * Sanity check: provider_include and provider_exclude must be mutually @@ -259,8 +280,7 @@ "provider_exclude")) { return OMPI_ERR_NOT_AVAILABLE; } - - return OMPI_SUCCESS; + return opal_common_ofi_open(); } static int @@ -274,7 +294,10 @@ static int ompi_mtl_ofi_component_close(void) { - return OMPI_SUCCESS; +#if OPAL_CUDA_SUPPORT + mca_common_cuda_fini(); +#endif + return opal_common_ofi_close(); } int @@ -283,55 +306,25 @@ return ompi_mtl_ofi_progress(); } -static int -is_in_list(char **list, char *item) -{ - int i = 0; - - if ((NULL == list) || (NULL == item)) { - return 0; - } - - while (NULL != list[i]) { - if (0 == strncasecmp(item, list[i], strlen(list[i]))) { - return 1; - } else { - i++; - } - } - - return 0; -} - static struct fi_info* -select_ofi_provider(struct fi_info *providers) +select_ofi_provider(struct fi_info *providers, + char **include_list, char **exclude_list) { - char **include_list = NULL; - char **exclude_list = NULL; struct fi_info *prov = providers; - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: mtl:ofi:provider_include = \"%s\"\n", - __FILE__, __LINE__, prov_include); - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: mtl:ofi:provider_exclude = \"%s\"\n", - __FILE__, __LINE__, prov_exclude); - - if (NULL != prov_include) { - include_list = opal_argv_split(prov_include, ','); + if (NULL != include_list) { while ((NULL != prov) && - (!is_in_list(include_list, prov->fabric_attr->prov_name))) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + (!opal_common_ofi_is_in_list(include_list, prov->fabric_attr->prov_name))) { + opal_output_verbose(1, opal_common_ofi.output, "%s:%d: mtl:ofi: \"%s\" not in include list\n", __FILE__, __LINE__, prov->fabric_attr->prov_name); prov = prov->next; } - } else if (NULL != prov_exclude) { - exclude_list = opal_argv_split(prov_exclude, ','); + } else if (NULL != exclude_list) { while ((NULL != prov) && - (is_in_list(exclude_list, prov->fabric_attr->prov_name))) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + (opal_common_ofi_is_in_list(exclude_list, prov->fabric_attr->prov_name))) { + opal_output_verbose(1, opal_common_ofi.output, "%s:%d: mtl:ofi: \"%s\" in exclude list\n", __FILE__, __LINE__, prov->fabric_attr->prov_name); @@ -339,58 +332,48 @@ } } - opal_argv_free(include_list); - opal_argv_free(exclude_list); - - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + opal_output_verbose(1, opal_common_ofi.output, "%s:%d: mtl:ofi:prov: %s\n", __FILE__, __LINE__, (prov ? prov->fabric_attr->prov_name : "none")); - return prov; -} - -/* Check if FI_REMOTE_CQ_DATA is supported, if so send the source rank there - * FI_DIRECTED_RECV is also needed so receives can discrimate the source - */ -static int -ompi_mtl_ofi_check_fi_remote_cq_data(int fi_version, - struct fi_info *hints, - struct fi_info *provider, - struct fi_info **prov_cq_data) -{ - int ret; - char *provider_name; - struct fi_info *hints_dup; - hints_dup = fi_dupinfo(hints); - - provider_name = strdup(provider->fabric_attr->prov_name); - hints_dup->fabric_attr->prov_name = provider_name; - hints_dup->caps |= FI_TAGGED | FI_DIRECTED_RECV; - /* Ask for the size that OMPI uses for the source rank number */ - hints_dup->domain_attr->cq_data_size = sizeof(int); - ret = fi_getinfo(fi_version, NULL, NULL, 0ULL, hints_dup, prov_cq_data); - - if ((0 != ret) && (-FI_ENODATA != ret)) { - opal_show_help("help-mtl-ofi.txt", "OFI call fail", true, - "fi_getinfo", - ompi_process_info.nodename, __FILE__, __LINE__, - fi_strerror(-ret), -ret); - return ret; - } else if (-FI_ENODATA == ret) { - /* The provider does not support FI_REMOTE_CQ_DATA */ - prov_cq_data = NULL; + /** The initial provider selection will return a list of providers + * available for this process. once a provider is selected from the + * list, we will cycle through the remaining list to identify NICs + * serviced by this provider, and try to pick one on the same NUMA + * node as this process. If there are no NICs on the same NUMA node, + * we pick one in a manner which allows all ranks to make balanced + * use of available NICs on the system. + * + * Most providers give a separate fi_info object for each NIC, + * however some may have multiple info objects with different + * attributes for the same NIC. The initial provider attributes + * are used to ensure that all NICs we return provide the same + * capabilities as the inital one. + * + * We use package rank to select between NICs of equal distance + * if we cannot calculate a package_rank, we fall back to using the + * process id. + */ + if (NULL != prov) { + prov = opal_mca_common_ofi_select_provider(prov, ompi_process_info.num_local_peers, + ompi_process_info.my_local_rank, + ompi_process_info.cpuset, + ompi_process_info.pid); + opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + "%s:%d: mtl:ofi:provider: %s\n", + __FILE__, __LINE__, + (prov ? prov->domain_attr->name : "none")); } - fi_freeinfo(hints_dup); - return OMPI_SUCCESS; + return prov; } static void -ompi_mtl_ofi_define_tag_mode(int ofi_tag_mode) { - switch (ofi_tag_mode) { +ompi_mtl_ofi_define_tag_mode(int ofi_tag_mode_arg, int *bits_for_cid) { + switch (ofi_tag_mode_arg) { case MTL_OFI_TAG_1: - ompi_mtl_ofi.base.mtl_max_contextid = (int)((1ULL << MTL_OFI_CID_BIT_COUNT_1 ) - 1); + *bits_for_cid = (int) MTL_OFI_CID_BIT_COUNT_1; ompi_mtl_ofi.base.mtl_max_tag = (int)((1ULL << (MTL_OFI_TAG_BIT_COUNT_1 - 1)) - 1); ompi_mtl_ofi.source_rank_tag_mask = MTL_OFI_SOURCE_TAG_MASK_1; @@ -405,7 +388,7 @@ ompi_mtl_ofi.sync_proto_mask = MTL_OFI_PROTO_MASK_1; break; case MTL_OFI_TAG_2: - ompi_mtl_ofi.base.mtl_max_contextid = (int)((1ULL << MTL_OFI_CID_BIT_COUNT_2 ) - 1); + *bits_for_cid = (int) MTL_OFI_CID_BIT_COUNT_2; ompi_mtl_ofi.base.mtl_max_tag = (int)((1ULL << (MTL_OFI_TAG_BIT_COUNT_2 - 1)) - 1); ompi_mtl_ofi.source_rank_tag_mask = MTL_OFI_SOURCE_TAG_MASK_2; @@ -420,7 +403,7 @@ ompi_mtl_ofi.sync_proto_mask = MTL_OFI_PROTO_MASK_2; break; default: /* use FI_REMOTE_CQ_DATA */ - ompi_mtl_ofi.base.mtl_max_contextid = (int)((1ULL << MTL_OFI_CID_BIT_COUNT_DATA ) - 1); + *bits_for_cid = (int) MTL_OFI_CID_BIT_COUNT_DATA; ompi_mtl_ofi.base.mtl_max_tag = (int)((1ULL << (MTL_OFI_TAG_BIT_COUNT_DATA - 1)) - 1); ompi_mtl_ofi.mpi_tag_mask = MTL_OFI_TAG_MASK_DATA; @@ -431,19 +414,182 @@ } } +#define MTL_OFI_ALLOC_COMM_TO_CONTEXT(arr_size) \ + do { \ + ompi_mtl_ofi.comm_to_context = calloc(arr_size, sizeof(int)); \ + if (OPAL_UNLIKELY(!ompi_mtl_ofi.comm_to_context)) { \ + opal_output_verbose(1, opal_common_ofi.output, \ + "%s:%d: alloc of comm_to_context array failed: %s\n",\ + __FILE__, __LINE__, strerror(errno)); \ + return ret; \ + } \ + } while (0); + +#define MTL_OFI_ALLOC_OFI_CTXTS() \ + do { \ + ompi_mtl_ofi.ofi_ctxt = (mca_mtl_ofi_context_t *) malloc(ompi_mtl_ofi.num_ofi_contexts * \ + sizeof(mca_mtl_ofi_context_t)); \ + if (OPAL_UNLIKELY(!ompi_mtl_ofi.ofi_ctxt)) { \ + opal_output_verbose(1, opal_common_ofi.output, \ + "%s:%d: alloc of ofi_ctxt array failed: %s\n", \ + __FILE__, __LINE__, strerror(errno)); \ + return ret; \ + } \ + } while(0); + +static int ompi_mtl_ofi_init_sep(struct fi_info *prov, int universe_size) +{ + int ret = OMPI_SUCCESS, num_ofi_ctxts; + struct fi_av_attr av_attr = {0}; + + prov->ep_attr->tx_ctx_cnt = prov->ep_attr->rx_ctx_cnt = + ompi_mtl_ofi.num_ofi_contexts; + + ret = fi_scalable_ep(ompi_mtl_ofi.domain, prov, &ompi_mtl_ofi.sep, NULL); + if (0 != ret) { + opal_show_help("help-mtl-ofi.txt", "OFI call fail", true, + "fi_scalable_ep", + ompi_process_info.nodename, __FILE__, __LINE__, + fi_strerror(-ret), -ret); + return ret; + } + + ompi_mtl_ofi.rx_ctx_bits = 0; + while (ompi_mtl_ofi.num_ofi_contexts >> ++ompi_mtl_ofi.rx_ctx_bits); + + av_attr.type = (MTL_OFI_AV_TABLE == av_type) ? FI_AV_TABLE: FI_AV_MAP; + av_attr.rx_ctx_bits = ompi_mtl_ofi.rx_ctx_bits; + av_attr.count = ompi_mtl_ofi.num_ofi_contexts * universe_size; + ret = fi_av_open(ompi_mtl_ofi.domain, &av_attr, &ompi_mtl_ofi.av, NULL); + + if (0 != ret) { + MTL_OFI_LOG_FI_ERR(ret, "fi_av_open failed"); + return ret; + } + + ret = fi_scalable_ep_bind(ompi_mtl_ofi.sep, (fid_t)ompi_mtl_ofi.av, 0); + if (0 != ret) { + MTL_OFI_LOG_FI_ERR(ret, "fi_bind AV-EP failed"); + return ret; + } + + /* + * If SEP supported and Thread Grouping feature enabled, use + * num_ofi_contexts + 2. Extra 2 items is to accomodate Open MPI contextid + * numbering- COMM_WORLD is 0, COMM_SELF is 1. Other user created + * Comm contextid values are assigned sequentially starting with 3. + */ + num_ofi_ctxts = ompi_mtl_ofi.thread_grouping ? + ompi_mtl_ofi.num_ofi_contexts + 2 : 1; + MTL_OFI_ALLOC_COMM_TO_CONTEXT(num_ofi_ctxts); + + ompi_mtl_ofi.total_ctxts_used = 0; + ompi_mtl_ofi.threshold_comm_context_id = 0; + + /* Allocate memory for OFI contexts */ + MTL_OFI_ALLOC_OFI_CTXTS(); + + return ret; +} + +static int ompi_mtl_ofi_init_regular_ep(struct fi_info * prov, int universe_size) +{ + int ret = OMPI_SUCCESS; + struct fi_av_attr av_attr = {0}; + struct fi_cq_attr cq_attr = {0}; + cq_attr.format = FI_CQ_FORMAT_TAGGED; + cq_attr.size = ompi_mtl_ofi.ofi_progress_event_count; + + /* Override any user defined setting */ + ompi_mtl_ofi.num_ofi_contexts = 1; + ret = fi_endpoint(ompi_mtl_ofi.domain, /* In: Domain object */ + prov, /* In: Provider */ + &ompi_mtl_ofi.sep, /* Out: Endpoint object */ + NULL); /* Optional context */ + if (0 != ret) { + opal_show_help("help-mtl-ofi.txt", "OFI call fail", true, + "fi_endpoint", + ompi_process_info.nodename, __FILE__, __LINE__, + fi_strerror(-ret), -ret); + return ret; + } + + /** + * Create the objects that will be bound to the endpoint. + * The objects include: + * - address vector and completion queues + */ + av_attr.type = (MTL_OFI_AV_TABLE == av_type) ? FI_AV_TABLE: FI_AV_MAP; + av_attr.count = universe_size; + ret = fi_av_open(ompi_mtl_ofi.domain, &av_attr, &ompi_mtl_ofi.av, NULL); + if (ret) { + MTL_OFI_LOG_FI_ERR(ret, "fi_av_open failed"); + return ret; + } + + ret = fi_ep_bind(ompi_mtl_ofi.sep, + (fid_t)ompi_mtl_ofi.av, + 0); + if (0 != ret) { + MTL_OFI_LOG_FI_ERR(ret, "fi_bind AV-EP failed"); + return ret; + } + + MTL_OFI_ALLOC_COMM_TO_CONTEXT(1); + + /* Allocate memory for OFI contexts */ + MTL_OFI_ALLOC_OFI_CTXTS(); + + ompi_mtl_ofi.ofi_ctxt[0].tx_ep = ompi_mtl_ofi.sep; + ompi_mtl_ofi.ofi_ctxt[0].rx_ep = ompi_mtl_ofi.sep; + + ret = fi_cq_open(ompi_mtl_ofi.domain, &cq_attr, &ompi_mtl_ofi.ofi_ctxt[0].cq, NULL); + if (ret) { + MTL_OFI_LOG_FI_ERR(ret, "fi_cq_open failed"); + return ret; + } + + /* Bind CQ to endpoint object */ + ret = fi_ep_bind(ompi_mtl_ofi.sep, (fid_t)ompi_mtl_ofi.ofi_ctxt[0].cq, + FI_TRANSMIT | FI_RECV | FI_SELECTIVE_COMPLETION); + if (0 != ret) { + MTL_OFI_LOG_FI_ERR(ret, "fi_bind CQ-EP failed"); + return ret; + } + + return ret; +} + static mca_mtl_base_module_t* ompi_mtl_ofi_component_init(bool enable_progress_threads, bool enable_mpi_threads) { int ret, fi_version; - struct fi_info *hints; + int num_local_ranks, sep_support_in_provider, max_ofi_ctxts; + int ofi_tag_leading_zeros, ofi_tag_bits_for_cid; + char **include_list = NULL; + char **exclude_list = NULL; + struct fi_info *hints, *hints_dup = NULL; struct fi_info *providers = NULL; struct fi_info *prov = NULL; struct fi_info *prov_cq_data = NULL; - struct fi_cq_attr cq_attr = {0}; - struct fi_av_attr av_attr = {0}; char ep_name[FI_NAME_MAX] = {0}; size_t namelen; + int universe_size; + char *univ_size_str; + + opal_output_verbose(1, opal_common_ofi.output, + "%s:%d: mtl:ofi:provider_include = \"%s\"\n", + __FILE__, __LINE__, *opal_common_ofi.prov_include); + opal_output_verbose(1, opal_common_ofi.output, + "%s:%d: mtl:ofi:provider_exclude = \"%s\"\n", + __FILE__, __LINE__, *opal_common_ofi.prov_exclude); + + if (NULL != *opal_common_ofi.prov_include) { + include_list = opal_argv_split(*opal_common_ofi.prov_include, ','); + } else if (NULL != *opal_common_ofi.prov_exclude) { + exclude_list = opal_argv_split(*opal_common_ofi.prov_exclude, ','); + } /** * Hints to filter providers @@ -457,20 +603,32 @@ */ hints = fi_allocinfo(); if (!hints) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + opal_output_verbose(1, opal_common_ofi.output, "%s:%d: Could not allocate fi_info\n", __FILE__, __LINE__); goto error; } - hints->mode = FI_CONTEXT; - hints->ep_attr->type = FI_EP_RDM; /* Reliable datagram */ - hints->caps = FI_TAGGED; /* Tag matching interface */ + /* Make sure to get a RDM provider that can do the tagged matching + interface and local communication and remote communication. */ + hints->mode = FI_CONTEXT | FI_CONTEXT2; + hints->ep_attr->type = FI_EP_RDM; + hints->caps = FI_TAGGED | FI_LOCAL_COMM | FI_REMOTE_COMM | FI_DIRECTED_RECV; hints->tx_attr->msg_order = FI_ORDER_SAS; hints->rx_attr->msg_order = FI_ORDER_SAS; hints->rx_attr->op_flags = FI_COMPLETION; hints->tx_attr->op_flags = FI_COMPLETION; - hints->domain_attr->threading = FI_THREAD_UNSPEC; + if (enable_mpi_threads) { + ompi_mtl_ofi.mpi_thread_multiple = true; + hints->domain_attr->threading = FI_THREAD_SAFE; + } else { + ompi_mtl_ofi.mpi_thread_multiple = false; + hints->domain_attr->threading = FI_THREAD_DOMAIN; + } + + if ((MTL_OFI_TAG_AUTO == ofi_tag_mode) || (MTL_OFI_TAG_FULL == ofi_tag_mode)) { + hints->domain_attr->cq_data_size = sizeof(int); + } switch (control_progress) { case MTL_OFI_PROG_AUTO: @@ -506,8 +664,59 @@ * FI_VERSION provides binary backward and forward compatibility support * Specify the version of OFI is coded to, the provider will select struct * layouts that are compatible with this version. + * + * Note: API version 1.5 is the first version that supports + * FI_LOCAL_COMM / FI_REMOTE_COMM checking (and we definitely need + * that checking -- e.g., some providers are suitable for RXD or + * RXM, but can't provide local communication). */ - fi_version = FI_VERSION(1, 0); + fi_version = FI_VERSION(1, 5); + + /** + * The EFA provider in Libfabric versions prior to 1.10 contains a bug + * where the FI_LOCAL_COMM and FI_REMOTE_COMM capabilities are not + * advertised. However, we know that this provider supports both local and + * remote communication. We must exclude these capability bits in order to + * select EFA when we are using a version of Libfabric with this bug. + * + * Call fi_getinfo() without those capabilities and specifically ask for + * the EFA provider. This is safe to do as EFA is only supported on Amazon + * EC2 and EC2 only supports EFA and TCP-based networks. We'll also skip + * this logic if the user specifies an include list without EFA or adds EFA + * to the exclude list. + */ + if ((include_list && opal_common_ofi_is_in_list(include_list, "efa")) || + (exclude_list && !opal_common_ofi_is_in_list(exclude_list, "efa"))) { + hints_dup = fi_dupinfo(hints); + hints_dup->caps &= ~(FI_LOCAL_COMM | FI_REMOTE_COMM); + hints_dup->fabric_attr->prov_name = strdup("efa"); + + ret = fi_getinfo(fi_version, NULL, NULL, 0ULL, hints_dup, &providers); + + opal_output_verbose(1, opal_common_ofi.output, + "%s:%d: EFA specific fi_getinfo(): %s\n", + __FILE__, __LINE__, fi_strerror(-ret)); + + if (FI_ENODATA == -ret) { + /** + * EFA is not available so fall through to call fi_getinfo() again + * with the local/remote capabilities set. + */ + fi_freeinfo(hints_dup); + hints_dup = NULL; + } else if (0 != ret) { + opal_show_help("help-mtl-ofi.txt", "OFI call fail", true, + "fi_getinfo", + ompi_process_info.nodename, __FILE__, __LINE__, + fi_strerror(-ret), -ret); + goto error; + } else { + fi_freeinfo(hints); + hints = hints_dup; + hints_dup = NULL; + goto select_prov; + } + } /** * fi_getinfo: returns information about fabric services for reaching a @@ -520,6 +729,11 @@ 0ULL, /* Optional flag */ hints, /* In: Hints to filter providers */ &providers); /* Out: List of matching providers */ + + opal_output_verbose(1, opal_common_ofi.output, + "%s:%d: fi_getinfo(): %s\n", + __FILE__, __LINE__, fi_strerror(-ret)); + if (FI_ENODATA == -ret) { // It is not an error if no information is returned. goto error; @@ -531,53 +745,144 @@ goto error; } +select_prov: /** * Select a provider from the list returned by fi_getinfo(). */ - prov = select_ofi_provider(providers); + prov = select_ofi_provider(providers, include_list, exclude_list); if (!prov) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + opal_output_verbose(1, opal_common_ofi.output, "%s:%d: select_ofi_provider: no provider found\n", __FILE__, __LINE__); goto error; } + opal_argv_free(include_list); + include_list = NULL; + opal_argv_free(exclude_list); + exclude_list = NULL; + /** * Select the format of the OFI tag */ if ((MTL_OFI_TAG_AUTO == ofi_tag_mode) || (MTL_OFI_TAG_FULL == ofi_tag_mode)) { - ret = ompi_mtl_ofi_check_fi_remote_cq_data(fi_version, - hints, prov, - &prov_cq_data); - if (OMPI_SUCCESS != ret) { - goto error; - } else if (NULL == prov_cq_data) { + if (prov->domain_attr->cq_data_size >= sizeof(int) && + (prov->caps & FI_DIRECTED_RECV)) { + /* Use FI_REMOTE_CQ_DATA */ + ompi_mtl_ofi.fi_cq_data = true; + ompi_mtl_ofi_define_tag_mode(MTL_OFI_TAG_FULL, &ofi_tag_bits_for_cid); + } else { /* No support for FI_REMTOTE_CQ_DATA */ - fi_freeinfo(prov_cq_data); ompi_mtl_ofi.fi_cq_data = false; if (MTL_OFI_TAG_AUTO == ofi_tag_mode) { /* Fallback to MTL_OFI_TAG_1 */ - ompi_mtl_ofi_define_tag_mode(MTL_OFI_TAG_1); + ompi_mtl_ofi_define_tag_mode(MTL_OFI_TAG_1, &ofi_tag_bits_for_cid); } else { /* MTL_OFI_TAG_FULL */ - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + opal_output_verbose(1, opal_common_ofi.output, "%s:%d: OFI provider %s does not support FI_REMOTE_CQ_DATA\n", __FILE__, __LINE__, prov->fabric_attr->prov_name); goto error; } - } else { - /* Use FI_REMTOTE_CQ_DATA */ - ompi_mtl_ofi.fi_cq_data = true; - prov = prov_cq_data; - ompi_mtl_ofi_define_tag_mode(MTL_OFI_TAG_FULL); } } else { /* MTL_OFI_TAG_1 or MTL_OFI_TAG_2 */ ompi_mtl_ofi.fi_cq_data = false; - ompi_mtl_ofi_define_tag_mode(ofi_tag_mode); + ompi_mtl_ofi_define_tag_mode(ofi_tag_mode, &ofi_tag_bits_for_cid); + } + + /** + * Initialize the MTL OFI Symbol Tables & function pointers + * for specialized functions. + */ + + ompi_mtl_ofi_send_symtable_init(&ompi_mtl_ofi.sym_table); + ompi_mtl_ofi.base.mtl_send = + ompi_mtl_ofi.sym_table.ompi_mtl_ofi_send[ompi_mtl_ofi.fi_cq_data]; + + ompi_mtl_ofi_isend_symtable_init(&ompi_mtl_ofi.sym_table); + ompi_mtl_ofi.base.mtl_isend = + ompi_mtl_ofi.sym_table.ompi_mtl_ofi_isend[ompi_mtl_ofi.fi_cq_data]; + + ompi_mtl_ofi_irecv_symtable_init(&ompi_mtl_ofi.sym_table); + ompi_mtl_ofi.base.mtl_irecv = + ompi_mtl_ofi.sym_table.ompi_mtl_ofi_irecv[ompi_mtl_ofi.fi_cq_data]; + + ompi_mtl_ofi_iprobe_symtable_init(&ompi_mtl_ofi.sym_table); + ompi_mtl_ofi.base.mtl_iprobe = + ompi_mtl_ofi.sym_table.ompi_mtl_ofi_iprobe[ompi_mtl_ofi.fi_cq_data]; + + ompi_mtl_ofi_improbe_symtable_init(&ompi_mtl_ofi.sym_table); + ompi_mtl_ofi.base.mtl_improbe = + ompi_mtl_ofi.sym_table.ompi_mtl_ofi_improbe[ompi_mtl_ofi.fi_cq_data]; + + /** + * Check for potential bits in the OFI tag that providers may be reserving + * for internal usage (see mem_tag_format in fi_endpoint man page). + */ + + ofi_tag_leading_zeros = 0; + while (!((prov->ep_attr->mem_tag_format << ofi_tag_leading_zeros++) & + (uint64_t) MTL_OFI_HIGHEST_TAG_BIT) && + /* Do not keep looping if the provider does not support enough bits */ + (ofi_tag_bits_for_cid >= MTL_OFI_MINIMUM_CID_BITS)){ + ofi_tag_bits_for_cid--; + } + + if (ofi_tag_bits_for_cid < MTL_OFI_MINIMUM_CID_BITS) { + opal_show_help("help-mtl-ofi.txt", "Not enough bits for CID", true, + prov->fabric_attr->prov_name, + prov->fabric_attr->prov_name, + ompi_process_info.nodename, __FILE__, __LINE__); + goto error; } + /* Update the maximum supported Communicator ID */ + ompi_mtl_ofi.base.mtl_max_contextid = (int)((1ULL << ofi_tag_bits_for_cid) - 1); ompi_mtl_ofi.num_peers = 0; + /* Check if Scalable Endpoints can be enabled for the provider */ + sep_support_in_provider = 0; + if ((prov->domain_attr->max_ep_tx_ctx > 1) || + (prov->domain_attr->max_ep_rx_ctx > 1)) { + sep_support_in_provider = 1; + } + + if (1 == ompi_mtl_ofi.enable_sep) { + if (0 == sep_support_in_provider) { + opal_show_help("help-mtl-ofi.txt", "SEP unavailable", true, + prov->fabric_attr->prov_name, + ompi_process_info.nodename, __FILE__, __LINE__); + goto error; + } else if (1 == sep_support_in_provider) { + opal_output_verbose(1, opal_common_ofi.output, + "%s:%d: Scalable EP supported in %s provider. Enabling in MTL.\n", + __FILE__, __LINE__, prov->fabric_attr->prov_name); + } + } else { + /* + * Scalable Endpoints is required for Thread Grouping feature + */ + if (1 == ompi_mtl_ofi.thread_grouping) { + opal_show_help("help-mtl-ofi.txt", "SEP required", true, + ompi_process_info.nodename, __FILE__, __LINE__); + goto error; + } + } + + /* this must be called during single threaded part of the code and + * before Libfabric configures its memory monitors. Easiest to do + * that before domain open. Silently ignore not-supported errors, + * as they are not critical to program correctness, but only + * indicate that LIbfabric will have to pick a different, possibly + * less optimial, monitor. */ + ret = opal_common_ofi_export_memory_monitor(); + if (0 != ret && -FI_ENOSYS != ret) { + opal_output_verbose(1, opal_common_ofi.output, + "Failed to inject Libfabric memory monitor: %s", + fi_strerror(-ret)); + } + + /** * Open fabric * The getinfo struct returns a fabric attribute struct that can be used to @@ -596,6 +901,30 @@ } /** + * Unfortunately the attempt to implement FI_MR_SCALABLE in the GNI provider + * doesn't work, at least not well. Since we're asking for the 1.5 libfabric + * API now, we have to tell GNI we want to use Mr. Basic. Using FI_MR_BASIC + * rather than FI_MR_VIRT_ADDR | FI_MR_ALLOCATED | FI_MR_PROV_KEY to stay + * compatible with older libfabrics. + */ + if (!strncmp(prov->fabric_attr->prov_name,"gni",3)) { + prov->domain_attr->mr_mode = FI_MR_BASIC; + } + +#if OPAL_CUDA_SUPPORT + /** + * Some providers do not require the use of the CUDA convertor + * in OMPI and its use will cause performance degradation. The + * following providers will disable it when selected. + */ + if (!strncmp(prov->fabric_attr->prov_name, "psm3", 4) + || !strncmp(prov->fabric_attr->prov_name, "psm2", 4)) + { + ompi_mtl_ofi.base.mtl_flags |= MCA_MTL_BASE_FLAG_CUDA_INIT_DISABLE; + } +#endif /* OPAL_CUDA_SUPPORT */ + + /** * Create the access domain, which is the physical or virtual network or * hardware port/collection of ports. Returns a domain object that can be * used to create endpoints. See man fi_domain for details. @@ -613,101 +942,85 @@ } /** - * Create a transport level communication endpoint. To use the endpoint, - * it must be bound to completion counters or event queues and enabled, - * and the resources consumed by it, such as address vectors, counters, - * completion queues, etc. - * see man fi_endpoint for more details. - */ - ret = fi_endpoint(ompi_mtl_ofi.domain, /* In: Domain object */ - prov, /* In: Provider */ - &ompi_mtl_ofi.ep, /* Out: Endpoint object */ - NULL); /* Optional context */ - if (0 != ret) { - opal_show_help("help-mtl-ofi.txt", "OFI call fail", true, - "fi_endpoint", - ompi_process_info.nodename, __FILE__, __LINE__, - fi_strerror(-ret), -ret); - goto error; - } - - /** * Save the maximum sizes. */ ompi_mtl_ofi.max_inject_size = prov->tx_attr->inject_size; ompi_mtl_ofi.max_msg_size = prov->ep_attr->max_msg_size; /** - * Create the objects that will be bound to the endpoint. - * The objects include: - * - completion queue for events - * - address vector of other endpoint addresses - * - dynamic memory-spanning memory region + * The user is not allowed to exceed MTL_OFI_MAX_PROG_EVENT_COUNT. + * The reason is because progress entries array is now a TLS variable + * as opposed to being allocated on the heap for thread-safety purposes. */ - cq_attr.format = FI_CQ_FORMAT_TAGGED; + if (ompi_mtl_ofi.ofi_progress_event_count > MTL_OFI_MAX_PROG_EVENT_COUNT) { + ompi_mtl_ofi.ofi_progress_event_count = MTL_OFI_MAX_PROG_EVENT_COUNT; + } /** - * If a user has set an ofi_progress_event_count > the default, then - * the CQ size hint is set to the user's desired value such that - * the CQ created will have enough slots to store up to - * ofi_progress_event_count events. If a user has not set the - * ofi_progress_event_count, then the provider is trusted to set a - * default high CQ size and the CQ size hint is left unspecified. + * Create a transport level communication endpoint. To use the endpoint, + * it must be bound to the resources consumed by it such as address + * vectors, completion counters or event queues etc, and enabled. + * See man fi_endpoint for more details. */ - if (ompi_mtl_ofi.ofi_progress_event_count > 100) { - cq_attr.size = ompi_mtl_ofi.ofi_progress_event_count; - } - ret = fi_cq_open(ompi_mtl_ofi.domain, &cq_attr, &ompi_mtl_ofi.cq, NULL); - if (ret) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: fi_cq_open failed: %s\n", - __FILE__, __LINE__, fi_strerror(-ret)); - goto error; - } + /* use the universe size as a rough guess on the address vector + * size hint that should be passed to fi_av_open(). For regular + * endpoints, the count will be the universe size. For scalable + * endpoints, the count will be the universe size multiplied by + * the number of contexts. In either case, if the universe grows + * (via dynamic processes), the count is a hint, not a hard limit, + * so libfabric will just be slightly less efficient. + */ + univ_size_str = getenv("OMPI_UNIVERSE_SIZE"); + if (NULL == univ_size_str || + (universe_size = strtol(univ_size_str, NULL, 0)) <= 0) { + universe_size = ompi_proc_world_size(); + } + + if (1 == ompi_mtl_ofi.enable_sep) { + max_ofi_ctxts = (prov->domain_attr->max_ep_tx_ctx < + prov->domain_attr->max_ep_rx_ctx) ? + prov->domain_attr->max_ep_tx_ctx : + prov->domain_attr->max_ep_rx_ctx; + + num_local_ranks = 1 + ompi_process_info.num_local_peers; + if (max_ofi_ctxts <= num_local_ranks) { + opal_show_help("help-mtl-ofi.txt", "Local ranks exceed ofi contexts", + true, prov->fabric_attr->prov_name, + ompi_process_info.nodename, __FILE__, __LINE__); + goto error; + } - av_attr.type = (MTL_OFI_AV_TABLE == av_type) ? FI_AV_TABLE: FI_AV_MAP; + /* Provision enough contexts to service all ranks in a node */ + max_ofi_ctxts /= num_local_ranks; - ret = fi_av_open(ompi_mtl_ofi.domain, &av_attr, &ompi_mtl_ofi.av, NULL); - if (ret) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: fi_av_open failed: %s\n", - __FILE__, __LINE__, fi_strerror(-ret)); - goto error; - } + /* + * If num ctxts user specified is more than max allowed, limit to max + * and start round-robining. Print warning to user. + */ + if (max_ofi_ctxts < ompi_mtl_ofi.num_ofi_contexts) { + opal_show_help("help-mtl-ofi.txt", "Ctxts exceeded available", + true, max_ofi_ctxts, + ompi_process_info.nodename, __FILE__, __LINE__); + ompi_mtl_ofi.num_ofi_contexts = max_ofi_ctxts; + } - /** - * Bind the CQ and AV to the endpoint object. - */ - ret = fi_ep_bind(ompi_mtl_ofi.ep, - (fid_t)ompi_mtl_ofi.cq, - FI_TRANSMIT | FI_RECV | FI_SELECTIVE_COMPLETION); - if (0 != ret) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: fi_bind CQ-EP failed: %s\n", - __FILE__, __LINE__, fi_strerror(-ret)); - goto error; + ret = ompi_mtl_ofi_init_sep(prov, universe_size); + } else { + ret = ompi_mtl_ofi_init_regular_ep(prov, universe_size); } - ret = fi_ep_bind(ompi_mtl_ofi.ep, - (fid_t)ompi_mtl_ofi.av, - 0); - if (0 != ret) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: fi_bind AV-EP failed: %s\n", - __FILE__, __LINE__, fi_strerror(-ret)); + if (OMPI_SUCCESS != ret) { goto error; } - /** - * Enable the endpoint for communication - * This commits the bind operations. - */ - ret = fi_enable(ompi_mtl_ofi.ep); + ompi_mtl_ofi.total_ctxts_used = 0; + ompi_mtl_ofi.threshold_comm_context_id = 0; + + /* Enable Endpoint for communication */ + ret = fi_enable(ompi_mtl_ofi.sep); if (0 != ret) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: fi_enable failed: %s\n", - __FILE__, __LINE__, fi_strerror(-ret)); + MTL_OFI_LOG_FI_ERR(ret, "fi_enable failed"); goto error; } @@ -725,11 +1038,11 @@ * Get our address and publish it with modex. */ namelen = sizeof(ep_name); - ret = fi_getname((fid_t)ompi_mtl_ofi.ep, &ep_name[0], &namelen); + ret = fi_getname((fid_t)ompi_mtl_ofi.sep, + &ep_name[0], + &namelen); if (ret) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: fi_getname failed: %s\n", - __FILE__, __LINE__, fi_strerror(-ret)); + MTL_OFI_LOG_FI_ERR(ret, "fi_getname failed"); goto error; } @@ -738,7 +1051,7 @@ &ep_name, namelen); if (OMPI_SUCCESS != ret) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + opal_output_verbose(1, opal_common_ofi.output, "%s:%d: modex_send failed: %d\n", __FILE__, __LINE__, ret); goto error; @@ -751,20 +1064,15 @@ */ ompi_mtl_ofi.any_addr = FI_ADDR_UNSPEC; - /** - * Activate progress callback. - */ - ret = opal_progress_register(ompi_mtl_ofi_progress_no_inline); - if (OMPI_SUCCESS != ret) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: opal_progress_register failed: %d\n", - __FILE__, __LINE__, ret); - goto error; - } - return &ompi_mtl_ofi.base; error: + if (include_list) { + opal_argv_free(include_list); + } + if (exclude_list) { + opal_argv_free(exclude_list); + } if (providers) { (void) fi_freeinfo(providers); } @@ -774,14 +1082,20 @@ if (hints) { (void) fi_freeinfo(hints); } + if (hints_dup) { + (void) fi_freeinfo(hints_dup); + } + if (ompi_mtl_ofi.sep) { + (void) fi_close((fid_t)ompi_mtl_ofi.sep); + } if (ompi_mtl_ofi.av) { (void) fi_close((fid_t)ompi_mtl_ofi.av); } - if (ompi_mtl_ofi.cq) { - (void) fi_close((fid_t)ompi_mtl_ofi.cq); - } - if (ompi_mtl_ofi.ep) { - (void) fi_close((fid_t)ompi_mtl_ofi.ep); + if ((0 == ompi_mtl_ofi.enable_sep) && + ompi_mtl_ofi.ofi_ctxt != NULL && + ompi_mtl_ofi.ofi_ctxt[0].cq) { + /* Check if CQ[0] was created for non-SEP case and close if needed */ + (void) fi_close((fid_t)ompi_mtl_ofi.ofi_ctxt[0].cq); } if (ompi_mtl_ofi.domain) { (void) fi_close((fid_t)ompi_mtl_ofi.domain); @@ -789,6 +1103,12 @@ if (ompi_mtl_ofi.fabric) { (void) fi_close((fid_t)ompi_mtl_ofi.fabric); } + if (ompi_mtl_ofi.comm_to_context) { + free(ompi_mtl_ofi.comm_to_context); + } + if (ompi_mtl_ofi.ofi_ctxt) { + free(ompi_mtl_ofi.ofi_ctxt); + } return NULL; } @@ -801,16 +1121,24 @@ opal_progress_unregister(ompi_mtl_ofi_progress_no_inline); /* Close all the OFI objects */ - if ((ret = fi_close((fid_t)ompi_mtl_ofi.ep))) { + if ((ret = fi_close((fid_t)ompi_mtl_ofi.sep))) { goto finalize_err; } - if ((ret = fi_close((fid_t)ompi_mtl_ofi.cq))) { + if ((ret = fi_close((fid_t)ompi_mtl_ofi.av))) { goto finalize_err; } - if ((ret = fi_close((fid_t)ompi_mtl_ofi.av))) { - goto finalize_err; + if (0 == ompi_mtl_ofi.enable_sep) { + /* + * CQ[0] is bound to SEP object Nwhen SEP is not supported by a + * provider. OFI spec requires that we close the Endpoint that is bound + * to the CQ before closing the CQ itself. So, for the non-SEP case, we + * handle the closing of CQ[0] here. + */ + if ((ret = fi_close((fid_t)ompi_mtl_ofi.ofi_ctxt[0].cq))) { + goto finalize_err; + } } if ((ret = fi_close((fid_t)ompi_mtl_ofi.domain))) { @@ -821,6 +1149,10 @@ goto finalize_err; } + /* Free memory allocated for TX/RX contexts */ + free(ompi_mtl_ofi.comm_to_context); + free(ompi_mtl_ofi.ofi_ctxt); + return OMPI_SUCCESS; finalize_err: @@ -831,6 +1163,3 @@ return OMPI_ERROR; } - - - diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_endpoint.h openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_endpoint.h --- openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_endpoint.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_endpoint.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,7 @@ /* * Copyright (c) 2013-2016 Intel, Inc. All rights reserved + * Copyright (c) 2020 Amazon.com, Inc. or its affiliates. All Rights + * reserved. * * $COPYRIGHT$ * @@ -11,11 +13,9 @@ #ifndef OMPI_MTL_OFI_ENDPOINT_H #define OMPI_MTL_OFI_ENDPOINT_H -BEGIN_C_DECLS +#include "ompi/mca/pml/pml.h" -extern int ompi_mtl_ofi_add_procs(struct mca_mtl_base_module_t *mtl, - size_t nprocs, - struct ompi_proc_t **procs); +BEGIN_C_DECLS OBJ_CLASS_DECLARATION(mca_mtl_ofi_endpoint_t); @@ -38,10 +38,12 @@ typedef struct mca_mtl_ofi_endpoint_t mca_mtl_ofi_endpoint_t; -static inline mca_mtl_ofi_endpoint_t *ompi_mtl_ofi_get_endpoint (struct mca_mtl_base_module_t* mtl, ompi_proc_t *ompi_proc) +static inline mca_mtl_ofi_endpoint_t * +ompi_mtl_ofi_get_endpoint(struct mca_mtl_base_module_t* mtl, + ompi_proc_t *ompi_proc) { if (OPAL_UNLIKELY(NULL == ompi_proc->proc_endpoints[OMPI_PROC_ENDPOINT_TAG_MTL])) { - if (OPAL_UNLIKELY(OMPI_SUCCESS != ompi_mtl_ofi_add_procs(mtl, 1, &ompi_proc))) { + if (OPAL_UNLIKELY(OMPI_SUCCESS != MCA_PML_CALL(add_procs(&ompi_proc, 1)))) { /* Fatal error. exit() out */ opal_output(0, "%s:%d: *** The Open MPI OFI MTL is aborting the MPI job (via exit(3)).\n", __FILE__, __LINE__); diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi.h openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi.h --- openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi.h 2022-05-29 09:51:40.000000000 +0000 @@ -2,9 +2,13 @@ * Copyright (c) 2013-2018 Intel, Inc. All rights reserved * Copyright (c) 2017 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2019 Triad National Security, LLC. All rights + * Copyright (c) 2019-2020 Triad National Security, LLC. All rights + * reserved. + * Copyright (c) 2018-2020 Amazon.com, Inc. or its affiliates. All rights + * reserved. + * Copyright (c) 2021 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights * reserved. - * * $COPYRIGHT$ * * Additional copyrights may follow @@ -36,32 +40,70 @@ #include "ompi/mca/mtl/base/base.h" #include "ompi/mca/mtl/base/mtl_base_datatype.h" #include "ompi/message/message.h" +#include "opal/mca/common/ofi/common_ofi.h" +#include "mtl_ofi_opt.h" #include "mtl_ofi_types.h" #include "mtl_ofi_request.h" #include "mtl_ofi_endpoint.h" #include "mtl_ofi_compat.h" - BEGIN_C_DECLS extern mca_mtl_ofi_module_t ompi_mtl_ofi; extern mca_base_framework_t ompi_mtl_base_framework; +extern int ompi_mtl_ofi_add_procs(struct mca_mtl_base_module_t *mtl, + size_t nprocs, + struct ompi_proc_t** procs); + extern int ompi_mtl_ofi_del_procs(struct mca_mtl_base_module_t *mtl, size_t nprocs, struct ompi_proc_t **procs); int ompi_mtl_ofi_progress_no_inline(void); +#if OPAL_HAVE_THREAD_LOCAL +extern opal_thread_local int ompi_mtl_ofi_per_thread_ctx; +extern opal_thread_local struct fi_cq_tagged_entry ompi_mtl_ofi_wc[MTL_OFI_MAX_PROG_EVENT_COUNT]; +#endif + +/* Set OFI context for operations which generate completion events */ +__opal_attribute_always_inline__ static inline void +set_thread_context(int ctxt) +{ +#if OPAL_HAVE_THREAD_LOCAL + ompi_mtl_ofi_per_thread_ctx = ctxt; + return; +#endif +} + +/* Retrieve OFI context to use for CQ poll */ +__opal_attribute_always_inline__ static inline void +get_thread_context(int *ctxt) +{ +#if OPAL_HAVE_THREAD_LOCAL + *ctxt = ompi_mtl_ofi_per_thread_ctx; +#endif + return; +} + +#define MTL_OFI_CONTEXT_LOCK(ctxt_id) \ +OPAL_LIKELY(!opal_mutex_atomic_trylock(&ompi_mtl_ofi.ofi_ctxt[ctxt_id].context_lock)) + +#define MTL_OFI_CONTEXT_UNLOCK(ctxt_id) \ +opal_mutex_atomic_unlock(&ompi_mtl_ofi.ofi_ctxt[ctxt_id].context_lock) + __opal_attribute_always_inline__ static inline int -ompi_mtl_ofi_progress(void) +ompi_mtl_ofi_context_progress(int ctxt_id) { - ssize_t ret; int count = 0, i, events_read; - struct fi_cq_err_entry error = { 0 }; ompi_mtl_ofi_request_t *ofi_req = NULL; - struct fi_cq_tagged_entry wc[ompi_mtl_ofi.ofi_progress_event_count]; + struct fi_cq_err_entry error = { 0 }; + ssize_t ret; +#if !OPAL_HAVE_THREAD_LOCAL + struct fi_cq_tagged_entry ompi_mtl_ofi_wc[MTL_OFI_MAX_PROG_EVENT_COUNT]; +#endif /** * Read the work completions from the CQ. @@ -69,15 +111,16 @@ * Call the request's callback. */ while (true) { - ret = fi_cq_read(ompi_mtl_ofi.cq, (void *)&wc, ompi_mtl_ofi.ofi_progress_event_count); + ret = fi_cq_read(ompi_mtl_ofi.ofi_ctxt[ctxt_id].cq, (void *)&ompi_mtl_ofi_wc, + ompi_mtl_ofi.ofi_progress_event_count); if (ret > 0) { count+= ret; events_read = ret; for (i = 0; i < events_read; i++) { - if (NULL != wc[i].op_context) { - ofi_req = TO_OFI_REQ(wc[i].op_context); + if (NULL != ompi_mtl_ofi_wc[i].op_context) { + ofi_req = TO_OFI_REQ(ompi_mtl_ofi_wc[i].op_context); assert(ofi_req); - ret = ofi_req->event_callback(&wc[i], ofi_req); + ret = ofi_req->event_callback(&ompi_mtl_ofi_wc[i], ofi_req); if (OMPI_SUCCESS != ret) { opal_output(0, "%s:%d: Error returned by request event callback: %zd.\n" "*** The Open MPI OFI MTL is aborting the MPI job (via exit(3)).\n", @@ -92,10 +135,21 @@ * An error occured and is being reported via the CQ. * Read the error and forward it to the upper layer. */ - ret = fi_cq_readerr(ompi_mtl_ofi.cq, + ret = fi_cq_readerr(ompi_mtl_ofi.ofi_ctxt[ctxt_id].cq, &error, 0); if (0 > ret) { + /* + * In multi-threaded scenarios, any thread that attempts to read + * a CQ when there's a pending error CQ entry gets an + * -FI_EAVAIL. Without any serialization here (which is okay, + * since libfabric will protect access to critical CQ objects), + * all threads proceed to read from the error CQ, but only one + * thread fetches the entry while others get -FI_EAGAIN + * indicating an empty queue, which is not erroneous. + */ + if (ret == -FI_EAGAIN) + return count; opal_output(0, "%s:%d: Error returned from fi_cq_readerr: %s(%zd).\n" "*** The Open MPI OFI MTL is aborting the MPI job (via exit(3)).\n", __FILE__, __LINE__, fi_strerror(-ret), ret); @@ -126,6 +180,51 @@ } } } + + return count; +} + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_progress(void) +{ + int count = 0, ctxt_id = 0, i; + static volatile uint32_t num_calls = 0; + + get_thread_context(&ctxt_id); + + if (ompi_mtl_ofi.mpi_thread_multiple) { + if (MTL_OFI_CONTEXT_LOCK(ctxt_id)) { + count += ompi_mtl_ofi_context_progress(ctxt_id); + MTL_OFI_CONTEXT_UNLOCK(ctxt_id); + } + } else { + count += ompi_mtl_ofi_context_progress(ctxt_id); + } + +#if OPAL_HAVE_THREAD_LOCAL + /* + * Try to progress other CQs in round-robin fashion. + * Progress is only made if no events were read from the CQ + * local to the calling thread past 16 times. + */ + if (OPAL_UNLIKELY((count == 0) && ompi_mtl_ofi.mpi_thread_multiple && + (((num_calls++) & 0xF) == 0 ))) { + for (i = 0; i < ompi_mtl_ofi.total_ctxts_used - 1; i++) { + ctxt_id = (ctxt_id + 1) % ompi_mtl_ofi.total_ctxts_used; + + if (MTL_OFI_CONTEXT_LOCK(ctxt_id)) { + count += ompi_mtl_ofi_context_progress(ctxt_id); + MTL_OFI_CONTEXT_UNLOCK(ctxt_id); + } + + /* Upon any work done, exit to let other threads take lock */ + if (OPAL_LIKELY(count > 0)) { + break; + } + } + } +#endif + return count; } @@ -148,6 +247,13 @@ } while (OPAL_LIKELY(-FI_EAGAIN == RETURN)); \ } while (0); +#define MTL_OFI_LOG_FI_ERR(err, string) \ + do { \ + opal_output_verbose(1, opal_common_ofi.output, \ + "%s:%d:%s: %s\n", \ + __FILE__, __LINE__, string, fi_strerror(-err)); \ + } while(0); + /* MTL interface functions */ int ompi_mtl_ofi_finalize(struct mca_mtl_base_module_t *mtl); @@ -239,6 +345,19 @@ return OMPI_SUCCESS; } +/* Return OFI context ID associated with the specific communicator */ +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_map_comm_to_ctxt(uint32_t comm_id) +{ + /* For non-thread-grouping use case, only one context is used which is + * associated to MPI_COMM_WORLD, so use that. */ + if (0 == ompi_mtl_ofi.thread_grouping) { + comm_id = 0; + } + + return ompi_mtl_ofi.comm_to_context[comm_id]; +} + __opal_attribute_always_inline__ static inline int ompi_mtl_ofi_ssend_recv(ompi_mtl_ofi_request_t *ack_req, struct ompi_communicator_t *comm, @@ -248,49 +367,54 @@ uint64_t *match_bits, int tag) { - ssize_t ret = OMPI_SUCCESS; - ack_req = malloc(sizeof(ompi_mtl_ofi_request_t)); + ssize_t ret = OMPI_SUCCESS; + int ctxt_id = 0; - assert(ack_req); + ctxt_id = ompi_mtl_ofi_map_comm_to_ctxt(comm->c_contextid); + set_thread_context(ctxt_id); - ack_req->parent = ofi_req; - ack_req->event_callback = ompi_mtl_ofi_send_ack_callback; - ack_req->error_callback = ompi_mtl_ofi_send_ack_error_callback; + ack_req = malloc(sizeof(ompi_mtl_ofi_request_t)); + assert(ack_req); - ofi_req->completion_count += 1; + ack_req->parent = ofi_req; + ack_req->event_callback = ompi_mtl_ofi_send_ack_callback; + ack_req->error_callback = ompi_mtl_ofi_send_ack_error_callback; - MTL_OFI_RETRY_UNTIL_DONE(fi_trecv(ompi_mtl_ofi.ep, - NULL, - 0, - NULL, - *src_addr, - *match_bits | ompi_mtl_ofi.sync_send_ack, - 0, /* Exact match, no ignore bits */ - (void *) &ack_req->ctx), ret); - if (OPAL_UNLIKELY(0 > ret)) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: fi_trecv failed: %s(%zd)", - __FILE__, __LINE__, fi_strerror(-ret), ret); - free(ack_req); - return ompi_mtl_ofi_get_error(ret); - } + ofi_req->completion_count += 1; - /* The SYNC_SEND tag bit is set for the send operation only.*/ - MTL_OFI_SET_SYNC_SEND(*match_bits); - return OMPI_SUCCESS; + MTL_OFI_RETRY_UNTIL_DONE(fi_trecv(ompi_mtl_ofi.ofi_ctxt[ctxt_id].rx_ep, + NULL, + 0, + NULL, + *src_addr, + *match_bits | ompi_mtl_ofi.sync_send_ack, + 0, /* Exact match, no ignore bits */ + (void *) &ack_req->ctx), ret); + if (OPAL_UNLIKELY(0 > ret)) { + opal_output_verbose(1, opal_common_ofi.output, + "%s:%d: fi_trecv failed: %s(%zd)", + __FILE__, __LINE__, fi_strerror(-ret), ret); + free(ack_req); + return ompi_mtl_ofi_get_error(ret); + } + + /* The SYNC_SEND tag bit is set for the send operation only.*/ + MTL_OFI_SET_SYNC_SEND(*match_bits); + return OMPI_SUCCESS; } __opal_attribute_always_inline__ static inline int -ompi_mtl_ofi_send(struct mca_mtl_base_module_t *mtl, +ompi_mtl_ofi_send_generic(struct mca_mtl_base_module_t *mtl, struct ompi_communicator_t *comm, int dest, int tag, struct opal_convertor_t *convertor, - mca_pml_base_send_mode_t mode) + mca_pml_base_send_mode_t mode, + bool ofi_cq_data) { ssize_t ret = OMPI_SUCCESS; ompi_mtl_ofi_request_t ofi_req; - int ompi_ret; + int ompi_ret, ctxt_id = 0; void *start; bool free_after; size_t length; @@ -299,6 +423,10 @@ mca_mtl_ofi_endpoint_t *endpoint = NULL; ompi_mtl_ofi_request_t *ack_req = NULL; /* For synchronous send */ fi_addr_t src_addr = 0; + fi_addr_t sep_peer_fiaddr = 0; + + ctxt_id = ompi_mtl_ofi_map_comm_to_ctxt(comm->c_contextid); + set_thread_context(ctxt_id); /** * Create a send request, start it and wait until it completes. @@ -309,6 +437,9 @@ ompi_proc = ompi_comm_peer_lookup(comm, dest); endpoint = ompi_mtl_ofi_get_endpoint(mtl, ompi_proc); + /* For Scalable Endpoints, gather target receive context */ + sep_peer_fiaddr = fi_rx_addr(endpoint->peer_fiaddr, ctxt_id, ompi_mtl_ofi.rx_ctx_bits); + ompi_ret = ompi_mtl_datatype_pack(convertor, &start, &length, &free_after); if (OPAL_UNLIKELY(OMPI_SUCCESS != ompi_ret)) { return ompi_ret; @@ -326,9 +457,9 @@ return OMPI_ERROR; } - if (ompi_mtl_ofi.fi_cq_data) { + if (ofi_cq_data) { match_bits = mtl_ofi_create_send_tag_CQD(comm->c_contextid, tag); - src_addr = endpoint->peer_fiaddr; + src_addr = sep_peer_fiaddr; } else { match_bits = mtl_ofi_create_send_tag(comm->c_contextid, comm->c_my_rank, tag); @@ -344,28 +475,26 @@ } if (ompi_mtl_ofi.max_inject_size >= length) { - if (ompi_mtl_ofi.fi_cq_data) { - MTL_OFI_RETRY_UNTIL_DONE(fi_tinjectdata(ompi_mtl_ofi.ep, + if (ofi_cq_data) { + MTL_OFI_RETRY_UNTIL_DONE(fi_tinjectdata(ompi_mtl_ofi.ofi_ctxt[ctxt_id].tx_ep, start, length, comm->c_my_rank, - endpoint->peer_fiaddr, + sep_peer_fiaddr, match_bits), ret); } else { - MTL_OFI_RETRY_UNTIL_DONE(fi_tinject(ompi_mtl_ofi.ep, + MTL_OFI_RETRY_UNTIL_DONE(fi_tinject(ompi_mtl_ofi.ofi_ctxt[ctxt_id].tx_ep, start, length, - endpoint->peer_fiaddr, + sep_peer_fiaddr, match_bits), ret); } if (OPAL_UNLIKELY(0 > ret)) { - char *fi_api = ompi_mtl_ofi.fi_cq_data ? "fi_tinjectddata" : "fi_tinject"; - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: %s failed: %s(%zd)", - __FILE__, __LINE__,fi_api, fi_strerror(-ret), ret); - + MTL_OFI_LOG_FI_ERR(ret, + ofi_cq_data ? "fi_tinjectdata failed" + : "fi_tinject failed"); if (ack_req) { - fi_cancel((fid_t)ompi_mtl_ofi.ep, &ack_req->ctx); + fi_cancel((fid_t)ompi_mtl_ofi.ofi_ctxt[ctxt_id].tx_ep, &ack_req->ctx); free(ack_req); } @@ -374,31 +503,28 @@ } } else { ofi_req.completion_count += 1; - if (ompi_mtl_ofi.fi_cq_data) { - MTL_OFI_RETRY_UNTIL_DONE(fi_tsenddata(ompi_mtl_ofi.ep, + if (ofi_cq_data) { + MTL_OFI_RETRY_UNTIL_DONE(fi_tsenddata(ompi_mtl_ofi.ofi_ctxt[ctxt_id].tx_ep, start, length, NULL, comm->c_my_rank, - endpoint->peer_fiaddr, + sep_peer_fiaddr, match_bits, (void *) &ofi_req.ctx), ret); } else { - MTL_OFI_RETRY_UNTIL_DONE(fi_tsend(ompi_mtl_ofi.ep, + MTL_OFI_RETRY_UNTIL_DONE(fi_tsend(ompi_mtl_ofi.ofi_ctxt[ctxt_id].tx_ep, start, length, NULL, - endpoint->peer_fiaddr, + sep_peer_fiaddr, match_bits, (void *) &ofi_req.ctx), ret); } if (OPAL_UNLIKELY(0 > ret)) { - char *fi_api = ompi_mtl_ofi.fi_cq_data ? "fi_tsendddata" : "fi_send"; - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: %s failed: %s(%zd)", - __FILE__, __LINE__,fi_api, fi_strerror(-ret), ret); - free(fi_api); - + MTL_OFI_LOG_FI_ERR(ret, + ofi_cq_data ? "fi_tsenddata failed" + : "fi_tsend failed"); ofi_req.status.MPI_ERROR = ompi_mtl_ofi_get_error(ret); goto free_request_buffer; } @@ -421,18 +547,19 @@ } __opal_attribute_always_inline__ static inline int -ompi_mtl_ofi_isend(struct mca_mtl_base_module_t *mtl, +ompi_mtl_ofi_isend_generic(struct mca_mtl_base_module_t *mtl, struct ompi_communicator_t *comm, int dest, int tag, struct opal_convertor_t *convertor, mca_pml_base_send_mode_t mode, bool blocking, - mca_mtl_request_t *mtl_request) + mca_mtl_request_t *mtl_request, + bool ofi_cq_data) { ssize_t ret = OMPI_SUCCESS; ompi_mtl_ofi_request_t *ofi_req = (ompi_mtl_ofi_request_t *) mtl_request; - int ompi_ret; + int ompi_ret, ctxt_id = 0; void *start; size_t length; bool free_after; @@ -440,7 +567,10 @@ ompi_proc_t *ompi_proc = NULL; mca_mtl_ofi_endpoint_t *endpoint = NULL; ompi_mtl_ofi_request_t *ack_req = NULL; /* For synchronous send */ - fi_addr_t src_addr = 0; + fi_addr_t sep_peer_fiaddr = 0; + + ctxt_id = ompi_mtl_ofi_map_comm_to_ctxt(comm->c_contextid); + set_thread_context(ctxt_id); ofi_req->event_callback = ompi_mtl_ofi_isend_callback; ofi_req->error_callback = ompi_mtl_ofi_send_error_callback; @@ -448,6 +578,9 @@ ompi_proc = ompi_comm_peer_lookup(comm, dest); endpoint = ompi_mtl_ofi_get_endpoint(mtl, ompi_proc); + /* For Scalable Endpoints, gather target receive context */ + sep_peer_fiaddr = fi_rx_addr(endpoint->peer_fiaddr, ctxt_id, ompi_mtl_ofi.rx_ctx_bits); + ompi_ret = ompi_mtl_datatype_pack(convertor, &start, &length, &free_after); if (OPAL_UNLIKELY(OMPI_SUCCESS != ompi_ret)) return ompi_ret; @@ -463,9 +596,8 @@ return OMPI_ERROR; } - if (ompi_mtl_ofi.fi_cq_data) { + if (ofi_cq_data) { match_bits = mtl_ofi_create_send_tag_CQD(comm->c_contextid, tag); - src_addr = endpoint->peer_fiaddr; } else { match_bits = mtl_ofi_create_send_tag(comm->c_contextid, comm->c_my_rank, tag); @@ -473,43 +605,35 @@ } if (OPAL_UNLIKELY(MCA_PML_BASE_SEND_SYNCHRONOUS == mode)) { - ofi_req->status.MPI_ERROR = ompi_mtl_ofi_ssend_recv(ack_req, comm, &src_addr, + ofi_req->status.MPI_ERROR = ompi_mtl_ofi_ssend_recv(ack_req, comm, &sep_peer_fiaddr, ofi_req, endpoint, &match_bits, tag); if (OPAL_UNLIKELY(ofi_req->status.MPI_ERROR != OMPI_SUCCESS)) goto free_request_buffer; } - if (ompi_mtl_ofi.fi_cq_data) { - MTL_OFI_RETRY_UNTIL_DONE(fi_tsenddata(ompi_mtl_ofi.ep, + if (ofi_cq_data) { + MTL_OFI_RETRY_UNTIL_DONE(fi_tsenddata(ompi_mtl_ofi.ofi_ctxt[ctxt_id].tx_ep, start, length, NULL, comm->c_my_rank, - endpoint->peer_fiaddr, + sep_peer_fiaddr, match_bits, (void *) &ofi_req->ctx), ret); } else { - MTL_OFI_RETRY_UNTIL_DONE(fi_tsend(ompi_mtl_ofi.ep, + MTL_OFI_RETRY_UNTIL_DONE(fi_tsend(ompi_mtl_ofi.ofi_ctxt[ctxt_id].tx_ep, start, length, NULL, - endpoint->peer_fiaddr, + sep_peer_fiaddr, match_bits, (void *) &ofi_req->ctx), ret); } if (OPAL_UNLIKELY(0 > ret)) { - char *fi_api; - if (ompi_mtl_ofi.fi_cq_data) { - asprintf( &fi_api, "fi_tsendddata") ; - } - else { - asprintf( &fi_api, "fi_send") ; - } - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: %s failed: %s(%zd)", - __FILE__, __LINE__,fi_api, fi_strerror(-ret), ret); - free(fi_api); + MTL_OFI_LOG_FI_ERR(ret, + ofi_cq_data ? "fi_tsenddata failed" + : "fi_tsend failed"); ofi_req->status.MPI_ERROR = ompi_mtl_ofi_get_error(ret); } @@ -529,7 +653,7 @@ ompi_mtl_ofi_recv_callback(struct fi_cq_tagged_entry *wc, ompi_mtl_ofi_request_t *ofi_req) { - int ompi_ret; + int ompi_ret, ctxt_id = 0; ssize_t ret; ompi_proc_t *ompi_proc = NULL; mca_mtl_ofi_endpoint_t *endpoint = NULL; @@ -537,6 +661,8 @@ ompi_status_public_t *status = NULL; struct fi_msg_tagged tagged_msg; + ctxt_id = ompi_mtl_ofi_map_comm_to_ctxt(ofi_req->comm->c_contextid); + assert(ofi_req->super.ompi_req); status = &ofi_req->super.ompi_req->req_status; @@ -551,7 +677,7 @@ status->_ucount = wc->len; if (OPAL_UNLIKELY(wc->len > ofi_req->length)) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + opal_output_verbose(1, opal_common_ofi.output, "truncate expected: %ld %ld", wc->len, ofi_req->length); status->MPI_ERROR = MPI_ERR_TRUNCATE; @@ -565,7 +691,7 @@ ofi_req->buffer, wc->len); if (OPAL_UNLIKELY(OMPI_SUCCESS != ompi_ret)) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + opal_output_verbose(1, opal_common_ofi.output, "%s:%d: ompi_mtl_datatype_unpack failed: %d", __FILE__, __LINE__, ompi_ret); status->MPI_ERROR = ompi_ret; @@ -599,7 +725,7 @@ if (ompi_mtl_ofi.any_addr == ofi_req->remote_addr) { ompi_proc = ompi_comm_peer_lookup(ofi_req->comm, src); endpoint = ompi_mtl_ofi_get_endpoint(ofi_req->mtl, ompi_proc); - ofi_req->remote_addr = endpoint->peer_fiaddr; + ofi_req->remote_addr = fi_rx_addr(endpoint->peer_fiaddr, ctxt_id, ompi_mtl_ofi.rx_ctx_bits); } tagged_msg.msg_iov = NULL; @@ -615,12 +741,10 @@ tagged_msg.context = NULL; tagged_msg.data = 0; - MTL_OFI_RETRY_UNTIL_DONE(fi_tsendmsg(ompi_mtl_ofi.ep, + MTL_OFI_RETRY_UNTIL_DONE(fi_tsendmsg(ompi_mtl_ofi.ofi_ctxt[ctxt_id].tx_ep, &tagged_msg, 0), ret); if (OPAL_UNLIKELY(0 > ret)) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: fi_tsendmsg failed: %s(%zd)", - __FILE__, __LINE__, fi_strerror(-ret), ret); + MTL_OFI_LOG_FI_ERR(ret, "fi_tsendmsg failed"); status->MPI_ERROR = OMPI_ERROR; } } @@ -659,14 +783,15 @@ } __opal_attribute_always_inline__ static inline int -ompi_mtl_ofi_irecv(struct mca_mtl_base_module_t *mtl, +ompi_mtl_ofi_irecv_generic(struct mca_mtl_base_module_t *mtl, struct ompi_communicator_t *comm, int src, int tag, struct opal_convertor_t *convertor, - mca_mtl_request_t *mtl_request) + mca_mtl_request_t *mtl_request, + bool ofi_cq_data) { - int ompi_ret = OMPI_SUCCESS; + int ompi_ret = OMPI_SUCCESS, ctxt_id = 0; ssize_t ret; uint64_t match_bits, mask_bits; fi_addr_t remote_addr = ompi_mtl_ofi.any_addr; @@ -677,12 +802,14 @@ size_t length; bool free_after; + ctxt_id = ompi_mtl_ofi_map_comm_to_ctxt(comm->c_contextid); + set_thread_context(ctxt_id); - if (ompi_mtl_ofi.fi_cq_data) { + if (ofi_cq_data) { if (MPI_ANY_SOURCE != src) { ompi_proc = ompi_comm_peer_lookup(comm, src); endpoint = ompi_mtl_ofi_get_endpoint(mtl, ompi_proc); - remote_addr = endpoint->peer_fiaddr; + remote_addr = fi_rx_addr(endpoint->peer_fiaddr, ctxt_id, ompi_mtl_ofi.rx_ctx_bits); } mtl_ofi_create_recv_tag_CQD(&match_bits, &mask_bits, comm->c_contextid, @@ -713,7 +840,7 @@ ofi_req->remote_addr = remote_addr; ofi_req->match_bits = match_bits; - MTL_OFI_RETRY_UNTIL_DONE(fi_trecv(ompi_mtl_ofi.ep, + MTL_OFI_RETRY_UNTIL_DONE(fi_trecv(ompi_mtl_ofi.ofi_ctxt[ctxt_id].rx_ep, start, length, NULL, @@ -725,9 +852,7 @@ if (NULL != ofi_req->buffer) { free(ofi_req->buffer); } - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: fi_trecv failed: %s(%zd)", - __FILE__, __LINE__, fi_strerror(-ret), ret); + MTL_OFI_LOG_FI_ERR(ret, "fi_trecv failed"); return ompi_mtl_ofi_get_error(ret); } @@ -798,9 +923,13 @@ bool free_after; struct iovec iov; struct fi_msg_tagged msg; - int ompi_ret; + int ompi_ret, ctxt_id = 0; ssize_t ret; uint64_t msgflags = FI_CLAIM | FI_COMPLETION; + struct ompi_communicator_t *comm = (*message)->comm; + + ctxt_id = ompi_mtl_ofi_map_comm_to_ctxt(comm->c_contextid); + set_thread_context(ctxt_id); ompi_ret = ompi_mtl_datatype_recv_buf(convertor, &start, @@ -833,14 +962,14 @@ msg.context = (void *)&ofi_req->ctx; msg.data = 0; - MTL_OFI_RETRY_UNTIL_DONE(fi_trecvmsg(ompi_mtl_ofi.ep, &msg, msgflags), ret); + MTL_OFI_RETRY_UNTIL_DONE(fi_trecvmsg(ompi_mtl_ofi.ofi_ctxt[ctxt_id].rx_ep, &msg, msgflags), ret); if (OPAL_UNLIKELY(0 > ret)) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: fi_trecvmsg failed: %s(%zd)", - __FILE__, __LINE__, fi_strerror(-ret), ret); + MTL_OFI_LOG_FI_ERR(ret, "fi_trecvmsg failed"); return ompi_mtl_ofi_get_error(ret); } + *message = MPI_MESSAGE_NULL; + return OMPI_SUCCESS; } @@ -869,19 +998,30 @@ ompi_mtl_ofi_probe_error_callback(struct fi_cq_err_entry *error, ompi_mtl_ofi_request_t *ofi_req) { - ofi_req->status.MPI_ERROR = MPI_ERR_INTERN; ofi_req->completion_count--; - return OMPI_SUCCESS; + /* + * Receives posted with FI_PEEK and friends will get an error + * completion with FI_ENOMSG. This just indicates the lack of a match for + * the probe and is not an error case. All other error cases are + * provider-internal errors and should be flagged as such. + */ + if (error->err == FI_ENOMSG) + return OMPI_SUCCESS; + + ofi_req->status.MPI_ERROR = MPI_ERR_INTERN; + + return OMPI_ERROR; } __opal_attribute_always_inline__ static inline int -ompi_mtl_ofi_iprobe(struct mca_mtl_base_module_t *mtl, +ompi_mtl_ofi_iprobe_generic(struct mca_mtl_base_module_t *mtl, struct ompi_communicator_t *comm, int src, int tag, int *flag, - struct ompi_status_public_t *status) + struct ompi_status_public_t *status, + bool ofi_cq_data) { struct ompi_mtl_ofi_request_t ofi_req; ompi_proc_t *ompi_proc = NULL; @@ -891,13 +1031,17 @@ ssize_t ret; struct fi_msg_tagged msg; uint64_t msgflags = FI_PEEK | FI_COMPLETION; + int ctxt_id = 0; - if (ompi_mtl_ofi.fi_cq_data) { + ctxt_id = ompi_mtl_ofi_map_comm_to_ctxt(comm->c_contextid); + set_thread_context(ctxt_id); + + if (ofi_cq_data) { /* If the source is known, use its peer_fiaddr. */ if (MPI_ANY_SOURCE != src) { ompi_proc = ompi_comm_peer_lookup( comm, src ); endpoint = ompi_mtl_ofi_get_endpoint(mtl, ompi_proc); - remote_proc = endpoint->peer_fiaddr; + remote_proc = fi_rx_addr(endpoint->peer_fiaddr, ctxt_id, ompi_mtl_ofi.rx_ctx_bits); } mtl_ofi_create_recv_tag_CQD(&match_bits, &mask_bits, comm->c_contextid, @@ -912,7 +1056,6 @@ /** * fi_trecvmsg with FI_PEEK: * Initiate a search for a match in the hardware or software queue. - * The search can complete immediately with -ENOMSG. * If successful, libfabric will enqueue a context entry into the completion * queue to make the search nonblocking. This code will poll until the * entry is enqueued. @@ -932,17 +1075,9 @@ ofi_req.completion_count = 1; ofi_req.match_state = 0; - MTL_OFI_RETRY_UNTIL_DONE(fi_trecvmsg(ompi_mtl_ofi.ep, &msg, msgflags), ret); - if (-FI_ENOMSG == ret) { - /** - * The search request completed but no matching message was found. - */ - *flag = 0; - return OMPI_SUCCESS; - } else if (OPAL_UNLIKELY(0 > ret)) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: fi_trecvmsg failed: %s(%zd)", - __FILE__, __LINE__, fi_strerror(-ret), ret); + MTL_OFI_RETRY_UNTIL_DONE(fi_trecvmsg(ompi_mtl_ofi.ofi_ctxt[ctxt_id].rx_ep, &msg, msgflags), ret); + if (OPAL_UNLIKELY(0 > ret)) { + MTL_OFI_LOG_FI_ERR(ret, "fi_trecvmsg failed"); return ompi_mtl_ofi_get_error(ret); } @@ -953,7 +1088,7 @@ *flag = ofi_req.match_state; if (1 == *flag) { if (MPI_STATUS_IGNORE != status) { - *status = ofi_req.status; + OMPI_COPY_STATUS(status, ofi_req.status, false); } } @@ -961,13 +1096,14 @@ } __opal_attribute_always_inline__ static inline int -ompi_mtl_ofi_improbe(struct mca_mtl_base_module_t *mtl, +ompi_mtl_ofi_improbe_generic(struct mca_mtl_base_module_t *mtl, struct ompi_communicator_t *comm, int src, int tag, int *matched, struct ompi_message_t **message, - struct ompi_status_public_t *status) + struct ompi_status_public_t *status, + bool ofi_cq_data) { struct ompi_mtl_ofi_request_t *ofi_req; ompi_proc_t *ompi_proc = NULL; @@ -977,6 +1113,10 @@ ssize_t ret; struct fi_msg_tagged msg; uint64_t msgflags = FI_PEEK | FI_CLAIM | FI_COMPLETION; + int ctxt_id = 0; + + ctxt_id = ompi_mtl_ofi_map_comm_to_ctxt(comm->c_contextid); + set_thread_context(ctxt_id); ofi_req = malloc(sizeof *ofi_req); if (NULL == ofi_req) { @@ -987,11 +1127,11 @@ * If the source is known, use its peer_fiaddr. */ - if (ompi_mtl_ofi.fi_cq_data) { + if (ofi_cq_data) { if (MPI_ANY_SOURCE != src) { ompi_proc = ompi_comm_peer_lookup( comm, src ); endpoint = ompi_mtl_ofi_get_endpoint(mtl, ompi_proc); - remote_proc = endpoint->peer_fiaddr; + remote_proc = fi_rx_addr(endpoint->peer_fiaddr, ctxt_id, ompi_mtl_ofi.rx_ctx_bits); } mtl_ofi_create_recv_tag_CQD(&match_bits, &mask_bits, comm->c_contextid, @@ -1006,7 +1146,6 @@ /** * fi_trecvmsg with FI_PEEK and FI_CLAIM: * Initiate a search for a match in the hardware or software queue. - * The search can complete immediately with -ENOMSG. * If successful, libfabric will enqueue a context entry into the completion * queue to make the search nonblocking. This code will poll until the * entry is enqueued. @@ -1027,18 +1166,9 @@ ofi_req->match_state = 0; ofi_req->mask_bits = mask_bits; - MTL_OFI_RETRY_UNTIL_DONE(fi_trecvmsg(ompi_mtl_ofi.ep, &msg, msgflags), ret); - if (-FI_ENOMSG == ret) { - /** - * The search request completed but no matching message was found. - */ - *matched = 0; - free(ofi_req); - return OMPI_SUCCESS; - } else if (OPAL_UNLIKELY(0 > ret)) { - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "%s:%d: fi_trecvmsg failed: %s(%zd)", - __FILE__, __LINE__, fi_strerror(-ret), ret); + MTL_OFI_RETRY_UNTIL_DONE(fi_trecvmsg(ompi_mtl_ofi.ofi_ctxt[ctxt_id].rx_ep, &msg, msgflags), ret); + if (OPAL_UNLIKELY(0 > ret)) { + MTL_OFI_LOG_FI_ERR(ret, "fi_trecvmsg failed"); free(ofi_req); return ompi_mtl_ofi_get_error(ret); } @@ -1050,7 +1180,7 @@ *matched = ofi_req->match_state; if (1 == *matched) { if (MPI_STATUS_IGNORE != status) { - *status = ofi_req->status; + OMPI_COPY_STATUS(status, ofi_req->status, false); } (*message) = ompi_message_alloc(); @@ -1076,9 +1206,11 @@ mca_mtl_request_t *mtl_request, int flag) { - int ret; + int ret, ctxt_id = 0; ompi_mtl_ofi_request_t *ofi_req = (ompi_mtl_ofi_request_t*) mtl_request; + ctxt_id = ompi_mtl_ofi_map_comm_to_ctxt(ofi_req->comm->c_contextid); + switch (ofi_req->type) { case OMPI_MTL_OFI_SEND: /** @@ -1095,16 +1227,11 @@ ompi_mtl_ofi_progress(); if (!ofi_req->req_started) { - ret = fi_cancel((fid_t)ompi_mtl_ofi.ep, &ofi_req->ctx); + ret = fi_cancel((fid_t)ompi_mtl_ofi.ofi_ctxt[ctxt_id].rx_ep, + &ofi_req->ctx); if (0 == ret) { - /** - * Wait for the request to be cancelled. - */ - while (!ofi_req->super.ompi_req->req_status._cancelled) { - opal_progress(); - if (ofi_req->req_started) - goto ofi_cancel_not_possible; - } + if (ofi_req->req_started) + goto ofi_cancel_not_possible; } else { ofi_cancel_not_possible: /** @@ -1122,19 +1249,298 @@ return OMPI_SUCCESS; } +static int ompi_mtl_ofi_init_contexts(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + mca_mtl_ofi_ep_type ep_type) +{ + int ret; + int ctxt_id = ompi_mtl_ofi.total_ctxts_used; + struct fi_cq_attr cq_attr = {0}; + cq_attr.format = FI_CQ_FORMAT_TAGGED; + cq_attr.size = ompi_mtl_ofi.ofi_progress_event_count; + + if (OFI_REGULAR_EP == ep_type) { + /* + * For regular endpoints, just create the Lock object and register + * progress function. + */ + goto init_regular_ep; + } + + /* + * We only create upto Max number of contexts asked for by the user. + * If user enables thread grouping feature and creates more number of + * communicators than available contexts, then we set the threshold + * context_id so that new communicators created beyond the threshold + * will be assigned to contexts in a round-robin fashion. + */ + if (ompi_mtl_ofi.num_ofi_contexts <= ompi_mtl_ofi.total_ctxts_used) { + ompi_mtl_ofi.comm_to_context[comm->c_contextid] = comm->c_contextid % + ompi_mtl_ofi.total_ctxts_used; + if (!ompi_mtl_ofi.threshold_comm_context_id) { + ompi_mtl_ofi.threshold_comm_context_id = comm->c_contextid; + + opal_show_help("help-mtl-ofi.txt", "SEP thread grouping ctxt limit", true, ctxt_id, + ompi_process_info.nodename, __FILE__, __LINE__); + } + + return OMPI_SUCCESS; + } + + /* Init context info for Scalable EPs */ + ret = fi_tx_context(ompi_mtl_ofi.sep, ctxt_id, NULL, &ompi_mtl_ofi.ofi_ctxt[ctxt_id].tx_ep, NULL); + if (ret) { + MTL_OFI_LOG_FI_ERR(ret, "fi_tx_context failed"); + goto init_error; + } + + ret = fi_rx_context(ompi_mtl_ofi.sep, ctxt_id, NULL, &ompi_mtl_ofi.ofi_ctxt[ctxt_id].rx_ep, NULL); + if (ret) { + MTL_OFI_LOG_FI_ERR(ret, "fi_rx_context failed"); + goto init_error; + } + + ret = fi_cq_open(ompi_mtl_ofi.domain, &cq_attr, &ompi_mtl_ofi.ofi_ctxt[ctxt_id].cq, NULL); + if (ret) { + MTL_OFI_LOG_FI_ERR(ret, "fi_cq_open failed"); + goto init_error; + } + + /* Bind CQ to TX/RX context object */ + ret = fi_ep_bind(ompi_mtl_ofi.ofi_ctxt[ctxt_id].tx_ep, (fid_t)ompi_mtl_ofi.ofi_ctxt[ctxt_id].cq, + FI_TRANSMIT | FI_SELECTIVE_COMPLETION); + if (0 != ret) { + MTL_OFI_LOG_FI_ERR(ret, "fi_bind CQ-EP (FI_TRANSMIT) failed"); + goto init_error; + } + + ret = fi_ep_bind(ompi_mtl_ofi.ofi_ctxt[ctxt_id].rx_ep, (fid_t)ompi_mtl_ofi.ofi_ctxt[ctxt_id].cq, + FI_RECV | FI_SELECTIVE_COMPLETION); + if (0 != ret) { + MTL_OFI_LOG_FI_ERR(ret, "fi_bind CQ-EP (FI_RECV) failed"); + goto init_error; + } + + /* Enable Endpoint for communication. This commits the bind operations */ + ret = fi_enable(ompi_mtl_ofi.ofi_ctxt[ctxt_id].tx_ep); + if (0 != ret) { + MTL_OFI_LOG_FI_ERR(ret, "fi_enable (send context) failed"); + goto init_error; + } + + ret = fi_enable(ompi_mtl_ofi.ofi_ctxt[ctxt_id].rx_ep); + if (0 != ret) { + MTL_OFI_LOG_FI_ERR(ret, "fi_enable (recv context) failed"); + goto init_error; + } + +init_regular_ep: + /* Initialize per-context lock */ + OBJ_CONSTRUCT(&ompi_mtl_ofi.ofi_ctxt[ctxt_id].context_lock, opal_mutex_t); + + if (MPI_COMM_WORLD == comm) { + ret = opal_progress_register(ompi_mtl_ofi_progress_no_inline); + if (OMPI_SUCCESS != ret) { + opal_output_verbose(1, opal_common_ofi.output, + "%s:%d: opal_progress_register failed: %d\n", + __FILE__, __LINE__, ret); + goto init_error; + } + } + + ompi_mtl_ofi.comm_to_context[comm->c_contextid] = ompi_mtl_ofi.total_ctxts_used; + ompi_mtl_ofi.total_ctxts_used++; + + return OMPI_SUCCESS; + +init_error: + if (ompi_mtl_ofi.ofi_ctxt[ctxt_id].tx_ep) { + (void) fi_close((fid_t)ompi_mtl_ofi.ofi_ctxt[ctxt_id].tx_ep); + } + + if (ompi_mtl_ofi.ofi_ctxt[ctxt_id].rx_ep) { + (void) fi_close((fid_t)ompi_mtl_ofi.ofi_ctxt[ctxt_id].rx_ep); + } + + if (ompi_mtl_ofi.ofi_ctxt[ctxt_id].cq) { + (void) fi_close((fid_t)ompi_mtl_ofi.ofi_ctxt[ctxt_id].cq); + } + + return ret; +} + +static int ompi_mtl_ofi_finalize_contexts(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + mca_mtl_ofi_ep_type ep_type) +{ + int ret = OMPI_SUCCESS, ctxt_id = 0; + + if (OFI_REGULAR_EP == ep_type) { + /* For regular EPs, simply destruct Lock object and exit */ + goto finalize_regular_ep; + } + + if (ompi_mtl_ofi.thread_grouping && + ompi_mtl_ofi.threshold_comm_context_id && + ((uint32_t) ompi_mtl_ofi.threshold_comm_context_id <= comm->c_contextid)) { + return OMPI_SUCCESS; + } + + ctxt_id = ompi_mtl_ofi.thread_grouping ? + ompi_mtl_ofi.comm_to_context[comm->c_contextid] : 0; + + /* + * For regular EPs, TX/RX contexts are aliased to SEP object which is + * closed in ompi_mtl_ofi_finalize(). So, skip handling those here. + */ + if ((ret = fi_close((fid_t)ompi_mtl_ofi.ofi_ctxt[ctxt_id].tx_ep))) { + goto finalize_err; + } + + if ((ret = fi_close((fid_t)ompi_mtl_ofi.ofi_ctxt[ctxt_id].rx_ep))) { + goto finalize_err; + } + + if ((ret = fi_close((fid_t)ompi_mtl_ofi.ofi_ctxt[ctxt_id].cq))) { + goto finalize_err; + } + +finalize_regular_ep: + /* Destroy context lock */ + OBJ_DESTRUCT(&ompi_mtl_ofi.ofi_ctxt[ctxt_id].context_lock); + + return OMPI_SUCCESS; + +finalize_err: + opal_show_help("help-mtl-ofi.txt", "OFI call fail", true, + "fi_close", + ompi_process_info.nodename, __FILE__, __LINE__, + fi_strerror(-ret), ret); + + return OMPI_ERROR; +} + __opal_attribute_always_inline__ static inline int ompi_mtl_ofi_add_comm(struct mca_mtl_base_module_t *mtl, struct ompi_communicator_t *comm) { + int ret; + mca_mtl_ofi_ep_type ep_type = (0 == ompi_mtl_ofi.enable_sep) ? + OFI_REGULAR_EP : OFI_SCALABLE_EP; + + /* + * If thread grouping enabled, add new OFI context for each communicator + * other than MPI_COMM_SELF. + */ + if ((ompi_mtl_ofi.thread_grouping && (MPI_COMM_SELF != comm)) || + /* If no thread grouping, add new OFI context only + * for MPI_COMM_WORLD. + */ + (!ompi_mtl_ofi.thread_grouping && (MPI_COMM_WORLD == comm))) { + + ret = ompi_mtl_ofi_init_contexts(mtl, comm, ep_type); + + if (OMPI_SUCCESS != ret) { + goto error; + } + } + return OMPI_SUCCESS; + +error: + return OMPI_ERROR; } __opal_attribute_always_inline__ static inline int ompi_mtl_ofi_del_comm(struct mca_mtl_base_module_t *mtl, struct ompi_communicator_t *comm) { - return OMPI_SUCCESS; + int ret = OMPI_SUCCESS; + mca_mtl_ofi_ep_type ep_type = (0 == ompi_mtl_ofi.enable_sep) ? + OFI_REGULAR_EP : OFI_SCALABLE_EP; + + /* + * Clean up OFI contexts information. + */ + if ((ompi_mtl_ofi.thread_grouping && (MPI_COMM_SELF != comm)) || + (!ompi_mtl_ofi.thread_grouping && (MPI_COMM_WORLD == comm))) { + + ret = ompi_mtl_ofi_finalize_contexts(mtl, comm, ep_type); + } + + return ret; +} + +#ifdef MCA_ompi_mtl_DIRECT_CALL + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_send(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int dest, + int tag, + struct opal_convertor_t *convertor, + mca_pml_base_send_mode_t mode) +{ + return ompi_mtl_ofi_send_generic(mtl, comm, dest, tag, + convertor, mode, + ompi_mtl_ofi.fi_cq_data); +} + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_isend(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int dest, + int tag, + struct opal_convertor_t *convertor, + mca_pml_base_send_mode_t mode, + bool blocking, + mca_mtl_request_t *mtl_request) +{ + return ompi_mtl_ofi_isend_generic(mtl, comm, dest, tag, + convertor, mode, blocking, mtl_request, + ompi_mtl_ofi.fi_cq_data); +} + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_irecv(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int src, + int tag, + struct opal_convertor_t *convertor, + mca_mtl_request_t *mtl_request) +{ + return ompi_mtl_ofi_irecv_generic(mtl, comm, src, tag, + convertor, mtl_request, + ompi_mtl_ofi.fi_cq_data); +} + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_iprobe(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int src, + int tag, + int *flag, + struct ompi_status_public_t *status) +{ + return ompi_mtl_ofi_iprobe_generic(mtl, comm, src, tag, + flag, status, + ompi_mtl_ofi.fi_cq_data); +} + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_improbe(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int src, + int tag, + int *matched, + struct ompi_message_t **message, + struct ompi_status_public_t *status) +{ + return ompi_mtl_ofi_improbe_generic(mtl, comm, src, tag, + matched, message, status, + ompi_mtl_ofi.fi_cq_data); } +#endif END_C_DECLS diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_improbe_opt.c openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_improbe_opt.c --- openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_improbe_opt.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_improbe_opt.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2013-2018 Intel, Inc. All rights reserved + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "mtl_ofi.h" + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_improbe_false(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int src, + int tag, + int *matched, + struct ompi_message_t **message, + struct ompi_status_public_t *status) +{ + const bool OFI_CQ_DATA = false; + + return ompi_mtl_ofi_improbe_generic(mtl, comm, src, tag, + matched, message, status, + OFI_CQ_DATA); +} + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_improbe_true(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int src, + int tag, + int *matched, + struct ompi_message_t **message, + struct ompi_status_public_t *status) +{ + const bool OFI_CQ_DATA = true; + + return ompi_mtl_ofi_improbe_generic(mtl, comm, src, tag, + matched, message, status, + OFI_CQ_DATA); +} + +void ompi_mtl_ofi_improbe_symtable_init(struct ompi_mtl_ofi_symtable *sym_table) +{ + + sym_table->ompi_mtl_ofi_improbe[false] + = ompi_mtl_ofi_improbe_false; + + + sym_table->ompi_mtl_ofi_improbe[true] + = ompi_mtl_ofi_improbe_true; + +} + diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_improbe_opt.pm openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_improbe_opt.pm --- openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_improbe_opt.pm 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_improbe_opt.pm 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,73 @@ +#!/usr/bin/env perl +# +# Copyright (c) 2013-2018 Intel, Inc. All rights reserved +# +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +use strict; +use warnings; +use opt_common::mtl_ofi_opt_common; +package mtl_ofi_improbe_opt; + +my @true_false = ("false", "true"); + +sub gen_funcs { + my $gen_file = $_[0]; + my $gen_type = $_[1]; + my $OFI_CQ_DATA_EN = "false"; + + foreach $OFI_CQ_DATA_EN (@true_false) { + my @flags = ($OFI_CQ_DATA_EN); + if (($gen_type cmp "FUNC") == 0) { + my $FUNC = gen_improbe_function(\@flags); + print $gen_file "$FUNC\n\n"; + } + if (($gen_type cmp "SYM") == 0) { + my $SYM = gen_improbe_sym_init(\@flags); + print $gen_file "$SYM\n"; + } + } +} + +sub gen_improbe_function { + my @op_flags = @{$_[0]}; + my $MTL_OFI_NAME_EXT = opt_common::mtl_ofi_opt_common::gen_flags_ext(\@op_flags); + my $OFI_CQ_DATA_EN = $op_flags[0]; + + my $IMPROBE_FUNCTION = +"__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_improbe_" . $MTL_OFI_NAME_EXT . "(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int src, + int tag, + int *matched, + struct ompi_message_t **message, + struct ompi_status_public_t *status) +{ + const bool OFI_CQ_DATA = " . $OFI_CQ_DATA_EN . "; + + return ompi_mtl_ofi_improbe_generic(mtl, comm, src, tag, + matched, message, status, + OFI_CQ_DATA); +}"; + return $IMPROBE_FUNCTION; +} + +sub gen_improbe_sym_init { + my @op_flags = @{$_[0]}; + my $MTL_OFI_FUNC_NAME = "ompi_mtl_ofi_improbe_" . opt_common::mtl_ofi_opt_common::gen_flags_ext(\@op_flags) . ""; + my $OFI_CQ_DATA_EN = $op_flags[0]; + my $symbol_init = +" + sym_table->ompi_mtl_ofi_improbe[".$OFI_CQ_DATA_EN."] + = ".$MTL_OFI_FUNC_NAME."; +"; + return $symbol_init; +} + +1; diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_iprobe_opt.c openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_iprobe_opt.c --- openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_iprobe_opt.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_iprobe_opt.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2013-2018 Intel, Inc. All rights reserved + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "mtl_ofi.h" + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_iprobe_false(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int src, + int tag, + int *flag, + struct ompi_status_public_t *status) +{ + const bool OFI_CQ_DATA = false; + + return ompi_mtl_ofi_iprobe_generic(mtl, comm, src, tag, + flag, status, + OFI_CQ_DATA); +} + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_iprobe_true(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int src, + int tag, + int *flag, + struct ompi_status_public_t *status) +{ + const bool OFI_CQ_DATA = true; + + return ompi_mtl_ofi_iprobe_generic(mtl, comm, src, tag, + flag, status, + OFI_CQ_DATA); +} + +void ompi_mtl_ofi_iprobe_symtable_init(struct ompi_mtl_ofi_symtable *sym_table) +{ + + sym_table->ompi_mtl_ofi_iprobe[false] + = ompi_mtl_ofi_iprobe_false; + + + sym_table->ompi_mtl_ofi_iprobe[true] + = ompi_mtl_ofi_iprobe_true; + +} + diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_iprobe_opt.pm openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_iprobe_opt.pm --- openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_iprobe_opt.pm 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_iprobe_opt.pm 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,72 @@ +#!/usr/bin/env perl +# +# Copyright (c) 2013-2018 Intel, Inc. All rights reserved +# +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +use strict; +use warnings; +use opt_common::mtl_ofi_opt_common; +package mtl_ofi_iprobe_opt; + +my @true_false = ("false", "true"); + +sub gen_funcs { + my $gen_file = $_[0]; + my $gen_type = $_[1]; + my $OFI_CQ_DATA_EN = "false"; + + foreach $OFI_CQ_DATA_EN (@true_false) { + my @flags = ($OFI_CQ_DATA_EN); + if (($gen_type cmp "FUNC") == 0) { + my $FUNC = gen_iprobe_function(\@flags); + print $gen_file "$FUNC\n\n"; + } + if (($gen_type cmp "SYM") == 0) { + my $SYM = gen_iprobe_sym_init(\@flags); + print $gen_file "$SYM\n"; + } + } +} + +sub gen_iprobe_function { + my @op_flags = @{$_[0]}; + my $MTL_OFI_NAME_EXT = opt_common::mtl_ofi_opt_common::gen_flags_ext(\@op_flags); + my $OFI_CQ_DATA_EN = $op_flags[0]; + + my $IPROBE_FUNCTION = +"__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_iprobe_" . $MTL_OFI_NAME_EXT . "(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int src, + int tag, + int *flag, + struct ompi_status_public_t *status) +{ + const bool OFI_CQ_DATA = " . $OFI_CQ_DATA_EN . "; + + return ompi_mtl_ofi_iprobe_generic(mtl, comm, src, tag, + flag, status, + OFI_CQ_DATA); +}"; + return $IPROBE_FUNCTION; +} + +sub gen_iprobe_sym_init { + my @op_flags = @{$_[0]}; + my $MTL_OFI_FUNC_NAME = "ompi_mtl_ofi_iprobe_" . opt_common::mtl_ofi_opt_common::gen_flags_ext(\@op_flags) . ""; + my $OFI_CQ_DATA_EN = $op_flags[0]; + my $symbol_init = +" + sym_table->ompi_mtl_ofi_iprobe[".$OFI_CQ_DATA_EN."] + = ".$MTL_OFI_FUNC_NAME."; +"; + return $symbol_init; +} + +1; diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_irecv_opt.c openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_irecv_opt.c --- openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_irecv_opt.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_irecv_opt.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2013-2018 Intel, Inc. All rights reserved + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "mtl_ofi.h" + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_irecv_false(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int src, + int tag, + struct opal_convertor_t *convertor, + mca_mtl_request_t *mtl_request) +{ + const bool OFI_CQ_DATA = false; + + return ompi_mtl_ofi_irecv_generic(mtl, comm, src, tag, + convertor, mtl_request, + OFI_CQ_DATA); +} + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_irecv_true(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int src, + int tag, + struct opal_convertor_t *convertor, + mca_mtl_request_t *mtl_request) +{ + const bool OFI_CQ_DATA = true; + + return ompi_mtl_ofi_irecv_generic(mtl, comm, src, tag, + convertor, mtl_request, + OFI_CQ_DATA); +} + +void ompi_mtl_ofi_irecv_symtable_init(struct ompi_mtl_ofi_symtable *sym_table) +{ + + sym_table->ompi_mtl_ofi_irecv[false] + = ompi_mtl_ofi_irecv_false; + + + sym_table->ompi_mtl_ofi_irecv[true] + = ompi_mtl_ofi_irecv_true; + +} + diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_irecv_opt.pm openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_irecv_opt.pm --- openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_irecv_opt.pm 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_irecv_opt.pm 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,72 @@ +#!/usr/bin/env perl +# +# Copyright (c) 2013-2018 Intel, Inc. All rights reserved +# +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +use strict; +use warnings; +use opt_common::mtl_ofi_opt_common; +package mtl_ofi_irecv_opt; + +my @true_false = ("false", "true"); + +sub gen_funcs { + my $gen_file = $_[0]; + my $gen_type = $_[1]; + my $OFI_CQ_DATA_EN = "false"; + + foreach $OFI_CQ_DATA_EN (@true_false) { + my @flags = ($OFI_CQ_DATA_EN); + if (($gen_type cmp "FUNC") == 0) { + my $FUNC = gen_irecv_function(\@flags); + print $gen_file "$FUNC\n\n"; + } + if (($gen_type cmp "SYM") == 0) { + my $SYM = gen_irecv_sym_init(\@flags); + print $gen_file "$SYM\n"; + } + } +} + +sub gen_irecv_function { + my @op_flags = @{$_[0]}; + my $MTL_OFI_NAME_EXT = opt_common::mtl_ofi_opt_common::gen_flags_ext(\@op_flags); + my $OFI_CQ_DATA_EN = $op_flags[0]; + + my $IRECV_FUNCTION = +"__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_irecv_" . $MTL_OFI_NAME_EXT . "(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int src, + int tag, + struct opal_convertor_t *convertor, + mca_mtl_request_t *mtl_request) +{ + const bool OFI_CQ_DATA = " . $OFI_CQ_DATA_EN . "; + + return ompi_mtl_ofi_irecv_generic(mtl, comm, src, tag, + convertor, mtl_request, + OFI_CQ_DATA); +}"; + return $IRECV_FUNCTION; +} + +sub gen_irecv_sym_init { + my @op_flags = @{$_[0]}; + my $MTL_OFI_FUNC_NAME = "ompi_mtl_ofi_irecv_" . opt_common::mtl_ofi_opt_common::gen_flags_ext(\@op_flags) . ""; + my $OFI_CQ_DATA_EN = $op_flags[0]; + my $symbol_init = +" + sym_table->ompi_mtl_ofi_irecv[".$OFI_CQ_DATA_EN."] + = ".$MTL_OFI_FUNC_NAME."; +"; + return $symbol_init; +} + +1; diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_isend_opt.c openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_isend_opt.c --- openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_isend_opt.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_isend_opt.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2013-2018 Intel, Inc. All rights reserved + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "mtl_ofi.h" + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_isend_false(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int dest, + int tag, + struct opal_convertor_t *convertor, + mca_pml_base_send_mode_t mode, + bool blocking, + mca_mtl_request_t *mtl_request) +{ + const bool OFI_CQ_DATA = false; + + return ompi_mtl_ofi_isend_generic(mtl, comm, dest, tag, + convertor, mode, blocking, + mtl_request, OFI_CQ_DATA); +} + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_isend_true(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int dest, + int tag, + struct opal_convertor_t *convertor, + mca_pml_base_send_mode_t mode, + bool blocking, + mca_mtl_request_t *mtl_request) +{ + const bool OFI_CQ_DATA = true; + + return ompi_mtl_ofi_isend_generic(mtl, comm, dest, tag, + convertor, mode, blocking, + mtl_request, OFI_CQ_DATA); +} + +void ompi_mtl_ofi_isend_symtable_init(struct ompi_mtl_ofi_symtable *sym_table) +{ + + sym_table->ompi_mtl_ofi_isend[false] + = ompi_mtl_ofi_isend_false; + + + sym_table->ompi_mtl_ofi_isend[true] + = ompi_mtl_ofi_isend_true; + +} + diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_isend_opt.pm openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_isend_opt.pm --- openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_isend_opt.pm 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_isend_opt.pm 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,74 @@ +#!/usr/bin/env perl +# +# Copyright (c) 2013-2018 Intel, Inc. All rights reserved +# +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +use strict; +use warnings; +use opt_common::mtl_ofi_opt_common; +package mtl_ofi_isend_opt; + +my @true_false = ("false", "true"); + +sub gen_funcs { + my $gen_file = $_[0]; + my $gen_type = $_[1]; + my $OFI_CQ_DATA_EN = "false"; + + foreach $OFI_CQ_DATA_EN (@true_false) { + my @flags = ($OFI_CQ_DATA_EN); + if (($gen_type cmp "FUNC") == 0) { + my $FUNC = gen_isend_function(\@flags); + print $gen_file "$FUNC\n\n"; + } + if (($gen_type cmp "SYM") == 0) { + my $SYM = gen_isend_sym_init(\@flags); + print $gen_file "$SYM\n"; + } + } +} + +sub gen_isend_function { + my @op_flags = @{$_[0]}; + my $MTL_OFI_NAME_EXT = opt_common::mtl_ofi_opt_common::gen_flags_ext(\@op_flags); + my $OFI_CQ_DATA_EN = $op_flags[0]; + + my $ISEND_FUNCTION = +"__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_isend_" . $MTL_OFI_NAME_EXT . "(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int dest, + int tag, + struct opal_convertor_t *convertor, + mca_pml_base_send_mode_t mode, + bool blocking, + mca_mtl_request_t *mtl_request) +{ + const bool OFI_CQ_DATA = " . $OFI_CQ_DATA_EN . "; + + return ompi_mtl_ofi_isend_generic(mtl, comm, dest, tag, + convertor, mode, blocking, + mtl_request, OFI_CQ_DATA); +}"; + return $ISEND_FUNCTION; +} + +sub gen_isend_sym_init { + my @op_flags = @{$_[0]}; + my $MTL_OFI_FUNC_NAME = "ompi_mtl_ofi_isend_" . opt_common::mtl_ofi_opt_common::gen_flags_ext(\@op_flags) . ""; + my $OFI_CQ_DATA_EN = $op_flags[0]; + my $symbol_init = +" + sym_table->ompi_mtl_ofi_isend[".$OFI_CQ_DATA_EN."] + = ".$MTL_OFI_FUNC_NAME."; +"; + return $symbol_init; +} + +1; diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_opt.h openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_opt.h --- openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_opt.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_opt.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2013-2018 Intel, Inc. All rights reserved + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef MTL_OFI_OPT_H +#define MTL_OFI_OPT_H + +#include "mtl_ofi.h" + +BEGIN_C_DECLS + +#define CQ_DATA_TYPES 2 +#define OMPI_MTL_OFI_SEND_TYPES [CQ_DATA_TYPES] +#define OMPI_MTL_OFI_ISEND_TYPES [CQ_DATA_TYPES] +#define OMPI_MTL_OFI_IRECV_TYPES [CQ_DATA_TYPES] +#define OMPI_MTL_OFI_IPROBE_TYPES [CQ_DATA_TYPES] +#define OMPI_MTL_OFI_IMPROBE_TYPES [CQ_DATA_TYPES] + +struct ompi_mtl_ofi_symtable { + int (*ompi_mtl_ofi_send OMPI_MTL_OFI_SEND_TYPES ) + (struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int dest, + int tag, + struct opal_convertor_t *convertor, + mca_pml_base_send_mode_t mode); + int (*ompi_mtl_ofi_isend OMPI_MTL_OFI_ISEND_TYPES ) + (struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int dest, + int tag, + struct opal_convertor_t *convertor, + mca_pml_base_send_mode_t mode, + bool blocking, + mca_mtl_request_t *mtl_request); + int (*ompi_mtl_ofi_irecv OMPI_MTL_OFI_IRECV_TYPES ) + (struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int src, + int tag, + struct opal_convertor_t *convertor, + mca_mtl_request_t *mtl_request); + int (*ompi_mtl_ofi_iprobe OMPI_MTL_OFI_IPROBE_TYPES ) + (struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int src, + int tag, + int *flag, + struct ompi_status_public_t *status); + int (*ompi_mtl_ofi_improbe OMPI_MTL_OFI_IMPROBE_TYPES ) + (struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int src, + int tag, + int *matched, + struct ompi_message_t **message, + struct ompi_status_public_t *status); +}; + +/** + * MTL OFI specialization function symbol table init + */ +void ompi_mtl_ofi_send_symtable_init(struct ompi_mtl_ofi_symtable* sym_table); +void ompi_mtl_ofi_isend_symtable_init(struct ompi_mtl_ofi_symtable* sym_table); +void ompi_mtl_ofi_irecv_symtable_init(struct ompi_mtl_ofi_symtable* sym_table); +void ompi_mtl_ofi_iprobe_symtable_init(struct ompi_mtl_ofi_symtable* sym_table); +void ompi_mtl_ofi_improbe_symtable_init(struct ompi_mtl_ofi_symtable* sym_table); + +END_C_DECLS + +#endif /* MTL_OFI_OPT_H */ \ No newline at end of file diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_request.h openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_request.h --- openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_request.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_request.h 2022-05-29 09:51:40.000000000 +0000 @@ -34,7 +34,7 @@ ompi_mtl_ofi_request_type_t type; /** OFI context */ - struct fi_context ctx; + struct fi_context2 ctx; /** Completion count used by blocking and/or synchronous operations */ volatile int completion_count; diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_send_opt.c openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_send_opt.c --- openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_send_opt.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_send_opt.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2013-2018 Intel, Inc. All rights reserved + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "mtl_ofi.h" + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_send_false(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int dest, + int tag, + struct opal_convertor_t *convertor, + mca_pml_base_send_mode_t mode) +{ + const bool OFI_CQ_DATA = false; + + return ompi_mtl_ofi_send_generic(mtl, comm, dest, tag, + convertor, mode, + OFI_CQ_DATA); +} + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_send_true(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int dest, + int tag, + struct opal_convertor_t *convertor, + mca_pml_base_send_mode_t mode) +{ + const bool OFI_CQ_DATA = true; + + return ompi_mtl_ofi_send_generic(mtl, comm, dest, tag, + convertor, mode, + OFI_CQ_DATA); +} + +void ompi_mtl_ofi_send_symtable_init(struct ompi_mtl_ofi_symtable *sym_table) +{ + + sym_table->ompi_mtl_ofi_send[false] + = ompi_mtl_ofi_send_false; + + + sym_table->ompi_mtl_ofi_send[true] + = ompi_mtl_ofi_send_true; + +} + diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_send_opt.pm openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_send_opt.pm --- openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_send_opt.pm 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_send_opt.pm 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,71 @@ +#!/usr/bin/env perl +# +# Copyright (c) 2013-2018 Intel, Inc. All rights reserved +# +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +use strict; +use warnings; +use opt_common::mtl_ofi_opt_common; +package mtl_ofi_send_opt; + +my @true_false = ("false", "true"); + +sub gen_funcs { + my $gen_file = $_[0]; + my $gen_type = $_[1]; + my $OFI_CQ_DATA_EN = "false"; + + foreach $OFI_CQ_DATA_EN (@true_false) { + my @flags = ($OFI_CQ_DATA_EN); + if (($gen_type cmp "FUNC") == 0) { + my $FUNC = gen_send_function(\@flags); + print $gen_file "$FUNC\n\n"; + } + if (($gen_type cmp "SYM") == 0) { + my $SYM = gen_send_sym_init(\@flags); + print $gen_file "$SYM\n"; + } + } +} + +sub gen_send_function { + my @op_flags = @{$_[0]}; + my $MTL_OFI_NAME_EXT = opt_common::mtl_ofi_opt_common::gen_flags_ext(\@op_flags); + my $OFI_CQ_DATA_EN = $op_flags[0]; + my $SEND_FUNCTION = +"__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_send_" . $MTL_OFI_NAME_EXT . "(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int dest, + int tag, + struct opal_convertor_t *convertor, + mca_pml_base_send_mode_t mode) +{ + const bool OFI_CQ_DATA = " . $OFI_CQ_DATA_EN . "; + + return ompi_mtl_ofi_send_generic(mtl, comm, dest, tag, + convertor, mode, + OFI_CQ_DATA); +}"; + return $SEND_FUNCTION; +} + +sub gen_send_sym_init { + my @op_flags = @{$_[0]}; + my $MTL_OFI_FUNC_NAME = "ompi_mtl_ofi_send_" . opt_common::mtl_ofi_opt_common::gen_flags_ext(\@op_flags) . ""; + my $OFI_CQ_DATA_EN = $op_flags[0]; + my $symbol_init = +" + sym_table->ompi_mtl_ofi_send[".$OFI_CQ_DATA_EN."] + = ".$MTL_OFI_FUNC_NAME."; +"; + return $symbol_init; +} + +1; diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_types.h openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_types.h --- openmpi-4.0.3/ompi/mca/mtl/ofi/mtl_ofi_types.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/mtl_ofi_types.h 2022-05-29 09:51:40.000000000 +0000 @@ -19,6 +19,19 @@ /** * MTL Module Interface */ + +typedef struct mca_mtl_ofi_context_t { + /* Transmit and receive contexts */ + struct fid_ep *tx_ep; + struct fid_ep *rx_ep; + + /* Completion queue */ + struct fid_cq *cq; + + /* Thread locking */ + opal_mutex_t context_lock; +} mca_mtl_ofi_context_t; + typedef struct mca_mtl_ofi_module_t { mca_mtl_base_module_t base; @@ -31,11 +44,19 @@ /** Address vector handle */ struct fid_av *av; - /** Completion queue handle */ - struct fid_cq *cq; + /* Multi-threaded Application flag */ + bool mpi_thread_multiple; - /** Endpoint to communicate on */ - struct fid_ep *ep; + /* Scalable Endpoint attributes */ + struct fid_ep *sep; /* Endpoint object */ + mca_mtl_ofi_context_t *ofi_ctxt; /* OFI contexts */ + int threshold_comm_context_id; /* Set threshold communicator ID */ + int *comm_to_context; /* Map communicator ID to context */ + int rx_ctx_bits; /* Bits used for RX context */ + int total_ctxts_used; /* Total number of contexts used */ + int enable_sep; /* MCA to enable/disable SEP feature */ + int thread_grouping; /* MCA for thread grouping feature */ + int num_ofi_contexts; /* MCA for number of contexts to use */ /** Endpoint name length */ size_t epnamelen; @@ -71,6 +92,9 @@ unsigned long long sync_send_ack; unsigned long long sync_proto_mask; + /** Optimized function Symbol Tables **/ + struct ompi_mtl_ofi_symtable sym_table; + } mca_mtl_ofi_module_t; extern mca_mtl_ofi_module_t ompi_mtl_ofi; @@ -80,6 +104,19 @@ mca_mtl_base_component_2_0_0_t super; } mca_mtl_ofi_component_t; +typedef enum { + OFI_REGULAR_EP = 0, + OFI_SCALABLE_EP, +} mca_mtl_ofi_ep_type; + +/* + * Define upper limit for number of events read from a CQ. + * Setting this to 100 as this was deemed optimal from empirical data. + * If one wants to read lesser number of events from the CQ, the MCA + * variable can be used. + */ +#define MTL_OFI_MAX_PROG_EVENT_COUNT 100 + /*OFI TAG: * Define 3 different OFI tag distributions: * 1) Support FI_REMOTE_CQ_DATA: No need for source rank in the tag @@ -89,12 +126,15 @@ * More details of the tags are in the README file (mtl_ofi_tag_mode). */ +#define MTL_OFI_MINIMUM_CID_BITS (8) + /* Support FI_REMOTE_CQ_DATA, send the source rank in the CQ data (4 Bytes is the minimum) * 01234567 01234567 01234567 012345 67 01234567 01234567 01234567 01234567 * | | * context_id |prot| message tag */ #define MTL_OFI_PROTO_BIT_COUNT (2) +#define MTL_OFI_HIGHEST_TAG_BIT (0x8000000000000000ULL) #define MTL_OFI_CID_MASK_DATA (0xFFFFFFFC00000000ULL) #define MTL_OFI_CID_BIT_COUNT_DATA (30) @@ -120,7 +160,7 @@ mtl_ofi_create_recv_tag_CQD(uint64_t *match_bits, uint64_t *mask_bits, int comm_id, int tag) { - *mask_bits = ompi_mtl_ofi.sync_proto_mask; + *mask_bits = ompi_mtl_ofi.sync_send; *match_bits = (uint64_t) comm_id; *match_bits = (*match_bits << (MTL_OFI_PROTO_BIT_COUNT + MTL_OFI_TAG_BIT_COUNT_DATA)); @@ -189,7 +229,7 @@ mtl_ofi_create_recv_tag(uint64_t *match_bits, uint64_t *mask_bits, int comm_id, int source, int tag) { - *mask_bits = ompi_mtl_ofi.sync_proto_mask; + *mask_bits = ompi_mtl_ofi.sync_send; *match_bits = comm_id; *match_bits = (*match_bits << ompi_mtl_ofi.num_bits_source_rank); diff -Nru openmpi-4.0.3/ompi/mca/mtl/ofi/README openmpi-4.1.4/ompi/mca/mtl/ofi/README --- openmpi-4.0.3/ompi/mca/mtl/ofi/README 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/ofi/README 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ -OFI MTL - +OFI MTL: +-------- The OFI MTL supports Libfabric (a.k.a. Open Fabrics Interfaces OFI, https://ofiwg.github.io/libfabric/) tagged APIs (fi_tagged(3)). At initialization time, the MTL queries libfabric for providers supporting tag matching @@ -9,6 +9,7 @@ mtl_ofi_provider_include or mtl_ofi_provider_exclude. PROGRESS: +--------- The MTL registers a progress function to opal_progress. There is currently no support for asynchronous progress. The progress function reads multiple events from the OFI provider Completion Queue (CQ) per iteration (defaults to 100, can be @@ -16,12 +17,14 @@ completion queue is drained. COMPLETIONS: +------------ Each operation uses a request type ompi_mtl_ofi_request_t which includes a reference -to an operation specific completion callback, an MPI request, and a context. The +to an operation specific completion callback, an MPI request, and a context. The context (fi_context) is used to map completion events with MPI_requests when reading the CQ. OFI TAG: +-------- MPI needs to send 96 bits of information per message (32 bits communicator id, 32 bits source rank, 32 bits MPI tag) but OFI only offers 64 bits tags. In addition, the OFI MTL uses 2 bits of the OFI tag for the synchronous send protocol. @@ -67,3 +70,271 @@ to zero. In such cases, the OFI MTL will reduce the number of communicator ids supported by reducing the bits available for the communicator ID field in the OFI tag. +SCALABLE ENDPOINTS: +------------------- +OFI MTL supports OFI Scalable Endpoints (SEP) feature as a means to improve +multi-threaded application throughput and message rate. Currently the feature +is designed to utilize multiple TX/RX contexts exposed by the OFI provider in +conjunction with a multi-communicator MPI application model. Therefore, new OFI +contexts are created as and when communicators are duplicated in a lazy fashion +instead of creating them all at once during init time and this approach also +favours only creating as many contexts as needed. + +1. Multi-communicator model: + With this approach, the MPI application is requried to first duplicate + the communicators it wants to use with MPI operations (ideally creating + as many communicators as the number of threads it wants to use to call + into MPI). The duplicated communicators are then used by the + corresponding threads to perform MPI operations. A possible usage + scenario could be in an MPI + OMP application as follows + (example limited to 2 ranks): + + MPI_Comm dup_comm[n]; + MPI_Init_thread(&argc, &argv, MPI_THREAD_MULTIPLE, &provided); + for (i = 0; i < n; i++) { + MPI_Comm_dup(MPI_COMM_WORLD, &dup_comm[i]); + } + if (rank == 0) { +#pragma omp parallel for private(host_sbuf, host_rbuf) num_threads(n) + for (i = 0; i < n ; i++) { + MPI_Send(host_sbuf, MYBUFSIZE, MPI_CHAR, + 1, MSG_TAG, dup_comm[i]); + MPI_Recv(host_rbuf, MYBUFSIZE, MPI_CHAR, + 1, MSG_TAG, dup_comm[i], &status); + } + } else if (rank == 1) { +#pragma omp parallel for private(status, host_sbuf, host_rbuf) num_threads(n) + for (i = 0; i < n ; i++) { + MPI_Recv(host_rbuf, MYBUFSIZE, MPI_CHAR, + 0, MSG_TAG, dup_comm[i], &status); + MPI_Send(host_sbuf, MYBUFSIZE, MPI_CHAR, + 0, MSG_TAG, dup_comm[i]); + } + } + +2. MCA variables: + To utilize the feature, the following MCA variables need to be set: + mtl_ofi_enable_sep: + This MCA variable needs to be set to enable the use of Scalable Endpoints (SEP) + feature in the OFI MTL. The underlying provider is also checked to ensure the + feature is supported. If the provider chosen does not support it, user needs + to either set this variable to 0 or select a different provider which supports + the feature. + For single-threaded applications one OFI context is sufficient, so OFI SEPs + may not add benefit. + Note that mtl_ofi_thread_grouping (see below) needs to be enabled to use the + different OFI SEP contexts. Otherwise, only one context (ctxt 0) will be used. + + Default: 0 + + Command-line syntax: + "-mca mtl_ofi_enable_sep 1" + + mtl_ofi_thread_grouping: + Turn Thread Grouping feature on. This is needed to use the Multi-communicator + model explained above. This means that the OFI MTL will use the communicator + ID to decide the SEP contexts to be used by the thread. In this way, each + thread will have direct access to different OFI resources. If disabled, + only context 0 will be used. + Requires mtl_ofi_enable_sep to be set to 1. + + Default: 0 + + It is not recommended to set the MCA variable for: + - Multi-threaded MPI applications not following multi-communicator approach. + - Applications that have multiple threads using a single communicator as + it may degrade performance. + + Command-line syntax: + "-mca mtl_ofi_thread_grouping 1" + + mtl_ofi_num_ctxts: + This MCA variable allows user to set the number of OFI SEP contexts the + application expects to use. For multi-threaded applications using Thread + Grouping feature, this number should be set to the number of user threads + that will call into MPI. This variable will only have effect if + mtl_ofi_enable_sep is set to 1. + + Default: 1 + + Command-line syntax: + "-mca mtl_ofi_num_ctxts N" [ N: number of OFI contexts required by + application ] + +3. Notes on performance: + - OFI MTL will create as many TX/RX contexts as set by MCA mtl_ofi_num_ctxts. + The number of contexts that can be created is also limited by the underlying + provider as each provider may have different thresholds. Once the threshold + is exceeded, contexts are used in a round-robin fashion which leads to + resource sharing among threads. Therefore locks are required to guard + against race conditions. For performance, it is recommended to have + + Number of threads = Number of communicators = Number of contexts + + For example, when using PSM2 provider, the number of contexts is dictated + by the Intel Omni-Path HFI1 driver module. + + - OPAL layer allows for multiple threads to enter progress simultaneously. To + enable this feature, user needs to set MCA variable + "max_thread_in_progress". When using Thread Grouping feature, it is + recommended to set this MCA parameter to the number of threads expected to + call into MPI as it provides performance benefits. + + Command-line syntax: + "-mca opal_max_thread_in_progress N" [ N: number of threads expected to + make MPI calls ] + Default: 1 + + - For applications using a single thread with multiple communicators and MCA + variable "mtl_ofi_thread_grouping" set to 1, the MTL will use multiple + contexts, but the benefits may be negligible as only one thread is driving + progress. + +SPECIALIZED FUNCTIONS: +------------------- +To improve performance when calling message passing APIs in the OFI mtl +specialized functions are generated at compile time that eliminate all the +if conditionals that can be determined at init and don't need to be +queried again during the critical path. These functions are generated by +perl scripts during make which generate functions and symbols for every +combination of flags for each function. + +1. ADDING NEW FLAGS FOR SPECIALIZATION OF EXISTING FUNCTION: + To add a new flag to an existing specialized function for handling cases + where different OFI providers may or may not support a particular feature, + then you must follow these steps: + 1) Update the "_generic" function in mtl_ofi.h with the new flag and + the if conditionals to read the new value. + 2) Update the *.pm file corresponding to the function with the new flag in: + gen_funcs(), gen_*_function(), & gen_*_sym_init() + 3) Update mtl_ofi_opt.h with: + The new flag as #define NEW_FLAG_TYPES #NUMBER_OF_STATES + example: #define OFI_CQ_DATA 2 (only has TRUE/FALSE states) + Update the function's types with: + #define OMPI_MTL_OFI_FUNCTION_TYPES [NEW_FLAG_TYPES] + +2. ADDING A NEW FUNCTION FOR SPECIALIZATION: + To add a new function to be specialized you must + follow these steps: + 1) Create a new mtl_ofi_"function_name"_opt.pm based off opt_common/mtl_ofi_opt.pm.template + 2) Add new .pm file to generated_source_modules in Makefile.am + 3) Add .c file to generated_sources in Makefile.am named the same as the corresponding .pm file + 4) Update existing or create function in mtl_ofi.h to _generic with new flags. + 5) Update mtl_ofi_opt.h with: + a) New function types: #define OMPI_MTL_OFI_FUNCTION_TYPES [FLAG_TYPES] + b) Add new function to the struct ompi_mtl_ofi_symtable: + struct ompi_mtl_ofi_symtable { + ... + int (*ompi_mtl_ofi_FUNCTION OMPI_MTL_OFI_FUNCTION_TYPES ) + } + c) Add new symbol table init function definition: + void ompi_mtl_ofi_FUNCTION_symtable_init(struct ompi_mtl_ofi_symtable* sym_table); + 6) Add calls to init the new function in the symbol table and assign the function + pointer to be used based off the flags in mtl_ofi_component.c: + ompi_mtl_ofi_FUNCTION_symtable_init(&ompi_mtl_ofi.sym_table); + ompi_mtl_ofi.base.mtl_FUNCTION = + ompi_mtl_ofi.sym_table.ompi_mtl_ofi_FUNCTION[ompi_mtl_ofi.flag]; + +3. EXAMPLE SPECIALIZED FILE: +The code below is an example of what is generated by the specialization +scripts for use in the OFI mtl. This code specializes the blocking +send functionality based on FI_REMOTE_CQ_DATA & OFI Scalable Endpoint support +provided by an OFI Provider. Only one function and symbol is used during +runtime based on if FI_REMOTE_CQ_DATA is supported and/or if OFI Scalable +Endpoint support is enabled. +/* + * Copyright (c) 2013-2018 Intel, Inc. All rights reserved + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "mtl_ofi.h" + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_send_false_false(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int dest, + int tag, + struct opal_convertor_t *convertor, + mca_pml_base_send_mode_t mode) +{ + const bool OFI_CQ_DATA = false; + const bool OFI_SCEP_EPS = false; + + return ompi_mtl_ofi_send_generic(mtl, comm, dest, tag, + convertor, mode, + OFI_CQ_DATA, OFI_SCEP_EPS); +} + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_send_false_true(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int dest, + int tag, + struct opal_convertor_t *convertor, + mca_pml_base_send_mode_t mode) +{ + const bool OFI_CQ_DATA = false; + const bool OFI_SCEP_EPS = true; + + return ompi_mtl_ofi_send_generic(mtl, comm, dest, tag, + convertor, mode, + OFI_CQ_DATA, OFI_SCEP_EPS); +} + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_send_true_false(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int dest, + int tag, + struct opal_convertor_t *convertor, + mca_pml_base_send_mode_t mode) +{ + const bool OFI_CQ_DATA = true; + const bool OFI_SCEP_EPS = false; + + return ompi_mtl_ofi_send_generic(mtl, comm, dest, tag, + convertor, mode, + OFI_CQ_DATA, OFI_SCEP_EPS); +} + +__opal_attribute_always_inline__ static inline int +ompi_mtl_ofi_send_true_true(struct mca_mtl_base_module_t *mtl, + struct ompi_communicator_t *comm, + int dest, + int tag, + struct opal_convertor_t *convertor, + mca_pml_base_send_mode_t mode) +{ + const bool OFI_CQ_DATA = true; + const bool OFI_SCEP_EPS = true; + + return ompi_mtl_ofi_send_generic(mtl, comm, dest, tag, + convertor, mode, + OFI_CQ_DATA, OFI_SCEP_EPS); +} + +void ompi_mtl_ofi_send_symtable_init(struct ompi_mtl_ofi_symtable* sym_table) +{ + + sym_table->ompi_mtl_ofi_send[false][false] + = ompi_mtl_ofi_send_false_false; + + + sym_table->ompi_mtl_ofi_send[false][true] + = ompi_mtl_ofi_send_false_true; + + + sym_table->ompi_mtl_ofi_send[true][false] + = ompi_mtl_ofi_send_true_false; + + + sym_table->ompi_mtl_ofi_send[true][true] + = ompi_mtl_ofi_send_true_true; + +} +### diff -Nru openmpi-4.0.3/ompi/mca/mtl/portals4/Makefile.in openmpi-4.1.4/ompi/mca/mtl/portals4/Makefile.in --- openmpi-4.0.3/ompi/mca/mtl/portals4/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/portals4/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -128,6 +128,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -135,6 +137,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -158,6 +161,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -260,6 +264,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -267,6 +272,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -347,6 +353,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -369,9 +376,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -381,6 +392,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -401,6 +413,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -693,6 +706,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1513,6 +1529,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1545,9 +1565,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1568,6 +1597,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1652,9 +1682,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1715,6 +1742,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1728,6 +1758,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/mtl/portals4/mtl_portals4_component.c openmpi-4.1.4/ompi/mca/mtl/portals4/mtl_portals4_component.c --- openmpi-4.0.3/ompi/mca/mtl/portals4/mtl_portals4_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/portals4/mtl_portals4_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -227,36 +227,6 @@ sizeof(ompi_mtl_portals4_request_t) - sizeof(struct mca_mtl_request_t); - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "Flow control: " -#if OMPI_MTL_PORTALS4_FLOW_CONTROL - "yes" -#else - "no" -#endif - ); - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "Max message size: %lu", (unsigned long) - ompi_mtl_portals4.max_msg_size_mtl); - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "Short limit: %d", (int) - ompi_mtl_portals4.short_limit); - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "Eager limit: %d", (int) - ompi_mtl_portals4.eager_limit); - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "Short receive blocks: %d", - ompi_mtl_portals4.recv_short_num); - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "Send queue size: %d", ompi_mtl_portals4.send_queue_size); - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "Recv queue size: %d", ompi_mtl_portals4.recv_queue_size); - opal_output_verbose(1, ompi_mtl_base_framework.framework_output, - "Long protocol: %s", - (ompi_mtl_portals4.protocol == eager) ? "Eager" : - (ompi_mtl_portals4.protocol == rndv) ? "Rendezvous" : - "Other"); - OBJ_CONSTRUCT(&ompi_mtl_portals4.fl_message, opal_free_list_t); opal_free_list_init(&ompi_mtl_portals4.fl_message, sizeof(ompi_mtl_portals4_message_t) + @@ -289,6 +259,31 @@ ompi_mtl_portals4.use_flowctl=0; #endif + opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + "Flow control: %s", + ompi_mtl_portals4.use_flowctl ? "yes" : "no"); + opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + "Max message size: %lu", (unsigned long) + ompi_mtl_portals4.max_msg_size_mtl); + opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + "Short limit: %d", (int) + ompi_mtl_portals4.short_limit); + opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + "Eager limit: %d", (int) + ompi_mtl_portals4.eager_limit); + opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + "Short receive blocks: %d", + ompi_mtl_portals4.recv_short_num); + opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + "Send queue size: %d", ompi_mtl_portals4.send_queue_size); + opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + "Recv queue size: %d", ompi_mtl_portals4.recv_queue_size); + opal_output_verbose(1, ompi_mtl_base_framework.framework_output, + "Long protocol: %s", + (ompi_mtl_portals4.protocol == eager) ? "Eager" : + (ompi_mtl_portals4.protocol == rndv) ? "Rendezvous" : + "Other"); + return OMPI_SUCCESS; } @@ -523,7 +518,7 @@ if (OMPI_SUCCESS != ret) { opal_output(ompi_mtl_base_framework.framework_output, "Error returned from target event callback: %d", ret); - abort(); + ompi_rte_abort(ret, "mtl-portals4: Error returned from target event callback"); } } break; @@ -535,7 +530,7 @@ if (OMPI_SUCCESS != ret) { opal_output(ompi_mtl_base_framework.framework_output, "Error returned from target event callback: %d", ret); - abort(); + ompi_rte_abort(ret, "mtl-portals4: Error returned from target event callback"); } } break; @@ -550,12 +545,12 @@ opal_output_verbose(1, ompi_mtl_base_framework.framework_output, "%s:%d: flowctl_trigger() failed: %d\n", __FILE__, __LINE__, ret); - abort(); + ompi_rte_abort(ret, "mtl-portals4: Flow control failed (PT_DISABLED)"); } #else opal_output(ompi_mtl_base_framework.framework_output, "Flow control situation without recovery (PT_DISABLED)"); - abort(); + ompi_rte_abort(ret, "mtl-portals4: Flow control situation without recovery (PT_DISABLED)"); #endif break; @@ -573,7 +568,7 @@ opal_output(ompi_mtl_base_framework.framework_output, "Flow control situation without recovery (EQ_DROPPED): %d", which); - abort(); + ompi_rte_abort(ret, "mtl-portals4: Flow control situation without recovery (EQ_DROPPED)"); } else { opal_output(ompi_mtl_base_framework.framework_output, "Error returned from PtlEQGet: %d", ret); diff -Nru openmpi-4.0.3/ompi/mca/mtl/portals4/mtl_portals4_endpoint.h openmpi-4.1.4/ompi/mca/mtl/portals4/mtl_portals4_endpoint.h --- openmpi-4.0.3/ompi/mca/mtl/portals4/mtl_portals4_endpoint.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/portals4/mtl_portals4_endpoint.h 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2010 Sandia National Laboratories. All rights reserved. + * Copyright (c) 2010-2020 Sandia National Laboratories. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -20,6 +20,7 @@ #ifndef OMPI_MTL_PORTALS_ENDPOINT_H #define OMPI_MTL_PORTALS_ENDPOINT_H +#include "ompi/mca/pml/pml.h" #include "ompi/mca/mtl/portals4/mtl_portals4.h" struct mca_mtl_base_endpoint_t { @@ -31,7 +32,10 @@ ompi_mtl_portals4_get_endpoint (struct mca_mtl_base_module_t* mtl, ompi_proc_t *ompi_proc) { if (OPAL_UNLIKELY(NULL == ompi_proc->proc_endpoints[OMPI_PROC_ENDPOINT_TAG_PORTALS4])) { - ompi_mtl_portals4_add_procs (mtl, 1, &ompi_proc); + int rc; + if (OPAL_UNLIKELY(OMPI_SUCCESS != (rc = MCA_PML_CALL(add_procs(&ompi_proc, 1))))) { + ompi_rte_abort(rc,"ompi_mtl_portals4_get_endpoint(): pml->add_procs() failed. Aborting.\n"); + } } return ompi_proc->proc_endpoints[OMPI_PROC_ENDPOINT_TAG_PORTALS4]; diff -Nru openmpi-4.0.3/ompi/mca/mtl/portals4/mtl_portals4_probe.c openmpi-4.1.4/ompi/mca/mtl/portals4/mtl_portals4_probe.c --- openmpi-4.0.3/ompi/mca/mtl/portals4/mtl_portals4_probe.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/portals4/mtl_portals4_probe.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2010 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -120,7 +120,9 @@ *flag = request.found_match; if (1 == *flag) { - *status = request.status; + if (MPI_STATUS_IGNORE != status) { + OMPI_COPY_STATUS(status, request.status, false); + } } return OMPI_SUCCESS; @@ -198,7 +200,9 @@ *matched = request.found_match; if (1 == *matched) { - *status = request.status; + if (MPI_STATUS_IGNORE != status) { + OMPI_COPY_STATUS(status, request.status, false); + } (*message) = ompi_message_alloc(); if (NULL == (*message)) { diff -Nru openmpi-4.0.3/ompi/mca/mtl/portals4/mtl_portals4_request.h openmpi-4.1.4/ompi/mca/mtl/portals4/mtl_portals4_request.h --- openmpi-4.0.3/ompi/mca/mtl/portals4/mtl_portals4_request.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/portals4/mtl_portals4_request.h 2022-05-29 09:51:40.000000000 +0000 @@ -55,7 +55,7 @@ #endif ptl_size_t length; int32_t pending_get; - uint32_t event_count; + int32_t event_count; }; typedef struct ompi_mtl_portals4_isend_request_t ompi_mtl_portals4_isend_request_t; diff -Nru openmpi-4.0.3/ompi/mca/mtl/portals4/mtl_portals4_send.c openmpi-4.1.4/ompi/mca/mtl/portals4/mtl_portals4_send.c --- openmpi-4.0.3/ompi/mca/mtl/portals4/mtl_portals4_send.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/portals4/mtl_portals4_send.c 2022-05-29 09:51:40.000000000 +0000 @@ -40,7 +40,7 @@ ompi_mtl_portals4_base_request_t* ptl_base_request, bool *complete) { - int retval = OMPI_SUCCESS, ret, val, add = 1; + int retval = OMPI_SUCCESS, ret = 0, val = 0, add = 1; ompi_mtl_portals4_isend_request_t* ptl_request = (ompi_mtl_portals4_isend_request_t*) ptl_base_request; diff -Nru openmpi-4.0.3/ompi/mca/mtl/psm/Makefile.in openmpi-4.1.4/ompi/mca/mtl/psm/Makefile.in --- openmpi-4.0.3/ompi/mca/mtl/psm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/psm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -664,6 +677,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1484,6 +1500,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1516,9 +1536,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1539,6 +1568,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1623,9 +1653,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1686,6 +1713,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1699,6 +1729,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/mtl/psm2/Makefile.in openmpi-4.1.4/ompi/mca/mtl/psm2/Makefile.in --- openmpi-4.0.3/ompi/mca/mtl/psm2/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/psm2/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -123,6 +123,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -130,6 +132,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -153,6 +156,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -255,6 +259,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -262,6 +267,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -342,6 +348,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -364,9 +371,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -376,6 +387,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -396,6 +408,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -669,6 +682,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1489,6 +1505,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1521,9 +1541,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1544,6 +1573,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1628,9 +1658,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1691,6 +1718,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1704,6 +1734,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/mtl/psm2/mtl_psm2.c openmpi-4.1.4/ompi/mca/mtl/psm2/mtl_psm2.c --- openmpi-4.0.3/ompi/mca/mtl/psm2/mtl_psm2.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/psm2/mtl_psm2.c 2022-05-29 09:51:40.000000000 +0000 @@ -403,7 +403,7 @@ mca_mtl_psm2_request_t* mtl_psm2_request; psm2_mq_status2_t psm2_status; psm2_mq_req_t req; - int completed = 1; + int completed = 0; do { OPAL_THREAD_LOCK(&mtl_psm2_mq_mutex); @@ -469,5 +469,5 @@ opal_show_help("help-mtl-psm2.txt", "error polling network", true, psm2_error_get_string(err)); - return 1; + return OMPI_ERROR; } diff -Nru openmpi-4.0.3/ompi/mca/mtl/psm2/mtl_psm2_component.c openmpi-4.1.4/ompi/mca/mtl/psm2/mtl_psm2_component.c --- openmpi-4.0.3/ompi/mca/mtl/psm2/mtl_psm2_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/mtl/psm2/mtl_psm2_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -16,6 +16,9 @@ * Copyright (c) 2013-2017 Intel, Inc. All rights reserved * Copyright (c) 2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2018-2020 Amazon.com, Inc. or its affiliates. All Rights reserved. + * Copyright (c) 2021 Triad National Security, LLC. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -194,6 +197,23 @@ static int ompi_mtl_psm2_component_query(mca_base_module_t **module, int *priority) { + +#if HAVE_PSM2_LIB_REFCOUNT_CAP + /* + * Mixing the PSM2 MTL with the OFI BTL (using PSM2) + * can cause an issue when they both call psm2_finalize + * in older versions of libpsm2. + * + * An installer may know what they are doing and disabled + * checking psm2 version, hence making this code conditional. + */ + if (!psm2_get_capability_mask(PSM2_LIB_REFCOUNT_CAP)) { + opal_output_verbose(2, ompi_mtl_base_framework.framework_output, + "This version of the PSM2 MTL needs version 11.2.173 or later of the libpsm2 library for correct operation.\n"); + return OMPI_ERR_FATAL; + } +#endif + /* * if we get here it means that PSM2 is available so give high priority */ diff -Nru openmpi-4.0.3/ompi/mca/op/avx/configure.m4 openmpi-4.1.4/ompi/mca/op/avx/configure.m4 --- openmpi-4.0.3/ompi/mca/op/avx/configure.m4 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/op/avx/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,344 @@ +# -*- shell-script -*- +# +# Copyright (c) 2019-2020 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2020 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2020 Research Organization for Information Science +# and Technology (RIST). All rights reserved. +# +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# MCA_ompi_op_avx_CONFIG([action-if-can-compile], +# [action-if-cant-compile]) +# ------------------------------------------------ +# We can always build, unless we were explicitly disabled. +AC_DEFUN([MCA_ompi_op_avx_CONFIG],[ + AC_CONFIG_FILES([ompi/mca/op/avx/Makefile]) + + MCA_BUILD_OP_AVX_FLAGS="" + MCA_BUILD_OP_AVX2_FLAGS="" + MCA_BUILD_OP_AVX512_FLAGS="" + op_sse3_support=0 + op_sse41_support=0 + op_avx_support=0 + op_avx2_support=0 + op_avx512_support=0 + + AS_VAR_PUSHDEF([op_avx_check_sse3], [ompi_cv_op_avx_check_sse3]) + AS_VAR_PUSHDEF([op_avx_check_sse41], [ompi_cv_op_avx_check_sse41]) + AS_VAR_PUSHDEF([op_avx_check_avx], [ompi_cv_op_avx_check_avx]) + AS_VAR_PUSHDEF([op_avx_check_avx2], [ompi_cv_op_avx_check_avx2]) + AS_VAR_PUSHDEF([op_avx_check_avx512], [ompi_cv_op_avx_check_avx512]) + + OPAL_VAR_SCOPE_PUSH([op_avx_cflags_save]) + + AS_IF([test "$opal_cv_asm_arch" = "X86_64"], + [AC_LANG_PUSH([C]) + + # + # Check for AVX512 support + # + AC_CACHE_CHECK([for AVX512 support], op_avx_check_avx512, AS_VAR_SET(op_avx_check_avx512, yes)) + AS_IF([test "$op_avx_check_avx512" = "yes"], + [AC_MSG_CHECKING([for AVX512 support (no additional flags)]) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ +#if defined(__ICC) && !defined(__AVX512F__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + __m512 vA, vB; + _mm512_add_ps(vA, vB) + ]])], + [op_avx512_support=1 + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) + + AS_IF([test $op_avx512_support -eq 0], + [AC_MSG_CHECKING([for AVX512 support (with -mavx512f -mavx512bw -mavx512vl -mavx512dq)]) + op_avx_cflags_save="$CFLAGS" + CFLAGS="-mavx512f -mavx512bw -mavx512vl -mavx512dq $CFLAGS" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ +#if defined(__ICC) && !defined(__AVX512F__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + __m512 vA, vB; + _mm512_add_ps(vA, vB) + ]])], + [op_avx512_support=1 + MCA_BUILD_OP_AVX512_FLAGS="-mavx512f -mavx512bw -mavx512vl -mavx512dq" + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) + CFLAGS="$op_avx_cflags_save" + ]) + # + # Some combination of gcc and older as would not correctly build the code generated by + # _mm256_loadu_si256. Screen them out. + # + AS_IF([test $op_avx512_support -eq 1], + [AC_MSG_CHECKING([if _mm512_loadu_si512 generates code that can be compiled]) + op_avx_cflags_save="$CFLAGS" + CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX512_FLAGS" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ +#if defined(__ICC) && !defined(__AVX512F__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + int A[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + __m512i vA = _mm512_loadu_si512((__m512i*)&(A[1])) + ]])], + [AC_MSG_RESULT([yes])], + [op_avx512_support=0 + MCA_BUILD_OP_AVX512_FLAGS="" + AC_MSG_RESULT([no])]) + CFLAGS="$op_avx_cflags_save" + ]) + # + # Some PGI compilers do not define _mm512_mullo_epi64. Screen them out. + # + AS_IF([test $op_avx512_support -eq 1], + [AC_MSG_CHECKING([if _mm512_mullo_epi64 generates code that can be compiled]) + op_avx_cflags_save="$CFLAGS" + CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX512_FLAGS" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ +#if defined(__ICC) && !defined(__AVX512F__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + __m512i vA, vB; + _mm512_mullo_epi64(vA, vB) + ]])], + [AC_MSG_RESULT([yes])], + [op_avx512_support=0 + MCA_BUILD_OP_AVX512_FLAGS="" + AC_MSG_RESULT([no])]) + CFLAGS="$op_avx_cflags_save" + ])]) + # + # Check support for AVX2 + # + AC_CACHE_CHECK([for AVX2 support], op_avx_check_avx2, AS_VAR_SET(op_avx_check_avx2, yes)) + AS_IF([test "$op_avx_check_avx2" = "yes"], + [AC_MSG_CHECKING([for AVX2 support (no additional flags)]) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ +#if defined(__ICC) && !defined(__AVX2__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + __m256i vA, vB, vC; + vC = _mm256_and_si256(vA, vB) + ]])], + [op_avx2_support=1 + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) + AS_IF([test $op_avx2_support -eq 0], + [AC_MSG_CHECKING([for AVX2 support (with -mavx2)]) + op_avx_cflags_save="$CFLAGS" + CFLAGS="-mavx2 $CFLAGS" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ +#if defined(__ICC) && !defined(__AVX2__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + __m256i vA, vB, vC; + vC = _mm256_and_si256(vA, vB) + ]])], + [op_avx2_support=1 + MCA_BUILD_OP_AVX2_FLAGS="-mavx2" + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) + CFLAGS="$op_avx_cflags_save" + ]) + # + # Some combination of gcc and older as would not correctly build the code generated by + # _mm256_loadu_si256. Screen them out. + # + AS_IF([test $op_avx2_support -eq 1], + [AC_MSG_CHECKING([if _mm256_loadu_si256 generates code that can be compiled]) + op_avx_cflags_save="$CFLAGS" + CFLAGS="$CFLAGS_WITHOUT_OPTFLAGS -O0 $MCA_BUILD_OP_AVX2_FLAGS" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ +#if defined(__ICC) && !defined(__AVX2__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + int A[8] = {0, 1, 2, 3, 4, 5, 6, 7}; + __m256i vA = _mm256_loadu_si256((__m256i*)&A) + ]])], + [AC_MSG_RESULT([yes])], + [op_avx2_support=0 + MCA_BUILD_OP_AVX2_FLAGS="" + AC_MSG_RESULT([no])]) + CFLAGS="$op_avx_cflags_save" + ])]) + # + # What about early AVX support? The rest of the logic is slightly different as + # we need to include some of the SSE4.1 and SSE3 instructions. So, we first check + # if we can compile AVX code without a flag, then we validate that we have support + # for the SSE4.1 and SSE3 instructions we need. If not, we check for the usage of + # the AVX flag, and then recheck if we have support for the SSE4.1 and SSE3 + # instructions. + # + AC_CACHE_CHECK([for AVX support], op_avx_check_avx, AS_VAR_SET(op_avx_check_avx, yes)) + AS_IF([test "$op_avx_check_avx" = "yes"], + [AC_MSG_CHECKING([for AVX support (no additional flags)]) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ +#if defined(__ICC) && !defined(__AVX__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + __m256 vA, vB, vC; + vC = _mm256_add_ps(vA, vB) + ]])], + [op_avx_support=1 + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])])]) + # + # Check for SSE4.1 support + # + AC_CACHE_CHECK([for SSE4.1 support], op_avx_check_sse41, AS_VAR_SET(op_avx_check_sse41, yes)) + AS_IF([test $op_avx_support -eq 1 && test "$op_avx_check_sse41" = "yes"], + [AC_MSG_CHECKING([for SSE4.1 support]) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ +#if defined(__ICC) && !defined(__SSE4_1__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + __m128i vA, vB; + (void)_mm_max_epi8(vA, vB) + ]])], + [op_sse41_support=1 + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) + ]) + # + # Check for SSE3 support + # + AC_CACHE_CHECK([for SSE3 support], op_avx_check_sse3, AS_VAR_SET(op_avx_check_sse3, yes)) + AS_IF([test $op_avx_support -eq 1 && test "$op_avx_check_sse3" = "yes"], + [AC_MSG_CHECKING([for SSE3 support]) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ +#if defined(__ICC) && !defined(__SSE3__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + int A[4] = {0, 1, 2, 3}; + __m128i vA = _mm_lddqu_si128((__m128i*)&A) + ]])], + [op_sse3_support=1 + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) + ]) + # Second pass, do we need to add the AVX flag ? + AS_IF([test $op_avx_support -eq 0 || test $op_sse41_support -eq 0 || test $op_sse3_support -eq 0], + [AS_IF([test "$op_avx_check_avx" = "yes"], + [AC_MSG_CHECKING([for AVX support (with -mavx)]) + op_avx_cflags_save="$CFLAGS" + CFLAGS="-mavx $CFLAGS" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ + __m256 vA, vB, vC; +#if defined(__ICC) && !defined(__AVX__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + vC = _mm256_add_ps(vA, vB) + ]])], + [op_avx_support=1 + MCA_BUILD_OP_AVX_FLAGS="-mavx" + op_sse41_support=0 + op_sse3_support=0 + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])])]) + + AS_IF([test "$op_avx_check_sse41" = "yes" && test $op_sse41_support -eq 0], + [AC_MSG_CHECKING([for SSE4.1 support]) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ +#if defined(__ICC) && !defined(__SSE4_1__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + __m128i vA, vB; + (void)_mm_max_epi8(vA, vB) + ]])], + [op_sse41_support=1 + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])])]) + AS_IF([test "$op_avx_check_sse3" = "yes" && test $op_sse3_support -eq 0], + [AC_MSG_CHECKING([for SSE3 support]) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ +#if defined(__ICC) && !defined(__SSE3__) +#error "icc needs the -m flags to provide the AVX* detection macros +#endif + int A[4] = {0, 1, 2, 3}; + __m128i vA = _mm_lddqu_si128((__m128i*)&A) + ]])], + [op_sse3_support=1 + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])])]) + CFLAGS="$op_avx_cflags_save"]) + + AC_LANG_POP([C]) + ]) + AC_DEFINE_UNQUOTED([OMPI_MCA_OP_HAVE_AVX512], + [$op_avx512_support], + [AVX512 supported in the current build]) + AC_DEFINE_UNQUOTED([OMPI_MCA_OP_HAVE_AVX2], + [$op_avx2_support], + [AVX2 supported in the current build]) + AC_DEFINE_UNQUOTED([OMPI_MCA_OP_HAVE_AVX], + [$op_avx_support], + [AVX supported in the current build]) + AC_DEFINE_UNQUOTED([OMPI_MCA_OP_HAVE_SSE41], + [$op_sse41_support], + [SSE4.1 supported in the current build]) + AC_DEFINE_UNQUOTED([OMPI_MCA_OP_HAVE_SSE3], + [$op_sse3_support], + [SSE3 supported in the current build]) + AM_CONDITIONAL([MCA_BUILD_ompi_op_has_avx512_support], + [test "$op_avx512_support" == "1"]) + AM_CONDITIONAL([MCA_BUILD_ompi_op_has_avx2_support], + [test "$op_avx2_support" == "1"]) + AM_CONDITIONAL([MCA_BUILD_ompi_op_has_avx_support], + [test "$op_avx_support" == "1"]) + AM_CONDITIONAL([MCA_BUILD_ompi_op_has_sse41_support], + [test "$op_sse41_support" == "1"]) + AM_CONDITIONAL([MCA_BUILD_ompi_op_has_sse3_support], + [test "$op_sse3_support" == "1"]) + AC_SUBST(MCA_BUILD_OP_AVX512_FLAGS) + AC_SUBST(MCA_BUILD_OP_AVX2_FLAGS) + AC_SUBST(MCA_BUILD_OP_AVX_FLAGS) + + AS_VAR_POPDEF([op_avx_check_avx512]) + AS_VAR_POPDEF([op_avx_check_avx2]) + AS_VAR_POPDEF([op_avx_check_avx]) + AS_VAR_POPDEF([op_avx_check_sse41]) + AS_VAR_POPDEF([op_avx_check_sse3]) + + OPAL_VAR_SCOPE_POP + # Enable this component iff we have at least the most basic form of support + # for vectorial ISA + AS_IF([test $op_avx_support -eq 1 || test $op_avx2_support -eq 1 || test $op_avx512_support -eq 1], + [$1], + [$2]) + +])dnl diff -Nru openmpi-4.0.3/ompi/mca/op/avx/Makefile.am openmpi-4.1.4/ompi/mca/op/avx/Makefile.am --- openmpi-4.0.3/ompi/mca/op/avx/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/op/avx/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,101 @@ +# +# Copyright (c) 2019-2020 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2020-2021 Research Organization for Information Science +# and Technology (RIST). All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# This component provide support for the Advanced Vector Extensions (AVX) +# available in recent versions of x86 processors. +# +# See https://github.com/open-mpi/ompi/wiki/devel-CreateComponent +# for more details on how to make Open MPI components. + +# First, list all .h and .c sources. It is necessary to list all .h +# files so that they will be picked up in the distribution tarball. + +sources = op_avx_component.c op_avx.h +sources_extended = op_avx_functions.c + +# Open MPI components can be compiled two ways: +# +# 1. As a standalone dynamic shared object (DSO), sometimes called a +# dynamically loadable library (DLL). +# +# 2. As a static library that is slurped up into the upper-level +# libmpi library (regardless of whether libmpi is a static or dynamic +# library). This is called a "Libtool convenience library". +# +# The component needs to create an output library in this top-level +# component directory, and named either mca__.la (for DSO +# builds) or libmca__.la (for static builds). The OMPI +# build system will have set the +# MCA_BUILD_ompi___DSO AM_CONDITIONAL to indicate +# which way this component should be built. + +# We need to support all processors from early AVX to full AVX512 support, based on +# a decision made at runtime. So, we generate all combinations of capabilities, and +# we will select the most suitable (based on the processor flags) during the +# component initialization. +specialized_op_libs = +if MCA_BUILD_ompi_op_has_avx_support +specialized_op_libs += liblocal_ops_avx.la +liblocal_ops_avx_la_SOURCES = $(sources_extended) +liblocal_ops_avx_la_CFLAGS = @MCA_BUILD_OP_AVX_FLAGS@ +liblocal_ops_avx_la_CPPFLAGS = -DGENERATE_AVX_CODE +if MCA_BUILD_ompi_op_has_sse3_support +liblocal_ops_avx_la_CPPFLAGS += -DGENERATE_SSE3_CODE +endif +if MCA_BUILD_ompi_op_has_sse41_support +liblocal_ops_avx_la_CPPFLAGS += -DGENERATE_SSE41_CODE +endif +endif +if MCA_BUILD_ompi_op_has_avx2_support +specialized_op_libs += liblocal_ops_avx2.la +liblocal_ops_avx2_la_SOURCES = $(sources_extended) +liblocal_ops_avx2_la_CFLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +liblocal_ops_avx2_la_CPPFLAGS = -DGENERATE_SSE3_CODE -DGENERATE_SSE41_CODE -DGENERATE_AVX_CODE -DGENERATE_AVX2_CODE +endif +if MCA_BUILD_ompi_op_has_avx512_support +specialized_op_libs += liblocal_ops_avx512.la +liblocal_ops_avx512_la_SOURCES = $(sources_extended) +liblocal_ops_avx512_la_CFLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +liblocal_ops_avx512_la_CPPFLAGS = -DGENERATE_SSE3_CODE -DGENERATE_SSE41_CODE -DGENERATE_AVX_CODE -DGENERATE_AVX2_CODE -DGENERATE_AVX512_CODE +endif + +component_noinst = $(specialized_op_libs) +if MCA_BUILD_ompi_op_avx_DSO +component_install = mca_op_avx.la +else +component_install = +component_noinst += libmca_op_avx.la +endif + +# Specific information for DSO builds. +# +# The DSO should install itself in $(ompilibdir) (by default, +# $prefix/lib/openmpi). + +mcacomponentdir = $(ompilibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_op_avx_la_SOURCES = $(sources) +mca_op_avx_la_LIBADD = $(specialized_op_libs) +mca_op_avx_la_LDFLAGS = -module -avoid-version $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la + + +# Specific information for static builds. +# +# Note that we *must* "noinst"; the upper-layer Makefile.am's will +# slurp in the resulting .la library into libmpi. + +noinst_LTLIBRARIES = $(component_noinst) +libmca_op_avx_la_SOURCES = $(sources) +libmca_op_avx_la_LIBADD = $(specialized_op_libs) +libmca_op_avx_la_LDFLAGS = -module -avoid-version + diff -Nru openmpi-4.0.3/ompi/mca/op/avx/Makefile.in openmpi-4.1.4/ompi/mca/op/avx/Makefile.in --- openmpi-4.0.3/ompi/mca/op/avx/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/op/avx/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,2228 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# +# Copyright (c) 2019-2020 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2020-2021 Research Organization for Information Science +# and Technology (RIST). All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# This component provide support for the Advanced Vector Extensions (AVX) +# available in recent versions of x86 processors. +# +# See https://github.com/open-mpi/ompi/wiki/devel-CreateComponent +# for more details on how to make Open MPI components. + +# First, list all .h and .c sources. It is necessary to list all .h +# files so that they will be picked up in the distribution tarball. + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +@MCA_BUILD_ompi_op_has_avx_support_TRUE@am__append_1 = liblocal_ops_avx.la +@MCA_BUILD_ompi_op_has_avx_support_TRUE@@MCA_BUILD_ompi_op_has_sse3_support_TRUE@am__append_2 = -DGENERATE_SSE3_CODE +@MCA_BUILD_ompi_op_has_avx_support_TRUE@@MCA_BUILD_ompi_op_has_sse41_support_TRUE@am__append_3 = -DGENERATE_SSE41_CODE +@MCA_BUILD_ompi_op_has_avx2_support_TRUE@am__append_4 = liblocal_ops_avx2.la +@MCA_BUILD_ompi_op_has_avx512_support_TRUE@am__append_5 = liblocal_ops_avx512.la +@MCA_BUILD_ompi_op_avx_DSO_FALSE@am__append_6 = libmca_op_avx.la +subdir = ompi/mca/op/avx +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/c_weak_symbols.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ + $(top_srcdir)/config/ompi_check_libfca.m4 \ + $(top_srcdir)/config/ompi_check_libhcoll.m4 \ + $(top_srcdir)/config/ompi_check_lustre.m4 \ + $(top_srcdir)/config/ompi_check_mxm.m4 \ + $(top_srcdir)/config/ompi_check_psm.m4 \ + $(top_srcdir)/config/ompi_check_psm2.m4 \ + $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ + $(top_srcdir)/config/ompi_check_ucx.m4 \ + $(top_srcdir)/config/ompi_config_files.m4 \ + $(top_srcdir)/config/ompi_configure_options.m4 \ + $(top_srcdir)/config/ompi_contrib.m4 \ + $(top_srcdir)/config/ompi_cxx_find_exception_flags.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_parameters.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_repository.m4 \ + $(top_srcdir)/config/ompi_cxx_have_exceptions.m4 \ + $(top_srcdir)/config/ompi_endpoint_tag.m4 \ + $(top_srcdir)/config/ompi_ext.m4 \ + $(top_srcdir)/config/ompi_find_mpi_aint_count_offset.m4 \ + $(top_srcdir)/config/ompi_fortran_check.m4 \ + $(top_srcdir)/config/ompi_fortran_check_abstract.m4 \ + $(top_srcdir)/config/ompi_fortran_check_asynchronous.m4 \ + $(top_srcdir)/config/ompi_fortran_check_bind_c.m4 \ + $(top_srcdir)/config/ompi_fortran_check_c_funloc.m4 \ + $(top_srcdir)/config/ompi_fortran_check_f08_assumed_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_ignore_tkr.m4 \ + $(top_srcdir)/config/ompi_fortran_check_interface.m4 \ + $(top_srcdir)/config/ompi_fortran_check_iso_fortran_env.m4 \ + $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ + $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ + $(top_srcdir)/config/ompi_fortran_check_private.m4 \ + $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ + $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ + $(top_srcdir)/config/ompi_fortran_check_real16_c_equiv.m4 \ + $(top_srcdir)/config/ompi_fortran_check_storage_size.m4 \ + $(top_srcdir)/config/ompi_fortran_check_type.m4 \ + $(top_srcdir)/config/ompi_fortran_check_use_only.m4 \ + $(top_srcdir)/config/ompi_fortran_find_ext_symbol_convention.m4 \ + $(top_srcdir)/config/ompi_fortran_find_module_include_flag.m4 \ + $(top_srcdir)/config/ompi_fortran_get_alignment.m4 \ + $(top_srcdir)/config/ompi_fortran_get_handle_max.m4 \ + $(top_srcdir)/config/ompi_fortran_get_kind_value.m4 \ + $(top_srcdir)/config/ompi_fortran_get_sizeof.m4 \ + $(top_srcdir)/config/ompi_fortran_get_value_true.m4 \ + $(top_srcdir)/config/ompi_interix.m4 \ + $(top_srcdir)/config/ompi_setup_contrib.m4 \ + $(top_srcdir)/config/ompi_setup_cxx.m4 \ + $(top_srcdir)/config/ompi_setup_fc.m4 \ + $(top_srcdir)/config/ompi_setup_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_ext.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_fortran.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_profiling.m4 \ + $(top_srcdir)/config/opal_case_sensitive_fs_setup.m4 \ + $(top_srcdir)/config/opal_check_alps.m4 \ + $(top_srcdir)/config/opal_check_attributes.m4 \ + $(top_srcdir)/config/opal_check_broken_qsort.m4 \ + $(top_srcdir)/config/opal_check_cma.m4 \ + $(top_srcdir)/config/opal_check_compiler_version.m4 \ + $(top_srcdir)/config/opal_check_compiler_works.m4 \ + $(top_srcdir)/config/opal_check_cray_pmi.m4 \ + $(top_srcdir)/config/opal_check_cuda.m4 \ + $(top_srcdir)/config/opal_check_icc.m4 \ + $(top_srcdir)/config/opal_check_ident.m4 \ + $(top_srcdir)/config/opal_check_knem.m4 \ + $(top_srcdir)/config/opal_check_libnl.m4 \ + $(top_srcdir)/config/opal_check_offsetof.m4 \ + $(top_srcdir)/config/opal_check_ofi.m4 \ + $(top_srcdir)/config/opal_check_openfabrics.m4 \ + $(top_srcdir)/config/opal_check_os_flavors.m4 \ + $(top_srcdir)/config/opal_check_package.m4 \ + $(top_srcdir)/config/opal_check_pmi.m4 \ + $(top_srcdir)/config/opal_check_portals4.m4 \ + $(top_srcdir)/config/opal_check_ps.m4 \ + $(top_srcdir)/config/opal_check_pthread_pids.m4 \ + $(top_srcdir)/config/opal_check_singularity.m4 \ + $(top_srcdir)/config/opal_check_ugni.m4 \ + $(top_srcdir)/config/opal_check_vendor.m4 \ + $(top_srcdir)/config/opal_check_verbs.m4 \ + $(top_srcdir)/config/opal_check_visibility.m4 \ + $(top_srcdir)/config/opal_check_withdir.m4 \ + $(top_srcdir)/config/opal_check_xpmem.m4 \ + $(top_srcdir)/config/opal_config_asm.m4 \ + $(top_srcdir)/config/opal_config_files.m4 \ + $(top_srcdir)/config/opal_config_pthreads.m4 \ + $(top_srcdir)/config/opal_config_subdir.m4 \ + $(top_srcdir)/config/opal_config_subdir_args.m4 \ + $(top_srcdir)/config/opal_config_threads.m4 \ + $(top_srcdir)/config/opal_configure_options.m4 \ + $(top_srcdir)/config/opal_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/opal_find_type.m4 \ + $(top_srcdir)/config/opal_functions.m4 \ + $(top_srcdir)/config/opal_lang_link_with_c.m4 \ + $(top_srcdir)/config/opal_load_platform.m4 \ + $(top_srcdir)/config/opal_mca.m4 \ + $(top_srcdir)/config/opal_save_version.m4 \ + $(top_srcdir)/config/opal_search_libs.m4 \ + $(top_srcdir)/config/opal_set_lib_prefix.m4 \ + $(top_srcdir)/config/opal_set_mca_prefix.m4 \ + $(top_srcdir)/config/opal_setup_cc.m4 \ + $(top_srcdir)/config/opal_setup_cli.m4 \ + $(top_srcdir)/config/opal_setup_cxx.m4 \ + $(top_srcdir)/config/opal_setup_ft.m4 \ + $(top_srcdir)/config/opal_setup_wrappers.m4 \ + $(top_srcdir)/config/opal_setup_zlib.m4 \ + $(top_srcdir)/config/opal_strip_optflags.m4 \ + $(top_srcdir)/config/opal_summary.m4 \ + $(top_srcdir)/config/opal_try_assemble.m4 \ + $(top_srcdir)/config/orte_check_lsf.m4 \ + $(top_srcdir)/config/orte_check_moab.m4 \ + $(top_srcdir)/config/orte_check_sge.m4 \ + $(top_srcdir)/config/orte_check_slurm.m4 \ + $(top_srcdir)/config/orte_check_tm.m4 \ + $(top_srcdir)/config/orte_config_files.m4 \ + $(top_srcdir)/config/orte_configure_options.m4 \ + $(top_srcdir)/config/orte_setup_debugger_flags.m4 \ + $(top_srcdir)/config/oshmem_config_files.m4 \ + $(top_srcdir)/config/oshmem_configure_options.m4 \ + $(top_srcdir)/config/oshmem_setup_profiling.m4 \ + $(top_srcdir)/config/pkg.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/opal/mca/backtrace/configure.m4 \ + $(top_srcdir)/opal/mca/dl/configure.m4 \ + $(top_srcdir)/opal/mca/event/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/configure.m4 \ + $(top_srcdir)/opal/mca/memcpy/configure.m4 \ + $(top_srcdir)/opal/mca/memory/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/configure.m4 \ + $(top_srcdir)/opal/mca/timer/configure.m4 \ + $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/common/sm/configure.m4 \ + $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs_usnic/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ + $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ + $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ + $(top_srcdir)/opal/mca/btl/smcuda/configure.m4 \ + $(top_srcdir)/opal/mca/btl/tcp/configure.m4 \ + $(top_srcdir)/opal/mca/btl/uct/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ugni/configure.m4 \ + $(top_srcdir)/opal/mca/btl/usnic/configure.m4 \ + $(top_srcdir)/opal/mca/btl/vader/configure.m4 \ + $(top_srcdir)/opal/mca/crs/self/configure.m4 \ + $(top_srcdir)/opal/mca/dl/dlopen/configure.m4 \ + $(top_srcdir)/opal/mca/dl/libltdl/configure.m4 \ + $(top_srcdir)/opal/mca/event/external/configure.m4 \ + $(top_srcdir)/opal/mca/event/libevent2022/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/external/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_pkg.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_attributes.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_visibility.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_vendor.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_components.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_internal.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/netloc.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/linux_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/posix_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/solaris_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/config/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/env/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/valgrind/configure.m4 \ + $(top_srcdir)/opal/mca/memory/malloc_solaris/configure.m4 \ + $(top_srcdir)/opal/mca/memory/patcher/configure.m4 \ + $(top_srcdir)/opal/mca/mpool/memkind/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/linux/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/overwrite/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/cray/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext1x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext2x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/flux/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/pmix3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s1/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s2/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/linux/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/test/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/gpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/rgpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/udreg/configure.m4 \ + $(top_srcdir)/opal/mca/reachable/netlink/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/mmap/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/posix/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/sysv/configure.m4 \ + $(top_srcdir)/opal/mca/timer/altix/configure.m4 \ + $(top_srcdir)/opal/mca/timer/darwin/configure.m4 \ + $(top_srcdir)/opal/mca/timer/linux/configure.m4 \ + $(top_srcdir)/opal/mca/timer/solaris/configure.m4 \ + $(top_srcdir)/orte/mca/common/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ess/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ess/tm/configure.m4 \ + $(top_srcdir)/orte/mca/odls/alps/configure.m4 \ + $(top_srcdir)/orte/mca/odls/default/configure.m4 \ + $(top_srcdir)/orte/mca/odls/pspawn/configure.m4 \ + $(top_srcdir)/orte/mca/oob/alps/configure.m4 \ + $(top_srcdir)/orte/mca/oob/tcp/configure.m4 \ + $(top_srcdir)/orte/mca/plm/alps/configure.m4 \ + $(top_srcdir)/orte/mca/plm/isolated/configure.m4 \ + $(top_srcdir)/orte/mca/plm/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/plm/rsh/configure.m4 \ + $(top_srcdir)/orte/mca/plm/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/plm/tm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ras/gridengine/configure.m4 \ + $(top_srcdir)/orte/mca/ras/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/snapc/full/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/central/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/stage/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/configure.m4 \ + $(top_srcdir)/ompi/mca/fcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/configure.m4 \ + $(top_srcdir)/ompi/mca/hook/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/configure.m4 \ + $(top_srcdir)/ompi/mca/common/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/common/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/bml/r2/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/cuda/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/fca/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ + $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ + $(top_srcdir)/ompi/mca/io/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/io/romio321/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/ofi/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/rdma/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/crcpw/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ob1/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/v/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/yalla/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/orte/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/pmix/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/sm/configure.m4 \ + $(top_srcdir)/ompi/mca/topo/treematch/configure.m4 \ + $(top_srcdir)/oshmem/mca/memheap/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/sysv/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/verbs/configure.m4 \ + $(top_srcdir)/ompi/mpiext/affinity/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cr/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cuda/configure.m4 \ + $(top_srcdir)/ompi/mpiext/pcollreq/configure.m4 \ + $(top_srcdir)/ompi/contrib/libompitrace/configure.m4 \ + $(top_srcdir)/config/opal_get_version.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/opal/include/opal_config.h \ + $(top_builddir)/ompi/include/mpi.h \ + $(top_builddir)/oshmem/include/shmem.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen/config.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen/config.h \ + $(top_builddir)/ompi/mpiext/cuda/c/mpiext_cuda_c.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(mcacomponentdir)" +LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) +liblocal_ops_avx_la_LIBADD = +am__liblocal_ops_avx_la_SOURCES_DIST = op_avx_functions.c +am__objects_1 = liblocal_ops_avx_la-op_avx_functions.lo +@MCA_BUILD_ompi_op_has_avx_support_TRUE@am_liblocal_ops_avx_la_OBJECTS = \ +@MCA_BUILD_ompi_op_has_avx_support_TRUE@ $(am__objects_1) +liblocal_ops_avx_la_OBJECTS = $(am_liblocal_ops_avx_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +liblocal_ops_avx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(liblocal_ops_avx_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_ompi_op_has_avx_support_TRUE@am_liblocal_ops_avx_la_rpath = +liblocal_ops_avx2_la_LIBADD = +am__liblocal_ops_avx2_la_SOURCES_DIST = op_avx_functions.c +am__objects_2 = liblocal_ops_avx2_la-op_avx_functions.lo +@MCA_BUILD_ompi_op_has_avx2_support_TRUE@am_liblocal_ops_avx2_la_OBJECTS = \ +@MCA_BUILD_ompi_op_has_avx2_support_TRUE@ $(am__objects_2) +liblocal_ops_avx2_la_OBJECTS = $(am_liblocal_ops_avx2_la_OBJECTS) +liblocal_ops_avx2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(liblocal_ops_avx2_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_ompi_op_has_avx2_support_TRUE@am_liblocal_ops_avx2_la_rpath = +liblocal_ops_avx512_la_LIBADD = +am__liblocal_ops_avx512_la_SOURCES_DIST = op_avx_functions.c +am__objects_3 = liblocal_ops_avx512_la-op_avx_functions.lo +@MCA_BUILD_ompi_op_has_avx512_support_TRUE@am_liblocal_ops_avx512_la_OBJECTS = \ +@MCA_BUILD_ompi_op_has_avx512_support_TRUE@ $(am__objects_3) +liblocal_ops_avx512_la_OBJECTS = $(am_liblocal_ops_avx512_la_OBJECTS) +liblocal_ops_avx512_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(liblocal_ops_avx512_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_ompi_op_has_avx512_support_TRUE@am_liblocal_ops_avx512_la_rpath = +libmca_op_avx_la_DEPENDENCIES = $(specialized_op_libs) +am__objects_4 = op_avx_component.lo +am_libmca_op_avx_la_OBJECTS = $(am__objects_4) +libmca_op_avx_la_OBJECTS = $(am_libmca_op_avx_la_OBJECTS) +libmca_op_avx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libmca_op_avx_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +@MCA_BUILD_ompi_op_avx_DSO_FALSE@am_libmca_op_avx_la_rpath = +mca_op_avx_la_DEPENDENCIES = $(specialized_op_libs) +am_mca_op_avx_la_OBJECTS = $(am__objects_4) +mca_op_avx_la_OBJECTS = $(am_mca_op_avx_la_OBJECTS) +mca_op_avx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(mca_op_avx_la_LDFLAGS) $(LDFLAGS) -o $@ +@MCA_BUILD_ompi_op_avx_DSO_TRUE@am_mca_op_avx_la_rpath = -rpath \ +@MCA_BUILD_ompi_op_avx_DSO_TRUE@ $(mcacomponentdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/opal/include -I$(top_builddir)/ompi/include -I$(top_builddir)/oshmem/include -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen -I$(top_builddir)/ompi/mpiext/cuda/c +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(liblocal_ops_avx_la_SOURCES) \ + $(liblocal_ops_avx2_la_SOURCES) \ + $(liblocal_ops_avx512_la_SOURCES) $(libmca_op_avx_la_SOURCES) \ + $(mca_op_avx_la_SOURCES) +DIST_SOURCES = $(am__liblocal_ops_avx_la_SOURCES_DIST) \ + $(am__liblocal_ops_avx2_la_SOURCES_DIST) \ + $(am__liblocal_ops_avx512_la_SOURCES_DIST) \ + $(libmca_op_avx_la_SOURCES) $(mca_op_avx_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/config/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMCA_PARAM_SETS_DIR = @AMCA_PARAM_SETS_DIR@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BASH = @BASH@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAGS_WITHOUT_OPTFLAGS = @CFLAGS_WITHOUT_OPTFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CRAY_ALPSLLI_CFLAGS = @CRAY_ALPSLLI_CFLAGS@ +CRAY_ALPSLLI_LIBS = @CRAY_ALPSLLI_LIBS@ +CRAY_ALPSLLI_STATIC_LIBS = @CRAY_ALPSLLI_STATIC_LIBS@ +CRAY_ALPSUTIL_CFLAGS = @CRAY_ALPSUTIL_CFLAGS@ +CRAY_ALPSUTIL_LIBS = @CRAY_ALPSUTIL_LIBS@ +CRAY_ALPSUTIL_STATIC_LIBS = @CRAY_ALPSUTIL_STATIC_LIBS@ +CRAY_ALPS_CFLAGS = @CRAY_ALPS_CFLAGS@ +CRAY_ALPS_LIBS = @CRAY_ALPS_LIBS@ +CRAY_ALPS_STATIC_LIBS = @CRAY_ALPS_STATIC_LIBS@ +CRAY_PMI_CFLAGS = @CRAY_PMI_CFLAGS@ +CRAY_PMI_LIBS = @CRAY_PMI_LIBS@ +CRAY_PMI_STATIC_LIBS = @CRAY_PMI_STATIC_LIBS@ +CRAY_UDREG_CFLAGS = @CRAY_UDREG_CFLAGS@ +CRAY_UDREG_LIBS = @CRAY_UDREG_LIBS@ +CRAY_UGNI_CFLAGS = @CRAY_UGNI_CFLAGS@ +CRAY_UGNI_LIBS = @CRAY_UGNI_LIBS@ +CRAY_WLM_DETECT_CFLAGS = @CRAY_WLM_DETECT_CFLAGS@ +CRAY_WLM_DETECT_LIBS = @CRAY_WLM_DETECT_LIBS@ +CRAY_WLM_DETECT_STATIC_LIBS = @CRAY_WLM_DETECT_STATIC_LIBS@ +CRAY_XPMEM_CFLAGS = @CRAY_XPMEM_CFLAGS@ +CRAY_XPMEM_LIBS = @CRAY_XPMEM_LIBS@ +CRAY_XPMEM_STATIC_LIBS = @CRAY_XPMEM_STATIC_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXCPPFLAGS = @CXXCPPFLAGS@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUGGER_CFLAGS = @DEBUGGER_CFLAGS@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FC = @FC@ +FCFLAGS = @FCFLAGS@ +FCFLAGS_f = @FCFLAGS_f@ +FCFLAGS_f90 = @FCFLAGS_f90@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLUX_PMI_CFLAGS = @FLUX_PMI_CFLAGS@ +FLUX_PMI_LIBS = @FLUX_PMI_LIBS@ +GREP = @GREP@ +HWLOC_CFLAGS = @HWLOC_CFLAGS@ +HWLOC_CPPFLAGS = @HWLOC_CPPFLAGS@ +HWLOC_CUDA_LIBS = @HWLOC_CUDA_LIBS@ +HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@ +HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@ +HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@ +HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@ +HWLOC_GL_LIBS = @HWLOC_GL_LIBS@ +HWLOC_HAVE_LIBXML2 = @HWLOC_HAVE_LIBXML2@ +HWLOC_HAVE_NVML = @HWLOC_HAVE_NVML@ +HWLOC_HAVE_OPENCL = @HWLOC_HAVE_OPENCL@ +HWLOC_LDFLAGS = @HWLOC_LDFLAGS@ +HWLOC_LIBS = @HWLOC_LIBS@ +HWLOC_LIBS_PRIVATE = @HWLOC_LIBS_PRIVATE@ +HWLOC_LIBXML2_CFLAGS = @HWLOC_LIBXML2_CFLAGS@ +HWLOC_LIBXML2_LIBS = @HWLOC_LIBXML2_LIBS@ +HWLOC_MS_LIB = @HWLOC_MS_LIB@ +HWLOC_MS_LIB_ARCH = @HWLOC_MS_LIB_ARCH@ +HWLOC_NVML_LIBS = @HWLOC_NVML_LIBS@ +HWLOC_OPENCL_CFLAGS = @HWLOC_OPENCL_CFLAGS@ +HWLOC_OPENCL_LDFLAGS = @HWLOC_OPENCL_LDFLAGS@ +HWLOC_OPENCL_LIBS = @HWLOC_OPENCL_LIBS@ +HWLOC_PCIACCESS_CFLAGS = @HWLOC_PCIACCESS_CFLAGS@ +HWLOC_PCIACCESS_LIBS = @HWLOC_PCIACCESS_LIBS@ +HWLOC_PLUGINS_DIR = @HWLOC_PLUGINS_DIR@ +HWLOC_PLUGINS_PATH = @HWLOC_PLUGINS_PATH@ +HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@ +HWLOC_REQUIRES = @HWLOC_REQUIRES@ +HWLOC_VERSION = @HWLOC_VERSION@ +HWLOC_X11_CPPFLAGS = @HWLOC_X11_CPPFLAGS@ +HWLOC_X11_LIBS = @HWLOC_X11_LIBS@ +HWLOC_top_builddir = @HWLOC_top_builddir@ +HWLOC_top_srcdir = @HWLOC_top_srcdir@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JAR = @JAR@ +JAVAC = @JAVAC@ +JAVADOC = @JAVADOC@ +JAVAH = @JAVAH@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ +MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ +MCA_ompi_FRAMEWORKS_SUBDIRS = @MCA_ompi_FRAMEWORKS_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_ompi_FRAMEWORK_LIBS = @MCA_ompi_FRAMEWORK_LIBS@ +MCA_ompi_bml_ALL_COMPONENTS = @MCA_ompi_bml_ALL_COMPONENTS@ +MCA_ompi_bml_ALL_SUBDIRS = @MCA_ompi_bml_ALL_SUBDIRS@ +MCA_ompi_bml_DSO_COMPONENTS = @MCA_ompi_bml_DSO_COMPONENTS@ +MCA_ompi_bml_DSO_SUBDIRS = @MCA_ompi_bml_DSO_SUBDIRS@ +MCA_ompi_bml_STATIC_COMPONENTS = @MCA_ompi_bml_STATIC_COMPONENTS@ +MCA_ompi_bml_STATIC_LTLIBS = @MCA_ompi_bml_STATIC_LTLIBS@ +MCA_ompi_bml_STATIC_SUBDIRS = @MCA_ompi_bml_STATIC_SUBDIRS@ +MCA_ompi_coll_ALL_COMPONENTS = @MCA_ompi_coll_ALL_COMPONENTS@ +MCA_ompi_coll_ALL_SUBDIRS = @MCA_ompi_coll_ALL_SUBDIRS@ +MCA_ompi_coll_DSO_COMPONENTS = @MCA_ompi_coll_DSO_COMPONENTS@ +MCA_ompi_coll_DSO_SUBDIRS = @MCA_ompi_coll_DSO_SUBDIRS@ +MCA_ompi_coll_STATIC_COMPONENTS = @MCA_ompi_coll_STATIC_COMPONENTS@ +MCA_ompi_coll_STATIC_LTLIBS = @MCA_ompi_coll_STATIC_LTLIBS@ +MCA_ompi_coll_STATIC_SUBDIRS = @MCA_ompi_coll_STATIC_SUBDIRS@ +MCA_ompi_common_ALL_COMPONENTS = @MCA_ompi_common_ALL_COMPONENTS@ +MCA_ompi_common_ALL_SUBDIRS = @MCA_ompi_common_ALL_SUBDIRS@ +MCA_ompi_common_DSO_COMPONENTS = @MCA_ompi_common_DSO_COMPONENTS@ +MCA_ompi_common_DSO_SUBDIRS = @MCA_ompi_common_DSO_SUBDIRS@ +MCA_ompi_common_STATIC_COMPONENTS = @MCA_ompi_common_STATIC_COMPONENTS@ +MCA_ompi_common_STATIC_LTLIBS = @MCA_ompi_common_STATIC_LTLIBS@ +MCA_ompi_common_STATIC_SUBDIRS = @MCA_ompi_common_STATIC_SUBDIRS@ +MCA_ompi_crcp_ALL_COMPONENTS = @MCA_ompi_crcp_ALL_COMPONENTS@ +MCA_ompi_crcp_ALL_SUBDIRS = @MCA_ompi_crcp_ALL_SUBDIRS@ +MCA_ompi_crcp_DSO_COMPONENTS = @MCA_ompi_crcp_DSO_COMPONENTS@ +MCA_ompi_crcp_DSO_SUBDIRS = @MCA_ompi_crcp_DSO_SUBDIRS@ +MCA_ompi_crcp_STATIC_COMPONENTS = @MCA_ompi_crcp_STATIC_COMPONENTS@ +MCA_ompi_crcp_STATIC_LTLIBS = @MCA_ompi_crcp_STATIC_LTLIBS@ +MCA_ompi_crcp_STATIC_SUBDIRS = @MCA_ompi_crcp_STATIC_SUBDIRS@ +MCA_ompi_fbtl_ALL_COMPONENTS = @MCA_ompi_fbtl_ALL_COMPONENTS@ +MCA_ompi_fbtl_ALL_SUBDIRS = @MCA_ompi_fbtl_ALL_SUBDIRS@ +MCA_ompi_fbtl_DSO_COMPONENTS = @MCA_ompi_fbtl_DSO_COMPONENTS@ +MCA_ompi_fbtl_DSO_SUBDIRS = @MCA_ompi_fbtl_DSO_SUBDIRS@ +MCA_ompi_fbtl_STATIC_COMPONENTS = @MCA_ompi_fbtl_STATIC_COMPONENTS@ +MCA_ompi_fbtl_STATIC_LTLIBS = @MCA_ompi_fbtl_STATIC_LTLIBS@ +MCA_ompi_fbtl_STATIC_SUBDIRS = @MCA_ompi_fbtl_STATIC_SUBDIRS@ +MCA_ompi_fcoll_ALL_COMPONENTS = @MCA_ompi_fcoll_ALL_COMPONENTS@ +MCA_ompi_fcoll_ALL_SUBDIRS = @MCA_ompi_fcoll_ALL_SUBDIRS@ +MCA_ompi_fcoll_DSO_COMPONENTS = @MCA_ompi_fcoll_DSO_COMPONENTS@ +MCA_ompi_fcoll_DSO_SUBDIRS = @MCA_ompi_fcoll_DSO_SUBDIRS@ +MCA_ompi_fcoll_STATIC_COMPONENTS = @MCA_ompi_fcoll_STATIC_COMPONENTS@ +MCA_ompi_fcoll_STATIC_LTLIBS = @MCA_ompi_fcoll_STATIC_LTLIBS@ +MCA_ompi_fcoll_STATIC_SUBDIRS = @MCA_ompi_fcoll_STATIC_SUBDIRS@ +MCA_ompi_fs_ALL_COMPONENTS = @MCA_ompi_fs_ALL_COMPONENTS@ +MCA_ompi_fs_ALL_SUBDIRS = @MCA_ompi_fs_ALL_SUBDIRS@ +MCA_ompi_fs_DSO_COMPONENTS = @MCA_ompi_fs_DSO_COMPONENTS@ +MCA_ompi_fs_DSO_SUBDIRS = @MCA_ompi_fs_DSO_SUBDIRS@ +MCA_ompi_fs_STATIC_COMPONENTS = @MCA_ompi_fs_STATIC_COMPONENTS@ +MCA_ompi_fs_STATIC_LTLIBS = @MCA_ompi_fs_STATIC_LTLIBS@ +MCA_ompi_fs_STATIC_SUBDIRS = @MCA_ompi_fs_STATIC_SUBDIRS@ +MCA_ompi_hook_ALL_COMPONENTS = @MCA_ompi_hook_ALL_COMPONENTS@ +MCA_ompi_hook_ALL_SUBDIRS = @MCA_ompi_hook_ALL_SUBDIRS@ +MCA_ompi_hook_DSO_COMPONENTS = @MCA_ompi_hook_DSO_COMPONENTS@ +MCA_ompi_hook_DSO_SUBDIRS = @MCA_ompi_hook_DSO_SUBDIRS@ +MCA_ompi_hook_STATIC_COMPONENTS = @MCA_ompi_hook_STATIC_COMPONENTS@ +MCA_ompi_hook_STATIC_LTLIBS = @MCA_ompi_hook_STATIC_LTLIBS@ +MCA_ompi_hook_STATIC_SUBDIRS = @MCA_ompi_hook_STATIC_SUBDIRS@ +MCA_ompi_io_ALL_COMPONENTS = @MCA_ompi_io_ALL_COMPONENTS@ +MCA_ompi_io_ALL_SUBDIRS = @MCA_ompi_io_ALL_SUBDIRS@ +MCA_ompi_io_DSO_COMPONENTS = @MCA_ompi_io_DSO_COMPONENTS@ +MCA_ompi_io_DSO_SUBDIRS = @MCA_ompi_io_DSO_SUBDIRS@ +MCA_ompi_io_STATIC_COMPONENTS = @MCA_ompi_io_STATIC_COMPONENTS@ +MCA_ompi_io_STATIC_LTLIBS = @MCA_ompi_io_STATIC_LTLIBS@ +MCA_ompi_io_STATIC_SUBDIRS = @MCA_ompi_io_STATIC_SUBDIRS@ +MCA_ompi_mtl_ALL_COMPONENTS = @MCA_ompi_mtl_ALL_COMPONENTS@ +MCA_ompi_mtl_ALL_SUBDIRS = @MCA_ompi_mtl_ALL_SUBDIRS@ +MCA_ompi_mtl_DIRECT_CALL_HEADER = @MCA_ompi_mtl_DIRECT_CALL_HEADER@ +MCA_ompi_mtl_DSO_COMPONENTS = @MCA_ompi_mtl_DSO_COMPONENTS@ +MCA_ompi_mtl_DSO_SUBDIRS = @MCA_ompi_mtl_DSO_SUBDIRS@ +MCA_ompi_mtl_STATIC_COMPONENTS = @MCA_ompi_mtl_STATIC_COMPONENTS@ +MCA_ompi_mtl_STATIC_LTLIBS = @MCA_ompi_mtl_STATIC_LTLIBS@ +MCA_ompi_mtl_STATIC_SUBDIRS = @MCA_ompi_mtl_STATIC_SUBDIRS@ +MCA_ompi_op_ALL_COMPONENTS = @MCA_ompi_op_ALL_COMPONENTS@ +MCA_ompi_op_ALL_SUBDIRS = @MCA_ompi_op_ALL_SUBDIRS@ +MCA_ompi_op_DSO_COMPONENTS = @MCA_ompi_op_DSO_COMPONENTS@ +MCA_ompi_op_DSO_SUBDIRS = @MCA_ompi_op_DSO_SUBDIRS@ +MCA_ompi_op_STATIC_COMPONENTS = @MCA_ompi_op_STATIC_COMPONENTS@ +MCA_ompi_op_STATIC_LTLIBS = @MCA_ompi_op_STATIC_LTLIBS@ +MCA_ompi_op_STATIC_SUBDIRS = @MCA_ompi_op_STATIC_SUBDIRS@ +MCA_ompi_osc_ALL_COMPONENTS = @MCA_ompi_osc_ALL_COMPONENTS@ +MCA_ompi_osc_ALL_SUBDIRS = @MCA_ompi_osc_ALL_SUBDIRS@ +MCA_ompi_osc_DSO_COMPONENTS = @MCA_ompi_osc_DSO_COMPONENTS@ +MCA_ompi_osc_DSO_SUBDIRS = @MCA_ompi_osc_DSO_SUBDIRS@ +MCA_ompi_osc_STATIC_COMPONENTS = @MCA_ompi_osc_STATIC_COMPONENTS@ +MCA_ompi_osc_STATIC_LTLIBS = @MCA_ompi_osc_STATIC_LTLIBS@ +MCA_ompi_osc_STATIC_SUBDIRS = @MCA_ompi_osc_STATIC_SUBDIRS@ +MCA_ompi_pml_ALL_COMPONENTS = @MCA_ompi_pml_ALL_COMPONENTS@ +MCA_ompi_pml_ALL_SUBDIRS = @MCA_ompi_pml_ALL_SUBDIRS@ +MCA_ompi_pml_DIRECT_CALL_HEADER = @MCA_ompi_pml_DIRECT_CALL_HEADER@ +MCA_ompi_pml_DSO_COMPONENTS = @MCA_ompi_pml_DSO_COMPONENTS@ +MCA_ompi_pml_DSO_SUBDIRS = @MCA_ompi_pml_DSO_SUBDIRS@ +MCA_ompi_pml_STATIC_COMPONENTS = @MCA_ompi_pml_STATIC_COMPONENTS@ +MCA_ompi_pml_STATIC_LTLIBS = @MCA_ompi_pml_STATIC_LTLIBS@ +MCA_ompi_pml_STATIC_SUBDIRS = @MCA_ompi_pml_STATIC_SUBDIRS@ +MCA_ompi_rte_ALL_COMPONENTS = @MCA_ompi_rte_ALL_COMPONENTS@ +MCA_ompi_rte_ALL_SUBDIRS = @MCA_ompi_rte_ALL_SUBDIRS@ +MCA_ompi_rte_DSO_COMPONENTS = @MCA_ompi_rte_DSO_COMPONENTS@ +MCA_ompi_rte_DSO_SUBDIRS = @MCA_ompi_rte_DSO_SUBDIRS@ +MCA_ompi_rte_STATIC_COMPONENTS = @MCA_ompi_rte_STATIC_COMPONENTS@ +MCA_ompi_rte_STATIC_LTLIBS = @MCA_ompi_rte_STATIC_LTLIBS@ +MCA_ompi_rte_STATIC_SUBDIRS = @MCA_ompi_rte_STATIC_SUBDIRS@ +MCA_ompi_sharedfp_ALL_COMPONENTS = @MCA_ompi_sharedfp_ALL_COMPONENTS@ +MCA_ompi_sharedfp_ALL_SUBDIRS = @MCA_ompi_sharedfp_ALL_SUBDIRS@ +MCA_ompi_sharedfp_DSO_COMPONENTS = @MCA_ompi_sharedfp_DSO_COMPONENTS@ +MCA_ompi_sharedfp_DSO_SUBDIRS = @MCA_ompi_sharedfp_DSO_SUBDIRS@ +MCA_ompi_sharedfp_STATIC_COMPONENTS = @MCA_ompi_sharedfp_STATIC_COMPONENTS@ +MCA_ompi_sharedfp_STATIC_LTLIBS = @MCA_ompi_sharedfp_STATIC_LTLIBS@ +MCA_ompi_sharedfp_STATIC_SUBDIRS = @MCA_ompi_sharedfp_STATIC_SUBDIRS@ +MCA_ompi_topo_ALL_COMPONENTS = @MCA_ompi_topo_ALL_COMPONENTS@ +MCA_ompi_topo_ALL_SUBDIRS = @MCA_ompi_topo_ALL_SUBDIRS@ +MCA_ompi_topo_DSO_COMPONENTS = @MCA_ompi_topo_DSO_COMPONENTS@ +MCA_ompi_topo_DSO_SUBDIRS = @MCA_ompi_topo_DSO_SUBDIRS@ +MCA_ompi_topo_STATIC_COMPONENTS = @MCA_ompi_topo_STATIC_COMPONENTS@ +MCA_ompi_topo_STATIC_LTLIBS = @MCA_ompi_topo_STATIC_LTLIBS@ +MCA_ompi_topo_STATIC_SUBDIRS = @MCA_ompi_topo_STATIC_SUBDIRS@ +MCA_ompi_vprotocol_ALL_COMPONENTS = @MCA_ompi_vprotocol_ALL_COMPONENTS@ +MCA_ompi_vprotocol_ALL_SUBDIRS = @MCA_ompi_vprotocol_ALL_SUBDIRS@ +MCA_ompi_vprotocol_DSO_COMPONENTS = @MCA_ompi_vprotocol_DSO_COMPONENTS@ +MCA_ompi_vprotocol_DSO_SUBDIRS = @MCA_ompi_vprotocol_DSO_SUBDIRS@ +MCA_ompi_vprotocol_STATIC_COMPONENTS = @MCA_ompi_vprotocol_STATIC_COMPONENTS@ +MCA_ompi_vprotocol_STATIC_LTLIBS = @MCA_ompi_vprotocol_STATIC_LTLIBS@ +MCA_ompi_vprotocol_STATIC_SUBDIRS = @MCA_ompi_vprotocol_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORKS = @MCA_opal_FRAMEWORKS@ +MCA_opal_FRAMEWORKS_SUBDIRS = @MCA_opal_FRAMEWORKS_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORK_LIBS = @MCA_opal_FRAMEWORK_LIBS@ +MCA_opal_allocator_ALL_COMPONENTS = @MCA_opal_allocator_ALL_COMPONENTS@ +MCA_opal_allocator_ALL_SUBDIRS = @MCA_opal_allocator_ALL_SUBDIRS@ +MCA_opal_allocator_DSO_COMPONENTS = @MCA_opal_allocator_DSO_COMPONENTS@ +MCA_opal_allocator_DSO_SUBDIRS = @MCA_opal_allocator_DSO_SUBDIRS@ +MCA_opal_allocator_STATIC_COMPONENTS = @MCA_opal_allocator_STATIC_COMPONENTS@ +MCA_opal_allocator_STATIC_LTLIBS = @MCA_opal_allocator_STATIC_LTLIBS@ +MCA_opal_allocator_STATIC_SUBDIRS = @MCA_opal_allocator_STATIC_SUBDIRS@ +MCA_opal_backtrace_ALL_COMPONENTS = @MCA_opal_backtrace_ALL_COMPONENTS@ +MCA_opal_backtrace_ALL_SUBDIRS = @MCA_opal_backtrace_ALL_SUBDIRS@ +MCA_opal_backtrace_DSO_COMPONENTS = @MCA_opal_backtrace_DSO_COMPONENTS@ +MCA_opal_backtrace_DSO_SUBDIRS = @MCA_opal_backtrace_DSO_SUBDIRS@ +MCA_opal_backtrace_STATIC_COMPONENTS = @MCA_opal_backtrace_STATIC_COMPONENTS@ +MCA_opal_backtrace_STATIC_LTLIBS = @MCA_opal_backtrace_STATIC_LTLIBS@ +MCA_opal_backtrace_STATIC_SUBDIRS = @MCA_opal_backtrace_STATIC_SUBDIRS@ +MCA_opal_btl_ALL_COMPONENTS = @MCA_opal_btl_ALL_COMPONENTS@ +MCA_opal_btl_ALL_SUBDIRS = @MCA_opal_btl_ALL_SUBDIRS@ +MCA_opal_btl_DSO_COMPONENTS = @MCA_opal_btl_DSO_COMPONENTS@ +MCA_opal_btl_DSO_SUBDIRS = @MCA_opal_btl_DSO_SUBDIRS@ +MCA_opal_btl_STATIC_COMPONENTS = @MCA_opal_btl_STATIC_COMPONENTS@ +MCA_opal_btl_STATIC_LTLIBS = @MCA_opal_btl_STATIC_LTLIBS@ +MCA_opal_btl_STATIC_SUBDIRS = @MCA_opal_btl_STATIC_SUBDIRS@ +MCA_opal_common_ALL_COMPONENTS = @MCA_opal_common_ALL_COMPONENTS@ +MCA_opal_common_ALL_SUBDIRS = @MCA_opal_common_ALL_SUBDIRS@ +MCA_opal_common_DSO_COMPONENTS = @MCA_opal_common_DSO_COMPONENTS@ +MCA_opal_common_DSO_SUBDIRS = @MCA_opal_common_DSO_SUBDIRS@ +MCA_opal_common_STATIC_COMPONENTS = @MCA_opal_common_STATIC_COMPONENTS@ +MCA_opal_common_STATIC_LTLIBS = @MCA_opal_common_STATIC_LTLIBS@ +MCA_opal_common_STATIC_SUBDIRS = @MCA_opal_common_STATIC_SUBDIRS@ +MCA_opal_compress_ALL_COMPONENTS = @MCA_opal_compress_ALL_COMPONENTS@ +MCA_opal_compress_ALL_SUBDIRS = @MCA_opal_compress_ALL_SUBDIRS@ +MCA_opal_compress_DSO_COMPONENTS = @MCA_opal_compress_DSO_COMPONENTS@ +MCA_opal_compress_DSO_SUBDIRS = @MCA_opal_compress_DSO_SUBDIRS@ +MCA_opal_compress_STATIC_COMPONENTS = @MCA_opal_compress_STATIC_COMPONENTS@ +MCA_opal_compress_STATIC_LTLIBS = @MCA_opal_compress_STATIC_LTLIBS@ +MCA_opal_compress_STATIC_SUBDIRS = @MCA_opal_compress_STATIC_SUBDIRS@ +MCA_opal_crs_ALL_COMPONENTS = @MCA_opal_crs_ALL_COMPONENTS@ +MCA_opal_crs_ALL_SUBDIRS = @MCA_opal_crs_ALL_SUBDIRS@ +MCA_opal_crs_DSO_COMPONENTS = @MCA_opal_crs_DSO_COMPONENTS@ +MCA_opal_crs_DSO_SUBDIRS = @MCA_opal_crs_DSO_SUBDIRS@ +MCA_opal_crs_STATIC_COMPONENTS = @MCA_opal_crs_STATIC_COMPONENTS@ +MCA_opal_crs_STATIC_LTLIBS = @MCA_opal_crs_STATIC_LTLIBS@ +MCA_opal_crs_STATIC_SUBDIRS = @MCA_opal_crs_STATIC_SUBDIRS@ +MCA_opal_dl_ALL_COMPONENTS = @MCA_opal_dl_ALL_COMPONENTS@ +MCA_opal_dl_ALL_SUBDIRS = @MCA_opal_dl_ALL_SUBDIRS@ +MCA_opal_dl_DSO_COMPONENTS = @MCA_opal_dl_DSO_COMPONENTS@ +MCA_opal_dl_DSO_SUBDIRS = @MCA_opal_dl_DSO_SUBDIRS@ +MCA_opal_dl_STATIC_COMPONENTS = @MCA_opal_dl_STATIC_COMPONENTS@ +MCA_opal_dl_STATIC_LTLIBS = @MCA_opal_dl_STATIC_LTLIBS@ +MCA_opal_dl_STATIC_SUBDIRS = @MCA_opal_dl_STATIC_SUBDIRS@ +MCA_opal_event_ALL_COMPONENTS = @MCA_opal_event_ALL_COMPONENTS@ +MCA_opal_event_ALL_SUBDIRS = @MCA_opal_event_ALL_SUBDIRS@ +MCA_opal_event_DSO_COMPONENTS = @MCA_opal_event_DSO_COMPONENTS@ +MCA_opal_event_DSO_SUBDIRS = @MCA_opal_event_DSO_SUBDIRS@ +MCA_opal_event_STATIC_COMPONENTS = @MCA_opal_event_STATIC_COMPONENTS@ +MCA_opal_event_STATIC_LTLIBS = @MCA_opal_event_STATIC_LTLIBS@ +MCA_opal_event_STATIC_SUBDIRS = @MCA_opal_event_STATIC_SUBDIRS@ +MCA_opal_hwloc_ALL_COMPONENTS = @MCA_opal_hwloc_ALL_COMPONENTS@ +MCA_opal_hwloc_ALL_SUBDIRS = @MCA_opal_hwloc_ALL_SUBDIRS@ +MCA_opal_hwloc_DSO_COMPONENTS = @MCA_opal_hwloc_DSO_COMPONENTS@ +MCA_opal_hwloc_DSO_SUBDIRS = @MCA_opal_hwloc_DSO_SUBDIRS@ +MCA_opal_hwloc_STATIC_COMPONENTS = @MCA_opal_hwloc_STATIC_COMPONENTS@ +MCA_opal_hwloc_STATIC_LTLIBS = @MCA_opal_hwloc_STATIC_LTLIBS@ +MCA_opal_hwloc_STATIC_SUBDIRS = @MCA_opal_hwloc_STATIC_SUBDIRS@ +MCA_opal_if_ALL_COMPONENTS = @MCA_opal_if_ALL_COMPONENTS@ +MCA_opal_if_ALL_SUBDIRS = @MCA_opal_if_ALL_SUBDIRS@ +MCA_opal_if_DSO_COMPONENTS = @MCA_opal_if_DSO_COMPONENTS@ +MCA_opal_if_DSO_SUBDIRS = @MCA_opal_if_DSO_SUBDIRS@ +MCA_opal_if_STATIC_COMPONENTS = @MCA_opal_if_STATIC_COMPONENTS@ +MCA_opal_if_STATIC_LTLIBS = @MCA_opal_if_STATIC_LTLIBS@ +MCA_opal_if_STATIC_SUBDIRS = @MCA_opal_if_STATIC_SUBDIRS@ +MCA_opal_installdirs_ALL_COMPONENTS = @MCA_opal_installdirs_ALL_COMPONENTS@ +MCA_opal_installdirs_ALL_SUBDIRS = @MCA_opal_installdirs_ALL_SUBDIRS@ +MCA_opal_installdirs_DSO_COMPONENTS = @MCA_opal_installdirs_DSO_COMPONENTS@ +MCA_opal_installdirs_DSO_SUBDIRS = @MCA_opal_installdirs_DSO_SUBDIRS@ +MCA_opal_installdirs_STATIC_COMPONENTS = @MCA_opal_installdirs_STATIC_COMPONENTS@ +MCA_opal_installdirs_STATIC_LTLIBS = @MCA_opal_installdirs_STATIC_LTLIBS@ +MCA_opal_installdirs_STATIC_SUBDIRS = @MCA_opal_installdirs_STATIC_SUBDIRS@ +MCA_opal_memchecker_ALL_COMPONENTS = @MCA_opal_memchecker_ALL_COMPONENTS@ +MCA_opal_memchecker_ALL_SUBDIRS = @MCA_opal_memchecker_ALL_SUBDIRS@ +MCA_opal_memchecker_DSO_COMPONENTS = @MCA_opal_memchecker_DSO_COMPONENTS@ +MCA_opal_memchecker_DSO_SUBDIRS = @MCA_opal_memchecker_DSO_SUBDIRS@ +MCA_opal_memchecker_STATIC_COMPONENTS = @MCA_opal_memchecker_STATIC_COMPONENTS@ +MCA_opal_memchecker_STATIC_LTLIBS = @MCA_opal_memchecker_STATIC_LTLIBS@ +MCA_opal_memchecker_STATIC_SUBDIRS = @MCA_opal_memchecker_STATIC_SUBDIRS@ +MCA_opal_memcpy_ALL_COMPONENTS = @MCA_opal_memcpy_ALL_COMPONENTS@ +MCA_opal_memcpy_ALL_SUBDIRS = @MCA_opal_memcpy_ALL_SUBDIRS@ +MCA_opal_memcpy_DSO_COMPONENTS = @MCA_opal_memcpy_DSO_COMPONENTS@ +MCA_opal_memcpy_DSO_SUBDIRS = @MCA_opal_memcpy_DSO_SUBDIRS@ +MCA_opal_memcpy_STATIC_COMPONENTS = @MCA_opal_memcpy_STATIC_COMPONENTS@ +MCA_opal_memcpy_STATIC_LTLIBS = @MCA_opal_memcpy_STATIC_LTLIBS@ +MCA_opal_memcpy_STATIC_SUBDIRS = @MCA_opal_memcpy_STATIC_SUBDIRS@ +MCA_opal_memory_ALL_COMPONENTS = @MCA_opal_memory_ALL_COMPONENTS@ +MCA_opal_memory_ALL_SUBDIRS = @MCA_opal_memory_ALL_SUBDIRS@ +MCA_opal_memory_DSO_COMPONENTS = @MCA_opal_memory_DSO_COMPONENTS@ +MCA_opal_memory_DSO_SUBDIRS = @MCA_opal_memory_DSO_SUBDIRS@ +MCA_opal_memory_STATIC_COMPONENTS = @MCA_opal_memory_STATIC_COMPONENTS@ +MCA_opal_memory_STATIC_LTLIBS = @MCA_opal_memory_STATIC_LTLIBS@ +MCA_opal_memory_STATIC_SUBDIRS = @MCA_opal_memory_STATIC_SUBDIRS@ +MCA_opal_mpool_ALL_COMPONENTS = @MCA_opal_mpool_ALL_COMPONENTS@ +MCA_opal_mpool_ALL_SUBDIRS = @MCA_opal_mpool_ALL_SUBDIRS@ +MCA_opal_mpool_DSO_COMPONENTS = @MCA_opal_mpool_DSO_COMPONENTS@ +MCA_opal_mpool_DSO_SUBDIRS = @MCA_opal_mpool_DSO_SUBDIRS@ +MCA_opal_mpool_STATIC_COMPONENTS = @MCA_opal_mpool_STATIC_COMPONENTS@ +MCA_opal_mpool_STATIC_LTLIBS = @MCA_opal_mpool_STATIC_LTLIBS@ +MCA_opal_mpool_STATIC_SUBDIRS = @MCA_opal_mpool_STATIC_SUBDIRS@ +MCA_opal_patcher_ALL_COMPONENTS = @MCA_opal_patcher_ALL_COMPONENTS@ +MCA_opal_patcher_ALL_SUBDIRS = @MCA_opal_patcher_ALL_SUBDIRS@ +MCA_opal_patcher_DSO_COMPONENTS = @MCA_opal_patcher_DSO_COMPONENTS@ +MCA_opal_patcher_DSO_SUBDIRS = @MCA_opal_patcher_DSO_SUBDIRS@ +MCA_opal_patcher_STATIC_COMPONENTS = @MCA_opal_patcher_STATIC_COMPONENTS@ +MCA_opal_patcher_STATIC_LTLIBS = @MCA_opal_patcher_STATIC_LTLIBS@ +MCA_opal_patcher_STATIC_SUBDIRS = @MCA_opal_patcher_STATIC_SUBDIRS@ +MCA_opal_pmix_ALL_COMPONENTS = @MCA_opal_pmix_ALL_COMPONENTS@ +MCA_opal_pmix_ALL_SUBDIRS = @MCA_opal_pmix_ALL_SUBDIRS@ +MCA_opal_pmix_DSO_COMPONENTS = @MCA_opal_pmix_DSO_COMPONENTS@ +MCA_opal_pmix_DSO_SUBDIRS = @MCA_opal_pmix_DSO_SUBDIRS@ +MCA_opal_pmix_STATIC_COMPONENTS = @MCA_opal_pmix_STATIC_COMPONENTS@ +MCA_opal_pmix_STATIC_LTLIBS = @MCA_opal_pmix_STATIC_LTLIBS@ +MCA_opal_pmix_STATIC_SUBDIRS = @MCA_opal_pmix_STATIC_SUBDIRS@ +MCA_opal_pstat_ALL_COMPONENTS = @MCA_opal_pstat_ALL_COMPONENTS@ +MCA_opal_pstat_ALL_SUBDIRS = @MCA_opal_pstat_ALL_SUBDIRS@ +MCA_opal_pstat_DSO_COMPONENTS = @MCA_opal_pstat_DSO_COMPONENTS@ +MCA_opal_pstat_DSO_SUBDIRS = @MCA_opal_pstat_DSO_SUBDIRS@ +MCA_opal_pstat_STATIC_COMPONENTS = @MCA_opal_pstat_STATIC_COMPONENTS@ +MCA_opal_pstat_STATIC_LTLIBS = @MCA_opal_pstat_STATIC_LTLIBS@ +MCA_opal_pstat_STATIC_SUBDIRS = @MCA_opal_pstat_STATIC_SUBDIRS@ +MCA_opal_rcache_ALL_COMPONENTS = @MCA_opal_rcache_ALL_COMPONENTS@ +MCA_opal_rcache_ALL_SUBDIRS = @MCA_opal_rcache_ALL_SUBDIRS@ +MCA_opal_rcache_DSO_COMPONENTS = @MCA_opal_rcache_DSO_COMPONENTS@ +MCA_opal_rcache_DSO_SUBDIRS = @MCA_opal_rcache_DSO_SUBDIRS@ +MCA_opal_rcache_STATIC_COMPONENTS = @MCA_opal_rcache_STATIC_COMPONENTS@ +MCA_opal_rcache_STATIC_LTLIBS = @MCA_opal_rcache_STATIC_LTLIBS@ +MCA_opal_rcache_STATIC_SUBDIRS = @MCA_opal_rcache_STATIC_SUBDIRS@ +MCA_opal_reachable_ALL_COMPONENTS = @MCA_opal_reachable_ALL_COMPONENTS@ +MCA_opal_reachable_ALL_SUBDIRS = @MCA_opal_reachable_ALL_SUBDIRS@ +MCA_opal_reachable_DSO_COMPONENTS = @MCA_opal_reachable_DSO_COMPONENTS@ +MCA_opal_reachable_DSO_SUBDIRS = @MCA_opal_reachable_DSO_SUBDIRS@ +MCA_opal_reachable_STATIC_COMPONENTS = @MCA_opal_reachable_STATIC_COMPONENTS@ +MCA_opal_reachable_STATIC_LTLIBS = @MCA_opal_reachable_STATIC_LTLIBS@ +MCA_opal_reachable_STATIC_SUBDIRS = @MCA_opal_reachable_STATIC_SUBDIRS@ +MCA_opal_shmem_ALL_COMPONENTS = @MCA_opal_shmem_ALL_COMPONENTS@ +MCA_opal_shmem_ALL_SUBDIRS = @MCA_opal_shmem_ALL_SUBDIRS@ +MCA_opal_shmem_DSO_COMPONENTS = @MCA_opal_shmem_DSO_COMPONENTS@ +MCA_opal_shmem_DSO_SUBDIRS = @MCA_opal_shmem_DSO_SUBDIRS@ +MCA_opal_shmem_STATIC_COMPONENTS = @MCA_opal_shmem_STATIC_COMPONENTS@ +MCA_opal_shmem_STATIC_LTLIBS = @MCA_opal_shmem_STATIC_LTLIBS@ +MCA_opal_shmem_STATIC_SUBDIRS = @MCA_opal_shmem_STATIC_SUBDIRS@ +MCA_opal_timer_ALL_COMPONENTS = @MCA_opal_timer_ALL_COMPONENTS@ +MCA_opal_timer_ALL_SUBDIRS = @MCA_opal_timer_ALL_SUBDIRS@ +MCA_opal_timer_DSO_COMPONENTS = @MCA_opal_timer_DSO_COMPONENTS@ +MCA_opal_timer_DSO_SUBDIRS = @MCA_opal_timer_DSO_SUBDIRS@ +MCA_opal_timer_STATIC_COMPONENTS = @MCA_opal_timer_STATIC_COMPONENTS@ +MCA_opal_timer_STATIC_LTLIBS = @MCA_opal_timer_STATIC_LTLIBS@ +MCA_opal_timer_STATIC_SUBDIRS = @MCA_opal_timer_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORKS = @MCA_orte_FRAMEWORKS@ +MCA_orte_FRAMEWORKS_SUBDIRS = @MCA_orte_FRAMEWORKS_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORK_LIBS = @MCA_orte_FRAMEWORK_LIBS@ +MCA_orte_common_ALL_COMPONENTS = @MCA_orte_common_ALL_COMPONENTS@ +MCA_orte_common_ALL_SUBDIRS = @MCA_orte_common_ALL_SUBDIRS@ +MCA_orte_common_DSO_COMPONENTS = @MCA_orte_common_DSO_COMPONENTS@ +MCA_orte_common_DSO_SUBDIRS = @MCA_orte_common_DSO_SUBDIRS@ +MCA_orte_common_STATIC_COMPONENTS = @MCA_orte_common_STATIC_COMPONENTS@ +MCA_orte_common_STATIC_LTLIBS = @MCA_orte_common_STATIC_LTLIBS@ +MCA_orte_common_STATIC_SUBDIRS = @MCA_orte_common_STATIC_SUBDIRS@ +MCA_orte_errmgr_ALL_COMPONENTS = @MCA_orte_errmgr_ALL_COMPONENTS@ +MCA_orte_errmgr_ALL_SUBDIRS = @MCA_orte_errmgr_ALL_SUBDIRS@ +MCA_orte_errmgr_DSO_COMPONENTS = @MCA_orte_errmgr_DSO_COMPONENTS@ +MCA_orte_errmgr_DSO_SUBDIRS = @MCA_orte_errmgr_DSO_SUBDIRS@ +MCA_orte_errmgr_STATIC_COMPONENTS = @MCA_orte_errmgr_STATIC_COMPONENTS@ +MCA_orte_errmgr_STATIC_LTLIBS = @MCA_orte_errmgr_STATIC_LTLIBS@ +MCA_orte_errmgr_STATIC_SUBDIRS = @MCA_orte_errmgr_STATIC_SUBDIRS@ +MCA_orte_ess_ALL_COMPONENTS = @MCA_orte_ess_ALL_COMPONENTS@ +MCA_orte_ess_ALL_SUBDIRS = @MCA_orte_ess_ALL_SUBDIRS@ +MCA_orte_ess_DSO_COMPONENTS = @MCA_orte_ess_DSO_COMPONENTS@ +MCA_orte_ess_DSO_SUBDIRS = @MCA_orte_ess_DSO_SUBDIRS@ +MCA_orte_ess_STATIC_COMPONENTS = @MCA_orte_ess_STATIC_COMPONENTS@ +MCA_orte_ess_STATIC_LTLIBS = @MCA_orte_ess_STATIC_LTLIBS@ +MCA_orte_ess_STATIC_SUBDIRS = @MCA_orte_ess_STATIC_SUBDIRS@ +MCA_orte_filem_ALL_COMPONENTS = @MCA_orte_filem_ALL_COMPONENTS@ +MCA_orte_filem_ALL_SUBDIRS = @MCA_orte_filem_ALL_SUBDIRS@ +MCA_orte_filem_DSO_COMPONENTS = @MCA_orte_filem_DSO_COMPONENTS@ +MCA_orte_filem_DSO_SUBDIRS = @MCA_orte_filem_DSO_SUBDIRS@ +MCA_orte_filem_STATIC_COMPONENTS = @MCA_orte_filem_STATIC_COMPONENTS@ +MCA_orte_filem_STATIC_LTLIBS = @MCA_orte_filem_STATIC_LTLIBS@ +MCA_orte_filem_STATIC_SUBDIRS = @MCA_orte_filem_STATIC_SUBDIRS@ +MCA_orte_grpcomm_ALL_COMPONENTS = @MCA_orte_grpcomm_ALL_COMPONENTS@ +MCA_orte_grpcomm_ALL_SUBDIRS = @MCA_orte_grpcomm_ALL_SUBDIRS@ +MCA_orte_grpcomm_DSO_COMPONENTS = @MCA_orte_grpcomm_DSO_COMPONENTS@ +MCA_orte_grpcomm_DSO_SUBDIRS = @MCA_orte_grpcomm_DSO_SUBDIRS@ +MCA_orte_grpcomm_STATIC_COMPONENTS = @MCA_orte_grpcomm_STATIC_COMPONENTS@ +MCA_orte_grpcomm_STATIC_LTLIBS = @MCA_orte_grpcomm_STATIC_LTLIBS@ +MCA_orte_grpcomm_STATIC_SUBDIRS = @MCA_orte_grpcomm_STATIC_SUBDIRS@ +MCA_orte_iof_ALL_COMPONENTS = @MCA_orte_iof_ALL_COMPONENTS@ +MCA_orte_iof_ALL_SUBDIRS = @MCA_orte_iof_ALL_SUBDIRS@ +MCA_orte_iof_DSO_COMPONENTS = @MCA_orte_iof_DSO_COMPONENTS@ +MCA_orte_iof_DSO_SUBDIRS = @MCA_orte_iof_DSO_SUBDIRS@ +MCA_orte_iof_STATIC_COMPONENTS = @MCA_orte_iof_STATIC_COMPONENTS@ +MCA_orte_iof_STATIC_LTLIBS = @MCA_orte_iof_STATIC_LTLIBS@ +MCA_orte_iof_STATIC_SUBDIRS = @MCA_orte_iof_STATIC_SUBDIRS@ +MCA_orte_odls_ALL_COMPONENTS = @MCA_orte_odls_ALL_COMPONENTS@ +MCA_orte_odls_ALL_SUBDIRS = @MCA_orte_odls_ALL_SUBDIRS@ +MCA_orte_odls_DSO_COMPONENTS = @MCA_orte_odls_DSO_COMPONENTS@ +MCA_orte_odls_DSO_SUBDIRS = @MCA_orte_odls_DSO_SUBDIRS@ +MCA_orte_odls_STATIC_COMPONENTS = @MCA_orte_odls_STATIC_COMPONENTS@ +MCA_orte_odls_STATIC_LTLIBS = @MCA_orte_odls_STATIC_LTLIBS@ +MCA_orte_odls_STATIC_SUBDIRS = @MCA_orte_odls_STATIC_SUBDIRS@ +MCA_orte_oob_ALL_COMPONENTS = @MCA_orte_oob_ALL_COMPONENTS@ +MCA_orte_oob_ALL_SUBDIRS = @MCA_orte_oob_ALL_SUBDIRS@ +MCA_orte_oob_DSO_COMPONENTS = @MCA_orte_oob_DSO_COMPONENTS@ +MCA_orte_oob_DSO_SUBDIRS = @MCA_orte_oob_DSO_SUBDIRS@ +MCA_orte_oob_STATIC_COMPONENTS = @MCA_orte_oob_STATIC_COMPONENTS@ +MCA_orte_oob_STATIC_LTLIBS = @MCA_orte_oob_STATIC_LTLIBS@ +MCA_orte_oob_STATIC_SUBDIRS = @MCA_orte_oob_STATIC_SUBDIRS@ +MCA_orte_plm_ALL_COMPONENTS = @MCA_orte_plm_ALL_COMPONENTS@ +MCA_orte_plm_ALL_SUBDIRS = @MCA_orte_plm_ALL_SUBDIRS@ +MCA_orte_plm_DSO_COMPONENTS = @MCA_orte_plm_DSO_COMPONENTS@ +MCA_orte_plm_DSO_SUBDIRS = @MCA_orte_plm_DSO_SUBDIRS@ +MCA_orte_plm_STATIC_COMPONENTS = @MCA_orte_plm_STATIC_COMPONENTS@ +MCA_orte_plm_STATIC_LTLIBS = @MCA_orte_plm_STATIC_LTLIBS@ +MCA_orte_plm_STATIC_SUBDIRS = @MCA_orte_plm_STATIC_SUBDIRS@ +MCA_orte_ras_ALL_COMPONENTS = @MCA_orte_ras_ALL_COMPONENTS@ +MCA_orte_ras_ALL_SUBDIRS = @MCA_orte_ras_ALL_SUBDIRS@ +MCA_orte_ras_DSO_COMPONENTS = @MCA_orte_ras_DSO_COMPONENTS@ +MCA_orte_ras_DSO_SUBDIRS = @MCA_orte_ras_DSO_SUBDIRS@ +MCA_orte_ras_STATIC_COMPONENTS = @MCA_orte_ras_STATIC_COMPONENTS@ +MCA_orte_ras_STATIC_LTLIBS = @MCA_orte_ras_STATIC_LTLIBS@ +MCA_orte_ras_STATIC_SUBDIRS = @MCA_orte_ras_STATIC_SUBDIRS@ +MCA_orte_regx_ALL_COMPONENTS = @MCA_orte_regx_ALL_COMPONENTS@ +MCA_orte_regx_ALL_SUBDIRS = @MCA_orte_regx_ALL_SUBDIRS@ +MCA_orte_regx_DSO_COMPONENTS = @MCA_orte_regx_DSO_COMPONENTS@ +MCA_orte_regx_DSO_SUBDIRS = @MCA_orte_regx_DSO_SUBDIRS@ +MCA_orte_regx_STATIC_COMPONENTS = @MCA_orte_regx_STATIC_COMPONENTS@ +MCA_orte_regx_STATIC_LTLIBS = @MCA_orte_regx_STATIC_LTLIBS@ +MCA_orte_regx_STATIC_SUBDIRS = @MCA_orte_regx_STATIC_SUBDIRS@ +MCA_orte_rmaps_ALL_COMPONENTS = @MCA_orte_rmaps_ALL_COMPONENTS@ +MCA_orte_rmaps_ALL_SUBDIRS = @MCA_orte_rmaps_ALL_SUBDIRS@ +MCA_orte_rmaps_DSO_COMPONENTS = @MCA_orte_rmaps_DSO_COMPONENTS@ +MCA_orte_rmaps_DSO_SUBDIRS = @MCA_orte_rmaps_DSO_SUBDIRS@ +MCA_orte_rmaps_STATIC_COMPONENTS = @MCA_orte_rmaps_STATIC_COMPONENTS@ +MCA_orte_rmaps_STATIC_LTLIBS = @MCA_orte_rmaps_STATIC_LTLIBS@ +MCA_orte_rmaps_STATIC_SUBDIRS = @MCA_orte_rmaps_STATIC_SUBDIRS@ +MCA_orte_rml_ALL_COMPONENTS = @MCA_orte_rml_ALL_COMPONENTS@ +MCA_orte_rml_ALL_SUBDIRS = @MCA_orte_rml_ALL_SUBDIRS@ +MCA_orte_rml_DSO_COMPONENTS = @MCA_orte_rml_DSO_COMPONENTS@ +MCA_orte_rml_DSO_SUBDIRS = @MCA_orte_rml_DSO_SUBDIRS@ +MCA_orte_rml_STATIC_COMPONENTS = @MCA_orte_rml_STATIC_COMPONENTS@ +MCA_orte_rml_STATIC_LTLIBS = @MCA_orte_rml_STATIC_LTLIBS@ +MCA_orte_rml_STATIC_SUBDIRS = @MCA_orte_rml_STATIC_SUBDIRS@ +MCA_orte_routed_ALL_COMPONENTS = @MCA_orte_routed_ALL_COMPONENTS@ +MCA_orte_routed_ALL_SUBDIRS = @MCA_orte_routed_ALL_SUBDIRS@ +MCA_orte_routed_DSO_COMPONENTS = @MCA_orte_routed_DSO_COMPONENTS@ +MCA_orte_routed_DSO_SUBDIRS = @MCA_orte_routed_DSO_SUBDIRS@ +MCA_orte_routed_STATIC_COMPONENTS = @MCA_orte_routed_STATIC_COMPONENTS@ +MCA_orte_routed_STATIC_LTLIBS = @MCA_orte_routed_STATIC_LTLIBS@ +MCA_orte_routed_STATIC_SUBDIRS = @MCA_orte_routed_STATIC_SUBDIRS@ +MCA_orte_rtc_ALL_COMPONENTS = @MCA_orte_rtc_ALL_COMPONENTS@ +MCA_orte_rtc_ALL_SUBDIRS = @MCA_orte_rtc_ALL_SUBDIRS@ +MCA_orte_rtc_DSO_COMPONENTS = @MCA_orte_rtc_DSO_COMPONENTS@ +MCA_orte_rtc_DSO_SUBDIRS = @MCA_orte_rtc_DSO_SUBDIRS@ +MCA_orte_rtc_STATIC_COMPONENTS = @MCA_orte_rtc_STATIC_COMPONENTS@ +MCA_orte_rtc_STATIC_LTLIBS = @MCA_orte_rtc_STATIC_LTLIBS@ +MCA_orte_rtc_STATIC_SUBDIRS = @MCA_orte_rtc_STATIC_SUBDIRS@ +MCA_orte_schizo_ALL_COMPONENTS = @MCA_orte_schizo_ALL_COMPONENTS@ +MCA_orte_schizo_ALL_SUBDIRS = @MCA_orte_schizo_ALL_SUBDIRS@ +MCA_orte_schizo_DSO_COMPONENTS = @MCA_orte_schizo_DSO_COMPONENTS@ +MCA_orte_schizo_DSO_SUBDIRS = @MCA_orte_schizo_DSO_SUBDIRS@ +MCA_orte_schizo_STATIC_COMPONENTS = @MCA_orte_schizo_STATIC_COMPONENTS@ +MCA_orte_schizo_STATIC_LTLIBS = @MCA_orte_schizo_STATIC_LTLIBS@ +MCA_orte_schizo_STATIC_SUBDIRS = @MCA_orte_schizo_STATIC_SUBDIRS@ +MCA_orte_snapc_ALL_COMPONENTS = @MCA_orte_snapc_ALL_COMPONENTS@ +MCA_orte_snapc_ALL_SUBDIRS = @MCA_orte_snapc_ALL_SUBDIRS@ +MCA_orte_snapc_DSO_COMPONENTS = @MCA_orte_snapc_DSO_COMPONENTS@ +MCA_orte_snapc_DSO_SUBDIRS = @MCA_orte_snapc_DSO_SUBDIRS@ +MCA_orte_snapc_STATIC_COMPONENTS = @MCA_orte_snapc_STATIC_COMPONENTS@ +MCA_orte_snapc_STATIC_LTLIBS = @MCA_orte_snapc_STATIC_LTLIBS@ +MCA_orte_snapc_STATIC_SUBDIRS = @MCA_orte_snapc_STATIC_SUBDIRS@ +MCA_orte_sstore_ALL_COMPONENTS = @MCA_orte_sstore_ALL_COMPONENTS@ +MCA_orte_sstore_ALL_SUBDIRS = @MCA_orte_sstore_ALL_SUBDIRS@ +MCA_orte_sstore_DSO_COMPONENTS = @MCA_orte_sstore_DSO_COMPONENTS@ +MCA_orte_sstore_DSO_SUBDIRS = @MCA_orte_sstore_DSO_SUBDIRS@ +MCA_orte_sstore_STATIC_COMPONENTS = @MCA_orte_sstore_STATIC_COMPONENTS@ +MCA_orte_sstore_STATIC_LTLIBS = @MCA_orte_sstore_STATIC_LTLIBS@ +MCA_orte_sstore_STATIC_SUBDIRS = @MCA_orte_sstore_STATIC_SUBDIRS@ +MCA_orte_state_ALL_COMPONENTS = @MCA_orte_state_ALL_COMPONENTS@ +MCA_orte_state_ALL_SUBDIRS = @MCA_orte_state_ALL_SUBDIRS@ +MCA_orte_state_DSO_COMPONENTS = @MCA_orte_state_DSO_COMPONENTS@ +MCA_orte_state_DSO_SUBDIRS = @MCA_orte_state_DSO_SUBDIRS@ +MCA_orte_state_STATIC_COMPONENTS = @MCA_orte_state_STATIC_COMPONENTS@ +MCA_orte_state_STATIC_LTLIBS = @MCA_orte_state_STATIC_LTLIBS@ +MCA_orte_state_STATIC_SUBDIRS = @MCA_orte_state_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORKS = @MCA_oshmem_FRAMEWORKS@ +MCA_oshmem_FRAMEWORKS_SUBDIRS = @MCA_oshmem_FRAMEWORKS_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORK_LIBS = @MCA_oshmem_FRAMEWORK_LIBS@ +MCA_oshmem_atomic_ALL_COMPONENTS = @MCA_oshmem_atomic_ALL_COMPONENTS@ +MCA_oshmem_atomic_ALL_SUBDIRS = @MCA_oshmem_atomic_ALL_SUBDIRS@ +MCA_oshmem_atomic_DSO_COMPONENTS = @MCA_oshmem_atomic_DSO_COMPONENTS@ +MCA_oshmem_atomic_DSO_SUBDIRS = @MCA_oshmem_atomic_DSO_SUBDIRS@ +MCA_oshmem_atomic_STATIC_COMPONENTS = @MCA_oshmem_atomic_STATIC_COMPONENTS@ +MCA_oshmem_atomic_STATIC_LTLIBS = @MCA_oshmem_atomic_STATIC_LTLIBS@ +MCA_oshmem_atomic_STATIC_SUBDIRS = @MCA_oshmem_atomic_STATIC_SUBDIRS@ +MCA_oshmem_memheap_ALL_COMPONENTS = @MCA_oshmem_memheap_ALL_COMPONENTS@ +MCA_oshmem_memheap_ALL_SUBDIRS = @MCA_oshmem_memheap_ALL_SUBDIRS@ +MCA_oshmem_memheap_DIRECT_CALL_HEADER = @MCA_oshmem_memheap_DIRECT_CALL_HEADER@ +MCA_oshmem_memheap_DSO_COMPONENTS = @MCA_oshmem_memheap_DSO_COMPONENTS@ +MCA_oshmem_memheap_DSO_SUBDIRS = @MCA_oshmem_memheap_DSO_SUBDIRS@ +MCA_oshmem_memheap_STATIC_COMPONENTS = @MCA_oshmem_memheap_STATIC_COMPONENTS@ +MCA_oshmem_memheap_STATIC_LTLIBS = @MCA_oshmem_memheap_STATIC_LTLIBS@ +MCA_oshmem_memheap_STATIC_SUBDIRS = @MCA_oshmem_memheap_STATIC_SUBDIRS@ +MCA_oshmem_scoll_ALL_COMPONENTS = @MCA_oshmem_scoll_ALL_COMPONENTS@ +MCA_oshmem_scoll_ALL_SUBDIRS = @MCA_oshmem_scoll_ALL_SUBDIRS@ +MCA_oshmem_scoll_DSO_COMPONENTS = @MCA_oshmem_scoll_DSO_COMPONENTS@ +MCA_oshmem_scoll_DSO_SUBDIRS = @MCA_oshmem_scoll_DSO_SUBDIRS@ +MCA_oshmem_scoll_STATIC_COMPONENTS = @MCA_oshmem_scoll_STATIC_COMPONENTS@ +MCA_oshmem_scoll_STATIC_LTLIBS = @MCA_oshmem_scoll_STATIC_LTLIBS@ +MCA_oshmem_scoll_STATIC_SUBDIRS = @MCA_oshmem_scoll_STATIC_SUBDIRS@ +MCA_oshmem_spml_ALL_COMPONENTS = @MCA_oshmem_spml_ALL_COMPONENTS@ +MCA_oshmem_spml_ALL_SUBDIRS = @MCA_oshmem_spml_ALL_SUBDIRS@ +MCA_oshmem_spml_DIRECT_CALL_HEADER = @MCA_oshmem_spml_DIRECT_CALL_HEADER@ +MCA_oshmem_spml_DSO_COMPONENTS = @MCA_oshmem_spml_DSO_COMPONENTS@ +MCA_oshmem_spml_DSO_SUBDIRS = @MCA_oshmem_spml_DSO_SUBDIRS@ +MCA_oshmem_spml_STATIC_COMPONENTS = @MCA_oshmem_spml_STATIC_COMPONENTS@ +MCA_oshmem_spml_STATIC_LTLIBS = @MCA_oshmem_spml_STATIC_LTLIBS@ +MCA_oshmem_spml_STATIC_SUBDIRS = @MCA_oshmem_spml_STATIC_SUBDIRS@ +MCA_oshmem_sshmem_ALL_COMPONENTS = @MCA_oshmem_sshmem_ALL_COMPONENTS@ +MCA_oshmem_sshmem_ALL_SUBDIRS = @MCA_oshmem_sshmem_ALL_SUBDIRS@ +MCA_oshmem_sshmem_DSO_COMPONENTS = @MCA_oshmem_sshmem_DSO_COMPONENTS@ +MCA_oshmem_sshmem_DSO_SUBDIRS = @MCA_oshmem_sshmem_DSO_SUBDIRS@ +MCA_oshmem_sshmem_STATIC_COMPONENTS = @MCA_oshmem_sshmem_STATIC_COMPONENTS@ +MCA_oshmem_sshmem_STATIC_LTLIBS = @MCA_oshmem_sshmem_STATIC_LTLIBS@ +MCA_oshmem_sshmem_STATIC_SUBDIRS = @MCA_oshmem_sshmem_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +MPIR_UNWIND_CFLAGS = @MPIR_UNWIND_CFLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPI_ALIGNMENT_FORTRAN_CHARACTER = @OMPI_ALIGNMENT_FORTRAN_CHARACTER@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX16 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX16@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX32 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX32@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX4 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX4@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX8 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX8@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION@ +OMPI_ALIGNMENT_FORTRAN_INTEGER = @OMPI_ALIGNMENT_FORTRAN_INTEGER@ +OMPI_ALIGNMENT_FORTRAN_INTEGER1 = @OMPI_ALIGNMENT_FORTRAN_INTEGER1@ +OMPI_ALIGNMENT_FORTRAN_INTEGER16 = @OMPI_ALIGNMENT_FORTRAN_INTEGER16@ +OMPI_ALIGNMENT_FORTRAN_INTEGER2 = @OMPI_ALIGNMENT_FORTRAN_INTEGER2@ +OMPI_ALIGNMENT_FORTRAN_INTEGER4 = @OMPI_ALIGNMENT_FORTRAN_INTEGER4@ +OMPI_ALIGNMENT_FORTRAN_INTEGER8 = @OMPI_ALIGNMENT_FORTRAN_INTEGER8@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL = @OMPI_ALIGNMENT_FORTRAN_LOGICAL@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL1 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL1@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL2 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL2@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL4 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL4@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL8 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL8@ +OMPI_ALIGNMENT_FORTRAN_REAL = @OMPI_ALIGNMENT_FORTRAN_REAL@ +OMPI_ALIGNMENT_FORTRAN_REAL16 = @OMPI_ALIGNMENT_FORTRAN_REAL16@ +OMPI_ALIGNMENT_FORTRAN_REAL2 = @OMPI_ALIGNMENT_FORTRAN_REAL2@ +OMPI_ALIGNMENT_FORTRAN_REAL4 = @OMPI_ALIGNMENT_FORTRAN_REAL4@ +OMPI_ALIGNMENT_FORTRAN_REAL8 = @OMPI_ALIGNMENT_FORTRAN_REAL8@ +OMPI_CONTRIB_DIST_SUBDIRS = @OMPI_CONTRIB_DIST_SUBDIRS@ +OMPI_CONTRIB_SUBDIRS = @OMPI_CONTRIB_SUBDIRS@ +OMPI_CXX_ABSOLUTE = @OMPI_CXX_ABSOLUTE@ +OMPI_ENABLE_GREQUEST_EXTENSIONS = @OMPI_ENABLE_GREQUEST_EXTENSIONS@ +OMPI_ENABLE_MPI1_COMPAT = @OMPI_ENABLE_MPI1_COMPAT@ +OMPI_F08_SUFFIX = @OMPI_F08_SUFFIX@ +OMPI_FC = @OMPI_FC@ +OMPI_FC_ABSOLUTE = @OMPI_FC_ABSOLUTE@ +OMPI_FC_MODULE_FLAG = @OMPI_FC_MODULE_FLAG@ +OMPI_FORTRAN_BUILD_SIZEOF = @OMPI_FORTRAN_BUILD_SIZEOF@ +OMPI_FORTRAN_CAPS = @OMPI_FORTRAN_CAPS@ +OMPI_FORTRAN_CKINDS = @OMPI_FORTRAN_CKINDS@ +OMPI_FORTRAN_DOUBLE_UNDERSCORE = @OMPI_FORTRAN_DOUBLE_UNDERSCORE@ +OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS = @OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS@ +OMPI_FORTRAN_F08_PREDECL = @OMPI_FORTRAN_F08_PREDECL@ +OMPI_FORTRAN_F08_TYPE = @OMPI_FORTRAN_F08_TYPE@ +OMPI_FORTRAN_HAVE_ABSTRACT = @OMPI_FORTRAN_HAVE_ABSTRACT@ +OMPI_FORTRAN_HAVE_ASYNCHRONOUS = @OMPI_FORTRAN_HAVE_ASYNCHRONOUS@ +OMPI_FORTRAN_HAVE_BIND_C = @OMPI_FORTRAN_HAVE_BIND_C@ +OMPI_FORTRAN_HAVE_C_FUNLOC = @OMPI_FORTRAN_HAVE_C_FUNLOC@ +OMPI_FORTRAN_HAVE_INTERFACE = @OMPI_FORTRAN_HAVE_INTERFACE@ +OMPI_FORTRAN_HAVE_ISO_C_BINDING = @OMPI_FORTRAN_HAVE_ISO_C_BINDING@ +OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV = @OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV@ +OMPI_FORTRAN_HAVE_PRIVATE = @OMPI_FORTRAN_HAVE_PRIVATE@ +OMPI_FORTRAN_HAVE_PROCEDURE = @OMPI_FORTRAN_HAVE_PROCEDURE@ +OMPI_FORTRAN_HAVE_STORAGE_SIZE = @OMPI_FORTRAN_HAVE_STORAGE_SIZE@ +OMPI_FORTRAN_HAVE_USE_ONLY = @OMPI_FORTRAN_HAVE_USE_ONLY@ +OMPI_FORTRAN_IGNORE_TKR_PREDECL = @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ +OMPI_FORTRAN_IGNORE_TKR_TYPE = @OMPI_FORTRAN_IGNORE_TKR_TYPE@ +OMPI_FORTRAN_IKINDS = @OMPI_FORTRAN_IKINDS@ +OMPI_FORTRAN_MAX_ARRAY_RANK = @OMPI_FORTRAN_MAX_ARRAY_RANK@ +OMPI_FORTRAN_NEED_WRAPPER_ROUTINES = @OMPI_FORTRAN_NEED_WRAPPER_ROUTINES@ +OMPI_FORTRAN_PLAIN = @OMPI_FORTRAN_PLAIN@ +OMPI_FORTRAN_RKINDS = @OMPI_FORTRAN_RKINDS@ +OMPI_FORTRAN_SINGLE_UNDERSCORE = @OMPI_FORTRAN_SINGLE_UNDERSCORE@ +OMPI_FORTRAN_STATUS_SIZE = @OMPI_FORTRAN_STATUS_SIZE@ +OMPI_FORTRAN_USEMPIF08_LIB = @OMPI_FORTRAN_USEMPIF08_LIB@ +OMPI_FORTRAN_USEMPI_DIR = @OMPI_FORTRAN_USEMPI_DIR@ +OMPI_FORTRAN_USEMPI_LIB = @OMPI_FORTRAN_USEMPI_LIB@ +OMPI_F_SUFFIX = @OMPI_F_SUFFIX@ +OMPI_GREEK_VERSION = @OMPI_GREEK_VERSION@ +OMPI_HAVE_FORTRAN_CHARACTER = @OMPI_HAVE_FORTRAN_CHARACTER@ +OMPI_HAVE_FORTRAN_COMPLEX = @OMPI_HAVE_FORTRAN_COMPLEX@ +OMPI_HAVE_FORTRAN_COMPLEX16 = @OMPI_HAVE_FORTRAN_COMPLEX16@ +OMPI_HAVE_FORTRAN_COMPLEX32 = @OMPI_HAVE_FORTRAN_COMPLEX32@ +OMPI_HAVE_FORTRAN_COMPLEX4 = @OMPI_HAVE_FORTRAN_COMPLEX4@ +OMPI_HAVE_FORTRAN_COMPLEX8 = @OMPI_HAVE_FORTRAN_COMPLEX8@ +OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX = @OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX@ +OMPI_HAVE_FORTRAN_DOUBLE_PRECISION = @OMPI_HAVE_FORTRAN_DOUBLE_PRECISION@ +OMPI_HAVE_FORTRAN_INTEGER = @OMPI_HAVE_FORTRAN_INTEGER@ +OMPI_HAVE_FORTRAN_INTEGER1 = @OMPI_HAVE_FORTRAN_INTEGER1@ +OMPI_HAVE_FORTRAN_INTEGER16 = @OMPI_HAVE_FORTRAN_INTEGER16@ +OMPI_HAVE_FORTRAN_INTEGER2 = @OMPI_HAVE_FORTRAN_INTEGER2@ +OMPI_HAVE_FORTRAN_INTEGER4 = @OMPI_HAVE_FORTRAN_INTEGER4@ +OMPI_HAVE_FORTRAN_INTEGER8 = @OMPI_HAVE_FORTRAN_INTEGER8@ +OMPI_HAVE_FORTRAN_LOGICAL = @OMPI_HAVE_FORTRAN_LOGICAL@ +OMPI_HAVE_FORTRAN_LOGICAL1 = @OMPI_HAVE_FORTRAN_LOGICAL1@ +OMPI_HAVE_FORTRAN_LOGICAL2 = @OMPI_HAVE_FORTRAN_LOGICAL2@ +OMPI_HAVE_FORTRAN_LOGICAL4 = @OMPI_HAVE_FORTRAN_LOGICAL4@ +OMPI_HAVE_FORTRAN_LOGICAL8 = @OMPI_HAVE_FORTRAN_LOGICAL8@ +OMPI_HAVE_FORTRAN_REAL = @OMPI_HAVE_FORTRAN_REAL@ +OMPI_HAVE_FORTRAN_REAL16 = @OMPI_HAVE_FORTRAN_REAL16@ +OMPI_HAVE_FORTRAN_REAL2 = @OMPI_HAVE_FORTRAN_REAL2@ +OMPI_HAVE_FORTRAN_REAL4 = @OMPI_HAVE_FORTRAN_REAL4@ +OMPI_HAVE_FORTRAN_REAL8 = @OMPI_HAVE_FORTRAN_REAL8@ +OMPI_JDK_CPPFLAGS = @OMPI_JDK_CPPFLAGS@ +OMPI_KIND_FORTRAN_CHARACTER = @OMPI_KIND_FORTRAN_CHARACTER@ +OMPI_KIND_FORTRAN_COMPLEX = @OMPI_KIND_FORTRAN_COMPLEX@ +OMPI_KIND_FORTRAN_COMPLEX16 = @OMPI_KIND_FORTRAN_COMPLEX16@ +OMPI_KIND_FORTRAN_COMPLEX32 = @OMPI_KIND_FORTRAN_COMPLEX32@ +OMPI_KIND_FORTRAN_COMPLEX4 = @OMPI_KIND_FORTRAN_COMPLEX4@ +OMPI_KIND_FORTRAN_COMPLEX8 = @OMPI_KIND_FORTRAN_COMPLEX8@ +OMPI_KIND_FORTRAN_DOUBLE_COMPLEX = @OMPI_KIND_FORTRAN_DOUBLE_COMPLEX@ +OMPI_KIND_FORTRAN_DOUBLE_PRECISION = @OMPI_KIND_FORTRAN_DOUBLE_PRECISION@ +OMPI_KIND_FORTRAN_INTEGER = @OMPI_KIND_FORTRAN_INTEGER@ +OMPI_KIND_FORTRAN_INTEGER1 = @OMPI_KIND_FORTRAN_INTEGER1@ +OMPI_KIND_FORTRAN_INTEGER16 = @OMPI_KIND_FORTRAN_INTEGER16@ +OMPI_KIND_FORTRAN_INTEGER2 = @OMPI_KIND_FORTRAN_INTEGER2@ +OMPI_KIND_FORTRAN_INTEGER4 = @OMPI_KIND_FORTRAN_INTEGER4@ +OMPI_KIND_FORTRAN_INTEGER8 = @OMPI_KIND_FORTRAN_INTEGER8@ +OMPI_KIND_FORTRAN_LOGICAL = @OMPI_KIND_FORTRAN_LOGICAL@ +OMPI_KIND_FORTRAN_LOGICAL1 = @OMPI_KIND_FORTRAN_LOGICAL1@ +OMPI_KIND_FORTRAN_LOGICAL2 = @OMPI_KIND_FORTRAN_LOGICAL2@ +OMPI_KIND_FORTRAN_LOGICAL4 = @OMPI_KIND_FORTRAN_LOGICAL4@ +OMPI_KIND_FORTRAN_LOGICAL8 = @OMPI_KIND_FORTRAN_LOGICAL8@ +OMPI_KIND_FORTRAN_REAL = @OMPI_KIND_FORTRAN_REAL@ +OMPI_KIND_FORTRAN_REAL16 = @OMPI_KIND_FORTRAN_REAL16@ +OMPI_KIND_FORTRAN_REAL2 = @OMPI_KIND_FORTRAN_REAL2@ +OMPI_KIND_FORTRAN_REAL4 = @OMPI_KIND_FORTRAN_REAL4@ +OMPI_KIND_FORTRAN_REAL8 = @OMPI_KIND_FORTRAN_REAL8@ +OMPI_LIBMPI_EXTRA_LDFLAGS = @OMPI_LIBMPI_EXTRA_LDFLAGS@ +OMPI_LIBMPI_EXTRA_LIBS = @OMPI_LIBMPI_EXTRA_LIBS@ +OMPI_LIBMPI_NAME = @OMPI_LIBMPI_NAME@ +OMPI_MAJOR_VERSION = @OMPI_MAJOR_VERSION@ +OMPI_MINOR_VERSION = @OMPI_MINOR_VERSION@ +OMPI_MPIEXT_ALL_SUBDIRS = @OMPI_MPIEXT_ALL_SUBDIRS@ +OMPI_MPIEXT_C_DIRS = @OMPI_MPIEXT_C_DIRS@ +OMPI_MPIEXT_C_LIBS = @OMPI_MPIEXT_C_LIBS@ +OMPI_MPIEXT_MPIFH_DIRS = @OMPI_MPIEXT_MPIFH_DIRS@ +OMPI_MPIEXT_MPIFH_LIBS = @OMPI_MPIEXT_MPIFH_LIBS@ +OMPI_MPIEXT_USEMPIF08_DIRS = @OMPI_MPIEXT_USEMPIF08_DIRS@ +OMPI_MPIEXT_USEMPIF08_LIBS = @OMPI_MPIEXT_USEMPIF08_LIBS@ +OMPI_MPIEXT_USEMPI_DIRS = @OMPI_MPIEXT_USEMPI_DIRS@ +OMPI_MPIEXT_USEMPI_LIBS = @OMPI_MPIEXT_USEMPI_LIBS@ +OMPI_MPI_ADDRESS_KIND = @OMPI_MPI_ADDRESS_KIND@ +OMPI_MPI_BIND_PREFIX = @OMPI_MPI_BIND_PREFIX@ +OMPI_MPI_COUNT_KIND = @OMPI_MPI_COUNT_KIND@ +OMPI_MPI_INTEGER_KIND = @OMPI_MPI_INTEGER_KIND@ +OMPI_MPI_OFFSET_KIND = @OMPI_MPI_OFFSET_KIND@ +OMPI_MPI_PREFIX = @OMPI_MPI_PREFIX@ +OMPI_PKG_CONFIG_LDFLAGS = @OMPI_PKG_CONFIG_LDFLAGS@ +OMPI_RELEASE_DATE = @OMPI_RELEASE_DATE@ +OMPI_RELEASE_VERSION = @OMPI_RELEASE_VERSION@ +OMPI_REPO_REV = @OMPI_REPO_REV@ +OMPI_SIZEOF_FORTRAN_CHARACTER = @OMPI_SIZEOF_FORTRAN_CHARACTER@ +OMPI_SIZEOF_FORTRAN_COMPLEX = @OMPI_SIZEOF_FORTRAN_COMPLEX@ +OMPI_SIZEOF_FORTRAN_COMPLEX16 = @OMPI_SIZEOF_FORTRAN_COMPLEX16@ +OMPI_SIZEOF_FORTRAN_COMPLEX32 = @OMPI_SIZEOF_FORTRAN_COMPLEX32@ +OMPI_SIZEOF_FORTRAN_COMPLEX4 = @OMPI_SIZEOF_FORTRAN_COMPLEX4@ +OMPI_SIZEOF_FORTRAN_COMPLEX8 = @OMPI_SIZEOF_FORTRAN_COMPLEX8@ +OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX = @OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX@ +OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION = @OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION@ +OMPI_SIZEOF_FORTRAN_INTEGER = @OMPI_SIZEOF_FORTRAN_INTEGER@ +OMPI_SIZEOF_FORTRAN_INTEGER1 = @OMPI_SIZEOF_FORTRAN_INTEGER1@ +OMPI_SIZEOF_FORTRAN_INTEGER16 = @OMPI_SIZEOF_FORTRAN_INTEGER16@ +OMPI_SIZEOF_FORTRAN_INTEGER2 = @OMPI_SIZEOF_FORTRAN_INTEGER2@ +OMPI_SIZEOF_FORTRAN_INTEGER4 = @OMPI_SIZEOF_FORTRAN_INTEGER4@ +OMPI_SIZEOF_FORTRAN_INTEGER8 = @OMPI_SIZEOF_FORTRAN_INTEGER8@ +OMPI_SIZEOF_FORTRAN_LOGICAL = @OMPI_SIZEOF_FORTRAN_LOGICAL@ +OMPI_SIZEOF_FORTRAN_LOGICAL1 = @OMPI_SIZEOF_FORTRAN_LOGICAL1@ +OMPI_SIZEOF_FORTRAN_LOGICAL2 = @OMPI_SIZEOF_FORTRAN_LOGICAL2@ +OMPI_SIZEOF_FORTRAN_LOGICAL4 = @OMPI_SIZEOF_FORTRAN_LOGICAL4@ +OMPI_SIZEOF_FORTRAN_LOGICAL8 = @OMPI_SIZEOF_FORTRAN_LOGICAL8@ +OMPI_SIZEOF_FORTRAN_REAL = @OMPI_SIZEOF_FORTRAN_REAL@ +OMPI_SIZEOF_FORTRAN_REAL16 = @OMPI_SIZEOF_FORTRAN_REAL16@ +OMPI_SIZEOF_FORTRAN_REAL2 = @OMPI_SIZEOF_FORTRAN_REAL2@ +OMPI_SIZEOF_FORTRAN_REAL4 = @OMPI_SIZEOF_FORTRAN_REAL4@ +OMPI_SIZEOF_FORTRAN_REAL8 = @OMPI_SIZEOF_FORTRAN_REAL8@ +OMPI_TARBALL_VERSION = @OMPI_TARBALL_VERSION@ +OMPI_TOP_BUILDDIR = @OMPI_TOP_BUILDDIR@ +OMPI_TOP_SRCDIR = @OMPI_TOP_SRCDIR@ +OMPI_VERSION = @OMPI_VERSION@ +OMPI_WRAPPER_CXX_LIB = @OMPI_WRAPPER_CXX_LIB@ +OMPI_WRAPPER_CXX_REQUIRED_FILE = @OMPI_WRAPPER_CXX_REQUIRED_FILE@ +OMPI_WRAPPER_EXTRA_CFLAGS = @OMPI_WRAPPER_EXTRA_CFLAGS@ +OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_CPPFLAGS = @OMPI_WRAPPER_EXTRA_CPPFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS = @OMPI_WRAPPER_EXTRA_CXXFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FCFLAGS = @OMPI_WRAPPER_EXTRA_FCFLAGS@ +OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FC_LDFLAGS = @OMPI_WRAPPER_EXTRA_FC_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LDFLAGS = @OMPI_WRAPPER_EXTRA_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LIBS = @OMPI_WRAPPER_EXTRA_LIBS@ +OMPI_WRAPPER_FORTRAN_REQUIRED_FILE = @OMPI_WRAPPER_FORTRAN_REQUIRED_FILE@ +OMPI_WRAPPER_INCLUDEDIR = @OMPI_WRAPPER_INCLUDEDIR@ +OMPI_WRAPPER_LIBDIR = @OMPI_WRAPPER_LIBDIR@ +OPAL_ASM_GSYM = @OPAL_ASM_GSYM@ +OPAL_ASM_LSYM = @OPAL_ASM_LSYM@ +OPAL_ASM_SUPPORT_64BIT = @OPAL_ASM_SUPPORT_64BIT@ +OPAL_ASM_TEXT = @OPAL_ASM_TEXT@ +OPAL_ASM_TYPE = @OPAL_ASM_TYPE@ +OPAL_ASSEMBLY_ARCH = @OPAL_ASSEMBLY_ARCH@ +OPAL_ASSEMBLY_BUILTIN = @OPAL_ASSEMBLY_BUILTIN@ +OPAL_ASSEMBLY_FORMAT = @OPAL_ASSEMBLY_FORMAT@ +OPAL_AS_GLOBAL = @OPAL_AS_GLOBAL@ +OPAL_AS_LABEL_SUFFIX = @OPAL_AS_LABEL_SUFFIX@ +OPAL_CC_ABSOLUTE = @OPAL_CC_ABSOLUTE@ +OPAL_CONFIGURE_CLI = @OPAL_CONFIGURE_CLI@ +OPAL_CONFIGURE_DATE = @OPAL_CONFIGURE_DATE@ +OPAL_CONFIGURE_HOST = @OPAL_CONFIGURE_HOST@ +OPAL_CONFIGURE_USER = @OPAL_CONFIGURE_USER@ +OPAL_CXX_ABSOLUTE = @OPAL_CXX_ABSOLUTE@ +OPAL_DEFAULT_MCA_PARAM_CONF = @OPAL_DEFAULT_MCA_PARAM_CONF@ +OPAL_DYN_LIB_PREFIX = @OPAL_DYN_LIB_PREFIX@ +OPAL_DYN_LIB_SUFFIX = @OPAL_DYN_LIB_SUFFIX@ +OPAL_GREEK_VERSION = @OPAL_GREEK_VERSION@ +OPAL_LIB_PREFIX = @OPAL_LIB_PREFIX@ +OPAL_MAJOR_VERSION = @OPAL_MAJOR_VERSION@ +OPAL_MAX_DATAREP_STRING = @OPAL_MAX_DATAREP_STRING@ +OPAL_MAX_ERROR_STRING = @OPAL_MAX_ERROR_STRING@ +OPAL_MAX_INFO_KEY = @OPAL_MAX_INFO_KEY@ +OPAL_MAX_INFO_VAL = @OPAL_MAX_INFO_VAL@ +OPAL_MAX_OBJECT_NAME = @OPAL_MAX_OBJECT_NAME@ +OPAL_MAX_PORT_NAME = @OPAL_MAX_PORT_NAME@ +OPAL_MAX_PROCESSOR_NAME = @OPAL_MAX_PROCESSOR_NAME@ +OPAL_MINOR_VERSION = @OPAL_MINOR_VERSION@ +OPAL_PARAM_FROM_PLATFORM = @OPAL_PARAM_FROM_PLATFORM@ +OPAL_PKG_CONFIG_LDFLAGS = @OPAL_PKG_CONFIG_LDFLAGS@ +OPAL_RELEASE_DATE = @OPAL_RELEASE_DATE@ +OPAL_RELEASE_VERSION = @OPAL_RELEASE_VERSION@ +OPAL_REPO_REV = @OPAL_REPO_REV@ +OPAL_TARBALL_VERSION = @OPAL_TARBALL_VERSION@ +OPAL_TOP_BUILDDIR = @OPAL_TOP_BUILDDIR@ +OPAL_TOP_SRCDIR = @OPAL_TOP_SRCDIR@ +OPAL_VERSION = @OPAL_VERSION@ +OPAL_WRAPPER_EXTRA_CFLAGS = @OPAL_WRAPPER_EXTRA_CFLAGS@ +OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_CPPFLAGS = @OPAL_WRAPPER_EXTRA_CPPFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS = @OPAL_WRAPPER_EXTRA_CXXFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_LDFLAGS = @OPAL_WRAPPER_EXTRA_LDFLAGS@ +OPAL_WRAPPER_EXTRA_LIBS = @OPAL_WRAPPER_EXTRA_LIBS@ +ORTE_GREEK_VERSION = @ORTE_GREEK_VERSION@ +ORTE_LIB_PREFIX = @ORTE_LIB_PREFIX@ +ORTE_MAJOR_VERSION = @ORTE_MAJOR_VERSION@ +ORTE_MINOR_VERSION = @ORTE_MINOR_VERSION@ +ORTE_PKG_CONFIG_LDFLAGS = @ORTE_PKG_CONFIG_LDFLAGS@ +ORTE_RELEASE_DATE = @ORTE_RELEASE_DATE@ +ORTE_RELEASE_VERSION = @ORTE_RELEASE_VERSION@ +ORTE_REPO_REV = @ORTE_REPO_REV@ +ORTE_TARBALL_VERSION = @ORTE_TARBALL_VERSION@ +ORTE_TOP_BUILDDIR = @ORTE_TOP_BUILDDIR@ +ORTE_TOP_SRCDIR = @ORTE_TOP_SRCDIR@ +ORTE_VERSION = @ORTE_VERSION@ +ORTE_WRAPPER_EXTRA_CFLAGS = @ORTE_WRAPPER_EXTRA_CFLAGS@ +ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX = @ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX@ +ORTE_WRAPPER_EXTRA_CPPFLAGS = @ORTE_WRAPPER_EXTRA_CPPFLAGS@ +ORTE_WRAPPER_EXTRA_LDFLAGS = @ORTE_WRAPPER_EXTRA_LDFLAGS@ +ORTE_WRAPPER_EXTRA_LIBS = @ORTE_WRAPPER_EXTRA_LIBS@ +OSHMEM_GREEK_VERSION = @OSHMEM_GREEK_VERSION@ +OSHMEM_LIBSHMEM_EXTRA_LDFLAGS = @OSHMEM_LIBSHMEM_EXTRA_LDFLAGS@ +OSHMEM_LIBSHMEM_EXTRA_LIBS = @OSHMEM_LIBSHMEM_EXTRA_LIBS@ +OSHMEM_MAJOR_VERSION = @OSHMEM_MAJOR_VERSION@ +OSHMEM_MINOR_VERSION = @OSHMEM_MINOR_VERSION@ +OSHMEM_RELEASE_DATE = @OSHMEM_RELEASE_DATE@ +OSHMEM_RELEASE_VERSION = @OSHMEM_RELEASE_VERSION@ +OSHMEM_REPO_REV = @OSHMEM_REPO_REV@ +OSHMEM_TARBALL_VERSION = @OSHMEM_TARBALL_VERSION@ +OSHMEM_TOP_BUILDDIR = @OSHMEM_TOP_BUILDDIR@ +OSHMEM_TOP_SRCDIR = @OSHMEM_TOP_SRCDIR@ +OSHMEM_VERSION = @OSHMEM_VERSION@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +QRSH = @QRSH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SINGULARITY = @SINGULARITY@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_FC = @ac_ct_FC@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +atomic_mxm_CFLAGS = @atomic_mxm_CFLAGS@ +atomic_mxm_CPPFLAGS = @atomic_mxm_CPPFLAGS@ +atomic_mxm_LDFLAGS = @atomic_mxm_LDFLAGS@ +atomic_mxm_LIBS = @atomic_mxm_LIBS@ +atomic_ucx_CFLAGS = @atomic_ucx_CFLAGS@ +atomic_ucx_CPPFLAGS = @atomic_ucx_CPPFLAGS@ +atomic_ucx_LDFLAGS = @atomic_ucx_LDFLAGS@ +atomic_ucx_LIBS = @atomic_ucx_LIBS@ +bindir = @bindir@ +btl_openib_CFLAGS = @btl_openib_CFLAGS@ +btl_openib_CPPFLAGS = @btl_openib_CPPFLAGS@ +btl_openib_LDFLAGS = @btl_openib_LDFLAGS@ +btl_openib_LIBS = @btl_openib_LIBS@ +btl_portals4_CPPFLAGS = @btl_portals4_CPPFLAGS@ +btl_portals4_LDFLAGS = @btl_portals4_LDFLAGS@ +btl_portals4_LIBS = @btl_portals4_LIBS@ +btl_uct_CPPFLAGS = @btl_uct_CPPFLAGS@ +btl_uct_LDFLAGS = @btl_uct_LDFLAGS@ +btl_uct_LIBS = @btl_uct_LIBS@ +btl_ugni_CPPFLAGS = @btl_ugni_CPPFLAGS@ +btl_ugni_LDFLAGS = @btl_ugni_LDFLAGS@ +btl_ugni_LIBS = @btl_ugni_LIBS@ +btl_vader_CFLAGS = @btl_vader_CFLAGS@ +btl_vader_CPPFLAGS = @btl_vader_CPPFLAGS@ +btl_vader_LDFLAGS = @btl_vader_LDFLAGS@ +btl_vader_LIBS = @btl_vader_LIBS@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +coll_fca_CFLAGS = @coll_fca_CFLAGS@ +coll_fca_CPPFLAGS = @coll_fca_CPPFLAGS@ +coll_fca_HOME = @coll_fca_HOME@ +coll_fca_LDFLAGS = @coll_fca_LDFLAGS@ +coll_fca_LIBS = @coll_fca_LIBS@ +coll_hcoll_CFLAGS = @coll_hcoll_CFLAGS@ +coll_hcoll_CPPFLAGS = @coll_hcoll_CPPFLAGS@ +coll_hcoll_LDFLAGS = @coll_hcoll_LDFLAGS@ +coll_hcoll_LIBS = @coll_hcoll_LIBS@ +coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ +coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ +coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ +common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ +common_alps_LDFLAGS = @common_alps_LDFLAGS@ +common_alps_LIBS = @common_alps_LIBS@ +common_cuda_CPPFLAGS = @common_cuda_CPPFLAGS@ +common_ucx_CFLAGS = @common_ucx_CFLAGS@ +common_ucx_CPPFLAGS = @common_ucx_CPPFLAGS@ +common_ucx_LDFLAGS = @common_ucx_LDFLAGS@ +common_ucx_LIBS = @common_ucx_LIBS@ +common_verbs_CFLAGS = @common_verbs_CFLAGS@ +common_verbs_CPPFLAGS = @common_verbs_CPPFLAGS@ +common_verbs_LDFLAGS = @common_verbs_LDFLAGS@ +common_verbs_LIBS = @common_verbs_LIBS@ +common_verbs_usnic_CPPFLAGS = @common_verbs_usnic_CPPFLAGS@ +common_verbs_usnic_LDFLAGS = @common_verbs_usnic_LDFLAGS@ +common_verbs_usnic_LIBS = @common_verbs_usnic_LIBS@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +ess_alps_CPPFLAGS = @ess_alps_CPPFLAGS@ +ess_alps_LDFLAGS = @ess_alps_LDFLAGS@ +ess_alps_LIBS = @ess_alps_LIBS@ +ess_lsf_CPPFLAGS = @ess_lsf_CPPFLAGS@ +ess_lsf_LDFLAGS = @ess_lsf_LDFLAGS@ +ess_lsf_LIBS = @ess_lsf_LIBS@ +ess_slurm_CPPFLAGS = @ess_slurm_CPPFLAGS@ +ess_slurm_LDFLAGS = @ess_slurm_LDFLAGS@ +ess_slurm_LIBS = @ess_slurm_LIBS@ +ess_tm_CPPFLAGS = @ess_tm_CPPFLAGS@ +ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ +ess_tm_LIBS = @ess_tm_LIBS@ +exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ +fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ +fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ +fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ +fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ +fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ +fs_lustre_LIBS = @fs_lustre_LIBS@ +fs_pvfs2_CPPFLAGS = @fs_pvfs2_CPPFLAGS@ +fs_pvfs2_LDFLAGS = @fs_pvfs2_LDFLAGS@ +fs_pvfs2_LIBS = @fs_pvfs2_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ +libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ +libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ +libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ +libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ +libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ +libmca_opal_common_verbs_so_version = @libmca_opal_common_verbs_so_version@ +libmca_orte_common_alps_so_version = @libmca_orte_common_alps_so_version@ +libmpi_cxx_so_version = @libmpi_cxx_so_version@ +libmpi_java_so_version = @libmpi_java_so_version@ +libmpi_mpifh_so_version = @libmpi_mpifh_so_version@ +libmpi_so_version = @libmpi_so_version@ +libmpi_usempi_ignore_tkr_so_version = @libmpi_usempi_ignore_tkr_so_version@ +libmpi_usempi_tkr_so_version = @libmpi_usempi_tkr_so_version@ +libmpi_usempif08_so_version = @libmpi_usempif08_so_version@ +libompitrace_so_version = @libompitrace_so_version@ +libopen_pal_so_version = @libopen_pal_so_version@ +libopen_rte_so_version = @libopen_rte_so_version@ +liboshmem_so_version = @liboshmem_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +memory_malloc_solaris_LIBS = @memory_malloc_solaris_LIBS@ +mkdir_p = @mkdir_p@ +mpool_memkind_CPPFLAGS = @mpool_memkind_CPPFLAGS@ +mpool_memkind_LDFLAGS = @mpool_memkind_LDFLAGS@ +mpool_memkind_LIBS = @mpool_memkind_LIBS@ +mtl_portals4_CPPFLAGS = @mtl_portals4_CPPFLAGS@ +mtl_portals4_LDFLAGS = @mtl_portals4_LDFLAGS@ +mtl_portals4_LIBS = @mtl_portals4_LIBS@ +mtl_psm2_CFLAGS = @mtl_psm2_CFLAGS@ +mtl_psm2_CPPFLAGS = @mtl_psm2_CPPFLAGS@ +mtl_psm2_LDFLAGS = @mtl_psm2_LDFLAGS@ +mtl_psm2_LIBS = @mtl_psm2_LIBS@ +mtl_psm_CFLAGS = @mtl_psm_CFLAGS@ +mtl_psm_CPPFLAGS = @mtl_psm_CPPFLAGS@ +mtl_psm_LDFLAGS = @mtl_psm_LDFLAGS@ +mtl_psm_LIBS = @mtl_psm_LIBS@ +odls_alps_CPPFLAGS = @odls_alps_CPPFLAGS@ +odls_alps_LDFLAGS = @odls_alps_LDFLAGS@ +odls_alps_LIBS = @odls_alps_LIBS@ +oldincludedir = @oldincludedir@ +ompidatadir = @ompidatadir@ +ompiincludedir = @ompiincludedir@ +ompilibdir = @ompilibdir@ +oob_alps_CPPFLAGS = @oob_alps_CPPFLAGS@ +oob_alps_LDFLAGS = @oob_alps_LDFLAGS@ +oob_alps_LIBS = @oob_alps_LIBS@ +opal_datatype_cuda_CPPFLAGS = @opal_datatype_cuda_CPPFLAGS@ +opal_dl_dlopen_LIBS = @opal_dl_dlopen_LIBS@ +opal_dl_libltdl_CPPFLAGS = @opal_dl_libltdl_CPPFLAGS@ +opal_dl_libltdl_LDFLAGS = @opal_dl_libltdl_LDFLAGS@ +opal_dl_libltdl_LIBS = @opal_dl_libltdl_LIBS@ +opal_event_external_CPPFLAGS = @opal_event_external_CPPFLAGS@ +opal_event_external_LDFLAGS = @opal_event_external_LDFLAGS@ +opal_event_external_LIBS = @opal_event_external_LIBS@ +opal_hwloc_external_LDFLAGS = @opal_hwloc_external_LDFLAGS@ +opal_hwloc_external_LIBS = @opal_hwloc_external_LIBS@ +opal_hwloc_hwloc201_CFLAGS = @opal_hwloc_hwloc201_CFLAGS@ +opal_hwloc_hwloc201_CPPFLAGS = @opal_hwloc_hwloc201_CPPFLAGS@ +opal_hwloc_hwloc201_LDFLAGS = @opal_hwloc_hwloc201_LDFLAGS@ +opal_hwloc_hwloc201_LIBS = @opal_hwloc_hwloc201_LIBS@ +opal_memchecker_valgrind_CPPFLAGS = @opal_memchecker_valgrind_CPPFLAGS@ +opal_ofi_CPPFLAGS = @opal_ofi_CPPFLAGS@ +opal_ofi_LDFLAGS = @opal_ofi_LDFLAGS@ +opal_ofi_LIBS = @opal_ofi_LIBS@ +opal_pmi1_CPPFLAGS = @opal_pmi1_CPPFLAGS@ +opal_pmi1_LDFLAGS = @opal_pmi1_LDFLAGS@ +opal_pmi1_LIBS = @opal_pmi1_LIBS@ +opal_pmi1_rpath = @opal_pmi1_rpath@ +opal_pmi2_CPPFLAGS = @opal_pmi2_CPPFLAGS@ +opal_pmi2_LDFLAGS = @opal_pmi2_LDFLAGS@ +opal_pmi2_LIBS = @opal_pmi2_LIBS@ +opal_pmi2_rpath = @opal_pmi2_rpath@ +opal_pmix_ext1x_CPPFLAGS = @opal_pmix_ext1x_CPPFLAGS@ +opal_pmix_ext1x_LDFLAGS = @opal_pmix_ext1x_LDFLAGS@ +opal_pmix_ext1x_LIBS = @opal_pmix_ext1x_LIBS@ +opal_pmix_ext2x_CPPFLAGS = @opal_pmix_ext2x_CPPFLAGS@ +opal_pmix_ext2x_LDFLAGS = @opal_pmix_ext2x_LDFLAGS@ +opal_pmix_ext2x_LIBS = @opal_pmix_ext2x_LIBS@ +opal_pmix_ext3x_CPPFLAGS = @opal_pmix_ext3x_CPPFLAGS@ +opal_pmix_ext3x_LDFLAGS = @opal_pmix_ext3x_LDFLAGS@ +opal_pmix_ext3x_LIBS = @opal_pmix_ext3x_LIBS@ +opal_pmix_pmix3x_CPPFLAGS = @opal_pmix_pmix3x_CPPFLAGS@ +opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ +opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ +opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ +opaldatadir = @opaldatadir@ +opalincludedir = @opalincludedir@ +opallibdir = @opallibdir@ +ortedatadir = @ortedatadir@ +orteincludedir = @orteincludedir@ +ortelibdir = @ortelibdir@ +osc_portals4_CPPFLAGS = @osc_portals4_CPPFLAGS@ +osc_portals4_LDFLAGS = @osc_portals4_LDFLAGS@ +osc_portals4_LIBS = @osc_portals4_LIBS@ +osc_ucx_CPPFLAGS = @osc_ucx_CPPFLAGS@ +osc_ucx_LDFLAGS = @osc_ucx_LDFLAGS@ +osc_ucx_LIBS = @osc_ucx_LIBS@ +oshmem_verbs_CFLAGS = @oshmem_verbs_CFLAGS@ +oshmem_verbs_CPPFLAGS = @oshmem_verbs_CPPFLAGS@ +oshmem_verbs_LDFLAGS = @oshmem_verbs_LDFLAGS@ +oshmem_verbs_LIBS = @oshmem_verbs_LIBS@ +oshmemdatadir = @oshmemdatadir@ +oshmemincludedir = @oshmemincludedir@ +oshmemlibdir = @oshmemlibdir@ +pdfdir = @pdfdir@ +plm_alps_CPPFLAGS = @plm_alps_CPPFLAGS@ +plm_alps_LDFLAGS = @plm_alps_LDFLAGS@ +plm_alps_LIBS = @plm_alps_LIBS@ +plm_lsf_CPPFLAGS = @plm_lsf_CPPFLAGS@ +plm_lsf_LDFLAGS = @plm_lsf_LDFLAGS@ +plm_lsf_LIBS = @plm_lsf_LIBS@ +plm_slurm_CPPFLAGS = @plm_slurm_CPPFLAGS@ +plm_slurm_LDFLAGS = @plm_slurm_LDFLAGS@ +plm_slurm_LIBS = @plm_slurm_LIBS@ +plm_tm_CPPFLAGS = @plm_tm_CPPFLAGS@ +plm_tm_LDFLAGS = @plm_tm_LDFLAGS@ +plm_tm_LIBS = @plm_tm_LIBS@ +pmix_alps_CPPFLAGS = @pmix_alps_CPPFLAGS@ +pmix_alps_LDFLAGS = @pmix_alps_LDFLAGS@ +pmix_alps_LIBS = @pmix_alps_LIBS@ +pmix_cray_CPPFLAGS = @pmix_cray_CPPFLAGS@ +pmix_cray_LDFLAGS = @pmix_cray_LDFLAGS@ +pmix_cray_LIBS = @pmix_cray_LIBS@ +pml_ucx_CPPFLAGS = @pml_ucx_CPPFLAGS@ +pml_ucx_LDFLAGS = @pml_ucx_LDFLAGS@ +pml_ucx_LIBS = @pml_ucx_LIBS@ +pml_yalla_CPPFLAGS = @pml_yalla_CPPFLAGS@ +pml_yalla_LDFLAGS = @pml_yalla_LDFLAGS@ +pml_yalla_LIBS = @pml_yalla_LIBS@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +ras_alps_CPPFLAGS = @ras_alps_CPPFLAGS@ +ras_lsf_CPPFLAGS = @ras_lsf_CPPFLAGS@ +ras_lsf_LDFLAGS = @ras_lsf_LDFLAGS@ +ras_lsf_LIBS = @ras_lsf_LIBS@ +ras_slurm_CPPFLAGS = @ras_slurm_CPPFLAGS@ +ras_slurm_LDFLAGS = @ras_slurm_LDFLAGS@ +ras_slurm_LIBS = @ras_slurm_LIBS@ +ras_tm_CPPFLAGS = @ras_tm_CPPFLAGS@ +ras_tm_LDFLAGS = @ras_tm_LDFLAGS@ +ras_tm_LIBS = @ras_tm_LIBS@ +rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ +rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ +rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ +sbindir = @sbindir@ +schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ +schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ +schizo_moab_LDFLAGS = @schizo_moab_LDFLAGS@ +schizo_moab_LIBS = @schizo_moab_LIBS@ +schizo_slurm_CPPFLAGS = @schizo_slurm_CPPFLAGS@ +schizo_slurm_LDFLAGS = @schizo_slurm_LDFLAGS@ +schizo_slurm_LIBS = @schizo_slurm_LIBS@ +scoll_fca_CFLAGS = @scoll_fca_CFLAGS@ +scoll_fca_CPPFLAGS = @scoll_fca_CPPFLAGS@ +scoll_fca_HOME = @scoll_fca_HOME@ +scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ +scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ +sharedstatedir = @sharedstatedir@ +spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ +spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ +spml_ikrit_LDFLAGS = @spml_ikrit_LDFLAGS@ +spml_ikrit_LIBS = @spml_ikrit_LIBS@ +spml_ucx_CFLAGS = @spml_ucx_CFLAGS@ +spml_ucx_CPPFLAGS = @spml_ucx_CPPFLAGS@ +spml_ucx_LDFLAGS = @spml_ucx_LDFLAGS@ +spml_ucx_LIBS = @spml_ucx_LIBS@ +srcdir = @srcdir@ +sshmem_ucx_CFLAGS = @sshmem_ucx_CFLAGS@ +sshmem_ucx_CPPFLAGS = @sshmem_ucx_CPPFLAGS@ +sshmem_ucx_LDFLAGS = @sshmem_ucx_LDFLAGS@ +sshmem_ucx_LIBS = @sshmem_ucx_LIBS@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ucx_CFLAGS = @ucx_CFLAGS@ +ucx_LIBS = @ucx_LIBS@ +ucx_STATIC_LIBS = @ucx_STATIC_LIBS@ +sources = op_avx_component.c op_avx.h +sources_extended = op_avx_functions.c + +# Open MPI components can be compiled two ways: +# +# 1. As a standalone dynamic shared object (DSO), sometimes called a +# dynamically loadable library (DLL). +# +# 2. As a static library that is slurped up into the upper-level +# libmpi library (regardless of whether libmpi is a static or dynamic +# library). This is called a "Libtool convenience library". +# +# The component needs to create an output library in this top-level +# component directory, and named either mca__.la (for DSO +# builds) or libmca__.la (for static builds). The OMPI +# build system will have set the +# MCA_BUILD_ompi___DSO AM_CONDITIONAL to indicate +# which way this component should be built. + +# We need to support all processors from early AVX to full AVX512 support, based on +# a decision made at runtime. So, we generate all combinations of capabilities, and +# we will select the most suitable (based on the processor flags) during the +# component initialization. +specialized_op_libs = $(am__append_1) $(am__append_4) $(am__append_5) +@MCA_BUILD_ompi_op_has_avx_support_TRUE@liblocal_ops_avx_la_SOURCES = $(sources_extended) +@MCA_BUILD_ompi_op_has_avx_support_TRUE@liblocal_ops_avx_la_CFLAGS = @MCA_BUILD_OP_AVX_FLAGS@ +@MCA_BUILD_ompi_op_has_avx_support_TRUE@liblocal_ops_avx_la_CPPFLAGS = \ +@MCA_BUILD_ompi_op_has_avx_support_TRUE@ -DGENERATE_AVX_CODE \ +@MCA_BUILD_ompi_op_has_avx_support_TRUE@ $(am__append_2) \ +@MCA_BUILD_ompi_op_has_avx_support_TRUE@ $(am__append_3) +@MCA_BUILD_ompi_op_has_avx2_support_TRUE@liblocal_ops_avx2_la_SOURCES = $(sources_extended) +@MCA_BUILD_ompi_op_has_avx2_support_TRUE@liblocal_ops_avx2_la_CFLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +@MCA_BUILD_ompi_op_has_avx2_support_TRUE@liblocal_ops_avx2_la_CPPFLAGS = -DGENERATE_SSE3_CODE -DGENERATE_SSE41_CODE -DGENERATE_AVX_CODE -DGENERATE_AVX2_CODE +@MCA_BUILD_ompi_op_has_avx512_support_TRUE@liblocal_ops_avx512_la_SOURCES = $(sources_extended) +@MCA_BUILD_ompi_op_has_avx512_support_TRUE@liblocal_ops_avx512_la_CFLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +@MCA_BUILD_ompi_op_has_avx512_support_TRUE@liblocal_ops_avx512_la_CPPFLAGS = -DGENERATE_SSE3_CODE -DGENERATE_SSE41_CODE -DGENERATE_AVX_CODE -DGENERATE_AVX2_CODE -DGENERATE_AVX512_CODE +component_noinst = $(specialized_op_libs) $(am__append_6) +@MCA_BUILD_ompi_op_avx_DSO_FALSE@component_install = +@MCA_BUILD_ompi_op_avx_DSO_TRUE@component_install = mca_op_avx.la + +# Specific information for DSO builds. +# +# The DSO should install itself in $(ompilibdir) (by default, +# $prefix/lib/openmpi). +mcacomponentdir = $(ompilibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_op_avx_la_SOURCES = $(sources) +mca_op_avx_la_LIBADD = $(specialized_op_libs) +mca_op_avx_la_LDFLAGS = -module -avoid-version $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la + +# Specific information for static builds. +# +# Note that we *must* "noinst"; the upper-layer Makefile.am's will +# slurp in the resulting .la library into libmpi. +noinst_LTLIBRARIES = $(component_noinst) +libmca_op_avx_la_SOURCES = $(sources) +libmca_op_avx_la_LIBADD = $(specialized_op_libs) +libmca_op_avx_la_LDFLAGS = -module -avoid-version +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign ompi/mca/op/avx/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign ompi/mca/op/avx/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-mcacomponentLTLIBRARIES: $(mcacomponent_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(mcacomponentdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(mcacomponentdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(mcacomponentdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(mcacomponentdir)"; \ + } + +uninstall-mcacomponentLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(mcacomponentdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(mcacomponentdir)/$$f"; \ + done + +clean-mcacomponentLTLIBRARIES: + -test -z "$(mcacomponent_LTLIBRARIES)" || rm -f $(mcacomponent_LTLIBRARIES) + @list='$(mcacomponent_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +liblocal_ops_avx.la: $(liblocal_ops_avx_la_OBJECTS) $(liblocal_ops_avx_la_DEPENDENCIES) $(EXTRA_liblocal_ops_avx_la_DEPENDENCIES) + $(AM_V_CCLD)$(liblocal_ops_avx_la_LINK) $(am_liblocal_ops_avx_la_rpath) $(liblocal_ops_avx_la_OBJECTS) $(liblocal_ops_avx_la_LIBADD) $(LIBS) + +liblocal_ops_avx2.la: $(liblocal_ops_avx2_la_OBJECTS) $(liblocal_ops_avx2_la_DEPENDENCIES) $(EXTRA_liblocal_ops_avx2_la_DEPENDENCIES) + $(AM_V_CCLD)$(liblocal_ops_avx2_la_LINK) $(am_liblocal_ops_avx2_la_rpath) $(liblocal_ops_avx2_la_OBJECTS) $(liblocal_ops_avx2_la_LIBADD) $(LIBS) + +liblocal_ops_avx512.la: $(liblocal_ops_avx512_la_OBJECTS) $(liblocal_ops_avx512_la_DEPENDENCIES) $(EXTRA_liblocal_ops_avx512_la_DEPENDENCIES) + $(AM_V_CCLD)$(liblocal_ops_avx512_la_LINK) $(am_liblocal_ops_avx512_la_rpath) $(liblocal_ops_avx512_la_OBJECTS) $(liblocal_ops_avx512_la_LIBADD) $(LIBS) + +libmca_op_avx.la: $(libmca_op_avx_la_OBJECTS) $(libmca_op_avx_la_DEPENDENCIES) $(EXTRA_libmca_op_avx_la_DEPENDENCIES) + $(AM_V_CCLD)$(libmca_op_avx_la_LINK) $(am_libmca_op_avx_la_rpath) $(libmca_op_avx_la_OBJECTS) $(libmca_op_avx_la_LIBADD) $(LIBS) + +mca_op_avx.la: $(mca_op_avx_la_OBJECTS) $(mca_op_avx_la_DEPENDENCIES) $(EXTRA_mca_op_avx_la_DEPENDENCIES) + $(AM_V_CCLD)$(mca_op_avx_la_LINK) $(am_mca_op_avx_la_rpath) $(mca_op_avx_la_OBJECTS) $(mca_op_avx_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblocal_ops_avx2_la-op_avx_functions.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblocal_ops_avx512_la-op_avx_functions.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblocal_ops_avx_la-op_avx_functions.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/op_avx_component.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +liblocal_ops_avx_la-op_avx_functions.lo: op_avx_functions.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblocal_ops_avx_la_CPPFLAGS) $(CPPFLAGS) $(liblocal_ops_avx_la_CFLAGS) $(CFLAGS) -MT liblocal_ops_avx_la-op_avx_functions.lo -MD -MP -MF $(DEPDIR)/liblocal_ops_avx_la-op_avx_functions.Tpo -c -o liblocal_ops_avx_la-op_avx_functions.lo `test -f 'op_avx_functions.c' || echo '$(srcdir)/'`op_avx_functions.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblocal_ops_avx_la-op_avx_functions.Tpo $(DEPDIR)/liblocal_ops_avx_la-op_avx_functions.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='op_avx_functions.c' object='liblocal_ops_avx_la-op_avx_functions.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblocal_ops_avx_la_CPPFLAGS) $(CPPFLAGS) $(liblocal_ops_avx_la_CFLAGS) $(CFLAGS) -c -o liblocal_ops_avx_la-op_avx_functions.lo `test -f 'op_avx_functions.c' || echo '$(srcdir)/'`op_avx_functions.c + +liblocal_ops_avx2_la-op_avx_functions.lo: op_avx_functions.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblocal_ops_avx2_la_CPPFLAGS) $(CPPFLAGS) $(liblocal_ops_avx2_la_CFLAGS) $(CFLAGS) -MT liblocal_ops_avx2_la-op_avx_functions.lo -MD -MP -MF $(DEPDIR)/liblocal_ops_avx2_la-op_avx_functions.Tpo -c -o liblocal_ops_avx2_la-op_avx_functions.lo `test -f 'op_avx_functions.c' || echo '$(srcdir)/'`op_avx_functions.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblocal_ops_avx2_la-op_avx_functions.Tpo $(DEPDIR)/liblocal_ops_avx2_la-op_avx_functions.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='op_avx_functions.c' object='liblocal_ops_avx2_la-op_avx_functions.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblocal_ops_avx2_la_CPPFLAGS) $(CPPFLAGS) $(liblocal_ops_avx2_la_CFLAGS) $(CFLAGS) -c -o liblocal_ops_avx2_la-op_avx_functions.lo `test -f 'op_avx_functions.c' || echo '$(srcdir)/'`op_avx_functions.c + +liblocal_ops_avx512_la-op_avx_functions.lo: op_avx_functions.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblocal_ops_avx512_la_CPPFLAGS) $(CPPFLAGS) $(liblocal_ops_avx512_la_CFLAGS) $(CFLAGS) -MT liblocal_ops_avx512_la-op_avx_functions.lo -MD -MP -MF $(DEPDIR)/liblocal_ops_avx512_la-op_avx_functions.Tpo -c -o liblocal_ops_avx512_la-op_avx_functions.lo `test -f 'op_avx_functions.c' || echo '$(srcdir)/'`op_avx_functions.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblocal_ops_avx512_la-op_avx_functions.Tpo $(DEPDIR)/liblocal_ops_avx512_la-op_avx_functions.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='op_avx_functions.c' object='liblocal_ops_avx512_la-op_avx_functions.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblocal_ops_avx512_la_CPPFLAGS) $(CPPFLAGS) $(liblocal_ops_avx512_la_CFLAGS) $(CFLAGS) -c -o liblocal_ops_avx512_la-op_avx_functions.lo `test -f 'op_avx_functions.c' || echo '$(srcdir)/'`op_avx_functions.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(mcacomponentdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-mcacomponentLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-mcacomponentLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-mcacomponentLTLIBRARIES install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-mcacomponentLTLIBRARIES + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/ompi/mca/op/avx/op_avx_component.c openmpi-4.1.4/ompi/mca/op/avx/op_avx_component.c --- openmpi-4.0.3/ompi/mca/op/avx/op_avx_component.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/op/avx/op_avx_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,330 @@ +/* + * Copyright (c) 2019-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2021 Cisco Systems, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +/** @file + * + * This is the "avx" component source code. + * + */ + +#include "ompi_config.h" + +#include "opal/util/printf.h" +#include "ompi/include/mpi_portable_platform.h" + +#include "ompi/constants.h" +#include "ompi/op/op.h" +#include "ompi/mca/op/op.h" +#include "ompi/mca/op/base/base.h" +#include "ompi/mca/op/avx/op_avx.h" + +static int avx_component_open(void); +static int avx_component_close(void); +static int avx_component_init_query(bool enable_progress_threads, + bool enable_mpi_thread_multiple); +static struct ompi_op_base_module_1_0_0_t * + avx_component_op_query(struct ompi_op_t *op, int *priority); +static int avx_component_register(void); + +static mca_base_var_enum_value_flag_t avx_support_flags[] = { + { .flag = 0x001, .string = "SSE" }, + { .flag = 0x002, .string = "SSE2" }, + { .flag = 0x004, .string = "SSE3" }, + { .flag = 0x008, .string = "SSE4.1" }, + { .flag = 0x010, .string = "AVX" }, + { .flag = 0x020, .string = "AVX2" }, + { .flag = 0x100, .string = "AVX512F" }, + { .flag = 0x200, .string = "AVX512BW" }, + { .flag = 0, .string = NULL }, +}; + +/** + * A slightly modified code from + * https://software.intel.com/en-us/articles/how-to-detect-new-instruction-support-in-the-4th-generation-intel-core-processor-family + */ +#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1300) + +#include + +static uint32_t has_intel_AVX_features(void) +{ + uint32_t flags = 0; + + flags |= _may_i_use_cpu_feature(_FEATURE_AVX512F) ? OMPI_OP_AVX_HAS_AVX512F_FLAG : 0; + flags |= _may_i_use_cpu_feature(_FEATURE_AVX512BW) ? OMPI_OP_AVX_HAS_AVX512BW_FLAG : 0; + flags |= _may_i_use_cpu_feature(_FEATURE_AVX2) ? OMPI_OP_AVX_HAS_AVX2_FLAG : 0; + flags |= _may_i_use_cpu_feature(_FEATURE_AVX) ? OMPI_OP_AVX_HAS_AVX_FLAG : 0; + flags |= _may_i_use_cpu_feature(_FEATURE_SSE4_1) ? OMPI_OP_AVX_HAS_SSE4_1_FLAG : 0; + flags |= _may_i_use_cpu_feature(_FEATURE_SSE3) ? OMPI_OP_AVX_HAS_SSE3_FLAG : 0; + flags |= _may_i_use_cpu_feature(_FEATURE_SSE2) ? OMPI_OP_AVX_HAS_SSE2_FLAG : 0; + flags |= _may_i_use_cpu_feature(_FEATURE_SSE) ? OMPI_OP_AVX_HAS_SSE_FLAG : 0; + return flags; +} +#else /* non-Intel compiler */ +#include + +#if defined(_MSC_VER) +#include +#endif + +static void run_cpuid(uint32_t eax, uint32_t ecx, uint32_t* abcd) +{ +#if defined(_MSC_VER) + __cpuidex(abcd, eax, ecx); +#else + uint32_t ebx = 0, edx = 0; +#if defined( __i386__ ) && defined ( __PIC__ ) + /* in case of PIC under 32-bit EBX cannot be clobbered */ + __asm__ ( "movl %%ebx, %%edi \n\t cpuid \n\t xchgl %%ebx, %%edi" : "=D" (ebx), +#else + __asm__ ( "cpuid" : "+b" (ebx), +#endif /* defined( __i386__ ) && defined ( __PIC__ ) */ + "+a" (eax), "+c" (ecx), "=d" (edx) ); + abcd[0] = eax; abcd[1] = ebx; abcd[2] = ecx; abcd[3] = edx; +#endif +} + +static uint32_t has_intel_AVX_features(void) +{ + /* From https://en.wikipedia.org/wiki/CPUID#EAX=1:_Processor_Info_and_Feature_Bits */ + const uint32_t avx512f_mask = (1U << 16); // AVX512F (EAX = 7, ECX = 0) : EBX + const uint32_t avx512_bw_mask = (1U << 30); // AVX512BW (EAX = 7, ECX = 0) : EBX + const uint32_t avx2_mask = (1U << 5); // AVX2 (EAX = 7, ECX = 0) : EBX + const uint32_t avx_mask = (1U << 28); // AVX (EAX = 1, ECX = 0) : ECX + const uint32_t sse4_1_mask = (1U << 19); // SSE4.1 (EAX = 1, ECX = 0) : ECX + const uint32_t sse3_mask = (1U << 0); // SSE3 (EAX = 1, ECX = 0) : ECX + const uint32_t sse2_mask = (1U << 26); // SSE2 (EAX = 1, ECX = 0) : EDX + const uint32_t sse_mask = (1U << 15); // SSE (EAX = 1, ECX = 0) : EDX + uint32_t flags = 0, abcd[4]; + + run_cpuid( 1, 0, abcd ); + flags |= (abcd[2] & avx_mask) ? OMPI_OP_AVX_HAS_AVX_FLAG : 0; + flags |= (abcd[2] & sse4_1_mask) ? OMPI_OP_AVX_HAS_SSE4_1_FLAG : 0; + flags |= (abcd[2] & sse3_mask) ? OMPI_OP_AVX_HAS_SSE3_FLAG : 0; + flags |= (abcd[3] & sse2_mask) ? OMPI_OP_AVX_HAS_SSE2_FLAG : 0; + flags |= (abcd[3] & sse_mask) ? OMPI_OP_AVX_HAS_SSE_FLAG : 0; +#if defined(__APPLE__) + uint32_t fma_movbe_osxsave_mask = ((1U << 12) | (1U << 22) | (1U << 27)); /* FMA(12) + MOVBE (22) OSXSAVE (27) */ + // OS supports extended processor state management ? + if ( (abcd[2] & fma_movbe_osxsave_mask) != fma_movbe_osxsave_mask ) + return 0; +#endif /* defined(__APPLE__) */ + + run_cpuid( 7, 0, abcd ); + flags |= (abcd[1] & avx512f_mask) ? OMPI_OP_AVX_HAS_AVX512F_FLAG : 0; + flags |= (abcd[1] & avx512_bw_mask) ? OMPI_OP_AVX_HAS_AVX512BW_FLAG : 0; + flags |= (abcd[1] & avx2_mask) ? OMPI_OP_AVX_HAS_AVX2_FLAG : 0; + return flags; +} +#endif /* non-Intel compiler */ + +ompi_op_avx_component_t mca_op_avx_component = { + { + .opc_version = { + OMPI_OP_BASE_VERSION_1_0_0, + + .mca_component_name = "avx", + MCA_BASE_MAKE_VERSION(component, OMPI_MAJOR_VERSION, OMPI_MINOR_VERSION, + OMPI_RELEASE_VERSION), + .mca_open_component = avx_component_open, + .mca_close_component = avx_component_close, + .mca_register_component_params = avx_component_register, + }, + .opc_data = { + /* The component is checkpoint ready */ + MCA_BASE_METADATA_PARAM_CHECKPOINT + }, + + .opc_init_query = avx_component_init_query, + .opc_op_query = avx_component_op_query, + }, +}; + +/* + * Component open + */ +static int avx_component_open(void) +{ + /* We checked the flags during register, so if they are set to + * zero either the architecture is not suitable or the user disabled + * AVX support. + * + * A first level check to see what level of AVX is available on the + * hardware. + * + * Note that if this function returns non-OMPI_SUCCESS, then this + * component won't even be shown in ompi_info output (which is + * probably not what you want). + */ + return OMPI_SUCCESS; +} + +/* + * Component close + */ +static int avx_component_close(void) +{ + /* If avx was opened successfully, close it (i.e., release any + resources that may have been allocated on this component). + Note that _component_close() will always be called at the end + of the process, so it may have been after any/all of the other + component functions have been invoked (and possibly even after + modules have been created and/or destroyed). */ + + return OMPI_SUCCESS; +} + +/* + * Register MCA params. + */ +static int +avx_component_register(void) +{ + mca_op_avx_component.supported = + mca_op_avx_component.flags = has_intel_AVX_features(); + + // MCA var enum flag for conveniently seeing SSE/MMX/AVX support + // values + mca_base_var_enum_flag_t *new_enum_flag = NULL; + (void) mca_base_var_enum_create_flag("op_avx_support_flags", + avx_support_flags, &new_enum_flag); + + (void) mca_base_component_var_register(&mca_op_avx_component.super.opc_version, + "capabilities", + "Level of SSE/MMX/AVX support available in the current environment", + MCA_BASE_VAR_TYPE_INT, + &(new_enum_flag->super), 0, 0, + OPAL_INFO_LVL_4, + MCA_BASE_VAR_SCOPE_CONSTANT, + &mca_op_avx_component.supported); + + (void) mca_base_component_var_register(&mca_op_avx_component.super.opc_version, + "support", + "Level of SSE/MMX/AVX support to be used, capped by the local architecture capabilities", + MCA_BASE_VAR_TYPE_INT, + &(new_enum_flag->super), 0, 0, + OPAL_INFO_LVL_4, + MCA_BASE_VAR_SCOPE_LOCAL, + &mca_op_avx_component.flags); + OBJ_RELEASE(new_enum_flag); + + mca_op_avx_component.flags &= mca_op_avx_component.supported; + + return OMPI_SUCCESS; +} + +/* + * Query whether this component wants to be used in this process. + */ +static int +avx_component_init_query(bool enable_progress_threads, + bool enable_mpi_thread_multiple) +{ + if( 0 == mca_op_avx_component.flags ) + return OMPI_ERR_NOT_SUPPORTED; + return OMPI_SUCCESS; +} + +#if OMPI_MCA_OP_HAVE_AVX512 + extern ompi_op_base_handler_fn_t ompi_op_avx_functions_avx512[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX]; + extern ompi_op_base_3buff_handler_fn_t ompi_op_avx_3buff_functions_avx512[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX]; +#endif +#if OMPI_MCA_OP_HAVE_AVX2 + extern ompi_op_base_handler_fn_t ompi_op_avx_functions_avx2[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX]; + extern ompi_op_base_3buff_handler_fn_t ompi_op_avx_3buff_functions_avx2[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX]; +#endif +#if OMPI_MCA_OP_HAVE_AVX + extern ompi_op_base_handler_fn_t ompi_op_avx_functions_avx[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX]; + extern ompi_op_base_3buff_handler_fn_t ompi_op_avx_3buff_functions_avx[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX]; +#endif +/* + * Query whether this component can be used for a specific op + */ +static struct ompi_op_base_module_1_0_0_t* +avx_component_op_query(struct ompi_op_t *op, int *priority) +{ + ompi_op_base_module_t *module = NULL; + /* Sanity check -- although the framework should never invoke the + _component_op_query() on non-intrinsic MPI_Op's, we'll put a + check here just to be sure. */ + if (0 == (OMPI_OP_FLAGS_INTRINSIC & op->o_flags)) { + return NULL; + } + + switch (op->o_f_to_c_index) { + case OMPI_OP_BASE_FORTRAN_MAX: + case OMPI_OP_BASE_FORTRAN_MIN: + case OMPI_OP_BASE_FORTRAN_SUM: + case OMPI_OP_BASE_FORTRAN_PROD: + case OMPI_OP_BASE_FORTRAN_BOR: + case OMPI_OP_BASE_FORTRAN_BAND: + case OMPI_OP_BASE_FORTRAN_BXOR: + module = OBJ_NEW(ompi_op_base_module_t); + for (int i = 0; i < OMPI_OP_BASE_TYPE_MAX; ++i) { +#if OMPI_MCA_OP_HAVE_AVX512 + if( mca_op_avx_component.flags & OMPI_OP_AVX_HAS_AVX512F_FLAG ) { + module->opm_fns[i] = ompi_op_avx_functions_avx512[op->o_f_to_c_index][i]; + module->opm_3buff_fns[i] = ompi_op_avx_3buff_functions_avx512[op->o_f_to_c_index][i]; + } +#endif +#if OMPI_MCA_OP_HAVE_AVX2 + if( mca_op_avx_component.flags & OMPI_OP_AVX_HAS_AVX2_FLAG ) { + if( NULL == module->opm_fns[i] ) { + module->opm_fns[i] = ompi_op_avx_functions_avx2[op->o_f_to_c_index][i]; + } + if( NULL == module->opm_3buff_fns[i] ) { + module->opm_3buff_fns[i] = ompi_op_avx_3buff_functions_avx2[op->o_f_to_c_index][i]; + } + } +#endif +#if OMPI_MCA_OP_HAVE_AVX + if( mca_op_avx_component.flags & OMPI_OP_AVX_HAS_AVX_FLAG ) { + if( NULL == module->opm_fns[i] ) { + module->opm_fns[i] = ompi_op_avx_functions_avx[op->o_f_to_c_index][i]; + } + if( NULL == module->opm_3buff_fns[i] ) { + module->opm_3buff_fns[i] = ompi_op_avx_3buff_functions_avx[op->o_f_to_c_index][i]; + } + } +#endif + if( NULL != module->opm_fns[i] ) { + OBJ_RETAIN(module); + } + if( NULL != module->opm_3buff_fns[i] ) { + OBJ_RETAIN(module); + } + } + break; + case OMPI_OP_BASE_FORTRAN_LAND: + case OMPI_OP_BASE_FORTRAN_LOR: + case OMPI_OP_BASE_FORTRAN_LXOR: + case OMPI_OP_BASE_FORTRAN_MAXLOC: + case OMPI_OP_BASE_FORTRAN_MINLOC: + case OMPI_OP_BASE_FORTRAN_REPLACE: + default: + break; + } + /* If we got a module from above, we'll return it. Otherwise, + we'll return NULL, indicating that this component does not want + to be considered for selection for this MPI_Op. Note that the + functions each returned a *avx* component pointer + (vs. a *base* component pointer -- where an *avx* component + is a base component plus some other module-specific cached + information), so we have to cast it to the right pointer type + before returning. */ + if (NULL != module) { + *priority = 50; + } + return (ompi_op_base_module_1_0_0_t *) module; +} diff -Nru openmpi-4.0.3/ompi/mca/op/avx/op_avx_functions.c openmpi-4.1.4/ompi/mca/op/avx/op_avx_functions.c --- openmpi-4.0.3/ompi/mca/op/avx/op_avx_functions.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/op/avx/op_avx_functions.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,1505 @@ +/* + * Copyright (c) 2019-2021 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#include "opal/util/output.h" + +#include "ompi/op/op.h" +#include "ompi/mca/op/op.h" +#include "ompi/mca/op/base/base.h" +#include "ompi/mca/op/avx/op_avx.h" + +#include +/** + * The following logic is necessary to cope with distro maintainer's desire to change the compilation + * flags after the configure step, leading to inconsistencies between what OMPI has detected and what + * code can be generated during make. If we detect that the current code generation architecture has + * been changed from our own setting and cannot generate the code we need (AVX512, AVX2) we fall back + * to a lesser support (AVX512 -> AVX2, AVX2 -> AVX, AVX -> error out). + */ +#if defined(GENERATE_AVX512_CODE) +# if defined(__AVX512BW__) && defined(__AVX512F__) && defined(__AVX512VL__) +# define PREPEND _avx512 +# else +# undef GENERATE_AVX512_CODE +# endif /* defined(__AVX512BW__) && defined(__AVX512F__) && defined(__AVX512VL__) */ +#endif /* defined(GENERATE_AVX512_CODE) */ + +#if !defined(PREPEND) && defined(GENERATE_AVX2_CODE) +# if defined(__AVX2__) +# define PREPEND _avx2 +# else +# undef GENERATE_AVX2_CODE +# endif /* defined(__AVX2__) */ +#endif /* !defined(PREPEND) && defined(GENERATE_AVX2_CODE) */ + +#if !defined(PREPEND) && defined(GENERATE_AVX_CODE) +# if defined(__AVX__) +# define PREPEND _avx +# endif +#endif /* !defined(PREPEND) && defined(GENERATE_AVX_CODE) */ + +#if !defined(PREPEND) +# if OMPI_MCA_OP_HAVE_AVX512 || OMPI_MCA_OP_HAVE_AVX2 +# error The configure step has detected possible support for AVX512 and/or AVX2 but the compiler flags during make are too restrictive. Please disable the AVX component by adding --enable-mca-no-build=op-avx to your configure step. +# else +# error This file should not be compiled in this conditions. Please provide the config.log file to the OMPI developers. +# endif /* OMPI_MCA_OP_HAVE_AVX512 || OMPI_MCA_OP_HAVE_AVX2 */ +#endif /* !defined(PREPEND) */ + +/* + * Concatenate preprocessor tokens A and B without expanding macro definitions + * (however, if invoked from a macro, macro arguments are expanded). + */ +#define OP_CONCAT_NX(A, B) A ## B + +/* + * Concatenate preprocessor tokens A and B after macro-expanding them. + */ +#define OP_CONCAT(A, B) OP_CONCAT_NX(A, B) + +/* + * grep -e "_mm[125][251][862]_.*(" avx512.c -o | sed 's/(//g' | sort | uniq + * + * https://software.intel.com/sites/landingpage/IntrinsicsGuide + * + * _mm_add_epi[8,16,32,64] SSE2 + * _mm_add_pd SSE2 + * _mm_add_ps SSE + * _mm_adds_epi[8,16] SSE2 + * _mm_adds_epu[8,16] SSE2 + * _mm_and_si128 SSE2 + * _mm_lddqu_si128 SSE3 + * _mm_loadu_pd SSE2 + * _mm_loadu_ps SSE + * _mm_max_epi8 SSE4.1 + * _mm_max_epi16 SSE2 + * _mm_max_epi32 SSE4.1 + * _mm_max_epi64 AVX512VL + AVX512F + * _mm_max_epu8 SSE2 + * _mm_max_epu[16,32] SSE4.1 + * _mm_max_epu64 AVX512VL + AVX512F + * _mm_max_pd SSE2 + * _mm_max_ps SSE + * _mm_min_epi8 SSE4.1 + * _mm_min_epi16 SSE2 + * _mm_min_epi32 SSE4.1 + * _mm_min_epi64 AVX512VL + AVX512F + * _mm_min_epu8 SSE2 + * _mm_min_epu[16,32] SSE4.1 + * _mm_min_epu64 AVX512VL + AVX512F + * _mm_min_pd SSE2 + * _mm_min_ps SSE + * _mm_mul_pd SSE2 + * _mm_mul_ps SSE + * _mm_mullo_epi16 SSE2 + * _mm_mullo_epi32 SSE4.1 + * _mm_mullo_epi64 AVX512VL + AVX512DQ + * _mm_or_si128 SSE2 + * _mm_storeu_pd SSE2 + * _mm_storeu_ps SSE + * _mm_storeu_si128 SSE2 + * _mm_xor_si128 SSE2 + * _mm256_add_epi[8,16,32,64] AVX2 + * _mm256_add_p[s,d] AVX + * _mm256_adds_epi[8,16] AVX2 + * _mm256_adds_epu[8,16] AVX2 + * _mm256_and_si256 AVX2 + * _mm256_loadu_p[s,d] AVX + * _mm256_loadu_si256 AVX + * _mm256_max_epi[8,16,32] AVX2 + * _mm256_max_epi64 AVX512VL + AVX512F + * _mm256_max_epu[8,16,32] AVX2 + * _mm256_max_epu64 AVX512VL + AVX512F + * _mm256_max_p[s,d] AVX + * _mm256_min_epi[8,16,32] AVX2 + * _mm256_min_epi64 AVX512VL + AVX512F + * _mm256_min_epu[8,16,32] AVX2 + * _mm256_min_epu64 AVX512VL + AVX512F + * _mm256_min_p[s,d] AVX + * _mm256_mul_p[s,d] AVX + * _mm256_mullo_epi[16,32] AVX2 + * _mm256_mullo_epi64 AVX512VL + AVX512DQ + * _mm256_or_si256 AVX2 + * _mm256_storeu_p[s,d] AVX + * _mm256_storeu_si256 AVX + * _mm256_xor_si256 AVX2 + * _mm512_add_epi[8,16] AVX512BW + * _mm512_add_epi[32,64] AVX512F + * _mm512_add_p[s,d] AVX512F + * _mm512_adds_epi[8,16] AVX512BW + * _mm512_adds_epu[8,16] AVX512BW + * _mm512_and_si512 AVX512F + * _mm512_cvtepi16_epi8 AVX512BW + * _mm512_cvtepi8_epi16 AVX512BW + * _mm512_loadu_p[s,d] AVX512F + * _mm512_loadu_si512 AVX512F + * _mm512_max_epi[8,16] AVX512BW + * _mm512_max_epi[32,64] AVX512F + * _mm512_max_epu[8,16] AVX512BW + * _mm512_max_epu[32,64] AVX512F + * _mm512_max_p[s,d] AVX512F + * _mm512_min_epi[8,16] AVX512BW + * _mm512_min_epi[32,64] AVX512F + * _mm512_min_epu[8,16] AVX512BW + * _mm512_min_epu[32,64] AVX512F + * _mm512_min_p[s,d] AVX512F + * _mm512_mul_p[s,d] AVX512F + * _mm512_mullo_epi16 AVX512BW + * _mm512_mullo_epi32 AVX512F + * _mm512_mullo_epi64 AVX512DQ + * _mm512_or_si512 AVX512F + * _mm512_storeu_p[s,d] AVX512F + * _mm512_storeu_si512 AVX512F + * _mm512_xor_si512 AVX512F + */ + +/* + * Since all the functions in this file are essentially identical, we + * use a macro to substitute in names and types. The core operation + * in all functions that use this macro is the same. + * + * This macro is for (out op in). + * + * Support ops: max, min, for signed/unsigned 8,16,32,64 + * sum, for integer 8,16,32,64 + * + */ + +#define OMPI_OP_AVX_HAS_FLAGS(_flag) \ + (((_flag) & mca_op_avx_component.flags) == (_flag)) + +#if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) +#if __AVX512F__ +#define OP_AVX_AVX512_FUNC(name, type_sign, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG|OMPI_OP_AVX_HAS_AVX512BW_FLAG) ) { \ + int types_per_step = (512 / 8) / sizeof(type); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m512i vecA = _mm512_loadu_si512((__m512*)in); \ + in += types_per_step; \ + __m512i vecB = _mm512_loadu_si512((__m512*)out); \ + __m512i res = _mm512_##op##_ep##type_sign##type_size(vecA, vecB); \ + _mm512_storeu_si512((__m512*)out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVX512F support needed for _mm512_loadu_si512 and _mm512_storeu_si512 +#endif /* __AVX512F__ */ +#else +#define OP_AVX_AVX512_FUNC(name, type_sign, type_size, type, op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + +#if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) +#if __AVX__ +#define OP_AVX_AVX2_FUNC(name, type_sign, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX2_FLAG | OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ + int types_per_step = (256 / 8) / sizeof(type); /* AVX2 */ \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m256i vecA = _mm256_loadu_si256((__m256i*)in); \ + in += types_per_step; \ + __m256i vecB = _mm256_loadu_si256((__m256i*)out); \ + __m256i res = _mm256_##op##_ep##type_sign##type_size(vecA, vecB); \ + _mm256_storeu_si256((__m256i*)out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVX support needed for _mm256_loadu_si256 and _mm256_storeu_si256 +#endif /* __AVX__ */ +#else +#define OP_AVX_AVX2_FUNC(name, type_sign, type_size, type, op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ + +#if defined(GENERATE_SSE3_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) +#if __SSE3__ +#define OP_AVX_SSE4_1_FUNC(name, type_sign, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE3_FLAG | OMPI_OP_AVX_HAS_SSE4_1_FLAG) ) { \ + int types_per_step = (128 / 8) / sizeof(type); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m128i vecA = _mm_lddqu_si128((__m128i*)in); \ + in += types_per_step; \ + __m128i vecB = _mm_lddqu_si128((__m128i*)out); \ + __m128i res = _mm_##op##_ep##type_sign##type_size(vecA, vecB); \ + _mm_storeu_si128((__m128i*)out, res); \ + out += types_per_step; \ + } \ + } +#else +#error Target architecture lacks SSE3 support needed for _mm_lddqu_si128 and _mm_storeu_si128 +#endif /* __SSE3__ */ +#else +#define OP_AVX_SSE4_1_FUNC(name, type_sign, type_size, type, op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ + +#define OP_AVX_FUNC(name, type_sign, type_size, type, op) \ +static void OP_CONCAT(ompi_op_avx_2buff_##name##_##type,PREPEND)(const void *_in, void *_out, int *count, \ + struct ompi_datatype_t **dtype, \ + struct ompi_op_base_module_1_0_0_t *module) \ +{ \ + int left_over = *count; \ + type *in = (type*)_in, *out = (type*)_out; \ + OP_AVX_AVX512_FUNC(name, type_sign, type_size, type, op); \ + OP_AVX_AVX2_FUNC(name, type_sign, type_size, type, op); \ + OP_AVX_SSE4_1_FUNC(name, type_sign, type_size, type, op); \ + while( left_over > 0 ) { \ + int how_much = (left_over > 8) ? 8 : left_over; \ + switch(how_much) { \ + case 8: out[7] = current_func(out[7], in[7]); \ + case 7: out[6] = current_func(out[6], in[6]); \ + case 6: out[5] = current_func(out[5], in[5]); \ + case 5: out[4] = current_func(out[4], in[4]); \ + case 4: out[3] = current_func(out[3], in[3]); \ + case 3: out[2] = current_func(out[2], in[2]); \ + case 2: out[1] = current_func(out[1], in[1]); \ + case 1: out[0] = current_func(out[0], in[0]); \ + } \ + left_over -= how_much; \ + out += how_much; \ + in += how_much; \ + } \ +} + +#if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) +#if __AVX512BW__ && __AVX__ +#define OP_AVX_AVX512_MUL(name, type_sign, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG | OMPI_OP_AVX_HAS_AVX512BW_FLAG) ) { \ + int types_per_step = (256 / 8) / sizeof(type); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ + __m256i vecA_tmp = _mm256_loadu_si256((__m256i*)in); \ + __m256i vecB_tmp = _mm256_loadu_si256((__m256i*)out); \ + in += types_per_step; \ + __m512i vecA = _mm512_cvtepi8_epi16(vecA_tmp); \ + __m512i vecB = _mm512_cvtepi8_epi16(vecB_tmp); \ + __m512i res = _mm512_##op##_ep##type_sign##16(vecA, vecB); \ + vecB_tmp = _mm512_cvtepi16_epi8(res); \ + _mm256_storeu_si256((__m256i*)out, vecB_tmp); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVX512BW and AVX support needed for _mm256_loadu_si256, _mm256_storeu_si256 and _mm512_cvtepi8_epi16 +#endif /* __AVX512BW__ && __AVX__ */ +#else +#define OP_AVX_AVX512_MUL(name, type_sign, type_size, type, op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ +/** + * There is no support for 16 to 8 conversion without AVX512BW and AVX512VL, so + * there is no AVX-only optimized function posible for OP_AVX_AVX2_MUL. + */ + +/* special case for int8 mul */ +#define OP_AVX_MUL(name, type_sign, type_size, type, op) \ +static void OP_CONCAT( ompi_op_avx_2buff_##name##_##type, PREPEND)(const void *_in, void *_out, int *count, \ + struct ompi_datatype_t **dtype, \ + struct ompi_op_base_module_1_0_0_t *module) \ +{ \ + int left_over = *count; \ + type *in = (type*)_in, *out = (type*)_out; \ + OP_AVX_AVX512_MUL(name, type_sign, type_size, type, op); \ + while( left_over > 0 ) { \ + int how_much = (left_over > 8) ? 8 : left_over; \ + switch(how_much) { \ + case 8: out[7] = current_func(out[7], in[7]); \ + case 7: out[6] = current_func(out[6], in[6]); \ + case 6: out[5] = current_func(out[5], in[5]); \ + case 5: out[4] = current_func(out[4], in[4]); \ + case 4: out[3] = current_func(out[3], in[3]); \ + case 3: out[2] = current_func(out[2], in[2]); \ + case 2: out[1] = current_func(out[1], in[1]); \ + case 1: out[0] = current_func(out[0], in[0]); \ + } \ + left_over -= how_much; \ + out += how_much; \ + in += how_much; \ + } \ +} + +/* + * This macro is for bit-wise operations (out op in). + * + * Support ops: or, xor, and of 512 bits (representing integer data) + * + */ +#if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) +#if __AVX512F__ +#define OP_AVX_AVX512_BIT_FUNC(name, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS( OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ + types_per_step = (512 / 8) / sizeof(type); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ + __m512i vecA = _mm512_loadu_si512((__m512i*)in); \ + in += types_per_step; \ + __m512i vecB = _mm512_loadu_si512((__m512i*)out); \ + __m512i res = _mm512_##op##_si512(vecA, vecB); \ + _mm512_storeu_si512((__m512i*)out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVX512F support needed for _mm512_loadu_si512 and _mm512_storeu_si512 +#endif /* __AVX512F__ */ +#else +#define OP_AVX_AVX512_BIT_FUNC(name, type_size, type, op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + +#if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) +#if __AVX__ +#define OP_AVX_AVX2_BIT_FUNC(name, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX2_FLAG | OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ + types_per_step = (256 / 8) / sizeof(type); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m256i vecA = _mm256_loadu_si256((__m256i*)in); \ + in += types_per_step; \ + __m256i vecB = _mm256_loadu_si256((__m256i*)out); \ + __m256i res = _mm256_##op##_si256(vecA, vecB); \ + _mm256_storeu_si256((__m256i*)out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVX support needed for _mm256_loadu_si256 and _mm256_storeu_si256 +#endif /* __AVX__ */ +#else +#define OP_AVX_AVX2_BIT_FUNC(name, type_size, type, op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ + +#if defined(GENERATE_SSE3_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) +#if __SSE3__ && __SSE2__ +#define OP_AVX_SSE3_BIT_FUNC(name, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE3_FLAG) ) { \ + types_per_step = (128 / 8) / sizeof(type); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m128i vecA = _mm_lddqu_si128((__m128i*)in); \ + in += types_per_step; \ + __m128i vecB = _mm_lddqu_si128((__m128i*)out); \ + __m128i res = _mm_##op##_si128(vecA, vecB); \ + _mm_storeu_si128((__m128i*)out, res); \ + out += types_per_step; \ + } \ + } +#else +#error Target architecture lacks SSE2 and SSE3 support needed for _mm_lddqu_si128 and _mm_storeu_si128 +#endif /* __SSE3__ && __SSE2__ */ +#else +#define OP_AVX_SSE3_BIT_FUNC(name, type_size, type, op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ + +#define OP_AVX_BIT_FUNC(name, type_size, type, op) \ +static void OP_CONCAT(ompi_op_avx_2buff_##name##_##type,PREPEND)(const void *_in, void *_out, int *count, \ + struct ompi_datatype_t **dtype, \ + struct ompi_op_base_module_1_0_0_t *module) \ +{ \ + int types_per_step, left_over = *count; \ + type *in = (type*)_in, *out = (type*)_out; \ + OP_AVX_AVX512_BIT_FUNC(name, type_size, type, op); \ + OP_AVX_AVX2_BIT_FUNC(name, type_size, type, op); \ + OP_AVX_SSE3_BIT_FUNC(name, type_size, type, op); \ + while( left_over > 0 ) { \ + int how_much = (left_over > 8) ? 8 : left_over; \ + switch(how_much) { \ + case 8: out[7] = current_func(out[7], in[7]); \ + case 7: out[6] = current_func(out[6], in[6]); \ + case 6: out[5] = current_func(out[5], in[5]); \ + case 5: out[4] = current_func(out[4], in[4]); \ + case 4: out[3] = current_func(out[3], in[3]); \ + case 3: out[2] = current_func(out[2], in[2]); \ + case 2: out[1] = current_func(out[1], in[1]); \ + case 1: out[0] = current_func(out[0], in[0]); \ + } \ + left_over -= how_much; \ + out += how_much; \ + in += how_much; \ + } \ +} + +#if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) +#if __AVX512F__ +#define OP_AVX_AVX512_FLOAT_FUNC(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ + types_per_step = (512 / 8) / sizeof(float); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ + __m512 vecA = _mm512_loadu_ps((__m512*)in); \ + __m512 vecB = _mm512_loadu_ps((__m512*)out); \ + in += types_per_step; \ + __m512 res = _mm512_##op##_ps(vecA, vecB); \ + _mm512_storeu_ps((__m512*)out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVX512F support needed for _mm512_loadu_ps and _mm512_storeu_ps +#endif /* __AVX512F__ */ +#else +#define OP_AVX_AVX512_FLOAT_FUNC(op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + +#if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) +#if __AVX__ +#define OP_AVX_AVX_FLOAT_FUNC(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ + types_per_step = (256 / 8) / sizeof(float); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m256 vecA = _mm256_loadu_ps(in); \ + in += types_per_step; \ + __m256 vecB = _mm256_loadu_ps(out); \ + __m256 res = _mm256_##op##_ps(vecA, vecB); \ + _mm256_storeu_ps(out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVX support needed for _mm256_loadu_ps and _mm256_storeu_ps +#endif /* __AVX__ */ +#else +#define OP_AVX_AVX_FLOAT_FUNC(op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ + +#if defined(GENERATE_AVX_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) +#if __SSE__ +#define OP_AVX_SSE_FLOAT_FUNC(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE_FLAG) ) { \ + types_per_step = (128 / 8) / sizeof(float); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m128 vecA = _mm_loadu_ps(in); \ + in += types_per_step; \ + __m128 vecB = _mm_loadu_ps(out); \ + __m128 res = _mm_##op##_ps(vecA, vecB); \ + _mm_storeu_ps(out, res); \ + out += types_per_step; \ + } \ + } +#else +#error Target architecture lacks SSE support needed for _mm_loadu_ps and _mm_storeu_ps +#endif /* __SSE__ */ +#else +#define OP_AVX_SSE_FLOAT_FUNC(op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ + +#define OP_AVX_FLOAT_FUNC(op) \ +static void OP_CONCAT(ompi_op_avx_2buff_##op##_float,PREPEND)(const void *_in, void *_out, int *count, \ + struct ompi_datatype_t **dtype, \ + struct ompi_op_base_module_1_0_0_t *module) \ +{ \ + int types_per_step, left_over = *count; \ + float *in = (float*)_in, *out = (float*)_out; \ + OP_AVX_AVX512_FLOAT_FUNC(op); \ + OP_AVX_AVX_FLOAT_FUNC(op); \ + OP_AVX_SSE_FLOAT_FUNC(op); \ + while( left_over > 0 ) { \ + int how_much = (left_over > 8) ? 8 : left_over; \ + switch(how_much) { \ + case 8: out[7] = current_func(out[7], in[7]); \ + case 7: out[6] = current_func(out[6], in[6]); \ + case 6: out[5] = current_func(out[5], in[5]); \ + case 5: out[4] = current_func(out[4], in[4]); \ + case 4: out[3] = current_func(out[3], in[3]); \ + case 3: out[2] = current_func(out[2], in[2]); \ + case 2: out[1] = current_func(out[1], in[1]); \ + case 1: out[0] = current_func(out[0], in[0]); \ + } \ + left_over -= how_much; \ + out += how_much; \ + in += how_much; \ + } \ +} + +#if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) +#if __AVX512F__ +#define OP_AVX_AVX512_DOUBLE_FUNC(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ + types_per_step = (512 / 8) / sizeof(double); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ + __m512d vecA = _mm512_loadu_pd(in); \ + in += types_per_step; \ + __m512d vecB = _mm512_loadu_pd(out); \ + __m512d res = _mm512_##op##_pd(vecA, vecB); \ + _mm512_storeu_pd((out), res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVXF512 support needed for _mm512_loadu_pd and _mm512_storeu_pd +#endif /* __AVXF512__ */ +#else +#define OP_AVX_AVX512_DOUBLE_FUNC(op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + +#if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) +#if __AVX__ +#define OP_AVX_AVX_DOUBLE_FUNC(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ + types_per_step = (256 / 8) / sizeof(double); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m256d vecA = _mm256_loadu_pd(in); \ + in += types_per_step; \ + __m256d vecB = _mm256_loadu_pd(out); \ + __m256d res = _mm256_##op##_pd(vecA, vecB); \ + _mm256_storeu_pd(out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVX support needed for _mm256_loadu_pd and _mm256_storeu_pd +#endif /* __AVX__ */ +#else +#define OP_AVX_AVX_DOUBLE_FUNC(op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ + +#if defined(GENERATE_AVX_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) +#if __SSE2__ +#define OP_AVX_SSE2_DOUBLE_FUNC(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE2_FLAG) ) { \ + types_per_step = (128 / 8) / sizeof(double); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m128d vecA = _mm_loadu_pd(in); \ + in += types_per_step; \ + __m128d vecB = _mm_loadu_pd(out); \ + __m128d res = _mm_##op##_pd(vecA, vecB); \ + _mm_storeu_pd(out, res); \ + out += types_per_step; \ + } \ + } +#else +#error Target architecture lacks SSE2 support needed for _mm_loadu_pd and _mm_storeu_pd +#endif /* __SSE2__ */ +#else +#define OP_AVX_SSE2_DOUBLE_FUNC(op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ + +#define OP_AVX_DOUBLE_FUNC(op) \ +static void OP_CONCAT(ompi_op_avx_2buff_##op##_double,PREPEND)(const void *_in, void *_out, int *count, \ + struct ompi_datatype_t **dtype, \ + struct ompi_op_base_module_1_0_0_t *module) \ +{ \ + int types_per_step = (512 / 8) / sizeof(double); \ + int left_over = *count; \ + double* in = (double*)_in; \ + double* out = (double*)_out; \ + OP_AVX_AVX512_DOUBLE_FUNC(op); \ + OP_AVX_AVX_DOUBLE_FUNC(op); \ + OP_AVX_SSE2_DOUBLE_FUNC(op); \ + while( left_over > 0 ) { \ + int how_much = (left_over > 8) ? 8 : left_over; \ + switch(how_much) { \ + case 8: out[7] = current_func(out[7], in[7]); \ + case 7: out[6] = current_func(out[6], in[6]); \ + case 6: out[5] = current_func(out[5], in[5]); \ + case 5: out[4] = current_func(out[4], in[4]); \ + case 4: out[3] = current_func(out[3], in[3]); \ + case 3: out[2] = current_func(out[2], in[2]); \ + case 2: out[1] = current_func(out[1], in[1]); \ + case 1: out[0] = current_func(out[0], in[0]); \ + } \ + left_over -= how_much; \ + out += how_much; \ + in += how_much; \ + } \ +} + + +/************************************************************************* + * Max + *************************************************************************/ +#undef current_func +#define current_func(a, b) ((a) > (b) ? (a) : (b)) + OP_AVX_FUNC(max, i, 8, int8_t, max) + OP_AVX_FUNC(max, u, 8, uint8_t, max) + OP_AVX_FUNC(max, i, 16, int16_t, max) + OP_AVX_FUNC(max, u, 16, uint16_t, max) + OP_AVX_FUNC(max, i, 32, int32_t, max) + OP_AVX_FUNC(max, u, 32, uint32_t, max) +#if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) + OP_AVX_FUNC(max, i, 64, int64_t, max) + OP_AVX_FUNC(max, u, 64, uint64_t, max) +#endif + + /* Floating point */ + OP_AVX_FLOAT_FUNC(max) + OP_AVX_DOUBLE_FUNC(max) + +/************************************************************************* + * Min + *************************************************************************/ +#undef current_func +#define current_func(a, b) ((a) < (b) ? (a) : (b)) + OP_AVX_FUNC(min, i, 8, int8_t, min) + OP_AVX_FUNC(min, u, 8, uint8_t, min) + OP_AVX_FUNC(min, i, 16, int16_t, min) + OP_AVX_FUNC(min, u, 16, uint16_t, min) + OP_AVX_FUNC(min, i, 32, int32_t, min) + OP_AVX_FUNC(min, u, 32, uint32_t, min) +#if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) + OP_AVX_FUNC(min, i, 64, int64_t, min) + OP_AVX_FUNC(min, u, 64, uint64_t, min) +#endif + + /* Floating point */ + OP_AVX_FLOAT_FUNC(min) + OP_AVX_DOUBLE_FUNC(min) + +/************************************************************************* + * Sum + ************************************************************************/ +#undef current_func +#define current_func(a, b) ((a) + (b)) + OP_AVX_FUNC(sum, i, 8, int8_t, adds) + OP_AVX_FUNC(sum, u, 8, uint8_t, adds) + OP_AVX_FUNC(sum, i, 16, int16_t, adds) + OP_AVX_FUNC(sum, u, 16, uint16_t, adds) + OP_AVX_FUNC(sum, i, 32, int32_t, add) + OP_AVX_FUNC(sum, i, 32, uint32_t, add) + OP_AVX_FUNC(sum, i, 64, int64_t, add) + OP_AVX_FUNC(sum, i, 64, uint64_t, add) + + /* Floating point */ + OP_AVX_FLOAT_FUNC(add) + OP_AVX_DOUBLE_FUNC(add) + +/************************************************************************* + * Product + *************************************************************************/ +#undef current_func +#define current_func(a, b) ((a) * (b)) + OP_AVX_MUL(prod, i, 8, int8_t, mullo) + OP_AVX_MUL(prod, i, 8, uint8_t, mullo) + OP_AVX_FUNC(prod, i, 16, int16_t, mullo) + OP_AVX_FUNC(prod, i, 16, uint16_t, mullo) + OP_AVX_FUNC(prod, i, 32, int32_t, mullo) + OP_AVX_FUNC(prod, i ,32, uint32_t, mullo) +#if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) + OP_AVX_FUNC(prod, i, 64, int64_t, mullo) + OP_AVX_FUNC(prod, i, 64, uint64_t, mullo) +#endif + + /* Floating point */ + OP_AVX_FLOAT_FUNC(mul) + OP_AVX_DOUBLE_FUNC(mul) + +/************************************************************************* + * Bitwise AND + *************************************************************************/ +#undef current_func +#define current_func(a, b) ((a) & (b)) + OP_AVX_BIT_FUNC(band, 8, int8_t, and) + OP_AVX_BIT_FUNC(band, 8, uint8_t, and) + OP_AVX_BIT_FUNC(band, 16, int16_t, and) + OP_AVX_BIT_FUNC(band, 16, uint16_t, and) + OP_AVX_BIT_FUNC(band, 32, int32_t, and) + OP_AVX_BIT_FUNC(band, 32, uint32_t, and) + OP_AVX_BIT_FUNC(band, 64, int64_t, and) + OP_AVX_BIT_FUNC(band, 64, uint64_t, and) + + // not defined - OP_AVX_FLOAT_FUNC(and) + // not defined - OP_AVX_DOUBLE_FUNC(and) + +/************************************************************************* + * Bitwise OR + *************************************************************************/ +#undef current_func +#define current_func(a, b) ((a) | (b)) + OP_AVX_BIT_FUNC(bor, 8, int8_t, or) + OP_AVX_BIT_FUNC(bor, 8, uint8_t, or) + OP_AVX_BIT_FUNC(bor, 16, int16_t, or) + OP_AVX_BIT_FUNC(bor, 16, uint16_t, or) + OP_AVX_BIT_FUNC(bor, 32, int32_t, or) + OP_AVX_BIT_FUNC(bor, 32, uint32_t, or) + OP_AVX_BIT_FUNC(bor, 64, int64_t, or) + OP_AVX_BIT_FUNC(bor, 64, uint64_t, or) + + // not defined - OP_AVX_FLOAT_FUNC(or) + // not defined - OP_AVX_DOUBLE_FUNC(or) + +/************************************************************************* + * Bitwise XOR + *************************************************************************/ +#undef current_func +#define current_func(a, b) ((a) ^ (b)) + OP_AVX_BIT_FUNC(bxor, 8, int8_t, xor) + OP_AVX_BIT_FUNC(bxor, 8, uint8_t, xor) + OP_AVX_BIT_FUNC(bxor, 16, int16_t, xor) + OP_AVX_BIT_FUNC(bxor, 16, uint16_t, xor) + OP_AVX_BIT_FUNC(bxor, 32, int32_t, xor) + OP_AVX_BIT_FUNC(bxor, 32, uint32_t, xor) + OP_AVX_BIT_FUNC(bxor, 64, int64_t, xor) + OP_AVX_BIT_FUNC(bxor, 64, uint64_t, xor) + + // not defined - OP_AVX_FLOAT_FUNC(xor) + // not defined - OP_AVX_DOUBLE_FUNC(xor) + +/* + * This is a three buffer (2 input and 1 output) version of the reduction + * routines, needed for some optimizations. + */ +#if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) +#if __AVX512F__ +#define OP_AVX_AVX512_FUNC_3(name, type_sign, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG|OMPI_OP_AVX_HAS_AVX512BW_FLAG) ) { \ + int types_per_step = (512 / 8) / sizeof(type); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ + __m512i vecA = _mm512_loadu_si512(in1); \ + __m512i vecB = _mm512_loadu_si512(in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m512i res = _mm512_##op##_ep##type_sign##type_size(vecA, vecB); \ + _mm512_storeu_si512((out), res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVX512F support needed for _mm512_loadu_si512 and _mm512_storeu_si512 +#endif /* __AVX512F__ */ +#else +#define OP_AVX_AVX512_FUNC_3(name, type_sign, type_size, type, op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + +#if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) +#if __AVX__ +#define OP_AVX_AVX2_FUNC_3(name, type_sign, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX2_FLAG | OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ + int types_per_step = (256 / 8) / sizeof(type); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m256i vecA = _mm256_loadu_si256((__m256i*)in1); \ + __m256i vecB = _mm256_loadu_si256((__m256i*)in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m256i res = _mm256_##op##_ep##type_sign##type_size(vecA, vecB); \ + _mm256_storeu_si256((__m256i*)out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVX support needed for _mm256_loadu_si256 and _mm256_storeu_si256 +#endif /* __AVX__ */ +#else +#define OP_AVX_AVX2_FUNC_3(name, type_sign, type_size, type, op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ + +#if defined(GENERATE_SSE3_CODE) && defined(OMPI_MCA_OP_HAVE_SSE41) && (1 == OMPI_MCA_OP_HAVE_SSE41) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) +#if __SSE3__ && __SSE2__ +#define OP_AVX_SSE4_1_FUNC_3(name, type_sign, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE3_FLAG | OMPI_OP_AVX_HAS_SSE4_1_FLAG) ) { \ + int types_per_step = (128 / 8) / sizeof(type); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m128i vecA = _mm_lddqu_si128((__m128i*)in1); \ + __m128i vecB = _mm_lddqu_si128((__m128i*)in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m128i res = _mm_##op##_ep##type_sign##type_size(vecA, vecB); \ + _mm_storeu_si128((__m128i*)out, res); \ + out += types_per_step; \ + } \ + } +#else +#error Target architecture lacks SSE2 and SSE3 support needed for _mm_lddqu_si128 and _mm_storeu_si128 +#endif /* __SSE3__ && __SSE2__ */ +#else +#define OP_AVX_SSE4_1_FUNC_3(name, type_sign, type_size, type, op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ + +#define OP_AVX_FUNC_3(name, type_sign, type_size, type, op) \ +static void OP_CONCAT(ompi_op_avx_3buff_##name##_##type,PREPEND)(const void * restrict _in1, \ + const void * restrict _in2, \ + void * restrict _out, int *count, \ + struct ompi_datatype_t **dtype, \ + struct ompi_op_base_module_1_0_0_t *module) \ +{ \ + type *in1 = (type*)_in1, *in2 = (type*)_in2, *out = (type*)_out; \ + int left_over = *count; \ + OP_AVX_AVX512_FUNC_3(name, type_sign, type_size, type, op); \ + OP_AVX_AVX2_FUNC_3(name, type_sign, type_size, type, op); \ + OP_AVX_SSE4_1_FUNC_3(name, type_sign, type_size, type, op); \ + while( left_over > 0 ) { \ + int how_much = (left_over > 8) ? 8 : left_over; \ + switch(how_much) { \ + case 8: out[7] = current_func(in1[7], in2[7]); \ + case 7: out[6] = current_func(in1[6], in2[6]); \ + case 6: out[5] = current_func(in1[5], in2[5]); \ + case 5: out[4] = current_func(in1[4], in2[4]); \ + case 4: out[3] = current_func(in1[3], in2[3]); \ + case 3: out[2] = current_func(in1[2], in2[2]); \ + case 2: out[1] = current_func(in1[1], in2[1]); \ + case 1: out[0] = current_func(in1[0], in2[0]); \ + } \ + left_over -= how_much; \ + out += how_much; \ + in1 += how_much; \ + in2 += how_much; \ + } \ +} + +#if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) +#if __AVX512BW__ && __AVX__ +#define OP_AVX_AVX512_MUL_3(name, type_sign, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG | OMPI_OP_AVX_HAS_AVX512BW_FLAG) ) { \ + int types_per_step = (256 / 8) / sizeof(type); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ + __m256i vecA_tmp = _mm256_loadu_si256((__m256i*)in1); \ + __m256i vecB_tmp = _mm256_loadu_si256((__m256i*)in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m512i vecA = _mm512_cvtepi8_epi16(vecA_tmp); \ + __m512i vecB = _mm512_cvtepi8_epi16(vecB_tmp); \ + __m512i res = _mm512_##op##_ep##type_sign##16(vecA, vecB); \ + vecB_tmp = _mm512_cvtepi16_epi8(res); \ + _mm256_storeu_si256((__m256i*)out, vecB_tmp); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVX512BW and AVX support needed for _mm256_loadu_si256, _mm256_storeu_si256 and _mm512_cvtepi8_epi16 +#endif /* __AVX512BW__ && __AVX__ */ +#else +#define OP_AVX_AVX512_MUL_3(name, type_sign, type_size, type, op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ +/** + * There is no support for 16 to 8 conversion without AVX512BW and AVX512VL, so + * there is no AVX-only optimized function posible for OP_AVX_AVX2_MUL. + */ + +/* special case for int8 mul */ +#define OP_AVX_MUL_3(name, type_sign, type_size, type, op) \ +static void OP_CONCAT(ompi_op_avx_3buff_##name##_##type,PREPEND)(const void * restrict _in1, \ + const void * restrict _in2, \ + void * restrict _out, int *count, \ + struct ompi_datatype_t **dtype, \ + struct ompi_op_base_module_1_0_0_t *module) \ +{ \ + type *in1 = (type*)_in1, *in2 = (type*)_in2, *out = (type*)_out; \ + int left_over = *count; \ + OP_AVX_AVX512_MUL_3(name, type_sign, type_size, type, op); \ + while( left_over > 0 ) { \ + int how_much = (left_over > 8) ? 8 : left_over; \ + switch(how_much) { \ + case 8: out[7] = current_func(in1[7], in2[7]); \ + case 7: out[6] = current_func(in1[6], in2[6]); \ + case 6: out[5] = current_func(in1[5], in2[5]); \ + case 5: out[4] = current_func(in1[4], in2[4]); \ + case 4: out[3] = current_func(in1[3], in2[3]); \ + case 3: out[2] = current_func(in1[2], in2[2]); \ + case 2: out[1] = current_func(in1[1], in2[1]); \ + case 1: out[0] = current_func(in1[0], in2[0]); \ + } \ + left_over -= how_much; \ + out += how_much; \ + in1 += how_much; \ + in2 += how_much; \ + } \ +} + +#if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) +#if __AVX512F__ +#define OP_AVX_AVX512_BIT_FUNC_3(name, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ + types_per_step = (512 / 8) / sizeof(type); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ + __m512i vecA = _mm512_loadu_si512(in1); \ + __m512i vecB = _mm512_loadu_si512(in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m512i res = _mm512_##op##_si512(vecA, vecB); \ + _mm512_storeu_si512(out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVX512F support needed for _mm512_loadu_si512 and _mm512_storeu_si512 +#endif /* __AVX512F__ */ +#else +#define OP_AVX_AVX512_BIT_FUNC_3(name, type_size, type, op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + +#if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) +#if __AVX__ +#define OP_AVX_AVX2_BIT_FUNC_3(name, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX2_FLAG | OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ + types_per_step = (256 / 8) / sizeof(type); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m256i vecA = _mm256_loadu_si256((__m256i*)in1); \ + __m256i vecB = _mm256_loadu_si256((__m256i*)in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m256i res = _mm256_##op##_si256(vecA, vecB); \ + _mm256_storeu_si256((__m256i*)out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVX support needed for _mm256_loadu_si256 and _mm256_storeu_si256 +#endif /* __AVX__ */ +#else +#define OP_AVX_AVX2_BIT_FUNC_3(name, type_size, type, op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ + +#if defined(GENERATE_SSE3_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) +#if __SSE3__ && __SSE2__ +#define OP_AVX_SSE3_BIT_FUNC_3(name, type_size, type, op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE3_FLAG) ) { \ + types_per_step = (128 / 8) / sizeof(type); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m128i vecA = _mm_lddqu_si128((__m128i*)in1); \ + __m128i vecB = _mm_lddqu_si128((__m128i*)in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m128i res = _mm_##op##_si128(vecA, vecB); \ + _mm_storeu_si128((__m128i*)out, res); \ + out += types_per_step; \ + } \ + } +#else +#error Target architecture lacks SSE2 and SSE3 support needed for _mm_lddqu_si128 and _mm_storeu_si128 +#endif /* __SSE3__ && __SSE2__ */ +#else +#define OP_AVX_SSE3_BIT_FUNC_3(name, type_size, type, op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ + +#define OP_AVX_BIT_FUNC_3(name, type_size, type, op) \ +static void OP_CONCAT(ompi_op_avx_3buff_##op##_##type,PREPEND)(const void *_in1, const void *_in2, \ + void *_out, int *count, \ + struct ompi_datatype_t **dtype, \ + struct ompi_op_base_module_1_0_0_t *module) \ +{ \ + int types_per_step, left_over = *count; \ + type *in1 = (type*)_in1, *in2 = (type*)_in2, *out = (type*)_out; \ + OP_AVX_AVX512_BIT_FUNC_3(name, type_size, type, op); \ + OP_AVX_AVX2_BIT_FUNC_3(name, type_size, type, op); \ + OP_AVX_SSE3_BIT_FUNC_3(name, type_size, type, op); \ + while( left_over > 0 ) { \ + int how_much = (left_over > 8) ? 8 : left_over; \ + switch(how_much) { \ + case 8: out[7] = current_func(in1[7], in2[7]); \ + case 7: out[6] = current_func(in1[6], in2[6]); \ + case 6: out[5] = current_func(in1[5], in2[5]); \ + case 5: out[4] = current_func(in1[4], in2[4]); \ + case 4: out[3] = current_func(in1[3], in2[3]); \ + case 3: out[2] = current_func(in1[2], in2[2]); \ + case 2: out[1] = current_func(in1[1], in2[1]); \ + case 1: out[0] = current_func(in1[0], in2[0]); \ + } \ + left_over -= how_much; \ + out += how_much; \ + in1 += how_much; \ + in2 += how_much; \ + } \ +} + +#if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) +#if __AVX512F__ +#define OP_AVX_AVX512_FLOAT_FUNC_3(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ + types_per_step = (512 / 8) / sizeof(float); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ + __m512 vecA = _mm512_loadu_ps(in1); \ + __m512 vecB = _mm512_loadu_ps(in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m512 res = _mm512_##op##_ps(vecA, vecB); \ + _mm512_storeu_ps(out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVX512F support needed for _mm512_loadu_ps and _mm512_storeu_ps +#endif /* __AVX512F__ */ +#else +#define OP_AVX_AVX512_FLOAT_FUNC_3(op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + +#if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) +#if __AVX__ +#define OP_AVX_AVX_FLOAT_FUNC_3(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ + types_per_step = (256 / 8) / sizeof(float); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m256 vecA = _mm256_loadu_ps(in1); \ + __m256 vecB = _mm256_loadu_ps(in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m256 res = _mm256_##op##_ps(vecA, vecB); \ + _mm256_storeu_ps(out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVX support needed for _mm256_loadu_ps and _mm256_storeu_ps +#endif /* __AVX__ */ +#else +#define OP_AVX_AVX_FLOAT_FUNC_3(op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ + +#if defined(GENERATE_AVX_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) +#if __SSE__ +#define OP_AVX_SSE_FLOAT_FUNC_3(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE_FLAG) ) { \ + types_per_step = (128 / 8) / sizeof(float); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m128 vecA = _mm_loadu_ps(in1); \ + __m128 vecB = _mm_loadu_ps(in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m128 res = _mm_##op##_ps(vecA, vecB); \ + _mm_storeu_ps(out, res); \ + out += types_per_step; \ + } \ + } +#else +#error Target architecture lacks SSE support needed for _mm_loadu_ps and _mm_storeu_ps +#endif /* __SSE__ */ +#else +#define OP_AVX_SSE_FLOAT_FUNC_3(op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ + +#define OP_AVX_FLOAT_FUNC_3(op) \ +static void OP_CONCAT(ompi_op_avx_3buff_##op##_float,PREPEND)(const void *_in1, const void *_in2, \ + void *_out, int *count, \ + struct ompi_datatype_t **dtype, \ + struct ompi_op_base_module_1_0_0_t *module) \ +{ \ + int types_per_step, left_over = *count; \ + float *in1 = (float*)_in1, *in2 = (float*)_in2, *out = (float*)_out; \ + OP_AVX_AVX512_FLOAT_FUNC_3(op); \ + OP_AVX_AVX_FLOAT_FUNC_3(op); \ + OP_AVX_SSE_FLOAT_FUNC_3(op); \ + while( left_over > 0 ) { \ + int how_much = (left_over > 8) ? 8 : left_over; \ + switch(how_much) { \ + case 8: out[7] = current_func(in1[7], in2[7]); \ + case 7: out[6] = current_func(in1[6], in2[6]); \ + case 6: out[5] = current_func(in1[5], in2[5]); \ + case 5: out[4] = current_func(in1[4], in2[4]); \ + case 4: out[3] = current_func(in1[3], in2[3]); \ + case 3: out[2] = current_func(in1[2], in2[2]); \ + case 2: out[1] = current_func(in1[1], in2[1]); \ + case 1: out[0] = current_func(in1[0], in2[0]); \ + } \ + left_over -= how_much; \ + out += how_much; \ + in1 += how_much; \ + in2 += how_much; \ + } \ +} + +#if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) +#if __AVX512F__ +#define OP_AVX_AVX512_DOUBLE_FUNC_3(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX512F_FLAG) ) { \ + types_per_step = (512 / 8) / sizeof(double); \ + for (; left_over >= types_per_step; left_over -= types_per_step) { \ + __m512d vecA = _mm512_loadu_pd((in1)); \ + __m512d vecB = _mm512_loadu_pd((in2)); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m512d res = _mm512_##op##_pd(vecA, vecB); \ + _mm512_storeu_pd((out), res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVXF512 support needed for _mm512_loadu_pd and _mm512_storeu_pd +#endif /* __AVXF512__ */ +#else +#define OP_AVX_AVX512_DOUBLE_FUNC_3(op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) */ + +#if defined(GENERATE_AVX2_CODE) && defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) +#if __AVX__ +#define OP_AVX_AVX_DOUBLE_FUNC_3(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_AVX_FLAG) ) { \ + types_per_step = (256 / 8) / sizeof(double); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m256d vecA = _mm256_loadu_pd(in1); \ + __m256d vecB = _mm256_loadu_pd(in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m256d res = _mm256_##op##_pd(vecA, vecB); \ + _mm256_storeu_pd(out, res); \ + out += types_per_step; \ + } \ + if( 0 == left_over ) return; \ + } +#else +#error Target architecture lacks AVX support needed for _mm256_loadu_pd and _mm256_storeu_pd +#endif /* __AVX__ */ +#else +#define OP_AVX_AVX_DOUBLE_FUNC_3(op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX2) && (1 == OMPI_MCA_OP_HAVE_AVX2) */ + +#if defined(GENERATE_AVX_CODE) && defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) +#if __SSE2__ +#define OP_AVX_SSE2_DOUBLE_FUNC_3(op) \ + if( OMPI_OP_AVX_HAS_FLAGS(OMPI_OP_AVX_HAS_SSE2_FLAG) ) { \ + types_per_step = (128 / 8) / sizeof(double); \ + for( ; left_over >= types_per_step; left_over -= types_per_step ) { \ + __m128d vecA = _mm_loadu_pd(in1); \ + __m128d vecB = _mm_loadu_pd(in2); \ + in1 += types_per_step; \ + in2 += types_per_step; \ + __m128d res = _mm_##op##_pd(vecA, vecB); \ + _mm_storeu_pd(out, res); \ + out += types_per_step; \ + } \ + } +#else +#error Target architecture lacks SSE2 support needed for _mm_loadu_pd and _mm_storeu_pd +#endif /* __SSE2__ */ +#else +#define OP_AVX_SSE2_DOUBLE_FUNC_3(op) {} +#endif /* defined(OMPI_MCA_OP_HAVE_AVX) && (1 == OMPI_MCA_OP_HAVE_AVX) */ + +#define OP_AVX_DOUBLE_FUNC_3(op) \ +static void OP_CONCAT(ompi_op_avx_3buff_##op##_double,PREPEND)(const void *_in1, const void *_in2, \ + void *_out, int *count, \ + struct ompi_datatype_t **dtype, \ + struct ompi_op_base_module_1_0_0_t *module) \ +{ \ + int types_per_step, left_over = *count; \ + double *in1 = (double*)_in1, *in2 = (double*)_in2, *out = (double*)_out; \ + OP_AVX_AVX512_DOUBLE_FUNC_3(op); \ + OP_AVX_AVX_DOUBLE_FUNC_3(op); \ + OP_AVX_SSE2_DOUBLE_FUNC_3(op); \ + while( left_over > 0 ) { \ + int how_much = (left_over > 8) ? 8 : left_over; \ + switch(how_much) { \ + case 8: out[7] = current_func(in1[7], in2[7]); \ + case 7: out[6] = current_func(in1[6], in2[6]); \ + case 6: out[5] = current_func(in1[5], in2[5]); \ + case 5: out[4] = current_func(in1[4], in2[4]); \ + case 4: out[3] = current_func(in1[3], in2[3]); \ + case 3: out[2] = current_func(in1[2], in2[2]); \ + case 2: out[1] = current_func(in1[1], in2[1]); \ + case 1: out[0] = current_func(in1[0], in2[0]); \ + } \ + left_over -= how_much; \ + out += how_much; \ + in1 += how_much; \ + in2 += how_much; \ + } \ +} + +/************************************************************************* + * Max + *************************************************************************/ +#undef current_func +#define current_func(a, b) ((a) > (b) ? (a) : (b)) + + OP_AVX_FUNC_3(max, i, 8, int8_t, max) + OP_AVX_FUNC_3(max, u, 8, uint8_t, max) + OP_AVX_FUNC_3(max, i, 16, int16_t, max) + OP_AVX_FUNC_3(max, u, 16, uint16_t, max) + OP_AVX_FUNC_3(max, i, 32, int32_t, max) + OP_AVX_FUNC_3(max, u, 32, uint32_t, max) +#if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) + OP_AVX_FUNC_3(max, i, 64, int64_t, max) + OP_AVX_FUNC_3(max, u, 64, uint64_t, max) +#endif + + /* Floating point */ + OP_AVX_FLOAT_FUNC_3(max) + OP_AVX_DOUBLE_FUNC_3(max) + +/************************************************************************* + * Min + *************************************************************************/ +#undef current_func +#define current_func(a, b) ((a) < (b) ? (a) : (b)) + OP_AVX_FUNC_3(min, i, 8, int8_t, min) + OP_AVX_FUNC_3(min, u, 8, uint8_t, min) + OP_AVX_FUNC_3(min, i, 16, int16_t, min) + OP_AVX_FUNC_3(min, u, 16, uint16_t, min) + OP_AVX_FUNC_3(min, i, 32, int32_t, min) + OP_AVX_FUNC_3(min, u, 32, uint32_t, min) +#if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) + OP_AVX_FUNC_3(min, i, 64, int64_t, min) + OP_AVX_FUNC_3(min, u, 64, uint64_t, min) +#endif + + /* Floating point */ + OP_AVX_FLOAT_FUNC_3(min) + OP_AVX_DOUBLE_FUNC_3(min) + +/************************************************************************* + * Sum + *************************************************************************/ +#undef current_func +#define current_func(a, b) ((a) + (b)) + + OP_AVX_FUNC_3(sum, i, 8, int8_t, add) + OP_AVX_FUNC_3(sum, i, 8, uint8_t, add) + OP_AVX_FUNC_3(sum, i, 16, int16_t, add) + OP_AVX_FUNC_3(sum, i, 16, uint16_t, add) + OP_AVX_FUNC_3(sum, i, 32, int32_t, add) + OP_AVX_FUNC_3(sum, i, 32, uint32_t, add) + OP_AVX_FUNC_3(sum, i, 64, int64_t, add) + OP_AVX_FUNC_3(sum, i, 64, uint64_t, add) + + /* Floating point */ + OP_AVX_FLOAT_FUNC_3(add) + OP_AVX_DOUBLE_FUNC_3(add) + +/************************************************************************* + * Product + *************************************************************************/ +#undef current_func +#define current_func(a, b) ((a) * (b)) + OP_AVX_MUL_3(prod, i, 8, int8_t, mullo) + OP_AVX_MUL_3(prod, i, 8, uint8_t, mullo) + OP_AVX_FUNC_3(prod, i, 16, int16_t, mullo) + OP_AVX_FUNC_3(prod, i, 16, uint16_t, mullo) + OP_AVX_FUNC_3(prod, i, 32, int32_t, mullo) + OP_AVX_FUNC_3(prod, i ,32, uint32_t, mullo) +#if defined(GENERATE_AVX512_CODE) && defined(OMPI_MCA_OP_HAVE_AVX512) && (1 == OMPI_MCA_OP_HAVE_AVX512) + OP_AVX_FUNC_3(prod, i, 64, int64_t, mullo) + OP_AVX_FUNC_3(prod, i, 64, uint64_t, mullo) +#endif + + /* Floating point */ + OP_AVX_FLOAT_FUNC_3(mul) + OP_AVX_DOUBLE_FUNC_3(mul) + +/************************************************************************* + * Bitwise AND + *************************************************************************/ +#undef current_func +#define current_func(a, b) ((a) & (b)) + OP_AVX_BIT_FUNC_3(band, 8, int8_t, and) + OP_AVX_BIT_FUNC_3(band, 8, uint8_t, and) + OP_AVX_BIT_FUNC_3(band, 16, int16_t, and) + OP_AVX_BIT_FUNC_3(band, 16, uint16_t, and) + OP_AVX_BIT_FUNC_3(band, 32, int32_t, and) + OP_AVX_BIT_FUNC_3(band, 32, uint32_t, and) + OP_AVX_BIT_FUNC_3(band, 64, int64_t, and) + OP_AVX_BIT_FUNC_3(band, 64, uint64_t, and) + + // not defined - OP_AVX_FLOAT_FUNC_3(and) + // not defined - OP_AVX_DOUBLE_FUNC_3(and) + +/************************************************************************* + * Bitwise OR + *************************************************************************/ +#undef current_func +#define current_func(a, b) ((a) | (b)) + OP_AVX_BIT_FUNC_3(bor, 8, int8_t, or) + OP_AVX_BIT_FUNC_3(bor, 8, uint8_t, or) + OP_AVX_BIT_FUNC_3(bor, 16, int16_t, or) + OP_AVX_BIT_FUNC_3(bor, 16, uint16_t, or) + OP_AVX_BIT_FUNC_3(bor, 32, int32_t, or) + OP_AVX_BIT_FUNC_3(bor, 32, uint32_t, or) + OP_AVX_BIT_FUNC_3(bor, 64, int64_t, or) + OP_AVX_BIT_FUNC_3(bor, 64, uint64_t, or) + + // not defined - OP_AVX_FLOAT_FUNC_3(or) + // not defined - OP_AVX_DOUBLE_FUNC_3(or) + +/************************************************************************* + * Bitwise XOR + *************************************************************************/ +#undef current_func +#define current_func(a, b) ((a) ^ (b)) + OP_AVX_BIT_FUNC_3(bxor, 8, int8_t, xor) + OP_AVX_BIT_FUNC_3(bxor, 8, uint8_t, xor) + OP_AVX_BIT_FUNC_3(bxor, 16, int16_t, xor) + OP_AVX_BIT_FUNC_3(bxor, 16, uint16_t, xor) + OP_AVX_BIT_FUNC_3(bxor, 32, int32_t, xor) + OP_AVX_BIT_FUNC_3(bxor, 32, uint32_t, xor) + OP_AVX_BIT_FUNC_3(bxor, 64, int64_t, xor) + OP_AVX_BIT_FUNC_3(bxor, 64, uint64_t, xor) + + // not defined - OP_AVX_FLOAT_FUNC_3(xor) + // not defined - OP_AVX_DOUBLE_FUNC_3(xor) + +/** C integer ***********************************************************/ +#define C_INTEGER_8_16_32(name, ftype) \ + [OMPI_OP_BASE_TYPE_INT8_T] = OP_CONCAT(ompi_op_avx_##ftype##_##name##_int8_t,PREPEND), \ + [OMPI_OP_BASE_TYPE_UINT8_T] = OP_CONCAT(ompi_op_avx_##ftype##_##name##_uint8_t,PREPEND), \ + [OMPI_OP_BASE_TYPE_INT16_T] = OP_CONCAT(ompi_op_avx_##ftype##_##name##_int16_t,PREPEND), \ + [OMPI_OP_BASE_TYPE_UINT16_T] = OP_CONCAT(ompi_op_avx_##ftype##_##name##_uint16_t,PREPEND), \ + [OMPI_OP_BASE_TYPE_INT32_T] = OP_CONCAT(ompi_op_avx_##ftype##_##name##_int32_t,PREPEND), \ + [OMPI_OP_BASE_TYPE_UINT32_T] = OP_CONCAT(ompi_op_avx_##ftype##_##name##_uint32_t,PREPEND) + +#define C_INTEGER(name, ftype) \ + C_INTEGER_8_16_32(name, ftype), \ + [OMPI_OP_BASE_TYPE_INT64_T] = OP_CONCAT(ompi_op_avx_##ftype##_##name##_int64_t,PREPEND), \ + [OMPI_OP_BASE_TYPE_UINT64_T] = OP_CONCAT(ompi_op_avx_##ftype##_##name##_uint64_t,PREPEND) + +#if defined(GENERATE_AVX512_CODE) +#define C_INTEGER_OPTIONAL(name, ftype) \ + C_INTEGER_8_16_32(name, ftype), \ + [OMPI_OP_BASE_TYPE_INT64_T] = OP_CONCAT(ompi_op_avx_##ftype##_##name##_int64_t,PREPEND), \ + [OMPI_OP_BASE_TYPE_UINT64_T] = OP_CONCAT(ompi_op_avx_##ftype##_##name##_uint64_t,PREPEND) +#else +#define C_INTEGER_OPTIONAL(name, ftype) \ + C_INTEGER_8_16_32(name, ftype) +#endif + +/** Floating point, including all the Fortran reals *********************/ +#define FLOAT(name, ftype) OP_CONCAT(ompi_op_avx_##ftype##_##name##_float,PREPEND) +#define DOUBLE(name, ftype) OP_CONCAT(ompi_op_avx_##ftype##_##name##_double,PREPEND) + +#define FLOATING_POINT(name, ftype) \ + [OMPI_OP_BASE_TYPE_FLOAT] = FLOAT(name, ftype), \ + [OMPI_OP_BASE_TYPE_DOUBLE] = DOUBLE(name, ftype) + +/* + * MPI_OP_NULL + * All types + */ +#define FLAGS_NO_FLOAT \ + (OMPI_OP_FLAGS_INTRINSIC | OMPI_OP_FLAGS_ASSOC | OMPI_OP_FLAGS_COMMUTE) +#define FLAGS \ + (OMPI_OP_FLAGS_INTRINSIC | OMPI_OP_FLAGS_ASSOC | \ + OMPI_OP_FLAGS_FLOAT_ASSOC | OMPI_OP_FLAGS_COMMUTE) + +ompi_op_base_handler_fn_t OP_CONCAT(ompi_op_avx_functions, PREPEND)[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX] = +{ + /* Corresponds to MPI_OP_NULL */ + [OMPI_OP_BASE_FORTRAN_NULL] = { + /* Leaving this empty puts in NULL for all entries */ + NULL, + }, + /* Corresponds to MPI_MAX */ + [OMPI_OP_BASE_FORTRAN_MAX] = { + C_INTEGER_OPTIONAL(max, 2buff), + FLOATING_POINT(max, 2buff), + }, + /* Corresponds to MPI_MIN */ + [OMPI_OP_BASE_FORTRAN_MIN] = { + C_INTEGER_OPTIONAL(min, 2buff), + FLOATING_POINT(min, 2buff), + }, + /* Corresponds to MPI_SUM */ + [OMPI_OP_BASE_FORTRAN_SUM] = { + C_INTEGER(sum, 2buff), + FLOATING_POINT(add, 2buff), + }, + /* Corresponds to MPI_PROD */ + [OMPI_OP_BASE_FORTRAN_PROD] = { + C_INTEGER_OPTIONAL(prod, 2buff), + FLOATING_POINT(mul, 2buff), + }, + /* Corresponds to MPI_LAND */ + [OMPI_OP_BASE_FORTRAN_LAND] = { + NULL, + }, + /* Corresponds to MPI_BAND */ + [OMPI_OP_BASE_FORTRAN_BAND] = { + C_INTEGER(band, 2buff), + }, + /* Corresponds to MPI_LOR */ + [OMPI_OP_BASE_FORTRAN_LOR] = { + NULL, + }, + /* Corresponds to MPI_BOR */ + [OMPI_OP_BASE_FORTRAN_BOR] = { + C_INTEGER(bor, 2buff), + }, + /* Corresponds to MPI_LXOR */ + [OMPI_OP_BASE_FORTRAN_LXOR] = { + NULL, + }, + /* Corresponds to MPI_BXOR */ + [OMPI_OP_BASE_FORTRAN_BXOR] = { + C_INTEGER(bxor, 2buff), + }, + /* Corresponds to MPI_REPLACE */ + [OMPI_OP_BASE_FORTRAN_REPLACE] = { + /* (MPI_ACCUMULATE is handled differently than the other + reductions, so just zero out its function + implementations here to ensure that users don't invoke + MPI_REPLACE with any reduction operations other than + ACCUMULATE) */ + NULL, + }, + +}; + +ompi_op_base_3buff_handler_fn_t OP_CONCAT(ompi_op_avx_3buff_functions, PREPEND)[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX] = +{ + /* Corresponds to MPI_OP_NULL */ + [OMPI_OP_BASE_FORTRAN_NULL] = { + /* Leaving this empty puts in NULL for all entries */ + NULL, + }, + /* Corresponds to MPI_MAX */ + [OMPI_OP_BASE_FORTRAN_MAX] = { + C_INTEGER_OPTIONAL(max, 3buff), + FLOATING_POINT(max, 3buff), + }, + /* Corresponds to MPI_MIN */ + [OMPI_OP_BASE_FORTRAN_MIN] = { + C_INTEGER_OPTIONAL(min, 3buff), + FLOATING_POINT(min, 3buff), + }, + /* Corresponds to MPI_SUM */ + [OMPI_OP_BASE_FORTRAN_SUM] = { + C_INTEGER(sum, 3buff), + FLOATING_POINT(add, 3buff), + }, + /* Corresponds to MPI_PROD */ + [OMPI_OP_BASE_FORTRAN_PROD] = { + C_INTEGER_OPTIONAL(prod, 3buff), + FLOATING_POINT(mul, 3buff), + }, + /* Corresponds to MPI_LAND */ + [OMPI_OP_BASE_FORTRAN_LAND] ={ + NULL, + }, + /* Corresponds to MPI_BAND */ + [OMPI_OP_BASE_FORTRAN_BAND] = { + C_INTEGER(and, 3buff), + }, + /* Corresponds to MPI_LOR */ + [OMPI_OP_BASE_FORTRAN_LOR] = { + NULL, + }, + /* Corresponds to MPI_BOR */ + [OMPI_OP_BASE_FORTRAN_BOR] = { + C_INTEGER(or, 3buff), + }, + /* Corresponds to MPI_LXOR */ + [OMPI_OP_BASE_FORTRAN_LXOR] = { + NULL, + }, + /* Corresponds to MPI_BXOR */ + [OMPI_OP_BASE_FORTRAN_BXOR] = { + C_INTEGER(xor, 3buff), + }, + /* Corresponds to MPI_REPLACE */ + [OMPI_OP_BASE_FORTRAN_REPLACE] = { + /* MPI_ACCUMULATE is handled differently than the other + reductions, so just zero out its function + implementations here to ensure that users don't invoke + MPI_REPLACE with any reduction operations other than + ACCUMULATE */ + NULL, + }, +}; diff -Nru openmpi-4.0.3/ompi/mca/op/avx/op_avx.h openmpi-4.1.4/ompi/mca/op/avx/op_avx.h --- openmpi-4.0.3/ompi/mca/op/avx/op_avx.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/op/avx/op_avx.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2019-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef MCA_OP_AVX_EXPORT_H +#define MCA_OP_AVX_EXPORT_H + +#include "ompi_config.h" + +#include "ompi/mca/mca.h" +#include "opal/class/opal_object.h" + +#include "ompi/mca/op/op.h" + +BEGIN_C_DECLS + +#define OMPI_OP_AVX_HAS_AVX512BW_FLAG 0x00000200 +#define OMPI_OP_AVX_HAS_AVX512F_FLAG 0x00000100 +#define OMPI_OP_AVX_HAS_AVX2_FLAG 0x00000020 +#define OMPI_OP_AVX_HAS_AVX_FLAG 0x00000010 +#define OMPI_OP_AVX_HAS_SSE4_1_FLAG 0x00000008 +#define OMPI_OP_AVX_HAS_SSE3_FLAG 0x00000004 +#define OMPI_OP_AVX_HAS_SSE2_FLAG 0x00000002 +#define OMPI_OP_AVX_HAS_SSE_FLAG 0x00000001 + +/** + * Derive a struct from the base op component struct, allowing us to + * cache some component-specific information on our well-known + * component struct. + */ +typedef struct { + /** The base op component struct */ + ompi_op_base_component_1_0_0_t super; + + /* What follows is avx-component-specific cached information. We + tend to use this scheme (caching information on the avx + component itself) instead of lots of individual global + variables for the component. The following data fields are + avxs; replace them with whatever is relevant for your + component. */ + + uint32_t supported; /* AVX capabilities supported by the environment */ + uint32_t flags; /* AVX capabilities requested by this process */ +} ompi_op_avx_component_t; + +/** + * Globally exported variable. Note that it is a *avx* component + * (defined above), which has the ompi_op_base_component_t as its + * first member. Hence, the MCA/op framework will find the data that + * it expects in the first memory locations, but then the component + * itself can cache additional information after that that can be used + * by both the component and modules. + */ +OMPI_DECLSPEC extern ompi_op_avx_component_t + mca_op_avx_component; + +END_C_DECLS + +#endif /* MCA_OP_AVX_EXPORT_H */ diff -Nru openmpi-4.0.3/ompi/mca/op/base/op_base_functions.c openmpi-4.1.4/ompi/mca/op/base/op_base_functions.c --- openmpi-4.0.3/ompi/mca/op/base/op_base_functions.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/op/base/op_base_functions.c 2022-05-29 09:51:40.000000000 +0000 @@ -37,7 +37,7 @@ * This macro is for (out op in). */ #define OP_FUNC(name, type_name, type, op) \ - static void ompi_op_base_2buff_##name##_##type_name(void *in, void *out, int *count, \ + static void ompi_op_base_2buff_##name##_##type_name(const void *in, void *out, int *count, \ struct ompi_datatype_t **dtype, \ struct ompi_op_base_module_1_0_0_t *module) \ { \ @@ -57,7 +57,7 @@ * This macro is for (out = op(out, in)) */ #define FUNC_FUNC(name, type_name, type) \ - static void ompi_op_base_2buff_##name##_##type_name(void *in, void *out, int *count, \ + static void ompi_op_base_2buff_##name##_##type_name(const void *in, void *out, int *count, \ struct ompi_datatype_t **dtype, \ struct ompi_op_base_module_1_0_0_t *module) \ { \ @@ -85,7 +85,7 @@ } ompi_op_predefined_##type_name##_t; #define LOC_FUNC(name, type_name, op) \ - static void ompi_op_base_2buff_##name##_##type_name(void *in, void *out, int *count, \ + static void ompi_op_base_2buff_##name##_##type_name(const void *in, void *out, int *count, \ struct ompi_datatype_t **dtype, \ struct ompi_op_base_module_1_0_0_t *module) \ { \ @@ -102,6 +102,49 @@ } \ } +/* + * Define a function to calculate sum of complex numbers using a real + * number floating-point type (float, double, etc.). This macro is used + * when the compiler supports a real number floating-point type but does + * not supports the corresponding complex number type. + */ +#define COMPLEX_SUM_FUNC(type_name, type) \ + static void ompi_op_base_2buff_sum_##type_name(const void *in, void *out, int *count, \ + struct ompi_datatype_t **dtype, \ + struct ompi_op_base_module_1_0_0_t *module) \ + { \ + int i; \ + type (*a)[2] = (type (*)[2]) in; \ + type (*b)[2] = (type (*)[2]) out; \ + for (i = 0; i < *count; ++i, ++a, ++b) { \ + (*b)[0] += (*a)[0]; \ + (*b)[1] += (*a)[1]; \ + } \ + } + +/* + * Define a function to calculate product of complex numbers using a real + * number floating-point type (float, double, etc.). This macro is used + * when the compiler supports a real number floating-point type but does + * not supports the corresponding complex number type. + */ +#define COMPLEX_PROD_FUNC(type_name, type) \ + static void ompi_op_base_2buff_prod_##type_name(const void *in, void *out, int *count, \ + struct ompi_datatype_t **dtype, \ + struct ompi_op_base_module_1_0_0_t *module) \ + { \ + int i; \ + type (*a)[2] = (type (*)[2]) in; \ + type (*b)[2] = (type (*)[2]) out; \ + type c[2]; \ + for (i = 0; i < *count; ++i, ++a, ++b) { \ + c[0] = (*a)[0] * (*b)[0] - (*a)[1] * (*b)[1]; \ + c[1] = (*a)[0] * (*b)[1] + (*a)[1] * (*b)[0]; \ + (*b)[0] = c[0]; \ + (*b)[1] = c[1]; \ + } \ + } + /************************************************************************* * Max *************************************************************************/ @@ -117,6 +160,9 @@ FUNC_FUNC(max, uint32_t, uint32_t) FUNC_FUNC(max, int64_t, int64_t) FUNC_FUNC(max, uint64_t, uint64_t) +FUNC_FUNC(max, long, long) +FUNC_FUNC(max, unsigned_long, long) + /* Fortran integer */ #if OMPI_HAVE_FORTRAN_INTEGER FUNC_FUNC(max, fortran_integer, ompi_fortran_integer_t) @@ -177,6 +223,9 @@ FUNC_FUNC(min, uint32_t, uint32_t) FUNC_FUNC(min, int64_t, int64_t) FUNC_FUNC(min, uint64_t, uint64_t) +FUNC_FUNC(min, long, long) +FUNC_FUNC(min, unsigned_long, long) + /* Fortran integer */ #if OMPI_HAVE_FORTRAN_INTEGER FUNC_FUNC(min, fortran_integer, ompi_fortran_integer_t) @@ -234,6 +283,9 @@ OP_FUNC(sum, uint32_t, uint32_t, +=) OP_FUNC(sum, int64_t, int64_t, +=) OP_FUNC(sum, uint64_t, uint64_t, +=) +OP_FUNC(sum, long, long, +=) +OP_FUNC(sum, unsigned_long, long, +=) + /* Fortran integer */ #if OMPI_HAVE_FORTRAN_INTEGER OP_FUNC(sum, fortran_integer, ompi_fortran_integer_t, +=) @@ -301,6 +353,9 @@ OP_FUNC(prod, uint32_t, uint32_t, *=) OP_FUNC(prod, int64_t, int64_t, *=) OP_FUNC(prod, uint64_t, uint64_t, *=) +OP_FUNC(prod, long, long, *=) +OP_FUNC(prod, unsigned_long, long, *=) + /* Fortran integer */ #if OMPI_HAVE_FORTRAN_INTEGER OP_FUNC(prod, fortran_integer, ompi_fortran_integer_t, *=) @@ -370,6 +425,9 @@ FUNC_FUNC(land, uint32_t, uint32_t) FUNC_FUNC(land, int64_t, int64_t) FUNC_FUNC(land, uint64_t, uint64_t) +FUNC_FUNC(land, long, long) +FUNC_FUNC(land, unsigned_long, long) + /* Logical */ #if OMPI_HAVE_FORTRAN_LOGICAL FUNC_FUNC(land, fortran_logical, ompi_fortran_logical_t) @@ -392,6 +450,9 @@ FUNC_FUNC(lor, uint32_t, uint32_t) FUNC_FUNC(lor, int64_t, int64_t) FUNC_FUNC(lor, uint64_t, uint64_t) +FUNC_FUNC(lor, long, long) +FUNC_FUNC(lor, unsigned_long, long) + /* Logical */ #if OMPI_HAVE_FORTRAN_LOGICAL FUNC_FUNC(lor, fortran_logical, ompi_fortran_logical_t) @@ -414,6 +475,10 @@ FUNC_FUNC(lxor, uint32_t, uint32_t) FUNC_FUNC(lxor, int64_t, int64_t) FUNC_FUNC(lxor, uint64_t, uint64_t) +FUNC_FUNC(lxor, long, long) +FUNC_FUNC(lxor, unsigned_long, long) + + /* Logical */ #if OMPI_HAVE_FORTRAN_LOGICAL FUNC_FUNC(lxor, fortran_logical, ompi_fortran_logical_t) @@ -436,6 +501,9 @@ FUNC_FUNC(band, uint32_t, uint32_t) FUNC_FUNC(band, int64_t, int64_t) FUNC_FUNC(band, uint64_t, uint64_t) +FUNC_FUNC(band, long, long) +FUNC_FUNC(band, unsigned_long, long) + /* Fortran integer */ #if OMPI_HAVE_FORTRAN_INTEGER FUNC_FUNC(band, fortran_integer, ompi_fortran_integer_t) @@ -473,6 +541,9 @@ FUNC_FUNC(bor, uint32_t, uint32_t) FUNC_FUNC(bor, int64_t, int64_t) FUNC_FUNC(bor, uint64_t, uint64_t) +FUNC_FUNC(bor, long, long) +FUNC_FUNC(bor, unsigned_long, long) + /* Fortran integer */ #if OMPI_HAVE_FORTRAN_INTEGER FUNC_FUNC(bor, fortran_integer, ompi_fortran_integer_t) @@ -510,6 +581,9 @@ FUNC_FUNC(bxor, uint32_t, uint32_t) FUNC_FUNC(bxor, int64_t, int64_t) FUNC_FUNC(bxor, uint64_t, uint64_t) +FUNC_FUNC(bxor, long, long) +FUNC_FUNC(bxor, unsigned_long, long) + /* Fortran integer */ #if OMPI_HAVE_FORTRAN_INTEGER FUNC_FUNC(bxor, fortran_integer, ompi_fortran_integer_t) @@ -553,6 +627,7 @@ #if HAVE_LONG_DOUBLE LOC_STRUCT(long_double_int, long double, int) #endif +LOC_STRUCT(unsigned_long, unsigned long, int) /************************************************************************* * Max location @@ -604,8 +679,8 @@ * routines, needed for some optimizations. */ #define OP_FUNC_3BUF(name, type_name, type, op) \ - static void ompi_op_base_3buff_##name##_##type_name(void * restrict in1, \ - void * restrict in2, void * restrict out, int *count, \ + static void ompi_op_base_3buff_##name##_##type_name(const void * restrict in1, \ + const void * restrict in2, void * restrict out, int *count, \ struct ompi_datatype_t **dtype, \ struct ompi_op_base_module_1_0_0_t *module) \ { \ @@ -626,8 +701,8 @@ * This macro is for (out = op(in1, in2)) */ #define FUNC_FUNC_3BUF(name, type_name, type) \ - static void ompi_op_base_3buff_##name##_##type_name(void * restrict in1, \ - void * restrict in2, void * restrict out, int *count, \ + static void ompi_op_base_3buff_##name##_##type_name(const void * restrict in1, \ + const void * restrict in2, void * restrict out, int *count, \ struct ompi_datatype_t **dtype, \ struct ompi_op_base_module_1_0_0_t *module) \ { \ @@ -659,8 +734,8 @@ */ #define LOC_FUNC_3BUF(name, type_name, op) \ - static void ompi_op_base_3buff_##name##_##type_name(void * restrict in1, \ - void * restrict in2, void * restrict out, int *count, \ + static void ompi_op_base_3buff_##name##_##type_name(const void * restrict in1, \ + const void * restrict in2, void * restrict out, int *count, \ struct ompi_datatype_t **dtype, \ struct ompi_op_base_module_1_0_0_t *module) \ { \ @@ -682,6 +757,50 @@ } \ } +/* + * Define a function to calculate sum of complex numbers using a real + * number floating-point type (float, double, etc.). This macro is used + * when the compiler supports a real number floating-point type but does + * not supports the corresponding complex number type. + */ +#define COMPLEX_SUM_FUNC_3BUF(type_name, type) \ + static void ompi_op_base_3buff_sum_##type_name(const void * restrict in1, \ + const void * restrict in2, void * restrict out, int *count, \ + struct ompi_datatype_t **dtype, \ + struct ompi_op_base_module_1_0_0_t *module) \ + { \ + int i; \ + type (*a1)[2] = (type (*)[2]) in1; \ + type (*a2)[2] = (type (*)[2]) in2; \ + type (*b)[2] = (type (*)[2]) out; \ + for (i = 0; i < *count; ++i, ++a1, ++a2, ++b) { \ + (*b)[0] = (*a1)[0] + (*a2)[0]; \ + (*b)[1] = (*a1)[1] + (*a2)[1]; \ + } \ + } + +/* + * Define a function to calculate product of complex numbers using a real + * number floating-point type (float, double, etc.). This macro is used + * when the compiler supports a real number floating-point type but does + * not supports the corresponding complex number type. + */ +#define COMPLEX_PROD_FUNC_3BUF(type_name, type) \ + static void ompi_op_base_3buff_prod_##type_name(const void * restrict in1, \ + const void * restrict in2, void * restrict out, int *count, \ + struct ompi_datatype_t **dtype, \ + struct ompi_op_base_module_1_0_0_t *module) \ + { \ + int i; \ + type (*a1)[2] = (type (*)[2]) in1; \ + type (*a2)[2] = (type (*)[2]) in2; \ + type (*b)[2] = (type (*)[2]) out; \ + for (i = 0; i < *count; ++i, ++a1, ++a2, ++b) { \ + (*b)[0] = (*a1)[0] * (*a2)[0] - (*a1)[1] * (*a2)[1]; \ + (*b)[1] = (*a1)[0] * (*a2)[1] + (*a1)[1] * (*a2)[0]; \ + } \ + } + /************************************************************************* * Max *************************************************************************/ @@ -697,6 +816,9 @@ FUNC_FUNC_3BUF(max, uint32_t, uint32_t) FUNC_FUNC_3BUF(max, int64_t, int64_t) FUNC_FUNC_3BUF(max, uint64_t, uint64_t) +FUNC_FUNC_3BUF(max, long, long) +FUNC_FUNC_3BUF(max, unsigned_long, long) + /* Fortran integer */ #if OMPI_HAVE_FORTRAN_INTEGER FUNC_FUNC_3BUF(max, fortran_integer, ompi_fortran_integer_t) @@ -757,6 +879,9 @@ FUNC_FUNC_3BUF(min, uint32_t, uint32_t) FUNC_FUNC_3BUF(min, int64_t, int64_t) FUNC_FUNC_3BUF(min, uint64_t, uint64_t) +FUNC_FUNC_3BUF(min, long, long) +FUNC_FUNC_3BUF(min, unsigned_long, long) + /* Fortran integer */ #if OMPI_HAVE_FORTRAN_INTEGER FUNC_FUNC_3BUF(min, fortran_integer, ompi_fortran_integer_t) @@ -814,6 +939,9 @@ OP_FUNC_3BUF(sum, uint32_t, uint32_t, +) OP_FUNC_3BUF(sum, int64_t, int64_t, +) OP_FUNC_3BUF(sum, uint64_t, uint64_t, +) +OP_FUNC_3BUF(sum, long, long, +) +OP_FUNC_3BUF(sum, unsigned_long, long, +) + /* Fortran integer */ #if OMPI_HAVE_FORTRAN_INTEGER OP_FUNC_3BUF(sum, fortran_integer, ompi_fortran_integer_t, +) @@ -881,6 +1009,9 @@ OP_FUNC_3BUF(prod, uint32_t, uint32_t, *) OP_FUNC_3BUF(prod, int64_t, int64_t, *) OP_FUNC_3BUF(prod, uint64_t, uint64_t, *) +OP_FUNC_3BUF(prod, long, long, *) +OP_FUNC_3BUF(prod, unsigned_long, long, *) + /* Fortran integer */ #if OMPI_HAVE_FORTRAN_INTEGER OP_FUNC_3BUF(prod, fortran_integer, ompi_fortran_integer_t, *) @@ -950,6 +1081,9 @@ FUNC_FUNC_3BUF(land, uint32_t, uint32_t) FUNC_FUNC_3BUF(land, int64_t, int64_t) FUNC_FUNC_3BUF(land, uint64_t, uint64_t) +FUNC_FUNC_3BUF(land, long, long) +FUNC_FUNC_3BUF(land, unsigned_long, long) + /* Logical */ #if OMPI_HAVE_FORTRAN_LOGICAL FUNC_FUNC_3BUF(land, fortran_logical, ompi_fortran_logical_t) @@ -972,6 +1106,9 @@ FUNC_FUNC_3BUF(lor, uint32_t, uint32_t) FUNC_FUNC_3BUF(lor, int64_t, int64_t) FUNC_FUNC_3BUF(lor, uint64_t, uint64_t) +FUNC_FUNC_3BUF(lor, long, long) +FUNC_FUNC_3BUF(lor, unsigned_long, long) + /* Logical */ #if OMPI_HAVE_FORTRAN_LOGICAL FUNC_FUNC_3BUF(lor, fortran_logical, ompi_fortran_logical_t) @@ -994,6 +1131,9 @@ FUNC_FUNC_3BUF(lxor, uint32_t, uint32_t) FUNC_FUNC_3BUF(lxor, int64_t, int64_t) FUNC_FUNC_3BUF(lxor, uint64_t, uint64_t) +FUNC_FUNC_3BUF(lxor, long, long) +FUNC_FUNC_3BUF(lxor, unsigned_long, long) + /* Logical */ #if OMPI_HAVE_FORTRAN_LOGICAL FUNC_FUNC_3BUF(lxor, fortran_logical, ompi_fortran_logical_t) @@ -1016,6 +1156,9 @@ FUNC_FUNC_3BUF(band, uint32_t, uint32_t) FUNC_FUNC_3BUF(band, int64_t, int64_t) FUNC_FUNC_3BUF(band, uint64_t, uint64_t) +FUNC_FUNC_3BUF(band, long, long) +FUNC_FUNC_3BUF(band, unsigned_long, long) + /* Fortran integer */ #if OMPI_HAVE_FORTRAN_INTEGER FUNC_FUNC_3BUF(band, fortran_integer, ompi_fortran_integer_t) @@ -1053,6 +1196,9 @@ FUNC_FUNC_3BUF(bor, uint32_t, uint32_t) FUNC_FUNC_3BUF(bor, int64_t, int64_t) FUNC_FUNC_3BUF(bor, uint64_t, uint64_t) +FUNC_FUNC_3BUF(bor, long, long) +FUNC_FUNC_3BUF(bor, unsigned_long, long) + /* Fortran integer */ #if OMPI_HAVE_FORTRAN_INTEGER FUNC_FUNC_3BUF(bor, fortran_integer, ompi_fortran_integer_t) @@ -1090,6 +1236,9 @@ FUNC_FUNC_3BUF(bxor, uint32_t, uint32_t) FUNC_FUNC_3BUF(bxor, int64_t, int64_t) FUNC_FUNC_3BUF(bxor, uint64_t, uint64_t) +FUNC_FUNC_3BUF(bxor, long, long) +FUNC_FUNC_3BUF(bxor, unsigned_long, long) + /* Fortran integer */ #if OMPI_HAVE_FORTRAN_INTEGER FUNC_FUNC_3BUF(bxor, fortran_integer, ompi_fortran_integer_t) @@ -1197,6 +1346,8 @@ [OMPI_OP_BASE_TYPE_INT32_T] = ompi_op_base_##ftype##_##name##_int32_t, \ [OMPI_OP_BASE_TYPE_UINT32_T] = ompi_op_base_##ftype##_##name##_uint32_t, \ [OMPI_OP_BASE_TYPE_INT64_T] = ompi_op_base_##ftype##_##name##_int64_t, \ + [OMPI_OP_BASE_TYPE_LONG] = ompi_op_base_##ftype##_##name##_long, \ + [OMPI_OP_BASE_TYPE_UNSIGNED_LONG] = ompi_op_base_##ftype##_##name##_unsigned_long, \ [OMPI_OP_BASE_TYPE_UINT64_T] = ompi_op_base_##ftype##_##name##_uint64_t /** All the Fortran integers ********************************************/ diff -Nru openmpi-4.0.3/ompi/mca/op/base/op_base_op_select.c openmpi-4.1.4/ompi/mca/op/base/op_base_op_select.c --- openmpi-4.0.3/ompi/mca/op/base/op_base_op_select.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/op/base/op_base_op_select.c 2022-05-29 09:51:40.000000000 +0000 @@ -14,6 +14,8 @@ * rights reserved. * Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved. * Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -206,8 +208,8 @@ static int avail_op_compare(opal_list_item_t **itema, opal_list_item_t **itemb) { - avail_op_t *availa = (avail_op_t *) itema; - avail_op_t *availb = (avail_op_t *) itemb; + avail_op_t *availa = (avail_op_t *) *itema; + avail_op_t *availb = (avail_op_t *) *itemb; if (availa->ao_priority > availb->ao_priority) { return 1; diff -Nru openmpi-4.0.3/ompi/mca/op/Makefile.in openmpi-4.1.4/ompi/mca/op/Makefile.in --- openmpi-4.0.3/ompi/mca/op/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/op/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -138,6 +138,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -145,6 +147,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -168,6 +171,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -270,6 +274,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -277,6 +282,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -357,6 +363,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -379,9 +386,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -391,6 +402,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -411,6 +423,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -668,6 +681,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1488,6 +1504,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1520,9 +1540,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1543,6 +1572,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1627,9 +1657,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1690,6 +1717,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1703,6 +1733,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/op/op.h openmpi-4.1.4/ompi/mca/op/op.h --- openmpi-4.0.3/ompi/mca/op/op.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/op/op.h 2022-05-29 09:51:40.000000000 +0000 @@ -186,6 +186,11 @@ /** 2 location C: long double int */ OMPI_OP_BASE_TYPE_LONG_DOUBLE_INT, + /** long */ + OMPI_OP_BASE_TYPE_LONG, + /** unsigned long */ + OMPI_OP_BASE_TYPE_UNSIGNED_LONG, + /** 2 location C: wchar_t */ OMPI_OP_BASE_TYPE_WCHAR, @@ -250,7 +255,7 @@ * repeated code, but it's better this way (and this typedef will * never change, so there's not much of a maintenance worry). */ -typedef void (*ompi_op_base_handler_fn_1_0_0_t)(void *, void *, int *, +typedef void (*ompi_op_base_handler_fn_1_0_0_t)(const void *, void *, int *, struct ompi_datatype_t **, struct ompi_op_base_module_1_0_0_t *); @@ -259,8 +264,8 @@ /* * Typedef for 3-buffer (two input and one output) op functions. */ -typedef void (*ompi_op_base_3buff_handler_fn_1_0_0_t)(void *, - void *, +typedef void (*ompi_op_base_3buff_handler_fn_1_0_0_t)(const void *, + const void *, void *, int *, struct ompi_datatype_t **, struct ompi_op_base_module_1_0_0_t *); diff -Nru openmpi-4.0.3/ompi/mca/osc/base/osc_base_obj_convert.h openmpi-4.1.4/ompi/mca/osc/base/osc_base_obj_convert.h --- openmpi-4.0.3/ompi/mca/osc/base/osc_base_obj_convert.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/base/osc_base_obj_convert.h 2022-05-29 09:51:40.000000000 +0000 @@ -54,15 +54,14 @@ struct ompi_datatype_t *datatype = ompi_datatype_create_from_packed_description(payload, remote_proc); if (NULL == datatype) return NULL; - OMPI_DATATYPE_RETAIN(datatype); return datatype; } /** - * Create datatype based on Fortran Index + * Create operation based on Fortran Index * - * Create a useable MPI datatype based on it's Fortran index, which is + * Create a useable MPI operation based on it's Fortran index, which is * globally the same for predefined operations. The op handle is * owned by the calling process and must be OBJ_RELEASEd when no * longer in use. diff -Nru openmpi-4.0.3/ompi/mca/osc/Makefile.in openmpi-4.1.4/ompi/mca/osc/Makefile.in --- openmpi-4.0.3/ompi/mca/osc/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -134,6 +134,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -141,6 +143,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -164,6 +167,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -266,6 +270,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -273,6 +278,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -353,6 +359,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -375,9 +382,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -387,6 +398,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -407,6 +419,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -664,6 +677,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1484,6 +1500,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1516,9 +1536,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1539,6 +1568,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1623,9 +1653,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1686,6 +1713,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1699,6 +1729,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/osc/monitoring/Makefile.in openmpi-4.1.4/ompi/mca/osc/monitoring/Makefile.in --- openmpi-4.0.3/ompi/mca/osc/monitoring/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/monitoring/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -651,6 +664,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1471,6 +1487,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1503,9 +1523,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1526,6 +1555,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1610,9 +1640,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1673,6 +1700,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1686,6 +1716,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/osc/portals4/Makefile.in openmpi-4.1.4/ompi/mca/osc/portals4/Makefile.in --- openmpi-4.0.3/ompi/mca/osc/portals4/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/portals4/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -653,6 +666,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1473,6 +1489,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1505,9 +1525,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1528,6 +1557,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1612,9 +1642,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1675,6 +1702,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1688,6 +1718,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/osc/portals4/osc_portals4_comm.c openmpi-4.1.4/ompi/mca/osc/portals4/osc_portals4_comm.c --- openmpi-4.0.3/ompi/mca/osc/portals4/osc_portals4_comm.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/portals4/osc_portals4_comm.c 2022-05-29 09:51:40.000000000 +0000 @@ -183,7 +183,7 @@ { ptl_size_t nb_frag = length == 0 ? 1 : (length - 1) / maxlength + 1; OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, - "%s,%d : %ld fragment(s)", __FUNCTION__, __LINE__, nb_frag)); + "%s,%d : %ld fragment(s)", __FILE__, __LINE__, nb_frag)); return nb_frag; } @@ -225,7 +225,7 @@ opal_atomic_add_fetch_64(opcount, -1); opal_output_verbose(1, ompi_osc_base_framework.framework_output, "%s:%d PtlPut failed with return value %d", - __FUNCTION__, __LINE__, ret); + __FILE__, __LINE__, ret); return ret; } put_length -= frag_length; @@ -269,7 +269,7 @@ opal_atomic_add_fetch_64(opcount, -1); opal_output_verbose(1, ompi_osc_base_framework.framework_output, "%s:%d PtlGet failed with return value %d", - __FUNCTION__, __LINE__, ret); + __FILE__, __LINE__, ret); return ret; } get_length -= frag_length; @@ -318,7 +318,7 @@ opal_atomic_add_fetch_64(opcount, -1); opal_output_verbose(1, ompi_osc_base_framework.framework_output, "%s:%d PtlAtomic failed with return value %d", - __FUNCTION__, __LINE__, ret); + __FILE__, __LINE__, ret); return ret; } length -= frag_length; @@ -370,7 +370,7 @@ opal_atomic_add_fetch_64(opcount, -1); opal_output_verbose(1, ompi_osc_base_framework.framework_output, "%s:%d PtlFetchAtomic failed with return value %d", - __FUNCTION__, __LINE__, ret); + __FILE__, __LINE__, ret); return ret; } length -= frag_length; @@ -422,7 +422,7 @@ opal_atomic_add_fetch_64(opcount, -1); opal_output_verbose(1, ompi_osc_base_framework.framework_output, "%s:%d PtlSwap failed with return value %d", - __FUNCTION__, __LINE__, ret); + __FILE__, __LINE__, ret); return ret; } length -= frag_length; @@ -551,7 +551,7 @@ OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d Get(origin_count=%d, origin_lb=%lu, target_count=%d, target_lb=%lu, size=%lu, length=%lu, offset=%lu, op_count=%ld)", - __FUNCTION__, __LINE__, origin_count, origin_lb, target_count, target_lb, size, length, offset, module->opcount)); + __FILE__, __LINE__, origin_count, origin_lb, target_count, target_lb, size, length, offset, module->opcount)); ret = PtlGet(module->origin_iovec_md_h, (ptl_size_t) origin_lb, length, @@ -563,7 +563,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d PtlGet() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); opal_atomic_add_fetch_64(&module->opcount, -1); return ret; } @@ -636,7 +636,7 @@ OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d Get(origin_count=%d, origin_lb=%lu, target_count=%d, target_lb=%lu, size=%lu, length=%lu, offset=%lu, op_count=%ld)", - __FUNCTION__, __LINE__, origin_count, origin_lb, target_count, target_lb, size, length, offset, module->opcount)); + __FILE__, __LINE__, origin_count, origin_lb, target_count, target_lb, size, length, offset, module->opcount)); ret = segmentedGet(&module->opcount, module->origin_iovec_md_h, (ptl_size_t) origin_lb, @@ -720,7 +720,7 @@ OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d Put(origin_count=%d, origin_lb=%lu, target_count=%d, target_lb=%lu, size=%lu, length=%lu, offset=%lu, op_count=%ld)", - __FUNCTION__, __LINE__, origin_count, origin_lb, target_count, target_lb, size, length, offset, module->opcount)); + __FILE__, __LINE__, origin_count, origin_lb, target_count, target_lb, size, length, offset, module->opcount)); ret = PtlPut(module->origin_iovec_md_h, (ptl_size_t) origin_lb, length, @@ -734,7 +734,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d PtlPut() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); opal_atomic_add_fetch_64(&module->opcount, -1); return ret; } @@ -807,7 +807,7 @@ OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d Put(origin_count=%d, origin_lb=%lu, target_count=%d, target_lb=%lu, length=%lu, op_count=%ld)", - __FUNCTION__, __LINE__, origin_count, origin_lb, target_count, target_lb, length, module->opcount)); + __FILE__, __LINE__, origin_count, origin_lb, target_count, target_lb, length, module->opcount)); ret = segmentedPut(&module->opcount, module->origin_iovec_md_h, (ptl_size_t) origin_lb, @@ -1487,7 +1487,7 @@ (unsigned long) target_iovec[target_iov_index].iov_len)); OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, - "%s,%d Atomic", __FUNCTION__, __LINE__)); + "%s,%d Atomic", __FILE__, __LINE__)); ret = PtlAtomic(md_h, (ptl_size_t)origin_iovec[origin_iov_index].iov_base, atomic_len, @@ -1843,7 +1843,7 @@ if (PTL_OK != ret) { opal_output_verbose(1, ompi_osc_base_framework.framework_output, "%s:%d PtlSwap failed with return value %d", - __FUNCTION__, __LINE__, ret); + __FILE__, __LINE__, ret); opal_atomic_add_fetch_64(&module->opcount, -1); return ret; } @@ -1994,7 +1994,7 @@ if (PTL_OK != ret) { opal_output_verbose(1, ompi_osc_base_framework.framework_output, "%s:%d PtlFetchAtomic failed with return value %d", - __FUNCTION__, __LINE__, ret); + __FILE__, __LINE__, ret); opal_atomic_add_fetch_64(&module->opcount, -1); return ret; } @@ -2065,7 +2065,7 @@ OMPI_OSC_PORTALS4_REQUEST_RETURN(request); OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d put_to_noncontig() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } else if (!ompi_datatype_is_contiguous_memory_layout(origin_dt, origin_count)) { @@ -2084,7 +2084,7 @@ OMPI_OSC_PORTALS4_REQUEST_RETURN(request); OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d put_from_iovec() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } else { @@ -2105,7 +2105,7 @@ OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d RPut(origin_count=%d, origin_lb=%lu, target_count=%d, target_lb=%lu, length=%lu, op_count=%ld)", - __FUNCTION__, __LINE__, origin_count, origin_lb, target_count, target_lb, length, module->opcount)); + __FILE__, __LINE__, origin_count, origin_lb, target_count, target_lb, length, module->opcount)); ret = segmentedPut(&module->opcount, module->req_md_h, (ptl_size_t) origin_addr + origin_lb, @@ -2176,7 +2176,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d get_from_noncontig() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } else if (!ompi_datatype_is_contiguous_memory_layout(origin_dt, origin_count)) { @@ -2194,7 +2194,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d get_to_iovec() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } else { @@ -2212,7 +2212,7 @@ request->ops_expected += number_of_fragments(length, mca_osc_portals4_component.ptl_max_msg_size); OPAL_OUTPUT_VERBOSE((90,ompi_osc_base_framework.framework_output, - "%s,%d RGet", __FUNCTION__, __LINE__)); + "%s,%d RGet", __FILE__, __LINE__)); ret = segmentedGet(&module->opcount, module->req_md_h, (ptl_size_t) origin_addr + origin_lb, @@ -2287,7 +2287,7 @@ OMPI_OSC_PORTALS4_REQUEST_RETURN(request); OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d atomic_put_to_noncontig() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } else { @@ -2308,7 +2308,7 @@ OMPI_OSC_PORTALS4_REQUEST_RETURN(request); OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d atomic_to_noncontig() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } @@ -2329,7 +2329,7 @@ OMPI_OSC_PORTALS4_REQUEST_RETURN(request); OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d atomic_put_from_iovec() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } else { @@ -2349,7 +2349,7 @@ OMPI_OSC_PORTALS4_REQUEST_RETURN(request); OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d atomic_from_iovec() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } @@ -2376,7 +2376,7 @@ if (MPI_REPLACE == op) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, - "%s,%d Put", __FUNCTION__, __LINE__)); + "%s,%d Put", __FILE__, __LINE__)); ret = segmentedPut(&module->opcount, module->req_md_h, md_offset + origin_lb, @@ -2414,7 +2414,7 @@ (void)opal_atomic_add_fetch_64(&module->opcount, 1); OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, - "%s,%d Atomic", __FUNCTION__, __LINE__)); + "%s,%d Atomic", __FILE__, __LINE__)); ret = PtlAtomic(module->req_md_h, md_offset + sent + origin_lb, msg_length, @@ -2505,7 +2505,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d swap_from_noncontig() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); OMPI_OSC_PORTALS4_REQUEST_RETURN(request); return ret; } @@ -2527,7 +2527,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d atomic_get_from_noncontig() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); OMPI_OSC_PORTALS4_REQUEST_RETURN(request); return ret; } @@ -2554,7 +2554,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d fetch_atomic_from_noncontig() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); OMPI_OSC_PORTALS4_REQUEST_RETURN(request); return ret; } @@ -2581,7 +2581,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d swap_to_iovec() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); OMPI_OSC_PORTALS4_REQUEST_RETURN(request); return ret; } @@ -2602,7 +2602,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d atomic_get_to_iovec() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); OMPI_OSC_PORTALS4_REQUEST_RETURN(request); return ret; } @@ -2627,7 +2627,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d fetch_atomic_to_iovec() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); OMPI_OSC_PORTALS4_REQUEST_RETURN(request); return ret; } @@ -2709,7 +2709,7 @@ request->ops_expected += number_of_fragments(length, module->fetch_atomic_max); OPAL_OUTPUT_VERBOSE((90,ompi_osc_base_framework.framework_output, - "%s,%d MPI_Get_accumulate", __FUNCTION__, __LINE__)); + "%s,%d MPI_Get_accumulate", __FILE__, __LINE__)); ret = segmentedGet(&module->opcount, module->req_md_h, (ptl_size_t) md_offset + result_lb, @@ -2835,7 +2835,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d put_to_noncontig() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } else if (!ompi_datatype_is_contiguous_memory_layout(origin_dt, origin_count)) { @@ -2853,7 +2853,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d put_from_iovec() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } else { @@ -2870,7 +2870,7 @@ OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d Put(origin_count=%d, origin_lb=%lu, target_count=%d, target_lb=%lu, length=%lu, op_count=%ld)", - __FUNCTION__, __LINE__, origin_count, origin_lb, target_count, target_lb, length, module->opcount)); + __FILE__, __LINE__, origin_count, origin_lb, target_count, target_lb, length, module->opcount)); ret = segmentedPut(&module->opcount, module->md_h, (ptl_size_t) origin_addr + origin_lb, @@ -2934,7 +2934,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d get_from_noncontig() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } else if (!ompi_datatype_is_contiguous_memory_layout(origin_dt, origin_count)) { @@ -2952,7 +2952,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d get_to_iovec() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } else { @@ -2968,7 +2968,7 @@ length = size * origin_count; OPAL_OUTPUT_VERBOSE((90,ompi_osc_base_framework.framework_output, - "%s,%d Get", __FUNCTION__, __LINE__)); + "%s,%d Get", __FILE__, __LINE__)); ret = segmentedGet(&module->opcount, module->md_h, (ptl_size_t) origin_addr + origin_lb, @@ -3035,7 +3035,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d atomic_put_to_noncontig() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } else { @@ -3055,7 +3055,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d atomic_to_noncontig() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } @@ -3075,7 +3075,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d atomic_put_from_iovec() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } else { @@ -3094,7 +3094,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d atomic_from_iovec() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } @@ -3117,7 +3117,7 @@ if (MPI_REPLACE == op) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, - "%s,%d Put", __FUNCTION__, __LINE__)); + "%s,%d Put", __FILE__, __LINE__)); ret = segmentedPut(&module->opcount, module->md_h, md_offset + origin_lb, @@ -3152,7 +3152,7 @@ (void)opal_atomic_add_fetch_64(&module->opcount, 1); OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, - "%s,%d Atomic", __FUNCTION__, __LINE__)); + "%s,%d Atomic", __FILE__, __LINE__)); ret = PtlAtomic(module->md_h, md_offset + sent + origin_lb, msg_length, @@ -3236,7 +3236,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d swap_from_noncontig() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } else if (MPI_NO_OP == op) { @@ -3257,7 +3257,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d atomic_get_from_noncontig() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } else { @@ -3283,7 +3283,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d fetch_atomic_from_noncontig() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } @@ -3309,7 +3309,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d swap_to_iovec() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } else if (MPI_NO_OP == op) { @@ -3329,7 +3329,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d atomic_get_to_iovec() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } else { @@ -3353,7 +3353,7 @@ if (PTL_OK != ret) { OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, "%s,%d fetch_atomic_to_iovec() failed: ret = %d", - __FUNCTION__, __LINE__, ret)); + __FILE__, __LINE__, ret)); return ret; } } @@ -3423,7 +3423,7 @@ md_offset = (ptl_size_t) result_addr; OPAL_OUTPUT_VERBOSE((90,ompi_osc_base_framework.framework_output, - "%s,%d MPI_Get_accumulate", __FUNCTION__, __LINE__)); + "%s,%d MPI_Get_accumulate", __FILE__, __LINE__)); ret = segmentedGet(&module->opcount, module->md_h, (ptl_size_t) md_offset + result_lb, @@ -3544,7 +3544,7 @@ (void)opal_atomic_add_fetch_64(&module->opcount, 1); OPAL_OUTPUT_VERBOSE((90,ompi_osc_base_framework.framework_output, - "%s,%d Swap", __FUNCTION__, __LINE__)); + "%s,%d Swap", __FILE__, __LINE__)); ret = PtlSwap(module->md_h, result_md_offset, module->md_h, @@ -3615,7 +3615,7 @@ (void)opal_atomic_add_fetch_64(&module->opcount, 1); OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, - "%s,%d Swap", __FUNCTION__, __LINE__)); + "%s,%d Swap", __FILE__, __LINE__)); ret = PtlSwap(module->md_h, result_md_offset, module->md_h, @@ -3637,7 +3637,7 @@ (void)opal_atomic_add_fetch_64(&module->opcount, 1); OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, - "%s,%d Get", __FUNCTION__, __LINE__)); + "%s,%d Get", __FILE__, __LINE__)); ret = PtlGet(module->md_h, md_offset, length, @@ -3661,7 +3661,7 @@ origin_md_offset = (ptl_size_t) origin_addr; OPAL_OUTPUT_VERBOSE((90, ompi_osc_base_framework.framework_output, - "%s,%d FetchAtomic", __FUNCTION__, __LINE__)); + "%s,%d FetchAtomic", __FILE__, __LINE__)); ret = PtlFetchAtomic(module->md_h, result_md_offset, module->md_h, diff -Nru openmpi-4.0.3/ompi/mca/osc/portals4/osc_portals4_component.c openmpi-4.1.4/ompi/mca/osc/portals4/osc_portals4_component.c --- openmpi-4.0.3/ompi/mca/osc/portals4/osc_portals4_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/portals4/osc_portals4_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -98,9 +98,6 @@ ompi_osc_portals4_flush_all, ompi_osc_portals4_flush_local, ompi_osc_portals4_flush_local_all, - - ompi_osc_portals4_set_info, - ompi_osc_portals4_get_info } }; @@ -230,7 +227,7 @@ } req = (ompi_osc_portals4_request_t*) ev.user_ptr; - opal_atomic_add_fetch_size_t(&req->super.req_status._ucount, ev.mlength); + req->super.req_status._ucount = opal_atomic_add_fetch_32(&req->bytes_committed, ev.mlength); ops = opal_atomic_add_fetch_32(&req->ops_committed, 1); if (ops == req->ops_expected) { ompi_request_complete(&req->super, true); diff -Nru openmpi-4.0.3/ompi/mca/osc/portals4/osc_portals4_request.c openmpi-4.1.4/ompi/mca/osc/portals4/osc_portals4_request.c --- openmpi-4.0.3/ompi/mca/osc/portals4/osc_portals4_request.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/portals4/osc_portals4_request.c 2022-05-29 09:51:40.000000000 +0000 @@ -29,7 +29,7 @@ ompi_osc_portals4_request_t *request = (ompi_osc_portals4_request_t*) *ompi_req; - if (true != request->super.req_complete) { + if (!REQUEST_COMPLETE(&request->super)) { return MPI_ERR_REQUEST; } diff -Nru openmpi-4.0.3/ompi/mca/osc/portals4/osc_portals4_request.h openmpi-4.1.4/ompi/mca/osc/portals4/osc_portals4_request.h --- openmpi-4.0.3/ompi/mca/osc/portals4/osc_portals4_request.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/portals4/osc_portals4_request.h 2022-05-29 09:51:40.000000000 +0000 @@ -19,6 +19,7 @@ ompi_request_t super; int32_t ops_expected; volatile int32_t ops_committed; + volatile int32_t bytes_committed; }; typedef struct ompi_osc_portals4_request_t ompi_osc_portals4_request_t; @@ -31,11 +32,11 @@ req = (ompi_osc_portals4_request_t*) item; \ OMPI_REQUEST_INIT(&req->super, false); \ req->super.req_mpi_object.win = win; \ - req->super.req_complete = false; \ req->super.req_state = OMPI_REQUEST_ACTIVE; \ req->super.req_status.MPI_ERROR = MPI_SUCCESS; \ req->ops_expected = 0; \ req->ops_committed = 0; \ + req->bytes_committed = 0; \ } while (0) #define OMPI_OSC_PORTALS4_REQUEST_RETURN(req) \ diff -Nru openmpi-4.0.3/ompi/mca/osc/pt2pt/Makefile.in openmpi-4.1.4/ompi/mca/osc/pt2pt/Makefile.in --- openmpi-4.0.3/ompi/mca/osc/pt2pt/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/pt2pt/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -666,6 +679,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1486,6 +1502,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1518,9 +1538,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1541,6 +1570,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1625,9 +1655,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1688,6 +1715,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1701,6 +1731,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/osc/pt2pt/osc_pt2pt_active_target.c openmpi-4.1.4/ompi/mca/osc/pt2pt/osc_pt2pt_active_target.c --- openmpi-4.0.3/ompi/mca/osc/pt2pt/osc_pt2pt_active_target.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/pt2pt/osc_pt2pt_active_target.c 2022-05-29 09:51:40.000000000 +0000 @@ -213,11 +213,13 @@ ompi_osc_pt2pt_module_t *module = GET_MODULE(win); ompi_osc_pt2pt_sync_t *sync = &module->all_sync; + OPAL_THREAD_LOCK(&module->lock); OPAL_THREAD_LOCK(&sync->lock); /* check if we are already in an access epoch */ if (ompi_osc_pt2pt_access_epoch_active (module)) { OPAL_THREAD_UNLOCK(&sync->lock); + OPAL_THREAD_UNLOCK(&module->lock); return OMPI_ERR_RMA_SYNC; } @@ -251,6 +253,7 @@ /* nothing more to do. this is an empty start epoch */ sync->eager_send_active = true; OPAL_THREAD_UNLOCK(&sync->lock); + OPAL_THREAD_UNLOCK(&module->lock); return OMPI_SUCCESS; } @@ -260,6 +263,7 @@ sync->peer_list.peers = ompi_osc_pt2pt_get_peers (module, group); if (NULL == sync->peer_list.peers) { OPAL_THREAD_UNLOCK(&sync->lock); + OPAL_THREAD_UNLOCK(&module->lock); return OMPI_ERR_OUT_OF_RESOURCE; } @@ -295,6 +299,7 @@ sync->eager_send_active)); OPAL_THREAD_UNLOCK(&sync->lock); + OPAL_THREAD_UNLOCK(&module->lock); return OMPI_SUCCESS; } diff -Nru openmpi-4.0.3/ompi/mca/osc/pt2pt/osc_pt2pt_component.c openmpi-4.1.4/ompi/mca/osc/pt2pt/osc_pt2pt_component.c --- openmpi-4.0.3/ompi/mca/osc/pt2pt/osc_pt2pt_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/pt2pt/osc_pt2pt_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -153,6 +153,7 @@ static int component_progress (void) { + int completed = 0; int pending_count = opal_list_get_size (&mca_osc_pt2pt_component.pending_operations); int recv_count = opal_list_get_size (&mca_osc_pt2pt_component.pending_receives); ompi_osc_pt2pt_pending_t *pending, *next; @@ -167,6 +168,7 @@ } (void) ompi_osc_pt2pt_process_receive (recv); + completed++; } } @@ -194,12 +196,13 @@ if (OMPI_SUCCESS == ret) { opal_list_remove_item (&mca_osc_pt2pt_component.pending_operations, &pending->super); OBJ_RELEASE(pending); + completed++; } } OPAL_THREAD_UNLOCK(&mca_osc_pt2pt_component.pending_operations_lock); } - return 1; + return completed; } static int diff -Nru openmpi-4.0.3/ompi/mca/osc/pt2pt/osc_pt2pt_data_move.c openmpi-4.1.4/ompi/mca/osc/pt2pt/osc_pt2pt_data_move.c --- openmpi-4.0.3/ompi/mca/osc/pt2pt/osc_pt2pt_data_move.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/pt2pt/osc_pt2pt_data_move.c 2022-05-29 09:51:40.000000000 +0000 @@ -753,7 +753,9 @@ } /* add to the pending acc queue */ - OPAL_THREAD_SCOPED_LOCK(&module->pending_acc_lock, opal_list_append (&module->pending_acc, &pending_acc->super)); + ompi_osc_pt2pt_accumulate_lock(module); + opal_list_append (&module->pending_acc, &pending_acc->super); + ompi_osc_pt2pt_accumulate_unlock(module); return OMPI_SUCCESS; } diff -Nru openmpi-4.0.3/ompi/mca/osc/pt2pt/osc_pt2pt.h openmpi-4.1.4/ompi/mca/osc/pt2pt/osc_pt2pt.h --- openmpi-4.0.3/ompi/mca/osc/pt2pt/osc_pt2pt.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/pt2pt/osc_pt2pt.h 2022-05-29 09:51:40.000000000 +0000 @@ -918,11 +918,14 @@ return &module->all_sync; case OMPI_OSC_PT2PT_SYNC_TYPE_PSCW: + OPAL_THREAD_LOCK(&module->all_sync.lock); if (ompi_osc_pt2pt_sync_pscw_peer (module, target, peer)) { + OPAL_THREAD_UNLOCK(&module->all_sync.lock); OPAL_OUTPUT_VERBOSE((50, ompi_osc_base_framework.framework_output, "osc/pt2pt: found PSCW access epoch target for %d", target)); return &module->all_sync; } + OPAL_THREAD_UNLOCK(&module->all_sync.lock); } return NULL; diff -Nru openmpi-4.0.3/ompi/mca/osc/pt2pt/osc_pt2pt_passive_target.c openmpi-4.1.4/ompi/mca/osc/pt2pt/osc_pt2pt_passive_target.c --- openmpi-4.0.3/ompi/mca/osc/pt2pt/osc_pt2pt_passive_target.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/pt2pt/osc_pt2pt_passive_target.c 2022-05-29 09:51:40.000000000 +0000 @@ -272,6 +272,9 @@ ompi_osc_pt2pt_module_t *module = GET_MODULE(win); ompi_osc_pt2pt_sync_t *lock; int ret = OMPI_SUCCESS; + ompi_osc_pt2pt_sync_t *otherlock = NULL; + int target_key; + void *iter_hash_node = NULL; /* Check if no_locks is set. TODO: we also need to track whether we are in an * active target epoch. Fence can make this tricky to track. */ @@ -345,6 +348,25 @@ return OMPI_ERR_RMA_CONFLICT; } + /* All previously requested locks must be complete before we can start a new + * lock, otherwise we deadlock from mis-ordering of locks. + */ + ret = opal_hash_table_get_first_key_uint32(&module->outstanding_locks, + (uint32_t *) &target_key, + (void **) &otherlock, + &iter_hash_node); + while( OPAL_SUCCESS == ret ) { + if( NULL != otherlock ) { + ompi_osc_pt2pt_sync_wait_expected (otherlock); + } + + ret = opal_hash_table_get_next_key_uint32(&module->outstanding_locks, + (uint32_t *) &target_key, + (void **) &otherlock, + iter_hash_node, &iter_hash_node); + } + ret = OPAL_SUCCESS; + ++module->passive_target_access_epoch; ompi_osc_pt2pt_module_lock_insert (module, lock); @@ -596,7 +618,7 @@ } ret = opal_hash_table_get_next_key_uint32 (&module->outstanding_locks, (uint32_t *) &target, - (void **) lock, node, &node); + (void **) &lock, node, &node); if (OPAL_SUCCESS != ret) { ret = OPAL_SUCCESS; break; diff -Nru openmpi-4.0.3/ompi/mca/osc/rdma/Makefile.in openmpi-4.1.4/ompi/mca/osc/rdma/Makefile.in --- openmpi-4.0.3/ompi/mca/osc/rdma/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/rdma/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -661,6 +674,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1481,6 +1497,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1513,9 +1533,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1536,6 +1565,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1620,9 +1650,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1683,6 +1710,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1696,6 +1726,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_accumulate.c openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_accumulate.c --- openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_accumulate.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_accumulate.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,9 +2,14 @@ /* * Copyright (c) 2014-2018 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2017 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2016-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2016-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2019 Triad National Security, LLC. All rights + * reserved. + * Copyright (c) 2019-2021 Google, LLC. All rights reserved. + * Copyright (c) 2021 IBM Corporation. All rights reserved. + * Copyright (c) 2022 Cisco Systems, Inc. All rights reserved * $COPYRIGHT$ * * Additional copyrights may follow @@ -50,71 +55,6 @@ typedef struct ompi_osc_rdma_event_t ompi_osc_rdma_event_t; -#if 0 -static void *ompi_osc_rdma_event_put (int fd, int flags, void *context) -{ - ompi_osc_rdma_event_t *event = (ompi_osc_rdma_event_t *) context; - int ret; - - ret = event->module->selected_btl->btl_put (event->module->selected_btl, event->endpoint, event->local_address, - event->remote_address, event->local_handle, event->remote_handle, - event->length, 0, MCA_BTL_NO_ORDER, event->cbfunc, event->cbcontext, - event->cbdata); - if (OPAL_LIKELY(OPAL_SUCCESS == ret)) { - /* done with this event */ - opal_event_del (&event->super); - free (event); - } else { - /* re-activate the event */ - opal_event_active (&event->super, OPAL_EV_READ, 1); - } - - return NULL; -} - -static int ompi_osc_rdma_event_queue (ompi_osc_rdma_module_t *module, struct mca_btl_base_endpoint_t *endpoint, - ompi_osc_rdma_event_type_t event_type, void *local_address, mca_btl_base_registration_handle_t *local_handle, - uint64_t remote_address, mca_btl_base_registration_handle_t *remote_handle, - uint64_t length, mca_btl_base_rdma_completion_fn_t cbfunc, void *cbcontext, - void *cbdata) -{ - ompi_osc_rdma_event_t *event = malloc (sizeof (*event)); - void *(*event_func) (int, int, void *); - - OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "queueing event type %d", event_type); - - if (OPAL_UNLIKELY(NULL == event)) { - return OMPI_ERR_OUT_OF_RESOURCE; - } - - event->module = module; - event->endpoint = endpoint; - event->local_address = local_address; - event->local_handle = local_handle; - event->remote_address = remote_address; - event->remote_handle = remote_handle; - event->length = length; - event->cbfunc = cbfunc; - event->cbcontext = cbcontext; - event->cbdata = cbdata; - - switch (event_type) { - case OMPI_OSC_RDMA_EVENT_TYPE_PUT: - event_func = ompi_osc_rdma_event_put; - break; - default: - opal_output(0, "osc/rdma: cannot queue unknown event type %d", event_type); - abort (); - } - - opal_event_set (opal_sync_event_base, &event->super, -1, OPAL_EV_READ, - event_func, event); - opal_event_active (&event->super, OPAL_EV_READ, 1); - - return OMPI_SUCCESS; -} -#endif - static int ompi_osc_rdma_gacc_local (const void *source_buffer, int source_count, ompi_datatype_t *source_datatype, void *result_buffer, int result_count, ompi_datatype_t *result_datatype, ompi_osc_rdma_peer_t *peer, uint64_t target_address, @@ -127,7 +67,7 @@ do { OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "performing accumulate with local region(s)"); - if (NULL != result_buffer) { + if (NULL != result_datatype) { /* get accumulate */ ret = ompi_datatype_sndrcv ((void *) (intptr_t) target_address, target_count, target_datatype, @@ -182,9 +122,208 @@ return OMPI_SUCCESS; } +static int ompi_osc_rdma_op_mapping[OMPI_OP_NUM_OF_TYPES + 1] = { + [OMPI_OP_MAX] = MCA_BTL_ATOMIC_MAX, + [OMPI_OP_MIN] = MCA_BTL_ATOMIC_MIN, + [OMPI_OP_SUM] = MCA_BTL_ATOMIC_ADD, + [OMPI_OP_BAND] = MCA_BTL_ATOMIC_AND, + [OMPI_OP_BOR] = MCA_BTL_ATOMIC_OR, + [OMPI_OP_BXOR] = MCA_BTL_ATOMIC_XOR, + [OMPI_OP_LAND] = MCA_BTL_ATOMIC_LAND, + [OMPI_OP_LOR] = MCA_BTL_ATOMIC_LOR, + [OMPI_OP_LXOR] = MCA_BTL_ATOMIC_LXOR, + [OMPI_OP_REPLACE] = MCA_BTL_ATOMIC_SWAP, +}; + +static int ompi_osc_rdma_fetch_and_op_atomic (ompi_osc_rdma_sync_t *sync, const void *origin_addr, void *result_addr, ompi_datatype_t *dt, + ptrdiff_t extent, ompi_osc_rdma_peer_t *peer, uint64_t target_address, + mca_btl_base_registration_handle_t *target_handle, ompi_op_t *op, ompi_osc_rdma_request_t *req) +{ + ompi_osc_rdma_module_t *module = sync->module; + int32_t atomic_flags = module->selected_btl->btl_atomic_flags; + int btl_op, flags; + int64_t origin; + + if ((8 != extent && !((MCA_BTL_ATOMIC_SUPPORTS_32BIT & atomic_flags) && 4 == extent)) || + (!(OMPI_DATATYPE_FLAG_DATA_INT & dt->super.flags) && !(MCA_BTL_ATOMIC_SUPPORTS_FLOAT & atomic_flags)) || + !ompi_op_is_intrinsic (op) || (0 == ompi_osc_rdma_op_mapping[op->op_type])) { + return OMPI_ERR_NOT_SUPPORTED; + } + + btl_op = ompi_osc_rdma_op_mapping[op->op_type]; + + flags = (4 == extent) ? MCA_BTL_ATOMIC_FLAG_32BIT : 0; + if (OMPI_DATATYPE_FLAG_DATA_FLOAT & dt->super.flags) { + flags |= MCA_BTL_ATOMIC_FLAG_FLOAT; + } + + OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "initiating fetch-and-op using %d-bit btl atomics. origin: 0x%" PRIx64, + (4 == extent) ? 32 : 64, *((int64_t *) origin_addr)); + + origin = (8 == extent) ? ((int64_t *) origin_addr)[0] : ((int32_t *) origin_addr)[0]; + + return ompi_osc_rdma_btl_fop (module, peer->data_endpoint, target_address, target_handle, btl_op, origin, flags, + result_addr, true, NULL, NULL, NULL); +} + +static int ompi_osc_rdma_fetch_and_op_cas (ompi_osc_rdma_sync_t *sync, const void *origin_addr, void *result_addr, ompi_datatype_t *dt, + ptrdiff_t extent, ompi_osc_rdma_peer_t *peer, uint64_t target_address, + mca_btl_base_registration_handle_t *target_handle, ompi_op_t *op, ompi_osc_rdma_request_t *req) +{ + ompi_osc_rdma_module_t *module = sync->module; + uint64_t address, offset, new_value, old_value; + int ret; + + if (extent > 8) { + return OMPI_ERR_NOT_SUPPORTED; + } + + /* align the address. the user should not call with an unaligned address so don't need to range check here */ + address = target_address & ~7; + offset = target_address & ~address; + + OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "initiating fetch-and-op using compare-and-swap"); + + ret = ompi_osc_get_data_blocking (module, peer->data_endpoint, address, target_handle, &old_value, 8); + if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) { + return ret; + } + + /* store the destination in the temporary buffer */ + do { + new_value = old_value; + + if (&ompi_mpi_op_replace.op == op) { + memcpy ((void *)((ptrdiff_t) &new_value + offset), (void *)((ptrdiff_t) origin_addr + dt->super.true_lb), extent); + } else if (&ompi_mpi_op_no_op.op != op) { + ompi_op_reduce (op, (void *) ((ptrdiff_t) origin_addr + dt->super.true_lb), (void*)((ptrdiff_t) &new_value + offset), 1, dt); + } + + ret = ompi_osc_rdma_btl_cswap (module, peer->data_endpoint, address, target_handle, + old_value, new_value, 0, (int64_t*)&new_value); + if (OPAL_SUCCESS != ret || new_value == old_value) { + break; + } + + old_value = new_value; + } while (1); + + if (result_addr) { + memcpy (result_addr, (void *)((intptr_t) &new_value + offset), extent); + } + + return ret; +} + +static int ompi_osc_rdma_acc_single_atomic (ompi_osc_rdma_sync_t *sync, const void *origin_addr, ompi_datatype_t *dt, ptrdiff_t extent, + ompi_osc_rdma_peer_t *peer, uint64_t target_address, mca_btl_base_registration_handle_t *target_handle, + ompi_op_t *op, ompi_osc_rdma_request_t *req) +{ + ompi_osc_rdma_module_t *module = sync->module; + int32_t atomic_flags = module->selected_btl->btl_atomic_flags; + int btl_op, flags; + int64_t origin; + + if (!(module->selected_btl->btl_flags & MCA_BTL_FLAGS_ATOMIC_OPS)) { + /* btl put atomics not supported or disabled. fall back on fetch-and-op */ + return ompi_osc_rdma_fetch_and_op_atomic (sync, origin_addr, NULL, dt, extent, peer, target_address, target_handle, + op, req); + } + + if ((8 != extent && !((MCA_BTL_ATOMIC_SUPPORTS_32BIT & atomic_flags) && 4 == extent)) || + (!(OMPI_DATATYPE_FLAG_DATA_INT & dt->super.flags) && !(MCA_BTL_ATOMIC_SUPPORTS_FLOAT & atomic_flags)) || + !ompi_op_is_intrinsic (op) || (0 == ompi_osc_rdma_op_mapping[op->op_type])) { + return OMPI_ERR_NOT_SUPPORTED; + } + + origin = (8 == extent) ? ((uint64_t *) origin_addr)[0] : ((uint32_t *) origin_addr)[0]; + + /* set the appropriate flags for this atomic */ + flags = (4 == extent) ? MCA_BTL_ATOMIC_FLAG_32BIT : 0; + if (OMPI_DATATYPE_FLAG_DATA_FLOAT & dt->super.flags) { + flags |= MCA_BTL_ATOMIC_FLAG_FLOAT; + } + + btl_op = ompi_osc_rdma_op_mapping[op->op_type]; + + OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "initiating accumulate using 64-bit btl atomics. origin: 0x%" PRIx64, + *((int64_t *) origin_addr)); + + /* if we locked the peer its best to wait for completion before returning */ + return ompi_osc_rdma_btl_op (module, peer->data_endpoint, target_address, target_handle, btl_op, origin, + flags, true, NULL, NULL, NULL); +} + +static inline int ompi_osc_rdma_gacc_amo (ompi_osc_rdma_module_t *module, ompi_osc_rdma_sync_t *sync, const void *source, void *result, + int result_count, ompi_datatype_t *result_datatype, opal_convertor_t *result_convertor, + ompi_osc_rdma_peer_t *peer, uint64_t target_address, + mca_btl_base_registration_handle_t *target_handle, int count, + ompi_datatype_t *datatype, ompi_op_t *op, ompi_osc_rdma_request_t *request) +{ + const bool use_amo = module->acc_use_amo; + const size_t dt_size = datatype->super.size; + void *to_free = NULL; + int ret; + + OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "using network atomics for accumulate operation with count %d", count); + + if (NULL == result) { + to_free = result = malloc (request->len); + if (OPAL_UNLIKELY(NULL == result)) { + return OMPI_ERR_OUT_OF_RESOURCE; + } + } + + for (int i = 0 ; i < count ; ) { + if (use_amo) { + if (NULL == result) { + ret = ompi_osc_rdma_acc_single_atomic (sync, source, datatype, dt_size, peer, target_address, target_handle, op, request); + } else { + ret = ompi_osc_rdma_fetch_and_op_atomic (sync, source, result, datatype, dt_size, peer, target_address, target_handle, op, + request); + } + } else { + ret = ompi_osc_rdma_fetch_and_op_cas (sync, source, result, datatype, dt_size, peer, target_address, target_handle, op, + request); + } + + if (OPAL_LIKELY(OMPI_SUCCESS == ret)) { + if (source) { + source = (const void *) ((intptr_t) source + dt_size); + } + if (result) { + result = (void *) ((intptr_t) result + dt_size); + } + target_address += dt_size; + ++i; + } else if (OPAL_UNLIKELY(OMPI_ERR_NOT_SUPPORTED == ret)) { + return OMPI_ERR_NOT_SUPPORTED; + } + } + + if (NULL != result_convertor) { + /* result buffer is not necessarily contiguous. use the opal datatype engine to + * copy the data over in this case */ + struct iovec iov = {.iov_base = result, .iov_len = request->len}; + uint32_t iov_count = 1; + size_t size = request->len; + + opal_convertor_unpack (result_convertor, &iov, &iov_count, &size); + } + + if (request) { + ompi_osc_rdma_request_complete (request, MPI_SUCCESS); + } + + free (to_free); + + return OMPI_SUCCESS; +} + static inline int ompi_osc_rdma_gacc_contig (ompi_osc_rdma_sync_t *sync, const void *source, int source_count, ompi_datatype_t *source_datatype, void *result, int result_count, - ompi_datatype_t *result_datatype, ompi_osc_rdma_peer_t *peer, uint64_t target_address, + ompi_datatype_t *result_datatype, opal_convertor_t *result_convertor, + ompi_osc_rdma_peer_t *peer, uint64_t target_address, mca_btl_base_registration_handle_t *target_handle, int target_count, ompi_datatype_t *target_datatype, ompi_op_t *op, ompi_osc_rdma_request_t *request) { @@ -193,9 +332,25 @@ char *ptr = NULL; int ret; + request->len = target_datatype->super.size * module->network_amo_max_count; + OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "initiating accumulate on contiguous region of %lu bytes to remote address %" PRIx64 ", sync %p", len, target_address, (void *) sync); + /* if the datatype is small enough (and the count is 1) then try to directly use the hardware to execute + * the atomic operation. this should be safe in all cases as either 1) the user has assured us they will + * never use atomics with count > 1, 2) we have the accumulate lock, or 3) we have an exclusive lock */ + if ((target_datatype->super.size <= 8) && (((unsigned long) target_count) <= module->network_amo_max_count)) { + ret = ompi_osc_rdma_gacc_amo (module, sync, source, result, result_count, result_datatype, result_convertor, + peer, target_address, target_handle, target_count, target_datatype, op, request); + if (OPAL_LIKELY(OMPI_SUCCESS == ret)) { + return OMPI_SUCCESS; + } + OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "network atomics not available. falling back to get-op-put implementation..."); + } + + OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "using get-op-put to execute accumulate with count %d", target_count); + if (&ompi_mpi_op_replace.op != op || OMPI_OSC_RDMA_TYPE_GET_ACC == request->type) { ptr = malloc (len); if (OPAL_UNLIKELY(NULL == ptr)) { @@ -219,8 +374,7 @@ uint32_t iov_count = 1; size_t size = request->len; - opal_convertor_unpack (&request->convertor, &iov, &iov_count, &size); - opal_convertor_cleanup (&request->convertor); + opal_convertor_unpack (result_convertor, &iov, &iov_count, &size); } else { /* copy contiguous data to the result buffer */ ompi_datatype_sndrcv (ptr, len, MPI_BYTE, result, result_count, result_datatype); @@ -264,7 +418,7 @@ struct iovec source_iovec[OMPI_OSC_RDMA_DECODE_MAX], target_iovec[OMPI_OSC_RDMA_DECODE_MAX]; const size_t acc_limit = (mca_osc_rdma_component.buffer_size >> 3); uint32_t source_primitive_count, target_primitive_count; - opal_convertor_t source_convertor, target_convertor; + opal_convertor_t source_convertor, target_convertor, result_convertor; uint32_t source_iov_count, target_iov_count; uint32_t source_iov_index, target_iov_index; ompi_datatype_t *source_primitive, *target_primitive; @@ -281,6 +435,13 @@ request->internal = true; } + if (&ompi_mpi_op_no_op.op == op) { + /* NTH: just zero these out to catch any coding errors (they should be ignored in the no-op case) */ + source_count = 0; + source_datatype = NULL; + source_addr = NULL; + } + request->cleanup = ompi_osc_rdma_gacc_master_cleanup; request->type = result_datatype ? OMPI_OSC_RDMA_TYPE_GET_ACC : OMPI_OSC_RDMA_TYPE_ACC; @@ -303,7 +464,7 @@ } ret = ompi_osc_rdma_gacc_contig (sync, source_addr, source_count, source_datatype, result_addr, - result_count, result_datatype, peer, target_address, + result_count, result_datatype, NULL, peer, target_address, target_handle, target_count, target_datatype, op, request); if (OPAL_LIKELY(OMPI_SUCCESS == ret)) { @@ -357,6 +518,20 @@ if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) { return ret; } + source_iov_count = 0; + } else { + source_iovec[0].iov_len = (size_t) -1; + source_iovec[0].iov_base = NULL; + source_iov_count = 1; + } + + if (result_datatype) { + OBJ_CONSTRUCT(&result_convertor, opal_convertor_t); + ret = opal_convertor_copy_and_prepare_for_recv (ompi_mpi_local_convertor, &result_datatype->super, result_count, result_addr, + 0, &result_convertor); + if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) { + return ret; + } } /* target_datatype can never be NULL */ @@ -372,85 +547,77 @@ target_iov_index = 0; target_iov_count = 0; + source_iov_index = 0; result_position = 0; subreq = NULL; do { - /* decode segments of the source data */ - source_iov_count = OMPI_OSC_RDMA_DECODE_MAX; - source_iov_index = 0; - /* opal_convertor_raw returns done when it has reached the end of the data */ - if (!source_datatype) { - done = true; - source_iovec[0].iov_len = (size_t) -1; - source_iovec[0].iov_base = NULL; - source_iov_count = 1; - } else { - done = opal_convertor_raw (&source_convertor, source_iovec, &source_iov_count, &source_size); - } - - /* loop on the target segments until we have exhaused the decoded source data */ - while (source_iov_index != source_iov_count) { - if (target_iov_index == target_iov_count) { - /* decode segments of the target buffer */ - target_iov_count = OMPI_OSC_RDMA_DECODE_MAX; - target_iov_index = 0; - (void) opal_convertor_raw (&target_convertor, target_iovec, &target_iov_count, &target_size); + /* decode segments of the target buffer */ + target_iov_count = OMPI_OSC_RDMA_DECODE_MAX; + target_iov_index = 0; + done = opal_convertor_raw (&target_convertor, target_iovec, &target_iov_count, &target_size); + + /* loop on the source segments (if any) until we have exhaused the decoded target data */ + while (target_iov_index != target_iov_count) { + if (source_iov_count == source_iov_index) { + /* decode segments of the source data */ + source_iov_count = OMPI_OSC_RDMA_DECODE_MAX; + source_iov_index = 0; + (void) opal_convertor_raw (&source_convertor, source_iovec, &source_iov_count, &source_size); } /* we already checked that the target was large enough. this should be impossible */ assert (0 != target_iov_count); /* determine how much to put in this operation */ - acc_len = min(target_iovec[target_iov_index].iov_len, source_iovec[source_iov_index].iov_len); - acc_len = min((size_t) acc_len, acc_limit); - - /* execute the get */ - if (!subreq) { - OMPI_OSC_RDMA_REQUEST_ALLOC(module, peer, subreq); - subreq->internal = true; - subreq->parent_request = request; - (void) OPAL_THREAD_ADD_FETCH32 (&request->outstanding_requests, 1); - } - - if (result_datatype) { - /* prepare a convertor for this part of the result */ - opal_convertor_copy_and_prepare_for_recv (ompi_mpi_local_convertor, &result_datatype->super, result_count, - result_addr, 0, &subreq->convertor); - opal_convertor_set_position (&subreq->convertor, &result_position); - subreq->type = OMPI_OSC_RDMA_TYPE_GET_ACC; + if (source_count) { + acc_len = min(min(target_iovec[target_iov_index].iov_len, source_iovec[source_iov_index].iov_len), acc_limit); } else { - subreq->type = OMPI_OSC_RDMA_TYPE_ACC; + acc_len = min(target_iovec[target_iov_index].iov_len, acc_limit); } - ret = ompi_osc_rdma_gacc_contig (sync, source_iovec[source_iov_index].iov_base, acc_len / target_primitive->super.size, - target_primitive, NULL, 0, NULL, peer, - (uint64_t) (intptr_t) target_iovec[target_iov_index].iov_base, target_handle, - acc_len / target_primitive->super.size, target_primitive, op, subreq); - if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) { - if (OPAL_UNLIKELY(OMPI_ERR_OUT_OF_RESOURCE != ret)) { - OMPI_OSC_RDMA_REQUEST_RETURN(subreq); - (void) OPAL_THREAD_ADD_FETCH32 (&request->outstanding_requests, -1); - /* something bad happened. need to figure out how to handle these errors */ - return ret; + if (0 != acc_len) { + /* execute the get-accumulate */ + if (!subreq) { + OMPI_OSC_RDMA_REQUEST_ALLOC(module, peer, subreq); + subreq->internal = true; + subreq->parent_request = request; + subreq->type = result_datatype ? OMPI_OSC_RDMA_TYPE_GET_ACC : OMPI_OSC_RDMA_TYPE_ACC; + (void) OPAL_THREAD_ADD_FETCH32 (&request->outstanding_requests, 1); } - /* progress and try again */ - ompi_osc_rdma_progress (module); - continue; + ret = ompi_osc_rdma_gacc_contig (sync, source_iovec[source_iov_index].iov_base, acc_len / target_primitive->super.size, + target_primitive, NULL, 0, NULL, result_datatype ? &result_convertor : NULL, peer, + (uint64_t) (intptr_t) target_iovec[target_iov_index].iov_base, target_handle, + acc_len / target_primitive->super.size, target_primitive, op, subreq); + if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) { + if (OPAL_UNLIKELY(OMPI_ERR_OUT_OF_RESOURCE != ret)) { + OMPI_OSC_RDMA_REQUEST_RETURN(subreq); + (void) OPAL_THREAD_ADD_FETCH32 (&request->outstanding_requests, -1); + /* something bad happened. need to figure out how to handle these errors */ + return ret; + } + + /* progress and try again */ + ompi_osc_rdma_progress (module); + continue; + } } subreq = NULL; /* adjust io vectors */ target_iovec[target_iov_index].iov_len -= acc_len; - source_iovec[source_iov_index].iov_len -= acc_len; target_iovec[target_iov_index].iov_base = (void *)((intptr_t) target_iovec[target_iov_index].iov_base + acc_len); - source_iovec[source_iov_index].iov_base = (void *)((intptr_t) source_iovec[source_iov_index].iov_base + acc_len); + target_iov_index += (0 == target_iovec[target_iov_index].iov_len); + result_position += acc_len; - source_iov_index += !source_datatype || (0 == source_iovec[source_iov_index].iov_len); - target_iov_index += (0 == target_iovec[target_iov_index].iov_len); + if (source_datatype) { + source_iov_index += (0 == source_iovec[source_iov_index].iov_len); + source_iovec[source_iov_index].iov_len -= acc_len; + source_iovec[source_iov_index].iov_base = (void *)((intptr_t) source_iovec[source_iov_index].iov_base + acc_len); + } } } while (!done); @@ -462,6 +629,11 @@ OBJ_DESTRUCT(&source_convertor); } + if (result_datatype) { + opal_convertor_cleanup (&result_convertor); + OBJ_DESTRUCT(&result_convertor); + } + OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "finished scheduling rdma on non-contiguous datatype(s)"); opal_convertor_cleanup (&target_convertor); @@ -478,7 +650,7 @@ ompi_osc_rdma_module_t *module = sync->module; const size_t size = datatype->super.size; int64_t compare, source; - int ret, flags; + int flags, ret; if (8 != size && !(4 == size && (MCA_BTL_ATOMIC_SUPPORTS_32BIT & module->selected_btl->btl_flags))) { return OMPI_ERR_NOT_SUPPORTED; @@ -500,172 +672,6 @@ return ret; } -static int ompi_osc_rdma_op_mapping[OMPI_OP_NUM_OF_TYPES + 1] = { - [OMPI_OP_MAX] = MCA_BTL_ATOMIC_MAX, - [OMPI_OP_MIN] = MCA_BTL_ATOMIC_MIN, - [OMPI_OP_SUM] = MCA_BTL_ATOMIC_ADD, - [OMPI_OP_BAND] = MCA_BTL_ATOMIC_AND, - [OMPI_OP_BOR] = MCA_BTL_ATOMIC_OR, - [OMPI_OP_BXOR] = MCA_BTL_ATOMIC_XOR, - [OMPI_OP_LAND] = MCA_BTL_ATOMIC_LAND, - [OMPI_OP_LOR] = MCA_BTL_ATOMIC_LOR, - [OMPI_OP_LXOR] = MCA_BTL_ATOMIC_LXOR, - [OMPI_OP_REPLACE] = MCA_BTL_ATOMIC_SWAP, -}; - -static int ompi_osc_rdma_fetch_and_op_atomic (ompi_osc_rdma_sync_t *sync, const void *origin_addr, void *result_addr, ompi_datatype_t *dt, - ptrdiff_t extent, ompi_osc_rdma_peer_t *peer, uint64_t target_address, - mca_btl_base_registration_handle_t *target_handle, ompi_op_t *op, ompi_osc_rdma_request_t *req, - bool lock_acquired) -{ - ompi_osc_rdma_module_t *module = sync->module; - int32_t atomic_flags = module->selected_btl->btl_atomic_flags; - int ret, btl_op, flags; - int64_t origin; - - if ((8 != extent && !((MCA_BTL_ATOMIC_SUPPORTS_32BIT & atomic_flags) && 4 == extent)) || - (!(OMPI_DATATYPE_FLAG_DATA_INT & dt->super.flags) && !(MCA_BTL_ATOMIC_SUPPORTS_FLOAT & atomic_flags)) || - !ompi_op_is_intrinsic (op) || (0 == ompi_osc_rdma_op_mapping[op->op_type])) { - return OMPI_ERR_NOT_SUPPORTED; - } - - btl_op = ompi_osc_rdma_op_mapping[op->op_type]; - if (0 == btl_op) { - return OMPI_ERR_NOT_SUPPORTED; - } - - flags = (4 == extent) ? MCA_BTL_ATOMIC_FLAG_32BIT : 0; - if (OMPI_DATATYPE_FLAG_DATA_FLOAT & dt->super.flags) { - flags |= MCA_BTL_ATOMIC_FLAG_FLOAT; - } - - OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "initiating fetch-and-op using %d-bit btl atomics. origin: 0x%" PRIx64, - (4 == extent) ? 32 : 64, *((int64_t *) origin_addr)); - - origin = (8 == extent) ? ((int64_t *) origin_addr)[0] : ((int32_t *) origin_addr)[0]; - - ret = ompi_osc_rdma_btl_fop (module, peer->data_endpoint, target_address, target_handle, btl_op, origin, flags, - result_addr, true, NULL, NULL, NULL); - if (OPAL_SUCCESS == ret) { - /* done. release the lock */ - ompi_osc_rdma_peer_accumulate_cleanup (module, peer, lock_acquired); - - if (req) { - ompi_osc_rdma_request_complete (req, MPI_SUCCESS); - } - } - - return ret; -} - -static int ompi_osc_rdma_fetch_and_op_cas (ompi_osc_rdma_sync_t *sync, const void *origin_addr, void *result_addr, ompi_datatype_t *dt, - ptrdiff_t extent, ompi_osc_rdma_peer_t *peer, uint64_t target_address, - mca_btl_base_registration_handle_t *target_handle, ompi_op_t *op, ompi_osc_rdma_request_t *req, - bool lock_acquired) -{ - ompi_osc_rdma_module_t *module = sync->module; - uint64_t address, offset, new_value, old_value; - int ret; - - if (extent > 8) { - return OMPI_ERR_NOT_SUPPORTED; - } - - /* align the address. the user should not call with an unaligned address so don't need to range check here */ - address = target_address & ~7; - offset = target_address & ~address; - - OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "initiating fetch-and-op using compare-and-swap"); - - ret = ompi_osc_get_data_blocking (module, peer->data_endpoint, address, target_handle, &old_value, 8); - if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) { - return ret; - } - - /* store the destination in the temporary buffer */ - do { - new_value = old_value; - - if (&ompi_mpi_op_replace.op == op) { - memcpy ((void *)((intptr_t) &new_value + offset), origin_addr, extent); - } else if (&ompi_mpi_op_no_op.op != op) { - ompi_op_reduce (op, (void *) origin_addr, (void*)((intptr_t) &new_value + offset), 1, dt); - } - - ret = ompi_osc_rdma_btl_cswap (module, peer->data_endpoint, address, target_handle, - old_value, new_value, 0, (int64_t*)&new_value); - if (OPAL_SUCCESS != ret || new_value == old_value) { - break; - } - - old_value = new_value; - } while (1); - - if (result_addr) { - memcpy (result_addr, (void *)((intptr_t) &new_value + offset), extent); - } - - if (OPAL_SUCCESS == ret) { - /* done. release the lock */ - ompi_osc_rdma_peer_accumulate_cleanup (module, peer, lock_acquired); - - if (req) { - ompi_osc_rdma_request_complete (req, MPI_SUCCESS); - } - } - - return ret; -} - -static int ompi_osc_rdma_acc_single_atomic (ompi_osc_rdma_sync_t *sync, const void *origin_addr, ompi_datatype_t *dt, ptrdiff_t extent, - ompi_osc_rdma_peer_t *peer, uint64_t target_address, mca_btl_base_registration_handle_t *target_handle, - ompi_op_t *op, ompi_osc_rdma_request_t *req, bool lock_acquired) -{ - ompi_osc_rdma_module_t *module = sync->module; - int32_t atomic_flags = module->selected_btl->btl_atomic_flags; - int ret, btl_op, flags; - int64_t origin; - - if (!(module->selected_btl->btl_flags & MCA_BTL_FLAGS_ATOMIC_OPS)) { - /* btl put atomics not supported or disabled. fall back on fetch-and-op */ - return ompi_osc_rdma_fetch_and_op_atomic (sync, origin_addr, NULL, dt, extent, peer, target_address, target_handle, - op, req, lock_acquired); - } - - if ((8 != extent && !((MCA_BTL_ATOMIC_SUPPORTS_32BIT & atomic_flags) && 4 == extent)) || - (!(OMPI_DATATYPE_FLAG_DATA_INT & dt->super.flags) && !(MCA_BTL_ATOMIC_SUPPORTS_FLOAT & atomic_flags)) || - !ompi_op_is_intrinsic (op) || (0 == ompi_osc_rdma_op_mapping[op->op_type])) { - return OMPI_ERR_NOT_SUPPORTED; - } - - origin = (8 == extent) ? ((uint64_t *) origin_addr)[0] : ((uint32_t *) origin_addr)[0]; - - /* set the appropriate flags for this atomic */ - flags = (4 == extent) ? MCA_BTL_ATOMIC_FLAG_32BIT : 0; - if (OMPI_DATATYPE_FLAG_DATA_FLOAT & dt->super.flags) { - flags |= MCA_BTL_ATOMIC_FLAG_FLOAT; - } - - btl_op = ompi_osc_rdma_op_mapping[op->op_type]; - - OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "initiating accumulate using 64-bit btl atomics. origin: 0x%" PRIx64, - *((int64_t *) origin_addr)); - - /* if we locked the peer its best to wait for completion before returning */ - ret = ompi_osc_rdma_btl_op (module, peer->data_endpoint, target_address, target_handle, btl_op, origin, - flags, true, NULL, NULL, NULL); - if (OPAL_SUCCESS == ret) { - /* done. release the lock */ - ompi_osc_rdma_peer_accumulate_cleanup (module, peer, lock_acquired); - - if (req) { - ompi_osc_rdma_request_complete (req, MPI_SUCCESS); - } - } - - return ret; -} - /** * ompi_osc_rdma_cas_get_complete: * Note: This function will not work as is in a heterogeneous environment. @@ -844,40 +850,50 @@ static inline -int ompi_osc_rdma_rget_accumulate_internal (ompi_osc_rdma_sync_t *sync, const void *origin_addr, int origin_count, +int ompi_osc_rdma_rget_accumulate_internal (ompi_win_t *win, const void *origin_addr, int origin_count, ompi_datatype_t *origin_datatype, void *result_addr, int result_count, - ompi_datatype_t *result_datatype, ompi_osc_rdma_peer_t *peer, - int target_rank, MPI_Aint target_disp, int target_count, - ompi_datatype_t *target_datatype, ompi_op_t *op, - ompi_osc_rdma_request_t *request) + ompi_datatype_t *result_datatype, int target_rank, MPI_Aint target_disp, + int target_count, ompi_datatype_t *target_datatype, ompi_op_t *op, + ompi_request_t **request_out) { - ompi_osc_rdma_module_t *module = sync->module; + ompi_osc_rdma_module_t *module = GET_MODULE(win); mca_btl_base_registration_handle_t *target_handle; uint64_t target_address; - ptrdiff_t lb, origin_extent, target_span; + ptrdiff_t target_lb, target_span; + ompi_osc_rdma_request_t *rdma_request = NULL; bool lock_acquired = false; + ompi_osc_rdma_sync_t *sync; + ompi_osc_rdma_peer_t *peer; int ret; + sync = ompi_osc_rdma_module_sync_lookup (module, target_rank, &peer); + if (OPAL_UNLIKELY(NULL == sync)) { + return OMPI_ERR_RMA_SYNC; + } + + if (request_out) { + OMPI_OSC_RDMA_REQUEST_ALLOC(module, peer, rdma_request); + *request_out = &rdma_request->super; + } + /* short-circuit case. note that origin_count may be 0 if op is MPI_NO_OP */ if ((result_addr && 0 == result_count) || 0 == target_count) { - if (request) { - ompi_osc_rdma_request_complete (request, MPI_SUCCESS); + if (rdma_request) { + ompi_osc_rdma_request_complete (rdma_request, MPI_SUCCESS); } return OMPI_SUCCESS; } - target_span = opal_datatype_span(&target_datatype->super, target_count, &lb); + target_span = opal_datatype_span(&target_datatype->super, target_count, &target_lb); // a buffer defined by (buf, count, dt) // will have data starting at buf+offset and ending len bytes later: - ret = osc_rdma_get_remote_segment (module, peer, target_disp, target_span+lb, &target_address, &target_handle); + ret = osc_rdma_get_remote_segment (module, peer, target_disp, target_span+target_lb, &target_address, &target_handle); if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) { return ret; } - (void) ompi_datatype_get_extent (origin_datatype, &lb, &origin_extent); - /* to ensure order wait until the previous accumulate completes */ while (!ompi_osc_rdma_peer_test_set_flag (peer, OMPI_OSC_RDMA_PEER_ACCUMULATING)) { ompi_osc_rdma_progress (module); @@ -889,40 +905,6 @@ (void) ompi_osc_rdma_lock_acquire_exclusive (module, peer, offsetof (ompi_osc_rdma_state_t, accumulate_lock)); } - /* accumulate in (shared) memory if there is only a single node - * OR if we have an exclusive lock - * OR if other processes won't try to use the network either */ - bool use_shared_mem = module->single_node || - (ompi_osc_rdma_peer_local_base (peer) && - (ompi_osc_rdma_peer_is_exclusive (peer) || - !module->acc_single_intrinsic)); - - /* if the datatype is small enough (and the count is 1) then try to directly use the hardware to execute - * the atomic operation. this should be safe in all cases as either 1) the user has assured us they will - * never use atomics with count > 1, 2) we have the accumulate lock, or 3) we have an exclusive lock. - * avoid using the NIC if the operation can be done directly in shared memory. */ - if (origin_extent <= 8 && 1 == origin_count && !use_shared_mem) { - if (module->acc_use_amo && ompi_datatype_is_predefined (origin_datatype)) { - if (NULL == result_addr) { - ret = ompi_osc_rdma_acc_single_atomic (sync, origin_addr, origin_datatype, origin_extent, peer, target_address, - target_handle, op, request, lock_acquired); - } else { - ret = ompi_osc_rdma_fetch_and_op_atomic (sync, origin_addr, result_addr, origin_datatype, origin_extent, peer, target_address, - target_handle, op, request, lock_acquired); - } - - if (OMPI_SUCCESS == ret) { - return OMPI_SUCCESS; - } - } - - ret = ompi_osc_rdma_fetch_and_op_cas (sync, origin_addr, result_addr, origin_datatype, origin_extent, peer, target_address, - target_handle, op, request, lock_acquired); - if (OMPI_SUCCESS == ret) { - return OMPI_SUCCESS; - } - } - /* could not use network atomics. acquire the lock if needed and continue. */ if (!lock_acquired && !ompi_osc_rdma_peer_is_exclusive (peer)) { lock_acquired = true; @@ -933,16 +915,20 @@ /* local/self optimization */ ret = ompi_osc_rdma_gacc_local (origin_addr, origin_count, origin_datatype, result_addr, result_count, result_datatype, peer, target_address, target_handle, target_count, - target_datatype, op, module, request, lock_acquired); + target_datatype, op, module, rdma_request, lock_acquired); } else { /* do not need to pass the lock acquired flag to this function. the value of the flag can be obtained * just by calling ompi_osc_rdma_peer_is_exclusive() in this case. */ ret = ompi_osc_rdma_gacc_master (sync, origin_addr, origin_count, origin_datatype, result_addr, result_count, result_datatype, peer, target_address, target_handle, target_count, - target_datatype, op, request); + target_datatype, op, rdma_request); } if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) { + if (request_out) { + *request_out = &ompi_request_null.request; + OMPI_OSC_RDMA_REQUEST_RETURN(rdma_request); + } ompi_osc_rdma_peer_accumulate_cleanup (module, peer, lock_acquired); } @@ -954,24 +940,15 @@ int target_rank, MPI_Aint target_disp, int target_count, ompi_datatype_t *target_datatype, ompi_op_t *op, ompi_win_t *win) { - ompi_osc_rdma_module_t *module = GET_MODULE(win); - ompi_osc_rdma_peer_t *peer; - ompi_osc_rdma_sync_t *sync; - OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "get_acc: 0x%lx, %d, %s, 0x%lx, %d, %s, %d, 0x%lx, %d, %s, %s, %s", (unsigned long) origin_addr, origin_count, origin_datatype->name, (unsigned long) result_addr, result_count, result_datatype->name, target_rank, (unsigned long) target_disp, target_count, target_datatype->name, op->o_name, win->w_name); - sync = ompi_osc_rdma_module_sync_lookup (module, target_rank, &peer); - if (OPAL_UNLIKELY(NULL == sync)) { - return OMPI_ERR_RMA_SYNC; - } - - return ompi_osc_rdma_rget_accumulate_internal (sync, origin_addr, origin_count, origin_datatype, + return ompi_osc_rdma_rget_accumulate_internal (win, origin_addr, origin_count, origin_datatype, result_addr, result_count, result_datatype, - peer, target_rank, target_disp, target_count, + target_rank, target_disp, target_count, target_datatype, op, NULL); } @@ -981,91 +958,40 @@ int target_rank, MPI_Aint target_disp, int target_count, ompi_datatype_t *target_datatype, ompi_op_t *op, ompi_win_t *win, ompi_request_t **request) { - ompi_osc_rdma_module_t *module = GET_MODULE(win); - ompi_osc_rdma_peer_t *peer; - ompi_osc_rdma_request_t *rdma_request; - ompi_osc_rdma_sync_t *sync; - int ret; - OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "rget_acc: 0x%lx, %d, %s, 0x%lx, %d, %s, %d, 0x%lx, %d, %s, %s, %s", (unsigned long) origin_addr, origin_count, origin_datatype->name, (unsigned long) result_addr, result_count, result_datatype->name, target_rank, (unsigned long) target_disp, target_count, target_datatype->name, op->o_name, win->w_name); - sync = ompi_osc_rdma_module_sync_lookup (module, target_rank, &peer); - if (OPAL_UNLIKELY(NULL == sync)) { - return OMPI_ERR_RMA_SYNC; - } - - OMPI_OSC_RDMA_REQUEST_ALLOC(module, peer, rdma_request); - - ret = ompi_osc_rdma_rget_accumulate_internal (sync, origin_addr, origin_count, origin_datatype, result_addr, - result_count, result_datatype, peer, target_rank, target_disp, - target_count, target_datatype, op, rdma_request); - if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) { - OMPI_OSC_RDMA_REQUEST_RETURN(rdma_request); - return ret; - } - - *request = &rdma_request->super; - - return OMPI_SUCCESS; + return ompi_osc_rdma_rget_accumulate_internal (win, origin_addr, origin_count, origin_datatype, result_addr, + result_count, result_datatype, target_rank, target_disp, + target_count, target_datatype, op, request); } int ompi_osc_rdma_raccumulate (const void *origin_addr, int origin_count, ompi_datatype_t *origin_datatype, int target_rank, ptrdiff_t target_disp, int target_count, ompi_datatype_t *target_datatype, ompi_op_t *op, ompi_win_t *win, ompi_request_t **request) { - ompi_osc_rdma_module_t *module = GET_MODULE(win); - ompi_osc_rdma_peer_t *peer; - ompi_osc_rdma_request_t *rdma_request; - ompi_osc_rdma_sync_t *sync; - int ret; - OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "racc: 0x%lx, %d, %s, %d, 0x%lx, %d, %s, %s, %s", (unsigned long) origin_addr, origin_count, origin_datatype->name, target_rank, (unsigned long) target_disp, target_count, target_datatype->name, op->o_name, win->w_name); - sync = ompi_osc_rdma_module_sync_lookup (module, target_rank, &peer); - if (OPAL_UNLIKELY(NULL == sync)) { - return OMPI_ERR_RMA_SYNC; - } - - OMPI_OSC_RDMA_REQUEST_ALLOC(module, peer, rdma_request); - - ret = ompi_osc_rdma_rget_accumulate_internal (sync, origin_addr, origin_count, origin_datatype, NULL, 0, - NULL, peer, target_rank, target_disp, target_count, target_datatype, - op, rdma_request); - if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) { - OMPI_OSC_RDMA_REQUEST_RETURN(rdma_request); - return ret; - } - - *request = &rdma_request->super; - - return OMPI_SUCCESS; + return ompi_osc_rdma_rget_accumulate_internal (win, origin_addr, origin_count, origin_datatype, NULL, 0, + NULL, target_rank, target_disp, target_count, target_datatype, + op, request); } int ompi_osc_rdma_accumulate (const void *origin_addr, int origin_count, ompi_datatype_t *origin_datatype, int target_rank, ptrdiff_t target_disp, int target_count, ompi_datatype_t *target_datatype, ompi_op_t *op, ompi_win_t *win) { - ompi_osc_rdma_module_t *module = GET_MODULE(win); - ompi_osc_rdma_peer_t *peer; - ompi_osc_rdma_sync_t *sync; - OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "acc: 0x%lx, %d, %s, %d, 0x%lx, %d, %s, %s, %s", (unsigned long) origin_addr, origin_count, origin_datatype->name, target_rank, (unsigned long) target_disp, target_count, target_datatype->name, op->o_name, win->w_name); - sync = ompi_osc_rdma_module_sync_lookup (module, target_rank, &peer); - if (OPAL_UNLIKELY(NULL == sync)) { - return OMPI_ERR_RMA_SYNC; - } - - return ompi_osc_rdma_rget_accumulate_internal (sync, origin_addr, origin_count, origin_datatype, NULL, 0, - NULL, peer, target_rank, target_disp, target_count, target_datatype, + return ompi_osc_rdma_rget_accumulate_internal (win, origin_addr, origin_count, origin_datatype, NULL, 0, + NULL, target_rank, target_disp, target_count, target_datatype, op, NULL); } @@ -1073,18 +999,9 @@ int ompi_osc_rdma_fetch_and_op (const void *origin_addr, void *result_addr, ompi_datatype_t *dt, int target_rank, ptrdiff_t target_disp, ompi_op_t *op, ompi_win_t *win) { - ompi_osc_rdma_module_t *module = GET_MODULE(win); - ompi_osc_rdma_peer_t *peer; - ompi_osc_rdma_sync_t *sync; - OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "fop: %p, %s, %d, %lu, %s, %s", result_addr, dt->name, target_rank, (unsigned long) target_disp, op->o_name, win->w_name); - sync = ompi_osc_rdma_module_sync_lookup (module, target_rank, &peer); - if (OPAL_UNLIKELY(NULL == sync)) { - return OMPI_ERR_RMA_SYNC; - } - - return ompi_osc_rdma_rget_accumulate_internal (sync, origin_addr, 1, dt, result_addr, 1, dt, peer, + return ompi_osc_rdma_rget_accumulate_internal (win, origin_addr, 1, dt, result_addr, 1, dt, target_rank, target_disp, 1, dt, op, NULL); } diff -Nru openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_active_target.c openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_active_target.c --- openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_active_target.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_active_target.c 2022-05-29 09:51:40.000000000 +0000 @@ -454,6 +454,11 @@ OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "complete: %s", win->w_name); OPAL_THREAD_LOCK(&module->lock); + if (0 == sync->num_peers) { + OPAL_THREAD_UNLOCK(&module->lock); + return OMPI_SUCCESS; + } + if (OMPI_OSC_RDMA_SYNC_TYPE_PSCW != sync->type) { OPAL_THREAD_UNLOCK(&module->lock); return OMPI_ERR_RMA_SYNC; diff -Nru openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_comm.c openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_comm.c --- openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_comm.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_comm.c 2022-05-29 09:51:40.000000000 +0000 @@ -391,8 +391,10 @@ ompi_osc_rdma_request_t *request = request = (ompi_osc_rdma_request_t *) ((intptr_t) context & ~1); sync = request->sync; - /* NTH -- TODO: better error handling */ - ompi_osc_rdma_request_complete (request, status); + if (0 == OPAL_THREAD_ADD_FETCH32 (&request->outstanding_requests, -1)) { + /* NTH -- TODO: better error handling */ + ompi_osc_rdma_request_complete (request, status); + } } OSC_RDMA_VERBOSE(status ? MCA_BASE_VERBOSE_ERROR : MCA_BASE_VERBOSE_TRACE, "btl put complete on sync %p. local " @@ -420,8 +422,10 @@ ompi_osc_rdma_request_t *request = request = (ompi_osc_rdma_request_t *) ((intptr_t) context & ~1); module = request->module; - /* NTH -- TODO: better error handling */ - ompi_osc_rdma_request_complete (request, status); + if (0 == OPAL_THREAD_ADD_FETCH32 (&request->outstanding_requests, -1)) { + /* NTH -- TODO: better error handling */ + ompi_osc_rdma_request_complete (request, status); + } } OSC_RDMA_VERBOSE(status ? MCA_BASE_VERBOSE_ERROR : MCA_BASE_VERBOSE_TRACE, "btl put complete on module %p. local " diff -Nru openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_component.c openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_component.c --- openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -20,6 +20,9 @@ * Copyright (c) 2018 Cisco Systems, Inc. All rights reserved * Copyright (c) 2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2020-2021 Google, LLC. All rights reserved. + * Copyright (c) 2019-2021 Triad National Security, LLC. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -45,6 +48,7 @@ #include "opal/util/argv.h" #include "opal/util/printf.h" #include "opal/align.h" +#include "opal/util/sys_limits.h" #if OPAL_CUDA_SUPPORT #include "opal/datatype/opal_datatype_cuda.h" #endif /* OPAL_CUDA_SUPPORT */ @@ -217,11 +221,11 @@ MCA_BASE_VAR_SCOPE_LOCAL, &mca_osc_rdma_component.buffer_size); free(description_str); - mca_osc_rdma_component.max_attach = 32; + mca_osc_rdma_component.max_attach = 64; asprintf(&description_str, "Maximum number of buffers that can be attached to a dynamic window. " "Keep in mind that each attached buffer will use a potentially limited " "resource (default: %d)", mca_osc_rdma_component.max_attach); - (void) mca_base_component_var_register (&mca_osc_rdma_component.super.osc_version, "max_attach", description_str, + (void) mca_base_component_var_register (&mca_osc_rdma_component.super.osc_version, "max_attach", description_str, MCA_BASE_VAR_TYPE_UNSIGNED_INT, NULL, 0, 0, OPAL_INFO_LVL_3, MCA_BASE_VAR_SCOPE_GROUP, &mca_osc_rdma_component.max_attach); free(description_str); @@ -274,6 +278,16 @@ MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, OPAL_INFO_LVL_3, MCA_BASE_VAR_SCOPE_READONLY, &mca_osc_rdma_component.backing_directory); + mca_osc_rdma_component.network_amo_max_count = 32; + (void) mca_base_component_var_register (&mca_osc_rdma_component.super.osc_version, "network_max_amo", + "Maximum predefined datatype count for which network atomic operations " + "will be used. Accumulate operations larger than this count will use " + "a get/op/put protocol. The optimal value is dictated by the network " + "injection rate for the interconnect. Generally a smaller number will " + "yield better larger accumulate performance. (default: 32)", + MCA_BASE_VAR_TYPE_UNSIGNED_LONG, NULL, 0, 0, OPAL_INFO_LVL_3, + MCA_BASE_VAR_SCOPE_LOCAL, &mca_osc_rdma_component.network_amo_max_count); + /* register performance variables */ (void) mca_base_component_pvar_register (&mca_osc_rdma_component.super.osc_version, "put_retry_count", @@ -549,6 +563,7 @@ ompi_osc_rdma_region_t *state_region; struct _local_data *temp; char *data_file; + int page_size = opal_getpagesize(); shared_comm = module->shared_comm; @@ -573,6 +588,12 @@ module->state_offset = state_base = local_rank_array_size + module->region_size; data_base = state_base + leader_peer_data_size + module->state_size * local_size; + /* ensure proper alignment */ + if (MPI_WIN_FLAVOR_ALLOCATE == module->flavor) { + data_base += OPAL_ALIGN_PAD_AMOUNT(data_base, page_size); + size += OPAL_ALIGN_PAD_AMOUNT(size, page_size); + } + do { temp = calloc (local_size, sizeof (temp[0])); if (NULL == temp) { @@ -641,7 +662,12 @@ } if (size && MPI_WIN_FLAVOR_ALLOCATE == module->flavor) { - *base = (void *)((intptr_t) module->segment_base + my_base_offset); + char *baseptr = (char *)((intptr_t) module->segment_base + my_base_offset); + *base = (void *)baseptr; + // touch each page to force allocation on local NUMA node + for (size_t i = 0; i < size; i += page_size) { + baseptr[i] = 0; + } } module->rank_array = (ompi_osc_rdma_rank_data_t *) module->segment_base; @@ -718,7 +744,7 @@ peer->state_endpoint = NULL; } else { /* use my endpoint handle to modify the peer's state */ - if (module->selected_btl->btl_register_mem) { + if (module->selected_btl->btl_register_mem && local_size != global_size) { peer->state_handle = (mca_btl_base_registration_handle_t *) state_region->btl_handle_data; } peer->state = (osc_rdma_counter_t) ((uintptr_t) state_region->base + state_base + module->state_size * i); @@ -798,10 +824,39 @@ return -1; } +/** + * @brief ensure that all local procs are added to the bml + * + * The sm btl requires that all local procs be added to work correctly. If pml/ob1 + * was not selected then we can't rely on this property. Since osc/rdma may use + * btl/sm we need to ensure that btl/sm is set up correctly. This function will + * only (potentially) call add_procs on local procs. + */ +static void ompi_osc_rdma_ensure_local_add_procs (void) +{ + size_t nprocs; + ompi_proc_t** procs = ompi_proc_get_allocated (&nprocs); + if (NULL == procs) { + /* weird, this should have caused MPI_Init to fail */ + return; + } + + for (size_t proc_index = 0 ; proc_index < nprocs ; ++proc_index) { + ompi_proc_t *proc = procs[proc_index]; + if (OPAL_PROC_ON_LOCAL_NODE(proc->super.proc_flags)) { + /* this will cause add_proc to get called if it has not already been called */ + (void) mca_bml_base_get_endpoint (proc); + } + } + + free(procs); +} + static int ompi_osc_rdma_query_btls (ompi_communicator_t *comm, struct mca_btl_base_module_t **btl) { struct mca_btl_base_module_t **possible_btls = NULL; int comm_size = ompi_comm_size (comm); + int comm_rank = ompi_comm_rank (comm); int rc = OMPI_SUCCESS, max_btls = 0; unsigned int selected_latency = INT_MAX; struct mca_btl_base_module_t *selected_btl = NULL; @@ -841,10 +896,14 @@ return OMPI_SUCCESS; } - for (int i = 0 ; i < comm_size ; ++i) { - ompi_proc_t *proc = ompi_comm_peer_lookup (comm, i); + /* if osc/rdma gets selected we need to ensure that all local procs have been added */ + ompi_osc_rdma_ensure_local_add_procs (); + + for (int rank = 0 ; rank < comm_size ; ++rank) { + ompi_proc_t *proc = ompi_comm_peer_lookup (comm, rank); mca_bml_base_endpoint_t *endpoint; int num_btls, prev_max; + bool found_btl = false; endpoint = mca_bml_base_get_endpoint (proc); if (NULL == endpoint) { @@ -890,23 +949,30 @@ for (int j = 0 ; j < max_btls ; ++j) { if (endpoint->btl_rdma.bml_btls[i_btl].btl == possible_btls[j]) { ++btl_counts[j]; + found_btl = true; break; } else if (NULL == possible_btls[j]) { possible_btls[j] = endpoint->btl_rdma.bml_btls[i_btl].btl; btl_counts[j] = 1; + found_btl = true; break; } } } } + + /* any non-local rank must have a usable btl */ + if (!found_btl && comm_rank != rank) { + /* no btl = no rdma/atomics */ + rc = OMPI_ERR_UNREACH; + break; + } } if (OMPI_SUCCESS != rc) { free (possible_btls); free (btl_counts); - - /* no btl = no rdma/atomics */ - return OMPI_ERR_NOT_AVAILABLE; + return rc; } for (int i = 0 ; i < max_btls ; ++i) { @@ -980,7 +1046,7 @@ /* store my rank in the length field */ my_data->len = (osc_rdma_size_t) my_rank; - if (module->selected_btl->btl_register_mem) { + if (module->selected_btl->btl_register_mem && module->state_handle) { memcpy (my_data->btl_handle_data, module->state_handle, module->selected_btl->btl_registration_handle_size); } @@ -1149,6 +1215,7 @@ module->locking_mode = mca_osc_rdma_component.locking_mode; module->acc_single_intrinsic = check_config_value_bool ("acc_single_intrinsic", info); module->acc_use_amo = mca_osc_rdma_component.acc_use_amo; + module->network_amo_max_count = mca_osc_rdma_component.network_amo_max_count; module->all_sync.module = module; @@ -1257,8 +1324,8 @@ if (MPI_WIN_FLAVOR_DYNAMIC == flavor) { /* allocate space to store local btl handles for attached regions */ - module->dynamic_handles = (ompi_osc_rdma_handle_t *) calloc (mca_osc_rdma_component.max_attach, - sizeof (module->dynamic_handles[0])); + module->dynamic_handles = (ompi_osc_rdma_handle_t **) calloc (mca_osc_rdma_component.max_attach, + sizeof (module->dynamic_handles[0])); if (NULL == module->dynamic_handles) { ompi_osc_rdma_free (win); return OMPI_ERR_OUT_OF_RESOURCE; diff -Nru openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_dynamic.c openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_dynamic.c --- openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_dynamic.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_dynamic.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,6 +2,7 @@ /* * Copyright (c) 2014-2016 Los Alamos National Security, LLC. All rights * reserved. + * Copyright (c) 2020 Google, LLC. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -16,6 +17,22 @@ #include "opal/util/sys_limits.h" +static void ompi_osc_rdma_handle_init (ompi_osc_rdma_handle_t *rdma_handle) +{ + rdma_handle->btl_handle = NULL; + OBJ_CONSTRUCT(&rdma_handle->attachments, opal_list_t); +} + +static void ompi_osc_rdma_handle_fini (ompi_osc_rdma_handle_t *rdma_handle) +{ + OPAL_LIST_DESTRUCT(&rdma_handle->attachments); +} + +OBJ_CLASS_INSTANCE(ompi_osc_rdma_handle_t, opal_object_t, ompi_osc_rdma_handle_init, + ompi_osc_rdma_handle_fini); + +OBJ_CLASS_INSTANCE(ompi_osc_rdma_attachment_t, opal_list_item_t, NULL, NULL); + /** * ompi_osc_rdma_find_region_containing: * @@ -48,13 +65,16 @@ region_bound = (intptr_t) (region->base + region->len); - OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_DEBUG, "checking memory region %p-%p against %p-%p (index %d) (min_index = %d, max_index = %d)", - (void *) base, (void *) bound, (void *) region->base, (void *)(region->base + region->len), mid_index, - min_index, max_index); + OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_DEBUG, "checking memory region %p-%p against %p-%p (index %d) (min_index = %d, " + "max_index = %d)", (void *) base, (void *) bound, (void *) region->base, + (void *)(region->base + region->len), mid_index, min_index, max_index); if (region->base > base) { - return ompi_osc_rdma_find_region_containing (regions, min_index, mid_index-1, base, bound, region_size, region_index); - } else if (bound <= region_bound) { + return ompi_osc_rdma_find_region_containing (regions, min_index, mid_index-1, base, bound, region_size, + region_index); + } + + if (bound <= region_bound) { if (region_index) { *region_index = mid_index; } @@ -66,24 +86,76 @@ } /* binary search for insertion point */ -static ompi_osc_rdma_region_t *find_insertion_point (ompi_osc_rdma_region_t *regions, int min_index, int max_index, intptr_t base, - size_t region_size, int *region_index) +static ompi_osc_rdma_region_t *find_insertion_point (ompi_osc_rdma_region_t *regions, int min_index, int max_index, + intptr_t base, size_t region_size, int *region_index) { int mid_index = (max_index + min_index) >> 1; ompi_osc_rdma_region_t *region = (ompi_osc_rdma_region_t *)((intptr_t) regions + mid_index * region_size); - OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "find_insertion_point (%d, %d, %lx, %lu)\n", min_index, max_index, base, region_size); + OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "find_insertion_point (%d, %d, %lx, %lu)\n", min_index, max_index, base, + region_size); if (max_index < min_index) { *region_index = min_index; return (ompi_osc_rdma_region_t *)((intptr_t) regions + min_index * region_size); } - if (region->base > base) { + if (region->base > base || (region->base == base && region->len > region_size)) { return find_insertion_point (regions, min_index, mid_index-1, base, region_size, region_index); - } else { - return find_insertion_point (regions, mid_index+1, max_index, base, region_size, region_index); } + + return find_insertion_point (regions, mid_index+1, max_index, base, region_size, region_index); +} + +static bool ompi_osc_rdma_find_conflicting_attachment (ompi_osc_rdma_handle_t *handle, intptr_t base, intptr_t bound) +{ + ompi_osc_rdma_attachment_t *attachment; + + OPAL_LIST_FOREACH(attachment, &handle->attachments, ompi_osc_rdma_attachment_t) { + intptr_t region_bound = attachment->base + attachment->len; + if ((base >= attachment->base && base < region_bound) || + (bound > attachment->base && bound <= region_bound)) { + OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "existing region {%p, %p} overlaps region {%p, %p}", + (void *) attachment->base, (void *) region_bound, (void *) base, (void *) bound); + return true; + } + } + + return false; +} + +static int ompi_osc_rdma_add_attachment (ompi_osc_rdma_handle_t *handle, intptr_t base, size_t len) +{ + ompi_osc_rdma_attachment_t *attachment = OBJ_NEW(ompi_osc_rdma_attachment_t); + assert (NULL != attachment); + + if (ompi_osc_rdma_find_conflicting_attachment(handle, base, base + len)) { + return OMPI_ERR_RMA_ATTACH; + } + + attachment->base = base; + attachment->len = len; + + opal_list_append (&handle->attachments, &attachment->super); + + return OMPI_SUCCESS; +} + +static int ompi_osc_rdma_remove_attachment (ompi_osc_rdma_handle_t *handle, intptr_t base) +{ + ompi_osc_rdma_attachment_t *attachment; + + OPAL_LIST_FOREACH(attachment, &handle->attachments, ompi_osc_rdma_attachment_t) { + OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "checking attachment %p against %p", + (void *) attachment->base, (void *) base); + if (attachment->base == (intptr_t) base) { + opal_list_remove_item (&handle->attachments, &attachment->super); + OBJ_RELEASE(attachment); + return OMPI_SUCCESS; + } + } + + return OMPI_ERR_NOT_FOUND; } int ompi_osc_rdma_attach (struct ompi_win_t *win, void *base, size_t len) @@ -92,12 +164,13 @@ const int my_rank = ompi_comm_rank (module->comm); ompi_osc_rdma_peer_t *my_peer = ompi_osc_rdma_module_peer (module, my_rank); ompi_osc_rdma_region_t *region; + ompi_osc_rdma_handle_t *rdma_region_handle; osc_rdma_counter_t region_count; osc_rdma_counter_t region_id; - void *bound; + intptr_t aligned_base, aligned_bound; intptr_t page_size = opal_getpagesize (); - int region_index; - int ret; + int region_index, ret; + size_t aligned_len; if (module->flavor != MPI_WIN_FLAVOR_DYNAMIC) { return OMPI_ERR_RMA_FLAVOR; @@ -111,78 +184,82 @@ OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "attach: %s, %p, %lu", win->w_name, base, (unsigned long) len); OPAL_THREAD_LOCK(&module->lock); + ompi_osc_rdma_lock_acquire_exclusive (module, my_peer, offsetof (ompi_osc_rdma_state_t, regions_lock)); region_count = module->state->region_count & 0xffffffffL; region_id = module->state->region_count >> 32; if (region_count == mca_osc_rdma_component.max_attach) { OPAL_THREAD_UNLOCK(&module->lock); + OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "attach: could not attach. max attachment count reached."); return OMPI_ERR_RMA_ATTACH; } /* it is wasteful to register less than a page. this may allow the remote side to access more * memory but the MPI standard covers this with calling the calling behavior erroneous */ - bound = (void *)OPAL_ALIGN((intptr_t) base + len, page_size, intptr_t); - base = (void *)((intptr_t) base & ~(page_size - 1)); - len = (size_t)((intptr_t) bound - (intptr_t) base); - - /* see if a matching region already exists */ - region = ompi_osc_rdma_find_region_containing ((ompi_osc_rdma_region_t *) module->state->regions, 0, region_count - 1, (intptr_t) base, - (intptr_t) bound, module->region_size, ®ion_index); + aligned_bound = OPAL_ALIGN((intptr_t) base + len, page_size, intptr_t); + aligned_base = (intptr_t) base & ~(page_size - 1); + aligned_len = (size_t)(aligned_bound - aligned_base); + + /* see if a registered region already exists */ + region = ompi_osc_rdma_find_region_containing ((ompi_osc_rdma_region_t *) module->state->regions, 0, region_count - 1, + aligned_base, aligned_bound, module->region_size, ®ion_index); if (NULL != region) { - ++module->dynamic_handles[region_index].refcnt; + /* validates that the region does not overlap with an existing region even if they are on the same page */ + ret = ompi_osc_rdma_add_attachment (module->dynamic_handles[region_index], (intptr_t) base, len); OPAL_THREAD_UNLOCK(&module->lock); + ompi_osc_rdma_lock_release_exclusive (module, my_peer, offsetof (ompi_osc_rdma_state_t, regions_lock)); /* no need to invalidate remote caches */ - return OMPI_SUCCESS; + return ret; } - /* region is in flux */ - module->state->region_count = -1; - opal_atomic_wmb (); - - ompi_osc_rdma_lock_acquire_exclusive (module, my_peer, offsetof (ompi_osc_rdma_state_t, regions_lock)); - /* do a binary seach for where the region should be inserted */ if (region_count) { - region = find_insertion_point ((ompi_osc_rdma_region_t *) module->state->regions, 0, region_count - 1, (intptr_t) base, - module->region_size, ®ion_index); + region = find_insertion_point ((ompi_osc_rdma_region_t *) module->state->regions, 0, region_count - 1, + (intptr_t) base, module->region_size, ®ion_index); if (region_index < region_count) { - memmove ((void *) ((intptr_t) region + module->region_size), region, (region_count - region_index) * module->region_size); - - if (module->selected_btl->btl_register_mem) { - memmove (module->dynamic_handles + region_index + 1, module->dynamic_handles + region_index, - (region_count - region_index) * sizeof (module->dynamic_handles[0])); - } + memmove ((void *) ((intptr_t) region + module->region_size), region, + (region_count - region_index) * module->region_size); + memmove (module->dynamic_handles + region_index + 1, module->dynamic_handles + region_index, + (region_count - region_index) * sizeof (module->dynamic_handles[0])); } } else { region_index = 0; region = (ompi_osc_rdma_region_t *) module->state->regions; } - region->base = (intptr_t) base; - region->len = len; + region->base = aligned_base; + region->len = aligned_len; + + OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_DEBUG, "attaching dynamic memory region {%p, %p} aligned {%p, %p}, at index %d", + base, (void *) ((intptr_t) base + len), (void *) aligned_base, (void *) aligned_bound, region_index); - OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_DEBUG, "attaching dynamic memory region {%p, %p} at index %d", - base, (void *)((intptr_t) base + len), region_index); + /* add RDMA region handle to track this region */ + rdma_region_handle = OBJ_NEW(ompi_osc_rdma_handle_t); + assert (NULL != rdma_region_handle); if (module->selected_btl->btl_register_mem) { mca_btl_base_registration_handle_t *handle; - ret = ompi_osc_rdma_register (module, MCA_BTL_ENDPOINT_ANY, (void *) region->base, region->len, MCA_BTL_REG_FLAG_ACCESS_ANY, - &handle); + ret = ompi_osc_rdma_register (module, MCA_BTL_ENDPOINT_ANY, (void *) region->base, region->len, + MCA_BTL_REG_FLAG_ACCESS_ANY, &handle); if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) { OPAL_THREAD_UNLOCK(&module->lock); + OBJ_RELEASE(rdma_region_handle); + ompi_osc_rdma_lock_release_exclusive (module, my_peer, offsetof (ompi_osc_rdma_state_t, regions_lock)); return OMPI_ERR_RMA_ATTACH; } memcpy (region->btl_handle_data, handle, module->selected_btl->btl_registration_handle_size); - module->dynamic_handles[region_index].btl_handle = handle; + rdma_region_handle->btl_handle = handle; } else { - module->dynamic_handles[region_index].btl_handle = NULL; + rdma_region_handle->btl_handle = NULL; } - module->dynamic_handles[region_index].refcnt = 1; + ret = ompi_osc_rdma_add_attachment (rdma_region_handle, (intptr_t) base, len); + assert(OMPI_SUCCESS == ret); + module->dynamic_handles[region_index] = rdma_region_handle; #if OPAL_ENABLE_DEBUG for (int i = 0 ; i < region_count + 1 ; ++i) { @@ -193,9 +270,9 @@ } #endif - opal_atomic_mb (); /* the region state has changed */ module->state->region_count = ((region_id + 1) << 32) | (region_count + 1); + opal_atomic_wmb (); ompi_osc_rdma_lock_release_exclusive (module, my_peer, offsetof (ompi_osc_rdma_state_t, regions_lock)); OPAL_THREAD_UNLOCK(&module->lock); @@ -211,6 +288,7 @@ ompi_osc_rdma_module_t *module = GET_MODULE(win); const int my_rank = ompi_comm_rank (module->comm); ompi_osc_rdma_peer_dynamic_t *my_peer = (ompi_osc_rdma_peer_dynamic_t *) ompi_osc_rdma_module_peer (module, my_rank); + ompi_osc_rdma_handle_t *rdma_region_handle; osc_rdma_counter_t region_count, region_id; ompi_osc_rdma_region_t *region; int region_index; @@ -221,50 +299,64 @@ OPAL_THREAD_LOCK(&module->lock); - OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "detach: %s, %p", win->w_name, base); + /* lock the region so it can't change while a peer is reading it */ + ompi_osc_rdma_lock_acquire_exclusive (module, &my_peer->super, offsetof (ompi_osc_rdma_state_t, regions_lock)); /* the upper 4 bytes of the region count are an instance counter */ region_count = module->state->region_count & 0xffffffffL; region_id = module->state->region_count >> 32; - region = ompi_osc_rdma_find_region_containing ((ompi_osc_rdma_region_t *) module->state->regions, 0, - region_count - 1, (intptr_t) base, (intptr_t) base + 1, - module->region_size, ®ion_index); - if (NULL == region) { - OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_INFO, "could not find dynamic memory region starting at %p", base); + /* look up the associated region */ + for (region_index = 0 ; region_index < region_count ; ++region_index) { + rdma_region_handle = module->dynamic_handles[region_index]; + region = (ompi_osc_rdma_region_t *) ((intptr_t) module->state->regions + region_index * module->region_size); + OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_INFO, "checking attachments at index %d {.base=%p, len=%lu} for attachment %p" + ", region handle=%p", region_index, (void *) region->base, + (unsigned long) region->len, base, (void *) rdma_region_handle); + + if (region->base > (intptr_t) base || (region->base + region->len) < (uintptr_t) base) { + continue; + } + + if (OPAL_SUCCESS == ompi_osc_rdma_remove_attachment (rdma_region_handle, (intptr_t) base)) { + break; + } + } + + if (region_index == region_count) { + OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_INFO, "could not find dynamic memory attachment for %p", base); OPAL_THREAD_UNLOCK(&module->lock); - return OMPI_ERROR; + ompi_osc_rdma_lock_release_exclusive (module, &my_peer->super, offsetof (ompi_osc_rdma_state_t, regions_lock)); + return OMPI_ERR_BASE; } - if (--module->dynamic_handles[region_index].refcnt > 0) { + if (!opal_list_is_empty (&rdma_region_handle->attachments)) { + /* another region is referencing this attachment */ OPAL_THREAD_UNLOCK(&module->lock); - OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "detach complete"); + ompi_osc_rdma_lock_release_exclusive (module, &my_peer->super, offsetof (ompi_osc_rdma_state_t, regions_lock)); return OMPI_SUCCESS; } - /* lock the region so it can't change while a peer is reading it */ - ompi_osc_rdma_lock_acquire_exclusive (module, &my_peer->super, offsetof (ompi_osc_rdma_state_t, regions_lock)); - OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_DEBUG, "detaching dynamic memory region {%p, %p} from index %d", base, (void *)((intptr_t) base + region->len), region_index); if (module->selected_btl->btl_register_mem) { - ompi_osc_rdma_deregister (module, module->dynamic_handles[region_index].btl_handle); - - if (region_index < region_count - 1) { - memmove (module->dynamic_handles + region_index, module->dynamic_handles + region_index + 1, - (region_count - region_index - 1) * sizeof (void *)); - } - - memset (module->dynamic_handles + region_count - 1, 0, sizeof (module->dynamic_handles[0])); + ompi_osc_rdma_deregister (module, rdma_region_handle->btl_handle); } if (region_index < region_count - 1) { + size_t end_count = region_count - region_index - 1; + memmove (module->dynamic_handles + region_index, module->dynamic_handles + region_index + 1, + end_count * sizeof (module->dynamic_handles[0])); memmove (region, (void *)((intptr_t) region + module->region_size), - (region_count - region_index - 1) * module->region_size);; + end_count * module->region_size); } + OBJ_RELEASE(rdma_region_handle); + module->dynamic_handles[region_count - 1] = NULL; + module->state->region_count = ((region_id + 1) << 32) | (region_count - 1); + opal_atomic_wmb (); ompi_osc_rdma_lock_release_exclusive (module, &my_peer->super, offsetof (ompi_osc_rdma_state_t, regions_lock)); @@ -368,14 +460,18 @@ ompi_osc_rdma_peer_dynamic_t *dy_peer = (ompi_osc_rdma_peer_dynamic_t *) peer; intptr_t bound = (intptr_t) base + len; ompi_osc_rdma_region_t *regions; - int ret, region_count; + int ret = OMPI_SUCCESS, region_count; OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "locating dynamic memory region matching: {%" PRIx64 ", %" PRIx64 "}" " (len %lu)", base, base + len, (unsigned long) len); + OPAL_THREAD_LOCK(&module->lock); + // Make sure region isn't being touched. + ompi_osc_rdma_lock_acquire_exclusive (module, peer, offsetof (ompi_osc_rdma_state_t, regions_lock)); if (!ompi_osc_rdma_peer_local_state (peer)) { ret = ompi_osc_rdma_refresh_dynamic_region (module, dy_peer); if (OMPI_SUCCESS != ret) { + ompi_osc_rdma_lock_release_exclusive (module, peer, offsetof (ompi_osc_rdma_state_t, regions_lock)); return ret; } @@ -389,9 +485,11 @@ *region = ompi_osc_rdma_find_region_containing (regions, 0, region_count - 1, (intptr_t) base, bound, module->region_size, NULL); if (!*region) { - return OMPI_ERR_RMA_RANGE; + ret = OMPI_ERR_RMA_RANGE; } + OPAL_THREAD_UNLOCK(&module->lock); + ompi_osc_rdma_lock_release_exclusive (module, peer, offsetof (ompi_osc_rdma_state_t, regions_lock)); /* round a matching region */ - return OMPI_SUCCESS; + return ret; } diff -Nru openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma.h openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma.h --- openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma.h 2022-05-29 09:51:40.000000000 +0000 @@ -13,6 +13,9 @@ * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012-2013 Sandia National Laboratories. All rights reserved. * Copyright (c) 2016-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2019 Triad National Security, LLC. All rights + * reserved. + * Copyright (c) 2020-2021 Google, LLC. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -103,6 +106,9 @@ /** directory where to place backing files */ char *backing_directory; + + /** maximum count for network AMO usage */ + unsigned long network_amo_max_count; }; typedef struct ompi_osc_rdma_component_t ompi_osc_rdma_component_t; @@ -157,6 +163,9 @@ /** Local displacement unit. */ int disp_unit; + /** maximum count for network AMO usage */ + unsigned long network_amo_max_count; + /** global leader */ ompi_osc_rdma_peer_t *leader; @@ -248,7 +257,7 @@ /** registration handles for dynamically attached regions. These are not stored * in the state structure as it is entirely local. */ - ompi_osc_rdma_handle_t *dynamic_handles; + ompi_osc_rdma_handle_t **dynamic_handles; /** shared memory segment. this segment holds this node's portion of the rank -> node * mapping array, node communication data (node_comm_info), state for all local ranks, diff -Nru openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_lock.h openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_lock.h --- openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_lock.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_lock.h 2022-05-29 09:51:40.000000000 +0000 @@ -2,6 +2,8 @@ /* * Copyright (c) 2014-2017 Los Alamos National Security, LLC. All rights * reserved. + * Copyright (c) 2019 Triad National Security, LLC. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -45,9 +47,7 @@ pending_op = OBJ_NEW(ompi_osc_rdma_pending_op_t); assert (NULL != pending_op); - if (wait_for_completion) { - OBJ_RETAIN(pending_op); - } else { + if (!wait_for_completion) { /* NTH: need to keep track of pending ops to avoid a potential teardown problem */ pending_op->module = module; (void) opal_atomic_fetch_add_32 (&module->pending_ops, 1); @@ -87,10 +87,10 @@ ret = OMPI_SUCCESS; ompi_osc_rdma_atomic_complete (module->selected_btl, endpoint, pending_op->op_buffer, pending_op->op_frag->handle, (void *) pending_op, NULL, OPAL_SUCCESS); + } else { + /* need to release here because ompi_osc_rdma_atomic_complete was not called */ + OBJ_RELEASE(pending_op); } - - /* need to release here because ompi_osc_rdma_atomic_complet was not called */ - OBJ_RELEASE(pending_op); } else if (wait_for_completion) { while (!pending_op->op_complete) { ompi_osc_rdma_progress (module); @@ -153,7 +153,7 @@ } while (1); if (OPAL_SUCCESS != ret) { - /* need to release here because ompi_osc_rdma_atomic_complet was not called */ + /* need to release here because ompi_osc_rdma_atomic_complete was not called */ OBJ_RELEASE(pending_op); if (OPAL_LIKELY(1 == ret)) { if (cbfunc) { diff -Nru openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_module.c openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_module.c --- openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -14,6 +14,7 @@ * Copyright (c) 2017 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. + * Copyright (c) 2020 Google, LLC. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -79,7 +80,9 @@ int region_count = module->state->region_count & 0xffffffffL; if (NULL != module->dynamic_handles) { for (int i = 0 ; i < region_count ; ++i) { - ompi_osc_rdma_deregister (module, module->dynamic_handles[i].btl_handle); + ompi_osc_rdma_handle_t *region_handle = module->dynamic_handles[i]; + ompi_osc_rdma_deregister (module, region_handle->btl_handle); + OBJ_RELEASE(region_handle); } free (module->dynamic_handles); diff -Nru openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_request.c openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_request.c --- openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_request.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_request.c 2022-05-29 09:51:40.000000000 +0000 @@ -6,6 +6,8 @@ * Copyright (c) 2016 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. + * Copyright (c) 2019 Triad National Security, LLC. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -56,15 +58,7 @@ request->internal = false; request->cleanup = NULL; request->outstanding_requests = 0; - OBJ_CONSTRUCT(&request->convertor, opal_convertor_t); -} - -static void request_destruct(ompi_osc_rdma_request_t *request) -{ - OBJ_DESTRUCT(&request->convertor); } -OBJ_CLASS_INSTANCE(ompi_osc_rdma_request_t, - ompi_request_t, - request_construct, - request_destruct); +OBJ_CLASS_INSTANCE(ompi_osc_rdma_request_t, ompi_request_t, + request_construct, NULL); diff -Nru openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_request.h openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_request.h --- openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_request.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_request.h 2022-05-29 09:51:40.000000000 +0000 @@ -3,6 +3,8 @@ * Copyright (c) 2012 Sandia National Laboratories. All rights reserved. * Copyright (c) 2014-2018 Los Alamos National Security, LLC. All rights * reserved. + * Copyright (c) 2019 Triad National Security, LLC. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -51,8 +53,6 @@ uint64_t target_address; struct ompi_osc_rdma_request_t *parent_request; - /* used for non-contiguous get accumulate operations */ - opal_convertor_t convertor; /** synchronization object */ struct ompi_osc_rdma_sync_t *sync; diff -Nru openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_types.h openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_types.h --- openmpi-4.0.3/ompi/mca/osc/rdma/osc_rdma_types.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/rdma/osc_rdma_types.h 2022-05-29 09:51:40.000000000 +0000 @@ -2,6 +2,7 @@ /* * Copyright (c) 2014-2018 Los Alamos National Security, LLC. All rights * reserved. + * Copyright (c) 2020 Google, LLC. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -22,7 +23,7 @@ #if OPAL_HAVE_ATOMIC_MATH_64 typedef int64_t osc_rdma_base_t; -typedef int64_t osc_rdma_size_t; +typedef uint64_t osc_rdma_size_t; typedef int64_t osc_rdma_counter_t; #define ompi_osc_rdma_counter_add opal_atomic_add_fetch_64 @@ -30,7 +31,7 @@ #else typedef int32_t osc_rdma_base_t; -typedef int32_t osc_rdma_size_t; +typedef uint32_t osc_rdma_size_t; typedef int32_t osc_rdma_counter_t; #define ompi_osc_rdma_counter_add opal_atomic_add_fetch_32 @@ -110,6 +111,21 @@ typedef struct ompi_osc_rdma_region_t ompi_osc_rdma_region_t; /** + * @brief data handle for attached memory region + * + * This structure describes an attached memory region. It is used + * to track the exact parameters passed to MPI_Win_attach to + * validate a new attachment as well as handle detach. + */ +struct ompi_osc_rdma_attachment_t { + opal_list_item_t super; + intptr_t base; + size_t len; +}; +typedef struct ompi_osc_rdma_attachment_t ompi_osc_rdma_attachment_t; +OBJ_CLASS_DECLARATION(ompi_osc_rdma_attachment_t); + +/** * @brief data handle for dynamic memory regions * * This structure holds the btl handle (if one exists) and the @@ -118,12 +134,14 @@ * region associated with a page (or set of pages) has been attached. */ struct ompi_osc_rdma_handle_t { + opal_object_t super; /** btl handle for the memory region */ mca_btl_base_registration_handle_t *btl_handle; - /** number of attaches assocated with this region */ - int refcnt; + /** attached regions associated with this registration */ + opal_list_t attachments; }; typedef struct ompi_osc_rdma_handle_t ompi_osc_rdma_handle_t; +OBJ_CLASS_DECLARATION(ompi_osc_rdma_handle_t); /** * @brief number of state buffers that can be used for storing diff -Nru openmpi-4.0.3/ompi/mca/osc/sm/Makefile.in openmpi-4.1.4/ompi/mca/osc/sm/Makefile.in --- openmpi-4.0.3/ompi/mca/osc/sm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/sm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -646,6 +659,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1466,6 +1482,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1498,9 +1518,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1521,6 +1550,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1605,9 +1635,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1668,6 +1695,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1681,6 +1711,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/osc/ucx/Makefile.in openmpi-4.1.4/ompi/mca/osc/ucx/Makefile.in --- openmpi-4.0.3/ompi/mca/osc/ucx/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/ucx/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -651,6 +664,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1471,6 +1487,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1503,9 +1523,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1526,6 +1555,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1610,9 +1640,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1673,6 +1700,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1686,6 +1716,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/osc/ucx/osc_ucx_comm.c openmpi-4.1.4/ompi/mca/osc/ucx/osc_ucx_comm.c --- openmpi-4.0.3/ompi/mca/osc/ucx/osc_ucx_comm.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/ucx/osc_ucx_comm.c 2022-05-29 09:51:40.000000000 +0000 @@ -904,9 +904,10 @@ return OMPI_ERROR; } + /* TODO: investigate whether ucp_worker_flush_nb is a better choice here */ internal_req = ucp_atomic_fetch_nb(ep, UCP_ATOMIC_FETCH_OP_FADD, 0, &(module->req_result), sizeof(uint64_t), - remote_addr, rkey, req_completion); + remote_addr & (~0x7), rkey, req_completion); if (UCS_PTR_IS_PTR(internal_req)) { internal_req->external_req = ucx_req; @@ -965,9 +966,10 @@ return OMPI_ERROR; } + /* TODO: investigate whether ucp_worker_flush_nb is a better choice here */ internal_req = ucp_atomic_fetch_nb(ep, UCP_ATOMIC_FETCH_OP_FADD, 0, &(module->req_result), sizeof(uint64_t), - remote_addr, rkey, req_completion); + remote_addr & (~0x7), rkey, req_completion); if (UCS_PTR_IS_PTR(internal_req)) { internal_req->external_req = ucx_req; diff -Nru openmpi-4.0.3/ompi/mca/osc/ucx/osc_ucx_component.c openmpi-4.1.4/ompi/mca/osc/ucx/osc_ucx_component.c --- openmpi-4.0.3/ompi/mca/osc/ucx/osc_ucx_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/osc/ucx/osc_ucx_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -854,6 +854,7 @@ int ompi_osc_ucx_free(struct ompi_win_t *win) { ompi_osc_ucx_module_t *module = (ompi_osc_ucx_module_t*) win->w_osc_module; int i, ret; + uint64_t idx; assert(module->global_ops_num == 0); assert(module->lock_count == 0); @@ -874,6 +875,14 @@ ret = module->comm->c_coll->coll_barrier(module->comm, module->comm->c_coll->coll_barrier_module); + /* MPI_Win_free should detach any memory attached to dynamic windows */ + for (idx = 0; idx < module->state.dynamic_win_count; idx++) { + assert(module->local_dynamic_win_info[idx].refcnt == 1); + ucp_mem_unmap(mca_osc_ucx_component.ucp_context, + module->local_dynamic_win_info[idx].memh); + } + module->state.dynamic_win_count = 0; + for (i = 0; i < ompi_comm_size(module->comm); i++) { if ((module->win_info_array[i]).rkey_init == true) { ucp_rkey_destroy((module->win_info_array[i]).rkey); diff -Nru openmpi-4.0.3/ompi/mca/pml/base/pml_base_select.c openmpi-4.1.4/ompi/mca/pml/base/pml_base_select.c --- openmpi-4.0.3/ompi/mca/pml/base/pml_base_select.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/base/pml_base_select.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,8 +12,11 @@ * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2013-2014 Intel, Inc. All rights reserved - * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2020 Amazon.com, Inc. or its affiliates. All Rights + * reserved. + * Copyright (c) 2021 Nanook Consulting. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -44,8 +47,6 @@ mca_pml_base_component_t *om_component; } opened_component_t; -static bool modex_reqd=false; - /** * Function for selecting one component from all those that are * available. @@ -59,7 +60,7 @@ int mca_pml_base_select(bool enable_progress_threads, bool enable_mpi_threads) { - int i, priority = 0, best_priority = 0, num_pml = 0; + int i, priority = 0, best_priority = 0, num_pml = 0, ret = 0; opal_list_item_t *item = NULL; mca_base_component_list_item_t *cli = NULL; mca_pml_base_component_t *component = NULL, *best_component = NULL; @@ -186,12 +187,13 @@ "selected %s best priority %d\n", best_component->pmlm_version.mca_component_name, best_priority); - /* if more than one PML could be considered, then we still need the - * modex since we cannot know which one will be selected on all procs - */ - if (1 < num_pml) { - modex_reqd = true; - } + /* Save the winner */ + + mca_pml_base_selected_component = *best_component; + mca_pml = *best_module; + opal_output_verbose( 10, ompi_pml_base_framework.framework_output, + "select: component %s selected", + mca_pml_base_selected_component.pmlm_version.mca_component_name ); /* Finalize all non-selected components */ @@ -239,14 +241,6 @@ } #endif - /* Save the winner */ - - mca_pml_base_selected_component = *best_component; - mca_pml = *best_module; - opal_output_verbose( 10, ompi_pml_base_framework.framework_output, - "select: component %s selected", - mca_pml_base_selected_component.pmlm_version.mca_component_name ); - /* This base function closes, unloads, and removes from the available list all unselected components. The available list will contain only the selected component. */ @@ -287,13 +281,11 @@ } /* register winner in the modex */ - if (modex_reqd && 0 == OMPI_PROC_MY_NAME->vpid) { - mca_pml_base_pml_selected(best_component->pmlm_version.mca_component_name); - } + ret = mca_pml_base_pml_selected(best_component->pmlm_version.mca_component_name); /* All done */ - return OMPI_SUCCESS; + return ret; } /* need a "commonly" named PML structure so everything ends up in the @@ -307,49 +299,56 @@ }; +/* + * If direct modex, then publish PML for all procs. If full modex then + * publish PML for rank 0 only. This information is used during add_procs + * to perform PML check. + * During PML check, for direct modex, compare our PML with the peer's + * PML for all procs in the add_procs call. This does not change the + * connection complexity of modex transfers, since adding the proc is + * going to get the peer information in the MTL/PML/BTL anyway. + * For full modex, compare our PML with rank 0. + * Direct Modex is performed when collect_all_data is false, as we do + * not perform a fence operation during MPI_Init if async_modex is true. + * If async_modex is false and collect_all_data is false then we do a + * zero-byte barrier and we would still require direct modex during + * add_procs + */ int mca_pml_base_pml_selected(const char *name) { - int rc; + int rc = 0; + + if (!opal_pmix_collect_all_data || 0 == OMPI_PROC_MY_NAME->vpid) { + OPAL_MODEX_SEND(rc, OPAL_PMIX_GLOBAL, &pml_base_component, name, + strlen(name) + 1); + } - OPAL_MODEX_SEND(rc, OPAL_PMIX_GLOBAL, &pml_base_component, name, strlen(name) + 1); return rc; } -int -mca_pml_base_pml_check_selected(const char *my_pml, - ompi_proc_t **procs, - size_t nprocs) +static int +mca_pml_base_pml_check_selected_impl(const char *my_pml, + opal_process_name_t proc_name) { size_t size; - int ret; + int ret = 0; char *remote_pml; - /* if no modex was required by the PML, then - * we can assume success - */ - if (!modex_reqd) { - opal_output_verbose( 10, ompi_pml_base_framework.framework_output, - "check:select: modex not reqd"); - return OMPI_SUCCESS; - } - - /* if we are rank=0, then we can also assume success */ - if (0 == OMPI_PROC_MY_NAME->vpid) { + /* if we are proc_name=OMPI_PROC_MY_NAME, then we can also assume success */ + if (0 == opal_compare_proc(ompi_proc_local()->super.proc_name, proc_name)) { opal_output_verbose( 10, ompi_pml_base_framework.framework_output, - "check:select: rank=0"); + "check:select: PML check not necessary on self"); return OMPI_SUCCESS; } - - /* get the name of the PML module selected by rank=0 */ - OPAL_MODEX_RECV(ret, &pml_base_component, - &procs[0]->super.proc_name, (void**) &remote_pml, &size); - - /* if this key wasn't found, then just assume all is well... */ - if (OMPI_SUCCESS != ret) { + OPAL_MODEX_RECV_STRING(ret, + mca_base_component_to_string(&pml_base_component), + &proc_name, (void**) &remote_pml, &size); + if (OPAL_ERR_NOT_FOUND == ret) { opal_output_verbose( 10, ompi_pml_base_framework.framework_output, - "check:select: modex data not found"); - return OMPI_SUCCESS; + "check:select: PML modex for process %s not found", + OMPI_NAME_PRINT(&proc_name)); + return OMPI_ERR_NOT_FOUND; } /* the remote pml returned should never be NULL if an error @@ -358,26 +357,68 @@ */ if (NULL == remote_pml) { opal_output_verbose( 10, ompi_pml_base_framework.framework_output, - "check:select: got a NULL pml from rank=0"); + "check:select: got a NULL pml from process %s", + OMPI_NAME_PRINT(&proc_name)); return OMPI_ERR_UNREACH; } opal_output_verbose( 10, ompi_pml_base_framework.framework_output, - "check:select: checking my pml %s against rank=0 pml %s", - my_pml, remote_pml); + "check:select: checking my pml %s against process %s" + " pml %s", my_pml, OMPI_NAME_PRINT(&proc_name), + remote_pml); /* if that module doesn't match my own, return an error */ if ((size != strlen(my_pml) + 1) || (0 != strcmp(my_pml, remote_pml))) { + char *errhost = NULL; + OPAL_MODEX_RECV_VALUE_OPTIONAL(ret, OPAL_PMIX_HOSTNAME, &proc_name, + &(errhost), OPAL_STRING); opal_output(0, "%s selected pml %s, but peer %s on %s selected pml %s", OMPI_NAME_PRINT(&ompi_proc_local()->super.proc_name), - my_pml, OMPI_NAME_PRINT(&procs[0]->super.proc_name), - (NULL == procs[0]->super.proc_hostname) ? "unknown" : procs[0]->super.proc_hostname, + my_pml, OMPI_NAME_PRINT(&proc_name), + (NULL == errhost) ? "unknown" : errhost, remote_pml); - free(remote_pml); /* cleanup before returning */ + free(remote_pml); + free(errhost); + /* cleanup before returning */ return OMPI_ERR_UNREACH; } free(remote_pml); return OMPI_SUCCESS; } + +int +mca_pml_base_pml_check_selected(const char *my_pml, + ompi_proc_t **procs, + size_t nprocs) +{ + int ret = 0; + size_t i; + + if (!opal_pmix_collect_all_data) { + /* + * If direct modex, then compare our PML with the peer's PML + * for all procs + */ + for (i = 0; i < nprocs; i++) { + ret = mca_pml_base_pml_check_selected_impl( + my_pml, + procs[i]->super.proc_name); + if (ret) { + return ret; + } + } + } else { + /* else if full modex compare our PML with rank 0 */ + opal_process_name_t proc_name = { + .jobid = ompi_proc_local()->super.proc_name.jobid, + .vpid = 0 + }; + ret = mca_pml_base_pml_check_selected_impl( + my_pml, + proc_name); + } + + return ret; +} diff -Nru openmpi-4.0.3/ompi/mca/pml/cm/Makefile.in openmpi-4.1.4/ompi/mca/pml/cm/Makefile.in --- openmpi-4.0.3/ompi/mca/pml/cm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/cm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,6 +116,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -123,6 +125,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -146,6 +149,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -248,6 +252,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -255,6 +260,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -335,6 +341,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -357,9 +364,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -369,6 +380,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -389,6 +401,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -655,6 +668,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1475,6 +1491,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1507,9 +1527,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1530,6 +1559,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1614,9 +1644,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1677,6 +1704,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1690,6 +1720,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/pml/cm/pml_cm.h openmpi-4.1.4/ompi/mca/pml/cm/pml_cm.h --- openmpi-4.0.3/ompi/mca/pml/cm/pml_cm.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/cm/pml_cm.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * Copyright (c) 2004-2006 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2004-2007 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2015 Research Organization for Information Science @@ -212,8 +212,8 @@ ompi_request_wait_completion(&req.req_ompi); - if (NULL != status) { /* return status */ - *status = req.req_ompi.req_status; + if (MPI_STATUS_IGNORE != status) { + OMPI_COPY_STATUS(status, req.req_ompi.req_status, false); } ret = req.req_ompi.req_status.MPI_ERROR; OBJ_DESTRUCT(&convertor); @@ -539,8 +539,8 @@ ompi_request_wait_completion(&recvreq->req_base.req_ompi); - if (NULL != status) { /* return status */ - *status = recvreq->req_base.req_ompi.req_status; + if (MPI_STATUS_IGNORE != status) { + OMPI_COPY_STATUS(status, recvreq->req_base.req_ompi.req_status, false); } ret = recvreq->req_base.req_ompi.req_status.MPI_ERROR; ompi_request_free( (ompi_request_t**)&recvreq ); diff -Nru openmpi-4.0.3/ompi/mca/pml/crcpw/Makefile.in openmpi-4.1.4/ompi/mca/pml/crcpw/Makefile.in --- openmpi-4.0.3/ompi/mca/pml/crcpw/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/crcpw/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -658,6 +671,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1478,6 +1494,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1510,9 +1530,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1533,6 +1562,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1617,9 +1647,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1680,6 +1707,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1693,6 +1723,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/pml/Makefile.in openmpi-4.1.4/ompi/mca/pml/Makefile.in --- openmpi-4.0.3/ompi/mca/pml/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -137,6 +137,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -144,6 +146,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -167,6 +170,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -269,6 +273,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -276,6 +281,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -356,6 +362,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -378,9 +385,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -390,6 +401,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -410,6 +422,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -671,6 +684,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1491,6 +1507,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1523,9 +1543,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1546,6 +1575,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1630,9 +1660,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1693,6 +1720,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1706,6 +1736,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/pml/monitoring/Makefile.in openmpi-4.1.4/ompi/mca/pml/monitoring/Makefile.in --- openmpi-4.0.3/ompi/mca/pml/monitoring/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/monitoring/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -111,6 +111,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -118,6 +120,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -141,6 +144,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -243,6 +247,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -250,6 +255,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -330,6 +336,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -352,9 +359,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -364,6 +375,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -384,6 +396,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -656,6 +669,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1476,6 +1492,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1508,9 +1528,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1531,6 +1560,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1615,9 +1645,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1678,6 +1705,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1691,6 +1721,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/pml/ob1/Makefile.in openmpi-4.1.4/ompi/mca/pml/ob1/Makefile.in --- openmpi-4.0.3/ompi/mca/pml/ob1/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/ob1/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -126,6 +126,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -133,6 +135,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -156,6 +159,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -258,6 +262,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -265,6 +270,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -345,6 +351,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -367,9 +374,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -379,6 +390,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -399,6 +411,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -689,6 +702,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1509,6 +1525,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1541,9 +1561,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1564,6 +1593,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1648,9 +1678,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1711,6 +1738,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1724,6 +1754,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/pml/ob1/pml_ob1_cuda.c openmpi-4.1.4/ompi/mca/pml/ob1/pml_ob1_cuda.c --- openmpi-4.0.3/ompi/mca/pml/ob1/pml_ob1_cuda.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/ob1/pml_ob1_cuda.c 2022-05-29 09:51:40.000000000 +0000 @@ -127,7 +127,10 @@ if( NULL != bml_btl->btl->btl_register_mem ) { /* register the memory */ handle = bml_btl->btl->btl_register_mem (bml_btl->btl, bml_btl->btl_endpoint, - base, size, MCA_BTL_REG_FLAG_CUDA_GPU_MEM | + base, size, +#if OPAL_CUDA_GDR_SUPPORT + MCA_BTL_REG_FLAG_CUDA_GPU_MEM | +#endif MCA_BTL_REG_FLAG_REMOTE_READ); } diff -Nru openmpi-4.0.3/ompi/mca/pml/ob1/pml_ob1_iprobe.c openmpi-4.1.4/ompi/mca/pml/ob1/pml_ob1_iprobe.c --- openmpi-4.0.3/ompi/mca/pml/ob1/pml_ob1_iprobe.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/ob1/pml_ob1_iprobe.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2016 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -40,10 +40,10 @@ MCA_PML_OB1_RECV_REQUEST_START(&recvreq); if( REQUEST_COMPLETE( &(recvreq.req_recv.req_base.req_ompi)) ) { - if( NULL != status ) { - *status = recvreq.req_recv.req_base.req_ompi.req_status; - } rc = recvreq.req_recv.req_base.req_ompi.req_status.MPI_ERROR; + if( MPI_STATUS_IGNORE != status ) { + OMPI_COPY_STATUS(status, recvreq.req_recv.req_base.req_ompi.req_status, false); + } *matched = 1; } else { *matched = 0; @@ -71,8 +71,8 @@ ompi_request_wait_completion(&recvreq.req_recv.req_base.req_ompi); rc = recvreq.req_recv.req_base.req_ompi.req_status.MPI_ERROR; - if (NULL != status) { - *status = recvreq.req_recv.req_base.req_ompi.req_status; + if( MPI_STATUS_IGNORE != status ) { + OMPI_COPY_STATUS(status, recvreq.req_recv.req_base.req_ompi.req_status, false); } MCA_PML_BASE_RECV_REQUEST_FINI( &recvreq.req_recv ); @@ -107,8 +107,9 @@ MCA_PML_OB1_RECV_REQUEST_START(recvreq); if( REQUEST_COMPLETE( &(recvreq->req_recv.req_base.req_ompi)) ) { - if( NULL != status ) { - *status = recvreq->req_recv.req_base.req_ompi.req_status; + rc = recvreq->req_recv.req_base.req_ompi.req_status.MPI_ERROR; + if( MPI_STATUS_IGNORE != status ) { + OMPI_COPY_STATUS(status, recvreq->req_recv.req_base.req_ompi.req_status, false); } *matched = 1; @@ -116,8 +117,6 @@ (*message)->req_ptr = recvreq; (*message)->peer = recvreq->req_recv.req_base.req_ompi.req_status.MPI_SOURCE; (*message)->count = recvreq->req_recv.req_base.req_ompi.req_status._ucount; - - rc = recvreq->req_recv.req_base.req_ompi.req_status.MPI_ERROR; } else { *matched = 0; @@ -162,9 +161,8 @@ ompi_request_wait_completion(&recvreq->req_recv.req_base.req_ompi); rc = recvreq->req_recv.req_base.req_ompi.req_status.MPI_ERROR; - - if( NULL != status ) { - *status = recvreq->req_recv.req_base.req_ompi.req_status; + if( MPI_STATUS_IGNORE != status ) { + OMPI_COPY_STATUS(status, recvreq->req_recv.req_base.req_ompi.req_status, false); } (*message)->comm = comm; diff -Nru openmpi-4.0.3/ompi/mca/pml/ob1/pml_ob1_irecv.c openmpi-4.1.4/ompi/mca/pml/ob1/pml_ob1_irecv.c --- openmpi-4.0.3/ompi/mca/pml/ob1/pml_ob1_irecv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/ob1/pml_ob1_irecv.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2015 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -144,8 +144,8 @@ ); } - if (NULL != status) { /* return status */ - *status = recvreq->req_recv.req_base.req_ompi.req_status; + if (MPI_STATUS_IGNORE != status) { + OMPI_COPY_STATUS(status, recvreq->req_recv.req_base.req_ompi.req_status, false); } rc = recvreq->req_recv.req_base.req_ompi.req_status.MPI_ERROR; @@ -354,8 +354,8 @@ MCA_PML_OB1_RECV_FRAG_RETURN(frag); - if (NULL != status) { /* return status */ - *status = recvreq->req_recv.req_base.req_ompi.req_status; + if (MPI_STATUS_IGNORE != status) { + OMPI_COPY_STATUS(status, recvreq->req_recv.req_base.req_ompi.req_status, false); } rc = recvreq->req_recv.req_base.req_ompi.req_status.MPI_ERROR; ompi_request_free( (ompi_request_t**)&recvreq ); diff -Nru openmpi-4.0.3/ompi/mca/pml/ob1/pml_ob1_recvfrag.c openmpi-4.1.4/ompi/mca/pml/ob1/pml_ob1_recvfrag.c --- openmpi-4.0.3/ompi/mca/pml/ob1/pml_ob1_recvfrag.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/ob1/pml_ob1_recvfrag.c 2022-05-29 09:51:40.000000000 +0000 @@ -468,7 +468,7 @@ ); } - /* no need to check if complete we know we are.. */ + /* no need to check if complete we know we are. */ /* don't need a rmb as that is for checking */ recv_request_pml_complete(match); } diff -Nru openmpi-4.0.3/ompi/mca/pml/ob1/pml_ob1_recvreq.c openmpi-4.1.4/ompi/mca/pml/ob1/pml_ob1_recvreq.c --- openmpi-4.0.3/ompi/mca/pml/ob1/pml_ob1_recvreq.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/ob1/pml_ob1_recvreq.c 2022-05-29 09:51:40.000000000 +0000 @@ -255,6 +255,7 @@ static int mca_pml_ob1_recv_request_ack( mca_pml_ob1_recv_request_t* recvreq, + mca_btl_base_module_t* btl, mca_pml_ob1_rendezvous_hdr_t* hdr, size_t bytes_received) { @@ -315,12 +316,12 @@ /* let know to shedule function there is no need to put ACK flag. If not all message went over * RDMA then we cancel the GET protocol in order to switch back to send/recv. In this case send - * back the remote send request, the peer kept a poointer to the frag locally. In the future we + * back the remote send request, the peer kept a pointer to the frag locally. In the future we * might want to cancel the fragment itself, in which case we will have to send back the remote * fragment instead of the remote request. */ recvreq->req_ack_sent = true; - return mca_pml_ob1_recv_request_ack_send(proc, hdr->hdr_src_req.lval, + return mca_pml_ob1_recv_request_ack_send(btl, proc, hdr->hdr_src_req.lval, recvreq, recvreq->req_send_offset, 0, recvreq->req_send_offset == bytes_received); } @@ -356,7 +357,7 @@ } /* tell peer to fall back on send for this region */ - rc = mca_pml_ob1_recv_request_ack_send(proc, frag->rdma_hdr.hdr_rget.hdr_rndv.hdr_src_req.lval, + rc = mca_pml_ob1_recv_request_ack_send(NULL, proc, frag->rdma_hdr.hdr_rget.hdr_rndv.hdr_src_req.lval, recvreq, frag->rdma_offset, frag->rdma_length, false); MCA_PML_OB1_RDMA_FRAG_RETURN(frag); return rc; @@ -672,7 +673,7 @@ if (mca_pml_ob1_cuda_need_buffers(recvreq, btl)) #endif /* OPAL_CUDA_SUPPORT */ { - mca_pml_ob1_recv_request_ack(recvreq, &hdr->hdr_rndv, 0); + mca_pml_ob1_recv_request_ack(recvreq, btl, &hdr->hdr_rndv, 0); return; } } @@ -692,7 +693,7 @@ } } else { /* Just default back to send and receive. Must be mix of GPU and HOST memory. */ - mca_pml_ob1_recv_request_ack(recvreq, &hdr->hdr_rndv, 0); + mca_pml_ob1_recv_request_ack(recvreq, btl, &hdr->hdr_rndv, 0); return; } } @@ -815,7 +816,7 @@ recvreq->remote_req_send = hdr->hdr_rndv.hdr_src_req; recvreq->req_rdma_offset = bytes_received; MCA_PML_OB1_RECV_REQUEST_MATCHED(recvreq, &hdr->hdr_match); - mca_pml_ob1_recv_request_ack(recvreq, &hdr->hdr_rndv, bytes_received); + mca_pml_ob1_recv_request_ack(recvreq, btl, &hdr->hdr_rndv, bytes_received); /** * The PUT protocol do not attach any data to the original request. * Therefore, we might want to avoid unpacking if there is nothing to diff -Nru openmpi-4.0.3/ompi/mca/pml/ob1/pml_ob1_recvreq.h openmpi-4.1.4/ompi/mca/pml/ob1/pml_ob1_recvreq.h --- openmpi-4.0.3/ompi/mca/pml/ob1/pml_ob1_recvreq.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/ob1/pml_ob1_recvreq.h 2022-05-29 09:51:40.000000000 +0000 @@ -231,8 +231,8 @@ req->req_recv.req_base.req_addr, 0, &req->req_recv.req_base.req_convertor); - opal_convertor_get_unpacked_size(&req->req_recv.req_base.req_convertor, - &req->req_bytes_expected); + opal_convertor_get_packed_size(&req->req_recv.req_base.req_convertor, + &req->req_bytes_expected); } } @@ -428,9 +428,11 @@ mca_bml_base_btl_t* bml_btl, uint64_t hdr_src_req, void *hdr_dst_req, uint64_t hdr_rdma_offset, uint64_t size, bool nordma); -static inline int mca_pml_ob1_recv_request_ack_send(ompi_proc_t* proc, - uint64_t hdr_src_req, void *hdr_dst_req, uint64_t hdr_send_offset, - uint64_t size, bool nordma) +static inline int +mca_pml_ob1_recv_request_ack_send(mca_btl_base_module_t* btl, + ompi_proc_t* proc, + uint64_t hdr_src_req, void *hdr_dst_req, uint64_t hdr_send_offset, + uint64_t size, bool nordma) { size_t i; mca_bml_base_btl_t* bml_btl; @@ -438,11 +440,18 @@ assert (NULL != endpoint); + /** + * If a btl has been requested then send the ack using that specific device, otherwise + * we are free to pick one. We need to force the ack to go over a specific BTL, in order + * to prevent the establishement of new connections during the matching handshake. + */ for(i = 0; i < mca_bml_base_btl_array_get_size(&endpoint->btl_eager); i++) { bml_btl = mca_bml_base_btl_array_get_next(&endpoint->btl_eager); - if(mca_pml_ob1_recv_request_ack_send_btl(proc, bml_btl, hdr_src_req, - hdr_dst_req, hdr_send_offset, size, nordma) == OMPI_SUCCESS) - return OMPI_SUCCESS; + if( (NULL == btl) || (btl == bml_btl->btl) ) { + if(mca_pml_ob1_recv_request_ack_send_btl(proc, bml_btl, hdr_src_req, + hdr_dst_req, hdr_send_offset, size, nordma) == OMPI_SUCCESS) + return OMPI_SUCCESS; + } } MCA_PML_OB1_ADD_ACK_TO_PENDING(proc, hdr_src_req, hdr_dst_req, diff -Nru openmpi-4.0.3/ompi/mca/pml/ucx/Makefile.in openmpi-4.1.4/ompi/mca/pml/ucx/Makefile.in --- openmpi-4.0.3/ompi/mca/pml/ucx/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/ucx/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -113,6 +113,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -120,6 +122,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -143,6 +146,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -245,6 +249,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -252,6 +257,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -332,6 +338,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -354,9 +361,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -366,6 +377,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -386,6 +398,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -655,6 +668,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1475,6 +1491,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1507,9 +1527,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1530,6 +1559,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1614,9 +1644,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1677,6 +1704,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1690,6 +1720,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/pml/ucx/pml_ucx.c openmpi-4.1.4/ompi/mca/pml/ucx/pml_ucx.c --- openmpi-4.0.3/ompi/mca/pml/ucx/pml_ucx.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/ucx/pml_ucx.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* * Copyright (C) 2001-2011 Mellanox Technologies Ltd. 2001-2011. ALL RIGHTS RESERVED. - * Copyright (c) 2016 The University of Tennessee and The University + * Copyright (c) 2016-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2018 Research Organization for Information Science @@ -20,6 +20,9 @@ #include "ompi/message/message.h" #include "ompi/mca/pml/base/pml_base_bsend.h" #include "opal/mca/common/ucx/common_ucx.h" +#if OPAL_CUDA_SUPPORT +#include "opal/mca/common/cuda/common_cuda.h" +#endif /* OPAL_CUDA_SUPPORT */ #include "pml_ucx_request.h" #include @@ -183,12 +186,23 @@ int mca_pml_ucx_open(void) { + unsigned major_version, minor_version, release_number; ucp_context_attr_t attr; ucp_params_t params; ucp_config_t *config; ucs_status_t status; - PML_UCX_VERBOSE(1, "mca_pml_ucx_open"); + /* Check version */ + ucp_get_version(&major_version, &minor_version, &release_number); + PML_UCX_VERBOSE(1, "mca_pml_ucx_open: UCX version %u.%u.%u", + major_version, minor_version, release_number); + + if ((major_version == 1) && (minor_version == 8)) { + /* disabled due to issue #8321 */ + PML_UCX_VERBOSE(1, "UCX PML is disabled because the run-time UCX version " + "is 1.8, which has a known catastrophic issue"); + return OMPI_ERROR; + } /* Read options */ status = ucp_config_read("MPI", NULL, &config); @@ -227,6 +241,9 @@ /* Query UCX attributes */ attr.field_mask = UCP_ATTR_FIELD_REQUEST_SIZE; +#if HAVE_UCP_ATTR_MEMORY_TYPES + attr.field_mask |= UCP_ATTR_FIELD_MEMORY_TYPES; +#endif status = ucp_context_query(ompi_pml_ucx.ucp_context, &attr); if (UCS_OK != status) { ucp_cleanup(ompi_pml_ucx.ucp_context); @@ -234,8 +251,15 @@ return OMPI_ERROR; } - ompi_pml_ucx.request_size = attr.request_size; + ompi_pml_ucx.request_size = attr.request_size; + ompi_pml_ucx.cuda_initialized = false; +#if HAVE_UCP_ATTR_MEMORY_TYPES && OPAL_CUDA_SUPPORT + if (attr.memory_types & UCS_BIT(UCS_MEMORY_TYPE_CUDA)) { + mca_common_cuda_stage_one_init(); + ompi_pml_ucx.cuda_initialized = true; + } +#endif return OMPI_SUCCESS; } @@ -243,6 +267,11 @@ { PML_UCX_VERBOSE(1, "mca_pml_ucx_close"); +#if OPAL_CUDA_SUPPORT + if (ompi_pml_ucx.cuda_initialized) { + mca_common_cuda_fini(); + } +#endif if (ompi_pml_ucx.ucp_context != NULL) { ucp_cleanup(ompi_pml_ucx.ucp_context); ompi_pml_ucx.ucp_context = NULL; @@ -267,6 +296,13 @@ params.thread_mode = UCS_THREAD_MODE_SINGLE; } +#if HAVE_DECL_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK + if (!ompi_pml_ucx.request_leak_check) { + params.field_mask |= UCP_WORKER_PARAM_FIELD_FLAGS; + params.flags |= UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK; + } +#endif + status = ucp_worker_create(ompi_pml_ucx.ucp_context, ¶ms, &ompi_pml_ucx.ucp_worker); if (UCS_OK != status) { @@ -360,10 +396,10 @@ static ucp_ep_h mca_pml_ucx_add_proc_common(ompi_proc_t *proc) { + size_t addrlen = 0; ucp_ep_params_t ep_params; ucp_address_t *address; ucs_status_t status; - size_t addrlen; ucp_ep_h ep; int ret; @@ -392,17 +428,7 @@ static ucp_ep_h mca_pml_ucx_add_proc(ompi_communicator_t *comm, int dst) { - ompi_proc_t *proc0 = ompi_comm_peer_lookup(comm, 0); ompi_proc_t *proc_peer = ompi_comm_peer_lookup(comm, dst); - int ret; - - /* Note, mca_pml_base_pml_check_selected, doesn't use 3rd argument */ - if (OMPI_SUCCESS != (ret = mca_pml_base_pml_check_selected("ucx", - &proc0, - dst))) { - return NULL; - } - return mca_pml_ucx_add_proc_common(proc_peer); } @@ -411,13 +437,6 @@ ompi_proc_t *proc; ucp_ep_h ep; size_t i; - int ret; - - if (OMPI_SUCCESS != (ret = mca_pml_base_pml_check_selected("ucx", - procs, - nprocs))) { - return ret; - } for (i = 0; i < nprocs; ++i) { proc = procs[(i + OMPI_PROC_MY_NAME->vpid) % nprocs]; @@ -431,6 +450,7 @@ return OMPI_SUCCESS; } +__opal_attribute_always_inline__ static inline ucp_ep_h mca_pml_ucx_get_ep(ompi_communicator_t *comm, int rank) { ucp_ep_h ep; @@ -512,8 +532,7 @@ int mca_pml_ucx_progress(void) { - ucp_worker_progress(ompi_pml_ucx.ucp_worker); - return OMPI_SUCCESS; + return ucp_worker_progress(ompi_pml_ucx.ucp_worker); } int mca_pml_ucx_add_comm(struct ompi_communicator_t* comm) @@ -545,7 +564,9 @@ req->flags = 0; req->buffer = buf; req->count = count; - req->datatype.datatype = mca_pml_ucx_get_datatype(datatype); + req->ompi_datatype = datatype; + req->datatype = mca_pml_ucx_get_datatype(datatype); + OMPI_DATATYPE_RETAIN(datatype); PML_UCX_MAKE_RECV_TAG(req->tag, req->recv.tag_mask, tag, src, comm); @@ -557,6 +578,11 @@ int src, int tag, struct ompi_communicator_t* comm, struct ompi_request_t **request) { +#if HAVE_DECL_UCP_TAG_RECV_NBX + pml_ucx_datatype_t *op_data = mca_pml_ucx_get_op_data(datatype); + ucp_request_param_t *param = &op_data->op_param.irecv; +#endif + ucp_tag_t ucp_tag, ucp_tag_mask; ompi_request_t *req; @@ -564,10 +590,16 @@ (void*)request); PML_UCX_MAKE_RECV_TAG(ucp_tag, ucp_tag_mask, tag, src, comm); +#if HAVE_DECL_UCP_TAG_RECV_NBX + req = (ompi_request_t*)ucp_tag_recv_nbx(ompi_pml_ucx.ucp_worker, buf, + mca_pml_ucx_get_data_size(op_data, count), + ucp_tag, ucp_tag_mask, param); +#else req = (ompi_request_t*)ucp_tag_recv_nb(ompi_pml_ucx.ucp_worker, buf, count, mca_pml_ucx_get_datatype(datatype), ucp_tag, ucp_tag_mask, mca_pml_ucx_recv_completion); +#endif if (UCS_PTR_IS_ERR(req)) { PML_UCX_ERROR("ucx recv failed: %s", ucs_status_string(UCS_PTR_STATUS(req))); return OMPI_ERROR; @@ -583,29 +615,43 @@ int tag, struct ompi_communicator_t* comm, ompi_status_public_t* mpi_status) { + /* coverity[bad_alloc_arithmetic] */ + void *req = PML_UCX_REQ_ALLOCA(); +#if HAVE_DECL_UCP_TAG_RECV_NBX + pml_ucx_datatype_t *op_data = mca_pml_ucx_get_op_data(datatype); + ucp_request_param_t *recv_param = &op_data->op_param.recv; + ucp_request_param_t param; + + param.op_attr_mask = UCP_OP_ATTR_FIELD_REQUEST | + (recv_param->op_attr_mask & UCP_OP_ATTR_FIELD_DATATYPE); + param.datatype = recv_param->datatype; + param.request = req; +#endif ucp_tag_t ucp_tag, ucp_tag_mask; ucp_tag_recv_info_t info; ucs_status_t status; - void *req; PML_UCX_TRACE_RECV("%s", buf, count, datatype, src, tag, comm, "recv"); - /* coverity[bad_alloc_arithmetic] */ PML_UCX_MAKE_RECV_TAG(ucp_tag, ucp_tag_mask, tag, src, comm); - req = PML_UCX_REQ_ALLOCA(); - status = ucp_tag_recv_nbr(ompi_pml_ucx.ucp_worker, buf, count, - mca_pml_ucx_get_datatype(datatype), - ucp_tag, ucp_tag_mask, req); - +#if HAVE_DECL_UCP_TAG_RECV_NBX + ucp_tag_recv_nbx(ompi_pml_ucx.ucp_worker, buf, + mca_pml_ucx_get_data_size(op_data, count), + ucp_tag, ucp_tag_mask, ¶m); +#else + ucp_tag_recv_nbr(ompi_pml_ucx.ucp_worker, buf, count, + mca_pml_ucx_get_datatype(datatype), + ucp_tag, ucp_tag_mask, req); +#endif MCA_COMMON_UCX_PROGRESS_LOOP(ompi_pml_ucx.ucp_worker) { status = ucp_request_test(req, &info); if (status != UCS_INPROGRESS) { - mca_pml_ucx_set_recv_status_safe(mpi_status, status, &info); - return OMPI_SUCCESS; + return mca_pml_ucx_set_recv_status_public(mpi_status, status, &info); } } } +__opal_attribute_always_inline__ static inline const char *mca_pml_ucx_send_mode_name(mca_pml_base_send_mode_t mode) { switch (mode) { @@ -655,12 +701,13 @@ req->tag = PML_UCX_MAKE_SEND_TAG(tag, comm); req->send.mode = mode; req->send.ep = ep; + req->ompi_datatype = datatype; + OMPI_DATATYPE_RETAIN(datatype); if (MCA_PML_BASE_SEND_BUFFERED == mode) { - req->datatype.ompi_datatype = datatype; - OBJ_RETAIN(datatype); + req->datatype = (ucp_datatype_t)NULL; } else { - req->datatype.datatype = mca_pml_ucx_get_datatype(datatype); + req->datatype = mca_pml_ucx_get_datatype(datatype); } *request = &req->ompi; @@ -668,7 +715,7 @@ } static ucs_status_ptr_t -mca_pml_ucx_bsend(ucp_ep_h ep, const void *buf, size_t count, +mca_pml_ucx_bsend(ucp_ep_h ep, const void *buf, size_t count, ompi_datatype_t *datatype, uint64_t pml_tag) { ompi_request_t *req; @@ -691,7 +738,7 @@ PML_UCX_ERROR("bsend: failed to allocate buffer"); return UCS_STATUS_PTR(OMPI_ERROR); } - + iov_count = 1; iov.iov_base = packed_data; iov.iov_len = packed_length; @@ -727,6 +774,7 @@ return NULL; } +__opal_attribute_always_inline__ static inline ucs_status_ptr_t mca_pml_ucx_common_send(ucp_ep_h ep, const void *buf, size_t count, ompi_datatype_t *datatype, @@ -744,6 +792,32 @@ } } +#if HAVE_DECL_UCP_TAG_SEND_NBX +__opal_attribute_always_inline__ +static inline ucs_status_ptr_t +mca_pml_ucx_common_send_nbx(ucp_ep_h ep, const void *buf, + size_t count, + ompi_datatype_t *datatype, + ucp_tag_t tag, + mca_pml_base_send_mode_t mode, + ucp_request_param_t *param) +{ + pml_ucx_datatype_t *op_data = mca_pml_ucx_get_op_data(datatype); + + if (OPAL_UNLIKELY(MCA_PML_BASE_SEND_BUFFERED == mode)) { + return mca_pml_ucx_bsend(ep, buf, count, datatype, tag); + } else if (OPAL_UNLIKELY(MCA_PML_BASE_SEND_SYNCHRONOUS == mode)) { + return ucp_tag_send_sync_nb(ep, buf, count, + mca_pml_ucx_get_datatype(datatype), tag, + (ucp_send_callback_t)param->cb.send); + } else { + return ucp_tag_send_nbx(ep, buf, + mca_pml_ucx_get_data_size(op_data, count), + tag, param); + } +} +#endif + int mca_pml_ucx_isend(const void *buf, size_t count, ompi_datatype_t *datatype, int dst, int tag, mca_pml_base_send_mode_t mode, struct ompi_communicator_t* comm, @@ -752,8 +826,8 @@ ompi_request_t *req; ucp_ep_h ep; - PML_UCX_TRACE_SEND("i%ssend request *%p", - buf, count, datatype, dst, tag, mode, comm, + PML_UCX_TRACE_SEND("i%ssend request *%p", + buf, count, datatype, dst, tag, mode, comm, mode == MCA_PML_BASE_SEND_BUFFERED ? "b" : "", (void*)request) @@ -762,10 +836,16 @@ return OMPI_ERROR; } +#if HAVE_DECL_UCP_TAG_SEND_NBX + req = (ompi_request_t*)mca_pml_ucx_common_send_nbx(ep, buf, count, datatype, + PML_UCX_MAKE_SEND_TAG(tag, comm), mode, + &mca_pml_ucx_get_op_data(datatype)->op_param.isend); +#else req = (ompi_request_t*)mca_pml_ucx_common_send(ep, buf, count, datatype, mca_pml_ucx_get_datatype(datatype), PML_UCX_MAKE_SEND_TAG(tag, comm), mode, mca_pml_ucx_send_completion); +#endif if (req == NULL) { PML_UCX_VERBOSE(8, "returning completed request"); @@ -785,19 +865,19 @@ static inline __opal_attribute_always_inline__ int mca_pml_ucx_send_nb(ucp_ep_h ep, const void *buf, size_t count, ompi_datatype_t *datatype, ucp_datatype_t ucx_datatype, - ucp_tag_t tag, mca_pml_base_send_mode_t mode, - ucp_send_callback_t cb) + ucp_tag_t tag, mca_pml_base_send_mode_t mode) { ompi_request_t *req; req = (ompi_request_t*)mca_pml_ucx_common_send(ep, buf, count, datatype, mca_pml_ucx_get_datatype(datatype), - tag, mode, cb); + tag, mode, + mca_pml_ucx_send_completion_empty); if (OPAL_LIKELY(req == NULL)) { return OMPI_SUCCESS; } else if (!UCS_PTR_IS_ERR(req)) { PML_UCX_VERBOSE(8, "got request %p", (void*)req); - MCA_COMMON_UCX_WAIT_LOOP(req, ompi_pml_ucx.ucp_worker, "ucx send", ompi_request_free(&req)); + MCA_COMMON_UCX_WAIT_LOOP(req, ompi_pml_ucx.ucp_worker, "ucx send", ucp_request_free(req)); } else { PML_UCX_ERROR("ucx send failed: %s", ucs_status_string(UCS_PTR_STATUS(req))); return OMPI_ERROR; @@ -807,20 +887,40 @@ #if HAVE_DECL_UCP_TAG_SEND_NBR static inline __opal_attribute_always_inline__ int mca_pml_ucx_send_nbr(ucp_ep_h ep, const void *buf, size_t count, - ucp_datatype_t ucx_datatype, ucp_tag_t tag) - + ompi_datatype_t *datatype, ucp_tag_t tag) { - ucs_status_ptr_t req; - ucs_status_t status; - /* coverity[bad_alloc_arithmetic] */ - req = PML_UCX_REQ_ALLOCA(); - status = ucp_tag_send_nbr(ep, buf, count, ucx_datatype, tag, req); + ucs_status_ptr_t req = PML_UCX_REQ_ALLOCA(); +#if HAVE_DECL_UCP_TAG_SEND_NBX + pml_ucx_datatype_t *op_data = mca_pml_ucx_get_op_data(datatype); + ucp_request_param_t param = { + .op_attr_mask = UCP_OP_ATTR_FIELD_REQUEST | + (op_data->op_param.send.op_attr_mask & UCP_OP_ATTR_FIELD_DATATYPE) | + UCP_OP_ATTR_FLAG_FAST_CMPL, + .datatype = op_data->op_param.send.datatype, + .request = req + }; + + req = ucp_tag_send_nbx(ep, buf, + mca_pml_ucx_get_data_size(op_data, count), + tag, ¶m); + if (OPAL_LIKELY(req == UCS_OK)) { + return OMPI_SUCCESS; + } else if (UCS_PTR_IS_ERR(req)) { + PML_UCX_ERROR("%s failed: %d, %s", __func__, UCS_PTR_STATUS(req), + ucs_status_string(UCS_PTR_STATUS(req))); + return OPAL_ERROR; + } +#else + ucs_status_t status; + status = ucp_tag_send_nbr(ep, buf, count, + mca_pml_ucx_get_datatype(datatype), tag, req); if (OPAL_LIKELY(status == UCS_OK)) { return OMPI_SUCCESS; } +#endif - MCA_COMMON_UCX_WAIT_LOOP(req, ompi_pml_ucx.ucp_worker, "ucx send", (void)0); + MCA_COMMON_UCX_WAIT_LOOP(req, ompi_pml_ucx.ucp_worker, "ucx send nbr", (void)0); } #endif @@ -841,16 +941,14 @@ #if HAVE_DECL_UCP_TAG_SEND_NBR if (OPAL_LIKELY((MCA_PML_BASE_SEND_BUFFERED != mode) && (MCA_PML_BASE_SEND_SYNCHRONOUS != mode))) { - return mca_pml_ucx_send_nbr(ep, buf, count, - mca_pml_ucx_get_datatype(datatype), + return mca_pml_ucx_send_nbr(ep, buf, count, datatype, PML_UCX_MAKE_SEND_TAG(tag, comm)); } #endif return mca_pml_ucx_send_nb(ep, buf, count, datatype, mca_pml_ucx_get_datatype(datatype), - PML_UCX_MAKE_SEND_TAG(tag, comm), mode, - mca_pml_ucx_send_completion); + PML_UCX_MAKE_SEND_TAG(tag, comm), mode); } int mca_pml_ucx_iprobe(int src, int tag, struct ompi_communicator_t* comm, @@ -869,7 +967,7 @@ 0, &info); if (ucp_msg != NULL) { *matched = 1; - mca_pml_ucx_set_recv_status_safe(mpi_status, UCS_OK, &info); + mca_pml_ucx_set_recv_status_public(mpi_status, UCS_OK, &info); } else { (++progress_count % opal_common_ucx.progress_iterations) ? (void)ucp_worker_progress(ompi_pml_ucx.ucp_worker) : opal_progress(); @@ -893,7 +991,7 @@ ucp_msg = ucp_tag_probe_nb(ompi_pml_ucx.ucp_worker, ucp_tag, ucp_tag_mask, 0, &info); if (ucp_msg != NULL) { - mca_pml_ucx_set_recv_status_safe(mpi_status, UCS_OK, &info); + mca_pml_ucx_set_recv_status_public(mpi_status, UCS_OK, &info); return OMPI_SUCCESS; } } @@ -918,7 +1016,7 @@ PML_UCX_MESSAGE_NEW(comm, ucp_msg, &info, message); PML_UCX_VERBOSE(8, "got message %p (%p)", (void*)*message, (void*)ucp_msg); *matched = 1; - mca_pml_ucx_set_recv_status_safe(mpi_status, UCS_OK, &info); + mca_pml_ucx_set_recv_status_public(mpi_status, UCS_OK, &info); } else { (++progress_count % opal_common_ucx.progress_iterations) ? (void)ucp_worker_progress(ompi_pml_ucx.ucp_worker) : opal_progress(); @@ -944,7 +1042,7 @@ if (ucp_msg != NULL) { PML_UCX_MESSAGE_NEW(comm, ucp_msg, &info, message); PML_UCX_VERBOSE(8, "got message %p (%p)", (void*)*message, (void*)ucp_msg); - mca_pml_ucx_set_recv_status_safe(mpi_status, UCS_OK, &info); + mca_pml_ucx_set_recv_status_public(mpi_status, UCS_OK, &info); return OMPI_SUCCESS; } } @@ -992,8 +1090,7 @@ PML_UCX_MESSAGE_RELEASE(message); - ompi_request_wait(&req, status); - return OMPI_SUCCESS; + return ompi_request_wait(&req, status); } int mca_pml_ucx_start(size_t count, ompi_request_t** requests) @@ -1018,8 +1115,8 @@ tmp_req = (ompi_request_t*)mca_pml_ucx_common_send(preq->send.ep, preq->buffer, preq->count, - preq->datatype.ompi_datatype, - preq->datatype.datatype, + preq->ompi_datatype, + preq->datatype, preq->tag, preq->send.mode, mca_pml_ucx_psend_completion); @@ -1027,7 +1124,7 @@ PML_UCX_VERBOSE(8, "start recv request %p", (void*)preq); tmp_req = (ompi_request_t*)ucp_tag_recv_nb(ompi_pml_ucx.ucp_worker, preq->buffer, preq->count, - preq->datatype.datatype, + preq->datatype, preq->tag, preq->recv.tag_mask, mca_pml_ucx_precv_completion); diff -Nru openmpi-4.0.3/ompi/mca/pml/ucx/pml_ucx_component.c openmpi-4.1.4/ompi/mca/pml/ucx/pml_ucx_component.c --- openmpi-4.0.3/ompi/mca/pml/ucx/pml_ucx_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/ucx/pml_ucx_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -49,6 +49,10 @@ static int mca_pml_ucx_component_register(void) { +#if HAVE_DECL_UCP_OP_ATTR_FLAG_MULTI_SEND + int multi_send_op_attr_enable; +#endif + ompi_pml_ucx.priority = 51; (void) mca_base_component_var_register(&mca_pml_ucx_component.pmlm_version, "priority", "Priority of the UCX component", @@ -64,6 +68,35 @@ OPAL_INFO_LVL_3, MCA_BASE_VAR_SCOPE_LOCAL, &ompi_pml_ucx.num_disconnect); + +#if HAVE_DECL_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK + ompi_pml_ucx.request_leak_check = false; + (void) mca_base_component_var_register(&mca_pml_ucx_component.pmlm_version, "request_leak_check", + "Enable showing a warning during MPI_Finalize if some " + "non-blocking MPI requests have not been released", + MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0, + OPAL_INFO_LVL_3, + MCA_BASE_VAR_SCOPE_LOCAL, + &ompi_pml_ucx.request_leak_check); +#else + /* If UCX does not support ignoring leak check, then it's always enabled */ + ompi_pml_ucx.request_leak_check = true; +#endif + + ompi_pml_ucx.op_attr_nonblocking = 0; +#if HAVE_DECL_UCP_OP_ATTR_FLAG_MULTI_SEND + multi_send_op_attr_enable = 0; + (void) mca_base_component_var_register(&mca_pml_ucx_component.pmlm_version, "multi_send_nb", + "Enable passing multi-send optimization flag for nonblocking operations", + MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0, + OPAL_INFO_LVL_3, + MCA_BASE_VAR_SCOPE_LOCAL, + &multi_send_op_attr_enable); + if (multi_send_op_attr_enable) { + ompi_pml_ucx.op_attr_nonblocking = UCP_OP_ATTR_FLAG_MULTI_SEND; + } +#endif + opal_common_ucx_mca_var_register(&mca_pml_ucx_component.pmlm_version); return 0; } @@ -92,13 +125,26 @@ mca_pml_ucx_component_init(int* priority, bool enable_progress_threads, bool enable_mpi_threads) { + opal_common_ucx_support_level_t support_level; int ret; + support_level = opal_common_ucx_support_level(ompi_pml_ucx.ucp_context); + if (support_level == OPAL_COMMON_UCX_SUPPORT_NONE) { + return NULL; + } + if ( (ret = mca_pml_ucx_init(enable_mpi_threads)) != 0) { return NULL; } - *priority = ompi_pml_ucx.priority; + /* + * If found supported devices - set to the configured (high) priority. + * Otherwise - Found only supported transports (which could be exposed by + * unsupported devices), so set a priority lower than ob1. + */ + *priority = (support_level == OPAL_COMMON_UCX_SUPPORT_DEVICE) ? + ompi_pml_ucx.priority : 19; + PML_UCX_VERBOSE(2, "returning priority %d", *priority); return &ompi_pml_ucx.super; } diff -Nru openmpi-4.0.3/ompi/mca/pml/ucx/pml_ucx_datatype.c openmpi-4.1.4/ompi/mca/pml/ucx/pml_ucx_datatype.c --- openmpi-4.0.3/ompi/mca/pml/ucx/pml_ucx_datatype.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/ucx/pml_ucx_datatype.c 2022-05-29 09:51:40.000000000 +0000 @@ -8,12 +8,20 @@ */ #include "pml_ucx_datatype.h" +#include "pml_ucx_request.h" #include "ompi/runtime/mpiruntime.h" #include "ompi/attribute/attribute.h" #include +#include +#include +#ifdef HAVE_UCP_REQUEST_PARAM_T +#define PML_UCX_DATATYPE_SET_VALUE(_datatype, _val) \ + (_datatype)->op_param.send._val; \ + (_datatype)->op_param.recv._val; +#endif static void* pml_ucx_generic_datatype_start_pack(void *context, const void *buffer, size_t count) @@ -133,42 +141,107 @@ { ucp_datatype_t ucp_datatype = (ucp_datatype_t)attr_val; +#ifdef HAVE_UCP_REQUEST_PARAM_T + free((void*)datatype->pml_data); +#else PML_UCX_ASSERT((uint64_t)ucp_datatype == datatype->pml_data); - +#endif ucp_dt_destroy(ucp_datatype); datatype->pml_data = PML_UCX_DATATYPE_INVALID; return OMPI_SUCCESS; } +__opal_attribute_always_inline__ +static inline int mca_pml_ucx_datatype_is_contig(ompi_datatype_t *datatype) +{ + ptrdiff_t lb; + + ompi_datatype_type_lb(datatype, &lb); + + return (datatype->super.flags & OPAL_DATATYPE_FLAG_CONTIGUOUS) && + (datatype->super.flags & OPAL_DATATYPE_FLAG_NO_GAPS) && + (lb == 0); +} + +#ifdef HAVE_UCP_REQUEST_PARAM_T +__opal_attribute_always_inline__ static inline +pml_ucx_datatype_t *mca_pml_ucx_init_nbx_datatype(ompi_datatype_t *datatype, + ucp_datatype_t ucp_datatype, + size_t size) +{ + pml_ucx_datatype_t *pml_datatype; + int is_contig_pow2; + + pml_datatype = malloc(sizeof(*pml_datatype)); + if (pml_datatype == NULL) { + PML_UCX_ERROR("Failed to allocate datatype structure"); + ompi_mpi_abort(&ompi_mpi_comm_world.comm, 1); + } + + pml_datatype->datatype = ucp_datatype; + pml_datatype->op_param.send.op_attr_mask = UCP_OP_ATTR_FIELD_CALLBACK; + pml_datatype->op_param.send.cb.send = mca_pml_ucx_send_nbx_completion; + pml_datatype->op_param.recv.op_attr_mask = UCP_OP_ATTR_FIELD_CALLBACK | + UCP_OP_ATTR_FLAG_NO_IMM_CMPL; + pml_datatype->op_param.recv.cb.recv = mca_pml_ucx_recv_nbx_completion; + + is_contig_pow2 = mca_pml_ucx_datatype_is_contig(datatype) && + (size && !(size & (size - 1))); /* is_pow2(size) */ + if (is_contig_pow2) { + pml_datatype->size_shift = (int)(log(size) / log(2.0)); /* log2(size) */ + } else { + pml_datatype->size_shift = 0; + PML_UCX_DATATYPE_SET_VALUE(pml_datatype, op_attr_mask |= UCP_OP_ATTR_FIELD_DATATYPE); + PML_UCX_DATATYPE_SET_VALUE(pml_datatype, datatype = ucp_datatype); + } + + pml_datatype->op_param.isend = pml_datatype->op_param.send; + pml_datatype->op_param.irecv = pml_datatype->op_param.recv; + pml_datatype->op_param.isend.op_attr_mask |= ompi_pml_ucx.op_attr_nonblocking; + pml_datatype->op_param.irecv.op_attr_mask |= ompi_pml_ucx.op_attr_nonblocking; + + return pml_datatype; +} +#endif + ucp_datatype_t mca_pml_ucx_init_datatype(ompi_datatype_t *datatype) { + static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; + size_t size = 0; /* init to suppress compiler warning */ ucp_datatype_t ucp_datatype; ucs_status_t status; - ptrdiff_t lb; - size_t size; int ret; - ompi_datatype_type_lb(datatype, &lb); + pthread_mutex_lock(&lock); - if ((datatype->super.flags & OPAL_DATATYPE_FLAG_CONTIGUOUS) && - (datatype->super.flags & OPAL_DATATYPE_FLAG_NO_GAPS) && - (lb == 0)) - { - ompi_datatype_type_size(datatype, &size); - PML_UCX_ASSERT(size > 0); - datatype->pml_data = ucp_dt_make_contig(size); - return datatype->pml_data; + if (datatype->pml_data != PML_UCX_DATATYPE_INVALID) { + /* datatype is already initialized in concurrent thread */ + goto out; } - status = ucp_dt_create_generic(&pml_ucx_generic_datatype_ops, - datatype, &ucp_datatype); - if (status != UCS_OK) { - PML_UCX_ERROR("Failed to create UCX datatype for %s", datatype->name); - ompi_mpi_abort(&ompi_mpi_comm_world.comm, 1); + if (mca_pml_ucx_datatype_is_contig(datatype)) { + ompi_datatype_type_size(datatype, &size); + PML_UCX_ASSERT(size > 0); + ucp_datatype = ucp_dt_make_contig(size); + PML_UCX_VERBOSE(7, "created contig UCX datatype 0x%"PRIx64, + ucp_datatype) + } else { + status = ucp_dt_create_generic(&pml_ucx_generic_datatype_ops, + datatype, &ucp_datatype); + if (status != UCS_OK) { + int err = MPI_ERR_INTERN; + PML_UCX_ERROR("Failed to create UCX datatype for %s", + datatype->name); + /* TODO: this error should return to the caller and invoke an error + * handler from the MPI API call. + * For now, it is fatal. */ + ompi_mpi_errors_are_fatal_comm_handler(NULL, &err, + "Failed to allocate " + "datatype structure"); + } + PML_UCX_VERBOSE(7, "created generic UCX datatype 0x%"PRIx64, ucp_datatype) } - datatype->pml_data = ucp_datatype; - /* Add custom attribute, to clean up UCX resources when OMPI datatype is * released. */ @@ -186,9 +259,19 @@ } } - PML_UCX_VERBOSE(7, "created generic UCX datatype 0x%"PRIx64, ucp_datatype) +#ifdef HAVE_UCP_REQUEST_PARAM_T + UCS_STATIC_ASSERT(sizeof(datatype->pml_data) >= sizeof(pml_ucx_datatype_t*)); + datatype->pml_data = (uint64_t)mca_pml_ucx_init_nbx_datatype(datatype, + ucp_datatype, + size); +#else + datatype->pml_data = ucp_datatype; +#endif + +out: + pthread_mutex_unlock(&lock); - return ucp_datatype; + return mca_pml_ucx_from_ompi_datatype(datatype); } static void mca_pml_ucx_convertor_construct(mca_pml_ucx_convertor_t *convertor) diff -Nru openmpi-4.0.3/ompi/mca/pml/ucx/pml_ucx_datatype.h openmpi-4.1.4/ompi/mca/pml/ucx/pml_ucx_datatype.h --- openmpi-4.0.3/ompi/mca/pml/ucx/pml_ucx_datatype.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/ucx/pml_ucx_datatype.h 2022-05-29 09:51:40.000000000 +0000 @@ -15,14 +15,26 @@ #define PML_UCX_DATATYPE_INVALID 0 +#ifdef HAVE_UCP_REQUEST_PARAM_T +typedef struct { + ucp_datatype_t datatype; + int size_shift; + struct { + ucp_request_param_t send; + ucp_request_param_t isend; + ucp_request_param_t recv; + ucp_request_param_t irecv; + } op_param; +} pml_ucx_datatype_t; +#endif + struct pml_ucx_convertor { - opal_free_list_item_t super; - ompi_datatype_t *datatype; - opal_convertor_t opal_conv; - size_t offset; + opal_free_list_item_t super; + ompi_datatype_t *datatype; + opal_convertor_t opal_conv; + size_t offset; }; - ucp_datatype_t mca_pml_ucx_init_datatype(ompi_datatype_t *datatype); int mca_pml_ucx_datatype_attr_del_fn(ompi_datatype_t* datatype, int keyval, @@ -31,15 +43,49 @@ OBJ_CLASS_DECLARATION(mca_pml_ucx_convertor_t); +__opal_attribute_always_inline__ +static inline ucp_datatype_t +mca_pml_ucx_from_ompi_datatype(ompi_datatype_t *datatype) +{ +#ifdef HAVE_UCP_REQUEST_PARAM_T + return ((pml_ucx_datatype_t*)datatype->pml_data)->datatype; +#else + return (ucp_datatype_t)datatype->pml_data; +#endif +} + + +__opal_attribute_always_inline__ static inline ucp_datatype_t mca_pml_ucx_get_datatype(ompi_datatype_t *datatype) { - ucp_datatype_t ucp_type = datatype->pml_data; + if (OPAL_UNLIKELY(datatype->pml_data == PML_UCX_DATATYPE_INVALID)) { + return mca_pml_ucx_init_datatype(datatype); + } + + return mca_pml_ucx_from_ompi_datatype(datatype); +} + +#ifdef HAVE_UCP_REQUEST_PARAM_T +__opal_attribute_always_inline__ +static inline pml_ucx_datatype_t* +mca_pml_ucx_get_op_data(ompi_datatype_t *datatype) +{ + pml_ucx_datatype_t *ucp_type = (pml_ucx_datatype_t*)datatype->pml_data; if (OPAL_LIKELY(ucp_type != PML_UCX_DATATYPE_INVALID)) { return ucp_type; } - return mca_pml_ucx_init_datatype(datatype); + mca_pml_ucx_init_datatype(datatype); + return (pml_ucx_datatype_t*)datatype->pml_data; +} + +__opal_attribute_always_inline__ +static inline size_t mca_pml_ucx_get_data_size(pml_ucx_datatype_t *op_data, + size_t count) +{ + return count << op_data->size_shift; } +#endif #endif /* PML_UCX_DATATYPE_H_ */ diff -Nru openmpi-4.0.3/ompi/mca/pml/ucx/pml_ucx.h openmpi-4.1.4/ompi/mca/pml/ucx/pml_ucx.h --- openmpi-4.0.3/ompi/mca/pml/ucx/pml_ucx.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/ucx/pml_ucx.h 2022-05-29 09:51:40.000000000 +0000 @@ -57,6 +57,9 @@ mca_pml_ucx_freelist_t convs; int priority; + bool cuda_initialized; + bool request_leak_check; + uint32_t op_attr_nonblocking; }; extern mca_pml_base_component_2_0_0_t mca_pml_ucx_component; diff -Nru openmpi-4.0.3/ompi/mca/pml/ucx/pml_ucx_request.c openmpi-4.1.4/ompi/mca/pml/ucx/pml_ucx_request.c --- openmpi-4.0.3/ompi/mca/pml/ucx/pml_ucx_request.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/ucx/pml_ucx_request.c 2022-05-29 09:51:40.000000000 +0000 @@ -34,7 +34,8 @@ return OMPI_SUCCESS; } -void mca_pml_ucx_send_completion(void *request, ucs_status_t status) +__opal_attribute_always_inline__ static inline void +mca_pml_ucx_send_completion_internal(void *request, ucs_status_t status) { ompi_request_t *req = request; @@ -46,7 +47,8 @@ ompi_request_complete(req, true); } -void mca_pml_ucx_bsend_completion(void *request, ucs_status_t status) +__opal_attribute_always_inline__ static inline void +mca_pml_ucx_bsend_completion_internal(void *request, ucs_status_t status) { ompi_request_t *req = request; @@ -59,8 +61,9 @@ mca_pml_ucx_request_free(&req); } -void mca_pml_ucx_recv_completion(void *request, ucs_status_t status, - ucp_tag_recv_info_t *info) +__opal_attribute_always_inline__ static inline void +mca_pml_ucx_recv_completion_internal(void *request, ucs_status_t status, + const ucp_tag_recv_info_t *info) { ompi_request_t *req = request; @@ -73,6 +76,46 @@ ompi_request_complete(req, true); } +void mca_pml_ucx_send_completion(void *request, ucs_status_t status) +{ + mca_pml_ucx_send_completion_internal(request, status); +} + +void mca_pml_ucx_send_completion_empty(void *request, ucs_status_t status) +{ + /* empty */ +} + +void mca_pml_ucx_bsend_completion(void *request, ucs_status_t status) +{ + mca_pml_ucx_bsend_completion_internal(request, status); +} + +void mca_pml_ucx_recv_completion(void *request, ucs_status_t status, + ucp_tag_recv_info_t *info) +{ + mca_pml_ucx_recv_completion_internal(request, status, info); +} + +void mca_pml_ucx_send_nbx_completion(void *request, ucs_status_t status, + void *user_data) +{ + mca_pml_ucx_send_completion_internal(request, status); +} + +void mca_pml_ucx_bsend_nbx_completion(void *request, ucs_status_t status, + void *user_data) +{ + mca_pml_ucx_bsend_completion_internal(request, status); +} + +void mca_pml_ucx_recv_nbx_completion(void *request, ucs_status_t status, + const ucp_tag_recv_info_t *info, + void *user_data) +{ + mca_pml_ucx_recv_completion_internal(request, status, info); +} + static void mca_pml_ucx_persistent_request_detach(mca_pml_ucx_persistent_request_t *preq, ompi_request_t *tmp_req) { @@ -174,10 +217,7 @@ mca_pml_ucx_persistent_request_detach(preq, tmp_req); ucp_request_free(tmp_req); } - if ((preq->flags & MCA_PML_UCX_REQUEST_FLAG_SEND) && - (MCA_PML_BASE_SEND_BUFFERED == preq->send.mode)) { - OBJ_RELEASE(preq->datatype.ompi_datatype); - } + OMPI_DATATYPE_RELEASE(preq->ompi_datatype); PML_UCX_FREELIST_RETURN(&ompi_pml_ucx.persistent_reqs, &preq->ompi.super); *rptr = MPI_REQUEST_NULL; return OMPI_SUCCESS; diff -Nru openmpi-4.0.3/ompi/mca/pml/ucx/pml_ucx_request.h openmpi-4.1.4/ompi/mca/pml/ucx/pml_ucx_request.h --- openmpi-4.0.3/ompi/mca/pml/ucx/pml_ucx_request.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/ucx/pml_ucx_request.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* * Copyright (C) Mellanox Technologies Ltd. 2001-2015. ALL RIGHTS RESERVED. - * Copyright (c) 2016 The University of Tennessee and The University + * Copyright (c) 2016-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * $COPYRIGHT$ @@ -99,10 +99,8 @@ unsigned flags; void *buffer; size_t count; - union { - ucp_datatype_t datatype; - ompi_datatype_t *ompi_datatype; - } datatype; + ucp_datatype_t datatype; + ompi_datatype_t *ompi_datatype; ucp_tag_t tag; struct { mca_pml_base_send_mode_t mode; @@ -119,6 +117,8 @@ void mca_pml_ucx_recv_completion(void *request, ucs_status_t status, ucp_tag_recv_info_t *info); +void mca_pml_ucx_send_completion_empty(void *request, ucs_status_t status); + void mca_pml_ucx_psend_completion(void *request, ucs_status_t status); void mca_pml_ucx_bsend_completion(void *request, ucs_status_t status); @@ -126,6 +126,16 @@ void mca_pml_ucx_precv_completion(void *request, ucs_status_t status, ucp_tag_recv_info_t *info); +void mca_pml_ucx_send_nbx_completion(void *request, ucs_status_t status, + void *user_data); + +void mca_pml_ucx_bsend_nbx_completion(void *request, ucs_status_t status, + void *user_data); + +void mca_pml_ucx_recv_nbx_completion(void *request, ucs_status_t status, + const ucp_tag_recv_info_t *info, + void *user_data); + void mca_pml_ucx_persistent_request_complete(mca_pml_ucx_persistent_request_t *preq, ompi_request_t *tmp_req); @@ -141,8 +151,15 @@ req->req_complete = REQUEST_PENDING; } -static void mca_pml_ucx_set_send_status(ompi_status_public_t* mpi_status, - ucs_status_t status) +/* Use when setting a request's status field. + * Note that a new function 'mca_mpl_ucx_set_send_status_public' shall + * be created and used instead if updating a publicly visible status becomes + * necessary (i.e., the status argument in an user-visible procedure), see the + * recv_status case below for rationale. + */ +__opal_attribute_always_inline__ +static inline void mca_pml_ucx_set_send_status(ompi_status_public_t* mpi_status, + ucs_status_t status) { if (OPAL_LIKELY(status == UCS_OK)) { mpi_status->MPI_ERROR = MPI_SUCCESS; @@ -154,14 +171,18 @@ } } -static inline void mca_pml_ucx_set_recv_status(ompi_status_public_t* mpi_status, +/* Use when setting a request's status field. + * Note that the next function 'mca_mpl_ucx_set_recv_status_public' shall + * be used instead when updating a publicly visible status (i.e., the + * status argument in an user-visible procedure). + */ +static inline int mca_pml_ucx_set_recv_status(ompi_status_public_t* mpi_status, ucs_status_t ucp_status, const ucp_tag_recv_info_t *info) { - int64_t tag; + int64_t tag = info->sender_tag; if (OPAL_LIKELY(ucp_status == UCS_OK)) { - tag = info->sender_tag; mpi_status->MPI_ERROR = MPI_SUCCESS; mpi_status->MPI_SOURCE = PML_UCX_TAG_GET_SOURCE(tag); mpi_status->MPI_TAG = PML_UCX_TAG_GET_MPI_TAG(tag); @@ -169,21 +190,58 @@ mpi_status->_ucount = info->length; } else if (ucp_status == UCS_ERR_MESSAGE_TRUNCATED) { mpi_status->MPI_ERROR = MPI_ERR_TRUNCATE; + mpi_status->MPI_SOURCE = PML_UCX_TAG_GET_SOURCE(tag); + mpi_status->MPI_TAG = PML_UCX_TAG_GET_MPI_TAG(tag); + mpi_status->_cancelled = false; + mpi_status->_ucount = info->length; } else if (ucp_status == UCS_ERR_CANCELED) { mpi_status->MPI_ERROR = MPI_SUCCESS; mpi_status->_cancelled = true; } else { mpi_status->MPI_ERROR = MPI_ERR_INTERN; } + + return mpi_status->MPI_ERROR; } -static inline void mca_pml_ucx_set_recv_status_safe(ompi_status_public_t* mpi_status, - ucs_status_t ucp_status, - const ucp_tag_recv_info_t *info) +/* Use when setting a publicly visible status (i.e., the status argument in an + * user-visible procedure). + * Except in procedures that return MPI_ERR_IN_STATUS, the MPI_ERROR + * field of a status object shall never be modified + * See MPI-1.1 doc, sec 3.2.5, p.22 + */ +static inline int mca_pml_ucx_set_recv_status_public(ompi_status_public_t* mpi_status, + ucs_status_t ucp_status, + const ucp_tag_recv_info_t *info) { if (mpi_status != MPI_STATUS_IGNORE) { - mca_pml_ucx_set_recv_status(mpi_status, ucp_status, info); + if (OPAL_LIKELY(ucp_status == UCS_OK)) { + uint64_t tag = info->sender_tag; + mpi_status->MPI_SOURCE = PML_UCX_TAG_GET_SOURCE(tag); + mpi_status->MPI_TAG = PML_UCX_TAG_GET_MPI_TAG(tag); + mpi_status->_cancelled = false; + mpi_status->_ucount = info->length; + return MPI_SUCCESS; + } else if (ucp_status == UCS_ERR_MESSAGE_TRUNCATED) { + uint64_t tag = info->sender_tag; + mpi_status->MPI_SOURCE = PML_UCX_TAG_GET_SOURCE(tag); + mpi_status->MPI_TAG = PML_UCX_TAG_GET_MPI_TAG(tag); + mpi_status->_cancelled = false; + mpi_status->_ucount = info->length; + return MPI_ERR_TRUNCATE; + } else if (ucp_status == UCS_ERR_CANCELED) { + mpi_status->_cancelled = true; + return MPI_SUCCESS; + } else { + return MPI_ERR_INTERN; + } + } else if (ucp_status == UCS_ERR_MESSAGE_TRUNCATED) { + return MPI_ERR_TRUNCATE; + } else if (OPAL_LIKELY(ucp_status == UCS_OK) || (ucp_status == UCS_ERR_CANCELED)) { + return MPI_SUCCESS; } + + return MPI_ERR_INTERN; } OBJ_CLASS_DECLARATION(mca_pml_ucx_persistent_request_t); diff -Nru openmpi-4.0.3/ompi/mca/pml/v/Makefile.in openmpi-4.1.4/ompi/mca/pml/v/Makefile.in --- openmpi-4.0.3/ompi/mca/pml/v/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/v/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -114,6 +114,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -121,6 +123,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -144,6 +147,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -246,6 +250,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -253,6 +258,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -333,6 +339,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -355,9 +362,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -367,6 +378,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -387,6 +399,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -651,6 +664,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1471,6 +1487,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1503,9 +1523,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1526,6 +1555,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1610,9 +1640,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1673,6 +1700,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1686,6 +1716,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/pml/yalla/Makefile.in openmpi-4.1.4/ompi/mca/pml/yalla/Makefile.in --- openmpi-4.0.3/ompi/mca/pml/yalla/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/pml/yalla/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -114,6 +114,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -121,6 +123,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -144,6 +147,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -246,6 +250,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -253,6 +258,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -333,6 +339,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -355,9 +362,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -367,6 +378,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -387,6 +399,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -656,6 +669,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1476,6 +1492,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1508,9 +1528,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1531,6 +1560,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1615,9 +1645,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1678,6 +1705,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1691,6 +1721,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/rte/Makefile.in openmpi-4.1.4/ompi/mca/rte/Makefile.in --- openmpi-4.0.3/ompi/mca/rte/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/rte/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -117,6 +117,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -124,6 +126,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -147,6 +150,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -249,6 +253,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -256,6 +261,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -336,6 +342,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -358,9 +365,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -370,6 +381,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -390,6 +402,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -645,6 +658,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1465,6 +1481,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1497,9 +1517,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1520,6 +1549,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1604,9 +1634,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1667,6 +1694,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1680,6 +1710,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/rte/orte/Makefile.in openmpi-4.1.4/ompi/mca/rte/orte/Makefile.in --- openmpi-4.0.3/ompi/mca/rte/orte/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/rte/orte/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -111,6 +111,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -118,6 +120,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -141,6 +144,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -243,6 +247,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -250,6 +255,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -330,6 +336,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -352,9 +359,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -364,6 +375,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -384,6 +396,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -646,6 +659,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1466,6 +1482,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1498,9 +1518,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1521,6 +1550,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1605,9 +1635,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1668,6 +1695,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1681,6 +1711,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/rte/pmix/Makefile.in openmpi-4.1.4/ompi/mca/rte/pmix/Makefile.in --- openmpi-4.0.3/ompi/mca/rte/pmix/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/rte/pmix/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -111,6 +111,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -118,6 +120,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -141,6 +144,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -243,6 +247,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -250,6 +255,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -330,6 +336,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -352,9 +359,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -364,6 +375,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -384,6 +396,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -643,6 +656,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1463,6 +1479,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1495,9 +1515,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1518,6 +1547,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1602,9 +1632,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1665,6 +1692,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1678,6 +1708,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/rte/pmix/rte_pmix.h openmpi-4.1.4/ompi/mca/rte/pmix/rte_pmix.h --- openmpi-4.0.3/ompi/mca/rte/pmix/rte_pmix.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/rte/pmix/rte_pmix.h 2022-05-29 09:51:40.000000000 +0000 @@ -7,6 +7,7 @@ * and Technology (RIST). All rights reserved. * Copyright (c) 2015 Intel, Inc. All rights reserved. * Copyright (c) 2016-2017 IBM Corporation. All rights reserved. + * Copyright (c) 2021 Nanook Consulting. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -115,6 +116,7 @@ int32_t num_local_peers; uint32_t num_procs; uint32_t app_num; + char *cpuset; /**< String-representation of bitmap where we are bound */ } pmix_process_info_t; OMPI_DECLSPEC extern pmix_process_info_t pmix_process_info; #define ompi_process_info pmix_process_info diff -Nru openmpi-4.0.3/ompi/mca/rte/pmix/rte_pmix_module.c openmpi-4.1.4/ompi/mca/rte/pmix/rte_pmix_module.c --- openmpi-4.0.3/ompi/mca/rte/pmix/rte_pmix_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/rte/pmix/rte_pmix_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -6,6 +6,7 @@ * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2021 Nanook Consulting. All rights reserved. * $COPYRIGHT$ */ #include "ompi_config.h" @@ -674,6 +675,17 @@ peers = NULL; } + /* get our cpuset */ + val = NULL; + OPAL_MODEX_RECV_VALUE_OPTIONAL(ret, OPAL_PMIX_CPUSET, + &pmix_process_info.my_name, + &val, OPAL_STRING); + if (OPAL_SUCCESS == ret && NULL != val) { + pmix_process_info.cpuset = val; + } else { + pmix_process_info.cpuset = NULL; + } + /* set the locality */ if (NULL != peers) { /* identify our location */ diff -Nru openmpi-4.0.3/ompi/mca/sharedfp/individual/Makefile.in openmpi-4.1.4/ompi/mca/sharedfp/individual/Makefile.in --- openmpi-4.0.3/ompi/mca/sharedfp/individual/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/sharedfp/individual/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -124,6 +124,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -131,6 +133,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -154,6 +157,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -256,6 +260,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -263,6 +268,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -343,6 +349,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -365,9 +372,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -377,6 +388,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -397,6 +409,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -674,6 +687,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1494,6 +1510,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1526,9 +1546,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1549,6 +1578,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1633,9 +1663,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1696,6 +1723,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1709,6 +1739,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/sharedfp/lockedfile/Makefile.in openmpi-4.1.4/ompi/mca/sharedfp/lockedfile/Makefile.in --- openmpi-4.0.3/ompi/mca/sharedfp/lockedfile/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/sharedfp/lockedfile/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -124,6 +124,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -131,6 +133,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -154,6 +157,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -256,6 +260,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -263,6 +268,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -343,6 +349,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -365,9 +372,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -377,6 +388,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -397,6 +409,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -672,6 +685,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1492,6 +1508,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1524,9 +1544,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1547,6 +1576,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1631,9 +1661,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1694,6 +1721,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1707,6 +1737,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile_file_open.c openmpi-4.1.4/ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile_file_open.c --- openmpi-4.0.3/ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile_file_open.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile_file_open.c 2022-05-29 09:51:40.000000000 +0000 @@ -37,6 +37,11 @@ #include #include +#include "opal/util/fd.h" +#include "opal/util/opal_getcwd.h" +#include "opal/util/path.h" +#include "opal/util/os_path.h" + int mca_sharedfp_lockedfile_file_open (struct ompi_communicator_t *comm, const char* filename, int amode, @@ -110,8 +115,26 @@ return OMPI_ERR_OUT_OF_RESOURCE; } snprintf(lockedfilename, filenamelen, "%s-%u-%d%s",filename,masterjobid,int_pid,".lock"); - module_data->filename = lockedfilename; - + if (opal_path_is_absolute(lockedfilename) ) { + module_data->filename = lockedfilename; + } else { + char path[OPAL_PATH_MAX]; + err = opal_getcwd(path, OPAL_PATH_MAX); + if (OPAL_SUCCESS != err) { + free (sh); + free (module_data); + free (lockedfilename); + return err; + } + module_data->filename = opal_os_path(0, path, lockedfilename, NULL); + if (NULL == module_data->filename){ + free (sh); + free (module_data); + free (lockedfilename); + return OMPI_ERROR; + } + } + /*-------------------------------------------------*/ /*Open the lockedfile without shared file pointer */ /*-------------------------------------------------*/ @@ -125,12 +148,19 @@ opal_output(0, "[%d]mca_sharedfp_lockedfile_file_open: Error during file open\n", fh->f_rank); free (sh); - free(module_data); + free (module_data); free (lockedfilename); return OMPI_ERROR; } - write ( handle, &position, sizeof(OMPI_MPI_OFFSET_TYPE) ); - close ( handle ); + err = opal_fd_write (handle, sizeof(OMPI_MPI_OFFSET_TYPE), &position); + if (OPAL_SUCCESS != err) { + free (sh); + free (module_data); + free (lockedfilename); + close (handle); + return err; + } + close (handle); } err = comm->c_coll->coll_barrier ( comm, comm->c_coll->coll_barrier_module ); if ( OMPI_SUCCESS != err ) { diff -Nru openmpi-4.0.3/ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile_request_position.c openmpi-4.1.4/ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile_request_position.c --- openmpi-4.0.3/ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile_request_position.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile_request_position.c 2022-05-29 09:51:40.000000000 +0000 @@ -25,6 +25,9 @@ #include "ompi/constants.h" #include "ompi/mca/sharedfp/sharedfp.h" #include "ompi/mca/sharedfp/base/base.h" +#include "opal/util/output.h" +#include "opal/util/fd.h" + /*Use fcntl to lock the hidden file which stores the current position*/ #include @@ -76,7 +79,10 @@ /* read from the file */ lseek ( fd, 0, SEEK_SET ); - read ( fd, &buf, sizeof(OMPI_MPI_OFFSET_TYPE)); + ret = opal_fd_read ( fd, sizeof(OMPI_MPI_OFFSET_TYPE), &buf); + if (OPAL_SUCCESS != ret ) { + goto exit; + } if ( mca_sharedfp_lockedfile_verbose ) { opal_output(ompi_sharedfp_base_framework.framework_output, "sharedfp_lockedfile_request_position: Read last_offset=%lld! ret=%d\n",buf, ret); @@ -92,8 +98,11 @@ /* write to the file */ lseek ( fd, 0, SEEK_SET ); - write ( fd, &position, sizeof(OMPI_MPI_OFFSET_TYPE)); - + ret = opal_fd_write (fd, sizeof(OMPI_MPI_OFFSET_TYPE), &position); + /* No need to handle error case here, the subsequent steps are identical + in case of ret != OPAL_SUCCESS, namely release lock and return ret */ + +exit: /* unlock the file */ if ( mca_sharedfp_lockedfile_verbose ) { opal_output(ompi_sharedfp_base_framework.framework_output, @@ -115,7 +124,10 @@ if (fcntl(fd, F_SETLK, &fl) == -1) { opal_output(0,"sharedfp_lockedfile_request_position:failed to release lock for fd: %d\n",fd); opal_output(0,"error(%i): %s", errno, strerror(errno)); - return OMPI_ERROR; + /* Only overwrite error code if it was OPAL_SUCCESS previously */ + if (OPAL_SUCCESS == ret ) { + ret = OMPI_ERROR; + } } else { if ( mca_sharedfp_lockedfile_verbose ) { diff -Nru openmpi-4.0.3/ompi/mca/sharedfp/Makefile.in openmpi-4.1.4/ompi/mca/sharedfp/Makefile.in --- openmpi-4.0.3/ompi/mca/sharedfp/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/sharedfp/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -139,6 +139,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -146,6 +148,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -169,6 +172,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -271,6 +275,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -278,6 +283,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -358,6 +364,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -380,9 +387,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -392,6 +403,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -412,6 +424,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -671,6 +684,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1491,6 +1507,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1523,9 +1543,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1546,6 +1575,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1630,9 +1660,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1693,6 +1720,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1706,6 +1736,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/sharedfp/sm/Makefile.in openmpi-4.1.4/ompi/mca/sharedfp/sm/Makefile.in --- openmpi-4.0.3/ompi/mca/sharedfp/sm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/sharedfp/sm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -124,6 +124,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -131,6 +133,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -154,6 +157,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -256,6 +260,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -263,6 +268,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -343,6 +349,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -365,9 +372,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -377,6 +388,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -397,6 +409,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -667,6 +680,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1487,6 +1503,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1519,9 +1539,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1542,6 +1571,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1626,9 +1656,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1689,6 +1716,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1702,6 +1732,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/sharedfp/sm/sharedfp_sm.c openmpi-4.1.4/ompi/mca/sharedfp/sm/sharedfp_sm.c --- openmpi-4.0.3/ompi/mca/sharedfp/sm/sharedfp_sm.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/sharedfp/sm/sharedfp_sm.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,9 +9,10 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2008-2013 University of Houston. All rights reserved. + * Copyright (c) 2008-2021 University of Houston. All rights reserved. * Copyright (c) 2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2021 Cisco Systems, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -31,6 +32,8 @@ #include "ompi/mca/sharedfp/base/base.h" #include "ompi/mca/sharedfp/sm/sharedfp_sm.h" +#include "opal/util/basename.h" + /* * ******************************************************************* * ************************ actions structure ************************ @@ -94,6 +97,30 @@ return NULL; } } + + + /* Check that we can actually open the required file */ + char *filename_basename = opal_basename((char*)fh->f_filename); + char *sm_filename; + int comm_cid = -1; + int pid = ompi_comm_rank (comm); + + asprintf(&sm_filename, "%s/%s_cid-%d-%d.sm", ompi_process_info.job_session_dir, + filename_basename, comm_cid, pid); + free(filename_basename); + + int sm_fd = open(sm_filename, O_RDWR | O_CREAT, + S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); + if ( sm_fd == -1){ + /*error opening file*/ + opal_output(0,"mca_sharedfp_sm_component_file_query: Error, unable to open file for mmap: %s\n",sm_filename); + free(sm_filename); + return NULL; + } + close (sm_fd); + unlink(sm_filename); + free (sm_filename); + /* This module can run */ *priority = mca_sharedfp_sm_priority; return &sm; diff -Nru openmpi-4.0.3/ompi/mca/sharedfp/sm/sharedfp_sm_file_open.c openmpi-4.1.4/ompi/mca/sharedfp/sm/sharedfp_sm_file_open.c --- openmpi-4.0.3/ompi/mca/sharedfp/sm/sharedfp_sm_file_open.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/sharedfp/sm/sharedfp_sm_file_open.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,11 +9,11 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2013-2018 University of Houston. All rights reserved. + * Copyright (c) 2013-2021 University of Houston. All rights reserved. * Copyright (c) 2013 Intel, Inc. All rights reserved. * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2021 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2016-2017 IBM Corporation. All rights reserved. * $COPYRIGHT$ * @@ -41,6 +41,8 @@ #include "ompi/mca/sharedfp/sharedfp.h" #include "ompi/mca/sharedfp/base/base.h" +#include "opal/util/basename.h" + #include #include #include @@ -57,7 +59,6 @@ struct mca_sharedfp_sm_data * sm_data = NULL; char * filename_basename; char * sm_filename; - int sm_filename_length; struct mca_sharedfp_sm_offset * sm_offset_ptr; struct mca_sharedfp_sm_offset sm_offset; int sm_fd; @@ -101,16 +102,8 @@ ** and then mapping it to memory ** For sharedfp we also want to put the file backed shared memory into the tmp directory */ - filename_basename = basename((char*)filename); + filename_basename = opal_basename((char*)filename); /* format is "%s/%s_cid-%d-%d.sm", see below */ - sm_filename_length = strlen(ompi_process_info.job_session_dir) + 1 + strlen(filename_basename) + 5 + (3*sizeof(uint32_t)+1) + 4; - sm_filename = (char*) malloc( sizeof(char) * sm_filename_length); - if (NULL == sm_filename) { - opal_output(0, "mca_sharedfp_sm_file_open: Error, unable to malloc sm_filename\n"); - free(sm_data); - free(sh); - return OMPI_ERR_OUT_OF_RESOURCE; - } comm_cid = ompi_comm_get_cid(comm); if ( 0 == fh->f_rank ) { @@ -120,13 +113,13 @@ err = comm->c_coll->coll_bcast (&int_pid, 1, MPI_INT, 0, comm, comm->c_coll->coll_bcast_module ); if ( OMPI_SUCCESS != err ) { opal_output(0,"mca_sharedfp_sm_file_open: Error in bcast operation \n"); - free(sm_filename); + free(filename_basename); free(sm_data); free(sh); return err; } - snprintf(sm_filename, sm_filename_length, "%s/%s_cid-%d-%d.sm", ompi_process_info.job_session_dir, + asprintf(&sm_filename, "%s/%s_cid-%d-%d.sm", ompi_process_info.job_session_dir, filename_basename, comm_cid, int_pid); /* open shared memory file, initialize to 0, map into memory */ sm_fd = open(sm_filename, O_RDWR | O_CREAT, @@ -134,6 +127,7 @@ if ( sm_fd == -1){ /*error opening file*/ opal_output(0,"mca_sharedfp_sm_file_open: Error, unable to open file for mmap: %s\n",sm_filename); + free(filename_basename); free(sm_filename); free(sm_data); free(sh); @@ -150,6 +144,7 @@ err = comm->c_coll->coll_barrier (comm, comm->c_coll->coll_barrier_module ); if ( OMPI_SUCCESS != err ) { opal_output(0,"mca_sharedfp_sm_file_open: Error in barrier operation \n"); + free(filename_basename); free(sm_filename); free(sm_data); free(sh); @@ -167,6 +162,7 @@ err = OMPI_ERROR; opal_output(0, "mca_sharedfp_sm_file_open: Error, unable to mmap file: %s\n",sm_filename); opal_output(0, "%s\n", strerror(errno)); + free(filename_basename); free(sm_filename); free(sm_data); free(sh); @@ -185,6 +181,10 @@ sm_data->sem_name = (char*) malloc( sizeof(char) * 253); snprintf(sm_data->sem_name,252,"OMPIO_%s",filename_basename); #endif + // We're now done with filename_basename. Free it here so that we + // don't have to keep freeing it in the error/return cases. + free(filename_basename); + filename_basename = NULL; if( (sm_data->mutex = sem_open(sm_data->sem_name, O_CREAT, 0644, 1)) != SEM_FAILED ) { #elif defined(HAVE_SEM_INIT) diff -Nru openmpi-4.0.3/ompi/mca/topo/basic/Makefile.in openmpi-4.1.4/ompi/mca/topo/basic/Makefile.in --- openmpi-4.0.3/ompi/mca/topo/basic/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/basic/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -113,6 +113,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -120,6 +122,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -143,6 +146,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -245,6 +249,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -252,6 +257,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -332,6 +338,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -354,9 +361,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -366,6 +377,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -386,6 +398,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -658,6 +671,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1478,6 +1494,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1510,9 +1530,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1533,6 +1562,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1617,9 +1647,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1680,6 +1707,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1693,6 +1723,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/topo/Makefile.in openmpi-4.1.4/ompi/mca/topo/Makefile.in --- openmpi-4.0.3/ompi/mca/topo/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -137,6 +137,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -144,6 +146,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -167,6 +170,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -269,6 +273,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -276,6 +281,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -356,6 +362,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -378,9 +385,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -390,6 +401,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -410,6 +422,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -679,6 +692,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1499,6 +1515,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1531,9 +1551,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1554,6 +1583,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1638,9 +1668,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1701,6 +1728,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1714,6 +1744,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/Makefile.in openmpi-4.1.4/ompi/mca/topo/treematch/Makefile.in --- openmpi-4.0.3/ompi/mca/topo/treematch/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -114,6 +114,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -121,6 +123,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -144,6 +147,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -246,6 +250,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -253,6 +258,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -333,6 +339,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -355,9 +362,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -367,6 +378,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -387,6 +399,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -713,6 +726,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1533,6 +1549,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1565,9 +1585,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1588,6 +1617,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1672,9 +1702,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1735,6 +1762,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1748,6 +1778,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/topo_treematch_dist_graph_create.c openmpi-4.1.4/ompi/mca/topo/treematch/topo_treematch_dist_graph_create.c --- openmpi-4.0.3/ompi/mca/topo/treematch/topo_treematch_dist_graph_create.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/topo_treematch_dist_graph_create.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,9 +3,9 @@ * Copyright (c) 2011-2017 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. - * Copyright (c) 2011-2016 INRIA. All rights reserved. - * Copyright (c) 2012-2017 Bordeaux Polytechnic Institute - * Copyright (c) 2015-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2011-2018 Inria. All rights reserved. + * Copyright (c) 2011-2018 Bordeaux Polytechnic Institute + * Copyright (c) 2015-2019 Intel, Inc. All rights reserved. * Copyright (c) 2015-2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2016 Los Alamos National Security, LLC. All rights @@ -36,7 +36,7 @@ #include "opal/mca/pmix/pmix.h" -/* #define __DEBUG__ 1 */ +/* #define __DEBUG__ 1 */ /** * This function is a allreduce between all processes to detect for oversubscription. @@ -204,6 +204,7 @@ * and create a duplicate of the original communicator */ free(vpids); free(colors); + free(lindex_to_grank); goto fallback; /* return with success */ } /* compute local roots ranks in comm_old */ @@ -250,6 +251,7 @@ } if( (0 == num_objs_in_node) || (0 == num_pus_in_node) ) { /* deal with bozo cases: COVERITY 1418505 */ free(colors); + free(lindex_to_grank); goto fallback; /* return with success */ } /* Check for oversubscribing */ @@ -288,6 +290,7 @@ object = hwloc_get_obj_by_depth(opal_hwloc_topology, effective_depth, obj_rank); if( NULL == object) { free(colors); + free(lindex_to_grank); hwloc_bitmap_free(set); goto fallback; /* return with success */ } @@ -315,12 +318,13 @@ OPAL_OUTPUT_VERBOSE((10, ompi_topo_base_framework.framework_output, "Oversubscribing PUs resources => Rank Reordering Impossible \n")); free(colors); + free(lindex_to_grank); hwloc_bitmap_free(set); goto fallback; /* return with success */ } reqs = (MPI_Request *)calloc(num_procs_in_node-1, sizeof(MPI_Request)); - if( rank == lindex_to_grank[0] ) { /* local leader clean the hierarchy */ + if( rank == lindex_to_grank[0] ) { /* local leader cleans the hierarchy */ int array_size = effective_depth + 1; int *myhierarchy = (int *)calloc(array_size, sizeof(int)); @@ -378,7 +382,6 @@ /* Centralized Reordering */ if (0 == mca_topo_treematch_component.reorder_mode) { - int *k = NULL; int *obj_mapping = NULL; int num_objs_total = 0; @@ -449,7 +452,9 @@ for(i = 0; i < num_nodes; i++) num_objs_total += objs_per_node[i]; - obj_mapping = (int *)calloc(num_objs_total,sizeof(int)); + obj_mapping = (int *)malloc(num_objs_total*sizeof(int)); + for(i = 0; i < num_objs_total; i++) + obj_mapping[i] = -1; memcpy(obj_mapping, obj_to_rank_in_comm, objs_per_node[0]*sizeof(int)); displ = objs_per_node[0]; @@ -508,8 +513,8 @@ for(i = 0 ; i < hierarchies[0]; i++) hierarchies[i+1] = tracker[i]->arity; - for(; i < (TM_MAX_LEVELS+1); i++) /* fill up everything else with -1 */ - hierarchies[i] = -1; + for(; i < (TM_MAX_LEVELS+1); i++) /* fill up everything else with 0 */ + hierarchies[i] = 0; /* gather hierarchies iff more than 1 node! */ if ( num_nodes > 1 ) { @@ -592,32 +597,24 @@ for(i = 1 ; i < tm_topology->nb_levels; i++) tm_topology->nb_nodes[i] = tm_topology->nb_nodes[i-1] * tm_topology->arity[i-1]; +#ifdef __DEBUG__ + assert(num_objs_total == (int)tm_topology->nb_nodes[tm_topology->nb_levels-1]); +#endif /* Build process id tab */ - tm_topology->node_id = (int **)calloc(tm_topology->nb_levels, sizeof(int*)); - tm_topology->node_rank = (int **)malloc(sizeof(int *) * tm_topology->nb_levels); - for(i = 0; i < tm_topology->nb_levels; i++) { - tm_topology->node_id[i] = (int *)calloc(tm_topology->nb_nodes[i], sizeof(int)); - tm_topology->node_rank[i] = (int * )calloc(tm_topology->nb_nodes[i], sizeof(int)); - /*note : we make the hypothesis that logical indexes in hwloc range from - 0 to N, are contiguous and crescent. */ - - for( j = 0 ; j < (int)tm_topology->nb_nodes[i] ; j++ ) { - tm_topology->node_id[i][j] = j; - tm_topology->node_rank[i][j] = j; - - /* Should use object->logical_index */ - /* obj = hwloc_get_obj_by_depth(topo,i,j%num_objs_in_node); - id = obj->logical_index + (num_objs_in_node)*(j/num_obj_in_node)*/ - /* - int id = core_numbering[j%nb_core_per_nodes] + (nb_core_per_nodes)*(j/nb_core_per_nodes); - topology->node_id[i][j] = id; - topology->node_rank[i][id] = j; - */ - } + tm_topology->node_id = (int *)malloc(num_objs_total*sizeof(int)); + tm_topology->node_rank = (int *)malloc(num_objs_total*sizeof(int)); + for( i = 0 ; i < num_objs_total ; i++ ) + tm_topology->node_id[i] = tm_topology->node_rank[i] = -1; + /*note : we make the hypothesis that logical indexes in hwloc range from + 0 to N, are contiguous and crescent. */ + for( i = 0 ; i < num_objs_total ; i++ ) { + tm_topology->node_id[i] = obj_mapping[i]; /* use process ranks instead of core numbers */ + if (obj_mapping[i] != -1) /* so that k[i] is the new rank of process i */ + tm_topology->node_rank[obj_mapping[i]] = i; /* after computation by TreeMatch */ } + /* unused for now*/ tm_topology->cost = (double*)calloc(tm_topology->nb_levels,sizeof(double)); - tm_topology->nb_proc_units = num_objs_total; tm_topology->nb_constraints = 0; @@ -627,22 +624,23 @@ tm_topology->constraints = (int *)calloc(tm_topology->nb_constraints,sizeof(int)); for(idx = 0, i = 0; i < tm_topology->nb_proc_units ; i++) if (obj_mapping[i] != -1) - tm_topology->constraints[idx++] = obj_mapping[i]; - + tm_topology->constraints[idx++] = obj_mapping[i]; /* use process ranks instead of core numbers */ +#ifdef __DEBUG__ + assert(idx == tm_topology->nb_constraints); +#endif tm_topology->oversub_fact = 1; #ifdef __DEBUG__ - assert(num_objs_total == (int)tm_topology->nb_nodes[tm_topology->nb_levels-1]); - + /* for(i = 0; i < tm_topology->nb_levels ; i++) { opal_output_verbose(10, ompi_topo_base_framework.framework_output, "tm topo node_id for level [%i] : ",i); dump_int_array(10, ompi_topo_base_framework.framework_output, "", "", obj_mapping, tm_topology->nb_nodes[i]); } + */ tm_display_topology(tm_topology); #endif - comm_pattern = (double **)malloc(size*sizeof(double *)); for(i = 0 ; i < size ; i++) comm_pattern[i] = local_pattern + i * size; @@ -660,7 +658,7 @@ "", "", comm_pattern[i], size); } #endif - tm_optimize_topology(&tm_topology); + //tm_optimize_topology(&tm_topology); aff_mat = tm_build_affinity_mat(comm_pattern,size); comm_tree = tm_build_tree_from_topology(tm_topology,aff_mat, NULL, NULL); sol = tm_compute_mapping(tm_topology, comm_tree); @@ -668,7 +666,6 @@ k = (int *)calloc(sol->k_length, sizeof(int)); for(idx = 0 ; idx < (int)sol->k_length ; idx++) k[idx] = sol->k[idx][0]; - #ifdef __DEBUG__ opal_output_verbose(10, ompi_topo_base_framework.framework_output, "====> nb levels : %i\n",tm_topology->nb_levels); @@ -690,16 +687,19 @@ /* Todo : Bcast + group creation */ /* scatter the ranks */ + /* don't need to convert k from local rank to global rank */ if (OMPI_SUCCESS != (err = comm_old->c_coll->coll_scatter(k, 1, MPI_INT, &newrank, 1, MPI_INT, 0, comm_old, comm_old->c_coll->coll_scatter_module))) { - if (NULL != k) free(k); + if (NULL != k) { free(k); k = NULL; } goto release_and_return; } - if ( 0 == rank ) + if ( 0 == rank ) { free(k); + k = NULL; + } /* this needs to be optimized but will do for now */ if (OMPI_SUCCESS != (err = ompi_comm_split(comm_old, 0, newrank, newcomm, false))) { @@ -770,6 +770,7 @@ tm_solution_t *sol = NULL; tm_affinity_mat_t *aff_mat = NULL; double **comm_pattern = NULL; + int *obj_to_rank_in_lcomm = NULL; comm_pattern = (double **)malloc(num_procs_in_node*sizeof(double *)); for( i = 0; i < num_procs_in_node; i++ ) { @@ -800,35 +801,57 @@ tm_topology->nb_levels = numlevels; tm_topology->arity = (int *)calloc(tm_topology->nb_levels, sizeof(int)); tm_topology->nb_nodes = (size_t *)calloc(tm_topology->nb_levels, sizeof(size_t)); - tm_topology->node_id = (int **)malloc(tm_topology->nb_levels*sizeof(int *)); - tm_topology->node_rank = (int **)malloc(tm_topology->nb_levels*sizeof(int *)); - + for(i = 0 ; i < tm_topology->nb_levels ; i++){ int nb_objs = hwloc_get_nbobjs_by_depth(opal_hwloc_topology, tracker[i]->depth); tm_topology->nb_nodes[i] = nb_objs; tm_topology->arity[i] = tracker[i]->arity; - tm_topology->node_id[i] = (int *)calloc(tm_topology->nb_nodes[i], sizeof(int)); - tm_topology->node_rank[i] = (int * )calloc(tm_topology->nb_nodes[i], sizeof(int)); - for(j = 0; j < (int)tm_topology->nb_nodes[i] ; j++){ - tm_topology->node_id[i][j] = j; - tm_topology->node_rank[i][j] = j; - } } + +#ifdef __DEBUG__ + assert(num_objs_in_node == (int)tm_topology->nb_nodes[tm_topology->nb_levels-1]); +#endif + /* create a table that derives the rank in local (node) comm from the object number */ + obj_to_rank_in_lcomm = (int *)malloc(num_objs_in_node*sizeof(int)); + for(i = 0 ; i < num_objs_in_node ; i++) { + obj_to_rank_in_lcomm[i] = -1; + object = hwloc_get_obj_by_depth(opal_hwloc_topology, effective_depth, i); + for( j = 0; j < num_procs_in_node ; j++ ) + if(localrank_to_objnum[j] == (int)(object->logical_index)) { + obj_to_rank_in_lcomm[i] = j; + break; + } + } + + /* Build process id tab */ + tm_topology->node_id = (int *)malloc(num_objs_in_node*sizeof(int)); + tm_topology->node_rank = (int *)malloc(num_objs_in_node*sizeof(int)); + for(i = 1 ; i < num_objs_in_node; i++) + tm_topology->node_id[i] = tm_topology->node_rank[i] = -1; + + for( i = 0 ; i < num_objs_in_node ; i++ ) { + /*note : we make the hypothesis that logical indexes in hwloc range from + 0 to N, are contiguous and crescent. */ + tm_topology->node_id[i] = obj_to_rank_in_lcomm[i]; + if( obj_to_rank_in_lcomm[i] != -1) + tm_topology->node_rank[obj_to_rank_in_lcomm[i]] = i; + } + /* unused for now*/ tm_topology->cost = (double*)calloc(tm_topology->nb_levels,sizeof(double)); tm_topology->nb_proc_units = num_objs_in_node; - //tm_topology->nb_proc_units = num_procs_in_node; tm_topology->nb_constraints = 0; - for(i = 0; i < num_procs_in_node ; i++) - if (localrank_to_objnum[i] != -1) + + for(i = 0; i < num_objs_in_node ; i++) + if (obj_to_rank_in_lcomm[i] != -1) tm_topology->nb_constraints++; - + tm_topology->constraints = (int *)calloc(tm_topology->nb_constraints,sizeof(int)); - for(idx = 0,i = 0; i < num_procs_in_node ; i++) - if (localrank_to_objnum[i] != -1) - tm_topology->constraints[idx++] = localrank_to_objnum[i]; + for(idx = 0,i = 0; i < num_objs_in_node ; i++) + if (obj_to_rank_in_lcomm[i] != -1) + tm_topology->constraints[idx++] = obj_to_rank_in_lcomm[i]; tm_topology->oversub_fact = 1; @@ -841,12 +864,12 @@ OPAL_OUTPUT_VERBOSE((10, ompi_topo_base_framework.framework_output, "Nb objs for level %i : %lu | arity %i\n ", i, tm_topology->nb_nodes[i],tm_topology->arity[i])); - dump_int_array(10, ompi_topo_base_framework.framework_output, - "", "Obj id ", tm_topology->node_id[i], tm_topology->nb_nodes[i]); } + dump_int_array(10, ompi_topo_base_framework.framework_output, + "", "Obj id ", tm_topology->node_id, tm_topology->nb_nodes[tm_topology->nb_levels-1]); tm_display_topology(tm_topology); #endif - tm_optimize_topology(&tm_topology); + //tm_optimize_topology(&tm_topology); aff_mat = tm_build_affinity_mat(comm_pattern,num_procs_in_node); comm_tree = tm_build_tree_from_topology(tm_topology,aff_mat, NULL, NULL); sol = tm_compute_mapping(tm_topology, comm_tree); @@ -866,7 +889,7 @@ dump_int_array(10, ompi_topo_base_framework.framework_output, "Matching : ", "", sol->sigma, sol->sigma_length); #endif - + free(obj_to_rank_in_lcomm); free(aff_mat->sum_row); free(aff_mat); free(comm_pattern); @@ -874,14 +897,14 @@ tm_free_tree(comm_tree); tm_free_topology(tm_topology); } - + /* Todo : Bcast + group creation */ /* scatter the ranks */ if (OMPI_SUCCESS != (err = localcomm->c_coll->coll_scatter(k, 1, MPI_INT, &newrank, 1, MPI_INT, 0, localcomm, localcomm->c_coll->coll_scatter_module))) { - if (NULL != k) free(k); + if (NULL != k) { free(k); k = NULL; }; ompi_comm_free(&localcomm); free(lrank_to_grank); free(grank_to_lrank); @@ -910,8 +933,10 @@ newrank += offset; free(marked); - if (rank == lindex_to_grank[0]) + if (rank == lindex_to_grank[0]) { free(k); + k = NULL; + } /* this needs to be optimized but will do for now */ if (OMPI_SUCCESS != (err = ompi_comm_split(comm_old, 0, newrank, newcomm, false))) { diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/treematch/fibo.h openmpi-4.1.4/ompi/mca/topo/treematch/treematch/fibo.h --- openmpi-4.0.3/ompi/mca/topo/treematch/treematch/fibo.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/treematch/fibo.h 2022-05-29 09:51:40.000000000 +0000 @@ -101,13 +101,13 @@ the algorithms have been de-recursived and written as macros. */ -#define fiboTreeLinkAfter(o,n) do { \ - FiboNode * nextptr; \ - nextptr = (o)->linkdat.nextptr; \ - (n)->linkdat.nextptr = nextptr; \ - (n)->linkdat.prevptr = (o); \ - nextptr->linkdat.prevptr = (n); \ - (o)->linkdat.nextptr = (n); \ +#define fiboTreeLinkAfter(o,n) do { \ + FiboNode * nextptr_loc; \ + nextptr_loc = (o)->linkdat.nextptr; \ + (n)->linkdat.nextptr = nextptr_loc; \ + (n)->linkdat.prevptr = (o); \ + nextptr_loc->linkdat.prevptr = (n); \ + (o)->linkdat.nextptr = (n); \ } while (0) #define fiboTreeUnlink(n) do { \ diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/treematch/PriorityQueue.c openmpi-4.1.4/ompi/mca/topo/treematch/treematch/PriorityQueue.c --- openmpi-4.0.3/ompi/mca/topo/treematch/treematch/PriorityQueue.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/treematch/PriorityQueue.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,10 @@ /* This comparison function is used to sort elements in key descending order. */ +int compfunc(const FiboNode * const, const FiboNode * const); + + + static int compFunc(const FiboNode * const node1, const FiboNode * const node2) { return diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_bucket.c openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_bucket.c --- openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_bucket.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_bucket.c 2022-05-29 09:51:40.000000000 +0000 @@ -31,7 +31,7 @@ static int verbose_level = ERROR; -static bucket_list_t global_bl; +static bucket_list_t global_bl = {0}; int tab_cmp(const void*,const void*); int old_bucket_id(int,int,bucket_list_t); @@ -199,7 +199,7 @@ /* display_bucket(bucket);*/ if(verbose_level >= DEBUG){ printf("Extending bucket %d (%p) from size %d to size %d!\n", - id, (void*)bucket->bucket, bucket->nb_elem, bucket->nb_elem+size); + id,(void*)bucket->bucket, bucket->nb_elem, bucket->nb_elem+size); } bucket->bucket = (coord*)REALLOC(bucket->bucket,sizeof(coord)*(size + bucket->bucket_len)); @@ -648,6 +648,7 @@ wait_work_completion(works[id]); val+=tab_val[id]; FREE(works[id]->args); + destroy_work(works[id]); } diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_kpartitioning.c openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_kpartitioning.c --- openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_kpartitioning.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_kpartitioning.c 2022-05-29 09:51:40.000000000 +0000 @@ -6,6 +6,11 @@ #include #include "config.h" +#if defined(HAVE_LIBSCOTCH) +#include +#endif /* defined(HAVE_LIBSCOTCH) */ + + #define USE_KL_KPART 0 #define KL_KPART_GREEDY_TRIALS 0 @@ -33,6 +38,253 @@ void kpartition_build_level_topology(tm_tree_t *,com_mat_t *,int,int,tm_topology_t *, int *,int *,int,double *,double *); +static int greedy_flag = 0; + +void tm_set_greedy_flag(int new_val){ + greedy_flag = new_val; +} + +int tm_get_greedy_flag(){ + return greedy_flag; +} + + +#if defined(HAVE_LIBSCOTCH) + +SCOTCH_Graph* com_mat_to_scotch_graph(com_mat_t *com_mat, int n){ + double **mat = com_mat->comm; + SCOTCH_Num vertnbr = n; // number of vertices + SCOTCH_Num edgenbr = vertnbr*vertnbr; // number of edges + /* adjacency list */ + SCOTCH_Num *verttab = (SCOTCH_Num *)malloc(sizeof(SCOTCH_Num) * (vertnbr+1)); + /* loads of vertices */ + /* SCOTCH_Num *velotab = (SCOTCH_Num *)malloc(sizeof(SCOTCH_Num) * vertnbr); */ + /* id of the neighbors */ + SCOTCH_Num *edgetab = (SCOTCH_Num *)malloc(sizeof(SCOTCH_Num) * edgenbr); + /* number of bytes exchanged */ + SCOTCH_Num *edlotab = (SCOTCH_Num *)malloc(sizeof(SCOTCH_Num) * edgenbr); + SCOTCH_Graph *graphptr = SCOTCH_graphAlloc(); + + int edgeNum = 0; + int i,j; + + /* Building with the communication matrix */ + for(i = 0; i < com_mat->n ; i++) { + verttab[i] = edgeNum; + for(j = 0; j < i; j++) { + if(mat[i][j]){ + edgetab[edgeNum] = j; + edlotab[edgeNum] = (SCOTCH_Num)mat[i][j]; + edgeNum++; + } + } + /* ensure i!=j. Hence, avoid to test it...*/ + for(j = i+1 ; j < com_mat->n ; j++) { + if(mat[i][j]){ + edgetab[edgeNum] = j; + edlotab[edgeNum] = (SCOTCH_Num)mat[i][j]; + edgeNum++; + } + } + } + + + /* for(i = baseval; i < com_mat->n ; i++) { */ + /* verttab[i] = edgeNum; */ + /* /\* velotab[i] = (SCOTCH_Num) ceil(ogr->vertices[i].getVertexLoad() * ratio); *\/ */ + /* for(j = baseval; j < com_mat->n ; j++) { */ + /* if((mat[i][j] || mat[j][i]) && (i!=j)){ */ + /* edgetab[edgeNum] = j; */ + /* edlotab[edgeNum] = (SCOTCH_Num) ((mat[i][j] + mat[j][i])/2); */ + /* edgeNum++; */ + /* } */ + /* } */ + /* } */ + + /* adding the dumb vertices: they have no neighbor*/ + for(i = com_mat->n ; i=DEBUG){ + printf("Graph converted to Scotch format: edgeNum=%d, edgenbr = %lld, vertnbr = %lld\n",edgeNum, (long long int)edgenbr, (long long int)vertnbr); + } + + assert(edgeNum <= edgenbr); + edgenbr = edgeNum; + + SCOTCH_graphInit(graphptr); + SCOTCH_graphBuild(graphptr, 0, vertnbr, verttab, verttab+1, NULL, NULL, edgenbr, edgetab, edlotab); + + return graphptr; +} + + + +int check_partition(SCOTCH_Num *parttab, int k, int n){ + int *count = CALLOC(sizeof(int), k); + int i; + for(i=0; i=INFO) + fprintf(stdout, "Error in partition: %d vertices in partition %d while expecting %d vertices\n",count[i], i, target); + FREE(count); + return 0; + } + } + + FREE(count); + return 1; +} + + +/* n is the number of element in teh graoh with dumlb_vertices + comm_mat->n is the nulber of processes (i.e. the size of teh graph without dumb veritcies*/ +int *kpartition_scotch(int k, com_mat_t *com_mat, int n, int *constraints, int nb_constraints){ + SCOTCH_Num partnbr = (SCOTCH_Num) k; + SCOTCH_Graph* graphptr; + SCOTCH_Strat strat; + SCOTCH_Num straval; + SCOTCH_Num *parttab = (SCOTCH_Num *)MALLOC(sizeof(SCOTCH_Num) * n); + int *partition = (int *)MALLOC(sizeof(int) * n); + int i, j; + int *nb_dumb = (int *)MALLOC(sizeof(int) * k); /*number of dumb vertices per partition */ + int dumb_id, min_nb_dumb = n, sum_dumb = 0, p; + /* if(SCOTCH_graphCheck(graphptr) == 1){ */ + /* fprintf(stderr,"Bad scotch graph! Exiting program...\n"); */ + /* exit(-1); */ + /* } */ + + /* printf("Correct scotch graph (%d, %d)!\n", SCOTCH_numSizeof(), sizeof(SCOTCH_Num)); */ + + for(i=0;i= max_val) + break; + end++; + } + /* now end - start is the number of constraints for the ith subtree + hence the number of dumb vertices in partition i is the differences between the + number of leaves of the subtree (n/k) and the number of constraints + */ + nb_dumb[i] = n/k - (end-start); + sum_dumb += nb_dumb[i]; + if(nb_dumb[i] < min_nb_dumb){ + min_nb_dumb = nb_dumb[i]; + } + start=end; + } + + /* Imagine we have n=12, k=3, nb_dumb[0] = 3, nb_dumb[1] = 2, nb_dumb[2] = 3, hence min_nb_dumb = 2 and sum_dumb = 8 + So, we have 8 fix vertices and 12-8 = 4 free vertices + We want scotch to allocate the 6 free vertices such that the whole partition is balanced (4 vertex in each) : + 1 in parttion 0, 2 in partition 1 and 1 in partition 2. + To do so we can fill partab as follows: + {-1, -1, -1, -1, 0, 0, 0, 1, 1, 2, 2, 2} and call scotch with a n=12 vertices graph with SCOTCH_STRATBALANCE + dumb_id = n - sum_dumb; + for(i = 0;i4) + straval = SCOTCH_STRATSPEED; + SCOTCH_stratGraphMapBuild (&strat, straval, partnbr, 0); + + + if(tm_get_verbose_level()>=DEBUG){ + printf("Before Scotch (p=%d, n=%d): \n", p, n); + for(i = 0 ; i < n; i++){ + printf("%d ",(int)parttab[i]); + } + printf("\n"); + } + + if(SCOTCH_graphPartFixed(graphptr, partnbr, &strat, parttab) == 0){ + if(tm_get_verbose_level()>=DEBUG){ + printf("After Scotch: \n"); + for(i = 0 ; i < n; i++){ + printf("%d ",(int)parttab[i]); + } + printf("\n"); + } + }else{ + if(tm_get_verbose_level()>=CRITICAL){ + fprintf(stderr,"Scotch Partitionning failed\n"); + } + exit(-1); + } + + if(!check_partition(parttab, partnbr, n)){ + if(tm_get_verbose_level()>=INFO){ + printf("falling from Scotch to greedy partionning\n"); + } + FREE(partition); + partition = kpartition_greedy(k, com_mat, n, constraints, nb_constraints); + }else{ + for(i=0;i= DEBUG) + printf("Using Scotch\n"); + res = kpartition_scotch(k, com_mat, n, constraints, nb_constraints); + }else{ + if(verbose_level >= DEBUG) + printf("Using greedy partitionning\n"); + res = kpartition_greedy(k, com_mat, n, constraints, nb_constraints); + } +#else /* defined(HAVE_LIBSCOTCH) */ + if(verbose_level >= DEBUG) + printf("Using greedy partitionning\n"); res = kpartition_greedy(k, com_mat, n, constraints, nb_constraints); -#endif +#endif /* defined(HAVE_LIBSCOTCH) */ return res; } @@ -242,7 +503,7 @@ const_tab = (constraint_t *)CALLOC(k,sizeof(constraint_t)); /* nb_leaves is the number of leaves of the current subtree - this will help to detremine where to split constraints and how to shift values + this will help to determine where to split constraints and how to shift values */ nb_leaves = compute_nb_leaves_from_level( depth + 1, topology ); @@ -251,8 +512,6 @@ */ start = 0; - - for( i = 0; i < k; i++ ){ /*returns the indice in constraints that contains the smallest value not copied end is used to compute the number of copied elements (end-size) and is used as the next staring indices*/ @@ -294,7 +553,7 @@ printf("Partition: "); print_1D_tab(partition,n); display_tab(com_mat->comm,com_mat->n); printf("m=%d,n=%d,k=%d\n",m,n,k); - printf("perm=%p\n", (void*)perm); + printf("perm=%p\n", (void *)perm); } perm = (int*)MALLOC(sizeof(int)*m); @@ -438,6 +697,26 @@ } #endif +static void print_tab(int n){ + for(;n;n--) + fprintf(stdout,"\t"); +} + +static void display_partition(int *partition, int *local_vertices, int n, int depth, int k){ + int cur_part, j; + print_tab(depth);fprintf(stdout,"Partitions at depth=%d\n",depth); + for( cur_part = 0; cur_part < k ; cur_part ++){ + print_tab(depth); fprintf(stdout,"%d :",cur_part); + for( j = 0; j < n; j ++){ + if ( partition[j] == cur_part ){ + if(local_vertices[j]!=-1) + fprintf(stdout,"%d ",local_vertices[j]); + } + } + fprintf(stdout,"\n"); + } +} + void kpartition_build_level_topology(tm_tree_t *cur_node, com_mat_t *com_mat, int N, int depth, tm_topology_t *topology, int *local_vertices, int *constraints, int nb_constraints, @@ -471,6 +750,10 @@ /* partition the com_matrix in k partitions*/ partition = kpartition(k, com_mat, N, constraints, nb_constraints); + if(verbose_level>=INFO) + display_partition(partition, local_vertices, N, depth, k); + + /* exit(-1); */ /* split the communication matrix in k parts according to the partition just found above */ tab_com_mat = split_com_mat( com_mat, N, k, partition); @@ -558,7 +841,7 @@ the value of this array will be used to number the leaves of the tm_tree_t tree that start at "root" - min(N,nb_contraints) is used to takle the case where thre is less processes than constraints + min(N,nb_contraints) is used to tackle the case where there is less processes than constraints */ diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_kpartitioning.h openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_kpartitioning.h --- openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_kpartitioning.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_kpartitioning.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,11 +1,9 @@ typedef struct _com_mat_t{ - double **comm; + double **comm; int n; /*comm is of size n by n the other element are zeroes*/ - + } com_mat_t; int *kpartition(int, com_mat_t*, int, int *, int); tm_tree_t * kpartition_build_tree_from_topology(tm_topology_t *topology,double **com_mat,int N, int *constraints, int nb_constraints, double *obj_weight, double *com_speed); - -#define HAVE_LIBSCOTCH 0 // missing configure setup? diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_malloc.c openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_malloc.c --- openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_malloc.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_malloc.c 2022-05-29 09:51:40.000000000 +0000 @@ -55,7 +55,7 @@ elem -> line = line; elem -> file = my_strdup(file); if(tm_get_verbose_level() >= DEBUG) - printf("Storing (%p,%ld)\n",ptr,size); + printf("Storing (%p,%ld)\n", (void *)ptr,size); HASH_ADD_PTR( size_hash, key, elem ); } @@ -66,14 +66,14 @@ HASH_FIND_PTR(size_hash, &someaddr, elem); if(!elem){ if(tm_get_verbose_level() >= CRITICAL) - fprintf(stderr,"Cannot find ptr %p to free!\n",someaddr); + fprintf(stderr,"Cannot find ptr %p to free!\n", (void *)someaddr); abort(); return 0; } res = elem->size; if(tm_get_verbose_level()>=DEBUG) - printf("Retreiving (%p,%ld)\n",someaddr, res); + printf("Retreiving (%p,%ld)\n",(void *)someaddr, res); free(elem->file); HASH_DEL( size_hash, elem); @@ -86,7 +86,7 @@ int nb_errors = 0; for(s=size_hash; s != NULL; s=s->hh.next) { if(tm_get_verbose_level()>=ERROR) - printf("pointer %p of size %ld (%s: %d) has not been freed!\n", s->key, s->size, s->file, s->line); + printf("pointer %p of size %ld (%s: %d) has not been freed!\n", (void *)s->key + EXTRA_BYTE, s->size, s->file, s->line); nb_errors ++; } @@ -119,7 +119,7 @@ ptr = malloc(size); if(tm_get_verbose_level()>=DEBUG) - printf("tm_malloc of size %ld: %p (%s: %d)\n",size-2*EXTRA_BYTE,(void*)ptr,file,line); + printf("tm_malloc of size %ld: %p (%s: %d)\n",size-2*EXTRA_BYTE, (void *)ptr,file,line); save_ptr(ptr, size, file, line); @@ -128,7 +128,7 @@ if(tm_get_verbose_level()>=DEBUG) - printf("tm_malloc returning: %p\n",(void*)(ptr+EXTRA_BYTE)); + printf("tm_malloc returning: %p\n",(void *)(ptr+EXTRA_BYTE)); return (void *)(ptr + EXTRA_BYTE); } @@ -147,14 +147,14 @@ save_ptr(ptr, full_size, file, line); if(tm_get_verbose_level()>=DEBUG) - printf("tm_calloc of size %ld: %p (%s: %d)\n",full_size-2*EXTRA_BYTE,(void*)ptr, file, line); + printf("tm_calloc of size %ld: %p (%s: %d)\n",full_size-2*EXTRA_BYTE,(void *)ptr, file, line); memcpy(ptr, extra_data, EXTRA_BYTE); memcpy(ptr + full_size - EXTRA_BYTE, extra_data, EXTRA_BYTE); if(tm_get_verbose_level()>=DEBUG) - printf("tm_calloc returning: %p\n", (void*)(ptr+EXTRA_BYTE)); + printf("tm_calloc returning: %p\n",(void *)(ptr+EXTRA_BYTE)); return (void *)(ptr+EXTRA_BYTE); } @@ -172,7 +172,7 @@ save_ptr(ptr, full_size, file, line); if(tm_get_verbose_level()>=DEBUG) - printf("tm_realloc of size %ld: %p (%s: %d)\n",full_size-2*EXTRA_BYTE, (void*)ptr, file, line); + printf("tm_realloc of size %ld: %p (%s: %d)\n",full_size-2*EXTRA_BYTE, (void *)ptr, file, line); memcpy(ptr, extra_data, EXTRA_BYTE); @@ -185,17 +185,17 @@ memcpy(ptr + EXTRA_BYTE, old_ptr, MIN(old_ptr_size - 2 * EXTRA_BYTE, size)); if((bcmp(original_ptr ,extra_data, EXTRA_BYTE)) && ((tm_get_verbose_level()>=ERROR))){ - fprintf(stderr,"Realloc: cannot find special string ***before*** %p!\n", (void*)original_ptr); + fprintf(stderr,"Realloc: cannot find special string ***before*** %p!\n", (void *)original_ptr); fprintf(stderr,"memory is probably corrupted here!\n"); } if((bcmp(original_ptr + old_ptr_size -EXTRA_BYTE ,extra_data, EXTRA_BYTE)) && ((tm_get_verbose_level()>=ERROR))){ - fprintf(stderr,"Realloc: cannot find special string ***after*** %p!\n", (void*)original_ptr); + fprintf(stderr,"Realloc: cannot find special string ***after*** %p!\n", (void *)original_ptr); fprintf(stderr,"memory is probably corrupted here!\n"); } if(tm_get_verbose_level()>=DEBUG) - printf("tm_free freeing: %p\n", (void*)original_ptr); + printf("tm_free freeing: %p\n",(void *)original_ptr); free(original_ptr); @@ -203,33 +203,34 @@ if(tm_get_verbose_level()>=DEBUG) - printf("tm_realloc returning: %p (----- %p)\n",(void*)(ptr+EXTRA_BYTE),(void*)(((byte *)ptr) - EXTRA_BYTE)); + printf("tm_realloc returning: %p (----- %p)\n", (void *)(ptr+EXTRA_BYTE), (void *)(ptr - EXTRA_BYTE)); return (void *)(ptr+EXTRA_BYTE); } void tm_free(void *ptr){ - byte *original_ptr = ((byte *)ptr) - EXTRA_BYTE; + byte *original_ptr; size_t size; if(!ptr) return; + original_ptr = ((byte *)ptr) - EXTRA_BYTE; size = retreive_size(original_ptr); if((bcmp(original_ptr ,extra_data, EXTRA_BYTE)) && ((tm_get_verbose_level()>=ERROR))){ - fprintf(stderr,"Free: cannot find special string ***before*** %p!\n", (void*)original_ptr); + fprintf(stderr,"Free: cannot find special string ***before*** %p!\n", (void *)original_ptr); fprintf(stderr,"memory is probably corrupted here!\n"); } if((bcmp(original_ptr + size -EXTRA_BYTE ,extra_data, EXTRA_BYTE)) && ((tm_get_verbose_level()>=ERROR))){ - fprintf(stderr,"Free: cannot find special string ***after*** %p!\n", (void*)original_ptr); + fprintf(stderr,"Free: cannot find special string ***after*** %p!\n", (void *)original_ptr); fprintf(stderr,"memory is probably corrupted here!\n"); } if(tm_get_verbose_level()>=DEBUG) - printf("tm_free freeing: %p\n", (void*)original_ptr); + printf("tm_free freeing: %p\n", (void *)original_ptr); free(original_ptr); diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_mapping.c openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_mapping.c --- openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_mapping.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_mapping.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,3 +1,7 @@ +#include +#include +#include +#include #include #include #include @@ -18,6 +22,15 @@ #include #endif +#if defined(HAVE_LIBSCOTCH) +#include +#endif /* defined(HAVE_LIBSCOTCH) */ + +#include + + +#define MIN(a,b) (a)<(b)?(a):(b) + #define TEST_ERROR(n) do{ \ if( (n) != 0 ){ \ fprintf(stderr,"Error %d Line %d\n",n,__LINE__); \ @@ -34,6 +47,23 @@ } hash2_t; +tm_affinity_mat_t * new_affinity_mat(double **mat, double *sum_row, int order, long int nnz); +int compute_nb_leaves_from_level(int depth,tm_topology_t *topology); +void depth_first(tm_tree_t *comm_tree, int *proc_list,int *i); +int fill_tab(int **new_tab,int *tab, int n, int start, int max_val, int shift); +long int init_mat(char *filename,int N, double **mat, double *sum_row); +void map_topology(tm_topology_t *topology,tm_tree_t *comm_tree, int level, + int *sigma, int nb_processes, int **k, int nb_compute_units); +int nb_leaves(tm_tree_t *comm_tree); +int nb_lines(char *filename); +void print_1D_tab(int *tab,int N); +tm_solution_t * tm_compute_mapping(tm_topology_t *topology,tm_tree_t *comm_tree); +void tm_free_affinity_mat(tm_affinity_mat_t *aff_mat); +tm_affinity_mat_t *tm_load_aff_mat(char *filename); +void update_comm_speed(double **comm_speed,int old_size,int new_size); +tm_affinity_mat_t * tm_build_affinity_mat(double **mat, int order); + + /* compute the number of leaves of any subtree starting froma node of depth depth*/ int compute_nb_leaves_from_level(int depth,tm_topology_t *topology) { @@ -50,10 +80,6 @@ tm_mem_check(); } -int nb_processing_units(tm_topology_t *topology) -{ - return topology->nb_proc_units; -} void print_1D_tab(int *tab,int N) @@ -89,14 +115,15 @@ return N; } -void init_mat(char *filename,int N, double **mat, double *sum_row) -{ + + +long int init_mat(char *filename,int N, double **mat, double *sum_row){ FILE *pf = NULL; char *ptr= NULL; char line[LINE_SIZE]; int i,j; unsigned int vl = tm_get_verbose_level(); - + long int nnz = 0; if(!(pf=fopen(filename,"r"))){ if(vl >= CRITICAL) @@ -107,7 +134,6 @@ j = -1; i = 0; - while(fgets(line,LINE_SIZE,pf)){ char *l = line; j = 0; @@ -116,6 +142,7 @@ l = NULL; if((ptr[0]!='\n')&&(!isspace(ptr[0]))&&(*ptr)){ mat[i][j] = atof(ptr); + if(mat[i][j]) nnz++; sum_row[i] += mat [i][j]; if(mat[i][j]<0){ if(vl >= WARNING) @@ -140,15 +167,122 @@ } fclose (pf); + return nnz; +} + + +static size_t get_filesize(char* filename) { + struct stat st; + stat(filename, &st); + return st.st_size; +} + + +static char *parse_line(int i, double **mat, double *sum_row, int N, char *data, char *filename, long int *nnz){ + /* now parse the buffer byte per byte for the current line i until we reach '\n'*/ + unsigned int vl = tm_get_verbose_level(); + long val; + sum_row[i] = 0; + int j = 0; + while(*data != '\n'){ + while(*data ==' ' || *data == '\t') + data++; + if(*data != '\n'){ + val = 0; + while(*data !=' ' && *data != '\t' && *data != '\n'){ + val = val*10 + *data-'0'; + data++; + } + mat[i][j] = val; + /* printf("mat[%d][%d] = %ld\n",i,j, val); */ + if (val){ + (*nnz)++; + sum_row[i] += val; + } + j++; + } + } + if( j != N){ + if(vl >= CRITICAL) + fprintf(stderr,"Error at %d %d (%d!=%d). Wrong number of columns line %d for file %s\n",i ,j ,j ,N ,i+1, filename); + exit(-1); + } + data++; + return data; +} + + + +/* buffered read with mmap of teh file */ +static long int init_mat_mmap(char *filename,int N, double **mat, double *sum_row){ + int i; + unsigned int vl = tm_get_verbose_level(); + size_t filesize = get_filesize(filename); + int fd = open(filename, O_RDONLY, 0); + long int nnz = 0; + + if(fd == -1){ + if(vl >= CRITICAL) + fprintf(stderr,"Cannot open %s\n",filename); + exit(-1); + } + + char* data = (char*) mmap(NULL, filesize, PROT_READ, MAP_SHARED, fd, 0); + + if(data == MAP_FAILED){ + if(vl >= CRITICAL) + fprintf(stderr,"Cannot mmap %s\n",filename); + exit(-1); + } + + i = 0; + while(i= CRITICAL) + fprintf(stderr,"Cannot open %s\n",filename); + exit(-1); + } + + i = 0; + while(i mat = mat; aff_mat -> sum_row = sum_row; aff_mat -> order = order; + aff_mat -> nnz = nnz; return aff_mat; } @@ -157,15 +291,20 @@ tm_affinity_mat_t * tm_build_affinity_mat(double **mat, int order){ double *sum_row = NULL; int i,j; + long int nnz = 0; sum_row = (double*)MALLOC(order*sizeof(double)); for( i = 0 ; i < order ; i++){ sum_row[i] = 0; - for(j = 0 ; j < order ; j++) - sum_row[i] += mat [i][j]; + for(j = 0 ; j < order ; j++){ + if(mat[i][j]){ + nnz++; + sum_row[i] += mat [i][j]; + } + } } - return new_affinity_mat(mat, sum_row, order); + return new_affinity_mat(mat, sum_row, order, nnz); } @@ -190,7 +329,8 @@ double **mat = NULL; double *sum_row = NULL; int i, order; - + long int nnz; + if(tm_get_verbose_level() >= INFO) printf("Reading matrix file: %s\n",filename); @@ -201,13 +341,34 @@ for( i = 0 ; i < order ; i++) /* the last column stores the sum of the line*/ mat[i] = (double*)MALLOC((order)*sizeof(double)); - init_mat(filename,order, mat, sum_row); + /* on my mac parsing large file is better done with fopen than mmap */ + #ifdef __MACH__ + if (get_filesize(filename) > 1024*1024*1014) { + nnz = init_mat_long(filename,order, mat, sum_row); + if(tm_get_verbose_level() >= DEBUG) + printf("New parser\n"); + }else{ + nnz = init_mat_mmap(filename,order, mat, sum_row); + if(tm_get_verbose_level() >= DEBUG) + printf("MMap parser\n"); + } + #else + nnz = init_mat_mmap(filename,order, mat, sum_row); + if(tm_get_verbose_level() >= DEBUG) + printf("MMap parser\n"); + #endif + + /* TIC; */ + /* init_mat(filename,order, mat, sum_row); */ + /* double duration_fl = TOC; */ + /* printf("Old parser = %.3f\n",duration_fl); */ - if(tm_get_verbose_level() >= INFO) + + if(tm_get_verbose_level() >= INFO) printf("Affinity matrix built from %s!\n",filename); - return new_affinity_mat(mat, sum_row, order); + return new_affinity_mat(mat, sum_row, order, nnz); } @@ -300,7 +461,7 @@ unsigned int vl = tm_get_verbose_level(); M = nb_leaves(comm_tree); - nodes_id = topology->node_id[level]; + nodes_id = topology->node_id; N = topology->nb_nodes[level]; if(vl >= INFO){ diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_mapping.h openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_mapping.h --- openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_mapping.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_mapping.h 2022-05-29 09:51:40.000000000 +0000 @@ -5,13 +5,13 @@ #include "tm_timings.h" #include "tm_verbose.h" -tm_affinity_mat_t * new_affinity_mat(double **mat, double *sum_row, int order); +tm_affinity_mat_t * new_affinity_mat(double **mat, double *sum_row, int order, long int nnz); void build_synthetic_proc_id(tm_topology_t *topology); tm_topology_t *build_synthetic_topology(int *arity, int nb_levels, int *core_numbering, int nb_core_per_nodes); int compute_nb_leaves_from_level(int depth,tm_topology_t *topology); void depth_first(tm_tree_t *comm_tree, int *proc_list,int *i); int fill_tab(int **new_tab,int *tab, int n, int start, int max_val, int shift); -void init_mat(char *filename,int N, double **mat, double *sum_row); +long int init_mat(char *filename,int N, double **mat, double *sum_row); void map_topology(tm_topology_t *topology,tm_tree_t *comm_tree, int level, int *sigma, int nb_processes, int **k, int nb_compute_units); int nb_leaves(tm_tree_t *comm_tree); diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_solution.c openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_solution.c --- openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_solution.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_solution.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ #include #include "tm_solution.h" #include "tm_mt.h" -#include "tm_mapping.h" +#include "tm_topology.h" typedef struct { int val; @@ -10,6 +10,27 @@ } hash_t; + +void tm_free_solution(tm_solution_t *sol); +int distance(tm_topology_t *topology,int i, int j); +double display_sol_sum_com(tm_topology_t *topology, tm_affinity_mat_t *aff_mat, int *sigma); + double display_sol(tm_topology_t *topology, tm_affinity_mat_t *aff_mat, int *sigma, tm_metric_t metric); +double tm_display_solution(tm_topology_t *topology, tm_affinity_mat_t *aff_mat, tm_solution_t *sol, + tm_metric_t metric); +void tm_display_other_heuristics(tm_topology_t *topology, tm_affinity_mat_t *aff_mat, tm_metric_t metric); +int in_tab(int *tab, int n, int val); +void map_Packed(tm_topology_t *topology, int N, int *sigma); +void map_RR(tm_topology_t * topology, int N, int *sigma); +int hash_asc(const void* x1,const void* x2); +int *generate_random_sol(tm_topology_t *topology,int N, int seed); +double eval_sol(int *sol,int N,double **comm, double **arch); +void exchange(int *sol,int i,int j); +double gain_exchange(int *sol,int l,int m,double eval1,int N,double **comm, double **arch); +void select_max(int *l,int *m,double **gain,int N,int *state); +void compute_gain(int *sol,int N,double **gain,double **comm, double **arch); +void map_MPIPP(tm_topology_t *topology,int nb_seed,int N,int *sigma,double **comm, double **arch); + + void tm_free_solution(tm_solution_t *sol){ int i,n; @@ -41,8 +62,8 @@ int vl = tm_get_verbose_level(); int depth = topology->nb_levels-1; - f_i = topology->node_rank[depth][i]; - f_j = topology->node_rank[depth][j]; + f_i = topology->node_rank[i]; + f_j = topology->node_rank[j]; if(vl >= DEBUG) printf("i=%d, j=%d Level = %d f=(%d,%d)\n",i ,j, level, f_i, f_j); @@ -58,7 +79,7 @@ } while((f_i!=f_j) && (level < depth)); if(vl >= DEBUG) - printf("distance(%d,%d):%d\n",topology->node_rank[depth][i], topology->node_rank[depth][j], level); + printf("distance(%d,%d):%d\n",topology->node_rank[i], topology->node_rank[j], level); /* exit(-1); */ return level; } @@ -270,10 +291,10 @@ for( i = 0 ; i < topology->nb_nodes[depth] ; i++){ /* printf ("%d -> %d\n",objs[i]->os_index,i); */ - if((!topology->constraints) || (in_tab(topology->constraints, topology->nb_constraints, topology->node_id[depth][i]))){ + if((!topology->constraints) || (in_tab(topology->constraints, topology->nb_constraints, topology->node_id[i]))){ if(vl >= DEBUG) - printf ("%lu: %d -> %d\n", i, j, topology->node_id[depth][i]); - sigma[j++]=topology->node_id[depth][i]; + printf ("%lu: %d -> %d\n", i, j, topology->node_id[i]); + sigma[j++]=topology->node_id[i]; if(j == N) break; } @@ -306,14 +327,14 @@ } -int *generate_random_sol(tm_topology_t *topology,int N,int level,int seed) +int *generate_random_sol(tm_topology_t *topology,int N, int seed) { hash_t *hash_tab = NULL; int *sol = NULL; int *nodes_id= NULL; int i; - nodes_id = topology->node_id[level]; + nodes_id = topology->node_id; hash_tab = (hash_t*)MALLOC(sizeof(hash_t)*N); sol = (int*)MALLOC(sizeof(int)*N); @@ -428,7 +449,7 @@ state = (int*)MALLOC(sizeof(int)*N); temp = (double*)MALLOC(sizeof(double)*N); - sol = generate_random_sol(topology,N,topology->nb_levels-1,seed++); + sol = generate_random_sol(topology, N, seed++); for( i = 0 ; i < N ; i++) sigma[i] = sol[i]; @@ -488,7 +509,7 @@ } }while( max > 0 ); FREE(sol); - sol=generate_random_sol(topology,N,topology->nb_levels-1,seed++); + sol=generate_random_sol(topology, N, seed++); } diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_solution.h openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_solution.h --- openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_solution.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_solution.h 2022-05-29 09:51:40.000000000 +0000 @@ -14,7 +14,7 @@ void map_Packed(tm_topology_t *topology, int N, int *sigma); void map_RR(tm_topology_t *topology, int N, int *sigma); int hash_asc(const void* x1,const void* x2); -int *generate_random_sol(tm_topology_t *topology,int N,int level,int seed); +int *generate_random_sol(tm_topology_t *topology,int N, int seed); double eval_sol(int *sol,int N,double **comm, double **arch); void exchange(int *sol,int i,int j); double gain_exchange(int *sol,int l,int m,double eval1,int N,double **comm, double **arch); diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_thread_pool.c openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_thread_pool.c --- openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_thread_pool.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_thread_pool.c 2022-05-29 09:51:40.000000000 +0000 @@ -23,7 +23,6 @@ static void f1 (int nb_args, void **args, int thread_id); static void f2 (int nb_args, void **args, int thread_id); -static void destroy_work(work_t *work); #define MIN(a, b) ((a)<(b)?(a):(b)) #define MAX(a, b) ((a)>(b)?(a):(b)) @@ -88,7 +87,7 @@ hwloc_bitmap_asprintf(&str, obj->cpuset); if(verbose_level>=WARNING) printf("Thread %d couldn't bind to cpuset %s: %s.\n This thread is not bound to any core...\n", my_core, str, strerror(error)); - free(str); /* str is allocated by hlwoc, free it normally*/ + free(str); /* str is allocated by hwloc, free it normally*/ return 0; } /* FREE our cpuset copy */ diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_thread_pool.h openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_thread_pool.h --- openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_thread_pool.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_thread_pool.h 2022-05-29 09:51:40.000000000 +0000 @@ -41,6 +41,7 @@ void terminate_thread_pool(void); work_t *create_work(int nb_args, void **args, void (int, void **, int)); int test_main(void); +void destroy_work(work_t *work); diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_topology.c openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_topology.c --- openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_topology.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_topology.c 2022-05-29 09:51:40.000000000 +0000 @@ -7,7 +7,7 @@ #include "tm_solution.h" -tm_topology_t* get_local_topo_with_hwloc(void); +tm_topology_t* tm_get_local_topo_with_hwloc(void); tm_topology_t* hwloc_to_tm(char *filename); int int_cmp_inc(const void* x1,const void* x2); void optimize_arity(int **arity, double **cost, int *nb_levels,int n); @@ -27,11 +27,24 @@ double ** topology_to_arch(hwloc_topology_t topology); void build_synthetic_proc_id(tm_topology_t *topology); tm_topology_t *tm_build_synthetic_topology(int *arity, double *cost, int nb_levels, int *core_numbering, int nb_core_per_nodes); +void tm_set_numbering(tm_numbering_t new_val); /* TM_NUMBERING_LOGICAL or TM_NUMBERING_PHYSICAL */ #define LINE_SIZE (1000000) +static tm_numbering_t numbering = TM_NUMBERING_LOGICAL; + +void tm_set_numbering(tm_numbering_t new_val){ + numbering = new_val; +} + +tm_numbering_t tm_get_numbering(){ + return numbering; +} + + + /* transform a tgt scotch file into a topology file*/ tm_topology_t * tgt_to_tm(char *filename) { @@ -55,7 +68,13 @@ printf("Reading TGT file: %s\n",filename); - fgets(line,1024,pf); + if (NULL == fgets(line,1024,pf)) { + /* either an error has occurred (and is in an unknown state) or + we hit EOF and line is empty. Either way, make line the + empty string to avoid errors later */ + line[0] = '\0'; + } + fclose(pf); s = strstr(line,"tleaf"); @@ -101,6 +120,13 @@ return topology; } + + +int nb_processing_units(tm_topology_t *topology) +{ + return topology->nb_proc_units; +} + int topo_nb_proc(hwloc_topology_t topology,int N) { hwloc_obj_t *objs = NULL; @@ -114,7 +140,6 @@ } - static double link_cost(int depth) { /* @@ -133,7 +158,6 @@ */ } - double ** topology_to_arch(hwloc_topology_t topology) { int nb_proc,i,j; @@ -141,14 +165,13 @@ double **arch = NULL; nb_proc = hwloc_get_nbobjs_by_type(topology, HWLOC_OBJ_PU); - if( nb_proc <= 0 ) { /* if multiple levels with PUs */ - return NULL; + if (nb_proc < 0) { + return NULL; } - arch = (double**)MALLOC(sizeof(double*)*nb_proc); - if( NULL == arch ) { - return NULL; + arch = (double**)malloc(sizeof(double*)*nb_proc); + if (NULL == arch) { + return NULL; } - for( i = 0 ; i < nb_proc ; i++ ){ obj_proc1 = hwloc_get_obj_by_type(topology,HWLOC_OBJ_PU,i); arch[obj_proc1->os_index] = (double*)MALLOC(sizeof(double)*nb_proc); @@ -184,6 +207,46 @@ return 1; } +static void build_process_tab_id(tm_topology_t *topology, hwloc_obj_t *objs, char* filename){ + unsigned int i,j; + unsigned int nb_nodes = topology->nb_proc_units; + int vl = tm_get_verbose_level(); + + /* Build process id tab */ + if(numbering == TM_NUMBERING_LOGICAL){ + for (i = 0; i < nb_nodes; i++){ + topology->node_id[i] = i; + topology->node_rank[i] = i; + } + }else if(numbering == TM_NUMBERING_PHYSICAL){ + for (i = 0; i < nb_nodes; i++){ + if(objs[i]->os_index > nb_nodes){ + if(vl >= CRITICAL){ + fprintf(stderr, "Cannot use forced physical numbering!\n\tIndex of PU %d is %d and larger than number of nodes : %d\n", + i, objs[i]->os_index, nb_nodes); + } + exit(-1); + } + for(j = 0; j < i; j++){ + if((unsigned int)topology->node_id[j] == objs[i]->os_index){ + if(vl >= CRITICAL){ + fprintf(stderr, "Cannot use forced physical numbering!\n\tDuplicated physical number of some PUs in %s.\n\tPU %d and PU %d have the same physical number: (os_index[%d] = %d) == (os_index[%d] = %d)\n", filename, j, i, j, objs[j]->os_index, i, objs[i]->os_index); + } + exit(-1); + } + } + topology->node_id[i] = objs[i]->os_index; + topology->node_rank[objs[i]->os_index] = i; + } + }else{ + if(vl >= CRITICAL){ + fprintf(stderr, "Unknown numbering %d\n", (int)numbering); + } + exit(-1); + } +} + + tm_topology_t* hwloc_to_tm(char *filename) { hwloc_topology_t topology; @@ -193,43 +256,46 @@ unsigned int nb_nodes; double *cost; int err, l; - unsigned int i; int vl = tm_get_verbose_level(); /* Build the topology */ hwloc_topology_init(&topology); - err = hwloc_topology_set_xml(topology,filename); + err = hwloc_topology_set_xml(topology, filename); if(err == -1){ if(vl >= CRITICAL) fprintf(stderr,"Error: %s is a bad xml topology file!\n",filename); exit(-1); } -#if HWLOC_API_VERSION >= 0x00020000 - hwloc_topology_set_all_types_filter(topology, HWLOC_TYPE_FILTER_KEEP_STRUCTURE); -#else /* HWLOC_API_VERSION >= 0x00020000 */ +#if HWLOC_API_VERSION < 0x20000 hwloc_topology_ignore_all_keep_structure(topology); -#endif /* HWLOC_API_VERSION >= 0x00020000 */ - hwloc_topology_load(topology); +#else + hwloc_topology_set_all_types_filter(topology, HWLOC_TYPE_FILTER_KEEP_STRUCTURE); +#endif + + err = hwloc_topology_load(topology); + if(err == -1){ + if(vl >= CRITICAL) + fprintf(stderr,"Error: the content of the xml topology file %s is not compatible with the version installed on this machine.\nPlease use compatible versions to generate the file and to use it!\n",filename); + exit(-1); + } /* Test if symetric */ if(!symetric(topology)){ - if(tm_get_verbose_level() >= CRITICAL) + if(vl >= CRITICAL) fprintf(stderr,"%s not symetric!\n",filename); exit(-1); } /* work on depth */ topodepth = hwloc_topology_get_depth(topology); - + res = (tm_topology_t*)MALLOC(sizeof(tm_topology_t)); res->oversub_fact = 1; res->nb_constraints = 0; res->constraints = NULL; res->nb_levels = topodepth; - res->node_id = (int**)MALLOC(sizeof(int*)*res->nb_levels); - res->node_rank = (int**)MALLOC(sizeof(int*)*res->nb_levels); res->nb_nodes = (size_t*)MALLOC(sizeof(size_t)*res->nb_levels); res->arity = (int*)MALLOC(sizeof(int)*res->nb_levels); @@ -240,35 +306,24 @@ for( depth = 0 ; depth < topodepth ; depth++ ){ nb_nodes = hwloc_get_nbobjs_by_depth(topology, depth); res->nb_nodes[depth] = nb_nodes; - res->node_id[depth] = (int*)MALLOC(sizeof(int)*nb_nodes); - res->node_rank[depth] = (int*)MALLOC(sizeof(int)*nb_nodes); - objs = (hwloc_obj_t*)MALLOC(sizeof(hwloc_obj_t)*nb_nodes); - objs[0] = hwloc_get_next_obj_by_depth(topology,depth,NULL); - hwloc_get_closest_objs(topology,objs[0],objs+1,nb_nodes-1); + objs = (hwloc_obj_t*)MALLOC(sizeof(hwloc_obj_t)*nb_nodes); + objs[0] = hwloc_get_next_obj_by_depth(topology, depth, NULL); + hwloc_get_closest_objs(topology, objs[0], objs+1, nb_nodes-1); res->arity[depth] = objs[0]->arity; + + if(vl >= DEBUG) + printf("\n--%d(%d) **%d**:--\n",res->arity[depth],nb_nodes,res->arity[0]); + if (depth == topodepth -1){ res->nb_constraints = nb_nodes; res->nb_proc_units = nb_nodes; - } - - if(vl >= DEBUG) - printf("\n--%d(%d) **%d**:--\n",res->arity[depth],nb_nodes,res->arity[0]); - - /* Build process id tab */ - for (i = 0; i < nb_nodes; i++){ - if(objs[i]->os_index > nb_nodes){ - if(vl >= CRITICAL){ - fprintf(stderr, "Index of object %d of level %d is %d and larger than number of nodes : %d\n", - i, depth, objs[i]->os_index, nb_nodes); - } - exit(-1); - } - - res->node_id[depth][i] = objs[i]->os_index; - res->node_rank[depth][objs[i]->os_index] = i; - /* if(depth==topodepth-1) */ + res->node_id = (int*)MALLOC(sizeof(int)*nb_nodes); + res->node_rank = (int*)MALLOC(sizeof(int)*nb_nodes); + + build_process_tab_id(res, objs, filename); + } FREE(objs); @@ -292,21 +347,23 @@ return res; } -tm_topology_t* get_local_topo_with_hwloc(void) +tm_topology_t* tm_get_local_topology_with_hwloc(void) { hwloc_topology_t topology; tm_topology_t *res = NULL; hwloc_obj_t *objs = NULL; unsigned topodepth,depth; - int nb_nodes,i; + int nb_nodes; /* Build the topology */ hwloc_topology_init(&topology); -#if HWLOC_API_VERSION >= 0x00020000 - hwloc_topology_set_all_types_filter(topology, HWLOC_TYPE_FILTER_KEEP_STRUCTURE); -#else /* HWLOC_API_VERSION >= 0x00020000 */ + +#if HWLOC_API_VERSION < 0x20000 hwloc_topology_ignore_all_keep_structure(topology); -#endif /* HWLOC_API_VERSION >= 0x00020000 */ +#else + hwloc_topology_set_all_types_filter(topology, HWLOC_TYPE_FILTER_KEEP_STRUCTURE); +#endif + hwloc_topology_load(topology); /* Test if symetric */ @@ -323,17 +380,15 @@ res->nb_constraints = 0; res->constraints = NULL; res->nb_levels = topodepth; - res->node_id = (int**)MALLOC(sizeof(int*)*res->nb_levels); - res->node_rank = (int**)MALLOC(sizeof(int*)*res->nb_levels); res->nb_nodes = (size_t*)MALLOC(sizeof(size_t)*res->nb_levels); res->arity = (int*)MALLOC(sizeof(int)*res->nb_levels); + res->oversub_fact = 1; //defaut + res->cost = NULL; /* Build TreeMatch topology */ for( depth = 0 ; depth < topodepth ; depth++ ){ nb_nodes = hwloc_get_nbobjs_by_depth(topology, depth); res->nb_nodes[depth] = nb_nodes; - res->node_id[depth] = (int*)MALLOC(sizeof(int)*nb_nodes); - res->node_rank[depth] = (int*)MALLOC(sizeof(int)*nb_nodes); objs = (hwloc_obj_t*)MALLOC(sizeof(hwloc_obj_t)*nb_nodes); objs[0] = hwloc_get_next_obj_by_depth(topology,depth,NULL); @@ -342,15 +397,14 @@ if (depth == topodepth -1){ res->nb_constraints = nb_nodes; - res->nb_proc_units = nb_nodes; - } + res->nb_proc_units = nb_nodes; + res->node_id = (int*)MALLOC(sizeof(int)*nb_nodes); + res->node_rank = (int*)MALLOC(sizeof(int)*nb_nodes); /* printf("%d:",res->arity[depth]); */ - /* Build process id tab */ - for (i = 0; i < nb_nodes; i++){ - res->node_id[depth][i] = objs[i]->os_index; - res->node_rank[depth][objs[i]->os_index] = i; - /* if(depth==topodepth-1) */ + /* Build process id tab */ + + build_process_tab_id(res, objs, "Local node topology"); } FREE(objs); } @@ -367,15 +421,9 @@ void tm_free_topology(tm_topology_t *topology) { - int i; - for( i = 0 ; i < topology->nb_levels ; i++ ){ - FREE(topology->node_id[i]); - FREE(topology->node_rank[i]); - } - - FREE(topology->constraints); FREE(topology->node_id); FREE(topology->node_rank); + FREE(topology->constraints); FREE(topology->nb_nodes); FREE(topology->arity); FREE(topology->cost); @@ -400,18 +448,15 @@ void tm_display_topology(tm_topology_t *topology) { int i; - unsigned int j; unsigned long id; for( i = 0 ; i < topology->nb_levels ; i++ ){ - printf("%d: ",i); - for( j = 0 ; j < topology->nb_nodes[i] ; j++) - printf("%d ",topology->node_id[i][j]); + printf("Level %d with arity %d ", i, topology->arity[i]); printf("\n"); } printf("Last level: "); for(id = 0; id < topology->nb_nodes[topology->nb_levels-1]/topology->oversub_fact; id++) - printf("%d ",topology->node_rank[topology->nb_levels-1][id]); + printf("%d ",topology->node_rank[id]); printf("\n"); @@ -430,9 +475,13 @@ void tm_display_arity(tm_topology_t *topology){ int depth; - for(depth=0; depth < topology->nb_levels; depth++) - printf("%d(%lf): ",topology->arity[depth], topology->cost[depth]); - + for(depth=0; depth < topology->nb_levels; depth++){ + printf("%d",topology->arity[depth]); + if(topology->cost) + printf("(%lf)",topology->cost[depth]); + else + printf(":"); + } printf("\n"); } @@ -447,7 +496,7 @@ int i; int depth = topology->nb_levels-1; for (i=0;inode_id[depth], topology->nb_nodes[depth], topology->constraints[i])){ + if(!in_tab(topology->node_id, topology->nb_nodes[depth], topology->constraints[i])){ if(tm_get_verbose_level() >= CRITICAL){ fprintf(stderr,"Error! Incompatible constraint with the topology: rank %d in the constraints is not a valid id of any nodes of the topology.\n",topology->constraints[i]); } @@ -497,7 +546,9 @@ /* compute the size of the array to store the constraints*/ n = 0; - fgets(line, LINE_SIZE, pf); + if (NULL == fgets(line, LINE_SIZE, pf)) { + line[0] = '\0'; + } l = line; while((ptr=strtok(l," \t"))){ l = NULL; @@ -508,7 +559,9 @@ tab = (int*)MALLOC(n*sizeof(int)); rewind(pf); - fgets(line, LINE_SIZE, pf); + if (NULL == fgets(line, LINE_SIZE, pf)) { + line[0] = '\0'; + } fclose(pf); l = line; i = 0; @@ -538,7 +591,7 @@ } -void topology_numbering_cpy(tm_topology_t *topology,int **numbering,int *nb_nodes) +void topology_numbering_cpy(tm_topology_t *topology,int **numbering_loc,int *nb_nodes) { int nb_levels; unsigned int vl = tm_get_verbose_level(); @@ -547,8 +600,8 @@ *nb_nodes = topology->nb_nodes[nb_levels-1]; if(vl >= INFO) printf("nb_nodes=%d\n",*nb_nodes); - *numbering = (int*)MALLOC(sizeof(int)*(*nb_nodes)); - memcpy(*numbering,topology->node_id[nb_levels-1],sizeof(int)*(*nb_nodes)); + *numbering_loc = (int*)MALLOC(sizeof(int)*(*nb_nodes)); + memcpy(*numbering_loc,topology->node_id,sizeof(int)*(*nb_nodes)); } void topology_arity_cpy(tm_topology_t *topology,int **arity,int *nb_levels) @@ -662,7 +715,7 @@ void tm_optimize_topology(tm_topology_t **topology){ int *arity = NULL,nb_levels; - int *numbering = NULL,nb_nodes; + int *numbering_loc = NULL,nb_nodes; tm_topology_t *new_topo; double *cost; unsigned int vl = tm_get_verbose_level(); @@ -673,13 +726,13 @@ tm_display_arity(*topology); topology_arity_cpy(*topology,&arity,&nb_levels); - topology_numbering_cpy(*topology,&numbering,&nb_nodes); + topology_numbering_cpy(*topology,&numbering_loc,&nb_nodes); topology_constraints_cpy(*topology,&constraints,&nb_constraints); topology_cost_cpy(*topology,&cost); optimize_arity(&arity,&cost,&nb_levels,nb_levels-2); - new_topo = tm_build_synthetic_topology(arity, NULL, nb_levels,numbering,nb_nodes); + new_topo = tm_build_synthetic_topology(arity, NULL, nb_levels,numbering_loc,nb_nodes); new_topo->cost = cost; new_topo->constraints = constraints; new_topo->nb_constraints = nb_constraints; @@ -699,9 +752,9 @@ tm_display_arity(new_topo); } FREE(arity); - FREE(numbering); + FREE(numbering_loc); tm_free_topology(*topology); - + *topology = new_topo; /* exit(-1); */ @@ -738,8 +791,6 @@ topology->constraints = NULL; topology->nb_levels = nb_levels; topology->arity = (int*)MALLOC(sizeof(int)*topology->nb_levels); - topology->node_id = (int**)MALLOC(sizeof(int*)*topology->nb_levels); - topology->node_rank = (int**)MALLOC(sizeof(int*)*topology->nb_levels); topology->nb_nodes = (size_t *)MALLOC(sizeof(size_t)*topology->nb_levels); if(cost) topology->cost = (double*)CALLOC(topology->nb_levels,sizeof(double)); @@ -753,27 +804,17 @@ n = 1; for( i = 0 ; i < topology->nb_levels ; i++ ){ topology->nb_nodes[i] = n; - topology->node_id[i] = (int*)MALLOC(sizeof(int)*n); - topology->node_rank[i] = (int*)MALLOC(sizeof(int)*n); - if( i < topology->nb_levels-1){ - for( j = 0 ; j < n ; j++ ){ - topology->node_id[i][j] = j; - topology->node_rank[i][j]=j; - } - }else{ + if (i == topology->nb_levels-1){ + topology->node_id = (int*)MALLOC(sizeof(int)*n); + topology->node_rank = (int*)MALLOC(sizeof(int)*n); + topology->nb_constraints = n; + topology->nb_proc_units = n; for( j = 0 ; j < n ; j++ ){ int id = core_numbering[j%nb_core_per_nodes] + (nb_core_per_nodes)*(j/nb_core_per_nodes); - topology->node_id[i][j] = id; - topology->node_rank[i][id] = j; + topology->node_id[j] = id; + topology->node_rank[id] = j; } } - - - if (i == topology->nb_levels-1){ - topology->nb_constraints = n; - topology->nb_proc_units = n; - } - n *= topology->arity[i]; } if(cost){ @@ -791,32 +832,30 @@ int i; size_t j,n = 1; - topology->node_id = (int**)MALLOC(sizeof(int*)*topology->nb_levels); - topology->node_rank = (int**)MALLOC(sizeof(int*)*topology->nb_levels); topology->nb_nodes = (size_t*) MALLOC(sizeof(size_t)*topology->nb_levels); for( i = 0 ; i < topology->nb_levels ; i++ ){ /* printf("n= %lld, arity := %d\n",n, topology->arity[i]); */ topology->nb_nodes[i] = n; - topology->node_id[i] = (int*)MALLOC(sizeof(long int)*n); - topology->node_rank[i] = (int*)MALLOC(sizeof(long int)*n); - if ( !topology->node_id[i] ){ - if(tm_get_verbose_level() >= CRITICAL) - fprintf(stderr,"Cannot allocate level %d (of size %ld) of the topology\n", i, (unsigned long int)n); - exit(-1); - } - + if (i == topology->nb_levels-1){ + topology->node_rank = (int*)MALLOC(sizeof(int)*n); + topology->node_id = (int*)MALLOC(sizeof(int)*n); + if ( !topology->node_id ){ + if(tm_get_verbose_level() >= CRITICAL) + fprintf(stderr,"Cannot allocate last level (of size %ld) of the topology\n", (unsigned long int)n); + exit(-1); + } + topology->nb_constraints = n; topology->nb_proc_units = n; + + for( j = 0 ; j < n ; j++ ){ + topology->node_id[j] = j; + topology->node_rank[j] = j; + } } - - - for( j = 0 ; j < n ; j++ ){ - topology->node_id[i][j] = j; - topology->node_rank[i][j] = j; - } n *= topology->arity[i]; } @@ -827,6 +866,7 @@ void tm_enable_oversubscribing(tm_topology_t *topology, unsigned int oversub_fact){ { int i,j,n; + int *node_id, *node_rank; if(oversub_fact <=1) return; @@ -834,8 +874,6 @@ topology -> nb_levels ++; topology -> arity = (int*) REALLOC(topology->arity, sizeof(int)*topology->nb_levels); topology -> cost = (double*) REALLOC(topology->cost, sizeof(double)*topology->nb_levels); - topology -> node_id = (int**) REALLOC(topology->node_id, sizeof(int*)*topology->nb_levels); - topology -> node_rank = (int**) REALLOC(topology->node_rank, sizeof(int*)*topology->nb_levels); topology -> nb_nodes = (size_t *)REALLOC(topology->nb_nodes, sizeof(size_t)*topology->nb_levels); topology -> oversub_fact = oversub_fact; @@ -843,15 +881,19 @@ n = topology->nb_nodes[i-1] * oversub_fact; topology->arity[i-1] = oversub_fact; topology->cost[i-1] = 0; - topology->node_id[i] = (int*)MALLOC(sizeof(int)*n); - topology->node_rank[i] = (int*)MALLOC(sizeof(int)*n); + node_id = (int*)MALLOC(sizeof(int)*n); + node_rank = (int*)MALLOC(sizeof(int)*n); topology->nb_nodes[i] = n; for( j = 0 ; j < n ; j++ ){ - int id = topology->node_id[i-1][j/oversub_fact]; - topology->node_id[i][j] = id; - topology->node_rank[i][id] = j; + int id = topology->node_id[j/oversub_fact]; + node_id[j] = id; + node_rank[id] = j; } + FREE(topology->node_id); + FREE(topology->node_rank); + topology->node_id = node_id; + topology->node_rank = node_rank; } } diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_topology.h openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_topology.h --- openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_topology.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_topology.h 2022-05-29 09:51:40.000000000 +0000 @@ -19,4 +19,5 @@ void topology_cost(tm_topology_t *topology,double **cost); void topology_numbering(tm_topology_t *topology,int **numbering,int *nb_nodes); double ** topology_to_arch(hwloc_topology_t topology); +int nb_processing_units(tm_topology_t *topology); diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_tree.c openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_tree.c --- openmpi-4.0.3/ompi/mca/topo/treematch/treematch/tm_tree.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/treematch/tm_tree.c 2022-05-29 09:51:40.000000000 +0000 @@ -5,7 +5,6 @@ #include #include -#include "treematch.h" #include "tm_tree.h" #include "tm_mapping.h" #include "tm_timings.h" @@ -82,12 +81,23 @@ void free_constraint_tree(tm_tree_t *); void free_tab_double(double**, int); void free_tab_int(int**, int ); -void partial_aggregate_aff_mat (int, void **, int); +static void partial_aggregate_aff_mat (int, void **, int); void free_affinity_mat(tm_affinity_mat_t *aff_mat); int int_cmp_inc(const void* x1, const void* x2); +double choose (long n, long k) +{ + /* compute C_n_k */ + double res = 1; + int i; + + for( i = 0 ; i < k ; i++ ){ + res *= ((double)(n-i)/(double)(k-i)); + } + return res; +} void tm_set_exhaustive_search_flag(int new_val){ @@ -105,8 +115,6 @@ FREE(aff_mat); } - - void free_list_child(tm_tree_t *tree) { int i; @@ -116,13 +124,14 @@ free_list_child(tree->child[i]); FREE(tree->child); - if(tree->dumb) + if(tree->dumb) /*in dumb subtrees internal nodes have been allocated individually, they need to bee freed one by one*/ FREE(tree); } } void free_tab_child(tm_tree_t *tree) { if(tree){ + /*in a non constaint tree internal node are allocated in an array an stored ib tab_child : they are freed globaly here */ free_tab_child(tree->tab_child); FREE(tree->tab_child); } @@ -130,20 +139,26 @@ void free_non_constraint_tree(tm_tree_t *tree) { - int d = tree->dumb; + if(tree->dumb){ + if(tm_get_verbose_level() <= CRITICAL){ + fprintf(stderr,"Error trying to free a dumb tree!\n. This should never be done like this: the root of a non-constraint tree cannot be a dumb one!\n"); + } + exit(-1); + } - free_tab_child(tree); - free_list_child(tree); - if(!d) - FREE(tree); + free_list_child(tree); /* free the tree->child array recursively and the nodes in dumb subtree*/ + free_tab_child(tree); /* free the tree->tab_child array that correspond of all the child nodes of a given node in non dumb subtrees */ + FREE(tree); } void free_constraint_tree(tm_tree_t *tree) { int i; + if(tree){ for(i=0;iarity;i++) free_constraint_tree(tree->child[i]); + /* tab_child field is NULL for all nodes in the constraint tree*/ FREE(tree->child); FREE(tree); } @@ -155,20 +170,9 @@ if(tree->constraint) free_constraint_tree(tree); else - free_non_constraint_tree(tree); + free_non_constraint_tree(tree); /* tab_child field is NULL for all nodes in the tree*/ } -double choose (long n, long k) -{ - /* compute C_n_k */ - double res = 1; - int i; - - for( i = 0 ; i < k ; i++ ){ - res *= ((double)(n-i)/(double)(k-i)); - } - return res; -} void set_node(tm_tree_t *node, tm_tree_t ** child, int arity, tm_tree_t *parent, int id, double val, tm_tree_t *tab_child, int depth) @@ -239,11 +243,12 @@ int M = *(int*)args[4]; double **mat = (double**)args[5]; double *sum_row = (double*)args[6]; + long int *nnz = (long int *)args[7]; int i, j, i1, j1; int id1, id2; - if(nb_args != 7){ + if(nb_args != 8){ if(verbose_level >= ERROR) fprintf(stderr, "Thread %d: Wrong number of args in %s: %d\n", thread_id, __func__, nb_args); exit(-1); @@ -262,6 +267,9 @@ mat[i][j] += old_mat[id1][id2]; /* printf("mat[%d][%d]+=old_mat[%d][%d]=%f\n", i, j, id1, id2, old_mat[id1][id2]);*/ } + } + if(mat[i][j]){ + (*nnz)++; sum_row[i] += mat[i][j]; } } @@ -274,7 +282,8 @@ int i, j, i1, j1, id1, id2; double **new_mat = NULL, **old_mat = aff_mat->mat; double *sum_row = NULL; - + long int nnz = 0; + new_mat = (double**)MALLOC(M*sizeof(double*)); for( i = 0 ; i < M ; i++ ) new_mat[i] = (double*)CALLOC((M), sizeof(double)); @@ -287,16 +296,19 @@ work_t **works; int *inf; int *sup; + long int *nnz_tab; nb_threads = MIN(M/512, get_nb_threads()); works = (work_t**)MALLOC(sizeof(work_t*)*nb_threads); inf = (int*)MALLOC(sizeof(int)*nb_threads); sup = (int*)MALLOC(sizeof(int)*nb_threads); + nnz_tab = (long int*)MALLOC(sizeof(long int)*nb_threads); for(id=0;id= DEBUG) printf("Executing %p\n", (void *)works[id]); @@ -315,13 +328,16 @@ for(id=0;idargs); + nnz += nnz_tab[id]; + destroy_work(works[id]); } - FREE(inf); FREE(sup); FREE(works); + FREE(nnz_tab); + }else{ for( i = 0 ; i < M ; i++ ) for( j = 0 ; j < M ; j++ ){ @@ -333,12 +349,16 @@ new_mat[i][j] += old_mat[id1][id2]; /* printf("mat[%d][%d]+=old_mat[%d][%d]=%f\n", i, j, id1, id2, old_mat[id1][id2]);*/ } + } + if(new_mat[i][j]){ + nnz ++; sum_row[i] += new_mat[i][j]; } } } } - return new_affinity_mat(new_mat, sum_row, M); + + return new_affinity_mat(new_mat, sum_row, M, nnz); } void free_tab_double(double**tab, int mat_order) @@ -918,7 +938,7 @@ work_unit_t *work = (work_unit_t *) args[7]; pthread_mutex_t *lock = (pthread_mutex_t *) args[8]; int *tab_i; - int id = 0, id1, id2; + int id=-1, id1, id2; int total_work = work->nb_work; int cur_work = 0; @@ -1009,12 +1029,7 @@ } -#if 0 -static int dbl_cmp_dec(const void* x1,const void* x2) -{ - return *((double *)x1) > *((double *)x2) ? -1 : 1; -} -#endif + static int dbl_cmp_inc(const void* x1,const void* x2) { return *((double *)x1) < *((double *)x2) ? -1 : 1; @@ -1181,6 +1196,7 @@ for(id=0;idargs); + destroy_work(works[id]); } exit(-1); @@ -1209,6 +1225,7 @@ return 0; } + #if 0 static int old_recurs_exhaustive_search(group_list_t **tab, int i, int n, int arity, int d, int solution_size, double val, double *best_val, group_list_t **selection, group_list_t **best_selection, int8_t **indep_mat) { @@ -1695,7 +1712,8 @@ double **old_mat; double avg; int i, j, mat_order; - + long int nnz = 0; + if(!obj_weight) return aff_mat; @@ -1727,8 +1745,9 @@ mat[i][j] = 1e-4*old_mat[i][j]/comm_speed-fabs(avg-(obj_weight[i]+obj_weight[j])/2); sum_row[i] += mat[i][j]; } + if(mat[i][j]) nnz++; } - return new_affinity_mat(mat, sum_row, mat_order); + return new_affinity_mat(mat, sum_row, mat_order,nnz); } @@ -1774,7 +1793,7 @@ /* if(nb_groups>30000||depth>5){*/ if( nbg > 30000 ){ - double duration; + double duration_loc; TIC; if( arity <= 2 ){ @@ -1792,9 +1811,9 @@ val = k_partition_grouping(cost_mat, tab_node, new_tab_node, arity, solution_size); } - duration = TOC; + duration_loc = TOC; if(verbose_level >= INFO) - printf("Fast grouping duration=%f\n", duration); + printf("Fast grouping duration=%f\n", duration_loc); if(verbose_level >= INFO) display_grouping(new_tab_node, solution_size, arity, val); @@ -1809,7 +1828,7 @@ best_selection = (group_list_t **)MALLOC(sizeof(group_list_t*)*solution_size); list_all_possible_groups(cost_mat, tab_node, 0, arity, 0, cur_group, &list); - assert( nb_groups == (unsigned long int)list.val ); + assert( list.val == nb_groups); tab_group = (group_list_t**)MALLOC(sizeof(group_list_t*)*nb_groups); list_to_tab(list.next, tab_group, nb_groups); if(verbose_level>=INFO) @@ -1952,7 +1971,7 @@ sum_row[i] = (*aff_mat)->sum_row[i]; } - *aff_mat = new_affinity_mat(new_mat, sum_row, M); + *aff_mat = new_affinity_mat(new_mat, sum_row, M, (*aff_mat)->nnz); } void complete_obj_weight(double **tab, int mat_order, int K) @@ -2001,7 +2020,9 @@ list_child[i]->dumb = 1; } - set_node(node, list_child, arity, NULL, -1, 0, list_child[0], depth); + /* list_child => node->child ; list_child[0] => node->tab_child */ + /* printf("list_child[0] = %p\n",list_child[0]); */ + set_node(node, list_child, arity, NULL, -1, 0, NULL, depth); } void complete_tab_node(tm_tree_t **tab, int mat_order, int K, int depth, tm_topology_t *topology) { @@ -2080,6 +2101,8 @@ TIC; K = arity*((mat_order/arity)+1)-mat_order; /*printf("****mat_order=%d arity=%d K=%d\n", mat_order, arity, K); */ + if(verbose_level >= INFO) + printf("****mat_order=%d arity=%d K=%d\n", mat_order, arity, K); /*display_tab(tab, mat_order);*/ /* add K rows and columns to comm_matrix*/ complete_aff_mat(&aff_mat, mat_order, K); @@ -2106,8 +2129,8 @@ for( i = 0 ; i < M ; i++ ){ tm_tree_t **list_child = NULL; list_child = (tm_tree_t**)CALLOC(arity, sizeof(tm_tree_t*)); - set_node(&new_tab_node[i], list_child, arity, NULL, i, 0, tab_node, depth); - } + set_node(&new_tab_node[i], list_child, arity, NULL, i, 0, tab_node, depth); + } duration = TOC; if(verbose_level >= INFO) printf("New nodes creation= %fs\n ", duration); @@ -2224,7 +2247,7 @@ In order to have all the ranks of a given id we need to shift them as follows: */ shift = 1 + i%topology->oversub_fact - topology->oversub_fact; - (*constraints)[i] = topology->node_rank[topology->nb_levels-1][topology->constraints[i/topology->oversub_fact]] +shift; + (*constraints)[i] = topology->node_rank[topology->constraints[i/topology->oversub_fact]] +shift; if((*constraints)[i] < last) sorted = 0; last = (*constraints)[i]; diff -Nru openmpi-4.0.3/ompi/mca/topo/treematch/treematch/treematch.h openmpi-4.1.4/ompi/mca/topo/treematch/treematch/treematch.h --- openmpi-4.0.3/ompi/mca/topo/treematch/treematch/treematch.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/topo/treematch/treematch/treematch.h 2022-05-29 09:51:40.000000000 +0000 @@ -21,6 +21,11 @@ TM_METRIC_HOP_BYTE = 3 } tm_metric_t; +/* numbering */ +typedef enum{ + TM_NUMBERING_LOGICAL = 0, + TM_NUMBERING_PHYSICAL = 1 +} tm_numbering_t; /********* TreeMatch Public Structures **********/ @@ -30,39 +35,42 @@ int finish_date; } tm_job_info_t; -typedef struct _tree_t{ +typedef struct _tm_tree_t{ int constraint; /* tells if the tree has been constructed with constraints on the nodes or not. Usefull for freeing it. needs to be set on the root only*/ - struct _tree_t **child; - struct _tree_t *parent; - struct _tree_t *tab_child; /*the pointer to be freed*/ + struct _tm_tree_t **child; + struct _tm_tree_t *parent; + struct _tm_tree_t *tab_child; /* The pointer to be freed */ double val; int arity; int depth; - int id; - int uniq; - int dumb; /* 1 if the node belongs to a dumb tree: hence has to be freed separately*/ + int id; /* id of the node or the leaf. Ids are different onmly on a given level */ + int uniq; /* uniq id in the whole tree */ + int dumb; /* 1 if the node belongs to a dumb tree: hence has to be freed separately */ tm_job_info_t *job_info; - int nb_processes; /* number of grouped processes (i.e. the order of the affinity matrix). Set at the root only*/ -}tm_tree_t; /* FT : changer le nom : tm_grouap_hierachy_t ?*/ + int nb_processes; /* number of grouped processes (i.e. the order of the affinity matrix). Set at the root only */ +}tm_tree_t; /* FT : changer le nom : tm_grouap_hierachy_t ? */ /* Maximum number of levels in the tree*/ #define TM_MAX_LEVELS 100 typedef struct { - int *arity; /* arity of the nodes of each level*/ - int nb_levels; /*number of levels of the tree. Levels are numbered from top to bottom starting at 0*/ - size_t *nb_nodes; /*nb of nodes of each level*/ - int **node_id; /*ID of the nodes of the tree for each level*/ - int **node_rank ; /*rank of the nodes of the tree for each level given its ID: this is the inverse tab of node_id*/ - size_t *nb_free_nodes; /*nb of available nodes of each level*/ - int **free_nodes; /*tab of node that are free: useful to simulate batch scheduler*/ - double *cost; /*cost of the communication depending on the distance: - cost[i] is the cost for communicating at distance nb_levels-i*/ - int *constraints; /* array of constraints: id of the nodes where it is possible to map processes */ - int nb_constraints; /* Size of the above array */ - int oversub_fact; /* maximum number of processes to be mapped on a given node */ - int nb_proc_units; /* the real number of units used for computation */ + int *arity; /* Arity of the nodes of each level*/ + int nb_levels; /* Number of levels of the tree. Levels are numbered from top to bottom starting at 0*/ + size_t *nb_nodes; /* Number of nodes of each level*/ + int physical_num; /* Flag set to !=0 if se use physical numberig and set to 0 is we use logical numbering */ + int *node_id; /* ID of the nodes of the tree of the last level*/ + int *node_rank ; /* Rank of the nodes of the tree for the last level given its ID: this is the inverse tab of node_id*/ + + size_t *nb_free_nodes; /* Nb of available nodes of each level*/ + int **free_nodes; /* array of node that are free: useful to simulate batch scheduler*/ + double *cost; /* Cost of the communication depending on the distance: + cost[i] is the cost for communicating at distance nb_levels-i*/ + + int *constraints; /* Array of constraints: id of the nodes where it is possible to map processes */ + int nb_constraints; /* Size of the above array */ + int oversub_fact; /* Maximum number of processes to be mapped on a given node */ + int nb_proc_units; /* The real number of units used for computation */ }tm_topology_t; @@ -70,17 +78,18 @@ double ** mat; double * sum_row; int order; + long int nnz; /* number of non zero entries */ } tm_affinity_mat_t; /* - sigma_i is such that process i is mapped on core sigma_i - k_i is such that core i exectutes process k_i_j (0<=j<<=oversubscribing factor - 1) + sigma[i] is such that process i is mapped on core sigma[i] + k[i][j] is such that core i executes process k[i][j] (0<=j<<=oversubscribing factor - 1) size of sigma is the number of processes (nb_objs) size of k is the number of cores/nodes (nb_compute_units) size of k[i] is the number of process we can execute per nodes (1 if no oversubscribing) - We must have numbe of process<=number of cores + We must have number of process<=number of cores k[i] == NULL if no process is mapped on core i */ @@ -95,8 +104,10 @@ /************ TreeMatch Public API ************/ +/* construct topology from local one using hwloc */ +tm_topology_t* tm_get_local_topology_with_hwloc(void); -/* load XML or TGT topology */ +/* Aletrnatively, load XML or TGT topology */ tm_topology_t *tm_load_topology(char *arch_filename, tm_file_type_t arch_file_type); /* Alternatively, build a synthetic balanced topology. @@ -120,7 +131,7 @@ double cost[5] = {500,100,50,10,0}; int arity[5] = {16,2,2,2,0}; - int cn[5]={0,1}; + int cn[2]={0,1}; topology = tm_build_synthetic_topology(arity,cost,5,cn,2); @@ -153,7 +164,7 @@ void tm_enable_oversubscribing(tm_topology_t *topology, unsigned int oversub_fact); /* core of the treematch: compute the solution tree */ tm_tree_t *tm_build_tree_from_topology(tm_topology_t *topology, tm_affinity_mat_t *aff_mat, double *obj_weight, double *com_speed); -/* compute the mapping according to teh tree an dthe core numbering*/ +/* compute the mapping according to the tree and the core numbering*/ tm_solution_t *tm_compute_mapping(tm_topology_t *topology, tm_tree_t *comm_tree); /* display the solution*/ double tm_display_solution(tm_topology_t *topology, tm_affinity_mat_t *aff_mat, tm_solution_t *sol, tm_metric_t metric); @@ -178,10 +189,21 @@ void tm_set_exhaustive_search_flag(int new_val); int tm_get_exhaustive_search_flag(void); +/* +Ask for greedy k-partitionning even if scotch is available + new_val == 0 : no greedy k-partitionning + new_val != 0 : greedy k-partitionning +*/ +void tm_set_greedy_flag(int new_val); +int tm_get_greedy_flag(void); + /* Setting the maximum number of threads you want to use in parallel parts of TreeMatch */ void tm_set_max_nb_threads(unsigned int val); +/* managing the usage of physical vs. logical core numbering when using hwloc/xml files */ +void tm_set_numbering(tm_numbering_t new_val); /* TM_NUMBERING_LOGICAL or TM_NUMBERING_PHYSICAL */ +tm_numbering_t tm_get_numbering(void); /* TM_NUMBERING_LOGICAL or TM_NUMBERING_PHYSICAL */ #include "tm_malloc.h" diff -Nru openmpi-4.0.3/ompi/mca/vprotocol/Makefile.in openmpi-4.1.4/ompi/mca/vprotocol/Makefile.in --- openmpi-4.0.3/ompi/mca/vprotocol/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/vprotocol/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -122,6 +122,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -129,6 +131,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -152,6 +155,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -254,6 +258,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -261,6 +266,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -341,6 +347,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -363,9 +370,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -375,6 +386,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -395,6 +407,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -653,6 +666,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1473,6 +1489,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1505,9 +1525,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1528,6 +1557,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1612,9 +1642,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1675,6 +1702,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1688,6 +1718,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mca/vprotocol/pessimist/Makefile.in openmpi-4.1.4/ompi/mca/vprotocol/pessimist/Makefile.in --- openmpi-4.0.3/ompi/mca/vprotocol/pessimist/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mca/vprotocol/pessimist/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -113,6 +113,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -120,6 +122,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -143,6 +146,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -245,6 +249,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -252,6 +257,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -332,6 +338,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -354,9 +361,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -366,6 +377,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -386,6 +398,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -664,6 +677,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1484,6 +1500,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1516,9 +1536,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1539,6 +1568,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1623,9 +1653,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1686,6 +1713,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1699,6 +1729,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/c/ibcast.c openmpi-4.1.4/ompi/mpi/c/ibcast.c --- openmpi-4.0.3/ompi/mpi/c/ibcast.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/ibcast.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2012 Oak Rigde National Laboratory. All rights reserved. * Copyright (c) 2015-2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2017-2018 The University of Tennessee and The University + * Copyright (c) 2017-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * $COPYRIGHT$ @@ -80,6 +80,14 @@ } } + /* If there's only one node, or if the count is 0, we're done */ + + if ((OMPI_COMM_IS_INTRA(comm) && ompi_comm_size(comm) <= 1) || + 0 == count) { + *request = &ompi_request_empty; + return MPI_SUCCESS; + } + OPAL_CR_ENTER_LIBRARY(); /* Invoke the coll component to perform the back-end operation */ diff -Nru openmpi-4.0.3/ompi/mpi/c/improbe.c openmpi-4.1.4/ompi/mpi/c/improbe.c --- openmpi-4.0.3/ompi/mpi/c/improbe.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/improbe.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,9 +1,12 @@ /* * Copyright (c) 2011 Sandia National Laboratories. All rights reserved. - * Copyright (c) 2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2020-2021 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -58,7 +61,7 @@ if (MPI_PROC_NULL == source) { if (MPI_STATUS_IGNORE != status) { - *status = ompi_request_empty.req_status; + OMPI_COPY_STATUS(status, ompi_request_empty.req_status, false); /* Per MPI-1, the MPI_ERROR field is not defined for single-completion calls */ MEMCHECKER( diff -Nru openmpi-4.0.3/ompi/mpi/c/ineighbor_alltoallv.c openmpi-4.1.4/ompi/mpi/c/ineighbor_alltoallv.c --- openmpi-4.0.3/ompi/mpi/c/ineighbor_alltoallv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/ineighbor_alltoallv.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,8 +13,8 @@ * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012-2017 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2014-2018 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. * $COPYRIGHT$ * @@ -102,14 +102,15 @@ } else if (! OMPI_COMM_IS_TOPO(comm)) { return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_TOPOLOGY, FUNC_NAME); - } else if ((NULL == sendcounts) || (NULL == sdispls) || - (NULL == recvcounts) || (NULL == rdispls) || - MPI_IN_PLACE == sendbuf || MPI_IN_PLACE == recvbuf) { - return OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_ARG, FUNC_NAME); } err = mca_topo_base_neighbor_count (comm, &indegree, &outdegree); OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME); + if (((0 < outdegree) && ((NULL == sendcounts) || (NULL == sdispls))) || + ((0 < indegree) && ((NULL == recvcounts) || (NULL == rdispls))) || + MPI_IN_PLACE == sendbuf || MPI_IN_PLACE == recvbuf) { + return OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_ARG, FUNC_NAME); + } for (i = 0; i < outdegree; ++i) { OMPI_CHECK_DATATYPE_FOR_SEND(err, sendtype, sendcounts[i]); OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME); diff -Nru openmpi-4.0.3/ompi/mpi/c/ineighbor_alltoallw.c openmpi-4.1.4/ompi/mpi/c/ineighbor_alltoallw.c --- openmpi-4.0.3/ompi/mpi/c/ineighbor_alltoallw.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/ineighbor_alltoallw.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,8 +13,8 @@ * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012-2017 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2014-2018 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. * $COPYRIGHT$ * @@ -102,14 +102,13 @@ FUNC_NAME); } - if ((NULL == sendcounts) || (NULL == sdispls) || (NULL == sendtypes) || - (NULL == recvcounts) || (NULL == rdispls) || (NULL == recvtypes) || + err = mca_topo_base_neighbor_count (comm, &indegree, &outdegree); + OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME); + if (((0 < outdegree) && ((NULL == sendcounts) || (NULL == sdispls) || (NULL == sendtypes))) || + ((0 < indegree) && ((NULL == recvcounts) || (NULL == rdispls) || (NULL == recvtypes))) || MPI_IN_PLACE == sendbuf || MPI_IN_PLACE == recvbuf) { return OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_ARG, FUNC_NAME); } - - err = mca_topo_base_neighbor_count (comm, &indegree, &outdegree); - OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME); for (i = 0; i < outdegree; ++i) { OMPI_CHECK_DATATYPE_FOR_SEND(err, sendtypes[i], sendcounts[i]); OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME); diff -Nru openmpi-4.0.3/ompi/mpi/c/iprobe.c openmpi-4.1.4/ompi/mpi/c/iprobe.c --- openmpi-4.0.3/ompi/mpi/c/iprobe.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/iprobe.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2018 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, @@ -67,7 +67,7 @@ if (MPI_PROC_NULL == source) { *flag = 1; if (MPI_STATUS_IGNORE != status) { - *status = ompi_request_empty.req_status; + OMPI_COPY_STATUS(status, ompi_request_empty.req_status, false); /* * Per MPI-1, the MPI_ERROR field is not defined for single-completion calls */ diff -Nru openmpi-4.0.3/ompi/mpi/c/ireduce.c openmpi-4.1.4/ompi/mpi/c/ireduce.c --- openmpi-4.0.3/ompi/mpi/c/ireduce.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/ireduce.c 2022-05-29 09:51:40.000000000 +0000 @@ -100,7 +100,8 @@ free(msg); return ret; } else if ((ompi_comm_rank(comm) != root && MPI_IN_PLACE == sendbuf) || - (ompi_comm_rank(comm) == root && ((MPI_IN_PLACE == recvbuf) || (sendbuf == recvbuf)))) { + (ompi_comm_rank(comm) == root && ((MPI_IN_PLACE == recvbuf) || + ((sendbuf == recvbuf) && (0 != count))))) { err = MPI_ERR_ARG; } else { OMPI_CHECK_DATATYPE_FOR_SEND(err, datatype, count); diff -Nru openmpi-4.0.3/ompi/mpi/c/ireduce_scatter_block.c openmpi-4.1.4/ompi/mpi/c/ireduce_scatter_block.c --- openmpi-4.0.3/ompi/mpi/c/ireduce_scatter_block.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/ireduce_scatter_block.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2018 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, @@ -97,6 +97,11 @@ OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME); } + if (0 == recvcount) { + *request = &ompi_request_empty; + return MPI_SUCCESS; + } + OPAL_CR_ENTER_LIBRARY(); /* Invoke the coll component to perform the back-end operation */ diff -Nru openmpi-4.0.3/ompi/mpi/c/Makefile.in openmpi-4.1.4/ompi/mpi/c/Makefile.in --- openmpi-4.0.3/ompi/mpi/c/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -126,6 +126,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -133,6 +135,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -156,6 +159,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -258,6 +262,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -265,6 +270,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -345,6 +351,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -367,9 +374,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -379,6 +390,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -399,6 +411,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -815,6 +828,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1635,6 +1651,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1667,9 +1687,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1690,6 +1719,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1774,9 +1804,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1837,6 +1864,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1850,6 +1880,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/c/mprobe.c openmpi-4.1.4/ompi/mpi/c/mprobe.c --- openmpi-4.0.3/ompi/mpi/c/mprobe.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/mprobe.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2020-2021 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -58,7 +61,7 @@ if (MPI_PROC_NULL == source) { if (MPI_STATUS_IGNORE != status) { - *status = ompi_request_empty.req_status; + OMPI_COPY_STATUS(status, ompi_request_empty.req_status, false); /* Per MPI-1, the MPI_ERROR field is not defined for single-completion calls */ MEMCHECKER( diff -Nru openmpi-4.0.3/ompi/mpi/c/mrecv.c openmpi-4.1.4/ompi/mpi/c/mrecv.c --- openmpi-4.0.3/ompi/mpi/c/mrecv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/mrecv.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2012-2013 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2018 The University of Tennessee and The University + * Copyright (c) 2018-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * $COPYRIGHT$ @@ -67,7 +67,7 @@ if (&ompi_message_no_proc.message == *message) { if (MPI_STATUS_IGNORE != status) { - *status = ompi_request_empty.req_status; + OMPI_COPY_STATUS(status, ompi_request_empty.req_status, false); } *message = MPI_MESSAGE_NULL; return MPI_SUCCESS; diff -Nru openmpi-4.0.3/ompi/mpi/c/neighbor_alltoallv.c openmpi-4.1.4/ompi/mpi/c/neighbor_alltoallv.c --- openmpi-4.0.3/ompi/mpi/c/neighbor_alltoallv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/neighbor_alltoallv.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012-2017 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2014-2015 Research Organization for Information Science + * Copyright (c) 2014-2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. * $COPYRIGHT$ @@ -101,14 +101,15 @@ } else if (! OMPI_COMM_IS_TOPO(comm)) { return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_COMM, FUNC_NAME); - } else if ((NULL == sendcounts) || (NULL == sdispls) || - (NULL == recvcounts) || (NULL == rdispls) || - MPI_IN_PLACE == sendbuf || MPI_IN_PLACE == recvbuf) { - return OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_ARG, FUNC_NAME); } err = mca_topo_base_neighbor_count (comm, &indegree, &outdegree); OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME); + if (((0 < outdegree) && ((NULL == sendcounts) || (NULL == sdispls))) || + ((0 < indegree) && ((NULL == recvcounts) || (NULL == rdispls))) || + MPI_IN_PLACE == sendbuf || MPI_IN_PLACE == recvbuf) { + return OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_ARG, FUNC_NAME); + } for (i = 0; i < outdegree; ++i) { OMPI_CHECK_DATATYPE_FOR_SEND(err, sendtype, sendcounts[i]); OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME); diff -Nru openmpi-4.0.3/ompi/mpi/c/neighbor_alltoallw.c openmpi-4.1.4/ompi/mpi/c/neighbor_alltoallw.c --- openmpi-4.0.3/ompi/mpi/c/neighbor_alltoallw.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/neighbor_alltoallw.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,8 +13,8 @@ * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012-2017 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2014-2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. * $COPYRIGHT$ * @@ -97,14 +97,15 @@ } else if (! OMPI_COMM_IS_TOPO(comm)) { return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_TOPOLOGY, FUNC_NAME); - } else if ((NULL == sendcounts) || (NULL == sdispls) || (NULL == sendtypes) || - (NULL == recvcounts) || (NULL == rdispls) || (NULL == recvtypes) || - MPI_IN_PLACE == sendbuf || MPI_IN_PLACE == recvbuf) { - return OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_ARG, FUNC_NAME); } err = mca_topo_base_neighbor_count (comm, &indegree, &outdegree); OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME); + if (((0 < outdegree) && ((NULL == sendcounts) || (NULL == sdispls) || (NULL == sendtypes))) || + ((0 < indegree) && ((NULL == recvcounts) || (NULL == rdispls) || (NULL == recvtypes))) || + MPI_IN_PLACE == sendbuf || MPI_IN_PLACE == recvbuf) { + return OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_ARG, FUNC_NAME); + } for (i = 0; i < outdegree; ++i) { OMPI_CHECK_DATATYPE_FOR_SEND(err, sendtypes[i], sendcounts[i]); OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME); diff -Nru openmpi-4.0.3/ompi/mpi/c/probe.c openmpi-4.1.4/ompi/mpi/c/probe.c --- openmpi-4.0.3/ompi/mpi/c/probe.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/probe.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2018 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, @@ -66,7 +66,7 @@ if (MPI_PROC_NULL == source) { if (MPI_STATUS_IGNORE != status) { - *status = ompi_request_empty.req_status; + OMPI_COPY_STATUS(status, ompi_request_empty.req_status, false); /* * Per MPI-1, the MPI_ERROR field is not defined for single-completion calls */ diff -Nru openmpi-4.0.3/ompi/mpi/c/profile/Makefile.in openmpi-4.1.4/ompi/mpi/c/profile/Makefile.in --- openmpi-4.0.3/ompi/mpi/c/profile/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/profile/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -138,6 +138,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -145,6 +147,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -168,6 +171,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -270,6 +274,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -277,6 +282,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -357,6 +363,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -379,9 +386,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -391,6 +402,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -411,6 +423,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -758,6 +771,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1578,6 +1594,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1610,9 +1630,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1633,6 +1662,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1717,9 +1747,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1780,6 +1807,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1793,6 +1823,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/c/recv.c openmpi-4.1.4/ompi/mpi/c/recv.c --- openmpi-4.0.3/ompi/mpi/c/recv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/recv.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2018 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, @@ -72,7 +72,7 @@ if (MPI_PROC_NULL == source) { if (MPI_STATUS_IGNORE != status) { - *status = ompi_request_empty.req_status; + OMPI_COPY_STATUS(status, ompi_request_empty.req_status, false); } return MPI_SUCCESS; } diff -Nru openmpi-4.0.3/ompi/mpi/c/reduce.c openmpi-4.1.4/ompi/mpi/c/reduce.c --- openmpi-4.0.3/ompi/mpi/c/reduce.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/reduce.c 2022-05-29 09:51:40.000000000 +0000 @@ -98,7 +98,8 @@ free(msg); return ret; } else if ((ompi_comm_rank(comm) != root && MPI_IN_PLACE == sendbuf) || - (ompi_comm_rank(comm) == root && ((MPI_IN_PLACE == recvbuf) || (sendbuf == recvbuf)))) { + (ompi_comm_rank(comm) == root && ((MPI_IN_PLACE == recvbuf) || + ((sendbuf == recvbuf) && (0 != count))))) { err = MPI_ERR_ARG; } else { OMPI_CHECK_DATATYPE_FOR_SEND(err, datatype, count); diff -Nru openmpi-4.0.3/ompi/mpi/c/reduce_scatter_block.c openmpi-4.1.4/ompi/mpi/c/reduce_scatter_block.c --- openmpi-4.0.3/ompi/mpi/c/reduce_scatter_block.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/reduce_scatter_block.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2017 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, @@ -94,6 +94,9 @@ OMPI_CHECK_DATATYPE_FOR_SEND(err, datatype, recvcount); OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME); } + if (0 == recvcount) { + return MPI_SUCCESS; + } OPAL_CR_ENTER_LIBRARY(); diff -Nru openmpi-4.0.3/ompi/mpi/c/request_get_status.c openmpi-4.1.4/ompi/mpi/c/request_get_status.c --- openmpi-4.0.3/ompi/mpi/c/request_get_status.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/request_get_status.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2005 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, @@ -72,7 +72,7 @@ if( (request == MPI_REQUEST_NULL) || (request->req_state == OMPI_REQUEST_INACTIVE) ) { *flag = true; if( MPI_STATUS_IGNORE != status ) { - *status = ompi_status_empty; + OMPI_COPY_STATUS(status, ompi_status_empty, false); } return MPI_SUCCESS; } @@ -85,7 +85,7 @@ ompi_grequest_invoke_query(request, &request->req_status); } if (MPI_STATUS_IGNORE != status) { - *status = request->req_status; + OMPI_COPY_STATUS(status, request->req_status, false); } return MPI_SUCCESS; } diff -Nru openmpi-4.0.3/ompi/mpi/c/sendrecv.c openmpi-4.1.4/ompi/mpi/c/sendrecv.c --- openmpi-4.0.3/ompi/mpi/c/sendrecv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/sendrecv.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2018 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, @@ -97,7 +97,7 @@ rc = ompi_request_wait(&req, status); } else { if (MPI_STATUS_IGNORE != status) { - *status = ompi_request_empty.req_status; + OMPI_COPY_STATUS(status, ompi_request_empty.req_status, false); } rc = MPI_SUCCESS; } diff -Nru openmpi-4.0.3/ompi/mpi/c/sendrecv_replace.c openmpi-4.1.4/ompi/mpi/c/sendrecv_replace.c --- openmpi-4.0.3/ompi/mpi/c/sendrecv_replace.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/sendrecv_replace.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,8 +10,8 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2010-2012 Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2015-2021 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. * $COPYRIGHT$ * @@ -47,6 +47,7 @@ MPI_Comm comm, MPI_Status *status) { + ompi_request_t* req; int rc = MPI_SUCCESS; SPC_RECORD(OMPI_SPC_SENDRECV_REPLACE, 1); @@ -100,19 +101,18 @@ struct iovec iov = { .iov_base = packed_data, .iov_len = sizeof(packed_data) }; size_t packed_size, max_data; uint32_t iov_count; - ompi_status_public_t recv_status; ompi_proc_t* proc = ompi_comm_peer_lookup(comm, dest); if(proc == NULL) { rc = MPI_ERR_RANK; OMPI_ERRHANDLER_RETURN(rc, comm, rc, FUNC_NAME); } - /* initialize convertor to unpack recv buffer */ + /* initialize convertor to pack send buffer */ OBJ_CONSTRUCT(&convertor, opal_convertor_t); opal_convertor_copy_and_prepare_for_send( proc->super.proc_convertor, &(datatype->super), count, buf, 0, &convertor ); - /* setup a buffer for recv */ + /* setup a temporary buffer to send */ opal_convertor_get_packed_size( &convertor, &packed_size ); if( packed_size > sizeof(packed_data) ) { rc = PMPI_Alloc_mem(packed_size, MPI_INFO_NULL, &iov.iov_base); @@ -124,18 +124,26 @@ } max_data = packed_size; iov_count = 1; - rc = opal_convertor_pack(&convertor, &iov, &iov_count, &max_data); - - /* recv into temporary buffer */ - rc = PMPI_Sendrecv( iov.iov_base, packed_size, MPI_PACKED, dest, sendtag, buf, count, - datatype, source, recvtag, comm, &recv_status ); + (void)opal_convertor_pack(&convertor, &iov, &iov_count, &max_data); - cleanup_and_return: - /* return status to user */ - if(status != MPI_STATUS_IGNORE) { - *status = recv_status; + /* receive into the buffer */ + rc = MCA_PML_CALL(irecv(buf, count, datatype, + source, recvtag, comm, &req)); + if(OMPI_SUCCESS != rc) { + goto cleanup_and_return; + } + + /* send from the temporary buffer */ + rc = MCA_PML_CALL(send(iov.iov_base, packed_size, MPI_PACKED, dest, + sendtag, MCA_PML_BASE_SEND_STANDARD, comm)); + if(OMPI_SUCCESS != rc) { + goto cleanup_and_return; } + rc = ompi_request_wait(&req, status); + + cleanup_and_return: + /* release resources */ if(packed_size > sizeof(packed_data)) { PMPI_Free_mem(iov.iov_base); diff -Nru openmpi-4.0.3/ompi/mpi/c/testany.c openmpi-4.1.4/ompi/mpi/c/testany.c --- openmpi-4.0.3/ompi/mpi/c/testany.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/testany.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2018 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, @@ -77,7 +77,7 @@ *completed = true; *indx = MPI_UNDEFINED; if (MPI_STATUS_IGNORE != status) { - *status = ompi_status_empty; + OMPI_COPY_STATUS(status, ompi_status_empty, false); } return MPI_SUCCESS; } diff -Nru openmpi-4.0.3/ompi/mpi/c/waitany.c openmpi-4.1.4/ompi/mpi/c/waitany.c --- openmpi-4.0.3/ompi/mpi/c/waitany.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/waitany.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2018 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, @@ -76,7 +76,7 @@ if (OPAL_UNLIKELY(0 == count)) { *indx = MPI_UNDEFINED; if (MPI_STATUS_IGNORE != status) { - *status = ompi_status_empty; + OMPI_COPY_STATUS(status, ompi_status_empty, false); } return MPI_SUCCESS; } diff -Nru openmpi-4.0.3/ompi/mpi/c/wait.c openmpi-4.1.4/ompi/mpi/c/wait.c --- openmpi-4.0.3/ompi/mpi/c/wait.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/c/wait.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2018 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, @@ -58,7 +58,7 @@ if (MPI_REQUEST_NULL == *request) { if (MPI_STATUS_IGNORE != status) { - *status = ompi_status_empty; + OMPI_COPY_STATUS(status, ompi_status_empty, false); /* * Per MPI-1, the MPI_ERROR field is not defined for single-completion calls */ diff -Nru openmpi-4.0.3/ompi/mpi/cxx/Makefile.am openmpi-4.1.4/ompi/mpi/cxx/Makefile.am --- openmpi-4.0.3/ompi/mpi/cxx/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/cxx/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -12,8 +12,8 @@ # All rights reserved. # Copyright (c) 2007-2012 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2016 IBM Corporation. All rights reserved. -# Copyright (c) 2017 Research Organization for Information Science -# and Technology (RIST). All rights reserved. +# Copyright (c) 2017-2021 Research Organization for Information Science +# and Technology (RIST). All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -42,7 +42,8 @@ win.cc \ cxx_glue.c -lib@OMPI_LIBMPI_NAME@_cxx_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la +lib@OMPI_LIBMPI_NAME@_cxx_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la lib@OMPI_LIBMPI_NAME@_cxx_la_LDFLAGS = -version-info $(libmpi_cxx_so_version) headers = \ diff -Nru openmpi-4.0.3/ompi/mpi/cxx/Makefile.in openmpi-4.1.4/ompi/mpi/cxx/Makefile.in --- openmpi-4.0.3/ompi/mpi/cxx/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/cxx/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -28,8 +28,8 @@ # All rights reserved. # Copyright (c) 2007-2012 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2016 IBM Corporation. All rights reserved. -# Copyright (c) 2017 Research Organization for Information Science -# and Technology (RIST). All rights reserved. +# Copyright (c) 2017-2021 Research Organization for Information Science +# and Technology (RIST). All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -122,6 +122,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -129,6 +131,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -152,6 +155,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -254,6 +258,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -261,6 +266,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -341,6 +347,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -363,9 +370,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -375,6 +386,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -395,6 +407,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -450,7 +463,8 @@ } am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(ompidir)" LTLIBRARIES = $(lib_LTLIBRARIES) -@OMPI_BUILD_MPI_CXX_BINDINGS_TRUE@lib@OMPI_LIBMPI_NAME@_cxx_la_DEPENDENCIES = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la +@OMPI_BUILD_MPI_CXX_BINDINGS_TRUE@lib@OMPI_LIBMPI_NAME@_cxx_la_DEPENDENCIES = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ +@OMPI_BUILD_MPI_CXX_BINDINGS_TRUE@ $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la am__lib@OMPI_LIBMPI_NAME@_cxx_la_SOURCES_DIST = mpicxx.cc \ intercepts.cc comm.cc datatype.cc file.cc win.cc cxx_glue.c @OMPI_BUILD_MPI_CXX_BINDINGS_TRUE@am_lib@OMPI_LIBMPI_NAME@_cxx_la_OBJECTS = \ @@ -683,6 +697,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1503,6 +1520,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1535,9 +1556,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1558,6 +1588,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1642,9 +1673,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1705,6 +1733,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1718,6 +1749,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ @@ -1762,7 +1797,9 @@ @OMPI_BUILD_MPI_CXX_BINDINGS_TRUE@ win.cc \ @OMPI_BUILD_MPI_CXX_BINDINGS_TRUE@ cxx_glue.c -@OMPI_BUILD_MPI_CXX_BINDINGS_TRUE@lib@OMPI_LIBMPI_NAME@_cxx_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la +@OMPI_BUILD_MPI_CXX_BINDINGS_TRUE@lib@OMPI_LIBMPI_NAME@_cxx_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ +@OMPI_BUILD_MPI_CXX_BINDINGS_TRUE@ $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la + @OMPI_BUILD_MPI_CXX_BINDINGS_TRUE@lib@OMPI_LIBMPI_NAME@_cxx_la_LDFLAGS = -version-info $(libmpi_cxx_so_version) @OMPI_BUILD_MPI_CXX_BINDINGS_TRUE@headers = \ @OMPI_BUILD_MPI_CXX_BINDINGS_TRUE@ mpicxx.h \ diff -Nru openmpi-4.0.3/ompi/mpi/fortran/base/Makefile.in openmpi-4.1.4/ompi/mpi/fortran/base/Makefile.in --- openmpi-4.0.3/ompi/mpi/fortran/base/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/fortran/base/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -125,6 +125,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -132,6 +134,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -155,6 +158,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -257,6 +261,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -264,6 +269,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -344,6 +350,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -366,9 +373,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -378,6 +389,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -398,6 +410,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -628,6 +641,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1448,6 +1464,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1480,9 +1500,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1503,6 +1532,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1587,9 +1617,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1650,6 +1677,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1663,6 +1693,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/fortran/mpiext-use-mpi/Makefile.in openmpi-4.1.4/ompi/mpi/fortran/mpiext-use-mpi/Makefile.in --- openmpi-4.0.3/ompi/mpi/fortran/mpiext-use-mpi/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/fortran/mpiext-use-mpi/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -622,6 +635,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1442,6 +1458,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1474,9 +1494,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1497,6 +1526,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1581,9 +1611,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1644,6 +1671,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1657,6 +1687,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/fortran/mpiext-use-mpi-f08/Makefile.in openmpi-4.1.4/ompi/mpi/fortran/mpiext-use-mpi-f08/Makefile.in --- openmpi-4.0.3/ompi/mpi/fortran/mpiext-use-mpi-f08/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/fortran/mpiext-use-mpi-f08/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -622,6 +635,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1442,6 +1458,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1474,9 +1494,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1497,6 +1526,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1581,9 +1611,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1644,6 +1671,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1657,6 +1687,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/fortran/mpif-h/improbe_f.c openmpi-4.1.4/ompi/mpi/fortran/mpif-h/improbe_f.c --- openmpi-4.0.3/ompi/mpi/fortran/mpif-h/improbe_f.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/fortran/mpif-h/improbe_f.c 2022-05-29 09:51:40.000000000 +0000 @@ -95,7 +95,7 @@ if (MPI_SUCCESS == c_ierr) { OMPI_SINGLE_INT_2_LOGICAL(flag); - if (OMPI_FORTRAN_VALUE_TRUE == *flag) { + if (1 == OMPI_LOGICAL_2_INT(*flag)) { OMPI_FORTRAN_STATUS_RETURN(c_status,c_status2,status,c_ierr) *message = PMPI_Message_c2f(c_message); } diff -Nru openmpi-4.0.3/ompi/mpi/fortran/mpif-h/Makefile.in openmpi-4.1.4/ompi/mpi/fortran/mpif-h/Makefile.in --- openmpi-4.0.3/ompi/mpi/fortran/mpif-h/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/fortran/mpif-h/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -514,6 +514,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -521,6 +523,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -544,6 +547,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -646,6 +650,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -653,6 +658,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -733,6 +739,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -755,9 +762,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -767,6 +778,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -787,6 +799,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -1605,6 +1618,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -2425,6 +2441,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -2457,9 +2477,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -2480,6 +2509,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -2564,9 +2594,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -2627,6 +2654,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -2640,6 +2670,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/fortran/mpif-h/profile/Makefile.in openmpi-4.1.4/ompi/mpi/fortran/mpif-h/profile/Makefile.in --- openmpi-4.0.3/ompi/mpi/fortran/mpif-h/profile/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/fortran/mpif-h/profile/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -144,6 +144,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -151,6 +153,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -174,6 +177,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -276,6 +280,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -283,6 +288,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -363,6 +369,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -385,9 +392,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -397,6 +408,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -417,6 +429,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -802,6 +815,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1622,6 +1638,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1654,9 +1674,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1677,6 +1706,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1761,9 +1791,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1824,6 +1851,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1837,6 +1867,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/base/constants.c openmpi-4.1.4/ompi/mpi/fortran/use-mpi-f08/base/constants.c --- openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/base/constants.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/fortran/use-mpi-f08/base/constants.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2010-2015 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015-2018 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * + * Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. + * $COPYRIGHT$ + * + * This file provides symbols for the derived type values needed + * in mpi3_types.f90. + */ + +#include "ompi_config.h" + +#include "constants.h" + +/* + * The following typedef is used to adjust the size of objects + * exported to Fortran via a BIND(C) symbol. Note that an array of + * one of the handles in Fortran, i.e., type(MPI_Comm) has standard + * integer strides so there should be no problem with using them in in + * arrays or common blocks. + */ +typedef MPI_Fint ompi_fortran_08_handle_t[OMPI_FORTRAN_F08_HANDLE_SIZE / sizeof(MPI_Fint)]; + +#if OMPI_FORTRAN_F08_HANDLE_ALIGNMENT > OMPI_FORTRAN_F08_HANDLE_SIZE +#define OMPI_F08_HANDLE_ALIGNED __opal_attribute_aligned__(OMPI_FORTRAN_F08_HANDLE_ALIGNMENT) +#else +#define OMPI_F08_HANDLE_ALIGNED +#endif + +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_comm_world = {OMPI_MPI_COMM_WORLD}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_comm_self = {OMPI_MPI_COMM_SELF}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_group_empty = {OMPI_MPI_GROUP_EMPTY}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_errors_are_fatal = {OMPI_MPI_ERRORS_ARE_FATAL}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_errors_return = {OMPI_MPI_ERRORS_RETURN}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_message_no_proc = {OMPI_MPI_MESSAGE_NO_PROC}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_info_env = {OMPI_MPI_INFO_ENV}; + +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_max = {OMPI_MPI_MAX}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_min = {OMPI_MPI_MIN}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_sum = {OMPI_MPI_SUM}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_prod = {OMPI_MPI_PROD}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_land = {OMPI_MPI_LAND}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_band = {OMPI_MPI_BAND}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_lor = {OMPI_MPI_LOR}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_bor = {OMPI_MPI_BOR}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_lxor = {OMPI_MPI_LXOR}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_bxor = {OMPI_MPI_BXOR}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_maxloc = {OMPI_MPI_MAXLOC}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_minloc = {OMPI_MPI_MINLOC}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_replace = {OMPI_MPI_REPLACE}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_no_op = {OMPI_MPI_NO_OP}; + +/* + * NULL "handles" (indices) + */ +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_comm_null = {OMPI_MPI_COMM_NULL}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_datatype_null = {OMPI_MPI_DATATYPE_NULL}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_errhandler_null = {OMPI_MPI_ERRHANDLER_NULL}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_group_null = {OMPI_MPI_GROUP_NULL}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_info_null = {OMPI_MPI_INFO_NULL}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_message_null = {OMPI_MPI_MESSAGE_NULL}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_op_null = {OMPI_MPI_OP_NULL}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_request_null = {OMPI_MPI_REQUEST_NULL}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_win_null = {OMPI_MPI_WIN_NULL}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_file_null = {OMPI_MPI_FILE_NULL}; + +/* + * common block items from ompi/include/mpif-common.h + */ +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_aint = {OMPI_MPI_AINT}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_byte = {OMPI_MPI_BYTE}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_packed = {OMPI_MPI_PACKED}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_ub = {OMPI_MPI_UB}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_lb = {OMPI_MPI_LB}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_char = {OMPI_MPI_CHAR}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_signed_char = {OMPI_MPI_SIGNED_CHAR}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_unsigned_char = {OMPI_MPI_UNSIGNED_CHAR}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_wchar = {OMPI_MPI_WCHAR}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_character = {OMPI_MPI_CHARACTER}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_logical = {OMPI_MPI_LOGICAL}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_int = {OMPI_MPI_INT}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_int16 = {OMPI_MPI_INT16_T}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_int32 = {OMPI_MPI_INT32_T}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_int64 = {OMPI_MPI_INT64_T}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_int8 = {OMPI_MPI_INT8_T}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_uint16 = {OMPI_MPI_UINT16_T}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_uint32 = {OMPI_MPI_UINT32_T}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_uint64 = {OMPI_MPI_UINT64_T}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_uint8 = {OMPI_MPI_UINT8_T}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_short = {OMPI_MPI_SHORT}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_unsigned_short = {OMPI_MPI_UNSIGNED_SHORT}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_unsigned = {OMPI_MPI_UNSIGNED}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_long = {OMPI_MPI_LONG}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_unsigned_long = {OMPI_MPI_UNSIGNED_LONG}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_long_long = {OMPI_MPI_LONG_LONG}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_unsigned_long_long = {OMPI_MPI_UNSIGNED_LONG_LONG}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_long_long_int = {OMPI_MPI_LONG_LONG_INT}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_integer = {OMPI_MPI_INTEGER}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_integer1 = {OMPI_MPI_INTEGER1}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_integer2 = {OMPI_MPI_INTEGER2}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_integer4 = {OMPI_MPI_INTEGER4}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_integer8 = {OMPI_MPI_INTEGER8}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_integer16 = {OMPI_MPI_INTEGER16}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_float = {OMPI_MPI_FLOAT}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_double = {OMPI_MPI_DOUBLE}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_long_double = {OMPI_MPI_LONG_DOUBLE}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_real = {OMPI_MPI_REAL}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_real4 = {OMPI_MPI_REAL4}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_real8 = {OMPI_MPI_REAL8}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_real16 = {OMPI_MPI_REAL16}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_double_precision = {OMPI_MPI_DOUBLE_PRECISION}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_c_complex = {OMPI_MPI_C_COMPLEX}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_c_float_complex = {OMPI_MPI_C_FLOAT_COMPLEX}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_c_double_complex = {OMPI_MPI_C_DOUBLE_COMPLEX}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_c_long_double_complex = {OMPI_MPI_C_LONG_DOUBLE_COMPLEX}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_cxx_complex = {OMPI_MPI_CXX_COMPLEX}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_cxx_float_complex = {OMPI_MPI_CXX_FLOAT_COMPLEX}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_cxx_double_complex = {OMPI_MPI_CXX_DOUBLE_COMPLEX}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_cxx_long_double_complex = {OMPI_MPI_CXX_LONG_DOUBLE_COMPLEX}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_complex = {OMPI_MPI_COMPLEX}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_complex8 = {OMPI_MPI_COMPLEX8}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_complex16 = {OMPI_MPI_COMPLEX16}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_complex32 = {OMPI_MPI_COMPLEX32}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_double_complex = {OMPI_MPI_DOUBLE_COMPLEX}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_float_int = {OMPI_MPI_FLOAT_INT}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_double_int = {OMPI_MPI_DOUBLE_INT}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_2real = {OMPI_MPI_2REAL}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_2double_precision = {OMPI_MPI_2DOUBLE_PRECISION}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_2int = {OMPI_MPI_2INT}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_short_int = {OMPI_MPI_SHORT_INT}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_long_int = {OMPI_MPI_LONG_INT}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_long_double_int = {OMPI_MPI_LONG_DOUBLE_INT}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_2integer = {OMPI_MPI_2INTEGER}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_2complex = {OMPI_MPI_2COMPLEX}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_2double_complex = {OMPI_MPI_2DOUBLE_COMPLEX}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_real2 = {OMPI_MPI_REAL2}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_logical1 = {OMPI_MPI_LOGICAL1}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_logical2 = {OMPI_MPI_LOGICAL2}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_logical4 = {OMPI_MPI_LOGICAL4}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_logical8 = {OMPI_MPI_LOGICAL8}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_c_bool = {OMPI_MPI_C_BOOL}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_cxx_bool = {OMPI_MPI_CXX_BOOL}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_count = {OMPI_MPI_COUNT}; +OMPI_DECLSPEC ompi_fortran_08_handle_t OMPI_F08_HANDLE_ALIGNED ompi_f08_mpi_offset = {OMPI_MPI_OFFSET}; diff -Nru openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/base/constants.h openmpi-4.1.4/ompi/mpi/fortran/use-mpi-f08/base/constants.h --- openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/base/constants.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/fortran/use-mpi-f08/base/constants.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,319 @@ +/* WARNING! THIS IS A GENERATED FILE!! + * ANY EDITS YOU PUT HERE WILL BE LOST! + * Instead, edit topdir/ompi/include/mpif-values.pl + */ + +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2006 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2007 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2007-2009 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2008-2009 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. + * Copyright (c) 2009-2012 Los Alamos National Security, LLC. + * All rights reserved. + * Copyright (c) 2016-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef USE_MPI_F08_BASE_CONSTANTS_H +#define USE_MPI_F08_BASE_CONSTANTS_H + +#define OMPI_MPI_ANY_SOURCE -1 +#define OMPI_MPI_ANY_TAG -1 +#define OMPI_MPI_APPNUM 4 +#define OMPI_MPI_BSEND_OVERHEAD 128 +#define OMPI_MPI_CART 1 +#define OMPI_MPI_COMBINER_CONTIGUOUS 2 +#define OMPI_MPI_COMBINER_DARRAY 13 +#define OMPI_MPI_COMBINER_DUP 1 +#define OMPI_MPI_COMBINER_F90_COMPLEX 15 +#define OMPI_MPI_COMBINER_F90_INTEGER 16 +#define OMPI_MPI_COMBINER_F90_REAL 14 +#define OMPI_MPI_COMBINER_HINDEXED 8 +#define OMPI_MPI_COMBINER_HINDEXED_BLOCK 18 +#define OMPI_MPI_COMBINER_HINDEXED_INTEGER 7 +#define OMPI_MPI_COMBINER_HVECTOR 5 +#define OMPI_MPI_COMBINER_HVECTOR_INTEGER 4 +#define OMPI_MPI_COMBINER_INDEXED 6 +#define OMPI_MPI_COMBINER_INDEXED_BLOCK 9 +#define OMPI_MPI_COMBINER_NAMED 0 +#define OMPI_MPI_COMBINER_RESIZED 17 +#define OMPI_MPI_COMBINER_STRUCT 11 +#define OMPI_MPI_COMBINER_STRUCT_INTEGER 10 +#define OMPI_MPI_COMBINER_SUBARRAY 12 +#define OMPI_MPI_COMBINER_VECTOR 3 +#define OMPI_MPI_COMM_TYPE_SHARED 0 +#define OMPI_MPI_CONGRUENT 1 +#define OMPI_MPI_DISTRIBUTE_BLOCK 0 +#define OMPI_MPI_DISTRIBUTE_CYCLIC 1 +#define OMPI_MPI_DISTRIBUTE_DFLT_DARG -1 +#define OMPI_MPI_DISTRIBUTE_NONE 2 +#define OMPI_MPI_DIST_GRAPH 3 +#define OMPI_MPI_ERROR 3 +#define OMPI_MPI_ERR_ACCESS 20 +#define OMPI_MPI_ERR_AMODE 21 +#define OMPI_MPI_ERR_ARG 13 +#define OMPI_MPI_ERR_ASSERT 22 +#define OMPI_MPI_ERR_BAD_FILE 23 +#define OMPI_MPI_ERR_BASE 24 +#define OMPI_MPI_ERR_BUFFER 1 +#define OMPI_MPI_ERR_COMM 5 +#define OMPI_MPI_ERR_CONVERSION 25 +#define OMPI_MPI_ERR_COUNT 2 +#define OMPI_MPI_ERR_DIMS 12 +#define OMPI_MPI_ERR_DISP 26 +#define OMPI_MPI_ERR_DUP_DATAREP 27 +#define OMPI_MPI_ERR_FILE 30 +#define OMPI_MPI_ERR_FILE_EXISTS 28 +#define OMPI_MPI_ERR_FILE_IN_USE 29 +#define OMPI_MPI_ERR_GROUP 9 +#define OMPI_MPI_ERR_INFO 34 +#define OMPI_MPI_ERR_INFO_KEY 31 +#define OMPI_MPI_ERR_INFO_NOKEY 32 +#define OMPI_MPI_ERR_INFO_VALUE 33 +#define OMPI_MPI_ERR_INTERN 17 +#define OMPI_MPI_ERR_IN_STATUS 18 +#define OMPI_MPI_ERR_IO 35 +#define OMPI_MPI_ERR_KEYVAL 36 +#define OMPI_MPI_ERR_LASTCODE 92 +#define OMPI_MPI_ERR_LOCKTYPE 37 +#define OMPI_MPI_ERR_NAME 38 +#define OMPI_MPI_ERR_NOT_SAME 40 +#define OMPI_MPI_ERR_NO_MEM 39 +#define OMPI_MPI_ERR_NO_SPACE 41 +#define OMPI_MPI_ERR_NO_SUCH_FILE 42 +#define OMPI_MPI_ERR_OP 10 +#define OMPI_MPI_ERR_OTHER 16 +#define OMPI_MPI_ERR_PENDING 19 +#define OMPI_MPI_ERR_PORT 43 +#define OMPI_MPI_ERR_QUOTA 44 +#define OMPI_MPI_ERR_RANK 6 +#define OMPI_MPI_ERR_READ_ONLY 45 +#define OMPI_MPI_ERR_REQUEST 7 +#define OMPI_MPI_ERR_RMA_ATTACH 69 +#define OMPI_MPI_ERR_RMA_CONFLICT 46 +#define OMPI_MPI_ERR_RMA_FLAVOR 70 +#define OMPI_MPI_ERR_RMA_RANGE 68 +#define OMPI_MPI_ERR_RMA_SHARED 71 +#define OMPI_MPI_ERR_RMA_SYNC 47 +#define OMPI_MPI_ERR_ROOT 8 +#define OMPI_MPI_ERR_SERVICE 48 +#define OMPI_MPI_ERR_SIZE 49 +#define OMPI_MPI_ERR_SPAWN 50 +#define OMPI_MPI_ERR_TAG 4 +#define OMPI_MPI_ERR_TOPOLOGY 11 +#define OMPI_MPI_ERR_TRUNCATE 15 +#define OMPI_MPI_ERR_TYPE 3 +#define OMPI_MPI_ERR_UNKNOWN 14 +#define OMPI_MPI_ERR_UNSUPPORTED_DATAREP 51 +#define OMPI_MPI_ERR_UNSUPPORTED_OPERATION 52 +#define OMPI_MPI_ERR_WIN 53 +#define OMPI_MPI_GRAPH 2 +#define OMPI_MPI_HOST 1 +#define OMPI_MPI_IDENT 0 +#define OMPI_MPI_IO 2 +#define OMPI_MPI_KEYVAL_INVALID -1 +#define OMPI_MPI_LASTUSEDCODE 5 +#define OMPI_MPI_LOCK_EXCLUSIVE 1 +#define OMPI_MPI_LOCK_SHARED 2 +#define OMPI_MPI_MODE_NOCHECK 1 +#define OMPI_MPI_MODE_NOPRECEDE 2 +#define OMPI_MPI_MODE_NOPUT 4 +#define OMPI_MPI_MODE_NOSTORE 8 +#define OMPI_MPI_MODE_NOSUCCEED 16 +#define OMPI_MPI_ORDER_C 0 +#define OMPI_MPI_ORDER_FORTRAN 1 +#define OMPI_MPI_PROC_NULL -2 +#define OMPI_MPI_ROOT -4 +#define OMPI_MPI_SIMILAR 2 +#define OMPI_MPI_SOURCE 1 +#define OMPI_MPI_SUBVERSION 1 +#define OMPI_MPI_SUCCESS 0 +#define OMPI_MPI_TAG 2 +#define OMPI_MPI_TAG_UB 0 +#define OMPI_MPI_THREAD_FUNNELED 1 +#define OMPI_MPI_THREAD_MULTIPLE 3 +#define OMPI_MPI_THREAD_SERIALIZED 2 +#define OMPI_MPI_THREAD_SINGLE 0 +#define OMPI_MPI_TYPECLASS_COMPLEX 3 +#define OMPI_MPI_TYPECLASS_INTEGER 1 +#define OMPI_MPI_TYPECLASS_REAL 2 +#define OMPI_MPI_T_ERR_CANNOT_INIT 56 +#define OMPI_MPI_T_ERR_CVAR_SET_NEVER 64 +#define OMPI_MPI_T_ERR_CVAR_SET_NOT_NOW 63 +#define OMPI_MPI_T_ERR_INVALID 72 +#define OMPI_MPI_T_ERR_INVALID_HANDLE 59 +#define OMPI_MPI_T_ERR_INVALID_INDEX 57 +#define OMPI_MPI_T_ERR_INVALID_ITEM 58 +#define OMPI_MPI_T_ERR_INVALID_SESSION 62 +#define OMPI_MPI_T_ERR_MEMORY 54 +#define OMPI_MPI_T_ERR_NOT_INITIALIZED 55 +#define OMPI_MPI_T_ERR_OUT_OF_HANDLES 60 +#define OMPI_MPI_T_ERR_OUT_OF_SESSIONS 61 +#define OMPI_MPI_T_ERR_PVAR_NO_ATOMIC 67 +#define OMPI_MPI_T_ERR_PVAR_NO_STARTSTOP 65 +#define OMPI_MPI_T_ERR_PVAR_NO_WRITE 66 +#define OMPI_MPI_UNDEFINED -32766 +#define OMPI_MPI_UNEQUAL 3 +#define OMPI_MPI_UNIVERSE_SIZE 6 +#define OMPI_MPI_VERSION 3 +#define OMPI_MPI_WIN_BASE 7 +#define OMPI_MPI_WIN_CREATE_FLAVOR 10 +#define OMPI_MPI_WIN_DISP_UNIT 9 +#define OMPI_MPI_WIN_FLAVOR_ALLOCATE 2 +#define OMPI_MPI_WIN_FLAVOR_CREATE 1 +#define OMPI_MPI_WIN_FLAVOR_DYNAMIC 3 +#define OMPI_MPI_WIN_FLAVOR_SHARED 4 +#define OMPI_MPI_WIN_MODEL 11 +#define OMPI_MPI_WIN_SEPARATE 1 +#define OMPI_MPI_WIN_SIZE 8 +#define OMPI_MPI_WIN_UNIFIED 0 +#define OMPI_MPI_WTIME_IS_GLOBAL 3 +#define OMPI_OMPI_COMM_TYPE_BOARD 8 +#define OMPI_OMPI_COMM_TYPE_CLUSTER 11 +#define OMPI_OMPI_COMM_TYPE_CORE 2 +#define OMPI_OMPI_COMM_TYPE_CU 10 +#define OMPI_OMPI_COMM_TYPE_HOST 9 +#define OMPI_OMPI_COMM_TYPE_HWTHREAD 1 +#define OMPI_OMPI_COMM_TYPE_L1CACHE 3 +#define OMPI_OMPI_COMM_TYPE_L2CACHE 4 +#define OMPI_OMPI_COMM_TYPE_L3CACHE 5 +#define OMPI_OMPI_COMM_TYPE_NODE 0 +#define OMPI_OMPI_COMM_TYPE_NUMA 7 +#define OMPI_OMPI_COMM_TYPE_SOCKET 6 + +#define OMPI_MPI_2COMPLEX 26 +#define OMPI_MPI_2DOUBLE_COMPLEX 27 +#define OMPI_MPI_2DOUBLE_PRECISION 24 +#define OMPI_MPI_2INT 52 +#define OMPI_MPI_2INTEGER 25 +#define OMPI_MPI_2REAL 23 +#define OMPI_MPI_AINT 66 +#define OMPI_MPI_BAND 6 +#define OMPI_MPI_BOR 8 +#define OMPI_MPI_BXOR 10 +#define OMPI_MPI_BYTE 1 +#define OMPI_MPI_CHAR 34 +#define OMPI_MPI_CHARACTER 5 +#define OMPI_MPI_COMM_NULL 2 +#define OMPI_MPI_COMM_SELF 1 +#define OMPI_MPI_COMM_WORLD 0 +#define OMPI_MPI_COMPLEX 18 +#define OMPI_MPI_COMPLEX16 20 +#define OMPI_MPI_COMPLEX32 21 +#define OMPI_MPI_COMPLEX8 19 +#define OMPI_MPI_COUNT 72 +#define OMPI_MPI_CXX_BOOL 54 +#define OMPI_MPI_CXX_COMPLEX 55 +#define OMPI_MPI_CXX_DOUBLE_COMPLEX 56 +#define OMPI_MPI_CXX_FLOAT_COMPLEX 55 +#define OMPI_MPI_CXX_LONG_DOUBLE_COMPLEX 57 +#define OMPI_MPI_C_BOOL 68 +#define OMPI_MPI_C_COMPLEX 69 +#define OMPI_MPI_C_DOUBLE_COMPLEX 70 +#define OMPI_MPI_C_FLOAT_COMPLEX 69 +#define OMPI_MPI_C_LONG_DOUBLE_COMPLEX 71 +#define OMPI_MPI_DATATYPE_NULL 0 +#define OMPI_MPI_DOUBLE 46 +#define OMPI_MPI_DOUBLE_COMPLEX 22 +#define OMPI_MPI_DOUBLE_INT 49 +#define OMPI_MPI_DOUBLE_PRECISION 17 +#define OMPI_MPI_ERRHANDLER_NULL 0 +#define OMPI_MPI_ERRORS_ARE_FATAL 1 +#define OMPI_MPI_ERRORS_RETURN 2 +#define OMPI_MPI_FLOAT 45 +#define OMPI_MPI_FLOAT_INT 48 +#define OMPI_MPI_GROUP_EMPTY 1 +#define OMPI_MPI_GROUP_NULL 0 +#define OMPI_MPI_INFO_ENV 1 +#define OMPI_MPI_INFO_NULL 0 +#define OMPI_MPI_INT 39 +#define OMPI_MPI_INT16_T 60 +#define OMPI_MPI_INT32_T 62 +#define OMPI_MPI_INT64_T 64 +#define OMPI_MPI_INT8_T 58 +#define OMPI_MPI_INTEGER 7 +#define OMPI_MPI_INTEGER1 8 +#define OMPI_MPI_INTEGER16 12 +#define OMPI_MPI_INTEGER2 9 +#define OMPI_MPI_INTEGER4 10 +#define OMPI_MPI_INTEGER8 11 +#define OMPI_MPI_LAND 5 +#define OMPI_MPI_LB 4 +#define OMPI_MPI_LOGICAL 6 +#define OMPI_MPI_LOGICAL1 29 +#define OMPI_MPI_LOGICAL2 30 +#define OMPI_MPI_LOGICAL4 31 +#define OMPI_MPI_LOGICAL8 32 +#define OMPI_MPI_LONG 41 +#define OMPI_MPI_LONG_DOUBLE 47 +#define OMPI_MPI_LONG_DOUBLE_INT 50 +#define OMPI_MPI_LONG_INT 51 +#define OMPI_MPI_LONG_LONG 43 +#define OMPI_MPI_LONG_LONG_INT 43 +#define OMPI_MPI_LOR 7 +#define OMPI_MPI_LXOR 9 +#define OMPI_MPI_MAX 1 +#define OMPI_MPI_MAXLOC 11 +#define OMPI_MPI_MESSAGE_NO_PROC 1 +#define OMPI_MPI_MESSAGE_NULL 0 +#define OMPI_MPI_MIN 2 +#define OMPI_MPI_MINLOC 12 +#define OMPI_MPI_NO_OP 14 +#define OMPI_MPI_OFFSET 67 +#define OMPI_MPI_OP_NULL 0 +#define OMPI_MPI_PACKED 2 +#define OMPI_MPI_PROD 4 +#define OMPI_MPI_REAL 13 +#define OMPI_MPI_REAL16 16 +#define OMPI_MPI_REAL2 28 +#define OMPI_MPI_REAL4 14 +#define OMPI_MPI_REAL8 15 +#define OMPI_MPI_REPLACE 13 +#define OMPI_MPI_REQUEST_NULL 0 +#define OMPI_MPI_SHORT 37 +#define OMPI_MPI_SHORT_INT 53 +#define OMPI_MPI_SIGNED_CHAR 36 +#define OMPI_MPI_SUM 3 +#define OMPI_MPI_UB 3 +#define OMPI_MPI_UINT16_T 61 +#define OMPI_MPI_UINT32_T 63 +#define OMPI_MPI_UINT64_T 65 +#define OMPI_MPI_UINT8_T 59 +#define OMPI_MPI_UNSIGNED 40 +#define OMPI_MPI_UNSIGNED_CHAR 35 +#define OMPI_MPI_UNSIGNED_LONG 42 +#define OMPI_MPI_UNSIGNED_LONG_LONG 44 +#define OMPI_MPI_UNSIGNED_SHORT 38 +#define OMPI_MPI_WCHAR 33 +#define OMPI_MPI_WIN_NULL 0 +#define OMPI_MPI_MODE_APPEND 128 +#define OMPI_MPI_MODE_CREATE 1 +#define OMPI_MPI_MODE_DELETE_ON_CLOSE 16 +#define OMPI_MPI_MODE_EXCL 64 +#define OMPI_MPI_MODE_RDONLY 2 +#define OMPI_MPI_MODE_RDWR 8 +#define OMPI_MPI_MODE_SEQUENTIAL 256 +#define OMPI_MPI_MODE_UNIQUE_OPEN 32 +#define OMPI_MPI_MODE_WRONLY 4 +#define OMPI_MPI_SEEK_CUR 602 +#define OMPI_MPI_SEEK_END 604 +#define OMPI_MPI_SEEK_SET 600 +#define OMPI_MPI_DISPLACEMENT_CURRENT -54278278 + +#define OMPI_MPI_FILE_NULL 0 + +#endif /* USE_MPI_F08_BASE_CONSTANTS_H */ diff -Nru openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/base/Makefile.am openmpi-4.1.4/ompi/mpi/fortran/use-mpi-f08/base/Makefile.am --- openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/base/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/fortran/use-mpi-f08/base/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,8 @@ # -*- makefile -*- # # Copyright (c) 2019 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2020 Research Organization for Information Science +# and Technology (RIST). All rights reserved. # # $COPYRIGHT$ # @@ -29,6 +31,8 @@ noinst_LTLIBRARIES = libusempif08_ccode.la libusempif08_ccode_la_SOURCES = \ - buffer_detach.c + buffer_detach.c \ + constants.c \ + constants.h endif diff -Nru openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/base/Makefile.in openmpi-4.1.4/ompi/mpi/fortran/use-mpi-f08/base/Makefile.in --- openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/base/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/fortran/use-mpi-f08/base/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -17,6 +17,8 @@ # -*- makefile -*- # # Copyright (c) 2019 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2020 Research Organization for Information Science +# and Technology (RIST). All rights reserved. # # $COPYRIGHT$ # @@ -122,6 +124,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -129,6 +133,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -152,6 +157,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -254,6 +260,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -261,6 +268,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -341,6 +349,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -363,9 +372,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -375,6 +388,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -395,6 +409,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -422,9 +437,11 @@ CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libusempif08_ccode_la_LIBADD = -am__libusempif08_ccode_la_SOURCES_DIST = buffer_detach.c +am__libusempif08_ccode_la_SOURCES_DIST = buffer_detach.c constants.c \ + constants.h @OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@am_libusempif08_ccode_la_OBJECTS = \ -@OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@ buffer_detach.lo +@OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@ buffer_detach.lo \ +@OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@ constants.lo libusempif08_ccode_la_OBJECTS = $(am_libusempif08_ccode_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -620,6 +637,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1440,6 +1460,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1472,9 +1496,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1495,6 +1528,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1579,9 +1613,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1642,6 +1673,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1655,6 +1689,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ @@ -1712,7 +1750,9 @@ # AM_CPPFLAGS are *not* zeroed out. @OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@noinst_LTLIBRARIES = libusempif08_ccode.la @OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@libusempif08_ccode_la_SOURCES = \ -@OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@ buffer_detach.c +@OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@ buffer_detach.c \ +@OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@ constants.c \ +@OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@ constants.h all: all-am @@ -1770,6 +1810,7 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buffer_detach.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/constants.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ diff -Nru openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/bindings/Makefile.in openmpi-4.1.4/ompi/mpi/fortran/use-mpi-f08/bindings/Makefile.in --- openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/bindings/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/fortran/use-mpi-f08/bindings/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -132,6 +132,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -139,6 +141,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -162,6 +165,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -264,6 +268,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -271,6 +276,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -351,6 +357,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -373,9 +380,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -385,6 +396,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -405,6 +417,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -650,6 +663,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1470,6 +1486,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1502,9 +1522,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1525,6 +1554,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1609,9 +1639,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1672,6 +1699,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1685,6 +1715,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/Makefile.in openmpi-4.1.4/ompi/mpi/fortran/use-mpi-f08/Makefile.in --- openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/fortran/use-mpi-f08/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -143,6 +143,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -150,6 +152,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -173,6 +176,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -275,6 +279,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -282,6 +287,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -362,6 +368,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -384,9 +391,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -396,6 +407,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -416,6 +428,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -1768,6 +1781,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -2588,6 +2604,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -2620,9 +2640,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -2643,6 +2672,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -2727,9 +2757,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -2790,6 +2817,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -2803,6 +2833,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/mod/Makefile.in openmpi-4.1.4/ompi/mpi/fortran/use-mpi-f08/mod/Makefile.in --- openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/mod/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/fortran/use-mpi-f08/mod/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -132,6 +132,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -139,6 +141,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -162,6 +165,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -264,6 +268,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -271,6 +276,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -351,6 +357,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -373,9 +380,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -385,6 +396,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -405,6 +417,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -658,6 +671,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1478,6 +1494,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1510,9 +1530,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1533,6 +1562,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1617,9 +1647,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1680,6 +1707,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1693,6 +1723,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-types.F90 openmpi-4.1.4/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-types.F90 --- openmpi-4.0.3/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-types.F90 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-types.F90 2022-05-29 09:51:40.000000000 +0000 @@ -240,104 +240,104 @@ !... .EQ. operator !----------------- - logical function ompi_comm_op_eq(a, b) + elemental logical function ompi_comm_op_eq(a, b) type(MPI_Comm), intent(in) :: a, b ompi_comm_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL) end function ompi_comm_op_eq - logical function ompi_datatype_op_eq(a, b) + elemental logical function ompi_datatype_op_eq(a, b) type(MPI_Datatype), intent(in) :: a, b ompi_datatype_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL) end function ompi_datatype_op_eq - logical function ompi_errhandler_op_eq(a, b) + elemental logical function ompi_errhandler_op_eq(a, b) type(MPI_Errhandler), intent(in) :: a, b ompi_errhandler_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL) end function ompi_errhandler_op_eq - logical function ompi_file_op_eq(a, b) + elemental logical function ompi_file_op_eq(a, b) type(MPI_File), intent(in) :: a, b ompi_file_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL) end function ompi_file_op_eq - logical function ompi_group_op_eq(a, b) + elemental logical function ompi_group_op_eq(a, b) type(MPI_Group), intent(in) :: a, b ompi_group_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL) end function ompi_group_op_eq - logical function ompi_info_op_eq(a, b) + elemental logical function ompi_info_op_eq(a, b) type(MPI_Info), intent(in) :: a, b ompi_info_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL) end function ompi_info_op_eq - logical function ompi_message_op_eq(a, b) + elemental logical function ompi_message_op_eq(a, b) type(MPI_Message), intent(in) :: a, b ompi_message_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL) end function ompi_message_op_eq - logical function ompi_op_op_eq(a, b) + elemental logical function ompi_op_op_eq(a, b) type(MPI_Op), intent(in) :: a, b ompi_op_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL) end function ompi_op_op_eq - logical function ompi_request_op_eq(a, b) + elemental logical function ompi_request_op_eq(a, b) type(MPI_Request), intent(in) :: a, b ompi_request_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL) end function ompi_request_op_eq - logical function ompi_win_op_eq(a, b) + elemental logical function ompi_win_op_eq(a, b) type(MPI_Win), intent(in) :: a, b ompi_win_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL) end function ompi_win_op_eq !... .NE. operator !----------------- - logical function ompi_comm_op_ne(a, b) + elemental logical function ompi_comm_op_ne(a, b) type(MPI_Comm), intent(in) :: a, b ompi_comm_op_ne = (a%MPI_VAL .NE. b%MPI_VAL) end function ompi_comm_op_ne - logical function ompi_datatype_op_ne(a, b) + elemental logical function ompi_datatype_op_ne(a, b) type(MPI_Datatype), intent(in) :: a, b ompi_datatype_op_ne = (a%MPI_VAL .NE. b%MPI_VAL) end function ompi_datatype_op_ne - logical function ompi_errhandler_op_ne(a, b) + elemental logical function ompi_errhandler_op_ne(a, b) type(MPI_Errhandler), intent(in) :: a, b ompi_errhandler_op_ne = (a%MPI_VAL .NE. b%MPI_VAL) end function ompi_errhandler_op_ne - logical function ompi_file_op_ne(a, b) + elemental logical function ompi_file_op_ne(a, b) type(MPI_File), intent(in) :: a, b ompi_file_op_ne = (a%MPI_VAL .NE. b%MPI_VAL) end function ompi_file_op_ne - logical function ompi_group_op_ne(a, b) + elemental logical function ompi_group_op_ne(a, b) type(MPI_Group), intent(in) :: a, b ompi_group_op_ne = (a%MPI_VAL .NE. b%MPI_VAL) end function ompi_group_op_ne - logical function ompi_info_op_ne(a, b) + elemental logical function ompi_info_op_ne(a, b) type(MPI_Info), intent(in) :: a, b ompi_info_op_ne = (a%MPI_VAL .NE. b%MPI_VAL) end function ompi_info_op_ne - logical function ompi_message_op_ne(a, b) + elemental logical function ompi_message_op_ne(a, b) type(MPI_Message), intent(in) :: a, b ompi_message_op_ne = (a%MPI_VAL .NE. b%MPI_VAL) end function ompi_message_op_ne - logical function ompi_op_op_ne(a, b) + elemental logical function ompi_op_op_ne(a, b) type(MPI_Op), intent(in) :: a, b ompi_op_op_ne = (a%MPI_VAL .NE. b%MPI_VAL) end function ompi_op_op_ne - logical function ompi_request_op_ne(a, b) + elemental logical function ompi_request_op_ne(a, b) type(MPI_Request), intent(in) :: a, b ompi_request_op_ne = (a%MPI_VAL .NE. b%MPI_VAL) end function ompi_request_op_ne - logical function ompi_win_op_ne(a, b) + elemental logical function ompi_win_op_ne(a, b) type(MPI_Win), intent(in) :: a, b ompi_win_op_ne = (a%MPI_VAL .NE. b%MPI_VAL) end function ompi_win_op_ne diff -Nru openmpi-4.0.3/ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.in openmpi-4.1.4/ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.in --- openmpi-4.0.3/ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -138,6 +138,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -145,6 +147,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -168,6 +171,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -270,6 +274,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -277,6 +282,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -357,6 +363,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -379,9 +386,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -391,6 +402,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -411,6 +423,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -690,6 +703,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1510,6 +1526,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1542,9 +1562,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1565,6 +1594,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1649,9 +1679,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1712,6 +1739,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1725,6 +1755,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/fortran/use-mpi-tkr/Makefile.in openmpi-4.1.4/ompi/mpi/fortran/use-mpi-tkr/Makefile.in --- openmpi-4.0.3/ompi/mpi/fortran/use-mpi-tkr/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/fortran/use-mpi-tkr/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -145,6 +145,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -152,6 +154,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -175,6 +178,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -277,6 +281,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -284,6 +289,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -364,6 +370,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -386,9 +393,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -398,6 +409,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -418,6 +430,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -711,6 +724,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1531,6 +1547,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1563,9 +1583,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1586,6 +1615,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1670,9 +1700,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1733,6 +1760,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1746,6 +1776,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/java/c/Makefile.in openmpi-4.1.4/ompi/mpi/java/c/Makefile.in --- openmpi-4.0.3/ompi/mpi/java/c/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/java/c/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -115,6 +115,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -122,6 +124,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -145,6 +148,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -247,6 +251,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -254,6 +259,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -334,6 +340,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -356,9 +363,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -368,6 +379,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -388,6 +400,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -663,6 +676,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1483,6 +1499,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1515,9 +1535,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1538,6 +1567,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1622,9 +1652,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1685,6 +1712,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1698,6 +1728,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/java/c/mpi_Info.c openmpi-4.1.4/ompi/mpi/java/c/mpi_Info.c --- openmpi-4.0.3/ompi/mpi/java/c/mpi_Info.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/java/c/mpi_Info.c 2022-05-29 09:51:40.000000000 +0000 @@ -45,17 +45,20 @@ return (jlong)MPI_INFO_NULL; } +// At least some versions of jni.h have a global named "jvalue", and +// we get a compiler warning if we have a parameter or variable of the +// same name. So use "ljvalue" instead. JNIEXPORT void JNICALL Java_mpi_Info_set( - JNIEnv *env, jobject jthis, jlong handle, jstring jkey, jstring jvalue) + JNIEnv *env, jobject jthis, jlong handle, jstring jkey, jstring ljvalue) { - const char *key = (*env)->GetStringUTFChars(env, jkey, NULL), - *value = (*env)->GetStringUTFChars(env, jvalue, NULL); + const char *key = (*env)->GetStringUTFChars(env, jkey, NULL), + *value = (*env)->GetStringUTFChars(env, ljvalue, NULL); int rc = MPI_Info_set((MPI_Info)handle, (char*)key, (char*)value); ompi_java_exceptionCheck(env, rc); - (*env)->ReleaseStringUTFChars(env, jkey, key); - (*env)->ReleaseStringUTFChars(env, jvalue, value); + (*env)->ReleaseStringUTFChars(env, jkey, key); + (*env)->ReleaseStringUTFChars(env, ljvalue, value); } JNIEXPORT jstring JNICALL Java_mpi_Info_get( @@ -83,9 +86,12 @@ return NULL; } - jstring jvalue = (*env)->NewStringUTF(env, value); + // At least some versions of jni.h have a global named "jvalue", + // and we get a compiler warning if we have a parameter or + // variable of the same name. So use "ljvalue" instead. + jstring ljvalue = (*env)->NewStringUTF(env, value); free(value); - return jvalue; + return ljvalue; } JNIEXPORT void JNICALL Java_mpi_Info_delete( diff -Nru openmpi-4.0.3/ompi/mpi/java/java/Makefile.in openmpi-4.1.4/ompi/mpi/java/java/Makefile.in --- openmpi-4.0.3/ompi/mpi/java/java/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/java/java/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -130,6 +130,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -137,6 +139,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -160,6 +163,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -262,6 +266,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -269,6 +274,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -349,6 +355,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -371,9 +378,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -383,6 +394,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -403,6 +415,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -625,6 +638,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1445,6 +1461,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1477,9 +1497,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1500,6 +1529,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1584,9 +1614,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1647,6 +1674,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1660,6 +1690,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/java/Makefile.in openmpi-4.1.4/ompi/mpi/java/Makefile.in --- openmpi-4.0.3/ompi/mpi/java/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/java/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -614,6 +627,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1434,6 +1450,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1466,9 +1486,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1489,6 +1518,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1573,9 +1603,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1636,6 +1663,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1649,6 +1679,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/man/man3/MPI_Comm_rank.3in openmpi-4.1.4/ompi/mpi/man/man3/MPI_Comm_rank.3in --- openmpi-4.0.3/ompi/mpi/man/man3/MPI_Comm_rank.3in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/man/man3/MPI_Comm_rank.3in 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ .\" -*- nroff -*- -.\" Copyright 2010 Cisco Systems, Inc. All rights reserved. +.\" Copyright (c) 2010-2022 Cisco Systems, Inc. All rights reserved .\" Copyright 2006-2008 Sun Microsystems, Inc. .\" Copyright (c) 1996 Thinking Machines Corporation .\" $COPYRIGHT$ @@ -60,7 +60,7 @@ particular communicator's group. It is equivalent to accessing the communicator's group with MPI_Comm_group, computing the rank using MPI_Group_rank, and then freeing the temporary group via MPI_Group_free. .sp -Many programs will be written with the master-slave model, where one process (such as the rank-zero process) will play a supervisory role, and the other processes will serve as compute nodes. In this framework, MPI_Comm_size and MPI_Comm_rank are useful for determining the roles of the various processes of a communicator. +Many programs will be written with the manager-worker model, where one process (such as the rank-zero process) will play a supervisory role, and the other processes will serve as compute nodes. In this framework, MPI_Comm_size and MPI_Comm_rank are useful for determining the roles of the various processes of a communicator. .SH ERRORS Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI::Exception object. diff -Nru openmpi-4.0.3/ompi/mpi/man/man3/MPI_Init_thread.3in openmpi-4.1.4/ompi/mpi/man/man3/MPI_Init_thread.3in --- openmpi-4.0.3/ompi/mpi/man/man3/MPI_Init_thread.3in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/man/man3/MPI_Init_thread.3in 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,8 @@ .\" -*- nroff -*- .\" Copyright 2006-2008 Sun Microsystems, Inc. .\" Copyright (c) 1996 Thinking Machines Corporation -.\" Copyright (c) 2010-2015 Cisco Systems, Inc. All rights reserved. +.\" Copyright (c) 2010-2020 Cisco Systems, Inc. All rights reserved. +.\" Copyright (c) 2020 Google, LLC. All rights reserved. .\" $COPYRIGHT$ .TH MPI_Init_thread 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#" . @@ -92,7 +93,7 @@ . .PP The level of thread support available to the program is set in -\fIprovided\fP, except in C++, where it is the return value of the +\fIprovided\fP, except in the C++ binding, where it is the return value of the function. In Open MPI, the value is dependent on how the library was configured and built. Note that there is no guarantee that \fIprovided\fP will be greater than or equal to \fIrequired\fP. @@ -135,52 +136,27 @@ . .SH MPI_THREAD_MULTIPLE Support . -MPI_THREAD_MULTIPLE support is included if Open MPI was configured -with the --enable-mpi-thread-multiple configure switch. You can check the +MPI_THREAD_MULTIPLE support is included if the environment in which +Open MPI was built supports threading. You can check the output of .BR ompi_info (1) to see if Open MPI has MPI_THREAD_MULTIPLE support: . .PP .nf -shell$ ompi_info | grep -i thread - Thread support: posix (mpi: yes, progress: no) +shell$ ompi_info | grep "Thread support" + Thread support: posix (MPI_THREAD_MULTIPLE: yes, OPAL support: yes, OMPI progress: no, Event lib: yes) shell$ .fi . .PP -The "mpi: yes" portion of the above output indicates that Open MPI was -compiled with MPI_THREAD_MULTIPLE support. +The "MPI_THREAD_MULTIPLE: yes" portion of the above output indicates +that Open MPI was compiled with MPI_THREAD_MULTIPLE support. . .PP -Note that MPI_THREAD_MULTIPLE support is only lightly tested. It -likely does not work for thread-intensive applications. Also note -that -.I only -the MPI point-to-point communication functions for the BTL's listed -below are considered thread safe. Other support functions (e.g., MPI -attributes) have not been certified as safe when simultaneously used -by multiple threads. -. -.PP -.nf - tcp - sm - mx - elan - self -.fi -. -.PP -Note that Open MPI's thread support is in a fairly early stage; the -above devices are likely to -.IR work , -but the latency is likely to be fairly high. Specifically, efforts so -far have concentrated on -.IR correctness , -not -.I performance -(yet). +Note that there is a small performance penalty for using +MPI_THREAD_MULTIPLE support; latencies for short messages will be +higher as compared to when using MPI_THREAD_SINGLE, for example. . . .SH ERRORS diff -Nru openmpi-4.0.3/ompi/mpi/man/man3/MPI_Win_attach.3in openmpi-4.1.4/ompi/mpi/man/man3/MPI_Win_attach.3in --- openmpi-4.0.3/ompi/mpi/man/man3/MPI_Win_attach.3in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/man/man3/MPI_Win_attach.3in 2022-05-29 09:51:40.000000000 +0000 @@ -5,7 +5,7 @@ .\" $COPYRIGHT$ .TH MPI_Win_attach 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#" .SH NAME -\fBMPI_Win_attach, MPI_Win_detach\fP \- One-sided MPI call that attach / detach a window object for RMA operations. +\fBMPI_Win_attach, MPI_Win_detach\fP \- One-sided MPI call that attaches / detaches a memory region to / from a window object for RMA operations. .SH SYNTAX .ft R @@ -61,10 +61,14 @@ .SH DESCRIPTION .ft R -MPI_Win_attach is a one-sided MPI communication collective call executed by all processes in the group of \fIcomm\fP. It returns a window object that can be used by these processes to perform RMA operations. Each process specifies a window of existing memory that it exposes to RMA accesses by the processes in the group of \fIcomm\fP. The window consists of \fIsize\fP bytes, starting at address \fIbase\fP. A process may elect to expose no memory by specifying \fIsize\fP = 0. +MPI_Win_attach is a one-sided MPI communication call used to attach a memory region of \fIsize\fP bytes starting at address \fIbase\fP to a window for RMA access. The window \fIwin\fP must have been created using +.IR MPI_Win_create_dynamic . +Multiple non-overlapping memory regions may be attached to the same dynamic window. Attaching overlapping memory regions to the same dynamic window is erroneous. .sp If the \fIbase\fP value used by MPI_Win_attach was allocated by MPI_Alloc_mem, the size of the window can be no larger than the value set by the MPI_ALLOC_MEM function. .sp +.sp +MPI_Win_detach can be used to detach a previously attached memory region from \fIwin\fP. The memory address \fIbase\fP and \fIwin\fP must match arguments passed to a previous call to MPI_Win_attach. .SH NOTES Use memory allocated by MPI_Alloc_mem to guarantee properly aligned window boundaries (such as word, double-word, cache line, page frame, and so on). @@ -79,4 +83,3 @@ called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error. - diff -Nru openmpi-4.0.3/ompi/mpi/tool/category_get_categories.c openmpi-4.1.4/ompi/mpi/tool/category_get_categories.c --- openmpi-4.0.3/ompi/mpi/tool/category_get_categories.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/category_get_categories.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -38,7 +41,7 @@ do { rc = mca_base_var_group_get (cat_index, &group); if (0 > rc) { - rc = (OPAL_ERR_NOT_FOUND == rc) ? MPI_T_ERR_INVALID_INDEX : MPI_ERR_OTHER; + rc = (OPAL_ERR_NOT_FOUND == rc) ? MPI_T_ERR_INVALID_INDEX : MPI_T_ERR_INVALID; break; } diff -Nru openmpi-4.0.3/ompi/mpi/tool/category_get_cvars.c openmpi-4.1.4/ompi/mpi/tool/category_get_cvars.c --- openmpi-4.0.3/ompi/mpi/tool/category_get_cvars.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/category_get_cvars.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -38,7 +41,7 @@ do { rc = mca_base_var_group_get (cat_index, &group); if (0 > rc) { - rc = (OPAL_ERR_NOT_FOUND == rc) ? MPI_T_ERR_INVALID_INDEX : MPI_ERR_OTHER; + rc = (OPAL_ERR_NOT_FOUND == rc) ? MPI_T_ERR_INVALID_INDEX : MPI_T_ERR_INVALID; break; } diff -Nru openmpi-4.0.3/ompi/mpi/tool/category_get_index.c openmpi-4.1.4/ompi/mpi/tool/category_get_index.c --- openmpi-4.0.3/ompi/mpi/tool/category_get_index.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/category_get_index.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,10 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * $COPYRIGHT$ * * Additional copyrights may follow @@ -31,7 +35,7 @@ } if (MPI_PARAM_CHECK && (NULL == category_index || NULL == name)) { - return MPI_ERR_ARG; + return MPI_T_ERR_INVALID; } ompi_mpit_lock (); diff -Nru openmpi-4.0.3/ompi/mpi/tool/category_get_info.c openmpi-4.1.4/ompi/mpi/tool/category_get_info.c --- openmpi-4.0.3/ompi/mpi/tool/category_get_info.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/category_get_info.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -38,7 +41,7 @@ do { rc = mca_base_var_group_get (cat_index, &group); if (0 > rc) { - rc = (OPAL_ERR_NOT_FOUND == rc) ? MPI_T_ERR_INVALID_INDEX : MPI_ERR_OTHER; + rc = (OPAL_ERR_NOT_FOUND == rc) ? MPI_T_ERR_INVALID_INDEX : MPI_T_ERR_INVALID; break; } diff -Nru openmpi-4.0.3/ompi/mpi/tool/category_get_num.c openmpi-4.1.4/ompi/mpi/tool/category_get_num.c --- openmpi-4.0.3/ompi/mpi/tool/category_get_num.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/category_get_num.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -29,7 +32,7 @@ } if (MPI_PARAM_CHECK && NULL == num_cat) { - return MPI_ERR_ARG; + return MPI_T_ERR_INVALID; } ompi_mpit_lock (); diff -Nru openmpi-4.0.3/ompi/mpi/tool/category_get_pvars.c openmpi-4.1.4/ompi/mpi/tool/category_get_pvars.c --- openmpi-4.0.3/ompi/mpi/tool/category_get_pvars.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/category_get_pvars.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -38,7 +41,7 @@ do { rc = mca_base_var_group_get (cat_index, &group); if (0 > rc) { - rc = (OPAL_ERR_NOT_FOUND == rc) ? MPI_T_ERR_INVALID_INDEX : MPI_ERR_OTHER; + rc = (OPAL_ERR_NOT_FOUND == rc) ? MPI_T_ERR_INVALID_INDEX : MPI_T_ERR_INVALID; break; } diff -Nru openmpi-4.0.3/ompi/mpi/tool/cvar_get_index.c openmpi-4.1.4/ompi/mpi/tool/cvar_get_index.c --- openmpi-4.0.3/ompi/mpi/tool/cvar_get_index.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/cvar_get_index.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -31,7 +34,7 @@ } if (MPI_PARAM_CHECK && (NULL == cvar_index || NULL == name)) { - return MPI_ERR_ARG; + return MPI_T_ERR_INVALID; } ompi_mpit_lock (); diff -Nru openmpi-4.0.3/ompi/mpi/tool/cvar_get_info.c openmpi-4.1.4/ompi/mpi/tool/cvar_get_info.c --- openmpi-4.0.3/ompi/mpi/tool/cvar_get_info.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/cvar_get_info.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -39,7 +42,7 @@ rc = mca_base_var_get (cvar_index, &var); if (OPAL_SUCCESS != rc) { rc = (OPAL_ERR_VALUE_OUT_OF_BOUNDS == rc || OPAL_ERR_NOT_FOUND == rc) ? MPI_T_ERR_INVALID_INDEX : - MPI_ERR_OTHER; + MPI_T_ERR_INVALID; break; } @@ -49,6 +52,8 @@ /* find the corresponding mpi type for an mca type */ rc = ompit_var_type_to_datatype (var->mbv_type, datatype); if (OMPI_SUCCESS != rc) { + rc = MPI_T_ERR_INVALID; /* can't really happen as MPI_SUCCESS is the only + possible return from ompit_var_type_to_datatype */ break; } diff -Nru openmpi-4.0.3/ompi/mpi/tool/cvar_get_num.c openmpi-4.1.4/ompi/mpi/tool/cvar_get_num.c --- openmpi-4.0.3/ompi/mpi/tool/cvar_get_num.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/cvar_get_num.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -28,7 +31,7 @@ } if (MPI_PARAM_CHECK && NULL == num_cvar) { - return MPI_ERR_ARG; + return MPI_T_ERR_INVALID; } ompi_mpit_lock (); diff -Nru openmpi-4.0.3/ompi/mpi/tool/cvar_handle_alloc.c openmpi-4.1.4/ompi/mpi/tool/cvar_handle_alloc.c --- openmpi-4.0.3/ompi/mpi/tool/cvar_handle_alloc.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/cvar_handle_alloc.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -33,7 +36,7 @@ } if (MPI_PARAM_CHECK && (NULL == handle || NULL == count)) { - return MPI_ERR_ARG; + return MPI_T_ERR_INVALID; } ompi_mpit_lock (); @@ -50,7 +53,7 @@ rc = mca_base_var_get(cvar_index, &new_handle->var); if (OPAL_SUCCESS != rc) { rc = (OPAL_ERR_VALUE_OUT_OF_BOUNDS == rc || OPAL_ERR_NOT_FOUND == rc) ? MPI_T_ERR_INVALID_INDEX: - MPI_ERR_OTHER; + MPI_T_ERR_INVALID; free (new_handle); break; } diff -Nru openmpi-4.0.3/ompi/mpi/tool/cvar_read.c openmpi-4.1.4/ompi/mpi/tool/cvar_read.c --- openmpi-4.0.3/ompi/mpi/tool/cvar_read.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/cvar_read.c 2022-05-29 09:51:40.000000000 +0000 @@ -5,6 +5,9 @@ * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2016 Intel, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -33,7 +36,7 @@ } if (MPI_PARAM_CHECK && NULL == buf) { - return MPI_ERR_ARG; + return MPI_T_ERR_INVALID; } ompi_mpit_lock (); @@ -41,8 +44,8 @@ do { rc = mca_base_var_get_value(handle->var->mbv_index, &value, NULL, NULL); if (OPAL_SUCCESS != rc || NULL == value) { - /* shouldn't happen */ - rc = MPI_ERR_OTHER; + /* invalid or discarded cvar, ignore */ + rc = MPI_T_ERR_INVALID_INDEX; break; } @@ -84,7 +87,7 @@ break; default: - rc = MPI_ERR_OTHER; + rc = MPI_T_ERR_INVALID; } } while (0); diff -Nru openmpi-4.0.3/ompi/mpi/tool/cvar_write.c openmpi-4.1.4/ompi/mpi/tool/cvar_write.c --- openmpi-4.0.3/ompi/mpi/tool/cvar_write.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/cvar_write.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -31,7 +34,7 @@ } if (MPI_PARAM_CHECK && NULL == buf) { - return MPI_ERR_ARG; + return MPI_T_ERR_INVALID; } ompi_mpit_lock (); diff -Nru openmpi-4.0.3/ompi/mpi/tool/enum_get_info.c openmpi-4.1.4/ompi/mpi/tool/enum_get_info.c --- openmpi-4.0.3/ompi/mpi/tool/enum_get_info.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/enum_get_info.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -36,7 +39,7 @@ if (num) { rc = enumtype->get_count (enumtype, num); if (OPAL_SUCCESS != rc) { - rc = MPI_ERR_OTHER; + rc = MPI_T_ERR_INVALID; break; } } diff -Nru openmpi-4.0.3/ompi/mpi/tool/enum_get_item.c openmpi-4.1.4/ompi/mpi/tool/enum_get_item.c --- openmpi-4.0.3/ompi/mpi/tool/enum_get_item.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/enum_get_item.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -37,7 +40,7 @@ do { rc = enumtype->get_count (enumtype, &count); if (OPAL_SUCCESS != rc) { - rc = MPI_ERR_OTHER; + rc = MPI_T_ERR_INVALID; break; } @@ -48,7 +51,7 @@ rc = enumtype->get_value(enumtype, index, value, &tmp); if (OPAL_SUCCESS != rc) { - rc = MPI_ERR_OTHER; + rc = MPI_T_ERR_INVALID; break; } diff -Nru openmpi-4.0.3/ompi/mpi/tool/init_thread.c openmpi-4.1.4/ompi/mpi/tool/init_thread.c --- openmpi-4.0.3/ompi/mpi/tool/init_thread.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/init_thread.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -45,14 +48,14 @@ /* call opal_init_util to intialize the MCA system */ rc = opal_init_util (NULL, NULL); if (OPAL_SUCCESS != rc) { - rc = MPI_ERR_OTHER; + rc = MPI_T_ERR_INVALID; break; } /* register all parameters */ rc = ompi_info_register_framework_params (NULL); if (OMPI_SUCCESS != rc) { - rc = MPI_ERR_OTHER; + rc = MPI_T_ERR_INVALID; break; } diff -Nru openmpi-4.0.3/ompi/mpi/tool/Makefile.in openmpi-4.1.4/ompi/mpi/tool/Makefile.in --- openmpi-4.0.3/ompi/mpi/tool/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -115,6 +115,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -122,6 +124,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -145,6 +148,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -247,6 +251,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -254,6 +259,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -334,6 +340,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -356,9 +363,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -368,6 +379,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -388,6 +400,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -697,6 +710,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1517,6 +1533,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1549,9 +1569,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1572,6 +1601,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1656,9 +1686,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1719,6 +1746,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1732,6 +1762,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/tool/mpit_common.c openmpi-4.1.4/ompi/mpi/tool/mpit_common.c --- openmpi-4.0.3/ompi/mpi/tool/mpit_common.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/mpit_common.c 2022-05-29 09:51:40.000000000 +0000 @@ -5,6 +5,9 @@ * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -81,6 +84,6 @@ case OPAL_ERR_NOT_BOUND: return MPI_T_ERR_INVALID_HANDLE; default: - return MPI_ERR_UNKNOWN; + return MPI_T_ERR_INVALID; } } diff -Nru openmpi-4.0.3/ompi/mpi/tool/profile/Makefile.in openmpi-4.1.4/ompi/mpi/tool/profile/Makefile.in --- openmpi-4.0.3/ompi/mpi/tool/profile/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/profile/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -138,6 +138,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -145,6 +147,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -168,6 +171,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -270,6 +274,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -277,6 +282,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -357,6 +363,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -379,9 +386,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -391,6 +402,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -411,6 +423,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -675,6 +688,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1495,6 +1511,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1527,9 +1547,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1550,6 +1579,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1634,9 +1664,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1697,6 +1724,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1710,6 +1740,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpi/tool/pvar_get_index.c openmpi-4.1.4/ompi/mpi/tool/pvar_get_index.c --- openmpi-4.0.3/ompi/mpi/tool/pvar_get_index.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/pvar_get_index.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -31,7 +34,7 @@ } if (MPI_PARAM_CHECK && (NULL == pvar_index || NULL == name)) { - return MPI_ERR_ARG; + return MPI_T_ERR_INVALID; } ompi_mpit_lock (); diff -Nru openmpi-4.0.3/ompi/mpi/tool/pvar_get_info.c openmpi-4.1.4/ompi/mpi/tool/pvar_get_info.c --- openmpi-4.0.3/ompi/mpi/tool/pvar_get_info.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/pvar_get_info.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -41,6 +44,7 @@ bounds checking. */ ret = mca_base_pvar_get (pvar_index, &pvar); if (OMPI_SUCCESS != ret) { + ret = (OPAL_ERR_NOT_FOUND == ret) ? MPI_T_ERR_INVALID_INDEX : MPI_T_ERR_INVALID; break; } @@ -65,7 +69,8 @@ ret = ompit_var_type_to_datatype (pvar->type, datatype); if (OMPI_SUCCESS != ret) { - break; + ret = MPI_T_ERR_INVALID; /* can't really happen as MPI_SUCCESS is the only + possible return from ompit_var_type_to_datatype */ } if (NULL != enumtype) { diff -Nru openmpi-4.0.3/ompi/mpi/tool/pvar_get_num.c openmpi-4.1.4/ompi/mpi/tool/pvar_get_num.c --- openmpi-4.0.3/ompi/mpi/tool/pvar_get_num.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/pvar_get_num.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,6 +3,9 @@ * Copyright (c) 2012-2013 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -28,7 +31,7 @@ } if (MPI_PARAM_CHECK && NULL == num_pvar) { - return MPI_ERR_ARG; + return MPI_T_ERR_INVALID; } return mca_base_pvar_get_count (num_pvar); diff -Nru openmpi-4.0.3/ompi/mpi/tool/pvar_handle_alloc.c openmpi-4.1.4/ompi/mpi/tool/pvar_handle_alloc.c --- openmpi-4.0.3/ompi/mpi/tool/pvar_handle_alloc.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/pvar_handle_alloc.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -39,6 +42,7 @@ bounds checking. */ ret = mca_base_pvar_get (pvar_index, &pvar); if (OMPI_SUCCESS != ret) { + ret = (OPAL_ERR_NOT_FOUND == ret) ? MPI_T_ERR_INVALID_INDEX : MPI_T_ERR_INVALID; break; } diff -Nru openmpi-4.0.3/ompi/mpi/tool/pvar_handle_free.c openmpi-4.1.4/ompi/mpi/tool/pvar_handle_free.c --- openmpi-4.0.3/ompi/mpi/tool/pvar_handle_free.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/pvar_handle_free.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -44,7 +47,7 @@ ret = mca_base_pvar_handle_free (*handle); if (OPAL_SUCCESS != ret) { - ret = MPI_ERR_UNKNOWN; + ret = MPI_T_ERR_INVALID; } *handle = MPI_T_PVAR_HANDLE_NULL; diff -Nru openmpi-4.0.3/ompi/mpi/tool/pvar_session_create.c openmpi-4.1.4/ompi/mpi/tool/pvar_session_create.c --- openmpi-4.0.3/ompi/mpi/tool/pvar_session_create.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpi/tool/pvar_session_create.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,9 @@ * reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -34,7 +37,7 @@ *session = OBJ_NEW(mca_base_pvar_session_t); if (NULL == *session) { - ret = MPI_ERR_NO_MEM; + ret = MPI_T_ERR_MEMORY; } ompi_mpit_unlock (); diff -Nru openmpi-4.0.3/ompi/mpiext/affinity/c/Makefile.in openmpi-4.1.4/ompi/mpiext/affinity/c/Makefile.in --- openmpi-4.0.3/ompi/mpiext/affinity/c/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpiext/affinity/c/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -129,6 +129,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -136,6 +138,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -159,6 +162,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -261,6 +265,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -268,6 +273,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -348,6 +354,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -370,9 +377,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -382,6 +393,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -402,6 +414,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -663,6 +676,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1483,6 +1499,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1515,9 +1535,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1538,6 +1567,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1622,9 +1652,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1685,6 +1712,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1698,6 +1728,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpiext/affinity/Makefile.in openmpi-4.1.4/ompi/mpiext/affinity/Makefile.in --- openmpi-4.0.3/ompi/mpiext/affinity/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpiext/affinity/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -117,6 +117,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -124,6 +126,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -147,6 +150,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -249,6 +253,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -256,6 +261,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -336,6 +342,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -358,9 +365,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -370,6 +381,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -390,6 +402,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -623,6 +636,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1443,6 +1459,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1475,9 +1495,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1498,6 +1527,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1582,9 +1612,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1645,6 +1672,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1658,6 +1688,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpiext/cr/c/Makefile.in openmpi-4.1.4/ompi/mpiext/cr/c/Makefile.in --- openmpi-4.0.3/ompi/mpiext/cr/c/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpiext/cr/c/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,6 +116,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -123,6 +125,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -146,6 +149,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -248,6 +252,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -255,6 +260,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -335,6 +341,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -357,9 +364,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -369,6 +380,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -389,6 +401,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -648,6 +661,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1468,6 +1484,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1500,9 +1520,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1523,6 +1552,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1607,9 +1637,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1670,6 +1697,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1683,6 +1713,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpiext/cr/Makefile.in openmpi-4.1.4/ompi/mpiext/cr/Makefile.in --- openmpi-4.0.3/ompi/mpiext/cr/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpiext/cr/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -117,6 +117,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -124,6 +126,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -147,6 +150,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -249,6 +253,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -256,6 +261,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -336,6 +342,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -358,9 +365,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -370,6 +381,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -390,6 +402,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -623,6 +636,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1443,6 +1459,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1475,9 +1495,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1498,6 +1527,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1582,9 +1612,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1645,6 +1672,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1658,6 +1688,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpiext/cuda/c/Makefile.in openmpi-4.1.4/ompi/mpiext/cuda/c/Makefile.in --- openmpi-4.0.3/ompi/mpiext/cuda/c/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpiext/cuda/c/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -130,6 +130,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -137,6 +139,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -160,6 +163,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -262,6 +266,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -269,6 +274,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -349,6 +355,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -371,9 +378,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -383,6 +394,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -403,6 +415,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -662,6 +675,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1482,6 +1498,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1514,9 +1534,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1537,6 +1566,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1621,9 +1651,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1684,6 +1711,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1697,6 +1727,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpiext/cuda/Makefile.in openmpi-4.1.4/ompi/mpiext/cuda/Makefile.in --- openmpi-4.0.3/ompi/mpiext/cuda/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpiext/cuda/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -624,6 +637,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1444,6 +1460,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1476,9 +1496,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1499,6 +1528,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1583,9 +1613,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1646,6 +1673,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1659,6 +1689,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpiext/pcollreq/c/Makefile.in openmpi-4.1.4/ompi/mpiext/pcollreq/c/Makefile.in --- openmpi-4.0.3/ompi/mpiext/pcollreq/c/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpiext/pcollreq/c/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -148,6 +148,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -155,6 +157,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -178,6 +181,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -280,6 +284,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -287,6 +292,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -367,6 +373,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -389,9 +396,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -401,6 +412,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -421,6 +433,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -748,6 +761,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1568,6 +1584,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1600,9 +1620,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1623,6 +1652,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1707,9 +1737,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1770,6 +1797,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1783,6 +1813,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpiext/pcollreq/c/profile/Makefile.in openmpi-4.1.4/ompi/mpiext/pcollreq/c/profile/Makefile.in --- openmpi-4.0.3/ompi/mpiext/pcollreq/c/profile/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpiext/pcollreq/c/profile/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -127,6 +127,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -134,6 +136,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -157,6 +160,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -259,6 +263,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -266,6 +271,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -346,6 +352,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -368,9 +375,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -380,6 +391,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -400,6 +412,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -662,6 +675,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1482,6 +1498,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1514,9 +1534,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1537,6 +1566,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1621,9 +1651,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1684,6 +1711,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1697,6 +1727,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpiext/pcollreq/Makefile.in openmpi-4.1.4/ompi/mpiext/pcollreq/Makefile.in --- openmpi-4.0.3/ompi/mpiext/pcollreq/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpiext/pcollreq/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -106,6 +106,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -113,6 +115,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -136,6 +139,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -238,6 +242,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -245,6 +250,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -325,6 +331,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -347,9 +354,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -359,6 +370,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -379,6 +391,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -612,6 +625,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1432,6 +1448,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1464,9 +1484,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1487,6 +1516,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1571,9 +1601,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1634,6 +1661,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1647,6 +1677,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpiext/pcollreq/mpif-h/Makefile.in openmpi-4.1.4/ompi/mpiext/pcollreq/mpif-h/Makefile.in --- openmpi-4.0.3/ompi/mpiext/pcollreq/mpif-h/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpiext/pcollreq/mpif-h/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -150,6 +150,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -157,6 +159,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -180,6 +183,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -282,6 +286,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -289,6 +294,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -369,6 +375,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -391,9 +398,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -403,6 +414,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -423,6 +435,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -758,6 +771,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1578,6 +1594,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1610,9 +1630,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1633,6 +1662,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1717,9 +1747,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1780,6 +1807,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1793,6 +1823,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpiext/pcollreq/mpif-h/profile/Makefile.in openmpi-4.1.4/ompi/mpiext/pcollreq/mpif-h/profile/Makefile.in --- openmpi-4.0.3/ompi/mpiext/pcollreq/mpif-h/profile/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpiext/pcollreq/mpif-h/profile/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -124,6 +124,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -131,6 +133,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -154,6 +157,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -256,6 +260,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -263,6 +268,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -343,6 +349,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -365,9 +372,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -377,6 +388,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -397,6 +409,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -671,6 +684,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1491,6 +1507,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1523,9 +1543,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1546,6 +1575,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1630,9 +1660,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1693,6 +1720,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1706,6 +1736,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpiext/pcollreq/use-mpi/Makefile.in openmpi-4.1.4/ompi/mpiext/pcollreq/use-mpi/Makefile.in --- openmpi-4.0.3/ompi/mpiext/pcollreq/use-mpi/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpiext/pcollreq/use-mpi/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -113,6 +113,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -120,6 +122,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -143,6 +146,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -245,6 +249,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -252,6 +257,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -332,6 +338,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -354,9 +361,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -366,6 +377,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -386,6 +398,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -579,6 +592,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1399,6 +1415,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1431,9 +1451,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1454,6 +1483,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1538,9 +1568,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1601,6 +1628,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1614,6 +1644,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/mpiext/pcollreq/use-mpi-f08/Makefile.in openmpi-4.1.4/ompi/mpiext/pcollreq/use-mpi-f08/Makefile.in --- openmpi-4.0.3/ompi/mpiext/pcollreq/use-mpi-f08/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/mpiext/pcollreq/use-mpi-f08/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -699,6 +712,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1519,6 +1535,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1551,9 +1571,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1574,6 +1603,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1658,9 +1688,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1721,6 +1748,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1734,6 +1764,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/op/op.c openmpi-4.1.4/ompi/op/op.c --- openmpi-4.0.3/ompi/op/op.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/op/op.c 2022-05-29 09:51:40.000000000 +0000 @@ -216,6 +216,9 @@ #warning Unsupported definition for MPI_COUNT #endif + ompi_op_ddt_map[OMPI_DATATYPE_MPI_LONG] = OMPI_OP_BASE_TYPE_LONG; + ompi_op_ddt_map[OMPI_DATATYPE_MPI_UNSIGNED_LONG] = OMPI_OP_BASE_TYPE_UNSIGNED_LONG; + /* Create the intrinsic ops */ if (OMPI_SUCCESS != diff -Nru openmpi-4.0.3/ompi/op/op.h openmpi-4.1.4/ompi/op/op.h --- openmpi-4.0.3/ompi/op/op.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/op/op.h 2022-05-29 09:51:40.000000000 +0000 @@ -17,6 +17,7 @@ * reserved. * Copyright (c) 2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2021 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -541,10 +542,41 @@ * is not defined to have that operation, it is likely to seg fault. */ static inline void ompi_op_reduce(ompi_op_t * op, void *source, - void *target, int count, + void *target, size_t full_count, ompi_datatype_t * dtype) { MPI_Fint f_dtype, f_count; + int count = full_count; + + /* + * If the full_count is > INT_MAX then we need to call the reduction op + * in iterations of counts <= INT_MAX since it has an `int *len` + * parameter. + * + * Note: When we add BigCount support then we can distinguish between + * a reduction operation with `int *len` and `MPI_Count *len`. At which + * point we can avoid this loop. + */ + if( OPAL_UNLIKELY(full_count > INT_MAX) ) { + size_t done_count = 0, shift; + int iter_count; + ptrdiff_t ext, lb; + + ompi_datatype_get_extent(dtype, &lb, &ext); + + while(done_count < full_count) { + if(done_count + INT_MAX > full_count) { + iter_count = full_count - done_count; + } else { + iter_count = INT_MAX; + } + shift = done_count * ext; + // Recurse one level in iterations of 'int' + ompi_op_reduce(op, (char*)source + shift, (char*)target + shift, iter_count, dtype); + done_count += iter_count; + } + return; + } /* * Call the reduction function. Two dimensions: a) if both the op diff -Nru openmpi-4.0.3/ompi/request/grequest.c openmpi-4.1.4/ompi/request/grequest.c --- openmpi-4.0.3/ompi/request/grequest.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/request/grequest.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,8 +9,9 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2006-2021 Cisco Systems, Inc. All rights reserved * Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2021 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -121,13 +122,20 @@ */ static void ompi_grequest_destruct(ompi_grequest_t* greq) { - MPI_Fint ierr; - if (greq->greq_free.c_free != NULL) { + /* We were already putting query_fn()'s return value into + * status.MPI_ERROR but for MPI_{Wait,Test}*. If there's a + * free callback to invoke, the standard says to use the + * return value from free_fn() callback, too. + */ if (greq->greq_funcs_are_c) { - greq->greq_free.c_free(greq->greq_state); + greq->greq_base.req_status.MPI_ERROR = + greq->greq_free.c_free(greq->greq_state); } else { + MPI_Fint ierr; greq->greq_free.f_free((MPI_Aint*)greq->greq_state, &ierr); + greq->greq_base.req_status.MPI_ERROR = + OMPI_FINT_2_INT(ierr); } } @@ -163,6 +171,7 @@ greq->greq_free.c_free = gfree_fn; greq->greq_cancel.c_cancel = gcancel_fn; greq->greq_base.req_status = ompi_status_empty; + greq->greq_base.req_complete = REQUEST_PENDING; *request = &greq->greq_base; return OMPI_SUCCESS; @@ -202,26 +211,40 @@ int rc = OMPI_SUCCESS; ompi_grequest_t *g = (ompi_grequest_t*) request; - /* MPI-2:8.2 does not say what to do with the return value from - the query function (i.e., the int return value from the C - function or the ierr argument from the Fortran function). - Making the command decision here to ignore it. If the handler - wants to pass an error back, it should set it in the MPI_ERROR - field in the status (which is always kept, regardless if the - top-level function was invoked with MPI_STATUS[ES]_IGNORE or - not). */ + /* MPI-3 mandates that the return value from the query function + * (i.e., the int return value from the C function or the ierr + * argument from the Fortran function) must be returned to the + * user. Thus, if the return of the query function is not MPI_SUCCESS + * we will update the MPI_ERROR field. Otherwise, the MPI_ERROR + * field is untouched (or left to the discretion of the query function). + */ if (NULL != g->greq_query.c_query) { if (g->greq_funcs_are_c) { rc = g->greq_query.c_query(g->greq_state, status); } else { + /* request->req_status.MPI_ERROR was initialized to success + * and it's meant to be unmodified in the case of callback + * success, and set when callbacks return a failure. But + * if we leave fstatus uninitialized this sets + * req_status.MPI_ERROR to whatever happened to be on the + * stack at fstatus (f_query isn't supposed to directly set + * its status.MPI_ERROR, according to the standard) + * + * So the Status_c2f below only really cares about transferring + * the MPI_ERROR setting into fstatus so that when it's transferred + * back in the f2c call, it has the starting value. + */ MPI_Fint ierr; MPI_Fint fstatus[sizeof(MPI_Status) / sizeof(int)]; + MPI_Status_c2f(status, fstatus); g->greq_query.f_query((MPI_Aint*)g->greq_state, fstatus, &ierr); MPI_Status_f2c(fstatus, status); rc = OMPI_FINT_2_INT(ierr); } } - + if( MPI_SUCCESS != rc ) { + status->MPI_ERROR = rc; + } return rc; } diff -Nru openmpi-4.0.3/ompi/request/grequestx.c openmpi-4.1.4/ompi/request/grequestx.c --- openmpi-4.0.3/ompi/request/grequestx.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/request/grequestx.c 2022-05-29 09:51:40.000000000 +0000 @@ -34,6 +34,7 @@ static int grequestx_progress(void) { ompi_grequest_t *request, *next; + int completed = 0; OPAL_THREAD_LOCK(&lock); if (!in_progress) { @@ -43,18 +44,17 @@ MPI_Status status; OPAL_THREAD_UNLOCK(&lock); request->greq_poll.c_poll(request->greq_state, &status); + OPAL_THREAD_LOCK(&lock); if (REQUEST_COMPLETE(&request->greq_base)) { - OPAL_THREAD_LOCK(&lock); opal_list_remove_item(&requests, &request->greq_base.super.super); - OPAL_THREAD_UNLOCK(&lock); + completed++; } - OPAL_THREAD_LOCK(&lock); } in_progress = false; } OPAL_THREAD_UNLOCK(&lock); - return OMPI_SUCCESS; + return completed; } int ompi_grequestx_start( diff -Nru openmpi-4.0.3/ompi/request/req_test.c openmpi-4.1.4/ompi/request/req_test.c --- openmpi-4.0.3/ompi/request/req_test.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/request/req_test.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2016 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, @@ -43,7 +43,7 @@ if( request->req_state == OMPI_REQUEST_INACTIVE ) { *completed = true; if (MPI_STATUS_IGNORE != status) { - *status = ompi_status_empty; + OMPI_COPY_STATUS(status, ompi_status_empty, false); } return OMPI_SUCCESS; } @@ -61,17 +61,9 @@ STATUS_IGNORE. See MPI-2:8.2. */ if (OMPI_REQUEST_GEN == request->req_type) { ompi_grequest_invoke_query(request, &request->req_status); - if (MPI_STATUS_IGNORE != status) { - int old_error = status->MPI_ERROR; - *status = request->req_status; - status->MPI_ERROR = old_error; - } - } else if (MPI_STATUS_IGNORE != status) { - /* Do *NOT* set a new value for status->MPI_ERROR here! - See MPI-1.1 doc, sec 3.2.5, p.22 */ - int old_error = status->MPI_ERROR; - *status = request->req_status; - status->MPI_ERROR = old_error; + } + if (MPI_STATUS_IGNORE != status) { + OMPI_COPY_STATUS(status, request->req_status, false); } if( request->req_persistent ) { request->req_state = OMPI_REQUEST_INACTIVE; @@ -139,19 +131,9 @@ STATUS_IGNORE */ if (OMPI_REQUEST_GEN == request->req_type) { ompi_grequest_invoke_query(request, &request->req_status); - if (MPI_STATUS_IGNORE != status) { - /* Do *NOT* set a new value for status->MPI_ERROR - here! See MPI-1.1 doc, sec 3.2.5, p.22 */ - int old_error = status->MPI_ERROR; - *status = request->req_status; - status->MPI_ERROR = old_error; - } - } else if (MPI_STATUS_IGNORE != status) { - /* Do *NOT* set a new value for status->MPI_ERROR - here! See MPI-1.1 doc, sec 3.2.5, p.22 */ - int old_error = status->MPI_ERROR; - *status = request->req_status; - status->MPI_ERROR = old_error; + } + if (MPI_STATUS_IGNORE != status) { + OMPI_COPY_STATUS(status, request->req_status, false); } if( request->req_persistent ) { @@ -179,7 +161,7 @@ } else { *completed = true; if (MPI_STATUS_IGNORE != status) { - *status = ompi_status_empty; + OMPI_COPY_STATUS(status, ompi_status_empty, false); } } return OMPI_SUCCESS; @@ -228,7 +210,7 @@ * to ompi_status_empty. */ if( request->req_state == OMPI_REQUEST_INACTIVE ) { - statuses[i] = ompi_status_empty; + OMPI_COPY_STATUS(&statuses[i], ompi_status_empty, true); continue; } if (OMPI_REQUEST_GEN == request->req_type) { @@ -239,7 +221,7 @@ OMPI_CRCP_REQUEST_COMPLETE(request); } #endif - statuses[i] = request->req_status; + OMPI_COPY_STATUS(&statuses[i], request->req_status, true); if( request->req_persistent ) { request->req_state = OMPI_REQUEST_INACTIVE; continue; @@ -352,7 +334,7 @@ ompi_grequest_invoke_query(request, &request->req_status); } if (MPI_STATUSES_IGNORE != statuses) { - statuses[i] = request->req_status; + OMPI_COPY_STATUS(&statuses[i], request->req_status, true); } if (MPI_SUCCESS != request->req_status.MPI_ERROR) { diff -Nru openmpi-4.0.3/ompi/request/request.c openmpi-4.1.4/ompi/request/request.c --- openmpi-4.0.3/ompi/request/request.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/request/request.c 2022-05-29 09:51:40.000000000 +0000 @@ -54,7 +54,7 @@ /* don't call _INIT, we don't to set the request to _INACTIVE and there will * be no matching _FINI invocation */ req->req_state = OMPI_REQUEST_INVALID; - req->req_complete = false; + req->req_complete = REQUEST_COMPLETED; req->req_persistent = false; req->req_start = NULL; req->req_free = NULL; diff -Nru openmpi-4.0.3/ompi/request/request.h openmpi-4.1.4/ompi/request/request.h --- openmpi-4.0.3/ompi/request/request.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/request/request.h 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2016 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -201,6 +201,28 @@ } \ } while (0); +/* + * Except in procedures that return MPI_ERR_IN_STATUS, the MPI_ERROR + * field of a status object shall never be modified + * See MPI-1.1 doc, sec 3.2.5, p.22 + * + * Add a small macro that helps setting the status appropriately + * depending on the use case + */ +#define OMPI_COPY_STATUS(pdst, src, is_err_in_status) \ +do { \ + if (is_err_in_status) { \ + *(pdst) = (src); \ + } \ + else { \ + (pdst)->MPI_TAG = (src).MPI_TAG; \ + (pdst)->MPI_SOURCE = (src).MPI_SOURCE; \ + (pdst)->_ucount = (src)._ucount; \ + (pdst)->_cancelled = (src)._cancelled; \ + } \ +} while(0); + + /** * Non-blocking test for request completion. * @@ -395,21 +417,24 @@ static inline void ompi_request_wait_completion(ompi_request_t *req) { - if (opal_using_threads () && !REQUEST_COMPLETE(req)) { - void *_tmp_ptr = REQUEST_PENDING; - ompi_wait_sync_t sync; - - WAIT_SYNC_INIT(&sync, 1); - - if (OPAL_ATOMIC_COMPARE_EXCHANGE_STRONG_PTR(&req->req_complete, &_tmp_ptr, &sync)) { - SYNC_WAIT(&sync); - } else { - /* completed before we had a chance to swap in the sync object */ - WAIT_SYNC_SIGNALLED(&sync); - } + if (opal_using_threads ()) { + if(!REQUEST_COMPLETE(req)) { + void *_tmp_ptr = REQUEST_PENDING; + ompi_wait_sync_t sync; - assert(REQUEST_COMPLETE(req)); - WAIT_SYNC_RELEASE(&sync); + WAIT_SYNC_INIT(&sync, 1); + + if (OPAL_ATOMIC_COMPARE_EXCHANGE_STRONG_PTR(&req->req_complete, &_tmp_ptr, &sync)) { + SYNC_WAIT(&sync); + } else { + /* completed before we had a chance to swap in the sync object */ + WAIT_SYNC_SIGNALLED(&sync); + } + + assert(REQUEST_COMPLETE(req)); + WAIT_SYNC_RELEASE(&sync); + } + opal_atomic_rmb(); } else { while(!REQUEST_COMPLETE(req)) { opal_progress(); @@ -434,9 +459,11 @@ { int rc = 0; - if( NULL != request->req_complete_cb) { - rc = request->req_complete_cb( request ); + if(NULL != request->req_complete_cb) { + /* Set the request cb to NULL to allow resetting in the callback */ + ompi_request_complete_fn_t fct = request->req_complete_cb; request->req_complete_cb = NULL; + rc = fct( request ); } if (0 == rc) { @@ -457,6 +484,21 @@ return OMPI_SUCCESS; } +static inline int ompi_request_set_callback(ompi_request_t* request, + ompi_request_complete_fn_t cb, + void* cb_data) +{ + request->req_complete_cb_data = cb_data; + request->req_complete_cb = cb; + /* If request is completed and the callback is not called, need to call callback */ + if ((NULL != request->req_complete_cb) && (request->req_complete == REQUEST_COMPLETED)) { + ompi_request_complete_fn_t fct = request->req_complete_cb; + request->req_complete_cb = NULL; + return fct( request ); + } + return OMPI_SUCCESS; +} + END_C_DECLS #endif diff -Nru openmpi-4.0.3/ompi/request/req_wait.c openmpi-4.1.4/ompi/request/req_wait.c --- openmpi-4.0.3/ompi/request/req_wait.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/request/req_wait.c 2022-05-29 09:51:40.000000000 +0000 @@ -50,17 +50,12 @@ ompi_grequest_invoke_query(req, &req->req_status); } if( MPI_STATUS_IGNORE != status ) { - /* Do *NOT* set status->MPI_ERROR here! See MPI-1.1 doc, sec - 3.2.5, p.22 */ - status->MPI_TAG = req->req_status.MPI_TAG; - status->MPI_SOURCE = req->req_status.MPI_SOURCE; - status->_ucount = req->req_status._ucount; - status->_cancelled = req->req_status._cancelled; + OMPI_COPY_STATUS(status, req->req_status, false); } if( req->req_persistent ) { if( req->req_state == OMPI_REQUEST_INACTIVE ) { if (MPI_STATUS_IGNORE != status) { - *status = ompi_status_empty; + OMPI_COPY_STATUS(status, ompi_status_empty, false); } return OMPI_SUCCESS; } @@ -123,7 +118,7 @@ if(num_requests_null_inactive == count) { *index = MPI_UNDEFINED; if (MPI_STATUS_IGNORE != status) { - *status = ompi_status_empty; + OMPI_COPY_STATUS(status, ompi_status_empty, false); } /* No signal-in-flight can be in this case */ WAIT_SYNC_RELEASE_NOWAIT(&sync); @@ -176,11 +171,7 @@ rc = ompi_grequest_invoke_query(request, &request->req_status); } if (MPI_STATUS_IGNORE != status) { - /* Do *NOT* set status->MPI_ERROR here! See MPI-1.1 doc, - sec 3.2.5, p.22 */ - int old_error = status->MPI_ERROR; - *status = request->req_status; - status->MPI_ERROR = old_error; + OMPI_COPY_STATUS(status, request->req_status, false); } rc = request->req_status.MPI_ERROR; if( request->req_persistent ) { @@ -224,7 +215,7 @@ continue; } - if (!OPAL_ATOMIC_COMPARE_EXCHANGE_STRONG_PTR(&request->req_complete, &_tmp_ptr, &sync)) { + if (REQUEST_COMPLETE(request) || !OPAL_ATOMIC_COMPARE_EXCHANGE_STRONG_PTR(&request->req_complete, &_tmp_ptr, &sync)) { if( OPAL_UNLIKELY( MPI_SUCCESS != request->req_status.MPI_ERROR ) ) { failed++; } @@ -257,7 +248,7 @@ request = *rptr; if( request->req_state == OMPI_REQUEST_INACTIVE ) { - statuses[i] = ompi_status_empty; + OMPI_COPY_STATUS(&statuses[i], ompi_status_empty, true); continue; } @@ -290,7 +281,7 @@ ompi_grequest_invoke_query(request, &request->req_status); } - statuses[i] = request->req_status; + OMPI_COPY_STATUS(&statuses[i], request->req_status, true); if( request->req_persistent ) { request->req_state = OMPI_REQUEST_INACTIVE; @@ -505,7 +496,7 @@ ompi_grequest_invoke_query(request, &request->req_status); } if (MPI_STATUSES_IGNORE != statuses) { - statuses[i] = request->req_status; + OMPI_COPY_STATUS(&statuses[i], request->req_status, true); } if (MPI_SUCCESS != request->req_status.MPI_ERROR) { diff -Nru openmpi-4.0.3/ompi/runtime/ompi_mpi_params.c openmpi-4.1.4/ompi/runtime/ompi_mpi_params.c --- openmpi-4.0.3/ompi/runtime/ompi_mpi_params.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/runtime/ompi_mpi_params.c 2022-05-29 09:51:40.000000000 +0000 @@ -155,7 +155,7 @@ ompi_mpi_param_check = true; if (!MPI_PARAM_CHECK) { opal_output(0, "WARNING: MCA parameter mpi_no_free_handles set to true, but MPI"); - opal_output(0, "WARNING: parameter checking has been compiled out of Open MPI."); + opal_output(0, "WARNING: parameter checking has been compiled out of " OMPI_IDENT_STRING "."); opal_output(0, "WARNING: mpi_no_free_handles is therefore only partially effective!"); } } @@ -214,7 +214,8 @@ /* File to use when dumping the parameters */ (void) mca_base_var_register("ompi", "mpi", NULL, "show_mca_params_file", - "If mpi_show_mca_params is true, setting this string to a valid filename tells Open MPI to dump all the MCA parameter values into a file suitable for reading via the mca_param_files parameter (good for reproducability of MPI jobs)", + "If mpi_show_mca_params is true, setting this string to a valid filename tells " + OMPI_IDENT_STRING " to dump all the MCA parameter values into a file suitable for reading via the mca_param_files parameter (good for reproducability of MPI jobs)", MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, OPAL_INFO_LVL_9, MCA_BASE_VAR_SCOPE_READONLY, @@ -240,7 +241,7 @@ /* Sparse group storage support */ (void) mca_base_var_register("ompi", "mpi", NULL, "have_sparse_group_storage", - "Whether this Open MPI installation supports storing of data in MPI groups in \"sparse\" formats (good for extremely large process count MPI jobs that create many communicators/groups)", + "Whether this " OMPI_IDENT_STRING " installation supports storing of data in MPI groups in \"sparse\" formats (good for extremely large process count MPI jobs that create many communicators/groups)", MCA_BASE_VAR_TYPE_BOOL, NULL, 0, MCA_BASE_VAR_FLAG_DEFAULT_ONLY, OPAL_INFO_LVL_9, diff -Nru openmpi-4.0.3/ompi/runtime/ompi_spc.c openmpi-4.1.4/ompi/runtime/ompi_spc.c --- openmpi-4.0.3/ompi/runtime/ompi_spc.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/runtime/ompi_spc.c 2022-05-29 09:51:40.000000000 +0000 @@ -8,6 +8,7 @@ * and Technology (RIST). All rights reserved. * Copyright (c) 2019 Mellanox Technologies, Inc. * All rights reserved. + * Copyright (c) 2020 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,7 +18,7 @@ #include "ompi_spc.h" -opal_timer_t sys_clock_freq_mhz = 0; +static opal_timer_t sys_clock_freq_mhz = 0; static void ompi_spc_dump(void); diff -Nru openmpi-4.0.3/ompi/tools/mpisync/Makefile.am openmpi-4.1.4/ompi/tools/mpisync/Makefile.am --- openmpi-4.0.3/ompi/tools/mpisync/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/tools/mpisync/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -15,8 +15,8 @@ # All rights reserved. # Copyright (c) 2014 Artem Polyakov # Copyright (c) 2016 IBM Corporation. All rights reserved. -# Copyright (c) 2017 Research Organization for Information Science -# and Technology (RIST). All rights reserved. +# Copyright (c) 2017-2020 Research Organization for Information Science +# and Technology (RIST). All rights reserved. # # $COPYRIGHT$ # @@ -32,8 +32,8 @@ -DOPAL_CONFIGURE_HOST="\"@OPAL_CONFIGURE_HOST@\"" \ -DOPAL_CONFIGURE_DATE="\"@OPAL_CONFIGURE_DATE@\"" \ -DOMPI_BUILD_USER="\"$$USER\"" \ - -DOMPI_BUILD_HOST="\"`(hostname || uname -n) | sed 1q`\"" \ - -DOMPI_BUILD_DATE="\"`date`\"" \ + -DOMPI_BUILD_HOST="\"$${HOSTNAME:-`(hostname || uname -n) | sed 1q`}\"" \ + -DOMPI_BUILD_DATE="\"`$(top_srcdir)/config/getdate.sh`\"" \ -DOMPI_BUILD_CFLAGS="\"@CFLAGS@\"" \ -DOMPI_BUILD_CPPFLAGS="\"@CPPFLAGS@\"" \ -DOMPI_BUILD_CXXFLAGS="\"@CXXFLAGS@\"" \ diff -Nru openmpi-4.0.3/ompi/tools/mpisync/Makefile.in openmpi-4.1.4/ompi/tools/mpisync/Makefile.in --- openmpi-4.0.3/ompi/tools/mpisync/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/tools/mpisync/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -31,8 +31,8 @@ # All rights reserved. # Copyright (c) 2014 Artem Polyakov # Copyright (c) 2016 IBM Corporation. All rights reserved. -# Copyright (c) 2017 Research Organization for Information Science -# and Technology (RIST). All rights reserved. +# Copyright (c) 2017-2020 Research Organization for Information Science +# and Technology (RIST). All rights reserved. # # $COPYRIGHT$ # @@ -141,6 +141,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -148,6 +150,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -171,6 +174,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -273,6 +277,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -280,6 +285,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -360,6 +366,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -382,9 +389,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -394,6 +405,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -414,6 +426,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -672,6 +685,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1492,6 +1508,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1524,9 +1544,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1547,6 +1576,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1631,9 +1661,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1694,6 +1721,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1707,6 +1737,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ @@ -1738,8 +1772,8 @@ -DOPAL_CONFIGURE_HOST="\"@OPAL_CONFIGURE_HOST@\"" \ -DOPAL_CONFIGURE_DATE="\"@OPAL_CONFIGURE_DATE@\"" \ -DOMPI_BUILD_USER="\"$$USER\"" \ - -DOMPI_BUILD_HOST="\"`(hostname || uname -n) | sed 1q`\"" \ - -DOMPI_BUILD_DATE="\"`date`\"" \ + -DOMPI_BUILD_HOST="\"$${HOSTNAME:-`(hostname || uname -n) | sed 1q`}\"" \ + -DOMPI_BUILD_DATE="\"`$(top_srcdir)/config/getdate.sh`\"" \ -DOMPI_BUILD_CFLAGS="\"@CFLAGS@\"" \ -DOMPI_BUILD_CPPFLAGS="\"@CPPFLAGS@\"" \ -DOMPI_BUILD_CXXFLAGS="\"@CXXFLAGS@\"" \ diff -Nru openmpi-4.0.3/ompi/tools/ompi_info/Makefile.am openmpi-4.1.4/ompi/tools/ompi_info/Makefile.am --- openmpi-4.0.3/ompi/tools/ompi_info/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/tools/ompi_info/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -28,8 +28,8 @@ -DOPAL_CONFIGURE_HOST="\"@OPAL_CONFIGURE_HOST@\"" \ -DOPAL_CONFIGURE_DATE="\"@OPAL_CONFIGURE_DATE@\"" \ -DOMPI_BUILD_USER="\"$$USER\"" \ - -DOMPI_BUILD_HOST="\"`(hostname || uname -n) 2> /dev/null | sed 1q`\"" \ - -DOMPI_BUILD_DATE="\"`date`\"" \ + -DOMPI_BUILD_HOST="\"$${HOSTNAME:-`(hostname || uname -n) | sed 1q`}\"" \ + -DOMPI_BUILD_DATE="\"`$(top_srcdir)/config/getdate.sh`\"" \ -DOMPI_BUILD_CFLAGS="\"@CFLAGS@\"" \ -DOMPI_BUILD_CPPFLAGS="\"@CPPFLAGS@\"" \ -DOMPI_BUILD_CXXFLAGS="\"@CXXFLAGS@\"" \ diff -Nru openmpi-4.0.3/ompi/tools/ompi_info/Makefile.in openmpi-4.1.4/ompi/tools/ompi_info/Makefile.in --- openmpi-4.0.3/ompi/tools/ompi_info/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/tools/ompi_info/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -138,6 +138,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -145,6 +147,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -168,6 +171,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -270,6 +274,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -277,6 +282,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -357,6 +363,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -379,9 +386,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -391,6 +402,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -411,6 +423,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -666,6 +679,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1486,6 +1502,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1518,9 +1538,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1541,6 +1570,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1625,9 +1655,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1688,6 +1715,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1701,6 +1731,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ @@ -1732,8 +1766,8 @@ -DOPAL_CONFIGURE_HOST="\"@OPAL_CONFIGURE_HOST@\"" \ -DOPAL_CONFIGURE_DATE="\"@OPAL_CONFIGURE_DATE@\"" \ -DOMPI_BUILD_USER="\"$$USER\"" \ - -DOMPI_BUILD_HOST="\"`(hostname || uname -n) 2> /dev/null | sed 1q`\"" \ - -DOMPI_BUILD_DATE="\"`date`\"" \ + -DOMPI_BUILD_HOST="\"$${HOSTNAME:-`(hostname || uname -n) | sed 1q`}\"" \ + -DOMPI_BUILD_DATE="\"`$(top_srcdir)/config/getdate.sh`\"" \ -DOMPI_BUILD_CFLAGS="\"@CFLAGS@\"" \ -DOMPI_BUILD_CPPFLAGS="\"@CPPFLAGS@\"" \ -DOMPI_BUILD_CXXFLAGS="\"@CXXFLAGS@\"" \ diff -Nru openmpi-4.0.3/ompi/tools/ompi_info/ompi_info.c openmpi-4.1.4/ompi/tools/ompi_info/ompi_info.c --- openmpi-4.0.3/ompi/tools/ompi_info/ompi_info.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/tools/ompi_info/ompi_info.c 2022-05-29 09:51:40.000000000 +0000 @@ -103,8 +103,8 @@ } if (opal_cmd_line_is_taken(ompi_info_cmd_line, "version")) { - fprintf(stdout, "Open MPI v%s\n\n%s\n", - OPAL_VERSION, PACKAGE_BUGREPORT); + fprintf(stdout, "%s v%s\n\n%s\n", + PACKAGE_NAME, OPAL_VERSION, PACKAGE_BUGREPORT); exit(0); } diff -Nru openmpi-4.0.3/ompi/tools/wrappers/Makefile.in openmpi-4.1.4/ompi/tools/wrappers/Makefile.in --- openmpi-4.0.3/ompi/tools/wrappers/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/tools/wrappers/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -139,6 +139,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -146,6 +148,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -169,6 +172,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -271,6 +275,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -278,6 +283,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -358,6 +364,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -380,9 +387,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -392,6 +403,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -412,6 +424,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -628,6 +641,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1448,6 +1464,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1480,9 +1500,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1503,6 +1532,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1587,9 +1617,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1650,6 +1677,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1663,6 +1693,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/ompi/util/timings.h openmpi-4.1.4/ompi/util/timings.h --- openmpi-4.0.3/ompi/util/timings.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/ompi/util/timings.h 2022-05-29 09:51:40.000000000 +0000 @@ -120,7 +120,7 @@ } \ } while(0) -#define OMPI_TIMING_APPEND(filename,func,desc,ts) \ +#define OMPI_TIMING_APPEND_PREFIX(filename, _prefix, func,desc,ts) \ do { \ if (OMPI_TIMING.cur_timing->use >= OMPI_TIMING.size){ \ OMPI_TIMING_ITEM_EXTEND; \ @@ -130,7 +130,12 @@ if (len >= OPAL_TIMING_STR_LEN) { \ OMPI_TIMING.error = 1; \ } \ - OMPI_TIMING.cur_timing->val[OMPI_TIMING.cur_timing->use].prefix = func; \ + if( _prefix[0] ) { \ + OMPI_TIMING.cur_timing->val[OMPI_TIMING.cur_timing->use].prefix = \ + func "/" _prefix; \ + } else { \ + OMPI_TIMING.cur_timing->val[OMPI_TIMING.cur_timing->use].prefix = func;\ + } \ OMPI_TIMING.cur_timing->val[OMPI_TIMING.cur_timing->use].file = filename; \ OMPI_TIMING.cur_timing->val[OMPI_TIMING.cur_timing->use++].ts = ts; \ OMPI_TIMING.cnt++; \ @@ -143,14 +148,14 @@ int i; \ double ts; \ OMPI_TIMING.import_cnt++; \ - OPAL_TIMING_ENV_CNT(func, cnt); \ + OPAL_TIMING_ENV_CNT_PREFIX(_prefix, func, cnt); \ OPAL_TIMING_ENV_ERROR_PREFIX(_prefix, func, OMPI_TIMING.error); \ for(i = 0; i < cnt; i++){ \ char *desc, *filename; \ OMPI_TIMING.cur_timing->val[OMPI_TIMING.cur_timing->use].imported= \ OMPI_TIMING.import_cnt; \ OPAL_TIMING_ENV_GETDESC_PREFIX(_prefix, &filename, func, i, &desc, ts); \ - OMPI_TIMING_APPEND(filename, func, desc, ts); \ + OMPI_TIMING_APPEND_PREFIX(filename, _prefix, func, desc, ts); \ } \ } \ } while(0) @@ -275,6 +280,8 @@ #define OMPI_TIMING_IMPORT_OPAL(func) +#define OMPI_TIMING_IMPORT_OPAL_PREFIX(_prefix, func) + #define OMPI_TIMING_FINALIZE #define OMPI_TIMING_ENABLED 0 diff -Nru openmpi-4.0.3/opal/class/opal_object.h openmpi-4.1.4/opal/class/opal_object.h --- openmpi-4.0.3/opal/class/opal_object.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/class/opal_object.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,8 +11,8 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2007-2014 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2014 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. * $COPYRIGHT$ @@ -345,6 +345,27 @@ } while (0) #endif +#if OPAL_ENABLE_DEBUG +#define OBJ_RELEASE_NO_NULLIFY(object) \ + do { \ + assert(OPAL_OBJ_MAGIC_ID == ((opal_object_t *) (object))->obj_magic_id); \ + assert(NULL != ((opal_object_t *) (object))->obj_class); \ + if (0 == opal_obj_update((opal_object_t *) (object), -1)) { \ + OBJ_SET_MAGIC_ID((object), 0); \ + opal_obj_run_destructors((opal_object_t *) (object)); \ + OBJ_REMEMBER_FILE_AND_LINENO( object, __FILE__, __LINE__ ); \ + free((void *) object); \ + } \ + } while (0) +#else +#define OBJ_RELEASE_NO_NULLIFY(object) \ + do { \ + if (0 == opal_obj_update((opal_object_t *) (object), -1)) { \ + opal_obj_run_destructors((opal_object_t *) (object)); \ + free((void *) object); \ + } \ + } while (0) +#endif /** * Construct (initialize) objects that are not dynamically allocated. diff -Nru openmpi-4.0.3/opal/datatype/Makefile.in openmpi-4.1.4/opal/datatype/Makefile.in --- openmpi-4.0.3/opal/datatype/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -129,6 +129,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -136,6 +138,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -159,6 +162,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -261,6 +265,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -268,6 +273,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -348,6 +354,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -370,9 +377,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -382,6 +393,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -402,6 +414,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -692,6 +705,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1512,6 +1528,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1544,9 +1564,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1567,6 +1596,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1651,9 +1681,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1714,6 +1741,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1727,6 +1757,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/datatype/opal_convertor.c openmpi-4.1.4/opal/datatype/opal_convertor.c --- openmpi-4.0.3/opal/datatype/opal_convertor.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_convertor.c 2022-05-29 09:51:40.000000000 +0000 @@ -140,7 +140,13 @@ } else { opal_output( 0, "Unknown sizeof(bool) for the remote architecture\n" ); } - + if (opal_arch_checkmask(&master->remote_arch, OPAL_ARCH_LONGIS64)) { + remote_sizes[OPAL_DATATYPE_LONG] = 8; + remote_sizes[OPAL_DATATYPE_UNSIGNED_LONG] = 8; + } else { + remote_sizes[OPAL_DATATYPE_LONG] = 4; + remote_sizes[OPAL_DATATYPE_UNSIGNED_LONG] = 4; + } /** * Now we can compute the conversion mask. For all sizes where the remote * and local architecture differ a conversion is needed. Moreover, if the @@ -431,7 +437,7 @@ } rc = opal_convertor_generic_simple_position( convertor, position ); /** - * If we have a non-contigous send convertor don't allow it move in the middle + * If we have a non-contiguous send convertor don't allow it move in the middle * of a predefined datatype, it won't be able to copy out the left-overs * anyway. Instead force the position to stay on predefined datatypes * boundaries. As we allow partial predefined datatypes on the contiguous @@ -446,31 +452,6 @@ return rc; } -static size_t -opal_datatype_compute_remote_size( const opal_datatype_t* pData, - const size_t* sizes ) -{ - uint32_t typeMask = pData->bdt_used; - size_t length = 0; - - if (opal_datatype_is_predefined(pData)) { - return sizes[pData->desc.desc->elem.common.type]; - } - - if( OPAL_UNLIKELY(NULL == pData->ptypes) ) { - /* Allocate and fill the array of types used in the datatype description */ - opal_datatype_compute_ptypes( (opal_datatype_t*)pData ); - } - - for( int i = OPAL_DATATYPE_FIRST_TYPE; typeMask && (i < OPAL_DATATYPE_MAX_PREDEFINED); i++ ) { - if( typeMask & ((uint32_t)1 << i) ) { - length += (pData->ptypes[i] * sizes[i]); - typeMask ^= ((uint32_t)1 << i); - } - } - return length; -} - /** * Compute the remote size. If necessary remove the homogeneous flag * and redirect the convertor description toward the non-optimized @@ -483,13 +464,15 @@ pConvertor->remote_size = pConvertor->local_size; if( OPAL_UNLIKELY(datatype->bdt_used & pConvertor->master->hetero_mask) ) { pConvertor->flags &= (~CONVERTOR_HOMOGENEOUS); - if (!(pConvertor->flags & CONVERTOR_SEND && pConvertor->flags & OPAL_DATATYPE_FLAG_CONTIGUOUS)) { + /* Can we use the optimized description? */ + if (pConvertor->flags & OPAL_DATATYPE_OPTIMIZED_RESTRICTED) { pConvertor->use_desc = &(datatype->desc); } if( 0 == (pConvertor->flags & CONVERTOR_HAS_REMOTE_SIZE) ) { /* This is for a single datatype, we must update it with the count */ - pConvertor->remote_size = opal_datatype_compute_remote_size(datatype, - pConvertor->master->remote_sizes); + pConvertor->remote_size = + opal_datatype_compute_remote_size(datatype, + pConvertor->master->remote_sizes); pConvertor->remote_size *= pConvertor->count; } } diff -Nru openmpi-4.0.3/opal/datatype/opal_convertor.h openmpi-4.1.4/opal/datatype/opal_convertor.h --- openmpi-4.0.3/opal/datatype/opal_convertor.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_convertor.h 2022-05-29 09:51:40.000000000 +0000 @@ -202,25 +202,19 @@ opal_convertor_compute_remote_size( opal_convertor_t* pConv ); /** - * Return the local size of the convertor (count times the size of the datatype). + * Return the packed size of the memory layout represented by this + * convertor. This is the size of the buffer that would be needed + * for the conversion (takes in account the type of the operation, + * aka pack or unpack, as well as which side is supposed to do the + * type conversion). */ static inline void opal_convertor_get_packed_size( const opal_convertor_t* pConv, size_t* pSize ) { *pSize = pConv->local_size; -} - - -/** - * Return the remote size of the convertor (count times the remote size of the - * datatype). On homogeneous environments the local and remote sizes are - * identical. - */ -static inline void opal_convertor_get_unpacked_size( const opal_convertor_t* pConv, - size_t* pSize ) -{ - if( pConv->flags & CONVERTOR_HOMOGENEOUS ) { - *pSize = pConv->local_size; + if ((pConv->flags & CONVERTOR_HOMOGENEOUS) || + ((pConv->flags & CONVERTOR_SEND) && !(pConv->flags & CONVERTOR_SEND_CONVERSION)) || + ((pConv->flags & CONVERTOR_RECV) && (pConv->flags & CONVERTOR_SEND_CONVERSION))) { return; } if( 0 == (CONVERTOR_HAS_REMOTE_SIZE & pConv->flags) ) { diff -Nru openmpi-4.0.3/opal/datatype/opal_convertor_raw.c openmpi-4.1.4/opal/datatype/opal_convertor_raw.c --- openmpi-4.0.3/opal/datatype/opal_convertor_raw.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_convertor_raw.c 2022-05-29 09:51:40.000000000 +0000 @@ -41,7 +41,7 @@ uint32_t* idx ) { if( 0 != iov[*idx].iov_len ) { - if( (base == ((char*)iov[*idx].iov_base + iov[*idx].iov_len)) ) { + if (base == ((char*)iov[*idx].iov_base + iov[*idx].iov_len)) { iov[*idx].iov_len += len; /* merge with previous iovec */ return 0; } /* cannot merge, move to the next position */ diff -Nru openmpi-4.0.3/opal/datatype/opal_copy_functions.c openmpi-4.1.4/opal/datatype/opal_copy_functions.c --- openmpi-4.0.3/opal/datatype/opal_copy_functions.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_copy_functions.c 2022-05-29 09:51:40.000000000 +0000 @@ -241,29 +241,36 @@ /* Table of predefined copy functions - one for each OPAL type */ /* NOTE: The order of this array *MUST* match the order in opal_datatype_basicDatatypes */ conversion_fct_t opal_datatype_copy_functions[OPAL_DATATYPE_MAX_PREDEFINED] = { - (conversion_fct_t)NULL, /* OPAL_DATATYPE_LOOP */ - (conversion_fct_t)NULL, /* OPAL_DATATYPE_END_LOOP */ - (conversion_fct_t)NULL, /* OPAL_DATATYPE_LB */ - (conversion_fct_t)NULL, /* OPAL_DATATYPE_UB */ - (conversion_fct_t)copy_bytes_1, /* OPAL_DATATYPE_INT1 */ - (conversion_fct_t)copy_bytes_2, /* OPAL_DATATYPE_INT2 */ - (conversion_fct_t)copy_bytes_4, /* OPAL_DATATYPE_INT4 */ - (conversion_fct_t)copy_bytes_8, /* OPAL_DATATYPE_INT8 */ - (conversion_fct_t)copy_bytes_16, /* OPAL_DATATYPE_INT16 */ - (conversion_fct_t)copy_bytes_1, /* OPAL_DATATYPE_UINT1 */ - (conversion_fct_t)copy_bytes_2, /* OPAL_DATATYPE_UINT2 */ - (conversion_fct_t)copy_bytes_4, /* OPAL_DATATYPE_UINT4 */ - (conversion_fct_t)copy_bytes_8, /* OPAL_DATATYPE_UINT8 */ - (conversion_fct_t)copy_bytes_16, /* OPAL_DATATYPE_UINT16 */ - (conversion_fct_t)copy_float_2, /* OPAL_DATATYPE_FLOAT2 */ - (conversion_fct_t)copy_float_4, /* OPAL_DATATYPE_FLOAT4 */ - (conversion_fct_t)copy_float_8, /* OPAL_DATATYPE_FLOAT8 */ - (conversion_fct_t)copy_float_12, /* OPAL_DATATYPE_FLOAT12 */ - (conversion_fct_t)copy_float_16, /* OPAL_DATATYPE_FLOAT16 */ - (conversion_fct_t)copy_float_complex, /* OPAL_DATATYPE_FLOAT_COMPLEX */ - (conversion_fct_t)copy_double_complex, /* OPAL_DATATYPE_DOUBLE_COMPLEX */ - (conversion_fct_t)copy_long_double_complex, /* OPAL_DATATYPE_LONG_DOUBLE_COMPLEX */ - (conversion_fct_t)copy_bool, /* OPAL_DATATYPE_BOOL */ - (conversion_fct_t)copy_wchar, /* OPAL_DATATYPE_WCHAR */ - (conversion_fct_t)NULL /* OPAL_DATATYPE_UNAVAILABLE */ + [OPAL_DATATYPE_LOOP] = (conversion_fct_t) NULL, + [OPAL_DATATYPE_END_LOOP] = (conversion_fct_t) NULL, + [OPAL_DATATYPE_LB] = (conversion_fct_t) NULL, + [OPAL_DATATYPE_UB] = (conversion_fct_t) NULL, + [OPAL_DATATYPE_INT1] = (conversion_fct_t) copy_bytes_1, + [OPAL_DATATYPE_INT2] = (conversion_fct_t) copy_bytes_2, + [OPAL_DATATYPE_INT4] = (conversion_fct_t) copy_bytes_4, + [OPAL_DATATYPE_INT8] = (conversion_fct_t) copy_bytes_8, + [OPAL_DATATYPE_INT16] = (conversion_fct_t) copy_bytes_16, + [OPAL_DATATYPE_UINT1] = (conversion_fct_t) copy_bytes_1, + [OPAL_DATATYPE_UINT2] = (conversion_fct_t) copy_bytes_2, + [OPAL_DATATYPE_UINT4] = (conversion_fct_t) copy_bytes_4, + [OPAL_DATATYPE_UINT8] = (conversion_fct_t) copy_bytes_8, + [OPAL_DATATYPE_UINT16] = (conversion_fct_t) copy_bytes_16, + [OPAL_DATATYPE_FLOAT2] = (conversion_fct_t) copy_float_2, + [OPAL_DATATYPE_FLOAT4] = (conversion_fct_t) copy_float_4, + [OPAL_DATATYPE_FLOAT8] = (conversion_fct_t) copy_float_8, + [OPAL_DATATYPE_FLOAT12] = (conversion_fct_t) copy_float_12, + [OPAL_DATATYPE_FLOAT16] = (conversion_fct_t) copy_float_16, + [OPAL_DATATYPE_FLOAT_COMPLEX] = (conversion_fct_t) copy_float_complex, + [OPAL_DATATYPE_DOUBLE_COMPLEX] = (conversion_fct_t) copy_double_complex, + [OPAL_DATATYPE_LONG_DOUBLE_COMPLEX] = (conversion_fct_t) copy_long_double_complex, + [OPAL_DATATYPE_BOOL] = (conversion_fct_t) copy_bool, + [OPAL_DATATYPE_WCHAR] = (conversion_fct_t) copy_wchar, +#if SIZEOF_LONG == 4 + [OPAL_DATATYPE_LONG] = (conversion_fct_t)copy_bytes_4, + [OPAL_DATATYPE_UNSIGNED_LONG] = (conversion_fct_t)copy_bytes_4, +#elif SIZEOF_LONG == 8 + [OPAL_DATATYPE_LONG] = (conversion_fct_t)copy_bytes_8, + [OPAL_DATATYPE_UNSIGNED_LONG] = (conversion_fct_t)copy_bytes_8, +#endif + [OPAL_DATATYPE_UNAVAILABLE] = NULL, }; diff -Nru openmpi-4.0.3/opal/datatype/opal_copy_functions_heterogeneous.c openmpi-4.1.4/opal/datatype/opal_copy_functions_heterogeneous.c --- openmpi-4.0.3/opal/datatype/opal_copy_functions_heterogeneous.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_copy_functions_heterogeneous.c 2022-05-29 09:51:40.000000000 +0000 @@ -444,6 +444,222 @@ COPY_TYPE_HETEROGENEOUS (wchar, wchar_t) +#if SIZEOF_LONG == 8 +static int32_t +copy_long_heterogeneous(opal_convertor_t *pConvertor, size_t count, + const char* from, size_t from_len, ptrdiff_t from_extent, + char* to, size_t to_length, ptrdiff_t to_extent, + ptrdiff_t *advance) +{ + size_t i; + + datatype_check("long", sizeof(long), pConvertor->master->remote_sizes[OPAL_DATATYPE_LONG], &count, from, from_len, from_extent, to, + to_length, to_extent); + if (!((pConvertor->remoteArch ^ opal_local_arch) & OPAL_ARCH_LONGIS64)) { /* same sizeof(long) */ + if ((pConvertor->remoteArch ^ opal_local_arch) & OPAL_ARCH_ISBIGENDIAN) { /* different endianess */ + for (i = 0; i < count; i++) { + opal_dt_swap_bytes(to, from, sizeof(long), 1); + to += to_extent; + from += from_extent; + } + } else { + for (i = 0; i < count; i++) { + *(long*)to = *(long*)from; + to += to_extent; + from += from_extent; + } + } + } else { + /* the two sides have different lengths for sizeof(long) */ + if( CONVERTOR_SEND & pConvertor->flags ) { /* we're doing a pack */ + assert(CONVERTOR_SEND_CONVERSION & pConvertor->flags); + if ((pConvertor->remoteArch ^ opal_local_arch) & OPAL_ARCH_ISBIGENDIAN) { + /* different sizeof, we need to convert */ + if (opal_local_arch & OPAL_ARCH_LONGIS64) { + for (i = 0; i < count; i++) { /* from 8 to 4 bytes */ + int64_t val = *(int64_t*)from; + int32_t i32 = (int32_t)val; + opal_dt_swap_bytes(to, &i32, sizeof(int32_t), 1); + to += to_extent; + from += from_extent; + } + } else { + for (i = 0; i < count; i++) { /* from 4 to 8 bytes */ + int32_t val = *(int32_t*)from; + int64_t i64 = (int64_t)val; + opal_dt_swap_bytes(to, &i64, sizeof(int64_t), 1); + to += to_extent; + from += from_extent; + } + } + } else { /* both have the same endianess */ + if (opal_local_arch & OPAL_ARCH_LONGIS64) { + for (i = 0; i < count; i++) { /* from 8 to 4 bytes */ + long val = *(long*)from; + *(int32_t*)to = (int32_t)val; + to += to_extent; + from += from_extent; + } + } else { + for (i = 0; i < count; i++) { /* from 4 to 8 bytes */ + long val = *(long*)from; + *(int64_t*)to = (int64_t)val; + to += to_extent; + from += from_extent; + } + } + } + } else { /* unpack */ + if ((pConvertor->remoteArch ^ opal_local_arch) & OPAL_ARCH_ISBIGENDIAN) { + /* different endianness */ + if (opal_local_arch & OPAL_ARCH_LONGIS64) { + for (i = 0; i < count; i++) { /* from 4 to 8 bytes */ + int32_t val; + opal_dt_swap_bytes(&val, from, sizeof(int32_t), 1); + *(long*)to = (long)val; + to += to_extent; + from += from_extent; + } + } else { + for (i = 0; i < count; i++) { /* from 8 to 4 bytes */ + int64_t val; + opal_dt_swap_bytes(&val, from, sizeof(int64_t), 1); + *(long*)to = (long)val; + to += to_extent; + from += from_extent; + } + } + } else { /* both have the same endianess */ + if (opal_local_arch & OPAL_ARCH_LONGIS64) { + for (i = 0; i < count; i++) { /* from 8 to 4 bytes */ + int32_t val = *(int32_t*)from; + *(long*)to = (long)val; + to += to_extent; + from += from_extent; + } + } else { + for (i = 0; i < count; i++) { /* from 4 to 8 bytes */ + int64_t val = *(int64_t*)from; + *(long*)to = (long)val; + to += to_extent; + from += from_extent; + } + } + } + } + } + *advance = count * from_extent; + return count; +} + +static int32_t +copy_unsigned_long_heterogeneous(opal_convertor_t *pConvertor, size_t count, + const char* from, size_t from_len, ptrdiff_t from_extent, + char* to, size_t to_length, ptrdiff_t to_extent, + ptrdiff_t *advance) +{ + size_t i; + + datatype_check("unsigned long", sizeof(unsigned long), pConvertor->master->remote_sizes[OPAL_DATATYPE_UNSIGNED_LONG], + &count, from, from_len, from_extent, to, to_length, to_extent); + if (!((pConvertor->remoteArch ^ opal_local_arch) & OPAL_ARCH_LONGIS64)) { /* same sizeof(long) */ + if ((pConvertor->remoteArch ^ opal_local_arch) & OPAL_ARCH_ISBIGENDIAN) { /* different endianess */ + for (i = 0; i < count; i++) { + opal_dt_swap_bytes(to, from, sizeof(unsigned long), 1); + to += to_extent; + from += from_extent; + } + } else { + for (i = 0; i < count; i++) { + *(unsigned long*)to = *(unsigned long*)from; + to += to_extent; + from += from_extent; + } + } + } else { + /* the two sides have different lengths for sizeof(long) */ + if( CONVERTOR_SEND & pConvertor->flags ) { /* we're doing a pack */ + assert(CONVERTOR_SEND_CONVERSION & pConvertor->flags); + if ((pConvertor->remoteArch ^ opal_local_arch) & OPAL_ARCH_ISBIGENDIAN) { + /* different sizeof, we need to convert */ + if (opal_local_arch & OPAL_ARCH_LONGIS64) { + for (i = 0; i < count; i++) { /* from 8 to 4 bytes */ + uint64_t val = *(uint64_t*)from; + uint32_t i32 = (uint32_t)val; + opal_dt_swap_bytes(to, &i32, sizeof(uint32_t), 1); + to += to_extent; + from += from_extent; + } + } else { + for (i = 0; i < count; i++) { /* from 4 to 8 bytes */ + uint32_t val = *(uint32_t*)from; + uint64_t i64 = (uint64_t)val; + opal_dt_swap_bytes(to, &i64, sizeof(uint64_t), 1); + to += to_extent; + from += from_extent; + } + } + } else { /* both have the same endianess */ + if (opal_local_arch & OPAL_ARCH_LONGIS64) { + for (i = 0; i < count; i++) { /* from 8 to 4 bytes */ + unsigned long val = *(unsigned long*)from; + *(uint32_t*)to = (uint32_t)val; + to += to_extent; + from += from_extent; + } + } else { + for (i = 0; i < count; i++) { /* from 4 to 8 bytes */ + unsigned long val = *(unsigned long*)from; + *(uint64_t*)to = (uint64_t)val; + to += to_extent; + from += from_extent; + } + } + } + } else { /* unpack */ + if ((pConvertor->remoteArch ^ opal_local_arch) & OPAL_ARCH_ISBIGENDIAN) { + /* different endianness */ + if (opal_local_arch & OPAL_ARCH_LONGIS64) { + for (i = 0; i < count; i++) { /* from 4 to 8 bytes */ + uint32_t val; + opal_dt_swap_bytes(&val, from, sizeof(uint32_t), 1); + *(unsigned long*)to = (unsigned long)val; + to += to_extent; + from += from_extent; + } + } else { + for (i = 0; i < count; i++) { /* from 8 to 4 bytes */ + uint64_t val; + opal_dt_swap_bytes(&val, from, sizeof(uint64_t), 1); + *(unsigned long*)to = (unsigned long)val; + to += to_extent; + from += from_extent; + } + } + } else { /* both have the same endianess */ + if (opal_local_arch & OPAL_ARCH_LONGIS64) { + for (i = 0; i < count; i++) { /* from 8 to 4 bytes */ + uint32_t val = *(uint32_t*)from; + *(unsigned long*)to = (unsigned long)val; + to += to_extent; + from += from_extent; + } + } else { + for (i = 0; i < count; i++) { /* from 4 to 8 bytes */ + uint64_t val = *(uint64_t*)from; + *(unsigned long*)to = (unsigned long)val; + to += to_extent; + from += from_extent; + } + } + } + } + } + *advance = count * from_extent; + return count; +} +#endif /* SIZEOF_LONG == 8 */ + /* table of predefined copy functions - one for each MPI type */ conversion_fct_t opal_datatype_heterogeneous_copy_functions[OPAL_DATATYPE_MAX_PREDEFINED] = { [OPAL_DATATYPE_LOOP] = NULL, @@ -470,5 +686,12 @@ [OPAL_DATATYPE_LONG_DOUBLE_COMPLEX] = (conversion_fct_t) copy_long_double_complex_heterogeneous, [OPAL_DATATYPE_BOOL] = (conversion_fct_t) copy_cxx_bool_heterogeneous, [OPAL_DATATYPE_WCHAR] = (conversion_fct_t) copy_wchar_heterogeneous, +#if SIZEOF_LONG == 4 + [OPAL_DATATYPE_LONG] = (conversion_fct_t) copy_int4_heterogeneous, + [OPAL_DATATYPE_UNSIGNED_LONG] = (conversion_fct_t) copy_int4_heterogeneous, +#else + [OPAL_DATATYPE_LONG] = (conversion_fct_t) copy_long_heterogeneous, + [OPAL_DATATYPE_UNSIGNED_LONG] = (conversion_fct_t) copy_unsigned_long_heterogeneous, +#endif [OPAL_DATATYPE_UNAVAILABLE] = NULL, }; diff -Nru openmpi-4.0.3/opal/datatype/opal_datatype_copy.c openmpi-4.1.4/opal/datatype/opal_datatype_copy.c --- openmpi-4.0.3/opal/datatype/opal_datatype_copy.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_datatype_copy.c 2022-05-29 09:51:40.000000000 +0000 @@ -46,6 +46,8 @@ /** * Non overlapping memory regions */ +#undef MEM_OP_BLOCK_SIZE +#define MEM_OP_BLOCK_SIZE opal_datatype_memop_block_size #undef MEM_OP_NAME #define MEM_OP_NAME non_overlap #undef MEM_OP @@ -74,6 +76,8 @@ #if OPAL_CUDA_SUPPORT #include "opal_datatype_cuda.h" +#undef MEM_OP_BLOCK_SIZE +#define MEM_OP_BLOCK_SIZE total_length #undef MEM_OP_NAME #define MEM_OP_NAME non_overlap_cuda #undef MEM_OP diff -Nru openmpi-4.0.3/opal/datatype/opal_datatype_copy.h openmpi-4.1.4/opal/datatype/opal_datatype_copy.h --- openmpi-4.0.3/opal/datatype/opal_datatype_copy.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_datatype_copy.h 2022-05-29 09:51:40.000000000 +0000 @@ -23,6 +23,9 @@ #if !defined(MEM_OP) #error #endif /* !defined(MEM_OP) */ +#if !defined(MEM_OP_BLOCK_SIZE) +#error +#endif /* !defined(MEM_OP_BLOCK_SIZE) */ #ifndef STRINGIFY # define STRINGIFY_(arg) #arg @@ -142,7 +145,7 @@ source += datatype->true_lb; if( (ptrdiff_t)datatype->size == extent ) { /* all contiguous == no gaps around */ size_t total_length = iov_len_local; - size_t memop_chunk = opal_datatype_memop_block_size; + size_t memop_chunk = MEM_OP_BLOCK_SIZE; OPAL_DATATYPE_SAFEGUARD_POINTER( source, iov_len_local, (unsigned char*)source_base, datatype, count ); while( total_length > 0 ) { diff -Nru openmpi-4.0.3/opal/datatype/opal_datatype_dump.c openmpi-4.1.4/opal/datatype/opal_datatype_dump.c --- openmpi-4.0.3/opal/datatype/opal_datatype_dump.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_datatype_dump.c 2022-05-29 09:51:40.000000000 +0000 @@ -62,17 +62,39 @@ int opal_datatype_dump_data_flags( unsigned short usflags, char* ptr, size_t length ) { int index = 0; - if( length < 22 ) return 0; - index = snprintf( ptr, 22, "-----------[---][---]" ); /* set everything to - */ - if( usflags & OPAL_DATATYPE_FLAG_COMMITTED ) ptr[1] = 'c'; - if( usflags & OPAL_DATATYPE_FLAG_CONTIGUOUS ) ptr[2] = 'C'; - if( usflags & OPAL_DATATYPE_FLAG_OVERLAP ) ptr[3] = 'o'; - if( usflags & OPAL_DATATYPE_FLAG_USER_LB ) ptr[4] = 'l'; - if( usflags & OPAL_DATATYPE_FLAG_USER_UB ) ptr[5] = 'u'; - if( usflags & OPAL_DATATYPE_FLAG_PREDEFINED ) ptr[6] = 'P'; - if( !(usflags & OPAL_DATATYPE_FLAG_NO_GAPS) ) ptr[7] = 'G'; - if( usflags & OPAL_DATATYPE_FLAG_DATA ) ptr[8] = 'D'; - if( (usflags & OPAL_DATATYPE_FLAG_BASIC) == OPAL_DATATYPE_FLAG_BASIC ) ptr[9] = 'B'; + if (length < 22) { + return 0; + } + index = snprintf(ptr, 22, "-----------[---][---]"); /* set everything to - */ + if (usflags & OPAL_DATATYPE_FLAG_COMMITTED) { + ptr[1] = 'c'; + } + if (usflags & OPAL_DATATYPE_FLAG_CONTIGUOUS) { + ptr[2] = 'C'; + } + if (usflags & OPAL_DATATYPE_FLAG_OVERLAP) { + ptr[3] = 'o'; + } + if (usflags & OPAL_DATATYPE_FLAG_USER_LB) { + ptr[4] = 'l'; + } + if (usflags & OPAL_DATATYPE_FLAG_USER_UB) { + ptr[5] = 'u'; + } + if (usflags & OPAL_DATATYPE_FLAG_PREDEFINED) { + ptr[6] = 'P'; + } + if (!(usflags & OPAL_DATATYPE_FLAG_NO_GAPS)) { + ptr[7] = 'G'; + } + if (usflags & OPAL_DATATYPE_FLAG_DATA) { + ptr[8] = 'D'; + } + if ((usflags & OPAL_DATATYPE_FLAG_BASIC) == OPAL_DATATYPE_FLAG_BASIC) { + ptr[9] = 'B'; + } else if (usflags & OPAL_DATATYPE_OPTIMIZED_RESTRICTED) { + ptr[9] = 'H'; /* optimized description restricted to homogeneous cases */ + } /* We know nothing about the upper level language or flags! */ /* ... */ return index; diff -Nru openmpi-4.0.3/opal/datatype/opal_datatype_get_count.c openmpi-4.1.4/opal/datatype/opal_datatype_get_count.c --- openmpi-4.0.3/opal/datatype/opal_datatype_get_count.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_datatype_get_count.c 2022-05-29 09:51:40.000000000 +0000 @@ -198,3 +198,27 @@ } } } + +size_t opal_datatype_compute_remote_size(const opal_datatype_t *pData, const size_t *sizes) +{ + uint32_t typeMask = pData->bdt_used; + size_t length = 0; + + if (opal_datatype_is_predefined(pData)) { + return sizes[pData->desc.desc->elem.common.type]; + } + + if (OPAL_UNLIKELY(NULL == pData->ptypes)) { + /* Allocate and fill the array of types used in the datatype description */ + opal_datatype_compute_ptypes((opal_datatype_t *) pData); + } + + for (int i = OPAL_DATATYPE_FIRST_TYPE; typeMask && (i < OPAL_DATATYPE_MAX_PREDEFINED); i++) { + if (typeMask & ((uint32_t) 1 << i)) { + length += (pData->ptypes[i] * sizes[i]); + typeMask ^= ((uint32_t) 1 << i); + } + } + return length; +} + diff -Nru openmpi-4.0.3/opal/datatype/opal_datatype.h openmpi-4.1.4/opal/datatype/opal_datatype.h --- openmpi-4.0.3/opal/datatype/opal_datatype.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_datatype.h 2022-05-29 09:51:40.000000000 +0000 @@ -49,16 +49,15 @@ * This must match the same definition as in opal_datatype_internal.h */ #if !defined(OPAL_DATATYPE_MAX_PREDEFINED) -#define OPAL_DATATYPE_MAX_PREDEFINED 25 +#define OPAL_DATATYPE_MAX_PREDEFINED 27 #endif /* - * No more than this number of _Basic_ datatypes in C/CPP or Fortran - * are supported (in order to not change setup and usage of the predefined - * datatypes). + * Upper limit of the number of _Basic_ datatypes supported (in order to + * not change setup and usage of the predefined datatypes). * * BEWARE: This constant should reflect whatever the OMPI-layer needs. */ -#define OPAL_DATATYPE_MAX_SUPPORTED 47 +#define OPAL_DATATYPE_MAX_SUPPORTED 61 /* flags for the datatypes. */ @@ -75,11 +74,18 @@ * We should make the difference here between the predefined contiguous and non contiguous * datatypes. The OPAL_DATATYPE_FLAG_BASIC is held by all predefined contiguous datatypes. */ -#define OPAL_DATATYPE_FLAG_BASIC (OPAL_DATATYPE_FLAG_PREDEFINED | \ - OPAL_DATATYPE_FLAG_CONTIGUOUS | \ - OPAL_DATATYPE_FLAG_NO_GAPS | \ - OPAL_DATATYPE_FLAG_DATA | \ - OPAL_DATATYPE_FLAG_COMMITTED) +#define OPAL_DATATYPE_FLAG_BASIC \ + (OPAL_DATATYPE_FLAG_PREDEFINED | OPAL_DATATYPE_FLAG_CONTIGUOUS | OPAL_DATATYPE_FLAG_NO_GAPS \ + | OPAL_DATATYPE_FLAG_DATA | OPAL_DATATYPE_FLAG_COMMITTED) +/* + * If during the datatype optimization process we collapse contiguous elements with + * different types, we cannot use this optimized description for any communication + * in a heterogeneous setting, especially not for the exteranl32 support. + * + * A datatype with this flag cannot use the optimized description in heterogeneous + * setups. + */ +#define OPAL_DATATYPE_OPTIMIZED_RESTRICTED 0x1000 /** * The number of supported entries in the data-type definition and the @@ -173,6 +179,8 @@ OPAL_DECLSPEC extern const opal_datatype_t opal_datatype_long_double_complex; OPAL_DECLSPEC extern const opal_datatype_t opal_datatype_bool; OPAL_DECLSPEC extern const opal_datatype_t opal_datatype_wchar; +OPAL_DECLSPEC extern const opal_datatype_t opal_datatype_long; +OPAL_DECLSPEC extern const opal_datatype_t opal_datatype_unsigned_long; /* @@ -363,6 +371,15 @@ opal_datatype_create_from_packed_description( void** packed_buffer, struct opal_proc_t* remote_processor ); +/* + * Compute the size of the datatype using a specific set of predefined type sizes. + * This function allows to compute the size of a packed buffer without creating + * a fully fledged specialized convertor for the remote peer. + */ +OPAL_DECLSPEC size_t +opal_datatype_compute_remote_size(const opal_datatype_t *pData, + const size_t *sizes); + /* Compute the span in memory of count datatypes. This function help with temporary * memory allocations for receiving already typed data (such as those used for reduce * operations). This span is the distance between the minimum and the maximum byte diff -Nru openmpi-4.0.3/opal/datatype/opal_datatype_internal.h openmpi-4.1.4/opal/datatype/opal_datatype_internal.h --- openmpi-4.0.3/opal/datatype/opal_datatype_internal.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_datatype_internal.h 2022-05-29 09:51:40.000000000 +0000 @@ -36,51 +36,16 @@ extern int opal_datatype_dfd; -# define DDT_DUMP_STACK( PSTACK, STACK_POS, PDESC, NAME ) \ - opal_datatype_dump_stack( (PSTACK), (STACK_POS), (PDESC), (NAME) ) -# if defined(ACCEPT_C99) -# define DUMP( ARGS... ) opal_output(opal_datatype_dfd, __VA_ARGS__) -# else -# if defined(__GNUC__) && !defined(__STDC__) -# define DUMP(ARGS...) opal_output( opal_datatype_dfd, ARGS) -# else -static inline void DUMP( char* fmt, ... ) -{ - va_list list; - - va_start( list, fmt ); - opal_output_vverbose( 0, opal_datatype_dfd, fmt, list ); - va_end( list ); -} -# endif /* __GNUC__ && !__STDC__ */ -# endif /* ACCEPT_C99 */ +# define DDT_DUMP_STACK(PSTACK, STACK_POS, PDESC, NAME) \ + opal_datatype_dump_stack((PSTACK), (STACK_POS), (PDESC), (NAME)) + +# define DUMP(...) opal_output(opal_datatype_dfd, __VA_ARGS__) + #else -# define DDT_DUMP_STACK( PSTACK, STACK_POS, PDESC, NAME ) -# if defined(ACCEPT_C99) -# define DUMP(ARGS...) -# else -# if defined(__GNUC__) && !defined(__STDC__) -# define DUMP(ARGS...) -# else - /* If we do not compile with PGI, mark the parameter as unused */ -# if !defined(__PGI) -# define __opal_attribute_unused_tmp__ __opal_attribute_unused__ -# else -# define __opal_attribute_unused_tmp__ -# endif -static inline void DUMP( char* fmt __opal_attribute_unused_tmp__, ... ) -{ -#if defined(__PGI) - /* Some compilers complain if we have "..." arguments and no - corresponding va_start() */ - va_list arglist; - va_start(arglist, fmt); - va_end(arglist); -#endif -} -# undef __opal_attribute_unused_tmp__ -# endif /* __GNUC__ && !__STDC__ */ -# endif /* ACCEPT_C99 */ + +# define DDT_DUMP_STACK(PSTACK, STACK_POS, PDESC, NAME) +# define DUMP(...) + #endif /* VERBOSE */ @@ -95,7 +60,9 @@ * * At the OPAL-level we do not care from which language the datatype came from * (C, C++ or FORTRAN), we only focus on their internal representation in - * the host memory. + * the host memory. There is one notable exception, the long predefined type + * which need to be handled at the lowest level due to it's variable size but + * fixed XDR representation. * * NOTE: This predefined datatype order should be matched by any upper-level * users of the OPAL datatype. @@ -125,7 +92,9 @@ #define OPAL_DATATYPE_LONG_DOUBLE_COMPLEX 21 #define OPAL_DATATYPE_BOOL 22 #define OPAL_DATATYPE_WCHAR 23 -#define OPAL_DATATYPE_UNAVAILABLE 24 +#define OPAL_DATATYPE_LONG 24 +#define OPAL_DATATYPE_UNSIGNED_LONG 25 +#define OPAL_DATATYPE_UNAVAILABLE 26 #ifndef OPAL_DATATYPE_MAX_PREDEFINED #define OPAL_DATATYPE_MAX_PREDEFINED (OPAL_DATATYPE_UNAVAILABLE+1) @@ -355,6 +324,11 @@ #define OPAL_DATATYPE_INITIALIZER_UINT16(FLAGS) OPAL_DATATYPE_INITIALIZER_UNAVAILABLE_NAMED( INT16, FLAGS ) #endif +#define OPAL_DATATYPE_INITIALIZER_LONG(FLAGS) \ + OPAL_DATATYPE_INIT_BASIC_DATATYPE(long, OPAL_ALIGNMENT_LONG, LONG, FLAGS) +#define OPAL_DATATYPE_INITIALIZER_UNSIGNED_LONG(FLAGS) \ + OPAL_DATATYPE_INIT_BASIC_DATATYPE(unsigned long, OPAL_ALIGNMENT_LONG, UNSIGNED_LONG, FLAGS) + #if SIZEOF_FLOAT == 2 #define OPAL_DATATYPE_INITIALIZER_FLOAT2(FLAGS) OPAL_DATATYPE_INIT_BASIC_DATATYPE( float, OPAL_ALIGNMENT_FLOAT, FLOAT2, FLAGS ) #elif SIZEOF_DOUBLE == 2 diff -Nru openmpi-4.0.3/opal/datatype/opal_datatype_module.c openmpi-4.1.4/opal/datatype/opal_datatype_module.c --- openmpi-4.0.3/opal/datatype/opal_datatype_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_datatype_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -78,6 +78,8 @@ OPAL_DECLSPEC const opal_datatype_t opal_datatype_long_double_complex = OPAL_DATATYPE_INITIALIZER_LONG_DOUBLE_COMPLEX(0); OPAL_DECLSPEC const opal_datatype_t opal_datatype_bool = OPAL_DATATYPE_INITIALIZER_BOOL(0); OPAL_DECLSPEC const opal_datatype_t opal_datatype_wchar = OPAL_DATATYPE_INITIALIZER_WCHAR(0); +OPAL_DECLSPEC const opal_datatype_t opal_datatype_long = OPAL_DATATYPE_INITIALIZER_LONG(0); +OPAL_DECLSPEC const opal_datatype_t opal_datatype_unsigned_long = OPAL_DATATYPE_INITIALIZER_UNSIGNED_LONG(0); OPAL_DECLSPEC const opal_datatype_t opal_datatype_unavailable = OPAL_DATATYPE_INITIALIZER_UNAVAILABLE_NAMED(UNAVAILABLE, 0); OPAL_DECLSPEC dt_elem_desc_t opal_datatype_predefined_elem_desc[2 * OPAL_DATATYPE_MAX_PREDEFINED] = {{{{0}}}}; @@ -108,6 +110,8 @@ [OPAL_DATATYPE_LONG_DOUBLE_COMPLEX] = sizeof(long double _Complex), [OPAL_DATATYPE_BOOL] = sizeof (_Bool), [OPAL_DATATYPE_WCHAR] = sizeof (wchar_t), + [OPAL_DATATYPE_LONG] = sizeof(long), + [OPAL_DATATYPE_UNSIGNED_LONG] = sizeof(unsigned long), }; /* @@ -139,6 +143,8 @@ [OPAL_DATATYPE_LONG_DOUBLE_COMPLEX] = &opal_datatype_long_double_complex, [OPAL_DATATYPE_BOOL] = &opal_datatype_bool, [OPAL_DATATYPE_WCHAR] = &opal_datatype_wchar, + [OPAL_DATATYPE_LONG] = &opal_datatype_long, + [OPAL_DATATYPE_UNSIGNED_LONG] = &opal_datatype_unsigned_long, [OPAL_DATATYPE_UNAVAILABLE] = &opal_datatype_unavailable, }; @@ -220,7 +226,7 @@ int32_t i; /** - * Force he initialization of the opal_datatype_t class. This will allow us to + * Force the initialization of the opal_datatype_t class. This will allow us to * call OBJ_DESTRUCT without going too deep in the initialization process. */ opal_class_initialize(OBJ_CLASS(opal_datatype_t)); diff -Nru openmpi-4.0.3/opal/datatype/opal_datatype_optimize.c openmpi-4.1.4/opal/datatype/opal_datatype_optimize.c --- openmpi-4.0.3/opal/datatype/opal_datatype_optimize.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_datatype_optimize.c 2022-05-29 09:51:40.000000000 +0000 @@ -87,10 +87,12 @@ compress.blocklen = pData->desc.desc[pos_desc + index].elem.blocklen; for( uint32_t i = index+1; i < loop->items; i++ ) { current = &pData->desc.desc[pos_desc + i].elem; - assert(1 == current->count); - if( (current->common.type == OPAL_DATATYPE_LOOP) || - compress.common.type != current->common.type ) { - compress.common.type = OPAL_DATATYPE_UINT1; + assert(1 == current->count); + if ((current->common.type == OPAL_DATATYPE_LOOP) + || compress.common.type != current->common.type) { + compress.common.type = OPAL_DATATYPE_UINT1; + compress.common.flags |= OPAL_DATATYPE_OPTIMIZED_RESTRICTED; + pData->flags |= OPAL_DATATYPE_OPTIMIZED_RESTRICTED; compress.blocklen = end_loop->size; break; } @@ -174,12 +176,14 @@ /* are the two elements compatible: aka they have very similar values and they * can be merged together by increasing the count, and/or changing the extent. */ - if( (last.blocklen * opal_datatype_basicDatatypes[last.common.type]->size) == - (current->blocklen * opal_datatype_basicDatatypes[current->common.type]->size) ) { - ddt_elem_desc_t save = last; /* safekeep the type and blocklen */ - if( last.common.type != current->common.type ) { - last.blocklen *= opal_datatype_basicDatatypes[last.common.type]->size; - last.common.type = OPAL_DATATYPE_UINT1; + if ((last.blocklen * opal_datatype_basicDatatypes[last.common.type]->size) + == (current->blocklen * opal_datatype_basicDatatypes[current->common.type]->size)) { + ddt_elem_desc_t save = last; /* safekeep the type and blocklen */ + if (last.common.type != current->common.type) { + last.blocklen *= opal_datatype_basicDatatypes[last.common.type]->size; + last.common.type = OPAL_DATATYPE_UINT1; + last.common.flags |= OPAL_DATATYPE_OPTIMIZED_RESTRICTED; + pData->flags |= OPAL_DATATYPE_OPTIMIZED_RESTRICTED; } if( (last.extent * (ptrdiff_t)last.count + last.disp) == current->disp ) { @@ -225,9 +229,14 @@ if( last.common.type == current->common.type ) { last.blocklen += current->blocklen; } else { - last.blocklen = ((last.blocklen * opal_datatype_basicDatatypes[last.common.type]->size) + - (current->blocklen * opal_datatype_basicDatatypes[current->common.type]->size)); - last.common.type = OPAL_DATATYPE_UINT1; + last.blocklen = ((last.blocklen + * opal_datatype_basicDatatypes[last.common.type]->size) + + (current->blocklen + * opal_datatype_basicDatatypes[current->common.type] + ->size)); + last.common.type = OPAL_DATATYPE_UINT1; + last.common.flags |= OPAL_DATATYPE_OPTIMIZED_RESTRICTED; + pData->flags |= OPAL_DATATYPE_OPTIMIZED_RESTRICTED; } last.extent += current->extent; if( current->count != 1 ) { diff -Nru openmpi-4.0.3/opal/datatype/opal_datatype_pack.c openmpi-4.1.4/opal/datatype/opal_datatype_pack.c --- openmpi-4.0.3/opal/datatype/opal_datatype_pack.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_datatype_pack.c 2022-05-29 09:51:40.000000000 +0000 @@ -357,7 +357,7 @@ *max_data = total_packed; pConvertor->bConverted += total_packed; /* update the already converted bytes */ *out_size = iov_count; - if( pConvertor->bConverted == pConvertor->local_size ) { + if( pConvertor->bConverted == pConvertor->remote_size ) { pConvertor->flags |= CONVERTOR_COMPLETED; return 1; } @@ -378,47 +378,88 @@ * to a contiguous output buffer with a predefined size. * return OPAL_SUCCESS if everything went OK and if there is still room before the complete * conversion of the data (need additional call with others input buffers ) - * 1 if everything went fine and the data was completly converted + * 1 if everything went fine and the data was completely converted * -1 something wrong occurs. */ static inline void -pack_predefined_heterogeneous( opal_convertor_t* CONVERTOR, - const dt_elem_desc_t* ELEM, - size_t* COUNT, - unsigned char** SOURCE, - unsigned char** DESTINATION, - size_t* SPACE ) +pack_predefined_heterogeneous(opal_convertor_t *CONVERTOR, + const dt_elem_desc_t *ELEM, size_t *COUNT, + unsigned char **memory, + unsigned char **packed, size_t *SPACE) { - const opal_convertor_master_t* master = (CONVERTOR)->master; - const ddt_elem_desc_t* _elem = &((ELEM)->elem); - unsigned char* _source = (*SOURCE) + _elem->disp; - ptrdiff_t advance; - size_t _count = *(COUNT); - size_t _r_blength; - - _r_blength = master->remote_sizes[_elem->common.type]; - if( (_count * _r_blength) > *(SPACE) ) { - _count = (*(SPACE) / _r_blength); - if( 0 == _count ) return; /* nothing to do */ - } - - OPAL_DATATYPE_SAFEGUARD_POINTER( _source, (_count * _elem->extent), (CONVERTOR)->pBaseBuf, - (CONVERTOR)->pDesc, (CONVERTOR)->count ); - DO_DEBUG( opal_output( 0, "pack [l %s r %s] memcpy( %p, %p, %lu ) => space %lu\n", - ((ptrdiff_t)(opal_datatype_basicDatatypes[_elem->common.type]->size) == _elem->extent) ? "cont" : "----", - ((ptrdiff_t)_r_blength == _elem->extent) ? "cont" : "----", - (void*)*(DESTINATION), (void*)_source, (unsigned long)_r_blength, - (unsigned long)(*(SPACE)) ); ); - master->pFunctions[_elem->common.type]( CONVERTOR, _count, - _source, *SPACE, _elem->extent, - *DESTINATION, *SPACE, _r_blength, - &advance ); - _r_blength *= _count; /* update the remote length to encompass all the elements */ - *(SOURCE) += _count * _elem->extent; - *(DESTINATION) += _r_blength; - *(SPACE) -= _r_blength; - *(COUNT) -= _count; + const opal_convertor_master_t *master = (CONVERTOR)->master; + const ddt_elem_desc_t *_elem = &((ELEM)->elem); + size_t cando_count = *(COUNT), do_now_bytes; + size_t local_elem_size = opal_datatype_basicDatatypes[_elem->common.type]->size; + size_t remote_elem_size = master->remote_sizes[_elem->common.type]; + size_t blocklen_bytes = remote_elem_size; + unsigned char *_memory = (*memory) + _elem->disp; + unsigned char *_packed = *packed; + ptrdiff_t advance = 0; + + assert(0 == (cando_count % _elem->blocklen)); /* no partials here */ + assert(*(COUNT) <= ((size_t) _elem->count * _elem->blocklen)); + + if ((remote_elem_size * cando_count) > *(SPACE)) + cando_count = (*SPACE) / blocklen_bytes; + + /* preemptively update the number of COUNT we will return. */ + *(COUNT) -= cando_count; + + if (_elem->blocklen == 1) { + master->pFunctions[_elem->common.type](CONVERTOR, cando_count, + _memory, *SPACE, _elem->extent, + _packed, *SPACE, remote_elem_size, + &advance); + _memory += cando_count * _elem->extent; + _packed += cando_count * remote_elem_size; + goto update_and_return; + } + + if ((1 < _elem->count) && (_elem->blocklen <= cando_count)) { + blocklen_bytes = remote_elem_size * _elem->blocklen; + + do { /* Do as many full blocklen as possible */ + OPAL_DATATYPE_SAFEGUARD_POINTER(_memory, blocklen_bytes, (CONVERTOR)->pBaseBuf, + (CONVERTOR)->pDesc, (CONVERTOR)->count); + DO_DEBUG(opal_output(0, "pack 2. memcpy( %p, %p, %lu ) => space %lu\n", + (void *) _packed, (void *) _memory, (unsigned long) blocklen_bytes, + (unsigned long) (*(SPACE) - (_packed - *(packed))));); + master->pFunctions[_elem->common.type](CONVERTOR, _elem->blocklen, + _memory, *SPACE, local_elem_size, + _packed, *SPACE, remote_elem_size, + &advance); + _packed += blocklen_bytes; + _memory += _elem->extent; + cando_count -= _elem->blocklen; + } while (_elem->blocklen <= cando_count); + } + + /** + * As an epilog do anything left from the last blocklen. + */ + if (0 != cando_count) { + assert((cando_count < _elem->blocklen) + || ((1 == _elem->count) && (cando_count <= _elem->blocklen))); + do_now_bytes = cando_count * remote_elem_size; + OPAL_DATATYPE_SAFEGUARD_POINTER(_memory, do_now_bytes, (CONVERTOR)->pBaseBuf, + (CONVERTOR)->pDesc, (CONVERTOR)->count); + DO_DEBUG(opal_output(0, "pack 3. memcpy( %p, %p, %lu ) => space %lu [epilog]\n", + (void *) _packed, (void *) _memory, (unsigned long) do_now_bytes, + (unsigned long) (*(SPACE) - (_packed - *(packed))));); + master->pFunctions[_elem->common.type](CONVERTOR, cando_count, + _memory, *SPACE, local_elem_size, + _packed, *SPACE, remote_elem_size, + &advance); + _memory += cando_count * local_elem_size; + _packed += do_now_bytes; + } + +update_and_return: + *(memory) = _memory - _elem->disp; + *(SPACE) -= (_packed - *packed); + *(packed) = _packed; } int32_t @@ -550,7 +591,9 @@ *max_data = total_packed; pConvertor->bConverted += total_packed; /* update the already converted bytes */ *out_size = iov_count; - if( pConvertor->bConverted == pConvertor->local_size ) { + size_t expected_packed_size; + opal_convertor_get_packed_size(pConvertor, &expected_packed_size); + if (pConvertor->bConverted == expected_packed_size) { pConvertor->flags |= CONVERTOR_COMPLETED; return 1; } diff -Nru openmpi-4.0.3/opal/datatype/opal_datatype_pack.h openmpi-4.1.4/opal/datatype/opal_datatype_pack.h --- openmpi-4.0.3/opal/datatype/opal_datatype_pack.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_datatype_pack.h 2022-05-29 09:51:40.000000000 +0000 @@ -68,7 +68,7 @@ OPAL_DATATYPE_SAFEGUARD_POINTER( _memory, do_now_bytes, (CONVERTOR)->pBaseBuf, (CONVERTOR)->pDesc, (CONVERTOR)->count ); DO_DEBUG( opal_output( 0, "pack memcpy( %p, %p, %lu ) => space %lu [partial]\n", - _packed, (void*)_memory, (unsigned long)do_now_bytes, (unsigned long)(*(SPACE)) ); ); + (void*) _packed, (void*)_memory, (unsigned long)do_now_bytes, (unsigned long)(*(SPACE)) ); ); MEMCPY_CSUM( _packed, _memory, do_now_bytes, (CONVERTOR) ); *(memory) += (ptrdiff_t)do_now_bytes; if( do_now == left_in_block ) /* compensate if completed a blocklen */ diff -Nru openmpi-4.0.3/opal/datatype/opal_datatype_resize.c openmpi-4.1.4/opal/datatype/opal_datatype_resize.c --- openmpi-4.0.3/opal/datatype/opal_datatype_resize.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_datatype_resize.c 2022-05-29 09:51:40.000000000 +0000 @@ -6,6 +6,7 @@ * Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. * Copyright (c) 2015-2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2020 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -24,6 +25,8 @@ type->ub = lb + extent; type->flags &= ~OPAL_DATATYPE_FLAG_NO_GAPS; + type->flags |= OPAL_DATATYPE_FLAG_USER_LB; + type->flags |= OPAL_DATATYPE_FLAG_USER_UB; if( (extent == (ptrdiff_t)type->size) && (type->flags & OPAL_DATATYPE_FLAG_CONTIGUOUS) ) { type->flags |= OPAL_DATATYPE_FLAG_NO_GAPS; diff -Nru openmpi-4.0.3/opal/datatype/opal_datatype_unpack.c openmpi-4.1.4/opal/datatype/opal_datatype_unpack.c --- openmpi-4.0.3/opal/datatype/opal_datatype_unpack.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_datatype_unpack.c 2022-05-29 09:51:40.000000000 +0000 @@ -142,7 +142,7 @@ } } } - *out_size = iov_idx; /* we only reach this line after the for loop succesfully complete */ + *out_size = iov_idx; /* we only reach this line after the for loop successfully complete */ *max_data = pConv->bConverted - initial_bytes_converted; if( pConv->bConverted == pConv->local_size ) pConv->flags |= CONVERTOR_COMPLETED; return !!(pConv->flags & CONVERTOR_COMPLETED); /* done or not */ @@ -161,60 +161,70 @@ * of the exponent or mantissa). */ static inline void -opal_unpack_partial_datatype( opal_convertor_t* pConvertor, dt_elem_desc_t* pElem, - unsigned char* partial_data, - ptrdiff_t start_position, size_t length, - unsigned char** user_buffer ) +opal_unpack_partial_predefined(opal_convertor_t *pConvertor, const dt_elem_desc_t *pElem, + size_t *COUNT, unsigned char **packed, + unsigned char **memory, size_t *SPACE) { char unused_byte = 0x7F, saved_data[16]; unsigned char temporary[16], *temporary_buffer = temporary; - unsigned char* user_data = *user_buffer + pElem->elem.disp; - size_t count_desc = 1; + unsigned char *user_data = *memory + pElem->elem.disp; size_t data_length = opal_datatype_basicDatatypes[pElem->elem.common.type]->size; + unsigned char *partial_data = *packed; + ptrdiff_t start_position = pConvertor->partial_length; + size_t length = data_length - start_position; + size_t count_desc = 1; + dt_elem_desc_t single_elem = { .elem = { .common = pElem->elem.common, .count = 1, .blocklen = 1, + .extent = data_length, /* advance by a full data element */ + .disp = 0 /* right where the pointer is */ } }; + if( *SPACE < length ) { + length = *SPACE; + } DO_DEBUG( opal_output( 0, "unpack partial data start %lu end %lu data_length %lu user %p\n" "\tbConverted %lu total_length %lu count %ld\n", - (unsigned long)start_position, (unsigned long)start_position + length, (unsigned long)data_length, (void*)*user_buffer, - (unsigned long)pConvertor->bConverted, (unsigned long)pConvertor->local_size, pConvertor->count ); ); + (unsigned long)start_position, (unsigned long)start_position + length, + (unsigned long)data_length, (void*)*memory, + (unsigned long)pConvertor->bConverted, + (unsigned long)pConvertor->local_size, pConvertor->count ); ); + COMPUTE_CSUM( partial_data, length, pConvertor ); - /* Find a byte that is not used in the partial buffer */ + /* Find a byte value that is not used in the partial buffer. We use it as a marker + * to identify what has not been modified by the unpack call. */ find_unused_byte: - for(size_t i = 0; i < length; i++ ) { + for (size_t i = 0; i < length; i++ ) { if( unused_byte == partial_data[i] ) { unused_byte--; goto find_unused_byte; } } - /* Copy and fill the rest of the buffer with the unused byte */ + /* Prepare an full element of the predefined type, by populating an entire type + * with the unused byte and then put the partial data at the right position. */ memset( temporary, unused_byte, data_length ); MEMCPY( temporary + start_position, partial_data, length ); + /* Save the original content of the user memory */ #if OPAL_CUDA_SUPPORT /* In the case where the data is being unpacked from device memory, need to - * use the special host to device memory copy. Note this code path was only - * seen on large receives of noncontiguous data via buffered sends. */ + * use the special host to device memory copy. */ pConvertor->cbmemcpy(saved_data, user_data, data_length, pConvertor ); #else - /* Save the content of the user memory */ MEMCPY( saved_data, user_data, data_length ); #endif /* Then unpack the data into the user memory */ - UNPACK_PREDEFINED_DATATYPE( pConvertor, pElem, count_desc, - temporary_buffer, *user_buffer, data_length ); + UNPACK_PREDEFINED_DATATYPE(pConvertor, &single_elem, count_desc, temporary_buffer, user_data, + data_length); - /* reload the length as it is reset by the macro */ + /* reload the length and user buffer as they have been updated by the macro */ data_length = opal_datatype_basicDatatypes[pElem->elem.common.type]->size; + user_data = *memory + pElem->elem.disp; - /* For every occurence of the unused byte move data from the saved - * buffer back into the user memory. - */ + /* Rebuild the data by pulling back the unmodified bytes from the original + * content in the user memory. */ #if OPAL_CUDA_SUPPORT /* Need to copy the modified user_data again so we can see which - * bytes need to be converted back to their original values. Note - * this code path was only seen on large receives of noncontiguous - * data via buffered sends. */ + * bytes need to be converted back to their original values. */ { char resaved_data[16]; pConvertor->cbmemcpy(resaved_data, user_data, data_length, pConvertor ); @@ -229,6 +239,16 @@ user_data[i] = saved_data[i]; } #endif + pConvertor->partial_length = (pConvertor->partial_length + length) % data_length; + *SPACE -= length; + *packed += length; + if (0 == pConvertor->partial_length) { + (*COUNT)--; /* we have enough to complete one full predefined type */ + *memory += data_length; + if (0 == (*COUNT % pElem->elem.blocklen)) { + *memory += pElem->elem.extent - (pElem->elem.blocklen * data_length); + } + } } /* The pack/unpack functions need a cleanup. I have to create a proper interface to access @@ -257,8 +277,8 @@ size_t iov_len_local; uint32_t iov_count; - DO_DEBUG( opal_output( 0, "opal_convertor_generic_simple_unpack( %p, {%p, %lu}, %u )\n", - (void*)pConvertor, (void*)iov[0].iov_base, (unsigned long)iov[0].iov_len, *out_size ); ); + DO_DEBUG( opal_output( 0, "opal_convertor_generic_simple_unpack( %p, iov[%u] = {%p, %lu} )\n", + (void*)pConvertor, *out_size, (void*)iov[0].iov_base, (unsigned long)iov[0].iov_len ); ); description = pConvertor->use_desc->desc; @@ -283,28 +303,26 @@ iov_ptr = (unsigned char *) iov[iov_count].iov_base; iov_len_local = iov[iov_count].iov_len; - if( 0 != pConvertor->partial_length ) { - size_t element_length = opal_datatype_basicDatatypes[pElem->elem.common.type]->size; - size_t missing_length = element_length - pConvertor->partial_length; - - assert( pElem->elem.common.flags & OPAL_DATATYPE_FLAG_DATA ); - COMPUTE_CSUM( iov_ptr, missing_length, pConvertor ); - opal_unpack_partial_datatype( pConvertor, pElem, - iov_ptr, - pConvertor->partial_length, (size_t)(element_length - pConvertor->partial_length), - &conv_ptr ); - --count_desc; - if( 0 == count_desc ) { - conv_ptr = pConvertor->pBaseBuf + pStack->disp; - pos_desc++; /* advance to the next data */ - UPDATE_INTERNAL_COUNTERS( description, pos_desc, pElem, count_desc ); + /* Deal with all types of partial predefined datatype unpacking, including when + * unpacking a partial predefined element and when unpacking a part smaller than + * the blocklen. + */ + if (pElem->elem.common.flags & OPAL_DATATYPE_FLAG_DATA) { + if (0 != pConvertor->partial_length) { /* partial predefined element */ + assert( pElem->elem.common.flags & OPAL_DATATYPE_FLAG_DATA ); + opal_unpack_partial_predefined( pConvertor, pElem, &count_desc, + &iov_ptr, &conv_ptr, &iov_len_local ); + if (0 == count_desc) { /* the end of the vector ? */ + assert( 0 == pConvertor->partial_length ); + conv_ptr = pConvertor->pBaseBuf + pStack->disp; + pos_desc++; /* advance to the next data */ + UPDATE_INTERNAL_COUNTERS(description, pos_desc, pElem, count_desc); + goto next_vector; + } + if( 0 == iov_len_local ) + goto complete_loop; } - iov_ptr += missing_length; - iov_len_local -= missing_length; - pConvertor->partial_length = 0; /* nothing more inside */ - } - if( pElem->elem.common.flags & OPAL_DATATYPE_FLAG_DATA ) { - if( ((size_t)pElem->elem.count * pElem->elem.blocklen) != count_desc ) { + if (((size_t) pElem->elem.count * pElem->elem.blocklen) != count_desc) { /* we have a partial (less than blocklen) basic datatype */ int rc = UNPACK_PARTIAL_BLOCKLEN( pConvertor, pElem, count_desc, iov_ptr, conv_ptr, iov_len_local ); @@ -318,8 +336,9 @@ } } - while( 1 ) { - while( pElem->elem.common.flags & OPAL_DATATYPE_FLAG_DATA ) { + while (1) { + next_vector: + while (pElem->elem.common.flags & OPAL_DATATYPE_FLAG_DATA) { /* we have a basic datatype (working on full blocks) */ UNPACK_PREDEFINED_DATATYPE( pConvertor, pElem, count_desc, iov_ptr, conv_ptr, iov_len_local ); @@ -380,20 +399,13 @@ } complete_loop: assert( pElem->elem.common.type < OPAL_DATATYPE_MAX_PREDEFINED ); - if( 0 != iov_len_local ) { + if( (pElem->elem.common.flags & OPAL_DATATYPE_FLAG_DATA) && (0 != iov_len_local) ) { unsigned char* temp = conv_ptr; /* We have some partial data here. Let's copy it into the convertor * and keep it hot until the next round. */ assert( iov_len_local < opal_datatype_basicDatatypes[pElem->elem.common.type]->size ); - COMPUTE_CSUM( iov_ptr, iov_len_local, pConvertor ); - - opal_unpack_partial_datatype( pConvertor, pElem, - iov_ptr, 0, iov_len_local, - &temp ); - - pConvertor->partial_length = iov_len_local; - iov_len_local = 0; + opal_unpack_partial_predefined(pConvertor, pElem, &count_desc, &iov_ptr, &temp, &iov_len_local); } iov[iov_count].iov_len -= iov_len_local; /* update the amount of valid data */ @@ -402,7 +414,7 @@ *max_data = total_unpacked; pConvertor->bConverted += total_unpacked; /* update the already converted bytes */ *out_size = iov_count; - if( pConvertor->bConverted == pConvertor->remote_size ) { + if( pConvertor->bConverted == pConvertor->local_size ) { pConvertor->flags |= CONVERTOR_COMPLETED; return 1; } @@ -423,13 +435,91 @@ * to a contiguous output buffer with a predefined size. * return OPAL_SUCCESS if everything went OK and if there is still room before the complete * conversion of the data (need additional call with others input buffers ) - * 1 if everything went fine and the data was completly converted + * 1 if everything went fine and the data was completely converted * -1 something wrong occurs. */ -int32_t -opal_unpack_general_function( opal_convertor_t* pConvertor, - struct iovec* iov, uint32_t* out_size, - size_t* max_data ) +static inline void +unpack_predefined_heterogeneous(opal_convertor_t *CONVERTOR, + const dt_elem_desc_t *ELEM, size_t *COUNT, + unsigned char **memory, + unsigned char **packed, size_t *SPACE) +{ + const opal_convertor_master_t *master = (CONVERTOR)->master; + const ddt_elem_desc_t *_elem = &((ELEM)->elem); + size_t cando_count = *(COUNT), do_now_bytes; + size_t local_elem_size = opal_datatype_basicDatatypes[_elem->common.type]->size; + size_t remote_elem_size = master->remote_sizes[_elem->common.type]; + size_t blocklen_bytes = remote_elem_size; + unsigned char *_memory = (*memory) + _elem->disp; + unsigned char *_packed = *packed; + ptrdiff_t advance = 0; + + assert(0 == (cando_count % _elem->blocklen)); /* no partials here */ + assert(*(COUNT) <= ((size_t) _elem->count * _elem->blocklen)); + + if ((remote_elem_size * cando_count) > *(SPACE)) + cando_count = (*SPACE) / blocklen_bytes; + + /* preemptively update the number of COUNT we will return. */ + *(COUNT) -= cando_count; + + if (_elem->blocklen == 1) { + master->pFunctions[_elem->common.type](CONVERTOR, cando_count, + _packed, *SPACE, remote_elem_size, + _memory, *SPACE, _elem->extent, + &advance); + _memory += cando_count * _elem->extent; + _packed += cando_count * remote_elem_size; + goto update_and_return; + } + + if ((1 < _elem->count) && (_elem->blocklen <= cando_count)) { + blocklen_bytes = remote_elem_size * _elem->blocklen; + + do { /* Do as many full blocklen as possible */ + OPAL_DATATYPE_SAFEGUARD_POINTER(_memory, blocklen_bytes, (CONVERTOR)->pBaseBuf, + (CONVERTOR)->pDesc, (CONVERTOR)->count); + DO_DEBUG(opal_output(0, "pack 2. memcpy( %p, %p, %lu ) => space %lu\n", + (void *) _packed, (void *) _memory, (unsigned long) blocklen_bytes, + (unsigned long) (*(SPACE) - (_packed - *(packed))));); + master->pFunctions[_elem->common.type](CONVERTOR, _elem->blocklen, + _packed, *SPACE, remote_elem_size, + _memory, *SPACE, local_elem_size, + &advance); + _packed += blocklen_bytes; + _memory += _elem->extent; + cando_count -= _elem->blocklen; + } while (_elem->blocklen <= cando_count); + } + + /** + * As an epilog do anything left from the last blocklen. + */ + if (0 != cando_count) { + assert((cando_count < _elem->blocklen) + || ((1 == _elem->count) && (cando_count <= _elem->blocklen))); + do_now_bytes = cando_count * remote_elem_size; + OPAL_DATATYPE_SAFEGUARD_POINTER(_memory, do_now_bytes, (CONVERTOR)->pBaseBuf, + (CONVERTOR)->pDesc, (CONVERTOR)->count); + DO_DEBUG(opal_output(0, "pack 3. memcpy( %p, %p, %lu ) => space %lu [epilog]\n", + (void *) _packed, (void *) _memory, (unsigned long) do_now_bytes, + (unsigned long) (*(SPACE) - (_packed - *(packed))));); + master->pFunctions[_elem->common.type](CONVERTOR, cando_count, + _packed, *SPACE, remote_elem_size, + _memory, *SPACE, local_elem_size, + &advance); + _memory += cando_count * local_elem_size; + _packed += do_now_bytes; + } + +update_and_return: + *(memory) = _memory - _elem->disp; + *(SPACE) -= (_packed - *packed); + *(packed) = _packed; +} + +int32_t opal_unpack_general_function(opal_convertor_t *pConvertor, struct iovec *iov, + uint32_t *out_size, size_t *max_data) { dt_stack_t* pStack; /* pointer to the position on the stack */ uint32_t pos_desc; /* actual position in the description of the derived datatype */ @@ -443,10 +533,6 @@ uint32_t iov_count; size_t iov_len_local; - const opal_convertor_master_t* master = pConvertor->master; - ptrdiff_t advance; /* number of bytes that we should advance the buffer */ - size_t rc; - DO_DEBUG( opal_output( 0, "opal_convertor_general_unpack( %p, {%p, %lu}, %d )\n", (void*)pConvertor, (void*)iov[0].iov_base, (unsigned long)iov[0].iov_len, *out_size ); ); @@ -477,45 +563,34 @@ while( pElem->elem.common.flags & OPAL_DATATYPE_FLAG_DATA ) { /* now here we have a basic datatype */ type = description[pos_desc].elem.common.type; - OPAL_DATATYPE_SAFEGUARD_POINTER( conv_ptr + pElem->elem.disp, pData->size, pConvertor->pBaseBuf, - pData, pConvertor->count ); - DO_DEBUG( opal_output( 0, "unpack (%p, %ld) -> (%p:%ld, %" PRIsize_t ", %ld) type %s\n", - (void*)iov_ptr, iov_len_local, - (void*)pConvertor->pBaseBuf, conv_ptr + pElem->elem.disp - pConvertor->pBaseBuf, - count_desc, description[pos_desc].elem.extent, - opal_datatype_basicDatatypes[type]->name ); ); - rc = master->pFunctions[type]( pConvertor, count_desc, - iov_ptr, iov_len_local, opal_datatype_basicDatatypes[type]->size, - conv_ptr + pElem->elem.disp, - (pConvertor->pDesc->ub - pConvertor->pDesc->lb) * pConvertor->count, - description[pos_desc].elem.extent, &advance ); - iov_len_local -= advance; /* decrease the available space in the buffer */ - iov_ptr += advance; /* increase the pointer to the buffer */ - count_desc -= rc; /* compute leftovers */ - if( 0 == count_desc ) { /* completed */ + OPAL_DATATYPE_SAFEGUARD_POINTER(conv_ptr + pElem->elem.disp, pData->size, + pConvertor->pBaseBuf, pData, pConvertor->count); + DO_DEBUG(opal_output(0, + "unpack (%p, %ld) -> (%p:%ld, %" PRIsize_t ", %ld) type %s\n", + (void *) iov_ptr, iov_len_local, (void *) pConvertor->pBaseBuf, + conv_ptr + pElem->elem.disp - pConvertor->pBaseBuf, count_desc, + description[pos_desc].elem.extent, + opal_datatype_basicDatatypes[type]->name);); + unpack_predefined_heterogeneous(pConvertor, pElem, &count_desc, &conv_ptr, &iov_ptr, + &iov_len_local); + if (0 == count_desc) { /* completed */ conv_ptr = pConvertor->pBaseBuf + pStack->disp; pos_desc++; /* advance to the next data */ UPDATE_INTERNAL_COUNTERS( description, pos_desc, pElem, count_desc ); if( 0 == iov_len_local ) goto complete_loop; /* escape if we're done */ continue; } - conv_ptr += rc * description[pos_desc].elem.extent; - assert( pElem->elem.common.type < OPAL_DATATYPE_MAX_PREDEFINED ); - assert( 0 == iov_len_local ); - if( 0 != iov_len_local ) { - unsigned char* temp = conv_ptr; + assert(pElem->elem.common.type < OPAL_DATATYPE_MAX_PREDEFINED); + assert(0 == iov_len_local); + if (0 != iov_len_local) { + unsigned char *temp = conv_ptr; /* We have some partial data here. Let's copy it into the convertor * and keep it hot until the next round. */ - assert( iov_len_local < opal_datatype_basicDatatypes[pElem->elem.common.type]->size ); - COMPUTE_CSUM( iov_ptr, iov_len_local, pConvertor ); - - opal_unpack_partial_datatype( pConvertor, pElem, - iov_ptr, 0, iov_len_local, - &temp ); - - pConvertor->partial_length = iov_len_local; - iov_len_local = 0; + assert(iov_len_local < opal_datatype_basicDatatypes[pElem->elem.common.type]->size); + opal_unpack_partial_predefined(pConvertor, pElem, &count_desc, &iov_ptr, + &temp, &iov_len_local); + assert( 0 == iov_len_local ); } goto complete_loop; } @@ -564,7 +639,9 @@ *max_data = total_unpacked; pConvertor->bConverted += total_unpacked; /* update the already converted bytes */ *out_size = iov_count; - if( pConvertor->bConverted == pConvertor->remote_size ) { + size_t expected_packed_size; + opal_convertor_get_packed_size(pConvertor, &expected_packed_size); + if (pConvertor->bConverted == expected_packed_size) { pConvertor->flags |= CONVERTOR_COMPLETED; return 1; } diff -Nru openmpi-4.0.3/opal/datatype/opal_datatype_unpack.h openmpi-4.1.4/opal/datatype/opal_datatype_unpack.h --- openmpi-4.0.3/opal/datatype/opal_datatype_unpack.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/datatype/opal_datatype_unpack.h 2022-05-29 09:51:40.000000000 +0000 @@ -27,9 +27,10 @@ #endif /** - * This function deals only with partial elements. The COUNT points however to the whole leftover count, - * but this function is only expected to operate on an amount less than blength, that would allow the rest - * of the pack process to handle only entire blength blocks (plus the left over). + * This function deals only with partial elements. The COUNT points however to + * the whole leftover count, but this function is only expected to operate on + * an amount less than blength, that would allow the rest of the pack process + * to handle only entire blength blocks (plus the left over). * * Return 1 if we are now aligned on a block, 0 otherwise. */ @@ -49,6 +50,8 @@ assert( *(COUNT) <= ((size_t)(_elem->count * _elem->blocklen)) ); + if( (*SPACE) < do_now_bytes ) /* Can we do anything ? */ + return 0; /** * First check if we already did something on this element ? The COUNT is the number * of remaining predefined types in the current elem, not how many predefined types @@ -67,8 +70,9 @@ OPAL_DATATYPE_SAFEGUARD_POINTER( _memory, do_now_bytes, (CONVERTOR)->pBaseBuf, (CONVERTOR)->pDesc, (CONVERTOR)->count ); - DO_DEBUG( opal_output( 0, "unpack memcpy( %p, %p, %lu ) => space %lu [prolog]\n", - (void*)_memory, (void*)_packed, (unsigned long)do_now_bytes, (unsigned long)(*(SPACE)) ); ); + DO_DEBUG( opal_output( 0, "unpack memcpy( %p [%ld], %p, %lu ) => space %lu [prolog]\n", + (void*)_memory, _memory - CONVERTOR->pBaseBuf, + (void*)_packed, (unsigned long)do_now_bytes, (unsigned long)(*(SPACE)) ); ); MEMCPY_CSUM( _memory, _packed, do_now_bytes, (CONVERTOR) ); *(memory) += (ptrdiff_t)do_now_bytes; if( do_now == left_in_block ) /* compensate if completed a blocklen */ @@ -100,15 +104,17 @@ if( (blocklen_bytes * cando_count) > *(SPACE) ) cando_count = (*SPACE) / blocklen_bytes; - /* premptively update the number of COUNT we will return. */ + /* preemptively update the number of COUNT we will return. */ *(COUNT) -= cando_count; - if( 1 == _elem->blocklen ) { /* Do as many full blocklen as possible */ - for(; cando_count > 0; cando_count--) { + if (1 == _elem->blocklen) { /* Do as many full blocklen as possible */ + for (; cando_count > 0; cando_count--) { OPAL_DATATYPE_SAFEGUARD_POINTER( _memory, blocklen_bytes, (CONVERTOR)->pBaseBuf, (CONVERTOR)->pDesc, (CONVERTOR)->count ); - DO_DEBUG( opal_output( 0, "unpack memcpy( %p, %p, %lu ) => space %lu [blen = 1]\n", - (void*)_memory, (void*)_packed, (unsigned long)blocklen_bytes, (unsigned long)(*(SPACE) - (_packed - *(packed))) ); ); + DO_DEBUG( opal_output( 0, "unpack memcpy( %p [%ld], %p [%ld], %lu ) => space %lu [blen = 1]\n", + (void*)_memory, _memory - CONVERTOR->pBaseBuf, + (void*)_packed, _packed - *packed, + (unsigned long)blocklen_bytes, (unsigned long)(*(SPACE) - (_packed - *(packed))) ); ); MEMCPY_CSUM( _memory, _packed, blocklen_bytes, (CONVERTOR) ); _packed += blocklen_bytes; _memory += _elem->extent; @@ -122,8 +128,10 @@ do { /* Do as many full blocklen as possible */ OPAL_DATATYPE_SAFEGUARD_POINTER( _memory, blocklen_bytes, (CONVERTOR)->pBaseBuf, (CONVERTOR)->pDesc, (CONVERTOR)->count ); - DO_DEBUG( opal_output( 0, "unpack 2. memcpy( %p, %p, %lu ) => space %lu\n", - (void*)_memory, (void*)_packed, (unsigned long)blocklen_bytes, (unsigned long)(*(SPACE) - (_packed - *(packed))) ); ); + DO_DEBUG( opal_output( 0, "unpack 2. memcpy( %p [%ld], %p [%ld], %lu ) => space %lu\n", + (void*)_memory, _memory - CONVERTOR->pBaseBuf, + (void*)_packed, _packed - *packed, + (unsigned long)blocklen_bytes, (unsigned long)(*(SPACE) - (_packed - *(packed))) ); ); MEMCPY_CSUM( _memory, _packed, blocklen_bytes, (CONVERTOR) ); _packed += blocklen_bytes; _memory += _elem->extent; @@ -140,8 +148,10 @@ do_now_bytes = cando_count * opal_datatype_basicDatatypes[_elem->common.type]->size; OPAL_DATATYPE_SAFEGUARD_POINTER( _memory, do_now_bytes, (CONVERTOR)->pBaseBuf, (CONVERTOR)->pDesc, (CONVERTOR)->count ); - DO_DEBUG( opal_output( 0, "unpack 3. memcpy( %p, %p, %lu ) => space %lu [epilog]\n", - (void*)_memory, (void*)_packed, (unsigned long)do_now_bytes, (unsigned long)(*(SPACE) - (_packed - *(packed))) ); ); + DO_DEBUG( opal_output( 0, "unpack 3. memcpy( %p [%ld], %p [%ld], %lu ) => space %lu [epilog]\n", + (void*)_memory, _memory - CONVERTOR->pBaseBuf, + (void*)_packed, _packed - *packed, + (unsigned long)do_now_bytes, (unsigned long)(*(SPACE) - (_packed - *(packed))) ); ); MEMCPY_CSUM( _memory, _packed, do_now_bytes, (CONVERTOR) ); _memory += do_now_bytes; _packed += do_now_bytes; diff -Nru openmpi-4.0.3/opal/etc/Makefile.in openmpi-4.1.4/opal/etc/Makefile.in --- openmpi-4.0.3/opal/etc/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/etc/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,6 +116,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -123,6 +125,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -146,6 +149,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -248,6 +252,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -255,6 +260,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -335,6 +341,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -357,9 +364,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -369,6 +380,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -389,6 +401,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -562,6 +575,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1382,6 +1398,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1414,9 +1434,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1437,6 +1466,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1521,9 +1551,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1584,6 +1611,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1597,6 +1627,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/include/Makefile.in openmpi-4.1.4/opal/include/Makefile.in --- openmpi-4.0.3/opal/include/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/include/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -330,6 +330,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -337,6 +339,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -360,6 +363,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -462,6 +466,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -469,6 +474,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -549,6 +555,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -571,9 +578,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -583,6 +594,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -603,6 +615,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -848,6 +861,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1668,6 +1684,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1700,9 +1720,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1723,6 +1752,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1807,9 +1837,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1870,6 +1897,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1883,6 +1913,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/include/opal/sys/gcc_builtin/atomic.h openmpi-4.1.4/opal/include/opal/sys/gcc_builtin/atomic.h --- openmpi-4.0.3/opal/include/opal/sys/gcc_builtin/atomic.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/include/opal/sys/gcc_builtin/atomic.h 2022-05-29 09:51:40.000000000 +0000 @@ -13,8 +13,8 @@ * Copyright (c) 2011 Sandia National Laboratories. All rights reserved. * Copyright (c) 2014-2017 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2017 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2016-2021 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2018 Triad National Security, LLC. All rights * reserved. * $COPYRIGHT$ @@ -52,6 +52,14 @@ #define OPAL_HAVE_ATOMIC_SWAP_64 1 +#if (OPAL_ASSEMBLY_ARCH == OPAL_X86_64) && defined (__GNUC__) && !defined(__llvm) && (__GNUC__ < 6) + /* work around a bug in older gcc versions where ACQUIRE seems to get + * treated as a no-op instead */ +#define OPAL_BUSTED_ATOMIC_MB 1 +#else +#define OPAL_BUSTED_ATOMIC_MB 0 +#endif + static inline void opal_atomic_mb(void) { __atomic_thread_fence (__ATOMIC_SEQ_CST); @@ -59,11 +67,8 @@ static inline void opal_atomic_rmb(void) { -#if OPAL_ASSEMBLY_ARCH == OPAL_X86_64 - /* work around a bug in older gcc versions where ACQUIRE seems to get - * treated as a no-op instead of being equivalent to - * __asm__ __volatile__("": : :"memory") */ - __atomic_thread_fence (__ATOMIC_SEQ_CST); +#if OPAL_BUSTED_ATOMIC_MB + __asm__ __volatile__("" : : : "memory"); #else __atomic_thread_fence (__ATOMIC_ACQUIRE); #endif diff -Nru openmpi-4.0.3/opal/include/opal/sys/powerpc/atomic.h openmpi-4.1.4/opal/include/opal/sys/powerpc/atomic.h --- openmpi-4.0.3/opal/include/opal/sys/powerpc/atomic.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/include/opal/sys/powerpc/atomic.h 2022-05-29 09:51:40.000000000 +0000 @@ -28,7 +28,7 @@ */ #define MB() __asm__ __volatile__ ("sync" : : : "memory") -#define RMB() __asm__ __volatile__ ("lwsync" : : : "memory") +#define RMB() __asm__ __volatile__ ("isync" : : : "memory") #define WMB() __asm__ __volatile__ ("lwsync" : : : "memory") #define ISYNC() __asm__ __volatile__ ("isync" : : : "memory") @@ -98,27 +98,7 @@ ISYNC(); } -#elif OPAL_XLC_INLINE_ASSEMBLY /* end OPAL_GCC_INLINE_ASSEMBLY */ - -/* Yeah, I don't know who thought this was a reasonable syntax for - * inline assembly. Do these because they are used so often and they - * are fairly simple (aka: there is a tech pub on IBM's web site - * containing the right hex for the instructions). - */ - -#undef OPAL_HAVE_INLINE_ATOMIC_MEM_BARRIER -#define OPAL_HAVE_INLINE_ATOMIC_MEM_BARRIER 0 - -#pragma mc_func opal_atomic_mb { "7c0004ac" } /* sync */ -#pragma reg_killed_by opal_atomic_mb /* none */ - -#pragma mc_func opal_atomic_rmb { "7c2004ac" } /* lwsync */ -#pragma reg_killed_by opal_atomic_rmb /* none */ - -#pragma mc_func opal_atomic_wmb { "7c2004ac" } /* lwsync */ -#pragma reg_killed_by opal_atomic_wmb /* none */ - -#endif +#endif /* end OPAL_GCC_INLINE_ASSEMBLY */ /********************************************************************** * @@ -296,7 +276,7 @@ #define opal_atomic_sc_64(addr, value, ret) \ do { \ volatile int64_t *_addr = (addr); \ - int64_t _foo, _newval = (int64_t) value; \ + int64_t _newval = (int64_t) value; \ int32_t _ret; \ \ __asm__ __volatile__ (" stdcx. %2, 0, %1 \n\t" \ diff -Nru openmpi-4.0.3/opal/include/opal/sys/x86_64/atomic.h openmpi-4.1.4/opal/include/opal/sys/x86_64/atomic.h --- openmpi-4.0.3/opal/include/opal/sys/x86_64/atomic.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/include/opal/sys/x86_64/atomic.h 2022-05-29 09:51:40.000000000 +0000 @@ -53,7 +53,7 @@ static inline void opal_atomic_mb(void) { - MB(); + __asm__ __volatile__("mfence": : :"memory"); } diff -Nru openmpi-4.0.3/opal/include/opal_config.h.in openmpi-4.1.4/opal/include/opal_config.h.in --- openmpi-4.0.3/opal/include/opal_config.h.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/include/opal_config.h.in 2022-05-29 09:51:40.000000000 +0000 @@ -221,6 +221,10 @@ `nvmlDeviceGetMaxPcieLinkGeneration', and to 0 if you don't. */ #undef HAVE_DECL_NVMLDEVICEGETMAXPCIELINKGENERATION +/* Define to 1 if you have the declaration of `open_memstream', and to 0 if + you don't. */ +#undef HAVE_DECL_OPEN_MEMSTREAM + /* Define to 1 if you have the declaration of `PF_INET6', and to 0 if you don't. */ #undef HAVE_DECL_PF_INET6 @@ -229,6 +233,10 @@ don't. */ #undef HAVE_DECL_PF_UNSPEC +/* Define to 1 if you have the declaration of `PMIX_PACKAGE_RANK', and to 0 if + you don't. */ +#undef HAVE_DECL_PMIX_PACKAGE_RANK + /* Define to 1 if you have the declaration of `pthread_getaffinity_np', and to 0 if you don't. */ #undef HAVE_DECL_PTHREAD_GETAFFINITY_NP @@ -292,6 +300,10 @@ you don't. */ #undef HAVE_DECL_UCM_TEST_EVENTS +/* Define to 1 if you have the declaration of `ucm_test_external_events', and + to 0 if you don't. */ +#undef HAVE_DECL_UCM_TEST_EXTERNAL_EVENTS + /* Define to 1 if you have the declaration of `UCP_ATOMIC_FETCH_OP_FAND', and to 0 if you don't. */ #undef HAVE_DECL_UCP_ATOMIC_FETCH_OP_FAND @@ -304,6 +316,10 @@ to 0 if you don't. */ #undef HAVE_DECL_UCP_ATOMIC_FETCH_OP_FXOR +/* Define to 1 if you have the declaration of `ucp_atomic_op_nbx', and to 0 if + you don't. */ +#undef HAVE_DECL_UCP_ATOMIC_OP_NBX + /* Define to 1 if you have the declaration of `UCP_ATOMIC_POST_OP_AND', and to 0 if you don't. */ #undef HAVE_DECL_UCP_ATOMIC_POST_OP_AND @@ -316,14 +332,30 @@ 0 if you don't. */ #undef HAVE_DECL_UCP_ATOMIC_POST_OP_XOR +/* Define to 1 if you have the declaration of `UCP_ATTR_FIELD_MEMORY_TYPES', + and to 0 if you don't. */ +#undef HAVE_DECL_UCP_ATTR_FIELD_MEMORY_TYPES + /* Define to 1 if you have the declaration of `ucp_ep_flush_nb', and to 0 if you don't. */ #undef HAVE_DECL_UCP_EP_FLUSH_NB +/* Define to 1 if you have the declaration of `ucp_ep_flush_nbx', and to 0 if + you don't. */ +#undef HAVE_DECL_UCP_EP_FLUSH_NBX + /* Define to 1 if you have the declaration of `ucp_get_nb', and to 0 if you don't. */ #undef HAVE_DECL_UCP_GET_NB +/* Define to 1 if you have the declaration of `ucp_get_nbx', and to 0 if you + don't. */ +#undef HAVE_DECL_UCP_GET_NBX + +/* Define to 1 if you have the declaration of `UCP_OP_ATTR_FLAG_MULTI_SEND', + and to 0 if you don't. */ +#undef HAVE_DECL_UCP_OP_ATTR_FLAG_MULTI_SEND + /* Define to 1 if you have the declaration of `UCP_PARAM_FIELD_ESTIMATED_NUM_PPN', and to 0 if you don't. */ #undef HAVE_DECL_UCP_PARAM_FIELD_ESTIMATED_NUM_PPN @@ -332,18 +364,38 @@ don't. */ #undef HAVE_DECL_UCP_PUT_NB +/* Define to 1 if you have the declaration of `ucp_put_nbx', and to 0 if you + don't. */ +#undef HAVE_DECL_UCP_PUT_NBX + /* Define to 1 if you have the declaration of `ucp_request_check_status', and to 0 if you don't. */ #undef HAVE_DECL_UCP_REQUEST_CHECK_STATUS +/* Define to 1 if you have the declaration of `ucp_tag_recv_nbx', and to 0 if + you don't. */ +#undef HAVE_DECL_UCP_TAG_RECV_NBX + /* Define to 1 if you have the declaration of `ucp_tag_send_nbr', and to 0 if you don't. */ #undef HAVE_DECL_UCP_TAG_SEND_NBR +/* Define to 1 if you have the declaration of `ucp_tag_send_nbx', and to 0 if + you don't. */ +#undef HAVE_DECL_UCP_TAG_SEND_NBX + +/* Define to 1 if you have the declaration of `ucp_tag_send_sync_nbx', and to + 0 if you don't. */ +#undef HAVE_DECL_UCP_TAG_SEND_SYNC_NBX + /* Define to 1 if you have the declaration of `UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS', and to 0 if you don't. */ #undef HAVE_DECL_UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS +/* Define to 1 if you have the declaration of + `UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK', and to 0 if you don't. */ +#undef HAVE_DECL_UCP_WORKER_FLAG_IGNORE_REQUEST_LEAK + /* Define to 1 if you have the declaration of `ucp_worker_flush_nb', and to 0 if you don't. */ #undef HAVE_DECL_UCP_WORKER_FLUSH_NB @@ -396,6 +448,10 @@ don't. */ #undef HAVE_DECL___FUNC__ +/* Define to 1 if you have the declaration of `__mmap', and to 0 if you don't. + */ +#undef HAVE_DECL___MMAP + /* Define to 1 if you have the declaration of `__syscall', and to 0 if you don't. */ #undef HAVE_DECL___SYSCALL @@ -475,6 +531,9 @@ /* Define to 1 if you have the `GNI_GetJobResInfo' function. */ #undef HAVE_GNI_GETJOBRESINFO +/* Define to 1 if you have the header file. */ +#undef HAVE_GPFS_H + /* Define to 1 if the system has the type `GROUP_AFFINITY'. */ #undef HAVE_GROUP_AFFINITY @@ -523,6 +582,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_IFADDRS_H +/* Define to 1 if you have the header file. */ +#undef HAVE_IME_NATIVE_H + /* Define to 1 if you have the header file. */ #undef HAVE_INFINIBAND_DRIVER_H @@ -565,8 +627,8 @@ /* Define to 1 if you have the header file. */ #undef HAVE_KSTAT_H -/* Define to 1 if you have the `event' library (-levent). */ -#undef HAVE_LIBEVENT +/* Define to 1 if you have the `event_core' library (-levent_core). */ +#undef HAVE_LIBEVENT_CORE /* Define to 1 if you have the `event_pthreads' library (-levent_pthreads). */ #undef HAVE_LIBEVENT_PTHREADS @@ -752,6 +814,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_PSM2_H +/* have PSM2_LIB_REFCOUNT_CAP in psm2.h */ +#undef HAVE_PSM2_LIB_REFCOUNT_CAP + /* Define to 1 if you have the header file. */ #undef HAVE_PSM_H @@ -791,6 +856,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_RDMA_FABRIC_H +/* Define to 1 if you have the header file. */ +#undef HAVE_RDMA_FI_EXT_H + /* Define to 1 if you have the header file. */ #undef HAVE_RDMA_RDMA_CMA_H @@ -902,6 +970,9 @@ /* Define to 1 if `speed_hi' is a member of `struct ethtool_cmd'. */ #undef HAVE_STRUCT_ETHTOOL_CMD_SPEED_HI +/* Define to 1 if the system has the type `struct fi_ops_mem_monitor'. */ +#undef HAVE_STRUCT_FI_OPS_MEM_MONITOR + /* Define to 1 if `transport_type' is a member of `struct ibv_device'. */ #undef HAVE_STRUCT_IBV_DEVICE_TRANSPORT_TYPE @@ -1079,12 +1150,24 @@ /* Define to 1 if you have the header file. */ #undef HAVE_TM_TREE_H +/* Define to 1 if you have the header file. */ +#undef HAVE_UCC_API_UCC_H + +/* Define to 1 if you have the `ucc_comm_free' function. */ +#undef HAVE_UCC_COMM_FREE + /* Define to 1 if you have the header file. */ #undef HAVE_UCONTEXT_H /* Define to 1 if you have the header file. */ #undef HAVE_UCP_API_UCP_H +/* have memory types attribute */ +#undef HAVE_UCP_ATTR_MEMORY_TYPES + +/* Define to 1 if the system has the type `ucp_request_param_t'. */ +#undef HAVE_UCP_REQUEST_PARAM_T + /* have ucp_tag_send_nbr() */ #undef HAVE_UCP_TAG_SEND_NBR @@ -1185,6 +1268,9 @@ /* Define to 1 if you have the `__malloc_initialize_hook' function. */ #undef HAVE___MALLOC_INITIALIZE_HOOK +/* Define to 1 if you have the `__mmap' function. */ +#undef HAVE___MMAP + /* Define to 1 if you have the `__munmap' function. */ #undef HAVE___MUNMAP @@ -1903,6 +1989,21 @@ /* Major release number of Open MPI */ #undef OMPI_MAJOR_VERSION +/* AVX supported in the current build */ +#undef OMPI_MCA_OP_HAVE_AVX + +/* AVX2 supported in the current build */ +#undef OMPI_MCA_OP_HAVE_AVX2 + +/* AVX512 supported in the current build */ +#undef OMPI_MCA_OP_HAVE_AVX512 + +/* SSE3 supported in the current build */ +#undef OMPI_MCA_OP_HAVE_SSE3 + +/* SSE4.1 supported in the current build */ +#undef OMPI_MCA_OP_HAVE_SSE41 + /* Minor release number of Open MPI */ #undef OMPI_MINOR_VERSION @@ -2497,6 +2598,9 @@ /* whether shmem_posix is found and available */ #undef OPAL_HAVE_SHMEM_POSIX +/* whether shm_open_rt is found and available */ +#undef OPAL_HAVE_SHM_OPEN_RT + /* whether socket is found and available */ #undef OPAL_HAVE_SOCKET @@ -2583,6 +2687,9 @@ /* Minor release number of Open Portable Access Layer */ #undef OPAL_MINOR_VERSION +/* check if pci data is available in ofi */ +#undef OPAL_OFI_PCI_DATA_AVAILABLE + /* Add padding bytes to the openib BTL control header */ #undef OPAL_OPENIB_PAD_HDR diff -Nru openmpi-4.0.3/opal/Makefile.in openmpi-4.1.4/opal/Makefile.in --- openmpi-4.0.3/opal/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -286,6 +286,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -293,6 +295,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -316,6 +319,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -418,6 +422,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -425,6 +430,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -505,6 +511,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -527,9 +534,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -539,6 +550,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -559,6 +571,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -894,6 +907,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1714,6 +1730,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1746,9 +1766,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1769,6 +1798,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1853,9 +1883,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1916,6 +1943,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1929,6 +1959,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/allocator/basic/Makefile.in openmpi-4.1.4/opal/mca/allocator/basic/Makefile.in --- openmpi-4.0.3/opal/mca/allocator/basic/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/allocator/basic/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -660,6 +673,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1480,6 +1496,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1512,9 +1532,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1535,6 +1564,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1619,9 +1649,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1682,6 +1709,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1695,6 +1725,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/allocator/bucket/Makefile.in openmpi-4.1.4/opal/mca/allocator/bucket/Makefile.in --- openmpi-4.0.3/opal/mca/allocator/bucket/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/allocator/bucket/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -661,6 +674,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1481,6 +1497,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1513,9 +1533,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1536,6 +1565,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1620,9 +1650,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1683,6 +1710,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1696,6 +1726,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/allocator/Makefile.in openmpi-4.1.4/opal/mca/allocator/Makefile.in --- openmpi-4.0.3/opal/mca/allocator/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/allocator/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -136,6 +136,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -143,6 +145,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -166,6 +169,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -268,6 +272,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -275,6 +280,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -355,6 +361,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -377,9 +384,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -389,6 +400,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -409,6 +421,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -665,6 +678,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1485,6 +1501,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1517,9 +1537,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1540,6 +1569,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1624,9 +1654,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1687,6 +1714,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1700,6 +1730,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/backtrace/execinfo/Makefile.in openmpi-4.1.4/opal/mca/backtrace/execinfo/Makefile.in --- openmpi-4.0.3/opal/mca/backtrace/execinfo/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/backtrace/execinfo/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,6 +116,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -123,6 +125,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -146,6 +149,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -248,6 +252,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -255,6 +260,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -335,6 +341,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -357,9 +364,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -369,6 +380,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -389,6 +401,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -612,6 +625,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1432,6 +1448,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1464,9 +1484,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1487,6 +1516,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1571,9 +1601,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1634,6 +1661,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1647,6 +1677,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/backtrace/Makefile.in openmpi-4.1.4/opal/mca/backtrace/Makefile.in --- openmpi-4.0.3/opal/mca/backtrace/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/backtrace/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -136,6 +136,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -143,6 +145,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -166,6 +169,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -268,6 +272,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -275,6 +280,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -355,6 +361,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -377,9 +384,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -389,6 +400,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -409,6 +421,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -665,6 +678,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1485,6 +1501,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1517,9 +1537,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1540,6 +1569,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1624,9 +1654,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1687,6 +1714,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1700,6 +1730,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/backtrace/none/Makefile.in openmpi-4.1.4/opal/mca/backtrace/none/Makefile.in --- openmpi-4.0.3/opal/mca/backtrace/none/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/backtrace/none/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,6 +116,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -123,6 +125,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -146,6 +149,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -248,6 +252,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -255,6 +260,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -335,6 +341,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -357,9 +364,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -369,6 +380,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -389,6 +401,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -612,6 +625,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1432,6 +1448,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1464,9 +1484,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1487,6 +1516,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1571,9 +1601,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1634,6 +1661,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1647,6 +1677,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/backtrace/printstack/Makefile.in openmpi-4.1.4/opal/mca/backtrace/printstack/Makefile.in --- openmpi-4.0.3/opal/mca/backtrace/printstack/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/backtrace/printstack/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,6 +116,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -123,6 +125,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -146,6 +149,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -248,6 +252,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -255,6 +260,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -335,6 +341,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -357,9 +364,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -369,6 +380,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -389,6 +401,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -612,6 +625,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1432,6 +1448,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1464,9 +1484,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1487,6 +1516,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1571,9 +1601,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1634,6 +1661,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1647,6 +1677,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/base/Makefile.in openmpi-4.1.4/opal/mca/base/Makefile.in --- openmpi-4.0.3/opal/mca/base/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/base/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -122,6 +122,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -129,6 +131,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -152,6 +155,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -254,6 +258,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -261,6 +266,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -341,6 +347,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -363,9 +370,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -375,6 +386,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -395,6 +407,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -659,6 +672,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1479,6 +1495,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1511,9 +1531,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1534,6 +1563,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1618,9 +1648,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1681,6 +1708,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1694,6 +1724,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/btl/Makefile.in openmpi-4.1.4/opal/mca/btl/Makefile.in --- openmpi-4.0.3/opal/mca/btl/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -137,6 +137,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -144,6 +146,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -167,6 +170,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -269,6 +273,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -276,6 +281,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -356,6 +362,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -378,9 +385,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -390,6 +401,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -410,6 +422,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -668,6 +681,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1488,6 +1504,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1520,9 +1540,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1543,6 +1572,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1627,9 +1657,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1690,6 +1717,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1703,6 +1733,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_atomics.c openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_atomics.c --- openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_atomics.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_atomics.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,199 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2014-2018 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2018 Intel, Inc, All rights reserved + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include +#include "btl_ofi_rdma.h" + +static inline int to_fi_op(mca_btl_base_atomic_op_t op) +{ + switch (op) { + case MCA_BTL_ATOMIC_ADD: + return FI_SUM; + case MCA_BTL_ATOMIC_SWAP: + return FI_ATOMIC_WRITE; + default: + BTL_ERROR(("Unknown or unsupported atomic op.")); + MCA_BTL_OFI_ABORT(); + + /* just to squash the warning */ + return OPAL_ERROR; + } +} + +int mca_btl_ofi_afop (struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *endpoint, + void *local_address, uint64_t remote_address, mca_btl_base_registration_handle_t *local_handle, + mca_btl_base_registration_handle_t *remote_handle, mca_btl_base_atomic_op_t op, + uint64_t operand, int flags, int order, mca_btl_base_rdma_completion_fn_t cbfunc, + void *cbcontext, void *cbdata) +{ + int rc; + int fi_datatype = FI_UINT64; + int fi_op; + + mca_btl_ofi_module_t *ofi_btl = (mca_btl_ofi_module_t *) btl; + mca_btl_ofi_endpoint_t *btl_endpoint = (mca_btl_ofi_endpoint_t*) endpoint; + mca_btl_ofi_rdma_completion_t *comp = NULL; + mca_btl_ofi_context_t *ofi_context; + + ofi_context = get_ofi_context(ofi_btl); + + if (flags & MCA_BTL_ATOMIC_FLAG_32BIT) { + fi_datatype = FI_UINT32; + } + + fi_op = to_fi_op(op); + + comp = mca_btl_ofi_rdma_completion_alloc(btl, endpoint, + ofi_context, + local_address, + local_handle, + cbfunc, cbcontext, cbdata, + MCA_BTL_OFI_TYPE_AFOP); + + /* copy the operand because it might get freed from upper layer */ + comp->operand = (uint64_t) operand; + + remote_address = (remote_address - (uint64_t) remote_handle->base_addr); + + rc = fi_fetch_atomic(ofi_context->tx_ctx, + (void*) &comp->operand, 1, NULL, /* operand */ + local_address, local_handle->desc, /* results */ + btl_endpoint->peer_addr, /* remote addr */ + remote_address, remote_handle->rkey, /* remote buffer */ + fi_datatype, fi_op, &comp->comp_ctx); + + if (rc == -FI_EAGAIN) { + opal_free_list_return(comp->base.my_list, (opal_free_list_item_t*) comp); + return OPAL_ERR_OUT_OF_RESOURCE; + } else if (rc < 0) { + opal_free_list_return(comp->base.my_list, (opal_free_list_item_t*) comp); + BTL_ERROR(("fi_fetch_atomic failed with rc=%d (%s)", rc, fi_strerror(-rc))); + MCA_BTL_OFI_ABORT(); + } + + MCA_BTL_OFI_NUM_RDMA_INC(ofi_btl); + + return OPAL_SUCCESS; +} + +int mca_btl_ofi_aop (struct mca_btl_base_module_t *btl, mca_btl_base_endpoint_t *endpoint, + uint64_t remote_address, mca_btl_base_registration_handle_t *remote_handle, + mca_btl_base_atomic_op_t op, uint64_t operand, int flags, int order, + mca_btl_base_rdma_completion_fn_t cbfunc, void *cbcontext, void *cbdata) +{ + int rc; + int fi_datatype = FI_UINT64; + int fi_op; + + mca_btl_ofi_module_t *ofi_btl = (mca_btl_ofi_module_t *) btl; + mca_btl_ofi_endpoint_t *btl_endpoint = (mca_btl_ofi_endpoint_t*) endpoint; + mca_btl_ofi_rdma_completion_t *comp = NULL; + mca_btl_ofi_context_t *ofi_context; + + ofi_context = get_ofi_context(ofi_btl); + + if (flags & MCA_BTL_ATOMIC_FLAG_32BIT) { + fi_datatype = FI_UINT32; + } + + fi_op = to_fi_op(op); + + comp = mca_btl_ofi_rdma_completion_alloc(btl, endpoint, + ofi_context, + NULL, + NULL, + cbfunc, cbcontext, cbdata, + MCA_BTL_OFI_TYPE_AOP); + + /* copy the operand because it might get freed from upper layer */ + comp->operand = (uint64_t) operand; + + remote_address = (remote_address - (uint64_t) remote_handle->base_addr); + + rc = fi_atomic(ofi_context->tx_ctx, + (void*) &comp->operand, 1, NULL, /* operand */ + btl_endpoint->peer_addr, /* remote addr */ + remote_address, remote_handle->rkey, /* remote buffer */ + fi_datatype, fi_op, &comp->comp_ctx); + + if (rc == -FI_EAGAIN) { + opal_free_list_return(comp->base.my_list, (opal_free_list_item_t*) comp); + return OPAL_ERR_OUT_OF_RESOURCE; + } else if (rc < 0) { + opal_free_list_return(comp->base.my_list, (opal_free_list_item_t*) comp); + BTL_ERROR(("fi_atomic failed with rc=%d (%s)", rc, fi_strerror(-rc))); + MCA_BTL_OFI_ABORT(); + } + + MCA_BTL_OFI_NUM_RDMA_INC(ofi_btl); + + return OPAL_SUCCESS; +} + +int mca_btl_ofi_acswap (struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *endpoint, + void *local_address, uint64_t remote_address, mca_btl_base_registration_handle_t *local_handle, + mca_btl_base_registration_handle_t *remote_handle, uint64_t compare, uint64_t value, int flags, + int order, mca_btl_base_rdma_completion_fn_t cbfunc, void *cbcontext, void *cbdata) +{ + int rc; + int fi_datatype = FI_UINT64; + + mca_btl_ofi_rdma_completion_t *comp = NULL; + + mca_btl_ofi_module_t *ofi_btl = (mca_btl_ofi_module_t *) btl; + mca_btl_ofi_endpoint_t *btl_endpoint = (mca_btl_ofi_endpoint_t*) endpoint; + mca_btl_ofi_context_t *ofi_context; + + ofi_context = get_ofi_context(ofi_btl); + + if (flags & MCA_BTL_ATOMIC_FLAG_32BIT) { + fi_datatype = FI_UINT32; + } + + comp = mca_btl_ofi_rdma_completion_alloc(btl, endpoint, + ofi_context, + local_address, + local_handle, + cbfunc, cbcontext, cbdata, + MCA_BTL_OFI_TYPE_CSWAP); + + /* copy the operand because it might get freed from upper layer */ + comp->operand = (uint64_t) value; + comp->compare = (uint64_t) compare; + + remote_address = (remote_address - (uint64_t) remote_handle->base_addr); + + /* perform atomic */ + rc = fi_compare_atomic(ofi_context->tx_ctx, + (void*) &comp->operand, 1, NULL, + (void*) &comp->compare, NULL, + local_address, local_handle->desc, + btl_endpoint->peer_addr, + remote_address, remote_handle->rkey, + fi_datatype, + FI_CSWAP, + &comp->comp_ctx); + + if (rc == -FI_EAGAIN) { + opal_free_list_return(comp->base.my_list, (opal_free_list_item_t*) comp); + return OPAL_ERR_OUT_OF_RESOURCE; + } else if (rc < 0) { + opal_free_list_return(comp->base.my_list, (opal_free_list_item_t*) comp); + BTL_ERROR(("fi_compare_atomic failed with rc=%d (%s)", rc, fi_strerror(-rc))); + MCA_BTL_OFI_ABORT(); + } + + MCA_BTL_OFI_NUM_RDMA_INC(ofi_btl); + + return OPAL_SUCCESS; +} diff -Nru openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_component.c openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_component.c --- openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_component.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,767 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2005 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2014-2018 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2018 Intel, Inc, All rights reserved + * + * Copyright (c) 2018-2021 Amazon.com, Inc. or its affiliates. All Rights reserved. + * Copyright (c) 2020 Triad National Security, LLC. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + + +#include "opal_config.h" + +#include "opal/util/printf.h" +#include "opal/util/argv.h" + +#include "opal/mca/btl/btl.h" +#include "opal/mca/btl/base/base.h" +#include "opal/mca/hwloc/base/base.h" +#include "opal/mca/common/ofi/common_ofi.h" + +#include + +#include "btl_ofi.h" +#include "btl_ofi_endpoint.h" +#include "btl_ofi_rdma.h" +#include "btl_ofi_frag.h" + +#define MCA_BTL_OFI_ONE_SIDED_REQUIRED_CAPS (FI_RMA | FI_ATOMIC) +#define MCA_BTL_OFI_TWO_SIDED_REQUIRED_CAPS (FI_MSG) + +#define MCA_BTL_OFI_REQUESTED_MR_MODE (FI_MR_ALLOCATED | FI_MR_PROV_KEY | FI_MR_VIRT_ADDR) + +static char *ofi_progress_mode; +static bool disable_sep; +static int mca_btl_ofi_init_device(struct fi_info *info); + +/* validate information returned from fi_getinfo(). + * return OPAL_ERROR if we dont have what we need. */ +static int validate_info(struct fi_info *info, uint64_t required_caps, + char **include_list, char **exclude_list) +{ + int mr_mode; + + if (NULL != include_list && !opal_common_ofi_is_in_list(include_list, info->fabric_attr->prov_name)) { + opal_output_verbose(1, opal_common_ofi.output, + "%s:%d: btl:ofi: \"%s\" not in include list\n", + __FILE__, __LINE__, + info->fabric_attr->prov_name); + return OPAL_ERROR; + } else if (NULL != exclude_list && opal_common_ofi_is_in_list(exclude_list, info->fabric_attr->prov_name)) { + opal_output_verbose(1, opal_common_ofi.output, + "%s:%d: btl:ofi: \"%s\" in exclude list\n", + __FILE__, __LINE__, + info->fabric_attr->prov_name); + return OPAL_ERROR; + } + + BTL_VERBOSE(("validating device: %s", info->domain_attr->name)); + + /* EFA does not fulfill FI_DELIVERY_COMPLETE requirements in prior libfabric + * versions. The prov version is set as: + * FI_VERSION(FI_MAJOR_VERSION * 100 + FI_MINOR_VERSION, FI_REVISION_VERSION * 10) + * Thus, FI_VERSION(112,0) corresponds to libfabric 1.12.0 + */ + if (!strncasecmp(info->fabric_attr->prov_name, "efa", 3) + && FI_VERSION_LT(info->fabric_attr->prov_version, FI_VERSION(112,0))) { + BTL_VERBOSE(("unsupported libfabric efa version")); + return OPAL_ERROR; + } + + /* ofi_rxm does not fulfill FI_DELIVERY_COMPLETE requirements. Thus we + * exclude it if it's detected. + */ + if (strstr(info->fabric_attr->prov_name, "ofi_rxm")) { + BTL_VERBOSE(("ofi_rxm does not support FI_DELIVERY_COMPLETE")); + return OPAL_ERROR; + } + + /* we need exactly all the required bits */ + if ((info->caps & required_caps) != required_caps) { + BTL_VERBOSE(("unsupported caps")); + return OPAL_ERROR; + } + + /* we need FI_EP_RDM */ + if (info->ep_attr->type != FI_EP_RDM) { + BTL_VERBOSE(("unsupported EP type")); + return OPAL_ERROR; + } + + mr_mode = info->domain_attr->mr_mode; + + if (!(mr_mode == FI_MR_BASIC || mr_mode == FI_MR_SCALABLE || + (mr_mode & ~(FI_MR_VIRT_ADDR | FI_MR_ALLOCATED | FI_MR_PROV_KEY)) == 0)) { + BTL_VERBOSE(("unsupported MR mode")); + return OPAL_ERROR; + } + + if (!(info->tx_attr->op_flags | FI_DELIVERY_COMPLETE)) { + BTL_VERBOSE(("the endpoint tx_ctx does not support FI_DELIVERY_COMPLETE")); + return OPAL_ERROR; + } + + BTL_VERBOSE(("device: %s is good to go.", info->domain_attr->name)); + return OPAL_SUCCESS; +} + +/* Register the MCA parameters */ +static int mca_btl_ofi_component_register(void) +{ + int ret; + char *msg; + mca_btl_ofi_module_t *module = &mca_btl_ofi_module_template; + + asprintf(&msg, "BTL OFI mode of operation. Valid values are: %d = One-Sided only, %d=Two-Sided only, " + "%d = Both one and two sided. BTL OFI is only optimized for one-sided communication", + MCA_BTL_OFI_MODE_ONE_SIDED, + MCA_BTL_OFI_MODE_TWO_SIDED, + MCA_BTL_OFI_MODE_FULL_SUPPORT); + if (NULL == msg) { + return OPAL_ERR_OUT_OF_RESOURCE; + } + + mca_btl_ofi_component.mode = MCA_BTL_OFI_MODE_ONE_SIDED; + (void)mca_base_component_var_register(&mca_btl_ofi_component.super.btl_version, + "mode", + msg, + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_btl_ofi_component.mode); + + + mca_btl_ofi_component.num_cqe_read = MCA_BTL_OFI_NUM_CQE_READ; + (void) mca_base_component_var_register(&mca_btl_ofi_component.super.btl_version, + "num_cq_read", + "Number of completion entries to read from a single cq_read. ", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_btl_ofi_component.num_cqe_read); + + ofi_progress_mode = "unspec"; + (void) mca_base_component_var_register(&mca_btl_ofi_component.super.btl_version, + "progress_mode", + "requested provider progress mode. [unspec, auto, manual]" + "(default: unspec)", + MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_READONLY, + &ofi_progress_mode); + + mca_btl_ofi_component.num_contexts_per_module = 1; + (void) mca_base_component_var_register(&mca_btl_ofi_component.super.btl_version, + "num_contexts_per_module", + "number of communication context per module to create. " + "This should increase multithreaded performance but it is " + "advised that this number should be lower than total cores.", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_btl_ofi_component.num_contexts_per_module); + + disable_sep = false; + (void) mca_base_component_var_register(&mca_btl_ofi_component.super.btl_version, + "disable_sep", + "force btl/ofi to never use scalable endpoint.", + MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_READONLY, + &disable_sep); + + mca_btl_ofi_component.progress_threshold = MCA_BTL_OFI_DEFAULT_PROGRESS_THRESHOLD; + (void) mca_base_component_var_register(&mca_btl_ofi_component.super.btl_version, + "progress_threshold", + "number of outstanding operation before btl will progress " + "automatically. Tuning this might improve performance on " + "certain type of application.", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_btl_ofi_component.progress_threshold); + + mca_btl_ofi_component.rd_num = MCA_BTL_OFI_DEFAULT_RD_NUM; + (void) mca_base_component_var_register(&mca_btl_ofi_component.super.btl_version, + "rd_num", + "Number of receive descriptor posted per context.", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_5, + MCA_BASE_VAR_SCOPE_READONLY, + &mca_btl_ofi_component.rd_num); + + + /* for now we want this component to lose to the MTL. */ + module->super.btl_exclusivity = MCA_BTL_EXCLUSIVITY_HIGH - 50; + + ret = opal_common_ofi_mca_register(&mca_btl_ofi_component.super.btl_version); + if (OPAL_SUCCESS != ret) { + return ret; + } + + return mca_btl_base_param_register (&mca_btl_ofi_component.super.btl_version, + &module->super); +} + +static int mca_btl_ofi_component_open(void) +{ + mca_btl_ofi_component.module_count = 0; + return opal_common_ofi_open(); +} + +/* + * component cleanup - sanity checking of queue lengths + */ +static int mca_btl_ofi_component_close(void) +{ + int ret; + ret = opal_common_ofi_close(); + /* If we don't sleep, sockets provider freaks out. Ummm this is a scary comment */ + sleep(1); + return ret; +} + +void mca_btl_ofi_exit(void) +{ + BTL_ERROR(("BTL OFI will now abort.")); + exit(1); +} + +/* + * OFI component initialization: + * read interface list from kernel and compare against component parameters + * then create a BTL instance for selected interfaces + */ + +static mca_btl_base_module_t **mca_btl_ofi_component_init (int *num_btl_modules, bool enable_progress_threads, + bool enable_mpi_threads) +{ + /* for this BTL to be useful the interface needs to support RDMA and certain atomic operations */ + int rc; + uint64_t progress_mode; + unsigned resource_count = 0; + struct mca_btl_base_module_t **base_modules; + char **include_list = NULL, **exclude_list = NULL; + + BTL_VERBOSE(("initializing ofi btl")); + + /* Set up libfabric hints. */ + uint32_t libfabric_api; + libfabric_api = fi_version(); + + /* bail if OFI version is less than 1.5. */ + if (libfabric_api < FI_VERSION(1, 5)) { + BTL_VERBOSE(("ofi btl disqualified because OFI version < 1.5.")); + return NULL; + } + + struct fi_info *info, *info_list, *selected_info; + struct fi_info hints = {0}; + struct fi_ep_attr ep_attr = {0}; + struct fi_rx_attr rx_attr = {0}; + struct fi_tx_attr tx_attr = {0}; + struct fi_fabric_attr fabric_attr = {0}; + struct fi_domain_attr domain_attr = {0}; + uint64_t required_caps; + + switch (mca_btl_ofi_component.mode) { + + case MCA_BTL_OFI_MODE_TWO_SIDED: + mca_btl_ofi_component.two_sided_enabled = true; + required_caps = MCA_BTL_OFI_TWO_SIDED_REQUIRED_CAPS; + break; + + case MCA_BTL_OFI_MODE_FULL_SUPPORT: + mca_btl_ofi_component.two_sided_enabled = true; + required_caps = MCA_BTL_OFI_ONE_SIDED_REQUIRED_CAPS | + MCA_BTL_OFI_TWO_SIDED_REQUIRED_CAPS; + break; + + default: + /* default to only one sided. */ + required_caps = MCA_BTL_OFI_ONE_SIDED_REQUIRED_CAPS; + break; + } + + fabric_attr.prov_name = NULL; + + opal_output_verbose(1, opal_common_ofi.output, + "%s:%d: btl:ofi:provider_include = \"%s\"\n", + __FILE__, __LINE__, *opal_common_ofi.prov_include); + opal_output_verbose(1, opal_common_ofi.output, + "%s:%d: btl:ofi:provider_exclude = \"%s\"\n", + __FILE__, __LINE__, *opal_common_ofi.prov_exclude); + + if (NULL != *opal_common_ofi.prov_include) { + include_list = opal_argv_split(*opal_common_ofi.prov_include, ','); + } else if (NULL != *opal_common_ofi.prov_exclude) { + exclude_list = opal_argv_split(*opal_common_ofi.prov_exclude, ','); + } + + domain_attr.mr_mode = MCA_BTL_OFI_REQUESTED_MR_MODE; + + /* message progression mode. */ + if (!strcmp(ofi_progress_mode, "auto")) { + progress_mode = FI_PROGRESS_AUTO; + } else if (!strcmp(ofi_progress_mode, "manual")) { + progress_mode = FI_PROGRESS_MANUAL; + } else { + progress_mode = FI_PROGRESS_UNSPEC; + } + + domain_attr.control_progress = progress_mode; + domain_attr.data_progress = progress_mode; + + /* select endpoint type */ + ep_attr.type = FI_EP_RDM; + + /* ask for capabilities */ + /* TODO: catch the caps here. */ + hints.caps = required_caps; + + /* Ask for completion context */ + hints.mode = FI_CONTEXT | FI_CONTEXT2; + + hints.fabric_attr = &fabric_attr; + hints.domain_attr = &domain_attr; + hints.ep_attr = &ep_attr; + hints.tx_attr = &tx_attr; + hints.rx_attr = &rx_attr; + + /* for now */ + tx_attr.iov_limit = 1; + rx_attr.iov_limit = 1; + + tx_attr.op_flags = FI_DELIVERY_COMPLETE; + + mca_btl_ofi_component.module_count = 0; + + /* do the query. */ + rc = fi_getinfo(FI_VERSION(1, 5), NULL, NULL, 0, &hints, &info_list); + if (0 != rc) { + BTL_VERBOSE(("fi_getinfo failed with code %d: %s",rc, fi_strerror(-rc))); + if (NULL != include_list) { + opal_argv_free(include_list); + } + return NULL; + } + + + /* count the number of resources/ */ + info = info_list; + while(info) { + resource_count++; + info = info->next; + } + BTL_VERBOSE(("ofi btl found %d possible resources.", resource_count)); + + info = info_list; + + while(info) { + rc = validate_info(info, required_caps, include_list, exclude_list); + if (OPAL_SUCCESS == rc) { + /* Device passed sanity check, let's make a module. + * + * The initial fi_getinfo() call will return a list of providers + * available for this process. once a provider is selected from the + * list, we will cycle through the remaining list to identify NICs + * serviced by this provider, and try to pick one on the same NUMA + * node as this process. If there are no NICs on the same NUMA node, + * we pick one in a manner which allows all ranks to make balanced + * use of available NICs on the system. + * + * Most providers give a separate fi_info object for each NIC, + * however some may have multiple info objects with different + * attributes for the same NIC. The initial provider attributes + * are used to ensure that all NICs we return provide the same + * capabilities as the inital one. + */ + selected_info = opal_mca_common_ofi_select_provider(info, opal_process_info.num_local_peers, + opal_process_info.my_local_rank, + opal_process_info.cpuset, + opal_process_info.my_local_rank); + rc = mca_btl_ofi_init_device(selected_info); + if (OPAL_SUCCESS == rc) { + info = selected_info; + break; + } + } + info = info->next; + } + + /* We are done with the returned info. */ + fi_freeinfo(info_list); + if (NULL != include_list) { + opal_argv_free(include_list); + } + + /* pass module array back to caller */ + base_modules = calloc (mca_btl_ofi_component.module_count, sizeof (*base_modules)); + if (NULL == base_modules) { + return NULL; + } + + memcpy(base_modules, mca_btl_ofi_component.modules, + mca_btl_ofi_component.module_count *sizeof (mca_btl_ofi_component.modules[0])); + + BTL_VERBOSE(("ofi btl initialization complete. found %d suitable transports", + mca_btl_ofi_component.module_count)); + + *num_btl_modules = mca_btl_ofi_component.module_count; + + return base_modules; +} + +static int mca_btl_ofi_init_device(struct fi_info *info) +{ + int rc; + int *module_count = &mca_btl_ofi_component.module_count; + size_t namelen; + size_t num_contexts_to_create; + + char *linux_device_name; + char ep_name[FI_NAME_MAX]; + + struct fi_info *ofi_info; + struct fi_ep_attr *ep_attr; + struct fi_domain_attr *domain_attr; + struct fi_av_attr av_attr = {0}; + struct fid_fabric *fabric = NULL; + struct fid_domain *domain = NULL; + struct fid_ep *ep = NULL; + struct fid_av *av = NULL; + + mca_btl_ofi_module_t *module; + + module = mca_btl_ofi_module_alloc(mca_btl_ofi_component.mode); + if (NULL == module) { + BTL_VERBOSE(("failed allocating ofi module")); + goto fail; + } + + /* If the user ask for two sided support, something bad is happening + * to the MTL, so we will take maximum priority to supersede the MTL. */ + module->super.btl_exclusivity = MCA_BTL_EXCLUSIVITY_DEFAULT; + + /* make a copy of the given info to store on the module */ + ofi_info = fi_dupinfo(info); + ep_attr = ofi_info->ep_attr; + domain_attr = ofi_info->domain_attr; + + /* mtl_btl_ofi_rcache_init() initializes patcher which should only + * take place things are single threaded. OFI providers may start + * spawn threads, so initialize the rcache before creating OFI objects + * to prevent races. */ + mca_btl_ofi_rcache_init(module); + + /* for similar reasons to the rcache call, this must be called + * during single threaded part of the code and before Libfabric + * configures its memory monitors. Easiest to do that before + * domain open. Silently ignore not-supported errors, as they + * are not critical to program correctness, but only indicate + * that LIbfabric will have to pick a different, possibly less + * optimial, monitor. */ + rc = opal_common_ofi_export_memory_monitor(); + if (0 != rc && -FI_ENOSYS != rc) { + BTL_VERBOSE(("Failed to inject Libfabric memory monitor: %s", + fi_strerror(-rc))); + } + + linux_device_name = info->domain_attr->name; + BTL_VERBOSE(("initializing dev:%s provider:%s", + linux_device_name, + info->fabric_attr->prov_name)); + + /* fabric */ + rc = fi_fabric(ofi_info->fabric_attr, &fabric, NULL); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_fabric with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto fail; + } + + /* domain */ + rc = fi_domain(fabric, ofi_info, &domain, NULL); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_domain with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto fail; + } + + /* AV */ + av_attr.type = FI_AV_MAP; + rc = fi_av_open(domain, &av_attr, &av, NULL); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_av_open with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto fail; + } + + num_contexts_to_create = mca_btl_ofi_component.num_contexts_per_module; + + /* If the domain support scalable endpoint. */ + if (domain_attr->max_ep_tx_ctx > 1 && !disable_sep) { + + BTL_VERBOSE(("btl/ofi using scalable endpoint.")); + + if (num_contexts_to_create > domain_attr->max_ep_tx_ctx) { + BTL_VERBOSE(("cannot create requested %u contexts. (node max=%zu)", + module->num_contexts, + domain_attr->max_ep_tx_ctx)); + goto fail; + } + + /* modify the info to let the provider know we are creating x contexts */ + ep_attr->tx_ctx_cnt = num_contexts_to_create; + ep_attr->rx_ctx_cnt = num_contexts_to_create; + + /* create scalable endpoint */ + rc = fi_scalable_ep(domain, ofi_info, &ep, NULL); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_scalable_ep with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto fail; + } + + module->num_contexts = num_contexts_to_create; + module->is_scalable_ep = true; + + /* create contexts */ + module->contexts = mca_btl_ofi_context_alloc_scalable(ofi_info, + domain, ep, av, + num_contexts_to_create); + + } else { + /* warn the user if they want more than 1 context */ + if (num_contexts_to_create > 1) { + BTL_ERROR(("cannot create %zu contexts as the provider does not support " + "scalable endpoint. Falling back to single context endpoint.", + num_contexts_to_create)); + } + + BTL_VERBOSE(("btl/ofi using normal endpoint.")); + + rc = fi_endpoint(domain, ofi_info, &ep, NULL); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_endpoint with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto fail; + } + + module->num_contexts = 1; + module->is_scalable_ep = false; + + /* create contexts */ + module->contexts = mca_btl_ofi_context_alloc_normal(ofi_info, + domain, ep, av); + } + + if (NULL == module->contexts) { + /* error message is already printed */ + goto fail; + } + + /* enable the endpoint for using */ + rc = fi_enable(ep); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_enable with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto fail; + } + + /* Everything succeeded, lets create a module for this device. */ + /* store the information. */ + module->fabric_info = ofi_info; + module->fabric = fabric; + module->domain = domain; + module->av = av; + module->ofi_endpoint = ep; + module->linux_device_name = linux_device_name; + module->outstanding_rdma = 0; + module->use_virt_addr = false; + + if (ofi_info->domain_attr->mr_mode == FI_MR_BASIC || + ofi_info->domain_attr->mr_mode & FI_MR_VIRT_ADDR) { + module->use_virt_addr = true; + } + + /* create endpoint list */ + OBJ_CONSTRUCT(&module->endpoints, opal_list_t); + OBJ_CONSTRUCT(&module->module_lock, opal_mutex_t); + OBJ_CONSTRUCT(&module->id_to_endpoint, opal_hash_table_t); + + rc = opal_hash_table_init (&module->id_to_endpoint, 512); + if (OPAL_SUCCESS != rc) { + BTL_ERROR(("error initializing hash table.")); + goto fail; + } + + /* create and send the modex for this device */ + namelen = sizeof(ep_name); + rc = fi_getname((fid_t)ep, &ep_name[0], &namelen); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_getname with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto fail; + } + + + /* If we have two-sided support. */ + if (TWO_SIDED_ENABLED) { + + /* post wildcard recvs */ + for (int i=0; i < module->num_contexts; i++) { + rc = mca_btl_ofi_post_recvs((mca_btl_base_module_t*) module, + &module->contexts[i], + mca_btl_ofi_component.rd_num); + if (OPAL_SUCCESS != rc) { + goto fail; + } + } + } + + /* post our endpoint name so peer can use it to connect to us */ + OPAL_MODEX_SEND(rc, + OPAL_PMIX_GLOBAL, + &mca_btl_ofi_component.super.btl_version, + &ep_name, + namelen); + mca_btl_ofi_component.namelen = namelen; + + /* add this module to the list */ + mca_btl_ofi_component.modules[(*module_count)++] = module; + + return OPAL_SUCCESS; + +fail: + /* clean up */ + + /* close basic ep before closing av */ + if (NULL != ep && !module->is_scalable_ep) { + fi_close(&ep->fid); + ep = NULL; + } + + /* if the contexts have not been initiated, num_contexts should + * be zero and we skip this. */ + for (int i=0; i < module->num_contexts; i++) { + mca_btl_ofi_context_finalize(&module->contexts[i], module->is_scalable_ep); + } + free(module->contexts); + + /* check for NULL ep to avoid double-close */ + if (NULL != ep) { + fi_close(&ep->fid); + } + + /* close av after closing basic ep */ + if (NULL != av) { + fi_close(&av->fid); + } + + if (NULL != domain) { + fi_close(&domain->fid); + } + + if (NULL != fabric) { + fi_close(&fabric->fid); + } + free(module); + + /* not really a failure. just skip this device. */ + return OPAL_ERR_OUT_OF_RESOURCE; +} + +/** + * @brief OFI BTL progress function + * + * This function explictly progresses all workers. + */ +static int mca_btl_ofi_component_progress (void) +{ + int events = 0; + mca_btl_ofi_context_t *context; + + for (int i = 0 ; i < mca_btl_ofi_component.module_count ; ++i) { + mca_btl_ofi_module_t *module = mca_btl_ofi_component.modules[i]; + + /* progress context we own first. */ + context = get_ofi_context(module); + + if (mca_btl_ofi_context_trylock(context)) { + events += mca_btl_ofi_context_progress(context); + mca_btl_ofi_context_unlock(context); + } + + /* if there is nothing to do, try progress other's. */ + if (events == 0) { + for (int j = 0 ; j < module->num_contexts ; j++ ) { + + context = get_ofi_context_rr(module); + + if (mca_btl_ofi_context_trylock(context)) { + events += mca_btl_ofi_context_progress(context); + mca_btl_ofi_context_unlock(context); + } + + /* If we did something, good enough. return now. + * This is crucial for performance/latency. */ + if (events > 0) { + break; + } + } + } + } + + return events; +} + +/** OFI btl component */ +mca_btl_ofi_component_t mca_btl_ofi_component = { + .super = { + .btl_version = { + MCA_BTL_DEFAULT_VERSION("ofi"), + .mca_open_component = mca_btl_ofi_component_open, + .mca_close_component = mca_btl_ofi_component_close, + .mca_register_component_params = mca_btl_ofi_component_register, + }, + .btl_data = { + /* The component is not checkpoint ready */ + .param_field = MCA_BASE_METADATA_PARAM_NONE + }, + + .btl_init = mca_btl_ofi_component_init, + .btl_progress = mca_btl_ofi_component_progress, + }, +}; diff -Nru openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_context.c openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_context.c --- openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_context.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_context.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,463 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * $COPYRIGHT$ + * Copyright (c) 2018 Intel Inc. All rights reserved + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "btl_ofi.h" +#include "btl_ofi_frag.h" +#include "btl_ofi_rdma.h" + +#if OPAL_HAVE_THREAD_LOCAL +opal_thread_local mca_btl_ofi_context_t *my_context = NULL; +#endif /* OPAL_HAVE_THREAD_LOCAL */ + +int init_context_freelists(mca_btl_ofi_context_t *context) +{ + int rc; + OBJ_CONSTRUCT(&context->rdma_comp_list, opal_free_list_t); + rc = opal_free_list_init(&context->rdma_comp_list, + sizeof(mca_btl_ofi_rdma_completion_t), + opal_cache_line_size, + OBJ_CLASS(mca_btl_ofi_rdma_completion_t), + 0, + 0, + 512, + -1, + 512, + NULL, + 0, + NULL, + NULL, + NULL); + if (rc != OPAL_SUCCESS) { + BTL_VERBOSE(("cannot allocate completion freelist")); + return rc; + } + + if (TWO_SIDED_ENABLED) { + OBJ_CONSTRUCT(&context->frag_comp_list, opal_free_list_t); + rc = opal_free_list_init(&context->frag_comp_list, + sizeof(mca_btl_ofi_frag_completion_t), + opal_cache_line_size, + OBJ_CLASS(mca_btl_ofi_frag_completion_t), + 0, + 0, + 512, + -1, + 512, + NULL, + 0, + NULL, + NULL, + NULL); + if (rc != OPAL_SUCCESS) { + BTL_VERBOSE(("cannot allocate completion freelist")); + return rc; + } + + /* Initialize frag pool */ + OBJ_CONSTRUCT(&context->frag_list, opal_free_list_t); + rc = opal_free_list_init(&context->frag_list, + sizeof(mca_btl_ofi_base_frag_t) + + MCA_BTL_OFI_FRAG_SIZE, + opal_cache_line_size, + OBJ_CLASS(mca_btl_ofi_base_frag_t), + 0, + 0, + 1024, + -1, + 1024, + NULL, + 0, + NULL, + NULL, + NULL); + if (OPAL_SUCCESS != rc) { + BTL_VERBOSE(("failed to init frag pool (free_list)")); + } + } + + return rc; +} + +/* mca_btl_ofi_context_alloc_normal() + * + * This function will allocate an ofi_context, map the endpoint to tx/rx context, + * bind CQ,AV to the endpoint and initialize all the structure. + * USE WITH NORMAL ENDPOINT ONLY */ +mca_btl_ofi_context_t *mca_btl_ofi_context_alloc_normal(struct fi_info *info, + struct fid_domain *domain, + struct fid_ep *ep, + struct fid_av *av) +{ + int rc; + uint32_t cq_flags = FI_TRANSMIT | FI_SEND | FI_RECV; + char *linux_device_name = info->domain_attr->name; + + struct fi_cq_attr cq_attr = {0}; + + mca_btl_ofi_context_t *context; + + context = (mca_btl_ofi_context_t*) calloc(1, sizeof(*context)); + if (NULL == context) { + BTL_VERBOSE(("cannot allocate context")); + return NULL; + } + + /* Don't really need to check, just avoiding compiler warning because + * BTL_VERBOSE is a no op in performance build and the compiler will + * complain about unused variable. */ + if (NULL == linux_device_name) { + BTL_VERBOSE(("linux device name is NULL. This shouldn't happen.")); + goto single_fail; + } + + cq_attr.format = FI_CQ_FORMAT_CONTEXT; + cq_attr.wait_obj = FI_WAIT_NONE; + rc = fi_cq_open(domain, &cq_attr, &context->cq, NULL); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_cq_open with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto single_fail; + } + + rc = fi_ep_bind(ep, (fid_t)av, 0); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_ep_bind with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto single_fail; + } + + rc = fi_ep_bind(ep, (fid_t)context->cq, cq_flags); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_scalable_ep_bind with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto single_fail; + } + + rc = init_context_freelists(context); + if (rc != OPAL_SUCCESS) { + goto single_fail; + } + + context->tx_ctx = ep; + context->rx_ctx = ep; + context->context_id = 0; + + return context; + +single_fail: + mca_btl_ofi_context_finalize(context, false); + return NULL; +} + +/* mca_btl_ofi_context_alloc_scalable() + * + * This function allocate communication contexts and return the pointer + * to the first btl context. It also take care of all the bindings needed. + * USE WITH SCALABLE ENDPOINT ONLY */ +mca_btl_ofi_context_t *mca_btl_ofi_context_alloc_scalable(struct fi_info *info, + struct fid_domain *domain, + struct fid_ep *sep, + struct fid_av *av, + size_t num_contexts) +{ + BTL_VERBOSE(("creating %zu contexts", num_contexts)); + + int rc; + size_t i; + char *linux_device_name = info->domain_attr->name; + + struct fi_cq_attr cq_attr = {0}; + struct fi_tx_attr tx_attr = {0}; + struct fi_rx_attr rx_attr = {0}; + + mca_btl_ofi_context_t *contexts; + tx_attr.op_flags = FI_DELIVERY_COMPLETE; + + contexts = (mca_btl_ofi_context_t*) calloc(num_contexts, sizeof(*contexts)); + if (NULL == contexts) { + BTL_VERBOSE(("cannot allocate communication contexts.")); + return NULL; + } + + /* Don't really need to check, just avoiding compiler warning because + * BTL_VERBOSE is a no op in performance build and the compiler will + * complain about unused variable. */ + if (NULL == linux_device_name) { + BTL_VERBOSE(("linux device name is NULL. This shouldn't happen.")); + goto scalable_fail; + } + + /* bind AV to endpoint */ + rc = fi_scalable_ep_bind(sep, (fid_t)av, 0); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_scalable_ep_bind with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto scalable_fail; + } + + for (i=0; i < num_contexts; i++) { + rc = fi_tx_context(sep, i, &tx_attr, &contexts[i].tx_ctx, NULL); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_tx_context with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto scalable_fail; + } + + /* We don't actually need a receiving context as we only do one-sided. + * However, sockets provider will hang if we dont have one. It is + * also nice to have equal number of tx/rx context. */ + rc = fi_rx_context(sep, i, &rx_attr, &contexts[i].rx_ctx, NULL); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_rx_context with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto scalable_fail; + } + + /* create CQ */ + cq_attr.format = FI_CQ_FORMAT_CONTEXT; + cq_attr.wait_obj = FI_WAIT_NONE; + rc = fi_cq_open(domain, &cq_attr, &contexts[i].cq, NULL); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_cq_open with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto scalable_fail; + } + + /* bind cq to transmit context */ + rc = fi_ep_bind(contexts[i].tx_ctx, (fid_t)contexts[i].cq, FI_TRANSMIT); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_ep_bind with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto scalable_fail; + } + + /* bind cq to receiving context */ + if (TWO_SIDED_ENABLED) { + rc = fi_ep_bind(contexts[i].rx_ctx, (fid_t)contexts[i].cq, FI_RECV); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_ep_bind with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto scalable_fail; + } + } + + /* enable the context. */ + rc = fi_enable(contexts[i].tx_ctx); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_enable with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto scalable_fail; + } + + rc = fi_enable(contexts[i].rx_ctx); + if (0 != rc) { + BTL_VERBOSE(("%s failed fi_enable with err=%s", + linux_device_name, + fi_strerror(-rc) + )); + goto scalable_fail; + } + + /* initialize freelists. */ + rc = init_context_freelists(&contexts[i]); + if (rc != OPAL_SUCCESS) { + goto scalable_fail; + } + + /* assign the id */ + contexts[i].context_id = i; + } + + return contexts; + +scalable_fail: + /* close and free */ + for(i=0; i < num_contexts; i++) { + mca_btl_ofi_context_finalize(&contexts[i], true); + } + free(contexts); + + return NULL; +} + +void mca_btl_ofi_context_finalize(mca_btl_ofi_context_t *context, bool scalable_ep) { + + /* if it is a scalable ep, we have to close all contexts. */ + if (scalable_ep) { + if (NULL != context->tx_ctx) { + fi_close(&context->tx_ctx->fid); + } + + if (NULL != context->rx_ctx) { + fi_close(&context->rx_ctx->fid); + } + } + + if( NULL != context->cq) { + fi_close(&context->cq->fid); + } + + /* Can we destruct the object that hasn't been constructed? */ + OBJ_DESTRUCT(&context->rdma_comp_list); + + if (TWO_SIDED_ENABLED) { + OBJ_DESTRUCT(&context->frag_comp_list); + OBJ_DESTRUCT(&context->frag_list); + } +} + +/* Get a context to use for communication. + * If TLS is supported, it will use the cached endpoint. + * If not, it will invoke the normal round-robin assignment. */ +mca_btl_ofi_context_t *get_ofi_context(mca_btl_ofi_module_t *btl) +{ +#if OPAL_HAVE_THREAD_LOCAL + /* With TLS, we cache the context we use. */ + static volatile int64_t cur_num = 0; + + if (OPAL_UNLIKELY(my_context == NULL)) { + OPAL_THREAD_LOCK(&btl->module_lock); + + my_context = &btl->contexts[cur_num]; + cur_num = (cur_num + 1) %btl->num_contexts; + + OPAL_THREAD_UNLOCK(&btl->module_lock); + } + + assert (my_context); + return my_context; +#else + return get_ofi_context_rr(btl); +#endif +} + +/* return the context in a round-robin. */ +/* There is no need for atomics here as it might hurt the performance. */ +mca_btl_ofi_context_t *get_ofi_context_rr(mca_btl_ofi_module_t *btl) +{ + static volatile uint64_t rr_num = 0; + return &btl->contexts[rr_num++%btl->num_contexts]; +} + +int mca_btl_ofi_context_progress(mca_btl_ofi_context_t *context) { + + int ret = 0; + int events_read; + int events = 0; + struct fi_cq_entry cq_entry[MCA_BTL_OFI_DEFAULT_MAX_CQE]; + struct fi_cq_err_entry cqerr = {0}; + + mca_btl_ofi_completion_context_t *c_ctx; + mca_btl_ofi_base_completion_t *comp; + mca_btl_ofi_rdma_completion_t *rdma_comp; + mca_btl_ofi_frag_completion_t *frag_comp; + + ret = fi_cq_read(context->cq, &cq_entry, mca_btl_ofi_component.num_cqe_read); + + if (0 < ret) { + events_read = ret; + for (int i = 0; i < events_read; i++) { + if (NULL != cq_entry[i].op_context) { + ++events; + + c_ctx = (mca_btl_ofi_completion_context_t*) cq_entry[i].op_context; + + /* We are casting to every type here just for simplicity. */ + comp = (mca_btl_ofi_base_completion_t*) c_ctx->comp; + frag_comp = (mca_btl_ofi_frag_completion_t*) c_ctx->comp; + rdma_comp = (mca_btl_ofi_rdma_completion_t*) c_ctx->comp; + + switch (comp->type) { + case MCA_BTL_OFI_TYPE_GET: + case MCA_BTL_OFI_TYPE_PUT: + case MCA_BTL_OFI_TYPE_AOP: + case MCA_BTL_OFI_TYPE_AFOP: + case MCA_BTL_OFI_TYPE_CSWAP: + /* call the callback */ + if (rdma_comp->cbfunc) { + rdma_comp->cbfunc (comp->btl, comp->endpoint, + rdma_comp->local_address, rdma_comp->local_handle, + rdma_comp->cbcontext, rdma_comp->cbdata, OPAL_SUCCESS); + } + + MCA_BTL_OFI_NUM_RDMA_DEC((mca_btl_ofi_module_t*) comp->btl); + break; + + case MCA_BTL_OFI_TYPE_RECV: + mca_btl_ofi_recv_frag((mca_btl_ofi_module_t*) comp->btl, + (mca_btl_ofi_endpoint_t*) comp->endpoint, + context, frag_comp->frag); + break; + + case MCA_BTL_OFI_TYPE_SEND: + MCA_BTL_OFI_NUM_SEND_DEC((mca_btl_ofi_module_t*) comp->btl); + mca_btl_ofi_frag_complete(frag_comp->frag, OPAL_SUCCESS); + break; + + default: + /* catasthrophic */ + BTL_ERROR(("unknown completion type")); + MCA_BTL_OFI_ABORT(); + } + + /* return the completion handler */ + opal_free_list_return(comp->my_list, (opal_free_list_item_t*) comp); + } + } + } else if (OPAL_UNLIKELY(ret == -FI_EAVAIL)) { + ret = fi_cq_readerr(context->cq, &cqerr, 0); + + /* cq readerr failed!? */ + if (0 > ret) { + BTL_ERROR(("%s:%d: Error returned from fi_cq_readerr: %s(%d)", + __FILE__, __LINE__, fi_strerror(-ret), ret)); + } else { + BTL_ERROR(("fi_cq_readerr: (provider err_code = %d)\n", + cqerr.prov_errno)); + } + MCA_BTL_OFI_ABORT(); + } +#ifdef FI_EINTR + /* sometimes, sockets provider complain about interupt. We do nothing. */ + else if (OPAL_UNLIKELY(ret == -FI_EINTR)) { + + } +#endif + /* If the error is not FI_EAGAIN, report the error and abort. */ + else if (OPAL_UNLIKELY(ret != -FI_EAGAIN)) { + BTL_ERROR(("fi_cq_read returned error %d:%s", ret, fi_strerror(-ret))); + MCA_BTL_OFI_ABORT(); + } + + return events; +} + + diff -Nru openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_endpoint.c openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_endpoint.c --- openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_endpoint.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_endpoint.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,50 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2014-2018 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2018 Intel, Inc, All rights reserved + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "btl_ofi.h" +#include "btl_ofi_endpoint.h" +#include "opal/util/proc.h" + +static void mca_btl_ofi_endpoint_construct (mca_btl_ofi_endpoint_t *endpoint) +{ + endpoint->peer_addr = 0; + OBJ_CONSTRUCT(&endpoint->ep_lock, opal_mutex_t); +} + +static void mca_btl_ofi_endpoint_destruct (mca_btl_ofi_endpoint_t *endpoint) +{ + endpoint->peer_addr = 0; + + /* set to null, we will free ofi endpoint in module */ + endpoint->ofi_endpoint = NULL; + + OBJ_DESTRUCT(&endpoint->ep_lock); +} + +OBJ_CLASS_INSTANCE(mca_btl_ofi_endpoint_t, opal_list_item_t, + mca_btl_ofi_endpoint_construct, + mca_btl_ofi_endpoint_destruct); + +mca_btl_base_endpoint_t *mca_btl_ofi_endpoint_create (opal_proc_t *proc, struct fid_ep *ep) +{ + mca_btl_ofi_endpoint_t *endpoint = OBJ_NEW(mca_btl_ofi_endpoint_t); + + if (OPAL_UNLIKELY(NULL == endpoint)) { + return NULL; + } + + endpoint->ep_proc = proc; + endpoint->ofi_endpoint = ep; + + return (mca_btl_base_endpoint_t *) endpoint; +} diff -Nru openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_endpoint.h openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_endpoint.h --- openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_endpoint.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_endpoint.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,75 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2006 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2017-2018 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2018 Intel, Inc, All rights reserved + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef MCA_BTL_OFI_ENDPOINT_H +#define MCA_BTL_OFI_ENDPOINT_H + +#include "opal/class/opal_list.h" +#include "opal/mca/event/event.h" + +#include "btl_ofi.h" + +BEGIN_C_DECLS + +#if OPAL_HAVE_THREAD_LOCAL +extern opal_thread_local mca_btl_ofi_context_t *my_context; +#endif /* OPAL_HAVE_THREAD_LOCAL */ + +struct mca_btl_base_endpoint_t { + opal_list_item_t super; + + struct fid_ep *ofi_endpoint; + fi_addr_t peer_addr; + + /** endpoint proc */ + opal_proc_t *ep_proc; + + /** mutex to protect this structure */ + opal_mutex_t ep_lock; +}; + +typedef struct mca_btl_base_endpoint_t mca_btl_base_endpoint_t; +typedef mca_btl_base_endpoint_t mca_btl_ofi_endpoint_t; +OBJ_CLASS_DECLARATION(mca_btl_ofi_endpoint_t); + +int init_context_freelists(mca_btl_ofi_context_t *context); + +mca_btl_base_endpoint_t *mca_btl_ofi_endpoint_create (opal_proc_t *proc, struct fid_ep *ep); + +/* contexts */ +mca_btl_ofi_context_t *mca_btl_ofi_context_alloc_scalable(struct fi_info *info, + struct fid_domain *domain, + struct fid_ep *sep, + struct fid_av *av, + size_t num_contexts); + +mca_btl_ofi_context_t *mca_btl_ofi_context_alloc_normal(struct fi_info *info, + struct fid_domain *domain, + struct fid_ep *ep, + struct fid_av *av); +void mca_btl_ofi_context_finalize(mca_btl_ofi_context_t *context, bool scalable_ep); + +mca_btl_ofi_context_t *get_ofi_context(mca_btl_ofi_module_t *btl); +mca_btl_ofi_context_t *get_ofi_context_rr(mca_btl_ofi_module_t *btl); + +END_C_DECLS +#endif diff -Nru openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_frag.c openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_frag.c --- openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_frag.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_frag.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,198 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * $COPYRIGHT$ + * Copyright (c) 2018 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2018 Intel Inc. All rights reserved + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "btl_ofi.h" +#include "btl_ofi_frag.h" +#include "btl_ofi_rdma.h" +#include "btl_ofi_endpoint.h" + +static void mca_btl_ofi_base_frag_constructor (mca_btl_ofi_base_frag_t *frag) +{ + /* zero everything out */ + memset ((char *) frag + sizeof (frag->base), 0, sizeof (*frag) - sizeof (frag->base)); + + frag->base.des_segments = frag->segments; + frag->base.des_segment_count = 1; +} + +static void mca_btl_ofi_base_frag_destructor (mca_btl_ofi_base_frag_t *frag) +{ + +} + +OBJ_CLASS_INSTANCE(mca_btl_ofi_base_frag_t, + mca_btl_base_descriptor_t, + mca_btl_ofi_base_frag_constructor, + mca_btl_ofi_base_frag_destructor); + +OBJ_CLASS_INSTANCE(mca_btl_ofi_frag_completion_t, + opal_free_list_item_t, + NULL, + NULL); + +mca_btl_ofi_frag_completion_t *mca_btl_ofi_frag_completion_alloc + (mca_btl_base_module_t *btl, + mca_btl_ofi_context_t *context, + mca_btl_ofi_base_frag_t *frag, + int type) +{ + mca_btl_ofi_frag_completion_t *comp; + + comp = (mca_btl_ofi_frag_completion_t*) opal_free_list_get(&context->frag_comp_list); + comp->base.btl = btl; + comp->base.my_context = context; + comp->base.my_list = &context->frag_comp_list; + comp->base.type = type; + + comp->frag = frag; + comp->comp_ctx.comp = comp; + + return comp; +} + + +mca_btl_base_descriptor_t *mca_btl_ofi_alloc( + mca_btl_base_module_t *btl, + mca_btl_base_endpoint_t *endpoint, + uint8_t order, size_t size, uint32_t flags) +{ + mca_btl_ofi_module_t *ofi_btl = (mca_btl_ofi_module_t*) btl; + mca_btl_ofi_base_frag_t *frag = NULL; + mca_btl_ofi_context_t *context = get_ofi_context(ofi_btl); + + frag = mca_btl_ofi_frag_alloc(ofi_btl, &context->frag_list, endpoint); + + if (OPAL_LIKELY(frag)) { + frag->segments[0].seg_addr.pval = frag + 1; + frag->segments[0].seg_len = size; + + frag->base.des_segment_count = 1; + frag->base.des_segments = &frag->segments[0]; + frag->base.des_flags = flags; + frag->base.order = order; + frag->hdr.len = size; + } + + return (mca_btl_base_descriptor_t*) frag; +} + +int mca_btl_ofi_free (mca_btl_base_module_t *btl, mca_btl_base_descriptor_t *des) +{ + /* return the frag to the free list. */ + mca_btl_ofi_frag_return ((mca_btl_ofi_base_frag_t*) des); + return OPAL_SUCCESS; +} + +int mca_btl_ofi_send (mca_btl_base_module_t *btl, + mca_btl_base_endpoint_t *endpoint, + mca_btl_base_descriptor_t *descriptor, + mca_btl_base_tag_t tag) +{ + int rc = 0; + mca_btl_ofi_context_t *context; + mca_btl_ofi_module_t *ofi_btl = (mca_btl_ofi_module_t*) btl; + mca_btl_ofi_endpoint_t *ofi_ep = (mca_btl_ofi_endpoint_t*) endpoint; + mca_btl_ofi_base_frag_t *frag = (mca_btl_ofi_base_frag_t*) descriptor; + mca_btl_ofi_frag_completion_t *comp; + + frag->base.des_flags |= MCA_BTL_DES_SEND_ALWAYS_CALLBACK; + + /* This tag is the active message tag for the remote side */ + frag->hdr.tag = tag; + + /* create completion context */ + context = get_ofi_context(ofi_btl); + comp = mca_btl_ofi_frag_completion_alloc(btl, context, frag, + MCA_BTL_OFI_TYPE_SEND); + + /* send the frag. Note that we start sending from BTL header + payload + * because we need the other side to have this header information. */ + rc = fi_send(context->tx_ctx, + &frag->hdr, + sizeof(mca_btl_ofi_header_t) + frag->hdr.len, + NULL, + ofi_ep->peer_addr, + &comp->comp_ctx); + + if (OPAL_UNLIKELY(FI_SUCCESS != rc)) { + return OPAL_ERR_OUT_OF_RESOURCE; + } + + MCA_BTL_OFI_NUM_SEND_INC(ofi_btl); + return OPAL_SUCCESS; +} + +int mca_btl_ofi_recv_frag (mca_btl_ofi_module_t *ofi_btl, + mca_btl_base_endpoint_t *endpoint, + mca_btl_ofi_context_t *context, + mca_btl_ofi_base_frag_t *frag) +{ + int rc; + mca_btl_active_message_callback_t *reg; + + /* Tell PML where the payload is */ + frag->base.des_segments = frag->segments; + frag->segments[0].seg_addr.pval = frag+1; + frag->segments[0].seg_len = frag->hdr.len; + frag->base.des_segment_count = 1; + + /* call the callback */ + reg = mca_btl_base_active_message_trigger + frag->hdr.tag; + reg->cbfunc (&ofi_btl->super, frag->hdr.tag, &frag->base, reg->cbdata); + mca_btl_ofi_frag_complete(frag, OPAL_SUCCESS); + + /* repost the recv */ + rc = mca_btl_ofi_post_recvs((mca_btl_base_module_t*) ofi_btl, context, 1); + if (OPAL_SUCCESS != rc) { + /* might not be that bad but let's just fail here. */ + BTL_ERROR(("failed reposting receive.")); + MCA_BTL_OFI_ABORT(); + } + + return OPAL_SUCCESS; +} + +struct mca_btl_base_descriptor_t *mca_btl_ofi_prepare_src ( + mca_btl_base_module_t *btl, + mca_btl_base_endpoint_t *endpoint, + opal_convertor_t *convertor, + uint8_t order, size_t reserve, + size_t *size, uint32_t flags) +{ + struct iovec iov; + size_t length; + uint32_t iov_count = 1; + mca_btl_ofi_base_frag_t *frag; + + /* allocate the frag with reserve. */ + frag = (mca_btl_ofi_base_frag_t*) mca_btl_ofi_alloc(btl, endpoint, + order, reserve, flags); + if (OPAL_UNLIKELY(NULL == frag)) { + return NULL; + } + + /* pack the data after the reserve */ + iov.iov_len = *size; + iov.iov_base = (IOVBASE_TYPE*)(((unsigned char*)(frag->segments[0].seg_addr.pval)) + reserve); + opal_convertor_pack(convertor, &iov, &iov_count, &length); + + /* pass on frag information */ + frag->base.des_segments = frag->segments; + frag->base.des_flags = flags; + frag->base.order = MCA_BTL_NO_ORDER; + frag->segments[0].seg_len += length; + frag->hdr.len += length; + *size = length; + + return &frag->base; +} diff -Nru openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_frag.h openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_frag.h --- openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_frag.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_frag.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,95 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2018 Los Alamos National Security, LLC. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#if !defined(MCA_BTL_OFI_FRAG_H) +#define MCA_BTL_OFI_FRAG_H + +#include "btl_ofi.h" +#include "btl_ofi_endpoint.h" + + +#define MCA_BTL_OFI_HDR_SIZE sizeof(mca_btl_ofi_header_t) +#define MCA_BTL_OFI_FRAG_SIZE 4096 +#define MCA_BTL_OFI_RECV_SIZE MCA_BTL_OFI_FRAG_SIZE + MCA_BTL_OFI_HDR_SIZE + +#define MCA_BTL_OFI_NUM_SEND_INC(module) \ + OPAL_ATOMIC_ADD_FETCH64(&(module)->outstanding_send, 1); \ + if (module->outstanding_send > mca_btl_ofi_component.progress_threshold) { \ + mca_btl_ofi_component.super.btl_progress(); \ + } + +#define MCA_BTL_OFI_NUM_SEND_DEC(module) \ + OPAL_ATOMIC_ADD_FETCH64(&(module)->outstanding_send, -1); + +mca_btl_base_descriptor_t *mca_btl_ofi_alloc( + mca_btl_base_module_t *btl, + mca_btl_base_endpoint_t *endpoint, + uint8_t order, size_t size, uint32_t flags); + +int mca_btl_ofi_free (mca_btl_base_module_t *btl, mca_btl_base_descriptor_t *des); + +int mca_btl_ofi_send (mca_btl_base_module_t *btl, + mca_btl_base_endpoint_t *endpoint, + mca_btl_base_descriptor_t *descriptor, + mca_btl_base_tag_t tag); + +int mca_btl_ofi_recv_frag (mca_btl_ofi_module_t *ofi_btl, + mca_btl_base_endpoint_t *endpoint, + mca_btl_ofi_context_t *context, + mca_btl_ofi_base_frag_t *frag); + +struct mca_btl_base_descriptor_t *mca_btl_ofi_prepare_src ( + mca_btl_base_module_t *btl, + mca_btl_base_endpoint_t *endpoint, + opal_convertor_t *convertor, + uint8_t order, size_t reserve, + size_t *size, uint32_t flags); + +mca_btl_ofi_frag_completion_t *mca_btl_ofi_frag_completion_alloc + (mca_btl_base_module_t *btl, + mca_btl_ofi_context_t *context, + mca_btl_ofi_base_frag_t *frag, + int type); + +static inline mca_btl_ofi_base_frag_t *mca_btl_ofi_frag_alloc (mca_btl_ofi_module_t *ofi_btl, opal_free_list_t *fl, + mca_btl_base_endpoint_t *endpoint) +{ + mca_btl_ofi_base_frag_t *frag = (mca_btl_ofi_base_frag_t *) opal_free_list_get (fl); + + if (OPAL_LIKELY(NULL != frag)) { + frag->free_list = fl; + frag->endpoint = endpoint; + frag->btl = ofi_btl; + } + + return frag; +} + +static inline void mca_btl_ofi_frag_return (mca_btl_ofi_base_frag_t *frag) +{ + opal_free_list_return (frag->free_list, &frag->base.super); +} + +static inline void mca_btl_ofi_frag_complete (mca_btl_ofi_base_frag_t *frag, int rc) { + mca_btl_ofi_module_t *ofi_btl = frag->btl; + + /* call the local callback if specified */ + if (frag->base.des_flags & MCA_BTL_DES_SEND_ALWAYS_CALLBACK) { + frag->base.des_cbfunc(&ofi_btl->super, frag->endpoint, &frag->base, rc); + } + + /* If the BTL has ownership, return it to the free list, */ + if (OPAL_LIKELY(frag->base.des_flags & MCA_BTL_DES_FLAGS_BTL_OWNERSHIP)) { + mca_btl_ofi_frag_return (frag); + } +} + +#endif /* !defined(MCA_BTL_OFI_FRAG_H) */ diff -Nru openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi.h openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi.h --- openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,378 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2018 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2015-2018 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2018 Intel, Inc, All rights reserved + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ +/** + * @file + */ +#ifndef MCA_BTL_OFI_H +#define MCA_BTL_OFI_H + +#include "opal_config.h" +#include +#include + +/* Open MPI includes */ +#include "opal/mca/event/event.h" +#include "opal/mca/btl/btl.h" +#include "opal/mca/btl/base/base.h" +#include "opal/mca/mpool/mpool.h" +#include "opal/mca/btl/base/btl_base_error.h" +#include "opal/mca/rcache/base/base.h" +#include "opal/mca/pmix/pmix.h" + +#include "opal/class/opal_hash_table.h" + +#include +#include +#include +#include +#include +#include + +BEGIN_C_DECLS +#define MCA_BTL_OFI_MAX_MODULES 16 +#define MCA_BTL_OFI_NUM_CQE_READ 64 + +#define MCA_BTL_OFI_DEFAULT_RD_NUM 10 +#define MCA_BTL_OFI_DEFAULT_MAX_CQE 128 +#define MCA_BTL_OFI_DEFAULT_PROGRESS_THRESHOLD 64 + +#define MCA_BTL_OFI_ABORT(args) mca_btl_ofi_exit(args) + +#define TWO_SIDED_ENABLED mca_btl_ofi_component.two_sided_enabled + +enum mca_btl_ofi_mode { + MCA_BTL_OFI_MODE_ONE_SIDED = 0, + MCA_BTL_OFI_MODE_TWO_SIDED, + MCA_BTL_OFI_MODE_FULL_SUPPORT, + MCA_BTL_OFI_MODE_TOTAL +}; + +enum mca_btl_ofi_hdr_type { + MCA_BTL_OFI_TYPE_PUT = 0, + MCA_BTL_OFI_TYPE_GET, + MCA_BTL_OFI_TYPE_AOP, + MCA_BTL_OFI_TYPE_AFOP, + MCA_BTL_OFI_TYPE_CSWAP, + MCA_BTL_OFI_TYPE_SEND, + MCA_BTL_OFI_TYPE_RECV, + MCA_BTL_OFI_TYPE_TOTAL +}; + +struct mca_btl_ofi_context_t { + int32_t context_id; + + /* transmit context */ + struct fid_ep *tx_ctx; + struct fid_ep *rx_ctx; + + /* completion queue */ + struct fid_cq *cq; + + /* completion info freelist */ + /* We have it per context to reduce the thread contention + * on the freelist. Things can get really slow. */ + opal_free_list_t rdma_comp_list; + opal_free_list_t frag_comp_list; + opal_free_list_t frag_list; + + /* for thread locking */ + volatile int32_t lock; +}; +typedef struct mca_btl_ofi_context_t mca_btl_ofi_context_t; + +/** + * @brief OFI BTL module + */ +struct mca_btl_ofi_module_t { + /** base BTL interface */ + mca_btl_base_module_t super; + + /* libfabric components */ + struct fi_info *fabric_info; + struct fid_fabric *fabric; + struct fid_domain *domain; + struct fid_ep *ofi_endpoint; + struct fid_av *av; + + int num_contexts; + mca_btl_ofi_context_t *contexts; + + char *linux_device_name; + + /** whether the module has been fully initialized or not */ + bool initialized; + bool use_virt_addr; + bool is_scalable_ep; + + int64_t outstanding_rdma; + int64_t outstanding_send; + + /** linked list of BTL endpoints. this list is never searched so + * there is no need for a complicated structure here at this time*/ + opal_list_t endpoints; + + opal_mutex_t module_lock; + opal_hash_table_t id_to_endpoint; + + /** registration cache */ + mca_rcache_base_module_t *rcache; +}; +typedef struct mca_btl_ofi_module_t mca_btl_ofi_module_t; + +extern mca_btl_ofi_module_t mca_btl_ofi_module_template; + +/** + * @brief OFI BTL component + */ +struct mca_btl_ofi_component_t { + mca_btl_base_component_3_0_0_t super; /**< base BTL component */ + + /** number of TL modules */ + int module_count; + int num_contexts_per_module; + int num_cqe_read; + int progress_threshold; + int mode; + int rd_num; + bool two_sided_enabled; + + size_t namelen; + + /** All BTL OFI modules (1 per tl) */ + mca_btl_ofi_module_t *modules[MCA_BTL_OFI_MAX_MODULES]; + +}; +typedef struct mca_btl_ofi_component_t mca_btl_ofi_component_t; + +OPAL_MODULE_DECLSPEC extern mca_btl_ofi_component_t mca_btl_ofi_component; + +struct mca_btl_base_registration_handle_t { + uint64_t rkey; + void *desc; + void *base_addr; +}; + +struct mca_btl_ofi_reg_t { + mca_rcache_base_registration_t base; + struct fid_mr *ur_mr; + + /* remote handle */ + mca_btl_base_registration_handle_t handle; +}; +typedef struct mca_btl_ofi_reg_t mca_btl_ofi_reg_t; + +OBJ_CLASS_DECLARATION(mca_btl_ofi_reg_t); + +struct mca_btl_ofi_header_t { + mca_btl_base_tag_t tag; + size_t len; +}; +typedef struct mca_btl_ofi_header_t mca_btl_ofi_header_t; + +struct mca_btl_ofi_base_frag_t { + mca_btl_base_descriptor_t base; + mca_btl_base_segment_t segments[2]; + + int context_id; + struct mca_btl_ofi_module_t *btl; + struct mca_btl_base_endpoint_t *endpoint; + opal_free_list_t *free_list; + mca_btl_ofi_header_t hdr; +}; + +typedef struct mca_btl_ofi_base_frag_t mca_btl_ofi_base_frag_t; + +OBJ_CLASS_DECLARATION(mca_btl_ofi_base_frag_t); + + +struct mca_btl_ofi_completion_context_t { + struct fi_context2 ctx; + void *comp; +}; + +typedef struct mca_btl_ofi_completion_context_t mca_btl_ofi_completion_context_t; + +/* completion structure store information needed + * for RDMA callbacks */ +struct mca_btl_ofi_base_completion_t { + opal_free_list_item_t comp_list; + + opal_free_list_t *my_list; + + struct mca_btl_base_module_t *btl; + struct mca_btl_base_endpoint_t *endpoint; + struct mca_btl_ofi_context_t *my_context; + int type; +}; +typedef struct mca_btl_ofi_base_completion_t mca_btl_ofi_base_completion_t; + +struct mca_btl_ofi_rdma_completion_t { + mca_btl_ofi_base_completion_t base; + mca_btl_ofi_completion_context_t comp_ctx; + void *local_address; + mca_btl_base_registration_handle_t *local_handle; + + uint64_t operand; + uint64_t compare; + + mca_btl_base_rdma_completion_fn_t cbfunc; + void *cbcontext; + void *cbdata; +}; +typedef struct mca_btl_ofi_rdma_completion_t mca_btl_ofi_rdma_completion_t; + +struct mca_btl_ofi_frag_completion_t { + mca_btl_ofi_base_completion_t base; + mca_btl_ofi_completion_context_t comp_ctx; + mca_btl_ofi_base_frag_t *frag; +}; +typedef struct mca_btl_ofi_frag_completion_t mca_btl_ofi_frag_completion_t; + +OBJ_CLASS_DECLARATION(mca_btl_ofi_rdma_completion_t); +OBJ_CLASS_DECLARATION(mca_btl_ofi_frag_completion_t); + +/** + * Initiate an asynchronous put. + * Completion Semantics: if this function returns a 1 then the operation + * is complete. a return of OPAL_SUCCESS indicates + * the put operation has been queued with the + * network. the local_handle can not be deregistered + * until all outstanding operations on that handle + * have been completed. + * + * @param btl (IN) BTL module + * @param endpoint (IN) BTL addressing information + * @param local_address (IN) Local address to put from (registered) + * @param remote_address (IN) Remote address to put to (registered remotely) + * @param local_handle (IN) Registration handle for region containing + * (local_address, local_address + size) + * @param remote_handle (IN) Remote registration handle for region containing + * (remote_address, remote_address + size) + * @param size (IN) Number of bytes to put + * @param flags (IN) Flags for this put operation + * @param order (IN) Ordering + * @param cbfunc (IN) Function to call on completion (if queued) + * @param cbcontext (IN) Context for the callback + * @param cbdata (IN) Data for callback + * + * @retval OPAL_SUCCESS The descriptor was successfully queued for a put + * @retval OPAL_ERROR The descriptor was NOT successfully queued for a put + * @retval OPAL_ERR_OUT_OF_RESOURCE Insufficient resources to queue the put + * operation. Try again later + * @retval OPAL_ERR_NOT_AVAILABLE Put can not be performed due to size or + * alignment restrictions. + */ +int mca_btl_ofi_put (struct mca_btl_base_module_t *btl, + struct mca_btl_base_endpoint_t *endpoint, void *local_address, + uint64_t remote_address, struct mca_btl_base_registration_handle_t *local_handle, + struct mca_btl_base_registration_handle_t *remote_handle, size_t size, int flags, + int order, mca_btl_base_rdma_completion_fn_t cbfunc, void *cbcontext, void *cbdata); + +/** + * Initiate an asynchronous get. + * Completion Semantics: if this function returns a 1 then the operation + * is complete. a return of OPAL_SUCCESS indicates + * the get operation has been queued with the + * network. the local_handle can not be deregistered + * until all outstanding operations on that handle + * have been completed. + * + * @param btl (IN) BTL module + * @param endpoint (IN) BTL addressing information + * @param local_address (IN) Local address to put from (registered) + * @param remote_address (IN) Remote address to put to (registered remotely) + * @param local_handle (IN) Registration handle for region containing + * (local_address, local_address + size) + * @param remote_handle (IN) Remote registration handle for region containing + * (remote_address, remote_address + size) + * @param size (IN) Number of bytes to put + * @param flags (IN) Flags for this put operation + * @param order (IN) Ordering + * @param cbfunc (IN) Function to call on completion (if queued) + * @param cbcontext (IN) Context for the callback + * @param cbdata (IN) Data for callback + * + * @retval OPAL_SUCCESS The descriptor was successfully queued for a put + * @retval OPAL_ERROR The descriptor was NOT successfully queued for a put + * @retval OPAL_ERR_OUT_OF_RESOURCE Insufficient resources to queue the put + * operation. Try again later + * @retval OPAL_ERR_NOT_AVAILABLE Put can not be performed due to size or + * alignment restrictions. + */ +int mca_btl_ofi_get (struct mca_btl_base_module_t *btl, + struct mca_btl_base_endpoint_t *endpoint, void *local_address, + uint64_t remote_address, struct mca_btl_base_registration_handle_t *local_handle, + struct mca_btl_base_registration_handle_t *remote_handle, size_t size, int flags, + int order, mca_btl_base_rdma_completion_fn_t cbfunc, void *cbcontext, void *cbdata); + +int mca_btl_ofi_aop (struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *endpoint, + uint64_t remote_address, mca_btl_base_registration_handle_t *remote_handle, + mca_btl_base_atomic_op_t op, uint64_t operand, int flags, int order, + mca_btl_base_rdma_completion_fn_t cbfunc, void *cbcontext, void *cbdata); + +int mca_btl_ofi_afop (struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *endpoint, + void *local_address, uint64_t remote_address, mca_btl_base_registration_handle_t *local_handle, + mca_btl_base_registration_handle_t *remote_handle, mca_btl_base_atomic_op_t op, + uint64_t operand, int flags, int order, mca_btl_base_rdma_completion_fn_t cbfunc, + void *cbcontext, void *cbdata); + +int mca_btl_ofi_acswap (struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *endpoint, + void *local_address, uint64_t remote_address, mca_btl_base_registration_handle_t *local_handle, + mca_btl_base_registration_handle_t *remote_handle, uint64_t compare, uint64_t value, int flags, + int order, mca_btl_base_rdma_completion_fn_t cbfunc, void *cbcontext, void *cbdata); + + +int mca_btl_ofi_flush (struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *endpoint); + +int mca_btl_ofi_finalize (mca_btl_base_module_t *btl); + +void mca_btl_ofi_rcache_init (mca_btl_ofi_module_t *module); +int mca_btl_ofi_reg_mem (void *reg_data, void *base, size_t size, + mca_rcache_base_registration_t *reg); +int mca_btl_ofi_dereg_mem (void *reg_data, mca_rcache_base_registration_t *reg); + +int mca_btl_ofi_context_progress(mca_btl_ofi_context_t *context); + +mca_btl_ofi_module_t * mca_btl_ofi_module_alloc (int mode); + +int mca_btl_ofi_post_recvs(mca_btl_base_module_t* module, mca_btl_ofi_context_t *context, int count); +void mca_btl_ofi_exit(void); + +/* thread atomics */ +static inline bool mca_btl_ofi_context_trylock (mca_btl_ofi_context_t *context) +{ + return (context->lock || OPAL_ATOMIC_SWAP_32(&context->lock, 1)); +} + +static inline void mca_btl_ofi_context_lock(mca_btl_ofi_context_t *context) +{ + while (mca_btl_ofi_context_trylock(context)); +} + +static inline void mca_btl_ofi_context_unlock(mca_btl_ofi_context_t *context) +{ + opal_atomic_mb(); + context->lock = 0; +} + +END_C_DECLS +#endif diff -Nru openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_module.c openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_module.c --- openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_module.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,447 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2013 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2014-2018 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2018 Intel, Inc, All rights reserved + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "opal_config.h" +#include +#include "opal/class/opal_bitmap.h" +#include "opal/mca/btl/btl.h" +#include "opal/datatype/opal_convertor.h" +#include "opal/mca/mpool/base/base.h" +#include "opal/mca/mpool/mpool.h" + +#include "btl_ofi.h" +#include "btl_ofi_endpoint.h" +#include "btl_ofi_frag.h" + +static int mca_btl_ofi_add_procs (mca_btl_base_module_t *btl, + size_t nprocs, opal_proc_t **opal_procs, + mca_btl_base_endpoint_t **peers, + opal_bitmap_t *reachable) +{ + int rc; + int count; + char *ep_name = NULL; + size_t namelen = mca_btl_ofi_component.namelen; + + opal_proc_t *proc; + mca_btl_base_endpoint_t *ep; + + mca_btl_ofi_module_t *ofi_btl = (mca_btl_ofi_module_t *) btl; + + for (size_t i = 0 ; i < nprocs ; ++i) { + + proc = opal_procs[i]; + + /* See if we already have an endpoint for this proc. */ + rc = opal_hash_table_get_value_uint64 (&ofi_btl->id_to_endpoint, (intptr_t) proc, (void **) &ep); + + if (OPAL_SUCCESS == rc) { + BTL_VERBOSE(("returning existing endpoint for proc %s", OPAL_NAME_PRINT(proc->proc_name))); + peers[i] = ep; + + } else { + /* We don't have this endpoint yet, create one */ + peers[i] = mca_btl_ofi_endpoint_create (proc, ofi_btl->ofi_endpoint); + BTL_VERBOSE(("creating peer %p", (void*) peers[i])); + + if (OPAL_UNLIKELY(NULL == peers[i])) { + return OPAL_ERR_OUT_OF_RESOURCE; + } + + /* Add this endpoint to the lookup table */ + (void) opal_hash_table_set_value_uint64 (&ofi_btl->id_to_endpoint, (intptr_t) proc, (void**) &ep); + } + + OPAL_MODEX_RECV(rc, &mca_btl_ofi_component.super.btl_version, + &peers[i]->ep_proc->proc_name, (void **)&ep_name, &namelen); + if (OPAL_SUCCESS != rc) { + BTL_ERROR(("error receiving modex")); + MCA_BTL_OFI_ABORT(); + } + + /* get peer fi_addr */ + count = fi_av_insert(ofi_btl->av, /* Address vector to insert */ + ep_name, /* peer name */ + 1, /* amount to insert */ + &peers[i]->peer_addr, /* return peer address here */ + 0, /* flags */ + NULL); /* context */ + + /* if succeed, add this proc and mark reachable */ + if (count == 1) { /* we inserted 1 address. */ + opal_list_append (&ofi_btl->endpoints, &peers[i]->super); + opal_bitmap_set_bit(reachable, i); + } else { + BTL_VERBOSE(("fi_av_insert failed with rc = %d", count)); + MCA_BTL_OFI_ABORT(); + } + } + + return OPAL_SUCCESS; +} + +static int mca_btl_ofi_del_procs (mca_btl_base_module_t *btl, size_t nprocs, + opal_proc_t **procs, mca_btl_base_endpoint_t **peers) +{ + int rc; + mca_btl_ofi_module_t *ofi_btl = (mca_btl_ofi_module_t *) btl; + mca_btl_base_endpoint_t *ep; + + for (size_t i = 0 ; i < nprocs ; ++i) { + if (peers[i]) { + rc = opal_hash_table_get_value_uint64 (&ofi_btl->id_to_endpoint, (intptr_t) procs[i], (void **) &ep); + + if (OPAL_SUCCESS == rc) { + /* remove the address from AV. */ + rc = fi_av_remove(ofi_btl->av, &peers[i]->peer_addr, 1, 0); + if (rc < 0) { + /* remove failed. this should not happen. */ + /* Lets not crash because we failed to remove an address. */ + BTL_ERROR(("fi_av_remove failed with error %d:%s", + rc, fi_strerror(-rc))); + } + + /* remove and free MPI endpoint from the list. */ + opal_list_remove_item (&ofi_btl->endpoints, &peers[i]->super); + (void) opal_hash_table_remove_value_uint64 (&ofi_btl->id_to_endpoint, (intptr_t) procs[i]); + OBJ_RELEASE(peers[i]); + } + } + } + + return OPAL_SUCCESS; +} + +void mca_btl_ofi_rcache_init (mca_btl_ofi_module_t *module) +{ + if (!module->initialized) { + mca_rcache_base_resources_t rcache_resources; + char *tmp; + + (void) asprintf (&tmp, "ofi.%s", module->linux_device_name); + + rcache_resources.cache_name = tmp; + rcache_resources.reg_data = (void *) module; + rcache_resources.sizeof_reg = sizeof (mca_btl_ofi_reg_t); + rcache_resources.register_mem = mca_btl_ofi_reg_mem; + rcache_resources.deregister_mem = mca_btl_ofi_dereg_mem; + + module->rcache = mca_rcache_base_module_create ("grdma", module, &rcache_resources); + free (tmp); + + if (NULL == module->rcache) { + /* something when horribly wrong */ + BTL_ERROR(("cannot create rcache")); + MCA_BTL_OFI_ABORT(); + } + + module->initialized = true; + } +} + + +/** + * @brief Register a memory region for put/get/atomic operations. + * + * @param btl (IN) BTL module + * @param endpoint(IN) BTL addressing information (or NULL for all endpoints) + * @param base (IN) Pointer to start of region + * @param size (IN) Size of region + * @param flags (IN) Flags indicating what operation will be performed. Valid + * values are MCA_BTL_DES_FLAGS_PUT, MCA_BTL_DES_FLAGS_GET, + * and MCA_BTL_DES_FLAGS_ATOMIC + * + * @returns a memory registration handle valid for both local and remote operations + * @returns NULL if the region could not be registered + * + * This function registers the specified region with the hardware for use with + * the btl_put, btl_get, btl_atomic_cas, btl_atomic_op, and btl_atomic_fop + * functions. Care should be taken to not hold an excessive number of registrations + * as they may use limited system/NIC resources. + */ +static struct mca_btl_base_registration_handle_t * +mca_btl_ofi_register_mem (struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *endpoint, void *base, + size_t size, uint32_t flags) +{ + mca_btl_ofi_module_t *ofi_module = (mca_btl_ofi_module_t *) btl; + mca_btl_ofi_reg_t *reg; + int access_flags = flags & MCA_BTL_REG_FLAG_ACCESS_ANY; + int rc; + + rc = ofi_module->rcache->rcache_register (ofi_module->rcache, base, size, 0, access_flags, + (mca_rcache_base_registration_t **) ®); + if (OPAL_UNLIKELY(OPAL_SUCCESS != rc)) { + return NULL; + } + + return ®->handle; +} + +/** + * @brief Deregister a memory region + * + * @param btl (IN) BTL module region was registered with + * @param handle (IN) BTL registration handle to deregister + * + * This function deregisters the memory region associated with the specified handle. Care + * should be taken to not perform any RDMA or atomic operation on this memory region + * after it is deregistered. It is erroneous to specify a memory handle associated with + * a remote node. + */ +static int mca_btl_ofi_deregister_mem (mca_btl_base_module_t *btl, mca_btl_base_registration_handle_t *handle) +{ + mca_btl_ofi_module_t *ofi_module = (mca_btl_ofi_module_t *) btl; + mca_btl_ofi_reg_t *reg = + (mca_btl_ofi_reg_t *)((intptr_t) handle - offsetof (mca_btl_ofi_reg_t, handle)); + + (void) ofi_module->rcache->rcache_deregister (ofi_module->rcache, ®->base); + + return OPAL_SUCCESS; +} + +int mca_btl_ofi_reg_mem (void *reg_data, void *base, size_t size, mca_rcache_base_registration_t *reg) +{ + int rc; + static uint64_t access_flags = FI_REMOTE_WRITE | FI_REMOTE_READ | FI_READ | FI_WRITE; + + mca_btl_ofi_module_t *btl = (mca_btl_ofi_module_t*) reg_data; + mca_btl_ofi_reg_t *ur = (mca_btl_ofi_reg_t*) reg; + + rc = fi_mr_reg(btl->domain, base, size, access_flags, 0, + (uint64_t) reg, 0, &ur->ur_mr, NULL); + if (0 != rc) { + return OPAL_ERR_OUT_OF_RESOURCE; + } + + ur->handle.rkey = fi_mr_key(ur->ur_mr); + ur->handle.desc = fi_mr_desc(ur->ur_mr); + + /* In case the provider doesn't support FI_MR_VIRT_ADDR, + * we need to reference the remote address by the distance from base registered + * address. We keep this information to use in rdma/atomic operations. */ + if (btl->use_virt_addr) { + ur->handle.base_addr = 0; + } else { + ur->handle.base_addr = base; + } + + return OPAL_SUCCESS; +} + +int mca_btl_ofi_dereg_mem (void *reg_data, mca_rcache_base_registration_t *reg) +{ + mca_btl_ofi_reg_t *ur = (mca_btl_ofi_reg_t*)reg; + + if (ur->ur_mr != NULL) { + if (0 != fi_close(&ur->ur_mr->fid)) { + BTL_ERROR(("%s: error unpinning memory mr=%p: %s", + __func__, (void*) ur->ur_mr, strerror(errno))); + return OPAL_ERROR; + } + } + + return OPAL_SUCCESS; +} + +/* + * Cleanup/release module resources. + */ + +int mca_btl_ofi_finalize (mca_btl_base_module_t* btl) +{ + int i; + mca_btl_ofi_module_t *ofi_btl = (mca_btl_ofi_module_t *) btl; + mca_btl_ofi_endpoint_t *endpoint, *next; + + assert(btl); + + /* clear the rcache */ + if (ofi_btl->rcache) { + mca_rcache_base_module_destroy (ofi_btl->rcache); + ofi_btl->rcache = NULL; + } + + /* Close basic ep before closing its attached resources. */ + if (NULL != ofi_btl->ofi_endpoint && !ofi_btl->is_scalable_ep) { + fi_close(&ofi_btl->ofi_endpoint->fid); + ofi_btl->ofi_endpoint = NULL; + } + + /* loop over all the contexts */ + for (i=0; i < ofi_btl->num_contexts; i++) { + mca_btl_ofi_context_finalize(&ofi_btl->contexts[i], ofi_btl->is_scalable_ep); + } + free(ofi_btl->contexts); + + if (NULL != ofi_btl->ofi_endpoint) { + fi_close(&ofi_btl->ofi_endpoint->fid); + } + + /* close ep before closing av */ + if (NULL != ofi_btl->av) { + fi_close(&ofi_btl->av->fid); + } + + if (NULL != ofi_btl->domain) { + fi_close(&ofi_btl->domain->fid); + } + + if (NULL != ofi_btl->fabric) { + fi_close(&ofi_btl->fabric->fid); + } + + if (NULL != ofi_btl->fabric_info) { + fi_freeinfo(ofi_btl->fabric_info); + } + + /* clean up any leftover endpoints */ + OPAL_LIST_FOREACH_SAFE(endpoint, next, &ofi_btl->endpoints, mca_btl_ofi_endpoint_t) { + opal_list_remove_item (&ofi_btl->endpoints, &endpoint->super); + OBJ_RELEASE(endpoint); + } + + OBJ_DESTRUCT(&ofi_btl->endpoints); + OBJ_DESTRUCT(&ofi_btl->id_to_endpoint); + OBJ_DESTRUCT(&ofi_btl->module_lock); + + free (btl); + + return OPAL_SUCCESS; +} + +/* Post wildcard recvs on the rx context. */ +int mca_btl_ofi_post_recvs (mca_btl_base_module_t *module, + mca_btl_ofi_context_t *context, + int count) +{ + int i; + int rc; + mca_btl_ofi_base_frag_t *frag; + mca_btl_ofi_frag_completion_t *comp; + + for (i=0; i < count; i++) { + frag = (mca_btl_ofi_base_frag_t*) mca_btl_ofi_alloc(module, + NULL, + 0, + MCA_BTL_OFI_FRAG_SIZE, + MCA_BTL_DES_FLAGS_BTL_OWNERSHIP); + if (NULL == frag) { + BTL_ERROR(("cannot allocate recv frag.")); + return OPAL_ERROR; + } + + comp = mca_btl_ofi_frag_completion_alloc (module, + context, + frag, + MCA_BTL_OFI_TYPE_RECV); + + rc = fi_recv (context->rx_ctx, &frag->hdr, MCA_BTL_OFI_RECV_SIZE, + NULL, FI_ADDR_UNSPEC, &comp->comp_ctx); + + if (FI_SUCCESS != rc) { + BTL_ERROR(("cannot post recvs")); + return OPAL_ERROR; + } + } + return OPAL_SUCCESS; +} + +/* Allocate and fill out the module capabilities according to operation mode. */ +mca_btl_ofi_module_t * mca_btl_ofi_module_alloc (int mode) +{ + mca_btl_ofi_module_t *module; + + /* allocate module */ + module = (mca_btl_ofi_module_t*) calloc(1, sizeof(mca_btl_ofi_module_t)); + if (NULL == module) { + return NULL; + } + + /* fill in the defaults */ + *module = mca_btl_ofi_module_template; + + if (mode == MCA_BTL_OFI_MODE_ONE_SIDED || mode == MCA_BTL_OFI_MODE_FULL_SUPPORT) { + + module->super.btl_put = mca_btl_ofi_put; + module->super.btl_get = mca_btl_ofi_get; + module->super.btl_atomic_op = mca_btl_ofi_aop; + module->super.btl_atomic_fop = mca_btl_ofi_afop; + module->super.btl_atomic_cswap = mca_btl_ofi_acswap; + module->super.btl_flush = mca_btl_ofi_flush; + + module->super.btl_register_mem = mca_btl_ofi_register_mem; + module->super.btl_deregister_mem = mca_btl_ofi_deregister_mem; + + module->super.btl_flags |= MCA_BTL_FLAGS_ATOMIC_FOPS | + MCA_BTL_FLAGS_ATOMIC_OPS | + MCA_BTL_FLAGS_RDMA; + + module->super.btl_atomic_flags = MCA_BTL_ATOMIC_SUPPORTS_ADD | + MCA_BTL_ATOMIC_SUPPORTS_SWAP | + MCA_BTL_ATOMIC_SUPPORTS_CSWAP | + MCA_BTL_ATOMIC_SUPPORTS_32BIT ; + + module->super.btl_put_limit = 1 << 23; + module->super.btl_put_alignment = 0; + + module->super.btl_get_limit = 1 << 23; + module->super.btl_get_alignment = 0; + + module->super.btl_registration_handle_size = + sizeof(mca_btl_base_registration_handle_t); + } + + if (mode == MCA_BTL_OFI_MODE_TWO_SIDED || mode == MCA_BTL_OFI_MODE_FULL_SUPPORT) { + + module->super.btl_alloc = mca_btl_ofi_alloc; + module->super.btl_free = mca_btl_ofi_free; + module->super.btl_prepare_src = mca_btl_ofi_prepare_src; + + module->super.btl_send = mca_btl_ofi_send; + + module->super.btl_flags |= MCA_BTL_FLAGS_SEND; + module->super.btl_eager_limit = MCA_BTL_OFI_FRAG_SIZE; + module->super.btl_max_send_size = MCA_BTL_OFI_FRAG_SIZE; + module->super.btl_rndv_eager_limit = MCA_BTL_OFI_FRAG_SIZE; + + /* If two sided is enabled, we expected that the user knows exactly what + * they want. We bump the priority to maximum, making this BTL the default. */ + module->super.btl_exclusivity = MCA_BTL_EXCLUSIVITY_HIGH; + } + + if (mode == MCA_BTL_OFI_MODE_FULL_SUPPORT) { + module->super.btl_rdma_pipeline_frag_size = 4 * 1024 * 1024; + module->super.btl_rdma_pipeline_send_length = 8 * 1024; + } + + return module; +} + +mca_btl_ofi_module_t mca_btl_ofi_module_template = { + .super = { + .btl_component = &mca_btl_ofi_component.super, + .btl_add_procs = mca_btl_ofi_add_procs, + .btl_del_procs = mca_btl_ofi_del_procs, + .btl_finalize = mca_btl_ofi_finalize, + } +}; diff -Nru openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_rdma.c openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_rdma.c --- openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_rdma.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_rdma.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,163 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2014-2018 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2018 Intel, Inc, All rights reserved + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "btl_ofi_rdma.h" + +OBJ_CLASS_INSTANCE(mca_btl_ofi_rdma_completion_t, + opal_free_list_item_t, + NULL, + NULL); + +mca_btl_ofi_rdma_completion_t *mca_btl_ofi_rdma_completion_alloc ( + mca_btl_base_module_t *btl, + mca_btl_base_endpoint_t *endpoint, + mca_btl_ofi_context_t *ofi_context, + void *local_address, + mca_btl_base_registration_handle_t *local_handle, + mca_btl_base_rdma_completion_fn_t cbfunc, + void *cbcontext, void *cbdata, + int type) +{ + assert(btl); + assert(endpoint); + assert(ofi_context); + + mca_btl_ofi_rdma_completion_t *comp; + + comp = (mca_btl_ofi_rdma_completion_t*) opal_free_list_get(&ofi_context->rdma_comp_list); + assert(comp); + + comp->base.btl = btl; + comp->base.endpoint = endpoint; + comp->base.my_context = ofi_context; + comp->base.my_list = &ofi_context->rdma_comp_list; + comp->base.type = type; + + comp->local_address = local_address; + comp->local_handle = local_handle; + comp->cbfunc = cbfunc; + comp->cbcontext = cbcontext; + comp->cbdata = cbdata; + + comp->comp_ctx.comp = comp; + + return comp; +} + +int mca_btl_ofi_get (mca_btl_base_module_t *btl, mca_btl_base_endpoint_t *endpoint, void *local_address, + uint64_t remote_address, mca_btl_base_registration_handle_t *local_handle, + mca_btl_base_registration_handle_t *remote_handle, size_t size, int flags, + int order, mca_btl_base_rdma_completion_fn_t cbfunc, void *cbcontext, void *cbdata) +{ + + int rc; + mca_btl_ofi_rdma_completion_t *comp; + + mca_btl_ofi_module_t *ofi_btl = (mca_btl_ofi_module_t *) btl; + mca_btl_ofi_endpoint_t *btl_endpoint = (mca_btl_ofi_endpoint_t*) endpoint; + mca_btl_ofi_context_t *ofi_context; + + ofi_context = get_ofi_context(ofi_btl); + + /* create completion context */ + comp = mca_btl_ofi_rdma_completion_alloc(btl, endpoint, + ofi_context, + local_address, + local_handle, + cbfunc, cbcontext, cbdata, + MCA_BTL_OFI_TYPE_GET); + + remote_address = (remote_address - (uint64_t) remote_handle->base_addr); + + /* Remote write data across the wire */ + rc = fi_read(ofi_context->tx_ctx, + local_address, size, /* payload */ + local_handle->desc, + btl_endpoint->peer_addr, + remote_address, remote_handle->rkey, + &comp->comp_ctx); /* completion context */ + + if (-FI_EAGAIN == rc) { + opal_free_list_return(comp->base.my_list, (opal_free_list_item_t*) comp); + return OPAL_ERR_OUT_OF_RESOURCE; + } + + if (0 != rc) { + opal_free_list_return(comp->base.my_list, (opal_free_list_item_t*) comp); + BTL_ERROR(("fi_read failed with %d:%s", rc, fi_strerror(-rc))); + MCA_BTL_OFI_ABORT(); + } + + MCA_BTL_OFI_NUM_RDMA_INC(ofi_btl); + + return OPAL_SUCCESS; +} + +int mca_btl_ofi_put (mca_btl_base_module_t *btl, mca_btl_base_endpoint_t *endpoint, void *local_address, + uint64_t remote_address, mca_btl_base_registration_handle_t *local_handle, + mca_btl_base_registration_handle_t *remote_handle, size_t size, int flags, + int order, mca_btl_base_rdma_completion_fn_t cbfunc, void *cbcontext, void *cbdata) +{ + int rc; + mca_btl_ofi_module_t *ofi_btl = (mca_btl_ofi_module_t *) btl; + mca_btl_ofi_endpoint_t *btl_endpoint = (mca_btl_ofi_endpoint_t*) endpoint; + mca_btl_ofi_context_t *ofi_context; + + ofi_context = get_ofi_context(ofi_btl); + + /* create completion context */ + mca_btl_ofi_rdma_completion_t *comp; + comp = mca_btl_ofi_rdma_completion_alloc(btl, endpoint, + ofi_context, + local_address, + local_handle, + cbfunc, cbcontext, cbdata, + MCA_BTL_OFI_TYPE_PUT); + + remote_address = (remote_address - (uint64_t) remote_handle->base_addr); + + /* Remote write data across the wire */ + rc = fi_write(ofi_context->tx_ctx, + local_address, size, /* payload */ + local_handle->desc, + btl_endpoint->peer_addr, + remote_address, remote_handle->rkey, + &comp->comp_ctx); /* completion context */ + + if (-FI_EAGAIN == rc) { + opal_free_list_return(comp->base.my_list, (opal_free_list_item_t*) comp); + return OPAL_ERR_OUT_OF_RESOURCE; + } + + if (0 != rc) { + opal_free_list_return(comp->base.my_list, (opal_free_list_item_t*) comp); + BTL_ERROR(("fi_write failed with %d:%s", rc, fi_strerror(-rc))); + MCA_BTL_OFI_ABORT(); + } + + MCA_BTL_OFI_NUM_RDMA_INC(ofi_btl); + + return OPAL_SUCCESS; + +} + +int mca_btl_ofi_flush (mca_btl_base_module_t *btl, mca_btl_base_endpoint_t *endpoint) +{ + mca_btl_ofi_module_t *ofi_btl = (mca_btl_ofi_module_t *) btl; + + while(ofi_btl->outstanding_rdma > 0) { + (void) mca_btl_ofi_component.super.btl_progress(); + } + + return OPAL_SUCCESS; +} diff -Nru openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_rdma.h openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_rdma.h --- openmpi-4.0.3/opal/mca/btl/ofi/btl_ofi_rdma.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/ofi/btl_ofi_rdma.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,42 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2014-2018 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2018 Intel, Inc, All rights reserved + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef BTL_OFI_RDMA_H +#define BTL_OFI_RDMA_H + +#include "opal/threads/thread_usage.h" + +#include "btl_ofi.h" +#include "btl_ofi_endpoint.h" + +mca_btl_ofi_rdma_completion_t *mca_btl_ofi_rdma_completion_alloc ( + mca_btl_base_module_t *btl, + mca_btl_base_endpoint_t *endpoint, + mca_btl_ofi_context_t *ofi_context, + void *local_address, + mca_btl_base_registration_handle_t *local_handle, + mca_btl_base_rdma_completion_fn_t cbfunc, + void *cbcontext, void *cbdata, + int type); + +#define MCA_BTL_OFI_NUM_RDMA_INC(module) \ + OPAL_THREAD_ADD_FETCH64(&(module)->outstanding_rdma, 1); \ + if (module->outstanding_rdma > mca_btl_ofi_component.progress_threshold){ \ + mca_btl_ofi_component.super.btl_progress(); \ + } + +#define MCA_BTL_OFI_NUM_RDMA_DEC(module) \ + OPAL_THREAD_ADD_FETCH64(&(module)->outstanding_rdma, -1); + +#endif /* !defined(BTL_OFI_RDMA_H) */ + diff -Nru openmpi-4.0.3/opal/mca/btl/ofi/configure.m4 openmpi-4.1.4/opal/mca/btl/ofi/configure.m4 --- openmpi-4.0.3/opal/mca/btl/ofi/configure.m4 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/ofi/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,52 @@ +# -*- shell-script -*- +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2006 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2006 QLogic Corp. All rights reserved. +# Copyright (c) 2009-2019 Cisco Systems, Inc. All rights reserved +# Copyright (c) 2011-2018 Los Alamos National Security, LLC. +# All rights reserved. +# Copyright (c) 2018 Intel, inc. All rights reserved +# +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# OPAL_CHECK_OFI(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if OFI support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found + +AC_DEFUN([MCA_opal_btl_ofi_CONFIG],[ + OPAL_VAR_SCOPE_PUSH([opal_btl_ofi_happy CPPFLAGS_save]) + + AC_CONFIG_FILES([opal/mca/btl/ofi/Makefile]) + + # Check for OFI + OPAL_CHECK_OFI + + opal_btl_ofi_happy=0 + AS_IF([test "$opal_ofi_happy" = "yes"], + [CPPFLAGS_save=$CPPFLAGS + CPPFLAGS="$opal_ofi_CPPFLAGS $CPPFLAGS" + AC_CHECK_DECL([FI_MR_VIRT_ADDR], [opal_btl_ofi_happy=1], [], + [#include ]) + CPPFLAGS=$CPPFLAGS_save]) + AS_IF([test $opal_btl_ofi_happy -eq 1], + [$1], + [$2]) + + OPAL_VAR_SCOPE_POP +])dnl diff -Nru openmpi-4.0.3/opal/mca/btl/ofi/Makefile.am openmpi-4.1.4/opal/mca/btl/ofi/Makefile.am --- openmpi-4.0.3/opal/mca/btl/ofi/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/ofi/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,69 @@ +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2009 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2009-2019 Cisco Systems, Inc. All rights reserved +# Copyright (c) 2013 NVIDIA Corporation. All rights reserved. +# Copyright (c) 2017 IBM Corporation. All rights reserved. +# Copyright (c) 2018 Intel, inc. All rights reserved +# Copyright (c) 2020 Triad National Security, LLC. All rights +# reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +#dist_opaldata_DATA = help-mpi-btl-ofi.txt + +AM_CPPFLAGS = $(opal_ofi_CPPFLAGS) +sources = \ + btl_ofi.h \ + btl_ofi_component.c \ + btl_ofi_endpoint.h \ + btl_ofi_endpoint.c \ + btl_ofi_module.c \ + btl_ofi_rdma.h \ + btl_ofi_rdma.c \ + btl_ofi_atomics.c \ + btl_ofi_frag.c \ + btl_ofi_frag.h \ + btl_ofi_context.c + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). + +if MCA_BUILD_opal_btl_ofi_DSO +lib = +lib_sources = +component = mca_btl_ofi.la +component_sources = $(sources) +else +lib = libmca_btl_ofi.la +lib_sources = $(sources) +component = +component_sources = +endif + +mcacomponentdir = $(opallibdir) +mcacomponent_LTLIBRARIES = $(component) +mca_btl_ofi_la_SOURCES = $(component_sources) +mca_btl_ofi_la_LDFLAGS = -module -avoid-version \ + $(opal_ofi_LDFLAGS) +mca_btl_ofi_la_LIBADD = $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \ + $(OPAL_TOP_BUILDDIR)/opal/mca/common/ofi/lib@OPAL_LIB_PREFIX@mca_common_ofi.la \ + $(opal_ofi_LIBS) + +noinst_LTLIBRARIES = $(lib) +libmca_btl_ofi_la_SOURCES = $(lib_sources) +libmca_btl_ofi_la_LDFLAGS = -module -avoid-version $(opal_ofi_LDFLAGS) +libmca_btl_ofi_la_LIBS = $(opal_ofi_LIBS) diff -Nru openmpi-4.0.3/opal/mca/btl/ofi/Makefile.in openmpi-4.1.4/opal/mca/btl/ofi/Makefile.in --- openmpi-4.0.3/opal/mca/btl/ofi/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/ofi/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,2161 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2009 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2009-2019 Cisco Systems, Inc. All rights reserved +# Copyright (c) 2013 NVIDIA Corporation. All rights reserved. +# Copyright (c) 2017 IBM Corporation. All rights reserved. +# Copyright (c) 2018 Intel, inc. All rights reserved +# Copyright (c) 2020 Triad National Security, LLC. All rights +# reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +#dist_opaldata_DATA = help-mpi-btl-ofi.txt + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = opal/mca/btl/ofi +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/c_weak_symbols.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ + $(top_srcdir)/config/ompi_check_libfca.m4 \ + $(top_srcdir)/config/ompi_check_libhcoll.m4 \ + $(top_srcdir)/config/ompi_check_lustre.m4 \ + $(top_srcdir)/config/ompi_check_mxm.m4 \ + $(top_srcdir)/config/ompi_check_psm.m4 \ + $(top_srcdir)/config/ompi_check_psm2.m4 \ + $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ + $(top_srcdir)/config/ompi_check_ucx.m4 \ + $(top_srcdir)/config/ompi_config_files.m4 \ + $(top_srcdir)/config/ompi_configure_options.m4 \ + $(top_srcdir)/config/ompi_contrib.m4 \ + $(top_srcdir)/config/ompi_cxx_find_exception_flags.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_parameters.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_repository.m4 \ + $(top_srcdir)/config/ompi_cxx_have_exceptions.m4 \ + $(top_srcdir)/config/ompi_endpoint_tag.m4 \ + $(top_srcdir)/config/ompi_ext.m4 \ + $(top_srcdir)/config/ompi_find_mpi_aint_count_offset.m4 \ + $(top_srcdir)/config/ompi_fortran_check.m4 \ + $(top_srcdir)/config/ompi_fortran_check_abstract.m4 \ + $(top_srcdir)/config/ompi_fortran_check_asynchronous.m4 \ + $(top_srcdir)/config/ompi_fortran_check_bind_c.m4 \ + $(top_srcdir)/config/ompi_fortran_check_c_funloc.m4 \ + $(top_srcdir)/config/ompi_fortran_check_f08_assumed_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_ignore_tkr.m4 \ + $(top_srcdir)/config/ompi_fortran_check_interface.m4 \ + $(top_srcdir)/config/ompi_fortran_check_iso_fortran_env.m4 \ + $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ + $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ + $(top_srcdir)/config/ompi_fortran_check_private.m4 \ + $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ + $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ + $(top_srcdir)/config/ompi_fortran_check_real16_c_equiv.m4 \ + $(top_srcdir)/config/ompi_fortran_check_storage_size.m4 \ + $(top_srcdir)/config/ompi_fortran_check_type.m4 \ + $(top_srcdir)/config/ompi_fortran_check_use_only.m4 \ + $(top_srcdir)/config/ompi_fortran_find_ext_symbol_convention.m4 \ + $(top_srcdir)/config/ompi_fortran_find_module_include_flag.m4 \ + $(top_srcdir)/config/ompi_fortran_get_alignment.m4 \ + $(top_srcdir)/config/ompi_fortran_get_handle_max.m4 \ + $(top_srcdir)/config/ompi_fortran_get_kind_value.m4 \ + $(top_srcdir)/config/ompi_fortran_get_sizeof.m4 \ + $(top_srcdir)/config/ompi_fortran_get_value_true.m4 \ + $(top_srcdir)/config/ompi_interix.m4 \ + $(top_srcdir)/config/ompi_setup_contrib.m4 \ + $(top_srcdir)/config/ompi_setup_cxx.m4 \ + $(top_srcdir)/config/ompi_setup_fc.m4 \ + $(top_srcdir)/config/ompi_setup_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_ext.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_fortran.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_profiling.m4 \ + $(top_srcdir)/config/opal_case_sensitive_fs_setup.m4 \ + $(top_srcdir)/config/opal_check_alps.m4 \ + $(top_srcdir)/config/opal_check_attributes.m4 \ + $(top_srcdir)/config/opal_check_broken_qsort.m4 \ + $(top_srcdir)/config/opal_check_cma.m4 \ + $(top_srcdir)/config/opal_check_compiler_version.m4 \ + $(top_srcdir)/config/opal_check_compiler_works.m4 \ + $(top_srcdir)/config/opal_check_cray_pmi.m4 \ + $(top_srcdir)/config/opal_check_cuda.m4 \ + $(top_srcdir)/config/opal_check_icc.m4 \ + $(top_srcdir)/config/opal_check_ident.m4 \ + $(top_srcdir)/config/opal_check_knem.m4 \ + $(top_srcdir)/config/opal_check_libnl.m4 \ + $(top_srcdir)/config/opal_check_offsetof.m4 \ + $(top_srcdir)/config/opal_check_ofi.m4 \ + $(top_srcdir)/config/opal_check_openfabrics.m4 \ + $(top_srcdir)/config/opal_check_os_flavors.m4 \ + $(top_srcdir)/config/opal_check_package.m4 \ + $(top_srcdir)/config/opal_check_pmi.m4 \ + $(top_srcdir)/config/opal_check_portals4.m4 \ + $(top_srcdir)/config/opal_check_ps.m4 \ + $(top_srcdir)/config/opal_check_pthread_pids.m4 \ + $(top_srcdir)/config/opal_check_singularity.m4 \ + $(top_srcdir)/config/opal_check_ugni.m4 \ + $(top_srcdir)/config/opal_check_vendor.m4 \ + $(top_srcdir)/config/opal_check_verbs.m4 \ + $(top_srcdir)/config/opal_check_visibility.m4 \ + $(top_srcdir)/config/opal_check_withdir.m4 \ + $(top_srcdir)/config/opal_check_xpmem.m4 \ + $(top_srcdir)/config/opal_config_asm.m4 \ + $(top_srcdir)/config/opal_config_files.m4 \ + $(top_srcdir)/config/opal_config_pthreads.m4 \ + $(top_srcdir)/config/opal_config_subdir.m4 \ + $(top_srcdir)/config/opal_config_subdir_args.m4 \ + $(top_srcdir)/config/opal_config_threads.m4 \ + $(top_srcdir)/config/opal_configure_options.m4 \ + $(top_srcdir)/config/opal_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/opal_find_type.m4 \ + $(top_srcdir)/config/opal_functions.m4 \ + $(top_srcdir)/config/opal_lang_link_with_c.m4 \ + $(top_srcdir)/config/opal_load_platform.m4 \ + $(top_srcdir)/config/opal_mca.m4 \ + $(top_srcdir)/config/opal_save_version.m4 \ + $(top_srcdir)/config/opal_search_libs.m4 \ + $(top_srcdir)/config/opal_set_lib_prefix.m4 \ + $(top_srcdir)/config/opal_set_mca_prefix.m4 \ + $(top_srcdir)/config/opal_setup_cc.m4 \ + $(top_srcdir)/config/opal_setup_cli.m4 \ + $(top_srcdir)/config/opal_setup_cxx.m4 \ + $(top_srcdir)/config/opal_setup_ft.m4 \ + $(top_srcdir)/config/opal_setup_wrappers.m4 \ + $(top_srcdir)/config/opal_setup_zlib.m4 \ + $(top_srcdir)/config/opal_strip_optflags.m4 \ + $(top_srcdir)/config/opal_summary.m4 \ + $(top_srcdir)/config/opal_try_assemble.m4 \ + $(top_srcdir)/config/orte_check_lsf.m4 \ + $(top_srcdir)/config/orte_check_moab.m4 \ + $(top_srcdir)/config/orte_check_sge.m4 \ + $(top_srcdir)/config/orte_check_slurm.m4 \ + $(top_srcdir)/config/orte_check_tm.m4 \ + $(top_srcdir)/config/orte_config_files.m4 \ + $(top_srcdir)/config/orte_configure_options.m4 \ + $(top_srcdir)/config/orte_setup_debugger_flags.m4 \ + $(top_srcdir)/config/oshmem_config_files.m4 \ + $(top_srcdir)/config/oshmem_configure_options.m4 \ + $(top_srcdir)/config/oshmem_setup_profiling.m4 \ + $(top_srcdir)/config/pkg.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/opal/mca/backtrace/configure.m4 \ + $(top_srcdir)/opal/mca/dl/configure.m4 \ + $(top_srcdir)/opal/mca/event/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/configure.m4 \ + $(top_srcdir)/opal/mca/memcpy/configure.m4 \ + $(top_srcdir)/opal/mca/memory/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/configure.m4 \ + $(top_srcdir)/opal/mca/timer/configure.m4 \ + $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/common/sm/configure.m4 \ + $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs_usnic/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ + $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ + $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ + $(top_srcdir)/opal/mca/btl/smcuda/configure.m4 \ + $(top_srcdir)/opal/mca/btl/tcp/configure.m4 \ + $(top_srcdir)/opal/mca/btl/uct/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ugni/configure.m4 \ + $(top_srcdir)/opal/mca/btl/usnic/configure.m4 \ + $(top_srcdir)/opal/mca/btl/vader/configure.m4 \ + $(top_srcdir)/opal/mca/crs/self/configure.m4 \ + $(top_srcdir)/opal/mca/dl/dlopen/configure.m4 \ + $(top_srcdir)/opal/mca/dl/libltdl/configure.m4 \ + $(top_srcdir)/opal/mca/event/external/configure.m4 \ + $(top_srcdir)/opal/mca/event/libevent2022/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/external/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_pkg.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_attributes.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_visibility.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_vendor.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_components.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_internal.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/netloc.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/linux_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/posix_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/solaris_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/config/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/env/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/valgrind/configure.m4 \ + $(top_srcdir)/opal/mca/memory/malloc_solaris/configure.m4 \ + $(top_srcdir)/opal/mca/memory/patcher/configure.m4 \ + $(top_srcdir)/opal/mca/mpool/memkind/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/linux/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/overwrite/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/cray/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext1x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext2x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/flux/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/pmix3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s1/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s2/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/linux/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/test/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/gpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/rgpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/udreg/configure.m4 \ + $(top_srcdir)/opal/mca/reachable/netlink/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/mmap/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/posix/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/sysv/configure.m4 \ + $(top_srcdir)/opal/mca/timer/altix/configure.m4 \ + $(top_srcdir)/opal/mca/timer/darwin/configure.m4 \ + $(top_srcdir)/opal/mca/timer/linux/configure.m4 \ + $(top_srcdir)/opal/mca/timer/solaris/configure.m4 \ + $(top_srcdir)/orte/mca/common/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ess/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ess/tm/configure.m4 \ + $(top_srcdir)/orte/mca/odls/alps/configure.m4 \ + $(top_srcdir)/orte/mca/odls/default/configure.m4 \ + $(top_srcdir)/orte/mca/odls/pspawn/configure.m4 \ + $(top_srcdir)/orte/mca/oob/alps/configure.m4 \ + $(top_srcdir)/orte/mca/oob/tcp/configure.m4 \ + $(top_srcdir)/orte/mca/plm/alps/configure.m4 \ + $(top_srcdir)/orte/mca/plm/isolated/configure.m4 \ + $(top_srcdir)/orte/mca/plm/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/plm/rsh/configure.m4 \ + $(top_srcdir)/orte/mca/plm/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/plm/tm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ras/gridengine/configure.m4 \ + $(top_srcdir)/orte/mca/ras/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/snapc/full/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/central/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/stage/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/configure.m4 \ + $(top_srcdir)/ompi/mca/fcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/configure.m4 \ + $(top_srcdir)/ompi/mca/hook/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/configure.m4 \ + $(top_srcdir)/ompi/mca/common/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/common/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/bml/r2/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/cuda/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/fca/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ + $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ + $(top_srcdir)/ompi/mca/io/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/io/romio321/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/ofi/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/rdma/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/crcpw/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ob1/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/v/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/yalla/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/orte/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/pmix/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/sm/configure.m4 \ + $(top_srcdir)/ompi/mca/topo/treematch/configure.m4 \ + $(top_srcdir)/oshmem/mca/memheap/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/sysv/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/verbs/configure.m4 \ + $(top_srcdir)/ompi/mpiext/affinity/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cr/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cuda/configure.m4 \ + $(top_srcdir)/ompi/mpiext/pcollreq/configure.m4 \ + $(top_srcdir)/ompi/contrib/libompitrace/configure.m4 \ + $(top_srcdir)/config/opal_get_version.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/opal/include/opal_config.h \ + $(top_builddir)/ompi/include/mpi.h \ + $(top_builddir)/oshmem/include/shmem.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen/config.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen/config.h \ + $(top_builddir)/ompi/mpiext/cuda/c/mpiext_cuda_c.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(mcacomponentdir)" +LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) +libmca_btl_ofi_la_LIBADD = +am__libmca_btl_ofi_la_SOURCES_DIST = btl_ofi.h btl_ofi_component.c \ + btl_ofi_endpoint.h btl_ofi_endpoint.c btl_ofi_module.c \ + btl_ofi_rdma.h btl_ofi_rdma.c btl_ofi_atomics.c btl_ofi_frag.c \ + btl_ofi_frag.h btl_ofi_context.c +am__objects_1 = btl_ofi_component.lo btl_ofi_endpoint.lo \ + btl_ofi_module.lo btl_ofi_rdma.lo btl_ofi_atomics.lo \ + btl_ofi_frag.lo btl_ofi_context.lo +@MCA_BUILD_opal_btl_ofi_DSO_FALSE@am__objects_2 = $(am__objects_1) +am_libmca_btl_ofi_la_OBJECTS = $(am__objects_2) +libmca_btl_ofi_la_OBJECTS = $(am_libmca_btl_ofi_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libmca_btl_ofi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libmca_btl_ofi_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +@MCA_BUILD_opal_btl_ofi_DSO_FALSE@am_libmca_btl_ofi_la_rpath = +am__DEPENDENCIES_1 = +mca_btl_ofi_la_DEPENDENCIES = \ + $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \ + $(OPAL_TOP_BUILDDIR)/opal/mca/common/ofi/lib@OPAL_LIB_PREFIX@mca_common_ofi.la \ + $(am__DEPENDENCIES_1) +am__mca_btl_ofi_la_SOURCES_DIST = btl_ofi.h btl_ofi_component.c \ + btl_ofi_endpoint.h btl_ofi_endpoint.c btl_ofi_module.c \ + btl_ofi_rdma.h btl_ofi_rdma.c btl_ofi_atomics.c btl_ofi_frag.c \ + btl_ofi_frag.h btl_ofi_context.c +@MCA_BUILD_opal_btl_ofi_DSO_TRUE@am__objects_3 = $(am__objects_1) +am_mca_btl_ofi_la_OBJECTS = $(am__objects_3) +mca_btl_ofi_la_OBJECTS = $(am_mca_btl_ofi_la_OBJECTS) +mca_btl_ofi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(mca_btl_ofi_la_LDFLAGS) $(LDFLAGS) -o \ + $@ +@MCA_BUILD_opal_btl_ofi_DSO_TRUE@am_mca_btl_ofi_la_rpath = -rpath \ +@MCA_BUILD_opal_btl_ofi_DSO_TRUE@ $(mcacomponentdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/opal/include -I$(top_builddir)/ompi/include -I$(top_builddir)/oshmem/include -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen -I$(top_builddir)/ompi/mpiext/cuda/c +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libmca_btl_ofi_la_SOURCES) $(mca_btl_ofi_la_SOURCES) +DIST_SOURCES = $(am__libmca_btl_ofi_la_SOURCES_DIST) \ + $(am__mca_btl_ofi_la_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/config/depcomp \ + README +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMCA_PARAM_SETS_DIR = @AMCA_PARAM_SETS_DIR@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BASH = @BASH@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAGS_WITHOUT_OPTFLAGS = @CFLAGS_WITHOUT_OPTFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CRAY_ALPSLLI_CFLAGS = @CRAY_ALPSLLI_CFLAGS@ +CRAY_ALPSLLI_LIBS = @CRAY_ALPSLLI_LIBS@ +CRAY_ALPSLLI_STATIC_LIBS = @CRAY_ALPSLLI_STATIC_LIBS@ +CRAY_ALPSUTIL_CFLAGS = @CRAY_ALPSUTIL_CFLAGS@ +CRAY_ALPSUTIL_LIBS = @CRAY_ALPSUTIL_LIBS@ +CRAY_ALPSUTIL_STATIC_LIBS = @CRAY_ALPSUTIL_STATIC_LIBS@ +CRAY_ALPS_CFLAGS = @CRAY_ALPS_CFLAGS@ +CRAY_ALPS_LIBS = @CRAY_ALPS_LIBS@ +CRAY_ALPS_STATIC_LIBS = @CRAY_ALPS_STATIC_LIBS@ +CRAY_PMI_CFLAGS = @CRAY_PMI_CFLAGS@ +CRAY_PMI_LIBS = @CRAY_PMI_LIBS@ +CRAY_PMI_STATIC_LIBS = @CRAY_PMI_STATIC_LIBS@ +CRAY_UDREG_CFLAGS = @CRAY_UDREG_CFLAGS@ +CRAY_UDREG_LIBS = @CRAY_UDREG_LIBS@ +CRAY_UGNI_CFLAGS = @CRAY_UGNI_CFLAGS@ +CRAY_UGNI_LIBS = @CRAY_UGNI_LIBS@ +CRAY_WLM_DETECT_CFLAGS = @CRAY_WLM_DETECT_CFLAGS@ +CRAY_WLM_DETECT_LIBS = @CRAY_WLM_DETECT_LIBS@ +CRAY_WLM_DETECT_STATIC_LIBS = @CRAY_WLM_DETECT_STATIC_LIBS@ +CRAY_XPMEM_CFLAGS = @CRAY_XPMEM_CFLAGS@ +CRAY_XPMEM_LIBS = @CRAY_XPMEM_LIBS@ +CRAY_XPMEM_STATIC_LIBS = @CRAY_XPMEM_STATIC_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXCPPFLAGS = @CXXCPPFLAGS@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUGGER_CFLAGS = @DEBUGGER_CFLAGS@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FC = @FC@ +FCFLAGS = @FCFLAGS@ +FCFLAGS_f = @FCFLAGS_f@ +FCFLAGS_f90 = @FCFLAGS_f90@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLUX_PMI_CFLAGS = @FLUX_PMI_CFLAGS@ +FLUX_PMI_LIBS = @FLUX_PMI_LIBS@ +GREP = @GREP@ +HWLOC_CFLAGS = @HWLOC_CFLAGS@ +HWLOC_CPPFLAGS = @HWLOC_CPPFLAGS@ +HWLOC_CUDA_LIBS = @HWLOC_CUDA_LIBS@ +HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@ +HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@ +HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@ +HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@ +HWLOC_GL_LIBS = @HWLOC_GL_LIBS@ +HWLOC_HAVE_LIBXML2 = @HWLOC_HAVE_LIBXML2@ +HWLOC_HAVE_NVML = @HWLOC_HAVE_NVML@ +HWLOC_HAVE_OPENCL = @HWLOC_HAVE_OPENCL@ +HWLOC_LDFLAGS = @HWLOC_LDFLAGS@ +HWLOC_LIBS = @HWLOC_LIBS@ +HWLOC_LIBS_PRIVATE = @HWLOC_LIBS_PRIVATE@ +HWLOC_LIBXML2_CFLAGS = @HWLOC_LIBXML2_CFLAGS@ +HWLOC_LIBXML2_LIBS = @HWLOC_LIBXML2_LIBS@ +HWLOC_MS_LIB = @HWLOC_MS_LIB@ +HWLOC_MS_LIB_ARCH = @HWLOC_MS_LIB_ARCH@ +HWLOC_NVML_LIBS = @HWLOC_NVML_LIBS@ +HWLOC_OPENCL_CFLAGS = @HWLOC_OPENCL_CFLAGS@ +HWLOC_OPENCL_LDFLAGS = @HWLOC_OPENCL_LDFLAGS@ +HWLOC_OPENCL_LIBS = @HWLOC_OPENCL_LIBS@ +HWLOC_PCIACCESS_CFLAGS = @HWLOC_PCIACCESS_CFLAGS@ +HWLOC_PCIACCESS_LIBS = @HWLOC_PCIACCESS_LIBS@ +HWLOC_PLUGINS_DIR = @HWLOC_PLUGINS_DIR@ +HWLOC_PLUGINS_PATH = @HWLOC_PLUGINS_PATH@ +HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@ +HWLOC_REQUIRES = @HWLOC_REQUIRES@ +HWLOC_VERSION = @HWLOC_VERSION@ +HWLOC_X11_CPPFLAGS = @HWLOC_X11_CPPFLAGS@ +HWLOC_X11_LIBS = @HWLOC_X11_LIBS@ +HWLOC_top_builddir = @HWLOC_top_builddir@ +HWLOC_top_srcdir = @HWLOC_top_srcdir@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JAR = @JAR@ +JAVAC = @JAVAC@ +JAVADOC = @JAVADOC@ +JAVAH = @JAVAH@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ +MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ +MCA_ompi_FRAMEWORKS_SUBDIRS = @MCA_ompi_FRAMEWORKS_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_ompi_FRAMEWORK_LIBS = @MCA_ompi_FRAMEWORK_LIBS@ +MCA_ompi_bml_ALL_COMPONENTS = @MCA_ompi_bml_ALL_COMPONENTS@ +MCA_ompi_bml_ALL_SUBDIRS = @MCA_ompi_bml_ALL_SUBDIRS@ +MCA_ompi_bml_DSO_COMPONENTS = @MCA_ompi_bml_DSO_COMPONENTS@ +MCA_ompi_bml_DSO_SUBDIRS = @MCA_ompi_bml_DSO_SUBDIRS@ +MCA_ompi_bml_STATIC_COMPONENTS = @MCA_ompi_bml_STATIC_COMPONENTS@ +MCA_ompi_bml_STATIC_LTLIBS = @MCA_ompi_bml_STATIC_LTLIBS@ +MCA_ompi_bml_STATIC_SUBDIRS = @MCA_ompi_bml_STATIC_SUBDIRS@ +MCA_ompi_coll_ALL_COMPONENTS = @MCA_ompi_coll_ALL_COMPONENTS@ +MCA_ompi_coll_ALL_SUBDIRS = @MCA_ompi_coll_ALL_SUBDIRS@ +MCA_ompi_coll_DSO_COMPONENTS = @MCA_ompi_coll_DSO_COMPONENTS@ +MCA_ompi_coll_DSO_SUBDIRS = @MCA_ompi_coll_DSO_SUBDIRS@ +MCA_ompi_coll_STATIC_COMPONENTS = @MCA_ompi_coll_STATIC_COMPONENTS@ +MCA_ompi_coll_STATIC_LTLIBS = @MCA_ompi_coll_STATIC_LTLIBS@ +MCA_ompi_coll_STATIC_SUBDIRS = @MCA_ompi_coll_STATIC_SUBDIRS@ +MCA_ompi_common_ALL_COMPONENTS = @MCA_ompi_common_ALL_COMPONENTS@ +MCA_ompi_common_ALL_SUBDIRS = @MCA_ompi_common_ALL_SUBDIRS@ +MCA_ompi_common_DSO_COMPONENTS = @MCA_ompi_common_DSO_COMPONENTS@ +MCA_ompi_common_DSO_SUBDIRS = @MCA_ompi_common_DSO_SUBDIRS@ +MCA_ompi_common_STATIC_COMPONENTS = @MCA_ompi_common_STATIC_COMPONENTS@ +MCA_ompi_common_STATIC_LTLIBS = @MCA_ompi_common_STATIC_LTLIBS@ +MCA_ompi_common_STATIC_SUBDIRS = @MCA_ompi_common_STATIC_SUBDIRS@ +MCA_ompi_crcp_ALL_COMPONENTS = @MCA_ompi_crcp_ALL_COMPONENTS@ +MCA_ompi_crcp_ALL_SUBDIRS = @MCA_ompi_crcp_ALL_SUBDIRS@ +MCA_ompi_crcp_DSO_COMPONENTS = @MCA_ompi_crcp_DSO_COMPONENTS@ +MCA_ompi_crcp_DSO_SUBDIRS = @MCA_ompi_crcp_DSO_SUBDIRS@ +MCA_ompi_crcp_STATIC_COMPONENTS = @MCA_ompi_crcp_STATIC_COMPONENTS@ +MCA_ompi_crcp_STATIC_LTLIBS = @MCA_ompi_crcp_STATIC_LTLIBS@ +MCA_ompi_crcp_STATIC_SUBDIRS = @MCA_ompi_crcp_STATIC_SUBDIRS@ +MCA_ompi_fbtl_ALL_COMPONENTS = @MCA_ompi_fbtl_ALL_COMPONENTS@ +MCA_ompi_fbtl_ALL_SUBDIRS = @MCA_ompi_fbtl_ALL_SUBDIRS@ +MCA_ompi_fbtl_DSO_COMPONENTS = @MCA_ompi_fbtl_DSO_COMPONENTS@ +MCA_ompi_fbtl_DSO_SUBDIRS = @MCA_ompi_fbtl_DSO_SUBDIRS@ +MCA_ompi_fbtl_STATIC_COMPONENTS = @MCA_ompi_fbtl_STATIC_COMPONENTS@ +MCA_ompi_fbtl_STATIC_LTLIBS = @MCA_ompi_fbtl_STATIC_LTLIBS@ +MCA_ompi_fbtl_STATIC_SUBDIRS = @MCA_ompi_fbtl_STATIC_SUBDIRS@ +MCA_ompi_fcoll_ALL_COMPONENTS = @MCA_ompi_fcoll_ALL_COMPONENTS@ +MCA_ompi_fcoll_ALL_SUBDIRS = @MCA_ompi_fcoll_ALL_SUBDIRS@ +MCA_ompi_fcoll_DSO_COMPONENTS = @MCA_ompi_fcoll_DSO_COMPONENTS@ +MCA_ompi_fcoll_DSO_SUBDIRS = @MCA_ompi_fcoll_DSO_SUBDIRS@ +MCA_ompi_fcoll_STATIC_COMPONENTS = @MCA_ompi_fcoll_STATIC_COMPONENTS@ +MCA_ompi_fcoll_STATIC_LTLIBS = @MCA_ompi_fcoll_STATIC_LTLIBS@ +MCA_ompi_fcoll_STATIC_SUBDIRS = @MCA_ompi_fcoll_STATIC_SUBDIRS@ +MCA_ompi_fs_ALL_COMPONENTS = @MCA_ompi_fs_ALL_COMPONENTS@ +MCA_ompi_fs_ALL_SUBDIRS = @MCA_ompi_fs_ALL_SUBDIRS@ +MCA_ompi_fs_DSO_COMPONENTS = @MCA_ompi_fs_DSO_COMPONENTS@ +MCA_ompi_fs_DSO_SUBDIRS = @MCA_ompi_fs_DSO_SUBDIRS@ +MCA_ompi_fs_STATIC_COMPONENTS = @MCA_ompi_fs_STATIC_COMPONENTS@ +MCA_ompi_fs_STATIC_LTLIBS = @MCA_ompi_fs_STATIC_LTLIBS@ +MCA_ompi_fs_STATIC_SUBDIRS = @MCA_ompi_fs_STATIC_SUBDIRS@ +MCA_ompi_hook_ALL_COMPONENTS = @MCA_ompi_hook_ALL_COMPONENTS@ +MCA_ompi_hook_ALL_SUBDIRS = @MCA_ompi_hook_ALL_SUBDIRS@ +MCA_ompi_hook_DSO_COMPONENTS = @MCA_ompi_hook_DSO_COMPONENTS@ +MCA_ompi_hook_DSO_SUBDIRS = @MCA_ompi_hook_DSO_SUBDIRS@ +MCA_ompi_hook_STATIC_COMPONENTS = @MCA_ompi_hook_STATIC_COMPONENTS@ +MCA_ompi_hook_STATIC_LTLIBS = @MCA_ompi_hook_STATIC_LTLIBS@ +MCA_ompi_hook_STATIC_SUBDIRS = @MCA_ompi_hook_STATIC_SUBDIRS@ +MCA_ompi_io_ALL_COMPONENTS = @MCA_ompi_io_ALL_COMPONENTS@ +MCA_ompi_io_ALL_SUBDIRS = @MCA_ompi_io_ALL_SUBDIRS@ +MCA_ompi_io_DSO_COMPONENTS = @MCA_ompi_io_DSO_COMPONENTS@ +MCA_ompi_io_DSO_SUBDIRS = @MCA_ompi_io_DSO_SUBDIRS@ +MCA_ompi_io_STATIC_COMPONENTS = @MCA_ompi_io_STATIC_COMPONENTS@ +MCA_ompi_io_STATIC_LTLIBS = @MCA_ompi_io_STATIC_LTLIBS@ +MCA_ompi_io_STATIC_SUBDIRS = @MCA_ompi_io_STATIC_SUBDIRS@ +MCA_ompi_mtl_ALL_COMPONENTS = @MCA_ompi_mtl_ALL_COMPONENTS@ +MCA_ompi_mtl_ALL_SUBDIRS = @MCA_ompi_mtl_ALL_SUBDIRS@ +MCA_ompi_mtl_DIRECT_CALL_HEADER = @MCA_ompi_mtl_DIRECT_CALL_HEADER@ +MCA_ompi_mtl_DSO_COMPONENTS = @MCA_ompi_mtl_DSO_COMPONENTS@ +MCA_ompi_mtl_DSO_SUBDIRS = @MCA_ompi_mtl_DSO_SUBDIRS@ +MCA_ompi_mtl_STATIC_COMPONENTS = @MCA_ompi_mtl_STATIC_COMPONENTS@ +MCA_ompi_mtl_STATIC_LTLIBS = @MCA_ompi_mtl_STATIC_LTLIBS@ +MCA_ompi_mtl_STATIC_SUBDIRS = @MCA_ompi_mtl_STATIC_SUBDIRS@ +MCA_ompi_op_ALL_COMPONENTS = @MCA_ompi_op_ALL_COMPONENTS@ +MCA_ompi_op_ALL_SUBDIRS = @MCA_ompi_op_ALL_SUBDIRS@ +MCA_ompi_op_DSO_COMPONENTS = @MCA_ompi_op_DSO_COMPONENTS@ +MCA_ompi_op_DSO_SUBDIRS = @MCA_ompi_op_DSO_SUBDIRS@ +MCA_ompi_op_STATIC_COMPONENTS = @MCA_ompi_op_STATIC_COMPONENTS@ +MCA_ompi_op_STATIC_LTLIBS = @MCA_ompi_op_STATIC_LTLIBS@ +MCA_ompi_op_STATIC_SUBDIRS = @MCA_ompi_op_STATIC_SUBDIRS@ +MCA_ompi_osc_ALL_COMPONENTS = @MCA_ompi_osc_ALL_COMPONENTS@ +MCA_ompi_osc_ALL_SUBDIRS = @MCA_ompi_osc_ALL_SUBDIRS@ +MCA_ompi_osc_DSO_COMPONENTS = @MCA_ompi_osc_DSO_COMPONENTS@ +MCA_ompi_osc_DSO_SUBDIRS = @MCA_ompi_osc_DSO_SUBDIRS@ +MCA_ompi_osc_STATIC_COMPONENTS = @MCA_ompi_osc_STATIC_COMPONENTS@ +MCA_ompi_osc_STATIC_LTLIBS = @MCA_ompi_osc_STATIC_LTLIBS@ +MCA_ompi_osc_STATIC_SUBDIRS = @MCA_ompi_osc_STATIC_SUBDIRS@ +MCA_ompi_pml_ALL_COMPONENTS = @MCA_ompi_pml_ALL_COMPONENTS@ +MCA_ompi_pml_ALL_SUBDIRS = @MCA_ompi_pml_ALL_SUBDIRS@ +MCA_ompi_pml_DIRECT_CALL_HEADER = @MCA_ompi_pml_DIRECT_CALL_HEADER@ +MCA_ompi_pml_DSO_COMPONENTS = @MCA_ompi_pml_DSO_COMPONENTS@ +MCA_ompi_pml_DSO_SUBDIRS = @MCA_ompi_pml_DSO_SUBDIRS@ +MCA_ompi_pml_STATIC_COMPONENTS = @MCA_ompi_pml_STATIC_COMPONENTS@ +MCA_ompi_pml_STATIC_LTLIBS = @MCA_ompi_pml_STATIC_LTLIBS@ +MCA_ompi_pml_STATIC_SUBDIRS = @MCA_ompi_pml_STATIC_SUBDIRS@ +MCA_ompi_rte_ALL_COMPONENTS = @MCA_ompi_rte_ALL_COMPONENTS@ +MCA_ompi_rte_ALL_SUBDIRS = @MCA_ompi_rte_ALL_SUBDIRS@ +MCA_ompi_rte_DSO_COMPONENTS = @MCA_ompi_rte_DSO_COMPONENTS@ +MCA_ompi_rte_DSO_SUBDIRS = @MCA_ompi_rte_DSO_SUBDIRS@ +MCA_ompi_rte_STATIC_COMPONENTS = @MCA_ompi_rte_STATIC_COMPONENTS@ +MCA_ompi_rte_STATIC_LTLIBS = @MCA_ompi_rte_STATIC_LTLIBS@ +MCA_ompi_rte_STATIC_SUBDIRS = @MCA_ompi_rte_STATIC_SUBDIRS@ +MCA_ompi_sharedfp_ALL_COMPONENTS = @MCA_ompi_sharedfp_ALL_COMPONENTS@ +MCA_ompi_sharedfp_ALL_SUBDIRS = @MCA_ompi_sharedfp_ALL_SUBDIRS@ +MCA_ompi_sharedfp_DSO_COMPONENTS = @MCA_ompi_sharedfp_DSO_COMPONENTS@ +MCA_ompi_sharedfp_DSO_SUBDIRS = @MCA_ompi_sharedfp_DSO_SUBDIRS@ +MCA_ompi_sharedfp_STATIC_COMPONENTS = @MCA_ompi_sharedfp_STATIC_COMPONENTS@ +MCA_ompi_sharedfp_STATIC_LTLIBS = @MCA_ompi_sharedfp_STATIC_LTLIBS@ +MCA_ompi_sharedfp_STATIC_SUBDIRS = @MCA_ompi_sharedfp_STATIC_SUBDIRS@ +MCA_ompi_topo_ALL_COMPONENTS = @MCA_ompi_topo_ALL_COMPONENTS@ +MCA_ompi_topo_ALL_SUBDIRS = @MCA_ompi_topo_ALL_SUBDIRS@ +MCA_ompi_topo_DSO_COMPONENTS = @MCA_ompi_topo_DSO_COMPONENTS@ +MCA_ompi_topo_DSO_SUBDIRS = @MCA_ompi_topo_DSO_SUBDIRS@ +MCA_ompi_topo_STATIC_COMPONENTS = @MCA_ompi_topo_STATIC_COMPONENTS@ +MCA_ompi_topo_STATIC_LTLIBS = @MCA_ompi_topo_STATIC_LTLIBS@ +MCA_ompi_topo_STATIC_SUBDIRS = @MCA_ompi_topo_STATIC_SUBDIRS@ +MCA_ompi_vprotocol_ALL_COMPONENTS = @MCA_ompi_vprotocol_ALL_COMPONENTS@ +MCA_ompi_vprotocol_ALL_SUBDIRS = @MCA_ompi_vprotocol_ALL_SUBDIRS@ +MCA_ompi_vprotocol_DSO_COMPONENTS = @MCA_ompi_vprotocol_DSO_COMPONENTS@ +MCA_ompi_vprotocol_DSO_SUBDIRS = @MCA_ompi_vprotocol_DSO_SUBDIRS@ +MCA_ompi_vprotocol_STATIC_COMPONENTS = @MCA_ompi_vprotocol_STATIC_COMPONENTS@ +MCA_ompi_vprotocol_STATIC_LTLIBS = @MCA_ompi_vprotocol_STATIC_LTLIBS@ +MCA_ompi_vprotocol_STATIC_SUBDIRS = @MCA_ompi_vprotocol_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORKS = @MCA_opal_FRAMEWORKS@ +MCA_opal_FRAMEWORKS_SUBDIRS = @MCA_opal_FRAMEWORKS_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORK_LIBS = @MCA_opal_FRAMEWORK_LIBS@ +MCA_opal_allocator_ALL_COMPONENTS = @MCA_opal_allocator_ALL_COMPONENTS@ +MCA_opal_allocator_ALL_SUBDIRS = @MCA_opal_allocator_ALL_SUBDIRS@ +MCA_opal_allocator_DSO_COMPONENTS = @MCA_opal_allocator_DSO_COMPONENTS@ +MCA_opal_allocator_DSO_SUBDIRS = @MCA_opal_allocator_DSO_SUBDIRS@ +MCA_opal_allocator_STATIC_COMPONENTS = @MCA_opal_allocator_STATIC_COMPONENTS@ +MCA_opal_allocator_STATIC_LTLIBS = @MCA_opal_allocator_STATIC_LTLIBS@ +MCA_opal_allocator_STATIC_SUBDIRS = @MCA_opal_allocator_STATIC_SUBDIRS@ +MCA_opal_backtrace_ALL_COMPONENTS = @MCA_opal_backtrace_ALL_COMPONENTS@ +MCA_opal_backtrace_ALL_SUBDIRS = @MCA_opal_backtrace_ALL_SUBDIRS@ +MCA_opal_backtrace_DSO_COMPONENTS = @MCA_opal_backtrace_DSO_COMPONENTS@ +MCA_opal_backtrace_DSO_SUBDIRS = @MCA_opal_backtrace_DSO_SUBDIRS@ +MCA_opal_backtrace_STATIC_COMPONENTS = @MCA_opal_backtrace_STATIC_COMPONENTS@ +MCA_opal_backtrace_STATIC_LTLIBS = @MCA_opal_backtrace_STATIC_LTLIBS@ +MCA_opal_backtrace_STATIC_SUBDIRS = @MCA_opal_backtrace_STATIC_SUBDIRS@ +MCA_opal_btl_ALL_COMPONENTS = @MCA_opal_btl_ALL_COMPONENTS@ +MCA_opal_btl_ALL_SUBDIRS = @MCA_opal_btl_ALL_SUBDIRS@ +MCA_opal_btl_DSO_COMPONENTS = @MCA_opal_btl_DSO_COMPONENTS@ +MCA_opal_btl_DSO_SUBDIRS = @MCA_opal_btl_DSO_SUBDIRS@ +MCA_opal_btl_STATIC_COMPONENTS = @MCA_opal_btl_STATIC_COMPONENTS@ +MCA_opal_btl_STATIC_LTLIBS = @MCA_opal_btl_STATIC_LTLIBS@ +MCA_opal_btl_STATIC_SUBDIRS = @MCA_opal_btl_STATIC_SUBDIRS@ +MCA_opal_common_ALL_COMPONENTS = @MCA_opal_common_ALL_COMPONENTS@ +MCA_opal_common_ALL_SUBDIRS = @MCA_opal_common_ALL_SUBDIRS@ +MCA_opal_common_DSO_COMPONENTS = @MCA_opal_common_DSO_COMPONENTS@ +MCA_opal_common_DSO_SUBDIRS = @MCA_opal_common_DSO_SUBDIRS@ +MCA_opal_common_STATIC_COMPONENTS = @MCA_opal_common_STATIC_COMPONENTS@ +MCA_opal_common_STATIC_LTLIBS = @MCA_opal_common_STATIC_LTLIBS@ +MCA_opal_common_STATIC_SUBDIRS = @MCA_opal_common_STATIC_SUBDIRS@ +MCA_opal_compress_ALL_COMPONENTS = @MCA_opal_compress_ALL_COMPONENTS@ +MCA_opal_compress_ALL_SUBDIRS = @MCA_opal_compress_ALL_SUBDIRS@ +MCA_opal_compress_DSO_COMPONENTS = @MCA_opal_compress_DSO_COMPONENTS@ +MCA_opal_compress_DSO_SUBDIRS = @MCA_opal_compress_DSO_SUBDIRS@ +MCA_opal_compress_STATIC_COMPONENTS = @MCA_opal_compress_STATIC_COMPONENTS@ +MCA_opal_compress_STATIC_LTLIBS = @MCA_opal_compress_STATIC_LTLIBS@ +MCA_opal_compress_STATIC_SUBDIRS = @MCA_opal_compress_STATIC_SUBDIRS@ +MCA_opal_crs_ALL_COMPONENTS = @MCA_opal_crs_ALL_COMPONENTS@ +MCA_opal_crs_ALL_SUBDIRS = @MCA_opal_crs_ALL_SUBDIRS@ +MCA_opal_crs_DSO_COMPONENTS = @MCA_opal_crs_DSO_COMPONENTS@ +MCA_opal_crs_DSO_SUBDIRS = @MCA_opal_crs_DSO_SUBDIRS@ +MCA_opal_crs_STATIC_COMPONENTS = @MCA_opal_crs_STATIC_COMPONENTS@ +MCA_opal_crs_STATIC_LTLIBS = @MCA_opal_crs_STATIC_LTLIBS@ +MCA_opal_crs_STATIC_SUBDIRS = @MCA_opal_crs_STATIC_SUBDIRS@ +MCA_opal_dl_ALL_COMPONENTS = @MCA_opal_dl_ALL_COMPONENTS@ +MCA_opal_dl_ALL_SUBDIRS = @MCA_opal_dl_ALL_SUBDIRS@ +MCA_opal_dl_DSO_COMPONENTS = @MCA_opal_dl_DSO_COMPONENTS@ +MCA_opal_dl_DSO_SUBDIRS = @MCA_opal_dl_DSO_SUBDIRS@ +MCA_opal_dl_STATIC_COMPONENTS = @MCA_opal_dl_STATIC_COMPONENTS@ +MCA_opal_dl_STATIC_LTLIBS = @MCA_opal_dl_STATIC_LTLIBS@ +MCA_opal_dl_STATIC_SUBDIRS = @MCA_opal_dl_STATIC_SUBDIRS@ +MCA_opal_event_ALL_COMPONENTS = @MCA_opal_event_ALL_COMPONENTS@ +MCA_opal_event_ALL_SUBDIRS = @MCA_opal_event_ALL_SUBDIRS@ +MCA_opal_event_DSO_COMPONENTS = @MCA_opal_event_DSO_COMPONENTS@ +MCA_opal_event_DSO_SUBDIRS = @MCA_opal_event_DSO_SUBDIRS@ +MCA_opal_event_STATIC_COMPONENTS = @MCA_opal_event_STATIC_COMPONENTS@ +MCA_opal_event_STATIC_LTLIBS = @MCA_opal_event_STATIC_LTLIBS@ +MCA_opal_event_STATIC_SUBDIRS = @MCA_opal_event_STATIC_SUBDIRS@ +MCA_opal_hwloc_ALL_COMPONENTS = @MCA_opal_hwloc_ALL_COMPONENTS@ +MCA_opal_hwloc_ALL_SUBDIRS = @MCA_opal_hwloc_ALL_SUBDIRS@ +MCA_opal_hwloc_DSO_COMPONENTS = @MCA_opal_hwloc_DSO_COMPONENTS@ +MCA_opal_hwloc_DSO_SUBDIRS = @MCA_opal_hwloc_DSO_SUBDIRS@ +MCA_opal_hwloc_STATIC_COMPONENTS = @MCA_opal_hwloc_STATIC_COMPONENTS@ +MCA_opal_hwloc_STATIC_LTLIBS = @MCA_opal_hwloc_STATIC_LTLIBS@ +MCA_opal_hwloc_STATIC_SUBDIRS = @MCA_opal_hwloc_STATIC_SUBDIRS@ +MCA_opal_if_ALL_COMPONENTS = @MCA_opal_if_ALL_COMPONENTS@ +MCA_opal_if_ALL_SUBDIRS = @MCA_opal_if_ALL_SUBDIRS@ +MCA_opal_if_DSO_COMPONENTS = @MCA_opal_if_DSO_COMPONENTS@ +MCA_opal_if_DSO_SUBDIRS = @MCA_opal_if_DSO_SUBDIRS@ +MCA_opal_if_STATIC_COMPONENTS = @MCA_opal_if_STATIC_COMPONENTS@ +MCA_opal_if_STATIC_LTLIBS = @MCA_opal_if_STATIC_LTLIBS@ +MCA_opal_if_STATIC_SUBDIRS = @MCA_opal_if_STATIC_SUBDIRS@ +MCA_opal_installdirs_ALL_COMPONENTS = @MCA_opal_installdirs_ALL_COMPONENTS@ +MCA_opal_installdirs_ALL_SUBDIRS = @MCA_opal_installdirs_ALL_SUBDIRS@ +MCA_opal_installdirs_DSO_COMPONENTS = @MCA_opal_installdirs_DSO_COMPONENTS@ +MCA_opal_installdirs_DSO_SUBDIRS = @MCA_opal_installdirs_DSO_SUBDIRS@ +MCA_opal_installdirs_STATIC_COMPONENTS = @MCA_opal_installdirs_STATIC_COMPONENTS@ +MCA_opal_installdirs_STATIC_LTLIBS = @MCA_opal_installdirs_STATIC_LTLIBS@ +MCA_opal_installdirs_STATIC_SUBDIRS = @MCA_opal_installdirs_STATIC_SUBDIRS@ +MCA_opal_memchecker_ALL_COMPONENTS = @MCA_opal_memchecker_ALL_COMPONENTS@ +MCA_opal_memchecker_ALL_SUBDIRS = @MCA_opal_memchecker_ALL_SUBDIRS@ +MCA_opal_memchecker_DSO_COMPONENTS = @MCA_opal_memchecker_DSO_COMPONENTS@ +MCA_opal_memchecker_DSO_SUBDIRS = @MCA_opal_memchecker_DSO_SUBDIRS@ +MCA_opal_memchecker_STATIC_COMPONENTS = @MCA_opal_memchecker_STATIC_COMPONENTS@ +MCA_opal_memchecker_STATIC_LTLIBS = @MCA_opal_memchecker_STATIC_LTLIBS@ +MCA_opal_memchecker_STATIC_SUBDIRS = @MCA_opal_memchecker_STATIC_SUBDIRS@ +MCA_opal_memcpy_ALL_COMPONENTS = @MCA_opal_memcpy_ALL_COMPONENTS@ +MCA_opal_memcpy_ALL_SUBDIRS = @MCA_opal_memcpy_ALL_SUBDIRS@ +MCA_opal_memcpy_DSO_COMPONENTS = @MCA_opal_memcpy_DSO_COMPONENTS@ +MCA_opal_memcpy_DSO_SUBDIRS = @MCA_opal_memcpy_DSO_SUBDIRS@ +MCA_opal_memcpy_STATIC_COMPONENTS = @MCA_opal_memcpy_STATIC_COMPONENTS@ +MCA_opal_memcpy_STATIC_LTLIBS = @MCA_opal_memcpy_STATIC_LTLIBS@ +MCA_opal_memcpy_STATIC_SUBDIRS = @MCA_opal_memcpy_STATIC_SUBDIRS@ +MCA_opal_memory_ALL_COMPONENTS = @MCA_opal_memory_ALL_COMPONENTS@ +MCA_opal_memory_ALL_SUBDIRS = @MCA_opal_memory_ALL_SUBDIRS@ +MCA_opal_memory_DSO_COMPONENTS = @MCA_opal_memory_DSO_COMPONENTS@ +MCA_opal_memory_DSO_SUBDIRS = @MCA_opal_memory_DSO_SUBDIRS@ +MCA_opal_memory_STATIC_COMPONENTS = @MCA_opal_memory_STATIC_COMPONENTS@ +MCA_opal_memory_STATIC_LTLIBS = @MCA_opal_memory_STATIC_LTLIBS@ +MCA_opal_memory_STATIC_SUBDIRS = @MCA_opal_memory_STATIC_SUBDIRS@ +MCA_opal_mpool_ALL_COMPONENTS = @MCA_opal_mpool_ALL_COMPONENTS@ +MCA_opal_mpool_ALL_SUBDIRS = @MCA_opal_mpool_ALL_SUBDIRS@ +MCA_opal_mpool_DSO_COMPONENTS = @MCA_opal_mpool_DSO_COMPONENTS@ +MCA_opal_mpool_DSO_SUBDIRS = @MCA_opal_mpool_DSO_SUBDIRS@ +MCA_opal_mpool_STATIC_COMPONENTS = @MCA_opal_mpool_STATIC_COMPONENTS@ +MCA_opal_mpool_STATIC_LTLIBS = @MCA_opal_mpool_STATIC_LTLIBS@ +MCA_opal_mpool_STATIC_SUBDIRS = @MCA_opal_mpool_STATIC_SUBDIRS@ +MCA_opal_patcher_ALL_COMPONENTS = @MCA_opal_patcher_ALL_COMPONENTS@ +MCA_opal_patcher_ALL_SUBDIRS = @MCA_opal_patcher_ALL_SUBDIRS@ +MCA_opal_patcher_DSO_COMPONENTS = @MCA_opal_patcher_DSO_COMPONENTS@ +MCA_opal_patcher_DSO_SUBDIRS = @MCA_opal_patcher_DSO_SUBDIRS@ +MCA_opal_patcher_STATIC_COMPONENTS = @MCA_opal_patcher_STATIC_COMPONENTS@ +MCA_opal_patcher_STATIC_LTLIBS = @MCA_opal_patcher_STATIC_LTLIBS@ +MCA_opal_patcher_STATIC_SUBDIRS = @MCA_opal_patcher_STATIC_SUBDIRS@ +MCA_opal_pmix_ALL_COMPONENTS = @MCA_opal_pmix_ALL_COMPONENTS@ +MCA_opal_pmix_ALL_SUBDIRS = @MCA_opal_pmix_ALL_SUBDIRS@ +MCA_opal_pmix_DSO_COMPONENTS = @MCA_opal_pmix_DSO_COMPONENTS@ +MCA_opal_pmix_DSO_SUBDIRS = @MCA_opal_pmix_DSO_SUBDIRS@ +MCA_opal_pmix_STATIC_COMPONENTS = @MCA_opal_pmix_STATIC_COMPONENTS@ +MCA_opal_pmix_STATIC_LTLIBS = @MCA_opal_pmix_STATIC_LTLIBS@ +MCA_opal_pmix_STATIC_SUBDIRS = @MCA_opal_pmix_STATIC_SUBDIRS@ +MCA_opal_pstat_ALL_COMPONENTS = @MCA_opal_pstat_ALL_COMPONENTS@ +MCA_opal_pstat_ALL_SUBDIRS = @MCA_opal_pstat_ALL_SUBDIRS@ +MCA_opal_pstat_DSO_COMPONENTS = @MCA_opal_pstat_DSO_COMPONENTS@ +MCA_opal_pstat_DSO_SUBDIRS = @MCA_opal_pstat_DSO_SUBDIRS@ +MCA_opal_pstat_STATIC_COMPONENTS = @MCA_opal_pstat_STATIC_COMPONENTS@ +MCA_opal_pstat_STATIC_LTLIBS = @MCA_opal_pstat_STATIC_LTLIBS@ +MCA_opal_pstat_STATIC_SUBDIRS = @MCA_opal_pstat_STATIC_SUBDIRS@ +MCA_opal_rcache_ALL_COMPONENTS = @MCA_opal_rcache_ALL_COMPONENTS@ +MCA_opal_rcache_ALL_SUBDIRS = @MCA_opal_rcache_ALL_SUBDIRS@ +MCA_opal_rcache_DSO_COMPONENTS = @MCA_opal_rcache_DSO_COMPONENTS@ +MCA_opal_rcache_DSO_SUBDIRS = @MCA_opal_rcache_DSO_SUBDIRS@ +MCA_opal_rcache_STATIC_COMPONENTS = @MCA_opal_rcache_STATIC_COMPONENTS@ +MCA_opal_rcache_STATIC_LTLIBS = @MCA_opal_rcache_STATIC_LTLIBS@ +MCA_opal_rcache_STATIC_SUBDIRS = @MCA_opal_rcache_STATIC_SUBDIRS@ +MCA_opal_reachable_ALL_COMPONENTS = @MCA_opal_reachable_ALL_COMPONENTS@ +MCA_opal_reachable_ALL_SUBDIRS = @MCA_opal_reachable_ALL_SUBDIRS@ +MCA_opal_reachable_DSO_COMPONENTS = @MCA_opal_reachable_DSO_COMPONENTS@ +MCA_opal_reachable_DSO_SUBDIRS = @MCA_opal_reachable_DSO_SUBDIRS@ +MCA_opal_reachable_STATIC_COMPONENTS = @MCA_opal_reachable_STATIC_COMPONENTS@ +MCA_opal_reachable_STATIC_LTLIBS = @MCA_opal_reachable_STATIC_LTLIBS@ +MCA_opal_reachable_STATIC_SUBDIRS = @MCA_opal_reachable_STATIC_SUBDIRS@ +MCA_opal_shmem_ALL_COMPONENTS = @MCA_opal_shmem_ALL_COMPONENTS@ +MCA_opal_shmem_ALL_SUBDIRS = @MCA_opal_shmem_ALL_SUBDIRS@ +MCA_opal_shmem_DSO_COMPONENTS = @MCA_opal_shmem_DSO_COMPONENTS@ +MCA_opal_shmem_DSO_SUBDIRS = @MCA_opal_shmem_DSO_SUBDIRS@ +MCA_opal_shmem_STATIC_COMPONENTS = @MCA_opal_shmem_STATIC_COMPONENTS@ +MCA_opal_shmem_STATIC_LTLIBS = @MCA_opal_shmem_STATIC_LTLIBS@ +MCA_opal_shmem_STATIC_SUBDIRS = @MCA_opal_shmem_STATIC_SUBDIRS@ +MCA_opal_timer_ALL_COMPONENTS = @MCA_opal_timer_ALL_COMPONENTS@ +MCA_opal_timer_ALL_SUBDIRS = @MCA_opal_timer_ALL_SUBDIRS@ +MCA_opal_timer_DSO_COMPONENTS = @MCA_opal_timer_DSO_COMPONENTS@ +MCA_opal_timer_DSO_SUBDIRS = @MCA_opal_timer_DSO_SUBDIRS@ +MCA_opal_timer_STATIC_COMPONENTS = @MCA_opal_timer_STATIC_COMPONENTS@ +MCA_opal_timer_STATIC_LTLIBS = @MCA_opal_timer_STATIC_LTLIBS@ +MCA_opal_timer_STATIC_SUBDIRS = @MCA_opal_timer_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORKS = @MCA_orte_FRAMEWORKS@ +MCA_orte_FRAMEWORKS_SUBDIRS = @MCA_orte_FRAMEWORKS_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORK_LIBS = @MCA_orte_FRAMEWORK_LIBS@ +MCA_orte_common_ALL_COMPONENTS = @MCA_orte_common_ALL_COMPONENTS@ +MCA_orte_common_ALL_SUBDIRS = @MCA_orte_common_ALL_SUBDIRS@ +MCA_orte_common_DSO_COMPONENTS = @MCA_orte_common_DSO_COMPONENTS@ +MCA_orte_common_DSO_SUBDIRS = @MCA_orte_common_DSO_SUBDIRS@ +MCA_orte_common_STATIC_COMPONENTS = @MCA_orte_common_STATIC_COMPONENTS@ +MCA_orte_common_STATIC_LTLIBS = @MCA_orte_common_STATIC_LTLIBS@ +MCA_orte_common_STATIC_SUBDIRS = @MCA_orte_common_STATIC_SUBDIRS@ +MCA_orte_errmgr_ALL_COMPONENTS = @MCA_orte_errmgr_ALL_COMPONENTS@ +MCA_orte_errmgr_ALL_SUBDIRS = @MCA_orte_errmgr_ALL_SUBDIRS@ +MCA_orte_errmgr_DSO_COMPONENTS = @MCA_orte_errmgr_DSO_COMPONENTS@ +MCA_orte_errmgr_DSO_SUBDIRS = @MCA_orte_errmgr_DSO_SUBDIRS@ +MCA_orte_errmgr_STATIC_COMPONENTS = @MCA_orte_errmgr_STATIC_COMPONENTS@ +MCA_orte_errmgr_STATIC_LTLIBS = @MCA_orte_errmgr_STATIC_LTLIBS@ +MCA_orte_errmgr_STATIC_SUBDIRS = @MCA_orte_errmgr_STATIC_SUBDIRS@ +MCA_orte_ess_ALL_COMPONENTS = @MCA_orte_ess_ALL_COMPONENTS@ +MCA_orte_ess_ALL_SUBDIRS = @MCA_orte_ess_ALL_SUBDIRS@ +MCA_orte_ess_DSO_COMPONENTS = @MCA_orte_ess_DSO_COMPONENTS@ +MCA_orte_ess_DSO_SUBDIRS = @MCA_orte_ess_DSO_SUBDIRS@ +MCA_orte_ess_STATIC_COMPONENTS = @MCA_orte_ess_STATIC_COMPONENTS@ +MCA_orte_ess_STATIC_LTLIBS = @MCA_orte_ess_STATIC_LTLIBS@ +MCA_orte_ess_STATIC_SUBDIRS = @MCA_orte_ess_STATIC_SUBDIRS@ +MCA_orte_filem_ALL_COMPONENTS = @MCA_orte_filem_ALL_COMPONENTS@ +MCA_orte_filem_ALL_SUBDIRS = @MCA_orte_filem_ALL_SUBDIRS@ +MCA_orte_filem_DSO_COMPONENTS = @MCA_orte_filem_DSO_COMPONENTS@ +MCA_orte_filem_DSO_SUBDIRS = @MCA_orte_filem_DSO_SUBDIRS@ +MCA_orte_filem_STATIC_COMPONENTS = @MCA_orte_filem_STATIC_COMPONENTS@ +MCA_orte_filem_STATIC_LTLIBS = @MCA_orte_filem_STATIC_LTLIBS@ +MCA_orte_filem_STATIC_SUBDIRS = @MCA_orte_filem_STATIC_SUBDIRS@ +MCA_orte_grpcomm_ALL_COMPONENTS = @MCA_orte_grpcomm_ALL_COMPONENTS@ +MCA_orte_grpcomm_ALL_SUBDIRS = @MCA_orte_grpcomm_ALL_SUBDIRS@ +MCA_orte_grpcomm_DSO_COMPONENTS = @MCA_orte_grpcomm_DSO_COMPONENTS@ +MCA_orte_grpcomm_DSO_SUBDIRS = @MCA_orte_grpcomm_DSO_SUBDIRS@ +MCA_orte_grpcomm_STATIC_COMPONENTS = @MCA_orte_grpcomm_STATIC_COMPONENTS@ +MCA_orte_grpcomm_STATIC_LTLIBS = @MCA_orte_grpcomm_STATIC_LTLIBS@ +MCA_orte_grpcomm_STATIC_SUBDIRS = @MCA_orte_grpcomm_STATIC_SUBDIRS@ +MCA_orte_iof_ALL_COMPONENTS = @MCA_orte_iof_ALL_COMPONENTS@ +MCA_orte_iof_ALL_SUBDIRS = @MCA_orte_iof_ALL_SUBDIRS@ +MCA_orte_iof_DSO_COMPONENTS = @MCA_orte_iof_DSO_COMPONENTS@ +MCA_orte_iof_DSO_SUBDIRS = @MCA_orte_iof_DSO_SUBDIRS@ +MCA_orte_iof_STATIC_COMPONENTS = @MCA_orte_iof_STATIC_COMPONENTS@ +MCA_orte_iof_STATIC_LTLIBS = @MCA_orte_iof_STATIC_LTLIBS@ +MCA_orte_iof_STATIC_SUBDIRS = @MCA_orte_iof_STATIC_SUBDIRS@ +MCA_orte_odls_ALL_COMPONENTS = @MCA_orte_odls_ALL_COMPONENTS@ +MCA_orte_odls_ALL_SUBDIRS = @MCA_orte_odls_ALL_SUBDIRS@ +MCA_orte_odls_DSO_COMPONENTS = @MCA_orte_odls_DSO_COMPONENTS@ +MCA_orte_odls_DSO_SUBDIRS = @MCA_orte_odls_DSO_SUBDIRS@ +MCA_orte_odls_STATIC_COMPONENTS = @MCA_orte_odls_STATIC_COMPONENTS@ +MCA_orte_odls_STATIC_LTLIBS = @MCA_orte_odls_STATIC_LTLIBS@ +MCA_orte_odls_STATIC_SUBDIRS = @MCA_orte_odls_STATIC_SUBDIRS@ +MCA_orte_oob_ALL_COMPONENTS = @MCA_orte_oob_ALL_COMPONENTS@ +MCA_orte_oob_ALL_SUBDIRS = @MCA_orte_oob_ALL_SUBDIRS@ +MCA_orte_oob_DSO_COMPONENTS = @MCA_orte_oob_DSO_COMPONENTS@ +MCA_orte_oob_DSO_SUBDIRS = @MCA_orte_oob_DSO_SUBDIRS@ +MCA_orte_oob_STATIC_COMPONENTS = @MCA_orte_oob_STATIC_COMPONENTS@ +MCA_orte_oob_STATIC_LTLIBS = @MCA_orte_oob_STATIC_LTLIBS@ +MCA_orte_oob_STATIC_SUBDIRS = @MCA_orte_oob_STATIC_SUBDIRS@ +MCA_orte_plm_ALL_COMPONENTS = @MCA_orte_plm_ALL_COMPONENTS@ +MCA_orte_plm_ALL_SUBDIRS = @MCA_orte_plm_ALL_SUBDIRS@ +MCA_orte_plm_DSO_COMPONENTS = @MCA_orte_plm_DSO_COMPONENTS@ +MCA_orte_plm_DSO_SUBDIRS = @MCA_orte_plm_DSO_SUBDIRS@ +MCA_orte_plm_STATIC_COMPONENTS = @MCA_orte_plm_STATIC_COMPONENTS@ +MCA_orte_plm_STATIC_LTLIBS = @MCA_orte_plm_STATIC_LTLIBS@ +MCA_orte_plm_STATIC_SUBDIRS = @MCA_orte_plm_STATIC_SUBDIRS@ +MCA_orte_ras_ALL_COMPONENTS = @MCA_orte_ras_ALL_COMPONENTS@ +MCA_orte_ras_ALL_SUBDIRS = @MCA_orte_ras_ALL_SUBDIRS@ +MCA_orte_ras_DSO_COMPONENTS = @MCA_orte_ras_DSO_COMPONENTS@ +MCA_orte_ras_DSO_SUBDIRS = @MCA_orte_ras_DSO_SUBDIRS@ +MCA_orte_ras_STATIC_COMPONENTS = @MCA_orte_ras_STATIC_COMPONENTS@ +MCA_orte_ras_STATIC_LTLIBS = @MCA_orte_ras_STATIC_LTLIBS@ +MCA_orte_ras_STATIC_SUBDIRS = @MCA_orte_ras_STATIC_SUBDIRS@ +MCA_orte_regx_ALL_COMPONENTS = @MCA_orte_regx_ALL_COMPONENTS@ +MCA_orte_regx_ALL_SUBDIRS = @MCA_orte_regx_ALL_SUBDIRS@ +MCA_orte_regx_DSO_COMPONENTS = @MCA_orte_regx_DSO_COMPONENTS@ +MCA_orte_regx_DSO_SUBDIRS = @MCA_orte_regx_DSO_SUBDIRS@ +MCA_orte_regx_STATIC_COMPONENTS = @MCA_orte_regx_STATIC_COMPONENTS@ +MCA_orte_regx_STATIC_LTLIBS = @MCA_orte_regx_STATIC_LTLIBS@ +MCA_orte_regx_STATIC_SUBDIRS = @MCA_orte_regx_STATIC_SUBDIRS@ +MCA_orte_rmaps_ALL_COMPONENTS = @MCA_orte_rmaps_ALL_COMPONENTS@ +MCA_orte_rmaps_ALL_SUBDIRS = @MCA_orte_rmaps_ALL_SUBDIRS@ +MCA_orte_rmaps_DSO_COMPONENTS = @MCA_orte_rmaps_DSO_COMPONENTS@ +MCA_orte_rmaps_DSO_SUBDIRS = @MCA_orte_rmaps_DSO_SUBDIRS@ +MCA_orte_rmaps_STATIC_COMPONENTS = @MCA_orte_rmaps_STATIC_COMPONENTS@ +MCA_orte_rmaps_STATIC_LTLIBS = @MCA_orte_rmaps_STATIC_LTLIBS@ +MCA_orte_rmaps_STATIC_SUBDIRS = @MCA_orte_rmaps_STATIC_SUBDIRS@ +MCA_orte_rml_ALL_COMPONENTS = @MCA_orte_rml_ALL_COMPONENTS@ +MCA_orte_rml_ALL_SUBDIRS = @MCA_orte_rml_ALL_SUBDIRS@ +MCA_orte_rml_DSO_COMPONENTS = @MCA_orte_rml_DSO_COMPONENTS@ +MCA_orte_rml_DSO_SUBDIRS = @MCA_orte_rml_DSO_SUBDIRS@ +MCA_orte_rml_STATIC_COMPONENTS = @MCA_orte_rml_STATIC_COMPONENTS@ +MCA_orte_rml_STATIC_LTLIBS = @MCA_orte_rml_STATIC_LTLIBS@ +MCA_orte_rml_STATIC_SUBDIRS = @MCA_orte_rml_STATIC_SUBDIRS@ +MCA_orte_routed_ALL_COMPONENTS = @MCA_orte_routed_ALL_COMPONENTS@ +MCA_orte_routed_ALL_SUBDIRS = @MCA_orte_routed_ALL_SUBDIRS@ +MCA_orte_routed_DSO_COMPONENTS = @MCA_orte_routed_DSO_COMPONENTS@ +MCA_orte_routed_DSO_SUBDIRS = @MCA_orte_routed_DSO_SUBDIRS@ +MCA_orte_routed_STATIC_COMPONENTS = @MCA_orte_routed_STATIC_COMPONENTS@ +MCA_orte_routed_STATIC_LTLIBS = @MCA_orte_routed_STATIC_LTLIBS@ +MCA_orte_routed_STATIC_SUBDIRS = @MCA_orte_routed_STATIC_SUBDIRS@ +MCA_orte_rtc_ALL_COMPONENTS = @MCA_orte_rtc_ALL_COMPONENTS@ +MCA_orte_rtc_ALL_SUBDIRS = @MCA_orte_rtc_ALL_SUBDIRS@ +MCA_orte_rtc_DSO_COMPONENTS = @MCA_orte_rtc_DSO_COMPONENTS@ +MCA_orte_rtc_DSO_SUBDIRS = @MCA_orte_rtc_DSO_SUBDIRS@ +MCA_orte_rtc_STATIC_COMPONENTS = @MCA_orte_rtc_STATIC_COMPONENTS@ +MCA_orte_rtc_STATIC_LTLIBS = @MCA_orte_rtc_STATIC_LTLIBS@ +MCA_orte_rtc_STATIC_SUBDIRS = @MCA_orte_rtc_STATIC_SUBDIRS@ +MCA_orte_schizo_ALL_COMPONENTS = @MCA_orte_schizo_ALL_COMPONENTS@ +MCA_orte_schizo_ALL_SUBDIRS = @MCA_orte_schizo_ALL_SUBDIRS@ +MCA_orte_schizo_DSO_COMPONENTS = @MCA_orte_schizo_DSO_COMPONENTS@ +MCA_orte_schizo_DSO_SUBDIRS = @MCA_orte_schizo_DSO_SUBDIRS@ +MCA_orte_schizo_STATIC_COMPONENTS = @MCA_orte_schizo_STATIC_COMPONENTS@ +MCA_orte_schizo_STATIC_LTLIBS = @MCA_orte_schizo_STATIC_LTLIBS@ +MCA_orte_schizo_STATIC_SUBDIRS = @MCA_orte_schizo_STATIC_SUBDIRS@ +MCA_orte_snapc_ALL_COMPONENTS = @MCA_orte_snapc_ALL_COMPONENTS@ +MCA_orte_snapc_ALL_SUBDIRS = @MCA_orte_snapc_ALL_SUBDIRS@ +MCA_orte_snapc_DSO_COMPONENTS = @MCA_orte_snapc_DSO_COMPONENTS@ +MCA_orte_snapc_DSO_SUBDIRS = @MCA_orte_snapc_DSO_SUBDIRS@ +MCA_orte_snapc_STATIC_COMPONENTS = @MCA_orte_snapc_STATIC_COMPONENTS@ +MCA_orte_snapc_STATIC_LTLIBS = @MCA_orte_snapc_STATIC_LTLIBS@ +MCA_orte_snapc_STATIC_SUBDIRS = @MCA_orte_snapc_STATIC_SUBDIRS@ +MCA_orte_sstore_ALL_COMPONENTS = @MCA_orte_sstore_ALL_COMPONENTS@ +MCA_orte_sstore_ALL_SUBDIRS = @MCA_orte_sstore_ALL_SUBDIRS@ +MCA_orte_sstore_DSO_COMPONENTS = @MCA_orte_sstore_DSO_COMPONENTS@ +MCA_orte_sstore_DSO_SUBDIRS = @MCA_orte_sstore_DSO_SUBDIRS@ +MCA_orte_sstore_STATIC_COMPONENTS = @MCA_orte_sstore_STATIC_COMPONENTS@ +MCA_orte_sstore_STATIC_LTLIBS = @MCA_orte_sstore_STATIC_LTLIBS@ +MCA_orte_sstore_STATIC_SUBDIRS = @MCA_orte_sstore_STATIC_SUBDIRS@ +MCA_orte_state_ALL_COMPONENTS = @MCA_orte_state_ALL_COMPONENTS@ +MCA_orte_state_ALL_SUBDIRS = @MCA_orte_state_ALL_SUBDIRS@ +MCA_orte_state_DSO_COMPONENTS = @MCA_orte_state_DSO_COMPONENTS@ +MCA_orte_state_DSO_SUBDIRS = @MCA_orte_state_DSO_SUBDIRS@ +MCA_orte_state_STATIC_COMPONENTS = @MCA_orte_state_STATIC_COMPONENTS@ +MCA_orte_state_STATIC_LTLIBS = @MCA_orte_state_STATIC_LTLIBS@ +MCA_orte_state_STATIC_SUBDIRS = @MCA_orte_state_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORKS = @MCA_oshmem_FRAMEWORKS@ +MCA_oshmem_FRAMEWORKS_SUBDIRS = @MCA_oshmem_FRAMEWORKS_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORK_LIBS = @MCA_oshmem_FRAMEWORK_LIBS@ +MCA_oshmem_atomic_ALL_COMPONENTS = @MCA_oshmem_atomic_ALL_COMPONENTS@ +MCA_oshmem_atomic_ALL_SUBDIRS = @MCA_oshmem_atomic_ALL_SUBDIRS@ +MCA_oshmem_atomic_DSO_COMPONENTS = @MCA_oshmem_atomic_DSO_COMPONENTS@ +MCA_oshmem_atomic_DSO_SUBDIRS = @MCA_oshmem_atomic_DSO_SUBDIRS@ +MCA_oshmem_atomic_STATIC_COMPONENTS = @MCA_oshmem_atomic_STATIC_COMPONENTS@ +MCA_oshmem_atomic_STATIC_LTLIBS = @MCA_oshmem_atomic_STATIC_LTLIBS@ +MCA_oshmem_atomic_STATIC_SUBDIRS = @MCA_oshmem_atomic_STATIC_SUBDIRS@ +MCA_oshmem_memheap_ALL_COMPONENTS = @MCA_oshmem_memheap_ALL_COMPONENTS@ +MCA_oshmem_memheap_ALL_SUBDIRS = @MCA_oshmem_memheap_ALL_SUBDIRS@ +MCA_oshmem_memheap_DIRECT_CALL_HEADER = @MCA_oshmem_memheap_DIRECT_CALL_HEADER@ +MCA_oshmem_memheap_DSO_COMPONENTS = @MCA_oshmem_memheap_DSO_COMPONENTS@ +MCA_oshmem_memheap_DSO_SUBDIRS = @MCA_oshmem_memheap_DSO_SUBDIRS@ +MCA_oshmem_memheap_STATIC_COMPONENTS = @MCA_oshmem_memheap_STATIC_COMPONENTS@ +MCA_oshmem_memheap_STATIC_LTLIBS = @MCA_oshmem_memheap_STATIC_LTLIBS@ +MCA_oshmem_memheap_STATIC_SUBDIRS = @MCA_oshmem_memheap_STATIC_SUBDIRS@ +MCA_oshmem_scoll_ALL_COMPONENTS = @MCA_oshmem_scoll_ALL_COMPONENTS@ +MCA_oshmem_scoll_ALL_SUBDIRS = @MCA_oshmem_scoll_ALL_SUBDIRS@ +MCA_oshmem_scoll_DSO_COMPONENTS = @MCA_oshmem_scoll_DSO_COMPONENTS@ +MCA_oshmem_scoll_DSO_SUBDIRS = @MCA_oshmem_scoll_DSO_SUBDIRS@ +MCA_oshmem_scoll_STATIC_COMPONENTS = @MCA_oshmem_scoll_STATIC_COMPONENTS@ +MCA_oshmem_scoll_STATIC_LTLIBS = @MCA_oshmem_scoll_STATIC_LTLIBS@ +MCA_oshmem_scoll_STATIC_SUBDIRS = @MCA_oshmem_scoll_STATIC_SUBDIRS@ +MCA_oshmem_spml_ALL_COMPONENTS = @MCA_oshmem_spml_ALL_COMPONENTS@ +MCA_oshmem_spml_ALL_SUBDIRS = @MCA_oshmem_spml_ALL_SUBDIRS@ +MCA_oshmem_spml_DIRECT_CALL_HEADER = @MCA_oshmem_spml_DIRECT_CALL_HEADER@ +MCA_oshmem_spml_DSO_COMPONENTS = @MCA_oshmem_spml_DSO_COMPONENTS@ +MCA_oshmem_spml_DSO_SUBDIRS = @MCA_oshmem_spml_DSO_SUBDIRS@ +MCA_oshmem_spml_STATIC_COMPONENTS = @MCA_oshmem_spml_STATIC_COMPONENTS@ +MCA_oshmem_spml_STATIC_LTLIBS = @MCA_oshmem_spml_STATIC_LTLIBS@ +MCA_oshmem_spml_STATIC_SUBDIRS = @MCA_oshmem_spml_STATIC_SUBDIRS@ +MCA_oshmem_sshmem_ALL_COMPONENTS = @MCA_oshmem_sshmem_ALL_COMPONENTS@ +MCA_oshmem_sshmem_ALL_SUBDIRS = @MCA_oshmem_sshmem_ALL_SUBDIRS@ +MCA_oshmem_sshmem_DSO_COMPONENTS = @MCA_oshmem_sshmem_DSO_COMPONENTS@ +MCA_oshmem_sshmem_DSO_SUBDIRS = @MCA_oshmem_sshmem_DSO_SUBDIRS@ +MCA_oshmem_sshmem_STATIC_COMPONENTS = @MCA_oshmem_sshmem_STATIC_COMPONENTS@ +MCA_oshmem_sshmem_STATIC_LTLIBS = @MCA_oshmem_sshmem_STATIC_LTLIBS@ +MCA_oshmem_sshmem_STATIC_SUBDIRS = @MCA_oshmem_sshmem_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +MPIR_UNWIND_CFLAGS = @MPIR_UNWIND_CFLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPI_ALIGNMENT_FORTRAN_CHARACTER = @OMPI_ALIGNMENT_FORTRAN_CHARACTER@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX16 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX16@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX32 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX32@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX4 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX4@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX8 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX8@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION@ +OMPI_ALIGNMENT_FORTRAN_INTEGER = @OMPI_ALIGNMENT_FORTRAN_INTEGER@ +OMPI_ALIGNMENT_FORTRAN_INTEGER1 = @OMPI_ALIGNMENT_FORTRAN_INTEGER1@ +OMPI_ALIGNMENT_FORTRAN_INTEGER16 = @OMPI_ALIGNMENT_FORTRAN_INTEGER16@ +OMPI_ALIGNMENT_FORTRAN_INTEGER2 = @OMPI_ALIGNMENT_FORTRAN_INTEGER2@ +OMPI_ALIGNMENT_FORTRAN_INTEGER4 = @OMPI_ALIGNMENT_FORTRAN_INTEGER4@ +OMPI_ALIGNMENT_FORTRAN_INTEGER8 = @OMPI_ALIGNMENT_FORTRAN_INTEGER8@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL = @OMPI_ALIGNMENT_FORTRAN_LOGICAL@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL1 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL1@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL2 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL2@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL4 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL4@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL8 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL8@ +OMPI_ALIGNMENT_FORTRAN_REAL = @OMPI_ALIGNMENT_FORTRAN_REAL@ +OMPI_ALIGNMENT_FORTRAN_REAL16 = @OMPI_ALIGNMENT_FORTRAN_REAL16@ +OMPI_ALIGNMENT_FORTRAN_REAL2 = @OMPI_ALIGNMENT_FORTRAN_REAL2@ +OMPI_ALIGNMENT_FORTRAN_REAL4 = @OMPI_ALIGNMENT_FORTRAN_REAL4@ +OMPI_ALIGNMENT_FORTRAN_REAL8 = @OMPI_ALIGNMENT_FORTRAN_REAL8@ +OMPI_CONTRIB_DIST_SUBDIRS = @OMPI_CONTRIB_DIST_SUBDIRS@ +OMPI_CONTRIB_SUBDIRS = @OMPI_CONTRIB_SUBDIRS@ +OMPI_CXX_ABSOLUTE = @OMPI_CXX_ABSOLUTE@ +OMPI_ENABLE_GREQUEST_EXTENSIONS = @OMPI_ENABLE_GREQUEST_EXTENSIONS@ +OMPI_ENABLE_MPI1_COMPAT = @OMPI_ENABLE_MPI1_COMPAT@ +OMPI_F08_SUFFIX = @OMPI_F08_SUFFIX@ +OMPI_FC = @OMPI_FC@ +OMPI_FC_ABSOLUTE = @OMPI_FC_ABSOLUTE@ +OMPI_FC_MODULE_FLAG = @OMPI_FC_MODULE_FLAG@ +OMPI_FORTRAN_BUILD_SIZEOF = @OMPI_FORTRAN_BUILD_SIZEOF@ +OMPI_FORTRAN_CAPS = @OMPI_FORTRAN_CAPS@ +OMPI_FORTRAN_CKINDS = @OMPI_FORTRAN_CKINDS@ +OMPI_FORTRAN_DOUBLE_UNDERSCORE = @OMPI_FORTRAN_DOUBLE_UNDERSCORE@ +OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS = @OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS@ +OMPI_FORTRAN_F08_PREDECL = @OMPI_FORTRAN_F08_PREDECL@ +OMPI_FORTRAN_F08_TYPE = @OMPI_FORTRAN_F08_TYPE@ +OMPI_FORTRAN_HAVE_ABSTRACT = @OMPI_FORTRAN_HAVE_ABSTRACT@ +OMPI_FORTRAN_HAVE_ASYNCHRONOUS = @OMPI_FORTRAN_HAVE_ASYNCHRONOUS@ +OMPI_FORTRAN_HAVE_BIND_C = @OMPI_FORTRAN_HAVE_BIND_C@ +OMPI_FORTRAN_HAVE_C_FUNLOC = @OMPI_FORTRAN_HAVE_C_FUNLOC@ +OMPI_FORTRAN_HAVE_INTERFACE = @OMPI_FORTRAN_HAVE_INTERFACE@ +OMPI_FORTRAN_HAVE_ISO_C_BINDING = @OMPI_FORTRAN_HAVE_ISO_C_BINDING@ +OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV = @OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV@ +OMPI_FORTRAN_HAVE_PRIVATE = @OMPI_FORTRAN_HAVE_PRIVATE@ +OMPI_FORTRAN_HAVE_PROCEDURE = @OMPI_FORTRAN_HAVE_PROCEDURE@ +OMPI_FORTRAN_HAVE_STORAGE_SIZE = @OMPI_FORTRAN_HAVE_STORAGE_SIZE@ +OMPI_FORTRAN_HAVE_USE_ONLY = @OMPI_FORTRAN_HAVE_USE_ONLY@ +OMPI_FORTRAN_IGNORE_TKR_PREDECL = @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ +OMPI_FORTRAN_IGNORE_TKR_TYPE = @OMPI_FORTRAN_IGNORE_TKR_TYPE@ +OMPI_FORTRAN_IKINDS = @OMPI_FORTRAN_IKINDS@ +OMPI_FORTRAN_MAX_ARRAY_RANK = @OMPI_FORTRAN_MAX_ARRAY_RANK@ +OMPI_FORTRAN_NEED_WRAPPER_ROUTINES = @OMPI_FORTRAN_NEED_WRAPPER_ROUTINES@ +OMPI_FORTRAN_PLAIN = @OMPI_FORTRAN_PLAIN@ +OMPI_FORTRAN_RKINDS = @OMPI_FORTRAN_RKINDS@ +OMPI_FORTRAN_SINGLE_UNDERSCORE = @OMPI_FORTRAN_SINGLE_UNDERSCORE@ +OMPI_FORTRAN_STATUS_SIZE = @OMPI_FORTRAN_STATUS_SIZE@ +OMPI_FORTRAN_USEMPIF08_LIB = @OMPI_FORTRAN_USEMPIF08_LIB@ +OMPI_FORTRAN_USEMPI_DIR = @OMPI_FORTRAN_USEMPI_DIR@ +OMPI_FORTRAN_USEMPI_LIB = @OMPI_FORTRAN_USEMPI_LIB@ +OMPI_F_SUFFIX = @OMPI_F_SUFFIX@ +OMPI_GREEK_VERSION = @OMPI_GREEK_VERSION@ +OMPI_HAVE_FORTRAN_CHARACTER = @OMPI_HAVE_FORTRAN_CHARACTER@ +OMPI_HAVE_FORTRAN_COMPLEX = @OMPI_HAVE_FORTRAN_COMPLEX@ +OMPI_HAVE_FORTRAN_COMPLEX16 = @OMPI_HAVE_FORTRAN_COMPLEX16@ +OMPI_HAVE_FORTRAN_COMPLEX32 = @OMPI_HAVE_FORTRAN_COMPLEX32@ +OMPI_HAVE_FORTRAN_COMPLEX4 = @OMPI_HAVE_FORTRAN_COMPLEX4@ +OMPI_HAVE_FORTRAN_COMPLEX8 = @OMPI_HAVE_FORTRAN_COMPLEX8@ +OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX = @OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX@ +OMPI_HAVE_FORTRAN_DOUBLE_PRECISION = @OMPI_HAVE_FORTRAN_DOUBLE_PRECISION@ +OMPI_HAVE_FORTRAN_INTEGER = @OMPI_HAVE_FORTRAN_INTEGER@ +OMPI_HAVE_FORTRAN_INTEGER1 = @OMPI_HAVE_FORTRAN_INTEGER1@ +OMPI_HAVE_FORTRAN_INTEGER16 = @OMPI_HAVE_FORTRAN_INTEGER16@ +OMPI_HAVE_FORTRAN_INTEGER2 = @OMPI_HAVE_FORTRAN_INTEGER2@ +OMPI_HAVE_FORTRAN_INTEGER4 = @OMPI_HAVE_FORTRAN_INTEGER4@ +OMPI_HAVE_FORTRAN_INTEGER8 = @OMPI_HAVE_FORTRAN_INTEGER8@ +OMPI_HAVE_FORTRAN_LOGICAL = @OMPI_HAVE_FORTRAN_LOGICAL@ +OMPI_HAVE_FORTRAN_LOGICAL1 = @OMPI_HAVE_FORTRAN_LOGICAL1@ +OMPI_HAVE_FORTRAN_LOGICAL2 = @OMPI_HAVE_FORTRAN_LOGICAL2@ +OMPI_HAVE_FORTRAN_LOGICAL4 = @OMPI_HAVE_FORTRAN_LOGICAL4@ +OMPI_HAVE_FORTRAN_LOGICAL8 = @OMPI_HAVE_FORTRAN_LOGICAL8@ +OMPI_HAVE_FORTRAN_REAL = @OMPI_HAVE_FORTRAN_REAL@ +OMPI_HAVE_FORTRAN_REAL16 = @OMPI_HAVE_FORTRAN_REAL16@ +OMPI_HAVE_FORTRAN_REAL2 = @OMPI_HAVE_FORTRAN_REAL2@ +OMPI_HAVE_FORTRAN_REAL4 = @OMPI_HAVE_FORTRAN_REAL4@ +OMPI_HAVE_FORTRAN_REAL8 = @OMPI_HAVE_FORTRAN_REAL8@ +OMPI_JDK_CPPFLAGS = @OMPI_JDK_CPPFLAGS@ +OMPI_KIND_FORTRAN_CHARACTER = @OMPI_KIND_FORTRAN_CHARACTER@ +OMPI_KIND_FORTRAN_COMPLEX = @OMPI_KIND_FORTRAN_COMPLEX@ +OMPI_KIND_FORTRAN_COMPLEX16 = @OMPI_KIND_FORTRAN_COMPLEX16@ +OMPI_KIND_FORTRAN_COMPLEX32 = @OMPI_KIND_FORTRAN_COMPLEX32@ +OMPI_KIND_FORTRAN_COMPLEX4 = @OMPI_KIND_FORTRAN_COMPLEX4@ +OMPI_KIND_FORTRAN_COMPLEX8 = @OMPI_KIND_FORTRAN_COMPLEX8@ +OMPI_KIND_FORTRAN_DOUBLE_COMPLEX = @OMPI_KIND_FORTRAN_DOUBLE_COMPLEX@ +OMPI_KIND_FORTRAN_DOUBLE_PRECISION = @OMPI_KIND_FORTRAN_DOUBLE_PRECISION@ +OMPI_KIND_FORTRAN_INTEGER = @OMPI_KIND_FORTRAN_INTEGER@ +OMPI_KIND_FORTRAN_INTEGER1 = @OMPI_KIND_FORTRAN_INTEGER1@ +OMPI_KIND_FORTRAN_INTEGER16 = @OMPI_KIND_FORTRAN_INTEGER16@ +OMPI_KIND_FORTRAN_INTEGER2 = @OMPI_KIND_FORTRAN_INTEGER2@ +OMPI_KIND_FORTRAN_INTEGER4 = @OMPI_KIND_FORTRAN_INTEGER4@ +OMPI_KIND_FORTRAN_INTEGER8 = @OMPI_KIND_FORTRAN_INTEGER8@ +OMPI_KIND_FORTRAN_LOGICAL = @OMPI_KIND_FORTRAN_LOGICAL@ +OMPI_KIND_FORTRAN_LOGICAL1 = @OMPI_KIND_FORTRAN_LOGICAL1@ +OMPI_KIND_FORTRAN_LOGICAL2 = @OMPI_KIND_FORTRAN_LOGICAL2@ +OMPI_KIND_FORTRAN_LOGICAL4 = @OMPI_KIND_FORTRAN_LOGICAL4@ +OMPI_KIND_FORTRAN_LOGICAL8 = @OMPI_KIND_FORTRAN_LOGICAL8@ +OMPI_KIND_FORTRAN_REAL = @OMPI_KIND_FORTRAN_REAL@ +OMPI_KIND_FORTRAN_REAL16 = @OMPI_KIND_FORTRAN_REAL16@ +OMPI_KIND_FORTRAN_REAL2 = @OMPI_KIND_FORTRAN_REAL2@ +OMPI_KIND_FORTRAN_REAL4 = @OMPI_KIND_FORTRAN_REAL4@ +OMPI_KIND_FORTRAN_REAL8 = @OMPI_KIND_FORTRAN_REAL8@ +OMPI_LIBMPI_EXTRA_LDFLAGS = @OMPI_LIBMPI_EXTRA_LDFLAGS@ +OMPI_LIBMPI_EXTRA_LIBS = @OMPI_LIBMPI_EXTRA_LIBS@ +OMPI_LIBMPI_NAME = @OMPI_LIBMPI_NAME@ +OMPI_MAJOR_VERSION = @OMPI_MAJOR_VERSION@ +OMPI_MINOR_VERSION = @OMPI_MINOR_VERSION@ +OMPI_MPIEXT_ALL_SUBDIRS = @OMPI_MPIEXT_ALL_SUBDIRS@ +OMPI_MPIEXT_C_DIRS = @OMPI_MPIEXT_C_DIRS@ +OMPI_MPIEXT_C_LIBS = @OMPI_MPIEXT_C_LIBS@ +OMPI_MPIEXT_MPIFH_DIRS = @OMPI_MPIEXT_MPIFH_DIRS@ +OMPI_MPIEXT_MPIFH_LIBS = @OMPI_MPIEXT_MPIFH_LIBS@ +OMPI_MPIEXT_USEMPIF08_DIRS = @OMPI_MPIEXT_USEMPIF08_DIRS@ +OMPI_MPIEXT_USEMPIF08_LIBS = @OMPI_MPIEXT_USEMPIF08_LIBS@ +OMPI_MPIEXT_USEMPI_DIRS = @OMPI_MPIEXT_USEMPI_DIRS@ +OMPI_MPIEXT_USEMPI_LIBS = @OMPI_MPIEXT_USEMPI_LIBS@ +OMPI_MPI_ADDRESS_KIND = @OMPI_MPI_ADDRESS_KIND@ +OMPI_MPI_BIND_PREFIX = @OMPI_MPI_BIND_PREFIX@ +OMPI_MPI_COUNT_KIND = @OMPI_MPI_COUNT_KIND@ +OMPI_MPI_INTEGER_KIND = @OMPI_MPI_INTEGER_KIND@ +OMPI_MPI_OFFSET_KIND = @OMPI_MPI_OFFSET_KIND@ +OMPI_MPI_PREFIX = @OMPI_MPI_PREFIX@ +OMPI_PKG_CONFIG_LDFLAGS = @OMPI_PKG_CONFIG_LDFLAGS@ +OMPI_RELEASE_DATE = @OMPI_RELEASE_DATE@ +OMPI_RELEASE_VERSION = @OMPI_RELEASE_VERSION@ +OMPI_REPO_REV = @OMPI_REPO_REV@ +OMPI_SIZEOF_FORTRAN_CHARACTER = @OMPI_SIZEOF_FORTRAN_CHARACTER@ +OMPI_SIZEOF_FORTRAN_COMPLEX = @OMPI_SIZEOF_FORTRAN_COMPLEX@ +OMPI_SIZEOF_FORTRAN_COMPLEX16 = @OMPI_SIZEOF_FORTRAN_COMPLEX16@ +OMPI_SIZEOF_FORTRAN_COMPLEX32 = @OMPI_SIZEOF_FORTRAN_COMPLEX32@ +OMPI_SIZEOF_FORTRAN_COMPLEX4 = @OMPI_SIZEOF_FORTRAN_COMPLEX4@ +OMPI_SIZEOF_FORTRAN_COMPLEX8 = @OMPI_SIZEOF_FORTRAN_COMPLEX8@ +OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX = @OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX@ +OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION = @OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION@ +OMPI_SIZEOF_FORTRAN_INTEGER = @OMPI_SIZEOF_FORTRAN_INTEGER@ +OMPI_SIZEOF_FORTRAN_INTEGER1 = @OMPI_SIZEOF_FORTRAN_INTEGER1@ +OMPI_SIZEOF_FORTRAN_INTEGER16 = @OMPI_SIZEOF_FORTRAN_INTEGER16@ +OMPI_SIZEOF_FORTRAN_INTEGER2 = @OMPI_SIZEOF_FORTRAN_INTEGER2@ +OMPI_SIZEOF_FORTRAN_INTEGER4 = @OMPI_SIZEOF_FORTRAN_INTEGER4@ +OMPI_SIZEOF_FORTRAN_INTEGER8 = @OMPI_SIZEOF_FORTRAN_INTEGER8@ +OMPI_SIZEOF_FORTRAN_LOGICAL = @OMPI_SIZEOF_FORTRAN_LOGICAL@ +OMPI_SIZEOF_FORTRAN_LOGICAL1 = @OMPI_SIZEOF_FORTRAN_LOGICAL1@ +OMPI_SIZEOF_FORTRAN_LOGICAL2 = @OMPI_SIZEOF_FORTRAN_LOGICAL2@ +OMPI_SIZEOF_FORTRAN_LOGICAL4 = @OMPI_SIZEOF_FORTRAN_LOGICAL4@ +OMPI_SIZEOF_FORTRAN_LOGICAL8 = @OMPI_SIZEOF_FORTRAN_LOGICAL8@ +OMPI_SIZEOF_FORTRAN_REAL = @OMPI_SIZEOF_FORTRAN_REAL@ +OMPI_SIZEOF_FORTRAN_REAL16 = @OMPI_SIZEOF_FORTRAN_REAL16@ +OMPI_SIZEOF_FORTRAN_REAL2 = @OMPI_SIZEOF_FORTRAN_REAL2@ +OMPI_SIZEOF_FORTRAN_REAL4 = @OMPI_SIZEOF_FORTRAN_REAL4@ +OMPI_SIZEOF_FORTRAN_REAL8 = @OMPI_SIZEOF_FORTRAN_REAL8@ +OMPI_TARBALL_VERSION = @OMPI_TARBALL_VERSION@ +OMPI_TOP_BUILDDIR = @OMPI_TOP_BUILDDIR@ +OMPI_TOP_SRCDIR = @OMPI_TOP_SRCDIR@ +OMPI_VERSION = @OMPI_VERSION@ +OMPI_WRAPPER_CXX_LIB = @OMPI_WRAPPER_CXX_LIB@ +OMPI_WRAPPER_CXX_REQUIRED_FILE = @OMPI_WRAPPER_CXX_REQUIRED_FILE@ +OMPI_WRAPPER_EXTRA_CFLAGS = @OMPI_WRAPPER_EXTRA_CFLAGS@ +OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_CPPFLAGS = @OMPI_WRAPPER_EXTRA_CPPFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS = @OMPI_WRAPPER_EXTRA_CXXFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FCFLAGS = @OMPI_WRAPPER_EXTRA_FCFLAGS@ +OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FC_LDFLAGS = @OMPI_WRAPPER_EXTRA_FC_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LDFLAGS = @OMPI_WRAPPER_EXTRA_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LIBS = @OMPI_WRAPPER_EXTRA_LIBS@ +OMPI_WRAPPER_FORTRAN_REQUIRED_FILE = @OMPI_WRAPPER_FORTRAN_REQUIRED_FILE@ +OMPI_WRAPPER_INCLUDEDIR = @OMPI_WRAPPER_INCLUDEDIR@ +OMPI_WRAPPER_LIBDIR = @OMPI_WRAPPER_LIBDIR@ +OPAL_ASM_GSYM = @OPAL_ASM_GSYM@ +OPAL_ASM_LSYM = @OPAL_ASM_LSYM@ +OPAL_ASM_SUPPORT_64BIT = @OPAL_ASM_SUPPORT_64BIT@ +OPAL_ASM_TEXT = @OPAL_ASM_TEXT@ +OPAL_ASM_TYPE = @OPAL_ASM_TYPE@ +OPAL_ASSEMBLY_ARCH = @OPAL_ASSEMBLY_ARCH@ +OPAL_ASSEMBLY_BUILTIN = @OPAL_ASSEMBLY_BUILTIN@ +OPAL_ASSEMBLY_FORMAT = @OPAL_ASSEMBLY_FORMAT@ +OPAL_AS_GLOBAL = @OPAL_AS_GLOBAL@ +OPAL_AS_LABEL_SUFFIX = @OPAL_AS_LABEL_SUFFIX@ +OPAL_CC_ABSOLUTE = @OPAL_CC_ABSOLUTE@ +OPAL_CONFIGURE_CLI = @OPAL_CONFIGURE_CLI@ +OPAL_CONFIGURE_DATE = @OPAL_CONFIGURE_DATE@ +OPAL_CONFIGURE_HOST = @OPAL_CONFIGURE_HOST@ +OPAL_CONFIGURE_USER = @OPAL_CONFIGURE_USER@ +OPAL_CXX_ABSOLUTE = @OPAL_CXX_ABSOLUTE@ +OPAL_DEFAULT_MCA_PARAM_CONF = @OPAL_DEFAULT_MCA_PARAM_CONF@ +OPAL_DYN_LIB_PREFIX = @OPAL_DYN_LIB_PREFIX@ +OPAL_DYN_LIB_SUFFIX = @OPAL_DYN_LIB_SUFFIX@ +OPAL_GREEK_VERSION = @OPAL_GREEK_VERSION@ +OPAL_LIB_PREFIX = @OPAL_LIB_PREFIX@ +OPAL_MAJOR_VERSION = @OPAL_MAJOR_VERSION@ +OPAL_MAX_DATAREP_STRING = @OPAL_MAX_DATAREP_STRING@ +OPAL_MAX_ERROR_STRING = @OPAL_MAX_ERROR_STRING@ +OPAL_MAX_INFO_KEY = @OPAL_MAX_INFO_KEY@ +OPAL_MAX_INFO_VAL = @OPAL_MAX_INFO_VAL@ +OPAL_MAX_OBJECT_NAME = @OPAL_MAX_OBJECT_NAME@ +OPAL_MAX_PORT_NAME = @OPAL_MAX_PORT_NAME@ +OPAL_MAX_PROCESSOR_NAME = @OPAL_MAX_PROCESSOR_NAME@ +OPAL_MINOR_VERSION = @OPAL_MINOR_VERSION@ +OPAL_PARAM_FROM_PLATFORM = @OPAL_PARAM_FROM_PLATFORM@ +OPAL_PKG_CONFIG_LDFLAGS = @OPAL_PKG_CONFIG_LDFLAGS@ +OPAL_RELEASE_DATE = @OPAL_RELEASE_DATE@ +OPAL_RELEASE_VERSION = @OPAL_RELEASE_VERSION@ +OPAL_REPO_REV = @OPAL_REPO_REV@ +OPAL_TARBALL_VERSION = @OPAL_TARBALL_VERSION@ +OPAL_TOP_BUILDDIR = @OPAL_TOP_BUILDDIR@ +OPAL_TOP_SRCDIR = @OPAL_TOP_SRCDIR@ +OPAL_VERSION = @OPAL_VERSION@ +OPAL_WRAPPER_EXTRA_CFLAGS = @OPAL_WRAPPER_EXTRA_CFLAGS@ +OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_CPPFLAGS = @OPAL_WRAPPER_EXTRA_CPPFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS = @OPAL_WRAPPER_EXTRA_CXXFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_LDFLAGS = @OPAL_WRAPPER_EXTRA_LDFLAGS@ +OPAL_WRAPPER_EXTRA_LIBS = @OPAL_WRAPPER_EXTRA_LIBS@ +ORTE_GREEK_VERSION = @ORTE_GREEK_VERSION@ +ORTE_LIB_PREFIX = @ORTE_LIB_PREFIX@ +ORTE_MAJOR_VERSION = @ORTE_MAJOR_VERSION@ +ORTE_MINOR_VERSION = @ORTE_MINOR_VERSION@ +ORTE_PKG_CONFIG_LDFLAGS = @ORTE_PKG_CONFIG_LDFLAGS@ +ORTE_RELEASE_DATE = @ORTE_RELEASE_DATE@ +ORTE_RELEASE_VERSION = @ORTE_RELEASE_VERSION@ +ORTE_REPO_REV = @ORTE_REPO_REV@ +ORTE_TARBALL_VERSION = @ORTE_TARBALL_VERSION@ +ORTE_TOP_BUILDDIR = @ORTE_TOP_BUILDDIR@ +ORTE_TOP_SRCDIR = @ORTE_TOP_SRCDIR@ +ORTE_VERSION = @ORTE_VERSION@ +ORTE_WRAPPER_EXTRA_CFLAGS = @ORTE_WRAPPER_EXTRA_CFLAGS@ +ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX = @ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX@ +ORTE_WRAPPER_EXTRA_CPPFLAGS = @ORTE_WRAPPER_EXTRA_CPPFLAGS@ +ORTE_WRAPPER_EXTRA_LDFLAGS = @ORTE_WRAPPER_EXTRA_LDFLAGS@ +ORTE_WRAPPER_EXTRA_LIBS = @ORTE_WRAPPER_EXTRA_LIBS@ +OSHMEM_GREEK_VERSION = @OSHMEM_GREEK_VERSION@ +OSHMEM_LIBSHMEM_EXTRA_LDFLAGS = @OSHMEM_LIBSHMEM_EXTRA_LDFLAGS@ +OSHMEM_LIBSHMEM_EXTRA_LIBS = @OSHMEM_LIBSHMEM_EXTRA_LIBS@ +OSHMEM_MAJOR_VERSION = @OSHMEM_MAJOR_VERSION@ +OSHMEM_MINOR_VERSION = @OSHMEM_MINOR_VERSION@ +OSHMEM_RELEASE_DATE = @OSHMEM_RELEASE_DATE@ +OSHMEM_RELEASE_VERSION = @OSHMEM_RELEASE_VERSION@ +OSHMEM_REPO_REV = @OSHMEM_REPO_REV@ +OSHMEM_TARBALL_VERSION = @OSHMEM_TARBALL_VERSION@ +OSHMEM_TOP_BUILDDIR = @OSHMEM_TOP_BUILDDIR@ +OSHMEM_TOP_SRCDIR = @OSHMEM_TOP_SRCDIR@ +OSHMEM_VERSION = @OSHMEM_VERSION@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +QRSH = @QRSH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SINGULARITY = @SINGULARITY@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_FC = @ac_ct_FC@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +atomic_mxm_CFLAGS = @atomic_mxm_CFLAGS@ +atomic_mxm_CPPFLAGS = @atomic_mxm_CPPFLAGS@ +atomic_mxm_LDFLAGS = @atomic_mxm_LDFLAGS@ +atomic_mxm_LIBS = @atomic_mxm_LIBS@ +atomic_ucx_CFLAGS = @atomic_ucx_CFLAGS@ +atomic_ucx_CPPFLAGS = @atomic_ucx_CPPFLAGS@ +atomic_ucx_LDFLAGS = @atomic_ucx_LDFLAGS@ +atomic_ucx_LIBS = @atomic_ucx_LIBS@ +bindir = @bindir@ +btl_openib_CFLAGS = @btl_openib_CFLAGS@ +btl_openib_CPPFLAGS = @btl_openib_CPPFLAGS@ +btl_openib_LDFLAGS = @btl_openib_LDFLAGS@ +btl_openib_LIBS = @btl_openib_LIBS@ +btl_portals4_CPPFLAGS = @btl_portals4_CPPFLAGS@ +btl_portals4_LDFLAGS = @btl_portals4_LDFLAGS@ +btl_portals4_LIBS = @btl_portals4_LIBS@ +btl_uct_CPPFLAGS = @btl_uct_CPPFLAGS@ +btl_uct_LDFLAGS = @btl_uct_LDFLAGS@ +btl_uct_LIBS = @btl_uct_LIBS@ +btl_ugni_CPPFLAGS = @btl_ugni_CPPFLAGS@ +btl_ugni_LDFLAGS = @btl_ugni_LDFLAGS@ +btl_ugni_LIBS = @btl_ugni_LIBS@ +btl_vader_CFLAGS = @btl_vader_CFLAGS@ +btl_vader_CPPFLAGS = @btl_vader_CPPFLAGS@ +btl_vader_LDFLAGS = @btl_vader_LDFLAGS@ +btl_vader_LIBS = @btl_vader_LIBS@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +coll_fca_CFLAGS = @coll_fca_CFLAGS@ +coll_fca_CPPFLAGS = @coll_fca_CPPFLAGS@ +coll_fca_HOME = @coll_fca_HOME@ +coll_fca_LDFLAGS = @coll_fca_LDFLAGS@ +coll_fca_LIBS = @coll_fca_LIBS@ +coll_hcoll_CFLAGS = @coll_hcoll_CFLAGS@ +coll_hcoll_CPPFLAGS = @coll_hcoll_CPPFLAGS@ +coll_hcoll_LDFLAGS = @coll_hcoll_LDFLAGS@ +coll_hcoll_LIBS = @coll_hcoll_LIBS@ +coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ +coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ +coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ +common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ +common_alps_LDFLAGS = @common_alps_LDFLAGS@ +common_alps_LIBS = @common_alps_LIBS@ +common_cuda_CPPFLAGS = @common_cuda_CPPFLAGS@ +common_ucx_CFLAGS = @common_ucx_CFLAGS@ +common_ucx_CPPFLAGS = @common_ucx_CPPFLAGS@ +common_ucx_LDFLAGS = @common_ucx_LDFLAGS@ +common_ucx_LIBS = @common_ucx_LIBS@ +common_verbs_CFLAGS = @common_verbs_CFLAGS@ +common_verbs_CPPFLAGS = @common_verbs_CPPFLAGS@ +common_verbs_LDFLAGS = @common_verbs_LDFLAGS@ +common_verbs_LIBS = @common_verbs_LIBS@ +common_verbs_usnic_CPPFLAGS = @common_verbs_usnic_CPPFLAGS@ +common_verbs_usnic_LDFLAGS = @common_verbs_usnic_LDFLAGS@ +common_verbs_usnic_LIBS = @common_verbs_usnic_LIBS@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +ess_alps_CPPFLAGS = @ess_alps_CPPFLAGS@ +ess_alps_LDFLAGS = @ess_alps_LDFLAGS@ +ess_alps_LIBS = @ess_alps_LIBS@ +ess_lsf_CPPFLAGS = @ess_lsf_CPPFLAGS@ +ess_lsf_LDFLAGS = @ess_lsf_LDFLAGS@ +ess_lsf_LIBS = @ess_lsf_LIBS@ +ess_slurm_CPPFLAGS = @ess_slurm_CPPFLAGS@ +ess_slurm_LDFLAGS = @ess_slurm_LDFLAGS@ +ess_slurm_LIBS = @ess_slurm_LIBS@ +ess_tm_CPPFLAGS = @ess_tm_CPPFLAGS@ +ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ +ess_tm_LIBS = @ess_tm_LIBS@ +exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ +fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ +fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ +fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ +fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ +fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ +fs_lustre_LIBS = @fs_lustre_LIBS@ +fs_pvfs2_CPPFLAGS = @fs_pvfs2_CPPFLAGS@ +fs_pvfs2_LDFLAGS = @fs_pvfs2_LDFLAGS@ +fs_pvfs2_LIBS = @fs_pvfs2_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ +libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ +libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ +libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ +libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ +libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ +libmca_opal_common_verbs_so_version = @libmca_opal_common_verbs_so_version@ +libmca_orte_common_alps_so_version = @libmca_orte_common_alps_so_version@ +libmpi_cxx_so_version = @libmpi_cxx_so_version@ +libmpi_java_so_version = @libmpi_java_so_version@ +libmpi_mpifh_so_version = @libmpi_mpifh_so_version@ +libmpi_so_version = @libmpi_so_version@ +libmpi_usempi_ignore_tkr_so_version = @libmpi_usempi_ignore_tkr_so_version@ +libmpi_usempi_tkr_so_version = @libmpi_usempi_tkr_so_version@ +libmpi_usempif08_so_version = @libmpi_usempif08_so_version@ +libompitrace_so_version = @libompitrace_so_version@ +libopen_pal_so_version = @libopen_pal_so_version@ +libopen_rte_so_version = @libopen_rte_so_version@ +liboshmem_so_version = @liboshmem_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +memory_malloc_solaris_LIBS = @memory_malloc_solaris_LIBS@ +mkdir_p = @mkdir_p@ +mpool_memkind_CPPFLAGS = @mpool_memkind_CPPFLAGS@ +mpool_memkind_LDFLAGS = @mpool_memkind_LDFLAGS@ +mpool_memkind_LIBS = @mpool_memkind_LIBS@ +mtl_portals4_CPPFLAGS = @mtl_portals4_CPPFLAGS@ +mtl_portals4_LDFLAGS = @mtl_portals4_LDFLAGS@ +mtl_portals4_LIBS = @mtl_portals4_LIBS@ +mtl_psm2_CFLAGS = @mtl_psm2_CFLAGS@ +mtl_psm2_CPPFLAGS = @mtl_psm2_CPPFLAGS@ +mtl_psm2_LDFLAGS = @mtl_psm2_LDFLAGS@ +mtl_psm2_LIBS = @mtl_psm2_LIBS@ +mtl_psm_CFLAGS = @mtl_psm_CFLAGS@ +mtl_psm_CPPFLAGS = @mtl_psm_CPPFLAGS@ +mtl_psm_LDFLAGS = @mtl_psm_LDFLAGS@ +mtl_psm_LIBS = @mtl_psm_LIBS@ +odls_alps_CPPFLAGS = @odls_alps_CPPFLAGS@ +odls_alps_LDFLAGS = @odls_alps_LDFLAGS@ +odls_alps_LIBS = @odls_alps_LIBS@ +oldincludedir = @oldincludedir@ +ompidatadir = @ompidatadir@ +ompiincludedir = @ompiincludedir@ +ompilibdir = @ompilibdir@ +oob_alps_CPPFLAGS = @oob_alps_CPPFLAGS@ +oob_alps_LDFLAGS = @oob_alps_LDFLAGS@ +oob_alps_LIBS = @oob_alps_LIBS@ +opal_datatype_cuda_CPPFLAGS = @opal_datatype_cuda_CPPFLAGS@ +opal_dl_dlopen_LIBS = @opal_dl_dlopen_LIBS@ +opal_dl_libltdl_CPPFLAGS = @opal_dl_libltdl_CPPFLAGS@ +opal_dl_libltdl_LDFLAGS = @opal_dl_libltdl_LDFLAGS@ +opal_dl_libltdl_LIBS = @opal_dl_libltdl_LIBS@ +opal_event_external_CPPFLAGS = @opal_event_external_CPPFLAGS@ +opal_event_external_LDFLAGS = @opal_event_external_LDFLAGS@ +opal_event_external_LIBS = @opal_event_external_LIBS@ +opal_hwloc_external_LDFLAGS = @opal_hwloc_external_LDFLAGS@ +opal_hwloc_external_LIBS = @opal_hwloc_external_LIBS@ +opal_hwloc_hwloc201_CFLAGS = @opal_hwloc_hwloc201_CFLAGS@ +opal_hwloc_hwloc201_CPPFLAGS = @opal_hwloc_hwloc201_CPPFLAGS@ +opal_hwloc_hwloc201_LDFLAGS = @opal_hwloc_hwloc201_LDFLAGS@ +opal_hwloc_hwloc201_LIBS = @opal_hwloc_hwloc201_LIBS@ +opal_memchecker_valgrind_CPPFLAGS = @opal_memchecker_valgrind_CPPFLAGS@ +opal_ofi_CPPFLAGS = @opal_ofi_CPPFLAGS@ +opal_ofi_LDFLAGS = @opal_ofi_LDFLAGS@ +opal_ofi_LIBS = @opal_ofi_LIBS@ +opal_pmi1_CPPFLAGS = @opal_pmi1_CPPFLAGS@ +opal_pmi1_LDFLAGS = @opal_pmi1_LDFLAGS@ +opal_pmi1_LIBS = @opal_pmi1_LIBS@ +opal_pmi1_rpath = @opal_pmi1_rpath@ +opal_pmi2_CPPFLAGS = @opal_pmi2_CPPFLAGS@ +opal_pmi2_LDFLAGS = @opal_pmi2_LDFLAGS@ +opal_pmi2_LIBS = @opal_pmi2_LIBS@ +opal_pmi2_rpath = @opal_pmi2_rpath@ +opal_pmix_ext1x_CPPFLAGS = @opal_pmix_ext1x_CPPFLAGS@ +opal_pmix_ext1x_LDFLAGS = @opal_pmix_ext1x_LDFLAGS@ +opal_pmix_ext1x_LIBS = @opal_pmix_ext1x_LIBS@ +opal_pmix_ext2x_CPPFLAGS = @opal_pmix_ext2x_CPPFLAGS@ +opal_pmix_ext2x_LDFLAGS = @opal_pmix_ext2x_LDFLAGS@ +opal_pmix_ext2x_LIBS = @opal_pmix_ext2x_LIBS@ +opal_pmix_ext3x_CPPFLAGS = @opal_pmix_ext3x_CPPFLAGS@ +opal_pmix_ext3x_LDFLAGS = @opal_pmix_ext3x_LDFLAGS@ +opal_pmix_ext3x_LIBS = @opal_pmix_ext3x_LIBS@ +opal_pmix_pmix3x_CPPFLAGS = @opal_pmix_pmix3x_CPPFLAGS@ +opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ +opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ +opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ +opaldatadir = @opaldatadir@ +opalincludedir = @opalincludedir@ +opallibdir = @opallibdir@ +ortedatadir = @ortedatadir@ +orteincludedir = @orteincludedir@ +ortelibdir = @ortelibdir@ +osc_portals4_CPPFLAGS = @osc_portals4_CPPFLAGS@ +osc_portals4_LDFLAGS = @osc_portals4_LDFLAGS@ +osc_portals4_LIBS = @osc_portals4_LIBS@ +osc_ucx_CPPFLAGS = @osc_ucx_CPPFLAGS@ +osc_ucx_LDFLAGS = @osc_ucx_LDFLAGS@ +osc_ucx_LIBS = @osc_ucx_LIBS@ +oshmem_verbs_CFLAGS = @oshmem_verbs_CFLAGS@ +oshmem_verbs_CPPFLAGS = @oshmem_verbs_CPPFLAGS@ +oshmem_verbs_LDFLAGS = @oshmem_verbs_LDFLAGS@ +oshmem_verbs_LIBS = @oshmem_verbs_LIBS@ +oshmemdatadir = @oshmemdatadir@ +oshmemincludedir = @oshmemincludedir@ +oshmemlibdir = @oshmemlibdir@ +pdfdir = @pdfdir@ +plm_alps_CPPFLAGS = @plm_alps_CPPFLAGS@ +plm_alps_LDFLAGS = @plm_alps_LDFLAGS@ +plm_alps_LIBS = @plm_alps_LIBS@ +plm_lsf_CPPFLAGS = @plm_lsf_CPPFLAGS@ +plm_lsf_LDFLAGS = @plm_lsf_LDFLAGS@ +plm_lsf_LIBS = @plm_lsf_LIBS@ +plm_slurm_CPPFLAGS = @plm_slurm_CPPFLAGS@ +plm_slurm_LDFLAGS = @plm_slurm_LDFLAGS@ +plm_slurm_LIBS = @plm_slurm_LIBS@ +plm_tm_CPPFLAGS = @plm_tm_CPPFLAGS@ +plm_tm_LDFLAGS = @plm_tm_LDFLAGS@ +plm_tm_LIBS = @plm_tm_LIBS@ +pmix_alps_CPPFLAGS = @pmix_alps_CPPFLAGS@ +pmix_alps_LDFLAGS = @pmix_alps_LDFLAGS@ +pmix_alps_LIBS = @pmix_alps_LIBS@ +pmix_cray_CPPFLAGS = @pmix_cray_CPPFLAGS@ +pmix_cray_LDFLAGS = @pmix_cray_LDFLAGS@ +pmix_cray_LIBS = @pmix_cray_LIBS@ +pml_ucx_CPPFLAGS = @pml_ucx_CPPFLAGS@ +pml_ucx_LDFLAGS = @pml_ucx_LDFLAGS@ +pml_ucx_LIBS = @pml_ucx_LIBS@ +pml_yalla_CPPFLAGS = @pml_yalla_CPPFLAGS@ +pml_yalla_LDFLAGS = @pml_yalla_LDFLAGS@ +pml_yalla_LIBS = @pml_yalla_LIBS@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +ras_alps_CPPFLAGS = @ras_alps_CPPFLAGS@ +ras_lsf_CPPFLAGS = @ras_lsf_CPPFLAGS@ +ras_lsf_LDFLAGS = @ras_lsf_LDFLAGS@ +ras_lsf_LIBS = @ras_lsf_LIBS@ +ras_slurm_CPPFLAGS = @ras_slurm_CPPFLAGS@ +ras_slurm_LDFLAGS = @ras_slurm_LDFLAGS@ +ras_slurm_LIBS = @ras_slurm_LIBS@ +ras_tm_CPPFLAGS = @ras_tm_CPPFLAGS@ +ras_tm_LDFLAGS = @ras_tm_LDFLAGS@ +ras_tm_LIBS = @ras_tm_LIBS@ +rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ +rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ +rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ +sbindir = @sbindir@ +schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ +schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ +schizo_moab_LDFLAGS = @schizo_moab_LDFLAGS@ +schizo_moab_LIBS = @schizo_moab_LIBS@ +schizo_slurm_CPPFLAGS = @schizo_slurm_CPPFLAGS@ +schizo_slurm_LDFLAGS = @schizo_slurm_LDFLAGS@ +schizo_slurm_LIBS = @schizo_slurm_LIBS@ +scoll_fca_CFLAGS = @scoll_fca_CFLAGS@ +scoll_fca_CPPFLAGS = @scoll_fca_CPPFLAGS@ +scoll_fca_HOME = @scoll_fca_HOME@ +scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ +scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ +sharedstatedir = @sharedstatedir@ +spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ +spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ +spml_ikrit_LDFLAGS = @spml_ikrit_LDFLAGS@ +spml_ikrit_LIBS = @spml_ikrit_LIBS@ +spml_ucx_CFLAGS = @spml_ucx_CFLAGS@ +spml_ucx_CPPFLAGS = @spml_ucx_CPPFLAGS@ +spml_ucx_LDFLAGS = @spml_ucx_LDFLAGS@ +spml_ucx_LIBS = @spml_ucx_LIBS@ +srcdir = @srcdir@ +sshmem_ucx_CFLAGS = @sshmem_ucx_CFLAGS@ +sshmem_ucx_CPPFLAGS = @sshmem_ucx_CPPFLAGS@ +sshmem_ucx_LDFLAGS = @sshmem_ucx_LDFLAGS@ +sshmem_ucx_LIBS = @sshmem_ucx_LIBS@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ucx_CFLAGS = @ucx_CFLAGS@ +ucx_LIBS = @ucx_LIBS@ +ucx_STATIC_LIBS = @ucx_STATIC_LIBS@ +AM_CPPFLAGS = $(opal_ofi_CPPFLAGS) +sources = \ + btl_ofi.h \ + btl_ofi_component.c \ + btl_ofi_endpoint.h \ + btl_ofi_endpoint.c \ + btl_ofi_module.c \ + btl_ofi_rdma.h \ + btl_ofi_rdma.c \ + btl_ofi_atomics.c \ + btl_ofi_frag.c \ + btl_ofi_frag.h \ + btl_ofi_context.c + +@MCA_BUILD_opal_btl_ofi_DSO_FALSE@lib = libmca_btl_ofi.la + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). +@MCA_BUILD_opal_btl_ofi_DSO_TRUE@lib = +@MCA_BUILD_opal_btl_ofi_DSO_FALSE@lib_sources = $(sources) +@MCA_BUILD_opal_btl_ofi_DSO_TRUE@lib_sources = +@MCA_BUILD_opal_btl_ofi_DSO_FALSE@component = +@MCA_BUILD_opal_btl_ofi_DSO_TRUE@component = mca_btl_ofi.la +@MCA_BUILD_opal_btl_ofi_DSO_FALSE@component_sources = +@MCA_BUILD_opal_btl_ofi_DSO_TRUE@component_sources = $(sources) +mcacomponentdir = $(opallibdir) +mcacomponent_LTLIBRARIES = $(component) +mca_btl_ofi_la_SOURCES = $(component_sources) +mca_btl_ofi_la_LDFLAGS = -module -avoid-version \ + $(opal_ofi_LDFLAGS) + +mca_btl_ofi_la_LIBADD = $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \ + $(OPAL_TOP_BUILDDIR)/opal/mca/common/ofi/lib@OPAL_LIB_PREFIX@mca_common_ofi.la \ + $(opal_ofi_LIBS) + +noinst_LTLIBRARIES = $(lib) +libmca_btl_ofi_la_SOURCES = $(lib_sources) +libmca_btl_ofi_la_LDFLAGS = -module -avoid-version $(opal_ofi_LDFLAGS) +libmca_btl_ofi_la_LIBS = $(opal_ofi_LIBS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign opal/mca/btl/ofi/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign opal/mca/btl/ofi/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-mcacomponentLTLIBRARIES: $(mcacomponent_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(mcacomponentdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(mcacomponentdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(mcacomponentdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(mcacomponentdir)"; \ + } + +uninstall-mcacomponentLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(mcacomponentdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(mcacomponentdir)/$$f"; \ + done + +clean-mcacomponentLTLIBRARIES: + -test -z "$(mcacomponent_LTLIBRARIES)" || rm -f $(mcacomponent_LTLIBRARIES) + @list='$(mcacomponent_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libmca_btl_ofi.la: $(libmca_btl_ofi_la_OBJECTS) $(libmca_btl_ofi_la_DEPENDENCIES) $(EXTRA_libmca_btl_ofi_la_DEPENDENCIES) + $(AM_V_CCLD)$(libmca_btl_ofi_la_LINK) $(am_libmca_btl_ofi_la_rpath) $(libmca_btl_ofi_la_OBJECTS) $(libmca_btl_ofi_la_LIBADD) $(LIBS) + +mca_btl_ofi.la: $(mca_btl_ofi_la_OBJECTS) $(mca_btl_ofi_la_DEPENDENCIES) $(EXTRA_mca_btl_ofi_la_DEPENDENCIES) + $(AM_V_CCLD)$(mca_btl_ofi_la_LINK) $(am_mca_btl_ofi_la_rpath) $(mca_btl_ofi_la_OBJECTS) $(mca_btl_ofi_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btl_ofi_atomics.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btl_ofi_component.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btl_ofi_context.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btl_ofi_endpoint.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btl_ofi_frag.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btl_ofi_module.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btl_ofi_rdma.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(mcacomponentdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-mcacomponentLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-mcacomponentLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-mcacomponentLTLIBRARIES install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-mcacomponentLTLIBRARIES + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/opal/mca/btl/ofi/README openmpi-4.1.4/opal/mca/btl/ofi/README --- openmpi-4.0.3/opal/mca/btl/ofi/README 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/ofi/README 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,110 @@ +======================================== +Design notes on BTL/OFI +======================================== + +This is the RDMA only btl based on OFI Libfabric. The goal is to enable RDMA +with multiple vendor hardware through one interface. Most of the operations are +managed by upper layer (osc/rdma). This BTL is mostly doing the low level work. + +Tested providers: sockets,psm2,ugni + +======================================== + +Component + +This BTL is requesting libfabric version 1.5 API and will not support older versions. + +The required capabilities of this BTL is FI_ATOMIC and FI_RMA with the endpoint type +of FI_EP_RDM only. This BTL does NOT support libfabric provider that requires local +memory registration (FI_MR_LOCAL). + +BTL/OFI will initialize a module with ONLY the first compatible info returned from OFI. +This means it will rely on OFI provider to do load balancing. The support for multiple +device might be added later. + +The BTL creates only one endpoint and one CQ. + +======================================== + +Memory Registration + +Open MPI has a system in place to exchange remote address and always use the remote +virtual address to refer to a piece of memory. However, some libfabric providers might +not support the use of virtual address and instead will use zero-based offset addressing. + +FI_MR_VIRT_ADDR is the flag that determine this behavior. mca_btl_ofi_reg_mem() handles +this by storing the base address in registration handle in case of the provider does not +support FI_MR_VIRT_ADDR. This base address will be used to calculate the offset later in +RDMA/Atomic operations. + +The BTL will try to use the address of registration handle as the key. However, if the +provider supports FI_MR_PROV_KEY, it will use provider provided key. Simply does not care. + +The BTL does not register local operand or compare. This is why this BTL does not support +FI_MR_LOCAL and will allocate every buffer before registering. This means FI_MR_ALLOCATED +is supported. So to be explicit. + +Supported MR mode bits (will work with or without): + enum: + - FI_MR_BASIC + - FI_MR_SCALABLE + + mode bits: + - FI_MR_VIRT_ADDR + - FI_MR_ALLOCATED + - FI_MR_PROV_KEY + +The BTL does NOT support (will not work with): + - FI_MR_LOCAL + - FI_MR_MMU_NOTIFY + - FI_MR_RMA_EVENT + - FI_MR_ENDPOINT + +Just a reminder, in libfabric API 1.5... +FI_MR_BASIC == (FI_MR_PROV_KEY | FI_MR_ALLOCATED | FI_MR_VIRT_ADDR) + +======================================== + +Completions + +Every operation in this BTL is asynchronous. The completion handling will occur in +mca_btl_ofi_component_progress() where we read the CQ with the completion context and +execute the callback functions. The completions are local. No remote completion event is +generated as local completion already guarantee global completion. + +The BTL keep tracks of number of outstanding operations and provide flush interface. + +======================================== + +Sockets Provider + +Sockets provider is the proof of concept provider for libfabric. It is supposed to support +all the OFI API with emulations. This provider is considered very slow and bound to raise +problems that we might not see from other faster providers. + +Known Problems: + - sockets provider uses progress thread and can cause segfault in finalize as we free + the resources while progress thread is still using it. sleep(1) was put in + mca_btl_ofi_componenet_close() for this reason. + - sockets provider deadlock in two-sided mode. Might be something about buffered recv. + (August 2018). + +======================================== + +Scalable Endpoint + +This BTL will try to use scalable endpoint to create communication context. This will increase +multithreaded performance for some application. The default number of context created is 1 and +can be tuned VIA MCA parameter "btl_ofi_num_contexts_per_module". It is advised that the number +of context should be equal to number of physical core for optimal performance. + +User can disable scalable endpoint by MCA parameter "btl_ofi_disable_sep". +With scalable endpoint disbled, the BTL will alias OFI endpoint to both tx and rx context. + +======================================== + +Two sided communication + +Two sided communication is added later on to BTL OFI to enable non tag-matching provider +to be able to use in Open MPI with this BTL. However, the support is only for "functional" +and has not been optimized for performance at this point. (August 2018) diff -Nru openmpi-4.0.3/opal/mca/btl/openib/btl_openib_component.c openmpi-4.1.4/opal/mca/btl/openib/btl_openib_component.c --- openmpi-4.0.3/opal/mca/btl/openib/btl_openib_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/openib/btl_openib_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006-2018 Cisco Systems, Inc. All rights reserved + * Copyright (c) 2006-2022 Cisco Systems, Inc. All rights reserved * Copyright (c) 2006-2015 Mellanox Technologies. All rights reserved. * Copyright (c) 2006-2018 Los Alamos National Security, LLC. All rights * reserved. @@ -1868,7 +1868,7 @@ "eager RDMA and progress threads", true); } - asprintf (&rcache_resources.cache_name, "verbs.%" PRIu64, device->ib_dev_attr.node_guid); + asprintf (&rcache_resources.cache_name, "verbs.%" PRIu64, (uint64_t) device->ib_dev_attr.node_guid); rcache_resources.reg_data = (void*)device; rcache_resources.sizeof_reg = sizeof(mca_btl_openib_reg_t); rcache_resources.register_mem = openib_reg_mr; diff -Nru openmpi-4.0.3/opal/mca/btl/openib/Makefile.in openmpi-4.1.4/opal/mca/btl/openib/Makefile.in --- openmpi-4.0.3/opal/mca/btl/openib/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/openib/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -150,6 +150,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -157,6 +159,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -180,6 +183,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -282,6 +286,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -289,6 +294,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -369,6 +375,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -391,9 +398,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -403,6 +414,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -423,6 +435,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -758,6 +771,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1578,6 +1594,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1610,9 +1630,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1633,6 +1662,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1717,9 +1747,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1780,6 +1807,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1793,6 +1823,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/btl/portals4/btl_portals4.c openmpi-4.1.4/opal/mca/btl/portals4/btl_portals4.c --- openmpi-4.0.3/opal/mca/btl/portals4/btl_portals4.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/portals4/btl_portals4.c 2022-05-29 09:51:40.000000000 +0000 @@ -188,14 +188,14 @@ goto error; } OPAL_OUTPUT_VERBOSE((90, opal_btl_base_framework.framework_output, "PtlMEAppend (overflow list) OK for NI %d", interface)); - } - ret = mca_btl_portals4_recv_enable(portals4_btl); - if (PTL_OK != ret) { - opal_output_verbose(1, opal_btl_base_framework.framework_output, - "%s:%d: Initialization of recv buffer failed: %d", - __FILE__, __LINE__, ret); - goto error; + ret = mca_btl_portals4_recv_enable(portals4_btl); + if (PTL_OK != ret) { + opal_output_verbose(1, opal_btl_base_framework.framework_output, + "%s:%d: Initialization of recv buffer failed: %d", __FILE__, __LINE__, + ret); + goto error; + } } return OPAL_SUCCESS; @@ -558,15 +558,16 @@ size_t* size, uint32_t flags) { - struct mca_btl_portals4_module_t* portals4_btl = (struct mca_btl_portals4_module_t*) btl_base; - mca_btl_portals4_frag_t* frag; + mca_btl_portals4_frag_t* frag = NULL; size_t max_data = *size; struct iovec iov; uint32_t iov_count = 1; int ret; OPAL_OUTPUT_VERBOSE((90, opal_btl_base_framework.framework_output, - "mca_btl_portals4_prepare_src NI=%d reserve=%ld size=%ld max_data=%ld\n", portals4_btl->interface_num, reserve, *size, max_data)); + "mca_btl_portals4_prepare_src NI=%d reserve=%ld size=%ld max_data=%ld\n", + ((struct mca_btl_portals4_module_t *) btl_base)->interface_num, + reserve, *size, max_data)); if (0 != reserve || 0 != opal_convertor_need_buffers(convertor)) { OPAL_OUTPUT_VERBOSE((90, opal_btl_base_framework.framework_output, "mca_btl_portals4_prepare_src NEED BUFFERS or RESERVE\n")); @@ -670,11 +671,11 @@ mca_btl_base_registration_handle_t *handle) { int ret; - struct mca_btl_portals4_module_t *portals4_btl = (struct mca_btl_portals4_module_t*) btl_base; OPAL_OUTPUT_VERBOSE((90, opal_btl_base_framework.framework_output, - "mca_btl_portals4_deregister_mem NI=%d handle=%p key=%ld me_h=%d\n", - portals4_btl->interface_num, (void *)handle, handle->key, handle->me_h)); + "mca_btl_portals4_deregister_mem NI=%d handle=%p key=%ld me_h=%d\n", + ((struct mca_btl_portals4_module_t *) btl_base)->interface_num, + (void *) handle, handle->key, handle->me_h)); if (!PtlHandleIsEqual(handle->me_h, PTL_INVALID_HANDLE)) { ret = PtlMEUnlink(handle->me_h); diff -Nru openmpi-4.0.3/opal/mca/btl/portals4/Makefile.in openmpi-4.1.4/opal/mca/btl/portals4/Makefile.in --- openmpi-4.0.3/opal/mca/btl/portals4/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/portals4/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -124,6 +124,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -131,6 +133,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -154,6 +157,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -256,6 +260,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -263,6 +268,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -343,6 +349,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -365,9 +372,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -377,6 +388,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -397,6 +409,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -669,6 +682,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1489,6 +1505,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1521,9 +1541,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1544,6 +1573,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1628,9 +1658,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1691,6 +1718,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1704,6 +1734,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/btl/self/btl_self.c openmpi-4.1.4/opal/mca/btl/self/btl_self.c --- openmpi-4.0.3/opal/mca/btl/self/btl_self.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/self/btl_self.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2013 The University of Tennessee and The University + * Copyright (c) 2004-2022 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -246,7 +246,9 @@ frag = mca_btl_self_prepare_src (btl, endpoint, convertor, order, header_size, &payload_size, flags | MCA_BTL_DES_FLAGS_BTL_OWNERSHIP); if (NULL == frag) { - *descriptor = NULL; + if( NULL != descriptor ) { + *descriptor = NULL; + } return OPAL_ERR_OUT_OF_RESOURCE; } diff -Nru openmpi-4.0.3/opal/mca/btl/self/Makefile.in openmpi-4.1.4/opal/mca/btl/self/Makefile.in --- openmpi-4.0.3/opal/mca/btl/self/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/self/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -657,6 +670,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1477,6 +1493,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1509,9 +1529,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1532,6 +1561,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1616,9 +1646,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1679,6 +1706,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1692,6 +1722,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/btl/sm/Makefile.in openmpi-4.1.4/opal/mca/btl/sm/Makefile.in --- openmpi-4.0.3/opal/mca/btl/sm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/sm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -661,6 +674,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1481,6 +1497,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1513,9 +1533,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1536,6 +1565,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1620,9 +1650,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1683,6 +1710,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1696,6 +1726,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/btl/smcuda/btl_smcuda.c openmpi-4.1.4/opal/mca/btl/smcuda/btl_smcuda.c --- openmpi-4.0.3/opal/mca/btl/smcuda/btl_smcuda.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/smcuda/btl_smcuda.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2011 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2014 The University of Tennessee and The University + * Copyright (c) 2004-2022 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2007 High Performance Computing Center Stuttgart, @@ -202,10 +202,14 @@ rc = OPAL_ERROR; goto out; } + /* + * We should not use the opal_cache_line_size here, it is too early in the initialization + * and it is not yet initialized. Fall back to a fixed constant instead. + */ if (NULL == (comp_ptr->sm_seg = mca_common_sm_module_attach(tmp_shmem_ds, sizeof(mca_common_sm_seg_header_t), - opal_cache_line_size))) { + SM_CACHE_LINE_PAD))) { /* don't have to detach here, because module_attach cleans up after * itself on failure. */ opal_output(0, "sm_segment_attach: " @@ -921,10 +925,7 @@ } /* We do not want to use this path when we have CUDA IPC support */ if ((convertor->flags & CONVERTOR_CUDA) && (IPC_ACKED == endpoint->ipcstate)) { - if (NULL != descriptor) { - *descriptor = mca_btl_smcuda_alloc(btl, endpoint, order, payload_size+header_size, flags); - } - return OPAL_ERR_RESOURCE_BUSY; + goto return_resource_busy; } #endif /* OPAL_CUDA_SUPPORT */ @@ -934,9 +935,8 @@ /* allocate a fragment, giving up if we can't get one */ /* note that frag==NULL is equivalent to rc returning an error code */ MCA_BTL_SMCUDA_FRAG_ALLOC_EAGER(frag); - if( OPAL_UNLIKELY(NULL == frag) ) { - *descriptor = NULL; - return OPAL_ERR_OUT_OF_RESOURCE; + if (OPAL_UNLIKELY(NULL == frag)) { + goto return_resource_busy; } /* fill in fragment fields */ @@ -983,9 +983,10 @@ return OPAL_SUCCESS; } - /* presumably, this code path will never get executed */ - *descriptor = mca_btl_smcuda_alloc( btl, endpoint, order, - payload_size + header_size, flags); + return_resource_busy: + if (NULL != descriptor) { + *descriptor = mca_btl_smcuda_alloc(btl, endpoint, order, length, flags); + } return OPAL_ERR_RESOURCE_BUSY; } @@ -1049,9 +1050,11 @@ int access_flags = flags & MCA_BTL_REG_FLAG_ACCESS_ANY; int rcache_flags = 0; +#if OPAL_CUDA_GDR_SUPPORT if (MCA_BTL_REG_FLAG_CUDA_GPU_MEM & flags) { rcache_flags |= MCA_RCACHE_FLAGS_CUDA_GPU_MEM; } +#endif smcuda_module->rcache->rcache_register (smcuda_module->rcache, base, size, rcache_flags, access_flags, (mca_rcache_base_registration_t **) ®); diff -Nru openmpi-4.0.3/opal/mca/btl/smcuda/btl_smcuda_component.c openmpi-4.1.4/opal/mca/btl/smcuda/btl_smcuda_component.c --- openmpi-4.0.3/opal/mca/btl/smcuda/btl_smcuda_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/smcuda/btl_smcuda_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -203,11 +203,13 @@ if (0 == mca_btl_smcuda.super.btl_cuda_max_send_size) { mca_btl_smcuda.super.btl_cuda_max_send_size = 128*1024; } +#if OPAL_CUDA_GDR_SUPPORT /* If user has not set the value, then set to magic number which will be converted to the minimum * size needed to fit the PML header (see pml_ob1.c) */ if (0 == mca_btl_smcuda.super.btl_cuda_eager_limit) { mca_btl_smcuda.super.btl_cuda_eager_limit = SIZE_MAX; /* magic number */ } +#endif mca_common_cuda_register_mca_variables(); #endif /* OPAL_CUDA_SUPPORT */ return mca_btl_smcuda_component_verify(); @@ -396,16 +398,19 @@ * - max fragments (sm_free_list_num of them) * * On top of all that, we sprinkle in some number of - * "opal_cache_line_size" additions to account for some + * SM_CACHE_LINE_PAD additions to account for some * padding and edge effects that may lie in the allocator. + * + * We should not use the opal_cache_line_size here, it is too early in the initialization + * and it is not yet initialized. Fall back to a fixed constant instead. */ size = FIFO_MAP_NUM(max_procs) * (sizeof(sm_fifo_t) + sizeof(void *) * - mca_btl_smcuda_component.fifo_size + 4 * opal_cache_line_size) + + mca_btl_smcuda_component.fifo_size + 4 * SM_CACHE_LINE_PAD) + (2 * max_procs + mca_btl_smcuda_component.sm_free_list_inc) * - (mca_btl_smcuda_component.eager_limit + 2 * opal_cache_line_size) + + (mca_btl_smcuda_component.eager_limit + 2 * SM_CACHE_LINE_PAD) + mca_btl_smcuda_component.sm_free_list_num * - (mca_btl_smcuda_component.max_frag_size + 2 * opal_cache_line_size); + (mca_btl_smcuda_component.max_frag_size + 2 * SM_CACHE_LINE_PAD); /* add something for the control structure */ size += sizeof(mca_common_sm_module_t); @@ -528,12 +533,12 @@ comp_ptr->sm_max_procs * (sizeof(sm_fifo_t *) + sizeof(char *) + sizeof(uint16_t)) + - opal_cache_line_size; + SM_CACHE_LINE_PAD; if (OPAL_SUCCESS != (rc = create_and_attach(comp_ptr, size, comp_ptr->sm_ctl_file_name, sizeof(mca_common_sm_seg_header_t), - opal_cache_line_size, &comp_ptr->sm_seg))) { + SM_CACHE_LINE_PAD, &comp_ptr->sm_seg))) { /* rc is set */ goto out; } diff -Nru openmpi-4.0.3/opal/mca/btl/smcuda/Makefile.in openmpi-4.1.4/opal/mca/btl/smcuda/Makefile.in --- openmpi-4.0.3/opal/mca/btl/smcuda/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/smcuda/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -123,6 +123,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -130,6 +132,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -153,6 +156,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -255,6 +259,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -262,6 +267,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -342,6 +348,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -364,9 +371,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -376,6 +387,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -396,6 +408,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -673,6 +686,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1493,6 +1509,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1525,9 +1545,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1548,6 +1577,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1632,9 +1662,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1695,6 +1722,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1708,6 +1738,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/btl/tcp/btl_tcp_component.c openmpi-4.1.4/opal/mca/btl/tcp/btl_tcp_component.c --- openmpi-4.0.3/opal/mca/btl/tcp/btl_tcp_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/tcp/btl_tcp_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -577,8 +577,8 @@ */ static char **split_and_resolve(char **orig_str, char *name, bool reqd) { - int i, ret, save, if_index; - char **argv, *str, *tmp; + int i, n, ret, if_index, match_count, interface_count; + char **argv, **interfaces, *str, *tmp; char if_name[IF_NAMESIZE]; struct sockaddr_storage argv_inaddr, if_inaddr; uint32_t argv_prefix; @@ -592,9 +592,22 @@ if (NULL == argv) { return NULL; } - for (save = i = 0; NULL != argv[i]; ++i) { + interface_count = 0; + interfaces = NULL; + for (i = 0; NULL != argv[i]; ++i) { if (isalpha(argv[i][0])) { - argv[save++] = argv[i]; + /* This is an interface name. If not already in the interfaces array, add it */ + for (n = 0; n < interface_count; n++) { + if (0 == strcmp(argv[i], interfaces[n])) { + break; + } + } + if (n == interface_count) { + opal_output_verbose(20, + opal_btl_base_framework.framework_output, + "btl: tcp: Using interface: %s ", argv[i]); + opal_argv_append(&interface_count, &interfaces, argv[i]); + } continue; } @@ -634,6 +647,7 @@ argv_prefix); /* Go through all interfaces and see if we can find a match */ + match_count = 0; for (if_index = opal_ifbegin(); if_index >= 0; if_index = opal_ifnext(if_index)) { opal_ifindextoaddr(if_index, @@ -642,12 +656,28 @@ if (opal_net_samenetwork((struct sockaddr*) &argv_inaddr, (struct sockaddr*) &if_inaddr, argv_prefix)) { - break; + /* We found a match. If it's not already in the interfaces array, + add it. If it's already in the array, treat it as a match */ + match_count = match_count + 1; + opal_ifindextoname(if_index, if_name, sizeof(if_name)); + for (n = 0; n < interface_count; n++) { + if (0 == strcmp(if_name, interfaces[n])) { + break; + } + } + if (n == interface_count) { + opal_output_verbose(20, + opal_btl_base_framework.framework_output, + "btl: tcp: Found match: %s (%s)", + opal_net_get_hostname((struct sockaddr*) &if_inaddr), + if_name); + opal_argv_append(&interface_count, &interfaces, if_name); + } } } /* If we didn't find a match, keep trying */ - if (if_index < 0) { + if (0 == match_count) { if (reqd || mca_btl_tcp_component.report_all_unfound_interfaces) { opal_show_help("help-mpi-btl-tcp.txt", "invalid if_inexclude", true, name, opal_process_info.nodename, tmp, @@ -657,23 +687,17 @@ continue; } - /* We found a match; get the name and replace it in the - argv */ - opal_ifindextoname(if_index, if_name, sizeof(if_name)); - opal_output_verbose(20, opal_btl_base_framework.framework_output, - "btl: tcp: Found match: %s (%s)", - opal_net_get_hostname((struct sockaddr*) &if_inaddr), - if_name); - argv[save++] = strdup(if_name); free(tmp); } - /* The list may have been compressed if there were invalid - entries, so ensure we end it with a NULL entry */ - argv[save] = NULL; + /* Mark the end of the interface name array with NULL */ + if (NULL != interfaces) { + interfaces[interface_count] = NULL; + } + free(argv); free(*orig_str); - *orig_str = opal_argv_join(argv, ','); - return argv; + *orig_str = opal_argv_join(interfaces, ','); + return interfaces; } @@ -1291,6 +1315,24 @@ } } + /* Avoid a race in wire-up when using threads (progess or user) + and multiple BTL modules. The details of the race are in + https://github.com/open-mpi/ompi/issues/3035#issuecomment-429500032, + but the summary is that the lookup code in + component_recv_handler() below assumes that add_procs() is + atomic across all active TCP BTL modules, but in multi-threaded + code, that isn't guaranteed, because the locking is inside + add_procs(), and add_procs() is called once per module. This + isn't a proper fix, but will solve the "dropped connection" + problem until we can come up with a more complete fix to how we + initialize procs, endpoints, and modules in the TCP BTL. */ + if (mca_btl_tcp_component.tcp_num_btls > 1 && + (enable_mpi_threads || 0 < mca_btl_tcp_progress_thread_trigger)) { + for( i = 0; i < mca_btl_tcp_component.tcp_num_btls; i++) { + mca_btl_tcp_component.tcp_btls[i]->super.btl_flags |= MCA_BTL_FLAGS_SINGLE_ADD_PROCS; + } + } + #if OPAL_CUDA_SUPPORT mca_common_cuda_stage_one_init(); #endif /* OPAL_CUDA_SUPPORT */ diff -Nru openmpi-4.0.3/opal/mca/btl/tcp/Makefile.in openmpi-4.1.4/opal/mca/btl/tcp/Makefile.in --- openmpi-4.0.3/opal/mca/btl/tcp/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/tcp/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -673,6 +686,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1493,6 +1509,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1525,9 +1545,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1548,6 +1577,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1632,9 +1662,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1695,6 +1722,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1708,6 +1738,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/btl/uct/btl_uct_component.c openmpi-4.1.4/opal/mca/btl/uct/btl_uct_component.c --- openmpi-4.0.3/opal/mca/btl/uct/btl_uct_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/uct/btl_uct_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -113,9 +113,11 @@ int core_count = 36; (void) opal_hwloc_base_get_topology (); - core_count = hwloc_get_nbobjs_by_type (opal_hwloc_topology, HWLOC_OBJ_CORE); + if (0 > (core_count = hwloc_get_nbobjs_by_type(opal_hwloc_topology, HWLOC_OBJ_CORE))) { + return OPAL_ERROR; + } - if (core_count <= opal_process_info.num_local_peers || !opal_using_threads()) { + if ((uint32_t)core_count <= opal_process_info.num_local_peers || !opal_using_threads()) { /* there is probably no benefit to using multiple device contexts when not * using threads or oversubscribing the node with mpi processes. */ mca_btl_uct_component.num_contexts_per_module = 1; @@ -437,9 +439,9 @@ return OPAL_ERROR; } - for (int i = 0 ; i < attr.md_resource_count ; ++i) { - rc = mca_btl_uct_component_process_uct_md (component, attr.md_resources + i, - allowed_ifaces); + for (unsigned i = 0; i < attr.md_resource_count; ++i) { + rc = mca_btl_uct_component_process_uct_md(component, attr.md_resources + i, + allowed_ifaces); if (OPAL_SUCCESS != rc) { break; } @@ -464,8 +466,6 @@ { /* for this BTL to be useful the interface needs to support RDMA and certain atomic operations */ struct mca_btl_base_module_t **base_modules; - uct_md_resource_desc_t *resources; - unsigned resource_count; ucs_status_t ucs_status; char **allowed_ifaces; int rc; @@ -506,6 +506,8 @@ uct_release_component_list (components); #else /* UCT 1.6 and older */ + uct_md_resource_desc_t *resources; + unsigned resource_count; uct_query_md_resources (&resources, &resource_count); @@ -561,6 +563,7 @@ static int mca_btl_uct_component_progress_pending (mca_btl_uct_module_t *uct_btl) { mca_btl_uct_base_frag_t *frag, *next; + int completed = 0; size_t count; if (0 == (count = opal_list_get_size (&uct_btl->pending_frags))) { @@ -577,11 +580,13 @@ if (OPAL_SUCCESS > mca_btl_uct_send_frag (uct_btl, frag, false)) { opal_list_prepend (&uct_btl->pending_frags, (opal_list_item_t *) frag); + } else { + completed++; } } OPAL_THREAD_UNLOCK(&uct_btl->lock); - return OPAL_SUCCESS; + return completed; } /** diff -Nru openmpi-4.0.3/opal/mca/btl/uct/configure.m4 openmpi-4.1.4/opal/mca/btl/uct/configure.m4 --- openmpi-4.0.3/opal/mca/btl/uct/configure.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/uct/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -6,7 +6,7 @@ # Copyright (c) 2004-2005 The University of Tennessee and The University # of Tennessee Research Foundation. All rights # reserved. -# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# Copyright (c) 2004-2020 High Performance Computing Center Stuttgart, # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2006 The Regents of the University of California. # All rights reserved. @@ -52,7 +52,7 @@ fi max_allowed_uct_major=1 - max_allowed_uct_minor=7 + max_allowed_uct_minor=8 if test "$btl_uct_happy" = "yes" && test "$enable_uct_version_check" != "no"; then AC_MSG_CHECKING([UCT version compatibility]) OPAL_VAR_SCOPE_PUSH([CPPFLAGS_save]) diff -Nru openmpi-4.0.3/opal/mca/btl/uct/Makefile.in openmpi-4.1.4/opal/mca/btl/uct/Makefile.in --- openmpi-4.0.3/opal/mca/btl/uct/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/uct/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -675,6 +688,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1495,6 +1511,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1527,9 +1547,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1550,6 +1579,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1634,9 +1664,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1697,6 +1724,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1710,6 +1740,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/btl/ugni/Makefile.in openmpi-4.1.4/opal/mca/btl/ugni/Makefile.in --- openmpi-4.0.3/opal/mca/btl/ugni/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/ugni/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -113,6 +113,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -120,6 +122,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -143,6 +146,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -245,6 +249,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -252,6 +257,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -332,6 +338,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -354,9 +361,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -366,6 +377,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -386,6 +398,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -664,6 +677,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1484,6 +1500,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1516,9 +1536,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1539,6 +1568,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1623,9 +1653,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1686,6 +1713,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1699,6 +1729,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/btl/usnic/btl_usnic_cagent.c openmpi-4.1.4/opal/mca/btl/usnic/btl_usnic_cagent.c --- openmpi-4.0.3/opal/mca/btl/usnic/btl_usnic_cagent.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/usnic/btl_usnic_cagent.c 2022-05-29 09:51:40.000000000 +0000 @@ -44,7 +44,7 @@ static struct timeval ack_timeout; static opal_list_t udp_port_listeners; static opal_list_t ipc_listeners; -static volatile int ipc_accepts = 0; +static volatile int32_t ipc_accepts = 0; /* JMS The pings_pending and ping_results should probably both be hash tables for more efficient lookups */ static opal_list_t pings_pending; diff -Nru openmpi-4.0.3/opal/mca/btl/usnic/btl_usnic_compat.h openmpi-4.1.4/opal/mca/btl/usnic/btl_usnic_compat.h --- openmpi-4.0.3/opal/mca/btl/usnic/btl_usnic_compat.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/usnic/btl_usnic_compat.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2013-2018 Cisco Systems, Inc. All rights reserved + * Copyright (c) 2013-2022 Cisco Systems, Inc. All rights reserved * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2018 Intel, Inc. All rights reserved. @@ -234,7 +234,7 @@ /* - * Replicate functions that exist on master + * Replicate functions that exist on main */ char* opal_get_proc_hostname(opal_proc_t *proc); diff -Nru openmpi-4.0.3/opal/mca/btl/usnic/btl_usnic_stats.c openmpi-4.1.4/opal/mca/btl/usnic/btl_usnic_stats.c --- openmpi-4.0.3/opal/mca/btl/usnic/btl_usnic_stats.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/usnic/btl_usnic_stats.c 2022-05-29 09:51:40.000000000 +0000 @@ -440,7 +440,7 @@ /* Free the strings (mca_base_var_enum_create() strdup()'ed them into private storage, so we don't need them any more) */ - for (int i = 0; i < mca_btl_usnic_component.num_modules; ++i) { + for (i = 0; i < mca_btl_usnic_component.num_modules; ++i) { free((char*) devices[i].string); } free(devices); diff -Nru openmpi-4.0.3/opal/mca/btl/usnic/configure.m4 openmpi-4.1.4/opal/mca/btl/usnic/configure.m4 --- openmpi-4.0.3/opal/mca/btl/usnic/configure.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/usnic/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ # All rights reserved. # Copyright (c) 2006 Sandia National Laboratories. All rights # reserved. -# Copyright (c) 2010-2019 Cisco Systems, Inc. All rights reserved +# Copyright (c) 2010-2020 Cisco Systems, Inc. All rights reserved # Copyright (c) 2017 Los Alamos National Security, LLC. All rights # reserved. # $COPYRIGHT$ @@ -100,25 +100,11 @@ OPAL_CHECK_OFI opal_btl_usnic_happy=$opal_ofi_happy]) - # The usnic BTL requires at least OFI libfabric v1.1 (there was a - # critical bug in libfabric v1.0). + # The usnic BTL requires at least OFI libfabric v1.3. AS_IF([test "$opal_btl_usnic_happy" = "yes"], - [AC_MSG_CHECKING([whether OFI libfabric is >= v1.1]) - opal_btl_usnic_CPPFLAGS_save=$CPPFLAGS - CPPFLAGS="$opal_ofi_CPPFLAGS $CPPFLAGS" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], -[[ -#if !defined(FI_MAJOR_VERSION) -#error your version of OFI libfabric is too old -#elif FI_VERSION(FI_MAJOR_VERSION, FI_MINOR_VERSION) < FI_VERSION(1, 1) -#error your version of OFI libfabric is too old -#endif -]])], - [opal_btl_usnic_happy=yes], - [opal_btl_usnic_happy=no]) - AC_MSG_RESULT([$opal_btl_usnic_happy]) - CPPFLAGS=$opal_btl_usnic_CPPFLAGS_save - ]) + [OPAL_CHECK_OFI_VERSION_GE([1,3], + [], + [opal_btl_usnic_happy=no])]) # Make sure we can find the OFI libfabric usnic extensions header AS_IF([test "$opal_btl_usnic_happy" = "yes" ], diff -Nru openmpi-4.0.3/opal/mca/btl/usnic/Makefile.in openmpi-4.1.4/opal/mca/btl/usnic/Makefile.in --- openmpi-4.0.3/opal/mca/btl/usnic/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/usnic/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -128,6 +128,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -135,6 +137,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -158,6 +161,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -260,6 +264,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -267,6 +272,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -347,6 +353,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -369,9 +376,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -381,6 +392,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -401,6 +413,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -713,6 +726,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1533,6 +1549,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1565,9 +1585,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1588,6 +1617,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1672,9 +1702,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1735,6 +1762,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1748,6 +1778,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/btl/usnic/README.txt openmpi-4.1.4/opal/mca/btl/usnic/README.txt --- openmpi-4.0.3/opal/mca/btl/usnic/README.txt 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/usnic/README.txt 2022-05-29 09:51:40.000000000 +0000 @@ -289,10 +289,10 @@ November 2014 / SC 2014 Update February 2015 -The usnic BTL code has been unified across master and the v1.8 +The usnic BTL code has been unified across main and the v1.8 branches. That is, you can copy the code from -v1.8:ompi/mca/btl/usnic/* to master:opal/mca/btl/usnic*, and then only -have to make 3 changes in the resulting code in master: +v1.8:ompi/mca/btl/usnic/* to main:opal/mca/btl/usnic*, and then only +have to make 3 changes in the resulting code in main: 1. Edit Makefile.am: s/ompi/opal/gi 2. Edit configure.m4: s/ompi/opal/gi diff -Nru openmpi-4.0.3/opal/mca/btl/vader/btl_vader_component.c openmpi-4.1.4/opal/mca/btl/vader/btl_vader_component.c --- openmpi-4.0.3/opal/mca/btl/vader/btl_vader_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/vader/btl_vader_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -22,6 +22,7 @@ * Copyright (c) 2018 Triad National Security, LLC. All rights * reserved. * Copyright (c) 2019-2020 Google, Inc. All rights reserved. + * Copyright (c) 2021 Nanook Consulting. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -559,13 +560,17 @@ /* no fast boxes allocated initially */ component->num_fbox_in_endpoints = 0; + component->local_rank = 0; + mca_btl_vader_check_single_copy (); if (MCA_BTL_VADER_XPMEM != mca_btl_vader_component.single_copy_mechanism) { char *sm_file; - rc = asprintf(&sm_file, "%s" OPAL_PATH_SEP "vader_segment.%s.%x.%d", mca_btl_vader_component.backing_directory, - opal_process_info.nodename, OPAL_PROC_MY_NAME.jobid, MCA_BTL_VADER_LOCAL_RANK); + rc = asprintf(&sm_file, "%s" OPAL_PATH_SEP "vader_segment.%s.%u.%x.%d", + mca_btl_vader_component.backing_directory, + opal_process_info.nodename, geteuid(), OPAL_PROC_MY_NAME.jobid, + MCA_BTL_VADER_LOCAL_RANK); if (0 > rc) { free (btls); return NULL; diff -Nru openmpi-4.0.3/opal/mca/btl/vader/btl_vader.h openmpi-4.1.4/opal/mca/btl/vader/btl_vader.h --- openmpi-4.0.3/opal/mca/btl/vader/btl_vader.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/vader/btl_vader.h 2022-05-29 09:51:40.000000000 +0000 @@ -124,6 +124,7 @@ char *my_segment; /**< this rank's base pointer */ size_t segment_size; /**< size of my_segment */ int32_t num_smp_procs; /**< current number of smp procs on this host */ + int32_t local_rank; /**< current rank index at add_procs() time */ opal_free_list_t vader_frags_eager; /**< free list of vader send frags */ opal_free_list_t vader_frags_max_send; /**< free list of vader max send frags (large fragments) */ opal_free_list_t vader_frags_user; /**< free list of small inline frags */ diff -Nru openmpi-4.0.3/opal/mca/btl/vader/btl_vader_module.c openmpi-4.1.4/opal/mca/btl/vader/btl_vader_module.c --- openmpi-4.0.3/opal/mca/btl/vader/btl_vader_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/vader/btl_vader_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -349,7 +349,7 @@ } } - for (int32_t proc = 0, local_rank = 0 ; proc < (int32_t) nprocs ; ++proc) { + for (int32_t proc = 0; proc < (int32_t) nprocs; ++proc) { /* check to see if this proc can be reached via shmem (i.e., if they're on my local host and in my job) */ if (procs[proc]->proc_name.jobid != my_proc->proc_name.jobid || @@ -367,8 +367,10 @@ } /* setup endpoint */ - peers[proc] = component->endpoints + local_rank; - rc = init_vader_endpoint (peers[proc], procs[proc], local_rank++); + int rank = opal_atomic_fetch_add_32(&component -> local_rank, 1); + + peers[proc] = component->endpoints + rank; + rc = init_vader_endpoint (peers[proc], procs[proc], rank); if (OPAL_SUCCESS != rc) { break; } diff -Nru openmpi-4.0.3/opal/mca/btl/vader/Makefile.in openmpi-4.1.4/opal/mca/btl/vader/Makefile.in --- openmpi-4.0.3/opal/mca/btl/vader/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/btl/vader/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -668,6 +681,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1488,6 +1504,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1520,9 +1540,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1543,6 +1572,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1627,9 +1657,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1690,6 +1717,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1703,6 +1733,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/common/cuda/Makefile.in openmpi-4.1.4/opal/mca/common/cuda/Makefile.in --- openmpi-4.0.3/opal/mca/common/cuda/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/common/cuda/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -144,6 +144,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -151,6 +153,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -174,6 +177,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -276,6 +280,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -283,6 +288,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -363,6 +369,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -385,9 +392,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -397,6 +408,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -417,6 +429,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -695,6 +708,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1515,6 +1531,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1547,9 +1567,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1570,6 +1599,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1654,9 +1684,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1717,6 +1744,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1730,6 +1760,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/common/Makefile.in openmpi-4.1.4/opal/mca/common/Makefile.in --- openmpi-4.0.3/opal/mca/common/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/common/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,6 +116,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -123,6 +125,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -146,6 +149,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -248,6 +252,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -255,6 +260,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -335,6 +341,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -357,9 +364,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -369,6 +380,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -389,6 +401,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -562,6 +575,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1382,6 +1398,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1414,9 +1434,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1437,6 +1466,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1521,9 +1551,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1584,6 +1611,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1597,6 +1627,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/common/ofi/common_ofi.c openmpi-4.1.4/opal/mca/common/ofi/common_ofi.c --- openmpi-4.0.3/opal/mca/common/ofi/common_ofi.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/common/ofi/common_ofi.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,720 @@ +/* + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2017 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2020 Triad National Security, LLC. All rights + * reserved. + * Copyright (c) 2021 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2020-2021 Cisco Systems, Inc. All rights reserved + * Copyright (c) 2021 Nanook Consulting. All rights reserved. + * Copyright (c) 2021 Amazon.com, Inc. or its affiliates. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + + +#include "opal_config.h" + +#include +#include +#include +#include +#ifdef HAVE_RDMA_FI_EXT_H +#include +#endif + +#include "common_ofi.h" +#include "opal_config.h" +#include "opal/constants.h" +#include "opal/util/argv.h" +#include "opal/mca/base/mca_base_var.h" +#include "opal/mca/base/mca_base_framework.h" +#include "opal/mca/hwloc/base/base.h" +#include "opal/mca/memory/base/base.h" +#include "opal/mca/pmix/base/base.h" +#include "opal/util/show_help.h" + +opal_common_ofi_module_t opal_common_ofi = {.prov_include = NULL, + .prov_exclude = NULL, + .output = -1}; +static const char default_prov_exclude_list[] = "shm,sockets,tcp,udp,rstream,usnic"; +static opal_mutex_t opal_common_ofi_mutex = OPAL_MUTEX_STATIC_INIT; +static int opal_common_ofi_verbose_level = 0; +static int opal_common_ofi_init_ref_cnt = 0; +#ifdef HAVE_STRUCT_FI_OPS_MEM_MONITOR +static bool opal_common_ofi_installed_memory_monitor = false; +#endif + +#ifdef HAVE_STRUCT_FI_OPS_MEM_MONITOR + +/* + * Monitor object to export into Libfabric to provide memory release + * notifications using our own memory hooks framework. Monitors may + * use the subscribe/unsubscribe notifications to reduce unnecessary + * notifications, but are not required to do so. Because patcher + * notifies about all releases, it is cheaper for us to not filter and + * this monitor can safely ignore subscribe/unsubscribe notifications. + * + * Libfabric requires the object to be fully defined. Unlike most of + * Open MPI, it does not have NULL function pointer checks in calling + * code. + */ +static int opal_common_ofi_monitor_start(struct fid_mem_monitor *monitor) +{ + return 0; +} + +static void opal_common_ofi_monitor_stop(struct fid_mem_monitor *monitor) +{ + return; +} + +static int opal_common_ofi_monitor_subscribe(struct fid_mem_monitor *monitor, + const void *addr, size_t len) +{ + return 0; +} + +static void opal_common_ofi_monitor_unsubscribe(struct fid_mem_monitor *monitor, + const void *addr, size_t len) +{ + return; +} + +static bool opal_common_ofi_monitor_valid(struct fid_mem_monitor *monitor, + const void *addr, size_t len) +{ + return true; +} + +static struct fid_mem_monitor *opal_common_ofi_monitor = NULL; +static struct fid *opal_common_ofi_cache_fid = NULL; +static struct fi_ops_mem_monitor opal_common_ofi_export_ops = { + .size = sizeof(struct fi_ops_mem_monitor), + .start = opal_common_ofi_monitor_start, + .stop = opal_common_ofi_monitor_stop, + .subscribe = opal_common_ofi_monitor_subscribe, + .unsubscribe = opal_common_ofi_monitor_unsubscribe, + .valid = opal_common_ofi_monitor_valid, +}; + +/** + * Callback function from Open MPI memory monitor + * + * Translation function between the callback function from Open MPI's + * memory notifier to the Libfabric memory monitor. + */ +static void opal_common_ofi_mem_release_cb(void *buf, size_t length, + void *cbdata, bool from_alloc) +{ + opal_common_ofi_monitor->import_ops->notify(opal_common_ofi_monitor, + buf, length); +} + +#endif /* HAVE_STRUCT_FI_OPS_MEM_MONITOR */ + +int opal_common_ofi_export_memory_monitor(void) +{ + int ret = -FI_ENOSYS; + +#ifdef HAVE_STRUCT_FI_OPS_MEM_MONITOR + OPAL_THREAD_LOCK(&opal_common_ofi_mutex); + + if (NULL != opal_common_ofi_cache_fid) { + return 0; + } + + /* + * While the memory import functionality was introduced in 1.13, + * some deadlock bugs exist in the 1.13 series. Require version + * 1.14 before this code is activated. Not activating the code + * should not break any functionality directly, but may lead to + * sub-optimal memory monitors being used in Libfabric, as Open + * MPI will almost certainly install a patcher first. + */ + if (FI_VERSION_LT(fi_version(), FI_VERSION(1, 14))) { + ret = -FI_ENOSYS; + goto err; + } + + ret = mca_base_framework_open(&opal_memory_base_framework, 0); + if (OPAL_SUCCESS != ret) { + ret = -FI_ENOSYS; + goto err; + } + if ((OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT) + != (((OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT)) + & opal_mem_hooks_support_level())) { + ret = -FI_ENOSYS; + goto err; + } + + /* + * The monitor import object has the well known name "mr_cache" + * and was introduced in Libfabric 1.13 + */ + ret = fi_open(FI_VERSION(1,13), "mr_cache", NULL, 0, 0, + &opal_common_ofi_cache_fid, NULL); + if (0 != ret) { + goto err; + } + + opal_common_ofi_monitor = calloc(1, sizeof(*opal_common_ofi_monitor)); + if (NULL == opal_common_ofi_monitor) { + ret = -FI_ENOMEM; + goto err; + } + + opal_common_ofi_monitor->fid.fclass = FI_CLASS_MEM_MONITOR; + opal_common_ofi_monitor->export_ops = &opal_common_ofi_export_ops; + ret = fi_import_fid(opal_common_ofi_cache_fid, + &opal_common_ofi_monitor->fid, 0); + if (0 != ret) { + goto err; + } + opal_mem_hooks_register_release(opal_common_ofi_mem_release_cb, NULL); + opal_common_ofi_installed_memory_monitor = true; + + ret = 0; + +err: + if (0 != ret) { + if (NULL != opal_common_ofi_cache_fid) { + fi_close(opal_common_ofi_cache_fid); + } + if (NULL != opal_common_ofi_monitor) { + free(opal_common_ofi_monitor); + } + + opal_common_ofi_installed_memory_monitor = false; + } + + OPAL_THREAD_UNLOCK(&opal_common_ofi_mutex); +#endif + + return ret; +} + +static int opal_common_ofi_remove_memory_monitor(void) +{ +#ifdef HAVE_STRUCT_FI_OPS_MEM_MONITOR + if (opal_common_ofi_installed_memory_monitor) { + opal_mem_hooks_unregister_release(opal_common_ofi_mem_release_cb); + fi_close(opal_common_ofi_cache_fid); + fi_close(&opal_common_ofi_monitor->fid); + free(opal_common_ofi_monitor); + opal_common_ofi_installed_memory_monitor = false; + } +#endif + + return OPAL_SUCCESS; +} + +int opal_common_ofi_open(void) +{ + if ((opal_common_ofi_init_ref_cnt++) > 0) { + return OPAL_SUCCESS; + } + + return OPAL_SUCCESS; +} + +int opal_common_ofi_close(void) +{ + int ret; + + if ((--opal_common_ofi_init_ref_cnt) > 0) { + return OPAL_SUCCESS; + } + + ret = opal_common_ofi_remove_memory_monitor(); + if (OPAL_SUCCESS != ret) { + return ret; + } + + if (-1 != opal_common_ofi.output) { + opal_output_close(opal_common_ofi.output); + opal_common_ofi.output = -1; + if (OPAL_SUCCESS != ret) { + return ret; + } + } + + return OPAL_SUCCESS; +} + +int opal_common_ofi_is_in_list(char **list, char *item) +{ + int i = 0; + + if ((NULL == list) || (NULL == item)) { + return 0; + } + + while (NULL != list[i]) { + if (0 == strncasecmp(item, list[i], strlen(list[i]))) { + return 1; + } else { + i++; + } + } + + return 0; +} + +int opal_common_ofi_mca_register(const mca_base_component_t *component) +{ + static int include_index = -1; + static int exclude_index = -1; + static int verbose_index = -1; + int ret; + + if (fi_version() < FI_VERSION(1,0)) { + return OPAL_ERROR; + } + + OPAL_THREAD_LOCK(&opal_common_ofi_mutex); + + if (0 > include_index) { + /* + * this monkey business is needed because of the way the MCA VARs stuff tries to handle pointers to strings when + * when destructing the MCA var database. If you don't do something like this,the MCA var framework will try + * to dereference a pointer which itself is no longer a valid address owing to having been previously dlclosed. + */ + if (NULL == opal_common_ofi.prov_include) { + opal_common_ofi.prov_include = (char **) malloc(sizeof(char *)); + assert(NULL != opal_common_ofi.prov_include); + } + *opal_common_ofi.prov_include = NULL; + include_index = mca_base_var_register( + "opal", "opal_common", "ofi", "provider_include", + "Comma-delimited list of OFI providers that are considered for use (e.g., " + "\"psm,psm2\"; an empty value means that all providers will be considered). Mutually " + "exclusive with mtl_ofi_provider_exclude.", + MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, OPAL_INFO_LVL_1, MCA_BASE_VAR_SCOPE_READONLY, + opal_common_ofi.prov_include); + if (0 > include_index) { + ret = include_index; + goto err; + } + } + + if (0 > exclude_index) { + if (NULL == opal_common_ofi.prov_exclude) { + opal_common_ofi.prov_exclude = (char **) malloc(sizeof(char *)); + assert(NULL != opal_common_ofi.prov_exclude); + } + *opal_common_ofi.prov_exclude = strdup(default_prov_exclude_list); + exclude_index = mca_base_var_register( + "opal", "opal_common", "ofi", "provider_exclude", + "Comma-delimited list of OFI providers that are not considered for use (default: " + "\"sockets,mxm\"; empty value means that all providers will be considered). Mutually " + "exclusive with mtl_ofi_provider_include.", + MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, OPAL_INFO_LVL_1, MCA_BASE_VAR_SCOPE_READONLY, + opal_common_ofi.prov_exclude); + if (0 > exclude_index) { + ret = exclude_index; + goto err; + } + } + + if (0 > verbose_index) { + verbose_index = mca_base_var_register("opal", "opal_common", "ofi", "verbose", + "Verbose level of the OFI components", + MCA_BASE_VAR_TYPE_INT, NULL, 0, + MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_3, + MCA_BASE_VAR_SCOPE_LOCAL, + &opal_common_ofi_verbose_level); + if (0 > verbose_index) { + ret = verbose_index; + goto err; + } + } + + if (component) { + ret = mca_base_var_register_synonym(include_index, + component->mca_project_name, + component->mca_type_name, + component->mca_component_name, + "provider_include", 0); + if (0 > ret) { + goto err; + } + ret = mca_base_var_register_synonym(exclude_index, + component->mca_project_name, + component->mca_type_name, + component->mca_component_name, + "provider_exclude", 0); + if (0 > ret) { + goto err; + } + ret = mca_base_var_register_synonym(verbose_index, + component->mca_project_name, + component->mca_type_name, + component->mca_component_name, + "verbose", 0); + if (0 > ret) { + goto err; + } + } + + /* The frameworks initialize their output streams during + * register(), so we similarly try to initialize the output stream + * as early as possible. Because we may register synonyms for + * each dependent component, we don't necessarily have all the + * data to set verbosity during the first call to + * common_ofi_register(). The MCA infrastructure has rules on + * synonym value evaluation, so our rubric is to re-set verbosity + * after every call to register() (which has registered a new + * synonym). This is not perfect, but it's not horrible, either. + */ + if (opal_common_ofi.output == -1) { + opal_common_ofi.output = opal_output_open(NULL); + } + opal_output_set_verbosity(opal_common_ofi.output, opal_common_ofi_verbose_level); + + ret = OPAL_SUCCESS; + +err: + OPAL_THREAD_UNLOCK(&opal_common_ofi_mutex); + + return ret; +} + +/* check that the tx attributes match */ +static int +check_tx_attr(struct fi_tx_attr *provider_info, + struct fi_tx_attr *provider) +{ + if (!(provider->msg_order & ~(provider_info->msg_order)) && + !(provider->op_flags & ~(provider_info->op_flags)) && + (provider->inject_size == provider_info->inject_size)) { + return 0; + } else { + return OPAL_ERROR; + } +} + +/* check that the rx attributes match */ +static int +check_rx_attr(struct fi_rx_attr *provider_info, + struct fi_rx_attr *provider) +{ + if (!(provider->msg_order & ~(provider_info->msg_order)) && + !(provider->op_flags & ~(provider_info->op_flags))) { + return 0; + } else { + return OPAL_ERROR; + } +} + +/* check that the ep attributes match */ +static int +check_ep_attr(struct fi_ep_attr *provider_info, + struct fi_ep_attr *provider) +{ + if (!(provider->type & ~(provider_info->type)) && + !(provider->mem_tag_format & ~(provider_info->mem_tag_format)) && + (provider->max_msg_size == provider_info->max_msg_size) && + (provider->tx_ctx_cnt == provider_info->tx_ctx_cnt) && + (provider->rx_ctx_cnt == provider_info->rx_ctx_cnt)) { + return 0; + } else { + return OPAL_ERROR; + } +} + +/* check that the provider attributes match */ +static int +check_provider_attr(struct fi_info *provider_info, + struct fi_info *provider) +{ + /* make sure both info are the same provider and provide the same attributes */ + if (0 == strcmp(provider_info->fabric_attr->prov_name, provider->fabric_attr->prov_name) && + 0 == strcmp(provider_info->fabric_attr->name, provider->fabric_attr->name) && + !check_tx_attr(provider_info->tx_attr, provider->tx_attr) && + !check_rx_attr(provider_info->rx_attr, provider->rx_attr) && + !check_ep_attr(provider_info->ep_attr, provider->ep_attr) && + !(provider_info->caps & ~(provider->caps)) && + !(provider_info->mode & ~(provider->mode)) && + provider_info->addr_format == provider->addr_format) { + return 0; + } else { + return OPAL_ERROR; + } +} + +#if OPAL_OFI_PCI_DATA_AVAILABLE +/* Check if a process and a pci device share the same cpuset + * @param (IN) pci struct fi_pci_attr pci device attributes, + * used to find hwloc object for device. + * + * @param (IN) topology hwloc_topology_t topology to get the cpusets + * from + * + * @param (OUT) returns true if cpusets match and false if + * cpusets do not match or an error prevents comparison + * + * Uses a pci device to find an ancestor that contains a cpuset, and + * determines if it intersects with the cpuset that the process is bound to. + * if the process is not bound, or if a cpuset is unavailable for whatever + * reason, returns false. Otherwise, returns the result of + * hwloc_cpuset_intersects() + */ +static bool +compare_cpusets(hwloc_topology_t topology, struct fi_pci_attr pci) +{ + bool result = false; + int ret; + hwloc_bitmap_t proc_cpuset; + hwloc_obj_t obj = NULL; + + /* Cannot find topology info if no topology is found */ + if (NULL == topology) { + return false; + } + + /* Allocate memory for proc_cpuset */ + proc_cpuset = hwloc_bitmap_alloc(); + if (NULL == proc_cpuset) { + return false; + } + + /* Fill cpuset with the collection of cpu cores that the process runs on */ + ret = hwloc_get_cpubind(topology, proc_cpuset, HWLOC_CPUBIND_PROCESS); + if (0 > ret) { + goto error; + } + + /* Get the pci device from bdf */ + obj = hwloc_get_pcidev_by_busid(topology, pci.domain_id, pci.bus_id, + pci.device_id, pci.function_id); + if (NULL == obj) { + goto error; + } + + /* pcidev objects don't have cpusets so find the first non-io object above */ + obj = hwloc_get_non_io_ancestor_obj(topology, obj); + if (NULL != obj) { + result = hwloc_bitmap_intersects(proc_cpuset, obj->cpuset); + } + +error: + hwloc_bitmap_free(proc_cpuset); + return result; +} +#endif + +/* Count providers returns the number of providers present in an fi_info list + * @param (IN) provider_list struct fi_info* list of providers available + * + * @param (OUT) int number of providers present in the list + * + * returns 0 if the list is NULL + */ +static int +count_providers(struct fi_info* provider_list) +{ + struct fi_info* dev = provider_list; + int num_provider = 0; + + while (NULL != dev) { + num_provider++; + dev = dev->next; + } + + return num_provider; +} + +/* Calculate the currrent process package rank. + * @param (IN) process_info struct opal_process_info_t information + * about the current process. used to get + * num_local_peers, myprocid.rank, and + * my_local_rank. + * + * @param (OUT) uint32_t package rank or myprocid.rank + * + * If successful, returns PMIX_PACKAGE_RANK, or an + * equivalent calculated package rank. + * otherwise falls back to using opal_process_info.myprocid.rank + * this can affect performance, but is unlikely to happen. + */ +static uint32_t get_package_rank(int32_t num_local_peers, uint16_t my_local_rank, char *cpuset, uint32_t pid) +{ + int i; + uint16_t relative_locality; + uint16_t current_package_rank = 0; + uint16_t package_ranks[num_local_peers + 1]; + opal_process_name_t pname; + opal_status_t rc; + char **peers = NULL; + char *local_peers = NULL; + char *locality_string = NULL; + char *mylocality = NULL; + uint16_t *package_rank_ptr; + + pname.jobid = OPAL_PROC_MY_NAME.jobid; + pname.vpid = OPAL_VPID_WILDCARD; + + // Try to get the PACKAGE_RANK from PMIx + OPAL_MODEX_RECV_VALUE_OPTIONAL(rc, OPAL_PMIX_PACKAGE_RANK, + &pname, &package_rank_ptr, OPAL_UINT16); + if (OPAL_SUCCESS == rc) { + return (uint32_t)*package_rank_ptr; + } + + // Get the local peers + OPAL_MODEX_RECV_VALUE(rc, OPAL_PMIX_LOCAL_PEERS, + &pname, &local_peers, OPAL_STRING); + if (OPAL_SUCCESS != rc || NULL == local_peers) { + // We can't find package_rank, fall back to procid + opal_show_help("help-common-ofi.txt", "package_rank failed", true); + return pid; + } + peers = opal_argv_split(local_peers, ','); + free(local_peers); + + // Get my locality + OPAL_MODEX_RECV_VALUE_OPTIONAL(rc, OPAL_PMIX_LOCALITY_STRING, + &OPAL_PROC_MY_NAME, &mylocality, OPAL_STRING); + if (OPAL_SUCCESS != rc || NULL == mylocality) { + // can we fall back to cpuset? + if (NULL != cpuset && NULL != opal_hwloc_topology) { + mylocality = opal_hwloc_base_get_locality_string(opal_hwloc_topology, cpuset); + } else { + // We can't find package_rank, fall back to procid + opal_show_help("help-common-ofi.txt", "package_rank failed", true); + return pid; + } + } + + for (i = 0; NULL != peers[i]; i++) { + pname.vpid = strtoul(peers[i], NULL, 10); + locality_string = NULL; + // Get the LOCALITY_STRING for process[i] + OPAL_MODEX_RECV_VALUE_OPTIONAL(rc, OPAL_PMIX_LOCALITY_STRING, + &pname, &locality_string, OPAL_STRING); + if (OPAL_SUCCESS != rc || NULL == locality_string) { + // If we don't have information about locality, fall back to procid + int level = 10; + if (opal_output_get_verbosity(opal_common_ofi.output) >= level) { + opal_show_help("help-common-ofi.txt", "package_rank failed", true, level); + } + return pid; + } + + // compute relative locality + relative_locality = opal_hwloc_compute_relative_locality(mylocality, locality_string); + free(locality_string); + + if (relative_locality & OPAL_PROC_ON_SOCKET) { + package_ranks[i] = current_package_rank; + current_package_rank++; + } + } + free(mylocality); + + return (uint32_t)package_ranks[my_local_rank]; +} + +struct fi_info* +opal_mca_common_ofi_select_provider(struct fi_info *provider_list, int32_t num_local_peers, + uint16_t my_local_rank, char *cpuset, uint32_t pid) +{ + struct fi_info *provider = provider_list, *current_provider = provider_list; + struct fi_info **provider_table; +#if OPAL_OFI_PCI_DATA_AVAILABLE + struct fi_pci_attr pci; +#endif + int ret; + uint32_t package_rank; + unsigned int num_provider = 0, provider_limit = 0; + bool provider_found = false, cpusets_match = false; + + /* Initialize opal_hwloc_topology if it is not already */ + ret = opal_hwloc_base_get_topology(); + if (0 > ret) { + /* Provider selection can continue but there is no guarantee of locality */ + opal_output_verbose(1, opal_common_ofi.output, + "%s:%d:Failed to initialize topology\n", + __FILE__, __LINE__); + } + + provider_limit = count_providers(provider_list); + + /* Allocate memory for provider table */ + provider_table = calloc(provider_limit, sizeof(struct fi_info*)); + if (NULL == provider_table) { + opal_output_verbose(1, opal_common_ofi.output, + "%s:%d:Failed to allocate memory for provider table\n", + __FILE__, __LINE__); + return provider_list; + } + + current_provider = provider; + + /* Cycle through remaining fi_info objects, looking for alike providers */ + while (NULL != current_provider) { + if (!check_provider_attr(provider, current_provider)) { + cpusets_match = false; +#if OPAL_OFI_PCI_DATA_AVAILABLE + if (NULL != current_provider->nic + && NULL != current_provider->nic->bus_attr + && current_provider->nic->bus_attr->bus_type == FI_BUS_PCI) { + pci = current_provider->nic->bus_attr->attr.pci; + cpusets_match = compare_cpusets(opal_hwloc_topology, pci); + } +#endif + + /* Reset the list if the cpusets match and no other provider was + * found on the same cpuset as the process. + */ + if (cpusets_match && !provider_found) { + provider_found = true; + num_provider = 0; + } + + /* Add the provider to the provider list if the cpusets match or if + * no other provider was found on the same cpuset as the process. + */ + if (cpusets_match || !provider_found) { + provider_table[num_provider] = current_provider; + num_provider++; + } + } + current_provider = current_provider->next; + } + + /* Select provider from local rank % number of providers */ + if (num_provider >= 2) { + // If there are multiple NICs "close" to the process, try to calculate package_rank + package_rank = get_package_rank(num_local_peers, my_local_rank, cpuset, pid); + provider = provider_table[package_rank % num_provider]; + } else if (num_provider == 1) { + provider = provider_table[num_provider - 1]; + } + +#if OPAL_OFI_PCI_DATA_AVAILABLE + if (NULL != provider->nic + && NULL != provider->nic->bus_attr + && provider->nic->bus_attr->bus_type == FI_BUS_PCI) { + pci = provider->nic->bus_attr->attr.pci; + cpusets_match = compare_cpusets(opal_hwloc_topology, pci); + } +#endif + +#if OPAL_ENABLE_DEBUG + opal_output_verbose(1, opal_common_ofi.output, + "package rank: %d device: %s cpusets match: %s\n", + package_rank, provider->domain_attr->name, + cpusets_match ? "true" : "false"); +#endif + + free(provider_table); + return provider; +} diff -Nru openmpi-4.0.3/opal/mca/common/ofi/common_ofi.h openmpi-4.1.4/opal/mca/common/ofi/common_ofi.h --- openmpi-4.0.3/opal/mca/common/ofi/common_ofi.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/common/ofi/common_ofi.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,160 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2015 Intel, Inc. All rights reserved. + * Copyright (c) 2017 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2020 Triad National Security, LLC. All rights + * reserved. + * Copyright (c) 2021 Amazon.com, Inc. or its affiliates. All rights + * reserved. + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef OPAL_MCA_COMMON_OFI_H +#define OPAL_MCA_COMMON_OFI_H + +#include "opal/util/proc.h" +#include "opal/memoryhooks/memory.h" + +BEGIN_C_DECLS + +typedef struct opal_common_ofi_module { + char **prov_include; + char **prov_exclude; + int output; +} opal_common_ofi_module_t; + +extern opal_common_ofi_module_t opal_common_ofi; + +/** + * Common MCA registration + * + * Common MCA registration handlinge. After calling this function, + * \code opal_common_ofi.output will be properly initialized. + * + * @param component (IN) OFI component being initialized + * + * @returns OPAL_SUCCESS on success, OPAL error code on failure + */ +OPAL_DECLSPEC int opal_common_ofi_mca_register(const mca_base_component_t *component); + +/** + * Initializes common objects for libfabric + * + * Initialize common libfabric interface. This should be called from + * any other OFI component's component_open() call. + * + * @note This function is not thread safe and must be called in a + * serial portion of the code. + */ +OPAL_DECLSPEC int opal_common_ofi_open(void); + +/** + * Cleans up common objects for libfabric + * + * Clean up common libfabric interface. This should be called from + * any other OFI component's component_close() call. Resource cleanup + * is reference counted, so any successful call to + * opal_common_ofi_init(). + * + * @note This function is not thread safe and must be called in a + * serial portion of the code. + */ +OPAL_DECLSPEC int opal_common_ofi_close(void); + +/** + * Export our memory hooks into Libfabric monitor + * + * Use Open MPI's memory hooks to provide monitor notifications to + * Libfabric via the external mr_cache facility. This must be called + * before any domain is initialized (ie, before any Libfabric memory + * monitor is configured). + * + * @returns A libfabric error code is returned on error + */ +OPAL_DECLSPEC int opal_common_ofi_export_memory_monitor(void); + +/** + * Search function for provider names + * + * This function will take a provider name string and a list of lower + * provider name strings as inputs. It will return true if the lower + * provider in the item string matches a lower provider in the list. + * + * @param list (IN) List of strings corresponding to lower providers. + * @param item (IN) Single string corresponding to a provider. + * + * @return 0 The lower provider of the item string is not in + * list or an input was NULL + * @return 1 The lower provider of the item string matches + * a string in the item list. + * + */ +OPAL_DECLSPEC int opal_common_ofi_is_in_list(char **list, char *item); + +/** + * Selects NIC (provider) based on hardware locality + * + * There are 3 main cases that this covers: + * + * 1. If the first provider passed into this function is the only valid + * provider, this provider is returned. + * + * 2. If there is more than 1 provider that matches the type of the first + * provider in the list, and the BDF data + * is available then a provider is selected based on locality of device + * cpuset and process cpuset and tries to ensure that processes are distributed + * evenly across NICs. This has two separate cases: + * + * i. There is one or more provider local to the process: + * + * (local rank % number of providers of the same type that share the process cpuset) + * is used to select one of these providers. + * + * ii. There is no provider that is local to the process: + * + * (local rank % number of providers of the same type) + * is used to select one of these providers + * + * 3. If there is more than 1 providers of the same type in the list, and the BDF data + * is not available (the ofi version does not support fi_info.nic or the + * provider does not support BDF) then (local rank % number of providers of the same type) + * is used to select one of these providers + * + * @param provider_list (IN) struct fi_info* An initially selected + * provider NIC. The provider name and + * attributes are used to restrict NIC + * selection. This provider is returned if the + * NIC selection fails. + * + * @param package_rank (IN) uint32_t The rank of the process. Used to + * select one valid NIC if there is a case + * where more than one can be selected. This + * could occur when more than one provider + * shares the same cpuset as the process. + * This could either be a package_rank if one is + * successfully calculated, or the process id. + * + * @param provider (OUT) struct fi_info* object with the selected + * provider if the selection succeeds + * if the selection fails, returns the fi_info + * object that was initially provided. + * + * All errors should be recoverable and will return the initially provided + * provider. However, if an error occurs we can no longer guarantee + * that the provider returned is local to the process or that the processes will + * balance across available NICs. + */ +OPAL_DECLSPEC struct fi_info* opal_mca_common_ofi_select_provider(struct fi_info *provider_list, + int32_t num_local_peers, + uint16_t my_local_rank, + char *cpuset, uint32_t pid); + +END_C_DECLS + +#endif /* OPAL_MCA_COMMON_OFI_H */ diff -Nru openmpi-4.0.3/opal/mca/common/ofi/configure.m4 openmpi-4.1.4/opal/mca/common/ofi/configure.m4 --- openmpi-4.0.3/opal/mca/common/ofi/configure.m4 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/common/ofi/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,35 @@ +# -*- shell-script -*- +# +# Copyright (c) 2011-2013 NVIDIA Corporation. All rights reserved. +# Copyright (c) 2013 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2015 Intel, Inc. All rights reserved. +# Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2017 Los Alamos National Security, LLC. All rights +# reserved. +# Copyright (c) 2019 Hewlett Packard Enterprise. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +AC_DEFUN([MCA_opal_common_ofi_CONFIG],[ + AC_CONFIG_FILES([opal/mca/common/ofi/Makefile]) + + OPAL_CHECK_OFI + + # Note that $opal_common_ofi_happy is + # used in other configure.m4's to know if ofi configured + # successfully. + AS_IF([test "$opal_ofi_happy" = "yes"], + [opal_common_ofi_happy=yes + common_ofi_WRAPPER_EXTRA_LDFLAGS=$opal_ofi_LDFLAGS + common_ofi_WRAPPER_EXTRA_LIBS=$opal_ofi_LIBS + $1], + [opal_common_ofi_happy=no + $2]) + +])dnl diff -Nru openmpi-4.0.3/opal/mca/common/ofi/help-common-ofi.txt openmpi-4.1.4/opal/mca/common/ofi/help-common-ofi.txt --- openmpi-4.0.3/opal/mca/common/ofi/help-common-ofi.txt 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/common/ofi/help-common-ofi.txt 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,17 @@ +# -*- text -*- +# +# Copyright (c) 2020 Amazon.com, Inc. or its affiliates. All Rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# +[package_rank failed] +Open MPI's OFI driver detected multiple equidistant NICs from the current process, +but had insufficient information to ensure MPI processes fairly pick a NIC for use. +This may negatively impact performance. A more modern PMIx server is necessary to +resolve this issue. + +Note: This message is displayed only when the OFI component's verbosity level is +%d or higher. diff -Nru openmpi-4.0.3/opal/mca/common/ofi/Makefile.am openmpi-4.1.4/opal/mca/common/ofi/Makefile.am --- openmpi-4.0.3/opal/mca/common/ofi/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/common/ofi/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,108 @@ +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2013 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2009 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2011-2013 NVIDIA Corporation. All rights reserved. +# Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2015 Intel, Inc. All rights reserved. +# Copyright (c) 2017 Los Alamos National Security, LLC. All rights +# reserved. +# Copyright (c) 2019 Hewlett Packard Enterprise. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# +# A word of explanation... +# +# This library is linked against various MCA components because the +# support for ofis is needed in various places. +# +# Note that building this common component statically and linking +# against other dynamic components is *not* supported! + +AM_CPPFLAGS = $(opal_ofi_CPPFLAGS) + +dist_opaldata_DATA = help-common-ofi.txt + +# Header files + +headers = \ + common_ofi.h + +# Source files + +sources = \ + common_ofi.c + +# As per above, we'll either have an installable or noinst result. +# The installable one should follow the same MCA prefix naming rules +# (i.e., libmca__.la). The noinst one can be named +# whatever it wants, although libmca___noinst.la is +# recommended. + +# To simplify components that link to this library, we will *always* +# have an output libtool library named libmca__.la -- even +# for case 2) described above (i.e., so there's no conditional logic +# necessary in component Makefile.am's that link to this library). +# Hence, if we're creating a noinst version of this library (i.e., +# case 2), we sym link it to the libmca__.la name +# (libtool will do the Right Things under the covers). See the +# all-local and clean-local rules, below, for how this is effected. + +lib_LTLIBRARIES = +noinst_LTLIBRARIES = +comp_inst = lib@OPAL_LIB_PREFIX@mca_common_ofi.la +comp_noinst = lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst.la + + +if MCA_BUILD_opal_common_ofi_DSO +lib_LTLIBRARIES += $(comp_inst) +else +noinst_LTLIBRARIES += $(comp_noinst) +endif + +lib@OPAL_LIB_PREFIX@mca_common_ofi_la_SOURCES = $(headers) $(sources) +lib@OPAL_LIB_PREFIX@mca_common_ofi_la_LDFLAGS = \ + $(opal_ofi_LDFLAGS) \ + -version-info $(libmca_opal_common_ofi_so_version) +lib@OPAL_LIB_PREFIX@mca_common_ofi_la_LIBADD = $(opal_ofi_LIBS) + +lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_SOURCES = $(headers) $(sources) +lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_LDFLAGS = $(opal_ofi_LDFLAGS) +lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_LIBADD = $(opal_ofi_LIBS) + +# Conditionally install the header files + +if WANT_INSTALL_HEADERS +opaldir = $(opalincludedir)/$(subdir) +opal_HEADERS = $(headers) +endif + +# These two rules will sym link the "noinst" libtool library filename +# to the installable libtool library filename in the case where we are +# compiling this component statically (case 2), described above). + +V=0 +OMPI_V_LN_SCOMP = $(ompi__v_LN_SCOMP_$V) +ompi__v_LN_SCOMP_ = $(ompi__v_LN_SCOMP_$AM_DEFAULT_VERBOSITY) +ompi__v_LN_SCOMP_0 = @echo " LN_S " `basename $(comp_inst)`; + +all-local: + $(OMPI_V_LN_SCOMP) if test -z "$(lib_LTLIBRARIES)"; then \ + rm -f "$(comp_inst)"; \ + $(LN_S) "$(comp_noinst)" "$(comp_inst)"; \ + fi + +clean-local: + if test -z "$(lib_LTLIBRARIES)"; then \ + rm -f "$(comp_inst)"; \ + fi diff -Nru openmpi-4.0.3/opal/mca/common/ofi/Makefile.in openmpi-4.1.4/opal/mca/common/ofi/Makefile.in --- openmpi-4.0.3/opal/mca/common/ofi/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/common/ofi/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,2231 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2013 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2009 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2011-2013 NVIDIA Corporation. All rights reserved. +# Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2015 Intel, Inc. All rights reserved. +# Copyright (c) 2017 Los Alamos National Security, LLC. All rights +# reserved. +# Copyright (c) 2019 Hewlett Packard Enterprise. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# +# A word of explanation... +# +# This library is linked against various MCA components because the +# support for ofis is needed in various places. +# +# Note that building this common component statically and linking +# against other dynamic components is *not* supported! + + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +@MCA_BUILD_opal_common_ofi_DSO_TRUE@am__append_1 = $(comp_inst) +@MCA_BUILD_opal_common_ofi_DSO_FALSE@am__append_2 = $(comp_noinst) +subdir = opal/mca/common/ofi +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/c_weak_symbols.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ + $(top_srcdir)/config/ompi_check_libfca.m4 \ + $(top_srcdir)/config/ompi_check_libhcoll.m4 \ + $(top_srcdir)/config/ompi_check_lustre.m4 \ + $(top_srcdir)/config/ompi_check_mxm.m4 \ + $(top_srcdir)/config/ompi_check_psm.m4 \ + $(top_srcdir)/config/ompi_check_psm2.m4 \ + $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ + $(top_srcdir)/config/ompi_check_ucx.m4 \ + $(top_srcdir)/config/ompi_config_files.m4 \ + $(top_srcdir)/config/ompi_configure_options.m4 \ + $(top_srcdir)/config/ompi_contrib.m4 \ + $(top_srcdir)/config/ompi_cxx_find_exception_flags.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_parameters.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_repository.m4 \ + $(top_srcdir)/config/ompi_cxx_have_exceptions.m4 \ + $(top_srcdir)/config/ompi_endpoint_tag.m4 \ + $(top_srcdir)/config/ompi_ext.m4 \ + $(top_srcdir)/config/ompi_find_mpi_aint_count_offset.m4 \ + $(top_srcdir)/config/ompi_fortran_check.m4 \ + $(top_srcdir)/config/ompi_fortran_check_abstract.m4 \ + $(top_srcdir)/config/ompi_fortran_check_asynchronous.m4 \ + $(top_srcdir)/config/ompi_fortran_check_bind_c.m4 \ + $(top_srcdir)/config/ompi_fortran_check_c_funloc.m4 \ + $(top_srcdir)/config/ompi_fortran_check_f08_assumed_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_ignore_tkr.m4 \ + $(top_srcdir)/config/ompi_fortran_check_interface.m4 \ + $(top_srcdir)/config/ompi_fortran_check_iso_fortran_env.m4 \ + $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ + $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ + $(top_srcdir)/config/ompi_fortran_check_private.m4 \ + $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ + $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ + $(top_srcdir)/config/ompi_fortran_check_real16_c_equiv.m4 \ + $(top_srcdir)/config/ompi_fortran_check_storage_size.m4 \ + $(top_srcdir)/config/ompi_fortran_check_type.m4 \ + $(top_srcdir)/config/ompi_fortran_check_use_only.m4 \ + $(top_srcdir)/config/ompi_fortran_find_ext_symbol_convention.m4 \ + $(top_srcdir)/config/ompi_fortran_find_module_include_flag.m4 \ + $(top_srcdir)/config/ompi_fortran_get_alignment.m4 \ + $(top_srcdir)/config/ompi_fortran_get_handle_max.m4 \ + $(top_srcdir)/config/ompi_fortran_get_kind_value.m4 \ + $(top_srcdir)/config/ompi_fortran_get_sizeof.m4 \ + $(top_srcdir)/config/ompi_fortran_get_value_true.m4 \ + $(top_srcdir)/config/ompi_interix.m4 \ + $(top_srcdir)/config/ompi_setup_contrib.m4 \ + $(top_srcdir)/config/ompi_setup_cxx.m4 \ + $(top_srcdir)/config/ompi_setup_fc.m4 \ + $(top_srcdir)/config/ompi_setup_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_ext.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_fortran.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_profiling.m4 \ + $(top_srcdir)/config/opal_case_sensitive_fs_setup.m4 \ + $(top_srcdir)/config/opal_check_alps.m4 \ + $(top_srcdir)/config/opal_check_attributes.m4 \ + $(top_srcdir)/config/opal_check_broken_qsort.m4 \ + $(top_srcdir)/config/opal_check_cma.m4 \ + $(top_srcdir)/config/opal_check_compiler_version.m4 \ + $(top_srcdir)/config/opal_check_compiler_works.m4 \ + $(top_srcdir)/config/opal_check_cray_pmi.m4 \ + $(top_srcdir)/config/opal_check_cuda.m4 \ + $(top_srcdir)/config/opal_check_icc.m4 \ + $(top_srcdir)/config/opal_check_ident.m4 \ + $(top_srcdir)/config/opal_check_knem.m4 \ + $(top_srcdir)/config/opal_check_libnl.m4 \ + $(top_srcdir)/config/opal_check_offsetof.m4 \ + $(top_srcdir)/config/opal_check_ofi.m4 \ + $(top_srcdir)/config/opal_check_openfabrics.m4 \ + $(top_srcdir)/config/opal_check_os_flavors.m4 \ + $(top_srcdir)/config/opal_check_package.m4 \ + $(top_srcdir)/config/opal_check_pmi.m4 \ + $(top_srcdir)/config/opal_check_portals4.m4 \ + $(top_srcdir)/config/opal_check_ps.m4 \ + $(top_srcdir)/config/opal_check_pthread_pids.m4 \ + $(top_srcdir)/config/opal_check_singularity.m4 \ + $(top_srcdir)/config/opal_check_ugni.m4 \ + $(top_srcdir)/config/opal_check_vendor.m4 \ + $(top_srcdir)/config/opal_check_verbs.m4 \ + $(top_srcdir)/config/opal_check_visibility.m4 \ + $(top_srcdir)/config/opal_check_withdir.m4 \ + $(top_srcdir)/config/opal_check_xpmem.m4 \ + $(top_srcdir)/config/opal_config_asm.m4 \ + $(top_srcdir)/config/opal_config_files.m4 \ + $(top_srcdir)/config/opal_config_pthreads.m4 \ + $(top_srcdir)/config/opal_config_subdir.m4 \ + $(top_srcdir)/config/opal_config_subdir_args.m4 \ + $(top_srcdir)/config/opal_config_threads.m4 \ + $(top_srcdir)/config/opal_configure_options.m4 \ + $(top_srcdir)/config/opal_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/opal_find_type.m4 \ + $(top_srcdir)/config/opal_functions.m4 \ + $(top_srcdir)/config/opal_lang_link_with_c.m4 \ + $(top_srcdir)/config/opal_load_platform.m4 \ + $(top_srcdir)/config/opal_mca.m4 \ + $(top_srcdir)/config/opal_save_version.m4 \ + $(top_srcdir)/config/opal_search_libs.m4 \ + $(top_srcdir)/config/opal_set_lib_prefix.m4 \ + $(top_srcdir)/config/opal_set_mca_prefix.m4 \ + $(top_srcdir)/config/opal_setup_cc.m4 \ + $(top_srcdir)/config/opal_setup_cli.m4 \ + $(top_srcdir)/config/opal_setup_cxx.m4 \ + $(top_srcdir)/config/opal_setup_ft.m4 \ + $(top_srcdir)/config/opal_setup_wrappers.m4 \ + $(top_srcdir)/config/opal_setup_zlib.m4 \ + $(top_srcdir)/config/opal_strip_optflags.m4 \ + $(top_srcdir)/config/opal_summary.m4 \ + $(top_srcdir)/config/opal_try_assemble.m4 \ + $(top_srcdir)/config/orte_check_lsf.m4 \ + $(top_srcdir)/config/orte_check_moab.m4 \ + $(top_srcdir)/config/orte_check_sge.m4 \ + $(top_srcdir)/config/orte_check_slurm.m4 \ + $(top_srcdir)/config/orte_check_tm.m4 \ + $(top_srcdir)/config/orte_config_files.m4 \ + $(top_srcdir)/config/orte_configure_options.m4 \ + $(top_srcdir)/config/orte_setup_debugger_flags.m4 \ + $(top_srcdir)/config/oshmem_config_files.m4 \ + $(top_srcdir)/config/oshmem_configure_options.m4 \ + $(top_srcdir)/config/oshmem_setup_profiling.m4 \ + $(top_srcdir)/config/pkg.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/opal/mca/backtrace/configure.m4 \ + $(top_srcdir)/opal/mca/dl/configure.m4 \ + $(top_srcdir)/opal/mca/event/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/configure.m4 \ + $(top_srcdir)/opal/mca/memcpy/configure.m4 \ + $(top_srcdir)/opal/mca/memory/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/configure.m4 \ + $(top_srcdir)/opal/mca/timer/configure.m4 \ + $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/common/sm/configure.m4 \ + $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs_usnic/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ + $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ + $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ + $(top_srcdir)/opal/mca/btl/smcuda/configure.m4 \ + $(top_srcdir)/opal/mca/btl/tcp/configure.m4 \ + $(top_srcdir)/opal/mca/btl/uct/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ugni/configure.m4 \ + $(top_srcdir)/opal/mca/btl/usnic/configure.m4 \ + $(top_srcdir)/opal/mca/btl/vader/configure.m4 \ + $(top_srcdir)/opal/mca/crs/self/configure.m4 \ + $(top_srcdir)/opal/mca/dl/dlopen/configure.m4 \ + $(top_srcdir)/opal/mca/dl/libltdl/configure.m4 \ + $(top_srcdir)/opal/mca/event/external/configure.m4 \ + $(top_srcdir)/opal/mca/event/libevent2022/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/external/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_pkg.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_attributes.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_visibility.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_vendor.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_components.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_internal.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/netloc.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/linux_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/posix_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/solaris_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/config/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/env/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/valgrind/configure.m4 \ + $(top_srcdir)/opal/mca/memory/malloc_solaris/configure.m4 \ + $(top_srcdir)/opal/mca/memory/patcher/configure.m4 \ + $(top_srcdir)/opal/mca/mpool/memkind/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/linux/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/overwrite/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/cray/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext1x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext2x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/flux/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/pmix3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s1/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s2/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/linux/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/test/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/gpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/rgpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/udreg/configure.m4 \ + $(top_srcdir)/opal/mca/reachable/netlink/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/mmap/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/posix/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/sysv/configure.m4 \ + $(top_srcdir)/opal/mca/timer/altix/configure.m4 \ + $(top_srcdir)/opal/mca/timer/darwin/configure.m4 \ + $(top_srcdir)/opal/mca/timer/linux/configure.m4 \ + $(top_srcdir)/opal/mca/timer/solaris/configure.m4 \ + $(top_srcdir)/orte/mca/common/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ess/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ess/tm/configure.m4 \ + $(top_srcdir)/orte/mca/odls/alps/configure.m4 \ + $(top_srcdir)/orte/mca/odls/default/configure.m4 \ + $(top_srcdir)/orte/mca/odls/pspawn/configure.m4 \ + $(top_srcdir)/orte/mca/oob/alps/configure.m4 \ + $(top_srcdir)/orte/mca/oob/tcp/configure.m4 \ + $(top_srcdir)/orte/mca/plm/alps/configure.m4 \ + $(top_srcdir)/orte/mca/plm/isolated/configure.m4 \ + $(top_srcdir)/orte/mca/plm/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/plm/rsh/configure.m4 \ + $(top_srcdir)/orte/mca/plm/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/plm/tm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ras/gridengine/configure.m4 \ + $(top_srcdir)/orte/mca/ras/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/snapc/full/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/central/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/stage/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/configure.m4 \ + $(top_srcdir)/ompi/mca/fcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/configure.m4 \ + $(top_srcdir)/ompi/mca/hook/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/configure.m4 \ + $(top_srcdir)/ompi/mca/common/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/common/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/bml/r2/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/cuda/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/fca/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ + $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ + $(top_srcdir)/ompi/mca/io/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/io/romio321/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/ofi/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/rdma/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/crcpw/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ob1/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/v/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/yalla/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/orte/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/pmix/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/sm/configure.m4 \ + $(top_srcdir)/ompi/mca/topo/treematch/configure.m4 \ + $(top_srcdir)/oshmem/mca/memheap/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/sysv/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/verbs/configure.m4 \ + $(top_srcdir)/ompi/mpiext/affinity/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cr/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cuda/configure.m4 \ + $(top_srcdir)/ompi/mpiext/pcollreq/configure.m4 \ + $(top_srcdir)/ompi/contrib/libompitrace/configure.m4 \ + $(top_srcdir)/config/opal_get_version.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(dist_opaldata_DATA) \ + $(am__opal_HEADERS_DIST) $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/opal/include/opal_config.h \ + $(top_builddir)/ompi/include/mpi.h \ + $(top_builddir)/oshmem/include/shmem.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen/config.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen/config.h \ + $(top_builddir)/ompi/mpiext/cuda/c/mpiext_cuda_c.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(opaldatadir)" \ + "$(DESTDIR)$(opaldir)" +LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) +am__DEPENDENCIES_1 = +lib@OPAL_LIB_PREFIX@mca_common_ofi_la_DEPENDENCIES = \ + $(am__DEPENDENCIES_1) +am__objects_1 = +am__objects_2 = common_ofi.lo +am_lib@OPAL_LIB_PREFIX@mca_common_ofi_la_OBJECTS = $(am__objects_1) \ + $(am__objects_2) +lib@OPAL_LIB_PREFIX@mca_common_ofi_la_OBJECTS = \ + $(am_lib@OPAL_LIB_PREFIX@mca_common_ofi_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +lib@OPAL_LIB_PREFIX@mca_common_ofi_la_LINK = $(LIBTOOL) $(AM_V_lt) \ + --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(lib@OPAL_LIB_PREFIX@mca_common_ofi_la_LDFLAGS) $(LDFLAGS) -o \ + $@ +@MCA_BUILD_opal_common_ofi_DSO_TRUE@am_lib@OPAL_LIB_PREFIX@mca_common_ofi_la_rpath = \ +@MCA_BUILD_opal_common_ofi_DSO_TRUE@ -rpath $(libdir) +lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_DEPENDENCIES = \ + $(am__DEPENDENCIES_1) +am_lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_OBJECTS = \ + $(am__objects_1) $(am__objects_2) +lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_OBJECTS = \ + $(am_lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_OBJECTS) +lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_LINK = $(LIBTOOL) \ + $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_opal_common_ofi_DSO_FALSE@am_lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_rpath = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/opal/include -I$(top_builddir)/ompi/include -I$(top_builddir)/oshmem/include -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen -I$(top_builddir)/ompi/mpiext/cuda/c +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(lib@OPAL_LIB_PREFIX@mca_common_ofi_la_SOURCES) \ + $(lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_SOURCES) +DIST_SOURCES = $(lib@OPAL_LIB_PREFIX@mca_common_ofi_la_SOURCES) \ + $(lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(dist_opaldata_DATA) +am__opal_HEADERS_DIST = common_ofi.h +HEADERS = $(opal_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/config/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMCA_PARAM_SETS_DIR = @AMCA_PARAM_SETS_DIR@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BASH = @BASH@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAGS_WITHOUT_OPTFLAGS = @CFLAGS_WITHOUT_OPTFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CRAY_ALPSLLI_CFLAGS = @CRAY_ALPSLLI_CFLAGS@ +CRAY_ALPSLLI_LIBS = @CRAY_ALPSLLI_LIBS@ +CRAY_ALPSLLI_STATIC_LIBS = @CRAY_ALPSLLI_STATIC_LIBS@ +CRAY_ALPSUTIL_CFLAGS = @CRAY_ALPSUTIL_CFLAGS@ +CRAY_ALPSUTIL_LIBS = @CRAY_ALPSUTIL_LIBS@ +CRAY_ALPSUTIL_STATIC_LIBS = @CRAY_ALPSUTIL_STATIC_LIBS@ +CRAY_ALPS_CFLAGS = @CRAY_ALPS_CFLAGS@ +CRAY_ALPS_LIBS = @CRAY_ALPS_LIBS@ +CRAY_ALPS_STATIC_LIBS = @CRAY_ALPS_STATIC_LIBS@ +CRAY_PMI_CFLAGS = @CRAY_PMI_CFLAGS@ +CRAY_PMI_LIBS = @CRAY_PMI_LIBS@ +CRAY_PMI_STATIC_LIBS = @CRAY_PMI_STATIC_LIBS@ +CRAY_UDREG_CFLAGS = @CRAY_UDREG_CFLAGS@ +CRAY_UDREG_LIBS = @CRAY_UDREG_LIBS@ +CRAY_UGNI_CFLAGS = @CRAY_UGNI_CFLAGS@ +CRAY_UGNI_LIBS = @CRAY_UGNI_LIBS@ +CRAY_WLM_DETECT_CFLAGS = @CRAY_WLM_DETECT_CFLAGS@ +CRAY_WLM_DETECT_LIBS = @CRAY_WLM_DETECT_LIBS@ +CRAY_WLM_DETECT_STATIC_LIBS = @CRAY_WLM_DETECT_STATIC_LIBS@ +CRAY_XPMEM_CFLAGS = @CRAY_XPMEM_CFLAGS@ +CRAY_XPMEM_LIBS = @CRAY_XPMEM_LIBS@ +CRAY_XPMEM_STATIC_LIBS = @CRAY_XPMEM_STATIC_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXCPPFLAGS = @CXXCPPFLAGS@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUGGER_CFLAGS = @DEBUGGER_CFLAGS@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FC = @FC@ +FCFLAGS = @FCFLAGS@ +FCFLAGS_f = @FCFLAGS_f@ +FCFLAGS_f90 = @FCFLAGS_f90@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLUX_PMI_CFLAGS = @FLUX_PMI_CFLAGS@ +FLUX_PMI_LIBS = @FLUX_PMI_LIBS@ +GREP = @GREP@ +HWLOC_CFLAGS = @HWLOC_CFLAGS@ +HWLOC_CPPFLAGS = @HWLOC_CPPFLAGS@ +HWLOC_CUDA_LIBS = @HWLOC_CUDA_LIBS@ +HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@ +HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@ +HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@ +HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@ +HWLOC_GL_LIBS = @HWLOC_GL_LIBS@ +HWLOC_HAVE_LIBXML2 = @HWLOC_HAVE_LIBXML2@ +HWLOC_HAVE_NVML = @HWLOC_HAVE_NVML@ +HWLOC_HAVE_OPENCL = @HWLOC_HAVE_OPENCL@ +HWLOC_LDFLAGS = @HWLOC_LDFLAGS@ +HWLOC_LIBS = @HWLOC_LIBS@ +HWLOC_LIBS_PRIVATE = @HWLOC_LIBS_PRIVATE@ +HWLOC_LIBXML2_CFLAGS = @HWLOC_LIBXML2_CFLAGS@ +HWLOC_LIBXML2_LIBS = @HWLOC_LIBXML2_LIBS@ +HWLOC_MS_LIB = @HWLOC_MS_LIB@ +HWLOC_MS_LIB_ARCH = @HWLOC_MS_LIB_ARCH@ +HWLOC_NVML_LIBS = @HWLOC_NVML_LIBS@ +HWLOC_OPENCL_CFLAGS = @HWLOC_OPENCL_CFLAGS@ +HWLOC_OPENCL_LDFLAGS = @HWLOC_OPENCL_LDFLAGS@ +HWLOC_OPENCL_LIBS = @HWLOC_OPENCL_LIBS@ +HWLOC_PCIACCESS_CFLAGS = @HWLOC_PCIACCESS_CFLAGS@ +HWLOC_PCIACCESS_LIBS = @HWLOC_PCIACCESS_LIBS@ +HWLOC_PLUGINS_DIR = @HWLOC_PLUGINS_DIR@ +HWLOC_PLUGINS_PATH = @HWLOC_PLUGINS_PATH@ +HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@ +HWLOC_REQUIRES = @HWLOC_REQUIRES@ +HWLOC_VERSION = @HWLOC_VERSION@ +HWLOC_X11_CPPFLAGS = @HWLOC_X11_CPPFLAGS@ +HWLOC_X11_LIBS = @HWLOC_X11_LIBS@ +HWLOC_top_builddir = @HWLOC_top_builddir@ +HWLOC_top_srcdir = @HWLOC_top_srcdir@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JAR = @JAR@ +JAVAC = @JAVAC@ +JAVADOC = @JAVADOC@ +JAVAH = @JAVAH@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ +MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ +MCA_ompi_FRAMEWORKS_SUBDIRS = @MCA_ompi_FRAMEWORKS_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_ompi_FRAMEWORK_LIBS = @MCA_ompi_FRAMEWORK_LIBS@ +MCA_ompi_bml_ALL_COMPONENTS = @MCA_ompi_bml_ALL_COMPONENTS@ +MCA_ompi_bml_ALL_SUBDIRS = @MCA_ompi_bml_ALL_SUBDIRS@ +MCA_ompi_bml_DSO_COMPONENTS = @MCA_ompi_bml_DSO_COMPONENTS@ +MCA_ompi_bml_DSO_SUBDIRS = @MCA_ompi_bml_DSO_SUBDIRS@ +MCA_ompi_bml_STATIC_COMPONENTS = @MCA_ompi_bml_STATIC_COMPONENTS@ +MCA_ompi_bml_STATIC_LTLIBS = @MCA_ompi_bml_STATIC_LTLIBS@ +MCA_ompi_bml_STATIC_SUBDIRS = @MCA_ompi_bml_STATIC_SUBDIRS@ +MCA_ompi_coll_ALL_COMPONENTS = @MCA_ompi_coll_ALL_COMPONENTS@ +MCA_ompi_coll_ALL_SUBDIRS = @MCA_ompi_coll_ALL_SUBDIRS@ +MCA_ompi_coll_DSO_COMPONENTS = @MCA_ompi_coll_DSO_COMPONENTS@ +MCA_ompi_coll_DSO_SUBDIRS = @MCA_ompi_coll_DSO_SUBDIRS@ +MCA_ompi_coll_STATIC_COMPONENTS = @MCA_ompi_coll_STATIC_COMPONENTS@ +MCA_ompi_coll_STATIC_LTLIBS = @MCA_ompi_coll_STATIC_LTLIBS@ +MCA_ompi_coll_STATIC_SUBDIRS = @MCA_ompi_coll_STATIC_SUBDIRS@ +MCA_ompi_common_ALL_COMPONENTS = @MCA_ompi_common_ALL_COMPONENTS@ +MCA_ompi_common_ALL_SUBDIRS = @MCA_ompi_common_ALL_SUBDIRS@ +MCA_ompi_common_DSO_COMPONENTS = @MCA_ompi_common_DSO_COMPONENTS@ +MCA_ompi_common_DSO_SUBDIRS = @MCA_ompi_common_DSO_SUBDIRS@ +MCA_ompi_common_STATIC_COMPONENTS = @MCA_ompi_common_STATIC_COMPONENTS@ +MCA_ompi_common_STATIC_LTLIBS = @MCA_ompi_common_STATIC_LTLIBS@ +MCA_ompi_common_STATIC_SUBDIRS = @MCA_ompi_common_STATIC_SUBDIRS@ +MCA_ompi_crcp_ALL_COMPONENTS = @MCA_ompi_crcp_ALL_COMPONENTS@ +MCA_ompi_crcp_ALL_SUBDIRS = @MCA_ompi_crcp_ALL_SUBDIRS@ +MCA_ompi_crcp_DSO_COMPONENTS = @MCA_ompi_crcp_DSO_COMPONENTS@ +MCA_ompi_crcp_DSO_SUBDIRS = @MCA_ompi_crcp_DSO_SUBDIRS@ +MCA_ompi_crcp_STATIC_COMPONENTS = @MCA_ompi_crcp_STATIC_COMPONENTS@ +MCA_ompi_crcp_STATIC_LTLIBS = @MCA_ompi_crcp_STATIC_LTLIBS@ +MCA_ompi_crcp_STATIC_SUBDIRS = @MCA_ompi_crcp_STATIC_SUBDIRS@ +MCA_ompi_fbtl_ALL_COMPONENTS = @MCA_ompi_fbtl_ALL_COMPONENTS@ +MCA_ompi_fbtl_ALL_SUBDIRS = @MCA_ompi_fbtl_ALL_SUBDIRS@ +MCA_ompi_fbtl_DSO_COMPONENTS = @MCA_ompi_fbtl_DSO_COMPONENTS@ +MCA_ompi_fbtl_DSO_SUBDIRS = @MCA_ompi_fbtl_DSO_SUBDIRS@ +MCA_ompi_fbtl_STATIC_COMPONENTS = @MCA_ompi_fbtl_STATIC_COMPONENTS@ +MCA_ompi_fbtl_STATIC_LTLIBS = @MCA_ompi_fbtl_STATIC_LTLIBS@ +MCA_ompi_fbtl_STATIC_SUBDIRS = @MCA_ompi_fbtl_STATIC_SUBDIRS@ +MCA_ompi_fcoll_ALL_COMPONENTS = @MCA_ompi_fcoll_ALL_COMPONENTS@ +MCA_ompi_fcoll_ALL_SUBDIRS = @MCA_ompi_fcoll_ALL_SUBDIRS@ +MCA_ompi_fcoll_DSO_COMPONENTS = @MCA_ompi_fcoll_DSO_COMPONENTS@ +MCA_ompi_fcoll_DSO_SUBDIRS = @MCA_ompi_fcoll_DSO_SUBDIRS@ +MCA_ompi_fcoll_STATIC_COMPONENTS = @MCA_ompi_fcoll_STATIC_COMPONENTS@ +MCA_ompi_fcoll_STATIC_LTLIBS = @MCA_ompi_fcoll_STATIC_LTLIBS@ +MCA_ompi_fcoll_STATIC_SUBDIRS = @MCA_ompi_fcoll_STATIC_SUBDIRS@ +MCA_ompi_fs_ALL_COMPONENTS = @MCA_ompi_fs_ALL_COMPONENTS@ +MCA_ompi_fs_ALL_SUBDIRS = @MCA_ompi_fs_ALL_SUBDIRS@ +MCA_ompi_fs_DSO_COMPONENTS = @MCA_ompi_fs_DSO_COMPONENTS@ +MCA_ompi_fs_DSO_SUBDIRS = @MCA_ompi_fs_DSO_SUBDIRS@ +MCA_ompi_fs_STATIC_COMPONENTS = @MCA_ompi_fs_STATIC_COMPONENTS@ +MCA_ompi_fs_STATIC_LTLIBS = @MCA_ompi_fs_STATIC_LTLIBS@ +MCA_ompi_fs_STATIC_SUBDIRS = @MCA_ompi_fs_STATIC_SUBDIRS@ +MCA_ompi_hook_ALL_COMPONENTS = @MCA_ompi_hook_ALL_COMPONENTS@ +MCA_ompi_hook_ALL_SUBDIRS = @MCA_ompi_hook_ALL_SUBDIRS@ +MCA_ompi_hook_DSO_COMPONENTS = @MCA_ompi_hook_DSO_COMPONENTS@ +MCA_ompi_hook_DSO_SUBDIRS = @MCA_ompi_hook_DSO_SUBDIRS@ +MCA_ompi_hook_STATIC_COMPONENTS = @MCA_ompi_hook_STATIC_COMPONENTS@ +MCA_ompi_hook_STATIC_LTLIBS = @MCA_ompi_hook_STATIC_LTLIBS@ +MCA_ompi_hook_STATIC_SUBDIRS = @MCA_ompi_hook_STATIC_SUBDIRS@ +MCA_ompi_io_ALL_COMPONENTS = @MCA_ompi_io_ALL_COMPONENTS@ +MCA_ompi_io_ALL_SUBDIRS = @MCA_ompi_io_ALL_SUBDIRS@ +MCA_ompi_io_DSO_COMPONENTS = @MCA_ompi_io_DSO_COMPONENTS@ +MCA_ompi_io_DSO_SUBDIRS = @MCA_ompi_io_DSO_SUBDIRS@ +MCA_ompi_io_STATIC_COMPONENTS = @MCA_ompi_io_STATIC_COMPONENTS@ +MCA_ompi_io_STATIC_LTLIBS = @MCA_ompi_io_STATIC_LTLIBS@ +MCA_ompi_io_STATIC_SUBDIRS = @MCA_ompi_io_STATIC_SUBDIRS@ +MCA_ompi_mtl_ALL_COMPONENTS = @MCA_ompi_mtl_ALL_COMPONENTS@ +MCA_ompi_mtl_ALL_SUBDIRS = @MCA_ompi_mtl_ALL_SUBDIRS@ +MCA_ompi_mtl_DIRECT_CALL_HEADER = @MCA_ompi_mtl_DIRECT_CALL_HEADER@ +MCA_ompi_mtl_DSO_COMPONENTS = @MCA_ompi_mtl_DSO_COMPONENTS@ +MCA_ompi_mtl_DSO_SUBDIRS = @MCA_ompi_mtl_DSO_SUBDIRS@ +MCA_ompi_mtl_STATIC_COMPONENTS = @MCA_ompi_mtl_STATIC_COMPONENTS@ +MCA_ompi_mtl_STATIC_LTLIBS = @MCA_ompi_mtl_STATIC_LTLIBS@ +MCA_ompi_mtl_STATIC_SUBDIRS = @MCA_ompi_mtl_STATIC_SUBDIRS@ +MCA_ompi_op_ALL_COMPONENTS = @MCA_ompi_op_ALL_COMPONENTS@ +MCA_ompi_op_ALL_SUBDIRS = @MCA_ompi_op_ALL_SUBDIRS@ +MCA_ompi_op_DSO_COMPONENTS = @MCA_ompi_op_DSO_COMPONENTS@ +MCA_ompi_op_DSO_SUBDIRS = @MCA_ompi_op_DSO_SUBDIRS@ +MCA_ompi_op_STATIC_COMPONENTS = @MCA_ompi_op_STATIC_COMPONENTS@ +MCA_ompi_op_STATIC_LTLIBS = @MCA_ompi_op_STATIC_LTLIBS@ +MCA_ompi_op_STATIC_SUBDIRS = @MCA_ompi_op_STATIC_SUBDIRS@ +MCA_ompi_osc_ALL_COMPONENTS = @MCA_ompi_osc_ALL_COMPONENTS@ +MCA_ompi_osc_ALL_SUBDIRS = @MCA_ompi_osc_ALL_SUBDIRS@ +MCA_ompi_osc_DSO_COMPONENTS = @MCA_ompi_osc_DSO_COMPONENTS@ +MCA_ompi_osc_DSO_SUBDIRS = @MCA_ompi_osc_DSO_SUBDIRS@ +MCA_ompi_osc_STATIC_COMPONENTS = @MCA_ompi_osc_STATIC_COMPONENTS@ +MCA_ompi_osc_STATIC_LTLIBS = @MCA_ompi_osc_STATIC_LTLIBS@ +MCA_ompi_osc_STATIC_SUBDIRS = @MCA_ompi_osc_STATIC_SUBDIRS@ +MCA_ompi_pml_ALL_COMPONENTS = @MCA_ompi_pml_ALL_COMPONENTS@ +MCA_ompi_pml_ALL_SUBDIRS = @MCA_ompi_pml_ALL_SUBDIRS@ +MCA_ompi_pml_DIRECT_CALL_HEADER = @MCA_ompi_pml_DIRECT_CALL_HEADER@ +MCA_ompi_pml_DSO_COMPONENTS = @MCA_ompi_pml_DSO_COMPONENTS@ +MCA_ompi_pml_DSO_SUBDIRS = @MCA_ompi_pml_DSO_SUBDIRS@ +MCA_ompi_pml_STATIC_COMPONENTS = @MCA_ompi_pml_STATIC_COMPONENTS@ +MCA_ompi_pml_STATIC_LTLIBS = @MCA_ompi_pml_STATIC_LTLIBS@ +MCA_ompi_pml_STATIC_SUBDIRS = @MCA_ompi_pml_STATIC_SUBDIRS@ +MCA_ompi_rte_ALL_COMPONENTS = @MCA_ompi_rte_ALL_COMPONENTS@ +MCA_ompi_rte_ALL_SUBDIRS = @MCA_ompi_rte_ALL_SUBDIRS@ +MCA_ompi_rte_DSO_COMPONENTS = @MCA_ompi_rte_DSO_COMPONENTS@ +MCA_ompi_rte_DSO_SUBDIRS = @MCA_ompi_rte_DSO_SUBDIRS@ +MCA_ompi_rte_STATIC_COMPONENTS = @MCA_ompi_rte_STATIC_COMPONENTS@ +MCA_ompi_rte_STATIC_LTLIBS = @MCA_ompi_rte_STATIC_LTLIBS@ +MCA_ompi_rte_STATIC_SUBDIRS = @MCA_ompi_rte_STATIC_SUBDIRS@ +MCA_ompi_sharedfp_ALL_COMPONENTS = @MCA_ompi_sharedfp_ALL_COMPONENTS@ +MCA_ompi_sharedfp_ALL_SUBDIRS = @MCA_ompi_sharedfp_ALL_SUBDIRS@ +MCA_ompi_sharedfp_DSO_COMPONENTS = @MCA_ompi_sharedfp_DSO_COMPONENTS@ +MCA_ompi_sharedfp_DSO_SUBDIRS = @MCA_ompi_sharedfp_DSO_SUBDIRS@ +MCA_ompi_sharedfp_STATIC_COMPONENTS = @MCA_ompi_sharedfp_STATIC_COMPONENTS@ +MCA_ompi_sharedfp_STATIC_LTLIBS = @MCA_ompi_sharedfp_STATIC_LTLIBS@ +MCA_ompi_sharedfp_STATIC_SUBDIRS = @MCA_ompi_sharedfp_STATIC_SUBDIRS@ +MCA_ompi_topo_ALL_COMPONENTS = @MCA_ompi_topo_ALL_COMPONENTS@ +MCA_ompi_topo_ALL_SUBDIRS = @MCA_ompi_topo_ALL_SUBDIRS@ +MCA_ompi_topo_DSO_COMPONENTS = @MCA_ompi_topo_DSO_COMPONENTS@ +MCA_ompi_topo_DSO_SUBDIRS = @MCA_ompi_topo_DSO_SUBDIRS@ +MCA_ompi_topo_STATIC_COMPONENTS = @MCA_ompi_topo_STATIC_COMPONENTS@ +MCA_ompi_topo_STATIC_LTLIBS = @MCA_ompi_topo_STATIC_LTLIBS@ +MCA_ompi_topo_STATIC_SUBDIRS = @MCA_ompi_topo_STATIC_SUBDIRS@ +MCA_ompi_vprotocol_ALL_COMPONENTS = @MCA_ompi_vprotocol_ALL_COMPONENTS@ +MCA_ompi_vprotocol_ALL_SUBDIRS = @MCA_ompi_vprotocol_ALL_SUBDIRS@ +MCA_ompi_vprotocol_DSO_COMPONENTS = @MCA_ompi_vprotocol_DSO_COMPONENTS@ +MCA_ompi_vprotocol_DSO_SUBDIRS = @MCA_ompi_vprotocol_DSO_SUBDIRS@ +MCA_ompi_vprotocol_STATIC_COMPONENTS = @MCA_ompi_vprotocol_STATIC_COMPONENTS@ +MCA_ompi_vprotocol_STATIC_LTLIBS = @MCA_ompi_vprotocol_STATIC_LTLIBS@ +MCA_ompi_vprotocol_STATIC_SUBDIRS = @MCA_ompi_vprotocol_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORKS = @MCA_opal_FRAMEWORKS@ +MCA_opal_FRAMEWORKS_SUBDIRS = @MCA_opal_FRAMEWORKS_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORK_LIBS = @MCA_opal_FRAMEWORK_LIBS@ +MCA_opal_allocator_ALL_COMPONENTS = @MCA_opal_allocator_ALL_COMPONENTS@ +MCA_opal_allocator_ALL_SUBDIRS = @MCA_opal_allocator_ALL_SUBDIRS@ +MCA_opal_allocator_DSO_COMPONENTS = @MCA_opal_allocator_DSO_COMPONENTS@ +MCA_opal_allocator_DSO_SUBDIRS = @MCA_opal_allocator_DSO_SUBDIRS@ +MCA_opal_allocator_STATIC_COMPONENTS = @MCA_opal_allocator_STATIC_COMPONENTS@ +MCA_opal_allocator_STATIC_LTLIBS = @MCA_opal_allocator_STATIC_LTLIBS@ +MCA_opal_allocator_STATIC_SUBDIRS = @MCA_opal_allocator_STATIC_SUBDIRS@ +MCA_opal_backtrace_ALL_COMPONENTS = @MCA_opal_backtrace_ALL_COMPONENTS@ +MCA_opal_backtrace_ALL_SUBDIRS = @MCA_opal_backtrace_ALL_SUBDIRS@ +MCA_opal_backtrace_DSO_COMPONENTS = @MCA_opal_backtrace_DSO_COMPONENTS@ +MCA_opal_backtrace_DSO_SUBDIRS = @MCA_opal_backtrace_DSO_SUBDIRS@ +MCA_opal_backtrace_STATIC_COMPONENTS = @MCA_opal_backtrace_STATIC_COMPONENTS@ +MCA_opal_backtrace_STATIC_LTLIBS = @MCA_opal_backtrace_STATIC_LTLIBS@ +MCA_opal_backtrace_STATIC_SUBDIRS = @MCA_opal_backtrace_STATIC_SUBDIRS@ +MCA_opal_btl_ALL_COMPONENTS = @MCA_opal_btl_ALL_COMPONENTS@ +MCA_opal_btl_ALL_SUBDIRS = @MCA_opal_btl_ALL_SUBDIRS@ +MCA_opal_btl_DSO_COMPONENTS = @MCA_opal_btl_DSO_COMPONENTS@ +MCA_opal_btl_DSO_SUBDIRS = @MCA_opal_btl_DSO_SUBDIRS@ +MCA_opal_btl_STATIC_COMPONENTS = @MCA_opal_btl_STATIC_COMPONENTS@ +MCA_opal_btl_STATIC_LTLIBS = @MCA_opal_btl_STATIC_LTLIBS@ +MCA_opal_btl_STATIC_SUBDIRS = @MCA_opal_btl_STATIC_SUBDIRS@ +MCA_opal_common_ALL_COMPONENTS = @MCA_opal_common_ALL_COMPONENTS@ +MCA_opal_common_ALL_SUBDIRS = @MCA_opal_common_ALL_SUBDIRS@ +MCA_opal_common_DSO_COMPONENTS = @MCA_opal_common_DSO_COMPONENTS@ +MCA_opal_common_DSO_SUBDIRS = @MCA_opal_common_DSO_SUBDIRS@ +MCA_opal_common_STATIC_COMPONENTS = @MCA_opal_common_STATIC_COMPONENTS@ +MCA_opal_common_STATIC_LTLIBS = @MCA_opal_common_STATIC_LTLIBS@ +MCA_opal_common_STATIC_SUBDIRS = @MCA_opal_common_STATIC_SUBDIRS@ +MCA_opal_compress_ALL_COMPONENTS = @MCA_opal_compress_ALL_COMPONENTS@ +MCA_opal_compress_ALL_SUBDIRS = @MCA_opal_compress_ALL_SUBDIRS@ +MCA_opal_compress_DSO_COMPONENTS = @MCA_opal_compress_DSO_COMPONENTS@ +MCA_opal_compress_DSO_SUBDIRS = @MCA_opal_compress_DSO_SUBDIRS@ +MCA_opal_compress_STATIC_COMPONENTS = @MCA_opal_compress_STATIC_COMPONENTS@ +MCA_opal_compress_STATIC_LTLIBS = @MCA_opal_compress_STATIC_LTLIBS@ +MCA_opal_compress_STATIC_SUBDIRS = @MCA_opal_compress_STATIC_SUBDIRS@ +MCA_opal_crs_ALL_COMPONENTS = @MCA_opal_crs_ALL_COMPONENTS@ +MCA_opal_crs_ALL_SUBDIRS = @MCA_opal_crs_ALL_SUBDIRS@ +MCA_opal_crs_DSO_COMPONENTS = @MCA_opal_crs_DSO_COMPONENTS@ +MCA_opal_crs_DSO_SUBDIRS = @MCA_opal_crs_DSO_SUBDIRS@ +MCA_opal_crs_STATIC_COMPONENTS = @MCA_opal_crs_STATIC_COMPONENTS@ +MCA_opal_crs_STATIC_LTLIBS = @MCA_opal_crs_STATIC_LTLIBS@ +MCA_opal_crs_STATIC_SUBDIRS = @MCA_opal_crs_STATIC_SUBDIRS@ +MCA_opal_dl_ALL_COMPONENTS = @MCA_opal_dl_ALL_COMPONENTS@ +MCA_opal_dl_ALL_SUBDIRS = @MCA_opal_dl_ALL_SUBDIRS@ +MCA_opal_dl_DSO_COMPONENTS = @MCA_opal_dl_DSO_COMPONENTS@ +MCA_opal_dl_DSO_SUBDIRS = @MCA_opal_dl_DSO_SUBDIRS@ +MCA_opal_dl_STATIC_COMPONENTS = @MCA_opal_dl_STATIC_COMPONENTS@ +MCA_opal_dl_STATIC_LTLIBS = @MCA_opal_dl_STATIC_LTLIBS@ +MCA_opal_dl_STATIC_SUBDIRS = @MCA_opal_dl_STATIC_SUBDIRS@ +MCA_opal_event_ALL_COMPONENTS = @MCA_opal_event_ALL_COMPONENTS@ +MCA_opal_event_ALL_SUBDIRS = @MCA_opal_event_ALL_SUBDIRS@ +MCA_opal_event_DSO_COMPONENTS = @MCA_opal_event_DSO_COMPONENTS@ +MCA_opal_event_DSO_SUBDIRS = @MCA_opal_event_DSO_SUBDIRS@ +MCA_opal_event_STATIC_COMPONENTS = @MCA_opal_event_STATIC_COMPONENTS@ +MCA_opal_event_STATIC_LTLIBS = @MCA_opal_event_STATIC_LTLIBS@ +MCA_opal_event_STATIC_SUBDIRS = @MCA_opal_event_STATIC_SUBDIRS@ +MCA_opal_hwloc_ALL_COMPONENTS = @MCA_opal_hwloc_ALL_COMPONENTS@ +MCA_opal_hwloc_ALL_SUBDIRS = @MCA_opal_hwloc_ALL_SUBDIRS@ +MCA_opal_hwloc_DSO_COMPONENTS = @MCA_opal_hwloc_DSO_COMPONENTS@ +MCA_opal_hwloc_DSO_SUBDIRS = @MCA_opal_hwloc_DSO_SUBDIRS@ +MCA_opal_hwloc_STATIC_COMPONENTS = @MCA_opal_hwloc_STATIC_COMPONENTS@ +MCA_opal_hwloc_STATIC_LTLIBS = @MCA_opal_hwloc_STATIC_LTLIBS@ +MCA_opal_hwloc_STATIC_SUBDIRS = @MCA_opal_hwloc_STATIC_SUBDIRS@ +MCA_opal_if_ALL_COMPONENTS = @MCA_opal_if_ALL_COMPONENTS@ +MCA_opal_if_ALL_SUBDIRS = @MCA_opal_if_ALL_SUBDIRS@ +MCA_opal_if_DSO_COMPONENTS = @MCA_opal_if_DSO_COMPONENTS@ +MCA_opal_if_DSO_SUBDIRS = @MCA_opal_if_DSO_SUBDIRS@ +MCA_opal_if_STATIC_COMPONENTS = @MCA_opal_if_STATIC_COMPONENTS@ +MCA_opal_if_STATIC_LTLIBS = @MCA_opal_if_STATIC_LTLIBS@ +MCA_opal_if_STATIC_SUBDIRS = @MCA_opal_if_STATIC_SUBDIRS@ +MCA_opal_installdirs_ALL_COMPONENTS = @MCA_opal_installdirs_ALL_COMPONENTS@ +MCA_opal_installdirs_ALL_SUBDIRS = @MCA_opal_installdirs_ALL_SUBDIRS@ +MCA_opal_installdirs_DSO_COMPONENTS = @MCA_opal_installdirs_DSO_COMPONENTS@ +MCA_opal_installdirs_DSO_SUBDIRS = @MCA_opal_installdirs_DSO_SUBDIRS@ +MCA_opal_installdirs_STATIC_COMPONENTS = @MCA_opal_installdirs_STATIC_COMPONENTS@ +MCA_opal_installdirs_STATIC_LTLIBS = @MCA_opal_installdirs_STATIC_LTLIBS@ +MCA_opal_installdirs_STATIC_SUBDIRS = @MCA_opal_installdirs_STATIC_SUBDIRS@ +MCA_opal_memchecker_ALL_COMPONENTS = @MCA_opal_memchecker_ALL_COMPONENTS@ +MCA_opal_memchecker_ALL_SUBDIRS = @MCA_opal_memchecker_ALL_SUBDIRS@ +MCA_opal_memchecker_DSO_COMPONENTS = @MCA_opal_memchecker_DSO_COMPONENTS@ +MCA_opal_memchecker_DSO_SUBDIRS = @MCA_opal_memchecker_DSO_SUBDIRS@ +MCA_opal_memchecker_STATIC_COMPONENTS = @MCA_opal_memchecker_STATIC_COMPONENTS@ +MCA_opal_memchecker_STATIC_LTLIBS = @MCA_opal_memchecker_STATIC_LTLIBS@ +MCA_opal_memchecker_STATIC_SUBDIRS = @MCA_opal_memchecker_STATIC_SUBDIRS@ +MCA_opal_memcpy_ALL_COMPONENTS = @MCA_opal_memcpy_ALL_COMPONENTS@ +MCA_opal_memcpy_ALL_SUBDIRS = @MCA_opal_memcpy_ALL_SUBDIRS@ +MCA_opal_memcpy_DSO_COMPONENTS = @MCA_opal_memcpy_DSO_COMPONENTS@ +MCA_opal_memcpy_DSO_SUBDIRS = @MCA_opal_memcpy_DSO_SUBDIRS@ +MCA_opal_memcpy_STATIC_COMPONENTS = @MCA_opal_memcpy_STATIC_COMPONENTS@ +MCA_opal_memcpy_STATIC_LTLIBS = @MCA_opal_memcpy_STATIC_LTLIBS@ +MCA_opal_memcpy_STATIC_SUBDIRS = @MCA_opal_memcpy_STATIC_SUBDIRS@ +MCA_opal_memory_ALL_COMPONENTS = @MCA_opal_memory_ALL_COMPONENTS@ +MCA_opal_memory_ALL_SUBDIRS = @MCA_opal_memory_ALL_SUBDIRS@ +MCA_opal_memory_DSO_COMPONENTS = @MCA_opal_memory_DSO_COMPONENTS@ +MCA_opal_memory_DSO_SUBDIRS = @MCA_opal_memory_DSO_SUBDIRS@ +MCA_opal_memory_STATIC_COMPONENTS = @MCA_opal_memory_STATIC_COMPONENTS@ +MCA_opal_memory_STATIC_LTLIBS = @MCA_opal_memory_STATIC_LTLIBS@ +MCA_opal_memory_STATIC_SUBDIRS = @MCA_opal_memory_STATIC_SUBDIRS@ +MCA_opal_mpool_ALL_COMPONENTS = @MCA_opal_mpool_ALL_COMPONENTS@ +MCA_opal_mpool_ALL_SUBDIRS = @MCA_opal_mpool_ALL_SUBDIRS@ +MCA_opal_mpool_DSO_COMPONENTS = @MCA_opal_mpool_DSO_COMPONENTS@ +MCA_opal_mpool_DSO_SUBDIRS = @MCA_opal_mpool_DSO_SUBDIRS@ +MCA_opal_mpool_STATIC_COMPONENTS = @MCA_opal_mpool_STATIC_COMPONENTS@ +MCA_opal_mpool_STATIC_LTLIBS = @MCA_opal_mpool_STATIC_LTLIBS@ +MCA_opal_mpool_STATIC_SUBDIRS = @MCA_opal_mpool_STATIC_SUBDIRS@ +MCA_opal_patcher_ALL_COMPONENTS = @MCA_opal_patcher_ALL_COMPONENTS@ +MCA_opal_patcher_ALL_SUBDIRS = @MCA_opal_patcher_ALL_SUBDIRS@ +MCA_opal_patcher_DSO_COMPONENTS = @MCA_opal_patcher_DSO_COMPONENTS@ +MCA_opal_patcher_DSO_SUBDIRS = @MCA_opal_patcher_DSO_SUBDIRS@ +MCA_opal_patcher_STATIC_COMPONENTS = @MCA_opal_patcher_STATIC_COMPONENTS@ +MCA_opal_patcher_STATIC_LTLIBS = @MCA_opal_patcher_STATIC_LTLIBS@ +MCA_opal_patcher_STATIC_SUBDIRS = @MCA_opal_patcher_STATIC_SUBDIRS@ +MCA_opal_pmix_ALL_COMPONENTS = @MCA_opal_pmix_ALL_COMPONENTS@ +MCA_opal_pmix_ALL_SUBDIRS = @MCA_opal_pmix_ALL_SUBDIRS@ +MCA_opal_pmix_DSO_COMPONENTS = @MCA_opal_pmix_DSO_COMPONENTS@ +MCA_opal_pmix_DSO_SUBDIRS = @MCA_opal_pmix_DSO_SUBDIRS@ +MCA_opal_pmix_STATIC_COMPONENTS = @MCA_opal_pmix_STATIC_COMPONENTS@ +MCA_opal_pmix_STATIC_LTLIBS = @MCA_opal_pmix_STATIC_LTLIBS@ +MCA_opal_pmix_STATIC_SUBDIRS = @MCA_opal_pmix_STATIC_SUBDIRS@ +MCA_opal_pstat_ALL_COMPONENTS = @MCA_opal_pstat_ALL_COMPONENTS@ +MCA_opal_pstat_ALL_SUBDIRS = @MCA_opal_pstat_ALL_SUBDIRS@ +MCA_opal_pstat_DSO_COMPONENTS = @MCA_opal_pstat_DSO_COMPONENTS@ +MCA_opal_pstat_DSO_SUBDIRS = @MCA_opal_pstat_DSO_SUBDIRS@ +MCA_opal_pstat_STATIC_COMPONENTS = @MCA_opal_pstat_STATIC_COMPONENTS@ +MCA_opal_pstat_STATIC_LTLIBS = @MCA_opal_pstat_STATIC_LTLIBS@ +MCA_opal_pstat_STATIC_SUBDIRS = @MCA_opal_pstat_STATIC_SUBDIRS@ +MCA_opal_rcache_ALL_COMPONENTS = @MCA_opal_rcache_ALL_COMPONENTS@ +MCA_opal_rcache_ALL_SUBDIRS = @MCA_opal_rcache_ALL_SUBDIRS@ +MCA_opal_rcache_DSO_COMPONENTS = @MCA_opal_rcache_DSO_COMPONENTS@ +MCA_opal_rcache_DSO_SUBDIRS = @MCA_opal_rcache_DSO_SUBDIRS@ +MCA_opal_rcache_STATIC_COMPONENTS = @MCA_opal_rcache_STATIC_COMPONENTS@ +MCA_opal_rcache_STATIC_LTLIBS = @MCA_opal_rcache_STATIC_LTLIBS@ +MCA_opal_rcache_STATIC_SUBDIRS = @MCA_opal_rcache_STATIC_SUBDIRS@ +MCA_opal_reachable_ALL_COMPONENTS = @MCA_opal_reachable_ALL_COMPONENTS@ +MCA_opal_reachable_ALL_SUBDIRS = @MCA_opal_reachable_ALL_SUBDIRS@ +MCA_opal_reachable_DSO_COMPONENTS = @MCA_opal_reachable_DSO_COMPONENTS@ +MCA_opal_reachable_DSO_SUBDIRS = @MCA_opal_reachable_DSO_SUBDIRS@ +MCA_opal_reachable_STATIC_COMPONENTS = @MCA_opal_reachable_STATIC_COMPONENTS@ +MCA_opal_reachable_STATIC_LTLIBS = @MCA_opal_reachable_STATIC_LTLIBS@ +MCA_opal_reachable_STATIC_SUBDIRS = @MCA_opal_reachable_STATIC_SUBDIRS@ +MCA_opal_shmem_ALL_COMPONENTS = @MCA_opal_shmem_ALL_COMPONENTS@ +MCA_opal_shmem_ALL_SUBDIRS = @MCA_opal_shmem_ALL_SUBDIRS@ +MCA_opal_shmem_DSO_COMPONENTS = @MCA_opal_shmem_DSO_COMPONENTS@ +MCA_opal_shmem_DSO_SUBDIRS = @MCA_opal_shmem_DSO_SUBDIRS@ +MCA_opal_shmem_STATIC_COMPONENTS = @MCA_opal_shmem_STATIC_COMPONENTS@ +MCA_opal_shmem_STATIC_LTLIBS = @MCA_opal_shmem_STATIC_LTLIBS@ +MCA_opal_shmem_STATIC_SUBDIRS = @MCA_opal_shmem_STATIC_SUBDIRS@ +MCA_opal_timer_ALL_COMPONENTS = @MCA_opal_timer_ALL_COMPONENTS@ +MCA_opal_timer_ALL_SUBDIRS = @MCA_opal_timer_ALL_SUBDIRS@ +MCA_opal_timer_DSO_COMPONENTS = @MCA_opal_timer_DSO_COMPONENTS@ +MCA_opal_timer_DSO_SUBDIRS = @MCA_opal_timer_DSO_SUBDIRS@ +MCA_opal_timer_STATIC_COMPONENTS = @MCA_opal_timer_STATIC_COMPONENTS@ +MCA_opal_timer_STATIC_LTLIBS = @MCA_opal_timer_STATIC_LTLIBS@ +MCA_opal_timer_STATIC_SUBDIRS = @MCA_opal_timer_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORKS = @MCA_orte_FRAMEWORKS@ +MCA_orte_FRAMEWORKS_SUBDIRS = @MCA_orte_FRAMEWORKS_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORK_LIBS = @MCA_orte_FRAMEWORK_LIBS@ +MCA_orte_common_ALL_COMPONENTS = @MCA_orte_common_ALL_COMPONENTS@ +MCA_orte_common_ALL_SUBDIRS = @MCA_orte_common_ALL_SUBDIRS@ +MCA_orte_common_DSO_COMPONENTS = @MCA_orte_common_DSO_COMPONENTS@ +MCA_orte_common_DSO_SUBDIRS = @MCA_orte_common_DSO_SUBDIRS@ +MCA_orte_common_STATIC_COMPONENTS = @MCA_orte_common_STATIC_COMPONENTS@ +MCA_orte_common_STATIC_LTLIBS = @MCA_orte_common_STATIC_LTLIBS@ +MCA_orte_common_STATIC_SUBDIRS = @MCA_orte_common_STATIC_SUBDIRS@ +MCA_orte_errmgr_ALL_COMPONENTS = @MCA_orte_errmgr_ALL_COMPONENTS@ +MCA_orte_errmgr_ALL_SUBDIRS = @MCA_orte_errmgr_ALL_SUBDIRS@ +MCA_orte_errmgr_DSO_COMPONENTS = @MCA_orte_errmgr_DSO_COMPONENTS@ +MCA_orte_errmgr_DSO_SUBDIRS = @MCA_orte_errmgr_DSO_SUBDIRS@ +MCA_orte_errmgr_STATIC_COMPONENTS = @MCA_orte_errmgr_STATIC_COMPONENTS@ +MCA_orte_errmgr_STATIC_LTLIBS = @MCA_orte_errmgr_STATIC_LTLIBS@ +MCA_orte_errmgr_STATIC_SUBDIRS = @MCA_orte_errmgr_STATIC_SUBDIRS@ +MCA_orte_ess_ALL_COMPONENTS = @MCA_orte_ess_ALL_COMPONENTS@ +MCA_orte_ess_ALL_SUBDIRS = @MCA_orte_ess_ALL_SUBDIRS@ +MCA_orte_ess_DSO_COMPONENTS = @MCA_orte_ess_DSO_COMPONENTS@ +MCA_orte_ess_DSO_SUBDIRS = @MCA_orte_ess_DSO_SUBDIRS@ +MCA_orte_ess_STATIC_COMPONENTS = @MCA_orte_ess_STATIC_COMPONENTS@ +MCA_orte_ess_STATIC_LTLIBS = @MCA_orte_ess_STATIC_LTLIBS@ +MCA_orte_ess_STATIC_SUBDIRS = @MCA_orte_ess_STATIC_SUBDIRS@ +MCA_orte_filem_ALL_COMPONENTS = @MCA_orte_filem_ALL_COMPONENTS@ +MCA_orte_filem_ALL_SUBDIRS = @MCA_orte_filem_ALL_SUBDIRS@ +MCA_orte_filem_DSO_COMPONENTS = @MCA_orte_filem_DSO_COMPONENTS@ +MCA_orte_filem_DSO_SUBDIRS = @MCA_orte_filem_DSO_SUBDIRS@ +MCA_orte_filem_STATIC_COMPONENTS = @MCA_orte_filem_STATIC_COMPONENTS@ +MCA_orte_filem_STATIC_LTLIBS = @MCA_orte_filem_STATIC_LTLIBS@ +MCA_orte_filem_STATIC_SUBDIRS = @MCA_orte_filem_STATIC_SUBDIRS@ +MCA_orte_grpcomm_ALL_COMPONENTS = @MCA_orte_grpcomm_ALL_COMPONENTS@ +MCA_orte_grpcomm_ALL_SUBDIRS = @MCA_orte_grpcomm_ALL_SUBDIRS@ +MCA_orte_grpcomm_DSO_COMPONENTS = @MCA_orte_grpcomm_DSO_COMPONENTS@ +MCA_orte_grpcomm_DSO_SUBDIRS = @MCA_orte_grpcomm_DSO_SUBDIRS@ +MCA_orte_grpcomm_STATIC_COMPONENTS = @MCA_orte_grpcomm_STATIC_COMPONENTS@ +MCA_orte_grpcomm_STATIC_LTLIBS = @MCA_orte_grpcomm_STATIC_LTLIBS@ +MCA_orte_grpcomm_STATIC_SUBDIRS = @MCA_orte_grpcomm_STATIC_SUBDIRS@ +MCA_orte_iof_ALL_COMPONENTS = @MCA_orte_iof_ALL_COMPONENTS@ +MCA_orte_iof_ALL_SUBDIRS = @MCA_orte_iof_ALL_SUBDIRS@ +MCA_orte_iof_DSO_COMPONENTS = @MCA_orte_iof_DSO_COMPONENTS@ +MCA_orte_iof_DSO_SUBDIRS = @MCA_orte_iof_DSO_SUBDIRS@ +MCA_orte_iof_STATIC_COMPONENTS = @MCA_orte_iof_STATIC_COMPONENTS@ +MCA_orte_iof_STATIC_LTLIBS = @MCA_orte_iof_STATIC_LTLIBS@ +MCA_orte_iof_STATIC_SUBDIRS = @MCA_orte_iof_STATIC_SUBDIRS@ +MCA_orte_odls_ALL_COMPONENTS = @MCA_orte_odls_ALL_COMPONENTS@ +MCA_orte_odls_ALL_SUBDIRS = @MCA_orte_odls_ALL_SUBDIRS@ +MCA_orte_odls_DSO_COMPONENTS = @MCA_orte_odls_DSO_COMPONENTS@ +MCA_orte_odls_DSO_SUBDIRS = @MCA_orte_odls_DSO_SUBDIRS@ +MCA_orte_odls_STATIC_COMPONENTS = @MCA_orte_odls_STATIC_COMPONENTS@ +MCA_orte_odls_STATIC_LTLIBS = @MCA_orte_odls_STATIC_LTLIBS@ +MCA_orte_odls_STATIC_SUBDIRS = @MCA_orte_odls_STATIC_SUBDIRS@ +MCA_orte_oob_ALL_COMPONENTS = @MCA_orte_oob_ALL_COMPONENTS@ +MCA_orte_oob_ALL_SUBDIRS = @MCA_orte_oob_ALL_SUBDIRS@ +MCA_orte_oob_DSO_COMPONENTS = @MCA_orte_oob_DSO_COMPONENTS@ +MCA_orte_oob_DSO_SUBDIRS = @MCA_orte_oob_DSO_SUBDIRS@ +MCA_orte_oob_STATIC_COMPONENTS = @MCA_orte_oob_STATIC_COMPONENTS@ +MCA_orte_oob_STATIC_LTLIBS = @MCA_orte_oob_STATIC_LTLIBS@ +MCA_orte_oob_STATIC_SUBDIRS = @MCA_orte_oob_STATIC_SUBDIRS@ +MCA_orte_plm_ALL_COMPONENTS = @MCA_orte_plm_ALL_COMPONENTS@ +MCA_orte_plm_ALL_SUBDIRS = @MCA_orte_plm_ALL_SUBDIRS@ +MCA_orte_plm_DSO_COMPONENTS = @MCA_orte_plm_DSO_COMPONENTS@ +MCA_orte_plm_DSO_SUBDIRS = @MCA_orte_plm_DSO_SUBDIRS@ +MCA_orte_plm_STATIC_COMPONENTS = @MCA_orte_plm_STATIC_COMPONENTS@ +MCA_orte_plm_STATIC_LTLIBS = @MCA_orte_plm_STATIC_LTLIBS@ +MCA_orte_plm_STATIC_SUBDIRS = @MCA_orte_plm_STATIC_SUBDIRS@ +MCA_orte_ras_ALL_COMPONENTS = @MCA_orte_ras_ALL_COMPONENTS@ +MCA_orte_ras_ALL_SUBDIRS = @MCA_orte_ras_ALL_SUBDIRS@ +MCA_orte_ras_DSO_COMPONENTS = @MCA_orte_ras_DSO_COMPONENTS@ +MCA_orte_ras_DSO_SUBDIRS = @MCA_orte_ras_DSO_SUBDIRS@ +MCA_orte_ras_STATIC_COMPONENTS = @MCA_orte_ras_STATIC_COMPONENTS@ +MCA_orte_ras_STATIC_LTLIBS = @MCA_orte_ras_STATIC_LTLIBS@ +MCA_orte_ras_STATIC_SUBDIRS = @MCA_orte_ras_STATIC_SUBDIRS@ +MCA_orte_regx_ALL_COMPONENTS = @MCA_orte_regx_ALL_COMPONENTS@ +MCA_orte_regx_ALL_SUBDIRS = @MCA_orte_regx_ALL_SUBDIRS@ +MCA_orte_regx_DSO_COMPONENTS = @MCA_orte_regx_DSO_COMPONENTS@ +MCA_orte_regx_DSO_SUBDIRS = @MCA_orte_regx_DSO_SUBDIRS@ +MCA_orte_regx_STATIC_COMPONENTS = @MCA_orte_regx_STATIC_COMPONENTS@ +MCA_orte_regx_STATIC_LTLIBS = @MCA_orte_regx_STATIC_LTLIBS@ +MCA_orte_regx_STATIC_SUBDIRS = @MCA_orte_regx_STATIC_SUBDIRS@ +MCA_orte_rmaps_ALL_COMPONENTS = @MCA_orte_rmaps_ALL_COMPONENTS@ +MCA_orte_rmaps_ALL_SUBDIRS = @MCA_orte_rmaps_ALL_SUBDIRS@ +MCA_orte_rmaps_DSO_COMPONENTS = @MCA_orte_rmaps_DSO_COMPONENTS@ +MCA_orte_rmaps_DSO_SUBDIRS = @MCA_orte_rmaps_DSO_SUBDIRS@ +MCA_orte_rmaps_STATIC_COMPONENTS = @MCA_orte_rmaps_STATIC_COMPONENTS@ +MCA_orte_rmaps_STATIC_LTLIBS = @MCA_orte_rmaps_STATIC_LTLIBS@ +MCA_orte_rmaps_STATIC_SUBDIRS = @MCA_orte_rmaps_STATIC_SUBDIRS@ +MCA_orte_rml_ALL_COMPONENTS = @MCA_orte_rml_ALL_COMPONENTS@ +MCA_orte_rml_ALL_SUBDIRS = @MCA_orte_rml_ALL_SUBDIRS@ +MCA_orte_rml_DSO_COMPONENTS = @MCA_orte_rml_DSO_COMPONENTS@ +MCA_orte_rml_DSO_SUBDIRS = @MCA_orte_rml_DSO_SUBDIRS@ +MCA_orte_rml_STATIC_COMPONENTS = @MCA_orte_rml_STATIC_COMPONENTS@ +MCA_orte_rml_STATIC_LTLIBS = @MCA_orte_rml_STATIC_LTLIBS@ +MCA_orte_rml_STATIC_SUBDIRS = @MCA_orte_rml_STATIC_SUBDIRS@ +MCA_orte_routed_ALL_COMPONENTS = @MCA_orte_routed_ALL_COMPONENTS@ +MCA_orte_routed_ALL_SUBDIRS = @MCA_orte_routed_ALL_SUBDIRS@ +MCA_orte_routed_DSO_COMPONENTS = @MCA_orte_routed_DSO_COMPONENTS@ +MCA_orte_routed_DSO_SUBDIRS = @MCA_orte_routed_DSO_SUBDIRS@ +MCA_orte_routed_STATIC_COMPONENTS = @MCA_orte_routed_STATIC_COMPONENTS@ +MCA_orte_routed_STATIC_LTLIBS = @MCA_orte_routed_STATIC_LTLIBS@ +MCA_orte_routed_STATIC_SUBDIRS = @MCA_orte_routed_STATIC_SUBDIRS@ +MCA_orte_rtc_ALL_COMPONENTS = @MCA_orte_rtc_ALL_COMPONENTS@ +MCA_orte_rtc_ALL_SUBDIRS = @MCA_orte_rtc_ALL_SUBDIRS@ +MCA_orte_rtc_DSO_COMPONENTS = @MCA_orte_rtc_DSO_COMPONENTS@ +MCA_orte_rtc_DSO_SUBDIRS = @MCA_orte_rtc_DSO_SUBDIRS@ +MCA_orte_rtc_STATIC_COMPONENTS = @MCA_orte_rtc_STATIC_COMPONENTS@ +MCA_orte_rtc_STATIC_LTLIBS = @MCA_orte_rtc_STATIC_LTLIBS@ +MCA_orte_rtc_STATIC_SUBDIRS = @MCA_orte_rtc_STATIC_SUBDIRS@ +MCA_orte_schizo_ALL_COMPONENTS = @MCA_orte_schizo_ALL_COMPONENTS@ +MCA_orte_schizo_ALL_SUBDIRS = @MCA_orte_schizo_ALL_SUBDIRS@ +MCA_orte_schizo_DSO_COMPONENTS = @MCA_orte_schizo_DSO_COMPONENTS@ +MCA_orte_schizo_DSO_SUBDIRS = @MCA_orte_schizo_DSO_SUBDIRS@ +MCA_orte_schizo_STATIC_COMPONENTS = @MCA_orte_schizo_STATIC_COMPONENTS@ +MCA_orte_schizo_STATIC_LTLIBS = @MCA_orte_schizo_STATIC_LTLIBS@ +MCA_orte_schizo_STATIC_SUBDIRS = @MCA_orte_schizo_STATIC_SUBDIRS@ +MCA_orte_snapc_ALL_COMPONENTS = @MCA_orte_snapc_ALL_COMPONENTS@ +MCA_orte_snapc_ALL_SUBDIRS = @MCA_orte_snapc_ALL_SUBDIRS@ +MCA_orte_snapc_DSO_COMPONENTS = @MCA_orte_snapc_DSO_COMPONENTS@ +MCA_orte_snapc_DSO_SUBDIRS = @MCA_orte_snapc_DSO_SUBDIRS@ +MCA_orte_snapc_STATIC_COMPONENTS = @MCA_orte_snapc_STATIC_COMPONENTS@ +MCA_orte_snapc_STATIC_LTLIBS = @MCA_orte_snapc_STATIC_LTLIBS@ +MCA_orte_snapc_STATIC_SUBDIRS = @MCA_orte_snapc_STATIC_SUBDIRS@ +MCA_orte_sstore_ALL_COMPONENTS = @MCA_orte_sstore_ALL_COMPONENTS@ +MCA_orte_sstore_ALL_SUBDIRS = @MCA_orte_sstore_ALL_SUBDIRS@ +MCA_orte_sstore_DSO_COMPONENTS = @MCA_orte_sstore_DSO_COMPONENTS@ +MCA_orte_sstore_DSO_SUBDIRS = @MCA_orte_sstore_DSO_SUBDIRS@ +MCA_orte_sstore_STATIC_COMPONENTS = @MCA_orte_sstore_STATIC_COMPONENTS@ +MCA_orte_sstore_STATIC_LTLIBS = @MCA_orte_sstore_STATIC_LTLIBS@ +MCA_orte_sstore_STATIC_SUBDIRS = @MCA_orte_sstore_STATIC_SUBDIRS@ +MCA_orte_state_ALL_COMPONENTS = @MCA_orte_state_ALL_COMPONENTS@ +MCA_orte_state_ALL_SUBDIRS = @MCA_orte_state_ALL_SUBDIRS@ +MCA_orte_state_DSO_COMPONENTS = @MCA_orte_state_DSO_COMPONENTS@ +MCA_orte_state_DSO_SUBDIRS = @MCA_orte_state_DSO_SUBDIRS@ +MCA_orte_state_STATIC_COMPONENTS = @MCA_orte_state_STATIC_COMPONENTS@ +MCA_orte_state_STATIC_LTLIBS = @MCA_orte_state_STATIC_LTLIBS@ +MCA_orte_state_STATIC_SUBDIRS = @MCA_orte_state_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORKS = @MCA_oshmem_FRAMEWORKS@ +MCA_oshmem_FRAMEWORKS_SUBDIRS = @MCA_oshmem_FRAMEWORKS_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORK_LIBS = @MCA_oshmem_FRAMEWORK_LIBS@ +MCA_oshmem_atomic_ALL_COMPONENTS = @MCA_oshmem_atomic_ALL_COMPONENTS@ +MCA_oshmem_atomic_ALL_SUBDIRS = @MCA_oshmem_atomic_ALL_SUBDIRS@ +MCA_oshmem_atomic_DSO_COMPONENTS = @MCA_oshmem_atomic_DSO_COMPONENTS@ +MCA_oshmem_atomic_DSO_SUBDIRS = @MCA_oshmem_atomic_DSO_SUBDIRS@ +MCA_oshmem_atomic_STATIC_COMPONENTS = @MCA_oshmem_atomic_STATIC_COMPONENTS@ +MCA_oshmem_atomic_STATIC_LTLIBS = @MCA_oshmem_atomic_STATIC_LTLIBS@ +MCA_oshmem_atomic_STATIC_SUBDIRS = @MCA_oshmem_atomic_STATIC_SUBDIRS@ +MCA_oshmem_memheap_ALL_COMPONENTS = @MCA_oshmem_memheap_ALL_COMPONENTS@ +MCA_oshmem_memheap_ALL_SUBDIRS = @MCA_oshmem_memheap_ALL_SUBDIRS@ +MCA_oshmem_memheap_DIRECT_CALL_HEADER = @MCA_oshmem_memheap_DIRECT_CALL_HEADER@ +MCA_oshmem_memheap_DSO_COMPONENTS = @MCA_oshmem_memheap_DSO_COMPONENTS@ +MCA_oshmem_memheap_DSO_SUBDIRS = @MCA_oshmem_memheap_DSO_SUBDIRS@ +MCA_oshmem_memheap_STATIC_COMPONENTS = @MCA_oshmem_memheap_STATIC_COMPONENTS@ +MCA_oshmem_memheap_STATIC_LTLIBS = @MCA_oshmem_memheap_STATIC_LTLIBS@ +MCA_oshmem_memheap_STATIC_SUBDIRS = @MCA_oshmem_memheap_STATIC_SUBDIRS@ +MCA_oshmem_scoll_ALL_COMPONENTS = @MCA_oshmem_scoll_ALL_COMPONENTS@ +MCA_oshmem_scoll_ALL_SUBDIRS = @MCA_oshmem_scoll_ALL_SUBDIRS@ +MCA_oshmem_scoll_DSO_COMPONENTS = @MCA_oshmem_scoll_DSO_COMPONENTS@ +MCA_oshmem_scoll_DSO_SUBDIRS = @MCA_oshmem_scoll_DSO_SUBDIRS@ +MCA_oshmem_scoll_STATIC_COMPONENTS = @MCA_oshmem_scoll_STATIC_COMPONENTS@ +MCA_oshmem_scoll_STATIC_LTLIBS = @MCA_oshmem_scoll_STATIC_LTLIBS@ +MCA_oshmem_scoll_STATIC_SUBDIRS = @MCA_oshmem_scoll_STATIC_SUBDIRS@ +MCA_oshmem_spml_ALL_COMPONENTS = @MCA_oshmem_spml_ALL_COMPONENTS@ +MCA_oshmem_spml_ALL_SUBDIRS = @MCA_oshmem_spml_ALL_SUBDIRS@ +MCA_oshmem_spml_DIRECT_CALL_HEADER = @MCA_oshmem_spml_DIRECT_CALL_HEADER@ +MCA_oshmem_spml_DSO_COMPONENTS = @MCA_oshmem_spml_DSO_COMPONENTS@ +MCA_oshmem_spml_DSO_SUBDIRS = @MCA_oshmem_spml_DSO_SUBDIRS@ +MCA_oshmem_spml_STATIC_COMPONENTS = @MCA_oshmem_spml_STATIC_COMPONENTS@ +MCA_oshmem_spml_STATIC_LTLIBS = @MCA_oshmem_spml_STATIC_LTLIBS@ +MCA_oshmem_spml_STATIC_SUBDIRS = @MCA_oshmem_spml_STATIC_SUBDIRS@ +MCA_oshmem_sshmem_ALL_COMPONENTS = @MCA_oshmem_sshmem_ALL_COMPONENTS@ +MCA_oshmem_sshmem_ALL_SUBDIRS = @MCA_oshmem_sshmem_ALL_SUBDIRS@ +MCA_oshmem_sshmem_DSO_COMPONENTS = @MCA_oshmem_sshmem_DSO_COMPONENTS@ +MCA_oshmem_sshmem_DSO_SUBDIRS = @MCA_oshmem_sshmem_DSO_SUBDIRS@ +MCA_oshmem_sshmem_STATIC_COMPONENTS = @MCA_oshmem_sshmem_STATIC_COMPONENTS@ +MCA_oshmem_sshmem_STATIC_LTLIBS = @MCA_oshmem_sshmem_STATIC_LTLIBS@ +MCA_oshmem_sshmem_STATIC_SUBDIRS = @MCA_oshmem_sshmem_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +MPIR_UNWIND_CFLAGS = @MPIR_UNWIND_CFLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPI_ALIGNMENT_FORTRAN_CHARACTER = @OMPI_ALIGNMENT_FORTRAN_CHARACTER@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX16 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX16@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX32 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX32@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX4 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX4@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX8 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX8@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION@ +OMPI_ALIGNMENT_FORTRAN_INTEGER = @OMPI_ALIGNMENT_FORTRAN_INTEGER@ +OMPI_ALIGNMENT_FORTRAN_INTEGER1 = @OMPI_ALIGNMENT_FORTRAN_INTEGER1@ +OMPI_ALIGNMENT_FORTRAN_INTEGER16 = @OMPI_ALIGNMENT_FORTRAN_INTEGER16@ +OMPI_ALIGNMENT_FORTRAN_INTEGER2 = @OMPI_ALIGNMENT_FORTRAN_INTEGER2@ +OMPI_ALIGNMENT_FORTRAN_INTEGER4 = @OMPI_ALIGNMENT_FORTRAN_INTEGER4@ +OMPI_ALIGNMENT_FORTRAN_INTEGER8 = @OMPI_ALIGNMENT_FORTRAN_INTEGER8@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL = @OMPI_ALIGNMENT_FORTRAN_LOGICAL@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL1 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL1@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL2 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL2@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL4 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL4@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL8 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL8@ +OMPI_ALIGNMENT_FORTRAN_REAL = @OMPI_ALIGNMENT_FORTRAN_REAL@ +OMPI_ALIGNMENT_FORTRAN_REAL16 = @OMPI_ALIGNMENT_FORTRAN_REAL16@ +OMPI_ALIGNMENT_FORTRAN_REAL2 = @OMPI_ALIGNMENT_FORTRAN_REAL2@ +OMPI_ALIGNMENT_FORTRAN_REAL4 = @OMPI_ALIGNMENT_FORTRAN_REAL4@ +OMPI_ALIGNMENT_FORTRAN_REAL8 = @OMPI_ALIGNMENT_FORTRAN_REAL8@ +OMPI_CONTRIB_DIST_SUBDIRS = @OMPI_CONTRIB_DIST_SUBDIRS@ +OMPI_CONTRIB_SUBDIRS = @OMPI_CONTRIB_SUBDIRS@ +OMPI_CXX_ABSOLUTE = @OMPI_CXX_ABSOLUTE@ +OMPI_ENABLE_GREQUEST_EXTENSIONS = @OMPI_ENABLE_GREQUEST_EXTENSIONS@ +OMPI_ENABLE_MPI1_COMPAT = @OMPI_ENABLE_MPI1_COMPAT@ +OMPI_F08_SUFFIX = @OMPI_F08_SUFFIX@ +OMPI_FC = @OMPI_FC@ +OMPI_FC_ABSOLUTE = @OMPI_FC_ABSOLUTE@ +OMPI_FC_MODULE_FLAG = @OMPI_FC_MODULE_FLAG@ +OMPI_FORTRAN_BUILD_SIZEOF = @OMPI_FORTRAN_BUILD_SIZEOF@ +OMPI_FORTRAN_CAPS = @OMPI_FORTRAN_CAPS@ +OMPI_FORTRAN_CKINDS = @OMPI_FORTRAN_CKINDS@ +OMPI_FORTRAN_DOUBLE_UNDERSCORE = @OMPI_FORTRAN_DOUBLE_UNDERSCORE@ +OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS = @OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS@ +OMPI_FORTRAN_F08_PREDECL = @OMPI_FORTRAN_F08_PREDECL@ +OMPI_FORTRAN_F08_TYPE = @OMPI_FORTRAN_F08_TYPE@ +OMPI_FORTRAN_HAVE_ABSTRACT = @OMPI_FORTRAN_HAVE_ABSTRACT@ +OMPI_FORTRAN_HAVE_ASYNCHRONOUS = @OMPI_FORTRAN_HAVE_ASYNCHRONOUS@ +OMPI_FORTRAN_HAVE_BIND_C = @OMPI_FORTRAN_HAVE_BIND_C@ +OMPI_FORTRAN_HAVE_C_FUNLOC = @OMPI_FORTRAN_HAVE_C_FUNLOC@ +OMPI_FORTRAN_HAVE_INTERFACE = @OMPI_FORTRAN_HAVE_INTERFACE@ +OMPI_FORTRAN_HAVE_ISO_C_BINDING = @OMPI_FORTRAN_HAVE_ISO_C_BINDING@ +OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV = @OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV@ +OMPI_FORTRAN_HAVE_PRIVATE = @OMPI_FORTRAN_HAVE_PRIVATE@ +OMPI_FORTRAN_HAVE_PROCEDURE = @OMPI_FORTRAN_HAVE_PROCEDURE@ +OMPI_FORTRAN_HAVE_STORAGE_SIZE = @OMPI_FORTRAN_HAVE_STORAGE_SIZE@ +OMPI_FORTRAN_HAVE_USE_ONLY = @OMPI_FORTRAN_HAVE_USE_ONLY@ +OMPI_FORTRAN_IGNORE_TKR_PREDECL = @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ +OMPI_FORTRAN_IGNORE_TKR_TYPE = @OMPI_FORTRAN_IGNORE_TKR_TYPE@ +OMPI_FORTRAN_IKINDS = @OMPI_FORTRAN_IKINDS@ +OMPI_FORTRAN_MAX_ARRAY_RANK = @OMPI_FORTRAN_MAX_ARRAY_RANK@ +OMPI_FORTRAN_NEED_WRAPPER_ROUTINES = @OMPI_FORTRAN_NEED_WRAPPER_ROUTINES@ +OMPI_FORTRAN_PLAIN = @OMPI_FORTRAN_PLAIN@ +OMPI_FORTRAN_RKINDS = @OMPI_FORTRAN_RKINDS@ +OMPI_FORTRAN_SINGLE_UNDERSCORE = @OMPI_FORTRAN_SINGLE_UNDERSCORE@ +OMPI_FORTRAN_STATUS_SIZE = @OMPI_FORTRAN_STATUS_SIZE@ +OMPI_FORTRAN_USEMPIF08_LIB = @OMPI_FORTRAN_USEMPIF08_LIB@ +OMPI_FORTRAN_USEMPI_DIR = @OMPI_FORTRAN_USEMPI_DIR@ +OMPI_FORTRAN_USEMPI_LIB = @OMPI_FORTRAN_USEMPI_LIB@ +OMPI_F_SUFFIX = @OMPI_F_SUFFIX@ +OMPI_GREEK_VERSION = @OMPI_GREEK_VERSION@ +OMPI_HAVE_FORTRAN_CHARACTER = @OMPI_HAVE_FORTRAN_CHARACTER@ +OMPI_HAVE_FORTRAN_COMPLEX = @OMPI_HAVE_FORTRAN_COMPLEX@ +OMPI_HAVE_FORTRAN_COMPLEX16 = @OMPI_HAVE_FORTRAN_COMPLEX16@ +OMPI_HAVE_FORTRAN_COMPLEX32 = @OMPI_HAVE_FORTRAN_COMPLEX32@ +OMPI_HAVE_FORTRAN_COMPLEX4 = @OMPI_HAVE_FORTRAN_COMPLEX4@ +OMPI_HAVE_FORTRAN_COMPLEX8 = @OMPI_HAVE_FORTRAN_COMPLEX8@ +OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX = @OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX@ +OMPI_HAVE_FORTRAN_DOUBLE_PRECISION = @OMPI_HAVE_FORTRAN_DOUBLE_PRECISION@ +OMPI_HAVE_FORTRAN_INTEGER = @OMPI_HAVE_FORTRAN_INTEGER@ +OMPI_HAVE_FORTRAN_INTEGER1 = @OMPI_HAVE_FORTRAN_INTEGER1@ +OMPI_HAVE_FORTRAN_INTEGER16 = @OMPI_HAVE_FORTRAN_INTEGER16@ +OMPI_HAVE_FORTRAN_INTEGER2 = @OMPI_HAVE_FORTRAN_INTEGER2@ +OMPI_HAVE_FORTRAN_INTEGER4 = @OMPI_HAVE_FORTRAN_INTEGER4@ +OMPI_HAVE_FORTRAN_INTEGER8 = @OMPI_HAVE_FORTRAN_INTEGER8@ +OMPI_HAVE_FORTRAN_LOGICAL = @OMPI_HAVE_FORTRAN_LOGICAL@ +OMPI_HAVE_FORTRAN_LOGICAL1 = @OMPI_HAVE_FORTRAN_LOGICAL1@ +OMPI_HAVE_FORTRAN_LOGICAL2 = @OMPI_HAVE_FORTRAN_LOGICAL2@ +OMPI_HAVE_FORTRAN_LOGICAL4 = @OMPI_HAVE_FORTRAN_LOGICAL4@ +OMPI_HAVE_FORTRAN_LOGICAL8 = @OMPI_HAVE_FORTRAN_LOGICAL8@ +OMPI_HAVE_FORTRAN_REAL = @OMPI_HAVE_FORTRAN_REAL@ +OMPI_HAVE_FORTRAN_REAL16 = @OMPI_HAVE_FORTRAN_REAL16@ +OMPI_HAVE_FORTRAN_REAL2 = @OMPI_HAVE_FORTRAN_REAL2@ +OMPI_HAVE_FORTRAN_REAL4 = @OMPI_HAVE_FORTRAN_REAL4@ +OMPI_HAVE_FORTRAN_REAL8 = @OMPI_HAVE_FORTRAN_REAL8@ +OMPI_JDK_CPPFLAGS = @OMPI_JDK_CPPFLAGS@ +OMPI_KIND_FORTRAN_CHARACTER = @OMPI_KIND_FORTRAN_CHARACTER@ +OMPI_KIND_FORTRAN_COMPLEX = @OMPI_KIND_FORTRAN_COMPLEX@ +OMPI_KIND_FORTRAN_COMPLEX16 = @OMPI_KIND_FORTRAN_COMPLEX16@ +OMPI_KIND_FORTRAN_COMPLEX32 = @OMPI_KIND_FORTRAN_COMPLEX32@ +OMPI_KIND_FORTRAN_COMPLEX4 = @OMPI_KIND_FORTRAN_COMPLEX4@ +OMPI_KIND_FORTRAN_COMPLEX8 = @OMPI_KIND_FORTRAN_COMPLEX8@ +OMPI_KIND_FORTRAN_DOUBLE_COMPLEX = @OMPI_KIND_FORTRAN_DOUBLE_COMPLEX@ +OMPI_KIND_FORTRAN_DOUBLE_PRECISION = @OMPI_KIND_FORTRAN_DOUBLE_PRECISION@ +OMPI_KIND_FORTRAN_INTEGER = @OMPI_KIND_FORTRAN_INTEGER@ +OMPI_KIND_FORTRAN_INTEGER1 = @OMPI_KIND_FORTRAN_INTEGER1@ +OMPI_KIND_FORTRAN_INTEGER16 = @OMPI_KIND_FORTRAN_INTEGER16@ +OMPI_KIND_FORTRAN_INTEGER2 = @OMPI_KIND_FORTRAN_INTEGER2@ +OMPI_KIND_FORTRAN_INTEGER4 = @OMPI_KIND_FORTRAN_INTEGER4@ +OMPI_KIND_FORTRAN_INTEGER8 = @OMPI_KIND_FORTRAN_INTEGER8@ +OMPI_KIND_FORTRAN_LOGICAL = @OMPI_KIND_FORTRAN_LOGICAL@ +OMPI_KIND_FORTRAN_LOGICAL1 = @OMPI_KIND_FORTRAN_LOGICAL1@ +OMPI_KIND_FORTRAN_LOGICAL2 = @OMPI_KIND_FORTRAN_LOGICAL2@ +OMPI_KIND_FORTRAN_LOGICAL4 = @OMPI_KIND_FORTRAN_LOGICAL4@ +OMPI_KIND_FORTRAN_LOGICAL8 = @OMPI_KIND_FORTRAN_LOGICAL8@ +OMPI_KIND_FORTRAN_REAL = @OMPI_KIND_FORTRAN_REAL@ +OMPI_KIND_FORTRAN_REAL16 = @OMPI_KIND_FORTRAN_REAL16@ +OMPI_KIND_FORTRAN_REAL2 = @OMPI_KIND_FORTRAN_REAL2@ +OMPI_KIND_FORTRAN_REAL4 = @OMPI_KIND_FORTRAN_REAL4@ +OMPI_KIND_FORTRAN_REAL8 = @OMPI_KIND_FORTRAN_REAL8@ +OMPI_LIBMPI_EXTRA_LDFLAGS = @OMPI_LIBMPI_EXTRA_LDFLAGS@ +OMPI_LIBMPI_EXTRA_LIBS = @OMPI_LIBMPI_EXTRA_LIBS@ +OMPI_LIBMPI_NAME = @OMPI_LIBMPI_NAME@ +OMPI_MAJOR_VERSION = @OMPI_MAJOR_VERSION@ +OMPI_MINOR_VERSION = @OMPI_MINOR_VERSION@ +OMPI_MPIEXT_ALL_SUBDIRS = @OMPI_MPIEXT_ALL_SUBDIRS@ +OMPI_MPIEXT_C_DIRS = @OMPI_MPIEXT_C_DIRS@ +OMPI_MPIEXT_C_LIBS = @OMPI_MPIEXT_C_LIBS@ +OMPI_MPIEXT_MPIFH_DIRS = @OMPI_MPIEXT_MPIFH_DIRS@ +OMPI_MPIEXT_MPIFH_LIBS = @OMPI_MPIEXT_MPIFH_LIBS@ +OMPI_MPIEXT_USEMPIF08_DIRS = @OMPI_MPIEXT_USEMPIF08_DIRS@ +OMPI_MPIEXT_USEMPIF08_LIBS = @OMPI_MPIEXT_USEMPIF08_LIBS@ +OMPI_MPIEXT_USEMPI_DIRS = @OMPI_MPIEXT_USEMPI_DIRS@ +OMPI_MPIEXT_USEMPI_LIBS = @OMPI_MPIEXT_USEMPI_LIBS@ +OMPI_MPI_ADDRESS_KIND = @OMPI_MPI_ADDRESS_KIND@ +OMPI_MPI_BIND_PREFIX = @OMPI_MPI_BIND_PREFIX@ +OMPI_MPI_COUNT_KIND = @OMPI_MPI_COUNT_KIND@ +OMPI_MPI_INTEGER_KIND = @OMPI_MPI_INTEGER_KIND@ +OMPI_MPI_OFFSET_KIND = @OMPI_MPI_OFFSET_KIND@ +OMPI_MPI_PREFIX = @OMPI_MPI_PREFIX@ +OMPI_PKG_CONFIG_LDFLAGS = @OMPI_PKG_CONFIG_LDFLAGS@ +OMPI_RELEASE_DATE = @OMPI_RELEASE_DATE@ +OMPI_RELEASE_VERSION = @OMPI_RELEASE_VERSION@ +OMPI_REPO_REV = @OMPI_REPO_REV@ +OMPI_SIZEOF_FORTRAN_CHARACTER = @OMPI_SIZEOF_FORTRAN_CHARACTER@ +OMPI_SIZEOF_FORTRAN_COMPLEX = @OMPI_SIZEOF_FORTRAN_COMPLEX@ +OMPI_SIZEOF_FORTRAN_COMPLEX16 = @OMPI_SIZEOF_FORTRAN_COMPLEX16@ +OMPI_SIZEOF_FORTRAN_COMPLEX32 = @OMPI_SIZEOF_FORTRAN_COMPLEX32@ +OMPI_SIZEOF_FORTRAN_COMPLEX4 = @OMPI_SIZEOF_FORTRAN_COMPLEX4@ +OMPI_SIZEOF_FORTRAN_COMPLEX8 = @OMPI_SIZEOF_FORTRAN_COMPLEX8@ +OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX = @OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX@ +OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION = @OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION@ +OMPI_SIZEOF_FORTRAN_INTEGER = @OMPI_SIZEOF_FORTRAN_INTEGER@ +OMPI_SIZEOF_FORTRAN_INTEGER1 = @OMPI_SIZEOF_FORTRAN_INTEGER1@ +OMPI_SIZEOF_FORTRAN_INTEGER16 = @OMPI_SIZEOF_FORTRAN_INTEGER16@ +OMPI_SIZEOF_FORTRAN_INTEGER2 = @OMPI_SIZEOF_FORTRAN_INTEGER2@ +OMPI_SIZEOF_FORTRAN_INTEGER4 = @OMPI_SIZEOF_FORTRAN_INTEGER4@ +OMPI_SIZEOF_FORTRAN_INTEGER8 = @OMPI_SIZEOF_FORTRAN_INTEGER8@ +OMPI_SIZEOF_FORTRAN_LOGICAL = @OMPI_SIZEOF_FORTRAN_LOGICAL@ +OMPI_SIZEOF_FORTRAN_LOGICAL1 = @OMPI_SIZEOF_FORTRAN_LOGICAL1@ +OMPI_SIZEOF_FORTRAN_LOGICAL2 = @OMPI_SIZEOF_FORTRAN_LOGICAL2@ +OMPI_SIZEOF_FORTRAN_LOGICAL4 = @OMPI_SIZEOF_FORTRAN_LOGICAL4@ +OMPI_SIZEOF_FORTRAN_LOGICAL8 = @OMPI_SIZEOF_FORTRAN_LOGICAL8@ +OMPI_SIZEOF_FORTRAN_REAL = @OMPI_SIZEOF_FORTRAN_REAL@ +OMPI_SIZEOF_FORTRAN_REAL16 = @OMPI_SIZEOF_FORTRAN_REAL16@ +OMPI_SIZEOF_FORTRAN_REAL2 = @OMPI_SIZEOF_FORTRAN_REAL2@ +OMPI_SIZEOF_FORTRAN_REAL4 = @OMPI_SIZEOF_FORTRAN_REAL4@ +OMPI_SIZEOF_FORTRAN_REAL8 = @OMPI_SIZEOF_FORTRAN_REAL8@ +OMPI_TARBALL_VERSION = @OMPI_TARBALL_VERSION@ +OMPI_TOP_BUILDDIR = @OMPI_TOP_BUILDDIR@ +OMPI_TOP_SRCDIR = @OMPI_TOP_SRCDIR@ +OMPI_VERSION = @OMPI_VERSION@ +OMPI_WRAPPER_CXX_LIB = @OMPI_WRAPPER_CXX_LIB@ +OMPI_WRAPPER_CXX_REQUIRED_FILE = @OMPI_WRAPPER_CXX_REQUIRED_FILE@ +OMPI_WRAPPER_EXTRA_CFLAGS = @OMPI_WRAPPER_EXTRA_CFLAGS@ +OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_CPPFLAGS = @OMPI_WRAPPER_EXTRA_CPPFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS = @OMPI_WRAPPER_EXTRA_CXXFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FCFLAGS = @OMPI_WRAPPER_EXTRA_FCFLAGS@ +OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FC_LDFLAGS = @OMPI_WRAPPER_EXTRA_FC_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LDFLAGS = @OMPI_WRAPPER_EXTRA_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LIBS = @OMPI_WRAPPER_EXTRA_LIBS@ +OMPI_WRAPPER_FORTRAN_REQUIRED_FILE = @OMPI_WRAPPER_FORTRAN_REQUIRED_FILE@ +OMPI_WRAPPER_INCLUDEDIR = @OMPI_WRAPPER_INCLUDEDIR@ +OMPI_WRAPPER_LIBDIR = @OMPI_WRAPPER_LIBDIR@ +OPAL_ASM_GSYM = @OPAL_ASM_GSYM@ +OPAL_ASM_LSYM = @OPAL_ASM_LSYM@ +OPAL_ASM_SUPPORT_64BIT = @OPAL_ASM_SUPPORT_64BIT@ +OPAL_ASM_TEXT = @OPAL_ASM_TEXT@ +OPAL_ASM_TYPE = @OPAL_ASM_TYPE@ +OPAL_ASSEMBLY_ARCH = @OPAL_ASSEMBLY_ARCH@ +OPAL_ASSEMBLY_BUILTIN = @OPAL_ASSEMBLY_BUILTIN@ +OPAL_ASSEMBLY_FORMAT = @OPAL_ASSEMBLY_FORMAT@ +OPAL_AS_GLOBAL = @OPAL_AS_GLOBAL@ +OPAL_AS_LABEL_SUFFIX = @OPAL_AS_LABEL_SUFFIX@ +OPAL_CC_ABSOLUTE = @OPAL_CC_ABSOLUTE@ +OPAL_CONFIGURE_CLI = @OPAL_CONFIGURE_CLI@ +OPAL_CONFIGURE_DATE = @OPAL_CONFIGURE_DATE@ +OPAL_CONFIGURE_HOST = @OPAL_CONFIGURE_HOST@ +OPAL_CONFIGURE_USER = @OPAL_CONFIGURE_USER@ +OPAL_CXX_ABSOLUTE = @OPAL_CXX_ABSOLUTE@ +OPAL_DEFAULT_MCA_PARAM_CONF = @OPAL_DEFAULT_MCA_PARAM_CONF@ +OPAL_DYN_LIB_PREFIX = @OPAL_DYN_LIB_PREFIX@ +OPAL_DYN_LIB_SUFFIX = @OPAL_DYN_LIB_SUFFIX@ +OPAL_GREEK_VERSION = @OPAL_GREEK_VERSION@ +OPAL_LIB_PREFIX = @OPAL_LIB_PREFIX@ +OPAL_MAJOR_VERSION = @OPAL_MAJOR_VERSION@ +OPAL_MAX_DATAREP_STRING = @OPAL_MAX_DATAREP_STRING@ +OPAL_MAX_ERROR_STRING = @OPAL_MAX_ERROR_STRING@ +OPAL_MAX_INFO_KEY = @OPAL_MAX_INFO_KEY@ +OPAL_MAX_INFO_VAL = @OPAL_MAX_INFO_VAL@ +OPAL_MAX_OBJECT_NAME = @OPAL_MAX_OBJECT_NAME@ +OPAL_MAX_PORT_NAME = @OPAL_MAX_PORT_NAME@ +OPAL_MAX_PROCESSOR_NAME = @OPAL_MAX_PROCESSOR_NAME@ +OPAL_MINOR_VERSION = @OPAL_MINOR_VERSION@ +OPAL_PARAM_FROM_PLATFORM = @OPAL_PARAM_FROM_PLATFORM@ +OPAL_PKG_CONFIG_LDFLAGS = @OPAL_PKG_CONFIG_LDFLAGS@ +OPAL_RELEASE_DATE = @OPAL_RELEASE_DATE@ +OPAL_RELEASE_VERSION = @OPAL_RELEASE_VERSION@ +OPAL_REPO_REV = @OPAL_REPO_REV@ +OPAL_TARBALL_VERSION = @OPAL_TARBALL_VERSION@ +OPAL_TOP_BUILDDIR = @OPAL_TOP_BUILDDIR@ +OPAL_TOP_SRCDIR = @OPAL_TOP_SRCDIR@ +OPAL_VERSION = @OPAL_VERSION@ +OPAL_WRAPPER_EXTRA_CFLAGS = @OPAL_WRAPPER_EXTRA_CFLAGS@ +OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_CPPFLAGS = @OPAL_WRAPPER_EXTRA_CPPFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS = @OPAL_WRAPPER_EXTRA_CXXFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_LDFLAGS = @OPAL_WRAPPER_EXTRA_LDFLAGS@ +OPAL_WRAPPER_EXTRA_LIBS = @OPAL_WRAPPER_EXTRA_LIBS@ +ORTE_GREEK_VERSION = @ORTE_GREEK_VERSION@ +ORTE_LIB_PREFIX = @ORTE_LIB_PREFIX@ +ORTE_MAJOR_VERSION = @ORTE_MAJOR_VERSION@ +ORTE_MINOR_VERSION = @ORTE_MINOR_VERSION@ +ORTE_PKG_CONFIG_LDFLAGS = @ORTE_PKG_CONFIG_LDFLAGS@ +ORTE_RELEASE_DATE = @ORTE_RELEASE_DATE@ +ORTE_RELEASE_VERSION = @ORTE_RELEASE_VERSION@ +ORTE_REPO_REV = @ORTE_REPO_REV@ +ORTE_TARBALL_VERSION = @ORTE_TARBALL_VERSION@ +ORTE_TOP_BUILDDIR = @ORTE_TOP_BUILDDIR@ +ORTE_TOP_SRCDIR = @ORTE_TOP_SRCDIR@ +ORTE_VERSION = @ORTE_VERSION@ +ORTE_WRAPPER_EXTRA_CFLAGS = @ORTE_WRAPPER_EXTRA_CFLAGS@ +ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX = @ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX@ +ORTE_WRAPPER_EXTRA_CPPFLAGS = @ORTE_WRAPPER_EXTRA_CPPFLAGS@ +ORTE_WRAPPER_EXTRA_LDFLAGS = @ORTE_WRAPPER_EXTRA_LDFLAGS@ +ORTE_WRAPPER_EXTRA_LIBS = @ORTE_WRAPPER_EXTRA_LIBS@ +OSHMEM_GREEK_VERSION = @OSHMEM_GREEK_VERSION@ +OSHMEM_LIBSHMEM_EXTRA_LDFLAGS = @OSHMEM_LIBSHMEM_EXTRA_LDFLAGS@ +OSHMEM_LIBSHMEM_EXTRA_LIBS = @OSHMEM_LIBSHMEM_EXTRA_LIBS@ +OSHMEM_MAJOR_VERSION = @OSHMEM_MAJOR_VERSION@ +OSHMEM_MINOR_VERSION = @OSHMEM_MINOR_VERSION@ +OSHMEM_RELEASE_DATE = @OSHMEM_RELEASE_DATE@ +OSHMEM_RELEASE_VERSION = @OSHMEM_RELEASE_VERSION@ +OSHMEM_REPO_REV = @OSHMEM_REPO_REV@ +OSHMEM_TARBALL_VERSION = @OSHMEM_TARBALL_VERSION@ +OSHMEM_TOP_BUILDDIR = @OSHMEM_TOP_BUILDDIR@ +OSHMEM_TOP_SRCDIR = @OSHMEM_TOP_SRCDIR@ +OSHMEM_VERSION = @OSHMEM_VERSION@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +QRSH = @QRSH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SINGULARITY = @SINGULARITY@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_FC = @ac_ct_FC@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +atomic_mxm_CFLAGS = @atomic_mxm_CFLAGS@ +atomic_mxm_CPPFLAGS = @atomic_mxm_CPPFLAGS@ +atomic_mxm_LDFLAGS = @atomic_mxm_LDFLAGS@ +atomic_mxm_LIBS = @atomic_mxm_LIBS@ +atomic_ucx_CFLAGS = @atomic_ucx_CFLAGS@ +atomic_ucx_CPPFLAGS = @atomic_ucx_CPPFLAGS@ +atomic_ucx_LDFLAGS = @atomic_ucx_LDFLAGS@ +atomic_ucx_LIBS = @atomic_ucx_LIBS@ +bindir = @bindir@ +btl_openib_CFLAGS = @btl_openib_CFLAGS@ +btl_openib_CPPFLAGS = @btl_openib_CPPFLAGS@ +btl_openib_LDFLAGS = @btl_openib_LDFLAGS@ +btl_openib_LIBS = @btl_openib_LIBS@ +btl_portals4_CPPFLAGS = @btl_portals4_CPPFLAGS@ +btl_portals4_LDFLAGS = @btl_portals4_LDFLAGS@ +btl_portals4_LIBS = @btl_portals4_LIBS@ +btl_uct_CPPFLAGS = @btl_uct_CPPFLAGS@ +btl_uct_LDFLAGS = @btl_uct_LDFLAGS@ +btl_uct_LIBS = @btl_uct_LIBS@ +btl_ugni_CPPFLAGS = @btl_ugni_CPPFLAGS@ +btl_ugni_LDFLAGS = @btl_ugni_LDFLAGS@ +btl_ugni_LIBS = @btl_ugni_LIBS@ +btl_vader_CFLAGS = @btl_vader_CFLAGS@ +btl_vader_CPPFLAGS = @btl_vader_CPPFLAGS@ +btl_vader_LDFLAGS = @btl_vader_LDFLAGS@ +btl_vader_LIBS = @btl_vader_LIBS@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +coll_fca_CFLAGS = @coll_fca_CFLAGS@ +coll_fca_CPPFLAGS = @coll_fca_CPPFLAGS@ +coll_fca_HOME = @coll_fca_HOME@ +coll_fca_LDFLAGS = @coll_fca_LDFLAGS@ +coll_fca_LIBS = @coll_fca_LIBS@ +coll_hcoll_CFLAGS = @coll_hcoll_CFLAGS@ +coll_hcoll_CPPFLAGS = @coll_hcoll_CPPFLAGS@ +coll_hcoll_LDFLAGS = @coll_hcoll_LDFLAGS@ +coll_hcoll_LIBS = @coll_hcoll_LIBS@ +coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ +coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ +coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ +common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ +common_alps_LDFLAGS = @common_alps_LDFLAGS@ +common_alps_LIBS = @common_alps_LIBS@ +common_cuda_CPPFLAGS = @common_cuda_CPPFLAGS@ +common_ucx_CFLAGS = @common_ucx_CFLAGS@ +common_ucx_CPPFLAGS = @common_ucx_CPPFLAGS@ +common_ucx_LDFLAGS = @common_ucx_LDFLAGS@ +common_ucx_LIBS = @common_ucx_LIBS@ +common_verbs_CFLAGS = @common_verbs_CFLAGS@ +common_verbs_CPPFLAGS = @common_verbs_CPPFLAGS@ +common_verbs_LDFLAGS = @common_verbs_LDFLAGS@ +common_verbs_LIBS = @common_verbs_LIBS@ +common_verbs_usnic_CPPFLAGS = @common_verbs_usnic_CPPFLAGS@ +common_verbs_usnic_LDFLAGS = @common_verbs_usnic_LDFLAGS@ +common_verbs_usnic_LIBS = @common_verbs_usnic_LIBS@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +ess_alps_CPPFLAGS = @ess_alps_CPPFLAGS@ +ess_alps_LDFLAGS = @ess_alps_LDFLAGS@ +ess_alps_LIBS = @ess_alps_LIBS@ +ess_lsf_CPPFLAGS = @ess_lsf_CPPFLAGS@ +ess_lsf_LDFLAGS = @ess_lsf_LDFLAGS@ +ess_lsf_LIBS = @ess_lsf_LIBS@ +ess_slurm_CPPFLAGS = @ess_slurm_CPPFLAGS@ +ess_slurm_LDFLAGS = @ess_slurm_LDFLAGS@ +ess_slurm_LIBS = @ess_slurm_LIBS@ +ess_tm_CPPFLAGS = @ess_tm_CPPFLAGS@ +ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ +ess_tm_LIBS = @ess_tm_LIBS@ +exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ +fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ +fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ +fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ +fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ +fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ +fs_lustre_LIBS = @fs_lustre_LIBS@ +fs_pvfs2_CPPFLAGS = @fs_pvfs2_CPPFLAGS@ +fs_pvfs2_LDFLAGS = @fs_pvfs2_LDFLAGS@ +fs_pvfs2_LIBS = @fs_pvfs2_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ +libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ +libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ +libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ +libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ +libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ +libmca_opal_common_verbs_so_version = @libmca_opal_common_verbs_so_version@ +libmca_orte_common_alps_so_version = @libmca_orte_common_alps_so_version@ +libmpi_cxx_so_version = @libmpi_cxx_so_version@ +libmpi_java_so_version = @libmpi_java_so_version@ +libmpi_mpifh_so_version = @libmpi_mpifh_so_version@ +libmpi_so_version = @libmpi_so_version@ +libmpi_usempi_ignore_tkr_so_version = @libmpi_usempi_ignore_tkr_so_version@ +libmpi_usempi_tkr_so_version = @libmpi_usempi_tkr_so_version@ +libmpi_usempif08_so_version = @libmpi_usempif08_so_version@ +libompitrace_so_version = @libompitrace_so_version@ +libopen_pal_so_version = @libopen_pal_so_version@ +libopen_rte_so_version = @libopen_rte_so_version@ +liboshmem_so_version = @liboshmem_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +memory_malloc_solaris_LIBS = @memory_malloc_solaris_LIBS@ +mkdir_p = @mkdir_p@ +mpool_memkind_CPPFLAGS = @mpool_memkind_CPPFLAGS@ +mpool_memkind_LDFLAGS = @mpool_memkind_LDFLAGS@ +mpool_memkind_LIBS = @mpool_memkind_LIBS@ +mtl_portals4_CPPFLAGS = @mtl_portals4_CPPFLAGS@ +mtl_portals4_LDFLAGS = @mtl_portals4_LDFLAGS@ +mtl_portals4_LIBS = @mtl_portals4_LIBS@ +mtl_psm2_CFLAGS = @mtl_psm2_CFLAGS@ +mtl_psm2_CPPFLAGS = @mtl_psm2_CPPFLAGS@ +mtl_psm2_LDFLAGS = @mtl_psm2_LDFLAGS@ +mtl_psm2_LIBS = @mtl_psm2_LIBS@ +mtl_psm_CFLAGS = @mtl_psm_CFLAGS@ +mtl_psm_CPPFLAGS = @mtl_psm_CPPFLAGS@ +mtl_psm_LDFLAGS = @mtl_psm_LDFLAGS@ +mtl_psm_LIBS = @mtl_psm_LIBS@ +odls_alps_CPPFLAGS = @odls_alps_CPPFLAGS@ +odls_alps_LDFLAGS = @odls_alps_LDFLAGS@ +odls_alps_LIBS = @odls_alps_LIBS@ +oldincludedir = @oldincludedir@ +ompidatadir = @ompidatadir@ +ompiincludedir = @ompiincludedir@ +ompilibdir = @ompilibdir@ +oob_alps_CPPFLAGS = @oob_alps_CPPFLAGS@ +oob_alps_LDFLAGS = @oob_alps_LDFLAGS@ +oob_alps_LIBS = @oob_alps_LIBS@ +opal_datatype_cuda_CPPFLAGS = @opal_datatype_cuda_CPPFLAGS@ +opal_dl_dlopen_LIBS = @opal_dl_dlopen_LIBS@ +opal_dl_libltdl_CPPFLAGS = @opal_dl_libltdl_CPPFLAGS@ +opal_dl_libltdl_LDFLAGS = @opal_dl_libltdl_LDFLAGS@ +opal_dl_libltdl_LIBS = @opal_dl_libltdl_LIBS@ +opal_event_external_CPPFLAGS = @opal_event_external_CPPFLAGS@ +opal_event_external_LDFLAGS = @opal_event_external_LDFLAGS@ +opal_event_external_LIBS = @opal_event_external_LIBS@ +opal_hwloc_external_LDFLAGS = @opal_hwloc_external_LDFLAGS@ +opal_hwloc_external_LIBS = @opal_hwloc_external_LIBS@ +opal_hwloc_hwloc201_CFLAGS = @opal_hwloc_hwloc201_CFLAGS@ +opal_hwloc_hwloc201_CPPFLAGS = @opal_hwloc_hwloc201_CPPFLAGS@ +opal_hwloc_hwloc201_LDFLAGS = @opal_hwloc_hwloc201_LDFLAGS@ +opal_hwloc_hwloc201_LIBS = @opal_hwloc_hwloc201_LIBS@ +opal_memchecker_valgrind_CPPFLAGS = @opal_memchecker_valgrind_CPPFLAGS@ +opal_ofi_CPPFLAGS = @opal_ofi_CPPFLAGS@ +opal_ofi_LDFLAGS = @opal_ofi_LDFLAGS@ +opal_ofi_LIBS = @opal_ofi_LIBS@ +opal_pmi1_CPPFLAGS = @opal_pmi1_CPPFLAGS@ +opal_pmi1_LDFLAGS = @opal_pmi1_LDFLAGS@ +opal_pmi1_LIBS = @opal_pmi1_LIBS@ +opal_pmi1_rpath = @opal_pmi1_rpath@ +opal_pmi2_CPPFLAGS = @opal_pmi2_CPPFLAGS@ +opal_pmi2_LDFLAGS = @opal_pmi2_LDFLAGS@ +opal_pmi2_LIBS = @opal_pmi2_LIBS@ +opal_pmi2_rpath = @opal_pmi2_rpath@ +opal_pmix_ext1x_CPPFLAGS = @opal_pmix_ext1x_CPPFLAGS@ +opal_pmix_ext1x_LDFLAGS = @opal_pmix_ext1x_LDFLAGS@ +opal_pmix_ext1x_LIBS = @opal_pmix_ext1x_LIBS@ +opal_pmix_ext2x_CPPFLAGS = @opal_pmix_ext2x_CPPFLAGS@ +opal_pmix_ext2x_LDFLAGS = @opal_pmix_ext2x_LDFLAGS@ +opal_pmix_ext2x_LIBS = @opal_pmix_ext2x_LIBS@ +opal_pmix_ext3x_CPPFLAGS = @opal_pmix_ext3x_CPPFLAGS@ +opal_pmix_ext3x_LDFLAGS = @opal_pmix_ext3x_LDFLAGS@ +opal_pmix_ext3x_LIBS = @opal_pmix_ext3x_LIBS@ +opal_pmix_pmix3x_CPPFLAGS = @opal_pmix_pmix3x_CPPFLAGS@ +opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ +opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ +opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ +opaldatadir = @opaldatadir@ +opalincludedir = @opalincludedir@ +opallibdir = @opallibdir@ +ortedatadir = @ortedatadir@ +orteincludedir = @orteincludedir@ +ortelibdir = @ortelibdir@ +osc_portals4_CPPFLAGS = @osc_portals4_CPPFLAGS@ +osc_portals4_LDFLAGS = @osc_portals4_LDFLAGS@ +osc_portals4_LIBS = @osc_portals4_LIBS@ +osc_ucx_CPPFLAGS = @osc_ucx_CPPFLAGS@ +osc_ucx_LDFLAGS = @osc_ucx_LDFLAGS@ +osc_ucx_LIBS = @osc_ucx_LIBS@ +oshmem_verbs_CFLAGS = @oshmem_verbs_CFLAGS@ +oshmem_verbs_CPPFLAGS = @oshmem_verbs_CPPFLAGS@ +oshmem_verbs_LDFLAGS = @oshmem_verbs_LDFLAGS@ +oshmem_verbs_LIBS = @oshmem_verbs_LIBS@ +oshmemdatadir = @oshmemdatadir@ +oshmemincludedir = @oshmemincludedir@ +oshmemlibdir = @oshmemlibdir@ +pdfdir = @pdfdir@ +plm_alps_CPPFLAGS = @plm_alps_CPPFLAGS@ +plm_alps_LDFLAGS = @plm_alps_LDFLAGS@ +plm_alps_LIBS = @plm_alps_LIBS@ +plm_lsf_CPPFLAGS = @plm_lsf_CPPFLAGS@ +plm_lsf_LDFLAGS = @plm_lsf_LDFLAGS@ +plm_lsf_LIBS = @plm_lsf_LIBS@ +plm_slurm_CPPFLAGS = @plm_slurm_CPPFLAGS@ +plm_slurm_LDFLAGS = @plm_slurm_LDFLAGS@ +plm_slurm_LIBS = @plm_slurm_LIBS@ +plm_tm_CPPFLAGS = @plm_tm_CPPFLAGS@ +plm_tm_LDFLAGS = @plm_tm_LDFLAGS@ +plm_tm_LIBS = @plm_tm_LIBS@ +pmix_alps_CPPFLAGS = @pmix_alps_CPPFLAGS@ +pmix_alps_LDFLAGS = @pmix_alps_LDFLAGS@ +pmix_alps_LIBS = @pmix_alps_LIBS@ +pmix_cray_CPPFLAGS = @pmix_cray_CPPFLAGS@ +pmix_cray_LDFLAGS = @pmix_cray_LDFLAGS@ +pmix_cray_LIBS = @pmix_cray_LIBS@ +pml_ucx_CPPFLAGS = @pml_ucx_CPPFLAGS@ +pml_ucx_LDFLAGS = @pml_ucx_LDFLAGS@ +pml_ucx_LIBS = @pml_ucx_LIBS@ +pml_yalla_CPPFLAGS = @pml_yalla_CPPFLAGS@ +pml_yalla_LDFLAGS = @pml_yalla_LDFLAGS@ +pml_yalla_LIBS = @pml_yalla_LIBS@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +ras_alps_CPPFLAGS = @ras_alps_CPPFLAGS@ +ras_lsf_CPPFLAGS = @ras_lsf_CPPFLAGS@ +ras_lsf_LDFLAGS = @ras_lsf_LDFLAGS@ +ras_lsf_LIBS = @ras_lsf_LIBS@ +ras_slurm_CPPFLAGS = @ras_slurm_CPPFLAGS@ +ras_slurm_LDFLAGS = @ras_slurm_LDFLAGS@ +ras_slurm_LIBS = @ras_slurm_LIBS@ +ras_tm_CPPFLAGS = @ras_tm_CPPFLAGS@ +ras_tm_LDFLAGS = @ras_tm_LDFLAGS@ +ras_tm_LIBS = @ras_tm_LIBS@ +rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ +rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ +rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ +sbindir = @sbindir@ +schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ +schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ +schizo_moab_LDFLAGS = @schizo_moab_LDFLAGS@ +schizo_moab_LIBS = @schizo_moab_LIBS@ +schizo_slurm_CPPFLAGS = @schizo_slurm_CPPFLAGS@ +schizo_slurm_LDFLAGS = @schizo_slurm_LDFLAGS@ +schizo_slurm_LIBS = @schizo_slurm_LIBS@ +scoll_fca_CFLAGS = @scoll_fca_CFLAGS@ +scoll_fca_CPPFLAGS = @scoll_fca_CPPFLAGS@ +scoll_fca_HOME = @scoll_fca_HOME@ +scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ +scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ +sharedstatedir = @sharedstatedir@ +spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ +spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ +spml_ikrit_LDFLAGS = @spml_ikrit_LDFLAGS@ +spml_ikrit_LIBS = @spml_ikrit_LIBS@ +spml_ucx_CFLAGS = @spml_ucx_CFLAGS@ +spml_ucx_CPPFLAGS = @spml_ucx_CPPFLAGS@ +spml_ucx_LDFLAGS = @spml_ucx_LDFLAGS@ +spml_ucx_LIBS = @spml_ucx_LIBS@ +srcdir = @srcdir@ +sshmem_ucx_CFLAGS = @sshmem_ucx_CFLAGS@ +sshmem_ucx_CPPFLAGS = @sshmem_ucx_CPPFLAGS@ +sshmem_ucx_LDFLAGS = @sshmem_ucx_LDFLAGS@ +sshmem_ucx_LIBS = @sshmem_ucx_LIBS@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ucx_CFLAGS = @ucx_CFLAGS@ +ucx_LIBS = @ucx_LIBS@ +ucx_STATIC_LIBS = @ucx_STATIC_LIBS@ +AM_CPPFLAGS = $(opal_ofi_CPPFLAGS) +dist_opaldata_DATA = help-common-ofi.txt + +# Header files +headers = \ + common_ofi.h + + +# Source files +sources = \ + common_ofi.c + + +# As per above, we'll either have an installable or noinst result. +# The installable one should follow the same MCA prefix naming rules +# (i.e., libmca__.la). The noinst one can be named +# whatever it wants, although libmca___noinst.la is +# recommended. + +# To simplify components that link to this library, we will *always* +# have an output libtool library named libmca__.la -- even +# for case 2) described above (i.e., so there's no conditional logic +# necessary in component Makefile.am's that link to this library). +# Hence, if we're creating a noinst version of this library (i.e., +# case 2), we sym link it to the libmca__.la name +# (libtool will do the Right Things under the covers). See the +# all-local and clean-local rules, below, for how this is effected. +lib_LTLIBRARIES = $(am__append_1) +noinst_LTLIBRARIES = $(am__append_2) +comp_inst = lib@OPAL_LIB_PREFIX@mca_common_ofi.la +comp_noinst = lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst.la +lib@OPAL_LIB_PREFIX@mca_common_ofi_la_SOURCES = $(headers) $(sources) +lib@OPAL_LIB_PREFIX@mca_common_ofi_la_LDFLAGS = \ + $(opal_ofi_LDFLAGS) \ + -version-info $(libmca_opal_common_ofi_so_version) + +lib@OPAL_LIB_PREFIX@mca_common_ofi_la_LIBADD = $(opal_ofi_LIBS) +lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_SOURCES = $(headers) $(sources) +lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_LDFLAGS = $(opal_ofi_LDFLAGS) +lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_LIBADD = $(opal_ofi_LIBS) + +# Conditionally install the header files +@WANT_INSTALL_HEADERS_TRUE@opaldir = $(opalincludedir)/$(subdir) +@WANT_INSTALL_HEADERS_TRUE@opal_HEADERS = $(headers) + +# These two rules will sym link the "noinst" libtool library filename +# to the installable libtool library filename in the case where we are +# compiling this component statically (case 2), described above). +V = 0 +OMPI_V_LN_SCOMP = $(ompi__v_LN_SCOMP_$V) +ompi__v_LN_SCOMP_ = $(ompi__v_LN_SCOMP_$AM_DEFAULT_VERBOSITY) +ompi__v_LN_SCOMP_0 = @echo " LN_S " `basename $(comp_inst)`; +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign opal/mca/common/ofi/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign opal/mca/common/ofi/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +lib@OPAL_LIB_PREFIX@mca_common_ofi.la: $(lib@OPAL_LIB_PREFIX@mca_common_ofi_la_OBJECTS) $(lib@OPAL_LIB_PREFIX@mca_common_ofi_la_DEPENDENCIES) $(EXTRA_lib@OPAL_LIB_PREFIX@mca_common_ofi_la_DEPENDENCIES) + $(AM_V_CCLD)$(lib@OPAL_LIB_PREFIX@mca_common_ofi_la_LINK) $(am_lib@OPAL_LIB_PREFIX@mca_common_ofi_la_rpath) $(lib@OPAL_LIB_PREFIX@mca_common_ofi_la_OBJECTS) $(lib@OPAL_LIB_PREFIX@mca_common_ofi_la_LIBADD) $(LIBS) + +lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst.la: $(lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_OBJECTS) $(lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_DEPENDENCIES) $(EXTRA_lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_DEPENDENCIES) + $(AM_V_CCLD)$(lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_LINK) $(am_lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_rpath) $(lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_OBJECTS) $(lib@OPAL_LIB_PREFIX@mca_common_ofi_noinst_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common_ofi.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-dist_opaldataDATA: $(dist_opaldata_DATA) + @$(NORMAL_INSTALL) + @list='$(dist_opaldata_DATA)'; test -n "$(opaldatadir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(opaldatadir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(opaldatadir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(opaldatadir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(opaldatadir)" || exit $$?; \ + done + +uninstall-dist_opaldataDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_opaldata_DATA)'; test -n "$(opaldatadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(opaldatadir)'; $(am__uninstall_files_from_dir) +install-opalHEADERS: $(opal_HEADERS) + @$(NORMAL_INSTALL) + @list='$(opal_HEADERS)'; test -n "$(opaldir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(opaldir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(opaldir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(opaldir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(opaldir)" || exit $$?; \ + done + +uninstall-opalHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(opal_HEADERS)'; test -n "$(opaldir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(opaldir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) all-local +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(opaldatadir)" "$(DESTDIR)$(opaldir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool clean-local \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-dist_opaldataDATA install-opalHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-dist_opaldataDATA uninstall-libLTLIBRARIES \ + uninstall-opalHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \ + clean-generic clean-libLTLIBRARIES clean-libtool clean-local \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-dist_opaldataDATA install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-libLTLIBRARIES \ + install-man install-opalHEADERS install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-dist_opaldataDATA uninstall-libLTLIBRARIES \ + uninstall-opalHEADERS + +.PRECIOUS: Makefile + + +all-local: + $(OMPI_V_LN_SCOMP) if test -z "$(lib_LTLIBRARIES)"; then \ + rm -f "$(comp_inst)"; \ + $(LN_S) "$(comp_noinst)" "$(comp_inst)"; \ + fi + +clean-local: + if test -z "$(lib_LTLIBRARIES)"; then \ + rm -f "$(comp_inst)"; \ + fi + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/opal/mca/common/sm/Makefile.in openmpi-4.1.4/opal/mca/common/sm/Makefile.in --- openmpi-4.0.3/opal/mca/common/sm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/common/sm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -147,6 +147,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -154,6 +156,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -177,6 +180,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -279,6 +283,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -286,6 +291,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -366,6 +372,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -388,9 +395,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -400,6 +411,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -420,6 +432,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -693,6 +706,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1513,6 +1529,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1545,9 +1565,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1568,6 +1597,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1652,9 +1682,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1715,6 +1742,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1728,6 +1758,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/common/ucx/common_ucx.c openmpi-4.1.4/opal/mca/common/ucx/common_ucx.c --- openmpi-4.0.3/opal/mca/common/ucx/common_ucx.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/common/ucx/common_ucx.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,13 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* * Copyright (C) Mellanox Technologies Ltd. 2018. ALL RIGHTS RESERVED. + * Copyright (c) 2019 Intel, Inc. All rights reserved. + * Copyright (c) 2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2021 Triad National Security, LLC. All rights + * reserved. + * Copyright (c) 2022 Google, LLC. All rights reserved. + * Copyright (c) 2022 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -14,20 +22,27 @@ #include "opal/mca/base/mca_base_framework.h" #include "opal/mca/pmix/pmix.h" #include "opal/memoryhooks/memory.h" +#include "opal/util/argv.h" +#include "opal/util/printf.h" #include +#include +#include /***********************************************************************/ extern mca_base_framework_t opal_memory_base_framework; -opal_common_ucx_module_t opal_common_ucx = { - .verbose = 0, +opal_common_ucx_module_t opal_common_ucx = +{ .progress_iterations = 100, - .registered = 0, - .opal_mem_hooks = 0 + .opal_mem_hooks = 1, + .tls = NULL, + .devices = NULL, }; +static opal_mutex_t opal_common_ucx_mutex = OPAL_MUTEX_STATIC_INIT; + static void opal_common_ucx_mem_release_cb(void *buf, size_t length, void *cbdata, bool from_alloc) { @@ -36,32 +51,74 @@ OPAL_DECLSPEC void opal_common_ucx_mca_var_register(const mca_base_component_t *component) { - static int registered = 0; - static int hook_index; - static int verbose_index; - static int progress_index; - if (!registered) { - verbose_index = mca_base_var_register("opal", "opal_common", "ucx", "verbose", - "Verbose level of the UCX components", - MCA_BASE_VAR_TYPE_INT, NULL, 0, - MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_3, - MCA_BASE_VAR_SCOPE_LOCAL, - &opal_common_ucx.verbose); - progress_index = mca_base_var_register("opal", "opal_common", "ucx", "progress_iterations", - "Set number of calls of internal UCX progress " - "calls per opal_progress call", - MCA_BASE_VAR_TYPE_INT, NULL, 0, - MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_3, - MCA_BASE_VAR_SCOPE_LOCAL, - &opal_common_ucx.progress_iterations); - hook_index = mca_base_var_register("opal", "opal_common", "ucx", "opal_mem_hooks", - "Use OPAL memory hooks, instead of UCX internal " - "memory hooks", MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0, - OPAL_INFO_LVL_3, + char *default_tls = "rc_verbs,ud_verbs,rc_mlx5,dc_mlx5,ud_mlx5,cuda_ipc,rocm_ipc"; + char *default_devices = "mlx*"; + int hook_index; + int verbose_index; + int progress_index; + int tls_index; + int devices_index; + + OPAL_THREAD_LOCK(&opal_common_ucx_mutex); + + /* It is harmless to re-register variables so go ahead an re-register. */ + verbose_index = mca_base_var_register("opal", "opal_common", "ucx", "verbose", + "Verbose level of the UCX components", + MCA_BASE_VAR_TYPE_INT, NULL, 0, + MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_3, + MCA_BASE_VAR_SCOPE_LOCAL, &opal_common_ucx.verbose); + progress_index = mca_base_var_register("opal", "opal_common", "ucx", "progress_iterations", + "Set number of calls of internal UCX progress " + "calls per opal_progress call", + MCA_BASE_VAR_TYPE_INT, NULL, 0, + MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_3, MCA_BASE_VAR_SCOPE_LOCAL, - &opal_common_ucx.opal_mem_hooks); - registered = 1; + &opal_common_ucx.progress_iterations); + hook_index = mca_base_var_register("opal", "opal_common", "ucx", "opal_mem_hooks", + "Use OPAL memory hooks, instead of UCX internal " + "memory hooks", + MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0, OPAL_INFO_LVL_3, + MCA_BASE_VAR_SCOPE_LOCAL, + &opal_common_ucx.opal_mem_hooks); + + if (NULL == opal_common_ucx.tls || NULL == *opal_common_ucx.tls) { + // Extra level of string indirection needed to make ompi_info + // happy since it will unload this library before the MCA base + // cleans up the MCA vars. This will cause the string to go + // out of scope unless we place the pointer to it on the heap. + if( NULL == opal_common_ucx.tls ) { + opal_common_ucx.tls = (char **) malloc(sizeof(char *)); + } + *opal_common_ucx.tls = strdup(default_tls); + } + + tls_index = mca_base_var_register( + "opal", "opal_common", "ucx", "tls", + "List of UCX transports which should be supported on the system, to enable " + "selecting the UCX component. Special values: any (any available). " + "A '^' prefix negates the list. " + "For example, in order to exclude on shared memory and TCP transports, " + "please set to '^posix,sysv,self,tcp,cma,knem,xpmem'.", + MCA_BASE_VAR_TYPE_STRING, NULL, 0, + MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_3, + MCA_BASE_VAR_SCOPE_LOCAL, + opal_common_ucx.tls); + + if (NULL == opal_common_ucx.devices || NULL == *opal_common_ucx.devices) { + if( NULL == opal_common_ucx.devices ) { + opal_common_ucx.devices = (char **) malloc(sizeof(char *)); + } + *opal_common_ucx.devices = strdup(default_devices); } + devices_index = mca_base_var_register( + "opal", "opal_common", "ucx", "devices", + "List of device driver pattern names, which, if supported by UCX, will " + "bump its priority above ob1. Special values: any (any available)", + MCA_BASE_VAR_TYPE_STRING, NULL, 0, + MCA_BASE_VAR_FLAG_SETTABLE, OPAL_INFO_LVL_3, + MCA_BASE_VAR_SCOPE_LOCAL, + opal_common_ucx.devices); + if (component) { mca_base_var_register_synonym(verbose_index, component->mca_project_name, component->mca_type_name, @@ -75,7 +132,17 @@ component->mca_type_name, component->mca_component_name, "opal_mem_hooks", 0); + mca_base_var_register_synonym(tls_index, component->mca_project_name, + component->mca_type_name, + component->mca_component_name, + "tls", 0); + mca_base_var_register_synonym(devices_index, component->mca_project_name, + component->mca_type_name, + component->mca_component_name, + "devices", 0); } + + OPAL_THREAD_UNLOCK(&opal_common_ucx_mutex); } OPAL_DECLSPEC void opal_common_ucx_mca_register(void) @@ -123,6 +190,165 @@ opal_output_close(opal_common_ucx.output); } +#if HAVE_DECL_OPEN_MEMSTREAM +static bool opal_common_ucx_check_device(const char *device_name, char **device_list) +{ + char sysfs_driver_link[PATH_MAX]; + char driver_path[PATH_MAX]; + char ib_device_name[NAME_MAX]; + char *driver_name; + char **list_item; + ssize_t ret; + char ib_device_name_fmt[NAME_MAX]; + + /* mlx5_0:1 */ + opal_snprintf(ib_device_name_fmt, sizeof(ib_device_name_fmt), + "%%%u[^:]%%*d", NAME_MAX - 1); + ret = sscanf(device_name, ib_device_name_fmt, &ib_device_name); + if (ret != 1) { + return false; + } + + sysfs_driver_link[sizeof(sysfs_driver_link) - 1] = '\0'; + snprintf(sysfs_driver_link, sizeof(sysfs_driver_link) - 1, + "/sys/class/infiniband/%s/device/driver", ib_device_name); + + ret = readlink(sysfs_driver_link, driver_path, sizeof(driver_path) - 1); + if (ret < 0) { + MCA_COMMON_UCX_VERBOSE(2, "readlink(%s) failed: %s", sysfs_driver_link, + strerror(errno)); + return false; + } + driver_path[ret] = '\0'; /* readlink does not append \0 */ + + driver_name = basename(driver_path); + for (list_item = device_list; *list_item != NULL; ++list_item) { + if (!fnmatch(*list_item, driver_name, 0)) { + MCA_COMMON_UCX_VERBOSE(2, "driver '%s' matched by '%s'", + driver_path, *list_item); + return true; + } + } + + return false; +} +#endif + +OPAL_DECLSPEC opal_common_ucx_support_level_t +opal_common_ucx_support_level(ucp_context_h context) +{ + opal_common_ucx_support_level_t support_level = OPAL_COMMON_UCX_SUPPORT_NONE; + static const char *support_level_names[] = { + [OPAL_COMMON_UCX_SUPPORT_NONE] = "none", + [OPAL_COMMON_UCX_SUPPORT_TRANSPORT] = "transports only", + [OPAL_COMMON_UCX_SUPPORT_DEVICE] = "transports and devices" + }; +#if HAVE_DECL_OPEN_MEMSTREAM + char rsc_tl_name[NAME_MAX], rsc_device_name[NAME_MAX]; + char rsc_name_fmt[NAME_MAX]; + char **tl_list, **device_list, **list_item; + bool is_any_tl, is_any_device; + bool found_tl, negate; + char line[128]; + FILE *stream; + char *buffer; + size_t size; + int ret; +#endif + + is_any_tl = !strcmp(*opal_common_ucx.tls, "any"); + is_any_device = !strcmp(*opal_common_ucx.devices, "any"); + + /* Check for special value "any" */ + if (is_any_tl && is_any_device) { + MCA_COMMON_UCX_VERBOSE(1, "ucx is enabled on any transport or device"); + support_level = OPAL_COMMON_UCX_SUPPORT_DEVICE; + goto out; + } + +#if HAVE_DECL_OPEN_MEMSTREAM + /* Split transports list */ + negate = ('^' == (*opal_common_ucx.tls)[0]); + tl_list = opal_argv_split(*opal_common_ucx.tls + (negate ? 1 : 0), ','); + if (tl_list == NULL) { + MCA_COMMON_UCX_VERBOSE(1, "failed to split tl list '%s', ucx is disabled", + *opal_common_ucx.tls); + goto out; + } + + /* Split devices list */ + device_list = opal_argv_split(*opal_common_ucx.devices, ','); + if (device_list == NULL) { + MCA_COMMON_UCX_VERBOSE(1, "failed to split devices list '%s', ucx is disabled", + *opal_common_ucx.devices); + goto out_free_tl_list; + } + + /* Open memory stream to dump UCX information to */ + stream = open_memstream(&buffer, &size); + if (stream == NULL) { + MCA_COMMON_UCX_VERBOSE(1, "failed to open memory stream for ucx info (%s), " + "ucx is disabled", strerror(errno)); + goto out_free_device_list; + } + + /* Print ucx transports information to the memory stream */ + ucp_context_print_info(context, stream); + + /* "# resource 6 : md 5 dev 4 flags -- rc_verbs/mlx5_0:1" */ + opal_snprintf(rsc_name_fmt, sizeof(rsc_name_fmt), + "# resource %%*d : md %%*d dev %%*d flags -- %%%u[^/ \n\r]/%%%u[^/ \n\r]", + NAME_MAX - 1, NAME_MAX - 1); + + /* Rewind and read transports/devices list from the stream */ + fseek(stream, 0, SEEK_SET); + while ((support_level != OPAL_COMMON_UCX_SUPPORT_DEVICE) && + (fgets(line, sizeof(line), stream) != NULL)) { + ret = sscanf(line, rsc_name_fmt, rsc_tl_name, rsc_device_name); + if (ret != 2) { + continue; + } + + /* Check if 'rsc_tl_name' is found provided list */ + found_tl = is_any_tl; + for (list_item = tl_list; !found_tl && (*list_item != NULL); ++list_item) { + found_tl = !strcmp(*list_item, rsc_tl_name); + } + + /* Check if the transport has a match (either positive or negative) */ + assert(!(is_any_tl && negate)); + if (found_tl != negate) { + if (is_any_device || + opal_common_ucx_check_device(rsc_device_name, device_list)) { + MCA_COMMON_UCX_VERBOSE(2, "%s/%s: matched both transport and device list", + rsc_tl_name, rsc_device_name); + support_level = OPAL_COMMON_UCX_SUPPORT_DEVICE; + } else { + MCA_COMMON_UCX_VERBOSE(2, "%s/%s: matched transport list but not device list", + rsc_tl_name, rsc_device_name); + support_level = OPAL_COMMON_UCX_SUPPORT_TRANSPORT; + } + } else { + MCA_COMMON_UCX_VERBOSE(2, "%s/%s: did not match transport list", + rsc_tl_name, rsc_device_name); + } + } + + MCA_COMMON_UCX_VERBOSE(2, "support level is %s", support_level_names[support_level]); + fclose(stream); + free(buffer); + +out_free_device_list: + opal_argv_free(device_list); +out_free_tl_list: + opal_argv_free(tl_list); +out: +#else + MCA_COMMON_UCX_VERBOSE(2, "open_memstream() was not found, ucx is disabled"); +#endif + return support_level; +} + void opal_common_ucx_empty_complete_cb(void *request, ucs_status_t status) { } @@ -132,24 +358,46 @@ *(int*)fenced = 1; } -void opal_common_ucx_mca_proc_added(void) -{ #if HAVE_DECL_UCM_TEST_EVENTS +static ucs_status_t opal_common_ucx_mca_test_external_events(int events) +{ +#if HAVE_DECL_UCM_TEST_EXTERNAL_EVENTS + return ucm_test_external_events(UCM_EVENT_VM_UNMAPPED); +#else + return ucm_test_events(UCM_EVENT_VM_UNMAPPED); +#endif +} + +static void opal_common_ucx_mca_test_events(void) +{ static int warned = 0; - static char *mem_hooks_suggestion = "Pls try adding --mca opal_common_ucx_opal_mem_hooks 1 " - "to mpirun/oshrun command line to resolve this issue."; + const char *suggestion; ucs_status_t status; if (!warned) { - status = ucm_test_events(UCM_EVENT_VM_UNMAPPED); + if (opal_common_ucx.opal_mem_hooks) { + suggestion = "Please check OPAL memory events infrastructure."; + status = opal_common_ucx_mca_test_external_events(UCM_EVENT_VM_UNMAPPED); + } else { + suggestion = "Pls try adding --mca opal_common_ucx_opal_mem_hooks 1 " + "to mpirun/oshrun command line to resolve this issue."; + status = ucm_test_events(UCM_EVENT_VM_UNMAPPED); + } + if (status != UCS_OK) { MCA_COMMON_UCX_WARN("UCX is unable to handle VM_UNMAP event. " "This may cause performance degradation or data " - "corruption. %s", - opal_common_ucx.opal_mem_hooks ? "" : mem_hooks_suggestion); + "corruption. %s", suggestion); warned = 1; } } +} +#endif + +void opal_common_ucx_mca_proc_added(void) +{ +#if HAVE_DECL_UCM_TEST_EVENTS + opal_common_ucx_mca_test_events(); #endif } diff -Nru openmpi-4.0.3/opal/mca/common/ucx/common_ucx.h openmpi-4.1.4/opal/mca/common/ucx/common_ucx.h --- openmpi-4.0.3/opal/mca/common/ucx/common_ucx.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/common/ucx/common_ucx.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,7 @@ /* * Copyright (c) 2018 Mellanox Technologies. All rights reserved. * All rights reserved. + * Copyright (c) 2022 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -88,6 +89,8 @@ int progress_iterations; int registered; bool opal_mem_hooks; + char **tls; + char **devices; } opal_common_ucx_module_t; typedef struct opal_common_ucx_del_proc { @@ -95,10 +98,23 @@ size_t vpid; } opal_common_ucx_del_proc_t; +typedef enum { + /* No supported transports found (according to configured list of supported + transports) */ + OPAL_COMMON_UCX_SUPPORT_NONE, + + /* Have supported transports but not supported devices */ + OPAL_COMMON_UCX_SUPPORT_TRANSPORT, + + /* Have both supported transports and supported devices */ + OPAL_COMMON_UCX_SUPPORT_DEVICE, +} opal_common_ucx_support_level_t; + extern opal_common_ucx_module_t opal_common_ucx; OPAL_DECLSPEC void opal_common_ucx_mca_register(void); OPAL_DECLSPEC void opal_common_ucx_mca_deregister(void); +OPAL_DECLSPEC opal_common_ucx_support_level_t opal_common_ucx_support_level(ucp_context_h context); OPAL_DECLSPEC void opal_common_ucx_mca_proc_added(void); OPAL_DECLSPEC void opal_common_ucx_empty_complete_cb(void *request, ucs_status_t status); OPAL_DECLSPEC int opal_common_ucx_mca_pmix_fence(ucp_worker_h worker); diff -Nru openmpi-4.0.3/opal/mca/common/ucx/configure.m4 openmpi-4.1.4/opal/mca/common/ucx/configure.m4 --- openmpi-4.0.3/opal/mca/common/ucx/configure.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/common/ucx/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -18,6 +18,8 @@ [common_ucx_happy="yes"], [common_ucx_happy="no"]) + AC_CHECK_DECLS([open_memstream], [], [], [[#include ]]) + AS_IF([test "$common_ucx_happy" = "yes"], [$1], [$2]) diff -Nru openmpi-4.0.3/opal/mca/common/ucx/Makefile.in openmpi-4.1.4/opal/mca/common/ucx/Makefile.in --- openmpi-4.0.3/opal/mca/common/ucx/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/common/ucx/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -115,6 +115,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -122,6 +124,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -145,6 +148,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -247,6 +251,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -254,6 +259,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -334,6 +340,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -356,9 +363,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -368,6 +379,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -388,6 +400,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -673,6 +686,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1493,6 +1509,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1525,9 +1545,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1548,6 +1577,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1632,9 +1662,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1695,6 +1722,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1708,6 +1738,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/common/verbs/Makefile.in openmpi-4.1.4/opal/mca/common/verbs/Makefile.in --- openmpi-4.0.3/opal/mca/common/verbs/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/common/verbs/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -113,6 +113,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -120,6 +122,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -143,6 +146,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -245,6 +249,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -252,6 +257,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -332,6 +338,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -354,9 +361,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -366,6 +377,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -386,6 +398,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -671,6 +684,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1491,6 +1507,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1523,9 +1543,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1546,6 +1575,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1630,9 +1660,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1693,6 +1720,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1706,6 +1736,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/common/verbs_usnic/Makefile.in openmpi-4.1.4/opal/mca/common/verbs_usnic/Makefile.in --- openmpi-4.0.3/opal/mca/common/verbs_usnic/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/common/verbs_usnic/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -110,6 +110,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -117,6 +119,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -140,6 +143,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -242,6 +246,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -249,6 +254,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -329,6 +335,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -351,9 +358,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -363,6 +374,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -383,6 +395,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -647,6 +660,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1467,6 +1483,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1499,9 +1519,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1522,6 +1551,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1606,9 +1636,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1669,6 +1696,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1682,6 +1712,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/compress/bzip/Makefile.in openmpi-4.1.4/opal/mca/compress/bzip/Makefile.in --- openmpi-4.0.3/opal/mca/compress/bzip/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/compress/bzip/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -110,6 +110,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -117,6 +119,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -140,6 +143,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -242,6 +246,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -249,6 +254,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -329,6 +335,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -351,9 +358,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -363,6 +374,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -383,6 +395,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -652,6 +665,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1472,6 +1488,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1504,9 +1524,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1527,6 +1556,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1611,9 +1641,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1674,6 +1701,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1687,6 +1717,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/compress/gzip/Makefile.in openmpi-4.1.4/opal/mca/compress/gzip/Makefile.in --- openmpi-4.0.3/opal/mca/compress/gzip/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/compress/gzip/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -110,6 +110,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -117,6 +119,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -140,6 +143,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -242,6 +246,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -249,6 +254,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -329,6 +335,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -351,9 +358,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -363,6 +374,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -383,6 +395,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -652,6 +665,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1472,6 +1488,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1504,9 +1524,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1527,6 +1556,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1611,9 +1641,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1674,6 +1701,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1687,6 +1717,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/compress/Makefile.in openmpi-4.1.4/opal/mca/compress/Makefile.in --- openmpi-4.0.3/opal/mca/compress/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/compress/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -123,6 +123,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -130,6 +132,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -153,6 +156,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -255,6 +259,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -262,6 +267,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -342,6 +348,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -364,9 +371,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -376,6 +387,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -396,6 +408,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -653,6 +666,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1473,6 +1489,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1505,9 +1525,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1528,6 +1557,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1612,9 +1642,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1675,6 +1702,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1688,6 +1718,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/crs/Makefile.in openmpi-4.1.4/opal/mca/crs/Makefile.in --- openmpi-4.0.3/opal/mca/crs/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/crs/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -151,6 +151,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -158,6 +160,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -181,6 +184,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -283,6 +287,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -290,6 +295,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -370,6 +376,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -392,9 +399,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -404,6 +415,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -424,6 +436,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -684,6 +697,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1504,6 +1520,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1536,9 +1556,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1559,6 +1588,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1643,9 +1673,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1706,6 +1733,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1719,6 +1749,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/crs/none/Makefile.in openmpi-4.1.4/opal/mca/crs/none/Makefile.in --- openmpi-4.0.3/opal/mca/crs/none/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/crs/none/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -113,6 +113,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -120,6 +122,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -143,6 +146,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -245,6 +249,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -252,6 +257,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -332,6 +338,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -354,9 +361,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -366,6 +377,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -386,6 +398,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -655,6 +668,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1475,6 +1491,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1507,9 +1527,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1530,6 +1559,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1614,9 +1644,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1677,6 +1704,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1690,6 +1720,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/crs/self/Makefile.in openmpi-4.1.4/opal/mca/crs/self/Makefile.in --- openmpi-4.0.3/opal/mca/crs/self/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/crs/self/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -117,6 +117,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -124,6 +126,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -147,6 +150,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -249,6 +253,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -256,6 +261,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -336,6 +342,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -358,9 +365,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -370,6 +381,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -390,6 +402,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -659,6 +672,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1479,6 +1495,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1511,9 +1531,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1534,6 +1563,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1618,9 +1648,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1681,6 +1708,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1694,6 +1724,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/dl/dlopen/Makefile.in openmpi-4.1.4/opal/mca/dl/dlopen/Makefile.in --- openmpi-4.0.3/opal/mca/dl/dlopen/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/dl/dlopen/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -609,6 +622,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1429,6 +1445,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1461,9 +1481,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1484,6 +1513,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1568,9 +1598,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1631,6 +1658,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1644,6 +1674,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/dl/libltdl/Makefile.in openmpi-4.1.4/opal/mca/dl/libltdl/Makefile.in --- openmpi-4.0.3/opal/mca/dl/libltdl/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/dl/libltdl/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -610,6 +623,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1430,6 +1446,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1462,9 +1482,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1485,6 +1514,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1569,9 +1599,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1632,6 +1659,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1645,6 +1675,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/dl/Makefile.in openmpi-4.1.4/opal/mca/dl/Makefile.in --- openmpi-4.0.3/opal/mca/dl/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/dl/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -650,6 +663,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1470,6 +1486,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1502,9 +1522,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1525,6 +1554,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1609,9 +1639,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1672,6 +1699,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1685,6 +1715,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/event/external/configure.m4 openmpi-4.1.4/opal/mca/event/external/configure.m4 --- openmpi-4.0.3/opal/mca/event/external/configure.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/event/external/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -6,6 +6,9 @@ # and Technology (RIST). All rights reserved. # # Copyright (c) 2017-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2020 IBM Corporation. All rights reserved. +# Copyright (c) 2021 Amazon.com, Inc. or its affiliates. +# All Rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -83,12 +86,10 @@ AC_MSG_RESULT([found])], [opal_event_libdir_found=no AC_MSG_RESULT([not found])]) - AS_IF([test "$opal_event_libdir_found" = "yes"], - [opal_event_libdir="$with_libevent/lib64"], + AS_IF([test "$opal_event_libdir_found" != "yes"], [AC_MSG_CHECKING([for $with_libevent/lib]) AS_IF([test -d "$with_libevent/lib"], - [AC_MSG_RESULT([found]) - opal_event_libdir="$with_libevent/lib"], + [AC_MSG_RESULT([found])], [AC_MSG_RESULT([not found]) AC_MSG_WARN([Library directories were not found:]) AC_MSG_WARN([ $with_libevent/lib64]) @@ -107,7 +108,7 @@ OPAL_CHECK_PACKAGE([opal_event_external], [event2/event.h], - [event], + [event_core], [event_config_new], [-levent_pthreads], [$opal_event_dir], @@ -115,12 +116,41 @@ [opal_event_external_support=yes], [opal_event_external_support=no]) + # Check to see if the above check failed because it conflicted with LSF's libevent.so + # This can happen if LSF's library is in the LDFLAGS envar or default search + # path. The 'event_getcode4name' function is only defined in LSF's libevent.so and not + # in Libevent's libevent.so + AS_IF([test "$opal_event_external_support" = "no"], + [AC_CHECK_LIB([event], [event_getcode4name], + [AC_MSG_WARN([===================================================================]) + AC_MSG_WARN([Possible conflicting libevent.so libraries detected on the system.]) + AC_MSG_WARN([]) + AC_MSG_WARN([LSF provides a libevent.so that is not from Libevent in its]) + AC_MSG_WARN([library path. It is possible that you have installed Libevent]) + AC_MSG_WARN([on the system, but the linker is picking up the wrong version.]) + AC_MSG_WARN([]) + AC_MSG_WARN([Configure may continue and attempt to use the 'internal' libevent]) + AC_MSG_WARN([instead of the 'external' libevent if you did not explicitly request]) + AC_MSG_WARN([the 'external' component.]) + AC_MSG_WARN([]) + AC_MSG_WARN([If your intention was to use the 'external' libevent then you need]) + AC_MSG_WARN([to address this linker path ordering issue. One way to do so is]) + AC_MSG_WARN([to make sure the libevent system library path occurs before the]) + AC_MSG_WARN([LSF library path.]) + AC_MSG_WARN([===================================================================]) + opal_event_external_support=no + ]) + ]) + + AS_IF([test "$opal_event_external_support" = "yes"], + [LDFLAGS="$opal_event_external_LDFLAGS $LDFLAGS" + CPPFLAGS="$opal_event_external_CPPFLAGS $CPPFLAGS"]) + AS_IF([test "$opal_event_external_support" = "yes"], [# Ensure that this libevent has the symbol # "evthread_set_lock_callbacks", which will only exist if # libevent was configured with thread support. - LIBS="$opal_event_external_LDFLAGS $LIBS" - AC_CHECK_LIB([event], [evthread_set_lock_callbacks], + AC_CHECK_LIB([event_core], [evthread_set_lock_callbacks], [], [AC_MSG_WARN([External libevent does not have thread support]) AC_MSG_WARN([Open MPI requires libevent to be compiled with]) diff -Nru openmpi-4.0.3/opal/mca/event/external/Makefile.in openmpi-4.1.4/opal/mca/event/external/Makefile.in --- openmpi-4.0.3/opal/mca/event/external/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/event/external/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -112,6 +112,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -119,6 +121,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -142,6 +145,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -244,6 +248,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -251,6 +256,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -331,6 +337,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -353,9 +360,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -365,6 +376,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -385,6 +397,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -640,6 +653,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1460,6 +1476,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1492,9 +1512,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1515,6 +1544,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1599,9 +1629,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1662,6 +1689,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1675,6 +1705,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/event/libevent2022/libevent/config.guess openmpi-4.1.4/opal/mca/event/libevent2022/libevent/config.guess --- openmpi-4.0.3/opal/mca/event/libevent2022/libevent/config.guess 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/event/libevent2022/libevent/config.guess 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2021 Free Software Foundation, Inc. -timestamp='2014-11-04' +timestamp='2021-01-25' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -27,19 +27,19 @@ # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess # # Please send patches to . -me=`echo "$0" | sed -e 's,.*/,,'` +me=$(echo "$0" | sed -e 's,.*/,,') usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -50,7 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -84,8 +84,6 @@ exit 1 fi -trap 'exit 1' 1 2 15 - # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a @@ -96,66 +94,89 @@ # Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039 + { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$driver" + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then +if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown +UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown +UNAME_RELEASE=$( (uname -r) 2>/dev/null) || UNAME_RELEASE=unknown +UNAME_SYSTEM=$( (uname -s) 2>/dev/null) || UNAME_SYSTEM=unknown +UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in +case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu + LIBC=unknown - eval $set_cc_for_build - cat <<-EOF > $dummy.c + set_cc_for_build + cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc - #else + #elif defined(__GLIBC__) LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -167,22 +188,32 @@ # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)) + case "$UNAME_MACHINE_ARCH" in + aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + earmv*) + arch=$(echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,') + endian=$(echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p') + machine="${arch}${endian}"-unknown + ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -197,117 +228,137 @@ os=netbsd ;; esac + # Determine ABI tags. + case "$UNAME_MACHINE_ARCH" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=$(echo "$UNAME_MACHINE_ARCH" | sed -e "$expr") + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=$(echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2) ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "$machine-${os}${release}${abi-}" exit ;; *:Bitrig:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//') + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//') + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//') + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" exit ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" + exit ;; + *:OS108:*:*) + echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:Sortix:*:*) + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Twizzler:*:*) + echo "$UNAME_MACHINE"-unknown-twizzler + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $3}') ;; *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $4}') ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + ALPHA_CPU_TYPE=$(/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1) case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + echo "$UNAME_MACHINE"-dec-osf"$(echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos + echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos + echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition @@ -319,7 +370,7 @@ echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} + echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos @@ -329,7 +380,7 @@ exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then + if test "$( (/bin/universe) 2>/dev/null)" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd @@ -342,69 +393,69 @@ echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in + case $(/usr/bin/uname -p) in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$UNAME_MACHINE"-ibm-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" exit ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-hal-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} + echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" + set_cc_for_build + SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then - SUN_ARCH="x86_64" + SUN_ARCH=x86_64 fi fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$SUN_ARCH"-pc-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris3"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" exit ;; sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in + case "$(/usr/bin/arch -k)" in Series*|S4*) - UNAME_RELEASE=`uname -v` + UNAME_RELEASE=$(uname -v) ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + echo sparc-sun-sunos"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/')" exit ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" exit ;; sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in + UNAME_RELEASE=$( (sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null) + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case "$(/bin/arch)" in sun3) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" ;; sun4) - echo sparc-sun-sunos${UNAME_RELEASE} + echo sparc-sun-sunos"$UNAME_RELEASE" ;; esac exit ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} + echo sparc-auspex-sunos"$UNAME_RELEASE" exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not @@ -415,44 +466,44 @@ # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} + echo m68k-milan-mint"$UNAME_RELEASE" exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} + echo m68k-hades-mint"$UNAME_RELEASE" exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} + echo m68k-unknown-mint"$UNAME_RELEASE" exit ;; m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} + echo m68k-apple-machten"$UNAME_RELEASE" exit ;; powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} + echo powerpc-apple-machten"$UNAME_RELEASE" exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} + echo mips-dec-ultrix"$UNAME_RELEASE" exit ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} + echo vax-dec-ultrix"$UNAME_RELEASE" exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} + echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { @@ -461,23 +512,23 @@ #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=$(echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p') && + SYSTEM_NAME=$("$dummy" "$dummyarg") && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} + echo mips-mips-riscos"$UNAME_RELEASE" exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax @@ -502,18 +553,18 @@ exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + UNAME_PROCESSOR=$(/usr/bin/uname -p) + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x then - echo m88k-dg-dgux${UNAME_RELEASE} + echo m88k-dg-dgux"$UNAME_RELEASE" else - echo m88k-dg-dguxbcs${UNAME_RELEASE} + echo m88k-dg-dguxbcs"$UNAME_RELEASE" fi else - echo i586-dg-dgux${UNAME_RELEASE} + echo i586-dg-dgux"$UNAME_RELEASE" fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) @@ -530,26 +581,26 @@ echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + echo mips-sgi-irix"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/g')" exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + exit ;; # Note that: echo "'$(uname -s)'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if test -x /usr/bin/oslevel ; then + IBM_REV=$(/usr/bin/oslevel) else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #include main() @@ -560,7 +611,7 @@ exit(0); } EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") then echo "$SYSTEM_NAME" else @@ -573,28 +624,28 @@ fi exit ;; *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_CPU_ID=$(/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }') + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi - if [ -x /usr/bin/lslpp ] ; then - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | - awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + if test -x /usr/bin/lslpp ; then + IBM_REV=$(/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/) else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx @@ -609,28 +660,28 @@ echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; + HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + if test -x /usr/bin/getconf; then + sc_cpu_version=$(/usr/bin/getconf SC_CPU_VERSION 2>/dev/null) + sc_kernel_bits=$(/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null) + case "$sc_cpu_version" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + case "$sc_kernel_bits" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include @@ -663,13 +714,13 @@ exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=$("$dummy") test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if test "$HP_ARCH" = hppa2.0w then - eval $set_cc_for_build + set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -680,23 +731,23 @@ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" exit ;; ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} + HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') + echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #include int main () @@ -721,11 +772,11 @@ exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) @@ -734,17 +785,17 @@ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk + if test -x /usr/sbin/sysversion ; then + echo "$UNAME_MACHINE"-unknown-osf1mk else - echo ${UNAME_MACHINE}-unknown-osf1 + echo "$UNAME_MACHINE"-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) @@ -769,130 +820,123 @@ echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + FUJITSU_PROC=$(uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz) + FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') + FUJITSU_REL=$(echo "$UNAME_RELEASE" | sed -e 's/ /_/') echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') + FUJITSU_REL=$(echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/') echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" exit ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} + echo sparc-unknown-bsdi"$UNAME_RELEASE" exit ;; *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" + exit ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=$(uname -p) + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabi + else + echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabihf + fi exit ;; *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in + UNAME_PROCESSOR=$(/usr/bin/uname -p) + case "$UNAME_PROCESSOR" in amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" exit ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin + echo "$UNAME_MACHINE"-pc-cygwin exit ;; *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 + echo "$UNAME_MACHINE"-pc-mingw64 exit ;; *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 + echo "$UNAME_MACHINE"-pc-mingw32 exit ;; *:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 + echo "$UNAME_MACHINE"-pc-msys exit ;; i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 + echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case "$UNAME_MACHINE" in x86) - echo i586-pc-interix${UNAME_RELEASE} + echo i586-pc-interix"$UNAME_RELEASE" exit ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} + echo x86_64-unknown-interix"$UNAME_RELEASE" exit ;; IA64) - echo ia64-unknown-interix${UNAME_RELEASE} + echo ia64-unknown-interix"$UNAME_RELEASE" exit ;; esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin + echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin + echo x86_64-pc-cygwin exit ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo powerpcle-unknown-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo "$(echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,')-unknown-$LIBC$(echo "$UNAME_RELEASE"|sed -e 's,/.*$,,')" exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo "$UNAME_MACHINE-unknown-$(echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]")$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')-$LIBC" exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix + *:Minix:*:*) + echo "$UNAME_MACHINE"-unknown-minix exit ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + case $(sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null) in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; @@ -902,129 +946,182 @@ EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) - eval $set_cc_for_build + set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + e2k:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + k1om:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el + MIPS_ENDIAN=el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} + MIPS_ENDIAN= #else - CPU= + MIPS_ENDIAN= #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI')" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; + mips64el:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-${LIBC} + echo or1k-unknown-linux-"$LIBC" exit ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} + echo sparc-unknown-linux-"$LIBC" exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} + echo hppa64-unknown-linux-"$LIBC" exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; + case $(grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2) in + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} + echo powerpc64-unknown-linux-"$LIBC" exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} + echo powerpc-unknown-linux-"$LIBC" exit ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} + echo powerpc64le-unknown-linux-"$LIBC" exit ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} + echo powerpcle-unknown-linux-"$LIBC" + exit ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI="$LIBC"x32 + fi + fi + echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI" exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1038,51 +1135,51 @@ # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx + echo "$UNAME_MACHINE"-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop + echo "$UNAME_MACHINE"-unknown-stop exit ;; i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos + echo "$UNAME_MACHINE"-unknown-atheos exit ;; i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable + echo "$UNAME_MACHINE"-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} + echo i386-unknown-lynxos"$UNAME_RELEASE" exit ;; i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp + echo "$UNAME_MACHINE"-pc-msdosdjgpp exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + i*86:*:4.*:*) + UNAME_REL=$(echo "$UNAME_RELEASE" | sed 's/\/MP$//') if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in + case $(/bin/uname -X | grep "^Machine") in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + UNAME_REL=$( (/bin/uname -X|grep Release|sed -e 's/.*= //')) (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 @@ -1090,9 +1187,9 @@ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv32 + echo "$UNAME_MACHINE"-pc-sysv32 fi exit ;; pc:*:*:*) @@ -1100,7 +1197,7 @@ # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that + # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; @@ -1112,9 +1209,9 @@ exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) @@ -1132,41 +1229,41 @@ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} + echo m68k-unknown-lynxos"$UNAME_RELEASE" exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} + echo sparc-unknown-lynxos"$UNAME_RELEASE" exit ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} + echo rs6000-unknown-lynxos"$UNAME_RELEASE" exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} + echo powerpc-unknown-lynxos"$UNAME_RELEASE" exit ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} + echo mips-dde-sysv"$UNAME_RELEASE" exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 @@ -1176,8 +1273,8 @@ exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 + UNAME_MACHINE=$( (uname -p) 2>/dev/null) + echo "$UNAME_MACHINE"-sni-sysv4 else echo ns32k-sni-sysv fi @@ -1197,23 +1294,23 @@ exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos + echo "$UNAME_MACHINE"-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} + echo m68k-apple-aux"$UNAME_RELEASE" exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + if test -d /usr/nec; then + echo mips-nec-sysv"$UNAME_RELEASE" else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv"$UNAME_RELEASE" fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. @@ -1232,77 +1329,97 @@ echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} + echo sx4-nec-superux"$UNAME_RELEASE" exit ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} + echo sx5-nec-superux"$UNAME_RELEASE" exit ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} + echo sx6-nec-superux"$UNAME_RELEASE" exit ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} + echo sx7-nec-superux"$UNAME_RELEASE" exit ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} + echo sx8-nec-superux"$UNAME_RELEASE" exit ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} + echo sx8r-nec-superux"$UNAME_RELEASE" + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux"$UNAME_RELEASE" exit ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} + echo powerpc-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" + exit ;; + arm64:Darwin:*:*) + echo aarch64-apple-darwin"$UNAME_RELEASE" exit ;; *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc - fi - if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi + UNAME_PROCESSOR=$(uname -p) + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc fi elif test "$UNAME_PROCESSOR" = i386 ; then - # Avoid executing cc on OS X 10.9, as it ships with a stub - # that puts up a graphical alert prompting to install - # developer tools. Any system running Mac OS X 10.7 or - # later (Darwin 11 and later) is required to have a 64-bit - # processor. This is not true of the ARM version of Darwin - # that Apple uses in portable devices. - UNAME_PROCESSOR=x86_64 + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=$(uname -p) + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; - NEO-?:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" exit ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} + echo nse-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux @@ -1311,18 +1428,19 @@ echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + # shellcheck disable=SC2154 + if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi - echo ${UNAME_MACHINE}-unknown-plan9 + echo "$UNAME_MACHINE"-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 @@ -1343,14 +1461,14 @@ echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux"$UNAME_RELEASE" exit ;; *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + echo "$UNAME_MACHINE"-unknown-dragonfly"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" exit ;; *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in + UNAME_MACHINE=$( (uname -p) 2>/dev/null) + case "$UNAME_MACHINE" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; @@ -1359,62 +1477,223 @@ echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + echo "$UNAME_MACHINE"-pc-skyos"$(echo "$UNAME_RELEASE" | sed -e 's/ .*$//')" exit ;; i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos + echo "$UNAME_MACHINE"-pc-rdos exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros + *:AROS:*:*) + echo "$UNAME_MACHINE"-unknown-aros exit ;; x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx + echo "$UNAME_MACHINE"-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; + *:Unleashed:*:*) + echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" exit ;; esac +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=$( (hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null); + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=$($dummy) && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 < in order to provide the needed -information to handle your system. +year=$(echo $timestamp | sed 's,-.*,,') +# shellcheck disable=SC2003 +if test "$(expr "$(date +%Y)" - "$year")" -lt 3 ; then + cat >&2 </dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} +uname -m = $( (uname -m) 2>/dev/null || echo unknown) +uname -r = $( (uname -r) 2>/dev/null || echo unknown) +uname -s = $( (uname -s) 2>/dev/null || echo unknown) +uname -v = $( (uname -v) 2>/dev/null || echo unknown) + +/usr/bin/uname -p = $( (/usr/bin/uname -p) 2>/dev/null) +/bin/uname -X = $( (/bin/uname -X) 2>/dev/null) + +hostinfo = $( (hostinfo) 2>/dev/null) +/bin/universe = $( (/bin/universe) 2>/dev/null) +/usr/bin/arch -k = $( (/usr/bin/arch -k) 2>/dev/null) +/bin/arch = $( (/bin/arch) 2>/dev/null) +/usr/bin/oslevel = $( (/usr/bin/oslevel) 2>/dev/null) +/usr/convex/getsysinfo = $( (/usr/convex/getsysinfo) 2>/dev/null) + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" EOF +fi exit 1 # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff -Nru openmpi-4.0.3/opal/mca/event/libevent2022/libevent/config.sub openmpi-4.1.4/opal/mca/event/libevent2022/libevent/config.sub --- openmpi-4.0.3/opal/mca/event/libevent2022/libevent/config.sub 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/event/libevent2022/libevent/config.sub 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2021 Free Software Foundation, Inc. -timestamp='2014-12-03' +timestamp='2021-01-08' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -33,7 +33,7 @@ # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -50,15 +50,14 @@ # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. -me=`echo "$0" | sed -e 's,.*/,,'` +me=$(echo "$0" | sed -e 's,.*/,,') usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -68,7 +67,7 @@ version="\ GNU config.sub ($timestamp) -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -90,12 +89,12 @@ - ) # Use stdin as input. break ;; -* ) - echo "$me: invalid option $1$help" + echo "$me: invalid option $1$help" >&2 exit 1 ;; *local*) # First pass through any local machine types. - echo $1 + echo "$1" exit ;; * ) @@ -111,1228 +110,1169 @@ exit 1;; esac -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 - ;; - -lynx*) - os=-lynxos +# Split fields of configuration type +# shellcheck disable=SC2162 +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac ;; - -psos*) - os=-psos + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac ;; esac -# Decode aliases for certain CPU-COMPANY combinations. +# Decode 1-component or ad-hoc basic machines case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | epiphany \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pyramid \ - | riscv32 | riscv64 \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | visium \ - | we32k \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - leon|leon[3-9]) - basic_machine=sparc-$basic_machine - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + op50n) + cpu=hppa1.1 + vendor=oki ;; - ms1) - basic_machine=mt-unknown + op60c) + cpu=hppa1.1 + vendor=oki ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown + ibm*) + cpu=i370 + vendor=ibm ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none + orion105) + cpu=clipper + vendor=highlevel ;; - xscaleeb) - basic_machine=armeb-unknown + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple ;; - - xscaleel) - basic_machine=armel-unknown + pmac | pmac-mpw) + cpu=powerpc + vendor=apple ;; - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pyramid-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | visium-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att + cpu=m68000 + vendor=att ;; 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux + cpu=we32k + vendor=att ;; bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec + cpu=powerpc + vendor=ibm + basic_os=cnk ;; decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 + cpu=pdp10 + vendor=dec + basic_os=tops10 ;; decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 + cpu=pdp10 + vendor=dec + basic_os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon + cpu=m68k + vendor=motorola ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 ;; encore | umax | mmax) - basic_machine=ns32k-encore + cpu=ns32k + vendor=encore ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} ;; fx2800) - basic_machine=i860-alliant + cpu=i860 + vendor=alliant ;; genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 + cpu=ns32k + vendor=ns ;; h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp + cpu=m68000 + vendor=hp ;; hp9k3[2-9][0-9]) - basic_machine=m68k-hp + cpu=m68k + vendor=hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm + cpu=hppa1.0 + vendor=hp ;; i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=sysv32 ;; i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=sysv4 ;; i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=sysv ;; i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} ;; iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) + cpu=mips + vendor=sgi + case $basic_os in + irix*) ;; *) - os=-irix4 + basic_os=irix4 ;; esac ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - leon-*|leon[3-9]-*) - basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + cpu=m68000 + vendor=convergent ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - moxiebox) - basic_machine=moxie-unknown - os=-moxiebox - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint ;; news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) ;; - -ns2*) - os=-nextstep2 + ns2*) + basic_os=nextstep2 ;; *) - os=-nextstep3 + basic_os=nextstep3 ;; esac ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem + cpu=np1 + vendor=gould ;; op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k + cpu=hppa1.1 + vendor=oki + basic_os=proelf ;; pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 ;; pbd) - basic_machine=sparc-tti + cpu=sparc + vendor=tti ;; pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + cpu=m68k + vendor=tti ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc + pc532) + cpu=ns32k + vendor=pc532 ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc + pn) + cpu=pn + vendor=gould ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + power) + cpu=power + vendor=ibm ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ps2) + cpu=i386 + vendor=ibm ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + rm[46]00) + cpu=mips + vendor=siemens ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + rtpc | rtpc-*) + cpu=romp + vendor=ibm ;; - pn) - basic_machine=pn-gould + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks ;; - power) basic_machine=power-ibm + tower | tower-32) + cpu=m68k + vendor=ncr ;; - ppc | ppcbe) basic_machine=powerpc-unknown + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + w65) + cpu=w65 + vendor=wdc ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + none) + cpu=none + vendor=none ;; - ppc64) basic_machine=powerpc64-unknown + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + leon-*|leon[3-9]-*) + cpu=sparc + vendor=$(echo "$basic_machine" | sed 's/-.*//') ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown + + *-*) + # shellcheck disable=SC2162 + IFS="-" read cpu vendor <&2 - exit 1 + # Recognize the canonical CPU types that are allowed with any + # company name. + case $cpu in + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | abacus \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ + | alphapca5[67] | alpha64pca5[67] \ + | am33_2.0 \ + | amdgcn \ + | arc | arceb \ + | arm | arm[lb]e | arme[lb] | armv* \ + | avr | avr32 \ + | asmjs \ + | ba \ + | be32 | be64 \ + | bfin | bpf | bs2000 \ + | c[123]* | c30 | [cjt]90 | c4x \ + | c8051 | clipper | craynv | csky | cydra \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | elxsi | epiphany \ + | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ + | h8300 | h8500 \ + | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i*86 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | loongarch32 | loongarch64 | loongarchx32 \ + | m32c | m32r | m32rle \ + | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ + | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ + | m88110 | m88k | maxq | mb | mcore | mep | metag \ + | microblaze | microblazeel \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64eb | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mmix \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nfp \ + | nios | nios2 | nios2eb | nios2el \ + | none | np1 | ns16k | ns32k | nvptx \ + | open8 \ + | or1k* \ + | or32 \ + | orion \ + | picochip \ + | pdp10 | pdp11 | pj | pjl | pn | power \ + | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ + | pru \ + | pyramid \ + | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ + | rl78 | romp | rs6000 | rx \ + | s390 | s390x \ + | score \ + | sh | shl \ + | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ + | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ + | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ + | spu \ + | tahoe \ + | thumbv7* \ + | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ + | tron \ + | ubicom32 \ + | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ + | vax \ + | visium \ + | w65 \ + | wasm32 | wasm64 \ + | we32k \ + | x86 | x86_64 | xc16x | xgate | xps100 \ + | xstormy16 | xtensa* \ + | ymp \ + | z8k | z80) + ;; + + *) + echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 + exit 1 + ;; + esac ;; esac # Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` +case $vendor in + digital*) + vendor=dec ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + commodore*) + vendor=cbm ;; *) ;; @@ -1340,200 +1280,213 @@ # Decode manufacturer-specific aliases for certain operating systems. -if [ x"$os" != x"" ] +if test x$basic_os != x then + +# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=$(echo $basic_os | sed -e 's|gnu/linux|gnu|') + ;; + os2-emx) + kernel=os2 + os=$(echo $basic_os | sed -e 's|os2-emx|emx|') + ;; + nto-qnx*) + kernel=nto + os=$(echo $basic_os | sed -e 's|nto-qnx|qnx|') + ;; + *-*) + # shellcheck disable=SC2162 + IFS="-" read kernel os <&2 - exit 1 + # No normalization, but not necessarily accepted, that comes below. ;; esac + else # Here we handle the default operating systems that come with various machines. @@ -1546,261 +1499,361 @@ # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. -case $basic_machine in +kernel= +case $cpu-$vendor in score-*) - os=-elf + os=elf ;; spu-*) - os=-elf + os=elf ;; *-acorn) - os=-riscix1.2 + os=riscix1.2 ;; arm*-rebel) - os=-linux + kernel=linux + os=gnu ;; arm*-semi) - os=-aout + os=aout ;; c4x-* | tic4x-*) - os=-coff + os=coff ;; c8051-*) - os=-elf + os=elf + ;; + clipper-intergraph) + os=clix ;; hexagon-*) - os=-elf + os=elf ;; tic54x-*) - os=-coff + os=coff ;; tic55x-*) - os=-coff + os=coff ;; tic6x-*) - os=-coff + os=coff ;; # This must come before the *-dec entry. pdp10-*) - os=-tops20 + os=tops20 ;; pdp11-*) - os=-none + os=none ;; *-dec | vax-*) - os=-ultrix4.2 + os=ultrix4.2 ;; m68*-apollo) - os=-domain + os=domain ;; i386-sun) - os=-sunos4.0.2 + os=sunos4.0.2 ;; m68000-sun) - os=-sunos3 + os=sunos3 ;; m68*-cisco) - os=-aout + os=aout ;; mep-*) - os=-elf + os=elf ;; mips*-cisco) - os=-elf + os=elf ;; mips*-*) - os=-elf + os=elf ;; or32-*) - os=-coff + os=coff ;; *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 + os=sysv3 ;; sparc-* | *-sun) - os=-sunos4.1.1 + os=sunos4.1.1 ;; - *-be) - os=-beos + pru-*) + os=elf ;; - *-haiku) - os=-haiku + *-be) + os=beos ;; *-ibm) - os=-aix + os=aix ;; *-knuth) - os=-mmixware + os=mmixware ;; *-wec) - os=-proelf + os=proelf ;; *-winbond) - os=-proelf + os=proelf ;; *-oki) - os=-proelf + os=proelf ;; *-hp) - os=-hpux + os=hpux ;; *-hitachi) - os=-hiux + os=hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv + os=sysv ;; *-cbm) - os=-amigaos + os=amigaos ;; *-dg) - os=-dgux + os=dgux ;; *-dolphin) - os=-sysv3 + os=sysv3 ;; m68k-ccur) - os=-rtu + os=rtu ;; m88k-omron*) - os=-luna + os=luna ;; - *-next ) - os=-nextstep + *-next) + os=nextstep ;; *-sequent) - os=-ptx + os=ptx ;; *-crds) - os=-unos + os=unos ;; *-ns) - os=-genix + os=genix ;; i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 + os=mvs ;; *-gould) - os=-sysv + os=sysv ;; *-highlevel) - os=-bsd + os=bsd ;; *-encore) - os=-bsd + os=bsd ;; *-sgi) - os=-irix + os=irix ;; *-siemens) - os=-sysv4 + os=sysv4 ;; *-masscomp) - os=-rtu + os=rtu ;; f30[01]-fujitsu | f700-fujitsu) - os=-uxpv + os=uxpv ;; *-rom68k) - os=-coff + os=coff ;; *-*bug) - os=-coff + os=coff ;; *-apple) - os=-macos + os=macos ;; *-atari*) - os=-mint + os=mint + ;; + *-wrs) + os=vxworks ;; *) - os=-none + os=none ;; esac + fi +# Now, validate our (potentially fixed-up) OS. +case $os in + # Sometimes we do "kernel-libc", so those need to count as OSes. + musl* | newlib* | uclibc*) + ;; + # Likewise for "kernel-abi" + eabi* | gnueabi*) + ;; + # VxWorks passes extra cpu info in the 4th filed. + simlinux | simwindows | spe) + ;; + # Now accept the basic system types. + # The portable systems comes first. + # Each alternative MUST end in a * to match a version number. + gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ + | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ + | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ + | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ + | hiux* | abug | nacl* | netware* | windows* \ + | os9* | macos* | osx* | ios* \ + | mpw* | magic* | mmixware* | mon960* | lnews* \ + | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ + | aos* | aros* | cloudabi* | sortix* | twizzler* \ + | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ + | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ + | mirbsd* | netbsd* | dicos* | openedition* | ose* \ + | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \ + | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ + | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ + | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ + | udi* | lites* | ieee* | go32* | aux* | hcos* \ + | chorusrdb* | cegcc* | glidix* \ + | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ + | midipix* | mingw32* | mingw64* | mint* \ + | uxpv* | beos* | mpeix* | udk* | moxiebox* \ + | interix* | uwin* | mks* | rhapsody* | darwin* \ + | openstep* | oskit* | conix* | pw32* | nonstopux* \ + | storm-chaos* | tops10* | tenex* | tops20* | its* \ + | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ + | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ + | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ + | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*) + ;; + # This one is extra strict with allowed versions + sco3.2v2 | sco3.2v[4-9]* | sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + ;; + none) + ;; + *) + echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) vendor=acorn ;; - -sunos*) + *-sunos*) vendor=sun ;; - -cnk*|-aix*) + *-cnk* | *-aix*) vendor=ibm ;; - -beos*) + *-beos*) vendor=be ;; - -hpux*) + *-hpux*) vendor=hp ;; - -mpeix*) + *-mpeix*) vendor=hp ;; - -hiux*) + *-hiux*) vendor=hitachi ;; - -unos*) + *-unos*) vendor=crds ;; - -dgux*) + *-dgux*) vendor=dg ;; - -luna*) + *-luna*) vendor=omron ;; - -genix*) + *-genix*) vendor=ns ;; - -mvs* | -opened*) + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) vendor=ibm ;; - -os400*) + s390-* | s390x-*) vendor=ibm ;; - -ptx*) + *-ptx*) vendor=sequent ;; - -tpf*) + *-tpf*) vendor=ibm ;; - -vxsim* | -vxworks* | -windiss*) + *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; - -aux*) + *-aux*) vendor=apple ;; - -hms*) + *-hms*) vendor=hitachi ;; - -mpw* | -macos*) + *-mpw* | *-macos*) vendor=apple ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; - -vos*) + *-vos*) vendor=stratus ;; esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac -echo $basic_machine$os +echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff -Nru openmpi-4.0.3/opal/mca/event/libevent2022/libevent/configure openmpi-4.1.4/opal/mca/event/libevent2022/libevent/configure --- openmpi-4.0.3/opal/mca/event/libevent2022/libevent/configure 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/event/libevent2022/libevent/configure 2022-05-29 09:51:40.000000000 +0000 @@ -8200,16 +8200,13 @@ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[91]*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - 10.[012][,.]*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*) + darwin*) + # Open MPI patched for Darwin / MacOS Big Sur. See + # http://lists.gnu.org/archive/html/bug-libtool/2015-07/msg00001.html + case ${MACOSX_DEPLOYMENT_TARGET},$host in + 10.[012],*|,*powerpc*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + *) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; diff -Nru openmpi-4.0.3/opal/mca/event/libevent2022/Makefile.in openmpi-4.1.4/opal/mca/event/libevent2022/Makefile.in --- openmpi-4.0.3/opal/mca/event/libevent2022/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/event/libevent2022/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -154,6 +154,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -161,6 +163,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -184,6 +187,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -286,6 +290,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -293,6 +298,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -373,6 +379,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -395,9 +402,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -407,6 +418,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -427,6 +439,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -762,6 +775,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1582,6 +1598,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1614,9 +1634,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1637,6 +1666,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1721,9 +1751,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1784,6 +1811,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1797,6 +1827,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/event/Makefile.in openmpi-4.1.4/opal/mca/event/Makefile.in --- openmpi-4.0.3/opal/mca/event/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/event/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -117,6 +117,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -124,6 +126,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -147,6 +150,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -249,6 +253,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -256,6 +261,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -336,6 +342,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -358,9 +365,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -370,6 +381,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -390,6 +402,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -645,6 +658,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1465,6 +1481,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1497,9 +1517,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1520,6 +1549,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1604,9 +1634,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1667,6 +1694,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1680,6 +1710,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/hwloc/base/hwloc_base_util.c openmpi-4.1.4/opal/mca/hwloc/base/hwloc_base_util.c --- openmpi-4.0.3/opal/mca/hwloc/base/hwloc_base_util.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/hwloc/base/hwloc_base_util.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,15 +13,16 @@ * Copyright (c) 2011-2018 Cisco Systems, Inc. All rights reserved * Copyright (c) 2012-2017 Los Alamos National Security, LLC. * All rights reserved. - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015-2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (C) 2018 Mellanox Technologies, Ltd. + * Copyright (C) 2018 Mellanox Technologies, Ltd. * All rights reserved. * Copyright (c) 2018 Amazon.com, Inc. or its affiliates. All Rights reserved. * Copyright (c) 2019 IBM Corporation. All rights reserved. * Copyright (c) 2019-2020 Inria. All rights reserved. * Copyright (c) 2020 Triad National Security, LLC. All rights reserved. + * Copyright (c) 2021 Nanook Consulting. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -355,6 +356,13 @@ OPAL_MODEX_RECV_VALUE_IMMEDIATE(rc, OPAL_PMIX_HWLOC_XML_V1, &wildcard_rank, &val, OPAL_STRING); #endif + + if (rc != OPAL_SUCCESS) { + /* check the old topo key to keep compatibility with older RMs */ + OPAL_MODEX_RECV_VALUE_OPTIONAL(rc, OPAL_PMIX_LOCAL_TOPO, + &wildcard_rank, &val, OPAL_STRING); + } + } else { opal_output_verbose(1, opal_hwloc_base_framework.framework_output, "hwloc:base PMIx not available"); @@ -366,13 +374,15 @@ "hwloc:base loading topology from XML"); /* load the topology */ if (0 != hwloc_topology_init(&opal_hwloc_topology)) { + /* we can't recover from this error */ free(val); return OPAL_ERROR; } if (0 != hwloc_topology_set_xmlbuffer(opal_hwloc_topology, val, strlen(val)+1)) { + /* default to discovery */ free(val); hwloc_topology_destroy(opal_hwloc_topology); - return OPAL_ERROR; + goto discover; } /* since we are loading this from an external source, we have to * explicitly set a flag so hwloc sets things up correctly @@ -380,15 +390,17 @@ if (0 != opal_hwloc_base_topology_set_flags(opal_hwloc_topology, HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM, true)) { + /* default to discovery */ hwloc_topology_destroy(opal_hwloc_topology); free(val); - return OPAL_ERROR; + goto discover; } /* now load the topology */ if (0 != hwloc_topology_load(opal_hwloc_topology)) { + /* default to discovery */ hwloc_topology_destroy(opal_hwloc_topology); free(val); - return OPAL_ERROR; + goto discover; } free(val); /* filter the cpus thru any default cpu set */ @@ -397,6 +409,7 @@ return rc; } } else if (NULL == opal_hwloc_base_topo_file) { + discover: opal_output_verbose(1, opal_hwloc_base_framework.framework_output, "hwloc:base discovering topology"); if (0 != hwloc_topology_init(&opal_hwloc_topology) || @@ -2305,7 +2318,7 @@ } else if (2 == index) { srch = "L2"; } else { - srch = "L0"; + srch = "L1"; } break; #else @@ -2316,7 +2329,7 @@ srch = "L2"; break; case HWLOC_OBJ_L1CACHE: - srch = "L0"; + srch = "L1"; break; #endif case HWLOC_OBJ_CORE: diff -Nru openmpi-4.0.3/opal/mca/hwloc/external/Makefile.in openmpi-4.1.4/opal/mca/hwloc/external/Makefile.in --- openmpi-4.0.3/opal/mca/hwloc/external/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/hwloc/external/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -115,6 +115,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -122,6 +124,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -145,6 +148,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -247,6 +251,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -254,6 +259,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -334,6 +340,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -356,9 +363,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -368,6 +379,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -388,6 +400,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -645,6 +658,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1465,6 +1481,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1497,9 +1517,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1520,6 +1549,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1604,9 +1634,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1667,6 +1694,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1680,6 +1710,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/hwloc/hwloc201/hwloc/hwloc/Makefile.in openmpi-4.1.4/opal/mca/hwloc/hwloc201/hwloc/hwloc/Makefile.in --- openmpi-4.0.3/opal/mca/hwloc/hwloc201/hwloc/hwloc/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/hwloc/hwloc201/hwloc/hwloc/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -138,6 +138,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -145,6 +147,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -168,6 +171,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -270,6 +274,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -277,6 +282,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -357,6 +363,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -379,9 +386,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -391,6 +402,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -411,6 +423,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -797,6 +810,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1617,6 +1633,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1649,9 +1669,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1672,6 +1701,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1756,9 +1786,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1819,6 +1846,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1832,6 +1862,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/hwloc/hwloc201/hwloc/include/Makefile.in openmpi-4.1.4/opal/mca/hwloc/hwloc201/hwloc/include/Makefile.in --- openmpi-4.0.3/opal/mca/hwloc/hwloc201/hwloc/include/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/hwloc/hwloc201/hwloc/include/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,6 +116,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -123,6 +125,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -146,6 +149,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -248,6 +252,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -255,6 +260,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -335,6 +341,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -357,9 +364,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -369,6 +380,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -389,6 +401,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -626,6 +639,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1446,6 +1462,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1478,9 +1498,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1501,6 +1530,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1585,9 +1615,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1648,6 +1675,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1661,6 +1691,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/hwloc/hwloc201/hwloc/Makefile.in openmpi-4.1.4/opal/mca/hwloc/hwloc201/hwloc/Makefile.in --- openmpi-4.0.3/opal/mca/hwloc/hwloc201/hwloc/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/hwloc/hwloc201/hwloc/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -655,6 +668,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1475,6 +1491,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1507,9 +1527,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1530,6 +1559,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1614,9 +1644,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1677,6 +1704,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1690,6 +1720,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/hwloc/hwloc201/Makefile.in openmpi-4.1.4/opal/mca/hwloc/hwloc201/Makefile.in --- openmpi-4.0.3/opal/mca/hwloc/hwloc201/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/hwloc/hwloc201/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -731,6 +744,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1551,6 +1567,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1583,9 +1603,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1606,6 +1635,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1690,9 +1720,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1753,6 +1780,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1766,6 +1796,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/hwloc/Makefile.in openmpi-4.1.4/opal/mca/hwloc/Makefile.in --- openmpi-4.0.3/opal/mca/hwloc/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/hwloc/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -652,6 +665,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1472,6 +1488,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1504,9 +1524,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1527,6 +1556,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1611,9 +1641,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1674,6 +1701,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1687,6 +1717,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/if/bsdx_ipv4/Makefile.in openmpi-4.1.4/opal/mca/if/bsdx_ipv4/Makefile.in --- openmpi-4.0.3/opal/mca/if/bsdx_ipv4/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/if/bsdx_ipv4/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -107,6 +107,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -114,6 +116,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -137,6 +140,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -239,6 +243,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -246,6 +251,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -326,6 +332,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -348,9 +355,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -360,6 +371,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -380,6 +392,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -601,6 +614,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1421,6 +1437,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1453,9 +1473,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1476,6 +1505,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1560,9 +1590,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1623,6 +1650,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1636,6 +1666,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/if/bsdx_ipv6/if_bsdx_ipv6.c openmpi-4.1.4/opal/mca/if/bsdx_ipv6/if_bsdx_ipv6.c --- openmpi-4.0.3/opal/mca/if/bsdx_ipv6/if_bsdx_ipv6.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/if/bsdx_ipv6/if_bsdx_ipv6.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,8 @@ /* * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018 Amazon.com, Inc. or its affiliates. All Rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -36,23 +38,7 @@ #include #endif #ifdef HAVE_NET_IF_H -#if defined(__APPLE__) && defined(_LP64) -/* Apple engineering suggested using options align=power as a - workaround for a bug in OS X 10.4 (Tiger) that prevented ioctl(..., - SIOCGIFCONF, ...) from working properly in 64 bit mode on Power PC. - It turns out that the underlying issue is the size of struct - ifconf, which the kernel expects to be 12 and natural 64 bit - alignment would make 16. The same bug appears in 64 bit mode on - Intel macs, but align=power is a no-op there, so instead, use the - pack pragma to instruct the compiler to pack on 4 byte words, which - has the same effect as align=power for our needs and works on both - Intel and Power PC Macs. */ -#pragma pack(push,4) -#endif #include -#if defined(__APPLE__) && defined(_LP64) -#pragma pack(pop) -#endif #endif #ifdef HAVE_NETDB_H #include diff -Nru openmpi-4.0.3/opal/mca/if/bsdx_ipv6/Makefile.in openmpi-4.1.4/opal/mca/if/bsdx_ipv6/Makefile.in --- openmpi-4.0.3/opal/mca/if/bsdx_ipv6/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/if/bsdx_ipv6/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -107,6 +107,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -114,6 +116,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -137,6 +140,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -239,6 +243,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -246,6 +251,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -326,6 +332,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -348,9 +355,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -360,6 +371,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -380,6 +392,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -601,6 +614,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1421,6 +1437,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1453,9 +1473,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1476,6 +1505,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1560,9 +1590,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1623,6 +1650,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1636,6 +1666,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/if/if.h openmpi-4.1.4/opal/mca/if/if.h --- openmpi-4.0.3/opal/mca/if/if.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/if/if.h 2022-05-29 09:51:40.000000000 +0000 @@ -3,6 +3,8 @@ * Copyright (c) 2010-2013 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. + * Copyright (c) 2018 Amazon.com, Inc. or its affiliates. All Rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -39,23 +41,7 @@ #include #endif #ifdef HAVE_NET_IF_H -#if defined(__APPLE__) && defined(_LP64) -/* Apple engineering suggested using options align=power as a - workaround for a bug in OS X 10.4 (Tiger) that prevented ioctl(..., - SIOCGIFCONF, ...) from working properly in 64 bit mode on Power PC. - It turns out that the underlying issue is the size of struct - ifconf, which the kernel expects to be 12 and natural 64 bit - alignment would make 16. The same bug appears in 64 bit mode on - Intel macs, but align=power is a no-op there, so instead, use the - pack pragma to instruct the compiler to pack on 4 byte words, which - has the same effect as align=power for our needs and works on both - Intel and Power PC Macs. */ -#pragma pack(push,4) -#endif #include -#if defined(__APPLE__) && defined(_LP64) -#pragma pack(pop) -#endif #endif #ifdef HAVE_NETDB_H #include diff -Nru openmpi-4.0.3/opal/mca/if/linux_ipv6/if_linux_ipv6.c openmpi-4.1.4/opal/mca/if/linux_ipv6/if_linux_ipv6.c --- openmpi-4.0.3/opal/mca/if/linux_ipv6/if_linux_ipv6.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/if/linux_ipv6/if_linux_ipv6.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,8 @@ /* * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018 Amazon.com, Inc. or its affiliates. All Rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -34,23 +36,7 @@ #include #endif #ifdef HAVE_NET_IF_H -#if defined(__APPLE__) && defined(_LP64) -/* Apple engineering suggested using options align=power as a - workaround for a bug in OS X 10.4 (Tiger) that prevented ioctl(..., - SIOCGIFCONF, ...) from working properly in 64 bit mode on Power PC. - It turns out that the underlying issue is the size of struct - ifconf, which the kernel expects to be 12 and natural 64 bit - alignment would make 16. The same bug appears in 64 bit mode on - Intel macs, but align=power is a no-op there, so instead, use the - pack pragma to instruct the compiler to pack on 4 byte words, which - has the same effect as align=power for our needs and works on both - Intel and Power PC Macs. */ -#pragma pack(push,4) -#endif #include -#if defined(__APPLE__) && defined(_LP64) -#pragma pack(pop) -#endif #endif #ifdef HAVE_NETDB_H #include diff -Nru openmpi-4.0.3/opal/mca/if/linux_ipv6/Makefile.in openmpi-4.1.4/opal/mca/if/linux_ipv6/Makefile.in --- openmpi-4.0.3/opal/mca/if/linux_ipv6/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/if/linux_ipv6/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -107,6 +107,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -114,6 +116,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -137,6 +140,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -239,6 +243,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -246,6 +251,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -326,6 +332,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -348,9 +355,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -360,6 +371,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -380,6 +392,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -602,6 +615,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1422,6 +1438,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1454,9 +1474,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1477,6 +1506,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1561,9 +1591,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1624,6 +1651,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1637,6 +1667,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/if/Makefile.in openmpi-4.1.4/opal/mca/if/Makefile.in --- openmpi-4.0.3/opal/mca/if/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/if/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -117,6 +117,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -124,6 +126,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -147,6 +150,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -249,6 +253,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -256,6 +261,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -336,6 +342,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -358,9 +365,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -370,6 +381,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -390,6 +402,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -645,6 +658,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1465,6 +1481,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1497,9 +1517,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1520,6 +1549,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1604,9 +1634,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1667,6 +1694,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1680,6 +1710,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/if/posix_ipv4/Makefile.in openmpi-4.1.4/opal/mca/if/posix_ipv4/Makefile.in --- openmpi-4.0.3/opal/mca/if/posix_ipv4/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/if/posix_ipv4/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -107,6 +107,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -114,6 +116,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -137,6 +140,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -239,6 +243,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -246,6 +251,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -326,6 +332,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -348,9 +355,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -360,6 +371,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -380,6 +392,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -602,6 +615,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1422,6 +1438,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1454,9 +1474,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1477,6 +1506,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1561,9 +1591,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1624,6 +1651,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1637,6 +1667,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/if/solaris_ipv6/Makefile.in openmpi-4.1.4/opal/mca/if/solaris_ipv6/Makefile.in --- openmpi-4.0.3/opal/mca/if/solaris_ipv6/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/if/solaris_ipv6/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -107,6 +107,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -114,6 +116,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -137,6 +140,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -239,6 +243,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -246,6 +251,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -326,6 +332,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -348,9 +355,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -360,6 +371,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -380,6 +392,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -602,6 +615,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1422,6 +1438,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1454,9 +1474,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1477,6 +1506,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1561,9 +1591,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1624,6 +1651,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1637,6 +1667,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/installdirs/config/Makefile.in openmpi-4.1.4/opal/mca/installdirs/config/Makefile.in --- openmpi-4.0.3/opal/mca/installdirs/config/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/installdirs/config/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -111,6 +111,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -118,6 +120,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -141,6 +144,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -243,6 +247,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -250,6 +255,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -330,6 +336,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -352,9 +359,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -364,6 +375,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -384,6 +396,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -610,6 +623,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1430,6 +1446,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1462,9 +1482,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1485,6 +1514,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1569,9 +1599,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1632,6 +1659,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1645,6 +1675,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/installdirs/env/Makefile.in openmpi-4.1.4/opal/mca/installdirs/env/Makefile.in --- openmpi-4.0.3/opal/mca/installdirs/env/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/installdirs/env/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -110,6 +110,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -117,6 +119,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -140,6 +143,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -242,6 +246,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -249,6 +254,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -329,6 +335,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -351,9 +358,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -363,6 +374,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -383,6 +395,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -605,6 +618,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1425,6 +1441,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1457,9 +1477,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1480,6 +1509,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1564,9 +1594,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1627,6 +1654,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1640,6 +1670,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/installdirs/Makefile.in openmpi-4.1.4/opal/mca/installdirs/Makefile.in --- openmpi-4.0.3/opal/mca/installdirs/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/installdirs/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -650,6 +663,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1470,6 +1486,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1502,9 +1522,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1525,6 +1554,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1609,9 +1639,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1672,6 +1699,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1685,6 +1715,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/memchecker/Makefile.in openmpi-4.1.4/opal/mca/memchecker/Makefile.in --- openmpi-4.0.3/opal/mca/memchecker/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/memchecker/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -651,6 +664,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1471,6 +1487,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1503,9 +1523,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1526,6 +1555,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1610,9 +1640,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1673,6 +1700,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1686,6 +1716,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/memchecker/valgrind/Makefile.in openmpi-4.1.4/opal/mca/memchecker/valgrind/Makefile.in --- openmpi-4.0.3/opal/mca/memchecker/valgrind/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/memchecker/valgrind/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -110,6 +110,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -117,6 +119,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -140,6 +143,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -242,6 +246,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -249,6 +254,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -329,6 +335,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -351,9 +358,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -363,6 +374,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -383,6 +395,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -655,6 +668,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1475,6 +1491,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1507,9 +1527,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1530,6 +1559,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1614,9 +1644,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1677,6 +1704,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1690,6 +1720,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/memcpy/Makefile.in openmpi-4.1.4/opal/mca/memcpy/Makefile.in --- openmpi-4.0.3/opal/mca/memcpy/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/memcpy/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -122,6 +122,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -129,6 +131,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -152,6 +155,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -254,6 +258,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -261,6 +266,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -341,6 +347,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -363,9 +370,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -375,6 +386,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -395,6 +407,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -652,6 +665,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1472,6 +1488,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1504,9 +1524,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1527,6 +1556,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1611,9 +1641,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1674,6 +1701,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1687,6 +1717,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/memory/Makefile.in openmpi-4.1.4/opal/mca/memory/Makefile.in --- openmpi-4.0.3/opal/mca/memory/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/memory/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -137,6 +137,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -144,6 +146,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -167,6 +170,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -269,6 +273,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -276,6 +281,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -356,6 +362,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -378,9 +385,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -390,6 +401,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -410,6 +422,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -666,6 +679,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1486,6 +1502,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1518,9 +1538,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1541,6 +1570,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1625,9 +1655,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1688,6 +1715,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1701,6 +1731,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/memory/malloc_solaris/Makefile.in openmpi-4.1.4/opal/mca/memory/malloc_solaris/Makefile.in --- openmpi-4.0.3/opal/mca/memory/malloc_solaris/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/memory/malloc_solaris/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -117,6 +117,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -124,6 +126,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -147,6 +150,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -249,6 +253,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -256,6 +261,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -336,6 +342,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -358,9 +365,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -370,6 +381,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -390,6 +402,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -614,6 +627,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1434,6 +1450,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1466,9 +1486,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1489,6 +1518,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1573,9 +1603,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1636,6 +1663,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1649,6 +1679,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/memory/patcher/configure.m4 openmpi-4.1.4/opal/mca/memory/patcher/configure.m4 --- openmpi-4.0.3/opal/mca/memory/patcher/configure.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/memory/patcher/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -34,15 +34,27 @@ # [action-if-cant-compile]) # ------------------------------------------------ AC_DEFUN([MCA_opal_memory_patcher_CONFIG],[ - AC_CONFIG_FILES([opal/mca/memory/patcher/Makefile]) - - AC_CHECK_FUNCS([__curbrk]) - - AC_CHECK_HEADERS([linux/mman.h sys/syscall.h]) + # disable on MacOS/Darwin where it isn't used and the deprecated + # syscall interface causes compiler warnings. + AC_MSG_CHECKING([if memory patcher supports $host_os]) + case $host_os in + darwin*) + opal_memory_patcher_happy=no + ;; + *) + opal_memory_patcher_happy=yes + ;; + esac + AC_MSG_RESULT([$opal_memory_patcher_happy]) - AC_CHECK_DECLS([__syscall], [], [], [#include ]) + AS_IF([test "$opal_memory_patcher_happy" == "yes"], [ + AC_CHECK_FUNCS([__curbrk]) + AC_CHECK_HEADERS([linux/mman.h sys/syscall.h]) + AC_CHECK_DECLS([__mmap], [], [], [#include ]) + AC_CHECK_FUNCS([__mmap]) + AC_CHECK_DECLS([__syscall], [], [], [#include ]) + AC_CHECK_FUNCS([__syscall]) + $1], [$2]) - AC_CHECK_FUNCS([__syscall]) - - [$1] + AC_CONFIG_FILES([opal/mca/memory/patcher/Makefile]) ]) diff -Nru openmpi-4.0.3/opal/mca/memory/patcher/Makefile.in openmpi-4.1.4/opal/mca/memory/patcher/Makefile.in --- openmpi-4.0.3/opal/mca/memory/patcher/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/memory/patcher/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -620,6 +633,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1440,6 +1456,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1472,9 +1492,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1495,6 +1524,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1579,9 +1609,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1642,6 +1669,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1655,6 +1685,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/memory/patcher/memory_patcher_component.c openmpi-4.1.4/opal/mca/memory/patcher/memory_patcher_component.c --- openmpi-4.0.3/opal/mca/memory/patcher/memory_patcher_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/memory/patcher/memory_patcher_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -15,7 +15,7 @@ * reserved. * Copyright (c) 2016-2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2016-2019 IBM Corporation. All rights reserved. + * Copyright (c) 2016-2020 IBM Corporation. All rights reserved. * * $COPYRIGHT$ * @@ -55,6 +55,11 @@ #include "memory_patcher.h" #undef opal_memory_changed +#define HAS_SHMDT (defined(SYS_shmdt) || \ + (defined(IPCOP_shmdt) && defined(SYS_ipc))) +#define HAS_SHMAT (defined(SYS_shmat) || \ + (defined(IPCOP_shmat) && defined(SYS_ipc))) + static int patcher_open(void); static int patcher_close(void); static int patcher_register(void); @@ -107,6 +112,32 @@ * data. If this can be resolved the two levels can be joined. */ +/* + * Nathan's original fix described above can have the same problem reappear if the + * interception functions inline themselves. + */ +static void *_intercept_mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset) __opal_attribute_noinline__; +static int _intercept_munmap(void *start, size_t length) __opal_attribute_noinline__; +#if defined (SYS_mremap) +#if defined(__linux__) +static void *_intercept_mremap (void *start, size_t oldlen, size_t newlen, int flags, void *new_address) __opal_attribute_noinline__; +#else +static void *_intercept_mremap (void *start, size_t oldlen, void *new_address, size_t newlen, int flags) __opal_attribute_noinline__; +#endif // defined(__linux__) +#endif // defined(SYS_mremap) +static int _intercept_madvise (void *start, size_t length, int advice) __opal_attribute_noinline__; +#if defined SYS_brk +static int _intercept_brk (void *addr) __opal_attribute_noinline__; +#endif +#if defined(__linux__) +#if HAS_SHMAT +static void *_intercept_shmat(int shmid, const void *shmaddr, int shmflg) __opal_attribute_noinline__; +#endif // HAS_SHMAT +#if HAS_SHMDT +static int _intercept_shmdt (const void *shmaddr) __opal_attribute_noinline__; +#endif // HAS_SHMDT +#endif // defined(__linux__) + #if defined (SYS_mmap) #if defined(HAVE___MMAP) && !HAVE_DECL___MMAP @@ -254,7 +285,7 @@ #endif advice == POSIX_MADV_DONTNEED) { - opal_mem_hooks_release_hook (start, length, false); + opal_mem_hooks_release_hook (start, length, true); } if (!original_madvise) { @@ -334,12 +365,20 @@ #endif -#define HAS_SHMDT (defined(SYS_shmdt) || \ - (defined(IPCOP_shmdt) && defined(SYS_ipc))) -#define HAS_SHMAT (defined(SYS_shmat) || \ - (defined(IPCOP_shmat) && defined(SYS_ipc))) +// These op codes used to be in bits/ipc.h but were removed in glibc in 2015 +// with a comment saying they should be defined in internal headers: +// https://sourceware.org/bugzilla/show_bug.cgi?id=18560 +// and when glibc uses that syscall it seems to do so from its own definitions: +// https://github.com/bminor/glibc/search?q=IPCOP_shmat&unscoped_q=IPCOP_shmat +#ifndef IPCOP_shmat +#define IPCOP_shmat 21 +#endif +#ifndef IPCOP_shmdt +#define IPCOP_shmdt 22 +#endif -#if (HAS_SHMDT || HAS_SHMAT) && defined(__linux__) +#if defined(__linux__) +#if (HAS_SHMDT || HAS_SHMAT) #include #include @@ -415,8 +454,10 @@ return ds.shm_segsz; } #endif +#endif // defined(__linux__) -#if HAS_SHMAT && defined(__linux__) +#if defined(__linux__) +#if HAS_SHMAT static void *(*original_shmat)(int shmid, const void *shmaddr, int shmflg); static void *_intercept_shmat(int shmid, const void *shmaddr, int shmflg) @@ -462,8 +503,10 @@ return result; } #endif +#endif // defined(__linux__) -#if HAS_SHMDT && defined(__linux__) +#if defined(__linux__) +#if HAS_SHMDT static int (*original_shmdt) (const void *); static int _intercept_shmdt (const void *shmaddr) @@ -495,6 +538,7 @@ return result; } #endif +#endif // defined(__linux__) static int patcher_register (void) { @@ -570,19 +614,21 @@ } #endif -#if HAS_SHMAT && defined(__linux__) +#if defined(__linux__) +#if HAS_SHMAT rc = opal_patcher->patch_symbol ("shmat", (uintptr_t) intercept_shmat, (uintptr_t *) &original_shmat); if (OPAL_SUCCESS != rc) { return rc; } -#endif +#endif // HAS_SHMAT -#if HAS_SHMDT && defined(__linux__) +#if HAS_SHMDT rc = opal_patcher->patch_symbol ("shmdt", (uintptr_t) intercept_shmdt, (uintptr_t *) &original_shmdt); if (OPAL_SUCCESS != rc) { return rc; } -#endif +#endif // HAS_SHMDT +#endif // defined(__linux__) #if defined (SYS_brk) rc = opal_patcher->patch_symbol ("brk", (uintptr_t)intercept_brk, (uintptr_t *) &original_brk); diff -Nru openmpi-4.0.3/opal/mca/mpool/hugepage/Makefile.in openmpi-4.1.4/opal/mca/mpool/hugepage/Makefile.in --- openmpi-4.0.3/opal/mca/mpool/hugepage/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/mpool/hugepage/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -667,6 +680,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1487,6 +1503,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1519,9 +1539,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1542,6 +1571,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1626,9 +1656,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1689,6 +1716,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1702,6 +1732,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/mpool/hugepage/mpool_hugepage_module.c openmpi-4.1.4/opal/mca/mpool/hugepage/mpool_hugepage_module.c --- openmpi-4.0.3/opal/mca/mpool/hugepage/mpool_hugepage_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/mpool/hugepage/mpool_hugepage_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2013 The University of Tennessee and The University + * Copyright (c) 2004-2021 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -247,13 +247,13 @@ { mca_mpool_hugepage_module_t *hugepage_module = (mca_mpool_hugepage_module_t *) mpool; - OBJ_DESTRUCT(&hugepage_module->lock); - OBJ_DESTRUCT(&hugepage_module->allocation_tree); - if (hugepage_module->allocator) { (void) hugepage_module->allocator->alc_finalize (hugepage_module->allocator); hugepage_module->allocator = NULL; } + OBJ_DESTRUCT(&hugepage_module->lock); + OBJ_DESTRUCT(&hugepage_module->allocation_tree); + } static int mca_mpool_hugepage_ft_event (int state) { diff -Nru openmpi-4.0.3/opal/mca/mpool/Makefile.in openmpi-4.1.4/opal/mca/mpool/Makefile.in --- openmpi-4.0.3/opal/mca/mpool/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/mpool/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -140,6 +140,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -147,6 +149,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -170,6 +173,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -272,6 +276,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -279,6 +284,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -359,6 +365,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -381,9 +388,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -393,6 +404,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -413,6 +425,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -673,6 +686,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1493,6 +1509,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1525,9 +1545,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1548,6 +1577,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1632,9 +1662,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1695,6 +1722,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1708,6 +1738,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/mpool/memkind/Makefile.in openmpi-4.1.4/opal/mca/mpool/memkind/Makefile.in --- openmpi-4.0.3/opal/mca/mpool/memkind/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/mpool/memkind/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -112,6 +112,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -119,6 +121,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -142,6 +145,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -244,6 +248,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -251,6 +256,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -331,6 +337,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -353,9 +360,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -365,6 +376,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -385,6 +397,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -662,6 +675,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1482,6 +1498,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1514,9 +1534,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1537,6 +1566,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1621,9 +1651,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1684,6 +1711,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1697,6 +1727,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/patcher/base/patcher_base_patch.c openmpi-4.1.4/opal/mca/patcher/base/patcher_base_patch.c --- openmpi-4.0.3/opal/mca/patcher/base/patcher_base_patch.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/patcher/base/patcher_base_patch.c 2022-05-29 09:51:40.000000000 +0000 @@ -77,6 +77,7 @@ #endif +#if !HAVE___CLEAR_CACHE static void flush_and_invalidate_cache (unsigned long a) { #if OPAL_ASSEMBLY_ARCH == OPAL_IA32 @@ -114,6 +115,7 @@ "isb":: "r" (a)); #endif } +#endif // !HAVE___CLEAR_CACHE // modify protection of memory range static void ModifyMemoryProtection (uintptr_t addr, size_t length, int prot) diff -Nru openmpi-4.0.3/opal/mca/patcher/linux/Makefile.in openmpi-4.1.4/opal/mca/patcher/linux/Makefile.in --- openmpi-4.0.3/opal/mca/patcher/linux/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/patcher/linux/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -122,6 +122,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -129,6 +131,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -152,6 +155,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -254,6 +258,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -261,6 +266,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -341,6 +347,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -363,9 +370,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -375,6 +386,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -395,6 +407,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -670,6 +683,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1490,6 +1506,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1522,9 +1542,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1545,6 +1574,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1629,9 +1659,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1692,6 +1719,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1705,6 +1735,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/patcher/Makefile.in openmpi-4.1.4/opal/mca/patcher/Makefile.in --- openmpi-4.0.3/opal/mca/patcher/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/patcher/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -141,6 +141,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -148,6 +150,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -171,6 +174,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -273,6 +277,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -280,6 +285,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -360,6 +366,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -382,9 +389,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -394,6 +405,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -414,6 +426,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -670,6 +683,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1490,6 +1506,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1522,9 +1542,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1545,6 +1574,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1629,9 +1659,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1692,6 +1719,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1705,6 +1735,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/patcher/overwrite/Makefile.in openmpi-4.1.4/opal/mca/patcher/overwrite/Makefile.in --- openmpi-4.0.3/opal/mca/patcher/overwrite/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/patcher/overwrite/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -122,6 +122,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -129,6 +131,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -152,6 +155,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -254,6 +258,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -261,6 +266,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -341,6 +347,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -363,9 +370,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -375,6 +386,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -395,6 +407,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -672,6 +685,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1492,6 +1508,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1524,9 +1544,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1547,6 +1576,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1631,9 +1661,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1694,6 +1721,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1707,6 +1737,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/pmix/base/pmix_base_fns.c openmpi-4.1.4/opal/mca/pmix/base/pmix_base_fns.c --- openmpi-4.0.3/opal/mca/pmix/base/pmix_base_fns.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/base/pmix_base_fns.c 2022-05-29 09:51:40.000000000 +0000 @@ -8,6 +8,8 @@ * Copyright (c) 2016 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2020 Triad National Security, LLC. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -663,9 +665,11 @@ static inline void pmi_base64_encode_block (const unsigned char in[3], char out[4], int len) { out[0] = pmi_base64_encsym (in[0] >> 2); - out[1] = pmi_base64_encsym (((in[0] & 0x03) << 4) | ((in[1] & 0xf0) >> 4)); + /* len == length of in[] - conditionals insure we don't reference uninitialized in[] values */ + out[1] = 1 < len ? pmi_base64_encsym(((in[0] & 0x03) << 4) | ((in[1] & 0xf0) >> 4)) : pmi_base64_encsym((in[0] & 0x03) << 4); /* Cray PMI doesn't allow = in PMI attributes so pad with spaces */ - out[2] = 1 < len ? pmi_base64_encsym(((in[1] & 0x0f) << 2) | ((in[2] & 0xc0) >> 6)) : ' '; + out[2] = 1 < len ? pmi_base64_encsym((in[1] & 0x0f) << 2) : ' '; + out[2] = 2 < len ? pmi_base64_encsym(((in[1] & 0x0f) << 2) | ((in[2] & 0xc0) >> 6)) : out[2]; out[3] = 2 < len ? pmi_base64_encsym(in[2] & 0x3f) : ' '; } diff -Nru openmpi-4.0.3/opal/mca/pmix/cray/Makefile.in openmpi-4.1.4/opal/mca/pmix/cray/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/cray/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/cray/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -111,6 +111,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -118,6 +120,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -141,6 +144,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -243,6 +247,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -250,6 +255,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -330,6 +336,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -352,9 +359,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -364,6 +375,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -384,6 +396,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -661,6 +674,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1481,6 +1497,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1513,9 +1533,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1536,6 +1565,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1620,9 +1650,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1683,6 +1710,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1696,6 +1726,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/pmix/ext1x/Makefile.in openmpi-4.1.4/opal/mca/pmix/ext1x/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/ext1x/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/ext1x/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -113,6 +113,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -120,6 +122,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -143,6 +146,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -245,6 +249,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -252,6 +257,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -332,6 +338,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -354,9 +361,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -366,6 +377,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -386,6 +398,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -662,6 +675,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1482,6 +1498,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1514,9 +1534,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1537,6 +1566,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1621,9 +1651,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1684,6 +1711,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1697,6 +1727,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/pmix/ext1x/pmix1x_component.c openmpi-4.1.4/opal/mca/pmix/ext1x/pmix1x_component.c --- openmpi-4.0.3/opal/mca/pmix/ext1x/pmix1x_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/ext1x/pmix1x_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -128,8 +128,7 @@ char *t, *id; /* see if a PMIx server is present */ - if (NULL != (t = getenv("PMIX_SERVER_URI")) || - NULL != (id = getenv("PMIX_ID"))) { + if (NULL != (t = getenv("PMIX_NAMESPACE"))) { /* if PMIx is present, then we are a client and need to use it */ *priority = 100; } else { diff -Nru openmpi-4.0.3/opal/mca/pmix/ext2x/ext2x_component.c openmpi-4.1.4/opal/mca/pmix/ext2x/ext2x_component.c --- openmpi-4.0.3/opal/mca/pmix/ext2x/ext2x_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/ext2x/ext2x_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -144,9 +144,7 @@ char *t, *id; /* see if a PMIx server is present */ - if (NULL != (t = getenv("PMIX_SERVER_URI")) || - NULL != (t = getenv("PMIX_SERVER_URI2")) || - NULL != (id = getenv("PMIX_ID"))) { + if (NULL != (t = getenv("PMIX_NAMESPACE"))) { /* if PMIx is present, then we are a client and need to use it */ *priority = 100; } else { diff -Nru openmpi-4.0.3/opal/mca/pmix/ext2x/Makefile.in openmpi-4.1.4/opal/mca/pmix/ext2x/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/ext2x/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/ext2x/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -112,6 +112,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -119,6 +121,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -142,6 +145,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -244,6 +248,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -251,6 +256,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -331,6 +337,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -353,9 +360,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -365,6 +376,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -385,6 +397,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -667,6 +680,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1487,6 +1503,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1519,9 +1539,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1542,6 +1571,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1626,9 +1656,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1689,6 +1716,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1702,6 +1732,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/pmix/ext3x/configure.m4 openmpi-4.1.4/opal/mca/pmix/ext3x/configure.m4 --- openmpi-4.0.3/opal/mca/pmix/ext3x/configure.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/ext3x/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -18,6 +18,7 @@ # and Technology (RIST). All rights reserved. # Copyright (c) 2014-2015 Mellanox Technologies, Inc. # All rights reserved. +# Copyright (c) 2021 IBM Corporation. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -32,17 +33,19 @@ AS_IF([test "$opal_external_pmix_happy" = "yes"], [ # check for the 3.x version - AC_MSG_CHECKING([if external component is version 3.x]) - AS_IF([test "$opal_external_pmix_version" = "3x"], - [AC_MSG_RESULT([yes]) - AS_IF([test "$opal_event_external_support" != "yes"], - [AC_MSG_WARN([EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT]) - AC_MSG_WARN([LIBRARY. THIS LIBRARY MUST POINT TO THE SAME ONE USED]) - AC_MSG_WARN([TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT]) - AC_MSG_ERROR([PLEASE CORRECT THE CONFIGURE COMMAND LINE AND REBUILD])]) - opal_pmix_external_3x_happy=yes], - [AC_MSG_RESULT([no]) - opal_pmix_external_3x_happy=no]) + AC_MSG_CHECKING([if external component is version 3.x or higher]) + if test $opal_external_pmix_version_major -ge 3 ; then + AC_MSG_RESULT([yes]) + AS_IF([test "$opal_event_external_support" != "yes"], + [AC_MSG_WARN([EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT]) + AC_MSG_WARN([LIBRARY. THIS LIBRARY MUST POINT TO THE SAME ONE USED]) + AC_MSG_WARN([TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT]) + AC_MSG_ERROR([PLEASE CORRECT THE CONFIGURE COMMAND LINE AND REBUILD])]) + opal_pmix_external_3x_happy=yes + else + AC_MSG_RESULT([no]) + opal_pmix_external_3x_happy=no + fi AS_IF([test "$opal_pmix_external_3x_happy" = "yes"], [$1 diff -Nru openmpi-4.0.3/opal/mca/pmix/ext3x/Makefile.in openmpi-4.1.4/opal/mca/pmix/ext3x/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/ext3x/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/ext3x/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -112,6 +112,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -119,6 +121,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -142,6 +145,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -244,6 +248,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -251,6 +256,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -331,6 +337,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -353,9 +360,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -365,6 +376,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -385,6 +397,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -674,6 +687,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1494,6 +1510,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1526,9 +1546,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1549,6 +1578,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1633,9 +1663,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1696,6 +1723,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1709,6 +1739,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/pmix/flux/Makefile.in openmpi-4.1.4/opal/mca/pmix/flux/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/flux/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/flux/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -652,6 +665,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1472,6 +1488,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1504,9 +1524,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1527,6 +1556,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1611,9 +1641,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1674,6 +1701,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1687,6 +1717,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/pmix/flux/pmix_flux.c openmpi-4.1.4/opal/mca/pmix/flux/pmix_flux.c --- openmpi-4.0.3/opal/mca/pmix/flux/pmix_flux.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/flux/pmix_flux.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. * Copyright (c) 2014-2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2016-2022 Cisco Systems, Inc. All rights reserved * $COPYRIGHT$ * * Additional copyrights may follow @@ -42,6 +42,8 @@ opal_list_t *procs); static int flux_commit(void); static int flux_fence(opal_list_t *procs, int collect_data); +static int flux_fencenb(opal_list_t *procs, int collect_data, + opal_pmix_op_cbfunc_t cbfunc, void *cbdata); static int flux_put(opal_pmix_scope_t scope, opal_value_t *kv); static int flux_get(const opal_process_name_t *id, @@ -65,6 +67,7 @@ .abort = flux_abort, .commit = flux_commit, .fence = flux_fence, + .fence_nb = flux_fencenb, .put = flux_put, .get = flux_get, .publish = flux_publish, @@ -674,6 +677,22 @@ } return OPAL_SUCCESS; } + +static int flux_fencenb(opal_list_t *procs, int collect_data, + opal_pmix_op_cbfunc_t cbfunc, void *cbdata) +{ + int rc; + if (PMI_SUCCESS != (rc = PMI_Barrier())) { + OPAL_PMI_ERROR(rc, "PMI_Barrier"); + return OPAL_ERROR; + } + if (NULL == cbfunc) { + return OPAL_ERROR; + } else { + cbfunc(rc, cbdata); + } + return OPAL_SUCCESS; +} static int flux_fence(opal_list_t *procs, int collect_data) { diff -Nru openmpi-4.0.3/opal/mca/pmix/isolated/Makefile.in openmpi-4.1.4/opal/mca/pmix/isolated/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/isolated/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/isolated/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -650,6 +663,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1470,6 +1486,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1502,9 +1522,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1525,6 +1554,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1609,9 +1639,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1672,6 +1699,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1685,6 +1715,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/pmix/Makefile.in openmpi-4.1.4/opal/mca/pmix/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -652,6 +665,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1472,6 +1488,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1504,9 +1524,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1527,6 +1556,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1611,9 +1641,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1674,6 +1701,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1687,6 +1717,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/configure.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/configure.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/configure.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -12,10 +12,11 @@ # All rights reserved. # Copyright (c) 2011-2013 Los Alamos National Security, LLC. # All rights reserved. -# Copyright (c) 2010-2017 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2010-2020 Cisco Systems, Inc. All rights reserved # Copyright (c) 2013-2019 Intel, Inc. All rights reserved. # Copyright (c) 2015-2016 Research Organization for Information Science # and Technology (RIST). All rights reserved. +# Copyright (c) 2020 IBM Corporation. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -37,10 +38,6 @@ opal_pmix_pmix3x_save_LDFLAGS=$LDFLAGS opal_pmix_pmix3x_save_LIBS=$LIBS - AC_ARG_ENABLE([install-libpmix], - [AC_HELP_STRING([--enable-install-libpmix], - [Enable a native PMIx library and headers in the OMPI install location (default: disabled)])]) - AC_ARG_ENABLE([pmix-timing], [AC_HELP_STRING([--enable-pmix-timing], [Enable PMIx timing measurements (default: disabled)])]) @@ -54,20 +51,19 @@ fi opal_pmix_pmix3x_args="$opal_pmix_pmix3x_timing_flag --without-tests-examples --disable-pmix-binaries --disable-pmix-backward-compatibility --disable-visibility --enable-embedded-libevent --with-libevent-header=\\\"opal/mca/event/$opal_event_base_include\\\" --enable-embedded-hwloc --with-hwloc-header=\\\"$opal_hwloc_base_include\\\"" + opal_pmix_pmix3x_args="--with-pmix-symbol-rename=OPAL_MCA_PMIX3X_ --enable-embedded-mode $opal_pmix_pmix3x_args" AS_IF([test "$enable_debug" = "yes"], [opal_pmix_pmix3x_args="--enable-debug $opal_pmix_pmix3x_args" CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS -g"], [opal_pmix_pmix3x_args="--disable-debug $opal_pmix_pmix3x_args" CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS"]) - AC_MSG_CHECKING([if want to install standalone libpmix]) - AS_IF([test "$enable_install_libpmix" = "yes"], - [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no]) - opal_pmix_pmix3x_args="--with-pmix-symbol-rename=OPAL_MCA_PMIX3X_ --enable-embedded-mode $opal_pmix_pmix3x_args"]) AS_IF([test "$with_devel_headers" = "yes"], [opal_pmix_pmix3x_args="--with-devel-headers $opal_pmix_pmix3x_args"]) CPPFLAGS="-I$OPAL_TOP_SRCDIR -I$OPAL_TOP_BUILDDIR -I$OPAL_TOP_SRCDIR/opal/include -I$OPAL_TOP_BUILDDIR/opal/include $CPPFLAGS" + # OpenPMIx Man pages are not needed when embedded. Avoids pandoc check + opal_pmix_pmix3x_args="--disable-man-pages $opal_pmix_pmix3x_args" + OPAL_CONFIG_SUBDIR([$opal_pmix_pmix3x_basedir/pmix], [$opal_pmix_pmix3x_args $opal_subdir_args 'CFLAGS=$CFLAGS' 'CPPFLAGS=$CPPFLAGS'], [opal_pmix_pmix3x_happy=1], [opal_pmix_pmix3x_happy=0]) @@ -102,11 +98,15 @@ AC_SUBST([opal_pmix_pmix3x_DEPENDENCIES]) # Finally, add some flags to the wrapper compiler so that our - # headers can be found. - pmix_pmix3x_status_filename="$OPAL_TOP_BUILDDIR/$opal_pmix_pmix3x_basedir/pmix/config.status" - pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS=`egrep PMIX_EMBEDDED_CPPFLAGS $pmix_pmix3x_status_filename | cut -d\" -f4` - pmix_pmix3x_WRAPPER_EXTRA_LDFLAGS=`egrep PMIX_EMBEDDED_LDFLAGS $pmix_pmix3x_status_filename | cut -d\" -f4` - pmix_pmix3x_WRAPPER_EXTRA_LIBS=`egrep PMIX_EMBEDDED_LIBS $pmix_pmix3x_status_filename | cut -d\" -f4` + # headers can be found. Do not grab them from config.status, + # because the value is located in an area that is part of an awk + # script, and sometimes autoconf decides to break up super-long + # lines into multiple lines (awk has line continuation syntax). + # Instead, grab it from the generated Makefile. + pmix_pmix3x_makefile_filename="$OPAL_TOP_BUILDDIR/$opal_pmix_pmix3x_basedir/pmix/Makefile" + pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS=`egrep PMIX_EMBEDDED_CPPFLAGS $pmix_pmix3x_makefile_filename | cut -d= -f2-` + pmix_pmix3x_WRAPPER_EXTRA_LDFLAGS=`egrep PMIX_EMBEDDED_LDFLAGS $pmix_pmix3x_makefile_filename | cut -d= -f2-` + pmix_pmix3x_WRAPPER_EXTRA_LIBS=`egrep PMIX_EMBEDDED_LIBS $pmix_pmix3x_makefile_filename | cut -d= -f2-` AC_MSG_CHECKING([PMIx extra wrapper CPPFLAGS]) AC_MSG_RESULT([$pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS]) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -112,6 +112,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -119,6 +121,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -142,6 +145,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -244,6 +248,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -251,6 +256,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -331,6 +337,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -353,9 +360,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -365,6 +376,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -385,6 +397,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -706,6 +719,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1526,6 +1542,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1558,9 +1578,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1581,6 +1610,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1665,9 +1695,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1728,6 +1755,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1741,6 +1771,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/aclocal.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/aclocal.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/aclocal.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/aclocal.m4 2022-05-29 09:51:40.000000000 +0000 @@ -1262,7 +1262,6 @@ m4_include([config/pmix_check_lock.m4]) m4_include([config/pmix_check_os_flavors.m4]) m4_include([config/pmix_check_package.m4]) -m4_include([config/pmix_check_psm2.m4]) m4_include([config/pmix_check_pthread_pids.m4]) m4_include([config/pmix_check_vendor.m4]) m4_include([config/pmix_check_visibility.m4]) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/autogen.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/autogen.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/autogen.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/autogen.pl 2022-05-29 09:51:40.000000000 +0000 @@ -4,7 +4,7 @@ # Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2013 Mellanox Technologies, Inc. # All rights reserved. -# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2020 Intel, Inc. All rights reserved. # Copyright (c) 2015 Research Organization for Information Science # and Technology (RIST). All rights reserved. # Copyright (c) 2015 IBM Corporation. All rights reserved. @@ -275,7 +275,7 @@ #ifndef $ifdef_string #define $ifdef_string -#include +#include \"src/mca/base/pmix_mca_base_framework.h\" $framework_decl_output static pmix_mca_base_framework_t *pmix_frameworks[] = { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/autogen_found_items.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/autogen_found_items.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/autogen_found_items.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/autogen_found_items.m4 2022-05-29 09:51:40.000000000 +0000 @@ -5,8 +5,8 @@ dnl This file is automatically created by autogen.pl; it should not dnl be edited by hand!! dnl -dnl Generated by ec2-user at Tue Mar 3 23:30:36 2020 -dnl on ip-172-31-13-177. +dnl Generated by ec2-user at Thu May 26 14:32:56 2022 +dnl on ip-172-31-4-35.us-west-2.compute.internal. dnl --------------------------------------------------------------------------- m4_define([autogen_platform_file], []) @@ -24,7 +24,7 @@ dnl --------------------------------------------------------------------------- dnl Frameworks in the pmix project and their corresponding directories -m4_define([mca_pmix_framework_list], [common, bfrops, gds, pdl, pif, pinstalldirs, plog, pnet, preg, psec, psensor, pshmem, ptl]) +m4_define([mca_pmix_framework_list], [common, bfrops, gds, pcompress, pdl, pif, pinstalldirs, plog, pnet, preg, psec, psensor, pshmem, psquash, ptl]) dnl Components in the pmix / common framework m4_define([mca_pmix_common_m4_config_component_list], [dstore]) @@ -38,6 +38,10 @@ m4_define([mca_pmix_gds_m4_config_component_list], [ds12, ds21]) m4_define([mca_pmix_gds_no_config_component_list], [hash]) +dnl Components in the pmix / pcompress framework +m4_define([mca_pmix_pcompress_m4_config_component_list], [zlib]) +m4_define([mca_pmix_pcompress_no_config_component_list], []) + dnl Components in the pmix / pdl framework m4_define([mca_pmix_pdl_m4_config_component_list], [pdlopen, plibltdl]) m4_define([mca_pmix_pdl_no_config_component_list], []) @@ -55,12 +59,12 @@ m4_define([mca_pmix_plog_no_config_component_list], [default, stdfd]) dnl Components in the pmix / pnet framework -m4_define([mca_pmix_pnet_m4_config_component_list], [opa]) -m4_define([mca_pmix_pnet_no_config_component_list], [tcp, test]) +m4_define([mca_pmix_pnet_m4_config_component_list], []) +m4_define([mca_pmix_pnet_no_config_component_list], []) dnl Components in the pmix / preg framework m4_define([mca_pmix_preg_m4_config_component_list], []) -m4_define([mca_pmix_preg_no_config_component_list], [native]) +m4_define([mca_pmix_preg_no_config_component_list], [compress, native]) dnl Components in the pmix / psec framework m4_define([mca_pmix_psec_m4_config_component_list], [munge]) @@ -74,6 +78,10 @@ m4_define([mca_pmix_pshmem_m4_config_component_list], []) m4_define([mca_pmix_pshmem_no_config_component_list], [mmap]) +dnl Components in the pmix / psquash framework +m4_define([mca_pmix_psquash_m4_config_component_list], []) +m4_define([mca_pmix_psquash_no_config_component_list], [flex128, native]) + dnl Components in the pmix / ptl framework m4_define([mca_pmix_ptl_m4_config_component_list], []) m4_define([mca_pmix_ptl_no_config_component_list], [tcp, usock]) @@ -86,6 +94,7 @@ m4_include([src/mca/common/dstore/configure.m4]) m4_include([src/mca/gds/ds12/configure.m4]) m4_include([src/mca/gds/ds21/configure.m4]) +m4_include([src/mca/pcompress/zlib/configure.m4]) m4_include([src/mca/pdl/pdlopen/configure.m4]) m4_include([src/mca/pdl/plibltdl/configure.m4]) m4_include([src/mca/pif/bsdx_ipv4/configure.m4]) @@ -96,5 +105,4 @@ m4_include([src/mca/pinstalldirs/config/configure.m4]) m4_include([src/mca/pinstalldirs/env/configure.m4]) m4_include([src/mca/plog/syslog/configure.m4]) -m4_include([src/mca/pnet/opa/configure.m4]) m4_include([src/mca/psec/munge/configure.m4]) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/config.guess openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/config.guess --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/config.guess 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/config.guess 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2021 Free Software Foundation, Inc. -timestamp='2014-11-04' +timestamp='2021-01-25' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -27,19 +27,19 @@ # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess # # Please send patches to . -me=`echo "$0" | sed -e 's,.*/,,'` +me=$(echo "$0" | sed -e 's,.*/,,') usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -50,7 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -84,8 +84,6 @@ exit 1 fi -trap 'exit 1' 1 2 15 - # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a @@ -96,66 +94,89 @@ # Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039 + { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$driver" + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then +if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown +UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown +UNAME_RELEASE=$( (uname -r) 2>/dev/null) || UNAME_RELEASE=unknown +UNAME_SYSTEM=$( (uname -s) 2>/dev/null) || UNAME_SYSTEM=unknown +UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in +case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu + LIBC=unknown - eval $set_cc_for_build - cat <<-EOF > $dummy.c + set_cc_for_build + cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc - #else + #elif defined(__GLIBC__) LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -167,22 +188,32 @@ # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)) + case "$UNAME_MACHINE_ARCH" in + aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + earmv*) + arch=$(echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,') + endian=$(echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p') + machine="${arch}${endian}"-unknown + ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -197,117 +228,137 @@ os=netbsd ;; esac + # Determine ABI tags. + case "$UNAME_MACHINE_ARCH" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=$(echo "$UNAME_MACHINE_ARCH" | sed -e "$expr") + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=$(echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2) ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "$machine-${os}${release}${abi-}" exit ;; *:Bitrig:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//') + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//') + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//') + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" exit ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" + exit ;; + *:OS108:*:*) + echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:Sortix:*:*) + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Twizzler:*:*) + echo "$UNAME_MACHINE"-unknown-twizzler + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $3}') ;; *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $4}') ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + ALPHA_CPU_TYPE=$(/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1) case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + echo "$UNAME_MACHINE"-dec-osf"$(echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos + echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos + echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition @@ -319,7 +370,7 @@ echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} + echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos @@ -329,7 +380,7 @@ exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then + if test "$( (/bin/universe) 2>/dev/null)" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd @@ -342,69 +393,69 @@ echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in + case $(/usr/bin/uname -p) in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$UNAME_MACHINE"-ibm-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" exit ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-hal-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} + echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" + set_cc_for_build + SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then - SUN_ARCH="x86_64" + SUN_ARCH=x86_64 fi fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$SUN_ARCH"-pc-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris3"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" exit ;; sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in + case "$(/usr/bin/arch -k)" in Series*|S4*) - UNAME_RELEASE=`uname -v` + UNAME_RELEASE=$(uname -v) ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + echo sparc-sun-sunos"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/')" exit ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" exit ;; sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in + UNAME_RELEASE=$( (sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null) + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case "$(/bin/arch)" in sun3) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" ;; sun4) - echo sparc-sun-sunos${UNAME_RELEASE} + echo sparc-sun-sunos"$UNAME_RELEASE" ;; esac exit ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} + echo sparc-auspex-sunos"$UNAME_RELEASE" exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not @@ -415,44 +466,44 @@ # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} + echo m68k-milan-mint"$UNAME_RELEASE" exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} + echo m68k-hades-mint"$UNAME_RELEASE" exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} + echo m68k-unknown-mint"$UNAME_RELEASE" exit ;; m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} + echo m68k-apple-machten"$UNAME_RELEASE" exit ;; powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} + echo powerpc-apple-machten"$UNAME_RELEASE" exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} + echo mips-dec-ultrix"$UNAME_RELEASE" exit ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} + echo vax-dec-ultrix"$UNAME_RELEASE" exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} + echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { @@ -461,23 +512,23 @@ #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=$(echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p') && + SYSTEM_NAME=$("$dummy" "$dummyarg") && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} + echo mips-mips-riscos"$UNAME_RELEASE" exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax @@ -502,18 +553,18 @@ exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + UNAME_PROCESSOR=$(/usr/bin/uname -p) + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x then - echo m88k-dg-dgux${UNAME_RELEASE} + echo m88k-dg-dgux"$UNAME_RELEASE" else - echo m88k-dg-dguxbcs${UNAME_RELEASE} + echo m88k-dg-dguxbcs"$UNAME_RELEASE" fi else - echo i586-dg-dgux${UNAME_RELEASE} + echo i586-dg-dgux"$UNAME_RELEASE" fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) @@ -530,26 +581,26 @@ echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + echo mips-sgi-irix"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/g')" exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + exit ;; # Note that: echo "'$(uname -s)'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if test -x /usr/bin/oslevel ; then + IBM_REV=$(/usr/bin/oslevel) else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #include main() @@ -560,7 +611,7 @@ exit(0); } EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") then echo "$SYSTEM_NAME" else @@ -573,28 +624,28 @@ fi exit ;; *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_CPU_ID=$(/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }') + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi - if [ -x /usr/bin/lslpp ] ; then - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | - awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + if test -x /usr/bin/lslpp ; then + IBM_REV=$(/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/) else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx @@ -609,28 +660,28 @@ echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; + HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + if test -x /usr/bin/getconf; then + sc_cpu_version=$(/usr/bin/getconf SC_CPU_VERSION 2>/dev/null) + sc_kernel_bits=$(/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null) + case "$sc_cpu_version" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + case "$sc_kernel_bits" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include @@ -663,13 +714,13 @@ exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=$("$dummy") test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if test "$HP_ARCH" = hppa2.0w then - eval $set_cc_for_build + set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -680,23 +731,23 @@ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" exit ;; ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} + HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') + echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #include int main () @@ -721,11 +772,11 @@ exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) @@ -734,17 +785,17 @@ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk + if test -x /usr/sbin/sysversion ; then + echo "$UNAME_MACHINE"-unknown-osf1mk else - echo ${UNAME_MACHINE}-unknown-osf1 + echo "$UNAME_MACHINE"-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) @@ -769,130 +820,123 @@ echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + FUJITSU_PROC=$(uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz) + FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') + FUJITSU_REL=$(echo "$UNAME_RELEASE" | sed -e 's/ /_/') echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') + FUJITSU_REL=$(echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/') echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" exit ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} + echo sparc-unknown-bsdi"$UNAME_RELEASE" exit ;; *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" + exit ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=$(uname -p) + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabi + else + echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabihf + fi exit ;; *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in + UNAME_PROCESSOR=$(/usr/bin/uname -p) + case "$UNAME_PROCESSOR" in amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" exit ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin + echo "$UNAME_MACHINE"-pc-cygwin exit ;; *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 + echo "$UNAME_MACHINE"-pc-mingw64 exit ;; *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 + echo "$UNAME_MACHINE"-pc-mingw32 exit ;; *:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 + echo "$UNAME_MACHINE"-pc-msys exit ;; i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 + echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case "$UNAME_MACHINE" in x86) - echo i586-pc-interix${UNAME_RELEASE} + echo i586-pc-interix"$UNAME_RELEASE" exit ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} + echo x86_64-unknown-interix"$UNAME_RELEASE" exit ;; IA64) - echo ia64-unknown-interix${UNAME_RELEASE} + echo ia64-unknown-interix"$UNAME_RELEASE" exit ;; esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin + echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin + echo x86_64-pc-cygwin exit ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo powerpcle-unknown-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo "$(echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,')-unknown-$LIBC$(echo "$UNAME_RELEASE"|sed -e 's,/.*$,,')" exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo "$UNAME_MACHINE-unknown-$(echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]")$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')-$LIBC" exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix + *:Minix:*:*) + echo "$UNAME_MACHINE"-unknown-minix exit ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + case $(sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null) in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; @@ -902,129 +946,182 @@ EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) - eval $set_cc_for_build + set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + e2k:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + k1om:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el + MIPS_ENDIAN=el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} + MIPS_ENDIAN= #else - CPU= + MIPS_ENDIAN= #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI')" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; + mips64el:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-${LIBC} + echo or1k-unknown-linux-"$LIBC" exit ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} + echo sparc-unknown-linux-"$LIBC" exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} + echo hppa64-unknown-linux-"$LIBC" exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; + case $(grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2) in + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} + echo powerpc64-unknown-linux-"$LIBC" exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} + echo powerpc-unknown-linux-"$LIBC" exit ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} + echo powerpc64le-unknown-linux-"$LIBC" exit ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} + echo powerpcle-unknown-linux-"$LIBC" + exit ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI="$LIBC"x32 + fi + fi + echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI" exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1038,51 +1135,51 @@ # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx + echo "$UNAME_MACHINE"-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop + echo "$UNAME_MACHINE"-unknown-stop exit ;; i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos + echo "$UNAME_MACHINE"-unknown-atheos exit ;; i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable + echo "$UNAME_MACHINE"-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} + echo i386-unknown-lynxos"$UNAME_RELEASE" exit ;; i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp + echo "$UNAME_MACHINE"-pc-msdosdjgpp exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + i*86:*:4.*:*) + UNAME_REL=$(echo "$UNAME_RELEASE" | sed 's/\/MP$//') if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in + case $(/bin/uname -X | grep "^Machine") in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + UNAME_REL=$( (/bin/uname -X|grep Release|sed -e 's/.*= //')) (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 @@ -1090,9 +1187,9 @@ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv32 + echo "$UNAME_MACHINE"-pc-sysv32 fi exit ;; pc:*:*:*) @@ -1100,7 +1197,7 @@ # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that + # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; @@ -1112,9 +1209,9 @@ exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) @@ -1132,41 +1229,41 @@ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} + echo m68k-unknown-lynxos"$UNAME_RELEASE" exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} + echo sparc-unknown-lynxos"$UNAME_RELEASE" exit ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} + echo rs6000-unknown-lynxos"$UNAME_RELEASE" exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} + echo powerpc-unknown-lynxos"$UNAME_RELEASE" exit ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} + echo mips-dde-sysv"$UNAME_RELEASE" exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 @@ -1176,8 +1273,8 @@ exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 + UNAME_MACHINE=$( (uname -p) 2>/dev/null) + echo "$UNAME_MACHINE"-sni-sysv4 else echo ns32k-sni-sysv fi @@ -1197,23 +1294,23 @@ exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos + echo "$UNAME_MACHINE"-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} + echo m68k-apple-aux"$UNAME_RELEASE" exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + if test -d /usr/nec; then + echo mips-nec-sysv"$UNAME_RELEASE" else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv"$UNAME_RELEASE" fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. @@ -1232,77 +1329,97 @@ echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} + echo sx4-nec-superux"$UNAME_RELEASE" exit ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} + echo sx5-nec-superux"$UNAME_RELEASE" exit ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} + echo sx6-nec-superux"$UNAME_RELEASE" exit ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} + echo sx7-nec-superux"$UNAME_RELEASE" exit ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} + echo sx8-nec-superux"$UNAME_RELEASE" exit ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} + echo sx8r-nec-superux"$UNAME_RELEASE" + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux"$UNAME_RELEASE" exit ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} + echo powerpc-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" + exit ;; + arm64:Darwin:*:*) + echo aarch64-apple-darwin"$UNAME_RELEASE" exit ;; *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc - fi - if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi + UNAME_PROCESSOR=$(uname -p) + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc fi elif test "$UNAME_PROCESSOR" = i386 ; then - # Avoid executing cc on OS X 10.9, as it ships with a stub - # that puts up a graphical alert prompting to install - # developer tools. Any system running Mac OS X 10.7 or - # later (Darwin 11 and later) is required to have a 64-bit - # processor. This is not true of the ARM version of Darwin - # that Apple uses in portable devices. - UNAME_PROCESSOR=x86_64 + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=$(uname -p) + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; - NEO-?:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" exit ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} + echo nse-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux @@ -1311,18 +1428,19 @@ echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + # shellcheck disable=SC2154 + if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi - echo ${UNAME_MACHINE}-unknown-plan9 + echo "$UNAME_MACHINE"-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 @@ -1343,14 +1461,14 @@ echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux"$UNAME_RELEASE" exit ;; *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + echo "$UNAME_MACHINE"-unknown-dragonfly"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" exit ;; *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in + UNAME_MACHINE=$( (uname -p) 2>/dev/null) + case "$UNAME_MACHINE" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; @@ -1359,62 +1477,223 @@ echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + echo "$UNAME_MACHINE"-pc-skyos"$(echo "$UNAME_RELEASE" | sed -e 's/ .*$//')" exit ;; i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos + echo "$UNAME_MACHINE"-pc-rdos exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros + *:AROS:*:*) + echo "$UNAME_MACHINE"-unknown-aros exit ;; x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx + echo "$UNAME_MACHINE"-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; + *:Unleashed:*:*) + echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" exit ;; esac +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=$( (hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null); + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=$($dummy) && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 < in order to provide the needed -information to handle your system. +year=$(echo $timestamp | sed 's,-.*,,') +# shellcheck disable=SC2003 +if test "$(expr "$(date +%Y)" - "$year")" -lt 3 ; then + cat >&2 </dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} +uname -m = $( (uname -m) 2>/dev/null || echo unknown) +uname -r = $( (uname -r) 2>/dev/null || echo unknown) +uname -s = $( (uname -s) 2>/dev/null || echo unknown) +uname -v = $( (uname -v) 2>/dev/null || echo unknown) + +/usr/bin/uname -p = $( (/usr/bin/uname -p) 2>/dev/null) +/bin/uname -X = $( (/bin/uname -X) 2>/dev/null) + +hostinfo = $( (hostinfo) 2>/dev/null) +/bin/universe = $( (/bin/universe) 2>/dev/null) +/usr/bin/arch -k = $( (/usr/bin/arch -k) 2>/dev/null) +/bin/arch = $( (/bin/arch) 2>/dev/null) +/usr/bin/oslevel = $( (/usr/bin/oslevel) 2>/dev/null) +/usr/convex/getsysinfo = $( (/usr/convex/getsysinfo) 2>/dev/null) + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" EOF +fi exit 1 # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/config.sub openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/config.sub --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/config.sub 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/config.sub 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2021 Free Software Foundation, Inc. -timestamp='2014-12-03' +timestamp='2021-01-08' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -33,7 +33,7 @@ # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -50,15 +50,14 @@ # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. -me=`echo "$0" | sed -e 's,.*/,,'` +me=$(echo "$0" | sed -e 's,.*/,,') usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -68,7 +67,7 @@ version="\ GNU config.sub ($timestamp) -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -90,12 +89,12 @@ - ) # Use stdin as input. break ;; -* ) - echo "$me: invalid option $1$help" + echo "$me: invalid option $1$help" >&2 exit 1 ;; *local*) # First pass through any local machine types. - echo $1 + echo "$1" exit ;; * ) @@ -111,1228 +110,1169 @@ exit 1;; esac -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 - ;; - -lynx*) - os=-lynxos +# Split fields of configuration type +# shellcheck disable=SC2162 +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac ;; - -psos*) - os=-psos + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac ;; esac -# Decode aliases for certain CPU-COMPANY combinations. +# Decode 1-component or ad-hoc basic machines case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | epiphany \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pyramid \ - | riscv32 | riscv64 \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | visium \ - | we32k \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - leon|leon[3-9]) - basic_machine=sparc-$basic_machine - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + op50n) + cpu=hppa1.1 + vendor=oki ;; - ms1) - basic_machine=mt-unknown + op60c) + cpu=hppa1.1 + vendor=oki ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown + ibm*) + cpu=i370 + vendor=ibm ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none + orion105) + cpu=clipper + vendor=highlevel ;; - xscaleeb) - basic_machine=armeb-unknown + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple ;; - - xscaleel) - basic_machine=armel-unknown + pmac | pmac-mpw) + cpu=powerpc + vendor=apple ;; - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pyramid-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | visium-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att + cpu=m68000 + vendor=att ;; 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux + cpu=we32k + vendor=att ;; bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec + cpu=powerpc + vendor=ibm + basic_os=cnk ;; decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 + cpu=pdp10 + vendor=dec + basic_os=tops10 ;; decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 + cpu=pdp10 + vendor=dec + basic_os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon + cpu=m68k + vendor=motorola ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 ;; encore | umax | mmax) - basic_machine=ns32k-encore + cpu=ns32k + vendor=encore ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} ;; fx2800) - basic_machine=i860-alliant + cpu=i860 + vendor=alliant ;; genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 + cpu=ns32k + vendor=ns ;; h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp + cpu=m68000 + vendor=hp ;; hp9k3[2-9][0-9]) - basic_machine=m68k-hp + cpu=m68k + vendor=hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm + cpu=hppa1.0 + vendor=hp ;; i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=sysv32 ;; i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=sysv4 ;; i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=sysv ;; i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta + cpu=$(echo "$1" | sed -e 's/86.*/86/') + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} ;; iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) + cpu=mips + vendor=sgi + case $basic_os in + irix*) ;; *) - os=-irix4 + basic_os=irix4 ;; esac ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - leon-*|leon[3-9]-*) - basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + cpu=m68000 + vendor=convergent ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - moxiebox) - basic_machine=moxie-unknown - os=-moxiebox - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint ;; news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) ;; - -ns2*) - os=-nextstep2 + ns2*) + basic_os=nextstep2 ;; *) - os=-nextstep3 + basic_os=nextstep3 ;; esac ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem + cpu=np1 + vendor=gould ;; op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k + cpu=hppa1.1 + vendor=oki + basic_os=proelf ;; pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 ;; pbd) - basic_machine=sparc-tti + cpu=sparc + vendor=tti ;; pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + cpu=m68k + vendor=tti ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc + pc532) + cpu=ns32k + vendor=pc532 ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc + pn) + cpu=pn + vendor=gould ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + power) + cpu=power + vendor=ibm ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ps2) + cpu=i386 + vendor=ibm ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + rm[46]00) + cpu=mips + vendor=siemens ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + rtpc | rtpc-*) + cpu=romp + vendor=ibm ;; - pn) - basic_machine=pn-gould + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks ;; - power) basic_machine=power-ibm + tower | tower-32) + cpu=m68k + vendor=ncr ;; - ppc | ppcbe) basic_machine=powerpc-unknown + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + w65) + cpu=w65 + vendor=wdc ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + none) + cpu=none + vendor=none ;; - ppc64) basic_machine=powerpc64-unknown + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + leon-*|leon[3-9]-*) + cpu=sparc + vendor=$(echo "$basic_machine" | sed 's/-.*//') ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown + + *-*) + # shellcheck disable=SC2162 + IFS="-" read cpu vendor <&2 - exit 1 + # Recognize the canonical CPU types that are allowed with any + # company name. + case $cpu in + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | abacus \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ + | alphapca5[67] | alpha64pca5[67] \ + | am33_2.0 \ + | amdgcn \ + | arc | arceb \ + | arm | arm[lb]e | arme[lb] | armv* \ + | avr | avr32 \ + | asmjs \ + | ba \ + | be32 | be64 \ + | bfin | bpf | bs2000 \ + | c[123]* | c30 | [cjt]90 | c4x \ + | c8051 | clipper | craynv | csky | cydra \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | elxsi | epiphany \ + | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ + | h8300 | h8500 \ + | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i*86 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | loongarch32 | loongarch64 | loongarchx32 \ + | m32c | m32r | m32rle \ + | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ + | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ + | m88110 | m88k | maxq | mb | mcore | mep | metag \ + | microblaze | microblazeel \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64eb | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mmix \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nfp \ + | nios | nios2 | nios2eb | nios2el \ + | none | np1 | ns16k | ns32k | nvptx \ + | open8 \ + | or1k* \ + | or32 \ + | orion \ + | picochip \ + | pdp10 | pdp11 | pj | pjl | pn | power \ + | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ + | pru \ + | pyramid \ + | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ + | rl78 | romp | rs6000 | rx \ + | s390 | s390x \ + | score \ + | sh | shl \ + | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ + | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ + | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ + | spu \ + | tahoe \ + | thumbv7* \ + | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ + | tron \ + | ubicom32 \ + | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ + | vax \ + | visium \ + | w65 \ + | wasm32 | wasm64 \ + | we32k \ + | x86 | x86_64 | xc16x | xgate | xps100 \ + | xstormy16 | xtensa* \ + | ymp \ + | z8k | z80) + ;; + + *) + echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 + exit 1 + ;; + esac ;; esac # Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` +case $vendor in + digital*) + vendor=dec ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + commodore*) + vendor=cbm ;; *) ;; @@ -1340,200 +1280,213 @@ # Decode manufacturer-specific aliases for certain operating systems. -if [ x"$os" != x"" ] +if test x$basic_os != x then + +# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=$(echo $basic_os | sed -e 's|gnu/linux|gnu|') + ;; + os2-emx) + kernel=os2 + os=$(echo $basic_os | sed -e 's|os2-emx|emx|') + ;; + nto-qnx*) + kernel=nto + os=$(echo $basic_os | sed -e 's|nto-qnx|qnx|') + ;; + *-*) + # shellcheck disable=SC2162 + IFS="-" read kernel os <&2 - exit 1 + # No normalization, but not necessarily accepted, that comes below. ;; esac + else # Here we handle the default operating systems that come with various machines. @@ -1546,261 +1499,361 @@ # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. -case $basic_machine in +kernel= +case $cpu-$vendor in score-*) - os=-elf + os=elf ;; spu-*) - os=-elf + os=elf ;; *-acorn) - os=-riscix1.2 + os=riscix1.2 ;; arm*-rebel) - os=-linux + kernel=linux + os=gnu ;; arm*-semi) - os=-aout + os=aout ;; c4x-* | tic4x-*) - os=-coff + os=coff ;; c8051-*) - os=-elf + os=elf + ;; + clipper-intergraph) + os=clix ;; hexagon-*) - os=-elf + os=elf ;; tic54x-*) - os=-coff + os=coff ;; tic55x-*) - os=-coff + os=coff ;; tic6x-*) - os=-coff + os=coff ;; # This must come before the *-dec entry. pdp10-*) - os=-tops20 + os=tops20 ;; pdp11-*) - os=-none + os=none ;; *-dec | vax-*) - os=-ultrix4.2 + os=ultrix4.2 ;; m68*-apollo) - os=-domain + os=domain ;; i386-sun) - os=-sunos4.0.2 + os=sunos4.0.2 ;; m68000-sun) - os=-sunos3 + os=sunos3 ;; m68*-cisco) - os=-aout + os=aout ;; mep-*) - os=-elf + os=elf ;; mips*-cisco) - os=-elf + os=elf ;; mips*-*) - os=-elf + os=elf ;; or32-*) - os=-coff + os=coff ;; *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 + os=sysv3 ;; sparc-* | *-sun) - os=-sunos4.1.1 + os=sunos4.1.1 ;; - *-be) - os=-beos + pru-*) + os=elf ;; - *-haiku) - os=-haiku + *-be) + os=beos ;; *-ibm) - os=-aix + os=aix ;; *-knuth) - os=-mmixware + os=mmixware ;; *-wec) - os=-proelf + os=proelf ;; *-winbond) - os=-proelf + os=proelf ;; *-oki) - os=-proelf + os=proelf ;; *-hp) - os=-hpux + os=hpux ;; *-hitachi) - os=-hiux + os=hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv + os=sysv ;; *-cbm) - os=-amigaos + os=amigaos ;; *-dg) - os=-dgux + os=dgux ;; *-dolphin) - os=-sysv3 + os=sysv3 ;; m68k-ccur) - os=-rtu + os=rtu ;; m88k-omron*) - os=-luna + os=luna ;; - *-next ) - os=-nextstep + *-next) + os=nextstep ;; *-sequent) - os=-ptx + os=ptx ;; *-crds) - os=-unos + os=unos ;; *-ns) - os=-genix + os=genix ;; i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 + os=mvs ;; *-gould) - os=-sysv + os=sysv ;; *-highlevel) - os=-bsd + os=bsd ;; *-encore) - os=-bsd + os=bsd ;; *-sgi) - os=-irix + os=irix ;; *-siemens) - os=-sysv4 + os=sysv4 ;; *-masscomp) - os=-rtu + os=rtu ;; f30[01]-fujitsu | f700-fujitsu) - os=-uxpv + os=uxpv ;; *-rom68k) - os=-coff + os=coff ;; *-*bug) - os=-coff + os=coff ;; *-apple) - os=-macos + os=macos ;; *-atari*) - os=-mint + os=mint + ;; + *-wrs) + os=vxworks ;; *) - os=-none + os=none ;; esac + fi +# Now, validate our (potentially fixed-up) OS. +case $os in + # Sometimes we do "kernel-libc", so those need to count as OSes. + musl* | newlib* | uclibc*) + ;; + # Likewise for "kernel-abi" + eabi* | gnueabi*) + ;; + # VxWorks passes extra cpu info in the 4th filed. + simlinux | simwindows | spe) + ;; + # Now accept the basic system types. + # The portable systems comes first. + # Each alternative MUST end in a * to match a version number. + gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ + | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ + | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ + | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ + | hiux* | abug | nacl* | netware* | windows* \ + | os9* | macos* | osx* | ios* \ + | mpw* | magic* | mmixware* | mon960* | lnews* \ + | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ + | aos* | aros* | cloudabi* | sortix* | twizzler* \ + | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ + | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ + | mirbsd* | netbsd* | dicos* | openedition* | ose* \ + | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \ + | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ + | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ + | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ + | udi* | lites* | ieee* | go32* | aux* | hcos* \ + | chorusrdb* | cegcc* | glidix* \ + | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ + | midipix* | mingw32* | mingw64* | mint* \ + | uxpv* | beos* | mpeix* | udk* | moxiebox* \ + | interix* | uwin* | mks* | rhapsody* | darwin* \ + | openstep* | oskit* | conix* | pw32* | nonstopux* \ + | storm-chaos* | tops10* | tenex* | tops20* | its* \ + | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ + | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ + | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ + | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*) + ;; + # This one is extra strict with allowed versions + sco3.2v2 | sco3.2v[4-9]* | sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + ;; + none) + ;; + *) + echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) vendor=acorn ;; - -sunos*) + *-sunos*) vendor=sun ;; - -cnk*|-aix*) + *-cnk* | *-aix*) vendor=ibm ;; - -beos*) + *-beos*) vendor=be ;; - -hpux*) + *-hpux*) vendor=hp ;; - -mpeix*) + *-mpeix*) vendor=hp ;; - -hiux*) + *-hiux*) vendor=hitachi ;; - -unos*) + *-unos*) vendor=crds ;; - -dgux*) + *-dgux*) vendor=dg ;; - -luna*) + *-luna*) vendor=omron ;; - -genix*) + *-genix*) vendor=ns ;; - -mvs* | -opened*) + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) vendor=ibm ;; - -os400*) + s390-* | s390x-*) vendor=ibm ;; - -ptx*) + *-ptx*) vendor=sequent ;; - -tpf*) + *-tpf*) vendor=ibm ;; - -vxsim* | -vxworks* | -windiss*) + *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; - -aux*) + *-aux*) vendor=apple ;; - -hms*) + *-hms*) vendor=hitachi ;; - -mpw* | -macos*) + *-mpw* | *-macos*) vendor=apple ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; - -vos*) + *-vos*) vendor=stratus ;; esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac -echo $basic_machine$os +echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ -# Copyright (c) 2013-2016 Intel, Inc. All rights reserved +# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. # Copyright (c) 2016 Research Organization for Information Science # and Technology (RIST). All rights reserved. -# Copyright (c) 2006-2016 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2006-2020 Cisco Systems, Inc. All rights reserved # Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana # University Research and Technology # Corporation. All rights reserved. @@ -27,6 +27,7 @@ c_get_alignment.m4 \ pmix_get_version.sh \ distscript.sh \ + md2nroff.pl \ pmix_check_attributes.m4 \ pmix_check_broken_qsort.m4 \ pmix_check_compiler_version.m4 \ @@ -42,7 +43,6 @@ pmix.m4 \ pmix_search_libs.m4 \ pmix_setup_cc.m4 \ - pmix_setup_zlib.m4 \ pmix_setup_libevent.m4 \ pmix_mca_priority_sort.pl \ mca_library_paths.txt diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -14,10 +14,10 @@ @SET_MAKE@ -# Copyright (c) 2013-2016 Intel, Inc. All rights reserved +# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. # Copyright (c) 2016 Research Organization for Information Science # and Technology (RIST). All rights reserved. -# Copyright (c) 2006-2016 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2006-2020 Cisco Systems, Inc. All rights reserved # Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana # University Research and Technology # Corporation. All rights reserved. @@ -129,7 +129,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -159,6 +158,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -169,7 +169,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -282,6 +281,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -345,6 +351,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -367,6 +380,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -385,6 +400,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -393,9 +409,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -409,6 +425,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -454,6 +471,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -466,10 +487,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ @@ -492,6 +509,7 @@ c_get_alignment.m4 \ pmix_get_version.sh \ distscript.sh \ + md2nroff.pl \ pmix_check_attributes.m4 \ pmix_check_broken_qsort.m4 \ pmix_check_compiler_version.m4 \ @@ -507,7 +525,6 @@ pmix.m4 \ pmix_search_libs.m4 \ pmix_setup_cc.m4 \ - pmix_setup_zlib.m4 \ pmix_setup_libevent.m4 \ pmix_mca_priority_sort.pl \ mca_library_paths.txt diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/mca_library_paths.txt openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/mca_library_paths.txt --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/mca_library_paths.txt 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/mca_library_paths.txt 2022-05-29 09:51:40.000000000 +0000 @@ -1 +1 @@ -src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/pnet/opa:src/mca/pnet/tcp:src/mca/pnet/test:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/ptl/tcp:src/mca/ptl/usock \ No newline at end of file +src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pcompress/zlib:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/preg/compress:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/psquash/flex128:src/mca/psquash/native:src/mca/ptl/tcp:src/mca/ptl/usock \ No newline at end of file diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/md2nroff.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/md2nroff.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/md2nroff.pl 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/md2nroff.pl 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,136 @@ +#!/usr/bin/env perl +# +# Copyright (c) 2020 Cisco Systems, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# This script is friendly to both Python 2 and Python 3. + +use strict; + +use IPC::Open3; +use File::Basename; +use Getopt::Long; + +#-------------------------------------------------------------------------- + +my $source_arg; +my $dest_arg; +my $pandoc_arg = "pandoc"; +my $help_arg; +my $verbose_arg; + +my $ok = Getopt::Long::GetOptions("source=s" => \$source_arg, + "dest=s" => \$dest_arg, + "pandoc=s" => \$pandoc_arg, + "help" => \$help_arg, + "verbose" => \$verbose_arg); + +if (!$source_arg || !$dest_arg) { + print("Must specify --source and --dest\n"); + $ok = 0; +} + +if (!$ok || $help_arg) { + print "Invalid command line argument.\n\n" + if (!$ok); + print "Options: + --source FILE Source Markdown filename + --dest FILE Destination nroff file + --pandoc FILE Location of pandoc executable + --help This help list + --verbose Be verbose when running\n"; + exit($ok ? 0 : 1); +} + +#-------------------------------------------------------------------------- + +# If the destination exists, read it in +my $dest_content; +if (-f $dest_arg) { + open(FILE, $dest_arg) || + die "Can't open $dest_arg"; + $dest_content .= $_ + while(); + close(FILE); +} + +#-------------------------------------------------------------------------- + +# Read in the source +die "Error: $source_arg does not exist" + if (! -f $source_arg); + +my $source_content; +open(FILE, $source_arg) || + die "Can't open $source_arg"; +$source_content .= $_ + while(); +close(FILE); + +#-------------------------------------------------------------------------- + +# Figure out the section of man page +die "Cannot figure out man page section from source filename" + if (!($source_arg =~ m/(\d+).md$/)); +my $man_section = $1; + +my $shortfile = basename($source_arg); +$shortfile =~ s/\.$man_section\.md$//; + +#-------------------------------------------------------------------------- + +my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(); +my $today = sprintf("%04d-%02d-%02d", ($year+1900), $mon, $mday); + +# Run opal_get_version.sh to get the OMPI version. +my $config_dir = dirname($0); +my $get_version = "$config_dir/opal_get_version.sh"; +my $VERSION_file = "$config_dir/../VERSION"; +my $out = `$get_version $VERSION_file --full`; +chomp($out); + +# Pandoc does not handle markdown links in output nroff properly, so +# just remove all links. Specifically: some versions of Pandoc ignore +# the links, but others handle it badly. +$source_content =~ s/\[(.+)\]\((.+)\)/\1/g; + +# Add the pandoc header +$source_content = "--- +section: $man_section +title: $shortfile +header: Open PMIx +footer: $today +--- + +$source_content"; + +#-------------------------------------------------------------------------- + +print("*** Processing: $source_arg --> $dest_arg\n") + if ($verbose_arg); + +# Run Pandoc +my $pid = open3(my $child_stdin, my $child_stdout, my $child_stderr, + "$pandoc_arg -s --from=markdown --to=man"); +print $child_stdin $source_content; +close($child_stdin); +my $pandoc_rendered; +$pandoc_rendered .= $_ + while(<$child_stdout>); +close($child_stdout); +close($child_stderr) + if ($child_stderr); +waitpid($pid, 0); + +# Write the output to the target file +open(FILE, ">$dest_arg") || + die "Can't open $dest_arg for writing"; +print FILE $pandoc_rendered; +close(FILE); + +exit(0); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_check_psm2.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_check_psm2.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_check_psm2.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_check_psm2.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ -# -*- shell-script -*- -# -# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana -# University Research and Technology -# Corporation. All rights reserved. -# Copyright (c) 2004-2005 The University of Tennessee and The University -# of Tennessee Research Foundation. All rights -# reserved. -# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# Copyright (c) 2004-2006 The Regents of the University of California. -# All rights reserved. -# Copyright (c) 2006 QLogic Corp. All rights reserved. -# Copyright (c) 2009-2016 Cisco Systems, Inc. All rights reserved. -# Copyright (c) 2016-2017 Intel, Inc. All rights reserved. -# Copyright (c) 2015 Research Organization for Information Science -# and Technology (RIST). All rights reserved. -# Copyright (c) 2016 Los Alamos National Security, LLC. All rights -# reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# PMIX_CHECK_PSM2(prefix, [action-if-found], [action-if-not-found]) -# -------------------------------------------------------- -# check if PSM2 support can be found. sets prefix_{CPPFLAGS, -# LDFLAGS, LIBS} as needed and runs action-if-found if there is -# support, otherwise executes action-if-not-found -AC_DEFUN([PMIX_CHECK_PSM2],[ - if test -z "$pmix_check_psm2_happy" ; then - AC_ARG_WITH([psm2], - [AC_HELP_STRING([--with-psm2(=DIR)], - [Build PSM2 (Intel PSM2) support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])]) - PMIX_CHECK_WITHDIR([psm2], [$with_psm2], [include/psm2.h]) - AC_ARG_WITH([psm2-libdir], - [AC_HELP_STRING([--with-psm2-libdir=DIR], - [Search for PSM (Intel PSM2) libraries in DIR])]) - PMIX_CHECK_WITHDIR([psm2-libdir], [$with_psm2_libdir], [libpsm2.*]) - - pmix_check_psm2_$1_save_CPPFLAGS="$CPPFLAGS" - pmix_check_psm2_$1_save_LDFLAGS="$LDFLAGS" - pmix_check_psm2_$1_save_LIBS="$LIBS" - - AS_IF([test "$with_psm2" != "no"], - [AS_IF([test ! -z "$with_psm2" && test "$with_psm2" != "yes"], - [pmix_check_psm2_dir="$with_psm2"]) - AS_IF([test ! -z "$with_psm2_libdir" && test "$with_psm2_libdir" != "yes"], - [pmix_check_psm2_libdir="$with_psm2_libdir"]) - - PMIX_CHECK_PACKAGE([pmix_check_psm2], - [psm2.h], - [psm2], - [psm2_mq_irecv2], - [], - [$pmix_check_psm2_dir], - [$pmix_check_psm2_libdir], - [pmix_check_psm2_happy="yes"], - [pmix_check_psm2_happy="no"])], - [pmix_check_psm2_happy="no"]) - - CPPFLAGS="$pmix_check_psm2_$1_save_CPPFLAGS" - LDFLAGS="$pmix_check_psm2_$1_save_LDFLAGS" - LIBS="$pmix_check_psm2_$1_save_LIBS" - - AS_IF([test "$pmix_check_psm2_happy" = "yes" && test "$enable_progress_threads" = "yes"], - [AC_MSG_WARN([PSM2 driver does not currently support progress threads. Disabling MTL.]) - pmix_check_psm2_happy="no"]) - - AS_IF([test "$pmix_check_psm2_happy" = "yes"], - [AC_CHECK_HEADERS( - glob.h, - [], - [AC_MSG_WARN([glob.h not found. Can not build component.]) - pmix_check_psm2_happy="no"])]) - - fi - - AS_IF([test "$pmix_check_psm2_happy" = "yes"], - [$1_LDFLAGS="[$]$1_LDFLAGS $pmix_check_psm2_LDFLAGS" - $1_CPPFLAGS="[$]$1_CPPFLAGS $pmix_check_psm2_CPPFLAGS" - $1_LIBS="[$]$1_LIBS $pmix_check_psm2_LIBS" - $2], - [AS_IF([test ! -z "$with_psm2" && test "$with_psm2" != "no"], - [AC_MSG_ERROR([PSM2 support requested but not found. Aborting])]) - $3]) -]) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_config_asm.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_config_asm.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_config_asm.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_config_asm.m4 2022-05-29 09:51:40.000000000 +0000 @@ -11,13 +11,14 @@ dnl All rights reserved. dnl Copyright (c) 2008-2018 Cisco Systems, Inc. All rights reserved. dnl Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. -dnl Copyright (c) 2015-2017 Research Organization for Information Science -dnl and Technology (RIST). All rights reserved. +dnl Copyright (c) 2015-2018 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. dnl Copyright (c) 2014-2018 Los Alamos National Security, LLC. All rights dnl reserved. dnl Copyright (c) 2017 Amazon.com, Inc. or its affiliates. All Rights dnl reserved. -dnl Copyright (c) 2018-2019 Intel, Inc. All rights reserved. +dnl Copyright (c) 2020 Google, LLC. All rights reserved. +dnl Copyright (c) 2020 Intel, Inc. All rights reserved. dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow @@ -32,12 +33,10 @@ #include #include #include - typedef union { uint64_t fake@<:@2@:>@; __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -53,7 +52,6 @@ exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; @@ -66,7 +64,6 @@ exit(2); } } - int main(int argc, char** argv) { test1(); @@ -84,12 +81,10 @@ #include #include #include - typedef union { uint64_t fake@<:@2@:>@; __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -103,7 +98,6 @@ exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; @@ -114,7 +108,6 @@ exit(2); } } - int main(int argc, char** argv) { test1(); @@ -131,12 +124,11 @@ #include #include #include - typedef union { uint64_t fake@<:@2@:>@; _Atomic __int128 real; + __int128 real2; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -145,27 +137,23 @@ pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if ( !(r == false && ptr.real == expected.real)) { exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = ptr; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if (!(r == true && ptr.real == desired.real)) { exit(2); } } - int main(int argc, char** argv) { test1(); @@ -206,10 +194,8 @@ dnl AC_DEFUN([PMIX_ASM_CHECK_ATOMIC_FUNC],[ PMIX_VAR_SCOPE_PUSH([pmix_asm_check_func_happy pmix_asm_check_func_CFLAGS_save pmix_asm_check_func_LIBS_save]) - pmix_asm_check_func_CFLAGS_save=$CFLAGS pmix_asm_check_func_LIBS_save=$LIBS - dnl Check with no compiler/linker flags AC_MSG_CHECKING([for $1]) AC_LINK_IFELSE([$2], @@ -217,7 +203,6 @@ AC_MSG_RESULT([yes])], [pmix_asm_check_func_happy=0 AC_MSG_RESULT([no])]) - dnl If that didn't work, try again with CFLAGS+=mcx16 AS_IF([test $pmix_asm_check_func_happy -eq 0], [AC_MSG_CHECKING([for $1 with -mcx16]) @@ -229,7 +214,6 @@ CFLAGS=$pmix_asm_check_func_CFLAGS_save AC_MSG_RESULT([no])]) ]) - dnl If that didn't work, try again with LIBS+=-latomic AS_IF([test $pmix_asm_check_func_happy -eq 0], [AC_MSG_CHECKING([for $1 with -latomic]) @@ -241,7 +225,6 @@ LIBS=$pmix_asm_check_func_LIBS_save AC_MSG_RESULT([no])]) ]) - dnl If we have it, try it and make sure it gives a correct result. dnl As of Aug 2018, we know that it links but does *not* work on clang dnl 6 on ARM64. @@ -253,15 +236,12 @@ AC_MSG_RESULT([no])], [AC_MSG_RESULT([cannot test -- assume yes (cross compiling)])]) ]) - dnl If we were unsuccessful, restore CFLAGS/LIBS AS_IF([test $pmix_asm_check_func_happy -eq 0], [CFLAGS=$pmix_asm_check_func_CFLAGS_save LIBS=$pmix_asm_check_func_LIBS_save]) - dnl Run the user actions AS_IF([test $pmix_asm_check_func_happy -eq 1], [$3], [$4]) - PMIX_VAR_SCOPE_POP ]) @@ -269,7 +249,6 @@ AC_DEFUN([PMIX_CHECK_SYNC_BUILTIN_CSWAP_INT128], [ PMIX_VAR_SCOPE_PUSH([sync_bool_compare_and_swap_128_result]) - # Do we have __sync_bool_compare_and_swap? # Use a special macro because we need to check with a few different # CFLAGS/LIBS. @@ -277,51 +256,16 @@ [AC_LANG_SOURCE(PMIX_SYNC_BOOL_COMPARE_AND_SWAP_TEST_SOURCE)], [sync_bool_compare_and_swap_128_result=1], [sync_bool_compare_and_swap_128_result=0]) - AC_DEFINE_UNQUOTED([PMIX_HAVE_SYNC_BUILTIN_CSWAP_INT128], [$sync_bool_compare_and_swap_128_result], [Whether the __sync builtin atomic compare and swap supports 128-bit values]) - PMIX_VAR_SCOPE_POP ]) -AC_DEFUN([PMIX_CHECK_SYNC_BUILTINS], [ - AC_MSG_CHECKING([for __sync builtin atomics]) - - AC_TRY_LINK([long tmp;], [__sync_synchronize(); -__sync_bool_compare_and_swap(&tmp, 0, 1); -__sync_add_and_fetch(&tmp, 1);], - [AC_MSG_RESULT([yes]) - $1], - [AC_MSG_RESULT([no]) - $2]) - - AC_MSG_CHECKING([for 64-bit __sync builtin atomics]) - - AC_TRY_LINK([ -#include -uint64_t tmp;], [ -__sync_bool_compare_and_swap(&tmp, 0, 1); -__sync_add_and_fetch(&tmp, 1);], - [AC_MSG_RESULT([yes]) - pmix_asm_sync_have_64bit=1], - [AC_MSG_RESULT([no]) - pmix_asm_sync_have_64bit=0]) - - AC_DEFINE_UNQUOTED([PMIX_ASM_SYNC_HAVE_64BIT],[$pmix_asm_sync_have_64bit], - [Whether 64-bit is supported by the __sync builtin atomics]) - - # Check for 128-bit support - PMIX_CHECK_SYNC_BUILTIN_CSWAP_INT128 -]) - - AC_DEFUN([PMIX_CHECK_GCC_BUILTIN_CSWAP_INT128], [ PMIX_VAR_SCOPE_PUSH([atomic_compare_exchange_n_128_result atomic_compare_exchange_n_128_CFLAGS_save atomic_compare_exchange_n_128_LIBS_save]) - atomic_compare_exchange_n_128_CFLAGS_save=$CFLAGS atomic_compare_exchange_n_128_LIBS_save=$LIBS - # Do we have __sync_bool_compare_and_swap? # Use a special macro because we need to check with a few different # CFLAGS/LIBS. @@ -329,7 +273,6 @@ [AC_LANG_SOURCE(PMIX_ATOMIC_COMPARE_EXCHANGE_N_TEST_SOURCE)], [atomic_compare_exchange_n_128_result=1], [atomic_compare_exchange_n_128_result=0]) - # If we have it and it works, check to make sure it is always lock # free. AS_IF([test $atomic_compare_exchange_n_128_result -eq 1], @@ -347,23 +290,20 @@ AC_MSG_RESULT([no])], [AC_MSG_RESULT([cannot test -- assume yes (cross compiling)])]) ]) - AC_DEFINE_UNQUOTED([PMIX_HAVE_GCC_BUILTIN_CSWAP_INT128], [$atomic_compare_exchange_n_128_result], [Whether the __atomic builtin atomic compare swap is both supported and lock-free on 128-bit values]) - dnl If we could not find decent support for 128-bits __atomic let's dnl try the GCC _sync AS_IF([test $atomic_compare_exchange_n_128_result -eq 0], [PMIX_CHECK_SYNC_BUILTIN_CSWAP_INT128]) - PMIX_VAR_SCOPE_POP ]) AC_DEFUN([PMIX_CHECK_GCC_ATOMIC_BUILTINS], [ - AC_MSG_CHECKING([for __atomic builtin atomics]) - - AC_TRY_LINK([ + if test -z "$pmix_cv_have___atomic" ; then + AC_MSG_CHECKING([for 32-bit GCC built-in atomics]) + AC_TRY_LINK([ #include uint32_t tmp, old = 0; uint64_t tmp64, old64 = 0;], [ @@ -372,21 +312,39 @@ __atomic_add_fetch(&tmp, 1, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&tmp64, &old64, 1, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED); __atomic_add_fetch(&tmp64, 1, __ATOMIC_RELAXED);], - [AC_MSG_RESULT([yes]) - $1], - [AC_MSG_RESULT([no]) - $2]) - - # Check for 128-bit support - PMIX_CHECK_GCC_BUILTIN_CSWAP_INT128 + [pmix_cv_have___atomic=yes], + [pmix_cv_have___atomic=no]) + AC_MSG_RESULT([$pmix_cv_have___atomic]) + if test $pmix_cv_have___atomic = "yes" ; then + AC_MSG_CHECKING([for 64-bit GCC built-in atomics]) + AC_TRY_LINK([ +#include +uint64_t tmp64, old64 = 0;], [ +__atomic_compare_exchange_n(&tmp64, &old64, 1, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED); +__atomic_add_fetch(&tmp64, 1, __ATOMIC_RELAXED);], + [pmix_cv_have___atomic_64=yes], + [pmix_cv_have___atomic_64=no]) + AC_MSG_RESULT([$pmix_cv_have___atomic_64]) + if test $pmix_cv_have___atomic_64 = "yes" ; then + AC_MSG_CHECKING([if 64-bit GCC built-in atomics are lock-free]) + AC_RUN_IFELSE([AC_LANG_PROGRAM([], [if (!__atomic_is_lock_free (8, 0)) { return 1; }])], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + pmix_cv_have___atomic_64=no], + [AC_MSG_RESULT([cannot test -- assume yes (cross compiling)])]) + fi + else + pmix_cv_have___atomic_64=no + fi + # Check for 128-bit support + PMIX_CHECK_GCC_BUILTIN_CSWAP_INT128 + fi ]) AC_DEFUN([PMIX_CHECK_C11_CSWAP_INT128], [ PMIX_VAR_SCOPE_PUSH([atomic_compare_exchange_result atomic_compare_exchange_CFLAGS_save atomic_compare_exchange_LIBS_save]) - atomic_compare_exchange_CFLAGS_save=$CFLAGS atomic_compare_exchange_LIBS_save=$LIBS - # Do we have C11 atomics on 128-bit integers? # Use a special macro because we need to check with a few different # CFLAGS/LIBS. @@ -394,7 +352,6 @@ [AC_LANG_SOURCE(PMIX_ATOMIC_COMPARE_EXCHANGE_STRONG_TEST_SOURCE)], [atomic_compare_exchange_result=1], [atomic_compare_exchange_result=0]) - # If we have it and it works, check to make sure it is always lock # free. AS_IF([test $atomic_compare_exchange_result -eq 1], @@ -412,41 +369,16 @@ AC_MSG_RESULT([no])], [AC_MSG_RESULT([cannot test -- assume yes (cross compiling)])]) ]) - AC_DEFINE_UNQUOTED([PMIX_HAVE_C11_CSWAP_INT128], [$atomic_compare_exchange_result], [Whether C11 atomic compare swap is both supported and lock-free on 128-bit values]) - dnl If we could not find decent support for 128-bits atomic let's dnl try the GCC _sync AS_IF([test $atomic_compare_exchange_result -eq 0], [PMIX_CHECK_SYNC_BUILTIN_CSWAP_INT128]) - PMIX_VAR_SCOPE_POP ]) -AC_DEFUN([PMIX_CHECK_GCC_ATOMIC_BUILTINS], [ - AC_MSG_CHECKING([for __atomic builtin atomics]) - - AC_TRY_LINK([ -#include -uint32_t tmp, old = 0; -uint64_t tmp64, old64 = 0;], [ -__atomic_thread_fence(__ATOMIC_SEQ_CST); -__atomic_compare_exchange_n(&tmp, &old, 1, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED); -__atomic_add_fetch(&tmp, 1, __ATOMIC_RELAXED); -__atomic_compare_exchange_n(&tmp64, &old64, 1, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED); -__atomic_add_fetch(&tmp64, 1, __ATOMIC_RELAXED);], - [AC_MSG_RESULT([yes]) - $1], - [AC_MSG_RESULT([no]) - $2]) - - # Check for 128-bit support - PMIX_CHECK_GCC_BUILTIN_CSWAP_INT128 -]) - - dnl ################################################################# dnl dnl PMIX_CHECK_ASM_TEXT @@ -526,9 +458,7 @@ # --------------------------------------- AC_DEFUN([_PMIX_CHECK_ASM_LSYM],[ AC_REQUIRE([AC_PROG_GREP]) - $1="L" - for sym in L .L $ L$ ; do asm_result=0 echo "configure: trying $sym" >&AC_FD_CC @@ -565,7 +495,6 @@ # --------------------- AC_DEFUN([PMIX_CHECK_ASM_LSYM],[ AC_REQUIRE([AC_PROG_NM]) - AC_CACHE_CHECK([prefix for lsym labels], [pmix_cv_asm_lsym], [_PMIX_CHECK_ASM_LSYM([pmix_cv_asm_lsym])]) @@ -593,7 +522,6 @@ .endp mysym], [pmix_cv_asm_need_proc="yes"]) rm -f conftest.out]) - if test "$pmix_cv_asm_need_proc" = "yes" ; then pmix_cv_asm_proc=".proc" pmix_cv_asm_endproc=".endp" @@ -616,21 +544,17 @@ AC_CACHE_CHECK([prefix for global symbol labels], [pmix_cv_asm_gsym], [_PMIX_CHECK_ASM_GSYM]) - if test "$pmix_cv_asm_gsym" = "none" ; then AC_MSG_ERROR([Could not determine global symbol label prefix]) fi - AC_DEFINE_UNQUOTED([PMIX_ASM_GSYM], ["$pmix_cv_asm_gsym"], [Assembly prefix for gsym labels]) PMIX_ASM_GSYM="$pmix_cv_asm_gsym" AC_SUBST(PMIX_ASM_GSYM) - ]) AC_DEFUN([_PMIX_CHECK_ASM_GSYM],[ pmix_cv_asm_gsym="none" - for sym in "_" "" "." ; do asm_result=0 echo "configure: trying $sym" >&AC_FD_CC @@ -727,7 +651,6 @@ AC_DEFUN([PMIX_CHECK_ASM_ALIGN_LOG],[ AC_REQUIRE([AC_PROG_NM]) AC_REQUIRE([AC_PROG_GREP]) - AC_CACHE_CHECK([if .align directive takes logarithmic value], [pmix_cv_asm_align_log], [ PMIX_TRY_ASSEMBLE([ $pmix_cv_asm_text @@ -746,17 +669,14 @@ else pmix_cv_asm_align_log="no" fi]) - if test "$pmix_cv_asm_align_log" = "yes" || test "$pmix_cv_asm_align_log" = "1" ; then pmix_asm_align_log_result=1 else pmix_asm_align_log_result=0 fi - AC_DEFINE_UNQUOTED([PMIX_ASM_ALIGN_LOG], [$asm_align_log_result], [Assembly align directive expects logarithmic value]) - unset omp_asm_addr asm_result ])dnl @@ -777,7 +697,6 @@ AC_CACHE_CHECK([prefix for function in .type], [pmix_cv_asm_type], [_PMIX_CHECK_ASM_TYPE]) - AC_DEFINE_UNQUOTED([PMIX_ASM_TYPE], ["$pmix_cv_asm_type"], [How to set function type in .type directive]) PMIX_ASM_TYPE="$pmix_cv_asm_type" @@ -786,7 +705,6 @@ AC_DEFUN([_PMIX_CHECK_ASM_TYPE],[ pmix_cv_asm_type="" - case "${host}" in *-sun-solaris*) # GCC on solaris seems to accept just about anything, not @@ -809,7 +727,6 @@ ;; esac rm -f conftest.out - unset asm_result type ])dnl @@ -829,13 +746,11 @@ PMIX_TRY_ASSEMBLE([ .size mysym, 1], [pmix_cv_asm_need_size="yes"]) rm -f conftest.out]) - if test "$pmix_cv_asm_need_size" = "yes" ; then pmix_asm_size=1 else pmix_asm_size=0 fi - AC_DEFINE_UNQUOTED([PMIX_ASM_SIZE], ["$pmix_asm_size"], [Do we need to give a .size directive]) PMIX_ASM_SIZE="$pmix_asm_size" @@ -850,7 +765,6 @@ # disable execable stacks with GAS AC_DEFUN([PMIX_CHECK_ASM_GNU_STACKEXEC], [ AC_REQUIRE([AC_PROG_GREP]) - AC_CHECK_PROG([OBJDUMP], [objdump], [objdump]) AC_CACHE_CHECK([if .note.GNU-stack is needed], [pmix_cv_asm_gnu_stack_result], @@ -860,7 +774,7 @@ int testfunc() {return 0; } EOF PMIX_LOG_COMMAND([$CC $CFLAGS -c conftest.c -o conftest.$OBJEXT], - [$OBJDUMP -x conftest.$OBJEXT | $GREP '\.note\.GNU-stack' > /dev/null && pmix_cv_asm_gnu_stack_result=yes], + [$OBJDUMP -x conftest.$OBJEXT 2>&1 | $GREP '\.note\.GNU-stack' &> /dev/null && pmix_cv_asm_gnu_stack_result=yes], [PMIX_LOG_MSG([the failed program was:], 1) PMIX_LOG_FILE([conftest.c]) pmix_cv_asm_gnu_stack_result=no]) @@ -899,7 +813,6 @@ else AC_MSG_RESULT([no]) fi - AC_DEFINE_UNQUOTED([PMIX_POWERPC_R_REGISTERS], [$pmix_cv_asm_powerpc_r_reg], [Whether r notation is used for ppc registers]) @@ -939,7 +852,6 @@ ppc64_result=0 ;; esac - if test "$ppc64_result" = "1" ; then AC_MSG_RESULT([yes]) ifelse([$1],,:,[$1]) @@ -947,43 +859,18 @@ AC_MSG_RESULT([no]) ifelse([$2],,:,[$2]) fi - unset ppc64_result ldarx_asm ])dnl dnl ################################################################# dnl -dnl PMIX_CHECK_SPARCV8PLUS -dnl -dnl ################################################################# -AC_DEFUN([PMIX_CHECK_SPARCV8PLUS],[ - AC_MSG_CHECKING([if have Sparc v8+/v9 support]) - sparc_result=0 - PMIX_TRY_ASSEMBLE([$pmix_cv_asm_text - casa [%o0] 0x80, %o1, %o2], - [sparc_result=1], - [sparc_result=0]) - if test "$sparc_result" = "1" ; then - AC_MSG_RESULT([yes]) - ifelse([$1],,:,[$1]) - else - AC_MSG_RESULT([no]) - ifelse([$2],,:,[$2]) - fi - - unset sparc_result -])dnl - -dnl ################################################################# -dnl dnl PMIX_CHECK_CMPXCHG16B dnl dnl ################################################################# AC_DEFUN([PMIX_CMPXCHG16B_TEST_SOURCE],[[ #include #include - union pmix_counted_pointer_t { struct { uint64_t counter; @@ -996,17 +883,13 @@ #endif }; typedef union pmix_counted_pointer_t pmix_counted_pointer_t; - int main(int argc, char* argv) { volatile pmix_counted_pointer_t a; pmix_counted_pointer_t b; - a.data.counter = 0; a.data.item = 0x1234567890ABCDEF; - b.data.counter = a.data.counter; b.data.item = a.data.item; - /* bozo checks */ assert(16 == sizeof(pmix_counted_pointer_t)); assert(a.data.counter == b.data.counter); @@ -1029,7 +912,6 @@ AC_DEFUN([PMIX_CHECK_CMPXCHG16B],[ PMIX_VAR_SCOPE_PUSH([cmpxchg16b_result]) - PMIX_ASM_CHECK_ATOMIC_FUNC([cmpxchg16b], [AC_LANG_PROGRAM([[unsigned char tmp[16];]], [[__asm__ __volatile__ ("lock cmpxchg16b (%%rsi)" : : "S" (tmp) : "memory", "cc");]])], @@ -1044,7 +926,6 @@ AC_MSG_RESULT([no])], [AC_MSG_RESULT([cannot test -- assume yes (cross compiling)])]) ]) - AC_DEFINE_UNQUOTED([PMIX_HAVE_CMPXCHG16B], [$cmpxchg16b_result], [Whether the processor supports the cmpxchg16b instruction]) PMIX_VAR_SCOPE_POP @@ -1079,9 +960,7 @@ AC_DEFUN([PMIX_CHECK_INLINE_C_GCC],[ assembly="$1" asm_result="unknown" - AC_MSG_CHECKING([if $CC supports GCC inline assembly]) - if test ! "$assembly" = "" ; then AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],[[ int ret = 1; @@ -1094,7 +973,6 @@ else assembly="test skipped - assuming no" fi - # if we're cross compiling, just try to compile and figure good enough if test "$asm_result" = "unknown" ; then AC_LINK_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],[[ @@ -1105,20 +983,16 @@ ]])], [asm_result="yes"], [asm_result="no"]) fi - AC_MSG_RESULT([$asm_result]) - if test "$asm_result" = "yes" ; then PMIX_C_GCC_INLINE_ASSEMBLY=1 pmix_cv_asm_inline_supported="yes" else PMIX_C_GCC_INLINE_ASSEMBLY=0 fi - AC_DEFINE_UNQUOTED([PMIX_C_GCC_INLINE_ASSEMBLY], [$PMIX_C_GCC_INLINE_ASSEMBLY], [Whether C compiler supports GCC style inline assembly]) - unset PMIX_C_GCC_INLINE_ASSEMBLY assembly asm_result ])dnl @@ -1136,32 +1010,28 @@ AC_DEFUN([PMIX_CONFIG_ASM],[ AC_REQUIRE([PMIX_SETUP_CC]) AC_REQUIRE([AM_PROG_AS]) - AC_ARG_ENABLE([c11-atomics],[AC_HELP_STRING([--enable-c11-atomics], [Enable use of C11 atomics if available (default: enabled)])]) - AC_ARG_ENABLE([builtin-atomics], [AC_HELP_STRING([--enable-builtin-atomics], - [Enable use of __sync builtin atomics (default: disabled)])]) - + [Enable use of GCC built-in atomics (default: autodetect)])]) PMIX_CHECK_C11_CSWAP_INT128 - + pmix_cv_asm_builtin="BUILTIN_NO" + PMIX_CHECK_GCC_ATOMIC_BUILTINS if test "x$enable_c11_atomics" != "xno" && test "$pmix_cv_c11_supported" = "yes" ; then pmix_cv_asm_builtin="BUILTIN_C11" PMIX_CHECK_C11_CSWAP_INT128 elif test "x$enable_c11_atomics" = "xyes"; then AC_MSG_WARN([C11 atomics were requested but are not supported]) AC_MSG_ERROR([Cannot continue]) + elif test "$enable_builtin_atomics" = "yes" ; then + if test $pmix_cv_have___atomic = "yes" ; then + pmix_cv_asm_builtin="BUILTIN_GCC" else - pmix_cv_asm_builtin="BUILTIN_NO" - AS_IF([test "$pmix_cv_asm_builtin" = "BUILTIN_NO" && test "$enable_builtin_atomics" = "yes"], - [PMIX_CHECK_GCC_ATOMIC_BUILTINS([pmix_cv_asm_builtin="BUILTIN_GCC"], [])]) - AS_IF([test "$pmix_cv_asm_builtin" = "BUILTIN_NO" && test "$enable_builtin_atomics" = "yes"], - [PMIX_CHECK_SYNC_BUILTINS([pmix_cv_asm_builtin="BUILTIN_SYNC"], [])]) - AS_IF([test "$pmix_cv_asm_builtin" = "BUILTIN_NO" && test "$enable_builtin_atomics" = "yes"], - [AC_MSG_ERROR([__sync builtin atomics requested but not found.])]) + AC_MSG_WARN([GCC built-in atomics requested but not found.]) + AC_MSG_ERROR([Cannot continue]) + fi fi - PMIX_CHECK_ASM_PROC PMIX_CHECK_ASM_TEXT PMIX_CHECK_ASM_GLOBAL @@ -1172,11 +1042,14 @@ PMIX_CHECK_ASM_TYPE PMIX_CHECK_ASM_SIZE PMIX_CHECK_ASM_ALIGN_LOG - # find our architecture for purposes of assembly stuff pmix_cv_asm_arch="UNSUPPORTED" PMIX_GCC_INLINE_ASSIGN="" + if test "$pmix_cv_have___atomic_64" ; then + PMIX_ASM_SUPPORT_64BIT=1 + else PMIX_ASM_SUPPORT_64BIT=0 + fi case "${host}" in x86_64-*x32) pmix_cv_asm_arch="X86_64" @@ -1193,60 +1066,29 @@ PMIX_GCC_INLINE_ASSIGN='"xaddl %1,%0" : "=m"(ret), "+r"(negone) : "m"(ret)' PMIX_CHECK_CMPXCHG16B ;; - - ia64-*) - pmix_cv_asm_arch="IA64" - PMIX_CHECK_SYNC_BUILTINS([pmix_cv_asm_builtin="BUILTIN_SYNC"], - [AC_MSG_ERROR([No atomic primitives available for $host])]) - ;; aarch64*) pmix_cv_asm_arch="ARM64" PMIX_ASM_SUPPORT_64BIT=1 PMIX_ASM_ARM_VERSION=8 - AC_DEFINE_UNQUOTED([PMIX_ASM_ARM_VERSION], [$PMIX_ASM_ARM_VERSION], - [What ARM assembly version to use]) PMIX_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)' ;; - armv7*|arm-*-linux-gnueabihf) pmix_cv_asm_arch="ARM" PMIX_ASM_SUPPORT_64BIT=1 PMIX_ASM_ARM_VERSION=7 - AC_DEFINE_UNQUOTED([PMIX_ASM_ARM_VERSION], [$PMIX_ASM_ARM_VERSION], - [What ARM assembly version to use]) PMIX_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)' ;; - armv6*) pmix_cv_asm_arch="ARM" PMIX_ASM_SUPPORT_64BIT=0 PMIX_ASM_ARM_VERSION=6 CCASFLAGS="$CCASFLAGS -march=armv7-a" - AC_DEFINE_UNQUOTED([PMIX_ASM_ARM_VERSION], [$PMIX_ASM_ARM_VERSION], - [What ARM assembly version to use]) PMIX_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)' ;; - - armv5*linux*|armv4*linux*|arm-*-linux-gnueabi) - # uses Linux kernel helpers for some atomic operations - pmix_cv_asm_arch="ARM" - PMIX_CHECK_SYNC_BUILTINS([pmix_cv_asm_builtin="BUILTIN_SYNC"], - [AC_MSG_ERROR([No atomic primitives available for $host])]) - ;; - - mips-*|mips64*) - # Should really find some way to make sure that we are on - # a MIPS III machine (r4000 and later) - pmix_cv_asm_arch="MIPS" - PMIX_CHECK_SYNC_BUILTINS([pmix_cv_asm_builtin="BUILTIN_SYNC"], - [AC_MSG_ERROR([No atomic primitives available for $host])]) - ;; - powerpc-*|powerpc64-*|powerpcle-*|powerpc64le-*|rs6000-*|ppc-*) PMIX_CHECK_POWERPC_REG if test "$ac_cv_sizeof_long" = "4" ; then pmix_cv_asm_arch="POWERPC32" - # Note that on some platforms (Apple G5), even if we are # compiling in 32 bit mode (and therefore should assume # sizeof(long) == 4), we can use the 64 bit test and set @@ -1260,87 +1102,32 @@ fi PMIX_GCC_INLINE_ASSIGN='"1: li %0,0" : "=&r"(ret)' ;; - # There is no current difference between s390 and s390x - # But use two different defines in case some come later - # as s390 is 31bits while s390x is 64bits - s390-*) - pmix_cv_asm_arch="S390" - PMIX_CHECK_SYNC_BUILTINS([pmix_cv_asm_builtin="BUILTIN_SYNC"], - [AC_MSG_ERROR([No atomic primitives available for $host])]) - ;; - s390x-*) - pmix_cv_asm_arch="S390X" - PMIX_CHECK_SYNC_BUILTINS([pmix_cv_asm_builtin="BUILTIN_SYNC"], - [AC_MSG_ERROR([No atomic primitives available for $host])]) - ;; - sparc*-*) - # SPARC v9 (and above) are the only ones with 64bit support - # if compiling 32 bit, see if we are v9 (aka v8plus) or - # earlier (casa is v8+/v9). - if test "$ac_cv_sizeof_long" = "4" ; then - have_v8plus=0 - PMIX_CHECK_SPARCV8PLUS([have_v8plus=1]) - if test "$have_v8plus" = "0" ; then - PMIX_ASM_SUPPORT_64BIT=0 - pmix_cv_asm_arch="SPARC" -AC_MSG_WARN([Sparc v8 target is not supported in this release of Open MPI.]) -AC_MSG_WARN([You must specify the target architecture v8plus to compile]) -AC_MSG_WARN([Open MPI in 32 bit mode on Sparc processors (see the README).]) -AC_MSG_ERROR([Can not continue.]) - else - PMIX_ASM_SUPPORT_64BIT=1 - pmix_cv_asm_arch="SPARCV9_32" - fi - - elif test "$ac_cv_sizeof_long" = "8" ; then - PMIX_ASM_SUPPORT_64BIT=1 - pmix_cv_asm_arch="SPARCV9_64" - else - AC_MSG_ERROR([Could not determine Sparc word size: $ac_cv_sizeof_long]) - fi - PMIX_GCC_INLINE_ASSIGN='"mov 0,%0" : "=&r"(ret)' - ;; - *) - PMIX_CHECK_SYNC_BUILTINS([pmix_cv_asm_builtin="BUILTIN_SYNC"], - [AC_MSG_ERROR([No atomic primitives available for $host])]) - ;; - esac - - if test "x$PMIX_ASM_SUPPORT_64BIT" = "x1" && test "$pmix_cv_asm_builtin" = "BUILTIN_SYNC" && - test "$pmix_asm_sync_have_64bit" = "0" ; then - # __sync builtins exist but do not implement 64-bit support. Fall back on inline asm. - pmix_cv_asm_builtin="BUILTIN_NO" + if test $pmix_cv_have___atomic = "yes" ; then + pmix_cv_asm_builtin="BUILTIN_GCC" + else + AC_MSG_ERROR([No atomic primitives available for $host]) fi - - if test "$pmix_cv_asm_builtin" = "BUILTIN_SYNC" || test "$pmix_cv_asm_builtin" = "BUILTIN_GCC" ; then - AC_DEFINE([PMIX_C_GCC_INLINE_ASSEMBLY], [1], - [Whether C compiler supports GCC style inline assembly]) - else - AC_DEFINE_UNQUOTED([PMIX_ASM_SUPPORT_64BIT], - [$PMIX_ASM_SUPPORT_64BIT], - [Whether we can do 64bit assembly operations or not. Should not be used outside of the assembly header files]) - AC_SUBST([PMIX_ASM_SUPPORT_64BIT]) - - # - # figure out if we need any special function start / stop code - # - case $host_os in - aix*) - pmix_asm_arch_config="aix" - ;; - *) - pmix_asm_arch_config="default" - ;; - esac - + ;; + esac + if ! test -z "$PMIX_ASM_ARM_VERSION" ; then + AC_DEFINE_UNQUOTED([PMIX_ASM_ARM_VERSION], [$PMIX_ASM_ARM_VERSION], + [What ARM assembly version to use]) + fi + if test "$pmix_cv_asm_builtin" = "BUILTIN_GCC" ; then + AC_DEFINE([PMIX_C_GCC_INLINE_ASSEMBLY], [1], + [Whether C compiler supports GCC style inline assembly]) + else + AC_DEFINE_UNQUOTED([PMIX_ASM_SUPPORT_64BIT], + [$PMIX_ASM_SUPPORT_64BIT], + [Whether we can do 64bit assembly operations or not. Should not be used outside of the assembly header files]) + AC_SUBST([PMIX_ASM_SUPPORT_64BIT]) pmix_cv_asm_inline_supported="no" # now that we know our architecture, try to inline assemble PMIX_CHECK_INLINE_C_GCC([$PMIX_GCC_INLINE_ASSIGN]) - # format: # config_file-text-global-label_suffix-gsym-lsym-type-size-align_log-ppc_r_reg-64_bit-gnu_stack - asm_format="${pmix_asm_arch_config}" + asm_format="default" asm_format="${asm_format}-${pmix_cv_asm_text}-${pmix_cv_asm_global}" asm_format="${asm_format}-${pmix_cv_asm_label_suffix}-${pmix_cv_asm_gsym}" asm_format="${asm_format}-${pmix_cv_asm_lsym}" @@ -1357,14 +1144,12 @@ # this version, but make sure the Makefile gives the right thing # when regenerating the files because the base has been touched. PMIX_ASSEMBLY_FORMAT=`echo "$pmix_cv_asm_format" | sed -e 's/\\\$/\\\$\\\$/'` - AC_MSG_CHECKING([for assembly format]) AC_MSG_RESULT([$pmix_cv_asm_format]) AC_DEFINE_UNQUOTED([PMIX_ASSEMBLY_FORMAT], ["$PMIX_ASSEMBLY_FORMAT"], [Format of assembly file]) AC_SUBST([PMIX_ASSEMBLY_FORMAT]) - fi # if pmix_cv_asm_builtin = BUILTIN_SYNC - + fi # if pmix_cv_asm_builtin = BUILTIN_GCC result="PMIX_$pmix_cv_asm_arch" PMIX_ASSEMBLY_ARCH="$pmix_cv_asm_arch" AC_MSG_CHECKING([for assembly architecture]) @@ -1372,7 +1157,6 @@ AC_DEFINE_UNQUOTED([PMIX_ASSEMBLY_ARCH], [$result], [Architecture type of assembly to use for atomic operations and CMA]) AC_SUBST([PMIX_ASSEMBLY_ARCH]) - # Check for RDTSCP support result=0 AS_IF([test "$pmix_cv_asm_arch" = "PMIX_X86_64" || test "$pmix_cv_asm_arch" = "PMIX_IA32"], @@ -1394,7 +1178,6 @@ AC_LANG_POP([C])]) AC_DEFINE_UNQUOTED([PMIX_ASSEMBLY_SUPPORTS_RDTSCP], [$result], [Whether we have support for RDTSCP instruction]) - result="PMIX_$pmix_cv_asm_builtin" PMIX_ASSEMBLY_BUILTIN="$pmix_cv_asm_builtin" AC_MSG_CHECKING([for builtin atomics]) @@ -1402,9 +1185,7 @@ AC_DEFINE_UNQUOTED([PMIX_ASSEMBLY_BUILTIN], [$result], [Whether to use builtin atomics]) AC_SUBST([PMIX_ASSEMBLY_BUILTIN]) - PMIX_ASM_FIND_FILE - unset result asm_format ])dnl @@ -1420,8 +1201,7 @@ AC_DEFUN([PMIX_ASM_FIND_FILE], [ AC_REQUIRE([AC_PROG_GREP]) AC_REQUIRE([AC_PROG_FGREP]) - -if test "$pmix_cv_asm_arch" != "WINDOWS" && test "$pmix_cv_asm_builtin" != "BUILTIN_SYNC" && test "$pmix_cv_asm_builtin" != "BUILTIN_GCC" && test "$pmix_cv_asm_builtin" != "BUILTIN_OSX" && test "$pmix_cv_asm_inline_arch" = "no" ; then +if test "$pmix_cv_asm_arch" != "WINDOWS" && test "$pmix_cv_asm_builtin" != "BUILTIN_GCC" && test "$pmix_cv_asm_builtin" != "BUILTIN_OSX" && test "$pmix_cv_asm_inline_arch" = "no" ; then AC_MSG_ERROR([no atomic support available. exiting]) else # On windows with VC++, atomics are done with compiler primitives diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_functions.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_functions.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_functions.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_functions.m4 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ dnl All rights reserved. dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. dnl Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. -dnl Copyright (c) 2009-2016 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2009-2020 Cisco Systems, Inc. All rights reserved. dnl Copyright (c) 2013-2017 Intel, Inc. All rights reserved. dnl Copyright (c) 2017 Research Organization for Information Science dnl and Technology (RIST). All rights reserved. @@ -287,7 +287,7 @@ # Check for special cases where we do want to allow repeated # arguments (per - # http://www.open-mpi.org/community/lists/devel/2012/08/11362.php). + # https://www.open-mpi.org/community/lists/devel/2012/08/11362.php). case $val in -Xclang|-Xg) @@ -373,7 +373,7 @@ # Check for special cases where we do want to allow repeated # arguments (per - # http://www.open-mpi.org/community/lists/devel/2012/08/11362.php + # https://www.open-mpi.org/community/lists/devel/2012/08/11362.php # and # https://github.com/open-mpi/ompi/issues/324). diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_load_platform.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_load_platform.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_load_platform.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_load_platform.m4 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ dnl University of Stuttgart. All rights reserved. dnl Copyright (c) 2004-2005 The Regents of the University of California. dnl All rights reserved. -dnl Copyright (c) 2014-2015 Intel, Inc. All rights reserved. +dnl Copyright (c) 2014-2020 Intel, Inc. All rights reserved. dnl Copyright (c) 2015 Research Organization for Information Science dnl and Technology (RIST). All rights reserved. dnl $COPYRIGHT$ @@ -23,6 +23,9 @@ # PMIX_LOAD_PLATFORM() # -------------------- AC_DEFUN([PMIX_LOAD_PLATFORM], [ + AC_ARG_WITH([platform-patches-dir], + [AC_HELP_STRING([--with-platform-patches-dir=DIR], + [Location of the platform patches directory. If you use this option, you must also use --with-platform.])]) AC_ARG_WITH([platform], [AC_HELP_STRING([--with-platform=FILE], @@ -30,7 +33,10 @@ command line not in FILE are used. Options on the command line and in FILE are replaced by what is in FILE.])]) - + m4_ifval([autogen_platform_file], [ + if test "$with_platform" = "" ; then + with_platform=autogen_platform_file + fi]) if test "$with_platform" = "yes" ; then AC_MSG_ERROR([--with-platform argument must include FILE option]) elif test "$with_platform" = "no" ; then @@ -77,5 +83,106 @@ # return to where we started cd "$platform_savedir" + + # define an alternate default mca param filename + platform_alt_mca_file="`basename $platform_loaded`.conf" + + # look where platform file is located for platform.conf name + if test -r "${platform_file_dir}/${platform_alt_mca_file}" ; then + AC_SUBST(PMIX_DEFAULT_MCA_PARAM_CONF, [$platform_file_dir/$platform_alt_mca_file]) + AC_SUBST(PMIX_PARAM_FROM_PLATFORM, "yes") + # if not, see if a file is there with the default name + elif test -r "${platform_file_dir}/pmix-mca-params.conf" ; then + AC_SUBST(PMIX_DEFAULT_MCA_PARAM_CONF, [$platform_file_dir/pmix-mca-params.conf]) + AC_SUBST(PMIX_PARAM_FROM_PLATFORM, "yes") + # if not, then just use the default + else + AC_SUBST(PMIX_DEFAULT_MCA_PARAM_CONF, [pmix-mca-params.conf]) + AC_SUBST(PMIX_PARAM_FROM_PLATFORM, "no") + fi + + patch_dir="${with_platform}.patches" + if test -n "$with_platform_patches_dir"; then + if test "$with_platform_patches_dir" = "yes"; then + patch_dir="${with_platform}.patches" + elif test "$with_platform_patches_dir" = "no"; then + AC_MSG_NOTICE([Disabling platform patches on user request]) + patch_dir="" + elif test -d "$with_platform_patches_dir"; then + patch_dir=$with_platform_patches_dir + else + AC_MSG_ERROR([User provided patches directory: $with_platform_patches_dir not found]) + fi + fi + + patch_done="${srcdir}/.platform_patches" + patch_found=no + + if test -d "${patch_dir}"; then + if test ! -f "${patch_done}"; then + + AC_MSG_NOTICE([Checking patches from ${patch_dir}/ directory ]) + for one_patch in $patch_dir/*.patch ; do + + AC_MSG_CHECKING([patch: $one_patch for errors ]) + patch -d ${srcdir} -p1 -t -s --dry-run < ${one_patch} + if test "$?" != "0"; then + AC_MSG_RESULT([fail]) + AC_MSG_ERROR([Platform patches failed to apply]) + else + AC_MSG_RESULT([ok]) + fi + + AC_MSG_CHECKING([patch: $one_patch for unsupported configury changes ]) + has_configury_items=$(patch -d ${srcdir} -p1 -t --dry-run < ${one_patch} 2>&1 | egrep "^patching" | egrep '*\.(am|m4)$' | wc -l) + + if test $has_configury_items -ne 0; then + AC_MSG_RESULT([fail]) + AC_MSG_ERROR([Platform patches should not change configury files]) + else + AC_MSG_RESULT([ok]) + fi + done + + + for one_patch in $patch_dir/*.patch ; do + AC_MSG_NOTICE([Applying patch ${one_patch}]) + patch -d ${srcdir} -p1 -t -s < ${one_patch} + if test "$?" != "0"; then + AC_MSG_ERROR([Failed to apply patch ${one_patch}]) + fi + patch_found=yes + done + + if test "$patch_found" = "yes"; then + + platform_root_short="$(basename $platform_base)" + + # If platform file resides under platform/ root folder - use filename as ident + if [ test "$platform_root_short" = "platform" ]; then + platform_ident="$platform_file" + else + platform_ident="$(basename $platform_base)" + fi + + # Set custom ident for platform patched PMIX + if [ test -z "$with_ident_string" ]; then + with_ident_string="Platform: $platform_ident" + fi + + AC_MSG_NOTICE([Platform patches applied, created stamp file ${patch_done}]) + touch ${patch_done} + else + AC_MSG_NOTICE([No platform patches in ${patch_dir}]) + fi + + else + AC_MSG_WARN([Platform patches already applied, skipping. ${patch_done} can be removed to re-apply ]) + fi + elif test -n "${patch_dir}"; then + AC_MSG_NOTICE([No platform patches in ${patch_dir}]) + fi + else + AC_SUBST(PMIX_DEFAULT_MCA_PARAM_CONF, [pmix-mca-params.conf]) fi ]) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix.m4 2022-05-29 09:51:40.000000000 +0000 @@ -23,6 +23,7 @@ dnl Copyright (c) 2016 Mellanox Technologies, Inc. dnl All rights reserved. dnl +dnl Copyright (c) 2021 Nanook Consulting. All rights reserved. dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow @@ -43,6 +44,11 @@ AC_REQUIRE([AM_PROG_CC_C_O]) + # initialize + PMIX_EMBEDDED_LDFLAGS= + PMIX_EMBEDDED_LIBS= + PMIX_EMBEDDED_CPPFLAGS= + # If no prefix was defined, set a good value m4_ifval([$1], [m4_define([pmix_config_prefix],[$1/])], @@ -168,22 +174,6 @@ # replaced, not the entire file. AC_CONFIG_HEADERS(pmix_config_prefix[src/include/pmix_config.h]) - # Rename symbols? - AC_ARG_WITH([pmix-symbol-rename], - AC_HELP_STRING([--with-pmix-symbol-rename=PREFIX], - [Provide a prefix to rename PMIx symbols])) - AC_MSG_CHECKING([for symbol rename]) - AS_IF([test ! -z "$with_pmix_symbol_rename" && test "$with_pmix_symbol_rename" != "yes"], - [AC_MSG_RESULT([$with_pmix_symbol_rename]) - pmix_symbol_rename="$with_pmix_symbol_rename" - PMIX_RENAME=$with_pmix_symbol_rename], - [AC_MSG_RESULT([no]) - pmix_symbol_rename="" - PMIX_RENAME=]) - AC_DEFINE_UNQUOTED(PMIX_SYMBOL_RENAME, [$pmix_symbol_rename], - [The pmix symbol rename include directive]) - AC_SUBST(PMIX_RENAME) - AC_CONFIG_FILES(pmix_config_prefix[include/pmix_rename.h]) # Add any extra lib? AC_ARG_WITH([pmix-extra-lib], @@ -416,9 +406,11 @@ time.h unistd.h dirent.h \ crt_externs.h signal.h \ ioLib.h sockLib.h hostLib.h limits.h \ - sys/statfs.h sys/statvfs.h \ + sys/fcntl.h sys/statfs.h sys/statvfs.h \ netdb.h ucred.h zlib.h sys/auxv.h \ - sys/sysctl.h]) + sys/sysctl.h termio.h termios.h pty.h \ + libutil.h util.h grp.h sys/cdefs.h utmp.h stropts.h \ + sys/utsname.h]) AC_CHECK_HEADERS([sys/mount.h], [], [], [AC_INCLUDES_DEFAULT @@ -663,7 +655,7 @@ # -lrt might be needed for clock_gettime PMIX_SEARCH_LIBS_CORE([clock_gettime], [rt]) - AC_CHECK_FUNCS([asprintf snprintf vasprintf vsnprintf strsignal socketpair strncpy_s usleep statfs statvfs getpeereid getpeerucred strnlen posix_fallocate tcgetpgrp setpgid ptsname openpty setenv]) + AC_CHECK_FUNCS([asprintf snprintf vasprintf vsnprintf strsignal socketpair strncpy_s usleep statfs statvfs getpeereid getpeerucred strnlen posix_fallocate tcgetpgrp setpgid ptsname openpty setenv fork execve waitpid]) # On some hosts, htonl is a define, so the AC_CHECK_FUNC will get # confused. On others, it's in the standard library, but stubbed with @@ -752,7 +744,7 @@ ################################## # Libevent ################################## - pmix_show_title "Libevent" + pmix_show_title "Event libraries" PMIX_LIBEV_CONFIG PMIX_LIBEVENT_CONFIG @@ -779,12 +771,13 @@ ################################## - # ZLIB COMPRESSION + # ZLIB ################################## pmix_show_title "ZLIB" PMIX_ZLIB_CONFIG + ################################## # Dstore Locking ################################## @@ -813,15 +806,19 @@ MCA-variable-setting mechansism). This MCA variable controls whether warnings are displayed when an MCA component fails to load at run time due to an error. - (default: enabled, meaning that + (default: enabled in --enable-debug builds, meaning that mca_base_component_show_load_errors is enabled - by default])]) + by default when configured with --enable-debug])]) if test "$enable_show_load_errors_by_default" = "no" ; then PMIX_SHOW_LOAD_ERRORS_DEFAULT=0 AC_MSG_RESULT([disabled by default]) else - PMIX_SHOW_LOAD_ERRORS_DEFAULT=1 - AC_MSG_RESULT([enabled by default]) + PMIX_SHOW_LOAD_ERRORS_DEFAULT=$WANT_DEBUG + if test "$WANT_DEBUG" = "1"; then + AC_MSG_RESULT([enabled by default]) + else + AC_MSG_RESULT([disabled by default]) + fi fi AC_DEFINE_UNQUOTED(PMIX_SHOW_LOAD_ERRORS_DEFAULT, $PMIX_SHOW_LOAD_ERRORS_DEFAULT, [Default value for mca_base_component_show_load_errors MCA variable]) @@ -854,11 +851,16 @@ # rather than have successive assignments to these shell # variables, lest the $(foo) names try to get evaluated here. # Yuck! - CPPFLAGS="-I$PMIX_top_builddir -I$PMIX_top_srcdir -I$PMIX_top_srcdir/src -I$PMIX_top_builddir/include -I$PMIX_top_srcdir/include $CPPFLAGS" + cpp_includes="$PMIX_top_builddir $PMIX_top_srcdir $PMIX_top_srcdir/src $PMIX_top_builddir/include" else - CPPFLAGS="-I$PMIX_top_srcdir -I$PMIX_top_srcdir/src -I$PMIX_top_srcdir/include $CPPFLAGS" + cpp_includes="$PMIX_top_srcdir $PMIX_top_srcdir/src" fi + CPP_INCLUDES="$(echo $cpp_includes | $SED 's/[[^ \]]* */'"$pmix_cc_iquote"'&/g')" + CPPFLAGS="$CPP_INCLUDES -I$PMIX_top_srcdir/include $CPPFLAGS $PMIX_FINAL_CPPFLAGS" + LDFLAGS="$LDFLAGS $PMIX_FINAL_LDFLAGS" + LIBS="$LIBS $PMIX_FINAL_LIBS" + ############################################################################ # pmixdatadir, pmixlibdir, and pmixinclude are essentially the same as # pkg*dir, but will always be */pmix. pmixdatadir='${datadir}/pmix' @@ -891,8 +893,9 @@ AC_CONFIG_FILES(pmix_config_prefix[test/run_tests11.pl], [chmod +x test/run_tests11.pl]) AC_CONFIG_FILES(pmix_config_prefix[test/run_tests12.pl], [chmod +x test/run_tests12.pl]) AC_CONFIG_FILES(pmix_config_prefix[test/run_tests13.pl], [chmod +x test/run_tests13.pl]) - AC_CONFIG_FILES(pmix_config_prefix[test/run_tests14.pl], [chmod +x test/run_tests14.pl]) - AC_CONFIG_FILES(pmix_config_prefix[test/run_tests15.pl], [chmod +x test/run_tests15.pl]) +# AC_CONFIG_FILES(pmix_config_prefix[test/run_tests14.pl], [chmod +x test/run_tests14.pl]) +# AC_CONFIG_FILES(pmix_config_prefix[test/run_tests15.pl], [chmod +x test/run_tests15.pl]) + ############################################################################ # final output @@ -1016,15 +1019,11 @@ AC_MSG_RESULT([no]) WANT_DEBUG=0 fi -#################### Early development override #################### -if test "$WANT_DEBUG" = "0" && test -z "$enable_debug" && test "$PMIX_DEVEL" = "1"; then - WANT_DEBUG=1 - echo "--> developer override: enable debugging code by default" -fi -#################### Early development override #################### + if test "$WANT_DEBUG" = "0"; then CFLAGS="-DNDEBUG $CFLAGS" fi + AC_DEFINE_UNQUOTED(PMIX_ENABLE_DEBUG, $WANT_DEBUG, [Whether we want developer-level debugging code or not]) @@ -1194,7 +1193,6 @@ AM_CONDITIONAL([PMIX_INSTALL_BINARIES], [test $WANT_PMIX_BINARIES -eq 1]) - # see if they want to disable non-RTLD_GLOBAL dlopen AC_MSG_CHECKING([if want to support dlopen of non-global namespaces]) AC_ARG_ENABLE([nonglobal-dlopen], @@ -1214,6 +1212,24 @@ [pmix_need_libpmix=0]) # +# Do we want PTY support? +# + +AC_MSG_CHECKING([if want pty support]) +AC_ARG_ENABLE(pty-support, + AC_HELP_STRING([--enable-pty-support], + [Enable/disable PTY support for STDIO forwarding. (default: enabled)])) +if test "$enable_pty_support" = "no" ; then + AC_MSG_RESULT([no]) + PMIX_ENABLE_PTY_SUPPORT=0 +else + AC_MSG_RESULT([yes]) + PMIX_ENABLE_PTY_SUPPORT=1 +fi +AC_DEFINE_UNQUOTED([PMIX_ENABLE_PTY_SUPPORT], [$PMIX_ENABLE_PTY_SUPPORT], + [Whether user wants PTY support or not]) + +# # psec/dummy_handshake # diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_mca.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_mca.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_mca.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_mca.m4 2022-05-29 09:51:40.000000000 +0000 @@ -262,11 +262,6 @@ [MCA_pmix_]mca_framework[_CONFIG](mca_framework), [MCA_CONFIGURE_FRAMEWORK(mca_framework, 1)])])]) - # note that mca_wrapper_extra_* is a running list, and we take checkpoints at the end of our project - pmix_mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags" - pmix_mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags" - pmix_mca_wrapper_extra_libs="$mca_wrapper_extra_libs" - AC_SUBST(MCA_pmix_FRAMEWORKS) AC_SUBST(MCA_pmix_FRAMEWORKS_SUBDIRS) AC_SUBST(MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS) @@ -622,14 +617,6 @@ AC_MSG_WARN([MCA component configure script told me to abort]) AC_MSG_ERROR([cannot continue]) fi - - m4_foreach(flags, [LDFLAGS, LIBS], - [[line="`$GREP WRAPPER_EXTRA_]flags[= $infile | cut -d= -f2-`"] - eval "line=$line" - if test -n "$line"; then - $2[_]$3[_WRAPPER_EXTRA_]flags[="$line"] - fi - ])dnl fi MCA_PROCESS_COMPONENT($1, $component, $2, $3, $4, $5, $compile_mode) @@ -754,38 +741,6 @@ *** Aborting]) fi fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$7" = "static"; then - AS_LITERAL_IF([$2], - [m4_foreach(flags, [LDFLAGS, LIBS], - [AS_IF([test "$$1_$2_WRAPPER_EXTRA_]flags[" = ""], - [PMIX_FLAGS_APPEND_UNIQ([mca_wrapper_extra_]m4_tolower(flags), [$$1_$2_]flags)], - [PMIX_FLAGS_APPEND_UNIQ([mca_wrapper_extra_]m4_tolower(flags), [$$1_$2_WRAPPER_EXTRA_]flags)]) - ])], - [m4_foreach(flags, [LDFLAGS, LIBS], - [[str="line=\$$1_$2_WRAPPER_EXTRA_]flags["] - eval "$str" - PMIX_FLAGS_APPEND_UNIQ([mca_wrapper_extra_]m4_tolower(flags), [$line])])]) - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - AS_LITERAL_IF([$2], - [AS_IF([test "$$1_$2_WRAPPER_EXTRA_CPPFLAGS" != ""], - [m4_if(PMIX_EVAL_ARG([MCA_pmix_$1_CONFIGURE_MODE]), [STOP_AT_FIRST], [stop_at_first=1], [stop_at_first=0]) - AS_IF([test "$7" = "static" && test "$stop_at_first" = "1"], - [AS_IF([test "$with_devel_headers" = "yes"], - [PMIX_FLAGS_APPEND_UNIQ([mca_wrapper_extra_cppflags], [$$1_$2_WRAPPER_EXTRA_CPPFLAGS])])], - [AC_MSG_WARN([ignoring $1_$2_WRAPPER_EXTRA_CPPFLAGS ($$1_$2_WRAPPER_EXTRA_CPPFLAGS): component conditions not met])])])]) ]) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_cc.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_cc.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_cc.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_cc.m4 2022-05-29 09:51:40.000000000 +0000 @@ -16,7 +16,7 @@ dnl reserved. dnl Copyright (c) 2015-2019 Research Organization for Information Science dnl and Technology (RIST). All rights reserved. -dnl Copyright (c) 2018 Intel, Inc. All rights reserved. +dnl Copyright (c) 2018-2020 Intel, Inc. All rights reserved. dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow @@ -120,6 +120,28 @@ ]) +# PMIX_CHECK_CC_IQUOTE() +# ---------------------- +# Check if the compiler supports the -iquote option. This options +# removes the specified directory from the search path when using +# #include <>. This check works around an issue caused by C++20 +# which added a header. This conflicts with the +# VERSION file at the base of our source directory on case- +# insensitive filesystems. +AC_DEFUN([PMIX_CHECK_CC_IQUOTE],[ + PMIX_VAR_SCOPE_PUSH([pmix_check_cc_iquote_CFLAGS_save]) + pmix_check_cc_iquote_CFLAGS_save=${CFLAGS} + CFLAGS="${CFLAGS} -iquote ." + AC_MSG_CHECKING([for $CC option to add a directory only to the search path for the quote form of include]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],[])], + [pmix_cc_iquote="-iquote"], + [pmix_cc_iquote="-I"]) + CFLAGS=${pmix_check_cc_iquote_CFLAGS_save} + PMIX_VAR_SCOPE_POP + AC_MSG_RESULT([$pmix_cc_iquote]) +]) + + # PMIX_SETUP_CC() # --------------- # Do everything required to setup the C compiler. Safe to AC_REQUIRE @@ -135,7 +157,13 @@ PMIX_VAR_SCOPE_PUSH([pmix_prog_cc_c11_helper__Thread_local_available pmix_prog_cc_c11_helper_atomic_var_available pmix_prog_cc_c11_helper__Atomic_available pmix_prog_cc_c11_helper__static_assert_available pmix_prog_cc_c11_helper__Generic_available pmix_prog_cc__thread_available pmix_prog_cc_c11_helper_atomic_fetch_xor_explicit_available]) + # AC_PROG_CC_C99 changes CC (instead of CFLAGS) so save CC (without c99 + # flags) for use in our wrappers. + WRAPPER_CC="$CC" + AC_SUBST([WRAPPER_CC]) + PMIX_PROG_CC_C11 + PMIX_CHECK_CC_IQUOTE if test $pmix_cv_c11_supported = no ; then # It is not currently an error if C11 support is not available. Uncomment the diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_cli.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_cli.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_cli.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_cli.m4 2022-05-29 09:51:40.000000000 +0000 @@ -2,8 +2,8 @@ dnl dnl Copyright (c) 2016 Research Organization for Information Science dnl and Technology (RIST). All rights reserved. -dnl Copyright (c) 2017-2019 Intel, Inc. All rights reserved. -dnl Copyright (c) 2018 Cisco, Inc. All rights reserved. +dnl Copyright (c) 2017-2018 Intel, Inc. All rights reserved. +dnl Copyright (c) 2018-2020 Cisco, Inc. All rights reserved. dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow @@ -24,7 +24,7 @@ PMIX_VAR_SCOPE_PUSH([sed_quote_subst arg quoted_arg]) $1= for arg in "$[]@"; do - sed_quote_subst='s/\(@<:@`"$\\@:>@\)/\\\1/g' + sed_quote_subst='s/\(@<:@`"\\@:>@\)/\\\1/g' case "$arg" in *@<:@\\\`\"\$[]@:>@*) quoted_arg=\'`echo "$arg" | sed $sed_quote_subst`\' ;; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_hwloc.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_hwloc.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_hwloc.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_hwloc.m4 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ # # Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2013 Los Alamos National Security, LLC. All rights reserved. -# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2020 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -46,7 +46,7 @@ ]) AC_DEFUN([_PMIX_HWLOC_EXTERNAL],[ - PMIX_VAR_SCOPE_PUSH([pmix_hwloc_dir pmix_hwloc_libdir pmix_hwloc_standard_lib_location pmix_hwloc_standard_header_location]) + PMIX_VAR_SCOPE_PUSH([pmix_hwloc_dir pmix_hwloc_libdir pmix_hwloc_standard_lib_location pmix_hwloc_standard_header_location pmix_check_hwloc_save_CPPFLAGS pmix_check_hwloc_save_LDFLAGS pmix_check_hwloc_save_LIBS]) AC_ARG_WITH([hwloc], [AC_HELP_STRING([--with-hwloc=DIR], @@ -57,13 +57,19 @@ [Search for hwloc libraries in DIR ])]) pmix_hwloc_support=0 + pmix_check_hwloc_save_CPPFLAGS="$CPPFLAGS" + pmix_check_hwloc_save_LDFLAGS="$LDFLAGS" + pmix_check_hwloc_save_LIBS="$LIBS" + pmix_hwloc_standard_header_location=yes + pmix_hwloc_standard_lib_location=yes + AS_IF([test "$with_hwloc" = "internal" || test "$with_hwloc" = "external"], [with_hwloc=]) if test "$with_hwloc" != "no"; then AC_MSG_CHECKING([for hwloc in]) if test ! -z "$with_hwloc" && test "$with_hwloc" != "yes"; then - pmix_hwloc_dir=$with_hwloc + pmix_hwloc_dir=$with_hwloc/include pmix_hwloc_standard_header_location=no pmix_hwloc_standard_lib_location=no AS_IF([test -z "$with_hwloc_libdir" || test "$with_hwloc_libdir" = "yes"], @@ -134,6 +140,10 @@ AC_MSG_ERROR([Cannot continue])]) fi + CPPFLAGS=$pmix_check_hwloc_save_CPPFLAGS + LDFLAGS=$pmix_check_hwloc_save_LDFLAGS + LIBS=$pmix_check_hwloc_save_LIBS + AC_MSG_CHECKING([will hwloc support be built]) if test "$pmix_hwloc_support" != "1"; then AC_MSG_RESULT([no]) @@ -143,6 +153,12 @@ AC_MSG_RESULT([yes]) pmix_hwloc_source=$pmix_hwloc_dir pmix_hwloc_support_will_build=yes + AS_IF([test "$pmix_hwloc_standard_header_location" != "yes"], + [PMIX_FLAGS_APPEND_UNIQ(PMIX_FINAL_CPPFLAGS, $pmix_hwloc_CPPFLAGS)]) + + AS_IF([test "$pmix_hwloc_standard_lib_location" != "yes"], + [PMIX_FLAGS_APPEND_UNIQ(PMIX_FINAL_LDFLAGS, $pmix_hwloc_LDFLAGS)]) + PMIX_FLAGS_APPEND_UNIQ(PMIX_FINAL_LIBS, $pmix_hwloc_LIBS) fi # Set output variables diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_libevent.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_libevent.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_libevent.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_libevent.m4 2022-05-29 09:51:40.000000000 +0000 @@ -2,9 +2,10 @@ # # Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2013 Los Alamos National Security, LLC. All rights reserved. -# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2020 Intel, Inc. All rights reserved. # Copyright (c) 2017-2019 Research Organization for Information Science # and Technology (RIST). All rights reserved. +# Copyright (c) 2020 IBM Corporation. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -55,7 +56,7 @@ ]) AC_DEFUN([_PMIX_LIBEVENT_EXTERNAL],[ - PMIX_VAR_SCOPE_PUSH([pmix_event_dir pmix_event_libdir pmix_event_defaults]) + PMIX_VAR_SCOPE_PUSH([pmix_event_dir pmix_event_libdir pmix_event_defaults pmix_check_libevent_save_CPPFLAGS pmix_check_libevent_save_LDFLAGS pmix_check_libevent_save_LIBS]) AC_ARG_WITH([libevent], [AC_HELP_STRING([--with-libevent=DIR], @@ -68,6 +69,7 @@ pmix_check_libevent_save_CPPFLAGS="$CPPFLAGS" pmix_check_libevent_save_LDFLAGS="$LDFLAGS" pmix_check_libevent_save_LIBS="$LIBS" + pmix_event_defaults=yes # get rid of the trailing slash(es) libevent_prefix=$(echo $with_libevent | sed -e 'sX/*$XXg') @@ -108,14 +110,36 @@ PMIX_CHECK_PACKAGE([pmix_libevent], [event.h], - [event], + [event_core], [event_config_new], - [-levent -levent_pthreads], + [-levent_pthreads], [$pmix_event_dir], [$pmix_event_libdir], [pmix_libevent_support=1], [pmix_libevent_support=0]) + # Check to see if the above check failed because it conflicted with LSF's libevent.so + # This can happen if LSF's library is in the LDFLAGS envar or default search + # path. The 'event_getcode4name' function is only defined in LSF's libevent.so and not + # in Libevent's libevent.so + if test $pmix_libevent_support -eq 0; then + AC_CHECK_LIB([event], [event_getcode4name], + [AC_MSG_WARN([===================================================================]) + AC_MSG_WARN([Possible conflicting libevent.so libraries detected on the system.]) + AC_MSG_WARN([]) + AC_MSG_WARN([LSF provides a libevent.so that is not from Libevent in its]) + AC_MSG_WARN([library path. It is possible that you have installed Libevent]) + AC_MSG_WARN([on the system, but the linker is picking up the wrong version.]) + AC_MSG_WARN([]) + AC_MSG_WARN([You will need to address this linker path issue. One way to do so is]) + AC_MSG_WARN([to make sure the libevent system library path occurs before the]) + AC_MSG_WARN([LSF library path.]) + AC_MSG_WARN([===================================================================]) + ]) + fi + + # need to add resulting flags to global ones so we can + # test for thread support AS_IF([test "$pmix_event_defaults" = "no"], [PMIX_FLAGS_APPEND_UNIQ(CPPFLAGS, $pmix_libevent_CPPFLAGS) PMIX_FLAGS_APPEND_UNIQ(LDFLAGS, $pmix_libevent_LDFLAGS)]) @@ -125,7 +149,7 @@ # Ensure that this libevent has the symbol # "evthread_set_lock_callbacks", which will only exist if # libevent was configured with thread support. - AC_CHECK_LIB([event], [evthread_set_lock_callbacks], + AC_CHECK_LIB([event_core], [evthread_set_lock_callbacks], [], [AC_MSG_WARN([External libevent does not have thread support]) AC_MSG_WARN([PMIx requires libevent to be compiled with]) @@ -156,9 +180,9 @@ [Location of event.h]) pmix_libevent_source=$pmix_event_dir AS_IF([test "$pmix_event_defaults" = "no"], - [PMIX_FLAGS_APPEND_UNIQ(CPPFLAGS, $pmix_libevent_CPPFLAGS) - PMIX_FLAGS_APPEND_UNIQ(LDFLAGS, $pmix_libevent_LDFLAGS)]) - PMIX_FLAGS_APPEND_UNIQ(LIBS, $pmix_libevent_LIBS) + [PMIX_FLAGS_APPEND_UNIQ(PMIX_FINAL_CPPFLAGS, $pmix_libevent_CPPFLAGS) + PMIX_FLAGS_APPEND_UNIQ(PMIX_FINAL_LDFLAGS, $pmix_libevent_LDFLAGS)]) + PMIX_FLAGS_APPEND_UNIQ(PMIX_FINAL_LIBS, $pmix_libevent_LIBS) else AC_MSG_RESULT([no]) fi diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_libev.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_libev.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_libev.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_libev.m4 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ # # Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2013 Los Alamos National Security, LLC. All rights reserved. -# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2020 Intel, Inc. All rights reserved. # Copyright (c) 2017-2019 Research Organization for Information Science # and Technology (RIST). All rights reserved. # $COPYRIGHT$ @@ -15,7 +15,7 @@ # MCA_libev_CONFIG([action-if-found], [action-if-not-found]) # -------------------------------------------------------------------- AC_DEFUN([PMIX_LIBEV_CONFIG],[ - PMIX_VAR_SCOPE_PUSH([pmix_libev_dir pmix_libev_libdir pmix_libev_standard_header_location pmix_libev_standard_lib_location]) + PMIX_VAR_SCOPE_PUSH([pmix_libev_dir pmix_libev_libdir pmix_libev_standard_header_location pmix_libev_standard_lib_location pmix_check_libev_save_CPPFLAGS pmix_check_libev_save_LDFLAGS pmix_check_libev_save_LIBS]) AC_ARG_WITH([libev], [AC_HELP_STRING([--with-libev=DIR], @@ -61,7 +61,7 @@ PMIX_CHECK_PACKAGE([pmix_libev], [event.h], [ev], - [event_base_new], + [ev_async_send], [], [$pmix_libev_dir], [$pmix_libev_libdir], @@ -72,12 +72,12 @@ LIBS="$pmix_check_libev_save_LIBS"]) AS_IF([test $pmix_libev_support -eq 1], - [LIBS="$LIBS $pmix_libev_LIBS" + [PMIX_FLAGS_APPEND_UNIQ(PMIX_FINAL_LIBS, $pmix_libev_LIBS) AS_IF([test "$pmix_libev_standard_header_location" != "yes"], - [CPPFLAGS="$CPPFLAGS $pmix_libev_CPPFLAGS"]) + [PMIX_FLAGS_APPEND_UNIQ(PMIX_FINAL_CPPFLAGS, $pmix_libev_CPPFLAGS)]) AS_IF([test "$pmix_libev_standard_lib_location" != "yes"], - [LDFLAGS="$LDFLAGS $pmix_libev_LDFLAGS"])]) + [PMIX_FLAGS_APPEND_UNIQ(PMIX_FINAL_LDFLAGS, $pmix_libev_LDFLAGS)])]) AC_MSG_CHECKING([will libev support be built]) if test $pmix_libev_support -eq 1; then @@ -88,6 +88,10 @@ PMIX_SUMMARY_ADD([[External Packages]],[[libev]],[libev],[$pmix_libev_dir]) else AC_MSG_RESULT([no]) + # if they asked us to use it, then this is an error + AS_IF([test -n "$with_libev" && test "$with_libev" != "no"], + [AC_MSG_WARN([LIBEV SUPPORT REQUESTED AND NOT FOUND]) + AC_MSG_ERROR([CANNOT CONTINUE])]) fi AC_DEFINE_UNQUOTED([PMIX_HAVE_LIBEV], [$pmix_libev_support], [Whether we are building against libev]) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_zlib.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_zlib.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_zlib.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_setup_zlib.m4 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ # # Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2013 Los Alamos National Security, LLC. All rights reserved. -# Copyright (c) 2013-2017 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2020 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_summary.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_summary.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/config/pmix_summary.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/config/pmix_summary.m4 2022-05-29 09:51:40.000000000 +0000 @@ -5,7 +5,7 @@ dnl Copyright (c) 2016-2018 Cisco Systems, Inc. All rights reserved dnl Copyright (c) 2016 Research Organization for Information Science dnl and Technology (RIST). All rights reserved. -dnl Copyright (c) 2018-2019 Intel, Inc. All rights reserved. +dnl Copyright (c) 2018 Intel, Inc. All rights reserved. dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/configure openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/configure --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/configure 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/configure 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for pmix 3.1.5. +# Generated by GNU Autoconf 2.69 for pmix 3.2.3. # -# Report bugs to . +# Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -275,7 +275,7 @@ $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and -$0: http://pmix.github.io/master about your system, +$0: https://github.com/pmix/pmix/issues about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." @@ -590,9 +590,9 @@ # Identity of this package. PACKAGE_NAME='pmix' PACKAGE_TARNAME='pmix' -PACKAGE_VERSION='3.1.5' -PACKAGE_STRING='pmix 3.1.5' -PACKAGE_BUGREPORT='http://pmix.github.io/master' +PACKAGE_VERSION='3.2.3' +PACKAGE_STRING='pmix 3.2.3' +PACKAGE_BUGREPORT='https://github.com/pmix/pmix/issues' PACKAGE_URL='' # Factoring default headers for most tests. @@ -640,6 +640,8 @@ libpmi_so_version libpmix_so_version CONFIGURE_DEPENDENCIES +PC_PRIVATE_LIBS +PC_REQUIRES CC_FOR_BUILD NEED_LIBPMIX_FALSE NEED_LIBPMIX_TRUE @@ -685,6 +687,17 @@ MCA_BUILD_pmix_ptl_usock_DSO_TRUE MCA_BUILD_pmix_ptl_tcp_DSO_FALSE MCA_BUILD_pmix_ptl_tcp_DSO_TRUE +MCA_pmix_psquash_DSO_SUBDIRS +MCA_pmix_psquash_STATIC_SUBDIRS +MCA_pmix_psquash_ALL_SUBDIRS +MCA_pmix_psquash_STATIC_LTLIBS +MCA_pmix_psquash_DSO_COMPONENTS +MCA_pmix_psquash_STATIC_COMPONENTS +MCA_pmix_psquash_ALL_COMPONENTS +MCA_BUILD_pmix_psquash_native_DSO_FALSE +MCA_BUILD_pmix_psquash_native_DSO_TRUE +MCA_BUILD_pmix_psquash_flex128_DSO_FALSE +MCA_BUILD_pmix_psquash_flex128_DSO_TRUE MCA_pmix_pshmem_DSO_SUBDIRS MCA_pmix_pshmem_STATIC_SUBDIRS MCA_pmix_pshmem_ALL_SUBDIRS @@ -732,6 +745,8 @@ MCA_pmix_preg_ALL_COMPONENTS MCA_BUILD_pmix_preg_native_DSO_FALSE MCA_BUILD_pmix_preg_native_DSO_TRUE +MCA_BUILD_pmix_preg_compress_DSO_FALSE +MCA_BUILD_pmix_preg_compress_DSO_TRUE MCA_pmix_pnet_DSO_SUBDIRS MCA_pmix_pnet_STATIC_SUBDIRS MCA_pmix_pnet_ALL_SUBDIRS @@ -739,16 +754,6 @@ MCA_pmix_pnet_DSO_COMPONENTS MCA_pmix_pnet_STATIC_COMPONENTS MCA_pmix_pnet_ALL_COMPONENTS -MCA_BUILD_pmix_pnet_opa_DSO_FALSE -MCA_BUILD_pmix_pnet_opa_DSO_TRUE -pnet_opa_LIBS -pnet_opa_LDFLAGS -pnet_opa_CPPFLAGS -pnet_opa_CFLAGS -MCA_BUILD_pmix_pnet_test_DSO_FALSE -MCA_BUILD_pmix_pnet_test_DSO_TRUE -MCA_BUILD_pmix_pnet_tcp_DSO_FALSE -MCA_BUILD_pmix_pnet_tcp_DSO_TRUE MCA_pmix_plog_DSO_SUBDIRS MCA_pmix_plog_STATIC_SUBDIRS MCA_pmix_plog_ALL_SUBDIRS @@ -805,6 +810,19 @@ MCA_BUILD_pmix_pdl_pdlopen_DSO_FALSE MCA_BUILD_pmix_pdl_pdlopen_DSO_TRUE pmix_pdl_pdlopen_LIBS +MCA_pmix_pcompress_DSO_SUBDIRS +MCA_pmix_pcompress_STATIC_SUBDIRS +MCA_pmix_pcompress_ALL_SUBDIRS +MCA_pmix_pcompress_STATIC_LTLIBS +MCA_pmix_pcompress_DSO_COMPONENTS +MCA_pmix_pcompress_STATIC_COMPONENTS +MCA_pmix_pcompress_ALL_COMPONENTS +MCA_BUILD_pmix_pcompress_zlib_DSO_FALSE +MCA_BUILD_pmix_pcompress_zlib_DSO_TRUE +pcompress_zlib_LIBS +pcompress_zlib_LDFLAGS +pcompress_zlib_CPPFLAGS +pcompress_zlib_CFLAGS MCA_pmix_gds_DSO_SUBDIRS MCA_pmix_gds_STATIC_SUBDIRS MCA_pmix_gds_ALL_SUBDIRS @@ -866,9 +884,9 @@ CCASDEPMODE CCASFLAGS CCAS +WRAPPER_CC PMIX_EXTRA_LTLIB PMIX_EXTRA_LIB -PMIX_RENAME PMIX_REPO_REV PMIX_GREEK_VERSION pmixnumeric @@ -981,6 +999,8 @@ SOURCE_DATE_EPOCH PMIX_TOP_SRCDIR PMIX_TOP_BUILDDIR +PMIX_PARAM_FROM_PLATFORM +PMIX_DEFAULT_MCA_PARAM_CONF PMIX_CONFIGURE_CLI target_alias host_alias @@ -1023,6 +1043,7 @@ ac_subst_files='' ac_user_opts=' enable_option_checking +with_platform_patches_dir with_platform enable_silent_rules enable_dependency_tracking @@ -1043,6 +1064,7 @@ enable_pmi_backward_compatibility enable_pmix_binaries enable_nonglobal_dlopen +enable_pty_support enable_dummy_handshake with_pic enable_fast_install @@ -1050,7 +1072,6 @@ with_gnu_ld with_sysroot enable_libtool_lock -with_pmix_symbol_rename with_pmix_extra_lib with_pmix_extra_ltlib with_pmix_package_string @@ -1076,12 +1097,9 @@ enable_dl_dlopen with_plibltdl with_libltdl_libdir -with_psm2 -with_psm2_libdir -with_opamgt -with_opamgt_libdir with_munge with_munge_libdir +enable_werror ' ac_precious_vars='build_alias host_alias @@ -1636,7 +1654,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures pmix 3.1.5 to adapt to many kinds of systems. +\`configure' configures pmix 3.2.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1707,7 +1725,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of pmix 3.1.5:";; + short | recursive ) echo "Configuration of pmix 3.2.3:";; esac cat <<\_ACEOF @@ -1756,6 +1774,8 @@ --enable-pmix-binaries enable PMIx tools --enable-nonglobal-dlopen enable non-global dlopen (default: enabled) + --enable-pty-support Enable/disable PTY support for STDIO forwarding. + (default: enabled) --enable-dummy-handshake Enables psec dummy component intended to check the PTL handshake scenario (default: disabled) @@ -1765,8 +1785,8 @@ --enable-c11-atomics Enable use of C11 atomics if available (default: enabled) --enable-builtin-atomics - Enable use of __sync builtin atomics (default: - disabled) + Enable use of GCC built-in atomics (default: + autodetect) --enable-visibility enable visibility feature of certain compilers/linkers (default: enabled) --enable-show-load-errors-by-default @@ -1776,9 +1796,9 @@ MCA-variable-setting mechansism). This MCA variable controls whether warnings are displayed when an MCA component fails to load at run time due to an error. - (default: enabled, meaning that - mca_base_component_show_load_errors is enabled by - default + (default: enabled in --enable-debug builds, meaning + that mca_base_component_show_load_errors is enabled + by default when configured with --enable-debug --enable-mca-no-build=LIST Comma-separated list of - pairs that will not be built. Example: @@ -1806,10 +1826,14 @@ --disable-dl-dlopen Disable the "dlopen" PDL component (and probably force the use of the "libltdl" PDL component). + --enable-werror Treat compiler warnings as errors Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-platform-patches-dir=DIR + Location of the platform patches directory. If you + use this option, you must also use --with-platform. --with-platform=FILE Load options for build from FILE. Options on the command line not in FILE are used. Options on the command line and in FILE are replaced by what is in @@ -1830,8 +1854,6 @@ --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified). - --with-pmix-symbol-rename=PREFIX - Provide a prefix to rename PMIx symbols --with-pmix-extra-lib=LIB Link the output PMIx library to this extra lib (used in embedded mode) @@ -1862,17 +1884,6 @@ path for headers and libraries --with-libltdl-libdir=DIR Search for libltdl libraries in DIR - --with-psm2(=DIR) Build PSM2 (Intel PSM2) support, optionally adding - DIR/include, DIR/lib, and DIR/lib64 to the search - path for headers and libraries - --with-psm2-libdir=DIR Search for PSM (Intel PSM2) libraries in DIR - --with-opamgt(=DIR) Build OmniPath Fabric Management support (optionally - adding DIR/include, DIR/include/opamgt, DIR/lib, and - DIR/lib64 to the search path for headers and - libraries - --with-opamgt-libdir=DIR - Search for OmniPath Fabric Management libraries in - DIR --with-munge=DIR Search for munge headers and libraries in DIR --with-munge-libdir=DIR Search for munge libraries in DIR @@ -1895,7 +1906,7 @@ Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to . +Report bugs to . _ACEOF ac_status=$? fi @@ -1958,7 +1969,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -pmix configure 3.1.5 +pmix configure 3.2.3 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2117,9 +2128,9 @@ $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## ------------------------------------------- ## -## Report this to http://pmix.github.io/master ## -## ------------------------------------------- ##" +( $as_echo "## -------------------------------------------------- ## +## Report this to https://github.com/pmix/pmix/issues ## +## -------------------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac @@ -2667,7 +2678,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by pmix $as_me 3.1.5, which was +It was created by pmix $as_me 3.2.3, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3104,7 +3115,7 @@ PMIX_CONFIGURE_CLI= for arg in "$@"; do - sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + sed_quote_subst='s/\([`"\\]\)/\\\1/g' case "$arg" in *[\\\`\"\$]*) quoted_arg=\'`echo "$arg" | sed $sed_quote_subst`\' ;; @@ -3147,6 +3158,12 @@ # because it twiddles random bits of autoconf +# Check whether --with-platform-patches-dir was given. +if test "${with_platform_patches_dir+set}" = set; then : + withval=$with_platform_patches_dir; +fi + + # Check whether --with-platform was given. if test "${with_platform+set}" = set; then : @@ -3154,6 +3171,9 @@ fi + if test "$with_platform" = "" ; then + with_platform= + fi if test "$with_platform" = "yes" ; then as_fn_error $? "--with-platform argument must include FILE option" "$LINENO" 5 elif test "$with_platform" = "no" ; then @@ -3176,7 +3196,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:3179: Loading environment file $with_platform, with contents below" >&5 + echo "configure:3199: Loading environment file $with_platform, with contents below" >&5 else echo Loading environment file $with_platform, with contents below >&5 fi @@ -3209,7 +3229,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n ""; then - echo "configure:3212: Loaded platform arguments for $platform_loaded" >&5 + echo "configure:3232: Loaded platform arguments for $platform_loaded" >&5 else echo Loaded platform arguments for $platform_loaded >&5 fi @@ -3218,6 +3238,127 @@ # return to where we started cd "$platform_savedir" + + # define an alternate default mca param filename + platform_alt_mca_file="`basename $platform_loaded`.conf" + + # look where platform file is located for platform.conf name + if test -r "${platform_file_dir}/${platform_alt_mca_file}" ; then + PMIX_DEFAULT_MCA_PARAM_CONF=$platform_file_dir/$platform_alt_mca_file + + PMIX_PARAM_FROM_PLATFORM="yes" + + # if not, see if a file is there with the default name + elif test -r "${platform_file_dir}/pmix-mca-params.conf" ; then + PMIX_DEFAULT_MCA_PARAM_CONF=$platform_file_dir/pmix-mca-params.conf + + PMIX_PARAM_FROM_PLATFORM="yes" + + # if not, then just use the default + else + PMIX_DEFAULT_MCA_PARAM_CONF=pmix-mca-params.conf + + PMIX_PARAM_FROM_PLATFORM="no" + + fi + + patch_dir="${with_platform}.patches" + if test -n "$with_platform_patches_dir"; then + if test "$with_platform_patches_dir" = "yes"; then + patch_dir="${with_platform}.patches" + elif test "$with_platform_patches_dir" = "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: Disabling platform patches on user request" >&5 +$as_echo "$as_me: Disabling platform patches on user request" >&6;} + patch_dir="" + elif test -d "$with_platform_patches_dir"; then + patch_dir=$with_platform_patches_dir + else + as_fn_error $? "User provided patches directory: $with_platform_patches_dir not found" "$LINENO" 5 + fi + fi + + patch_done="${srcdir}/.platform_patches" + patch_found=no + + if test -d "${patch_dir}"; then + if test ! -f "${patch_done}"; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: Checking patches from ${patch_dir}/ directory " >&5 +$as_echo "$as_me: Checking patches from ${patch_dir}/ directory " >&6;} + for one_patch in $patch_dir/*.patch ; do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking patch: $one_patch for errors " >&5 +$as_echo_n "checking patch: $one_patch for errors ... " >&6; } + patch -d ${srcdir} -p1 -t -s --dry-run < ${one_patch} + if test "$?" != "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: fail" >&5 +$as_echo "fail" >&6; } + as_fn_error $? "Platform patches failed to apply" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking patch: $one_patch for unsupported configury changes " >&5 +$as_echo_n "checking patch: $one_patch for unsupported configury changes ... " >&6; } + has_configury_items=$(patch -d ${srcdir} -p1 -t --dry-run < ${one_patch} 2>&1 | egrep "^patching" | egrep '*\.(am|m4)$' | wc -l) + + if test $has_configury_items -ne 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: fail" >&5 +$as_echo "fail" >&6; } + as_fn_error $? "Platform patches should not change configury files" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } + fi + done + + + for one_patch in $patch_dir/*.patch ; do + { $as_echo "$as_me:${as_lineno-$LINENO}: Applying patch ${one_patch}" >&5 +$as_echo "$as_me: Applying patch ${one_patch}" >&6;} + patch -d ${srcdir} -p1 -t -s < ${one_patch} + if test "$?" != "0"; then + as_fn_error $? "Failed to apply patch ${one_patch}" "$LINENO" 5 + fi + patch_found=yes + done + + if test "$patch_found" = "yes"; then + + platform_root_short="$(basename $platform_base)" + + # If platform file resides under platform/ root folder - use filename as ident + if test "$platform_root_short" = "platform" ; then + platform_ident="$platform_file" + else + platform_ident="$(basename $platform_base)" + fi + + # Set custom ident for platform patched PMIX + if test -z "$with_ident_string" ; then + with_ident_string="Platform: $platform_ident" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: Platform patches applied, created stamp file ${patch_done}" >&5 +$as_echo "$as_me: Platform patches applied, created stamp file ${patch_done}" >&6;} + touch ${patch_done} + else + { $as_echo "$as_me:${as_lineno-$LINENO}: No platform patches in ${patch_dir}" >&5 +$as_echo "$as_me: No platform patches in ${patch_dir}" >&6;} + fi + + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Platform patches already applied, skipping. ${patch_done} can be removed to re-apply " >&5 +$as_echo "$as_me: WARNING: Platform patches already applied, skipping. ${patch_done} can be removed to re-apply " >&2;} + fi + elif test -n "${patch_dir}"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: No platform patches in ${patch_dir}" >&5 +$as_echo "$as_me: No platform patches in ${patch_dir}" >&6;} + fi + else + PMIX_DEFAULT_MCA_PARAM_CONF=pmix-mca-params.conf + fi @@ -3257,7 +3398,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:3260: === ${1}" >&5 + echo "configure:3401: === ${1}" >&5 else echo === ${1} >&5 fi @@ -3273,7 +3414,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:3276: *** ${1}" >&5 + echo "configure:3417: *** ${1}" >&5 else echo *** ${1} >&5 fi @@ -3289,7 +3430,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:3292: +++ ${1}" >&5 + echo "configure:3433: +++ ${1}" >&5 else echo +++ ${1} >&5 fi @@ -3304,7 +3445,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:3307: --- ${1}" >&5 + echo "configure:3448: --- ${1}" >&5 else echo --- ${1} >&5 fi @@ -3319,7 +3460,7 @@ # 1 is the message # 2 is whether to put a prefix or not if test -n "1"; then - echo "configure:3322: --- ${1}" >&5 + echo "configure:3463: --- ${1}" >&5 else echo --- ${1} >&5 fi @@ -3974,7 +4115,7 @@ # Define the identity of the package. PACKAGE='pmix' - VERSION='3.1.5' + VERSION='3.2.3' # Some tools Automake needs. @@ -6267,16 +6408,12 @@ $as_echo "no" >&6; } WANT_DEBUG=0 fi -#################### Early development override #################### -if test "$WANT_DEBUG" = "0" && test -z "$enable_debug" && test "$PMIX_DEVEL" = "1"; then - WANT_DEBUG=1 - echo "--> developer override: enable debugging code by default" -fi -#################### Early development override #################### + if test "$WANT_DEBUG" = "0"; then CFLAGS="-DNDEBUG $CFLAGS" fi + cat >>confdefs.h <<_ACEOF #define PMIX_ENABLE_DEBUG $WANT_DEBUG _ACEOF @@ -6530,7 +6667,6 @@ fi - # see if they want to disable non-RTLD_GLOBAL dlopen { $as_echo "$as_me:${as_lineno-$LINENO}: checking if want to support dlopen of non-global namespaces" >&5 $as_echo_n "checking if want to support dlopen of non-global namespaces... " >&6; } @@ -6556,6 +6692,32 @@ fi # +# Do we want PTY support? +# + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if want pty support" >&5 +$as_echo_n "checking if want pty support... " >&6; } +# Check whether --enable-pty-support was given. +if test "${enable_pty_support+set}" = set; then : + enableval=$enable_pty_support; +fi + +if test "$enable_pty_support" = "no" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PMIX_ENABLE_PTY_SUPPORT=0 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + PMIX_ENABLE_PTY_SUPPORT=1 +fi + +cat >>confdefs.h <<_ACEOF +#define PMIX_ENABLE_PTY_SUPPORT $PMIX_ENABLE_PTY_SUPPORT +_ACEOF + + +# # psec/dummy_handshake # @@ -9984,16 +10146,13 @@ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[91]*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - 10.[012][,.]*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*) + darwin*) + # Open MPI patched for Darwin / MacOS Big Sur. See + # http://lists.gnu.org/archive/html/bug-libtool/2015-07/msg00001.html + case ${MACOSX_DEPLOYMENT_TARGET},$host in + 10.[012],*|,*powerpc*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + *) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; @@ -15734,6 +15893,11 @@ + # initialize + PMIX_EMBEDDED_LDFLAGS= + PMIX_EMBEDDED_LIBS= + PMIX_EMBEDDED_CPPFLAGS= + # If no prefix was defined, set a good value @@ -15885,34 +16049,6 @@ ac_config_headers="$ac_config_headers src/include/pmix_config.h" - # Rename symbols? - -# Check whether --with-pmix-symbol-rename was given. -if test "${with_pmix_symbol_rename+set}" = set; then : - withval=$with_pmix_symbol_rename; -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for symbol rename" >&5 -$as_echo_n "checking for symbol rename... " >&6; } - if test ! -z "$with_pmix_symbol_rename" && test "$with_pmix_symbol_rename" != "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_pmix_symbol_rename" >&5 -$as_echo "$with_pmix_symbol_rename" >&6; } - pmix_symbol_rename="$with_pmix_symbol_rename" - PMIX_RENAME=$with_pmix_symbol_rename -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - pmix_symbol_rename="" - PMIX_RENAME= -fi - -cat >>confdefs.h <<_ACEOF -#define PMIX_SYMBOL_RENAME $pmix_symbol_rename -_ACEOF - - - ac_config_files="$ac_config_files include/pmix_rename.h" - # Add any extra lib? @@ -16059,6 +16195,11 @@ pmix_scope_index=`expr $pmix_scope_index + 1` + # AC_PROG_CC_C99 changes CC (instead of CFLAGS) so save CC (without c99 + # flags) for use in our wrappers. + WRAPPER_CC="$CC" + + @@ -17367,6 +17508,90 @@ + + + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in pmix_check_cc_iquote_CFLAGS_save; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str + + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_check_cc_iquote_CFLAGS_save\"" + eval $pmix_str + unset pmix_str + + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` + + pmix_check_cc_iquote_CFLAGS_save=${CFLAGS} + CFLAGS="${CFLAGS} -iquote ." + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to add a directory only to the search path for the quote form of include" >&5 +$as_echo_n "checking for $CC option to add a directory only to the search path for the quote form of include... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + pmix_cc_iquote="-iquote" +else + pmix_cc_iquote="-I" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=${pmix_check_cc_iquote_CFLAGS_save} + + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str + + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cc_iquote" >&5 +$as_echo "$pmix_cc_iquote" >&6; } + + if test $pmix_cv_c11_supported = no ; then # It is not currently an error if C11 support is not available. Uncomment the # following lines and update the warning when we require a C11 compiler. @@ -19144,7 +19369,7 @@ # Check for special cases where we do want to allow repeated # arguments (per - # http://www.open-mpi.org/community/lists/devel/2012/08/11362.php + # https://www.open-mpi.org/community/lists/devel/2012/08/11362.php # and # https://github.com/open-mpi/ompi/issues/324). @@ -19235,7 +19460,7 @@ # Check for special cases where we do want to allow repeated # arguments (per - # http://www.open-mpi.org/community/lists/devel/2012/08/11362.php + # https://www.open-mpi.org/community/lists/devel/2012/08/11362.php # and # https://github.com/open-mpi/ompi/issues/324). @@ -19341,7 +19566,7 @@ # Check for special cases where we do want to allow repeated # arguments (per - # http://www.open-mpi.org/community/lists/devel/2012/08/11362.php + # https://www.open-mpi.org/community/lists/devel/2012/08/11362.php # and # https://github.com/open-mpi/ompi/issues/324). @@ -19528,7 +19753,7 @@ # Check for special cases where we do want to allow repeated # arguments (per - # http://www.open-mpi.org/community/lists/devel/2012/08/11362.php + # https://www.open-mpi.org/community/lists/devel/2012/08/11362.php # and # https://github.com/open-mpi/ompi/issues/324). @@ -19709,7 +19934,7 @@ # Check for special cases where we do want to allow repeated # arguments (per - # http://www.open-mpi.org/community/lists/devel/2012/08/11362.php + # https://www.open-mpi.org/community/lists/devel/2012/08/11362.php # and # https://github.com/open-mpi/ompi/issues/324). @@ -19849,7 +20074,7 @@ # Check for special cases where we do want to allow repeated # arguments (per - # http://www.open-mpi.org/community/lists/devel/2012/08/11362.php + # https://www.open-mpi.org/community/lists/devel/2012/08/11362.php # and # https://github.com/open-mpi/ompi/issues/324). @@ -24609,13 +24834,11 @@ - # Check whether --enable-c11-atomics was given. if test "${enable_c11_atomics+set}" = set; then : enableval=$enable_c11_atomics; fi - # Check whether --enable-builtin-atomics was given. if test "${enable_builtin_atomics+set}" = set; then : enableval=$enable_builtin_atomics; @@ -24624,7 +24847,6 @@ - # Is the private index set? If not, set it. if test "x$pmix_scope_index" = "x"; then pmix_scope_index=1 @@ -24660,10 +24882,8 @@ env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - atomic_compare_exchange_CFLAGS_save=$CFLAGS atomic_compare_exchange_LIBS_save=$LIBS - # Do we have C11 atomics on 128-bit integers? # Use a special macro because we need to check with a few different # CFLAGS/LIBS. @@ -24705,10 +24925,8 @@ env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - pmix_asm_check_func_CFLAGS_save=$CFLAGS pmix_asm_check_func_LIBS_save=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for atomic_compare_exchange_strong_16" >&5 $as_echo_n "checking for atomic_compare_exchange_strong_16... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -24718,12 +24936,11 @@ #include #include #include - typedef union { uint64_t fake[2]; _Atomic __int128 real; + __int128 real2; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -24732,27 +24949,23 @@ pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if ( !(r == false && ptr.real == expected.real)) { exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = ptr; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if (!(r == true && ptr.real == desired.real)) { exit(2); } } - int main(int argc, char** argv) { test1(); @@ -24772,7 +24985,6 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - if test $pmix_asm_check_func_happy -eq 0; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for atomic_compare_exchange_strong_16 with -mcx16" >&5 $as_echo_n "checking for atomic_compare_exchange_strong_16 with -mcx16... " >&6; } @@ -24784,12 +24996,11 @@ #include #include #include - typedef union { uint64_t fake[2]; _Atomic __int128 real; + __int128 real2; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -24798,27 +25009,23 @@ pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if ( !(r == false && ptr.real == expected.real)) { exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = ptr; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if (!(r == true && ptr.real == desired.real)) { exit(2); } } - int main(int argc, char** argv) { test1(); @@ -24841,7 +25048,6 @@ conftest$ac_exeext conftest.$ac_ext fi - if test $pmix_asm_check_func_happy -eq 0; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for atomic_compare_exchange_strong_16 with -latomic" >&5 $as_echo_n "checking for atomic_compare_exchange_strong_16 with -latomic... " >&6; } @@ -24853,12 +25059,11 @@ #include #include #include - typedef union { uint64_t fake[2]; _Atomic __int128 real; + __int128 real2; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -24867,27 +25072,23 @@ pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if ( !(r == false && ptr.real == expected.real)) { exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = ptr; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if (!(r == true && ptr.real == desired.real)) { exit(2); } } - int main(int argc, char** argv) { test1(); @@ -24910,7 +25111,6 @@ conftest$ac_exeext conftest.$ac_ext fi - if test $pmix_asm_check_func_happy -eq 1; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking if atomic_compare_exchange_strong_16() gives correct results" >&5 $as_echo_n "checking if atomic_compare_exchange_strong_16() gives correct results... " >&6; } @@ -24925,12 +25125,11 @@ #include #include #include - typedef union { uint64_t fake[2]; _Atomic __int128 real; + __int128 real2; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -24939,27 +25138,23 @@ pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if ( !(r == false && ptr.real == expected.real)) { exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = ptr; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if (!(r == true && ptr.real == desired.real)) { exit(2); } } - int main(int argc, char** argv) { test1(); @@ -24982,19 +25177,16 @@ fi - if test $pmix_asm_check_func_happy -eq 0; then : CFLAGS=$pmix_asm_check_func_CFLAGS_save LIBS=$pmix_asm_check_func_LIBS_save fi - if test $pmix_asm_check_func_happy -eq 1; then : atomic_compare_exchange_result=1 else atomic_compare_exchange_result=0 fi - # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` pmix_scope_test=`expr $pmix_scope_index \> 0` @@ -25016,7 +25208,6 @@ done - # If we have it and it works, check to make sure it is always lock # free. if test $atomic_compare_exchange_result -eq 1; then : @@ -25059,12 +25250,10 @@ fi - cat >>confdefs.h <<_ACEOF #define PMIX_HAVE_C11_CSWAP_INT128 $atomic_compare_exchange_result _ACEOF - if test $atomic_compare_exchange_result -eq 0; then : @@ -25104,7 +25293,6 @@ env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - # Do we have __sync_bool_compare_and_swap? # Use a special macro because we need to check with a few different # CFLAGS/LIBS. @@ -25146,10 +25334,8 @@ env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - pmix_asm_check_func_CFLAGS_save=$CFLAGS pmix_asm_check_func_LIBS_save=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap" >&5 $as_echo_n "checking for __sync_bool_compare_and_swap... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -25158,12 +25344,10 @@ #include #include #include - typedef union { uint64_t fake[2]; __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -25177,7 +25361,6 @@ exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; @@ -25188,7 +25371,6 @@ exit(2); } } - int main(int argc, char** argv) { test1(); @@ -25208,7 +25390,6 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - if test $pmix_asm_check_func_happy -eq 0; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -mcx16" >&5 $as_echo_n "checking for __sync_bool_compare_and_swap with -mcx16... " >&6; } @@ -25219,12 +25400,10 @@ #include #include #include - typedef union { uint64_t fake[2]; __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -25238,7 +25417,6 @@ exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; @@ -25249,7 +25427,6 @@ exit(2); } } - int main(int argc, char** argv) { test1(); @@ -25272,7 +25449,6 @@ conftest$ac_exeext conftest.$ac_ext fi - if test $pmix_asm_check_func_happy -eq 0; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -latomic" >&5 $as_echo_n "checking for __sync_bool_compare_and_swap with -latomic... " >&6; } @@ -25283,12 +25459,10 @@ #include #include #include - typedef union { uint64_t fake[2]; __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -25302,7 +25476,6 @@ exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; @@ -25313,7 +25486,6 @@ exit(2); } } - int main(int argc, char** argv) { test1(); @@ -25336,7 +25508,6 @@ conftest$ac_exeext conftest.$ac_ext fi - if test $pmix_asm_check_func_happy -eq 1; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking if __sync_bool_compare_and_swap() gives correct results" >&5 $as_echo_n "checking if __sync_bool_compare_and_swap() gives correct results... " >&6; } @@ -25350,12 +25521,10 @@ #include #include #include - typedef union { uint64_t fake[2]; __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -25369,7 +25538,6 @@ exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; @@ -25380,7 +25548,6 @@ exit(2); } } - int main(int argc, char** argv) { test1(); @@ -25403,19 +25570,16 @@ fi - if test $pmix_asm_check_func_happy -eq 0; then : CFLAGS=$pmix_asm_check_func_CFLAGS_save LIBS=$pmix_asm_check_func_LIBS_save fi - if test $pmix_asm_check_func_happy -eq 1; then : sync_bool_compare_and_swap_128_result=1 else sync_bool_compare_and_swap_128_result=0 fi - # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` pmix_scope_test=`expr $pmix_scope_index \> 0` @@ -25438,13 +25602,11 @@ - cat >>confdefs.h <<_ACEOF #define PMIX_HAVE_SYNC_BUILTIN_CSWAP_INT128 $sync_bool_compare_and_swap_128_result _ACEOF - # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` pmix_scope_test=`expr $pmix_scope_index \> 0` @@ -25468,7 +25630,6 @@ fi - # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` pmix_scope_test=`expr $pmix_scope_index \> 0` @@ -25490,9 +25651,101 @@ done + pmix_cv_asm_builtin="BUILTIN_NO" - if test "x$enable_c11_atomics" != "xno" && test "$pmix_cv_c11_supported" = "yes" ; then - pmix_cv_asm_builtin="BUILTIN_C11" + if test -z "$pmix_cv_have___atomic" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 32-bit GCC built-in atomics" >&5 +$as_echo_n "checking for 32-bit GCC built-in atomics... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +uint32_t tmp, old = 0; +uint64_t tmp64, old64 = 0; +int +main () +{ + +__atomic_thread_fence(__ATOMIC_SEQ_CST); +__atomic_compare_exchange_n(&tmp, &old, 1, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED); +__atomic_add_fetch(&tmp, 1, __ATOMIC_RELAXED); +__atomic_compare_exchange_n(&tmp64, &old64, 1, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED); +__atomic_add_fetch(&tmp64, 1, __ATOMIC_RELAXED); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + pmix_cv_have___atomic=yes +else + pmix_cv_have___atomic=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_have___atomic" >&5 +$as_echo "$pmix_cv_have___atomic" >&6; } + if test $pmix_cv_have___atomic = "yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit GCC built-in atomics" >&5 +$as_echo_n "checking for 64-bit GCC built-in atomics... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +uint64_t tmp64, old64 = 0; +int +main () +{ + +__atomic_compare_exchange_n(&tmp64, &old64, 1, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED); +__atomic_add_fetch(&tmp64, 1, __ATOMIC_RELAXED); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + pmix_cv_have___atomic_64=yes +else + pmix_cv_have___atomic_64=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_have___atomic_64" >&5 +$as_echo "$pmix_cv_have___atomic_64" >&6; } + if test $pmix_cv_have___atomic_64 = "yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if 64-bit GCC built-in atomics are lock-free" >&5 +$as_echo_n "checking if 64-bit GCC built-in atomics are lock-free... " >&6; } + if test "$cross_compiling" = yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot test -- assume yes (cross compiling)" >&5 +$as_echo "cannot test -- assume yes (cross compiling)" >&6; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +if (!__atomic_is_lock_free (8, 0)) { return 1; } + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + pmix_cv_have___atomic_64=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + else + pmix_cv_have___atomic_64=no + fi + # Check for 128-bit support @@ -25505,7 +25758,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in atomic_compare_exchange_result atomic_compare_exchange_CFLAGS_save atomic_compare_exchange_LIBS_save; do + for pmix_var in atomic_compare_exchange_n_128_result atomic_compare_exchange_n_128_CFLAGS_save atomic_compare_exchange_n_128_LIBS_save; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -25524,18 +25777,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"atomic_compare_exchange_result atomic_compare_exchange_CFLAGS_save atomic_compare_exchange_LIBS_save\"" + pmix_str="pmix_scope_$pmix_scope_index=\"atomic_compare_exchange_n_128_result atomic_compare_exchange_n_128_CFLAGS_save atomic_compare_exchange_n_128_LIBS_save\"" eval $pmix_str unset pmix_str env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - - atomic_compare_exchange_CFLAGS_save=$CFLAGS - atomic_compare_exchange_LIBS_save=$LIBS - - # Do we have C11 atomics on 128-bit integers? + atomic_compare_exchange_n_128_CFLAGS_save=$CFLAGS + atomic_compare_exchange_n_128_LIBS_save=$LIBS + # Do we have __sync_bool_compare_and_swap? # Use a special macro because we need to check with a few different # CFLAGS/LIBS. @@ -25576,25 +25827,20 @@ env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - pmix_asm_check_func_CFLAGS_save=$CFLAGS pmix_asm_check_func_LIBS_save=$LIBS - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for atomic_compare_exchange_strong_16" >&5 -$as_echo_n "checking for atomic_compare_exchange_strong_16... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __atomic_compare_exchange_n" >&5 +$as_echo_n "checking for __atomic_compare_exchange_n... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include -#include - typedef union { uint64_t fake[2]; - _Atomic __int128 real; + __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -25603,27 +25849,25 @@ pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = __atomic_compare_exchange_n(&ptr.real, &expected.real, + desired.real, true, + __ATOMIC_RELAXED, __ATOMIC_RELAXED); if ( !(r == false && ptr.real == expected.real)) { exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = ptr; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = __atomic_compare_exchange_n(&ptr.real, &expected.real, + desired.real, true, + __ATOMIC_RELAXED, __ATOMIC_RELAXED); if (!(r == true && ptr.real == desired.real)) { exit(2); } } - int main(int argc, char** argv) { test1(); @@ -25643,10 +25887,9 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for atomic_compare_exchange_strong_16 with -mcx16" >&5 -$as_echo_n "checking for atomic_compare_exchange_strong_16 with -mcx16... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __atomic_compare_exchange_n with -mcx16" >&5 +$as_echo_n "checking for __atomic_compare_exchange_n with -mcx16... " >&6; } CFLAGS="$CFLAGS -mcx16" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -25654,13 +25897,10 @@ #include #include #include -#include - typedef union { uint64_t fake[2]; - _Atomic __int128 real; + __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -25669,27 +25909,25 @@ pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = __atomic_compare_exchange_n(&ptr.real, &expected.real, + desired.real, true, + __ATOMIC_RELAXED, __ATOMIC_RELAXED); if ( !(r == false && ptr.real == expected.real)) { exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = ptr; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = __atomic_compare_exchange_n(&ptr.real, &expected.real, + desired.real, true, + __ATOMIC_RELAXED, __ATOMIC_RELAXED); if (!(r == true && ptr.real == desired.real)) { exit(2); } } - int main(int argc, char** argv) { test1(); @@ -25712,10 +25950,9 @@ conftest$ac_exeext conftest.$ac_ext fi - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for atomic_compare_exchange_strong_16 with -latomic" >&5 -$as_echo_n "checking for atomic_compare_exchange_strong_16 with -latomic... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __atomic_compare_exchange_n with -latomic" >&5 +$as_echo_n "checking for __atomic_compare_exchange_n with -latomic... " >&6; } LIBS="$LIBS -latomic" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -25723,13 +25960,10 @@ #include #include #include -#include - typedef union { uint64_t fake[2]; - _Atomic __int128 real; + __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -25738,27 +25972,25 @@ pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = __atomic_compare_exchange_n(&ptr.real, &expected.real, + desired.real, true, + __ATOMIC_RELAXED, __ATOMIC_RELAXED); if ( !(r == false && ptr.real == expected.real)) { exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = ptr; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = __atomic_compare_exchange_n(&ptr.real, &expected.real, + desired.real, true, + __ATOMIC_RELAXED, __ATOMIC_RELAXED); if (!(r == true && ptr.real == desired.real)) { exit(2); } } - int main(int argc, char** argv) { test1(); @@ -25781,10 +26013,9 @@ conftest$ac_exeext conftest.$ac_ext fi - if test $pmix_asm_check_func_happy -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if atomic_compare_exchange_strong_16() gives correct results" >&5 -$as_echo_n "checking if atomic_compare_exchange_strong_16() gives correct results... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if __atomic_compare_exchange_n() gives correct results" >&5 +$as_echo_n "checking if __atomic_compare_exchange_n() gives correct results... " >&6; } if test "$cross_compiling" = yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot test -- assume yes (cross compiling)" >&5 $as_echo "cannot test -- assume yes (cross compiling)" >&6; } @@ -25795,13 +26026,10 @@ #include #include #include -#include - typedef union { uint64_t fake[2]; - _Atomic __int128 real; + __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -25810,27 +26038,25 @@ pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = __atomic_compare_exchange_n(&ptr.real, &expected.real, + desired.real, true, + __ATOMIC_RELAXED, __ATOMIC_RELAXED); if ( !(r == false && ptr.real == expected.real)) { exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = ptr; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real, - desired.real, true, - atomic_relaxed, atomic_relaxed); + bool r = __atomic_compare_exchange_n(&ptr.real, &expected.real, + desired.real, true, + __ATOMIC_RELAXED, __ATOMIC_RELAXED); if (!(r == true && ptr.real == desired.real)) { exit(2); } } - int main(int argc, char** argv) { test1(); @@ -25853,19 +26079,16 @@ fi - if test $pmix_asm_check_func_happy -eq 0; then : CFLAGS=$pmix_asm_check_func_CFLAGS_save LIBS=$pmix_asm_check_func_LIBS_save fi - if test $pmix_asm_check_func_happy -eq 1; then : - atomic_compare_exchange_result=1 + atomic_compare_exchange_n_128_result=1 else - atomic_compare_exchange_result=0 + atomic_compare_exchange_n_128_result=0 fi - # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` pmix_scope_test=`expr $pmix_scope_index \> 0` @@ -25887,23 +26110,22 @@ done - # If we have it and it works, check to make sure it is always lock # free. - if test $atomic_compare_exchange_result -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if C11 __int128 atomic compare-and-swap is always lock-free" >&5 -$as_echo_n "checking if C11 __int128 atomic compare-and-swap is always lock-free... " >&6; } + if test $atomic_compare_exchange_n_128_result -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if __int128 atomic compare-and-swap is always lock-free" >&5 +$as_echo_n "checking if __int128 atomic compare-and-swap is always lock-free... " >&6; } if test "$cross_compiling" = yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot test -- assume yes (cross compiling)" >&5 $as_echo "cannot test -- assume yes (cross compiling)" >&6; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + int main () { -_Atomic __int128_t x; if (!atomic_is_lock_free(&x)) { return 1; } +if (!__atomic_always_lock_free(16, 0)) { return 1; } ; return 0; } @@ -25912,14 +26134,14 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else - atomic_compare_exchange_result=0 + atomic_compare_exchange_n_128_result=0 # If this test fails, need to reset CFLAGS/LIBS (the # above tests atomically set CFLAGS/LIBS or not; this # test is running after the fact, so we have to undo # the side-effects of setting CFLAGS/LIBS if the above # tests passed). - CFLAGS=$atomic_compare_exchange_CFLAGS_save - LIBS=$atomic_compare_exchange_LIBS_save + CFLAGS=$atomic_compare_exchange_n_128_CFLAGS_save + LIBS=$atomic_compare_exchange_n_128_LIBS_save { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -25930,13 +26152,11 @@ fi - cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_C11_CSWAP_INT128 $atomic_compare_exchange_result +#define PMIX_HAVE_GCC_BUILTIN_CSWAP_INT128 $atomic_compare_exchange_n_128_result _ACEOF - - if test $atomic_compare_exchange_result -eq 0; then : + if test $atomic_compare_exchange_n_128_result -eq 0; then : @@ -25975,7 +26195,6 @@ env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - # Do we have __sync_bool_compare_and_swap? # Use a special macro because we need to check with a few different # CFLAGS/LIBS. @@ -26017,10 +26236,8 @@ env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - pmix_asm_check_func_CFLAGS_save=$CFLAGS pmix_asm_check_func_LIBS_save=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap" >&5 $as_echo_n "checking for __sync_bool_compare_and_swap... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -26029,12 +26246,10 @@ #include #include #include - typedef union { uint64_t fake[2]; __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -26048,7 +26263,6 @@ exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; @@ -26059,7 +26273,6 @@ exit(2); } } - int main(int argc, char** argv) { test1(); @@ -26079,7 +26292,6 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - if test $pmix_asm_check_func_happy -eq 0; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -mcx16" >&5 $as_echo_n "checking for __sync_bool_compare_and_swap with -mcx16... " >&6; } @@ -26090,12 +26302,10 @@ #include #include #include - typedef union { uint64_t fake[2]; __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -26109,7 +26319,6 @@ exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; @@ -26120,7 +26329,6 @@ exit(2); } } - int main(int argc, char** argv) { test1(); @@ -26143,7 +26351,6 @@ conftest$ac_exeext conftest.$ac_ext fi - if test $pmix_asm_check_func_happy -eq 0; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -latomic" >&5 $as_echo_n "checking for __sync_bool_compare_and_swap with -latomic... " >&6; } @@ -26154,12 +26361,10 @@ #include #include #include - typedef union { uint64_t fake[2]; __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -26173,7 +26378,6 @@ exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; @@ -26184,7 +26388,6 @@ exit(2); } } - int main(int argc, char** argv) { test1(); @@ -26207,7 +26410,6 @@ conftest$ac_exeext conftest.$ac_ext fi - if test $pmix_asm_check_func_happy -eq 1; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking if __sync_bool_compare_and_swap() gives correct results" >&5 $as_echo_n "checking if __sync_bool_compare_and_swap() gives correct results... " >&6; } @@ -26221,12 +26423,10 @@ #include #include #include - typedef union { uint64_t fake[2]; __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -26240,7 +26440,6 @@ exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; @@ -26251,7 +26450,6 @@ exit(2); } } - int main(int argc, char** argv) { test1(); @@ -26274,19 +26472,16 @@ fi - if test $pmix_asm_check_func_happy -eq 0; then : CFLAGS=$pmix_asm_check_func_CFLAGS_save LIBS=$pmix_asm_check_func_LIBS_save fi - if test $pmix_asm_check_func_happy -eq 1; then : sync_bool_compare_and_swap_128_result=1 else sync_bool_compare_and_swap_128_result=0 fi - # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` pmix_scope_test=`expr $pmix_scope_index \> 0` @@ -26309,13 +26504,11 @@ - cat >>confdefs.h <<_ACEOF #define PMIX_HAVE_SYNC_BUILTIN_CSWAP_INT128 $sync_bool_compare_and_swap_128_result _ACEOF - # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` pmix_scope_test=`expr $pmix_scope_index \> 0` @@ -26339,7 +26532,6 @@ fi - # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` pmix_scope_test=`expr $pmix_scope_index \> 0` @@ -26361,49 +26553,10 @@ done - elif test "x$enable_c11_atomics" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C11 atomics were requested but are not supported" >&5 -$as_echo "$as_me: WARNING: C11 atomics were requested but are not supported" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - else - pmix_cv_asm_builtin="BUILTIN_NO" - if test "$pmix_cv_asm_builtin" = "BUILTIN_NO" && test "$enable_builtin_atomics" = "yes"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __atomic builtin atomics" >&5 -$as_echo_n "checking for __atomic builtin atomics... " >&6; } - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -uint32_t tmp, old = 0; -uint64_t tmp64, old64 = 0; -int -main () -{ - -__atomic_thread_fence(__ATOMIC_SEQ_CST); -__atomic_compare_exchange_n(&tmp, &old, 1, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED); -__atomic_add_fetch(&tmp, 1, __ATOMIC_RELAXED); -__atomic_compare_exchange_n(&tmp64, &old64, 1, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED); -__atomic_add_fetch(&tmp64, 1, __ATOMIC_RELAXED); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_cv_asm_builtin="BUILTIN_GCC" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + fi - # Check for 128-bit support + if test "x$enable_c11_atomics" != "xno" && test "$pmix_cv_c11_supported" = "yes" ; then + pmix_cv_asm_builtin="BUILTIN_C11" @@ -26416,7 +26569,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in atomic_compare_exchange_n_128_result atomic_compare_exchange_n_128_CFLAGS_save atomic_compare_exchange_n_128_LIBS_save; do + for pmix_var in atomic_compare_exchange_result atomic_compare_exchange_CFLAGS_save atomic_compare_exchange_LIBS_save; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -26435,18 +26588,16 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"atomic_compare_exchange_n_128_result atomic_compare_exchange_n_128_CFLAGS_save atomic_compare_exchange_n_128_LIBS_save\"" + pmix_str="pmix_scope_$pmix_scope_index=\"atomic_compare_exchange_result atomic_compare_exchange_CFLAGS_save atomic_compare_exchange_LIBS_save\"" eval $pmix_str unset pmix_str env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - - atomic_compare_exchange_n_128_CFLAGS_save=$CFLAGS - atomic_compare_exchange_n_128_LIBS_save=$LIBS - - # Do we have __sync_bool_compare_and_swap? + atomic_compare_exchange_CFLAGS_save=$CFLAGS + atomic_compare_exchange_LIBS_save=$LIBS + # Do we have C11 atomics on 128-bit integers? # Use a special macro because we need to check with a few different # CFLAGS/LIBS. @@ -26487,24 +26638,22 @@ env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - pmix_asm_check_func_CFLAGS_save=$CFLAGS pmix_asm_check_func_LIBS_save=$LIBS - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __atomic_compare_exchange_n" >&5 -$as_echo_n "checking for __atomic_compare_exchange_n... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for atomic_compare_exchange_strong_16" >&5 +$as_echo_n "checking for atomic_compare_exchange_strong_16... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include - +#include typedef union { uint64_t fake[2]; - __int128 real; + _Atomic __int128 real; + __int128 real2; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -26513,27 +26662,23 @@ pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __atomic_compare_exchange_n(&ptr.real, &expected.real, - desired.real, true, - __ATOMIC_RELAXED, __ATOMIC_RELAXED); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if ( !(r == false && ptr.real == expected.real)) { exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = ptr; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __atomic_compare_exchange_n(&ptr.real, &expected.real, - desired.real, true, - __ATOMIC_RELAXED, __ATOMIC_RELAXED); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if (!(r == true && ptr.real == desired.real)) { exit(2); } } - int main(int argc, char** argv) { test1(); @@ -26553,10 +26698,9 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __atomic_compare_exchange_n with -mcx16" >&5 -$as_echo_n "checking for __atomic_compare_exchange_n with -mcx16... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for atomic_compare_exchange_strong_16 with -mcx16" >&5 +$as_echo_n "checking for atomic_compare_exchange_strong_16 with -mcx16... " >&6; } CFLAGS="$CFLAGS -mcx16" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -26564,12 +26708,12 @@ #include #include #include - +#include typedef union { uint64_t fake[2]; - __int128 real; + _Atomic __int128 real; + __int128 real2; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -26578,27 +26722,23 @@ pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __atomic_compare_exchange_n(&ptr.real, &expected.real, - desired.real, true, - __ATOMIC_RELAXED, __ATOMIC_RELAXED); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if ( !(r == false && ptr.real == expected.real)) { exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = ptr; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __atomic_compare_exchange_n(&ptr.real, &expected.real, - desired.real, true, - __ATOMIC_RELAXED, __ATOMIC_RELAXED); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if (!(r == true && ptr.real == desired.real)) { exit(2); } } - int main(int argc, char** argv) { test1(); @@ -26621,10 +26761,9 @@ conftest$ac_exeext conftest.$ac_ext fi - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __atomic_compare_exchange_n with -latomic" >&5 -$as_echo_n "checking for __atomic_compare_exchange_n with -latomic... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for atomic_compare_exchange_strong_16 with -latomic" >&5 +$as_echo_n "checking for atomic_compare_exchange_strong_16 with -latomic... " >&6; } LIBS="$LIBS -latomic" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -26632,12 +26771,12 @@ #include #include #include - +#include typedef union { uint64_t fake[2]; - __int128 real; + _Atomic __int128 real; + __int128 real2; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -26646,27 +26785,23 @@ pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __atomic_compare_exchange_n(&ptr.real, &expected.real, - desired.real, true, - __ATOMIC_RELAXED, __ATOMIC_RELAXED); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if ( !(r == false && ptr.real == expected.real)) { exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = ptr; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __atomic_compare_exchange_n(&ptr.real, &expected.real, - desired.real, true, - __ATOMIC_RELAXED, __ATOMIC_RELAXED); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if (!(r == true && ptr.real == desired.real)) { exit(2); } } - int main(int argc, char** argv) { test1(); @@ -26689,10 +26824,9 @@ conftest$ac_exeext conftest.$ac_ext fi - if test $pmix_asm_check_func_happy -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if __atomic_compare_exchange_n() gives correct results" >&5 -$as_echo_n "checking if __atomic_compare_exchange_n() gives correct results... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if atomic_compare_exchange_strong_16() gives correct results" >&5 +$as_echo_n "checking if atomic_compare_exchange_strong_16() gives correct results... " >&6; } if test "$cross_compiling" = yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot test -- assume yes (cross compiling)" >&5 $as_echo "cannot test -- assume yes (cross compiling)" >&6; } @@ -26703,12 +26837,12 @@ #include #include #include - +#include typedef union { uint64_t fake[2]; - __int128 real; + _Atomic __int128 real; + __int128 real2; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -26717,27 +26851,23 @@ pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __atomic_compare_exchange_n(&ptr.real, &expected.real, - desired.real, true, - __ATOMIC_RELAXED, __ATOMIC_RELAXED); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if ( !(r == false && ptr.real == expected.real)) { exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; pmix128 expected = ptr; pmix128 desired = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __atomic_compare_exchange_n(&ptr.real, &expected.real, - desired.real, true, - __ATOMIC_RELAXED, __ATOMIC_RELAXED); + bool r = atomic_compare_exchange_strong (&ptr.real, &expected.real2, + desired.real); if (!(r == true && ptr.real == desired.real)) { exit(2); } } - int main(int argc, char** argv) { test1(); @@ -26760,19 +26890,16 @@ fi - if test $pmix_asm_check_func_happy -eq 0; then : CFLAGS=$pmix_asm_check_func_CFLAGS_save LIBS=$pmix_asm_check_func_LIBS_save fi - if test $pmix_asm_check_func_happy -eq 1; then : - atomic_compare_exchange_n_128_result=1 + atomic_compare_exchange_result=1 else - atomic_compare_exchange_n_128_result=0 + atomic_compare_exchange_result=0 fi - # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` pmix_scope_test=`expr $pmix_scope_index \> 0` @@ -26794,23 +26921,22 @@ done - # If we have it and it works, check to make sure it is always lock # free. - if test $atomic_compare_exchange_n_128_result -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if __int128 atomic compare-and-swap is always lock-free" >&5 -$as_echo_n "checking if __int128 atomic compare-and-swap is always lock-free... " >&6; } + if test $atomic_compare_exchange_result -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if C11 __int128 atomic compare-and-swap is always lock-free" >&5 +$as_echo_n "checking if C11 __int128 atomic compare-and-swap is always lock-free... " >&6; } if test "$cross_compiling" = yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot test -- assume yes (cross compiling)" >&5 $as_echo "cannot test -- assume yes (cross compiling)" >&6; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - +#include int main () { -if (!__atomic_always_lock_free(16, 0)) { return 1; } +_Atomic __int128_t x; if (!atomic_is_lock_free(&x)) { return 1; } ; return 0; } @@ -26819,14 +26945,14 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else - atomic_compare_exchange_n_128_result=0 + atomic_compare_exchange_result=0 # If this test fails, need to reset CFLAGS/LIBS (the # above tests atomically set CFLAGS/LIBS or not; this # test is running after the fact, so we have to undo # the side-effects of setting CFLAGS/LIBS if the above # tests passed). - CFLAGS=$atomic_compare_exchange_n_128_CFLAGS_save - LIBS=$atomic_compare_exchange_n_128_LIBS_save + CFLAGS=$atomic_compare_exchange_CFLAGS_save + LIBS=$atomic_compare_exchange_LIBS_save { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -26837,13 +26963,11 @@ fi - cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_GCC_BUILTIN_CSWAP_INT128 $atomic_compare_exchange_n_128_result +#define PMIX_HAVE_C11_CSWAP_INT128 $atomic_compare_exchange_result _ACEOF - - if test $atomic_compare_exchange_n_128_result -eq 0; then : + if test $atomic_compare_exchange_result -eq 0; then : @@ -26882,7 +27006,6 @@ env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - # Do we have __sync_bool_compare_and_swap? # Use a special macro because we need to check with a few different # CFLAGS/LIBS. @@ -26924,10 +27047,8 @@ env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - pmix_asm_check_func_CFLAGS_save=$CFLAGS pmix_asm_check_func_LIBS_save=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap" >&5 $as_echo_n "checking for __sync_bool_compare_and_swap... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -26936,12 +27057,10 @@ #include #include #include - typedef union { uint64_t fake[2]; __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -26955,7 +27074,6 @@ exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; @@ -26966,7 +27084,6 @@ exit(2); } } - int main(int argc, char** argv) { test1(); @@ -26986,7 +27103,6 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - if test $pmix_asm_check_func_happy -eq 0; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -mcx16" >&5 $as_echo_n "checking for __sync_bool_compare_and_swap with -mcx16... " >&6; } @@ -26997,12 +27113,10 @@ #include #include #include - typedef union { uint64_t fake[2]; __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -27016,7 +27130,6 @@ exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; @@ -27027,7 +27140,6 @@ exit(2); } } - int main(int argc, char** argv) { test1(); @@ -27050,7 +27162,6 @@ conftest$ac_exeext conftest.$ac_ext fi - if test $pmix_asm_check_func_happy -eq 0; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -latomic" >&5 $as_echo_n "checking for __sync_bool_compare_and_swap with -latomic... " >&6; } @@ -27061,12 +27172,10 @@ #include #include #include - typedef union { uint64_t fake[2]; __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -27080,7 +27189,6 @@ exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; @@ -27091,7 +27199,6 @@ exit(2); } } - int main(int argc, char** argv) { test1(); @@ -27114,7 +27221,6 @@ conftest$ac_exeext conftest.$ac_ext fi - if test $pmix_asm_check_func_happy -eq 1; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking if __sync_bool_compare_and_swap() gives correct results" >&5 $as_echo_n "checking if __sync_bool_compare_and_swap() gives correct results... " >&6; } @@ -27128,12 +27234,10 @@ #include #include #include - typedef union { uint64_t fake[2]; __int128 real; } pmix128; - static void test1(void) { // As of Aug 2018, we could not figure out a way to assign 128-bit @@ -27147,7 +27251,6 @@ exit(1); } } - static void test2(void) { pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; @@ -27158,7 +27261,6 @@ exit(2); } } - int main(int argc, char** argv) { test1(); @@ -27181,19 +27283,16 @@ fi - if test $pmix_asm_check_func_happy -eq 0; then : CFLAGS=$pmix_asm_check_func_CFLAGS_save LIBS=$pmix_asm_check_func_LIBS_save fi - if test $pmix_asm_check_func_happy -eq 1; then : sync_bool_compare_and_swap_128_result=1 else sync_bool_compare_and_swap_128_result=0 fi - # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` pmix_scope_test=`expr $pmix_scope_index \> 0` @@ -27216,13 +27315,11 @@ - cat >>confdefs.h <<_ACEOF #define PMIX_HAVE_SYNC_BUILTIN_CSWAP_INT128 $sync_bool_compare_and_swap_128_result _ACEOF - # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` pmix_scope_test=`expr $pmix_scope_index \> 0` @@ -27246,7 +27343,6 @@ fi - # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` pmix_scope_test=`expr $pmix_scope_index \> 0` @@ -27268,742 +27364,276 @@ done + elif test "x$enable_c11_atomics" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C11 atomics were requested but are not supported" >&5 +$as_echo "$as_me: WARNING: C11 atomics were requested but are not supported" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + elif test "$enable_builtin_atomics" = "yes" ; then + if test $pmix_cv_have___atomic = "yes" ; then + pmix_cv_asm_builtin="BUILTIN_GCC" + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: GCC built-in atomics requested but not found." >&5 +$as_echo "$as_me: WARNING: GCC built-in atomics requested but not found." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi -fi - if test "$pmix_cv_asm_builtin" = "BUILTIN_NO" && test "$enable_builtin_atomics" = "yes"; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync builtin atomics" >&5 -$as_echo_n "checking for __sync builtin atomics... " >&6; } - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -long tmp; -int -main () -{ -__sync_synchronize(); -__sync_bool_compare_and_swap(&tmp, 0, 1); -__sync_add_and_fetch(&tmp, 1); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_cv_asm_builtin="BUILTIN_SYNC" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if .proc/endp is needed" >&5 +$as_echo_n "checking if .proc/endp is needed... " >&6; } +if ${pmix_cv_asm_need_proc+:} false; then : + $as_echo_n "(cached) " >&6 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + pmix_cv_asm_need_proc="no" + cat >conftest.s <&5 -$as_echo_n "checking for 64-bit __sync builtin atomics... " >&6; } - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -uint64_t tmp; -int -main () -{ - -__sync_bool_compare_and_swap(&tmp, 0, 1); -__sync_add_and_fetch(&tmp, 1); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_asm_sync_have_64bit=1 +if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$pmix_assemble\""; } >&5 + (eval $pmix_assemble) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # save the warnings + cat conftest.out >&5 + pmix_cv_asm_need_proc="yes" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - pmix_asm_sync_have_64bit=0 + # save compiler output and failed program + cat conftest.out >&5 + echo "configure: failed program was:" >&5 + cat conftest.s >&5 + : fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -rf conftest* +unset pmix_assemble + + rm -f conftest.out +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_need_proc" >&5 +$as_echo "$pmix_cv_asm_need_proc" >&6; } + if test "$pmix_cv_asm_need_proc" = "yes" ; then + pmix_cv_asm_proc=".proc" + pmix_cv_asm_endproc=".endp" + else + pmix_cv_asm_proc="#" + pmix_cv_asm_endproc="#" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking directive for setting text section" >&5 +$as_echo_n "checking directive for setting text section... " >&6; } + pmix_cv_asm_text="" + if test "$pmix_cv_c_compiler_vendor" = "microsoft" ; then + # text section will be brought in with the rest of + # header for MS - leave blank for now + pmix_cv_asm_text="" + else + case $host in + *-aix*) + pmix_cv_asm_text=".csect .text[PR]" + ;; + *) + pmix_cv_asm_text=".text" + ;; + esac + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_text" >&5 +$as_echo "$pmix_cv_asm_text" >&6; } cat >>confdefs.h <<_ACEOF -#define PMIX_ASM_SYNC_HAVE_64BIT $pmix_asm_sync_have_64bit +#define PMIX_ASM_TEXT "$pmix_cv_asm_text" _ACEOF - - # Check for 128-bit support + PMIX_ASM_TEXT="$pmix_cv_asm_text" - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking directive for exporting symbols" >&5 +$as_echo_n "checking directive for exporting symbols... " >&6; } + pmix_cv_asm_global="" + if test "$pmix_cv_c_compiler_vendor" = "microsoft" ; then + pmix_cv_asm_global="PUBLIC" + else + case $host in + *) + pmix_cv_asm_global=".globl" + ;; + esac fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_global" >&5 +$as_echo "$pmix_cv_asm_global" >&6; } - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in sync_bool_compare_and_swap_128_result; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str +cat >>confdefs.h <<_ACEOF +#define PMIX_ASM_GLOBAL "$pmix_cv_asm_global" +_ACEOF - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + PMIX_ASM_GLOBAL="$pmix_cv_asm_global" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"sync_bool_compare_and_swap_128_result\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - # Do we have __sync_bool_compare_and_swap? - # Use a special macro because we need to check with a few different - # CFLAGS/LIBS. + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if .note.GNU-stack is needed" >&5 +$as_echo_n "checking if .note.GNU-stack is needed... " >&6; } +if ${pmix_cv_asm_gnu_stack_result+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$OBJDUMP" != ""; then : + # first, see if a simple C program has it set + cat >conftest.c <&5 +$CC $CFLAGS -c conftest.c -o conftest.$OBJEXT 1>&5 2>&1 +pmix_status=$? - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:27536: \$? = $pmix_status" >&5 +else + echo \$? = $pmix_status >&5 +fi +if test "$pmix_status" = "0"; then + unset pmix_status + $OBJDUMP -x conftest.$OBJEXT 2>&1 | $GREP '\.note\.GNU-stack' &> /dev/null && pmix_cv_asm_gnu_stack_result=yes +else + unset pmix_status - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_asm_check_func_happy pmix_asm_check_func_CFLAGS_save pmix_asm_check_func_LIBS_save\"" - eval $pmix_str - unset pmix_str +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "1"; then + echo "configure:27549: the failed program was:" >&5 +else + echo the failed program was: >&5 +fi - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` +# 1 is the filename +if test -n "conftest.c" && test -f "conftest.c"; then + cat conftest.c >&5 +fi + pmix_cv_asm_gnu_stack_result=no +fi + if test "$pmix_cv_asm_gnu_stack_result" != "yes" ; then + pmix_cv_asm_gnu_stack_result="no" + fi + rm -rf conftest.* +else + pmix_cv_asm_gnu_stack_result="no" +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_gnu_stack_result" >&5 +$as_echo "$pmix_cv_asm_gnu_stack_result" >&6; } + if test "$pmix_cv_asm_gnu_stack_result" = "yes" ; then + pmix_cv_asm_gnu_stack=1 + else + pmix_cv_asm_gnu_stack=0 + fi - pmix_asm_check_func_CFLAGS_save=$CFLAGS - pmix_asm_check_func_LIBS_save=$LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: checking suffix for labels" >&5 +$as_echo_n "checking suffix for labels... " >&6; } + pmix_cv_asm_label_suffix="" + case $host in + *) + pmix_cv_asm_label_suffix=":" + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_label_suffix" >&5 +$as_echo "$pmix_cv_asm_label_suffix" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +cat >>confdefs.h <<_ACEOF +#define PMIX_ASM_LABEL_SUFFIX "$pmix_cv_asm_label_suffix" +_ACEOF -#include -#include -#include + PMIX_ASM_LABEL_SUFFIX="$pmix_cv_asm_label_suffix" -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking prefix for global symbol labels" >&5 +$as_echo_n "checking prefix for global symbol labels... " >&6; } +if ${pmix_cv_asm_gsym+:} false; then : + $as_echo_n "(cached) " >&6 +else -int main(int argc, char** argv) + pmix_cv_asm_gsym="none" + for sym in "_" "" "." ; do + asm_result=0 + echo "configure: trying $sym" >&5 +cat > conftest_c.c <conftest.s <&5 -$as_echo "yes" >&6; } +$pmix_cv_asm_text +$pmix_cv_asm_proc ${sym}gsym_test_func +$pmix_cv_asm_global ${sym}gsym_test_func +${sym}gsym_test_func${pmix_cv_asm_label_suffix} +$pmix_cv_asm_endproc ${sym}gsym_test_func + +EOF +if test "$CC" = "$CCAS" ; then + pmix_assemble="$CCAS $CCASFLAGS -c conftest.s >conftest.out 2>&1" else - pmix_asm_check_func_happy=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -mcx16" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap with -mcx16... " >&6; } - CFLAGS="$CFLAGS -mcx16" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} - -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - CFLAGS=$pmix_asm_check_func_CFLAGS_save - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi - - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -latomic" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap with -latomic... " >&6; } - LIBS="$LIBS -latomic" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} - -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - LIBS=$pmix_asm_check_func_LIBS_save - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi - - if test $pmix_asm_check_func_happy -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if __sync_bool_compare_and_swap() gives correct results" >&5 -$as_echo_n "checking if __sync_bool_compare_and_swap() gives correct results... " >&6; } - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot test -- assume yes (cross compiling)" >&5 -$as_echo "cannot test -- assume yes (cross compiling)" >&6; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} - -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi - - if test $pmix_asm_check_func_happy -eq 0; then : - CFLAGS=$pmix_asm_check_func_CFLAGS_save - LIBS=$pmix_asm_check_func_LIBS_save -fi - - if test $pmix_asm_check_func_happy -eq 1; then : - sync_bool_compare_and_swap_128_result=1 -else - sync_bool_compare_and_swap_128_result=0 -fi - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - - -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_SYNC_BUILTIN_CSWAP_INT128 $sync_bool_compare_and_swap_128_result -_ACEOF - - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - -fi - if test "$pmix_cv_asm_builtin" = "BUILTIN_NO" && test "$enable_builtin_atomics" = "yes"; then : - as_fn_error $? "__sync builtin atomics requested but not found." "$LINENO" 5 -fi - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if .proc/endp is needed" >&5 -$as_echo_n "checking if .proc/endp is needed... " >&6; } -if ${pmix_cv_asm_need_proc+:} false; then : - $as_echo_n "(cached) " >&6 -else - pmix_cv_asm_need_proc="no" - cat >conftest.s <&5 - (eval $pmix_assemble) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - # save the warnings - cat conftest.out >&5 - pmix_cv_asm_need_proc="yes" -else - # save compiler output and failed program - cat conftest.out >&5 - echo "configure: failed program was:" >&5 - cat conftest.s >&5 - : -fi -rm -rf conftest* -unset pmix_assemble - - rm -f conftest.out -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_need_proc" >&5 -$as_echo "$pmix_cv_asm_need_proc" >&6; } - - if test "$pmix_cv_asm_need_proc" = "yes" ; then - pmix_cv_asm_proc=".proc" - pmix_cv_asm_endproc=".endp" - else - pmix_cv_asm_proc="#" - pmix_cv_asm_endproc="#" - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking directive for setting text section" >&5 -$as_echo_n "checking directive for setting text section... " >&6; } - pmix_cv_asm_text="" - if test "$pmix_cv_c_compiler_vendor" = "microsoft" ; then - # text section will be brought in with the rest of - # header for MS - leave blank for now - pmix_cv_asm_text="" - else - case $host in - *-aix*) - pmix_cv_asm_text=".csect .text[PR]" - ;; - *) - pmix_cv_asm_text=".text" - ;; - esac - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_text" >&5 -$as_echo "$pmix_cv_asm_text" >&6; } - -cat >>confdefs.h <<_ACEOF -#define PMIX_ASM_TEXT "$pmix_cv_asm_text" -_ACEOF - - PMIX_ASM_TEXT="$pmix_cv_asm_text" - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking directive for exporting symbols" >&5 -$as_echo_n "checking directive for exporting symbols... " >&6; } - pmix_cv_asm_global="" - if test "$pmix_cv_c_compiler_vendor" = "microsoft" ; then - pmix_cv_asm_global="PUBLIC" - else - case $host in - *) - pmix_cv_asm_global=".globl" - ;; - esac - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_global" >&5 -$as_echo "$pmix_cv_asm_global" >&6; } - -cat >>confdefs.h <<_ACEOF -#define PMIX_ASM_GLOBAL "$pmix_cv_asm_global" -_ACEOF - - PMIX_ASM_GLOBAL="$pmix_cv_asm_global" - - - - - - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OBJDUMP="objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if .note.GNU-stack is needed" >&5 -$as_echo_n "checking if .note.GNU-stack is needed... " >&6; } -if ${pmix_cv_asm_gnu_stack_result+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$OBJDUMP" != ""; then : - # first, see if a simple C program has it set - cat >conftest.c <&5 -$CC $CFLAGS -c conftest.c -o conftest.$OBJEXT 1>&5 2>&1 -pmix_status=$? - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:27902: \$? = $pmix_status" >&5 -else - echo \$? = $pmix_status >&5 -fi -if test "$pmix_status" = "0"; then - unset pmix_status - $OBJDUMP -x conftest.$OBJEXT | $GREP '\.note\.GNU-stack' > /dev/null && pmix_cv_asm_gnu_stack_result=yes -else - unset pmix_status - -# 1 is the message -# 2 is whether to put a prefix or not -if test -n "1"; then - echo "configure:27915: the failed program was:" >&5 -else - echo the failed program was: >&5 -fi - -# 1 is the filename -if test -n "conftest.c" && test -f "conftest.c"; then - cat conftest.c >&5 -fi - pmix_cv_asm_gnu_stack_result=no -fi - if test "$pmix_cv_asm_gnu_stack_result" != "yes" ; then - pmix_cv_asm_gnu_stack_result="no" - fi - rm -rf conftest.* -else - pmix_cv_asm_gnu_stack_result="no" -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_gnu_stack_result" >&5 -$as_echo "$pmix_cv_asm_gnu_stack_result" >&6; } - if test "$pmix_cv_asm_gnu_stack_result" = "yes" ; then - pmix_cv_asm_gnu_stack=1 - else - pmix_cv_asm_gnu_stack=0 - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking suffix for labels" >&5 -$as_echo_n "checking suffix for labels... " >&6; } - pmix_cv_asm_label_suffix="" - case $host in - *) - pmix_cv_asm_label_suffix=":" - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_label_suffix" >&5 -$as_echo "$pmix_cv_asm_label_suffix" >&6; } - -cat >>confdefs.h <<_ACEOF -#define PMIX_ASM_LABEL_SUFFIX "$pmix_cv_asm_label_suffix" -_ACEOF - - PMIX_ASM_LABEL_SUFFIX="$pmix_cv_asm_label_suffix" - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking prefix for global symbol labels" >&5 -$as_echo_n "checking prefix for global symbol labels... " >&6; } -if ${pmix_cv_asm_gsym+:} false; then : - $as_echo_n "(cached) " >&6 -else - - pmix_cv_asm_gsym="none" - - for sym in "_" "" "." ; do - asm_result=0 - echo "configure: trying $sym" >&5 -cat > conftest_c.c <conftest.s <&5 (eval $pmix_assemble) 2>&5 @@ -28064,12 +27694,10 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_gsym" >&5 $as_echo "$pmix_cv_asm_gsym" >&6; } - if test "$pmix_cv_asm_gsym" = "none" ; then as_fn_error $? "Could not determine global symbol label prefix" "$LINENO" 5 fi - cat >>confdefs.h <<_ACEOF #define PMIX_ASM_GSYM "$pmix_cv_asm_gsym" _ACEOF @@ -28079,8 +27707,6 @@ - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking prefix for lsym labels" >&5 $as_echo_n "checking prefix for lsym labels... " >&6; } if ${pmix_cv_asm_lsym+:} false; then : @@ -28088,9 +27714,7 @@ else - pmix_cv_asm_lsym="L" - for sym in L .L $ L$ ; do asm_result=0 echo "configure: trying $sym" >&5 @@ -28166,7 +27790,6 @@ else pmix_cv_asm_type="" - case "${host}" in *-sun-solaris*) # GCC on solaris seems to accept just about anything, not @@ -28213,14 +27836,12 @@ ;; esac rm -f conftest.out - unset asm_result type fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_type" >&5 $as_echo "$pmix_cv_asm_type" >&6; } - cat >>confdefs.h <<_ACEOF #define PMIX_ASM_TYPE "$pmix_cv_asm_type" _ACEOF @@ -28265,14 +27886,12 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_need_size" >&5 $as_echo "$pmix_cv_asm_need_size" >&6; } - if test "$pmix_cv_asm_need_size" = "yes" ; then pmix_asm_size=1 else pmix_asm_size=0 fi - cat >>confdefs.h <<_ACEOF #define PMIX_ASM_SIZE "$pmix_asm_size" _ACEOF @@ -28284,7 +27903,6 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if .align directive takes logarithmic value" >&5 $as_echo_n "checking if .align directive takes logarithmic value... " >&6; } if ${pmix_cv_asm_align_log+:} false; then : @@ -28332,26 +27950,26 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_align_log" >&5 $as_echo "$pmix_cv_asm_align_log" >&6; } - if test "$pmix_cv_asm_align_log" = "yes" || test "$pmix_cv_asm_align_log" = "1" ; then pmix_asm_align_log_result=1 else pmix_asm_align_log_result=0 fi - cat >>confdefs.h <<_ACEOF #define PMIX_ASM_ALIGN_LOG $asm_align_log_result _ACEOF - unset omp_asm_addr asm_result - # find our architecture for purposes of assembly stuff pmix_cv_asm_arch="UNSUPPORTED" PMIX_GCC_INLINE_ASSIGN="" + if test "$pmix_cv_have___atomic_64" ; then + PMIX_ASM_SUPPORT_64BIT=1 + else PMIX_ASM_SUPPORT_64BIT=0 + fi case "${host}" in x86_64-*x32) pmix_cv_asm_arch="X86_64" @@ -28407,7 +28025,6 @@ - # Is the private index set? If not, set it. if test "x$pmix_scope_index" = "x"; then pmix_scope_index=1 @@ -28443,10 +28060,8 @@ env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - pmix_asm_check_func_CFLAGS_save=$CFLAGS pmix_asm_check_func_LIBS_save=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cmpxchg16b" >&5 $as_echo_n "checking for cmpxchg16b... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -28471,7 +28086,6 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - if test $pmix_asm_check_func_happy -eq 0; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cmpxchg16b with -mcx16" >&5 $as_echo_n "checking for cmpxchg16b with -mcx16... " >&6; } @@ -28501,7 +28115,6 @@ conftest$ac_exeext conftest.$ac_ext fi - if test $pmix_asm_check_func_happy -eq 0; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cmpxchg16b with -latomic" >&5 $as_echo_n "checking for cmpxchg16b with -latomic... " >&6; } @@ -28531,7 +28144,6 @@ conftest$ac_exeext conftest.$ac_ext fi - if test $pmix_asm_check_func_happy -eq 1; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking if cmpxchg16b() gives correct results" >&5 $as_echo_n "checking if cmpxchg16b() gives correct results... " >&6; } @@ -28564,19 +28176,16 @@ fi - if test $pmix_asm_check_func_happy -eq 0; then : CFLAGS=$pmix_asm_check_func_CFLAGS_save LIBS=$pmix_asm_check_func_LIBS_save fi - if test $pmix_asm_check_func_happy -eq 1; then : cmpxchg16b_result=1 else cmpxchg16b_result=0 fi - # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` pmix_scope_test=`expr $pmix_scope_index \> 0` @@ -28611,7 +28220,6 @@ #include #include - union pmix_counted_pointer_t { struct { uint64_t counter; @@ -28624,17 +28232,13 @@ #endif }; typedef union pmix_counted_pointer_t pmix_counted_pointer_t; - int main(int argc, char* argv) { volatile pmix_counted_pointer_t a; pmix_counted_pointer_t b; - a.data.counter = 0; a.data.item = 0x1234567890ABCDEF; - b.data.counter = a.data.counter; b.data.item = a.data.item; - /* bozo checks */ assert(16 == sizeof(pmix_counted_pointer_t)); assert(a.data.counter == b.data.counter); @@ -28670,7 +28274,6 @@ fi - cat >>confdefs.h <<_ACEOF #define PMIX_HAVE_CMPXCHG16B $cmpxchg16b_result _ACEOF @@ -28698,627 +28301,825 @@ ;; + aarch64*) + pmix_cv_asm_arch="ARM64" + PMIX_ASM_SUPPORT_64BIT=1 + PMIX_ASM_ARM_VERSION=8 + PMIX_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)' + ;; + armv7*|arm-*-linux-gnueabihf) + pmix_cv_asm_arch="ARM" + PMIX_ASM_SUPPORT_64BIT=1 + PMIX_ASM_ARM_VERSION=7 + PMIX_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)' + ;; + armv6*) + pmix_cv_asm_arch="ARM" + PMIX_ASM_SUPPORT_64BIT=0 + PMIX_ASM_ARM_VERSION=6 + CCASFLAGS="$CCASFLAGS -march=armv7-a" + PMIX_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)' + ;; + powerpc-*|powerpc64-*|powerpcle-*|powerpc64le-*|rs6000-*|ppc-*) + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if PowerPC registers have r prefix" >&5 +$as_echo_n "checking if PowerPC registers have r prefix... " >&6; } + cat >conftest.s <&5 + (eval $pmix_assemble) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # save the warnings + cat conftest.out >&5 + pmix_cv_asm_powerpc_r_reg=0 +else + # save compiler output and failed program + cat conftest.out >&5 + echo "configure: failed program was:" >&5 + cat conftest.s >&5 + cat >conftest.s <&5 + (eval $pmix_assemble) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # save the warnings + cat conftest.out >&5 + pmix_cv_asm_powerpc_r_reg=1 +else + # save compiler output and failed program + cat conftest.out >&5 + echo "configure: failed program was:" >&5 + cat conftest.s >&5 + as_fn_error $? "Can not determine how to use PPC registers" "$LINENO" 5 +fi +rm -rf conftest* +unset pmix_assemble + +fi +rm -rf conftest* +unset pmix_assemble + + if test "$pmix_cv_asm_powerpc_r_reg" = "1" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + +cat >>confdefs.h <<_ACEOF +#define PMIX_POWERPC_R_REGISTERS $pmix_cv_asm_powerpc_r_reg +_ACEOF + + + if test "$ac_cv_sizeof_long" = "4" ; then + pmix_cv_asm_arch="POWERPC32" + # Note that on some platforms (Apple G5), even if we are + # compiling in 32 bit mode (and therefore should assume + # sizeof(long) == 4), we can use the 64 bit test and set + # operations. + + if test "$ac_cv_sizeof_long" != "4" ; then + # this function should only be called in the 32 bit case + as_fn_error $? "CHECK_POWERPC_64BIT called on 64 bit platform. Internal error." "$LINENO" 5 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit PowerPC assembly support" >&5 +$as_echo_n "checking for 64-bit PowerPC assembly support... " >&6; } + case $host in + *-darwin*) + ppc64_result=0 + if test "$pmix_cv_asm_powerpc_r_reg" = "1" ; then + ldarx_asm=" ldarx r1,r1,r1"; + else + ldarx_asm=" ldarx 1,1,1"; + fi + cat >conftest.s <&5 + (eval $pmix_assemble) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # save the warnings + cat conftest.out >&5 + ppc64_result=1 +else + # save compiler output and failed program + cat conftest.out >&5 + echo "configure: failed program was:" >&5 + cat conftest.s >&5 + ppc64_result=0 +fi +rm -rf conftest* +unset pmix_assemble + + ;; + *) + ppc64_result=0 + ;; + esac + if test "$ppc64_result" = "1" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + PMIX_ASM_SUPPORT_64BIT=1 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + : + fi + unset ppc64_result ldarx_asm + + elif test "$ac_cv_sizeof_long" = "8" ; then + PMIX_ASM_SUPPORT_64BIT=1 + pmix_cv_asm_arch="POWERPC64" + else + as_fn_error $? "Could not determine PowerPC word size: $ac_cv_sizeof_long" "$LINENO" 5 + fi + PMIX_GCC_INLINE_ASSIGN='"1: li %0,0" : "=&r"(ret)' + ;; + *) + if test $pmix_cv_have___atomic = "yes" ; then + pmix_cv_asm_builtin="BUILTIN_GCC" + else + as_fn_error $? "No atomic primitives available for $host" "$LINENO" 5 + fi + ;; + esac + if ! test -z "$PMIX_ASM_ARM_VERSION" ; then + +cat >>confdefs.h <<_ACEOF +#define PMIX_ASM_ARM_VERSION $PMIX_ASM_ARM_VERSION +_ACEOF + + fi + if test "$pmix_cv_asm_builtin" = "BUILTIN_GCC" ; then + +$as_echo "#define PMIX_C_GCC_INLINE_ASSEMBLY 1" >>confdefs.h + + else + +cat >>confdefs.h <<_ACEOF +#define PMIX_ASM_SUPPORT_64BIT $PMIX_ASM_SUPPORT_64BIT +_ACEOF - ia64-*) - pmix_cv_asm_arch="IA64" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync builtin atomics" >&5 -$as_echo_n "checking for __sync builtin atomics... " >&6; } + pmix_cv_asm_inline_supported="no" + # now that we know our architecture, try to inline assemble + assembly="$PMIX_GCC_INLINE_ASSIGN" + asm_result="unknown" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports GCC inline assembly" >&5 +$as_echo_n "checking if $CC supports GCC inline assembly... " >&6; } + if test ! "$assembly" = "" ; then + if test "$cross_compiling" = yes; then : + asm_result="unknown" +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -long tmp; +$ac_includes_default int main () { -__sync_synchronize(); -__sync_bool_compare_and_swap(&tmp, 0, 1); -__sync_add_and_fetch(&tmp, 1); + +int ret = 1; +int negone = -1; +__asm__ __volatile__ ($assembly); +return ret; + ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_cv_asm_builtin="BUILTIN_SYNC" +if ac_fn_c_try_run "$LINENO"; then : + asm_result="yes" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "No atomic primitives available for $host" "$LINENO" 5 + asm_result="no" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit __sync builtin atomics" >&5 -$as_echo_n "checking for 64-bit __sync builtin atomics... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + else + assembly="test skipped - assuming no" + fi + # if we're cross compiling, just try to compile and figure good enough + if test "$asm_result" = "unknown" ; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -#include -uint64_t tmp; +$ac_includes_default int main () { -__sync_bool_compare_and_swap(&tmp, 0, 1); -__sync_add_and_fetch(&tmp, 1); +int ret = 1; +int negone = -1; +__asm__ __volatile__ ($assembly); +return ret; + ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_asm_sync_have_64bit=1 + asm_result="yes" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - pmix_asm_sync_have_64bit=0 + asm_result="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $asm_result" >&5 +$as_echo "$asm_result" >&6; } + if test "$asm_result" = "yes" ; then + PMIX_C_GCC_INLINE_ASSEMBLY=1 + pmix_cv_asm_inline_supported="yes" + else + PMIX_C_GCC_INLINE_ASSEMBLY=0 + fi + +cat >>confdefs.h <<_ACEOF +#define PMIX_C_GCC_INLINE_ASSEMBLY $PMIX_C_GCC_INLINE_ASSEMBLY +_ACEOF + + unset PMIX_C_GCC_INLINE_ASSEMBLY assembly asm_result + # format: + # config_file-text-global-label_suffix-gsym-lsym-type-size-align_log-ppc_r_reg-64_bit-gnu_stack + asm_format="default" + asm_format="${asm_format}-${pmix_cv_asm_text}-${pmix_cv_asm_global}" + asm_format="${asm_format}-${pmix_cv_asm_label_suffix}-${pmix_cv_asm_gsym}" + asm_format="${asm_format}-${pmix_cv_asm_lsym}" + asm_format="${asm_format}-${pmix_cv_asm_type}-${pmix_asm_size}" + asm_format="${asm_format}-${pmix_asm_align_log_result}" + if test "$pmix_cv_asm_arch" = "POWERPC32" || test "$pmix_cv_asm_arch" = "POWERPC64" ; then + asm_format="${asm_format}-${pmix_cv_asm_powerpc_r_reg}" + else + asm_format="${asm_format}-1" + fi + asm_format="${asm_format}-${PMIX_ASM_SUPPORT_64BIT}" + pmix_cv_asm_format="${asm_format}-${pmix_cv_asm_gnu_stack}" + # For the Makefile, need to escape the $ as $$. Don't display + # this version, but make sure the Makefile gives the right thing + # when regenerating the files because the base has been touched. + PMIX_ASSEMBLY_FORMAT=`echo "$pmix_cv_asm_format" | sed -e 's/\\\$/\\\$\\\$/'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembly format" >&5 +$as_echo_n "checking for assembly format... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_format" >&5 +$as_echo "$pmix_cv_asm_format" >&6; } cat >>confdefs.h <<_ACEOF -#define PMIX_ASM_SYNC_HAVE_64BIT $pmix_asm_sync_have_64bit +#define PMIX_ASSEMBLY_FORMAT "$PMIX_ASSEMBLY_FORMAT" _ACEOF - # Check for 128-bit support + fi # if pmix_cv_asm_builtin = BUILTIN_GCC + result="PMIX_$pmix_cv_asm_arch" + PMIX_ASSEMBLY_ARCH="$pmix_cv_asm_arch" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembly architecture" >&5 +$as_echo_n "checking for assembly architecture... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_arch" >&5 +$as_echo "$pmix_cv_asm_arch" >&6; } +cat >>confdefs.h <<_ACEOF +#define PMIX_ASSEMBLY_ARCH $result +_ACEOF - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + # Check for RDTSCP support + result=0 + if test "$pmix_cv_asm_arch" = "PMIX_X86_64" || test "$pmix_cv_asm_arch" = "PMIX_IA32"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RDTSCP assembly support" >&5 +$as_echo_n "checking for RDTSCP assembly support... " >&6; } + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in sync_bool_compare_and_swap_128_result; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + if test "$cross_compiling" = yes; then : + #cross compile not supported + { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"no (cross compiling)\"" >&5 +$as_echo "\"no (cross compiling)\"" >&6; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +[ +int main(int argc, char* argv[]) +{ + unsigned int rax, rdx; + __asm__ __volatile__ ("rdtscp\n": "=a" (rax), "=d" (rdx):: "%rax", "%rdx"); + return 0; +} + ] +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + result=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"sync_bool_compare_and_swap_128_result\"" - eval $pmix_str - unset pmix_str +fi - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` +cat >>confdefs.h <<_ACEOF +#define PMIX_ASSEMBLY_SUPPORTS_RDTSCP $result +_ACEOF + result="PMIX_$pmix_cv_asm_builtin" + PMIX_ASSEMBLY_BUILTIN="$pmix_cv_asm_builtin" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for builtin atomics" >&5 +$as_echo_n "checking for builtin atomics... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_builtin" >&5 +$as_echo "$pmix_cv_asm_builtin" >&6; } - # Do we have __sync_bool_compare_and_swap? - # Use a special macro because we need to check with a few different - # CFLAGS/LIBS. +cat >>confdefs.h <<_ACEOF +#define PMIX_ASSEMBLY_BUILTIN $result +_ACEOF - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_asm_check_func_happy pmix_asm_check_func_CFLAGS_save pmix_asm_check_func_LIBS_save; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +if test "$pmix_cv_asm_arch" != "WINDOWS" && test "$pmix_cv_asm_builtin" != "BUILTIN_GCC" && test "$pmix_cv_asm_builtin" != "BUILTIN_OSX" && test "$pmix_cv_asm_inline_arch" = "no" ; then + as_fn_error $? "no atomic support available. exiting" "$LINENO" 5 +else + # On windows with VC++, atomics are done with compiler primitives + pmix_cv_asm_file="" +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_asm_check_func_happy pmix_asm_check_func_CFLAGS_save pmix_asm_check_func_LIBS_save\"" - eval $pmix_str - unset pmix_str + unset result asm_format - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - pmix_asm_check_func_CFLAGS_save=$CFLAGS - pmix_asm_check_func_LIBS_save=$LIBS + ################################## + # Header files + ################################## - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + pmix_show_title "Header file tests" -#include -#include -#include + for ac_header in arpa/inet.h \ + fcntl.h ifaddrs.h inttypes.h libgen.h \ + net/uio.h netinet/in.h \ + stdint.h stddef.h \ + stdlib.h string.h strings.h \ + sys/ioctl.h sys/param.h \ + sys/select.h sys/socket.h sys/sockio.h \ + stdarg.h sys/stat.h sys/time.h \ + sys/types.h sys/un.h sys/uio.h \ + sys/wait.h syslog.h \ + time.h unistd.h dirent.h \ + crt_externs.h signal.h \ + ioLib.h sockLib.h hostLib.h limits.h \ + sys/fcntl.h sys/statfs.h sys/statvfs.h \ + netdb.h ucred.h zlib.h sys/auxv.h \ + sys/sysctl.h termio.h termios.h pty.h \ + libutil.h util.h grp.h sys/cdefs.h utmp.h stropts.h \ + sys/utsname.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; +fi -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} +done -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} + for ac_header in sys/mount.h +do : + ac_fn_c_check_header_compile "$LINENO" "sys/mount.h" "ac_cv_header_sys_mount_h" "$ac_includes_default + #if HAVE_SYS_PARAM_H + #include + #endif +" +if test "x$ac_cv_header_sys_mount_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_MOUNT_H 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -mcx16" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap with -mcx16... " >&6; } - CFLAGS="$CFLAGS -mcx16" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +done -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} + for ac_header in sys/sysctl.h +do : + ac_fn_c_check_header_compile "$LINENO" "sys/sysctl.h" "ac_cv_header_sys_sysctl_h" "$ac_includes_default + #if HAVE_SYS_PARAM_H + #include + #endif +" +if test "x$ac_cv_header_sys_sysctl_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_SYSCTL_H 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - CFLAGS=$pmix_asm_check_func_CFLAGS_save - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext fi - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -latomic" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap with -latomic... " >&6; } - LIBS="$LIBS -latomic" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} +done -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} + # Needed to work around Darwin requiring sys/socket.h for + # net/if.h + for ac_header in net/if.h +do : + ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "#include + #if STDC_HEADERS + # include + # include + #else + # if HAVE_STDLIB_H + # include + # endif + #endif + #if HAVE_SYS_SOCKET_H + # include + #endif +" +if test "x$ac_cv_header_net_if_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NET_IF_H 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - LIBS=$pmix_asm_check_func_LIBS_save - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext fi - if test $pmix_asm_check_func_happy -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if __sync_bool_compare_and_swap() gives correct results" >&5 -$as_echo_n "checking if __sync_bool_compare_and_swap() gives correct results... " >&6; } - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot test -- assume yes (cross compiling)" >&5 -$as_echo "cannot test -- assume yes (cross compiling)" >&6; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} +done -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} + # Note that sometimes we have , but it doesn't work (e.g., + # have both Portland and GNU installed; using pgcc will find GNU's + # , which all it does -- by standard -- is define "bool" to + # "_Bool" [see + # http://pmixw.opengroup.org/onlinepubs/009695399/basedefs/stdbool.h.html], + # and Portland has no idea what to do with _Bool). + # So first figure out if we have (i.e., check the value of + # the macro HAVE_STDBOOL_H from the result of AC_CHECK_HEADERS, + # above). If we do have it, then check to see if it actually works. + # Define PMIX_USE_STDBOOL_H as approrpaite. + for ac_header in stdbool.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "stdbool.h" "ac_cv_header_stdbool_h" "$ac_includes_default" +if test "x$ac_cv_header_stdbool_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STDBOOL_H 1 _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + have_stdbool_h=1 else - pmix_asm_check_func_happy=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + have_stdbool_h=0 fi +done -fi - - if test $pmix_asm_check_func_happy -eq 0; then : - CFLAGS=$pmix_asm_check_func_CFLAGS_save - LIBS=$pmix_asm_check_func_LIBS_save -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if works" >&5 +$as_echo_n "checking if works... " >&6; } + if test "$have_stdbool_h" = "1"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default + #if HAVE_STDBOOL_H + #include + #endif - if test $pmix_asm_check_func_happy -eq 1; then : - sync_bool_compare_and_swap_128_result=1 +int +main () +{ +bool bar, foo = true; bar = foo; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + PMIX_USE_STDBOOL_H=1 MSG=yes else - sync_bool_compare_and_swap_128_result=0 + PMIX_USE_STDBOOL_H=0 MSG=no fi - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + else + PMIX_USE_STDBOOL_H=0 + MSG="no (don't have )" fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - +cat >>confdefs.h <<_ACEOF +#define PMIX_USE_STDBOOL_H $PMIX_USE_STDBOOL_H +_ACEOF + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSG" >&5 +$as_echo "$MSG" >&6; } + # checkpoint results + cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_SYNC_BUILTIN_CSWAP_INT128 $sync_bool_compare_and_swap_128_result _ACEOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + ################################## + # Types + ################################## + pmix_show_title "Type tests" + ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "$ac_includes_default + #if HAVE_SYS_SOCKET_H + #include + #endif + #if HAVE_SYS_UN_H + #include + #endif + #ifdef HAVE_NETINET_IN_H + #include + #endif - ;; - aarch64*) - pmix_cv_asm_arch="ARM64" - PMIX_ASM_SUPPORT_64BIT=1 - PMIX_ASM_ARM_VERSION=8 +" +if test "x$ac_cv_type_socklen_t" = xyes; then : cat >>confdefs.h <<_ACEOF -#define PMIX_ASM_ARM_VERSION $PMIX_ASM_ARM_VERSION +#define HAVE_SOCKLEN_T 1 _ACEOF - PMIX_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)' - ;; - armv7*|arm-*-linux-gnueabihf) - pmix_cv_asm_arch="ARM" - PMIX_ASM_SUPPORT_64BIT=1 - PMIX_ASM_ARM_VERSION=7 +fi +ac_fn_c_check_type "$LINENO" "struct sockaddr_in" "ac_cv_type_struct_sockaddr_in" "$ac_includes_default + #if HAVE_SYS_SOCKET_H + #include + #endif + #if HAVE_SYS_UN_H + #include + #endif + #ifdef HAVE_NETINET_IN_H + #include + #endif + +" +if test "x$ac_cv_type_struct_sockaddr_in" = xyes; then : cat >>confdefs.h <<_ACEOF -#define PMIX_ASM_ARM_VERSION $PMIX_ASM_ARM_VERSION +#define HAVE_STRUCT_SOCKADDR_IN 1 _ACEOF - PMIX_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)' - ;; - armv6*) - pmix_cv_asm_arch="ARM" - PMIX_ASM_SUPPORT_64BIT=0 - PMIX_ASM_ARM_VERSION=6 - CCASFLAGS="$CCASFLAGS -march=armv7-a" +fi +ac_fn_c_check_type "$LINENO" "struct sockaddr_un" "ac_cv_type_struct_sockaddr_un" "$ac_includes_default + #if HAVE_SYS_SOCKET_H + #include + #endif + #if HAVE_SYS_UN_H + #include + #endif + #ifdef HAVE_NETINET_IN_H + #include + #endif + +" +if test "x$ac_cv_type_struct_sockaddr_un" = xyes; then : cat >>confdefs.h <<_ACEOF -#define PMIX_ASM_ARM_VERSION $PMIX_ASM_ARM_VERSION +#define HAVE_STRUCT_SOCKADDR_UN 1 _ACEOF - PMIX_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)' - ;; - - armv5*linux*|armv4*linux*|arm-*-linux-gnueabi) - # uses Linux kernel helpers for some atomic operations - pmix_cv_asm_arch="ARM" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync builtin atomics" >&5 -$as_echo_n "checking for __sync builtin atomics... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -long tmp; -int -main () -{ -__sync_synchronize(); -__sync_bool_compare_and_swap(&tmp, 0, 1); -__sync_add_and_fetch(&tmp, 1); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_cv_asm_builtin="BUILTIN_SYNC" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "No atomic primitives available for $host" "$LINENO" 5 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +ac_fn_c_check_type "$LINENO" "struct sockaddr_in6" "ac_cv_type_struct_sockaddr_in6" "$ac_includes_default + #if HAVE_SYS_SOCKET_H + #include + #endif + #if HAVE_SYS_UN_H + #include + #endif + #ifdef HAVE_NETINET_IN_H + #include + #endif - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit __sync builtin atomics" >&5 -$as_echo_n "checking for 64-bit __sync builtin atomics... " >&6; } +" +if test "x$ac_cv_type_struct_sockaddr_in6" = xyes; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_SOCKADDR_IN6 1 +_ACEOF -#include -uint64_t tmp; -int -main () -{ -__sync_bool_compare_and_swap(&tmp, 0, 1); -__sync_add_and_fetch(&tmp, 1); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_asm_sync_have_64bit=1 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - pmix_asm_sync_have_64bit=0 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" "$ac_includes_default + #if HAVE_SYS_SOCKET_H + #include + #endif + #if HAVE_SYS_UN_H + #include + #endif + #ifdef HAVE_NETINET_IN_H + #include + #endif +" +if test "x$ac_cv_type_struct_sockaddr_storage" = xyes; then : cat >>confdefs.h <<_ACEOF -#define PMIX_ASM_SYNC_HAVE_64BIT $pmix_asm_sync_have_64bit +#define HAVE_STRUCT_SOCKADDR_STORAGE 1 _ACEOF - # Check for 128-bit support +fi + ac_fn_c_check_decl "$LINENO" "AF_UNSPEC" "ac_cv_have_decl_AF_UNSPEC" "$ac_includes_default + #if HAVE_SYS_SOCKET_H + #include + #endif + #ifdef HAVE_NETINET_IN_H + #include + #endif - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi +" +if test "x$ac_cv_have_decl_AF_UNSPEC" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in sync_bool_compare_and_swap_128_result; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_AF_UNSPEC $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "PF_UNSPEC" "ac_cv_have_decl_PF_UNSPEC" "$ac_includes_default + #if HAVE_SYS_SOCKET_H + #include + #endif + #ifdef HAVE_NETINET_IN_H + #include + #endif - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +" +if test "x$ac_cv_have_decl_PF_UNSPEC" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"sync_bool_compare_and_swap_128_result\"" - eval $pmix_str - unset pmix_str +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_PF_UNSPEC $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "AF_INET6" "ac_cv_have_decl_AF_INET6" "$ac_includes_default + #if HAVE_SYS_SOCKET_H + #include + #endif + #ifdef HAVE_NETINET_IN_H + #include + #endif - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` +" +if test "x$ac_cv_have_decl_AF_INET6" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_AF_INET6 $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "PF_INET6" "ac_cv_have_decl_PF_INET6" "$ac_includes_default + #if HAVE_SYS_SOCKET_H + #include + #endif + #ifdef HAVE_NETINET_IN_H + #include + #endif +" +if test "x$ac_cv_have_decl_PF_INET6" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - # Do we have __sync_bool_compare_and_swap? - # Use a special macro because we need to check with a few different - # CFLAGS/LIBS. +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_PF_INET6 $ac_have_decl +_ACEOF + # SA_RESTART in signal.h + # Is the private index set? If not, set it. if test "x$pmix_scope_index" = "x"; then @@ -29329,7 +29130,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_asm_check_func_happy pmix_asm_check_func_CFLAGS_save pmix_asm_check_func_LIBS_save; do + for pmix_var in MSG2; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -29348,282 +29149,39 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_asm_check_func_happy pmix_asm_check_func_CFLAGS_save pmix_asm_check_func_LIBS_save\"" + pmix_str="pmix_scope_$pmix_scope_index=\"MSG2\"" eval $pmix_str unset pmix_str env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - - pmix_asm_check_func_CFLAGS_save=$CFLAGS - pmix_asm_check_func_LIBS_save=$LIBS - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} - -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -mcx16" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap with -mcx16... " >&6; } - CFLAGS="$CFLAGS -mcx16" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} - -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - CFLAGS=$pmix_asm_check_func_CFLAGS_save - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi - - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -latomic" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap with -latomic... " >&6; } - LIBS="$LIBS -latomic" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if SA_RESTART defined in signal.h" >&5 +$as_echo_n "checking if SA_RESTART defined in signal.h... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} - -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} + #include + #ifdef SA_RESTART + yes + #endif _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + MSG2=yes VALUE=1 else - pmix_asm_check_func_happy=0 - LIBS=$pmix_asm_check_func_LIBS_save - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - + MSG2=no VALUE=0 fi +rm -f conftest* - if test $pmix_asm_check_func_happy -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if __sync_bool_compare_and_swap() gives correct results" >&5 -$as_echo_n "checking if __sync_bool_compare_and_swap() gives correct results... " >&6; } - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot test -- assume yes (cross compiling)" >&5 -$as_echo "cannot test -- assume yes (cross compiling)" >&6; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} - -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} +cat >>confdefs.h <<_ACEOF +#define PMIX_HAVE_SA_RESTART $VALUE _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi - - if test $pmix_asm_check_func_happy -eq 0; then : - CFLAGS=$pmix_asm_check_func_CFLAGS_save - LIBS=$pmix_asm_check_func_LIBS_save -fi - - if test $pmix_asm_check_func_happy -eq 1; then : - sync_bool_compare_and_swap_128_result=1 -else - sync_bool_compare_and_swap_128_result=0 -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSG2" >&5 +$as_echo "$MSG2" >&6; } # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` @@ -29646,151 +29204,213 @@ done + ac_fn_c_check_member "$LINENO" "struct sockaddr" "sa_len" "ac_cv_member_struct_sockaddr_sa_len" " + #include + #if HAVE_SYS_SOCKET_H + #include + #endif +" +if test "x$ac_cv_member_struct_sockaddr_sa_len" = xyes; then : cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_SYNC_BUILTIN_CSWAP_INT128 $sync_bool_compare_and_swap_128_result +#define HAVE_STRUCT_SOCKADDR_SA_LEN 1 _ACEOF +fi - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + ac_fn_c_check_member "$LINENO" "struct dirent" "d_type" "ac_cv_member_struct_dirent_d_type" " + #include + #include +" +if test "x$ac_cv_member_struct_dirent_d_type" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_DIRENT_D_TYPE 1 +_ACEOF - ;; +fi - mips-*|mips64*) - # Should really find some way to make sure that we are on - # a MIPS III machine (r4000 and later) - pmix_cv_asm_arch="MIPS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync builtin atomics" >&5 -$as_echo_n "checking for __sync builtin atomics... " >&6; } + ac_fn_c_check_member "$LINENO" "siginfo_t" "si_fd" "ac_cv_member_siginfo_t_si_fd" "#include +" +if test "x$ac_cv_member_siginfo_t_si_fd" = xyes; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -long tmp; -int -main () -{ -__sync_synchronize(); -__sync_bool_compare_and_swap(&tmp, 0, 1); -__sync_add_and_fetch(&tmp, 1); - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_SIGINFO_T_SI_FD 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_cv_asm_builtin="BUILTIN_SYNC" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "No atomic primitives available for $host" "$LINENO" 5 -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit __sync builtin atomics" >&5 -$as_echo_n "checking for 64-bit __sync builtin atomics... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -uint64_t tmp; -int -main () -{ -__sync_bool_compare_and_swap(&tmp, 0, 1); -__sync_add_and_fetch(&tmp, 1); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_asm_sync_have_64bit=1 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - pmix_asm_sync_have_64bit=0 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + ac_fn_c_check_member "$LINENO" "siginfo_t" "si_band" "ac_cv_member_siginfo_t_si_band" "#include +" +if test "x$ac_cv_member_siginfo_t_si_band" = xyes; then : cat >>confdefs.h <<_ACEOF -#define PMIX_ASM_SYNC_HAVE_64BIT $pmix_asm_sync_have_64bit +#define HAVE_SIGINFO_T_SI_BAND 1 _ACEOF - # Check for 128-bit support - +fi - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + # + # Checks for struct member names in struct statfs + # + ac_fn_c_check_member "$LINENO" "struct statfs" "f_type" "ac_cv_member_struct_statfs_f_type" " + $ac_includes_default + #ifdef HAVE_SYS_VFS_H + #include + #endif + #ifdef HAVE_SYS_STATFS_H + #include + #endif - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in sync_bool_compare_and_swap_128_result; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str +" +if test "x$ac_cv_member_struct_statfs_f_type" = xyes; then : - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STATFS_F_TYPE 1 +_ACEOF - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"sync_bool_compare_and_swap_128_result\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` +fi - # Do we have __sync_bool_compare_and_swap? - # Use a special macro because we need to check with a few different - # CFLAGS/LIBS. + ac_fn_c_check_member "$LINENO" "struct statfs" "f_fstypename" "ac_cv_member_struct_statfs_f_fstypename" " + $ac_includes_default + #ifdef HAVE_SYS_PARAM_H + #include + #endif + #ifdef HAVE_SYS_MOUNT_H + #include + #endif + #ifdef HAVE_SYS_VFS_H + #include + #endif + #ifdef HAVE_SYS_STATFS_H + #include + #endif + +" +if test "x$ac_cv_member_struct_statfs_f_fstypename" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STATFS_F_FSTYPENAME 1 +_ACEOF + + +fi + + + # + # Checks for struct member names in struct statvfs + # + ac_fn_c_check_member "$LINENO" "struct statvfs" "f_basetype" "ac_cv_member_struct_statvfs_f_basetype" " + $ac_includes_default + #ifdef HAVE_SYS_STATVFS_H + #include + #endif + +" +if test "x$ac_cv_member_struct_statvfs_f_basetype" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STATVFS_F_BASETYPE 1 +_ACEOF + + +fi + + + ac_fn_c_check_member "$LINENO" "struct statvfs" "f_fstypename" "ac_cv_member_struct_statvfs_f_fstypename" " + $ac_includes_default + #ifdef HAVE_SYS_STATVFS_H + #include + #endif + +" +if test "x$ac_cv_member_struct_statvfs_f_fstypename" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STATVFS_F_FSTYPENAME 1 +_ACEOF + + +fi + + + ac_fn_c_check_member "$LINENO" "struct ucred" "uid" "ac_cv_member_struct_ucred_uid" "#include + #include +" +if test "x$ac_cv_member_struct_ucred_uid" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_UCRED_UID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct ucred" "cr_uid" "ac_cv_member_struct_ucred_cr_uid" "#include + #include +" +if test "x$ac_cv_member_struct_ucred_cr_uid" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_UCRED_CR_UID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct sockpeercred" "uid" "ac_cv_member_struct_sockpeercred_uid" "#include + #include +" +if test "x$ac_cv_member_struct_sockpeercred_uid" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_SOCKPEERCRED_UID 1 +_ACEOF + + +fi + + + # + # Check for ptrdiff type. Yes, there are platforms where + # sizeof(void*) != sizeof(long) (64 bit Windows, apparently). + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pointer diff type" >&5 +$as_echo_n "checking for pointer diff type... " >&6; } + if test $ac_cv_type_ptrdiff_t = yes ; then + pmix_ptrdiff_t="ptrdiff_t" + pmix_ptrdiff_size=$ac_cv_sizeof_ptrdiff_t + elif test $ac_cv_sizeof_void_p -eq $ac_cv_sizeof_long ; then + pmix_ptrdiff_t="long" + pmix_ptrdiff_size=$ac_cv_sizeof_long + elif test $ac_cv_type_long_long = yes && test $ac_cv_sizeof_void_p -eq $ac_cv_sizeof_long_long ; then + pmix_ptrdiff_t="long long" + pmix_ptrdiff_size=$ac_cv_sizeof_long_long + #else + # AC_MSG_ERROR([Could not find datatype to emulate ptrdiff_t. Cannot continue]) + fi + +cat >>confdefs.h <<_ACEOF +#define PMIX_PTRDIFF_TYPE $pmix_ptrdiff_t +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_ptrdiff_t (size: $pmix_ptrdiff_size)" >&5 +$as_echo "$pmix_ptrdiff_t (size: $pmix_ptrdiff_size)" >&6; } + + ################################## + # Linker characteristics + ################################## + { $as_echo "$as_me:${as_lineno-$LINENO}: checking the linker for support for the -fini option" >&5 +$as_echo_n "checking the linker for support for the -fini option... " >&6; } # Is the private index set? If not, set it. @@ -29802,7 +29422,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_asm_check_func_happy pmix_asm_check_func_CFLAGS_save pmix_asm_check_func_LIBS_save; do + for pmix_var in LDFLAGS_save; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -29821,308 +29441,196 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_asm_check_func_happy pmix_asm_check_func_CFLAGS_save pmix_asm_check_func_LIBS_save\"" + pmix_str="pmix_scope_$pmix_scope_index=\"LDFLAGS_save\"" eval $pmix_str unset pmix_str env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - - pmix_asm_check_func_CFLAGS_save=$CFLAGS - pmix_asm_check_func_LIBS_save=$LIBS - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap... " >&6; } + LDFLAGS_save=$LDFLAGS + LDFLAGS="$LDFLAGS_save -Wl,-fini -Wl,finalize" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) +void finalize (void) {} +int +main () { - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; + ; + return 0; } - _ACEOF if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } + pmix_ld_have_fini=1 else - pmix_asm_check_func_happy=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + pmix_ld_have_fini=0 fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$LDFLAGS_save - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -mcx16" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap with -mcx16... " >&6; } - CFLAGS="$CFLAGS -mcx16" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -#include -#include -#include + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} + pmix_destructor_use_fini=0 + pmix_no_destructor=0 + if test x$pmix_cv___attribute__destructor = x0 ; then + if test x$pmix_ld_have_fini = x1 ; then + pmix_destructor_use_fini=1 + else + pmix_no_destructor=1; + fi + fi -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} +cat >>confdefs.h <<_ACEOF +#define PMIX_NO_LIB_DESTRUCTOR $pmix_no_destructor _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + + if test x$pmix_destructor_use_fini = x1; then + PMIX_DESTRUCTOR_USE_FINI_TRUE= + PMIX_DESTRUCTOR_USE_FINI_FALSE='#' else - pmix_asm_check_func_happy=0 - CFLAGS=$pmix_asm_check_func_CFLAGS_save - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + PMIX_DESTRUCTOR_USE_FINI_TRUE='#' + PMIX_DESTRUCTOR_USE_FINI_FALSE= fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -latomic" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap with -latomic... " >&6; } - LIBS="$LIBS -latomic" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + ################################## + # Libraries + ################################## -#include -#include -#include + pmix_show_title "Library and Function tests" -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; + # Darwin doesn't need -lutil, as it's something other than this -lutil. -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - LIBS=$pmix_asm_check_func_LIBS_save - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 + fi -fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in LIBS_save add; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str - if test $pmix_asm_check_func_happy -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if __sync_bool_compare_and_swap() gives correct results" >&5 -$as_echo_n "checking if __sync_bool_compare_and_swap() gives correct results... " >&6; } - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot test -- assume yes (cross compiling)" >&5 -$as_echo "cannot test -- assume yes (cross compiling)" >&6; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -#include -#include -#include + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"LIBS_save add\"" + eval $pmix_str + unset pmix_str -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} + LIBS_save=$LIBS -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing openpty" >&5 +$as_echo_n "checking for library containing openpty... " >&6; } +if ${ac_cv_search_openpty+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -int main(int argc, char** argv) +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char openpty (); +int +main () { - test1(); - test2(); - return 0; +return openpty (); + ; + return 0; } - _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +for ac_lib in '' util; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_openpty=$ac_res fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_openpty+:} false; then : + break fi +done +if ${ac_cv_search_openpty+:} false; then : - +else + ac_cv_search_openpty=no fi - - if test $pmix_asm_check_func_happy -eq 0; then : - CFLAGS=$pmix_asm_check_func_CFLAGS_save - LIBS=$pmix_asm_check_func_LIBS_save +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_openpty" >&5 +$as_echo "$ac_cv_search_openpty" >&6; } +ac_res=$ac_cv_search_openpty +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_have_openpty=1 - if test $pmix_asm_check_func_happy -eq 1; then : - sync_bool_compare_and_swap_128_result=1 else - sync_bool_compare_and_swap_128_result=0 -fi - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + pmix_have_openpty=0 +fi cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_SYNC_BUILTIN_CSWAP_INT128 $sync_bool_compare_and_swap_128_result +#define PMIX_HAVE_OPENPTY $pmix_have_openpty _ACEOF @@ -30149,225 +29657,270 @@ - ;; - powerpc-*|powerpc64-*|powerpcle-*|powerpc64le-*|rs6000-*|ppc-*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if PowerPC registers have r prefix" >&5 -$as_echo_n "checking if PowerPC registers have r prefix... " >&6; } - cat >conftest.s <&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"LIBS_save add\"" + eval $pmix_str + unset pmix_str + + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` + + LIBS_save=$LIBS + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 +$as_echo_n "checking for library containing gethostbyname... " >&6; } +if ${ac_cv_search_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 else - pmix_assemble="$CCAS $CCASFLAGS -o conftest.o conftest.s >conftest.out 2>&1" + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nsl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_gethostbyname=$ac_res fi -if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$pmix_assemble\""; } >&5 - (eval $pmix_assemble) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - # save the warnings - cat conftest.out >&5 - pmix_cv_asm_powerpc_r_reg=0 -else - # save compiler output and failed program - cat conftest.out >&5 - echo "configure: failed program was:" >&5 - cat conftest.s >&5 - cat >conftest.s <&5 - (eval $pmix_assemble) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - # save the warnings - cat conftest.out >&5 - pmix_cv_asm_powerpc_r_reg=1 +done +if ${ac_cv_search_gethostbyname+:} false; then : + else - # save compiler output and failed program - cat conftest.out >&5 - echo "configure: failed program was:" >&5 - cat conftest.s >&5 - as_fn_error $? "Can not determine how to use PPC registers" "$LINENO" 5 + ac_cv_search_gethostbyname=no fi -rm -rf conftest* -unset pmix_assemble +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5 +$as_echo "$ac_cv_search_gethostbyname" >&6; } +ac_res=$ac_cv_search_gethostbyname +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_have_gethostbyname=1 + +else + pmix_have_gethostbyname=0 fi -rm -rf conftest* -unset pmix_assemble - if test "$pmix_cv_asm_powerpc_r_reg" = "1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi cat >>confdefs.h <<_ACEOF -#define PMIX_POWERPC_R_REGISTERS $pmix_cv_asm_powerpc_r_reg +#define PMIX_HAVE_GETHOSTBYNAME $pmix_have_gethostbyname _ACEOF - if test "$ac_cv_sizeof_long" = "4" ; then - pmix_cv_asm_arch="POWERPC32" - - # Note that on some platforms (Apple G5), even if we are - # compiling in 32 bit mode (and therefore should assume - # sizeof(long) == 4), we can use the 64 bit test and set - # operations. - if test "$ac_cv_sizeof_long" != "4" ; then - # this function should only be called in the 32 bit case - as_fn_error $? "CHECK_POWERPC_64BIT called on 64 bit platform. Internal error." "$LINENO" 5 + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit PowerPC assembly support" >&5 -$as_echo_n "checking for 64-bit PowerPC assembly support... " >&6; } - case $host in - *-darwin*) - ppc64_result=0 - if test "$pmix_cv_asm_powerpc_r_reg" = "1" ; then - ldarx_asm=" ldarx r1,r1,r1"; - else - ldarx_asm=" ldarx 1,1,1"; - fi - cat >conftest.s <&5 - (eval $pmix_assemble) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - # save the warnings - cat conftest.out >&5 - ppc64_result=1 -else - # save compiler output and failed program - cat conftest.out >&5 - echo "configure: failed program was:" >&5 - cat conftest.s >&5 - ppc64_result=0 -fi -rm -rf conftest* -unset pmix_assemble - ;; - *) - ppc64_result=0 - ;; - esac + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str - if test "$ppc64_result" = "1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - PMIX_ASM_SUPPORT_64BIT=1 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - : + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done + + + + + + + + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 fi - unset ppc64_result ldarx_asm + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in LIBS_save add; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str - elif test "$ac_cv_sizeof_long" = "8" ; then - PMIX_ASM_SUPPORT_64BIT=1 - pmix_cv_asm_arch="POWERPC64" - else - as_fn_error $? "Could not determine PowerPC word size: $ac_cv_sizeof_long" "$LINENO" 5 - fi - PMIX_GCC_INLINE_ASSIGN='"1: li %0,0" : "=&r"(ret)' - ;; - # There is no current difference between s390 and s390x - # But use two different defines in case some come later - # as s390 is 31bits while s390x is 64bits - s390-*) - pmix_cv_asm_arch="S390" + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync builtin atomics" >&5 -$as_echo_n "checking for __sync builtin atomics... " >&6; } + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"LIBS_save add\"" + eval $pmix_str + unset pmix_str - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` + + LIBS_save=$LIBS + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 +$as_echo_n "checking for library containing socket... " >&6; } +if ${ac_cv_search_socket+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -long tmp; + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char socket (); int main () { -__sync_synchronize(); -__sync_bool_compare_and_swap(&tmp, 0, 1); -__sync_add_and_fetch(&tmp, 1); +return socket (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_cv_asm_builtin="BUILTIN_SYNC" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "No atomic primitives available for $host" "$LINENO" 5 +for ac_lib in '' socket; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_socket=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit __sync builtin atomics" >&5 -$as_echo_n "checking for 64-bit __sync builtin atomics... " >&6; } - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + conftest$ac_exeext + if ${ac_cv_search_socket+:} false; then : + break +fi +done +if ${ac_cv_search_socket+:} false; then : -#include -uint64_t tmp; -int -main () -{ +else + ac_cv_search_socket=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5 +$as_echo "$ac_cv_search_socket" >&6; } +ac_res=$ac_cv_search_socket +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_have_socket=1 -__sync_bool_compare_and_swap(&tmp, 0, 1); -__sync_add_and_fetch(&tmp, 1); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_asm_sync_have_64bit=1 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - pmix_asm_sync_have_64bit=0 + pmix_have_socket=0 + fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + cat >>confdefs.h <<_ACEOF -#define PMIX_ASM_SYNC_HAVE_64BIT $pmix_asm_sync_have_64bit +#define PMIX_HAVE_SOCKET $pmix_have_socket _ACEOF - # Check for 128-bit support + + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str + + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done + + + + # IRIX and CentOS have dirname in -lgen, usually in libc + @@ -30380,7 +29933,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in sync_bool_compare_and_swap_128_result; do + for pmix_var in LIBS_save add; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -30399,17 +29952,107 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"sync_bool_compare_and_swap_128_result\"" + pmix_str="pmix_scope_$pmix_scope_index=\"LIBS_save add\"" eval $pmix_str unset pmix_str env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` + LIBS_save=$LIBS + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dirname" >&5 +$as_echo_n "checking for library containing dirname... " >&6; } +if ${ac_cv_search_dirname+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dirname (); +int +main () +{ +return dirname (); + ; + return 0; +} +_ACEOF +for ac_lib in '' gen; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dirname=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dirname+:} false; then : + break +fi +done +if ${ac_cv_search_dirname+:} false; then : + +else + ac_cv_search_dirname=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dirname" >&5 +$as_echo "$ac_cv_search_dirname" >&6; } +ac_res=$ac_cv_search_dirname +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_have_dirname=1 + +else + pmix_have_dirname=0 + +fi + + + +cat >>confdefs.h <<_ACEOF +#define PMIX_HAVE_DIRNAME $pmix_have_dirname +_ACEOF + + + + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str + + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done + + + + # Darwin doesn't need -lm, as it's a symlink to libSystem.dylib - # Do we have __sync_bool_compare_and_swap? - # Use a special macro because we need to check with a few different - # CFLAGS/LIBS. @@ -30422,7 +30065,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_asm_check_func_happy pmix_asm_check_func_CFLAGS_save pmix_asm_check_func_LIBS_save; do + for pmix_var in LIBS_save add; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -30441,281 +30084,81 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_asm_check_func_happy pmix_asm_check_func_CFLAGS_save pmix_asm_check_func_LIBS_save\"" + pmix_str="pmix_scope_$pmix_scope_index=\"LIBS_save add\"" eval $pmix_str unset pmix_str env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` + LIBS_save=$LIBS - pmix_asm_check_func_CFLAGS_save=$CFLAGS - pmix_asm_check_func_LIBS_save=$LIBS - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ceil" >&5 +$as_echo_n "checking for library containing ceil... " >&6; } +if ${ac_cv_search_ceil+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ceil (); +int +main () { - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} - -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -mcx16" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap with -mcx16... " >&6; } - CFLAGS="$CFLAGS -mcx16" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} - -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; +return ceil (); + ; + return 0; } - _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - CFLAGS=$pmix_asm_check_func_CFLAGS_save - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +for ac_lib in '' m; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ceil=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - + conftest$ac_exeext + if ${ac_cv_search_ceil+:} false; then : + break fi +done +if ${ac_cv_search_ceil+:} false; then : - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -latomic" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap with -latomic... " >&6; } - LIBS="$LIBS -latomic" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} - -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } else - pmix_asm_check_func_happy=0 - LIBS=$pmix_asm_check_func_LIBS_save - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + ac_cv_search_ceil=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ceil" >&5 +$as_echo "$ac_cv_search_ceil" >&6; } +ac_res=$ac_cv_search_ceil +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_have_ceil=1 - if test $pmix_asm_check_func_happy -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if __sync_bool_compare_and_swap() gives correct results" >&5 -$as_echo_n "checking if __sync_bool_compare_and_swap() gives correct results... " >&6; } - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot test -- assume yes (cross compiling)" >&5 -$as_echo "cannot test -- assume yes (cross compiling)" >&6; } else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} - -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} + pmix_have_ceil=0 -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext fi -fi - if test $pmix_asm_check_func_happy -eq 0; then : - CFLAGS=$pmix_asm_check_func_CFLAGS_save - LIBS=$pmix_asm_check_func_LIBS_save -fi +cat >>confdefs.h <<_ACEOF +#define PMIX_HAVE_CEIL $pmix_have_ceil +_ACEOF - if test $pmix_asm_check_func_happy -eq 1; then : - sync_bool_compare_and_swap_128_result=1 -else - sync_bool_compare_and_swap_128_result=0 -fi # Unwind the index @@ -30740,9 +30183,112 @@ + # -lrt might be needed for clock_gettime + + + + + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in LIBS_save add; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str + + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"LIBS_save add\"" + eval $pmix_str + unset pmix_str + + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` + + LIBS_save=$LIBS + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5 +$as_echo_n "checking for library containing clock_gettime... " >&6; } +if ${ac_cv_search_clock_gettime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char clock_gettime (); +int +main () +{ +return clock_gettime (); + ; + return 0; +} +_ACEOF +for ac_lib in '' rt; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_clock_gettime=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_clock_gettime+:} false; then : + break +fi +done +if ${ac_cv_search_clock_gettime+:} false; then : + +else + ac_cv_search_clock_gettime=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5 +$as_echo "$ac_cv_search_clock_gettime" >&6; } +ac_res=$ac_cv_search_clock_gettime +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_have_clock_gettime=1 + +else + pmix_have_clock_gettime=0 + +fi + + cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_SYNC_BUILTIN_CSWAP_INT128 $sync_bool_compare_and_swap_128_result +#define PMIX_HAVE_CLOCK_GETTIME $pmix_have_clock_gettime _ACEOF @@ -30769,617 +30315,939 @@ - ;; - s390x-*) - pmix_cv_asm_arch="S390X" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync builtin atomics" >&5 -$as_echo_n "checking for __sync builtin atomics... " >&6; } - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -long tmp; -int -main () -{ -__sync_synchronize(); -__sync_bool_compare_and_swap(&tmp, 0, 1); -__sync_add_and_fetch(&tmp, 1); - ; - return 0; -} + for ac_func in asprintf snprintf vasprintf vsnprintf strsignal socketpair strncpy_s usleep statfs statvfs getpeereid getpeerucred strnlen posix_fallocate tcgetpgrp setpgid ptsname openpty setenv fork execve waitpid +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_cv_asm_builtin="BUILTIN_SYNC" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "No atomic primitives available for $host" "$LINENO" 5 + fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit __sync builtin atomics" >&5 -$as_echo_n "checking for 64-bit __sync builtin atomics... " >&6; } + # On some hosts, htonl is a define, so the AC_CHECK_FUNC will get + # confused. On others, it's in the standard library, but stubbed with + # the magic glibc foo as not implemented. and on other systems, it's + # just not there. This covers all cases. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for htonl define" >&5 +$as_echo_n "checking for htonl define... " >&6; } +if ${pmix_cv_htonl_define+:} false; then : + $as_echo_n "(cached) " >&6 +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -uint64_t tmp; + #ifdef HAVE_SYS_TYPES_H + #include + #endif + #ifdef HAVE_NETINET_IN_H + #include + #endif + #ifdef HAVE_ARPA_INET_H + #include + #endif int main () { -__sync_bool_compare_and_swap(&tmp, 0, 1); -__sync_add_and_fetch(&tmp, 1); + #ifndef ntohl + #error "ntohl not defined" + #endif + ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_asm_sync_have_64bit=1 +if ac_fn_c_try_cpp "$LINENO"; then : + pmix_cv_htonl_define=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - pmix_asm_sync_have_64bit=0 + pmix_cv_htonl_define=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_htonl_define" >&5 +$as_echo "$pmix_cv_htonl_define" >&6; } + ac_fn_c_check_func "$LINENO" "htonl" "ac_cv_func_htonl" +if test "x$ac_cv_func_htonl" = xyes; then : + pmix_have_htonl=yes +else + pmix_have_htonl=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + if test "$pmix_cv_htonl_define" = "yes" || test "$pmix_have_htonl" = "yes"; then : cat >>confdefs.h <<_ACEOF -#define PMIX_ASM_SYNC_HAVE_64BIT $pmix_asm_sync_have_64bit +#define HAVE_UNIX_BYTESWAP 1 _ACEOF +fi - # Check for 128-bit support - - + # + # Make sure we can copy va_lists (need check declared, not linkable) + # - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + ac_fn_c_check_decl "$LINENO" "va_copy" "ac_cv_have_decl_va_copy" "#include +" +if test "x$ac_cv_have_decl_va_copy" = xyes; then : + PMIX_HAVE_VA_COPY=1 +else + PMIX_HAVE_VA_COPY=0 +fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in sync_bool_compare_and_swap_128_result; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +cat >>confdefs.h <<_ACEOF +#define PMIX_HAVE_VA_COPY $PMIX_HAVE_VA_COPY +_ACEOF - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"sync_bool_compare_and_swap_128_result\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + ac_fn_c_check_decl "$LINENO" "__va_copy" "ac_cv_have_decl___va_copy" "#include +" +if test "x$ac_cv_have_decl___va_copy" = xyes; then : + PMIX_HAVE_UNDERSCORE_VA_COPY=1 +else + PMIX_HAVE_UNDERSCORE_VA_COPY=0 +fi - # Do we have __sync_bool_compare_and_swap? - # Use a special macro because we need to check with a few different - # CFLAGS/LIBS. +cat >>confdefs.h <<_ACEOF +#define PMIX_HAVE_UNDERSCORE_VA_COPY $PMIX_HAVE_UNDERSCORE_VA_COPY +_ACEOF + ac_fn_c_check_decl "$LINENO" "__func__" "ac_cv_have_decl___func__" "$ac_includes_default" +if test "x$ac_cv_have_decl___func__" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL___FUNC__ $ac_have_decl +_ACEOF - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_asm_check_func_happy pmix_asm_check_func_CFLAGS_save pmix_asm_check_func_LIBS_save; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # checkpoint results + cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_asm_check_func_happy pmix_asm_check_func_CFLAGS_save pmix_asm_check_func_LIBS_save\"" - eval $pmix_str - unset pmix_str +_ACEOF - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + ################################## + # System-specific tests + ################################## - pmix_asm_check_func_CFLAGS_save=$CFLAGS - pmix_asm_check_func_LIBS_save=$LIBS + pmix_show_title "System-specific tests" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; -#include -#include -#include +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include -static void test1(void) +int +main () { - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } + ; + return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include -int main(int argc, char** argv) +int +main () { - test1(); - test2(); - return 0; -} +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + ; + return 0; +} _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes else - pmix_asm_check_func_happy=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + ac_cv_c_bigendian=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -mcx16" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap with -mcx16... " >&6; } - CFLAGS="$CFLAGS -mcx16" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) +int +main () { - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } + ; + return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include -int main(int argc, char** argv) +int +main () { - test1(); - test2(); - return 0; -} +#ifndef _BIG_ENDIAN + not big endian + #endif + ; + return 0; +} _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes else - pmix_asm_check_func_happy=0 - CFLAGS=$pmix_asm_check_func_CFLAGS_save - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + ac_cv_c_bigendian=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -latomic" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap with -latomic... " >&6; } - LIBS="$LIBS -latomic" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} - -int main(int argc, char** argv) +int +main () { - test1(); - test2(); - return 0; +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; } - _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - LIBS=$pmix_asm_check_func_LIBS_save - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi fi - - if test $pmix_asm_check_func_happy -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if __sync_bool_compare_and_swap() gives correct results" >&5 -$as_echo_n "checking if __sync_bool_compare_and_swap() gives correct results... " >&6; } - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot test -- assume yes (cross compiling)" >&5 -$as_echo "cannot test -- assume yes (cross compiling)" >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) +$ac_includes_default +int +main () { - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; + ; + return 0; } - _ACEOF if ac_fn_c_try_run "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + ac_cv_c_bigendian=no else - pmix_asm_check_func_happy=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi - + fi fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) - if test $pmix_asm_check_func_happy -eq 0; then : - CFLAGS=$pmix_asm_check_func_CFLAGS_save - LIBS=$pmix_asm_check_func_LIBS_save -fi +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - if test $pmix_asm_check_func_happy -eq 1; then : - sync_bool_compare_and_swap_128_result=1 -else - sync_bool_compare_and_swap_128_result=0 -fi + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done +# Check whether --with-broken-qsort was given. +if test "${with_broken_qsort+set}" = set; then : + withval=$with_broken_qsort; +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken qsort" >&5 +$as_echo_n "checking for broken qsort... " >&6; } + if test "$with_broken_qsort" = "yes"; then + result="yes" + define_result=1 + else + result="no" + define_result=0 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result" >&5 +$as_echo "$result" >&6; } cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_SYNC_BUILTIN_CSWAP_INT128 $sync_bool_compare_and_swap_128_result +#define PMIX_HAVE_BROKEN_QSORT $define_result _ACEOF - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # + # Check out what thread support we have + # - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str +# +# Arguments: none +# +# Dependencies: None +# +# Modifies: +# none - see called tests +# +# configure threads +# - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done +# +# Check we have POSIX threads +# - ;; - sparc*-*) - # SPARC v9 (and above) are the only ones with 64bit support - # if compiling 32 bit, see if we are v9 (aka v8plus) or - # earlier (casa is v8+/v9). - if test "$ac_cv_sizeof_long" = "4" ; then - have_v8plus=0 +pmix_pthread_c_success=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if have Sparc v8+/v9 support" >&5 -$as_echo_n "checking if have Sparc v8+/v9 support... " >&6; } - sparc_result=0 - cat >conftest.s <&5 +$as_echo_n "checking if C compiler and POSIX threads work as is... " >&6; } + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# BEGIN: PMIX_INTL_PTHREAD_TRY_LINK +# +# Make sure that we can run a small application in C or C++, which +# ever is the current language. Do make sure that C or C++ is the +# current language. +# +# As long as this is not being run.... +# pthread_t may be anything from an int to a struct -- init with self-tid. +# + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int i = 3; +pthread_t me, newthread; + +void cleanup_routine(void *foo); +void *thread_main(void *foo); + +void cleanup_routine(void *foo) { i = 4; } +void *thread_main(void *foo) { i = 2; return (void*) &i; } + +int main(int argc, char* argv[]) +{ + pthread_attr_t attr; + + me = pthread_self(); + pthread_atfork(NULL, NULL, NULL); + pthread_attr_init(&attr); + pthread_cleanup_push(cleanup_routine, 0); + pthread_create(&newthread, &attr, thread_main, 0); + pthread_join(newthread, 0); + pthread_cleanup_pop(0); + + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + pmix_pthread_c_success=1 else - pmix_assemble="$CCAS $CCASFLAGS -o conftest.o conftest.s >conftest.out 2>&1" + pmix_pthread_c_success=0 fi -if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$pmix_assemble\""; } >&5 - (eval $pmix_assemble) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - # save the warnings - cat conftest.out >&5 - sparc_result=1 +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +# END: PMIX_INTL_PTHREAD_TRY_LINK + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + if test "$pmix_pthread_c_success" = "1"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi +fi + + +# End: PMIX_INTL_POSIX_THREADS_PLAIN + + +# Try the super-special compiler flags. + +# Begin: PMIX_INTL_POSIX_THREADS_SPECIAL_FLAGS +# +# If above didn't work, try some super-special compiler flags +# that get evaluated to the "right" things. +# +# -Kthread: +# -kthread: FreeBSD kernel threads +# -pthread: Modern GCC (most all platforms) +# -pthreads: GCC on solaris +# -mthreads: +# -mt: Solaris native compilers / HP-UX aCC +# +# Put -mt before -mthreads because HP-UX aCC will properly compile +# with -mthreads (reading as -mt), but emit a warning about unknown +# flags hreads. Stupid compilers. + +case "${host_cpu}-${host_os}" in + *solaris*) + pflags="-pthread -pthreads -mt" + ;; + *) + pflags="-Kthread -kthread -pthread -pthreads -mt -mthreads" + ;; +esac + + +# +# C compiler +# +if test "$pmix_pthread_c_success" = "0"; then + for pf in $pflags; do + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if C compiler and POSIX threads work with $pf" >&5 +$as_echo_n "checking if C compiler and POSIX threads work with $pf... " >&6; } + CFLAGS="$orig_CFLAGS $pf" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# BEGIN: PMIX_INTL_PTHREAD_TRY_LINK +# +# Make sure that we can run a small application in C or C++, which +# ever is the current language. Do make sure that C or C++ is the +# current language. +# +# As long as this is not being run.... +# pthread_t may be anything from an int to a struct -- init with self-tid. +# + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int i = 3; +pthread_t me, newthread; + +void cleanup_routine(void *foo); +void *thread_main(void *foo); + +void cleanup_routine(void *foo) { i = 4; } +void *thread_main(void *foo) { i = 2; return (void*) &i; } + +int main(int argc, char* argv[]) +{ + pthread_attr_t attr; + + me = pthread_self(); + pthread_atfork(NULL, NULL, NULL); + pthread_attr_init(&attr); + pthread_cleanup_push(cleanup_routine, 0); + pthread_create(&newthread, &attr, thread_main, 0); + pthread_join(newthread, 0); + pthread_cleanup_pop(0); + + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + pmix_pthread_c_success=1 else - # save compiler output and failed program - cat conftest.out >&5 - echo "configure: failed program was:" >&5 - cat conftest.s >&5 - sparc_result=0 + pmix_pthread_c_success=0 fi -rm -rf conftest* -unset pmix_assemble +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +# END: PMIX_INTL_PTHREAD_TRY_LINK - if test "$sparc_result" = "1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + if test "$pmix_pthread_c_success" = "1"; then + PTHREAD_CFLAGS="$pf" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - have_v8plus=1 + break else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + PTHREAD_CFLAGS= + CFLAGS="$orig_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - : fi + done +fi - unset sparc_result - if test "$have_v8plus" = "0" ; then - PMIX_ASM_SUPPORT_64BIT=0 - pmix_cv_asm_arch="SPARC" -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Sparc v8 target is not supported in this release of Open MPI." >&5 -$as_echo "$as_me: WARNING: Sparc v8 target is not supported in this release of Open MPI." >&2;} -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You must specify the target architecture v8plus to compile" >&5 -$as_echo "$as_me: WARNING: You must specify the target architecture v8plus to compile" >&2;} -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Open MPI in 32 bit mode on Sparc processors (see the README)." >&5 -$as_echo "$as_me: WARNING: Open MPI in 32 bit mode on Sparc processors (see the README)." >&2;} -as_fn_error $? "Can not continue." "$LINENO" 5 - else - PMIX_ASM_SUPPORT_64BIT=1 - pmix_cv_asm_arch="SPARCV9_32" - fi +# End: PMIX_INTL_POSIX_THREADS_SPECIAL_FLAGS - elif test "$ac_cv_sizeof_long" = "8" ; then - PMIX_ASM_SUPPORT_64BIT=1 - pmix_cv_asm_arch="SPARCV9_64" - else - as_fn_error $? "Could not determine Sparc word size: $ac_cv_sizeof_long" "$LINENO" 5 - fi - PMIX_GCC_INLINE_ASSIGN='"mov 0,%0" : "=&r"(ret)' - ;; - *) +# Try the normal linking methods (that's no fun) + +# Begin: PMIX_INTL_POSIX_THREADS_LIBS +# +# if we can't find a super-special compiler flags, try some libraries. +# we throw -D_REENTRANT or -D_THREAD_SAFE in here, just in case. Some +# systems (OS X, for example) generally don't need the defines, but +# then will on one system header here or there why take chances? +# +# libpthreads: AIX - must check before libpthread +# liblthread: LinuxThreads on FreeBSD +# libpthread: The usual place (like we can define usual!) +plibs="-lpthreads -llthread -lpthread" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync builtin atomics" >&5 -$as_echo_n "checking for __sync builtin atomics... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +# +# C compiler +# +if test "$pmix_pthread_c_success" = "0"; then + for pl in $plibs; do + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if C compiler and POSIX threads work with $pl" >&5 +$as_echo_n "checking if C compiler and POSIX threads work with $pl... " >&6; } + case "${host_cpu}-${host-_os}" in + *-aix* | *-freebsd*) + if test "`echo $CPPFLAGS | $GREP 'D_THREAD_SAFE'`" = ""; then + PTHREAD_CPPFLAGS="-D_THREAD_SAFE" + CPPFLAGS="$CPPFLAGS $PTHREAD_CPPFLAGS" + fi + ;; + *) + if test "`echo $CPPFLAGS | $GREP 'D_REENTRANT'`" = ""; then + PTHREAD_CPPFLAGS="-D_REENTRANT" + CPPFLAGS="$CPPFLAGS $PTHREAD_CPPFLAGS" + fi + ;; + esac + LIBS="$orig_LIBS $pl" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# BEGIN: PMIX_INTL_PTHREAD_TRY_LINK +# +# Make sure that we can run a small application in C or C++, which +# ever is the current language. Do make sure that C or C++ is the +# current language. +# +# As long as this is not being run.... +# pthread_t may be anything from an int to a struct -- init with self-tid. +# + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int i = 3; +pthread_t me, newthread; + +void cleanup_routine(void *foo); +void *thread_main(void *foo); + +void cleanup_routine(void *foo) { i = 4; } +void *thread_main(void *foo) { i = 2; return (void*) &i; } + +int main(int argc, char* argv[]) +{ + pthread_attr_t attr; + + me = pthread_self(); + pthread_atfork(NULL, NULL, NULL); + pthread_attr_init(&attr); + pthread_cleanup_push(cleanup_routine, 0); + pthread_create(&newthread, &attr, thread_main, 0); + pthread_join(newthread, 0); + pthread_cleanup_pop(0); + + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + pmix_pthread_c_success=1 +else + pmix_pthread_c_success=0 +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +# END: PMIX_INTL_PTHREAD_TRY_LINK + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + if test "$pmix_pthread_c_success" = "1"; then + PTHREAD_LIBS="$pl" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + PTHREAD_CPPFLAGS= + CPPFLAGS="$orig_CPPFLAGS" + LIBS="$orig_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + done +fi + + +# End: PMIX_INTL_POSIX_THREADS_LIBS + + +# +# check to see if we can set error checking mutexes +# + +# LinuxThreads +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_MUTEX_ERRORCHECK_NP" >&5 +$as_echo_n "checking for PTHREAD_MUTEX_ERRORCHECK_NP... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -long tmp; +#include int main () { -__sync_synchronize(); -__sync_bool_compare_and_swap(&tmp, 0, 1); -__sync_add_and_fetch(&tmp, 1); +pthread_mutexattr_settype(NULL, PTHREAD_MUTEX_ERRORCHECK_NP); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_cv_asm_builtin="BUILTIN_SYNC" + result="yes" defval=1 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "No atomic primitives available for $host" "$LINENO" 5 + result="no" defval=0 fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $result" >&5 +$as_echo "$result" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit __sync builtin atomics" >&5 -$as_echo_n "checking for 64-bit __sync builtin atomics... " >&6; } +cat >>confdefs.h <<_ACEOF +#define PMIX_HAVE_PTHREAD_MUTEX_ERRORCHECK_NP $defval +_ACEOF - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -uint64_t tmp; +# Mac OS X +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_MUTEX_ERRORCHECK" >&5 +$as_echo_n "checking for PTHREAD_MUTEX_ERRORCHECK... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include int main () { - -__sync_bool_compare_and_swap(&tmp, 0, 1); -__sync_add_and_fetch(&tmp, 1); +pthread_mutexattr_settype(NULL, PTHREAD_MUTEX_ERRORCHECK); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : + result="yes" defval=1 +else + result="no" defval=0 +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $result" >&5 +$as_echo "$result" >&6; } + +cat >>confdefs.h <<_ACEOF +#define PMIX_HAVE_PTHREAD_MUTEX_ERRORCHECK $defval +_ACEOF + + +CFLAGS="$orig_CFLAGS" +CPPFLAGS="$orig_CPPFLAGS" +LDFLAGS="$orig_LDFLAGS" +LIBS="$orig_LIBS" + +if test "$pmix_pthread_c_success" = "1"; then + internal_useless=1 + HAVE_POSIX_THREADS=1 +else + internal_useless=1 + HAVE_POSIX_THREADS=0 +fi + +unset pmix_pthread_c_success +unset internal_useless + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working POSIX threads package" >&5 +$as_echo_n "checking for working POSIX threads package... " >&6; } +if test "$HAVE_POSIX_THREADS" = "1" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - pmix_asm_sync_have_64bit=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - pmix_asm_sync_have_64bit=0 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +export HAVE_POSIX_THREADS +# +# Ask what threading we want (allow posix right now) +# -cat >>confdefs.h <<_ACEOF -#define PMIX_ASM_SYNC_HAVE_64BIT $pmix_asm_sync_have_64bit -_ACEOF +if test "$HAVE_POSIX_THREADS" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"*** POSIX threads are not\"" >&5 +$as_echo "$as_me: WARNING: \"*** POSIX threads are not\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"*** available on your system \"" >&5 +$as_echo "$as_me: WARNING: \"*** available on your system \"" >&2;} + as_fn_error $? "\"*** Can not continue\"" "$LINENO" 5 +fi +THREAD_CFLAGS="$PTHREAD_CFLAGS" +THREAD_CPPFLAGS="$PTHREAD_CPPFLAGS" +THREAD_LDFLAGS="$PTHREAD_LDFLAGS" +THREAD_LIBS="$PTHREAD_LIBS" + + +# +# Arguments: none +# +# Dependencies: None +# +# Sets: +# PMIX_THREADS_HAVE_DIFFERENT_PIDS (variable) +# +# Test for Linux-like threads in the system. PMIX does not support +# systems with different PIDs for threads in the same process, so error +# out if we detect that case. +# - # Check for 128-bit support +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if threads have different pids (pthreads on linux)" >&5 +$as_echo_n "checking if threads have different pids (pthreads on linux)... " >&6; } @@ -31392,7 +31260,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in sync_bool_compare_and_swap_128_result; do + for pmix_var in tpids_CFLAGS_save tpids_CPPFLAGS_save tpids_LDFLAGS_save tpids_LIBS_save tpids_MSG; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -31411,353 +31279,104 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"sync_bool_compare_and_swap_128_result\"" + pmix_str="pmix_scope_$pmix_scope_index=\"tpids_CFLAGS_save tpids_CPPFLAGS_save tpids_LDFLAGS_save tpids_LIBS_save tpids_MSG\"" eval $pmix_str unset pmix_str env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` +tpids_CFLAGS_save="$CFLAGS" +CFLAGS="$CFLAGS $THREAD_CFLAGS" +tpids_CPPFLAGS_save="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $THREAD_CPPFLAGS" +tpids_LDFLAGS_save="$LDFLAGS" +LDFLAGS="$LDFLAGS $THREAD_LDFLAGS" +tpids_LIBS_save="$LIBS" +LIBS="$LIBS $THREAD_LIBS" +if test "$cross_compiling" = yes; then : - # Do we have __sync_bool_compare_and_swap? - # Use a special macro because we need to check with a few different - # CFLAGS/LIBS. - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_asm_check_func_happy pmix_asm_check_func_CFLAGS_save pmix_asm_check_func_LIBS_save; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_asm_check_func_happy pmix_asm_check_func_CFLAGS_save pmix_asm_check_func_LIBS_save\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - pmix_asm_check_func_CFLAGS_save=$CFLAGS - pmix_asm_check_func_LIBS_save=$LIBS - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} - -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -mcx16" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap with -mcx16... " >&6; } - CFLAGS="$CFLAGS -mcx16" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} - -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - CFLAGS=$pmix_asm_check_func_CFLAGS_save - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi - - if test $pmix_asm_check_func_happy -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_bool_compare_and_swap with -latomic" >&5 -$as_echo_n "checking for __sync_bool_compare_and_swap with -latomic... " >&6; } - LIBS="$LIBS -latomic" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } -} - -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; -} - -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_asm_check_func_happy=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - pmix_asm_check_func_happy=0 - LIBS=$pmix_asm_check_func_LIBS_save - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi - - if test $pmix_asm_check_func_happy -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if __sync_bool_compare_and_swap() gives correct results" >&5 -$as_echo_n "checking if __sync_bool_compare_and_swap() gives correct results... " >&6; } - if test "$cross_compiling" = yes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot test -- assume yes (cross compiling)" >&5 -$as_echo "cannot test -- assume yes (cross compiling)" >&6; } + # If we're cross compiling, we can't do another AC_* function here beause + # it we haven't displayed the result from the last one yet. So defer + # another test until below. + PMIX_THREADS_HAVE_DIFFERENT_PIDS= + MSG="cross compiling (need another test)" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - -#include -#include +#include +#include +#include #include -typedef union { - uint64_t fake[2]; - __int128 real; -} pmix128; - -static void test1(void) -{ - // As of Aug 2018, we could not figure out a way to assign 128-bit - // constants -- the compilers would not accept it. So use a fake - // union to assign 2 uin64_t's to make a single __int128. - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = { .fake = { 0x11EEDDCCBBAA0099, 0x88776655443322FF }}; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == false && ptr.real != newval.real)) { - exit(1); - } -} - -static void test2(void) -{ - pmix128 ptr = { .fake = { 0xFFEEDDCCBBAA0099, 0x8877665544332211 }}; - pmix128 oldval = ptr; - pmix128 newval = { .fake = { 0x1122DDCCBBAA0099, 0x887766554433EEFF }}; - bool r = __sync_bool_compare_and_swap(&ptr.real, oldval.real, newval.real); - if (!(r == true && ptr.real == newval.real)) { - exit(2); - } +void *checkpid(void *arg); +int main() { + pthread_t thr; + int pid, *retval; + pid = getpid(); + pthread_create(&thr, NULL, checkpid, &pid); + pthread_join(thr, (void **) &retval); + exit(*retval); } -int main(int argc, char** argv) -{ - test1(); - test2(); - return 0; +static int ret; +void *checkpid(void *arg) { + int ppid = *((int *) arg); + if (ppid == getpid()) + ret = 0; + else + ret = 1; + pthread_exit((void *) &ret); } - _ACEOF if ac_fn_c_try_run "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + tpids_MSG=no PMIX_THREADS_HAVE_DIFFERENT_PIDS=0 else - pmix_asm_check_func_happy=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + tpids_MSG=yes PMIX_THREADS_HAVE_DIFFERENT_PIDS=1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi -fi +CFLAGS="$tpids_CFLAGS_save" +CPPFLAGS="$tpids_CPPFLAGS_save" +LDFLAGS="$tpids_LDFLAGS_save" +LIBS="$tpids_LIBS_save" - if test $pmix_asm_check_func_happy -eq 0; then : - CFLAGS=$pmix_asm_check_func_CFLAGS_save - LIBS=$pmix_asm_check_func_LIBS_save -fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tpids_MSG" >&5 +$as_echo "$tpids_MSG" >&6; } - if test $pmix_asm_check_func_happy -eq 1; then : - sync_bool_compare_and_swap_128_result=1 -else - sync_bool_compare_and_swap_128_result=0 +if test "x$PMIX_THREADS_HAVE_DIFFERENT_PIDS" = "x"; then : + # If we are cross-compiling, look for the symbol + # __linuxthreads_create_event, which seems to only exist in the + # Linux Threads-based pthreads implementation (i.e., the one + # that has different PIDs for each thread). We *could* switch + # on $host here and only test *linux* hosts, but this test is + # pretty unique, so why bother? Note that AC_CHECK_FUNC works + # properly in cross-compiling environments in recent-enough + # versions of Autoconf (which is one of the reasons we mandate + # recent versions in autogen!). + ac_fn_c_check_func "$LINENO" "__linuxthreads_create_event" "ac_cv_func___linuxthreads_create_event" +if test "x$ac_cv_func___linuxthreads_create_event" = xyes; then : + PMIX_THREADS_HAVE_DIFFERENT_PIDS=1 fi +fi - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - - -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_SYNC_BUILTIN_CSWAP_INT128 $sync_bool_compare_and_swap_128_result -_ACEOF +if test "$PMIX_THREADS_HAVE_DIFFERENT_PIDS" = "1"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This version of PMIx only supports environments where" >&5 +$as_echo "$as_me: WARNING: This version of PMIx only supports environments where" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: threads have the same PID" >&5 +$as_echo "$as_me: WARNING: threads have the same PID" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +fi +# +# if pthreads is not available, then the system does not have an insane threads +# model +# # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` @@ -31781,683 +31400,894 @@ - ;; - esac - - if test "x$PMIX_ASM_SUPPORT_64BIT" = "x1" && test "$pmix_cv_asm_builtin" = "BUILTIN_SYNC" && - test "$pmix_asm_sync_have_64bit" = "0" ; then - # __sync builtins exist but do not implement 64-bit support. Fall back on inline asm. - pmix_cv_asm_builtin="BUILTIN_NO" - fi - - if test "$pmix_cv_asm_builtin" = "BUILTIN_SYNC" || test "$pmix_cv_asm_builtin" = "BUILTIN_GCC" ; then - -$as_echo "#define PMIX_C_GCC_INLINE_ASSEMBLY 1" >>confdefs.h - - else - cat >>confdefs.h <<_ACEOF -#define PMIX_ASM_SUPPORT_64BIT $PMIX_ASM_SUPPORT_64BIT +#define PMIX_ENABLE_MULTI_THREADS 1 _ACEOF - # - # figure out if we need any special function start / stop code - # - case $host_os in - aix*) - pmix_asm_arch_config="aix" - ;; - *) - pmix_asm_arch_config="default" - ;; - esac - - pmix_cv_asm_inline_supported="no" - # now that we know our architecture, try to inline assemble - assembly="$PMIX_GCC_INLINE_ASSIGN" - asm_result="unknown" + CFLAGS="$CFLAGS $THREAD_CFLAGS" + CPPFLAGS="$CPPFLAGS $THREAD_CPPFLAGS" + LDFLAGS="$LDFLAGS $THREAD_LDFLAGS" + LIBS="$LIBS $THREAD_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports GCC inline assembly" >&5 -$as_echo_n "checking if $CC supports GCC inline assembly... " >&6; } + # + # What is the local equivalent of "ln -s" + # - if test ! "$assembly" = "" ; then - if test "$cross_compiling" = yes; then : - asm_result="unknown" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi -int ret = 1; -int negone = -1; -__asm__ __volatile__ ($assembly); -return ret; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - asm_result="yes" + # Check for some common system programs that we need + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 else - asm_result="no" -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - else - assembly="test skipped - assuming no" + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac - # if we're cross compiling, just try to compile and figure good enough - if test "$asm_result" = "unknown" ; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi -int ret = 1; -int negone = -1; -__asm__ __volatile__ ($assembly); -return ret; +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - asm_result="yes" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 else - asm_result="no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $asm_result" >&5 -$as_echo "$asm_result" >&6; } + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi - if test "$asm_result" = "yes" ; then - PMIX_C_GCC_INLINE_ASSEMBLY=1 - pmix_cv_asm_inline_supported="yes" - else - PMIX_C_GCC_INLINE_ASSEMBLY=0 - fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" -cat >>confdefs.h <<_ACEOF -#define PMIX_C_GCC_INLINE_ASSEMBLY $PMIX_C_GCC_INLINE_ASSEMBLY -_ACEOF + ################################## + # Visibility + ################################## - unset PMIX_C_GCC_INLINE_ASSEMBLY assembly asm_result + # Check the visibility declspec at the end to avoid problem with + # the previous tests that are not necessarily prepared for + # the visibility feature. + pmix_show_title "Symbol visibility feature" - # format: - # config_file-text-global-label_suffix-gsym-lsym-type-size-align_log-ppc_r_reg-64_bit-gnu_stack - asm_format="${pmix_asm_arch_config}" - asm_format="${asm_format}-${pmix_cv_asm_text}-${pmix_cv_asm_global}" - asm_format="${asm_format}-${pmix_cv_asm_label_suffix}-${pmix_cv_asm_gsym}" - asm_format="${asm_format}-${pmix_cv_asm_lsym}" - asm_format="${asm_format}-${pmix_cv_asm_type}-${pmix_asm_size}" - asm_format="${asm_format}-${pmix_asm_align_log_result}" - if test "$pmix_cv_asm_arch" = "POWERPC32" || test "$pmix_cv_asm_arch" = "POWERPC64" ; then - asm_format="${asm_format}-${pmix_cv_asm_powerpc_r_reg}" - else - asm_format="${asm_format}-1" - fi - asm_format="${asm_format}-${PMIX_ASM_SUPPORT_64BIT}" - pmix_cv_asm_format="${asm_format}-${pmix_cv_asm_gnu_stack}" - # For the Makefile, need to escape the $ as $$. Don't display - # this version, but make sure the Makefile gives the right thing - # when regenerating the files because the base has been touched. - PMIX_ASSEMBLY_FORMAT=`echo "$pmix_cv_asm_format" | sed -e 's/\\\$/\\\$\\\$/'` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembly format" >&5 -$as_echo_n "checking for assembly format... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_format" >&5 -$as_echo "$pmix_cv_asm_format" >&6; } -cat >>confdefs.h <<_ACEOF -#define PMIX_ASSEMBLY_FORMAT "$PMIX_ASSEMBLY_FORMAT" -_ACEOF + # Check if the compiler has support for visibility, like some + # versions of gcc, icc Sun Studio cc. + # Check whether --enable-visibility was given. +if test "${enable_visibility+set}" = set; then : + enableval=$enable_visibility; +fi - fi # if pmix_cv_asm_builtin = BUILTIN_SYNC + WANT_VISIBILITY=0 + pmix_msg="whether to enable symbol visibility" - result="PMIX_$pmix_cv_asm_arch" - PMIX_ASSEMBLY_ARCH="$pmix_cv_asm_arch" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembly architecture" >&5 -$as_echo_n "checking for assembly architecture... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_arch" >&5 -$as_echo "$pmix_cv_asm_arch" >&6; } + if test "$enable_visibility" = "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $pmix_msg" >&5 +$as_echo_n "checking $pmix_msg... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (disabled)" >&5 +$as_echo "no (disabled)" >&6; } + else + CFLAGS_orig=$CFLAGS -cat >>confdefs.h <<_ACEOF -#define PMIX_ASSEMBLY_ARCH $result -_ACEOF + pmix_add= + case "$pmix_c_vendor" in + sun) + # Check using Sun Studio -xldscope=hidden flag + pmix_add=-xldscope=hidden + CFLAGS="$PMIX_CFLAGS_BEFORE_PICKY $pmix_add -errwarn=%all" + ;; + *) + # Check using -fvisibility=hidden + pmix_add=-fvisibility=hidden + CFLAGS="$PMIX_CFLAGS_BEFORE_PICKY $pmix_add -Werror" + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $pmix_add" >&5 +$as_echo_n "checking if $CC supports $pmix_add... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Check for RDTSCP support - result=0 - if test "$pmix_cv_asm_arch" = "PMIX_X86_64" || test "$pmix_cv_asm_arch" = "PMIX_IA32"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RDTSCP assembly support" >&5 -$as_echo_n "checking for RDTSCP assembly support... " >&6; } - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + #include + __attribute__((visibility("default"))) int foo; - if test "$cross_compiling" = yes; then : - #cross compile not supported - { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"no (cross compiling)\"" >&5 -$as_echo "\"no (cross compiling)\"" >&6; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -[ -int main(int argc, char* argv[]) +int +main () { - unsigned int rax, rdx; - __asm__ __volatile__ ("rdtscp\n": "=a" (rax), "=d" (rdx):: "%rax", "%rdx"); +fprintf(stderr, "Hello, world\n"); + ; return 0; } - ] _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - result=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +if ac_fn_c_try_link "$LINENO"; then : + if test -s conftest.err; then : + $GREP -iq visibility conftest.err + # If we find "visibility" in the stderr, then + # assume it doesn't work + if test "$?" = "0"; then : + pmix_add= +fi +fi + else + pmix_add= +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "$pmix_add" = ""; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } fi - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + CFLAGS=$CFLAGS_orig + PMIX_VISIBILITY_CFLAGS=$pmix_add + + if test "$pmix_add" != "" ; then + WANT_VISIBILITY=1 + CFLAGS="$CFLAGS $PMIX_VISIBILITY_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $pmix_msg" >&5 +$as_echo_n "checking $pmix_msg... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (via $pmix_add)" >&5 +$as_echo "yes (via $pmix_add)" >&6; } + elif test "$enable_visibility" = "yes"; then + as_fn_error $? "Symbol visibility support requested but compiler does not seem to support it. Aborting" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $pmix_msg" >&5 +$as_echo_n "checking $pmix_msg... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (unsupported)" >&5 +$as_echo "no (unsupported)" >&6; } + fi + unset pmix_add + fi -fi cat >>confdefs.h <<_ACEOF -#define PMIX_ASSEMBLY_SUPPORTS_RDTSCP $result +#define PMIX_HAVE_VISIBILITY $WANT_VISIBILITY _ACEOF + if test "$WANT_VISIBILITY" = "1"; then + WANT_HIDDEN_TRUE= + WANT_HIDDEN_FALSE='#' +else + WANT_HIDDEN_TRUE='#' + WANT_HIDDEN_FALSE= +fi + - result="PMIX_$pmix_cv_asm_builtin" - PMIX_ASSEMBLY_BUILTIN="$pmix_cv_asm_builtin" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for builtin atomics" >&5 -$as_echo_n "checking for builtin atomics... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_asm_builtin" >&5 -$as_echo "$pmix_cv_asm_builtin" >&6; } -cat >>confdefs.h <<_ACEOF -#define PMIX_ASSEMBLY_BUILTIN $result -_ACEOF + ################################## + # Libevent + ################################## + pmix_show_title "Event libraries" + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 + fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in pmix_libev_dir pmix_libev_libdir pmix_libev_standard_header_location pmix_libev_standard_lib_location pmix_check_libev_save_CPPFLAGS pmix_check_libev_save_LDFLAGS pmix_check_libev_save_LIBS; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -if test "$pmix_cv_asm_arch" != "WINDOWS" && test "$pmix_cv_asm_builtin" != "BUILTIN_SYNC" && test "$pmix_cv_asm_builtin" != "BUILTIN_GCC" && test "$pmix_cv_asm_builtin" != "BUILTIN_OSX" && test "$pmix_cv_asm_inline_arch" = "no" ; then - as_fn_error $? "no atomic support available. exiting" "$LINENO" 5 -else - # On windows with VC++, atomics are done with compiler primitives - pmix_cv_asm_file="" -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_libev_dir pmix_libev_libdir pmix_libev_standard_header_location pmix_libev_standard_lib_location pmix_check_libev_save_CPPFLAGS pmix_check_libev_save_LDFLAGS pmix_check_libev_save_LIBS\"" + eval $pmix_str + unset pmix_str + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` - unset result asm_format +# Check whether --with-libev was given. +if test "${with_libev+set}" = set; then : + withval=$with_libev; +fi - ################################## - # Header files - ################################## - pmix_show_title "Header file tests" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-libev value" >&5 +$as_echo_n "checking --with-libev value... " >&6; } + if test "$with_libev" = "yes" || test "$with_libev" = "no" || test "x$with_libev" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified)" >&5 +$as_echo "simple ok (unspecified)" >&6; } +else + if test ! -d "$with_libev"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_libev not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_libev not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_libev/include/event.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_libev/include/event.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_libev/include/event.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_libev)" >&5 +$as_echo "sanity check ok ($with_libev)" >&6; } + +fi - for ac_header in arpa/inet.h \ - fcntl.h ifaddrs.h inttypes.h libgen.h \ - net/uio.h netinet/in.h \ - stdint.h stddef.h \ - stdlib.h string.h strings.h \ - sys/ioctl.h sys/param.h \ - sys/select.h sys/socket.h sys/sockio.h \ - stdarg.h sys/stat.h sys/time.h \ - sys/types.h sys/un.h sys/uio.h \ - sys/wait.h syslog.h \ - time.h unistd.h dirent.h \ - crt_externs.h signal.h \ - ioLib.h sockLib.h hostLib.h limits.h \ - sys/statfs.h sys/statvfs.h \ - netdb.h ucred.h zlib.h sys/auxv.h \ - sys/sysctl.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF fi -done +fi - for ac_header in sys/mount.h -do : - ac_fn_c_check_header_compile "$LINENO" "sys/mount.h" "ac_cv_header_sys_mount_h" "$ac_includes_default - #if HAVE_SYS_PARAM_H - #include - #endif -" -if test "x$ac_cv_header_sys_mount_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SYS_MOUNT_H 1 -_ACEOF +# Check whether --with-libev-libdir was given. +if test "${with_libev_libdir+set}" = set; then : + withval=$with_libev_libdir; fi -done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-libev-libdir value" >&5 +$as_echo_n "checking --with-libev-libdir value... " >&6; } + if test "$with_livev_libdir" = "yes" || test "$with_livev_libdir" = "no" || test "x$with_livev_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified)" >&5 +$as_echo "simple ok (unspecified)" >&6; } +else + if test ! -d "$with_livev_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_livev_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_livev_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_livev_libdir/libev.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_livev_libdir/libev.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_livev_libdir/libev.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_livev_libdir)" >&5 +$as_echo "sanity check ok ($with_livev_libdir)" >&6; } - for ac_header in sys/sysctl.h -do : - ac_fn_c_check_header_compile "$LINENO" "sys/sysctl.h" "ac_cv_header_sys_sysctl_h" "$ac_includes_default - #if HAVE_SYS_PARAM_H - #include - #endif +fi -" -if test "x$ac_cv_header_sys_sysctl_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SYS_SYSCTL_H 1 -_ACEOF fi -done +fi - # Needed to work around Darwin requiring sys/socket.h for - # net/if.h - for ac_header in net/if.h -do : - ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "#include - #if STDC_HEADERS - # include - # include - #else - # if HAVE_STDLIB_H - # include - # endif - #endif - #if HAVE_SYS_SOCKET_H - # include - #endif -" -if test "x$ac_cv_header_net_if_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_NET_IF_H 1 -_ACEOF + pmix_libev_support=0 + if test -n "$with_libev" && test "$with_libev" != "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libev in" >&5 +$as_echo_n "checking for libev in... " >&6; } + pmix_check_libev_save_CPPFLAGS="$CPPFLAGS" + pmix_check_libeve_save_LDFLAGS="$LDFLAGS" + pmix_check_libev_save_LIBS="$LIBS" + if test "$with_libev" != "yes"; then + pmix_libev_dir=$with_libev/include + pmix_libev_standard_header_location=no + pmix_libev_standard_lib_location=no + if test -z "$with_libev_libdir" || test "$with_libev_libdir" = "yes"; then : + if test -d $with_libev/lib; then + pmix_libev_libdir=$with_libev/lib + elif test -d $with_libev/lib64; then + pmix_libev_libdir=$with_libev/lib64 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Could not find $with_libev/lib or $with_libev/lib64" >&5 +$as_echo "Could not find $with_libev/lib or $with_libev/lib64" >&6; } + as_fn_error $? "Can not continue" "$LINENO" 5 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_libev_dir and $pmix_libev_libdir" >&5 +$as_echo "$pmix_libev_dir and $pmix_libev_libdir" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_libev_libdir" >&5 +$as_echo "$with_libev_libdir" >&6; } +fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 +$as_echo "(default search paths)" >&6; } + pmix_libev_standard_header_location=yes + pmix_libev_standard_lib_location=yes + fi + if test ! -z "$with_libev_libdir" && test "$with_libev_libdir" != "yes"; then : + pmix_libev_libdir="$with_libev_libdir" + pmix_libev_standard_lib_location=no fi -done + pmix_check_package_pmix_libev_save_CPPFLAGS="$CPPFLAGS" + pmix_check_package_pmix_libev_save_LDFLAGS="$LDFLAGS" + pmix_check_package_pmix_libev_save_LIBS="$LIBS" - # Note that sometimes we have , but it doesn't work (e.g., - # have both Portland and GNU installed; using pgcc will find GNU's - # , which all it does -- by standard -- is define "bool" to - # "_Bool" [see - # http://pmixw.opengroup.org/onlinepubs/009695399/basedefs/stdbool.h.html], - # and Portland has no idea what to do with _Bool). + pmix_check_package_pmix_libev_orig_CPPFLAGS="$pmix_libev_CPPFLAGS" + pmix_check_package_pmix_libev_orig_LDFLAGS="$pmix_libev_LDFLAGS" + pmix_check_package_pmix_libev_orig_LIBS="$pmix_libev_LIBS" - # So first figure out if we have (i.e., check the value of - # the macro HAVE_STDBOOL_H from the result of AC_CHECK_HEADERS, - # above). If we do have it, then check to see if it actually works. - # Define PMIX_USE_STDBOOL_H as approrpaite. - for ac_header in stdbool.h + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_event_h + pmix_check_package_header_happy="no" + + # get rid of the trailing slash(es) + hdir_prefix=$(echo $pmix_libev_dir | sed -e 'sX/*$XXg') + + if test "$hdir_prefix" = "" || \ + test "$hdir_prefix" = "/usr" || \ + test "$hdir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in event.h do : - ac_fn_c_check_header_mongrel "$LINENO" "stdbool.h" "ac_cv_header_stdbool_h" "$ac_includes_default" -if test "x$ac_cv_header_stdbool_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "event.h" "ac_cv_header_event_h" "$ac_includes_default" +if test "x$ac_cv_header_event_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_STDBOOL_H 1 +#define HAVE_EVENT_H 1 _ACEOF - have_stdbool_h=1 -else - have_stdbool_h=0 + pmix_check_package_header_happy="yes" fi done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if works" >&5 -$as_echo_n "checking if works... " >&6; } - if test "$have_stdbool_h" = "1"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default - #if HAVE_STDBOOL_H - #include - #endif - -int -main () -{ -bool bar, foo = true; bar = foo; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - PMIX_USE_STDBOOL_H=1 MSG=yes -else - PMIX_USE_STDBOOL_H=0 MSG=no + if test "$pmix_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_event_h +fi fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - else - PMIX_USE_STDBOOL_H=0 - MSG="no (don't have )" - fi -cat >>confdefs.h <<_ACEOF -#define PMIX_USE_STDBOOL_H $PMIX_USE_STDBOOL_H + if test "$pmix_check_package_header_happy" = "no"; then : + if test "$hdir_prefix" != ""; then : + pmix_libev_CPPFLAGS="$pmix_libev_CPPFLAGS -I$hdir_prefix" + CPPFLAGS="$CPPFLAGS -I$hdir_prefix" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix" >&5 +$as_echo "looking for header in $hdir_prefix" >&6; } + for ac_header in event.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "event.h" "ac_cv_header_event_h" "$ac_includes_default" +if test "x$ac_cv_header_event_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_EVENT_H 1 _ACEOF + pmix_check_package_header_happy="yes" +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSG" >&5 -$as_echo "$MSG" >&6; } - - # checkpoint results - cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. +done + if test "$pmix_check_package_header_happy" = "no"; then : + unset ac_cv_header_event_h + pmix_libev_CPPFLAGS="$pmix_libev_CPPFLAGS -I$hdir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$hdir_prefix/include" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix/include" >&5 +$as_echo "looking for header in $hdir_prefix/include" >&6; } + for ac_header in event.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "event.h" "ac_cv_header_event_h" "$ac_includes_default" +if test "x$ac_cv_header_event_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_EVENT_H 1 _ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi + pmix_check_package_header_happy="yes" fi -rm -f confcache - - ################################## - # Types - ################################## - pmix_show_title "Type tests" +done - ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "$ac_includes_default - #if HAVE_SYS_SOCKET_H - #include - #endif - #if HAVE_SYS_UN_H - #include - #endif - #ifdef HAVE_NETINET_IN_H - #include - #endif +fi +fi +fi -" -if test "x$ac_cv_type_socklen_t" = xyes; then : + if test "$pmix_check_package_header_happy" = "yes"; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_SOCKLEN_T 1 -_ACEOF + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + # see comment above + unset ac_cv_lib_ev_ev_async_send + pmix_check_package_lib_happy="no" -fi -ac_fn_c_check_type "$LINENO" "struct sockaddr_in" "ac_cv_type_struct_sockaddr_in" "$ac_includes_default - #if HAVE_SYS_SOCKET_H - #include - #endif - #if HAVE_SYS_UN_H - #include - #endif - #ifdef HAVE_NETINET_IN_H - #include - #endif + # get rid of the trailing slash(es) + libdir_prefix=$(echo $pmix_libev_libdir | sed -e 'sX/*$XXg') -" -if test "x$ac_cv_type_struct_sockaddr_in" = xyes; then : + if test "$libdir_prefix" != ""; then : + # libdir was specified - search only there + pmix_libev_LDFLAGS="$pmix_libev_LDFLAGS -L$libdir_prefix" + LDFLAGS="$LDFLAGS -L$libdir_prefix" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ev_async_send" >&5 +$as_echo_n "checking for library containing ev_async_send... " >&6; } +if ${ac_cv_search_ev_async_send+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_SOCKADDR_IN 1 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ev_async_send (); +int +main () +{ +return ev_async_send (); + ; + return 0; +} _ACEOF +for ac_lib in '' ev; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ev_async_send=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ev_async_send+:} false; then : + break +fi +done +if ${ac_cv_search_ev_async_send+:} false; then : +else + ac_cv_search_ev_async_send=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ev_async_send" >&5 +$as_echo "$ac_cv_search_ev_async_send" >&6; } +ac_res=$ac_cv_search_ev_async_send +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi + if test "$pmix_check_package_lib_happy" = "no"; then : + LDFLAGS="$pmix_check_package_pmix_libev_save_LDFLAGS" + pmix_libev_LDFLAGS="$pmix_check_package_pmix_libev_orig_LDFLAGS" + unset ac_cv_lib_ev_ev_async_send fi -ac_fn_c_check_type "$LINENO" "struct sockaddr_un" "ac_cv_type_struct_sockaddr_un" "$ac_includes_default - #if HAVE_SYS_SOCKET_H - #include - #endif - #if HAVE_SYS_UN_H - #include - #endif - #ifdef HAVE_NETINET_IN_H - #include - #endif +else + # libdir was not specified - go through search path + # get rid of the trailing slash(es) + libdir_prefix=$(echo $pmix_libev_dir | sed -e 'sX/*$XXg') -" -if test "x$ac_cv_type_struct_sockaddr_un" = xyes; then : + # first try standard locations as otherwise our + # searches with libdir_prefix locations might come + # back positive and unnecessarily add an LDFLAG + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ev_async_send" >&5 +$as_echo_n "checking for library containing ev_async_send... " >&6; } +if ${ac_cv_search_ev_async_send+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_SOCKADDR_UN 1 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ev_async_send (); +int +main () +{ +return ev_async_send (); + ; + return 0; +} _ACEOF +for ac_lib in '' ev; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ev_async_send=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ev_async_send+:} false; then : + break +fi +done +if ${ac_cv_search_ev_async_send+:} false; then : +else + ac_cv_search_ev_async_send=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ev_async_send" >&5 +$as_echo "$ac_cv_search_ev_async_send" >&6; } +ac_res=$ac_cv_search_ev_async_send +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pmix_libev_save_LDFLAGS" + pmix_libev_LDFLAGS="$pmix_check_package_pmix_libev_orig_LDFLAGS" + unset ac_cv_lib_ev_ev_async_send fi -ac_fn_c_check_type "$LINENO" "struct sockaddr_in6" "ac_cv_type_struct_sockaddr_in6" "$ac_includes_default - #if HAVE_SYS_SOCKET_H - #include - #endif - #if HAVE_SYS_UN_H - #include - #endif - #ifdef HAVE_NETINET_IN_H - #include - #endif -" -if test "x$ac_cv_type_struct_sockaddr_in6" = xyes; then : + if test "$pmix_check_package_lib_happy" = "no"; then : + # if we didn't find it, check the libdir_prefix/lib64 directory + if test "$libdir_prefix" != "" && \ + test "$libdir_prefix" != "/usr" && \ + test "$libdir_prefix" != "/usr/local"; then : + pmix_libev_LDFLAGS="$pmix_libev_LDFLAGS -L$libdir_prefix/lib64" + LDFLAGS="$LDFLAGS -L$libdir_prefix/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib64" >&5 +$as_echo "looking for library in $libdir_prefix/lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ev_async_send" >&5 +$as_echo_n "checking for library containing ev_async_send... " >&6; } +if ${ac_cv_search_ev_async_send+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_SOCKADDR_IN6 1 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ev_async_send (); +int +main () +{ +return ev_async_send (); + ; + return 0; +} _ACEOF +for ac_lib in '' ev; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ev_async_send=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ev_async_send+:} false; then : + break +fi +done +if ${ac_cv_search_ev_async_send+:} false; then : +else + ac_cv_search_ev_async_send=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ev_async_send" >&5 +$as_echo "$ac_cv_search_ev_async_send" >&6; } +ac_res=$ac_cv_search_ev_async_send +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pmix_libev_save_LDFLAGS" + pmix_libev_LDFLAGS="$pmix_check_package_pmix_libev_orig_LDFLAGS" + unset ac_cv_lib_ev_ev_async_send +fi +fi fi -ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" "$ac_includes_default - #if HAVE_SYS_SOCKET_H - #include - #endif - #if HAVE_SYS_UN_H - #include - #endif - #ifdef HAVE_NETINET_IN_H - #include - #endif -" -if test "x$ac_cv_type_struct_sockaddr_storage" = xyes; then : + if test "$pmix_check_package_lib_happy" = "no"; then : + # if we still haven't found it, check the libdir_prefix/lib directory + if test "$libdir_prefix" != "" && \ + test "$libdir_prefix" != "/usr" && \ + test "$libdir_prefix" != "/usr/local"; then : + pmix_libev_LDFLAGS="$pmix_libev_LDFLAGS -L$libdir_prefix/lib" + LDFLAGS="$LDFLAGS -L$libdir_prefix/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib" >&5 +$as_echo "looking for library in $libdir_prefix/lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ev_async_send" >&5 +$as_echo_n "checking for library containing ev_async_send... " >&6; } +if ${ac_cv_search_ev_async_send+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_SOCKADDR_STORAGE 1 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ev_async_send (); +int +main () +{ +return ev_async_send (); + ; + return 0; +} _ACEOF +for ac_lib in '' ev; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ev_async_send=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_ev_async_send+:} false; then : + break +fi +done +if ${ac_cv_search_ev_async_send+:} false; then : +else + ac_cv_search_ev_async_send=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ev_async_send" >&5 +$as_echo "$ac_cv_search_ev_async_send" >&6; } +ac_res=$ac_cv_search_ev_async_send +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pmix_libev_save_LDFLAGS" + pmix_libev_LDFLAGS="$pmix_check_package_pmix_libev_orig_LDFLAGS" + unset ac_cv_lib_ev_ev_async_send +fi +fi fi +fi - ac_fn_c_check_decl "$LINENO" "AF_UNSPEC" "ac_cv_have_decl_AF_UNSPEC" "$ac_includes_default - #if HAVE_SYS_SOCKET_H - #include - #endif - #ifdef HAVE_NETINET_IN_H - #include - #endif -" -if test "x$ac_cv_have_decl_AF_UNSPEC" = xyes; then : - ac_have_decl=1 + if test "$pmix_check_package_lib_happy" = "yes"; then : + pmix_libev_LIBS="-lev " + pmix_check_package_happy="yes" else - ac_have_decl=0 + pmix_check_package_happy="no" +fi + if test "$pmix_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_ev_async_send" != "no" && + test "$ac_cv_search_ev_async_send" != "none required"; then : + pmix_libev_LIBS="$ac_cv_search_ev_async_send " +else + pmix_libev_LIBS="" +fi + pmix_check_package_happy="yes" +else + pmix_check_package_happy="no" fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_AF_UNSPEC $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "PF_UNSPEC" "ac_cv_have_decl_PF_UNSPEC" "$ac_includes_default - #if HAVE_SYS_SOCKET_H - #include - #endif - #ifdef HAVE_NETINET_IN_H - #include - #endif -" -if test "x$ac_cv_have_decl_PF_UNSPEC" = xyes; then : - ac_have_decl=1 else - ac_have_decl=0 + pmix_check_package_happy="no" fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_PF_UNSPEC $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "AF_INET6" "ac_cv_have_decl_AF_INET6" "$ac_includes_default - #if HAVE_SYS_SOCKET_H - #include - #endif - #ifdef HAVE_NETINET_IN_H - #include - #endif + unset pmix_check_package_header_happy -" -if test "x$ac_cv_have_decl_AF_INET6" = xyes; then : - ac_have_decl=1 + + + if test "$pmix_check_package_happy" = "yes"; then : + pmix_libev_support=1 else - ac_have_decl=0 + pmix_libev_CPPFLAGS="$pmix_check_package_pmix_libev_orig_CPPFLAGS" + pmix_libev_LDFLAGS="$pmix_check_package_pmix_libev_orig_LDFLAGS" + pmix_libev_LIBS="$pmix_check_package_pmix_libev_orig_LIBS" + pmix_libev_support=0 fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_AF_INET6 $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "PF_INET6" "ac_cv_have_decl_PF_INET6" "$ac_includes_default - #if HAVE_SYS_SOCKET_H - #include - #endif - #ifdef HAVE_NETINET_IN_H - #include - #endif + CPPFLAGS="$pmix_check_package_pmix_libev_save_CPPFLAGS" + LDFLAGS="$pmix_check_package_pmix_libev_save_LDFLAGS" + LIBS="$pmix_check_package_pmix_libev_save_LIBS" -" -if test "x$ac_cv_have_decl_PF_INET6" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 + CPPFLAGS="$pmix_check_libev_save_CPPFLAGS" + LDFLAGS="$pmix_check_libev_save_LDFLAGS" + LIBS="$pmix_check_libev_save_LIBS" fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_PF_INET6 $ac_have_decl -_ACEOF - + if test $pmix_libev_support -eq 1; then : - # SA_RESTART in signal.h # Is the private index set? If not, set it. @@ -32469,7 +32299,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in MSG2; do + for pmix_var in pmix_tmp pmix_append; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -32488,39 +32318,33 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"MSG2\"" + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" eval $pmix_str unset pmix_str env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if SA_RESTART defined in signal.h" >&5 -$as_echo_n "checking if SA_RESTART defined in signal.h... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #ifdef SA_RESTART - yes - #endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - MSG2=yes VALUE=1 + for arg in $pmix_libev_LIBS; do + pmix_tmp=`echo $arg | cut -c1-2` + pmix_append=1 + if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : + for val in ${PMIX_FINAL_LIBS}; do + if test "x$val" = "x$arg"; then : + pmix_append=0 +fi + done +fi + if test "$pmix_append" = "1"; then : + if test -z "$PMIX_FINAL_LIBS"; then : + PMIX_FINAL_LIBS=$arg else - MSG2=no VALUE=0 + PMIX_FINAL_LIBS="$PMIX_FINAL_LIBS $arg" fi -rm -f conftest* - - -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_SA_RESTART $VALUE -_ACEOF +fi + done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSG2" >&5 -$as_echo "$MSG2" >&6; } # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` @@ -32543,214 +32367,92 @@ done - ac_fn_c_check_member "$LINENO" "struct sockaddr" "sa_len" "ac_cv_member_struct_sockaddr_sa_len" " - #include - #if HAVE_SYS_SOCKET_H - #include - #endif - -" -if test "x$ac_cv_member_struct_sockaddr_sa_len" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_SOCKADDR_SA_LEN 1 -_ACEOF - - -fi - - - ac_fn_c_check_member "$LINENO" "struct dirent" "d_type" "ac_cv_member_struct_dirent_d_type" " - #include - #include -" -if test "x$ac_cv_member_struct_dirent_d_type" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_DIRENT_D_TYPE 1 -_ACEOF - - -fi - - - ac_fn_c_check_member "$LINENO" "siginfo_t" "si_fd" "ac_cv_member_siginfo_t_si_fd" "#include -" -if test "x$ac_cv_member_siginfo_t_si_fd" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_SIGINFO_T_SI_FD 1 -_ACEOF - - -fi - - ac_fn_c_check_member "$LINENO" "siginfo_t" "si_band" "ac_cv_member_siginfo_t_si_band" "#include -" -if test "x$ac_cv_member_siginfo_t_si_band" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_SIGINFO_T_SI_BAND 1 -_ACEOF - - -fi - - - # - # Checks for struct member names in struct statfs - # - ac_fn_c_check_member "$LINENO" "struct statfs" "f_type" "ac_cv_member_struct_statfs_f_type" " - $ac_includes_default - #ifdef HAVE_SYS_VFS_H - #include - #endif - #ifdef HAVE_SYS_STATFS_H - #include - #endif -" -if test "x$ac_cv_member_struct_statfs_f_type" = xyes; then : + if test "$pmix_libev_standard_header_location" != "yes"; then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STATFS_F_TYPE 1 -_ACEOF -fi + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 + fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in pmix_tmp pmix_append; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str - ac_fn_c_check_member "$LINENO" "struct statfs" "f_fstypename" "ac_cv_member_struct_statfs_f_fstypename" " - $ac_includes_default - #ifdef HAVE_SYS_PARAM_H - #include - #endif - #ifdef HAVE_SYS_MOUNT_H - #include - #endif - #ifdef HAVE_SYS_VFS_H - #include - #endif - #ifdef HAVE_SYS_STATFS_H - #include - #endif + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -" -if test "x$ac_cv_member_struct_statfs_f_fstypename" = xyes; then : + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + eval $pmix_str + unset pmix_str -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STATFS_F_FSTYPENAME 1 -_ACEOF + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` + for arg in $pmix_libev_CPPFLAGS; do + pmix_tmp=`echo $arg | cut -c1-2` + pmix_append=1 + if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : + for val in ${PMIX_FINAL_CPPFLAGS}; do + if test "x$val" = "x$arg"; then : + pmix_append=0 fi - - - # - # Checks for struct member names in struct statvfs - # - ac_fn_c_check_member "$LINENO" "struct statvfs" "f_basetype" "ac_cv_member_struct_statvfs_f_basetype" " - $ac_includes_default - #ifdef HAVE_SYS_STATVFS_H - #include - #endif - -" -if test "x$ac_cv_member_struct_statvfs_f_basetype" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STATVFS_F_BASETYPE 1 -_ACEOF - - + done fi - - - ac_fn_c_check_member "$LINENO" "struct statvfs" "f_fstypename" "ac_cv_member_struct_statvfs_f_fstypename" " - $ac_includes_default - #ifdef HAVE_SYS_STATVFS_H - #include - #endif - -" -if test "x$ac_cv_member_struct_statvfs_f_fstypename" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STATVFS_F_FSTYPENAME 1 -_ACEOF - - + if test "$pmix_append" = "1"; then : + if test -z "$PMIX_FINAL_CPPFLAGS"; then : + PMIX_FINAL_CPPFLAGS=$arg +else + PMIX_FINAL_CPPFLAGS="$PMIX_FINAL_CPPFLAGS $arg" fi - - - ac_fn_c_check_member "$LINENO" "struct ucred" "uid" "ac_cv_member_struct_ucred_uid" "#include - #include -" -if test "x$ac_cv_member_struct_ucred_uid" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_UCRED_UID 1 -_ACEOF - - fi -ac_fn_c_check_member "$LINENO" "struct ucred" "cr_uid" "ac_cv_member_struct_ucred_cr_uid" "#include - #include -" -if test "x$ac_cv_member_struct_ucred_cr_uid" = xyes; then : + done -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_UCRED_CR_UID 1 -_ACEOF + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -fi -ac_fn_c_check_member "$LINENO" "struct sockpeercred" "uid" "ac_cv_member_struct_sockpeercred_uid" "#include - #include -" -if test "x$ac_cv_member_struct_sockpeercred_uid" = xyes; then : + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_SOCKPEERCRED_UID 1 -_ACEOF + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done fi + if test "$pmix_libev_standard_lib_location" != "yes"; then : - # - # Check for ptrdiff type. Yes, there are platforms where - # sizeof(void*) != sizeof(long) (64 bit Windows, apparently). - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pointer diff type" >&5 -$as_echo_n "checking for pointer diff type... " >&6; } - if test $ac_cv_type_ptrdiff_t = yes ; then - pmix_ptrdiff_t="ptrdiff_t" - pmix_ptrdiff_size=$ac_cv_sizeof_ptrdiff_t - elif test $ac_cv_sizeof_void_p -eq $ac_cv_sizeof_long ; then - pmix_ptrdiff_t="long" - pmix_ptrdiff_size=$ac_cv_sizeof_long - elif test $ac_cv_type_long_long = yes && test $ac_cv_sizeof_void_p -eq $ac_cv_sizeof_long_long ; then - pmix_ptrdiff_t="long long" - pmix_ptrdiff_size=$ac_cv_sizeof_long_long - #else - # AC_MSG_ERROR([Could not find datatype to emulate ptrdiff_t. Cannot continue]) - fi - -cat >>confdefs.h <<_ACEOF -#define PMIX_PTRDIFF_TYPE $pmix_ptrdiff_t -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_ptrdiff_t (size: $pmix_ptrdiff_size)" >&5 -$as_echo "$pmix_ptrdiff_t (size: $pmix_ptrdiff_size)" >&6; } - - ################################## - # Linker characteristics - ################################## - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking the linker for support for the -fini option" >&5 -$as_echo_n "checking the linker for support for the -fini option... " >&6; } - # Is the private index set? If not, set it. if test "x$pmix_scope_index" = "x"; then @@ -32761,7 +32463,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in LDFLAGS_save; do + for pmix_var in pmix_tmp pmix_append; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -32780,38 +32482,33 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"LDFLAGS_save\"" + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" eval $pmix_str unset pmix_str env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - LDFLAGS_save=$LDFLAGS - LDFLAGS="$LDFLAGS_save -Wl,-fini -Wl,finalize" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -void finalize (void) {} -int -main () -{ - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_ld_have_fini=1 + for arg in $pmix_libev_LDFLAGS; do + pmix_tmp=`echo $arg | cut -c1-2` + pmix_append=1 + if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : + for val in ${PMIX_FINAL_LDFLAGS}; do + if test "x$val" = "x$arg"; then : + pmix_append=0 +fi + done +fi + if test "$pmix_append" = "1"; then : + if test -z "$PMIX_FINAL_LDFLAGS"; then : + PMIX_FINAL_LDFLAGS=$arg else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - pmix_ld_have_fini=0 + PMIX_FINAL_LDFLAGS="$PMIX_FINAL_LDFLAGS $arg" fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$LDFLAGS_save +fi + done + # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` @@ -32834,38 +32531,20 @@ done - pmix_destructor_use_fini=0 - pmix_no_destructor=0 - if test x$pmix_cv___attribute__destructor = x0 ; then - if test x$pmix_ld_have_fini = x1 ; then - pmix_destructor_use_fini=1 - else - pmix_no_destructor=1; - fi - fi +fi +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking will libev support be built" >&5 +$as_echo_n "checking will libev support be built... " >&6; } + if test $pmix_libev_support -eq 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + PMIX_EVENT_HEADER="" cat >>confdefs.h <<_ACEOF -#define PMIX_NO_LIB_DESTRUCTOR $pmix_no_destructor +#define PMIX_EVENT_HEADER $PMIX_EVENT_HEADER _ACEOF - if test x$pmix_destructor_use_fini = x1; then - PMIX_DESTRUCTOR_USE_FINI_TRUE= - PMIX_DESTRUCTOR_USE_FINI_FALSE='#' -else - PMIX_DESTRUCTOR_USE_FINI_TRUE='#' - PMIX_DESTRUCTOR_USE_FINI_FALSE= -fi - - - ################################## - # Libraries - ################################## - - pmix_show_title "Library and Function tests" - - # Darwin doesn't need -lutil, as it's something other than this -lutil. - @@ -32878,7 +32557,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in LIBS_save add; do + for pmix_var in pmix_summary_section pmix_summary_line pmix_summary_section_current; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -32897,79 +32576,65 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"LIBS_save add\"" + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_summary_section pmix_summary_line pmix_summary_section_current\"" eval $pmix_str unset pmix_str env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - LIBS_save=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing openpty" >&5 -$as_echo_n "checking for library containing openpty... " >&6; } -if ${ac_cv_search_openpty+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + pmix_summary_section=$(echo External Packages | tr ' ' '_') + pmix_summary_line="libev: $pmix_libev_dir" + pmix_summary_section_current=$(eval echo \$pmix_summary_values_$pmix_summary_section) -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char openpty (); -int -main () -{ -return openpty (); - ; - return 0; -} -_ACEOF -for ac_lib in '' util; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_openpty=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_openpty+:} false; then : - break -fi -done -if ${ac_cv_search_openpty+:} false; then : + if test -z "$pmix_summary_section_current" ; then + if test -z "$pmix_summary_sections" ; then + pmix_summary_sections=$pmix_summary_section + else + pmix_summary_sections="$pmix_summary_sections $pmix_summary_section" + fi + eval pmix_summary_values_$pmix_summary_section=\"$pmix_summary_line\" + else + eval pmix_summary_values_$pmix_summary_section=\"$pmix_summary_section_current,$pmix_summary_line\" + fi -else - ac_cv_search_openpty=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_openpty" >&5 -$as_echo "$ac_cv_search_openpty" >&6; } -ac_res=$ac_cv_search_openpty -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_have_openpty=1 -else - pmix_have_openpty=0 + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -fi + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str + + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # if they asked us to use it, then this is an error + if test -n "$with_libev" && test "$with_libev" != "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LIBEV SUPPORT REQUESTED AND NOT FOUND" >&5 +$as_echo "$as_me: WARNING: LIBEV SUPPORT REQUESTED AND NOT FOUND" >&2;} + as_fn_error $? "CANNOT CONTINUE" "$LINENO" 5 +fi + fi + cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_OPENPTY $pmix_have_openpty +#define PMIX_HAVE_LIBEV $pmix_libev_support _ACEOF @@ -32997,6 +32662,34 @@ +# Check whether --with-libevent-header was given. +if test "${with_libevent_header+set}" = set; then : + withval=$with_libevent_header; +fi + + + pmix_libevent_support=0 + + if test "$pmix_mode" = "embedded"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libevent" >&5 +$as_echo_n "checking for libevent... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: assumed available (embedded mode)" >&5 +$as_echo "assumed available (embedded mode)" >&6; } + + if test -z "$with_libevent_header" || test "$with_libevent_header" = "yes"; then : + PMIX_EVENT_HEADER="" + PMIX_EVENT2_THREAD_HEADER="" +else + PMIX_EVENT_HEADER="$with_libevent_header" + PMIX_EVENT2_THREAD_HEADER="$with_libevent_header" +fi + + pmix_libevent_source=embedded + pmix_libevent_support=1 + +else + if test $pmix_libev_support -eq 0; then : @@ -33009,7 +32702,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in LIBS_save add; do + for pmix_var in pmix_event_dir pmix_event_libdir pmix_event_defaults pmix_check_libevent_save_CPPFLAGS pmix_check_libevent_save_LDFLAGS pmix_check_libevent_save_LIBS; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -33028,149 +32721,185 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"LIBS_save add\"" + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_event_dir pmix_event_libdir pmix_event_defaults pmix_check_libevent_save_CPPFLAGS pmix_check_libevent_save_LDFLAGS pmix_check_libevent_save_LIBS\"" eval $pmix_str unset pmix_str env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - LIBS_save=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 -$as_echo_n "checking for library containing gethostbyname... " >&6; } -if ${ac_cv_search_gethostbyname+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -for ac_lib in '' nsl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_gethostbyname=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_gethostbyname+:} false; then : - break +# Check whether --with-libevent was given. +if test "${with_libevent+set}" = set; then : + withval=$with_libevent; fi -done -if ${ac_cv_search_gethostbyname+:} false; then : -else - ac_cv_search_gethostbyname=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + + +# Check whether --with-libevent-libdir was given. +if test "${with_libevent_libdir+set}" = set; then : + withval=$with_libevent_libdir; fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5 -$as_echo "$ac_cv_search_gethostbyname" >&6; } -ac_res=$ac_cv_search_gethostbyname -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_have_gethostbyname=1 -else - pmix_have_gethostbyname=0 + pmix_check_libevent_save_CPPFLAGS="$CPPFLAGS" + pmix_check_libevent_save_LDFLAGS="$LDFLAGS" + pmix_check_libevent_save_LIBS="$LIBS" + pmix_event_defaults=yes + + # get rid of the trailing slash(es) + libevent_prefix=$(echo $with_libevent | sed -e 'sX/*$XXg') + libeventdir_prefix=$(echo $with_libevent_libdir | sed -e 'sX/*$XXg') + + if test "$libevent_prefix" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libevent in" >&5 +$as_echo_n "checking for libevent in... " >&6; } + if test ! -z "$libevent_prefix" && test "$libevent_prefix" != "yes"; then + pmix_event_defaults=no + pmix_event_dir=$libevent_prefix/include + if test -d $libevent_prefix/lib; then + pmix_event_libdir=$libevent_prefix/lib + elif test -d $libevent_prefix/lib64; then + pmix_event_libdir=$libevent_prefix/lib64 + elif test -d $libevent_prefix; then + pmix_event_libdir=$libevent_prefix + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Could not find $libevent_prefix/lib, $libevent_prefix/lib64, or $libevent_prefix" >&5 +$as_echo "Could not find $libevent_prefix/lib, $libevent_prefix/lib64, or $libevent_prefix" >&6; } + as_fn_error $? "Can not continue" "$LINENO" 5 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_event_dir and $pmix_event_libdir" >&5 +$as_echo "$pmix_event_dir and $pmix_event_libdir" >&6; } + else + pmix_event_defaults=yes + pmix_event_dir=/usr/include + if test -d /usr/lib; then + pmix_event_libdir=/usr/lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 +$as_echo "(default search paths)" >&6; } + elif test -d /usr/lib64; then + pmix_event_libdir=/usr/lib64 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 +$as_echo "(default search paths)" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: default paths not found" >&5 +$as_echo "default paths not found" >&6; } + pmix_libevent_support=0 + fi + fi + if test ! -z "$libeventdir_prefix" && "$libeventdir_prefix" != "yes"; then : + pmix_event_libdir="$libeventdir_prefix" fi + pmix_check_package_pmix_libevent_save_CPPFLAGS="$CPPFLAGS" + pmix_check_package_pmix_libevent_save_LDFLAGS="$LDFLAGS" + pmix_check_package_pmix_libevent_save_LIBS="$LIBS" -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_GETHOSTBYNAME $pmix_have_gethostbyname -_ACEOF + pmix_check_package_pmix_libevent_orig_CPPFLAGS="$pmix_libevent_CPPFLAGS" + pmix_check_package_pmix_libevent_orig_LDFLAGS="$pmix_libevent_LDFLAGS" + pmix_check_package_pmix_libevent_orig_LIBS="$pmix_libevent_LIBS" + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_event_h + pmix_check_package_header_happy="no" - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + # get rid of the trailing slash(es) + hdir_prefix=$(echo $pmix_event_dir | sed -e 'sX/*$XXg') + if test "$hdir_prefix" = "" || \ + test "$hdir_prefix" = "/usr" || \ + test "$hdir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in event.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "event.h" "ac_cv_header_event_h" "$ac_includes_default" +if test "x$ac_cv_header_event_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_EVENT_H 1 +_ACEOF + pmix_check_package_header_happy="yes" +fi +done + if test "$pmix_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_event_h +fi +fi + if test "$pmix_check_package_header_happy" = "no"; then : + if test "$hdir_prefix" != ""; then : + pmix_libevent_CPPFLAGS="$pmix_libevent_CPPFLAGS -I$hdir_prefix" + CPPFLAGS="$CPPFLAGS -I$hdir_prefix" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix" >&5 +$as_echo "looking for header in $hdir_prefix" >&6; } + for ac_header in event.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "event.h" "ac_cv_header_event_h" "$ac_includes_default" +if test "x$ac_cv_header_event_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_EVENT_H 1 +_ACEOF + pmix_check_package_header_happy="yes" +fi +done + if test "$pmix_check_package_header_happy" = "no"; then : + unset ac_cv_header_event_h + pmix_libevent_CPPFLAGS="$pmix_libevent_CPPFLAGS -I$hdir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$hdir_prefix/include" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix/include" >&5 +$as_echo "looking for header in $hdir_prefix/include" >&6; } + for ac_header in event.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "event.h" "ac_cv_header_event_h" "$ac_includes_default" +if test "x$ac_cv_header_event_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_EVENT_H 1 +_ACEOF + pmix_check_package_header_happy="yes" +fi - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi +done - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in LIBS_save add; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str +fi +fi +fi - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + if test "$pmix_check_package_header_happy" = "yes"; then : - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"LIBS_save add\"" - eval $pmix_str - unset pmix_str + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + # see comment above + unset ac_cv_lib_event_core_event_config_new + pmix_check_package_lib_happy="no" - LIBS_save=$LIBS + # get rid of the trailing slash(es) + libdir_prefix=$(echo $pmix_event_libdir | sed -e 'sX/*$XXg') - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 -$as_echo_n "checking for library containing socket... " >&6; } -if ${ac_cv_search_socket+:} false; then : + if test "$libdir_prefix" != ""; then : + # libdir was specified - search only there + pmix_libevent_LDFLAGS="$pmix_libevent_LDFLAGS -L$libdir_prefix" + LDFLAGS="$LDFLAGS -L$libdir_prefix" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 +$as_echo_n "checking for library containing event_config_new... " >&6; } +if ${ac_cv_search_event_config_new+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -33183,126 +32912,67 @@ #ifdef __cplusplus extern "C" #endif -char socket (); +char event_config_new (); int main () { -return socket (); +return event_config_new (); ; return 0; } _ACEOF -for ac_lib in '' socket; do +for ac_lib in '' event_core; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_socket=$ac_res + ac_cv_search_event_config_new=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_socket+:} false; then : + if ${ac_cv_search_event_config_new+:} false; then : break fi done -if ${ac_cv_search_socket+:} false; then : +if ${ac_cv_search_event_config_new+:} false; then : else - ac_cv_search_socket=no + ac_cv_search_event_config_new=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5 -$as_echo "$ac_cv_search_socket" >&6; } -ac_res=$ac_cv_search_socket +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 +$as_echo "$ac_cv_search_event_config_new" >&6; } +ac_res=$ac_cv_search_event_config_new if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_have_socket=1 - + pmix_check_package_lib_happy="yes" else - pmix_have_socket=0 - + pmix_check_package_lib_happy="no" fi + if test "$pmix_check_package_lib_happy" = "no"; then : + LDFLAGS="$pmix_check_package_pmix_libevent_save_LDFLAGS" + pmix_libevent_LDFLAGS="$pmix_check_package_pmix_libevent_orig_LDFLAGS" + unset ac_cv_lib_event_core_event_config_new +fi +else + # libdir was not specified - go through search path + # get rid of the trailing slash(es) + libdir_prefix=$(echo $pmix_event_dir | sed -e 'sX/*$XXg') - -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_SOCKET $pmix_have_socket -_ACEOF - - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - - # IRIX and CentOS have dirname in -lgen, usually in libc - - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in LIBS_save add; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"LIBS_save add\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - LIBS_save=$LIBS - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dirname" >&5 -$as_echo_n "checking for library containing dirname... " >&6; } -if ${ac_cv_search_dirname+:} false; then : + # first try standard locations as otherwise our + # searches with libdir_prefix locations might come + # back positive and unnecessarily add an LDFLAG + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 +$as_echo_n "checking for library containing event_config_new... " >&6; } +if ${ac_cv_search_event_config_new+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -33315,126 +32985,68 @@ #ifdef __cplusplus extern "C" #endif -char dirname (); +char event_config_new (); int main () { -return dirname (); +return event_config_new (); ; return 0; } _ACEOF -for ac_lib in '' gen; do +for ac_lib in '' event_core; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dirname=$ac_res + ac_cv_search_event_config_new=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_dirname+:} false; then : + if ${ac_cv_search_event_config_new+:} false; then : break fi done -if ${ac_cv_search_dirname+:} false; then : +if ${ac_cv_search_event_config_new+:} false; then : else - ac_cv_search_dirname=no + ac_cv_search_event_config_new=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dirname" >&5 -$as_echo "$ac_cv_search_dirname" >&6; } -ac_res=$ac_cv_search_dirname +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 +$as_echo "$ac_cv_search_event_config_new" >&6; } +ac_res=$ac_cv_search_event_config_new if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_have_dirname=1 - + pmix_check_package_lib_happy="yes" else - pmix_have_dirname=0 - + pmix_check_package_lib_happy="no" fi + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pmix_libevent_save_LDFLAGS" + pmix_libevent_LDFLAGS="$pmix_check_package_pmix_libevent_orig_LDFLAGS" + unset ac_cv_lib_event_core_event_config_new +fi - -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_DIRNAME $pmix_have_dirname -_ACEOF - - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - - # Darwin doesn't need -lm, as it's a symlink to libSystem.dylib - - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in LIBS_save add; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"LIBS_save add\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - LIBS_save=$LIBS - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ceil" >&5 -$as_echo_n "checking for library containing ceil... " >&6; } -if ${ac_cv_search_ceil+:} false; then : + if test "$pmix_check_package_lib_happy" = "no"; then : + # if we didn't find it, check the libdir_prefix/lib64 directory + if test "$libdir_prefix" != "" && \ + test "$libdir_prefix" != "/usr" && \ + test "$libdir_prefix" != "/usr/local"; then : + pmix_libevent_LDFLAGS="$pmix_libevent_LDFLAGS -L$libdir_prefix/lib64" + LDFLAGS="$LDFLAGS -L$libdir_prefix/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib64" >&5 +$as_echo "looking for library in $libdir_prefix/lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 +$as_echo_n "checking for library containing event_config_new... " >&6; } +if ${ac_cv_search_event_config_new+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -33447,57 +33059,308 @@ #ifdef __cplusplus extern "C" #endif -char ceil (); +char event_config_new (); int main () { -return ceil (); +return event_config_new (); ; return 0; } _ACEOF -for ac_lib in '' m; do +for ac_lib in '' event_core; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ceil=$ac_res + ac_cv_search_event_config_new=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_ceil+:} false; then : + if ${ac_cv_search_event_config_new+:} false; then : break fi done -if ${ac_cv_search_ceil+:} false; then : +if ${ac_cv_search_event_config_new+:} false; then : else - ac_cv_search_ceil=no + ac_cv_search_event_config_new=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ceil" >&5 -$as_echo "$ac_cv_search_ceil" >&6; } -ac_res=$ac_cv_search_ceil +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 +$as_echo "$ac_cv_search_event_config_new" >&6; } +ac_res=$ac_cv_search_event_config_new if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_have_ceil=1 - + pmix_check_package_lib_happy="yes" else - pmix_have_ceil=0 - + pmix_check_package_lib_happy="no" fi + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pmix_libevent_save_LDFLAGS" + pmix_libevent_LDFLAGS="$pmix_check_package_pmix_libevent_orig_LDFLAGS" + unset ac_cv_lib_event_core_event_config_new +fi +fi +fi + if test "$pmix_check_package_lib_happy" = "no"; then : + # if we still haven't found it, check the libdir_prefix/lib directory + if test "$libdir_prefix" != "" && \ + test "$libdir_prefix" != "/usr" && \ + test "$libdir_prefix" != "/usr/local"; then : + pmix_libevent_LDFLAGS="$pmix_libevent_LDFLAGS -L$libdir_prefix/lib" + LDFLAGS="$LDFLAGS -L$libdir_prefix/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib" >&5 +$as_echo "looking for library in $libdir_prefix/lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 +$as_echo_n "checking for library containing event_config_new... " >&6; } +if ${ac_cv_search_event_config_new+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char event_config_new (); +int +main () +{ +return event_config_new (); + ; + return 0; +} +_ACEOF +for ac_lib in '' event_core; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -levent_pthreads $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_event_config_new=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_event_config_new+:} false; then : + break +fi +done +if ${ac_cv_search_event_config_new+:} false; then : + +else + ac_cv_search_event_config_new=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 +$as_echo "$ac_cv_search_event_config_new" >&6; } +ac_res=$ac_cv_search_event_config_new +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi + + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pmix_libevent_save_LDFLAGS" + pmix_libevent_LDFLAGS="$pmix_check_package_pmix_libevent_orig_LDFLAGS" + unset ac_cv_lib_event_core_event_config_new +fi +fi +fi + +fi + + + if test "$pmix_check_package_lib_happy" = "yes"; then : + pmix_libevent_LIBS="-levent_core -levent_pthreads" + pmix_check_package_happy="yes" +else + pmix_check_package_happy="no" +fi + if test "$pmix_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_event_config_new" != "no" && + test "$ac_cv_search_event_config_new" != "none required"; then : + pmix_libevent_LIBS="$ac_cv_search_event_config_new -levent_pthreads" +else + pmix_libevent_LIBS="-levent_pthreads" +fi + pmix_check_package_happy="yes" +else + pmix_check_package_happy="no" +fi + + +else + pmix_check_package_happy="no" +fi + + unset pmix_check_package_header_happy + + + + if test "$pmix_check_package_happy" = "yes"; then : + pmix_libevent_support=1 +else + pmix_libevent_CPPFLAGS="$pmix_check_package_pmix_libevent_orig_CPPFLAGS" + pmix_libevent_LDFLAGS="$pmix_check_package_pmix_libevent_orig_LDFLAGS" + pmix_libevent_LIBS="$pmix_check_package_pmix_libevent_orig_LIBS" + pmix_libevent_support=0 +fi + + CPPFLAGS="$pmix_check_package_pmix_libevent_save_CPPFLAGS" + LDFLAGS="$pmix_check_package_pmix_libevent_save_LDFLAGS" + LIBS="$pmix_check_package_pmix_libevent_save_LIBS" + + + # Check to see if the above check failed because it conflicted with LSF's libevent.so + # This can happen if LSF's library is in the LDFLAGS envar or default search + # path. The 'event_getcode4name' function is only defined in LSF's libevent.so and not + # in Libevent's libevent.so + if test $pmix_libevent_support -eq 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for event_getcode4name in -levent" >&5 +$as_echo_n "checking for event_getcode4name in -levent... " >&6; } +if ${ac_cv_lib_event_event_getcode4name+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-levent $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char event_getcode4name (); +int +main () +{ +return event_getcode4name (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_event_event_getcode4name=yes +else + ac_cv_lib_event_event_getcode4name=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_event_event_getcode4name" >&5 +$as_echo "$ac_cv_lib_event_event_getcode4name" >&6; } +if test "x$ac_cv_lib_event_event_getcode4name" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ===================================================================" >&5 +$as_echo "$as_me: WARNING: ===================================================================" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Possible conflicting libevent.so libraries detected on the system." >&5 +$as_echo "$as_me: WARNING: Possible conflicting libevent.so libraries detected on the system." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: " >&5 +$as_echo "$as_me: WARNING: " >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LSF provides a libevent.so that is not from Libevent in its" >&5 +$as_echo "$as_me: WARNING: LSF provides a libevent.so that is not from Libevent in its" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: library path. It is possible that you have installed Libevent" >&5 +$as_echo "$as_me: WARNING: library path. It is possible that you have installed Libevent" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: on the system, but the linker is picking up the wrong version." >&5 +$as_echo "$as_me: WARNING: on the system, but the linker is picking up the wrong version." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: " >&5 +$as_echo "$as_me: WARNING: " >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You will need to address this linker path issue. One way to do so is" >&5 +$as_echo "$as_me: WARNING: You will need to address this linker path issue. One way to do so is" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: to make sure the libevent system library path occurs before the" >&5 +$as_echo "$as_me: WARNING: to make sure the libevent system library path occurs before the" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LSF library path." >&5 +$as_echo "$as_me: WARNING: LSF library path." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ===================================================================" >&5 +$as_echo "$as_me: WARNING: ===================================================================" >&2;} + +fi + + fi + + # need to add resulting flags to global ones so we can + # test for thread support + if test "$pmix_event_defaults" = "no"; then : + + + + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in pmix_tmp pmix_append; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str + + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_CEIL $pmix_have_ceil -_ACEOF - + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + eval $pmix_str + unset pmix_str + + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` + + + for arg in $pmix_libevent_CPPFLAGS; do + pmix_tmp=`echo $arg | cut -c1-2` + pmix_append=1 + if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : + for val in ${CPPFLAGS}; do + if test "x$val" = "x$arg"; then : + pmix_append=0 +fi + done +fi + if test "$pmix_append" = "1"; then : + if test -z "$CPPFLAGS"; then : + CPPFLAGS=$arg +else + CPPFLAGS="$CPPFLAGS $arg" +fi +fi + done # Unwind the index @@ -33522,9 +33385,6 @@ - # -lrt might be needed for clock_gettime - - # Is the private index set? If not, set it. @@ -33536,7 +33396,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in LIBS_save add; do + for pmix_var in pmix_tmp pmix_append; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -33555,82 +33415,114 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"LIBS_save add\"" + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" eval $pmix_str unset pmix_str env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - LIBS_save=$LIBS - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5 -$as_echo_n "checking for library containing clock_gettime... " >&6; } -if ${ac_cv_search_clock_gettime+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char clock_gettime (); -int -main () -{ -return clock_gettime (); - ; - return 0; -} -_ACEOF -for ac_lib in '' rt; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_clock_gettime=$ac_res + for arg in $pmix_libevent_LDFLAGS; do + pmix_tmp=`echo $arg | cut -c1-2` + pmix_append=1 + if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : + for val in ${LDFLAGS}; do + if test "x$val" = "x$arg"; then : + pmix_append=0 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_clock_gettime+:} false; then : - break + done fi -done -if ${ac_cv_search_clock_gettime+:} false; then : - + if test "$pmix_append" = "1"; then : + if test -z "$LDFLAGS"; then : + LDFLAGS=$arg else - ac_cv_search_clock_gettime=no + LDFLAGS="$LDFLAGS $arg" fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5 -$as_echo "$ac_cv_search_clock_gettime" >&6; } -ac_res=$ac_cv_search_clock_gettime -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_have_clock_gettime=1 + done + + + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str + + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done -else - pmix_have_clock_gettime=0 fi -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_CLOCK_GETTIME $pmix_have_clock_gettime -_ACEOF + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in pmix_tmp pmix_append; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str + + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + eval $pmix_str + unset pmix_str + + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` + for arg in $pmix_libevent_LIBS; do + pmix_tmp=`echo $arg | cut -c1-2` + pmix_append=1 + if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : + for val in ${LIBS}; do + if test "x$val" = "x$arg"; then : + pmix_append=0 +fi + done +fi + if test "$pmix_append" = "1"; then : + if test -z "$LIBS"; then : + LIBS=$arg +else + LIBS="$LIBS $arg" +fi +fi + done + # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` @@ -33654,1378 +33546,1122 @@ - for ac_func in asprintf snprintf vasprintf vsnprintf strsignal socketpair strncpy_s usleep statfs statvfs getpeereid getpeerucred strnlen posix_fallocate tcgetpgrp setpgid ptsname openpty setenv -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - # On some hosts, htonl is a define, so the AC_CHECK_FUNC will get - # confused. On others, it's in the standard library, but stubbed with - # the magic glibc foo as not implemented. and on other systems, it's - # just not there. This covers all cases. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for htonl define" >&5 -$as_echo_n "checking for htonl define... " >&6; } -if ${pmix_cv_htonl_define+:} false; then : + if test $pmix_libevent_support -eq 1; then + # Ensure that this libevent has the symbol + # "evthread_set_lock_callbacks", which will only exist if + # libevent was configured with thread support. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for evthread_set_lock_callbacks in -levent_core" >&5 +$as_echo_n "checking for evthread_set_lock_callbacks in -levent_core... " >&6; } +if ${ac_cv_lib_event_core_evthread_set_lock_callbacks+:} false; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_check_lib_save_LIBS=$LIBS +LIBS="-levent_core $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #ifdef HAVE_SYS_TYPES_H - #include - #endif - #ifdef HAVE_NETINET_IN_H - #include - #endif - #ifdef HAVE_ARPA_INET_H - #include - #endif +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char evthread_set_lock_callbacks (); int main () { - - #ifndef ntohl - #error "ntohl not defined" - #endif - +return evthread_set_lock_callbacks (); ; return 0; } _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - pmix_cv_htonl_define=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_event_core_evthread_set_lock_callbacks=yes else - pmix_cv_htonl_define=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext + ac_cv_lib_event_core_evthread_set_lock_callbacks=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_cv_htonl_define" >&5 -$as_echo "$pmix_cv_htonl_define" >&6; } - ac_fn_c_check_func "$LINENO" "htonl" "ac_cv_func_htonl" -if test "x$ac_cv_func_htonl" = xyes; then : - pmix_have_htonl=yes -else - pmix_have_htonl=no +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi - - if test "$pmix_cv_htonl_define" = "yes" || test "$pmix_have_htonl" = "yes"; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_UNIX_BYTESWAP 1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_event_core_evthread_set_lock_callbacks" >&5 +$as_echo "$ac_cv_lib_event_core_evthread_set_lock_callbacks" >&6; } +if test "x$ac_cv_lib_event_core_evthread_set_lock_callbacks" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBEVENT_CORE 1 _ACEOF -fi - - # - # Make sure we can copy va_lists (need check declared, not linkable) - # + LIBS="-levent_core $LIBS" - ac_fn_c_check_decl "$LINENO" "va_copy" "ac_cv_have_decl_va_copy" "#include -" -if test "x$ac_cv_have_decl_va_copy" = xyes; then : - PMIX_HAVE_VA_COPY=1 else - PMIX_HAVE_VA_COPY=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: External libevent does not have thread support" >&5 +$as_echo "$as_me: WARNING: External libevent does not have thread support" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIx requires libevent to be compiled with" >&5 +$as_echo "$as_me: WARNING: PMIx requires libevent to be compiled with" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: thread support enabled" >&5 +$as_echo "$as_me: WARNING: thread support enabled" >&2;} + pmix_libevent_support=0 fi + fi + if test $pmix_libevent_support -eq 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for evthread_use_pthreads in -levent_pthreads" >&5 +$as_echo_n "checking for evthread_use_pthreads in -levent_pthreads... " >&6; } +if ${ac_cv_lib_event_pthreads_evthread_use_pthreads+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-levent_pthreads $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_VA_COPY $PMIX_HAVE_VA_COPY +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char evthread_use_pthreads (); +int +main () +{ +return evthread_use_pthreads (); + ; + return 0; +} _ACEOF - - - ac_fn_c_check_decl "$LINENO" "__va_copy" "ac_cv_have_decl___va_copy" "#include -" -if test "x$ac_cv_have_decl___va_copy" = xyes; then : - PMIX_HAVE_UNDERSCORE_VA_COPY=1 +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_event_pthreads_evthread_use_pthreads=yes else - PMIX_HAVE_UNDERSCORE_VA_COPY=0 + ac_cv_lib_event_pthreads_evthread_use_pthreads=no fi - - -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_UNDERSCORE_VA_COPY $PMIX_HAVE_UNDERSCORE_VA_COPY +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_event_pthreads_evthread_use_pthreads" >&5 +$as_echo "$ac_cv_lib_event_pthreads_evthread_use_pthreads" >&6; } +if test "x$ac_cv_lib_event_pthreads_evthread_use_pthreads" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBEVENT_PTHREADS 1 _ACEOF + LIBS="-levent_pthreads $LIBS" - ac_fn_c_check_decl "$LINENO" "__func__" "ac_cv_have_decl___func__" "$ac_includes_default" -if test "x$ac_cv_have_decl___func__" = xyes; then : - ac_have_decl=1 else - ac_have_decl=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: External libevent does not have thread support" >&5 +$as_echo "$as_me: WARNING: External libevent does not have thread support" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIx requires libevent to be compiled with" >&5 +$as_echo "$as_me: WARNING: PMIx requires libevent to be compiled with" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: thread support enabled" >&5 +$as_echo "$as_me: WARNING: thread support enabled" >&2;} + pmix_libevent_support=0 fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL___FUNC__ $ac_have_decl -_ACEOF + fi + fi + CPPFLAGS="$pmix_check_libevent_save_CPPFLAGS" + LDFLAGS="$pmix_check_libevent_save_LDFLAGS" + LIBS="$pmix_check_libevent_save_LIBS" - # checkpoint results - cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking will libevent support be built" >&5 +$as_echo_n "checking will libevent support be built... " >&6; } + if test $pmix_libevent_support -eq 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + # Set output variables + PMIX_EVENT_HEADER="" + PMIX_EVENT2_THREAD_HEADER="" +cat >>confdefs.h <<_ACEOF +#define PMIX_EVENT_HEADER $PMIX_EVENT_HEADER _ACEOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache + pmix_libevent_source=$pmix_event_dir + if test "$pmix_event_defaults" = "no"; then : - ################################## - # System-specific tests - ################################## - pmix_show_title "System-specific tests" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 + fi -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in pmix_tmp pmix_append; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -int -main () -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + eval $pmix_str + unset pmix_str - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes + for arg in $pmix_libevent_CPPFLAGS; do + pmix_tmp=`echo $arg | cut -c1-2` + pmix_append=1 + if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : + for val in ${PMIX_FINAL_CPPFLAGS}; do + if test "x$val" = "x$arg"; then : + pmix_append=0 +fi + done +fi + if test "$pmix_append" = "1"; then : + if test -z "$PMIX_FINAL_CPPFLAGS"; then : + PMIX_FINAL_CPPFLAGS=$arg else - ac_cv_c_bigendian=no + PMIX_FINAL_CPPFLAGS="$PMIX_FINAL_CPPFLAGS $arg" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done + + + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test $ac_cv_c_bigendian = unknown; then - # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done -int -main () -{ -#ifndef _BIG_ENDIAN - not big endian - #endif - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + + + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; -int -main () -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then - ac_cv_c_bigendian=yes - fi - if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi - fi -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in pmix_tmp pmix_append; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + eval $pmix_str + unset pmix_str + + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` + + + for arg in $pmix_libevent_LDFLAGS; do + pmix_tmp=`echo $arg | cut -c1-2` + pmix_append=1 + if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : + for val in ${PMIX_FINAL_LDFLAGS}; do + if test "x$val" = "x$arg"; then : + pmix_append=0 +fi + done +fi + if test "$pmix_append" = "1"; then : + if test -z "$PMIX_FINAL_LDFLAGS"; then : + PMIX_FINAL_LDFLAGS=$arg else - ac_cv_c_bigendian=yes + PMIX_FINAL_LDFLAGS="$PMIX_FINAL_LDFLAGS $arg" fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext fi + done - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) -$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - ;; #( - *) - as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done -# Check whether --with-broken-qsort was given. -if test "${with_broken_qsort+set}" = set; then : - withval=$with_broken_qsort; fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken qsort" >&5 -$as_echo_n "checking for broken qsort... " >&6; } - - if test "$with_broken_qsort" = "yes"; then - result="yes" - define_result=1 - else - result="no" - define_result=0 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result" >&5 -$as_echo "$result" >&6; } -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_BROKEN_QSORT $define_result -_ACEOF + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 + fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in pmix_tmp pmix_append; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str - # - # Check out what thread support we have - # + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -# -# Arguments: none -# -# Dependencies: None -# -# Modifies: -# none - see called tests -# -# configure threads -# + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + eval $pmix_str + unset pmix_str -# -# Check we have POSIX threads -# + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` + for arg in $pmix_libevent_LIBS; do + pmix_tmp=`echo $arg | cut -c1-2` + pmix_append=1 + if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : + for val in ${PMIX_FINAL_LIBS}; do + if test "x$val" = "x$arg"; then : + pmix_append=0 +fi + done +fi + if test "$pmix_append" = "1"; then : + if test -z "$PMIX_FINAL_LIBS"; then : + PMIX_FINAL_LIBS=$arg +else + PMIX_FINAL_LIBS="$PMIX_FINAL_LIBS $arg" +fi +fi + done -pmix_pthread_c_success=0 -orig_CFLAGS="$CFLAGS" -orig_CPPFLAGS="$CPPFLAGS" -orig_LDFLAGS="$LDFLAGS" -orig_LIBS="$LIBS" + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -PTHREAD_CFLAGS= -PTHREAD_CPPFLAGS= -PTHREAD_LDFLAGS= -PTHREAD_LIBS= - -# Try with the basics, mam. - -# BEGIN: PMIX_INTL_POSIX_THREADS_PLAIN -# -# Check if can compile without any special flags -# we throw -D_REENTRANT or -D_THREAD_SAFE in here, just in -# case. Some systems (OS X, for example) generally don't need -# the defines, but then will on one system header here or there -# why take chances? -# + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done -# -# C compiler -# -if test "$pmix_pthread_c_success" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if C compiler and POSIX threads work as is" >&5 -$as_echo_n "checking if C compiler and POSIX threads work as is... " >&6; } - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi -# BEGIN: PMIX_INTL_PTHREAD_TRY_LINK -# -# Make sure that we can run a small application in C or C++, which -# ever is the current language. Do make sure that C or C++ is the -# current language. -# -# As long as this is not being run.... -# pthread_t may be anything from an int to a struct -- init with self-tid. -# - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +cat >>confdefs.h <<_ACEOF +#define PMIX_HAVE_LIBEVENT $pmix_libevent_support +_ACEOF -#include -int i = 3; -pthread_t me, newthread; -void cleanup_routine(void *foo); -void *thread_main(void *foo); + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -void cleanup_routine(void *foo) { i = 4; } -void *thread_main(void *foo) { i = 2; return (void*) &i; } + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str -int main(int argc, char* argv[]) -{ - pthread_attr_t attr; + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done - me = pthread_self(); - pthread_atfork(NULL, NULL, NULL); - pthread_attr_init(&attr); - pthread_cleanup_push(cleanup_routine, 0); - pthread_create(&newthread, &attr, thread_main, 0); - pthread_join(newthread, 0); - pthread_cleanup_pop(0); - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_pthread_c_success=1 -else - pmix_pthread_c_success=0 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -# END: PMIX_INTL_PTHREAD_TRY_LINK - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - if test "$pmix_pthread_c_success" = "1"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi fi + if test $pmix_libevent_support -eq 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking libevent header" >&5 +$as_echo_n "checking libevent header... " >&6; } -# End: PMIX_INTL_POSIX_THREADS_PLAIN - +cat >>confdefs.h <<_ACEOF +#define PMIX_EVENT_HEADER $PMIX_EVENT_HEADER +_ACEOF -# Try the super-special compiler flags. + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PMIX_EVENT_HEADER" >&5 +$as_echo "$PMIX_EVENT_HEADER" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking libevent2/thread header" >&5 +$as_echo_n "checking libevent2/thread header... " >&6; } -# Begin: PMIX_INTL_POSIX_THREADS_SPECIAL_FLAGS -# -# If above didn't work, try some super-special compiler flags -# that get evaluated to the "right" things. -# -# -Kthread: -# -kthread: FreeBSD kernel threads -# -pthread: Modern GCC (most all platforms) -# -pthreads: GCC on solaris -# -mthreads: -# -mt: Solaris native compilers / HP-UX aCC -# -# Put -mt before -mthreads because HP-UX aCC will properly compile -# with -mthreads (reading as -mt), but emit a warning about unknown -# flags hreads. Stupid compilers. +cat >>confdefs.h <<_ACEOF +#define PMIX_EVENT2_THREAD_HEADER $PMIX_EVENT2_THREAD_HEADER +_ACEOF -case "${host_cpu}-${host_os}" in - *solaris*) - pflags="-pthread -pthreads -mt" - ;; - *) - pflags="-Kthread -kthread -pthread -pthreads -mt -mthreads" - ;; -esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PMIX_EVENT2_THREAD_HEADER" >&5 +$as_echo "$PMIX_EVENT2_THREAD_HEADER" >&6; } -# -# C compiler -# -if test "$pmix_pthread_c_success" = "0"; then - for pf in $pflags; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if C compiler and POSIX threads work with $pf" >&5 -$as_echo_n "checking if C compiler and POSIX threads work with $pf... " >&6; } - CFLAGS="$orig_CFLAGS $pf" - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -# BEGIN: PMIX_INTL_PTHREAD_TRY_LINK -# -# Make sure that we can run a small application in C or C++, which -# ever is the current language. Do make sure that C or C++ is the -# current language. -# -# As long as this is not being run.... -# pthread_t may be anything from an int to a struct -- init with self-tid. -# - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 + fi -#include + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in pmix_summary_section pmix_summary_line pmix_summary_section_current; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str -int i = 3; -pthread_t me, newthread; + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -void cleanup_routine(void *foo); -void *thread_main(void *foo); + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_summary_section pmix_summary_line pmix_summary_section_current\"" + eval $pmix_str + unset pmix_str -void cleanup_routine(void *foo) { i = 4; } -void *thread_main(void *foo) { i = 2; return (void*) &i; } + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` -int main(int argc, char* argv[]) -{ - pthread_attr_t attr; - me = pthread_self(); - pthread_atfork(NULL, NULL, NULL); - pthread_attr_init(&attr); - pthread_cleanup_push(cleanup_routine, 0); - pthread_create(&newthread, &attr, thread_main, 0); - pthread_join(newthread, 0); - pthread_cleanup_pop(0); + pmix_summary_section=$(echo External Packages | tr ' ' '_') + pmix_summary_line="Libevent: yes ($pmix_libevent_source)" + pmix_summary_section_current=$(eval echo \$pmix_summary_values_$pmix_summary_section) - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_pthread_c_success=1 -else - pmix_pthread_c_success=0 -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -# END: PMIX_INTL_PTHREAD_TRY_LINK + if test -z "$pmix_summary_section_current" ; then + if test -z "$pmix_summary_sections" ; then + pmix_summary_sections=$pmix_summary_section + else + pmix_summary_sections="$pmix_summary_sections $pmix_summary_section" + fi + eval pmix_summary_values_$pmix_summary_section=\"$pmix_summary_line\" + else + eval pmix_summary_values_$pmix_summary_section=\"$pmix_summary_section_current,$pmix_summary_line\" + fi - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - if test "$pmix_pthread_c_success" = "1"; then - PTHREAD_CFLAGS="$pf" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - break - else - PTHREAD_CFLAGS= - CFLAGS="$orig_CFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done -fi + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str -# End: PMIX_INTL_POSIX_THREADS_SPECIAL_FLAGS + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done -# Try the normal linking methods (that's no fun) + fi -# Begin: PMIX_INTL_POSIX_THREADS_LIBS -# -# if we can't find a super-special compiler flags, try some libraries. -# we throw -D_REENTRANT or -D_THREAD_SAFE in here, just in case. Some -# systems (OS X, for example) generally don't need the defines, but -# then will on one system header here or there why take chances? -# -# libpthreads: AIX - must check before libpthread -# liblthread: LinuxThreads on FreeBSD -# libpthread: The usual place (like we can define usual!) -plibs="-lpthreads -llthread -lpthread" + if test $pmix_libevent_support -eq 1 && test $pmix_libev_support -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Both libevent and libev support have been specified." >&5 +$as_echo "$as_me: WARNING: Both libevent and libev support have been specified." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Only one can be configured against at a time. Please" >&5 +$as_echo "$as_me: WARNING: Only one can be configured against at a time. Please" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: remove one from the configure command line." >&5 +$as_echo "$as_me: WARNING: remove one from the configure command line." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +fi -# -# C compiler -# -if test "$pmix_pthread_c_success" = "0"; then - for pl in $plibs; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if C compiler and POSIX threads work with $pl" >&5 -$as_echo_n "checking if C compiler and POSIX threads work with $pl... " >&6; } - case "${host_cpu}-${host-_os}" in - *-aix* | *-freebsd*) - if test "`echo $CPPFLAGS | $GREP 'D_THREAD_SAFE'`" = ""; then - PTHREAD_CPPFLAGS="-D_THREAD_SAFE" - CPPFLAGS="$CPPFLAGS $PTHREAD_CPPFLAGS" - fi - ;; - *) - if test "`echo $CPPFLAGS | $GREP 'D_REENTRANT'`" = ""; then - PTHREAD_CPPFLAGS="-D_REENTRANT" - CPPFLAGS="$CPPFLAGS $PTHREAD_CPPFLAGS" - fi - ;; - esac - LIBS="$orig_LIBS $pl" - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test $pmix_libevent_support -eq 0 && test $pmix_libev_support -eq 0; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Either libevent or libev support is required, but neither" >&5 +$as_echo "$as_me: WARNING: Either libevent or libev support is required, but neither" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: was found. Please use the configure options to point us" >&5 +$as_echo "$as_me: WARNING: was found. Please use the configure options to point us" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: to where we can find one or the other library" >&5 +$as_echo "$as_me: WARNING: to where we can find one or the other library" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +fi -# BEGIN: PMIX_INTL_PTHREAD_TRY_LINK -# -# Make sure that we can run a small application in C or C++, which -# ever is the current language. Do make sure that C or C++ is the -# current language. -# -# As long as this is not being run.... -# pthread_t may be anything from an int to a struct -- init with self-tid. -# - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + ################################## + # HWLOC + ################################## + pmix_show_title "HWLOC" -#include -int i = 3; -pthread_t me, newthread; -void cleanup_routine(void *foo); -void *thread_main(void *foo); +# Check whether --with-hwloc-header was given. +if test "${with_hwloc_header+set}" = set; then : + withval=$with_hwloc_header; +fi -void cleanup_routine(void *foo) { i = 4; } -void *thread_main(void *foo) { i = 2; return (void*) &i; } -int main(int argc, char* argv[]) -{ - pthread_attr_t attr; + if test "$pmix_mode" = "embedded"; then : - me = pthread_self(); - pthread_atfork(NULL, NULL, NULL); - pthread_attr_init(&attr); - pthread_cleanup_push(cleanup_routine, 0); - pthread_create(&newthread, &attr, thread_main, 0); - pthread_join(newthread, 0); - pthread_cleanup_pop(0); + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for hwloc" >&5 +$as_echo_n "checking for hwloc... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: assumed available (embedded mode)" >&5 +$as_echo "assumed available (embedded mode)" >&6; } - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pmix_pthread_c_success=1 + if test -z "$with_hwloc_header" || test "$with_hwloc_header" = "yes"; then : + PMIX_HWLOC_HEADER="" else - pmix_pthread_c_success=0 + PMIX_HWLOC_HEADER="$with_hwloc_header" fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -# END: PMIX_INTL_PTHREAD_TRY_LINK - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + pmix_hwloc_support=1 + pmix_hwloc_source=embedded + pmix_hwloc_support_will_build=yes - if test "$pmix_pthread_c_success" = "1"; then - PTHREAD_LIBS="$pl" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - PTHREAD_CPPFLAGS= - CPPFLAGS="$orig_CPPFLAGS" - LIBS="$orig_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else + + + + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 fi - done -fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in pmix_hwloc_dir pmix_hwloc_libdir pmix_hwloc_standard_lib_location pmix_hwloc_standard_header_location pmix_check_hwloc_save_CPPFLAGS pmix_check_hwloc_save_LDFLAGS pmix_check_hwloc_save_LIBS; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str -# End: PMIX_INTL_POSIX_THREADS_LIBS + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_hwloc_dir pmix_hwloc_libdir pmix_hwloc_standard_lib_location pmix_hwloc_standard_header_location pmix_check_hwloc_save_CPPFLAGS pmix_check_hwloc_save_LDFLAGS pmix_check_hwloc_save_LIBS\"" + eval $pmix_str + unset pmix_str -# -# check to see if we can set error checking mutexes -# + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` -# LinuxThreads -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_MUTEX_ERRORCHECK_NP" >&5 -$as_echo_n "checking for PTHREAD_MUTEX_ERRORCHECK_NP... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -pthread_mutexattr_settype(NULL, PTHREAD_MUTEX_ERRORCHECK_NP); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - result="yes" defval=1 -else - result="no" defval=0 + + +# Check whether --with-hwloc was given. +if test "${with_hwloc+set}" = set; then : + withval=$with_hwloc; fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $result" >&5 -$as_echo "$result" >&6; } -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_PTHREAD_MUTEX_ERRORCHECK_NP $defval -_ACEOF -# Mac OS X -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_MUTEX_ERRORCHECK" >&5 -$as_echo_n "checking for PTHREAD_MUTEX_ERRORCHECK... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -pthread_mutexattr_settype(NULL, PTHREAD_MUTEX_ERRORCHECK); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - result="yes" defval=1 -else - result="no" defval=0 +# Check whether --with-hwloc-libdir was given. +if test "${with_hwloc_libdir+set}" = set; then : + withval=$with_hwloc_libdir; fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $result" >&5 -$as_echo "$result" >&6; } -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_PTHREAD_MUTEX_ERRORCHECK $defval -_ACEOF + pmix_hwloc_support=0 + pmix_check_hwloc_save_CPPFLAGS="$CPPFLAGS" + pmix_check_hwloc_save_LDFLAGS="$LDFLAGS" + pmix_check_hwloc_save_LIBS="$LIBS" + pmix_hwloc_standard_header_location=yes + pmix_hwloc_standard_lib_location=yes -CFLAGS="$orig_CFLAGS" -CPPFLAGS="$orig_CPPFLAGS" -LDFLAGS="$orig_LDFLAGS" -LIBS="$orig_LIBS" + if test "$with_hwloc" = "internal" || test "$with_hwloc" = "external"; then : + with_hwloc= +fi -if test "$pmix_pthread_c_success" = "1"; then - internal_useless=1 - HAVE_POSIX_THREADS=1 -else - internal_useless=1 - HAVE_POSIX_THREADS=0 -fi - -unset pmix_pthread_c_success -unset internal_useless - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working POSIX threads package" >&5 -$as_echo_n "checking for working POSIX threads package... " >&6; } -if test "$HAVE_POSIX_THREADS" = "1" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + if test "$with_hwloc" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for hwloc in" >&5 +$as_echo_n "checking for hwloc in... " >&6; } + if test ! -z "$with_hwloc" && test "$with_hwloc" != "yes"; then + pmix_hwloc_dir=$with_hwloc/include + pmix_hwloc_standard_header_location=no + pmix_hwloc_standard_lib_location=no + if test -z "$with_hwloc_libdir" || test "$with_hwloc_libdir" = "yes"; then : + if test -d $with_hwloc/lib; then + pmix_hwloc_libdir=$with_hwloc/lib + elif test -d $with_hwloc/lib64; then + pmix_hwloc_libdir=$with_hwloc/lib64 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Could not find $with_hwloc/lib or $with_hwloc/lib64" >&5 +$as_echo "Could not find $with_hwloc/lib or $with_hwloc/lib64" >&6; } + as_fn_error $? "Can not continue" "$LINENO" 5 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_hwloc_dir and $pmix_hwloc_libdir" >&5 +$as_echo "$pmix_hwloc_dir and $pmix_hwloc_libdir" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_hwloc_libdir" >&5 +$as_echo "$with_hwloc_libdir" >&6; } fi -export HAVE_POSIX_THREADS - -# -# Ask what threading we want (allow posix right now) -# - -if test "$HAVE_POSIX_THREADS" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"*** POSIX threads are not\"" >&5 -$as_echo "$as_me: WARNING: \"*** POSIX threads are not\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"*** available on your system \"" >&5 -$as_echo "$as_me: WARNING: \"*** available on your system \"" >&2;} - as_fn_error $? "\"*** Can not continue\"" "$LINENO" 5 + else + pmix_hwloc_dir=/usr/include + if test -d /usr/lib; then + pmix_hwloc_libdir=/usr/lib + elif test -d /usr/lib64; then + pmix_hwloc_libdir=/usr/lib64 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find /usr/lib or /usr/lib64 - you may" >&5 +$as_echo "$as_me: WARNING: Could not find /usr/lib or /usr/lib64 - you may" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: need to specify --with-hwloc_libdir=" >&5 +$as_echo "$as_me: WARNING: need to specify --with-hwloc_libdir=" >&2;} + as_fn_error $? "Can not continue" "$LINENO" 5 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 +$as_echo "(default search paths)" >&6; } + pmix_hwloc_standard_header_location=yes + pmix_hwloc_standard_lib_location=yes + fi + if test ! -z "$with_hwloc_libdir" && test "$with_hwloc_libdir" != "yes"; then : + pmix_hwloc_libdir="$with_hwloc_libdir" + pmix_hwloc_standard_lib_location=no fi -THREAD_CFLAGS="$PTHREAD_CFLAGS" -THREAD_CPPFLAGS="$PTHREAD_CPPFLAGS" -THREAD_LDFLAGS="$PTHREAD_LDFLAGS" -THREAD_LIBS="$PTHREAD_LIBS" - - -# -# Arguments: none -# -# Dependencies: None -# -# Sets: -# PMIX_THREADS_HAVE_DIFFERENT_PIDS (variable) -# -# Test for Linux-like threads in the system. PMIX does not support -# systems with different PIDs for threads in the same process, so error -# out if we detect that case. -# - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if threads have different pids (pthreads on linux)" >&5 -$as_echo_n "checking if threads have different pids (pthreads on linux)... " >&6; } + pmix_check_package_pmix_hwloc_save_CPPFLAGS="$CPPFLAGS" + pmix_check_package_pmix_hwloc_save_LDFLAGS="$LDFLAGS" + pmix_check_package_pmix_hwloc_save_LIBS="$LIBS" + pmix_check_package_pmix_hwloc_orig_CPPFLAGS="$pmix_hwloc_CPPFLAGS" + pmix_check_package_pmix_hwloc_orig_LDFLAGS="$pmix_hwloc_LDFLAGS" + pmix_check_package_pmix_hwloc_orig_LIBS="$pmix_hwloc_LIBS" - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in tpids_CFLAGS_save tpids_CPPFLAGS_save tpids_LDFLAGS_save tpids_LIBS_save tpids_MSG; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"tpids_CFLAGS_save tpids_CPPFLAGS_save tpids_LDFLAGS_save tpids_LIBS_save tpids_MSG\"" - eval $pmix_str - unset pmix_str + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_hwloc_h + pmix_check_package_header_happy="no" - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + # get rid of the trailing slash(es) + hdir_prefix=$(echo $pmix_hwloc_dir | sed -e 'sX/*$XXg') -tpids_CFLAGS_save="$CFLAGS" -CFLAGS="$CFLAGS $THREAD_CFLAGS" -tpids_CPPFLAGS_save="$CPPFLAGS" -CPPFLAGS="$CPPFLAGS $THREAD_CPPFLAGS" -tpids_LDFLAGS_save="$LDFLAGS" -LDFLAGS="$LDFLAGS $THREAD_LDFLAGS" -tpids_LIBS_save="$LIBS" -LIBS="$LIBS $THREAD_LIBS" -if test "$cross_compiling" = yes; then : + if test "$hdir_prefix" = "" || \ + test "$hdir_prefix" = "/usr" || \ + test "$hdir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in hwloc.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "hwloc.h" "ac_cv_header_hwloc_h" "$ac_includes_default" +if test "x$ac_cv_header_hwloc_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_HWLOC_H 1 +_ACEOF + pmix_check_package_header_happy="yes" +fi - # If we're cross compiling, we can't do another AC_* function here beause - # it we haven't displayed the result from the last one yet. So defer - # another test until below. - PMIX_THREADS_HAVE_DIFFERENT_PIDS= - MSG="cross compiling (need another test)" -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include +done -void *checkpid(void *arg); -int main() { - pthread_t thr; - int pid, *retval; - pid = getpid(); - pthread_create(&thr, NULL, checkpid, &pid); - pthread_join(thr, (void **) &retval); - exit(*retval); -} + if test "$pmix_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_hwloc_h +fi +fi -static int ret; -void *checkpid(void *arg) { - int ppid = *((int *) arg); - if (ppid == getpid()) - ret = 0; - else - ret = 1; - pthread_exit((void *) &ret); -} + if test "$pmix_check_package_header_happy" = "no"; then : + if test "$hdir_prefix" != ""; then : + pmix_hwloc_CPPFLAGS="$pmix_hwloc_CPPFLAGS -I$hdir_prefix" + CPPFLAGS="$CPPFLAGS -I$hdir_prefix" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix" >&5 +$as_echo "looking for header in $hdir_prefix" >&6; } + for ac_header in hwloc.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "hwloc.h" "ac_cv_header_hwloc_h" "$ac_includes_default" +if test "x$ac_cv_header_hwloc_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_HWLOC_H 1 _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - tpids_MSG=no PMIX_THREADS_HAVE_DIFFERENT_PIDS=0 -else - tpids_MSG=yes PMIX_THREADS_HAVE_DIFFERENT_PIDS=1 -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + pmix_check_package_header_happy="yes" fi +done -CFLAGS="$tpids_CFLAGS_save" -CPPFLAGS="$tpids_CPPFLAGS_save" -LDFLAGS="$tpids_LDFLAGS_save" -LIBS="$tpids_LIBS_save" + if test "$pmix_check_package_header_happy" = "no"; then : + unset ac_cv_header_hwloc_h + pmix_hwloc_CPPFLAGS="$pmix_hwloc_CPPFLAGS -I$hdir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$hdir_prefix/include" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix/include" >&5 +$as_echo "looking for header in $hdir_prefix/include" >&6; } + for ac_header in hwloc.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "hwloc.h" "ac_cv_header_hwloc_h" "$ac_includes_default" +if test "x$ac_cv_header_hwloc_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_HWLOC_H 1 +_ACEOF + pmix_check_package_header_happy="yes" +fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $tpids_MSG" >&5 -$as_echo "$tpids_MSG" >&6; } +done -if test "x$PMIX_THREADS_HAVE_DIFFERENT_PIDS" = "x"; then : - # If we are cross-compiling, look for the symbol - # __linuxthreads_create_event, which seems to only exist in the - # Linux Threads-based pthreads implementation (i.e., the one - # that has different PIDs for each thread). We *could* switch - # on $host here and only test *linux* hosts, but this test is - # pretty unique, so why bother? Note that AC_CHECK_FUNC works - # properly in cross-compiling environments in recent-enough - # versions of Autoconf (which is one of the reasons we mandate - # recent versions in autogen!). - ac_fn_c_check_func "$LINENO" "__linuxthreads_create_event" "ac_cv_func___linuxthreads_create_event" -if test "x$ac_cv_func___linuxthreads_create_event" = xyes; then : - PMIX_THREADS_HAVE_DIFFERENT_PIDS=1 fi - fi - -if test "$PMIX_THREADS_HAVE_DIFFERENT_PIDS" = "1"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This version of PMIx only supports environments where" >&5 -$as_echo "$as_me: WARNING: This version of PMIx only supports environments where" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: threads have the same PID" >&5 -$as_echo "$as_me: WARNING: threads have the same PID" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi -# -# if pthreads is not available, then the system does not have an insane threads -# model -# - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$pmix_check_package_header_happy" = "yes"; then : - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + # see comment above + unset ac_cv_lib_hwloc_hwloc_topology_init + pmix_check_package_lib_happy="no" + # get rid of the trailing slash(es) + libdir_prefix=$(echo $pmix_hwloc_libdir | sed -e 'sX/*$XXg') + if test "$libdir_prefix" != ""; then : + # libdir was specified - search only there + pmix_hwloc_LDFLAGS="$pmix_hwloc_LDFLAGS -L$libdir_prefix" + LDFLAGS="$LDFLAGS -L$libdir_prefix" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hwloc_topology_init" >&5 +$as_echo_n "checking for library containing hwloc_topology_init... " >&6; } +if ${ac_cv_search_hwloc_topology_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -cat >>confdefs.h <<_ACEOF -#define PMIX_ENABLE_MULTI_THREADS 1 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char hwloc_topology_init (); +int +main () +{ +return hwloc_topology_init (); + ; + return 0; +} _ACEOF +for ac_lib in '' hwloc; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lhwloc $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_hwloc_topology_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_hwloc_topology_init+:} false; then : + break +fi +done +if ${ac_cv_search_hwloc_topology_init+:} false; then : - - - - CFLAGS="$CFLAGS $THREAD_CFLAGS" - CPPFLAGS="$CPPFLAGS $THREAD_CPPFLAGS" - LDFLAGS="$LDFLAGS $THREAD_LDFLAGS" - LIBS="$LIBS $THREAD_LIBS" - - # - # What is the local equivalent of "ln -s" - # - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } + ac_cv_search_hwloc_topology_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hwloc_topology_init" >&5 +$as_echo "$ac_cv_search_hwloc_topology_init" >&6; } +ac_res=$ac_cv_search_hwloc_topology_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" fi + if test "$pmix_check_package_lib_happy" = "no"; then : + LDFLAGS="$pmix_check_package_pmix_hwloc_save_LDFLAGS" + pmix_hwloc_LDFLAGS="$pmix_check_package_pmix_hwloc_orig_LDFLAGS" + unset ac_cv_lib_hwloc_hwloc_topology_init +fi +else + # libdir was not specified - go through search path + # get rid of the trailing slash(es) + libdir_prefix=$(echo $pmix_hwloc_dir | sed -e 'sX/*$XXg') - # Check for some common system programs that we need - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : + # first try standard locations as otherwise our + # searches with libdir_prefix locations might come + # back positive and unnecessarily add an LDFLAG + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hwloc_topology_init" >&5 +$as_echo_n "checking for library containing hwloc_topology_init... " >&6; } +if ${ac_cv_search_hwloc_topology_init+:} false; then : $as_echo_n "(cached) " >&6 else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char hwloc_topology_init (); +int +main () +{ +return hwloc_topology_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' hwloc; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lhwloc $ac_func_search_save_LIBS" fi -else - ac_cv_path_GREP=$GREP + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_hwloc_topology_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_hwloc_topology_init+:} false; then : + break fi +done +if ${ac_cv_search_hwloc_topology_init+:} false; then : +else + ac_cv_search_hwloc_topology_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hwloc_topology_init" >&5 +$as_echo "$ac_cv_search_hwloc_topology_init" >&6; } +ac_res=$ac_cv_search_hwloc_topology_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pmix_hwloc_save_LDFLAGS" + pmix_hwloc_LDFLAGS="$pmix_check_package_pmix_hwloc_orig_LDFLAGS" + unset ac_cv_lib_hwloc_hwloc_topology_init +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : + if test "$pmix_check_package_lib_happy" = "no"; then : + # if we didn't find it, check the libdir_prefix/lib64 directory + if test "$libdir_prefix" != "" && \ + test "$libdir_prefix" != "/usr" && \ + test "$libdir_prefix" != "/usr/local"; then : + pmix_hwloc_LDFLAGS="$pmix_hwloc_LDFLAGS -L$libdir_prefix/lib64" + LDFLAGS="$LDFLAGS -L$libdir_prefix/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib64" >&5 +$as_echo "looking for library in $libdir_prefix/lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hwloc_topology_init" >&5 +$as_echo_n "checking for library containing hwloc_topology_init... " >&6; } +if ${ac_cv_search_hwloc_topology_init+:} false; then : $as_echo_n "(cached) " >&6 else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char hwloc_topology_init (); +int +main () +{ +return hwloc_topology_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' hwloc; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lhwloc $ac_func_search_save_LIBS" fi -else - ac_cv_path_EGREP=$EGREP + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_hwloc_topology_init=$ac_res fi - - fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_hwloc_topology_init+:} false; then : + break fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - - - ################################## - # Visibility - ################################## - - # Check the visibility declspec at the end to avoid problem with - # the previous tests that are not necessarily prepared for - # the visibility feature. - pmix_show_title "Symbol visibility feature" - - - +done +if ${ac_cv_search_hwloc_topology_init+:} false; then : - # Check if the compiler has support for visibility, like some - # versions of gcc, icc Sun Studio cc. - # Check whether --enable-visibility was given. -if test "${enable_visibility+set}" = set; then : - enableval=$enable_visibility; +else + ac_cv_search_hwloc_topology_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hwloc_topology_init" >&5 +$as_echo "$ac_cv_search_hwloc_topology_init" >&6; } +ac_res=$ac_cv_search_hwloc_topology_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" fi + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pmix_hwloc_save_LDFLAGS" + pmix_hwloc_LDFLAGS="$pmix_check_package_pmix_hwloc_orig_LDFLAGS" + unset ac_cv_lib_hwloc_hwloc_topology_init +fi +fi +fi - WANT_VISIBILITY=0 - pmix_msg="whether to enable symbol visibility" - - if test "$enable_visibility" = "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking $pmix_msg" >&5 -$as_echo_n "checking $pmix_msg... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (disabled)" >&5 -$as_echo "no (disabled)" >&6; } - else - CFLAGS_orig=$CFLAGS - - pmix_add= - case "$pmix_c_vendor" in - sun) - # Check using Sun Studio -xldscope=hidden flag - pmix_add=-xldscope=hidden - CFLAGS="$PMIX_CFLAGS_BEFORE_PICKY $pmix_add -errwarn=%all" - ;; - - *) - # Check using -fvisibility=hidden - pmix_add=-fvisibility=hidden - CFLAGS="$PMIX_CFLAGS_BEFORE_PICKY $pmix_add -Werror" - ;; - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $pmix_add" >&5 -$as_echo_n "checking if $CC supports $pmix_add... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "$pmix_check_package_lib_happy" = "no"; then : + # if we still haven't found it, check the libdir_prefix/lib directory + if test "$libdir_prefix" != "" && \ + test "$libdir_prefix" != "/usr" && \ + test "$libdir_prefix" != "/usr/local"; then : + pmix_hwloc_LDFLAGS="$pmix_hwloc_LDFLAGS -L$libdir_prefix/lib" + LDFLAGS="$LDFLAGS -L$libdir_prefix/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib" >&5 +$as_echo "looking for library in $libdir_prefix/lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hwloc_topology_init" >&5 +$as_echo_n "checking for library containing hwloc_topology_init... " >&6; } +if ${ac_cv_search_hwloc_topology_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include - __attribute__((visibility("default"))) int foo; - +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char hwloc_topology_init (); int main () { -fprintf(stderr, "Hello, world\n"); +return hwloc_topology_init (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - if test -s conftest.err; then : - $GREP -iq visibility conftest.err - # If we find "visibility" in the stderr, then - # assume it doesn't work - if test "$?" = "0"; then : - pmix_add= +for ac_lib in '' hwloc; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lhwloc $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_hwloc_topology_init=$ac_res fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_hwloc_topology_init+:} false; then : + break fi +done +if ${ac_cv_search_hwloc_topology_init+:} false; then : else - pmix_add= + ac_cv_search_hwloc_topology_init=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$pmix_add" = ""; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hwloc_topology_init" >&5 +$as_echo "$ac_cv_search_hwloc_topology_init" >&6; } +ac_res=$ac_cv_search_hwloc_topology_init +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + pmix_check_package_lib_happy="no" fi - CFLAGS=$CFLAGS_orig - PMIX_VISIBILITY_CFLAGS=$pmix_add + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pmix_hwloc_save_LDFLAGS" + pmix_hwloc_LDFLAGS="$pmix_check_package_pmix_hwloc_orig_LDFLAGS" + unset ac_cv_lib_hwloc_hwloc_topology_init +fi +fi +fi - if test "$pmix_add" != "" ; then - WANT_VISIBILITY=1 - CFLAGS="$CFLAGS $PMIX_VISIBILITY_CFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking $pmix_msg" >&5 -$as_echo_n "checking $pmix_msg... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (via $pmix_add)" >&5 -$as_echo "yes (via $pmix_add)" >&6; } - elif test "$enable_visibility" = "yes"; then - as_fn_error $? "Symbol visibility support requested but compiler does not seem to support it. Aborting" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking $pmix_msg" >&5 -$as_echo_n "checking $pmix_msg... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (unsupported)" >&5 -$as_echo "no (unsupported)" >&6; } - fi - unset pmix_add - fi +fi -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_VISIBILITY $WANT_VISIBILITY -_ACEOF + if test "$pmix_check_package_lib_happy" = "yes"; then : + pmix_hwloc_LIBS="-lhwloc -lhwloc" + pmix_check_package_happy="yes" +else + pmix_check_package_happy="no" +fi + if test "$pmix_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_hwloc_topology_init" != "no" && + test "$ac_cv_search_hwloc_topology_init" != "none required"; then : + pmix_hwloc_LIBS="$ac_cv_search_hwloc_topology_init -lhwloc" +else + pmix_hwloc_LIBS="-lhwloc" +fi + pmix_check_package_happy="yes" +else + pmix_check_package_happy="no" +fi + - if test "$WANT_VISIBILITY" = "1"; then - WANT_HIDDEN_TRUE= - WANT_HIDDEN_FALSE='#' else - WANT_HIDDEN_TRUE='#' - WANT_HIDDEN_FALSE= + pmix_check_package_happy="no" fi + unset pmix_check_package_header_happy + - ################################## - # Libevent - ################################## - pmix_show_title "Libevent" + if test "$pmix_check_package_happy" = "yes"; then : + pmix_hwloc_support=1 +else + pmix_hwloc_CPPFLAGS="$pmix_check_package_pmix_hwloc_orig_CPPFLAGS" + pmix_hwloc_LDFLAGS="$pmix_check_package_pmix_hwloc_orig_LDFLAGS" + pmix_hwloc_LIBS="$pmix_check_package_pmix_hwloc_orig_LIBS" + pmix_hwloc_support=0 +fi + + CPPFLAGS="$pmix_check_package_pmix_hwloc_save_CPPFLAGS" + LDFLAGS="$pmix_check_package_pmix_hwloc_save_LDFLAGS" + LIBS="$pmix_check_package_pmix_hwloc_save_LIBS" + if test "$pmix_hwloc_standard_header_location" != "yes"; then : + # Is the private index set? If not, set it. @@ -35037,7 +34673,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_libev_dir pmix_libev_libdir pmix_libev_standard_header_location pmix_libev_standard_lib_location; do + for pmix_var in pmix_tmp pmix_append; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -35056,7 +34692,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_libev_dir pmix_libev_libdir pmix_libev_standard_header_location pmix_libev_standard_lib_location\"" + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" eval $pmix_str unset pmix_str @@ -35064,589 +34700,265 @@ pmix_scope_index=`expr $pmix_scope_index + 1` - -# Check whether --with-libev was given. -if test "${with_libev+set}" = set; then : - withval=$with_libev; + for arg in $pmix_hwloc_CPPFLAGS; do + pmix_tmp=`echo $arg | cut -c1-2` + pmix_append=1 + if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : + for val in ${CPPFLAGS}; do + if test "x$val" = "x$arg"; then : + pmix_append=0 fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-libev value" >&5 -$as_echo_n "checking --with-libev value... " >&6; } - if test "$with_libev" = "yes" || test "$with_libev" = "no" || test "x$with_libev" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified)" >&5 -$as_echo "simple ok (unspecified)" >&6; } -else - if test ! -d "$with_libev"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_libev not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_libev not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_libev/include/event.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_libev/include/event.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_libev/include/event.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + done +fi + if test "$pmix_append" = "1"; then : + if test -z "$CPPFLAGS"; then : + CPPFLAGS=$arg else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_libev)" >&5 -$as_echo "sanity check ok ($with_libev)" >&6; } - + CPPFLAGS="$CPPFLAGS $arg" fi - - fi + done -fi + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str + + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done -# Check whether --with-libev-libdir was given. -if test "${with_libev_libdir+set}" = set; then : - withval=$with_libev_libdir; fi + if test "$pmix_hwloc_standard_lib_location" != "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-libev-libdir value" >&5 -$as_echo_n "checking --with-libev-libdir value... " >&6; } - if test "$with_livev_libdir" = "yes" || test "$with_livev_libdir" = "no" || test "x$with_livev_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified)" >&5 -$as_echo "simple ok (unspecified)" >&6; } -else - if test ! -d "$with_livev_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_livev_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_livev_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_livev_libdir/libev.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_livev_libdir/libev.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_livev_libdir/libev.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_livev_libdir)" >&5 -$as_echo "sanity check ok ($with_livev_libdir)" >&6; } -fi + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 + fi -fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in pmix_tmp pmix_append; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -fi + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + eval $pmix_str + unset pmix_str + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` - pmix_libev_support=0 - if test -n "$with_libev" && test "$with_libev" != "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libev in" >&5 -$as_echo_n "checking for libev in... " >&6; } - pmix_check_libev_save_CPPFLAGS="$CPPFLAGS" - pmix_check_libeve_save_LDFLAGS="$LDFLAGS" - pmix_check_libev_save_LIBS="$LIBS" - if test "$with_libev" != "yes"; then - pmix_libev_dir=$with_libev/include - pmix_libev_standard_header_location=no - pmix_libev_standard_lib_location=no - if test -z "$with_libev_libdir" || test "$with_libev_libdir" = "yes"; then : - if test -d $with_libev/lib; then - pmix_libev_libdir=$with_libev/lib - elif test -d $with_libev/lib64; then - pmix_libev_libdir=$with_libev/lib64 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Could not find $with_libev/lib or $with_libev/lib64" >&5 -$as_echo "Could not find $with_libev/lib or $with_libev/lib64" >&6; } - as_fn_error $? "Can not continue" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_libev_dir and $pmix_libev_libdir" >&5 -$as_echo "$pmix_libev_dir and $pmix_libev_libdir" >&6; } + for arg in $pmix_hwloc_LDFLAGS; do + pmix_tmp=`echo $arg | cut -c1-2` + pmix_append=1 + if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : + for val in ${LDFLAGS}; do + if test "x$val" = "x$arg"; then : + pmix_append=0 +fi + done +fi + if test "$pmix_append" = "1"; then : + if test -z "$LDFLAGS"; then : + LDFLAGS=$arg else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_libev_libdir" >&5 -$as_echo "$with_libev_libdir" >&6; } + LDFLAGS="$LDFLAGS $arg" fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 -$as_echo "(default search paths)" >&6; } - pmix_libev_standard_header_location=yes - pmix_libev_standard_lib_location=yes - fi - if test ! -z "$with_libev_libdir" && test "$with_libev_libdir" != "yes"; then : - pmix_libev_libdir="$with_libev_libdir" - pmix_libev_standard_lib_location=no fi + done - pmix_check_package_pmix_libev_save_CPPFLAGS="$CPPFLAGS" - pmix_check_package_pmix_libev_save_LDFLAGS="$LDFLAGS" - pmix_check_package_pmix_libev_save_LIBS="$LIBS" + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - pmix_check_package_pmix_libev_orig_CPPFLAGS="$pmix_libev_CPPFLAGS" - pmix_check_package_pmix_libev_orig_LDFLAGS="$pmix_libev_LDFLAGS" - pmix_check_package_pmix_libev_orig_LIBS="$pmix_libev_LIBS" + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering +fi - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_event_h - pmix_check_package_header_happy="no" - # get rid of the trailing slash(es) - hdir_prefix=$(echo $pmix_libev_dir | sed -e 'sX/*$XXg') - if test "$hdir_prefix" = "" || \ - test "$hdir_prefix" = "/usr" || \ - test "$hdir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in event.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "event.h" "ac_cv_header_event_h" "$ac_includes_default" -if test "x$ac_cv_header_event_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_EVENT_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi - -done + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 + fi - if test "$pmix_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_event_h -fi -fi + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in pmix_tmp pmix_append; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str - if test "$pmix_check_package_header_happy" = "no"; then : - if test "$hdir_prefix" != ""; then : - pmix_libev_CPPFLAGS="$pmix_libev_CPPFLAGS -I$hdir_prefix" - CPPFLAGS="$CPPFLAGS -I$hdir_prefix" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix" >&5 -$as_echo "looking for header in $hdir_prefix" >&6; } - for ac_header in event.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "event.h" "ac_cv_header_event_h" "$ac_includes_default" -if test "x$ac_cv_header_event_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_EVENT_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done -done + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + eval $pmix_str + unset pmix_str - if test "$pmix_check_package_header_happy" = "no"; then : - unset ac_cv_header_event_h - pmix_libev_CPPFLAGS="$pmix_libev_CPPFLAGS -I$hdir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$hdir_prefix/include" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix/include" >&5 -$as_echo "looking for header in $hdir_prefix/include" >&6; } - for ac_header in event.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "event.h" "ac_cv_header_event_h" "$ac_includes_default" -if test "x$ac_cv_header_event_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_EVENT_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` -done + for arg in $pmix_hwloc_LIBS; do + pmix_tmp=`echo $arg | cut -c1-2` + pmix_append=1 + if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : + for val in ${LIBS}; do + if test "x$val" = "x$arg"; then : + pmix_append=0 fi + done fi -fi - - if test "$pmix_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - # see comment above - unset ac_cv_lib_ev_event_base_new - pmix_check_package_lib_happy="no" - - # get rid of the trailing slash(es) - libdir_prefix=$(echo $pmix_libev_libdir | sed -e 'sX/*$XXg') - - if test "$libdir_prefix" != ""; then : - # libdir was specified - search only there - pmix_libev_LDFLAGS="$pmix_libev_LDFLAGS -L$libdir_prefix" - LDFLAGS="$LDFLAGS -L$libdir_prefix" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_base_new" >&5 -$as_echo_n "checking for library containing event_base_new... " >&6; } -if ${ac_cv_search_event_base_new+:} false; then : - $as_echo_n "(cached) " >&6 + if test "$pmix_append" = "1"; then : + if test -z "$LIBS"; then : + LIBS=$arg else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char event_base_new (); -int -main () -{ -return event_base_new (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ev; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_event_base_new=$ac_res + LIBS="$LIBS $arg" fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_event_base_new+:} false; then : - break fi -done -if ${ac_cv_search_event_base_new+:} false; then : + done -else - ac_cv_search_event_base_new=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_base_new" >&5 -$as_echo "$ac_cv_search_event_base_new" >&6; } -ac_res=$ac_cv_search_event_base_new -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - if test "$pmix_check_package_lib_happy" = "no"; then : - LDFLAGS="$pmix_check_package_pmix_libev_save_LDFLAGS" - pmix_libev_LDFLAGS="$pmix_check_package_pmix_libev_orig_LDFLAGS" - unset ac_cv_lib_ev_event_base_new -fi -else - # libdir was not specified - go through search path - # get rid of the trailing slash(es) - libdir_prefix=$(echo $pmix_libev_dir | sed -e 'sX/*$XXg') + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - # first try standard locations as otherwise our - # searches with libdir_prefix locations might come - # back positive and unnecessarily add an LDFLAG - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_base_new" >&5 -$as_echo_n "checking for library containing event_base_new... " >&6; } -if ${ac_cv_search_event_base_new+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char event_base_new (); -int -main () -{ -return event_base_new (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ev; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_event_base_new=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_event_base_new+:} false; then : - break -fi -done -if ${ac_cv_search_event_base_new+:} false; then : + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done -else - ac_cv_search_event_base_new=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_base_new" >&5 -$as_echo "$ac_cv_search_event_base_new" >&6; } -ac_res=$ac_cv_search_event_base_new -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_libev_save_LDFLAGS" - pmix_libev_LDFLAGS="$pmix_check_package_pmix_libev_orig_LDFLAGS" - unset ac_cv_lib_ev_event_base_new -fi + fi - if test "$pmix_check_package_lib_happy" = "no"; then : - # if we didn't find it, check the libdir_prefix/lib64 directory - if test "$libdir_prefix" != "" && \ - test "$libdir_prefix" != "/usr" && \ - test "$libdir_prefix" != "/usr/local"; then : - pmix_libev_LDFLAGS="$pmix_libev_LDFLAGS -L$libdir_prefix/lib64" - LDFLAGS="$LDFLAGS -L$libdir_prefix/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib64" >&5 -$as_echo "looking for library in $libdir_prefix/lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_base_new" >&5 -$as_echo_n "checking for library containing event_base_new... " >&6; } -if ${ac_cv_search_event_base_new+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if test ! -z "$with_hwloc" && test "$with_hwloc" != "no" && test "$pmix_hwloc_support" != "1"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: HWLOC SUPPORT REQUESTED AND NOT FOUND" >&5 +$as_echo "$as_me: WARNING: HWLOC SUPPORT REQUESTED AND NOT FOUND" >&2;} + as_fn_error $? "CANNOT CONTINUE" "$LINENO" 5 + fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char event_base_new (); + if test $pmix_hwloc_support = "1"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if external hwloc version is 1.5 or greater" >&5 +$as_echo_n "checking if external hwloc version is 1.5 or greater... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include int main () { -return event_base_new (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ev; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_event_base_new=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_event_base_new+:} false; then : - break -fi -done -if ${ac_cv_search_event_base_new+:} false; then : - -else - ac_cv_search_event_base_new=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_base_new" >&5 -$as_echo "$ac_cv_search_event_base_new" >&6; } -ac_res=$ac_cv_search_event_base_new -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_libev_save_LDFLAGS" - pmix_libev_LDFLAGS="$pmix_check_package_pmix_libev_orig_LDFLAGS" - unset ac_cv_lib_ev_event_base_new -fi -fi -fi - if test "$pmix_check_package_lib_happy" = "no"; then : - # if we still haven't found it, check the libdir_prefix/lib directory - if test "$libdir_prefix" != "" && \ - test "$libdir_prefix" != "/usr" && \ - test "$libdir_prefix" != "/usr/local"; then : - pmix_libev_LDFLAGS="$pmix_libev_LDFLAGS -L$libdir_prefix/lib" - LDFLAGS="$LDFLAGS -L$libdir_prefix/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib" >&5 -$as_echo "looking for library in $libdir_prefix/lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_base_new" >&5 -$as_echo_n "checking for library containing event_base_new... " >&6; } -if ${ac_cv_search_event_base_new+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + #if HWLOC_API_VERSION < 0x00010500 + #error "hwloc API version is less than 0x00010500" + #endif -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char event_base_new (); -int -main () -{ -return event_base_new (); ; return 0; } _ACEOF -for ac_lib in '' ev; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_event_base_new=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_event_base_new+:} false; then : - break -fi -done -if ${ac_cv_search_event_base_new+:} false; then : - -else - ac_cv_search_event_base_new=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_base_new" >&5 -$as_echo "$ac_cv_search_event_base_new" >&6; } -ac_res=$ac_cv_search_event_base_new -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_libev_save_LDFLAGS" - pmix_libev_LDFLAGS="$pmix_check_package_pmix_libev_orig_LDFLAGS" - unset ac_cv_lib_ev_event_base_new -fi -fi -fi - -fi - - - if test "$pmix_check_package_lib_happy" = "yes"; then : - pmix_libev_LIBS="-lev " - pmix_check_package_happy="yes" -else - pmix_check_package_happy="no" -fi - if test "$pmix_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_event_base_new" != "no" && - test "$ac_cv_search_event_base_new" != "none required"; then : - pmix_libev_LIBS="$ac_cv_search_event_base_new " -else - pmix_libev_LIBS="" -fi - pmix_check_package_happy="yes" -else - pmix_check_package_happy="no" -fi - - -else - pmix_check_package_happy="no" -fi - - unset pmix_check_package_header_happy - - - - if test "$pmix_check_package_happy" = "yes"; then : - pmix_libev_support=1 +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - pmix_libev_CPPFLAGS="$pmix_check_package_pmix_libev_orig_CPPFLAGS" - pmix_libev_LDFLAGS="$pmix_check_package_pmix_libev_orig_LDFLAGS" - pmix_libev_LIBS="$pmix_check_package_pmix_libev_orig_LIBS" - pmix_libev_support=0 -fi - - CPPFLAGS="$pmix_check_package_pmix_libev_save_CPPFLAGS" - LDFLAGS="$pmix_check_package_pmix_libev_save_LDFLAGS" - LIBS="$pmix_check_package_pmix_libev_save_LIBS" - - CPPFLAGS="$pmix_check_libev_save_CPPFLAGS" - LDFLAGS="$pmix_check_libev_save_LDFLAGS" - LIBS="$pmix_check_libev_save_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "Cannot continue" "$LINENO" 5 fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi - if test $pmix_libev_support -eq 1; then : - LIBS="$LIBS $pmix_libev_LIBS" - - if test "$pmix_libev_standard_header_location" != "yes"; then : - CPPFLAGS="$CPPFLAGS $pmix_libev_CPPFLAGS" -fi - if test "$pmix_libev_standard_lib_location" != "yes"; then : - LDFLAGS="$LDFLAGS $pmix_libev_LDFLAGS" -fi -fi + CPPFLAGS=$pmix_check_hwloc_save_CPPFLAGS + LDFLAGS=$pmix_check_hwloc_save_LDFLAGS + LIBS=$pmix_check_hwloc_save_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking will libev support be built" >&5 -$as_echo_n "checking will libev support be built... " >&6; } - if test $pmix_libev_support -eq 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking will hwloc support be built" >&5 +$as_echo_n "checking will hwloc support be built... " >&6; } + if test "$pmix_hwloc_support" != "1"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + pmix_hwloc_source=none + pmix_hwloc_support_will_build=no + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - PMIX_EVENT_HEADER="" - -cat >>confdefs.h <<_ACEOF -#define PMIX_EVENT_HEADER $PMIX_EVENT_HEADER -_ACEOF - + pmix_hwloc_source=$pmix_hwloc_dir + pmix_hwloc_support_will_build=yes + if test "$pmix_hwloc_standard_header_location" != "yes"; then : @@ -35659,7 +34971,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_summary_section pmix_summary_line pmix_summary_section_current; do + for pmix_var in pmix_tmp pmix_append; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -35678,7 +34990,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_summary_section pmix_summary_line pmix_summary_section_current\"" + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" eval $pmix_str unset pmix_str @@ -35686,20 +34998,24 @@ pmix_scope_index=`expr $pmix_scope_index + 1` - pmix_summary_section=$(echo External Packages | tr ' ' '_') - pmix_summary_line="libev: $pmix_libev_dir" - pmix_summary_section_current=$(eval echo \$pmix_summary_values_$pmix_summary_section) - - if test -z "$pmix_summary_section_current" ; then - if test -z "$pmix_summary_sections" ; then - pmix_summary_sections=$pmix_summary_section - else - pmix_summary_sections="$pmix_summary_sections $pmix_summary_section" - fi - eval pmix_summary_values_$pmix_summary_section=\"$pmix_summary_line\" - else - eval pmix_summary_values_$pmix_summary_section=\"$pmix_summary_section_current,$pmix_summary_line\" - fi + for arg in $pmix_hwloc_CPPFLAGS; do + pmix_tmp=`echo $arg | cut -c1-2` + pmix_append=1 + if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : + for val in ${PMIX_FINAL_CPPFLAGS}; do + if test "x$val" = "x$arg"; then : + pmix_append=0 +fi + done +fi + if test "$pmix_append" = "1"; then : + if test -z "$PMIX_FINAL_CPPFLAGS"; then : + PMIX_FINAL_CPPFLAGS=$arg +else + PMIX_FINAL_CPPFLAGS="$PMIX_FINAL_CPPFLAGS $arg" +fi +fi + done # Unwind the index @@ -35723,69 +35039,215 @@ done - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - +fi -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_LIBEV $pmix_libev_support -_ACEOF + if test "$pmix_hwloc_standard_lib_location" != "yes"; then : - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in pmix_tmp pmix_append; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str -# Check whether --with-libevent-header was given. -if test "${with_libevent_header+set}" = set; then : - withval=$with_libevent_header; + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + eval $pmix_str + unset pmix_str + + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` + + + for arg in $pmix_hwloc_LDFLAGS; do + pmix_tmp=`echo $arg | cut -c1-2` + pmix_append=1 + if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : + for val in ${PMIX_FINAL_LDFLAGS}; do + if test "x$val" = "x$arg"; then : + pmix_append=0 fi + done +fi + if test "$pmix_append" = "1"; then : + if test -z "$PMIX_FINAL_LDFLAGS"; then : + PMIX_FINAL_LDFLAGS=$arg +else + PMIX_FINAL_LDFLAGS="$PMIX_FINAL_LDFLAGS $arg" +fi +fi + done - pmix_libevent_support=0 + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "$pmix_mode" = "embedded"; then : + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str + + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libevent" >&5 -$as_echo_n "checking for libevent... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: assumed available (embedded mode)" >&5 -$as_echo "assumed available (embedded mode)" >&6; } - if test -z "$with_libevent_header" || test "$with_libevent_header" = "yes"; then : - PMIX_EVENT_HEADER="" - PMIX_EVENT2_THREAD_HEADER="" -else - PMIX_EVENT_HEADER="$with_libevent_header" - PMIX_EVENT2_THREAD_HEADER="$with_libevent_header" fi - pmix_libevent_source=embedded - pmix_libevent_support=1 + + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in pmix_tmp pmix_append; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str + + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + eval $pmix_str + unset pmix_str + + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` + + + for arg in $pmix_hwloc_LIBS; do + pmix_tmp=`echo $arg | cut -c1-2` + pmix_append=1 + if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : + for val in ${PMIX_FINAL_LIBS}; do + if test "x$val" = "x$arg"; then : + pmix_append=0 +fi + done +fi + if test "$pmix_append" = "1"; then : + if test -z "$PMIX_FINAL_LIBS"; then : + PMIX_FINAL_LIBS=$arg else - if test $pmix_libev_support -eq 0; then : + PMIX_FINAL_LIBS="$PMIX_FINAL_LIBS $arg" +fi +fi + done + + + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str + + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done + + + fi + + # Set output variables + PMIX_HWLOC_HEADER="" + + + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str + + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done + + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking hwloc header" >&5 +$as_echo_n "checking hwloc header... " >&6; } + +cat >>confdefs.h <<_ACEOF +#define PMIX_HWLOC_HEADER $PMIX_HWLOC_HEADER +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PMIX_HWLOC_HEADER" >&5 +$as_echo "$PMIX_HWLOC_HEADER" >&6; } + + +cat >>confdefs.h <<_ACEOF +#define PMIX_HAVE_HWLOC $pmix_hwloc_support +_ACEOF + + @@ -35798,7 +35260,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_event_dir pmix_event_libdir pmix_event_defaults; do + for pmix_var in pmix_summary_section pmix_summary_line pmix_summary_section_current; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -35817,7 +35279,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_event_dir pmix_event_libdir pmix_event_defaults\"" + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_summary_section pmix_summary_line pmix_summary_section_current\"" eval $pmix_str unset pmix_str @@ -35825,76 +35287,148 @@ pmix_scope_index=`expr $pmix_scope_index + 1` + pmix_summary_section=$(echo External Packages | tr ' ' '_') + pmix_summary_line="HWLOC: $pmix_hwloc_support_will_build ($pmix_hwloc_source)" + pmix_summary_section_current=$(eval echo \$pmix_summary_values_$pmix_summary_section) -# Check whether --with-libevent was given. -if test "${with_libevent+set}" = set; then : - withval=$with_libevent; -fi + if test -z "$pmix_summary_section_current" ; then + if test -z "$pmix_summary_sections" ; then + pmix_summary_sections=$pmix_summary_section + else + pmix_summary_sections="$pmix_summary_sections $pmix_summary_section" + fi + eval pmix_summary_values_$pmix_summary_section=\"$pmix_summary_line\" + else + eval pmix_summary_values_$pmix_summary_section=\"$pmix_summary_section_current,$pmix_summary_line\" + fi + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -# Check whether --with-libevent-libdir was given. -if test "${with_libevent_libdir+set}" = set; then : - withval=$with_libevent_libdir; + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str + + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done + + + + + + ################################## + # ZLIB + ################################## + pmix_show_title "ZLIB" + + + + + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in pmix_zlib_dir pmix_zlib_libdir pmix_zlib_standard_lib_location pmix_zlib_standard_header_location; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str + + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_zlib_dir pmix_zlib_libdir pmix_zlib_standard_lib_location pmix_zlib_standard_header_location\"" + eval $pmix_str + unset pmix_str + + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` + + + +# Check whether --with-zlib was given. +if test "${with_zlib+set}" = set; then : + withval=$with_zlib; fi - pmix_check_libevent_save_CPPFLAGS="$CPPFLAGS" - pmix_check_libevent_save_LDFLAGS="$LDFLAGS" - pmix_check_libevent_save_LIBS="$LIBS" - # get rid of the trailing slash(es) - libevent_prefix=$(echo $with_libevent | sed -e 'sX/*$XXg') - libeventdir_prefix=$(echo $with_libevent_libdir | sed -e 'sX/*$XXg') +# Check whether --with-zlib-libdir was given. +if test "${with_zlib_libdir+set}" = set; then : + withval=$with_zlib_libdir; +fi - if test "$libevent_prefix" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libevent in" >&5 -$as_echo_n "checking for libevent in... " >&6; } - if test ! -z "$libevent_prefix" && test "$libevent_prefix" != "yes"; then - pmix_event_defaults=no - pmix_event_dir=$libevent_prefix/include - if test -d $libevent_prefix/lib; then - pmix_event_libdir=$libevent_prefix/lib - elif test -d $libevent_prefix/lib64; then - pmix_event_libdir=$libevent_prefix/lib64 - elif test -d $libevent_prefix; then - pmix_event_libdir=$libevent_prefix - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Could not find $libevent_prefix/lib, $libevent_prefix/lib64, or $libevent_prefix" >&5 -$as_echo "Could not find $libevent_prefix/lib, $libevent_prefix/lib64, or $libevent_prefix" >&6; } - as_fn_error $? "Can not continue" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_event_dir and $pmix_event_libdir" >&5 -$as_echo "$pmix_event_dir and $pmix_event_libdir" >&6; } + + pmix_zlib_support=0 + + if test "$with_zlib" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for zlib in" >&5 +$as_echo_n "checking for zlib in... " >&6; } + if test ! -z "$with_zlib" && test "$with_zlib" != "yes"; then + pmix_zlib_dir=$with_zlib + pmix_zlib_standard_header_location=no + pmix_zlib_standard_lib_location=no + if test -z "$with_zlib_libdir" || test "$with_zlib_libdir" = "yes"; then : + if test -d $with_zlib/lib; then + pmix_zlib_libdir=$with_zlib/lib + elif test -d $with_zlib/lib64; then + pmix_zlib_libdir=$with_zlib/lib64 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Could not find $with_zlib/lib or $with_zlib/lib64" >&5 +$as_echo "Could not find $with_zlib/lib or $with_zlib/lib64" >&6; } + as_fn_error $? "Can not continue" "$LINENO" 5 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_zlib_dir and $pmix_zlib_libdir" >&5 +$as_echo "$pmix_zlib_dir and $pmix_zlib_libdir" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_zlib_libdir" >&5 +$as_echo "$with_zlib_libdir" >&6; } +fi else - pmix_event_defaults=yes - pmix_event_dir=/usr/include - if test -d /usr/lib; then - pmix_event_libdir=/usr/lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 -$as_echo "(default search paths)" >&6; } - elif test -d /usr/lib64; then - pmix_event_libdir=/usr/lib64 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 $as_echo "(default search paths)" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: default paths not found" >&5 -$as_echo "default paths not found" >&6; } - pmix_libevent_support=0 - fi + pmix_zlib_standard_header_location=yes + pmix_zlib_standard_lib_location=yes fi - if test ! -z "$libeventdir_prefix" && "$libeventdir_prefix" != "yes"; then : - pmix_event_libdir="$libeventdir_prefix" + if test ! -z "$with_zlib_libdir" && test "$with_zlib_libdir" != "yes"; then : + pmix_zlib_libdir="$with_zlib_libdir" + pmix_zlib_standard_lib_location=no fi - pmix_check_package_pmix_libevent_save_CPPFLAGS="$CPPFLAGS" - pmix_check_package_pmix_libevent_save_LDFLAGS="$LDFLAGS" - pmix_check_package_pmix_libevent_save_LIBS="$LIBS" + pmix_check_package_pmix_zlib_save_CPPFLAGS="$CPPFLAGS" + pmix_check_package_pmix_zlib_save_LDFLAGS="$LDFLAGS" + pmix_check_package_pmix_zlib_save_LIBS="$LIBS" - pmix_check_package_pmix_libevent_orig_CPPFLAGS="$pmix_libevent_CPPFLAGS" - pmix_check_package_pmix_libevent_orig_LDFLAGS="$pmix_libevent_LDFLAGS" - pmix_check_package_pmix_libevent_orig_LIBS="$pmix_libevent_LIBS" + pmix_check_package_pmix_zlib_orig_CPPFLAGS="$pmix_zlib_CPPFLAGS" + pmix_check_package_pmix_zlib_orig_LDFLAGS="$pmix_zlib_LDFLAGS" + pmix_check_package_pmix_zlib_orig_LIBS="$pmix_zlib_LIBS" # This is stolen from autoconf to peek under the covers to get the @@ -35905,11 +35439,11 @@ # so this sucks, but there's no way to get through the progression # of header includes without killing off the cache variable and trying # again... - unset ac_cv_header_event_h + unset ac_cv_header_zlib_h pmix_check_package_header_happy="no" # get rid of the trailing slash(es) - hdir_prefix=$(echo $pmix_event_dir | sed -e 'sX/*$XXg') + hdir_prefix=$(echo $pmix_zlib_dir | sed -e 'sX/*$XXg') if test "$hdir_prefix" = "" || \ test "$hdir_prefix" = "/usr" || \ @@ -35917,12 +35451,12 @@ # try as is... { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 $as_echo "looking for header without includes" >&6; } - for ac_header in event.h + for ac_header in zlib.h do : - ac_fn_c_check_header_mongrel "$LINENO" "event.h" "ac_cv_header_event_h" "$ac_includes_default" -if test "x$ac_cv_header_event_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_EVENT_H 1 +#define HAVE_ZLIB_H 1 _ACEOF pmix_check_package_header_happy="yes" fi @@ -35931,22 +35465,22 @@ if test "$pmix_check_package_header_happy" = "no"; then : # no go on the as is - reset the cache and try again - unset ac_cv_header_event_h + unset ac_cv_header_zlib_h fi fi if test "$pmix_check_package_header_happy" = "no"; then : if test "$hdir_prefix" != ""; then : - pmix_libevent_CPPFLAGS="$pmix_libevent_CPPFLAGS -I$hdir_prefix" + pmix_zlib_CPPFLAGS="$pmix_zlib_CPPFLAGS -I$hdir_prefix" CPPFLAGS="$CPPFLAGS -I$hdir_prefix" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix" >&5 $as_echo "looking for header in $hdir_prefix" >&6; } - for ac_header in event.h + for ac_header in zlib.h do : - ac_fn_c_check_header_mongrel "$LINENO" "event.h" "ac_cv_header_event_h" "$ac_includes_default" -if test "x$ac_cv_header_event_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_EVENT_H 1 +#define HAVE_ZLIB_H 1 _ACEOF pmix_check_package_header_happy="yes" fi @@ -35954,17 +35488,17 @@ done if test "$pmix_check_package_header_happy" = "no"; then : - unset ac_cv_header_event_h - pmix_libevent_CPPFLAGS="$pmix_libevent_CPPFLAGS -I$hdir_prefix/include" + unset ac_cv_header_zlib_h + pmix_zlib_CPPFLAGS="$pmix_zlib_CPPFLAGS -I$hdir_prefix/include" CPPFLAGS="$CPPFLAGS -I$hdir_prefix/include" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix/include" >&5 $as_echo "looking for header in $hdir_prefix/include" >&6; } - for ac_header in event.h + for ac_header in zlib.h do : - ac_fn_c_check_header_mongrel "$LINENO" "event.h" "ac_cv_header_event_h" "$ac_includes_default" -if test "x$ac_cv_header_event_h" = xyes; then : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_EVENT_H 1 +#define HAVE_ZLIB_H 1 _ACEOF pmix_check_package_header_happy="yes" fi @@ -35982,19 +35516,19 @@ # code into other places unless you want much pain and suffering # see comment above - unset ac_cv_lib_event_event_config_new + unset ac_cv_lib_z_deflate pmix_check_package_lib_happy="no" # get rid of the trailing slash(es) - libdir_prefix=$(echo $pmix_event_libdir | sed -e 'sX/*$XXg') + libdir_prefix=$(echo $pmix_zlib_libdir | sed -e 'sX/*$XXg') if test "$libdir_prefix" != ""; then : # libdir was specified - search only there - pmix_libevent_LDFLAGS="$pmix_libevent_LDFLAGS -L$libdir_prefix" + pmix_zlib_LDFLAGS="$pmix_zlib_LDFLAGS -L$libdir_prefix" LDFLAGS="$LDFLAGS -L$libdir_prefix" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 -$as_echo_n "checking for library containing event_config_new... " >&6; } -if ${ac_cv_search_event_config_new+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing deflate" >&5 +$as_echo_n "checking for library containing deflate... " >&6; } +if ${ac_cv_search_deflate+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -36007,42 +35541,42 @@ #ifdef __cplusplus extern "C" #endif -char event_config_new (); +char deflate (); int main () { -return event_config_new (); +return deflate (); ; return 0; } _ACEOF -for ac_lib in '' event; do +for ac_lib in '' z; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -levent -levent_pthreads $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -lz $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_event_config_new=$ac_res + ac_cv_search_deflate=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_event_config_new+:} false; then : + if ${ac_cv_search_deflate+:} false; then : break fi done -if ${ac_cv_search_event_config_new+:} false; then : +if ${ac_cv_search_deflate+:} false; then : else - ac_cv_search_event_config_new=no + ac_cv_search_deflate=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 -$as_echo "$ac_cv_search_event_config_new" >&6; } -ac_res=$ac_cv_search_event_config_new +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_deflate" >&5 +$as_echo "$ac_cv_search_deflate" >&6; } +ac_res=$ac_cv_search_deflate if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" pmix_check_package_lib_happy="yes" @@ -36051,23 +35585,23 @@ fi if test "$pmix_check_package_lib_happy" = "no"; then : - LDFLAGS="$pmix_check_package_pmix_libevent_save_LDFLAGS" - pmix_libevent_LDFLAGS="$pmix_check_package_pmix_libevent_orig_LDFLAGS" - unset ac_cv_lib_event_event_config_new + LDFLAGS="$pmix_check_package_pmix_zlib_save_LDFLAGS" + pmix_zlib_LDFLAGS="$pmix_check_package_pmix_zlib_orig_LDFLAGS" + unset ac_cv_lib_z_deflate fi else # libdir was not specified - go through search path # get rid of the trailing slash(es) - libdir_prefix=$(echo $pmix_event_dir | sed -e 'sX/*$XXg') + libdir_prefix=$(echo $pmix_zlib_dir | sed -e 'sX/*$XXg') # first try standard locations as otherwise our # searches with libdir_prefix locations might come # back positive and unnecessarily add an LDFLAG { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 $as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 -$as_echo_n "checking for library containing event_config_new... " >&6; } -if ${ac_cv_search_event_config_new+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing deflate" >&5 +$as_echo_n "checking for library containing deflate... " >&6; } +if ${ac_cv_search_deflate+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -36080,42 +35614,42 @@ #ifdef __cplusplus extern "C" #endif -char event_config_new (); +char deflate (); int main () { -return event_config_new (); +return deflate (); ; return 0; } _ACEOF -for ac_lib in '' event; do +for ac_lib in '' z; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -levent -levent_pthreads $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -lz $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_event_config_new=$ac_res + ac_cv_search_deflate=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_event_config_new+:} false; then : + if ${ac_cv_search_deflate+:} false; then : break fi done -if ${ac_cv_search_event_config_new+:} false; then : +if ${ac_cv_search_deflate+:} false; then : else - ac_cv_search_event_config_new=no + ac_cv_search_deflate=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 -$as_echo "$ac_cv_search_event_config_new" >&6; } -ac_res=$ac_cv_search_event_config_new +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_deflate" >&5 +$as_echo "$ac_cv_search_deflate" >&6; } +ac_res=$ac_cv_search_deflate if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" pmix_check_package_lib_happy="yes" @@ -36125,9 +35659,9 @@ if test "$pmix_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_libevent_save_LDFLAGS" - pmix_libevent_LDFLAGS="$pmix_check_package_pmix_libevent_orig_LDFLAGS" - unset ac_cv_lib_event_event_config_new + LDFLAGS="$pmix_check_package_pmix_zlib_save_LDFLAGS" + pmix_zlib_LDFLAGS="$pmix_check_package_pmix_zlib_orig_LDFLAGS" + unset ac_cv_lib_z_deflate fi if test "$pmix_check_package_lib_happy" = "no"; then : @@ -36135,13 +35669,13 @@ if test "$libdir_prefix" != "" && \ test "$libdir_prefix" != "/usr" && \ test "$libdir_prefix" != "/usr/local"; then : - pmix_libevent_LDFLAGS="$pmix_libevent_LDFLAGS -L$libdir_prefix/lib64" + pmix_zlib_LDFLAGS="$pmix_zlib_LDFLAGS -L$libdir_prefix/lib64" LDFLAGS="$LDFLAGS -L$libdir_prefix/lib64" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib64" >&5 $as_echo "looking for library in $libdir_prefix/lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 -$as_echo_n "checking for library containing event_config_new... " >&6; } -if ${ac_cv_search_event_config_new+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing deflate" >&5 +$as_echo_n "checking for library containing deflate... " >&6; } +if ${ac_cv_search_deflate+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -36154,42 +35688,42 @@ #ifdef __cplusplus extern "C" #endif -char event_config_new (); +char deflate (); int main () { -return event_config_new (); +return deflate (); ; return 0; } _ACEOF -for ac_lib in '' event; do +for ac_lib in '' z; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -levent -levent_pthreads $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -lz $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_event_config_new=$ac_res + ac_cv_search_deflate=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_event_config_new+:} false; then : + if ${ac_cv_search_deflate+:} false; then : break fi done -if ${ac_cv_search_event_config_new+:} false; then : +if ${ac_cv_search_deflate+:} false; then : else - ac_cv_search_event_config_new=no + ac_cv_search_deflate=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 -$as_echo "$ac_cv_search_event_config_new" >&6; } -ac_res=$ac_cv_search_event_config_new +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_deflate" >&5 +$as_echo "$ac_cv_search_deflate" >&6; } +ac_res=$ac_cv_search_deflate if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" pmix_check_package_lib_happy="yes" @@ -36199,9 +35733,9 @@ if test "$pmix_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_libevent_save_LDFLAGS" - pmix_libevent_LDFLAGS="$pmix_check_package_pmix_libevent_orig_LDFLAGS" - unset ac_cv_lib_event_event_config_new + LDFLAGS="$pmix_check_package_pmix_zlib_save_LDFLAGS" + pmix_zlib_LDFLAGS="$pmix_check_package_pmix_zlib_orig_LDFLAGS" + unset ac_cv_lib_z_deflate fi fi fi @@ -36211,13 +35745,13 @@ if test "$libdir_prefix" != "" && \ test "$libdir_prefix" != "/usr" && \ test "$libdir_prefix" != "/usr/local"; then : - pmix_libevent_LDFLAGS="$pmix_libevent_LDFLAGS -L$libdir_prefix/lib" + pmix_zlib_LDFLAGS="$pmix_zlib_LDFLAGS -L$libdir_prefix/lib" LDFLAGS="$LDFLAGS -L$libdir_prefix/lib" { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib" >&5 $as_echo "looking for library in $libdir_prefix/lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_config_new" >&5 -$as_echo_n "checking for library containing event_config_new... " >&6; } -if ${ac_cv_search_event_config_new+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing deflate" >&5 +$as_echo_n "checking for library containing deflate... " >&6; } +if ${ac_cv_search_deflate+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS @@ -36230,42 +35764,42 @@ #ifdef __cplusplus extern "C" #endif -char event_config_new (); +char deflate (); int main () { -return event_config_new (); +return deflate (); ; return 0; } _ACEOF -for ac_lib in '' event; do +for ac_lib in '' z; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib - LIBS="-l$ac_lib -levent -levent_pthreads $ac_func_search_save_LIBS" + LIBS="-l$ac_lib -lz $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_event_config_new=$ac_res + ac_cv_search_deflate=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if ${ac_cv_search_event_config_new+:} false; then : + if ${ac_cv_search_deflate+:} false; then : break fi done -if ${ac_cv_search_event_config_new+:} false; then : +if ${ac_cv_search_deflate+:} false; then : else - ac_cv_search_event_config_new=no + ac_cv_search_deflate=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_config_new" >&5 -$as_echo "$ac_cv_search_event_config_new" >&6; } -ac_res=$ac_cv_search_event_config_new +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_deflate" >&5 +$as_echo "$ac_cv_search_deflate" >&6; } +ac_res=$ac_cv_search_deflate if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" pmix_check_package_lib_happy="yes" @@ -36275,9 +35809,9 @@ if test "$pmix_check_package_lib_happy" = "no"; then : # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_libevent_save_LDFLAGS" - pmix_libevent_LDFLAGS="$pmix_check_package_pmix_libevent_orig_LDFLAGS" - unset ac_cv_lib_event_event_config_new + LDFLAGS="$pmix_check_package_pmix_zlib_save_LDFLAGS" + pmix_zlib_LDFLAGS="$pmix_check_package_pmix_zlib_orig_LDFLAGS" + unset ac_cv_lib_z_deflate fi fi fi @@ -36286,18 +35820,18 @@ if test "$pmix_check_package_lib_happy" = "yes"; then : - pmix_libevent_LIBS="-levent -levent -levent_pthreads" + pmix_zlib_LIBS="-lz -lz" pmix_check_package_happy="yes" else pmix_check_package_happy="no" fi if test "$pmix_check_package_lib_happy" = "yes"; then : # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_event_config_new" != "no" && - test "$ac_cv_search_event_config_new" != "none required"; then : - pmix_libevent_LIBS="$ac_cv_search_event_config_new -levent -levent_pthreads" + if test "$ac_cv_search_deflate" != "no" && + test "$ac_cv_search_deflate" != "none required"; then : + pmix_zlib_LIBS="$ac_cv_search_deflate -lz" else - pmix_libevent_LIBS="-levent -levent_pthreads" + pmix_zlib_LIBS="-lz" fi pmix_check_package_happy="yes" else @@ -36314,77 +35848,52 @@ if test "$pmix_check_package_happy" = "yes"; then : - pmix_libevent_support=1 + pmix_zlib_support=1 else - pmix_libevent_CPPFLAGS="$pmix_check_package_pmix_libevent_orig_CPPFLAGS" - pmix_libevent_LDFLAGS="$pmix_check_package_pmix_libevent_orig_LDFLAGS" - pmix_libevent_LIBS="$pmix_check_package_pmix_libevent_orig_LIBS" - pmix_libevent_support=0 + pmix_zlib_CPPFLAGS="$pmix_check_package_pmix_zlib_orig_CPPFLAGS" + pmix_zlib_LDFLAGS="$pmix_check_package_pmix_zlib_orig_LDFLAGS" + pmix_zlib_LIBS="$pmix_check_package_pmix_zlib_orig_LIBS" + pmix_zlib_support=0 fi - CPPFLAGS="$pmix_check_package_pmix_libevent_save_CPPFLAGS" - LDFLAGS="$pmix_check_package_pmix_libevent_save_LDFLAGS" - LIBS="$pmix_check_package_pmix_libevent_save_LIBS" - - - if test "$pmix_event_defaults" = "no"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + CPPFLAGS="$pmix_check_package_pmix_zlib_save_CPPFLAGS" + LDFLAGS="$pmix_check_package_pmix_zlib_save_LDFLAGS" + LIBS="$pmix_check_package_pmix_zlib_save_LIBS" - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test $pmix_zlib_support = "1"; then + LIBS="$LIBS -lz" + PMIX_EMBEDDED_LIBS="$PMIX_EMBEDDED_LIBS -lz" + if test "$pmix_zlib_standard_header_location" != "yes"; then + PMIX_EMBEDDED_CPPFLAGS="$PMIX_EMBEDDED_CPPFLAGS $pmix_zlib_CPPFLAGS" + CPPFLAGS="$CPPFLAGS $pmix_zlib_CPPFLAGS" + fi + if test "$pmix_zlib_standard_lib_location" != "yes"; then + PMIX_EMBEDDED_LDFLAGS="$PMIX_EMBEDDED_LDFLAGS $pmix_zlib_LDFLAGS" + LDFLAGS="$LDFLAGS $pmix_zlib_LDFLAGS" + fi fi - done + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + if test ! -z "$with_zlib" && test "$with_zlib" != "no" && test "$pmix_zlib_support" != "1"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ZLIB SUPPORT REQUESTED AND NOT FOUND" >&5 +$as_echo "$as_me: WARNING: ZLIB SUPPORT REQUESTED AND NOT FOUND" >&2;} + as_fn_error $? "CANNOT CONTINUE" "$LINENO" 5 + fi - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking will zlib support be built" >&5 +$as_echo_n "checking will zlib support be built... " >&6; } + if test "$pmix_zlib_support" != "1"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + fi - for arg in $pmix_libevent_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${CPPFLAGS}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$CPPFLAGS"; then : - CPPFLAGS=$arg -else - CPPFLAGS="$CPPFLAGS $arg" -fi -fi - done +cat >>confdefs.h <<_ACEOF +#define PMIX_HAVE_ZLIB $pmix_zlib_support +_ACEOF # Unwind the index @@ -36410,6 +35919,15 @@ + ################################## + # Dstore Locking + ################################## + + pmix_show_title "Dstore Locking" + + + + # Is the private index set? If not, set it. if test "x$pmix_scope_index" = "x"; then @@ -36420,7 +35938,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do + for pmix_var in orig_libs pmix_prefer_write_nonrecursive; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -36439,7 +35957,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + pmix_str="pmix_scope_$pmix_scope_index=\"orig_libs pmix_prefer_write_nonrecursive\"" eval $pmix_str unset pmix_str @@ -36447,24 +35965,133 @@ pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $pmix_libevent_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${LDFLAGS}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 + orig_libs=$LIBS + LIBS="-lpthread $LIBS" + + _x_ac_pthread_lock_found=0 + _x_ac_fcntl_lock_found=0 + pmix_prefer_write_nonrecursive=0 + + ac_fn_c_check_member "$LINENO" "struct flock" "l_type" "ac_cv_member_struct_flock_l_type" "#include +" +if test "x$ac_cv_member_struct_flock_l_type" = xyes; then : + pmix_fcntl_flock_happy=yes + _x_ac_fcntl_lock_found=1 +else + pmix_fcntl_flock_happy=no fi - done + + + if test "$DSTORE_PTHREAD_LOCK" = "1"; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pthread_process_shared" >&5 +$as_echo_n "checking pthread_process_shared... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #ifdef PTHREAD_PROCESS_SHARED + yes + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + pmix_pthread_process_shared=yes +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + pmix_pthread_process_shared=no fi - if test "$pmix_append" = "1"; then : - if test -z "$LDFLAGS"; then : - LDFLAGS=$arg +rm -f conftest* + + + ac_fn_c_check_func "$LINENO" "pthread_rwlockattr_setkind_np" "ac_cv_func_pthread_rwlockattr_setkind_np" +if test "x$ac_cv_func_pthread_rwlockattr_setkind_np" = xyes; then : + pmix_pthread_rwlockattr_setkind_np=yes + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #ifdef PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP + yes + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + pmix_pthread_rwlock_prefer_writer_nonrecursive_np=yes else - LDFLAGS="$LDFLAGS $arg" + pmix_pthread_rwlock_prefer_writer_nonrecursive_np=no fi +rm -f conftest* + +else + pmix_pthread_rwlockattr_setkind_np=no fi - done + + + ac_fn_c_check_func "$LINENO" "pthread_rwlockattr_setpshared" "ac_cv_func_pthread_rwlockattr_setpshared" +if test "x$ac_cv_func_pthread_rwlockattr_setpshared" = xyes; then : + pmix_pthread_rwlockattr_setpshared=yes + if test "$pmix_pthread_process_shared" = "yes"; then : + _x_ac_pthread_lock_found=1 +fi + +else + pmix_pthread_rwlockattr_setpshared=no +fi + + ac_fn_c_check_func "$LINENO" "pthread_mutexattr_setpshared" "ac_cv_func_pthread_mutexattr_setpshared" +if test "x$ac_cv_func_pthread_mutexattr_setpshared" = xyes; then : + pmix_pthread_mutexattr_setpshared=yes +else + pmix_pthread_mutexattr_setpshared=no +fi + + + if test "$pmix_pthread_rwlockattr_setkind_np" = "yes" && test "$pmix_pthread_rwlock_prefer_writer_nonrecursive_np" = "yes"; then : + pmix_prefer_write_nonrecursive=1 +else + pmix_prefer_write_nonrecursive=0 +fi + + if test "$_x_ac_pthread_lock_found" = "0"; then + if test "$_x_ac_fcntl_lock_found" = "1"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: dstore: pthread-based locking not found, will use fcntl-based locking." >&5 +$as_echo "$as_me: WARNING: dstore: pthread-based locking not found, will use fcntl-based locking." >&2;} + else + as_fn_error $? "dstore: no available locking mechanisms was found. Can not continue. Try disabling dstore" "$LINENO" 5 + fi + fi + else + if test "$_x_ac_fcntl_lock_found" = "0"; then + as_fn_error $? "dstore: no available locking mechanisms was found. Can not continue. Try disabling dstore" "$LINENO" 5 + fi + fi + LIBS="$orig_libs" + + +cat >>confdefs.h <<_ACEOF +#define PMIX_PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP $pmix_prefer_write_nonrecursive +_ACEOF + + if test "$_x_ac_pthread_lock_found" = "1"; then + HAVE_DSTORE_PTHREAD_LOCK_TRUE= + HAVE_DSTORE_PTHREAD_LOCK_FALSE='#' +else + HAVE_DSTORE_PTHREAD_LOCK_TRUE='#' + HAVE_DSTORE_PTHREAD_LOCK_FALSE= +fi + + if test "$_x_ac_fcntl_lock_found" = "1"; then + HAVE_DSTORE_FCNTL_LOCK_TRUE= + HAVE_DSTORE_FCNTL_LOCK_FALSE='#' +else + HAVE_DSTORE_FCNTL_LOCK_TRUE='#' + HAVE_DSTORE_FCNTL_LOCK_FALSE= +fi + # Unwind the index @@ -36488,8 +36115,48 @@ done + + + ################################## + # MCA + ################################## + + pmix_show_title "Modular Component Architecture (MCA) setup" + + # + # Do we want to show component load error messages by default? + # + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for default value of mca_base_component_show_load_errors" >&5 +$as_echo_n "checking for default value of mca_base_component_show_load_errors... " >&6; } + # Check whether --enable-show-load-errors-by-default was given. +if test "${enable_show_load_errors_by_default+set}" = set; then : + enableval=$enable_show_load_errors_by_default; fi + if test "$enable_show_load_errors_by_default" = "no" ; then + PMIX_SHOW_LOAD_ERRORS_DEFAULT=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled by default" >&5 +$as_echo "disabled by default" >&6; } + else + PMIX_SHOW_LOAD_ERRORS_DEFAULT=$WANT_DEBUG + if test "$WANT_DEBUG" = "1"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabled by default" >&5 +$as_echo "enabled by default" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled by default" >&5 +$as_echo "disabled by default" >&6; } + fi + fi + +cat >>confdefs.h <<_ACEOF +#define PMIX_SHOW_LOAD_ERRORS_DEFAULT $PMIX_SHOW_LOAD_ERRORS_DEFAULT +_ACEOF + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for subdir args" >&5 +$as_echo_n "checking for subdir args... " >&6; } + # Is the private index set? If not, set it. @@ -36501,7 +36168,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do + for pmix_var in subdirs_str subdirs_skip subdirs_args subdirs_arg; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -36520,32 +36187,72 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + pmix_str="pmix_scope_$pmix_scope_index=\"subdirs_str subdirs_skip subdirs_args subdirs_arg\"" eval $pmix_str unset pmix_str env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` +# +# Invoke configure in subdirectories. +# +# pmix_subdir_args is the name of the variable to assign the output to +# - for arg in $pmix_libevent_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${LIBS}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$LIBS"; then : - LIBS=$arg -else - LIBS="$LIBS $arg" -fi -fi - done +# +# Make a list of command line args --eliminate the --srcdir and +# --cache-file args, because we need to replace them with our own +# values when invoking the sub-configure script. Also eliminate +# the --with-platform as this will confuse any subdir with +# similar options +# + +subdirs_args= +subdirs_skip=no + +eval "set x $ac_configure_args" +shift +for subdirs_arg +do + if test "$subdirs_skip" = "yes"; then + subdirs_skip=no + else + case $subdirs_arg in + -cache-file | --cache-file | -cache | --cache) + subdirs_skip=yes + ;; + --config-cache | -C) + ;; + -cache-file=* | --cache-file=*) + ;; + -srcdir | --srcdir) + subdirs_skip=yes + ;; + -srcdir=* | --srcdir=*) + ;; + -with-platform=* | --with-platform=*) + ;; + *) + case $subdir_arg in + *\'*) subdir_arg=`echo "$subdir_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + subdirs_args="$subdirs_args '$subdirs_arg'" + ;; + esac + fi +done + +# +# Assign the output +# + +subdirs_str=pmix_subdir_args=\"$subdirs_args\" +eval "$subdirs_str" + +# +# Clean up +# # Unwind the index @@ -36568,570 +36275,619 @@ unset $pmix_var done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_subdir_args" >&5 +$as_echo "$pmix_subdir_args" >&6; } - if test $pmix_libevent_support -eq 1; then - # Ensure that this libevent has the symbol - # "evthread_set_lock_callbacks", which will only exist if - # libevent was configured with thread support. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for evthread_set_lock_callbacks in -levent" >&5 -$as_echo_n "checking for evthread_set_lock_callbacks in -levent... " >&6; } -if ${ac_cv_lib_event_evthread_set_lock_callbacks+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-levent $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char evthread_set_lock_callbacks (); -int -main () -{ -return evthread_set_lock_callbacks (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_event_evthread_set_lock_callbacks=yes -else - ac_cv_lib_event_evthread_set_lock_callbacks=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_event_evthread_set_lock_callbacks" >&5 -$as_echo "$ac_cv_lib_event_evthread_set_lock_callbacks" >&6; } -if test "x$ac_cv_lib_event_evthread_set_lock_callbacks" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBEVENT 1 -_ACEOF - LIBS="-levent $LIBS" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: External libevent does not have thread support" >&5 -$as_echo "$as_me: WARNING: External libevent does not have thread support" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIx requires libevent to be compiled with" >&5 -$as_echo "$as_me: WARNING: PMIx requires libevent to be compiled with" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: thread support enabled" >&5 -$as_echo "$as_me: WARNING: thread support enabled" >&2;} - pmix_libevent_support=0 + # Find which components should be built as run-time loadable components + # Acceptable combinations: + # + # [default -- no option given] + # --enable-mca-dso + # --enable-mca-dso=[.+,]*COMPONENT_TYPE[.+,]* + # --enable-mca-dso=[.+,]*COMPONENT_TYPE-COMPONENT_NAME[.+,]* + # --disable-mca-dso + # + # Check whether --enable-mca-no-build was given. +if test "${enable_mca_no_build+set}" = set; then : + enableval=$enable_mca_no_build; fi - fi - if test $pmix_libevent_support -eq 1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for evthread_use_pthreads in -levent_pthreads" >&5 -$as_echo_n "checking for evthread_use_pthreads in -levent_pthreads... " >&6; } -if ${ac_cv_lib_event_pthreads_evthread_use_pthreads+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-levent_pthreads $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Check whether --enable-mca-dso was given. +if test "${enable_mca_dso+set}" = set; then : + enableval=$enable_mca_dso; +fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char evthread_use_pthreads (); -int -main () -{ -return evthread_use_pthreads (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_event_pthreads_evthread_use_pthreads=yes -else - ac_cv_lib_event_pthreads_evthread_use_pthreads=no + # Check whether --enable-mca-static was given. +if test "${enable_mca_static+set}" = set; then : + enableval=$enable_mca_static; fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + + # Check whether --enable-mca-direct was given. +if test "${enable_mca_direct+set}" = set; then : + enableval=$enable_mca_direct; fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_event_pthreads_evthread_use_pthreads" >&5 -$as_echo "$ac_cv_lib_event_pthreads_evthread_use_pthreads" >&6; } -if test "x$ac_cv_lib_event_pthreads_evthread_use_pthreads" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBEVENT_PTHREADS 1 -_ACEOF - LIBS="-levent_pthreads $LIBS" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: External libevent does not have thread support" >&5 -$as_echo "$as_me: WARNING: External libevent does not have thread support" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIx requires libevent to be compiled with" >&5 -$as_echo "$as_me: WARNING: PMIx requires libevent to be compiled with" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: thread support enabled" >&5 -$as_echo "$as_me: WARNING: thread support enabled" >&2;} - pmix_libevent_support=0 -fi - - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which components should be disabled" >&5 +$as_echo_n "checking which components should be disabled... " >&6; } + if test "$enable_mca_no_build" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + as_fn_error $? "*** The enable-mca-no-build flag requires an explicit list +*** of type-component pairs. For example, --enable-mca-direct=pml-ob1" "$LINENO" 5 + else + ifs_save="$IFS" + IFS="${IFS}$PATH_SEPARATOR," + msg= + for item in $enable_mca_no_build; do + type="`echo $item | cut -s -f1 -d-`" + comp="`echo $item | cut -s -f2- -d-`" + if test -z $type ; then + type=$item + fi + if test -z $comp ; then + str="`echo DISABLE_${type}=1 | sed s/-/_/g`" + eval $str + msg="$item $msg" + else + str="`echo DISABLE_${type}_${comp}=1 | sed s/-/_/g`" + eval $str + msg="$item $msg" + fi + done + IFS="$ifs_save" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $msg" >&5 +$as_echo "$msg" >&6; } + unset msg - CPPFLAGS="$pmix_check_libevent_save_CPPFLAGS" - LDFLAGS="$pmix_check_libevent_save_LDFLAGS" - LIBS="$pmix_check_libevent_save_LIBS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking will libevent support be built" >&5 -$as_echo_n "checking will libevent support be built... " >&6; } - if test $pmix_libevent_support -eq 1; then + # + # First, add all the mca-direct components / types into the mca-static + # lists and create a list of component types that are direct compile, + # in the form DIRECT_[type]=[component] + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which components should be direct-linked into the library" >&5 +$as_echo_n "checking which components should be direct-linked into the library... " >&6; } + if test "$enable_mca_direct" = "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - # Set output variables - PMIX_EVENT_HEADER="" - PMIX_EVENT2_THREAD_HEADER="" - -cat >>confdefs.h <<_ACEOF -#define PMIX_EVENT_HEADER $PMIX_EVENT_HEADER -_ACEOF - - pmix_libevent_source=$pmix_event_dir - if test "$pmix_event_defaults" = "no"; then : + as_fn_error $? "*** The enable-mca-direct flag requires an explicit list of +*** type-component pairs. For example, --enable-mca-direct=pml-ob1,coll-basic" "$LINENO" 5 + elif test ! -z "$enable_mca_direct" && test "$enable_mca_direct" != "" ; then + # + # we need to add this into the static list, unless the static list + # is everything + # + if test "$enable_mca_static" = "no" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Re-enabling static component support for direct call" >&5 +$as_echo "$as_me: WARNING: *** Re-enabling static component support for direct call" >&2;} + enable_mca_static="$enable_mca_direct" + elif test -z "$enable_mca_static" ; then + enable_mca_static="$enable_mca_direct" + elif test "$enable_mca_static" != "yes" ; then + enable_mca_static="$enable_mca_direct,$enable_mca_static" + fi + ifs_save="$IFS" + IFS="${IFS}$PATH_SEPARATOR," + msg= + for item in $enable_mca_direct; do + type="`echo $item | cut -f1 -d-`" + comp="`echo $item | cut -f2- -d-`" + if test -z $type || test -z $comp ; then + as_fn_error $? "*** The enable-mca-direct flag requires a +*** list of type-component pairs. Invalid input detected." "$LINENO" 5 + else + str="`echo DIRECT_$type=$comp | sed s/-/_/g`" + eval $str + msg="$item $msg" + fi + done + IFS="$ifs_save" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $msg" >&5 +$as_echo "$msg" >&6; } + unset msg + # + # Second, set the DSO_all and STATIC_all variables. conflict + # resolution (prefer static) is done in the big loop below + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which components should be run-time loadable" >&5 +$as_echo_n "checking which components should be run-time loadable... " >&6; } + if test "$enable_static" != "no"; then + DSO_all=0 + msg=none + elif test -z "$enable_mca_dso" || test "$enable_mca_dso" = "yes"; then + DSO_all=1 + msg=all + elif test "$enable_mca_dso" = "no"; then + DSO_all=0 + msg=none + else + DSO_all=0 + ifs_save="$IFS" + IFS="${IFS}$PATH_SEPARATOR," + msg= + for item in $enable_mca_dso; do + str="`echo DSO_$item=1 | sed s/-/_/g`" + eval $str + msg="$item $msg" + done + IFS="$ifs_save" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $msg" >&5 +$as_echo "$msg" >&6; } + unset msg + if test "$enable_static" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Shared libraries have been disabled (--disable-shared)" >&5 +$as_echo "$as_me: WARNING: *** Shared libraries have been disabled (--disable-shared)" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Building MCA components as DSOs automatically disabled" >&5 +$as_echo "$as_me: WARNING: *** Building MCA components as DSOs automatically disabled" >&2;} + fi - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which components should be static" >&5 +$as_echo_n "checking which components should be static... " >&6; } + if test "$enable_mca_static" = "yes"; then + STATIC_all=1 + msg=all + elif test -z "$enable_mca_static" || test "$enable_mca_static" = "no"; then + STATIC_all=0 + msg=none + else + STATIC_all=0 + ifs_save="$IFS" + IFS="${IFS}$PATH_SEPARATOR," + msg= + for item in $enable_mca_static; do + str="`echo STATIC_$item=1 | sed s/-/_/g`" + eval $str + msg="$item $msg" + done + IFS="$ifs_save" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $msg" >&5 +$as_echo "$msg" >&6; } + unset msg - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + # now configure the PMIx project. Most + # of the hard stuff is in here + MCA_PROJECT_SUBDIRS= - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # can't use a variable rename here because these need to be evaled + # at auto* time. - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + pmix_show_subtitle "Configuring MCA" - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for frameworks" >&5 +$as_echo_n "checking for frameworks... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: common, bfrops, gds, pcompress, pdl, pif, pinstalldirs, plog, pnet, preg, psec, psensor, pshmem, psquash, ptl" >&5 +$as_echo "common, bfrops, gds, pcompress, pdl, pif, pinstalldirs, plog, pnet, preg, psec, psensor, pshmem, psquash, ptl" >&6; } + # iterate through the list of frameworks. There is something + # funky with m4 foreach if the list is defined, but empty. It + # will call the 3rd argument once with an empty value for the + # first argument. Protect against calling MCA_CONFIGURE_FRAMEWORK + # with an empty second argument. Grrr.... + # if there isn't a project list, abort + # + # Also setup two variables for Makefiles: + # MCA_project_FRAMEWORKS - list of frameworks in that project + # MCA_project_FRAMEWORK_LIBS - list of libraries (or variables pointing + # to more libraries) that must be included + # in the project's main library - for arg in $pmix_libevent_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${CPPFLAGS}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$CPPFLAGS"; then : - CPPFLAGS=$arg -else - CPPFLAGS="$CPPFLAGS $arg" -fi -fi - done + MCA_pmix_FRAMEWORKS= + MCA_pmix_FRAMEWORKS_SUBDIRS= + MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS= + MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS= + MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS= + MCA_pmix_FRAMEWORK_LIBS= - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + MCA_pmix_FRAMEWORKS="common $MCA_pmix_FRAMEWORKS" + MCA_pmix_FRAMEWORKS_SUBDIRS="mca/common $MCA_pmix_FRAMEWORKS_SUBDIRS" + MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="\$(MCA_pmix_common_ALL_SUBDIRS) $MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS" + MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="\$(MCA_pmix_common_DSO_SUBDIRS) $MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS" + MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="\$(MCA_pmix_common_STATIC_SUBDIRS) $MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS" - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_common_STATIC_LTLIBS)" - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + pmix_show_subsubtitle "Configuring MCA framework common" + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=src/mca/common + as_dir=$outdir; as_fn_mkdir_p - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + # emit Makefile rule + ac_config_files="$ac_config_files src/mca/common/Makefile" - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework common" >&5 +$as_echo_n "checking for no configure components in framework common... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework common" >&5 +$as_echo_n "checking for m4 configure components in framework common... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: dstore" >&5 +$as_echo "dstore" >&6; } + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - for arg in $pmix_libevent_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${LDFLAGS}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$LDFLAGS"; then : - LDFLAGS=$arg -else - LDFLAGS="$LDFLAGS $arg" -fi -fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # run the configure logic for the no-config components - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + # configure components that use built-in configuration scripts -fi + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + pmix_show_subsubsubtitle "MCA component common:dstore (m4 configuration macro)" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + component_path="$srcdir/src/mca/common/dstore" + want_component=0 + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "dstore" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - for arg in $pmix_libevent_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${LIBS}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_common" = "1"; then : + want_component=0 fi - done + if test "$DISABLE_common_dstore" = "1"; then : + want_component=0 fi - if test "$pmix_append" = "1"; then : - if test -z "$LIBS"; then : - LIBS=$arg + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else - LIBS="$LIBS $arg" -fi + should_build=0 fi - done + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + SHARED_FRAMEWORK="$DSO_common" + SHARED_COMPONENT="$DSO_common_dstore" - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + STATIC_FRAMEWORK="$STATIC_common" + STATIC_COMPONENT="$STATIC_common_dstore" - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + shared_mode_override=static + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:dstore compile mode" >&5 +$as_echo_n "checking for MCA component common:dstore compile mode... " >&6; } + if test "$DIRECT_common" = "dstore" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } fi -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_LIBEVENT $pmix_libevent_support -_ACEOF + # try to configure the component + ac_config_files="$ac_config_files src/mca/common/dstore/Makefile" + should_build=$should_build - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1"; then : -fi -fi - if test $pmix_libevent_support -eq 1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking libevent header" >&5 -$as_echo_n "checking libevent header... " >&6; } -cat >>confdefs.h <<_ACEOF -#define PMIX_EVENT_HEADER $PMIX_EVENT_HEADER -_ACEOF + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/common/dstore/post_configure.sh" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PMIX_EVENT_HEADER" >&5 -$as_echo "$PMIX_EVENT_HEADER" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking libevent2/thread header" >&5 -$as_echo_n "checking libevent2/thread header... " >&6; } + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components dstore" -cat >>confdefs.h <<_ACEOF -#define PMIX_EVENT2_THREAD_HEADER $PMIX_EVENT2_THREAD_HEADER -_ACEOF + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components dstore" + else + if test "common" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/common/dstore/lib${PMIX_LIB_PREFIX}mca_common_dstore.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/common/dstore/libmca_common_dstore.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_common_dstore_component;" >> $outfile.extern + echo " &mca_common_dstore_component, " >> $outfile.struct + static_components="$static_components dstore" + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PMIX_EVENT2_THREAD_HEADER" >&5 -$as_echo "$PMIX_EVENT2_THREAD_HEADER" >&6; } + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:dstore can compile" >&5 +$as_echo_n "checking if MCA component common:dstore can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_common" = "dstore" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_common_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** common component dstore was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_common" = "dstore" ; then +as_fn_error $? "*** common component dstore was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:dstore can compile" >&5 +$as_echo_n "checking if MCA component common:dstore can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + # If this component was requested as the default for this + # type, then abort. + if test "$with_common" = "dstore" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dstore\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"dstore\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_summary_section pmix_summary_line pmix_summary_section_current; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "dstore" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dstore\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"dstore\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_summary_section pmix_summary_line pmix_summary_section_current\"" - eval $pmix_str - unset pmix_str + # add component to all component list + all_components="$all_components dstore" +fi - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - pmix_summary_section=$(echo External Packages | tr ' ' '_') - pmix_summary_line="Libevent: yes ($pmix_libevent_source)" - pmix_summary_section_current=$(eval echo \$pmix_summary_values_$pmix_summary_section) + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_pmix_common_dstore_DSO=1 +else + BUILD_pmix_common_dstore_DSO=0 +fi + if test "$BUILD_pmix_common_dstore_DSO" = "1"; then + MCA_BUILD_pmix_common_dstore_DSO_TRUE= + MCA_BUILD_pmix_common_dstore_DSO_FALSE='#' +else + MCA_BUILD_pmix_common_dstore_DSO_TRUE='#' + MCA_BUILD_pmix_common_dstore_DSO_FALSE= +fi - if test -z "$pmix_summary_section_current" ; then - if test -z "$pmix_summary_sections" ; then - pmix_summary_sections=$pmix_summary_section - else - pmix_summary_sections="$pmix_summary_sections $pmix_summary_section" - fi - eval pmix_summary_values_$pmix_summary_section=\"$pmix_summary_line\" - else - eval pmix_summary_values_$pmix_summary_section=\"$pmix_summary_section_current,$pmix_summary_line\" - fi + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + unset compile_mode - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - fi + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - if test $pmix_libevent_support -eq 1 && test $pmix_libev_support -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Both libevent and libev support have been specified." >&5 -$as_echo "$as_me: WARNING: Both libevent and libev support have been specified." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Only one can be configured against at a time. Please" >&5 -$as_echo "$as_me: WARNING: Only one can be configured against at a time. Please" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: remove one from the configure command line." >&5 -$as_echo "$as_me: WARNING: remove one from the configure command line." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -fi - if test $pmix_libevent_support -eq 0 && test $pmix_libev_support -eq 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Either libevent or libev support is required, but neither" >&5 -$as_echo "$as_me: WARNING: Either libevent or libev support is required, but neither" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: was found. Please use the configure options to point us" >&5 -$as_echo "$as_me: WARNING: was found. Please use the configure options to point us" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: to where we can find one or the other library" >&5 -$as_echo "$as_me: WARNING: to where we can find one or the other library" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -fi + if test "1" != "0"; then : - ################################## - # HWLOC - ################################## - pmix_show_title "HWLOC" + for component_path in $srcdir/src/mca/common/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + pmix_show_subsubsubtitle "MCA component common:$component (need to configure)" + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" -# Check whether --with-hwloc-header was given. -if test "${with_hwloc_header+set}" = set; then : - withval=$with_hwloc_header; -fi + component_path="$srcdir/src/mca/common/$component" + want_component=0 - if test "$pmix_mode" = "embedded"; then : + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for hwloc" >&5 -$as_echo_n "checking for hwloc... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: assumed available (embedded mode)" >&5 -$as_echo "assumed available (embedded mode)" >&6; } + # if we were explicitly disabled, don't build :) + if test "$DISABLE_common" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_common_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi - if test -z "$with_hwloc_header" || test "$with_hwloc_header" = "yes"; then : - PMIX_HWLOC_HEADER="" + if test "$want_component" = "1"; then : + should_build=1 else - PMIX_HWLOC_HEADER="$with_hwloc_header" + should_build=0 fi - pmix_hwloc_support=1 - pmix_hwloc_source=embedded - pmix_hwloc_support_will_build=yes -else + SHARED_FRAMEWORK="$DSO_common" + str="SHARED_COMPONENT=\$DSO_common_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_common" + str="STATIC_COMPONENT=\$STATIC_common_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:$component compile mode" >&5 +$as_echo_n "checking for MCA component common:$component compile mode... " >&6; } + if test "$DIRECT_common" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then @@ -37144,7 +36900,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_hwloc_dir pmix_hwloc_libdir pmix_hwloc_standard_lib_location pmix_hwloc_standard_header_location; do + for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -37163,7 +36919,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_hwloc_dir pmix_hwloc_libdir pmix_hwloc_standard_lib_location pmix_hwloc_standard_header_location\"" + pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $pmix_str unset pmix_str @@ -37171,15425 +36927,129 @@ pmix_scope_index=`expr $pmix_scope_index + 1` +# +# Invoke configure in a specific subdirectory. +# +# src/mca/common/$component is the directory to invoke in +# $pmix_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="src/mca/common/$component" +subdir_args="$pmix_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" -# Check whether --with-hwloc was given. -if test "${with_hwloc+set}" = set; then : - withval=$with_hwloc; -fi +# +# Sanity checks +# +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 +$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # -# Check whether --with-hwloc-libdir was given. -if test "${with_hwloc_libdir+set}" = set; then : - withval=$with_hwloc_libdir; -fi + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac - pmix_hwloc_support=0 - if test "$with_hwloc" = "internal" || test "$with_hwloc" = "external"; then : - with_hwloc= -fi + # + # Move into the target directory + # - if test "$with_hwloc" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for hwloc in" >&5 -$as_echo_n "checking for hwloc in... " >&6; } - if test ! -z "$with_hwloc" && test "$with_hwloc" != "yes"; then - pmix_hwloc_dir=$with_hwloc - pmix_hwloc_standard_header_location=no - pmix_hwloc_standard_lib_location=no - if test -z "$with_hwloc_libdir" || test "$with_hwloc_libdir" = "yes"; then : - if test -d $with_hwloc/lib; then - pmix_hwloc_libdir=$with_hwloc/lib - elif test -d $with_hwloc/lib64; then - pmix_hwloc_libdir=$with_hwloc/lib64 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Could not find $with_hwloc/lib or $with_hwloc/lib64" >&5 -$as_echo "Could not find $with_hwloc/lib or $with_hwloc/lib64" >&6; } - as_fn_error $? "Can not continue" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_hwloc_dir and $pmix_hwloc_libdir" >&5 -$as_echo "$pmix_hwloc_dir and $pmix_hwloc_libdir" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_hwloc_libdir" >&5 -$as_echo "$with_hwloc_libdir" >&6; } -fi - else - pmix_hwloc_dir=/usr/include - if test -d /usr/lib; then - pmix_hwloc_libdir=/usr/lib - elif test -d /usr/lib64; then - pmix_hwloc_libdir=/usr/lib64 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find /usr/lib or /usr/lib64 - you may" >&5 -$as_echo "$as_me: WARNING: Could not find /usr/lib or /usr/lib64 - you may" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: need to specify --with-hwloc_libdir=" >&5 -$as_echo "$as_me: WARNING: need to specify --with-hwloc_libdir=" >&2;} - as_fn_error $? "Can not continue" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 -$as_echo "(default search paths)" >&6; } - pmix_hwloc_standard_header_location=yes - pmix_hwloc_standard_lib_location=yes - fi - if test ! -z "$with_hwloc_libdir" && test "$with_hwloc_libdir" != "yes"; then : - pmix_hwloc_libdir="$with_hwloc_libdir" - pmix_hwloc_standard_lib_location=no -fi + subdir_parent=`pwd` + cd $subdir_dir + # + # Make a "../" for each directory in $subdir_dir. + # - pmix_check_package_pmix_hwloc_save_CPPFLAGS="$CPPFLAGS" - pmix_check_package_pmix_hwloc_save_LDFLAGS="$LDFLAGS" - pmix_check_package_pmix_hwloc_save_LIBS="$LIBS" + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - pmix_check_package_pmix_hwloc_orig_CPPFLAGS="$pmix_hwloc_CPPFLAGS" - pmix_check_package_pmix_hwloc_orig_LDFLAGS="$pmix_hwloc_LDFLAGS" - pmix_check_package_pmix_hwloc_orig_LIBS="$pmix_hwloc_LIBS" + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + # + # Construct the --cache-file argument + # - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + # + # Invoke the configure script in the subdirectory + # - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_hwloc_h - pmix_check_package_header_happy="no" + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi - # get rid of the trailing slash(es) - hdir_prefix=$(echo $pmix_hwloc_dir | sed -e 'sX/*$XXg') + # + # Go back to the topdir + # - if test "$hdir_prefix" = "" || \ - test "$hdir_prefix" = "/usr" || \ - test "$hdir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in hwloc.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "hwloc.h" "ac_cv_header_hwloc_h" "$ac_includes_default" -if test "x$ac_cv_header_hwloc_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_HWLOC_H 1 -_ACEOF - pmix_check_package_header_happy="yes" + cd $subdir_parent fi -done - - if test "$pmix_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_hwloc_h -fi -fi - - if test "$pmix_check_package_header_happy" = "no"; then : - if test "$hdir_prefix" != ""; then : - pmix_hwloc_CPPFLAGS="$pmix_hwloc_CPPFLAGS -I$hdir_prefix" - CPPFLAGS="$CPPFLAGS -I$hdir_prefix" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix" >&5 -$as_echo "looking for header in $hdir_prefix" >&6; } - for ac_header in hwloc.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "hwloc.h" "ac_cv_header_hwloc_h" "$ac_includes_default" -if test "x$ac_cv_header_hwloc_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_HWLOC_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi - -done - - if test "$pmix_check_package_header_happy" = "no"; then : - unset ac_cv_header_hwloc_h - pmix_hwloc_CPPFLAGS="$pmix_hwloc_CPPFLAGS -I$hdir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$hdir_prefix/include" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix/include" >&5 -$as_echo "looking for header in $hdir_prefix/include" >&6; } - for ac_header in hwloc.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "hwloc.h" "ac_cv_header_hwloc_h" "$ac_includes_default" -if test "x$ac_cv_header_hwloc_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_HWLOC_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi - -done - -fi -fi -fi - - if test "$pmix_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - # see comment above - unset ac_cv_lib_hwloc_hwloc_topology_init - pmix_check_package_lib_happy="no" - - # get rid of the trailing slash(es) - libdir_prefix=$(echo $pmix_hwloc_libdir | sed -e 'sX/*$XXg') - - if test "$libdir_prefix" != ""; then : - # libdir was specified - search only there - pmix_hwloc_LDFLAGS="$pmix_hwloc_LDFLAGS -L$libdir_prefix" - LDFLAGS="$LDFLAGS -L$libdir_prefix" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hwloc_topology_init" >&5 -$as_echo_n "checking for library containing hwloc_topology_init... " >&6; } -if ${ac_cv_search_hwloc_topology_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char hwloc_topology_init (); -int -main () -{ -return hwloc_topology_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' hwloc; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lhwloc $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_hwloc_topology_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_hwloc_topology_init+:} false; then : - break -fi -done -if ${ac_cv_search_hwloc_topology_init+:} false; then : - -else - ac_cv_search_hwloc_topology_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hwloc_topology_init" >&5 -$as_echo "$ac_cv_search_hwloc_topology_init" >&6; } -ac_res=$ac_cv_search_hwloc_topology_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - LDFLAGS="$pmix_check_package_pmix_hwloc_save_LDFLAGS" - pmix_hwloc_LDFLAGS="$pmix_check_package_pmix_hwloc_orig_LDFLAGS" - unset ac_cv_lib_hwloc_hwloc_topology_init -fi -else - # libdir was not specified - go through search path - # get rid of the trailing slash(es) - libdir_prefix=$(echo $pmix_hwloc_dir | sed -e 'sX/*$XXg') - - # first try standard locations as otherwise our - # searches with libdir_prefix locations might come - # back positive and unnecessarily add an LDFLAG - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hwloc_topology_init" >&5 -$as_echo_n "checking for library containing hwloc_topology_init... " >&6; } -if ${ac_cv_search_hwloc_topology_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char hwloc_topology_init (); -int -main () -{ -return hwloc_topology_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' hwloc; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lhwloc $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_hwloc_topology_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_hwloc_topology_init+:} false; then : - break -fi -done -if ${ac_cv_search_hwloc_topology_init+:} false; then : - -else - ac_cv_search_hwloc_topology_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hwloc_topology_init" >&5 -$as_echo "$ac_cv_search_hwloc_topology_init" >&6; } -ac_res=$ac_cv_search_hwloc_topology_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_hwloc_save_LDFLAGS" - pmix_hwloc_LDFLAGS="$pmix_check_package_pmix_hwloc_orig_LDFLAGS" - unset ac_cv_lib_hwloc_hwloc_topology_init -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # if we didn't find it, check the libdir_prefix/lib64 directory - if test "$libdir_prefix" != "" && \ - test "$libdir_prefix" != "/usr" && \ - test "$libdir_prefix" != "/usr/local"; then : - pmix_hwloc_LDFLAGS="$pmix_hwloc_LDFLAGS -L$libdir_prefix/lib64" - LDFLAGS="$LDFLAGS -L$libdir_prefix/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib64" >&5 -$as_echo "looking for library in $libdir_prefix/lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hwloc_topology_init" >&5 -$as_echo_n "checking for library containing hwloc_topology_init... " >&6; } -if ${ac_cv_search_hwloc_topology_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char hwloc_topology_init (); -int -main () -{ -return hwloc_topology_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' hwloc; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lhwloc $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_hwloc_topology_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_hwloc_topology_init+:} false; then : - break -fi -done -if ${ac_cv_search_hwloc_topology_init+:} false; then : - -else - ac_cv_search_hwloc_topology_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hwloc_topology_init" >&5 -$as_echo "$ac_cv_search_hwloc_topology_init" >&6; } -ac_res=$ac_cv_search_hwloc_topology_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_hwloc_save_LDFLAGS" - pmix_hwloc_LDFLAGS="$pmix_check_package_pmix_hwloc_orig_LDFLAGS" - unset ac_cv_lib_hwloc_hwloc_topology_init -fi -fi -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # if we still haven't found it, check the libdir_prefix/lib directory - if test "$libdir_prefix" != "" && \ - test "$libdir_prefix" != "/usr" && \ - test "$libdir_prefix" != "/usr/local"; then : - pmix_hwloc_LDFLAGS="$pmix_hwloc_LDFLAGS -L$libdir_prefix/lib" - LDFLAGS="$LDFLAGS -L$libdir_prefix/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib" >&5 -$as_echo "looking for library in $libdir_prefix/lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hwloc_topology_init" >&5 -$as_echo_n "checking for library containing hwloc_topology_init... " >&6; } -if ${ac_cv_search_hwloc_topology_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char hwloc_topology_init (); -int -main () -{ -return hwloc_topology_init (); - ; - return 0; -} -_ACEOF -for ac_lib in '' hwloc; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lhwloc $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_hwloc_topology_init=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_hwloc_topology_init+:} false; then : - break -fi -done -if ${ac_cv_search_hwloc_topology_init+:} false; then : - -else - ac_cv_search_hwloc_topology_init=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_hwloc_topology_init" >&5 -$as_echo "$ac_cv_search_hwloc_topology_init" >&6; } -ac_res=$ac_cv_search_hwloc_topology_init -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_hwloc_save_LDFLAGS" - pmix_hwloc_LDFLAGS="$pmix_check_package_pmix_hwloc_orig_LDFLAGS" - unset ac_cv_lib_hwloc_hwloc_topology_init -fi -fi -fi - -fi - - - if test "$pmix_check_package_lib_happy" = "yes"; then : - pmix_hwloc_LIBS="-lhwloc -lhwloc" - pmix_check_package_happy="yes" -else - pmix_check_package_happy="no" -fi - if test "$pmix_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_hwloc_topology_init" != "no" && - test "$ac_cv_search_hwloc_topology_init" != "none required"; then : - pmix_hwloc_LIBS="$ac_cv_search_hwloc_topology_init -lhwloc" -else - pmix_hwloc_LIBS="-lhwloc" -fi - pmix_check_package_happy="yes" -else - pmix_check_package_happy="no" -fi - - -else - pmix_check_package_happy="no" -fi - - unset pmix_check_package_header_happy - - - - if test "$pmix_check_package_happy" = "yes"; then : - pmix_hwloc_support=1 -else - pmix_hwloc_CPPFLAGS="$pmix_check_package_pmix_hwloc_orig_CPPFLAGS" - pmix_hwloc_LDFLAGS="$pmix_check_package_pmix_hwloc_orig_LDFLAGS" - pmix_hwloc_LIBS="$pmix_check_package_pmix_hwloc_orig_LIBS" - pmix_hwloc_support=0 -fi - - CPPFLAGS="$pmix_check_package_pmix_hwloc_save_CPPFLAGS" - LDFLAGS="$pmix_check_package_pmix_hwloc_save_LDFLAGS" - LIBS="$pmix_check_package_pmix_hwloc_save_LIBS" - - - if test "$pmix_hwloc_standard_header_location" != "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pmix_hwloc_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${CPPFLAGS}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$CPPFLAGS"; then : - CPPFLAGS=$arg -else - CPPFLAGS="$CPPFLAGS $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - if test "$pmix_hwloc_standard_lib_location" != "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pmix_hwloc_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${LDFLAGS}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$LDFLAGS"; then : - LDFLAGS=$arg -else - LDFLAGS="$LDFLAGS $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pmix_hwloc_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${LIBS}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$LIBS"; then : - LIBS=$arg -else - LIBS="$LIBS $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - fi - - if test ! -z "$with_hwloc" && test "$with_hwloc" != "no" && test "$pmix_hwloc_support" != "1"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: HWLOC SUPPORT REQUESTED AND NOT FOUND" >&5 -$as_echo "$as_me: WARNING: HWLOC SUPPORT REQUESTED AND NOT FOUND" >&2;} - as_fn_error $? "CANNOT CONTINUE" "$LINENO" 5 - fi - - if test $pmix_hwloc_support = "1"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if external hwloc version is 1.5 or greater" >&5 -$as_echo_n "checking if external hwloc version is 1.5 or greater... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ - - #if HWLOC_API_VERSION < 0x00010500 - #error "hwloc API version is less than 0x00010500" - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - as_fn_error $? "Cannot continue" "$LINENO" 5 -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking will hwloc support be built" >&5 -$as_echo_n "checking will hwloc support be built... " >&6; } - if test "$pmix_hwloc_support" != "1"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - pmix_hwloc_source=none - pmix_hwloc_support_will_build=no - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_hwloc_source=$pmix_hwloc_dir - pmix_hwloc_support_will_build=yes - fi - - # Set output variables - PMIX_HWLOC_HEADER="" - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking hwloc header" >&5 -$as_echo_n "checking hwloc header... " >&6; } - -cat >>confdefs.h <<_ACEOF -#define PMIX_HWLOC_HEADER $PMIX_HWLOC_HEADER -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PMIX_HWLOC_HEADER" >&5 -$as_echo "$PMIX_HWLOC_HEADER" >&6; } - - -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_HWLOC $pmix_hwloc_support -_ACEOF - - - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_summary_section pmix_summary_line pmix_summary_section_current; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_summary_section pmix_summary_line pmix_summary_section_current\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - pmix_summary_section=$(echo External Packages | tr ' ' '_') - pmix_summary_line="HWLOC: $pmix_hwloc_support_will_build ($pmix_hwloc_source)" - pmix_summary_section_current=$(eval echo \$pmix_summary_values_$pmix_summary_section) - - if test -z "$pmix_summary_section_current" ; then - if test -z "$pmix_summary_sections" ; then - pmix_summary_sections=$pmix_summary_section - else - pmix_summary_sections="$pmix_summary_sections $pmix_summary_section" - fi - eval pmix_summary_values_$pmix_summary_section=\"$pmix_summary_line\" - else - eval pmix_summary_values_$pmix_summary_section=\"$pmix_summary_section_current,$pmix_summary_line\" - fi - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - - - - ################################## - # ZLIB COMPRESSION - ################################## - pmix_show_title "ZLIB" - - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_zlib_dir pmix_zlib_libdir pmix_zlib_standard_lib_location pmix_zlib_standard_header_location; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_zlib_dir pmix_zlib_libdir pmix_zlib_standard_lib_location pmix_zlib_standard_header_location\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - -# Check whether --with-zlib was given. -if test "${with_zlib+set}" = set; then : - withval=$with_zlib; -fi - - - -# Check whether --with-zlib-libdir was given. -if test "${with_zlib_libdir+set}" = set; then : - withval=$with_zlib_libdir; -fi - - - pmix_zlib_support=0 - - if test "$with_zlib" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for zlib in" >&5 -$as_echo_n "checking for zlib in... " >&6; } - if test ! -z "$with_zlib" && test "$with_zlib" != "yes"; then - pmix_zlib_dir=$with_zlib - pmix_zlib_standard_header_location=no - pmix_zlib_standard_lib_location=no - if test -z "$with_zlib_libdir" || test "$with_zlib_libdir" = "yes"; then : - if test -d $with_zlib/lib; then - pmix_zlib_libdir=$with_zlib/lib - elif test -d $with_zlib/lib64; then - pmix_zlib_libdir=$with_zlib/lib64 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Could not find $with_zlib/lib or $with_zlib/lib64" >&5 -$as_echo "Could not find $with_zlib/lib or $with_zlib/lib64" >&6; } - as_fn_error $? "Can not continue" "$LINENO" 5 - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_zlib_dir and $pmix_zlib_libdir" >&5 -$as_echo "$pmix_zlib_dir and $pmix_zlib_libdir" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_zlib_libdir" >&5 -$as_echo "$with_zlib_libdir" >&6; } -fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 -$as_echo "(default search paths)" >&6; } - pmix_zlib_standard_header_location=yes - pmix_zlib_standard_lib_location=yes - fi - if test ! -z "$with_zlib_libdir" && test "$with_zlib_libdir" != "yes"; then : - pmix_zlib_libdir="$with_zlib_libdir" - pmix_zlib_standard_lib_location=no -fi - - - pmix_check_package_pmix_zlib_save_CPPFLAGS="$CPPFLAGS" - pmix_check_package_pmix_zlib_save_LDFLAGS="$LDFLAGS" - pmix_check_package_pmix_zlib_save_LIBS="$LIBS" - - pmix_check_package_pmix_zlib_orig_CPPFLAGS="$pmix_zlib_CPPFLAGS" - pmix_check_package_pmix_zlib_orig_LDFLAGS="$pmix_zlib_LDFLAGS" - pmix_check_package_pmix_zlib_orig_LIBS="$pmix_zlib_LIBS" - - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_zlib_h - pmix_check_package_header_happy="no" - - # get rid of the trailing slash(es) - hdir_prefix=$(echo $pmix_zlib_dir | sed -e 'sX/*$XXg') - - if test "$hdir_prefix" = "" || \ - test "$hdir_prefix" = "/usr" || \ - test "$hdir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in zlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" -if test "x$ac_cv_header_zlib_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_ZLIB_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi - -done - - if test "$pmix_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_zlib_h -fi -fi - - if test "$pmix_check_package_header_happy" = "no"; then : - if test "$hdir_prefix" != ""; then : - pmix_zlib_CPPFLAGS="$pmix_zlib_CPPFLAGS -I$hdir_prefix" - CPPFLAGS="$CPPFLAGS -I$hdir_prefix" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix" >&5 -$as_echo "looking for header in $hdir_prefix" >&6; } - for ac_header in zlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" -if test "x$ac_cv_header_zlib_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_ZLIB_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi - -done - - if test "$pmix_check_package_header_happy" = "no"; then : - unset ac_cv_header_zlib_h - pmix_zlib_CPPFLAGS="$pmix_zlib_CPPFLAGS -I$hdir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$hdir_prefix/include" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix/include" >&5 -$as_echo "looking for header in $hdir_prefix/include" >&6; } - for ac_header in zlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" -if test "x$ac_cv_header_zlib_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_ZLIB_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi - -done - -fi -fi -fi - - if test "$pmix_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - # see comment above - unset ac_cv_lib_z_deflate - pmix_check_package_lib_happy="no" - - # get rid of the trailing slash(es) - libdir_prefix=$(echo $pmix_zlib_libdir | sed -e 'sX/*$XXg') - - if test "$libdir_prefix" != ""; then : - # libdir was specified - search only there - pmix_zlib_LDFLAGS="$pmix_zlib_LDFLAGS -L$libdir_prefix" - LDFLAGS="$LDFLAGS -L$libdir_prefix" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing deflate" >&5 -$as_echo_n "checking for library containing deflate... " >&6; } -if ${ac_cv_search_deflate+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char deflate (); -int -main () -{ -return deflate (); - ; - return 0; -} -_ACEOF -for ac_lib in '' z; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lz $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_deflate=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_deflate+:} false; then : - break -fi -done -if ${ac_cv_search_deflate+:} false; then : - -else - ac_cv_search_deflate=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_deflate" >&5 -$as_echo "$ac_cv_search_deflate" >&6; } -ac_res=$ac_cv_search_deflate -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - LDFLAGS="$pmix_check_package_pmix_zlib_save_LDFLAGS" - pmix_zlib_LDFLAGS="$pmix_check_package_pmix_zlib_orig_LDFLAGS" - unset ac_cv_lib_z_deflate -fi -else - # libdir was not specified - go through search path - # get rid of the trailing slash(es) - libdir_prefix=$(echo $pmix_zlib_dir | sed -e 'sX/*$XXg') - - # first try standard locations as otherwise our - # searches with libdir_prefix locations might come - # back positive and unnecessarily add an LDFLAG - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing deflate" >&5 -$as_echo_n "checking for library containing deflate... " >&6; } -if ${ac_cv_search_deflate+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char deflate (); -int -main () -{ -return deflate (); - ; - return 0; -} -_ACEOF -for ac_lib in '' z; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lz $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_deflate=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_deflate+:} false; then : - break -fi -done -if ${ac_cv_search_deflate+:} false; then : - -else - ac_cv_search_deflate=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_deflate" >&5 -$as_echo "$ac_cv_search_deflate" >&6; } -ac_res=$ac_cv_search_deflate -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_zlib_save_LDFLAGS" - pmix_zlib_LDFLAGS="$pmix_check_package_pmix_zlib_orig_LDFLAGS" - unset ac_cv_lib_z_deflate -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # if we didn't find it, check the libdir_prefix/lib64 directory - if test "$libdir_prefix" != "" && \ - test "$libdir_prefix" != "/usr" && \ - test "$libdir_prefix" != "/usr/local"; then : - pmix_zlib_LDFLAGS="$pmix_zlib_LDFLAGS -L$libdir_prefix/lib64" - LDFLAGS="$LDFLAGS -L$libdir_prefix/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib64" >&5 -$as_echo "looking for library in $libdir_prefix/lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing deflate" >&5 -$as_echo_n "checking for library containing deflate... " >&6; } -if ${ac_cv_search_deflate+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char deflate (); -int -main () -{ -return deflate (); - ; - return 0; -} -_ACEOF -for ac_lib in '' z; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lz $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_deflate=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_deflate+:} false; then : - break -fi -done -if ${ac_cv_search_deflate+:} false; then : - -else - ac_cv_search_deflate=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_deflate" >&5 -$as_echo "$ac_cv_search_deflate" >&6; } -ac_res=$ac_cv_search_deflate -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_zlib_save_LDFLAGS" - pmix_zlib_LDFLAGS="$pmix_check_package_pmix_zlib_orig_LDFLAGS" - unset ac_cv_lib_z_deflate -fi -fi -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # if we still haven't found it, check the libdir_prefix/lib directory - if test "$libdir_prefix" != "" && \ - test "$libdir_prefix" != "/usr" && \ - test "$libdir_prefix" != "/usr/local"; then : - pmix_zlib_LDFLAGS="$pmix_zlib_LDFLAGS -L$libdir_prefix/lib" - LDFLAGS="$LDFLAGS -L$libdir_prefix/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib" >&5 -$as_echo "looking for library in $libdir_prefix/lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing deflate" >&5 -$as_echo_n "checking for library containing deflate... " >&6; } -if ${ac_cv_search_deflate+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char deflate (); -int -main () -{ -return deflate (); - ; - return 0; -} -_ACEOF -for ac_lib in '' z; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lz $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_deflate=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_deflate+:} false; then : - break -fi -done -if ${ac_cv_search_deflate+:} false; then : - -else - ac_cv_search_deflate=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_deflate" >&5 -$as_echo "$ac_cv_search_deflate" >&6; } -ac_res=$ac_cv_search_deflate -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_zlib_save_LDFLAGS" - pmix_zlib_LDFLAGS="$pmix_check_package_pmix_zlib_orig_LDFLAGS" - unset ac_cv_lib_z_deflate -fi -fi -fi - -fi - - - if test "$pmix_check_package_lib_happy" = "yes"; then : - pmix_zlib_LIBS="-lz -lz" - pmix_check_package_happy="yes" -else - pmix_check_package_happy="no" -fi - if test "$pmix_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_deflate" != "no" && - test "$ac_cv_search_deflate" != "none required"; then : - pmix_zlib_LIBS="$ac_cv_search_deflate -lz" -else - pmix_zlib_LIBS="-lz" -fi - pmix_check_package_happy="yes" -else - pmix_check_package_happy="no" -fi - - -else - pmix_check_package_happy="no" -fi - - unset pmix_check_package_header_happy - - - - if test "$pmix_check_package_happy" = "yes"; then : - pmix_zlib_support=1 -else - pmix_zlib_CPPFLAGS="$pmix_check_package_pmix_zlib_orig_CPPFLAGS" - pmix_zlib_LDFLAGS="$pmix_check_package_pmix_zlib_orig_LDFLAGS" - pmix_zlib_LIBS="$pmix_check_package_pmix_zlib_orig_LIBS" - pmix_zlib_support=0 -fi - - CPPFLAGS="$pmix_check_package_pmix_zlib_save_CPPFLAGS" - LDFLAGS="$pmix_check_package_pmix_zlib_save_LDFLAGS" - LIBS="$pmix_check_package_pmix_zlib_save_LIBS" - - if test $pmix_zlib_support = "1"; then - LIBS="$LIBS -lz" - PMIX_EMBEDDED_LIBS="$PMIX_EMBEDDED_LIBS -lz" - if test "$pmix_zlib_standard_header_location" != "yes"; then - PMIX_EMBEDDED_CPPFLAGS="$PMIX_EMBEDDED_CPPFLAGS $pmix_zlib_CPPFLAGS" - CPPFLAGS="$CPPFLAGS $pmix_zlib_CPPFLAGS" - fi - if test "$pmix_zlib_standard_lib_location" != "yes"; then - PMIX_EMBEDDED_LDFLAGS="$PMIX_EMBEDDED_LDFLAGS $pmix_zlib_LDFLAGS" - LDFLAGS="$LDFLAGS $pmix_zlib_LDFLAGS" - fi - fi - fi - - if test ! -z "$with_zlib" && test "$with_zlib" != "no" && test "$pmix_zlib_support" != "1"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ZLIB SUPPORT REQUESTED AND NOT FOUND" >&5 -$as_echo "$as_me: WARNING: ZLIB SUPPORT REQUESTED AND NOT FOUND" >&2;} - as_fn_error $? "CANNOT CONTINUE" "$LINENO" 5 - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking will zlib support be built" >&5 -$as_echo_n "checking will zlib support be built... " >&6; } - if test "$pmix_zlib_support" != "1"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - fi - - -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_ZLIB $pmix_zlib_support -_ACEOF - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - - ################################## - # Dstore Locking - ################################## - - pmix_show_title "Dstore Locking" - - - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in orig_libs pmix_prefer_write_nonrecursive; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"orig_libs pmix_prefer_write_nonrecursive\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - orig_libs=$LIBS - LIBS="-lpthread $LIBS" - - _x_ac_pthread_lock_found=0 - _x_ac_fcntl_lock_found=0 - pmix_prefer_write_nonrecursive=0 - - ac_fn_c_check_member "$LINENO" "struct flock" "l_type" "ac_cv_member_struct_flock_l_type" "#include -" -if test "x$ac_cv_member_struct_flock_l_type" = xyes; then : - pmix_fcntl_flock_happy=yes - _x_ac_fcntl_lock_found=1 -else - pmix_fcntl_flock_happy=no -fi - - - if test "$DSTORE_PTHREAD_LOCK" = "1"; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking pthread_process_shared" >&5 -$as_echo_n "checking pthread_process_shared... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #ifdef PTHREAD_PROCESS_SHARED - yes - #endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_pthread_process_shared=yes -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - pmix_pthread_process_shared=no -fi -rm -f conftest* - - - ac_fn_c_check_func "$LINENO" "pthread_rwlockattr_setkind_np" "ac_cv_func_pthread_rwlockattr_setkind_np" -if test "x$ac_cv_func_pthread_rwlockattr_setkind_np" = xyes; then : - pmix_pthread_rwlockattr_setkind_np=yes - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #ifdef PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP - yes - #endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : - pmix_pthread_rwlock_prefer_writer_nonrecursive_np=yes -else - pmix_pthread_rwlock_prefer_writer_nonrecursive_np=no -fi -rm -f conftest* - -else - pmix_pthread_rwlockattr_setkind_np=no -fi - - - ac_fn_c_check_func "$LINENO" "pthread_rwlockattr_setpshared" "ac_cv_func_pthread_rwlockattr_setpshared" -if test "x$ac_cv_func_pthread_rwlockattr_setpshared" = xyes; then : - pmix_pthread_rwlockattr_setpshared=yes - if test "$pmix_pthread_process_shared" = "yes"; then : - _x_ac_pthread_lock_found=1 -fi - -else - pmix_pthread_rwlockattr_setpshared=no -fi - - ac_fn_c_check_func "$LINENO" "pthread_mutexattr_setpshared" "ac_cv_func_pthread_mutexattr_setpshared" -if test "x$ac_cv_func_pthread_mutexattr_setpshared" = xyes; then : - pmix_pthread_mutexattr_setpshared=yes -else - pmix_pthread_mutexattr_setpshared=no -fi - - - if test "$pmix_pthread_rwlockattr_setkind_np" = "yes" && test "$pmix_pthread_rwlock_prefer_writer_nonrecursive_np" = "yes"; then : - pmix_prefer_write_nonrecursive=1 -else - pmix_prefer_write_nonrecursive=0 -fi - - if test "$_x_ac_pthread_lock_found" = "0"; then - if test "$_x_ac_fcntl_lock_found" = "1"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: dstore: pthread-based locking not found, will use fcntl-based locking." >&5 -$as_echo "$as_me: WARNING: dstore: pthread-based locking not found, will use fcntl-based locking." >&2;} - else - as_fn_error $? "dstore: no available locking mechanisms was found. Can not continue. Try disabling dstore" "$LINENO" 5 - fi - fi - else - if test "$_x_ac_fcntl_lock_found" = "0"; then - as_fn_error $? "dstore: no available locking mechanisms was found. Can not continue. Try disabling dstore" "$LINENO" 5 - fi - fi - LIBS="$orig_libs" - - -cat >>confdefs.h <<_ACEOF -#define PMIX_PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP $pmix_prefer_write_nonrecursive -_ACEOF - - if test "$_x_ac_pthread_lock_found" = "1"; then - HAVE_DSTORE_PTHREAD_LOCK_TRUE= - HAVE_DSTORE_PTHREAD_LOCK_FALSE='#' -else - HAVE_DSTORE_PTHREAD_LOCK_TRUE='#' - HAVE_DSTORE_PTHREAD_LOCK_FALSE= -fi - - if test "$_x_ac_fcntl_lock_found" = "1"; then - HAVE_DSTORE_FCNTL_LOCK_TRUE= - HAVE_DSTORE_FCNTL_LOCK_FALSE='#' -else - HAVE_DSTORE_FCNTL_LOCK_TRUE='#' - HAVE_DSTORE_FCNTL_LOCK_FALSE= -fi - - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - - - ################################## - # MCA - ################################## - - pmix_show_title "Modular Component Architecture (MCA) setup" - - # - # Do we want to show component load error messages by default? - # - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for default value of mca_base_component_show_load_errors" >&5 -$as_echo_n "checking for default value of mca_base_component_show_load_errors... " >&6; } - # Check whether --enable-show-load-errors-by-default was given. -if test "${enable_show_load_errors_by_default+set}" = set; then : - enableval=$enable_show_load_errors_by_default; -fi - - if test "$enable_show_load_errors_by_default" = "no" ; then - PMIX_SHOW_LOAD_ERRORS_DEFAULT=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled by default" >&5 -$as_echo "disabled by default" >&6; } - else - PMIX_SHOW_LOAD_ERRORS_DEFAULT=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabled by default" >&5 -$as_echo "enabled by default" >&6; } - fi - -cat >>confdefs.h <<_ACEOF -#define PMIX_SHOW_LOAD_ERRORS_DEFAULT $PMIX_SHOW_LOAD_ERRORS_DEFAULT -_ACEOF - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for subdir args" >&5 -$as_echo_n "checking for subdir args... " >&6; } - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in subdirs_str subdirs_skip subdirs_args subdirs_arg; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"subdirs_str subdirs_skip subdirs_args subdirs_arg\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - -# -# Invoke configure in subdirectories. -# -# pmix_subdir_args is the name of the variable to assign the output to -# - -# -# Make a list of command line args --eliminate the --srcdir and -# --cache-file args, because we need to replace them with our own -# values when invoking the sub-configure script. Also eliminate -# the --with-platform as this will confuse any subdir with -# similar options -# - -subdirs_args= -subdirs_skip=no - -eval "set x $ac_configure_args" -shift -for subdirs_arg -do - if test "$subdirs_skip" = "yes"; then - subdirs_skip=no - else - case $subdirs_arg in - -cache-file | --cache-file | -cache | --cache) - subdirs_skip=yes - ;; - --config-cache | -C) - ;; - -cache-file=* | --cache-file=*) - ;; - -srcdir | --srcdir) - subdirs_skip=yes - ;; - -srcdir=* | --srcdir=*) - ;; - -with-platform=* | --with-platform=*) - ;; - *) - case $subdir_arg in - *\'*) subdir_arg=`echo "$subdir_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - subdirs_args="$subdirs_args '$subdirs_arg'" - ;; - esac - fi -done - -# -# Assign the output -# - -subdirs_str=pmix_subdir_args=\"$subdirs_args\" -eval "$subdirs_str" - -# -# Clean up -# - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_subdir_args" >&5 -$as_echo "$pmix_subdir_args" >&6; } - - - - - # Find which components should be built as run-time loadable components - # Acceptable combinations: - # - # [default -- no option given] - # --enable-mca-dso - # --enable-mca-dso=[.+,]*COMPONENT_TYPE[.+,]* - # --enable-mca-dso=[.+,]*COMPONENT_TYPE-COMPONENT_NAME[.+,]* - # --disable-mca-dso - # - # Check whether --enable-mca-no-build was given. -if test "${enable_mca_no_build+set}" = set; then : - enableval=$enable_mca_no_build; -fi - - # Check whether --enable-mca-dso was given. -if test "${enable_mca_dso+set}" = set; then : - enableval=$enable_mca_dso; -fi - - # Check whether --enable-mca-static was given. -if test "${enable_mca_static+set}" = set; then : - enableval=$enable_mca_static; -fi - - # Check whether --enable-mca-direct was given. -if test "${enable_mca_direct+set}" = set; then : - enableval=$enable_mca_direct; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking which components should be disabled" >&5 -$as_echo_n "checking which components should be disabled... " >&6; } - if test "$enable_mca_no_build" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - as_fn_error $? "*** The enable-mca-no-build flag requires an explicit list -*** of type-component pairs. For example, --enable-mca-direct=pml-ob1" "$LINENO" 5 - else - ifs_save="$IFS" - IFS="${IFS}$PATH_SEPARATOR," - msg= - for item in $enable_mca_no_build; do - type="`echo $item | cut -s -f1 -d-`" - comp="`echo $item | cut -s -f2- -d-`" - if test -z $type ; then - type=$item - fi - if test -z $comp ; then - str="`echo DISABLE_${type}=1 | sed s/-/_/g`" - eval $str - msg="$item $msg" - else - str="`echo DISABLE_${type}_${comp}=1 | sed s/-/_/g`" - eval $str - msg="$item $msg" - fi - done - IFS="$ifs_save" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $msg" >&5 -$as_echo "$msg" >&6; } - unset msg - - # - # First, add all the mca-direct components / types into the mca-static - # lists and create a list of component types that are direct compile, - # in the form DIRECT_[type]=[component] - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking which components should be direct-linked into the library" >&5 -$as_echo_n "checking which components should be direct-linked into the library... " >&6; } - if test "$enable_mca_direct" = "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - as_fn_error $? "*** The enable-mca-direct flag requires an explicit list of -*** type-component pairs. For example, --enable-mca-direct=pml-ob1,coll-basic" "$LINENO" 5 - elif test ! -z "$enable_mca_direct" && test "$enable_mca_direct" != "" ; then - # - # we need to add this into the static list, unless the static list - # is everything - # - if test "$enable_mca_static" = "no" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Re-enabling static component support for direct call" >&5 -$as_echo "$as_me: WARNING: *** Re-enabling static component support for direct call" >&2;} - enable_mca_static="$enable_mca_direct" - elif test -z "$enable_mca_static" ; then - enable_mca_static="$enable_mca_direct" - elif test "$enable_mca_static" != "yes" ; then - enable_mca_static="$enable_mca_direct,$enable_mca_static" - fi - - ifs_save="$IFS" - IFS="${IFS}$PATH_SEPARATOR," - msg= - for item in $enable_mca_direct; do - type="`echo $item | cut -f1 -d-`" - comp="`echo $item | cut -f2- -d-`" - if test -z $type || test -z $comp ; then - as_fn_error $? "*** The enable-mca-direct flag requires a -*** list of type-component pairs. Invalid input detected." "$LINENO" 5 - else - str="`echo DIRECT_$type=$comp | sed s/-/_/g`" - eval $str - msg="$item $msg" - fi - done - IFS="$ifs_save" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $msg" >&5 -$as_echo "$msg" >&6; } - unset msg - - # - # Second, set the DSO_all and STATIC_all variables. conflict - # resolution (prefer static) is done in the big loop below - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking which components should be run-time loadable" >&5 -$as_echo_n "checking which components should be run-time loadable... " >&6; } - if test "$enable_static" != "no"; then - DSO_all=0 - msg=none - elif test -z "$enable_mca_dso" || test "$enable_mca_dso" = "yes"; then - DSO_all=1 - msg=all - elif test "$enable_mca_dso" = "no"; then - DSO_all=0 - msg=none - else - DSO_all=0 - ifs_save="$IFS" - IFS="${IFS}$PATH_SEPARATOR," - msg= - for item in $enable_mca_dso; do - str="`echo DSO_$item=1 | sed s/-/_/g`" - eval $str - msg="$item $msg" - done - IFS="$ifs_save" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $msg" >&5 -$as_echo "$msg" >&6; } - unset msg - if test "$enable_static" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Shared libraries have been disabled (--disable-shared)" >&5 -$as_echo "$as_me: WARNING: *** Shared libraries have been disabled (--disable-shared)" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Building MCA components as DSOs automatically disabled" >&5 -$as_echo "$as_me: WARNING: *** Building MCA components as DSOs automatically disabled" >&2;} - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking which components should be static" >&5 -$as_echo_n "checking which components should be static... " >&6; } - if test "$enable_mca_static" = "yes"; then - STATIC_all=1 - msg=all - elif test -z "$enable_mca_static" || test "$enable_mca_static" = "no"; then - STATIC_all=0 - msg=none - else - STATIC_all=0 - ifs_save="$IFS" - IFS="${IFS}$PATH_SEPARATOR," - msg= - for item in $enable_mca_static; do - str="`echo STATIC_$item=1 | sed s/-/_/g`" - eval $str - msg="$item $msg" - done - IFS="$ifs_save" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $msg" >&5 -$as_echo "$msg" >&6; } - unset msg - - # now configure the PMIx project. Most - # of the hard stuff is in here - MCA_PROJECT_SUBDIRS= - - # can't use a variable rename here because these need to be evaled - # at auto* time. - - pmix_show_subtitle "Configuring MCA" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for frameworks" >&5 -$as_echo_n "checking for frameworks... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: common, bfrops, gds, pdl, pif, pinstalldirs, plog, pnet, preg, psec, psensor, pshmem, ptl" >&5 -$as_echo "common, bfrops, gds, pdl, pif, pinstalldirs, plog, pnet, preg, psec, psensor, pshmem, ptl" >&6; } - - # iterate through the list of frameworks. There is something - # funky with m4 foreach if the list is defined, but empty. It - # will call the 3rd argument once with an empty value for the - # first argument. Protect against calling MCA_CONFIGURE_FRAMEWORK - # with an empty second argument. Grrr.... - # if there isn't a project list, abort - # - # Also setup two variables for Makefiles: - # MCA_project_FRAMEWORKS - list of frameworks in that project - # MCA_project_FRAMEWORK_LIBS - list of libraries (or variables pointing - # to more libraries) that must be included - # in the project's main library - - - MCA_pmix_FRAMEWORKS= - MCA_pmix_FRAMEWORKS_SUBDIRS= - MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS= - MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS= - MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS= - MCA_pmix_FRAMEWORK_LIBS= - - MCA_pmix_FRAMEWORKS="common $MCA_pmix_FRAMEWORKS" - MCA_pmix_FRAMEWORKS_SUBDIRS="mca/common $MCA_pmix_FRAMEWORKS_SUBDIRS" - MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="\$(MCA_pmix_common_ALL_SUBDIRS) $MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS" - MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="\$(MCA_pmix_common_DSO_SUBDIRS) $MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS" - MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="\$(MCA_pmix_common_STATIC_SUBDIRS) $MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS" - - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_common_STATIC_LTLIBS)" - - pmix_show_subsubtitle "Configuring MCA framework common" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=src/mca/common - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files src/mca/common/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework common" >&5 -$as_echo_n "checking for no configure components in framework common... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework common" >&5 -$as_echo_n "checking for m4 configure components in framework common... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: dstore" >&5 -$as_echo "dstore" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - pmix_show_subsubsubtitle "MCA component common:dstore (m4 configuration macro)" - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/src/mca/common/dstore" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "dstore" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_common" = "1"; then : - want_component=0 -fi - if test "$DISABLE_common_dstore" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_common" - SHARED_COMPONENT="$DSO_common_dstore" - - STATIC_FRAMEWORK="$STATIC_common" - STATIC_COMPONENT="$STATIC_common_dstore" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:dstore compile mode" >&5 -$as_echo_n "checking for MCA component common:dstore compile mode... " >&6; } - if test "$DIRECT_common" = "dstore" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files src/mca/common/dstore/Makefile" - - should_build=$should_build - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/common/dstore/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components dstore" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components dstore" - else - if test "common" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/common/dstore/lib${PMIX_LIB_PREFIX}mca_common_dstore.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/common/dstore/libmca_common_dstore.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_common_dstore_component;" >> $outfile.extern - echo " &mca_common_dstore_component, " >> $outfile.struct - static_components="$static_components dstore" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:dstore can compile" >&5 -$as_echo_n "checking if MCA component common:dstore can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_common" = "dstore" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_common_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** common component dstore was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_common" = "dstore" ; then -as_fn_error $? "*** common component dstore was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$common_dstore_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $common_dstore_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $common_dstore_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$common_dstore_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $common_dstore_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $common_dstore_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$common_dstore_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $common_dstore_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring common_dstore_WRAPPER_EXTRA_CPPFLAGS ($common_dstore_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring common_dstore_WRAPPER_EXTRA_CPPFLAGS ($common_dstore_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:dstore can compile" >&5 -$as_echo_n "checking if MCA component common:dstore can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_common" = "dstore" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dstore\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"dstore\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "dstore" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dstore\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"dstore\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components dstore" -fi - - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_pmix_common_dstore_DSO=1 -else - BUILD_pmix_common_dstore_DSO=0 -fi - if test "$BUILD_pmix_common_dstore_DSO" = "1"; then - MCA_BUILD_pmix_common_dstore_DSO_TRUE= - MCA_BUILD_pmix_common_dstore_DSO_FALSE='#' -else - MCA_BUILD_pmix_common_dstore_DSO_TRUE='#' - MCA_BUILD_pmix_common_dstore_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - - unset compile_mode - - - - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - - if test "1" != "0"; then : - - for component_path in $srcdir/src/mca/common/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - pmix_show_subsubsubtitle "MCA component common:$component (need to configure)" - - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - - - - component_path="$srcdir/src/mca/common/$component" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_common" = "1"; then : - want_component=0 -fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_common_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi - - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi - - - SHARED_FRAMEWORK="$DSO_common" - str="SHARED_COMPONENT=\$DSO_common_$component" - eval $str - - STATIC_FRAMEWORK="$STATIC_common" - str="STATIC_COMPONENT=\$STATIC_common_$component" - eval $str - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component common:$component compile mode" >&5 -$as_echo_n "checking for MCA component common:$component compile mode... " >&6; } - if test "$DIRECT_common" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - -# -# Invoke configure in a specific subdirectory. -# -# src/mca/common/$component is the directory to invoke in -# $pmix_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="src/mca/common/$component" -subdir_args="$pmix_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 -$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - - # - # Construct the --cache-file argument - # - - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - - # - # Invoke the configure script in the subdirectory - # - - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi - - # - # Go back to the topdir - # - - cd $subdir_parent -fi - -# -# Clean up -# - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/src/mca/common/all_components/post_configure.sh" - if test -f $infile; then - - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi - - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/common/$component/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "common" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/common/$component/lib${PMIX_LIB_PREFIX}mca_common_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/common/$component/libmca_common_$component.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_common_$component_component;" >> $outfile.extern - echo " &mca_common_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:$component can compile" >&5 -$as_echo_n "checking if MCA component common:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_common" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_common_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** common component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_common" = "$component" ; then -as_fn_error $? "*** common component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$common_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - -str="line=\$common_$component_WRAPPER_EXTRA_LIBS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:$component can compile" >&5 -$as_echo_n "checking if MCA component common:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_common" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_common" ; then - if test "$DIRECT_common" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - fi - fi - done - -fi - - MCA_pmix_common_ALL_COMPONENTS="$all_components" - MCA_pmix_common_STATIC_COMPONENTS="$static_components" - MCA_pmix_common_DSO_COMPONENTS="$dso_components" - MCA_pmix_common_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_pmix_common_ALL_SUBDIRS= - for item in $all_components ; do - MCA_pmix_common_ALL_SUBDIRS="$MCA_pmix_common_ALL_SUBDIRS mca/common/$item" - done - - - - MCA_pmix_common_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_pmix_common_STATIC_SUBDIRS="$MCA_pmix_common_STATIC_SUBDIRS mca/common/$item" - done - - - - MCA_pmix_common_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_pmix_common_DSO_SUBDIRS="$MCA_pmix_common_DSO_SUBDIRS mca/common/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "common" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS bfrops" - MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/bfrops" - MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_bfrops_ALL_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_bfrops_DSO_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_bfrops_STATIC_SUBDIRS)" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/bfrops/libmca_bfrops.la" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_bfrops_STATIC_LTLIBS)" - - pmix_show_subsubtitle "Configuring MCA framework bfrops" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=src/mca/bfrops/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files src/mca/bfrops/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework bfrops" >&5 -$as_echo_n "checking for no configure components in framework bfrops... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: v12, v20, v21, v3" >&5 -$as_echo "v12, v20, v21, v3" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework bfrops" >&5 -$as_echo_n "checking for m4 configure components in framework bfrops... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - pmix_show_subsubsubtitle "MCA component bfrops:v12 (no configuration)" - - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - - - component_path="$srcdir/src/mca/bfrops/v12" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_bfrops" ; then - if test "$DIRECT_bfrops" = "v12" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_bfrops" = "1"; then : - want_component=0 -fi - if test "$DISABLE_bfrops_v12" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi - - - SHARED_FRAMEWORK="$DSO_bfrops" - SHARED_COMPONENT="$DSO_bfrops_v12" - - STATIC_FRAMEWORK="$STATIC_bfrops" - STATIC_COMPONENT="$STATIC_bfrops_v12" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component bfrops:v12 compile mode" >&5 -$as_echo_n "checking for MCA component bfrops:v12 compile mode... " >&6; } - if test "$DIRECT_bfrops" = "v12" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/bfrops/v12/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components v12" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components v12" - else - if test "bfrops" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/bfrops/v12/lib${PMIX_LIB_PREFIX}mca_bfrops_v12.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/bfrops/v12/libmca_bfrops_v12.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_bfrops_v12_component;" >> $outfile.extern - echo " &mca_bfrops_v12_component, " >> $outfile.struct - static_components="$static_components v12" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:v12 can compile" >&5 -$as_echo_n "checking if MCA component bfrops:v12 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_bfrops" = "v12" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_bfrops_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** bfrops component v12 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_bfrops" = "v12" ; then -as_fn_error $? "*** bfrops component v12 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$bfrops_v12_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v12_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v12_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$bfrops_v12_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v12_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v12_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$bfrops_v12_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v12_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring bfrops_v12_WRAPPER_EXTRA_CPPFLAGS ($bfrops_v12_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring bfrops_v12_WRAPPER_EXTRA_CPPFLAGS ($bfrops_v12_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:v12 can compile" >&5 -$as_echo_n "checking if MCA component bfrops:v12 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_bfrops" = "v12" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v12\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"v12\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_bfrops" ; then - if test "$DIRECT_bfrops" = "v12" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v12\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"v12\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components v12" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_pmix_bfrops_v12_DSO=1 - else - BUILD_pmix_bfrops_v12_DSO=0 - fi - if test "$BUILD_pmix_bfrops_v12_DSO" = "1"; then - MCA_BUILD_pmix_bfrops_v12_DSO_TRUE= - MCA_BUILD_pmix_bfrops_v12_DSO_FALSE='#' -else - MCA_BUILD_pmix_bfrops_v12_DSO_TRUE='#' - MCA_BUILD_pmix_bfrops_v12_DSO_FALSE= -fi - - - ac_config_files="$ac_config_files src/mca/bfrops/v12/Makefile" - - - unset compile_mode - - pmix_show_subsubsubtitle "MCA component bfrops:v20 (no configuration)" - - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - - - component_path="$srcdir/src/mca/bfrops/v20" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_bfrops" ; then - if test "$DIRECT_bfrops" = "v20" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_bfrops" = "1"; then : - want_component=0 -fi - if test "$DISABLE_bfrops_v20" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi - - - SHARED_FRAMEWORK="$DSO_bfrops" - SHARED_COMPONENT="$DSO_bfrops_v20" - - STATIC_FRAMEWORK="$STATIC_bfrops" - STATIC_COMPONENT="$STATIC_bfrops_v20" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component bfrops:v20 compile mode" >&5 -$as_echo_n "checking for MCA component bfrops:v20 compile mode... " >&6; } - if test "$DIRECT_bfrops" = "v20" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/bfrops/v20/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components v20" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components v20" - else - if test "bfrops" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/bfrops/v20/lib${PMIX_LIB_PREFIX}mca_bfrops_v20.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/bfrops/v20/libmca_bfrops_v20.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_bfrops_v20_component;" >> $outfile.extern - echo " &mca_bfrops_v20_component, " >> $outfile.struct - static_components="$static_components v20" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:v20 can compile" >&5 -$as_echo_n "checking if MCA component bfrops:v20 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_bfrops" = "v20" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_bfrops_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** bfrops component v20 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_bfrops" = "v20" ; then -as_fn_error $? "*** bfrops component v20 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$bfrops_v20_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v20_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v20_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$bfrops_v20_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v20_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v20_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$bfrops_v20_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v20_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring bfrops_v20_WRAPPER_EXTRA_CPPFLAGS ($bfrops_v20_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring bfrops_v20_WRAPPER_EXTRA_CPPFLAGS ($bfrops_v20_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:v20 can compile" >&5 -$as_echo_n "checking if MCA component bfrops:v20 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_bfrops" = "v20" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v20\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"v20\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_bfrops" ; then - if test "$DIRECT_bfrops" = "v20" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v20\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"v20\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components v20" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_pmix_bfrops_v20_DSO=1 - else - BUILD_pmix_bfrops_v20_DSO=0 - fi - if test "$BUILD_pmix_bfrops_v20_DSO" = "1"; then - MCA_BUILD_pmix_bfrops_v20_DSO_TRUE= - MCA_BUILD_pmix_bfrops_v20_DSO_FALSE='#' -else - MCA_BUILD_pmix_bfrops_v20_DSO_TRUE='#' - MCA_BUILD_pmix_bfrops_v20_DSO_FALSE= -fi - - - ac_config_files="$ac_config_files src/mca/bfrops/v20/Makefile" - - - unset compile_mode - - pmix_show_subsubsubtitle "MCA component bfrops:v21 (no configuration)" - - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - - - component_path="$srcdir/src/mca/bfrops/v21" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_bfrops" ; then - if test "$DIRECT_bfrops" = "v21" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_bfrops" = "1"; then : - want_component=0 -fi - if test "$DISABLE_bfrops_v21" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi - - - SHARED_FRAMEWORK="$DSO_bfrops" - SHARED_COMPONENT="$DSO_bfrops_v21" - - STATIC_FRAMEWORK="$STATIC_bfrops" - STATIC_COMPONENT="$STATIC_bfrops_v21" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component bfrops:v21 compile mode" >&5 -$as_echo_n "checking for MCA component bfrops:v21 compile mode... " >&6; } - if test "$DIRECT_bfrops" = "v21" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/bfrops/v21/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components v21" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components v21" - else - if test "bfrops" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/bfrops/v21/lib${PMIX_LIB_PREFIX}mca_bfrops_v21.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/bfrops/v21/libmca_bfrops_v21.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_bfrops_v21_component;" >> $outfile.extern - echo " &mca_bfrops_v21_component, " >> $outfile.struct - static_components="$static_components v21" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:v21 can compile" >&5 -$as_echo_n "checking if MCA component bfrops:v21 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_bfrops" = "v21" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_bfrops_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** bfrops component v21 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_bfrops" = "v21" ; then -as_fn_error $? "*** bfrops component v21 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$bfrops_v21_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v21_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v21_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$bfrops_v21_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v21_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v21_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$bfrops_v21_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v21_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring bfrops_v21_WRAPPER_EXTRA_CPPFLAGS ($bfrops_v21_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring bfrops_v21_WRAPPER_EXTRA_CPPFLAGS ($bfrops_v21_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:v21 can compile" >&5 -$as_echo_n "checking if MCA component bfrops:v21 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_bfrops" = "v21" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v21\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"v21\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_bfrops" ; then - if test "$DIRECT_bfrops" = "v21" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v21\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"v21\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components v21" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_pmix_bfrops_v21_DSO=1 - else - BUILD_pmix_bfrops_v21_DSO=0 - fi - if test "$BUILD_pmix_bfrops_v21_DSO" = "1"; then - MCA_BUILD_pmix_bfrops_v21_DSO_TRUE= - MCA_BUILD_pmix_bfrops_v21_DSO_FALSE='#' -else - MCA_BUILD_pmix_bfrops_v21_DSO_TRUE='#' - MCA_BUILD_pmix_bfrops_v21_DSO_FALSE= -fi - - - ac_config_files="$ac_config_files src/mca/bfrops/v21/Makefile" - - - unset compile_mode - - pmix_show_subsubsubtitle "MCA component bfrops:v3 (no configuration)" - - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - - - component_path="$srcdir/src/mca/bfrops/v3" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_bfrops" ; then - if test "$DIRECT_bfrops" = "v3" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_bfrops" = "1"; then : - want_component=0 -fi - if test "$DISABLE_bfrops_v3" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi - - - SHARED_FRAMEWORK="$DSO_bfrops" - SHARED_COMPONENT="$DSO_bfrops_v3" - - STATIC_FRAMEWORK="$STATIC_bfrops" - STATIC_COMPONENT="$STATIC_bfrops_v3" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component bfrops:v3 compile mode" >&5 -$as_echo_n "checking for MCA component bfrops:v3 compile mode... " >&6; } - if test "$DIRECT_bfrops" = "v3" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/bfrops/v3/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components v3" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components v3" - else - if test "bfrops" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/bfrops/v3/lib${PMIX_LIB_PREFIX}mca_bfrops_v3.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/bfrops/v3/libmca_bfrops_v3.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_bfrops_v3_component;" >> $outfile.extern - echo " &mca_bfrops_v3_component, " >> $outfile.struct - static_components="$static_components v3" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:v3 can compile" >&5 -$as_echo_n "checking if MCA component bfrops:v3 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_bfrops" = "v3" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_bfrops_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** bfrops component v3 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_bfrops" = "v3" ; then -as_fn_error $? "*** bfrops component v3 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$bfrops_v3_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v3_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v3_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$bfrops_v3_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v3_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v3_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$bfrops_v3_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $bfrops_v3_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring bfrops_v3_WRAPPER_EXTRA_CPPFLAGS ($bfrops_v3_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring bfrops_v3_WRAPPER_EXTRA_CPPFLAGS ($bfrops_v3_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:v3 can compile" >&5 -$as_echo_n "checking if MCA component bfrops:v3 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_bfrops" = "v3" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v3\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"v3\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_bfrops" ; then - if test "$DIRECT_bfrops" = "v3" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v3\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"v3\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components v3" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_pmix_bfrops_v3_DSO=1 - else - BUILD_pmix_bfrops_v3_DSO=0 - fi - if test "$BUILD_pmix_bfrops_v3_DSO" = "1"; then - MCA_BUILD_pmix_bfrops_v3_DSO_TRUE= - MCA_BUILD_pmix_bfrops_v3_DSO_FALSE='#' -else - MCA_BUILD_pmix_bfrops_v3_DSO_TRUE='#' - MCA_BUILD_pmix_bfrops_v3_DSO_FALSE= -fi - - - ac_config_files="$ac_config_files src/mca/bfrops/v3/Makefile" - - - unset compile_mode - - - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - - if test "1" != "0"; then : - - for component_path in $srcdir/src/mca/bfrops/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - pmix_show_subsubsubtitle "MCA component bfrops:$component (need to configure)" - - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - - - - component_path="$srcdir/src/mca/bfrops/$component" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_bfrops" ; then - if test "$DIRECT_bfrops" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_bfrops" = "1"; then : - want_component=0 -fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_bfrops_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi - - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi - - - SHARED_FRAMEWORK="$DSO_bfrops" - str="SHARED_COMPONENT=\$DSO_bfrops_$component" - eval $str - - STATIC_FRAMEWORK="$STATIC_bfrops" - str="STATIC_COMPONENT=\$STATIC_bfrops_$component" - eval $str - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component bfrops:$component compile mode" >&5 -$as_echo_n "checking for MCA component bfrops:$component compile mode... " >&6; } - if test "$DIRECT_bfrops" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - -# -# Invoke configure in a specific subdirectory. -# -# src/mca/bfrops/$component is the directory to invoke in -# $pmix_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="src/mca/bfrops/$component" -subdir_args="$pmix_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 -$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - - # - # Construct the --cache-file argument - # - - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - - # - # Invoke the configure script in the subdirectory - # - - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi - - # - # Go back to the topdir - # - - cd $subdir_parent -fi - -# -# Clean up -# - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/src/mca/bfrops/all_components/post_configure.sh" - if test -f $infile; then - - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi - - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/bfrops/$component/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "bfrops" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/bfrops/$component/lib${PMIX_LIB_PREFIX}mca_bfrops_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/bfrops/$component/libmca_bfrops_$component.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_bfrops_$component_component;" >> $outfile.extern - echo " &mca_bfrops_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:$component can compile" >&5 -$as_echo_n "checking if MCA component bfrops:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_bfrops" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_bfrops_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** bfrops component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_bfrops" = "$component" ; then -as_fn_error $? "*** bfrops component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$bfrops_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - -str="line=\$bfrops_$component_WRAPPER_EXTRA_LIBS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:$component can compile" >&5 -$as_echo_n "checking if MCA component bfrops:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_bfrops" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_bfrops" ; then - if test "$DIRECT_bfrops" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - fi - fi - done - -fi - - MCA_pmix_bfrops_ALL_COMPONENTS="$all_components" - MCA_pmix_bfrops_STATIC_COMPONENTS="$static_components" - MCA_pmix_bfrops_DSO_COMPONENTS="$dso_components" - MCA_pmix_bfrops_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_pmix_bfrops_ALL_SUBDIRS= - for item in $all_components ; do - MCA_pmix_bfrops_ALL_SUBDIRS="$MCA_pmix_bfrops_ALL_SUBDIRS mca/bfrops/$item" - done - - - - MCA_pmix_bfrops_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_pmix_bfrops_STATIC_SUBDIRS="$MCA_pmix_bfrops_STATIC_SUBDIRS mca/bfrops/$item" - done - - - - MCA_pmix_bfrops_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_pmix_bfrops_DSO_SUBDIRS="$MCA_pmix_bfrops_DSO_SUBDIRS mca/bfrops/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "bfrops" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS gds" - MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/gds" - MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_gds_ALL_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_gds_DSO_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_gds_STATIC_SUBDIRS)" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/gds/libmca_gds.la" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_gds_STATIC_LTLIBS)" - - pmix_show_subsubtitle "Configuring MCA framework gds" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=src/mca/gds/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files src/mca/gds/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework gds" >&5 -$as_echo_n "checking for no configure components in framework gds... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: hash" >&5 -$as_echo "hash" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework gds" >&5 -$as_echo_n "checking for m4 configure components in framework gds... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ds12, ds21" >&5 -$as_echo "ds12, ds21" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - pmix_show_subsubsubtitle "MCA component gds:hash (no configuration)" - - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - - - - component_path="$srcdir/src/mca/gds/hash" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_gds" ; then - if test "$DIRECT_gds" = "hash" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_gds" = "1"; then : - want_component=0 -fi - if test "$DISABLE_gds_hash" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi - - - SHARED_FRAMEWORK="$DSO_gds" - SHARED_COMPONENT="$DSO_gds_hash" - - STATIC_FRAMEWORK="$STATIC_gds" - STATIC_COMPONENT="$STATIC_gds_hash" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component gds:hash compile mode" >&5 -$as_echo_n "checking for MCA component gds:hash compile mode... " >&6; } - if test "$DIRECT_gds" = "hash" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/gds/hash/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components hash" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components hash" - else - if test "gds" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/gds/hash/lib${PMIX_LIB_PREFIX}mca_gds_hash.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/gds/hash/libmca_gds_hash.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_gds_hash_component;" >> $outfile.extern - echo " &mca_gds_hash_component, " >> $outfile.struct - static_components="$static_components hash" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component gds:hash can compile" >&5 -$as_echo_n "checking if MCA component gds:hash can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_gds" = "hash" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_gds_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** gds component hash was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_gds" = "hash" ; then -as_fn_error $? "*** gds component hash was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$gds_hash_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $gds_hash_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $gds_hash_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$gds_hash_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $gds_hash_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $gds_hash_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$gds_hash_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $gds_hash_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring gds_hash_WRAPPER_EXTRA_CPPFLAGS ($gds_hash_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring gds_hash_WRAPPER_EXTRA_CPPFLAGS ($gds_hash_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component gds:hash can compile" >&5 -$as_echo_n "checking if MCA component gds:hash can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_gds" = "hash" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hash\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"hash\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_gds" ; then - if test "$DIRECT_gds" = "hash" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hash\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"hash\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components hash" - fi - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_pmix_gds_hash_DSO=1 - else - BUILD_pmix_gds_hash_DSO=0 - fi - if test "$BUILD_pmix_gds_hash_DSO" = "1"; then - MCA_BUILD_pmix_gds_hash_DSO_TRUE= - MCA_BUILD_pmix_gds_hash_DSO_FALSE='#' -else - MCA_BUILD_pmix_gds_hash_DSO_TRUE='#' - MCA_BUILD_pmix_gds_hash_DSO_FALSE= -fi - - - ac_config_files="$ac_config_files src/mca/gds/hash/Makefile" - - - unset compile_mode - - - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - pmix_show_subsubsubtitle "MCA component gds:ds12 (m4 configuration macro)" - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/src/mca/gds/ds12" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_gds" ; then - if test "$DIRECT_gds" = "ds12" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_gds" = "1"; then : - want_component=0 -fi - if test "$DISABLE_gds_ds12" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_gds" - SHARED_COMPONENT="$DSO_gds_ds12" - - STATIC_FRAMEWORK="$STATIC_gds" - STATIC_COMPONENT="$STATIC_gds_ds12" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component gds:ds12 compile mode" >&5 -$as_echo_n "checking for MCA component gds:ds12 compile mode... " >&6; } - if test "$DIRECT_gds" = "ds12" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files src/mca/gds/ds12/Makefile" - - - if test "$pmix_fcntl_flock_happy" = "yes"; then : - should_build=$should_build -else - if test "$pmix_pthread_rwlockattr_setpshared" = "yes" && test "$pmix_pthread_process_shared" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi -fi - - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/gds/ds12/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ds12" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ds12" - else - if test "gds" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/gds/ds12/lib${PMIX_LIB_PREFIX}mca_gds_ds12.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/gds/ds12/libmca_gds_ds12.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_gds_ds12_component;" >> $outfile.extern - echo " &mca_gds_ds12_component, " >> $outfile.struct - static_components="$static_components ds12" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component gds:ds12 can compile" >&5 -$as_echo_n "checking if MCA component gds:ds12 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_gds" = "ds12" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_gds_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** gds component ds12 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_gds" = "ds12" ; then -as_fn_error $? "*** gds component ds12 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$gds_ds12_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $gds_ds12_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $gds_ds12_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$gds_ds12_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $gds_ds12_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $gds_ds12_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$gds_ds12_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $gds_ds12_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring gds_ds12_WRAPPER_EXTRA_CPPFLAGS ($gds_ds12_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring gds_ds12_WRAPPER_EXTRA_CPPFLAGS ($gds_ds12_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component gds:ds12 can compile" >&5 -$as_echo_n "checking if MCA component gds:ds12 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_gds" = "ds12" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ds12\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ds12\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_gds" ; then - if test "$DIRECT_gds" = "ds12" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ds12\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ds12\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components ds12" -fi - - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_pmix_gds_ds12_DSO=1 -else - BUILD_pmix_gds_ds12_DSO=0 -fi - if test "$BUILD_pmix_gds_ds12_DSO" = "1"; then - MCA_BUILD_pmix_gds_ds12_DSO_TRUE= - MCA_BUILD_pmix_gds_ds12_DSO_FALSE='#' -else - MCA_BUILD_pmix_gds_ds12_DSO_TRUE='#' - MCA_BUILD_pmix_gds_ds12_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - - unset compile_mode - - - - - - pmix_show_subsubsubtitle "MCA component gds:ds21 (m4 configuration macro)" - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/src/mca/gds/ds21" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_gds" ; then - if test "$DIRECT_gds" = "ds21" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_gds" = "1"; then : - want_component=0 -fi - if test "$DISABLE_gds_ds21" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - SHARED_FRAMEWORK="$DSO_gds" - SHARED_COMPONENT="$DSO_gds_ds21" - - STATIC_FRAMEWORK="$STATIC_gds" - STATIC_COMPONENT="$STATIC_gds_ds21" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component gds:ds21 compile mode" >&5 -$as_echo_n "checking for MCA component gds:ds21 compile mode... " >&6; } - if test "$DIRECT_gds" = "ds21" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files src/mca/gds/ds21/Makefile" - - - if test "$pmix_pthread_mutexattr_setpshared" = "yes" && test "$pmix_pthread_process_shared" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi - - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/gds/ds21/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components ds21" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components ds21" - else - if test "gds" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/gds/ds21/lib${PMIX_LIB_PREFIX}mca_gds_ds21.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/gds/ds21/libmca_gds_ds21.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_gds_ds21_component;" >> $outfile.extern - echo " &mca_gds_ds21_component, " >> $outfile.struct - static_components="$static_components ds21" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component gds:ds21 can compile" >&5 -$as_echo_n "checking if MCA component gds:ds21 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_gds" = "ds21" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_gds_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** gds component ds21 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_gds" = "ds21" ; then -as_fn_error $? "*** gds component ds21 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$gds_ds21_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $gds_ds21_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $gds_ds21_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$gds_ds21_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $gds_ds21_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $gds_ds21_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$gds_ds21_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $gds_ds21_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring gds_ds21_WRAPPER_EXTRA_CPPFLAGS ($gds_ds21_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring gds_ds21_WRAPPER_EXTRA_CPPFLAGS ($gds_ds21_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component gds:ds21 can compile" >&5 -$as_echo_n "checking if MCA component gds:ds21 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_gds" = "ds21" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ds21\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ds21\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_gds" ; then - if test "$DIRECT_gds" = "ds21" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ds21\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"ds21\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components ds21" -fi - - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_pmix_gds_ds21_DSO=1 -else - BUILD_pmix_gds_ds21_DSO=0 -fi - if test "$BUILD_pmix_gds_ds21_DSO" = "1"; then - MCA_BUILD_pmix_gds_ds21_DSO_TRUE= - MCA_BUILD_pmix_gds_ds21_DSO_FALSE='#' -else - MCA_BUILD_pmix_gds_ds21_DSO_TRUE='#' - MCA_BUILD_pmix_gds_ds21_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - - unset compile_mode - - - - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - - if test "1" != "0"; then : - - for component_path in $srcdir/src/mca/gds/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - pmix_show_subsubsubtitle "MCA component gds:$component (need to configure)" - - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - - - - component_path="$srcdir/src/mca/gds/$component" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_gds" ; then - if test "$DIRECT_gds" = "$component" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_gds" = "1"; then : - want_component=0 -fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_gds_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi - - if test "$want_component" = "1"; then : - should_build=1 -else - should_build=0 -fi - - - SHARED_FRAMEWORK="$DSO_gds" - str="SHARED_COMPONENT=\$DSO_gds_$component" - eval $str - - STATIC_FRAMEWORK="$STATIC_gds" - str="STATIC_COMPONENT=\$STATIC_gds_$component" - eval $str - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component gds:$component compile mode" >&5 -$as_echo_n "checking for MCA component gds:$component compile mode... " >&6; } - if test "$DIRECT_gds" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - -# -# Invoke configure in a specific subdirectory. -# -# src/mca/gds/$component is the directory to invoke in -# $pmix_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="src/mca/gds/$component" -subdir_args="$pmix_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 -$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - - # - # Construct the --cache-file argument - # - - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - - # - # Invoke the configure script in the subdirectory - # - - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi - - # - # Go back to the topdir - # - - cd $subdir_parent -fi - -# -# Clean up -# - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/src/mca/gds/all_components/post_configure.sh" - if test -f $infile; then - - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi - - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/gds/$component/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "gds" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/gds/$component/lib${PMIX_LIB_PREFIX}mca_gds_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/gds/$component/libmca_gds_$component.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_gds_$component_component;" >> $outfile.extern - echo " &mca_gds_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component gds:$component can compile" >&5 -$as_echo_n "checking if MCA component gds:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_gds" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_gds_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** gds component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_gds" = "$component" ; then -as_fn_error $? "*** gds component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$gds_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - -str="line=\$gds_$component_WRAPPER_EXTRA_LIBS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component gds:$component can compile" >&5 -$as_echo_n "checking if MCA component gds:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_gds" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_gds" ; then - if test "$DIRECT_gds" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - fi - fi - done - -fi - - MCA_pmix_gds_ALL_COMPONENTS="$all_components" - MCA_pmix_gds_STATIC_COMPONENTS="$static_components" - MCA_pmix_gds_DSO_COMPONENTS="$dso_components" - MCA_pmix_gds_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_pmix_gds_ALL_SUBDIRS= - for item in $all_components ; do - MCA_pmix_gds_ALL_SUBDIRS="$MCA_pmix_gds_ALL_SUBDIRS mca/gds/$item" - done - - - - MCA_pmix_gds_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_pmix_gds_STATIC_SUBDIRS="$MCA_pmix_gds_STATIC_SUBDIRS mca/gds/$item" - done - - - - MCA_pmix_gds_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_pmix_gds_DSO_SUBDIRS="$MCA_pmix_gds_DSO_SUBDIRS mca/gds/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "gds" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS pdl" - MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/pdl" - MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_pdl_ALL_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_pdl_DSO_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_pdl_STATIC_SUBDIRS)" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/pdl/libmca_pdl.la" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_pdl_STATIC_LTLIBS)" - - PMIX_HAVE_PDL_SUPPORT=0 - - # If --disable-dlopen was used, then have all the components fail - # (we still need to configure them all so that things like "make - # dist" work", but we just want the MCA system to (artificially) - # conclude that it can't build any of the components. - if test $PMIX_ENABLE_DLOPEN_SUPPORT -eq 0; then : - want_pdl=0 -else - want_pdl=1 -fi - - - pmix_show_subsubtitle "Configuring MCA framework pdl" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=src/mca/pdl/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files src/mca/pdl/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework pdl" >&5 -$as_echo_n "checking for no configure components in framework pdl... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework pdl" >&5 -$as_echo_n "checking for m4 configure components in framework pdl... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: pdlopen, plibltdl" >&5 -$as_echo "pdlopen, plibltdl" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - - # configure components that use built-in configuration scripts - - - - - - - best_mca_component_priority=0 - components_looking_for_succeed=$want_pdl - components_last_result=0 - - - pmix_show_subsubsubtitle "MCA component pdl:pdlopen (m4 configuration macro, priority 80)" - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/src/mca/pdl/pdlopen" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pdl" ; then - if test "$DIRECT_pdl" = "pdlopen" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_pdl" = "1"; then : - want_component=0 -fi - if test "$DISABLE_pdl_pdlopen" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pdl:pdlopen compile mode" >&5 -$as_echo_n "checking for MCA component pdl:pdlopen compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - - - # try to configure the component - - ac_config_files="$ac_config_files src/mca/pdl/pdlopen/Makefile" - - - # Check whether --enable-dl-dlopen was given. -if test "${enable_dl_dlopen+set}" = set; then : - enableval=$enable_dl_dlopen; -fi - - - pmix_pdl_pdlopen_happy=no - if test "$enable_dl_dlopen" != "no"; then : - - pmix_check_package_pmix_pdl_pdlopen_save_CPPFLAGS="$CPPFLAGS" - pmix_check_package_pmix_pdl_pdlopen_save_LDFLAGS="$LDFLAGS" - pmix_check_package_pmix_pdl_pdlopen_save_LIBS="$LIBS" - - pmix_check_package_pmix_pdl_pdlopen_orig_CPPFLAGS="$pmix_pdl_pdlopen_CPPFLAGS" - pmix_check_package_pmix_pdl_pdlopen_orig_LDFLAGS="$pmix_pdl_pdlopen_LDFLAGS" - pmix_check_package_pmix_pdl_pdlopen_orig_LIBS="$pmix_pdl_pdlopen_LIBS" - - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_dlfcn_h - pmix_check_package_header_happy="no" - - # get rid of the trailing slash(es) - hdir_prefix=$(echo | sed -e 'sX/*$XXg') - - if test "$hdir_prefix" = "" || \ - test "$hdir_prefix" = "/usr" || \ - test "$hdir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in dlfcn.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" -if test "x$ac_cv_header_dlfcn_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLFCN_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi - -done - - if test "$pmix_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_dlfcn_h -fi -fi - - if test "$pmix_check_package_header_happy" = "no"; then : - if test "$hdir_prefix" != ""; then : - pmix_pdl_pdlopen_CPPFLAGS="$pmix_pdl_pdlopen_CPPFLAGS -I$hdir_prefix" - CPPFLAGS="$CPPFLAGS -I$hdir_prefix" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix" >&5 -$as_echo "looking for header in $hdir_prefix" >&6; } - for ac_header in dlfcn.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" -if test "x$ac_cv_header_dlfcn_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLFCN_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi - -done - - if test "$pmix_check_package_header_happy" = "no"; then : - unset ac_cv_header_dlfcn_h - pmix_pdl_pdlopen_CPPFLAGS="$pmix_pdl_pdlopen_CPPFLAGS -I$hdir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$hdir_prefix/include" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix/include" >&5 -$as_echo "looking for header in $hdir_prefix/include" >&6; } - for ac_header in dlfcn.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" -if test "x$ac_cv_header_dlfcn_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLFCN_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi - -done - -fi -fi -fi - - if test "$pmix_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - # see comment above - unset ac_cv_lib_dl_dlopen - pmix_check_package_lib_happy="no" - - # get rid of the trailing slash(es) - libdir_prefix=$(echo | sed -e 'sX/*$XXg') - - if test "$libdir_prefix" != ""; then : - # libdir was specified - search only there - pmix_pdl_pdlopen_LDFLAGS="$pmix_pdl_pdlopen_LDFLAGS -L$libdir_prefix" - LDFLAGS="$LDFLAGS -L$libdir_prefix" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 -$as_echo_n "checking for library containing dlopen... " >&6; } -if ${ac_cv_search_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_dlopen+:} false; then : - -else - ac_cv_search_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -$as_echo "$ac_cv_search_dlopen" >&6; } -ac_res=$ac_cv_search_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_save_LDFLAGS" - pmix_pdl_pdlopen_LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_orig_LDFLAGS" - unset ac_cv_lib_dl_dlopen -fi -else - # libdir was not specified - go through search path - # get rid of the trailing slash(es) - libdir_prefix=$(echo | sed -e 'sX/*$XXg') - - # first try standard locations as otherwise our - # searches with libdir_prefix locations might come - # back positive and unnecessarily add an LDFLAG - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 -$as_echo_n "checking for library containing dlopen... " >&6; } -if ${ac_cv_search_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_dlopen+:} false; then : - -else - ac_cv_search_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -$as_echo "$ac_cv_search_dlopen" >&6; } -ac_res=$ac_cv_search_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_save_LDFLAGS" - pmix_pdl_pdlopen_LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_orig_LDFLAGS" - unset ac_cv_lib_dl_dlopen -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # if we didn't find it, check the libdir_prefix/lib64 directory - if test "$libdir_prefix" != "" && \ - test "$libdir_prefix" != "/usr" && \ - test "$libdir_prefix" != "/usr/local"; then : - pmix_pdl_pdlopen_LDFLAGS="$pmix_pdl_pdlopen_LDFLAGS -L$libdir_prefix/lib64" - LDFLAGS="$LDFLAGS -L$libdir_prefix/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib64" >&5 -$as_echo "looking for library in $libdir_prefix/lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 -$as_echo_n "checking for library containing dlopen... " >&6; } -if ${ac_cv_search_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_dlopen+:} false; then : - -else - ac_cv_search_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -$as_echo "$ac_cv_search_dlopen" >&6; } -ac_res=$ac_cv_search_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_save_LDFLAGS" - pmix_pdl_pdlopen_LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_orig_LDFLAGS" - unset ac_cv_lib_dl_dlopen -fi -fi -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # if we still haven't found it, check the libdir_prefix/lib directory - if test "$libdir_prefix" != "" && \ - test "$libdir_prefix" != "/usr" && \ - test "$libdir_prefix" != "/usr/local"; then : - pmix_pdl_pdlopen_LDFLAGS="$pmix_pdl_pdlopen_LDFLAGS -L$libdir_prefix/lib" - LDFLAGS="$LDFLAGS -L$libdir_prefix/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib" >&5 -$as_echo "looking for library in $libdir_prefix/lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 -$as_echo_n "checking for library containing dlopen... " >&6; } -if ${ac_cv_search_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_dlopen+:} false; then : - -else - ac_cv_search_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -$as_echo "$ac_cv_search_dlopen" >&6; } -ac_res=$ac_cv_search_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_save_LDFLAGS" - pmix_pdl_pdlopen_LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_orig_LDFLAGS" - unset ac_cv_lib_dl_dlopen -fi -fi -fi - -fi - - - if test "$pmix_check_package_lib_happy" = "yes"; then : - pmix_pdl_pdlopen_LIBS="-ldl " - pmix_check_package_happy="yes" -else - pmix_check_package_happy="no" -fi - if test "$pmix_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_dlopen" != "no" && - test "$ac_cv_search_dlopen" != "none required"; then : - pmix_pdl_pdlopen_LIBS="$ac_cv_search_dlopen " -else - pmix_pdl_pdlopen_LIBS="" -fi - pmix_check_package_happy="yes" -else - pmix_check_package_happy="no" -fi - - -else - pmix_check_package_happy="no" -fi - - unset pmix_check_package_header_happy - - - - if test "$pmix_check_package_happy" = "yes"; then : - pmix_pdl_pdlopen_happy=yes -else - pmix_pdl_pdlopen_CPPFLAGS="$pmix_check_package_pmix_pdl_pdlopen_orig_CPPFLAGS" - pmix_pdl_pdlopen_LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_orig_LDFLAGS" - pmix_pdl_pdlopen_LIBS="$pmix_check_package_pmix_pdl_pdlopen_orig_LIBS" - pmix_pdl_pdlopen_happy=no -fi - - CPPFLAGS="$pmix_check_package_pmix_pdl_pdlopen_save_CPPFLAGS" - LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_save_LDFLAGS" - LIBS="$pmix_check_package_pmix_pdl_pdlopen_save_LIBS" - - -fi - - if test "$pmix_pdl_pdlopen_happy" = "yes"; then : - pmix_pdl_pdlopen_ADD_LIBS=$pmix_pdl_pdlopen_LIBS - should_build=$should_build -else - should_build=0 -fi - - - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/pdl/pdlopen/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components pdlopen" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components pdlopen" - else - if test "pdl" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pdl/pdlopen/lib${PMIX_LIB_PREFIX}mca_pdl_pdlopen.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pdl/pdlopen/libmca_pdl_pdlopen.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_pdl_pdlopen_component;" >> $outfile.extern - echo " &mca_pdl_pdlopen_component, " >> $outfile.struct - static_components="$static_components pdlopen" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pdl:pdlopen can compile" >&5 -$as_echo_n "checking if MCA component pdl:pdlopen can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pdl" = "pdlopen" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_pdl_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** pdl component pdlopen was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pdl" = "pdlopen" ; then -as_fn_error $? "*** pdl component pdlopen was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pdl_pdlopen_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pdl_pdlopen_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pdl_pdlopen_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$pdl_pdlopen_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pdl_pdlopen_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pdl_pdlopen_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pdl_pdlopen_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=1 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pdl_pdlopen_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pdl_pdlopen_WRAPPER_EXTRA_CPPFLAGS ($pdl_pdlopen_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pdl_pdlopen_WRAPPER_EXTRA_CPPFLAGS ($pdl_pdlopen_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pdl:pdlopen can compile" >&5 -$as_echo_n "checking if MCA component pdl:pdlopen can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_pdl" = "pdlopen" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pdlopen\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pdlopen\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_pdl" ; then - if test "$DIRECT_pdl" = "pdlopen" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pdlopen\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"pdlopen\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components pdlopen" -fi - - - # If we won, then do all the rest of the setup - if test "$should_build" = "1"; then : - - # Add some stuff to CPPFLAGS so that the rest of the source - # tree can be built - LDFLAGS="$LDFLAGS $pmix_pdl_pdlopen_ADD_LDFLAGS" - LIBS="$LIBS $pmix_pdl_pdlopen_ADD_LIBS" - -fi - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_pmix_pdl_pdlopen_DSO=1 -else - BUILD_pmix_pdl_pdlopen_DSO=0 -fi - if test "$BUILD_pmix_pdl_pdlopen_DSO" = "1"; then - MCA_BUILD_pmix_pdl_pdlopen_DSO_TRUE= - MCA_BUILD_pmix_pdl_pdlopen_DSO_FALSE='#' -else - MCA_BUILD_pmix_pdl_pdlopen_DSO_TRUE='#' - MCA_BUILD_pmix_pdl_pdlopen_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - - unset compile_mode - - if test $components_last_result -eq 1; then : - components_looking_for_succeed=0 -fi - - - - pmix_show_subsubsubtitle "MCA component pdl:plibltdl (m4 configuration macro, priority 50)" - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/src/mca/pdl/plibltdl" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pdl" ; then - if test "$DIRECT_pdl" = "plibltdl" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_pdl" = "1"; then : - want_component=0 -fi - if test "$DISABLE_pdl_plibltdl" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pdl:plibltdl compile mode" >&5 -$as_echo_n "checking for MCA component pdl:plibltdl compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - - - # try to configure the component - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in CPPFLAGS_save LDFLAGS_save LIBS_save; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"CPPFLAGS_save LDFLAGS_save LIBS_save\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - ac_config_files="$ac_config_files src/mca/pdl/plibltdl/Makefile" - - - # Add --with options - -# Check whether --with-plibltdl was given. -if test "${with_plibltdl+set}" = set; then : - withval=$with_plibltdl; -fi - - -# Check whether --with-libltdl-libdir was given. -if test "${with_libltdl_libdir+set}" = set; then : - withval=$with_libltdl_libdir; -fi - - - # Sanity check the --with values - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-plibltdl value" >&5 -$as_echo_n "checking --with-plibltdl value... " >&6; } - if test "$with_libltdl" = "yes" || test "$with_libltdl" = "no" || test "x$with_libltdl" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified)" >&5 -$as_echo "simple ok (unspecified)" >&6; } -else - if test ! -d "$with_libltdl"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_libltdl not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_libltdl not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_libltdl/include/ltdl.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_libltdl/include/ltdl.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_libltdl/include/ltdl.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_libltdl)" >&5 -$as_echo "sanity check ok ($with_libltdl)" >&6; } - -fi - - -fi - - -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-plibltdl-libdir value" >&5 -$as_echo_n "checking --with-plibltdl-libdir value... " >&6; } - if test "$with_libltdl_libdir" = "yes" || test "$with_libltdl_libdir" = "no" || test "x$with_libltdl_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified)" >&5 -$as_echo "simple ok (unspecified)" >&6; } -else - if test ! -d "$with_libltdl_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_libltdl_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_libltdl_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_libltdl_libdir/libltdl.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_libltdl_libdir/libltdl.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_libltdl_libdir/libltdl.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_libltdl_libdir)" >&5 -$as_echo "sanity check ok ($with_libltdl_libdir)" >&6; } - -fi - - -fi - - -fi - - - # Defaults - pmix_check_plibltdl_dir_msg="compiler default" - pmix_check_plibltdl_libdir_msg="linker default" - - # Save directory names if supplied - if test ! -z "$with_libltdl" && test "$with_libltdl" != "yes"; then : - pmix_check_plibltdl_dir=$with_libltdl - pmix_check_plibltdl_dir_msg="$pmix_check_plibltdl_dir (from --with-libltdl)" -fi - if test ! -z "$with_libltdl_libdir" && test "$with_libltdl_libdir" != "yes"; then : - pmix_check_plibltdl_libdir=$with_libltdl_libdir - pmix_check_plibltdl_libdir_msg="$pmix_check_plibltdl_libdir (from --with-libltdl-libdir)" -fi - - pmix_pdl_plibltdl_happy=no - if test "$with_plibltdl" != "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libltdl dir" >&5 -$as_echo_n "checking for libltdl dir... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_check_plibltdl_dir_msg" >&5 -$as_echo "$pmix_check_plibltdl_dir_msg" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libltdl library dir" >&5 -$as_echo_n "checking for libltdl library dir... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_check_plibltdl_libdir_msg" >&5 -$as_echo "$pmix_check_plibltdl_libdir_msg" >&6; } - - - pmix_check_package_pmix_pdl_plibltdl_save_CPPFLAGS="$CPPFLAGS" - pmix_check_package_pmix_pdl_plibltdl_save_LDFLAGS="$LDFLAGS" - pmix_check_package_pmix_pdl_plibltdl_save_LIBS="$LIBS" - - pmix_check_package_pmix_pdl_plibltdl_orig_CPPFLAGS="$pmix_pdl_plibltdl_CPPFLAGS" - pmix_check_package_pmix_pdl_plibltdl_orig_LDFLAGS="$pmix_pdl_plibltdl_LDFLAGS" - pmix_check_package_pmix_pdl_plibltdl_orig_LIBS="$pmix_pdl_plibltdl_LIBS" - - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_ltdl_h - pmix_check_package_header_happy="no" - - # get rid of the trailing slash(es) - hdir_prefix=$(echo $pmix_check_plibltdl_dir | sed -e 'sX/*$XXg') - - if test "$hdir_prefix" = "" || \ - test "$hdir_prefix" = "/usr" || \ - test "$hdir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in ltdl.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default" -if test "x$ac_cv_header_ltdl_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LTDL_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi - -done - - if test "$pmix_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_ltdl_h -fi -fi - - if test "$pmix_check_package_header_happy" = "no"; then : - if test "$hdir_prefix" != ""; then : - pmix_pdl_plibltdl_CPPFLAGS="$pmix_pdl_plibltdl_CPPFLAGS -I$hdir_prefix" - CPPFLAGS="$CPPFLAGS -I$hdir_prefix" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix" >&5 -$as_echo "looking for header in $hdir_prefix" >&6; } - for ac_header in ltdl.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default" -if test "x$ac_cv_header_ltdl_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LTDL_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi - -done - - if test "$pmix_check_package_header_happy" = "no"; then : - unset ac_cv_header_ltdl_h - pmix_pdl_plibltdl_CPPFLAGS="$pmix_pdl_plibltdl_CPPFLAGS -I$hdir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$hdir_prefix/include" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix/include" >&5 -$as_echo "looking for header in $hdir_prefix/include" >&6; } - for ac_header in ltdl.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default" -if test "x$ac_cv_header_ltdl_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LTDL_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi - -done - -fi -fi -fi - - if test "$pmix_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - # see comment above - unset ac_cv_lib_ltdl_lt_dlopen - pmix_check_package_lib_happy="no" - - # get rid of the trailing slash(es) - libdir_prefix=$(echo $pmix_check_plibltdl_libdir | sed -e 'sX/*$XXg') - - if test "$libdir_prefix" != ""; then : - # libdir was specified - search only there - pmix_pdl_plibltdl_LDFLAGS="$pmix_pdl_plibltdl_LDFLAGS -L$libdir_prefix" - LDFLAGS="$LDFLAGS -L$libdir_prefix" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 -$as_echo_n "checking for library containing lt_dlopen... " >&6; } -if ${ac_cv_search_lt_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lt_dlopen (); -int -main () -{ -return lt_dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ltdl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lt_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lt_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_lt_dlopen+:} false; then : - -else - ac_cv_search_lt_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 -$as_echo "$ac_cv_search_lt_dlopen" >&6; } -ac_res=$ac_cv_search_lt_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_save_LDFLAGS" - pmix_pdl_plibltdl_LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_orig_LDFLAGS" - unset ac_cv_lib_ltdl_lt_dlopen -fi -else - # libdir was not specified - go through search path - # get rid of the trailing slash(es) - libdir_prefix=$(echo $pmix_check_plibltdl_dir | sed -e 'sX/*$XXg') - - # first try standard locations as otherwise our - # searches with libdir_prefix locations might come - # back positive and unnecessarily add an LDFLAG - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 -$as_echo_n "checking for library containing lt_dlopen... " >&6; } -if ${ac_cv_search_lt_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lt_dlopen (); -int -main () -{ -return lt_dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ltdl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lt_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lt_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_lt_dlopen+:} false; then : - -else - ac_cv_search_lt_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 -$as_echo "$ac_cv_search_lt_dlopen" >&6; } -ac_res=$ac_cv_search_lt_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_save_LDFLAGS" - pmix_pdl_plibltdl_LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_orig_LDFLAGS" - unset ac_cv_lib_ltdl_lt_dlopen -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # if we didn't find it, check the libdir_prefix/lib64 directory - if test "$libdir_prefix" != "" && \ - test "$libdir_prefix" != "/usr" && \ - test "$libdir_prefix" != "/usr/local"; then : - pmix_pdl_plibltdl_LDFLAGS="$pmix_pdl_plibltdl_LDFLAGS -L$libdir_prefix/lib64" - LDFLAGS="$LDFLAGS -L$libdir_prefix/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib64" >&5 -$as_echo "looking for library in $libdir_prefix/lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 -$as_echo_n "checking for library containing lt_dlopen... " >&6; } -if ${ac_cv_search_lt_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lt_dlopen (); -int -main () -{ -return lt_dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ltdl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lt_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lt_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_lt_dlopen+:} false; then : - -else - ac_cv_search_lt_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 -$as_echo "$ac_cv_search_lt_dlopen" >&6; } -ac_res=$ac_cv_search_lt_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_save_LDFLAGS" - pmix_pdl_plibltdl_LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_orig_LDFLAGS" - unset ac_cv_lib_ltdl_lt_dlopen -fi -fi -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # if we still haven't found it, check the libdir_prefix/lib directory - if test "$libdir_prefix" != "" && \ - test "$libdir_prefix" != "/usr" && \ - test "$libdir_prefix" != "/usr/local"; then : - pmix_pdl_plibltdl_LDFLAGS="$pmix_pdl_plibltdl_LDFLAGS -L$libdir_prefix/lib" - LDFLAGS="$LDFLAGS -L$libdir_prefix/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib" >&5 -$as_echo "looking for library in $libdir_prefix/lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 -$as_echo_n "checking for library containing lt_dlopen... " >&6; } -if ${ac_cv_search_lt_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char lt_dlopen (); -int -main () -{ -return lt_dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ltdl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_lt_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_lt_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_lt_dlopen+:} false; then : - -else - ac_cv_search_lt_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 -$as_echo "$ac_cv_search_lt_dlopen" >&6; } -ac_res=$ac_cv_search_lt_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_save_LDFLAGS" - pmix_pdl_plibltdl_LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_orig_LDFLAGS" - unset ac_cv_lib_ltdl_lt_dlopen -fi -fi -fi - -fi - - - if test "$pmix_check_package_lib_happy" = "yes"; then : - pmix_pdl_plibltdl_LIBS="-lltdl " - pmix_check_package_happy="yes" -else - pmix_check_package_happy="no" -fi - if test "$pmix_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_lt_dlopen" != "no" && - test "$ac_cv_search_lt_dlopen" != "none required"; then : - pmix_pdl_plibltdl_LIBS="$ac_cv_search_lt_dlopen " -else - pmix_pdl_plibltdl_LIBS="" -fi - pmix_check_package_happy="yes" -else - pmix_check_package_happy="no" -fi - - -else - pmix_check_package_happy="no" -fi - - unset pmix_check_package_header_happy - - - - if test "$pmix_check_package_happy" = "yes"; then : - pmix_pdl_plibltdl_happy=yes -else - pmix_pdl_plibltdl_CPPFLAGS="$pmix_check_package_pmix_pdl_plibltdl_orig_CPPFLAGS" - pmix_pdl_plibltdl_LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_orig_LDFLAGS" - pmix_pdl_plibltdl_LIBS="$pmix_check_package_pmix_pdl_plibltdl_orig_LIBS" - pmix_pdl_plibltdl_happy=no -fi - - CPPFLAGS="$pmix_check_package_pmix_pdl_plibltdl_save_CPPFLAGS" - LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_save_LDFLAGS" - LIBS="$pmix_check_package_pmix_pdl_plibltdl_save_LIBS" - - -fi - - # If we have plibltdl, do we have lt_dladvise? - pmix_pdl_plibltdl_have_lt_dladvise=0 - if test "$pmix_pdl_plibltdl_happy" = "yes"; then : - CPPFLAGS_save=$CPPFLAGS - LDFLAGS_save=$LDFLAGS - LIBS_save=$LIBS - - CPPFLAGS="$pmix_pdl_plibltdl_CPPFLAGS $CPPFLAGS" - LDFLAGS="$pmix_pdl_plibltdl_LDFLAGS $LDFLAGS" - LIBS="$pmix_pdl_plibltdl_LIBS $LIBS" - ac_fn_c_check_func "$LINENO" "lt_dladvise_init" "ac_cv_func_lt_dladvise_init" -if test "x$ac_cv_func_lt_dladvise_init" = xyes; then : - pmix_pdl_plibltdl_have_lt_dladvise=1 -fi - - CPPFLAGS=$CPPFLAGS_save - LDFLAGS=$LDFLAGS_save - LIBS=$LIBS_save - -fi - -cat >>confdefs.h <<_ACEOF -#define PMIX_PDL_PLIBLTDL_HAVE_LT_DLADVISE $pmix_pdl_plibltdl_have_lt_dladvise -_ACEOF - - - if test "$pmix_pdl_plibltdl_happy" = "yes"; then : - pmix_pdl_plibltdl_ADD_CPPFLAGS=$pmix_pdl_plibltdl_CPPFLAGS - pmix_pdl_plibltdl_ADD_LDFLAGS=$pmix_pdl_plibltdl_LDFLAGS - pmix_pdl_plibltdl_ADD_LIBS=$pmix_pdl_plibltdl_LIBS - should_build=$should_build -else - if test ! -z "$with_libltdl" && \ - test "$with_libltdl" != "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libltdl support requested (via --with-libltdl) but not found." >&5 -$as_echo "$as_me: WARNING: libltdl support requested (via --with-libltdl) but not found." >&2;} - as_fn_error $? "Cannot continue." "$LINENO" 5 -fi - should_build=0 -fi - - - - - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/pdl/plibltdl/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components plibltdl" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components plibltdl" - else - if test "pdl" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pdl/plibltdl/lib${PMIX_LIB_PREFIX}mca_pdl_plibltdl.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pdl/plibltdl/libmca_pdl_plibltdl.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_pdl_plibltdl_component;" >> $outfile.extern - echo " &mca_pdl_plibltdl_component, " >> $outfile.struct - static_components="$static_components plibltdl" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pdl:plibltdl can compile" >&5 -$as_echo_n "checking if MCA component pdl:plibltdl can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pdl" = "plibltdl" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_pdl_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** pdl component plibltdl was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pdl" = "plibltdl" ; then -as_fn_error $? "*** pdl component plibltdl was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pdl_plibltdl_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pdl_plibltdl_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pdl_plibltdl_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$pdl_plibltdl_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pdl_plibltdl_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pdl_plibltdl_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pdl_plibltdl_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=1 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pdl_plibltdl_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pdl_plibltdl_WRAPPER_EXTRA_CPPFLAGS ($pdl_plibltdl_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pdl_plibltdl_WRAPPER_EXTRA_CPPFLAGS ($pdl_plibltdl_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pdl:plibltdl can compile" >&5 -$as_echo_n "checking if MCA component pdl:plibltdl can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_pdl" = "plibltdl" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"plibltdl\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"plibltdl\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_pdl" ; then - if test "$DIRECT_pdl" = "plibltdl" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"plibltdl\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"plibltdl\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components plibltdl" -fi - - - # If we won, then do all the rest of the setup - if test "$should_build" = "1"; then : - - # Add some stuff to CPPFLAGS so that the rest of the source - # tree can be built - LDFLAGS="$LDFLAGS $pmix_pdl_plibltdl_ADD_LDFLAGS" - LIBS="$LIBS $pmix_pdl_plibltdl_ADD_LIBS" - -fi - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_pmix_pdl_plibltdl_DSO=1 -else - BUILD_pmix_pdl_plibltdl_DSO=0 -fi - if test "$BUILD_pmix_pdl_plibltdl_DSO" = "1"; then - MCA_BUILD_pmix_pdl_plibltdl_DSO_TRUE= - MCA_BUILD_pmix_pdl_plibltdl_DSO_FALSE='#' -else - MCA_BUILD_pmix_pdl_plibltdl_DSO_TRUE='#' - MCA_BUILD_pmix_pdl_plibltdl_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - - unset compile_mode - - if test $components_last_result -eq 1; then : - components_looking_for_succeed=0 -fi - - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - MCA_pmix_pdl_ALL_COMPONENTS="$all_components" - MCA_pmix_pdl_STATIC_COMPONENTS="$static_components" - MCA_pmix_pdl_DSO_COMPONENTS="$dso_components" - MCA_pmix_pdl_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_pmix_pdl_ALL_SUBDIRS= - for item in $all_components ; do - MCA_pmix_pdl_ALL_SUBDIRS="$MCA_pmix_pdl_ALL_SUBDIRS mca/pdl/$item" - done - - - - MCA_pmix_pdl_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_pmix_pdl_STATIC_SUBDIRS="$MCA_pmix_pdl_STATIC_SUBDIRS mca/pdl/$item" - done - - - - MCA_pmix_pdl_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_pmix_pdl_DSO_SUBDIRS="$MCA_pmix_pdl_DSO_SUBDIRS mca/pdl/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "pdl" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - - # If we found no suitable static pdl component and dlopen support - # was not specifically disabled, this is an error. - if test "$MCA_pmix_pdl_STATIC_COMPONENTS" = "" && \ - test $PMIX_ENABLE_DLOPEN_SUPPORT -eq 1; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Did not find a suitable static pmix pdl component" >&5 -$as_echo "$as_me: WARNING: Did not find a suitable static pmix pdl component" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You might need to install libltld (and its headers) or" >&5 -$as_echo "$as_me: WARNING: You might need to install libltld (and its headers) or" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: specify --disable-dlopen to configure." >&5 -$as_echo "$as_me: WARNING: specify --disable-dlopen to configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -fi - - # If we have a winning component (which, per above, will only - # happen if --disable-dlopen was *not* specified), do some more - # logic. - if test "$MCA_pmix_pdl_STATIC_COMPONENTS" != ""; then : - # We had a winner -- w00t! - - PMIX_HAVE_PDL_SUPPORT=1 - # If we added any -L flags to ADD_LDFLAGS, then we (might) - # need to add those directories to LD_LIBRARY_PATH. - # Otherwise, if we try to AC RUN_IFELSE anything here in - # configure, it might die because it can't find the libraries - # we just linked against. - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_pdl_base_found_l pmix_pdl_base_token pmix_pdl_base_tmp pmix_pdl_base_dir; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_pdl_base_found_l pmix_pdl_base_token pmix_pdl_base_tmp pmix_pdl_base_dir\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - pmix_pdl_base_found_l=0 - eval "pmix_pdl_base_tmp=\$pmix_pdl_${pmix_pdl_winner}_ADD_LIBS" - for pmix_pdl_base_token in $pmix_pdl_base_tmp; do - case $pmix_pdl_base_token in - -l*) pmix_pdl_base_found_l=1 ;; - esac - done - if test $pmix_pdl_base_found_l -eq 1; then : - eval "pmix_pdl_base_tmp=\$pmix_pdl_${pmix_pdl_winner}_ADD_LDFLAGS" - for pmix_pdl_base_token in $pmix_pdl_base_tmp; do - case $pmix_pdl_base_token in - -L*) - pmix_pdl_base_dir=`echo $pmix_pdl_base_token | cut -c3-` - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$pmix_pdl_base_dir - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Adding to LD_LIBRARY_PATH: $pmix_pdl_base_dir" >&5 -$as_echo "$as_me: WARNING: Adding to LD_LIBRARY_PATH: $pmix_pdl_base_dir" >&2;} - ;; - esac - done -fi - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - -cat >>confdefs.h <<_ACEOF -#define PMIX_HAVE_PDL_SUPPORT $PMIX_HAVE_PDL_SUPPORT -_ACEOF - - - MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS pif" - MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/pif" - MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_pif_ALL_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_pif_DSO_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_pif_STATIC_SUBDIRS)" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/pif/libmca_pif.la" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_pif_STATIC_LTLIBS)" - - pmix_show_subsubtitle "Configuring MCA framework pif" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=src/mca/pif/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files src/mca/pif/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework pif" >&5 -$as_echo_n "checking for no configure components in framework pif... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework pif" >&5 -$as_echo_n "checking for m4 configure components in framework pif... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: bsdx_ipv4, bsdx_ipv6, linux_ipv6, posix_ipv4, solaris_ipv6" >&5 -$as_echo "bsdx_ipv4, bsdx_ipv6, linux_ipv6, posix_ipv4, solaris_ipv6" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - - - pmix_show_subsubsubtitle "MCA component pif:bsdx_ipv4 (m4 configuration macro)" - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/src/mca/pif/bsdx_ipv4" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pif" ; then - if test "$DIRECT_pif" = "bsdx_ipv4" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_pif" = "1"; then : - want_component=0 -fi - if test "$DISABLE_pif_bsdx_ipv4" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pif:bsdx_ipv4 compile mode" >&5 -$as_echo_n "checking for MCA component pif:bsdx_ipv4 compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - - - # try to configure the component - - ac_config_files="$ac_config_files src/mca/pif/bsdx_ipv4/Makefile" - - - - - # If we found struct sockaddr and we're on any of the BSDs, we're - # happy. I.e., this: - #if defined(__NetBSD__) || defined(__FreeBSD__) || \ - # defined(__OpenBSD__) || defined(__DragonFly__) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct sockaddr" >&5 -$as_echo_n "checking struct sockaddr... " >&6; } - if test "$pmix_found_sockaddr" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (cached)" >&5 -$as_echo "yes (cached)" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking NetBSD, FreeBSD, OpenBSD, or DragonFly" >&5 -$as_echo_n "checking NetBSD, FreeBSD, OpenBSD, or DragonFly... " >&6; } - if test "$pmix_found_netbsd" = "yes" || \ - test "$pmix_found_freebsd" = "yes" || \ - test "$pmix_found_openbsd" = "yes" || \ - test "$pmix_found_dragonfly" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - should_build=$should_build -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - should_build=0 -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (cached)" >&5 -$as_echo "no (cached)" >&6; } - should_build=0 -fi - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/pif/bsdx_ipv4/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components bsdx_ipv4" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components bsdx_ipv4" - else - if test "pif" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pif/bsdx_ipv4/lib${PMIX_LIB_PREFIX}mca_pif_bsdx_ipv4.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pif/bsdx_ipv4/libmca_pif_bsdx_ipv4.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_pif_bsdx_ipv4_component;" >> $outfile.extern - echo " &mca_pif_bsdx_ipv4_component, " >> $outfile.struct - static_components="$static_components bsdx_ipv4" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:bsdx_ipv4 can compile" >&5 -$as_echo_n "checking if MCA component pif:bsdx_ipv4 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pif" = "bsdx_ipv4" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_pif_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** pif component bsdx_ipv4 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pif" = "bsdx_ipv4" ; then -as_fn_error $? "*** pif component bsdx_ipv4 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pif_bsdx_ipv4_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_bsdx_ipv4_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_bsdx_ipv4_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$pif_bsdx_ipv4_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_bsdx_ipv4_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_bsdx_ipv4_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pif_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pif_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS ($pif_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pif_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS ($pif_bsdx_ipv4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:bsdx_ipv4 can compile" >&5 -$as_echo_n "checking if MCA component pif:bsdx_ipv4 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_pif" = "bsdx_ipv4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bsdx_ipv4\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"bsdx_ipv4\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_pif" ; then - if test "$DIRECT_pif" = "bsdx_ipv4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bsdx_ipv4\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"bsdx_ipv4\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components bsdx_ipv4" -fi - - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_pmix_pif_bsdx_ipv4_DSO=1 -else - BUILD_pmix_pif_bsdx_ipv4_DSO=0 -fi - if test "$BUILD_pmix_pif_bsdx_ipv4_DSO" = "1"; then - MCA_BUILD_pmix_pif_bsdx_ipv4_DSO_TRUE= - MCA_BUILD_pmix_pif_bsdx_ipv4_DSO_FALSE='#' -else - MCA_BUILD_pmix_pif_bsdx_ipv4_DSO_TRUE='#' - MCA_BUILD_pmix_pif_bsdx_ipv4_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - - unset compile_mode - - - - - - pmix_show_subsubsubtitle "MCA component pif:bsdx_ipv6 (m4 configuration macro)" - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/src/mca/pif/bsdx_ipv6" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pif" ; then - if test "$DIRECT_pif" = "bsdx_ipv6" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_pif" = "1"; then : - want_component=0 -fi - if test "$DISABLE_pif_bsdx_ipv6" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pif:bsdx_ipv6 compile mode" >&5 -$as_echo_n "checking for MCA component pif:bsdx_ipv6 compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - - - # try to configure the component - - ac_config_files="$ac_config_files src/mca/pif/bsdx_ipv6/Makefile" - - - - - # If we found struct sockaddr and we're on any of the BSDs, we're - # happy. I.e., this: - #if defined( __NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \ - # defined(__386BSD__) || defined(__bsdi__) || defined(__APPLE__) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct sockaddr" >&5 -$as_echo_n "checking struct sockaddr... " >&6; } - if test "$pmix_found_sockaddr" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (cached)" >&5 -$as_echo "yes (cached)" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking some flavor of BSD" >&5 -$as_echo_n "checking some flavor of BSD... " >&6; } - if test "$pmix_found_netbsd" = "yes" || \ - test "$pmix_found_freebsd" = "yes" || \ - test "$pmix_found_openbsd" = "yes" || \ - test "$pmix_found_386bsd" = "yes" || \ - test "$pmix_found_bsdi" = "yes" || - test "$pmix_found_apple" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - should_build=$should_build -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - should_build=0 -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (cached)" >&5 -$as_echo "no (cached)" >&6; } - should_build=0 -fi - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/pif/bsdx_ipv6/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components bsdx_ipv6" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components bsdx_ipv6" - else - if test "pif" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pif/bsdx_ipv6/lib${PMIX_LIB_PREFIX}mca_pif_bsdx_ipv6.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pif/bsdx_ipv6/libmca_pif_bsdx_ipv6.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_pif_bsdx_ipv6_component;" >> $outfile.extern - echo " &mca_pif_bsdx_ipv6_component, " >> $outfile.struct - static_components="$static_components bsdx_ipv6" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:bsdx_ipv6 can compile" >&5 -$as_echo_n "checking if MCA component pif:bsdx_ipv6 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pif" = "bsdx_ipv6" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_pif_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** pif component bsdx_ipv6 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pif" = "bsdx_ipv6" ; then -as_fn_error $? "*** pif component bsdx_ipv6 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pif_bsdx_ipv6_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_bsdx_ipv6_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_bsdx_ipv6_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$pif_bsdx_ipv6_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_bsdx_ipv6_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_bsdx_ipv6_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pif_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pif_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS ($pif_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pif_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS ($pif_bsdx_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:bsdx_ipv6 can compile" >&5 -$as_echo_n "checking if MCA component pif:bsdx_ipv6 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_pif" = "bsdx_ipv6" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bsdx_ipv6\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"bsdx_ipv6\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_pif" ; then - if test "$DIRECT_pif" = "bsdx_ipv6" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bsdx_ipv6\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"bsdx_ipv6\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components bsdx_ipv6" -fi - - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_pmix_pif_bsdx_ipv6_DSO=1 -else - BUILD_pmix_pif_bsdx_ipv6_DSO=0 -fi - if test "$BUILD_pmix_pif_bsdx_ipv6_DSO" = "1"; then - MCA_BUILD_pmix_pif_bsdx_ipv6_DSO_TRUE= - MCA_BUILD_pmix_pif_bsdx_ipv6_DSO_FALSE='#' -else - MCA_BUILD_pmix_pif_bsdx_ipv6_DSO_TRUE='#' - MCA_BUILD_pmix_pif_bsdx_ipv6_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - - unset compile_mode - - - - - - pmix_show_subsubsubtitle "MCA component pif:linux_ipv6 (m4 configuration macro)" - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/src/mca/pif/linux_ipv6" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pif" ; then - if test "$DIRECT_pif" = "linux_ipv6" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_pif" = "1"; then : - want_component=0 -fi - if test "$DISABLE_pif_linux_ipv6" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pif:linux_ipv6 compile mode" >&5 -$as_echo_n "checking for MCA component pif:linux_ipv6 compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - - - # try to configure the component - - ac_config_files="$ac_config_files src/mca/pif/linux_ipv6/Makefile" - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we are on Linux with TCP" >&5 -$as_echo_n "checking if we are on Linux with TCP... " >&6; } - # If we have struct sockaddr and we're on Linux, then we're - # happy. - if test "$pmix_found_sockaddr" = "yes" && test "$pmix_found_linux" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - should_build=$should_build -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - should_build=0 -fi - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/pif/linux_ipv6/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components linux_ipv6" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components linux_ipv6" - else - if test "pif" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pif/linux_ipv6/lib${PMIX_LIB_PREFIX}mca_pif_linux_ipv6.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pif/linux_ipv6/libmca_pif_linux_ipv6.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_pif_linux_ipv6_component;" >> $outfile.extern - echo " &mca_pif_linux_ipv6_component, " >> $outfile.struct - static_components="$static_components linux_ipv6" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:linux_ipv6 can compile" >&5 -$as_echo_n "checking if MCA component pif:linux_ipv6 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pif" = "linux_ipv6" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_pif_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** pif component linux_ipv6 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pif" = "linux_ipv6" ; then -as_fn_error $? "*** pif component linux_ipv6 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pif_linux_ipv6_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_linux_ipv6_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_linux_ipv6_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$pif_linux_ipv6_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_linux_ipv6_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_linux_ipv6_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pif_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pif_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS ($pif_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pif_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS ($pif_linux_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:linux_ipv6 can compile" >&5 -$as_echo_n "checking if MCA component pif:linux_ipv6 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_pif" = "linux_ipv6" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux_ipv6\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"linux_ipv6\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_pif" ; then - if test "$DIRECT_pif" = "linux_ipv6" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux_ipv6\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"linux_ipv6\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components linux_ipv6" -fi - - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_pmix_pif_linux_ipv6_DSO=1 -else - BUILD_pmix_pif_linux_ipv6_DSO=0 -fi - if test "$BUILD_pmix_pif_linux_ipv6_DSO" = "1"; then - MCA_BUILD_pmix_pif_linux_ipv6_DSO_TRUE= - MCA_BUILD_pmix_pif_linux_ipv6_DSO_FALSE='#' -else - MCA_BUILD_pmix_pif_linux_ipv6_DSO_TRUE='#' - MCA_BUILD_pmix_pif_linux_ipv6_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - - unset compile_mode - - - - - - pmix_show_subsubsubtitle "MCA component pif:posix_ipv4 (m4 configuration macro)" - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/src/mca/pif/posix_ipv4" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pif" ; then - if test "$DIRECT_pif" = "posix_ipv4" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_pif" = "1"; then : - want_component=0 -fi - if test "$DISABLE_pif_posix_ipv4" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pif:posix_ipv4 compile mode" >&5 -$as_echo_n "checking for MCA component pif:posix_ipv4 compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - - - # try to configure the component - - ac_config_files="$ac_config_files src/mca/pif/posix_ipv4/Makefile" - - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_pif_posix_ipv4_happy; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_pif_posix_ipv4_happy\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - pmix_pif_posix_ipv4_happy=no - - - - # If we found struct sockaddr and we're NOT on most of the BSDs, - # we're happy. I.e., if posix but not: - #if defined(__NetBSD__) || defined(__FreeBSD__) || \ - # defined(__OpenBSD__) || defined(__DragonFly__) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct sockaddr" >&5 -$as_echo_n "checking struct sockaddr... " >&6; } - if test "$pmix_found_sockaddr" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (cached)" >&5 -$as_echo "yes (cached)" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking not NetBSD, FreeBSD, OpenBSD, or DragonFly" >&5 -$as_echo_n "checking not NetBSD, FreeBSD, OpenBSD, or DragonFly... " >&6; } - if test "$pmix_found_netbsd" = "no" && test "$pmix_found_freebsd" = "no" && test "$pmix_found_openbsd" = "no" && test "$pmix_found_dragonfly" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - pmix_pif_posix_ipv4_happy=yes -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (cached)" >&5 -$as_echo "no (cached)" >&6; } - -fi - - if test "$pmix_pif_posix_ipv4_happy" = "yes"; then : - ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_hwaddr" "ac_cv_member_struct_ifreq_ifr_hwaddr" "#include -" -if test "x$ac_cv_member_struct_ifreq_ifr_hwaddr" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_IFREQ_IFR_HWADDR 1 -_ACEOF - - -fi - - ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_mtu" "ac_cv_member_struct_ifreq_ifr_mtu" "#include -" -if test "x$ac_cv_member_struct_ifreq_ifr_mtu" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_IFREQ_IFR_MTU 1 -_ACEOF - - -fi - - -fi - - if test "$pmix_pif_posix_ipv4_happy" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi; - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/pif/posix_ipv4/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components posix_ipv4" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components posix_ipv4" - else - if test "pif" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pif/posix_ipv4/lib${PMIX_LIB_PREFIX}mca_pif_posix_ipv4.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pif/posix_ipv4/libmca_pif_posix_ipv4.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_pif_posix_ipv4_component;" >> $outfile.extern - echo " &mca_pif_posix_ipv4_component, " >> $outfile.struct - static_components="$static_components posix_ipv4" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:posix_ipv4 can compile" >&5 -$as_echo_n "checking if MCA component pif:posix_ipv4 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pif" = "posix_ipv4" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_pif_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** pif component posix_ipv4 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pif" = "posix_ipv4" ; then -as_fn_error $? "*** pif component posix_ipv4 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pif_posix_ipv4_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_posix_ipv4_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_posix_ipv4_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$pif_posix_ipv4_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_posix_ipv4_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_posix_ipv4_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pif_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pif_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS ($pif_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pif_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS ($pif_posix_ipv4_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:posix_ipv4 can compile" >&5 -$as_echo_n "checking if MCA component pif:posix_ipv4 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_pif" = "posix_ipv4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"posix_ipv4\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"posix_ipv4\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_pif" ; then - if test "$DIRECT_pif" = "posix_ipv4" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"posix_ipv4\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"posix_ipv4\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - # add component to all component list - all_components="$all_components posix_ipv4" -fi - - - - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_pmix_pif_posix_ipv4_DSO=1 -else - BUILD_pmix_pif_posix_ipv4_DSO=0 -fi - if test "$BUILD_pmix_pif_posix_ipv4_DSO" = "1"; then - MCA_BUILD_pmix_pif_posix_ipv4_DSO_TRUE= - MCA_BUILD_pmix_pif_posix_ipv4_DSO_FALSE='#' -else - MCA_BUILD_pmix_pif_posix_ipv4_DSO_TRUE='#' - MCA_BUILD_pmix_pif_posix_ipv4_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - - unset compile_mode - - - - - - pmix_show_subsubsubtitle "MCA component pif:solaris_ipv6 (m4 configuration macro)" - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - - - - component_path="$srcdir/src/mca/pif/solaris_ipv6" - want_component=0 - - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pif" ; then - if test "$DIRECT_pif" = "solaris_ipv6" ; then - want_component=1 - else - want_component=0 - fi - fi - fi - - # if we were explicitly disabled, don't build :) - if test "$DISABLE_pif" = "1"; then : - want_component=0 -fi - if test "$DISABLE_pif_solaris_ipv6" = "1"; then : - want_component=0 -fi - - if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed -else - should_build=0 -fi - - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pif:solaris_ipv6 compile mode" >&5 -$as_echo_n "checking for MCA component pif:solaris_ipv6 compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - - - # try to configure the component - - ac_config_files="$ac_config_files src/mca/pif/solaris_ipv6/Makefile" - - - - - # check to see if we are on a solaris machine - if test "$pmix_found_sun" = "yes"; then : - should_build=$should_build -else - should_build=0 -fi - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/pif/solaris_ipv6/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components solaris_ipv6" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components solaris_ipv6" - else - if test "pif" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pif/solaris_ipv6/lib${PMIX_LIB_PREFIX}mca_pif_solaris_ipv6.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pif/solaris_ipv6/libmca_pif_solaris_ipv6.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_pif_solaris_ipv6_component;" >> $outfile.extern - echo " &mca_pif_solaris_ipv6_component, " >> $outfile.struct - static_components="$static_components solaris_ipv6" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:solaris_ipv6 can compile" >&5 -$as_echo_n "checking if MCA component pif:solaris_ipv6 can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pif" = "solaris_ipv6" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_pif_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** pif component solaris_ipv6 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pif" = "solaris_ipv6" ; then -as_fn_error $? "*** pif component solaris_ipv6 was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pif_solaris_ipv6_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_solaris_ipv6_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_solaris_ipv6_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$pif_solaris_ipv6_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_solaris_ipv6_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_solaris_ipv6_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pif_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pif_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done +# +# Clean up +# # Unwind the index @@ -52612,92 +37072,249 @@ unset $pmix_var done + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pif_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS ($pif_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pif_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS ($pif_solaris_ipv6_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/src/mca/common/all_components/post_configure.sh" + if test -f $infile; then -else + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:solaris_ipv6 can compile" >&5 -$as_echo_n "checking if MCA component pif:solaris_ipv6 can compile... " >&6; } + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/common/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "common" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/common/$component/lib${PMIX_LIB_PREFIX}mca_common_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/common/$component/libmca_common_$component.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_common_$component_component;" >> $outfile.extern + echo " &mca_common_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:$component can compile" >&5 +$as_echo_n "checking if MCA component common:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_common" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_common_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** common component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_common" = "$component" ; then +as_fn_error $? "*** common component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component common:$component can compile" >&5 +$as_echo_n "checking if MCA component common:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pif" = "solaris_ipv6" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"solaris_ipv6\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"solaris_ipv6\" failed to configure properly" >&2;} + if test "$with_common" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_pif" ; then - if test "$DIRECT_pif" = "solaris_ipv6" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"solaris_ipv6\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"solaris_ipv6\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_common" ; then + if test "$DIRECT_common" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components solaris_ipv6" + fi + fi + done + fi + MCA_pmix_common_ALL_COMPONENTS="$all_components" + MCA_pmix_common_STATIC_COMPONENTS="$static_components" + MCA_pmix_common_DSO_COMPONENTS="$dso_components" + MCA_pmix_common_STATIC_LTLIBS="$static_ltlibs" - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_pmix_pif_solaris_ipv6_DSO=1 -else - BUILD_pmix_pif_solaris_ipv6_DSO=0 -fi - if test "$BUILD_pmix_pif_solaris_ipv6_DSO" = "1"; then - MCA_BUILD_pmix_pif_solaris_ipv6_DSO_TRUE= - MCA_BUILD_pmix_pif_solaris_ipv6_DSO_FALSE='#' -else - MCA_BUILD_pmix_pif_solaris_ipv6_DSO_TRUE='#' - MCA_BUILD_pmix_pif_solaris_ipv6_DSO_FALSE= -fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - unset compile_mode + MCA_pmix_common_ALL_SUBDIRS= + for item in $all_components ; do + MCA_pmix_common_ALL_SUBDIRS="$MCA_pmix_common_ALL_SUBDIRS mca/common/$item" + done - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + MCA_pmix_common_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_pmix_common_STATIC_SUBDIRS="$MCA_pmix_common_STATIC_SUBDIRS mca/common/$item" + done - if test "1" != "0"; then : + MCA_pmix_common_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_pmix_common_DSO_SUBDIRS="$MCA_pmix_common_DSO_SUBDIRS mca/common/$item" + done - for component_path in $srcdir/src/mca/pif/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - pmix_show_subsubsubtitle "MCA component pif:$component (need to configure)" - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "common" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS bfrops" + MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/bfrops" + MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_bfrops_ALL_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_bfrops_DSO_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_bfrops_STATIC_SUBDIRS)" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/bfrops/libmca_bfrops.la" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_bfrops_STATIC_LTLIBS)" + + pmix_show_subsubtitle "Configuring MCA framework bfrops" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=src/mca/bfrops/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files src/mca/bfrops/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework bfrops" >&5 +$as_echo_n "checking for no configure components in framework bfrops... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: v12, v20, v21, v3" >&5 +$as_echo "v12, v20, v21, v3" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework bfrops" >&5 +$as_echo_n "checking for m4 configure components in framework bfrops... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + pmix_show_subsubsubtitle "MCA component bfrops:v12 (no configuration)" + + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/src/mca/bfrops/v12" want_component=0 # build if: @@ -52729,8 +37346,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pif" ; then - if test "$DIRECT_pif" = "$component" ; then + if test ! -z "$DIRECT_bfrops" ; then + if test "$DIRECT_bfrops" = "v12" ; then want_component=1 else want_component=0 @@ -52739,317 +37356,99 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_pif" = "1"; then : + if test "$DISABLE_bfrops" = "1"; then : + want_component=0 +fi + if test "$DISABLE_bfrops_v12" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_pif_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi if test "$want_component" = "1"; then : should_build=1 -else - should_build=0 -fi - - - SHARED_FRAMEWORK="$DSO_pif" - str="SHARED_COMPONENT=\$DSO_pif_$component" - eval $str - - STATIC_FRAMEWORK="$STATIC_pif" - str="STATIC_COMPONENT=\$STATIC_pif_$component" - eval $str - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pif:$component compile mode" >&5 -$as_echo_n "checking for MCA component pif:$component compile mode... " >&6; } - if test "$DIRECT_pif" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - -# -# Invoke configure in a specific subdirectory. -# -# src/mca/pif/$component is the directory to invoke in -# $pmix_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="src/mca/pif/$component" -subdir_args="$pmix_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 -$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - - # - # Construct the --cache-file argument - # - - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - - # - # Invoke the configure script in the subdirectory - # - - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi - - # - # Go back to the topdir - # - - cd $subdir_parent -fi - -# -# Clean up -# - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +else + should_build=0 +fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + SHARED_FRAMEWORK="$DSO_bfrops" + SHARED_COMPONENT="$DSO_bfrops_v12" - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi + STATIC_FRAMEWORK="$STATIC_bfrops" + STATIC_COMPONENT="$STATIC_bfrops_v12" - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/src/mca/pif/all_components/post_configure.sh" - if test -f $infile; then + shared_mode_override=static - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component bfrops:v12 compile mode" >&5 +$as_echo_n "checking for MCA component bfrops:v12 compile mode... " >&6; } + if test "$DIRECT_bfrops" = "v12" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/src/mca/pif/$component/post_configure.sh" + infile="$srcdir/src/mca/bfrops/v12/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + all_components="$all_components v12" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" + dso_components="$dso_components v12" else - if test "pif" = "common"; then + if test "bfrops" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pif/$component/lib${PMIX_LIB_PREFIX}mca_pif_$component.la $static_ltlibs" + static_ltlibs="mca/bfrops/v12/lib${PMIX_LIB_PREFIX}mca_bfrops_v12.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pif/$component/libmca_pif_$component.la $static_ltlibs" + static_ltlibs="mca/bfrops/v12/libmca_bfrops_v12.la $static_ltlibs" fi - echo "extern const pmix_mca_base_component_t mca_pif_$component_component;" >> $outfile.extern - echo " &mca_pif_$component_component, " >> $outfile.struct - static_components="$static_components $component" + echo "extern const pmix_mca_base_component_t mca_bfrops_v12_component;" >> $outfile.extern + echo " &mca_bfrops_v12_component, " >> $outfile.struct + static_components="$static_components v12" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:$component can compile" >&5 -$as_echo_n "checking if MCA component pif:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:v12 can compile" >&5 +$as_echo_n "checking if MCA component bfrops:v12 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pif" = "$component" ; then + if test "$DIRECT_bfrops" = "v12" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_pif_DIRECT_CALL_HEADER=$line" + str="MCA_pmix_bfrops_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pif component $component was supposed to be direct-called, but +as_fn_error $? "*** bfrops component v12 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -53057,371 +37456,483 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pif" = "$component" ; then -as_fn_error $? "*** pif component $component was supposed to be direct-called, but + if test "$DIRECT_bfrops" = "v12" ; then +as_fn_error $? "*** bfrops component v12 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$pif_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" - + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:v12 can compile" >&5 +$as_echo_n "checking if MCA component bfrops:v12 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + # If this component was requested as the default for this + # type, then abort. + if test "$with_bfrops" = "v12" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v12\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"v12\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + if test ! -z "$DIRECT_bfrops" ; then + if test "$DIRECT_bfrops" = "v12" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v12\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"v12\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + fi + # add component to all component list + all_components="$all_components v12" + fi - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_pmix_bfrops_v12_DSO=1 + else + BUILD_pmix_bfrops_v12_DSO=0 + fi + if test "$BUILD_pmix_bfrops_v12_DSO" = "1"; then + MCA_BUILD_pmix_bfrops_v12_DSO_TRUE= + MCA_BUILD_pmix_bfrops_v12_DSO_FALSE='#' else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi + MCA_BUILD_pmix_bfrops_v12_DSO_TRUE='#' + MCA_BUILD_pmix_bfrops_v12_DSO_FALSE= fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + ac_config_files="$ac_config_files src/mca/bfrops/v12/Makefile" - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + unset compile_mode -str="line=\$pif_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + pmix_show_subsubsubtitle "MCA component bfrops:v20 (no configuration)" + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + component_path="$srcdir/src/mca/bfrops/v20" + want_component=0 - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_bfrops" ; then + if test "$DIRECT_bfrops" = "v20" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_bfrops" = "1"; then : + want_component=0 fi - done + if test "$DISABLE_bfrops_v20" = "1"; then : + want_component=0 fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + if test "$want_component" = "1"; then : + should_build=1 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi + should_build=0 fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + SHARED_FRAMEWORK="$DSO_bfrops" + SHARED_COMPONENT="$DSO_bfrops_v20" - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + STATIC_FRAMEWORK="$STATIC_bfrops" + STATIC_COMPONENT="$STATIC_bfrops_v20" - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + shared_mode_override=static + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component bfrops:v20 compile mode" >&5 +$as_echo_n "checking for MCA component bfrops:v20 compile mode... " >&6; } + if test "$DIRECT_bfrops" = "v20" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/bfrops/v20/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components v20" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components v20" + else + if test "bfrops" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/bfrops/v20/lib${PMIX_LIB_PREFIX}mca_bfrops_v20.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/bfrops/v20/libmca_bfrops_v20.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_bfrops_v20_component;" >> $outfile.extern + echo " &mca_bfrops_v20_component, " >> $outfile.struct + static_components="$static_components v20" + fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:v20 can compile" >&5 +$as_echo_n "checking if MCA component bfrops:v20 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_bfrops" = "v20" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_bfrops_DIRECT_CALL_HEADER=$line" + eval $str else +as_fn_error $? "*** bfrops component v20 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_bfrops" = "v20" ; then +as_fn_error $? "*** bfrops component v20 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:$component can compile" >&5 -$as_echo_n "checking if MCA component pif:$component can compile... " >&6; } + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:v20 can compile" >&5 +$as_echo_n "checking if MCA component bfrops:v20 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pif" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + if test "$with_bfrops" = "v20" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v20\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"v20\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_pif" ; then - if test "$DIRECT_pif" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_bfrops" ; then + if test "$DIRECT_bfrops" = "v20" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v20\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"v20\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - fi - fi - done + # add component to all component list + all_components="$all_components v20" + fi + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_pmix_bfrops_v20_DSO=1 + else + BUILD_pmix_bfrops_v20_DSO=0 + fi + if test "$BUILD_pmix_bfrops_v20_DSO" = "1"; then + MCA_BUILD_pmix_bfrops_v20_DSO_TRUE= + MCA_BUILD_pmix_bfrops_v20_DSO_FALSE='#' +else + MCA_BUILD_pmix_bfrops_v20_DSO_TRUE='#' + MCA_BUILD_pmix_bfrops_v20_DSO_FALSE= fi - MCA_pmix_pif_ALL_COMPONENTS="$all_components" - MCA_pmix_pif_STATIC_COMPONENTS="$static_components" - MCA_pmix_pif_DSO_COMPONENTS="$dso_components" - MCA_pmix_pif_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_pmix_pif_ALL_SUBDIRS= - for item in $all_components ; do - MCA_pmix_pif_ALL_SUBDIRS="$MCA_pmix_pif_ALL_SUBDIRS mca/pif/$item" - done - - - - MCA_pmix_pif_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_pmix_pif_STATIC_SUBDIRS="$MCA_pmix_pif_STATIC_SUBDIRS mca/pif/$item" - done - + ac_config_files="$ac_config_files src/mca/bfrops/v20/Makefile" - MCA_pmix_pif_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_pmix_pif_DSO_SUBDIRS="$MCA_pmix_pif_DSO_SUBDIRS mca/pif/$item" - done + unset compile_mode + pmix_show_subsubsubtitle "MCA component bfrops:v21 (no configuration)" - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "pif" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_bfrops" ; then + if test "$DIRECT_bfrops" = "v21" ; then + want_component=1 + else + want_component=0 + fi fi fi - rm -f $outfile.struct $outfile.extern - unset all_components static_components dso_components outfile outfile_real + # if we were explicitly disabled, don't build :) + if test "$DISABLE_bfrops" = "1"; then : + want_component=0 +fi + if test "$DISABLE_bfrops_v21" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi - MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS pinstalldirs" - MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/pinstalldirs" - MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_pinstalldirs_ALL_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_pinstalldirs_DSO_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_pinstalldirs_STATIC_SUBDIRS)" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/pinstalldirs/libmca_pinstalldirs.la" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_pinstalldirs_STATIC_LTLIBS)" - pmix_show_subsubtitle "Configuring MCA framework pinstalldirs" + SHARED_FRAMEWORK="$DSO_bfrops" + SHARED_COMPONENT="$DSO_bfrops_v21" + STATIC_FRAMEWORK="$STATIC_bfrops" + STATIC_COMPONENT="$STATIC_bfrops_v21" + shared_mode_override=static + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component bfrops:v21 compile mode" >&5 +$as_echo_n "checking for MCA component bfrops:v21 compile mode... " >&6; } + if test "$DIRECT_bfrops" = "v21" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=src/mca/pinstalldirs/base - as_dir=$outdir; as_fn_mkdir_p + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # emit Makefile rule - ac_config_files="$ac_config_files src/mca/pinstalldirs/Makefile" + if test "$should_build" = "1" ; then - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework pinstalldirs" >&5 -$as_echo_n "checking for no configure components in framework pinstalldirs... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework pinstalldirs" >&5 -$as_echo_n "checking for m4 configure components in framework pinstalldirs... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: config, env" >&5 -$as_echo "config, env" >&6; } + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/bfrops/v21/post_configure.sh" - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components v21" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components v21" + else + if test "bfrops" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/bfrops/v21/lib${PMIX_LIB_PREFIX}mca_bfrops_v21.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/bfrops/v21/libmca_bfrops_v21.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_bfrops_v21_component;" >> $outfile.extern + echo " &mca_bfrops_v21_component, " >> $outfile.struct + static_components="$static_components v21" + fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:v21 can compile" >&5 +$as_echo_n "checking if MCA component bfrops:v21 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - # run the configure logic for the no-config components + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_bfrops" = "v21" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_bfrops_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** bfrops component v21 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_bfrops" = "v21" ; then +as_fn_error $? "*** bfrops component v21 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else - # configure components that use built-in configuration scripts + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:v21 can compile" >&5 +$as_echo_n "checking if MCA component bfrops:v21 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_bfrops" = "v21" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v21\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"v21\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + if test ! -z "$DIRECT_bfrops" ; then + if test "$DIRECT_bfrops" = "v21" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v21\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"v21\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + # add component to all component list + all_components="$all_components v21" + fi + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_pmix_bfrops_v21_DSO=1 + else + BUILD_pmix_bfrops_v21_DSO=0 + fi + if test "$BUILD_pmix_bfrops_v21_DSO" = "1"; then + MCA_BUILD_pmix_bfrops_v21_DSO_TRUE= + MCA_BUILD_pmix_bfrops_v21_DSO_FALSE='#' +else + MCA_BUILD_pmix_bfrops_v21_DSO_TRUE='#' + MCA_BUILD_pmix_bfrops_v21_DSO_FALSE= +fi + ac_config_files="$ac_config_files src/mca/bfrops/v21/Makefile" - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 + unset compile_mode - pmix_show_subsubsubtitle "MCA component pinstalldirs:env (m4 configuration macro, priority 10)" + pmix_show_subsubsubtitle "MCA component bfrops:v3 (no configuration)" - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/src/mca/pinstalldirs/env" + component_path="$srcdir/src/mca/bfrops/v3" want_component=0 # build if: @@ -53453,8 +37964,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pinstalldirs" ; then - if test "$DIRECT_pinstalldirs" = "env" ; then + if test ! -z "$DIRECT_bfrops" ; then + if test "$DIRECT_bfrops" = "v3" ; then want_component=1 else want_component=0 @@ -53463,81 +37974,99 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_pinstalldirs" = "1"; then : + if test "$DISABLE_bfrops" = "1"; then : want_component=0 fi - if test "$DISABLE_pinstalldirs_env" = "1"; then : + if test "$DISABLE_bfrops_v3" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pinstalldirs:env compile mode" >&5 -$as_echo_n "checking for MCA component pinstalldirs:env compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + SHARED_FRAMEWORK="$DSO_bfrops" + SHARED_COMPONENT="$DSO_bfrops_v3" + STATIC_FRAMEWORK="$STATIC_bfrops" + STATIC_COMPONENT="$STATIC_bfrops_v3" - # try to configure the component + shared_mode_override=static - ac_config_files="$ac_config_files src/mca/pinstalldirs/env/Makefile" + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component bfrops:v3 compile mode" >&5 +$as_echo_n "checking for MCA component bfrops:v3 compile mode... " >&6; } + if test "$DIRECT_bfrops" = "v3" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/src/mca/pinstalldirs/env/post_configure.sh" + infile="$srcdir/src/mca/bfrops/v3/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components env" + all_components="$all_components v3" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components env" + dso_components="$dso_components v3" else - if test "pinstalldirs" = "common"; then + if test "bfrops" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pinstalldirs/env/lib${PMIX_LIB_PREFIX}mca_pinstalldirs_env.la $static_ltlibs" + static_ltlibs="mca/bfrops/v3/lib${PMIX_LIB_PREFIX}mca_bfrops_v3.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pinstalldirs/env/libmca_pinstalldirs_env.la $static_ltlibs" + static_ltlibs="mca/bfrops/v3/libmca_bfrops_v3.la $static_ltlibs" fi - echo "extern const pmix_mca_base_component_t mca_pinstalldirs_env_component;" >> $outfile.extern - echo " &mca_pinstalldirs_env_component, " >> $outfile.struct - static_components="$static_components env" + echo "extern const pmix_mca_base_component_t mca_bfrops_v3_component;" >> $outfile.extern + echo " &mca_bfrops_v3_component, " >> $outfile.struct + static_components="$static_components v3" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pinstalldirs:env can compile" >&5 -$as_echo_n "checking if MCA component pinstalldirs:env can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:v3 can compile" >&5 +$as_echo_n "checking if MCA component bfrops:v3 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pinstalldirs" = "env" ; then + if test "$DIRECT_bfrops" = "v3" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_pinstalldirs_DIRECT_CALL_HEADER=$line" + str="MCA_pmix_bfrops_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pinstalldirs component env was supposed to be direct-called, but +as_fn_error $? "*** bfrops component v3 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -53545,186 +38074,186 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pinstalldirs" = "env" ; then -as_fn_error $? "*** pinstalldirs component env was supposed to be direct-called, but + if test "$DIRECT_bfrops" = "v3" ; then +as_fn_error $? "*** bfrops component v3 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pinstalldirs_env_WRAPPER_EXTRA_LDFLAGS" = ""; then : - + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:v3 can compile" >&5 +$as_echo_n "checking if MCA component bfrops:v3 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + # If this component was requested as the default for this + # type, then abort. + if test "$with_bfrops" = "v3" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v3\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"v3\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + if test ! -z "$DIRECT_bfrops" ; then + if test "$DIRECT_bfrops" = "v3" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"v3\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"v3\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + fi + # add component to all component list + all_components="$all_components v3" + fi - for arg in $pinstalldirs_env_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_pmix_bfrops_v3_DSO=1 + else + BUILD_pmix_bfrops_v3_DSO=0 + fi + if test "$BUILD_pmix_bfrops_v3_DSO" = "1"; then + MCA_BUILD_pmix_bfrops_v3_DSO_TRUE= + MCA_BUILD_pmix_bfrops_v3_DSO_FALSE='#' else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi + MCA_BUILD_pmix_bfrops_v3_DSO_TRUE='#' + MCA_BUILD_pmix_bfrops_v3_DSO_FALSE= fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + ac_config_files="$ac_config_files src/mca/bfrops/v3/Makefile" - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + unset compile_mode -else + # configure components that use built-in configuration scripts - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + if test "1" != "0"; then : - for arg in $pinstalldirs_env_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done + for component_path in $srcdir/src/mca/bfrops/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + pmix_show_subsubsubtitle "MCA component bfrops:$component (need to configure)" + + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/src/mca/bfrops/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_bfrops" ; then + if test "$DIRECT_bfrops" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_bfrops" = "1"; then : + want_component=0 fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + str="DISABLED_COMPONENT_CHECK=\$DISABLE_bfrops_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi + should_build=0 fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + SHARED_FRAMEWORK="$DSO_bfrops" + str="SHARED_COMPONENT=\$DSO_bfrops_$component" + eval $str - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + STATIC_FRAMEWORK="$STATIC_bfrops" + str="STATIC_COMPONENT=\$STATIC_bfrops_$component" + eval $str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component bfrops:$component compile mode" >&5 +$as_echo_n "checking for MCA component bfrops:$component compile mode... " >&6; } + if test "$DIRECT_bfrops" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" -fi - if test "$pinstalldirs_env_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$should_build" = "1" ; then @@ -53737,7 +38266,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do + for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -53756,7 +38285,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $pmix_str unset pmix_str @@ -53764,105 +38293,129 @@ pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $pinstalldirs_env_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done +# +# Invoke configure in a specific subdirectory. +# +# src/mca/bfrops/$component is the directory to invoke in +# $pmix_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="src/mca/bfrops/$component" +subdir_args="$pmix_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" +# +# Sanity checks +# - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 +$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -else + # + # Move into the target directory + # + subdir_parent=`pwd` + cd $subdir_dir + # + # Make a "../" for each directory in $subdir_dir. + # - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # + # Construct the --cache-file argument + # - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + # + # Go back to the topdir + # - for arg in $pinstalldirs_env_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi + cd $subdir_parent fi - done + +# +# Clean up +# # Unwind the index @@ -53885,172 +38438,249 @@ unset $pmix_var done + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi -fi + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/src/mca/bfrops/all_components/post_configure.sh" + if test -f $infile; then - fi + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pinstalldirs_env_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/bfrops/$component/post_configure.sh" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "bfrops" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/bfrops/$component/lib${PMIX_LIB_PREFIX}mca_bfrops_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/bfrops/$component/libmca_bfrops_$component.la $static_ltlibs" fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pinstalldirs_env_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + echo "extern const pmix_mca_base_component_t mca_bfrops_$component_component;" >> $outfile.extern + echo " &mca_bfrops_$component_component, " >> $outfile.struct + static_components="$static_components $component" fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:$component can compile" >&5 +$as_echo_n "checking if MCA component bfrops:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pinstalldirs_env_WRAPPER_EXTRA_CPPFLAGS ($pinstalldirs_env_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pinstalldirs_env_WRAPPER_EXTRA_CPPFLAGS ($pinstalldirs_env_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_bfrops" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_bfrops_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** bfrops component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_bfrops" = "$component" ; then +as_fn_error $? "*** bfrops component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pinstalldirs:env can compile" >&5 -$as_echo_n "checking if MCA component pinstalldirs:env can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component bfrops:$component can compile" >&5 +$as_echo_n "checking if MCA component bfrops:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pinstalldirs" = "env" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"env\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"env\" failed to configure properly" >&2;} + if test "$with_bfrops" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_pinstalldirs" ; then - if test "$DIRECT_pinstalldirs" = "env" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"env\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"env\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_bfrops" ; then + if test "$DIRECT_bfrops" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components env" + fi + fi + done + fi + MCA_pmix_bfrops_ALL_COMPONENTS="$all_components" + MCA_pmix_bfrops_STATIC_COMPONENTS="$static_components" + MCA_pmix_bfrops_DSO_COMPONENTS="$dso_components" + MCA_pmix_bfrops_STATIC_LTLIBS="$static_ltlibs" - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_pmix_pinstalldirs_env_DSO=1 -else - BUILD_pmix_pinstalldirs_env_DSO=0 -fi - if test "$BUILD_pmix_pinstalldirs_env_DSO" = "1"; then - MCA_BUILD_pmix_pinstalldirs_env_DSO_TRUE= - MCA_BUILD_pmix_pinstalldirs_env_DSO_FALSE='#' -else - MCA_BUILD_pmix_pinstalldirs_env_DSO_TRUE='#' - MCA_BUILD_pmix_pinstalldirs_env_DSO_FALSE= -fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi - unset compile_mode + MCA_pmix_bfrops_ALL_SUBDIRS= + for item in $all_components ; do + MCA_pmix_bfrops_ALL_SUBDIRS="$MCA_pmix_bfrops_ALL_SUBDIRS mca/bfrops/$item" + done - pmix_show_subsubsubtitle "MCA component pinstalldirs:config (m4 configuration macro, priority 0)" + MCA_pmix_bfrops_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_pmix_bfrops_STATIC_SUBDIRS="$MCA_pmix_bfrops_STATIC_SUBDIRS mca/bfrops/$item" + done - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + MCA_pmix_bfrops_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_pmix_bfrops_DSO_SUBDIRS="$MCA_pmix_bfrops_DSO_SUBDIRS mca/bfrops/$item" + done - component_path="$srcdir/src/mca/pinstalldirs/config" + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "bfrops" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS gds" + MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/gds" + MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_gds_ALL_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_gds_DSO_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_gds_STATIC_SUBDIRS)" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/gds/libmca_gds.la" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_gds_STATIC_LTLIBS)" + + pmix_show_subsubtitle "Configuring MCA framework gds" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=src/mca/gds/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files src/mca/gds/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework gds" >&5 +$as_echo_n "checking for no configure components in framework gds... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: hash" >&5 +$as_echo "hash" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework gds" >&5 +$as_echo_n "checking for m4 configure components in framework gds... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ds12, ds21" >&5 +$as_echo "ds12, ds21" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + pmix_show_subsubsubtitle "MCA component gds:hash (no configuration)" + + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/src/mca/gds/hash" want_component=0 # build if: @@ -54082,8 +38712,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pinstalldirs" ; then - if test "$DIRECT_pinstalldirs" = "config" ; then + if test ! -z "$DIRECT_gds" ; then + if test "$DIRECT_gds" = "hash" ; then want_component=1 else want_component=0 @@ -54092,81 +38722,99 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_pinstalldirs" = "1"; then : + if test "$DISABLE_gds" = "1"; then : want_component=0 fi - if test "$DISABLE_pinstalldirs_config" = "1"; then : + if test "$DISABLE_gds_hash" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pinstalldirs:config compile mode" >&5 -$as_echo_n "checking for MCA component pinstalldirs:config compile mode... " >&6; } - compile_mode="static" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + SHARED_FRAMEWORK="$DSO_gds" + SHARED_COMPONENT="$DSO_gds_hash" + STATIC_FRAMEWORK="$STATIC_gds" + STATIC_COMPONENT="$STATIC_gds_hash" - # try to configure the component + shared_mode_override=static - ac_config_files="$ac_config_files src/mca/pinstalldirs/config/Makefile src/mca/pinstalldirs/config/pinstall_dirs.h" + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component gds:hash compile mode" >&5 +$as_echo_n "checking for MCA component gds:hash compile mode... " >&6; } + if test "$DIRECT_gds" = "hash" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/src/mca/pinstalldirs/config/post_configure.sh" + infile="$srcdir/src/mca/gds/hash/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components config" + all_components="$all_components hash" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components config" + dso_components="$dso_components hash" else - if test "pinstalldirs" = "common"; then + if test "gds" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pinstalldirs/config/lib${PMIX_LIB_PREFIX}mca_pinstalldirs_config.la $static_ltlibs" + static_ltlibs="mca/gds/hash/lib${PMIX_LIB_PREFIX}mca_gds_hash.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pinstalldirs/config/libmca_pinstalldirs_config.la $static_ltlibs" + static_ltlibs="mca/gds/hash/libmca_gds_hash.la $static_ltlibs" fi - echo "extern const pmix_mca_base_component_t mca_pinstalldirs_config_component;" >> $outfile.extern - echo " &mca_pinstalldirs_config_component, " >> $outfile.struct - static_components="$static_components config" + echo "extern const pmix_mca_base_component_t mca_gds_hash_component;" >> $outfile.extern + echo " &mca_gds_hash_component, " >> $outfile.struct + static_components="$static_components hash" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pinstalldirs:config can compile" >&5 -$as_echo_n "checking if MCA component pinstalldirs:config can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component gds:hash can compile" >&5 +$as_echo_n "checking if MCA component gds:hash can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pinstalldirs" = "config" ; then + if test "$DIRECT_gds" = "hash" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_pinstalldirs_DIRECT_CALL_HEADER=$line" + str="MCA_pmix_gds_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pinstalldirs component config was supposed to be direct-called, but +as_fn_error $? "*** gds component hash was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -54174,466 +38822,269 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pinstalldirs" = "config" ; then -as_fn_error $? "*** pinstalldirs component config was supposed to be direct-called, but + if test "$DIRECT_gds" = "hash" ; then +as_fn_error $? "*** gds component hash was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pinstalldirs_config_WRAPPER_EXTRA_LDFLAGS" = ""; then : - + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component gds:hash can compile" >&5 +$as_echo_n "checking if MCA component gds:hash can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + # If this component was requested as the default for this + # type, then abort. + if test "$with_gds" = "hash" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hash\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"hash\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + if test ! -z "$DIRECT_gds" ; then + if test "$DIRECT_gds" = "hash" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"hash\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"hash\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $pinstalldirs_config_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + # add component to all component list + all_components="$all_components hash" fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_pmix_gds_hash_DSO=1 + else + BUILD_pmix_gds_hash_DSO=0 + fi + if test "$BUILD_pmix_gds_hash_DSO" = "1"; then + MCA_BUILD_pmix_gds_hash_DSO_TRUE= + MCA_BUILD_pmix_gds_hash_DSO_FALSE='#' +else + MCA_BUILD_pmix_gds_hash_DSO_TRUE='#' + MCA_BUILD_pmix_gds_hash_DSO_FALSE= +fi - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + ac_config_files="$ac_config_files src/mca/gds/hash/Makefile" - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + unset compile_mode - for arg in $pinstalldirs_config_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + # configure components that use built-in configuration scripts - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 -fi - if test "$pinstalldirs_config_WRAPPER_EXTRA_LIBS" = ""; then : + pmix_show_subsubsubtitle "MCA component gds:ds12 (m4 configuration macro)" + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + component_path="$srcdir/src/mca/gds/ds12" + want_component=0 - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_gds" ; then + if test "$DIRECT_gds" = "ds12" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - for arg in $pinstalldirs_config_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_gds" = "1"; then : + want_component=0 fi - done + if test "$DISABLE_gds_ds12" = "1"; then : + want_component=0 fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi + should_build=0 fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE -else + SHARED_FRAMEWORK="$DSO_gds" + SHARED_COMPONENT="$DSO_gds_ds12" + STATIC_FRAMEWORK="$STATIC_gds" + STATIC_COMPONENT="$STATIC_gds_ds12" + shared_mode_override=static - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component gds:ds12 compile mode" >&5 +$as_echo_n "checking for MCA component gds:ds12 compile mode... " >&6; } + if test "$DIRECT_gds" = "ds12" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # try to configure the component - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + ac_config_files="$ac_config_files src/mca/gds/ds12/Makefile" - for arg in $pinstalldirs_config_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + if test "$pmix_fcntl_flock_happy" = "yes"; then : + should_build=$should_build else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi + if test "$pmix_pthread_rwlockattr_setpshared" = "yes" && test "$pmix_pthread_process_shared" = "yes"; then : + should_build=$should_build +else + should_build=0 fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - fi - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pinstalldirs_config_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1"; then : - for arg in $pinstalldirs_config_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/gds/ds12/post_configure.sh" - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components ds12" - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components ds12" + else + if test "gds" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/gds/ds12/lib${PMIX_LIB_PREFIX}mca_gds_ds12.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/gds/ds12/libmca_gds_ds12.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_gds_ds12_component;" >> $outfile.extern + echo " &mca_gds_ds12_component, " >> $outfile.struct + static_components="$static_components ds12" + fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component gds:ds12 can compile" >&5 +$as_echo_n "checking if MCA component gds:ds12 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pinstalldirs_config_WRAPPER_EXTRA_CPPFLAGS ($pinstalldirs_config_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pinstalldirs_config_WRAPPER_EXTRA_CPPFLAGS ($pinstalldirs_config_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_gds" = "ds12" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_gds_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** gds component ds12 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_gds" = "ds12" ; then +as_fn_error $? "*** gds component ds12 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pinstalldirs:config can compile" >&5 -$as_echo_n "checking if MCA component pinstalldirs:config can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component gds:ds12 can compile" >&5 +$as_echo_n "checking if MCA component gds:ds12 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pinstalldirs" = "config" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"config\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"config\" failed to configure properly" >&2;} + if test "$with_gds" = "ds12" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ds12\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ds12\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_pinstalldirs" ; then - if test "$DIRECT_pinstalldirs" = "config" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"config\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"config\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_gds" ; then + if test "$DIRECT_gds" = "ds12" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ds12\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ds12\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -54641,23 +39092,23 @@ fi # add component to all component list - all_components="$all_components config" + all_components="$all_components ds12" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_pmix_pinstalldirs_config_DSO=1 + BUILD_pmix_gds_ds12_DSO=1 else - BUILD_pmix_pinstalldirs_config_DSO=0 + BUILD_pmix_gds_ds12_DSO=0 fi - if test "$BUILD_pmix_pinstalldirs_config_DSO" = "1"; then - MCA_BUILD_pmix_pinstalldirs_config_DSO_TRUE= - MCA_BUILD_pmix_pinstalldirs_config_DSO_FALSE='#' + if test "$BUILD_pmix_gds_ds12_DSO" = "1"; then + MCA_BUILD_pmix_gds_ds12_DSO_TRUE= + MCA_BUILD_pmix_gds_ds12_DSO_FALSE='#' else - MCA_BUILD_pmix_pinstalldirs_config_DSO_TRUE='#' - MCA_BUILD_pmix_pinstalldirs_config_DSO_FALSE= + MCA_BUILD_pmix_gds_ds12_DSO_TRUE='#' + MCA_BUILD_pmix_gds_ds12_DSO_FALSE= fi @@ -54673,144 +39124,13 @@ - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) - - - MCA_pmix_pinstalldirs_ALL_COMPONENTS="$all_components" - MCA_pmix_pinstalldirs_STATIC_COMPONENTS="$static_components" - MCA_pmix_pinstalldirs_DSO_COMPONENTS="$dso_components" - MCA_pmix_pinstalldirs_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_pmix_pinstalldirs_ALL_SUBDIRS= - for item in $all_components ; do - MCA_pmix_pinstalldirs_ALL_SUBDIRS="$MCA_pmix_pinstalldirs_ALL_SUBDIRS mca/pinstalldirs/$item" - done - - - - MCA_pmix_pinstalldirs_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_pmix_pinstalldirs_STATIC_SUBDIRS="$MCA_pmix_pinstalldirs_STATIC_SUBDIRS mca/pinstalldirs/$item" - done - - - - MCA_pmix_pinstalldirs_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_pmix_pinstalldirs_DSO_SUBDIRS="$MCA_pmix_pinstalldirs_DSO_SUBDIRS mca/pinstalldirs/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "pinstalldirs" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS plog" - MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/plog" - MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_plog_ALL_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_plog_DSO_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_plog_STATIC_SUBDIRS)" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/plog/libmca_plog.la" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_plog_STATIC_LTLIBS)" - - pmix_show_subsubtitle "Configuring MCA framework plog" - - - - - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=src/mca/plog/base - as_dir=$outdir; as_fn_mkdir_p - - # emit Makefile rule - ac_config_files="$ac_config_files src/mca/plog/Makefile" - - - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework plog" >&5 -$as_echo_n "checking for no configure components in framework plog... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: default, stdfd" >&5 -$as_echo "default, stdfd" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework plog" >&5 -$as_echo_n "checking for m4 configure components in framework plog... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: syslog" >&5 -$as_echo "syslog" >&6; } - - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. - - - - # run the configure logic for the no-config components - - pmix_show_subsubsubtitle "MCA component plog:default (no configuration)" + pmix_show_subsubsubtitle "MCA component gds:ds21 (m4 configuration macro)" - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/src/mca/plog/default" + component_path="$srcdir/src/mca/gds/ds21" want_component=0 # build if: @@ -54842,8 +39162,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_plog" ; then - if test "$DIRECT_plog" = "default" ; then + if test ! -z "$DIRECT_gds" ; then + if test "$DIRECT_gds" = "ds21" ; then want_component=1 else want_component=0 @@ -54852,25 +39172,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_plog" = "1"; then : + if test "$DISABLE_gds" = "1"; then : want_component=0 fi - if test "$DISABLE_plog_default" = "1"; then : + if test "$DISABLE_gds_ds21" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_plog" - SHARED_COMPONENT="$DSO_plog_default" + SHARED_FRAMEWORK="$DSO_gds" + SHARED_COMPONENT="$DSO_gds_ds21" - STATIC_FRAMEWORK="$STATIC_plog" - STATIC_COMPONENT="$STATIC_plog_default" + STATIC_FRAMEWORK="$STATIC_gds" + STATIC_COMPONENT="$STATIC_gds_ds21" shared_mode_override=static @@ -54888,9 +39210,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plog:default compile mode" >&5 -$as_echo_n "checking for MCA component plog:default compile mode... " >&6; } - if test "$DIRECT_plog" = "default" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component gds:ds21 compile mode" >&5 +$as_echo_n "checking for MCA component gds:ds21 compile mode... " >&6; } + if test "$DIRECT_gds" = "ds21" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -54898,53 +39220,66 @@ $as_echo "$compile_mode" >&6; } fi - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + # try to configure the component + + ac_config_files="$ac_config_files src/mca/gds/ds21/Makefile" + + + if test "$pmix_pthread_mutexattr_setpshared" = "yes" && test "$pmix_pthread_process_shared" = "yes"; then : + should_build=$should_build +else + should_build=0 +fi + + + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/src/mca/plog/default/post_configure.sh" + infile="$srcdir/src/mca/gds/ds21/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components default" + all_components="$all_components ds21" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components default" + dso_components="$dso_components ds21" else - if test "plog" = "common"; then + if test "gds" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/plog/default/lib${PMIX_LIB_PREFIX}mca_plog_default.la $static_ltlibs" + static_ltlibs="mca/gds/ds21/lib${PMIX_LIB_PREFIX}mca_gds_ds21.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/plog/default/libmca_plog_default.la $static_ltlibs" + static_ltlibs="mca/gds/ds21/libmca_gds_ds21.la $static_ltlibs" fi - echo "extern const pmix_mca_base_component_t mca_plog_default_component;" >> $outfile.extern - echo " &mca_plog_default_component, " >> $outfile.struct - static_components="$static_components default" + echo "extern const pmix_mca_base_component_t mca_gds_ds21_component;" >> $outfile.extern + echo " &mca_gds_ds21_component, " >> $outfile.struct + static_components="$static_components ds21" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plog:default can compile" >&5 -$as_echo_n "checking if MCA component plog:default can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component gds:ds21 can compile" >&5 +$as_echo_n "checking if MCA component gds:ds21 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_plog" = "default" ; then + if test "$DIRECT_gds" = "ds21" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_plog_DIRECT_CALL_HEADER=$line" + str="MCA_pmix_gds_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** plog component default was supposed to be direct-called, but +as_fn_error $? "*** gds component ds21 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -54952,186 +39287,185 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_plog" = "default" ; then -as_fn_error $? "*** plog component default was supposed to be direct-called, but + if test "$DIRECT_gds" = "ds21" ; then +as_fn_error $? "*** gds component ds21 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$plog_default_WRAPPER_EXTRA_LDFLAGS" = ""; then : - +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component gds:ds21 can compile" >&5 +$as_echo_n "checking if MCA component gds:ds21 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + # If this component was requested as the default for this + # type, then abort. + if test "$with_gds" = "ds21" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ds21\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ds21\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + if test ! -z "$DIRECT_gds" ; then + if test "$DIRECT_gds" = "ds21" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"ds21\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"ds21\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # add component to all component list + all_components="$all_components ds21" +fi - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $plog_default_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_pmix_gds_ds21_DSO=1 +else + BUILD_pmix_gds_ds21_DSO=0 fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test "$BUILD_pmix_gds_ds21_DSO" = "1"; then + MCA_BUILD_pmix_gds_ds21_DSO_TRUE= + MCA_BUILD_pmix_gds_ds21_DSO_FALSE='#' else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + MCA_BUILD_pmix_gds_ds21_DSO_TRUE='#' + MCA_BUILD_pmix_gds_ds21_DSO_FALSE= fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 fi - done + unset compile_mode - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done -else + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + if test "1" != "0"; then : - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + for component_path in $srcdir/src/mca/gds/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + pmix_show_subsubsubtitle "MCA component gds:$component (need to configure)" - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + component_path="$srcdir/src/mca/gds/$component" + want_component=0 - for arg in $plog_default_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_gds" ; then + if test "$DIRECT_gds" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_gds" = "1"; then : + want_component=0 fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + str="DISABLED_COMPONENT_CHECK=\$DISABLE_gds_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + + if test "$want_component" = "1"; then : + should_build=1 else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi + should_build=0 fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + SHARED_FRAMEWORK="$DSO_gds" + str="SHARED_COMPONENT=\$DSO_gds_$component" + eval $str + + STATIC_FRAMEWORK="$STATIC_gds" + str="STATIC_COMPONENT=\$STATIC_gds_$component" + eval $str + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component gds:$component compile mode" >&5 +$as_echo_n "checking for MCA component gds:$component compile mode... " >&6; } + if test "$DIRECT_gds" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" -fi - if test "$plog_default_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$should_build" = "1" ; then @@ -55144,7 +39478,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do + for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -55163,7 +39497,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $pmix_str unset pmix_str @@ -55171,105 +39505,129 @@ pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $plog_default_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done +# +# Invoke configure in a specific subdirectory. +# +# src/mca/gds/$component is the directory to invoke in +# $pmix_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="src/mca/gds/$component" +subdir_args="$pmix_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" +# +# Sanity checks +# - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 +$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -else + # + # Move into the target directory + # + subdir_parent=`pwd` + cd $subdir_dir + # + # Make a "../" for each directory in $subdir_dir. + # - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # + # Construct the --cache-file argument + # - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + # + # Go back to the topdir + # - for arg in $plog_default_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi + cd $subdir_parent fi - done + +# +# Clean up +# # Unwind the index @@ -55292,163 +39650,259 @@ unset $pmix_var done + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi -fi + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/src/mca/gds/all_components/post_configure.sh" + if test -f $infile; then - fi + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$plog_default_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/gds/$component/post_configure.sh" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "gds" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/gds/$component/lib${PMIX_LIB_PREFIX}mca_gds_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/gds/$component/libmca_gds_$component.la $static_ltlibs" fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $plog_default_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + echo "extern const pmix_mca_base_component_t mca_gds_$component_component;" >> $outfile.extern + echo " &mca_gds_$component_component, " >> $outfile.struct + static_components="$static_components $component" fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring plog_default_WRAPPER_EXTRA_CPPFLAGS ($plog_default_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring plog_default_WRAPPER_EXTRA_CPPFLAGS ($plog_default_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component gds:$component can compile" >&5 +$as_echo_n "checking if MCA component gds:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_gds" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_gds_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** gds component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_gds" = "$component" ; then +as_fn_error $? "*** gds component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plog:default can compile" >&5 -$as_echo_n "checking if MCA component plog:default can compile... " >&6; } + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component gds:$component can compile" >&5 +$as_echo_n "checking if MCA component gds:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_plog" = "default" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"default\" failed to configure properly" >&2;} + if test "$with_gds" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_plog" ; then - if test "$DIRECT_plog" = "default" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"default\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_gds" ; then + if test "$DIRECT_gds" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components default" - fi + fi + fi + done - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_pmix_plog_default_DSO=1 - else - BUILD_pmix_plog_default_DSO=0 - fi - if test "$BUILD_pmix_plog_default_DSO" = "1"; then - MCA_BUILD_pmix_plog_default_DSO_TRUE= - MCA_BUILD_pmix_plog_default_DSO_FALSE='#' -else - MCA_BUILD_pmix_plog_default_DSO_TRUE='#' - MCA_BUILD_pmix_plog_default_DSO_FALSE= fi + MCA_pmix_gds_ALL_COMPONENTS="$all_components" + MCA_pmix_gds_STATIC_COMPONENTS="$static_components" + MCA_pmix_gds_DSO_COMPONENTS="$dso_components" + MCA_pmix_gds_STATIC_LTLIBS="$static_ltlibs" + + + + + + + + MCA_pmix_gds_ALL_SUBDIRS= + for item in $all_components ; do + MCA_pmix_gds_ALL_SUBDIRS="$MCA_pmix_gds_ALL_SUBDIRS mca/gds/$item" + done + + + + MCA_pmix_gds_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_pmix_gds_STATIC_SUBDIRS="$MCA_pmix_gds_STATIC_SUBDIRS mca/gds/$item" + done + + + + MCA_pmix_gds_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_pmix_gds_DSO_SUBDIRS="$MCA_pmix_gds_DSO_SUBDIRS mca/gds/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "gds" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS pcompress" + MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/pcompress" + MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_pcompress_ALL_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_pcompress_DSO_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_pcompress_STATIC_SUBDIRS)" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/pcompress/libmca_pcompress.la" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_pcompress_STATIC_LTLIBS)" + + pmix_show_subsubtitle "Configuring MCA framework pcompress" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=src/mca/pcompress/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files src/mca/pcompress/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework pcompress" >&5 +$as_echo_n "checking for no configure components in framework pcompress... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework pcompress" >&5 +$as_echo_n "checking for m4 configure components in framework pcompress... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: zlib" >&5 +$as_echo "zlib" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + + # configure components that use built-in configuration scripts + - ac_config_files="$ac_config_files src/mca/plog/default/Makefile" + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - unset compile_mode - pmix_show_subsubsubtitle "MCA component plog:stdfd (no configuration)" + pmix_show_subsubsubtitle "MCA component pcompress:zlib (m4 configuration macro)" - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/src/mca/plog/stdfd" + component_path="$srcdir/src/mca/pcompress/zlib" want_component=0 # build if: @@ -55480,8 +39934,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_plog" ; then - if test "$DIRECT_plog" = "stdfd" ; then + if test ! -z "$DIRECT_pcompress" ; then + if test "$DIRECT_pcompress" = "zlib" ; then want_component=1 else want_component=0 @@ -55490,25 +39944,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_plog" = "1"; then : + if test "$DISABLE_pcompress" = "1"; then : want_component=0 fi - if test "$DISABLE_plog_stdfd" = "1"; then : + if test "$DISABLE_pcompress_zlib" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_plog" - SHARED_COMPONENT="$DSO_plog_stdfd" + SHARED_FRAMEWORK="$DSO_pcompress" + SHARED_COMPONENT="$DSO_pcompress_zlib" - STATIC_FRAMEWORK="$STATIC_plog" - STATIC_COMPONENT="$STATIC_plog_stdfd" + STATIC_FRAMEWORK="$STATIC_pcompress" + STATIC_COMPONENT="$STATIC_pcompress_zlib" shared_mode_override=static @@ -55526,9 +39982,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plog:stdfd compile mode" >&5 -$as_echo_n "checking for MCA component plog:stdfd compile mode... " >&6; } - if test "$DIRECT_plog" = "stdfd" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pcompress:zlib compile mode" >&5 +$as_echo_n "checking for MCA component pcompress:zlib compile mode... " >&6; } + if test "$DIRECT_pcompress" = "zlib" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -55536,77 +39992,11 @@ $as_echo "$compile_mode" >&6; } fi - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/plog/stdfd/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components stdfd" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components stdfd" - else - if test "plog" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/plog/stdfd/lib${PMIX_LIB_PREFIX}mca_plog_stdfd.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/plog/stdfd/libmca_plog_stdfd.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_plog_stdfd_component;" >> $outfile.extern - echo " &mca_plog_stdfd_component, " >> $outfile.struct - static_components="$static_components stdfd" - fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plog:stdfd can compile" >&5 -$as_echo_n "checking if MCA component plog:stdfd can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # try to configure the component - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_plog" = "stdfd" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_plog_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** plog component stdfd was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_plog" = "stdfd" ; then -as_fn_error $? "*** plog component stdfd was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + ac_config_files="$ac_config_files src/mca/pcompress/zlib/Makefile" - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$plog_stdfd_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -55619,7 +40009,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do + for pmix_var in pmix_zlib_dir pmix_zlib_libdir pmix_zlib_standard_lib_location pmix_zlib_standard_header_location pmix_check_zlib_save_CPPFLAGS pmix_check_zlib_save_LDFLAGS pmix_check_zlib_save_LIBS; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -55638,7 +40028,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_zlib_dir pmix_zlib_libdir pmix_zlib_standard_lib_location pmix_zlib_standard_header_location pmix_check_zlib_save_CPPFLAGS pmix_check_zlib_save_LDFLAGS pmix_check_zlib_save_LIBS\"" eval $pmix_str unset pmix_str @@ -55646,130 +40036,526 @@ pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $plog_stdfd_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 + +# Check whether --with-zlib was given. +if test "${with_zlib+set}" = set; then : + withval=$with_zlib; fi - done + + + +# Check whether --with-zlib-libdir was given. +if test "${with_zlib_libdir+set}" = set; then : + withval=$with_zlib_libdir; fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + + + pmix_check_zlib_save_CPPFLAGS="$CPPFLAGS" + pmix_check_zlib_save_LDFLAGS="$LDFLAGS" + pmix_check_zlib_save_LIBS="$LIBS" + + pmix_zlib_support=0 + + if test "$with_zlib" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for zlib in" >&5 +$as_echo_n "checking for zlib in... " >&6; } + if test ! -z "$with_zlib" && test "$with_zlib" != "yes"; then + pmix_zlib_dir=$with_zlib + pmix_zlib_source=$with_zlib + pmix_zlib_standard_header_location=no + pmix_zlib_standard_lib_location=no + if test -z "$with_zlib_libdir" || test "$with_zlib_libdir" = "yes"; then : + if test -d $with_zlib/lib; then + pmix_zlib_libdir=$with_zlib/lib + elif test -d $with_zlib/lib64; then + pmix_zlib_libdir=$with_zlib/lib64 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Could not find $with_zlib/lib or $with_zlib/lib64" >&5 +$as_echo "Could not find $with_zlib/lib or $with_zlib/lib64" >&6; } + as_fn_error $? "Can not continue" "$LINENO" 5 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_zlib_dir and $pmix_zlib_libdir" >&5 +$as_echo "$pmix_zlib_dir and $pmix_zlib_libdir" >&6; } else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_zlib_libdir" >&5 +$as_echo "$with_zlib_libdir" >&6; } fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 +$as_echo "(default search paths)" >&6; } + pmix_zlib_source=standard + pmix_zlib_standard_header_location=yes + pmix_zlib_standard_lib_location=yes + fi + if test ! -z "$with_zlib_libdir" && test "$with_zlib_libdir" != "yes"; then : + pmix_zlib_libdir="$with_zlib_libdir" + pmix_zlib_standard_lib_location=no fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + pmix_check_package_pcompress_zlib_save_CPPFLAGS="$CPPFLAGS" + pmix_check_package_pcompress_zlib_save_LDFLAGS="$LDFLAGS" + pmix_check_package_pcompress_zlib_save_LIBS="$LIBS" + + pmix_check_package_pcompress_zlib_orig_CPPFLAGS="$pcompress_zlib_CPPFLAGS" + pmix_check_package_pcompress_zlib_orig_LDFLAGS="$pcompress_zlib_LDFLAGS" + pmix_check_package_pcompress_zlib_orig_LIBS="$pcompress_zlib_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_zlib_h + pmix_check_package_header_happy="no" + + # get rid of the trailing slash(es) + hdir_prefix=$(echo $pmix_zlib_dir | sed -e 'sX/*$XXg') + + if test "$hdir_prefix" = "" || \ + test "$hdir_prefix" = "/usr" || \ + test "$hdir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in zlib.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ZLIB_H 1 +_ACEOF + pmix_check_package_header_happy="yes" +fi + +done + + if test "$pmix_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_zlib_h +fi +fi + + if test "$pmix_check_package_header_happy" = "no"; then : + if test "$hdir_prefix" != ""; then : + pcompress_zlib_CPPFLAGS="$pcompress_zlib_CPPFLAGS -I$hdir_prefix" + CPPFLAGS="$CPPFLAGS -I$hdir_prefix" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix" >&5 +$as_echo "looking for header in $hdir_prefix" >&6; } + for ac_header in zlib.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ZLIB_H 1 +_ACEOF + pmix_check_package_header_happy="yes" +fi + +done + + if test "$pmix_check_package_header_happy" = "no"; then : + unset ac_cv_header_zlib_h + pcompress_zlib_CPPFLAGS="$pcompress_zlib_CPPFLAGS -I$hdir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$hdir_prefix/include" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix/include" >&5 +$as_echo "looking for header in $hdir_prefix/include" >&6; } + for ac_header in zlib.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ZLIB_H 1 +_ACEOF + pmix_check_package_header_happy="yes" +fi + +done + +fi +fi +fi + + if test "$pmix_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + # see comment above + unset ac_cv_lib_z_deflate + pmix_check_package_lib_happy="no" + + # get rid of the trailing slash(es) + libdir_prefix=$(echo $pmix_zlib_libdir | sed -e 'sX/*$XXg') + + if test "$libdir_prefix" != ""; then : + # libdir was specified - search only there + pcompress_zlib_LDFLAGS="$pcompress_zlib_LDFLAGS -L$libdir_prefix" + LDFLAGS="$LDFLAGS -L$libdir_prefix" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing deflate" >&5 +$as_echo_n "checking for library containing deflate... " >&6; } +if ${ac_cv_search_deflate+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char deflate (); +int +main () +{ +return deflate (); + ; + return 0; +} +_ACEOF +for ac_lib in '' z; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lz $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_deflate=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_deflate+:} false; then : + break +fi +done +if ${ac_cv_search_deflate+:} false; then : + +else + ac_cv_search_deflate=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_deflate" >&5 +$as_echo "$ac_cv_search_deflate" >&6; } +ac_res=$ac_cv_search_deflate +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi + + if test "$pmix_check_package_lib_happy" = "no"; then : + LDFLAGS="$pmix_check_package_pcompress_zlib_save_LDFLAGS" + pcompress_zlib_LDFLAGS="$pmix_check_package_pcompress_zlib_orig_LDFLAGS" + unset ac_cv_lib_z_deflate +fi +else + # libdir was not specified - go through search path + # get rid of the trailing slash(es) + libdir_prefix=$(echo $pmix_zlib_dir | sed -e 'sX/*$XXg') + + # first try standard locations as otherwise our + # searches with libdir_prefix locations might come + # back positive and unnecessarily add an LDFLAG + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing deflate" >&5 +$as_echo_n "checking for library containing deflate... " >&6; } +if ${ac_cv_search_deflate+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char deflate (); +int +main () +{ +return deflate (); + ; + return 0; +} +_ACEOF +for ac_lib in '' z; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lz $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_deflate=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_deflate+:} false; then : + break +fi +done +if ${ac_cv_search_deflate+:} false; then : + +else + ac_cv_search_deflate=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_deflate" >&5 +$as_echo "$ac_cv_search_deflate" >&6; } +ac_res=$ac_cv_search_deflate +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi + + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pcompress_zlib_save_LDFLAGS" + pcompress_zlib_LDFLAGS="$pmix_check_package_pcompress_zlib_orig_LDFLAGS" + unset ac_cv_lib_z_deflate +fi + + if test "$pmix_check_package_lib_happy" = "no"; then : + # if we didn't find it, check the libdir_prefix/lib64 directory + if test "$libdir_prefix" != "" && \ + test "$libdir_prefix" != "/usr" && \ + test "$libdir_prefix" != "/usr/local"; then : + pcompress_zlib_LDFLAGS="$pcompress_zlib_LDFLAGS -L$libdir_prefix/lib64" + LDFLAGS="$LDFLAGS -L$libdir_prefix/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib64" >&5 +$as_echo "looking for library in $libdir_prefix/lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing deflate" >&5 +$as_echo_n "checking for library containing deflate... " >&6; } +if ${ac_cv_search_deflate+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char deflate (); +int +main () +{ +return deflate (); + ; + return 0; +} +_ACEOF +for ac_lib in '' z; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lz $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_deflate=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_deflate+:} false; then : + break +fi +done +if ${ac_cv_search_deflate+:} false; then : + +else + ac_cv_search_deflate=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_deflate" >&5 +$as_echo "$ac_cv_search_deflate" >&6; } +ac_res=$ac_cv_search_deflate +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi + + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pcompress_zlib_save_LDFLAGS" + pcompress_zlib_LDFLAGS="$pmix_check_package_pcompress_zlib_orig_LDFLAGS" + unset ac_cv_lib_z_deflate +fi +fi +fi + + if test "$pmix_check_package_lib_happy" = "no"; then : + # if we still haven't found it, check the libdir_prefix/lib directory + if test "$libdir_prefix" != "" && \ + test "$libdir_prefix" != "/usr" && \ + test "$libdir_prefix" != "/usr/local"; then : + pcompress_zlib_LDFLAGS="$pcompress_zlib_LDFLAGS -L$libdir_prefix/lib" + LDFLAGS="$LDFLAGS -L$libdir_prefix/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib" >&5 +$as_echo "looking for library in $libdir_prefix/lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing deflate" >&5 +$as_echo_n "checking for library containing deflate... " >&6; } +if ${ac_cv_search_deflate+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char deflate (); +int +main () +{ +return deflate (); + ; + return 0; +} +_ACEOF +for ac_lib in '' z; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lz $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_deflate=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_deflate+:} false; then : + break +fi +done +if ${ac_cv_search_deflate+:} false; then : + +else + ac_cv_search_deflate=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_deflate" >&5 +$as_echo "$ac_cv_search_deflate" >&6; } +ac_res=$ac_cv_search_deflate +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pcompress_zlib_save_LDFLAGS" + pcompress_zlib_LDFLAGS="$pmix_check_package_pcompress_zlib_orig_LDFLAGS" + unset ac_cv_lib_z_deflate +fi +fi +fi - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done +fi + if test "$pmix_check_package_lib_happy" = "yes"; then : + pcompress_zlib_LIBS="-lz -lz" + pmix_check_package_happy="yes" else + pmix_check_package_happy="no" +fi + if test "$pmix_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_deflate" != "no" && + test "$ac_cv_search_deflate" != "none required"; then : + pcompress_zlib_LIBS="$ac_cv_search_deflate -lz" +else + pcompress_zlib_LIBS="-lz" +fi + pmix_check_package_happy="yes" +else + pmix_check_package_happy="no" +fi +else + pmix_check_package_happy="no" +fi - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + unset pmix_check_package_header_happy - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $plog_stdfd_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test "$pmix_check_package_happy" = "yes"; then : + pmix_zlib_support=1 else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi + pcompress_zlib_CPPFLAGS="$pmix_check_package_pcompress_zlib_orig_CPPFLAGS" + pcompress_zlib_LDFLAGS="$pmix_check_package_pcompress_zlib_orig_LDFLAGS" + pcompress_zlib_LIBS="$pmix_check_package_pcompress_zlib_orig_LIBS" + pmix_zlib_support=0 fi - done + CPPFLAGS="$pmix_check_package_pcompress_zlib_save_CPPFLAGS" + LDFLAGS="$pmix_check_package_pcompress_zlib_save_LDFLAGS" + LIBS="$pmix_check_package_pcompress_zlib_save_LIBS" - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + if test ! -z "$with_zlib" && test "$with_zlib" != "no" && test "$pmix_zlib_support" != "1"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ZLIB SUPPORT REQUESTED AND NOT FOUND" >&5 +$as_echo "$as_me: WARNING: ZLIB SUPPORT REQUESTED AND NOT FOUND" >&2;} + as_fn_error $? "CANNOT CONTINUE" "$LINENO" 5 + fi - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking will zlib support be built" >&5 +$as_echo_n "checking will zlib support be built... " >&6; } + if test "$pmix_zlib_support" != "1"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + fi + CPPFLAGS="$pmix_check_zlib_save_CPPFLAGS" + LDFLAGS="$pmix_check_zlib_save_LDFLAGS" + LIBS="$pmix_check_zlib_save_LIBS" -fi - if test "$plog_stdfd_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$pmix_zlib_support" = "1"; then : + should_build=$should_build + pcompress_zlib_LIBS=-lz @@ -55782,7 +40568,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do + for pmix_var in pmix_summary_section pmix_summary_line pmix_summary_section_current; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -55801,7 +40587,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_summary_section pmix_summary_line pmix_summary_section_current\"" eval $pmix_str unset pmix_str @@ -55809,24 +40595,20 @@ pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $plog_stdfd_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + pmix_summary_section=$(echo External Packages | tr ' ' '_') + pmix_summary_line="ZLIB: yes ($pmix_zlib_source)" + pmix_summary_section_current=$(eval echo \$pmix_summary_values_$pmix_summary_section) + + if test -z "$pmix_summary_section_current" ; then + if test -z "$pmix_summary_sections" ; then + pmix_summary_sections=$pmix_summary_section + else + pmix_summary_sections="$pmix_summary_sections $pmix_summary_section" + fi + eval pmix_summary_values_$pmix_summary_section=\"$pmix_summary_line\" + else + eval pmix_summary_values_$pmix_summary_section=\"$pmix_summary_section_current,$pmix_summary_line\" + fi # Unwind the index @@ -55851,63 +40633,18 @@ else + should_build=0 +fi + # substitute in the things needed to build pcompress/zlib - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $plog_stdfd_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + PMIX_EMBEDDED_LIBS="$PMIX_EMBEDDED_LIBS $pcompress_zlib_LIBS" + PMIX_EMBEDDED_LDFLAGS="$PMIX_EMBEDDED_LDFLAGS $pcompress_zlib_LDFLAGS" + PMIX_EMBEDDED_CPPFLAGS="$PMIX_EMBEDDED_CPPFLAGS $pcompress_zlib_CPPFLAGS" # Unwind the index @@ -55931,172 +40668,145 @@ done -fi - - fi + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$plog_stdfd_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + if test "$should_build" = "1"; then : - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/pcompress/zlib/post_configure.sh" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components zlib" - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components zlib" + else + if test "pcompress" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pcompress/zlib/lib${PMIX_LIB_PREFIX}mca_pcompress_zlib.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pcompress/zlib/libmca_pcompress_zlib.la $static_ltlibs" fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $plog_stdfd_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + echo "extern const pmix_mca_base_component_t mca_pcompress_zlib_component;" >> $outfile.extern + echo " &mca_pcompress_zlib_component, " >> $outfile.struct + static_components="$static_components zlib" fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pcompress:zlib can compile" >&5 +$as_echo_n "checking if MCA component pcompress:zlib can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pcompress" = "zlib" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_pcompress_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pcompress component zlib was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pcompress" = "zlib" ; then +as_fn_error $? "*** pcompress component zlib was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi -fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring plog_stdfd_WRAPPER_EXTRA_CPPFLAGS ($plog_stdfd_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring plog_stdfd_WRAPPER_EXTRA_CPPFLAGS ($plog_stdfd_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plog:stdfd can compile" >&5 -$as_echo_n "checking if MCA component plog:stdfd can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pcompress:zlib can compile" >&5 +$as_echo_n "checking if MCA component pcompress:zlib can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_plog" = "stdfd" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"stdfd\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"stdfd\" failed to configure properly" >&2;} + if test "$with_pcompress" = "zlib" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"zlib\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"zlib\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_plog" ; then - if test "$DIRECT_plog" = "stdfd" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"stdfd\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"stdfd\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_pcompress" ; then + if test "$DIRECT_pcompress" = "zlib" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"zlib\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"zlib\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components stdfd" - fi + # add component to all component list + all_components="$all_components zlib" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_pmix_plog_stdfd_DSO=1 - else - BUILD_pmix_plog_stdfd_DSO=0 - fi - if test "$BUILD_pmix_plog_stdfd_DSO" = "1"; then - MCA_BUILD_pmix_plog_stdfd_DSO_TRUE= - MCA_BUILD_pmix_plog_stdfd_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_pmix_pcompress_zlib_DSO=1 else - MCA_BUILD_pmix_plog_stdfd_DSO_TRUE='#' - MCA_BUILD_pmix_plog_stdfd_DSO_FALSE= + BUILD_pmix_pcompress_zlib_DSO=0 +fi + if test "$BUILD_pmix_pcompress_zlib_DSO" = "1"; then + MCA_BUILD_pmix_pcompress_zlib_DSO_TRUE= + MCA_BUILD_pmix_pcompress_zlib_DSO_FALSE='#' +else + MCA_BUILD_pmix_pcompress_zlib_DSO_TRUE='#' + MCA_BUILD_pmix_pcompress_zlib_DSO_FALSE= fi - ac_config_files="$ac_config_files src/mca/plog/stdfd/Makefile" - + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi unset compile_mode - # configure components that use built-in configuration scripts - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - pmix_show_subsubsubtitle "MCA component plog:syslog (m4 configuration macro)" - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + if test "1" != "0"; then : + for component_path in $srcdir/src/mca/pcompress/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + pmix_show_subsubsubtitle "MCA component pcompress:$component (need to configure)" + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/src/mca/plog/syslog" + + + component_path="$srcdir/src/mca/pcompress/$component" want_component=0 # build if: @@ -56128,8 +40838,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_plog" ; then - if test "$DIRECT_plog" = "syslog" ; then + if test ! -z "$DIRECT_pcompress" ; then + if test "$DIRECT_pcompress" = "$component" ; then want_component=1 else want_component=0 @@ -56138,27 +40848,29 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_plog" = "1"; then : - want_component=0 -fi - if test "$DISABLE_plog_syslog" = "1"; then : + if test "$DISABLE_pcompress" = "1"; then : want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_pcompress_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_plog" - SHARED_COMPONENT="$DSO_plog_syslog" + SHARED_FRAMEWORK="$DSO_pcompress" + str="SHARED_COMPONENT=\$DSO_pcompress_$component" + eval $str - STATIC_FRAMEWORK="$STATIC_plog" - STATIC_COMPONENT="$STATIC_plog_syslog" + STATIC_FRAMEWORK="$STATIC_pcompress" + str="STATIC_COMPONENT=\$STATIC_pcompress_$component" + eval $str shared_mode_override=static @@ -56176,170 +40888,19 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plog:syslog compile mode" >&5 -$as_echo_n "checking for MCA component plog:syslog compile mode... " >&6; } - if test "$DIRECT_plog" = "syslog" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pcompress:$component compile mode" >&5 +$as_echo_n "checking for MCA component pcompress:$component compile mode... " >&6; } + if test "$DIRECT_pcompress" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - - # try to configure the component - - ac_config_files="$ac_config_files src/mca/plog/syslog/Makefile" - - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_plog_syslog_happy; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_plog_syslog_happy\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - # if syslog.h is not compilable, - # disable this component. - ac_fn_c_check_header_mongrel "$LINENO" "syslog.h" "ac_cv_header_syslog_h" "$ac_includes_default" -if test "x$ac_cv_header_syslog_h" = xyes; then : - pmix_plog_syslog_happy=1 -else - pmix_plog_syslog_happy=0 -fi - - - - if test $pmix_plog_syslog_happy -eq 1; then : - should_build=$should_build -else - should_build=0 -fi - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1"; then : - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/plog/syslog/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components syslog" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components syslog" - else - if test "plog" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/plog/syslog/lib${PMIX_LIB_PREFIX}mca_plog_syslog.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/plog/syslog/libmca_plog_syslog.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_plog_syslog_component;" >> $outfile.extern - echo " &mca_plog_syslog_component, " >> $outfile.struct - static_components="$static_components syslog" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plog:syslog can compile" >&5 -$as_echo_n "checking if MCA component plog:syslog can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_plog" = "syslog" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_plog_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** plog component syslog was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_plog" = "syslog" ; then -as_fn_error $? "*** plog component syslog was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$plog_syslog_WRAPPER_EXTRA_LDFLAGS" = ""; then : + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then @@ -56352,7 +40913,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do + for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -56371,7 +40932,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $pmix_str unset pmix_str @@ -56379,105 +40940,129 @@ pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $plog_syslog_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done +# +# Invoke configure in a specific subdirectory. +# +# src/mca/pcompress/$component is the directory to invoke in +# $pmix_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="src/mca/pcompress/$component" +subdir_args="$pmix_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" +# +# Sanity checks +# - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 +$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -else + # + # Move into the target directory + # + subdir_parent=`pwd` + cd $subdir_dir + # + # Make a "../" for each directory in $subdir_dir. + # - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # + # Construct the --cache-file argument + # - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + # + # Go back to the topdir + # - for arg in $plog_syslog_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi + cd $subdir_parent fi - done + +# +# Clean up +# # Unwind the index @@ -56500,346 +41085,275 @@ unset $pmix_var done + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi -fi - if test "$plog_syslog_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/src/mca/pcompress/all_components/post_configure.sh" + if test -f $infile; then + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + fi - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/pcompress/$component/post_configure.sh" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "pcompress" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pcompress/$component/lib${PMIX_LIB_PREFIX}mca_pcompress_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pcompress/$component/libmca_pcompress_$component.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_pcompress_$component_component;" >> $outfile.extern + echo " &mca_pcompress_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pcompress:$component can compile" >&5 +$as_echo_n "checking if MCA component pcompress:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - for arg in $plog_syslog_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pcompress" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_pcompress_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pcompress component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pcompress" = "$component" ; then +as_fn_error $? "*** pcompress component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pcompress:$component can compile" >&5 +$as_echo_n "checking if MCA component pcompress:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_pcompress" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + if test ! -z "$DIRECT_pcompress" ; then + if test "$DIRECT_pcompress" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var + fi + fi done +fi -else - - + MCA_pmix_pcompress_ALL_COMPONENTS="$all_components" + MCA_pmix_pcompress_STATIC_COMPONENTS="$static_components" + MCA_pmix_pcompress_DSO_COMPONENTS="$dso_components" + MCA_pmix_pcompress_STATIC_LTLIBS="$static_ltlibs" - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $plog_syslog_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi + MCA_pmix_pcompress_ALL_SUBDIRS= + for item in $all_components ; do + MCA_pmix_pcompress_ALL_SUBDIRS="$MCA_pmix_pcompress_ALL_SUBDIRS mca/pcompress/$item" done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var + MCA_pmix_pcompress_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_pmix_pcompress_STATIC_SUBDIRS="$MCA_pmix_pcompress_STATIC_SUBDIRS mca/pcompress/$item" done -fi - fi + MCA_pmix_pcompress_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_pmix_pcompress_DSO_SUBDIRS="$MCA_pmix_pcompress_DSO_SUBDIRS mca/pcompress/$item" + done - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$plog_syslog_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "pcompress" != "common"; then + cat > $outfile <&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 +#if defined(c_plusplus) || defined(__cplusplus) +} +#endif + +EOF + # Only replace the header file if a) it doesn't previously + # exist, or b) the contents are different. Do this to not + # trigger recompilation of certain .c files just because the + # timestamp changed on $outfile_real (similar to the way AC + # handles AC_CONFIG_HEADER files). + diff $outfile $outfile_real > /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile fi - done + fi + rm -f $outfile.struct $outfile.extern - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + unset all_components static_components dso_components outfile outfile_real - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS pdl" + MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/pdl" + MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_pdl_ALL_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_pdl_DSO_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_pdl_STATIC_SUBDIRS)" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/pdl/libmca_pdl.la" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_pdl_STATIC_LTLIBS)" + PMIX_HAVE_PDL_SUPPORT=0 - for arg in $plog_syslog_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + # If --disable-dlopen was used, then have all the components fail + # (we still need to configure them all so that things like "make + # dist" work", but we just want the MCA system to (artificially) + # conclude that it can't build any of the components. + if test $PMIX_ENABLE_DLOPEN_SUPPORT -eq 0; then : + want_pdl=0 else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi + want_pdl=1 fi - done - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + pmix_show_subsubtitle "Configuring MCA framework pdl" - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring plog_syslog_WRAPPER_EXTRA_CPPFLAGS ($plog_syslog_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring plog_syslog_WRAPPER_EXTRA_CPPFLAGS ($plog_syslog_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi -else + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plog:syslog can compile" >&5 -$as_echo_n "checking if MCA component plog:syslog can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=src/mca/pdl/base + as_dir=$outdir; as_fn_mkdir_p - # If this component was requested as the default for this - # type, then abort. - if test "$with_plog" = "syslog" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"syslog\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"syslog\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # emit Makefile rule + ac_config_files="$ac_config_files src/mca/pdl/Makefile" - if test ! -z "$DIRECT_plog" ; then - if test "$DIRECT_plog" = "syslog" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"syslog\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"syslog\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - # add component to all component list - all_components="$all_components syslog" -fi + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework pdl" >&5 +$as_echo_n "checking for no configure components in framework pdl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework pdl" >&5 +$as_echo_n "checking for m4 configure components in framework pdl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pdlopen, plibltdl" >&5 +$as_echo "pdlopen, plibltdl" >&6; } + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_pmix_plog_syslog_DSO=1 -else - BUILD_pmix_plog_syslog_DSO=0 -fi - if test "$BUILD_pmix_plog_syslog_DSO" = "1"; then - MCA_BUILD_pmix_plog_syslog_DSO_TRUE= - MCA_BUILD_pmix_plog_syslog_DSO_FALSE='#' -else - MCA_BUILD_pmix_plog_syslog_DSO_TRUE='#' - MCA_BUILD_pmix_plog_syslog_DSO_FALSE= -fi - if test "$should_build" = "1"; then : - components_last_result=1 -else - components_last_result=0 -fi + # run the configure logic for the no-config components - unset compile_mode + # configure components that use built-in configuration scripts - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + best_mca_component_priority=0 + components_looking_for_succeed=$want_pdl + components_last_result=0 - if test "1" != "0"; then : - for component_path in $srcdir/src/mca/plog/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - pmix_show_subsubsubtitle "MCA component plog:$component (need to configure)" + pmix_show_subsubsubtitle "MCA component pdl:pdlopen (m4 configuration macro, priority 80)" - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/src/mca/plog/$component" + component_path="$srcdir/src/mca/pdl/pdlopen" want_component=0 # build if: @@ -56871,8 +41385,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_plog" ; then - if test "$DIRECT_plog" = "$component" ; then + if test ! -z "$DIRECT_pdl" ; then + if test "$DIRECT_pdl" = "pdlopen" ; then want_component=1 else want_component=0 @@ -56881,676 +41395,633 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_plog" = "1"; then : + if test "$DISABLE_pdl" = "1"; then : + want_component=0 +fi + if test "$DISABLE_pdl_pdlopen" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_plog_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_plog" - str="SHARED_COMPONENT=\$DSO_plog_$component" - eval $str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pdl:pdlopen compile mode" >&5 +$as_echo_n "checking for MCA component pdl:pdlopen compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - STATIC_FRAMEWORK="$STATIC_plog" - str="STATIC_COMPONENT=\$STATIC_plog_$component" - eval $str - shared_mode_override=static + # try to configure the component - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + ac_config_files="$ac_config_files src/mca/pdl/pdlopen/Makefile" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plog:$component compile mode" >&5 -$as_echo_n "checking for MCA component plog:$component compile mode... " >&6; } - if test "$DIRECT_plog" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + # Check whether --enable-dl-dlopen was given. +if test "${enable_dl_dlopen+set}" = set; then : + enableval=$enable_dl_dlopen; +fi - if test "$should_build" = "1" ; then + pmix_pdl_pdlopen_happy=no + if test "$enable_dl_dlopen" != "no"; then : + pmix_check_package_pmix_pdl_pdlopen_save_CPPFLAGS="$CPPFLAGS" + pmix_check_package_pmix_pdl_pdlopen_save_LDFLAGS="$LDFLAGS" + pmix_check_package_pmix_pdl_pdlopen_save_LIBS="$LIBS" - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + pmix_check_package_pmix_pdl_pdlopen_orig_CPPFLAGS="$pmix_pdl_pdlopen_CPPFLAGS" + pmix_check_package_pmix_pdl_pdlopen_orig_LDFLAGS="$pmix_pdl_pdlopen_LDFLAGS" + pmix_check_package_pmix_pdl_pdlopen_orig_LIBS="$pmix_pdl_pdlopen_LIBS" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_dlfcn_h + pmix_check_package_header_happy="no" + # get rid of the trailing slash(es) + hdir_prefix=$(echo | sed -e 'sX/*$XXg') -# -# Invoke configure in a specific subdirectory. -# -# src/mca/plog/$component is the directory to invoke in -# $pmix_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="src/mca/plog/$component" -subdir_args="$pmix_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + if test "$hdir_prefix" = "" || \ + test "$hdir_prefix" = "/usr" || \ + test "$hdir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in dlfcn.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + pmix_check_package_header_happy="yes" +fi -# -# Sanity checks -# +done -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 -$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} + if test "$pmix_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_dlfcn_h +fi +fi - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + if test "$pmix_check_package_header_happy" = "no"; then : + if test "$hdir_prefix" != ""; then : + pmix_pdl_pdlopen_CPPFLAGS="$pmix_pdl_pdlopen_CPPFLAGS -I$hdir_prefix" + CPPFLAGS="$CPPFLAGS -I$hdir_prefix" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix" >&5 +$as_echo "looking for header in $hdir_prefix" >&6; } + for ac_header in dlfcn.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + pmix_check_package_header_happy="yes" +fi - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } +done + + if test "$pmix_check_package_header_happy" = "no"; then : + unset ac_cv_header_dlfcn_h + pmix_pdl_pdlopen_CPPFLAGS="$pmix_pdl_pdlopen_CPPFLAGS -I$hdir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$hdir_prefix/include" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix/include" >&5 +$as_echo "looking for header in $hdir_prefix/include" >&6; } + for ac_header in dlfcn.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + pmix_check_package_header_happy="yes" +fi + +done + +fi +fi +fi + + if test "$pmix_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + # see comment above + unset ac_cv_lib_dl_dlopen + pmix_check_package_lib_happy="no" + + # get rid of the trailing slash(es) + libdir_prefix=$(echo | sed -e 'sX/*$XXg') + + if test "$libdir_prefix" != ""; then : + # libdir was specified - search only there + pmix_pdl_pdlopen_LDFLAGS="$pmix_pdl_pdlopen_LDFLAGS -L$libdir_prefix" + LDFLAGS="$LDFLAGS -L$libdir_prefix" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_dlopen+:} false; then : + +else + ac_cv_search_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi + + if test "$pmix_check_package_lib_happy" = "no"; then : + LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_save_LDFLAGS" + pmix_pdl_pdlopen_LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_orig_LDFLAGS" + unset ac_cv_lib_dl_dlopen +fi +else + # libdir was not specified - go through search path + # get rid of the trailing slash(es) + libdir_prefix=$(echo | sed -e 'sX/*$XXg') + + # first try standard locations as otherwise our + # searches with libdir_prefix locations might come + # back positive and unnecessarily add an LDFLAG + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_dlopen+:} false; then : + +else + ac_cv_search_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi + + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_save_LDFLAGS" + pmix_pdl_pdlopen_LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_orig_LDFLAGS" + unset ac_cv_lib_dl_dlopen +fi + + if test "$pmix_check_package_lib_happy" = "no"; then : + # if we didn't find it, check the libdir_prefix/lib64 directory + if test "$libdir_prefix" != "" && \ + test "$libdir_prefix" != "/usr" && \ + test "$libdir_prefix" != "/usr/local"; then : + pmix_pdl_pdlopen_LDFLAGS="$pmix_pdl_pdlopen_LDFLAGS -L$libdir_prefix/lib64" + LDFLAGS="$LDFLAGS -L$libdir_prefix/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib64" >&5 +$as_echo "looking for library in $libdir_prefix/lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_dlopen+:} false; then : + +else + ac_cv_search_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_save_LDFLAGS" + pmix_pdl_pdlopen_LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_orig_LDFLAGS" + unset ac_cv_lib_dl_dlopen +fi +fi +fi - # - # Move into the target directory - # + if test "$pmix_check_package_lib_happy" = "no"; then : + # if we still haven't found it, check the libdir_prefix/lib directory + if test "$libdir_prefix" != "" && \ + test "$libdir_prefix" != "/usr" && \ + test "$libdir_prefix" != "/usr/local"; then : + pmix_pdl_pdlopen_LDFLAGS="$pmix_pdl_pdlopen_LDFLAGS -L$libdir_prefix/lib" + LDFLAGS="$LDFLAGS -L$libdir_prefix/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib" >&5 +$as_echo "looking for library in $libdir_prefix/lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if ${ac_cv_search_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - subdir_parent=`pwd` - cd $subdir_dir +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_dlopen+:} false; then : - # - # Make a "../" for each directory in $subdir_dir. - # +else + ac_cv_search_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +$as_echo "$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_save_LDFLAGS" + pmix_pdl_pdlopen_LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_orig_LDFLAGS" + unset ac_cv_lib_dl_dlopen +fi +fi +fi - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac +fi - # - # Construct the --cache-file argument - # - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + if test "$pmix_check_package_lib_happy" = "yes"; then : + pmix_pdl_pdlopen_LIBS="-ldl " + pmix_check_package_happy="yes" +else + pmix_check_package_happy="no" +fi + if test "$pmix_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_dlopen" != "no" && + test "$ac_cv_search_dlopen" != "none required"; then : + pmix_pdl_pdlopen_LIBS="$ac_cv_search_dlopen " +else + pmix_pdl_pdlopen_LIBS="" +fi + pmix_check_package_happy="yes" +else + pmix_check_package_happy="no" +fi - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi +else + pmix_check_package_happy="no" +fi - # - # Go back to the topdir - # + unset pmix_check_package_header_happy - cd $subdir_parent -fi -# -# Clean up -# + if test "$pmix_check_package_happy" = "yes"; then : + pmix_pdl_pdlopen_happy=yes +else + pmix_pdl_pdlopen_CPPFLAGS="$pmix_check_package_pmix_pdl_pdlopen_orig_CPPFLAGS" + pmix_pdl_pdlopen_LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_orig_LDFLAGS" + pmix_pdl_pdlopen_LIBS="$pmix_check_package_pmix_pdl_pdlopen_orig_LIBS" + pmix_pdl_pdlopen_happy=no +fi - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + CPPFLAGS="$pmix_check_package_pmix_pdl_pdlopen_save_CPPFLAGS" + LDFLAGS="$pmix_check_package_pmix_pdl_pdlopen_save_LDFLAGS" + LIBS="$pmix_check_package_pmix_pdl_pdlopen_save_LIBS" - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done +fi - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi + if test "$pmix_pdl_pdlopen_happy" = "yes"; then : + pmix_pdl_pdlopen_ADD_LIBS=$pmix_pdl_pdlopen_LIBS + should_build=$should_build +else + should_build=0 +fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/src/mca/plog/all_components/post_configure.sh" - if test -f $infile; then - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/src/mca/plog/$component/post_configure.sh" + infile="$srcdir/src/mca/pdl/pdlopen/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + all_components="$all_components pdlopen" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" + dso_components="$dso_components pdlopen" else - if test "plog" = "common"; then + if test "pdl" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/plog/$component/lib${PMIX_LIB_PREFIX}mca_plog_$component.la $static_ltlibs" + static_ltlibs="mca/pdl/pdlopen/lib${PMIX_LIB_PREFIX}mca_pdl_pdlopen.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/plog/$component/libmca_plog_$component.la $static_ltlibs" + static_ltlibs="mca/pdl/pdlopen/libmca_pdl_pdlopen.la $static_ltlibs" fi - echo "extern const pmix_mca_base_component_t mca_plog_$component_component;" >> $outfile.extern - echo " &mca_plog_$component_component, " >> $outfile.struct - static_components="$static_components $component" + echo "extern const pmix_mca_base_component_t mca_pdl_pdlopen_component;" >> $outfile.extern + echo " &mca_pdl_pdlopen_component, " >> $outfile.struct + static_components="$static_components pdlopen" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plog:$component can compile" >&5 -$as_echo_n "checking if MCA component plog:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pdl:pdlopen can compile" >&5 +$as_echo_n "checking if MCA component pdl:pdlopen can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_plog" = "$component" ; then + if test "$DIRECT_pdl" = "pdlopen" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_plog_DIRECT_CALL_HEADER=$line" + str="MCA_pmix_pdl_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** plog component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_plog" = "$component" ; then -as_fn_error $? "*** plog component $component was supposed to be direct-called, but +as_fn_error $? "*** pdl component pdlopen was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$plog_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - -str="line=\$plog_$component_WRAPPER_EXTRA_LIBS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - - else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plog:$component can compile" >&5 -$as_echo_n "checking if MCA component plog:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - # If this component was requested as the default for this - # type, then abort. - if test "$with_plog" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_plog" ; then - if test "$DIRECT_plog" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - fi fi - done - -fi - - MCA_pmix_plog_ALL_COMPONENTS="$all_components" - MCA_pmix_plog_STATIC_COMPONENTS="$static_components" - MCA_pmix_plog_DSO_COMPONENTS="$dso_components" - MCA_pmix_plog_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_pmix_plog_ALL_SUBDIRS= - for item in $all_components ; do - MCA_pmix_plog_ALL_SUBDIRS="$MCA_pmix_plog_ALL_SUBDIRS mca/plog/$item" - done - - - - MCA_pmix_plog_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_pmix_plog_STATIC_SUBDIRS="$MCA_pmix_plog_STATIC_SUBDIRS mca/plog/$item" - done - - - - MCA_pmix_plog_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_pmix_plog_DSO_SUBDIRS="$MCA_pmix_plog_DSO_SUBDIRS mca/plog/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "plog" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pdl" = "pdlopen" ; then +as_fn_error $? "*** pdl component pdlopen was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi fi - rm -f $outfile.struct $outfile.extern - unset all_components static_components dso_components outfile outfile_real +else - MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS pnet" - MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/pnet" - MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_pnet_ALL_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_pnet_DSO_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_pnet_STATIC_SUBDIRS)" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/pnet/libmca_pnet.la" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_pnet_STATIC_LTLIBS)" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pdl:pdlopen can compile" >&5 +$as_echo_n "checking if MCA component pdl:pdlopen can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - pmix_show_subsubtitle "Configuring MCA framework pnet" + # If this component was requested as the default for this + # type, then abort. + if test "$with_pdl" = "pdlopen" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pdlopen\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pdlopen\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + if test ! -z "$DIRECT_pdl" ; then + if test "$DIRECT_pdl" = "pdlopen" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"pdlopen\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"pdlopen\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + # add component to all component list + all_components="$all_components pdlopen" +fi - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= + # If we won, then do all the rest of the setup + if test "$should_build" = "1"; then : - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=src/mca/pnet/base - as_dir=$outdir; as_fn_mkdir_p + # Add some stuff to CPPFLAGS so that the rest of the source + # tree can be built + LDFLAGS="$LDFLAGS $pmix_pdl_pdlopen_ADD_LDFLAGS" + LIBS="$LIBS $pmix_pdl_pdlopen_ADD_LIBS" - # emit Makefile rule - ac_config_files="$ac_config_files src/mca/pnet/Makefile" +fi - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_pmix_pdl_pdlopen_DSO=1 +else + BUILD_pmix_pdl_pdlopen_DSO=0 +fi + if test "$BUILD_pmix_pdl_pdlopen_DSO" = "1"; then + MCA_BUILD_pmix_pdl_pdlopen_DSO_TRUE= + MCA_BUILD_pmix_pdl_pdlopen_DSO_FALSE='#' +else + MCA_BUILD_pmix_pdl_pdlopen_DSO_TRUE='#' + MCA_BUILD_pmix_pdl_pdlopen_DSO_FALSE= +fi - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework pnet" >&5 -$as_echo_n "checking for no configure components in framework pnet... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: tcp, test" >&5 -$as_echo "tcp, test" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework pnet" >&5 -$as_echo_n "checking for m4 configure components in framework pnet... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: opa" >&5 -$as_echo "opa" >&6; } - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi + + unset compile_mode + if test $components_last_result -eq 1; then : + components_looking_for_succeed=0 +fi - # run the configure logic for the no-config components - pmix_show_subsubsubtitle "MCA component pnet:tcp (no configuration)" + pmix_show_subsubsubtitle "MCA component pdl:plibltdl (m4 configuration macro, priority 50)" - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/src/mca/pnet/tcp" + component_path="$srcdir/src/mca/pdl/plibltdl" want_component=0 # build if: @@ -57582,8 +42053,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pnet" ; then - if test "$DIRECT_pnet" = "tcp" ; then + if test ! -z "$DIRECT_pdl" ; then + if test "$DIRECT_pdl" = "plibltdl" ; then want_component=1 else want_component=0 @@ -57592,123 +42063,30 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_pnet" = "1"; then : + if test "$DISABLE_pdl" = "1"; then : want_component=0 fi - if test "$DISABLE_pnet_tcp" = "1"; then : + if test "$DISABLE_pdl_plibltdl" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_pnet" - SHARED_COMPONENT="$DSO_pnet_tcp" - - STATIC_FRAMEWORK="$STATIC_pnet" - STATIC_COMPONENT="$STATIC_pnet_tcp" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pnet:tcp compile mode" >&5 -$as_echo_n "checking for MCA component pnet:tcp compile mode... " >&6; } - if test "$DIRECT_pnet" = "tcp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pdl:plibltdl compile mode" >&5 +$as_echo_n "checking for MCA component pdl:plibltdl compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 $as_echo "$compile_mode" >&6; } - fi - - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/pnet/tcp/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components tcp" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components tcp" - else - if test "pnet" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pnet/tcp/lib${PMIX_LIB_PREFIX}mca_pnet_tcp.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pnet/tcp/libmca_pnet_tcp.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_pnet_tcp_component;" >> $outfile.extern - echo " &mca_pnet_tcp_component, " >> $outfile.struct - static_components="$static_components tcp" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pnet:tcp can compile" >&5 -$as_echo_n "checking if MCA component pnet:tcp can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pnet" = "tcp" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_pnet_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** pnet component tcp was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pnet" = "tcp" ; then -as_fn_error $? "*** pnet component tcp was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pnet_tcp_WRAPPER_EXTRA_LDFLAGS" = ""; then : + # try to configure the component @@ -57721,7 +42099,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do + for pmix_var in CPPFLAGS_save LDFLAGS_save LIBS_save; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -57740,589 +42118,677 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + pmix_str="pmix_scope_$pmix_scope_index=\"CPPFLAGS_save LDFLAGS_save LIBS_save\"" eval $pmix_str unset pmix_str env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - - for arg in $pnet_tcp_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + ac_config_files="$ac_config_files src/mca/pdl/plibltdl/Makefile" -else + # Add --with options +# Check whether --with-plibltdl was given. +if test "${with_plibltdl+set}" = set; then : + withval=$with_plibltdl; +fi - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi +# Check whether --with-libltdl-libdir was given. +if test "${with_libltdl_libdir+set}" = set; then : + withval=$with_libltdl_libdir; +fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # Sanity check the --with values - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-plibltdl value" >&5 +$as_echo_n "checking --with-plibltdl value... " >&6; } + if test "$with_libltdl" = "yes" || test "$with_libltdl" = "no" || test "x$with_libltdl" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified)" >&5 +$as_echo "simple ok (unspecified)" >&6; } +else + if test ! -d "$with_libltdl"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_libltdl not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_libltdl not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_libltdl/include/ltdl.h 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_libltdl/include/ltdl.h not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_libltdl/include/ltdl.h not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_libltdl)" >&5 +$as_echo "sanity check ok ($with_libltdl)" >&6; } - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` +fi - for arg in $pnet_tcp_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" fi -fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str +fi - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-plibltdl-libdir value" >&5 +$as_echo_n "checking --with-plibltdl-libdir value... " >&6; } + if test "$with_libltdl_libdir" = "yes" || test "$with_libltdl_libdir" = "no" || test "x$with_libltdl_libdir" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified)" >&5 +$as_echo "simple ok (unspecified)" >&6; } +else + if test ! -d "$with_libltdl_libdir"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_libltdl_libdir not found" >&5 +$as_echo "$as_me: WARNING: Directory $with_libltdl_libdir not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + if test "x`ls $with_libltdl_libdir/libltdl.* 2> /dev/null`" = "x"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_libltdl_libdir/libltdl.* not found" >&5 +$as_echo "$as_me: WARNING: Expected file $with_libltdl_libdir/libltdl.* not found" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_libltdl_libdir)" >&5 +$as_echo "sanity check ok ($with_libltdl_libdir)" >&6; } fi - if test "$pnet_tcp_WRAPPER_EXTRA_LIBS" = ""; then : - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str +fi - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str +fi - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + # Defaults + pmix_check_plibltdl_dir_msg="compiler default" + pmix_check_plibltdl_libdir_msg="linker default" - for arg in $pnet_tcp_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + # Save directory names if supplied + if test ! -z "$with_libltdl" && test "$with_libltdl" != "yes"; then : + pmix_check_plibltdl_dir=$with_libltdl + pmix_check_plibltdl_dir_msg="$pmix_check_plibltdl_dir (from --with-libltdl)" fi + if test ! -z "$with_libltdl_libdir" && test "$with_libltdl_libdir" != "yes"; then : + pmix_check_plibltdl_libdir=$with_libltdl_libdir + pmix_check_plibltdl_libdir_msg="$pmix_check_plibltdl_libdir (from --with-libltdl-libdir)" fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + pmix_pdl_plibltdl_happy=no + if test "$with_plibltdl" != "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libltdl dir" >&5 +$as_echo_n "checking for libltdl dir... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_check_plibltdl_dir_msg" >&5 +$as_echo "$pmix_check_plibltdl_dir_msg" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libltdl library dir" >&5 +$as_echo_n "checking for libltdl library dir... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pmix_check_plibltdl_libdir_msg" >&5 +$as_echo "$pmix_check_plibltdl_libdir_msg" >&6; } -else + pmix_check_package_pmix_pdl_plibltdl_save_CPPFLAGS="$CPPFLAGS" + pmix_check_package_pmix_pdl_plibltdl_save_LDFLAGS="$LDFLAGS" + pmix_check_package_pmix_pdl_plibltdl_save_LIBS="$LIBS" + pmix_check_package_pmix_pdl_plibltdl_orig_CPPFLAGS="$pmix_pdl_plibltdl_CPPFLAGS" + pmix_check_package_pmix_pdl_plibltdl_orig_LDFLAGS="$pmix_pdl_plibltdl_LDFLAGS" + pmix_check_package_pmix_pdl_plibltdl_orig_LIBS="$pmix_pdl_plibltdl_LIBS" - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_ltdl_h + pmix_check_package_header_happy="no" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # get rid of the trailing slash(es) + hdir_prefix=$(echo $pmix_check_plibltdl_dir | sed -e 'sX/*$XXg') - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + if test "$hdir_prefix" = "" || \ + test "$hdir_prefix" = "/usr" || \ + test "$hdir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in ltdl.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default" +if test "x$ac_cv_header_ltdl_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LTDL_H 1 +_ACEOF + pmix_check_package_header_happy="yes" +fi +done - for arg in $pnet_tcp_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + if test "$pmix_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_ltdl_h fi fi - done - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$pmix_check_package_header_happy" = "no"; then : + if test "$hdir_prefix" != ""; then : + pmix_pdl_plibltdl_CPPFLAGS="$pmix_pdl_plibltdl_CPPFLAGS -I$hdir_prefix" + CPPFLAGS="$CPPFLAGS -I$hdir_prefix" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix" >&5 +$as_echo "looking for header in $hdir_prefix" >&6; } + for ac_header in ltdl.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default" +if test "x$ac_cv_header_ltdl_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LTDL_H 1 +_ACEOF + pmix_check_package_header_happy="yes" +fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str +done - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + if test "$pmix_check_package_header_happy" = "no"; then : + unset ac_cv_header_ltdl_h + pmix_pdl_plibltdl_CPPFLAGS="$pmix_pdl_plibltdl_CPPFLAGS -I$hdir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$hdir_prefix/include" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix/include" >&5 +$as_echo "looking for header in $hdir_prefix/include" >&6; } + for ac_header in ltdl.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default" +if test "x$ac_cv_header_ltdl_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LTDL_H 1 +_ACEOF + pmix_check_package_header_happy="yes" +fi +done fi +fi +fi - fi + if test "$pmix_check_package_header_happy" = "yes"; then : - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pnet_tcp_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + # see comment above + unset ac_cv_lib_ltdl_lt_dlopen + pmix_check_package_lib_happy="no" + # get rid of the trailing slash(es) + libdir_prefix=$(echo $pmix_check_plibltdl_libdir | sed -e 'sX/*$XXg') - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + if test "$libdir_prefix" != ""; then : + # libdir was specified - search only there + pmix_pdl_plibltdl_LDFLAGS="$pmix_pdl_plibltdl_LDFLAGS -L$libdir_prefix" + LDFLAGS="$LDFLAGS -L$libdir_prefix" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 +$as_echo_n "checking for library containing lt_dlopen... " >&6; } +if ${ac_cv_search_lt_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lt_dlopen (); +int +main () +{ +return lt_dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ltdl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lt_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lt_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_lt_dlopen+:} false; then : - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +else + ac_cv_search_lt_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 +$as_echo "$ac_cv_search_lt_dlopen" >&6; } +ac_res=$ac_cv_search_lt_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + if test "$pmix_check_package_lib_happy" = "no"; then : + LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_save_LDFLAGS" + pmix_pdl_plibltdl_LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_orig_LDFLAGS" + unset ac_cv_lib_ltdl_lt_dlopen +fi +else + # libdir was not specified - go through search path + # get rid of the trailing slash(es) + libdir_prefix=$(echo $pmix_check_plibltdl_dir | sed -e 'sX/*$XXg') - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + # first try standard locations as otherwise our + # searches with libdir_prefix locations might come + # back positive and unnecessarily add an LDFLAG + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 +$as_echo_n "checking for library containing lt_dlopen... " >&6; } +if ${ac_cv_search_lt_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lt_dlopen (); +int +main () +{ +return lt_dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ltdl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lt_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lt_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_lt_dlopen+:} false; then : - for arg in $pnet_tcp_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 +else + ac_cv_search_lt_dlopen=no fi - done +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 +$as_echo "$ac_cv_search_lt_dlopen" >&6; } +ac_res=$ac_cv_search_lt_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" + pmix_check_package_lib_happy="no" fi + + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_save_LDFLAGS" + pmix_pdl_plibltdl_LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_orig_LDFLAGS" + unset ac_cv_lib_ltdl_lt_dlopen fi - done + if test "$pmix_check_package_lib_happy" = "no"; then : + # if we didn't find it, check the libdir_prefix/lib64 directory + if test "$libdir_prefix" != "" && \ + test "$libdir_prefix" != "/usr" && \ + test "$libdir_prefix" != "/usr/local"; then : + pmix_pdl_plibltdl_LDFLAGS="$pmix_pdl_plibltdl_LDFLAGS -L$libdir_prefix/lib64" + LDFLAGS="$LDFLAGS -L$libdir_prefix/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib64" >&5 +$as_echo "looking for library in $libdir_prefix/lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 +$as_echo_n "checking for library containing lt_dlopen... " >&6; } +if ${ac_cv_search_lt_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lt_dlopen (); +int +main () +{ +return lt_dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ltdl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lt_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lt_dlopen+:} false; then : + break +fi +done +if ${ac_cv_search_lt_dlopen+:} false; then : - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str +else + ac_cv_search_lt_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 +$as_echo "$ac_cv_search_lt_dlopen" >&6; } +ac_res=$ac_cv_search_lt_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_save_LDFLAGS" + pmix_pdl_plibltdl_LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_orig_LDFLAGS" + unset ac_cv_lib_ltdl_lt_dlopen +fi +fi +fi + if test "$pmix_check_package_lib_happy" = "no"; then : + # if we still haven't found it, check the libdir_prefix/lib directory + if test "$libdir_prefix" != "" && \ + test "$libdir_prefix" != "/usr" && \ + test "$libdir_prefix" != "/usr/local"; then : + pmix_pdl_plibltdl_LDFLAGS="$pmix_pdl_plibltdl_LDFLAGS -L$libdir_prefix/lib" + LDFLAGS="$LDFLAGS -L$libdir_prefix/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib" >&5 +$as_echo "looking for library in $libdir_prefix/lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lt_dlopen" >&5 +$as_echo_n "checking for library containing lt_dlopen... " >&6; } +if ${ac_cv_search_lt_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char lt_dlopen (); +int +main () +{ +return lt_dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' ltdl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_lt_dlopen=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_lt_dlopen+:} false; then : + break fi +done +if ${ac_cv_search_lt_dlopen+:} false; then : + else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pnet_tcp_WRAPPER_EXTRA_CPPFLAGS ($pnet_tcp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pnet_tcp_WRAPPER_EXTRA_CPPFLAGS ($pnet_tcp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} + ac_cv_search_lt_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lt_dlopen" >&5 +$as_echo "$ac_cv_search_lt_dlopen" >&6; } +ac_res=$ac_cv_search_lt_dlopen +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" fi - else + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_save_LDFLAGS" + pmix_pdl_plibltdl_LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_orig_LDFLAGS" + unset ac_cv_lib_ltdl_lt_dlopen +fi +fi +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pnet:tcp can compile" >&5 -$as_echo_n "checking if MCA component pnet:tcp can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi - # If this component was requested as the default for this - # type, then abort. - if test "$with_pnet" = "tcp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tcp\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tcp\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - if test ! -z "$DIRECT_pnet" ; then - if test "$DIRECT_pnet" = "tcp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tcp\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tcp\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + if test "$pmix_check_package_lib_happy" = "yes"; then : + pmix_pdl_plibltdl_LIBS="-lltdl " + pmix_check_package_happy="yes" +else + pmix_check_package_happy="no" +fi + if test "$pmix_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_lt_dlopen" != "no" && + test "$ac_cv_search_lt_dlopen" != "none required"; then : + pmix_pdl_plibltdl_LIBS="$ac_cv_search_lt_dlopen " +else + pmix_pdl_plibltdl_LIBS="" +fi + pmix_check_package_happy="yes" +else + pmix_check_package_happy="no" +fi - # add component to all component list - all_components="$all_components tcp" - fi - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_pmix_pnet_tcp_DSO=1 - else - BUILD_pmix_pnet_tcp_DSO=0 - fi - if test "$BUILD_pmix_pnet_tcp_DSO" = "1"; then - MCA_BUILD_pmix_pnet_tcp_DSO_TRUE= - MCA_BUILD_pmix_pnet_tcp_DSO_FALSE='#' else - MCA_BUILD_pmix_pnet_tcp_DSO_TRUE='#' - MCA_BUILD_pmix_pnet_tcp_DSO_FALSE= + pmix_check_package_happy="no" fi + unset pmix_check_package_header_happy - ac_config_files="$ac_config_files src/mca/pnet/tcp/Makefile" - unset compile_mode + if test "$pmix_check_package_happy" = "yes"; then : + pmix_pdl_plibltdl_happy=yes +else + pmix_pdl_plibltdl_CPPFLAGS="$pmix_check_package_pmix_pdl_plibltdl_orig_CPPFLAGS" + pmix_pdl_plibltdl_LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_orig_LDFLAGS" + pmix_pdl_plibltdl_LIBS="$pmix_check_package_pmix_pdl_plibltdl_orig_LIBS" + pmix_pdl_plibltdl_happy=no +fi - pmix_show_subsubsubtitle "MCA component pnet:test (no configuration)" + CPPFLAGS="$pmix_check_package_pmix_pdl_plibltdl_save_CPPFLAGS" + LDFLAGS="$pmix_check_package_pmix_pdl_plibltdl_save_LDFLAGS" + LIBS="$pmix_check_package_pmix_pdl_plibltdl_save_LIBS" - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" +fi + # If we have plibltdl, do we have lt_dladvise? + pmix_pdl_plibltdl_have_lt_dladvise=0 + if test "$pmix_pdl_plibltdl_happy" = "yes"; then : + CPPFLAGS_save=$CPPFLAGS + LDFLAGS_save=$LDFLAGS + LIBS_save=$LIBS - component_path="$srcdir/src/mca/pnet/test" - want_component=0 + CPPFLAGS="$pmix_pdl_plibltdl_CPPFLAGS $CPPFLAGS" + LDFLAGS="$pmix_pdl_plibltdl_LDFLAGS $LDFLAGS" + LIBS="$pmix_pdl_plibltdl_LIBS $LIBS" + ac_fn_c_check_func "$LINENO" "lt_dladvise_init" "ac_cv_func_lt_dladvise_init" +if test "x$ac_cv_func_lt_dladvise_init" = xyes; then : + pmix_pdl_plibltdl_have_lt_dladvise=1 +fi - # build if: - # - the component type is direct and we are that component - # - there is no pmix_ignore file - # - there is an pmix_ignore, but there is an empty pmix_unignore - # - there is an pmix_ignore, but username is in pmix_unignore - if test -d $component_path ; then - # decide if we want the component to be built or not. This - # is spread out because some of the logic is a little complex - # and test's syntax isn't exactly the greatest. We want to - # build the component by default. - want_component=1 - if test -f $component_path/.pmix_ignore ; then - # If there is an pmix_ignore file, don't build - # the component. Note that this decision can be - # overridden by the unignore logic below. - want_component=0 - fi - if test -f $component_path/.pmix_unignore ; then - # if there is an empty pmix_unignore, that is - # equivalent to having your userid in the unignore file. - # If userid is in the file, unignore the ignore file. - if test ! -s $component_path/.pmix_unignore ; then - want_component=1 - elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then - want_component=1 - fi - fi - # if this component type is direct and we are not it, we don't want - # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pnet" ; then - if test "$DIRECT_pnet" = "test" ; then - want_component=1 - else - want_component=0 - fi - fi - fi + CPPFLAGS=$CPPFLAGS_save + LDFLAGS=$LDFLAGS_save + LIBS=$LIBS_save - # if we were explicitly disabled, don't build :) - if test "$DISABLE_pnet" = "1"; then : - want_component=0 -fi - if test "$DISABLE_pnet_test" = "1"; then : - want_component=0 fi - if test "$want_component" = "1"; then : - should_build=1 +cat >>confdefs.h <<_ACEOF +#define PMIX_PDL_PLIBLTDL_HAVE_LT_DLADVISE $pmix_pdl_plibltdl_have_lt_dladvise +_ACEOF + + + if test "$pmix_pdl_plibltdl_happy" = "yes"; then : + pmix_pdl_plibltdl_ADD_CPPFLAGS=$pmix_pdl_plibltdl_CPPFLAGS + pmix_pdl_plibltdl_ADD_LDFLAGS=$pmix_pdl_plibltdl_LDFLAGS + pmix_pdl_plibltdl_ADD_LIBS=$pmix_pdl_plibltdl_LIBS + should_build=$should_build else - should_build=0 + if test ! -z "$with_libltdl" && \ + test "$with_libltdl" != "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libltdl support requested (via --with-libltdl) but not found." >&5 +$as_echo "$as_me: WARNING: libltdl support requested (via --with-libltdl) but not found." >&2;} + as_fn_error $? "Cannot continue." "$LINENO" 5 +fi + should_build=0 fi - SHARED_FRAMEWORK="$DSO_pnet" - SHARED_COMPONENT="$DSO_pnet_test" - STATIC_FRAMEWORK="$STATIC_pnet" - STATIC_COMPONENT="$STATIC_pnet_test" - shared_mode_override=static - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pnet:test compile mode" >&5 -$as_echo_n "checking for MCA component pnet:test compile mode... " >&6; } - if test "$DIRECT_pnet" = "test" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str + + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done - if test "$should_build" = "1" ; then + + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/src/mca/pnet/test/post_configure.sh" + infile="$srcdir/src/mca/pdl/plibltdl/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components test" + all_components="$all_components plibltdl" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components test" + dso_components="$dso_components plibltdl" else - if test "pnet" = "common"; then + if test "pdl" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pnet/test/lib${PMIX_LIB_PREFIX}mca_pnet_test.la $static_ltlibs" + static_ltlibs="mca/pdl/plibltdl/lib${PMIX_LIB_PREFIX}mca_pdl_plibltdl.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pnet/test/libmca_pnet_test.la $static_ltlibs" + static_ltlibs="mca/pdl/plibltdl/libmca_pdl_plibltdl.la $static_ltlibs" fi - echo "extern const pmix_mca_base_component_t mca_pnet_test_component;" >> $outfile.extern - echo " &mca_pnet_test_component, " >> $outfile.struct - static_components="$static_components test" + echo "extern const pmix_mca_base_component_t mca_pdl_plibltdl_component;" >> $outfile.extern + echo " &mca_pdl_plibltdl_component, " >> $outfile.struct + static_components="$static_components plibltdl" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pnet:test can compile" >&5 -$as_echo_n "checking if MCA component pnet:test can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pdl:plibltdl can compile" >&5 +$as_echo_n "checking if MCA component pdl:plibltdl can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pnet" = "test" ; then + if test "$DIRECT_pdl" = "plibltdl" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_pnet_DIRECT_CALL_HEADER=$line" + str="MCA_pmix_pdl_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pnet component test was supposed to be direct-called, but +as_fn_error $? "*** pdl component plibltdl was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -58330,268 +42796,188 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pnet" = "test" ; then -as_fn_error $? "*** pnet component test was supposed to be direct-called, but + if test "$DIRECT_pdl" = "plibltdl" ; then +as_fn_error $? "*** pdl component plibltdl was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pnet_test_WRAPPER_EXTRA_LDFLAGS" = ""; then : - +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pdl:plibltdl can compile" >&5 +$as_echo_n "checking if MCA component pdl:plibltdl can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + # If this component was requested as the default for this + # type, then abort. + if test "$with_pdl" = "plibltdl" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"plibltdl\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"plibltdl\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + if test ! -z "$DIRECT_pdl" ; then + if test "$DIRECT_pdl" = "plibltdl" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"plibltdl\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"plibltdl\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # add component to all component list + all_components="$all_components plibltdl" +fi - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + # If we won, then do all the rest of the setup + if test "$should_build" = "1"; then : + + # Add some stuff to CPPFLAGS so that the rest of the source + # tree can be built + LDFLAGS="$LDFLAGS $pmix_pdl_plibltdl_ADD_LDFLAGS" + LIBS="$LIBS $pmix_pdl_plibltdl_ADD_LIBS" - for arg in $pnet_test_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_pmix_pdl_plibltdl_DSO=1 else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + BUILD_pmix_pdl_plibltdl_DSO=0 fi + if test "$BUILD_pmix_pdl_plibltdl_DSO" = "1"; then + MCA_BUILD_pmix_pdl_plibltdl_DSO_TRUE= + MCA_BUILD_pmix_pdl_plibltdl_DSO_FALSE='#' +else + MCA_BUILD_pmix_pdl_plibltdl_DSO_TRUE='#' + MCA_BUILD_pmix_pdl_plibltdl_DSO_FALSE= fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + if test "$should_build" = "1"; then : + components_last_result=1 else + components_last_result=0 +fi + unset compile_mode + if test $components_last_result -eq 1; then : + components_looking_for_succeed=0 +fi - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + MCA_pmix_pdl_ALL_COMPONENTS="$all_components" + MCA_pmix_pdl_STATIC_COMPONENTS="$static_components" + MCA_pmix_pdl_DSO_COMPONENTS="$dso_components" + MCA_pmix_pdl_STATIC_LTLIBS="$static_ltlibs" - for arg in $pnet_test_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + MCA_pmix_pdl_ALL_SUBDIRS= + for item in $all_components ; do + MCA_pmix_pdl_ALL_SUBDIRS="$MCA_pmix_pdl_ALL_SUBDIRS mca/pdl/$item" + done -fi - if test "$pnet_test_WRAPPER_EXTRA_LIBS" = ""; then : + MCA_pmix_pdl_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_pmix_pdl_STATIC_SUBDIRS="$MCA_pmix_pdl_STATIC_SUBDIRS mca/pdl/$item" + done - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + MCA_pmix_pdl_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_pmix_pdl_DSO_SUBDIRS="$MCA_pmix_pdl_DSO_SUBDIRS mca/pdl/$item" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "pdl" != "common"; then + cat > $outfile < 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 +#if defined(c_plusplus) || defined(__cplusplus) +} +#endif + +EOF + # Only replace the header file if a) it doesn't previously + # exist, or b) the contents are different. Do this to not + # trigger recompilation of certain .c files just because the + # timestamp changed on $outfile_real (similar to the way AC + # handles AC_CONFIG_HEADER files). + diff $outfile $outfile_real > /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi fi + rm -f $outfile.struct $outfile.extern - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + unset all_components static_components dso_components outfile outfile_real - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + # If we found no suitable static pdl component and dlopen support + # was not specifically disabled, this is an error. + if test "$MCA_pmix_pdl_STATIC_COMPONENTS" = "" && \ + test $PMIX_ENABLE_DLOPEN_SUPPORT -eq 1; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Did not find a suitable static pmix pdl component" >&5 +$as_echo "$as_me: WARNING: Did not find a suitable static pmix pdl component" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You might need to install libltld (and its headers) or" >&5 +$as_echo "$as_me: WARNING: You might need to install libltld (and its headers) or" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: specify --disable-dlopen to configure." >&5 +$as_echo "$as_me: WARNING: specify --disable-dlopen to configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 +fi -else + # If we have a winning component (which, per above, will only + # happen if --disable-dlopen was *not* specified), do some more + # logic. + if test "$MCA_pmix_pdl_STATIC_COMPONENTS" != ""; then : + # We had a winner -- w00t! + PMIX_HAVE_PDL_SUPPORT=1 + # If we added any -L flags to ADD_LDFLAGS, then we (might) + # need to add those directories to LD_LIBRARY_PATH. + # Otherwise, if we try to AC RUN_IFELSE anything here in + # configure, it might die because it can't find the libraries + # we just linked against. # Is the private index set? If not, set it. @@ -58603,7 +42989,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do + for pmix_var in pmix_pdl_base_found_l pmix_pdl_base_token pmix_pdl_base_tmp pmix_pdl_base_dir; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -58622,33 +43008,33 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_pdl_base_found_l pmix_pdl_base_token pmix_pdl_base_tmp pmix_pdl_base_dir\"" eval $pmix_str unset pmix_str env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` - - for arg in $pnet_test_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi + pmix_pdl_base_found_l=0 + eval "pmix_pdl_base_tmp=\$pmix_pdl_${pmix_pdl_winner}_ADD_LIBS" + for pmix_pdl_base_token in $pmix_pdl_base_tmp; do + case $pmix_pdl_base_token in + -l*) pmix_pdl_base_found_l=1 ;; + esac + done + if test $pmix_pdl_base_found_l -eq 1; then : + eval "pmix_pdl_base_tmp=\$pmix_pdl_${pmix_pdl_winner}_ADD_LDFLAGS" + for pmix_pdl_base_token in $pmix_pdl_base_tmp; do + case $pmix_pdl_base_token in + -L*) + pmix_pdl_base_dir=`echo $pmix_pdl_base_token | cut -c3-` + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$pmix_pdl_base_dir + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Adding to LD_LIBRARY_PATH: $pmix_pdl_base_dir" >&5 +$as_echo "$as_me: WARNING: Adding to LD_LIBRARY_PATH: $pmix_pdl_base_dir" >&2;} + ;; + esac done fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - # Unwind the index pmix_scope_index=`expr $pmix_scope_index - 1` @@ -58673,152 +43059,65 @@ fi - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pnet_test_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - for arg in $pnet_test_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done +cat >>confdefs.h <<_ACEOF +#define PMIX_HAVE_PDL_SUPPORT $PMIX_HAVE_PDL_SUPPORT +_ACEOF - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS pif" + MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/pif" + MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_pif_ALL_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_pif_DSO_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_pif_STATIC_SUBDIRS)" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/pif/libmca_pif.la" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_pif_STATIC_LTLIBS)" - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + pmix_show_subsubtitle "Configuring MCA framework pif" - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pnet_test_WRAPPER_EXTRA_CPPFLAGS ($pnet_test_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pnet_test_WRAPPER_EXTRA_CPPFLAGS ($pnet_test_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - else + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pnet:test can compile" >&5 -$as_echo_n "checking if MCA component pnet:test can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=src/mca/pif/base + as_dir=$outdir; as_fn_mkdir_p - # If this component was requested as the default for this - # type, then abort. - if test "$with_pnet" = "test" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"test\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"test\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # emit Makefile rule + ac_config_files="$ac_config_files src/mca/pif/Makefile" - if test ! -z "$DIRECT_pnet" ; then - if test "$DIRECT_pnet" = "test" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"test\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"test\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - # add component to all component list - all_components="$all_components test" - fi + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_pmix_pnet_test_DSO=1 - else - BUILD_pmix_pnet_test_DSO=0 - fi - if test "$BUILD_pmix_pnet_test_DSO" = "1"; then - MCA_BUILD_pmix_pnet_test_DSO_TRUE= - MCA_BUILD_pmix_pnet_test_DSO_FALSE='#' -else - MCA_BUILD_pmix_pnet_test_DSO_TRUE='#' - MCA_BUILD_pmix_pnet_test_DSO_FALSE= -fi + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework pif" >&5 +$as_echo_n "checking for no configure components in framework pif... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework pif" >&5 +$as_echo_n "checking for m4 configure components in framework pif... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: bsdx_ipv4, bsdx_ipv6, linux_ipv6, posix_ipv4, solaris_ipv6" >&5 +$as_echo "bsdx_ipv4, bsdx_ipv6, linux_ipv6, posix_ipv4, solaris_ipv6" >&6; } + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - ac_config_files="$ac_config_files src/mca/pnet/test/Makefile" - unset compile_mode + # run the configure logic for the no-config components # configure components that use built-in configuration scripts @@ -58830,13 +43129,13 @@ components_last_result=0 - pmix_show_subsubsubtitle "MCA component pnet:opa (m4 configuration macro)" + pmix_show_subsubsubtitle "MCA component pif:bsdx_ipv4 (m4 configuration macro)" pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/src/mca/pnet/opa" + component_path="$srcdir/src/mca/pif/bsdx_ipv4" want_component=0 # build if: @@ -58868,8 +43167,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pnet" ; then - if test "$DIRECT_pnet" = "opa" ; then + if test ! -z "$DIRECT_pif" ; then + if test "$DIRECT_pif" = "bsdx_ipv4" ; then want_component=1 else want_component=0 @@ -58878,10 +43177,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_pnet" = "1"; then : + if test "$DISABLE_pif" = "1"; then : want_component=0 fi - if test "$DISABLE_pnet_opa" = "1"; then : + if test "$DISABLE_pif_bsdx_ipv4" = "1"; then : want_component=0 fi @@ -58894,1193 +43193,491 @@ # Allow the component to override the build mode if it really wants to. # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_pnet" - SHARED_COMPONENT="$DSO_pnet_opa" - - STATIC_FRAMEWORK="$STATIC_pnet" - STATIC_COMPONENT="$STATIC_pnet_opa" - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pnet:opa compile mode" >&5 -$as_echo_n "checking for MCA component pnet:opa compile mode... " >&6; } - if test "$DIRECT_pnet" = "opa" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pif:bsdx_ipv4 compile mode" >&5 +$as_echo_n "checking for MCA component pif:bsdx_ipv4 compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 $as_echo "$compile_mode" >&6; } - fi # try to configure the component - ac_config_files="$ac_config_files src/mca/pnet/opa/Makefile" - - - - if test -z "$pmix_check_psm2_happy" ; then - -# Check whether --with-psm2 was given. -if test "${with_psm2+set}" = set; then : - withval=$with_psm2; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-psm2 value" >&5 -$as_echo_n "checking --with-psm2 value... " >&6; } - if test "$with_psm2" = "yes" || test "$with_psm2" = "no" || test "x$with_psm2" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified)" >&5 -$as_echo "simple ok (unspecified)" >&6; } -else - if test ! -d "$with_psm2"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_psm2 not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_psm2 not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_psm2/include/psm2.h 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_psm2/include/psm2.h not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_psm2/include/psm2.h not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_psm2)" >&5 -$as_echo "sanity check ok ($with_psm2)" >&6; } - -fi - - -fi - - -fi - - -# Check whether --with-psm2-libdir was given. -if test "${with_psm2_libdir+set}" = set; then : - withval=$with_psm2_libdir; -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-psm2-libdir value" >&5 -$as_echo_n "checking --with-psm2-libdir value... " >&6; } - if test "$with_psm2_libdir" = "yes" || test "$with_psm2_libdir" = "no" || test "x$with_psm2_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified)" >&5 -$as_echo "simple ok (unspecified)" >&6; } -else - if test ! -d "$with_psm2_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_psm2_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_psm2_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_psm2_libdir/libpsm2.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_psm2_libdir/libpsm2.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_psm2_libdir/libpsm2.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_psm2_libdir)" >&5 -$as_echo "sanity check ok ($with_psm2_libdir)" >&6; } - -fi - - -fi - - -fi - - - pmix_check_psm2_pnet_opa_save_CPPFLAGS="$CPPFLAGS" - pmix_check_psm2_pnet_opa_save_LDFLAGS="$LDFLAGS" - pmix_check_psm2_pnet_opa_save_LIBS="$LIBS" - - if test "$with_psm2" != "no"; then : - if test ! -z "$with_psm2" && test "$with_psm2" != "yes"; then : - pmix_check_psm2_dir="$with_psm2" -fi - if test ! -z "$with_psm2_libdir" && test "$with_psm2_libdir" != "yes"; then : - pmix_check_psm2_libdir="$with_psm2_libdir" -fi - - - pmix_check_package_pmix_check_psm2_save_CPPFLAGS="$CPPFLAGS" - pmix_check_package_pmix_check_psm2_save_LDFLAGS="$LDFLAGS" - pmix_check_package_pmix_check_psm2_save_LIBS="$LIBS" - - pmix_check_package_pmix_check_psm2_orig_CPPFLAGS="$pmix_check_psm2_CPPFLAGS" - pmix_check_package_pmix_check_psm2_orig_LDFLAGS="$pmix_check_psm2_LDFLAGS" - pmix_check_package_pmix_check_psm2_orig_LIBS="$pmix_check_psm2_LIBS" - - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_psm2_h - pmix_check_package_header_happy="no" - - # get rid of the trailing slash(es) - hdir_prefix=$(echo $pmix_check_psm2_dir | sed -e 'sX/*$XXg') - - if test "$hdir_prefix" = "" || \ - test "$hdir_prefix" = "/usr" || \ - test "$hdir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in psm2.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "psm2.h" "ac_cv_header_psm2_h" "$ac_includes_default" -if test "x$ac_cv_header_psm2_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PSM2_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi - -done - - if test "$pmix_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_psm2_h -fi -fi - - if test "$pmix_check_package_header_happy" = "no"; then : - if test "$hdir_prefix" != ""; then : - pmix_check_psm2_CPPFLAGS="$pmix_check_psm2_CPPFLAGS -I$hdir_prefix" - CPPFLAGS="$CPPFLAGS -I$hdir_prefix" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix" >&5 -$as_echo "looking for header in $hdir_prefix" >&6; } - for ac_header in psm2.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "psm2.h" "ac_cv_header_psm2_h" "$ac_includes_default" -if test "x$ac_cv_header_psm2_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PSM2_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi - -done - - if test "$pmix_check_package_header_happy" = "no"; then : - unset ac_cv_header_psm2_h - pmix_check_psm2_CPPFLAGS="$pmix_check_psm2_CPPFLAGS -I$hdir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$hdir_prefix/include" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix/include" >&5 -$as_echo "looking for header in $hdir_prefix/include" >&6; } - for ac_header in psm2.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "psm2.h" "ac_cv_header_psm2_h" "$ac_includes_default" -if test "x$ac_cv_header_psm2_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PSM2_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi - -done - -fi -fi -fi - - if test "$pmix_check_package_header_happy" = "yes"; then : - - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - - # see comment above - unset ac_cv_lib_psm2_psm2_mq_irecv2 - pmix_check_package_lib_happy="no" - - # get rid of the trailing slash(es) - libdir_prefix=$(echo $pmix_check_psm2_libdir | sed -e 'sX/*$XXg') - - if test "$libdir_prefix" != ""; then : - # libdir was specified - search only there - pmix_check_psm2_LDFLAGS="$pmix_check_psm2_LDFLAGS -L$libdir_prefix" - LDFLAGS="$LDFLAGS -L$libdir_prefix" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 -$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm2_mq_irecv2 (); -int -main () -{ -return psm2_mq_irecv2 (); - ; - return 0; -} -_ACEOF -for ac_lib in '' psm2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm2_mq_irecv2=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - break -fi -done -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - -else - ac_cv_search_psm2_mq_irecv2=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 -$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } -ac_res=$ac_cv_search_psm2_mq_irecv2 -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - LDFLAGS="$pmix_check_package_pmix_check_psm2_save_LDFLAGS" - pmix_check_psm2_LDFLAGS="$pmix_check_package_pmix_check_psm2_orig_LDFLAGS" - unset ac_cv_lib_psm2_psm2_mq_irecv2 -fi -else - # libdir was not specified - go through search path - # get rid of the trailing slash(es) - libdir_prefix=$(echo $pmix_check_psm2_dir | sed -e 'sX/*$XXg') - - # first try standard locations as otherwise our - # searches with libdir_prefix locations might come - # back positive and unnecessarily add an LDFLAG - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 -$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm2_mq_irecv2 (); -int -main () -{ -return psm2_mq_irecv2 (); - ; - return 0; -} -_ACEOF -for ac_lib in '' psm2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm2_mq_irecv2=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - break -fi -done -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - -else - ac_cv_search_psm2_mq_irecv2=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 -$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } -ac_res=$ac_cv_search_psm2_mq_irecv2 -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_check_psm2_save_LDFLAGS" - pmix_check_psm2_LDFLAGS="$pmix_check_package_pmix_check_psm2_orig_LDFLAGS" - unset ac_cv_lib_psm2_psm2_mq_irecv2 -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # if we didn't find it, check the libdir_prefix/lib64 directory - if test "$libdir_prefix" != "" && \ - test "$libdir_prefix" != "/usr" && \ - test "$libdir_prefix" != "/usr/local"; then : - pmix_check_psm2_LDFLAGS="$pmix_check_psm2_LDFLAGS -L$libdir_prefix/lib64" - LDFLAGS="$LDFLAGS -L$libdir_prefix/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib64" >&5 -$as_echo "looking for library in $libdir_prefix/lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 -$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm2_mq_irecv2 (); -int -main () -{ -return psm2_mq_irecv2 (); - ; - return 0; -} -_ACEOF -for ac_lib in '' psm2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm2_mq_irecv2=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - break -fi -done -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - -else - ac_cv_search_psm2_mq_irecv2=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 -$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } -ac_res=$ac_cv_search_psm2_mq_irecv2 -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_check_psm2_save_LDFLAGS" - pmix_check_psm2_LDFLAGS="$pmix_check_package_pmix_check_psm2_orig_LDFLAGS" - unset ac_cv_lib_psm2_psm2_mq_irecv2 -fi -fi -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # if we still haven't found it, check the libdir_prefix/lib directory - if test "$libdir_prefix" != "" && \ - test "$libdir_prefix" != "/usr" && \ - test "$libdir_prefix" != "/usr/local"; then : - pmix_check_psm2_LDFLAGS="$pmix_check_psm2_LDFLAGS -L$libdir_prefix/lib" - LDFLAGS="$LDFLAGS -L$libdir_prefix/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib" >&5 -$as_echo "looking for library in $libdir_prefix/lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing psm2_mq_irecv2" >&5 -$as_echo_n "checking for library containing psm2_mq_irecv2... " >&6; } -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char psm2_mq_irecv2 (); -int -main () -{ -return psm2_mq_irecv2 (); - ; - return 0; -} -_ACEOF -for ac_lib in '' psm2; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_psm2_mq_irecv2=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - break -fi -done -if ${ac_cv_search_psm2_mq_irecv2+:} false; then : - -else - ac_cv_search_psm2_mq_irecv2=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_psm2_mq_irecv2" >&5 -$as_echo "$ac_cv_search_psm2_mq_irecv2" >&6; } -ac_res=$ac_cv_search_psm2_mq_irecv2 -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pmix_check_psm2_save_LDFLAGS" - pmix_check_psm2_LDFLAGS="$pmix_check_package_pmix_check_psm2_orig_LDFLAGS" - unset ac_cv_lib_psm2_psm2_mq_irecv2 -fi -fi -fi - -fi + ac_config_files="$ac_config_files src/mca/pif/bsdx_ipv4/Makefile" - if test "$pmix_check_package_lib_happy" = "yes"; then : - pmix_check_psm2_LIBS="-lpsm2 " - pmix_check_package_happy="yes" -else - pmix_check_package_happy="no" -fi - if test "$pmix_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_psm2_mq_irecv2" != "no" && - test "$ac_cv_search_psm2_mq_irecv2" != "none required"; then : - pmix_check_psm2_LIBS="$ac_cv_search_psm2_mq_irecv2 " -else - pmix_check_psm2_LIBS="" -fi - pmix_check_package_happy="yes" -else - pmix_check_package_happy="no" -fi + # If we found struct sockaddr and we're on any of the BSDs, we're + # happy. I.e., this: + #if defined(__NetBSD__) || defined(__FreeBSD__) || \ + # defined(__OpenBSD__) || defined(__DragonFly__) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct sockaddr" >&5 +$as_echo_n "checking struct sockaddr... " >&6; } + if test "$pmix_found_sockaddr" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (cached)" >&5 +$as_echo "yes (cached)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking NetBSD, FreeBSD, OpenBSD, or DragonFly" >&5 +$as_echo_n "checking NetBSD, FreeBSD, OpenBSD, or DragonFly... " >&6; } + if test "$pmix_found_netbsd" = "yes" || \ + test "$pmix_found_freebsd" = "yes" || \ + test "$pmix_found_openbsd" = "yes" || \ + test "$pmix_found_dragonfly" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + should_build=$should_build else - pmix_check_package_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + should_build=0 fi - - unset pmix_check_package_header_happy - - - - if test "$pmix_check_package_happy" = "yes"; then : - pmix_check_psm2_happy="yes" else - pmix_check_psm2_CPPFLAGS="$pmix_check_package_pmix_check_psm2_orig_CPPFLAGS" - pmix_check_psm2_LDFLAGS="$pmix_check_package_pmix_check_psm2_orig_LDFLAGS" - pmix_check_psm2_LIBS="$pmix_check_package_pmix_check_psm2_orig_LIBS" - pmix_check_psm2_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (cached)" >&5 +$as_echo "no (cached)" >&6; } + should_build=0 fi - CPPFLAGS="$pmix_check_package_pmix_check_psm2_save_CPPFLAGS" - LDFLAGS="$pmix_check_package_pmix_check_psm2_save_LDFLAGS" - LIBS="$pmix_check_package_pmix_check_psm2_save_LIBS" + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" -else - pmix_check_psm2_happy="no" -fi + if test "$should_build" = "1"; then : - CPPFLAGS="$pmix_check_psm2_pnet_opa_save_CPPFLAGS" - LDFLAGS="$pmix_check_psm2_pnet_opa_save_LDFLAGS" - LIBS="$pmix_check_psm2_pnet_opa_save_LIBS" - if test "$pmix_check_psm2_happy" = "yes" && test "$enable_progress_threads" = "yes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PSM2 driver does not currently support progress threads. Disabling MTL." >&5 -$as_echo "$as_me: WARNING: PSM2 driver does not currently support progress threads. Disabling MTL." >&2;} - pmix_check_psm2_happy="no" -fi - if test "$pmix_check_psm2_happy" = "yes"; then : - for ac_header in glob.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "glob.h" "ac_cv_header_glob_h" "$ac_includes_default" -if test "x$ac_cv_header_glob_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GLOB_H 1 -_ACEOF + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/pif/bsdx_ipv4/post_configure.sh" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: glob.h not found. Can not build component." >&5 -$as_echo "$as_me: WARNING: glob.h not found. Can not build component." >&2;} - pmix_check_psm2_happy="no" -fi + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components bsdx_ipv4" -done + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components bsdx_ipv4" + else + if test "pif" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pif/bsdx_ipv4/lib${PMIX_LIB_PREFIX}mca_pif_bsdx_ipv4.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pif/bsdx_ipv4/libmca_pif_bsdx_ipv4.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_pif_bsdx_ipv4_component;" >> $outfile.extern + echo " &mca_pif_bsdx_ipv4_component, " >> $outfile.struct + static_components="$static_components bsdx_ipv4" + fi -fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:bsdx_ipv4 can compile" >&5 +$as_echo_n "checking if MCA component pif:bsdx_ipv4 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pif" = "bsdx_ipv4" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_pif_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pif component bsdx_ipv4 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pif" = "bsdx_ipv4" ; then +as_fn_error $? "*** pif component bsdx_ipv4 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi fi - if test "$pmix_check_psm2_happy" = "yes"; then : - pnet_opa_LDFLAGS="$pnet_opa_LDFLAGS $pmix_check_psm2_LDFLAGS" - pnet_opa_CPPFLAGS="$pnet_opa_CPPFLAGS $pmix_check_psm2_CPPFLAGS" - pnet_opa_LIBS="$pnet_opa_LIBS $pmix_check_psm2_LIBS" - pnet_opa_happy="yes" else - if test ! -z "$with_psm2" && test "$with_psm2" != "no"; then : - as_fn_error $? "PSM2 support requested but not found. Aborting" "$LINENO" 5 -fi - pnet_opa_happy="no" -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:bsdx_ipv4 can compile" >&5 +$as_echo_n "checking if MCA component pif:bsdx_ipv4 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # If this component was requested as the default for this + # type, then abort. + if test "$with_pif" = "bsdx_ipv4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bsdx_ipv4\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"bsdx_ipv4\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi -# Check whether --with-opamgt was given. -if test "${with_opamgt+set}" = set; then : - withval=$with_opamgt; -else - with_opamgt=no -fi - - + if test ! -z "$DIRECT_pif" ; then + if test "$DIRECT_pif" = "bsdx_ipv4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bsdx_ipv4\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"bsdx_ipv4\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi -# Check whether --with-opamgt-libdir was given. -if test "${with_opamgt_libdir+set}" = set; then : - withval=$with_opamgt_libdir; + # add component to all component list + all_components="$all_components bsdx_ipv4" fi - pmix_check_opamgt_save_CPPFLAGS="$CPPFLAGS" - pmix_check_opamgt_save_LDFLAGS="$LDFLAGS" - pmix_check_opamgt_save_LIBS="$LIBS" - pmix_check_opamgt_libdir= - pmix_check_opamgt_dir= - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if opamgt requested" >&5 -$as_echo_n "checking if opamgt requested... " >&6; } - if test "$with_opamgt" = "no"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - pmix_check_opamgt_happy=no -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-opamgt-libdir value" >&5 -$as_echo_n "checking --with-opamgt-libdir value... " >&6; } - if test "$with_opamgt_libdir" = "yes" || test "$with_opamgt_libdir" = "no" || test "x$with_opamgt_libdir" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: simple ok (unspecified)" >&5 -$as_echo "simple ok (unspecified)" >&6; } -else - if test ! -d "$with_opamgt_libdir"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Directory $with_opamgt_libdir not found" >&5 -$as_echo "$as_me: WARNING: Directory $with_opamgt_libdir not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -else - if test "x`ls $with_opamgt_libdir/libopamgt.* 2> /dev/null`" = "x"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Expected file $with_opamgt_libdir/libopamgt.* not found" >&5 -$as_echo "$as_me: WARNING: Expected file $with_opamgt_libdir/libopamgt.* not found" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_pmix_pif_bsdx_ipv4_DSO=1 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: sanity check ok ($with_opamgt_libdir)" >&5 -$as_echo "sanity check ok ($with_opamgt_libdir)" >&6; } - + BUILD_pmix_pif_bsdx_ipv4_DSO=0 fi - - + if test "$BUILD_pmix_pif_bsdx_ipv4_DSO" = "1"; then + MCA_BUILD_pmix_pif_bsdx_ipv4_DSO_TRUE= + MCA_BUILD_pmix_pif_bsdx_ipv4_DSO_FALSE='#' +else + MCA_BUILD_pmix_pif_bsdx_ipv4_DSO_TRUE='#' + MCA_BUILD_pmix_pif_bsdx_ipv4_DSO_FALSE= fi -fi - - if test ! -z "$with_opamgt" && test "$with_opamgt" != "yes"; then : - pmix_check_opamgt_dir="$with_opamgt" - if test ! -d "$pmix_check_opamgt_dir" || test ! -f "$pmix_check_opamgt_dir/opamgt.h"; then : - $pmix_check_opamgt_dir=$pmix_check_opamgt_dir/include - if test ! -d "$pmix_check_opamgt_dir" || test ! -f "$pmix_check_opamgt_dir/opamgt.h"; then : - $pmix_check_opamgt_dir=$pmix_check_opamgt_dir/opamgt - if test ! -d "$pmix_check_opamgt_dir" || test ! -f "$pmix_check_opamgt_dir/opamgt.h"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OmniPath Fabric Management support requested, but" >&5 -$as_echo "$as_me: WARNING: OmniPath Fabric Management support requested, but" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: required header file opamgt.h not found. Locations tested:" >&5 -$as_echo "$as_me: WARNING: required header file opamgt.h not found. Locations tested:" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $with_opamgt" >&5 -$as_echo "$as_me: WARNING: $with_opamgt" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $with_opamgt/include" >&5 -$as_echo "$as_me: WARNING: $with_opamgt/include" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $with_opamgt/include/opamgt" >&5 -$as_echo "$as_me: WARNING: $with_opamgt/include/opamgt" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 -fi -fi -fi + if test "$should_build" = "1"; then : + components_last_result=1 else - pmix_check_opamgt_dir="/usr/include/opamgt" + components_last_result=0 fi - if test ! -z "$with_opamgt_libdir" && test "$with_opamgt_libdir" != "yes"; then : - pmix_check_opamgt_libdir="$with_opamgt_libdir" -fi + unset compile_mode - # no easy way to check this, so let's ensure that the - # full opamgt install was done, including the iba support - if test ! -d "$pmix_check_opamgt_dir/iba" || test ! -f "$pmix_check_opamgt_dir/iba/vpi.h"; then : - pmix_check_opamgt_happy="no" -else - pmix_check_package_pnet_opamgt_save_CPPFLAGS="$CPPFLAGS" - pmix_check_package_pnet_opamgt_save_LDFLAGS="$LDFLAGS" - pmix_check_package_pnet_opamgt_save_LIBS="$LIBS" - pmix_check_package_pnet_opamgt_orig_CPPFLAGS="$pnet_opamgt_CPPFLAGS" - pmix_check_package_pnet_opamgt_orig_LDFLAGS="$pnet_opamgt_LDFLAGS" - pmix_check_package_pnet_opamgt_orig_LIBS="$pnet_opamgt_LIBS" - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + pmix_show_subsubsubtitle "MCA component pif:bsdx_ipv6 (m4 configuration macro)" + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_opamgt_h - pmix_check_package_header_happy="no" - # get rid of the trailing slash(es) - hdir_prefix=$(echo $pmix_check_opamgt_dir | sed -e 'sX/*$XXg') - if test "$hdir_prefix" = "" || \ - test "$hdir_prefix" = "/usr" || \ - test "$hdir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in opamgt.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "opamgt.h" "ac_cv_header_opamgt_h" "$ac_includes_default" -if test "x$ac_cv_header_opamgt_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_OPAMGT_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi + component_path="$srcdir/src/mca/pif/bsdx_ipv6" + want_component=0 -done + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_pif" ; then + if test "$DIRECT_pif" = "bsdx_ipv6" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - if test "$pmix_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_opamgt_h -fi + # if we were explicitly disabled, don't build :) + if test "$DISABLE_pif" = "1"; then : + want_component=0 fi - - if test "$pmix_check_package_header_happy" = "no"; then : - if test "$hdir_prefix" != ""; then : - pnet_opamgt_CPPFLAGS="$pnet_opamgt_CPPFLAGS -I$hdir_prefix" - CPPFLAGS="$CPPFLAGS -I$hdir_prefix" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix" >&5 -$as_echo "looking for header in $hdir_prefix" >&6; } - for ac_header in opamgt.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "opamgt.h" "ac_cv_header_opamgt_h" "$ac_includes_default" -if test "x$ac_cv_header_opamgt_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_OPAMGT_H 1 -_ACEOF - pmix_check_package_header_happy="yes" + if test "$DISABLE_pif_bsdx_ipv6" = "1"; then : + want_component=0 fi -done - - if test "$pmix_check_package_header_happy" = "no"; then : - unset ac_cv_header_opamgt_h - pnet_opamgt_CPPFLAGS="$pnet_opamgt_CPPFLAGS -I$hdir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$hdir_prefix/include" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix/include" >&5 -$as_echo "looking for header in $hdir_prefix/include" >&6; } - for ac_header in opamgt.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "opamgt.h" "ac_cv_header_opamgt_h" "$ac_includes_default" -if test "x$ac_cv_header_opamgt_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_OPAMGT_H 1 -_ACEOF - pmix_check_package_header_happy="yes" + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 fi -done + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE -fi -fi -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pif:bsdx_ipv6 compile mode" >&5 +$as_echo_n "checking for MCA component pif:bsdx_ipv6 compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - if test "$pmix_check_package_header_happy" = "yes"; then : - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # try to configure the component - # see comment above - unset ac_cv_lib_opamgt_omgt_query_sa - pmix_check_package_lib_happy="no" + ac_config_files="$ac_config_files src/mca/pif/bsdx_ipv6/Makefile" - # get rid of the trailing slash(es) - libdir_prefix=$(echo $pmix_check_opamgt_libdir | sed -e 'sX/*$XXg') - if test "$libdir_prefix" != ""; then : - # libdir was specified - search only there - pnet_opamgt_LDFLAGS="$pnet_opamgt_LDFLAGS -L$libdir_prefix" - LDFLAGS="$LDFLAGS -L$libdir_prefix" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing omgt_query_sa" >&5 -$as_echo_n "checking for library containing omgt_query_sa... " >&6; } -if ${ac_cv_search_omgt_query_sa+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char omgt_query_sa (); -int -main () -{ -return omgt_query_sa (); - ; - return 0; -} -_ACEOF -for ac_lib in '' opamgt; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_omgt_query_sa=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_omgt_query_sa+:} false; then : - break -fi -done -if ${ac_cv_search_omgt_query_sa+:} false; then : + # If we found struct sockaddr and we're on any of the BSDs, we're + # happy. I.e., this: + #if defined( __NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \ + # defined(__386BSD__) || defined(__bsdi__) || defined(__APPLE__) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct sockaddr" >&5 +$as_echo_n "checking struct sockaddr... " >&6; } + if test "$pmix_found_sockaddr" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (cached)" >&5 +$as_echo "yes (cached)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking some flavor of BSD" >&5 +$as_echo_n "checking some flavor of BSD... " >&6; } + if test "$pmix_found_netbsd" = "yes" || \ + test "$pmix_found_freebsd" = "yes" || \ + test "$pmix_found_openbsd" = "yes" || \ + test "$pmix_found_386bsd" = "yes" || \ + test "$pmix_found_bsdi" = "yes" || + test "$pmix_found_apple" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + should_build=$should_build else - ac_cv_search_omgt_query_sa=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + should_build=0 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_omgt_query_sa" >&5 -$as_echo "$ac_cv_search_omgt_query_sa" >&6; } -ac_res=$ac_cv_search_omgt_query_sa -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" else - pmix_check_package_lib_happy="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (cached)" >&5 +$as_echo "no (cached)" >&6; } + should_build=0 fi - if test "$pmix_check_package_lib_happy" = "no"; then : - LDFLAGS="$pmix_check_package_pnet_opamgt_save_LDFLAGS" - pnet_opamgt_LDFLAGS="$pmix_check_package_pnet_opamgt_orig_LDFLAGS" - unset ac_cv_lib_opamgt_omgt_query_sa -fi -else - # libdir was not specified - go through search path - # get rid of the trailing slash(es) - libdir_prefix=$(echo $pmix_check_opamgt_dir | sed -e 'sX/*$XXg') + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - # first try standard locations as otherwise our - # searches with libdir_prefix locations might come - # back positive and unnecessarily add an LDFLAG - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing omgt_query_sa" >&5 -$as_echo_n "checking for library containing omgt_query_sa... " >&6; } -if ${ac_cv_search_omgt_query_sa+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if test "$should_build" = "1"; then : -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char omgt_query_sa (); -int -main () -{ -return omgt_query_sa (); - ; - return 0; -} -_ACEOF -for ac_lib in '' opamgt; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_omgt_query_sa=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_omgt_query_sa+:} false; then : - break -fi -done -if ${ac_cv_search_omgt_query_sa+:} false; then : -else - ac_cv_search_omgt_query_sa=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_omgt_query_sa" >&5 -$as_echo "$ac_cv_search_omgt_query_sa" >&6; } -ac_res=$ac_cv_search_omgt_query_sa -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pnet_opamgt_save_LDFLAGS" - pnet_opamgt_LDFLAGS="$pmix_check_package_pnet_opamgt_orig_LDFLAGS" - unset ac_cv_lib_opamgt_omgt_query_sa -fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/pif/bsdx_ipv6/post_configure.sh" - if test "$pmix_check_package_lib_happy" = "no"; then : - # if we didn't find it, check the libdir_prefix/lib64 directory - if test "$libdir_prefix" != "" && \ - test "$libdir_prefix" != "/usr" && \ - test "$libdir_prefix" != "/usr/local"; then : - pnet_opamgt_LDFLAGS="$pnet_opamgt_LDFLAGS -L$libdir_prefix/lib64" - LDFLAGS="$LDFLAGS -L$libdir_prefix/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib64" >&5 -$as_echo "looking for library in $libdir_prefix/lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing omgt_query_sa" >&5 -$as_echo_n "checking for library containing omgt_query_sa... " >&6; } -if ${ac_cv_search_omgt_query_sa+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components bsdx_ipv6" -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char omgt_query_sa (); -int -main () -{ -return omgt_query_sa (); - ; - return 0; -} -_ACEOF -for ac_lib in '' opamgt; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_omgt_query_sa=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_omgt_query_sa+:} false; then : - break -fi -done -if ${ac_cv_search_omgt_query_sa+:} false; then : + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components bsdx_ipv6" + else + if test "pif" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pif/bsdx_ipv6/lib${PMIX_LIB_PREFIX}mca_pif_bsdx_ipv6.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pif/bsdx_ipv6/libmca_pif_bsdx_ipv6.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_pif_bsdx_ipv6_component;" >> $outfile.extern + echo " &mca_pif_bsdx_ipv6_component, " >> $outfile.struct + static_components="$static_components bsdx_ipv6" + fi -else - ac_cv_search_omgt_query_sa=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_omgt_query_sa" >&5 -$as_echo "$ac_cv_search_omgt_query_sa" >&6; } -ac_res=$ac_cv_search_omgt_query_sa -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:bsdx_ipv6 can compile" >&5 +$as_echo_n "checking if MCA component pif:bsdx_ipv6 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pnet_opamgt_save_LDFLAGS" - pnet_opamgt_LDFLAGS="$pmix_check_package_pnet_opamgt_orig_LDFLAGS" - unset ac_cv_lib_opamgt_omgt_query_sa -fi -fi -fi + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pif" = "bsdx_ipv6" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_pif_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pif component bsdx_ipv6 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pif" = "bsdx_ipv6" ; then +as_fn_error $? "*** pif component bsdx_ipv6 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - if test "$pmix_check_package_lib_happy" = "no"; then : - # if we still haven't found it, check the libdir_prefix/lib directory - if test "$libdir_prefix" != "" && \ - test "$libdir_prefix" != "/usr" && \ - test "$libdir_prefix" != "/usr/local"; then : - pnet_opamgt_LDFLAGS="$pnet_opamgt_LDFLAGS -L$libdir_prefix/lib" - LDFLAGS="$LDFLAGS -L$libdir_prefix/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib" >&5 -$as_echo "looking for library in $libdir_prefix/lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing omgt_query_sa" >&5 -$as_echo_n "checking for library containing omgt_query_sa... " >&6; } -if ${ac_cv_search_omgt_query_sa+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char omgt_query_sa (); -int -main () -{ -return omgt_query_sa (); - ; - return 0; -} -_ACEOF -for ac_lib in '' opamgt; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_omgt_query_sa=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_omgt_query_sa+:} false; then : - break -fi -done -if ${ac_cv_search_omgt_query_sa+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:bsdx_ipv6 can compile" >&5 +$as_echo_n "checking if MCA component pif:bsdx_ipv6 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -else - ac_cv_search_omgt_query_sa=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_omgt_query_sa" >&5 -$as_echo "$ac_cv_search_omgt_query_sa" >&6; } -ac_res=$ac_cv_search_omgt_query_sa -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi + # If this component was requested as the default for this + # type, then abort. + if test "$with_pif" = "bsdx_ipv6" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bsdx_ipv6\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"bsdx_ipv6\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_pif" ; then + if test "$DIRECT_pif" = "bsdx_ipv6" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"bsdx_ipv6\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"bsdx_ipv6\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_pnet_opamgt_save_LDFLAGS" - pnet_opamgt_LDFLAGS="$pmix_check_package_pnet_opamgt_orig_LDFLAGS" - unset ac_cv_lib_opamgt_omgt_query_sa -fi -fi + # add component to all component list + all_components="$all_components bsdx_ipv6" fi -fi - if test "$pmix_check_package_lib_happy" = "yes"; then : - pnet_opamgt_LIBS="-lopamgt " - pmix_check_package_happy="yes" -else - pmix_check_package_happy="no" -fi - if test "$pmix_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_omgt_query_sa" != "no" && - test "$ac_cv_search_omgt_query_sa" != "none required"; then : - pnet_opamgt_LIBS="$ac_cv_search_omgt_query_sa " + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_pmix_pif_bsdx_ipv6_DSO=1 else - pnet_opamgt_LIBS="" + BUILD_pmix_pif_bsdx_ipv6_DSO=0 fi - pmix_check_package_happy="yes" + if test "$BUILD_pmix_pif_bsdx_ipv6_DSO" = "1"; then + MCA_BUILD_pmix_pif_bsdx_ipv6_DSO_TRUE= + MCA_BUILD_pmix_pif_bsdx_ipv6_DSO_FALSE='#' else - pmix_check_package_happy="no" + MCA_BUILD_pmix_pif_bsdx_ipv6_DSO_TRUE='#' + MCA_BUILD_pmix_pif_bsdx_ipv6_DSO_FALSE= fi + if test "$should_build" = "1"; then : + components_last_result=1 else - pmix_check_package_happy="no" + components_last_result=0 fi - unset pmix_check_package_header_happy + unset compile_mode - if test "$pmix_check_package_happy" = "yes"; then : - pmix_check_opamgt_happy="yes" - pnet_opa_CFLAGS="$pnet_opa_CFLAGS $pnet_opamgt_CFLAGS" - pnet_opa_CPPFLAGS="$pnet_opa_CPPFLAGS $pnet_opamgt_CPPFLAGS" - pnet_opa_LDFLAGS="$pnet_opa_LDFLAGS $pnet_opamgt_LDFLAGS" - pnet_opa_LIBS="$pnet_opa_LIBS $pnet_opamgt_LIBS" -else - pnet_opamgt_CPPFLAGS="$pmix_check_package_pnet_opamgt_orig_CPPFLAGS" - pnet_opamgt_LDFLAGS="$pmix_check_package_pnet_opamgt_orig_LDFLAGS" - pnet_opamgt_LIBS="$pmix_check_package_pnet_opamgt_orig_LIBS" - pmix_check_opamgt_happy="no" -fi - CPPFLAGS="$pmix_check_package_pnet_opamgt_save_CPPFLAGS" - LDFLAGS="$pmix_check_package_pnet_opamgt_save_LDFLAGS" - LIBS="$pmix_check_package_pnet_opamgt_save_LIBS" -fi + pmix_show_subsubsubtitle "MCA component pif:linux_ipv6 (m4 configuration macro)" -fi + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - if test "$pmix_check_opamgt_happy" = "yes"; then : - pmix_want_opamgt=1 -else - pmix_want_opamgt=0 -fi -cat >>confdefs.h <<_ACEOF -#define PMIX_WANT_OPAMGT $pmix_want_opamgt -_ACEOF + component_path="$srcdir/src/mca/pif/linux_ipv6" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_pif" ; then + if test "$DIRECT_pif" = "linux_ipv6" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - CPPFLAGS="$pmix_check_opamgt_save_CPPFLAGS" - LDFLAGS="$pmix_check_opamgt_save_LDFLAGS" - LIBS="$pmix_check_opamgt_save_LIBS" + # if we were explicitly disabled, don't build :) + if test "$DISABLE_pif" = "1"; then : + want_component=0 +fi + if test "$DISABLE_pif_linux_ipv6" = "1"; then : + want_component=0 +fi - if test "$pnet_opa_happy" = "yes"; then : - should_build=$should_build + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else should_build=0 fi - # substitute in the things needed to build psm2 + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pif:linux_ipv6 compile mode" >&5 +$as_echo_n "checking for MCA component pif:linux_ipv6 compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + + + # try to configure the component + + ac_config_files="$ac_config_files src/mca/pif/linux_ipv6/Makefile" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we are on Linux with TCP" >&5 +$as_echo_n "checking if we are on Linux with TCP... " >&6; } + # If we have struct sockaddr and we're on Linux, then we're + # happy. + if test "$pmix_found_sockaddr" = "yes" && test "$pmix_found_linux" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + should_build=$should_build +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + should_build=0 +fi pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" @@ -60090,45 +43687,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/src/mca/pnet/opa/post_configure.sh" + infile="$srcdir/src/mca/pif/linux_ipv6/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components opa" + all_components="$all_components linux_ipv6" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components opa" + dso_components="$dso_components linux_ipv6" else - if test "pnet" = "common"; then + if test "pif" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pnet/opa/lib${PMIX_LIB_PREFIX}mca_pnet_opa.la $static_ltlibs" + static_ltlibs="mca/pif/linux_ipv6/lib${PMIX_LIB_PREFIX}mca_pif_linux_ipv6.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pnet/opa/libmca_pnet_opa.la $static_ltlibs" + static_ltlibs="mca/pif/linux_ipv6/libmca_pif_linux_ipv6.la $static_ltlibs" fi - echo "extern const pmix_mca_base_component_t mca_pnet_opa_component;" >> $outfile.extern - echo " &mca_pnet_opa_component, " >> $outfile.struct - static_components="$static_components opa" + echo "extern const pmix_mca_base_component_t mca_pif_linux_ipv6_component;" >> $outfile.extern + echo " &mca_pif_linux_ipv6_component, " >> $outfile.struct + static_components="$static_components linux_ipv6" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pnet:opa can compile" >&5 -$as_echo_n "checking if MCA component pnet:opa can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:linux_ipv6 can compile" >&5 +$as_echo_n "checking if MCA component pif:linux_ipv6 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pnet" = "opa" ; then + if test "$DIRECT_pif" = "linux_ipv6" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_pnet_DIRECT_CALL_HEADER=$line" + str="MCA_pmix_pif_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pnet component opa was supposed to be direct-called, but +as_fn_error $? "*** pif component linux_ipv6 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -60136,186 +43733,148 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pnet" = "opa" ; then -as_fn_error $? "*** pnet component opa was supposed to be direct-called, but + if test "$DIRECT_pif" = "linux_ipv6" ; then +as_fn_error $? "*** pif component linux_ipv6 was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pnet_opa_WRAPPER_EXTRA_LDFLAGS" = ""; then : - +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:linux_ipv6 can compile" >&5 +$as_echo_n "checking if MCA component pif:linux_ipv6 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + # If this component was requested as the default for this + # type, then abort. + if test "$with_pif" = "linux_ipv6" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux_ipv6\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"linux_ipv6\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + if test ! -z "$DIRECT_pif" ; then + if test "$DIRECT_pif" = "linux_ipv6" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"linux_ipv6\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"linux_ipv6\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # add component to all component list + all_components="$all_components linux_ipv6" +fi - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $pnet_opa_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_pmix_pif_linux_ipv6_DSO=1 else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + BUILD_pmix_pif_linux_ipv6_DSO=0 fi + if test "$BUILD_pmix_pif_linux_ipv6_DSO" = "1"; then + MCA_BUILD_pmix_pif_linux_ipv6_DSO_TRUE= + MCA_BUILD_pmix_pif_linux_ipv6_DSO_FALSE='#' +else + MCA_BUILD_pmix_pif_linux_ipv6_DSO_TRUE='#' + MCA_BUILD_pmix_pif_linux_ipv6_DSO_FALSE= fi - done - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + unset compile_mode -else - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + pmix_show_subsubsubtitle "MCA component pif:posix_ipv4 (m4 configuration macro)" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + component_path="$srcdir/src/mca/pif/posix_ipv4" + want_component=0 + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_pif" ; then + if test "$DIRECT_pif" = "posix_ipv4" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - for arg in $pnet_opa_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_pif" = "1"; then : + want_component=0 fi - done + if test "$DISABLE_pif_posix_ipv4" = "1"; then : + want_component=0 fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi + should_build=0 fi - done + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pif:posix_ipv4 compile mode" >&5 +$as_echo_n "checking for MCA component pif:posix_ipv4 compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + # try to configure the component + ac_config_files="$ac_config_files src/mca/pif/posix_ipv4/Makefile" -fi - if test "$pnet_opa_WRAPPER_EXTRA_LIBS" = ""; then : @@ -60328,7 +43887,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do + for pmix_var in pmix_pif_posix_ipv4_happy; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -60347,255 +43906,363 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_pif_posix_ipv4_happy\"" eval $pmix_str unset pmix_str env | grep pmix_scope pmix_scope_index=`expr $pmix_scope_index + 1` + pmix_pif_posix_ipv4_happy=no + + + + # If we found struct sockaddr and we're NOT on most of the BSDs, + # we're happy. I.e., if posix but not: + #if defined(__NetBSD__) || defined(__FreeBSD__) || \ + # defined(__OpenBSD__) || defined(__DragonFly__) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct sockaddr" >&5 +$as_echo_n "checking struct sockaddr... " >&6; } + if test "$pmix_found_sockaddr" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (cached)" >&5 +$as_echo "yes (cached)" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking not NetBSD, FreeBSD, OpenBSD, or DragonFly" >&5 +$as_echo_n "checking not NetBSD, FreeBSD, OpenBSD, or DragonFly... " >&6; } + if test "$pmix_found_netbsd" = "no" && test "$pmix_found_freebsd" = "no" && test "$pmix_found_openbsd" = "no" && test "$pmix_found_dragonfly" = "no"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + pmix_pif_posix_ipv4_happy=yes +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - for arg in $pnet_opa_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (cached)" >&5 +$as_echo "no (cached)" >&6; } + fi + + if test "$pmix_pif_posix_ipv4_happy" = "yes"; then : + ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_hwaddr" "ac_cv_member_struct_ifreq_ifr_hwaddr" "#include +" +if test "x$ac_cv_member_struct_ifreq_ifr_hwaddr" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IFREQ_IFR_HWADDR 1 +_ACEOF + + fi - done + ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_mtu" "ac_cv_member_struct_ifreq_ifr_mtu" "#include +" +if test "x$ac_cv_member_struct_ifreq_ifr_mtu" = xyes; then : - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IFREQ_IFR_MTU 1 +_ACEOF - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done +fi + +fi + if test "$pmix_pif_posix_ipv4_happy" = "yes"; then : + should_build=$should_build else + should_build=0 +fi; + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1"; then : - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/pif/posix_ipv4/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components posix_ipv4" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components posix_ipv4" + else + if test "pif" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pif/posix_ipv4/lib${PMIX_LIB_PREFIX}mca_pif_posix_ipv4.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pif/posix_ipv4/libmca_pif_posix_ipv4.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_pif_posix_ipv4_component;" >> $outfile.extern + echo " &mca_pif_posix_ipv4_component, " >> $outfile.struct + static_components="$static_components posix_ipv4" fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:posix_ipv4 can compile" >&5 +$as_echo_n "checking if MCA component pif:posix_ipv4 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pif" = "posix_ipv4" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_pif_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pif component posix_ipv4 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pif" = "posix_ipv4" ; then +as_fn_error $? "*** pif component posix_ipv4 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:posix_ipv4 can compile" >&5 +$as_echo_n "checking if MCA component pif:posix_ipv4 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_pif" = "posix_ipv4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"posix_ipv4\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"posix_ipv4\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + if test ! -z "$DIRECT_pif" ; then + if test "$DIRECT_pif" = "posix_ipv4" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"posix_ipv4\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"posix_ipv4\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # add component to all component list + all_components="$all_components posix_ipv4" +fi - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $pnet_opa_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_pmix_pif_posix_ipv4_DSO=1 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + BUILD_pmix_pif_posix_ipv4_DSO=0 fi + if test "$BUILD_pmix_pif_posix_ipv4_DSO" = "1"; then + MCA_BUILD_pmix_pif_posix_ipv4_DSO_TRUE= + MCA_BUILD_pmix_pif_posix_ipv4_DSO_FALSE='#' +else + MCA_BUILD_pmix_pif_posix_ipv4_DSO_TRUE='#' + MCA_BUILD_pmix_pif_posix_ipv4_DSO_FALSE= fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + unset compile_mode - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done -fi - fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pnet_opa_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + pmix_show_subsubsubtitle "MCA component pif:solaris_ipv6 (m4 configuration macro)" + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + component_path="$srcdir/src/mca/pif/solaris_ipv6" + want_component=0 - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_pif" ; then + if test "$DIRECT_pif" = "solaris_ipv6" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - for arg in $pnet_opa_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_pif" = "1"; then : + want_component=0 fi - done + if test "$DISABLE_pif_solaris_ipv6" = "1"; then : + want_component=0 fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi + should_build=0 fi - done + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pif:solaris_ipv6 compile mode" >&5 +$as_echo_n "checking for MCA component pif:solaris_ipv6 compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + # try to configure the component + + ac_config_files="$ac_config_files src/mca/pif/solaris_ipv6/Makefile" -fi + + + # check to see if we are on a solaris machine + if test "$pmix_found_sun" = "yes"; then : + should_build=$should_build else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pnet_opa_WRAPPER_EXTRA_CPPFLAGS ($pnet_opa_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pnet_opa_WRAPPER_EXTRA_CPPFLAGS ($pnet_opa_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi + should_build=0 fi + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/pif/solaris_ipv6/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components solaris_ipv6" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components solaris_ipv6" + else + if test "pif" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pif/solaris_ipv6/lib${PMIX_LIB_PREFIX}mca_pif_solaris_ipv6.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pif/solaris_ipv6/libmca_pif_solaris_ipv6.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_pif_solaris_ipv6_component;" >> $outfile.extern + echo " &mca_pif_solaris_ipv6_component, " >> $outfile.struct + static_components="$static_components solaris_ipv6" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:solaris_ipv6 can compile" >&5 +$as_echo_n "checking if MCA component pif:solaris_ipv6 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pif" = "solaris_ipv6" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_pif_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pif component solaris_ipv6 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pif" = "solaris_ipv6" ; then +as_fn_error $? "*** pif component solaris_ipv6 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pnet:opa can compile" >&5 -$as_echo_n "checking if MCA component pnet:opa can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:solaris_ipv6 can compile" >&5 +$as_echo_n "checking if MCA component pif:solaris_ipv6 can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pnet" = "opa" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"opa\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"opa\" failed to configure properly" >&2;} + if test "$with_pif" = "solaris_ipv6" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"solaris_ipv6\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"solaris_ipv6\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_pnet" ; then - if test "$DIRECT_pnet" = "opa" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"opa\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"opa\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_pif" ; then + if test "$DIRECT_pif" = "solaris_ipv6" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"solaris_ipv6\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"solaris_ipv6\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -60603,23 +44270,23 @@ fi # add component to all component list - all_components="$all_components opa" + all_components="$all_components solaris_ipv6" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso"; then : - BUILD_pmix_pnet_opa_DSO=1 + BUILD_pmix_pif_solaris_ipv6_DSO=1 else - BUILD_pmix_pnet_opa_DSO=0 + BUILD_pmix_pif_solaris_ipv6_DSO=0 fi - if test "$BUILD_pmix_pnet_opa_DSO" = "1"; then - MCA_BUILD_pmix_pnet_opa_DSO_TRUE= - MCA_BUILD_pmix_pnet_opa_DSO_FALSE='#' + if test "$BUILD_pmix_pif_solaris_ipv6_DSO" = "1"; then + MCA_BUILD_pmix_pif_solaris_ipv6_DSO_TRUE= + MCA_BUILD_pmix_pif_solaris_ipv6_DSO_FALSE='#' else - MCA_BUILD_pmix_pnet_opa_DSO_TRUE='#' - MCA_BUILD_pmix_pnet_opa_DSO_FALSE= + MCA_BUILD_pmix_pif_solaris_ipv6_DSO_TRUE='#' + MCA_BUILD_pmix_pif_solaris_ipv6_DSO_FALSE= fi @@ -60643,16 +44310,16 @@ if test "1" != "0"; then : - for component_path in $srcdir/src/mca/pnet/* ; do + for component_path in $srcdir/src/mca/pif/* ; do component="`basename $component_path`" if test -d $component_path && test -x $component_path/configure ; then - pmix_show_subsubsubtitle "MCA component pnet:$component (need to configure)" + pmix_show_subsubsubtitle "MCA component pif:$component (need to configure)" pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/src/mca/pnet/$component" + component_path="$srcdir/src/mca/pif/$component" want_component=0 # build if: @@ -60684,8 +44351,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pnet" ; then - if test "$DIRECT_pnet" = "$component" ; then + if test ! -z "$DIRECT_pif" ; then + if test "$DIRECT_pif" = "$component" ; then want_component=1 else want_component=0 @@ -60694,10 +44361,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_pnet" = "1"; then : + if test "$DISABLE_pif" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_pnet_$component" + str="DISABLED_COMPONENT_CHECK=\$DISABLE_pif_$component" eval $str if test "$DISABLED_COMPONENT_CHECK" = "1" ; then want_component=0 @@ -60710,12 +44377,12 @@ fi - SHARED_FRAMEWORK="$DSO_pnet" - str="SHARED_COMPONENT=\$DSO_pnet_$component" + SHARED_FRAMEWORK="$DSO_pif" + str="SHARED_COMPONENT=\$DSO_pif_$component" eval $str - STATIC_FRAMEWORK="$STATIC_pnet" - str="STATIC_COMPONENT=\$STATIC_pnet_$component" + STATIC_FRAMEWORK="$STATIC_pif" + str="STATIC_COMPONENT=\$STATIC_pif_$component" eval $str shared_mode_override=static @@ -60734,9 +44401,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pnet:$component compile mode" >&5 -$as_echo_n "checking for MCA component pnet:$component compile mode... " >&6; } - if test "$DIRECT_pnet" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pif:$component compile mode" >&5 +$as_echo_n "checking for MCA component pif:$component compile mode... " >&6; } + if test "$DIRECT_pif" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -60789,12 +44456,12 @@ # # Invoke configure in a specific subdirectory. # -# src/mca/pnet/$component is the directory to invoke in +# src/mca/pif/$component is the directory to invoke in # $pmix_subdir_args is the list of arguments to pass # should_build=1 is actions to execute upon success # should_build=0 is actions to execute upon failure # -subdir_dir="src/mca/pnet/$component" +subdir_dir="src/mca/pif/$component" subdir_args="$pmix_subdir_args" subdir_success="should_build=1" subdir_failure="should_build=0" @@ -60938,7 +44605,7 @@ # do some extra work to pass flags back from the # top-level configure, the way a configure.m4 # component would. - infile="$srcdir/src/mca/pnet/all_components/post_configure.sh" + infile="$srcdir/src/mca/pif/all_components/post_configure.sh" if test -f $infile; then # First check for the ABORT tag @@ -60948,25 +44615,14 @@ $as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} as_fn_error $? "cannot continue" "$LINENO" 5 fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + fi # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/src/mca/pnet/$component/post_configure.sh" + infile="$srcdir/src/mca/pif/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs all_components="$all_components $component" @@ -60974,37 +44630,37 @@ if test "$compile_mode" = "dso" ; then dso_components="$dso_components $component" else - if test "pnet" = "common"; then + if test "pif" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/pnet/$component/lib${PMIX_LIB_PREFIX}mca_pnet_$component.la $static_ltlibs" + static_ltlibs="mca/pif/$component/lib${PMIX_LIB_PREFIX}mca_pif_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pnet/$component/libmca_pnet_$component.la $static_ltlibs" + static_ltlibs="mca/pif/$component/libmca_pif_$component.la $static_ltlibs" fi - echo "extern const pmix_mca_base_component_t mca_pnet_$component_component;" >> $outfile.extern - echo " &mca_pnet_$component_component, " >> $outfile.struct + echo "extern const pmix_mca_base_component_t mca_pif_$component_component;" >> $outfile.extern + echo " &mca_pif_$component_component, " >> $outfile.struct static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pnet:$component can compile" >&5 -$as_echo_n "checking if MCA component pnet:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:$component can compile" >&5 +$as_echo_n "checking if MCA component pif:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_pnet" = "$component" ; then + if test "$DIRECT_pif" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_pnet_DIRECT_CALL_HEADER=$line" + str="MCA_pmix_pif_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** pnet component $component was supposed to be direct-called, but +as_fn_error $? "*** pif component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -61012,202 +44668,23 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pnet" = "$component" ; then -as_fn_error $? "*** pnet component $component was supposed to be direct-called, but + if test "$DIRECT_pif" = "$component" ; then +as_fn_error $? "*** pif component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$pnet_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - -str="line=\$pnet_$component_WRAPPER_EXTRA_LIBS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pnet:$component can compile" >&5 -$as_echo_n "checking if MCA component pnet:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pif:$component can compile" >&5 +$as_echo_n "checking if MCA component pif:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_pnet" = "$component" ; then + if test "$with_pif" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 @@ -61215,8 +44692,8 @@ as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_pnet" ; then - if test "$DIRECT_pnet" = "$component" ; then + if test ! -z "$DIRECT_pif" ; then + if test "$DIRECT_pif" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 $as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 @@ -61231,10 +44708,10 @@ fi - MCA_pmix_pnet_ALL_COMPONENTS="$all_components" - MCA_pmix_pnet_STATIC_COMPONENTS="$static_components" - MCA_pmix_pnet_DSO_COMPONENTS="$dso_components" - MCA_pmix_pnet_STATIC_LTLIBS="$static_ltlibs" + MCA_pmix_pif_ALL_COMPONENTS="$all_components" + MCA_pmix_pif_STATIC_COMPONENTS="$static_components" + MCA_pmix_pif_DSO_COMPONENTS="$dso_components" + MCA_pmix_pif_STATIC_LTLIBS="$static_ltlibs" @@ -61242,23 +44719,23 @@ - MCA_pmix_pnet_ALL_SUBDIRS= + MCA_pmix_pif_ALL_SUBDIRS= for item in $all_components ; do - MCA_pmix_pnet_ALL_SUBDIRS="$MCA_pmix_pnet_ALL_SUBDIRS mca/pnet/$item" + MCA_pmix_pif_ALL_SUBDIRS="$MCA_pmix_pif_ALL_SUBDIRS mca/pif/$item" done - MCA_pmix_pnet_STATIC_SUBDIRS= + MCA_pmix_pif_STATIC_SUBDIRS= for item in $static_components ; do - MCA_pmix_pnet_STATIC_SUBDIRS="$MCA_pmix_pnet_STATIC_SUBDIRS mca/pnet/$item" + MCA_pmix_pif_STATIC_SUBDIRS="$MCA_pmix_pif_STATIC_SUBDIRS mca/pif/$item" done - MCA_pmix_pnet_DSO_SUBDIRS= + MCA_pmix_pif_DSO_SUBDIRS= for item in $dso_components ; do - MCA_pmix_pnet_DSO_SUBDIRS="$MCA_pmix_pnet_DSO_SUBDIRS mca/pnet/$item" + MCA_pmix_pif_DSO_SUBDIRS="$MCA_pmix_pif_DSO_SUBDIRS mca/pif/$item" done @@ -61266,7 +44743,7 @@ # Create the final .h file that will be included in the type's # top-level glue. This lists all the static components. We don't # need to do this for "common". - if test "pnet" != "common"; then + if test "pif" != "common"; then cat > $outfile <&5 -$as_echo_n "checking for no configure components in framework preg... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: native" >&5 -$as_echo "native" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework preg" >&5 -$as_echo_n "checking for m4 configure components in framework preg... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework pinstalldirs" >&5 +$as_echo_n "checking for no configure components in framework pinstalldirs... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework pinstalldirs" >&5 +$as_echo_n "checking for m4 configure components in framework pinstalldirs... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: config, env" >&5 +$as_echo "config, env" >&6; } # If there are components in the no configure list, but we're # doing one of the "special" selection logics, abort with a @@ -61357,13 +44834,26 @@ # run the configure logic for the no-config components - pmix_show_subsubsubtitle "MCA component preg:native (no configuration)" - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + # configure components that use built-in configuration scripts - component_path="$srcdir/src/mca/preg/native" + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + pmix_show_subsubsubtitle "MCA component pinstalldirs:env (m4 configuration macro, priority 10)" + + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + + + + component_path="$srcdir/src/mca/pinstalldirs/env" want_component=0 # build if: @@ -61395,8 +44885,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_preg" ; then - if test "$DIRECT_preg" = "native" ; then + if test ! -z "$DIRECT_pinstalldirs" ; then + if test "$DIRECT_pinstalldirs" = "env" ; then want_component=1 else want_component=0 @@ -61405,99 +44895,81 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_preg" = "1"; then : + if test "$DISABLE_pinstalldirs" = "1"; then : want_component=0 fi - if test "$DISABLE_preg_native" = "1"; then : + if test "$DISABLE_pinstalldirs_env" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_preg" - SHARED_COMPONENT="$DSO_preg_native" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pinstalldirs:env compile mode" >&5 +$as_echo_n "checking for MCA component pinstalldirs:env compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } - STATIC_FRAMEWORK="$STATIC_preg" - STATIC_COMPONENT="$STATIC_preg_native" - shared_mode_override=static + # try to configure the component - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi + ac_config_files="$ac_config_files src/mca/pinstalldirs/env/Makefile" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component preg:native compile mode" >&5 -$as_echo_n "checking for MCA component preg:native compile mode... " >&6; } - if test "$DIRECT_preg" = "native" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + if test "$should_build" = "1"; then : # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/src/mca/preg/native/post_configure.sh" + infile="$srcdir/src/mca/pinstalldirs/env/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components native" + all_components="$all_components env" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components native" + dso_components="$dso_components env" else - if test "preg" = "common"; then + if test "pinstalldirs" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/preg/native/lib${PMIX_LIB_PREFIX}mca_preg_native.la $static_ltlibs" + static_ltlibs="mca/pinstalldirs/env/lib${PMIX_LIB_PREFIX}mca_pinstalldirs_env.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/preg/native/libmca_preg_native.la $static_ltlibs" + static_ltlibs="mca/pinstalldirs/env/libmca_pinstalldirs_env.la $static_ltlibs" fi - echo "extern const pmix_mca_base_component_t mca_preg_native_component;" >> $outfile.extern - echo " &mca_preg_native_component, " >> $outfile.struct - static_components="$static_components native" + echo "extern const pmix_mca_base_component_t mca_pinstalldirs_env_component;" >> $outfile.extern + echo " &mca_pinstalldirs_env_component, " >> $outfile.struct + static_components="$static_components env" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component preg:native can compile" >&5 -$as_echo_n "checking if MCA component preg:native can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pinstalldirs:env can compile" >&5 +$as_echo_n "checking if MCA component pinstalldirs:env can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_preg" = "native" ; then + if test "$DIRECT_pinstalldirs" = "env" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_preg_DIRECT_CALL_HEADER=$line" + str="MCA_pmix_pinstalldirs_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** preg component native was supposed to be direct-called, but +as_fn_error $? "*** pinstalldirs component env was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -61505,524 +44977,408 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_preg" = "native" ; then -as_fn_error $? "*** preg component native was supposed to be direct-called, but + if test "$DIRECT_pinstalldirs" = "env" ; then +as_fn_error $? "*** pinstalldirs component env was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$preg_native_WRAPPER_EXTRA_LDFLAGS" = ""; then : - +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pinstalldirs:env can compile" >&5 +$as_echo_n "checking if MCA component pinstalldirs:env can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + # If this component was requested as the default for this + # type, then abort. + if test "$with_pinstalldirs" = "env" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"env\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"env\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + if test ! -z "$DIRECT_pinstalldirs" ; then + if test "$DIRECT_pinstalldirs" = "env" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"env\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"env\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # add component to all component list + all_components="$all_components env" +fi - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $preg_native_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_pmix_pinstalldirs_env_DSO=1 else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + BUILD_pmix_pinstalldirs_env_DSO=0 fi + if test "$BUILD_pmix_pinstalldirs_env_DSO" = "1"; then + MCA_BUILD_pmix_pinstalldirs_env_DSO_TRUE= + MCA_BUILD_pmix_pinstalldirs_env_DSO_FALSE='#' +else + MCA_BUILD_pmix_pinstalldirs_env_DSO_TRUE='#' + MCA_BUILD_pmix_pinstalldirs_env_DSO_FALSE= fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + unset compile_mode -else - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + pmix_show_subsubsubtitle "MCA component pinstalldirs:config (m4 configuration macro, priority 0)" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + component_path="$srcdir/src/mca/pinstalldirs/config" + want_component=0 + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_pinstalldirs" ; then + if test "$DIRECT_pinstalldirs" = "config" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - for arg in $preg_native_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_pinstalldirs" = "1"; then : + want_component=0 fi - done + if test "$DISABLE_pinstalldirs_config" = "1"; then : + want_component=0 fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi + should_build=0 fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE -fi - if test "$preg_native_WRAPPER_EXTRA_LIBS" = ""; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pinstalldirs:config compile mode" >&5 +$as_echo_n "checking for MCA component pinstalldirs:config compile mode... " >&6; } + compile_mode="static" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + # try to configure the component - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + ac_config_files="$ac_config_files src/mca/pinstalldirs/config/Makefile src/mca/pinstalldirs/config/pinstall_dirs.h" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + if test "$should_build" = "1"; then : - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $preg_native_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/pinstalldirs/config/post_configure.sh" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components config" - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components config" + else + if test "pinstalldirs" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pinstalldirs/config/lib${PMIX_LIB_PREFIX}mca_pinstalldirs_config.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pinstalldirs/config/libmca_pinstalldirs_config.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_pinstalldirs_config_component;" >> $outfile.extern + echo " &mca_pinstalldirs_config_component, " >> $outfile.struct + static_components="$static_components config" fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pinstalldirs:config can compile" >&5 +$as_echo_n "checking if MCA component pinstalldirs:config can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pinstalldirs" = "config" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_pinstalldirs_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pinstalldirs component config was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pinstalldirs" = "config" ; then +as_fn_error $? "*** pinstalldirs component config was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pinstalldirs:config can compile" >&5 +$as_echo_n "checking if MCA component pinstalldirs:config can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + # If this component was requested as the default for this + # type, then abort. + if test "$with_pinstalldirs" = "config" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"config\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"config\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + + if test ! -z "$DIRECT_pinstalldirs" ; then + if test "$DIRECT_pinstalldirs" = "config" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"config\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"config\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # add component to all component list + all_components="$all_components config" +fi - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $preg_native_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_pmix_pinstalldirs_config_DSO=1 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + BUILD_pmix_pinstalldirs_config_DSO=0 fi + if test "$BUILD_pmix_pinstalldirs_config_DSO" = "1"; then + MCA_BUILD_pmix_pinstalldirs_config_DSO_TRUE= + MCA_BUILD_pmix_pinstalldirs_config_DSO_FALSE='#' +else + MCA_BUILD_pmix_pinstalldirs_config_DSO_TRUE='#' + MCA_BUILD_pmix_pinstalldirs_config_DSO_FALSE= fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + unset compile_mode - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done -fi - fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$preg_native_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + MCA_pmix_pinstalldirs_ALL_COMPONENTS="$all_components" + MCA_pmix_pinstalldirs_STATIC_COMPONENTS="$static_components" + MCA_pmix_pinstalldirs_DSO_COMPONENTS="$dso_components" + MCA_pmix_pinstalldirs_STATIC_LTLIBS="$static_ltlibs" - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $preg_native_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi + MCA_pmix_pinstalldirs_ALL_SUBDIRS= + for item in $all_components ; do + MCA_pmix_pinstalldirs_ALL_SUBDIRS="$MCA_pmix_pinstalldirs_ALL_SUBDIRS mca/pinstalldirs/$item" done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + MCA_pmix_pinstalldirs_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_pmix_pinstalldirs_STATIC_SUBDIRS="$MCA_pmix_pinstalldirs_STATIC_SUBDIRS mca/pinstalldirs/$item" + done - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var + + + MCA_pmix_pinstalldirs_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_pmix_pinstalldirs_DSO_SUBDIRS="$MCA_pmix_pinstalldirs_DSO_SUBDIRS mca/pinstalldirs/$item" done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring preg_native_WRAPPER_EXTRA_CPPFLAGS ($preg_native_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring preg_native_WRAPPER_EXTRA_CPPFLAGS ($preg_native_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - else + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "pinstalldirs" != "common"; then + cat > $outfile <&5 -$as_echo_n "checking if MCA component preg:native can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +`cat $outfile.extern` - # If this component was requested as the default for this - # type, then abort. - if test "$with_preg" = "native" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"native\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"native\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +const pmix_mca_base_component_t *mca_pinstalldirs_base_static_components[] = { +`cat $outfile.struct` + NULL +}; - if test ! -z "$DIRECT_preg" ; then - if test "$DIRECT_preg" = "native" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"native\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"native\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 +#if defined(c_plusplus) || defined(__cplusplus) +} +#endif + +EOF + # Only replace the header file if a) it doesn't previously + # exist, or b) the contents are different. Do this to not + # trigger recompilation of certain .c files just because the + # timestamp changed on $outfile_real (similar to the way AC + # handles AC_CONFIG_HEADER files). + diff $outfile $outfile_real > /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile fi fi + rm -f $outfile.struct $outfile.extern - # add component to all component list - all_components="$all_components native" - fi + unset all_components static_components dso_components outfile outfile_real - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_pmix_preg_native_DSO=1 - else - BUILD_pmix_preg_native_DSO=0 - fi - if test "$BUILD_pmix_preg_native_DSO" = "1"; then - MCA_BUILD_pmix_preg_native_DSO_TRUE= - MCA_BUILD_pmix_preg_native_DSO_FALSE='#' -else - MCA_BUILD_pmix_preg_native_DSO_TRUE='#' - MCA_BUILD_pmix_preg_native_DSO_FALSE= -fi + MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS plog" + MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/plog" + MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_plog_ALL_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_plog_DSO_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_plog_STATIC_SUBDIRS)" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/plog/libmca_plog.la" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_plog_STATIC_LTLIBS)" + pmix_show_subsubtitle "Configuring MCA framework plog" - ac_config_files="$ac_config_files src/mca/preg/native/Makefile" - unset compile_mode + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= - # configure components that use built-in configuration scripts + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=src/mca/plog/base + as_dir=$outdir; as_fn_mkdir_p + # emit Makefile rule + ac_config_files="$ac_config_files src/mca/plog/Makefile" - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework plog" >&5 +$as_echo_n "checking for no configure components in framework plog... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: default, stdfd" >&5 +$as_echo "default, stdfd" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework plog" >&5 +$as_echo_n "checking for m4 configure components in framework plog... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: syslog" >&5 +$as_echo "syslog" >&6; } - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - if test "1" != "0"; then : + # run the configure logic for the no-config components - for component_path in $srcdir/src/mca/preg/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - pmix_show_subsubsubtitle "MCA component preg:$component (need to configure)" + pmix_show_subsubsubtitle "MCA component plog:default (no configuration)" - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/src/mca/preg/$component" + component_path="$srcdir/src/mca/plog/default" want_component=0 # build if: @@ -62054,8 +45410,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_preg" ; then - if test "$DIRECT_preg" = "$component" ; then + if test ! -z "$DIRECT_plog" ; then + if test "$DIRECT_plog" = "default" ; then want_component=1 else want_component=0 @@ -62064,14 +45420,12 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_preg" = "1"; then : + if test "$DISABLE_plog" = "1"; then : + want_component=0 +fi + if test "$DISABLE_plog_default" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_preg_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi if test "$want_component" = "1"; then : should_build=1 @@ -62080,301 +45434,85 @@ fi - SHARED_FRAMEWORK="$DSO_preg" - str="SHARED_COMPONENT=\$DSO_preg_$component" - eval $str - - STATIC_FRAMEWORK="$STATIC_preg" - str="STATIC_COMPONENT=\$STATIC_preg_$component" - eval $str - - shared_mode_override=static - - # Setup for either shared or static - if test "$STATIC_FRAMEWORK" = "1" || \ - test "$STATIC_COMPONENT" = "1" || \ - test "$STATIC_all" = "1" ; then - compile_mode="static" - elif test "$shared_mode_override" = "dso" || \ - test "$SHARED_FRAMEWORK" = "1" || \ - test "$SHARED_COMPONENT" = "1" || \ - test "$DSO_all" = "1"; then - compile_mode="dso" - else - compile_mode="static" - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component preg:$component compile mode" >&5 -$as_echo_n "checking for MCA component preg:$component compile mode... " >&6; } - if test "$DIRECT_preg" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - -# -# Invoke configure in a specific subdirectory. -# -# src/mca/preg/$component is the directory to invoke in -# $pmix_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="src/mca/preg/$component" -subdir_args="$pmix_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 -$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - - # - # Construct the --cache-file argument - # - - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - - # - # Invoke the configure script in the subdirectory - # - - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi - - # - # Go back to the topdir - # - - cd $subdir_parent -fi - -# -# Clean up -# - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + SHARED_FRAMEWORK="$DSO_plog" + SHARED_COMPONENT="$DSO_plog_default" - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + STATIC_FRAMEWORK="$STATIC_plog" + STATIC_COMPONENT="$STATIC_plog_default" - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi + shared_mode_override=static - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/src/mca/preg/all_components/post_configure.sh" - if test -f $infile; then + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plog:default compile mode" >&5 +$as_echo_n "checking for MCA component plog:default compile mode... " >&6; } + if test "$DIRECT_plog" = "default" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/src/mca/preg/$component/post_configure.sh" + infile="$srcdir/src/mca/plog/default/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + all_components="$all_components default" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" + dso_components="$dso_components default" else - if test "preg" = "common"; then + if test "plog" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/preg/$component/lib${PMIX_LIB_PREFIX}mca_preg_$component.la $static_ltlibs" + static_ltlibs="mca/plog/default/lib${PMIX_LIB_PREFIX}mca_plog_default.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/preg/$component/libmca_preg_$component.la $static_ltlibs" + static_ltlibs="mca/plog/default/libmca_plog_default.la $static_ltlibs" fi - echo "extern const pmix_mca_base_component_t mca_preg_$component_component;" >> $outfile.extern - echo " &mca_preg_$component_component, " >> $outfile.struct - static_components="$static_components $component" + echo "extern const pmix_mca_base_component_t mca_plog_default_component;" >> $outfile.extern + echo " &mca_plog_default_component, " >> $outfile.struct + static_components="$static_components default" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component preg:$component can compile" >&5 -$as_echo_n "checking if MCA component preg:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plog:default can compile" >&5 +$as_echo_n "checking if MCA component plog:default can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_preg" = "$component" ; then + if test "$DIRECT_plog" = "default" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_preg_DIRECT_CALL_HEADER=$line" + str="MCA_pmix_plog_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** preg component $component was supposed to be direct-called, but +as_fn_error $? "*** plog component default was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -62382,358 +45520,287 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_preg" = "$component" ; then -as_fn_error $? "*** preg component $component was supposed to be direct-called, but + if test "$DIRECT_plog" = "default" ; then +as_fn_error $? "*** plog component default was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$preg_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" - + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plog:default can compile" >&5 +$as_echo_n "checking if MCA component plog:default can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + # If this component was requested as the default for this + # type, then abort. + if test "$with_plog" = "default" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"default\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + if test ! -z "$DIRECT_plog" ; then + if test "$DIRECT_plog" = "default" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"default\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"default\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + fi + # add component to all component list + all_components="$all_components default" + fi - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_pmix_plog_default_DSO=1 + else + BUILD_pmix_plog_default_DSO=0 + fi + if test "$BUILD_pmix_plog_default_DSO" = "1"; then + MCA_BUILD_pmix_plog_default_DSO_TRUE= + MCA_BUILD_pmix_plog_default_DSO_FALSE='#' else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi + MCA_BUILD_pmix_plog_default_DSO_TRUE='#' + MCA_BUILD_pmix_plog_default_DSO_FALSE= fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + ac_config_files="$ac_config_files src/mca/plog/default/Makefile" - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + unset compile_mode -str="line=\$preg_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + pmix_show_subsubsubtitle "MCA component plog:stdfd (no configuration)" + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + component_path="$srcdir/src/mca/plog/stdfd" + want_component=0 - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_plog" ; then + if test "$DIRECT_plog" = "stdfd" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_plog" = "1"; then : + want_component=0 fi - done + if test "$DISABLE_plog_stdfd" = "1"; then : + want_component=0 fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + if test "$want_component" = "1"; then : + should_build=1 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi + should_build=0 fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + SHARED_FRAMEWORK="$DSO_plog" + SHARED_COMPONENT="$DSO_plog_stdfd" - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + STATIC_FRAMEWORK="$STATIC_plog" + STATIC_COMPONENT="$STATIC_plog_stdfd" - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + shared_mode_override=static + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plog:stdfd compile mode" >&5 +$as_echo_n "checking for MCA component plog:stdfd compile mode... " >&6; } + if test "$DIRECT_plog" = "stdfd" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/plog/stdfd/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components stdfd" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components stdfd" + else + if test "plog" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/plog/stdfd/lib${PMIX_LIB_PREFIX}mca_plog_stdfd.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/plog/stdfd/libmca_plog_stdfd.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_plog_stdfd_component;" >> $outfile.extern + echo " &mca_plog_stdfd_component, " >> $outfile.struct + static_components="$static_components stdfd" + fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plog:stdfd can compile" >&5 +$as_echo_n "checking if MCA component plog:stdfd can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_plog" = "stdfd" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_plog_DIRECT_CALL_HEADER=$line" + eval $str else +as_fn_error $? "*** plog component stdfd was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_plog" = "stdfd" ; then +as_fn_error $? "*** plog component stdfd was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component preg:$component can compile" >&5 -$as_echo_n "checking if MCA component preg:$component can compile... " >&6; } + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plog:stdfd can compile" >&5 +$as_echo_n "checking if MCA component plog:stdfd can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_preg" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + if test "$with_plog" = "stdfd" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"stdfd\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"stdfd\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_preg" ; then - if test "$DIRECT_preg" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_plog" ; then + if test "$DIRECT_plog" = "stdfd" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"stdfd\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"stdfd\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - fi - fi - done - -fi - - MCA_pmix_preg_ALL_COMPONENTS="$all_components" - MCA_pmix_preg_STATIC_COMPONENTS="$static_components" - MCA_pmix_preg_DSO_COMPONENTS="$dso_components" - MCA_pmix_preg_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_pmix_preg_ALL_SUBDIRS= - for item in $all_components ; do - MCA_pmix_preg_ALL_SUBDIRS="$MCA_pmix_preg_ALL_SUBDIRS mca/preg/$item" - done - - - - MCA_pmix_preg_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_pmix_preg_STATIC_SUBDIRS="$MCA_pmix_preg_STATIC_SUBDIRS mca/preg/$item" - done - - - - MCA_pmix_preg_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_pmix_preg_DSO_SUBDIRS="$MCA_pmix_preg_DSO_SUBDIRS mca/preg/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "preg" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi + # add component to all component list + all_components="$all_components stdfd" fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS psec" - MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/psec" - MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_psec_ALL_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_psec_DSO_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_psec_STATIC_SUBDIRS)" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/psec/libmca_psec.la" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_psec_STATIC_LTLIBS)" - - pmix_show_subsubtitle "Configuring MCA framework psec" - - + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_pmix_plog_stdfd_DSO=1 + else + BUILD_pmix_plog_stdfd_DSO=0 + fi + if test "$BUILD_pmix_plog_stdfd_DSO" = "1"; then + MCA_BUILD_pmix_plog_stdfd_DSO_TRUE= + MCA_BUILD_pmix_plog_stdfd_DSO_FALSE='#' +else + MCA_BUILD_pmix_plog_stdfd_DSO_TRUE='#' + MCA_BUILD_pmix_plog_stdfd_DSO_FALSE= +fi - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=src/mca/psec/base - as_dir=$outdir; as_fn_mkdir_p + ac_config_files="$ac_config_files src/mca/plog/stdfd/Makefile" - # emit Makefile rule - ac_config_files="$ac_config_files src/mca/psec/Makefile" + unset compile_mode - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework psec" >&5 -$as_echo_n "checking for no configure components in framework psec... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: dummy_handshake, native, none" >&5 -$as_echo "dummy_handshake, native, none" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework psec" >&5 -$as_echo_n "checking for m4 configure components in framework psec... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: munge" >&5 -$as_echo "munge" >&6; } + # configure components that use built-in configuration scripts - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - # run the configure logic for the no-config components - pmix_show_subsubsubtitle "MCA component psec:dummy_handshake (no configuration)" + pmix_show_subsubsubtitle "MCA component plog:syslog (m4 configuration macro)" - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - component_path="$srcdir/src/mca/psec/dummy_handshake" + component_path="$srcdir/src/mca/plog/syslog" want_component=0 # build if: @@ -62765,8 +45832,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_psec" ; then - if test "$DIRECT_psec" = "dummy_handshake" ; then + if test ! -z "$DIRECT_plog" ; then + if test "$DIRECT_plog" = "syslog" ; then want_component=1 else want_component=0 @@ -62775,25 +45842,27 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_psec" = "1"; then : + if test "$DISABLE_plog" = "1"; then : want_component=0 fi - if test "$DISABLE_psec_dummy_handshake" = "1"; then : + if test "$DISABLE_plog_syslog" = "1"; then : want_component=0 fi if test "$want_component" = "1"; then : - should_build=1 + should_build=$components_looking_for_succeed else should_build=0 fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_psec" - SHARED_COMPONENT="$DSO_psec_dummy_handshake" + SHARED_FRAMEWORK="$DSO_plog" + SHARED_COMPONENT="$DSO_plog_syslog" - STATIC_FRAMEWORK="$STATIC_psec" - STATIC_COMPONENT="$STATIC_psec_dummy_handshake" + STATIC_FRAMEWORK="$STATIC_plog" + STATIC_COMPONENT="$STATIC_plog_syslog" shared_mode_override=static @@ -62811,9 +45880,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psec:dummy_handshake compile mode" >&5 -$as_echo_n "checking for MCA component psec:dummy_handshake compile mode... " >&6; } - if test "$DIRECT_psec" = "dummy_handshake" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plog:syslog compile mode" >&5 +$as_echo_n "checking for MCA component plog:syslog compile mode... " >&6; } + if test "$DIRECT_plog" = "syslog" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -62821,77 +45890,11 @@ $as_echo "$compile_mode" >&6; } fi - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/psec/dummy_handshake/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components dummy_handshake" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components dummy_handshake" - else - if test "psec" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/psec/dummy_handshake/lib${PMIX_LIB_PREFIX}mca_psec_dummy_handshake.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/psec/dummy_handshake/libmca_psec_dummy_handshake.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_psec_dummy_handshake_component;" >> $outfile.extern - echo " &mca_psec_dummy_handshake_component, " >> $outfile.struct - static_components="$static_components dummy_handshake" - fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:dummy_handshake can compile" >&5 -$as_echo_n "checking if MCA component psec:dummy_handshake can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + # try to configure the component - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_psec" = "dummy_handshake" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_psec_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** psec component dummy_handshake was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_psec" = "dummy_handshake" ; then -as_fn_error $? "*** psec component dummy_handshake was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + ac_config_files="$ac_config_files src/mca/plog/syslog/Makefile" - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$psec_dummy_handshake_WRAPPER_EXTRA_LDFLAGS" = ""; then : @@ -62904,7 +45907,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do + for pmix_var in pmix_plog_syslog_happy; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -62923,7 +45926,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + pmix_str="pmix_scope_$pmix_scope_index=\"pmix_plog_syslog_happy\"" eval $pmix_str unset pmix_str @@ -62931,105 +45934,22 @@ pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $psec_dummy_handshake_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + # if syslog.h is not compilable, + # disable this component. + ac_fn_c_check_header_mongrel "$LINENO" "syslog.h" "ac_cv_header_syslog_h" "$ac_includes_default" +if test "x$ac_cv_header_syslog_h" = xyes; then : + pmix_plog_syslog_happy=1 else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi + pmix_plog_syslog_happy=0 fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $psec_dummy_handshake_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test $pmix_plog_syslog_happy -eq 1; then : + should_build=$should_build else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi + should_build=0 fi - done # Unwind the index @@ -63053,325 +45973,145 @@ done -fi - if test "$psec_dummy_handshake_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $psec_dummy_handshake_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" -else + if test "$should_build" = "1"; then : - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/plog/syslog/post_configure.sh" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components syslog" - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components syslog" + else + if test "plog" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/plog/syslog/lib${PMIX_LIB_PREFIX}mca_plog_syslog.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/plog/syslog/libmca_plog_syslog.la $static_ltlibs" fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $psec_dummy_handshake_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$psec_dummy_handshake_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + echo "extern const pmix_mca_base_component_t mca_plog_syslog_component;" >> $outfile.extern + echo " &mca_plog_syslog_component, " >> $outfile.struct + static_components="$static_components syslog" fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plog:syslog can compile" >&5 +$as_echo_n "checking if MCA component plog:syslog can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_plog" = "syslog" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_plog_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** plog component syslog was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_plog" = "syslog" ; then +as_fn_error $? "*** plog component syslog was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $psec_dummy_handshake_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring psec_dummy_handshake_WRAPPER_EXTRA_CPPFLAGS ($psec_dummy_handshake_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring psec_dummy_handshake_WRAPPER_EXTRA_CPPFLAGS ($psec_dummy_handshake_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:dummy_handshake can compile" >&5 -$as_echo_n "checking if MCA component psec:dummy_handshake can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plog:syslog can compile" >&5 +$as_echo_n "checking if MCA component plog:syslog can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_psec" = "dummy_handshake" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dummy_handshake\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"dummy_handshake\" failed to configure properly" >&2;} + if test "$with_plog" = "syslog" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"syslog\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"syslog\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_psec" ; then - if test "$DIRECT_psec" = "dummy_handshake" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dummy_handshake\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"dummy_handshake\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_plog" ; then + if test "$DIRECT_plog" = "syslog" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"syslog\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"syslog\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components dummy_handshake" - fi + # add component to all component list + all_components="$all_components syslog" +fi + + # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_pmix_psec_dummy_handshake_DSO=1 - else - BUILD_pmix_psec_dummy_handshake_DSO=0 - fi - if test "$BUILD_pmix_psec_dummy_handshake_DSO" = "1"; then - MCA_BUILD_pmix_psec_dummy_handshake_DSO_TRUE= - MCA_BUILD_pmix_psec_dummy_handshake_DSO_FALSE='#' + if test "$compile_mode" = "dso"; then : + BUILD_pmix_plog_syslog_DSO=1 else - MCA_BUILD_pmix_psec_dummy_handshake_DSO_TRUE='#' - MCA_BUILD_pmix_psec_dummy_handshake_DSO_FALSE= + BUILD_pmix_plog_syslog_DSO=0 +fi + if test "$BUILD_pmix_plog_syslog_DSO" = "1"; then + MCA_BUILD_pmix_plog_syslog_DSO_TRUE= + MCA_BUILD_pmix_plog_syslog_DSO_FALSE='#' +else + MCA_BUILD_pmix_plog_syslog_DSO_TRUE='#' + MCA_BUILD_pmix_plog_syslog_DSO_FALSE= +fi + + + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 fi + unset compile_mode - ac_config_files="$ac_config_files src/mca/psec/dummy_handshake/Makefile" - unset compile_mode - pmix_show_subsubsubtitle "MCA component psec:native (no configuration)" - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - component_path="$srcdir/src/mca/psec/native" + if test "1" != "0"; then : + + for component_path in $srcdir/src/mca/plog/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + pmix_show_subsubsubtitle "MCA component plog:$component (need to configure)" + + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/src/mca/plog/$component" want_component=0 # build if: @@ -63403,8 +46143,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_psec" ; then - if test "$DIRECT_psec" = "native" ; then + if test ! -z "$DIRECT_plog" ; then + if test "$DIRECT_plog" = "$component" ; then want_component=1 else want_component=0 @@ -63413,12 +46153,14 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_psec" = "1"; then : - want_component=0 -fi - if test "$DISABLE_psec_native" = "1"; then : + if test "$DISABLE_plog" = "1"; then : want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_plog_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : should_build=1 @@ -63427,11 +46169,13 @@ fi - SHARED_FRAMEWORK="$DSO_psec" - SHARED_COMPONENT="$DSO_psec_native" + SHARED_FRAMEWORK="$DSO_plog" + str="SHARED_COMPONENT=\$DSO_plog_$component" + eval $str - STATIC_FRAMEWORK="$STATIC_psec" - STATIC_COMPONENT="$STATIC_psec_native" + STATIC_FRAMEWORK="$STATIC_plog" + str="STATIC_COMPONENT=\$STATIC_plog_$component" + eval $str shared_mode_override=static @@ -63449,9 +46193,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psec:native compile mode" >&5 -$as_echo_n "checking for MCA component psec:native compile mode... " >&6; } - if test "$DIRECT_psec" = "native" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component plog:$component compile mode" >&5 +$as_echo_n "checking for MCA component plog:$component compile mode... " >&6; } + if test "$DIRECT_plog" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -63459,53 +46203,256 @@ $as_echo "$compile_mode" >&6; } fi - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # Is the private index set? If not, set it. + if test "x$pmix_scope_index" = "x"; then + pmix_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do + pmix_str="pmix_str=\"\$$pmix_var\"" + eval $pmix_str + + if test "x$pmix_str" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 +$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 +$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" + eval $pmix_str + unset pmix_str + + env | grep pmix_scope + pmix_scope_index=`expr $pmix_scope_index + 1` + + +# +# Invoke configure in a specific subdirectory. +# +# src/mca/plog/$component is the directory to invoke in +# $pmix_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="src/mca/plog/$component" +subdir_args="$pmix_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 +$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# + + + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str + + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done + + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi + + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/src/mca/plog/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + fi - if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/src/mca/psec/native/post_configure.sh" + infile="$srcdir/src/mca/plog/$component/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components native" + all_components="$all_components $component" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components native" + dso_components="$dso_components $component" else - if test "psec" = "common"; then + if test "plog" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/psec/native/lib${PMIX_LIB_PREFIX}mca_psec_native.la $static_ltlibs" + static_ltlibs="mca/plog/$component/lib${PMIX_LIB_PREFIX}mca_plog_$component.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/psec/native/libmca_psec_native.la $static_ltlibs" + static_ltlibs="mca/plog/$component/libmca_plog_$component.la $static_ltlibs" fi - echo "extern const pmix_mca_base_component_t mca_psec_native_component;" >> $outfile.extern - echo " &mca_psec_native_component, " >> $outfile.struct - static_components="$static_components native" + echo "extern const pmix_mca_base_component_t mca_plog_$component_component;" >> $outfile.extern + echo " &mca_plog_$component_component, " >> $outfile.struct + static_components="$static_components $component" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:native can compile" >&5 -$as_echo_n "checking if MCA component psec:native can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plog:$component can compile" >&5 +$as_echo_n "checking if MCA component plog:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_psec" = "native" ; then + if test "$DIRECT_plog" = "$component" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_psec_DIRECT_CALL_HEADER=$line" + str="MCA_pmix_plog_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** psec component native was supposed to be direct-called, but +as_fn_error $? "*** plog component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -63513,104 +46460,294 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_psec" = "native" ; then -as_fn_error $? "*** psec component native was supposed to be direct-called, but + if test "$DIRECT_plog" = "$component" ; then +as_fn_error $? "*** plog component $component was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$psec_native_WRAPPER_EXTRA_LDFLAGS" = ""; then : + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component plog:$component can compile" >&5 +$as_echo_n "checking if MCA component plog:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # If this component was requested as the default for this + # type, then abort. + if test "$with_plog" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + if test ! -z "$DIRECT_plog" ; then + if test "$DIRECT_plog" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + fi + fi + done + +fi + + MCA_pmix_plog_ALL_COMPONENTS="$all_components" + MCA_pmix_plog_STATIC_COMPONENTS="$static_components" + MCA_pmix_plog_DSO_COMPONENTS="$dso_components" + MCA_pmix_plog_STATIC_LTLIBS="$static_ltlibs" + + + + + + + + MCA_pmix_plog_ALL_SUBDIRS= + for item in $all_components ; do + MCA_pmix_plog_ALL_SUBDIRS="$MCA_pmix_plog_ALL_SUBDIRS mca/plog/$item" + done + + + + MCA_pmix_plog_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_pmix_plog_STATIC_SUBDIRS="$MCA_pmix_plog_STATIC_SUBDIRS mca/plog/$item" + done + + + + MCA_pmix_plog_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_pmix_plog_DSO_SUBDIRS="$MCA_pmix_plog_DSO_SUBDIRS mca/plog/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "plog" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS pnet" + MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/pnet" + MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_pnet_ALL_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_pnet_DSO_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_pnet_STATIC_SUBDIRS)" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/pnet/libmca_pnet.la" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_pnet_STATIC_LTLIBS)" + + pmix_show_subsubtitle "Configuring MCA framework pnet" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=src/mca/pnet/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files src/mca/pnet/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework pnet" >&5 +$as_echo_n "checking for no configure components in framework pnet... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework pnet" >&5 +$as_echo_n "checking for m4 configure components in framework pnet... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + + # configure components that use built-in configuration scripts + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/src/mca/pnet/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + pmix_show_subsubsubtitle "MCA component pnet:$component (need to configure)" + + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/src/mca/pnet/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_pnet" ; then + if test "$DIRECT_pnet" = "$component" ; then + want_component=1 + else + want_component=0 + fi + fi fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # if we were explicitly disabled, don't build :) + if test "$DISABLE_pnet" = "1"; then : + want_component=0 +fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_pnet_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + SHARED_FRAMEWORK="$DSO_pnet" + str="SHARED_COMPONENT=\$DSO_pnet_$component" + eval $str - for arg in $psec_native_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + STATIC_FRAMEWORK="$STATIC_pnet" + str="STATIC_COMPONENT=\$STATIC_pnet_$component" + eval $str + shared_mode_override=static - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pnet:$component compile mode" >&5 +$as_echo_n "checking for MCA component pnet:$component compile mode... " >&6; } + if test "$DIRECT_pnet" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" -else + if test "$should_build" = "1" ; then @@ -63623,7 +46760,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do + for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -63642,7 +46779,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $pmix_str unset pmix_str @@ -63650,106 +46787,129 @@ pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $psec_native_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done +# +# Invoke configure in a specific subdirectory. +# +# src/mca/pnet/$component is the directory to invoke in +# $pmix_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="src/mca/pnet/$component" +subdir_args="$pmix_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" +# +# Sanity checks +# - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 +$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -fi - if test "$psec_native_WRAPPER_EXTRA_LIBS" = ""; then : + # + # Move into the target directory + # + subdir_parent=`pwd` + cd $subdir_dir + # + # Make a "../" for each directory in $subdir_dir. + # - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # + # Construct the --cache-file argument + # - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + # + # Invoke the configure script in the subdirectory + # + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi - for arg in $psec_native_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi + # + # Go back to the topdir + # + + cd $subdir_parent fi - done + +# +# Clean up +# # Unwind the index @@ -63772,244 +46932,249 @@ unset $pmix_var done + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi -else + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/src/mca/pnet/all_components/post_configure.sh" + if test -f $infile; then + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + fi - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/pnet/$component/post_configure.sh" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "pnet" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pnet/$component/lib${PMIX_LIB_PREFIX}mca_pnet_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pnet/$component/libmca_pnet_$component.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_pnet_$component_component;" >> $outfile.extern + echo " &mca_pnet_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pnet:$component can compile" >&5 +$as_echo_n "checking if MCA component pnet:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - for arg in $psec_native_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pnet" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_pnet_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pnet component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pnet" = "$component" ; then +as_fn_error $? "*** pnet component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pnet:$component can compile" >&5 +$as_echo_n "checking if MCA component pnet:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_pnet" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + if test ! -z "$DIRECT_pnet" ; then + if test "$DIRECT_pnet" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var + fi + fi done - fi - fi + MCA_pmix_pnet_ALL_COMPONENTS="$all_components" + MCA_pmix_pnet_STATIC_COMPONENTS="$static_components" + MCA_pmix_pnet_DSO_COMPONENTS="$dso_components" + MCA_pmix_pnet_STATIC_LTLIBS="$static_ltlibs" - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$psec_native_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + + MCA_pmix_pnet_ALL_SUBDIRS= + for item in $all_components ; do + MCA_pmix_pnet_ALL_SUBDIRS="$MCA_pmix_pnet_ALL_SUBDIRS mca/pnet/$item" done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + + MCA_pmix_pnet_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_pmix_pnet_STATIC_SUBDIRS="$MCA_pmix_pnet_STATIC_SUBDIRS mca/pnet/$item" + done - for arg in $psec_native_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi + + MCA_pmix_pnet_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_pmix_pnet_DSO_SUBDIRS="$MCA_pmix_pnet_DSO_SUBDIRS mca/pnet/$item" done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "pnet" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi fi + rm -f $outfile.struct $outfile.extern - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + unset all_components static_components dso_components outfile outfile_real - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS preg" + MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/preg" + MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_preg_ALL_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_preg_DSO_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_preg_STATIC_SUBDIRS)" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/preg/libmca_preg.la" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_preg_STATIC_LTLIBS)" + pmix_show_subsubtitle "Configuring MCA framework preg" -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring psec_native_WRAPPER_EXTRA_CPPFLAGS ($psec_native_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring psec_native_WRAPPER_EXTRA_CPPFLAGS ($psec_native_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:native can compile" >&5 -$as_echo_n "checking if MCA component psec:native can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - # If this component was requested as the default for this - # type, then abort. - if test "$with_psec" = "native" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"native\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"native\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= - if test ! -z "$DIRECT_psec" ; then - if test "$DIRECT_psec" = "native" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"native\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"native\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=src/mca/preg/base + as_dir=$outdir; as_fn_mkdir_p - # add component to all component list - all_components="$all_components native" - fi + # emit Makefile rule + ac_config_files="$ac_config_files src/mca/preg/Makefile" - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_pmix_psec_native_DSO=1 - else - BUILD_pmix_psec_native_DSO=0 - fi - if test "$BUILD_pmix_psec_native_DSO" = "1"; then - MCA_BUILD_pmix_psec_native_DSO_TRUE= - MCA_BUILD_pmix_psec_native_DSO_FALSE='#' -else - MCA_BUILD_pmix_psec_native_DSO_TRUE='#' - MCA_BUILD_pmix_psec_native_DSO_FALSE= -fi + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - ac_config_files="$ac_config_files src/mca/psec/native/Makefile" + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework preg" >&5 +$as_echo_n "checking for no configure components in framework preg... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: compress, native" >&5 +$as_echo "compress, native" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework preg" >&5 +$as_echo_n "checking for m4 configure components in framework preg... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - unset compile_mode - pmix_show_subsubsubtitle "MCA component psec:none (no configuration)" + # run the configure logic for the no-config components + + pmix_show_subsubsubtitle "MCA component preg:compress (no configuration)" pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/src/mca/psec/none" + component_path="$srcdir/src/mca/preg/compress" want_component=0 # build if: @@ -64041,8 +47206,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_psec" ; then - if test "$DIRECT_psec" = "none" ; then + if test ! -z "$DIRECT_preg" ; then + if test "$DIRECT_preg" = "compress" ; then want_component=1 else want_component=0 @@ -64051,10 +47216,10 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_psec" = "1"; then : + if test "$DISABLE_preg" = "1"; then : want_component=0 fi - if test "$DISABLE_psec_none" = "1"; then : + if test "$DISABLE_preg_compress" = "1"; then : want_component=0 fi @@ -64065,11 +47230,11 @@ fi - SHARED_FRAMEWORK="$DSO_psec" - SHARED_COMPONENT="$DSO_psec_none" + SHARED_FRAMEWORK="$DSO_preg" + SHARED_COMPONENT="$DSO_preg_compress" - STATIC_FRAMEWORK="$STATIC_psec" - STATIC_COMPONENT="$STATIC_psec_none" + STATIC_FRAMEWORK="$STATIC_preg" + STATIC_COMPONENT="$STATIC_preg_compress" shared_mode_override=static @@ -64087,9 +47252,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psec:none compile mode" >&5 -$as_echo_n "checking for MCA component psec:none compile mode... " >&6; } - if test "$DIRECT_psec" = "none" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component preg:compress compile mode" >&5 +$as_echo_n "checking for MCA component preg:compress compile mode... " >&6; } + if test "$DIRECT_preg" = "compress" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -64105,45 +47270,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/src/mca/psec/none/post_configure.sh" + infile="$srcdir/src/mca/preg/compress/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components none" + all_components="$all_components compress" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components none" + dso_components="$dso_components compress" else - if test "psec" = "common"; then + if test "preg" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/psec/none/lib${PMIX_LIB_PREFIX}mca_psec_none.la $static_ltlibs" + static_ltlibs="mca/preg/compress/lib${PMIX_LIB_PREFIX}mca_preg_compress.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/psec/none/libmca_psec_none.la $static_ltlibs" + static_ltlibs="mca/preg/compress/libmca_preg_compress.la $static_ltlibs" fi - echo "extern const pmix_mca_base_component_t mca_psec_none_component;" >> $outfile.extern - echo " &mca_psec_none_component, " >> $outfile.struct - static_components="$static_components none" + echo "extern const pmix_mca_base_component_t mca_preg_compress_component;" >> $outfile.extern + echo " &mca_preg_compress_component, " >> $outfile.struct + static_components="$static_components compress" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:none can compile" >&5 -$as_echo_n "checking if MCA component psec:none can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component preg:compress can compile" >&5 +$as_echo_n "checking if MCA component preg:compress can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_psec" = "none" ; then + if test "$DIRECT_preg" = "compress" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_psec_DIRECT_CALL_HEADER=$line" + str="MCA_pmix_preg_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** psec component none was supposed to be direct-called, but +as_fn_error $? "*** preg component compress was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -64151,466 +47316,240 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_psec" = "none" ; then -as_fn_error $? "*** psec component none was supposed to be direct-called, but + if test "$DIRECT_preg" = "compress" ; then +as_fn_error $? "*** preg component compress was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$psec_none_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $psec_none_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component preg:compress can compile" >&5 +$as_echo_n "checking if MCA component preg:compress can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_preg" = "compress" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"compress\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"compress\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + if test ! -z "$DIRECT_preg" ; then + if test "$DIRECT_preg" = "compress" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"compress\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"compress\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $psec_none_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$psec_none_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + # add component to all component list + all_components="$all_components compress" fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $psec_none_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_pmix_preg_compress_DSO=1 + else + BUILD_pmix_preg_compress_DSO=0 + fi + if test "$BUILD_pmix_preg_compress_DSO" = "1"; then + MCA_BUILD_pmix_preg_compress_DSO_TRUE= + MCA_BUILD_pmix_preg_compress_DSO_FALSE='#' else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" + MCA_BUILD_pmix_preg_compress_DSO_TRUE='#' + MCA_BUILD_pmix_preg_compress_DSO_FALSE= fi -fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + ac_config_files="$ac_config_files src/mca/preg/compress/Makefile" - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + unset compile_mode -else + pmix_show_subsubsubtitle "MCA component preg:native (no configuration)" + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + component_path="$srcdir/src/mca/preg/native" + want_component=0 - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_preg" ; then + if test "$DIRECT_preg" = "native" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - for arg in $psec_none_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_preg" = "1"; then : + want_component=0 fi - done + if test "$DISABLE_preg_native" = "1"; then : + want_component=0 fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + if test "$want_component" = "1"; then : + should_build=1 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi + should_build=0 fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + SHARED_FRAMEWORK="$DSO_preg" + SHARED_COMPONENT="$DSO_preg_native" + STATIC_FRAMEWORK="$STATIC_preg" + STATIC_COMPONENT="$STATIC_preg_native" -fi + shared_mode_override=static + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$psec_none_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component preg:native compile mode" >&5 +$as_echo_n "checking for MCA component preg:native compile mode... " >&6; } + if test "$DIRECT_preg" = "native" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + if test "$should_build" = "1" ; then - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $psec_none_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/preg/native/post_configure.sh" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components native" - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components native" + else + if test "preg" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/preg/native/lib${PMIX_LIB_PREFIX}mca_preg_native.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/preg/native/libmca_preg_native.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_preg_native_component;" >> $outfile.extern + echo " &mca_preg_native_component, " >> $outfile.struct + static_components="$static_components native" fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component preg:native can compile" >&5 +$as_echo_n "checking if MCA component preg:native can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring psec_none_WRAPPER_EXTRA_CPPFLAGS ($psec_none_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring psec_none_WRAPPER_EXTRA_CPPFLAGS ($psec_none_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_preg" = "native" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_preg_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** preg component native was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_preg" = "native" ; then +as_fn_error $? "*** preg component native was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:none can compile" >&5 -$as_echo_n "checking if MCA component psec:none can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component preg:native can compile" >&5 +$as_echo_n "checking if MCA component preg:native can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_psec" = "none" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"none\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"none\" failed to configure properly" >&2;} + if test "$with_preg" = "native" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"native\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"native\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_psec" ; then - if test "$DIRECT_psec" = "none" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"none\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"none\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_preg" ; then + if test "$DIRECT_preg" = "native" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"native\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"native\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -64618,25 +47557,25 @@ fi # add component to all component list - all_components="$all_components none" + all_components="$all_components native" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso" ; then - BUILD_pmix_psec_none_DSO=1 + BUILD_pmix_preg_native_DSO=1 else - BUILD_pmix_psec_none_DSO=0 + BUILD_pmix_preg_native_DSO=0 fi - if test "$BUILD_pmix_psec_none_DSO" = "1"; then - MCA_BUILD_pmix_psec_none_DSO_TRUE= - MCA_BUILD_pmix_psec_none_DSO_FALSE='#' + if test "$BUILD_pmix_preg_native_DSO" = "1"; then + MCA_BUILD_pmix_preg_native_DSO_TRUE= + MCA_BUILD_pmix_preg_native_DSO_FALSE='#' else - MCA_BUILD_pmix_psec_none_DSO_TRUE='#' - MCA_BUILD_pmix_psec_none_DSO_FALSE= + MCA_BUILD_pmix_preg_native_DSO_TRUE='#' + MCA_BUILD_pmix_preg_native_DSO_FALSE= fi - ac_config_files="$ac_config_files src/mca/psec/none/Makefile" + ac_config_files="$ac_config_files src/mca/preg/native/Makefile" unset compile_mode @@ -64651,13 +47590,24 @@ components_last_result=0 - pmix_show_subsubsubtitle "MCA component psec:munge (m4 configuration macro)" + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" + if test "1" != "0"; then : - component_path="$srcdir/src/mca/psec/munge" + for component_path in $srcdir/src/mca/preg/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + pmix_show_subsubsubtitle "MCA component preg:$component (need to configure)" + + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/src/mca/preg/$component" want_component=0 # build if: @@ -64689,8 +47639,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_psec" ; then - if test "$DIRECT_psec" = "munge" ; then + if test ! -z "$DIRECT_preg" ; then + if test "$DIRECT_preg" = "$component" ; then want_component=1 else want_component=0 @@ -64699,27 +47649,29 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_psec" = "1"; then : - want_component=0 -fi - if test "$DISABLE_psec_munge" = "1"; then : + if test "$DISABLE_preg" = "1"; then : want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_preg_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : - should_build=$components_looking_for_succeed + should_build=1 else should_build=0 fi - # Allow the component to override the build mode if it really wants to. - # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE - SHARED_FRAMEWORK="$DSO_psec" - SHARED_COMPONENT="$DSO_psec_munge" + SHARED_FRAMEWORK="$DSO_preg" + str="SHARED_COMPONENT=\$DSO_preg_$component" + eval $str - STATIC_FRAMEWORK="$STATIC_psec" - STATIC_COMPONENT="$STATIC_psec_munge" + STATIC_FRAMEWORK="$STATIC_preg" + str="STATIC_COMPONENT=\$STATIC_preg_$component" + eval $str shared_mode_override=static @@ -64737,9 +47689,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psec:munge compile mode" >&5 -$as_echo_n "checking for MCA component psec:munge compile mode... " >&6; } - if test "$DIRECT_psec" = "munge" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component preg:$component compile mode" >&5 +$as_echo_n "checking for MCA component preg:$component compile mode... " >&6; } + if test "$DIRECT_preg" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -64747,11 +47699,9 @@ $as_echo "$compile_mode" >&6; } fi + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - # try to configure the component - - ac_config_files="$ac_config_files src/mca/psec/munge/Makefile" - + if test "$should_build" = "1" ; then @@ -64764,7 +47714,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in psec_munge_support psec_munge_dir psec_munge_libdir save_cpp save_ld; do + for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -64783,7 +47733,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"psec_munge_support psec_munge_dir psec_munge_libdir save_cpp save_ld\"" + pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $pmix_str unset pmix_str @@ -64791,589 +47741,528 @@ pmix_scope_index=`expr $pmix_scope_index + 1` +# +# Invoke configure in a specific subdirectory. +# +# src/mca/preg/$component is the directory to invoke in +# $pmix_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="src/mca/preg/$component" +subdir_args="$pmix_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" -# Check whether --with-munge was given. -if test "${with_munge+set}" = set; then : - withval=$with_munge; -fi +# +# Sanity checks +# +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 +$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # -# Check whether --with-munge-libdir was given. -if test "${with_munge_libdir+set}" = set; then : - withval=$with_munge_libdir; + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi + + # + # Go back to the topdir + # + + cd $subdir_parent fi +# +# Clean up +# - psec_munge_support=0 - if test ! -z "$with_munge" && test "$with_munge" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for munge in" >&5 -$as_echo_n "checking for munge in... " >&6; } - if test -n "$with_munge" && test "$with_munge" != "yes"; then - if test -d $with_munge/include/munge; then - psec_munge_dir=$with_munge/include/munge - else - psec_munge_dir=$with_munge - fi - if test -d $with_munge/lib; then - psec_munge_libdir=$with_munge/lib - elif -d $with_munge/lib64; then - psec_munge_libdir=$with_munge/lib64 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Could not find $with_munge/lib or $with_munge/lib64" >&5 -$as_echo "Could not find $with_munge/lib or $with_munge/lib64" >&6; } - as_fn_error $? "Can not continue" "$LINENO" 5 + + # Unwind the index + pmix_scope_index=`expr $pmix_scope_index - 1` + pmix_scope_test=`expr $pmix_scope_index \> 0` + if test "$pmix_scope_test" = "0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 +$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 +$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + # Get the variable names from that index + pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" + eval $pmix_str + + # Iterate over all the variables and unset them all + for pmix_var in $pmix_str; do + unset $pmix_var + done + + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $psec_munge_dir and $psec_munge_libdir" >&5 -$as_echo "$psec_munge_dir and $psec_munge_libdir" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 -$as_echo "(default search paths)" >&6; } - psec_munge_dir= - fi - if test -n "$with_munge_libdir" && test "$with_munge_libdir" != "yes"; then : - psec_munge_libdir="$with_munge_libdir" -fi - save_cpp=$CPPFLAGS - save_ld=$LDFLAGS + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/src/mca/preg/all_components/post_configure.sh" + if test -f $infile; then + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + fi - pmix_check_package_psec_munge_save_CPPFLAGS="$CPPFLAGS" - pmix_check_package_psec_munge_save_LDFLAGS="$LDFLAGS" - pmix_check_package_psec_munge_save_LIBS="$LIBS" - pmix_check_package_psec_munge_orig_CPPFLAGS="$psec_munge_CPPFLAGS" - pmix_check_package_psec_munge_orig_LDFLAGS="$psec_munge_LDFLAGS" - pmix_check_package_psec_munge_orig_LIBS="$psec_munge_LIBS" - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/preg/$component/post_configure.sh" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" - # so this sucks, but there's no way to get through the progression - # of header includes without killing off the cache variable and trying - # again... - unset ac_cv_header_munge_h - pmix_check_package_header_happy="no" + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "preg" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/preg/$component/lib${PMIX_LIB_PREFIX}mca_preg_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/preg/$component/libmca_preg_$component.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_preg_$component_component;" >> $outfile.extern + echo " &mca_preg_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi - # get rid of the trailing slash(es) - hdir_prefix=$(echo $psec_munge_dir | sed -e 'sX/*$XXg') + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component preg:$component can compile" >&5 +$as_echo_n "checking if MCA component preg:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_preg" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_preg_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** preg component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_preg" = "$component" ; then +as_fn_error $? "*** preg component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component preg:$component can compile" >&5 +$as_echo_n "checking if MCA component preg:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_preg" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_preg" ; then + if test "$DIRECT_preg" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + fi + fi + done - if test "$hdir_prefix" = "" || \ - test "$hdir_prefix" = "/usr" || \ - test "$hdir_prefix" = "/usr/local"; then : - # try as is... - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 -$as_echo "looking for header without includes" >&6; } - for ac_header in munge.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "munge.h" "ac_cv_header_munge_h" "$ac_includes_default" -if test "x$ac_cv_header_munge_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_MUNGE_H 1 -_ACEOF - pmix_check_package_header_happy="yes" fi -done + MCA_pmix_preg_ALL_COMPONENTS="$all_components" + MCA_pmix_preg_STATIC_COMPONENTS="$static_components" + MCA_pmix_preg_DSO_COMPONENTS="$dso_components" + MCA_pmix_preg_STATIC_LTLIBS="$static_ltlibs" - if test "$pmix_check_package_header_happy" = "no"; then : - # no go on the as is - reset the cache and try again - unset ac_cv_header_munge_h -fi -fi - if test "$pmix_check_package_header_happy" = "no"; then : - if test "$hdir_prefix" != ""; then : - psec_munge_CPPFLAGS="$psec_munge_CPPFLAGS -I$hdir_prefix" - CPPFLAGS="$CPPFLAGS -I$hdir_prefix" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix" >&5 -$as_echo "looking for header in $hdir_prefix" >&6; } - for ac_header in munge.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "munge.h" "ac_cv_header_munge_h" "$ac_includes_default" -if test "x$ac_cv_header_munge_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_MUNGE_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi -done - if test "$pmix_check_package_header_happy" = "no"; then : - unset ac_cv_header_munge_h - psec_munge_CPPFLAGS="$psec_munge_CPPFLAGS -I$hdir_prefix/include" - CPPFLAGS="$CPPFLAGS -I$hdir_prefix/include" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix/include" >&5 -$as_echo "looking for header in $hdir_prefix/include" >&6; } - for ac_header in munge.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "munge.h" "ac_cv_header_munge_h" "$ac_includes_default" -if test "x$ac_cv_header_munge_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_MUNGE_H 1 -_ACEOF - pmix_check_package_header_happy="yes" -fi -done -fi -fi -fi - if test "$pmix_check_package_header_happy" = "yes"; then : + MCA_pmix_preg_ALL_SUBDIRS= + for item in $all_components ; do + MCA_pmix_preg_ALL_SUBDIRS="$MCA_pmix_preg_ALL_SUBDIRS mca/preg/$item" + done - # This is stolen from autoconf to peek under the covers to get the - # cache variable for the library check. one should not copy this - # code into other places unless you want much pain and suffering - # see comment above - unset ac_cv_lib_munge_munge_encode - pmix_check_package_lib_happy="no" - # get rid of the trailing slash(es) - libdir_prefix=$(echo $psec_munge_libdir | sed -e 'sX/*$XXg') + MCA_pmix_preg_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_pmix_preg_STATIC_SUBDIRS="$MCA_pmix_preg_STATIC_SUBDIRS mca/preg/$item" + done - if test "$libdir_prefix" != ""; then : - # libdir was specified - search only there - psec_munge_LDFLAGS="$psec_munge_LDFLAGS -L$libdir_prefix" - LDFLAGS="$LDFLAGS -L$libdir_prefix" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing munge_encode" >&5 -$as_echo_n "checking for library containing munge_encode... " >&6; } -if ${ac_cv_search_munge_encode+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char munge_encode (); -int -main () -{ -return munge_encode (); - ; - return 0; -} -_ACEOF -for ac_lib in '' munge; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lmunge $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_munge_encode=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_munge_encode+:} false; then : - break -fi -done -if ${ac_cv_search_munge_encode+:} false; then : -else - ac_cv_search_munge_encode=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_munge_encode" >&5 -$as_echo "$ac_cv_search_munge_encode" >&6; } -ac_res=$ac_cv_search_munge_encode -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi + MCA_pmix_preg_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_pmix_preg_DSO_SUBDIRS="$MCA_pmix_preg_DSO_SUBDIRS mca/preg/$item" + done - if test "$pmix_check_package_lib_happy" = "no"; then : - LDFLAGS="$pmix_check_package_psec_munge_save_LDFLAGS" - psec_munge_LDFLAGS="$pmix_check_package_psec_munge_orig_LDFLAGS" - unset ac_cv_lib_munge_munge_encode -fi -else - # libdir was not specified - go through search path - # get rid of the trailing slash(es) - libdir_prefix=$(echo $psec_munge_dir | sed -e 'sX/*$XXg') - # first try standard locations as otherwise our - # searches with libdir_prefix locations might come - # back positive and unnecessarily add an LDFLAG - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 -$as_echo "looking for library without search path" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing munge_encode" >&5 -$as_echo_n "checking for library containing munge_encode... " >&6; } -if ${ac_cv_search_munge_encode+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "preg" != "common"; then + cat > $outfile <&5 -$as_echo "$ac_cv_search_munge_encode" >&6; } -ac_res=$ac_cv_search_munge_encode -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi +EOF + # Only replace the header file if a) it doesn't previously + # exist, or b) the contents are different. Do this to not + # trigger recompilation of certain .c files just because the + # timestamp changed on $outfile_real (similar to the way AC + # handles AC_CONFIG_HEADER files). + diff $outfile $outfile_real > /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_psec_munge_save_LDFLAGS" - psec_munge_LDFLAGS="$pmix_check_package_psec_munge_orig_LDFLAGS" - unset ac_cv_lib_munge_munge_encode -fi + unset all_components static_components dso_components outfile outfile_real - if test "$pmix_check_package_lib_happy" = "no"; then : - # if we didn't find it, check the libdir_prefix/lib64 directory - if test "$libdir_prefix" != "" && \ - test "$libdir_prefix" != "/usr" && \ - test "$libdir_prefix" != "/usr/local"; then : - psec_munge_LDFLAGS="$psec_munge_LDFLAGS -L$libdir_prefix/lib64" - LDFLAGS="$LDFLAGS -L$libdir_prefix/lib64" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib64" >&5 -$as_echo "looking for library in $libdir_prefix/lib64" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing munge_encode" >&5 -$as_echo_n "checking for library containing munge_encode... " >&6; } -if ${ac_cv_search_munge_encode+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS psec" + MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/psec" + MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_psec_ALL_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_psec_DSO_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_psec_STATIC_SUBDIRS)" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/psec/libmca_psec.la" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_psec_STATIC_LTLIBS)" -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char munge_encode (); -int -main () -{ -return munge_encode (); - ; - return 0; -} -_ACEOF -for ac_lib in '' munge; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lmunge $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_munge_encode=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_munge_encode+:} false; then : - break -fi -done -if ${ac_cv_search_munge_encode+:} false; then : + pmix_show_subsubtitle "Configuring MCA framework psec" -else - ac_cv_search_munge_encode=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_munge_encode" >&5 -$as_echo "$ac_cv_search_munge_encode" >&6; } -ac_res=$ac_cv_search_munge_encode -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_psec_munge_save_LDFLAGS" - psec_munge_LDFLAGS="$pmix_check_package_psec_munge_orig_LDFLAGS" - unset ac_cv_lib_munge_munge_encode -fi -fi -fi - if test "$pmix_check_package_lib_happy" = "no"; then : - # if we still haven't found it, check the libdir_prefix/lib directory - if test "$libdir_prefix" != "" && \ - test "$libdir_prefix" != "/usr" && \ - test "$libdir_prefix" != "/usr/local"; then : - psec_munge_LDFLAGS="$psec_munge_LDFLAGS -L$libdir_prefix/lib" - LDFLAGS="$LDFLAGS -L$libdir_prefix/lib" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib" >&5 -$as_echo "looking for library in $libdir_prefix/lib" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing munge_encode" >&5 -$as_echo_n "checking for library containing munge_encode... " >&6; } -if ${ac_cv_search_munge_encode+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char munge_encode (); -int -main () -{ -return munge_encode (); - ; - return 0; -} -_ACEOF -for ac_lib in '' munge; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib -lmunge $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_munge_encode=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_munge_encode+:} false; then : - break -fi -done -if ${ac_cv_search_munge_encode+:} false; then : + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= -else - ac_cv_search_munge_encode=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_munge_encode" >&5 -$as_echo "$ac_cv_search_munge_encode" >&6; } -ac_res=$ac_cv_search_munge_encode -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - pmix_check_package_lib_happy="yes" -else - pmix_check_package_lib_happy="no" -fi + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=src/mca/psec/base + as_dir=$outdir; as_fn_mkdir_p - if test "$pmix_check_package_lib_happy" = "no"; then : - # no go on the as is.. see what happens later... - LDFLAGS="$pmix_check_package_psec_munge_save_LDFLAGS" - psec_munge_LDFLAGS="$pmix_check_package_psec_munge_orig_LDFLAGS" - unset ac_cv_lib_munge_munge_encode -fi -fi -fi + # emit Makefile rule + ac_config_files="$ac_config_files src/mca/psec/Makefile" -fi + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - if test "$pmix_check_package_lib_happy" = "yes"; then : - psec_munge_LIBS="-lmunge -lmunge" - pmix_check_package_happy="yes" -else - pmix_check_package_happy="no" -fi - if test "$pmix_check_package_lib_happy" = "yes"; then : - # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] - if test "$ac_cv_search_munge_encode" != "no" && - test "$ac_cv_search_munge_encode" != "none required"; then : - psec_munge_LIBS="$ac_cv_search_munge_encode -lmunge" -else - psec_munge_LIBS="-lmunge" -fi - pmix_check_package_happy="yes" -else - pmix_check_package_happy="no" -fi + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework psec" >&5 +$as_echo_n "checking for no configure components in framework psec... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: dummy_handshake, native, none" >&5 +$as_echo "dummy_handshake, native, none" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework psec" >&5 +$as_echo_n "checking for m4 configure components in framework psec... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: munge" >&5 +$as_echo "munge" >&6; } + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. -else - pmix_check_package_happy="no" -fi - unset pmix_check_package_header_happy + # run the configure logic for the no-config components + pmix_show_subsubsubtitle "MCA component psec:dummy_handshake (no configuration)" - if test "$pmix_check_package_happy" = "yes"; then : - psec_munge_support=1 -else - psec_munge_CPPFLAGS="$pmix_check_package_psec_munge_orig_CPPFLAGS" - psec_munge_LDFLAGS="$pmix_check_package_psec_munge_orig_LDFLAGS" - psec_munge_LIBS="$pmix_check_package_psec_munge_orig_LIBS" - psec_munge_support=0 -fi + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - CPPFLAGS="$pmix_check_package_psec_munge_save_CPPFLAGS" - LDFLAGS="$pmix_check_package_psec_munge_save_LDFLAGS" - LIBS="$pmix_check_package_psec_munge_save_LIBS" - CPPFLAGS=$save_cpp - LDFLAGS=$save_ld - fi + component_path="$srcdir/src/mca/psec/dummy_handshake" + want_component=0 - if test -n "$with_munge" && test "$with_munge" != "no" && test "$psec_munge_support" != "1"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MUNGE SUPPORT REQUESTED AND NOT FOUND." >&5 -$as_echo "$as_me: WARNING: MUNGE SUPPORT REQUESTED AND NOT FOUND." >&2;} - as_fn_error $? "CANNOT CONTINUE" "$LINENO" 5 + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_psec" ; then + if test "$DIRECT_psec" = "dummy_handshake" ; then + want_component=1 + else + want_component=0 + fi + fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking will munge support be built" >&5 -$as_echo_n "checking will munge support be built... " >&6; } - if test "$psec_munge_support" != "1"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - should_build=0 -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - should_build=$should_build + # if we were explicitly disabled, don't build :) + if test "$DISABLE_psec" = "1"; then : + want_component=0 +fi + if test "$DISABLE_psec_dummy_handshake" = "1"; then : + want_component=0 fi - # set build flags to use in makefile + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + SHARED_FRAMEWORK="$DSO_psec" + SHARED_COMPONENT="$DSO_psec_dummy_handshake" + STATIC_FRAMEWORK="$STATIC_psec" + STATIC_COMPONENT="$STATIC_psec_dummy_handshake" + shared_mode_override=static - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psec:dummy_handshake compile mode" >&5 +$as_echo_n "checking for MCA component psec:dummy_handshake compile mode... " >&6; } + if test "$DIRECT_psec" = "dummy_handshake" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1"; then : + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/src/mca/psec/munge/post_configure.sh" + infile="$srcdir/src/mca/psec/dummy_handshake/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components munge" + all_components="$all_components dummy_handshake" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components munge" + dso_components="$dso_components dummy_handshake" else if test "psec" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/psec/munge/lib${PMIX_LIB_PREFIX}mca_psec_munge.la $static_ltlibs" + static_ltlibs="mca/psec/dummy_handshake/lib${PMIX_LIB_PREFIX}mca_psec_dummy_handshake.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/psec/munge/libmca_psec_munge.la $static_ltlibs" + static_ltlibs="mca/psec/dummy_handshake/libmca_psec_dummy_handshake.la $static_ltlibs" fi - echo "extern const pmix_mca_base_component_t mca_psec_munge_component;" >> $outfile.extern - echo " &mca_psec_munge_component, " >> $outfile.struct - static_components="$static_components munge" + echo "extern const pmix_mca_base_component_t mca_psec_dummy_handshake_component;" >> $outfile.extern + echo " &mca_psec_dummy_handshake_component, " >> $outfile.struct + static_components="$static_components dummy_handshake" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:munge can compile" >&5 -$as_echo_n "checking if MCA component psec:munge can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:dummy_handshake can compile" >&5 +$as_echo_n "checking if MCA component psec:dummy_handshake can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_psec" = "munge" ; then + if test "$DIRECT_psec" = "dummy_handshake" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_pmix_psec_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** psec component munge was supposed to be direct-called, but +as_fn_error $? "*** psec component dummy_handshake was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -65381,523 +48270,277 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_psec" = "munge" ; then -as_fn_error $? "*** psec component munge was supposed to be direct-called, but + if test "$DIRECT_psec" = "dummy_handshake" ; then +as_fn_error $? "*** psec component dummy_handshake was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$psec_munge_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $psec_munge_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:dummy_handshake can compile" >&5 +$as_echo_n "checking if MCA component psec:dummy_handshake can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_psec" = "dummy_handshake" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dummy_handshake\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"dummy_handshake\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + if test ! -z "$DIRECT_psec" ; then + if test "$DIRECT_psec" = "dummy_handshake" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"dummy_handshake\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"dummy_handshake\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $psec_munge_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$psec_munge_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + # add component to all component list + all_components="$all_components dummy_handshake" fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $psec_munge_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_pmix_psec_dummy_handshake_DSO=1 + else + BUILD_pmix_psec_dummy_handshake_DSO=0 + fi + if test "$BUILD_pmix_psec_dummy_handshake_DSO" = "1"; then + MCA_BUILD_pmix_psec_dummy_handshake_DSO_TRUE= + MCA_BUILD_pmix_psec_dummy_handshake_DSO_FALSE='#' else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi + MCA_BUILD_pmix_psec_dummy_handshake_DSO_TRUE='#' + MCA_BUILD_pmix_psec_dummy_handshake_DSO_FALSE= fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + ac_config_files="$ac_config_files src/mca/psec/dummy_handshake/Makefile" - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + unset compile_mode -else + pmix_show_subsubsubtitle "MCA component psec:native (no configuration)" + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + component_path="$srcdir/src/mca/psec/native" + want_component=0 - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_psec" ; then + if test "$DIRECT_psec" = "native" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - for arg in $psec_munge_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_psec" = "1"; then : + want_component=0 fi - done + if test "$DISABLE_psec_native" = "1"; then : + want_component=0 fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg + + if test "$want_component" = "1"; then : + should_build=1 else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi + should_build=0 fi - done - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + SHARED_FRAMEWORK="$DSO_psec" + SHARED_COMPONENT="$DSO_psec_native" + STATIC_FRAMEWORK="$STATIC_psec" + STATIC_COMPONENT="$STATIC_psec_native" -fi + shared_mode_override=static + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$psec_munge_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psec:native compile mode" >&5 +$as_echo_n "checking for MCA component psec:native compile mode... " >&6; } + if test "$DIRECT_psec" = "native" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1" ; then - for arg in $psec_munge_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/psec/native/post_configure.sh" - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components native" - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components native" + else + if test "psec" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/psec/native/lib${PMIX_LIB_PREFIX}mca_psec_native.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/psec/native/libmca_psec_native.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_psec_native_component;" >> $outfile.extern + echo " &mca_psec_native_component, " >> $outfile.struct + static_components="$static_components native" + fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:native can compile" >&5 +$as_echo_n "checking if MCA component psec:native can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring psec_munge_WRAPPER_EXTRA_CPPFLAGS ($psec_munge_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring psec_munge_WRAPPER_EXTRA_CPPFLAGS ($psec_munge_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_psec" = "native" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_psec_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** psec component native was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_psec" = "native" ; then +as_fn_error $? "*** psec component native was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi -else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:munge can compile" >&5 -$as_echo_n "checking if MCA component psec:munge can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:native can compile" >&5 +$as_echo_n "checking if MCA component psec:native can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_psec" = "munge" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"munge\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"munge\" failed to configure properly" >&2;} + if test "$with_psec" = "native" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"native\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"native\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_psec" ; then - if test "$DIRECT_psec" = "munge" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"munge\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"munge\" failed to configure properly" >&2;} + if test "$DIRECT_psec" = "native" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"native\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"native\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components munge" -fi - - + # add component to all component list + all_components="$all_components native" + fi # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso"; then : - BUILD_pmix_psec_munge_DSO=1 -else - BUILD_pmix_psec_munge_DSO=0 -fi - if test "$BUILD_pmix_psec_munge_DSO" = "1"; then - MCA_BUILD_pmix_psec_munge_DSO_TRUE= - MCA_BUILD_pmix_psec_munge_DSO_FALSE='#' -else - MCA_BUILD_pmix_psec_munge_DSO_TRUE='#' - MCA_BUILD_pmix_psec_munge_DSO_FALSE= -fi - - - if test "$should_build" = "1"; then : - components_last_result=1 + if test "$compile_mode" = "dso" ; then + BUILD_pmix_psec_native_DSO=1 + else + BUILD_pmix_psec_native_DSO=0 + fi + if test "$BUILD_pmix_psec_native_DSO" = "1"; then + MCA_BUILD_pmix_psec_native_DSO_TRUE= + MCA_BUILD_pmix_psec_native_DSO_FALSE='#' else - components_last_result=0 + MCA_BUILD_pmix_psec_native_DSO_TRUE='#' + MCA_BUILD_pmix_psec_native_DSO_FALSE= fi - unset compile_mode - - - - - - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + ac_config_files="$ac_config_files src/mca/psec/native/Makefile" - if test "1" != "0"; then : + unset compile_mode - for component_path in $srcdir/src/mca/psec/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - pmix_show_subsubsubtitle "MCA component psec:$component (need to configure)" + pmix_show_subsubsubtitle "MCA component psec:none (no configuration)" - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/src/mca/psec/$component" + component_path="$srcdir/src/mca/psec/none" want_component=0 # build if: @@ -65930,7 +48573,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_psec" ; then - if test "$DIRECT_psec" = "$component" ; then + if test "$DIRECT_psec" = "none" ; then want_component=1 else want_component=0 @@ -65942,11 +48585,9 @@ if test "$DISABLE_psec" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_psec_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi + if test "$DISABLE_psec_none" = "1"; then : + want_component=0 +fi if test "$want_component" = "1"; then : should_build=1 @@ -65956,12 +48597,10 @@ SHARED_FRAMEWORK="$DSO_psec" - str="SHARED_COMPONENT=\$DSO_psec_$component" - eval $str + SHARED_COMPONENT="$DSO_psec_none" STATIC_FRAMEWORK="$STATIC_psec" - str="STATIC_COMPONENT=\$STATIC_psec_$component" - eval $str + STATIC_COMPONENT="$STATIC_psec_none" shared_mode_override=static @@ -65979,9 +48618,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psec:$component compile mode" >&5 -$as_echo_n "checking for MCA component psec:$component compile mode... " >&6; } - if test "$DIRECT_psec" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psec:none compile mode" >&5 +$as_echo_n "checking for MCA component psec:none compile mode... " >&6; } + if test "$DIRECT_psec" = "none" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -65989,292 +48628,229 @@ $as_echo "$compile_mode" >&6; } fi - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - if test "$should_build" = "1" ; then + if test "$should_build" = "1" ; then - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/psec/none/post_configure.sh" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components none" - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components none" + else + if test "psec" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/psec/none/lib${PMIX_LIB_PREFIX}mca_psec_none.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/psec/none/libmca_psec_none.la $static_ltlibs" fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + echo "extern const pmix_mca_base_component_t mca_psec_none_component;" >> $outfile.extern + echo " &mca_psec_none_component, " >> $outfile.struct + static_components="$static_components none" + fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:none can compile" >&5 +$as_echo_n "checking if MCA component psec:none can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -# -# Invoke configure in a specific subdirectory. -# -# src/mca/psec/$component is the directory to invoke in -# $pmix_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="src/mca/psec/$component" -subdir_args="$pmix_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_psec" = "none" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_psec_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** psec component none was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_psec" = "none" ; then +as_fn_error $? "*** psec component none was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi -# -# Sanity checks -# + else -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 -$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:none can compile" >&5 +$as_echo_n "checking if MCA component psec:none can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # + # If this component was requested as the default for this + # type, then abort. + if test "$with_psec" = "none" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"none\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"none\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } + if test ! -z "$DIRECT_psec" ; then + if test "$DIRECT_psec" = "none" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"none\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"none\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac + # add component to all component list + all_components="$all_components none" + fi - # - # Move into the target directory - # + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_pmix_psec_none_DSO=1 + else + BUILD_pmix_psec_none_DSO=0 + fi + if test "$BUILD_pmix_psec_none_DSO" = "1"; then + MCA_BUILD_pmix_psec_none_DSO_TRUE= + MCA_BUILD_pmix_psec_none_DSO_FALSE='#' +else + MCA_BUILD_pmix_psec_none_DSO_TRUE='#' + MCA_BUILD_pmix_psec_none_DSO_FALSE= +fi - subdir_parent=`pwd` - cd $subdir_dir - # - # Make a "../" for each directory in $subdir_dir. - # + ac_config_files="$ac_config_files src/mca/psec/none/Makefile" - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac + unset compile_mode - # - # Construct the --cache-file argument - # - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" + # configure components that use built-in configuration scripts - # - # Invoke the configure script in the subdirectory - # - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi - # - # Go back to the topdir - # + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - cd $subdir_parent -fi -# -# Clean up -# + pmix_show_subsubsubtitle "MCA component psec:munge (m4 configuration macro)" + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: before, should_build=$components_looking_for_succeed" - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + component_path="$srcdir/src/mca/psec/munge" + want_component=0 - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_psec" ; then + if test "$DIRECT_psec" = "munge" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/src/mca/psec/all_components/post_configure.sh" - if test -f $infile; then - - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + # if we were explicitly disabled, don't build :) + if test "$DISABLE_psec" = "1"; then : + want_component=0 +fi + if test "$DISABLE_psec_munge" = "1"; then : + want_component=0 +fi + if test "$want_component" = "1"; then : + should_build=$components_looking_for_succeed +else + should_build=0 +fi + # Allow the component to override the build mode if it really wants to. + # It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE + SHARED_FRAMEWORK="$DSO_psec" + SHARED_COMPONENT="$DSO_psec_munge" - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/psec/$component/post_configure.sh" + STATIC_FRAMEWORK="$STATIC_psec" + STATIC_COMPONENT="$STATIC_psec_munge" - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + shared_mode_override=static - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" else - if test "psec" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/psec/$component/lib${PMIX_LIB_PREFIX}mca_psec_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/psec/$component/libmca_psec_$component.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_psec_$component_component;" >> $outfile.extern - echo " &mca_psec_$component_component, " >> $outfile.struct - static_components="$static_components $component" + compile_mode="static" fi - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:$component can compile" >&5 -$as_echo_n "checking if MCA component psec:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_psec" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_psec_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** psec component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psec:munge compile mode" >&5 +$as_echo_n "checking for MCA component psec:munge compile mode... " >&6; } + if test "$DIRECT_psec" = "munge" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_psec" = "$component" ; then -as_fn_error $? "*** psec component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$psec_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" + + # try to configure the component + + ac_config_files="$ac_config_files src/mca/psec/munge/Makefile" + @@ -66287,7 +48863,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do + for pmix_var in psec_munge_support psec_munge_dir psec_munge_libdir save_cpp save_ld; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -66306,7 +48882,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + pmix_str="pmix_scope_$pmix_scope_index=\"psec_munge_support psec_munge_dir psec_munge_libdir save_cpp save_ld\"" eval $pmix_str unset pmix_str @@ -66314,105 +48890,519 @@ pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 + +# Check whether --with-munge was given. +if test "${with_munge+set}" = set; then : + withval=$with_munge; +fi + + + +# Check whether --with-munge-libdir was given. +if test "${with_munge_libdir+set}" = set; then : + withval=$with_munge_libdir; +fi + + + psec_munge_support=0 + if test ! -z "$with_munge" && test "$with_munge" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for munge in" >&5 +$as_echo_n "checking for munge in... " >&6; } + if test -n "$with_munge" && test "$with_munge" != "yes"; then + if test -d $with_munge/include/munge; then + psec_munge_dir=$with_munge/include/munge + else + psec_munge_dir=$with_munge + fi + if test -d $with_munge/lib; then + psec_munge_libdir=$with_munge/lib + elif -d $with_munge/lib64; then + psec_munge_libdir=$with_munge/lib64 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Could not find $with_munge/lib or $with_munge/lib64" >&5 +$as_echo "Could not find $with_munge/lib or $with_munge/lib64" >&6; } + as_fn_error $? "Can not continue" "$LINENO" 5 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $psec_munge_dir and $psec_munge_libdir" >&5 +$as_echo "$psec_munge_dir and $psec_munge_libdir" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (default search paths)" >&5 +$as_echo "(default search paths)" >&6; } + psec_munge_dir= + fi + if test -n "$with_munge_libdir" && test "$with_munge_libdir" != "yes"; then : + psec_munge_libdir="$with_munge_libdir" +fi + + save_cpp=$CPPFLAGS + save_ld=$LDFLAGS + + + pmix_check_package_psec_munge_save_CPPFLAGS="$CPPFLAGS" + pmix_check_package_psec_munge_save_LDFLAGS="$LDFLAGS" + pmix_check_package_psec_munge_save_LIBS="$LIBS" + + pmix_check_package_psec_munge_orig_CPPFLAGS="$psec_munge_CPPFLAGS" + pmix_check_package_psec_munge_orig_LDFLAGS="$psec_munge_LDFLAGS" + pmix_check_package_psec_munge_orig_LIBS="$psec_munge_LIBS" + + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset ac_cv_header_munge_h + pmix_check_package_header_happy="no" + + # get rid of the trailing slash(es) + hdir_prefix=$(echo $psec_munge_dir | sed -e 'sX/*$XXg') + + if test "$hdir_prefix" = "" || \ + test "$hdir_prefix" = "/usr" || \ + test "$hdir_prefix" = "/usr/local"; then : + # try as is... + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header without includes" >&5 +$as_echo "looking for header without includes" >&6; } + for ac_header in munge.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "munge.h" "ac_cv_header_munge_h" "$ac_includes_default" +if test "x$ac_cv_header_munge_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MUNGE_H 1 +_ACEOF + pmix_check_package_header_happy="yes" +fi + +done + + if test "$pmix_check_package_header_happy" = "no"; then : + # no go on the as is - reset the cache and try again + unset ac_cv_header_munge_h +fi +fi + + if test "$pmix_check_package_header_happy" = "no"; then : + if test "$hdir_prefix" != ""; then : + psec_munge_CPPFLAGS="$psec_munge_CPPFLAGS -I$hdir_prefix" + CPPFLAGS="$CPPFLAGS -I$hdir_prefix" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix" >&5 +$as_echo "looking for header in $hdir_prefix" >&6; } + for ac_header in munge.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "munge.h" "ac_cv_header_munge_h" "$ac_includes_default" +if test "x$ac_cv_header_munge_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MUNGE_H 1 +_ACEOF + pmix_check_package_header_happy="yes" +fi + +done + + if test "$pmix_check_package_header_happy" = "no"; then : + unset ac_cv_header_munge_h + psec_munge_CPPFLAGS="$psec_munge_CPPFLAGS -I$hdir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$hdir_prefix/include" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for header in $hdir_prefix/include" >&5 +$as_echo "looking for header in $hdir_prefix/include" >&6; } + for ac_header in munge.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "munge.h" "ac_cv_header_munge_h" "$ac_includes_default" +if test "x$ac_cv_header_munge_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MUNGE_H 1 +_ACEOF + pmix_check_package_header_happy="yes" +fi + +done + +fi +fi +fi + + if test "$pmix_check_package_header_happy" = "yes"; then : + + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + + # see comment above + unset ac_cv_lib_munge_munge_encode + pmix_check_package_lib_happy="no" + + # get rid of the trailing slash(es) + libdir_prefix=$(echo $psec_munge_libdir | sed -e 'sX/*$XXg') + + if test "$libdir_prefix" != ""; then : + # libdir was specified - search only there + psec_munge_LDFLAGS="$psec_munge_LDFLAGS -L$libdir_prefix" + LDFLAGS="$LDFLAGS -L$libdir_prefix" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing munge_encode" >&5 +$as_echo_n "checking for library containing munge_encode... " >&6; } +if ${ac_cv_search_munge_encode+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char munge_encode (); +int +main () +{ +return munge_encode (); + ; + return 0; +} +_ACEOF +for ac_lib in '' munge; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lmunge $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_munge_encode=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_munge_encode+:} false; then : + break +fi +done +if ${ac_cv_search_munge_encode+:} false; then : + +else + ac_cv_search_munge_encode=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_munge_encode" >&5 +$as_echo "$ac_cv_search_munge_encode" >&6; } +ac_res=$ac_cv_search_munge_encode +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi + + if test "$pmix_check_package_lib_happy" = "no"; then : + LDFLAGS="$pmix_check_package_psec_munge_save_LDFLAGS" + psec_munge_LDFLAGS="$pmix_check_package_psec_munge_orig_LDFLAGS" + unset ac_cv_lib_munge_munge_encode +fi +else + # libdir was not specified - go through search path + # get rid of the trailing slash(es) + libdir_prefix=$(echo $psec_munge_dir | sed -e 'sX/*$XXg') + + # first try standard locations as otherwise our + # searches with libdir_prefix locations might come + # back positive and unnecessarily add an LDFLAG + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library without search path" >&5 +$as_echo "looking for library without search path" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing munge_encode" >&5 +$as_echo_n "checking for library containing munge_encode... " >&6; } +if ${ac_cv_search_munge_encode+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char munge_encode (); +int +main () +{ +return munge_encode (); + ; + return 0; +} +_ACEOF +for ac_lib in '' munge; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lmunge $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_munge_encode=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_munge_encode+:} false; then : + break +fi +done +if ${ac_cv_search_munge_encode+:} false; then : + +else + ac_cv_search_munge_encode=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_munge_encode" >&5 +$as_echo "$ac_cv_search_munge_encode" >&6; } +ac_res=$ac_cv_search_munge_encode +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi + + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_psec_munge_save_LDFLAGS" + psec_munge_LDFLAGS="$pmix_check_package_psec_munge_orig_LDFLAGS" + unset ac_cv_lib_munge_munge_encode +fi + + if test "$pmix_check_package_lib_happy" = "no"; then : + # if we didn't find it, check the libdir_prefix/lib64 directory + if test "$libdir_prefix" != "" && \ + test "$libdir_prefix" != "/usr" && \ + test "$libdir_prefix" != "/usr/local"; then : + psec_munge_LDFLAGS="$psec_munge_LDFLAGS -L$libdir_prefix/lib64" + LDFLAGS="$LDFLAGS -L$libdir_prefix/lib64" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib64" >&5 +$as_echo "looking for library in $libdir_prefix/lib64" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing munge_encode" >&5 +$as_echo_n "checking for library containing munge_encode... " >&6; } +if ${ac_cv_search_munge_encode+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char munge_encode (); +int +main () +{ +return munge_encode (); + ; + return 0; +} +_ACEOF +for ac_lib in '' munge; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lmunge $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_munge_encode=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_munge_encode+:} false; then : + break +fi +done +if ${ac_cv_search_munge_encode+:} false; then : + +else + ac_cv_search_munge_encode=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_munge_encode" >&5 +$as_echo "$ac_cv_search_munge_encode" >&6; } +ac_res=$ac_cv_search_munge_encode +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi + + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_psec_munge_save_LDFLAGS" + psec_munge_LDFLAGS="$pmix_check_package_psec_munge_orig_LDFLAGS" + unset ac_cv_lib_munge_munge_encode +fi +fi +fi + + if test "$pmix_check_package_lib_happy" = "no"; then : + # if we still haven't found it, check the libdir_prefix/lib directory + if test "$libdir_prefix" != "" && \ + test "$libdir_prefix" != "/usr" && \ + test "$libdir_prefix" != "/usr/local"; then : + psec_munge_LDFLAGS="$psec_munge_LDFLAGS -L$libdir_prefix/lib" + LDFLAGS="$LDFLAGS -L$libdir_prefix/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for library in $libdir_prefix/lib" >&5 +$as_echo "looking for library in $libdir_prefix/lib" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing munge_encode" >&5 +$as_echo_n "checking for library containing munge_encode... " >&6; } +if ${ac_cv_search_munge_encode+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char munge_encode (); +int +main () +{ +return munge_encode (); + ; + return 0; +} +_ACEOF +for ac_lib in '' munge; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib -lmunge $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_munge_encode=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_munge_encode+:} false; then : + break +fi +done +if ${ac_cv_search_munge_encode+:} false; then : + +else + ac_cv_search_munge_encode=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_munge_encode" >&5 +$as_echo "$ac_cv_search_munge_encode" >&6; } +ac_res=$ac_cv_search_munge_encode +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pmix_check_package_lib_happy="yes" +else + pmix_check_package_lib_happy="no" +fi + + if test "$pmix_check_package_lib_happy" = "no"; then : + # no go on the as is.. see what happens later... + LDFLAGS="$pmix_check_package_psec_munge_save_LDFLAGS" + psec_munge_LDFLAGS="$pmix_check_package_psec_munge_orig_LDFLAGS" + unset ac_cv_lib_munge_munge_encode +fi +fi +fi + fi - done + + + if test "$pmix_check_package_lib_happy" = "yes"; then : + psec_munge_LIBS="-lmunge -lmunge" + pmix_check_package_happy="yes" +else + pmix_check_package_happy="no" fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg + if test "$pmix_check_package_lib_happy" = "yes"; then : + # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + if test "$ac_cv_search_munge_encode" != "no" && + test "$ac_cv_search_munge_encode" != "none required"; then : + psec_munge_LIBS="$ac_cv_search_munge_encode -lmunge" else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" + psec_munge_LIBS="-lmunge" fi + pmix_check_package_happy="yes" +else + pmix_check_package_happy="no" fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +else + pmix_check_package_happy="no" +fi + + unset pmix_check_package_header_happy - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done -str="line=\$psec_$component_WRAPPER_EXTRA_LIBS" - eval "$str" + if test "$pmix_check_package_happy" = "yes"; then : + psec_munge_support=1 +else + psec_munge_CPPFLAGS="$pmix_check_package_psec_munge_orig_CPPFLAGS" + psec_munge_LDFLAGS="$pmix_check_package_psec_munge_orig_LDFLAGS" + psec_munge_LIBS="$pmix_check_package_psec_munge_orig_LIBS" + psec_munge_support=0 +fi + CPPFLAGS="$pmix_check_package_psec_munge_save_CPPFLAGS" + LDFLAGS="$pmix_check_package_psec_munge_save_LDFLAGS" + LIBS="$pmix_check_package_psec_munge_save_LIBS" - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + CPPFLAGS=$save_cpp + LDFLAGS=$save_ld fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + if test -n "$with_munge" && test "$with_munge" != "no" && test "$psec_munge_support" != "1"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MUNGE SUPPORT REQUESTED AND NOT FOUND." >&5 +$as_echo "$as_me: WARNING: MUNGE SUPPORT REQUESTED AND NOT FOUND." >&2;} + as_fn_error $? "CANNOT CONTINUE" "$LINENO" 5 + fi - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking will munge support be built" >&5 +$as_echo_n "checking will munge support be built... " >&6; } + if test "$psec_munge_support" != "1"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + should_build=0 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + should_build=$should_build +fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # set build flags to use in makefile - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done # Unwind the index @@ -66436,179 +49426,145 @@ done - fi + pmix_show_verbose "PMIX_MCA_M4_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1"; then : + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/psec/munge/post_configure.sh" - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components munge" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components munge" + else + if test "psec" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/psec/munge/lib${PMIX_LIB_PREFIX}mca_psec_munge.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/psec/munge/libmca_psec_munge.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_psec_munge_component;" >> $outfile.extern + echo " &mca_psec_munge_component, " >> $outfile.struct + static_components="$static_components munge" + fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:munge can compile" >&5 +$as_echo_n "checking if MCA component psec:munge can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_psec" = "munge" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_psec_DIRECT_CALL_HEADER=$line" + eval $str else +as_fn_error $? "*** psec component munge was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_psec" = "munge" ; then +as_fn_error $? "*** psec component munge was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:$component can compile" >&5 -$as_echo_n "checking if MCA component psec:$component can compile... " >&6; } +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:munge can compile" >&5 +$as_echo_n "checking if MCA component psec:munge can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_psec" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + if test "$with_psec" = "munge" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"munge\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"munge\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_psec" ; then - if test "$DIRECT_psec" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + if test "$DIRECT_psec" = "munge" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"munge\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"munge\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - fi - fi - done - + # add component to all component list + all_components="$all_components munge" fi - MCA_pmix_psec_ALL_COMPONENTS="$all_components" - MCA_pmix_psec_STATIC_COMPONENTS="$static_components" - MCA_pmix_psec_DSO_COMPONENTS="$dso_components" - MCA_pmix_psec_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_pmix_psec_ALL_SUBDIRS= - for item in $all_components ; do - MCA_pmix_psec_ALL_SUBDIRS="$MCA_pmix_psec_ALL_SUBDIRS mca/psec/$item" - done - - - - MCA_pmix_psec_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_pmix_psec_STATIC_SUBDIRS="$MCA_pmix_psec_STATIC_SUBDIRS mca/psec/$item" - done - - - - MCA_pmix_psec_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_pmix_psec_DSO_SUBDIRS="$MCA_pmix_psec_DSO_SUBDIRS mca/psec/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "psec" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile - fi - fi - rm -f $outfile.struct $outfile.extern - - unset all_components static_components dso_components outfile outfile_real - - MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS psensor" - MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/psensor" - MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_psensor_ALL_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_psensor_DSO_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_psensor_STATIC_SUBDIRS)" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/psensor/libmca_psensor.la" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_psensor_STATIC_LTLIBS)" - - pmix_show_subsubtitle "Configuring MCA framework psensor" + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso"; then : + BUILD_pmix_psec_munge_DSO=1 +else + BUILD_pmix_psec_munge_DSO=0 +fi + if test "$BUILD_pmix_psec_munge_DSO" = "1"; then + MCA_BUILD_pmix_psec_munge_DSO_TRUE= + MCA_BUILD_pmix_psec_munge_DSO_FALSE='#' +else + MCA_BUILD_pmix_psec_munge_DSO_TRUE='#' + MCA_BUILD_pmix_psec_munge_DSO_FALSE= +fi - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= + if test "$should_build" = "1"; then : + components_last_result=1 +else + components_last_result=0 +fi - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=src/mca/psensor/base - as_dir=$outdir; as_fn_mkdir_p + unset compile_mode - # emit Makefile rule - ac_config_files="$ac_config_files src/mca/psensor/Makefile" - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework psensor" >&5 -$as_echo_n "checking for no configure components in framework psensor... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: file, heartbeat" >&5 -$as_echo "file, heartbeat" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework psensor" >&5 -$as_echo_n "checking for m4 configure components in framework psensor... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - # run the configure logic for the no-config components + if test "1" != "0"; then : - pmix_show_subsubsubtitle "MCA component psensor:file (no configuration)" + for component_path in $srcdir/src/mca/psec/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + pmix_show_subsubsubtitle "MCA component psec:$component (need to configure)" - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/src/mca/psensor/file" + component_path="$srcdir/src/mca/psec/$component" want_component=0 # build if: @@ -66640,8 +49596,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_psensor" ; then - if test "$DIRECT_psensor" = "file" ; then + if test ! -z "$DIRECT_psec" ; then + if test "$DIRECT_psec" = "$component" ; then want_component=1 else want_component=0 @@ -66650,12 +49606,14 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_psensor" = "1"; then : - want_component=0 -fi - if test "$DISABLE_psensor_file" = "1"; then : + if test "$DISABLE_psec" = "1"; then : want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_psec_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : should_build=1 @@ -66664,11 +49622,13 @@ fi - SHARED_FRAMEWORK="$DSO_psensor" - SHARED_COMPONENT="$DSO_psensor_file" + SHARED_FRAMEWORK="$DSO_psec" + str="SHARED_COMPONENT=\$DSO_psec_$component" + eval $str - STATIC_FRAMEWORK="$STATIC_psensor" - STATIC_COMPONENT="$STATIC_psensor_file" + STATIC_FRAMEWORK="$STATIC_psec" + str="STATIC_COMPONENT=\$STATIC_psec_$component" + eval $str shared_mode_override=static @@ -66686,168 +49646,19 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psensor:file compile mode" >&5 -$as_echo_n "checking for MCA component psensor:file compile mode... " >&6; } - if test "$DIRECT_psensor" = "file" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 -$as_echo "$compile_mode - direct" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 -$as_echo "$compile_mode" >&6; } - fi - - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/psensor/file/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components file" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components file" - else - if test "psensor" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/psensor/file/lib${PMIX_LIB_PREFIX}mca_psensor_file.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/psensor/file/libmca_psensor_file.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_psensor_file_component;" >> $outfile.extern - echo " &mca_psensor_file_component, " >> $outfile.struct - static_components="$static_components file" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psensor:file can compile" >&5 -$as_echo_n "checking if MCA component psensor:file can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_psensor" = "file" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_psensor_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** psensor component file was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_psensor" = "file" ; then -as_fn_error $? "*** psensor component file was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$psensor_file_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $psensor_file_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psec:$component compile mode" >&5 +$as_echo_n "checking for MCA component psec:$component compile mode... " >&6; } + if test "$DIRECT_psec" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" -else + if test "$should_build" = "1" ; then @@ -66860,7 +49671,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do + for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -66879,7 +49690,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $pmix_str unset pmix_str @@ -66887,106 +49698,129 @@ pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $psensor_file_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done +# +# Invoke configure in a specific subdirectory. +# +# src/mca/psec/$component is the directory to invoke in +# $pmix_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="src/mca/psec/$component" +subdir_args="$pmix_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" +# +# Sanity checks +# - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 +$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -fi - if test "$psensor_file_WRAPPER_EXTRA_LIBS" = ""; then : + # + # Move into the target directory + # + subdir_parent=`pwd` + cd $subdir_dir + # + # Make a "../" for each directory in $subdir_dir. + # - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # + # Construct the --cache-file argument + # - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + # + # Invoke the configure script in the subdirectory + # + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi - for arg in $psensor_file_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi + # + # Go back to the topdir + # + + cd $subdir_parent fi - done + +# +# Clean up +# # Unwind the index @@ -67009,244 +49843,249 @@ unset $pmix_var done + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi -else + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/src/mca/psec/all_components/post_configure.sh" + if test -f $infile; then + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + fi - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/psec/$component/post_configure.sh" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "psec" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/psec/$component/lib${PMIX_LIB_PREFIX}mca_psec_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/psec/$component/libmca_psec_$component.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_psec_$component_component;" >> $outfile.extern + echo " &mca_psec_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:$component can compile" >&5 +$as_echo_n "checking if MCA component psec:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - for arg in $psensor_file_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_psec" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_psec_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** psec component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_psec" = "$component" ; then +as_fn_error $? "*** psec component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psec:$component can compile" >&5 +$as_echo_n "checking if MCA component psec:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_psec" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + if test ! -z "$DIRECT_psec" ; then + if test "$DIRECT_psec" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var + fi + fi done - fi - fi + MCA_pmix_psec_ALL_COMPONENTS="$all_components" + MCA_pmix_psec_STATIC_COMPONENTS="$static_components" + MCA_pmix_psec_DSO_COMPONENTS="$dso_components" + MCA_pmix_psec_STATIC_LTLIBS="$static_ltlibs" - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$psensor_file_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + MCA_pmix_psec_ALL_SUBDIRS= + for item in $all_components ; do + MCA_pmix_psec_ALL_SUBDIRS="$MCA_pmix_psec_ALL_SUBDIRS mca/psec/$item" + done - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $psensor_file_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi + MCA_pmix_psec_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_pmix_psec_STATIC_SUBDIRS="$MCA_pmix_psec_STATIC_SUBDIRS mca/psec/$item" done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var + MCA_pmix_psec_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_pmix_psec_DSO_SUBDIRS="$MCA_pmix_psec_DSO_SUBDIRS mca/psec/$item" done -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring psensor_file_WRAPPER_EXTRA_CPPFLAGS ($psensor_file_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring psensor_file_WRAPPER_EXTRA_CPPFLAGS ($psensor_file_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - else + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "psec" != "common"; then + cat > $outfile <&5 -$as_echo_n "checking if MCA component psensor:file can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +`cat $outfile.extern` - # If this component was requested as the default for this - # type, then abort. - if test "$with_psensor" = "file" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"file\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"file\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +const pmix_mca_base_component_t *mca_psec_base_static_components[] = { +`cat $outfile.struct` + NULL +}; - if test ! -z "$DIRECT_psensor" ; then - if test "$DIRECT_psensor" = "file" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"file\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"file\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 +#if defined(c_plusplus) || defined(__cplusplus) +} +#endif + +EOF + # Only replace the header file if a) it doesn't previously + # exist, or b) the contents are different. Do this to not + # trigger recompilation of certain .c files just because the + # timestamp changed on $outfile_real (similar to the way AC + # handles AC_CONFIG_HEADER files). + diff $outfile $outfile_real > /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile fi fi + rm -f $outfile.struct $outfile.extern - # add component to all component list - all_components="$all_components file" - fi + unset all_components static_components dso_components outfile outfile_real + + MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS psensor" + MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/psensor" + MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_psensor_ALL_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_psensor_DSO_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_psensor_STATIC_SUBDIRS)" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/psensor/libmca_psensor.la" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_psensor_STATIC_LTLIBS)" + + pmix_show_subsubtitle "Configuring MCA framework psensor" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=src/mca/psensor/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files src/mca/psensor/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_pmix_psensor_file_DSO=1 - else - BUILD_pmix_psensor_file_DSO=0 - fi - if test "$BUILD_pmix_psensor_file_DSO" = "1"; then - MCA_BUILD_pmix_psensor_file_DSO_TRUE= - MCA_BUILD_pmix_psensor_file_DSO_FALSE='#' -else - MCA_BUILD_pmix_psensor_file_DSO_TRUE='#' - MCA_BUILD_pmix_psensor_file_DSO_FALSE= -fi + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework psensor" >&5 +$as_echo_n "checking for no configure components in framework psensor... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: file, heartbeat" >&5 +$as_echo "file, heartbeat" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework psensor" >&5 +$as_echo_n "checking for m4 configure components in framework psensor... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - ac_config_files="$ac_config_files src/mca/psensor/file/Makefile" - unset compile_mode + # run the configure logic for the no-config components - pmix_show_subsubsubtitle "MCA component psensor:heartbeat (no configuration)" + pmix_show_subsubsubtitle "MCA component psensor:file (no configuration)" pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/src/mca/psensor/heartbeat" + component_path="$srcdir/src/mca/psensor/file" want_component=0 # build if: @@ -67279,7 +50118,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_psensor" ; then - if test "$DIRECT_psensor" = "heartbeat" ; then + if test "$DIRECT_psensor" = "file" ; then want_component=1 else want_component=0 @@ -67291,7 +50130,7 @@ if test "$DISABLE_psensor" = "1"; then : want_component=0 fi - if test "$DISABLE_psensor_heartbeat" = "1"; then : + if test "$DISABLE_psensor_file" = "1"; then : want_component=0 fi @@ -67303,10 +50142,10 @@ SHARED_FRAMEWORK="$DSO_psensor" - SHARED_COMPONENT="$DSO_psensor_heartbeat" + SHARED_COMPONENT="$DSO_psensor_file" STATIC_FRAMEWORK="$STATIC_psensor" - STATIC_COMPONENT="$STATIC_psensor_heartbeat" + STATIC_COMPONENT="$STATIC_psensor_file" shared_mode_override=static @@ -67324,9 +50163,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psensor:heartbeat compile mode" >&5 -$as_echo_n "checking for MCA component psensor:heartbeat compile mode... " >&6; } - if test "$DIRECT_psensor" = "heartbeat" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psensor:file compile mode" >&5 +$as_echo_n "checking for MCA component psensor:file compile mode... " >&6; } + if test "$DIRECT_psensor" = "file" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -67342,45 +50181,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/src/mca/psensor/heartbeat/post_configure.sh" + infile="$srcdir/src/mca/psensor/file/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components heartbeat" + all_components="$all_components file" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components heartbeat" + dso_components="$dso_components file" else if test "psensor" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/psensor/heartbeat/lib${PMIX_LIB_PREFIX}mca_psensor_heartbeat.la $static_ltlibs" + static_ltlibs="mca/psensor/file/lib${PMIX_LIB_PREFIX}mca_psensor_file.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/psensor/heartbeat/libmca_psensor_heartbeat.la $static_ltlibs" + static_ltlibs="mca/psensor/file/libmca_psensor_file.la $static_ltlibs" fi - echo "extern const pmix_mca_base_component_t mca_psensor_heartbeat_component;" >> $outfile.extern - echo " &mca_psensor_heartbeat_component, " >> $outfile.struct - static_components="$static_components heartbeat" + echo "extern const pmix_mca_base_component_t mca_psensor_file_component;" >> $outfile.extern + echo " &mca_psensor_file_component, " >> $outfile.struct + static_components="$static_components file" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psensor:heartbeat can compile" >&5 -$as_echo_n "checking if MCA component psensor:heartbeat can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psensor:file can compile" >&5 +$as_echo_n "checking if MCA component psensor:file can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_psensor" = "heartbeat" ; then + if test "$DIRECT_psensor" = "file" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_pmix_psensor_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** psensor component heartbeat was supposed to be direct-called, but +as_fn_error $? "*** psensor component file was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -67388,466 +50227,34 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_psensor" = "heartbeat" ; then -as_fn_error $? "*** psensor component heartbeat was supposed to be direct-called, but + if test "$DIRECT_psensor" = "file" ; then +as_fn_error $? "*** psensor component file was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$psensor_heartbeat_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $psensor_heartbeat_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $psensor_heartbeat_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$psensor_heartbeat_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $psensor_heartbeat_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $psensor_heartbeat_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$psensor_heartbeat_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $psensor_heartbeat_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring psensor_heartbeat_WRAPPER_EXTRA_CPPFLAGS ($psensor_heartbeat_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring psensor_heartbeat_WRAPPER_EXTRA_CPPFLAGS ($psensor_heartbeat_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psensor:heartbeat can compile" >&5 -$as_echo_n "checking if MCA component psensor:heartbeat can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psensor:file can compile" >&5 +$as_echo_n "checking if MCA component psensor:file can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_psensor" = "heartbeat" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"heartbeat\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"heartbeat\" failed to configure properly" >&2;} + if test "$with_psensor" = "file" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"file\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"file\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi if test ! -z "$DIRECT_psensor" ; then - if test "$DIRECT_psensor" = "heartbeat" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"heartbeat\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"heartbeat\" failed to configure properly" >&2;} + if test "$DIRECT_psensor" = "file" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"file\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"file\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 @@ -67855,57 +50262,36 @@ fi # add component to all component list - all_components="$all_components heartbeat" + all_components="$all_components file" fi # set the AM_CONDITIONAL on how we should build if test "$compile_mode" = "dso" ; then - BUILD_pmix_psensor_heartbeat_DSO=1 + BUILD_pmix_psensor_file_DSO=1 else - BUILD_pmix_psensor_heartbeat_DSO=0 + BUILD_pmix_psensor_file_DSO=0 fi - if test "$BUILD_pmix_psensor_heartbeat_DSO" = "1"; then - MCA_BUILD_pmix_psensor_heartbeat_DSO_TRUE= - MCA_BUILD_pmix_psensor_heartbeat_DSO_FALSE='#' + if test "$BUILD_pmix_psensor_file_DSO" = "1"; then + MCA_BUILD_pmix_psensor_file_DSO_TRUE= + MCA_BUILD_pmix_psensor_file_DSO_FALSE='#' else - MCA_BUILD_pmix_psensor_heartbeat_DSO_TRUE='#' - MCA_BUILD_pmix_psensor_heartbeat_DSO_FALSE= -fi - - - ac_config_files="$ac_config_files src/mca/psensor/heartbeat/Makefile" - - - unset compile_mode - - - # configure components that use built-in configuration scripts - - - - best_mca_component_priority=0 - components_looking_for_succeed=1 - components_last_result=0 - + MCA_BUILD_pmix_psensor_file_DSO_TRUE='#' + MCA_BUILD_pmix_psensor_file_DSO_FALSE= +fi - # configure components that provide their own configure script. - # It would be really hard to run these for "find first that - # works", so we don't :) + ac_config_files="$ac_config_files src/mca/psensor/file/Makefile" - if test "1" != "0"; then : + unset compile_mode - for component_path in $srcdir/src/mca/psensor/* ; do - component="`basename $component_path`" - if test -d $component_path && test -x $component_path/configure ; then - pmix_show_subsubsubtitle "MCA component psensor:$component (need to configure)" + pmix_show_subsubsubtitle "MCA component psensor:heartbeat (no configuration)" - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/src/mca/psensor/$component" + component_path="$srcdir/src/mca/psensor/heartbeat" want_component=0 # build if: @@ -67938,7 +50324,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_psensor" ; then - if test "$DIRECT_psensor" = "$component" ; then + if test "$DIRECT_psensor" = "heartbeat" ; then want_component=1 else want_component=0 @@ -67950,11 +50336,9 @@ if test "$DISABLE_psensor" = "1"; then : want_component=0 fi - str="DISABLED_COMPONENT_CHECK=\$DISABLE_psensor_$component" - eval $str - if test "$DISABLED_COMPONENT_CHECK" = "1" ; then - want_component=0 - fi + if test "$DISABLE_psensor_heartbeat" = "1"; then : + want_component=0 +fi if test "$want_component" = "1"; then : should_build=1 @@ -67964,12 +50348,10 @@ SHARED_FRAMEWORK="$DSO_psensor" - str="SHARED_COMPONENT=\$DSO_psensor_$component" - eval $str + SHARED_COMPONENT="$DSO_psensor_heartbeat" STATIC_FRAMEWORK="$STATIC_psensor" - str="STATIC_COMPONENT=\$STATIC_psensor_$component" - eval $str + STATIC_COMPONENT="$STATIC_psensor_heartbeat" shared_mode_override=static @@ -67987,9 +50369,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psensor:$component compile mode" >&5 -$as_echo_n "checking for MCA component psensor:$component compile mode... " >&6; } - if test "$DIRECT_psensor" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psensor:heartbeat compile mode" >&5 +$as_echo_n "checking for MCA component psensor:heartbeat compile mode... " >&6; } + if test "$DIRECT_psensor" = "heartbeat" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -67997,267 +50379,53 @@ $as_echo "$compile_mode" >&6; } fi - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - -# -# Invoke configure in a specific subdirectory. -# -# src/mca/psensor/$component is the directory to invoke in -# $pmix_subdir_args is the list of arguments to pass -# should_build=1 is actions to execute upon success -# should_build=0 is actions to execute upon failure -# -subdir_dir="src/mca/psensor/$component" -subdir_args="$pmix_subdir_args" -subdir_success="should_build=1" -subdir_failure="should_build=0" - -# -# Sanity checks -# - -if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then - { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 -$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} - - # - # Gotta check where srcdir is for VPATH builds. If srcdir is not - # ., then we need to mkdir the subdir. Otherwise, we can just cd - # into it. - # - - case $srcdir in - .) - ;; - *) - { case $subdir_dir in - [\\/]* | ?:[\\/]* ) total_dir=;; - *) total_dir=.;; - esac - temp=$subdir_dir - for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do - case $dir_part in - # Skip DOS drivespec - ?:) total_dir=$dir_part ;; - *) total_dir=$total_dir/$dir_part - test -d "$total_dir" || - mkdir "$total_dir" || - as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 - ;; - esac - done; } - - if test -d ./$subdir_dir; then :; - else - as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 - fi - ;; - esac - - # - # Move into the target directory - # - - subdir_parent=`pwd` - cd $subdir_dir - - # - # Make a "../" for each directory in $subdir_dir. - # - - subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - # - # Construct the --srcdir argument - # - - case $srcdir in - .) - # In place - subdir_srcdir="$srcdir" - ;; - [\\/]* | ?:[\\/]* ) - # Absolute path - subdir_srcdir="$srcdir/$subdir_dir" - ;; - *) - # Relative path - subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" - ;; - esac - - # - # Construct the --cache-file argument - # - - # BWB - subdir caching is a pain since we change CFLAGS and all that. - # Just disable it for now - subdir_cache_file="/dev/null" - - # - # Invoke the configure script in the subdirectory - # - - sub_configure="$SHELL '$subdir_srcdir/configure'" - { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 -$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} - eval "$sub_configure $subdir_args \ - --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" - if test "$?" = "0"; then - eval $subdir_success - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} - else - eval $subdir_failure - { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 -$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} - fi - - # - # Go back to the topdir - # - - cd $subdir_parent -fi - -# -# Clean up -# - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/src/mca/psensor/all_components/post_configure.sh" - if test -f $infile; then - - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1" ; then # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/src/mca/psensor/$component/post_configure.sh" + infile="$srcdir/src/mca/psensor/heartbeat/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" + all_components="$all_components heartbeat" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" + dso_components="$dso_components heartbeat" else if test "psensor" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/psensor/$component/lib${PMIX_LIB_PREFIX}mca_psensor_$component.la $static_ltlibs" + static_ltlibs="mca/psensor/heartbeat/lib${PMIX_LIB_PREFIX}mca_psensor_heartbeat.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/psensor/$component/libmca_psensor_$component.la $static_ltlibs" + static_ltlibs="mca/psensor/heartbeat/libmca_psensor_heartbeat.la $static_ltlibs" fi - echo "extern const pmix_mca_base_component_t mca_psensor_$component_component;" >> $outfile.extern - echo " &mca_psensor_$component_component, " >> $outfile.struct - static_components="$static_components $component" + echo "extern const pmix_mca_base_component_t mca_psensor_heartbeat_component;" >> $outfile.extern + echo " &mca_psensor_heartbeat_component, " >> $outfile.struct + static_components="$static_components heartbeat" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psensor:$component can compile" >&5 -$as_echo_n "checking if MCA component psensor:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psensor:heartbeat can compile" >&5 +$as_echo_n "checking if MCA component psensor:heartbeat can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_psensor" = "$component" ; then + if test "$DIRECT_psensor" = "heartbeat" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_pmix_psensor_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** psensor component $component was supposed to be direct-called, but +as_fn_error $? "*** psensor component heartbeat was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -68265,358 +50433,92 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_psensor" = "$component" ; then -as_fn_error $? "*** psensor component $component was supposed to be direct-called, but + if test "$DIRECT_psensor" = "heartbeat" ; then +as_fn_error $? "*** psensor component heartbeat was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$psensor_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - -str="line=\$psensor_$component_WRAPPER_EXTRA_LIBS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - - else + else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psensor:$component can compile" >&5 -$as_echo_n "checking if MCA component psensor:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psensor:heartbeat can compile" >&5 +$as_echo_n "checking if MCA component psensor:heartbeat can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_psensor" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + if test "$with_psensor" = "heartbeat" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"heartbeat\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"heartbeat\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - if test ! -z "$DIRECT_psensor" ; then - if test "$DIRECT_psensor" = "$component" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 -$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - fi - - fi - fi - done - -fi - - MCA_pmix_psensor_ALL_COMPONENTS="$all_components" - MCA_pmix_psensor_STATIC_COMPONENTS="$static_components" - MCA_pmix_psensor_DSO_COMPONENTS="$dso_components" - MCA_pmix_psensor_STATIC_LTLIBS="$static_ltlibs" - - - - - - - - MCA_pmix_psensor_ALL_SUBDIRS= - for item in $all_components ; do - MCA_pmix_psensor_ALL_SUBDIRS="$MCA_pmix_psensor_ALL_SUBDIRS mca/psensor/$item" - done - - - - MCA_pmix_psensor_STATIC_SUBDIRS= - for item in $static_components ; do - MCA_pmix_psensor_STATIC_SUBDIRS="$MCA_pmix_psensor_STATIC_SUBDIRS mca/psensor/$item" - done - - - - MCA_pmix_psensor_DSO_SUBDIRS= - for item in $dso_components ; do - MCA_pmix_psensor_DSO_SUBDIRS="$MCA_pmix_psensor_DSO_SUBDIRS mca/psensor/$item" - done - - - - # Create the final .h file that will be included in the type's - # top-level glue. This lists all the static components. We don't - # need to do this for "common". - if test "psensor" != "common"; then - cat > $outfile < /dev/null 2>&1 - if test "$?" != "0"; then - mv $outfile $outfile_real - else - rm -f $outfile + if test ! -z "$DIRECT_psensor" ; then + if test "$DIRECT_psensor" = "heartbeat" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"heartbeat\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"heartbeat\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - rm -f $outfile.struct $outfile.extern - unset all_components static_components dso_components outfile outfile_real + # add component to all component list + all_components="$all_components heartbeat" + fi - MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS pshmem" - MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/pshmem" - MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_pshmem_ALL_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_pshmem_DSO_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_pshmem_STATIC_SUBDIRS)" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/pshmem/libmca_pshmem.la" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_pshmem_STATIC_LTLIBS)" + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_pmix_psensor_heartbeat_DSO=1 + else + BUILD_pmix_psensor_heartbeat_DSO=0 + fi + if test "$BUILD_pmix_psensor_heartbeat_DSO" = "1"; then + MCA_BUILD_pmix_psensor_heartbeat_DSO_TRUE= + MCA_BUILD_pmix_psensor_heartbeat_DSO_FALSE='#' +else + MCA_BUILD_pmix_psensor_heartbeat_DSO_TRUE='#' + MCA_BUILD_pmix_psensor_heartbeat_DSO_FALSE= +fi - pmix_show_subsubtitle "Configuring MCA framework pshmem" + ac_config_files="$ac_config_files src/mca/psensor/heartbeat/Makefile" + unset compile_mode - # setup for framework - all_components= - static_components= - dso_components= - static_ltlibs= - # Ensure that the directory where the #include file is to live - # exists. Need to do this for VPATH builds, because the directory - # may not exist yet. For the "common" type, it's not really a - # component, so it doesn't have a base. - outdir=src/mca/pshmem/base - as_dir=$outdir; as_fn_mkdir_p + # configure components that use built-in configuration scripts - # emit Makefile rule - ac_config_files="$ac_config_files src/mca/pshmem/Makefile" - # remove any previously generated #include files - outfile_real=$outdir/static-components.h - outfile=$outfile_real.new - rm -f $outfile $outfile.struct $outfile.extern - touch $outfile.struct $outfile.extern + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 - # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework pshmem" >&5 -$as_echo_n "checking for no configure components in framework pshmem... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: mmap" >&5 -$as_echo "mmap" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework pshmem" >&5 -$as_echo_n "checking for m4 configure components in framework pshmem... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 -$as_echo "" >&6; } - # If there are components in the no configure list, but we're - # doing one of the "special" selection logics, abort with a - # reasonable message. + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) - # run the configure logic for the no-config components + if test "1" != "0"; then : - pmix_show_subsubsubtitle "MCA component pshmem:mmap (no configuration)" + for component_path in $srcdir/src/mca/psensor/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + pmix_show_subsubsubtitle "MCA component psensor:$component (need to configure)" - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" - component_path="$srcdir/src/mca/pshmem/mmap" + component_path="$srcdir/src/mca/psensor/$component" want_component=0 # build if: @@ -68648,8 +50550,8 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_pshmem" ; then - if test "$DIRECT_pshmem" = "mmap" ; then + if test ! -z "$DIRECT_psensor" ; then + if test "$DIRECT_psensor" = "$component" ; then want_component=1 else want_component=0 @@ -68658,12 +50560,14 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_pshmem" = "1"; then : - want_component=0 -fi - if test "$DISABLE_pshmem_mmap" = "1"; then : + if test "$DISABLE_psensor" = "1"; then : want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_psensor_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : should_build=1 @@ -68672,11 +50576,13 @@ fi - SHARED_FRAMEWORK="$DSO_pshmem" - SHARED_COMPONENT="$DSO_pshmem_mmap" + SHARED_FRAMEWORK="$DSO_psensor" + str="SHARED_COMPONENT=\$DSO_psensor_$component" + eval $str - STATIC_FRAMEWORK="$STATIC_pshmem" - STATIC_COMPONENT="$STATIC_pshmem_mmap" + STATIC_FRAMEWORK="$STATIC_psensor" + str="STATIC_COMPONENT=\$STATIC_psensor_$component" + eval $str shared_mode_override=static @@ -68694,9 +50600,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pshmem:mmap compile mode" >&5 -$as_echo_n "checking for MCA component pshmem:mmap compile mode... " >&6; } - if test "$DIRECT_pshmem" = "mmap" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psensor:$component compile mode" >&5 +$as_echo_n "checking for MCA component psensor:$component compile mode... " >&6; } + if test "$DIRECT_psensor" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -68704,77 +50610,9 @@ $as_echo "$compile_mode" >&6; } fi - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/pshmem/mmap/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components mmap" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components mmap" - else - if test "pshmem" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pshmem/mmap/lib${PMIX_LIB_PREFIX}mca_pshmem_mmap.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pshmem/mmap/libmca_pshmem_mmap.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_pshmem_mmap_component;" >> $outfile.extern - echo " &mca_pshmem_mmap_component, " >> $outfile.struct - static_components="$static_components mmap" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pshmem:mmap can compile" >&5 -$as_echo_n "checking if MCA component pshmem:mmap can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pshmem" = "mmap" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_pshmem_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** pshmem component mmap was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pshmem" = "mmap" ; then -as_fn_error $? "*** pshmem component mmap was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$pshmem_mmap_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$should_build" = "1" ; then @@ -68787,7 +50625,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do + for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -68806,7 +50644,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $pmix_str unset pmix_str @@ -68814,105 +50652,129 @@ pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $pshmem_mmap_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done +# +# Invoke configure in a specific subdirectory. +# +# src/mca/psensor/$component is the directory to invoke in +# $pmix_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="src/mca/psensor/$component" +subdir_args="$pmix_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" +# +# Sanity checks +# - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 +$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac -else + # + # Move into the target directory + # + subdir_parent=`pwd` + cd $subdir_dir + # + # Make a "../" for each directory in $subdir_dir. + # - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # + # Construct the --cache-file argument + # - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + # + # Invoke the configure script in the subdirectory + # + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} + fi - for arg in $pshmem_mmap_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi + # + # Go back to the topdir + # + + cd $subdir_parent fi - done + +# +# Clean up +# # Unwind the index @@ -68935,267 +50797,396 @@ unset $pmix_var done + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi -fi - if test "$pshmem_mmap_WRAPPER_EXTRA_LIBS" = ""; then : + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/src/mca/psensor/all_components/post_configure.sh" + if test -f $infile; then + + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + fi - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/psensor/$component/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "psensor" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/psensor/$component/lib${PMIX_LIB_PREFIX}mca_psensor_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/psensor/$component/libmca_psensor_$component.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_psensor_$component_component;" >> $outfile.extern + echo " &mca_psensor_$component_component, " >> $outfile.struct + static_components="$static_components $component" fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psensor:$component can compile" >&5 +$as_echo_n "checking if MCA component psensor:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_psensor" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_psensor_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** psensor component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_psensor" = "$component" ; then +as_fn_error $? "*** psensor component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psensor:$component can compile" >&5 +$as_echo_n "checking if MCA component psensor:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_psensor" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_psensor" ; then + if test "$DIRECT_psensor" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi + fi + + fi + fi done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str +fi - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + MCA_pmix_psensor_ALL_COMPONENTS="$all_components" + MCA_pmix_psensor_STATIC_COMPONENTS="$static_components" + MCA_pmix_psensor_DSO_COMPONENTS="$dso_components" + MCA_pmix_psensor_STATIC_LTLIBS="$static_ltlibs" + + + + + + + + MCA_pmix_psensor_ALL_SUBDIRS= + for item in $all_components ; do + MCA_pmix_psensor_ALL_SUBDIRS="$MCA_pmix_psensor_ALL_SUBDIRS mca/psensor/$item" + done - for arg in $pshmem_mmap_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + MCA_pmix_psensor_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_pmix_psensor_STATIC_SUBDIRS="$MCA_pmix_psensor_STATIC_SUBDIRS mca/psensor/$item" + done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var + MCA_pmix_psensor_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_pmix_psensor_DSO_SUBDIRS="$MCA_pmix_psensor_DSO_SUBDIRS mca/psensor/$item" done -else + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "psensor" != "common"; then + cat > $outfile <&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 +EOF + # Only replace the header file if a) it doesn't previously + # exist, or b) the contents are different. Do this to not + # trigger recompilation of certain .c files just because the + # timestamp changed on $outfile_real (similar to the way AC + # handles AC_CONFIG_HEADER files). + diff $outfile $outfile_real > /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile fi - done + fi + rm -f $outfile.struct $outfile.extern - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + unset all_components static_components dso_components outfile outfile_real - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS pshmem" + MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/pshmem" + MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_pshmem_ALL_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_pshmem_DSO_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_pshmem_STATIC_SUBDIRS)" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/pshmem/libmca_pshmem.la" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_pshmem_STATIC_LTLIBS)" + pmix_show_subsubtitle "Configuring MCA framework pshmem" - for arg in $pshmem_mmap_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=src/mca/pshmem/base + as_dir=$outdir; as_fn_mkdir_p + # emit Makefile rule + ac_config_files="$ac_config_files src/mca/pshmem/Makefile" -fi - fi + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$pshmem_mmap_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework pshmem" >&5 +$as_echo_n "checking for no configure components in framework pshmem... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: mmap" >&5 +$as_echo "mmap" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework pshmem" >&5 +$as_echo_n "checking for m4 configure components in framework pshmem... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + # run the configure logic for the no-config components - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + pmix_show_subsubsubtitle "MCA component pshmem:mmap (no configuration)" - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $pshmem_mmap_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 + component_path="$srcdir/src/mca/pshmem/mmap" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_pshmem" ; then + if test "$DIRECT_pshmem" = "mmap" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_pshmem" = "1"; then : + want_component=0 fi - done + if test "$DISABLE_pshmem_mmap" = "1"; then : + want_component=0 fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + + if test "$want_component" = "1"; then : + should_build=1 else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi + should_build=0 fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + SHARED_FRAMEWORK="$DSO_pshmem" + SHARED_COMPONENT="$DSO_pshmem_mmap" + + STATIC_FRAMEWORK="$STATIC_pshmem" + STATIC_COMPONENT="$STATIC_pshmem_mmap" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component pshmem:mmap compile mode" >&5 +$as_echo_n "checking for MCA component pshmem:mmap compile mode... " >&6; } + if test "$DIRECT_pshmem" = "mmap" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1" ; then -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring pshmem_mmap_WRAPPER_EXTRA_CPPFLAGS ($pshmem_mmap_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring pshmem_mmap_WRAPPER_EXTRA_CPPFLAGS ($pshmem_mmap_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/pshmem/mmap/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components mmap" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components mmap" + else + if test "pshmem" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pshmem/mmap/lib${PMIX_LIB_PREFIX}mca_pshmem_mmap.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pshmem/mmap/libmca_pshmem_mmap.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_pshmem_mmap_component;" >> $outfile.extern + echo " &mca_pshmem_mmap_component, " >> $outfile.struct + static_components="$static_components mmap" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pshmem:mmap can compile" >&5 +$as_echo_n "checking if MCA component pshmem:mmap can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pshmem" = "mmap" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_pshmem_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pshmem component mmap was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pshmem" = "mmap" ; then +as_fn_error $? "*** pshmem component mmap was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi else @@ -69526,190 +51517,12 @@ # Go back to the topdir # - cd $subdir_parent -fi - -# -# Clean up -# - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" - fi - - if test "$should_build" = "1" ; then - # do some extra work to pass flags back from the - # top-level configure, the way a configure.m4 - # component would. - infile="$srcdir/src/mca/pshmem/all_components/post_configure.sh" - if test -f $infile; then - - # First check for the ABORT tag - line="`$GREP ABORT= $infile | cut -d= -f2-`" - if test -n "$line" && test "$line" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 -$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} - as_fn_error $? "cannot continue" "$LINENO" 5 - fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi - - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/pshmem/$component/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components $component" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components $component" - else - if test "pshmem" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/pshmem/$component/lib${PMIX_LIB_PREFIX}mca_pshmem_$component.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/pshmem/$component/libmca_pshmem_$component.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_pshmem_$component_component;" >> $outfile.extern - echo " &mca_pshmem_$component_component, " >> $outfile.struct - static_components="$static_components $component" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pshmem:$component can compile" >&5 -$as_echo_n "checking if MCA component pshmem:$component can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_pshmem" = "$component" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_pshmem_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** pshmem component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_pshmem" = "$component" ; then -as_fn_error $? "*** pshmem component $component was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$pshmem_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi + cd $subdir_parent fi - done + +# +# Clean up +# # Unwind the index @@ -69732,95 +51545,83 @@ unset $pmix_var done -str="line=\$pshmem_$component_WRAPPER_EXTRA_LIBS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/src/mca/pshmem/all_components/post_configure.sh" + if test -f $infile; then - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + fi - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/pshmem/$component/post_configure.sh" + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "pshmem" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/pshmem/$component/lib${PMIX_LIB_PREFIX}mca_pshmem_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/pshmem/$component/libmca_pshmem_$component.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_pshmem_$component_component;" >> $outfile.extern + echo " &mca_pshmem_$component_component, " >> $outfile.struct + static_components="$static_components $component" fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pshmem:$component can compile" >&5 +$as_echo_n "checking if MCA component pshmem:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_pshmem" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_pshmem_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** pshmem component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_pshmem" = "$component" ; then +as_fn_error $? "*** pshmem component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - else { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component pshmem:$component can compile" >&5 @@ -69926,15 +51727,15 @@ unset all_components static_components dso_components outfile outfile_real - MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS ptl" - MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/ptl" - MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_ptl_ALL_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_ptl_DSO_SUBDIRS)" - MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_ptl_STATIC_SUBDIRS)" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/ptl/libmca_ptl.la" - MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_ptl_STATIC_LTLIBS)" + MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS psquash" + MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/psquash" + MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_psquash_ALL_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_psquash_DSO_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_psquash_STATIC_SUBDIRS)" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/psquash/libmca_psquash.la" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_psquash_STATIC_LTLIBS)" - pmix_show_subsubtitle "Configuring MCA framework ptl" + pmix_show_subsubtitle "Configuring MCA framework psquash" @@ -69949,11 +51750,11 @@ # exists. Need to do this for VPATH builds, because the directory # may not exist yet. For the "common" type, it's not really a # component, so it doesn't have a base. - outdir=src/mca/ptl/base + outdir=src/mca/psquash/base as_dir=$outdir; as_fn_mkdir_p # emit Makefile rule - ac_config_files="$ac_config_files src/mca/ptl/Makefile" + ac_config_files="$ac_config_files src/mca/psquash/Makefile" # remove any previously generated #include files @@ -69963,12 +51764,12 @@ touch $outfile.struct $outfile.extern # print some nice messages about what we're about to do... - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework ptl" >&5 -$as_echo_n "checking for no configure components in framework ptl... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: tcp, usock" >&5 -$as_echo "tcp, usock" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework ptl" >&5 -$as_echo_n "checking for m4 configure components in framework ptl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework psquash" >&5 +$as_echo_n "checking for no configure components in framework psquash... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: flex128, native" >&5 +$as_echo "flex128, native" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework psquash" >&5 +$as_echo_n "checking for m4 configure components in framework psquash... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } @@ -69980,13 +51781,13 @@ # run the configure logic for the no-config components - pmix_show_subsubsubtitle "MCA component ptl:tcp (no configuration)" + pmix_show_subsubsubtitle "MCA component psquash:flex128 (no configuration)" pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/src/mca/ptl/tcp" + component_path="$srcdir/src/mca/psquash/flex128" want_component=0 # build if: @@ -70018,8 +51819,441 @@ fi # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. - if test ! -z "$DIRECT_ptl" ; then - if test "$DIRECT_ptl" = "tcp" ; then + if test ! -z "$DIRECT_psquash" ; then + if test "$DIRECT_psquash" = "flex128" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_psquash" = "1"; then : + want_component=0 +fi + if test "$DISABLE_psquash_flex128" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_psquash" + SHARED_COMPONENT="$DSO_psquash_flex128" + + STATIC_FRAMEWORK="$STATIC_psquash" + STATIC_COMPONENT="$STATIC_psquash_flex128" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psquash:flex128 compile mode" >&5 +$as_echo_n "checking for MCA component psquash:flex128 compile mode... " >&6; } + if test "$DIRECT_psquash" = "flex128" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/psquash/flex128/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components flex128" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components flex128" + else + if test "psquash" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/psquash/flex128/lib${PMIX_LIB_PREFIX}mca_psquash_flex128.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/psquash/flex128/libmca_psquash_flex128.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_psquash_flex128_component;" >> $outfile.extern + echo " &mca_psquash_flex128_component, " >> $outfile.struct + static_components="$static_components flex128" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psquash:flex128 can compile" >&5 +$as_echo_n "checking if MCA component psquash:flex128 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_psquash" = "flex128" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_psquash_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** psquash component flex128 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_psquash" = "flex128" ; then +as_fn_error $? "*** psquash component flex128 was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psquash:flex128 can compile" >&5 +$as_echo_n "checking if MCA component psquash:flex128 can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_psquash" = "flex128" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"flex128\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"flex128\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_psquash" ; then + if test "$DIRECT_psquash" = "flex128" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"flex128\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"flex128\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components flex128" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_pmix_psquash_flex128_DSO=1 + else + BUILD_pmix_psquash_flex128_DSO=0 + fi + if test "$BUILD_pmix_psquash_flex128_DSO" = "1"; then + MCA_BUILD_pmix_psquash_flex128_DSO_TRUE= + MCA_BUILD_pmix_psquash_flex128_DSO_FALSE='#' +else + MCA_BUILD_pmix_psquash_flex128_DSO_TRUE='#' + MCA_BUILD_pmix_psquash_flex128_DSO_FALSE= +fi + + + ac_config_files="$ac_config_files src/mca/psquash/flex128/Makefile" + + + unset compile_mode + + pmix_show_subsubsubtitle "MCA component psquash:native (no configuration)" + + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" + + + + component_path="$srcdir/src/mca/psquash/native" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_psquash" ; then + if test "$DIRECT_psquash" = "native" ; then + want_component=1 + else + want_component=0 + fi + fi + fi + + # if we were explicitly disabled, don't build :) + if test "$DISABLE_psquash" = "1"; then : + want_component=0 +fi + if test "$DISABLE_psquash_native" = "1"; then : + want_component=0 +fi + + if test "$want_component" = "1"; then : + should_build=1 +else + should_build=0 +fi + + + SHARED_FRAMEWORK="$DSO_psquash" + SHARED_COMPONENT="$DSO_psquash_native" + + STATIC_FRAMEWORK="$STATIC_psquash" + STATIC_COMPONENT="$STATIC_psquash_native" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psquash:native compile mode" >&5 +$as_echo_n "checking for MCA component psquash:native compile mode... " >&6; } + if test "$DIRECT_psquash" = "native" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi + + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + + if test "$should_build" = "1" ; then + + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/psquash/native/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components native" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components native" + else + if test "psquash" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/psquash/native/lib${PMIX_LIB_PREFIX}mca_psquash_native.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/psquash/native/libmca_psquash_native.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_psquash_native_component;" >> $outfile.extern + echo " &mca_psquash_native_component, " >> $outfile.struct + static_components="$static_components native" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psquash:native can compile" >&5 +$as_echo_n "checking if MCA component psquash:native can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_psquash" = "native" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_psquash_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** psquash component native was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_psquash" = "native" ; then +as_fn_error $? "*** psquash component native was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psquash:native can compile" >&5 +$as_echo_n "checking if MCA component psquash:native can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + # If this component was requested as the default for this + # type, then abort. + if test "$with_psquash" = "native" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"native\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"native\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + + if test ! -z "$DIRECT_psquash" ; then + if test "$DIRECT_psquash" = "native" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"native\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"native\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + + # add component to all component list + all_components="$all_components native" + fi + + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_pmix_psquash_native_DSO=1 + else + BUILD_pmix_psquash_native_DSO=0 + fi + if test "$BUILD_pmix_psquash_native_DSO" = "1"; then + MCA_BUILD_pmix_psquash_native_DSO_TRUE= + MCA_BUILD_pmix_psquash_native_DSO_FALSE='#' +else + MCA_BUILD_pmix_psquash_native_DSO_TRUE='#' + MCA_BUILD_pmix_psquash_native_DSO_FALSE= +fi + + + ac_config_files="$ac_config_files src/mca/psquash/native/Makefile" + + + unset compile_mode + + + # configure components that use built-in configuration scripts + + + + best_mca_component_priority=0 + components_looking_for_succeed=1 + components_last_result=0 + + + # configure components that provide their own configure script. + # It would be really hard to run these for "find first that + # works", so we don't :) + + + + if test "1" != "0"; then : + + for component_path in $srcdir/src/mca/psquash/* ; do + component="`basename $component_path`" + if test -d $component_path && test -x $component_path/configure ; then + pmix_show_subsubsubtitle "MCA component psquash:$component (need to configure)" + + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: before, should_build=" + + + + component_path="$srcdir/src/mca/psquash/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_psquash" ; then + if test "$DIRECT_psquash" = "$component" ; then want_component=1 else want_component=0 @@ -70028,12 +52262,14 @@ fi # if we were explicitly disabled, don't build :) - if test "$DISABLE_ptl" = "1"; then : - want_component=0 -fi - if test "$DISABLE_ptl_tcp" = "1"; then : + if test "$DISABLE_psquash" = "1"; then : want_component=0 fi + str="DISABLED_COMPONENT_CHECK=\$DISABLE_psquash_$component" + eval $str + if test "$DISABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi if test "$want_component" = "1"; then : should_build=1 @@ -70042,11 +52278,13 @@ fi - SHARED_FRAMEWORK="$DSO_ptl" - SHARED_COMPONENT="$DSO_ptl_tcp" + SHARED_FRAMEWORK="$DSO_psquash" + str="SHARED_COMPONENT=\$DSO_psquash_$component" + eval $str - STATIC_FRAMEWORK="$STATIC_ptl" - STATIC_COMPONENT="$STATIC_ptl_tcp" + STATIC_FRAMEWORK="$STATIC_psquash" + str="STATIC_COMPONENT=\$STATIC_psquash_$component" + eval $str shared_mode_override=static @@ -70064,9 +52302,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ptl:tcp compile mode" >&5 -$as_echo_n "checking for MCA component ptl:tcp compile mode... " >&6; } - if test "$DIRECT_ptl" = "tcp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component psquash:$component compile mode" >&5 +$as_echo_n "checking for MCA component psquash:$component compile mode... " >&6; } + if test "$DIRECT_psquash" = "$component" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -70074,77 +52312,9 @@ $as_echo "$compile_mode" >&6; } fi - pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" - - if test "$should_build" = "1" ; then - - - - # See if it dropped an output file for us to pick up some - # shell variables in. - infile="$srcdir/src/mca/ptl/tcp/post_configure.sh" - - # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components tcp" - - if test "$compile_mode" = "dso" ; then - dso_components="$dso_components tcp" - else - if test "ptl" = "common"; then - # Static libraries in "common" frameworks are installed, and - # therefore must obey the $FRAMEWORK_LIB_PREFIX that was - # set. - static_ltlibs="mca/ptl/tcp/lib${PMIX_LIB_PREFIX}mca_ptl_tcp.la $static_ltlibs" - else - # Other frameworks do not have to obey the - # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ptl/tcp/libmca_ptl_tcp.la $static_ltlibs" - fi - echo "extern const pmix_mca_base_component_t mca_ptl_tcp_component;" >> $outfile.extern - echo " &mca_ptl_tcp_component, " >> $outfile.struct - static_components="$static_components tcp" - fi - - # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ptl:tcp can compile" >&5 -$as_echo_n "checking if MCA component ptl:tcp can compile... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - if test -f $infile; then - # check for direct call header to include. This will be - # AC_SUBSTed later. - if test "$DIRECT_ptl" = "tcp" ; then - if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then - line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" - str="MCA_pmix_ptl_DIRECT_CALL_HEADER=$line" - eval $str - else -as_fn_error $? "*** ptl component tcp was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi - else - # were we supposed to have found something in the - # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ptl" = "tcp" ; then -as_fn_error $? "*** ptl component tcp was supposed to be direct-called, but -*** does not appear to support direct calling. -*** Aborting" "$LINENO" 5 - fi - fi + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after, should_build=$should_build" - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$ptl_tcp_WRAPPER_EXTRA_LDFLAGS" = ""; then : + if test "$should_build" = "1" ; then @@ -70157,7 +52327,7 @@ # This is a simple sanity check to ensure we're not already # overwriting pre-existing variables (that have a non-empty # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do + for pmix_var in subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp; do pmix_str="pmix_str=\"\$$pmix_var\"" eval $pmix_str @@ -70176,7 +52346,7 @@ # Ok, we passed the simple sanity check. Save all these names so # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" + pmix_str="pmix_scope_$pmix_scope_index=\"subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp\"" eval $pmix_str unset pmix_str @@ -70184,268 +52354,129 @@ pmix_scope_index=`expr $pmix_scope_index + 1` - for arg in $ptl_tcp_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str +# +# Invoke configure in a specific subdirectory. +# +# src/mca/psquash/$component is the directory to invoke in +# $pmix_subdir_args is the list of arguments to pass +# should_build=1 is actions to execute upon success +# should_build=0 is actions to execute upon failure +# +subdir_dir="src/mca/psquash/$component" +subdir_args="$pmix_subdir_args" +subdir_success="should_build=1" +subdir_failure="should_build=0" - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done +# +# Sanity checks +# - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + { $as_echo "$as_me:${as_lineno-$LINENO}: PMIX configuring in $subdir_dir" >&5 +$as_echo "$as_me: PMIX configuring in $subdir_dir" >&6;} - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [\\/]* | ?:[\\/]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$@"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + as_fn_error $? "cannot create $subdir_dir" "$LINENO" 5 + ;; + esac + done; } - for arg in $ptl_tcp_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done + if test -d ./$subdir_dir; then :; + else + as_fn_error $? "cannot create \`pwd\`/$subdir_dir" "$LINENO" 5 + fi + ;; + esac + # + # Move into the target directory + # - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi + subdir_parent=`pwd` + cd $subdir_dir - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + # + # Make a "../" for each directory in $subdir_dir. + # - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + subdir_dots=`echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` + # + # Construct the --srcdir argument + # + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [\\/]* | ?:[\\/]* ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac -fi - if test "$ptl_tcp_WRAPPER_EXTRA_LIBS" = ""; then : + # + # Construct the --cache-file argument + # + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + # + # Invoke the configure script in the subdirectory + # - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 + sub_configure="$SHELL '$subdir_srcdir/configure'" + { $as_echo "$as_me:${as_lineno-$LINENO}: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&5 +$as_echo "$as_me: running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking" >&6;} + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure succeeded for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure succeeded for $subdir_dir" >&6;} + else + eval $subdir_failure + { $as_echo "$as_me:${as_lineno-$LINENO}: $sub_configure *failed* for $subdir_dir" >&5 +$as_echo "$as_me: $sub_configure *failed* for $subdir_dir" >&6;} fi - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - + # + # Go back to the topdir + # - for arg in $ptl_tcp_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi + cd $subdir_parent fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - for arg in $ptl_tcp_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done +# +# Clean up +# # Unwind the index @@ -70468,163 +52499,249 @@ unset $pmix_var done + pmix_show_verbose "PMIX_MCA_ALL_CONFIG_COMPONENTS: after subdir, should_build=$should_build" + fi -fi + if test "$should_build" = "1" ; then + # do some extra work to pass flags back from the + # top-level configure, the way a configure.m4 + # component would. + infile="$srcdir/src/mca/psquash/all_components/post_configure.sh" + if test -f $infile; then - fi + # First check for the ABORT tag + line="`$GREP ABORT= $infile | cut -d= -f2-`" + if test -n "$line" && test "$line" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component configure script told me to abort" >&5 +$as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} + as_fn_error $? "cannot continue" "$LINENO" 5 + fi + fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$ptl_tcp_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/psquash/$component/post_configure.sh" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components $component" - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components $component" + else + if test "psquash" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/psquash/$component/lib${PMIX_LIB_PREFIX}mca_psquash_$component.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/psquash/$component/libmca_psquash_$component.la $static_ltlibs" fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $ptl_tcp_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg -else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ptl_tcp_WRAPPER_EXTRA_CPPFLAGS ($ptl_tcp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring ptl_tcp_WRAPPER_EXTRA_CPPFLAGS ($ptl_tcp_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + echo "extern const pmix_mca_base_component_t mca_psquash_$component_component;" >> $outfile.extern + echo " &mca_psquash_$component_component, " >> $outfile.struct + static_components="$static_components $component" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psquash:$component can compile" >&5 +$as_echo_n "checking if MCA component psquash:$component can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_psquash" = "$component" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_psquash_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** psquash component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_psquash" = "$component" ; then +as_fn_error $? "*** psquash component $component was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ptl:tcp can compile" >&5 -$as_echo_n "checking if MCA component ptl:tcp can compile... " >&6; } + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component psquash:$component can compile" >&5 +$as_echo_n "checking if MCA component psquash:$component can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # If this component was requested as the default for this # type, then abort. - if test "$with_ptl" = "tcp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tcp\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tcp\" failed to configure properly" >&2;} + if test "$with_psquash" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 $as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - if test ! -z "$DIRECT_ptl" ; then - if test "$DIRECT_ptl" = "tcp" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tcp\" failed to configure properly" >&5 -$as_echo "$as_me: WARNING: MCA component \"tcp\" failed to configure properly" >&2;} + if test ! -z "$DIRECT_psquash" ; then + if test "$DIRECT_psquash" = "$component" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"$component\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"$component\" failed to configure properly" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 $as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi fi - # add component to all component list - all_components="$all_components tcp" - fi + fi + fi + done - # set the AM_CONDITIONAL on how we should build - if test "$compile_mode" = "dso" ; then - BUILD_pmix_ptl_tcp_DSO=1 - else - BUILD_pmix_ptl_tcp_DSO=0 - fi - if test "$BUILD_pmix_ptl_tcp_DSO" = "1"; then - MCA_BUILD_pmix_ptl_tcp_DSO_TRUE= - MCA_BUILD_pmix_ptl_tcp_DSO_FALSE='#' -else - MCA_BUILD_pmix_ptl_tcp_DSO_TRUE='#' - MCA_BUILD_pmix_ptl_tcp_DSO_FALSE= fi + MCA_pmix_psquash_ALL_COMPONENTS="$all_components" + MCA_pmix_psquash_STATIC_COMPONENTS="$static_components" + MCA_pmix_psquash_DSO_COMPONENTS="$dso_components" + MCA_pmix_psquash_STATIC_LTLIBS="$static_ltlibs" - ac_config_files="$ac_config_files src/mca/ptl/tcp/Makefile" - unset compile_mode - pmix_show_subsubsubtitle "MCA component ptl:usock (no configuration)" + + + + MCA_pmix_psquash_ALL_SUBDIRS= + for item in $all_components ; do + MCA_pmix_psquash_ALL_SUBDIRS="$MCA_pmix_psquash_ALL_SUBDIRS mca/psquash/$item" + done + + + + MCA_pmix_psquash_STATIC_SUBDIRS= + for item in $static_components ; do + MCA_pmix_psquash_STATIC_SUBDIRS="$MCA_pmix_psquash_STATIC_SUBDIRS mca/psquash/$item" + done + + + + MCA_pmix_psquash_DSO_SUBDIRS= + for item in $dso_components ; do + MCA_pmix_psquash_DSO_SUBDIRS="$MCA_pmix_psquash_DSO_SUBDIRS mca/psquash/$item" + done + + + + # Create the final .h file that will be included in the type's + # top-level glue. This lists all the static components. We don't + # need to do this for "common". + if test "psquash" != "common"; then + cat > $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + unset all_components static_components dso_components outfile outfile_real + + MCA_pmix_FRAMEWORKS="$MCA_pmix_FRAMEWORKS ptl" + MCA_pmix_FRAMEWORKS_SUBDIRS="$MCA_pmix_FRAMEWORKS_SUBDIRS mca/ptl" + MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS \$(MCA_pmix_ptl_ALL_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS \$(MCA_pmix_ptl_DSO_SUBDIRS)" + MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS \$(MCA_pmix_ptl_STATIC_SUBDIRS)" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS mca/ptl/libmca_ptl.la" + MCA_pmix_FRAMEWORK_LIBS="$MCA_pmix_FRAMEWORK_LIBS \$(MCA_pmix_ptl_STATIC_LTLIBS)" + + pmix_show_subsubtitle "Configuring MCA framework ptl" + + + + + # setup for framework + all_components= + static_components= + dso_components= + static_ltlibs= + + # Ensure that the directory where the #include file is to live + # exists. Need to do this for VPATH builds, because the directory + # may not exist yet. For the "common" type, it's not really a + # component, so it doesn't have a base. + outdir=src/mca/ptl/base + as_dir=$outdir; as_fn_mkdir_p + + # emit Makefile rule + ac_config_files="$ac_config_files src/mca/ptl/Makefile" + + + # remove any previously generated #include files + outfile_real=$outdir/static-components.h + outfile=$outfile_real.new + rm -f $outfile $outfile.struct $outfile.extern + touch $outfile.struct $outfile.extern + + # print some nice messages about what we're about to do... + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for no configure components in framework ptl" >&5 +$as_echo_n "checking for no configure components in framework ptl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: tcp, usock" >&5 +$as_echo "tcp, usock" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m4 configure components in framework ptl" >&5 +$as_echo_n "checking for m4 configure components in framework ptl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + + # If there are components in the no configure list, but we're + # doing one of the "special" selection logics, abort with a + # reasonable message. + + + + # run the configure logic for the no-config components + + pmix_show_subsubsubtitle "MCA component ptl:tcp (no configuration)" pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - component_path="$srcdir/src/mca/ptl/usock" + component_path="$srcdir/src/mca/ptl/tcp" want_component=0 # build if: @@ -70657,7 +52774,7 @@ # if this component type is direct and we are not it, we don't want # to be built. Otherwise, we do want to be built. if test ! -z "$DIRECT_ptl" ; then - if test "$DIRECT_ptl" = "usock" ; then + if test "$DIRECT_ptl" = "tcp" ; then want_component=1 else want_component=0 @@ -70669,7 +52786,7 @@ if test "$DISABLE_ptl" = "1"; then : want_component=0 fi - if test "$DISABLE_ptl_usock" = "1"; then : + if test "$DISABLE_ptl_tcp" = "1"; then : want_component=0 fi @@ -70681,10 +52798,10 @@ SHARED_FRAMEWORK="$DSO_ptl" - SHARED_COMPONENT="$DSO_ptl_usock" + SHARED_COMPONENT="$DSO_ptl_tcp" STATIC_FRAMEWORK="$STATIC_ptl" - STATIC_COMPONENT="$STATIC_ptl_usock" + STATIC_COMPONENT="$STATIC_ptl_tcp" shared_mode_override=static @@ -70702,9 +52819,9 @@ compile_mode="static" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ptl:usock compile mode" >&5 -$as_echo_n "checking for MCA component ptl:usock compile mode... " >&6; } - if test "$DIRECT_ptl" = "usock" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ptl:tcp compile mode" >&5 +$as_echo_n "checking for MCA component ptl:tcp compile mode... " >&6; } + if test "$DIRECT_ptl" = "tcp" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 $as_echo "$compile_mode - direct" >&6; } else @@ -70720,45 +52837,45 @@ # See if it dropped an output file for us to pick up some # shell variables in. - infile="$srcdir/src/mca/ptl/usock/post_configure.sh" + infile="$srcdir/src/mca/ptl/tcp/post_configure.sh" # Add this subdir to the mast list of all MCA component subdirs - all_components="$all_components usock" + all_components="$all_components tcp" if test "$compile_mode" = "dso" ; then - dso_components="$dso_components usock" + dso_components="$dso_components tcp" else if test "ptl" = "common"; then # Static libraries in "common" frameworks are installed, and # therefore must obey the $FRAMEWORK_LIB_PREFIX that was # set. - static_ltlibs="mca/ptl/usock/lib${PMIX_LIB_PREFIX}mca_ptl_usock.la $static_ltlibs" + static_ltlibs="mca/ptl/tcp/lib${PMIX_LIB_PREFIX}mca_ptl_tcp.la $static_ltlibs" else # Other frameworks do not have to obey the # $FRAMEWORK_LIB_PREFIX prefix. - static_ltlibs="mca/ptl/usock/libmca_ptl_usock.la $static_ltlibs" + static_ltlibs="mca/ptl/tcp/libmca_ptl_tcp.la $static_ltlibs" fi - echo "extern const pmix_mca_base_component_t mca_ptl_usock_component;" >> $outfile.extern - echo " &mca_ptl_usock_component, " >> $outfile.struct - static_components="$static_components usock" + echo "extern const pmix_mca_base_component_t mca_ptl_tcp_component;" >> $outfile.extern + echo " &mca_ptl_tcp_component, " >> $outfile.struct + static_components="$static_components tcp" fi # Output pretty results - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ptl:usock can compile" >&5 -$as_echo_n "checking if MCA component ptl:usock can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ptl:tcp can compile" >&5 +$as_echo_n "checking if MCA component ptl:tcp can compile... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -f $infile; then # check for direct call header to include. This will be # AC_SUBSTed later. - if test "$DIRECT_ptl" = "usock" ; then + if test "$DIRECT_ptl" = "tcp" ; then if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" str="MCA_pmix_ptl_DIRECT_CALL_HEADER=$line" eval $str else -as_fn_error $? "*** ptl component usock was supposed to be direct-called, but +as_fn_error $? "*** ptl component tcp was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi @@ -70766,444 +52883,218 @@ else # were we supposed to have found something in the # post_configure.sh, but the file didn't exist? - if test "$DIRECT_ptl" = "usock" ; then -as_fn_error $? "*** ptl component usock was supposed to be direct-called, but + if test "$DIRECT_ptl" = "tcp" ; then +as_fn_error $? "*** ptl component tcp was supposed to be direct-called, but *** does not appear to support direct calling. *** Aborting" "$LINENO" 5 fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - if test "$ptl_usock_WRAPPER_EXTRA_LDFLAGS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $ptl_usock_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $ptl_usock_WRAPPER_EXTRA_LDFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -fi - if test "$ptl_usock_WRAPPER_EXTRA_LIBS" = ""; then : - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $ptl_usock_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - -else - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $ptl_usock_WRAPPER_EXTRA_LIBS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ptl:tcp can compile" >&5 +$as_echo_n "checking if MCA component ptl:tcp can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} + # If this component was requested as the default for this + # type, then abort. + if test "$with_ptl" = "tcp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tcp\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tcp\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default" >&2;} as_fn_error $? "Cannot continue" "$LINENO" 5 fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + if test ! -z "$DIRECT_ptl" ; then + if test "$DIRECT_ptl" = "tcp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MCA component \"tcp\" failed to configure properly" >&5 +$as_echo "$as_me: WARNING: MCA component \"tcp\" failed to configure properly" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This component was selected as the default (direct call)" >&5 +$as_echo "$as_me: WARNING: This component was selected as the default (direct call)" >&2;} + as_fn_error $? "Cannot continue" "$LINENO" 5 + fi + fi + # add component to all component list + all_components="$all_components tcp" + fi + # set the AM_CONDITIONAL on how we should build + if test "$compile_mode" = "dso" ; then + BUILD_pmix_ptl_tcp_DSO=1 + else + BUILD_pmix_ptl_tcp_DSO=0 + fi + if test "$BUILD_pmix_ptl_tcp_DSO" = "1"; then + MCA_BUILD_pmix_ptl_tcp_DSO_TRUE= + MCA_BUILD_pmix_ptl_tcp_DSO_FALSE='#' +else + MCA_BUILD_pmix_ptl_tcp_DSO_TRUE='#' + MCA_BUILD_pmix_ptl_tcp_DSO_FALSE= fi - fi - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - if test "$ptl_usock_WRAPPER_EXTRA_CPPFLAGS" != ""; then : - stop_at_first=0 - if test "$compile_mode" = "static" && test "$stop_at_first" = "1"; then : - if test "$with_devel_headers" = "yes"; then : + ac_config_files="$ac_config_files src/mca/ptl/tcp/Makefile" + unset compile_mode - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi + pmix_show_subsubsubtitle "MCA component ptl:usock (no configuration)" - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: before, should_build=1" - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` + component_path="$srcdir/src/mca/ptl/usock" + want_component=0 + # build if: + # - the component type is direct and we are that component + # - there is no pmix_ignore file + # - there is an pmix_ignore, but there is an empty pmix_unignore + # - there is an pmix_ignore, but username is in pmix_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.pmix_ignore ; then + # If there is an pmix_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.pmix_unignore ; then + # if there is an empty pmix_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.pmix_unignore ; then + want_component=1 + elif test ! -z "`$GREP $PMIX_CONFIGURE_USER $component_path/.pmix_unignore`" ; then + want_component=1 + fi + fi + # if this component type is direct and we are not it, we don't want + # to be built. Otherwise, we do want to be built. + if test ! -z "$DIRECT_ptl" ; then + if test "$DIRECT_ptl" = "usock" ; then + want_component=1 + else + want_component=0 + fi + fi + fi - for arg in $ptl_usock_WRAPPER_EXTRA_CPPFLAGS; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_cppflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 + # if we were explicitly disabled, don't build :) + if test "$DISABLE_ptl" = "1"; then : + want_component=0 fi - done + if test "$DISABLE_ptl_usock" = "1"; then : + want_component=0 fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_cppflags"; then : - mca_wrapper_extra_cppflags=$arg + + if test "$want_component" = "1"; then : + should_build=1 else - mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags $arg" -fi + should_build=0 fi - done - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 + SHARED_FRAMEWORK="$DSO_ptl" + SHARED_COMPONENT="$DSO_ptl_usock" + + STATIC_FRAMEWORK="$STATIC_ptl" + STATIC_COMPONENT="$STATIC_ptl_usock" + + shared_mode_override=static + + # Setup for either shared or static + if test "$STATIC_FRAMEWORK" = "1" || \ + test "$STATIC_COMPONENT" = "1" || \ + test "$STATIC_all" = "1" ; then + compile_mode="static" + elif test "$shared_mode_override" = "dso" || \ + test "$SHARED_FRAMEWORK" = "1" || \ + test "$SHARED_COMPONENT" = "1" || \ + test "$DSO_all" = "1"; then + compile_mode="dso" + else + compile_mode="static" fi - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCA component ptl:usock compile mode" >&5 +$as_echo_n "checking for MCA component ptl:usock compile mode... " >&6; } + if test "$DIRECT_ptl" = "usock" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode - direct" >&5 +$as_echo "$compile_mode - direct" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $compile_mode" >&5 +$as_echo "$compile_mode" >&6; } + fi - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done + pmix_show_verbose "PMIX_MCA_NO_CONFIG_COMPONENT: after, should_build=$should_build" + if test "$should_build" = "1" ; then -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring ptl_usock_WRAPPER_EXTRA_CPPFLAGS ($ptl_usock_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&5 -$as_echo "$as_me: WARNING: ignoring ptl_usock_WRAPPER_EXTRA_CPPFLAGS ($ptl_usock_WRAPPER_EXTRA_CPPFLAGS): component conditions not met" >&2;} -fi -fi + + + # See if it dropped an output file for us to pick up some + # shell variables in. + infile="$srcdir/src/mca/ptl/usock/post_configure.sh" + + # Add this subdir to the mast list of all MCA component subdirs + all_components="$all_components usock" + + if test "$compile_mode" = "dso" ; then + dso_components="$dso_components usock" + else + if test "ptl" = "common"; then + # Static libraries in "common" frameworks are installed, and + # therefore must obey the $FRAMEWORK_LIB_PREFIX that was + # set. + static_ltlibs="mca/ptl/usock/lib${PMIX_LIB_PREFIX}mca_ptl_usock.la $static_ltlibs" + else + # Other frameworks do not have to obey the + # $FRAMEWORK_LIB_PREFIX prefix. + static_ltlibs="mca/ptl/usock/libmca_ptl_usock.la $static_ltlibs" + fi + echo "extern const pmix_mca_base_component_t mca_ptl_usock_component;" >> $outfile.extern + echo " &mca_ptl_usock_component, " >> $outfile.struct + static_components="$static_components usock" + fi + + # Output pretty results + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ptl:usock can compile" >&5 +$as_echo_n "checking if MCA component ptl:usock can compile... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -f $infile; then + # check for direct call header to include. This will be + # AC_SUBSTed later. + if test "$DIRECT_ptl" = "usock" ; then + if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then + line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`" + str="MCA_pmix_ptl_DIRECT_CALL_HEADER=$line" + eval $str + else +as_fn_error $? "*** ptl component usock was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi + else + # were we supposed to have found something in the + # post_configure.sh, but the file didn't exist? + if test "$DIRECT_ptl" = "usock" ; then +as_fn_error $? "*** ptl component usock was supposed to be direct-called, but +*** does not appear to support direct calling. +*** Aborting" "$LINENO" 5 + fi + fi else @@ -71579,18 +53470,7 @@ $as_echo "$as_me: WARNING: MCA component configure script told me to abort" >&2;} as_fn_error $? "cannot continue" "$LINENO" 5 fi - - line="`$GREP WRAPPER_EXTRA_LDFLAGS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LDFLAGS="$line" - fi - line="`$GREP WRAPPER_EXTRA_LIBS= $infile | cut -d= -f2-`" - eval "line=$line" - if test -n "$line"; then - all_components_static_components_WRAPPER_EXTRA_LIBS="$line" - fi - fi + fi @@ -71650,185 +53530,6 @@ fi fi - # if the component is building, add it's WRAPPER_EXTRA_LDFLAGS and - # WRAPPER_EXTRA_LIBS. If the component doesn't specify it's - # WRAPPER_EXTRA_LIBS and WRAPPER_EXTRA_LDFLAGS, try using LDFLAGS and LIBS if - # component didn't have it's own configure script (in which case, - # we know it didn't set LDFLAGS and LIBS because it can't) Don't - # have to do this if the component is building dynamically, - # because it will link against these (without a dependency from - # libmpi.so to these flags) - if test "$compile_mode" = "static"; then - str="line=\$ptl_$component_WRAPPER_EXTRA_LDFLAGS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_ldflags}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_ldflags"; then : - mca_wrapper_extra_ldflags=$arg -else - mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - -str="line=\$ptl_$component_WRAPPER_EXTRA_LIBS" - eval "$str" - - - - # Is the private index set? If not, set it. - if test "x$pmix_scope_index" = "x"; then - pmix_scope_index=1 - fi - - # First, check to see if any of these variables are already set. - # This is a simple sanity check to ensure we're not already - # overwriting pre-existing variables (that have a non-empty - # value). It's not a perfect check, but at least it's something. - for pmix_var in pmix_tmp pmix_append; do - pmix_str="pmix_str=\"\$$pmix_var\"" - eval $pmix_str - - if test "x$pmix_str" != "x"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Found configure shell variable clash!" >&5 -$as_echo "$as_me: WARNING: Found configure shell variable clash!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_PUSH called on \"$pmix_var\"," >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: but it is already defined with value \"$pmix_str\"" >&5 -$as_echo "$as_me: WARNING: but it is already defined with value \"$pmix_str\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - done - - # Ok, we passed the simple sanity check. Save all these names so - # that we can unset them at the end of the scope. - pmix_str="pmix_scope_$pmix_scope_index=\"pmix_tmp pmix_append\"" - eval $pmix_str - unset pmix_str - - env | grep pmix_scope - pmix_scope_index=`expr $pmix_scope_index + 1` - - - for arg in $line; do - pmix_tmp=`echo $arg | cut -c1-2` - pmix_append=1 - if test "$pmix_tmp" = "-I" || test "$pmix_tmp" = "-L" || test "$pmix_tmp" = "-l"; then : - for val in ${mca_wrapper_extra_libs}; do - if test "x$val" = "x$arg"; then : - pmix_append=0 -fi - done -fi - if test "$pmix_append" = "1"; then : - if test -z "$mca_wrapper_extra_libs"; then : - mca_wrapper_extra_libs=$arg -else - mca_wrapper_extra_libs="$mca_wrapper_extra_libs $arg" -fi -fi - done - - - # Unwind the index - pmix_scope_index=`expr $pmix_scope_index - 1` - pmix_scope_test=`expr $pmix_scope_index \> 0` - if test "$pmix_scope_test" = "0"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&5 -$as_echo "$as_me: WARNING: PMIX_VAR_SCOPE_POP popped too many PMIX configure scopes." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This usually indicates an error in configure." >&5 -$as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} - as_fn_error $? "Cannot continue" "$LINENO" 5 - fi - - # Get the variable names from that index - pmix_str="pmix_str=\"\$pmix_scope_$pmix_scope_index\"" - eval $pmix_str - - # Iterate over all the variables and unset them all - for pmix_var in $pmix_str; do - unset $pmix_var - done - - - fi - - # if needed, copy over WRAPPER_EXTRA_CPPFLAGS. Since a configure script - # component can never be used in a STOP_AT_FIRST framework, we - # don't have to implement the else clause in the literal check... - - else { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MCA component ptl:$component can compile" >&5 @@ -71935,11 +53636,6 @@ unset all_components static_components dso_components outfile outfile_real - # note that mca_wrapper_extra_* is a running list, and we take checkpoints at the end of our project - pmix_mca_wrapper_extra_cppflags="$mca_wrapper_extra_cppflags" - pmix_mca_wrapper_extra_ldflags="$mca_wrapper_extra_ldflags" - pmix_mca_wrapper_extra_libs="$mca_wrapper_extra_libs" - @@ -71973,11 +53669,16 @@ # rather than have successive assignments to these shell # variables, lest the $(foo) names try to get evaluated here. # Yuck! - CPPFLAGS="-I$PMIX_top_builddir -I$PMIX_top_srcdir -I$PMIX_top_srcdir/src -I$PMIX_top_builddir/include -I$PMIX_top_srcdir/include $CPPFLAGS" + cpp_includes="$PMIX_top_builddir $PMIX_top_srcdir $PMIX_top_srcdir/src $PMIX_top_builddir/include" else - CPPFLAGS="-I$PMIX_top_srcdir -I$PMIX_top_srcdir/src -I$PMIX_top_srcdir/include $CPPFLAGS" + cpp_includes="$PMIX_top_srcdir $PMIX_top_srcdir/src" fi + CPP_INCLUDES="$(echo $cpp_includes | $SED 's/[^ \]* */'"$pmix_cc_iquote"'&/g')" + CPPFLAGS="$CPP_INCLUDES -I$PMIX_top_srcdir/include $CPPFLAGS $PMIX_FINAL_CPPFLAGS" + LDFLAGS="$LDFLAGS $PMIX_FINAL_LDFLAGS" + LIBS="$LIBS $PMIX_FINAL_LIBS" + ############################################################################ # pmixdatadir, pmixlibdir, and pmixinclude are essentially the same as # pkg*dir, but will always be */pmix. pmixdatadir='${datadir}/pmix' @@ -72024,9 +53725,8 @@ ac_config_files="$ac_config_files test/run_tests13.pl" - ac_config_files="$ac_config_files test/run_tests14.pl" - - ac_config_files="$ac_config_files test/run_tests15.pl" +# AC_CONFIG_FILES(pmix_config_prefix[test/run_tests14.pl], [chmod +x test/run_tests14.pl]) +# AC_CONFIG_FILES(pmix_config_prefix[test/run_tests15.pl], [chmod +x test/run_tests15.pl]) ############################################################################ @@ -72165,6 +53865,97 @@ # Cleanup duplicate flags # 1 is the variable name to be uniq-ized + pmix_name=CFLAGS + + # Go through each item in the variable and only keep the unique ones + + pmix_count=0 + for val in ${CFLAGS}; do + pmix_done=0 + pmix_i=1 + pmix_found=0 + + # Loop over every token we've seen so far + + pmix_done="`expr $pmix_i \> $pmix_count`" + while test "$pmix_found" = "0" && test "$pmix_done" = "0"; do + + # Have we seen this token already? Prefix the comparison + # with "x" so that "-Lfoo" values won't be cause an error. + + pmix_eval="expr x$val = x\$pmix_array_$pmix_i" + pmix_found=`eval $pmix_eval` + + # Check the ending condition + + pmix_done="`expr $pmix_i \>= $pmix_count`" + + # Increment the counter + + pmix_i="`expr $pmix_i + 1`" + done + + # Check for special cases where we do want to allow repeated + # arguments (per + # https://www.open-mpi.org/community/lists/devel/2012/08/11362.php + # and + # https://github.com/open-mpi/ompi/issues/324). + + case $val in + -Xclang|-Xg) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; + -framework) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; + --param) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; + esac + + # If we didn't find the token, add it to the "array" + + if test "$pmix_found" = "0"; then + pmix_eval="pmix_array_$pmix_i=$val" + eval $pmix_eval + pmix_count="`expr $pmix_count + 1`" + else + pmix_i="`expr $pmix_i - 1`" + fi + done + + # Take all the items in the "array" and assemble them back into a + # single variable + + pmix_i=1 + pmix_done="`expr $pmix_i \> $pmix_count`" + pmix_newval= + while test "$pmix_done" = "0"; do + pmix_eval="pmix_newval=\"$pmix_newval \$pmix_array_$pmix_i\"" + eval $pmix_eval + + pmix_eval="unset pmix_array_$pmix_i" + eval $pmix_eval + + pmix_done="`expr $pmix_i \>= $pmix_count`" + pmix_i="`expr $pmix_i + 1`" + done + + # Done; do the assignment + + pmix_newval="`echo $pmix_newval`" + pmix_eval="$pmix_name=\"$pmix_newval\"" + eval $pmix_eval + + # Clean up + + unset pmix_name pmix_i pmix_done pmix_newval pmix_eval pmix_count + + + # 1 is the variable name to be uniq-ized pmix_name=CPPFLAGS # Go through each item in the variable and only keep the unique ones @@ -72197,7 +53988,7 @@ # Check for special cases where we do want to allow repeated # arguments (per - # http://www.open-mpi.org/community/lists/devel/2012/08/11362.php + # https://www.open-mpi.org/community/lists/devel/2012/08/11362.php # and # https://github.com/open-mpi/ompi/issues/324). @@ -72288,7 +54079,7 @@ # Check for special cases where we do want to allow repeated # arguments (per - # http://www.open-mpi.org/community/lists/devel/2012/08/11362.php + # https://www.open-mpi.org/community/lists/devel/2012/08/11362.php # and # https://github.com/open-mpi/ompi/issues/324). @@ -72379,7 +54170,7 @@ # Check for special cases where we do want to allow repeated # arguments (per - # http://www.open-mpi.org/community/lists/devel/2012/08/11362.php + # https://www.open-mpi.org/community/lists/devel/2012/08/11362.php # and # https://github.com/open-mpi/ompi/issues/324). @@ -72468,6 +54259,50 @@ $as_echo "$LIBS" >&6; } #################################################################### +# Setup variables for pkg-config file (maint/pmix.pc.in) +#################################################################### + +# +# Dependencies that themselves have a pkg-config file available. +# +PC_REQUIRES="" +if test "$pmix_hwloc_support_will_build" = "yes" && test "$pmix_hwloc_source" != "embedded"; then : + PC_REQUIRES="$PC_REQUIRES hwloc" +fi +if test $pmix_libevent_support -eq 1 && test "$pmix_libevent_source" != "embedded"; then : + PC_REQUIRES="$PC_REQUIRES libevent" +fi +if test "$pmix_zlib_support" = "1"; then : + PC_REQUIRES="$PC_REQUIRES zlib" +fi +PC_REQUIRES="$PC_REQUIRES" + + +# +# Dependencies that don't have a pkg-config file available. +# In this case we need to manually add -L and -l +# to the PC_PRIVATE_LIBS variable. +# +PC_PRIVATE_LIBS="" +if test $pmix_libev_support -eq 1; then : + PC_PRIVATE_LIBS="$PC_PRIVATE_LIBS $pmix_libev_LDFLAGS $pmix_libev_LIBS" +fi +PC_PRIVATE_LIBS="$PC_PRIVATE_LIBS" + + +#################################################################### +# -Werror for CI scripts +#################################################################### + +# Check whether --enable-werror was given. +if test "${enable_werror+set}" = set; then : + enableval=$enable_werror; + CFLAGS="$CFLAGS -Werror" + +fi + + +#################################################################### # Version information #################################################################### @@ -72483,7 +54318,7 @@ -ac_config_files="$ac_config_files contrib/Makefile examples/Makefile test/Makefile test/simple/Makefile" +ac_config_files="$ac_config_files contrib/Makefile examples/Makefile test/Makefile test/simple/Makefile maint/pmix.pc" pmix_show_title "Configuration complete" @@ -72694,6 +54529,10 @@ as_fn_error $? "conditional \"MCA_BUILD_pmix_gds_ds21_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${MCA_BUILD_pmix_pcompress_zlib_DSO_TRUE}" && test -z "${MCA_BUILD_pmix_pcompress_zlib_DSO_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_pmix_pcompress_zlib_DSO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MCA_BUILD_pmix_pdl_pdlopen_DSO_TRUE}" && test -z "${MCA_BUILD_pmix_pdl_pdlopen_DSO_FALSE}"; then as_fn_error $? "conditional \"MCA_BUILD_pmix_pdl_pdlopen_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -72742,16 +54581,8 @@ as_fn_error $? "conditional \"MCA_BUILD_pmix_plog_syslog_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${MCA_BUILD_pmix_pnet_tcp_DSO_TRUE}" && test -z "${MCA_BUILD_pmix_pnet_tcp_DSO_FALSE}"; then - as_fn_error $? "conditional \"MCA_BUILD_pmix_pnet_tcp_DSO\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${MCA_BUILD_pmix_pnet_test_DSO_TRUE}" && test -z "${MCA_BUILD_pmix_pnet_test_DSO_FALSE}"; then - as_fn_error $? "conditional \"MCA_BUILD_pmix_pnet_test_DSO\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${MCA_BUILD_pmix_pnet_opa_DSO_TRUE}" && test -z "${MCA_BUILD_pmix_pnet_opa_DSO_FALSE}"; then - as_fn_error $? "conditional \"MCA_BUILD_pmix_pnet_opa_DSO\" was never defined. +if test -z "${MCA_BUILD_pmix_preg_compress_DSO_TRUE}" && test -z "${MCA_BUILD_pmix_preg_compress_DSO_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_pmix_preg_compress_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${MCA_BUILD_pmix_preg_native_DSO_TRUE}" && test -z "${MCA_BUILD_pmix_preg_native_DSO_FALSE}"; then @@ -72786,6 +54617,14 @@ as_fn_error $? "conditional \"MCA_BUILD_pmix_pshmem_mmap_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${MCA_BUILD_pmix_psquash_flex128_DSO_TRUE}" && test -z "${MCA_BUILD_pmix_psquash_flex128_DSO_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_pmix_psquash_flex128_DSO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MCA_BUILD_pmix_psquash_native_DSO_TRUE}" && test -z "${MCA_BUILD_pmix_psquash_native_DSO_FALSE}"; then + as_fn_error $? "conditional \"MCA_BUILD_pmix_psquash_native_DSO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MCA_BUILD_pmix_ptl_tcp_DSO_TRUE}" && test -z "${MCA_BUILD_pmix_ptl_tcp_DSO_FALSE}"; then as_fn_error $? "conditional \"MCA_BUILD_pmix_ptl_tcp_DSO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -73231,7 +55070,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by pmix $as_me 3.1.5, which was +This file was extended by pmix $as_me 3.2.3, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -73291,13 +55130,13 @@ Configuration commands: $config_commands -Report bugs to ." +Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -pmix config.status 3.1.5 +pmix config.status 3.2.3 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -73713,7 +55552,6 @@ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "include/pmix_version.h") CONFIG_FILES="$CONFIG_FILES include/pmix_version.h" ;; "src/include/pmix_config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/include/pmix_config.h" ;; - "include/pmix_rename.h") CONFIG_FILES="$CONFIG_FILES include/pmix_rename.h" ;; "src/mca/common/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/common/Makefile" ;; "src/mca/common/dstore/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/common/dstore/Makefile" ;; "src/mca/bfrops/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/bfrops/Makefile" ;; @@ -73725,6 +55563,8 @@ "src/mca/gds/hash/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/gds/hash/Makefile" ;; "src/mca/gds/ds12/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/gds/ds12/Makefile" ;; "src/mca/gds/ds21/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/gds/ds21/Makefile" ;; + "src/mca/pcompress/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/pcompress/Makefile" ;; + "src/mca/pcompress/zlib/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/pcompress/zlib/Makefile" ;; "src/mca/pdl/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/pdl/Makefile" ;; "src/mca/pdl/pdlopen/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/pdl/pdlopen/Makefile" ;; "src/mca/pdl/plibltdl/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/pdl/plibltdl/Makefile" ;; @@ -73743,10 +55583,8 @@ "src/mca/plog/stdfd/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/plog/stdfd/Makefile" ;; "src/mca/plog/syslog/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/plog/syslog/Makefile" ;; "src/mca/pnet/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/pnet/Makefile" ;; - "src/mca/pnet/tcp/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/pnet/tcp/Makefile" ;; - "src/mca/pnet/test/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/pnet/test/Makefile" ;; - "src/mca/pnet/opa/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/pnet/opa/Makefile" ;; "src/mca/preg/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/preg/Makefile" ;; + "src/mca/preg/compress/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/preg/compress/Makefile" ;; "src/mca/preg/native/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/preg/native/Makefile" ;; "src/mca/psec/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/psec/Makefile" ;; "src/mca/psec/dummy_handshake/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/psec/dummy_handshake/Makefile" ;; @@ -73758,6 +55596,9 @@ "src/mca/psensor/heartbeat/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/psensor/heartbeat/Makefile" ;; "src/mca/pshmem/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/pshmem/Makefile" ;; "src/mca/pshmem/mmap/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/pshmem/mmap/Makefile" ;; + "src/mca/psquash/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/psquash/Makefile" ;; + "src/mca/psquash/flex128/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/psquash/flex128/Makefile" ;; + "src/mca/psquash/native/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/psquash/native/Makefile" ;; "src/mca/ptl/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/ptl/Makefile" ;; "src/mca/ptl/tcp/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/ptl/tcp/Makefile" ;; "src/mca/ptl/usock/Makefile") CONFIG_FILES="$CONFIG_FILES src/mca/ptl/usock/Makefile" ;; @@ -73775,8 +55616,6 @@ "test/run_tests11.pl") CONFIG_FILES="$CONFIG_FILES test/run_tests11.pl" ;; "test/run_tests12.pl") CONFIG_FILES="$CONFIG_FILES test/run_tests12.pl" ;; "test/run_tests13.pl") CONFIG_FILES="$CONFIG_FILES test/run_tests13.pl" ;; - "test/run_tests14.pl") CONFIG_FILES="$CONFIG_FILES test/run_tests14.pl" ;; - "test/run_tests15.pl") CONFIG_FILES="$CONFIG_FILES test/run_tests15.pl" ;; "include/pmix_common.h") CONFIG_HEADERS="$CONFIG_HEADERS include/pmix_common.h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "config/Makefile") CONFIG_FILES="$CONFIG_FILES config/Makefile" ;; @@ -73793,6 +55632,7 @@ "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; "test/simple/Makefile") CONFIG_FILES="$CONFIG_FILES test/simple/Makefile" ;; + "maint/pmix.pc") CONFIG_FILES="$CONFIG_FILES maint/pmix.pc" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac @@ -75038,8 +56878,6 @@ "test/run_tests11.pl":F) chmod +x test/run_tests11.pl ;; "test/run_tests12.pl":F) chmod +x test/run_tests12.pl ;; "test/run_tests13.pl":F) chmod +x test/run_tests13.pl ;; - "test/run_tests14.pl":F) chmod +x test/run_tests14.pl ;; - "test/run_tests15.pl":F) chmod +x test/run_tests15.pl ;; esac done # for ac_tag diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/configure.ac openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/configure.ac --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/configure.ac 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/configure.ac 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. -# Copyright (c) 2006-2016 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2006-2020 Cisco Systems, Inc. All rights reserved # Copyright (c) 2006-2008 Sun Microsystems, Inc. All rights reserved. # Copyright (c) 2006-2017 Los Alamos National Security, LLC. All rights # reserved. @@ -19,7 +19,7 @@ # Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. # Copyright (c) 2013 Mellanox Technologies, Inc. # All rights reserved. -# Copyright (c) 2014-2019 Intel, Inc. All rights reserved. +# Copyright (c) 2014-2020 Intel, Inc. All rights reserved. # Copyright (c) 2016 IBM Corporation. All rights reserved. # Copyright (c) 2016-2018 Research Organization for Information Science # and Technology (RIST). All rights reserved. @@ -44,7 +44,7 @@ AC_INIT([pmix], [m4_normalize(esyscmd([config/pmix_get_version.sh VERSION --tarball]))], - [http://pmix.github.io/master], [pmix]) + [https://github.com/pmix/pmix/issues], [pmix]) AC_PREREQ(2.69) AC_CONFIG_AUX_DIR(./config) # Note that this directory must *exactly* match what was specified via @@ -94,7 +94,7 @@ AC_CANONICAL_TARGET # Init automake -AM_INIT_AUTOMAKE([foreign dist-bzip2 subdir-objects no-define 1.13.4 -Wall -Werror]) +AM_INIT_AUTOMAKE([foreign dist-bzip2 subdir-objects no-define 1.13.4]) # SILENT_RULES is new in AM 1.11, but we require 1.13.4 or higher via # autogen. Limited testing shows that calling SILENT_RULES directly @@ -143,11 +143,11 @@ #ifndef PMIX_CONFIG_H #define PMIX_CONFIG_H -#include +#include "src/include/pmix_config_top.h" ]) AH_BOTTOM([ -#include +#include "src/include/pmix_config_bottom.h" #endif /* PMIX_CONFIG_H */ ]) @@ -231,6 +231,7 @@ #fi # Cleanup duplicate flags +PMIX_FLAGS_UNIQ(CFLAGS) PMIX_FLAGS_UNIQ(CPPFLAGS) PMIX_FLAGS_UNIQ(LDFLAGS) PMIX_FLAGS_UNIQ(LIBS) @@ -258,6 +259,43 @@ AC_MSG_RESULT([$LIBS]) #################################################################### +# Setup variables for pkg-config file (maint/pmix.pc.in) +#################################################################### + +# +# Dependencies that themselves have a pkg-config file available. +# +PC_REQUIRES="" +AS_IF([test "$pmix_hwloc_support_will_build" = "yes" && test "$pmix_hwloc_source" != "embedded"], + [PC_REQUIRES="$PC_REQUIRES hwloc"]) +AS_IF([test $pmix_libevent_support -eq 1 && test "$pmix_libevent_source" != "embedded"], + [PC_REQUIRES="$PC_REQUIRES libevent"]) +AS_IF([test "$pmix_zlib_support" = "1"], + [PC_REQUIRES="$PC_REQUIRES zlib"]) +AC_SUBST([PC_REQUIRES], ["$PC_REQUIRES"]) + +# +# Dependencies that don't have a pkg-config file available. +# In this case we need to manually add -L and -l +# to the PC_PRIVATE_LIBS variable. +# +PC_PRIVATE_LIBS="" +AS_IF([test $pmix_libev_support -eq 1], + [PC_PRIVATE_LIBS="$PC_PRIVATE_LIBS $pmix_libev_LDFLAGS $pmix_libev_LIBS"]) +AC_SUBST([PC_PRIVATE_LIBS], ["$PC_PRIVATE_LIBS"]) + +#################################################################### +# -Werror for CI scripts +#################################################################### + +AC_ARG_ENABLE(werror, + AC_HELP_STRING([--enable-werror], + [Treat compiler warnings as errors]), +[ + CFLAGS="$CFLAGS -Werror" +]) + +#################################################################### # Version information #################################################################### @@ -275,7 +313,8 @@ AC_CONFIG_FILES(pmix_config_prefix[contrib/Makefile] pmix_config_prefix[examples/Makefile] pmix_config_prefix[test/Makefile] - pmix_config_prefix[test/simple/Makefile]) + pmix_config_prefix[test/simple/Makefile] + pmix_config_prefix[maint/pmix.pc]) pmix_show_title "Configuration complete" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/contrib/make_dist_tarball openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/contrib/make_dist_tarball --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/contrib/make_dist_tarball 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/contrib/make_dist_tarball 2022-05-29 09:51:40.000000000 +0000 @@ -264,7 +264,7 @@ # echo "*** Running autogen $autogen_args..." rm -f success - (./autogen.sh $autogen_args 2>&1 && touch success) | tee auto.out + (./autogen.pl $autogen_args 2>&1 && touch success) | tee auto.out if test ! -f success; then echo "Autogen failed. Aborting" exit 1 diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/contrib/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/contrib/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/contrib/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/contrib/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -14,7 +14,7 @@ # Copyright (c) 2010-2011 Oak Ridge National Labs. All rights reserved. # Copyright (c) 2013-2016 Los Alamos National Security, Inc. All rights # reserved. -# Copyright (c) 2013-2016 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2020 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -25,12 +25,13 @@ EXTRA_DIST = \ make_dist_tarball \ buildrpm.sh \ - platform/optimized \ - pmix_jenkins.sh \ - pmix-release.sh \ - pmix.spec \ - update-my-copyright.pl \ - whitespace-purge.sh + pmix_jenkins.sh \ + pmix-release.sh \ + pmix.spec \ + update-my-copyright.pl \ + whitespace-purge.sh \ + make_manpage.pl \ + platform/optimized include perf_tools/Makefile.include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/contrib/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/contrib/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/contrib/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/contrib/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -30,7 +30,7 @@ # Copyright (c) 2010-2011 Oak Ridge National Labs. All rights reserved. # Copyright (c) 2013-2016 Los Alamos National Security, Inc. All rights # reserved. -# Copyright (c) 2013-2016 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2020 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -153,7 +153,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -183,6 +182,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -193,7 +193,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -336,6 +335,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -399,6 +405,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -421,6 +434,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -439,6 +454,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -447,9 +463,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -463,6 +479,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -508,6 +525,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -520,10 +541,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ @@ -542,14 +559,14 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXTRA_DIST = make_dist_tarball buildrpm.sh platform/optimized \ - pmix_jenkins.sh pmix-release.sh pmix.spec \ - update-my-copyright.pl whitespace-purge.sh perf_tools/Makefile \ - perf_tools/pmi_intra_perf.c perf_tools/pmi.h \ - perf_tools/pmi2_pmap_parser.c perf_tools/pmi2_pmap_parser.h \ - perf_tools/pmi2_utils.c perf_tools/pmi2_utils.h \ - perf_tools/pmi2.c perf_tools/pmix.c perf_tools/README \ - perf_tools/run.sh +EXTRA_DIST = make_dist_tarball buildrpm.sh pmix_jenkins.sh \ + pmix-release.sh pmix.spec update-my-copyright.pl \ + whitespace-purge.sh make_manpage.pl platform/optimized \ + perf_tools/Makefile perf_tools/pmi_intra_perf.c \ + perf_tools/pmi.h perf_tools/pmi2_pmap_parser.c \ + perf_tools/pmi2_pmap_parser.h perf_tools/pmi2_utils.c \ + perf_tools/pmi2_utils.h perf_tools/pmi2.c perf_tools/pmix.c \ + perf_tools/README perf_tools/run.sh dist_pmixdata_DATA = pmix-valgrind.supp all: all-am diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/contrib/make_manpage.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/contrib/make_manpage.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/contrib/make_manpage.pl 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/contrib/make_manpage.pl 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,56 @@ +#!/usr/bin/env perl +# +# Copyright (c) 2015 Research Organization for Information Science +# and Technology (RIST). All rights reserved. +# Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2016-2019 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Subroutine to generate a bunch of Fortran declarations and symbols +# + +use strict; + +use Getopt::Long; + +my $package_name; +my $package_version; +my $pmix_date; +my $input; +my $output; +my $help_arg = 0; + +&Getopt::Long::Configure("bundling"); +my $ok = Getopt::Long::GetOptions("package-name=s" => \$package_name, + "package-version=s" => \$package_version, + "pmix-date=s" => \$pmix_date, + "input=s" => \$input, + "output=s" => \$output); + +if ($help_arg || !$ok || + !defined($input) || + !defined($output) || + !defined($package_name) || + !defined($package_version) || + !defined($pmix_date)) { + print "Usage: $0 --package-name= --package-version= --pmix-date= --input= --output=\n"; + exit(1 - $ok); +} + +open(FILE, $input) || + die "Can't open $input"; +my $file; +$file .= $_ + while(); +close(FILE); + +$file =~ s/#PACKAGE_NAME#/$package_name/g; +$file =~ s/#PACKAGE_VERSION#/$package_version/g; +$file =~ s/#PMIX_DATE#/$pmix_date/g; + +open(FILE, ">$output") || + die "Can't open $output"; +print FILE $file; +close(FILE); + +exit(0); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/contrib/pmix_jenkins.sh openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/contrib/pmix_jenkins.sh --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/contrib/pmix_jenkins.sh 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/contrib/pmix_jenkins.sh 2022-05-29 09:51:40.000000000 +0000 @@ -195,19 +195,13 @@ tar zxf libevent-2.0.22-stable.tar.gz cd libevent-2.0.22-stable libevent_dir=$PWD/install - ./autogen.sh && ./configure --prefix=$libevent_dir && make && make install + ./autogen.pl && ./configure --prefix=$libevent_dir && make && make install cd $WORKSPACE - if [ -x "autogen.sh" ]; then - autogen_script=./autogen.sh - else - autogen_script=./autogen.pl - fi - configure_args="--with-libevent=$libevent_dir" # build pmix - $autogen_script + ./autogen.pl echo ./configure --prefix=$pmix_dir $configure_args | bash -xeE make $make_opt install jenkins_build_passed=1 @@ -270,7 +264,7 @@ # check distclean make $make_opt distclean - $autogen_script + ./autogen.pl echo ./configure --prefix=$pmix_dir $configure_args | bash -xeE || exit 11 if [ -x /usr/bin/dpkg-buildpackage ]; then @@ -316,7 +310,7 @@ rm -rf $run_tap # build pmix - $autogen_script + ./autogen.pl echo ./configure --prefix=$pmix_dir $configure_args --disable-visibility | bash -xeE make $make_opt install diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/contrib/pmix.spec openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/contrib/pmix.spec --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/contrib/pmix.spec 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/contrib/pmix.spec 2022-05-29 09:51:40.000000000 +0000 @@ -15,6 +15,7 @@ # Copyright (c) 2015-2018 Intel, Inc. All rights reserved. # Copyright (c) 2015 Research Organization for Information Science # and Technology (RIST). All rights reserved. +# Copyright (c) 2021 Nanook Consulting. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -192,7 +193,7 @@ Summary: An extended/exascale implementation of PMI Name: %{?_name:%{_name}}%{!?_name:pmix} -Version: 3.1.5 +Version: 3.2.3 Release: 1%{?dist} License: BSD Group: Development/Libraries @@ -229,10 +230,20 @@ a reference implementation of the PMI-server that demonstrates the desired level of scalability. +%if %{build_all_in_one_rpm} This RPM contains all the tools necessary to compile and link against PMIx. +%endif # if build_all_in_one_rpm = 0, build split packages %if !%{build_all_in_one_rpm} +%package devel +Summary: PMIx developpement packages +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +This RPM contains headers and shared objects symbolic links necessary to compile +and link against PMIx. + %package libpmi Summary: PMI-1 and PMI-2 compatibility libraries Requires: %{name}%{?_isa} = %{version}-%{release} @@ -245,6 +256,16 @@ hardcoded to dlopen “libpmi” or “libpmi2”. This package conflicts sith slurm-libpmi, which provides its own, incompatible versions of libpmi.so and libpmi2.so. + +%package libpmi-devel +Summary: PMI-1 and PMI-2 compatibility developpement libraryes +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}%{?_isa}-devel = %{version}-%{release} +Conflicts: slurm-libpmi + +%description libpmi-devel +The %{name}-libpmi-devel package contains headers and shared objects +symbolic links of libpmi and libpmi2 libraries. %endif ############################################################################# @@ -493,7 +514,7 @@ %if !%{sysconfdir_in_prefix} %{_sysconfdir}/* %endif -# If %{install_in_opt}, then we're installing PMIx to +# If %%{install_in_opt}, then we're installing PMIx to # /opt/pmix. But be sure to also explicitly mention # /opt/pmix so that it can be removed by RPM when everything under # there is also removed. @@ -513,17 +534,35 @@ # if building separate RPMs, split the compatibility libs %if !%{build_all_in_one_rpm} +%exclude %{_includedir} +%exclude %{_libdir}/*.so +%exclude %{_libdir}/*.la +%exclude %{_libdir}/libpmi.* +%exclude %{_libdir}/libpmi2.* + +%files devel +%{_includedir} +%{_libdir}/*.so +%{_libdir}/*.la + %exclude %{_libdir}/libpmi.* %exclude %{_libdir}/libpmi2.* %exclude %{_includedir}/pmi.* %exclude %{_includedir}/pmi2.* %files libpmi -%{_libdir}/libpmi.* -%{_libdir}/libpmi2.* -%{_includedir}/pmi.* -%{_includedir}/pmi2.* -%endif +%{_libdir}/libpmi.so.* +%{_libdir}/libpmi2.so.* + +%files libpmi-devel +%{_libdir}/libpmi.so +%{_libdir}/libpmi2.so +%{_includedir}/pmi.h +%{_includedir}/pmi2.h + +%endif # build_all_in_one_rpm + + ############################################################################# # @@ -531,6 +570,9 @@ # ############################################################################# %changelog +* Mon Sep 21 2020 Piotr Lesnicki +- Enable separate -devel rpms + * Tue Apr 30 2019 Kilian Cavalotti - Enable multiple RPMs build to allow backward compatibility PMI-1 and PMI-2 libs to be built separate. "rpmbuild --define 'build_all_in_one_rpm 0' ..." diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/etc/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/etc/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/etc/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/etc/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -9,8 +9,8 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. -# Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. -# Copyright (c) 2017 Intel, Inc. All rights reserved. +# Copyright (c) 2008-2020 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2019-2020 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -18,39 +18,39 @@ # $HEADER$ # -pmix_config_files = pmix-mca-params.conf -pmix_file_from_platform = no +pmix_config_files = @PMIX_DEFAULT_MCA_PARAM_CONF@ +pmix_file_from_platform = @PMIX_PARAM_FROM_PLATFORM@ EXTRA_DIST = $(pmix_config_files) # Steal a little trickery from a generated Makefile to only install # files if they do not already exist at the target. Be sure to read # thread starting here -# (http://www.open-mpi.org/community/lists/devel/2008/06/4080.php) for +# (https://www.open-mpi.org/community/lists/devel/2008/06/4080.php) for # details why the mkdir is in install-data-local. install-data-local: $(MKDIR_P) $(DESTDIR)$(sysconfdir) @ p="$(pmix_config_files)"; \ if test "$(pmix_file_from_platform)" = "yes"; then \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(sysconfdir)/pmix-mca-params.conf"; \ - $(INSTALL_DATA) $$d$$p $(DESTDIR)$(sysconfdir)/pmix-mca-params.conf; \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(sysconfdir)/pmix-mca-params.conf"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(sysconfdir)/pmix-mca-params.conf; \ else \ for file in $$p; do \ - if test -f $(DESTDIR)$(sysconfdir)/pmix-mca-params.conf; then \ - echo "******************************* WARNING ************************************"; \ - echo "*** Not installing new $$file over existing file in:"; \ - echo "*** $(DESTDIR)$(sysconfdir)/$$file"; \ - echo "******************************* WARNING ************************************"; \ - else \ - if test -f "$$file"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$file | sed -e 's|^.*/||'`"; \ - echo " $(INSTALL_DATA) $$d$$file $(DESTDIR)$(sysconfdir)/$$f"; \ - $(INSTALL_DATA) $$d$$file $(DESTDIR)$(sysconfdir)/$$f; \ - fi; \ - done \ - fi; + if test -f $(DESTDIR)$(sysconfdir)/pmix-mca-params.conf; then \ + echo "******************************* WARNING ************************************"; \ + echo "*** Not installing new $$file over existing file in:"; \ + echo "*** $(DESTDIR)$(sysconfdir)/$$file"; \ + echo "******************************* WARNING ************************************"; \ + else \ + if test -f "$$file"; then d=; else d="$(srcdir)/"; fi; \ + f="`echo $$file | sed -e 's|^.*/||'`"; \ + echo " $(INSTALL_DATA) $$d$$file $(DESTDIR)$(sysconfdir)/$$f"; \ + $(INSTALL_DATA) $$d$$file $(DESTDIR)$(sysconfdir)/$$f; \ + fi; \ + done \ + fi; # Only remove if exactly the same as what in our tree @@ -61,7 +61,7 @@ @ p="$(pmix_config_files)"; \ for file in $$p; do \ if test -f "$(DESTDIR)$(sysconfdir)/$$file"; then \ - if test -f "$$file"; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$file"; then d=; else d="$(srcdir)/"; fi; \ if diff "$(DESTDIR)$(sysconfdir)/$$file" "$$d$$file" > /dev/null 2>&1 ; then \ echo "rm -f $(DESTDIR)$(sysconfdir)/$$file" ; \ rm -f "$(DESTDIR)$(sysconfdir)/$$file" ; \ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/etc/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/etc/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/etc/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/etc/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -25,8 +25,8 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. -# Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. -# Copyright (c) 2017 Intel, Inc. All rights reserved. +# Copyright (c) 2008-2020 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2019-2020 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -124,7 +124,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -154,6 +153,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -164,7 +164,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -276,6 +275,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -339,6 +345,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -361,6 +374,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -379,6 +394,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -387,9 +403,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -403,6 +419,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -448,6 +465,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -460,10 +481,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ @@ -482,8 +499,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -pmix_config_files = pmix-mca-params.conf -pmix_file_from_platform = no +pmix_config_files = @PMIX_DEFAULT_MCA_PARAM_CONF@ +pmix_file_from_platform = @PMIX_PARAM_FROM_PLATFORM@ EXTRA_DIST = $(pmix_config_files) all: all-am @@ -682,31 +699,31 @@ # Steal a little trickery from a generated Makefile to only install # files if they do not already exist at the target. Be sure to read # thread starting here -# (http://www.open-mpi.org/community/lists/devel/2008/06/4080.php) for +# (https://www.open-mpi.org/community/lists/devel/2008/06/4080.php) for # details why the mkdir is in install-data-local. install-data-local: $(MKDIR_P) $(DESTDIR)$(sysconfdir) @ p="$(pmix_config_files)"; \ if test "$(pmix_file_from_platform)" = "yes"; then \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(sysconfdir)/pmix-mca-params.conf"; \ - $(INSTALL_DATA) $$d$$p $(DESTDIR)$(sysconfdir)/pmix-mca-params.conf; \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(sysconfdir)/pmix-mca-params.conf"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(sysconfdir)/pmix-mca-params.conf; \ else \ for file in $$p; do \ - if test -f $(DESTDIR)$(sysconfdir)/pmix-mca-params.conf; then \ - echo "******************************* WARNING ************************************"; \ - echo "*** Not installing new $$file over existing file in:"; \ - echo "*** $(DESTDIR)$(sysconfdir)/$$file"; \ - echo "******************************* WARNING ************************************"; \ - else \ - if test -f "$$file"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$file | sed -e 's|^.*/||'`"; \ - echo " $(INSTALL_DATA) $$d$$file $(DESTDIR)$(sysconfdir)/$$f"; \ - $(INSTALL_DATA) $$d$$file $(DESTDIR)$(sysconfdir)/$$f; \ - fi; \ - done \ - fi; + if test -f $(DESTDIR)$(sysconfdir)/pmix-mca-params.conf; then \ + echo "******************************* WARNING ************************************"; \ + echo "*** Not installing new $$file over existing file in:"; \ + echo "*** $(DESTDIR)$(sysconfdir)/$$file"; \ + echo "******************************* WARNING ************************************"; \ + else \ + if test -f "$$file"; then d=; else d="$(srcdir)/"; fi; \ + f="`echo $$file | sed -e 's|^.*/||'`"; \ + echo " $(INSTALL_DATA) $$d$$file $(DESTDIR)$(sysconfdir)/$$f"; \ + $(INSTALL_DATA) $$d$$file $(DESTDIR)$(sysconfdir)/$$f; \ + fi; \ + done \ + fi; # Only remove if exactly the same as what in our tree # NOTE TO READER: Bourne shell if ... fi evaluates the body if @@ -716,7 +733,7 @@ @ p="$(pmix_config_files)"; \ for file in $$p; do \ if test -f "$(DESTDIR)$(sysconfdir)/$$file"; then \ - if test -f "$$file"; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$file"; then d=; else d="$(srcdir)/"; fi; \ if diff "$(DESTDIR)$(sysconfdir)/$$file" "$$d$$file" > /dev/null 2>&1 ; then \ echo "rm -f $(DESTDIR)$(sysconfdir)/$$file" ; \ rm -f "$(DESTDIR)$(sysconfdir)/$$file" ; \ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/alloc.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/alloc.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/alloc.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/alloc.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,8 +13,9 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. + * Copyright (c) 2019 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -153,8 +154,7 @@ { pmix_proc_t myproc; int rc; - pmix_value_t value; - pmix_value_t *val = &value; + pmix_value_t *val = NULL; pmix_proc_t proc; uint32_t nprocs; pmix_info_t *info; @@ -175,8 +175,7 @@ /* get our universe size */ PMIX_PROC_CONSTRUCT(&proc); - (void)strncpy(proc.nspace, myproc.nspace, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; + PMIX_LOAD_PROCID(&proc, myproc.nspace, PMIX_RANK_WILDCARD); if (PMIX_SUCCESS != (rc = PMIx_Get(&proc, PMIX_UNIV_SIZE, NULL, 0, &val))) { fprintf(stderr, "Client ns %s rank %d: PMIx_Get universe size failed: %d\n", myproc.nspace, myproc.rank, rc); goto done; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/client2.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/client2.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/client2.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/client2.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. * $COPYRIGHT$ * @@ -116,8 +116,7 @@ * wildcard rank as it doesn't relate to a specific rank. Setup * a name to retrieve such values */ PMIX_PROC_CONSTRUCT(&proc); - (void)strncpy(proc.nspace, myproc.nspace, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; + PMIX_LOAD_PROCID(&proc, myproc.nspace, PMIX_RANK_WILDCARD); /* get our job size */ if (PMIX_SUCCESS != (rc = PMIx_Get(&proc, PMIX_JOB_SIZE, NULL, 0, &val))) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/client.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/client.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/client.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/client.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,8 +13,9 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. + * Copyright (c) 2019 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -124,7 +125,7 @@ { pmix_status_t rc; pmix_value_t value; - pmix_value_t *val = &value; + pmix_value_t *val = NULL; char *tmp; pmix_proc_t proc; uint32_t nprocs, n; @@ -168,8 +169,7 @@ * wildcard rank as it doesn't relate to a specific rank. Setup * a name to retrieve such values */ PMIX_PROC_CONSTRUCT(&proc); - (void)strncpy(proc.nspace, myproc.nspace, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; + PMIX_LOAD_PROCID(&proc, myproc.nspace, PMIX_RANK_WILDCARD); /* check to see if we have been instructed to wait for a debugger * to attach to us. We won't get both a stop-in-init AND a @@ -197,6 +197,8 @@ /* wait for debugger release */ DEBUG_WAIT_THREAD(&myrel.lock); DEBUG_DESTRUCT_MYREL(&myrel); + + PMIX_VALUE_RELEASE(val); } /* get our universe size */ @@ -205,6 +207,8 @@ goto done; } fprintf(stderr, "Client %s:%d universe size %d\n", myproc.nspace, myproc.rank, val->data.uint32); + PMIX_VALUE_RELEASE(val); + /* get the number of procs in our job - univ size is the total number of allocated * slots, not the number of procs in the job */ if (PMIX_SUCCESS != (rc = PMIx_Get(&proc, PMIX_JOB_SIZE, NULL, 0, &val))) { @@ -219,6 +223,7 @@ if (0 > asprintf(&tmp, "%s-%d-internal", myproc.nspace, myproc.rank)) { exit(1); } + value.type = PMIX_UINT32; value.data.uint32 = 1234; if (PMIX_SUCCESS != (rc = PMIx_Store_internal(&myproc, tmp, &value))) { @@ -277,6 +282,7 @@ } if (PMIX_SUCCESS != (rc = PMIx_Get(&myproc, tmp, NULL, 0, &val))) { fprintf(stderr, "Client ns %s rank %d: PMIx_Get %s failed: %d\n", myproc.nspace, myproc.rank, tmp, rc); + free(tmp); goto done; } if (PMIX_UINT64 != val->type) { @@ -299,6 +305,7 @@ } if (PMIX_SUCCESS != (rc = PMIx_Get(&myproc, tmp, NULL, 0, &val))) { fprintf(stderr, "Client ns %s rank %d: PMIx_Get %s failed: %d\n", myproc.nspace, myproc.rank, tmp, rc); + free(tmp); goto done; } if (PMIX_STRING != val->type) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/debuggerd.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/debuggerd.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/debuggerd.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/debuggerd.c 2022-05-29 09:51:40.000000000 +0000 @@ -41,7 +41,6 @@ } myquery_data_t; -static volatile bool waiting_for_debugger = true; static pmix_proc_t myproc; /* this is a callback function for the PMIx_Query diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/dmodex.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/dmodex.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/dmodex.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/dmodex.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,8 +13,9 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. + * Copyright (c) 2019 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -23,8 +24,8 @@ * */ -#include -#include +#include "src/include/pmix_config.h" +#include "../include/pmix.h" #include #include @@ -38,13 +39,13 @@ { int rc; pmix_value_t value; - pmix_value_t *val = &value; + pmix_value_t *val = NULL; char *tmp; pmix_proc_t proc; uint32_t n, k, nlocal; - bool local, all_local; + bool local, all_local = false; char **peers; - pmix_rank_t *locals; + pmix_rank_t *locals = NULL; uint8_t j; /* init us */ @@ -55,8 +56,7 @@ fprintf(stderr, "Client ns %s rank %d: Running\n", myproc.nspace, myproc.rank); /* get our job size */ - (void)strncpy(proc.nspace, myproc.nspace, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; + PMIX_LOAD_PROCID(&proc, myproc.nspace, PMIX_RANK_WILDCARD); if (PMIX_SUCCESS != (rc = PMIx_Get(&proc, PMIX_JOB_SIZE, NULL, 0, &val))) { fprintf(stderr, "Client ns %s rank %d: PMIx_Get job size failed: %s\n", myproc.nspace, myproc.rank, PMIx_Error_string(rc)); @@ -146,36 +146,54 @@ } } if (local) { - (void)asprintf(&tmp, "%s-%d-local", myproc.nspace, n); + if( 0 > asprintf(&tmp, "%s-%d-local", myproc.nspace, n)) { + exit(1); + } proc.rank = n; if (PMIX_SUCCESS != (rc = PMIx_Get(&proc, tmp, NULL, 0, &val))) { fprintf(stderr, "Client ns %s rank %d: PMIx_Get %s failed: %d\n", myproc.nspace, n, tmp, rc); + free(tmp); goto done; } if (PMIX_UINT64 != val->type) { fprintf(stderr, "%s:%d: PMIx_Get Key %s returned wrong type: %d\n", myproc.nspace, myproc.rank, tmp, val->type); + PMIX_VALUE_RELEASE(val); + free(tmp); goto done; } if (1234 != val->data.uint64) { fprintf(stderr, "%s:%d: PMIx_Get Key %s returned wrong value: %d\n", myproc.nspace, myproc.rank, tmp, (int)val->data.uint64); + PMIX_VALUE_RELEASE(val); + free(tmp); goto done; } fprintf(stderr, "%s:%d Local value for %s:%d successfully retrieved\n", myproc.nspace, myproc.rank, proc.nspace, proc.rank); + PMIX_VALUE_RELEASE(val); + free(tmp); } else { - (void)asprintf(&tmp, "%s-%d-remote", myproc.nspace, n); + if( 0 > asprintf(&tmp, "%s-%d-remote", myproc.nspace, n)) { + exit(1); + } if (PMIX_SUCCESS != (rc = PMIx_Get(&proc, tmp, NULL, 0, &val))) { fprintf(stderr, "Client ns %s rank %d: PMIx_Get %s failed: %d\n", myproc.nspace, n, tmp, rc); + free(tmp); goto done; } if (PMIX_STRING != val->type) { fprintf(stderr, "%s:%d: PMIx_Get Key %s returned wrong type: %d\n", myproc.nspace, myproc.rank, tmp, val->type); + PMIX_VALUE_RELEASE(val); + free(tmp); goto done; } if (0 != strcmp(val->data.string, "1234")) { fprintf(stderr, "%s:%d: PMIx_Get Key %s returned wrong value: %s\n", myproc.nspace, myproc.rank, tmp, val->data.string); + PMIX_VALUE_RELEASE(val); + free(tmp); goto done; } fprintf(stderr, "%s:%d Remote value for %s:%d successfully retrieved\n", myproc.nspace, myproc.rank, proc.nspace, proc.rank); + PMIX_VALUE_RELEASE(val); + free(tmp); } /* if this isn't us, then get the ghex key */ if (n != myproc.rank) { @@ -185,13 +203,16 @@ } if (PMIX_BYTE_OBJECT != val->type) { fprintf(stderr, "%s:%d: PMIx_Get ghex returned wrong type: %d\n", myproc.nspace, myproc.rank, val->type); + PMIX_VALUE_RELEASE(val); goto done; } if (128 != val->data.bo.size) { fprintf(stderr, "%s:%d: PMIx_Get ghex returned wrong size: %d\n", myproc.nspace, myproc.rank, (int)val->data.bo.size); + PMIX_VALUE_RELEASE(val); goto done; } fprintf(stderr, "%s:%d Ghex for %s:%d successfully retrieved\n", myproc.nspace, myproc.rank, proc.nspace, proc.rank); + PMIX_VALUE_RELEASE(val); } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/dynamic.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/dynamic.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/dynamic.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/dynamic.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,10 +13,11 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. * Copyright (c) 2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2019 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -42,8 +43,7 @@ int main(int argc, char **argv) { int rc; - pmix_value_t value; - pmix_value_t *val = &value; + pmix_value_t *val = NULL; pmix_proc_t proc; uint32_t nprocs; char nsp2[PMIX_MAX_NSLEN+1]; @@ -66,8 +66,7 @@ fprintf(stderr, "Client ns %s rank %d: Running\n", myproc.nspace, myproc.rank); PMIX_PROC_CONSTRUCT(&proc); - (void)strncpy(proc.nspace, myproc.nspace, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; + PMIX_LOAD_PROCID(&proc, myproc.nspace, PMIX_RANK_WILDCARD); /* get our job size */ if (PMIX_SUCCESS != (rc = PMIx_Get(&proc, PMIX_JOB_SIZE, NULL, 0, &val))) { @@ -79,8 +78,7 @@ fprintf(stderr, "Client %s:%d job size %d\n", myproc.nspace, myproc.rank, nprocs); /* call fence to sync */ - (void)strncpy(proc.nspace, myproc.nspace, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; + PMIX_LOAD_PROCID(&proc, myproc.nspace, PMIX_RANK_WILDCARD); if (PMIX_SUCCESS != (rc = PMIx_Fence(&proc, 1, NULL, 0))) { fprintf(stderr, "Client ns %s rank %d: PMIx_Fence failed: %d\n", myproc.nspace, myproc.rank, rc); goto done; @@ -111,8 +109,7 @@ /* get their universe size */ val = NULL; - (void)strncpy(proc.nspace, nsp2, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; + PMIX_LOAD_PROCID(&proc, nsp2, PMIX_RANK_WILDCARD); if (PMIX_SUCCESS != (rc = PMIx_Get(&proc, PMIX_JOB_SIZE, NULL, 0, &val)) || NULL == val) { fprintf(stderr, "Client ns %s rank %d: PMIx_Get job size failed: %d\n", myproc.nspace, myproc.rank, rc); @@ -124,7 +121,6 @@ /* get a proc-specific value */ val = NULL; - (void)strncpy(proc.nspace, nsp2, PMIX_MAX_NSLEN); proc.rank = 1; if (PMIX_SUCCESS != (rc = PMIx_Get(&proc, PMIX_LOCAL_RANK, NULL, 0, &val)) || NULL == val) { @@ -138,8 +134,7 @@ done: /* call fence to sync */ - (void)strncpy(proc.nspace, myproc.nspace, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; + PMIX_LOAD_PROCID(&proc, myproc.nspace, PMIX_RANK_WILDCARD); if (PMIX_SUCCESS != (rc = PMIx_Fence(&proc, 1, NULL, 0))) { fprintf(stderr, "Client ns %s rank %d: PMIx_Fence failed: %d\n", myproc.nspace, myproc.rank, rc); goto done; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/fault.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/fault.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/fault.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/fault.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,8 +13,11 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. + * Copyright (c) 2019 Triad National Security, LLC. All rights + * reserved. + * Copyright (c) 2019 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -45,7 +48,7 @@ { myrel_t *lock; bool found; - int exit_code; + int exit_code = 0; size_t n; pmix_proc_t *affected = NULL; @@ -109,8 +112,7 @@ int main(int argc, char **argv) { int rc; - pmix_value_t value; - pmix_value_t *val = &value; + pmix_value_t *val = NULL; pmix_proc_t proc; uint32_t nprocs; pmix_info_t *info; @@ -126,8 +128,7 @@ fprintf(stderr, "Client ns %s rank %d: Running\n", myproc.nspace, myproc.rank); PMIX_PROC_CONSTRUCT(&proc); - (void)strncpy(proc.nspace, myproc.nspace, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; + PMIX_LOAD_PROCID(&proc, myproc.nspace, PMIX_RANK_WILDCARD); /* get our universe size */ if (PMIX_SUCCESS != (rc = PMIx_Get(&proc, PMIX_UNIV_SIZE, NULL, 0, &val))) { @@ -161,8 +162,7 @@ /* call fence to sync */ PMIX_PROC_CONSTRUCT(&proc); - (void)strncpy(proc.nspace, myproc.nspace, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; + PMIX_LOAD_PROCID(&proc, myproc.nspace, PMIX_RANK_WILDCARD); if (PMIX_SUCCESS != (rc = PMIx_Fence(&proc, 1, NULL, 0))) { fprintf(stderr, "Client ns %s rank %d: PMIx_Fence failed: %d\n", myproc.nspace, myproc.rank, rc); goto done; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/jctrl.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/jctrl.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/jctrl.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/jctrl.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,8 +13,9 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. + * Copyright (c) 2019 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -95,8 +96,7 @@ int main(int argc, char **argv) { pmix_status_t rc; - pmix_value_t value; - pmix_value_t *val = &value; + pmix_value_t *val = NULL; pmix_proc_t proc; uint32_t nprocs, n; pmix_info_t *info, *iptr; @@ -131,8 +131,7 @@ * wildcard rank as it doesn't relate to a specific rank. Setup * a name to retrieve such values */ PMIX_PROC_CONSTRUCT(&proc); - (void)strncpy(proc.nspace, myproc.nspace, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; + PMIX_LOAD_PROCID(&proc, myproc.nspace, PMIX_RANK_WILDCARD); /* get our universe size */ if (PMIX_SUCCESS != (rc = PMIx_Get(&proc, PMIX_UNIV_SIZE, NULL, 0, &val))) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -112,7 +112,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -142,6 +141,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -152,7 +152,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -398,6 +397,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -461,6 +467,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -483,6 +496,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -501,6 +516,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -509,9 +525,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -525,6 +541,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -570,6 +587,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -582,10 +603,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/pub.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/pub.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/pub.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/pub.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,8 +13,9 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. + * Copyright (c) 2019 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -35,8 +36,7 @@ { pmix_proc_t myproc; int rc; - pmix_value_t value; - pmix_value_t *val = &value; + pmix_value_t *val = NULL; pmix_proc_t proc; uint32_t nprocs; pmix_info_t *info; @@ -51,8 +51,7 @@ /* get our universe size */ PMIX_PROC_CONSTRUCT(&proc); - (void)strncpy(proc.nspace, myproc.nspace, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; + PMIX_LOAD_PROCID(&proc, myproc.nspace, PMIX_RANK_WILDCARD); if (PMIX_SUCCESS != (rc = PMIx_Get(&proc, PMIX_UNIV_SIZE, NULL, 0, &val))) { fprintf(stderr, "Client ns %s rank %d: PMIx_Get universe size failed: %d\n", myproc.nspace, myproc.rank, rc); goto done; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/pubi.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/pubi.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/pubi.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/pubi.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,8 +13,9 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. + * Copyright (c) 2019 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -35,8 +36,7 @@ { pmix_proc_t myproc; int rc; - pmix_value_t value; - pmix_value_t *val = &value; + pmix_value_t *val = NULL; pmix_proc_t proc; uint32_t nprocs; pmix_info_t *info; @@ -52,8 +52,7 @@ /* get our universe size */ PMIX_PROC_CONSTRUCT(&proc); - (void)strncpy(proc.nspace, myproc.nspace, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; + PMIX_LOAD_PROCID(&proc, myproc.nspace, PMIX_RANK_WILDCARD); if (PMIX_SUCCESS != (rc = PMIx_Get(&proc, PMIX_UNIV_SIZE, NULL, 0, &val))) { fprintf(stderr, "Client ns %s rank %d: PMIx_Get universe size failed: %d\n", myproc.nspace, myproc.rank, rc); goto done; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/server.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/server.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/examples/server.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/examples/server.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. @@ -25,10 +25,10 @@ * */ -#include -#include -#include -#include +#include "src/include/pmix_config.h" +#include "../include/pmix_server.h" +#include "src/include/types.h" +#include "src/include/pmix_globals.h" #include #include @@ -42,8 +42,6 @@ #include #include -#include PMIX_EVENT_HEADER - #include "src/class/pmix_list.h" #include "src/util/pmix_environ.h" #include "src/util/output.h" @@ -266,9 +264,9 @@ /* setup to see sigchld on the forked tests */ PMIX_CONSTRUCT(&children, pmix_list_t); - event_assign(&handler, pmix_globals.evbase, SIGCHLD, - EV_SIGNAL|EV_PERSIST,wait_signal_callback, &handler); - event_add(&handler, NULL); + pmix_event_assign(&handler, pmix_globals.evbase, SIGCHLD, + EV_SIGNAL|EV_PERSIST,wait_signal_callback, &handler); + pmix_event_add(&handler, NULL); /* see if we were passed the number of procs to run or * the executable to use */ @@ -424,7 +422,7 @@ char hostname[PMIX_MAXHOSTNAMELEN]; pmix_status_t rc; myxfer_t myxfer; - size_t i; + size_t i = 0; gethostname(hostname, sizeof(hostname)); @@ -486,6 +484,7 @@ PMIx_server_register_nspace(nspace, nprocs, x->info, x->ninfo, cbfunc, x); + } static void errhandler(size_t evhdlr_registration_id, @@ -871,7 +870,7 @@ pid_t pid; wait_tracker_t *t2; - if (SIGCHLD != event_get_signal(sig)) { + if (SIGCHLD != pmix_event_get_signal(sig)) { return; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/HACKING openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/HACKING --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/HACKING 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/HACKING 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,274 @@ +Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + University Research and Technology + Corporation. All rights reserved. +Copyright (c) 2004-2005 The University of Tennessee and The University + of Tennessee Research Foundation. All rights + reserved. +Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + University of Stuttgart. All rights reserved. +Copyright (c) 2004-2005 The Regents of the University of California. + All rights reserved. +Copyright (c) 2008-2020 Cisco Systems, Inc. All rights reserved +Copyright (c) 2013-2020 Intel, Inc. All rights reserved. +$COPYRIGHT$ + +Additional copyrights may follow + +$HEADER$ + +Overview +======== + +This file is here for those who are building/exploring PMIx in its +source code form, most likely through a developer's tree (i.e., a Git +checkout). + + +Debugging vs. Optimized Builds +============================== + +**If you are building PMIx from a Git checkout**, the default build +includes a lot of debugging features. This happens automatically when +when configure detects the hidden ".git" Git meta directory (that is +present in all Git checkouts) in your source tree, and therefore +activates a number of developer-only debugging features in the PMIx +code base. + +By definition, debugging builds will perform [much] slower than +optimized builds of PMIx. You should *NOT* conduct timing tests +or try to run production performance numbers with debugging builds. + +**REMEMBER** that you need to add appropriate -O directives +to your CFLAGS so your compiler will optimize the code! Otherwise, +while we will have disabled various debug code paths, the resulting +binary will not have been optimized. + +NOTE: this version of PMIx requires the Libevent package to build +and operate. Any version of Libevent greater than or equal to +2.0.21 is acceptable. It optionally supports the HWLOC package +for providing topology information to both the host environment +(by collecting local inventory for rollup) and local client +processes. Any version of HWLOC greater than 1.10 is supported, +although versions in the 2.x series are recommended. + +If you wish to build an optimized version of PMIx from a +developer's checkout, you have a couple of options: + +1. Manually specify configure options to disable the debugging + option. You'll need to carefully examine the output of + "./configure --help" to see which options to disable. + They are all listed, but some are less obvious than others (they + are not listed here because it is a changing set of flags; by + Murphy's Law, listing them here will pretty much guarantee that + this file will get out of date): + + shell$ ./autogen.pl + shell$ ./configure --disable-debug ... + [...lots of output...] + shell$ make all install + +2. Use a VPATH build. Simply build PMIx from a different + directory than the source tree -- one where the .git subdirectory + is not present. For example: + + shell$ git clone https://github.com/openpmix/openpmix.git pmix + shell$ cd pmix + shell$ ./autogen.pl + shell$ mkdir build + shell$ cd build + shell$ ../configure ... + [...lots of output...] + shell$ make all install + +Note that in both cases you must point configure at the libevent +installation using the --with-libevent= option if it is in +a non-standard location. Similarly, non-standard locations for +the HWLOC package must be specified using the --with-hwloc= +option. In both cases, PMIx will automatically detect these +packages in standard locations and build-in support for them +unless otherwise specified using the respective configure option. + + +Use of GNU Autoconf, Automake, and Libtool (and m4) +=================================================== + +This procedure is *ONLY* necessary if you are building from a +developer's tree. If you have a PMIx distribution tarball, this +procedure is unnecessary -- you can (and should) skip reading this +section. + +If you are building PMIx from a developer's tree, you must first +install fairly recent versions of the GNU tools Autoconf, Automake, +and Libtool (and possibly GNU m4, because recent versions of Autoconf +have specific GNU m4 version requirements). The specific versions +required depend on if you are using the master or a release branch (and +which release branch you are using). The specific versions can be +found at: + + https://pmix.org/code/getting-the-reference-implementation/ + +You can check what versions of the autotools you have installed with +the following: + +shell$ m4 --version +shell$ autoconf --version +shell$ automake --version +shell$ libtoolize --version + +To strengthen the above point: the core PMIx developers typically +use very, very recent versions of the GNU tools. There are known bugs +in older versions of the GNU tools that PMIx no longer compensates +for (it seemed senseless to indefinitely support patches for ancient +versions of Autoconf, for example). You *WILL* have problems if you +do not use recent versions of the GNU tools. + +If you need newer versions, you are *strongly* encouraged to heed the +following advice: + +NOTE: On MacOS/X, the default "libtool" program is different than the + GNU libtool. You must download and install the GNU version + (e.g., via MacPorts, Homebrew, or some other mechanism). + +1. Unless your OS distribution has easy-to-use binary installations, + the sources can be can be downloaded from: + + ftp://ftp.gnu.org/gnu/autoconf/ + ftp://ftp.gnu.org/gnu/automake/ + ftp://ftp.gnu.org/gnu/libtool/ + and if you need it: + ftp://ftp.gnu.org/gnu/m4/ + + NOTE: It is certainly easiest to download/build/install all four of + these tools together. But note that PMIx has no specific m4 + requirements; it is only listed here because Autoconf requires + minimum versions of GNU m4. Hence, you may or may not *need* to + actually install a new version of GNU m4. That being said, if you + are confused or don't know, just install the latest GNU m4 with the + rest of the GNU Autotools and everything will work out fine. + +2. Build and install the tools in the following order: + + 2a. m4 + 2b. Autoconf + 2c. Automake + 2d. Libtool + +3. You MUST install the last three tools (Autoconf, Automake, Libtool) + into the same prefix directory. These three tools are somewhat + inter-related, and if they're going to be used together, they MUST + share a common installation prefix. + + You can install m4 anywhere as long as it can be found in the path; + it may be convenient to install it in the same prefix as the other + three. Or you can use any recent-enough m4 that is in your path. + + 3a. It is *strongly* encouraged that you do not install your new + versions over the OS-installed versions. This could cause + other things on your system to break. Instead, install into + $HOME/local, or /usr/local, or wherever else you tend to + install "local" kinds of software. + 3b. In doing so, be sure to prefix your $path with the directory + where they are installed. For example, if you install into + $HOME/local, you may want to edit your shell startup file + (.bashrc, .cshrc, .tcshrc, etc.) to have something like: + + # For bash/sh: + export PATH=$HOME/local/bin:$PATH + # For csh/tcsh: + set path = ($HOME/local/bin $path) + + 3c. Ensure to set your $path *BEFORE* you configure/build/install + the four packages. + +4. All four packages require two simple commands to build and + install (where PREFIX is the prefix discussed in 3, above). + + shell$ cd m4-1.4.13 + shell$ ./configure --prefix=PREFIX + shell$ make; make install + + --> If you are using the csh or tcsh shells, be sure to run the + "rehash" command after you install each package. + + shell$ cd ../autoconf-2.68 + shell$ ./configure --prefix=PREFIX + shell$ make; make install + + --> If you are using the csh or tcsh shells, be sure to run the + "rehash" command after you install each package. + + shell$ cd ../automake-1.11.1 + shell$ ./configure --prefix=PREFIX + shell$ make; make install + + --> If you are using the csh or tcsh shells, be sure to run the + "rehash" command after you install each package. + + shell$ cd ../libtool-2.2.8 + shell$ ./configure --prefix=PREFIX + shell$ make; make install + + --> If you are using the csh or tcsh shells, be sure to run the + "rehash" command after you install each package. + + m4, Autoconf and Automake build and install very quickly; Libtool will + take a minute or two. + +5. You can now run PMIx’s top-level "autogen.pl" script. This script + will invoke the GNU Autoconf, Automake, and Libtool commands in the + proper order and setup to run PMIx's top-level "configure" script. + + 5a. You generally need to run autogen.pl only when the top-level + file "configure.ac" changes, or any files in the config/ or + /config/ directories change (these directories are + where a lot of "include" files for PMI’xs configure script + live). + + 5b. You do *NOT* need to re-run autogen.pl if you modify a + Makefile.am. + +Use of Flex +=========== + +Flex may be used during the compilation of a developer's checkout (it is +not used to build official distribution tarballs). Other flavors of +lex are *not* supported: given the choice of making parsing code +portable between all flavors of lex and doing more interesting work on +PMIx, we greatly prefer the latter. + +Note that no testing has been performed to see what the minimum +version of Flex is required by PMIx. We suggest that you use +v2.5.35 at the earliest. + +Note that the flex-generated code generates some compiler warnings on +some platforms, but the warnings do not seem to be consistent or +uniform on all platforms, compilers, and flex versions. As such, we +have done little to try to remove those warnings. + +If you do not have Flex installed, it can be downloaded from the +following URL: + + https://github.com/westes/flex + +Use of Pandoc +============= + +Similar to prior sections, you need to read/care about this section +*ONLY* if you are building from a developer's tree (i.e., a Git clone +of the Open MPI source tree). If you have an Open MPI distribution +tarball, the contents of this section are optional -- you can (and +probably should) skip reading this section. + +The Pandoc tool is used to generate Open MPI's man pages. +Specifically: Open MPI's man pages are written in Markdown; Pandoc is +the tool that converts that Markdown to nroff (i.e., the format of man +pages). + +You must have Pandoc >=v1.12 when building Open MPI from a developer's +tree. If configure cannot find Pandoc >=v1.12, it will abort. + +If you need to install Pandoc, check your operating system-provided +packages (to include MacOS Homebrew and MacPorts). The Pandoc project +itself also offers binaries for their releases: + + https://pandoc.org/ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ # -# Copyright (c) 2015-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2015-2020 Intel, Inc. All rights reserved. # # $COPYRIGHT$ # @@ -15,7 +15,7 @@ pmix.h \ pmix_server.h \ pmix_tool.h \ - pmix_extend.h + pmix_extend.h if WANT_PMI_BACKWARD include_HEADERS += \ @@ -25,7 +25,6 @@ nodist_include_HEADERS = \ pmix_common.h \ - pmix_version.h \ - pmix_rename.h + pmix_version.h endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -15,7 +15,7 @@ @SET_MAKE@ # -# Copyright (c) 2015-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2015-2020 Intel, Inc. All rights reserved. # # $COPYRIGHT$ # @@ -121,7 +121,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -151,6 +150,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -161,7 +161,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -171,7 +170,7 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/include/pmix_config.h \ pmix_common.h -CONFIG_CLEAN_FILES = pmix_version.h pmix_rename.h +CONFIG_CLEAN_FILES = pmix_version.h CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -244,7 +243,7 @@ ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/pmix_common.h.in \ - $(srcdir)/pmix_rename.h.in $(srcdir)/pmix_version.h.in + $(srcdir)/pmix_version.h.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -325,6 +324,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -388,6 +394,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -410,6 +423,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -428,6 +443,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -436,9 +452,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -452,6 +468,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -497,6 +514,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -509,10 +530,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ @@ -536,8 +553,7 @@ @WANT_PRIMARY_HEADERS_TRUE@ $(am__append_1) @WANT_PRIMARY_HEADERS_TRUE@nodist_include_HEADERS = \ @WANT_PRIMARY_HEADERS_TRUE@ pmix_common.h \ -@WANT_PRIMARY_HEADERS_TRUE@ pmix_version.h \ -@WANT_PRIMARY_HEADERS_TRUE@ pmix_rename.h +@WANT_PRIMARY_HEADERS_TRUE@ pmix_version.h all: pmix_common.h $(MAKE) $(AM_MAKEFLAGS) all-am @@ -585,8 +601,6 @@ -rm -f pmix_common.h stamp-h2 pmix_version.h: $(top_builddir)/config.status $(srcdir)/pmix_version.h.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -pmix_rename.h: $(top_builddir)/config.status $(srcdir)/pmix_rename.h.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/pmix_common.h.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/pmix_common.h.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/pmix_common.h.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/pmix_common.h.in 2022-05-29 09:51:40.000000000 +0000 @@ -1,10 +1,10 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. - * Copyright (c) 2016-2018 Research Organization for Information Science - * and Technology (RIST). All rights reserved. - * Copyright (c) 2016 IBM Corporation. All rights reserved. - * Copyright (c) 2016-2018 Mellanox Technologies, Inc. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2016-2020 IBM Corporation. All rights reserved. + * Copyright (c) 2016-2019 Mellanox Technologies, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -71,7 +71,6 @@ #endif -#include #include #if defined(c_plusplus) || defined(__cplusplus) @@ -139,17 +138,20 @@ #define PMIX_ATTR_UNDEF NULL /* initialization attributes */ -#define PMIX_EVENT_BASE "pmix.evbase" // (struct event_base *) pointer to libevent event_base to use in place - // of the internal progress thread -#define PMIX_SERVER_TOOL_SUPPORT "pmix.srvr.tool" // (bool) The host RM wants to declare itself as willing to - // accept tool connection requests -#define PMIX_SERVER_REMOTE_CONNECTIONS "pmix.srvr.remote" // (bool) Allow connections from remote tools (do not use loopback device) -#define PMIX_SERVER_SYSTEM_SUPPORT "pmix.srvr.sys" // (bool) The host RM wants to declare itself as being the local - // system server for PMIx connection requests +#define PMIX_EVENT_BASE "pmix.evbase" // (struct event_base *) pointer to libevent event_base + // to use in place of the internal progress thread +#define PMIX_SERVER_TOOL_SUPPORT "pmix.srvr.tool" // (bool) The host RM wants to declare itself as willing + // to accept tool connection requests +#define PMIX_SERVER_REMOTE_CONNECTIONS "pmix.srvr.remote" // (bool) Allow connections from remote tools (do not use + // loopback device) +#define PMIX_SERVER_SYSTEM_SUPPORT "pmix.srvr.sys" // (bool) The host RM wants to declare itself as being + // the local system server for PMIx connection + // requests #define PMIX_SERVER_TMPDIR "pmix.srvr.tmpdir" // (char*) temp directory where PMIx server will place // client rendezvous points and contact info #define PMIX_SYSTEM_TMPDIR "pmix.sys.tmpdir" // (char*) temp directory for this system, where PMIx - // server will place tool rendezvous points and contact info + // server will place tool rendezvous points and + // contact info #define PMIX_SERVER_ENABLE_MONITORING "pmix.srv.monitor" // (bool) Enable PMIx internal monitoring by server #define PMIX_SERVER_NSPACE "pmix.srv.nspace" // (char*) Name of the nspace to use for this server #define PMIX_SERVER_RANK "pmix.srv.rank" // (pmix_rank_t) Rank of this server @@ -253,9 +255,11 @@ #define PMIX_ALLOCATED_NODELIST "pmix.alist" // (char*) comma-delimited list of all nodes in this allocation regardless of // whether or not they currently host procs. #define PMIX_HOSTNAME "pmix.hname" // (char*) name of the host the specified proc is on +#define PMIX_HOSTNAME_ALIASES "pmix.alias" // (char*) comma-delimited list of names by which this node is known +#define PMIX_HOSTNAME_KEEP_FQDN "pmix.fqdn" // (bool) FQDN hostnames are being retained #define PMIX_NODEID "pmix.nodeid" // (uint32_t) node identifier where the specified proc is located #define PMIX_LOCAL_PEERS "pmix.lpeers" // (char*) comma-delimited string of ranks on this node within the specified nspace -#define PMIX_LOCAL_PROCS "pmix.lprocs" // (pmix_proc_t array) array of pmix_proc_t of procs on the specified node +#define PMIX_LOCAL_PROCS "pmix.lprocs" // (pmix_data_array_t*) array of pmix_proc_t of procs on the specified node #define PMIX_LOCAL_CPUSETS "pmix.lcpus" // (char*) colon-delimited cpusets of local peers within the specified nspace #define PMIX_PROC_URI "pmix.puri" // (char*) URI containing contact info for proc #define PMIX_LOCALITY "pmix.loc" // (uint16_t) relative locality of two procs @@ -263,7 +267,6 @@ // to launch this proc's application #define PMIX_EXIT_CODE "pmix.exit.code" // (int) exit code returned when proc terminated - /* size info */ #define PMIX_UNIV_SIZE "pmix.univ.size" // (uint32_t) #procs in this nspace #define PMIX_JOB_SIZE "pmix.job.size" // (uint32_t) #procs in this job @@ -320,10 +323,12 @@ // specified operation #define PMIX_JOB_TERM_STATUS "pmix.job.term.status" // (pmix_status_t) status returned upon job termination #define PMIX_PROC_STATE_STATUS "pmix.proc.state" // (pmix_proc_state_t) process state +#define PMIX_GET_REFRESH_CACHE "pmix.get.refresh" // (bool) when retrieving data for a remote process, refresh the existing + // local data cache for the process in case new values have been + // put and committed by it since the last refresh - -/* attributes used by host server to pass data to the server convenience library - the - * data will then be parsed and provided to the local clients */ +/* attributes used by host server to pass data to/from the server convenience library - the + * data will then be parsed and provided to the local clients. Not generally accessible by users */ #define PMIX_REGISTER_NODATA "pmix.reg.nodata" // (bool) Registration is for nspace only, do not copy job data #define PMIX_PROC_DATA "pmix.pdata" // (pmix_data_array_t*) starts with rank, then contains more data #define PMIX_NODE_MAP "pmix.nmap" // (char*) regex of nodes containing procs for this job @@ -331,6 +336,7 @@ #define PMIX_ANL_MAP "pmix.anlmap" // (char*) process mapping in ANL notation (used in PMI-1/PMI-2) #define PMIX_APP_MAP_TYPE "pmix.apmap.type" // (char*) type of mapping used to layout the application (e.g., cyclic) #define PMIX_APP_MAP_REGEX "pmix.apmap.regex" // (char*) regex describing the result of the mapping +#define PMIX_REQUIRED_KEY "pmix.req.key" // (char*) key the user needs prior to responding from a dmodex request /* attributes used internally to communicate data from the server to the client */ @@ -400,7 +406,8 @@ #define PMIX_TAG_OUTPUT "pmix.tagout" // (bool) tag application output with the ID of the source #define PMIX_TIMESTAMP_OUTPUT "pmix.tsout" // (bool) timestamp output from applications #define PMIX_MERGE_STDERR_STDOUT "pmix.mergeerrout" // (bool) merge stdout and stderr streams from application procs -#define PMIX_OUTPUT_TO_FILE "pmix.outfile" // (char*) output application output to given file +#define PMIX_OUTPUT_TO_FILE "pmix.outfile" // (char*) direct application output into files of form + // ".rank" with both stdout and stderr redirected into it #define PMIX_INDEX_ARGV "pmix.indxargv" // (bool) mark the argv with the rank of the proc #define PMIX_CPUS_PER_PROC "pmix.cpuperproc" // (uint32_t) #cpus to assign to each rank #define PMIX_NO_PROCS_ON_HEAD "pmix.nolocal" // (bool) do not place procs on the head node @@ -426,27 +433,36 @@ #define PMIX_QUERY_NAMESPACE_INFO "pmix.qry.nsinfo" // (pmix_data_array_t) request an array of active nspace information - each // element will contain an array including the namespace plus the // command line of the application executing within it -#define PMIX_QUERY_JOB_STATUS "pmix.qry.jst" // (pmix_status_t) status of a specified currently executing job -#define PMIX_QUERY_QUEUE_LIST "pmix.qry.qlst" // (char*) request a comma-delimited list of scheduler queues -#define PMIX_QUERY_QUEUE_STATUS "pmix.qry.qst" // (TBD) status of a specified scheduler queue -#define PMIX_QUERY_PROC_TABLE "pmix.qry.ptable" // (char*) input nspace of job whose info is being requested - // returns (pmix_data_array_t*) an array of pmix_proc_info_t -#define PMIX_QUERY_LOCAL_PROC_TABLE "pmix.qry.lptable" // (char*) input nspace of job whose info is being requested - // returns (pmix_data_array_t*) an array of pmix_proc_info_t for - // procs in job on same node -#define PMIX_QUERY_AUTHORIZATIONS "pmix.qry.auths" // (bool) return operations tool is authorized to perform -#define PMIX_QUERY_SPAWN_SUPPORT "pmix.qry.spawn" // (bool) return a comma-delimited list of supported spawn attributes -#define PMIX_QUERY_DEBUG_SUPPORT "pmix.qry.debug" // (bool) return a comma-delimited list of supported debug attributes -#define PMIX_QUERY_MEMORY_USAGE "pmix.qry.mem" // (bool) return info on memory usage for the procs indicated in the qualifiers +#define PMIX_QUERY_JOB_STATUS "pmix.qry.jst" // (pmix_status_t) returns status of a specified currently executing job + // REQUIRES a PMIX_NSPACE qualifier indicating the nspace being queried +#define PMIX_QUERY_QUEUE_LIST "pmix.qry.qlst" // (char*) request a comma-delimited list of scheduler queues. NO QUALIFIERS +#define PMIX_QUERY_QUEUE_STATUS "pmix.qry.qst" // (pmix_data_array_t*) returns array where each element contains the name and + // status of a scheduler queue + // SUPPORTED QUALIFIERS: PMIX_ALLOC_QUEUE naming specific queue whose status + // is being requested +#define PMIX_QUERY_PROC_TABLE "pmix.qry.ptable" // (pmix_data_array_t*) returns (pmix_data_array_t*) an array of pmix_proc_info_t + // REQUIRES a PMIX_NSPACE qualifier indicating the nspace being queried +#define PMIX_QUERY_LOCAL_PROC_TABLE "pmix.qry.lptable" // (pmix_data_array_t*) returns (pmix_data_array_t*) an array of pmix_proc_info_t + // of pmix_proc_info_t for procs in job on same node + // REQUIRES a PMIX_NSPACE qualifier indicating the nspace being queried +#define PMIX_QUERY_AUTHORIZATIONS "pmix.qry.auths" // (pmix_data_array_t*) return operations tool is authorized to perform. The contents + // of the array elements have not yet been standardized. NO QUALIFIERS +#define PMIX_QUERY_SPAWN_SUPPORT "pmix.qry.spawn" // (char*) return a comma-delimited list of supported spawn attributes. NO QUALIFIERS +#define PMIX_QUERY_DEBUG_SUPPORT "pmix.qry.debug" // (char*) return a comma-delimited list of supported debug attributes. NO QUALIFIERS +#define PMIX_QUERY_MEMORY_USAGE "pmix.qry.mem" // (pmix_data_array_t*) return info on memory usage for the procs indicated in the qualifiers + // SUPPORTED QUALIFIERS: PMIX_NSPACE/PMIX_RANK, or PMIX_PROCID of specific proc(s) + // whose info is being requested #define PMIX_QUERY_LOCAL_ONLY "pmix.qry.local" // (bool) constrain the query to local information only #define PMIX_QUERY_REPORT_AVG "pmix.qry.avg" // (bool) report average values #define PMIX_QUERY_REPORT_MINMAX "pmix.qry.minmax" // (bool) report minimum and maximum value -#define PMIX_QUERY_ALLOC_STATUS "pmix.query.alloc" // (char*) string identifier of the allocation whose status - // is being requested -#define PMIX_TIME_REMAINING "pmix.time.remaining" // (char*) query number of seconds (uint32_t) remaining in allocation - // for the specified nspace +#define PMIX_QUERY_ALLOC_STATUS "pmix.query.alloc" // (char*) return a string reporting status of an allocation request + // REQUIRES a PMIX_ALLOC_ID qualifier indicating the allocation request being queried +#define PMIX_TIME_REMAINING "pmix.time.remaining" // (uint32_t) returns number of seconds remaining in allocation + // for the specified nspace (defaults to allocation containing the caller) + // SUPPORTED QUALIFIERS: PMIX_NSPACE of the nspace whose info is being requested + -/* information retrieval attributes */ +/* PMIx_Get information retrieval attributes */ #define PMIX_SESSION_INFO "pmix.ssn.info" // (bool) Return information about the specified session. If information // about a session other than the one containing the requesting // process is desired, then the attribute array must contain a @@ -471,24 +487,26 @@ // then the attribute array must contain either the PMIX_NODEID or // PMIX_HOSTNAME attribute identifying the desired target. + /* information storage attributes */ -#define PMIX_SESSION_INFO_ARRAY "pmix.ssn.arr" // (pmix_data_array_t) Provide an array of pmix_info_t containing +#define PMIX_SESSION_INFO_ARRAY "pmix.ssn.arr" // (pmix_data_array_t*) Provide an array of pmix_info_t containing // session-level information. The PMIX_SESSION_ID attribute is required // to be included in the array. -#define PMIX_JOB_INFO_ARRAY "pmix.job.arr" // (pmix_data_array_t) Provide an array of pmix_info_t containing job-level +#define PMIX_JOB_INFO_ARRAY "pmix.job.arr" // (pmix_data_array_t*) Provide an array of pmix_info_t containing job-level // information. Information is registered one job (aka namespace) at a time // via the PMIx_server_register_nspace API. Thus, there is no requirement that // the array contain either the PMIX_NSPACE or PMIX_JOBID attributes, though // either or both of them may be included. -#define PMIX_APP_INFO_ARRAY "pmix.app.arr" // (pmix_data_array_t) Provide an array of pmix_info_t containing app-level +#define PMIX_APP_INFO_ARRAY "pmix.app.arr" // (pmix_data_array_t*) Provide an array of pmix_info_t containing app-level // information. The PMIX_NSPACE or PMIX_JOBID attributes of the job containing // the appplication, plus its PMIX_APPNUM attribute, are required to be // included in the array. -#define PMIX_NODE_INFO_ARRAY "pmix.node.arr" // (pmix_data_array_t) Provide an array of pmix_info_t containing node-level +#define PMIX_NODE_INFO_ARRAY "pmix.node.arr" // (pmix_data_array_t*) Provide an array of pmix_info_t containing node-level // information. At a minimum, either the PMIX_NODEID or PMIX_HOSTNAME // attribute is required to be included in the array, though both may be // included. + /* log attributes */ #define PMIX_LOG_SOURCE "pmix.log.source" // (pmix_proc_t*) ID of source of the log request #define PMIX_LOG_STDERR "pmix.log.stderr" // (char*) log string to stderr @@ -516,7 +534,7 @@ #define PMIX_LOG_EMAIL_SERVER "pmix.log.esrvr" // (char*) hostname (or IP addr) of estmp server #define PMIX_LOG_EMAIL_SRVR_PORT "pmix.log.esrvrprt" // (int32_t) port the email server is listening to -#define PMIX_LOG_GLOBAL_DATASTORE "pmix.log.gstore" // (bool) +#define PMIX_LOG_GLOBAL_DATASTORE "pmix.log.gstore" // (bool) log the provided data to a global datastore #define PMIX_LOG_JOB_RECORD "pmix.log.jrec" // (bool) log the provided information to the RM's job record @@ -531,7 +549,6 @@ #define PMIX_DEBUG_JOB_DIRECTIVES "pmix.dbg.jdirs" // (pmix_data_array_t*) array of job-level directives #define PMIX_DEBUG_APP_DIRECTIVES "pmix.dbg.adirs" // (pmix_data_array_t*) array of app-level directives - /* Resource Manager identification */ #define PMIX_RM_NAME "pmix.rm.name" // (char*) string name of the resource manager #define PMIX_RM_VERSION "pmix.rm.version" // (char*) RM version string @@ -549,8 +566,9 @@ // creating the envar if it doesn't already exist /* attributes relating to allocations */ -#define PMIX_ALLOC_ID "pmix.alloc.id" // (char*) provide a string identifier for this allocation request - // which can later be used to query status of the request +#define PMIX_ALLOC_ID "pmix.alloc.id" // (char*) A string identifier (provided by the host environment) for + // the resulting allocation which can later be used to reference + // the allocated resources in, for example, a call to PMIx_Spawn #define PMIX_ALLOC_NUM_NODES "pmix.alloc.nnodes" // (uint64_t) number of nodes #define PMIX_ALLOC_NODE_LIST "pmix.alloc.nlist" // (char*) regex of specific nodes #define PMIX_ALLOC_NUM_CPUS "pmix.alloc.ncpus" // (uint64_t) number of cpus @@ -605,7 +623,7 @@ #define PMIX_JOB_CTRL_CHECKPOINT_EVENT "pmix.jctrl.ckptev" // (bool) use event notification to trigger process checkpoint #define PMIX_JOB_CTRL_CHECKPOINT_SIGNAL "pmix.jctrl.ckptsig" // (int) use the given signal to trigger process checkpoint #define PMIX_JOB_CTRL_CHECKPOINT_TIMEOUT "pmix.jctrl.ckptsig" // (int) time in seconds to wait for checkpoint to complete -#define PMIX_JOB_CTRL_CHECKPOINT_METHOD "pmix.jctrl.ckmethod" // (pmix_data_array_t) array of pmix_info_t declaring each +#define PMIX_JOB_CTRL_CHECKPOINT_METHOD "pmix.jctrl.ckmethod" // (pmix_data_array_t*) array of pmix_info_t declaring each // method and value supported by this application #define PMIX_JOB_CTRL_SIGNAL "pmix.jctrl.sig" // (int) send given signal to specified processes #define PMIX_JOB_CTRL_PROVISION "pmix.jctrl.pvn" // (char*) regex identifying nodes that are to be provisioned @@ -631,8 +649,8 @@ // monitoring for this process) #define PMIX_MONITOR_APP_CONTROL "pmix.monitor.appctrl" // (bool) the application desires to control the response to // a monitoring event -#define PMIX_MONITOR_HEARTBEAT "pmix.monitor.mbeat" // (void) register to have the server monitor the requestor for heartbeats -#define PMIX_SEND_HEARTBEAT "pmix.monitor.beat" // (void) send heartbeat to local server +#define PMIX_MONITOR_HEARTBEAT "pmix.monitor.mbeat" // (bool) register to have the server monitor the requestor for heartbeats +#define PMIX_SEND_HEARTBEAT "pmix.monitor.beat" // (bool) send heartbeat to local server #define PMIX_MONITOR_HEARTBEAT_TIME "pmix.monitor.btime" // (uint32_t) time in seconds before declaring heartbeat missed #define PMIX_MONITOR_HEARTBEAT_DROPS "pmix.monitor.bdrop" // (uint32_t) number of heartbeats that can be missed before // generating the event @@ -907,6 +925,7 @@ // Hole left by deprecation/removal of PMIX_INFO_ARRAY #define PMIX_IOF_CHANNEL 45 #define PMIX_ENVAR 46 +#define PMIX_REGEX 49 // numerical ID matches v4 /********************/ /* define a boundary for implementers so they can add their own data types */ @@ -1477,6 +1496,8 @@ } \ } while(0) +#if 0 + // This macro is no longer supported in the v3.2 and later series #define PMIX_VALUE_COMPRESSED_STRING_UNPACK(s) \ do { \ char *tmp; \ @@ -1496,6 +1517,7 @@ } \ } \ } while(0) +#endif /**** PMIX INFO STRUCT ****/ typedef struct pmix_info { @@ -1830,7 +1852,6 @@ * * @param argv Pointer to an argv array. * @param str Pointer to the string to append. - * @param bool Whether or not to overwrite a matching value if found * * @retval PMIX_SUCCESS On success * @retval PMIX_ERROR On failure @@ -1866,7 +1887,7 @@ * @retval argv pointer to new argv array on success * @retval NULL on error * - * All strings are insertted into the argv array by value; the + * All strings are inserted into the argv array by value; the * newly-allocated array makes no references to the src_string * argument (i.e., it can be freed after calling this function * without invalidating the output argv). @@ -2160,8 +2181,9 @@ pmix_info_t info[], size_t ninfo, void *cbdata); - /**** COMMON SUPPORT FUNCTIONS ****/ +/* Note that these are moved to pmix.h in the v4.x series and later */ +/****** EVENT NOTIFICATION SUPPORT ******/ /* Register an event handler to report events. Three types of events * can be reported: * @@ -2194,6 +2216,10 @@ * deregistering the current evhdlr, and then registering it * using a new set of info values. * + * If cbfunc is NULL, then this is treated as a BLOCKING call - a positive + * return value represents the reference ID for the request, while + * negative values indicate the corresponding error + * * See pmix_common.h for a description of the notification function */ PMIX_EXPORT void PMIx_Register_event_handler(pmix_status_t codes[], size_t ncodes, pmix_info_t info[], size_t ninfo, @@ -2246,6 +2272,9 @@ * will have been queued, but may not have been transmitted * by this time. Note that the caller is required to maintain * the input data until the callback function has been executed! + * If cbfunc is NULL, then this is treated as a BLOCKING call and + * the result of the operation is provided in the returned + * status * * cbdata - the caller's provided void* object */ @@ -2255,6 +2284,8 @@ const pmix_info_t info[], size_t ninfo, pmix_op_cbfunc_t cbfunc, void *cbdata); + +/****** PRETTY-PRINT DEFINED VALUE TYPES ******/ /* Provide a string representation for several types of value. Note * that the provided string is statically defined and must NOT be * free'd. Supported value types: @@ -2288,6 +2319,8 @@ PMIX_EXPORT pmix_status_t PMIx_Store_internal(const pmix_proc_t *proc, const pmix_key_t key, pmix_value_t *val); + +/****** DATA BUFFER PACK/UNPACK SUPPORT ******/ /** * Top-level interface function to pack one or more values into a * buffer. @@ -2516,6 +2549,7 @@ pmix_data_buffer_t *src); +/******** STANDARD MACROS FOR DARRAY AND VALUE SUPPORT ********/ static inline void pmix_darray_destruct(pmix_data_array_t *m); static inline void pmix_value_destruct(pmix_value_t * m) @@ -2690,7 +2724,9 @@ * @param len Size of the dest array - 1 * */ -static inline void pmix_strncpy(char *dest, const char *src, size_t len) +static inline void pmix_strncpy(char *dest, + const char *src, + size_t len) { size_t i, k; char *new_dest = dest; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/pmix_extend.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/pmix_extend.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/pmix_extend.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/pmix_extend.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,9 +1,9 @@ /* - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Artem Y. Polyakov . * All rights reserved. - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Redistribution and use in source and binary forms, with or without diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/pmix.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/pmix.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/pmix.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/pmix.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. * @@ -394,7 +394,8 @@ * for releasing the array when done with it - the PMIX_PROC_FREE macro is * provided for this purpose. */ -PMIX_EXPORT pmix_status_t PMIx_Resolve_peers(const char *nodename, const pmix_nspace_t nspace, +PMIX_EXPORT pmix_status_t PMIx_Resolve_peers(const char *nodename, + const pmix_nspace_t nspace, pmix_proc_t **procs, size_t *nprocs); @@ -575,7 +576,6 @@ PMIX_EXPORT pmix_status_t PMIx_Get_credential(const pmix_info_t info[], size_t ninfo, pmix_credential_cbfunc_t cbfunc, void *cbdata); - /* Request validation of a credential by the PMIx server/SMS * Input values include: * @@ -696,7 +696,7 @@ pmix_op_cbfunc_t cbfunc, void *cbdata); /* Push data collected locally (typically from stdin) to - * target recipients. + * stdin of target recipients. * * targets - array of process identifiers to which the data is to be delivered. Note * that a WILDCARD rank indicates that all procs in the given nspace are @@ -714,7 +714,7 @@ * * bo - pointer to a byte object containing the stdin data * - * cbfunc - callback function when the data has been forwarded + * cbfunc - callback function when the data has been forwarded. * * cbdata - object to be returned in cbfunc */ @@ -723,6 +723,10 @@ const pmix_info_t directives[], size_t ndirs, pmix_op_cbfunc_t cbfunc, void *cbdata); +/****************************************/ +/**** COMMON SUPPORT FUNCTIONS ****/ +/* Found in pmix_common.h.in in the v3.x and earlier series */ +/****************************************/ #if defined(c_plusplus) || defined(__cplusplus) } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/pmix_rename.h.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/pmix_rename.h.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/pmix_rename.h.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/pmix_rename.h.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,618 +0,0 @@ -#define PMI2_Abort @PMIX_RENAME@PMI2_Abort -#define PMI2_Finalize @PMIX_RENAME@PMI2_Finalize -#define PMI2_Info_GetJobAttr @PMIX_RENAME@PMI2_Info_GetJobAttr -#define PMI2_Info_GetJobAttrIntArray @PMIX_RENAME@PMI2_Info_GetJobAttrIntArray -#define PMI2_Info_GetNodeAttr @PMIX_RENAME@PMI2_Info_GetNodeAttr -#define PMI2_Info_GetNodeAttrIntArray @PMIX_RENAME@PMI2_Info_GetNodeAttrIntArray -#define PMI2_Info_GetSize @PMIX_RENAME@PMI2_Info_GetSize -#define PMI2_Info_PutNodeAttr @PMIX_RENAME@PMI2_Info_PutNodeAttr -#define PMI2_Init @PMIX_RENAME@PMI2_Init -#define PMI2_Initialized @PMIX_RENAME@PMI2_Initialized -#define PMI2_Job_Connect @PMIX_RENAME@PMI2_Job_Connect -#define PMI2_Job_Disconnect @PMIX_RENAME@PMI2_Job_Disconnect -#define PMI2_Job_GetId @PMIX_RENAME@PMI2_Job_GetId -#define PMI2_Job_GetRank @PMIX_RENAME@PMI2_Job_GetRank -#define PMI2_Job_Spawn @PMIX_RENAME@PMI2_Job_Spawn -#define PMI2_KVS_Fence @PMIX_RENAME@PMI2_KVS_Fence -#define PMI2_KVS_Get @PMIX_RENAME@PMI2_KVS_Get -#define PMI2_KVS_Put @PMIX_RENAME@PMI2_KVS_Put -#define PMI2_Nameserv_lookup @PMIX_RENAME@PMI2_Nameserv_lookup -#define PMI2_Nameserv_publish @PMIX_RENAME@PMI2_Nameserv_publish -#define PMI2_Nameserv_unpublish @PMIX_RENAME@PMI2_Nameserv_unpublish -#define PMI_Abort @PMIX_RENAME@PMI_Abort -#define PMI_Args_to_keyval @PMIX_RENAME@PMI_Args_to_keyval -#define PMI_Barrier @PMIX_RENAME@PMI_Barrier -#define PMI_Finalize @PMIX_RENAME@PMI_Finalize -#define PMI_Free_keyvals @PMIX_RENAME@PMI_Free_keyvals -#define PMI_Get_appnum @PMIX_RENAME@PMI_Get_appnum -#define PMI_Get_clique_ranks @PMIX_RENAME@PMI_Get_clique_ranks -#define PMI_Get_clique_size @PMIX_RENAME@PMI_Get_clique_size -#define PMI_Get_id @PMIX_RENAME@PMI_Get_id -#define PMI_Get_id_length_max @PMIX_RENAME@PMI_Get_id_length_max -#define PMI_Get_kvs_domain_id @PMIX_RENAME@PMI_Get_kvs_domain_id -#define PMI_Get_options @PMIX_RENAME@PMI_Get_options -#define PMI_Get_rank @PMIX_RENAME@PMI_Get_rank -#define PMI_Get_size @PMIX_RENAME@PMI_Get_size -#define PMI_Get_universe_size @PMIX_RENAME@PMI_Get_universe_size -#define PMI_Init @PMIX_RENAME@PMI_Init -#define PMI_Initialized @PMIX_RENAME@PMI_Initialized -#define PMI_KVS_Commit @PMIX_RENAME@PMI_KVS_Commit -#define PMI_KVS_Create @PMIX_RENAME@PMI_KVS_Create -#define PMI_KVS_Destroy @PMIX_RENAME@PMI_KVS_Destroy -#define PMI_KVS_Get @PMIX_RENAME@PMI_KVS_Get -#define PMI_KVS_Get_key_length_max @PMIX_RENAME@PMI_KVS_Get_key_length_max -#define PMI_KVS_Get_my_name @PMIX_RENAME@PMI_KVS_Get_my_name -#define PMI_KVS_Get_name_length_max @PMIX_RENAME@PMI_KVS_Get_name_length_max -#define PMI_KVS_Get_value_length_max @PMIX_RENAME@PMI_KVS_Get_value_length_max -#define PMI_KVS_Iter_first @PMIX_RENAME@PMI_KVS_Iter_first -#define PMI_KVS_Iter_next @PMIX_RENAME@PMI_KVS_Iter_next -#define PMI_KVS_Put @PMIX_RENAME@PMI_KVS_Put -#define PMI_Lookup_name @PMIX_RENAME@PMI_Lookup_name -#define PMI_Parse_option @PMIX_RENAME@PMI_Parse_option -#define PMI_Publish_name @PMIX_RENAME@PMI_Publish_name -#define PMI_Spawn_multiple @PMIX_RENAME@PMI_Spawn_multiple -#define PMI_Unpublish_name @PMIX_RENAME@PMI_Unpublish_name -#define PMIx_Abort @PMIX_RENAME@PMIx_Abort -#define PMIx_Allocation_request_nb @PMIX_RENAME@PMIx_Allocation_request_nb -#define PMIx_Alloc_directive_string @PMIX_RENAME@PMIx_Alloc_directive_string -#define pmix_argv_append @PMIX_RENAME@pmix_argv_append -#define pmix_argv_append_nosize @PMIX_RENAME@pmix_argv_append_nosize -#define pmix_argv_append_unique_nosize @PMIX_RENAME@pmix_argv_append_unique_nosize -#define pmix_argv_copy @PMIX_RENAME@pmix_argv_copy -#define pmix_argv_count @PMIX_RENAME@pmix_argv_count -#define pmix_argv_delete @PMIX_RENAME@pmix_argv_delete -#define pmix_argv_free @PMIX_RENAME@pmix_argv_free -#define pmix_argv_insert @PMIX_RENAME@pmix_argv_insert -#define pmix_argv_insert_element @PMIX_RENAME@pmix_argv_insert_element -#define pmix_argv_join @PMIX_RENAME@pmix_argv_join -#define pmix_argv_join_range @PMIX_RENAME@pmix_argv_join_range -#define pmix_argv_len @PMIX_RENAME@pmix_argv_len -#define pmix_argv_prepend_nosize @PMIX_RENAME@pmix_argv_prepend_nosize -#define pmix_argv_split @PMIX_RENAME@pmix_argv_split -#define pmix_argv_split_with_empty @PMIX_RENAME@pmix_argv_split_with_empty -#define pmix_asprintf @PMIX_RENAME@pmix_asprintf -#define pmix_basename @PMIX_RENAME@pmix_basename -#define pmix_bfrop_base_copy_persist @PMIX_RENAME@pmix_bfrop_base_copy_persist -#define pmix_bfrop_base_select @PMIX_RENAME@pmix_bfrop_base_select -#define pmix_bfrop_buffer_extend @PMIX_RENAME@pmix_bfrop_buffer_extend -#define pmix_bfrop_get_data_type @PMIX_RENAME@pmix_bfrop_get_data_type -#define pmix_bfrops_base_assign_module @PMIX_RENAME@pmix_bfrops_base_assign_module -#define pmix_bfrops_base_copy @PMIX_RENAME@pmix_bfrops_base_copy -#define pmix_bfrops_base_copy_app @PMIX_RENAME@pmix_bfrops_base_copy_app -#define pmix_bfrops_base_copy_array @PMIX_RENAME@pmix_bfrops_base_copy_array -#define pmix_bfrops_base_copy_bo @PMIX_RENAME@pmix_bfrops_base_copy_bo -#define pmix_bfrops_base_copy_buf @PMIX_RENAME@pmix_bfrops_base_copy_buf -#define pmix_bfrops_base_copy_darray @PMIX_RENAME@pmix_bfrops_base_copy_darray -#define pmix_bfrops_base_copy_info @PMIX_RENAME@pmix_bfrops_base_copy_info -#define pmix_bfrops_base_copy_kval @PMIX_RENAME@pmix_bfrops_base_copy_kval -#define pmix_bfrops_base_copy_modex @PMIX_RENAME@pmix_bfrops_base_copy_modex -#define pmix_bfrops_base_copy_payload @PMIX_RENAME@pmix_bfrops_base_copy_payload -#define pmix_bfrops_base_copy_pdata @PMIX_RENAME@pmix_bfrops_base_copy_pdata -#define pmix_bfrops_base_copy_pinfo @PMIX_RENAME@pmix_bfrops_base_copy_pinfo -#define pmix_bfrops_base_copy_proc @PMIX_RENAME@pmix_bfrops_base_copy_proc -#define pmix_bfrops_base_copy_query @PMIX_RENAME@pmix_bfrops_base_copy_query -#define pmix_bfrops_base_copy_string @PMIX_RENAME@pmix_bfrops_base_copy_string -#define pmix_bfrops_base_copy_value @PMIX_RENAME@pmix_bfrops_base_copy_value -#define pmix_bfrops_base_data_type_string @PMIX_RENAME@pmix_bfrops_base_data_type_string -#define pmix_bfrops_base_framework @PMIX_RENAME@pmix_bfrops_base_framework -#define pmix_bfrops_base_get_available_modules @PMIX_RENAME@pmix_bfrops_base_get_available_modules -#define pmix_bfrops_base_output @PMIX_RENAME@pmix_bfrops_base_output -#define pmix_bfrops_base_pack @PMIX_RENAME@pmix_bfrops_base_pack -#define pmix_bfrops_base_pack_alloc_directive @PMIX_RENAME@pmix_bfrops_base_pack_alloc_directive -#define pmix_bfrops_base_pack_app @PMIX_RENAME@pmix_bfrops_base_pack_app -#define pmix_bfrops_base_pack_array @PMIX_RENAME@pmix_bfrops_base_pack_array -#define pmix_bfrops_base_pack_bo @PMIX_RENAME@pmix_bfrops_base_pack_bo -#define pmix_bfrops_base_pack_bool @PMIX_RENAME@pmix_bfrops_base_pack_bool -#define pmix_bfrops_base_pack_buf @PMIX_RENAME@pmix_bfrops_base_pack_buf -#define pmix_bfrops_base_pack_buffer @PMIX_RENAME@pmix_bfrops_base_pack_buffer -#define pmix_bfrops_base_pack_byte @PMIX_RENAME@pmix_bfrops_base_pack_byte -#define pmix_bfrops_base_pack_cmd @PMIX_RENAME@pmix_bfrops_base_pack_cmd -#define pmix_bfrops_base_pack_darray @PMIX_RENAME@pmix_bfrops_base_pack_darray -#define pmix_bfrops_base_pack_datatype @PMIX_RENAME@pmix_bfrops_base_pack_datatype -#define pmix_bfrops_base_pack_double @PMIX_RENAME@pmix_bfrops_base_pack_double -#define pmix_bfrops_base_pack_float @PMIX_RENAME@pmix_bfrops_base_pack_float -#define pmix_bfrops_base_pack_info @PMIX_RENAME@pmix_bfrops_base_pack_info -#define pmix_bfrops_base_pack_info_directives @PMIX_RENAME@pmix_bfrops_base_pack_info_directives -#define pmix_bfrops_base_pack_int @PMIX_RENAME@pmix_bfrops_base_pack_int -#define pmix_bfrops_base_pack_int16 @PMIX_RENAME@pmix_bfrops_base_pack_int16 -#define pmix_bfrops_base_pack_int32 @PMIX_RENAME@pmix_bfrops_base_pack_int32 -#define pmix_bfrops_base_pack_int64 @PMIX_RENAME@pmix_bfrops_base_pack_int64 -#define pmix_bfrops_base_pack_kval @PMIX_RENAME@pmix_bfrops_base_pack_kval -#define pmix_bfrops_base_pack_modex @PMIX_RENAME@pmix_bfrops_base_pack_modex -#define pmix_bfrops_base_pack_pdata @PMIX_RENAME@pmix_bfrops_base_pack_pdata -#define pmix_bfrops_base_pack_persist @PMIX_RENAME@pmix_bfrops_base_pack_persist -#define pmix_bfrops_base_pack_pid @PMIX_RENAME@pmix_bfrops_base_pack_pid -#define pmix_bfrops_base_pack_pinfo @PMIX_RENAME@pmix_bfrops_base_pack_pinfo -#define pmix_bfrops_base_pack_proc @PMIX_RENAME@pmix_bfrops_base_pack_proc -#define pmix_bfrops_base_pack_pstate @PMIX_RENAME@pmix_bfrops_base_pack_pstate -#define pmix_bfrops_base_pack_ptr @PMIX_RENAME@pmix_bfrops_base_pack_ptr -#define pmix_bfrops_base_pack_query @PMIX_RENAME@pmix_bfrops_base_pack_query -#define pmix_bfrops_base_pack_range @PMIX_RENAME@pmix_bfrops_base_pack_range -#define pmix_bfrops_base_pack_rank @PMIX_RENAME@pmix_bfrops_base_pack_rank -#define pmix_bfrops_base_pack_scope @PMIX_RENAME@pmix_bfrops_base_pack_scope -#define pmix_bfrops_base_pack_sizet @PMIX_RENAME@pmix_bfrops_base_pack_sizet -#define pmix_bfrops_base_pack_status @PMIX_RENAME@pmix_bfrops_base_pack_status -#define pmix_bfrops_base_pack_string @PMIX_RENAME@pmix_bfrops_base_pack_string -#define pmix_bfrops_base_pack_time @PMIX_RENAME@pmix_bfrops_base_pack_time -#define pmix_bfrops_base_pack_timeval @PMIX_RENAME@pmix_bfrops_base_pack_timeval -#define pmix_bfrops_base_pack_val @PMIX_RENAME@pmix_bfrops_base_pack_val -#define pmix_bfrops_base_pack_value @PMIX_RENAME@pmix_bfrops_base_pack_value -#define pmix_bfrops_base_print @PMIX_RENAME@pmix_bfrops_base_print -#define pmix_bfrops_base_print_alloc_directive @PMIX_RENAME@pmix_bfrops_base_print_alloc_directive -#define pmix_bfrops_base_print_app @PMIX_RENAME@pmix_bfrops_base_print_app -#define pmix_bfrops_base_print_array @PMIX_RENAME@pmix_bfrops_base_print_array -#define pmix_bfrops_base_print_bo @PMIX_RENAME@pmix_bfrops_base_print_bo -#define pmix_bfrops_base_print_bool @PMIX_RENAME@pmix_bfrops_base_print_bool -#define pmix_bfrops_base_print_buf @PMIX_RENAME@pmix_bfrops_base_print_buf -#define pmix_bfrops_base_print_byte @PMIX_RENAME@pmix_bfrops_base_print_byte -#define pmix_bfrops_base_print_cmd @PMIX_RENAME@pmix_bfrops_base_print_cmd -#define pmix_bfrops_base_print_darray @PMIX_RENAME@pmix_bfrops_base_print_darray -#define pmix_bfrops_base_print_datatype @PMIX_RENAME@pmix_bfrops_base_print_datatype -#define pmix_bfrops_base_print_double @PMIX_RENAME@pmix_bfrops_base_print_double -#define pmix_bfrops_base_print_float @PMIX_RENAME@pmix_bfrops_base_print_float -#define pmix_bfrops_base_print_info @PMIX_RENAME@pmix_bfrops_base_print_info -#define pmix_bfrops_base_print_info_directives @PMIX_RENAME@pmix_bfrops_base_print_info_directives -#define pmix_bfrops_base_print_int @PMIX_RENAME@pmix_bfrops_base_print_int -#define pmix_bfrops_base_print_int16 @PMIX_RENAME@pmix_bfrops_base_print_int16 -#define pmix_bfrops_base_print_int32 @PMIX_RENAME@pmix_bfrops_base_print_int32 -#define pmix_bfrops_base_print_int64 @PMIX_RENAME@pmix_bfrops_base_print_int64 -#define pmix_bfrops_base_print_int8 @PMIX_RENAME@pmix_bfrops_base_print_int8 -#define pmix_bfrops_base_print_kval @PMIX_RENAME@pmix_bfrops_base_print_kval -#define pmix_bfrops_base_print_modex @PMIX_RENAME@pmix_bfrops_base_print_modex -#define pmix_bfrops_base_print_pdata @PMIX_RENAME@pmix_bfrops_base_print_pdata -#define pmix_bfrops_base_print_persist @PMIX_RENAME@pmix_bfrops_base_print_persist -#define pmix_bfrops_base_print_pid @PMIX_RENAME@pmix_bfrops_base_print_pid -#define pmix_bfrops_base_print_pinfo @PMIX_RENAME@pmix_bfrops_base_print_pinfo -#define pmix_bfrops_base_print_proc @PMIX_RENAME@pmix_bfrops_base_print_proc -#define pmix_bfrops_base_print_pstate @PMIX_RENAME@pmix_bfrops_base_print_pstate -#define pmix_bfrops_base_print_ptr @PMIX_RENAME@pmix_bfrops_base_print_ptr -#define pmix_bfrops_base_print_query @PMIX_RENAME@pmix_bfrops_base_print_query -#define pmix_bfrops_base_print_range @PMIX_RENAME@pmix_bfrops_base_print_range -#define pmix_bfrops_base_print_rank @PMIX_RENAME@pmix_bfrops_base_print_rank -#define pmix_bfrops_base_print_scope @PMIX_RENAME@pmix_bfrops_base_print_scope -#define pmix_bfrops_base_print_size @PMIX_RENAME@pmix_bfrops_base_print_size -#define pmix_bfrops_base_print_status @PMIX_RENAME@pmix_bfrops_base_print_status -#define pmix_bfrops_base_print_string @PMIX_RENAME@pmix_bfrops_base_print_string -#define pmix_bfrops_base_print_time @PMIX_RENAME@pmix_bfrops_base_print_time -#define pmix_bfrops_base_print_timeval @PMIX_RENAME@pmix_bfrops_base_print_timeval -#define pmix_bfrops_base_print_uint @PMIX_RENAME@pmix_bfrops_base_print_uint -#define pmix_bfrops_base_print_uint16 @PMIX_RENAME@pmix_bfrops_base_print_uint16 -#define pmix_bfrops_base_print_uint32 @PMIX_RENAME@pmix_bfrops_base_print_uint32 -#define pmix_bfrops_base_print_uint64 @PMIX_RENAME@pmix_bfrops_base_print_uint64 -#define pmix_bfrops_base_print_uint8 @PMIX_RENAME@pmix_bfrops_base_print_uint8 -#define pmix_bfrops_base_print_value @PMIX_RENAME@pmix_bfrops_base_print_value -#define pmix_bfrops_base_std_copy @PMIX_RENAME@pmix_bfrops_base_std_copy -#define pmix_bfrops_base_unpack @PMIX_RENAME@pmix_bfrops_base_unpack -#define pmix_bfrops_base_unpack_alloc_directive @PMIX_RENAME@pmix_bfrops_base_unpack_alloc_directive -#define pmix_bfrops_base_unpack_app @PMIX_RENAME@pmix_bfrops_base_unpack_app -#define pmix_bfrops_base_unpack_array @PMIX_RENAME@pmix_bfrops_base_unpack_array -#define pmix_bfrops_base_unpack_bo @PMIX_RENAME@pmix_bfrops_base_unpack_bo -#define pmix_bfrops_base_unpack_bool @PMIX_RENAME@pmix_bfrops_base_unpack_bool -#define pmix_bfrops_base_unpack_buf @PMIX_RENAME@pmix_bfrops_base_unpack_buf -#define pmix_bfrops_base_unpack_byte @PMIX_RENAME@pmix_bfrops_base_unpack_byte -#define pmix_bfrops_base_unpack_cmd @PMIX_RENAME@pmix_bfrops_base_unpack_cmd -#define pmix_bfrops_base_unpack_darray @PMIX_RENAME@pmix_bfrops_base_unpack_darray -#define pmix_bfrops_base_unpack_datatype @PMIX_RENAME@pmix_bfrops_base_unpack_datatype -#define pmix_bfrops_base_unpack_double @PMIX_RENAME@pmix_bfrops_base_unpack_double -#define pmix_bfrops_base_unpack_float @PMIX_RENAME@pmix_bfrops_base_unpack_float -#define pmix_bfrops_base_unpack_info @PMIX_RENAME@pmix_bfrops_base_unpack_info -#define pmix_bfrops_base_unpack_info_directives @PMIX_RENAME@pmix_bfrops_base_unpack_info_directives -#define pmix_bfrops_base_unpack_int @PMIX_RENAME@pmix_bfrops_base_unpack_int -#define pmix_bfrops_base_unpack_int16 @PMIX_RENAME@pmix_bfrops_base_unpack_int16 -#define pmix_bfrops_base_unpack_int32 @PMIX_RENAME@pmix_bfrops_base_unpack_int32 -#define pmix_bfrops_base_unpack_int64 @PMIX_RENAME@pmix_bfrops_base_unpack_int64 -#define pmix_bfrops_base_unpack_kval @PMIX_RENAME@pmix_bfrops_base_unpack_kval -#define pmix_bfrops_base_unpack_modex @PMIX_RENAME@pmix_bfrops_base_unpack_modex -#define pmix_bfrops_base_unpack_pdata @PMIX_RENAME@pmix_bfrops_base_unpack_pdata -#define pmix_bfrops_base_unpack_persist @PMIX_RENAME@pmix_bfrops_base_unpack_persist -#define pmix_bfrops_base_unpack_pid @PMIX_RENAME@pmix_bfrops_base_unpack_pid -#define pmix_bfrops_base_unpack_pinfo @PMIX_RENAME@pmix_bfrops_base_unpack_pinfo -#define pmix_bfrops_base_unpack_proc @PMIX_RENAME@pmix_bfrops_base_unpack_proc -#define pmix_bfrops_base_unpack_pstate @PMIX_RENAME@pmix_bfrops_base_unpack_pstate -#define pmix_bfrops_base_unpack_ptr @PMIX_RENAME@pmix_bfrops_base_unpack_ptr -#define pmix_bfrops_base_unpack_query @PMIX_RENAME@pmix_bfrops_base_unpack_query -#define pmix_bfrops_base_unpack_range @PMIX_RENAME@pmix_bfrops_base_unpack_range -#define pmix_bfrops_base_unpack_rank @PMIX_RENAME@pmix_bfrops_base_unpack_rank -#define pmix_bfrops_base_unpack_scope @PMIX_RENAME@pmix_bfrops_base_unpack_scope -#define pmix_bfrops_base_unpack_sizet @PMIX_RENAME@pmix_bfrops_base_unpack_sizet -#define pmix_bfrops_base_unpack_status @PMIX_RENAME@pmix_bfrops_base_unpack_status -#define pmix_bfrops_base_unpack_string @PMIX_RENAME@pmix_bfrops_base_unpack_string -#define pmix_bfrops_base_unpack_time @PMIX_RENAME@pmix_bfrops_base_unpack_time -#define pmix_bfrops_base_unpack_timeval @PMIX_RENAME@pmix_bfrops_base_unpack_timeval -#define pmix_bfrops_base_unpack_val @PMIX_RENAME@pmix_bfrops_base_unpack_val -#define pmix_bfrops_base_unpack_value @PMIX_RENAME@pmix_bfrops_base_unpack_value -#define pmix_bfrops_base_value_cmp @PMIX_RENAME@pmix_bfrops_base_value_cmp -#define pmix_bfrops_base_value_load @PMIX_RENAME@pmix_bfrops_base_value_load -#define pmix_bfrops_base_value_unload @PMIX_RENAME@pmix_bfrops_base_value_unload -#define pmix_bfrops_base_value_xfer @PMIX_RENAME@pmix_bfrops_base_value_xfer -#define pmix_bfrops_globals @PMIX_RENAME@pmix_bfrops_globals -#define pmix_bfrop_store_data_type @PMIX_RENAME@pmix_bfrop_store_data_type -#define pmix_bfrop_too_small @PMIX_RENAME@pmix_bfrop_too_small -#define pmix_bfrop_type_info_t_class @PMIX_RENAME@pmix_bfrop_type_info_t_class -#define pmix_buffer_t_class @PMIX_RENAME@pmix_buffer_t_class -#define pmix_cb_t_class @PMIX_RENAME@pmix_cb_t_class -#define pmix_class_finalize @PMIX_RENAME@pmix_class_finalize -#define pmix_class_init_epoch @PMIX_RENAME@pmix_class_init_epoch -#define pmix_class_initialize @PMIX_RENAME@pmix_class_initialize -#define pmix_client_globals @PMIX_RENAME@pmix_client_globals -#define pmix_cmd_line_add @PMIX_RENAME@pmix_cmd_line_add -#define pmix_cmd_line_create @PMIX_RENAME@pmix_cmd_line_create -#define pmix_cmd_line_get_argc @PMIX_RENAME@pmix_cmd_line_get_argc -#define pmix_cmd_line_get_argv @PMIX_RENAME@pmix_cmd_line_get_argv -#define pmix_cmd_line_get_ninsts @PMIX_RENAME@pmix_cmd_line_get_ninsts -#define pmix_cmd_line_get_param @PMIX_RENAME@pmix_cmd_line_get_param -#define pmix_cmd_line_get_tail @PMIX_RENAME@pmix_cmd_line_get_tail -#define pmix_cmd_line_get_usage_msg @PMIX_RENAME@pmix_cmd_line_get_usage_msg -#define pmix_cmd_line_is_taken @PMIX_RENAME@pmix_cmd_line_is_taken -#define pmix_cmd_line_make_opt3 @PMIX_RENAME@pmix_cmd_line_make_opt3 -#define pmix_cmd_line_make_opt_mca @PMIX_RENAME@pmix_cmd_line_make_opt_mca -#define pmix_cmd_line_parse @PMIX_RENAME@pmix_cmd_line_parse -#define pmix_cmd_line_t_class @PMIX_RENAME@pmix_cmd_line_t_class -#define pmix_command_string @PMIX_RENAME@pmix_command_string -#define PMIx_Commit @PMIX_RENAME@PMIx_Commit -#define PMIx_Connect @PMIX_RENAME@PMIx_Connect -#define PMIx_Connect_nb @PMIX_RENAME@PMIx_Connect_nb -#define PMIx_Data_copy @PMIX_RENAME@PMIx_Data_copy -#define PMIx_Data_copy_payload @PMIX_RENAME@PMIx_Data_copy_payload -#define PMIx_Data_pack @PMIX_RENAME@PMIx_Data_pack -#define PMIx_Data_print @PMIX_RENAME@PMIx_Data_print -#define PMIx_Data_range_string @PMIX_RENAME@PMIx_Data_range_string -#define PMIx_Data_type_string @PMIX_RENAME@PMIx_Data_type_string -#define PMIx_Data_unpack @PMIX_RENAME@PMIx_Data_unpack -#define pmix_debug_threads @PMIX_RENAME@pmix_debug_threads -#define PMIx_Deregister_event_handler @PMIX_RENAME@PMIx_Deregister_event_handler -#define pmix_deregister_params @PMIX_RENAME@pmix_deregister_params -#define pmix_dirname @PMIX_RENAME@pmix_dirname -#define PMIx_Disconnect @PMIX_RENAME@PMIx_Disconnect -#define PMIx_Disconnect_nb @PMIX_RENAME@PMIx_Disconnect_nb -#define pmix_environ_merge @PMIX_RENAME@pmix_environ_merge -#define PMIx_Error_string @PMIX_RENAME@PMIx_Error_string -#define pmix_fd_read @PMIX_RENAME@pmix_fd_read -#define pmix_fd_set_cloexec @PMIX_RENAME@pmix_fd_set_cloexec -#define pmix_fd_write @PMIX_RENAME@pmix_fd_write -#define PMIx_Fence @PMIX_RENAME@PMIx_Fence -#define PMIx_Fence_nb @PMIX_RENAME@PMIx_Fence_nb -#define PMIx_Finalize @PMIX_RENAME@PMIx_Finalize -#define pmix_find_absolute_path @PMIX_RENAME@pmix_find_absolute_path -#define pmix_gds_base_assign_module @PMIX_RENAME@pmix_gds_base_assign_module -#define pmix_gds_base_framework @PMIX_RENAME@pmix_gds_base_framework -#define pmix_gds_base_get_available_modules @PMIX_RENAME@pmix_gds_base_get_available_modules -#define pmix_gds_base_output @PMIX_RENAME@pmix_gds_base_output -#define pmix_gds_base_select @PMIX_RENAME@pmix_gds_base_select -#define pmix_gds_base_setup_fork @PMIX_RENAME@pmix_gds_base_setup_fork -#define pmix_gds_globals @PMIX_RENAME@pmix_gds_globals -#define PMIx_generate_ppn @PMIX_RENAME@PMIx_generate_ppn -#define PMIx_generate_regex @PMIX_RENAME@PMIx_generate_regex -#define PMIx_Get @PMIX_RENAME@PMIx_Get -#define PMIx_Get_nb @PMIX_RENAME@PMIx_Get_nb -#define PMIx_Get_version @PMIX_RENAME@PMIx_Get_version -#define pmix_global_lock @PMIX_RENAME@pmix_global_lock -#define pmix_globals @PMIX_RENAME@pmix_globals -#define pmix_hash_fetch @PMIX_RENAME@pmix_hash_fetch -#define pmix_hash_fetch_by_key @PMIX_RENAME@pmix_hash_fetch_by_key -#define pmix_hash_remove_data @PMIX_RENAME@pmix_hash_remove_data -#define pmix_hash_store @PMIX_RENAME@pmix_hash_store -#define pmix_hash_table_get_first_key_ptr @PMIX_RENAME@pmix_hash_table_get_first_key_ptr -#define pmix_hash_table_get_first_key_uint32 @PMIX_RENAME@pmix_hash_table_get_first_key_uint32 -#define pmix_hash_table_get_first_key_uint64 @PMIX_RENAME@pmix_hash_table_get_first_key_uint64 -#define pmix_hash_table_get_next_key_ptr @PMIX_RENAME@pmix_hash_table_get_next_key_ptr -#define pmix_hash_table_get_next_key_uint32 @PMIX_RENAME@pmix_hash_table_get_next_key_uint32 -#define pmix_hash_table_get_next_key_uint64 @PMIX_RENAME@pmix_hash_table_get_next_key_uint64 -#define pmix_hash_table_get_value_ptr @PMIX_RENAME@pmix_hash_table_get_value_ptr -#define pmix_hash_table_get_value_uint32 @PMIX_RENAME@pmix_hash_table_get_value_uint32 -#define pmix_hash_table_get_value_uint64 @PMIX_RENAME@pmix_hash_table_get_value_uint64 -#define pmix_hash_table_init @PMIX_RENAME@pmix_hash_table_init -#define pmix_hash_table_init2 @PMIX_RENAME@pmix_hash_table_init2 -#define pmix_hash_table_remove_all @PMIX_RENAME@pmix_hash_table_remove_all -#define pmix_hash_table_remove_value_ptr @PMIX_RENAME@pmix_hash_table_remove_value_ptr -#define pmix_hash_table_remove_value_uint32 @PMIX_RENAME@pmix_hash_table_remove_value_uint32 -#define pmix_hash_table_remove_value_uint64 @PMIX_RENAME@pmix_hash_table_remove_value_uint64 -#define pmix_hash_table_set_value_ptr @PMIX_RENAME@pmix_hash_table_set_value_ptr -#define pmix_hash_table_set_value_uint32 @PMIX_RENAME@pmix_hash_table_set_value_uint32 -#define pmix_hash_table_set_value_uint64 @PMIX_RENAME@pmix_hash_table_set_value_uint64 -#define pmix_hash_table_t_class @PMIX_RENAME@pmix_hash_table_t_class -#define pmix_home_directory @PMIX_RENAME@pmix_home_directory -#define pmix_host_server @PMIX_RENAME@pmix_host_server -#define pmix_hotel_init @PMIX_RENAME@pmix_hotel_init -#define pmix_ifaddrtokindex @PMIX_RENAME@pmix_ifaddrtokindex -#define pmix_ifaddrtoname @PMIX_RENAME@pmix_ifaddrtoname -#define pmix_ifbegin @PMIX_RENAME@pmix_ifbegin -#define pmix_ifcount @PMIX_RENAME@pmix_ifcount -#define pmix_ifgetaliases @PMIX_RENAME@pmix_ifgetaliases -#define pmix_ifindextoaddr @PMIX_RENAME@pmix_ifindextoaddr -#define pmix_ifindextoflags @PMIX_RENAME@pmix_ifindextoflags -#define pmix_ifindextokindex @PMIX_RENAME@pmix_ifindextokindex -#define pmix_ifindextomac @PMIX_RENAME@pmix_ifindextomac -#define pmix_ifindextomask @PMIX_RENAME@pmix_ifindextomask -#define pmix_ifindextomtu @PMIX_RENAME@pmix_ifindextomtu -#define pmix_ifindextoname @PMIX_RENAME@pmix_ifindextoname -#define pmix_ifislocal @PMIX_RENAME@pmix_ifislocal -#define pmix_ifisloopback @PMIX_RENAME@pmix_ifisloopback -#define pmix_ifkindextoaddr @PMIX_RENAME@pmix_ifkindextoaddr -#define pmix_ifkindextoname @PMIX_RENAME@pmix_ifkindextoname -#define pmix_ifmatches @PMIX_RENAME@pmix_ifmatches -#define pmix_ifnametoaddr @PMIX_RENAME@pmix_ifnametoaddr -#define pmix_ifnametoindex @PMIX_RENAME@pmix_ifnametoindex -#define pmix_ifnametokindex @PMIX_RENAME@pmix_ifnametokindex -#define pmix_ifnext @PMIX_RENAME@pmix_ifnext -#define pmix_iftupletoaddr @PMIX_RENAME@pmix_iftupletoaddr -#define pmix_info_caddy_t_class @PMIX_RENAME@pmix_info_caddy_t_class -#define PMIx_Info_directives_string @PMIX_RENAME@PMIx_Info_directives_string -#define PMIx_Init @PMIX_RENAME@PMIx_Init -#define pmix_init_called @PMIX_RENAME@pmix_init_called -#define pmix_initialized @PMIX_RENAME@pmix_initialized -#define PMIx_Initialized @PMIX_RENAME@PMIx_Initialized -#define PMIx_Job_control_nb @PMIX_RENAME@PMIx_Job_control_nb -#define pmix_kval_t_class @PMIX_RENAME@pmix_kval_t_class -#define pmix_listener_t_class @PMIX_RENAME@pmix_listener_t_class -#define pmix_list_item_t_class @PMIX_RENAME@pmix_list_item_t_class -#define pmix_list_t_class @PMIX_RENAME@pmix_list_t_class -#define PMIx_Log_nb @PMIX_RENAME@PMIx_Log_nb -#define PMIx_Lookup @PMIX_RENAME@PMIx_Lookup -#define PMIx_Lookup_nb @PMIX_RENAME@PMIx_Lookup_nb -#define pmix_mca_base_close @PMIX_RENAME@pmix_mca_base_close -#define pmix_mca_base_cmd_line_process_args @PMIX_RENAME@pmix_mca_base_cmd_line_process_args -#define pmix_mca_base_cmd_line_setup @PMIX_RENAME@pmix_mca_base_cmd_line_setup -#define pmix_mca_base_cmd_line_wrap_args @PMIX_RENAME@pmix_mca_base_cmd_line_wrap_args -#define pmix_mca_base_component_close @PMIX_RENAME@pmix_mca_base_component_close -#define pmix_mca_base_component_compare @PMIX_RENAME@pmix_mca_base_component_compare -#define pmix_mca_base_component_compare_priority @PMIX_RENAME@pmix_mca_base_component_compare_priority -#define pmix_mca_base_component_compatible @PMIX_RENAME@pmix_mca_base_component_compatible -#define pmix_mca_base_component_disable_dlopen @PMIX_RENAME@pmix_mca_base_component_disable_dlopen -#define pmix_mca_base_component_find @PMIX_RENAME@pmix_mca_base_component_find -#define pmix_mca_base_component_find_finalize @PMIX_RENAME@pmix_mca_base_component_find_finalize -#define pmix_mca_base_component_list_item_t_class @PMIX_RENAME@pmix_mca_base_component_list_item_t_class -#define pmix_mca_base_component_parse_requested @PMIX_RENAME@pmix_mca_base_component_parse_requested -#define pmix_mca_base_component_path @PMIX_RENAME@pmix_mca_base_component_path -#define pmix_mca_base_component_priority_list_item_t_class @PMIX_RENAME@pmix_mca_base_component_priority_list_item_t_class -#define pmix_mca_base_component_repository_add @PMIX_RENAME@pmix_mca_base_component_repository_add -#define pmix_mca_base_component_repository_finalize @PMIX_RENAME@pmix_mca_base_component_repository_finalize -#define pmix_mca_base_component_repository_get_components @PMIX_RENAME@pmix_mca_base_component_repository_get_components -#define pmix_mca_base_component_repository_init @PMIX_RENAME@pmix_mca_base_component_repository_init -#define pmix_mca_base_component_repository_item_t_class @PMIX_RENAME@pmix_mca_base_component_repository_item_t_class -#define pmix_mca_base_component_repository_open @PMIX_RENAME@pmix_mca_base_component_repository_open -#define pmix_mca_base_component_repository_release @PMIX_RENAME@pmix_mca_base_component_repository_release -#define pmix_mca_base_component_repository_retain_component @PMIX_RENAME@pmix_mca_base_component_repository_retain_component -#define pmix_mca_base_components_close @PMIX_RENAME@pmix_mca_base_components_close -#define pmix_mca_base_components_filter @PMIX_RENAME@pmix_mca_base_components_filter -#define pmix_mca_base_component_show_load_errors @PMIX_RENAME@pmix_mca_base_component_show_load_errors -#define pmix_mca_base_component_to_string @PMIX_RENAME@pmix_mca_base_component_to_string -#define pmix_mca_base_component_track_load_errors @PMIX_RENAME@pmix_mca_base_component_track_load_errors -#define pmix_mca_base_component_unload @PMIX_RENAME@pmix_mca_base_component_unload -#define pmix_mca_base_component_var_register @PMIX_RENAME@pmix_mca_base_component_var_register -#define pmix_mca_base_failed_component_t_class @PMIX_RENAME@pmix_mca_base_failed_component_t_class -#define pmix_mca_base_framework_close @PMIX_RENAME@pmix_mca_base_framework_close -#define pmix_mca_base_framework_components_close @PMIX_RENAME@pmix_mca_base_framework_components_close -#define pmix_mca_base_framework_components_open @PMIX_RENAME@pmix_mca_base_framework_components_open -#define pmix_mca_base_framework_components_register @PMIX_RENAME@pmix_mca_base_framework_components_register -#define pmix_mca_base_framework_is_open @PMIX_RENAME@pmix_mca_base_framework_is_open -#define pmix_mca_base_framework_is_registered @PMIX_RENAME@pmix_mca_base_framework_is_registered -#define pmix_mca_base_framework_open @PMIX_RENAME@pmix_mca_base_framework_open -#define pmix_mca_base_framework_register @PMIX_RENAME@pmix_mca_base_framework_register -#define pmix_mca_base_framework_var_register @PMIX_RENAME@pmix_mca_base_framework_var_register -#define pmix_mca_base_open @PMIX_RENAME@pmix_mca_base_open -#define pmix_mca_base_select @PMIX_RENAME@pmix_mca_base_select -#define pmix_mca_base_system_default_path @PMIX_RENAME@pmix_mca_base_system_default_path -#define pmix_mca_base_user_default_path @PMIX_RENAME@pmix_mca_base_user_default_path -#define pmix_mca_base_var_build_env @PMIX_RENAME@pmix_mca_base_var_build_env -#define pmix_mca_base_var_cache_files @PMIX_RENAME@pmix_mca_base_var_cache_files -#define pmix_mca_base_var_check_exclusive @PMIX_RENAME@pmix_mca_base_var_check_exclusive -#define pmix_mca_base_var_deregister @PMIX_RENAME@pmix_mca_base_var_deregister -#define pmix_mca_base_var_dump @PMIX_RENAME@pmix_mca_base_var_dump -#define pmix_mca_base_var_env_name @PMIX_RENAME@pmix_mca_base_var_env_name -#define pmix_mca_base_var_finalize @PMIX_RENAME@pmix_mca_base_var_finalize -#define pmix_mca_base_var_find @PMIX_RENAME@pmix_mca_base_var_find -#define pmix_mca_base_var_find_by_name @PMIX_RENAME@pmix_mca_base_var_find_by_name -#define pmix_mca_base_var_get @PMIX_RENAME@pmix_mca_base_var_get -#define pmix_mca_base_var_get_count @PMIX_RENAME@pmix_mca_base_var_get_count -#define pmix_mca_base_var_get_value @PMIX_RENAME@pmix_mca_base_var_get_value -#define pmix_mca_base_var_group_component_register @PMIX_RENAME@pmix_mca_base_var_group_component_register -#define pmix_mca_base_var_group_deregister @PMIX_RENAME@pmix_mca_base_var_group_deregister -#define pmix_mca_base_var_group_find @PMIX_RENAME@pmix_mca_base_var_group_find -#define pmix_mca_base_var_group_find_by_name @PMIX_RENAME@pmix_mca_base_var_group_find_by_name -#define pmix_mca_base_var_group_get @PMIX_RENAME@pmix_mca_base_var_group_get -#define pmix_mca_base_var_group_get_count @PMIX_RENAME@pmix_mca_base_var_group_get_count -#define pmix_mca_base_var_group_get_stamp @PMIX_RENAME@pmix_mca_base_var_group_get_stamp -#define pmix_mca_base_var_group_register @PMIX_RENAME@pmix_mca_base_var_group_register -#define pmix_mca_base_var_group_set_var_flag @PMIX_RENAME@pmix_mca_base_var_group_set_var_flag -#define pmix_mca_base_var_group_t_class @PMIX_RENAME@pmix_mca_base_var_group_t_class -#define pmix_mca_base_var_init @PMIX_RENAME@pmix_mca_base_var_init -#define pmix_mca_base_var_process_env_list @PMIX_RENAME@pmix_mca_base_var_process_env_list -#define pmix_mca_base_var_process_env_list_from_file @PMIX_RENAME@pmix_mca_base_var_process_env_list_from_file -#define pmix_mca_base_var_register @PMIX_RENAME@pmix_mca_base_var_register -#define pmix_mca_base_var_register_synonym @PMIX_RENAME@pmix_mca_base_var_register_synonym -#define pmix_mca_base_var_set_flag @PMIX_RENAME@pmix_mca_base_var_set_flag -#define pmix_mca_base_var_set_value @PMIX_RENAME@pmix_mca_base_var_set_value -#define pmix_mca_base_var_t_class @PMIX_RENAME@pmix_mca_base_var_t_class -#define pmix_mutex_t_class @PMIX_RENAME@pmix_mutex_t_class -#define pmix_namelist_t_class @PMIX_RENAME@pmix_namelist_t_class -#define pmix_net_addr_isipv4public @PMIX_RENAME@pmix_net_addr_isipv4public -#define pmix_net_finalize @PMIX_RENAME@pmix_net_finalize -#define pmix_net_get_hostname @PMIX_RENAME@pmix_net_get_hostname -#define pmix_net_get_port @PMIX_RENAME@pmix_net_get_port -#define pmix_net_init @PMIX_RENAME@pmix_net_init -#define pmix_net_isaddr @PMIX_RENAME@pmix_net_isaddr -#define pmix_net_islocalhost @PMIX_RENAME@pmix_net_islocalhost -#define pmix_net_prefix2netmask @PMIX_RENAME@pmix_net_prefix2netmask -#define pmix_net_samenetwork @PMIX_RENAME@pmix_net_samenetwork -#define PMIx_Notify_event @PMIX_RENAME@PMIx_Notify_event -#define pmix_nspace_caddy_t_class @PMIX_RENAME@pmix_nspace_caddy_t_class -#define pmix_nspace_t_class @PMIX_RENAME@pmix_nspace_t_class -#define pmix_object_t_class @PMIX_RENAME@pmix_object_t_class -#define pmix_os_path @PMIX_RENAME@pmix_os_path -#define pmix_output @PMIX_RENAME@pmix_output -#define pmix_output_close @PMIX_RENAME@pmix_output_close -#define pmix_output_finalize @PMIX_RENAME@pmix_output_finalize -#define pmix_output_get_verbosity @PMIX_RENAME@pmix_output_get_verbosity -#define pmix_output_check_verbosity @PMIX_RENAME@pmix_output_check_verbosity -#define pmix_output_hexdump @PMIX_RENAME@pmix_output_hexdump -#define pmix_output_init @PMIX_RENAME@pmix_output_init -#define pmix_output_open @PMIX_RENAME@pmix_output_open -#define pmix_output_reopen @PMIX_RENAME@pmix_output_reopen -#define pmix_output_reopen_all @PMIX_RENAME@pmix_output_reopen_all -#define pmix_output_set_output_file_info @PMIX_RENAME@pmix_output_set_output_file_info -#define pmix_output_set_verbosity @PMIX_RENAME@pmix_output_set_verbosity -#define pmix_output_switch @PMIX_RENAME@pmix_output_switch -#define pmix_output_vverbose @PMIX_RENAME@pmix_output_vverbose -#define pmix_path_access @PMIX_RENAME@pmix_path_access -#define pmix_path_df @PMIX_RENAME@pmix_path_df -#define pmix_path_find @PMIX_RENAME@pmix_path_find -#define pmix_path_findv @PMIX_RENAME@pmix_path_findv -#define pmix_path_is_absolute @PMIX_RENAME@pmix_path_is_absolute -#define pmix_path_nfs @PMIX_RENAME@pmix_path_nfs -#define pmix_pdl_base_framework @PMIX_RENAME@pmix_pdl_base_framework -#define pmix_peer_t_class @PMIX_RENAME@pmix_peer_t_class -#define pmix_pending_connection_t_class @PMIX_RENAME@pmix_pending_connection_t_class -#define PMIx_Persistence_string @PMIX_RENAME@PMIx_Persistence_string -#define pmix_pif_base_framework @PMIX_RENAME@pmix_pif_base_framework -#define pmix_pinstall_dirs @PMIX_RENAME@pmix_pinstall_dirs -#define pmix_pinstalldirs_base_framework @PMIX_RENAME@pmix_pinstalldirs_base_framework -#define pmix_pnet @PMIX_RENAME@pmix_pnet -#define pmix_pnet_base_child_finalized @PMIX_RENAME@pmix_pnet_base_child_finalized -#define pmix_pnet_base_framework @PMIX_RENAME@pmix_pnet_base_framework -#define pmix_pnet_base_local_app_finalized @PMIX_RENAME@pmix_pnet_base_local_app_finalized -#define pmix_pnet_base_select @PMIX_RENAME@pmix_pnet_base_select -#define pmix_pnet_base_setup_app @PMIX_RENAME@pmix_pnet_base_setup_app -#define pmix_pnet_base_setup_fork @PMIX_RENAME@pmix_pnet_base_setup_fork -#define pmix_pnet_base_setup_local_network @PMIX_RENAME@pmix_pnet_base_setup_local_network -#define pmix_pnet_globals @PMIX_RENAME@pmix_pnet_globals -#define pmix_pointer_array_add @PMIX_RENAME@pmix_pointer_array_add -#define pmix_pointer_array_init @PMIX_RENAME@pmix_pointer_array_init -#define pmix_pointer_array_set_item @PMIX_RENAME@pmix_pointer_array_set_item -#define pmix_pointer_array_set_size @PMIX_RENAME@pmix_pointer_array_set_size -#define pmix_pointer_array_t_class @PMIX_RENAME@pmix_pointer_array_t_class -#define pmix_pointer_array_test_and_set_item @PMIX_RENAME@pmix_pointer_array_test_and_set_item -#define pmix_preg @PMIX_RENAME@pmix_preg -#define pmix_preg_base_framework @PMIX_RENAME@pmix_preg_base_framework -#define pmix_preg_base_generate_node_regex @PMIX_RENAME@pmix_preg_base_generate_node_regex -#define pmix_preg_base_generate_ppn @PMIX_RENAME@pmix_preg_base_generate_ppn -#define pmix_preg_base_parse_nodes @PMIX_RENAME@pmix_preg_base_parse_nodes -#define pmix_preg_base_parse_procs @PMIX_RENAME@pmix_preg_base_parse_procs -#define pmix_preg_base_resolve_nodes @PMIX_RENAME@pmix_preg_base_resolve_nodes -#define pmix_preg_base_resolve_peers @PMIX_RENAME@pmix_preg_base_resolve_peers -#define pmix_preg_base_select @PMIX_RENAME@pmix_preg_base_select -#define pmix_preg_globals @PMIX_RENAME@pmix_preg_globals -#define PMIx_Process_monitor_nb @PMIX_RENAME@PMIx_Process_monitor_nb -#define PMIx_Proc_state_string @PMIX_RENAME@PMIx_Proc_state_string -#define pmix_psec_base_assign_module @PMIX_RENAME@pmix_psec_base_assign_module -#define pmix_psec_base_framework @PMIX_RENAME@pmix_psec_base_framework -#define pmix_psec_base_get_available_modules @PMIX_RENAME@pmix_psec_base_get_available_modules -#define pmix_psec_base_select @PMIX_RENAME@pmix_psec_base_select -#define pmix_psensor @PMIX_RENAME@pmix_psensor -#define pmix_psensor_base @PMIX_RENAME@pmix_psensor_base -#define pmix_psensor_base_framework @PMIX_RENAME@pmix_psensor_base_framework -#define pmix_psensor_base_select @PMIX_RENAME@pmix_psensor_base_select -#define pmix_psensor_base_start @PMIX_RENAME@pmix_psensor_base_start -#define pmix_psensor_base_stop @PMIX_RENAME@pmix_psensor_base_stop -#define pmix_pshmem @PMIX_RENAME@pmix_pshmem -#define pmix_pshmem_base_framework @PMIX_RENAME@pmix_pshmem_base_framework -#define pmix_pshmem_base_select @PMIX_RENAME@pmix_pshmem_base_select -#define pmix_ptl_base_assign_module @PMIX_RENAME@pmix_ptl_base_assign_module -#define pmix_ptl_base_cancel_recv @PMIX_RENAME@pmix_ptl_base_cancel_recv -#define pmix_ptl_base_connect @PMIX_RENAME@pmix_ptl_base_connect -#define pmix_ptl_base_connect_to_peer @PMIX_RENAME@pmix_ptl_base_connect_to_peer -#define pmix_ptl_base_framework @PMIX_RENAME@pmix_ptl_base_framework -#define pmix_ptl_base_get_available_modules @PMIX_RENAME@pmix_ptl_base_get_available_modules -#define pmix_ptl_base_lost_connection @PMIX_RENAME@pmix_ptl_base_lost_connection -#define pmix_ptl_base_output @PMIX_RENAME@pmix_ptl_base_output -#define pmix_ptl_base_process_msg @PMIX_RENAME@pmix_ptl_base_process_msg -#define pmix_ptl_base_recv_blocking @PMIX_RENAME@pmix_ptl_base_recv_blocking -#define pmix_ptl_base_recv_handler @PMIX_RENAME@pmix_ptl_base_recv_handler -#define pmix_ptl_base_register_recv @PMIX_RENAME@pmix_ptl_base_register_recv -#define pmix_ptl_base_select @PMIX_RENAME@pmix_ptl_base_select -#define pmix_ptl_base_send @PMIX_RENAME@pmix_ptl_base_send -#define pmix_ptl_base_send_blocking @PMIX_RENAME@pmix_ptl_base_send_blocking -#define pmix_ptl_base_send_handler @PMIX_RENAME@pmix_ptl_base_send_handler -#define pmix_ptl_base_send_recv @PMIX_RENAME@pmix_ptl_base_send_recv -#define pmix_ptl_base_set_blocking @PMIX_RENAME@pmix_ptl_base_set_blocking -#define pmix_ptl_base_set_nonblocking @PMIX_RENAME@pmix_ptl_base_set_nonblocking -#define pmix_ptl_base_set_notification_cbfunc @PMIX_RENAME@pmix_ptl_base_set_notification_cbfunc -#define pmix_ptl_base_start_listening @PMIX_RENAME@pmix_ptl_base_start_listening -#define pmix_ptl_base_stop_listening @PMIX_RENAME@pmix_ptl_base_stop_listening -#define pmix_ptl_globals @PMIX_RENAME@pmix_ptl_globals -#define pmix_ptl_posted_recv_t_class @PMIX_RENAME@pmix_ptl_posted_recv_t_class -#define pmix_ptl_queue_t_class @PMIX_RENAME@pmix_ptl_queue_t_class -#define pmix_ptl_recv_t_class @PMIX_RENAME@pmix_ptl_recv_t_class -#define pmix_ptl_send_t_class @PMIX_RENAME@pmix_ptl_send_t_class -#define pmix_ptl_sr_t_class @PMIX_RENAME@pmix_ptl_sr_t_class -#define PMIx_Publish @PMIX_RENAME@PMIx_Publish -#define PMIx_Publish_nb @PMIX_RENAME@PMIx_Publish_nb -#define PMIx_Put @PMIX_RENAME@PMIx_Put -#define pmix_query_caddy_t_class @PMIX_RENAME@pmix_query_caddy_t_class -#define PMIx_Query_info_nb @PMIX_RENAME@PMIx_Query_info_nb -#define pmix_rand @PMIX_RENAME@pmix_rand -#define pmix_random @PMIX_RENAME@pmix_random -#define pmix_rank_info_t_class @PMIX_RENAME@pmix_rank_info_t_class -#define pmix_recursive_mutex_t_class @PMIX_RENAME@pmix_recursive_mutex_t_class -#define pmix_regex_range_t_class @PMIX_RENAME@pmix_regex_range_t_class -#define pmix_regex_value_t_class @PMIX_RENAME@pmix_regex_value_t_class -#define PMIx_Register_event_handler @PMIX_RENAME@PMIx_Register_event_handler -#define pmix_register_params @PMIX_RENAME@pmix_register_params -#define PMIx_Resolve_nodes @PMIX_RENAME@PMIx_Resolve_nodes -#define PMIx_Resolve_peers @PMIX_RENAME@PMIx_Resolve_peers -#define pmix_ring_buffer_init @PMIX_RENAME@pmix_ring_buffer_init -#define pmix_ring_buffer_poke @PMIX_RENAME@pmix_ring_buffer_poke -#define pmix_ring_buffer_pop @PMIX_RENAME@pmix_ring_buffer_pop -#define pmix_ring_buffer_push @PMIX_RENAME@pmix_ring_buffer_push -#define pmix_rte_finalize @PMIX_RENAME@pmix_rte_finalize -#define pmix_rte_init @PMIX_RENAME@pmix_rte_init -#define PMIx_Scope_string @PMIX_RENAME@PMIx_Scope_string -#define PMIx_server_deregister_client @PMIX_RENAME@PMIx_server_deregister_client -#define PMIx_server_deregister_nspace @PMIX_RENAME@PMIx_server_deregister_nspace -#define PMIx_server_dmodex_request @PMIX_RENAME@PMIx_server_dmodex_request -#define PMIx_server_finalize @PMIX_RENAME@PMIx_server_finalize -#define pmix_server_globals @PMIX_RENAME@pmix_server_globals -#define PMIx_server_init @PMIX_RENAME@PMIx_server_init -#define PMIx_server_register_client @PMIX_RENAME@PMIx_server_register_client -#define PMIx_server_register_nspace @PMIX_RENAME@PMIx_server_register_nspace -#define PMIx_server_setup_application @PMIX_RENAME@PMIx_server_setup_application -#define PMIx_server_setup_fork @PMIX_RENAME@PMIx_server_setup_fork -#define PMIx_server_setup_local_support @PMIX_RENAME@PMIx_server_setup_local_support -#define pmix_setenv @PMIX_RENAME@pmix_setenv -#define pmix_setup_caddy_t_class @PMIX_RENAME@pmix_setup_caddy_t_class -#define pmix_shift_caddy_t_class @PMIX_RENAME@pmix_shift_caddy_t_class -#define pmix_show_help @PMIX_RENAME@pmix_show_help -#define pmix_show_help_add_dir @PMIX_RENAME@pmix_show_help_add_dir -#define pmix_show_help_finalize @PMIX_RENAME@pmix_show_help_finalize -#define pmix_show_help_init @PMIX_RENAME@pmix_show_help_init -#define pmix_show_help_string @PMIX_RENAME@pmix_show_help_string -#define pmix_show_help_vstring @PMIX_RENAME@pmix_show_help_vstring -#define pmix_show_vhelp @PMIX_RENAME@pmix_show_vhelp -#define pmix_snprintf @PMIX_RENAME@pmix_snprintf -#define PMIx_Spawn @PMIX_RENAME@PMIx_Spawn -#define PMIx_Spawn_nb @PMIX_RENAME@PMIx_Spawn_nb -#define pmix_srand @PMIX_RENAME@pmix_srand -#define PMIx_Store_internal @PMIX_RENAME@PMIx_Store_internal -#define pmix_sync_wait_mt @PMIX_RENAME@pmix_sync_wait_mt -#define pmix_thread_get_self @PMIX_RENAME@pmix_thread_get_self -#define pmix_thread_join @PMIX_RENAME@pmix_thread_join -#define pmix_thread_kill @PMIX_RENAME@pmix_thread_kill -#define pmix_thread_self_compare @PMIX_RENAME@pmix_thread_self_compare -#define pmix_thread_set_main @PMIX_RENAME@pmix_thread_set_main -#define pmix_thread_start @PMIX_RENAME@pmix_thread_start -#define pmix_thread_t_class @PMIX_RENAME@pmix_thread_t_class -#define pmix_tmp_directory @PMIX_RENAME@pmix_tmp_directory -#define PMIx_tool_finalize @PMIX_RENAME@PMIx_tool_finalize -#define PMIx_tool_init @PMIX_RENAME@PMIx_tool_init -#define pmix_tsd_key_create @PMIX_RENAME@pmix_tsd_key_create -#define pmix_tsd_keys_destruct @PMIX_RENAME@pmix_tsd_keys_destruct -#define PMIx_Unpublish @PMIX_RENAME@PMIx_Unpublish -#define PMIx_Unpublish_nb @PMIX_RENAME@PMIx_Unpublish_nb -#define pmix_unsetenv @PMIX_RENAME@pmix_unsetenv -#define pmix_util_compress_string @PMIX_RENAME@pmix_util_compress_string -#define pmix_util_getid @PMIX_RENAME@pmix_util_getid -#define pmix_util_get_ranges @PMIX_RENAME@pmix_util_get_ranges -#define pmix_util_keyval_parse @PMIX_RENAME@pmix_util_keyval_parse -#define pmix_util_keyval_parse_finalize @PMIX_RENAME@pmix_util_keyval_parse_finalize -#define pmix_util_keyval_parse_init @PMIX_RENAME@pmix_util_keyval_parse_init -#define pmix_util_keyval_parse_lineno @PMIX_RENAME@pmix_util_keyval_parse_lineno -#define pmix_util_keyval_save_internal_envars @PMIX_RENAME@pmix_util_keyval_save_internal_envars -#define pmix_util_parse_range_options @PMIX_RENAME@pmix_util_parse_range_options -#define pmix_util_uncompress_string @PMIX_RENAME@pmix_util_uncompress_string -#define pmix_value_array_set_size @PMIX_RENAME@pmix_value_array_set_size -#define pmix_value_array_t_class @PMIX_RENAME@pmix_value_array_t_class -#define pmix_value_load @PMIX_RENAME@pmix_value_load -#define pmix_value_xfer @PMIX_RENAME@pmix_value_xfer -#define pmix_var_type_names @PMIX_RENAME@pmix_var_type_names -#define pmix_vasprintf @PMIX_RENAME@pmix_vasprintf -#define pmix_vsnprintf @PMIX_RENAME@pmix_vsnprintf diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/pmix_server.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/pmix_server.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/pmix_server.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/pmix_server.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Artem Y. Polyakov . * All rights reserved. * Copyright (c) 2015 Research Organization for Information Science @@ -543,34 +543,41 @@ * memory usage is released */ PMIX_EXPORT pmix_status_t PMIx_server_finalize(void); -/* given a semicolon-separated list of input values, generate - * a regex that can be passed down to the client for parsing. - * The caller is responsible for free'ing the resulting - * string - * - * If values have leading zero's, then that is preserved. You - * have to add back any prefix/suffix for node names - * odin[009-015,017-023,076-086] - * - * "pmix:odin[009-015,017-023,076-086]" - * - * Note that the "pmix" at the beginning of each regex indicates - * that the PMIx native parser is to be used by the client for - * parsing the provided regex. Other parsers may be supported - see - * the pmix_client.h header for a list. +/* Given a comma-separated list of \refarg{input} values, generate + * a reduced size representation of the input that can be passed + * down to PMIx_server_register_nspace for parsing. The order of + * the individual values in the \refarg{input} string is preserved + * across the operation. The caller is responsible for releasing + * the returned data. + * + * The returned representation may be an arbitrary array of bytes + * as opposed to a valid NULL-terminated string. However, the + * method used to generate the representation shall be identified + * with a colon-delimited string at the beginning of the output. + * For example, an output starting with "pmix:" indicates that + * the representation is a PMIx-defined regular expression. + * In contrast, an output starting with "blob:" is a compressed + * binary array. */ PMIX_EXPORT pmix_status_t PMIx_generate_regex(const char *input, char **regex); -/* The input is expected to consist of a comma-separated list - * of ranges. Thus, an input of: - * "1-4;2-5;8,10,11,12;6,7,9" - * would generate a regex of - * "[pmix:2x(3);8,10-12;6-7,9]" - * - * Note that the "pmix" at the beginning of each regex indicates - * that the PMIx native parser is to be used by the client for - * parsing the provided regex. Other parsers may be supported - see - * the pmix_client.h header for a list. +/* The input shall consist of a semicolon-separated list of ranges + * representing the ranks of processes on each node of the job - + * e.g., "1-4;2-5;8,10,11,12;6,7,9". Each field of the input must + * correspond to the node name provided at that position in the + * input to PMIx_generate_regex. Thus, in the example, ranks 1-4 + * would be located on the first node of the comma-separated list + * of names provided to PMIx_generate_regex, and ranks 2-5 would + * be on the second name in the list. + * + * The returned representation may be an arbitrary array of bytes + * as opposed to a valid NULL-terminated string. However, the + * method used to generate the representation shall be identified + * with a colon-delimited string at the beginning of the output. + * For example, an output starting with "pmix:" indicates that + * the representation is a PMIx-defined regular expression. + * In contrast, an output starting with "blob:" is a compressed + * binary array. */ PMIX_EXPORT pmix_status_t PMIx_generate_ppn(const char *input, char **ppn); @@ -751,6 +758,7 @@ pmix_info_t directives[], size_t ndirs, pmix_op_cbfunc_t cbfunc, void *cbdata); + #if defined(c_plusplus) || defined(__cplusplus) } #endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/pmix_tool.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/pmix_tool.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/pmix_tool.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/pmix_tool.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Artem Y. Polyakov . * All rights reserved. * Copyright (c) 2015 Research Organization for Information Science diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/pmix_version.h.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/pmix_version.h.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/include/pmix_version.h.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/include/pmix_version.h.in 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2016 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2018 IBM Corporation. All rights reserved. - * Copyright (c) 2018-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2018 Intel, Inc. All rights reserved. * Copyright (c) 2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/maint/pmix.pc.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/maint/pmix.pc.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/maint/pmix.pc.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/maint/pmix.pc.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: pmix +Description: Process Management Interface for Exascale (PMIx) +Version: @PACKAGE_VERSION@ +URL: https://pmix.org/ +Requires: @PC_REQUIRES@ +Libs: -L${libdir} -lpmix @PC_PRIVATE_LIBS@ +Cflags: -I${includedir} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ # All rights reserved. # Copyright (c) 2006-2016 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. -# Copyright (c) 2013-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. # Copyright (c) 2019 Amazon.com, Inc. or its affiliates. All Rights # reserved. # $COPYRIGHT$ @@ -32,7 +32,7 @@ headers = sources = nodist_headers = -EXTRA_DIST = AUTHORS README INSTALL VERSION LICENSE autogen.pl +EXTRA_DIST = AUTHORS README HACKING INSTALL VERSION LICENSE autogen.pl Makefile.pmix-rules # Only install the valgrind suppressions file and man pages # if we're building in standalone mode @@ -60,3 +60,6 @@ dist-hook: env LS_COLORS= sh "$(top_srcdir)/config/distscript.sh" "$(top_srcdir)" "$(distdir)" "$(PMIX_VERSION)" "$(PMIX_REPO_REV)" + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = maint/pmix.pc diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -27,7 +27,7 @@ # All rights reserved. # Copyright (c) 2006-2016 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. -# Copyright (c) 2013-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. # Copyright (c) 2019 Amazon.com, Inc. or its affiliates. All Rights # reserved. # $COPYRIGHT$ @@ -131,7 +131,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -161,6 +160,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -171,7 +171,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -184,7 +183,7 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/include/pmix_config.h \ $(top_builddir)/include/pmix_common.h -CONFIG_CLEAN_FILES = +CONFIG_CLEAN_FILES = maint/pmix.pc CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -241,8 +240,9 @@ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } -am__installdirs = "$(DESTDIR)$(pmixdatadir)" "$(DESTDIR)$(pmixdir)" -DATA = $(dist_pmixdata_DATA) +am__installdirs = "$(DESTDIR)$(pmixdatadir)" \ + "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(pmixdir)" +DATA = $(dist_pmixdata_DATA) $(pkgconfig_DATA) HEADERS = $(nobase_pmix_HEADERS) $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive @@ -279,7 +279,7 @@ $(top_srcdir)/./config/config.sub \ $(top_srcdir)/./config/install-sh \ $(top_srcdir)/./config/ltmain.sh \ - $(top_srcdir)/./config/missing \ + $(top_srcdir)/./config/missing $(top_srcdir)/maint/pmix.pc.in \ $(top_srcdir)/src/include/pmix_config.h.in ./config/ar-lib \ ./config/compile ./config/config.guess ./config/config.sub \ ./config/install-sh ./config/ltmain.sh ./config/missing \ @@ -405,6 +405,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -468,6 +475,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -490,6 +504,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -508,6 +524,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -516,9 +533,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -532,6 +549,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -577,6 +595,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -589,10 +611,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ @@ -620,7 +638,7 @@ headers = sources = nodist_headers = -EXTRA_DIST = AUTHORS README INSTALL VERSION LICENSE autogen.pl +EXTRA_DIST = AUTHORS README HACKING INSTALL VERSION LICENSE autogen.pl Makefile.pmix-rules # Only install the valgrind suppressions file and man pages # if we're building in standalone mode @@ -628,6 +646,8 @@ @WANT_INSTALL_HEADERS_TRUE@pmixdir = $(pmixincludedir)/$(subdir) @WANT_INSTALL_HEADERS_TRUE@nobase_pmix_HEADERS = $(headers) @WANT_INSTALL_HEADERS_FALSE@noinst_HEADERS = $(headers) +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = maint/pmix.pc all: all-recursive .SUFFIXES: @@ -679,6 +699,8 @@ distclean-hdr: -rm -f src/include/pmix_config.h src/include/stamp-h1 +maint/pmix.pc: $(top_builddir)/config.status $(top_srcdir)/maint/pmix.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo @@ -709,6 +731,27 @@ @list='$(dist_pmixdata_DATA)'; test -n "$(pmixdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pmixdatadir)'; $(am__uninstall_files_from_dir) +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) install-nobase_pmixHEADERS: $(nobase_pmix_HEADERS) @$(NORMAL_INSTALL) @list='$(nobase_pmix_HEADERS)'; test -n "$(pmixdir)" || list=; \ @@ -1035,7 +1078,7 @@ all-am: Makefile $(DATA) $(HEADERS) installdirs: installdirs-recursive installdirs-am: - for dir in "$(DESTDIR)$(pmixdatadir)" "$(DESTDIR)$(pmixdir)"; do \ + for dir in "$(DESTDIR)$(pmixdatadir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(pmixdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive @@ -1091,7 +1134,8 @@ info-am: -install-data-am: install-dist_pmixdataDATA install-nobase_pmixHEADERS +install-data-am: install-dist_pmixdataDATA install-nobase_pmixHEADERS \ + install-pkgconfigDATA install-dvi: install-dvi-recursive @@ -1137,7 +1181,8 @@ ps-am: -uninstall-am: uninstall-dist_pmixdataDATA uninstall-nobase_pmixHEADERS +uninstall-am: uninstall-dist_pmixdataDATA uninstall-nobase_pmixHEADERS \ + uninstall-pkgconfigDATA .MAKE: $(am__recursive_targets) install-am install-strip @@ -1153,12 +1198,13 @@ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-nobase_pmixHEADERS install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am \ - uninstall-dist_pmixdataDATA uninstall-nobase_pmixHEADERS + install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-dist_pmixdataDATA uninstall-nobase_pmixHEADERS \ + uninstall-pkgconfigDATA .PRECIOUS: Makefile diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/Makefile.pmix-rules openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/Makefile.pmix-rules --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/Makefile.pmix-rules 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/Makefile.pmix-rules 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,42 @@ +# -*- makefile -*- +# Copyright (c) 2008-2020 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved. +# Copyright (c) 2019 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +MD2NROFF = $(PMIX_TOP_SRCDIR)/config/md2nroff.pl + +%.1: %.1.md + $(PMIX_V_GEN) $(MD2NROFF) --source=$< --dest=$@ --pandoc=$(PANDOC) + +# It is an error to "configure --disable-man-pages" and then try to +# "make dist". +if !PMIX_ENABLE_MAN_PAGES +dist-hook: + @echo "************************************************************************************" + @echo "ERROR: 'make dist' inoperable when Open PMIx is configured with --disable-man-pages" + @echo "************************************************************************************" + @/bin/false +endif + +# A little verbosity magic; "make" will show the terse output. "make +# V=1" will show the actual commands used (just like the other +# Automake-generated compilation/linker rules). +V=0 + +PMIX_V_LN_S = $(pmix__v_LN_S_$V) +pmix__v_LN_S_ = $(pmix__v_LN_S_$AM_DEFAULT_VERBOSITY) +pmix__v_LN_S_0 = @echo " LN_S " `basename $@`; + +PMIX_V_MKDIR = $(pmix__v_MKDIR_$V) +pmix__v_MKDIR_ = $(pmix__v_MKDIR_$AM_DEFAULT_VERBOSITY) +pmix__v_MKDIR_0 = @echo " MKDIR " $@; + +PMIX_V_GEN = $(pmix__v_GEN_$V) +pmix__v_GEN_ = $(pmix__v_GEN_$AM_DEFAULT_VERBOSITY) +pmix__v_GEN_0 = @echo " GENERATE" $@; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/NEWS openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/NEWS --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/NEWS 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/NEWS 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,6 @@ Copyright (c) 2015-2020 Intel, Inc. All rights reserved. Copyright (c) 2017-2020 IBM Corporation. All rights reserved. +Copyright (c) 2021 Nanook Consulting. All rights reserved. $COPYRIGHT$ Additional copyrights may follow @@ -21,8 +22,63 @@ multiple release branches. -3.1.6 -- TBD +3.2.3 -- 12 Feb 2021 ---------------------- + - PR #1967: Fix thread conflict in event notification + - PR #2001: Finalize: set hostname in global to NULL to avoid segfault + in apps that call init/finalize multiple times + - PR #2045: Have developer builds use -O3 by default + + +3.2.2 -- 7 Dec 2020 +---------------------- + - PR #1930: Remove man page setup as there are no manpages in v3.2 + - PR #1933: Remove stale config command + - PR #1940: Fix dependency issue with hwloc + - PR #1941: .spec: add *-devel packages + + +3.2.1 -- 12 Nov 2020 +---------------------- + - PR #1890: + - Fix Issue #1889: Fix symlinks in unit tests to include new timeout + - Fix Issue #1891: Remove pnet/opa component that should not be in v3.2 + - PR #1904: Add more metadata to string generated from preg/compress + - PR #1919: Fix memory leak in PMIx_Get/fastpath + + +3.2.0 -- 22 Oct 2020 +---------------------- + - PR #1402/#1403/#1421/#1423: Modex size reductions + - PR #1752: Convert man pages to Markdown (pandoc) + - PR #1766: Move from -levent to -levent_core for linking Libevent + - PR #1832: Sync 3.2 branch with master + - New attributes: + - PMIX_HOSTNAME_ALIASES + - PMIX_HOSTNAME_KEEP_FQDN + - PMIX_GET_REFRESH_CACHE + - PMIX_REQUIRED_KEY + - Removed PMIX_VALUE_COMPRESSED_STRING_UNPACK macro from pmix_common.h + - New frameworks + - PR #1139: pcompress - Compression methods + - PR #1423: psquash - Flexible integer packing + - New components + - PR #1139: preg/compress - regular expression methods + - PR #1422 Modified string representations produced by PMIx_generate_regex + and PMIx_generate_ppn. + - Issue #1586: Fixed dmodex support and PMIx_Get behavior + - PR #1748: Removed --with-pmix-symbol-rename configure option + - PR #1848: Expose PMIX_REGEX constant per v3.2 standard + - PR #1885: Fix immediate flag behavior at the server + + +3.1.6 -- 04 Jan 2021 +---------------------- + - PR #1669: Silence unnecessary error log message + - PR #1776: Fixed crash of dstore locks destructor + - PR #1825: Add option to bypass local-only fence optimization + - PR #1830: Increase timeout in test case + - PR #1990: Fix server/get for gds=hash 3.1.5 -- 14 Feb 2020 @@ -33,7 +89,7 @@ - PR #1433: Return the correct status from PMIx_Publish - PR #1445: Sync. with master to fix 'get' of data for unknown namespace Includes the following PRs from master - - PR #1382: dstore: fixed truncate key-names while restoring + - PR #1382: dstore: fixed truncate key-names while restoring - PR #1405: Fix xnspace dmodex and add verbose debug - PR #1406: Resolve request for job-level data - PR #1407/#1409/#1411: Fix dmodex across nspaces @@ -58,11 +114,6 @@ - PR #1613: dstore: Fix cache size calculation - PR #1622: Fix multiple occurrences of unaligned access in pmix tests - PR #1620: Re-address the collective tracker problem -- PR #1625: Fix library triplet -- PR #1630: Fix support for PGI compiler pgcc18 -- PR #1637: Realign behavior of PMIx_Get and PMIx_Get_nb -- PR #1640: Properly handle forwarded output when no handler registered - 3.1.4 -- 9 Aug 2019 @@ -293,6 +344,68 @@ - Fix several memory and file descriptor leaks +2.2.4 -- 07 Jun 2020 +---------------------- +- PR #1466: Silence spurious error log +- PR #1489: Allow specification of hostname to use by client +- PR #1499/#1512/#1518/#1525/#1528/#1533/#1553: Fix internal tests +- PR #1678: Update "check_vendor" for PGI problem +- PR #1734: Fix resource leaks in ptl/usock component +- PR #1777: Fix crash of dstor locks destructor in ds12 +- PR #1788: Remove unnecessary error logs + + +2.2.3 -- 15 Aug 2019 +---------------------- +- PR #1162: Fix race condition when clients fail while in a PMIx + collective operation +- PR #1163: Fix a compiler warning in atomics on POWER arch +- PR #1165: Add BuildRequires: libevent-devel to spec file +- PR #1180: Remove dependency on C++ compiler for thread detection +- PR #1180: Add detection for Flex when building in non-tarball situations +- PR #1182: configury: use PMIX_ENABLE_DLOPEN_SUPPORT instead of enable_dlopen +- PR #1188: Link libpmix.so to MCA component libraries +- PR #1190: Ensure any cached notifications arrive after reg completes +- PR #1194: Ensure any cached notifications arrive after registration completes +- PR #1209: Update configure logic for clock_gettime +- PR #1213/#1217/#1221: Add configure option "--enable-nonglobal-dlopen" + If the MCA component libraries should link back to libpmix.so +- PR #1231: SPEC: Allow splitting PMIx in pmix and pmix-libpmi packages +- PR #1253: Preserve user-provided CFLAGS to protect autotools +- PR #1267: Correct dmodex example +- PR #1275: IPv6 IF Read: Buffer Overflow +- PR #1295: Fix comment: IPv6 IF_NAMESIZE +- PR #1296: Allow setup_fork to proceed even if gdds and pnet don't contribute +- PR #1296: Allow servers to pass NULL module +- PR #1297: Provide internal blocking ability to the register/deregister fns +- PR #1298: Add dummy handshake component to psec framework for testing +- PR #1303: Allow jobs to not specify proc-level info +- PR #1304: Provide proc data in cases where host does not +- PR #1305: Add some more values that can be computed +- PR #1308: Add missing tool rendezvous file +- PR #1309: Fix potential integer overflow in regex +- PR #1311: Work around memory bug in older gcc compilers +- PR #1329: Add -fPIC to static builds +- PR #1334: Cache only -W CFLAG entries to fix 32-bit builds +- PR #1341: Do not use '==' in m4 test statements +- PR #1342: Fix if_linux_ipv6_open interface filter +- PR #1344: Remove unnecessary libtool init for c++ +- PR #1346: Fix incorrect pointer casts/deref +- PR #1347/#1348: Fix use of gethostname +- PR #1353/#1357: util/environ: use setenv() if available +- PR #1354: Plug a misc memory leak in the pmix_query_caddy_t destructor +- PR #1356: Fix another pointer cast/deref in test suite +- PR #1358: Implement support for class-based info arrays +- PR #1359: Plug misc minor memory leaks +- PR #1369: Fix legacy support for PMI-1 +- PR #1370: Cleanup handling of data requests for different nspaces +- PR #1193: Resolve get of proc-specific job-level info from another nspace +- PR #1377: Skip fastpath/dstore for NULL keys +- PR #1379: Change IF_NAMESIZE to PMIX_IF_NAMESIZE and set to safe size +- PR #1385: Check for EINVAL return from posix_fallocate +- PR #1389: Plug misc memory leaks in configure + + 2.2.2 -- 24 Jan 2019 ---------------------- - Fix a bug in macro identifying system events diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/README openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/README --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/README 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/README 2022-05-29 09:51:40.000000000 +0000 @@ -8,14 +8,14 @@ University of Stuttgart. All rights reserved. Copyright (c) 2004-2007 The Regents of the University of California. All rights reserved. -Copyright (c) 2006-2015 Cisco Systems, Inc. All rights reserved. +Copyright (c) 2006-2020 Cisco Systems, Inc. All rights reserved. Copyright (c) 2006-2011 Mellanox Technologies. All rights reserved. Copyright (c) 2006-2012 Oracle and/or its affiliates. All rights reserved. Copyright (c) 2007 Myricom, Inc. All rights reserved. Copyright (c) 2008 IBM Corporation. All rights reserved. Copyright (c) 2010 Oak Ridge National Labs. All rights reserved. Copyright (c) 2011 University of Houston. All rights reserved. -Copyright (c) 2013-2018 Intel, Inc. All rights reserved. +Copyright (c) 2013-2017 Intel, Inc. All rights reserved. $COPYRIGHT$ Additional copyrights may follow @@ -25,16 +25,20 @@ =========================================================================== When submitting questions and problems, be sure to include as much -extra information as possible. The issues template on the -GitHub repo provides directions: +extra information as possible. This web page details all the +information that we request in order to provide assistance: - http://github.com/pmix/pmix/issues + https://pmix.org/support/ The best way to report bugs, send comments, or ask questions is to -open an issue on the repo. Alternatively, you are welcome to sign -up for the developer/user mailing list: +post them on the OpenPMIx GitHub issue tracker: - pmix@googlegroups.com + https://github.com/openpmix/openpmix/issues + +Alternatively, you can sign up on the PMIx mailing list, which is +hosted by Google Groups: + + pmix@googlegroups.com Because of spam, only subscribers are allowed to post to this list (ensure that you subscribe with and post from exactly the same e-mail @@ -43,18 +47,13 @@ https://groups.google.com/d/forum/pmix -Finally, just to round out all the possible ways to communicate with the -PMIx community, you are invited to join the community's Slack channel: - - pmix-workspace.slack.com - Thanks for your time. =========================================================================== More information is available in the PMIx FAQ: - https://pmix.org/support + https://pmix.org/support/faq/ We are in early days, so please be patient - info will grow as questions are addressed. @@ -69,7 +68,7 @@ - The majority of PMIx's documentation is here in this file, the included man pages, and on the web site FAQ - (https://pmix.org/support). This will eventually be + (https://pmix.org/support/faq/). This will eventually be supplemented with cohesive installation and user documentation files. - Systems that have been tested are: @@ -197,22 +196,21 @@ major, minor, release, and an optional quantifier. * Major: The major number is the first integer in the version string - (e.g., v1.2.3) and indicates the corresponding version of the PMIx - Standard. In other words, a PMIx library release starting with "v2" - indicates that the implementation conforms to version 2 of the PMIx - Standard. + (e.g., v1.2.3). Changes in the major number typically indicate a + significant change in the code base and/or end-user + functionality. The major number is always included in the version + number. * Minor: The minor number is the second integer in the version string (e.g., v1.2.3). Changes in the minor number typically indicate a incremental change in the code base and/or end-user - functionality, but not the supported version of the Standard. - The minor number is always included in the version number. + functionality. The minor number is always included in the version + number: * Release: The release number is the third integer in the version string (e.g., v1.2.3). Changes in the release number typically indicate a bug fix in the code base and/or end-user - functionality. The release number is always included in the - version number. + functionality. * Quantifier: PMIx version numbers sometimes have an arbitrary string affixed to the end of the version number. Common strings @@ -299,15 +297,16 @@ ------------------------------------------------ PMIx provides forward ABI compatibility in all versions of a given -feature release series. For example, on a single platform, an pmix +feature release series and its corresponding +super stable series. For example, on a single platform, an pmix application linked against PMIx v1.3.2 shared libraries can be updated to point to the shared libraries in any successive v1.3.x or v1.4 release and still work properly (e.g., via the LD_LIBRARY_PATH environment variable or other operating system mechanism). -PMIx reserves the right to break ABI compatibility at new major +PMIx reserves the right to break ABI compatibility at new feature release series. For example, the same pmix application from above -(linked against PMIx v1.3.2 shared libraries) may *not* work with +(linked against PMIx v1.3.2 shared libraries) will *not* work with PMIx v1.5 shared libraries. =========================================================================== @@ -318,7 +317,7 @@ Many common questions about building and using PMIx are answered on the FAQ: - https://pmix.org/support + https://pmix.org/support/faq/ =========================================================================== @@ -329,19 +328,23 @@ contribute to PMIx? Please let us know! When submitting questions and problems, be sure to include as much -extra information as possible. Again, the issues template is your -friend in this regard! +extra information as possible. This web page details all the +information that we request in order to provide assistance: + + https://pmix.org/support/ - https://github.com/pmix/pmix/issues +Questions and comments should generally be posted to the OpenPMIx +GitHub issue tracker: -Questions and comments should generally be sent to the PMIx mailing -list (pmix@googlegroups.com). Because of spam, only -subscribers are allowed to post to this list (ensure that you -subscribe with and post from *exactly* the same e-mail address -- -joe@example.com is considered different than -joe@mycomputer.example.com!). Visit this page to subscribe to the -user's list: + https://github.com/openpmix/openpmix/issues + +Alternatively, question can also be sent to the PMIx mailing list +(pmix@googlegroups.com). Because of spam, only subscribers are +allowed to post to this list (ensure that you subscribe with and post +from *exactly* the same e-mail address -- joe@example.com is +considered different than joe@mycomputer.example.com!). Visit this +page to subscribe to the user's list: https://groups.google.com/d/forum/pmix -Make today a PMIx day! +Make today an PMIx day! diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/architecture.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/architecture.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/architecture.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/architecture.h 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2011 Sandia National Laboratories. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2017 Research Organization for Information Science @@ -32,27 +32,16 @@ /* Architectures */ #define PMIX_UNSUPPORTED 0000 #define PMIX_IA32 0010 -#define PMIX_IA64 0020 #define PMIX_X86_64 0030 #define PMIX_POWERPC32 0050 #define PMIX_POWERPC64 0051 -#define PMIX_SPARC 0060 -#define PMIX_SPARCV9_32 0061 -#define PMIX_SPARCV9_64 0062 -#define PMIX_MIPS 0070 #define PMIX_ARM 0100 #define PMIX_ARM64 0101 -#define PMIX_S390 0110 -#define PMIX_S390X 0111 -#define PMIX_BUILTIN_SYNC 0200 #define PMIX_BUILTIN_GCC 0202 #define PMIX_BUILTIN_NO 0203 #define PMIX_BUILTIN_C11 0204 /* Formats */ #define PMIX_DEFAULT 1000 /* standard for given architecture */ -#define PMIX_DARWIN 1001 /* Darwin / OS X on PowerPC */ -#define PMIX_PPC_LINUX 1002 /* Linux on PowerPC */ -#define PMIX_AIX 1003 /* AIX on Power / PowerPC */ #endif /* #ifndef PMIX_SYS_ARCHITECTURE_H */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/atomic.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/atomic.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/atomic.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/atomic.h 2022-05-29 09:51:40.000000000 +0000 @@ -16,7 +16,7 @@ * reserved. * Copyright (c) 2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2018 Intel, Inc. All rights reserved. + * Copyright (c) 2018-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -52,7 +52,7 @@ #ifndef PMIX_SYS_ATOMIC_H #define PMIX_SYS_ATOMIC_H 1 -#include "pmix_config.h" +#include "src/include/pmix_config.h" #include @@ -164,8 +164,6 @@ *********************************************************************/ #if defined(DOXYGEN) /* don't include system-level gorp when generating doxygen files */ -#elif PMIX_ASSEMBLY_BUILTIN == PMIX_BUILTIN_SYNC -#include "src/atomics/sys/sync_builtin/atomic.h" #elif PMIX_ASSEMBLY_BUILTIN == PMIX_BUILTIN_GCC #include "src/atomics/sys/gcc_builtin/atomic.h" #elif PMIX_ASSEMBLY_ARCH == PMIX_X86_64 @@ -176,20 +174,10 @@ #include "src/atomics/sys/arm64/atomic.h" #elif PMIX_ASSEMBLY_ARCH == PMIX_IA32 #include "src/atomics/sys/ia32/atomic.h" -#elif PMIX_ASSEMBLY_ARCH == PMIX_IA64 -#include "src/atomics/sys/ia64/atomic.h" -#elif PMIX_ASSEMBLY_ARCH == PMIX_MIPS -#include "src/atomics/sys/mips/atomic.h" #elif PMIX_ASSEMBLY_ARCH == PMIX_POWERPC32 #include "src/atomics/sys/powerpc/atomic.h" #elif PMIX_ASSEMBLY_ARCH == PMIX_POWERPC64 #include "src/atomics/sys/powerpc/atomic.h" -#elif PMIX_ASSEMBLY_ARCH == PMIX_SPARC -#include "src/atomics/sys/sparc/atomic.h" -#elif PMIX_ASSEMBLY_ARCH == PMIX_SPARCV9_32 -#include "src/atomics/sys/sparcv9/atomic.h" -#elif PMIX_ASSEMBLY_ARCH == PMIX_SPARCV9_64 -#include "src/atomics/sys/sparcv9/atomic.h" #endif #ifndef DOXYGEN diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/atomic_stdc.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/atomic_stdc.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/atomic_stdc.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/atomic_stdc.h 2022-05-29 09:51:40.000000000 +0000 @@ -215,6 +215,7 @@ */ static inline void pmix_atomic_lock_init (pmix_atomic_lock_t *lock, bool value) { + (void)value; atomic_flag_clear (lock); } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/cma.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/cma.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/cma.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/cma.h 2022-05-29 09:51:40.000000000 +0000 @@ -4,7 +4,7 @@ * reserved. * Copyright (c) 2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2018 Intel, Inc. All rights reserved. + * Copyright (c) 2018-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ */ @@ -44,9 +44,6 @@ #elif PMIX_ASSEMBLY_ARCH == PMIX_IA32 #define __NR_process_vm_readv 347 #define __NR_process_vm_writev 348 -#elif PMIX_ASSEMBLY_ARCH == PMIX_IA64 -#define __NR_process_vm_readv 1332 -#define __NR_process_vm_writev 1333 #elif PMIX_ASSEMBLY_ARCH == PMIX_POWERPC32 #define __NR_process_vm_readv 351 #define __NR_process_vm_writev 352 @@ -65,33 +62,6 @@ #define __NR_process_vm_readv 270 #define __NR_process_vm_writev 271 -#elif PMIX_ASSEMBLY_ARCH == PMIX_MIPS - -#if _MIPS_SIM == _MIPS_SIM_ABI64 - -#define __NR_process_vm_readv 5304 -#define __NR_process_vm_writev 5305 - -#elif _MIPS_SIM == _MIPS_SIM_NABI32 - -#define __NR_process_vm_readv 6309 -#define __NR_process_vm_writev 6310 - -#else - -#error "Unsupported MIPS architecture for process_vm_readv and process_vm_writev syscalls" - -#endif - -#elif PMIX_ASSEMBLY_ARCH == PMIX_S390 - -#define __NR_process_vm_readv 340 -#define __NR_process_vm_writev 341 - -#elif PMIX_ASSEMBLY_ARCH == PMIX_S390X - -#define __NR_process_vm_readv 340 -#define __NR_process_vm_writev 341 #else #error "Unsupported architecture for process_vm_readv and process_vm_writev syscalls" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/Makefile.include openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/Makefile.include --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/Makefile.include 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/Makefile.include 2022-05-29 09:51:40.000000000 +0000 @@ -15,7 +15,7 @@ # reserved. # Copyright (c) 2017 Research Organization for Information Science # and Technology (RIST). All rights reserved. -# Copyright (c) 2017-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2017-2020 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -38,6 +38,4 @@ include atomics/sys/arm64/Makefile.include include atomics/sys/ia32/Makefile.include include atomics/sys/powerpc/Makefile.include -include atomics/sys/sparcv9/Makefile.include -include atomics/sys/sync_builtin/Makefile.include include atomics/sys/gcc_builtin/Makefile.include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sparcv9/atomic.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sparcv9/atomic.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sparcv9/atomic.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sparcv9/atomic.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,203 +0,0 @@ -/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ -/* - * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2005 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * Copyright (c) 2004-2005 The Regents of the University of California. - * All rights reserved. - * Copyright (c) 2007 Sun Microsystems, Inc. All rights reserverd. - * Copyright (c) 2016 Research Organization for Information Science - * and Technology (RIST). All rights reserved. - * Copyright (c) 2017-2018 Los Alamos National Security, LLC. All rights - * reserved. - * Copyright (c) 2018 Intel, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef PMIX_SYS_ARCH_ATOMIC_H -#define PMIX_SYS_ARCH_ATOMIC_H 1 - -/* - * On sparc v9, use casa and casxa (compare and swap) instructions. - */ - -#define ASI_P "0x80" - -#define MEPMIXMBAR(type) __asm__ __volatile__ ("membar " type : : : "memory") - - -/********************************************************************** - * - * Define constants for Sparc v9 (Ultra Sparc) - * - *********************************************************************/ -#define PMIX_HAVE_ATOMIC_MEM_BARRIER 1 - -#define PMIX_HAVE_ATOMIC_COMPARE_EXCHANGE_32 1 - -#define PMIX_HAVE_ATOMIC_COMPARE_EXCHANGE_64 1 - - -/********************************************************************** - * - * Memory Barriers - * - *********************************************************************/ -#if PMIX_GCC_INLINE_ASSEMBLY - -static inline void pmix_atomic_mb(void) -{ - MEPMIXMBAR("#LoadLoad | #LoadStore | #StoreStore | #StoreLoad"); -} - - -static inline void pmix_atomic_rmb(void) -{ - MEPMIXMBAR("#LoadLoad"); -} - - -static inline void pmix_atomic_wmb(void) -{ - MEPMIXMBAR("#StoreStore"); -} - -static inline void pmix_atomic_isync(void) -{ -} - - -#endif /* PMIX_GCC_INLINE_ASSEMBLY */ - - -/********************************************************************** - * - * Atomic math operations - * - *********************************************************************/ -#if PMIX_GCC_INLINE_ASSEMBLY - -static inline bool pmix_atomic_compare_exchange_strong_32 (pmix_atomic_int32_t *addr, int32_t *oldval, int32_t newval) -{ - /* casa [reg(rs1)] %asi, reg(rs2), reg(rd) - * - * if (*(reg(rs1)) == reg(rs2) ) - * swap reg(rd), *(reg(rs1)) - * else - * reg(rd) = *(reg(rs1)) - */ - - int32_t prev = newval; - bool ret; - - __asm__ __volatile__("casa [%1] " ASI_P ", %2, %0" - : "+r" (prev) - : "r" (addr), "r" (*oldval)); - ret = (prev == *oldval); - *oldval = prev; - return ret; -} - - -static inline bool pmix_atomic_compare_exchange_strong_acq_32 (pmix_atomic_int32_t *addr, int32_t *oldval, int32_t newval) -{ - bool rc; - - rc = pmix_atomic_compare_exchange_strong_32 (addr, oldval, newval); - pmix_atomic_rmb(); - - return rc; -} - - -static inline bool pmix_atomic_compare_exchange_strong_rel_32 (pmix_atomic_int32_t *addr, int32_t *oldval, int32_t newval) -{ - pmix_atomic_wmb(); - return pmix_atomic_compare_exchange_strong_32 (addr, oldval, newval); -} - - -#if PMIX_ASSEMBLY_ARCH == PMIX_SPARCV9_64 - -static inline bool pmix_atomic_compare_exchange_strong_64 (pmix_atomic_int64_t *addr, int64_t *oldval, int64_t newval) -{ - /* casa [reg(rs1)] %asi, reg(rs2), reg(rd) - * - * if (*(reg(rs1)) == reg(rs1) ) - * swap reg(rd), *(reg(rs1)) - * else - * reg(rd) = *(reg(rs1)) - */ - int64_t prev = newval; - bool ret; - - __asm__ __volatile__("casxa [%1] " ASI_P ", %2, %0" - : "+r" (prev) - : "r" (addr), "r" (*oldval)); - ret = (prev == *oldval); - *oldval = prev; - return ret; -} - -#else /* PMIX_ASSEMBLY_ARCH == PMIX_SPARCV9_64 */ - -static inline bool pmix_atomic_compare_exchange_strong_64 (pmix_atomic_int64_t *addr, int64_t *oldval, int64_t newval) -{ - /* casa [reg(rs1)] %asi, reg(rs2), reg(rd) - * - * if (*(reg(rs1)) == reg(rs1) ) - * swap reg(rd), *(reg(rs1)) - * else - * reg(rd) = *(reg(rs1)) - * - */ - int64_t prev = newval; - bool ret; - - __asm__ __volatile__( - "ldx %0, %%g1 \n\t" /* g1 = ret */ - "ldx %2, %%g2 \n\t" /* g2 = oldval */ - "casxa [%1] " ASI_P ", %%g2, %%g1 \n\t" - "stx %%g1, %0 \n" - : "+m"(prev) - : "r"(addr), "m"(*oldval) - : "%g1", "%g2" - ); - - ret = (prev == *oldval); - *oldval = prev; - return ret; -} - -#endif /* PMIX_ASSEMBLY_ARCH == PMIX_SPARCV9_64 */ - -static inline bool pmix_atomic_compare_exchange_strong_acq_64 (pmix_atomic_int64_t *addr, int64_t *oldval, int64_t newval) -{ - bool rc; - - rc = pmix_atomic_compare_exchange_strong_64 (addr, oldval, newval); - pmix_atomic_rmb(); - - return rc; -} - - -static inline bool pmix_atomic_compare_exchange_strong_rel_64 (pmix_atomic_int64_t *addr, int64_t *oldval, int64_t newval) -{ - pmix_atomic_wmb(); - return pmix_atomic_compare_exchange_strong_64 (addr, oldval, newval); -} - -#endif /* PMIX_GCC_INLINE_ASSEMBLY */ - - -#endif /* ! PMIX_SYS_ARCH_ATOMIC_H */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sparcv9/Makefile.include openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sparcv9/Makefile.include --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sparcv9/Makefile.include 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sparcv9/Makefile.include 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -# -# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana -# University Research and Technology -# Corporation. All rights reserved. -# Copyright (c) 2004-2005 The University of Tennessee and The University -# of Tennessee Research Foundation. All rights -# reserved. -# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# Copyright (c) 2004-2005 The Regents of the University of California. -# All rights reserved. -# Copyright (c) 2017 Intel, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# This makefile.am does not stand on its own - it is included from pmix/include/Makefile.am - -headers += \ - atomics/sys/sparcv9/atomic.h \ - atomics/sys/sparcv9/timer.h diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sparcv9/timer.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sparcv9/timer.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sparcv9/timer.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sparcv9/timer.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2005 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * Copyright (c) 2004-2005 The Regents of the University of California. - * All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef PMIX_SYS_ARCH_TIMER_H -#define PMIX_SYS_ARCH_TIMER_H 1 - -typedef uint64_t pmix_timer_t; - -#if PMIX_GCC_INLINE_ASSEMBLY - - -#if PMIX_ASSEMBLY_ARCH == PMIX_SPARCV9_64 - -static inline pmix_timer_t -pmix_sys_timer_get_cycles(void) -{ - pmix_timer_t ret; - - __asm__ __volatile__("rd %%tick, %0" : "=r"(ret)); - - return ret; -} - -#else /* PMIX_SPARCV9_32 */ - -static inline pmix_timer_t -pmix_sys_timer_get_cycles(void) -{ - pmix_timer_t ret; - int a, b; - - __asm__ __volatile__("rd %%tick, %0 \n" - "srlx %0, 32, %1 " : - "=r"(a), "=r"(b) - ); - - ret = (0x00000000FFFFFFFF & a) | (((pmix_timer_t) b) << 32); - - return ret; -} - -#endif - -#define PMIX_HAVE_SYS_TIMER_GET_CYCLES 1 - -#else - -#define PMIX_HAVE_SYS_TIMER_GET_CYCLES 0 - -#endif /* PMIX_GCC_INLINE_ASSEMBLY */ - -#endif /* ! PMIX_SYS_ARCH_TIMER_H */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sync_builtin/atomic.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sync_builtin/atomic.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sync_builtin/atomic.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sync_builtin/atomic.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,166 +0,0 @@ -/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ -/* - * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2013 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * Copyright (c) 2004-2005 The Regents of the University of California. - * All rights reserved. - * Copyright (c) 2011 Sandia National Laboratories. All rights reserved. - * Copyright (c) 2014-2018 Los Alamos National Security, LLC. All rights - * reserved. - * Copyright (c) 2017 Research Organization for Information Science - * and Technology (RIST). All rights reserved. - * Copyright (c) 2018 Intel, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef PMIX_SYS_ARCH_ATOMIC_H -#define PMIX_SYS_ARCH_ATOMIC_H 1 - -/********************************************************************** - * - * Memory Barriers - * - *********************************************************************/ -#define PMIX_HAVE_ATOMIC_MEM_BARRIER 1 - -static inline void pmix_atomic_mb(void) -{ - __sync_synchronize(); -} - -static inline void pmix_atomic_rmb(void) -{ - __sync_synchronize(); -} - -static inline void pmix_atomic_wmb(void) -{ - __sync_synchronize(); -} - -#define PMIXMB() pmix_atomic_mb() - -/********************************************************************** - * - * Atomic math operations - * - *********************************************************************/ - -#define PMIX_HAVE_ATOMIC_COMPARE_EXCHANGE_32 1 - -static inline bool pmix_atomic_compare_exchange_strong_32 (pmix_atomic_int32_t *addr, int32_t *oldval, int32_t newval) -{ - int32_t prev = __sync_val_compare_and_swap (addr, *oldval, newval); - bool ret = prev == *oldval; - *oldval = prev; - return ret; -} - -#define pmix_atomic_compare_exchange_strong_acq_32 pmix_atomic_compare_exchange_strong_32 -#define pmix_atomic_compare_exchange_strong_rel_32 pmix_atomic_compare_exchange_strong_32 - -#define PMIX_HAVE_ATOMIC_MATH_32 1 - -#define PMIX_HAVE_ATOMIC_ADD_32 1 -static inline int32_t pmix_atomic_fetch_add_32(pmix_atomic_int32_t *addr, int32_t delta) -{ - return __sync_fetch_and_add(addr, delta); -} - -#define PMIX_HAVE_ATOMIC_AND_32 1 -static inline int32_t pmix_atomic_fetch_and_32(pmix_atomic_int32_t *addr, int32_t value) -{ - return __sync_fetch_and_and(addr, value); -} - -#define PMIX_HAVE_ATOMIC_OR_32 1 -static inline int32_t pmix_atomic_fetch_or_32(pmix_atomic_int32_t *addr, int32_t value) -{ - return __sync_fetch_and_or(addr, value); -} - -#define PMIX_HAVE_ATOMIC_XOR_32 1 -static inline int32_t pmix_atomic_fetch_xor_32(pmix_atomic_int32_t *addr, int32_t value) -{ - return __sync_fetch_and_xor(addr, value); -} - -#define PMIX_HAVE_ATOMIC_SUB_32 1 -static inline int32_t pmix_atomic_fetch_sub_32(pmix_atomic_int32_t *addr, int32_t delta) -{ - return __sync_fetch_and_sub(addr, delta); -} - -#if PMIX_ASM_SYNC_HAVE_64BIT - -#define PMIX_HAVE_ATOMIC_COMPARE_EXCHANGE_64 1 - -static inline bool pmix_atomic_compare_exchange_strong_64 (pmix_atomic_int64_t *addr, int64_t *oldval, int64_t newval) -{ - int64_t prev = __sync_val_compare_and_swap (addr, *oldval, newval); - bool ret = prev == *oldval; - *oldval = prev; - return ret; -} - -#define pmix_atomic_compare_exchange_strong_acq_64 pmix_atomic_compare_exchange_strong_64 -#define pmix_atomic_compare_exchange_strong_rel_64 pmix_atomic_compare_exchange_strong_64 - -#define PMIX_HAVE_ATOMIC_MATH_64 1 -#define PMIX_HAVE_ATOMIC_ADD_64 1 -static inline int64_t pmix_atomic_fetch_add_64(pmix_atomic_int64_t *addr, int64_t delta) -{ - return __sync_fetch_and_add(addr, delta); -} - -#define PMIX_HAVE_ATOMIC_AND_64 1 -static inline int64_t pmix_atomic_fetch_and_64(pmix_atomic_int64_t *addr, int64_t value) -{ - return __sync_fetch_and_and(addr, value); -} - -#define PMIX_HAVE_ATOMIC_OR_64 1 -static inline int64_t pmix_atomic_fetch_or_64(pmix_atomic_int64_t *addr, int64_t value) -{ - return __sync_fetch_and_or(addr, value); -} - -#define PMIX_HAVE_ATOMIC_XOR_64 1 -static inline int64_t pmix_atomic_fetch_xor_64(pmix_atomic_int64_t *addr, int64_t value) -{ - return __sync_fetch_and_xor(addr, value); -} - -#define PMIX_HAVE_ATOMIC_SUB_64 1 -static inline int64_t pmix_atomic_fetch_sub_64(pmix_atomic_int64_t *addr, int64_t delta) -{ - return __sync_fetch_and_sub(addr, delta); -} - -#endif - -#if PMIX_HAVE_SYNC_BUILTIN_CSWAP_INT128 -static inline bool pmix_atomic_compare_exchange_strong_128 (pmix_atomic_int128_t *addr, - pmix_int128_t *oldval, pmix_int128_t newval) -{ - pmix_int128_t prev = __sync_val_compare_and_swap (addr, *oldval, newval); - bool ret = prev == *oldval; - *oldval = prev; - return ret; -} - -#define PMIX_HAVE_ATOMIC_COMPARE_EXCHANGE_128 1 - -#endif - -#endif /* ! PMIX_SYS_ARCH_ATOMIC_H */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sync_builtin/Makefile.include openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sync_builtin/Makefile.include --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sync_builtin/Makefile.include 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/sync_builtin/Makefile.include 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -# -# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana -# University Research and Technology -# Corporation. All rights reserved. -# Copyright (c) 2004-2005 The University of Tennessee and The University -# of Tennessee Research Foundation. All rights -# reserved. -# Copyright (c) 2004-2009 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# Copyright (c) 2004-2005 The Regents of the University of California. -# All rights reserved. -# Copyright (c) 2011 Sandia National Laboratories. All rights reserved. -# Copyright (c) 2017 Intel, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# This makefile.am does not stand on its own - it is included from pmix/include/Makefile.am - -headers += \ - atomics/sys/sync_builtin/atomic.h diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/timer.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/timer.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/timer.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/atomics/sys/timer.h 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2016 Broadcom Limited. All rights reserved. * Copyright (c) 2016-2017 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2018 Intel, Inc. All rights reserved. + * Copyright (c) 2018-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -79,18 +79,10 @@ #include "src/atomics/sys/arm64/timer.h" #elif PMIX_ASSEMBLY_ARCH == PMIX_IA32 #include "src/atomics/sys/ia32/timer.h" -#elif PMIX_ASSEMBLY_ARCH == PMIX_IA64 -#include "src/atomics/sys/ia64/timer.h" #elif PMIX_ASSEMBLY_ARCH == PMIX_POWERPC32 #include "src/atomics/sys/powerpc/timer.h" #elif PMIX_ASSEMBLY_ARCH == PMIX_POWERPC64 #include "src/atomics/sys/powerpc/timer.h" -#elif PMIX_ASSEMBLY_ARCH == PMIX_SPARCV9_32 -#include "src/atomics/sys/sparcv9/timer.h" -#elif PMIX_ASSEMBLY_ARCH == PMIX_SPARCV9_64 -#include "src/atomics/sys/sparcv9/timer.h" -#elif PMIX_ASSEMBLY_ARCH == PMIX_MIPS -#include "src/atomics/sys/mips/timer.h" #endif #ifndef DOXYGEN diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_bitmap.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_bitmap.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_bitmap.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_bitmap.c 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * All rights reserved. * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2010-2012 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -21,12 +21,12 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #include -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/class/pmix_bitmap.h" /* The number of bits in the underlying type of the bitmap field diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_bitmap.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_bitmap.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_bitmap.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_bitmap.h 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2010-2012 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2018 Intel, Inc. All rights reserved. + * Copyright (c) 2018-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -41,7 +41,7 @@ #ifndef PMIX_BITMAP_H #define PMIX_BITMAP_H -#include +#include "src/include/pmix_config.h" #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_hash_table.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_hash_table.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_hash_table.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_hash_table.c 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * All rights reserved. * Copyright (c) 2014-2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2014-2015 Intel, Inc. All rights reserved + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -19,7 +19,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_hash_table.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_hash_table.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_hash_table.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_hash_table.h 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2015-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015-2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. @@ -34,8 +34,8 @@ #ifndef PMIX_HASH_TABLE_H #define PMIX_HASH_TABLE_H -#include -#include +#include "src/include/pmix_config.h" +#include "src/include/prefetch.h" #ifdef HAVE_STDINT_H #include @@ -43,7 +43,7 @@ #include "src/class/pmix_list.h" -#include +#include "include/pmix_common.h" BEGIN_C_DECLS diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_hotel.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_hotel.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_hotel.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_hotel.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ /* * Copyright (c) 2012-2016 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012 Los Alamos National Security, LLC. All rights reserved - * Copyright (c) 2015-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2020 IBM Corporation. All rights reserved. * $COPYRIGHT$ * @@ -11,7 +11,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #include @@ -22,6 +22,8 @@ static void local_eviction_callback(int fd, short flags, void *arg) { + (void)fd; + (void)flags; pmix_hotel_room_eviction_callback_arg_t *eargs = (pmix_hotel_room_eviction_callback_arg_t*) arg; void *occupant = eargs->hotel->rooms[eargs->room_num].occupant; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_hotel.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_hotel.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_hotel.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_hotel.h 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,9 @@ /* * Copyright (c) 2012-2016 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012 Los Alamos National Security, LLC. All rights reserved - * Copyright (c) 2015-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2020 IBM Corporation. All rights reserved. * $COPYRIGHT$ * @@ -53,10 +55,10 @@ #ifndef PMIX_HOTEL_H #define PMIX_HOTEL_H -#include -#include "src/include/types.h" +#include "src/include/pmix_config.h" #include "src/include/prefetch.h" -#include "pmix_common.h" +#include "include/pmix_common.h" +#include "src/include/types.h" #include "src/class/pmix_object.h" #include PMIX_EVENT_HEADER @@ -307,7 +309,7 @@ *occupant = room->occupant; room->occupant = NULL; if (NULL != hotel->evbase) { - event_del(&(room->eviction_timer_event)); + pmix_event_del(&(room->eviction_timer_event)); } hotel->last_unoccupied_room++; assert(hotel->last_unoccupied_room < hotel->num_rooms); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_list.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_list.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_list.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_list.c 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2007 Voltaire All rights reserved. - * Copyright (c) 2013-2015 Intel, Inc. All rights reserved + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -19,7 +19,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include "include/pmix_common.h" #include "src/class/pmix_list.h" @@ -143,7 +143,7 @@ #if PMIX_ENABLE_DEBUG /* Spot check: ensure this item is only on the list that we - just insertted it into */ + just inserted it into */ item->pmix_list_item_refcount += 1; assert(1 == item->pmix_list_item_refcount); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_list.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_list.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_list.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_list.h 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2007 Voltaire All rights reserved. * Copyright (c) 2013 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -67,7 +67,7 @@ #ifndef PMIX_LIST_H #define PMIX_LIST_H -#include +#include "src/include/pmix_config.h" #include #include #if HAVE_STDBOOL_H @@ -119,6 +119,14 @@ */ typedef struct pmix_list_item_t pmix_list_item_t; +/* static initializer for pmix_list_t */ +#define PMIX_LIST_ITEM_STATIC_INIT \ + { \ + .super = PMIX_OBJ_STATIC_INIT(pmix_object_t), \ + .pmix_list_next = NULL, \ + .pmix_list_prev = NULL, \ + .item_free = 0 \ + } /** * Get the next item in a list. @@ -160,6 +168,15 @@ */ typedef struct pmix_list_t pmix_list_t; +/* static initializer for pmix_list_t */ +#define PMIX_LIST_STATIC_INIT \ + { \ + .super = PMIX_OBJ_STATIC_INIT(pmix_object_t), \ + .pmix_list_sentinel = PMIX_LIST_ITEM_STATIC_INIT, \ + .pmix_list_length = 0 \ + } + + /** Cleanly destruct a list * * The pmix_list_t destructor doesn't release the items on the diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_object.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_object.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_object.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_object.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -25,7 +25,7 @@ * Implementation of pmix_object_t, the base pmix foundation class */ -#include +#include "src/include/pmix_config.h" /* Symbol transforms */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_object.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_object.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_object.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_object.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -120,8 +120,8 @@ #ifndef PMIX_OBJECT_H #define PMIX_OBJECT_H -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include #ifdef HAVE_STDLIB_H @@ -175,9 +175,20 @@ * @param NAME Name of the class to initialize */ #if PMIX_ENABLE_DEBUG -#define PMIX_OBJ_STATIC_INIT(BASE_CLASS) { PMIX_OBJ_MAGIC_ID, PMIX_CLASS(BASE_CLASS), 1, __FILE__, __LINE__ } +#define PMIX_OBJ_STATIC_INIT(BASE_CLASS) \ + { \ + .obj_magic_id = PMIX_OBJ_MAGIC_ID, \ + .obj_class = PMIX_CLASS(BASE_CLASS), \ + .obj_reference_count = 1, \ + .cls_init_file_name = __FILE__, \ + .cls_init_lineno = __LINE__, \ + } #else -#define PMIX_OBJ_STATIC_INIT(BASE_CLASS) { PMIX_CLASS(BASE_CLASS), 1 } +#define PMIX_OBJ_STATIC_INIT(BASE_CLASS) \ + { \ + .obj_class = PMIX_CLASS(BASE_CLASS), \ + .obj_reference_count = 1, \ + } #endif /** diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_pointer_array.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_pointer_array.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_pointer_array.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_pointer_array.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2017 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -19,7 +19,7 @@ */ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_ring_buffer.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_ring_buffer.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_ring_buffer.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_ring_buffer.c 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -19,13 +19,13 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #include #include -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/class/pmix_ring_buffer.h" #include "src/util/output.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_ring_buffer.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_ring_buffer.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_ring_buffer.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_ring_buffer.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -25,7 +25,7 @@ #ifndef PMIX_RING_BUFFER_H #define PMIX_RING_BUFFER_H -#include +#include "src/include/pmix_config.h" #include "src/class/pmix_object.h" #include "src/util/output.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_value_array.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_value_array.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_value_array.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_value_array.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,7 +17,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include "src/class/pmix_value_array.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_value_array.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_value_array.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/class/pmix_value_array.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/class/pmix_value_array.h 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -20,7 +20,7 @@ #ifndef PMIX_VALUE_ARRAY_H #define PMIX_VALUE_ARRAY_H -#include +#include "src/include/pmix_config.h" #include #ifdef HAVE_STRINGS_H @@ -31,7 +31,7 @@ #if PMIX_ENABLE_DEBUG #include "src/util/output.h" #endif -#include "pmix_common.h" +#include "include/pmix_common.h" BEGIN_C_DECLS diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/Makefile.include openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/Makefile.include --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/Makefile.include 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/Makefile.include 2022-05-29 09:51:40.000000000 +0000 @@ -1,9 +1,9 @@ # -*- makefile -*- # -# Copyright (c) 2014-2017 Intel, Inc. All rights reserved. +# Copyright (c) 2014-2020 Intel, Inc. All rights reserved. # Copyright (c) 2014 Artem Y. Polyakov . # All rights reserved. -# Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmi1.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmi1.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmi1.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmi1.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2014-2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. @@ -12,12 +12,10 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include - -#include -#include +#include "include/pmix.h" +#include "include/pmi.h" #include "src/include/pmix_globals.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmi2.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmi2.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmi2.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmi2.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,8 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. * All rights reserved. * $COPYRIGHT$ @@ -12,9 +12,7 @@ * $HEADER$ */ -#include - -#include +#include "src/include/pmix_config.h" #ifdef HAVE_STRING_H #include @@ -27,8 +25,8 @@ #endif #include PMIX_EVENT_HEADER -#include -#include +#include "include/pmi2.h" +#include "include/pmix.h" #include "src/mca/bfrops/bfrops.h" #include "src/util/argv.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,8 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. - * Copyright (c) 2014-2018 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2014 Artem Y. Polyakov . * All rights reserved. * Copyright (c) 2016-2017 Mellanox Technologies, Inc. @@ -15,14 +15,12 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include -#include +#include "src/include/pmix_stdint.h" +#include "src/include/pmix_socket_errno.h" -#include -#include +#include "include/pmix.h" #include "src/include/pmix_globals.h" @@ -46,11 +44,8 @@ #include #endif -#if PMIX_HAVE_ZLIB -#include -#endif #include PMIX_EVENT_HEADER -#if ! PMIX_HAVE_LIBEV +#ifdef PMIX_EVENT2_THREAD_HEADER #include PMIX_EVENT2_THREAD_HEADER #endif @@ -60,7 +55,6 @@ #include "src/class/pmix_list.h" #include "src/event/pmix_event.h" #include "src/util/argv.h" -#include "src/util/compress.h" #include "src/util/error.h" #include "src/util/hash.h" #include "src/util/name_fns.h" @@ -69,6 +63,7 @@ #include "src/runtime/pmix_rte.h" #include "src/threads/threads.h" #include "src/mca/bfrops/base/base.h" +#include "src/mca/pcompress/base/base.h" #include "src/mca/gds/base/base.h" #include "src/mca/preg/preg.h" #include "src/mca/ptl/base/base.h" @@ -82,7 +77,56 @@ static void _notify_complete(pmix_status_t status, void *cbdata) { pmix_event_chain_t *chain = (pmix_event_chain_t*)cbdata; + pmix_notify_caddy_t *cd; + size_t n; + pmix_status_t rc; + PMIX_ACQUIRE_OBJECT(chain); + + /* if the event wasn't found, then cache it as it might + * be registered later */ + if (PMIX_ERR_NOT_FOUND == status && !chain->cached) { + cd = PMIX_NEW(pmix_notify_caddy_t); + cd->status = chain->status; + PMIX_LOAD_PROCID(&cd->source, chain->source.nspace, chain->source.rank); + cd->range = chain->range; + if (0 < chain->ninfo) { + cd->ninfo = chain->ninfo; + PMIX_INFO_CREATE(cd->info, cd->ninfo); + cd->nondefault = chain->nondefault; + /* need to copy the info */ + for (n=0; n < cd->ninfo; n++) { + PMIX_INFO_XFER(&cd->info[n], &chain->info[n]); + } + } + if (NULL != chain->targets) { + cd->ntargets = chain->ntargets; + PMIX_PROC_CREATE(cd->targets, cd->ntargets); + memcpy(cd->targets, chain->targets, cd->ntargets * sizeof(pmix_proc_t)); + } + if (NULL != chain->affected) { + cd->naffected = chain->naffected; + PMIX_PROC_CREATE(cd->affected, cd->naffected); + if (NULL == cd->affected) { + cd->naffected = 0; + goto cleanup; + } + memcpy(cd->affected, chain->affected, cd->naffected * sizeof(pmix_proc_t)); + } + /* cache it */ + pmix_output_verbose(2, pmix_client_globals.event_output, + "%s pmix:client_notify - processing complete, caching", + PMIX_NAME_PRINT(&pmix_globals.myid)); + rc = pmix_notify_event_cache(cd); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE(cd); + goto cleanup; + } + chain->cached = true; + } + + cleanup: PMIX_RELEASE(chain); } @@ -96,8 +140,9 @@ pmix_event_chain_t *chain; size_t ninfo; - pmix_output_verbose(2, pmix_client_globals.base_output, - "pmix:client_notify_recv - processing event"); + pmix_output_verbose(2, pmix_client_globals.event_output, + "%s pmix:client_notify_recv - processing event", + PMIX_NAME_PRINT(&pmix_globals.myid)); /* a zero-byte buffer indicates that this recv is being * completed due to a lost connection */ @@ -175,17 +220,18 @@ /* prep the chain for processing */ pmix_prep_event_chain(chain, chain->info, ninfo, false); - pmix_output_verbose(2, pmix_client_globals.base_output, - "[%s:%d] pmix:client_notify_recv - processing event %s, calling errhandler", - pmix_globals.myid.nspace, pmix_globals.myid.rank, PMIx_Error_string(chain->status)); + pmix_output_verbose(2, pmix_client_globals.event_output, + "%s pmix:client_notify_recv - processing event %s, calling errhandler", + PMIX_NAME_PRINT(&pmix_globals.myid), PMIx_Error_string(chain->status)); pmix_invoke_local_event_hdlr(chain); return; error: /* we always need to return */ - pmix_output_verbose(2, pmix_client_globals.base_output, - "pmix:client_notify_recv - unpack error status =%d, calling def errhandler", rc); + pmix_output_verbose(2, pmix_client_globals.event_output, + "%s pmix:client_notify_recv - unpack error status =%s, calling def errhandler", + PMIX_NAME_PRINT(&pmix_globals.myid), PMIx_Error_string(rc)); chain = PMIX_NEW(pmix_event_chain_t); if (NULL == chain) { PMIX_ERROR_LOG(PMIX_ERR_NOMEM); @@ -471,7 +517,7 @@ pmix_info_t info[], size_t ninfo) { char *evar; - pmix_status_t rc; + pmix_status_t rc = PMIX_SUCCESS; pmix_cb_t cb; pmix_buffer_t *req; pmix_cmd_t cmd = PMIX_REQ_CMD; @@ -484,6 +530,7 @@ bool found; pmix_ptl_posted_recv_t *rcv; pid_t pid; + pmix_kval_t *kptr; PMIX_ACQUIRE_THREAD(&pmix_global_lock); @@ -657,7 +704,7 @@ found = false; if (info != NULL) { for (n=0; n < ninfo; n++) { - if (0 == strncmp(info[n].key, PMIX_GDS_MODULE, PMIX_MAX_KEYLEN)) { + if (PMIX_CHECK_KEY(&info[n], PMIX_GDS_MODULE)) { PMIX_INFO_LOAD(&ginfo, PMIX_GDS_MODULE, info[n].value.data.string, PMIX_STRING); found = true; break; @@ -687,6 +734,7 @@ PMIX_RELEASE_THREAD(&pmix_global_lock); return rc; } + rc = PMIX_ERR_UNREACH; } else { /* connect to the server */ rc = pmix_ptl_base_connect_to_peer((struct pmix_peer_t*)pmix_client_globals.myserver, info, ninfo); @@ -747,7 +795,7 @@ PMIX_CONSTRUCT_LOCK(&releaselock); PMIX_INFO_LOAD(&evinfo[0], PMIX_EVENT_RETURN_OBJECT, &releaselock, PMIX_POINTER); PMIX_INFO_LOAD(&evinfo[1], PMIX_EVENT_HDLR_NAME, "WAIT-FOR-DEBUGGER", PMIX_STRING); - pmix_output_verbose(2, pmix_client_globals.base_output, + pmix_output_verbose(2, pmix_client_globals.event_output, "[%s:%d] WAITING IN INIT FOR DEBUGGER", pmix_globals.myid.nspace, pmix_globals.myid.rank); PMIx_Register_event_handler(&code, 1, evinfo, 2, @@ -767,7 +815,39 @@ if (NULL != info) { _check_for_notify(info, ninfo); } - return PMIX_SUCCESS; + + /* store our server's ID */ + if (NULL != pmix_client_globals.myserver && + NULL != pmix_client_globals.myserver->info) { + kptr = PMIX_NEW(pmix_kval_t); + kptr->key = strdup(PMIX_SERVER_NSPACE); + PMIX_VALUE_CREATE(kptr->value, 1); + kptr->value->type = PMIX_STRING; + kptr->value->data.string = strdup(pmix_client_globals.myserver->info->pname.nspace); + PMIX_GDS_STORE_KV(rc, pmix_globals.mypeer, + &pmix_globals.myid, + PMIX_INTERNAL, kptr); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + PMIX_RELEASE(kptr); // maintain accounting + kptr = PMIX_NEW(pmix_kval_t); + kptr->key = strdup(PMIX_SERVER_RANK); + PMIX_VALUE_CREATE(kptr->value, 1); + kptr->value->type = PMIX_PROC_RANK; + kptr->value->data.rank = pmix_client_globals.myserver->info->pname.rank; + PMIX_GDS_STORE_KV(rc, pmix_globals.mypeer, + &pmix_globals.myid, + PMIX_INTERNAL, kptr); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + PMIX_RELEASE(kptr); // maintain accounting + } + + return rc; } PMIX_EXPORT int PMIx_Initialized(void) @@ -1051,7 +1131,7 @@ kv->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); if (PMIX_STRING_SIZE_CHECK(cb->value)) { /* compress large strings */ - if (pmix_util_compress_string(cb->value->data.string, &tmp, &len)) { + if (pmix_compress.compress_string(cb->value->data.string, &tmp, &len)) { if (NULL == tmp) { PMIX_ERROR_LOG(PMIX_ERR_NOMEM); rc = PMIX_ERR_NOMEM; @@ -1398,12 +1478,22 @@ for (n=0; NULL != tmp[n]; n++) { /* find the nspace delimiter */ prs = strchr(tmp[n], ':'); + if (NULL == prs) { + /* should never happen, but silence a Coverity warning */ + rc = PMIX_ERR_BAD_PARAM; + pmix_argv_free(tmp); + PMIX_PROC_FREE(pa, np); + *procs = NULL; + *nprocs = 0; + goto done; + } *prs = '\0'; ++prs; p = pmix_argv_split(prs, ','); for (m=0; NULL != p[m]; m++) { PMIX_LOAD_NSPACE(&pa[np].nspace, tmp[n]); - pa[n].rank = strtoul(p[m], NULL, 10); + pa[np].rank = strtoul(p[m], NULL, 10); + ++np; } pmix_argv_free(p); } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_connect.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_connect.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_connect.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_connect.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,8 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. - * Copyright (c) 2014-2017 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2014 Artem Y. Polyakov . * All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. @@ -15,13 +15,11 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include +#include "src/include/pmix_stdint.h" -#include -#include +#include "include/pmix.h" #include "src/include/pmix_globals.h" #include "src/mca/gds/base/base.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_fence.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_fence.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_fence.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_fence.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2014-2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2014 Artem Y. Polyakov . @@ -15,13 +15,11 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include +#include "src/include/pmix_stdint.h" -#include -#include +#include "include/pmix.h" #include "src/include/pmix_globals.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_get.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_get.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_get.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_get.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,8 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. - * Copyright (c) 2014-2016 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2014 Artem Y. Polyakov . * All rights reserved. * Copyright (c) 2016-2018 Mellanox Technologies, Inc. @@ -15,13 +15,11 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include +#include "src/include/pmix_stdint.h" -#include -#include +#include "include/pmix.h" #include "src/include/pmix_globals.h" @@ -45,17 +43,14 @@ #include #endif -#if PMIX_HAVE_ZLIB -#include -#endif #include PMIX_EVENT_HEADER #include "src/class/pmix_list.h" #include "src/mca/bfrops/bfrops.h" +#include "src/mca/pcompress/base/base.h" #include "src/mca/ptl/base/base.h" #include "src/threads/threads.h" #include "src/util/argv.h" -#include "src/util/compress.h" #include "src/util/error.h" #include "src/util/hash.h" #include "src/util/name_fns.h" @@ -65,7 +60,7 @@ #include "pmix_client_ops.h" -static pmix_buffer_t* _pack_get(char *nspace, pmix_rank_t rank, +static pmix_buffer_t* _pack_get(char *nspace, pmix_rank_t rank, char *key, const pmix_info_t info[], size_t ninfo, pmix_cmd_t cmd); @@ -136,11 +131,13 @@ pmix_status_t rc; size_t n, nfo; bool wantinfo = false; - bool haveid = false; + char *hostname = NULL; + uint32_t nodeid = UINT32_MAX; + uint32_t appnum = UINT32_MAX; + uint32_t app; pmix_proc_t p; pmix_info_t *iptr; bool copy = false; - uint32_t appnum; pmix_value_t *ival = NULL; PMIX_ACQUIRE_THREAD(&pmix_global_lock); @@ -151,6 +148,11 @@ } PMIX_RELEASE_THREAD(&pmix_global_lock); + if (NULL == cbfunc) { + /* no way to return the result! */ + return PMIX_ERR_BAD_PARAM; + } + /* if the proc is NULL, then the caller is assuming * that the key is universally unique within the caller's * own nspace. This most likely indicates that the code @@ -200,15 +202,29 @@ PMIX_NAME_PRINT(&p), (NULL == key) ? "NULL" : key); if (!PMIX_PEER_IS_EARLIER(pmix_client_globals.myserver, 3, 1, 5)) { - /* ]don't consider the fastpath option + /* don't consider the fastpath option * for undefined rank or NULL keys */ if (PMIX_RANK_UNDEF == p.rank || NULL == key) { goto doget; } - /* if they are asking about a node-level piece of info, - * then the rank must be UNDEF */ + /* if they passed our nspace and an INVALID rank, and are asking + * for PMIX_RANK, then they are asking for our process rank */ + if (PMIX_RANK_INVALID == p.rank && + PMIX_CHECK_NSPACE(p.nspace, pmix_globals.myid.nspace) && + NULL != key && 0 == strcmp(key, PMIX_RANK)) { + PMIX_VALUE_CREATE(ival, 1); + if (NULL == ival) { + return PMIX_ERR_NOMEM; + } + ival->type = PMIX_PROC_RANK; + ival->data.rank = pmix_globals.myid.rank; + cbfunc(PMIX_SUCCESS, ival, cbdata); + /* ownership of the memory in ival is passed to the + * user in the cbfunc, so don't release it here */ + return PMIX_SUCCESS; + } + /* see if they are asking about a node-level piece of info */ if (pmix_check_node_info(key)) { - p.rank = PMIX_RANK_UNDEF; /* the key is node-related - see if the target node is in the * info array and if they tagged the request accordingly */ if (NULL != info) { @@ -216,26 +232,55 @@ if (PMIX_CHECK_KEY(&info[n], PMIX_NODE_INFO)) { wantinfo = true; } else if (PMIX_CHECK_KEY(&info[n], PMIX_HOSTNAME)) { - haveid = true; + hostname = info[n].value.data.string; } else if (PMIX_CHECK_KEY(&info[n], PMIX_NODEID)) { - haveid = true; + PMIX_VALUE_GET_NUMBER(rc, &info[n].value, nodeid, uint32_t); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } } } } - if (wantinfo && haveid) { + if (PMIX_PEER_IS_EARLIER(pmix_client_globals.myserver, 3, 2, PMIX_RELEASE_WILDCARD)) { + p.rank = PMIX_RANK_UNDEF; + /* see if they told us to get node info */ + if (!wantinfo) { + /* guess not - better do it */ + nfo = ninfo + 1; + PMIX_INFO_CREATE(iptr, nfo); + for (n=0; n < ninfo; n++) { + PMIX_INFO_XFER(&iptr[n], &info[n]); + } + PMIX_INFO_LOAD(&iptr[ninfo], PMIX_NODE_INFO, NULL, PMIX_BOOL); + copy = true; + p.rank = PMIX_RANK_UNDEF; + goto doget; + } goto doget; - } else if (wantinfo) { - /* missing the nodeid/hostname - add our hostname */ - nfo = ninfo + 1; - PMIX_INFO_CREATE(iptr, nfo); - for (n=0; n < ninfo; n++) { - PMIX_INFO_XFER(&iptr[n], &info[n]); + } + if (wantinfo && (NULL != hostname || UINT32_MAX != nodeid)) { + /* they provided the "node-info" attribute. if they also + * specified the target node and it is NOT us, then dstore cannot + * resolve it and we need the rank to be undefined */ + if ((NULL != hostname && 0 == strcmp(hostname, pmix_globals.hostname)) || + nodeid == pmix_globals.nodeid) { + goto fastpath; } - PMIX_INFO_LOAD(&iptr[ninfo], PMIX_HOSTNAME, pmix_globals.hostname, PMIX_STRING); - copy = true; + p.rank = PMIX_RANK_UNDEF; goto doget; - } else if (haveid) { - /* flag that we want node info */ + } else if (wantinfo) { + /* they provided "node-info" but are missing the nodeid/hostname - assume + * they are asking for info about our node. The dstore would have that */ + goto fastpath; + } else if (NULL != hostname) { + /* they did not provide the "node-info" attribute but did specify + * a hostname - if the ID is other than us, then we just need to + * flag it as "node-info" and mark it for the undefined rank so + * the GDS will know where to look */ + if (0 == strcmp(hostname, pmix_globals.hostname)) { + goto fastpath; + } nfo = ninfo + 1; PMIX_INFO_CREATE(iptr, nfo); for (n=0; n < ninfo; n++) { @@ -243,26 +288,35 @@ } PMIX_INFO_LOAD(&iptr[ninfo], PMIX_NODE_INFO, NULL, PMIX_BOOL); copy = true; + p.rank = PMIX_RANK_UNDEF; goto doget; - } else { - /* missing both */ - nfo = ninfo + 2; + } else if (UINT32_MAX != nodeid) { + /* they did not provide the "node-info" attribute but did specify + * the nodeid - if the ID is other than us, then we just need to + * flag it as "node-info" and mark it for the undefined rank so + * the GDS will know where to look */ + if (nodeid == pmix_globals.nodeid) { + goto fastpath; + } + nfo = ninfo + 1; PMIX_INFO_CREATE(iptr, nfo); for (n=0; n < ninfo; n++) { PMIX_INFO_XFER(&iptr[n], &info[n]); } PMIX_INFO_LOAD(&iptr[ninfo], PMIX_NODE_INFO, NULL, PMIX_BOOL); - PMIX_INFO_LOAD(&iptr[ninfo+1], PMIX_HOSTNAME, pmix_globals.hostname, PMIX_STRING); copy = true; + p.rank = PMIX_RANK_UNDEF; goto doget; + } else { + /* nothing was given, so assume this is about our node and + * pass it along */ + goto fastpath; } } /* see if they are asking about an app-level piece of info */ wantinfo = false; - haveid = false; if (pmix_check_app_info(key)) { - p.rank = PMIX_RANK_UNDEF; /* the key is app-related - see if the target appnum is in the * info array and if they tagged the request accordingly */ if (NULL != info) { @@ -271,32 +325,68 @@ wantinfo = true; } else if (PMIX_CHECK_KEY(&info[n], PMIX_APPNUM) && 0 != info[n].value.data.uint32) { - haveid = true; + PMIX_VALUE_GET_NUMBER(rc, &info[n].value, appnum, uint32_t); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } } } } - if (wantinfo && haveid) { - goto doget; - } else if (wantinfo) { - /* missing the appnum - add ours */ - nfo = ninfo + 1; - PMIX_INFO_CREATE(iptr, nfo); - for (n=0; n < ninfo; n++) { - PMIX_INFO_XFER(&iptr[n], &info[n]); + if (PMIX_PEER_IS_EARLIER(pmix_client_globals.myserver, 3, 2, PMIX_RELEASE_WILDCARD)) { + p.rank = PMIX_RANK_UNDEF; + /* see if they told us to get app info */ + if (!wantinfo) { + /* guess not - better do it */ + nfo = ninfo + 1; + PMIX_INFO_CREATE(iptr, nfo); + for (n=0; n < ninfo; n++) { + PMIX_INFO_XFER(&iptr[n], &info[n]); + } + PMIX_INFO_LOAD(&iptr[ninfo], PMIX_APP_INFO, NULL, PMIX_BOOL); + copy = true; + p.rank = PMIX_RANK_UNDEF; + goto doget; } - /* try to retrieve it */ + goto doget; + } + if (wantinfo && UINT32_MAX != appnum) { + /* asked for app-level info and provided an appnum - if it + * isn't our appnum, then we need to redirect */ rc = _getfn_fastpath(&pmix_globals.myid, PMIX_APPNUM, NULL, 0, &ival); - if (PMIX_SUCCESS != rc) { - appnum = ival->data.uint32; + if (PMIX_SUCCESS == rc) { + PMIX_VALUE_GET_NUMBER(rc, ival, app, uint32_t); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } PMIX_VALUE_RELEASE(ival); - } else { - appnum = 0; + if (app == appnum) { + goto fastpath; + } } - PMIX_INFO_LOAD(&iptr[ninfo], PMIX_APPNUM, &appnum, PMIX_UINT32); - copy = true; + p.rank = PMIX_RANK_UNDEF; goto doget; - } else if (haveid) { - /* flag that we want app info */ + } else if (wantinfo) { + /* missing the appnum - assume it is ours */ + goto fastpath; + } else if (UINT32_MAX != appnum) { + /* they did not provide the "app-info" attribute but did specify + * the appnum - if the ID is other than us, then we just need to + * flag it as "app-info" and mark it for the undefined rank so + * the GDS will know where to look */ + rc = _getfn_fastpath(&pmix_globals.myid, PMIX_APPNUM, NULL, 0, &ival); + if (PMIX_SUCCESS == rc) { + PMIX_VALUE_GET_NUMBER(rc, ival, app, uint32_t); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + PMIX_VALUE_RELEASE(ival); + if (app == appnum) { + goto fastpath; + } + } nfo = ninfo + 1; PMIX_INFO_CREATE(iptr, nfo); for (n=0; n < ninfo; n++) { @@ -304,44 +394,29 @@ } PMIX_INFO_LOAD(&iptr[ninfo], PMIX_APP_INFO, NULL, PMIX_BOOL); copy = true; + p.rank = PMIX_RANK_UNDEF; goto doget; } else { - /* missing both */ - nfo = ninfo + 2; - PMIX_INFO_CREATE(iptr, nfo); - for (n=0; n < ninfo; n++) { - PMIX_INFO_XFER(&iptr[n], &info[n]); - } - PMIX_INFO_LOAD(&iptr[ninfo], PMIX_APP_INFO, NULL, PMIX_BOOL); - /* try to retrieve it */ - rc = _getfn_fastpath(&pmix_globals.myid, PMIX_APPNUM, NULL, 0, &ival); - if (PMIX_SUCCESS != rc) { - appnum = ival->data.uint32; - PMIX_VALUE_RELEASE(ival); - } else { - appnum = 0; - } - PMIX_INFO_LOAD(&iptr[ninfo], PMIX_APPNUM, &appnum, PMIX_UINT32); - copy = true; - goto doget; + /* missing both - all we can do is assume they want our info */ + goto fastpath; } } /* see if they are requesting session info or requesting cache refresh */ for (n=0; n < ninfo; n++) { - if (PMIX_CHECK_KEY(info, PMIX_SESSION_INFO)) { + if (PMIX_CHECK_KEY(info, PMIX_SESSION_INFO) || + PMIX_CHECK_KEY(info, PMIX_GET_REFRESH_CACHE)) { goto doget; } } } + fastpath: /* try to get data directly, without threadshift */ if (PMIX_SUCCESS == (rc = _getfn_fastpath(&p, key, iptr, nfo, &ival))) { - if (NULL != cbfunc) { - cbfunc(rc, ival, cbdata); - /* ownership of the memory in ival is passed to the - * user in the cbfunc, so don't release it here */ - } + cbfunc(rc, ival, cbdata); + /* ownership of the memory in ival is passed to the + * user in the cbfunc, so don't release it here */ return rc; } @@ -364,22 +439,17 @@ static void _value_cbfunc(pmix_status_t status, pmix_value_t *kv, void *cbdata) { pmix_cb_t *cb = (pmix_cb_t*)cbdata; - pmix_status_t rc; PMIX_ACQUIRE_OBJECT(cb); cb->status = status; if (PMIX_SUCCESS == status) { - PMIX_BFROPS_COPY(rc, pmix_client_globals.myserver, - (void**)&cb->value, kv, PMIX_VALUE); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - } + cb->value = kv; } PMIX_POST_OBJECT(cb); PMIX_WAKEUP_THREAD(&cb->lock); } -static pmix_buffer_t* _pack_get(char *nspace, pmix_rank_t rank, +static pmix_buffer_t* _pack_get(char *nspace, pmix_rank_t rank, char *key, const pmix_info_t info[], size_t ninfo, pmix_cmd_t cmd) { @@ -429,6 +499,17 @@ return NULL; } } + if (NULL != key) { + /* pack the key */ + PMIX_BFROPS_PACK(rc, pmix_client_globals.myserver, + msg, &key, 1, PMIX_STRING); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE(msg); + return NULL; + } + } + return msg; } @@ -541,19 +622,6 @@ } } -static void timeout(int fd, short flags, void *cbdata) -{ - pmix_cb_t *cb = (pmix_cb_t*)cbdata; - - /* let them know that we timed out */ - cb->cbfunc.valuefn(PMIX_ERR_TIMEOUT, NULL, cb->cbdata); - cb->timer_running = false; - - /* remove this request */ - pmix_list_remove_item(&pmix_client_globals.pending_requests, &cb->super); - PMIX_RELEASE(cb); -} - static pmix_status_t process_values(pmix_value_t **v, pmix_cb_t *cb) { pmix_list_t *kvs = &cb->kvs; @@ -602,113 +670,43 @@ return PMIX_SUCCESS; } -static void infocb(pmix_status_t status, - pmix_info_t *info, size_t ninfo, - void *cbdata, - pmix_release_cbfunc_t release_fn, - void *release_cbdata) -{ - pmix_query_caddy_t *cd = (pmix_query_caddy_t*)cbdata; - pmix_value_t *kv = NULL; - pmix_status_t rc; - - if (PMIX_SUCCESS == status) { - if (NULL != info) { - /* there should be only one returned value */ - if (1 != ninfo) { - rc = PMIX_ERR_INVALID_VAL; - } else { - PMIX_VALUE_CREATE(kv, 1); - if (NULL == kv) { - rc = PMIX_ERR_NOMEM; - } else { - /* if this is a compressed string, then uncompress it */ - if (PMIX_COMPRESSED_STRING == info[0].value.type) { - kv->type = PMIX_STRING; - pmix_util_uncompress_string(&kv->data.string, (uint8_t*)info[0].value.data.bo.bytes, info[0].value.data.bo.size); - if (NULL == kv->data.string) { - PMIX_ERROR_LOG(PMIX_ERR_NOMEM); - rc = PMIX_ERR_NOMEM; - PMIX_VALUE_FREE(kv, 1); - kv = NULL; - } else { - rc = PMIX_SUCCESS; - } - } else { - rc = pmix_value_xfer(kv, &info[0].value); - } - } - } - } else { - rc = PMIX_ERR_NOT_FOUND; - } - } else { - rc = status; - } - if (NULL != cd->valcbfunc) { - cd->valcbfunc(rc, kv, cd->cbdata); - } - PMIX_RELEASE(cd); - if (NULL != kv) { - PMIX_VALUE_FREE(kv, 1); - } - if (NULL != release_fn) { - release_fn(release_cbdata); - } -} - static pmix_status_t _getfn_fastpath(const pmix_proc_t *proc, const pmix_key_t key, const pmix_info_t info[], size_t ninfo, pmix_value_t **val) { - pmix_cb_t *cb = PMIX_NEW(pmix_cb_t); + pmix_cb_t cb; pmix_status_t rc = PMIX_SUCCESS; - size_t n; - /* scan the incoming directives */ - if (NULL != info) { - for (n=0; n < ninfo; n++) { - if (PMIX_CHECK_KEY(&info[n], PMIX_DATA_SCOPE)) { - cb->scope = info[n].value.data.scope; - } else if (PMIX_CHECK_KEY(&info[n], PMIX_OPTIONAL) || - PMIX_CHECK_KEY(&info[n], PMIX_IMMEDIATE)) { - continue; - } else { - /* we cannot handle any other directives via this path */ - PMIX_RELEASE(cb); - return PMIX_ERR_NOT_SUPPORTED; - } - } - } - cb->proc = (pmix_proc_t*)proc; - cb->copy = true; - cb->key = (char*)key; - cb->info = (pmix_info_t*)info; - cb->ninfo = ninfo; + PMIX_CONSTRUCT(&cb, pmix_cb_t); + cb.proc = (pmix_proc_t*)proc; + cb.copy = true; + cb.key = (char*)key; + cb.info = (pmix_info_t*)info; + cb.ninfo = ninfo; PMIX_GDS_FETCH_IS_TSAFE(rc, pmix_client_globals.myserver); if (PMIX_SUCCESS == rc) { - PMIX_GDS_FETCH_KV(rc, pmix_client_globals.myserver, cb); + PMIX_GDS_FETCH_KV(rc, pmix_client_globals.myserver, &cb); if (PMIX_SUCCESS == rc) { goto done; } } PMIX_GDS_FETCH_IS_TSAFE(rc, pmix_globals.mypeer); if (PMIX_SUCCESS == rc) { - PMIX_GDS_FETCH_KV(rc, pmix_globals.mypeer, cb); + PMIX_GDS_FETCH_KV(rc, pmix_globals.mypeer, &cb); if (PMIX_SUCCESS == rc) { goto done; } } - PMIX_RELEASE(cb); + PMIX_DESTRUCT(&cb); return rc; done: - rc = process_values(val, cb); + rc = process_values(val, &cb); if (NULL != *val) { PMIX_VALUE_COMPRESSED_STRING_UNPACK(*val); } - PMIX_RELEASE(cb); + PMIX_DESTRUCT(&cb); return rc; } @@ -722,17 +720,14 @@ size_t n; pmix_proc_t proc; bool optional = false; - bool immediate = false; bool internal_only = false; - struct timeval tv; - pmix_query_caddy_t *cd; /* cb was passed to us from another thread - acquire it */ PMIX_ACQUIRE_OBJECT(cb); /* set the proc object identifier */ - pmix_strncpy(proc.nspace, cb->pname.nspace, PMIX_MAX_NSLEN); - proc.rank = cb->pname.rank; + PMIX_LOAD_PROCID(&proc, cb->pname.nspace, cb->pname.rank); + cb->proc = &proc; pmix_output_verbose(2, pmix_client_globals.get_output, "pmix: getnbfn value for proc %s key %s", @@ -744,25 +739,15 @@ for (n=0; n < cb->ninfo; n++) { if (PMIX_CHECK_KEY(&cb->info[n], PMIX_OPTIONAL)) { optional = PMIX_INFO_TRUE(&cb->info[n]); - } else if (PMIX_CHECK_KEY(&cb->info[n], PMIX_IMMEDIATE)) { - immediate = PMIX_INFO_TRUE(&cb->info[n]); - } else if (PMIX_CHECK_KEY(&cb->info[n], PMIX_TIMEOUT)) { - /* set a timer to kick us out if we don't - * have an answer within their window */ - if (0 < cb->info[n].value.data.integer) { - tv.tv_sec = cb->info[n].value.data.integer; - tv.tv_usec = 0; - pmix_event_evtimer_set(pmix_globals.evbase, &cb->ev, - timeout, cb); - pmix_event_evtimer_add(&cb->ev, &tv); - cb->timer_running = true; - } } else if (PMIX_CHECK_KEY(&cb->info[n], PMIX_DATA_SCOPE)) { cb->scope = cb->info[n].value.data.scope; } else if (PMIX_CHECK_KEY(&cb->info[n], PMIX_NODE_INFO) || PMIX_CHECK_KEY(&cb->info[n], PMIX_APP_INFO) || PMIX_CHECK_KEY(&cb->info[n], PMIX_SESSION_INFO)) { internal_only = true; + } else if (PMIX_CHECK_KEY(&cb->info[n], PMIX_GET_REFRESH_CACHE)) { + /* immediately query the server */ + goto request; } } } @@ -792,7 +777,7 @@ if (0 != strcmp(pmix_globals.mypeer->nptr->compat.gds->name, pmix_client_globals.myserver->nptr->compat.gds->name)) { PMIX_GDS_FETCH_KV(rc, pmix_client_globals.myserver, cb); } else { - rc = PMIX_ERR_TAKE_NEXT_OPTION; + rc = PMIX_ERR_NOT_FOUND; } if (PMIX_SUCCESS != rc) { pmix_output_verbose(5, pmix_client_globals.get_output, @@ -806,31 +791,10 @@ proc.rank = PMIX_RANK_WILDCARD; goto request; } else if (NULL != cb->key) { - /* if immediate was given, then we are being directed to - * check with the server even though the caller is looking for - * job-level info. In some cases, a server may elect not - * to provide info at init to save memory */ - if (immediate) { - pmix_output_verbose(5, pmix_client_globals.get_output, - "pmix:client IMMEDIATE given - querying data"); - /* the direct modex request doesn't pass a key as it - * was intended to support non-job-level information. - * So instead, we will use the PMIx_Query function - * to request the information */ - cd = PMIX_NEW(pmix_query_caddy_t); - cd->cbdata = cb->cbdata; - cd->valcbfunc = cb->cbfunc.valuefn; - PMIX_QUERY_CREATE(cd->queries, 1); - cd->nqueries = 1; - pmix_argv_append_nosize(&cd->queries[0].keys, cb->key); - if (PMIX_SUCCESS != (rc = PMIx_Query_info_nb(cd->queries, 1, infocb, cd))) { - PMIX_RELEASE(cd); - goto respond; - } - PMIX_RELEASE(cb); - return; - } - /* we should have had this info, so respond with the error */ + /* => cb->key starts with pmix + * we should have had this info, so respond with the error - if + * they want us to check with the server, they should ask us to + * refresh the cache */ pmix_output_verbose(5, pmix_client_globals.get_output, "pmix:client returning NOT FOUND error"); goto respond; @@ -841,7 +805,7 @@ } } pmix_output_verbose(5, pmix_client_globals.get_output, - "pmix:client job-level data NOT found"); + "pmix:client job-level data found"); rc = process_values(&val, cb); goto respond; } else if (PMIX_RANK_UNDEF == proc.rank) { @@ -864,6 +828,9 @@ } /* return whatever we found */ rc = process_values(&val, cb); + if (PMIX_SUCCESS != rc) { + goto request; + } } respond: @@ -874,9 +841,6 @@ } cb->cbfunc.valuefn(rc, val, cb->cbdata); } - if (NULL != val) { - PMIX_VALUE_RELEASE(val); - } PMIX_RELEASE(cb); return; @@ -913,11 +877,11 @@ } } - /* we don't have a pending request, so let's create one - don't worry - * about packing the key as we return everything from that proc */ - msg = _pack_get(cb->pname.nspace, proc.rank, cb->info, cb->ninfo, PMIX_GETNB_CMD); + /* we don't have a pending request, so let's create one */ + msg = _pack_get(cb->proc->nspace, proc.rank, cb->key, cb->info, cb->ninfo, PMIX_GETNB_CMD); if (NULL == msg) { rc = PMIX_ERROR; + PMIX_ERROR_LOG(rc); goto respond; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_ops.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_ops.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_ops.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_ops.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -10,7 +10,7 @@ #ifndef PMIX_CLIENT_OPS_H #define PMIX_CLIENT_OPS_H -#include +#include "src/include/pmix_config.h" #include "src/threads/threads.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_pub.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_pub.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_pub.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_pub.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2014-2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2014 Artem Y. Polyakov . @@ -15,13 +15,11 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include +#include "src/include/pmix_stdint.h" -#include -#include +#include "include/pmix.h" #include "src/include/pmix_globals.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_spawn.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_spawn.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_spawn.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_spawn.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,8 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. - * Copyright (c) 2014-2017 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2014 Artem Y. Polyakov . * All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. @@ -15,13 +15,11 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include +#include "src/include/pmix_stdint.h" -#include -#include +#include "include/pmix.h" #include "src/include/pmix_globals.h" @@ -52,7 +50,9 @@ #include "src/mca/pnet/base/base.h" #include "src/util/argv.h" #include "src/util/error.h" +#include "src/util/name_fns.h" #include "src/util/output.h" +#include "src/util/pmix_environ.h" #include "src/mca/gds/gds.h" #include "src/mca/ptl/ptl.h" @@ -64,16 +64,17 @@ static void spawn_cbfunc(pmix_status_t status, char nspace[], void *cbdata); PMIX_EXPORT pmix_status_t PMIx_Spawn(const pmix_info_t job_info[], size_t ninfo, - const pmix_app_t apps[], size_t napps, - pmix_nspace_t nspace) + const pmix_app_t apps[], size_t napps, + pmix_nspace_t nspace) { pmix_status_t rc; pmix_cb_t *cb; PMIX_ACQUIRE_THREAD(&pmix_global_lock); - pmix_output_verbose(2, pmix_globals.debug_output, - "pmix: spawn called"); + pmix_output_verbose(2, pmix_client_globals.spawn_output, + "%s pmix: spawn called", + PMIX_NAME_PRINT(&pmix_globals.myid)); if (pmix_globals.init_cntr <= 0) { PMIX_RELEASE_THREAD(&pmix_global_lock); @@ -97,6 +98,12 @@ cb = PMIX_NEW(pmix_cb_t); if (PMIX_SUCCESS != (rc = PMIx_Spawn_nb(job_info, ninfo, apps, napps, spawn_cbfunc, cb))) { + /* note: the call may have returned PMIX_OPERATION_SUCCEEDED thus indicating + * that the spawn was atomically completed */ + if (PMIX_OPERATION_SUCCEEDED == rc) { + PMIX_LOAD_NSPACE(nspace, cb->pname.nspace); + rc = PMIX_SUCCESS; + } PMIX_RELEASE(cb); return rc; } @@ -122,15 +129,12 @@ pmix_cb_t *cb; size_t n, m; pmix_app_t *aptr; - bool jobenvars = false; - char *harvest[2] = {"PMIX_MCA_", NULL}; - pmix_kval_t *kv; - pmix_list_t ilist; PMIX_ACQUIRE_THREAD(&pmix_global_lock); - pmix_output_verbose(2, pmix_globals.debug_output, - "pmix: spawn called"); + pmix_output_verbose(2, pmix_client_globals.spawn_output, + "%s pmix: spawn_nb called", + PMIX_NAME_PRINT(&pmix_globals.myid)); if (pmix_globals.init_cntr <= 0) { PMIX_RELEASE_THREAD(&pmix_global_lock); @@ -144,32 +148,6 @@ } PMIX_RELEASE_THREAD(&pmix_global_lock); - /* check job info for directives */ - if (NULL != job_info) { - for (n=0; n < ninfo; n++) { - if (PMIX_CHECK_KEY(&job_info[n], PMIX_SETUP_APP_ENVARS)) { - PMIX_CONSTRUCT(&ilist, pmix_list_t); - rc = pmix_pnet_base_harvest_envars(harvest, NULL, &ilist); - if (PMIX_SUCCESS != rc) { - PMIX_LIST_DESTRUCT(&ilist); - return rc; - } - PMIX_LIST_FOREACH(kv, &ilist, pmix_kval_t) { - /* cycle across all the apps and set this envar */ - for (m=0; m < napps; m++) { - aptr = (pmix_app_t*)&apps[m]; - pmix_setenv(kv->value->data.envar.envar, - kv->value->data.envar.value, - true, &aptr->env); - } - } - jobenvars = true; - PMIX_LIST_DESTRUCT(&ilist); - break; - } - } - } - for (n=0; n < napps; n++) { /* do a quick check of the apps directive array to ensure * the ninfo field has been set */ @@ -186,26 +164,6 @@ } aptr->ninfo = m; } - if (!jobenvars) { - for (m=0; m < aptr->ninfo; m++) { - if (PMIX_CHECK_KEY(&aptr->info[m], PMIX_SETUP_APP_ENVARS)) { - PMIX_CONSTRUCT(&ilist, pmix_list_t); - rc = pmix_pnet_base_harvest_envars(harvest, NULL, &ilist); - if (PMIX_SUCCESS != rc) { - PMIX_LIST_DESTRUCT(&ilist); - return rc; - } - PMIX_LIST_FOREACH(kv, &ilist, pmix_kval_t) { - pmix_setenv(kv->value->data.envar.envar, - kv->value->data.envar.value, - true, &aptr->env); - } - jobenvars = true; - PMIX_LIST_DESTRUCT(&ilist); - break; - } - } - } } msg = PMIX_NEW(pmix_buffer_t); @@ -330,6 +288,7 @@ /* extract and process any job-related info for this nspace */ if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); + ret = rc; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/Makefile.include openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/Makefile.include --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/Makefile.include 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/Makefile.include 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ # -*- makefile -*- # -# Copyright (c) 2015-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2015-2019 Intel, Inc. All rights reserved. # Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. # $COPYRIGHT$ # diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/pmix_control.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/pmix_control.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/pmix_control.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/pmix_control.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. @@ -12,16 +12,14 @@ * * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include -#include - -#include -#include -#include -#include +#include "src/include/pmix_stdint.h" +#include "src/include/pmix_socket_errno.h" + +#include "include/pmix.h" +#include "include/pmix_common.h" +#include "include/pmix_server.h" #include "src/threads/threads.h" #include "src/util/argv.h" @@ -120,7 +118,16 @@ void *release_cbdata) { pmix_cb_t *cb = (pmix_cb_t*)cbdata; + size_t n; + cb->status = status; + if (0 < ninfo) { + PMIX_INFO_CREATE(cb->info, ninfo); + cb->ninfo = ninfo; + for (n=0; n < ninfo; n++) { + PMIX_INFO_XFER(&cb->info[n], &info[n]); + } + } if (NULL != release_fn) { release_fn(release_cbdata); } @@ -366,7 +373,7 @@ PMIX_RELEASE_THREAD(&pmix_global_lock); /* if the monitor is PMIX_SEND_HEARTBEAT, then send it */ - if (0 == strncmp(monitor->key, PMIX_SEND_HEARTBEAT, PMIX_MAX_KEYLEN)) { + if (PMIX_CHECK_KEY(monitor, PMIX_SEND_HEARTBEAT)) { msg = PMIX_NEW(pmix_buffer_t); if (NULL == msg) { return PMIX_ERR_NOMEM; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/pmix_data.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/pmix_data.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/pmix_data.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/pmix_data.c 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * All rights reserved. * Copyright (c) 2007-2012 Los Alamos National Security, LLC. * All rights reserved. - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -19,7 +19,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_STRING_H @@ -31,8 +31,7 @@ #include #endif -#include -#include +#include "include/pmix.h" #include "src/mca/bfrops/bfrops.h" #include "src/include/pmix_globals.h" @@ -88,7 +87,7 @@ if (PMIX_PEER_IS_SERVER(pmix_globals.mypeer)) { /* see if we know this proc */ for (i=0; i < pmix_server_globals.clients.size; i++) { - if (NULL != (peer = (pmix_peer_t*)pmix_pointer_array_get_item(&pmix_server_globals.clients, i))) { + if (NULL == (peer = (pmix_peer_t*)pmix_pointer_array_get_item(&pmix_server_globals.clients, i))) { continue; } if (0 == strncmp(proc->nspace, peer->nptr->nspace, PMIX_MAX_NSLEN)) { @@ -180,7 +179,7 @@ pmix_peer_t *peer; if (NULL == (peer = find_peer(target))) { - return PMIX_ERR_NOT_SUPPORTED; + return PMIX_ERR_NOT_FOUND; } /* setup the host */ @@ -211,7 +210,7 @@ pmix_peer_t *peer; if (NULL == (peer = find_peer(source))) { - return PMIX_ERR_NOT_SUPPORTED; + return PMIX_ERR_NOT_FOUND; } /* setup the host */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/pmix_iof.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/pmix_iof.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/pmix_iof.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/pmix_iof.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,25 +1,33 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. + * Copyright (c) 2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow * * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include -#include - -#include -#include -#include -#include +#ifdef HAVE_FCNTL_H +#include +#else +#ifdef HAVE_SYS_FCNTL_H +#include +#endif +#endif + +#include "src/include/pmix_stdint.h" +#include "src/include/pmix_socket_errno.h" + +#include "include/pmix.h" +#include "include/pmix_common.h" +#include "include/pmix_server.h" #include "src/threads/threads.h" #include "src/util/argv.h" @@ -51,13 +59,10 @@ /* get the reference ID */ m=1; PMIX_BFROPS_UNPACK(rc, peer, buf, &refid, &m, PMIX_SIZE); - /* store the request - we are in an event, and - * so this is safe */ - if (NULL == pmix_pointer_array_get_item(&pmix_globals.iof_requests, refid)) { - pmix_pointer_array_set_item(&pmix_globals.iof_requests, refid, cd->iofreq); - } + /* store the remote reference id */ + cd->iofreq->remote_id = refid; if (NULL != cd->cbfunc.hdlrregcbfn) { - cd->cbfunc.hdlrregcbfn(PMIX_SUCCESS, refid, cd->cbdata); + cd->cbfunc.hdlrregcbfn(PMIX_SUCCESS, cd->iofreq->local_id, cd->cbdata); } } else if (PMIX_SUCCESS != rc) { status = rc; @@ -74,19 +79,37 @@ } else { cd->cbfunc.opcbfn(status, cd->cbdata); } + } else if (PMIX_SUCCESS != status) { + pmix_pointer_array_set_item(&pmix_globals.iof_requests, cd->iofreq->local_id, NULL); + PMIX_RELEASE(cd->iofreq); } else if (NULL == cd->cbfunc.hdlrregcbfn) { cd->status = status; - cd->ncodes = refid; + cd->iofreq->remote_id = refid; PMIX_WAKEUP_THREAD(&cd->lock); } else { - cd->cbfunc.hdlrregcbfn(PMIX_SUCCESS, refid, cd->cbdata); - } - if (PMIX_SUCCESS != rc && NULL != cd->iofreq) { - PMIX_RELEASE(cd->iofreq); + cd->iofreq->remote_id = refid; + cd->cbfunc.hdlrregcbfn(PMIX_SUCCESS, cd->iofreq->local_id, cd->cbdata); } + PMIX_RELEASE(cd); } +static void mycbfn(pmix_status_t status, + size_t refid, + void *cbdata) +{ + pmix_shift_caddy_t *cd = (pmix_shift_caddy_t*)cbdata; + + PMIX_ACQUIRE_OBJECT(cd); + if (PMIX_SUCCESS == status) { + cd->status = refid; + } else { + cd->status = status; + } + + PMIX_WAKEUP_THREAD(&cd->lock); +} + PMIX_EXPORT pmix_status_t PMIx_IOF_pull(const pmix_proc_t procs[], size_t nprocs, const pmix_info_t directives[], size_t ndirs, pmix_iof_channel_t channel, pmix_iof_cbfunc_t cbfunc, @@ -94,8 +117,9 @@ { pmix_shift_caddy_t *cd; pmix_cmd_t cmd = PMIX_IOF_PULL_CMD; - pmix_buffer_t *msg; + pmix_buffer_t *msg = NULL; pmix_status_t rc; + pmix_iof_req_t *req; PMIX_ACQUIRE_THREAD(&pmix_global_lock); @@ -132,24 +156,33 @@ if (NULL == cd) { return PMIX_ERR_NOMEM; } - cd->cbfunc.hdlrregcbfn = regcbfunc; - cd->cbdata = regcbdata; + if (NULL == regcbfunc) { + cd->cbfunc.hdlrregcbfn = mycbfn; + PMIX_RETAIN(cd); + cd->cbdata = cd; + } else { + cd->cbfunc.hdlrregcbfn = regcbfunc; + cd->cbdata = regcbdata; + } + /* setup the request item */ - cd->iofreq = PMIX_NEW(pmix_iof_req_t); - if (NULL == cd->iofreq) { - PMIX_RELEASE(cd); - return PMIX_ERR_NOMEM; + req = PMIX_NEW(pmix_iof_req_t); + if (NULL == req) { + rc = PMIX_ERR_NOMEM; + goto cleanup; } /* retain the channels and cbfunc */ - cd->iofreq->channels = channel; - cd->iofreq->cbfunc = cbfunc; + req->channels = channel; + req->cbfunc = cbfunc; + req->local_id = pmix_pointer_array_add(&pmix_globals.iof_requests, req); + cd->iofreq = req; /* we don't need the source specifications - only the * server cares as it will filter against them */ /* setup the registration cmd */ msg = PMIX_NEW(pmix_buffer_t); if (NULL == msg) { - PMIX_RELEASE(cd->iofreq); + PMIX_RELEASE(req); PMIX_RELEASE(cd); return PMIX_ERR_NOMEM; } @@ -200,8 +233,19 @@ cleanup: if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); - PMIX_RELEASE(msg); - PMIX_RELEASE(cd->iofreq); + if (NULL != msg) { + PMIX_RELEASE(msg); + } + PMIX_RELEASE(req); + PMIX_RELEASE(cd); + } else if (NULL == regcbfunc) { + PMIX_WAIT_THREAD(&cd->lock); + rc = cd->status; + if (0 > rc) { + /* the request failed */ + pmix_pointer_array_set_item(&pmix_globals.iof_requests, req->local_id, NULL); + PMIX_RELEASE(req); + } PMIX_RELEASE(cd); } return rc; @@ -215,6 +259,8 @@ pmix_cmd_t cmd = PMIX_IOF_DEREG_CMD; pmix_buffer_t *msg; pmix_status_t rc; + pmix_iof_req_t *req; + size_t remote_id; PMIX_ACQUIRE_THREAD(&pmix_global_lock); @@ -240,6 +286,15 @@ } PMIX_RELEASE_THREAD(&pmix_global_lock); + req = (pmix_iof_req_t*)pmix_pointer_array_get_item(&pmix_globals.iof_requests, iofhdlr); + if (NULL == req) { + /* bad value */ + return PMIX_ERR_BAD_PARAM; + } + remote_id = req->remote_id; + pmix_pointer_array_set_item(&pmix_globals.iof_requests, iofhdlr, NULL); + PMIX_RELEASE(req); + /* send this request to the server */ cd = PMIX_NEW(pmix_shift_caddy_t); if (NULL == cd) { @@ -276,9 +331,9 @@ } } - /* pack the handler ID */ + /* pack the remote handler ID */ PMIX_BFROPS_PACK(rc, pmix_client_globals.myserver, - msg, &iofhdlr, 1, PMIX_SIZE); + msg, &remote_id, 1, PMIX_SIZE); pmix_output_verbose(2, pmix_client_globals.iof_output, "pmix:iof_dereg sending to server"); @@ -299,10 +354,29 @@ } typedef struct { + pmix_object_t super; + pmix_event_t ev; + pmix_lock_t lock; + pmix_status_t status; pmix_op_cbfunc_t cbfunc; void *cbdata; } pmix_ltcaddy_t; +static void ltcon(pmix_ltcaddy_t *p) +{ + PMIX_CONSTRUCT_LOCK(&p->lock); +} +static void ltdes(pmix_ltcaddy_t *p) +{ + PMIX_DESTRUCT_LOCK(&p->lock); +} +static PMIX_CLASS_INSTANCE(pmix_ltcaddy_t, + pmix_object_t, + ltcon, ltdes); + +static pmix_event_t stdinsig_ev; +static pmix_iof_read_event_t *stdinev = NULL; + static void stdincbfunc(struct pmix_peer_t *peer, pmix_ptl_hdr_t *hdr, pmix_buffer_t *buf, void *cbdata) @@ -334,6 +408,14 @@ free(cd); } +static void myopcb(pmix_status_t status, void *cbdata) +{ + pmix_ltcaddy_t *cd = (pmix_ltcaddy_t*)cbdata; + + cd->status = status; + PMIX_WAKEUP_THREAD(&cd->lock); +} + pmix_status_t PMIx_IOF_push(const pmix_proc_t targets[], size_t ntargets, pmix_byte_object_t *bo, const pmix_info_t directives[], size_t ndirs, @@ -341,8 +423,11 @@ { pmix_buffer_t *msg; pmix_cmd_t cmd = PMIX_IOF_PUSH_CMD; - pmix_status_t rc; + pmix_status_t rc = PMIX_SUCCESS; pmix_ltcaddy_t *cd; + size_t n; + bool begincollecting, stopcollecting; + int flags, fd = fileno(stdin); PMIX_ACQUIRE_THREAD(&pmix_global_lock); if (pmix_globals.init_cntr <= 0) { @@ -351,6 +436,104 @@ } PMIX_RELEASE_THREAD(&pmix_global_lock); + if (NULL == bo) { + /* check the directives */ + for (n=0; n < ndirs; n++) { + if (PMIX_CHECK_KEY(&directives[n], PMIX_IOF_PUSH_STDIN)) { + /* we are to start collecting our stdin and pushing + * it to the specified targets */ + begincollecting = PMIX_INFO_TRUE(&directives[n]); + if (begincollecting) { + /* add these targets to our list */ + if (!pmix_globals.pushstdin) { + /* not already collecting, so start */ + pmix_globals.pushstdin = true; + /* We don't want to set nonblocking on our + * stdio stream. If we do so, we set the file descriptor to + * non-blocking for everyone that has that file descriptor, which + * includes everyone else in our shell pipeline chain. (See + * http://lists.freebsd.org/pipermail/freebsd-hackers/2005-January/009742.html). + * This causes things like "prun -np 1 big_app | cat" to lose + * output, because cat's stdout is then ALSO non-blocking and cat + * isn't built to deal with that case (same with almost all other + * unix text utils). + */ + if (0 != fd) { + if((flags = fcntl(fd, F_GETFL, 0)) < 0) { + pmix_output(pmix_client_globals.iof_output, + "[%s:%d]: fcntl(F_GETFL) failed with errno=%d\n", + __FILE__, __LINE__, errno); + } else { + flags |= O_NONBLOCK; + fcntl(fd, F_SETFL, flags); + } + } + if (isatty(fd)) { + /* We should avoid trying to read from stdin if we + * have a terminal, but are backgrounded. Catch the + * signals that are commonly used when we switch + * between being backgrounded and not. If the + * filedescriptor is not a tty, don't worry about it + * and always stay connected. + */ + pmix_event_signal_set(pmix_globals.evbase, &stdinsig_ev, + SIGCONT, pmix_iof_stdin_cb, + NULL); + + /* setup a read event to read stdin, but don't activate it yet. The + * dst_name indicates who should receive the stdin. If that recipient + * doesn't do a corresponding pull, however, then the stdin will + * be dropped upon receipt at the local daemon + */ + PMIX_IOF_READ_EVENT(&stdinev, + targets, ntargets, + directives, ndirs, fd, + pmix_iof_read_local_handler, false); + + /* check to see if we want the stdin read event to be + * active - we will always at least define the event, + * but may delay its activation + */ + if (pmix_iof_stdin_check(fd)) { + PMIX_IOF_READ_ACTIVATE(stdinev); + } + } else { + /* if we are not looking at a tty, just setup a read event + * and activate it + */ + PMIX_IOF_READ_EVENT(&stdinev, targets, ntargets, + directives, ndirs, fd, + pmix_iof_read_local_handler, true); + } + } + } else { + if (pmix_globals.pushstdin) { + /* remove these targets from the list of + * recipients - if the list is then empty, + * stop collecting. If the targets param + * is NULL, then remove all targets and stop. + * Flush any cached input before calling + * the cbfunc */ + } + } + } else if (PMIX_CHECK_KEY(&directives[n], PMIX_IOF_COMPLETE)) { + /* if we are collecting our stdin for the specified + * targets, then stop - a NULL for targets indicates + * stop for everyone. Flush any remaining cached input + * before calling the cbfunc */ + stopcollecting = PMIX_INFO_TRUE(&directives[n]); + if (stopcollecting) { + if (pmix_globals.pushstdin) { + /* remove these targets from the list of + * recipients - if the list is then empty, + * stop collecting */ + } + } + } + } + return PMIX_OPERATION_SUCCEEDED; + } + /* if we are not a server, then we send the provided * data to our server for processing */ if (!PMIX_PEER_IS_SERVER(pmix_globals.mypeer) || @@ -398,26 +581,40 @@ return rc; } } - PMIX_BFROPS_PACK(rc, pmix_client_globals.myserver, - msg, bo, 1, PMIX_BYTE_OBJECT); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_RELEASE(msg); - return rc; + if (NULL != bo) { + PMIX_BFROPS_PACK(rc, pmix_client_globals.myserver, + msg, bo, 1, PMIX_BYTE_OBJECT); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE(msg); + return rc; + } } - cd = (pmix_ltcaddy_t*)malloc(sizeof(pmix_ltcaddy_t)); + cd = PMIX_NEW(pmix_ltcaddy_t); if (NULL == cd) { PMIX_RELEASE(msg); rc = PMIX_ERR_NOMEM; return rc; } + if (NULL == cbfunc) { + cd->cbfunc = myopcb; + PMIX_RETAIN(cd); + cd->cbdata = cd; + } else { + cd->cbfunc = cbfunc; + cd->cbdata = cbdata; + } PMIX_PTL_SEND_RECV(rc, pmix_client_globals.myserver, msg, stdincbfunc, cd); if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); PMIX_RELEASE(msg); free(cd); + } else if (NULL == cbfunc) { + PMIX_WAIT_THREAD(&cd->lock); + rc = cd->status; + PMIX_RELEASE(cd); } return rc; } @@ -430,7 +627,7 @@ targets, ntargets, directives, ndirs, bo, cbfunc, cbdata); - return PMIX_SUCCESS; + return rc; } pmix_status_t pmix_iof_process_iof(pmix_iof_channel_t channels, @@ -487,8 +684,8 @@ PMIX_RELEASE(msg); return rc; } - /* provide the handler ID so they know which cbfunc to use */ - PMIX_BFROPS_PACK(rc, req->requestor, msg, &req->refid, 1, PMIX_SIZE); + /* provide their local handler ID so they know which cbfunc to use */ + PMIX_BFROPS_PACK(rc, req->requestor, msg, &req->remote_id, 1, PMIX_SIZE); if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); PMIX_RELEASE(msg); @@ -705,6 +902,11 @@ for (j=0; j < endtaglen && k < PMIX_IOF_BASE_TAGGED_OUT_MAX-1; j++) { output->data[k++] = endtag[j]; } + if (k == PMIX_IOF_BASE_TAGGED_OUT_MAX) { + /* out of space */ + PMIX_ERROR_LOG(PMIX_ERR_OUT_OF_RESOURCE); + goto process; + } /* move the over */ output->data[k++] = '\n'; /* if this isn't the end of the data buffer, add a new start tag */ @@ -781,7 +983,7 @@ dump = false; /* make one last attempt to write this out */ while (NULL != (output = (pmix_iof_write_output_t*)pmix_list_remove_first(&wev->outputs))) { - if (!dump) { + if (!dump && 0 < output->numbytes) { num_written = write(wev->fd, output->data, output->numbytes); if (num_written < output->numbytes) { /* don't retry - just cleanout the list and dump it */ @@ -812,7 +1014,7 @@ output = (pmix_iof_write_output_t*)item; if (0 == output->numbytes) { /* indicates we are to close this stream */ - PMIX_RELEASE(sink); + PMIX_DESTRUCT(sink); return; } num_written = write(wev->fd, output->data, output->numbytes); @@ -900,15 +1102,34 @@ } } -static void restart_stdin(int fd, short event, void *cbdata) +static void iof_stdin_cbfunc(struct pmix_peer_t *peer, + pmix_ptl_hdr_t *hdr, + pmix_buffer_t *buf, void *cbdata) { - pmix_iof_read_event_t *tm = (pmix_iof_read_event_t*)cbdata; + pmix_iof_read_event_t *stdinev = (pmix_iof_read_event_t*)cbdata; + int cnt; + pmix_status_t rc, ret; - PMIX_ACQUIRE_OBJECT(tm); + PMIX_ACQUIRE_OBJECT(stdinev); - if (!tm->active) { - PMIX_IOF_READ_ACTIVATE(tm); + /* check the return status */ + cnt = 1; + PMIX_BFROPS_UNPACK(rc, peer, buf, &ret, &cnt, PMIX_STATUS); + if (PMIX_SUCCESS != rc) { + pmix_event_del(&stdinev->ev); + stdinev->active = false; + PMIX_POST_OBJECT(stdinev); + return; + } + /* if the status wasn't success, then terminate the forward */ + if (PMIX_SUCCESS != ret) { + pmix_event_del(&stdinev->ev); + stdinev->active = false; + PMIX_POST_OBJECT(stdinev); + return; } + + pmix_iof_stdin_cb(0, 0, stdinev); } /* this is the read handler for stdin */ @@ -917,18 +1138,19 @@ pmix_iof_read_event_t *rev = (pmix_iof_read_event_t*)cbdata; unsigned char data[PMIX_IOF_BASE_MSG_MAX]; int32_t numbytes; - int fd; pmix_status_t rc; pmix_buffer_t *msg; pmix_cmd_t cmd = PMIX_IOF_PUSH_CMD; + pmix_byte_object_t bo; + int fd; PMIX_ACQUIRE_OBJECT(rev); - /* As we may use timer events, fd can be bogus (-1) - * use the right one here - */ - fd = fileno(stdin); - + if (0 > rev->fd) { + fd = fileno(stdin); + } else { + fd = rev->fd; + } /* read up to the fragment size */ memset(data, 0, PMIX_IOF_BASE_MSG_MAX); numbytes = read(fd, data, sizeof(data)); @@ -968,50 +1190,68 @@ if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); PMIX_RELEASE(msg); - goto restart; + return; + } + /* pack the number of targets */ + PMIX_BFROPS_PACK(rc, pmix_client_globals.myserver, + msg, &rev->ntargets, 1, PMIX_SIZE); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE(msg); + return; } + /* and the targets */ + if (0 < rev->ntargets) { + PMIX_BFROPS_PACK(rc, pmix_client_globals.myserver, + msg, rev->targets, rev->ntargets, PMIX_PROC); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE(msg); + return; + } + } + /* pack the number of directives */ PMIX_BFROPS_PACK(rc, pmix_client_globals.myserver, - msg, &numbytes, 1, PMIX_INT32); + msg, &rev->ndirs, 1, PMIX_SIZE); if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); PMIX_RELEASE(msg); - goto restart; + return; } + /* and the directives */ + if (0 < rev->ndirs) { + PMIX_BFROPS_PACK(rc, pmix_client_globals.myserver, + msg, rev->directives, rev->ndirs, PMIX_INFO); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE(msg); + return; + } + } + + /* pack the data */ + bo.bytes = (char*)data; + bo.size = numbytes; PMIX_BFROPS_PACK(rc, pmix_client_globals.myserver, - msg, data, numbytes, PMIX_BYTE); + msg, &bo, 1, PMIX_BYTE_OBJECT); if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); PMIX_RELEASE(msg); - goto restart; + return; } + + /* send it to the server */ PMIX_PTL_SEND_RECV(rc, pmix_client_globals.myserver, - msg, stdincbfunc, NULL); + msg, iof_stdin_cbfunc, rev); if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); PMIX_RELEASE(msg); } - restart: - /* if num_bytes was zero, or we read the last piece of the file, then we need to terminate the event */ - if (0 == numbytes) { - /* this will also close our stdin file descriptor */ - PMIX_RELEASE(rev); - } else { - /* if we are looking at a tty, then we just go ahead and restart the - * read event assuming we are not backgrounded - */ - if (pmix_iof_stdin_check(fd)) { - restart_stdin(fd, 0, rev); - } else { - /* delay for awhile and then restart */ - pmix_event_evtimer_set(pmix_globals.evbase, - &rev->ev, restart_stdin, rev); - rev->tv.tv_sec = 0; - rev->tv.tv_usec = 10000; - PMIX_POST_OBJECT(rev); - pmix_event_evtimer_add(&rev->ev, &rev->tv); - } + if (0 < numbytes) { + PMIX_IOF_READ_ACTIVATE(rev); } + /* nothing more to do */ return; } @@ -1044,12 +1284,19 @@ { rev->fd = -1; rev->active = false; + rev->childproc = NULL; rev->tv.tv_sec = 0; rev->tv.tv_usec = 0; + rev->targets = NULL; + rev->ntargets = 0; + rev->directives = NULL; + rev->ndirs = 0; } static void iof_read_event_destruct(pmix_iof_read_event_t* rev) { - pmix_event_del(&rev->ev); + if (rev->active) { + pmix_event_del(&rev->ev); + } if (0 <= rev->fd) { PMIX_OUTPUT_VERBOSE((20, pmix_client_globals.iof_output, "%s iof: closing fd %d", @@ -1057,6 +1304,12 @@ close(rev->fd); rev->fd = -1; } + if (NULL != rev->targets) { + PMIX_PROC_FREE(rev->targets, rev->ntargets); + } + if (NULL != rev->directives) { + PMIX_INFO_FREE(rev->directives, rev->ndirs); + } } PMIX_CLASS_INSTANCE(pmix_iof_read_event_t, pmix_object_t, @@ -1074,14 +1327,16 @@ } static void iof_write_event_destruct(pmix_iof_write_event_t* wev) { - pmix_event_del(&wev->ev); + if (wev->pending) { + pmix_event_del(&wev->ev); + } if (2 < wev->fd) { PMIX_OUTPUT_VERBOSE((20, pmix_client_globals.iof_output, "%s iof: closing fd %d for write event", PMIX_NAME_PRINT(&pmix_globals.myid), wev->fd)); close(wev->fd); } - PMIX_DESTRUCT(&wev->outputs); + PMIX_LIST_DESTRUCT(&wev->outputs); } PMIX_CLASS_INSTANCE(pmix_iof_write_event_t, pmix_list_item_t, diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/pmix_iof.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/pmix_iof.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/pmix_iof.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/pmix_iof.h 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012-2013 Los Alamos National Security, LLC. * All rights reserved. - * Copyright (c) 2015-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. * Copyright (c) 2017 Mellanox Technologies. All rights reserved. * Copyright (c) 2018 Research Organization for Information Science @@ -32,7 +32,7 @@ #ifndef PMIX_IOF_H #define PMIX_IOF_H -#include +#include "src/include/pmix_config.h" #ifdef HAVE_SYS_TYPES_H #include @@ -52,8 +52,6 @@ #include "src/include/pmix_globals.h" #include "src/util/fd.h" -#include "src/common/pmix_iof.h" - BEGIN_C_DECLS /* @@ -99,7 +97,14 @@ struct timeval tv; int fd; bool active; + void *childproc; bool always_readable; + pmix_proc_t name; + pmix_iof_channel_t channel; + pmix_proc_t *targets; + size_t ntargets; + pmix_info_t *directives; + size_t ndirs; } pmix_iof_read_event_t; PMIX_EXPORT PMIX_CLASS_DECLARATION(pmix_iof_read_event_t); @@ -132,7 +137,7 @@ PMIX_POST_OBJECT(wev); \ if (wev->always_writable) { \ /* Regular is always write ready. Use timer to activate */ \ - tv = &wev->tv; \ + tv = &wev->tv; \ } \ if (pmix_event_add(&wev->ev, tv)) { \ PMIX_ERROR_LOG(PMIX_ERR_BAD_PARAM); \ @@ -188,6 +193,44 @@ } while(0); +#define PMIX_IOF_READ_EVENT(rv, p, np, d, nd, fid, cbfunc, actv) \ + do { \ + size_t _ii; \ + pmix_iof_read_event_t *rev; \ + PMIX_OUTPUT_VERBOSE((1, pmix_client_globals.iof_output, \ + "defining read event at: %s %d", \ + __FILE__, __LINE__)); \ + rev = PMIX_NEW(pmix_iof_read_event_t); \ + if (NULL != (p)) { \ + (rev)->ntargets = (np); \ + PMIX_PROC_CREATE((rev)->targets, (rev)->ntargets); \ + memcpy((rev)->targets, (p), (np) * sizeof(pmix_proc_t)); \ + } \ + if (NULL != (d) && 0 < (nd)) { \ + PMIX_INFO_CREATE((rev)->directives, (nd)); \ + (rev)->ndirs = (nd); \ + for (_ii=0; _ii < (size_t)nd; _ii++) { \ + PMIX_INFO_XFER(&((rev)->directives[_ii]), &((d)[_ii])); \ + } \ + } \ + rev->fd = (fid); \ + rev->always_readable = pmix_iof_fd_always_ready(fid); \ + *(rv) = rev; \ + if(rev->always_readable) { \ + pmix_event_evtimer_set(pmix_globals.evbase, \ + &rev->ev, (cbfunc), rev); \ + } else { \ + pmix_event_set(pmix_globals.evbase, \ + &rev->ev, (fid), \ + PMIX_EV_READ, \ + (cbfunc), rev); \ + } \ + if ((actv)) { \ + PMIX_IOF_READ_ACTIVATE(rev) \ + } \ + } while(0); + + PMIX_EXPORT pmix_status_t pmix_iof_flush(void); PMIX_EXPORT pmix_status_t pmix_iof_write_output(const pmix_proc_t *name, @@ -196,10 +239,9 @@ pmix_iof_flags_t *flags); PMIX_EXPORT void pmix_iof_static_dump_output(pmix_iof_sink_t *sink); PMIX_EXPORT void pmix_iof_write_handler(int fd, short event, void *cbdata); -PMIX_EXPORT void pmix_iof_stdin_write_handler(int fd, short event, void *cbdata); PMIX_EXPORT bool pmix_iof_stdin_check(int fd); +PMIX_EXPORT void pmix_iof_read_local_handler(int unusedfd, short event, void *cbdata); PMIX_EXPORT void pmix_iof_stdin_cb(int fd, short event, void *cbdata); -PMIX_EXPORT void pmix_iof_read_local_handler(int fd, short event, void *cbdata); PMIX_EXPORT pmix_status_t pmix_iof_process_iof(pmix_iof_channel_t channels, const pmix_proc_t *source, const pmix_byte_object_t *bo, diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/pmix_log.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/pmix_log.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/pmix_log.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/pmix_log.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,25 +1,25 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. + * Copyright (c) 2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow * * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include -#include - -#include -#include -#include -#include +#include "src/include/pmix_stdint.h" +#include "src/include/pmix_socket_errno.h" + +#include "include/pmix.h" +#include "include/pmix_common.h" +#include "include/pmix_server.h" #include "src/threads/threads.h" #include "src/util/argv.h" @@ -255,7 +255,7 @@ for (n=0; n < ndirs; n++) { PMIX_INFO_XFER(&cd->directives[n], (pmix_info_t*)&directives[n]); } - PMIX_INFO_LOAD(&cd->directives[ndirs], PMIX_LOG_SOURCE, &source, PMIX_PROC); + PMIX_INFO_LOAD(&cd->directives[ndirs], PMIX_LOG_SOURCE, source, PMIX_PROC); /* call down to process the request - the various components * will thread shift as required */ rc = pmix_plog.log(source, data, ndata, cd->directives, cd->ndirs, localcbfunc, cd); @@ -263,8 +263,7 @@ PMIX_INFO_FREE(cd->directives, cd->ndirs); PMIX_RELEASE(cd); } - } else if (0 == strncmp(source->nspace, pmix_globals.myid.nspace, PMIX_MAX_NSLEN) && - source->rank == pmix_globals.myid.rank) { + } else if (PMIX_CHECK_PROCID(source, &pmix_globals.myid)) { /* if I am the recorded source, then this is a re-submission of * something that got "upcalled" by a prior call. In this case, * we return a "not supported" error as clearly we couldn't diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/pmix_query.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/pmix_query.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/pmix_query.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/pmix_query.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,25 +1,25 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. + * Copyright (c) 2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow * * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include -#include - -#include -#include -#include -#include +#include "src/include/pmix_stdint.h" +#include "src/include/pmix_socket_errno.h" + +#include "include/pmix.h" +#include "include/pmix_common.h" +#include "include/pmix_server.h" #include "src/threads/threads.h" #include "src/util/argv.h" @@ -27,7 +27,7 @@ #include "src/util/name_fns.h" #include "src/util/output.h" #include "src/mca/bfrops/bfrops.h" -#include "src/mca/ptl/ptl.h" +#include "src/mca/ptl/base/base.h" #include "src/client/pmix_client_ops.h" #include "src/server/pmix_server_ops.h" @@ -107,7 +107,7 @@ complete: pmix_output_verbose(2, pmix_globals.debug_output, - "pmix:query cback from server releasing"); + "pmix:query cback from server releasing with status %s", PMIx_Error_string(results->status)); /* release the caller */ if (NULL != cd->cbfunc) { cd->cbfunc(results->status, results->info, results->ninfo, cd->cbdata, relcbfunc, results); @@ -115,90 +115,109 @@ PMIX_RELEASE(cd); } -static void _local_relcb(void *cbdata) +static pmix_status_t request_help(pmix_query_t queries[], size_t nqueries, + pmix_info_cbfunc_t cbfunc, void *cbdata) { - pmix_query_caddy_t *cd = (pmix_query_caddy_t*)cbdata; - PMIX_RELEASE(cd); + pmix_query_caddy_t *cd; + pmix_cmd_t cmd = PMIX_QUERY_CMD; + pmix_buffer_t *msg; + pmix_status_t rc; + + /* if we are the server, then we just issue the query and + * return the response */ + if (PMIX_PEER_IS_SERVER(pmix_globals.mypeer) && + !PMIX_PEER_IS_LAUNCHER(pmix_globals.mypeer)) { + PMIX_RELEASE_THREAD(&pmix_global_lock); + if (NULL == pmix_host_server.query) { + /* nothing we can do */ + return PMIX_ERR_NOT_SUPPORTED; + } + pmix_output_verbose(2, pmix_globals.debug_output, + "pmix:query handed to RM"); + rc = pmix_host_server.query(&pmix_globals.myid, + queries, nqueries, + cbfunc, cbdata); + return rc; + } + + /* if we aren't connected, don't attempt to send */ + if (!pmix_globals.connected) { + PMIX_RELEASE_THREAD(&pmix_global_lock); + return PMIX_ERR_UNREACH; + } + PMIX_RELEASE_THREAD(&pmix_global_lock); + + /* if we are a client, then relay this request to the server */ + cd = PMIX_NEW(pmix_query_caddy_t); + cd->cbfunc = cbfunc; + cd->cbdata = cbdata; + msg = PMIX_NEW(pmix_buffer_t); + PMIX_BFROPS_PACK(rc, pmix_client_globals.myserver, + msg, &cmd, 1, PMIX_COMMAND); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE(msg); + PMIX_RELEASE(cd); + return rc; + } + PMIX_BFROPS_PACK(rc, pmix_client_globals.myserver, + msg, &nqueries, 1, PMIX_SIZE); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE(msg); + PMIX_RELEASE(cd); + return rc; + } + PMIX_BFROPS_PACK(rc, pmix_client_globals.myserver, + msg, queries, nqueries, PMIX_QUERY); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE(msg); + PMIX_RELEASE(cd); + return rc; + } + + pmix_output_verbose(2, pmix_globals.debug_output, + "pmix:query sending to server"); + PMIX_PTL_SEND_RECV(rc, pmix_client_globals.myserver, + msg, query_cbfunc, (void*)cd); + if (PMIX_SUCCESS != rc) { + PMIX_RELEASE(cd); + } + return rc; + } -static void _local_cbfunc(int sd, short args, void *cbdata) +static void _local_relcb(void *cbdata) { pmix_query_caddy_t *cd = (pmix_query_caddy_t*)cbdata; - if (NULL != cd->cbfunc) { - cd->cbfunc(cd->status, cd->info, cd->ninfo, cd->cbdata, _local_relcb, cd); - return; + + if (NULL != cd->info) { + PMIX_INFO_FREE(cd->info, cd->ninfo); } PMIX_RELEASE(cd); } -PMIX_EXPORT pmix_status_t PMIx_Query_info_nb(pmix_query_t queries[], size_t nqueries, - pmix_info_cbfunc_t cbfunc, void *cbdata) - +static void localquery(int sd, short args, void *cbdata) { - pmix_query_caddy_t *cd; - pmix_cmd_t cmd = PMIX_QUERY_CMD; - pmix_buffer_t *msg; + pmix_query_caddy_t *cd = (pmix_query_caddy_t*)cbdata; + pmix_query_t *queries = cd->queries; + size_t nqueries = cd->nqueries; pmix_status_t rc; pmix_cb_t cb; size_t n, p; pmix_list_t results; pmix_kval_t *kv, *kvnxt; pmix_proc_t proc; - bool rank_given; - - PMIX_ACQUIRE_THREAD(&pmix_global_lock); - - pmix_output_verbose(2, pmix_globals.debug_output, - "pmix:query non-blocking"); - - if (pmix_globals.init_cntr <= 0) { - PMIX_RELEASE_THREAD(&pmix_global_lock); - return PMIX_ERR_INIT; - } - - if (0 == nqueries || NULL == queries) { - PMIX_RELEASE_THREAD(&pmix_global_lock); - return PMIX_ERR_BAD_PARAM; - } - - /* do a quick check of the qualifiers array to ensure - * the nqual field has been set */ - for (n=0; n < nqueries; n++) { - if (NULL != queries[n].qualifiers && 0 == queries[n].nqual) { - /* look for the info marked as "end" */ - p = 0; - while (!(PMIX_INFO_IS_END(&queries[n].qualifiers[p])) && p < SIZE_MAX) { - ++p; - } - if (SIZE_MAX == p) { - /* nothing we can do */ - PMIX_RELEASE_THREAD(&pmix_global_lock); - return PMIX_ERR_BAD_PARAM; - } - queries[n].nqual = p; - } - } + bool rank_given = false; /* setup the list of local results */ PMIX_CONSTRUCT(&results, pmix_list_t); - /* check the directives to see if they want us to refresh - * the local cached results - if we wanted to optimize this - * more, we would check each query and allow those that don't - * want to be refreshed to be executed locally, and those that - * did would be sent to the host. However, for now we simply - * */ - memset(proc.nspace, 0, PMIX_MAX_NSLEN+1); - proc.rank = PMIX_RANK_INVALID; for (n=0; n < nqueries; n++) { - rank_given = false; + PMIX_LOAD_PROCID(&proc, NULL, PMIX_RANK_INVALID); for (p=0; p < queries[n].nqual; p++) { - if (PMIX_CHECK_KEY(&queries[n].qualifiers[p], PMIX_QUERY_REFRESH_CACHE)) { - if (PMIX_INFO_TRUE(&queries[n].qualifiers[p])) { - PMIX_LIST_DESTRUCT(&results); - goto query; - } - } else if (PMIX_CHECK_KEY(&queries[n].qualifiers[p], PMIX_PROCID)) { + if (PMIX_CHECK_KEY(&queries[n].qualifiers[p], PMIX_PROCID)) { PMIX_LOAD_NSPACE(proc.nspace, queries[n].qualifiers[p].value.data.proc->nspace); proc.rank = queries[n].qualifiers[p].value.data.proc->rank; rank_given = true; @@ -209,8 +228,8 @@ rank_given = true; } } - /* we get here if a refresh isn't required - first try a local - * "get" on the data to see if we already have it */ + + /* first try a local "get" on the data to see if we already have it */ PMIX_CONSTRUCT(&cb, pmix_cb_t); cb.copy = false; /* if they are querying about node or app values not directly @@ -237,14 +256,15 @@ cb.proc = &proc; } } + + /* first see if we already have this info */ for (p=0; NULL != queries[n].keys[p]; p++) { cb.key = queries[n].keys[p]; PMIX_GDS_FETCH_KV(rc, pmix_globals.mypeer, &cb); if (PMIX_SUCCESS != rc) { - /* needs to be passed to the host */ - PMIX_LIST_DESTRUCT(&results); + /* not in our gds */ PMIX_DESTRUCT(&cb); - goto query; + goto nextstep; } /* need to retain this result */ PMIX_LIST_FOREACH_SAFE(kv, kvnxt, &cb.kvs, pmix_kval_t) { @@ -255,101 +275,122 @@ } } - /* if we get here, then all queries were completely locally - * resolved, so construct the results for return */ - cd = PMIX_NEW(pmix_query_caddy_t); - cd->cbfunc = cbfunc; - cd->cbdata = cbdata; - cd->status = PMIX_SUCCESS; - cd->ninfo = pmix_list_get_size(&results); - PMIX_INFO_CREATE(cd->info, cd->ninfo); - n = 0; - PMIX_LIST_FOREACH_SAFE(kv, kvnxt, &results, pmix_kval_t) { - PMIX_LOAD_KEY(cd->info[n].key, kv->key); - rc = pmix_value_xfer(&cd->info[n].value, kv->value); + nextstep: + if (PMIX_OPERATION_SUCCEEDED == rc) { + /* if we get here, then all queries were locally + * resolved, so construct the results for return */ + cd->status = PMIX_SUCCESS; + cd->ninfo = pmix_list_get_size(&results); + if (0 < cd->ninfo) { + PMIX_INFO_CREATE(cd->info, cd->ninfo); + n = 0; + PMIX_LIST_FOREACH_SAFE(kv, kvnxt, &results, pmix_kval_t) { + PMIX_LOAD_KEY(cd->info[n].key, kv->key); + rc = pmix_value_xfer(&cd->info[n].value, kv->value); + if (PMIX_SUCCESS != rc) { + cd->status = rc; + PMIX_INFO_FREE(cd->info, cd->ninfo); + break; + } + ++n; + } + } + /* done with the list of results */ + PMIX_LIST_DESTRUCT(&results); + + if (NULL != cd->cbfunc) { + cd->cbfunc(cd->status, cd->info, cd->ninfo, cd->cbdata, _local_relcb, cd); + } + } else if (PMIX_SUCCESS != rc) { + /* need to ask our host */ + rc = request_help(cd->queries, cd->nqueries, cd->cbfunc, cd->cbdata); if (PMIX_SUCCESS != rc) { - cd->status = rc; - PMIX_INFO_FREE(cd->info, cd->ninfo); - break; - } - ++n; - } - /* done with the list of results */ - PMIX_LIST_DESTRUCT(&results); - /* we need to thread-shift as we are not allowed to - * execute the callback function prior to returning - * from the API */ - PMIX_THREADSHIFT(cd, _local_cbfunc); - /* regardless of the result of the query, we return - * PMIX_SUCCESS here to indicate that the operation - * was accepted for processing */ - PMIX_RELEASE_THREAD(&pmix_global_lock); - return PMIX_SUCCESS; + /* we have to return the error to the caller */ + if (NULL != cd->cbfunc) { + cd->cbfunc(rc, NULL, 0, cd->cbdata, NULL, NULL); + } + } + PMIX_RELEASE(cd); + return; + } + /* get here if the query returned PMIX_SUCCESS, which means + * that the query is being processed and will call the cbfunc + * when complete */ +} - query: - /* if we are the server, then we just issue the query and - * return the response */ - if (PMIX_PEER_IS_SERVER(pmix_globals.mypeer) && - !PMIX_PEER_IS_LAUNCHER(pmix_globals.mypeer)) { +PMIX_EXPORT pmix_status_t PMIx_Query_info_nb(pmix_query_t queries[], size_t nqueries, + pmix_info_cbfunc_t cbfunc, void *cbdata) + +{ + pmix_query_caddy_t *cd; + pmix_status_t rc; + size_t n, p; + + PMIX_ACQUIRE_THREAD(&pmix_global_lock); + + pmix_output_verbose(2, pmix_globals.debug_output, + "pmix:query non-blocking"); + + if (pmix_globals.init_cntr <= 0) { PMIX_RELEASE_THREAD(&pmix_global_lock); - if (NULL == pmix_host_server.query) { - /* nothing we can do */ - return PMIX_ERR_NOT_SUPPORTED; + return PMIX_ERR_INIT; + } + PMIX_RELEASE_THREAD(&pmix_global_lock); + + if (0 == nqueries || NULL == queries) { + return PMIX_ERR_BAD_PARAM; + } + + /* do a quick check of the qualifiers arrays to ensure + * the nqual field has been set */ + for (n=0; n < nqueries; n++) { + if (NULL != queries[n].qualifiers && 0 == queries[n].nqual) { + /* look for the info marked as "end" */ + p = 0; + while (!(PMIX_INFO_IS_END(&queries[n].qualifiers[p])) && p < SIZE_MAX) { + ++p; + } + if (SIZE_MAX == p) { + /* nothing we can do */ + return PMIX_ERR_BAD_PARAM; + } + queries[n].nqual = p; } - pmix_output_verbose(2, pmix_globals.debug_output, - "pmix:query handed to RM"); - rc = pmix_host_server.query(&pmix_globals.myid, - queries, nqueries, - cbfunc, cbdata); - return rc; } - /* if we aren't connected, don't attempt to send */ - if (!pmix_globals.connected) { - PMIX_RELEASE_THREAD(&pmix_global_lock); - return PMIX_ERR_UNREACH; + /* check the directives to see if they want us to refresh + * the local cached results - if we wanted to optimize this + * more, we would check each query and allow those that don't + * want to be refreshed to be executed locally, and those that + * did would be sent to the host. However, for now we simply + * assume that any requirement to refresh will force all to + * do so */ + for (n=0; n < nqueries; n++) { + for (p=0; p < queries[n].nqual; p++) { + if (PMIX_CHECK_KEY(&queries[n].qualifiers[p], PMIX_QUERY_REFRESH_CACHE)) { + if (PMIX_INFO_TRUE(&queries[n].qualifiers[p])) { + /* need to refresh the cache from our host */ + rc = request_help(queries, nqueries, cbfunc, cbdata); + return rc; + } + } + } } - PMIX_RELEASE_THREAD(&pmix_global_lock); - /* if we are a client, then relay this request to the server */ + /* we get here if a refresh isn't required - need to + * threadshift this to access our internal data */ cd = PMIX_NEW(pmix_query_caddy_t); + cd->queries = queries; + cd->nqueries = nqueries; cd->cbfunc = cbfunc; cd->cbdata = cbdata; - msg = PMIX_NEW(pmix_buffer_t); - PMIX_BFROPS_PACK(rc, pmix_client_globals.myserver, - msg, &cmd, 1, PMIX_COMMAND); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_RELEASE(msg); - PMIX_RELEASE(cd); - return rc; - } - PMIX_BFROPS_PACK(rc, pmix_client_globals.myserver, - msg, &nqueries, 1, PMIX_SIZE); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_RELEASE(msg); - PMIX_RELEASE(cd); - return rc; - } - PMIX_BFROPS_PACK(rc, pmix_client_globals.myserver, - msg, queries, nqueries, PMIX_QUERY); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_RELEASE(msg); - PMIX_RELEASE(cd); - return rc; - } + PMIX_THREADSHIFT(cd, localquery); + /* regardless of the result of the query, we return + * PMIX_SUCCESS here to indicate that the operation + * was accepted for processing */ - pmix_output_verbose(2, pmix_globals.debug_output, - "pmix:query sending to server"); - PMIX_PTL_SEND_RECV(rc, pmix_client_globals.myserver, - msg, query_cbfunc, (void*)cd); - if (PMIX_SUCCESS != rc) { - PMIX_RELEASE(cd); - } - return rc; + return PMIX_SUCCESS; } static void acb(pmix_status_t status, diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/pmix_security.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/pmix_security.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/pmix_security.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/pmix_security.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,25 +1,25 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. + * Copyright (c) 2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow * * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include -#include +#include "src/include/pmix_stdint.h" +#include "src/include/pmix_socket_errno.h" -#include -#include -#include -#include +#include "include/pmix.h" +#include "include/pmix_common.h" +#include "include/pmix_server.h" #include "src/threads/threads.h" #include "src/util/argv.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/pmix_strings.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/pmix_strings.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/common/pmix_strings.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/common/pmix_strings.c 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * All rights reserved. * Copyright (c) 2007-2012 Los Alamos National Security, LLC. * All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -21,7 +21,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_STRING_H @@ -33,8 +33,7 @@ #include #endif -#include -#include +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" @@ -230,6 +229,16 @@ return "IOF PUSH"; case PMIX_IOF_PULL_CMD: return "IOF PULL"; + case PMIX_GROUP_CONSTRUCT_CMD: + return "GROUP CONSTRUCT"; + case PMIX_GROUP_JOIN_CMD: + return "GROUP JOIN"; + case PMIX_GROUP_INVITE_CMD: + return "GROUP INVITE"; + case PMIX_GROUP_LEAVE_CMD: + return "GROUP LEAVE"; + case PMIX_GROUP_DESTRUCT_CMD: + return "GROUP DESTRUCT"; default: return "UNKNOWN"; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/event/pmix_event.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/event/pmix_event.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/event/pmix_event.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/event/pmix_event.h 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,9 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2015-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2020 IBM Corporation. All rights reserved. + * Copyright (c) 2021 Nanook Consulting. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -21,11 +23,11 @@ #ifndef PMIX_EVENT_H #define PMIX_EVENT_H -#include +#include "src/include/pmix_config.h" #include "src/include/types.h" #include PMIX_EVENT_HEADER -#include +#include "include/pmix_common.h" #include "src/class/pmix_list.h" #include "src/util/output.h" @@ -122,6 +124,7 @@ bool timer_active; bool nondefault; bool endchain; + bool cached; pmix_proc_t source; pmix_data_range_t range; /* When generating events, callers can specify @@ -138,7 +141,11 @@ size_t nallocated; pmix_info_t *results; size_t nresults; + pmix_info_t *interim; + size_t ninterim; pmix_event_hdlr_t *evhdlr; + pmix_op_cbfunc_t opcbfunc; + void *cbdata; pmix_op_cbfunc_t final_cbfunc; void *final_cbdata; } pmix_event_chain_t; @@ -147,30 +154,30 @@ /* prepare a chain for processing by cycling across provided * info structs and translating those supported by the event * system into the chain object*/ -pmix_status_t pmix_prep_event_chain(pmix_event_chain_t *chain, - const pmix_info_t *info, size_t ninfo, - bool xfer); +PMIX_EXPORT pmix_status_t pmix_prep_event_chain(pmix_event_chain_t *chain, + const pmix_info_t *info, size_t ninfo, + bool xfer); /* invoke the error handler that is registered against the given * status, passing it the provided info on the procs that were * affected, plus any additional info provided by the server */ -void pmix_invoke_local_event_hdlr(pmix_event_chain_t *chain); +PMIX_EXPORT void pmix_invoke_local_event_hdlr(pmix_event_chain_t *chain); -bool pmix_notify_check_range(pmix_range_trkr_t *rng, - const pmix_proc_t *proc); +PMIX_EXPORT bool pmix_notify_check_range(pmix_range_trkr_t *rng, + const pmix_proc_t *proc); -bool pmix_notify_check_affected(pmix_proc_t *interested, size_t ninterested, - pmix_proc_t *affected, size_t naffected); +PMIX_EXPORT bool pmix_notify_check_affected(pmix_proc_t *interested, size_t ninterested, + pmix_proc_t *affected, size_t naffected); /* invoke the server event notification handler */ -pmix_status_t pmix_server_notify_client_of_event(pmix_status_t status, - const pmix_proc_t *source, - pmix_data_range_t range, - const pmix_info_t info[], size_t ninfo, - pmix_op_cbfunc_t cbfunc, void *cbdata); +PMIX_EXPORT pmix_status_t pmix_server_notify_client_of_event(pmix_status_t status, + const pmix_proc_t *source, + pmix_data_range_t range, + const pmix_info_t info[], size_t ninfo, + pmix_op_cbfunc_t cbfunc, void *cbdata); -void pmix_event_timeout_cb(int fd, short flags, void *arg); +PMIX_EXPORT void pmix_event_timeout_cb(int fd, short flags, void *arg); #define PMIX_REPORT_EVENT(e, p, r, f) \ do { \ @@ -246,8 +253,11 @@ ch->info = info; \ ch->ninfo = ninfo - 2; \ /* reset the timer */ \ - pmix_event_del(&ch->ev); \ + if (ch->timer_active) { \ + pmix_event_del(&ch->ev); \ + } \ PMIX_POST_OBJECT(ch); \ + ch->timer_active = true; \ pmix_event_add(&ch->ev, &pmix_globals.event_window); \ } \ } while(0) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/event/pmix_event_notification.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/event/pmix_event_notification.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/event/pmix_event_notification.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/event/pmix_event_notification.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,25 +1,26 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2017-2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. * + * Copyright (c) 2021 Nanook Consulting. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow * * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include -#include -#include +#include "include/pmix.h" +#include "include/pmix_common.h" +#include "include/pmix_server.h" #include "src/threads/threads.h" #include "src/util/error.h" +#include "src/util/name_fns.h" #include "src/util/output.h" #include "src/mca/bfrops/bfrops.h" @@ -32,6 +33,10 @@ pmix_data_range_t range, const pmix_info_t info[], size_t ninfo, pmix_op_cbfunc_t cbfunc, void *cbdata); +static void progress_local_event_hdlr(pmix_status_t status, + pmix_info_t *results, size_t nresults, + pmix_op_cbfunc_t cbfunc, void *thiscbdata, + void *notification_cbdata); /* if we are a client, we call this function to notify the server of * an event. If we are a server, our host RM will call this function @@ -71,7 +76,7 @@ } /* if we aren't connected, don't attempt to send */ - if (!pmix_globals.connected) { + if (!pmix_globals.connected && PMIX_RANGE_PROC_LOCAL != range) { PMIX_RELEASE_THREAD(&pmix_global_lock); return PMIX_ERR_UNREACH; } @@ -93,6 +98,7 @@ static void notify_event_cbfunc(struct pmix_peer_t *pr, pmix_ptl_hdr_t *hdr, pmix_buffer_t *buf, void *cbdata) { + (void)hdr; pmix_status_t rc, ret; int32_t cnt = 1; pmix_cb_t *cb = (pmix_cb_t*)cbdata; @@ -110,7 +116,7 @@ PMIX_RELEASE(cb); } -static pmix_status_t notify_event_cache(pmix_notify_caddy_t *cd) +pmix_status_t pmix_notify_event_cache(pmix_notify_caddy_t *cd) { pmix_status_t rc; int j; @@ -219,8 +225,12 @@ /* setup for our own local callbacks */ chain = PMIX_NEW(pmix_event_chain_t); chain->status = status; - pmix_strncpy(chain->source.nspace, pmix_globals.myid.nspace, PMIX_MAX_NSLEN); - chain->source.rank = pmix_globals.myid.rank; + chain->range = range; + if (NULL == source) { + PMIX_LOAD_PROCID(&chain->source, pmix_globals.myid.nspace, pmix_globals.myid.rank); + } else { + PMIX_LOAD_PROCID(&chain->source, source->nspace, source->rank); + } /* we always leave space for event hdlr name and a callback object */ chain->nallocated = ninfo + 2; PMIX_INFO_CREATE(chain->info, chain->nallocated); @@ -231,14 +241,8 @@ * ourselves should someone later register for it */ cd = PMIX_NEW(pmix_notify_caddy_t); cd->status = status; - if (NULL == source) { - pmix_strncpy(cd->source.nspace, "UNDEF", PMIX_MAX_NSLEN); - cd->source.rank = PMIX_RANK_UNDEF; - } else { - pmix_strncpy(cd->source.nspace, source->nspace, PMIX_MAX_NSLEN); - cd->source.rank = source->rank; - } - cd->range = range; + PMIX_LOAD_PROCID(&cd->source, chain->source.nspace, chain->source.rank); + cd->range = chain->range; if (0 < chain->ninfo) { cd->ninfo = chain->ninfo; PMIX_INFO_CREATE(cd->info, cd->ninfo); @@ -264,12 +268,13 @@ memcpy(cd->affected, chain->affected, cd->naffected * sizeof(pmix_proc_t)); } /* cache it */ - rc = notify_event_cache(cd); + rc = pmix_notify_event_cache(cd); if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); PMIX_RELEASE(cd); goto cleanup; } + chain->cached = true; if (PMIX_RANGE_PROC_LOCAL != range && NULL != msg) { /* create a callback object as we need to pass it to the @@ -313,19 +318,17 @@ } -static void progress_local_event_hdlr(pmix_status_t status, - pmix_info_t *results, size_t nresults, - pmix_op_cbfunc_t cbfunc, void *thiscbdata, - void *notification_cbdata) +static void cycle_events(int sd, short args, void *cbdata) { - /* this may be in the host's thread, so we need to threadshift it - * before accessing our internal data */ - - pmix_event_chain_t *chain = (pmix_event_chain_t*)notification_cbdata; + pmix_event_chain_t *chain = (pmix_event_chain_t*)cbdata; size_t n, nsave, cnt; - pmix_info_t *newinfo; pmix_list_item_t *item; pmix_event_hdlr_t *nxt; + pmix_info_t *newinfo; + + pmix_output_verbose(2, pmix_client_globals.event_output, + "%s progressing local event", + PMIX_NAME_PRINT(&pmix_globals.myid)); /* aggregate the results per RFC0018 - first search the * prior chained results to see if any keys have been NULL'd @@ -341,7 +344,7 @@ * the array to make space */ /* add in any new results plus space for the returned status */ - nsave += nresults + 1; + nsave += chain->ninterim + 1; /* create the new space */ PMIX_INFO_CREATE(newinfo, nsave); /* transfer over the prior data */ @@ -360,11 +363,11 @@ pmix_strncpy(newinfo[cnt].key, "UNKNOWN", PMIX_MAX_KEYLEN); } newinfo[cnt].value.type = PMIX_STATUS; - newinfo[cnt].value.data.status = status; + newinfo[cnt].value.data.status = chain->status; ++cnt; /* transfer across the new results */ - for (n=0; n < nresults; n++) { - PMIX_INFO_XFER(&newinfo[cnt], &results[n]); + for (n=0; n < chain->ninterim; n++) { + PMIX_INFO_XFER(&newinfo[cnt], &chain->interim[n]); ++cnt; } /* release the prior results */ @@ -378,14 +381,27 @@ chain->ninfo = chain->nallocated - 2; PMIX_INFO_DESTRUCT(&chain->info[chain->nallocated-2]); PMIX_INFO_DESTRUCT(&chain->info[chain->nallocated-1]); - + // call their interim cbfunc + if (NULL != chain->opcbfunc) { + chain->opcbfunc(PMIX_SUCCESS, chain->cbdata); + } + /* if the caller indicates that the chain is completed, * or we completed the "last" event */ - if (PMIX_EVENT_ACTION_COMPLETE == status || chain->endchain) { - goto complete; + if (PMIX_EVENT_ACTION_COMPLETE == chain->status || chain->endchain) { + if (PMIX_EVENT_ACTION_COMPLETE == chain->status) { + chain->status = PMIX_SUCCESS; + } + /* we still have to call their final callback */ + if (NULL != chain->final_cbfunc) { + chain->final_cbfunc(chain->status, chain->final_cbdata); + } + /* maintain acctng */ + PMIX_RELEASE(chain); + return; } - item = NULL; + item = NULL; /* see if we need to continue, starting with the single code events */ if (1 == chain->evhdlr->ncodes) { /* the last handler was for a single code - see if there are @@ -587,18 +603,31 @@ } } - complete: - /* we still have to call their final callback */ + /* if we get here, there was nothing more to do, but + * we still have to call their final callback */ if (NULL != chain->final_cbfunc) { - chain->final_cbfunc(PMIX_SUCCESS, chain->final_cbdata); + chain->final_cbfunc(chain->status, chain->final_cbdata); return; } /* maintain acctng */ PMIX_RELEASE(chain); - /* let the caller know that we are done with their callback */ - if (NULL != cbfunc) { - cbfunc(PMIX_SUCCESS, thiscbdata); - } +} + +static void progress_local_event_hdlr(pmix_status_t status, + pmix_info_t *results, size_t nresults, + pmix_op_cbfunc_t cbfunc, void *thiscbdata, + void *notification_cbdata) +{ + /* this may be in the host's thread, so we need to threadshift it + * before accessing our internal data */ + + pmix_event_chain_t *chain = (pmix_event_chain_t*)notification_cbdata; + + chain->interim = results; + chain->ninterim = nresults; + chain->opcbfunc = cbfunc; + chain->cbdata = thiscbdata; + PMIX_THREADSHIFT(chain, cycle_events); } /* given notification of an event, cycle thru our list of @@ -620,8 +649,8 @@ bool found; pmix_output_verbose(2, pmix_client_globals.event_output, - "%s:%d invoke_local_event_hdlr for status %s", - pmix_globals.myid.nspace, pmix_globals.myid.rank, + "%s invoke_local_event_hdlr for status %s", + PMIX_NAME_PRINT(&pmix_globals.myid), PMIx_Error_string(chain->status)); /* sanity check */ @@ -629,6 +658,9 @@ /* should never happen as space must always be * reserved for handler name and callback object*/ rc = PMIX_ERR_BAD_PARAM; + pmix_output_verbose(8, pmix_client_globals.event_output, + "%s %s:%d", PMIX_NAME_PRINT(&pmix_globals.myid), + __FILE__, __LINE__); goto complete; } @@ -636,15 +668,25 @@ if (NULL != chain->targets) { found = false; for (i=0; i < chain->ntargets; i++) { + pmix_output_verbose(8, pmix_client_globals.event_output, + "%s CHECKING TARGET %s", + PMIX_NAME_PRINT(&pmix_globals.myid), + PMIX_NAME_PRINT(&chain->targets[i])); if (PMIX_CHECK_PROCID(&chain->targets[i], &pmix_globals.myid)) { found = true; break; } } if (!found) { + pmix_output_verbose(8, pmix_client_globals.event_output, + "%s %s:%d", PMIX_NAME_PRINT(&pmix_globals.myid), + __FILE__, __LINE__); goto complete; } } + pmix_output_verbose(8, pmix_client_globals.event_output, + "%s %s:%d", PMIX_NAME_PRINT(&pmix_globals.myid), + __FILE__, __LINE__); /* if we registered a "first" handler, and it fits the given range, * then invoke it first */ @@ -656,6 +698,9 @@ chain->affected, chain->naffected)) { /* invoke the handler */ chain->evhdlr = pmix_globals.events.first; + pmix_output_verbose(8, pmix_client_globals.event_output, + "%s %s:%d", PMIX_NAME_PRINT(&pmix_globals.myid), + __FILE__, __LINE__); goto invk; } else if (NULL != pmix_globals.events.first->codes) { /* need to check if this code is included in the array */ @@ -671,6 +716,9 @@ if (found && pmix_notify_check_range(&pmix_globals.events.first->rng, &chain->source)) { /* invoke the handler */ chain->evhdlr = pmix_globals.events.first; + pmix_output_verbose(8, pmix_client_globals.event_output, + "%s %s:%d", PMIX_NAME_PRINT(&pmix_globals.myid), + __FILE__, __LINE__); goto invk; } } else { @@ -678,11 +726,17 @@ if (pmix_notify_check_range(&pmix_globals.events.first->rng, &chain->source)) { /* invoke the handler */ chain->evhdlr = pmix_globals.events.first; + pmix_output_verbose(8, pmix_client_globals.event_output, + "%s %s:%d", PMIX_NAME_PRINT(&pmix_globals.myid), + __FILE__, __LINE__); goto invk; } } /* get here if there is no match, so fall thru */ } + pmix_output_verbose(8, pmix_client_globals.event_output, + "%s %s:%d", PMIX_NAME_PRINT(&pmix_globals.myid), + __FILE__, __LINE__); /* cycle thru the single-event registrations first */ PMIX_LIST_FOREACH(evhdlr, &pmix_globals.events.single_events, pmix_event_hdlr_t) { @@ -692,6 +746,9 @@ chain->affected, chain->naffected)) { /* invoke the handler */ chain->evhdlr = evhdlr; + pmix_output_verbose(8, pmix_client_globals.event_output, + "%s %s:%d", PMIX_NAME_PRINT(&pmix_globals.myid), + __FILE__, __LINE__); goto invk; } } @@ -707,11 +764,17 @@ chain->affected, chain->naffected)) { /* invoke the handler */ chain->evhdlr = evhdlr; + pmix_output_verbose(8, pmix_client_globals.event_output, + "%s %s:%d", PMIX_NAME_PRINT(&pmix_globals.myid), + __FILE__, __LINE__); goto invk; } } } } + pmix_output_verbose(8, pmix_client_globals.event_output, + "%s %s:%d", PMIX_NAME_PRINT(&pmix_globals.myid), + __FILE__, __LINE__); /* if they didn't want it to go to a default handler, then ignore them */ if (!chain->nondefault) { @@ -722,6 +785,9 @@ chain->affected, chain->naffected)) { /* invoke the handler */ chain->evhdlr = evhdlr; + pmix_output_verbose(8, pmix_client_globals.event_output, + "%s %s:%d", PMIX_NAME_PRINT(&pmix_globals.myid), + __FILE__, __LINE__); goto invk; } } @@ -737,23 +803,37 @@ if (1 == pmix_globals.events.last->ncodes && pmix_globals.events.last->codes[0] == chain->status) { chain->evhdlr = pmix_globals.events.last; + pmix_output_verbose(8, pmix_client_globals.event_output, + "%s %s:%d", PMIX_NAME_PRINT(&pmix_globals.myid), + __FILE__, __LINE__); goto invk; } else if (NULL != pmix_globals.events.last->codes) { /* need to check if this code is included in the array */ for (i=0; i < pmix_globals.events.last->ncodes; i++) { if (pmix_globals.events.last->codes[i] == chain->status) { chain->evhdlr = pmix_globals.events.last; + pmix_output_verbose(8, pmix_client_globals.event_output, + "%s %s:%d", PMIX_NAME_PRINT(&pmix_globals.myid), + __FILE__, __LINE__); goto invk; } } } else { /* gets run for all codes */ chain->evhdlr = pmix_globals.events.last; + pmix_output_verbose(8, pmix_client_globals.event_output, + "%s %s:%d", PMIX_NAME_PRINT(&pmix_globals.myid), + __FILE__, __LINE__); goto invk; } } + pmix_output_verbose(8, pmix_client_globals.event_output, + "%s %s:%d", PMIX_NAME_PRINT(&pmix_globals.myid), + + __FILE__, __LINE__); /* if we got here, then nothing was found */ + rc = PMIX_ERR_NOT_FOUND; complete: /* we still have to call their final callback */ @@ -766,6 +846,9 @@ invk: + pmix_output_verbose(8, pmix_client_globals.event_output, + "%s %s:%d", PMIX_NAME_PRINT(&pmix_globals.myid), + __FILE__, __LINE__); /* start with the chain holding only the given info */ chain->ninfo = chain->nallocated - 2; @@ -806,6 +889,8 @@ static void _notify_client_event(int sd, short args, void *cbdata) { + (void)sd; + (void)args; pmix_notify_caddy_t *cd = (pmix_notify_caddy_t*)cbdata; pmix_regevents_info_t *reginfoptr; pmix_peer_events_info_t *pr; @@ -849,7 +934,7 @@ * the message until all local procs have received it, or it ages to * the point where it gets pushed out by more recent events */ PMIX_RETAIN(cd); - rc = notify_event_cache(cd); + rc = pmix_notify_event_cache(cd); if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); } @@ -859,8 +944,10 @@ * against our registrations */ chain = PMIX_NEW(pmix_event_chain_t); chain->status = cd->status; - pmix_strncpy(chain->source.nspace, cd->source.nspace, PMIX_MAX_NSLEN); - chain->source.rank = cd->source.rank; + if (holdcd) { + chain->cached = true; + } + PMIX_LOAD_PROCID(&chain->source, cd->source.nspace, cd->source.rank); /* we always leave space for a callback object and * the evhandler name. */ chain->nallocated = cd->ninfo + 2; @@ -1095,15 +1182,6 @@ "pmix_server: notify client of event %s", PMIx_Error_string(status)); - if (NULL != info) { - for (n=0; n < ninfo; n++) { - if (PMIX_CHECK_KEY(&info[n], PMIX_EVENT_PROXY) && - PMIX_CHECK_PROCID(info[n].value.data.proc, &pmix_globals.myid)) { - return PMIX_OPERATION_SUCCEEDED; - } - } - } - cd = PMIX_NEW(pmix_notify_caddy_t); cd->status = status; if (NULL == source) { @@ -1212,6 +1290,8 @@ void pmix_event_timeout_cb(int fd, short flags, void *arg) { + (void)fd; + (void)flags; pmix_event_chain_t *ch = (pmix_event_chain_t*)arg; /* need to acquire the object from its originating thread */ @@ -1222,6 +1302,9 @@ /* remove it from the list */ pmix_list_remove_item(&pmix_globals.cached_events, &ch->super); + /* protect the chain */ + PMIX_RETAIN(ch); + /* process this event thru the regular channels */ if (PMIX_PEER_IS_SERVER(pmix_globals.mypeer) && !PMIX_PEER_IS_LAUNCHER(pmix_globals.mypeer)) { @@ -1374,6 +1457,7 @@ p->source.rank = PMIX_RANK_UNDEF; p->nondefault = false; p->endchain = false; + p->cached = false; p->targets = NULL; p->ntargets = 0; p->range = PMIX_RANGE_UNDEF; @@ -1384,7 +1468,11 @@ p->nallocated = 0; p->results = NULL; p->nresults = 0; + p->interim = NULL; + p->ninterim = 0; p->evhdlr = NULL; + p->opcbfunc = NULL; + p->cbdata = NULL; p->final_cbfunc = NULL; p->final_cbdata = NULL; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/event/pmix_event_registration.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/event/pmix_event_registration.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/event/pmix_event_registration.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/event/pmix_event_registration.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,20 +1,20 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2017-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2021 Nanook Consulting. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow * * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include -#include -#include +#include "include/pmix.h" +#include "include/pmix_common.h" +#include "include/pmix_server.h" #include "src/threads/threads.h" #include "src/util/error.h" @@ -30,6 +30,8 @@ pmix_object_t super; volatile bool active; pmix_event_t ev; + pmix_lock_t lock; + pmix_status_t status; size_t index; bool firstoverall; bool enviro; @@ -48,6 +50,7 @@ } pmix_rshift_caddy_t; static void rscon(pmix_rshift_caddy_t *p) { + PMIX_CONSTRUCT_LOCK(&p->lock); p->firstoverall = false; p->enviro = false; p->list = NULL; @@ -65,6 +68,7 @@ } static void rsdes(pmix_rshift_caddy_t *p) { + PMIX_DESTRUCT_LOCK(&p->lock); if (0 < p->ncodes) { free(p->codes); } @@ -118,12 +122,12 @@ } /* call the callback */ - if (NULL != cd && NULL != cd->evregcbfn) { - cd->evregcbfn(ret, index, cd->cbdata); - } if (NULL != cd) { /* check this event against anything in our cache */ check_cached_events(cd); + if (NULL != cd->evregcbfn) { + cd->evregcbfn(ret, index, cd->cbdata); + } } /* release any info we brought along as they are @@ -410,7 +414,7 @@ /* we always leave space for event hdlr name and a callback object */ chain->nallocated = ncd->ninfo + 2; PMIX_INFO_CREATE(chain->info, chain->nallocated); - if (0 < cd->ninfo) { + if (0 < ncd->ninfo) { chain->ninfo = ncd->ninfo; /* need to copy the info */ for (n=0; n < ncd->ninfo; n++) { @@ -516,8 +520,22 @@ } else if (0 == strncmp(cd->info[n].key, PMIX_RANGE, PMIX_MAX_KEYLEN)) { range = cd->info[n].value.data.range; } else if (0 == strncmp(cd->info[n].key, PMIX_EVENT_CUSTOM_RANGE, PMIX_MAX_KEYLEN)) { - parray = (pmix_proc_t*)cd->info[n].value.data.darray->array; - nprocs = cd->info[n].value.data.darray->size; + /* provides an array of pmix_proc_t identifying the procs + * that are to receive this notification, or a single pmix_proc_t */ + if (PMIX_DATA_ARRAY == cd->info[n].value.type && + NULL != cd->info[n].value.data.darray && + NULL != cd->info[n].value.data.darray->array) { + parray = (pmix_proc_t*)cd->info[n].value.data.darray->array; + nprocs = cd->info[n].value.data.darray->size; + } else if (PMIX_PROC == cd->info[n].value.type && + NULL != cd->info[n].value.data.proc) { + parray = cd->info[n].value.data.proc; + nprocs = 1; + } else { + /* this is an error */ + rc = PMIX_ERR_BAD_PARAM; + goto ack; + } } else if (0 == strncmp(cd->info[n].key, PMIX_EVENT_AFFECTED_PROC, PMIX_MAX_KEYLEN)) { cd->affected = cd->info[n].value.data.proc; cd->naffected = 1; @@ -617,28 +635,7 @@ cd->list = NULL; cd->hdlr = evhdlr; cd->firstoverall = firstoverall; - rc = _add_hdlr(cd, &xfer); - PMIX_LIST_DESTRUCT(&xfer); - if (PMIX_SUCCESS != rc && - PMIX_ERR_WOULD_BLOCK != rc) { - /* unable to register */ - --pmix_globals.events.nhdlrs; - rc = PMIX_ERR_EVENT_REGISTRATION; - index = UINT_MAX; - if (firstoverall) { - pmix_globals.events.first = NULL; - } else { - pmix_globals.events.last = NULL; - } - PMIX_RELEASE(evhdlr); - goto ack; - } - if (PMIX_ERR_WOULD_BLOCK == rc) { - /* the callback will provide our response */ - PMIX_RELEASE(cd); - return; - } - goto ack; + goto addtolist; } /* get here if this isn't an overall first or last event - start @@ -705,6 +702,109 @@ cd->index = index; cd->hdlr = evhdlr; cd->firstoverall = false; + + addtolist: + if (NULL != cd->list) { + /* now add this event to the appropriate list - if the registration + * subsequently fails, it will be removed */ + + /* if the list is empty, or no location was specified, just put this on it */ + if (0 == pmix_list_get_size(cd->list) || + PMIX_EVENT_ORDER_NONE == location) { + pmix_list_prepend(cd->list, &evhdlr->super); + } else if (PMIX_EVENT_ORDER_FIRST == location) { + /* see if the first handler on the list was also declared as "first" */ + ev = (pmix_event_hdlr_t*)pmix_list_get_first(cd->list); + if (PMIX_EVENT_ORDER_FIRST == ev->precedence) { + /* this is an error */ + --pmix_globals.events.nhdlrs; + rc = PMIX_ERR_EVENT_REGISTRATION; + index = UINT_MAX; + PMIX_RELEASE(evhdlr); + goto ack; + } + /* prepend it to the list */ + pmix_list_prepend(cd->list, &evhdlr->super); + } else if (PMIX_EVENT_ORDER_LAST == location) { + /* see if the last handler on the list was also declared as "last" */ + ev = (pmix_event_hdlr_t*)pmix_list_get_last(cd->list); + if (PMIX_EVENT_ORDER_LAST == ev->precedence) { + /* this is an error */ + --pmix_globals.events.nhdlrs; + rc = PMIX_ERR_EVENT_REGISTRATION; + index = UINT_MAX; + PMIX_RELEASE(evhdlr); + goto ack; + } + /* append it to the list */ + pmix_list_append(cd->list, &evhdlr->super); + } else if (PMIX_EVENT_ORDER_PREPEND == location) { + /* we know the list isn't empty - check the first element to see if + * it is designated to be "first". If so, then we need to put this + * right after it */ + ev = (pmix_event_hdlr_t*)pmix_list_get_first(cd->list); + if (PMIX_EVENT_ORDER_FIRST == ev->precedence) { + ev = (pmix_event_hdlr_t*)pmix_list_get_next(&ev->super); + if (NULL != ev) { + pmix_list_insert_pos(cd->list, &ev->super, &evhdlr->super); + } else { + /* we are at the end of the list */ + pmix_list_append(cd->list, &evhdlr->super); + } + } else { + pmix_list_prepend(cd->list, &evhdlr->super); + } + } else if (PMIX_EVENT_ORDER_APPEND == location) { + /* we know the list isn't empty - check the last element to see if + * it is designated to be "last". If so, then we need to put this + * right before it */ + ev = (pmix_event_hdlr_t*)pmix_list_get_last(cd->list); + if (PMIX_EVENT_ORDER_LAST == ev->precedence) { + pmix_list_insert_pos(cd->list, &ev->super, &evhdlr->super); + } else { + pmix_list_append(cd->list, &evhdlr->super); + } + } else { + /* find the named event */ + found = false; + PMIX_LIST_FOREACH(ev, cd->list, pmix_event_hdlr_t) { + if (NULL == ev->name) { + continue; + } + if (0 == strcmp(ev->name, name)) { + if (PMIX_EVENT_ORDER_BEFORE == location) { + /* put it before this handler */ + pmix_list_insert_pos(cd->list, &ev->super, &evhdlr->super); + } else { + /* put it after this handler */ + ev = (pmix_event_hdlr_t*)pmix_list_get_next(&ev->super); + if (NULL != ev) { + pmix_list_insert_pos(cd->list, &ev->super, &evhdlr->super); + } else { + /* we are at the end of the list */ + pmix_list_append(cd->list, &evhdlr->super); + } + } + found = true; + break; + } + } + /* if the handler wasn't found, then we return an error. At some + * future time, we may change this behavior and cache this handler + * until the reference one has been registered. However, this could + * turn out to be a laborious search procedure as the reference + * event handler may in turn be dependent on another handler, etc. */ + if (!found) { + /* this is an error */ + --pmix_globals.events.nhdlrs; + rc = PMIX_ERR_EVENT_REGISTRATION; + index = UINT_MAX; + PMIX_RELEASE(evhdlr); + goto ack; + } + } + } + /* tell the server about it, if necessary - any actions * will be deferred until after this event completes */ if (PMIX_RANGE_PROC_LOCAL == range) { @@ -719,106 +819,14 @@ --pmix_globals.events.nhdlrs; rc = PMIX_ERR_EVENT_REGISTRATION; index = UINT_MAX; - PMIX_RELEASE(evhdlr); - goto ack; - } - /* now add this event to the appropriate list - if the registration - * subsequently fails, it will be removed */ - - /* if the list is empty, or no location was specified, just put this on it */ - if (0 == pmix_list_get_size(cd->list) || - PMIX_EVENT_ORDER_NONE == location) { - pmix_list_prepend(cd->list, &evhdlr->super); - } else if (PMIX_EVENT_ORDER_FIRST == location) { - /* see if the first handler on the list was also declared as "first" */ - ev = (pmix_event_hdlr_t*)pmix_list_get_first(cd->list); - if (PMIX_EVENT_ORDER_FIRST == ev->precedence) { - /* this is an error */ - --pmix_globals.events.nhdlrs; - rc = PMIX_ERR_EVENT_REGISTRATION; - index = UINT_MAX; - PMIX_RELEASE(evhdlr); - goto ack; - } - /* prepend it to the list */ - pmix_list_prepend(cd->list, &evhdlr->super); - } else if (PMIX_EVENT_ORDER_LAST == location) { - /* see if the last handler on the list was also declared as "last" */ - ev = (pmix_event_hdlr_t*)pmix_list_get_last(cd->list); - if (PMIX_EVENT_ORDER_LAST == ev->precedence) { - /* this is an error */ - --pmix_globals.events.nhdlrs; - rc = PMIX_ERR_EVENT_REGISTRATION; - index = UINT_MAX; - PMIX_RELEASE(evhdlr); - goto ack; - } - /* append it to the list */ - pmix_list_append(cd->list, &evhdlr->super); - } else if (PMIX_EVENT_ORDER_PREPEND == location) { - /* we know the list isn't empty - check the first element to see if - * it is designated to be "first". If so, then we need to put this - * right after it */ - ev = (pmix_event_hdlr_t*)pmix_list_get_first(cd->list); - if (PMIX_EVENT_ORDER_FIRST == ev->precedence) { - ev = (pmix_event_hdlr_t*)pmix_list_get_next(&ev->super); - if (NULL != ev) { - pmix_list_insert_pos(cd->list, &ev->super, &evhdlr->super); - } else { - /* we are at the end of the list */ - pmix_list_append(cd->list, &evhdlr->super); - } - } else { - pmix_list_prepend(cd->list, &evhdlr->super); - } - } else if (PMIX_EVENT_ORDER_APPEND == location) { - /* we know the list isn't empty - check the last element to see if - * it is designated to be "last". If so, then we need to put this - * right before it */ - ev = (pmix_event_hdlr_t*)pmix_list_get_last(cd->list); - if (PMIX_EVENT_ORDER_LAST == ev->precedence) { - pmix_list_insert_pos(cd->list, &ev->super, &evhdlr->super); - } else { - pmix_list_append(cd->list, &evhdlr->super); - } - } else { - /* find the named event */ - found = false; - PMIX_LIST_FOREACH(ev, cd->list, pmix_event_hdlr_t) { - if (NULL == ev->name) { - continue; - } - if (0 == strcmp(ev->name, name)) { - if (PMIX_EVENT_ORDER_BEFORE == location) { - /* put it before this handler */ - pmix_list_insert_pos(cd->list, &ev->super, &evhdlr->super); - } else { - /* put it after this handler */ - ev = (pmix_event_hdlr_t*)pmix_list_get_next(&ev->super); - if (NULL != ev) { - pmix_list_insert_pos(cd->list, &ev->super, &evhdlr->super); - } else { - /* we are at the end of the list */ - pmix_list_append(cd->list, &evhdlr->super); - } - } - found = true; - break; - } - } - /* if the handler wasn't found, then we return an error. At some - * future time, we may change this behavior and cache this handler - * until the reference one has been registered. However, this could - * turn out to be a laborious search procedure as the reference - * event handler may in turn be dependent on another handler, etc. */ - if (!found) { - /* this is an error */ - --pmix_globals.events.nhdlrs; - rc = PMIX_ERR_EVENT_REGISTRATION; - index = UINT_MAX; - PMIX_RELEASE(evhdlr); - goto ack; + if (firstoverall) { + pmix_globals.events.first = NULL; + } else if (lastoverall) { + pmix_globals.events.last = NULL; + } else if (NULL != cd->list) { + pmix_list_remove_item(cd->list, &evhdlr->super); } + PMIX_RELEASE(evhdlr); } if (PMIX_ERR_WOULD_BLOCK == rc) { /* the callback will provide our response */ @@ -827,12 +835,6 @@ } ack: - /* acknowledge the registration so the caller can release - * their data AND record the event handler index */ - if (NULL != cd->evregcbfn) { - cd->evregcbfn(rc, index, cd->cbdata); - } - /* check if any matching notifications have been locally cached */ check_cached_events(cd); if (NULL != cd->codes) { @@ -840,8 +842,27 @@ cd->codes = NULL; } - /* all done */ - PMIX_RELEASE(cd); + /* acknowledge the registration so the caller can release + * their data AND record the event handler index */ + if (NULL != cd->evregcbfn) { + cd->evregcbfn(rc, index, cd->cbdata); + PMIX_RELEASE(cd); + } +} + +static void mycbfn(pmix_status_t status, + size_t refid, + void *cbdata) +{ + pmix_rshift_caddy_t *cd = (pmix_rshift_caddy_t*)cbdata; + + PMIX_ACQUIRE_OBJECT(cd); + if (PMIX_SUCCESS == status) { + cd->status = refid; + } else { + cd->status = status; + } + PMIX_WAKEUP_THREAD(&cd->lock); } PMIX_EXPORT void PMIx_Register_event_handler(pmix_status_t codes[], size_t ncodes, @@ -851,14 +872,13 @@ void *cbdata) { pmix_rshift_caddy_t *cd; - size_t n; PMIX_ACQUIRE_THREAD(&pmix_global_lock); if (pmix_globals.init_cntr <= 0) { PMIX_RELEASE_THREAD(&pmix_global_lock); if (NULL != cbfunc) { - cbfunc(PMIX_ERR_INIT, 0, cbdata); + cbfunc(PMIX_ERR_INIT, SIZE_MAX, cbdata); } return; } @@ -880,21 +900,36 @@ } return; } - for (n=0; n < ncodes; n++) { - cd->codes[n] = codes[n]; - } + memcpy(cd->codes, codes, ncodes * sizeof(pmix_status_t)); } cd->ncodes = ncodes; cd->info = info; cd->ninfo = ninfo; cd->evhdlr = event_hdlr; - cd->evregcbfn = cbfunc; - cd->cbdata = cbdata; - pmix_output_verbose(2, pmix_client_globals.event_output, - "pmix_register_event_hdlr shifting to progress thread"); + if (NULL != cbfunc) { + pmix_output_verbose(2, pmix_client_globals.event_output, + "pmix_register_event_hdlr shifting to progress thread"); - PMIX_THREADSHIFT(cd, reg_event_hdlr); + cd->evregcbfn = cbfunc; + cd->cbdata = cbdata; + PMIX_THREADSHIFT(cd, reg_event_hdlr); + } else { + cd->evregcbfn = mycbfn; + cd->cbdata = cd; + PMIX_RETAIN(cd); + reg_event_hdlr(0, 0, (void*)cd); + PMIX_WAIT_THREAD(&cd->lock); + if (NULL != cbfunc) { + if (0 > cd->status) { + cbfunc(cd->status, SIZE_MAX, cbdata); + } else { + cbfunc(PMIX_SUCCESS, cd->status, cbdata); + } + } + PMIX_RELEASE(cd); + } + return; } static void dereg_event_hdlr(int sd, short args, void *cbdata) @@ -1085,6 +1120,15 @@ PMIX_RELEASE(cd); } +static void myopcb(pmix_status_t status, void *cbdata) +{ + pmix_shift_caddy_t *cd = (pmix_shift_caddy_t*)cbdata; + + PMIX_ACQUIRE_OBJECT(cd); + cd->status = status; + PMIX_WAKEUP_THREAD(&cd->lock); +} + PMIX_EXPORT void PMIx_Deregister_event_handler(size_t event_hdlr_ref, pmix_op_cbfunc_t cbfunc, void *cbdata) @@ -1103,11 +1147,19 @@ /* need to thread shift this request */ cd = PMIX_NEW(pmix_shift_caddy_t); - cd->cbfunc.opcbfn = cbfunc; - cd->cbdata = cbdata; + if (NULL == cbfunc) { + cd->cbfunc.opcbfn = myopcb; + PMIX_RETAIN(cd); + cd->cbdata = cd; + } else { + cd->cbfunc.opcbfn = cbfunc; + cd->cbdata = cbdata; + } cd->ref = event_hdlr_ref; pmix_output_verbose(2, pmix_client_globals.event_output, "pmix_deregister_event_hdlr shifting to progress thread"); PMIX_THREADSHIFT(cd, dereg_event_hdlr); + + return; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/hwloc/hwloc.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/hwloc/hwloc.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/hwloc/hwloc.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/hwloc/hwloc.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2017 Cisco Systems, Inc. All rights reserved * Copyright (c) 2017 Inria. All rights reserved. * $COPYRIGHT$ @@ -9,8 +9,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/hwloc/hwloc-internal.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/hwloc/hwloc-internal.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/hwloc/hwloc-internal.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/hwloc/hwloc-internal.h 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. * - * Copyright (c) 2016-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -18,8 +18,8 @@ #define PMIX_HWLOC_INTERNAL_H -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #if PMIX_HAVE_HWLOC #include PMIX_HWLOC_HEADER @@ -29,7 +29,7 @@ #define HWLOC_OBJ_PACKAGE HWLOC_OBJ_SOCKET #endif -extern hwloc_topology_t pmix_hwloc_topology; +PMIX_EXPORT extern hwloc_topology_t pmix_hwloc_topology; #endif BEGIN_C_DECLS diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/include/frameworks.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/include/frameworks.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/include/frameworks.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/include/frameworks.h 2022-05-29 09:51:40.000000000 +0000 @@ -4,10 +4,11 @@ #ifndef PMIX_FRAMEWORKS_H #define PMIX_FRAMEWORKS_H -#include +#include "src/mca/base/pmix_mca_base_framework.h" extern pmix_mca_base_framework_t pmix_bfrops_base_framework; extern pmix_mca_base_framework_t pmix_gds_base_framework; +extern pmix_mca_base_framework_t pmix_pcompress_base_framework; extern pmix_mca_base_framework_t pmix_pdl_base_framework; extern pmix_mca_base_framework_t pmix_pif_base_framework; extern pmix_mca_base_framework_t pmix_pinstalldirs_base_framework; @@ -17,11 +18,13 @@ extern pmix_mca_base_framework_t pmix_psec_base_framework; extern pmix_mca_base_framework_t pmix_psensor_base_framework; extern pmix_mca_base_framework_t pmix_pshmem_base_framework; +extern pmix_mca_base_framework_t pmix_psquash_base_framework; extern pmix_mca_base_framework_t pmix_ptl_base_framework; static pmix_mca_base_framework_t *pmix_frameworks[] = { &pmix_bfrops_base_framework, &pmix_gds_base_framework, + &pmix_pcompress_base_framework, &pmix_pdl_base_framework, &pmix_pif_base_framework, &pmix_pinstalldirs_base_framework, @@ -31,6 +34,7 @@ &pmix_psec_base_framework, &pmix_psensor_base_framework, &pmix_pshmem_base_framework, + &pmix_psquash_base_framework, &pmix_ptl_base_framework, NULL }; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/include/Makefile.include openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/include/Makefile.include --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/include/Makefile.include 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/include/Makefile.include 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. -# Copyright (c) 2013-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2020 Intel, Inc. All rights reserved. # Copyright (c) 2007-2016 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2017 Research Organization for Information Science # and Technology (RIST). All rights reserved. @@ -30,6 +30,9 @@ sources += \ include/pmix_globals.c +nodist_headers += \ + include/pmix_config.h + if ! PMIX_EMBEDDED_MODE headers += \ include/align.h \ @@ -47,6 +50,6 @@ endif ! PMIX_EMBEDDED_MODE if WANT_INSTALL_HEADERS -nodist_headers += \ +nobase_nodist_pmix_HEADERS = \ include/pmix_config.h endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/include/pmix_config_bottom.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/include/pmix_config_bottom.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/include/pmix_config_bottom.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/include/pmix_config_bottom.h 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2009-2011 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2013 Mellanox Technologies, Inc. * All rights reserved. - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. * $COPYRIGHT$ * @@ -359,10 +359,10 @@ including stdint.h */ #define __STDC_LIMIT_MACROS #endif -#include +#include "src/include/pmix_config.h" #include #else -#include +#include "src/include/pmix_stdint.h" #endif /*********************************************************************** diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/include/pmix_config.h.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/include/pmix_config.h.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/include/pmix_config.h.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/include/pmix_config.h.in 2022-05-29 09:51:40.000000000 +0000 @@ -25,7 +25,7 @@ #ifndef PMIX_CONFIG_H #define PMIX_CONFIG_H -#include +#include "src/include/pmix_config_top.h" @@ -70,17 +70,23 @@ /* Define to 1 if you have the header file. */ #undef HAVE_EVENT_H +/* Define to 1 if you have the `execve' function. */ +#undef HAVE_EXECVE + /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H +/* Define to 1 if you have the `fork' function. */ +#undef HAVE_FORK + /* Define to 1 if you have the `getpeereid' function. */ #undef HAVE_GETPEEREID /* Define to 1 if you have the `getpeerucred' function. */ #undef HAVE_GETPEERUCRED -/* Define to 1 if you have the header file. */ -#undef HAVE_GLOB_H +/* Define to 1 if you have the header file. */ +#undef HAVE_GRP_H /* Define to 1 if you have the header file. */ #undef HAVE_HOSTLIB_H @@ -112,8 +118,8 @@ /* Define to 1 if you have the header file. */ #undef HAVE_IOLIB_H -/* Define to 1 if you have the `event' library (-levent). */ -#undef HAVE_LIBEVENT +/* Define to 1 if you have the `event_core' library (-levent_core). */ +#undef HAVE_LIBEVENT_CORE /* Define to 1 if you have the `event_pthreads' library (-levent_pthreads). */ #undef HAVE_LIBEVENT_PTHREADS @@ -121,6 +127,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LIBGEN_H +/* Define to 1 if you have the header file. */ +#undef HAVE_LIBUTIL_H + /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H @@ -151,24 +160,21 @@ /* Define to 1 if you have the header file. */ #undef HAVE_NET_UIO_H -/* Define to 1 if you have the header file. */ -#undef HAVE_OPAMGT_H - /* Define to 1 if you have the `openpty' function. */ #undef HAVE_OPENPTY /* Define to 1 if you have the `posix_fallocate' function. */ #undef HAVE_POSIX_FALLOCATE -/* Define to 1 if you have the header file. */ -#undef HAVE_PSM2_H - /* Define to 1 if the system has the type `ptrdiff_t'. */ #undef HAVE_PTRDIFF_T /* Define to 1 if you have the `ptsname' function. */ #undef HAVE_PTSNAME +/* Define to 1 if you have the header file. */ +#undef HAVE_PTY_H + /* Define to 1 if you have the `setenv' function. */ #undef HAVE_SETENV @@ -229,6 +235,9 @@ /* Define to 1 if you have the `strnlen' function. */ #undef HAVE_STRNLEN +/* Define to 1 if you have the header file. */ +#undef HAVE_STROPTS_H + /* Define to 1 if you have the `strsignal' function. */ #undef HAVE_STRSIGNAL @@ -283,6 +292,12 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_AUXV_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_CDEFS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_FCNTL_H + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_IOCTL_H @@ -325,12 +340,21 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_UN_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_UTSNAME_H + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_WAIT_H /* Define to 1 if you have the `tcgetpgrp' function. */ #undef HAVE_TCGETPGRP +/* Define to 1 if you have the header file. */ +#undef HAVE_TERMIOS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_TERMIO_H + /* Define to 1 if you have the header file. */ #undef HAVE_TIME_H @@ -365,12 +389,21 @@ /* Define to 1 if you have the `usleep' function. */ #undef HAVE_USLEEP +/* Define to 1 if you have the header file. */ +#undef HAVE_UTIL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UTMP_H + /* Define to 1 if you have the `vasprintf' function. */ #undef HAVE_VASPRINTF /* Define to 1 if you have the `vsnprintf' function. */ #undef HAVE_VSNPRINTF +/* Define to 1 if you have the `waitpid' function. */ +#undef HAVE_WAITPID + /* Define to 1 if you have the header file. */ #undef HAVE_ZLIB_H @@ -471,9 +504,6 @@ outside of the assembly header files */ #undef PMIX_ASM_SUPPORT_64BIT -/* Whether 64-bit is supported by the __sync builtin atomics */ -#undef PMIX_ASM_SYNC_HAVE_64BIT - /* Assembly directive for setting text section */ #undef PMIX_ASM_TEXT @@ -558,6 +588,9 @@ /* Whether we should enable thread support within the PMIX code base */ #undef PMIX_ENABLE_MULTI_THREADS +/* Whether user wants PTY support or not */ +#undef PMIX_ENABLE_PTY_SUPPORT + /* Whether we want developer-level timing support or not */ #undef PMIX_ENABLE_TIMING @@ -769,9 +802,6 @@ /* Default value for mca_base_component_show_load_errors MCA variable */ #undef PMIX_SHOW_LOAD_ERRORS_DEFAULT -/* The pmix symbol rename include directive */ -#undef PMIX_SYMBOL_RENAME - /* Whether to use or not */ #undef PMIX_USE_STDBOOL_H @@ -781,9 +811,6 @@ /* Enable per-user config files */ #undef PMIX_WANT_HOME_CONFIG_FILES -/* Whether or not to include OmniPath Fabric Manager support */ -#undef PMIX_WANT_OPAMGT - /* if want pretty-print stack trace feature */ #undef PMIX_WANT_PRETTY_PRINT_STACKTRACE @@ -892,6 +919,6 @@ #endif -#include +#include "src/include/pmix_config_bottom.h" #endif /* PMIX_CONFIG_H */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/include/pmix_globals.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/include/pmix_globals.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/include/pmix_globals.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/include/pmix_globals.c 2022-05-29 09:51:40.000000000 +0000 @@ -6,6 +6,8 @@ * Copyright (c) 2014-2015 Artem Y. Polyakov . * All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. + * Copyright (c) 2019 Mellanox Technologies, Inc. + * All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -15,11 +17,12 @@ /* THIS FILE IS INCLUDED SOLELY TO INSTANTIATE AND INIT/FINALIZE THE GLOBAL CLASSES */ -#include +#include "src/include/pmix_config.h" -#include -#include -#include +#include "include/pmix_common.h" +#include "src/include/types.h" +#include "src/include/pmix_stdint.h" +#include "src/include/pmix_socket_errno.h" #include "src/include/pmix_globals.h" @@ -42,7 +45,7 @@ #include #endif /* HAVE_DIRENT_H */ -#include +#include "include/pmix_common.h" #include "src/mca/bfrops/bfrops_types.h" #include "src/class/pmix_hash_table.h" @@ -232,7 +235,8 @@ static void iofreqcon(pmix_iof_req_t *p) { p->requestor = NULL; - p->refid = 0; + p->local_id = 0; + p->remote_id = 0; p->procs = NULL; p->nprocs = 0; p->channels = PMIX_FWD_NO_CHANNELS; @@ -335,6 +339,26 @@ pmix_list_item_t, NULL, NULL); +static void ifcon(pmix_infolist_t *p) +{ + PMIX_INFO_CONSTRUCT(&p->info); +} +static void ifdes(pmix_infolist_t *p) +{ + PMIX_INFO_DESTRUCT(&p->info); +} +PMIX_EXPORT PMIX_CLASS_INSTANCE(pmix_infolist_t, + pmix_list_item_t, + ifcon, ifdes); + +static void qlcon(pmix_querylist_t *p) +{ + PMIX_QUERY_CONSTRUCT(&p->query); +} +PMIX_EXPORT PMIX_CLASS_INSTANCE(pmix_querylist_t, + pmix_list_item_t, + qlcon, NULL); + static void qcon(pmix_query_caddy_t *p) { PMIX_CONSTRUCT_LOCK(&p->lock); @@ -345,13 +369,15 @@ p->info = NULL; p->ninfo = 0; PMIX_BYTE_OBJECT_CONSTRUCT(&p->bo); + PMIX_CONSTRUCT(&p->results, pmix_list_t); + p->nreplies = 0; + p->nrequests = 0; p->cbfunc = NULL; p->valcbfunc = NULL; p->cbdata = NULL; p->relcbfunc = NULL; p->credcbfunc = NULL; p->validcbfunc = NULL; - PMIX_CONSTRUCT(&p->results, pmix_list_t); } static void qdes(pmix_query_caddy_t *p) { @@ -360,12 +386,52 @@ PMIX_PROC_FREE(p->targets, p->ntargets); PMIX_INFO_FREE(p->info, p->ninfo); PMIX_LIST_DESTRUCT(&p->results); - PMIX_QUERY_FREE(p->queries, p->nqueries); } PMIX_EXPORT PMIX_CLASS_INSTANCE(pmix_query_caddy_t, pmix_object_t, qcon, qdes); +static void ncon(pmix_notify_caddy_t *p) +{ + PMIX_CONSTRUCT_LOCK(&p->lock); +#if defined(__linux__) && PMIX_HAVE_CLOCK_GETTIME + struct timespec tp; + (void) clock_gettime(CLOCK_MONOTONIC, &tp); + p->ts = tp.tv_sec; +#else + /* Fall back to gettimeofday() if we have nothing else */ + struct timeval tv; + gettimeofday(&tv, NULL); + p->ts = tv.tv_sec; +#endif + p->room = -1; + memset(p->source.nspace, 0, PMIX_MAX_NSLEN+1); + p->source.rank = PMIX_RANK_UNDEF; + p->range = PMIX_RANGE_UNDEF; + p->targets = NULL; + p->ntargets = 0; + p->nleft = SIZE_MAX; + p->affected = NULL; + p->naffected = 0; + p->nondefault = false; + p->info = NULL; + p->ninfo = 0; +} +static void ndes(pmix_notify_caddy_t *p) +{ + PMIX_DESTRUCT_LOCK(&p->lock); + if (NULL != p->info) { + PMIX_INFO_FREE(p->info, p->ninfo); + } + PMIX_PROC_FREE(p->affected, p->naffected); + if (NULL != p->targets) { + free(p->targets); + } +} +PMIX_CLASS_INSTANCE(pmix_notify_caddy_t, + pmix_object_t, + ncon, ndes); + void pmix_execute_epilog(pmix_epilog_t *epi) { pmix_cleanup_file_t *cf, *cfnext; @@ -382,6 +448,7 @@ * some minimum level of protection */ tmp = pmix_argv_split(cf->path, ','); for (n=0; NULL != tmp[n]; n++) { + /* coverity[toctou] */ rc = stat(tmp[n], &statbuf); if (0 != rc) { pmix_output_verbose(10, pmix_globals.debug_output, @@ -415,6 +482,7 @@ * some minimum level of protection */ tmp = pmix_argv_split(cd->path, ','); for (n=0; NULL != tmp[n]; n++) { + /* coverity[toctou] */ rc = stat(tmp[n], &statbuf); if (0 != rc) { pmix_output_verbose(10, pmix_globals.debug_output, @@ -500,6 +568,7 @@ /* Check to see if it is a directory */ is_dir = false; + /* coverity[toctou] */ rc = stat(filenm, &buf); if (0 > rc) { /* Handle a race condition. filenm might have been deleted by an diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/include/pmix_globals.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/include/pmix_globals.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/include/pmix_globals.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/include/pmix_globals.h 2022-05-29 09:51:40.000000000 +0000 @@ -15,6 +15,7 @@ * and Technology (RIST). All rights reserved. * Copyright (c) 2019 Mellanox Technologies, Inc. * All rights reserved. + * Copyright (c) 2020 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -25,9 +26,8 @@ #ifndef PMIX_GLOBALS_H #define PMIX_GLOBALS_H -#include - -#include +#include "src/include/pmix_config.h" +#include "src/include/types.h" #include #ifdef HAVE_SYS_TYPES_H @@ -35,8 +35,9 @@ #endif #include PMIX_EVENT_HEADER -#include -#include +#include "include/pmix.h" +#include "include/pmix_common.h" +#include "include/pmix_tool.h" #include "src/class/pmix_hash_table.h" #include "src/class/pmix_list.h" @@ -86,31 +87,36 @@ typedef uint8_t pmix_cmd_t; /* define some commands */ -#define PMIX_REQ_CMD 0 -#define PMIX_ABORT_CMD 1 -#define PMIX_COMMIT_CMD 2 -#define PMIX_FENCENB_CMD 3 -#define PMIX_GETNB_CMD 4 -#define PMIX_FINALIZE_CMD 5 -#define PMIX_PUBLISHNB_CMD 6 -#define PMIX_LOOKUPNB_CMD 7 -#define PMIX_UNPUBLISHNB_CMD 8 -#define PMIX_SPAWNNB_CMD 9 -#define PMIX_CONNECTNB_CMD 10 -#define PMIX_DISCONNECTNB_CMD 11 -#define PMIX_NOTIFY_CMD 12 -#define PMIX_REGEVENTS_CMD 13 -#define PMIX_DEREGEVENTS_CMD 14 -#define PMIX_QUERY_CMD 15 -#define PMIX_LOG_CMD 16 -#define PMIX_ALLOC_CMD 17 -#define PMIX_JOB_CONTROL_CMD 18 -#define PMIX_MONITOR_CMD 19 -#define PMIX_GET_CREDENTIAL_CMD 20 -#define PMIX_VALIDATE_CRED_CMD 21 -#define PMIX_IOF_PULL_CMD 22 -#define PMIX_IOF_PUSH_CMD 23 -#define PMIX_IOF_DEREG_CMD 29 +#define PMIX_REQ_CMD 0 +#define PMIX_ABORT_CMD 1 +#define PMIX_COMMIT_CMD 2 +#define PMIX_FENCENB_CMD 3 +#define PMIX_GETNB_CMD 4 +#define PMIX_FINALIZE_CMD 5 +#define PMIX_PUBLISHNB_CMD 6 +#define PMIX_LOOKUPNB_CMD 7 +#define PMIX_UNPUBLISHNB_CMD 8 +#define PMIX_SPAWNNB_CMD 9 +#define PMIX_CONNECTNB_CMD 10 +#define PMIX_DISCONNECTNB_CMD 11 +#define PMIX_NOTIFY_CMD 12 +#define PMIX_REGEVENTS_CMD 13 +#define PMIX_DEREGEVENTS_CMD 14 +#define PMIX_QUERY_CMD 15 +#define PMIX_LOG_CMD 16 +#define PMIX_ALLOC_CMD 17 +#define PMIX_JOB_CONTROL_CMD 18 +#define PMIX_MONITOR_CMD 19 +#define PMIX_GET_CREDENTIAL_CMD 20 +#define PMIX_VALIDATE_CRED_CMD 21 +#define PMIX_IOF_PULL_CMD 22 +#define PMIX_IOF_PUSH_CMD 23 +#define PMIX_GROUP_CONSTRUCT_CMD 24 +#define PMIX_GROUP_JOIN_CMD 25 +#define PMIX_GROUP_INVITE_CMD 26 +#define PMIX_GROUP_LEAVE_CMD 27 +#define PMIX_GROUP_DESTRUCT_CMD 28 +#define PMIX_IOF_DEREG_CMD 29 /* provide a "pretty-print" function for cmds */ const char* pmix_command_string(pmix_cmd_t cmd); @@ -211,7 +217,7 @@ /* define a very simple caddy for dealing with pmix_info_t - * objects when transferring portions of arrays */ + * and pmix_query_t objects when transferring portions of arrays */ typedef struct { pmix_list_item_t super; pmix_info_t *info; @@ -219,6 +225,18 @@ } pmix_info_caddy_t; PMIX_CLASS_DECLARATION(pmix_info_caddy_t); +typedef struct { + pmix_list_item_t super; + pmix_info_t info; +} pmix_infolist_t; +PMIX_CLASS_DECLARATION(pmix_infolist_t); + +typedef struct { + pmix_list_item_t super; + pmix_query_t query; +} pmix_querylist_t; +PMIX_CLASS_DECLARATION(pmix_querylist_t); + /* object for tracking peers - each peer can have multiple * connections. This can occur if the initial app executes @@ -253,7 +271,8 @@ typedef struct { pmix_object_t super; pmix_peer_t *requestor; - size_t refid; + size_t local_id; + size_t remote_id; pmix_proc_t *procs; size_t nprocs; pmix_iof_channel_t channels; @@ -274,8 +293,10 @@ size_t ntargets; pmix_info_t *info; size_t ninfo; - pmix_byte_object_t bo; pmix_list_t results; + size_t nreplies; + size_t nrequests; + pmix_byte_object_t bo; pmix_info_cbfunc_t cbfunc; pmix_value_cbfunc_t valcbfunc; pmix_release_cbfunc_t relcbfunc; @@ -411,6 +432,17 @@ pmix_event_active(&((r)->ev), EV_WRITE, 1); \ } while (0) +#define PMIX_TIMED_THREADSHIFT(r, c, t) \ + do { \ + struct timeval _tv = {0, 0}; \ + _tv.tv_sec = (t); \ + pmix_event_evtimer_set(pmix_globals.evbase, \ + &((r)->ev), \ + (c), (r)); \ + PMIX_POST_OBJECT((r)); \ + pmix_event_evtimer_add(&((r)->ev), &_tv); \ + } while (0) + typedef struct { pmix_object_t super; @@ -449,7 +481,9 @@ * handlers can look at it */ pmix_info_t *info; size_t ninfo; + /* allow for a buffer to be carried across internal processing */ pmix_buffer_t *buf; + /* the final callback to be executed upon completion of the event */ pmix_op_cbfunc_t cbfunc; void *cbdata; } pmix_notify_caddy_t; @@ -467,6 +501,8 @@ uid_t uid; // my effective uid gid_t gid; // my effective gid char *hostname; // my hostname + uint32_t appnum; // my appnum + pid_t pid; // my local pid uint32_t nodeid; // my nodeid, if given int pindex; pmix_event_base_t *evbase; @@ -489,8 +525,9 @@ * look them up */ pmix_gds_base_module_t *mygds; /* IOF controls */ - bool tag_output; + bool pushstdin; pmix_list_t stdin_targets; // list of pmix_namelist_t + bool tag_output; bool xml_output; bool timestamp_output; size_t output_limit; @@ -500,6 +537,8 @@ /* provide access to a function to cleanup epilogs */ PMIX_EXPORT void pmix_execute_epilog(pmix_epilog_t *ep); +PMIX_EXPORT pmix_status_t pmix_notify_event_cache(pmix_notify_caddy_t *cd); + PMIX_EXPORT extern pmix_globals_t pmix_globals; PMIX_EXPORT extern pmix_lock_t pmix_global_lock; @@ -508,6 +547,8 @@ char *keys[] = { PMIX_LOCAL_PEERS, PMIX_LOCAL_SIZE, + PMIX_NODE_SIZE, + PMIX_LOCALLDR, NULL }; size_t n; @@ -524,6 +565,8 @@ { char *keys[] = { PMIX_APP_SIZE, + PMIX_APPLDR, + PMIX_WDIR, NULL }; size_t n; @@ -536,7 +579,6 @@ return false; } - END_C_DECLS #endif /* PMIX_GLOBALS_H */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/include/prefetch.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/include/prefetch.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/include/prefetch.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/include/prefetch.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * Copyright (c) 2004-2006 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -20,7 +20,7 @@ #ifndef PMIX_PREFETCH_H #define PMIX_PREFETCH_H -#include +#include "src/include/pmix_config.h" #if PMIX_C_HAVE_BUILTIN_EXPECT #define PMIX_LIKELY(expression) __builtin_expect(!!(expression), 1) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/include/types.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/include/types.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/include/types.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/include/types.h 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2019 Research Organization for Information Science @@ -24,7 +24,8 @@ #ifndef PMIX_TYPES_H #define PMIX_TYPES_H -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #ifdef HAVE_STDINT_H #include @@ -54,7 +55,6 @@ #endif #include -#include /* diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ # All rights reserved. # Copyright (c) 2006-2016 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. -# Copyright (c) 2013-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -42,6 +42,8 @@ nodist_headers = EXTRA_DIST = dist_pmixdata_DATA = +nobase_pmix_HEADERS = +pmixdir = $(pmixincludedir)/$(subdir) # place to capture sources for backward compatibility libs pmi1_sources = @@ -105,6 +107,11 @@ include common/Makefile.include include hwloc/Makefile.include +if WANT_INSTALL_HEADERS +nobase_pmix_HEADERS += $(headers) +endif + + MAINTAINERCLEANFILES = Makefile.in config.h config.h.in DISTCLEANFILES = Makefile CLEANFILES = core.* *~ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -27,7 +27,7 @@ # All rights reserved. # Copyright (c) 2006-2016 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. -# Copyright (c) 2013-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -52,7 +52,7 @@ # reserved. # Copyright (c) 2017 Research Organization for Information Science # and Technology (RIST). All rights reserved. -# Copyright (c) 2017-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2017-2020 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -176,49 +176,6 @@ # Copyright (c) 2004-2005 The University of Tennessee and The University # of Tennessee Research Foundation. All rights # reserved. -# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# Copyright (c) 2004-2005 The Regents of the University of California. -# All rights reserved. -# Copyright (c) 2017 Intel, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# This makefile.am does not stand on its own - it is included from pmix/include/Makefile.am - -# -# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana -# University Research and Technology -# Corporation. All rights reserved. -# Copyright (c) 2004-2005 The University of Tennessee and The University -# of Tennessee Research Foundation. All rights -# reserved. -# Copyright (c) 2004-2009 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# Copyright (c) 2004-2005 The Regents of the University of California. -# All rights reserved. -# Copyright (c) 2011 Sandia National Laboratories. All rights reserved. -# Copyright (c) 2017 Intel, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# This makefile.am does not stand on its own - it is included from pmix/include/Makefile.am - -# -# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana -# University Research and Technology -# Corporation. All rights reserved. -# Copyright (c) 2004-2005 The University of Tennessee and The University -# of Tennessee Research Foundation. All rights -# reserved. # Copyright (c) 2004-2009 High Performance Computing Center Stuttgart, # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. @@ -251,7 +208,7 @@ # Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2015 Research Organization for Information Science # and Technology (RIST). All rights reserved. -# Copyright (c) 2017 Intel, Inc. All rights reserved. +# Copyright (c) 2017-2019 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -306,7 +263,7 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. -# Copyright (c) 2013-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2020 Intel, Inc. All rights reserved. # Copyright (c) 2007-2016 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2017 Research Organization for Information Science # and Technology (RIST). All rights reserved. @@ -357,7 +314,7 @@ # All rights reserved. # Copyright (c) 2007-2016 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2013 NVIDIA Corporation. All rights reserved. -# Copyright (c) 2013-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. # Copyright (c) 2016 Research Organization for Information Science # and Technology (RIST). All rights reserved. # $COPYRIGHT$ @@ -369,10 +326,10 @@ # -*- makefile -*- # -# Copyright (c) 2014-2017 Intel, Inc. All rights reserved. +# Copyright (c) 2014-2020 Intel, Inc. All rights reserved. # Copyright (c) 2014 Artem Y. Polyakov . # All rights reserved. -# Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -382,7 +339,7 @@ # -*- makefile -*- # -# Copyright (c) 2014-2017 Intel, Inc. All rights reserved. +# Copyright (c) 2014-2020 Intel, Inc. All rights reserved. # Copyright (c) 2014 Artem Y. Polyakov . # All rights reserved. # Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. @@ -442,7 +399,7 @@ # Copyright (c) 2006-2008 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2011-2013 Los Alamos National Security, LLC. All rights # reserved. -# Copyright (c) 2014-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2014-2020 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -455,7 +412,7 @@ # -*- makefile -*- # -# Copyright (c) 2015-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2015-2019 Intel, Inc. All rights reserved. # Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. # $COPYRIGHT$ # @@ -475,6 +432,7 @@ # + VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ @@ -564,15 +522,13 @@ @PMIX_EMBEDDED_MODE_FALSE@ include/frameworks.h \ @PMIX_EMBEDDED_MODE_FALSE@ include/pmix_stdatomic.h -@WANT_INSTALL_HEADERS_TRUE@am__append_3 = \ -@WANT_INSTALL_HEADERS_TRUE@ include/pmix_config.h - -@WANT_PMI_BACKWARD_TRUE@am__append_4 = \ +@WANT_PMI_BACKWARD_TRUE@am__append_3 = \ @WANT_PMI_BACKWARD_TRUE@ client/pmi1.c -@WANT_PMI_BACKWARD_TRUE@am__append_5 = \ +@WANT_PMI_BACKWARD_TRUE@am__append_4 = \ @WANT_PMI_BACKWARD_TRUE@ client/pmi2.c +@WANT_INSTALL_HEADERS_TRUE@am__append_5 = $(headers) subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ @@ -589,7 +545,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -619,6 +574,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -629,13 +585,12 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(dist_pmixdata_DATA) \ - $(am__DIST_COMMON) + $(am__nobase_pmix_HEADERS_DIST) $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/include/pmix_config.h \ $(top_builddir)/include/pmix_common.h @@ -668,7 +623,8 @@ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pmixdatadir)" +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pmixdatadir)" \ + "$(DESTDIR)$(pmixdir)" "$(DESTDIR)$(pmixdir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = am__DEPENDENCIES_2 = mca/base/libpmix_mca_base.la \ @@ -682,12 +638,10 @@ atomics/sys/arm/timer.h atomics/sys/arm64/atomic.h \ atomics/sys/arm64/timer.h atomics/sys/ia32/atomic.h \ atomics/sys/ia32/timer.h atomics/sys/powerpc/atomic.h \ - atomics/sys/powerpc/timer.h atomics/sys/sparcv9/atomic.h \ - atomics/sys/sparcv9/timer.h atomics/sys/sync_builtin/atomic.h \ - atomics/sys/gcc_builtin/atomic.h threads/mutex.h \ - threads/mutex_unix.h threads/threads.h threads/tsd.h \ - threads/wait_sync.h threads/thread_usage.h class/pmix_bitmap.h \ - class/pmix_object.h class/pmix_list.h \ + atomics/sys/powerpc/timer.h atomics/sys/gcc_builtin/atomic.h \ + threads/mutex.h threads/mutex_unix.h threads/threads.h \ + threads/tsd.h threads/wait_sync.h threads/thread_usage.h \ + class/pmix_bitmap.h class/pmix_object.h class/pmix_list.h \ class/pmix_pointer_array.h class/pmix_hash_table.h \ class/pmix_hotel.h class/pmix_ring_buffer.h \ class/pmix_value_array.h event/pmix_event.h \ @@ -698,26 +652,27 @@ include/frameworks.h include/pmix_stdatomic.h mca/mca.h \ util/alfg.h util/argv.h util/cmd_line.h util/error.h \ util/printf.h util/output.h util/pmix_environ.h util/crc.h \ - util/fd.h util/timings.h util/os_path.h util/basename.h \ - util/keyval_parse.h util/show_help.h util/show_help_lex.h \ - util/path.h util/getid.h util/strnlen.h util/hash.h \ - util/name_fns.h util/net.h util/pif.h util/parse_options.h \ - util/compress.h client/pmix_client_ops.h \ - server/pmix_server_ops.h runtime/pmix_rte.h \ - runtime/pmix_progress_threads.h common/pmix_iof.h \ - hwloc/hwloc-internal.h threads/mutex.c threads/thread.c \ - threads/wait_sync.c class/pmix_bitmap.c class/pmix_object.c \ - class/pmix_list.c class/pmix_pointer_array.c \ - class/pmix_hash_table.c class/pmix_hotel.c \ - class/pmix_ring_buffer.c class/pmix_value_array.c \ - event/pmix_event_notification.c \ + util/fd.h util/timings.h util/os_dirpath.h util/os_path.h \ + util/basename.h util/keyval_parse.h util/show_help.h \ + util/show_help_lex.h util/path.h util/getid.h util/strnlen.h \ + util/hash.h util/name_fns.h util/net.h util/pif.h \ + util/parse_options.h util/context_fns.h util/pmix_pty.h \ + util/few.h client/pmix_client_ops.h server/pmix_server_ops.h \ + runtime/pmix_rte.h runtime/pmix_progress_threads.h \ + common/pmix_iof.h hwloc/hwloc-internal.h threads/mutex.c \ + threads/thread.c threads/wait_sync.c class/pmix_bitmap.c \ + class/pmix_object.c class/pmix_list.c \ + class/pmix_pointer_array.c class/pmix_hash_table.c \ + class/pmix_hotel.c class/pmix_ring_buffer.c \ + class/pmix_value_array.c event/pmix_event_notification.c \ event/pmix_event_registration.c include/pmix_globals.c \ util/alfg.c util/argv.c util/cmd_line.c util/error.c \ util/printf.c util/output.c util/pmix_environ.c util/crc.c \ - util/fd.c util/timings.c util/os_path.c util/basename.c \ - util/keyval_parse.c util/show_help.c util/show_help_lex.l \ - util/path.c util/getid.c util/hash.c util/name_fns.c \ - util/net.c util/pif.c util/parse_options.c util/compress.c \ + util/fd.c util/timings.c util/os_dirpath.c util/os_path.c \ + util/basename.c util/keyval_parse.c util/show_help.c \ + util/show_help_lex.l util/path.c util/getid.c util/hash.c \ + util/name_fns.c util/net.c util/pif.c util/parse_options.c \ + util/context_fns.c util/pmix_pty.c util/few.c \ client/pmix_client.c client/pmix_client_fence.c \ client/pmix_client_get.c client/pmix_client_pub.c \ client/pmix_client_spawn.c client/pmix_client_connect.c \ @@ -741,10 +696,11 @@ event/pmix_event_registration.lo include/pmix_globals.lo \ util/alfg.lo util/argv.lo util/cmd_line.lo util/error.lo \ util/printf.lo util/output.lo util/pmix_environ.lo util/crc.lo \ - util/fd.lo util/timings.lo util/os_path.lo util/basename.lo \ - util/keyval_parse.lo util/show_help.lo util/show_help_lex.lo \ - util/path.lo util/getid.lo util/hash.lo util/name_fns.lo \ - util/net.lo util/pif.lo util/parse_options.lo util/compress.lo \ + util/fd.lo util/timings.lo util/os_dirpath.lo util/os_path.lo \ + util/basename.lo util/keyval_parse.lo util/show_help.lo \ + util/show_help_lex.lo util/path.lo util/getid.lo util/hash.lo \ + util/name_fns.lo util/net.lo util/pif.lo util/parse_options.lo \ + util/context_fns.lo util/pmix_pty.lo util/few.lo \ client/pmix_client.lo client/pmix_client_fence.lo \ client/pmix_client_get.lo client/pmix_client_pub.lo \ client/pmix_client_spawn.lo client/pmix_client_connect.lo \ @@ -779,12 +735,10 @@ atomics/sys/arm/timer.h atomics/sys/arm64/atomic.h \ atomics/sys/arm64/timer.h atomics/sys/ia32/atomic.h \ atomics/sys/ia32/timer.h atomics/sys/powerpc/atomic.h \ - atomics/sys/powerpc/timer.h atomics/sys/sparcv9/atomic.h \ - atomics/sys/sparcv9/timer.h atomics/sys/sync_builtin/atomic.h \ - atomics/sys/gcc_builtin/atomic.h threads/mutex.h \ - threads/mutex_unix.h threads/threads.h threads/tsd.h \ - threads/wait_sync.h threads/thread_usage.h class/pmix_bitmap.h \ - class/pmix_object.h class/pmix_list.h \ + atomics/sys/powerpc/timer.h atomics/sys/gcc_builtin/atomic.h \ + threads/mutex.h threads/mutex_unix.h threads/threads.h \ + threads/tsd.h threads/wait_sync.h threads/thread_usage.h \ + class/pmix_bitmap.h class/pmix_object.h class/pmix_list.h \ class/pmix_pointer_array.h class/pmix_hash_table.h \ class/pmix_hotel.h class/pmix_ring_buffer.h \ class/pmix_value_array.h event/pmix_event.h \ @@ -795,26 +749,27 @@ include/frameworks.h include/pmix_stdatomic.h mca/mca.h \ util/alfg.h util/argv.h util/cmd_line.h util/error.h \ util/printf.h util/output.h util/pmix_environ.h util/crc.h \ - util/fd.h util/timings.h util/os_path.h util/basename.h \ - util/keyval_parse.h util/show_help.h util/show_help_lex.h \ - util/path.h util/getid.h util/strnlen.h util/hash.h \ - util/name_fns.h util/net.h util/pif.h util/parse_options.h \ - util/compress.h client/pmix_client_ops.h \ - server/pmix_server_ops.h runtime/pmix_rte.h \ - runtime/pmix_progress_threads.h common/pmix_iof.h \ - hwloc/hwloc-internal.h threads/mutex.c threads/thread.c \ - threads/wait_sync.c class/pmix_bitmap.c class/pmix_object.c \ - class/pmix_list.c class/pmix_pointer_array.c \ - class/pmix_hash_table.c class/pmix_hotel.c \ - class/pmix_ring_buffer.c class/pmix_value_array.c \ - event/pmix_event_notification.c \ + util/fd.h util/timings.h util/os_dirpath.h util/os_path.h \ + util/basename.h util/keyval_parse.h util/show_help.h \ + util/show_help_lex.h util/path.h util/getid.h util/strnlen.h \ + util/hash.h util/name_fns.h util/net.h util/pif.h \ + util/parse_options.h util/context_fns.h util/pmix_pty.h \ + util/few.h client/pmix_client_ops.h server/pmix_server_ops.h \ + runtime/pmix_rte.h runtime/pmix_progress_threads.h \ + common/pmix_iof.h hwloc/hwloc-internal.h threads/mutex.c \ + threads/thread.c threads/wait_sync.c class/pmix_bitmap.c \ + class/pmix_object.c class/pmix_list.c \ + class/pmix_pointer_array.c class/pmix_hash_table.c \ + class/pmix_hotel.c class/pmix_ring_buffer.c \ + class/pmix_value_array.c event/pmix_event_notification.c \ event/pmix_event_registration.c include/pmix_globals.c \ util/alfg.c util/argv.c util/cmd_line.c util/error.c \ util/printf.c util/output.c util/pmix_environ.c util/crc.c \ - util/fd.c util/timings.c util/os_path.c util/basename.c \ - util/keyval_parse.c util/show_help.c util/show_help_lex.l \ - util/path.c util/getid.c util/hash.c util/name_fns.c \ - util/net.c util/pif.c util/parse_options.c util/compress.c \ + util/fd.c util/timings.c util/os_dirpath.c util/os_path.c \ + util/basename.c util/keyval_parse.c util/show_help.c \ + util/show_help_lex.l util/path.c util/getid.c util/hash.c \ + util/name_fns.c util/net.c util/pif.c util/parse_options.c \ + util/context_fns.c util/pmix_pty.c util/few.c \ client/pmix_client.c client/pmix_client_fence.c \ client/pmix_client_get.c client/pmix_client_pub.c \ client/pmix_client_spawn.c client/pmix_client_connect.c \ @@ -846,12 +801,10 @@ atomics/sys/arm/timer.h atomics/sys/arm64/atomic.h \ atomics/sys/arm64/timer.h atomics/sys/ia32/atomic.h \ atomics/sys/ia32/timer.h atomics/sys/powerpc/atomic.h \ - atomics/sys/powerpc/timer.h atomics/sys/sparcv9/atomic.h \ - atomics/sys/sparcv9/timer.h atomics/sys/sync_builtin/atomic.h \ - atomics/sys/gcc_builtin/atomic.h threads/mutex.h \ - threads/mutex_unix.h threads/threads.h threads/tsd.h \ - threads/wait_sync.h threads/thread_usage.h class/pmix_bitmap.h \ - class/pmix_object.h class/pmix_list.h \ + atomics/sys/powerpc/timer.h atomics/sys/gcc_builtin/atomic.h \ + threads/mutex.h threads/mutex_unix.h threads/threads.h \ + threads/tsd.h threads/wait_sync.h threads/thread_usage.h \ + class/pmix_bitmap.h class/pmix_object.h class/pmix_list.h \ class/pmix_pointer_array.h class/pmix_hash_table.h \ class/pmix_hotel.h class/pmix_ring_buffer.h \ class/pmix_value_array.h event/pmix_event.h \ @@ -862,26 +815,27 @@ include/frameworks.h include/pmix_stdatomic.h mca/mca.h \ util/alfg.h util/argv.h util/cmd_line.h util/error.h \ util/printf.h util/output.h util/pmix_environ.h util/crc.h \ - util/fd.h util/timings.h util/os_path.h util/basename.h \ - util/keyval_parse.h util/show_help.h util/show_help_lex.h \ - util/path.h util/getid.h util/strnlen.h util/hash.h \ - util/name_fns.h util/net.h util/pif.h util/parse_options.h \ - util/compress.h client/pmix_client_ops.h \ - server/pmix_server_ops.h runtime/pmix_rte.h \ - runtime/pmix_progress_threads.h common/pmix_iof.h \ - hwloc/hwloc-internal.h threads/mutex.c threads/thread.c \ - threads/wait_sync.c class/pmix_bitmap.c class/pmix_object.c \ - class/pmix_list.c class/pmix_pointer_array.c \ - class/pmix_hash_table.c class/pmix_hotel.c \ - class/pmix_ring_buffer.c class/pmix_value_array.c \ - event/pmix_event_notification.c \ + util/fd.h util/timings.h util/os_dirpath.h util/os_path.h \ + util/basename.h util/keyval_parse.h util/show_help.h \ + util/show_help_lex.h util/path.h util/getid.h util/strnlen.h \ + util/hash.h util/name_fns.h util/net.h util/pif.h \ + util/parse_options.h util/context_fns.h util/pmix_pty.h \ + util/few.h client/pmix_client_ops.h server/pmix_server_ops.h \ + runtime/pmix_rte.h runtime/pmix_progress_threads.h \ + common/pmix_iof.h hwloc/hwloc-internal.h threads/mutex.c \ + threads/thread.c threads/wait_sync.c class/pmix_bitmap.c \ + class/pmix_object.c class/pmix_list.c \ + class/pmix_pointer_array.c class/pmix_hash_table.c \ + class/pmix_hotel.c class/pmix_ring_buffer.c \ + class/pmix_value_array.c event/pmix_event_notification.c \ event/pmix_event_registration.c include/pmix_globals.c \ util/alfg.c util/argv.c util/cmd_line.c util/error.c \ util/printf.c util/output.c util/pmix_environ.c util/crc.c \ - util/fd.c util/timings.c util/os_path.c util/basename.c \ - util/keyval_parse.c util/show_help.c util/show_help_lex.l \ - util/path.c util/getid.c util/hash.c util/name_fns.c \ - util/net.c util/pif.c util/parse_options.c util/compress.c \ + util/fd.c util/timings.c util/os_dirpath.c util/os_path.c \ + util/basename.c util/keyval_parse.c util/show_help.c \ + util/show_help_lex.l util/path.c util/getid.c util/hash.c \ + util/name_fns.c util/net.c util/pif.c util/parse_options.c \ + util/context_fns.c util/pmix_pty.c util/few.c \ client/pmix_client.c client/pmix_client_fence.c \ client/pmix_client_get.c client/pmix_client_pub.c \ client/pmix_client_spawn.c client/pmix_client_connect.c \ @@ -967,6 +921,37 @@ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(dist_pmixdata_DATA) +am__nobase_pmix_HEADERS_DIST = atomics/sys/architecture.h \ + atomics/sys/atomic.h atomics/sys/atomic_impl.h \ + atomics/sys/timer.h atomics/sys/cma.h \ + atomics/sys/atomic_stdc.h atomics/sys/x86_64/atomic.h \ + atomics/sys/x86_64/timer.h atomics/sys/arm/atomic.h \ + atomics/sys/arm/timer.h atomics/sys/arm64/atomic.h \ + atomics/sys/arm64/timer.h atomics/sys/ia32/atomic.h \ + atomics/sys/ia32/timer.h atomics/sys/powerpc/atomic.h \ + atomics/sys/powerpc/timer.h atomics/sys/gcc_builtin/atomic.h \ + threads/mutex.h threads/mutex_unix.h threads/threads.h \ + threads/tsd.h threads/wait_sync.h threads/thread_usage.h \ + class/pmix_bitmap.h class/pmix_object.h class/pmix_list.h \ + class/pmix_pointer_array.h class/pmix_hash_table.h \ + class/pmix_hotel.h class/pmix_ring_buffer.h \ + class/pmix_value_array.h event/pmix_event.h \ + include/pmix_globals.h include/align.h include/hash_string.h \ + include/pmix_socket_errno.h include/pmix_stdint.h \ + include/prefetch.h include/types.h include/pmix_config_top.h \ + include/pmix_config_bottom.h include/pmix_portable_platform.h \ + include/frameworks.h include/pmix_stdatomic.h mca/mca.h \ + util/alfg.h util/argv.h util/cmd_line.h util/error.h \ + util/printf.h util/output.h util/pmix_environ.h util/crc.h \ + util/fd.h util/timings.h util/os_dirpath.h util/os_path.h \ + util/basename.h util/keyval_parse.h util/show_help.h \ + util/show_help_lex.h util/path.h util/getid.h util/strnlen.h \ + util/hash.h util/name_fns.h util/net.h util/pif.h \ + util/parse_options.h util/context_fns.h util/pmix_pty.h \ + util/few.h client/pmix_client_ops.h server/pmix_server_ops.h \ + runtime/pmix_rte.h runtime/pmix_progress_threads.h \ + common/pmix_iof.h hwloc/hwloc-internal.h +HEADERS = $(nobase_nodist_pmix_HEADERS) $(nobase_pmix_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ @@ -1001,8 +986,6 @@ $(srcdir)/atomics/sys/gcc_builtin/Makefile.include \ $(srcdir)/atomics/sys/ia32/Makefile.include \ $(srcdir)/atomics/sys/powerpc/Makefile.include \ - $(srcdir)/atomics/sys/sparcv9/Makefile.include \ - $(srcdir)/atomics/sys/sync_builtin/Makefile.include \ $(srcdir)/atomics/sys/x86_64/Makefile.include \ $(srcdir)/class/Makefile.include \ $(srcdir)/client/Makefile.include \ @@ -1123,6 +1106,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -1186,6 +1176,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -1208,6 +1205,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -1226,6 +1225,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -1234,9 +1234,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -1250,6 +1250,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -1295,6 +1296,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -1307,10 +1312,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ @@ -1356,8 +1357,6 @@ atomics/sys/arm64/atomic.h atomics/sys/arm64/timer.h \ atomics/sys/ia32/atomic.h atomics/sys/ia32/timer.h \ atomics/sys/powerpc/atomic.h atomics/sys/powerpc/timer.h \ - atomics/sys/sparcv9/atomic.h atomics/sys/sparcv9/timer.h \ - atomics/sys/sync_builtin/atomic.h \ atomics/sys/gcc_builtin/atomic.h threads/mutex.h \ threads/mutex_unix.h threads/threads.h threads/tsd.h \ threads/wait_sync.h threads/thread_usage.h class/pmix_bitmap.h \ @@ -1368,14 +1367,14 @@ include/pmix_globals.h $(am__append_2) mca/mca.h util/alfg.h \ util/argv.h util/cmd_line.h util/error.h util/printf.h \ util/output.h util/pmix_environ.h util/crc.h util/fd.h \ - util/timings.h util/os_path.h util/basename.h \ - util/keyval_parse.h util/show_help.h util/show_help_lex.h \ - util/path.h util/getid.h util/strnlen.h util/hash.h \ - util/name_fns.h util/net.h util/pif.h util/parse_options.h \ - util/compress.h client/pmix_client_ops.h \ - server/pmix_server_ops.h runtime/pmix_rte.h \ - runtime/pmix_progress_threads.h common/pmix_iof.h \ - hwloc/hwloc-internal.h + util/timings.h util/os_dirpath.h util/os_path.h \ + util/basename.h util/keyval_parse.h util/show_help.h \ + util/show_help_lex.h util/path.h util/getid.h util/strnlen.h \ + util/hash.h util/name_fns.h util/net.h util/pif.h \ + util/parse_options.h util/context_fns.h util/pmix_pty.h \ + util/few.h client/pmix_client_ops.h server/pmix_server_ops.h \ + runtime/pmix_rte.h runtime/pmix_progress_threads.h \ + common/pmix_iof.h hwloc/hwloc-internal.h sources = threads/mutex.c threads/thread.c threads/wait_sync.c \ class/pmix_bitmap.c class/pmix_object.c class/pmix_list.c \ class/pmix_pointer_array.c class/pmix_hash_table.c \ @@ -1384,10 +1383,11 @@ event/pmix_event_registration.c include/pmix_globals.c \ util/alfg.c util/argv.c util/cmd_line.c util/error.c \ util/printf.c util/output.c util/pmix_environ.c util/crc.c \ - util/fd.c util/timings.c util/os_path.c util/basename.c \ - util/keyval_parse.c util/show_help.c util/show_help_lex.l \ - util/path.c util/getid.c util/hash.c util/name_fns.c \ - util/net.c util/pif.c util/parse_options.c util/compress.c \ + util/fd.c util/timings.c util/os_dirpath.c util/os_path.c \ + util/basename.c util/keyval_parse.c util/show_help.c \ + util/show_help_lex.l util/path.c util/getid.c util/hash.c \ + util/name_fns.c util/net.c util/pif.c util/parse_options.c \ + util/context_fns.c util/pmix_pty.c util/few.c \ client/pmix_client.c client/pmix_client_fence.c \ client/pmix_client_get.c client/pmix_client_pub.c \ client/pmix_client_spawn.c client/pmix_client_connect.c \ @@ -1398,14 +1398,16 @@ common/pmix_query.c common/pmix_strings.c common/pmix_log.c \ common/pmix_control.c common/pmix_data.c \ common/pmix_security.c common/pmix_iof.c hwloc/hwloc.c -nodist_headers = $(am__append_3) +nodist_headers = include/pmix_config.h EXTRA_DIST = dist_pmixdata_DATA = server/help-pmix-server.txt \ runtime/help-pmix-runtime.txt +nobase_pmix_HEADERS = $(am__append_5) +pmixdir = $(pmixincludedir)/$(subdir) # place to capture sources for backward compatibility libs -pmi1_sources = $(am__append_4) -pmi2_sources = $(am__append_5) +pmi1_sources = $(am__append_3) +pmi2_sources = $(am__append_4) libpmix_la_LIBADD = mca/base/libpmix_mca_base.la \ $(MCA_pmix_FRAMEWORK_LIBS) $(PMIX_EXTRA_LIB) \ util/keyval/libpmixutilkeyval.la @@ -1429,6 +1431,9 @@ @PMIX_EMBEDDED_MODE_FALSE@@WANT_PMI_BACKWARD_TRUE@libpmi2_la_LDFLAGS = -version-info $(libpmi2_so_version) @PMIX_EMBEDDED_MODE_FALSE@@WANT_PMI_BACKWARD_TRUE@libpmi2_la_LIBADD = $(libpmix_la_LIBADD) @PMIX_EMBEDDED_MODE_FALSE@@WANT_PMI_BACKWARD_TRUE@libpmi2_la_DEPENDENCIES = $(libpmi2_la_LIBADD) +@WANT_INSTALL_HEADERS_TRUE@nobase_nodist_pmix_HEADERS = \ +@WANT_INSTALL_HEADERS_TRUE@ include/pmix_config.h + AM_LFLAGS = -Ppmix_show_help_yy MAINTAINERCLEANFILES = Makefile.in config.h config.h.in DISTCLEANFILES = Makefile @@ -1436,7 +1441,7 @@ .SUFFIXES: .SUFFIXES: .c .l .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/atomics/sys/Makefile.include $(srcdir)/atomics/sys/x86_64/Makefile.include $(srcdir)/atomics/sys/arm/Makefile.include $(srcdir)/atomics/sys/arm64/Makefile.include $(srcdir)/atomics/sys/ia32/Makefile.include $(srcdir)/atomics/sys/powerpc/Makefile.include $(srcdir)/atomics/sys/sparcv9/Makefile.include $(srcdir)/atomics/sys/sync_builtin/Makefile.include $(srcdir)/atomics/sys/gcc_builtin/Makefile.include $(srcdir)/threads/Makefile.include $(srcdir)/class/Makefile.include $(srcdir)/event/Makefile.include $(srcdir)/include/Makefile.include $(srcdir)/mca/Makefile.include $(srcdir)/util/Makefile.include $(srcdir)/client/Makefile.include $(srcdir)/server/Makefile.include $(srcdir)/runtime/Makefile.include $(srcdir)/tool/Makefile.include $(srcdir)/tools/Makefile.include $(srcdir)/common/Makefile.include $(srcdir)/hwloc/Makefile.include $(am__configure_deps) +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/atomics/sys/Makefile.include $(srcdir)/atomics/sys/x86_64/Makefile.include $(srcdir)/atomics/sys/arm/Makefile.include $(srcdir)/atomics/sys/arm64/Makefile.include $(srcdir)/atomics/sys/ia32/Makefile.include $(srcdir)/atomics/sys/powerpc/Makefile.include $(srcdir)/atomics/sys/gcc_builtin/Makefile.include $(srcdir)/threads/Makefile.include $(srcdir)/class/Makefile.include $(srcdir)/event/Makefile.include $(srcdir)/include/Makefile.include $(srcdir)/mca/Makefile.include $(srcdir)/util/Makefile.include $(srcdir)/client/Makefile.include $(srcdir)/server/Makefile.include $(srcdir)/runtime/Makefile.include $(srcdir)/tool/Makefile.include $(srcdir)/tools/Makefile.include $(srcdir)/common/Makefile.include $(srcdir)/hwloc/Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -1456,7 +1461,7 @@ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; -$(srcdir)/atomics/sys/Makefile.include $(srcdir)/atomics/sys/x86_64/Makefile.include $(srcdir)/atomics/sys/arm/Makefile.include $(srcdir)/atomics/sys/arm64/Makefile.include $(srcdir)/atomics/sys/ia32/Makefile.include $(srcdir)/atomics/sys/powerpc/Makefile.include $(srcdir)/atomics/sys/sparcv9/Makefile.include $(srcdir)/atomics/sys/sync_builtin/Makefile.include $(srcdir)/atomics/sys/gcc_builtin/Makefile.include $(srcdir)/threads/Makefile.include $(srcdir)/class/Makefile.include $(srcdir)/event/Makefile.include $(srcdir)/include/Makefile.include $(srcdir)/mca/Makefile.include $(srcdir)/util/Makefile.include $(srcdir)/client/Makefile.include $(srcdir)/server/Makefile.include $(srcdir)/runtime/Makefile.include $(srcdir)/tool/Makefile.include $(srcdir)/tools/Makefile.include $(srcdir)/common/Makefile.include $(srcdir)/hwloc/Makefile.include $(am__empty): +$(srcdir)/atomics/sys/Makefile.include $(srcdir)/atomics/sys/x86_64/Makefile.include $(srcdir)/atomics/sys/arm/Makefile.include $(srcdir)/atomics/sys/arm64/Makefile.include $(srcdir)/atomics/sys/ia32/Makefile.include $(srcdir)/atomics/sys/powerpc/Makefile.include $(srcdir)/atomics/sys/gcc_builtin/Makefile.include $(srcdir)/threads/Makefile.include $(srcdir)/class/Makefile.include $(srcdir)/event/Makefile.include $(srcdir)/include/Makefile.include $(srcdir)/mca/Makefile.include $(srcdir)/util/Makefile.include $(srcdir)/client/Makefile.include $(srcdir)/server/Makefile.include $(srcdir)/runtime/Makefile.include $(srcdir)/tool/Makefile.include $(srcdir)/tools/Makefile.include $(srcdir)/common/Makefile.include $(srcdir)/hwloc/Makefile.include $(am__empty): $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -1581,6 +1586,8 @@ util/crc.lo: util/$(am__dirstamp) util/$(DEPDIR)/$(am__dirstamp) util/fd.lo: util/$(am__dirstamp) util/$(DEPDIR)/$(am__dirstamp) util/timings.lo: util/$(am__dirstamp) util/$(DEPDIR)/$(am__dirstamp) +util/os_dirpath.lo: util/$(am__dirstamp) \ + util/$(DEPDIR)/$(am__dirstamp) util/os_path.lo: util/$(am__dirstamp) util/$(DEPDIR)/$(am__dirstamp) util/basename.lo: util/$(am__dirstamp) util/$(DEPDIR)/$(am__dirstamp) util/keyval_parse.lo: util/$(am__dirstamp) \ @@ -1596,7 +1603,10 @@ util/pif.lo: util/$(am__dirstamp) util/$(DEPDIR)/$(am__dirstamp) util/parse_options.lo: util/$(am__dirstamp) \ util/$(DEPDIR)/$(am__dirstamp) -util/compress.lo: util/$(am__dirstamp) util/$(DEPDIR)/$(am__dirstamp) +util/context_fns.lo: util/$(am__dirstamp) \ + util/$(DEPDIR)/$(am__dirstamp) +util/pmix_pty.lo: util/$(am__dirstamp) util/$(DEPDIR)/$(am__dirstamp) +util/few.lo: util/$(am__dirstamp) util/$(DEPDIR)/$(am__dirstamp) client/$(am__dirstamp): @$(MKDIR_P) client @: > client/$(am__dirstamp) @@ -1759,21 +1769,24 @@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/argv.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/basename.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/cmd_line.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/compress.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/context_fns.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/crc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/error.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/fd.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/few.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/getid.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/hash.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/keyval_parse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/name_fns.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/net.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/os_dirpath.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/os_path.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/output.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/parse_options.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/path.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/pif.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/pmix_environ.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/pmix_pty.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/printf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/show_help.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/show_help_lex.Plo@am__quote@ @@ -1843,6 +1856,54 @@ @list='$(dist_pmixdata_DATA)'; test -n "$(pmixdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pmixdatadir)'; $(am__uninstall_files_from_dir) +install-nobase_nodist_pmixHEADERS: $(nobase_nodist_pmix_HEADERS) + @$(NORMAL_INSTALL) + @list='$(nobase_nodist_pmix_HEADERS)'; test -n "$(pmixdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pmixdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pmixdir)" || exit 1; \ + fi; \ + $(am__nobase_list) | while read dir files; do \ + xfiles=; for file in $$files; do \ + if test -f "$$file"; then xfiles="$$xfiles $$file"; \ + else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \ + test -z "$$xfiles" || { \ + test "x$$dir" = x. || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(pmixdir)/$$dir'"; \ + $(MKDIR_P) "$(DESTDIR)$(pmixdir)/$$dir"; }; \ + echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(pmixdir)/$$dir'"; \ + $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(pmixdir)/$$dir" || exit $$?; }; \ + done + +uninstall-nobase_nodist_pmixHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(nobase_nodist_pmix_HEADERS)'; test -n "$(pmixdir)" || list=; \ + $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ + dir='$(DESTDIR)$(pmixdir)'; $(am__uninstall_files_from_dir) +install-nobase_pmixHEADERS: $(nobase_pmix_HEADERS) + @$(NORMAL_INSTALL) + @list='$(nobase_pmix_HEADERS)'; test -n "$(pmixdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pmixdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pmixdir)" || exit 1; \ + fi; \ + $(am__nobase_list) | while read dir files; do \ + xfiles=; for file in $$files; do \ + if test -f "$$file"; then xfiles="$$xfiles $$file"; \ + else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \ + test -z "$$xfiles" || { \ + test "x$$dir" = x. || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(pmixdir)/$$dir'"; \ + $(MKDIR_P) "$(DESTDIR)$(pmixdir)/$$dir"; }; \ + echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(pmixdir)/$$dir'"; \ + $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(pmixdir)/$$dir" || exit $$?; }; \ + done + +uninstall-nobase_pmixHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(nobase_pmix_HEADERS)'; test -n "$(pmixdir)" || list=; \ + $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ + dir='$(DESTDIR)$(pmixdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. @@ -2000,10 +2061,10 @@ done check-am: all-am check: check-recursive -all-am: Makefile $(LTLIBRARIES) $(DATA) +all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) installdirs: installdirs-recursive installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pmixdatadir)"; do \ + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pmixdatadir)" "$(DESTDIR)$(pmixdir)" "$(DESTDIR)$(pmixdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive @@ -2085,7 +2146,8 @@ info-am: -install-data-am: install-dist_pmixdataDATA +install-data-am: install-dist_pmixdataDATA \ + install-nobase_nodist_pmixHEADERS install-nobase_pmixHEADERS install-dvi: install-dvi-recursive @@ -2131,7 +2193,9 @@ ps-am: -uninstall-am: uninstall-dist_pmixdataDATA uninstall-libLTLIBRARIES +uninstall-am: uninstall-dist_pmixdataDATA uninstall-libLTLIBRARIES \ + uninstall-nobase_nodist_pmixHEADERS \ + uninstall-nobase_pmixHEADERS .MAKE: $(am__recursive_targets) install-am install-strip @@ -2144,13 +2208,16 @@ install-data-am install-dist_pmixdataDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ - install-libLTLIBRARIES install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am \ - uninstall-dist_pmixdataDATA uninstall-libLTLIBRARIES + install-libLTLIBRARIES install-man \ + install-nobase_nodist_pmixHEADERS install-nobase_pmixHEADERS \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-dist_pmixdataDATA \ + uninstall-libLTLIBRARIES uninstall-nobase_nodist_pmixHEADERS \ + uninstall-nobase_pmixHEADERS .PRECIOUS: Makefile diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/base.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/base.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/base.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/base.h 2022-05-29 09:51:40.000000000 +0000 @@ -15,7 +15,7 @@ * reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -26,7 +26,7 @@ #ifndef PMIX_MCA_BASE_H #define PMIX_MCA_BASE_H -#include +#include "src/include/pmix_config.h" #include "src/class/pmix_object.h" #include "src/class/pmix_list.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -130,7 +130,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -160,6 +159,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -170,7 +170,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -378,6 +377,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -441,6 +447,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -463,6 +476,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -481,6 +496,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -489,9 +505,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -505,6 +521,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -550,6 +567,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -562,10 +583,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_close.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_close.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_close.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_close.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2009 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -21,13 +21,13 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include "src/util/output.h" #include "src/mca/mca.h" #include "src/mca/base/base.h" #include "src/mca/base/pmix_mca_base_component_repository.h" -#include "pmix_common.h" +#include "include/pmix_common.h" extern int pmix_mca_base_opened; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_cmd_line.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_cmd_line.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_cmd_line.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_cmd_line.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2014-2015 Cisco Systems, Inc. All rights reserved. * $COPYRIGHT$ * @@ -28,7 +28,7 @@ #include "src/util/pmix_environ.h" #include "src/util/show_help.h" #include "src/mca/base/base.h" -#include "pmix_common.h" +#include "include/pmix_common.h" /* diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_compare.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_compare.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_compare.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_compare.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,7 +17,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_find.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_find.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_find.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_find.c 2022-05-29 09:51:40.000000000 +0000 @@ -16,7 +16,7 @@ * and Technology (RIST). All rights reserved. * Copyright (c) 2014-2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -24,7 +24,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #include @@ -55,7 +55,7 @@ #include "src/mca/mca.h" #include "src/mca/base/base.h" #include "src/mca/base/pmix_mca_base_component_repository.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/mca/pdl/base/base.h" #if PMIX_HAVE_PDL_SUPPORT diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_repository.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_repository.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_repository.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_repository.c 2022-05-29 09:51:40.000000000 +0000 @@ -15,7 +15,7 @@ * reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2016-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -24,7 +24,7 @@ */ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_SYS_TYPES_H #include #endif @@ -40,7 +40,7 @@ #include "src/mca/base/base.h" #include "src/mca/base/pmix_mca_base_component_repository.h" #include "src/mca/pdl/base/base.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/class/pmix_hash_table.h" #include "src/util/basename.h" #include "src/util/show_help.h" @@ -94,6 +94,7 @@ static int process_repository_item (const char *filename, void *data) { + (void)data; char name[PMIX_MCA_BASE_MAX_COMPONENT_NAME_LEN + 1]; char type[PMIX_MCA_BASE_MAX_TYPE_NAME_LEN + 1]; pmix_mca_base_component_repository_item_t *ri; @@ -418,20 +419,18 @@ char *err_msg = NULL; if (PMIX_SUCCESS != pmix_pdl_open(ri->ri_path, true, false, &ri->ri_dlhandle, &err_msg)) { if (NULL == err_msg) { - err_msg = "pmix_dl_open() error message was NULL!"; - } - /* Because libltdl erroneously says "file not found" for any - type of error -- which is especially misleading when the file - is actually there but cannot be opened for some other reason - (e.g., missing symbol) -- do some simple huersitics and if - the file [probably] does exist, print a slightly better error - message. */ - if (0 == strcasecmp("file not found", err_msg) && - (file_exists(ri->ri_path, "lo") || - file_exists(ri->ri_path, "so") || - file_exists(ri->ri_path, "dylib") || - file_exists(ri->ri_path, "dll"))) { - err_msg = "perhaps a missing symbol, or compiled for a different version of Open MPI?"; + err_msg = strdup("pmix_dl_open() error message was NULL!"); + } else if (file_exists(ri->ri_path, "lo") || + file_exists(ri->ri_path, "so") || + file_exists(ri->ri_path, "dylib") || + file_exists(ri->ri_path, "dll")) { + /* Because libltdl erroneously says "file not found" for any + * type of error -- which is especially misleading when the file + * is actually there but cannot be opened for some other reason + * (e.g., missing symbol) -- do some simple huersitics and if + * the file [probably] does exist, print a slightly better error + * message. */ + err_msg = strdup("perhaps a missing symbol, or compiled for a different version of OpenPMIx"); } pmix_output_verbose(vl, 0, "pmix_mca_base_component_repository_open: unable to open %s: %s (ignored)", ri->ri_base, err_msg); @@ -441,11 +440,13 @@ f_comp->comp = ri; if (0 > asprintf(&(f_comp->error_msg), "%s", err_msg)) { PMIX_RELEASE(f_comp); + free(err_msg); return PMIX_ERR_BAD_PARAM; } pmix_list_append(&framework->framework_failed_components, &f_comp->super); } + free(err_msg); return PMIX_ERR_BAD_PARAM; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_repository.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_repository.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_repository.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_repository.h 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -37,7 +37,7 @@ #ifndef PMIX_MCA_BASE_COMPONENT_REPOSITORY_H #define PMIX_MCA_BASE_COMPONENT_REPOSITORY_H -#include +#include "src/include/pmix_config.h" #include "src/mca/pdl/pdl.h" #include "src/mca/pdl/base/base.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_close.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_close.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_close.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_close.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2013-2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -20,14 +20,14 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include "src/class/pmix_list.h" #include "src/util/output.h" #include "src/mca/mca.h" #include "src/mca/base/base.h" #include "src/mca/base/pmix_mca_base_component_repository.h" -#include "pmix_common.h" +#include "include/pmix_common.h" void pmix_mca_base_component_unload (const pmix_mca_base_component_t *component, int output_id) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_open.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_open.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_open.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_open.c 2022-05-29 09:51:40.000000000 +0000 @@ -14,7 +14,7 @@ * Copyright (c) 2011-2015 Los Alamos National Security, LLC. * All rights reserved. * Copyright (c) 2014 Hochschule Esslingen. All rights reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -22,7 +22,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #include @@ -34,7 +34,7 @@ #include "src/util/output.h" #include "src/mca/mca.h" #include "src/mca/base/base.h" -#include "pmix_common.h" +#include "include/pmix_common.h" /* * Local functions diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_register.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_register.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_register.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_register.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2008-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011-2015 Los Alamos National Security, LLC. * All rights reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -21,7 +21,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #include @@ -36,7 +36,7 @@ #include "src/mca/base/base.h" #include "src/mca/base/pmix_mca_base_framework.h" #include "src/mca/base/pmix_mca_base_component_repository.h" -#include "pmix_common.h" +#include "include/pmix_common.h" /* * Local functions diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_select.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_select.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_select.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_select.c 2022-05-29 09:51:40.000000000 +0000 @@ -5,7 +5,7 @@ * Corporation. All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2015-2016 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -13,7 +13,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #include @@ -28,7 +28,7 @@ #include "src/mca/mca.h" #include "src/mca/base/base.h" #include "src/mca/base/pmix_mca_base_component_repository.h" -#include "pmix_common.h" +#include "include/pmix_common.h" int pmix_mca_base_select(const char *type_name, int output_id, diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_framework.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_framework.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_framework.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_framework.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2012-2015 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -11,9 +11,9 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/util/output.h" #include "pmix_mca_base_framework.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_framework.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_framework.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_framework.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_framework.h 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ /* * Copyright (c) 2012-2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -12,7 +12,7 @@ #if !defined(PMIX_MCA_BASE_FRAMEWORK_H) #define PMIX_MCA_BASE_FRAMEWORK_H -#include +#include "src/include/pmix_config.h" #include "src/mca/mca.h" #include "src/class/pmix_list.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_list.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_list.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_list.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_list.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,7 +17,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include "src/class/pmix_list.h" #include "src/mca/base/base.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_open.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_open.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_open.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_open.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2011 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -21,7 +21,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #include @@ -38,7 +38,7 @@ #include "src/mca/mca.h" #include "src/mca/base/base.h" #include "src/mca/base/pmix_mca_base_component_repository.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/util/pmix_environ.h" /* @@ -77,16 +77,15 @@ } /* define the system and user default paths */ -#if PMIX_WANT_HOME_CONFIG_FILES pmix_mca_base_system_default_path = strdup(pmix_pinstall_dirs.pmixlibdir); - rc = asprintf(&pmix_mca_base_user_default_path, "%s"PMIX_PATH_SEP".pmix"PMIX_PATH_SEP"components", pmix_home_directory()); -#else - rc = asprintf(&pmix_mca_base_system_default_path, "%s", pmix_pinstall_dirs.pmixlibdir); -#endif - +#if PMIX_WANT_HOME_CONFIG_FILES + value = (char*)pmix_home_directory(geteuid()); + rc = asprintf(&pmix_mca_base_user_default_path, "%s"PMIX_PATH_SEP".pmix"PMIX_PATH_SEP"components", value); if (0 > rc) { return PMIX_ERR_OUT_OF_RESOURCE; } +#endif + /* see if the user wants to override the defaults */ if (NULL == pmix_mca_base_user_default_path) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_parse_paramfile.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_parse_paramfile.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_parse_paramfile.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_parse_paramfile.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2013 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -20,7 +20,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,9 +13,9 @@ * Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012-2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -23,7 +23,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #include @@ -46,7 +46,7 @@ #include "src/util/error.h" #include "src/mca/mca.h" #include "src/mca/base/pmix_mca_base_vari.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/util/output.h" #include "src/util/pmix_environ.h" @@ -423,16 +423,22 @@ int ret; /* We may need this later */ - home = (char*)pmix_home_directory(); + home = (char*)pmix_home_directory(geteuid()); - if(NULL == cwd) { + if (NULL == cwd) { cwd = (char *) malloc(sizeof(char) * MAXPATHLEN); - if( NULL == (cwd = getcwd(cwd, MAXPATHLEN) )) { + if (NULL == (cwd = getcwd(cwd, MAXPATHLEN))) { pmix_output(0, "Error: Unable to get the current working directory\n"); cwd = strdup("."); } } + /* if we were passed our PMIx param file contents, then no need + * to obtain them here */ + if (NULL != getenv("PMIX_PARAM_FILE_PASSED")) { + return PMIX_SUCCESS; + } + #if PMIX_WANT_HOME_CONFIG_FILES ret = asprintf(&pmix_mca_base_var_files, "%s"PMIX_PATH_SEP".pmix" PMIX_PATH_SEP "mca-params.conf%c%s" PMIX_PATH_SEP "pmix-mca-params.conf", @@ -792,6 +798,7 @@ int pmix_mca_base_var_set_value (int vari, const void *value, size_t size, pmix_mca_base_var_source_t source, const char *source_file) { + (void)size; pmix_mca_base_var_t *var; int ret; @@ -952,6 +959,7 @@ const char *component_name, const char *variable_name, bool invalidok) { + (void)project_name; char *full_name; int ret, vari; @@ -1608,6 +1616,7 @@ static int var_get_env (pmix_mca_base_var_t *var, const char *name, char **source, char **value) { + (void)var; char *source_env, *value_env; int ret; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var_enum.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var_enum.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var_enum.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var_enum.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2008-2013 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012-2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -21,7 +21,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include "src/mca/base/pmix_mca_base_var_enum.h" #include "src/mca/base/base.h" @@ -48,6 +48,7 @@ static int pmix_mca_base_var_enum_bool_get_count (pmix_mca_base_var_enum_t *enumerator, int *count) { + (void)enumerator; *count = 2; return PMIX_SUCCESS; } @@ -55,6 +56,7 @@ static int pmix_mca_base_var_enum_bool_get_value (pmix_mca_base_var_enum_t *self, int index, int *value, const char **string_value) { + (void)self; if (1 < index) { return PMIX_ERR_VALUE_OUT_OF_BOUNDS; } @@ -68,6 +70,7 @@ static int pmix_mca_base_var_enum_bool_vfs (pmix_mca_base_var_enum_t *self, const char *string_value, int *value) { + (void)self; char *tmp; int v; @@ -95,6 +98,7 @@ static int pmix_mca_base_var_enum_bool_sfv (pmix_mca_base_var_enum_t *self, const int value, char **string_value) { + (void)self; if (string_value) { *string_value = strdup (value ? "true" : "false"); } @@ -104,6 +108,7 @@ static int pmix_mca_base_var_enum_bool_dump (pmix_mca_base_var_enum_t *self, char **out) { + (void)self; *out = strdup ("0: f|false|disabled|no, 1: t|true|enabled|yes"); return *out ? PMIX_SUCCESS : PMIX_ERR_OUT_OF_RESOURCE; } @@ -135,6 +140,7 @@ static int pmix_mca_base_var_enum_verbose_vfs (pmix_mca_base_var_enum_t *self, const char *string_value, int *value) { + (void)self; char *tmp; int v; @@ -165,6 +171,7 @@ static int pmix_mca_base_var_enum_verbose_sfv (pmix_mca_base_var_enum_t *self, const int value, char **string_value) { + (void)self; int ret; if (value < 0 || value > 100) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var_enum.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var_enum.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var_enum.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var_enum.h 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2008-2011 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012-2016 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -24,10 +24,10 @@ #if !defined(PMIX_MCA_BASE_VAR_ENUM_H) #define PMIX_MCA_BASE_VAR_ENUM_H -#include +#include "src/include/pmix_config.h" #include "src/class/pmix_object.h" -#include "pmix_common.h" +#include "include/pmix_common.h" typedef struct pmix_mca_base_var_enum_t pmix_mca_base_var_enum_t; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var_group.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var_group.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var_group.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var_group.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2008-2013 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012-2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -21,7 +21,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #include @@ -38,7 +38,7 @@ #include "src/util/show_help.h" #include "src/mca/mca.h" #include "src/mca/base/pmix_mca_base_vari.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/util/output.h" #include "src/util/pmix_environ.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var.h 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2008-2011 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012-2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -60,7 +60,7 @@ #ifndef PMIX_MCA_BASE_VAR_H #define PMIX_MCA_BASE_VAR_H -#include +#include "src/include/pmix_config.h" #include "src/class/pmix_list.h" #include "src/class/pmix_value_array.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_vari.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_vari.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_vari.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_vari.h 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012-2013 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -37,7 +37,7 @@ #ifndef PMIX_MCA_BASE_VAR_INTERNAL_H #define PMIX_MCA_BASE_VAR_INTERNAL_H -#include +#include "src/include/pmix_config.h" #include "src/class/pmix_object.h" #include "src/class/pmix_list.h" @@ -69,9 +69,9 @@ #define PMIX_VAR_IS_SETTABLE(var) (!!((var).mbv_flags & PMIX_MCA_BASE_VAR_FLAG_SETTABLE)) #define PMIX_VAR_IS_DEPRECATED(var) (!!((var).mbv_flags & PMIX_MCA_BASE_VAR_FLAG_DEPRECATED)) -extern const char *pmix_var_type_names[]; -extern const size_t pmix_var_type_sizes[]; -extern bool pmix_mca_base_var_initialized; +PMIX_EXPORT extern const char *pmix_var_type_names[]; +PMIX_EXPORT extern const size_t pmix_var_type_sizes[]; +PMIX_EXPORT extern bool pmix_mca_base_var_initialized; /** * \internal @@ -113,35 +113,35 @@ * @param[out] group Returned group if it exists * @param[in] invalidok Return group even if it has been deregistered */ -int pmix_mca_base_var_group_get_internal (const int group_index, pmix_mca_base_var_group_t **group, bool invalidok); +PMIX_EXPORT int pmix_mca_base_var_group_get_internal (const int group_index, pmix_mca_base_var_group_t **group, bool invalidok); /** * \internal * * Parse a parameter file. */ -int pmix_mca_base_parse_paramfile(const char *paramfile, pmix_list_t *list); +PMIX_EXPORT int pmix_mca_base_parse_paramfile(const char *paramfile, pmix_list_t *list); /** * \internal * * Add a variable to a group */ -int pmix_mca_base_var_group_add_var (const int group_index, const int param_index); +PMIX_EXPORT int pmix_mca_base_var_group_add_var (const int group_index, const int param_index); /** * \internal * * Add a performance variable to a group */ -int pmix_mca_base_var_group_add_pvar (const int group_index, const int param_index); +PMIX_EXPORT int pmix_mca_base_var_group_add_pvar (const int group_index, const int param_index); /** * \internal * * Generate a full name with _ between all of the non-NULL arguments */ -int pmix_mca_base_var_generate_full_name4 (const char *project, const char *framework, +PMIX_EXPORT int pmix_mca_base_var_generate_full_name4 (const char *project, const char *framework, const char *component, const char *variable, char **full_name); @@ -150,15 +150,15 @@ * * Call save_value callback for generated internal mca parameter storing env variables */ -int pmix_mca_base_internal_env_store(void); +PMIX_EXPORT int pmix_mca_base_internal_env_store(void); /** * \internal * * Initialize/finalize MCA variable groups */ -int pmix_mca_base_var_group_init (void); -int pmix_mca_base_var_group_finalize (void); +PMIX_EXPORT int pmix_mca_base_var_group_init (void); +PMIX_EXPORT int pmix_mca_base_var_group_finalize (void); END_C_DECLS diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/base.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/base.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/base.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/base.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,9 +11,11 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2019 Mellanox Technologies, Inc. + * All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -24,7 +26,7 @@ #ifndef PMIX_BFROP_BASE_H_ #define PMIX_BFROP_BASE_H_ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_SYS_TIME_H @@ -72,6 +74,7 @@ struct pmix_bfrops_globals_t { pmix_list_t actives; bool initialized; + bool selected; size_t initial_size; size_t threshold_size; pmix_bfrop_buffer_type_t default_type; @@ -159,48 +162,76 @@ #endif /* Unpack generic size macros */ -#define PMIX_BFROP_UNPACK_SIZE_MISMATCH(unpack_type, remote_type, ret) \ +#define PMIX_BFROP_UNPACK_SIZE_MISMATCH(reg_types, unpack_type, remote_type, ret) \ do { \ switch(remote_type) { \ case PMIX_UINT8: \ - PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(unpack_type, uint8_t, remote_type); \ + PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(reg_types, unpack_type, uint8_t, remote_type); \ break; \ case PMIX_INT8: \ - PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(unpack_type, int8_t, remote_type); \ + PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(reg_types, unpack_type, int8_t, remote_type); \ break; \ case PMIX_UINT16: \ - PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(unpack_type, uint16_t, remote_type); \ + PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(reg_types, unpack_type, uint16_t, remote_type); \ break; \ case PMIX_INT16: \ - PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(unpack_type, int16_t, remote_type); \ + PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(reg_types, unpack_type, int16_t, remote_type); \ break; \ case PMIX_UINT32: \ - PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(unpack_type, uint32_t, remote_type); \ + PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(reg_types, unpack_type, uint32_t, remote_type); \ break; \ case PMIX_INT32: \ - PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(unpack_type, int32_t, remote_type); \ + PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(reg_types, unpack_type, int32_t, remote_type); \ break; \ case PMIX_UINT64: \ - PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(unpack_type, uint64_t, remote_type); \ + PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(reg_types, unpack_type, uint64_t, remote_type); \ break; \ case PMIX_INT64: \ - PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(unpack_type, int64_t, remote_type); \ + PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(reg_types, unpack_type, int64_t, remote_type); \ break; \ default: \ ret = PMIX_ERR_NOT_FOUND; \ } \ } while (0) +#define PMIX_BFROPS_PACK_TYPE(r, b, s, n, t, arr) \ + do { \ + pmix_bfrop_type_info_t *__info; \ + /* Lookup the pack function for this type and call it */ \ + __info = (pmix_bfrop_type_info_t*)pmix_pointer_array_get_item((arr),\ + (t)); \ + if (NULL == __info) { \ + (r) = PMIX_ERR_UNKNOWN_DATA_TYPE; \ + } else { \ + (r) = __info->odti_pack_fn(arr, b, s, n, t); \ + } \ + } while(0) + +#define PMIX_BFROPS_UNPACK_TYPE(r, b, d, n, t, arr) \ + do { \ + pmix_bfrop_type_info_t *__info; \ + /* Lookup the unpack function for this type and call it */ \ + __info = (pmix_bfrop_type_info_t*)pmix_pointer_array_get_item((arr),\ + (t)); \ + if (NULL == __info) { \ + (r) = PMIX_ERR_UNKNOWN_DATA_TYPE; \ + } else { \ + (r) = __info->odti_unpack_fn(arr, b, d, n, t); \ + } \ + } while(0) + /* NOTE: do not need to deal with endianness here, as the unpacking of the underling sender-side type will do that for us. Repeat: the data in tmpbuf[] is already in host byte order. */ -#define PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(unpack_type, tmptype, tmpbfroptype) \ +#define PMIX_BFROP_UNPACK_SIZE_MISMATCH_FOUND(reg_types, unpack_type, tmptype, tmpbfroptype) \ do { \ int32_t i; \ - tmptype *tmpbuf = (tmptype*)malloc(sizeof(tmptype) * (*num_vals)); \ - ret = unpack_gentype(buffer, tmpbuf, num_vals, tmpbfroptype); \ - for (i = 0 ; i < *num_vals ; ++i) { \ - ((unpack_type*) dest)[i] = (unpack_type)(tmpbuf[i]); \ + tmptype *tmpbuf = (tmptype*)calloc(*num_vals, sizeof(tmptype)); \ + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, tmpbuf, num_vals, tmpbfroptype, reg_types); \ + if (PMIX_ERR_UNKNOWN_DATA_TYPE != ret) { \ + for (i = 0 ; i < *num_vals ; ++i) { \ + ((unpack_type*) dest)[i] = (unpack_type)(tmpbuf[i]); \ + } \ } \ free(tmpbuf); \ } while (0) @@ -211,6 +242,16 @@ pmix_info_t *array; } pmix_info_array_t; +typedef pmix_status_t (*pmix_bfrop_internal_pack_fn_t)(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, + const void *src, + int32_t num_values, + pmix_data_type_t type); + +typedef pmix_status_t (*pmix_bfrop_internal_unpack_fn_t)(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *max_num_values, + pmix_data_type_t type); /** * Internal struct used for holding registered bfrop functions @@ -222,9 +263,9 @@ /** Debugging string name */ char *odti_name; /** Pack function */ - pmix_bfrop_pack_fn_t odti_pack_fn; + pmix_bfrop_internal_pack_fn_t odti_pack_fn; /** Unpack function */ - pmix_bfrop_unpack_fn_t odti_unpack_fn; + pmix_bfrop_internal_unpack_fn_t odti_unpack_fn; /** copy function */ pmix_bfrop_copy_fn_t odti_copy_fn; /** prpmix_status_t function */ @@ -240,8 +281,8 @@ _info = PMIX_NEW(pmix_bfrop_type_info_t); \ _info->odti_name = strdup((n)); \ _info->odti_type = (t); \ - _info->odti_pack_fn = (pmix_bfrop_pack_fn_t)(p); \ - _info->odti_unpack_fn = (pmix_bfrop_unpack_fn_t)(u); \ + _info->odti_pack_fn = (pmix_bfrop_internal_pack_fn_t)(p); \ + _info->odti_unpack_fn = (pmix_bfrop_internal_unpack_fn_t)(u); \ _info->odti_copy_fn = (pmix_bfrop_copy_fn_t)(c) ; \ _info->odti_print_fn = (pmix_bfrop_print_fn_t)(pr) ; \ pmix_pointer_array_set_item((arr), (t), _info); \ @@ -306,88 +347,131 @@ const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_bool(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_bool(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_int(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_int(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_sizet(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_sizet(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_byte(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_byte(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_string(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_string(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_pid(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_pid(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_int16(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_int16(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_int32(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_int32(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_int64(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_int64(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_string(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_string(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_float(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_float(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_double(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_double(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_timeval(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_timeval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_time(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_time(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_status(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_status(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_buf(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_buf(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_bo(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_bo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_proc(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_proc(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_value(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_value(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_info(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_info(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_pdata(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_pdata(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_app(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_app(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_kval(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_kval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_array(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_modex(pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_persist(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_persist(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_datatype(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_datatype(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_ptr(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_ptr(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_scope(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_scope(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_range(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_range(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_cmd(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_cmd(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_info_directives(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_info_directives(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_pstate(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_pstate(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_pinfo(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_pinfo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_darray(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_darray(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_rank(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_rank(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_query(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_query(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_val(pmix_buffer_t *buffer, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_val(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_value_t *p); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_alloc_directive(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_alloc_directive(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_iof_channel(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_iof_channel(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_envar(pmix_buffer_t *buffer, const void *src, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_envar(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +PMIX_EXPORT pmix_status_t pmix_bfrops_base_pack_regex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); /* @@ -398,90 +482,135 @@ void *dst, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_bool(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_bool(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_byte(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_byte(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_string(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_string(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_int(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_int(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_sizet(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_sizet(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_pid(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_pid(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_int16(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_int16(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_int32(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_int32(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_datatype(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_datatype(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_int64(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_int64(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_float(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_float(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_double(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_double(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_timeval(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_timeval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_time(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_time(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_status(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_status(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_val(pmix_buffer_t *buffer, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_val(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_value_t *val); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_value(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_value(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_info(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_info(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_pdata(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_pdata(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_buf(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_buf(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_proc(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_proc(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_app(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_app(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_kval(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_kval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_modex(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_modex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_persist(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_persist(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_bo(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_bo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_ptr(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_ptr(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_scope(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_scope(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_range(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_range(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_cmd(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_cmd(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_info_directives(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_info_directives(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_datatype(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_datatype(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_pstate(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_pstate(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_pinfo(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_pinfo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_darray(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_darray(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_rank(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_rank(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_query(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_query(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_alloc_directive(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_alloc_directive(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_iof_channel(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_iof_channel(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_envar(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_envar(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_regex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); + /**** DEPRECATED ****/ -PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_array(pmix_buffer_t *buffer, void *dest, +PMIX_EXPORT pmix_status_t pmix_bfrops_base_unpack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); /* @@ -538,6 +667,9 @@ PMIX_EXPORT pmix_status_t pmix_bfrops_base_copy_envar(pmix_envar_t **dest, pmix_envar_t *src, pmix_data_type_t type); +PMIX_EXPORT pmix_status_t pmix_bfrops_base_copy_regex(char **dest, + char *src, + pmix_data_type_t type); /* * "Standard" print functions @@ -646,6 +778,10 @@ PMIX_EXPORT pmix_status_t pmix_bfrops_base_print_envar(char **output, char *prefix, pmix_envar_t *src, pmix_data_type_t type); +PMIX_EXPORT pmix_status_t pmix_bfrops_base_print_regex(char **output, char *prefix, + char *src, + pmix_data_type_t type); + /* * Common helper functions @@ -655,9 +791,11 @@ PMIX_EXPORT bool pmix_bfrop_too_small(pmix_buffer_t *buffer, size_t bytes_reqd); -PMIX_EXPORT pmix_status_t pmix_bfrop_store_data_type(pmix_buffer_t *buffer, pmix_data_type_t type); +PMIX_EXPORT pmix_status_t pmix_bfrop_store_data_type(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_data_type_t type); -PMIX_EXPORT pmix_status_t pmix_bfrop_get_data_type(pmix_buffer_t *buffer, pmix_data_type_t *type); +PMIX_EXPORT pmix_status_t pmix_bfrop_get_data_type(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_data_type_t *type); PMIX_EXPORT pmix_status_t pmix_bfrops_base_copy_payload(pmix_buffer_t *dest, pmix_buffer_t *src); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_copy.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_copy.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_copy.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_copy.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -19,13 +19,14 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include "src/util/argv.h" #include "src/util/error.h" #include "src/util/output.h" #include "src/include/pmix_globals.h" +#include "src/mca/preg/preg.h" #include "src/mca/bfrops/base/base.h" @@ -202,6 +203,9 @@ pmix_status_t pmix_bfrops_base_copy_string(char **dest, char *src, pmix_data_type_t type) { + if (PMIX_STRING != type) { + return PMIX_ERR_BAD_PARAM; + } if (NULL == src) { /* got zero-length string/NULL pointer - store NULL */ *dest = NULL; } else { @@ -218,6 +222,9 @@ { pmix_value_t *p; + if (PMIX_VALUE != type) { + return PMIX_ERR_BAD_PARAM; + } /* create the new object */ *dest = (pmix_value_t*)malloc(sizeof(pmix_value_t)); if (NULL == *dest) { @@ -235,6 +242,9 @@ pmix_info_t *src, pmix_data_type_t type) { + if (PMIX_VALUE != type) { + return PMIX_ERR_BAD_PARAM; + } *dest = (pmix_info_t*)malloc(sizeof(pmix_info_t)); pmix_strncpy((*dest)->key, src->key, PMIX_MAX_KEYLEN); (*dest)->flags = src->flags; @@ -245,6 +255,9 @@ pmix_buffer_t *src, pmix_data_type_t type) { + if (PMIX_BUFFER != type) { + return PMIX_ERR_BAD_PARAM; + } *dest = PMIX_NEW(pmix_buffer_t); pmix_bfrops_base_copy_payload(*dest, src); return PMIX_SUCCESS; @@ -256,6 +269,9 @@ { size_t j; + if (PMIX_APP != type) { + return PMIX_ERR_BAD_PARAM; + } *dest = (pmix_app_t*)malloc(sizeof(pmix_app_t)); (*dest)->cmd = strdup(src->cmd); (*dest)->argv = pmix_argv_copy(src->argv); @@ -279,6 +295,9 @@ { pmix_kval_t *p; + if (PMIX_KVAL != type) { + return PMIX_ERR_BAD_PARAM; + } /* create the new object */ *dest = PMIX_NEW(pmix_kval_t); if (NULL == *dest) { @@ -296,6 +315,9 @@ pmix_proc_t *src, pmix_data_type_t type) { + if (PMIX_PROC != type) { + return PMIX_ERR_BAD_PARAM; + } *dest = (pmix_proc_t*)malloc(sizeof(pmix_proc_t)); if (NULL == *dest) { return PMIX_ERR_OUT_OF_RESOURCE; @@ -309,6 +331,9 @@ pmix_persistence_t *src, pmix_data_type_t type) { + if (PMIX_PERSIST != type) { + return PMIX_ERR_BAD_PARAM; + } *dest = (pmix_persistence_t*)malloc(sizeof(pmix_persistence_t)); if (NULL == *dest) { return PMIX_ERR_OUT_OF_RESOURCE; @@ -321,6 +346,9 @@ pmix_byte_object_t *src, pmix_data_type_t type) { + if (PMIX_BYTE_OBJECT != type) { + return PMIX_ERR_BAD_PARAM; + } *dest = (pmix_byte_object_t*)malloc(sizeof(pmix_byte_object_t)); if (NULL == *dest) { return PMIX_ERR_OUT_OF_RESOURCE; @@ -335,6 +363,9 @@ pmix_pdata_t *src, pmix_data_type_t type) { + if (PMIX_PDATA != type) { + return PMIX_ERR_BAD_PARAM; + } *dest = (pmix_pdata_t*)malloc(sizeof(pmix_pdata_t)); pmix_strncpy((*dest)->proc.nspace, src->proc.nspace, PMIX_MAX_NSLEN); (*dest)->proc.rank = src->proc.rank; @@ -348,6 +379,9 @@ { pmix_proc_info_t *p; + if (PMIX_INFO != type) { + return PMIX_ERR_BAD_PARAM; + } PMIX_PROC_INFO_CREATE(p, 1); if (NULL == p) { return PMIX_ERR_NOMEM; @@ -388,6 +422,10 @@ pmix_query_t *pq, *sq; pmix_envar_t *pe, *se; + if (PMIX_DATA_ARRAY != type) { + return PMIX_ERR_BAD_PARAM; + } + p = (pmix_data_array_t*)calloc(1, sizeof(pmix_data_array_t)); if (NULL == p) { return PMIX_ERR_NOMEM; @@ -815,6 +853,9 @@ { pmix_status_t rc; + if (PMIX_QUERY != type) { + return PMIX_ERR_BAD_PARAM; + } *dest = (pmix_query_t*)malloc(sizeof(pmix_query_t)); if (NULL != src->keys) { (*dest)->keys = pmix_argv_copy(src->keys); @@ -833,6 +874,9 @@ pmix_envar_t *src, pmix_data_type_t type) { + if (PMIX_ENVAR != type) { + return PMIX_ERR_BAD_PARAM; + } PMIX_ENVAR_CREATE(*dest, 1); if (NULL == (*dest)) { return PMIX_ERR_NOMEM; @@ -846,3 +890,16 @@ (*dest)->separator = src->separator; return PMIX_SUCCESS; } + +pmix_status_t pmix_bfrops_base_copy_regex(char **dest, + char *src, + pmix_data_type_t type) +{ + size_t len; + + if (PMIX_REGEX != type) { + return PMIX_ERR_BAD_PARAM; + } + + return pmix_preg.copy(dest, &len, src); +} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_fns.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_fns.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_fns.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_fns.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,9 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2015-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2019 Mellanox Technologies, Inc. + * All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,7 +19,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include @@ -28,6 +30,7 @@ #include "src/util/argv.h" #include "src/util/error.h" #include "src/include/pmix_globals.h" +#include "src/mca/preg/preg.h" #include "src/mca/bfrops/base/base.h" @@ -201,7 +204,13 @@ PMIX_ERROR_LOG(rc); } break; - + case PMIX_REGEX: + /* load it into the byte object */ + rc = pmix_preg.copy(&v->data.bo.bytes, &v->data.bo.size, (char*)data); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + } + break; default: /* silence warnings */ break; @@ -354,6 +363,15 @@ *data = envar; *sz = sizeof(pmix_envar_t); break; + case PMIX_REGEX: + if (NULL != kv->data.bo.bytes && 0 < kv->data.bo.size) { + *data = kv->data.bo.bytes; + *sz = kv->data.bo.size; + } else { + *data = NULL; + *sz = 0; + } + break; default: /* silence warnings */ rc = PMIX_ERROR; @@ -501,6 +519,7 @@ } rc = PMIX_EQUAL; break; + default: pmix_output(0, "COMPARE-PMIX-VALUE: UNSUPPORTED TYPE %d", (int)p->type); } @@ -600,6 +619,7 @@ break; case PMIX_BYTE_OBJECT: case PMIX_COMPRESSED_STRING: + case PMIX_REGEX: memset(&p->data.bo, 0, sizeof(pmix_byte_object_t)); if (NULL != src->data.bo.bytes && 0 < src->data.bo.size) { p->data.bo.bytes = malloc(src->data.bo.size); @@ -727,39 +747,23 @@ return false; } -pmix_status_t pmix_bfrop_store_data_type(pmix_buffer_t *buffer, pmix_data_type_t type) +pmix_status_t pmix_bfrop_store_data_type(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_data_type_t type) { - uint16_t tmp; - char *dst; - - /* check to see if buffer needs extending */ - if (NULL == (dst = pmix_bfrop_buffer_extend(buffer, sizeof(tmp)))) { - return PMIX_ERR_OUT_OF_RESOURCE; - } - tmp = pmix_htons(type); - memcpy(dst, &tmp, sizeof(tmp)); - buffer->pack_ptr += sizeof(tmp); - buffer->bytes_used += sizeof(tmp); + pmix_status_t ret; - return PMIX_SUCCESS; + PMIX_BFROPS_PACK_TYPE(ret, buffer, &type, 1, PMIX_UINT16, regtypes); + return ret; } -pmix_status_t pmix_bfrop_get_data_type(pmix_buffer_t *buffer, pmix_data_type_t *type) +pmix_status_t pmix_bfrop_get_data_type(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_data_type_t *type) { - uint16_t tmp; - - /* check to see if there's enough data in buffer */ - if (pmix_bfrop_too_small(buffer, sizeof(tmp))) { - return PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER; - } + pmix_status_t ret; + int32_t m = 1; - /* unpack the data */ - memcpy(&tmp, buffer->unpack_ptr, sizeof(tmp)); - tmp = pmix_ntohs(tmp); - memcpy(type, &tmp, sizeof(tmp)); - buffer->unpack_ptr += sizeof(tmp); - - return PMIX_SUCCESS; + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, type, &m, PMIX_UINT16, regtypes); + return ret; } const char* pmix_bfrops_base_data_type_string(pmix_pointer_array_t *regtypes, diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_frame.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_frame.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_frame.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_frame.c 2022-05-29 09:51:40.000000000 +0000 @@ -11,9 +11,9 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. - * Copyright (c) 2015-2018 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -23,9 +23,9 @@ /** @file: * */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #ifdef HAVE_STRING_H #include @@ -47,11 +47,26 @@ #include "src/mca/bfrops/base/static-components.h" /* Instantiate the global vars */ -pmix_bfrops_globals_t pmix_bfrops_globals = {{{0}}}; +pmix_bfrops_globals_t pmix_bfrops_globals = { + .actives = PMIX_LIST_STATIC_INIT, + .initialized = false, + .initial_size = 0, + .threshold_size = 0, +#if PMIX_ENABLE_DEBUG + .default_type = PMIX_BFROP_BUFFER_FULLY_DESC +#else + .default_type = PMIX_BFROP_BUFFER_NON_DESC +#endif +}; int pmix_bfrops_base_output = 0; static int pmix_bfrop_register(pmix_mca_base_register_flag_t flags) { + if (PMIX_MCA_BASE_REGISTER_DEFAULT == flags) { + /* do something to silence warning */ + int count=0; + ++count; + } pmix_bfrops_globals.initial_size = PMIX_BFROP_DEFAULT_INITIAL_SIZE; pmix_mca_base_var_register("pmix", "bfrops", "base", "initial_size", "Initial size of a buffer", @@ -88,6 +103,7 @@ return PMIX_SUCCESS; } pmix_bfrops_globals.initialized = false; + pmix_bfrops_globals.selected = false; /* the components will cleanup when closed */ PMIX_LIST_DESTRUCT(&pmix_bfrops_globals.actives); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_pack.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_pack.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_pack.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_pack.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,9 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2015-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2019 Mellanox Technologies, Inc. + * All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,7 +19,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include @@ -30,6 +32,7 @@ #include "src/util/error.h" #include "src/util/output.h" #include "src/include/pmix_globals.h" +#include "src/mca/preg/preg.h" #include "src/mca/bfrops/base/base.h" @@ -49,14 +52,14 @@ /* Pack the number of values */ if (PMIX_BFROP_BUFFER_FULLY_DESC == buffer->type) { - if (PMIX_SUCCESS != (rc = pmix_bfrop_store_data_type(buffer, PMIX_INT32))) { + if (PMIX_SUCCESS != (rc = pmix_bfrop_store_data_type(regtypes, buffer, PMIX_INT32))) { return rc; } } - if (PMIX_SUCCESS != (rc = pmix_bfrops_base_pack_int32(buffer, &num_vals, 1, PMIX_INT32))) { + PMIX_BFROPS_PACK_TYPE(rc, buffer, &num_vals, 1, PMIX_INT32, regtypes); + if (PMIX_SUCCESS != rc) { return rc; } - /* Pack the value(s) */ return pmix_bfrops_base_pack_buffer(regtypes, buffer, src, num_vals, type); } @@ -68,7 +71,6 @@ pmix_data_type_t type) { pmix_status_t rc; - pmix_bfrop_type_info_t *info; pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrops_base_pack_buffer( %p, %p, %lu, %d )\n", @@ -76,47 +78,12 @@ /* Pack the declared data type */ if (PMIX_BFROP_BUFFER_FULLY_DESC == buffer->type) { - if (PMIX_SUCCESS != (rc = pmix_bfrop_store_data_type(buffer, type))) { + if (PMIX_SUCCESS != (rc = pmix_bfrop_store_data_type(regtypes, buffer, type))) { return rc; } } - - /* Lookup the pack function for this type and call it */ - if (NULL == (info = (pmix_bfrop_type_info_t*)pmix_pointer_array_get_item(regtypes, type))) { - PMIX_ERROR_LOG(PMIX_ERR_UNKNOWN_DATA_TYPE); - return PMIX_ERR_UNKNOWN_DATA_TYPE; - } - - return info->odti_pack_fn(buffer, src, num_vals, type); -} - -static pmix_status_t pack_gentype(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) -{ - switch(type) { - case PMIX_INT8: - case PMIX_UINT8: - return pmix_bfrops_base_pack_byte(buffer, src, num_vals, type); - break; - - case PMIX_INT16: - case PMIX_UINT16: - return pmix_bfrops_base_pack_int16(buffer, src, num_vals, type); - break; - - case PMIX_INT32: - case PMIX_UINT32: - return pmix_bfrops_base_pack_int32(buffer, src, num_vals, type); - break; - - case PMIX_INT64: - case PMIX_UINT64: - return pmix_bfrops_base_pack_int64(buffer, src, num_vals, type); - break; - - default: - return PMIX_ERR_UNKNOWN_DATA_TYPE; - } + PMIX_BFROPS_PACK_TYPE(rc, buffer, src, num_vals, type, regtypes); + return rc; } /* PACK FUNCTIONS FOR GENERIC SYSTEM TYPES */ @@ -124,7 +91,8 @@ /* * BOOL */ - pmix_status_t pmix_bfrops_base_pack_bool(pmix_buffer_t *buffer, const void *src, + pmix_status_t pmix_bfrops_base_pack_bool(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { uint8_t *dst; @@ -134,6 +102,12 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrops_base_pack_bool * %d\n", num_vals); + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_BOOL != type) { + return PMIX_ERR_BAD_PARAM; + } /* check to see if buffer needs extending */ if (NULL == (dst = (uint8_t*)pmix_bfrop_buffer_extend(buffer, num_vals))) { return PMIX_ERR_OUT_OF_RESOURCE; @@ -158,61 +132,76 @@ /* * INT */ -pmix_status_t pmix_bfrops_base_pack_int(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_int(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_status_t ret; + if (PMIX_INT != type && PMIX_UINT != type) { + return PMIX_ERR_BAD_PARAM; + } /* System types need to always be described so we can properly unpack them */ - if (PMIX_SUCCESS != (ret = pmix_bfrop_store_data_type(buffer, BFROP_TYPE_INT))) { + if (PMIX_SUCCESS != (ret = pmix_bfrop_store_data_type(regtypes, buffer, BFROP_TYPE_INT))) { return ret; } /* Turn around and pack the real type */ - return pack_gentype(buffer, src, num_vals, BFROP_TYPE_INT); + PMIX_BFROPS_PACK_TYPE(ret, buffer, src, num_vals, BFROP_TYPE_INT, regtypes); + return ret; } /* * SIZE_T */ -pmix_status_t pmix_bfrops_base_pack_sizet(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_sizet(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { int ret; + if (PMIX_SIZE != type) { + return PMIX_ERR_BAD_PARAM; + } /* System types need to always be described so we can properly unpack them. */ - if (PMIX_SUCCESS != (ret = pmix_bfrop_store_data_type(buffer, BFROP_TYPE_SIZE_T))) { + if (PMIX_SUCCESS != (ret = pmix_bfrop_store_data_type(regtypes, buffer, BFROP_TYPE_SIZE_T))) { return ret; } - return pack_gentype(buffer, src, num_vals, BFROP_TYPE_SIZE_T); + PMIX_BFROPS_PACK_TYPE(ret, buffer, src, num_vals, BFROP_TYPE_SIZE_T, regtypes); + return ret; } /* * PID_T */ -pmix_status_t pmix_bfrops_base_pack_pid(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_pid(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { int ret; + if (PMIX_PID != type) { + return PMIX_ERR_BAD_PARAM; + } /* System types need to always be described so we can properly unpack them. */ - if (PMIX_SUCCESS != (ret = pmix_bfrop_store_data_type(buffer, BFROP_TYPE_PID_T))) { + if (PMIX_SUCCESS != (ret = pmix_bfrop_store_data_type(regtypes, buffer, BFROP_TYPE_PID_T))) { return ret; } /* Turn around and pack the real type */ - return pack_gentype(buffer, src, num_vals, BFROP_TYPE_PID_T); + PMIX_BFROPS_PACK_TYPE(ret, buffer, src, num_vals, BFROP_TYPE_PID_T, regtypes); + return ret; } - /* * BYTE, CHAR, INT8 */ -pmix_status_t pmix_bfrops_base_pack_byte(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_byte(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { char *dst; @@ -220,6 +209,12 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrops_base_pack_byte * %d\n", num_vals); + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_BYTE != type && PMIX_UINT8 != type && PMIX_INT8 != type) { + return PMIX_ERR_BAD_PARAM; + } /* check to see if buffer needs extending */ if (NULL == (dst = pmix_bfrop_buffer_extend(buffer, num_vals))) { return PMIX_ERR_OUT_OF_RESOURCE; @@ -238,7 +233,8 @@ /* * INT16 */ -pmix_status_t pmix_bfrops_base_pack_int16(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_int16(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { int32_t i; @@ -248,6 +244,12 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrops_base_pack_int16 * %d\n", num_vals); + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_INT16 != type && PMIX_UINT16 != type) { + return PMIX_ERR_BAD_PARAM; + } /* check to see if buffer needs extending */ if (NULL == (dst = pmix_bfrop_buffer_extend(buffer, num_vals*sizeof(tmp)))) { return PMIX_ERR_OUT_OF_RESOURCE; @@ -267,7 +269,8 @@ /* * INT32 */ -pmix_status_t pmix_bfrops_base_pack_int32(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_int32(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { int32_t i; @@ -277,6 +280,12 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrops_base_pack_int32 * %d\n", num_vals); + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_INT32 != type && PMIX_UINT32 != type) { + return PMIX_ERR_BAD_PARAM; + } /* check to see if buffer needs extending */ if (NULL == (dst = pmix_bfrop_buffer_extend(buffer, num_vals*sizeof(tmp)))) { return PMIX_ERR_OUT_OF_RESOURCE; @@ -295,7 +304,8 @@ /* * INT64 */ -pmix_status_t pmix_bfrops_base_pack_int64(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_int64(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { int32_t i; @@ -306,6 +316,12 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrops_base_pack_int64 * %d\n", num_vals); + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_INT64 != type && PMIX_UINT64 != type) { + return PMIX_ERR_BAD_PARAM; + } /* check to see if buffer needs extending */ if (NULL == (dst = pmix_bfrop_buffer_extend(buffer, bytes_packed))) { return PMIX_ERR_OUT_OF_RESOURCE; @@ -326,34 +342,45 @@ /* * STRING */ -pmix_status_t pmix_bfrops_base_pack_string(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_string(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { int ret = PMIX_SUCCESS; int32_t i, len; char **ssrc = (char**) src; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_STRING != type) { + return PMIX_ERR_BAD_PARAM; + } for (i = 0; i < num_vals; ++i) { if (NULL == ssrc[i]) { /* got zero-length string/NULL pointer - store NULL */ len = 0; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int32(buffer, &len, 1, PMIX_INT32))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &len, 1, PMIX_INT32, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } else { len = (int32_t)strlen(ssrc[i]) + 1; // retain the NULL terminator - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int32(buffer, &len, 1, PMIX_INT32))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &len, 1, PMIX_INT32, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_byte(buffer, ssrc[i], len, PMIX_BYTE))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, ssrc[i], len, PMIX_BYTE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } } -return ret; + return ret; } /* FLOAT */ -pmix_status_t pmix_bfrops_base_pack_float(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_float(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { int ret = PMIX_SUCCESS; @@ -361,23 +388,30 @@ float *ssrc = (float*)src; char *convert; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_FLOAT != type) { + return PMIX_ERR_BAD_PARAM; + } for (i = 0; i < num_vals; ++i) { ret = asprintf(&convert, "%f", ssrc[i]); if (0 > ret) { return PMIX_ERR_OUT_OF_RESOURCE; } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_string(buffer, &convert, 1, PMIX_STRING))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &convert, 1, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { free(convert); return ret; } free(convert); } - return PMIX_SUCCESS; } /* DOUBLE */ -pmix_status_t pmix_bfrops_base_pack_double(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_double(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { int ret = PMIX_SUCCESS; @@ -385,23 +419,30 @@ double *ssrc = (double*)src; char *convert; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_DOUBLE != type) { + return PMIX_ERR_BAD_PARAM; + } for (i = 0; i < num_vals; ++i) { ret = asprintf(&convert, "%f", ssrc[i]); if (0 > ret) { return PMIX_ERR_OUT_OF_RESOURCE; } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_string(buffer, &convert, 1, PMIX_STRING))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &convert, 1, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { free(convert); return ret; } free(convert); } - return PMIX_SUCCESS; } /* TIMEVAL */ -pmix_status_t pmix_bfrops_base_pack_timeval(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_timeval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { int64_t tmp[2]; @@ -409,19 +450,26 @@ int32_t i; struct timeval *ssrc = (struct timeval *)src; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_TIMEVAL != type) { + return PMIX_ERR_BAD_PARAM; + } for (i = 0; i < num_vals; ++i) { tmp[0] = (int64_t)ssrc[i].tv_sec; tmp[1] = (int64_t)ssrc[i].tv_usec; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int64(buffer, tmp, 2, PMIX_INT64))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, tmp, 2, PMIX_INT64, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } - return PMIX_SUCCESS; } /* TIME */ -pmix_status_t pmix_bfrops_base_pack_time(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_time(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { int ret = PMIX_SUCCESS; @@ -429,21 +477,28 @@ time_t *ssrc = (time_t *)src; uint64_t ui64; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_TIME != type) { + return PMIX_ERR_BAD_PARAM; + } /* time_t is a system-dependent size, so cast it * to uint64_t as a generic safe size */ for (i = 0; i < num_vals; ++i) { ui64 = (uint64_t)ssrc[i]; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int64(buffer, &ui64, 1, PMIX_UINT64))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &ui64, 1, PMIX_UINT64, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } - return PMIX_SUCCESS; } /* STATUS */ -pmix_status_t pmix_bfrops_base_pack_status(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_status(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { int ret = PMIX_SUCCESS; @@ -451,38 +506,57 @@ pmix_status_t *ssrc = (pmix_status_t *)src; int32_t status; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_STATUS != type) { + return PMIX_ERR_BAD_PARAM; + } for (i = 0; i < num_vals; ++i) { status = (int32_t)ssrc[i]; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int32(buffer, &status, 1, PMIX_INT32))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &status, 1, PMIX_INT32, regtypes); + if (PMIX_SUCCESS != ret) { PMIX_ERROR_LOG(ret); return ret; } } - return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_pack_buf(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_buf(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_buffer_t *ptr; int32_t i; int ret; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_BUFFER != type) { + return PMIX_ERR_BAD_PARAM; + } ptr = (pmix_buffer_t *) src; for (i = 0; i < num_vals; ++i) { /* pack the type of buffer */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_byte(buffer, &ptr[i].type, 1, PMIX_BYTE))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &ptr[i].type, 1, + PMIX_BYTE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* pack the number of bytes */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_sizet(buffer, &ptr[i].bytes_used, 1, PMIX_SIZE))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &ptr[i].bytes_used, 1, + PMIX_SIZE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* pack the bytes */ if (0 < ptr[i].bytes_used) { - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_byte(buffer, ptr[i].base_ptr, ptr[i].bytes_used, PMIX_BYTE))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, ptr[i].base_ptr, + ptr[i].bytes_used, PMIX_BYTE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } @@ -490,20 +564,30 @@ return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_pack_bo(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_bo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { int ret; int i; pmix_byte_object_t *bo; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_BYTE_OBJECT != type) { + return PMIX_ERR_BAD_PARAM; + } bo = (pmix_byte_object_t*)src; for (i=0; i < num_vals; i++) { - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_sizet(buffer, &bo[i].size, 1, PMIX_SIZE))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &bo[i].size, 1, PMIX_SIZE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (0 < bo[i].size) { - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_byte(buffer, bo[i].bytes, bo[i].size, PMIX_BYTE))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, bo[i].bytes, bo[i].size, + PMIX_BYTE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } @@ -511,21 +595,31 @@ return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_pack_proc(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_proc(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_proc_t *proc; int32_t i; int ret; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_PROC != type) { + return PMIX_ERR_BAD_PARAM; + } proc = (pmix_proc_t *) src; for (i = 0; i < num_vals; ++i) { char *ptr = proc[i].nspace; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_string(buffer, &ptr, 1, PMIX_STRING))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &ptr, 1, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_rank(buffer, &proc[i].rank, 1, PMIX_PROC_RANK))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &proc[i].rank, 1, + PMIX_PROC_RANK, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } @@ -534,31 +628,38 @@ /* PMIX_VALUE */ -pmix_status_t pmix_bfrops_base_pack_value(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_value(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_value_t *ptr; int32_t i; int ret; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_VALUE != type) { + return PMIX_ERR_BAD_PARAM; + } ptr = (pmix_value_t *) src; for (i = 0; i < num_vals; ++i) { /* pack the type */ - if (PMIX_SUCCESS != (ret = pmix_bfrop_store_data_type(buffer, ptr[i].type))) { + if (PMIX_SUCCESS != (ret = pmix_bfrop_store_data_type(regtypes, buffer, ptr[i].type))) { return ret; } /* now pack the right field */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_val(buffer, &ptr[i]))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_val(regtypes, buffer, &ptr[i]))) { return ret; } } - return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_pack_info(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_info(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_info_t *info; @@ -566,31 +667,41 @@ int ret; char *foo; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_INFO != type) { + return PMIX_ERR_BAD_PARAM; + } info = (pmix_info_t *) src; for (i = 0; i < num_vals; ++i) { /* pack key */ foo = info[i].key; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_string(buffer, &foo, 1, PMIX_STRING))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &foo, 1, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* pack info directives */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_info_directives(buffer, &info[i].flags, 1, PMIX_INFO_DIRECTIVES))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &info[i].flags, 1, + PMIX_INFO_DIRECTIVES, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* pack the type */ - if (PMIX_SUCCESS != (ret = pmix_bfrop_store_data_type(buffer, info[i].value.type))) { + if (PMIX_SUCCESS != (ret = pmix_bfrop_store_data_type(regtypes, buffer, info[i].value.type))) { return ret; } /* pack value */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_val(buffer, &info[i].value))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_val(regtypes, buffer, &info[i].value))) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_pack_pdata(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_pdata(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_pdata_t *pdata; @@ -598,26 +709,35 @@ int ret; char *foo; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_PDATA != type) { + return PMIX_ERR_BAD_PARAM; + } pdata = (pmix_pdata_t *) src; for (i = 0; i < num_vals; ++i) { /* pack the proc */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_proc(buffer, &pdata[i].proc, 1, PMIX_PROC))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &pdata[i].proc, 1, + PMIX_PROC, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* pack key */ foo = pdata[i].key; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_string(buffer, &foo, 1, PMIX_STRING))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &foo, 1, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { PMIX_ERROR_LOG(ret); return ret; } /* pack the type */ - if (PMIX_SUCCESS != (ret = pmix_bfrop_store_data_type(buffer, pdata[i].value.type))) { + if (PMIX_SUCCESS != (ret = pmix_bfrop_store_data_type(regtypes, buffer, pdata[i].value.type))) { PMIX_ERROR_LOG(ret); return ret; } /* pack value */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_val(buffer, &pdata[i].value))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_val(regtypes, buffer, &pdata[i].value))) { PMIX_ERROR_LOG(ret); return ret; } @@ -625,53 +745,79 @@ return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_pack_app(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_app(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_app_t *app; int32_t i, j, nvals; int ret; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_APP != type) { + return PMIX_ERR_BAD_PARAM; + } app = (pmix_app_t *) src; for (i = 0; i < num_vals; ++i) { - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_string(buffer, &app[i].cmd, 1, PMIX_STRING))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &app[i].cmd, 1, PMIX_STRING, + regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* argv */ nvals = pmix_argv_count(app[i].argv); - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int(buffer, &nvals, 1, PMIX_INT32))) { + /* although nvals is technically an int32, we have to pack it + * as a generic int due to a typo in earlier release series. This + * preserves the ordering of bytes in the packed buffer as it + * includes a tag indicating the actual size of the value. No + * harm is done as generic int is equivalent to int32 on all + * current systems - just something to watch out for in the + * future should someone someday change the size of "int" */ + PMIX_BFROPS_PACK_TYPE(ret, buffer, &nvals, 1, PMIX_INT, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } for (j=0; j < nvals; j++) { - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_string(buffer, &app[i].argv[j], 1, PMIX_STRING))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &app[i].argv[j], 1, PMIX_STRING, + regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } /* env */ nvals = pmix_argv_count(app[i].env); - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int32(buffer, &nvals, 1, PMIX_INT32))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &nvals, 1, PMIX_INT32, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } for (j=0; j < nvals; j++) { - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_string(buffer, &app[i].env[j], 1, PMIX_STRING))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &app[i].env[j], 1, + PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } /* cwd */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_string(buffer, &app[i].cwd, 1, PMIX_STRING))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &app[i].cwd, 1, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* maxprocs */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int(buffer, &app[i].maxprocs, 1, PMIX_INT))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &app[i].maxprocs, 1, PMIX_INT, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* info array */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_sizet(buffer, &app[i].ninfo, 1, PMIX_SIZE))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &app[i].ninfo, 1, PMIX_SIZE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (0 < app[i].ninfo) { - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_info(buffer, app[i].info, app[i].ninfo, PMIX_INFO))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, app[i].info, app[i].ninfo, PMIX_INFO, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } @@ -680,327 +826,269 @@ } -pmix_status_t pmix_bfrops_base_pack_kval(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_kval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_kval_t *ptr; int32_t i; int ret; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_KVAL != type) { + return PMIX_ERR_BAD_PARAM; + } ptr = (pmix_kval_t *) src; for (i = 0; i < num_vals; ++i) { /* pack the key */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_string(buffer, &ptr[i].key, 1, PMIX_STRING))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &ptr[i].key, 1, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* pack the value */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_value(buffer, ptr[i].value, 1, PMIX_VALUE))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, ptr[i].value, 1, PMIX_VALUE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } - return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_pack_persist(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_persist(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_pack_byte(buffer, src, num_vals, PMIX_UINT8); + pmix_status_t ret; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_PERSIST != type) { + return PMIX_ERR_BAD_PARAM; + } + PMIX_BFROPS_PACK_TYPE(ret, buffer, src, num_vals, PMIX_BYTE, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_pack_datatype(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_datatype(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_pack_int16(buffer, src, num_vals, type); + pmix_status_t ret; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_DATA_TYPE != type) { + return PMIX_ERR_BAD_PARAM; + } + PMIX_BFROPS_PACK_TYPE(ret, buffer, src, num_vals, PMIX_UINT16, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_pack_ptr(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_ptr(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { + pmix_status_t ret; uint8_t foo=1; + + if (NULL == regtypes || NULL != src || 0 == num_vals) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_POINTER != type) { + return PMIX_ERR_BAD_PARAM; + } /* it obviously makes no sense to pack a pointer and * send it somewhere else, so we just pack a sentinel */ - return pmix_bfrops_base_pack_byte(buffer, &foo, 1, PMIX_UINT8); + PMIX_BFROPS_PACK_TYPE(ret, buffer, &foo, 1, PMIX_UINT8, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_pack_scope(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_scope(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_pack_byte(buffer, src, num_vals, PMIX_UINT8); + pmix_status_t ret; + + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_SCOPE != type) { + return PMIX_ERR_BAD_PARAM; + } + PMIX_BFROPS_PACK_TYPE(ret, buffer, src, num_vals, PMIX_UINT8, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_pack_range(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_range(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_pack_byte(buffer, src, num_vals, PMIX_UINT8); + pmix_status_t ret; + + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_DATA_RANGE != type) { + return PMIX_ERR_BAD_PARAM; + } + PMIX_BFROPS_PACK_TYPE(ret, buffer, src, num_vals, PMIX_UINT8, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_pack_cmd(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_cmd(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_pack_byte(buffer, src, num_vals, PMIX_UINT8); + pmix_status_t ret; + + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_COMMAND != type) { + return PMIX_ERR_BAD_PARAM; + } + PMIX_BFROPS_PACK_TYPE(ret, buffer, src, num_vals, PMIX_UINT8, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_pack_info_directives(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_info_directives(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_pack_int32(buffer, src, num_vals, PMIX_UINT32); + pmix_status_t ret; + + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_INFO_DIRECTIVES != type) { + return PMIX_ERR_BAD_PARAM; + } + PMIX_BFROPS_PACK_TYPE(ret, buffer, src, num_vals, PMIX_UINT32, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_pack_pstate(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_pstate(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_pack_byte(buffer, src, num_vals, PMIX_UINT8); + pmix_status_t ret; + + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_PROC_STATE != type) { + return PMIX_ERR_BAD_PARAM; + } + PMIX_BFROPS_PACK_TYPE(ret, buffer, src, num_vals, PMIX_UINT8, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_pack_pinfo(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_pinfo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { - pmix_proc_info_t *pinfo = (pmix_proc_info_t*)src; + pmix_proc_info_t *pinfo = (pmix_proc_info_t *) src; pmix_status_t ret; int32_t i; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_PROC_INFO != type) { + return PMIX_ERR_BAD_PARAM; + } for (i=0; i < num_vals; i++) { /* pack the proc identifier */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_proc(buffer, &pinfo[i].proc, 1, PMIX_PROC))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &pinfo[i].proc, 1, PMIX_PROC, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* pack the hostname and exec */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_string(buffer, &pinfo[i].hostname, 1, PMIX_STRING))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &pinfo[i].hostname, 1, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_string(buffer, &pinfo[i].executable_name, 1, PMIX_STRING))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &pinfo[i].executable_name, 1, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* pack the pid and state */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_pid(buffer, &pinfo[i].pid, 1, PMIX_PID))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &pinfo[i].pid, 1, PMIX_PID, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_pstate(buffer, &pinfo[i].state, 1, PMIX_PROC_STATE))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &pinfo[i].state, 1, PMIX_PROC_STATE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_pack_darray(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_darray(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { - pmix_data_array_t *p = (pmix_data_array_t*)src; + pmix_data_array_t *p = (pmix_data_array_t *) src; pmix_status_t ret; int32_t i; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_DATA_ARRAY != type) { + return PMIX_ERR_BAD_PARAM; + } for (i=0; i < num_vals; i++) { /* pack the actual type in the array */ - if (PMIX_SUCCESS != (ret = pmix_bfrop_store_data_type(buffer, p[i].type))) { + if (PMIX_SUCCESS != (ret = pmix_bfrop_store_data_type(regtypes, buffer, + p[i].type))) { return ret; } /* pack the number of array elements */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_sizet(buffer, &p[i].size, 1, PMIX_SIZE))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &p[i].size, 1, PMIX_SIZE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (0 == p[i].size || PMIX_UNDEF == p[i].type) { /* nothing left to do */ continue; } - /* pack the actual elements - have to do this the hard way */ - switch(p[i].type) { - case PMIX_UNDEF: - break; - case PMIX_BOOL: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_bool(buffer, p[i].array, p[i].size, PMIX_BOOL))) { - return ret; - } - break; - case PMIX_BYTE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_byte(buffer, p[i].array, p[i].size, PMIX_BYTE))) { - return ret; - } - break; - case PMIX_STRING: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_string(buffer, p[i].array, p[i].size, PMIX_STRING))) { - return ret; - } - break; - case PMIX_SIZE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_sizet(buffer, p[i].array, p[i].size, PMIX_SIZE))) { - return ret; - } - break; - case PMIX_PID: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_pid(buffer, p[i].array, p[i].size, PMIX_PID))) { - return ret; - } - break; - case PMIX_INT: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int(buffer, p[i].array, p[i].size, PMIX_INT))) { - return ret; - } - break; - case PMIX_INT8: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_byte(buffer, p[i].array, p[i].size, PMIX_INT8))) { - return ret; - } - break; - case PMIX_INT16: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int16(buffer, p[i].array, p[i].size, PMIX_INT16))) { - return ret; - } - break; - case PMIX_INT32: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int32(buffer, p[i].array, p[i].size, PMIX_INT32))) { - return ret; - } - break; - case PMIX_INT64: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int64(buffer, p[i].array, p[i].size, PMIX_INT64))) { - return ret; - } - break; - case PMIX_UINT: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int(buffer, p[i].array, p[i].size, PMIX_UINT))) { - return ret; - } - break; - case PMIX_UINT8: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_byte(buffer, p[i].array, p[i].size, PMIX_UINT8))) { - return ret; - } - break; - case PMIX_UINT16: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int16(buffer, p[i].array, p[i].size, PMIX_UINT16))) { - return ret; - } - break; - case PMIX_UINT32: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int32(buffer, p[i].array, p[i].size, PMIX_UINT32))) { - return ret; - } - break; - case PMIX_UINT64: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int64(buffer, p[i].array, p[i].size, PMIX_UINT64))) { - return ret; - } - break; - case PMIX_FLOAT: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_float(buffer, p[i].array, p[i].size, PMIX_FLOAT))) { - return ret; - } - break; - case PMIX_DOUBLE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_double(buffer, p[i].array, p[i].size, PMIX_DOUBLE))) { - return ret; - } - break; - case PMIX_TIMEVAL: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_timeval(buffer, p[i].array, p[i].size, PMIX_TIMEVAL))) { - return ret; - } - break; - case PMIX_TIME: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_time(buffer, p[i].array, p[i].size, PMIX_TIME))) { - return ret; - } - break; - case PMIX_STATUS: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_status(buffer, p[i].array, p[i].size, PMIX_STATUS))) { - return ret; - } - break; - case PMIX_INFO: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_info(buffer, p[i].array, p[i].size, PMIX_INFO))) { - return ret; - } - break; - case PMIX_PROC: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_proc(buffer, p[i].array, p[i].size, PMIX_PROC))) { - return ret; - } - break; - case PMIX_PROC_RANK: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_rank(buffer, p[i].array, p[i].size, PMIX_PROC_RANK))) { - return ret; - } - break; - case PMIX_BYTE_OBJECT: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_bo(buffer, p[i].array, p[i].size, PMIX_BYTE_OBJECT))) { - return ret; - } - break; - case PMIX_PERSIST: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_persist(buffer, p[i].array, p[i].size, PMIX_PERSIST))) { - return ret; - } - break; - case PMIX_POINTER: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_ptr(buffer, p[i].array, p[i].size, PMIX_POINTER))) { - return ret; - } - break; - case PMIX_SCOPE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_scope(buffer, p[i].array, p[i].size, PMIX_SCOPE))) { - return ret; - } - break; - case PMIX_DATA_RANGE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_range(buffer, p[i].array, p[i].size, PMIX_DATA_RANGE))) { - return ret; - } - break; - case PMIX_PROC_STATE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_pstate(buffer, p[i].array, p[i].size, PMIX_PROC_STATE))) { - return ret; - } - break; - case PMIX_PROC_INFO: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_pinfo(buffer, p[i].array, p[i].size, PMIX_PROC_INFO))) { - return ret; - } - break; - case PMIX_DATA_ARRAY: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_darray(buffer, p[i].array, p[i].size, PMIX_DATA_ARRAY))) { - return ret; - } - break; - case PMIX_QUERY: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_query(buffer, p[i].array, p[i].size, PMIX_QUERY))) { - return ret; - } - break; - case PMIX_VALUE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_value(buffer, p[i].array, p[i].size, PMIX_QUERY))) { - return ret; - } - break; - case PMIX_ALLOC_DIRECTIVE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_alloc_directive(buffer, p[i].array, p[i].size, PMIX_ALLOC_DIRECTIVE))) { - return ret; - } - break; - case PMIX_ENVAR: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_envar(buffer, p[i].array, p[i].size, PMIX_ENVAR))) { - return ret; - } - break; - - default: - pmix_output(0, "PACK-PMIX-VALUE[%s:%d]: UNSUPPORTED TYPE %d", - __FILE__, __LINE__, (int)p[i].type); - return PMIX_ERROR; + /* pack the actual elements */ + PMIX_BFROPS_PACK_TYPE(ret, buffer, p[i].array, p[i].size, p[i].type, regtypes); + if (PMIX_ERR_UNKNOWN_DATA_TYPE == ret) { + pmix_output(0, "PACK-PMIX-VALUE[%s:%d]: UNSUPPORTED TYPE %d", + __FILE__, __LINE__, (int)p[i].type); + } + if (PMIX_SUCCESS != ret) { + return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_pack_rank(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_rank(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_pack_int32(buffer, src, num_vals, PMIX_UINT32); + pmix_status_t ret; + + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_PROC_RANK != type) { + return PMIX_ERR_BAD_PARAM; + } + PMIX_BFROPS_PACK_TYPE(ret, buffer, src, num_vals, PMIX_UINT32, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_pack_query(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_query(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_query_t *pq = (pmix_query_t*)src; @@ -1008,27 +1096,38 @@ int32_t i; int32_t nkeys; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_QUERY != type) { + return PMIX_ERR_BAD_PARAM; + } for (i=0; i < num_vals; i++) { /* pack the number of keys */ nkeys = pmix_argv_count(pq[i].keys); - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int32(buffer, &nkeys, 1, PMIX_INT32))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &nkeys, 1, PMIX_INT32, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (0 < nkeys) { /* pack the keys */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_string(buffer, pq[i].keys, nkeys, PMIX_STRING))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, pq[i].keys, nkeys, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } /* pack the number of qualifiers */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_sizet(buffer, &pq[i].nqual, 1, PMIX_SIZE))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &pq[i].nqual, 1, PMIX_SIZE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (0 < pq[i].nqual) { /* pack any provided qualifiers */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_info(buffer, pq[i].qualifiers, pq[i].nqual, PMIX_INFO))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, pq[i].qualifiers, pq[i].nqual, PMIX_INFO, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } + } } return PMIX_SUCCESS; @@ -1037,7 +1136,8 @@ /********************/ /* PACK FUNCTIONS FOR VALUE TYPES */ -pmix_status_t pmix_bfrops_base_pack_val(pmix_buffer_t *buffer, +pmix_status_t pmix_bfrops_base_pack_val(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_value_t *p) { pmix_status_t ret; @@ -1045,206 +1145,110 @@ switch (p->type) { case PMIX_UNDEF: break; - case PMIX_BOOL: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_bool(buffer, &p->data.flag, 1, PMIX_BOOL))) { - return ret; - } - break; - case PMIX_BYTE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_byte(buffer, &p->data.byte, 1, PMIX_BYTE))) { - return ret; - } - break; - case PMIX_STRING: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_string(buffer, &p->data.string, 1, PMIX_STRING))) { - return ret; - } - break; - case PMIX_SIZE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_sizet(buffer, &p->data.size, 1, PMIX_SIZE))) { - return ret; - } - break; - case PMIX_PID: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_pid(buffer, &p->data.pid, 1, PMIX_PID))) { - return ret; - } - break; - case PMIX_INT: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int(buffer, &p->data.integer, 1, PMIX_INT))) { - return ret; - } - break; - case PMIX_INT8: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_byte(buffer, &p->data.int8, 1, PMIX_INT8))) { - return ret; - } - break; - case PMIX_INT16: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int16(buffer, &p->data.int16, 1, PMIX_INT16))) { - return ret; - } - break; - case PMIX_INT32: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int32(buffer, &p->data.int32, 1, PMIX_INT32))) { - return ret; - } - break; - case PMIX_INT64: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int64(buffer, &p->data.int64, 1, PMIX_INT64))) { - return ret; - } - break; - case PMIX_UINT: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int(buffer, &p->data.uint, 1, PMIX_UINT))) { - return ret; - } - break; - case PMIX_UINT8: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_byte(buffer, &p->data.uint8, 1, PMIX_UINT8))) { - return ret; - } - break; - case PMIX_UINT16: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int16(buffer, &p->data.uint16, 1, PMIX_UINT16))) { - return ret; - } - break; - case PMIX_UINT32: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int32(buffer, &p->data.uint32, 1, PMIX_UINT32))) { - return ret; - } - break; - case PMIX_UINT64: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_int64(buffer, &p->data.uint64, 1, PMIX_UINT64))) { - return ret; - } - break; - case PMIX_FLOAT: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_float(buffer, &p->data.fval, 1, PMIX_FLOAT))) { - return ret; - } - break; - case PMIX_DOUBLE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_double(buffer, &p->data.dval, 1, PMIX_DOUBLE))) { - return ret; - } - break; - case PMIX_TIMEVAL: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_timeval(buffer, &p->data.tv, 1, PMIX_TIMEVAL))) { - return ret; - } - break; - case PMIX_TIME: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_time(buffer, &p->data.time, 1, PMIX_TIME))) { - return ret; - } - break; - case PMIX_STATUS: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_status(buffer, &p->data.status, 1, PMIX_STATUS))) { - return ret; - } - break; - case PMIX_PROC: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_proc(buffer, p->data.proc, 1, PMIX_PROC))) { - return ret; - } - break; - case PMIX_PROC_RANK: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_rank(buffer, &p->data.rank, 1, PMIX_PROC_RANK))) { - return ret; - } - break; - case PMIX_BYTE_OBJECT: - case PMIX_COMPRESSED_STRING: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_bo(buffer, &p->data.bo, 1, PMIX_BYTE_OBJECT))) { - return ret; - } - break; - case PMIX_PERSIST: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_persist(buffer, &p->data.persist, 1, PMIX_PERSIST))) { - return ret; - } - break; - case PMIX_POINTER: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_ptr(buffer, &p->data.ptr, 1, PMIX_POINTER))) { - return ret; - } - break; - case PMIX_SCOPE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_scope(buffer, &p->data.scope, 1, PMIX_SCOPE))) { - return ret; - } - break; - case PMIX_DATA_RANGE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_range(buffer, &p->data.range, 1, PMIX_DATA_RANGE))) { - return ret; - } - break; - case PMIX_PROC_STATE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_pstate(buffer, &p->data.state, 1, PMIX_PROC_STATE))) { - return ret; - } - break; case PMIX_PROC_INFO: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_pinfo(buffer, p->data.pinfo, 1, PMIX_PROC_INFO))) { - return ret; - } - break; case PMIX_DATA_ARRAY: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_darray(buffer, p->data.darray, 1, PMIX_DATA_ARRAY))) { - return ret; - } - break; - case PMIX_ALLOC_DIRECTIVE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_alloc_directive(buffer, &p->data.adir, 1, PMIX_ALLOC_DIRECTIVE))) { + case PMIX_PROC: + PMIX_BFROPS_PACK_TYPE(ret, buffer, p->data.ptr, 1, p->type, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } break; - case PMIX_ENVAR: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_envar(buffer, &p->data.envar, 1, PMIX_ENVAR))) { + default: + PMIX_BFROPS_PACK_TYPE(ret, buffer, &p->data, 1, p->type, regtypes); + if (PMIX_ERR_UNKNOWN_DATA_TYPE == ret) { + pmix_output(0, "PACK-PMIX-VALUE[%s:%d]: UNSUPPORTED TYPE %d", + __FILE__, __LINE__, (int)p->type); + return PMIX_ERROR; + } else if (PMIX_SUCCESS != ret) { return ret; } - break; - - default: - pmix_output(0, "PACK-PMIX-VALUE[%s:%d]: UNSUPPORTED TYPE %d", - __FILE__, __LINE__, (int)p->type); - return PMIX_ERROR; } return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_pack_alloc_directive(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_alloc_directive(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_pack_byte(buffer, src, num_vals, PMIX_UINT8); + pmix_status_t ret; + + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_ALLOC_DIRECTIVE != type) { + return PMIX_ERR_BAD_PARAM; + } + PMIX_BFROPS_PACK_TYPE(ret, buffer, src, num_vals, PMIX_UINT8, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_pack_iof_channel(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_iof_channel(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_pack_int16(buffer, src, num_vals, PMIX_UINT16); + pmix_status_t ret; + + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_IOF_CHANNEL != type) { + return PMIX_ERR_BAD_PARAM; + } + PMIX_BFROPS_PACK_TYPE(ret, buffer, src, num_vals, PMIX_UINT16, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_pack_envar(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix_bfrops_base_pack_envar(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_envar_t *ptr = (pmix_envar_t*)src; int32_t i; pmix_status_t ret; + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_ENVAR != type) { + return PMIX_ERR_BAD_PARAM; + } for (i=0; i < num_vals; ++i) { /* pack the name */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_string(buffer, &ptr[i].envar, 1, PMIX_STRING))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &ptr[i].envar, 1, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* pack the value */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_string(buffer, &ptr[i].value, 1, PMIX_STRING))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &ptr[i].value, 1, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* pack the separator */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_byte(buffer, &ptr[i].separator, 1, PMIX_BYTE))) { + PMIX_BFROPS_PACK_TYPE(ret, buffer, &ptr[i].separator, 1, PMIX_BYTE, regtypes); + if (PMIX_SUCCESS != ret) { + return ret; + } + } + return PMIX_SUCCESS; +} + +pmix_status_t pmix_bfrops_base_pack_regex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) +{ + char **ptr = (char**)src; + int32_t i; + pmix_status_t ret; + + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_REGEX != type) { + return PMIX_ERR_BAD_PARAM; + } + for (i=0; i < num_vals; ++i) { + ret = pmix_preg.pack(buffer, ptr[i]); + if (PMIX_SUCCESS != ret) { return ret; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_print.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_print.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_print.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_print.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. * All rights reserved. * @@ -21,9 +21,9 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include +#include "src/include/pmix_stdint.h" #include #ifdef HAVE_TIME_H @@ -64,6 +64,9 @@ char *prefx; int ret; + if (PMIX_BOOL != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -105,6 +108,9 @@ char *prefx; int ret; + if (PMIX_BYTE != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -145,6 +151,9 @@ char *prefx; int ret; + if (PMIX_STRING != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -185,6 +194,9 @@ char *prefx; int ret; + if (PMIX_SIZE != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -225,6 +237,9 @@ char *prefx; int ret; + if (PMIX_PID != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -264,6 +279,9 @@ char *prefx; int ret; + if (PMIX_INT != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -304,6 +322,9 @@ char *prefx; int ret; + if (PMIX_UINT != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -344,6 +365,9 @@ char *prefx; int ret; + if (PMIX_UINT8 != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -384,6 +408,9 @@ char *prefx; int ret; + if (PMIX_UINT16 != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -424,6 +451,9 @@ char *prefx; int ret; + if (PMIX_UINT32 != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -464,6 +494,9 @@ char *prefx; int ret; + if (PMIX_INT8 != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -504,6 +537,9 @@ char *prefx; int ret; + if (PMIX_INT16 != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -544,6 +580,9 @@ char *prefx; int ret; + if (PMIX_INT32 != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -584,6 +623,9 @@ char *prefx; int ret; + if (PMIX_UINT64 != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -625,6 +667,9 @@ char *prefx; int ret; + if (PMIX_INT64 != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -665,6 +710,9 @@ char *prefx; int ret; + if (PMIX_FLOAT != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -705,6 +753,9 @@ char *prefx; int ret; + if (PMIX_DOUBLE != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -746,6 +797,9 @@ char *t; int ret; + if (PMIX_TIME != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -789,6 +843,9 @@ char *prefx; int ret; + if (PMIX_TIMEVAL != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -830,6 +887,9 @@ char *prefx; int ret; + if (PMIX_STATUS != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -876,6 +936,9 @@ char *prefx; int rc; + if (PMIX_VALUE != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1041,6 +1104,9 @@ char *tmp=NULL, *tmp2=NULL; int ret; + if (PMIX_INFO != type) { + return PMIX_ERR_BAD_PARAM; + } pmix_bfrops_base_print_value(&tmp, NULL, &src->value, PMIX_VALUE); pmix_bfrops_base_print_info_directives(&tmp2, NULL, &src->flags, PMIX_INFO_DIRECTIVES); ret = asprintf(output, "%sKEY: %s\n%s\t%s\n%s\t%s", prefix, src->key, @@ -1060,6 +1126,9 @@ char *tmp1, *tmp2; int ret; + if (PMIX_PDATA != type) { + return PMIX_ERR_BAD_PARAM; + } pmix_bfrops_base_print_proc(&tmp1, NULL, &src->proc, PMIX_PROC); pmix_bfrops_base_print_value(&tmp2, NULL, &src->value, PMIX_VALUE); ret = asprintf(output, "%s %s KEY: %s %s", prefix, tmp1, src->key, @@ -1080,12 +1149,20 @@ int pmix_bfrops_base_print_buf(char **output, char *prefix, pmix_buffer_t *src, pmix_data_type_t type) { + if (NULL == output || NULL == prefix || + NULL == src || PMIX_BUFFER != type) { + return PMIX_ERR_BAD_PARAM; + } return PMIX_SUCCESS; } int pmix_bfrops_base_print_app(char **output, char *prefix, pmix_app_t *src, pmix_data_type_t type) { + if (NULL == output || NULL == prefix || + NULL == src || PMIX_APP != type) { + return PMIX_ERR_BAD_PARAM; + } return PMIX_SUCCESS; } @@ -1095,6 +1172,9 @@ char *prefx; int rc; + if (PMIX_PROC != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1134,6 +1214,10 @@ int pmix_bfrops_base_print_kval(char **output, char *prefix, pmix_kval_t *src, pmix_data_type_t type) { + if (NULL == output || NULL == prefix || + NULL == src || PMIX_KVAL != type) { + return PMIX_ERR_BAD_PARAM; + } return PMIX_SUCCESS; } @@ -1142,6 +1226,9 @@ { char *prefx; + if (PMIX_PERSIST != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1178,6 +1265,9 @@ { char *prefx; + if (PMIX_SCOPE != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1204,6 +1294,9 @@ { char *prefx; + if (PMIX_DATA_RANGE != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1229,6 +1322,9 @@ { char *prefx; + if (PMIX_COMMAND != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1255,6 +1351,9 @@ { char *prefx; + if (PMIX_INFO_DIRECTIVES != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1282,6 +1381,9 @@ char *prefx; int ret; + if (PMIX_DATA_TYPE != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1322,6 +1424,9 @@ char *prefx; int ret; + if (PMIX_BYTE_OBJECT != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1362,6 +1467,9 @@ char *prefx; int ret; + if (PMIX_POINTER != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1390,6 +1498,9 @@ char *prefx; int ret; + if (PMIX_PROC_STATE != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1420,6 +1531,9 @@ pmix_status_t rc = PMIX_SUCCESS; char *p2, *tmp; + if (PMIX_PROC_INFO != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1462,6 +1576,9 @@ char *prefx; int ret; + if (PMIX_DATA_ARRAY != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1493,6 +1610,9 @@ char *tmp, *t2, *t3; size_t n; + if (PMIX_QUERY != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1564,6 +1684,9 @@ char *prefx; int rc; + if (PMIX_PROC_RANK != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1609,6 +1732,9 @@ char *prefx; int ret; + if (PMIX_ALLOC_DIRECTIVE != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1638,6 +1764,9 @@ char *prefx; int ret; + if (PMIX_IOF_CHANNEL != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1667,6 +1796,9 @@ char *prefx; int ret; + if (PMIX_ENVAR != type) { + return PMIX_ERR_BAD_PARAM; + } /* deal with NULL prefix */ if (NULL == prefix) { if (0 > asprintf(&prefx, " ")) { @@ -1683,6 +1815,38 @@ if (prefx != prefix) { free(prefx); } + + if (0 > ret) { + return PMIX_ERR_OUT_OF_RESOURCE; + } else { + return PMIX_SUCCESS; + } +} + +pmix_status_t pmix_bfrops_base_print_regex(char **output, char *prefix, + char *src, + pmix_data_type_t type) +{ + char *prefx; + int ret; + + if (PMIX_REGEX != type) { + return PMIX_ERR_BAD_PARAM; + } + /* deal with NULL prefix */ + if (NULL == prefix) { + if (0 > asprintf(&prefx, " ")) { + return PMIX_ERR_NOMEM; + } + } else { + prefx = prefix; + } + + ret = asprintf(output, "%sData type: PMIX_REGEX\tName: %s", prefx, src); + + if (prefx != prefix) { + free(prefx); + } if (0 > ret) { return PMIX_ERR_OUT_OF_RESOURCE; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_select.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_select.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_select.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_select.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,9 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,8 +19,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include @@ -29,8 +31,6 @@ #include "src/mca/bfrops/base/base.h" -static bool selected = false; - /* Function for selecting a prioritized list of components * from all those that are available. */ int pmix_bfrop_base_select(void) @@ -43,11 +43,11 @@ int rc, priority; bool inserted; - if (selected) { + if (pmix_bfrops_globals.selected) { /* ensure we don't do this twice */ return PMIX_SUCCESS; } - selected = true; + pmix_bfrops_globals.selected = true; /* Query all available components and ask if they have a module */ PMIX_LIST_FOREACH(cli, &pmix_bfrops_base_framework.framework_components, pmix_mca_base_component_list_item_t) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_stubs.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_stubs.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_stubs.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_stubs.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2015-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,7 +17,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include @@ -31,13 +31,110 @@ #include "src/mca/bfrops/base/base.h" +static const char* basic_type_string(pmix_data_type_t type) +{ + switch(type) { + case PMIX_BOOL: + return "PMIX_BOOL"; + case PMIX_REGEX: + return "PMIX_REGEX"; + case PMIX_BYTE: + return "PMIX_BYTE"; + case PMIX_STRING: + return "PMIX_STRING"; + case PMIX_SIZE: + return "PMIX_SIZE"; + case PMIX_PID: + return "PMIX_PID"; + case PMIX_INT: + return "PMIX_INT"; + case PMIX_INT8: + return "PMIX_INT8"; + case PMIX_INT16: + return "PMIX_INT16"; + case PMIX_INT32: + return "PMIX_INT32"; + case PMIX_INT64: + return "PMIX_INT64"; + case PMIX_UINT: + return "PMIX_UINT"; + case PMIX_UINT8: + return "PMIX_UINT8"; + case PMIX_UINT16: + return "PMIX_UINT16"; + case PMIX_UINT32: + return "PMIX_UINT32"; + case PMIX_UINT64: + return "PMIX_UINT64"; + case PMIX_FLOAT: + return "PMIX_FLOAT"; + case PMIX_DOUBLE: + return "PMIX_DOUBLE"; + case PMIX_TIMEVAL: + return "PMIX_TIMEVAL"; + case PMIX_TIME: + return "PMIX_TIME"; + case PMIX_STATUS: + return "PMIX_STATUS"; + case PMIX_VALUE: + return "PMIX_VALUE"; + case PMIX_PROC: + return "PMIX_PROC"; + case PMIX_APP: + return "PMIX_APP"; + case PMIX_INFO: + return "PMIX_INFO"; + case PMIX_PDATA: + return "PMIX_PDATA"; + case PMIX_BUFFER: + return "PMIX_BUFFER"; + case PMIX_BYTE_OBJECT: + return "PMIX_BYTE_OBJECT"; + case PMIX_KVAL: + return "PMIX_KVAL"; + case PMIX_PERSIST: + return "PMIX_PERSIST"; + case PMIX_POINTER: + return "PMIX_POINTER"; + case PMIX_SCOPE: + return "PMIX_SCOPE"; + case PMIX_DATA_RANGE: + return "PMIX_DATA_RANGE"; + case PMIX_COMMAND: + return "PMIX_COMMAND"; + case PMIX_INFO_DIRECTIVES: + return "PMIX_INFO_DIRECTIVES"; + case PMIX_DATA_TYPE: + return "PMIX_DATA_TYPE"; + case PMIX_PROC_STATE: + return "PMIX_PROC_STATE"; + case PMIX_PROC_INFO: + return "PMIX_PROC_INFO"; + case PMIX_DATA_ARRAY: + return "PMIX_DATA_ARRAY"; + case PMIX_PROC_RANK: + return "PMIX_PROC_RANK"; + case PMIX_QUERY: + return "PMIX_QUERY"; + case PMIX_COMPRESSED_STRING: + return "PMIX_COMPRESSED_STRING"; + case PMIX_ALLOC_DIRECTIVE: + return "PMIX_ALLOC_DIRECTIVE"; + case PMIX_IOF_CHANNEL: + return "PMIX_IOF_CHANNEL"; + case PMIX_ENVAR: + return "PMIX_ENVAR"; + default: + return "NOT INITIALIZED"; + } +} PMIX_EXPORT const char* PMIx_Data_type_string(pmix_data_type_t type) { pmix_bfrops_base_active_module_t *active; char *reply; if (!pmix_bfrops_globals.initialized) { - return "NOT INITIALIZED"; + return basic_type_string(type); } PMIX_LIST_FOREACH(active, &pmix_bfrops_globals.actives, pmix_bfrops_base_active_module_t) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_unpack.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_unpack.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_unpack.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/base/bfrop_base_unpack.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,10 +10,10 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. - * Copyright (c) 2016 Mellanox Technologies, Inc. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2016-2019 Mellanox Technologies, Inc. * All rights reserved. * $COPYRIGHT$ * @@ -22,14 +22,14 @@ * $HEADER$ */ -#include - -#include +#include "src/include/pmix_config.h" #include "src/util/argv.h" #include "src/util/error.h" #include "src/util/output.h" #include "src/include/pmix_globals.h" +#include "src/mca/preg/preg.h" + #include "src/mca/bfrops/bfrops_types.h" #include "src/mca/bfrops/base/base.h" @@ -41,7 +41,6 @@ { pmix_status_t rc; pmix_data_type_t local_type; - pmix_bfrop_type_info_t *info; pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrops_base_unpack_buffer( %p, %p, %lu, %d )\n", @@ -49,7 +48,7 @@ /** Unpack the declared data type */ if (PMIX_BFROP_BUFFER_FULLY_DESC == buffer->type) { - if (PMIX_SUCCESS != (rc = pmix_bfrop_get_data_type(buffer, &local_type))) { + if (PMIX_SUCCESS != (rc = pmix_bfrop_get_data_type(regtypes, buffer, &local_type))) { PMIX_ERROR_LOG(rc); return rc; } @@ -59,14 +58,8 @@ return PMIX_ERR_PACK_MISMATCH; } } - - /* Lookup the unpack function for this type and call it */ - if (NULL == (info = (pmix_bfrop_type_info_t*)pmix_pointer_array_get_item(regtypes, type))) { - PMIX_ERROR_LOG(PMIX_ERR_UNPACK_FAILURE); - return PMIX_ERR_UNPACK_FAILURE; - } - - return info->odti_unpack_fn(buffer, dst, num_vals, type); + PMIX_BFROPS_UNPACK_TYPE(rc, buffer, dst, num_vals, type, regtypes); + return rc; } pmix_status_t pmix_bfrops_base_unpack(pmix_pointer_array_t *regtypes, @@ -103,7 +96,7 @@ * int32_t as used here. */ if (PMIX_BFROP_BUFFER_FULLY_DESC == buffer->type) { - if (PMIX_SUCCESS != (rc = pmix_bfrop_get_data_type(buffer, &local_type))) { + if (PMIX_SUCCESS != (rc = pmix_bfrop_get_data_type(regtypes, buffer, &local_type))) { *num_vals = 0; /* don't error log here as the user may be unpacking past * the end of the buffer, which isn't necessarily an error */ @@ -117,7 +110,8 @@ } n=1; - if (PMIX_SUCCESS != (rc = pmix_bfrops_base_unpack_int32(buffer, &local_num, &n, PMIX_INT32))) { + PMIX_BFROPS_UNPACK_TYPE(rc, buffer, &local_num, &n, PMIX_INT32, regtypes); + if (PMIX_SUCCESS != rc) { *num_vals = 0; /* don't error log here as the user may be unpacking past * the end of the buffer, which isn't necessarily an error */ @@ -152,41 +146,13 @@ return ret; } -static pmix_status_t unpack_gentype(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) -{ - switch(type) { - case PMIX_INT8: - case PMIX_UINT8: - return pmix_bfrops_base_unpack_byte(buffer, dest, num_vals, type); - break; - - case PMIX_INT16: - case PMIX_UINT16: - return pmix_bfrops_base_unpack_int16(buffer, dest, num_vals, type); - break; - - case PMIX_INT32: - case PMIX_UINT32: - return pmix_bfrops_base_unpack_int32(buffer, dest, num_vals, type); - break; - - case PMIX_INT64: - case PMIX_UINT64: - return pmix_bfrops_base_unpack_int64(buffer, dest, num_vals, type); - break; - - default: - return PMIX_ERR_UNKNOWN_DATA_TYPE; - } -} - /* UNPACK GENERIC SYSTEM TYPES */ /* * BOOL */ - pmix_status_t pmix_bfrops_base_unpack_bool(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix_bfrops_base_unpack_bool(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { int32_t i; @@ -196,6 +162,13 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack_bool * %d\n", (int)*num_vals); + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_BOOL != type) { + return PMIX_ERR_BAD_PARAM; + } + /* check to see if there's enough data in buffer */ if (pmix_bfrop_too_small(buffer, *num_vals)) { return PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER; @@ -222,24 +195,28 @@ /* * INT */ -pmix_status_t pmix_bfrops_base_unpack_int(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_int(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_status_t ret; pmix_data_type_t remote_type; - if (PMIX_SUCCESS != (ret = pmix_bfrop_get_data_type(buffer, &remote_type))) { + if (PMIX_INT != type && PMIX_UINT != type) { + return PMIX_ERR_BAD_PARAM; + } + + if (PMIX_SUCCESS != (ret = pmix_bfrop_get_data_type(regtypes, buffer, &remote_type))) { return ret; } if (remote_type == BFROP_TYPE_INT) { /* fast path it if the sizes are the same */ /* Turn around and unpack the real type */ - if (PMIX_SUCCESS != (ret = unpack_gentype(buffer, dest, num_vals, BFROP_TYPE_INT))) { - } + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, dest, num_vals, BFROP_TYPE_INT, regtypes); } else { /* slow path - types are different sizes */ - PMIX_BFROP_UNPACK_SIZE_MISMATCH(int, remote_type, ret); + PMIX_BFROP_UNPACK_SIZE_MISMATCH(regtypes, int, remote_type, ret); } return ret; @@ -248,50 +225,63 @@ /* * SIZE_T */ -pmix_status_t pmix_bfrops_base_unpack_sizet(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_sizet(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_status_t ret; pmix_data_type_t remote_type; - if (PMIX_SUCCESS != (ret = pmix_bfrop_get_data_type(buffer, &remote_type))) { + if (PMIX_SIZE != type) { + return PMIX_ERR_BAD_PARAM; + } + + if (PMIX_SUCCESS != (ret = pmix_bfrop_get_data_type(regtypes, buffer, + &remote_type))) { + PMIX_ERROR_LOG(ret); return ret; } if (remote_type == BFROP_TYPE_SIZE_T) { /* fast path it if the sizes are the same */ /* Turn around and unpack the real type */ - if (PMIX_SUCCESS != (ret = unpack_gentype(buffer, dest, num_vals, BFROP_TYPE_SIZE_T))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, dest, num_vals, BFROP_TYPE_SIZE_T, + regtypes); + if (PMIX_SUCCESS != ret) { + PMIX_ERROR_LOG(ret); } } else { /* slow path - types are different sizes */ - PMIX_BFROP_UNPACK_SIZE_MISMATCH(size_t, remote_type, ret); + PMIX_BFROP_UNPACK_SIZE_MISMATCH(regtypes, size_t, remote_type, ret); } - return ret; } /* * PID_T */ -pmix_status_t pmix_bfrops_base_unpack_pid(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_pid(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_status_t ret; pmix_data_type_t remote_type; - if (PMIX_SUCCESS != (ret = pmix_bfrop_get_data_type(buffer, &remote_type))) { + if (PMIX_PID != type) { + return PMIX_ERR_BAD_PARAM; + } + + if (PMIX_SUCCESS != (ret = pmix_bfrop_get_data_type(regtypes, buffer, &remote_type))) { return ret; } if (remote_type == BFROP_TYPE_PID_T) { /* fast path it if the sizes are the same */ /* Turn around and unpack the real type */ - if (PMIX_SUCCESS != (ret = unpack_gentype(buffer, dest, num_vals, BFROP_TYPE_PID_T))) { - } + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, dest, num_vals, BFROP_TYPE_PID_T, regtypes); } else { /* slow path - types are different sizes */ - PMIX_BFROP_UNPACK_SIZE_MISMATCH(pid_t, remote_type, ret); + PMIX_BFROP_UNPACK_SIZE_MISMATCH(regtypes, pid_t, remote_type, ret); } return ret; @@ -303,12 +293,20 @@ /* * BYTE, CHAR, INT8 */ -pmix_status_t pmix_bfrops_base_unpack_byte(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_byte(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack_byte * %d\n", (int)*num_vals); + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_BYTE != type && PMIX_UINT8 != type && PMIX_INT8 != type) { + return PMIX_ERR_BAD_PARAM; + } + /* check to see if there's enough data in buffer */ if (pmix_bfrop_too_small(buffer, *num_vals)) { return PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER; @@ -323,7 +321,8 @@ return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_int16(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_int16(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { int32_t i; @@ -332,6 +331,13 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack_int16 * %d\n", (int)*num_vals); + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_INT16 != type && PMIX_UINT16 != type) { + return PMIX_ERR_BAD_PARAM; + } + /* check to see if there's enough data in buffer */ if (pmix_bfrop_too_small(buffer, (*num_vals)*sizeof(tmp))) { return PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER; @@ -348,7 +354,8 @@ return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_int32(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_int32(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { int32_t i; @@ -357,6 +364,13 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack_int32 * %d\n", (int)*num_vals); + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_INT32 != type && PMIX_UINT32 != type) { + return PMIX_ERR_BAD_PARAM; + } + /* check to see if there's enough data in buffer */ if (pmix_bfrop_too_small(buffer, (*num_vals)*sizeof(tmp))) { return PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER; @@ -373,13 +387,21 @@ return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_datatype(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_datatype(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_unpack_int16(buffer, dest, num_vals, type); + pmix_status_t ret; + + if (PMIX_DATA_TYPE != type) { + return PMIX_ERR_BAD_PARAM; + } + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, dest, num_vals, PMIX_INT16, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_unpack_int64(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_int64(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { int32_t i; @@ -388,6 +410,13 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack_int64 * %d\n", (int)*num_vals); + if (NULL == regtypes) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_INT64 != type && PMIX_UINT64 != type) { + return PMIX_ERR_BAD_PARAM; + } + /* check to see if there's enough data in buffer */ if (pmix_bfrop_too_small(buffer, (*num_vals)*sizeof(tmp))) { return PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER; @@ -404,15 +433,21 @@ return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_string(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_string(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_status_t ret; int32_t i, len, n=1; char **sdest = (char**) dest; + if (PMIX_STRING != type) { + return PMIX_ERR_BAD_PARAM; + } + for (i = 0; i < (*num_vals); ++i) { - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int32(buffer, &len, &n, PMIX_INT32))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &len, &n, PMIX_INT32, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (0 == len) { /* zero-length string - unpack the NULL */ @@ -422,7 +457,8 @@ if (NULL == sdest[i]) { return PMIX_ERR_OUT_OF_RESOURCE; } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_byte(buffer, sdest[i], &len, PMIX_BYTE))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, sdest[i], &len, PMIX_BYTE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } @@ -431,7 +467,8 @@ return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_float(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_float(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { int32_t i, n; @@ -442,16 +479,16 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack_float * %d\n", (int)*num_vals); - /* check to see if there's enough data in buffer */ - if (pmix_bfrop_too_small(buffer, (*num_vals)*sizeof(float))) { - return PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER; + if (PMIX_FLOAT != type) { + return PMIX_ERR_BAD_PARAM; } /* unpack the data */ for (i = 0; i < (*num_vals); ++i) { n=1; convert = NULL; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_string(buffer, &convert, &n, PMIX_STRING))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &convert, &n, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (NULL != convert) { @@ -463,7 +500,8 @@ return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_double(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_double(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { int32_t i, n; @@ -474,16 +512,16 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack_double * %d\n", (int)*num_vals); - /* check to see if there's enough data in buffer */ - if (pmix_bfrop_too_small(buffer, (*num_vals)*sizeof(double))) { - return PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER; + if (PMIX_DOUBLE != type) { + return PMIX_ERR_BAD_PARAM; } /* unpack the data */ for (i = 0; i < (*num_vals); ++i) { n=1; convert = NULL; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_string(buffer, &convert, &n, PMIX_STRING))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &convert, &n, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (NULL != convert) { @@ -495,7 +533,8 @@ return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_timeval(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_timeval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { int32_t i, n; @@ -506,15 +545,15 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack_timeval * %d\n", (int)*num_vals); - /* check to see if there's enough data in buffer */ - if (pmix_bfrop_too_small(buffer, (*num_vals)*sizeof(struct timeval))) { - return PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER; + if (PMIX_TIMEVAL != type) { + return PMIX_ERR_BAD_PARAM; } /* unpack the data */ for (i = 0; i < (*num_vals); ++i) { n=2; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int64(buffer, tmp, &n, PMIX_INT64))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, tmp, &n, PMIX_INT64, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } tt.tv_sec = tmp[0]; @@ -524,7 +563,8 @@ return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_time(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_time(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { int32_t i, n; @@ -539,15 +579,15 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack_time * %d\n", (int)*num_vals); - /* check to see if there's enough data in buffer */ - if (pmix_bfrop_too_small(buffer, (*num_vals)*(sizeof(uint64_t)))) { - return PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER; + if (PMIX_TIME != type) { + return PMIX_ERR_BAD_PARAM; } /* unpack the data */ for (i = 0; i < (*num_vals); ++i) { n=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int64(buffer, &ui64, &n, PMIX_UINT64))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ui64, &n, PMIX_UINT64, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } tmp = (time_t)ui64; @@ -557,19 +597,22 @@ } -pmix_status_t pmix_bfrops_base_unpack_status(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_status(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { - pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, + pmix_status_t ret; + + pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack_status * %d\n", (int)*num_vals); - /* check to see if there's enough data in buffer */ - if (pmix_bfrop_too_small(buffer, (*num_vals)*(sizeof(pmix_status_t)))) { - return PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER; + if (PMIX_STATUS != type) { + return PMIX_ERR_BAD_PARAM; } /* unpack the data */ - return pmix_bfrops_base_unpack_int32(buffer, dest, num_vals, PMIX_INT32); + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, dest, num_vals, PMIX_INT32, regtypes); + return ret; } @@ -578,161 +621,24 @@ /* * PMIX_VALUE */ -pmix_status_t pmix_bfrops_base_unpack_val(pmix_buffer_t *buffer, +pmix_status_t pmix_bfrops_base_unpack_val(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_value_t *val) { int m; - pmix_status_t ret; + pmix_status_t ret = PMIX_SUCCESS; m = 1; switch (val->type) { case PMIX_UNDEF: break; - case PMIX_BOOL: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_bool(buffer, &val->data.flag, &m, PMIX_BOOL))) { - return ret; - } - break; - case PMIX_BYTE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_byte(buffer, &val->data.byte, &m, PMIX_BYTE))) { - return ret; - } - break; - case PMIX_STRING: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_string(buffer, &val->data.string, &m, PMIX_STRING))) { - return ret; - } - break; - case PMIX_SIZE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_sizet(buffer, &val->data.size, &m, PMIX_SIZE))) { - return ret; - } - break; - case PMIX_PID: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_pid(buffer, &val->data.pid, &m, PMIX_PID))) { - return ret; - } - break; - case PMIX_INT: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int(buffer, &val->data.integer, &m, PMIX_INT))) { - return ret; - } - break; - case PMIX_INT8: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_byte(buffer, &val->data.int8, &m, PMIX_INT8))) { - return ret; - } - break; - case PMIX_INT16: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int16(buffer, &val->data.int16, &m, PMIX_INT16))) { - return ret; - } - break; - case PMIX_INT32: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int32(buffer, &val->data.int32, &m, PMIX_INT32))) { - return ret; - } - break; - case PMIX_INT64: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int64(buffer, &val->data.int64, &m, PMIX_INT64))) { - return ret; - } - break; - case PMIX_UINT: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int(buffer, &val->data.uint, &m, PMIX_UINT))) { - return ret; - } - break; - case PMIX_UINT8: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_byte(buffer, &val->data.uint8, &m, PMIX_UINT8))) { - return ret; - } - break; - case PMIX_UINT16: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int16(buffer, &val->data.uint16, &m, PMIX_UINT16))) { - return ret; - } - break; - case PMIX_UINT32: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int32(buffer, &val->data.uint32, &m, PMIX_UINT32))) { - return ret; - } - break; - case PMIX_UINT64: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int64(buffer, &val->data.uint64, &m, PMIX_UINT64))) { - return ret; - } - break; - case PMIX_FLOAT: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_float(buffer, &val->data.fval, &m, PMIX_FLOAT))) { - return ret; - } - break; - case PMIX_DOUBLE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_double(buffer, &val->data.dval, &m, PMIX_DOUBLE))) { - return ret; - } - break; - case PMIX_TIMEVAL: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_timeval(buffer, &val->data.tv, &m, PMIX_TIMEVAL))) { - return ret; - } - break; - case PMIX_TIME: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_time(buffer, &val->data.time, &m, PMIX_TIME))) { - return ret; - } - break; - case PMIX_STATUS: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_status(buffer, &val->data.status, &m, PMIX_STATUS))) { - return ret; - } - break; case PMIX_PROC: /* this field is now a pointer, so we must allocate storage for it */ PMIX_PROC_CREATE(val->data.proc, m); if (NULL == val->data.proc) { return PMIX_ERR_NOMEM; } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_proc(buffer, val->data.proc, &m, PMIX_PROC))) { - return ret; - } - break; - case PMIX_PROC_RANK: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_rank(buffer, &val->data.rank, &m, PMIX_PROC_RANK))) { - return ret; - } - break; - case PMIX_BYTE_OBJECT: - case PMIX_COMPRESSED_STRING: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_bo(buffer, &val->data.bo, &m, PMIX_BYTE_OBJECT))) { - return ret; - } - break; - case PMIX_PERSIST: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_persist(buffer, &val->data.proc, &m, PMIX_PERSIST))) { - return ret; - } - break; - case PMIX_POINTER: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_ptr(buffer, &val->data.ptr, &m, PMIX_POINTER))) { - return ret; - } - break; - case PMIX_SCOPE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_scope(buffer, &val->data.scope, &m, PMIX_SCOPE))) { - return ret; - } - break; - case PMIX_DATA_RANGE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_range(buffer, &val->data.range, &m, PMIX_DATA_RANGE))) { - return ret; - } - break; - case PMIX_PROC_STATE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_pstate(buffer, &val->data.state, &m, PMIX_PROC_STATE))) { - return ret; - } + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, val->data.proc, &m, PMIX_PROC, regtypes); break; case PMIX_PROC_INFO: /* this is now a pointer, so allocate storage for it */ @@ -740,9 +646,7 @@ if (NULL == val->data.pinfo) { return PMIX_ERR_NOMEM; } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_pinfo(buffer, val->data.pinfo, &m, PMIX_PROC_INFO))) { - return ret; - } + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, val->data.pinfo, &m, PMIX_PROC_INFO, regtypes); break; case PMIX_DATA_ARRAY: /* this is now a pointer, so allocate storage for it */ @@ -750,29 +654,20 @@ if (NULL == val->data.darray) { return PMIX_ERR_NOMEM; } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_darray(buffer, val->data.darray, &m, PMIX_DATA_ARRAY))) { - return ret; - } - break; - case PMIX_ALLOC_DIRECTIVE: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_alloc_directive(buffer, &val->data.adir, &m, PMIX_ALLOC_DIRECTIVE))) { - return ret; - } - break; - case PMIX_ENVAR: - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_envar(buffer, &val->data.envar, &m, PMIX_ENVAR))) { - return ret; - } + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, val->data.darray, &m, PMIX_DATA_ARRAY, regtypes); break; default: - pmix_output(0, "UNPACK-PMIX-VALUE: UNSUPPORTED TYPE %d", (int)val->type); - return PMIX_ERROR; + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &val->data, &m, val->type, regtypes); + if (PMIX_ERR_UNKNOWN_DATA_TYPE == ret) { + pmix_output(0, "UNPACK-PMIX-VALUE: UNSUPPORTED TYPE %d", (int)val->type); + } } - return PMIX_SUCCESS; + return ret; } -pmix_status_t pmix_bfrops_base_unpack_value(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_value(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_value_t *ptr; @@ -782,14 +677,18 @@ ptr = (pmix_value_t *) dest; n = *num_vals; + if (PMIX_VALUE != type) { + return PMIX_ERR_BAD_PARAM; + } + for (i = 0; i < n; ++i) { /* unpack the type */ - if (PMIX_SUCCESS != (ret = pmix_bfrop_get_data_type(buffer, &ptr[i].type))) { + if (PMIX_SUCCESS != (ret = pmix_bfrop_get_data_type(regtypes, buffer, &ptr[i].type))) { PMIX_ERROR_LOG(ret); return ret; } /* unpack value */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_val(buffer, &ptr[i])) ) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_val(regtypes, buffer, &ptr[i])) ) { PMIX_ERROR_LOG(ret); return ret; } @@ -797,7 +696,8 @@ return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_info(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_info(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_info_t *ptr; @@ -808,6 +708,10 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack: %d info", *num_vals); + if (PMIX_INFO != type) { + return PMIX_ERR_BAD_PARAM; + } + ptr = (pmix_info_t *) dest; n = *num_vals; @@ -817,7 +721,8 @@ /* unpack key */ m=1; tmp = NULL; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_string(buffer, &tmp, &m, PMIX_STRING))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &tmp, &m, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { PMIX_ERROR_LOG(ret); return ret; } @@ -828,26 +733,28 @@ free(tmp); /* unpack the directives */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_info_directives(buffer, &ptr[i].flags, &m, PMIX_INFO_DIRECTIVES))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].flags, &m, PMIX_INFO_DIRECTIVES, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* unpack value - since the value structure is statically-defined * instead of a pointer in this struct, we directly unpack it to * avoid the malloc */ - if (PMIX_SUCCESS != (ret = pmix_bfrop_get_data_type(buffer, &ptr[i].value.type))) { + if (PMIX_SUCCESS != (ret = pmix_bfrop_get_data_type(regtypes, buffer, &ptr[i].value.type))) { return ret; } pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack: info type %d", ptr[i].value.type); m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_val(buffer, &ptr[i].value))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_val(regtypes, buffer, &ptr[i].value))) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_pdata(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_pdata(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_pdata_t *ptr; @@ -858,6 +765,10 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack: %d pdata", *num_vals); + if (PMIX_PDATA != type) { + return PMIX_ERR_BAD_PARAM; + } + ptr = (pmix_pdata_t *) dest; n = *num_vals; @@ -865,13 +776,15 @@ PMIX_PDATA_CONSTRUCT(&ptr[i]); /* unpack the proc */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_proc(buffer, &ptr[i].proc, &m, PMIX_PROC))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].proc, &m, PMIX_PROC, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* unpack key */ m=1; tmp = NULL; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_string(buffer, &tmp, &m, PMIX_STRING))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &tmp, &m, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (NULL == tmp) { @@ -883,14 +796,14 @@ /* unpack value - since the value structure is statically-defined * instead of a pointer in this struct, we directly unpack it to * avoid the malloc */ - if (PMIX_SUCCESS != (ret = pmix_bfrop_get_data_type(buffer, &ptr[i].value.type))) { + if (PMIX_SUCCESS != (ret = pmix_bfrop_get_data_type(regtypes, buffer, &ptr[i].value.type))) { PMIX_ERROR_LOG(ret); return ret; } pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack: pdata type %d %s", ptr[i].value.type, ptr[i].value.data.string); m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_val(buffer, &ptr[i].value))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_val(regtypes, buffer, &ptr[i].value))) { PMIX_ERROR_LOG(ret); return ret; } @@ -898,7 +811,8 @@ return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_buf(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_buf(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_buffer_t *ptr; @@ -909,16 +823,22 @@ ptr = (pmix_buffer_t *) dest; n = *num_vals; + if (PMIX_BUFFER != type) { + return PMIX_ERR_BAD_PARAM; + } + for (i = 0; i < n; ++i) { PMIX_CONSTRUCT(&ptr[i], pmix_buffer_t); /* unpack the type of buffer */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_byte(buffer, &ptr[i].type, &m, PMIX_BYTE))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].type, &m, PMIX_BYTE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* unpack the number of bytes */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_sizet(buffer, &nbytes, &m, PMIX_SIZE))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &nbytes, &m, PMIX_SIZE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } m = nbytes; @@ -929,7 +849,8 @@ return PMIX_ERR_NOMEM; } /* unpack the bytes */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_byte(buffer, ptr[i].base_ptr, &m, PMIX_BYTE))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, ptr[i].base_ptr, &m, PMIX_BYTE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } @@ -941,7 +862,8 @@ return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_proc(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_proc(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_proc_t *ptr; @@ -952,6 +874,10 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack: %d procs", *num_vals); + if (PMIX_PROC != type) { + return PMIX_ERR_BAD_PARAM; + } + ptr = (pmix_proc_t *) dest; n = *num_vals; @@ -962,8 +888,8 @@ /* unpack nspace */ m=1; tmp = NULL; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_string(buffer, &tmp, &m, PMIX_STRING))) { - PMIX_ERROR_LOG(ret); + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &tmp, &m, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (NULL == tmp) { @@ -974,15 +900,16 @@ free(tmp); /* unpack the rank */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_rank(buffer, &ptr[i].rank, &m, PMIX_PROC_RANK))) { - PMIX_ERROR_LOG(ret); + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].rank, &m, PMIX_PROC_RANK, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_app(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_app(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_app_t *ptr; @@ -994,6 +921,10 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack: %d apps", *num_vals); + if (PMIX_APP != type) { + return PMIX_ERR_BAD_PARAM; + } + ptr = (pmix_app_t *) dest; n = *num_vals; @@ -1002,19 +933,29 @@ PMIX_APP_CONSTRUCT(&ptr[i]); /* unpack cmd */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_string(buffer, &ptr[i].cmd, &m, PMIX_STRING))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].cmd, &m, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* unpack argc */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int(buffer, &nval, &m, PMIX_INT32))) { + /* although nval is technically an int32, we have to unpack it + * as a generic int due to a typo in earlier release series. This + * preserves the ordering of bytes in the packed buffer as it + * includes a tag indicating the actual size of the value. No + * harm is done as generic int is equivalent to int32 on all + * current systems - just something to watch out for in the + * future should someone someday change the size of "int" */ + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &nval, &m, PMIX_INT, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* unpack argv */ for (k=0; k < nval; k++) { m=1; tmp = NULL; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_string(buffer, &tmp, &m, PMIX_STRING))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &tmp, &m, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (NULL == tmp) { @@ -1025,13 +966,15 @@ } /* unpack env */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int32(buffer, &nval, &m, PMIX_INT32))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &nval, &m, PMIX_INT32, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } for (k=0; k < nval; k++) { m=1; tmp = NULL; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_string(buffer, &tmp, &m, PMIX_STRING))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &tmp, &m, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (NULL == tmp) { @@ -1042,23 +985,27 @@ } /* unpack cwd */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_string(buffer, &ptr[i].cwd, &m, PMIX_STRING))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].cwd, &m, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* unpack maxprocs */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int(buffer, &ptr[i].maxprocs, &m, PMIX_INT))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].maxprocs, &m, PMIX_INT, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* unpack info array */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_sizet(buffer, &ptr[i].ninfo, &m, PMIX_SIZE))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].ninfo, &m, PMIX_SIZE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (0 < ptr[i].ninfo) { PMIX_INFO_CREATE(ptr[i].info, ptr[i].ninfo); m = ptr[i].ninfo; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_info(buffer, ptr[i].info, &m, PMIX_INFO))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, ptr[i].info, &m, PMIX_INFO, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } @@ -1066,7 +1013,8 @@ return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_kval(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_kval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_kval_t *ptr; @@ -1076,6 +1024,10 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack: %d kvals", *num_vals); + if (PMIX_KVAL != type) { + return PMIX_ERR_BAD_PARAM; + } + ptr = (pmix_kval_t*) dest; n = *num_vals; @@ -1083,29 +1035,38 @@ PMIX_CONSTRUCT(&ptr[i], pmix_kval_t); /* unpack the key */ m = 1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_string(buffer, &ptr[i].key, &m, PMIX_STRING))) { - PMIX_ERROR_LOG(ret); + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].key, &m, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* allocate the space */ ptr[i].value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); /* unpack the value */ m = 1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_value(buffer, ptr[i].value, &m, PMIX_VALUE))) { - PMIX_ERROR_LOG(ret); + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, ptr[i].value, &m, PMIX_VALUE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_persist(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_persist(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_unpack_byte(buffer, dest, num_vals, PMIX_UINT8); + pmix_status_t ret; + + if (PMIX_PERSIST != type) { + return PMIX_ERR_BAD_PARAM; + } + + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, dest, num_vals, PMIX_BYTE, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_unpack_bo(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_bo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_byte_object_t *ptr; @@ -1115,6 +1076,10 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack: %d byte_object", *num_vals); + if (PMIX_BYTE_OBJECT != type) { + return PMIX_ERR_BAD_PARAM; + } + ptr = (pmix_byte_object_t *) dest; n = *num_vals; @@ -1122,13 +1087,15 @@ memset(&ptr[i], 0, sizeof(pmix_byte_object_t)); /* unpack the number of bytes */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_sizet(buffer, &ptr[i].size, &m, PMIX_SIZE))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].size, &m, PMIX_SIZE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (0 < ptr[i].size) { ptr[i].bytes = (char*)malloc(ptr[i].size * sizeof(char)); m=ptr[i].size; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_byte(buffer, ptr[i].bytes, &m, PMIX_BYTE))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, ptr[i].bytes, &m, PMIX_BYTE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } @@ -1136,49 +1103,103 @@ return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_ptr(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_ptr(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { uint8_t foo=1; int32_t cnt=1; + pmix_status_t ret; + + if (NULL == dest) { + return PMIX_ERR_BAD_PARAM; + } + if (NULL == num_vals) { + return PMIX_ERR_BAD_PARAM; + } + if (PMIX_POINTER != type) { + return PMIX_ERR_BAD_PARAM; + } /* it obviously makes no sense to pack a pointer and * send it somewhere else, so we just unpack the sentinel */ - return pmix_bfrops_base_unpack_byte(buffer, &foo, &cnt, PMIX_UINT8); + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &foo, &cnt, PMIX_UINT8, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_unpack_scope(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_scope(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_unpack_byte(buffer, dest, num_vals, PMIX_UINT8); + pmix_status_t ret; + + if (PMIX_SCOPE != type) { + return PMIX_ERR_BAD_PARAM; + } + + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, dest, num_vals, PMIX_UINT8, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_unpack_range(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_range(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_unpack_byte(buffer, dest, num_vals, PMIX_UINT8); + pmix_status_t ret; + + if (PMIX_DATA_RANGE != type) { + return PMIX_ERR_BAD_PARAM; + } + + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, dest, num_vals, PMIX_UINT8, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_unpack_cmd(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_cmd(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_unpack_byte(buffer, dest, num_vals, PMIX_UINT8); + pmix_status_t ret; + + if (PMIX_COMMAND != type) { + return PMIX_ERR_BAD_PARAM; + } + + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, dest, num_vals, PMIX_UINT8, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_unpack_info_directives(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_info_directives(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_unpack_int32(buffer, dest, num_vals, PMIX_UINT32); + pmix_status_t ret; + + if (PMIX_INFO_DIRECTIVES != type) { + return PMIX_ERR_BAD_PARAM; + } + + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, dest, num_vals, PMIX_UINT32, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_unpack_pstate(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_pstate(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_unpack_byte(buffer, dest, num_vals, PMIX_UINT8); + pmix_status_t ret; + + if (PMIX_PROC_STATE != type) { + return PMIX_ERR_BAD_PARAM; + } + + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, dest, num_vals, PMIX_UINT8, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_unpack_pinfo(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_pinfo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_proc_info_t *ptr; @@ -1188,6 +1209,10 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack: %d pinfo", *num_vals); + if (PMIX_PROC_INFO != type) { + return PMIX_ERR_BAD_PARAM; + } + ptr = (pmix_proc_info_t *) dest; n = *num_vals; @@ -1195,43 +1220,54 @@ PMIX_PROC_INFO_CONSTRUCT(&ptr[i]); /* unpack the proc */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_proc(buffer, &ptr[i].proc, &m, PMIX_PROC))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].proc, &m, PMIX_PROC, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* unpack the hostname */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_string(buffer, &ptr[i].hostname, &m, PMIX_STRING))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].hostname, &m, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* unpack the executable */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_string(buffer, &ptr[i].executable_name, &m, PMIX_STRING))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].executable_name, &m, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* unpack pid */ - m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_pid(buffer, &ptr[i].pid, &m, PMIX_PID))) { + m=1; + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].pid, &m, PMIX_PID, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* unpack state */ - m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_pstate(buffer, &ptr[i].state, &m, PMIX_PROC_STATE))) { + m=1; + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].state, &m, PMIX_PROC_STATE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_darray(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_darray(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_data_array_t *ptr; int32_t i, n, m; pmix_status_t ret; + pmix_data_type_t t; pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack: %d data arrays", *num_vals); + if (PMIX_DATA_ARRAY != type) { + return PMIX_ERR_BAD_PARAM; + } + ptr = (pmix_data_array_t *) dest; n = *num_vals; @@ -1239,12 +1275,13 @@ memset(&ptr[i], 0, sizeof(pmix_data_array_t)); /* unpack the type */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrop_get_data_type(buffer, &ptr[i].type))) { + if (PMIX_SUCCESS != (ret = pmix_bfrop_get_data_type(regtypes, buffer, &ptr[i].type))) { return ret; } /* unpack the number of array elements */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_sizet(buffer, &ptr[i].size, &m, PMIX_SIZE))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].size, &m, PMIX_SIZE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (0 == ptr[i].size || PMIX_UNDEF == ptr[i].type) { @@ -1253,262 +1290,36 @@ } /* allocate storage for the array and unpack the array elements */ m = ptr[i].size; - switch(ptr[i].type) { - case PMIX_BOOL: - ptr[i].array = (bool*)malloc(m * sizeof(bool)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_bool(buffer, ptr[i].array, &m, PMIX_BOOL))) { - return ret; - } - break; - case PMIX_BYTE: - case PMIX_INT8: - case PMIX_UINT8: - ptr[i].array = (uint8_t*)malloc(m * sizeof(uint8_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_byte(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_INT16: - case PMIX_UINT16: - ptr[i].array = (uint16_t*)malloc(m * sizeof(uint16_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int16(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_INT32: - case PMIX_UINT32: - ptr[i].array = (uint32_t*)malloc(m * sizeof(uint32_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int32(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_INT64: - case PMIX_UINT64: - ptr[i].array = (uint64_t*)malloc(m * sizeof(uint64_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int64(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_STRING: - ptr[i].array = (char**)malloc(m * sizeof(char*)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_string(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_SIZE: - ptr[i].array = (size_t*)malloc(m * sizeof(size_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_sizet(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_PID: - ptr[i].array = (pid_t*)malloc(m * sizeof(pid_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_pid(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_INT: - case PMIX_UINT: - ptr[i].array = (int*)malloc(m * sizeof(int)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_FLOAT: - ptr[i].array = (float*)malloc(m * sizeof(float)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_float(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_DOUBLE: - ptr[i].array = (double*)malloc(m * sizeof(double)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_double(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_TIMEVAL: - ptr[i].array = (struct timeval *)malloc(m * sizeof(struct timeval)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_timeval(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_TIME: - ptr[i].array = (time_t*)malloc(m * sizeof(time_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_time(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_STATUS: - ptr[i].array = (pmix_status_t*)malloc(m * sizeof(pmix_status_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_status(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_INFO: - ptr[i].array = (pmix_info_t*)malloc(m * sizeof(pmix_info_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_info(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_PROC: - ptr[i].array = (pmix_proc_t*)malloc(m * sizeof(pmix_proc_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_proc(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_BYTE_OBJECT: - case PMIX_COMPRESSED_STRING: - ptr[i].array = (pmix_byte_object_t*)malloc(m * sizeof(pmix_byte_object_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_bo(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_PERSIST: - ptr[i].array = (pmix_persistence_t*)malloc(m * sizeof(pmix_persistence_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_persist(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_POINTER: - ptr[i].array = (char*)malloc(m * sizeof(char*)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_ptr(buffer, ptr[i].array, &m, PMIX_POINTER))) { - return ret; - } - break; - case PMIX_SCOPE: - ptr[i].array = (pmix_scope_t*)malloc(m * sizeof(pmix_scope_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_scope(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_DATA_RANGE: - ptr[i].array = (pmix_data_range_t*)malloc(m * sizeof(pmix_data_range_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_range(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_PROC_STATE: - ptr[i].array = (pmix_proc_state_t*)malloc(m * sizeof(pmix_proc_state_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_pstate(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_PROC_INFO: - ptr[i].array = (pmix_proc_info_t*)malloc(m * sizeof(pmix_proc_info_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_pinfo(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_QUERY: - ptr[i].array = (pmix_query_t*)malloc(m * sizeof(pmix_query_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_query(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_VALUE: - ptr[i].array = (pmix_value_t*)malloc(m * sizeof(pmix_value_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_value(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - case PMIX_ENVAR: - ptr[i].array = (pmix_envar_t*)malloc(m * sizeof(pmix_envar_t)); - if (NULL == ptr[i].array) { - return PMIX_ERR_NOMEM; - } - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_envar(buffer, ptr[i].array, &m, ptr[i].type))) { - return ret; - } - break; - default: - return PMIX_ERR_NOT_SUPPORTED; + t = ptr[i].type; + + PMIX_DATA_ARRAY_CONSTRUCT(&ptr[i], m, t); + if (NULL == ptr[i].array) { + return PMIX_ERR_NOMEM; + } + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, ptr[i].array, &m, t, regtypes); + if (PMIX_SUCCESS != ret) { + return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_rank(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_rank(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_unpack_int32(buffer, dest, num_vals, PMIX_UINT32); + pmix_status_t ret; + + if (PMIX_PROC_RANK != type) { + return PMIX_ERR_BAD_PARAM; + } + + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, dest, num_vals, PMIX_UINT32, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_unpack_query(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_query(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_query_t *ptr; @@ -1519,6 +1330,10 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack: %d queries", *num_vals); + if (PMIX_QUERY != type) { + return PMIX_ERR_BAD_PARAM; + } + ptr = (pmix_query_t *) dest; n = *num_vals; @@ -1526,7 +1341,8 @@ PMIX_QUERY_CONSTRUCT(&ptr[i]); /* unpack the number of keys */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_int32(buffer, &nkeys, &m, PMIX_INT32))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &nkeys, &m, PMIX_INT32, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (0 < nkeys) { @@ -1536,20 +1352,23 @@ } /* unpack keys */ m=nkeys; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_string(buffer, ptr[i].keys, &m, PMIX_STRING))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, ptr[i].keys, &m, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } /* unpack the number of qualifiers */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_sizet(buffer, &ptr[i].nqual, &m, PMIX_SIZE))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].nqual, &m, PMIX_SIZE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (0 < ptr[i].nqual) { /* unpack the qualifiers */ PMIX_INFO_CREATE(ptr[i].qualifiers, ptr[i].nqual); m = ptr[i].nqual; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_info(buffer, ptr[i].qualifiers, &m, PMIX_INFO))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, ptr[i].qualifiers, &m, PMIX_INFO, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } @@ -1557,19 +1376,36 @@ return PMIX_SUCCESS; } -pmix_status_t pmix_bfrops_base_unpack_alloc_directive(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_alloc_directive(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_unpack_byte(buffer, dest, num_vals, PMIX_UINT8); + pmix_status_t ret; + + if (PMIX_ALLOC_DIRECTIVE != type) { + return PMIX_ERR_BAD_PARAM; + } + + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, dest, num_vals, PMIX_UINT8, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_unpack_iof_channel(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_iof_channel(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { - return pmix_bfrops_base_unpack_int16(buffer, dest, num_vals, PMIX_UINT16); + pmix_status_t ret; + + if (PMIX_IOF_CHANNEL != type) { + return PMIX_ERR_BAD_PARAM; + } + + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, dest, num_vals, PMIX_UINT16, regtypes); + return ret; } -pmix_status_t pmix_bfrops_base_unpack_envar(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix_bfrops_base_unpack_envar(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_envar_t *ptr; @@ -1579,6 +1415,10 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix_bfrop_unpack: %d envars", *num_vals); + if (PMIX_ENVAR != type) { + return PMIX_ERR_BAD_PARAM; + } + ptr = (pmix_envar_t *) dest; n = *num_vals; @@ -1586,17 +1426,48 @@ PMIX_ENVAR_CONSTRUCT(&ptr[i]); /* unpack the name */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_string(buffer, &ptr[i].envar, &m, PMIX_STRING))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].envar, &m, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* unpack the value */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_string(buffer, &ptr[i].value, &m, PMIX_STRING))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].value, &m, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } /* unpack the separator */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_byte(buffer, &ptr[i].separator, &m, PMIX_BYTE))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ptr[i].separator, &m, PMIX_BYTE, regtypes); + if (PMIX_SUCCESS != ret) { + return ret; + } + } + return PMIX_SUCCESS; +} + +pmix_status_t pmix_bfrops_base_unpack_regex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) +{ + char **ptr; + int32_t i, n; + pmix_status_t ret; + + pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, + "pmix_bfrop_unpack: %d regex", *num_vals); + + if (PMIX_REGEX != type) { + return PMIX_ERR_BAD_PARAM; + } + + ptr = (char **) dest; + n = *num_vals; + + for (i = 0; i < n; ++i) { + ret = pmix_preg.unpack(buffer, &ptr[n]); + if (PMIX_SUCCESS != ret) { + *num_vals = n; return ret; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/bfrops.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/bfrops.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/bfrops.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/bfrops.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. @@ -31,9 +31,9 @@ #ifndef PMIX_BFROP_H_ #define PMIX_BFROP_H_ -#include -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" +#include "src/include/types.h" #include "src/mca/mca.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/bfrops_types.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/bfrops_types.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/bfrops_types.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/bfrops_types.h 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2007-2011 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -28,13 +28,13 @@ #ifndef PMIX_MCA_BFROP_TYPES_H_ #define PMIX_MCA_BFROP_TYPES_H_ -#include +#include "src/include/pmix_config.h" #include "src/class/pmix_object.h" #include "src/class/pmix_pointer_array.h" #include "src/class/pmix_list.h" -#include +#include "include/pmix_common.h" BEGIN_C_DECLS @@ -146,7 +146,7 @@ /* Convenience macro to check for empty buffer without * exposing the internals */ #define PMIX_BUFFER_IS_EMPTY(b) \ - 0 == (b)->bytes_used + (0 == (b)->bytes_used) END_C_DECLS diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -153,7 +153,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -183,6 +182,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -193,7 +193,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -391,6 +390,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -454,6 +460,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -476,6 +489,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -494,6 +509,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -502,9 +518,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -518,6 +534,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -563,6 +580,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -575,10 +596,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/bfrop_v12.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/bfrop_v12.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/bfrop_v12.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/bfrop_v12.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,9 @@ * Copyright (c) 201-2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 201-2013 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2013-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2019 Mellanox Technologies, Inc. + * All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -22,7 +24,7 @@ * */ -#include +#include "src/include/pmix_config.h" #include "src/mca/bfrops/base/base.h" #include "bfrop_v12.h" @@ -444,13 +446,15 @@ return v1type; } -pmix_status_t pmix12_bfrop_store_data_type(pmix_buffer_t *buffer, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_store_data_type(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, + pmix_data_type_t type) { int v1type; v1type = pmix12_v2_to_v1_datatype(type); - return pmix12_bfrop_pack_datatype(buffer, &v1type, 1, PMIX_INT); + return pmix12_bfrop_pack_datatype(regtypes, buffer, &v1type, 1, PMIX_INT); } pmix_data_type_t pmix12_v1_to_v2_datatype(int v1type) @@ -491,13 +495,14 @@ return v2type; } -pmix_status_t pmix12_bfrop_get_data_type(pmix_buffer_t *buffer, pmix_data_type_t *type) +pmix_status_t pmix12_bfrop_get_data_type(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_data_type_t *type) { int32_t n=1; int v1type; pmix_status_t rc; - rc = pmix12_bfrop_unpack_datatype(buffer, &v1type, &n, PMIX_INT); + rc = pmix12_bfrop_unpack_datatype(regtypes, buffer, &v1type, &n, PMIX_INT); if (UINT16_MAX < v1type) { *type = 0; return PMIX_ERR_UNKNOWN_DATA_TYPE; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/bfrop_v12_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/bfrop_v12_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/bfrop_v12_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/bfrop_v12_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -26,8 +26,8 @@ * entire components just to query their version and parameters. */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/include/types.h" #include "src/include/pmix_globals.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/copy.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/copy.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/copy.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/copy.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. @@ -20,7 +20,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include "src/util/argv.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/internal.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/internal.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/internal.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/internal.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,10 +11,12 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. + * Copyright (c) 2019 Mellanox Technologies, Inc. + * All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -25,7 +27,7 @@ #ifndef PMIX1_BFROP_INTERNAL_H_ #define PMIX1_BFROP_INTERNAL_H_ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_SYS_TIME_H @@ -122,175 +124,249 @@ /* * Specialized functions */ -pmix_status_t pmix12_bfrop_pack_buffer(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_buffer(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_buffer(pmix_buffer_t *buffer, void *dst, - int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_buffer(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dst, + int32_t *num_vals, pmix_data_type_t type); /* * Internal pack functions */ -pmix_status_t pmix12_bfrop_pack_bool(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_byte(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_string(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_sizet(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_pid(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); - -pmix_status_t pmix12_bfrop_pack_int(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_int16(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix12_bfrop_pack_bool(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_int32(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_datatype(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_int64(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix12_bfrop_pack_byte(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_string(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_sizet(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_pid(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_float(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_double(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix12_bfrop_pack_int(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_int16(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_int32(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_datatype(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_int64(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_timeval(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix12_bfrop_pack_float(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_double(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_time(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_value(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix12_bfrop_pack_timeval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_time(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_array(pmix_buffer_t *buffer, const void *src, + +pmix_status_t pmix12_bfrop_pack_value(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_proc(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_proc(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix12_bfrop_pack_app(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_app(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_info(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix12_bfrop_pack_info(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_buf(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_buf(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix12_bfrop_pack_kval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_modex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_persist(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_bo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_kval(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix12_bfrop_pack_pdata(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +/* compatibility functions - no corresponding PMIx v1.x definitions */ +pmix_status_t pmix12_bfrop_pack_ptr(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_modex(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_persist(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix12_bfrop_pack_scope(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_status(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_bo(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_pdata(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -/* compatibility functions - no corresponding PMIx v1.x definitions */ -pmix_status_t pmix12_bfrop_pack_ptr(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_scope(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_status(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix12_bfrop_pack_range(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_range(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_cmd(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_info_directives(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_proc_state(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix12_bfrop_pack_cmd(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_info_directives(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_proc_state(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_darray(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_pack_proc_info(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_darray(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix12_bfrop_pack_query(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_proc_info(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_query(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix12_bfrop_pack_rank(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_pack_rank(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); /* * Internal unpack functions */ -pmix_status_t pmix12_bfrop_unpack_bool(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_byte(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_string(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_sizet(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix12_bfrop_unpack_bool(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_pid(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); - -pmix_status_t pmix12_bfrop_unpack_int(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_int16(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_int32(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_datatype(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_int64(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix12_bfrop_unpack_byte(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_string(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_sizet(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_pid(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_float(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_double(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix12_bfrop_unpack_int(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_int16(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_int32(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_datatype(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_int64(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_timeval(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix12_bfrop_unpack_float(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_double(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_time(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_value(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix12_bfrop_unpack_timeval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_time(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_array(pmix_buffer_t *buffer, void *dest, + +pmix_status_t pmix12_bfrop_unpack_value(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_proc(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_proc(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix12_bfrop_unpack_app(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_app(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_info(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix12_bfrop_unpack_info(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_buf(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_buf(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix12_bfrop_unpack_kval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_modex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_persist(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_bo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_kval(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix12_bfrop_unpack_pdata(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +/* compatibility functions - no corresponding PMIx v1.x definitions */ +pmix_status_t pmix12_bfrop_unpack_ptr(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_modex(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_persist(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix12_bfrop_unpack_scope(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_status(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_bo(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_pdata(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -/* compatibility functions - no corresponding PMIx v1.x definitions */ -pmix_status_t pmix12_bfrop_unpack_ptr(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_scope(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_status(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix12_bfrop_unpack_range(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_range(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_cmd(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_info_directives(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_proc_state(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix12_bfrop_unpack_cmd(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_info_directives(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_proc_state(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_darray(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_unpack_proc_info(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_darray(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix12_bfrop_unpack_query(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_proc_info(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_query(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix12_bfrop_unpack_rank(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix12_bfrop_unpack_rank(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); /* @@ -408,9 +484,12 @@ /* * Internal helper functions */ -pmix_status_t pmix12_bfrop_store_data_type(pmix_buffer_t *buffer, pmix_data_type_t type); +pmix_status_t pmix12_bfrop_store_data_type(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, + pmix_data_type_t type); -pmix_status_t pmix12_bfrop_get_data_type(pmix_buffer_t *buffer, pmix_data_type_t *type); +pmix_status_t pmix12_bfrop_get_data_type(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_data_type_t *type); int pmix12_v2_to_v1_datatype(pmix_data_type_t v2type); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -126,7 +126,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -156,6 +155,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -166,7 +166,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -383,6 +382,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -446,6 +452,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -468,6 +481,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -486,6 +501,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -494,9 +510,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -510,6 +526,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -555,6 +572,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -567,10 +588,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/pack.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/pack.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/pack.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/pack.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,10 +10,10 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2011-2013 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. - * Copyright (c) 2016 Mellanox Technologies, Inc. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2016-2019 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. * $COPYRIGHT$ @@ -23,9 +23,7 @@ * $HEADER$ */ -#include - -#include +#include "src/include/pmix_config.h" #ifdef HAVE_ARPA_INET_H #include @@ -37,11 +35,12 @@ #include "bfrop_v12.h" #include "internal.h" - pmix_status_t pmix12_bfrop_pack(pmix_buffer_t *buffer, +pmix_status_t pmix12_bfrop_pack(pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_status_t rc; + pmix_pointer_array_t *regtypes = &mca_bfrops_v12_component.types; /* check for error */ if (NULL == buffer) { @@ -50,21 +49,22 @@ /* Pack the number of values */ if (PMIX_BFROP_BUFFER_FULLY_DESC == buffer->type) { - if (PMIX_SUCCESS != (rc = pmix12_bfrop_store_data_type(buffer, PMIX_INT32))) { + if (PMIX_SUCCESS != (rc = pmix12_bfrop_store_data_type(regtypes, buffer, PMIX_INT32))) { return rc; } } - if (PMIX_SUCCESS != (rc = pmix12_bfrop_pack_int32(buffer, &num_vals, 1, PMIX_INT32))) { + if (PMIX_SUCCESS != (rc = pmix12_bfrop_pack_int32(regtypes, buffer, &num_vals, 1, PMIX_INT32))) { return rc; } /* Pack the value(s) */ - return pmix12_bfrop_pack_buffer(buffer, src, num_vals, type); + return pmix12_bfrop_pack_buffer(regtypes, buffer, src, num_vals, type); } -pmix_status_t pmix12_bfrop_pack_buffer(pmix_buffer_t *buffer, - const void *src, int32_t num_vals, - pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_buffer(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, + const void *src, int32_t num_vals, + pmix_data_type_t type) { pmix_status_t rc; pmix_bfrop_type_info_t *info; @@ -95,7 +95,7 @@ /* Pack the declared data type */ if (PMIX_BFROP_BUFFER_FULLY_DESC == buffer->type) { - if (PMIX_SUCCESS != (rc = pmix12_bfrop_store_data_type(buffer, v1type))) { + if (PMIX_SUCCESS != (rc = pmix12_bfrop_store_data_type(regtypes, buffer, v1type))) { return rc; } } @@ -111,7 +111,7 @@ return PMIX_ERR_PACK_FAILURE; } - return info->odti_pack_fn(buffer, src, num_vals, v1type); + return info->odti_pack_fn(regtypes, buffer, src, num_vals, v1type); } @@ -120,8 +120,9 @@ /* * BOOL */ -pmix_status_t pmix12_bfrop_pack_bool(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_bool(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { uint8_t *dst; int32_t i; @@ -152,54 +153,57 @@ /* * INT */ -pmix_status_t pmix12_bfrop_pack_int(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_int(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_status_t ret; /* System types need to always be described so we can properly unpack them */ - if (PMIX_SUCCESS != (ret = pmix12_bfrop_store_data_type(buffer, BFROP_TYPE_INT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_store_data_type(regtypes, buffer, BFROP_TYPE_INT))) { return ret; } /* Turn around and pack the real type */ - return pmix12_bfrop_pack_buffer(buffer, src, num_vals, BFROP_TYPE_INT); + return pmix12_bfrop_pack_buffer(regtypes, buffer, src, num_vals, BFROP_TYPE_INT); } /* * SIZE_T */ -pmix_status_t pmix12_bfrop_pack_sizet(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_sizet(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_status_t ret; /* System types need to always be described so we can properly unpack them. */ - if (PMIX_SUCCESS != (ret = pmix12_bfrop_store_data_type(buffer, BFROP_TYPE_SIZE_T))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_store_data_type(regtypes, buffer, BFROP_TYPE_SIZE_T))) { return ret; } - return pmix12_bfrop_pack_buffer(buffer, src, num_vals, BFROP_TYPE_SIZE_T); + return pmix12_bfrop_pack_buffer(regtypes, buffer, src, num_vals, BFROP_TYPE_SIZE_T); } /* * PID_T */ -pmix_status_t pmix12_bfrop_pack_pid(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_pid(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_status_t ret; /* System types need to always be described so we can properly unpack them. */ - if (PMIX_SUCCESS != (ret = pmix12_bfrop_store_data_type(buffer, BFROP_TYPE_PID_T))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_store_data_type(regtypes, buffer, BFROP_TYPE_PID_T))) { return ret; } /* Turn around and pack the real type */ - return pmix12_bfrop_pack_buffer(buffer, src, num_vals, BFROP_TYPE_PID_T); + return pmix12_bfrop_pack_buffer(regtypes, buffer, src, num_vals, BFROP_TYPE_PID_T); } @@ -208,8 +212,9 @@ /* * BYTE, CHAR, INT8 */ -pmix_status_t pmix12_bfrop_pack_byte(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_byte(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { char *dst; @@ -232,8 +237,9 @@ /* * INT16 */ -pmix_status_t pmix12_bfrop_pack_int16(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_int16(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { int32_t i; uint16_t tmp, *srctmp = (uint16_t*) src; @@ -259,8 +265,9 @@ /* * INT32 */ -pmix_status_t pmix12_bfrop_pack_int32(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_int32(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { int32_t i; uint32_t tmp, *srctmp = (uint32_t*) src; @@ -283,17 +290,19 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_pack_datatype(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_datatype(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { - return pmix12_bfrop_pack_int32(buffer, src, num_vals, type); + return pmix12_bfrop_pack_int32(regtypes, buffer, src, num_vals, type); } /* * INT64 */ -pmix_status_t pmix12_bfrop_pack_int64(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_int64(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { int32_t i; uint64_t tmp, tmp2; @@ -321,8 +330,9 @@ /* * STRING */ -pmix_status_t pmix12_bfrop_pack_string(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_string(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { int ret = PMIX_SUCCESS; int32_t i, len; @@ -331,16 +341,16 @@ for (i = 0; i < num_vals; ++i) { if (NULL == ssrc[i]) { /* got zero-length string/NULL pointer - store NULL */ len = 0; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int32(buffer, &len, 1, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int32(regtypes, buffer, &len, 1, PMIX_INT32))) { return ret; } } else { len = (int32_t)strlen(ssrc[i]) + 1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int32(buffer, &len, 1, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int32(regtypes, buffer, &len, 1, PMIX_INT32))) { return ret; } if (PMIX_SUCCESS != (ret = - pmix12_bfrop_pack_byte(buffer, ssrc[i], len, PMIX_BYTE))) { + pmix12_bfrop_pack_byte(regtypes, buffer, ssrc[i], len, PMIX_BYTE))) { return ret; } } @@ -350,8 +360,9 @@ } /* FLOAT */ -pmix_status_t pmix12_bfrop_pack_float(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_float(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_status_t ret = PMIX_SUCCESS; int32_t i; @@ -362,7 +373,7 @@ if (0 > asprintf(&convert, "%f", ssrc[i])) { return PMIX_ERR_NOMEM; } - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(buffer, &convert, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(regtypes, buffer, &convert, 1, PMIX_STRING))) { free(convert); return ret; } @@ -373,8 +384,9 @@ } /* DOUBLE */ -pmix_status_t pmix12_bfrop_pack_double(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_double(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_status_t ret = PMIX_SUCCESS; int32_t i; @@ -385,7 +397,7 @@ if (0 > asprintf(&convert, "%f", ssrc[i])) { return PMIX_ERR_NOMEM; } - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(buffer, &convert, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(regtypes, buffer, &convert, 1, PMIX_STRING))) { free(convert); return ret; } @@ -396,8 +408,9 @@ } /* TIMEVAL */ -pmix_status_t pmix12_bfrop_pack_timeval(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_timeval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { int64_t tmp[2]; pmix_status_t ret = PMIX_SUCCESS; @@ -407,7 +420,7 @@ for (i = 0; i < num_vals; ++i) { tmp[0] = (int64_t)ssrc[i].tv_sec; tmp[1] = (int64_t)ssrc[i].tv_usec; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int64(buffer, tmp, 2, PMIX_INT64))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int64(regtypes, buffer, tmp, 2, PMIX_INT64))) { return ret; } } @@ -416,8 +429,9 @@ } /* TIME */ -pmix_status_t pmix12_bfrop_pack_time(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_time(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_status_t ret = PMIX_SUCCESS; int32_t i; @@ -429,7 +443,7 @@ */ for (i = 0; i < num_vals; ++i) { ui64 = (uint64_t)ssrc[i]; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int64(buffer, &ui64, 1, PMIX_UINT64))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int64(regtypes, buffer, &ui64, 1, PMIX_UINT64))) { return ret; } } @@ -439,7 +453,8 @@ /* PACK FUNCTIONS FOR GENERIC PMIX TYPES */ -static pmix_status_t pack_val(pmix_buffer_t *buffer, +static pmix_status_t pack_val(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_value_t *p) { pmix_status_t ret; @@ -448,97 +463,97 @@ switch (p->type) { case PMIX_BOOL: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.flag, 1, PMIX_BOOL))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.flag, 1, PMIX_BOOL))) { return ret; } break; case PMIX_BYTE: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.byte, 1, PMIX_BYTE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.byte, 1, PMIX_BYTE))) { return ret; } break; case PMIX_STRING: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.string, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.string, 1, PMIX_STRING))) { return ret; } break; case PMIX_SIZE: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.size, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.size, 1, PMIX_SIZE))) { return ret; } break; case PMIX_PID: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.pid, 1, PMIX_PID))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.pid, 1, PMIX_PID))) { return ret; } break; case PMIX_INT: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.integer, 1, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.integer, 1, PMIX_INT))) { return ret; } break; case PMIX_INT8: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.int8, 1, PMIX_INT8))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.int8, 1, PMIX_INT8))) { return ret; } break; case PMIX_INT16: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.int16, 1, PMIX_INT16))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.int16, 1, PMIX_INT16))) { return ret; } break; case PMIX_INT32: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.int32, 1, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.int32, 1, PMIX_INT32))) { return ret; } break; case PMIX_INT64: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.int64, 1, PMIX_INT64))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.int64, 1, PMIX_INT64))) { return ret; } break; case PMIX_UINT: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.uint, 1, PMIX_UINT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.uint, 1, PMIX_UINT))) { return ret; } break; case PMIX_UINT8: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.uint8, 1, PMIX_UINT8))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.uint8, 1, PMIX_UINT8))) { return ret; } break; case PMIX_UINT16: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.uint16, 1, PMIX_UINT16))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.uint16, 1, PMIX_UINT16))) { return ret; } break; case PMIX_UINT32: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.uint32, 1, PMIX_UINT32))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.uint32, 1, PMIX_UINT32))) { return ret; } break; case PMIX_UINT64: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.uint64, 1, PMIX_UINT64))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.uint64, 1, PMIX_UINT64))) { return ret; } break; case PMIX_FLOAT: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.fval, 1, PMIX_FLOAT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.fval, 1, PMIX_FLOAT))) { return ret; } break; case PMIX_DOUBLE: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.dval, 1, PMIX_DOUBLE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.dval, 1, PMIX_DOUBLE))) { return ret; } break; case PMIX_TIMEVAL: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.tv, 1, PMIX_TIMEVAL))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.tv, 1, PMIX_TIMEVAL))) { return ret; } break; case PMIX_BYTE_OBJECT: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &p->data.bo, 1, PMIX_BYTE_OBJECT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &p->data.bo, 1, PMIX_BYTE_OBJECT))) { return ret; } break; @@ -549,7 +564,7 @@ } array.size = p->data.darray->size; array.array = (pmix_info_t*)p->data.darray->array; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &array, 1, PMIX_INFO_ARRAY))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &array, 1, PMIX_INFO_ARRAY))) { return ret; } break; @@ -557,7 +572,7 @@ case PMIX_PROC_RANK: /* must convert this to an int */ rank = p->data.rank; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(buffer, &rank, 1, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_buffer(regtypes, buffer, &rank, 1, PMIX_INT))) { return ret; } break; @@ -572,8 +587,9 @@ /* * PMIX_VALUE */ -pmix_status_t pmix12_bfrop_pack_value(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_value(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_value_t *ptr; int32_t i; @@ -587,11 +603,11 @@ * using the store_data_type function. This means we lose the translation! * So get it here */ v1type = pmix12_v2_to_v1_datatype(ptr[i].type); - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int(buffer, &v1type, 1, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int(regtypes, buffer, &v1type, 1, PMIX_INT))) { return ret; } /* now pack the right field */ - if (PMIX_SUCCESS != (ret = pack_val(buffer, &ptr[i]))) { + if (PMIX_SUCCESS != (ret = pack_val(regtypes, buffer, &ptr[i]))) { return ret; } } @@ -600,8 +616,9 @@ } -pmix_status_t pmix12_bfrop_pack_info(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_info(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_info_t *info; int32_t i; @@ -614,26 +631,27 @@ for (i = 0; i < num_vals; ++i) { /* pack key */ foo = info[i].key; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(buffer, &foo, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(regtypes, buffer, &foo, 1, PMIX_STRING))) { return ret; } /* pack the type - unfortunately, v1.2 directly packed the int instead of * using the store_data_type function. This means we lose the translation! * So get it here */ v1type = pmix12_v2_to_v1_datatype(info[i].value.type); - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int(buffer, &v1type, 1, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int(regtypes, buffer, &v1type, 1, PMIX_INT))) { return ret; } /* pack value */ - if (PMIX_SUCCESS != (ret = pack_val(buffer, &info[i].value))) { + if (PMIX_SUCCESS != (ret = pack_val(regtypes, buffer, &info[i].value))) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_pack_pdata(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_pdata(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_pdata_t *pdata; int32_t i; @@ -645,31 +663,32 @@ for (i = 0; i < num_vals; ++i) { /* pack the proc */ - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_proc(buffer, &pdata[i].proc, 1, PMIX_PROC))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_proc(regtypes, buffer, &pdata[i].proc, 1, PMIX_PROC))) { return ret; } /* pack key */ foo = pdata[i].key; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(buffer, &foo, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(regtypes, buffer, &foo, 1, PMIX_STRING))) { return ret; } /* pack the type - unfortunately, v1.2 directly packed the int instead of * using the store_data_type function. This means we lose the translation! * So get it here */ v1type = pmix12_v2_to_v1_datatype(pdata[i].value.type); - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int(buffer, &v1type, 1, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int(regtypes, buffer, &v1type, 1, PMIX_INT))) { return ret; } /* pack value */ - if (PMIX_SUCCESS != (ret = pack_val(buffer, &pdata[i].value))) { + if (PMIX_SUCCESS != (ret = pack_val(regtypes, buffer, &pdata[i].value))) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_pack_buf(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_buf(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_buffer_t *ptr; int32_t i; @@ -679,12 +698,12 @@ for (i = 0; i < num_vals; ++i) { /* pack the number of bytes */ - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_sizet(buffer, &ptr[i].bytes_used, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_sizet(regtypes, buffer, &ptr[i].bytes_used, 1, PMIX_SIZE))) { return ret; } /* pack the bytes */ if (0 < ptr[i].bytes_used) { - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_byte(buffer, ptr[i].base_ptr, ptr[i].bytes_used, PMIX_BYTE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_byte(regtypes, buffer, ptr[i].base_ptr, ptr[i].bytes_used, PMIX_BYTE))) { return ret; } } @@ -692,8 +711,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_pack_proc(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_proc(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_proc_t *proc; int32_t i; @@ -703,18 +723,19 @@ for (i = 0; i < num_vals; ++i) { char *ptr = proc[i].nspace; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(buffer, &ptr, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(regtypes, buffer, &ptr, 1, PMIX_STRING))) { return ret; } - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int(buffer, &proc[i].rank, 1, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int(regtypes, buffer, &proc[i].rank, 1, PMIX_INT))) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_pack_app(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_app(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_app_t *app; int32_t i, j, nvals; @@ -724,39 +745,39 @@ app = (pmix_app_t *) src; for (i = 0; i < num_vals; ++i) { - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(buffer, &app[i].cmd, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(regtypes, buffer, &app[i].cmd, 1, PMIX_STRING))) { return ret; } /* argv */ argc = pmix_argv_count(app[i].argv); - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int(buffer, &argc, 1, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int(regtypes, buffer, &argc, 1, PMIX_INT))) { return ret; } for (j=0; j < argc; j++) { - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(buffer, &app[i].argv[j], 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(regtypes, buffer, &app[i].argv[j], 1, PMIX_STRING))) { return ret; } } /* env */ nvals = pmix_argv_count(app[i].env); - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int32(buffer, &nvals, 1, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int32(regtypes, buffer, &nvals, 1, PMIX_INT32))) { return ret; } for (j=0; j < nvals; j++) { - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(buffer, &app[i].env[j], 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(regtypes, buffer, &app[i].env[j], 1, PMIX_STRING))) { return ret; } } /* maxprocs */ - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int(buffer, &app[i].maxprocs, 1, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_int(regtypes, buffer, &app[i].maxprocs, 1, PMIX_INT))) { return ret; } /* info array */ - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_sizet(buffer, &app[i].ninfo, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_sizet(regtypes, buffer, &app[i].ninfo, 1, PMIX_SIZE))) { return ret; } if (0 < app[i].ninfo) { - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_info(buffer, app[i].info, app[i].ninfo, PMIX_INFO))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_info(regtypes, buffer, app[i].info, app[i].ninfo, PMIX_INFO))) { return ret; } } @@ -765,8 +786,9 @@ } -pmix_status_t pmix12_bfrop_pack_kval(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_kval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_kval_t *ptr; int32_t i; @@ -776,11 +798,11 @@ for (i = 0; i < num_vals; ++i) { /* pack the key */ - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(buffer, &ptr[i].key, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_string(regtypes, buffer, &ptr[i].key, 1, PMIX_STRING))) { return ret; } /* pack the value */ - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_value(buffer, ptr[i].value, 1, ptr[i].value->type))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_value(regtypes, buffer, ptr[i].value, 1, ptr[i].value->type))) { return ret; } } @@ -788,8 +810,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_pack_array(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_info_array_t *ptr; int32_t i; @@ -799,12 +822,12 @@ for (i = 0; i < num_vals; ++i) { /* pack the size */ - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_sizet(buffer, &ptr[i].size, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_sizet(regtypes, buffer, &ptr[i].size, 1, PMIX_SIZE))) { return ret; } if (0 < ptr[i].size) { /* pack the values */ - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_info(buffer, ptr[i].array, ptr[i].size, PMIX_INFO))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_info(regtypes, buffer, ptr[i].array, ptr[i].size, PMIX_INFO))) { return ret; } } @@ -813,8 +836,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_pack_modex(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_modex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_modex_data_t *ptr; int32_t i; @@ -823,11 +847,11 @@ ptr = (pmix_modex_data_t *) src; for (i = 0; i < num_vals; ++i) { - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_sizet(buffer, &ptr[i].size, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_sizet(regtypes, buffer, &ptr[i].size, 1, PMIX_SIZE))) { return ret; } if( 0 < ptr[i].size){ - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_byte(buffer, ptr[i].blob, ptr[i].size, PMIX_UINT8))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_byte(regtypes, buffer, ptr[i].blob, ptr[i].size, PMIX_UINT8))) { return ret; } } @@ -835,14 +859,16 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_pack_persist(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_persist(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { - return pmix12_bfrop_pack_int(buffer, src, num_vals, PMIX_INT); + return pmix12_bfrop_pack_int(regtypes, buffer, src, num_vals, PMIX_INT); } -pmix_status_t pmix12_bfrop_pack_bo(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_bo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_status_t ret; int i; @@ -850,11 +876,11 @@ bo = (pmix_byte_object_t*)src; for (i=0; i < num_vals; i++) { - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_sizet(buffer, &bo[i].size, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_sizet(regtypes, buffer, &bo[i].size, 1, PMIX_SIZE))) { return ret; } if (0 < bo[i].size) { - if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_byte(buffer, bo[i].bytes, bo[i].size, PMIX_BYTE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_pack_byte(regtypes, buffer, bo[i].bytes, bo[i].size, PMIX_BYTE))) { return ret; } } @@ -862,15 +888,17 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_pack_ptr(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_ptr(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { /* v1.x has no concept of packing a pointer, so just return */ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_pack_scope(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_scope(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_scope_t *scope = (pmix_scope_t*)src; unsigned int *v1scope; @@ -885,21 +913,23 @@ for (i=0; i < num_vals; i++) { v1scope[i] = (unsigned int)scope[i]; } - ret = pmix12_bfrop_pack_int(buffer, (void*)v1scope, num_vals, PMIX_UINT); + ret = pmix12_bfrop_pack_int(regtypes, buffer, (void*)v1scope, num_vals, PMIX_UINT); free(v1scope); return ret; } -pmix_status_t pmix12_bfrop_pack_status(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_status(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { /* v1.2 declares pmix_status_t as an enum, which translates to int and * matches that of v2 */ - return pmix12_bfrop_pack_int(buffer, src, num_vals, PMIX_INT); + return pmix12_bfrop_pack_int(regtypes, buffer, src, num_vals, PMIX_INT); } -pmix_status_t pmix12_bfrop_pack_range(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_range(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_data_range_t *range = (pmix_data_range_t*)src; unsigned int *v1range; @@ -914,13 +944,14 @@ for (i=0; i < num_vals; i++) { v1range[i] = (unsigned int)range[i]; } - ret = pmix12_bfrop_pack_int(buffer, (void*)v1range, num_vals, PMIX_UINT); + ret = pmix12_bfrop_pack_int(regtypes, buffer, (void*)v1range, num_vals, PMIX_UINT); free(v1range); return ret; } -pmix_status_t pmix12_bfrop_pack_cmd(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_cmd(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_cmd_t *cmd = (pmix_cmd_t*)src; int *v1cmd; @@ -935,48 +966,54 @@ for (i=0; i < num_vals; i++) { v1cmd[i] = cmd[i]; } - ret = pmix12_bfrop_pack_int(buffer, (void*)v1cmd, num_vals, PMIX_INT); + ret = pmix12_bfrop_pack_int(regtypes, buffer, (void*)v1cmd, num_vals, PMIX_INT); free(v1cmd); return ret; } -pmix_status_t pmix12_bfrop_pack_info_directives(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_info_directives(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { /* v1.x has no concept of an info directive, so just return */ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_pack_proc_state(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_proc_state(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { /* v1.x has no concept of proc state, so just return */ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_pack_darray(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_darray(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { return PMIX_ERR_NOT_SUPPORTED; } -pmix_status_t pmix12_bfrop_pack_proc_info(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_proc_info(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { return PMIX_ERR_NOT_SUPPORTED; } -pmix_status_t pmix12_bfrop_pack_query(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_query(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { return PMIX_ERR_NOT_SUPPORTED; } -pmix_status_t pmix12_bfrop_pack_rank(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_pack_rank(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { /* v1 rank is just an int, not a separate data type - it is defined * to be an unint32 in v2 */ - return pmix12_bfrop_pack_int(buffer, src, num_vals, PMIX_INT); + return pmix12_bfrop_pack_int(regtypes, buffer, src, num_vals, PMIX_INT); } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/print.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/print.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/print.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/print.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. @@ -21,9 +21,9 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include +#include "src/include/pmix_stdint.h" #include #ifdef HAVE_TIME_H diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/unpack.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/unpack.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/unpack.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v12/unpack.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,10 +10,10 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. - * Copyright (c) 2016 Mellanox Technologies, Inc. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2016-2019 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. * $COPYRIGHT$ @@ -23,9 +23,7 @@ * $HEADER$ */ -#include - -#include +#include "src/include/pmix_config.h" #include "src/util/argv.h" #include "src/util/error.h" @@ -34,42 +32,14 @@ #include "bfrop_v12.h" #include "internal.h" -static pmix_status_t unpack_gentype(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) -{ - switch(type) { - case PMIX_INT8: - case PMIX_UINT8: - return pmix12_bfrop_unpack_byte(buffer, dest, num_vals, type); - break; - - case PMIX_INT16: - case PMIX_UINT16: - return pmix12_bfrop_unpack_int16(buffer, dest, num_vals, type); - break; - - case PMIX_INT32: - case PMIX_UINT32: - return pmix12_bfrop_unpack_int32(buffer, dest, num_vals, type); - break; - - case PMIX_INT64: - case PMIX_UINT64: - return pmix12_bfrop_unpack_int64(buffer, dest, num_vals, type); - break; - - default: - return PMIX_ERR_UNKNOWN_DATA_TYPE; - } -} - pmix_status_t pmix12_bfrop_unpack(pmix_buffer_t *buffer, - void *dst, int32_t *num_vals, - pmix_data_type_t type) + void *dst, int32_t *num_vals, + pmix_data_type_t type) { pmix_status_t rc, ret; int32_t local_num, n=1; pmix_data_type_t local_type; + pmix_pointer_array_t *regtypes = &mca_bfrops_v12_component.types; pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix12_bfrop_unpack: for type %d", (int)type); @@ -101,7 +71,7 @@ * int32_t as used here. */ if (PMIX_BFROP_BUFFER_FULLY_DESC == buffer->type) { - if (PMIX_SUCCESS != (rc = pmix12_bfrop_get_data_type(buffer, &local_type))) { + if (PMIX_SUCCESS != (rc = pmix12_bfrop_get_data_type(regtypes, buffer, &local_type))) { *num_vals = 0; /* don't error log here as the user may be unpacking past * the end of the buffer, which isn't necessarily an error */ @@ -115,7 +85,7 @@ } n=1; - if (PMIX_SUCCESS != (rc = pmix12_bfrop_unpack_int32(buffer, &local_num, &n, PMIX_INT32))) { + if (PMIX_SUCCESS != (rc = pmix12_bfrop_unpack_int32(regtypes, buffer, &local_num, &n, PMIX_INT32))) { *num_vals = 0; /* don't error log here as the user may be unpacking past * the end of the buffer, which isn't necessarily an error */ @@ -133,8 +103,9 @@ */ if (local_num > *num_vals) { local_num = *num_vals; - pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix12_bfrop_unpack: inadequate space ( %p, %p, %lu, %d )\n", - (void*)buffer, dst, (long unsigned int)*num_vals, (int)type); + pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, + "pmix12_bfrop_unpack: inadequate space ( %p, %p, %lu, %d )\n", + (void*)buffer, dst, (long unsigned int)*num_vals, (int)type); ret = PMIX_ERR_UNPACK_INADEQUATE_SPACE; } else { /** enough or more than enough storage */ *num_vals = local_num; /** let the user know how many we actually unpacked */ @@ -142,7 +113,7 @@ } /** Unpack the value(s) */ - if (PMIX_SUCCESS != (rc = pmix12_bfrop_unpack_buffer(buffer, dst, &local_num, type))) { + if (PMIX_SUCCESS != (rc = pmix12_bfrop_unpack_buffer(regtypes, buffer, dst, &local_num, type))) { PMIX_ERROR_LOG(rc); *num_vals = 0; ret = rc; @@ -151,12 +122,12 @@ return ret; } -pmix_status_t pmix12_bfrop_unpack_buffer(pmix_buffer_t *buffer, void *dst, int32_t *num_vals, - pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_buffer(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dst, int32_t *num_vals, + pmix_data_type_t type) { pmix_status_t rc; pmix_data_type_t local_type, v1type; - pmix_bfrop_type_info_t *info; pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix12_bfrop_unpack_buffer( %p, %p, %lu, %d )\n", (void*)buffer, dst, (long unsigned int)*num_vals, (int)type); @@ -181,7 +152,7 @@ /** Unpack the declared data type */ if (PMIX_BFROP_BUFFER_FULLY_DESC == buffer->type) { - if (PMIX_SUCCESS != (rc = pmix12_bfrop_get_data_type(buffer, &local_type))) { + if (PMIX_SUCCESS != (rc = pmix12_bfrop_get_data_type(regtypes, buffer, &local_type))) { PMIX_ERROR_LOG(rc); return rc; } @@ -192,18 +163,8 @@ return PMIX_ERR_PACK_MISMATCH; } } + PMIX_BFROPS_UNPACK_TYPE(rc, buffer, dst, num_vals, v1type, regtypes); - /* Lookup the unpack function for this type and call it */ - - if (NULL == (info = (pmix_bfrop_type_info_t*)pmix_pointer_array_get_item(&mca_bfrops_v12_component.types, v1type))) { - PMIX_ERROR_LOG(PMIX_ERR_UNPACK_FAILURE); - return PMIX_ERR_UNPACK_FAILURE; - } - - rc = info->odti_unpack_fn(buffer, dst, num_vals, v1type); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - } return rc; } @@ -213,8 +174,9 @@ /* * BOOL */ -pmix_status_t pmix12_bfrop_unpack_bool(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_bool(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { int32_t i; uint8_t *src; @@ -247,24 +209,25 @@ /* * INT */ -pmix_status_t pmix12_bfrop_unpack_int(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_int(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_status_t ret; pmix_data_type_t remote_type; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_get_data_type(buffer, &remote_type))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_get_data_type(regtypes, buffer, &remote_type))) { return ret; } if (remote_type == BFROP_TYPE_INT) { /* fast path it if the sizes are the same */ /* Turn around and unpack the real type */ - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, dest, num_vals, BFROP_TYPE_INT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, dest, num_vals, BFROP_TYPE_INT))) { } } else { /* slow path - types are different sizes */ - PMIX_BFROP_UNPACK_SIZE_MISMATCH(int, remote_type, ret); + PMIX_BFROP_UNPACK_SIZE_MISMATCH(regtypes, int, remote_type, ret); } return ret; @@ -273,24 +236,25 @@ /* * SIZE_T */ -pmix_status_t pmix12_bfrop_unpack_sizet(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_sizet(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_status_t ret; pmix_data_type_t remote_type; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_get_data_type(buffer, &remote_type))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_get_data_type(regtypes, buffer, &remote_type))) { return ret; } if (remote_type == BFROP_TYPE_SIZE_T) { /* fast path it if the sizes are the same */ /* Turn around and unpack the real type */ - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, dest, num_vals, BFROP_TYPE_SIZE_T))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, dest, num_vals, BFROP_TYPE_SIZE_T))) { } } else { /* slow path - types are different sizes */ - PMIX_BFROP_UNPACK_SIZE_MISMATCH(size_t, remote_type, ret); + PMIX_BFROP_UNPACK_SIZE_MISMATCH(regtypes, size_t, remote_type, ret); } return ret; @@ -299,24 +263,25 @@ /* * PID_T */ -pmix_status_t pmix12_bfrop_unpack_pid(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_pid(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_status_t ret; pmix_data_type_t remote_type; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_get_data_type(buffer, &remote_type))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_get_data_type(regtypes, buffer, &remote_type))) { return ret; } if (remote_type == BFROP_TYPE_PID_T) { /* fast path it if the sizes are the same */ /* Turn around and unpack the real type */ - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, dest, num_vals, BFROP_TYPE_PID_T))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, dest, num_vals, BFROP_TYPE_PID_T))) { } } else { /* slow path - types are different sizes */ - PMIX_BFROP_UNPACK_SIZE_MISMATCH(pid_t, remote_type, ret); + PMIX_BFROP_UNPACK_SIZE_MISMATCH(regtypes, pid_t, remote_type, ret); } return ret; @@ -328,8 +293,9 @@ /* * BYTE, CHAR, INT8 */ -pmix_status_t pmix12_bfrop_unpack_byte(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_byte(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix12_bfrop_unpack_byte * %d\n", (int)*num_vals); /* check to see if there's enough data in buffer */ @@ -346,8 +312,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_int16(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_int16(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { int32_t i; uint16_t tmp, *desttmp = (uint16_t*) dest; @@ -369,8 +336,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_int32(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_int32(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { int32_t i; uint32_t tmp, *desttmp = (uint32_t*) dest; @@ -392,19 +360,22 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_datatype(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_datatype(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { - return pmix12_bfrop_unpack_int32(buffer, dest, num_vals, type); + return pmix12_bfrop_unpack_int32(regtypes, buffer, dest, num_vals, type); } -pmix_status_t pmix12_bfrop_unpack_int64(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_int64(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { int32_t i; uint64_t tmp, *desttmp = (uint64_t*) dest; - pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix12_bfrop_unpack_int64 * %d\n", (int)*num_vals); + pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, + "pmix12_bfrop_unpack_int64 * %d\n", (int)*num_vals); /* check to see if there's enough data in buffer */ if (pmix_bfrop_too_small(buffer, (*num_vals)*sizeof(tmp))) { return PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER; @@ -421,15 +392,17 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_string(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_string(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_status_t ret; int32_t i, len, n=1; char **sdest = (char**) dest; for (i = 0; i < (*num_vals); ++i) { - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int32(buffer, &len, &n, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int32(regtypes, buffer, + &len, &n, PMIX_INT32))) { return ret; } if (0 == len) { /* zero-length string - unpack the NULL */ @@ -439,7 +412,9 @@ if (NULL == sdest[i]) { return PMIX_ERR_OUT_OF_RESOURCE; } - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_byte(buffer, sdest[i], &len, PMIX_BYTE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_byte(regtypes, buffer, + sdest[i], &len, + PMIX_BYTE))) { return ret; } } @@ -448,15 +423,17 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_float(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_float(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { int32_t i, n; float *desttmp = (float*) dest, tmp; pmix_status_t ret; char *convert; - pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix12_bfrop_unpack_float * %d\n", (int)*num_vals); + pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, + "pmix12_bfrop_unpack_float * %d\n", (int)*num_vals); /* check to see if there's enough data in buffer */ if (pmix_bfrop_too_small(buffer, (*num_vals)*sizeof(float))) { return PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER; @@ -466,7 +443,8 @@ for (i = 0; i < (*num_vals); ++i) { n=1; convert = NULL; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(buffer, &convert, &n, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(regtypes, buffer, + &convert, &n, PMIX_STRING))) { return ret; } if (NULL != convert) { @@ -478,15 +456,17 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_double(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_double(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { int32_t i, n; double *desttmp = (double*) dest, tmp; pmix_status_t ret; char *convert; - pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix12_bfrop_unpack_double * %d\n", (int)*num_vals); + pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, + "pmix12_bfrop_unpack_double * %d\n", (int)*num_vals); /* check to see if there's enough data in buffer */ if (pmix_bfrop_too_small(buffer, (*num_vals)*sizeof(double))) { return PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER; @@ -496,7 +476,9 @@ for (i = 0; i < (*num_vals); ++i) { n=1; convert = NULL; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(buffer, &convert, &n, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(regtypes, buffer, + &convert, &n, + PMIX_STRING))) { return ret; } if (NULL != convert) { @@ -508,15 +490,17 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_timeval(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_timeval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { int32_t i, n; int64_t tmp[2]; struct timeval *desttmp = (struct timeval *) dest, tt; pmix_status_t ret; - pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix12_bfrop_unpack_timeval * %d\n", (int)*num_vals); + pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, + "pmix12_bfrop_unpack_timeval * %d\n", (int)*num_vals); /* check to see if there's enough data in buffer */ if (pmix_bfrop_too_small(buffer, (*num_vals)*sizeof(struct timeval))) { return PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER; @@ -525,7 +509,8 @@ /* unpack the data */ for (i = 0; i < (*num_vals); ++i) { n=2; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int64(buffer, tmp, &n, PMIX_INT64))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int64(regtypes, buffer, + tmp, &n, PMIX_INT64))) { return ret; } tt.tv_sec = tmp[0]; @@ -535,8 +520,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_time(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_time(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { int32_t i, n; time_t *desttmp = (time_t *) dest, tmp; @@ -547,7 +533,8 @@ * to uint64_t as a generic safe size */ - pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix12_bfrop_unpack_time * %d\n", (int)*num_vals); + pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, + "pmix12_bfrop_unpack_time * %d\n", (int)*num_vals); /* check to see if there's enough data in buffer */ if (pmix_bfrop_too_small(buffer, (*num_vals)*(sizeof(uint64_t)))) { return PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER; @@ -556,7 +543,8 @@ /* unpack the data */ for (i = 0; i < (*num_vals); ++i) { n=1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int64(buffer, &ui64, &n, PMIX_UINT64))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int64(regtypes, buffer, + &ui64, &n, PMIX_UINT64))) { return ret; } tmp = (time_t)ui64; @@ -571,7 +559,8 @@ /* * PMIX_VALUE */ -static pmix_status_t unpack_val(pmix_buffer_t *buffer, pmix_value_t *val) +static pmix_status_t unpack_val(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_value_t *val) { int32_t m; pmix_status_t ret; @@ -579,92 +568,92 @@ m = 1; switch (val->type) { case PMIX_BOOL: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.flag, &m, PMIX_BOOL))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.flag, &m, PMIX_BOOL))) { return ret; } break; case PMIX_BYTE: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.byte, &m, PMIX_BYTE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.byte, &m, PMIX_BYTE))) { return ret; } break; case PMIX_STRING: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.string, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.string, &m, PMIX_STRING))) { return ret; } break; case PMIX_SIZE: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.size, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.size, &m, PMIX_SIZE))) { return ret; } break; case PMIX_PID: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.pid, &m, PMIX_PID))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.pid, &m, PMIX_PID))) { return ret; } break; case PMIX_INT: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.integer, &m, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.integer, &m, PMIX_INT))) { return ret; } break; case PMIX_INT8: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.int8, &m, PMIX_INT8))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.int8, &m, PMIX_INT8))) { return ret; } break; case PMIX_INT16: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.int16, &m, PMIX_INT16))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.int16, &m, PMIX_INT16))) { return ret; } break; case PMIX_INT32: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.int32, &m, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.int32, &m, PMIX_INT32))) { return ret; } break; case PMIX_INT64: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.int64, &m, PMIX_INT64))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.int64, &m, PMIX_INT64))) { return ret; } break; case PMIX_UINT: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.uint, &m, PMIX_UINT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.uint, &m, PMIX_UINT))) { return ret; } break; case PMIX_UINT8: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.uint8, &m, PMIX_UINT8))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.uint8, &m, PMIX_UINT8))) { return ret; } break; case PMIX_UINT16: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.uint16, &m, PMIX_UINT16))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.uint16, &m, PMIX_UINT16))) { return ret; } break; case PMIX_UINT32: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.uint32, &m, PMIX_UINT32))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.uint32, &m, PMIX_UINT32))) { return ret; } break; case PMIX_UINT64: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.uint64, &m, PMIX_UINT64))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.uint64, &m, PMIX_UINT64))) { return ret; } break; case PMIX_FLOAT: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.fval, &m, PMIX_FLOAT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.fval, &m, PMIX_FLOAT))) { return ret; } break; case PMIX_DOUBLE: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.dval, &m, PMIX_DOUBLE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.dval, &m, PMIX_DOUBLE))) { return ret; } break; case PMIX_TIMEVAL: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.tv, &m, PMIX_TIMEVAL))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.tv, &m, PMIX_TIMEVAL))) { return ret; } break; @@ -675,12 +664,12 @@ val->data.darray->type = PMIX_INFO_ARRAY; val->data.darray->size = m; /* unpack into it */ - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.darray->array, &m, PMIX_INFO_ARRAY))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.darray->array, &m, PMIX_INFO_ARRAY))) { return ret; } break; case PMIX_BYTE_OBJECT: - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(buffer, &val->data.bo, &m, PMIX_BYTE_OBJECT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_buffer(regtypes, buffer, &val->data.bo, &m, PMIX_BYTE_OBJECT))) { return ret; } break; @@ -692,8 +681,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_value(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_value(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_value_t *ptr; int32_t i, m, n; @@ -706,7 +696,7 @@ for (i = 0; i < n; ++i) { /* unpack the type */ m=1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int(buffer, &v1type, &m, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int(regtypes, buffer, &v1type, &m, PMIX_INT))) { return ret; } /* convert the type - unfortunately, v1.2 directly packed the int instead of @@ -714,15 +704,16 @@ * So get it here */ ptr[i].type = pmix12_v1_to_v2_datatype(v1type); /* unpack value */ - if (PMIX_SUCCESS != (ret = unpack_val(buffer, &ptr[i])) ) { + if (PMIX_SUCCESS != (ret = unpack_val(regtypes, buffer, &ptr[i])) ) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_info(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_info(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_info_t *ptr; int32_t i, n, m; @@ -742,7 +733,7 @@ /* unpack key */ m=1; tmp = NULL; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(buffer, &tmp, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(regtypes, buffer, &tmp, &m, PMIX_STRING))) { return ret; } if (NULL == tmp) { @@ -754,7 +745,7 @@ * instead of a pointer in this struct, we directly unpack it to * avoid the malloc */ m=1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int(buffer, &v1type, &m, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int(regtypes, buffer, &v1type, &m, PMIX_INT))) { return ret; } /* convert the type - unfortunately, v1.2 directly packed the int instead of @@ -764,15 +755,16 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix12_bfrop_unpack: info type %d", ptr[i].value.type); m=1; - if (PMIX_SUCCESS != (ret = unpack_val(buffer, &ptr[i].value))) { + if (PMIX_SUCCESS != (ret = unpack_val(regtypes, buffer, &ptr[i].value))) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_pdata(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_pdata(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_pdata_t *ptr; int32_t i, n, m; @@ -790,13 +782,13 @@ PMIX_PDATA_CONSTRUCT(&ptr[i]); /* unpack the proc */ m=1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_proc(buffer, &ptr[i].proc, &m, PMIX_PROC))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_proc(regtypes, buffer, &ptr[i].proc, &m, PMIX_PROC))) { return ret; } /* unpack key */ m=1; tmp = NULL; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(buffer, &tmp, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(regtypes, buffer, &tmp, &m, PMIX_STRING))) { return ret; } if (NULL == tmp) { @@ -808,7 +800,7 @@ * instead of a pointer in this struct, we directly unpack it to * avoid the malloc */ m=1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int(buffer, &v1type, &m, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int(regtypes, buffer, &v1type, &m, PMIX_INT))) { return ret; } /* convert the type - unfortunately, v1.2 directly packed the int instead of @@ -818,15 +810,16 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix12_bfrop_unpack: pdata type %d", ptr[i].value.type); m=1; - if (PMIX_SUCCESS != (ret = unpack_val(buffer, &ptr[i].value))) { + if (PMIX_SUCCESS != (ret = unpack_val(regtypes, buffer, &ptr[i].value))) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_buf(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_buf(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_buffer_t *ptr; int32_t i, n, m; @@ -839,7 +832,7 @@ for (i = 0; i < n; ++i) { /* unpack the number of bytes */ m=1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_sizet(buffer, &nbytes, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_sizet(regtypes, buffer, &nbytes, &m, PMIX_SIZE))) { return ret; } m = nbytes; @@ -847,7 +840,7 @@ if (0 < nbytes) { ptr[i].base_ptr = (char*)malloc(nbytes); /* unpack the bytes */ - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_byte(buffer, ptr[i].base_ptr, &m, PMIX_BYTE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_byte(regtypes, buffer, ptr[i].base_ptr, &m, PMIX_BYTE))) { return ret; } } @@ -859,8 +852,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_proc(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_proc(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_proc_t *ptr; int32_t i, n, m; @@ -880,7 +874,7 @@ /* unpack nspace */ m=1; tmp = NULL; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(buffer, &tmp, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(regtypes, buffer, &tmp, &m, PMIX_STRING))) { return ret; } if (NULL == tmp) { @@ -890,7 +884,7 @@ free(tmp); /* unpack the rank */ m=1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int(buffer, &ptr[i].rank, &m, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int(regtypes, buffer, &ptr[i].rank, &m, PMIX_INT))) { return ret; } /* we have to do some conversion here as the definition of rank @@ -904,8 +898,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_app(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_app(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_app_t *ptr; int32_t i, k, n, m; @@ -925,19 +920,19 @@ PMIX_APP_CONSTRUCT(&ptr[i]); /* unpack cmd */ m=1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(buffer, &ptr[i].cmd, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(regtypes, buffer, &ptr[i].cmd, &m, PMIX_STRING))) { return ret; } /* unpack argc */ m=1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int(buffer, &argc, &m, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int(regtypes, buffer, &argc, &m, PMIX_INT))) { return ret; } /* unpack argv */ for (k=0; k < argc; k++) { m=1; tmp = NULL; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(buffer, &tmp, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(regtypes, buffer, &tmp, &m, PMIX_STRING))) { return ret; } if (NULL == tmp) { @@ -948,13 +943,13 @@ } /* unpack env */ m=1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int32(buffer, &nval, &m, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int32(regtypes, buffer, &nval, &m, PMIX_INT32))) { return ret; } for (k=0; k < nval; k++) { m=1; tmp = NULL; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(buffer, &tmp, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(regtypes, buffer, &tmp, &m, PMIX_STRING))) { return ret; } if (NULL == tmp) { @@ -965,18 +960,18 @@ } /* unpack maxprocs */ m=1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int(buffer, &ptr[i].maxprocs, &m, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_int(regtypes, buffer, &ptr[i].maxprocs, &m, PMIX_INT))) { return ret; } /* unpack info array */ m=1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_sizet(buffer, &ptr[i].ninfo, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_sizet(regtypes, buffer, &ptr[i].ninfo, &m, PMIX_SIZE))) { return ret; } if (0 < ptr[i].ninfo) { PMIX_INFO_CREATE(ptr[i].info, ptr[i].ninfo); m = ptr[i].ninfo; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_info(buffer, ptr[i].info, &m, PMIX_INFO))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_info(regtypes, buffer, ptr[i].info, &m, PMIX_INFO))) { return ret; } } @@ -984,8 +979,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_kval(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_kval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_kval_t *ptr; int32_t i, n, m; @@ -1001,7 +997,7 @@ PMIX_CONSTRUCT(&ptr[i], pmix_kval_t); /* unpack the key */ m = 1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(buffer, &ptr[i].key, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_string(regtypes, buffer, &ptr[i].key, &m, PMIX_STRING))) { PMIX_ERROR_LOG(ret); return ret; } @@ -1009,7 +1005,7 @@ ptr[i].value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); /* unpack the value */ m = 1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_value(buffer, ptr[i].value, &m, PMIX_VALUE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_value(regtypes, buffer, ptr[i].value, &m, PMIX_VALUE))) { PMIX_ERROR_LOG(ret); return ret; } @@ -1017,8 +1013,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_array(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_info_array_t *ptr; int32_t i, n, m; @@ -1036,13 +1033,13 @@ memset(&ptr[i], 0, sizeof(pmix_info_array_t)); /* unpack the size of this array */ m=1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_sizet(buffer, &ptr[i].size, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_sizet(regtypes, buffer, &ptr[i].size, &m, PMIX_SIZE))) { return ret; } if (0 < ptr[i].size) { ptr[i].array = (pmix_info_t*)malloc(ptr[i].size * sizeof(pmix_info_t)); m=ptr[i].size; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_value(buffer, ptr[i].array, &m, PMIX_INFO))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_value(regtypes, buffer, ptr[i].array, &m, PMIX_INFO))) { return ret; } } @@ -1050,8 +1047,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_modex(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_modex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_modex_data_t *ptr; int32_t i, n, m; @@ -1067,13 +1065,13 @@ memset(&ptr[i], 0, sizeof(pmix_modex_data_t)); /* unpack the number of bytes */ m=1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_sizet(buffer, &ptr[i].size, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_sizet(regtypes, buffer, &ptr[i].size, &m, PMIX_SIZE))) { return ret; } if (0 < ptr[i].size) { ptr[i].blob = (uint8_t*)malloc(ptr[i].size * sizeof(uint8_t)); m=ptr[i].size; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_byte(buffer, ptr[i].blob, &m, PMIX_UINT8))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_byte(regtypes, buffer, ptr[i].blob, &m, PMIX_UINT8))) { return ret; } } @@ -1082,14 +1080,16 @@ } -pmix_status_t pmix12_bfrop_unpack_persist(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_persist(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { - return pmix12_bfrop_unpack_int(buffer, dest, num_vals, PMIX_INT); + return pmix12_bfrop_unpack_int(regtypes, buffer, dest, num_vals, PMIX_INT); } -pmix_status_t pmix12_bfrop_unpack_bo(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_bo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_byte_object_t *ptr; int32_t i, n, m; @@ -1105,13 +1105,13 @@ memset(&ptr[i], 0, sizeof(pmix_byte_object_t)); /* unpack the number of bytes */ m=1; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_sizet(buffer, &ptr[i].size, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_sizet(regtypes, buffer, &ptr[i].size, &m, PMIX_SIZE))) { return ret; } if (0 < ptr[i].size) { ptr[i].bytes = (char*)malloc(ptr[i].size * sizeof(char)); m=ptr[i].size; - if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_byte(buffer, ptr[i].bytes, &m, PMIX_BYTE))) { + if (PMIX_SUCCESS != (ret = pmix12_bfrop_unpack_byte(regtypes, buffer, ptr[i].bytes, &m, PMIX_BYTE))) { return ret; } } @@ -1119,68 +1119,79 @@ return PMIX_SUCCESS; } -pmix_status_t pmix12_bfrop_unpack_ptr(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_ptr(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { return PMIX_ERR_NOT_SUPPORTED; } -pmix_status_t pmix12_bfrop_unpack_scope(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_scope(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { return PMIX_ERR_NOT_SUPPORTED; } -pmix_status_t pmix12_bfrop_unpack_status(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_status(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { return PMIX_ERR_NOT_SUPPORTED; } -pmix_status_t pmix12_bfrop_unpack_range(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_range(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { return PMIX_ERR_NOT_SUPPORTED; } -pmix_status_t pmix12_bfrop_unpack_cmd(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_cmd(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { return PMIX_ERR_NOT_SUPPORTED; } -pmix_status_t pmix12_bfrop_unpack_info_directives(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_info_directives(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { return PMIX_ERR_NOT_SUPPORTED; } -pmix_status_t pmix12_bfrop_unpack_proc_state(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_proc_state(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { return PMIX_ERR_NOT_SUPPORTED; } -pmix_status_t pmix12_bfrop_unpack_darray(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_darray(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { return PMIX_ERR_NOT_SUPPORTED; } -pmix_status_t pmix12_bfrop_unpack_proc_info(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_proc_info(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { return PMIX_ERR_NOT_SUPPORTED; } -pmix_status_t pmix12_bfrop_unpack_query(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_query(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { return PMIX_ERR_NOT_SUPPORTED; } -pmix_status_t pmix12_bfrop_unpack_rank(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix12_bfrop_unpack_rank(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { return PMIX_ERR_NOT_SUPPORTED; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/bfrop_pmix20.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/bfrop_pmix20.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/bfrop_pmix20.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/bfrop_pmix20.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,9 @@ * Copyright (c) 2011-2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011-2013 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2013-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2019 Mellanox Technologies, Inc. + * All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -22,7 +24,7 @@ * */ -#include +#include "src/include/pmix_config.h" #include "src/util/error.h" #include "src/include/pmix_globals.h" @@ -436,20 +438,22 @@ return v20type; } -pmix_status_t pmix20_bfrop_store_data_type(pmix_buffer_t *buffer, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_store_data_type(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_data_type_t type) { pmix_data_type_t v20type; v20type = pmix20_v21_to_v20_datatype(type); - return pmix20_bfrop_pack_datatype(buffer, &v20type, 1, PMIX_DATA_TYPE); + return pmix20_bfrop_pack_datatype(regtypes, buffer, &v20type, 1, PMIX_DATA_TYPE); } -pmix_status_t pmix20_bfrop_get_data_type(pmix_buffer_t *buffer, pmix_data_type_t *type) +pmix_status_t pmix20_bfrop_get_data_type(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_data_type_t *type) { int32_t n=1; pmix_status_t rc; - rc = pmix20_bfrop_unpack_datatype(buffer, type, &n, PMIX_DATA_TYPE); + rc = pmix20_bfrop_unpack_datatype(regtypes, buffer, type, &n, PMIX_DATA_TYPE); return rc; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/bfrop_pmix20_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/bfrop_pmix20_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/bfrop_pmix20_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/bfrop_pmix20_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -26,8 +26,8 @@ * entire components just to query their version and parameters. */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/include/types.h" #include "src/include/pmix_globals.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/copy.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/copy.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/copy.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/copy.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. @@ -20,7 +20,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include "src/util/argv.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/internal.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/internal.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/internal.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/internal.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,10 +11,12 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. + * Copyright (c) 2019 Mellanox Technologies, Inc. + * All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -25,7 +27,7 @@ #ifndef PMIX20_BFROP_INTERNAL_H_ #define PMIX20_BFROP_INTERNAL_H_ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_SYS_TIME_H @@ -123,176 +125,254 @@ /* * Specialized functions */ -pmix_status_t pmix20_bfrop_pack_buffer(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type); +pmix_status_t pmix20_bfrop_pack_buffer(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, + const void *src, int32_t num_vals, + pmix_data_type_t type); -pmix_status_t pmix20_bfrop_unpack_buffer(pmix_buffer_t *buffer, void *dst, +pmix_status_t pmix20_bfrop_unpack_buffer(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dst, int32_t *num_vals, pmix_data_type_t type); /* * Internal pack functions */ -pmix_status_t pmix20_bfrop_pack_bool(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_bool(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_byte(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_byte(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_string(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_string(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_sizet(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_sizet(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_pid(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_pid(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_int(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_int(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_int16(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_int16(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_int32(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_int32(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_datatype(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_datatype(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_int64(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_int64(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_float(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_float(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_double(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_double(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_time(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_time(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_timeval(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_timeval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_time(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_time(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_status(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_status(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_value(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_value(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_proc(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_proc(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_app(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_app(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_info(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_info(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_buf(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_buf(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_kval(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_kval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_modex(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_modex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_persist(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_persist(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_scope(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_scope(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_range(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_range(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_cmd(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_cmd(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_infodirs(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_infodirs(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_bo(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_bo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_pdata(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_pdata(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_ptr(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_ptr(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_pstate(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_pstate(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_pinfo(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_pinfo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_darray(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_darray(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_query(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_query(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_rank(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_rank(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_pack_alloc_directive(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_alloc_directive(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); /**** DEPRECATED ****/ -pmix_status_t pmix20_bfrop_pack_array(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); /********************/ /* * Internal unpack functions */ - pmix_status_t pmix20_bfrop_unpack_bool(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_bool(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_byte(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_byte(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_string(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_string(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_sizet(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_sizet(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_pid(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_pid(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_int(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_int(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_int16(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_int16(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_int32(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_int32(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_datatype(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_datatype(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_int64(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_int64(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_float(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_float(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_double(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_double(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_timeval(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_timeval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_time(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_time(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_status(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_status(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); + pmix_status_t pmix20_bfrop_unpack_value(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); + pmix_status_t pmix20_bfrop_unpack_proc(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_value(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_app(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_proc(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_app(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_info(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_info(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_buf(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_buf(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_kval(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_kval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_modex(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_modex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_persist(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_persist(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_scope(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_scope(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_range(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_range(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_cmd(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_cmd(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_infodirs(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_infodirs(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_bo(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_bo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_pdata(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_pdata(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_ptr(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_ptr(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_pstate(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_pstate(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_pinfo(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_pinfo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); - pmix_status_t pmix20_bfrop_unpack_darray(pmix_buffer_t *buffer, void *dest, + pmix_status_t pmix20_bfrop_unpack_darray(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_unpack_query(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix20_bfrop_unpack_query(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_unpack_rank(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix20_bfrop_unpack_rank(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_unpack_alloc_directive(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix20_bfrop_unpack_alloc_directive(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); /**** DEPRECATED ****/ -pmix_status_t pmix20_bfrop_unpack_array(pmix_buffer_t *buffer, void *dest, +pmix_status_t pmix20_bfrop_unpack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); /********************/ @@ -414,9 +494,11 @@ * Internal helper functions */ -pmix_status_t pmix20_bfrop_store_data_type(pmix_buffer_t *buffer, pmix_data_type_t type); +pmix_status_t pmix20_bfrop_store_data_type(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_data_type_t type); -pmix_status_t pmix20_bfrop_get_data_type(pmix_buffer_t *buffer, pmix_data_type_t *type); +pmix_status_t pmix20_bfrop_get_data_type(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_data_type_t *type); pmix_data_type_t pmix20_v21_to_v20_datatype(pmix_data_type_t v21type); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -126,7 +126,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -156,6 +155,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -166,7 +166,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -383,6 +382,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -446,6 +452,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -468,6 +481,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -486,6 +501,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -494,9 +510,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -510,6 +526,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -555,6 +572,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -567,10 +588,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/pack.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/pack.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/pack.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/pack.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,10 +10,10 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2011-2013 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. - * Copyright (c) 2016 Mellanox Technologies, Inc. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2016-2019 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. * $COPYRIGHT$ @@ -23,9 +23,7 @@ * $HEADER$ */ -#include - -#include +#include "src/include/pmix_config.h" #ifdef HAVE_ARPA_INET_H #include @@ -39,10 +37,11 @@ #include "internal.h" pmix_status_t pmix20_bfrop_pack(pmix_buffer_t *buffer, - const void *src, int32_t num_vals, - pmix_data_type_t type) + const void *src, int32_t num_vals, + pmix_data_type_t type) { pmix_status_t rc; + pmix_pointer_array_t *regtypes = &mca_bfrops_v20_component.types; /* check for error */ if (NULL == buffer) { @@ -51,21 +50,24 @@ /* Pack the number of values */ if (PMIX_BFROP_BUFFER_FULLY_DESC == buffer->type) { - if (PMIX_SUCCESS != (rc = pmix20_bfrop_store_data_type(buffer, PMIX_INT32))) { + if (PMIX_SUCCESS != (rc = pmix20_bfrop_store_data_type(regtypes, buffer, + PMIX_INT32))) { return rc; } } - if (PMIX_SUCCESS != (rc = pmix20_bfrop_pack_int32(buffer, &num_vals, 1, PMIX_INT32))) { + if (PMIX_SUCCESS != (rc = pmix20_bfrop_pack_int32(regtypes, buffer, + &num_vals, 1, PMIX_INT32))) { return rc; } /* Pack the value(s) */ - return pmix20_bfrop_pack_buffer(buffer, src, num_vals, type); + return pmix20_bfrop_pack_buffer(regtypes, buffer, src, num_vals, type); } -pmix_status_t pmix20_bfrop_pack_buffer(pmix_buffer_t *buffer, - const void *src, int32_t num_vals, - pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_buffer(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, + const void *src, int32_t num_vals, + pmix_data_type_t type) { pmix_data_type_t v20type; pmix_status_t rc; @@ -86,7 +88,7 @@ /* Pack the declared data type */ if (PMIX_BFROP_BUFFER_FULLY_DESC == buffer->type) { - if (PMIX_SUCCESS != (rc = pmix20_bfrop_store_data_type(buffer, v20type))) { + if (PMIX_SUCCESS != (rc = pmix20_bfrop_store_data_type(regtypes, buffer, v20type))) { return rc; } } @@ -97,7 +99,7 @@ return PMIX_ERR_PACK_FAILURE; } - return info->odti_pack_fn(buffer, src, num_vals, v20type); + return info->odti_pack_fn(regtypes, buffer, src, num_vals, v20type); } @@ -106,8 +108,9 @@ /* * BOOL */ -pmix_status_t pmix20_bfrop_pack_bool(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_bool(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { uint8_t *dst; int32_t i; @@ -139,54 +142,57 @@ /* * INT */ -pmix_status_t pmix20_bfrop_pack_int(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_int(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_status_t ret; /* System types need to always be described so we can properly unpack them */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_store_data_type(buffer, BFROP_TYPE_INT))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_store_data_type(regtypes, buffer, BFROP_TYPE_INT))) { return ret; } /* Turn around and pack the real type */ - return pmix20_bfrop_pack_buffer(buffer, src, num_vals, BFROP_TYPE_INT); + return pmix20_bfrop_pack_buffer(regtypes, buffer, src, num_vals, BFROP_TYPE_INT); } /* * SIZE_T */ -pmix_status_t pmix20_bfrop_pack_sizet(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_sizet(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_status_t ret; /* System types need to always be described so we can properly unpack them. */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_store_data_type(buffer, BFROP_TYPE_SIZE_T))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_store_data_type(regtypes, buffer, BFROP_TYPE_SIZE_T))) { return ret; } - return pmix20_bfrop_pack_buffer(buffer, src, num_vals, BFROP_TYPE_SIZE_T); + return pmix20_bfrop_pack_buffer(regtypes, buffer, src, num_vals, BFROP_TYPE_SIZE_T); } /* * PID_T */ -pmix_status_t pmix20_bfrop_pack_pid(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_pid(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_status_t ret; /* System types need to always be described so we can properly unpack them. */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_store_data_type(buffer, BFROP_TYPE_PID_T))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_store_data_type(regtypes, buffer, BFROP_TYPE_PID_T))) { return ret; } /* Turn around and pack the real type */ - return pmix20_bfrop_pack_buffer(buffer, src, num_vals, BFROP_TYPE_PID_T); + return pmix20_bfrop_pack_buffer(regtypes, buffer, src, num_vals, BFROP_TYPE_PID_T); } @@ -195,8 +201,9 @@ /* * BYTE, CHAR, INT8 */ -pmix_status_t pmix20_bfrop_pack_byte(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_byte(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { char *dst; @@ -220,8 +227,9 @@ /* * INT16 */ -pmix_status_t pmix20_bfrop_pack_int16(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_int16(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { int32_t i; uint16_t tmp, *srctmp = (uint16_t*) src; @@ -248,8 +256,9 @@ /* * INT32 */ -pmix_status_t pmix20_bfrop_pack_int32(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_int32(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { int32_t i; uint32_t tmp, *srctmp = (uint32_t*) src; @@ -273,17 +282,22 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_pack_datatype(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_datatype(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { - return pmix20_bfrop_pack_int16(buffer, src, num_vals, type); + pmix_status_t ret; + + PMIX_BFROPS_PACK_TYPE(ret, buffer, src, num_vals, PMIX_INT16, regtypes); + return ret; } /* * INT64 */ -pmix_status_t pmix20_bfrop_pack_int64(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_int64(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { int32_t i; uint64_t tmp, tmp2; @@ -312,8 +326,9 @@ /* * STRING */ -pmix_status_t pmix20_bfrop_pack_string(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_string(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_status_t ret = PMIX_SUCCESS; int32_t i, len; @@ -322,16 +337,16 @@ for (i = 0; i < num_vals; ++i) { if (NULL == ssrc[i]) { /* got zero-length string/NULL pointer - store NULL */ len = 0; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int32(buffer, &len, 1, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int32(regtypes, buffer, &len, 1, PMIX_INT32))) { return ret; } } else { len = (int32_t)strlen(ssrc[i]) + 1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int32(buffer, &len, 1, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int32(regtypes, buffer, &len, 1, PMIX_INT32))) { return ret; } if (PMIX_SUCCESS != (ret = - pmix20_bfrop_pack_byte(buffer, ssrc[i], len, PMIX_BYTE))) { + pmix20_bfrop_pack_byte(regtypes, buffer, ssrc[i], len, PMIX_BYTE))) { return ret; } } @@ -341,8 +356,9 @@ } /* FLOAT */ -pmix_status_t pmix20_bfrop_pack_float(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_float(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_status_t ret = PMIX_SUCCESS; int32_t i; @@ -353,7 +369,7 @@ if (0 > asprintf(&convert, "%f", ssrc[i])) { return PMIX_ERR_NOMEM; } - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(buffer, &convert, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(regtypes, buffer, &convert, 1, PMIX_STRING))) { free(convert); return ret; } @@ -364,8 +380,9 @@ } /* DOUBLE */ -pmix_status_t pmix20_bfrop_pack_double(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_double(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_status_t ret = PMIX_SUCCESS; int32_t i; @@ -376,7 +393,7 @@ if (0 > asprintf(&convert, "%f", ssrc[i])) { return PMIX_ERR_NOMEM; } - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(buffer, &convert, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(regtypes, buffer, &convert, 1, PMIX_STRING))) { free(convert); return ret; } @@ -387,8 +404,9 @@ } /* TIMEVAL */ -pmix_status_t pmix20_bfrop_pack_timeval(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_timeval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { int64_t tmp[2]; pmix_status_t ret = PMIX_SUCCESS; @@ -398,7 +416,7 @@ for (i = 0; i < num_vals; ++i) { tmp[0] = (int64_t)ssrc[i].tv_sec; tmp[1] = (int64_t)ssrc[i].tv_usec; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int64(buffer, tmp, 2, PMIX_INT64))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int64(regtypes, buffer, tmp, 2, PMIX_INT64))) { return ret; } } @@ -407,8 +425,9 @@ } /* TIME */ -pmix_status_t pmix20_bfrop_pack_time(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_time(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_status_t ret = PMIX_SUCCESS; int32_t i; @@ -420,7 +439,7 @@ */ for (i = 0; i < num_vals; ++i) { ui64 = (uint64_t)ssrc[i]; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int64(buffer, &ui64, 1, PMIX_UINT64))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int64(regtypes, buffer, &ui64, 1, PMIX_UINT64))) { return ret; } } @@ -429,8 +448,9 @@ } /* STATUS */ -pmix_status_t pmix20_bfrop_pack_status(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_status(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_status_t ret = PMIX_SUCCESS; int32_t i; @@ -439,7 +459,7 @@ for (i = 0; i < num_vals; ++i) { status = (int32_t)ssrc[i]; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int32(buffer, &status, 1, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int32(regtypes, buffer, &status, 1, PMIX_INT32))) { return ret; } } @@ -449,7 +469,8 @@ /* PACK FUNCTIONS FOR GENERIC PMIX TYPES */ -static pmix_status_t pack_val(pmix_buffer_t *buffer, +static pmix_status_t pack_val(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_value_t *p) { pmix_status_t ret; @@ -458,158 +479,158 @@ case PMIX_UNDEF: break; case PMIX_BOOL: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.flag, 1, PMIX_BOOL))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.flag, 1, PMIX_BOOL))) { return ret; } break; case PMIX_BYTE: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.byte, 1, PMIX_BYTE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.byte, 1, PMIX_BYTE))) { return ret; } break; case PMIX_STRING: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.string, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.string, 1, PMIX_STRING))) { return ret; } break; case PMIX_SIZE: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.size, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.size, 1, PMIX_SIZE))) { return ret; } break; case PMIX_PID: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.pid, 1, PMIX_PID))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.pid, 1, PMIX_PID))) { return ret; } break; case PMIX_INT: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.integer, 1, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.integer, 1, PMIX_INT))) { return ret; } break; case PMIX_INT8: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.int8, 1, PMIX_INT8))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.int8, 1, PMIX_INT8))) { return ret; } break; case PMIX_INT16: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.int16, 1, PMIX_INT16))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.int16, 1, PMIX_INT16))) { return ret; } break; case PMIX_INT32: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.int32, 1, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.int32, 1, PMIX_INT32))) { return ret; } break; case PMIX_INT64: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.int64, 1, PMIX_INT64))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.int64, 1, PMIX_INT64))) { return ret; } break; case PMIX_UINT: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.uint, 1, PMIX_UINT))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.uint, 1, PMIX_UINT))) { return ret; } break; case PMIX_UINT8: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.uint8, 1, PMIX_UINT8))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.uint8, 1, PMIX_UINT8))) { return ret; } break; case PMIX_UINT16: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.uint16, 1, PMIX_UINT16))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.uint16, 1, PMIX_UINT16))) { return ret; } break; case PMIX_UINT32: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.uint32, 1, PMIX_UINT32))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.uint32, 1, PMIX_UINT32))) { return ret; } break; case PMIX_UINT64: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.uint64, 1, PMIX_UINT64))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.uint64, 1, PMIX_UINT64))) { return ret; } break; case PMIX_FLOAT: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.fval, 1, PMIX_FLOAT))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.fval, 1, PMIX_FLOAT))) { return ret; } break; case PMIX_DOUBLE: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.dval, 1, PMIX_DOUBLE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.dval, 1, PMIX_DOUBLE))) { return ret; } break; case PMIX_TIMEVAL: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.tv, 1, PMIX_TIMEVAL))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.tv, 1, PMIX_TIMEVAL))) { return ret; } break; case PMIX_TIME: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.time, 1, PMIX_TIME))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.time, 1, PMIX_TIME))) { return ret; } break; case PMIX_STATUS: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.status, 1, PMIX_STATUS))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.status, 1, PMIX_STATUS))) { return ret; } break; case PMIX_PROC: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, p->data.proc, 1, PMIX_PROC))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, p->data.proc, 1, PMIX_PROC))) { return ret; } break; case PMIX_PROC_RANK: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.rank, 1, PMIX_PROC_RANK))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.rank, 1, PMIX_PROC_RANK))) { return ret; } break; case PMIX_BYTE_OBJECT: case PMIX_COMPRESSED_STRING: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.bo, 1, PMIX_BYTE_OBJECT))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.bo, 1, PMIX_BYTE_OBJECT))) { return ret; } break; case PMIX_PERSIST: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.persist, 1, PMIX_PERSIST))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.persist, 1, PMIX_PERSIST))) { return ret; } break; case PMIX_POINTER: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.ptr, 1, PMIX_POINTER))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.ptr, 1, PMIX_POINTER))) { return ret; } break; case PMIX_SCOPE: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.scope, 1, PMIX_SCOPE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.scope, 1, PMIX_SCOPE))) { return ret; } break; case PMIX_DATA_RANGE: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.range, 1, PMIX_DATA_RANGE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.range, 1, PMIX_DATA_RANGE))) { return ret; } break; case PMIX_PROC_STATE: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, &p->data.state, 1, PMIX_PROC_STATE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, &p->data.state, 1, PMIX_PROC_STATE))) { return ret; } break; case PMIX_PROC_INFO: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, p->data.pinfo, 1, PMIX_PROC_INFO))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, p->data.pinfo, 1, PMIX_PROC_INFO))) { return ret; } break; case PMIX_DATA_ARRAY: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, p->data.darray, 1, PMIX_DATA_ARRAY))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, p->data.darray, 1, PMIX_DATA_ARRAY))) { return ret; } break; case PMIX_QUERY: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, p->data.darray, 1, PMIX_QUERY))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, p->data.darray, 1, PMIX_QUERY))) { return ret; } break; @@ -623,7 +644,8 @@ /* * PMIX_VALUE */ - pmix_status_t pmix20_bfrop_pack_value(pmix_buffer_t *buffer, const void *src, + pmix_status_t pmix20_bfrop_pack_value(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_value_t *ptr; @@ -634,11 +656,11 @@ for (i = 0; i < num_vals; ++i) { /* pack the type */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_store_data_type(buffer, ptr[i].type))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_store_data_type(regtypes, buffer, ptr[i].type))) { return ret; } /* now pack the right field */ - if (PMIX_SUCCESS != (ret = pack_val(buffer, &ptr[i]))) { + if (PMIX_SUCCESS != (ret = pack_val(regtypes, buffer, &ptr[i]))) { return ret; } } @@ -647,8 +669,9 @@ } -pmix_status_t pmix20_bfrop_pack_info(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_info(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_info_t *info; int32_t i; @@ -660,27 +683,28 @@ for (i = 0; i < num_vals; ++i) { /* pack key */ foo = info[i].key; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(buffer, &foo, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(regtypes, buffer, &foo, 1, PMIX_STRING))) { return ret; } /* pack info directives flag */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_infodirs(buffer, &info[i].flags, 1, PMIX_INFO_DIRECTIVES))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_infodirs(regtypes, buffer, &info[i].flags, 1, PMIX_INFO_DIRECTIVES))) { return ret; } /* pack the type */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int(buffer, &info[i].value.type, 1, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int(regtypes, buffer, &info[i].value.type, 1, PMIX_INT))) { return ret; } /* pack value */ - if (PMIX_SUCCESS != (ret = pack_val(buffer, &info[i].value))) { + if (PMIX_SUCCESS != (ret = pack_val(regtypes, buffer, &info[i].value))) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_pack_pdata(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_pdata(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_pdata_t *pdata; int32_t i; @@ -691,28 +715,29 @@ for (i = 0; i < num_vals; ++i) { /* pack the proc */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_proc(buffer, &pdata[i].proc, 1, PMIX_PROC))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_proc(regtypes, buffer, &pdata[i].proc, 1, PMIX_PROC))) { return ret; } /* pack key */ foo = pdata[i].key; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(buffer, &foo, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(regtypes, buffer, &foo, 1, PMIX_STRING))) { return ret; } /* pack the type */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int(buffer, &pdata[i].value.type, 1, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int(regtypes, buffer, &pdata[i].value.type, 1, PMIX_INT))) { return ret; } /* pack value */ - if (PMIX_SUCCESS != (ret = pack_val(buffer, &pdata[i].value))) { + if (PMIX_SUCCESS != (ret = pack_val(regtypes, buffer, &pdata[i].value))) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_pack_buf(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_buf(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_buffer_t *ptr; int32_t i; @@ -722,12 +747,12 @@ for (i = 0; i < num_vals; ++i) { /* pack the number of bytes */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_sizet(buffer, &ptr[i].bytes_used, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_sizet(regtypes, buffer, &ptr[i].bytes_used, 1, PMIX_SIZE))) { return ret; } /* pack the bytes */ if (0 < ptr[i].bytes_used) { - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_byte(buffer, ptr[i].base_ptr, ptr[i].bytes_used, PMIX_BYTE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_byte(regtypes, buffer, ptr[i].base_ptr, ptr[i].bytes_used, PMIX_BYTE))) { return ret; } } @@ -735,8 +760,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_pack_proc(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_proc(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_proc_t *proc; int32_t i; @@ -746,18 +772,19 @@ for (i = 0; i < num_vals; ++i) { char *ptr = proc[i].nspace; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(buffer, &ptr, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(regtypes, buffer, &ptr, 1, PMIX_STRING))) { return ret; } - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_rank(buffer, &proc[i].rank, 1, PMIX_PROC_RANK))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_rank(regtypes, buffer, &proc[i].rank, 1, PMIX_PROC_RANK))) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_pack_app(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_app(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_app_t *app; int32_t i, j, nvals; @@ -766,43 +793,43 @@ app = (pmix_app_t *) src; for (i = 0; i < num_vals; ++i) { - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(buffer, &app[i].cmd, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(regtypes, buffer, &app[i].cmd, 1, PMIX_STRING))) { return ret; } /* argv */ nvals = pmix_argv_count(app[i].argv); - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int(buffer, &nvals, 1, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int(regtypes, buffer, &nvals, 1, PMIX_INT32))) { return ret; } for (j=0; j < nvals; j++) { - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(buffer, &app[i].argv[j], 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(regtypes, buffer, &app[i].argv[j], 1, PMIX_STRING))) { return ret; } } /* env */ nvals = pmix_argv_count(app[i].env); - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int32(buffer, &nvals, 1, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int32(regtypes, buffer, &nvals, 1, PMIX_INT32))) { return ret; } for (j=0; j < nvals; j++) { - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(buffer, &app[i].env[j], 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(regtypes, buffer, &app[i].env[j], 1, PMIX_STRING))) { return ret; } } /* cwd */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(buffer, &app[i].cwd, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(regtypes, buffer, &app[i].cwd, 1, PMIX_STRING))) { return ret; } /* maxprocs */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int(buffer, &app[i].maxprocs, 1, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int(regtypes, buffer, &app[i].maxprocs, 1, PMIX_INT))) { return ret; } /* info array */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_sizet(buffer, &app[i].ninfo, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_sizet(regtypes, buffer, &app[i].ninfo, 1, PMIX_SIZE))) { return ret; } if (0 < app[i].ninfo) { - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_info(buffer, app[i].info, app[i].ninfo, PMIX_INFO))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_info(regtypes, buffer, app[i].info, app[i].ninfo, PMIX_INFO))) { return ret; } } @@ -811,8 +838,9 @@ } -pmix_status_t pmix20_bfrop_pack_kval(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_kval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_kval_t *ptr; int32_t i; @@ -824,11 +852,11 @@ for (i = 0; i < num_vals; ++i) { /* pack the key */ st = ptr[i].key; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(buffer, &st, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(regtypes, buffer, &st, 1, PMIX_STRING))) { return ret; } /* pack the value */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_value(buffer, ptr[i].value, 1, PMIX_VALUE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_value(regtypes, buffer, ptr[i].value, 1, PMIX_VALUE))) { return ret; } } @@ -836,8 +864,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_pack_modex(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_modex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_modex_data_t *ptr; int32_t i; @@ -846,11 +875,11 @@ ptr = (pmix_modex_data_t *) src; for (i = 0; i < num_vals; ++i) { - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_sizet(buffer, &ptr[i].size, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_sizet(regtypes, buffer, &ptr[i].size, 1, PMIX_SIZE))) { return ret; } if( 0 < ptr[i].size){ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_byte(buffer, ptr[i].blob, ptr[i].size, PMIX_UINT8))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_byte(regtypes, buffer, ptr[i].blob, ptr[i].size, PMIX_UINT8))) { return ret; } } @@ -858,38 +887,44 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_pack_persist(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_persist(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { - return pmix20_bfrop_pack_byte(buffer, src, num_vals, PMIX_UINT8); + return pmix20_bfrop_pack_byte(regtypes, buffer, src, num_vals, PMIX_UINT8); } -pmix_status_t pmix20_bfrop_pack_scope(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_scope(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { - return pmix20_bfrop_pack_byte(buffer, src, num_vals, PMIX_UINT8); + return pmix20_bfrop_pack_byte(regtypes, buffer, src, num_vals, PMIX_UINT8); } -pmix_status_t pmix20_bfrop_pack_range(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_range(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { - return pmix20_bfrop_pack_byte(buffer, src, num_vals, PMIX_UINT8); + return pmix20_bfrop_pack_byte(regtypes, buffer, src, num_vals, PMIX_UINT8); } -pmix_status_t pmix20_bfrop_pack_cmd(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_cmd(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { - return pmix20_bfrop_pack_byte(buffer, src, num_vals, PMIX_UINT8); + return pmix20_bfrop_pack_byte(regtypes, buffer, src, num_vals, PMIX_UINT8); } -pmix_status_t pmix20_bfrop_pack_infodirs(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_infodirs(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { - return pmix20_bfrop_pack_int32(buffer, src, num_vals, PMIX_UINT32); + return pmix20_bfrop_pack_int32(regtypes, buffer, src, num_vals, PMIX_UINT32); } -pmix_status_t pmix20_bfrop_pack_bo(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_bo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_status_t ret; int i; @@ -897,11 +932,11 @@ bo = (pmix_byte_object_t*)src; for (i=0; i < num_vals; i++) { - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_sizet(buffer, &bo[i].size, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_sizet(regtypes, buffer, &bo[i].size, 1, PMIX_SIZE))) { return ret; } if (0 < bo[i].size) { - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_byte(buffer, bo[i].bytes, bo[i].size, PMIX_BYTE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_byte(regtypes, buffer, bo[i].bytes, bo[i].size, PMIX_BYTE))) { return ret; } } @@ -909,23 +944,26 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_pack_ptr(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_ptr(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { uint8_t foo=1; /* it obviously makes no sense to pack a pointer and * send it somewhere else, so we just pack a sentinel */ - return pmix20_bfrop_pack_byte(buffer, &foo, 1, PMIX_UINT8); + return pmix20_bfrop_pack_byte(regtypes, buffer, &foo, 1, PMIX_UINT8); } -pmix_status_t pmix20_bfrop_pack_pstate(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_pstate(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { - return pmix20_bfrop_pack_byte(buffer, src, num_vals, PMIX_UINT8); + return pmix20_bfrop_pack_byte(regtypes, buffer, src, num_vals, PMIX_UINT8); } -pmix_status_t pmix20_bfrop_pack_pinfo(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_pinfo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_proc_info_t *pinfo = (pmix_proc_info_t*)src; pmix_status_t ret; @@ -933,29 +971,30 @@ for (i=0; i < num_vals; i++) { /* pack the proc identifier */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_proc(buffer, &pinfo[i].proc, 1, PMIX_PROC))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_proc(regtypes, buffer, &pinfo[i].proc, 1, PMIX_PROC))) { return ret; } /* pack the hostname and exec */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(buffer, &pinfo[i].hostname, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(regtypes, buffer, &pinfo[i].hostname, 1, PMIX_STRING))) { return ret; } - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(buffer, &pinfo[i].executable_name, 1, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(regtypes, buffer, &pinfo[i].executable_name, 1, PMIX_STRING))) { return ret; } /* pack the pid and state */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_pid(buffer, &pinfo[i].pid, 1, PMIX_PID))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_pid(regtypes, buffer, &pinfo[i].pid, 1, PMIX_PID))) { return ret; } - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_pstate(buffer, &pinfo[i].state, 1, PMIX_PROC_STATE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_pstate(regtypes, buffer, &pinfo[i].state, 1, PMIX_PROC_STATE))) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_pack_darray(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_darray(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_data_array_t *p = (pmix_data_array_t*)src; pmix_status_t ret; @@ -963,11 +1002,11 @@ for (i=0; i < num_vals; i++) { /* pack the actual type in the array */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_datatype(buffer, &p[i].type, 1, PMIX_DATA_TYPE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_datatype(regtypes, buffer, &p[i].type, 1, PMIX_DATA_TYPE))) { return ret; } /* pack the number of array elements */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_sizet(buffer, &p[i].size, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_sizet(regtypes, buffer, &p[i].size, 1, PMIX_SIZE))) { return ret; } if (0 == p[i].size || PMIX_UNDEF == p[i].type) { @@ -975,21 +1014,23 @@ continue; } /* pack the actual elements */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(buffer, p[i].array, p[i].size, p[i].type))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_buffer(regtypes, buffer, p[i].array, p[i].size, p[i].type))) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_pack_rank(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_rank(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { - return pmix20_bfrop_pack_int32(buffer, src, num_vals, PMIX_UINT32); + return pmix20_bfrop_pack_int32(regtypes, buffer, src, num_vals, PMIX_UINT32); } -pmix_status_t pmix20_bfrop_pack_query(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_query(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_query_t *pq = (pmix_query_t*)src; pmix_status_t ret; @@ -999,22 +1040,22 @@ for (i=0; i < num_vals; i++) { /* pack the number of keys */ nkeys = pmix_argv_count(pq[i].keys); - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int32(buffer, &nkeys, 1, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_int32(regtypes, buffer, &nkeys, 1, PMIX_INT32))) { return ret; } if (0 < nkeys) { /* pack the keys */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(buffer, pq[i].keys, nkeys, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_string(regtypes, buffer, pq[i].keys, nkeys, PMIX_STRING))) { return ret; } } /* pack the number of qualifiers */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_sizet(buffer, &pq[i].nqual, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_sizet(regtypes, buffer, &pq[i].nqual, 1, PMIX_SIZE))) { return ret; } if (0 < pq[i].nqual) { /* pack any provided qualifiers */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_info(buffer, pq[i].qualifiers, pq[i].nqual, PMIX_INFO))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_pack_info(regtypes, buffer, pq[i].qualifiers, pq[i].nqual, PMIX_INFO))) { return ret; } } @@ -1022,14 +1063,16 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_pack_alloc_directive(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_pack_alloc_directive(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { - return pmix20_bfrop_pack_byte(buffer, src, num_vals, PMIX_UINT8); + return pmix20_bfrop_pack_byte(regtypes, buffer, src, num_vals, PMIX_UINT8); } /**** DEPRECATED ****/ -pmix_status_t pmix20_bfrop_pack_array(pmix_buffer_t *buffer, const void *src, +pmix_status_t pmix20_bfrop_pack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_info_array_t *ptr; @@ -1040,12 +1083,12 @@ for (i = 0; i < num_vals; ++i) { /* pack the size */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_sizet(buffer, &ptr[i].size, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_sizet(regtypes, buffer, &ptr[i].size, 1, PMIX_SIZE))) { return ret; } if (0 < ptr[i].size) { /* pack the values */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_info(buffer, ptr[i].array, ptr[i].size, PMIX_INFO))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_info(regtypes, buffer, ptr[i].array, ptr[i].size, PMIX_INFO))) { return ret; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/print.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/print.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/print.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/print.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. @@ -21,9 +21,9 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include +#include "src/include/pmix_stdint.h" #include #ifdef HAVE_TIME_H diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/unpack.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/unpack.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/unpack.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v20/unpack.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,10 +10,10 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. - * Copyright (c) 2016 Mellanox Technologies, Inc. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2016-2019 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. * $COPYRIGHT$ @@ -23,9 +23,7 @@ * $HEADER$ */ -#include - -#include +#include "src/include/pmix_config.h" #include "src/util/argv.h" #include "src/util/error.h" @@ -34,42 +32,14 @@ #include "bfrop_pmix20.h" #include "internal.h" -static pmix_status_t unpack_gentype(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) -{ - switch(type) { - case PMIX_INT8: - case PMIX_UINT8: - return pmix20_bfrop_unpack_byte(buffer, dest, num_vals, type); - break; - - case PMIX_INT16: - case PMIX_UINT16: - return pmix20_bfrop_unpack_int16(buffer, dest, num_vals, type); - break; - - case PMIX_INT32: - case PMIX_UINT32: - return pmix20_bfrop_unpack_int32(buffer, dest, num_vals, type); - break; - - case PMIX_INT64: - case PMIX_UINT64: - return pmix20_bfrop_unpack_int64(buffer, dest, num_vals, type); - break; - - default: - return PMIX_ERR_UNKNOWN_DATA_TYPE; - } -} - pmix_status_t pmix20_bfrop_unpack(pmix_buffer_t *buffer, - void *dst, int32_t *num_vals, - pmix_data_type_t type) + void *dst, int32_t *num_vals, + pmix_data_type_t type) { pmix_status_t rc, ret; int32_t local_num, n=1; pmix_data_type_t local_type; + pmix_pointer_array_t *regtypes = &mca_bfrops_v20_component.types; /* check for error */ if (NULL == buffer || NULL == dst || NULL == num_vals) { @@ -96,7 +66,7 @@ * int32_t as used here. */ if (PMIX_BFROP_BUFFER_FULLY_DESC == buffer->type) { - if (PMIX_SUCCESS != (rc = pmix20_bfrop_get_data_type(buffer, &local_type))) { + if (PMIX_SUCCESS != (rc = pmix20_bfrop_get_data_type(regtypes, buffer, &local_type))) { *num_vals = 0; /* don't error log here as the user may be unpacking past * the end of the buffer, which isn't necessarily an error */ @@ -109,7 +79,8 @@ } n=1; - if (PMIX_SUCCESS != (rc = pmix20_bfrop_unpack_int32(buffer, &local_num, &n, PMIX_INT32))) { + PMIX_BFROPS_UNPACK_TYPE(rc, buffer, &local_num, &n, PMIX_INT32, regtypes); + if (PMIX_SUCCESS != rc) { *num_vals = 0; /* don't error log here as the user may be unpacking past * the end of the buffer, which isn't necessarily an error */ @@ -137,7 +108,7 @@ } /** Unpack the value(s) */ - if (PMIX_SUCCESS != (rc = pmix20_bfrop_unpack_buffer(buffer, dst, &local_num, type))) { + if (PMIX_SUCCESS != (rc = pmix20_bfrop_unpack_buffer(regtypes, buffer, dst, &local_num, type))) { *num_vals = 0; ret = rc; } @@ -145,12 +116,12 @@ return ret; } -pmix_status_t pmix20_bfrop_unpack_buffer(pmix_buffer_t *buffer, void *dst, int32_t *num_vals, - pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_buffer(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dst, int32_t *num_vals, + pmix_data_type_t type) { pmix_status_t rc; pmix_data_type_t local_type, v20type; - pmix_bfrop_type_info_t *info; pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix20_bfrop_unpack_buffer( %p, %p, %lu, %d )\n", @@ -167,7 +138,7 @@ /** Unpack the declared data type */ if (PMIX_BFROP_BUFFER_FULLY_DESC == buffer->type) { - if (PMIX_SUCCESS != (rc = pmix20_bfrop_get_data_type(buffer, &local_type))) { + if (PMIX_SUCCESS != (rc = pmix20_bfrop_get_data_type(regtypes, buffer, &local_type))) { return rc; } /* if the data types don't match, then return an error */ @@ -176,14 +147,8 @@ return PMIX_ERR_PACK_MISMATCH; } } - - /* Lookup the unpack function for this type and call it */ - - if (NULL == (info = (pmix_bfrop_type_info_t*)pmix_pointer_array_get_item(&mca_bfrops_v20_component.types, v20type))) { - return PMIX_ERR_UNPACK_FAILURE; - } - - return info->odti_unpack_fn(buffer, dst, num_vals, v20type); + PMIX_BFROPS_UNPACK_TYPE(rc, buffer, dst, num_vals, v20type, regtypes); + return rc; } @@ -192,8 +157,9 @@ /* * BOOL */ -pmix_status_t pmix20_bfrop_unpack_bool(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_bool(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { int32_t i; uint8_t *src; @@ -227,24 +193,26 @@ /* * INT */ -pmix_status_t pmix20_bfrop_unpack_int(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_int(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_status_t ret; pmix_data_type_t remote_type; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_get_data_type(buffer, &remote_type))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_get_data_type(regtypes, buffer, &remote_type))) { return ret; } if (remote_type == BFROP_TYPE_INT) { /* fast path it if the sizes are the same */ /* Turn around and unpack the real type */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, dest, num_vals, BFROP_TYPE_INT))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, dest, + num_vals, BFROP_TYPE_INT))) { } } else { /* slow path - types are different sizes */ - PMIX_BFROP_UNPACK_SIZE_MISMATCH(int, remote_type, ret); + PMIX_BFROP_UNPACK_SIZE_MISMATCH(regtypes, int, remote_type, ret); } return ret; @@ -253,24 +221,26 @@ /* * SIZE_T */ -pmix_status_t pmix20_bfrop_unpack_sizet(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_sizet(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_status_t ret; pmix_data_type_t remote_type; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_get_data_type(buffer, &remote_type))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_get_data_type(regtypes, buffer, &remote_type))) { return ret; } if (remote_type == BFROP_TYPE_SIZE_T) { /* fast path it if the sizes are the same */ /* Turn around and unpack the real type */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, dest, num_vals, BFROP_TYPE_SIZE_T))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, + dest, num_vals, BFROP_TYPE_SIZE_T))) { } } else { /* slow path - types are different sizes */ - PMIX_BFROP_UNPACK_SIZE_MISMATCH(size_t, remote_type, ret); + PMIX_BFROP_UNPACK_SIZE_MISMATCH(regtypes, size_t, remote_type, ret); } return ret; @@ -279,24 +249,25 @@ /* * PID_T */ -pmix_status_t pmix20_bfrop_unpack_pid(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_pid(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_status_t ret; pmix_data_type_t remote_type; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_get_data_type(buffer, &remote_type))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_get_data_type(regtypes, buffer, &remote_type))) { return ret; } if (remote_type == BFROP_TYPE_PID_T) { /* fast path it if the sizes are the same */ /* Turn around and unpack the real type */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, dest, num_vals, BFROP_TYPE_PID_T))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, dest, num_vals, BFROP_TYPE_PID_T))) { } } else { /* slow path - types are different sizes */ - PMIX_BFROP_UNPACK_SIZE_MISMATCH(pid_t, remote_type, ret); + PMIX_BFROP_UNPACK_SIZE_MISMATCH(regtypes, pid_t, remote_type, ret); } return ret; @@ -308,8 +279,9 @@ /* * BYTE, CHAR, INT8 */ -pmix_status_t pmix20_bfrop_unpack_byte(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_byte(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix20_bfrop_unpack_byte * %d\n", (int)*num_vals); @@ -327,8 +299,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_int16(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_int16(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { int32_t i; uint16_t tmp, *desttmp = (uint16_t*) dest; @@ -351,8 +324,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_int32(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_int32(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { int32_t i; uint32_t tmp, *desttmp = (uint32_t*) dest; @@ -375,14 +349,19 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_datatype(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_datatype(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { - return pmix20_bfrop_unpack_int16(buffer, dest, num_vals, type); + pmix_status_t ret; + + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, dest, num_vals, PMIX_INT16, regtypes); + return ret; } -pmix_status_t pmix20_bfrop_unpack_int64(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_int64(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { int32_t i; uint64_t tmp, *desttmp = (uint64_t*) dest; @@ -405,15 +384,17 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_string(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_string(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_status_t ret; int32_t i, len, n=1; char **sdest = (char**) dest; for (i = 0; i < (*num_vals); ++i) { - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_int32(buffer, &len, &n, PMIX_INT32))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &len, &n, PMIX_INT32, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (0 == len) { /* zero-length string - unpack the NULL */ @@ -423,7 +404,8 @@ if (NULL == sdest[i]) { return PMIX_ERR_OUT_OF_RESOURCE; } - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_byte(buffer, sdest[i], &len, PMIX_BYTE))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, sdest[i], &len, PMIX_BYTE, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } } @@ -432,8 +414,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_float(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_float(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { int32_t i, n; float *desttmp = (float*) dest, tmp; @@ -451,7 +434,8 @@ for (i = 0; i < (*num_vals); ++i) { n=1; convert = NULL; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(buffer, &convert, &n, PMIX_STRING))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &convert, &n, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (NULL != convert) { @@ -463,8 +447,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_double(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_double(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { int32_t i, n; double *desttmp = (double*) dest, tmp; @@ -482,7 +467,8 @@ for (i = 0; i < (*num_vals); ++i) { n=1; convert = NULL; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(buffer, &convert, &n, PMIX_STRING))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &convert, &n, PMIX_STRING, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } if (NULL != convert) { @@ -494,8 +480,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_timeval(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_timeval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { int32_t i, n; int64_t tmp[2]; @@ -512,7 +499,8 @@ /* unpack the data */ for (i = 0; i < (*num_vals); ++i) { n=2; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_int64(buffer, tmp, &n, PMIX_INT64))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, tmp, &n, PMIX_INT64, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } tt.tv_sec = tmp[0]; @@ -522,8 +510,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_time(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_time(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { int32_t i, n; time_t *desttmp = (time_t *) dest, tmp; @@ -536,15 +525,11 @@ pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix20_bfrop_unpack_time * %d\n", (int)*num_vals); - /* check to see if there's enough data in buffer */ - if (pmix_bfrop_too_small(buffer, (*num_vals)*(sizeof(uint64_t)))) { - return PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER; - } - /* unpack the data */ for (i = 0; i < (*num_vals); ++i) { n=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_int64(buffer, &ui64, &n, PMIX_UINT64))) { + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, &ui64, &n, PMIX_UINT64, regtypes); + if (PMIX_SUCCESS != ret) { return ret; } tmp = (time_t)ui64; @@ -554,10 +539,13 @@ } -pmix_status_t pmix20_bfrop_unpack_status(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_status(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { - pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, + pmix_status_t ret; + + pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix20_bfrop_unpack_status * %d\n", (int)*num_vals); /* check to see if there's enough data in buffer */ if (pmix_bfrop_too_small(buffer, (*num_vals)*(sizeof(pmix_status_t)))) { @@ -565,7 +553,8 @@ } /* unpack the data */ - return pmix20_bfrop_unpack_int32(buffer, dest, num_vals, PMIX_INT32); + PMIX_BFROPS_UNPACK_TYPE(ret, buffer, dest, num_vals, PMIX_INT32, regtypes); + return ret; } @@ -574,8 +563,9 @@ /* * PMIX_VALUE */ - static pmix_status_t unpack_val(pmix_buffer_t *buffer, pmix_value_t *val) - { +static pmix_status_t unpack_val(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, pmix_value_t *val) +{ int32_t m; pmix_status_t ret; @@ -584,102 +574,102 @@ case PMIX_UNDEF: break; case PMIX_BOOL: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.flag, &m, PMIX_BOOL))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.flag, &m, PMIX_BOOL))) { return ret; } break; case PMIX_BYTE: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.byte, &m, PMIX_BYTE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.byte, &m, PMIX_BYTE))) { return ret; } break; case PMIX_STRING: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.string, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.string, &m, PMIX_STRING))) { return ret; } break; case PMIX_SIZE: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.size, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.size, &m, PMIX_SIZE))) { return ret; } break; case PMIX_PID: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.pid, &m, PMIX_PID))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.pid, &m, PMIX_PID))) { return ret; } break; case PMIX_INT: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.integer, &m, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.integer, &m, PMIX_INT))) { return ret; } break; case PMIX_INT8: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.int8, &m, PMIX_INT8))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.int8, &m, PMIX_INT8))) { return ret; } break; case PMIX_INT16: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.int16, &m, PMIX_INT16))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.int16, &m, PMIX_INT16))) { return ret; } break; case PMIX_INT32: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.int32, &m, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.int32, &m, PMIX_INT32))) { return ret; } break; case PMIX_INT64: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.int64, &m, PMIX_INT64))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.int64, &m, PMIX_INT64))) { return ret; } break; case PMIX_UINT: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.uint, &m, PMIX_UINT))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.uint, &m, PMIX_UINT))) { return ret; } break; case PMIX_UINT8: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.uint8, &m, PMIX_UINT8))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.uint8, &m, PMIX_UINT8))) { return ret; } break; case PMIX_UINT16: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.uint16, &m, PMIX_UINT16))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.uint16, &m, PMIX_UINT16))) { return ret; } break; case PMIX_UINT32: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.uint32, &m, PMIX_UINT32))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.uint32, &m, PMIX_UINT32))) { return ret; } break; case PMIX_UINT64: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.uint64, &m, PMIX_UINT64))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.uint64, &m, PMIX_UINT64))) { return ret; } break; case PMIX_FLOAT: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.fval, &m, PMIX_FLOAT))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.fval, &m, PMIX_FLOAT))) { return ret; } break; case PMIX_DOUBLE: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.dval, &m, PMIX_DOUBLE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.dval, &m, PMIX_DOUBLE))) { return ret; } break; case PMIX_TIMEVAL: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.tv, &m, PMIX_TIMEVAL))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.tv, &m, PMIX_TIMEVAL))) { return ret; } break; case PMIX_TIME: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.time, &m, PMIX_TIME))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.time, &m, PMIX_TIME))) { return ret; } break; case PMIX_STATUS: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.status, &m, PMIX_STATUS))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.status, &m, PMIX_STATUS))) { return ret; } break; @@ -689,43 +679,43 @@ if (NULL == val->data.proc) { return PMIX_ERR_NOMEM; } - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, val->data.proc, &m, PMIX_PROC))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, val->data.proc, &m, PMIX_PROC))) { return ret; } break; case PMIX_PROC_RANK: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.rank, &m, PMIX_PROC_RANK))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.rank, &m, PMIX_PROC_RANK))) { return ret; } break; case PMIX_BYTE_OBJECT: case PMIX_COMPRESSED_STRING: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.bo, &m, PMIX_BYTE_OBJECT))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.bo, &m, PMIX_BYTE_OBJECT))) { return ret; } break; case PMIX_PERSIST: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.proc, &m, PMIX_PROC))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.proc, &m, PMIX_PROC))) { return ret; } break; case PMIX_POINTER: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.ptr, &m, PMIX_POINTER))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.ptr, &m, PMIX_POINTER))) { return ret; } break; case PMIX_SCOPE: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.scope, &m, PMIX_SCOPE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.scope, &m, PMIX_SCOPE))) { return ret; } break; case PMIX_DATA_RANGE: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.range, &m, PMIX_DATA_RANGE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.range, &m, PMIX_DATA_RANGE))) { return ret; } break; case PMIX_PROC_STATE: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.state, &m, PMIX_PROC_STATE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.state, &m, PMIX_PROC_STATE))) { return ret; } break; @@ -735,7 +725,7 @@ if (NULL == val->data.pinfo) { return PMIX_ERR_NOMEM; } - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, val->data.pinfo, &m, PMIX_PROC_INFO))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, val->data.pinfo, &m, PMIX_PROC_INFO))) { return ret; } break; @@ -745,12 +735,12 @@ if (NULL == val->data.darray) { return PMIX_ERR_NOMEM; } - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, val->data.darray, &m, PMIX_DATA_ARRAY))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, val->data.darray, &m, PMIX_DATA_ARRAY))) { return ret; } break; case PMIX_QUERY: - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, val->data.darray, &m, PMIX_QUERY))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, val->data.darray, &m, PMIX_QUERY))) { return ret; } break; @@ -762,7 +752,7 @@ val->data.darray->type = PMIX_INFO_ARRAY; val->data.darray->size = m; /* unpack into it */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, &val->data.darray->array, &m, PMIX_INFO_ARRAY))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, &val->data.darray->array, &m, PMIX_INFO_ARRAY))) { return ret; } break; @@ -775,8 +765,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_value(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_value(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_value_t *ptr; int32_t i, n; @@ -787,19 +778,20 @@ for (i = 0; i < n; ++i) { /* unpack the type */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_get_data_type(buffer, &ptr[i].type))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_get_data_type(regtypes, buffer, &ptr[i].type))) { return ret; } /* unpack value */ - if (PMIX_SUCCESS != (ret = unpack_val(buffer, &ptr[i])) ) { + if (PMIX_SUCCESS != (ret = unpack_val(regtypes, buffer, &ptr[i])) ) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_info(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_info(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_info_t *ptr; int32_t i, n, m; @@ -818,7 +810,7 @@ /* unpack key */ m=1; tmp = NULL; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(buffer, &tmp, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(regtypes, buffer, &tmp, &m, PMIX_STRING))) { PMIX_ERROR_LOG(ret); return ret; } @@ -830,7 +822,7 @@ free(tmp); /* unpack the flags */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_infodirs(buffer, &ptr[i].flags, &m, PMIX_INFO_DIRECTIVES))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_infodirs(regtypes, buffer, &ptr[i].flags, &m, PMIX_INFO_DIRECTIVES))) { PMIX_ERROR_LOG(ret); return ret; } @@ -838,14 +830,14 @@ * instead of a pointer in this struct, we directly unpack it to * avoid the malloc */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_int(buffer, &ptr[i].value.type, &m, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_int(regtypes, buffer, &ptr[i].value.type, &m, PMIX_INT))) { PMIX_ERROR_LOG(ret); return ret; } pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix20_bfrop_unpack: info type %d", ptr[i].value.type); m=1; - if (PMIX_SUCCESS != (ret = unpack_val(buffer, &ptr[i].value))) { + if (PMIX_SUCCESS != (ret = unpack_val(regtypes, buffer, &ptr[i].value))) { PMIX_ERROR_LOG(ret); return ret; } @@ -853,8 +845,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_pdata(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_pdata(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_pdata_t *ptr; int32_t i, n, m; @@ -871,13 +864,13 @@ PMIX_PDATA_CONSTRUCT(&ptr[i]); /* unpack the proc */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_proc(buffer, &ptr[i].proc, &m, PMIX_PROC))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_proc(regtypes, buffer, &ptr[i].proc, &m, PMIX_PROC))) { return ret; } /* unpack key */ m=1; tmp = NULL; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(buffer, &tmp, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(regtypes, buffer, &tmp, &m, PMIX_STRING))) { return ret; } if (NULL == tmp) { @@ -889,21 +882,22 @@ * instead of a pointer in this struct, we directly unpack it to * avoid the malloc */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_int(buffer, &ptr[i].value.type, &m, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_int(regtypes, buffer, &ptr[i].value.type, &m, PMIX_INT))) { return ret; } pmix_output_verbose(20, pmix_bfrops_base_framework.framework_output, "pmix20_bfrop_unpack: pdata type %d", ptr[i].value.type); m=1; - if (PMIX_SUCCESS != (ret = unpack_val(buffer, &ptr[i].value))) { + if (PMIX_SUCCESS != (ret = unpack_val(regtypes, buffer, &ptr[i].value))) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_buf(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_buf(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_buffer_t *ptr; int32_t i, n, m; @@ -916,7 +910,7 @@ for (i = 0; i < n; ++i) { /* unpack the number of bytes */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_sizet(buffer, &nbytes, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_sizet(regtypes, buffer, &nbytes, &m, PMIX_SIZE))) { return ret; } m = nbytes; @@ -924,7 +918,7 @@ if (0 < nbytes) { ptr[i].base_ptr = (char*)malloc(nbytes); /* unpack the bytes */ - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_byte(buffer, ptr[i].base_ptr, &m, PMIX_BYTE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_byte(regtypes, buffer, ptr[i].base_ptr, &m, PMIX_BYTE))) { return ret; } } @@ -936,8 +930,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_proc(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_proc(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_proc_t *ptr; int32_t i, n, m; @@ -957,7 +952,7 @@ /* unpack nspace */ m=1; tmp = NULL; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(buffer, &tmp, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(regtypes, buffer, &tmp, &m, PMIX_STRING))) { return ret; } if (NULL == tmp) { @@ -967,15 +962,16 @@ free(tmp); /* unpack the rank */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_rank(buffer, &ptr[i].rank, &m, PMIX_PROC_RANK))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_rank(regtypes, buffer, &ptr[i].rank, &m, PMIX_PROC_RANK))) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_app(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_app(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_app_t *ptr; int32_t i, k, n, m; @@ -994,19 +990,19 @@ PMIX_APP_CONSTRUCT(&ptr[i]); /* unpack cmd */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(buffer, &ptr[i].cmd, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(regtypes, buffer, &ptr[i].cmd, &m, PMIX_STRING))) { return ret; } /* unpack argc */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_int(buffer, &nval, &m, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_int(regtypes, buffer, &nval, &m, PMIX_INT32))) { return ret; } /* unpack argv */ for (k=0; k < nval; k++) { m=1; tmp = NULL; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(buffer, &tmp, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(regtypes, buffer, &tmp, &m, PMIX_STRING))) { return ret; } if (NULL == tmp) { @@ -1017,13 +1013,13 @@ } /* unpack env */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_int32(buffer, &nval, &m, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_int32(regtypes, buffer, &nval, &m, PMIX_INT32))) { return ret; } for (k=0; k < nval; k++) { m=1; tmp = NULL; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(buffer, &tmp, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(regtypes, buffer, &tmp, &m, PMIX_STRING))) { return ret; } if (NULL == tmp) { @@ -1034,23 +1030,23 @@ } /* unpack cwd */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(buffer, &ptr[i].cwd, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(regtypes, buffer, &ptr[i].cwd, &m, PMIX_STRING))) { return ret; } /* unpack maxprocs */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_int(buffer, &ptr[i].maxprocs, &m, PMIX_INT))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_int(regtypes, buffer, &ptr[i].maxprocs, &m, PMIX_INT))) { return ret; } /* unpack info array */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_sizet(buffer, &ptr[i].ninfo, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_sizet(regtypes, buffer, &ptr[i].ninfo, &m, PMIX_SIZE))) { return ret; } if (0 < ptr[i].ninfo) { PMIX_INFO_CREATE(ptr[i].info, ptr[i].ninfo); m = ptr[i].ninfo; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_info(buffer, ptr[i].info, &m, PMIX_INFO))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_info(regtypes, buffer, ptr[i].info, &m, PMIX_INFO))) { return ret; } } @@ -1058,8 +1054,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_kval(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_kval(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_kval_t *ptr; int32_t i, n, m; @@ -1075,7 +1072,7 @@ PMIX_CONSTRUCT(&ptr[i], pmix_kval_t); /* unpack the key */ m = 1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(buffer, &ptr[i].key, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(regtypes, buffer, &ptr[i].key, &m, PMIX_STRING))) { PMIX_ERROR_LOG(ret); return ret; } @@ -1083,7 +1080,7 @@ ptr[i].value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); /* unpack the value */ m = 1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_value(buffer, ptr[i].value, &m, PMIX_VALUE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_value(regtypes, buffer, ptr[i].value, &m, PMIX_VALUE))) { PMIX_ERROR_LOG(ret); return ret; } @@ -1091,8 +1088,9 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_modex(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_modex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_modex_data_t *ptr; int32_t i, n, m; @@ -1108,13 +1106,13 @@ memset(&ptr[i], 0, sizeof(pmix_modex_data_t)); /* unpack the number of bytes */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_sizet(buffer, &ptr[i].size, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_sizet(regtypes, buffer, &ptr[i].size, &m, PMIX_SIZE))) { return ret; } if (0 < ptr[i].size) { ptr[i].blob = (uint8_t*)malloc(ptr[i].size * sizeof(uint8_t)); m=ptr[i].size; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_byte(buffer, ptr[i].blob, &m, PMIX_UINT8))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_byte(regtypes, buffer, ptr[i].blob, &m, PMIX_UINT8))) { return ret; } } @@ -1122,38 +1120,44 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_persist(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_persist(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { - return pmix20_bfrop_unpack_byte(buffer, dest, num_vals, PMIX_UINT8); + return pmix20_bfrop_unpack_byte(regtypes, buffer, dest, num_vals, PMIX_UINT8); } -pmix_status_t pmix20_bfrop_unpack_scope(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_scope(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { - return pmix20_bfrop_unpack_byte(buffer, dest, num_vals, PMIX_UINT8); + return pmix20_bfrop_unpack_byte(regtypes, buffer, dest, num_vals, PMIX_UINT8); } -pmix_status_t pmix20_bfrop_unpack_range(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_range(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { - return pmix20_bfrop_unpack_byte(buffer, dest, num_vals, PMIX_UINT8); + return pmix20_bfrop_unpack_byte(regtypes, buffer, dest, num_vals, PMIX_UINT8); } -pmix_status_t pmix20_bfrop_unpack_cmd(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_cmd(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { - return pmix20_bfrop_unpack_byte(buffer, dest, num_vals, PMIX_UINT8); + return pmix20_bfrop_unpack_byte(regtypes, buffer, dest, num_vals, PMIX_UINT8); } -pmix_status_t pmix20_bfrop_unpack_infodirs(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_infodirs(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { - return pmix20_bfrop_unpack_int32(buffer, dest, num_vals, PMIX_UINT32); + return pmix20_bfrop_unpack_int32(regtypes, buffer, dest, num_vals, PMIX_UINT32); } -pmix_status_t pmix20_bfrop_unpack_bo(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_bo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_byte_object_t *ptr; int32_t i, n, m; @@ -1169,13 +1173,13 @@ memset(&ptr[i], 0, sizeof(pmix_byte_object_t)); /* unpack the number of bytes */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_sizet(buffer, &ptr[i].size, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_sizet(regtypes, buffer, &ptr[i].size, &m, PMIX_SIZE))) { return ret; } if (0 < ptr[i].size) { ptr[i].bytes = (char*)malloc(ptr[i].size * sizeof(char)); m=ptr[i].size; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_byte(buffer, ptr[i].bytes, &m, PMIX_BYTE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_byte(regtypes, buffer, ptr[i].bytes, &m, PMIX_BYTE))) { return ret; } } @@ -1183,26 +1187,29 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_ptr(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_ptr(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { uint8_t foo=1; int32_t cnt=1; /* it obviously makes no sense to pack a pointer and * send it somewhere else, so we just unpack the sentinel */ - return pmix20_bfrop_unpack_byte(buffer, &foo, &cnt, PMIX_UINT8); + return pmix20_bfrop_unpack_byte(regtypes, buffer, &foo, &cnt, PMIX_UINT8); } -pmix_status_t pmix20_bfrop_unpack_pstate(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_pstate(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { - return pmix20_bfrop_unpack_byte(buffer, dest, num_vals, PMIX_UINT8); + return pmix20_bfrop_unpack_byte(regtypes, buffer, dest, num_vals, PMIX_UINT8); } -pmix_status_t pmix20_bfrop_unpack_pinfo(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_pinfo(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_proc_info_t *ptr; int32_t i, n, m; @@ -1218,35 +1225,36 @@ PMIX_PROC_INFO_CONSTRUCT(&ptr[i]); /* unpack the proc */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_proc(buffer, &ptr[i].proc, &m, PMIX_PROC))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_proc(regtypes, buffer, &ptr[i].proc, &m, PMIX_PROC))) { return ret; } /* unpack the hostname */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(buffer, &ptr[i].hostname, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(regtypes, buffer, &ptr[i].hostname, &m, PMIX_STRING))) { return ret; } /* unpack the executable */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(buffer, &ptr[i].executable_name, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(regtypes, buffer, &ptr[i].executable_name, &m, PMIX_STRING))) { return ret; } /* unpack pid */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_pid(buffer, &ptr[i].pid, &m, PMIX_PID))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_pid(regtypes, buffer, &ptr[i].pid, &m, PMIX_PID))) { return ret; } /* unpack state */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_pstate(buffer, &ptr[i].state, &m, PMIX_PROC_STATE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_pstate(regtypes, buffer, &ptr[i].state, &m, PMIX_PROC_STATE))) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_darray(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_darray(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_data_array_t *ptr; int32_t i, n, m; @@ -1263,12 +1271,12 @@ memset(&ptr[i], 0, sizeof(pmix_data_array_t)); /* unpack the type */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_datatype(buffer, &ptr[i].type, &m, PMIX_DATA_TYPE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_datatype(regtypes, buffer, &ptr[i].type, &m, PMIX_DATA_TYPE))) { return ret; } /* unpack the number of array elements */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_sizet(buffer, &ptr[i].size, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_sizet(regtypes, buffer, &ptr[i].size, &m, PMIX_SIZE))) { return ret; } if (0 == ptr[i].size || PMIX_UNDEF == ptr[i].type) { @@ -1359,21 +1367,23 @@ if (NULL == (ptr[i].array = malloc(m * nbytes))) { return PMIX_ERR_NOMEM; } - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(buffer, ptr[i].array, &m, ptr[i].type))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_buffer(regtypes, buffer, ptr[i].array, &m, ptr[i].type))) { return ret; } } return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_rank(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_rank(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { - return pmix20_bfrop_unpack_int32(buffer, dest, num_vals, PMIX_UINT32); + return pmix20_bfrop_unpack_int32(regtypes, buffer, dest, num_vals, PMIX_UINT32); } -pmix_status_t pmix20_bfrop_unpack_query(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_query(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_query_t *ptr; int32_t i, n, m; @@ -1390,7 +1400,7 @@ PMIX_QUERY_CONSTRUCT(&ptr[i]); /* unpack the number of keys */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_int32(buffer, &nkeys, &m, PMIX_INT32))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_int32(regtypes, buffer, &nkeys, &m, PMIX_INT32))) { return ret; } if (0 < nkeys) { @@ -1400,20 +1410,20 @@ } /* unpack keys */ m=nkeys; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(buffer, ptr[i].keys, &m, PMIX_STRING))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_string(regtypes, buffer, ptr[i].keys, &m, PMIX_STRING))) { return ret; } } /* unpack the number of qualifiers */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_sizet(buffer, &ptr[i].nqual, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_sizet(regtypes, buffer, &ptr[i].nqual, &m, PMIX_SIZE))) { return ret; } if (0 < ptr[i].nqual) { /* unpack the qualifiers */ PMIX_INFO_CREATE(ptr[i].qualifiers, ptr[i].nqual); m = ptr[i].nqual; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_info(buffer, ptr[i].qualifiers, &m, PMIX_INFO))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_info(regtypes, buffer, ptr[i].qualifiers, &m, PMIX_INFO))) { return ret; } } @@ -1421,16 +1431,18 @@ return PMIX_SUCCESS; } -pmix_status_t pmix20_bfrop_unpack_alloc_directive(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_alloc_directive(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { - return pmix20_bfrop_unpack_byte(buffer, dest, num_vals, PMIX_UINT8); + return pmix20_bfrop_unpack_byte(regtypes, buffer, dest, num_vals, PMIX_UINT8); } /**** DEPRECATED ****/ -pmix_status_t pmix20_bfrop_unpack_array(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +pmix_status_t pmix20_bfrop_unpack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_info_array_t *ptr; int32_t i, n, m; @@ -1448,13 +1460,13 @@ memset(&ptr[i], 0, sizeof(pmix_info_array_t)); /* unpack the size of this array */ m=1; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_sizet(buffer, &ptr[i].size, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_sizet(regtypes, buffer, &ptr[i].size, &m, PMIX_SIZE))) { return ret; } if (0 < ptr[i].size) { ptr[i].array = (pmix_info_t*)malloc(ptr[i].size * sizeof(pmix_info_t)); m=ptr[i].size; - if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_value(buffer, ptr[i].array, &m, PMIX_INFO))) { + if (PMIX_SUCCESS != (ret = pmix20_bfrop_unpack_value(regtypes, buffer, ptr[i].array, &m, PMIX_INFO))) { return ret; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v21/bfrop_pmix21.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v21/bfrop_pmix21.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v21/bfrop_pmix21.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v21/bfrop_pmix21.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,9 @@ * Copyright (c) 2011-2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011-2013 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2019 Mellanox Technologies, Inc. + * All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -22,7 +24,7 @@ * */ -#include +#include "src/include/pmix_config.h" #include "src/mca/bfrops/base/base.h" #include "bfrop_pmix21.h" @@ -75,14 +77,18 @@ size_t size; } pmix_modex_data_t; -static pmix_status_t pmix21_bfrop_pack_array(pmix_buffer_t *buffer, const void *src, +static pmix_status_t pmix21_bfrop_pack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -static pmix_status_t pmix21_bfrop_pack_modex(pmix_buffer_t *buffer, const void *src, +static pmix_status_t pmix21_bfrop_pack_modex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -static pmix_status_t pmix21_bfrop_unpack_array(pmix_buffer_t *buffer, void *dest, +static pmix_status_t pmix21_bfrop_unpack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type); +static pmix_status_t pmix21_bfrop_unpack_modex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -static pmix_status_t pmix21_bfrop_unpack_modex(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type); static pmix_status_t pmix21_bfrop_copy_array(pmix_info_array_t **dest, pmix_info_array_t *src, pmix_data_type_t type); @@ -479,7 +485,8 @@ } /**** DEPRECATED ****/ -static pmix_status_t pmix21_bfrop_pack_array(pmix_buffer_t *buffer, const void *src, +static pmix_status_t pmix21_bfrop_pack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_info_array_t *ptr; @@ -490,12 +497,12 @@ for (i = 0; i < num_vals; ++i) { /* pack the size */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_sizet(buffer, &ptr[i].size, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_sizet(regtypes, buffer, &ptr[i].size, 1, PMIX_SIZE))) { return ret; } if (0 < ptr[i].size) { /* pack the values */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_info(buffer, ptr[i].array, ptr[i].size, PMIX_INFO))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_info(regtypes, buffer, ptr[i].array, ptr[i].size, PMIX_INFO))) { return ret; } } @@ -504,8 +511,9 @@ return PMIX_SUCCESS; } -static pmix_status_t pmix21_bfrop_pack_modex(pmix_buffer_t *buffer, const void *src, - int32_t num_vals, pmix_data_type_t type) +static pmix_status_t pmix21_bfrop_pack_modex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, + int32_t num_vals, pmix_data_type_t type) { pmix_modex_data_t *ptr; int32_t i; @@ -514,11 +522,11 @@ ptr = (pmix_modex_data_t *) src; for (i = 0; i < num_vals; ++i) { - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_sizet(buffer, &ptr[i].size, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_sizet(regtypes, buffer, &ptr[i].size, 1, PMIX_SIZE))) { return ret; } if( 0 < ptr[i].size){ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_byte(buffer, ptr[i].blob, ptr[i].size, PMIX_UINT8))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_byte(regtypes, buffer, ptr[i].blob, ptr[i].size, PMIX_UINT8))) { return ret; } } @@ -529,7 +537,8 @@ /********************/ /**** DEPRECATED ****/ -static pmix_status_t pmix21_bfrop_unpack_array(pmix_buffer_t *buffer, void *dest, +static pmix_status_t pmix21_bfrop_unpack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_info_array_t *ptr; @@ -548,13 +557,15 @@ memset(&ptr[i], 0, sizeof(pmix_info_array_t)); /* unpack the size of this array */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_sizet(buffer, &ptr[i].size, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_sizet(regtypes, buffer, + &ptr[i].size, &m, PMIX_SIZE))) { return ret; } if (0 < ptr[i].size) { ptr[i].array = (pmix_info_t*)malloc(ptr[i].size * sizeof(pmix_info_t)); m=ptr[i].size; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_value(buffer, ptr[i].array, &m, PMIX_INFO))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_value(regtypes, buffer, + ptr[i].array, &m, PMIX_INFO))) { return ret; } } @@ -562,8 +573,9 @@ return PMIX_SUCCESS; } -static pmix_status_t pmix21_bfrop_unpack_modex(pmix_buffer_t *buffer, void *dest, - int32_t *num_vals, pmix_data_type_t type) +static pmix_status_t pmix21_bfrop_unpack_modex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, + int32_t *num_vals, pmix_data_type_t type) { pmix_modex_data_t *ptr; int32_t i, n, m; @@ -579,13 +591,13 @@ memset(&ptr[i], 0, sizeof(pmix_modex_data_t)); /* unpack the number of bytes */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_sizet(buffer, &ptr[i].size, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_sizet(regtypes, buffer, &ptr[i].size, &m, PMIX_SIZE))) { return ret; } if (0 < ptr[i].size) { ptr[i].blob = (uint8_t*)malloc(ptr[i].size * sizeof(uint8_t)); m=ptr[i].size; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_byte(buffer, ptr[i].blob, &m, PMIX_UINT8))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_byte(regtypes, buffer, ptr[i].blob, &m, PMIX_UINT8))) { return ret; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v21/bfrop_pmix21_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v21/bfrop_pmix21_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v21/bfrop_pmix21_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v21/bfrop_pmix21_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -26,8 +26,8 @@ * entire components just to query their version and parameters. */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/include/types.h" #include "src/include/pmix_globals.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v21/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v21/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v21/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v21/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -126,7 +126,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -156,6 +155,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -166,7 +166,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -380,6 +379,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -443,6 +449,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -465,6 +478,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -483,6 +498,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -491,9 +507,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -507,6 +523,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -552,6 +569,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -564,10 +585,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v3/bfrop_pmix3.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v3/bfrop_pmix3.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v3/bfrop_pmix3.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v3/bfrop_pmix3.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,9 @@ * Copyright (c) 2011-2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011-2013 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2019 Mellanox Technologies, Inc. + * All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -22,7 +24,7 @@ * */ -#include +#include "src/include/pmix_config.h" #include "src/mca/bfrops/base/base.h" #include "bfrop_pmix3.h" @@ -75,13 +77,17 @@ size_t size; } pmix_modex_data_t; -static pmix_status_t pmix3_bfrop_pack_array(pmix_buffer_t *buffer, const void *src, +static pmix_status_t pmix3_bfrop_pack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -static pmix_status_t pmix3_bfrop_pack_modex(pmix_buffer_t *buffer, const void *src, +static pmix_status_t pmix3_bfrop_pack_modex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type); -static pmix_status_t pmix3_bfrop_unpack_array(pmix_buffer_t *buffer, void *dest, +static pmix_status_t pmix3_bfrop_unpack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); -static pmix_status_t pmix3_bfrop_unpack_modex(pmix_buffer_t *buffer, void *dest, +static pmix_status_t pmix3_bfrop_unpack_modex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type); static pmix_status_t pmix3_bfrop_copy_array(pmix_info_array_t **dest, pmix_info_array_t *src, @@ -495,7 +501,8 @@ } /**** DEPRECATED ****/ -static pmix_status_t pmix3_bfrop_pack_array(pmix_buffer_t *buffer, const void *src, +static pmix_status_t pmix3_bfrop_pack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_info_array_t *ptr; @@ -506,12 +513,12 @@ for (i = 0; i < num_vals; ++i) { /* pack the size */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_sizet(buffer, &ptr[i].size, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_sizet(regtypes, buffer, &ptr[i].size, 1, PMIX_SIZE))) { return ret; } if (0 < ptr[i].size) { /* pack the values */ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_info(buffer, ptr[i].array, ptr[i].size, PMIX_INFO))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_info(regtypes, buffer, ptr[i].array, ptr[i].size, PMIX_INFO))) { return ret; } } @@ -520,7 +527,8 @@ return PMIX_SUCCESS; } -static pmix_status_t pmix3_bfrop_pack_modex(pmix_buffer_t *buffer, const void *src, +static pmix_status_t pmix3_bfrop_pack_modex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, const void *src, int32_t num_vals, pmix_data_type_t type) { pmix_modex_data_t *ptr; @@ -530,11 +538,11 @@ ptr = (pmix_modex_data_t *) src; for (i = 0; i < num_vals; ++i) { - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_sizet(buffer, &ptr[i].size, 1, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_sizet(regtypes, buffer, &ptr[i].size, 1, PMIX_SIZE))) { return ret; } if( 0 < ptr[i].size){ - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_byte(buffer, ptr[i].blob, ptr[i].size, PMIX_UINT8))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_pack_byte(regtypes, buffer, ptr[i].blob, ptr[i].size, PMIX_UINT8))) { return ret; } } @@ -546,7 +554,8 @@ /********************/ /**** DEPRECATED ****/ -static pmix_status_t pmix3_bfrop_unpack_array(pmix_buffer_t *buffer, void *dest, +static pmix_status_t pmix3_bfrop_unpack_array(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_info_array_t *ptr; @@ -565,13 +574,13 @@ memset(&ptr[i], 0, sizeof(pmix_info_array_t)); /* unpack the size of this array */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_sizet(buffer, &ptr[i].size, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_sizet(regtypes, buffer, &ptr[i].size, &m, PMIX_SIZE))) { return ret; } if (0 < ptr[i].size) { ptr[i].array = (pmix_info_t*)malloc(ptr[i].size * sizeof(pmix_info_t)); m=ptr[i].size; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_value(buffer, ptr[i].array, &m, PMIX_INFO))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_value(regtypes, buffer, ptr[i].array, &m, PMIX_INFO))) { return ret; } } @@ -579,7 +588,8 @@ return PMIX_SUCCESS; } -static pmix_status_t pmix3_bfrop_unpack_modex(pmix_buffer_t *buffer, void *dest, +static pmix_status_t pmix3_bfrop_unpack_modex(pmix_pointer_array_t *regtypes, + pmix_buffer_t *buffer, void *dest, int32_t *num_vals, pmix_data_type_t type) { pmix_modex_data_t *ptr; @@ -596,13 +606,13 @@ memset(&ptr[i], 0, sizeof(pmix_modex_data_t)); /* unpack the number of bytes */ m=1; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_sizet(buffer, &ptr[i].size, &m, PMIX_SIZE))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_sizet(regtypes, buffer, &ptr[i].size, &m, PMIX_SIZE))) { return ret; } if (0 < ptr[i].size) { ptr[i].blob = (uint8_t*)malloc(ptr[i].size * sizeof(uint8_t)); m=ptr[i].size; - if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_byte(buffer, ptr[i].blob, &m, PMIX_UINT8))) { + if (PMIX_SUCCESS != (ret = pmix_bfrops_base_unpack_byte(regtypes, buffer, ptr[i].blob, &m, PMIX_UINT8))) { return ret; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v3/bfrop_pmix3_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v3/bfrop_pmix3_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v3/bfrop_pmix3_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v3/bfrop_pmix3_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -26,8 +26,8 @@ * entire components just to query their version and parameters. */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/include/types.h" #include "src/include/pmix_globals.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v3/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v3/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v3/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/bfrops/v3/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -126,7 +126,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -156,6 +155,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -166,7 +166,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -380,6 +379,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -443,6 +449,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -465,6 +478,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -483,6 +498,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -491,9 +507,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -507,6 +523,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -552,6 +569,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -564,10 +585,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_base.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_base.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_base.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_base.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* - * Copyright (c) 2015-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016-2018 IBM Corporation. All rights reserved. - * Copyright (c) 2016-2019 Mellanox Technologies, Inc. + * Copyright (c) 2016-2020 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2018-2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -13,7 +13,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #include @@ -35,15 +35,16 @@ #endif #include -#include +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/class/pmix_list.h" #include "src/client/pmix_client_ops.h" #include "src/server/pmix_server_ops.h" #include "src/util/argv.h" -#include "src/util/compress.h" +#include "src/mca/pcompress/pcompress.h" #include "src/util/error.h" +#include "src/util/name_fns.h" #include "src/util/output.h" #include "src/util/pmix_environ.h" #include "src/util/hash.h" @@ -108,9 +109,10 @@ static inline int _my_client(const char *nspace, pmix_rank_t rank); static pmix_status_t _dstor_store_modex_cb(pmix_common_dstore_ctx_t *ds_ctx, - struct pmix_namespace_t *nspace, - pmix_list_t *cbs, - pmix_byte_object_t *bo); + pmix_proc_t *proc, + pmix_gds_modex_key_fmt_t key_fmt, + char **kmap, + pmix_buffer_t *pbkt); static pmix_status_t _dstore_store_nolock(pmix_common_dstore_ctx_t *ds_ctx, ns_map_data_t *ns_map, @@ -207,6 +209,7 @@ while (NULL != (d_ptr = readdir(dir))) { snprintf(name, PMIX_PATH_MAX, "%s/%s", path, d_ptr->d_name); + /* coverity[toctou] */ if ( 0 > lstat(name, &st) ){ /* No fatal error here - just log this event * we will hit the error later at rmdir. Keep trying ... @@ -1597,10 +1600,12 @@ goto err_exit; } - rc = pmix_pshmem.init(); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - goto err_exit; + if (NULL != pmix_pshmem.init) { + rc = pmix_pshmem.init(); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + goto err_exit; + } } _set_constants_from_env(ds_ctx); @@ -1775,10 +1780,12 @@ _esh_ns_map_cleanup(ds_ctx); _esh_ns_track_cleanup(ds_ctx); - pmix_pshmem.finalize(); + if (NULL != pmix_pshmem.finalize) { + pmix_pshmem.finalize(); + } if (NULL != ds_ctx->base_path){ - if (PMIX_PEER_IS_SERVER(pmix_globals.mypeer)) { + if(PMIX_PEER_IS_SERVER(pmix_globals.mypeer)) { /* coverity[toctou] */ if (lstat(ds_ctx->base_path, &st) >= 0){ if (PMIX_SUCCESS != (rc = _esh_dir_del(ds_ctx->base_path))) { @@ -1962,7 +1969,7 @@ bool all_ranks_found = true; bool key_found = false; pmix_info_t *info = NULL; - size_t ninfo; + size_t ninfo = 0; size_t keyhash = 0; bool lock_is_set = false; @@ -2253,7 +2260,7 @@ if( rc != PMIX_SUCCESS ){ if ((NULL == key) && (kval_cnt > 0)) { - if( NULL != info ) { + if( NULL != info && 0 < ninfo ) { PMIX_INFO_FREE(info, ninfo); } if (NULL != kval) { @@ -2385,7 +2392,8 @@ } PMIX_EXPORT pmix_status_t pmix_common_dstor_add_nspace(pmix_common_dstore_ctx_t *ds_ctx, - const char *nspace, pmix_info_t info[], size_t ninfo) + const char *nspace, uint32_t local_size, + pmix_info_t info[], size_t ninfo) { pmix_status_t rc = PMIX_SUCCESS; size_t tbl_idx=0; @@ -2393,21 +2401,17 @@ char setjobuid = ds_ctx->setjobuid; size_t n; ns_map_data_t *ns_map = NULL; - uint32_t local_size = 0; pmix_output_verbose(2, pmix_gds_base_framework.framework_output, - "gds: dstore add nspace"); + "gds: dstore add nspace %s, local_size %d", + nspace, local_size); if (NULL != info) { for (n=0; n < ninfo; n++) { if (0 == strcmp(PMIX_USERID, info[n].key)) { jobuid = info[n].value.data.uint32; setjobuid = 1; - continue; - } - if (0 == strcmp(PMIX_LOCAL_SIZE, info[n].key)) { - local_size = info[n].value.data.uint32; - continue; + break; } } } @@ -2461,7 +2465,9 @@ int in_use = 0; ns_map_data_t *ns_map_data = NULL; ns_map_t *ns_map; +#if PMIX_ENABLE_DEBUG session_t *session_tbl = NULL; +#endif ns_track_elem_t *trk = NULL; int dstor_track_idx; size_t session_tbl_idx; @@ -2511,10 +2517,12 @@ /* A lot of nspaces may be using same session info * session record can only be deleted once all references are gone */ if (!in_use) { +#if PMIX_ENABLE_DEBUG session_tbl = PMIX_VALUE_ARRAY_GET_BASE(ds_ctx->session_array, session_t); PMIX_OUTPUT_VERBOSE((10, pmix_gds_base_framework.framework_output, "%s:%d:%s delete session for jobuid: %d", __FILE__, __LINE__, __func__, session_tbl[session_tbl_idx].jobuid)); +#endif _esh_session_release(ds_ctx, session_tbl_idx); } exit: @@ -2544,9 +2552,9 @@ * always contains data solely from remote procs, and we * shall store it accordingly */ PMIX_EXPORT pmix_status_t pmix_common_dstor_store_modex(pmix_common_dstore_ctx_t *ds_ctx, - struct pmix_namespace_t *nspace, - pmix_list_t *cbs, - pmix_buffer_t *buf) + struct pmix_namespace_t *nspace, + pmix_buffer_t *buf, + void *cbdata) { pmix_status_t rc = PMIX_SUCCESS; pmix_status_t rc1 = PMIX_SUCCESS; @@ -2566,7 +2574,9 @@ return rc; } - rc = pmix_gds_base_store_modex(nspace, cbs, buf, (pmix_gds_base_store_modex_cb_fn_t)_dstor_store_modex_cb, ds_ctx); + rc = pmix_gds_base_store_modex(nspace, buf, ds_ctx, + (pmix_gds_base_store_modex_cb_fn_t)_dstor_store_modex_cb, + cbdata); if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); } @@ -2584,15 +2594,12 @@ } static pmix_status_t _dstor_store_modex_cb(pmix_common_dstore_ctx_t *ds_ctx, - struct pmix_namespace_t *nspace, - pmix_list_t *cbs, - pmix_byte_object_t *bo) + pmix_proc_t *proc, + pmix_gds_modex_key_fmt_t key_fmt, + char **kmap, + pmix_buffer_t *pbkt) { - pmix_namespace_t *ns = (pmix_namespace_t*)nspace; pmix_status_t rc = PMIX_SUCCESS; - int32_t cnt; - pmix_buffer_t pbkt; - pmix_proc_t proc; pmix_kval_t *kv; ns_map_data_t *ns_map; pmix_buffer_t tmp; @@ -2600,7 +2607,7 @@ pmix_output_verbose(2, pmix_gds_base_framework.framework_output, "[%s:%d] gds:dstore:store_modex for nspace %s", pmix_globals.myid.nspace, pmix_globals.myid.rank, - ns->nspace); + proc->nspace); /* NOTE: THE BYTE OBJECT DELIVERED HERE WAS CONSTRUCTED * BY A SERVER, AND IS THEREFORE PACKED USING THE SERVER'S @@ -2612,28 +2619,8 @@ * the rank followed by pmix_kval_t's. The list of callbacks * contains all local participants. */ - /* setup the byte object for unpacking */ - PMIX_CONSTRUCT(&pbkt, pmix_buffer_t); - /* the next step unfortunately NULLs the byte object's - * entries, so we need to ensure we restore them! */ - PMIX_LOAD_BUFFER(pmix_globals.mypeer, &pbkt, bo->bytes, bo->size); - /* unload the proc that provided this data */ - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, &pbkt, &proc, &cnt, PMIX_PROC); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - bo->bytes = pbkt.base_ptr; - bo->size = pbkt.bytes_used; // restore the incoming data - pbkt.base_ptr = NULL; - PMIX_DESTRUCT(&pbkt); - return rc; - } /* don't store blobs to the sm dstore from local clients */ - if (_my_client(proc.nspace, proc.rank)) { - bo->bytes = pbkt.base_ptr; - bo->size = pbkt.bytes_used; // restore the incoming data - pbkt.base_ptr = NULL; - PMIX_DESTRUCT(&pbkt); + if (_my_client(proc->nspace, proc->rank)) { return PMIX_SUCCESS; } @@ -2641,18 +2628,14 @@ PMIX_CONSTRUCT(&tmp, pmix_buffer_t); /* unpack the remaining values until we hit the end of the buffer */ - cnt = 1; kv = PMIX_NEW(pmix_kval_t); - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, &pbkt, kv, &cnt, PMIX_KVAL); + rc = pmix_gds_base_modex_unpack_kval(key_fmt, pbkt, kmap, kv); + while (PMIX_SUCCESS == rc) { /* store this in the hash table */ - PMIX_GDS_STORE_KV(rc, pmix_globals.mypeer, &proc, PMIX_REMOTE, kv); + PMIX_GDS_STORE_KV(rc, pmix_globals.mypeer, proc, PMIX_REMOTE, kv); if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); - bo->bytes = pbkt.base_ptr; - bo->size = pbkt.bytes_used; // restore the incoming data - pbkt.base_ptr = NULL; - PMIX_DESTRUCT(&pbkt); return rc; } @@ -2665,8 +2648,10 @@ /* proceed to the next element */ kv = PMIX_NEW(pmix_kval_t); - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, &pbkt, kv, &cnt, PMIX_KVAL); + rc = pmix_gds_base_modex_unpack_kval(key_fmt, pbkt, kmap, kv); + if (PMIX_SUCCESS != rc) { + break; + } } /* Release the kv that didn't received the value @@ -2686,18 +2671,14 @@ PMIX_UNLOAD_BUFFER(&tmp, kv->value->data.bo.bytes, kv->value->data.bo.size); /* Get the namespace map element for the process "proc" */ - if (NULL == (ns_map = ds_ctx->session_map_search(ds_ctx, proc.nspace))) { + if (NULL == (ns_map = ds_ctx->session_map_search(ds_ctx, proc->nspace))) { rc = PMIX_ERROR; PMIX_ERROR_LOG(rc); - bo->bytes = pbkt.base_ptr; - bo->size = pbkt.bytes_used; // restore the incoming data - pbkt.base_ptr = NULL; - PMIX_DESTRUCT(&pbkt); return rc; } /* Store all keys at once */ - rc = _dstore_store_nolock(ds_ctx, ns_map, proc.rank, kv); + rc = _dstore_store_nolock(ds_ctx, ns_map, proc->rank, kv); if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); } @@ -2706,12 +2687,6 @@ PMIX_RELEASE(kv); PMIX_DESTRUCT(&tmp); - /* Reset the input buffer */ - bo->bytes = pbkt.base_ptr; - bo->size = pbkt.bytes_used; - pbkt.base_ptr = NULL; - PMIX_DESTRUCT(&pbkt); - return rc; } @@ -2723,7 +2698,10 @@ pmix_buffer_t buf; pmix_kval_t kv2, *kvp; pmix_status_t rc = PMIX_SUCCESS; - pmix_info_t *ihost; + uint32_t appnum; + char *hostname, **aliases; + uint32_t nodeid; + bool match; PMIX_CONSTRUCT(&cb, pmix_cb_t); PMIX_CONSTRUCT(&buf, pmix_buffer_t); @@ -2735,6 +2713,10 @@ cb.scope = PMIX_INTERNAL; cb.copy = false; + PMIX_OUTPUT_VERBOSE((8, pmix_gds_base_framework.framework_output, + "STORE JOB INFO FOR PROC %s", + PMIX_NAME_PRINT(proc))); + PMIX_GDS_FETCH_KV(rc, pmix_globals.mypeer, &cb); if (PMIX_SUCCESS != rc) { if (rc == PMIX_ERR_PROC_ENTRY_NOT_FOUND) { @@ -2745,53 +2727,109 @@ } PMIX_LIST_FOREACH(kv, &cb.kvs, pmix_kval_t) { - if (PMIX_CHECK_KEY(kv, PMIX_NODE_INFO_ARRAY)) { - /* earlier PMIx versions don't know how to handle - * the info arrays - what they need is a key-value - * pair where the key is the name of the node and - * the value is the local peers. So if the peer - * is earlier than 3.1.5, construct the necessary - * translation. Otherwise, ignore it as the hash - * component will handle it for them */ - if (PMIX_PEER_IS_EARLIER(ds_ctx->clients_peer, 3, 1, 5)) { - pmix_info_t *info; - size_t size, i; - /* if it is our local node, then we are going to pass - * all info */ - info = kv->value->data.darray->array; - size = kv->value->data.darray->size; - ihost = NULL; - for (i = 0; i < size; i++) { - if (PMIX_CHECK_KEY(&info[i], PMIX_HOSTNAME)) { - ihost = &info[i]; + if (PMIX_CHECK_KEY(kv, PMIX_NODE_INFO_ARRAY)) { + /* the dstore currently does not understand info arrays, + * which causes problems when users query for node/app + * info. We cannot fully resolve the problem, but we + * can mitigate it by at least storing the info for + * the local node and this proc's app number */ + pmix_info_t *info; + size_t size, i; + /* if it is our local node, then we are going to pass + * all info */ + info = kv->value->data.darray->array; + size = kv->value->data.darray->size; + hostname = NULL; + nodeid = UINT32_MAX; + aliases = NULL; + for (i = 0; i < size; i++) { + if (PMIX_CHECK_KEY(&info[i], PMIX_HOSTNAME)) { + hostname = info[i].value.data.string; + } else if (PMIX_CHECK_KEY(&info[i], PMIX_NODEID)) { + nodeid = info[i].value.data.uint32; + } else if (PMIX_CHECK_KEY(&info[i], PMIX_HOSTNAME_ALIASES)) { + aliases = pmix_argv_split(info[i].value.data.string, ','); + } + } + if (NULL == hostname && UINT32_MAX == nodeid && NULL == aliases) { + continue; + } + match = false; + if (NULL != hostname && 0 == strcmp(hostname, pmix_globals.hostname)) { + match = true; + } + if (!match && UINT32_MAX != nodeid && nodeid == pmix_globals.nodeid) { + match = true; + } + if (!match && NULL != aliases) { + for (i=0; NULL != aliases[i]; i++) { + if (0 == strcmp(aliases[i], pmix_globals.hostname)) { + match = true; break; } } - if (NULL != ihost) { - PMIX_CONSTRUCT(&kv2, pmix_kval_t); - kv2.key = ihost->value.data.string; - kv2.value = kv->value; + pmix_argv_free(aliases); + } + if (match) { + /* if this host is us, then store each value as its own key */ + for (i = 0; i < size; i++) { + if (PMIX_CHECK_KEY(&info[i], PMIX_HOSTNAME) || + PMIX_CHECK_KEY(&info[i], PMIX_NODEID) || + PMIX_CHECK_KEY(&info[i], PMIX_HOSTNAME_ALIASES)) { + continue; + } + PMIX_OUTPUT_VERBOSE((8, pmix_gds_base_framework.framework_output, + "STORE %s FOR NODE %s", + info[i].key, hostname)); + kv2.key = info[i].key; + kv2.value = &info[i].value; PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &buf, &kv2, 1, PMIX_KVAL); if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); - goto exit; + continue; } - /* if this host is us, then store each value as its own key */ - if (0 == strcmp(kv2.key, pmix_globals.hostname)) { - for (i = 0; i < size; i++) { - kv2.key = info[i].key; - kv2.value = &info[i].value; - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &buf, &kv2, 1, PMIX_KVAL); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - goto exit; - } - } + } + } + /* if the client is earlier than v3.1.5, we also need to store the + * array using the hostname as key */ + if (PMIX_PEER_IS_EARLIER(pmix_client_globals.myserver, 3, 1, 5) && + NULL != hostname) { + kv2.key = hostname; + kv2.value = kv->value; + PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &buf, &kv2, 1, PMIX_KVAL); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + continue; + } + } + } else if (PMIX_CHECK_KEY(kv, PMIX_APP_INFO_ARRAY)) { + /* the dstore currently does not understand info arrays, + * but we will store info from our own app */ + pmix_info_t *info; + size_t size, i; + /* if it is our local node, then we are going to pass + * all info */ + info = kv->value->data.darray->array; + size = kv->value->data.darray->size; + appnum = UINT32_MAX; + for (i = 0; i < size; i++) { + if (PMIX_CHECK_KEY(&info[i], PMIX_APPNUM)) { + appnum = info[i].value.data.uint32; + break; + } + } + if (appnum == pmix_globals.appnum) { + for (i = 0; i < size; i++) { + kv2.key = info[i].key; + kv2.value = &info[i].value; + PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &buf, &kv2, 1, PMIX_KVAL); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + continue; } } } - } else if (PMIX_CHECK_KEY(kv, PMIX_APP_INFO_ARRAY) || - PMIX_CHECK_KEY(kv, PMIX_JOB_INFO_ARRAY) || + } else if (PMIX_CHECK_KEY(kv, PMIX_JOB_INFO_ARRAY) || PMIX_CHECK_KEY(kv, PMIX_SESSION_INFO_ARRAY)) { continue; } else { @@ -2836,8 +2874,7 @@ ns_map_data_t *ns_map; _client_compat_save(ds_ctx, peer); - pmix_strncpy(proc.nspace, ns->nspace, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; + PMIX_LOAD_PROCID(&proc, ns->nspace, PMIX_RANK_WILDCARD); if (NULL == (ns_map = ds_ctx->session_map_search(ds_ctx, proc.nspace))) { rc = PMIX_ERROR; PMIX_ERROR_LOG(rc); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_base.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_base.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_base.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_base.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2017 Mellanox Technologies, Inc. * All rights reserved. * $COPYRIGHT$ @@ -12,7 +12,7 @@ #ifndef PMIX_DSTORE_H #define PMIX_DSTORE_H -#include +#include "src/include/pmix_config.h" #include "src/mca/gds/gds.h" @@ -20,7 +20,7 @@ BEGIN_C_DECLS -#include +#include "src/include/pmix_config.h" #include "src/class/pmix_value_array.h" #include "dstore_common.h" #include "dstore_segment.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_common.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_common.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_common.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_common.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,7 @@ /* - * Copyright (c) 2018 Mellanox Technologies, Inc. + * Copyright (c) 2018-2020 Mellanox Technologies, Inc. * All rights reserved. + * Copyright (c) 2018-2020 Intel, Inc. All rights reserved. * Copyright (c) 2018 IBM Corporation. All rights reserved. * $COPYRIGHT$ * @@ -13,8 +14,8 @@ #define PMIX_GDS_DS_BASE_H_ #include -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/class/pmix_list.h" @@ -49,7 +50,7 @@ pmix_common_dstore_file_cbs_t *file_cb); PMIX_EXPORT void pmix_common_dstor_finalize(pmix_common_dstore_ctx_t *ds_ctx); PMIX_EXPORT pmix_status_t pmix_common_dstor_add_nspace(pmix_common_dstore_ctx_t *ds_ctx, - const char *nspace, pmix_info_t info[], size_t ninfo); + const char *nspace, uint32_t local_size, pmix_info_t info[], size_t ninfo); PMIX_EXPORT pmix_status_t pmix_common_dstor_del_nspace(pmix_common_dstore_ctx_t *ds_ctx, const char* nspace); PMIX_EXPORT pmix_status_t pmix_common_dstor_setup_fork(pmix_common_dstore_ctx_t *ds_ctx, const char *base_path_env, const pmix_proc_t *peer, char ***env); @@ -74,6 +75,6 @@ pmix_list_t *kvs); PMIX_EXPORT pmix_status_t pmix_common_dstor_store_modex(pmix_common_dstore_ctx_t *ds_ctx, struct pmix_namespace_t *nspace, - pmix_list_t *cbs, - pmix_buffer_t *buff); + pmix_buffer_t *buff, + void *cbdata); #endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_segment.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_segment.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_segment.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_segment.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. * Copyright (c) 2016-2017 Mellanox Technologies, Inc. * All rights reserved. @@ -13,7 +13,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_UNISTD_H #include @@ -37,7 +37,7 @@ #endif #endif -#include +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/mca/gds/base/base.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_segment.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_segment.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_segment.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/dstore_segment.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. * Copyright (c) 2016-2017 Mellanox Technologies, Inc. * All rights reserved. @@ -13,8 +13,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/mca/gds/base/base.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/common/dstore/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,7 +121,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -151,6 +150,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -161,7 +161,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -370,6 +369,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -433,6 +439,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -455,6 +468,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -473,6 +488,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -481,9 +497,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -497,6 +513,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -542,6 +559,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -554,10 +575,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/common/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/common/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/common/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/common/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -123,7 +123,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -153,6 +152,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -163,7 +163,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -275,6 +274,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -338,6 +344,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -360,6 +373,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -378,6 +393,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -386,9 +402,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -402,6 +418,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -447,6 +464,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -459,10 +480,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/base/base.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/base/base.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/base/base.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/base/base.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,10 +11,12 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2018 IBM Corporation. All rights reserved. + * Copyright (c) 2019 Mellanox Technologies, Inc. + * All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -25,7 +27,7 @@ #ifndef PMIX_GDS_BASE_H_ #define PMIX_GDS_BASE_H_ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_SYS_TIME_H @@ -73,15 +75,34 @@ struct pmix_gds_globals_t { pmix_list_t actives; bool initialized; + bool selected; char *all_mods; }; + +typedef enum { + PMIX_MODEX_KEY_INVALID = -1, + PMIX_MODEX_KEY_NATIVE_FMT, + PMIX_MODEX_KEY_KEYMAP_FMT, + PMIX_MODEX_KEY_MAX +} pmix_gds_modex_key_fmt_t; + +/* define a modex blob info */ +typedef uint8_t pmix_gds_modex_blob_info_t; + +#define PMIX_GDS_COLLECT_BIT 0x0001 +#define PMIX_GDS_KEYMAP_BIT 0x0002 + +#define PMIX_GDS_KEYMAP_IS_SET(byte) (PMIX_GDS_KEYMAP_BIT & (byte)) +#define PMIX_GDS_COLLECT_IS_SET(byte) (PMIX_GDS_COLLECT_BIT & (byte)) + typedef struct pmix_gds_globals_t pmix_gds_globals_t; -typedef void * pmix_gds_base_store_modex_cbdata_t; -typedef pmix_status_t (*pmix_gds_base_store_modex_cb_fn_t)(pmix_gds_base_store_modex_cbdata_t cbdata, - struct pmix_namespace_t *nspace, - pmix_list_t *cbs, - pmix_byte_object_t *bo); +typedef void * pmix_gds_base_ctx_t; +typedef pmix_status_t (*pmix_gds_base_store_modex_cb_fn_t)(pmix_gds_base_ctx_t ctx, + pmix_proc_t *proc, + pmix_gds_modex_key_fmt_t key_fmt, + char **kmap, + pmix_buffer_t *pbkt); PMIX_EXPORT extern pmix_gds_globals_t pmix_gds_globals; @@ -106,11 +127,20 @@ char ***env); PMIX_EXPORT pmix_status_t pmix_gds_base_store_modex(struct pmix_namespace_t *nspace, - pmix_list_t *cbs, - pmix_buffer_t *xfer, - pmix_gds_base_store_modex_cb_fn_t cb_fn, - pmix_gds_base_store_modex_cbdata_t cbdata); - + pmix_buffer_t * buff, + pmix_gds_base_ctx_t ctx, + pmix_gds_base_store_modex_cb_fn_t cb_fn, + void *cbdata); + +PMIX_EXPORT +pmix_status_t pmix_gds_base_modex_pack_kval(pmix_gds_modex_key_fmt_t key_fmt, + pmix_buffer_t *buf, char ***kmap, + pmix_kval_t *kv); + +PMIX_EXPORT +pmix_status_t pmix_gds_base_modex_unpack_kval(pmix_gds_modex_key_fmt_t key_fmt, + pmix_buffer_t *buf, char **kmap, + pmix_kval_t *kv); END_C_DECLS #endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/base/gds_base_fns.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/base/gds_base_fns.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/base/gds_base_fns.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/base/gds_base_fns.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,10 +1,10 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2015-2017 Intel, Inc. All rights reserved. - * Copyright (c) 2016 Mellanox Technologies, Inc. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2019 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2018 IBM Corporation. All rights reserved. - * Copyright (c) 2018 Research Organization for Information Science + * Copyright (c) 2018-2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. * * $COPYRIGHT$ @@ -14,9 +14,9 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/class/pmix_list.h" @@ -24,6 +24,7 @@ #include "src/util/error.h" #include "src/mca/gds/base/base.h" +#include "src/server/pmix_server_ops.h" char* pmix_gds_base_get_available_modules(void) @@ -89,32 +90,47 @@ } pmix_status_t pmix_gds_base_store_modex(struct pmix_namespace_t *nspace, - pmix_list_t *cbs, - pmix_buffer_t * buff, - pmix_gds_base_store_modex_cb_fn_t cb_fn, - pmix_gds_base_store_modex_cbdata_t cbdata) + pmix_buffer_t * buff, + pmix_gds_base_ctx_t ctx, + pmix_gds_base_store_modex_cb_fn_t cb_fn, + void *cbdata) { + (void)nspace; pmix_status_t rc = PMIX_SUCCESS; - pmix_namespace_t * ns = (pmix_namespace_t *)nspace; pmix_buffer_t bkt; pmix_byte_object_t bo, bo2; int32_t cnt = 1; - char byte; pmix_collect_t ctype; - bool have_ctype = false; + pmix_server_trkr_t *trk = (pmix_server_trkr_t*)cbdata; + pmix_proc_t proc; + pmix_buffer_t pbkt; + pmix_rank_t rel_rank; + pmix_nspace_caddy_t *nm; + bool found; + char **kmap = NULL; + uint32_t kmap_size; + pmix_gds_modex_key_fmt_t kmap_type; + pmix_gds_modex_blob_info_t blob_info_byte = 0; /* Loop over the enclosed byte object envelopes and * store them in our GDS module */ cnt = 1; PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, buff, &bo, &cnt, PMIX_BYTE_OBJECT); + + /* If the collect flag is set, we should have some data for unpacking */ + if ((PMIX_COLLECT_YES == trk->collect_type) && + (PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER == rc)) { + goto exit; + } + while (PMIX_SUCCESS == rc) { PMIX_CONSTRUCT(&bkt, pmix_buffer_t); PMIX_LOAD_BUFFER(pmix_globals.mypeer, &bkt, bo.bytes, bo.size); /* unpack the data collection flag */ cnt = 1; PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &bkt, &byte, &cnt, PMIX_BYTE); + &bkt, &blob_info_byte, &cnt, PMIX_BYTE); if (PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER == rc) { /* no data was returned, so we are done with this blob */ PMIX_DESTRUCT(&bkt); @@ -122,23 +138,61 @@ } if (PMIX_SUCCESS != rc) { /* we have an error */ + PMIX_ERROR_LOG(rc); PMIX_DESTRUCT(&bkt); - goto error; + goto exit; + } + /* Check that this blob was accumulated with the same data collection + * setting */ + ctype = PMIX_GDS_COLLECT_IS_SET(blob_info_byte) ? + PMIX_COLLECT_YES : PMIX_COLLECT_NO; + if (trk->collect_type != ctype) { + rc = PMIX_ERR_INVALID_ARG; + PMIX_ERROR_LOG(rc); + goto exit; } - // Check that this blob was accumulated with the same data collection setting - if (have_ctype) { - if (ctype != (pmix_collect_t)byte) { - rc = PMIX_ERR_INVALID_ARG; + /* determine the key-map existing flag */ + kmap_type = PMIX_GDS_KEYMAP_IS_SET(blob_info_byte) ? + PMIX_MODEX_KEY_KEYMAP_FMT : PMIX_MODEX_KEY_NATIVE_FMT; + if (PMIX_MODEX_KEY_KEYMAP_FMT == kmap_type) { + /* unpack the size of uniq keys names in the map */ + cnt = 1; + PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, + &bkt, &kmap_size, &cnt, PMIX_UINT32); + if (PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER == rc) { + rc = PMIX_SUCCESS; + PMIX_DESTRUCT(&bkt); + break; + } else if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); PMIX_DESTRUCT(&bkt); - goto error; + break; } - } - else { - ctype = (pmix_collect_t)byte; - have_ctype = true; - } + /* init and unpack key names map, the position of the key name + * in the array determines the unique key index */ + kmap = (char**)(calloc(kmap_size + 1, sizeof(char*))); + if (NULL == kmap) { + rc = PMIX_ERR_OUT_OF_RESOURCE; + PMIX_ERROR_LOG(rc); + goto exit; + } + cnt = kmap_size; + PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, &bkt, + kmap, &cnt, PMIX_STRING); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_DESTRUCT(&bkt); + goto exit; + } + if (pmix_argv_count(kmap) != (int)kmap_size) { + rc = PMIX_ERR_UNPACK_FAILURE; + PMIX_ERROR_LOG(rc); + PMIX_DESTRUCT(&bkt); + goto exit; + } + } /* unpack the enclosed blobs from the various peers */ cnt = 1; PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, @@ -150,11 +204,54 @@ * shared memory region, then the data may be available * right away - but the client still has to be notified * of its presence. */ - rc = cb_fn(cbdata, (struct pmix_namespace_t *)ns, cbs, &bo2); + + /* setup the byte object for unpacking */ + PMIX_CONSTRUCT(&pbkt, pmix_buffer_t); + PMIX_LOAD_BUFFER(pmix_globals.mypeer, &pbkt, bo2.bytes, bo2.size); + /* unload the proc that provided this data */ + cnt = 1; + PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, &pbkt, &rel_rank, &cnt, + PMIX_PROC_RANK); if (PMIX_SUCCESS != rc) { - PMIX_DESTRUCT(&bkt); - goto error; + PMIX_ERROR_LOG(rc); + pbkt.base_ptr = NULL; + PMIX_DESTRUCT(&pbkt); + break; + } + found = false; + /* calculate proc form the relative rank */ + if (pmix_list_get_size(&trk->nslist) == 1) { + found = true; + nm = (pmix_nspace_caddy_t*)pmix_list_get_first(&trk->nslist); + } else { + PMIX_LIST_FOREACH(nm, &trk->nslist, pmix_nspace_caddy_t) { + if (rel_rank < nm->ns->nprocs) { + found = true; + break; + } + rel_rank -= nm->ns->nprocs; + } } + if (false == found) { + rc = PMIX_ERR_NOT_FOUND; + PMIX_ERROR_LOG(rc); + pbkt.base_ptr = NULL; + PMIX_DESTRUCT(&pbkt); + break; + } + PMIX_PROC_LOAD(&proc, nm->ns->nspace, rel_rank); + + /* call a specific GDS function to storing + * part of the process data */ + rc = cb_fn(ctx, &proc, kmap_type, kmap, &pbkt); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + pbkt.base_ptr = NULL; + PMIX_DESTRUCT(&pbkt); + break; + } + pbkt.base_ptr = NULL; + PMIX_DESTRUCT(&pbkt); PMIX_BYTE_OBJECT_DESTRUCT(&bo2); /* get the next blob */ cnt = 1; @@ -162,24 +259,133 @@ &bkt, &bo2, &cnt, PMIX_BYTE_OBJECT); } PMIX_DESTRUCT(&bkt); + if (PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER == rc) { rc = PMIX_SUCCESS; } else if (PMIX_SUCCESS != rc) { - goto error; + PMIX_ERROR_LOG(rc); + goto exit; } /* unpack and process the next blob */ cnt = 1; PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, buff, &bo, &cnt, PMIX_BYTE_OBJECT); } + if (PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER == rc) { rc = PMIX_SUCCESS; + } else if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); } +exit: + pmix_argv_free(kmap); + return rc; +} + +/* + * Pack the key-value as a tuple of key-name index and key-value. + * The key-name to store replaced by unique key-index that stored + * to the key-map. So the remote server can determine the key-name + * by the index from map that packed in modex as well. + * + * kmap - key values array by (char*), uses to store unique key + * names string and determine their indexes + * + * buf - output buffer to pack key-values + * + * kv - pmix key-value pair + */ +pmix_status_t pmix_gds_base_modex_pack_kval(pmix_gds_modex_key_fmt_t key_fmt, + pmix_buffer_t *buf, char ***kmap, + pmix_kval_t *kv) +{ + uint32_t key_idx; + pmix_status_t rc = PMIX_SUCCESS; -error: - if (PMIX_SUCCESS != rc) { + if (PMIX_MODEX_KEY_KEYMAP_FMT == key_fmt) { + rc = pmix_argv_append_unique_idx((int*)&key_idx, kmap, kv->key); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + /* pack key-index */ + PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, buf, &key_idx, 1, PMIX_UINT32); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + /* pack key-value */ + PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, buf, kv->value, 1, PMIX_VALUE); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + } else if (PMIX_MODEX_KEY_NATIVE_FMT == key_fmt) { + PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, buf, kv, 1, PMIX_KVAL); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + } else { + rc = PMIX_ERR_BAD_PARAM; PMIX_ERROR_LOG(rc); + return rc; } - return rc; + return PMIX_SUCCESS; +} + +/* + * Unpack the key-value as a tuple of key-name index and key-value. + * + * kmap - key values array by (char*), uses to store unique key + * names string and determine their indexes + * + * buf - input buffer to unpack key-values + * + * kv - unpacked pmix key-value pair + */ +pmix_status_t pmix_gds_base_modex_unpack_kval(pmix_gds_modex_key_fmt_t key_fmt, + pmix_buffer_t *buf, char **kmap, + pmix_kval_t *kv) +{ + int32_t cnt; + uint32_t key_idx; + pmix_status_t rc = PMIX_SUCCESS; + + if (PMIX_MODEX_KEY_KEYMAP_FMT == key_fmt) { + cnt = 1; + PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, buf, &key_idx, &cnt, PMIX_UINT32); + if (PMIX_SUCCESS != rc) { + return rc; + } + // sanity check + if (NULL == kmap[key_idx]) { + rc = PMIX_ERR_BAD_PARAM; + PMIX_ERROR_LOG(rc); + return rc; + } + kv->key = strdup(kmap[key_idx]); + cnt = 1; + PMIX_VALUE_CREATE(kv->value, 1); + PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, buf, kv->value, &cnt, PMIX_VALUE); + if (PMIX_SUCCESS != rc) { + free(kv->key); + PMIX_VALUE_RELEASE(kv->value); + PMIX_ERROR_LOG(rc); + return rc; + } + } else if (PMIX_MODEX_KEY_NATIVE_FMT == key_fmt) { + cnt = 1; + PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, buf, kv, &cnt, PMIX_KVAL); + if (PMIX_SUCCESS != rc) { + return rc; + } + } else { + rc = PMIX_ERR_BAD_PARAM; + PMIX_ERROR_LOG(rc); + return rc; + } + + return PMIX_SUCCESS; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/base/gds_base_frame.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/base/gds_base_frame.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/base/gds_base_frame.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/base/gds_base_frame.c 2022-05-29 09:51:40.000000000 +0000 @@ -11,9 +11,9 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. - * Copyright (c) 2015-2016 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -23,9 +23,9 @@ /** @file: * */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #ifdef HAVE_STRING_H #include @@ -57,6 +57,7 @@ return PMIX_SUCCESS; } pmix_gds_globals.initialized = false; + pmix_gds_globals.selected = false; PMIX_LIST_FOREACH_SAFE(active, prev, &pmix_gds_globals.actives, pmix_gds_base_active_module_t) { pmix_list_remove_item(&pmix_gds_globals.actives, &active->super); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/base/gds_base_select.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/base/gds_base_select.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/base/gds_base_select.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/base/gds_base_select.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,9 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,8 +19,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include @@ -30,8 +32,6 @@ #include "src/mca/gds/base/base.h" -static bool selected = false; - /* Function for selecting a prioritized list of components * from all those that are available. */ int pmix_gds_base_select(pmix_info_t info[], size_t ninfo) @@ -45,11 +45,11 @@ bool inserted; char **mods = NULL; - if (selected) { + if (pmix_gds_globals.selected) { /* ensure we don't do this twice */ return PMIX_SUCCESS; } - selected = true; + pmix_gds_globals.selected = true; /* Query all available components and ask if they have a module */ PMIX_LIST_FOREACH(cli, &pmix_gds_base_framework.framework_components, pmix_mca_base_component_list_item_t) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_base.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_base.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_base.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_base.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* - * Copyright (c) 2015-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016-2018 IBM Corporation. All rights reserved. - * Copyright (c) 2016-2018 Mellanox Technologies, Inc. + * Copyright (c) 2016-2020 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -13,8 +13,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/util/error.h" #include "src/mca/gds/base/base.h" @@ -119,10 +119,10 @@ * always contains data solely from remote procs, and we * shall store it accordingly */ static pmix_status_t ds12_store_modex(struct pmix_namespace_t *nspace, - pmix_list_t *cbs, - pmix_buffer_t *buf) + pmix_buffer_t *buf, + void *cbdata) { - return pmix_common_dstor_store_modex(ds12_ctx, nspace, cbs, buf); + return pmix_common_dstor_store_modex(ds12_ctx, nspace, buf, cbdata); } static pmix_status_t ds12_fetch(const pmix_proc_t *proc, @@ -139,11 +139,10 @@ return pmix_common_dstor_setup_fork(ds12_ctx, PMIX_DSTORE_ESH_BASE_PATH, peer, env); } -static pmix_status_t ds12_add_nspace(const char *nspace, - pmix_info_t info[], - size_t ninfo) +static pmix_status_t ds12_add_nspace(const char *nspace, uint32_t local_size, + pmix_info_t info[], size_t ninfo) { - return pmix_common_dstor_add_nspace(ds12_ctx, nspace, info, ninfo); + return pmix_common_dstor_add_nspace(ds12_ctx, nspace, local_size, info, ninfo); } static pmix_status_t ds12_del_nspace(const char* nspace) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * Copyright (c) 2017 Mellanox Technologies, Inc. * All rights reserved. * $COPYRIGHT$ @@ -28,8 +28,8 @@ * entire components just to query their version and parameters. */ -#include -#include "pmix_common.h" +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/mca/gds/gds.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_file.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_file.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_file.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_file.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,6 +2,7 @@ * Copyright (c) 2018 Mellanox Technologies, Inc. * All rights reserved. * + * Copyright (c) 2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -9,7 +10,7 @@ * $HEADER$ */ -#include +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/mca/gds/base/base.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_file.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_file.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_file.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_file.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,7 @@ /* * Copyright (c) 2018 Mellanox Technologies, Inc. * All rights reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -11,8 +12,8 @@ #ifndef GDS_DS12_FILE_H #define GDS_DS12_FILE_H -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" extern pmix_common_dstore_file_cbs_t pmix_ds12_file_module; extern pmix_common_dstore_file_cbs_t pmix_ds20_file_module; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_lock.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_lock.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_lock.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_lock.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,7 @@ /* * Copyright (c) 2018 Mellanox Technologies, Inc. * All rights reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -8,8 +9,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/mca/common/dstore/dstore_common.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_lock_fcntl.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_lock_fcntl.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_lock_fcntl.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_lock_fcntl.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. * Copyright (c) 2016-2018 Mellanox Technologies, Inc. * All rights reserved. @@ -13,7 +13,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_UNISTD_H #include @@ -28,7 +28,7 @@ #include #endif -#include +#include "include/pmix_common.h" #include "src/mca/common/dstore/dstore_common.h" #include "src/mca/gds/base/base.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_lock.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_lock.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_lock.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_lock.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,7 @@ /* * Copyright (c) 2018 Mellanox Technologies, Inc. * All rights reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -11,8 +12,8 @@ #ifndef DS12_LOCK_H #define DS12_LOCK_H -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/mca/common/dstore/dstore_common.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_lock_pthread.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_lock_pthread.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_lock_pthread.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds12_lock_pthread.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #ifdef HAVE_UNISTD_H @@ -26,7 +26,7 @@ #include #endif -#include +#include "include/pmix_common.h" #include "src/mca/common/dstore/dstore_common.h" #include "src/mca/gds/base/base.h" @@ -199,20 +199,16 @@ (ds12_lock_pthread_ctx_t*)*lock_ctx; if (NULL == pthread_lock) { - PMIX_ERROR_LOG(PMIX_ERR_NOT_FOUND); return; } if (0 != pthread_rwlock_destroy(pthread_lock->rwlock)) { - PMIX_ERROR_LOG(PMIX_ERROR); return; } if (NULL == pthread_lock->segment) { - PMIX_ERROR_LOG(PMIX_ERROR); return; } if (NULL == pthread_lock->lockfile) { - PMIX_ERROR_LOG(PMIX_ERROR); return; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds20_file.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds20_file.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds20_file.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_ds20_file.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,6 +2,7 @@ * Copyright (c) 2018 Mellanox Technologies, Inc. * All rights reserved. * + * Copyright (c) 2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -9,7 +10,7 @@ * $HEADER$ */ -#include +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/mca/gds/base/base.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -132,7 +132,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -162,6 +161,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -172,7 +172,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -395,6 +394,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -458,6 +464,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -480,6 +493,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -498,6 +513,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -506,9 +522,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -522,6 +538,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -567,6 +584,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -579,10 +600,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_base.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_base.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_base.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_base.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* - * Copyright (c) 2015-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016-2018 IBM Corporation. All rights reserved. - * Copyright (c) 2016-2018 Mellanox Technologies, Inc. + * Copyright (c) 2016-2020 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -13,8 +13,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/util/error.h" #include "src/mca/gds/base/base.h" @@ -107,10 +107,10 @@ * always contains data solely from remote procs, and we * shall store it accordingly */ static pmix_status_t ds21_store_modex(struct pmix_namespace_t *nspace, - pmix_list_t *cbs, - pmix_buffer_t *buf) + pmix_buffer_t *buf, + void *cbdata) { - return pmix_common_dstor_store_modex(ds21_ctx, nspace, cbs, buf); + return pmix_common_dstor_store_modex(ds21_ctx, nspace, buf, cbdata); } static pmix_status_t ds21_fetch(const pmix_proc_t *proc, @@ -145,11 +145,10 @@ return rc; } -static pmix_status_t ds21_add_nspace(const char *nspace, - pmix_info_t info[], - size_t ninfo) +static pmix_status_t ds21_add_nspace(const char *nspace, uint32_t local_size, + pmix_info_t info[], size_t ninfo) { - return pmix_common_dstor_add_nspace(ds21_ctx, nspace, info, ninfo); + return pmix_common_dstor_add_nspace(ds21_ctx, nspace, local_size, info, ninfo); } static pmix_status_t ds21_del_nspace(const char* nspace) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * Copyright (c) 2017-2018 Mellanox Technologies, Inc. * All rights reserved. * $COPYRIGHT$ @@ -28,8 +28,8 @@ * entire components just to query their version and parameters. */ -#include -#include "pmix_common.h" +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/mca/gds/gds.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_file.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_file.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_file.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_file.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,6 +3,7 @@ * All rights reserved. * Copyright (c) 2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -10,7 +11,7 @@ * $HEADER$ */ -#include +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/mca/gds/base/base.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_file.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_file.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_file.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_file.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,7 @@ /* * Copyright (c) 2018 Mellanox Technologies, Inc. * All rights reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -11,8 +12,8 @@ #ifndef GDS_DS21_FILE_H #define GDS_DS21_FILE_H -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" extern pmix_common_dstore_file_cbs_t pmix_ds21_file_module; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_lock.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_lock.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_lock.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_lock.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,7 @@ /* * Copyright (c) 2018 Mellanox Technologies, Inc. * All rights reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -8,8 +9,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/mca/common/dstore/dstore_common.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_lock.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_lock.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_lock.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_lock.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,7 @@ /* * Copyright (c) 2018 Mellanox Technologies, Inc. * All rights reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -11,8 +12,8 @@ #ifndef DS21_LOCK_H #define DS21_LOCK_H -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/mca/common/dstore/dstore_common.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_lock_pthread.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_lock_pthread.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_lock_pthread.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/gds_ds21_lock_pthread.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,6 @@ /* - * Copyright (c) 2018 Mellanox Technologies, Inc. + * Copyright (c) 2018-2020 Mellanox Technologies, Inc. * All rights reserved. - * * Copyright (c) 2018-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * @@ -10,8 +9,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include #ifdef HAVE_UNISTD_H @@ -88,7 +87,7 @@ static void ldes(lock_item_t *p) { uint32_t i; - if(PMIX_PEER_IS_SERVER(pmix_globals.mypeer)) { + if(PMIX_PEER_IS_SERVER(pmix_globals.mypeer) && (NULL != p->seg_desc)) { segment_hdr_t *seg_hdr = (segment_hdr_t *)p->seg_desc->seg_info.seg_base_addr; if (p->lockfile) { unlink(p->lockfile); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds21/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -130,7 +130,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -160,6 +159,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -170,7 +170,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -388,6 +387,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -451,6 +457,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -473,6 +486,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -491,6 +506,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -499,9 +515,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -515,6 +531,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -560,6 +577,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -572,10 +593,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/gds.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/gds.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/gds.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/gds.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,8 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2016-2018 Mellanox Technologies, Inc. + * Copyright (c) 2016-2020 Mellanox Technologies, Inc. * All rights reserved. - * Copyright (c) 2016-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * Copyright (c) 2018 IBM Corporation. All rights reserved. * $COPYRIGHT$ * @@ -14,10 +14,10 @@ #ifndef PMIX_GDS_H #define PMIX_GDS_H -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #include "src/mca/mca.h" #include "src/mca/base/pmix_mca_base_var.h" #include "src/mca/base/pmix_mca_base_framework.h" @@ -234,17 +234,14 @@ * ranks - a list of pmix_rank_info_t for the local ranks from this * nspace - this is to be used to filter the cbs list * - * cbs - a list of pmix_server_caddy_t's that contain the pmix_peer_t - * pointers of the local participants. The list can be used to - * identify those participants corresponding to this nspace - * (and thus, GDS component) + * cbdata - pointer to modex callback data * * bo - pointer to the byte object containing the data * */ typedef pmix_status_t (*pmix_gds_base_module_store_modex_fn_t)(struct pmix_namespace_t *ns, - pmix_list_t *cbs, - pmix_buffer_t *buff); + pmix_buffer_t *buff, + void *cbdata); /** * define a convenience macro for storing modex byte objects @@ -253,17 +250,16 @@ * * n - pointer to the pmix_namespace_t this blob is to be stored for * - * l - pointer to pmix_list_t containing pmix_server_caddy_t objects - * of the local_cbs of the collective tracker - * * b - pointer to pmix_byte_object_t containing the data + * + * t - pointer to the modex server tracker */ -#define PMIX_GDS_STORE_MODEX(r, n, l, b) \ +#define PMIX_GDS_STORE_MODEX(r, n, b, t) \ do { \ pmix_output_verbose(1, pmix_gds_base_output, \ "[%s:%d] GDS STORE MODEX WITH %s", \ __FILE__, __LINE__, (n)->compat.gds->name); \ - (r) = (n)->compat.gds->store_modex((struct pmix_namespace_t*)n, l, b); \ + (r) = (n)->compat.gds->store_modex((struct pmix_namespace_t*)n, b, t); \ } while (0) /** @@ -346,11 +342,12 @@ * @return PMIX_SUCCESS on success. */ typedef pmix_status_t (*pmix_gds_base_module_add_nspace_fn_t)(const char *nspace, + uint32_t nlocalprocs, pmix_info_t info[], size_t ninfo); /* define a convenience macro for add_nspace based on peer */ -#define PMIX_GDS_ADD_NSPACE(s, n, i, ni) \ +#define PMIX_GDS_ADD_NSPACE(s, n, ls, i, ni) \ do { \ pmix_gds_base_active_module_t *_g; \ pmix_status_t _s = PMIX_SUCCESS; \ @@ -361,7 +358,7 @@ PMIX_LIST_FOREACH(_g, &pmix_gds_globals.actives, \ pmix_gds_base_active_module_t) { \ if (NULL != _g->module->add_nspace) { \ - _s = _g->module->add_nspace(n, i, ni); \ + _s = _g->module->add_nspace(n, ls, i, ni); \ } \ if (PMIX_SUCCESS != _s) { \ (s) = PMIX_ERROR; \ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/hash/gds_hash.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/hash/gds_hash.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/hash/gds_hash.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/hash/gds_hash.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2016-2018 IBM Corporation. All rights reserved. * Copyright (c) 2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2018 Mellanox Technologies, Inc. + * Copyright (c) 2018-2020 Mellanox Technologies, Inc. * All rights reserved. * * $COPYRIGHT$ @@ -13,7 +13,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #ifdef HAVE_UNISTD_H @@ -30,16 +30,16 @@ #endif #include -#include +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/class/pmix_list.h" #include "src/client/pmix_client_ops.h" #include "src/server/pmix_server_ops.h" +#include "src/mca/pcompress/base/base.h" +#include "src/mca/preg/preg.h" #include "src/mca/ptl/base/base.h" #include "src/util/argv.h" -#include "src/util/compress.h" -#include "src/mca/preg/preg.h" #include "src/util/error.h" #include "src/util/hash.h" #include "src/util/output.h" @@ -69,13 +69,14 @@ pmix_kval_t *kv); static pmix_status_t hash_store_modex(struct pmix_namespace_t *ns, - pmix_list_t *cbs, - pmix_buffer_t *buff); + pmix_buffer_t *buff, + void *cbdata); -static pmix_status_t _hash_store_modex(void * cbdata, - struct pmix_namespace_t *ns, - pmix_list_t *cbs, - pmix_byte_object_t *bo); +static pmix_status_t _hash_store_modex(pmix_gds_base_ctx_t ctx, + pmix_proc_t *proc, + pmix_gds_modex_key_fmt_t key_fmt, + char **kmap, + pmix_buffer_t *pbkt); static pmix_status_t hash_fetch(const pmix_proc_t *proc, pmix_scope_t scope, bool copy, @@ -85,9 +86,8 @@ static pmix_status_t setup_fork(const pmix_proc_t *peer, char ***env); -static pmix_status_t nspace_add(const char *nspace, - pmix_info_t info[], - size_t ninfo); +static pmix_status_t nspace_add(const char *nspace, uint32_t nlocalprocs, + pmix_info_t info[], size_t ninfo); static pmix_status_t nspace_del(const char *nspace); @@ -163,6 +163,7 @@ pmix_list_item_t super; uint32_t nodeid; char *hostname; + char **aliases; pmix_list_t info; } pmix_nodeinfo_t; @@ -247,6 +248,7 @@ { p->nodeid = UINT32_MAX; p->hostname = NULL; + p->aliases = NULL; PMIX_CONSTRUCT(&p->info, pmix_list_t); } static void ndinfodes(pmix_nodeinfo_t *p) @@ -254,12 +256,18 @@ if (NULL != p->hostname) { free(p->hostname); } + if (NULL != p->aliases) { + pmix_argv_free(p->aliases); + } PMIX_LIST_DESTRUCT(&p->info); } static PMIX_CLASS_INSTANCE(pmix_nodeinfo_t, pmix_list_item_t, ndinfocon, ndinfodes); +/********************************************** + * Local Functions + **********************************************/ static pmix_job_t* get_tracker(const pmix_nspace_t nspace, bool create) { pmix_job_t *trk, *t; @@ -301,6 +309,82 @@ return trk; } +static bool check_hostname(char *h1, char *h2) +{ + if (0 == strcmp(h1, h2)) { + return true; + } + return false; +} + +static bool check_node(pmix_nodeinfo_t *n1, + pmix_nodeinfo_t *n2) +{ + int i, j; + + if (UINT32_MAX != n1->nodeid && + UINT32_MAX != n2->nodeid && + n1->nodeid == n2->nodeid) { + return true; + } + + if (NULL == n1->hostname || NULL == n2->hostname) { + return false; + } + + if (check_hostname(n1->hostname, n2->hostname)) { + return true; + } + + if (NULL != n1->aliases) { + for (i=0; NULL != n1->aliases[i]; i++) { + if (check_hostname(n1->aliases[i], n2->hostname)) { + return true; + } + if (NULL != n2->aliases) { + for (j=0; NULL != n2->aliases[j]; j++) { + if (check_hostname(n1->hostname, n2->aliases[j])) { + return true; + } + if (check_hostname(n1->aliases[i], n2->aliases[j])) { + return true; + } + } + } + } + } else if (NULL != n2->aliases) { + for (j=0; NULL != n2->aliases[j]; j++) { + if (check_hostname(n1->hostname, n2->aliases[j])) { + return true; + } + } + } + + return false; +} + +static bool check_nodename(pmix_nodeinfo_t *nptr, char *hostname) +{ + int i; + + if (NULL == nptr->hostname) { + return false; + } + + if (check_hostname(nptr->hostname, hostname)) { + return true; + } + + if (NULL != nptr->aliases) { + for (i=0; NULL != nptr->aliases[i]; i++) { + if (check_hostname(nptr->aliases[i], hostname)) { + return true; + } + } + } + return false; +} + /********************************************** * Forward Declarations **********************************************/ @@ -345,6 +429,9 @@ /* cache the values while searching for the nodeid * and/or hostname */ for (j=0; j < size; j++) { + pmix_output_verbose(12, pmix_gds_base_framework.framework_output, + "%s gds:hash:node_array for key %s", + PMIX_NAME_PRINT(&pmix_globals.myid), iptr[j].key); if (PMIX_CHECK_KEY(&iptr[j], PMIX_NODEID)) { if (NULL == nd) { nd = PMIX_NEW(pmix_nodeinfo_t); @@ -361,6 +448,24 @@ nd = PMIX_NEW(pmix_nodeinfo_t); } nd->hostname = strdup(iptr[j].value.data.string); + } else if (PMIX_CHECK_KEY(&iptr[j], PMIX_HOSTNAME_ALIASES)) { + if (NULL == nd) { + nd = PMIX_NEW(pmix_nodeinfo_t); + } + nd->aliases = pmix_argv_split(iptr[j].value.data.string, ','); + /* need to cache this value as well */ + kp2 = PMIX_NEW(pmix_kval_t); + kp2->key = strdup(iptr[j].key); + kp2->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); + PMIX_VALUE_XFER(rc, kp2->value, &iptr[j].value); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE(kp2); + PMIX_RELEASE(nd); + PMIX_LIST_DESTRUCT(&cache); + return rc; + } + pmix_list_append(&cache, &kp2->super); } else { kp2 = PMIX_NEW(pmix_kval_t); kp2->key = strdup(iptr[j].key); @@ -389,8 +494,7 @@ * provided list */ update = false; PMIX_LIST_FOREACH(ndptr, tgt, pmix_nodeinfo_t) { - if ((ndptr->nodeid != UINT32_MAX && (ndptr->nodeid == nd->nodeid)) || - (NULL != ndptr->hostname && NULL != nd->hostname && 0 == strcmp(ndptr->hostname, nd->hostname))) { + if (check_node(ndptr, nd)) { /* we assume that the data is updating the current * values */ if (NULL == ndptr->hostname && NULL != nd->hostname) { @@ -402,6 +506,9 @@ break; } } + if (!update) { + pmix_list_append(tgt, &nd->super); + } /* transfer the cached items to the nodeinfo list */ kp2 = (pmix_kval_t*)pmix_list_remove_first(&cache); @@ -422,9 +529,6 @@ } PMIX_LIST_DESTRUCT(&cache); - if (!update) { - pmix_list_append(tgt, &nd->super); - } return PMIX_SUCCESS; } @@ -443,7 +547,7 @@ pmix_status_t rc = PMIX_SUCCESS; uint32_t appnum; pmix_apptrkr_t *app = NULL, *apptr; - pmix_kval_t *kp2, *k1, *knext; + pmix_kval_t *kp2, *k1; pmix_nodeinfo_t *nd; bool update; @@ -468,6 +572,9 @@ iptr = (pmix_info_t*)val->data.darray->array; for (j=0; j < size; j++) { + pmix_output_verbose(12, pmix_gds_base_framework.framework_output, + "%s gds:hash:app_array for key %s", + PMIX_NAME_PRINT(&pmix_globals.myid), iptr[j].key); if (PMIX_CHECK_KEY(&iptr[j], PMIX_APPNUM)) { PMIX_VALUE_GET_NUMBER(rc, &iptr[j].value, appnum, uint32_t); if (PMIX_SUCCESS != rc) { @@ -507,6 +614,7 @@ * an appnum so long as only one app is in the job */ if (0 == pmix_list_get_size(&trk->apps)) { app = PMIX_NEW(pmix_apptrkr_t); + app->appnum = 0; } else { /* this is not allowed to happen - they are required * to provide us with an app number per the standard */ @@ -528,7 +636,9 @@ break; } } - + if (!update) { + pmix_list_append(&trk->apps, &app->super); + } /* point the app at its job */ if (NULL == app->job) { PMIX_RETAIN(trk); @@ -541,7 +651,7 @@ /* if this is an update, we have to ensure each data * item only appears once on the list */ if (update) { - PMIX_LIST_FOREACH_SAFE(k1, knext, &app->appinfo, pmix_kval_t) { + PMIX_LIST_FOREACH(k1, &app->appinfo, pmix_kval_t) { if (PMIX_CHECK_KEY(k1, kp2->key)) { pmix_list_remove_item(&app->appinfo, &k1->super); PMIX_RELEASE(k1); @@ -607,7 +717,7 @@ return PMIX_ERR_BAD_PARAM; } /* parse the regex to get the argv array containing proc ranks on each node */ - if (PMIX_SUCCESS != (rc = pmix_preg.parse_procs(iptr[j].value.data.string, procs))) { + if (PMIX_SUCCESS != (rc = pmix_preg.parse_procs(iptr[j].value.data.bo.bytes, procs))) { PMIX_ERROR_LOG(rc); return rc; } @@ -619,22 +729,8 @@ PMIX_ERROR_LOG(PMIX_ERR_BAD_PARAM); return PMIX_ERR_BAD_PARAM; } - /* store the node map itself since that is - * what v3 uses */ - kp2 = PMIX_NEW(pmix_kval_t); - kp2->key = strdup(PMIX_NODE_MAP); - kp2->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); - kp2->value->type = PMIX_STRING; - kp2->value->data.string = strdup(iptr[j].value.data.string); - if (PMIX_SUCCESS != (rc = pmix_hash_store(&trk->internal, PMIX_RANK_WILDCARD, kp2))) { - PMIX_ERROR_LOG(rc); - PMIX_RELEASE(kp2); - return rc; - } - PMIX_RELEASE(kp2); // maintain acctg - /* parse the regex to get the argv array of node names */ - if (PMIX_SUCCESS != (rc = pmix_preg.parse_nodes(iptr[j].value.data.string, nodes))) { + if (PMIX_SUCCESS != (rc = pmix_preg.parse_nodes(iptr[j].value.data.bo.bytes, nodes))) { PMIX_ERROR_LOG(rc); return rc; } @@ -836,6 +932,10 @@ kp2->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); kp2->value->type = PMIX_UINT32; kp2->value->data.uint32 = pmix_argv_count(nodes); + pmix_output_verbose(2, pmix_gds_base_framework.framework_output, + "[%s:%d] gds:hash:store_map adding key %s to job info", + pmix_globals.myid.nspace, pmix_globals.myid.rank, + kp2->key); if (PMIX_SUCCESS != (rc = pmix_hash_store(ht, PMIX_RANK_WILDCARD, kp2))) { PMIX_ERROR_LOG(rc); PMIX_RELEASE(kp2); @@ -848,12 +948,7 @@ /* check and see if we already have this node */ nd = NULL; PMIX_LIST_FOREACH(ndptr, &trk->nodeinfo, pmix_nodeinfo_t) { - if (NULL != ndptr->hostname && 0 == strcmp(ndptr->hostname, nodes[n])) { - /* we assume that the data is updating the current - * values */ - if (NULL == ndptr->hostname) { - ndptr->hostname = strdup(nodes[n]); - } + if (check_nodename(ndptr, nodes[n])) { nd = ndptr; break; } @@ -861,6 +956,7 @@ if (NULL == nd) { nd = PMIX_NEW(pmix_nodeinfo_t); nd->hostname = strdup(nodes[n]); + nd->nodeid = n; pmix_list_append(&trk->nodeinfo, &nd->super); } /* store the proc list as-is */ @@ -876,6 +972,10 @@ } kp2->value->type = PMIX_STRING; kp2->value->data.string = strdup(ppn[n]); + pmix_output_verbose(2, pmix_gds_base_framework.framework_output, + "[%s:%d] gds:hash:store_map adding key %s to node %s info", + pmix_globals.myid.nspace, pmix_globals.myid.rank, + kp2->key, nodes[n]); /* ensure this item only appears once on the list */ PMIX_LIST_FOREACH(kp1, &nd->info, pmix_kval_t) { if (PMIX_CHECK_KEY(kp1, kp2->key)) { @@ -900,6 +1000,10 @@ } kp2->value->type = PMIX_PROC_RANK; kp2->value->data.rank = rank; + pmix_output_verbose(2, pmix_gds_base_framework.framework_output, + "[%s:%d] gds:hash:store_map adding key %s to node %s info", + pmix_globals.myid.nspace, pmix_globals.myid.rank, + kp2->key, nodes[n]); /* ensure this item only appears once on the list */ PMIX_LIST_FOREACH(kp1, &nd->info, pmix_kval_t) { if (PMIX_CHECK_KEY(kp1, kp2->key)) { @@ -927,6 +1031,10 @@ } kp2->value->type = PMIX_UINT32; kp2->value->data.uint32 = pmix_argv_count(procs); + pmix_output_verbose(2, pmix_gds_base_framework.framework_output, + "[%s:%d] gds:hash:store_map adding key %s to node %s info", + pmix_globals.myid.nspace, pmix_globals.myid.rank, + kp2->key, nodes[n]); /* ensure this item only appears once on the list */ PMIX_LIST_FOREACH(kp1, &nd->info, pmix_kval_t) { if (PMIX_CHECK_KEY(kp1, kp2->key)) { @@ -964,6 +1072,10 @@ kp2->key = strdup(PMIX_NODEID); kp2->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); kp2->value->type = PMIX_UINT32; + pmix_output_verbose(2, pmix_gds_base_framework.framework_output, + "[%s:%d] gds:hash:store_map for [%s:%u]: key %s", + pmix_globals.myid.nspace, pmix_globals.myid.rank, + trk->ns, rank, kp2->key); kp2->value->data.uint32 = n; if (PMIX_SUCCESS != (rc = pmix_hash_store(ht, rank, kp2))) { PMIX_ERROR_LOG(rc); @@ -978,6 +1090,10 @@ kp2->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); kp2->value->type = PMIX_UINT16; kp2->value->data.uint16 = m; + pmix_output_verbose(2, pmix_gds_base_framework.framework_output, + "[%s:%d] gds:hash:store_map for [%s:%u]: key %s", + pmix_globals.myid.nspace, pmix_globals.myid.rank, + trk->ns, rank, kp2->key); if (PMIX_SUCCESS != (rc = pmix_hash_store(ht, rank, kp2))) { PMIX_ERROR_LOG(rc); PMIX_RELEASE(kp2); @@ -992,6 +1108,10 @@ kp2->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); kp2->value->type = PMIX_UINT16; kp2->value->data.uint16 = m; + pmix_output_verbose(2, pmix_gds_base_framework.framework_output, + "[%s:%d] gds:hash:store_map for [%s:%u]: key %s", + pmix_globals.myid.nspace, pmix_globals.myid.rank, + trk->ns, rank, kp2->key); if (PMIX_SUCCESS != (rc = pmix_hash_store(ht, rank, kp2))) { PMIX_ERROR_LOG(rc); PMIX_RELEASE(kp2); @@ -1012,6 +1132,10 @@ kp2->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); kp2->value->type = PMIX_STRING; kp2->value->data.string = pmix_argv_join(nodes, ','); + pmix_output_verbose(2, pmix_gds_base_framework.framework_output, + "[%s:%d] gds:hash:store_map for nspace %s: key %s", + pmix_globals.myid.nspace, pmix_globals.myid.rank, + trk->ns, kp2->key); if (PMIX_SUCCESS != (rc = pmix_hash_store(ht, PMIX_RANK_WILDCARD, kp2))) { PMIX_ERROR_LOG(rc); PMIX_RELEASE(kp2); @@ -1028,6 +1152,10 @@ kp2->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); kp2->value->type = PMIX_UINT32; kp2->value->data.uint32 = totalprocs; + pmix_output_verbose(2, pmix_gds_base_framework.framework_output, + "[%s:%d] gds:hash:store_map for nspace %s: key %s", + pmix_globals.myid.nspace, pmix_globals.myid.rank, + trk->ns, kp2->key); if (PMIX_SUCCESS != (rc = pmix_hash_store(ht, PMIX_RANK_WILDCARD, kp2))) { PMIX_ERROR_LOG(rc); PMIX_RELEASE(kp2); @@ -1047,6 +1175,10 @@ kp2->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); kp2->value->type = PMIX_UINT32; kp2->value->data.uint32 = totalprocs; + pmix_output_verbose(2, pmix_gds_base_framework.framework_output, + "[%s:%d] gds:hash:store_map for nspace %s: key %s", + pmix_globals.myid.nspace, pmix_globals.myid.rank, + trk->ns, kp2->key); if (PMIX_SUCCESS != (rc = pmix_hash_store(ht, PMIX_RANK_WILDCARD, kp2))) { PMIX_ERROR_LOG(rc); PMIX_RELEASE(kp2); @@ -1078,6 +1210,7 @@ uint32_t flags = 0; pmix_nodeinfo_t *nd, *ndptr; pmix_apptrkr_t *apptr; + bool found; pmix_output_verbose(2, pmix_gds_base_framework.framework_output, "[%s:%d] gds:hash:cache_job_info for nspace %s with %lu info", @@ -1098,6 +1231,9 @@ /* cache the job info on the internal hash table for this nspace */ ht = &trk->internal; for (n=0; n < ninfo; n++) { + pmix_output_verbose(12, pmix_gds_base_framework.framework_output, + "%s gds:hash:cache_job_info for key %s", + PMIX_NAME_PRINT(&pmix_globals.myid), info[n].key); if (PMIX_CHECK_KEY(&info[n], PMIX_SESSION_ID)) { PMIX_VALUE_GET_NUMBER(rc, &info[n].value, sid, uint32_t); if (PMIX_SUCCESS != rc) { @@ -1148,23 +1284,20 @@ PMIX_ERROR_LOG(PMIX_ERR_BAD_PARAM); return PMIX_ERR_BAD_PARAM; } - /* store the node map itself since that is - * what v3 uses */ - kp2 = PMIX_NEW(pmix_kval_t); - kp2->key = strdup(PMIX_NODE_MAP); - kp2->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); - kp2->value->type = PMIX_STRING; - kp2->value->data.string = strdup(info[n].value.data.string); - if (PMIX_SUCCESS != (rc = pmix_hash_store(ht, PMIX_RANK_WILDCARD, kp2))) { - PMIX_ERROR_LOG(rc); - PMIX_RELEASE(kp2); - return rc; - } - PMIX_RELEASE(kp2); // maintain acctg - /* parse the regex to get the argv array of node names */ - if (PMIX_SUCCESS != (rc = pmix_preg.parse_nodes(info[n].value.data.string, &nodes))) { - PMIX_ERROR_LOG(rc); + if (PMIX_REGEX == info[n].value.type) { + if (PMIX_SUCCESS != (rc = pmix_preg.parse_nodes(info[n].value.data.bo.bytes, &nodes))) { + PMIX_ERROR_LOG(rc); + goto release; + } + } else if (PMIX_STRING == info[n].value.type) { + if (PMIX_SUCCESS != (rc = pmix_preg.parse_nodes(info[n].value.data.string, &nodes))) { + PMIX_ERROR_LOG(rc); + goto release; + } + } else { + PMIX_ERROR_LOG(PMIX_ERR_TYPE_MISMATCH); + rc = PMIX_ERR_TYPE_MISMATCH; goto release; } /* mark that we got the map */ @@ -1176,14 +1309,26 @@ return PMIX_ERR_BAD_PARAM; } /* parse the regex to get the argv array containing proc ranks on each node */ - if (PMIX_SUCCESS != (rc = pmix_preg.parse_procs(info[n].value.data.string, &procs))) { - PMIX_ERROR_LOG(rc); + if (PMIX_REGEX == info[n].value.type) { + if (PMIX_SUCCESS != (rc = pmix_preg.parse_procs(info[n].value.data.bo.bytes, &procs))) { + PMIX_ERROR_LOG(rc); + goto release; + } + } else if (PMIX_STRING == info[n].value.type) { + if (PMIX_SUCCESS != (rc = pmix_preg.parse_procs(info[n].value.data.string, &procs))) { + PMIX_ERROR_LOG(rc); + goto release; + } + } else { + PMIX_ERROR_LOG(PMIX_ERR_TYPE_MISMATCH); + rc = PMIX_ERR_TYPE_MISMATCH; goto release; } /* mark that we got the map */ flags |= PMIX_HASH_PROC_MAP; } else if (PMIX_CHECK_KEY(&info[n], PMIX_PROC_DATA)) { flags |= PMIX_HASH_PROC_DATA; + found = false; /* an array of data pertaining to a specific proc */ if (PMIX_DATA_ARRAY != info[n].value.type) { PMIX_ERROR_LOG(PMIX_ERR_BAD_PARAM); @@ -1217,7 +1362,7 @@ /* if the value contains a string that is longer than the * limit, then compress it */ if (PMIX_STRING_SIZE_CHECK(kp2->value)) { - if (pmix_util_compress_string(kp2->value->data.string, &tmp, &len)) { + if (pmix_compress.compress_string(kp2->value->data.string, &tmp, &len)) { if (NULL == tmp) { PMIX_ERROR_LOG(PMIX_ERR_NOMEM); rc = PMIX_ERR_NOMEM; @@ -1239,6 +1384,32 @@ PMIX_RELEASE(kp2); goto release; } + /* if this is the appnum, pass it to the pmdl framework */ + if (PMIX_CHECK_KEY(kp2, PMIX_APPNUM)) { + found = true; + if (rank == pmix_globals.myid.rank) { + pmix_globals.appnum = kp2->value->data.uint32; + } + } + PMIX_RELEASE(kp2); // maintain acctg + } + if (!found) { + /* if they didn't give us an appnum for this proc, we have + * to assume it is appnum=0 */ + uint32_t zero = 0; + kp2 = PMIX_NEW(pmix_kval_t); + if (NULL == kp2) { + rc = PMIX_ERR_NOMEM; + goto release; + } + kp2->key = strdup(PMIX_APPNUM); + PMIX_VALUE_CREATE(kp2->value, 1); + PMIX_VALUE_LOAD(kp2->value, &zero, PMIX_UINT32); + if (PMIX_SUCCESS != (rc = pmix_hash_store(ht, rank, kp2))) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE(kp2); + goto release; + } PMIX_RELEASE(kp2); // maintain acctg } } else if (pmix_check_node_info(info[n].key)) { @@ -1246,7 +1417,7 @@ * node - start by seeing if our node is on the list */ nd = NULL; PMIX_LIST_FOREACH(ndptr, &trk->nodeinfo, pmix_nodeinfo_t) { - if (0 == strcmp(pmix_globals.hostname, ndptr->hostname)) { + if (check_nodename(ndptr, pmix_globals.hostname)) { nd = ndptr; break; } @@ -1312,7 +1483,7 @@ /* if the value contains a string that is longer than the * limit, then compress it */ if (PMIX_STRING_SIZE_CHECK(kp2->value)) { - if (pmix_util_compress_string(kp2->value->data.string, &tmp, &len)) { + if (pmix_compress.compress_string(kp2->value->data.string, &tmp, &len)) { if (NULL == tmp) { rc = PMIX_ERR_NOMEM; PMIX_ERROR_LOG(rc); @@ -1469,7 +1640,7 @@ break; } } - if (NULL != hname && 0 == strcmp(pmix_globals.hostname, hname)) { + if (NULL != hname && check_hostname(pmix_globals.hostname, hname)) { /* older versions are looking for node-level keys for * only their own node as standalone keys */ for (n=0; n < ninfo; n++) { @@ -1568,6 +1739,9 @@ * for another peer in this nspace so we don't waste * time doing it again */ if (NULL != ns->jobbkt) { + pmix_output_verbose(2, pmix_gds_base_framework.framework_output, + "[%s:%d] gds:hash:register_job_info copying prepacked payload", + pmix_globals.myid.nspace, pmix_globals.myid.rank); /* we have packed this before - can just deliver it */ PMIX_BFROPS_COPY_PAYLOAD(rc, peer, reply, ns->jobbkt); if (PMIX_SUCCESS != rc) { @@ -1595,6 +1769,9 @@ * been given to us in the info array - pack * them for delivery */ /* pack the name of the nspace */ + pmix_output_verbose(2, pmix_gds_base_framework.framework_output, + "[%s:%d] gds:hash:register_job_info packing new payload", + pmix_globals.myid.nspace, pmix_globals.myid.rank); msg = ns->nspace; PMIX_BFROPS_PACK(rc, peer, reply, &msg, 1, PMIX_STRING); if (PMIX_SUCCESS != rc) { @@ -1691,6 +1868,7 @@ &buf2, &rank, &cnt, PMIX_PROC_RANK); if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); + PMIX_RELEASE(kptr); PMIX_DESTRUCT(&buf2); return rc; } @@ -1703,7 +1881,7 @@ /* if the value contains a string that is longer than the * limit, then compress it */ if (PMIX_STRING_SIZE_CHECK(kp2->value)) { - if (pmix_util_compress_string(kp2->value->data.string, &tmp, &len)) { + if (pmix_compress.compress_string(kp2->value->data.string, &tmp, &len)) { if (NULL == tmp) { PMIX_ERROR_LOG(PMIX_ERR_NOMEM); rc = PMIX_ERR_NOMEM; @@ -1720,6 +1898,7 @@ if (PMIX_SUCCESS != (rc = pmix_hash_store(ht, rank, kp2))) { PMIX_ERROR_LOG(rc); PMIX_RELEASE(kp2); + PMIX_RELEASE(kptr); PMIX_DESTRUCT(&buf2); return rc; } @@ -1743,6 +1922,7 @@ &buf2, &nnodes, &cnt, PMIX_SIZE); if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); + PMIX_RELEASE(kptr); PMIX_DESTRUCT(&buf2); return rc; } @@ -1754,6 +1934,7 @@ &buf2, &kv, &cnt, PMIX_KVAL); if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); + PMIX_RELEASE(kptr); PMIX_DESTRUCT(&buf2); PMIX_DESTRUCT(&kv); return rc; @@ -1763,12 +1944,9 @@ /* check and see if we already have this node */ nd = NULL; PMIX_LIST_FOREACH(ndptr, &trk->nodeinfo, pmix_nodeinfo_t) { - if (NULL != ndptr->hostname && 0 == strcmp(ndptr->hostname, kv.key)) { + if (check_nodename(ndptr, kv.key)) { /* we assume that the data is updating the current * values */ - if (NULL == ndptr->hostname) { - ndptr->hostname = strdup(kv.key); - } nd = ndptr; break; } @@ -1781,12 +1959,14 @@ /* save the list of peers for this node */ kp2 = PMIX_NEW(pmix_kval_t); if (NULL == kp2) { + PMIX_RELEASE(kptr); return PMIX_ERR_NOMEM; } kp2->key = strdup(PMIX_LOCAL_PEERS); kp2->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); if (NULL == kp2->value) { PMIX_RELEASE(kp2); + PMIX_RELEASE(kptr); return PMIX_ERR_NOMEM; } kp2->value->type = PMIX_STRING; @@ -1816,6 +1996,7 @@ if (PMIX_SUCCESS != (rc = pmix_hash_store(ht, rank, kp2))) { PMIX_ERROR_LOG(rc); PMIX_RELEASE(kp2); + PMIX_RELEASE(kptr); PMIX_DESTRUCT(&kv); PMIX_DESTRUCT(&buf2); pmix_argv_free(procs); @@ -1838,6 +2019,7 @@ if (PMIX_SUCCESS != (rc = pmix_hash_store(ht, PMIX_RANK_WILDCARD, kp2))) { PMIX_ERROR_LOG(rc); PMIX_RELEASE(kp2); + PMIX_RELEASE(kptr); PMIX_DESTRUCT(&kv); PMIX_DESTRUCT(&buf2); return rc; @@ -1849,23 +2031,24 @@ } else if (PMIX_CHECK_KEY(kptr, PMIX_APP_INFO_ARRAY)) { if (PMIX_SUCCESS != (rc = process_app_array(kptr->value, trk))) { PMIX_ERROR_LOG(rc); - PMIX_RELEASE(kp2); + PMIX_RELEASE(kptr); return rc; } } else if (PMIX_CHECK_KEY(kptr, PMIX_NODE_INFO_ARRAY)) { if (PMIX_SUCCESS != (rc = process_node_array(kptr->value, &trk->nodeinfo))) { PMIX_ERROR_LOG(rc); - PMIX_RELEASE(kp2); + PMIX_RELEASE(kptr); return rc; } } else { /* if the value contains a string that is longer than the * limit, then compress it */ if (PMIX_STRING_SIZE_CHECK(kptr->value)) { - if (pmix_util_compress_string(kptr->value->data.string, &tmp, &len)) { + if (pmix_compress.compress_string(kptr->value->data.string, &tmp, &len)) { if (NULL == tmp) { PMIX_ERROR_LOG(PMIX_ERR_NOMEM); rc = PMIX_ERR_NOMEM; + PMIX_RELEASE(kptr); return rc; } kptr->value->type = PMIX_COMPRESSED_STRING; @@ -2006,7 +2189,7 @@ /* if the value contains a string that is longer than the * limit, then compress it */ if (PMIX_STRING_SIZE_CHECK(kp->value)) { - if (pmix_util_compress_string(kp->value->data.string, &tmp, &len)) { + if (pmix_compress.compress_string(kp->value->data.string, &tmp, &len)) { if (NULL == tmp) { PMIX_ERROR_LOG(PMIX_ERR_NOMEM); rc = PMIX_ERR_NOMEM; @@ -2087,31 +2270,29 @@ * always contains data solely from remote procs, and we * shall store it accordingly */ static pmix_status_t hash_store_modex(struct pmix_namespace_t *nspace, - pmix_list_t *cbs, - pmix_buffer_t *buf) { - return pmix_gds_base_store_modex(nspace, cbs, buf, _hash_store_modex, NULL); + pmix_buffer_t *buf, + void *cbdata) { + return pmix_gds_base_store_modex(nspace, buf, NULL, + _hash_store_modex, cbdata); } -static pmix_status_t _hash_store_modex(void * cbdata, - struct pmix_namespace_t *nspace, - pmix_list_t *cbs, - pmix_byte_object_t *bo) +static pmix_status_t _hash_store_modex(pmix_gds_base_ctx_t ctx, + pmix_proc_t *proc, + pmix_gds_modex_key_fmt_t key_fmt, + char **kmap, + pmix_buffer_t *pbkt) { - pmix_namespace_t *ns = (pmix_namespace_t*)nspace; pmix_job_t *trk; pmix_status_t rc = PMIX_SUCCESS; - int32_t cnt; - pmix_buffer_t pbkt; - pmix_proc_t proc; pmix_kval_t *kv; pmix_output_verbose(2, pmix_gds_base_framework.framework_output, "[%s:%d] gds:hash:store_modex for nspace %s", pmix_globals.myid.nspace, pmix_globals.myid.rank, - ns->nspace); + proc->nspace); /* find the hash table for this nspace */ - trk = get_tracker(ns->nspace, true); + trk = get_tracker(proc->nspace, true); if (NULL == trk) { return PMIX_ERR_NOMEM; } @@ -2122,28 +2303,12 @@ * the rank followed by pmix_kval_t's. The list of callbacks * contains all local participants. */ - /* setup the byte object for unpacking */ - PMIX_CONSTRUCT(&pbkt, pmix_buffer_t); - /* the next step unfortunately NULLs the byte object's - * entries, so we need to ensure we restore them! */ - PMIX_LOAD_BUFFER(pmix_globals.mypeer, &pbkt, bo->bytes, bo->size); - /* unload the proc that provided this data */ - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, &pbkt, &proc, &cnt, PMIX_PROC); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - bo->bytes = pbkt.base_ptr; - bo->size = pbkt.bytes_used; // restore the incoming data - pbkt.base_ptr = NULL; - PMIX_DESTRUCT(&pbkt); - return rc; - } /* unpack the remaining values until we hit the end of the buffer */ - cnt = 1; kv = PMIX_NEW(pmix_kval_t); - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, &pbkt, kv, &cnt, PMIX_KVAL); + rc = pmix_gds_base_modex_unpack_kval(key_fmt, pbkt, kmap, kv); + while (PMIX_SUCCESS == rc) { - if (PMIX_RANK_UNDEF == proc.rank) { + if (PMIX_RANK_UNDEF == proc->rank) { /* if the rank is undefined, then we store it on the * remote table of rank=0 as we know that rank must * always exist */ @@ -2153,7 +2318,7 @@ } } else { /* store this in the hash table */ - if (PMIX_SUCCESS != (rc = pmix_hash_store(&trk->remote, proc.rank, kv))) { + if (PMIX_SUCCESS != (rc = pmix_hash_store(&trk->remote, proc->rank, kv))) { PMIX_ERROR_LOG(rc); return rc; } @@ -2161,8 +2326,7 @@ PMIX_RELEASE(kv); // maintain accounting as the hash increments the ref count /* continue along */ kv = PMIX_NEW(pmix_kval_t); - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, &pbkt, kv, &cnt, PMIX_KVAL); + rc = pmix_gds_base_modex_unpack_kval(key_fmt, pbkt, kmap, kv); } PMIX_RELEASE(kv); // maintain accounting if (PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER != rc) { @@ -2170,10 +2334,6 @@ } else { rc = PMIX_SUCCESS; } - bo->bytes = pbkt.base_ptr; - bo->size = pbkt.bytes_used; // restore the incoming data - pbkt.base_ptr = NULL; - PMIX_DESTRUCT(&pbkt); return rc; } @@ -2340,6 +2500,9 @@ ++n; } PMIX_LIST_FOREACH(kp2, &nd->info, pmix_kval_t) { + pmix_output_verbose(12, pmix_gds_base_framework.framework_output, + "%s gds:hash:fetch_nodearray adding key %s", + PMIX_NAME_PRINT(&pmix_globals.myid), kp2->key); PMIX_LOAD_KEY(iptr[n].key, kp2->key); rc = pmix_value_xfer(&iptr[n].value, kp2->value); if (PMIX_SUCCESS != rc) { @@ -2356,21 +2519,16 @@ } return PMIX_SUCCESS; - } else { - /* assume they want it from this node */ - hostname = pmix_globals.hostname; - goto scan; } - return PMIX_ERR_DATA_VALUE_NOT_FOUND; + /* assume they want it from this node */ + hostname = pmix_globals.hostname; } - scan: /* scan the list of nodes to find the matching entry */ nd = NULL; PMIX_LIST_FOREACH(ndptr, tgt, pmix_nodeinfo_t) { if (NULL != hostname) { - nds = strlen(hostname) < strlen(ndptr->hostname) ? strlen(hostname) : strlen(ndptr->hostname); - if (0 == strncmp(ndptr->hostname, hostname, nds)) { + if (check_nodename(ndptr, hostname)) { nd = ndptr; break; } @@ -2380,6 +2538,10 @@ } } if (NULL == nd) { + if (!found) { + /* they didn't specify, so it is optional */ + return PMIX_ERR_DATA_VALUE_NOT_FOUND; + } return PMIX_ERR_NOT_FOUND; } @@ -2415,6 +2577,9 @@ ++n; } PMIX_LIST_FOREACH(kp2, &nd->info, pmix_kval_t) { + pmix_output_verbose(12, pmix_gds_base_framework.framework_output, + "%s gds:hash:fetch_nodearray adding key %s", + PMIX_NAME_PRINT(&pmix_globals.myid), kp2->key); PMIX_LOAD_KEY(iptr[n].key, kp2->key); rc = pmix_value_xfer(&iptr[n].value, kp2->value); if (PMIX_SUCCESS != rc) { @@ -2435,6 +2600,9 @@ rc = PMIX_ERR_NOT_FOUND; PMIX_LIST_FOREACH(kp2, &nd->info, pmix_kval_t) { if (PMIX_CHECK_KEY(kp2, key)) { + pmix_output_verbose(12, pmix_gds_base_framework.framework_output, + "%s gds:hash:fetch_nodearray adding key %s", + PMIX_NAME_PRINT(&pmix_globals.myid), kp2->key); /* since they only asked for one key, return just that value */ kv = PMIX_NEW(pmix_kval_t); kv->key = strdup(kp2->key); @@ -2469,7 +2637,8 @@ pmix_data_array_t *darray; pmix_output_verbose(2, pmix_gds_base_framework.framework_output, - "FETCHING APP INFO"); + "FETCHING APP INFO WITH %d APPS", + (int)pmix_list_get_size(tgt)); /* scan for the appnum to identify * which app they are asking about */ @@ -2522,9 +2691,9 @@ pmix_list_append(kvs, &kv->super); } return PMIX_SUCCESS; - } - return PMIX_ERR_DATA_VALUE_NOT_FOUND; + /* assume they are asking for our app */ + appnum = pmix_globals.appnum; } /* scan the list of apps to find the matching entry */ @@ -2721,6 +2890,15 @@ } } + /* check for node/app keys in the absence of corresponding qualifier */ + if (NULL != key) { + if (pmix_check_node_info(key)) { + nodeinfo = true; + } else if (pmix_check_app_info(key)) { + appinfo = true; + } + } + /* find the hash table for this nspace */ trk = get_tracker(proc->nspace, false); if (NULL == trk) { @@ -2797,7 +2975,9 @@ if (NULL == key) { /* and need to add all job info just in case that was * passed via a different GDS component */ - dohash(&trk->internal, NULL, PMIX_RANK_WILDCARD, false, kvs); + rc = dohash(&trk->internal, NULL, PMIX_RANK_WILDCARD, false, kvs); + } else { + rc = PMIX_ERR_NOT_FOUND; } } else { rc = dohash(ht, key, proc->rank, false, kvs); @@ -2841,9 +3021,8 @@ return PMIX_SUCCESS; } -static pmix_status_t nspace_add(const char *nspace, - pmix_info_t info[], - size_t ninfo) +static pmix_status_t nspace_add(const char *nspace, uint32_t nlocalprocs, + pmix_info_t info[], size_t ninfo) { /* we don't need to do anything here */ return PMIX_SUCCESS; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/hash/gds_hash_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/hash/gds_hash_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/hash/gds_hash_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/hash/gds_hash_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -26,8 +26,8 @@ * entire components just to query their version and parameters. */ -#include -#include "pmix_common.h" +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/mca/gds/gds.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/hash/gds_hash.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/hash/gds_hash.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/hash/gds_hash.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/hash/gds_hash.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * * $COPYRIGHT$ * @@ -11,7 +11,7 @@ #ifndef PMIX_GDS_HASH_H #define PMIX_GDS_HASH_H -#include +#include "src/include/pmix_config.h" #include "src/mca/gds/gds.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/hash/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/hash/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/hash/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/hash/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -129,7 +129,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -159,6 +158,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -169,7 +169,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -382,6 +381,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -445,6 +451,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -467,6 +480,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -485,6 +500,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -493,9 +509,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -509,6 +525,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -554,6 +571,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -566,10 +587,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/gds/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/gds/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -153,7 +153,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -183,6 +182,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -193,7 +193,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -389,6 +388,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -452,6 +458,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -474,6 +487,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -492,6 +507,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -500,9 +516,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -516,6 +532,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -561,6 +578,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -573,10 +594,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/mca.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/mca.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/mca.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/mca.h 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2008-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -29,7 +29,7 @@ #ifndef PMIX_MCA_H #define PMIX_MCA_H -#include +#include "src/include/pmix_config.h" /** * Common type for all MCA modules. diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/base/base.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/base/base.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/base/base.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/base/base.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * + * Copyright (c) 2019 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ +#ifndef PMIX_COMPRESS_BASE_H +#define PMIX_COMPRESS_BASE_H + +#include "pmix_config.h" +#include "src/mca/pcompress/pcompress.h" +#include "src/util/pmix_environ.h" + +#include "src/mca/base/base.h" + +/* + * Global functions for MCA overall COMPRESS + */ + +#if defined(c_plusplus) || defined(__cplusplus) +extern "C" { +#endif + +/* define a macro for quickly checking if a string exceeds the + * compression limit */ +#define PMIX_STRING_SIZE_CHECK(s) \ + (PMIX_STRING == (s)->type && NULL != (s)->data.string && pmix_compress_base.compress_limit < strlen((s)->data.string)) + +#define PMIX_VALUE_COMPRESSED_STRING_UNPACK(s) \ + do { \ + char *tmp; \ + /* if this is a compressed string, then uncompress it */ \ + if (PMIX_COMPRESSED_STRING == (s)->type) { \ + pmix_compress.decompress_string(&tmp, (uint8_t*)(s)->data.bo.bytes, \ + (s)->data.bo.size); \ + if (NULL == tmp) { \ + PMIX_ERROR_LOG(PMIX_ERR_NOMEM); \ + rc = PMIX_ERR_NOMEM; \ + PMIX_VALUE_RELEASE(s); \ + val = NULL; \ + } else { \ + PMIX_VALUE_DESTRUCT(s); \ + (s)->data.string = tmp; \ + (s)->type = PMIX_STRING; \ + } \ + } \ + } while(0) + +typedef struct { + size_t compress_limit; + bool selected; +} pmix_compress_base_t; + +PMIX_EXPORT extern pmix_compress_base_t pmix_compress_base; + + /** + * Select an available component. + * + * @retval OPAL_SUCCESS Upon Success + * @retval OPAL_NOT_FOUND If no component can be selected + * @retval OPAL_ERROR Upon other failure + * + */ + PMIX_EXPORT int pmix_compress_base_select(void); + + /** + * Globals + */ + PMIX_EXPORT extern pmix_mca_base_framework_t pmix_pcompress_base_framework; + PMIX_EXPORT extern pmix_compress_base_module_t pmix_compress; + + +#if defined(c_plusplus) || defined(__cplusplus) +} +#endif + +#endif /* PMIX_COMPRESS_BASE_H */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/base/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/base/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/base/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/base/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,19 @@ +# +# Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2019 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +headers += \ + base/base.h + +libmca_pcompress_la_SOURCES += \ + base/pcompress_base_frame.c \ + base/pcompress_base_select.c diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/base/pcompress_base_frame.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/base/pcompress_base_frame.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/base/pcompress_base_frame.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/base/pcompress_base_frame.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,97 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2010 The Trustees of Indiana University. + * All rights reserved. + * Copyright (c) 2011-2013 Los Alamos National Security, LLC. + * All rights reserved. + * Copyright (c) 2015 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2019 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "pmix_config.h" + +#include "src/mca/base/base.h" +#include "src/mca/pcompress/base/base.h" + +#include "src/mca/pcompress/base/static-components.h" + +/* + * Globals + */ +static bool compress_block(char *instring, + uint8_t **outbytes, + size_t *nbytes) +{ + (void)instring; + (void)outbytes; + (void)nbytes; + return false; +} + +static bool decompress_block(char **outstring, + uint8_t *inbytes, size_t len) +{ + (void)outstring; + (void)inbytes; + (void)len; + return false; +} + +pmix_compress_base_module_t pmix_compress = { + NULL, /* init */ + NULL, /* finalize */ + NULL, /* compress */ + NULL, /* compress_nb */ + NULL, /* decompress */ + NULL, /* decompress_nb */ + compress_block, + decompress_block +}; +pmix_compress_base_t pmix_compress_base = {0}; + +pmix_compress_base_component_t pmix_compress_base_selected_component = {{0}}; + +static int pmix_compress_base_register(pmix_mca_base_register_flag_t flags) +{ + (void)flags; + pmix_compress_base.compress_limit = 4096; + (void) pmix_mca_base_var_register("pmix", "compress", "base", "limit", + "Threshold beyond which data will be compressed", + PMIX_MCA_BASE_VAR_TYPE_SIZE_T, NULL, 0, 0, PMIX_INFO_LVL_3, + PMIX_MCA_BASE_VAR_SCOPE_READONLY, &pmix_compress_base.compress_limit); + + return PMIX_SUCCESS; +} + +/** + * Function for finding and opening either all MCA components, + * or the one that was specifically requested via a MCA parameter. + */ +static int pmix_compress_base_open(pmix_mca_base_open_flag_t flags) +{ + /* Open up all available components */ + return pmix_mca_base_framework_components_open(&pmix_pcompress_base_framework, flags); +} + +static int pmix_compress_base_close(void) +{ + pmix_compress_base.selected = false; + /* Call the component's finalize routine */ + if( NULL != pmix_compress.finalize ) { + pmix_compress.finalize(); + } + + /* Close all available modules that are open */ + return pmix_mca_base_framework_components_close (&pmix_pcompress_base_framework, NULL); +} + +PMIX_MCA_BASE_FRAMEWORK_DECLARE(pmix, pcompress, "PCOMPRESS MCA", + pmix_compress_base_register, pmix_compress_base_open, + pmix_compress_base_close, mca_pcompress_base_static_components, 0); + diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/base/pcompress_base_select.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/base/pcompress_base_select.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/base/pcompress_base_select.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/base/pcompress_base_select.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,63 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2010 The Trustees of Indiana University. + * All rights reserved. + * Copyright (c) 2015 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * + * Copyright (c) 2015 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2019-2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "pmix_config.h" + +#ifdef HAVE_UNISTD_H +#include "unistd.h" +#endif + +#include "include/pmix_common.h" +#include "src/util/output.h" +#include "src/mca/mca.h" +#include "src/mca/base/base.h" +#include "src/mca/pcompress/base/base.h" + +int pmix_compress_base_select(void) +{ + int ret = PMIX_SUCCESS; + pmix_compress_base_component_t *best_component = NULL; + pmix_compress_base_module_t *best_module = NULL; + + if (pmix_compress_base.selected) { + /* ensure we don't do this twice */ + return PMIX_SUCCESS; + } + pmix_compress_base.selected = true; + /* + * Select the best component + */ + if( PMIX_SUCCESS != pmix_mca_base_select("pcompress", pmix_pcompress_base_framework.framework_output, + &pmix_pcompress_base_framework.framework_components, + (pmix_mca_base_module_t **) &best_module, + (pmix_mca_base_component_t **) &best_component, NULL) ) { + /* This will only happen if no component was selected, + * in which case we use the default one */ + goto cleanup; + } + + /* Initialize the winner */ + if (NULL != best_module) { + if (PMIX_SUCCESS != (ret = best_module->init()) ) { + goto cleanup; + } + pmix_compress = *best_module; + } + + cleanup: + return ret; +} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,37 @@ +# +# Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2019 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# main library setup +noinst_LTLIBRARIES = libmca_pcompress.la +libmca_pcompress_la_SOURCES = + +# local files +headers = pcompress.h +libmca_pcompress_la_SOURCES += $(headers) + +# Ensure that the man pages are rebuilt if the pmix_config.h file +# changes; a "good enough" way to know if configure was run again (and +# therefore the release date or version may have changed) +$(nodist_man_MANS): $(top_builddir)/pmix/include/pmix_config.h + +# Conditionally install the header files +if WANT_INSTALL_HEADERS +pmixdir = $(pmixincludedir)/$(subdir) +nobase_pmix_HEADERS = $(headers) +endif + +include base/Makefile.am + +distclean-local: + rm -f base/static-components.h + rm -f $(nodist_man_MANS) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,955 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# +# Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2019 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# +# Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2019 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = src/mca/pcompress +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/pmix.m4 \ + $(top_srcdir)/config/pmix_check_attributes.m4 \ + $(top_srcdir)/config/pmix_check_broken_qsort.m4 \ + $(top_srcdir)/config/pmix_check_compiler_version.m4 \ + $(top_srcdir)/config/pmix_check_icc.m4 \ + $(top_srcdir)/config/pmix_check_lock.m4 \ + $(top_srcdir)/config/pmix_check_os_flavors.m4 \ + $(top_srcdir)/config/pmix_check_package.m4 \ + $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ + $(top_srcdir)/config/pmix_check_vendor.m4 \ + $(top_srcdir)/config/pmix_check_visibility.m4 \ + $(top_srcdir)/config/pmix_check_withdir.m4 \ + $(top_srcdir)/config/pmix_config_asm.m4 \ + $(top_srcdir)/config/pmix_config_pthreads.m4 \ + $(top_srcdir)/config/pmix_config_subdir.m4 \ + $(top_srcdir)/config/pmix_config_subdir_args.m4 \ + $(top_srcdir)/config/pmix_config_threads.m4 \ + $(top_srcdir)/config/pmix_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/pmix_functions.m4 \ + $(top_srcdir)/config/pmix_load_platform.m4 \ + $(top_srcdir)/config/pmix_mca.m4 \ + $(top_srcdir)/config/pmix_search_libs.m4 \ + $(top_srcdir)/config/pmix_set_mca_prefix.m4 \ + $(top_srcdir)/config/pmix_setup_cc.m4 \ + $(top_srcdir)/config/pmix_setup_cli.m4 \ + $(top_srcdir)/config/pmix_setup_hwloc.m4 \ + $(top_srcdir)/config/pmix_setup_libev.m4 \ + $(top_srcdir)/config/pmix_setup_libevent.m4 \ + $(top_srcdir)/config/pmix_setup_zlib.m4 \ + $(top_srcdir)/config/pmix_summary.m4 \ + $(top_srcdir)/config/pmix_try_assemble.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/src/mca/pdl/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/configure.m4 \ + $(top_srcdir)/src/mca/common/dstore/configure.m4 \ + $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ + $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ + $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ + $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ + $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/src/mca/pif/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pif/linux_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pif/posix_ipv4/configure.m4 \ + $(top_srcdir)/src/mca/pif/solaris_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ + $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ + $(top_srcdir)/src/mca/psec/munge/configure.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__nobase_pmix_HEADERS_DIST) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/pmix_config.h \ + $(top_builddir)/include/pmix_common.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libmca_pcompress_la_LIBADD = +am__objects_1 = +am__dirstamp = $(am__leading_dot)dirstamp +am_libmca_pcompress_la_OBJECTS = $(am__objects_1) \ + base/pcompress_base_frame.lo base/pcompress_base_select.lo +libmca_pcompress_la_OBJECTS = $(am_libmca_pcompress_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/include -I$(top_builddir)/include +depcomp = $(SHELL) $(top_srcdir)/./config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libmca_pcompress_la_SOURCES) +DIST_SOURCES = $(libmca_pcompress_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__nobase_pmix_HEADERS_DIST = pcompress.h base/base.h +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pmixdir)" +HEADERS = $(nobase_pmix_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/base/Makefile.am \ + $(top_srcdir)/./config/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CC_FOR_BUILD = @CC_FOR_BUILD@ +CFLAGS = @CFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_pmix_FRAMEWORKS = @MCA_pmix_FRAMEWORKS@ +MCA_pmix_FRAMEWORKS_SUBDIRS = @MCA_pmix_FRAMEWORKS_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_pmix_FRAMEWORK_LIBS = @MCA_pmix_FRAMEWORK_LIBS@ +MCA_pmix_bfrops_ALL_COMPONENTS = @MCA_pmix_bfrops_ALL_COMPONENTS@ +MCA_pmix_bfrops_ALL_SUBDIRS = @MCA_pmix_bfrops_ALL_SUBDIRS@ +MCA_pmix_bfrops_DSO_COMPONENTS = @MCA_pmix_bfrops_DSO_COMPONENTS@ +MCA_pmix_bfrops_DSO_SUBDIRS = @MCA_pmix_bfrops_DSO_SUBDIRS@ +MCA_pmix_bfrops_STATIC_COMPONENTS = @MCA_pmix_bfrops_STATIC_COMPONENTS@ +MCA_pmix_bfrops_STATIC_LTLIBS = @MCA_pmix_bfrops_STATIC_LTLIBS@ +MCA_pmix_bfrops_STATIC_SUBDIRS = @MCA_pmix_bfrops_STATIC_SUBDIRS@ +MCA_pmix_common_ALL_COMPONENTS = @MCA_pmix_common_ALL_COMPONENTS@ +MCA_pmix_common_ALL_SUBDIRS = @MCA_pmix_common_ALL_SUBDIRS@ +MCA_pmix_common_DSO_COMPONENTS = @MCA_pmix_common_DSO_COMPONENTS@ +MCA_pmix_common_DSO_SUBDIRS = @MCA_pmix_common_DSO_SUBDIRS@ +MCA_pmix_common_STATIC_COMPONENTS = @MCA_pmix_common_STATIC_COMPONENTS@ +MCA_pmix_common_STATIC_LTLIBS = @MCA_pmix_common_STATIC_LTLIBS@ +MCA_pmix_common_STATIC_SUBDIRS = @MCA_pmix_common_STATIC_SUBDIRS@ +MCA_pmix_gds_ALL_COMPONENTS = @MCA_pmix_gds_ALL_COMPONENTS@ +MCA_pmix_gds_ALL_SUBDIRS = @MCA_pmix_gds_ALL_SUBDIRS@ +MCA_pmix_gds_DSO_COMPONENTS = @MCA_pmix_gds_DSO_COMPONENTS@ +MCA_pmix_gds_DSO_SUBDIRS = @MCA_pmix_gds_DSO_SUBDIRS@ +MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ +MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ +MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ +MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ +MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ +MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ +MCA_pmix_pdl_DSO_SUBDIRS = @MCA_pmix_pdl_DSO_SUBDIRS@ +MCA_pmix_pdl_STATIC_COMPONENTS = @MCA_pmix_pdl_STATIC_COMPONENTS@ +MCA_pmix_pdl_STATIC_LTLIBS = @MCA_pmix_pdl_STATIC_LTLIBS@ +MCA_pmix_pdl_STATIC_SUBDIRS = @MCA_pmix_pdl_STATIC_SUBDIRS@ +MCA_pmix_pif_ALL_COMPONENTS = @MCA_pmix_pif_ALL_COMPONENTS@ +MCA_pmix_pif_ALL_SUBDIRS = @MCA_pmix_pif_ALL_SUBDIRS@ +MCA_pmix_pif_DSO_COMPONENTS = @MCA_pmix_pif_DSO_COMPONENTS@ +MCA_pmix_pif_DSO_SUBDIRS = @MCA_pmix_pif_DSO_SUBDIRS@ +MCA_pmix_pif_STATIC_COMPONENTS = @MCA_pmix_pif_STATIC_COMPONENTS@ +MCA_pmix_pif_STATIC_LTLIBS = @MCA_pmix_pif_STATIC_LTLIBS@ +MCA_pmix_pif_STATIC_SUBDIRS = @MCA_pmix_pif_STATIC_SUBDIRS@ +MCA_pmix_pinstalldirs_ALL_COMPONENTS = @MCA_pmix_pinstalldirs_ALL_COMPONENTS@ +MCA_pmix_pinstalldirs_ALL_SUBDIRS = @MCA_pmix_pinstalldirs_ALL_SUBDIRS@ +MCA_pmix_pinstalldirs_DSO_COMPONENTS = @MCA_pmix_pinstalldirs_DSO_COMPONENTS@ +MCA_pmix_pinstalldirs_DSO_SUBDIRS = @MCA_pmix_pinstalldirs_DSO_SUBDIRS@ +MCA_pmix_pinstalldirs_STATIC_COMPONENTS = @MCA_pmix_pinstalldirs_STATIC_COMPONENTS@ +MCA_pmix_pinstalldirs_STATIC_LTLIBS = @MCA_pmix_pinstalldirs_STATIC_LTLIBS@ +MCA_pmix_pinstalldirs_STATIC_SUBDIRS = @MCA_pmix_pinstalldirs_STATIC_SUBDIRS@ +MCA_pmix_plog_ALL_COMPONENTS = @MCA_pmix_plog_ALL_COMPONENTS@ +MCA_pmix_plog_ALL_SUBDIRS = @MCA_pmix_plog_ALL_SUBDIRS@ +MCA_pmix_plog_DSO_COMPONENTS = @MCA_pmix_plog_DSO_COMPONENTS@ +MCA_pmix_plog_DSO_SUBDIRS = @MCA_pmix_plog_DSO_SUBDIRS@ +MCA_pmix_plog_STATIC_COMPONENTS = @MCA_pmix_plog_STATIC_COMPONENTS@ +MCA_pmix_plog_STATIC_LTLIBS = @MCA_pmix_plog_STATIC_LTLIBS@ +MCA_pmix_plog_STATIC_SUBDIRS = @MCA_pmix_plog_STATIC_SUBDIRS@ +MCA_pmix_pnet_ALL_COMPONENTS = @MCA_pmix_pnet_ALL_COMPONENTS@ +MCA_pmix_pnet_ALL_SUBDIRS = @MCA_pmix_pnet_ALL_SUBDIRS@ +MCA_pmix_pnet_DSO_COMPONENTS = @MCA_pmix_pnet_DSO_COMPONENTS@ +MCA_pmix_pnet_DSO_SUBDIRS = @MCA_pmix_pnet_DSO_SUBDIRS@ +MCA_pmix_pnet_STATIC_COMPONENTS = @MCA_pmix_pnet_STATIC_COMPONENTS@ +MCA_pmix_pnet_STATIC_LTLIBS = @MCA_pmix_pnet_STATIC_LTLIBS@ +MCA_pmix_pnet_STATIC_SUBDIRS = @MCA_pmix_pnet_STATIC_SUBDIRS@ +MCA_pmix_preg_ALL_COMPONENTS = @MCA_pmix_preg_ALL_COMPONENTS@ +MCA_pmix_preg_ALL_SUBDIRS = @MCA_pmix_preg_ALL_SUBDIRS@ +MCA_pmix_preg_DSO_COMPONENTS = @MCA_pmix_preg_DSO_COMPONENTS@ +MCA_pmix_preg_DSO_SUBDIRS = @MCA_pmix_preg_DSO_SUBDIRS@ +MCA_pmix_preg_STATIC_COMPONENTS = @MCA_pmix_preg_STATIC_COMPONENTS@ +MCA_pmix_preg_STATIC_LTLIBS = @MCA_pmix_preg_STATIC_LTLIBS@ +MCA_pmix_preg_STATIC_SUBDIRS = @MCA_pmix_preg_STATIC_SUBDIRS@ +MCA_pmix_psec_ALL_COMPONENTS = @MCA_pmix_psec_ALL_COMPONENTS@ +MCA_pmix_psec_ALL_SUBDIRS = @MCA_pmix_psec_ALL_SUBDIRS@ +MCA_pmix_psec_DSO_COMPONENTS = @MCA_pmix_psec_DSO_COMPONENTS@ +MCA_pmix_psec_DSO_SUBDIRS = @MCA_pmix_psec_DSO_SUBDIRS@ +MCA_pmix_psec_STATIC_COMPONENTS = @MCA_pmix_psec_STATIC_COMPONENTS@ +MCA_pmix_psec_STATIC_LTLIBS = @MCA_pmix_psec_STATIC_LTLIBS@ +MCA_pmix_psec_STATIC_SUBDIRS = @MCA_pmix_psec_STATIC_SUBDIRS@ +MCA_pmix_psensor_ALL_COMPONENTS = @MCA_pmix_psensor_ALL_COMPONENTS@ +MCA_pmix_psensor_ALL_SUBDIRS = @MCA_pmix_psensor_ALL_SUBDIRS@ +MCA_pmix_psensor_DSO_COMPONENTS = @MCA_pmix_psensor_DSO_COMPONENTS@ +MCA_pmix_psensor_DSO_SUBDIRS = @MCA_pmix_psensor_DSO_SUBDIRS@ +MCA_pmix_psensor_STATIC_COMPONENTS = @MCA_pmix_psensor_STATIC_COMPONENTS@ +MCA_pmix_psensor_STATIC_LTLIBS = @MCA_pmix_psensor_STATIC_LTLIBS@ +MCA_pmix_psensor_STATIC_SUBDIRS = @MCA_pmix_psensor_STATIC_SUBDIRS@ +MCA_pmix_pshmem_ALL_COMPONENTS = @MCA_pmix_pshmem_ALL_COMPONENTS@ +MCA_pmix_pshmem_ALL_SUBDIRS = @MCA_pmix_pshmem_ALL_SUBDIRS@ +MCA_pmix_pshmem_DSO_COMPONENTS = @MCA_pmix_pshmem_DSO_COMPONENTS@ +MCA_pmix_pshmem_DSO_SUBDIRS = @MCA_pmix_pshmem_DSO_SUBDIRS@ +MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ +MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ +MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ +MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ +MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ +MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ +MCA_pmix_ptl_DSO_SUBDIRS = @MCA_pmix_ptl_DSO_SUBDIRS@ +MCA_pmix_ptl_STATIC_COMPONENTS = @MCA_pmix_ptl_STATIC_COMPONENTS@ +MCA_pmix_ptl_STATIC_LTLIBS = @MCA_pmix_ptl_STATIC_LTLIBS@ +MCA_pmix_ptl_STATIC_SUBDIRS = @MCA_pmix_ptl_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ +PERL = @PERL@ +PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ +PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ +PMIX_ASM_SUPPORT_64BIT = @PMIX_ASM_SUPPORT_64BIT@ +PMIX_ASM_TEXT = @PMIX_ASM_TEXT@ +PMIX_ASM_TYPE = @PMIX_ASM_TYPE@ +PMIX_ASSEMBLY_ARCH = @PMIX_ASSEMBLY_ARCH@ +PMIX_ASSEMBLY_BUILTIN = @PMIX_ASSEMBLY_BUILTIN@ +PMIX_ASSEMBLY_FORMAT = @PMIX_ASSEMBLY_FORMAT@ +PMIX_AS_GLOBAL = @PMIX_AS_GLOBAL@ +PMIX_AS_LABEL_SUFFIX = @PMIX_AS_LABEL_SUFFIX@ +PMIX_BUILT_TEST_PREFIX = @PMIX_BUILT_TEST_PREFIX@ +PMIX_CC_ABSOLUTE = @PMIX_CC_ABSOLUTE@ +PMIX_COMPONENT_LIBRARY_PATHS = @PMIX_COMPONENT_LIBRARY_PATHS@ +PMIX_CONFIGURE_CLI = @PMIX_CONFIGURE_CLI@ +PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ +PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ +PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ +PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ +PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ +PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ +PMIX_EXTRA_LIB = @PMIX_EXTRA_LIB@ +PMIX_EXTRA_LTLIB = @PMIX_EXTRA_LTLIB@ +PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ +PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ +PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ +PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ +PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ +PMIX_REPO_REV = @PMIX_REPO_REV@ +PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ +PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ +PMIX_VERSION = @PMIX_VERSION@ +PMIX_top_builddir = @PMIX_top_builddir@ +PMIX_top_srcdir = @PMIX_top_srcdir@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_common_dstore_so_version = @libmca_common_dstore_so_version@ +libpmi2_so_version = @libpmi2_so_version@ +libpmi_so_version = @libpmi_so_version@ +libpmix_so_version = @libpmix_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ +pdfdir = @pdfdir@ +pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ +pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ +pmix_pdl_plibltdl_LDFLAGS = @pmix_pdl_plibltdl_LDFLAGS@ +pmix_pdl_plibltdl_LIBS = @pmix_pdl_plibltdl_LIBS@ +pmixdatadir = @pmixdatadir@ +pmixincludedir = @pmixincludedir@ +pmixlibdir = @pmixlibdir@ +pmixmajor = @pmixmajor@ +pmixminor = @pmixminor@ +pmixnumeric = @pmixnumeric@ +pmixrelease = @pmixrelease@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +psec_munge_CPPFLAGS = @psec_munge_CPPFLAGS@ +psec_munge_LDFLAGS = @psec_munge_LDFLAGS@ +psec_munge_LIBS = @psec_munge_LIBS@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# main library setup +noinst_LTLIBRARIES = libmca_pcompress.la +libmca_pcompress_la_SOURCES = $(headers) base/pcompress_base_frame.c \ + base/pcompress_base_select.c + +# local files +headers = pcompress.h base/base.h + +# Conditionally install the header files +@WANT_INSTALL_HEADERS_TRUE@pmixdir = $(pmixincludedir)/$(subdir) +@WANT_INSTALL_HEADERS_TRUE@nobase_pmix_HEADERS = $(headers) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/base/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/mca/pcompress/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/mca/pcompress/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(srcdir)/base/Makefile.am $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } +base/$(am__dirstamp): + @$(MKDIR_P) base + @: > base/$(am__dirstamp) +base/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) base/$(DEPDIR) + @: > base/$(DEPDIR)/$(am__dirstamp) +base/pcompress_base_frame.lo: base/$(am__dirstamp) \ + base/$(DEPDIR)/$(am__dirstamp) +base/pcompress_base_select.lo: base/$(am__dirstamp) \ + base/$(DEPDIR)/$(am__dirstamp) + +libmca_pcompress.la: $(libmca_pcompress_la_OBJECTS) $(libmca_pcompress_la_DEPENDENCIES) $(EXTRA_libmca_pcompress_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libmca_pcompress_la_OBJECTS) $(libmca_pcompress_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f base/*.$(OBJEXT) + -rm -f base/*.lo + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@base/$(DEPDIR)/pcompress_base_frame.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@base/$(DEPDIR)/pcompress_base_select.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + -rm -rf base/.libs base/_libs +install-nobase_pmixHEADERS: $(nobase_pmix_HEADERS) + @$(NORMAL_INSTALL) + @list='$(nobase_pmix_HEADERS)'; test -n "$(pmixdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pmixdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pmixdir)" || exit 1; \ + fi; \ + $(am__nobase_list) | while read dir files; do \ + xfiles=; for file in $$files; do \ + if test -f "$$file"; then xfiles="$$xfiles $$file"; \ + else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \ + test -z "$$xfiles" || { \ + test "x$$dir" = x. || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(pmixdir)/$$dir'"; \ + $(MKDIR_P) "$(DESTDIR)$(pmixdir)/$$dir"; }; \ + echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(pmixdir)/$$dir'"; \ + $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(pmixdir)/$$dir" || exit $$?; }; \ + done + +uninstall-nobase_pmixHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(nobase_pmix_HEADERS)'; test -n "$(pmixdir)" || list=; \ + $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ + dir='$(DESTDIR)$(pmixdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pmixdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f base/$(DEPDIR)/$(am__dirstamp) + -rm -f base/$(am__dirstamp) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf base/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-local distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-nobase_pmixHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf base/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-nobase_pmixHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-local distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man \ + install-nobase_pmixHEADERS install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-nobase_pmixHEADERS + +.PRECIOUS: Makefile + + +# Ensure that the man pages are rebuilt if the pmix_config.h file +# changes; a "good enough" way to know if configure was run again (and +# therefore the release date or version may have changed) +$(nodist_man_MANS): $(top_builddir)/pmix/include/pmix_config.h + +distclean-local: + rm -f base/static-components.h + rm -f $(nodist_man_MANS) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/pcompress.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/pcompress.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/pcompress.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/pcompress.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,155 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2015 Los Alamos National Security, LLC. All rights + * reserved. + * + * Copyright (c) 2019 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ +/** + * @file + * + * Compression Framework + * + * General Description: + * + * The PMIX Compress framework has been created to provide an abstract interface + * to the compression agent library on the host machine. This fromework is useful + * when distributing files that can be compressed before sending to dimish the + * load on the network. + * + */ + +#ifndef PMIX_MCA_COMPRESS_H +#define PMIX_MCA_COMPRESS_H + +#include "pmix_config.h" +#include "src/mca/mca.h" +#include "src/mca/base/base.h" +#include "src/class/pmix_object.h" + +#if defined(c_plusplus) || defined(__cplusplus) +extern "C" { +#endif + +/** + * Module initialization function. + * Returns PMIX_SUCCESS + */ +typedef int (*pmix_compress_base_module_init_fn_t) + (void); + +/** + * Module finalization function. + * Returns PMIX_SUCCESS + */ +typedef int (*pmix_compress_base_module_finalize_fn_t) + (void); + +/** + * Compress the file provided + * + * Arguments: + * fname = Filename to compress + * cname = Compressed filename + * postfix = postfix added to filename to create compressed filename + * Returns: + * PMIX_SUCCESS on success, ow PMIX_ERROR + */ +typedef int (*pmix_compress_base_module_compress_fn_t) + (char * fname, char **cname, char **postfix); + +typedef int (*pmix_compress_base_module_compress_nb_fn_t) + (char * fname, char **cname, char **postfix, pid_t *child_pid); + +/** + * Decompress the file provided + * + * Arguments: + * fname = Filename to compress + * cname = Compressed filename + * Returns: + * PMIX_SUCCESS on success, ow PMIX_ERROR + */ +typedef int (*pmix_compress_base_module_decompress_fn_t) + (char * cname, char **fname); +typedef int (*pmix_compress_base_module_decompress_nb_fn_t) + (char * cname, char **fname, pid_t *child_pid); + +/** + * Compress a string + * + * Arguments: + * + */ +typedef bool (*pmix_compress_base_module_compress_string_fn_t)(char *instring, + uint8_t **outbytes, + size_t *nbytes); +typedef bool (*pmix_compress_base_module_decompress_string_fn_t)(char **outstring, + uint8_t *inbytes, size_t len); + + +/** + * Structure for COMPRESS components. + */ +struct pmix_compress_base_component_2_0_0_t { + /** PMIX_MCA base component */ + pmix_mca_base_component_t base_version; + /** PMIX_MCA base data */ + pmix_mca_base_component_data_t base_data; + + /** Verbosity Level */ + int verbose; + /** Output Handle for pmix_output */ + int output_handle; + /** Default Priority */ + int priority; +}; +typedef struct pmix_compress_base_component_2_0_0_t pmix_compress_base_component_2_0_0_t; +typedef struct pmix_compress_base_component_2_0_0_t pmix_compress_base_component_t; + +/** + * Structure for COMPRESS modules + */ +struct pmix_compress_base_module_1_0_0_t { + /** Initialization Function */ + pmix_compress_base_module_init_fn_t init; + /** Finalization Function */ + pmix_compress_base_module_finalize_fn_t finalize; + + /** Compress interface */ + pmix_compress_base_module_compress_fn_t compress; + pmix_compress_base_module_compress_nb_fn_t compress_nb; + + /** Decompress Interface */ + pmix_compress_base_module_decompress_fn_t decompress; + pmix_compress_base_module_decompress_nb_fn_t decompress_nb; + + /* COMPRESS STRING */ + pmix_compress_base_module_compress_string_fn_t compress_string; + pmix_compress_base_module_decompress_string_fn_t decompress_string; +}; +typedef struct pmix_compress_base_module_1_0_0_t pmix_compress_base_module_1_0_0_t; +typedef struct pmix_compress_base_module_1_0_0_t pmix_compress_base_module_t; + +PMIX_EXPORT extern pmix_compress_base_module_t pmix_compress; + +/** + * Macro for use in components that are of type COMPRESS + */ +#define PMIX_COMPRESS_BASE_VERSION_2_0_0 \ + PMIX_MCA_BASE_VERSION_1_0_0("pcompress", 2, 0, 0) + +#if defined(c_plusplus) || defined(__cplusplus) +} +#endif + +#endif /* PMIX_COMPRESS_H */ + diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/compress_zlib.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/compress_zlib.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/compress_zlib.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/compress_zlib.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,165 @@ +/* + * Copyright (c) 2004-2010 The Trustees of Indiana University. + * All rights reserved. + * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. + * + * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2015 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2018 Amazon.com, Inc. or its affiliates. All Rights reserved. + * Copyright (c) 2019-2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "pmix_config.h" + +#include +#include +#include +#include +#if HAVE_UNISTD_H +#include +#endif /* HAVE_UNISTD_H */ +#include + +#include "src/util/pmix_environ.h" +#include "src/util/output.h" +#include "src/util/argv.h" +#include "src/util/pmix_environ.h" +#include "src/util/printf.h" + +#include "include/pmix_common.h" +#include "src/util/basename.h" + +#include "src/mca/pcompress/base/base.h" + +#include "compress_zlib.h" + +int pmix_compress_zlib_module_init(void) +{ + return PMIX_SUCCESS; +} + +int pmix_compress_zlib_module_finalize(void) +{ + return PMIX_SUCCESS; +} + +bool pmix_compress_zlib_compress_block(char *instring, + uint8_t **outbytes, + size_t *nbytes) +{ + z_stream strm; + size_t len, outlen; + uint8_t *tmp, *ptr; + uint32_t inlen; + int rc; + + /* set default output */ + *outbytes = NULL; + + /* setup the stream */ + inlen = strlen(instring); + memset (&strm, 0, sizeof (strm)); + deflateInit (&strm, 9); + + /* get an upper bound on the required output storage */ + len = deflateBound(&strm, inlen); + /* if this isn't going to result in a smaller footprint, + * then don't do it */ + if (len >= inlen) { + (void)deflateEnd(&strm); + return false; + } + + if (NULL == (tmp = (uint8_t*)malloc(len))) { + (void)deflateEnd(&strm); + return false; + } + strm.next_in = (uint8_t*)instring; + strm.avail_in = strlen(instring); + + /* allocating the upper bound guarantees zlib will + * always successfully compress into the available space */ + strm.avail_out = len; + strm.next_out = tmp; + + rc = deflate (&strm, Z_FINISH); + (void)deflateEnd (&strm); + if (Z_OK != rc && Z_STREAM_END != rc) { + free(tmp); + return false; + } + + /* allocate 4 bytes beyond the size reqd by zlib so we + * can pass the size of the uncompressed string to the + * decompress side */ + outlen = len - strm.avail_out + sizeof(uint32_t); + ptr = (uint8_t*)malloc(outlen); + if (NULL == ptr) { + free(tmp); + return false; + } + *outbytes = ptr; + *nbytes = outlen; + + /* fold the uncompressed length into the buffer */ + memcpy(ptr, &inlen, sizeof(uint32_t)); + ptr += sizeof(uint32_t); + /* bring over the compressed data */ + memcpy(ptr, tmp, outlen-sizeof(uint32_t)); + free(tmp); + pmix_output_verbose(2, pmix_pcompress_base_framework.framework_output, + "COMPRESS INPUT STRING OF LEN %d OUTPUT SIZE %lu", + inlen, outlen-sizeof(uint32_t)); + return true; // we did the compression +} + +bool pmix_compress_zlib_uncompress_block(char **outstring, + uint8_t *inbytes, size_t len) +{ + uint8_t *dest; + int32_t len2; + z_stream strm; + int rc; + + /* set the default error answer */ + *outstring = NULL; + + /* the first 4 bytes contains the uncompressed size */ + memcpy(&len2, inbytes, sizeof(uint32_t)); + + pmix_output_verbose(2, pmix_pcompress_base_framework.framework_output, + "DECOMPRESSING INPUT OF LEN %lu OUTPUT %d", len, len2); + + /* setting destination to the fully decompressed size, +1 to + * hold the NULL terminator */ + dest = (uint8_t*)malloc(len2+1); + if (NULL == dest) { + return false; + } + memset(dest, 0, len2+1); + + memset (&strm, 0, sizeof (strm)); + if (Z_OK != inflateInit(&strm)) { + free(dest); + return false; + } + strm.avail_in = len; + strm.next_in = (uint8_t*)(inbytes + sizeof(uint32_t)); + strm.avail_out = len2; + strm.next_out = (uint8_t*)dest; + + rc = inflate (&strm, Z_FINISH); + inflateEnd (&strm); + /* ensure this is NULL terminated! */ + dest[len2] = '\0'; + *outstring = (char*)dest; + pmix_output_verbose(2, pmix_pcompress_base_framework.framework_output, + "\tFINAL LEN: %lu CODE: %d", strlen(*outstring), rc); + return true; +} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/compress_zlib_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/compress_zlib_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/compress_zlib_component.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/compress_zlib_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,88 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2010 The Trustees of Indiana University. + * All rights reserved. + * Copyright (c) 2015 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2019-2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "pmix_config.h" + +#include "include/pmix_common.h" +#include "src/mca/pcompress/base/base.h" +#include "compress_zlib.h" + +/* + * Public string for version number + */ +const char *pmix_compress_zlib_component_version_string = +"PMIX COMPRESS zlib MCA component version " PMIX_VERSION; + +/* + * Local functionality + */ +static int compress_zlib_open(void); +static int compress_zlib_close(void); +static int compress_zlib_query(pmix_mca_base_module_t **module, int *priority); + +/* + * Instantiate the public struct with all of our public information + * and pointer to our public functions in it + */ +PMIX_EXPORT pmix_mca_base_component_t mca_pcompress_zlib_component = { + /* Handle the general mca_component_t struct containing + * meta information about the component zlib + */ + PMIX_COMPRESS_BASE_VERSION_2_0_0, + + /* Component name and version */ + .pmix_mca_component_name = "zlib", + PMIX_MCA_BASE_MAKE_VERSION(component, PMIX_MAJOR_VERSION, PMIX_MINOR_VERSION, + PMIX_RELEASE_VERSION), + + /* Component open and close functions */ + .pmix_mca_open_component = compress_zlib_open, + .pmix_mca_close_component = compress_zlib_close, + .pmix_mca_query_component = compress_zlib_query +}; + +/* + * Zlib module + */ +static pmix_compress_base_module_t loc_module = { + /** Initialization Function */ + .init = pmix_compress_zlib_module_init, + /** Finalization Function */ + .finalize = pmix_compress_zlib_module_finalize, + + /** Compress Function */ + .compress_string = pmix_compress_zlib_compress_block, + + /** Decompress Function */ + .decompress_string = pmix_compress_zlib_uncompress_block, +}; + +static int compress_zlib_open(void) +{ + return PMIX_SUCCESS; +} + +static int compress_zlib_close(void) +{ + return PMIX_SUCCESS; +} + +static int compress_zlib_query(pmix_mca_base_module_t **module, int *priority) +{ + *module = (pmix_mca_base_module_t *)&loc_module; + *priority = 50; + + return PMIX_SUCCESS; +} + diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/compress_zlib.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/compress_zlib.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/compress_zlib.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/compress_zlib.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2004-2010 The Trustees of Indiana University. + * All rights reserved. + * Copyright (c) 2019 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +/** + * @file + * + * ZLIB COMPRESS component + * + * Uses the zlib library + */ + +#ifndef MCA_COMPRESS_ZLIB_EXPORT_H +#define MCA_COMPRESS_ZLIB_EXPORT_H + +#include "pmix_config.h" + +#include "src/util/output.h" + +#include "src/mca/mca.h" +#include "src/mca/pcompress/pcompress.h" + +#if defined(c_plusplus) || defined(__cplusplus) +extern "C" { +#endif + + extern pmix_mca_base_component_t mca_pcompress_zlib_component; + + /* + * Module functions + */ + int pmix_compress_zlib_module_init(void); + int pmix_compress_zlib_module_finalize(void); + + /* + * Actual funcationality + */ + bool pmix_compress_zlib_compress_block(char *instring, + uint8_t **outbytes, + size_t *nbytes); + bool pmix_compress_zlib_uncompress_block(char **outstring, + uint8_t *inbytes, size_t len); + +#if defined(c_plusplus) || defined(__cplusplus) +} +#endif + +#endif /* MCA_COMPRESS_ZLIB_EXPORT_H */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/configure.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/configure.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/configure.m4 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,107 @@ +# -*- shell-script -*- +# +# Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2013 Los Alamos National Security, LLC. All rights reserved. +# Copyright (c) 2013-2020 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# MCA_pcompress_zlib_CONFIG([action-if-can-compile], +# [action-if-cant-compile]) +# ------------------------------------------------ +AC_DEFUN([MCA_pmix_pcompress_zlib_CONFIG],[ + AC_CONFIG_FILES([src/mca/pcompress/zlib/Makefile]) + + PMIX_VAR_SCOPE_PUSH([pmix_zlib_dir pmix_zlib_libdir pmix_zlib_standard_lib_location pmix_zlib_standard_header_location pmix_check_zlib_save_CPPFLAGS pmix_check_zlib_save_LDFLAGS pmix_check_zlib_save_LIBS]) + + AC_ARG_WITH([zlib], + [AC_HELP_STRING([--with-zlib=DIR], + [Search for zlib headers and libraries in DIR ])]) + + AC_ARG_WITH([zlib-libdir], + [AC_HELP_STRING([--with-zlib-libdir=DIR], + [Search for zlib libraries in DIR ])]) + + pmix_check_zlib_save_CPPFLAGS="$CPPFLAGS" + pmix_check_zlib_save_LDFLAGS="$LDFLAGS" + pmix_check_zlib_save_LIBS="$LIBS" + + pmix_zlib_support=0 + + if test "$with_zlib" != "no"; then + AC_MSG_CHECKING([for zlib in]) + if test ! -z "$with_zlib" && test "$with_zlib" != "yes"; then + pmix_zlib_dir=$with_zlib + pmix_zlib_source=$with_zlib + pmix_zlib_standard_header_location=no + pmix_zlib_standard_lib_location=no + AS_IF([test -z "$with_zlib_libdir" || test "$with_zlib_libdir" = "yes"], + [if test -d $with_zlib/lib; then + pmix_zlib_libdir=$with_zlib/lib + elif test -d $with_zlib/lib64; then + pmix_zlib_libdir=$with_zlib/lib64 + else + AC_MSG_RESULT([Could not find $with_zlib/lib or $with_zlib/lib64]) + AC_MSG_ERROR([Can not continue]) + fi + AC_MSG_RESULT([$pmix_zlib_dir and $pmix_zlib_libdir])], + [AC_MSG_RESULT([$with_zlib_libdir])]) + else + AC_MSG_RESULT([(default search paths)]) + pmix_zlib_source=standard + pmix_zlib_standard_header_location=yes + pmix_zlib_standard_lib_location=yes + fi + AS_IF([test ! -z "$with_zlib_libdir" && test "$with_zlib_libdir" != "yes"], + [pmix_zlib_libdir="$with_zlib_libdir" + pmix_zlib_standard_lib_location=no]) + + PMIX_CHECK_PACKAGE([pcompress_zlib], + [zlib.h], + [z], + [deflate], + [-lz], + [$pmix_zlib_dir], + [$pmix_zlib_libdir], + [pmix_zlib_support=1], + [pmix_zlib_support=0]) + fi + + if test ! -z "$with_zlib" && test "$with_zlib" != "no" && test "$pmix_zlib_support" != "1"; then + AC_MSG_WARN([ZLIB SUPPORT REQUESTED AND NOT FOUND]) + AC_MSG_ERROR([CANNOT CONTINUE]) + fi + + AC_MSG_CHECKING([will zlib support be built]) + if test "$pmix_zlib_support" != "1"; then + AC_MSG_RESULT([no]) + else + AC_MSG_RESULT([yes]) + fi + + CPPFLAGS="$pmix_check_zlib_save_CPPFLAGS" + LDFLAGS="$pmix_check_zlib_save_LDFLAGS" + LIBS="$pmix_check_zlib_save_LIBS" + + AS_IF([test "$pmix_zlib_support" = "1"], + [$1 + pcompress_zlib_LIBS=-lz + PMIX_SUMMARY_ADD([[External Packages]],[[ZLIB]], [pmix_zlib], [yes ($pmix_zlib_source)])], + [$2]) + + # substitute in the things needed to build pcompress/zlib + AC_SUBST([pcompress_zlib_CFLAGS]) + AC_SUBST([pcompress_zlib_CPPFLAGS]) + AC_SUBST([pcompress_zlib_LDFLAGS]) + AC_SUBST([pcompress_zlib_LIBS]) + + PMIX_EMBEDDED_LIBS="$PMIX_EMBEDDED_LIBS $pcompress_zlib_LIBS" + PMIX_EMBEDDED_LDFLAGS="$PMIX_EMBEDDED_LDFLAGS $pcompress_zlib_LDFLAGS" + PMIX_EMBEDDED_CPPFLAGS="$PMIX_EMBEDDED_CPPFLAGS $pcompress_zlib_CPPFLAGS" + + PMIX_VAR_SCOPE_POP +])dnl diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,45 @@ +# +# Copyright (c) 2004-2010 The Trustees of Indiana University. +# All rights reserved. +# Copyright (c) 2014-2015 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2017 IBM Corporation. All rights reserved. +# Copyright (c) 2019 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +AM_CPPFLAGS = $(pcompress_zlib_CPPFLAGS) + +sources = \ + compress_zlib.h \ + compress_zlib_component.c \ + compress_zlib.c + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). + +if MCA_BUILD_pmix_pcompress_zlib_DSO +component_noinst = +component_install = mca_pcompress_zlib.la +else +component_noinst = libmca_pcompress_zlib.la +component_install = +endif + +mcacomponentdir = $(pmixlibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_pcompress_zlib_la_SOURCES = $(sources) +mca_pcompress_zlib_la_LDFLAGS = -module -avoid-version $(pcompress_zlib_LDFLAGS) +mca_pcompress_zlib_la_LIBADD = $(pcompress_zlib_LIBS) +if NEED_LIBPMIX +mca_pcompress_zlib_la_LIBADD += $(top_builddir)/src/libpmix.la +endif + +noinst_LTLIBRARIES = $(component_noinst) +libmca_pcompress_zlib_la_SOURCES = $(sources) +libmca_pcompress_zlib_la_LDFLAGS = -module -avoid-version $(pcompress_zlib_LDFLAGS) +libmca_pcompress_zlib_la_LIBADD = $(pcompress_zlib_LIBS) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pcompress/zlib/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,956 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# +# Copyright (c) 2004-2010 The Trustees of Indiana University. +# All rights reserved. +# Copyright (c) 2014-2015 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2017 IBM Corporation. All rights reserved. +# Copyright (c) 2019 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +@NEED_LIBPMIX_TRUE@am__append_1 = $(top_builddir)/src/libpmix.la +subdir = src/mca/pcompress/zlib +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/pmix.m4 \ + $(top_srcdir)/config/pmix_check_attributes.m4 \ + $(top_srcdir)/config/pmix_check_broken_qsort.m4 \ + $(top_srcdir)/config/pmix_check_compiler_version.m4 \ + $(top_srcdir)/config/pmix_check_icc.m4 \ + $(top_srcdir)/config/pmix_check_lock.m4 \ + $(top_srcdir)/config/pmix_check_os_flavors.m4 \ + $(top_srcdir)/config/pmix_check_package.m4 \ + $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ + $(top_srcdir)/config/pmix_check_vendor.m4 \ + $(top_srcdir)/config/pmix_check_visibility.m4 \ + $(top_srcdir)/config/pmix_check_withdir.m4 \ + $(top_srcdir)/config/pmix_config_asm.m4 \ + $(top_srcdir)/config/pmix_config_pthreads.m4 \ + $(top_srcdir)/config/pmix_config_subdir.m4 \ + $(top_srcdir)/config/pmix_config_subdir_args.m4 \ + $(top_srcdir)/config/pmix_config_threads.m4 \ + $(top_srcdir)/config/pmix_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/pmix_functions.m4 \ + $(top_srcdir)/config/pmix_load_platform.m4 \ + $(top_srcdir)/config/pmix_mca.m4 \ + $(top_srcdir)/config/pmix_search_libs.m4 \ + $(top_srcdir)/config/pmix_set_mca_prefix.m4 \ + $(top_srcdir)/config/pmix_setup_cc.m4 \ + $(top_srcdir)/config/pmix_setup_cli.m4 \ + $(top_srcdir)/config/pmix_setup_hwloc.m4 \ + $(top_srcdir)/config/pmix_setup_libev.m4 \ + $(top_srcdir)/config/pmix_setup_libevent.m4 \ + $(top_srcdir)/config/pmix_setup_zlib.m4 \ + $(top_srcdir)/config/pmix_summary.m4 \ + $(top_srcdir)/config/pmix_try_assemble.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/src/mca/pdl/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/configure.m4 \ + $(top_srcdir)/src/mca/common/dstore/configure.m4 \ + $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ + $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ + $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ + $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ + $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/src/mca/pif/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pif/linux_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pif/posix_ipv4/configure.m4 \ + $(top_srcdir)/src/mca/pif/solaris_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ + $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ + $(top_srcdir)/src/mca/psec/munge/configure.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/pmix_config.h \ + $(top_builddir)/include/pmix_common.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(mcacomponentdir)" +LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) +am__DEPENDENCIES_1 = +libmca_pcompress_zlib_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +am__objects_1 = compress_zlib_component.lo compress_zlib.lo +am_libmca_pcompress_zlib_la_OBJECTS = $(am__objects_1) +libmca_pcompress_zlib_la_OBJECTS = \ + $(am_libmca_pcompress_zlib_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libmca_pcompress_zlib_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libmca_pcompress_zlib_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_pmix_pcompress_zlib_DSO_FALSE@am_libmca_pcompress_zlib_la_rpath = +mca_pcompress_zlib_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__append_1) +am_mca_pcompress_zlib_la_OBJECTS = $(am__objects_1) +mca_pcompress_zlib_la_OBJECTS = $(am_mca_pcompress_zlib_la_OBJECTS) +mca_pcompress_zlib_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(mca_pcompress_zlib_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_pmix_pcompress_zlib_DSO_TRUE@am_mca_pcompress_zlib_la_rpath = \ +@MCA_BUILD_pmix_pcompress_zlib_DSO_TRUE@ -rpath \ +@MCA_BUILD_pmix_pcompress_zlib_DSO_TRUE@ $(mcacomponentdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/include -I$(top_builddir)/include +depcomp = $(SHELL) $(top_srcdir)/./config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libmca_pcompress_zlib_la_SOURCES) \ + $(mca_pcompress_zlib_la_SOURCES) +DIST_SOURCES = $(libmca_pcompress_zlib_la_SOURCES) \ + $(mca_pcompress_zlib_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/./config/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CC_FOR_BUILD = @CC_FOR_BUILD@ +CFLAGS = @CFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_pmix_FRAMEWORKS = @MCA_pmix_FRAMEWORKS@ +MCA_pmix_FRAMEWORKS_SUBDIRS = @MCA_pmix_FRAMEWORKS_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_pmix_FRAMEWORK_LIBS = @MCA_pmix_FRAMEWORK_LIBS@ +MCA_pmix_bfrops_ALL_COMPONENTS = @MCA_pmix_bfrops_ALL_COMPONENTS@ +MCA_pmix_bfrops_ALL_SUBDIRS = @MCA_pmix_bfrops_ALL_SUBDIRS@ +MCA_pmix_bfrops_DSO_COMPONENTS = @MCA_pmix_bfrops_DSO_COMPONENTS@ +MCA_pmix_bfrops_DSO_SUBDIRS = @MCA_pmix_bfrops_DSO_SUBDIRS@ +MCA_pmix_bfrops_STATIC_COMPONENTS = @MCA_pmix_bfrops_STATIC_COMPONENTS@ +MCA_pmix_bfrops_STATIC_LTLIBS = @MCA_pmix_bfrops_STATIC_LTLIBS@ +MCA_pmix_bfrops_STATIC_SUBDIRS = @MCA_pmix_bfrops_STATIC_SUBDIRS@ +MCA_pmix_common_ALL_COMPONENTS = @MCA_pmix_common_ALL_COMPONENTS@ +MCA_pmix_common_ALL_SUBDIRS = @MCA_pmix_common_ALL_SUBDIRS@ +MCA_pmix_common_DSO_COMPONENTS = @MCA_pmix_common_DSO_COMPONENTS@ +MCA_pmix_common_DSO_SUBDIRS = @MCA_pmix_common_DSO_SUBDIRS@ +MCA_pmix_common_STATIC_COMPONENTS = @MCA_pmix_common_STATIC_COMPONENTS@ +MCA_pmix_common_STATIC_LTLIBS = @MCA_pmix_common_STATIC_LTLIBS@ +MCA_pmix_common_STATIC_SUBDIRS = @MCA_pmix_common_STATIC_SUBDIRS@ +MCA_pmix_gds_ALL_COMPONENTS = @MCA_pmix_gds_ALL_COMPONENTS@ +MCA_pmix_gds_ALL_SUBDIRS = @MCA_pmix_gds_ALL_SUBDIRS@ +MCA_pmix_gds_DSO_COMPONENTS = @MCA_pmix_gds_DSO_COMPONENTS@ +MCA_pmix_gds_DSO_SUBDIRS = @MCA_pmix_gds_DSO_SUBDIRS@ +MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ +MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ +MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ +MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ +MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ +MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ +MCA_pmix_pdl_DSO_SUBDIRS = @MCA_pmix_pdl_DSO_SUBDIRS@ +MCA_pmix_pdl_STATIC_COMPONENTS = @MCA_pmix_pdl_STATIC_COMPONENTS@ +MCA_pmix_pdl_STATIC_LTLIBS = @MCA_pmix_pdl_STATIC_LTLIBS@ +MCA_pmix_pdl_STATIC_SUBDIRS = @MCA_pmix_pdl_STATIC_SUBDIRS@ +MCA_pmix_pif_ALL_COMPONENTS = @MCA_pmix_pif_ALL_COMPONENTS@ +MCA_pmix_pif_ALL_SUBDIRS = @MCA_pmix_pif_ALL_SUBDIRS@ +MCA_pmix_pif_DSO_COMPONENTS = @MCA_pmix_pif_DSO_COMPONENTS@ +MCA_pmix_pif_DSO_SUBDIRS = @MCA_pmix_pif_DSO_SUBDIRS@ +MCA_pmix_pif_STATIC_COMPONENTS = @MCA_pmix_pif_STATIC_COMPONENTS@ +MCA_pmix_pif_STATIC_LTLIBS = @MCA_pmix_pif_STATIC_LTLIBS@ +MCA_pmix_pif_STATIC_SUBDIRS = @MCA_pmix_pif_STATIC_SUBDIRS@ +MCA_pmix_pinstalldirs_ALL_COMPONENTS = @MCA_pmix_pinstalldirs_ALL_COMPONENTS@ +MCA_pmix_pinstalldirs_ALL_SUBDIRS = @MCA_pmix_pinstalldirs_ALL_SUBDIRS@ +MCA_pmix_pinstalldirs_DSO_COMPONENTS = @MCA_pmix_pinstalldirs_DSO_COMPONENTS@ +MCA_pmix_pinstalldirs_DSO_SUBDIRS = @MCA_pmix_pinstalldirs_DSO_SUBDIRS@ +MCA_pmix_pinstalldirs_STATIC_COMPONENTS = @MCA_pmix_pinstalldirs_STATIC_COMPONENTS@ +MCA_pmix_pinstalldirs_STATIC_LTLIBS = @MCA_pmix_pinstalldirs_STATIC_LTLIBS@ +MCA_pmix_pinstalldirs_STATIC_SUBDIRS = @MCA_pmix_pinstalldirs_STATIC_SUBDIRS@ +MCA_pmix_plog_ALL_COMPONENTS = @MCA_pmix_plog_ALL_COMPONENTS@ +MCA_pmix_plog_ALL_SUBDIRS = @MCA_pmix_plog_ALL_SUBDIRS@ +MCA_pmix_plog_DSO_COMPONENTS = @MCA_pmix_plog_DSO_COMPONENTS@ +MCA_pmix_plog_DSO_SUBDIRS = @MCA_pmix_plog_DSO_SUBDIRS@ +MCA_pmix_plog_STATIC_COMPONENTS = @MCA_pmix_plog_STATIC_COMPONENTS@ +MCA_pmix_plog_STATIC_LTLIBS = @MCA_pmix_plog_STATIC_LTLIBS@ +MCA_pmix_plog_STATIC_SUBDIRS = @MCA_pmix_plog_STATIC_SUBDIRS@ +MCA_pmix_pnet_ALL_COMPONENTS = @MCA_pmix_pnet_ALL_COMPONENTS@ +MCA_pmix_pnet_ALL_SUBDIRS = @MCA_pmix_pnet_ALL_SUBDIRS@ +MCA_pmix_pnet_DSO_COMPONENTS = @MCA_pmix_pnet_DSO_COMPONENTS@ +MCA_pmix_pnet_DSO_SUBDIRS = @MCA_pmix_pnet_DSO_SUBDIRS@ +MCA_pmix_pnet_STATIC_COMPONENTS = @MCA_pmix_pnet_STATIC_COMPONENTS@ +MCA_pmix_pnet_STATIC_LTLIBS = @MCA_pmix_pnet_STATIC_LTLIBS@ +MCA_pmix_pnet_STATIC_SUBDIRS = @MCA_pmix_pnet_STATIC_SUBDIRS@ +MCA_pmix_preg_ALL_COMPONENTS = @MCA_pmix_preg_ALL_COMPONENTS@ +MCA_pmix_preg_ALL_SUBDIRS = @MCA_pmix_preg_ALL_SUBDIRS@ +MCA_pmix_preg_DSO_COMPONENTS = @MCA_pmix_preg_DSO_COMPONENTS@ +MCA_pmix_preg_DSO_SUBDIRS = @MCA_pmix_preg_DSO_SUBDIRS@ +MCA_pmix_preg_STATIC_COMPONENTS = @MCA_pmix_preg_STATIC_COMPONENTS@ +MCA_pmix_preg_STATIC_LTLIBS = @MCA_pmix_preg_STATIC_LTLIBS@ +MCA_pmix_preg_STATIC_SUBDIRS = @MCA_pmix_preg_STATIC_SUBDIRS@ +MCA_pmix_psec_ALL_COMPONENTS = @MCA_pmix_psec_ALL_COMPONENTS@ +MCA_pmix_psec_ALL_SUBDIRS = @MCA_pmix_psec_ALL_SUBDIRS@ +MCA_pmix_psec_DSO_COMPONENTS = @MCA_pmix_psec_DSO_COMPONENTS@ +MCA_pmix_psec_DSO_SUBDIRS = @MCA_pmix_psec_DSO_SUBDIRS@ +MCA_pmix_psec_STATIC_COMPONENTS = @MCA_pmix_psec_STATIC_COMPONENTS@ +MCA_pmix_psec_STATIC_LTLIBS = @MCA_pmix_psec_STATIC_LTLIBS@ +MCA_pmix_psec_STATIC_SUBDIRS = @MCA_pmix_psec_STATIC_SUBDIRS@ +MCA_pmix_psensor_ALL_COMPONENTS = @MCA_pmix_psensor_ALL_COMPONENTS@ +MCA_pmix_psensor_ALL_SUBDIRS = @MCA_pmix_psensor_ALL_SUBDIRS@ +MCA_pmix_psensor_DSO_COMPONENTS = @MCA_pmix_psensor_DSO_COMPONENTS@ +MCA_pmix_psensor_DSO_SUBDIRS = @MCA_pmix_psensor_DSO_SUBDIRS@ +MCA_pmix_psensor_STATIC_COMPONENTS = @MCA_pmix_psensor_STATIC_COMPONENTS@ +MCA_pmix_psensor_STATIC_LTLIBS = @MCA_pmix_psensor_STATIC_LTLIBS@ +MCA_pmix_psensor_STATIC_SUBDIRS = @MCA_pmix_psensor_STATIC_SUBDIRS@ +MCA_pmix_pshmem_ALL_COMPONENTS = @MCA_pmix_pshmem_ALL_COMPONENTS@ +MCA_pmix_pshmem_ALL_SUBDIRS = @MCA_pmix_pshmem_ALL_SUBDIRS@ +MCA_pmix_pshmem_DSO_COMPONENTS = @MCA_pmix_pshmem_DSO_COMPONENTS@ +MCA_pmix_pshmem_DSO_SUBDIRS = @MCA_pmix_pshmem_DSO_SUBDIRS@ +MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ +MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ +MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ +MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ +MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ +MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ +MCA_pmix_ptl_DSO_SUBDIRS = @MCA_pmix_ptl_DSO_SUBDIRS@ +MCA_pmix_ptl_STATIC_COMPONENTS = @MCA_pmix_ptl_STATIC_COMPONENTS@ +MCA_pmix_ptl_STATIC_LTLIBS = @MCA_pmix_ptl_STATIC_LTLIBS@ +MCA_pmix_ptl_STATIC_SUBDIRS = @MCA_pmix_ptl_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ +PERL = @PERL@ +PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ +PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ +PMIX_ASM_SUPPORT_64BIT = @PMIX_ASM_SUPPORT_64BIT@ +PMIX_ASM_TEXT = @PMIX_ASM_TEXT@ +PMIX_ASM_TYPE = @PMIX_ASM_TYPE@ +PMIX_ASSEMBLY_ARCH = @PMIX_ASSEMBLY_ARCH@ +PMIX_ASSEMBLY_BUILTIN = @PMIX_ASSEMBLY_BUILTIN@ +PMIX_ASSEMBLY_FORMAT = @PMIX_ASSEMBLY_FORMAT@ +PMIX_AS_GLOBAL = @PMIX_AS_GLOBAL@ +PMIX_AS_LABEL_SUFFIX = @PMIX_AS_LABEL_SUFFIX@ +PMIX_BUILT_TEST_PREFIX = @PMIX_BUILT_TEST_PREFIX@ +PMIX_CC_ABSOLUTE = @PMIX_CC_ABSOLUTE@ +PMIX_COMPONENT_LIBRARY_PATHS = @PMIX_COMPONENT_LIBRARY_PATHS@ +PMIX_CONFIGURE_CLI = @PMIX_CONFIGURE_CLI@ +PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ +PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ +PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ +PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ +PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ +PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ +PMIX_EXTRA_LIB = @PMIX_EXTRA_LIB@ +PMIX_EXTRA_LTLIB = @PMIX_EXTRA_LTLIB@ +PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ +PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ +PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ +PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ +PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ +PMIX_REPO_REV = @PMIX_REPO_REV@ +PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ +PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ +PMIX_VERSION = @PMIX_VERSION@ +PMIX_top_builddir = @PMIX_top_builddir@ +PMIX_top_srcdir = @PMIX_top_srcdir@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_common_dstore_so_version = @libmca_common_dstore_so_version@ +libpmi2_so_version = @libpmi2_so_version@ +libpmi_so_version = @libpmi_so_version@ +libpmix_so_version = @libpmix_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ +pdfdir = @pdfdir@ +pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ +pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ +pmix_pdl_plibltdl_LDFLAGS = @pmix_pdl_plibltdl_LDFLAGS@ +pmix_pdl_plibltdl_LIBS = @pmix_pdl_plibltdl_LIBS@ +pmixdatadir = @pmixdatadir@ +pmixincludedir = @pmixincludedir@ +pmixlibdir = @pmixlibdir@ +pmixmajor = @pmixmajor@ +pmixminor = @pmixminor@ +pmixnumeric = @pmixnumeric@ +pmixrelease = @pmixrelease@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +psec_munge_CPPFLAGS = @psec_munge_CPPFLAGS@ +psec_munge_LDFLAGS = @psec_munge_LDFLAGS@ +psec_munge_LIBS = @psec_munge_LIBS@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AM_CPPFLAGS = $(pcompress_zlib_CPPFLAGS) +sources = \ + compress_zlib.h \ + compress_zlib_component.c \ + compress_zlib.c + +@MCA_BUILD_pmix_pcompress_zlib_DSO_FALSE@component_noinst = libmca_pcompress_zlib.la + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). +@MCA_BUILD_pmix_pcompress_zlib_DSO_TRUE@component_noinst = +@MCA_BUILD_pmix_pcompress_zlib_DSO_FALSE@component_install = +@MCA_BUILD_pmix_pcompress_zlib_DSO_TRUE@component_install = mca_pcompress_zlib.la +mcacomponentdir = $(pmixlibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_pcompress_zlib_la_SOURCES = $(sources) +mca_pcompress_zlib_la_LDFLAGS = -module -avoid-version $(pcompress_zlib_LDFLAGS) +mca_pcompress_zlib_la_LIBADD = $(pcompress_zlib_LIBS) $(am__append_1) +noinst_LTLIBRARIES = $(component_noinst) +libmca_pcompress_zlib_la_SOURCES = $(sources) +libmca_pcompress_zlib_la_LDFLAGS = -module -avoid-version $(pcompress_zlib_LDFLAGS) +libmca_pcompress_zlib_la_LIBADD = $(pcompress_zlib_LIBS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/mca/pcompress/zlib/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/mca/pcompress/zlib/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-mcacomponentLTLIBRARIES: $(mcacomponent_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(mcacomponentdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(mcacomponentdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(mcacomponentdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(mcacomponentdir)"; \ + } + +uninstall-mcacomponentLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(mcacomponentdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(mcacomponentdir)/$$f"; \ + done + +clean-mcacomponentLTLIBRARIES: + -test -z "$(mcacomponent_LTLIBRARIES)" || rm -f $(mcacomponent_LTLIBRARIES) + @list='$(mcacomponent_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libmca_pcompress_zlib.la: $(libmca_pcompress_zlib_la_OBJECTS) $(libmca_pcompress_zlib_la_DEPENDENCIES) $(EXTRA_libmca_pcompress_zlib_la_DEPENDENCIES) + $(AM_V_CCLD)$(libmca_pcompress_zlib_la_LINK) $(am_libmca_pcompress_zlib_la_rpath) $(libmca_pcompress_zlib_la_OBJECTS) $(libmca_pcompress_zlib_la_LIBADD) $(LIBS) + +mca_pcompress_zlib.la: $(mca_pcompress_zlib_la_OBJECTS) $(mca_pcompress_zlib_la_DEPENDENCIES) $(EXTRA_mca_pcompress_zlib_la_DEPENDENCIES) + $(AM_V_CCLD)$(mca_pcompress_zlib_la_LINK) $(am_mca_pcompress_zlib_la_rpath) $(mca_pcompress_zlib_la_OBJECTS) $(mca_pcompress_zlib_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compress_zlib.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compress_zlib_component.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(mcacomponentdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-mcacomponentLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-mcacomponentLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-mcacomponentLTLIBRARIES install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-mcacomponentLTLIBRARIES + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/base.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/base.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/base.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/base.h 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * University Research and Technology * Corporation. All rights reserved. * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -14,7 +14,7 @@ #ifndef PMIX_PDL_BASE_H #define PMIX_PDL_BASE_H -#include +#include "src/include/pmix_config.h" #include "src/mca/pdl/pdl.h" #include "src/util/pmix_environ.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_close.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_close.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_close.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_close.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2004-2010 The Trustees of Indiana University. * All rights reserved. * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -10,7 +10,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include "src/mca/mca.h" #include "src/mca/base/base.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_fns.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_fns.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_fns.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_fns.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2004-2010 The Trustees of Indiana University. * All rights reserved. * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -16,9 +16,9 @@ * component; see pdl.h for details). */ -#include +#include "src/include/pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/util/output.h" #include "src/mca/pdl/base/base.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_open.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_open.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_open.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_open.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,7 +4,7 @@ * Copyright (c) 2011-2013 Los Alamos National Security, LLC. * All rights reserved. * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -12,7 +12,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include "src/mca/pdl/base/base.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_select.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_select.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_select.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_select.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,6 +4,7 @@ * All rights reserved. * * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. @@ -13,13 +14,13 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_UNISTD_H #include "unistd.h" #endif -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/util/output.h" #include "src/mca/mca.h" #include "src/mca/base/base.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -127,7 +127,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -157,6 +156,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -167,7 +167,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -363,6 +362,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -426,6 +432,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -448,6 +461,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -466,6 +481,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -474,9 +490,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -490,6 +506,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -535,6 +552,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -547,10 +568,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdl.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdl.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdl.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdl.h 2022-05-29 09:51:40.000000000 +0000 @@ -3,6 +3,7 @@ * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -47,7 +48,7 @@ #ifndef PMIX_MCA_PDL_PDL_H #define PMIX_MCA_PDL_PDL_H -#include +#include "src/include/pmix_config.h" #include "src/mca/mca.h" #include "src/mca/base/base.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,7 +116,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -146,6 +145,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -156,7 +156,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -322,6 +321,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -385,6 +391,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -407,6 +420,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -425,6 +440,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -433,9 +449,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -449,6 +465,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -494,6 +511,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -506,10 +527,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/pdl_pdlopen_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/pdl_pdlopen_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/pdl_pdlopen_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/pdl_pdlopen_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,6 +3,7 @@ * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -10,9 +11,9 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/mca/pdl/pdl.h" #include "src/util/argv.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/pdl_pdlopen.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/pdl_pdlopen.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/pdl_pdlopen.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/pdl_pdlopen.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -11,7 +11,7 @@ #ifndef PMIX_PDL_PDLOPEN #define PMIX_PDL_PDLOPEN -#include +#include "src/include/pmix_config.h" #include "src/mca/pdl/pdl.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/pdl_pdlopen_module.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/pdl_pdlopen_module.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/pdl_pdlopen_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/pdl_pdlopen_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,7 +4,7 @@ * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -12,7 +12,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #include @@ -21,7 +21,7 @@ #include #include -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/mca/pdl/pdl.h" #include "src/util/argv.h" #include "src/util/error.h" @@ -88,11 +88,16 @@ /* Does the file exist? */ struct stat buf; + /* coverity[toctou] */ if (stat(name, &buf) < 0) { - free(name); if (NULL != err_msg) { - *err_msg = "File not found"; + rc = asprintf(err_msg, "File %s not found", name); + if (0 > rc) { + free(name); + return PMIX_ERR_NOMEM; + } } + free(name); continue; } @@ -200,6 +205,7 @@ /* Stat the file */ struct stat buf; + /* coverity[toctou] */ if (stat(abs_name, &buf) < 0) { free(abs_name); ret = PMIX_ERR_IN_ERRNO; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/plibltdl/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/plibltdl/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/plibltdl/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/plibltdl/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -117,7 +117,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -147,6 +146,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -157,7 +157,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -324,6 +323,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -387,6 +393,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -409,6 +422,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -427,6 +442,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -435,9 +451,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -451,6 +467,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -496,6 +513,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -508,10 +529,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/plibltdl/pdl_libltdl_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/plibltdl/pdl_libltdl_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/plibltdl/pdl_libltdl_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/plibltdl/pdl_libltdl_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Los Alamos National Security, Inc. All rights * reserved. - * Copyright (c) 2017 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -13,7 +13,7 @@ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include "pmix/mca/pdl/pdl.h" #include "pmix/mca/base/pmix_mca_base_var.h" #include "pmix/util/argv.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/plibltdl/pdl_libltdl_module.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/plibltdl/pdl_libltdl_module.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/plibltdl/pdl_libltdl_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pdl/plibltdl/pdl_libltdl_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. - * Copyright (c) 2017 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -66,7 +66,7 @@ } if (NULL != err_msg) { - *err_msg = (char*) lt_dlerror(); + *err_msg = strdup((char*) lt_dlerror()); } return PMIX_ERROR; } @@ -90,7 +90,7 @@ } if (NULL != err_msg) { - *err_msg = (char*) lt_dlerror(); + *err_msg = strdup((char*) lt_dlerror()); } return PMIX_ERROR; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/base/pif_base_components.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/base/pif_base_components.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/base/pif_base_components.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/base/pif_base_components.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* * Copyright (c) 2010-2013 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2015-2016 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015-2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -13,7 +13,7 @@ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/util/output.h" #include "src/mca/mca.h" #include "src/mca/pif/pif.h" @@ -40,6 +40,7 @@ static int pmix_pif_base_register (pmix_mca_base_register_flag_t flags) { + (void)flags; pmix_if_do_not_resolve = false; (void) pmix_mca_base_framework_var_register (&pmix_pif_base_framework, "do_not_resolve", "If nonzero, do not attempt to resolve interfaces", diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv4/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv4/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv4/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv4/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -115,7 +115,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -145,6 +144,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -155,7 +155,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -316,6 +315,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -379,6 +385,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -401,6 +414,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -419,6 +434,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -427,9 +443,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -443,6 +459,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -488,6 +505,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -500,10 +521,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv4/pif_bsdx.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv4/pif_bsdx.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv4/pif_bsdx.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv4/pif_bsdx.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2018-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2018-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -10,7 +10,7 @@ */ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include #ifdef HAVE_UNISTD_H diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv6/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv6/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv6/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv6/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -115,7 +115,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -145,6 +144,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -155,7 +155,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -316,6 +315,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -379,6 +385,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -401,6 +414,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -419,6 +434,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -427,9 +443,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -443,6 +459,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -488,6 +505,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -500,10 +521,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv6/pif_bsdx_ipv6.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv6/pif_bsdx_ipv6.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv6/pif_bsdx_ipv6.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv6/pif_bsdx_ipv6.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2018-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2018-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -10,7 +10,7 @@ */ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include #ifdef HAVE_UNISTD_H diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/linux_ipv6/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/linux_ipv6/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/linux_ipv6/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/linux_ipv6/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -115,7 +115,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -145,6 +144,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -155,7 +155,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -316,6 +315,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -379,6 +385,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -401,6 +414,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -419,6 +434,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -427,9 +443,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -443,6 +459,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -488,6 +505,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -500,10 +521,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/linux_ipv6/pif_linux_ipv6.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/linux_ipv6/pif_linux_ipv6.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/linux_ipv6/pif_linux_ipv6.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/linux_ipv6/pif_linux_ipv6.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2018-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2018-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -10,7 +10,7 @@ */ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include #ifdef HAVE_UNISTD_H diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,6 @@ # # Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2019 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -17,7 +18,7 @@ # Conditionally install the header files if WANT_INSTALL_HEADERS -pmixdir = $(pmixincludedir)/pmix/mca/pif +pmixdir = $(pmixincludedir)/$(subdir) nobase_pmix_HEADERS = $(headers) endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -16,6 +16,7 @@ # # Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2019 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -125,7 +126,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -155,6 +155,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -165,7 +166,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -360,6 +360,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -423,6 +430,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -445,6 +459,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -463,6 +479,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -471,9 +488,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -487,6 +504,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -532,6 +550,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -544,10 +566,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ @@ -575,7 +593,7 @@ headers = pif.h base/base.h # Conditionally install the header files -@WANT_INSTALL_HEADERS_TRUE@pmixdir = $(pmixincludedir)/pmix/mca/pif +@WANT_INSTALL_HEADERS_TRUE@pmixdir = $(pmixincludedir)/$(subdir) @WANT_INSTALL_HEADERS_TRUE@nobase_pmix_HEADERS = $(headers) all: all-am diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/posix_ipv4/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/posix_ipv4/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/posix_ipv4/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/posix_ipv4/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -115,7 +115,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -145,6 +144,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -155,7 +155,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -316,6 +315,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -379,6 +385,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -401,6 +414,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -419,6 +434,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -427,9 +443,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -443,6 +459,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -488,6 +505,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -500,10 +521,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/posix_ipv4/pif_posix.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/posix_ipv4/pif_posix.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/posix_ipv4/pif_posix.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/posix_ipv4/pif_posix.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,7 +4,7 @@ * Copyright (c) 2013 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. - * Copyright (c) 2015-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -13,7 +13,7 @@ */ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include #ifdef HAVE_UNISTD_H diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/solaris_ipv6/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/solaris_ipv6/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/solaris_ipv6/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/solaris_ipv6/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -115,7 +115,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -145,6 +144,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -155,7 +155,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -316,6 +315,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -379,6 +385,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -401,6 +414,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -419,6 +434,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -427,9 +443,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -443,6 +459,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -488,6 +505,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -500,10 +521,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/solaris_ipv6/pif_solaris_ipv6.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/solaris_ipv6/pif_solaris_ipv6.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pif/solaris_ipv6/pif_solaris_ipv6.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pif/solaris_ipv6/pif_solaris_ipv6.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2016-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -12,7 +12,7 @@ */ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include #ifdef HAVE_UNISTD_H diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/base/base.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/base/base.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/base/base.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/base/base.h 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * reserved. * Copyright (c) 2007-2010 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2010 Sandia National Laboratories. All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -15,7 +15,7 @@ #ifndef PMIX_PINSTALLDIRS_BASE_H #define PMIX_PINSTALLDIRS_BASE_H -#include +#include "src/include/pmix_config.h" #include "src/mca/base/pmix_mca_base_framework.h" #include "src/mca/pinstalldirs/pinstalldirs.h" @@ -33,7 +33,9 @@ also insert the value of the environment variable $PMIX_DESTDIR, if it exists/is set. This function should *only* be used during the setup routines of pinstalldirs. */ -char * pmix_pinstall_dirs_expand_setup(const char* input); +PMIX_EXPORT char * pmix_pinstall_dirs_expand_setup(const char* input); + +PMIX_EXPORT int pmix_pinstall_dirs_base_init(pmix_info_t info[], size_t ninfo); END_C_DECLS diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/base/pinstalldirs_base_components.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/base/pinstalldirs_base_components.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/base/pinstalldirs_base_components.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/base/pinstalldirs_base_components.c 2022-05-29 09:51:40.000000000 +0000 @@ -5,7 +5,7 @@ * Copyright (c) 2010 Sandia National Laboratories. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -14,9 +14,9 @@ * */ -#include +#include "src/include/pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/mca/mca.h" #include "src/mca/pinstalldirs/pinstalldirs.h" #include "src/mca/pinstalldirs/base/base.h" @@ -34,18 +34,21 @@ static int pmix_pinstalldirs_base_open(pmix_mca_base_open_flag_t flags) { - pmix_mca_base_component_list_item_t *component_item; - int ret; + return pmix_mca_base_framework_components_open(&pmix_pinstalldirs_base_framework, flags); +} - ret = pmix_mca_base_framework_components_open(&pmix_pinstalldirs_base_framework, flags); - if (PMIX_SUCCESS != ret) { - return ret; - } +int pmix_pinstall_dirs_base_init(pmix_info_t info[], size_t ninfo) +{ + pmix_mca_base_component_list_item_t *component_item; PMIX_LIST_FOREACH(component_item, &pmix_pinstalldirs_base_framework.framework_components, pmix_mca_base_component_list_item_t) { const pmix_pinstalldirs_base_component_t *component = (const pmix_pinstalldirs_base_component_t *) component_item->cli_component; + if (NULL != component->init) { + component->init(info, ninfo); + } + /* copy over the data, if something isn't already there */ CONDITIONAL_COPY(pmix_pinstall_dirs, component->install_dirs_data, prefix); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/base/pinstalldirs_base_expand.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/base/pinstalldirs_base_expand.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/base/pinstalldirs_base_expand.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/base/pinstalldirs_base_expand.c 2022-05-29 09:51:40.000000000 +0000 @@ -4,7 +4,7 @@ * Copyright (c) 2007-2010 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2007 Sun Microsystem, Inc. All rights reserved. * Copyright (c) 2010 Sandia National Laboratories. All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -13,7 +13,7 @@ * */ -#include +#include "src/include/pmix_config.h" #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/config/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/config/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/config/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/config/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,7 +119,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -149,6 +148,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -159,7 +159,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -325,6 +324,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -388,6 +394,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -410,6 +423,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -428,6 +443,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -436,9 +452,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -452,6 +468,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -497,6 +514,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -509,10 +530,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/config/pmix_pinstalldirs_config.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/config/pmix_pinstalldirs_config.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/config/pmix_pinstalldirs_config.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/config/pmix_pinstalldirs_config.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -9,7 +9,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include "src/mca/pinstalldirs/pinstalldirs.h" #include "src/mca/pinstalldirs/config/pinstall_dirs.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/env/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/env/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/env/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/env/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -117,7 +117,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -147,6 +146,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -157,7 +157,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -318,6 +317,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -381,6 +387,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -403,6 +416,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -421,6 +436,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -429,9 +445,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -445,6 +461,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -490,6 +507,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -502,10 +523,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/env/pmix_pinstalldirs_env.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/env/pmix_pinstalldirs_env.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/env/pmix_pinstalldirs_env.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/env/pmix_pinstalldirs_env.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -10,15 +10,15 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #include -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/mca/pinstalldirs/pinstalldirs.h" -static int pinstalldirs_env_open(void); +static void pinstalldirs_env_init(pmix_info_t info[], size_t ninfo); pmix_pinstalldirs_base_component_t mca_pinstalldirs_env_component = { @@ -32,10 +32,6 @@ PMIX_MAJOR_VERSION, PMIX_MINOR_VERSION, PMIX_RELEASE_VERSION, - - /* Component open and close functions */ - pinstalldirs_env_open, - NULL }, { /* This component is checkpointable */ @@ -46,6 +42,7 @@ { NULL, }, + .init = pinstalldirs_env_init }; @@ -55,14 +52,27 @@ if (NULL != tmp && 0 == strlen(tmp)) { \ tmp = NULL; \ } \ - mca_pinstalldirs_env_component.install_dirs_data.field = tmp; \ + mca_pinstalldirs_env_component.install_dirs_data.field = tmp; \ } while (0) -static int -pinstalldirs_env_open(void) +static void pinstalldirs_env_init(pmix_info_t info[], size_t ninfo) { - SET_FIELD(prefix, "PMIX_INSTALL_PREFIX"); + size_t n; + bool prefix_given = false; + + /* check for a prefix value */ + for (n=0; n < ninfo; n++) { + if (PMIX_CHECK_KEY(&info[n], PMIX_PREFIX)) { + mca_pinstalldirs_env_component.install_dirs_data.prefix = info[n].value.data.string; + prefix_given = true; + break; + } + } + + if (!prefix_given) { + SET_FIELD(prefix, "PMIX_INSTALL_PREFIX"); + } SET_FIELD(exec_prefix, "PMIX_EXEC_PREFIX"); SET_FIELD(bindir, "PMIX_BINDIR"); SET_FIELD(sbindir, "PMIX_SBINDIR"); @@ -79,6 +89,4 @@ SET_FIELD(pmixdatadir, "PMIX_PKGDATADIR"); SET_FIELD(pmixlibdir, "PMIX_PKGLIBDIR"); SET_FIELD(pmixincludedir, "PMIX_PKGINCLUDEDIR"); - - return PMIX_SUCCESS; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -128,7 +128,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -158,6 +157,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -168,7 +168,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -364,6 +363,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -427,6 +433,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -449,6 +462,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -467,6 +482,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -475,9 +491,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -491,6 +507,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -536,6 +553,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -548,10 +569,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/pinstalldirs.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/pinstalldirs.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/pinstalldirs.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/pinstalldirs.h 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ /* * Copyright (c) 2006-2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -13,7 +13,9 @@ #ifndef PMIX_MCA_PINSTALLDIRS_PINSTALLDIRS_H #define PMIX_MCA_PINSTALLDIRS_PINSTALLDIRS_H -#include +#include "src/include/pmix_config.h" + +#include "include/pmix_common.h" #include "src/mca/mca.h" #include "src/mca/base/base.h" @@ -59,8 +61,11 @@ /** * Expand out path variables (such as ${prefix}) in the input string * using the current pmix_pinstall_dirs structure */ -char * pmix_pinstall_dirs_expand(const char* input); +PMIX_EXPORT char * pmix_pinstall_dirs_expand(const char* input); + +/* optional initialization function */ +typedef void (*pmix_install_dirs_init_fn_t)(pmix_info_t info[], size_t ninfo); /** * Structure for pinstalldirs components. @@ -72,6 +77,8 @@ pmix_mca_base_component_data_t component_data; /** install directories provided by the given component */ pmix_pinstall_dirs_t install_dirs_data; + /* optional init function */ + pmix_install_dirs_init_fn_t init; }; /** * Convenience typedef diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/base/base.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/base/base.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/base/base.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/base/base.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,9 +11,9 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -24,7 +24,7 @@ #ifndef PMIX_PLOG_BASE_H_ #define PMIX_PLOG_BASE_H_ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_SYS_TIME_H @@ -77,6 +77,7 @@ pmix_lock_t lock; pmix_pointer_array_t actives; bool initialized; + bool selected; char **channels; }; typedef struct pmix_plog_globals_t pmix_plog_globals_t; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/base/plog_base_frame.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/base/plog_base_frame.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/base/plog_base_frame.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/base/plog_base_frame.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,15 +1,17 @@ /* -*- Mode: C; c-basic-offset:4 ; -*- */ /* - * Copyright (c) 2018 Intel, Inc. All rights reserved. + * Copyright (c) 2018-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow * * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #ifdef HAVE_STRING_H #include @@ -38,6 +40,7 @@ static char *order = NULL; static int pmix_plog_register(pmix_mca_base_register_flag_t flags) { + (void)flags; pmix_mca_base_var_register("pmix", "plog", "base", "order", "Comma-delimited, prioritized list of logging channels", PMIX_MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, @@ -59,6 +62,7 @@ return PMIX_SUCCESS; } pmix_plog_globals.initialized = false; + pmix_plog_globals.selected = false; for (n=0; n < pmix_plog_globals.actives.size; n++) { if (NULL == (active = (pmix_plog_base_active_module_t*)pmix_pointer_array_get_item(&pmix_plog_globals.actives, n))) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/base/plog_base_select.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/base/plog_base_select.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/base/plog_base_select.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/base/plog_base_select.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,9 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2016-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,8 +19,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include @@ -28,8 +30,6 @@ #include "src/mca/plog/base/base.h" -static bool selected = false; - /* Function for selecting a prioritized array of components * from all those that are available. */ int pmix_plog_base_select(void) @@ -45,11 +45,11 @@ char *ptr; size_t len; - if (selected) { + if (pmix_plog_globals.selected) { /* ensure we don't do this twice */ return PMIX_SUCCESS; } - selected = true; + pmix_plog_globals.selected = true; PMIX_CONSTRUCT(&actives, pmix_list_t); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/base/plog_base_stubs.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/base/plog_base_stubs.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/base/plog_base_stubs.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/base/plog_base_stubs.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2018 Intel, Inc. All rights reserved. + * Copyright (c) 2018-2020 Intel, Inc. All rights reserved. * * $COPYRIGHT$ * @@ -9,9 +9,9 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/class/pmix_list.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/default/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/default/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/default/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/default/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -126,7 +126,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -156,6 +155,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -166,7 +166,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -373,6 +372,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -436,6 +442,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -458,6 +471,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -476,6 +491,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -484,9 +500,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -500,6 +516,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -545,6 +562,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -557,10 +578,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/default/plog_default.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/default/plog_default.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/default/plog_default.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/default/plog_default.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -19,7 +19,7 @@ */ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include #ifdef HAVE_SYS_TIME_H diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/default/plog_default_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/default/plog_default_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/default/plog_default_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/default/plog_default_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2018 Intel, Inc. All rights reserved. + * Copyright (c) 2018-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -12,7 +12,7 @@ * includes */ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include "plog_default.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -154,7 +154,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -184,6 +183,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -194,7 +194,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -391,6 +390,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -454,6 +460,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -476,6 +489,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -494,6 +509,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -502,9 +518,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -518,6 +534,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -563,6 +580,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -575,10 +596,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/plog.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/plog.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/plog.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/plog.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* * Copyright (c) 2007-2008 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2015-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -26,8 +26,8 @@ #ifndef PMIX_PLOG_H #define PMIX_PLOG_H -#include -#include "pmix_common.h" +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/class/pmix_list.h" #include "src/mca/mca.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/stdfd/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/stdfd/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/stdfd/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/stdfd/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -126,7 +126,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -156,6 +155,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -166,7 +166,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -371,6 +370,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -434,6 +440,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -456,6 +469,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -474,6 +489,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -482,9 +498,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -498,6 +514,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -543,6 +560,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -555,10 +576,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/stdfd/plog_stdfd.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/stdfd/plog_stdfd.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/stdfd/plog_stdfd.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/stdfd/plog_stdfd.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -19,7 +19,7 @@ */ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include #ifdef HAVE_SYS_TIME_H diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/stdfd/plog_stdfd_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/stdfd/plog_stdfd_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/stdfd/plog_stdfd_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/stdfd/plog_stdfd_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2018 Intel, Inc. All rights reserved. + * Copyright (c) 2018-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -12,7 +12,7 @@ * includes */ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include "plog_stdfd.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/syslog/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/syslog/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/syslog/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/syslog/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -126,7 +126,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -156,6 +155,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -166,7 +166,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -372,6 +371,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -435,6 +441,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -457,6 +470,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -475,6 +490,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -483,9 +499,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -499,6 +515,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -544,6 +561,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -556,10 +577,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/syslog/plog_syslog.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/syslog/plog_syslog.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/syslog/plog_syslog.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/syslog/plog_syslog.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -19,7 +19,7 @@ */ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include #ifdef HAVE_TIME_H diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/syslog/plog_syslog_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/syslog/plog_syslog_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/plog/syslog/plog_syslog_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/plog/syslog/plog_syslog_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2018 Intel, Inc. All rights reserved. + * Copyright (c) 2018-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -12,7 +12,7 @@ * includes */ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #ifdef HAVE_SYSLOG_H #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/base/base.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/base/base.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/base/base.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/base/base.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,9 +11,9 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -24,7 +24,7 @@ #ifndef PMIX_PNET_BASE_H_ #define PMIX_PNET_BASE_H_ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_SYS_TIME_H @@ -99,11 +99,27 @@ } pmix_pnet_job_t; PMIX_EXPORT PMIX_CLASS_DECLARATION(pmix_pnet_job_t); +typedef struct { + pmix_list_item_t super; + char *name; + size_t index; + /* provide access to the component + * APIs that are managing this + * fabric plane */ + pmix_pnet_module_t *module; + /* allow the component to add + * whatever structures it needs */ + void *payload; +} pmix_pnet_fabric_t; +PMIX_EXPORT PMIX_CLASS_DECLARATION(pmix_pnet_fabric_t); + /* framework globals */ struct pmix_pnet_globals_t { pmix_lock_t lock; pmix_list_t actives; + pmix_list_t fabrics; bool initialized; + bool selected; pmix_list_t jobs; pmix_list_t nodes; }; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/base/pnet_base_fns.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/base/pnet_base_fns.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/base/pnet_base_fns.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/base/pnet_base_fns.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2015-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2018 Research Organization for Information Science @@ -13,9 +13,9 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/class/pmix_list.h" @@ -28,7 +28,7 @@ #include "src/mca/pnet/base/base.h" -static pmix_status_t process_maps(char *nspace, char *nregex, char *pregex); +static pmix_status_t process_maps(char *nspace, char **nodes, char **procs); /* NOTE: a tool (e.g., prun) may call this function to * harvest local envars for inclusion in a call to @@ -39,11 +39,10 @@ pmix_list_t *ilist) { pmix_pnet_base_active_module_t *active; - pmix_status_t rc = PMIX_SUCCESS; + pmix_status_t rc; pmix_namespace_t *nptr, *ns; size_t n; - char *nregex, *pregex; - char *params[2] = {"PMIX_MCA_", NULL}; + char **nodes, **procs; if (!pmix_pnet_globals.initialized) { return PMIX_ERR_INIT; @@ -56,7 +55,7 @@ if (NULL == nspace || NULL == ilist) { return PMIX_ERR_BAD_PARAM; } - if (PMIX_PEER_IS_GATEWAY(pmix_globals.mypeer)) { + if (PMIX_PEER_IS_SCHEDULER(pmix_globals.mypeer)) { nptr = NULL; /* find this nspace - note that it may not have * been registered yet */ @@ -78,16 +77,22 @@ if (NULL != info) { /* check for description of the node and proc maps */ - nregex = NULL; - pregex = NULL; + nodes = NULL; + procs = NULL; for (n=0; n < ninfo; n++) { - if (0 == strncmp(info[n].key, PMIX_NODE_MAP, PMIX_MAX_KEYLEN)) { - nregex = info[n].value.data.string; - } else if (0 == strncmp(info[n].key, PMIX_PROC_MAP, PMIX_MAX_KEYLEN)) { - pregex = info[n].value.data.string; + if (PMIX_CHECK_KEY(&info[n], PMIX_NODE_MAP)) { + rc = pmix_preg.parse_nodes(info[n].value.data.bo.bytes, &nodes); + if (PMIX_SUCCESS != rc) { + return rc; + } + } else if (PMIX_CHECK_KEY(&info[n], PMIX_PROC_MAP)) { + rc = pmix_preg.parse_procs(info[n].value.data.bo.bytes, &procs); + if (PMIX_SUCCESS != rc) { + return rc; + } } } - if (NULL != nregex && NULL != pregex) { + if (NULL != nodes && NULL != procs) { /* assemble the pnet node and proc descriptions * NOTE: this will eventually be folded into the * new shared memory system, but we do it here @@ -95,32 +100,29 @@ * the host will not have registered the clients * and nspace prior to calling allocate */ - rc = process_maps(nspace, nregex, pregex); + rc = process_maps(nspace, nodes, procs); + pmix_argv_free(nodes); + pmix_argv_free(procs); if (PMIX_SUCCESS != rc) { return rc; } } /* process the allocation request */ - for (n=0; n < ninfo; n++) { - PMIX_LIST_FOREACH(active, &pmix_pnet_globals.actives, pmix_pnet_base_active_module_t) { - if (NULL != active->module->allocate) { - if (PMIX_SUCCESS == (rc = active->module->allocate(nptr, &info[n], ilist))) { - break; - } - if (PMIX_ERR_TAKE_NEXT_OPTION != rc) { - /* true error */ - return rc; - } + PMIX_LIST_FOREACH(active, &pmix_pnet_globals.actives, pmix_pnet_base_active_module_t) { + if (NULL != active->module->allocate) { + if (PMIX_SUCCESS == (rc = active->module->allocate(nptr, info, ninfo, ilist))) { + break; + } + if (PMIX_ERR_TAKE_NEXT_OPTION != rc) { + /* true error */ + return rc; } } } } } - /* add any local PMIx MCA params */ - rc = pmix_pnet_base_harvest_envars(params, NULL, ilist); - - return rc; + return PMIX_SUCCESS; } /* can only be called by a server */ @@ -531,76 +533,10 @@ return; } -pmix_status_t pmix_pnet_base_harvest_envars(char **incvars, char **excvars, - pmix_list_t *ilist) -{ - int i, j; - size_t len; - pmix_kval_t *kv, *next; - char *cs_env, *string_key; - - /* harvest envars to pass along */ - for (j=0; NULL != incvars[j]; j++) { - len = strlen(incvars[j]); - if ('*' == incvars[j][len-1]) { - --len; - } - for (i = 0; NULL != environ[i]; ++i) { - if (0 == strncmp(environ[i], incvars[j], len)) { - cs_env = strdup(environ[i]); - kv = PMIX_NEW(pmix_kval_t); - if (NULL == kv) { - free(cs_env); - return PMIX_ERR_OUT_OF_RESOURCE; - } - kv->key = strdup(PMIX_SET_ENVAR); - kv->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); - if (NULL == kv->value) { - PMIX_RELEASE(kv); - free(cs_env); - return PMIX_ERR_OUT_OF_RESOURCE; - } - kv->value->type = PMIX_ENVAR; - string_key = strchr(cs_env, '='); - if (NULL == string_key) { - free(cs_env); - PMIX_RELEASE(kv); - return PMIX_ERR_BAD_PARAM; - } - *string_key = '\0'; - ++string_key; - pmix_output_verbose(5, pmix_pnet_base_framework.framework_output, - "pnet: adding envar %s", cs_env); - PMIX_ENVAR_LOAD(&kv->value->data.envar, cs_env, string_key, ':'); - pmix_list_append(ilist, &kv->super); - free(cs_env); - } - } - } - /* now check the exclusions and remove any that match */ - if (NULL != excvars) { - for (j=0; NULL != excvars[j]; j++) { - len = strlen(excvars[j]); - if ('*' == excvars[j][len-1]) { - --len; - } - PMIX_LIST_FOREACH_SAFE(kv, next, ilist, pmix_kval_t) { - if (0 == strncmp(kv->value->data.envar.envar, excvars[j], len)) { - pmix_output_verbose(5, pmix_pnet_base_framework.framework_output, - "pnet: excluding envar %s", kv->value->data.envar.envar); - pmix_list_remove_item(ilist, &kv->super); - PMIX_RELEASE(kv); - } - } - } - } - return PMIX_SUCCESS; -} - -static pmix_status_t process_maps(char *nspace, char *nregex, char *pregex) +static pmix_status_t process_maps(char *nspace, char **nodes, char **procs) { - char **nodes, **procs, **ranks; + char **ranks; pmix_status_t rc; size_t m, n; pmix_pnet_job_t *jptr, *job; @@ -610,21 +546,14 @@ PMIX_ACQUIRE_THREAD(&pmix_pnet_globals.lock); - /* parse the regex to get the argv array of node names */ - if (PMIX_SUCCESS != (rc = pmix_preg.parse_nodes(nregex, &nodes))) { + /* bozo check */ + if (pmix_argv_count(nodes) != pmix_argv_count(procs)) { + rc = PMIX_ERR_BAD_PARAM; PMIX_ERROR_LOG(rc); PMIX_RELEASE_THREAD(&pmix_pnet_globals.lock); return rc; } - /* parse the regex to get the argv array of proc ranks on each node */ - if (PMIX_SUCCESS != (rc = pmix_preg.parse_procs(pregex, &procs))) { - PMIX_ERROR_LOG(rc); - pmix_argv_free(nodes); - PMIX_RELEASE_THREAD(&pmix_pnet_globals.lock); - return rc; - } - /* see if we already know about this job */ job = NULL; if (0 < pmix_list_get_size(&pmix_pnet_globals.jobs)) { @@ -697,9 +626,6 @@ pmix_argv_free(ranks); } - pmix_argv_free(nodes); - pmix_argv_free(procs); - PMIX_RELEASE_THREAD(&pmix_pnet_globals.lock); return PMIX_SUCCESS; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/base/pnet_base_frame.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/base/pnet_base_frame.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/base/pnet_base_frame.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/base/pnet_base_frame.c 2022-05-29 09:51:40.000000000 +0000 @@ -11,9 +11,9 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. - * Copyright (c) 2015-2016 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -23,9 +23,9 @@ /** @file: * */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #ifdef HAVE_STRING_H #include @@ -64,6 +64,7 @@ return PMIX_SUCCESS; } pmix_pnet_globals.initialized = false; + pmix_pnet_globals.selected = false; PMIX_LIST_FOREACH_SAFE(active, prev, &pmix_pnet_globals.actives, pmix_pnet_base_active_module_t) { pmix_list_remove_item(&pmix_pnet_globals.actives, &active->super); @@ -73,6 +74,7 @@ PMIX_RELEASE(active); } PMIX_DESTRUCT(&pmix_pnet_globals.actives); + PMIX_DESTRUCT(&pmix_pnet_globals.fabrics); PMIX_LIST_DESTRUCT(&pmix_pnet_globals.jobs); PMIX_LIST_DESTRUCT(&pmix_pnet_globals.nodes); @@ -88,6 +90,7 @@ PMIX_CONSTRUCT_LOCK(&pmix_pnet_globals.lock); pmix_pnet_globals.lock.active = false; PMIX_CONSTRUCT(&pmix_pnet_globals.actives, pmix_list_t); + PMIX_CONSTRUCT(&pmix_pnet_globals.fabrics, pmix_list_t); PMIX_CONSTRUCT(&pmix_pnet_globals.jobs, pmix_list_t); PMIX_CONSTRUCT(&pmix_pnet_globals.nodes, pmix_list_t); @@ -181,3 +184,20 @@ PMIX_CLASS_INSTANCE(pmix_pnet_resource_t, pmix_list_item_t, rcon, rdes); + +static void ftcon(pmix_pnet_fabric_t *p) +{ + p->name = NULL; + p->index = 0; + p->module = NULL; + p->payload = NULL; +} +static void ftdes(pmix_pnet_fabric_t *p) +{ + if (NULL != p->name) { + free(p->name); + } +} +PMIX_CLASS_INSTANCE(pmix_pnet_fabric_t, + pmix_list_item_t, + ftcon, ftdes); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/base/pnet_base_select.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/base/pnet_base_select.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/base/pnet_base_select.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/base/pnet_base_select.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,9 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,8 +19,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include @@ -27,8 +29,6 @@ #include "src/mca/pnet/base/base.h" -static bool selected = false; - /* Function for selecting a prioritized list of components * from all those that are available. */ int pmix_pnet_base_select(void) @@ -41,11 +41,11 @@ int rc, priority; bool inserted; - if (selected) { + if (pmix_pnet_globals.selected) { /* ensure we don't do this twice */ return PMIX_SUCCESS; } - selected = true; + pmix_pnet_globals.selected = true; /* Query all available components and ask if they have a module */ PMIX_LIST_FOREACH(cli, &pmix_pnet_base_framework.framework_components, pmix_mca_base_component_list_item_t) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -153,7 +153,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -183,6 +182,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -193,7 +193,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -389,6 +388,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -452,6 +458,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -474,6 +487,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -492,6 +507,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -500,9 +516,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -516,6 +532,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -561,6 +578,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -573,10 +594,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/configure.m4 openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/configure.m4 --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/configure.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/configure.m4 1970-01-01 00:00:00.000000000 +0000 @@ -1,110 +0,0 @@ -# -*- shell-script -*- -# -# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana -# University Research and Technology -# Corporation. All rights reserved. -# Copyright (c) 2004-2005 The University of Tennessee and The University -# of Tennessee Research Foundation. All rights -# reserved. -# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# Copyright (c) 2004-2005 The Regents of the University of California. -# All rights reserved. -# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. -# Copyright (c) 2013 Sandia National Laboratories. All rights reserved. -# Copyright (c) 2014-2019 Intel, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# MCA_pnet_opa_CONFIG([action-if-can-compile], -# [action-if-cant-compile]) -# ------------------------------------------------ -AC_DEFUN([MCA_pmix_pnet_opa_CONFIG],[ - AC_CONFIG_FILES([src/mca/pnet/opa/Makefile]) - - PMIX_CHECK_PSM2([pnet_opa], - [pnet_opa_happy="yes"], - [pnet_opa_happy="no"]) - - AC_ARG_WITH([opamgt], - [AC_HELP_STRING([--with-opamgt(=DIR)], - [Build OmniPath Fabric Management support (optionally adding DIR/include, DIR/include/opamgt, DIR/lib, and DIR/lib64 to the search path for headers and libraries])], [], [with_opamgt=no]) - - AC_ARG_WITH([opamgt-libdir], - [AC_HELP_STRING([--with-opamgt-libdir=DIR], - [Search for OmniPath Fabric Management libraries in DIR])]) - - pmix_check_opamgt_save_CPPFLAGS="$CPPFLAGS" - pmix_check_opamgt_save_LDFLAGS="$LDFLAGS" - pmix_check_opamgt_save_LIBS="$LIBS" - - pmix_check_opamgt_libdir= - pmix_check_opamgt_dir= - - AC_MSG_CHECKING([if opamgt requested]) - AS_IF([test "$with_opamgt" = "no"], - [AC_MSG_RESULT([no]) - pmix_check_opamgt_happy=no], - [AC_MSG_RESULT([yes]) - PMIX_CHECK_WITHDIR([opamgt-libdir], [$with_opamgt_libdir], [libopamgt.*]) - AS_IF([test ! -z "$with_opamgt" && test "$with_opamgt" != "yes"], - [pmix_check_opamgt_dir="$with_opamgt" - AS_IF([test ! -d "$pmix_check_opamgt_dir" || test ! -f "$pmix_check_opamgt_dir/opamgt.h"], - [$pmix_check_opamgt_dir=$pmix_check_opamgt_dir/include - AS_IF([test ! -d "$pmix_check_opamgt_dir" || test ! -f "$pmix_check_opamgt_dir/opamgt.h"], - [$pmix_check_opamgt_dir=$pmix_check_opamgt_dir/opamgt - AS_IF([test ! -d "$pmix_check_opamgt_dir" || test ! -f "$pmix_check_opamgt_dir/opamgt.h"], - [AC_MSG_WARN([OmniPath Fabric Management support requested, but]) - AC_MSG_WARN([required header file opamgt.h not found. Locations tested:]) - AC_MSG_WARN([ $with_opamgt]) - AC_MSG_WARN([ $with_opamgt/include]) - AC_MSG_WARN([ $with_opamgt/include/opamgt]) - AC_MSG_ERROR([Cannot continue])])])])], - [pmix_check_opamgt_dir="/usr/include/opamgt"]) - - AS_IF([test ! -z "$with_opamgt_libdir" && test "$with_opamgt_libdir" != "yes"], - [pmix_check_opamgt_libdir="$with_opamgt_libdir"]) - - # no easy way to check this, so let's ensure that the - # full opamgt install was done, including the iba support - AS_IF([test ! -d "$pmix_check_opamgt_dir/iba" || test ! -f "$pmix_check_opamgt_dir/iba/vpi.h"], - [pmix_check_opamgt_happy="no"], - [PMIX_CHECK_PACKAGE([pnet_opamgt], - [opamgt.h], - [opamgt], - [omgt_query_sa], - [], - [$pmix_check_opamgt_dir], - [$pmix_check_opamgt_libdir], - [pmix_check_opamgt_happy="yes" - pnet_opa_CFLAGS="$pnet_opa_CFLAGS $pnet_opamgt_CFLAGS" - pnet_opa_CPPFLAGS="$pnet_opa_CPPFLAGS $pnet_opamgt_CPPFLAGS" - pnet_opa_LDFLAGS="$pnet_opa_LDFLAGS $pnet_opamgt_LDFLAGS" - pnet_opa_LIBS="$pnet_opa_LIBS $pnet_opamgt_LIBS"], - [pmix_check_opamgt_happy="no"])]) - ]) - - AS_IF([test "$pmix_check_opamgt_happy" = "yes"], - [pmix_want_opamgt=1], - [pmix_want_opamgt=0]) - AC_DEFINE_UNQUOTED([PMIX_WANT_OPAMGT], [$pmix_want_opamgt], - [Whether or not to include OmniPath Fabric Manager support]) - - CPPFLAGS="$pmix_check_opamgt_save_CPPFLAGS" - LDFLAGS="$pmix_check_opamgt_save_LDFLAGS" - LIBS="$pmix_check_opamgt_save_LIBS" - - AS_IF([test "$pnet_opa_happy" = "yes"], - [$1], - [$2]) - - # substitute in the things needed to build psm2 - AC_SUBST([pnet_opa_CFLAGS]) - AC_SUBST([pnet_opa_CPPFLAGS]) - AC_SUBST([pnet_opa_LDFLAGS]) - AC_SUBST([pnet_opa_LIBS]) -])dnl diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,59 +0,0 @@ -# -*- makefile -*- -# -# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana -# University Research and Technology -# Corporation. All rights reserved. -# Copyright (c) 2004-2005 The University of Tennessee and The University -# of Tennessee Research Foundation. All rights -# reserved. -# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# Copyright (c) 2004-2005 The Regents of the University of California. -# All rights reserved. -# Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. -# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. -# Copyright (c) 2017 Research Organization for Information Science -# and Technology (RIST). All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -AM_CPPFLAGS = $(pnet_opa_CPPFLAGS) - -headers = pnet_opa.h -sources = \ - pnet_opa_component.c \ - pnet_opa.c - -# Make the output library in this directory, and name it either -# mca__.la (for DSO builds) or libmca__.la -# (for static builds). - -if MCA_BUILD_pmix_pnet_opa_DSO -lib = -lib_sources = -component = mca_pnet_opa.la -component_sources = $(headers) $(sources) -else -lib = libmca_pnet_opa.la -lib_sources = $(headers) $(sources) -component = -component_sources = -endif - -mcacomponentdir = $(pmixlibdir) -mcacomponent_LTLIBRARIES = $(component) -mca_pnet_opa_la_SOURCES = $(component_sources) -mca_pnet_opa_la_LIBADD = $(pnet_opa_LIBS) -mca_pnet_opa_la_LDFLAGS = -module -avoid-version $(pnet_opa_LDFLAGS) -if NEED_LIBPMIX -mca_pnet_opa_la_LIBADD += $(top_builddir)/src/libpmix.la -endif - -noinst_LTLIBRARIES = $(lib) -libmca_pnet_opa_la_SOURCES = $(lib_sources) -libmca_pnet_opa_la_LIBADD = $(pnet_opa_LIBS) -libmca_pnet_opa_la_LDFLAGS = -module -avoid-version $(pnet_opa_LDFLAGS) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,958 +0,0 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2014 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -*- makefile -*- -# -# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana -# University Research and Technology -# Corporation. All rights reserved. -# Copyright (c) 2004-2005 The University of Tennessee and The University -# of Tennessee Research Foundation. All rights -# reserved. -# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# Copyright (c) 2004-2005 The Regents of the University of California. -# All rights reserved. -# Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. -# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. -# Copyright (c) 2017 Research Organization for Information Science -# and Technology (RIST). All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -@NEED_LIBPMIX_TRUE@am__append_1 = $(top_builddir)/src/libpmix.la -subdir = src/mca/pnet/opa -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ - $(top_srcdir)/config/libtool.m4 \ - $(top_srcdir)/config/ltoptions.m4 \ - $(top_srcdir)/config/ltsugar.m4 \ - $(top_srcdir)/config/ltversion.m4 \ - $(top_srcdir)/config/lt~obsolete.m4 \ - $(top_srcdir)/config/pmix.m4 \ - $(top_srcdir)/config/pmix_check_attributes.m4 \ - $(top_srcdir)/config/pmix_check_broken_qsort.m4 \ - $(top_srcdir)/config/pmix_check_compiler_version.m4 \ - $(top_srcdir)/config/pmix_check_icc.m4 \ - $(top_srcdir)/config/pmix_check_lock.m4 \ - $(top_srcdir)/config/pmix_check_os_flavors.m4 \ - $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ - $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ - $(top_srcdir)/config/pmix_check_vendor.m4 \ - $(top_srcdir)/config/pmix_check_visibility.m4 \ - $(top_srcdir)/config/pmix_check_withdir.m4 \ - $(top_srcdir)/config/pmix_config_asm.m4 \ - $(top_srcdir)/config/pmix_config_pthreads.m4 \ - $(top_srcdir)/config/pmix_config_subdir.m4 \ - $(top_srcdir)/config/pmix_config_subdir_args.m4 \ - $(top_srcdir)/config/pmix_config_threads.m4 \ - $(top_srcdir)/config/pmix_ensure_contains_optflags.m4 \ - $(top_srcdir)/config/pmix_functions.m4 \ - $(top_srcdir)/config/pmix_load_platform.m4 \ - $(top_srcdir)/config/pmix_mca.m4 \ - $(top_srcdir)/config/pmix_search_libs.m4 \ - $(top_srcdir)/config/pmix_set_mca_prefix.m4 \ - $(top_srcdir)/config/pmix_setup_cc.m4 \ - $(top_srcdir)/config/pmix_setup_cli.m4 \ - $(top_srcdir)/config/pmix_setup_hwloc.m4 \ - $(top_srcdir)/config/pmix_setup_libev.m4 \ - $(top_srcdir)/config/pmix_setup_libevent.m4 \ - $(top_srcdir)/config/pmix_setup_zlib.m4 \ - $(top_srcdir)/config/pmix_summary.m4 \ - $(top_srcdir)/config/pmix_try_assemble.m4 \ - $(top_srcdir)/config/autogen_found_items.m4 \ - $(top_srcdir)/src/mca/pdl/configure.m4 \ - $(top_srcdir)/src/mca/pinstalldirs/configure.m4 \ - $(top_srcdir)/src/mca/common/dstore/configure.m4 \ - $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ - $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ - $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ - $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ - $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ - $(top_srcdir)/src/mca/pif/bsdx_ipv6/configure.m4 \ - $(top_srcdir)/src/mca/pif/linux_ipv6/configure.m4 \ - $(top_srcdir)/src/mca/pif/posix_ipv4/configure.m4 \ - $(top_srcdir)/src/mca/pif/solaris_ipv6/configure.m4 \ - $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ - $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ - $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ - $(top_srcdir)/src/mca/psec/munge/configure.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/src/include/pmix_config.h \ - $(top_builddir)/include/pmix_common.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(mcacomponentdir)" -LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) -am__DEPENDENCIES_1 = -libmca_pnet_opa_la_DEPENDENCIES = $(am__DEPENDENCIES_1) -am__libmca_pnet_opa_la_SOURCES_DIST = pnet_opa.h pnet_opa_component.c \ - pnet_opa.c -am__objects_1 = -am__objects_2 = pnet_opa_component.lo pnet_opa.lo -@MCA_BUILD_pmix_pnet_opa_DSO_FALSE@am__objects_3 = $(am__objects_1) \ -@MCA_BUILD_pmix_pnet_opa_DSO_FALSE@ $(am__objects_2) -am_libmca_pnet_opa_la_OBJECTS = $(am__objects_3) -libmca_pnet_opa_la_OBJECTS = $(am_libmca_pnet_opa_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -libmca_pnet_opa_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(libmca_pnet_opa_la_LDFLAGS) \ - $(LDFLAGS) -o $@ -@MCA_BUILD_pmix_pnet_opa_DSO_FALSE@am_libmca_pnet_opa_la_rpath = -mca_pnet_opa_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__append_1) -am__mca_pnet_opa_la_SOURCES_DIST = pnet_opa.h pnet_opa_component.c \ - pnet_opa.c -@MCA_BUILD_pmix_pnet_opa_DSO_TRUE@am__objects_4 = $(am__objects_1) \ -@MCA_BUILD_pmix_pnet_opa_DSO_TRUE@ $(am__objects_2) -am_mca_pnet_opa_la_OBJECTS = $(am__objects_4) -mca_pnet_opa_la_OBJECTS = $(am_mca_pnet_opa_la_OBJECTS) -mca_pnet_opa_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(mca_pnet_opa_la_LDFLAGS) $(LDFLAGS) \ - -o $@ -@MCA_BUILD_pmix_pnet_opa_DSO_TRUE@am_mca_pnet_opa_la_rpath = -rpath \ -@MCA_BUILD_pmix_pnet_opa_DSO_TRUE@ $(mcacomponentdir) -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/include -I$(top_builddir)/include -depcomp = $(SHELL) $(top_srcdir)/./config/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libmca_pnet_opa_la_SOURCES) $(mca_pnet_opa_la_SOURCES) -DIST_SOURCES = $(am__libmca_pnet_opa_la_SOURCES_DIST) \ - $(am__mca_pnet_opa_la_SOURCES_DIST) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/./config/depcomp -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCAS = @CCAS@ -CCASDEPMODE = @CCASDEPMODE@ -CCASFLAGS = @CCASFLAGS@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CLEANFILES = @CLEANFILES@ -CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ -MCA_pmix_FRAMEWORKS = @MCA_pmix_FRAMEWORKS@ -MCA_pmix_FRAMEWORKS_SUBDIRS = @MCA_pmix_FRAMEWORKS_SUBDIRS@ -MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ -MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ -MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ -MCA_pmix_FRAMEWORK_LIBS = @MCA_pmix_FRAMEWORK_LIBS@ -MCA_pmix_bfrops_ALL_COMPONENTS = @MCA_pmix_bfrops_ALL_COMPONENTS@ -MCA_pmix_bfrops_ALL_SUBDIRS = @MCA_pmix_bfrops_ALL_SUBDIRS@ -MCA_pmix_bfrops_DSO_COMPONENTS = @MCA_pmix_bfrops_DSO_COMPONENTS@ -MCA_pmix_bfrops_DSO_SUBDIRS = @MCA_pmix_bfrops_DSO_SUBDIRS@ -MCA_pmix_bfrops_STATIC_COMPONENTS = @MCA_pmix_bfrops_STATIC_COMPONENTS@ -MCA_pmix_bfrops_STATIC_LTLIBS = @MCA_pmix_bfrops_STATIC_LTLIBS@ -MCA_pmix_bfrops_STATIC_SUBDIRS = @MCA_pmix_bfrops_STATIC_SUBDIRS@ -MCA_pmix_common_ALL_COMPONENTS = @MCA_pmix_common_ALL_COMPONENTS@ -MCA_pmix_common_ALL_SUBDIRS = @MCA_pmix_common_ALL_SUBDIRS@ -MCA_pmix_common_DSO_COMPONENTS = @MCA_pmix_common_DSO_COMPONENTS@ -MCA_pmix_common_DSO_SUBDIRS = @MCA_pmix_common_DSO_SUBDIRS@ -MCA_pmix_common_STATIC_COMPONENTS = @MCA_pmix_common_STATIC_COMPONENTS@ -MCA_pmix_common_STATIC_LTLIBS = @MCA_pmix_common_STATIC_LTLIBS@ -MCA_pmix_common_STATIC_SUBDIRS = @MCA_pmix_common_STATIC_SUBDIRS@ -MCA_pmix_gds_ALL_COMPONENTS = @MCA_pmix_gds_ALL_COMPONENTS@ -MCA_pmix_gds_ALL_SUBDIRS = @MCA_pmix_gds_ALL_SUBDIRS@ -MCA_pmix_gds_DSO_COMPONENTS = @MCA_pmix_gds_DSO_COMPONENTS@ -MCA_pmix_gds_DSO_SUBDIRS = @MCA_pmix_gds_DSO_SUBDIRS@ -MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ -MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ -MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ -MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ -MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ -MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ -MCA_pmix_pdl_DSO_SUBDIRS = @MCA_pmix_pdl_DSO_SUBDIRS@ -MCA_pmix_pdl_STATIC_COMPONENTS = @MCA_pmix_pdl_STATIC_COMPONENTS@ -MCA_pmix_pdl_STATIC_LTLIBS = @MCA_pmix_pdl_STATIC_LTLIBS@ -MCA_pmix_pdl_STATIC_SUBDIRS = @MCA_pmix_pdl_STATIC_SUBDIRS@ -MCA_pmix_pif_ALL_COMPONENTS = @MCA_pmix_pif_ALL_COMPONENTS@ -MCA_pmix_pif_ALL_SUBDIRS = @MCA_pmix_pif_ALL_SUBDIRS@ -MCA_pmix_pif_DSO_COMPONENTS = @MCA_pmix_pif_DSO_COMPONENTS@ -MCA_pmix_pif_DSO_SUBDIRS = @MCA_pmix_pif_DSO_SUBDIRS@ -MCA_pmix_pif_STATIC_COMPONENTS = @MCA_pmix_pif_STATIC_COMPONENTS@ -MCA_pmix_pif_STATIC_LTLIBS = @MCA_pmix_pif_STATIC_LTLIBS@ -MCA_pmix_pif_STATIC_SUBDIRS = @MCA_pmix_pif_STATIC_SUBDIRS@ -MCA_pmix_pinstalldirs_ALL_COMPONENTS = @MCA_pmix_pinstalldirs_ALL_COMPONENTS@ -MCA_pmix_pinstalldirs_ALL_SUBDIRS = @MCA_pmix_pinstalldirs_ALL_SUBDIRS@ -MCA_pmix_pinstalldirs_DSO_COMPONENTS = @MCA_pmix_pinstalldirs_DSO_COMPONENTS@ -MCA_pmix_pinstalldirs_DSO_SUBDIRS = @MCA_pmix_pinstalldirs_DSO_SUBDIRS@ -MCA_pmix_pinstalldirs_STATIC_COMPONENTS = @MCA_pmix_pinstalldirs_STATIC_COMPONENTS@ -MCA_pmix_pinstalldirs_STATIC_LTLIBS = @MCA_pmix_pinstalldirs_STATIC_LTLIBS@ -MCA_pmix_pinstalldirs_STATIC_SUBDIRS = @MCA_pmix_pinstalldirs_STATIC_SUBDIRS@ -MCA_pmix_plog_ALL_COMPONENTS = @MCA_pmix_plog_ALL_COMPONENTS@ -MCA_pmix_plog_ALL_SUBDIRS = @MCA_pmix_plog_ALL_SUBDIRS@ -MCA_pmix_plog_DSO_COMPONENTS = @MCA_pmix_plog_DSO_COMPONENTS@ -MCA_pmix_plog_DSO_SUBDIRS = @MCA_pmix_plog_DSO_SUBDIRS@ -MCA_pmix_plog_STATIC_COMPONENTS = @MCA_pmix_plog_STATIC_COMPONENTS@ -MCA_pmix_plog_STATIC_LTLIBS = @MCA_pmix_plog_STATIC_LTLIBS@ -MCA_pmix_plog_STATIC_SUBDIRS = @MCA_pmix_plog_STATIC_SUBDIRS@ -MCA_pmix_pnet_ALL_COMPONENTS = @MCA_pmix_pnet_ALL_COMPONENTS@ -MCA_pmix_pnet_ALL_SUBDIRS = @MCA_pmix_pnet_ALL_SUBDIRS@ -MCA_pmix_pnet_DSO_COMPONENTS = @MCA_pmix_pnet_DSO_COMPONENTS@ -MCA_pmix_pnet_DSO_SUBDIRS = @MCA_pmix_pnet_DSO_SUBDIRS@ -MCA_pmix_pnet_STATIC_COMPONENTS = @MCA_pmix_pnet_STATIC_COMPONENTS@ -MCA_pmix_pnet_STATIC_LTLIBS = @MCA_pmix_pnet_STATIC_LTLIBS@ -MCA_pmix_pnet_STATIC_SUBDIRS = @MCA_pmix_pnet_STATIC_SUBDIRS@ -MCA_pmix_preg_ALL_COMPONENTS = @MCA_pmix_preg_ALL_COMPONENTS@ -MCA_pmix_preg_ALL_SUBDIRS = @MCA_pmix_preg_ALL_SUBDIRS@ -MCA_pmix_preg_DSO_COMPONENTS = @MCA_pmix_preg_DSO_COMPONENTS@ -MCA_pmix_preg_DSO_SUBDIRS = @MCA_pmix_preg_DSO_SUBDIRS@ -MCA_pmix_preg_STATIC_COMPONENTS = @MCA_pmix_preg_STATIC_COMPONENTS@ -MCA_pmix_preg_STATIC_LTLIBS = @MCA_pmix_preg_STATIC_LTLIBS@ -MCA_pmix_preg_STATIC_SUBDIRS = @MCA_pmix_preg_STATIC_SUBDIRS@ -MCA_pmix_psec_ALL_COMPONENTS = @MCA_pmix_psec_ALL_COMPONENTS@ -MCA_pmix_psec_ALL_SUBDIRS = @MCA_pmix_psec_ALL_SUBDIRS@ -MCA_pmix_psec_DSO_COMPONENTS = @MCA_pmix_psec_DSO_COMPONENTS@ -MCA_pmix_psec_DSO_SUBDIRS = @MCA_pmix_psec_DSO_SUBDIRS@ -MCA_pmix_psec_STATIC_COMPONENTS = @MCA_pmix_psec_STATIC_COMPONENTS@ -MCA_pmix_psec_STATIC_LTLIBS = @MCA_pmix_psec_STATIC_LTLIBS@ -MCA_pmix_psec_STATIC_SUBDIRS = @MCA_pmix_psec_STATIC_SUBDIRS@ -MCA_pmix_psensor_ALL_COMPONENTS = @MCA_pmix_psensor_ALL_COMPONENTS@ -MCA_pmix_psensor_ALL_SUBDIRS = @MCA_pmix_psensor_ALL_SUBDIRS@ -MCA_pmix_psensor_DSO_COMPONENTS = @MCA_pmix_psensor_DSO_COMPONENTS@ -MCA_pmix_psensor_DSO_SUBDIRS = @MCA_pmix_psensor_DSO_SUBDIRS@ -MCA_pmix_psensor_STATIC_COMPONENTS = @MCA_pmix_psensor_STATIC_COMPONENTS@ -MCA_pmix_psensor_STATIC_LTLIBS = @MCA_pmix_psensor_STATIC_LTLIBS@ -MCA_pmix_psensor_STATIC_SUBDIRS = @MCA_pmix_psensor_STATIC_SUBDIRS@ -MCA_pmix_pshmem_ALL_COMPONENTS = @MCA_pmix_pshmem_ALL_COMPONENTS@ -MCA_pmix_pshmem_ALL_SUBDIRS = @MCA_pmix_pshmem_ALL_SUBDIRS@ -MCA_pmix_pshmem_DSO_COMPONENTS = @MCA_pmix_pshmem_DSO_COMPONENTS@ -MCA_pmix_pshmem_DSO_SUBDIRS = @MCA_pmix_pshmem_DSO_SUBDIRS@ -MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ -MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ -MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ -MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ -MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ -MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ -MCA_pmix_ptl_DSO_SUBDIRS = @MCA_pmix_ptl_DSO_SUBDIRS@ -MCA_pmix_ptl_STATIC_COMPONENTS = @MCA_pmix_ptl_STATIC_COMPONENTS@ -MCA_pmix_ptl_STATIC_LTLIBS = @MCA_pmix_ptl_STATIC_LTLIBS@ -MCA_pmix_ptl_STATIC_SUBDIRS = @MCA_pmix_ptl_STATIC_SUBDIRS@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PERL = @PERL@ -PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ -PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ -PMIX_ASM_SUPPORT_64BIT = @PMIX_ASM_SUPPORT_64BIT@ -PMIX_ASM_TEXT = @PMIX_ASM_TEXT@ -PMIX_ASM_TYPE = @PMIX_ASM_TYPE@ -PMIX_ASSEMBLY_ARCH = @PMIX_ASSEMBLY_ARCH@ -PMIX_ASSEMBLY_BUILTIN = @PMIX_ASSEMBLY_BUILTIN@ -PMIX_ASSEMBLY_FORMAT = @PMIX_ASSEMBLY_FORMAT@ -PMIX_AS_GLOBAL = @PMIX_AS_GLOBAL@ -PMIX_AS_LABEL_SUFFIX = @PMIX_AS_LABEL_SUFFIX@ -PMIX_BUILT_TEST_PREFIX = @PMIX_BUILT_TEST_PREFIX@ -PMIX_CC_ABSOLUTE = @PMIX_CC_ABSOLUTE@ -PMIX_COMPONENT_LIBRARY_PATHS = @PMIX_COMPONENT_LIBRARY_PATHS@ -PMIX_CONFIGURE_CLI = @PMIX_CONFIGURE_CLI@ -PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ -PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ -PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ -PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ -PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ -PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ -PMIX_EXTRA_LIB = @PMIX_EXTRA_LIB@ -PMIX_EXTRA_LTLIB = @PMIX_EXTRA_LTLIB@ -PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ -PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ -PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ -PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ -PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ -PMIX_REPO_REV = @PMIX_REPO_REV@ -PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ -PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ -PMIX_VERSION = @PMIX_VERSION@ -PMIX_top_builddir = @PMIX_top_builddir@ -PMIX_top_srcdir = @PMIX_top_srcdir@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_prefix_program = @ac_prefix_program@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -libmca_common_dstore_so_version = @libmca_common_dstore_so_version@ -libpmi2_so_version = @libpmi2_so_version@ -libpmi_so_version = @libpmi_so_version@ -libpmix_so_version = @libpmix_so_version@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ -pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ -pmix_pdl_plibltdl_LDFLAGS = @pmix_pdl_plibltdl_LDFLAGS@ -pmix_pdl_plibltdl_LIBS = @pmix_pdl_plibltdl_LIBS@ -pmixdatadir = @pmixdatadir@ -pmixincludedir = @pmixincludedir@ -pmixlibdir = @pmixlibdir@ -pmixmajor = @pmixmajor@ -pmixminor = @pmixminor@ -pmixnumeric = @pmixnumeric@ -pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -psec_munge_CPPFLAGS = @psec_munge_CPPFLAGS@ -psec_munge_LDFLAGS = @psec_munge_LDFLAGS@ -psec_munge_LIBS = @psec_munge_LIBS@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CPPFLAGS = $(pnet_opa_CPPFLAGS) -headers = pnet_opa.h -sources = \ - pnet_opa_component.c \ - pnet_opa.c - -@MCA_BUILD_pmix_pnet_opa_DSO_FALSE@lib = libmca_pnet_opa.la - -# Make the output library in this directory, and name it either -# mca__.la (for DSO builds) or libmca__.la -# (for static builds). -@MCA_BUILD_pmix_pnet_opa_DSO_TRUE@lib = -@MCA_BUILD_pmix_pnet_opa_DSO_FALSE@lib_sources = $(headers) $(sources) -@MCA_BUILD_pmix_pnet_opa_DSO_TRUE@lib_sources = -@MCA_BUILD_pmix_pnet_opa_DSO_FALSE@component = -@MCA_BUILD_pmix_pnet_opa_DSO_TRUE@component = mca_pnet_opa.la -@MCA_BUILD_pmix_pnet_opa_DSO_FALSE@component_sources = -@MCA_BUILD_pmix_pnet_opa_DSO_TRUE@component_sources = $(headers) $(sources) -mcacomponentdir = $(pmixlibdir) -mcacomponent_LTLIBRARIES = $(component) -mca_pnet_opa_la_SOURCES = $(component_sources) -mca_pnet_opa_la_LIBADD = $(pnet_opa_LIBS) $(am__append_1) -mca_pnet_opa_la_LDFLAGS = -module -avoid-version $(pnet_opa_LDFLAGS) -noinst_LTLIBRARIES = $(lib) -libmca_pnet_opa_la_SOURCES = $(lib_sources) -libmca_pnet_opa_la_LIBADD = $(pnet_opa_LIBS) -libmca_pnet_opa_la_LDFLAGS = -module -avoid-version $(pnet_opa_LDFLAGS) -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/mca/pnet/opa/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/mca/pnet/opa/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-mcacomponentLTLIBRARIES: $(mcacomponent_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(mcacomponentdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(mcacomponentdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(mcacomponentdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(mcacomponentdir)"; \ - } - -uninstall-mcacomponentLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(mcacomponentdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(mcacomponentdir)/$$f"; \ - done - -clean-mcacomponentLTLIBRARIES: - -test -z "$(mcacomponent_LTLIBRARIES)" || rm -f $(mcacomponent_LTLIBRARIES) - @list='$(mcacomponent_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libmca_pnet_opa.la: $(libmca_pnet_opa_la_OBJECTS) $(libmca_pnet_opa_la_DEPENDENCIES) $(EXTRA_libmca_pnet_opa_la_DEPENDENCIES) - $(AM_V_CCLD)$(libmca_pnet_opa_la_LINK) $(am_libmca_pnet_opa_la_rpath) $(libmca_pnet_opa_la_OBJECTS) $(libmca_pnet_opa_la_LIBADD) $(LIBS) - -mca_pnet_opa.la: $(mca_pnet_opa_la_OBJECTS) $(mca_pnet_opa_la_DEPENDENCIES) $(EXTRA_mca_pnet_opa_la_DEPENDENCIES) - $(AM_V_CCLD)$(mca_pnet_opa_la_LINK) $(am_mca_pnet_opa_la_rpath) $(mca_pnet_opa_la_OBJECTS) $(mca_pnet_opa_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pnet_opa.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pnet_opa_component.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) -installdirs: - for dir in "$(DESTDIR)$(mcacomponentdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ - clean-noinstLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-mcacomponentLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-mcacomponentLTLIBRARIES - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-mcacomponentLTLIBRARIES \ - clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-mcacomponentLTLIBRARIES install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am \ - uninstall-mcacomponentLTLIBRARIES - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/pnet_opa.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/pnet_opa.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/pnet_opa.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/pnet_opa.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,738 +0,0 @@ -/* - * Copyright (c) 2015-2019 Intel, Inc. All rights reserved. - * Copyright (c) 2016 IBM Corporation. All rights reserved. - * - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include - -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_STAT_H -#include -#endif -#ifdef HAVE_FCNTL_H -#include -#endif -#include - -#if PMIX_WANT_OPAMGT -#include -#include -#endif - -#include - -#include "src/mca/base/pmix_mca_base_var.h" -#include "src/class/pmix_list.h" -#include "src/include/pmix_socket_errno.h" -#include "src/include/pmix_globals.h" -#include "src/class/pmix_list.h" -#include "src/util/alfg.h" -#include "src/util/argv.h" -#include "src/util/error.h" -#include "src/util/output.h" -#include "src/util/pmix_environ.h" -#include "src/mca/preg/preg.h" -#include "src/hwloc/hwloc-internal.h" - -#include "src/mca/pnet/pnet.h" -#include "src/mca/pnet/base/base.h" -#include "pnet_opa.h" - -static pmix_status_t opa_init(void); -static void opa_finalize(void); -static pmix_status_t allocate(pmix_namespace_t *nptr, - pmix_info_t *info, - pmix_list_t *ilist); -static pmix_status_t setup_local_network(pmix_namespace_t *nptr, - pmix_info_t info[], - size_t ninfo); -static pmix_status_t setup_fork(pmix_namespace_t *nptr, - const pmix_proc_t *proc, - char ***env); -static void child_finalized(pmix_proc_t *peer); -static void local_app_finalized(pmix_namespace_t *nptr); -static void deregister_nspace(pmix_namespace_t *nptr); -static pmix_status_t collect_inventory(pmix_info_t directives[], size_t ndirs, - pmix_inventory_cbfunc_t cbfunc, void *cbdata); -static pmix_status_t deliver_inventory(pmix_info_t info[], size_t ninfo, - pmix_info_t directives[], size_t ndirs, - pmix_op_cbfunc_t cbfunc, void *cbdata); - -pmix_pnet_module_t pmix_opa_module = { - .name = "opa", - .init = opa_init, - .finalize = opa_finalize, - .allocate = allocate, - .setup_local_network = setup_local_network, - .setup_fork = setup_fork, - .child_finalized = child_finalized, - .local_app_finalized = local_app_finalized, - .deregister_nspace = deregister_nspace, - .collect_inventory = collect_inventory, - .deliver_inventory = deliver_inventory -}; - -/* local object definitions */ -typedef struct { - pmix_list_item_t super; - char *name; - char *value; -} opa_attr_t; -static void atcon(opa_attr_t *p) -{ - p->name = NULL; - p->value = NULL; -} -static void atdes(opa_attr_t *p) -{ - if (NULL != p->name) { - free(p->name); - } - if (NULL != p->value) { - free(p->value); - } -} -static PMIX_CLASS_INSTANCE(opa_attr_t, - pmix_list_item_t, - atcon, atdes); - -typedef struct { - pmix_list_item_t super; - char *device; - pmix_list_t attributes; -} opa_resource_t; -static void rcon(opa_resource_t *p) -{ - p->device = NULL; - PMIX_CONSTRUCT(&p->attributes, pmix_list_t); -} -static void rdes(opa_resource_t *p) -{ - if (NULL != p->device) { - free(p->device); - } - PMIX_LIST_DESTRUCT(&p->attributes); -} -static PMIX_CLASS_INSTANCE(opa_resource_t, - pmix_list_item_t, - rcon, rdes); - - -static pmix_status_t opa_init(void) -{ - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet: opa init"); - return PMIX_SUCCESS; -} - -static void opa_finalize(void) -{ - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet: opa finalize"); -} - -/* some network transports require a little bit of information to - * "pre-condition" them - i.e., to setup their individual transport - * connections so they can generate their endpoint addresses. This - * function provides a means for doing so. The resulting info is placed - * into the app_context's env array so it will automatically be pushed - * into the environment of every MPI process when launched. - */ - -static inline void transports_use_rand(uint64_t* unique_key) { - pmix_rng_buff_t rng; - pmix_srand(&rng,(unsigned int)time(NULL)); - unique_key[0] = pmix_rand(&rng); - unique_key[1] = pmix_rand(&rng); -} - -static char* transports_print(uint64_t *unique_key) -{ - unsigned int *int_ptr; - size_t i, j, string_key_len, written_len; - char *string_key = NULL, *format = NULL; - - /* string is two 64 bit numbers printed in hex with a dash between - * and zero padding. - */ - string_key_len = (sizeof(uint64_t) * 2) * 2 + strlen("-") + 1; - string_key = (char*) malloc(string_key_len); - if (NULL == string_key) { - return NULL; - } - - string_key[0] = '\0'; - written_len = 0; - - /* get a format string based on the length of an unsigned int. We - * want to have zero padding for sizeof(unsigned int) * 2 - * characters -- when printing as a hex number, each byte is - * represented by 2 hex characters. Format will contain something - * that looks like %08lx, where the number 8 might be a different - * number if the system has a different sized long (8 would be for - * sizeof(int) == 4)). - */ - if (0 > asprintf(&format, "%%0%dx", (int)(sizeof(unsigned int)) * 2)) { - return NULL; - } - - /* print the first number */ - int_ptr = (unsigned int*) &unique_key[0]; - for (i = 0 ; i < sizeof(uint64_t) / sizeof(unsigned int) ; ++i) { - if (0 == int_ptr[i]) { - /* inject some energy */ - for (j=0; j < sizeof(unsigned int); j++) { - int_ptr[i] |= j << j; - } - } - snprintf(string_key + written_len, - string_key_len - written_len, - format, int_ptr[i]); - written_len = strlen(string_key); - } - - /* print the middle dash */ - snprintf(string_key + written_len, string_key_len - written_len, "-"); - written_len = strlen(string_key); - - /* print the second number */ - int_ptr = (unsigned int*) &unique_key[1]; - for (i = 0 ; i < sizeof(uint64_t) / sizeof(unsigned int) ; ++i) { - if (0 == int_ptr[i]) { - /* inject some energy */ - for (j=0; j < sizeof(unsigned int); j++) { - int_ptr[i] |= j << j; - } - } - snprintf(string_key + written_len, - string_key_len - written_len, - format, int_ptr[i]); - written_len = strlen(string_key); - } - free(format); - - return string_key; -} - -/* NOTE: if there is any binary data to be transferred, then - * this function MUST pack it for transport as the host will - * not know how to do so */ -static pmix_status_t allocate(pmix_namespace_t *nptr, - pmix_info_t *info, - pmix_list_t *ilist) -{ - uint64_t unique_key[2]; - char *string_key, *cs_env; - int fd_rand; - size_t bytes_read; - pmix_kval_t *kv; - bool envars, seckeys; - pmix_status_t rc; - - envars = false; - seckeys = false; - - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:opa:allocate for nspace %s", nptr->nspace); - - if (NULL == info) { - return PMIX_ERR_TAKE_NEXT_OPTION; - } - - if (PMIX_CHECK_KEY(info, PMIX_SETUP_APP_ENVARS)) { - envars = PMIX_INFO_TRUE(info); - } else if (PMIX_CHECK_KEY(info, PMIX_SETUP_APP_ALL)) { - envars = PMIX_INFO_TRUE(info); - seckeys = PMIX_INFO_TRUE(info); - } else if (PMIX_CHECK_KEY(info, PMIX_SETUP_APP_NONENVARS) || - PMIX_CHECK_KEY(info, PMIX_ALLOC_NETWORK_SEC_KEY)) { - seckeys = PMIX_INFO_TRUE(info); - } - - if (seckeys) { - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet: opa providing seckeys"); - /* put the number here - or else create an appropriate string. this just needs to - * eventually be a string variable - */ - if(-1 == (fd_rand = open("/dev/urandom", O_RDONLY))) { - transports_use_rand(unique_key); - } else { - bytes_read = read(fd_rand, (char *) unique_key, 16); - if(bytes_read != 16) { - transports_use_rand(unique_key); - } - close(fd_rand); - } - - if (NULL == (string_key = transports_print(unique_key))) { - PMIX_ERROR_LOG(PMIX_ERR_OUT_OF_RESOURCE); - return PMIX_ERR_OUT_OF_RESOURCE; - } - - if (PMIX_SUCCESS != pmix_mca_base_var_env_name("opa_precondition_transports", &cs_env)) { - PMIX_ERROR_LOG(PMIX_ERR_OUT_OF_RESOURCE); - free(string_key); - return PMIX_ERR_OUT_OF_RESOURCE; - } - - kv = PMIX_NEW(pmix_kval_t); - if (NULL == kv) { - free(string_key); - free(cs_env); - return PMIX_ERR_OUT_OF_RESOURCE; - } - kv->key = strdup(PMIX_SET_ENVAR); - kv->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); - if (NULL == kv->value) { - free(string_key); - free(cs_env); - PMIX_RELEASE(kv); - return PMIX_ERR_OUT_OF_RESOURCE; - } - kv->value->type = PMIX_ENVAR; - PMIX_ENVAR_LOAD(&kv->value->data.envar, cs_env, string_key, ':'); - pmix_list_append(ilist, &kv->super); - free(cs_env); - free(string_key); - if (!envars) { - /* providing envars does not constitute allocating resources */ - return PMIX_ERR_TAKE_NEXT_OPTION; - } - } - - if (envars) { - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet: opa harvesting envars %s excluding %s", - (NULL == mca_pnet_opa_component.incparms) ? "NONE" : mca_pnet_opa_component.incparms, - (NULL == mca_pnet_opa_component.excparms) ? "NONE" : mca_pnet_opa_component.excparms); - /* harvest envars to pass along */ - if (NULL != mca_pnet_opa_component.include) { - rc = pmix_pnet_base_harvest_envars(mca_pnet_opa_component.include, - mca_pnet_opa_component.exclude, - ilist); - if (PMIX_SUCCESS == rc) { - return PMIX_ERR_TAKE_NEXT_OPTION; - } - return rc; - } - } - - /* we don't currently manage OPA resources */ - return PMIX_ERR_TAKE_NEXT_OPTION; -} - -static pmix_status_t setup_local_network(pmix_namespace_t *nptr, - pmix_info_t info[], - size_t ninfo) -{ - size_t n; - pmix_kval_t *kv; - - - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet: opa setup_local_network"); - - if (NULL != info) { - for (n=0; n < ninfo; n++) { - if (0 == strncmp(info[n].key, PMIX_PNET_OPA_BLOB, PMIX_MAX_KEYLEN)) { - /* the byte object contains a packed blob that needs to be - * cached until we determine we have local procs for this - * nspace, and then delivered to the local OPA driver when - * we have a means for doing so */ - kv = PMIX_NEW(pmix_kval_t); - if (NULL == kv) { - return PMIX_ERR_NOMEM; - } - kv->key = strdup(info[n].key); - kv->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); - if (NULL == kv->value) { - PMIX_RELEASE(kv); - return PMIX_ERR_NOMEM; - } - pmix_value_xfer(kv->value, &info[n].value); - if (PMIX_ENVAR == kv->value->type) { - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:opa:setup_local_network adding %s=%s to environment", - kv->value->data.envar.envar, kv->value->data.envar.value); - } else { - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:opa:setup_local_network loading blob"); - } - pmix_list_append(&nptr->setup_data, &kv->super); - } - } - } - - return PMIX_SUCCESS; -} - -static pmix_status_t setup_fork(pmix_namespace_t *nptr, - const pmix_proc_t *proc, - char ***env) -{ - pmix_kval_t *kv, *next; - - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet: opa setup fork"); - - /* if there are any cached nspace prep blobs, execute them, - * ensuring that we only do so once per nspace - note that - * we don't expect to find any envars here, though we could - * have included some if we needed to set them per-client */ - PMIX_LIST_FOREACH_SAFE(kv, next, &nptr->setup_data, pmix_kval_t) { - if (0 == strcmp(kv->key, PMIX_PNET_OPA_BLOB)) { - pmix_list_remove_item(&nptr->setup_data, &kv->super); - /* deliver to the local lib */ - PMIX_RELEASE(kv); - } - } - return PMIX_SUCCESS; -} - -static void child_finalized(pmix_proc_t *peer) -{ - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:opa child finalized"); -} - -static void local_app_finalized(pmix_namespace_t *nptr) -{ - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:opa app finalized"); - -} - -static void deregister_nspace(pmix_namespace_t *nptr) -{ - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:opa deregister nspace"); - -} - -static pmix_status_t collect_inventory(pmix_info_t directives[], size_t ndirs, - pmix_inventory_cbfunc_t cbfunc, void *cbdata) -{ - pmix_inventory_rollup_t *cd = (pmix_inventory_rollup_t*)cbdata; -#if PMIX_HAVE_HWLOC - hwloc_obj_t obj; -#endif - unsigned n; - pmix_status_t rc; - pmix_kval_t *kv; - pmix_buffer_t bucket, pbkt; - bool found = false; - pmix_byte_object_t pbo; - char nodename[PMIX_MAXHOSTNAMELEN] = {0}, *foo; - - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:opa collect inventory"); - - /* setup the bucket - we will pass the results as a blob */ - PMIX_CONSTRUCT(&bucket, pmix_buffer_t); - /* pack our node name */ - gethostname(nodename, sizeof(nodename)-1); - foo = &nodename[0]; - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &bucket, &foo, 1, PMIX_STRING); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&bucket); - return rc; - } - -#if PMIX_HAVE_HWLOC - if (NULL == pmix_hwloc_topology) { - goto query; - } - - /* search the topology for OPA devices */ - obj = hwloc_get_next_osdev(pmix_hwloc_topology, NULL); - while (NULL != obj) { - if (obj->attr->osdev.type != HWLOC_OBJ_OSDEV_OPENFABRICS || - 0 != strncmp(obj->name, "hfi", 3)) { - obj = hwloc_get_next_osdev(pmix_hwloc_topology, obj); - continue; - } - found = true; - if (9 < pmix_output_get_verbosity(pmix_pnet_base_framework.framework_output)) { - /* dump the discovered node resources */ - pmix_output(0, "OPA resource discovered on node: %s", nodename); - pmix_output(0, "\tDevice name: %s", obj->name); - for (n=0; n < obj->infos_count; n++) { - pmix_output(0, "\t\t%s: %s", obj->infos[n].name, obj->infos[n].value); - } - } - /* pack the name of the device */ - PMIX_CONSTRUCT(&pbkt, pmix_buffer_t); - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &pbkt, &obj->name, 1, PMIX_STRING); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&pbkt); - PMIX_DESTRUCT(&bucket); - return rc; - } - /* pack the number of attributes */ - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &pbkt, &obj->infos_count, 1, PMIX_UINT); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&pbkt); - PMIX_DESTRUCT(&bucket); - return rc; - } - /* pack each descriptive object */ - for (n=0; n < obj->infos_count; n++) { - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &pbkt, &obj->infos[n].name, 1, PMIX_STRING); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&pbkt); - PMIX_DESTRUCT(&bucket); - return rc; - } - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &pbkt, &obj->infos[n].value, 1, PMIX_STRING); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&pbkt); - PMIX_DESTRUCT(&bucket); - return rc; - } - } - /* extract the resulting blob - this is a device unit */ - PMIX_UNLOAD_BUFFER(&pbkt, pbo.bytes, pbo.size); - /* now load that into the blob */ - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &bucket, &pbo, 1, PMIX_BYTE_OBJECT); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_BYTE_OBJECT_DESTRUCT(&pbo); - PMIX_DESTRUCT(&bucket); - return rc; - } - obj = hwloc_get_next_osdev(pmix_hwloc_topology, obj); - } - - query: -#if 0 -#if PMIX_WANT_OPAMGT - if (PMIX_PEER_IS_GATEWAY(pmix_globals.mypeer)) { - /* collect the switch information from the FM */ - OMGT_STATUS_T status = OMGT_STATUS_SUCCESS; - struct omgt_port * port = NULL; - omgt_sa_selector_t selector; - - /* create a session */ - status = omgt_open_port_by_num(&port, 1 /* hfi */, 1 /* port */, NULL); - if (OMGT_STATUS_SUCCESS != status) { - pmix_output_verbose(1, pmix_pnet_base_framework.framework_output, - "Unable to open port to FM"); - goto complete; - } - /* specify how and what we want to query by */ - selector.InputType = InputTypeLid; - selector.InputValue.PortInfoRecord.Lid = 1; - - } -#endif -#endif - /* if we found any devices, then return the blob */ - if (!found) { - PMIX_DESTRUCT(&bucket); - return PMIX_ERR_TAKE_NEXT_OPTION; - } - - /* extract the resulting blob */ - PMIX_UNLOAD_BUFFER(&bucket, pbo.bytes, pbo.size); - kv = PMIX_NEW(pmix_kval_t); - kv->key = strdup(PMIX_OPA_INVENTORY_KEY); - PMIX_VALUE_CREATE(kv->value, 1); - pmix_value_load(kv->value, &pbo, PMIX_BYTE_OBJECT); - PMIX_BYTE_OBJECT_DESTRUCT(&pbo); - pmix_list_append(&cd->payload, &kv->super); - -#else // have_hwloc -#if 0 -#if PMIX_WANT_OPAMGT - if (PMIX_PEER_IS_GATEWAY(pmix_globals.mypeer)) { - /* query the FM for the inventory */ - } - - complete: - /* if we found any devices, then return the blob */ - if (!found) { - PMIX_DESTRUCT(&bucket); - return PMIX_ERR_TAKE_NEXT_OPTION; - } - - /* extract the resulting blob */ - PMIX_UNLOAD_BUFFER(&bucket, pbo.bytes, pbo.size); - kv = PMIX_NEW(pmix_kval_t); - kv->key = strdup(PMIX_OPA_INVENTORY_KEY); - PMIX_VALUE_CREATE(kv->value, 1); - pmix_value_load(kv->value, &pbo, PMIX_BYTE_OBJECT); - PMIX_BYTE_OBJECT_DESTRUCT(&pbo); - pmix_list_append(&cd->payload, &kv->super); - -#endif -#endif - return PMIX_ERR_TAKE_NEXT_OPTION; -#endif // have_hwloc - - return PMIX_SUCCESS; -} - -static pmix_status_t deliver_inventory(pmix_info_t info[], size_t ninfo, - pmix_info_t directives[], size_t ndirs, - pmix_op_cbfunc_t cbfunc, void *cbdata) -{ - pmix_buffer_t bkt, pbkt; - size_t n; - int32_t cnt; - unsigned m, nattrs; - char *hostname; - pmix_byte_object_t pbo; - pmix_pnet_node_t *nd, *ndptr; - pmix_pnet_resource_t *lt, *lst; - opa_attr_t *attr; - opa_resource_t *res; - pmix_status_t rc; - - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:opa deliver inventory"); - - for (n=0; n < ninfo; n++) { - if (0 == strncmp(info[n].key, PMIX_OPA_INVENTORY_KEY, PMIX_MAX_KEYLEN)) { - /* this is our inventory in the form of a blob */ - PMIX_CONSTRUCT(&bkt,pmix_buffer_t); - PMIX_LOAD_BUFFER(pmix_globals.mypeer, &bkt, - info[n].value.data.bo.bytes, - info[n].value.data.bo.size); - /* first is the host this came from */ - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &bkt, &hostname, &cnt, PMIX_STRING); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - /* must _not_ destruct bkt as we don't - * own the bytes! */ - return rc; - } - /* do we already have this node? */ - nd = NULL; - PMIX_LIST_FOREACH(ndptr, &pmix_pnet_globals.nodes, pmix_pnet_node_t) { - if (0 == strcmp(hostname, ndptr->name)) { - nd = ndptr; - break; - } - } - if (NULL == nd) { - nd = PMIX_NEW(pmix_pnet_node_t); - nd->name = strdup(hostname); - pmix_list_append(&pmix_pnet_globals.nodes, &nd->super); - } - /* does this node already have an OPA entry? */ - lst = NULL; - PMIX_LIST_FOREACH(lt, &nd->resources, pmix_pnet_resource_t) { - if (0 == strcmp(lt->name, "opa")) { - lst = lt; - break; - } - } - if (NULL == lst) { - lst = PMIX_NEW(pmix_pnet_resource_t); - lst->name = strdup("opa"); - pmix_list_append(&nd->resources, &lst->super); - } - /* each device was packed as a "blob" */ - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &bkt, &pbo, &cnt, PMIX_BYTE_OBJECT); - while (PMIX_SUCCESS == rc) { - /* load the blob for unpacking */ - PMIX_CONSTRUCT(&pbkt, pmix_buffer_t); - PMIX_LOAD_BUFFER(pmix_globals.mypeer, &pbkt, - pbo.bytes, pbo.size); - - res = PMIX_NEW(opa_resource_t); - /* starts with the name of the device */ - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &pbkt, &res->device, &cnt, PMIX_STRING); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&pbkt); - PMIX_RELEASE(res); - return rc; - } - /* next comes the numbers of attributes for that device */ - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &pbkt, &nattrs, &cnt, PMIX_UINT); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&pbkt); - PMIX_RELEASE(res); - return rc; - } - for (m=0; m < nattrs; m++) { - attr = PMIX_NEW(opa_attr_t); - /* unpack the name of the attribute */ - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &pbkt, &attr->name, &cnt, PMIX_STRING); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&pbkt); - PMIX_RELEASE(attr); - PMIX_RELEASE(res); - return rc; - } - /* unpack the attribute value */ - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &pbkt, &attr->value, &cnt, PMIX_STRING); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&pbkt); - PMIX_RELEASE(attr); - PMIX_RELEASE(res); - return rc; - } - pmix_list_append(&res->attributes, &attr->super); - } - pmix_list_append(&lst->resources, &res->super); - PMIX_DESTRUCT(&pbkt); - - /* get the next device unit */ - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &bkt, &pbo, &cnt, PMIX_BYTE_OBJECT); - } - if (5 < pmix_output_get_verbosity(pmix_pnet_base_framework.framework_output)) { - /* dump the resulting node resources */ - pmix_output(0, "OPA resources for node: %s", nd->name); - PMIX_LIST_FOREACH(lt, &nd->resources, pmix_pnet_resource_t) { - if (0 == strcmp(lt->name, "opa")) { - PMIX_LIST_FOREACH(res, <->resources, opa_resource_t) { - pmix_output(0, "\tDevice: %s", res->device); - PMIX_LIST_FOREACH(attr, &res->attributes, opa_attr_t) { - pmix_output(0, "\t\t%s: %s", attr->name, attr->value); - } - } - } - } - } - } - } - - return PMIX_SUCCESS; -} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/pnet_opa_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/pnet_opa_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/pnet_opa_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/pnet_opa_component.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,118 +0,0 @@ -/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ -/* - * Copyright (c) 2004-2008 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2005 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * Copyright (c) 2004-2005 The Regents of the University of California. - * All rights reserved. - * Copyright (c) 2015 Los Alamos National Security, LLC. All rights - * reserved. - * Copyright (c) 2016-2019 Intel, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - * - * These symbols are in a file by themselves to provide nice linker - * semantics. Since linkers generally pull in symbols by object - * files, keeping these symbols as the only symbols in this file - * prevents utility programs such as "ompi_info" from having to import - * entire components just to query their version and parameters. - */ - -#include -#include "pmix_common.h" - -#include "src/util/argv.h" -#include "src/mca/pnet/pnet.h" -#include "pnet_opa.h" - -static pmix_status_t component_open(void); -static pmix_status_t component_close(void); -static pmix_status_t component_query(pmix_mca_base_module_t **module, int *priority); -static pmix_status_t component_register(void); - -/* - * Instantiate the public struct with all of our public information - * and pointers to our public functions in it - */ -pmix_pnet_opa_component_t mca_pnet_opa_component = { - .super = { - .base = { - PMIX_PNET_BASE_VERSION_1_0_0, - - /* Component name and version */ - .pmix_mca_component_name = "opa", - PMIX_MCA_BASE_MAKE_VERSION(component, - PMIX_MAJOR_VERSION, - PMIX_MINOR_VERSION, - PMIX_RELEASE_VERSION), - - /* Component open and close functions */ - .pmix_mca_open_component = component_open, - .pmix_mca_close_component = component_close, - .pmix_mca_register_component_params = component_register, - .pmix_mca_query_component = component_query, - }, - .data = { - /* The component is checkpoint ready */ - PMIX_MCA_BASE_METADATA_PARAM_CHECKPOINT - } - }, - .include = NULL, - .exclude = NULL -}; - -static pmix_status_t component_register(void) -{ - pmix_mca_base_component_t *component = &mca_pnet_opa_component.super.base; - - mca_pnet_opa_component.incparms = "HFI_*,PSM2_*"; - (void)pmix_mca_base_component_var_register(component, "include_envars", - "Comma-delimited list of envars to harvest (\'*\' and \'?\' supported)", - PMIX_MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, - PMIX_INFO_LVL_2, - PMIX_MCA_BASE_VAR_SCOPE_LOCAL, - &mca_pnet_opa_component.incparms); - if (NULL != mca_pnet_opa_component.incparms) { - mca_pnet_opa_component.include = pmix_argv_split(mca_pnet_opa_component.incparms, ','); - } - - mca_pnet_opa_component.excparms = NULL; - (void)pmix_mca_base_component_var_register(component, "exclude_envars", - "Comma-delimited list of envars to exclude (\'*\' and \'?\' supported)", - PMIX_MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, - PMIX_INFO_LVL_2, - PMIX_MCA_BASE_VAR_SCOPE_LOCAL, - &mca_pnet_opa_component.excparms); - if (NULL != mca_pnet_opa_component.excparms) { - mca_pnet_opa_component.exclude = pmix_argv_split(mca_pnet_opa_component.excparms, ','); - } - - return PMIX_SUCCESS; -} - -static pmix_status_t component_open(void) -{ - return PMIX_SUCCESS; -} - - -static pmix_status_t component_query(pmix_mca_base_module_t **module, int *priority) -{ - *priority = 10; - *module = (pmix_mca_base_module_t *)&pmix_opa_module; - return PMIX_SUCCESS; -} - - -static pmix_status_t component_close(void) -{ - return PMIX_SUCCESS; -} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/pnet_opa.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/pnet_opa.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/pnet_opa.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/opa/pnet_opa.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2015-2019 Intel, Inc. All rights reserved. - * - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef PMIX_PNET_OPA_H -#define PMIX_PNET_OPA_H - -#include - - -#include "src/mca/pnet/pnet.h" - -BEGIN_C_DECLS - -typedef struct { - pmix_pnet_base_component_t super; - char *incparms; - char *excparms; - char **include; - char **exclude; -} pmix_pnet_opa_component_t; - -/* the component must be visible data for the linker to find it */ -PMIX_EXPORT extern pmix_pnet_opa_component_t mca_pnet_opa_component; -extern pmix_pnet_module_t pmix_opa_module; - -/* define a key for any blob we need to send in a launch msg */ -#define PMIX_PNET_OPA_BLOB "pmix.pnet.opa.blob" - -/* define an inventory key */ -#define PMIX_OPA_INVENTORY_KEY "pmix.opa.inventory" - -END_C_DECLS - -#endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/pnet.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/pnet.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/pnet.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/pnet.h 2022-05-29 09:51:40.000000000 +0000 @@ -4,7 +4,7 @@ * * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2018 Intel, Inc. All rights reserved. + * Copyright (c) 2018-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -26,7 +26,8 @@ #ifndef PMIX_PNET_H #define PMIX_PNET_H -#include +#include "src/include/pmix_config.h" +#include "include/pmix.h" #include "src/class/pmix_list.h" #include "src/mca/mca.h" @@ -61,7 +62,7 @@ * for forwarding to compute nodes, or allocation of static endpts */ typedef pmix_status_t (*pmix_pnet_base_module_allocate_fn_t)(pmix_namespace_t *nptr, - pmix_info_t *info, + pmix_info_t info[], size_t ninfo, pmix_list_t *ilist); /** @@ -145,12 +146,14 @@ pmix_info_t directives[], size_t ndirs, pmix_op_cbfunc_t cbfunc, void *cbdata); - /** - * Base structure for a PNET module + * Base structure for a PNET module. Each component should malloc a + * copy of the module structure for each fabric plane they support. */ typedef struct { char *name; + /* provide a pointer to plane-specific metadata */ + void *plane; /* init/finalize */ pmix_pnet_base_module_init_fn_t init; pmix_pnet_base_module_fini_fn_t finalize; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,59 +0,0 @@ -# -*- makefile -*- -# -# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana -# University Research and Technology -# Corporation. All rights reserved. -# Copyright (c) 2004-2005 The University of Tennessee and The University -# of Tennessee Research Foundation. All rights -# reserved. -# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# Copyright (c) 2004-2005 The Regents of the University of California. -# All rights reserved. -# Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. -# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. -# Copyright (c) 2017 Research Organization for Information Science -# and Technology (RIST). All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -AM_CPPFLAGS = $(pnet_tcp_CPPFLAGS) - -headers = pnet_tcp.h -sources = \ - pnet_tcp_component.c \ - pnet_tcp.c - -# Make the output library in this directory, and name it either -# mca__.la (for DSO builds) or libmca__.la -# (for static builds). - -if MCA_BUILD_pmix_pnet_tcp_DSO -lib = -lib_sources = -component = mca_pnet_tcp.la -component_sources = $(headers) $(sources) -else -lib = libmca_pnet_tcp.la -lib_sources = $(headers) $(sources) -component = -component_sources = -endif - -mcacomponentdir = $(pmixlibdir) -mcacomponent_LTLIBRARIES = $(component) -mca_pnet_tcp_la_SOURCES = $(component_sources) -mca_pnet_tcp_la_LIBADD = $(pnet_tcp_LIBS) -mca_pnet_tcp_la_LDFLAGS = -module -avoid-version $(pnet_tcp_LDFLAGS) -if NEED_LIBPMIX -mca_pnet_tcp_la_LIBADD += $(top_builddir)/src/libpmix.la -endif - -noinst_LTLIBRARIES = $(lib) -libmca_pnet_tcp_la_SOURCES = $(lib_sources) -libmca_pnet_tcp_la_LIBADD = $(pnet_tcp_LIBS) -libmca_pnet_tcp_la_LDFLAGS = -module -avoid-version $(pnet_tcp_LDFLAGS) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,957 +0,0 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2014 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -*- makefile -*- -# -# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana -# University Research and Technology -# Corporation. All rights reserved. -# Copyright (c) 2004-2005 The University of Tennessee and The University -# of Tennessee Research Foundation. All rights -# reserved. -# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# Copyright (c) 2004-2005 The Regents of the University of California. -# All rights reserved. -# Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. -# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. -# Copyright (c) 2017 Research Organization for Information Science -# and Technology (RIST). All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -@NEED_LIBPMIX_TRUE@am__append_1 = $(top_builddir)/src/libpmix.la -subdir = src/mca/pnet/tcp -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ - $(top_srcdir)/config/libtool.m4 \ - $(top_srcdir)/config/ltoptions.m4 \ - $(top_srcdir)/config/ltsugar.m4 \ - $(top_srcdir)/config/ltversion.m4 \ - $(top_srcdir)/config/lt~obsolete.m4 \ - $(top_srcdir)/config/pmix.m4 \ - $(top_srcdir)/config/pmix_check_attributes.m4 \ - $(top_srcdir)/config/pmix_check_broken_qsort.m4 \ - $(top_srcdir)/config/pmix_check_compiler_version.m4 \ - $(top_srcdir)/config/pmix_check_icc.m4 \ - $(top_srcdir)/config/pmix_check_lock.m4 \ - $(top_srcdir)/config/pmix_check_os_flavors.m4 \ - $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ - $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ - $(top_srcdir)/config/pmix_check_vendor.m4 \ - $(top_srcdir)/config/pmix_check_visibility.m4 \ - $(top_srcdir)/config/pmix_check_withdir.m4 \ - $(top_srcdir)/config/pmix_config_asm.m4 \ - $(top_srcdir)/config/pmix_config_pthreads.m4 \ - $(top_srcdir)/config/pmix_config_subdir.m4 \ - $(top_srcdir)/config/pmix_config_subdir_args.m4 \ - $(top_srcdir)/config/pmix_config_threads.m4 \ - $(top_srcdir)/config/pmix_ensure_contains_optflags.m4 \ - $(top_srcdir)/config/pmix_functions.m4 \ - $(top_srcdir)/config/pmix_load_platform.m4 \ - $(top_srcdir)/config/pmix_mca.m4 \ - $(top_srcdir)/config/pmix_search_libs.m4 \ - $(top_srcdir)/config/pmix_set_mca_prefix.m4 \ - $(top_srcdir)/config/pmix_setup_cc.m4 \ - $(top_srcdir)/config/pmix_setup_cli.m4 \ - $(top_srcdir)/config/pmix_setup_hwloc.m4 \ - $(top_srcdir)/config/pmix_setup_libev.m4 \ - $(top_srcdir)/config/pmix_setup_libevent.m4 \ - $(top_srcdir)/config/pmix_setup_zlib.m4 \ - $(top_srcdir)/config/pmix_summary.m4 \ - $(top_srcdir)/config/pmix_try_assemble.m4 \ - $(top_srcdir)/config/autogen_found_items.m4 \ - $(top_srcdir)/src/mca/pdl/configure.m4 \ - $(top_srcdir)/src/mca/pinstalldirs/configure.m4 \ - $(top_srcdir)/src/mca/common/dstore/configure.m4 \ - $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ - $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ - $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ - $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ - $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ - $(top_srcdir)/src/mca/pif/bsdx_ipv6/configure.m4 \ - $(top_srcdir)/src/mca/pif/linux_ipv6/configure.m4 \ - $(top_srcdir)/src/mca/pif/posix_ipv4/configure.m4 \ - $(top_srcdir)/src/mca/pif/solaris_ipv6/configure.m4 \ - $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ - $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ - $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ - $(top_srcdir)/src/mca/psec/munge/configure.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/src/include/pmix_config.h \ - $(top_builddir)/include/pmix_common.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(mcacomponentdir)" -LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) -libmca_pnet_tcp_la_DEPENDENCIES = -am__libmca_pnet_tcp_la_SOURCES_DIST = pnet_tcp.h pnet_tcp_component.c \ - pnet_tcp.c -am__objects_1 = -am__objects_2 = pnet_tcp_component.lo pnet_tcp.lo -@MCA_BUILD_pmix_pnet_tcp_DSO_FALSE@am__objects_3 = $(am__objects_1) \ -@MCA_BUILD_pmix_pnet_tcp_DSO_FALSE@ $(am__objects_2) -am_libmca_pnet_tcp_la_OBJECTS = $(am__objects_3) -libmca_pnet_tcp_la_OBJECTS = $(am_libmca_pnet_tcp_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -libmca_pnet_tcp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(libmca_pnet_tcp_la_LDFLAGS) \ - $(LDFLAGS) -o $@ -@MCA_BUILD_pmix_pnet_tcp_DSO_FALSE@am_libmca_pnet_tcp_la_rpath = -mca_pnet_tcp_la_DEPENDENCIES = $(am__append_1) -am__mca_pnet_tcp_la_SOURCES_DIST = pnet_tcp.h pnet_tcp_component.c \ - pnet_tcp.c -@MCA_BUILD_pmix_pnet_tcp_DSO_TRUE@am__objects_4 = $(am__objects_1) \ -@MCA_BUILD_pmix_pnet_tcp_DSO_TRUE@ $(am__objects_2) -am_mca_pnet_tcp_la_OBJECTS = $(am__objects_4) -mca_pnet_tcp_la_OBJECTS = $(am_mca_pnet_tcp_la_OBJECTS) -mca_pnet_tcp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(mca_pnet_tcp_la_LDFLAGS) $(LDFLAGS) \ - -o $@ -@MCA_BUILD_pmix_pnet_tcp_DSO_TRUE@am_mca_pnet_tcp_la_rpath = -rpath \ -@MCA_BUILD_pmix_pnet_tcp_DSO_TRUE@ $(mcacomponentdir) -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/include -I$(top_builddir)/include -depcomp = $(SHELL) $(top_srcdir)/./config/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libmca_pnet_tcp_la_SOURCES) $(mca_pnet_tcp_la_SOURCES) -DIST_SOURCES = $(am__libmca_pnet_tcp_la_SOURCES_DIST) \ - $(am__mca_pnet_tcp_la_SOURCES_DIST) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/./config/depcomp -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCAS = @CCAS@ -CCASDEPMODE = @CCASDEPMODE@ -CCASFLAGS = @CCASFLAGS@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CLEANFILES = @CLEANFILES@ -CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ -MCA_pmix_FRAMEWORKS = @MCA_pmix_FRAMEWORKS@ -MCA_pmix_FRAMEWORKS_SUBDIRS = @MCA_pmix_FRAMEWORKS_SUBDIRS@ -MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ -MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ -MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ -MCA_pmix_FRAMEWORK_LIBS = @MCA_pmix_FRAMEWORK_LIBS@ -MCA_pmix_bfrops_ALL_COMPONENTS = @MCA_pmix_bfrops_ALL_COMPONENTS@ -MCA_pmix_bfrops_ALL_SUBDIRS = @MCA_pmix_bfrops_ALL_SUBDIRS@ -MCA_pmix_bfrops_DSO_COMPONENTS = @MCA_pmix_bfrops_DSO_COMPONENTS@ -MCA_pmix_bfrops_DSO_SUBDIRS = @MCA_pmix_bfrops_DSO_SUBDIRS@ -MCA_pmix_bfrops_STATIC_COMPONENTS = @MCA_pmix_bfrops_STATIC_COMPONENTS@ -MCA_pmix_bfrops_STATIC_LTLIBS = @MCA_pmix_bfrops_STATIC_LTLIBS@ -MCA_pmix_bfrops_STATIC_SUBDIRS = @MCA_pmix_bfrops_STATIC_SUBDIRS@ -MCA_pmix_common_ALL_COMPONENTS = @MCA_pmix_common_ALL_COMPONENTS@ -MCA_pmix_common_ALL_SUBDIRS = @MCA_pmix_common_ALL_SUBDIRS@ -MCA_pmix_common_DSO_COMPONENTS = @MCA_pmix_common_DSO_COMPONENTS@ -MCA_pmix_common_DSO_SUBDIRS = @MCA_pmix_common_DSO_SUBDIRS@ -MCA_pmix_common_STATIC_COMPONENTS = @MCA_pmix_common_STATIC_COMPONENTS@ -MCA_pmix_common_STATIC_LTLIBS = @MCA_pmix_common_STATIC_LTLIBS@ -MCA_pmix_common_STATIC_SUBDIRS = @MCA_pmix_common_STATIC_SUBDIRS@ -MCA_pmix_gds_ALL_COMPONENTS = @MCA_pmix_gds_ALL_COMPONENTS@ -MCA_pmix_gds_ALL_SUBDIRS = @MCA_pmix_gds_ALL_SUBDIRS@ -MCA_pmix_gds_DSO_COMPONENTS = @MCA_pmix_gds_DSO_COMPONENTS@ -MCA_pmix_gds_DSO_SUBDIRS = @MCA_pmix_gds_DSO_SUBDIRS@ -MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ -MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ -MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ -MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ -MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ -MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ -MCA_pmix_pdl_DSO_SUBDIRS = @MCA_pmix_pdl_DSO_SUBDIRS@ -MCA_pmix_pdl_STATIC_COMPONENTS = @MCA_pmix_pdl_STATIC_COMPONENTS@ -MCA_pmix_pdl_STATIC_LTLIBS = @MCA_pmix_pdl_STATIC_LTLIBS@ -MCA_pmix_pdl_STATIC_SUBDIRS = @MCA_pmix_pdl_STATIC_SUBDIRS@ -MCA_pmix_pif_ALL_COMPONENTS = @MCA_pmix_pif_ALL_COMPONENTS@ -MCA_pmix_pif_ALL_SUBDIRS = @MCA_pmix_pif_ALL_SUBDIRS@ -MCA_pmix_pif_DSO_COMPONENTS = @MCA_pmix_pif_DSO_COMPONENTS@ -MCA_pmix_pif_DSO_SUBDIRS = @MCA_pmix_pif_DSO_SUBDIRS@ -MCA_pmix_pif_STATIC_COMPONENTS = @MCA_pmix_pif_STATIC_COMPONENTS@ -MCA_pmix_pif_STATIC_LTLIBS = @MCA_pmix_pif_STATIC_LTLIBS@ -MCA_pmix_pif_STATIC_SUBDIRS = @MCA_pmix_pif_STATIC_SUBDIRS@ -MCA_pmix_pinstalldirs_ALL_COMPONENTS = @MCA_pmix_pinstalldirs_ALL_COMPONENTS@ -MCA_pmix_pinstalldirs_ALL_SUBDIRS = @MCA_pmix_pinstalldirs_ALL_SUBDIRS@ -MCA_pmix_pinstalldirs_DSO_COMPONENTS = @MCA_pmix_pinstalldirs_DSO_COMPONENTS@ -MCA_pmix_pinstalldirs_DSO_SUBDIRS = @MCA_pmix_pinstalldirs_DSO_SUBDIRS@ -MCA_pmix_pinstalldirs_STATIC_COMPONENTS = @MCA_pmix_pinstalldirs_STATIC_COMPONENTS@ -MCA_pmix_pinstalldirs_STATIC_LTLIBS = @MCA_pmix_pinstalldirs_STATIC_LTLIBS@ -MCA_pmix_pinstalldirs_STATIC_SUBDIRS = @MCA_pmix_pinstalldirs_STATIC_SUBDIRS@ -MCA_pmix_plog_ALL_COMPONENTS = @MCA_pmix_plog_ALL_COMPONENTS@ -MCA_pmix_plog_ALL_SUBDIRS = @MCA_pmix_plog_ALL_SUBDIRS@ -MCA_pmix_plog_DSO_COMPONENTS = @MCA_pmix_plog_DSO_COMPONENTS@ -MCA_pmix_plog_DSO_SUBDIRS = @MCA_pmix_plog_DSO_SUBDIRS@ -MCA_pmix_plog_STATIC_COMPONENTS = @MCA_pmix_plog_STATIC_COMPONENTS@ -MCA_pmix_plog_STATIC_LTLIBS = @MCA_pmix_plog_STATIC_LTLIBS@ -MCA_pmix_plog_STATIC_SUBDIRS = @MCA_pmix_plog_STATIC_SUBDIRS@ -MCA_pmix_pnet_ALL_COMPONENTS = @MCA_pmix_pnet_ALL_COMPONENTS@ -MCA_pmix_pnet_ALL_SUBDIRS = @MCA_pmix_pnet_ALL_SUBDIRS@ -MCA_pmix_pnet_DSO_COMPONENTS = @MCA_pmix_pnet_DSO_COMPONENTS@ -MCA_pmix_pnet_DSO_SUBDIRS = @MCA_pmix_pnet_DSO_SUBDIRS@ -MCA_pmix_pnet_STATIC_COMPONENTS = @MCA_pmix_pnet_STATIC_COMPONENTS@ -MCA_pmix_pnet_STATIC_LTLIBS = @MCA_pmix_pnet_STATIC_LTLIBS@ -MCA_pmix_pnet_STATIC_SUBDIRS = @MCA_pmix_pnet_STATIC_SUBDIRS@ -MCA_pmix_preg_ALL_COMPONENTS = @MCA_pmix_preg_ALL_COMPONENTS@ -MCA_pmix_preg_ALL_SUBDIRS = @MCA_pmix_preg_ALL_SUBDIRS@ -MCA_pmix_preg_DSO_COMPONENTS = @MCA_pmix_preg_DSO_COMPONENTS@ -MCA_pmix_preg_DSO_SUBDIRS = @MCA_pmix_preg_DSO_SUBDIRS@ -MCA_pmix_preg_STATIC_COMPONENTS = @MCA_pmix_preg_STATIC_COMPONENTS@ -MCA_pmix_preg_STATIC_LTLIBS = @MCA_pmix_preg_STATIC_LTLIBS@ -MCA_pmix_preg_STATIC_SUBDIRS = @MCA_pmix_preg_STATIC_SUBDIRS@ -MCA_pmix_psec_ALL_COMPONENTS = @MCA_pmix_psec_ALL_COMPONENTS@ -MCA_pmix_psec_ALL_SUBDIRS = @MCA_pmix_psec_ALL_SUBDIRS@ -MCA_pmix_psec_DSO_COMPONENTS = @MCA_pmix_psec_DSO_COMPONENTS@ -MCA_pmix_psec_DSO_SUBDIRS = @MCA_pmix_psec_DSO_SUBDIRS@ -MCA_pmix_psec_STATIC_COMPONENTS = @MCA_pmix_psec_STATIC_COMPONENTS@ -MCA_pmix_psec_STATIC_LTLIBS = @MCA_pmix_psec_STATIC_LTLIBS@ -MCA_pmix_psec_STATIC_SUBDIRS = @MCA_pmix_psec_STATIC_SUBDIRS@ -MCA_pmix_psensor_ALL_COMPONENTS = @MCA_pmix_psensor_ALL_COMPONENTS@ -MCA_pmix_psensor_ALL_SUBDIRS = @MCA_pmix_psensor_ALL_SUBDIRS@ -MCA_pmix_psensor_DSO_COMPONENTS = @MCA_pmix_psensor_DSO_COMPONENTS@ -MCA_pmix_psensor_DSO_SUBDIRS = @MCA_pmix_psensor_DSO_SUBDIRS@ -MCA_pmix_psensor_STATIC_COMPONENTS = @MCA_pmix_psensor_STATIC_COMPONENTS@ -MCA_pmix_psensor_STATIC_LTLIBS = @MCA_pmix_psensor_STATIC_LTLIBS@ -MCA_pmix_psensor_STATIC_SUBDIRS = @MCA_pmix_psensor_STATIC_SUBDIRS@ -MCA_pmix_pshmem_ALL_COMPONENTS = @MCA_pmix_pshmem_ALL_COMPONENTS@ -MCA_pmix_pshmem_ALL_SUBDIRS = @MCA_pmix_pshmem_ALL_SUBDIRS@ -MCA_pmix_pshmem_DSO_COMPONENTS = @MCA_pmix_pshmem_DSO_COMPONENTS@ -MCA_pmix_pshmem_DSO_SUBDIRS = @MCA_pmix_pshmem_DSO_SUBDIRS@ -MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ -MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ -MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ -MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ -MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ -MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ -MCA_pmix_ptl_DSO_SUBDIRS = @MCA_pmix_ptl_DSO_SUBDIRS@ -MCA_pmix_ptl_STATIC_COMPONENTS = @MCA_pmix_ptl_STATIC_COMPONENTS@ -MCA_pmix_ptl_STATIC_LTLIBS = @MCA_pmix_ptl_STATIC_LTLIBS@ -MCA_pmix_ptl_STATIC_SUBDIRS = @MCA_pmix_ptl_STATIC_SUBDIRS@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PERL = @PERL@ -PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ -PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ -PMIX_ASM_SUPPORT_64BIT = @PMIX_ASM_SUPPORT_64BIT@ -PMIX_ASM_TEXT = @PMIX_ASM_TEXT@ -PMIX_ASM_TYPE = @PMIX_ASM_TYPE@ -PMIX_ASSEMBLY_ARCH = @PMIX_ASSEMBLY_ARCH@ -PMIX_ASSEMBLY_BUILTIN = @PMIX_ASSEMBLY_BUILTIN@ -PMIX_ASSEMBLY_FORMAT = @PMIX_ASSEMBLY_FORMAT@ -PMIX_AS_GLOBAL = @PMIX_AS_GLOBAL@ -PMIX_AS_LABEL_SUFFIX = @PMIX_AS_LABEL_SUFFIX@ -PMIX_BUILT_TEST_PREFIX = @PMIX_BUILT_TEST_PREFIX@ -PMIX_CC_ABSOLUTE = @PMIX_CC_ABSOLUTE@ -PMIX_COMPONENT_LIBRARY_PATHS = @PMIX_COMPONENT_LIBRARY_PATHS@ -PMIX_CONFIGURE_CLI = @PMIX_CONFIGURE_CLI@ -PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ -PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ -PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ -PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ -PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ -PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ -PMIX_EXTRA_LIB = @PMIX_EXTRA_LIB@ -PMIX_EXTRA_LTLIB = @PMIX_EXTRA_LTLIB@ -PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ -PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ -PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ -PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ -PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ -PMIX_REPO_REV = @PMIX_REPO_REV@ -PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ -PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ -PMIX_VERSION = @PMIX_VERSION@ -PMIX_top_builddir = @PMIX_top_builddir@ -PMIX_top_srcdir = @PMIX_top_srcdir@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_prefix_program = @ac_prefix_program@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -libmca_common_dstore_so_version = @libmca_common_dstore_so_version@ -libpmi2_so_version = @libpmi2_so_version@ -libpmi_so_version = @libpmi_so_version@ -libpmix_so_version = @libpmix_so_version@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ -pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ -pmix_pdl_plibltdl_LDFLAGS = @pmix_pdl_plibltdl_LDFLAGS@ -pmix_pdl_plibltdl_LIBS = @pmix_pdl_plibltdl_LIBS@ -pmixdatadir = @pmixdatadir@ -pmixincludedir = @pmixincludedir@ -pmixlibdir = @pmixlibdir@ -pmixmajor = @pmixmajor@ -pmixminor = @pmixminor@ -pmixnumeric = @pmixnumeric@ -pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -psec_munge_CPPFLAGS = @psec_munge_CPPFLAGS@ -psec_munge_LDFLAGS = @psec_munge_LDFLAGS@ -psec_munge_LIBS = @psec_munge_LIBS@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CPPFLAGS = $(pnet_tcp_CPPFLAGS) -headers = pnet_tcp.h -sources = \ - pnet_tcp_component.c \ - pnet_tcp.c - -@MCA_BUILD_pmix_pnet_tcp_DSO_FALSE@lib = libmca_pnet_tcp.la - -# Make the output library in this directory, and name it either -# mca__.la (for DSO builds) or libmca__.la -# (for static builds). -@MCA_BUILD_pmix_pnet_tcp_DSO_TRUE@lib = -@MCA_BUILD_pmix_pnet_tcp_DSO_FALSE@lib_sources = $(headers) $(sources) -@MCA_BUILD_pmix_pnet_tcp_DSO_TRUE@lib_sources = -@MCA_BUILD_pmix_pnet_tcp_DSO_FALSE@component = -@MCA_BUILD_pmix_pnet_tcp_DSO_TRUE@component = mca_pnet_tcp.la -@MCA_BUILD_pmix_pnet_tcp_DSO_FALSE@component_sources = -@MCA_BUILD_pmix_pnet_tcp_DSO_TRUE@component_sources = $(headers) $(sources) -mcacomponentdir = $(pmixlibdir) -mcacomponent_LTLIBRARIES = $(component) -mca_pnet_tcp_la_SOURCES = $(component_sources) -mca_pnet_tcp_la_LIBADD = $(pnet_tcp_LIBS) $(am__append_1) -mca_pnet_tcp_la_LDFLAGS = -module -avoid-version $(pnet_tcp_LDFLAGS) -noinst_LTLIBRARIES = $(lib) -libmca_pnet_tcp_la_SOURCES = $(lib_sources) -libmca_pnet_tcp_la_LIBADD = $(pnet_tcp_LIBS) -libmca_pnet_tcp_la_LDFLAGS = -module -avoid-version $(pnet_tcp_LDFLAGS) -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/mca/pnet/tcp/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/mca/pnet/tcp/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-mcacomponentLTLIBRARIES: $(mcacomponent_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(mcacomponentdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(mcacomponentdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(mcacomponentdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(mcacomponentdir)"; \ - } - -uninstall-mcacomponentLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(mcacomponentdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(mcacomponentdir)/$$f"; \ - done - -clean-mcacomponentLTLIBRARIES: - -test -z "$(mcacomponent_LTLIBRARIES)" || rm -f $(mcacomponent_LTLIBRARIES) - @list='$(mcacomponent_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libmca_pnet_tcp.la: $(libmca_pnet_tcp_la_OBJECTS) $(libmca_pnet_tcp_la_DEPENDENCIES) $(EXTRA_libmca_pnet_tcp_la_DEPENDENCIES) - $(AM_V_CCLD)$(libmca_pnet_tcp_la_LINK) $(am_libmca_pnet_tcp_la_rpath) $(libmca_pnet_tcp_la_OBJECTS) $(libmca_pnet_tcp_la_LIBADD) $(LIBS) - -mca_pnet_tcp.la: $(mca_pnet_tcp_la_OBJECTS) $(mca_pnet_tcp_la_DEPENDENCIES) $(EXTRA_mca_pnet_tcp_la_DEPENDENCIES) - $(AM_V_CCLD)$(mca_pnet_tcp_la_LINK) $(am_mca_pnet_tcp_la_rpath) $(mca_pnet_tcp_la_OBJECTS) $(mca_pnet_tcp_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pnet_tcp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pnet_tcp_component.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) -installdirs: - for dir in "$(DESTDIR)$(mcacomponentdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ - clean-noinstLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-mcacomponentLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-mcacomponentLTLIBRARIES - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-mcacomponentLTLIBRARIES \ - clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-mcacomponentLTLIBRARIES install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am \ - uninstall-mcacomponentLTLIBRARIES - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/pnet_tcp.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/pnet_tcp.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/pnet_tcp.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/pnet_tcp.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1198 +0,0 @@ -/* - * Copyright (c) 2018-2019 Intel, Inc. All rights reserved. - * Copyright (c) 2018 Research Organization for Information Science - * and Technology (RIST). All rights reserved. - * - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include - -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_STAT_H -#include -#endif -#ifdef HAVE_FCNTL_H -#include -#endif -#include - -#include - -#include "src/include/pmix_socket_errno.h" -#include "src/include/pmix_globals.h" -#include "src/class/pmix_list.h" -#include "src/util/alfg.h" -#include "src/util/argv.h" -#include "src/util/error.h" -#include "src/util/output.h" -#include "src/util/parse_options.h" -#include "src/util/pif.h" -#include "src/util/pmix_environ.h" -#include "src/mca/preg/preg.h" - -#include "src/mca/pnet/base/base.h" -#include "pnet_tcp.h" - -#define PMIX_TCP_SETUP_APP_KEY "pmix.tcp.setup.app.key" -#define PMIX_TCP_INVENTORY_KEY "pmix.tcp.inventory" - -static pmix_status_t tcp_init(void); -static void tcp_finalize(void); -static pmix_status_t allocate(pmix_namespace_t *nptr, - pmix_info_t *info, - pmix_list_t *ilist); -static pmix_status_t setup_local_network(pmix_namespace_t *nptr, - pmix_info_t info[], - size_t ninfo); -static pmix_status_t setup_fork(pmix_namespace_t *nptr, - const pmix_proc_t *peer, char ***env); -static void child_finalized(pmix_proc_t *peer); -static void local_app_finalized(pmix_namespace_t *nptr); -static void deregister_nspace(pmix_namespace_t *nptr); -static pmix_status_t collect_inventory(pmix_info_t directives[], size_t ndirs, - pmix_inventory_cbfunc_t cbfunc, void *cbdata); -static pmix_status_t deliver_inventory(pmix_info_t info[], size_t ninfo, - pmix_info_t directives[], size_t ndirs, - pmix_op_cbfunc_t cbfunc, void *cbdata); - -pmix_pnet_module_t pmix_tcp_module = { - .name = "tcp", - .init = tcp_init, - .finalize = tcp_finalize, - .allocate = allocate, - .setup_local_network = setup_local_network, - .setup_fork = setup_fork, - .child_finalized = child_finalized, - .local_app_finalized = local_app_finalized, - .deregister_nspace = deregister_nspace, - .collect_inventory = collect_inventory, - .deliver_inventory = deliver_inventory -}; - -typedef struct { - pmix_list_item_t super; - char *device; - char *address; -} tcp_device_t; - -/* local tracker objects */ -typedef struct { - pmix_list_item_t super; - pmix_list_t devices; - char *type; - char *plane; - char **ports; - size_t nports; -} tcp_available_ports_t; - -typedef struct { - pmix_list_item_t super; - char *nspace; - char **ports; - tcp_available_ports_t *src; // source of the allocated ports -} tcp_port_tracker_t; - -static pmix_list_t allocations, available; -static pmix_status_t process_request(pmix_namespace_t *nptr, - char *idkey, int ports_per_node, - tcp_port_tracker_t *trk, - pmix_list_t *ilist); - -static void dcon(tcp_device_t *p) -{ - p->device = NULL; - p->address = NULL; -} -static void ddes(tcp_device_t *p) -{ - if (NULL != p->device) { - free(p->device); - } - if (NULL != p->address) { - free(p->address); - } -} -static PMIX_CLASS_INSTANCE(tcp_device_t, - pmix_list_item_t, - dcon, ddes); - -static void tacon(tcp_available_ports_t *p) -{ - PMIX_CONSTRUCT(&p->devices, pmix_list_t); - p->type = NULL; - p->plane = NULL; - p->ports = NULL; - p->nports = 0; -} -static void tades(tcp_available_ports_t *p) -{ - PMIX_LIST_DESTRUCT(&p->devices); - if (NULL != p->type) { - free(p->type); - } - if (NULL != p->plane) { - free(p->plane); - } - if (NULL != p->ports) { - pmix_argv_free(p->ports); - } -} -static PMIX_CLASS_INSTANCE(tcp_available_ports_t, - pmix_list_item_t, - tacon, tades); - -static void ttcon(tcp_port_tracker_t *p) -{ - p->nspace = NULL; - p->ports = NULL; - p->src = NULL; -} -static void ttdes(tcp_port_tracker_t *p) -{ - size_t n, m, mstart; - - if (NULL != p->nspace) { - free(p->nspace); - } - if (NULL != p->src) { - if (NULL != p->ports) { - mstart = 0; - for (n=0; NULL != p->ports[n]; n++) { - /* find an empty position */ - for (m=mstart; m < p->src->nports; m++) { - if (NULL == p->src->ports[m]) { - p->src->ports[m] = strdup(p->ports[n]); - mstart = m + 1; - break; - } - } - } - pmix_argv_free(p->ports); - } - PMIX_RELEASE(p->src); // maintain accounting - } else if (NULL != p->ports) { - pmix_argv_free(p->ports); - } -} -static PMIX_CLASS_INSTANCE(tcp_port_tracker_t, - pmix_list_item_t, - ttcon, ttdes); - -static pmix_status_t tcp_init(void) -{ - tcp_available_ports_t *trk; - char *p, **grps; - size_t n; - - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet: tcp init"); - - /* if we are not the "gateway", then there is nothing - * for us to do */ - if (!PMIX_PEER_IS_GATEWAY(pmix_globals.mypeer)) { - return PMIX_SUCCESS; - } - - PMIX_CONSTRUCT(&allocations, pmix_list_t); - PMIX_CONSTRUCT(&available, pmix_list_t); - - /* if we have no static ports, then we don't have - * anything to manage. However, we cannot just disqualify - * ourselves as we may still need to provide inventory. - * - * NOTE: need to check inventory in addition to MCA param as - * the inventory may have reported back static ports */ - if (NULL == mca_pnet_tcp_component.static_ports) { - return PMIX_SUCCESS; - } - - /* split on semi-colons */ - grps = pmix_argv_split(mca_pnet_tcp_component.static_ports, ';'); - for (n=0; NULL != grps[n]; n++) { - trk = PMIX_NEW(tcp_available_ports_t); - if (NULL == trk) { - pmix_argv_free(grps); - return PMIX_ERR_NOMEM; - } - /* there must be at least one colon */ - if (NULL == (p = strrchr(grps[n], ':'))) { - pmix_argv_free(grps); - return PMIX_ERR_BAD_PARAM; - } - /* extract the ports */ - *p = '\0'; - ++p; - pmix_util_parse_range_options(p, &trk->ports); - trk->nports = pmix_argv_count(trk->ports); - /* see if they provided a plane */ - if (NULL != (p = strchr(grps[n], ':'))) { - /* yep - save the plane */ - *p = '\0'; - ++p; - trk->plane = strdup(p); - } - /* the type is just what is left at the front */ - trk->type = strdup(grps[n]); - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "TYPE: %s PLANE %s", trk->type, - (NULL == trk->plane) ? "NULL" : trk->plane); - pmix_list_append(&available, &trk->super); - } - pmix_argv_free(grps); - - return PMIX_SUCCESS; -} - -static void tcp_finalize(void) -{ - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet: tcp finalize"); - if (PMIX_PEER_IS_GATEWAY(pmix_globals.mypeer)) { - PMIX_LIST_DESTRUCT(&allocations); - PMIX_LIST_DESTRUCT(&available); - } -} - -/* some network users may want to encrypt their communications - * as a means of securing them, or include a token in their - * messaging headers for some minimal level of security. This - * is far from perfect, but is provided to illustrate how it - * can be done. The resulting info is placed into the - * app_context's env array so it will automatically be pushed - * into the environment of every MPI process when launched. - * - * In a more perfect world, there would be some privileged place - * to store the crypto key and the encryption would occur - * in a non-visible driver - but we don't have a mechanism - * for doing so. - */ - -static inline void generate_key(uint64_t* unique_key) { - pmix_rng_buff_t rng; - pmix_srand(&rng,(unsigned int)time(NULL)); - unique_key[0] = pmix_rand(&rng); - unique_key[1] = pmix_rand(&rng); -} - -/* when allocate is called, we look at our table of available static addresses - * and assign an address to each process on a node based on its node rank. - * This will prevent collisions as the host RM is responsible for correctly - * setting the node rank. Note that node ranks will "rollover" when they - * hit whatever maximum value the host RM supports, and that they will - * increase monotonically as new jobs are launched until hitting that - * max value. So we need to take into account the number of static - * ports we were given and check to ensure we have enough to hand out - * - * NOTE: this implementation is offered as an example that can - * undoubtedly be vastly improved/optimized */ - -static pmix_status_t allocate(pmix_namespace_t *nptr, - pmix_info_t *info, - pmix_list_t *ilist) -{ - uint64_t unique_key[2]; - size_t n, nreqs=0; - int ports_per_node=0; - pmix_kval_t *kv; - pmix_status_t rc; - pmix_info_t *requests = NULL; - char **reqs, *cptr; - bool allocated = false, seckey = false; - tcp_port_tracker_t *trk; - tcp_available_ports_t *avail, *aptr; - pmix_list_t mylist; - pmix_buffer_t buf; - char *type = NULL, *plane = NULL, *idkey = NULL; - - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:tcp:allocate for nspace %s", nptr->nspace); - - /* if I am not the gateway, then ignore this call - should never - * happen, but check to be safe */ - if (!PMIX_PEER_IS_GATEWAY(pmix_globals.mypeer)) { - return PMIX_SUCCESS; - } - - if (NULL == info) { - return PMIX_ERR_TAKE_NEXT_OPTION; - } - - /* check directives to see if a crypto key and/or - * network resource allocations requested */ - PMIX_CONSTRUCT(&mylist, pmix_list_t); - if (PMIX_CHECK_KEY(info, PMIX_SETUP_APP_ENVARS) || - PMIX_CHECK_KEY(info, PMIX_SETUP_APP_ALL)) { - if (NULL != mca_pnet_tcp_component.include) { - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet: tcp harvesting envars %s excluding %s", - (NULL == mca_pnet_tcp_component.incparms) ? "NONE" : mca_pnet_tcp_component.incparms, - (NULL == mca_pnet_tcp_component.excparms) ? "NONE" : mca_pnet_tcp_component.excparms); - rc = pmix_pnet_base_harvest_envars(mca_pnet_tcp_component.include, - mca_pnet_tcp_component.exclude, - ilist); - return rc; - } - return PMIX_SUCCESS; - } else if (!PMIX_CHECK_KEY(info, PMIX_ALLOC_NETWORK)) { - /* not a network allocation request */ - return PMIX_SUCCESS; - } - - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:tcp:allocate alloc_network for nspace %s", - nptr->nspace); - /* this info key includes an array of pmix_info_t, each providing - * a key (that is to be used as the key for the allocated ports) and - * a number of ports to allocate for that key */ - if (PMIX_DATA_ARRAY != info->value.type || - NULL == info->value.data.darray || - PMIX_INFO != info->value.data.darray->type || - NULL == info->value.data.darray->array) { - /* they made an error */ - PMIX_ERROR_LOG(PMIX_ERR_BAD_PARAM); - return PMIX_ERR_BAD_PARAM; - } - requests = (pmix_info_t*)info->value.data.darray->array; - nreqs = info->value.data.darray->size; - /* cycle thru the provided array and see if this refers to - * tcp/udp-based resources - there is no required ordering - * of the keys, so just have to do a search */ - for (n=0; n < nreqs; n++) { - if (0 == strncasecmp(requests[n].key, PMIX_ALLOC_NETWORK_TYPE, PMIX_MAX_KEYLEN)) { - /* check for bozo error */ - if (PMIX_STRING != requests[n].value.type || - NULL == requests[n].value.data.string) { - PMIX_ERROR_LOG(PMIX_ERR_BAD_PARAM); - return PMIX_ERR_BAD_PARAM; - } - type = requests[n].value.data.string; - } else if (0 == strncasecmp(requests[n].key, PMIX_ALLOC_NETWORK_PLANE, PMIX_MAX_KEYLEN)) { - /* check for bozo error */ - if (PMIX_STRING != requests[n].value.type || - NULL == requests[n].value.data.string) { - PMIX_ERROR_LOG(PMIX_ERR_BAD_PARAM); - return PMIX_ERR_BAD_PARAM; - } - plane = requests[n].value.data.string; - } else if (0 == strncasecmp(requests[n].key, PMIX_ALLOC_NETWORK_ENDPTS, PMIX_MAX_KEYLEN)) { - PMIX_VALUE_GET_NUMBER(rc, &requests[n].value, ports_per_node, int); - if (PMIX_SUCCESS != rc) { - return rc; - } - } else if (0 == strncmp(requests[n].key, PMIX_ALLOC_NETWORK_ID, PMIX_MAX_KEYLEN)) { - /* check for bozo error */ - if (PMIX_STRING != requests[n].value.type || - NULL == requests[n].value.data.string) { - PMIX_ERROR_LOG(PMIX_ERR_BAD_PARAM); - return PMIX_ERR_BAD_PARAM; - } - idkey = requests[n].value.data.string; - } else if (0 == strncasecmp(requests[n].key, PMIX_ALLOC_NETWORK_SEC_KEY, PMIX_MAX_KEYLEN)) { - seckey = PMIX_INFO_TRUE(&requests[n]); - } - } - - /* we at least require an attribute key for the response */ - if (NULL == idkey) { - return PMIX_ERR_BAD_PARAM; - } - - /* must include the idkey */ - kv = PMIX_NEW(pmix_kval_t); - if (NULL == kv) { - return PMIX_ERR_NOMEM; - } - kv->key = strdup(PMIX_ALLOC_NETWORK_ID); - kv->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); - if (NULL == kv->value) { - PMIX_RELEASE(kv); - return PMIX_ERR_NOMEM; - } - kv->value->type = PMIX_STRING; - kv->value->data.string = strdup(idkey); - pmix_list_append(&mylist, &kv->super); - - /* note that they might not provide - * the network type (letting it fall to a default component - * based on priority), and they are not required to provide - * a plane. In addition, they are allowed to simply request - * a network security key without asking for endpts */ - - if (NULL != type) { - /* if it is tcp or udp, then this is something we should process */ - if (0 == strcasecmp(type, "tcp")) { - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:tcp:allocate allocating TCP ports for nspace %s", - nptr->nspace); - /* do we have static tcp ports? */ - avail = NULL; - PMIX_LIST_FOREACH(aptr, &available, tcp_available_ports_t) { - if (0 == strcmp(aptr->type, "tcp")) { - /* if they specified a plane, then require it */ - if (NULL != plane && (NULL == aptr->plane || 0 != strcmp(aptr->plane, plane))) { - continue; - } - avail = aptr; - break; - } - } - /* nope - they asked for something that we cannot do */ - if (NULL == avail) { - PMIX_LIST_DESTRUCT(&mylist); - return PMIX_ERR_NOT_AVAILABLE; - } - /* setup to track the assignment */ - trk = PMIX_NEW(tcp_port_tracker_t); - if (NULL == trk) { - PMIX_LIST_DESTRUCT(&mylist); - return PMIX_ERR_NOMEM; - } - trk->nspace = strdup(nptr->nspace); - PMIX_RETAIN(avail); - trk->src = avail; - pmix_list_append(&allocations, &trk->super); - rc = process_request(nptr, idkey, ports_per_node, trk, &mylist); - if (PMIX_SUCCESS != rc) { - /* return the allocated ports */ - pmix_list_remove_item(&allocations, &trk->super); - PMIX_RELEASE(trk); - PMIX_LIST_DESTRUCT(&mylist); - return rc; - } - allocated = true; - - } else if (0 == strcasecmp(requests[n].value.data.string, "udp")) { - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:tcp:allocate allocating UDP ports for nspace %s", - nptr->nspace); - /* do we have static udp ports? */ - avail = NULL; - PMIX_LIST_FOREACH(aptr, &available, tcp_available_ports_t) { - if (0 == strcmp(aptr->type, "udp")) { - /* if they specified a plane, then require it */ - if (NULL != plane && (NULL == aptr->plane || 0 != strcmp(aptr->plane, plane))) { - continue; - } - avail = aptr; - break; - } - } - /* nope - they asked for something that we cannot do */ - if (NULL == avail) { - PMIX_LIST_DESTRUCT(&mylist); - return PMIX_ERR_NOT_AVAILABLE; - } - /* setup to track the assignment */ - trk = PMIX_NEW(tcp_port_tracker_t); - if (NULL == trk) { - PMIX_LIST_DESTRUCT(&mylist); - return PMIX_ERR_NOMEM; - } - trk->nspace = strdup(nptr->nspace); - PMIX_RETAIN(avail); - trk->src = avail; - pmix_list_append(&allocations, &trk->super); - rc = process_request(nptr, idkey, ports_per_node, trk, &mylist); - if (PMIX_SUCCESS != rc) { - /* return the allocated ports */ - pmix_list_remove_item(&allocations, &trk->super); - PMIX_RELEASE(trk); - PMIX_LIST_DESTRUCT(&mylist); - return rc; - } - allocated = true; - } else { - /* unsupported type */ - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:tcp:allocate unsupported type %s for nspace %s", - type, nptr->nspace); - PMIX_LIST_DESTRUCT(&mylist); - return PMIX_ERR_TAKE_NEXT_OPTION; - } - - } else { - if (NULL != plane) { - /* if they didn't specify a type, but they did specify a plane, we can - * see if that is a plane we recognize */ - PMIX_LIST_FOREACH(aptr, &available, tcp_available_ports_t) { - if (0 != strcmp(aptr->plane, plane)) { - continue; - } - /* setup to track the assignment */ - trk = PMIX_NEW(tcp_port_tracker_t); - if (NULL == trk) { - PMIX_LIST_DESTRUCT(&mylist); - return PMIX_ERR_NOMEM; - } - trk->nspace = strdup(nptr->nspace); - PMIX_RETAIN(aptr); - trk->src = aptr; - pmix_list_append(&allocations, &trk->super); - rc = process_request(nptr, idkey, ports_per_node, trk, &mylist); - if (PMIX_SUCCESS != rc) { - /* return the allocated ports */ - pmix_list_remove_item(&allocations, &trk->super); - PMIX_RELEASE(trk); - PMIX_LIST_DESTRUCT(&mylist); - return rc; - } - allocated = true; - break; - } - } else { - /* if they didn't specify either type or plane, then we got here because - * nobody of a higher priority could act as a default transport - so try - * to provide something here, starting by looking at any provided setting */ - if (NULL != mca_pnet_tcp_component.default_request) { - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:tcp:allocate allocating default ports %s for nspace %s", - mca_pnet_tcp_component.default_request, nptr->nspace); - reqs = pmix_argv_split(mca_pnet_tcp_component.default_request, ';'); - for (n=0; NULL != reqs[n]; n++) { - /* if there is no colon, then it is just - * a number of ports to use */ - type = NULL; - plane = NULL; - if (NULL == (cptr = strrchr(reqs[n], ':'))) { - avail = (tcp_available_ports_t*)pmix_list_get_first(&available); - } else { - *cptr = '\0'; - ++cptr; - ports_per_node = strtoul(cptr, NULL, 10); - /* look for the plane */ - cptr -= 2; - if (NULL != (cptr = strrchr(cptr, ':'))) { - *cptr = '\0'; - ++cptr; - plane = cptr; - } - type = reqs[n]; - avail = NULL; - PMIX_LIST_FOREACH(aptr, &available, tcp_available_ports_t) { - if (0 == strcmp(aptr->type, type)) { - /* if they specified a plane, then require it */ - if (NULL != plane && (NULL == aptr->plane || 0 != strcmp(aptr->plane, plane))) { - continue; - } - avail = aptr; - break; - } - } - /* if we didn't find it, that isn't an error - just ignore */ - if (NULL == avail) { - continue; - } - } - /* setup to track the assignment */ - trk = PMIX_NEW(tcp_port_tracker_t); - if (NULL == trk) { - pmix_argv_free(reqs); - PMIX_LIST_DESTRUCT(&mylist); - return PMIX_ERR_NOMEM; - } - trk->nspace = strdup(nptr->nspace); - PMIX_RETAIN(avail); - trk->src = avail; - pmix_list_append(&allocations, &trk->super); - rc = process_request(nptr, idkey, ports_per_node, trk, &mylist); - if (PMIX_SUCCESS != rc) { - /* return the allocated ports */ - pmix_list_remove_item(&allocations, &trk->super); - PMIX_RELEASE(trk); - PMIX_LIST_DESTRUCT(&mylist); - return rc; - } - allocated = true; - } - } else { - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:tcp:allocate allocating %d ports/node for nspace %s", - ports_per_node, nptr->nspace); - if (0 == ports_per_node) { - /* nothing to allocate */ - PMIX_LIST_DESTRUCT(&mylist); - return PMIX_ERR_TAKE_NEXT_OPTION; - } - avail = (tcp_available_ports_t*)pmix_list_get_first(&available); - if (NULL != avail) { - /* setup to track the assignment */ - trk = PMIX_NEW(tcp_port_tracker_t); - if (NULL == trk) { - PMIX_LIST_DESTRUCT(&mylist); - return PMIX_ERR_NOMEM; - } - trk->nspace = strdup(nptr->nspace); - PMIX_RETAIN(avail); - trk->src = avail; - pmix_list_append(&allocations, &trk->super); - rc = process_request(nptr, idkey, ports_per_node, trk, &mylist); - if (PMIX_SUCCESS != rc) { - /* return the allocated ports */ - pmix_list_remove_item(&allocations, &trk->super); - PMIX_RELEASE(trk); - } else { - allocated = true; - } - } - } - } - if (!allocated) { - /* nope - we cannot help */ - PMIX_LIST_DESTRUCT(&mylist); - return PMIX_ERR_TAKE_NEXT_OPTION; - } - } - - if (seckey) { - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:tcp: generate seckey"); - generate_key(unique_key); - kv = PMIX_NEW(pmix_kval_t); - if (NULL == kv) { - PMIX_LIST_DESTRUCT(&mylist); - return PMIX_ERR_NOMEM; - } - kv->key = strdup(PMIX_ALLOC_NETWORK_SEC_KEY); - kv->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); - if (NULL == kv->value) { - PMIX_RELEASE(kv); - PMIX_LIST_DESTRUCT(&mylist); - return PMIX_ERR_NOMEM; - } - kv->value->type = PMIX_BYTE_OBJECT; - kv->value->data.bo.bytes = (char*)malloc(2 * sizeof(uint64_t)); - if (NULL == kv->value->data.bo.bytes) { - PMIX_RELEASE(kv); - PMIX_LIST_DESTRUCT(&mylist); - return PMIX_ERR_NOMEM; - } - memcpy(kv->value->data.bo.bytes, unique_key, 2 * sizeof(uint64_t)); - kv->value->data.bo.size = 2 * sizeof(uint64_t); - pmix_list_append(&mylist, &kv->super); - } - - - n = pmix_list_get_size(&mylist); - if (0 < n) { - PMIX_CONSTRUCT(&buf, pmix_buffer_t); - /* pack the number of kvals for ease on the remote end */ - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &buf, &n, 1, PMIX_SIZE); - /* cycle across the list and pack the kvals */ - while (NULL != (kv = (pmix_kval_t*)pmix_list_remove_first(&mylist))) { - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &buf, kv, 1, PMIX_KVAL); - PMIX_RELEASE(kv); - if (PMIX_SUCCESS != rc) { - PMIX_DESTRUCT(&buf); - PMIX_LIST_DESTRUCT(&mylist); - return rc; - } - } - PMIX_LIST_DESTRUCT(&mylist); - kv = PMIX_NEW(pmix_kval_t); - kv->key = strdup(PMIX_TCP_SETUP_APP_KEY); - kv->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); - if (NULL == kv->value) { - PMIX_RELEASE(kv); - PMIX_DESTRUCT(&buf); - return PMIX_ERR_NOMEM; - } - kv->value->type = PMIX_BYTE_OBJECT; - PMIX_UNLOAD_BUFFER(&buf, kv->value->data.bo.bytes, kv->value->data.bo.size); - PMIX_DESTRUCT(&buf); - pmix_list_append(ilist, &kv->super); - } - - /* if we got here, then we processed this specific request, so - * indicate that by returning success */ - return PMIX_SUCCESS; -} - -/* upon receipt of the launch message, each daemon adds the - * static address assignments to the job-level info cache - * for that job */ -static pmix_status_t setup_local_network(pmix_namespace_t *nptr, - pmix_info_t info[], - size_t ninfo) -{ - size_t n, m, nkvals; - pmix_buffer_t bkt; - int32_t cnt; - pmix_kval_t *kv; - pmix_status_t rc; - pmix_info_t *jinfo, stinfo; - char *idkey = NULL; - - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:tcp:setup_local_network"); - - if (NULL != info) { - idkey = strdup("default"); - for (n=0; n < ninfo; n++) { - /* look for my key */ - if (0 == strncmp(info[n].key, PMIX_TCP_SETUP_APP_KEY, PMIX_MAX_KEYLEN)) { - /* this macro NULLs and zero's the incoming bo */ - PMIX_LOAD_BUFFER(pmix_globals.mypeer, &bkt, - info[n].value.data.bo.bytes, - info[n].value.data.bo.size); - /* unpack the number of kvals */ - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &bkt, &nkvals, &cnt, PMIX_SIZE); - /* setup the info array */ - PMIX_INFO_CONSTRUCT(&stinfo); - pmix_strncpy(stinfo.key, idkey, PMIX_MAX_KEYLEN); - stinfo.value.type = PMIX_DATA_ARRAY; - PMIX_DATA_ARRAY_CREATE(stinfo.value.data.darray, nkvals, PMIX_INFO); - jinfo = (pmix_info_t*)stinfo.value.data.darray->array; - - /* cycle thru the blob and extract the kvals */ - kv = PMIX_NEW(pmix_kval_t); - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &bkt, kv, &cnt, PMIX_KVAL); - m = 0; - while (PMIX_SUCCESS == rc) { - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "recvd KEY %s %s", kv->key, - (PMIX_STRING == kv->value->type) ? kv->value->data.string : "NON-STRING"); - /* xfer the value to the info */ - pmix_strncpy(jinfo[m].key, kv->key, PMIX_MAX_KEYLEN); - PMIX_BFROPS_VALUE_XFER(rc, pmix_globals.mypeer, - &jinfo[m].value, kv->value); - /* if this is the ID key, save it */ - if (NULL == idkey && - 0 == strncmp(kv->key, PMIX_ALLOC_NETWORK_ID, PMIX_MAX_KEYLEN)) { - idkey = strdup(kv->value->data.string); - } - ++m; - PMIX_RELEASE(kv); - kv = PMIX_NEW(pmix_kval_t); - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &bkt, kv, &cnt, PMIX_KVAL); - } - /* restore the incoming data */ - info[n].value.data.bo.bytes = bkt.base_ptr; - info[n].value.data.bo.size = bkt.bytes_used; - bkt.base_ptr = NULL; - bkt.bytes_used = 0; - - /* if they didn't include a network ID, then this is an error */ - if (NULL == idkey) { - PMIX_INFO_FREE(jinfo, nkvals); - return PMIX_ERR_BAD_PARAM; - } - - /* cache the info on the job */ - PMIX_GDS_CACHE_JOB_INFO(rc, pmix_globals.mypeer, nptr, - &stinfo, 1); - PMIX_INFO_DESTRUCT(&stinfo); - } - } - } - if (NULL != idkey) { - free(idkey); - } - return PMIX_SUCCESS; -} - -static pmix_status_t setup_fork(pmix_namespace_t *nptr, - const pmix_proc_t *peer, char ***env) -{ - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:tcp:setup_fork"); - return PMIX_SUCCESS; -} - -/* when a local client finalizes, the server gives us a chance - * to do any required local cleanup for that peer. We don't - * have anything we need to do */ -static void child_finalized(pmix_proc_t *peer) -{ - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:tcp child finalized"); -} - -/* when all local clients for a given job finalize, the server - * provides an opportunity for the local network to cleanup - * any resources consumed locally by the clients of that job. - * We don't have anything we need to do */ -static void local_app_finalized(pmix_namespace_t *nptr) -{ - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:tcp app finalized"); -} - -/* when the job completes, the scheduler calls the "deregister nspace" - * PMix function, which in turn calls my TCP component to release the - * assignments for that job. The addresses are marked as "available" - * for reuse on the next job. */ -static void deregister_nspace(pmix_namespace_t *nptr) -{ - tcp_port_tracker_t *trk; - - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:tcp deregister nspace %s", nptr->nspace); - - /* if we are not the "gateway", then there is nothing - * for us to do */ - if (!PMIX_PEER_IS_GATEWAY(pmix_globals.mypeer)) { - return; - } - - /* find this tracker */ - PMIX_LIST_FOREACH(trk, &allocations, tcp_port_tracker_t) { - if (0 == strcmp(nptr->nspace, trk->nspace)) { - pmix_list_remove_item(&allocations, &trk->super); - PMIX_RELEASE(trk); - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:tcp released tracker for nspace %s", nptr->nspace); - return; - } - } -} - -static pmix_status_t collect_inventory(pmix_info_t directives[], size_t ndirs, - pmix_inventory_cbfunc_t cbfunc, void *cbdata) -{ - pmix_inventory_rollup_t *cd = (pmix_inventory_rollup_t*)cbdata; - char *prefix, myhost[PMIX_MAXHOSTNAMELEN] = {0}; - char myconnhost[PMIX_MAXHOSTNAMELEN] = {0}; - char name[32], uri[2048]; - struct sockaddr_storage my_ss; - char *foo; - pmix_buffer_t bucket, pbkt; - int i; - pmix_status_t rc; - bool found = false; - pmix_byte_object_t pbo; - pmix_kval_t *kv; - - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:tcp:collect_inventory"); - - /* setup the bucket - we will pass the results as a blob */ - PMIX_CONSTRUCT(&bucket, pmix_buffer_t); - /* add our hostname */ - gethostname(myhost, sizeof(myhost)-1); - foo = &myhost[0]; - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &bucket, &foo, 1, PMIX_STRING); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&bucket); - return rc; - } - - /* look at all available interfaces */ - for (i = pmix_ifbegin(); i >= 0; i = pmix_ifnext(i)) { - if (PMIX_SUCCESS != pmix_ifindextoaddr(i, (struct sockaddr*)&my_ss, sizeof(my_ss))) { - pmix_output (0, "ptl_tcp: problems getting address for index %i (kernel index %i)\n", - i, pmix_ifindextokindex(i)); - continue; - } - /* ignore non-ip4/6 interfaces */ - if (AF_INET != my_ss.ss_family && - AF_INET6 != my_ss.ss_family) { - continue; - } - /* get the name for diagnostic purposes */ - pmix_ifindextoname(i, name, sizeof(name)); - - /* ignore any virtual interfaces */ - if (0 == strncmp(name, "vir", 3)) { - continue; - } - /* ignore the loopback device */ - if (pmix_ifisloopback(i)) { - continue; - } - if (AF_INET == my_ss.ss_family) { - prefix = "tcp4://"; - inet_ntop(AF_INET, &((struct sockaddr_in*) &my_ss)->sin_addr, - myconnhost, PMIX_MAXHOSTNAMELEN-1); - } else if (AF_INET6 == my_ss.ss_family) { - prefix = "tcp6://"; - inet_ntop(AF_INET6, &((struct sockaddr_in6*) &my_ss)->sin6_addr, - myconnhost, PMIX_MAXHOSTNAMELEN-1); - } else { - continue; - } - (void)snprintf(uri, 2048, "%s%s", prefix, myconnhost); - pmix_output_verbose(2, pmix_pnet_base_framework. framework_output, - "TCP INVENTORY ADDING: %s %s", name, uri); - found = true; - /* pack the name of the device */ - PMIX_CONSTRUCT(&pbkt, pmix_buffer_t); - foo = &name[0]; - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &pbkt, &foo, 1, PMIX_STRING); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&pbkt); - PMIX_DESTRUCT(&bucket); - return rc; - } - /* pack the address */ - foo = &uri[0]; - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &pbkt, &foo, 1, PMIX_STRING); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&pbkt); - PMIX_DESTRUCT(&bucket); - return rc; - } - /* extract the resulting blob - this is a device unit */ - PMIX_UNLOAD_BUFFER(&pbkt, pbo.bytes, pbo.size); - /* now load that into the blob */ - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &bucket, &pbo, 1, PMIX_BYTE_OBJECT); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_BYTE_OBJECT_DESTRUCT(&pbo); - PMIX_DESTRUCT(&bucket); - return rc; - } - } - /* if we have anything to report, then package it up for transfer */ - if (!found) { - PMIX_DESTRUCT(&bucket); - return PMIX_ERR_TAKE_NEXT_OPTION; - } - /* extract the resulting blob */ - PMIX_UNLOAD_BUFFER(&bucket, pbo.bytes, pbo.size); - kv = PMIX_NEW(pmix_kval_t); - kv->key = strdup(PMIX_TCP_INVENTORY_KEY); - PMIX_VALUE_CREATE(kv->value, 1); - pmix_value_load(kv->value, &pbo, PMIX_BYTE_OBJECT); - PMIX_BYTE_OBJECT_DESTRUCT(&pbo); - pmix_list_append(&cd->payload, &kv->super); - - return PMIX_SUCCESS; -} - -static pmix_status_t process_request(pmix_namespace_t *nptr, - char *idkey, int ports_per_node, - tcp_port_tracker_t *trk, - pmix_list_t *ilist) -{ - char **plist; - pmix_kval_t *kv; - size_t m; - int p, ppn; - tcp_available_ports_t *avail = trk->src; - - kv = PMIX_NEW(pmix_kval_t); - if (NULL == kv) { - return PMIX_ERR_NOMEM; - } - kv->key = strdup(idkey); - kv->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); - if (NULL == kv->value) { - PMIX_RELEASE(kv); - return PMIX_ERR_NOMEM; - } - kv->value->type = PMIX_STRING; - kv->value->data.string = NULL; - if (0 == ports_per_node) { - /* find the maxprocs on the nodes in this nspace and - * allocate that number of resources */ - return PMIX_ERR_NOT_SUPPORTED; - } else { - ppn = ports_per_node; - } - - /* assemble the list of ports */ - p = 0; - plist = NULL; - for (m=0; p < ppn && m < avail->nports; m++) { - if (NULL != avail->ports[m]) { - pmix_argv_append_nosize(&trk->ports, avail->ports[m]); - pmix_argv_append_nosize(&plist, avail->ports[m]); - free(avail->ports[m]); - avail->ports[m] = NULL; - ++p; - } - } - /* if we couldn't find enough, then that's an error */ - if (p < ppn) { - PMIX_RELEASE(kv); - /* the caller will release trk, and that will return - * any allocated ports back to the available list */ - return PMIX_ERR_OUT_OF_RESOURCE; - } - /* pass the value */ - kv->value->data.string = pmix_argv_join(plist, ','); - pmix_argv_free(plist); - pmix_list_append(ilist, &kv->super); - - /* track where it came from */ - kv = PMIX_NEW(pmix_kval_t); - if (NULL == kv) { - return PMIX_ERR_NOMEM; - } - kv->key = strdup(idkey); - kv->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); - if (NULL == kv->value) { - PMIX_RELEASE(kv); - return PMIX_ERR_NOMEM; - } - kv->value->type = PMIX_STRING; - kv->value->data.string = strdup(trk->src->type); - pmix_list_append(ilist, &kv->super); - if (NULL != trk->src->plane) { - kv = PMIX_NEW(pmix_kval_t); - if (NULL == kv) { - return PMIX_ERR_NOMEM; - } - kv->key = strdup(idkey); - kv->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); - if (NULL == kv->value) { - PMIX_RELEASE(kv); - return PMIX_ERR_NOMEM; - } - kv->value->type = PMIX_STRING; - kv->value->data.string = strdup(trk->src->plane); - pmix_list_append(ilist, &kv->super); - } - return PMIX_SUCCESS; -} - -static pmix_status_t deliver_inventory(pmix_info_t info[], size_t ninfo, - pmix_info_t directives[], size_t ndirs, - pmix_op_cbfunc_t cbfunc, void *cbdata) -{ - pmix_buffer_t bkt, pbkt; - size_t n; - int32_t cnt; - char *hostname, *device, *address; - pmix_byte_object_t pbo; - pmix_pnet_node_t *nd, *ndptr; - pmix_pnet_resource_t *lt, *lst; - tcp_available_ports_t *prts; - tcp_device_t *res; - pmix_status_t rc; - - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:tcp deliver inventory"); - - for (n=0; n < ninfo; n++) { - if (0 == strncmp(info[n].key, PMIX_TCP_INVENTORY_KEY, PMIX_MAX_KEYLEN)) { - /* this is our inventory in the form of a blob */ - PMIX_LOAD_BUFFER(pmix_globals.mypeer, &bkt, - info[n].value.data.bo.bytes, - info[n].value.data.bo.size); - /* first is the host this came from */ - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &bkt, &hostname, &cnt, PMIX_STRING); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - /* must _not_ destruct bkt as we don't - * own the bytes! */ - return rc; - } - /* do we already have this node? */ - nd = NULL; - PMIX_LIST_FOREACH(ndptr, &pmix_pnet_globals.nodes, pmix_pnet_node_t) { - if (0 == strcmp(hostname, ndptr->name)) { - nd = ndptr; - break; - } - } - if (NULL == nd) { - nd = PMIX_NEW(pmix_pnet_node_t); - nd->name = strdup(hostname); - pmix_list_append(&pmix_pnet_globals.nodes, &nd->super); - } - /* does this node already have a TCP entry? */ - lst = NULL; - PMIX_LIST_FOREACH(lt, &nd->resources, pmix_pnet_resource_t) { - if (0 == strcmp(lt->name, "tcp")) { - lst = lt; - break; - } - } - if (NULL == lst) { - lst = PMIX_NEW(pmix_pnet_resource_t); - lst->name = strdup("tcp"); - pmix_list_append(&nd->resources, &lst->super); - } - /* this is a list of ports and devices */ - prts = PMIX_NEW(tcp_available_ports_t); - pmix_list_append(&lst->resources, &prts->super); - /* cycle across any provided interfaces */ - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &bkt, &pbo, &cnt, PMIX_BYTE_OBJECT); - while (PMIX_SUCCESS == rc) { - /* load the byte object for unpacking */ - PMIX_LOAD_BUFFER(pmix_globals.mypeer, &pbkt, pbo.bytes, pbo.size); - /* unpack the name of the device */ - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &pbkt, &device, &cnt, PMIX_STRING); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DATA_BUFFER_DESTRUCT(&pbkt); - /* must _not_ destruct bkt as we don't - * own the bytes! */ - return rc; - } - /* unpack the address */ - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &pbkt, &address, &cnt, PMIX_STRING); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DATA_BUFFER_DESTRUCT(&pbkt); - /* must _not_ destruct bkt as we don't - * own the bytes! */ - return rc; - } - /* store this on the node */ - res = PMIX_NEW(tcp_device_t); - res->device = device; - res->address = address; - pmix_list_append(&prts->devices, &res->super); - PMIX_DATA_BUFFER_DESTRUCT(&pbkt); - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &bkt, &pbo, &cnt, PMIX_BYTE_OBJECT); - } - PMIX_DATA_BUFFER_DESTRUCT(&bkt); - if (5 < pmix_output_get_verbosity(pmix_pnet_base_framework.framework_output)) { - /* dump the resulting node resources */ - pmix_output(0, "TCP resources for node: %s", nd->name); - PMIX_LIST_FOREACH(lt, &nd->resources, pmix_pnet_resource_t) { - if (0 == strcmp(lt->name, "tcp")) { - PMIX_LIST_FOREACH(prts, <->resources, tcp_available_ports_t) { - device = NULL; - if (NULL != prts->ports) { - device = pmix_argv_join(prts->ports, ','); - } - pmix_output(0, "\tPorts: %s", (NULL == device) ? "UNSPECIFIED" : device); - if (NULL != device) { - free(device); - } - PMIX_LIST_FOREACH(res, &prts->devices, tcp_device_t) { - pmix_output(0, "\tDevice: %s", res->device); - pmix_output(0, "\tAddress: %s", res->address); - } - } - } - } - } - } - } - - return PMIX_SUCCESS; -} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/pnet_tcp_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/pnet_tcp_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/pnet_tcp_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/pnet_tcp_component.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,130 +0,0 @@ -/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ -/* - * Copyright (c) 2018-2019 Intel, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - * - * These symbols are in a file by themselves to provide nice linker - * semantics. Since linkers generally pull in symbols by object - * files, keeping these symbols as the only symbols in this file - * prevents utility programs such as "ompi_info" from having to import - * entire components just to query their version and parameters. - */ - -#include -#include "pmix_common.h" - -#include "src/util/argv.h" -#include "src/mca/pnet/pnet.h" -#include "pnet_tcp.h" - -static pmix_status_t component_register(void); -static pmix_status_t component_open(void); -static pmix_status_t component_close(void); -static pmix_status_t component_query(pmix_mca_base_module_t **module, - int *priority); - -/* - * Instantiate the public struct with all of our public information - * and pointers to our public functions in it - */ -pmix_pnet_tcp_component_t mca_pnet_tcp_component = { - .super = { - .base = { - PMIX_PNET_BASE_VERSION_1_0_0, - - /* Component name and version */ - .pmix_mca_component_name = "tcp", - PMIX_MCA_BASE_MAKE_VERSION(component, - PMIX_MAJOR_VERSION, - PMIX_MINOR_VERSION, - PMIX_RELEASE_VERSION), - - /* Component open and close functions */ - .pmix_mca_register_component_params = component_register, - .pmix_mca_open_component = component_open, - .pmix_mca_close_component = component_close, - .pmix_mca_query_component = component_query, - }, - .data = { - /* The component is checkpoint ready */ - PMIX_MCA_BASE_METADATA_PARAM_CHECKPOINT - } - }, - .static_ports = NULL, - .default_request = NULL, - .include = NULL, - .exclude = NULL -}; - -static pmix_status_t component_register(void) -{ - pmix_mca_base_component_t *component = &mca_pnet_tcp_component.super.base; - - mca_pnet_tcp_component.static_ports = NULL; - (void)pmix_mca_base_component_var_register(component, "static_ports", - "Static ports for procs, expressed as a semi-colon delimited " - "list of type:(optional)plane:Comma-delimited list of ranges (e.g., " - "\"tcp:10.10.10.0/24:32000-32100,33000;udp:40000,40005\")", - PMIX_MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, - PMIX_INFO_LVL_2, - PMIX_MCA_BASE_VAR_SCOPE_READONLY, - &mca_pnet_tcp_component.static_ports); - - (void)pmix_mca_base_component_var_register(component, "default_network_allocation", - "Semi-colon delimited list of (optional)type:(optional)plane:Comma-delimited list of ranges " - "(e.g., \"udp:10.10.10.0/24:3\", or \"5\" if the choice of " - "type and plane isn't critical)", - PMIX_MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, - PMIX_INFO_LVL_2, - PMIX_MCA_BASE_VAR_SCOPE_READONLY, - &mca_pnet_tcp_component.default_request); - - mca_pnet_tcp_component.incparms = NULL; - (void)pmix_mca_base_component_var_register(component, "include_envars", - "Comma-delimited list of envars to harvest (\'*\' and \'?\' supported)", - PMIX_MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, - PMIX_INFO_LVL_2, - PMIX_MCA_BASE_VAR_SCOPE_LOCAL, - &mca_pnet_tcp_component.incparms); - if (NULL != mca_pnet_tcp_component.incparms) { - mca_pnet_tcp_component.include = pmix_argv_split(mca_pnet_tcp_component.incparms, ','); - } - - mca_pnet_tcp_component.excparms = NULL; - (void)pmix_mca_base_component_var_register(component, "exclude_envars", - "Comma-delimited list of envars to exclude (\'*\' and \'?\' supported)", - PMIX_MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, - PMIX_INFO_LVL_2, - PMIX_MCA_BASE_VAR_SCOPE_LOCAL, - &mca_pnet_tcp_component.excparms); - if (NULL != mca_pnet_tcp_component.excparms) { - mca_pnet_tcp_component.exclude = pmix_argv_split(mca_pnet_tcp_component.excparms, ','); - } - - return PMIX_SUCCESS; -} - -static pmix_status_t component_open(void) -{ - return PMIX_SUCCESS; -} - - -static pmix_status_t component_query(pmix_mca_base_module_t **module, - int *priority) -{ - *priority = 5; - *module = (pmix_mca_base_module_t *)&pmix_tcp_module; - return PMIX_SUCCESS; -} - - -static pmix_status_t component_close(void) -{ - - return PMIX_SUCCESS; -} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/pnet_tcp.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/pnet_tcp.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/pnet_tcp.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/tcp/pnet_tcp.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2018-2019 Intel, Inc. All rights reserved. - * - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef PMIX_PNET_OPA_H -#define PMIX_PNET_OPA_H - -#include - - -#include "src/mca/pnet/pnet.h" - -BEGIN_C_DECLS - -typedef struct { - pmix_pnet_base_component_t super; - char *static_ports; - char *default_request; - char *incparms; - char *excparms; - char **include; - char **exclude; -} pmix_pnet_tcp_component_t; - -/* the component must be visible data for the linker to find it */ -PMIX_EXPORT extern pmix_pnet_tcp_component_t mca_pnet_tcp_component; -extern pmix_pnet_module_t pmix_tcp_module; - -END_C_DECLS - -#endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ -# -*- makefile -*- -# -# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana -# University Research and Technology -# Corporation. All rights reserved. -# Copyright (c) 2004-2005 The University of Tennessee and The University -# of Tennessee Research Foundation. All rights -# reserved. -# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# Copyright (c) 2004-2005 The Regents of the University of California. -# All rights reserved. -# Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. -# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. -# Copyright (c) 2017 Research Organization for Information Science -# and Technology (RIST). All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -headers = pnet_test.h -sources = \ - pnet_test_component.c \ - pnet_test.c - -# Make the output library in this directory, and name it either -# mca__.la (for DSO builds) or libmca__.la -# (for static builds). - -if MCA_BUILD_pmix_pnet_test_DSO -lib = -lib_sources = -component = mca_pnet_test.la -component_sources = $(headers) $(sources) -else -lib = libmca_pnet_test.la -lib_sources = $(headers) $(sources) -component = -component_sources = -endif - -mcacomponentdir = $(pmixlibdir) -mcacomponent_LTLIBRARIES = $(component) -mca_pnet_test_la_SOURCES = $(component_sources) -mca_pnet_test_la_LDFLAGS = -module -avoid-version -if NEED_LIBPMIX -mca_pnet_test_la_LIBADD = $(top_builddir)/src/libpmix.la -endif - -noinst_LTLIBRARIES = $(lib) -libmca_pnet_test_la_SOURCES = $(lib_sources) -libmca_pnet_test_la_LDFLAGS = -module -avoid-version diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,955 +0,0 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2014 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -*- makefile -*- -# -# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana -# University Research and Technology -# Corporation. All rights reserved. -# Copyright (c) 2004-2005 The University of Tennessee and The University -# of Tennessee Research Foundation. All rights -# reserved. -# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# Copyright (c) 2004-2005 The Regents of the University of California. -# All rights reserved. -# Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. -# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. -# Copyright (c) 2017 Research Organization for Information Science -# and Technology (RIST). All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -subdir = src/mca/pnet/test -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ - $(top_srcdir)/config/libtool.m4 \ - $(top_srcdir)/config/ltoptions.m4 \ - $(top_srcdir)/config/ltsugar.m4 \ - $(top_srcdir)/config/ltversion.m4 \ - $(top_srcdir)/config/lt~obsolete.m4 \ - $(top_srcdir)/config/pmix.m4 \ - $(top_srcdir)/config/pmix_check_attributes.m4 \ - $(top_srcdir)/config/pmix_check_broken_qsort.m4 \ - $(top_srcdir)/config/pmix_check_compiler_version.m4 \ - $(top_srcdir)/config/pmix_check_icc.m4 \ - $(top_srcdir)/config/pmix_check_lock.m4 \ - $(top_srcdir)/config/pmix_check_os_flavors.m4 \ - $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ - $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ - $(top_srcdir)/config/pmix_check_vendor.m4 \ - $(top_srcdir)/config/pmix_check_visibility.m4 \ - $(top_srcdir)/config/pmix_check_withdir.m4 \ - $(top_srcdir)/config/pmix_config_asm.m4 \ - $(top_srcdir)/config/pmix_config_pthreads.m4 \ - $(top_srcdir)/config/pmix_config_subdir.m4 \ - $(top_srcdir)/config/pmix_config_subdir_args.m4 \ - $(top_srcdir)/config/pmix_config_threads.m4 \ - $(top_srcdir)/config/pmix_ensure_contains_optflags.m4 \ - $(top_srcdir)/config/pmix_functions.m4 \ - $(top_srcdir)/config/pmix_load_platform.m4 \ - $(top_srcdir)/config/pmix_mca.m4 \ - $(top_srcdir)/config/pmix_search_libs.m4 \ - $(top_srcdir)/config/pmix_set_mca_prefix.m4 \ - $(top_srcdir)/config/pmix_setup_cc.m4 \ - $(top_srcdir)/config/pmix_setup_cli.m4 \ - $(top_srcdir)/config/pmix_setup_hwloc.m4 \ - $(top_srcdir)/config/pmix_setup_libev.m4 \ - $(top_srcdir)/config/pmix_setup_libevent.m4 \ - $(top_srcdir)/config/pmix_setup_zlib.m4 \ - $(top_srcdir)/config/pmix_summary.m4 \ - $(top_srcdir)/config/pmix_try_assemble.m4 \ - $(top_srcdir)/config/autogen_found_items.m4 \ - $(top_srcdir)/src/mca/pdl/configure.m4 \ - $(top_srcdir)/src/mca/pinstalldirs/configure.m4 \ - $(top_srcdir)/src/mca/common/dstore/configure.m4 \ - $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ - $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ - $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ - $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ - $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ - $(top_srcdir)/src/mca/pif/bsdx_ipv6/configure.m4 \ - $(top_srcdir)/src/mca/pif/linux_ipv6/configure.m4 \ - $(top_srcdir)/src/mca/pif/posix_ipv4/configure.m4 \ - $(top_srcdir)/src/mca/pif/solaris_ipv6/configure.m4 \ - $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ - $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ - $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ - $(top_srcdir)/src/mca/psec/munge/configure.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/src/include/pmix_config.h \ - $(top_builddir)/include/pmix_common.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(mcacomponentdir)" -LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) -libmca_pnet_test_la_LIBADD = -am__libmca_pnet_test_la_SOURCES_DIST = pnet_test.h \ - pnet_test_component.c pnet_test.c -am__objects_1 = -am__objects_2 = pnet_test_component.lo pnet_test.lo -@MCA_BUILD_pmix_pnet_test_DSO_FALSE@am__objects_3 = $(am__objects_1) \ -@MCA_BUILD_pmix_pnet_test_DSO_FALSE@ $(am__objects_2) -am_libmca_pnet_test_la_OBJECTS = $(am__objects_3) -libmca_pnet_test_la_OBJECTS = $(am_libmca_pnet_test_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -libmca_pnet_test_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(libmca_pnet_test_la_LDFLAGS) \ - $(LDFLAGS) -o $@ -@MCA_BUILD_pmix_pnet_test_DSO_FALSE@am_libmca_pnet_test_la_rpath = -@NEED_LIBPMIX_TRUE@mca_pnet_test_la_DEPENDENCIES = \ -@NEED_LIBPMIX_TRUE@ $(top_builddir)/src/libpmix.la -am__mca_pnet_test_la_SOURCES_DIST = pnet_test.h pnet_test_component.c \ - pnet_test.c -@MCA_BUILD_pmix_pnet_test_DSO_TRUE@am__objects_4 = $(am__objects_1) \ -@MCA_BUILD_pmix_pnet_test_DSO_TRUE@ $(am__objects_2) -am_mca_pnet_test_la_OBJECTS = $(am__objects_4) -mca_pnet_test_la_OBJECTS = $(am_mca_pnet_test_la_OBJECTS) -mca_pnet_test_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(mca_pnet_test_la_LDFLAGS) $(LDFLAGS) \ - -o $@ -@MCA_BUILD_pmix_pnet_test_DSO_TRUE@am_mca_pnet_test_la_rpath = -rpath \ -@MCA_BUILD_pmix_pnet_test_DSO_TRUE@ $(mcacomponentdir) -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/include -I$(top_builddir)/include -depcomp = $(SHELL) $(top_srcdir)/./config/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libmca_pnet_test_la_SOURCES) $(mca_pnet_test_la_SOURCES) -DIST_SOURCES = $(am__libmca_pnet_test_la_SOURCES_DIST) \ - $(am__mca_pnet_test_la_SOURCES_DIST) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/./config/depcomp -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCAS = @CCAS@ -CCASDEPMODE = @CCASDEPMODE@ -CCASFLAGS = @CCASFLAGS@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CLEANFILES = @CLEANFILES@ -CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ -MCA_pmix_FRAMEWORKS = @MCA_pmix_FRAMEWORKS@ -MCA_pmix_FRAMEWORKS_SUBDIRS = @MCA_pmix_FRAMEWORKS_SUBDIRS@ -MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ -MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ -MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ -MCA_pmix_FRAMEWORK_LIBS = @MCA_pmix_FRAMEWORK_LIBS@ -MCA_pmix_bfrops_ALL_COMPONENTS = @MCA_pmix_bfrops_ALL_COMPONENTS@ -MCA_pmix_bfrops_ALL_SUBDIRS = @MCA_pmix_bfrops_ALL_SUBDIRS@ -MCA_pmix_bfrops_DSO_COMPONENTS = @MCA_pmix_bfrops_DSO_COMPONENTS@ -MCA_pmix_bfrops_DSO_SUBDIRS = @MCA_pmix_bfrops_DSO_SUBDIRS@ -MCA_pmix_bfrops_STATIC_COMPONENTS = @MCA_pmix_bfrops_STATIC_COMPONENTS@ -MCA_pmix_bfrops_STATIC_LTLIBS = @MCA_pmix_bfrops_STATIC_LTLIBS@ -MCA_pmix_bfrops_STATIC_SUBDIRS = @MCA_pmix_bfrops_STATIC_SUBDIRS@ -MCA_pmix_common_ALL_COMPONENTS = @MCA_pmix_common_ALL_COMPONENTS@ -MCA_pmix_common_ALL_SUBDIRS = @MCA_pmix_common_ALL_SUBDIRS@ -MCA_pmix_common_DSO_COMPONENTS = @MCA_pmix_common_DSO_COMPONENTS@ -MCA_pmix_common_DSO_SUBDIRS = @MCA_pmix_common_DSO_SUBDIRS@ -MCA_pmix_common_STATIC_COMPONENTS = @MCA_pmix_common_STATIC_COMPONENTS@ -MCA_pmix_common_STATIC_LTLIBS = @MCA_pmix_common_STATIC_LTLIBS@ -MCA_pmix_common_STATIC_SUBDIRS = @MCA_pmix_common_STATIC_SUBDIRS@ -MCA_pmix_gds_ALL_COMPONENTS = @MCA_pmix_gds_ALL_COMPONENTS@ -MCA_pmix_gds_ALL_SUBDIRS = @MCA_pmix_gds_ALL_SUBDIRS@ -MCA_pmix_gds_DSO_COMPONENTS = @MCA_pmix_gds_DSO_COMPONENTS@ -MCA_pmix_gds_DSO_SUBDIRS = @MCA_pmix_gds_DSO_SUBDIRS@ -MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ -MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ -MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ -MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ -MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ -MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ -MCA_pmix_pdl_DSO_SUBDIRS = @MCA_pmix_pdl_DSO_SUBDIRS@ -MCA_pmix_pdl_STATIC_COMPONENTS = @MCA_pmix_pdl_STATIC_COMPONENTS@ -MCA_pmix_pdl_STATIC_LTLIBS = @MCA_pmix_pdl_STATIC_LTLIBS@ -MCA_pmix_pdl_STATIC_SUBDIRS = @MCA_pmix_pdl_STATIC_SUBDIRS@ -MCA_pmix_pif_ALL_COMPONENTS = @MCA_pmix_pif_ALL_COMPONENTS@ -MCA_pmix_pif_ALL_SUBDIRS = @MCA_pmix_pif_ALL_SUBDIRS@ -MCA_pmix_pif_DSO_COMPONENTS = @MCA_pmix_pif_DSO_COMPONENTS@ -MCA_pmix_pif_DSO_SUBDIRS = @MCA_pmix_pif_DSO_SUBDIRS@ -MCA_pmix_pif_STATIC_COMPONENTS = @MCA_pmix_pif_STATIC_COMPONENTS@ -MCA_pmix_pif_STATIC_LTLIBS = @MCA_pmix_pif_STATIC_LTLIBS@ -MCA_pmix_pif_STATIC_SUBDIRS = @MCA_pmix_pif_STATIC_SUBDIRS@ -MCA_pmix_pinstalldirs_ALL_COMPONENTS = @MCA_pmix_pinstalldirs_ALL_COMPONENTS@ -MCA_pmix_pinstalldirs_ALL_SUBDIRS = @MCA_pmix_pinstalldirs_ALL_SUBDIRS@ -MCA_pmix_pinstalldirs_DSO_COMPONENTS = @MCA_pmix_pinstalldirs_DSO_COMPONENTS@ -MCA_pmix_pinstalldirs_DSO_SUBDIRS = @MCA_pmix_pinstalldirs_DSO_SUBDIRS@ -MCA_pmix_pinstalldirs_STATIC_COMPONENTS = @MCA_pmix_pinstalldirs_STATIC_COMPONENTS@ -MCA_pmix_pinstalldirs_STATIC_LTLIBS = @MCA_pmix_pinstalldirs_STATIC_LTLIBS@ -MCA_pmix_pinstalldirs_STATIC_SUBDIRS = @MCA_pmix_pinstalldirs_STATIC_SUBDIRS@ -MCA_pmix_plog_ALL_COMPONENTS = @MCA_pmix_plog_ALL_COMPONENTS@ -MCA_pmix_plog_ALL_SUBDIRS = @MCA_pmix_plog_ALL_SUBDIRS@ -MCA_pmix_plog_DSO_COMPONENTS = @MCA_pmix_plog_DSO_COMPONENTS@ -MCA_pmix_plog_DSO_SUBDIRS = @MCA_pmix_plog_DSO_SUBDIRS@ -MCA_pmix_plog_STATIC_COMPONENTS = @MCA_pmix_plog_STATIC_COMPONENTS@ -MCA_pmix_plog_STATIC_LTLIBS = @MCA_pmix_plog_STATIC_LTLIBS@ -MCA_pmix_plog_STATIC_SUBDIRS = @MCA_pmix_plog_STATIC_SUBDIRS@ -MCA_pmix_pnet_ALL_COMPONENTS = @MCA_pmix_pnet_ALL_COMPONENTS@ -MCA_pmix_pnet_ALL_SUBDIRS = @MCA_pmix_pnet_ALL_SUBDIRS@ -MCA_pmix_pnet_DSO_COMPONENTS = @MCA_pmix_pnet_DSO_COMPONENTS@ -MCA_pmix_pnet_DSO_SUBDIRS = @MCA_pmix_pnet_DSO_SUBDIRS@ -MCA_pmix_pnet_STATIC_COMPONENTS = @MCA_pmix_pnet_STATIC_COMPONENTS@ -MCA_pmix_pnet_STATIC_LTLIBS = @MCA_pmix_pnet_STATIC_LTLIBS@ -MCA_pmix_pnet_STATIC_SUBDIRS = @MCA_pmix_pnet_STATIC_SUBDIRS@ -MCA_pmix_preg_ALL_COMPONENTS = @MCA_pmix_preg_ALL_COMPONENTS@ -MCA_pmix_preg_ALL_SUBDIRS = @MCA_pmix_preg_ALL_SUBDIRS@ -MCA_pmix_preg_DSO_COMPONENTS = @MCA_pmix_preg_DSO_COMPONENTS@ -MCA_pmix_preg_DSO_SUBDIRS = @MCA_pmix_preg_DSO_SUBDIRS@ -MCA_pmix_preg_STATIC_COMPONENTS = @MCA_pmix_preg_STATIC_COMPONENTS@ -MCA_pmix_preg_STATIC_LTLIBS = @MCA_pmix_preg_STATIC_LTLIBS@ -MCA_pmix_preg_STATIC_SUBDIRS = @MCA_pmix_preg_STATIC_SUBDIRS@ -MCA_pmix_psec_ALL_COMPONENTS = @MCA_pmix_psec_ALL_COMPONENTS@ -MCA_pmix_psec_ALL_SUBDIRS = @MCA_pmix_psec_ALL_SUBDIRS@ -MCA_pmix_psec_DSO_COMPONENTS = @MCA_pmix_psec_DSO_COMPONENTS@ -MCA_pmix_psec_DSO_SUBDIRS = @MCA_pmix_psec_DSO_SUBDIRS@ -MCA_pmix_psec_STATIC_COMPONENTS = @MCA_pmix_psec_STATIC_COMPONENTS@ -MCA_pmix_psec_STATIC_LTLIBS = @MCA_pmix_psec_STATIC_LTLIBS@ -MCA_pmix_psec_STATIC_SUBDIRS = @MCA_pmix_psec_STATIC_SUBDIRS@ -MCA_pmix_psensor_ALL_COMPONENTS = @MCA_pmix_psensor_ALL_COMPONENTS@ -MCA_pmix_psensor_ALL_SUBDIRS = @MCA_pmix_psensor_ALL_SUBDIRS@ -MCA_pmix_psensor_DSO_COMPONENTS = @MCA_pmix_psensor_DSO_COMPONENTS@ -MCA_pmix_psensor_DSO_SUBDIRS = @MCA_pmix_psensor_DSO_SUBDIRS@ -MCA_pmix_psensor_STATIC_COMPONENTS = @MCA_pmix_psensor_STATIC_COMPONENTS@ -MCA_pmix_psensor_STATIC_LTLIBS = @MCA_pmix_psensor_STATIC_LTLIBS@ -MCA_pmix_psensor_STATIC_SUBDIRS = @MCA_pmix_psensor_STATIC_SUBDIRS@ -MCA_pmix_pshmem_ALL_COMPONENTS = @MCA_pmix_pshmem_ALL_COMPONENTS@ -MCA_pmix_pshmem_ALL_SUBDIRS = @MCA_pmix_pshmem_ALL_SUBDIRS@ -MCA_pmix_pshmem_DSO_COMPONENTS = @MCA_pmix_pshmem_DSO_COMPONENTS@ -MCA_pmix_pshmem_DSO_SUBDIRS = @MCA_pmix_pshmem_DSO_SUBDIRS@ -MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ -MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ -MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ -MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ -MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ -MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ -MCA_pmix_ptl_DSO_SUBDIRS = @MCA_pmix_ptl_DSO_SUBDIRS@ -MCA_pmix_ptl_STATIC_COMPONENTS = @MCA_pmix_ptl_STATIC_COMPONENTS@ -MCA_pmix_ptl_STATIC_LTLIBS = @MCA_pmix_ptl_STATIC_LTLIBS@ -MCA_pmix_ptl_STATIC_SUBDIRS = @MCA_pmix_ptl_STATIC_SUBDIRS@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PERL = @PERL@ -PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ -PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ -PMIX_ASM_SUPPORT_64BIT = @PMIX_ASM_SUPPORT_64BIT@ -PMIX_ASM_TEXT = @PMIX_ASM_TEXT@ -PMIX_ASM_TYPE = @PMIX_ASM_TYPE@ -PMIX_ASSEMBLY_ARCH = @PMIX_ASSEMBLY_ARCH@ -PMIX_ASSEMBLY_BUILTIN = @PMIX_ASSEMBLY_BUILTIN@ -PMIX_ASSEMBLY_FORMAT = @PMIX_ASSEMBLY_FORMAT@ -PMIX_AS_GLOBAL = @PMIX_AS_GLOBAL@ -PMIX_AS_LABEL_SUFFIX = @PMIX_AS_LABEL_SUFFIX@ -PMIX_BUILT_TEST_PREFIX = @PMIX_BUILT_TEST_PREFIX@ -PMIX_CC_ABSOLUTE = @PMIX_CC_ABSOLUTE@ -PMIX_COMPONENT_LIBRARY_PATHS = @PMIX_COMPONENT_LIBRARY_PATHS@ -PMIX_CONFIGURE_CLI = @PMIX_CONFIGURE_CLI@ -PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ -PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ -PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ -PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ -PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ -PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ -PMIX_EXTRA_LIB = @PMIX_EXTRA_LIB@ -PMIX_EXTRA_LTLIB = @PMIX_EXTRA_LTLIB@ -PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ -PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ -PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ -PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ -PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ -PMIX_REPO_REV = @PMIX_REPO_REV@ -PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ -PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ -PMIX_VERSION = @PMIX_VERSION@ -PMIX_top_builddir = @PMIX_top_builddir@ -PMIX_top_srcdir = @PMIX_top_srcdir@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_prefix_program = @ac_prefix_program@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -libmca_common_dstore_so_version = @libmca_common_dstore_so_version@ -libpmi2_so_version = @libpmi2_so_version@ -libpmi_so_version = @libpmi_so_version@ -libpmix_so_version = @libpmix_so_version@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ -pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ -pmix_pdl_plibltdl_LDFLAGS = @pmix_pdl_plibltdl_LDFLAGS@ -pmix_pdl_plibltdl_LIBS = @pmix_pdl_plibltdl_LIBS@ -pmixdatadir = @pmixdatadir@ -pmixincludedir = @pmixincludedir@ -pmixlibdir = @pmixlibdir@ -pmixmajor = @pmixmajor@ -pmixminor = @pmixminor@ -pmixnumeric = @pmixnumeric@ -pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -psec_munge_CPPFLAGS = @psec_munge_CPPFLAGS@ -psec_munge_LDFLAGS = @psec_munge_LDFLAGS@ -psec_munge_LIBS = @psec_munge_LIBS@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -headers = pnet_test.h -sources = \ - pnet_test_component.c \ - pnet_test.c - -@MCA_BUILD_pmix_pnet_test_DSO_FALSE@lib = libmca_pnet_test.la - -# Make the output library in this directory, and name it either -# mca__.la (for DSO builds) or libmca__.la -# (for static builds). -@MCA_BUILD_pmix_pnet_test_DSO_TRUE@lib = -@MCA_BUILD_pmix_pnet_test_DSO_FALSE@lib_sources = $(headers) $(sources) -@MCA_BUILD_pmix_pnet_test_DSO_TRUE@lib_sources = -@MCA_BUILD_pmix_pnet_test_DSO_FALSE@component = -@MCA_BUILD_pmix_pnet_test_DSO_TRUE@component = mca_pnet_test.la -@MCA_BUILD_pmix_pnet_test_DSO_FALSE@component_sources = -@MCA_BUILD_pmix_pnet_test_DSO_TRUE@component_sources = $(headers) $(sources) -mcacomponentdir = $(pmixlibdir) -mcacomponent_LTLIBRARIES = $(component) -mca_pnet_test_la_SOURCES = $(component_sources) -mca_pnet_test_la_LDFLAGS = -module -avoid-version -@NEED_LIBPMIX_TRUE@mca_pnet_test_la_LIBADD = $(top_builddir)/src/libpmix.la -noinst_LTLIBRARIES = $(lib) -libmca_pnet_test_la_SOURCES = $(lib_sources) -libmca_pnet_test_la_LDFLAGS = -module -avoid-version -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/mca/pnet/test/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/mca/pnet/test/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-mcacomponentLTLIBRARIES: $(mcacomponent_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(mcacomponentdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(mcacomponentdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(mcacomponentdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(mcacomponentdir)"; \ - } - -uninstall-mcacomponentLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(mcacomponentdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(mcacomponentdir)/$$f"; \ - done - -clean-mcacomponentLTLIBRARIES: - -test -z "$(mcacomponent_LTLIBRARIES)" || rm -f $(mcacomponent_LTLIBRARIES) - @list='$(mcacomponent_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libmca_pnet_test.la: $(libmca_pnet_test_la_OBJECTS) $(libmca_pnet_test_la_DEPENDENCIES) $(EXTRA_libmca_pnet_test_la_DEPENDENCIES) - $(AM_V_CCLD)$(libmca_pnet_test_la_LINK) $(am_libmca_pnet_test_la_rpath) $(libmca_pnet_test_la_OBJECTS) $(libmca_pnet_test_la_LIBADD) $(LIBS) - -mca_pnet_test.la: $(mca_pnet_test_la_OBJECTS) $(mca_pnet_test_la_DEPENDENCIES) $(EXTRA_mca_pnet_test_la_DEPENDENCIES) - $(AM_V_CCLD)$(mca_pnet_test_la_LINK) $(am_mca_pnet_test_la_rpath) $(mca_pnet_test_la_OBJECTS) $(mca_pnet_test_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pnet_test.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pnet_test_component.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) -installdirs: - for dir in "$(DESTDIR)$(mcacomponentdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ - clean-noinstLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-mcacomponentLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-mcacomponentLTLIBRARIES - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-mcacomponentLTLIBRARIES \ - clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-mcacomponentLTLIBRARIES install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am \ - uninstall-mcacomponentLTLIBRARIES - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/pnet_test.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/pnet_test.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/pnet_test.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/pnet_test.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,483 +0,0 @@ -/* - * Copyright (c) 2015-2019 Intel, Inc. All rights reserved. - * Copyright (c) 2016 IBM Corporation. All rights reserved. - * - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include - -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_STAT_H -#include -#endif -#ifdef HAVE_FCNTL_H -#include -#endif -#include - -#include - -#include "src/mca/base/pmix_mca_base_var.h" -#include "src/include/pmix_socket_errno.h" -#include "src/include/pmix_globals.h" -#include "src/class/pmix_list.h" -#include "src/util/alfg.h" -#include "src/util/argv.h" -#include "src/util/error.h" -#include "src/util/name_fns.h" -#include "src/util/output.h" -#include "src/util/pmix_environ.h" -#include "src/mca/preg/preg.h" - -#include "src/mca/pnet/pnet.h" -#include "src/mca/pnet/base/base.h" -#include "pnet_test.h" - -static pmix_status_t test_init(void); -static void test_finalize(void); -static pmix_status_t allocate(pmix_namespace_t *nptr, - pmix_info_t *info, - pmix_list_t *ilist); -static pmix_status_t setup_local_network(pmix_namespace_t *nptr, - pmix_info_t info[], - size_t ninfo); -static pmix_status_t setup_fork(pmix_namespace_t *nptr, - const pmix_proc_t *proc, - char ***env); -static void child_finalized(pmix_proc_t *peer); -static void local_app_finalized(pmix_namespace_t *nptr); -static void deregister_nspace(pmix_namespace_t *nptr); -static pmix_status_t collect_inventory(pmix_info_t directives[], size_t ndirs, - pmix_inventory_cbfunc_t cbfunc, void *cbdata); -static pmix_status_t deliver_inventory(pmix_info_t info[], size_t ninfo, - pmix_info_t directives[], size_t ndirs, - pmix_op_cbfunc_t cbfunc, void *cbdata); - -pmix_pnet_module_t pmix_test_module = { - .name = "test", - .init = test_init, - .finalize = test_finalize, - .allocate = allocate, - .setup_local_network = setup_local_network, - .setup_fork = setup_fork, - .child_finalized = child_finalized, - .local_app_finalized = local_app_finalized, - .deregister_nspace = deregister_nspace, - .collect_inventory = collect_inventory, - .deliver_inventory = deliver_inventory -}; - -static pmix_status_t test_init(void) -{ - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet: test init"); - return PMIX_SUCCESS; -} - -static void test_finalize(void) -{ - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet: test finalize"); -} - -/* NOTE: if there is any binary data to be transferred, then - * this function MUST pack it for transport as the host will - * not know how to do so */ -static pmix_status_t allocate(pmix_namespace_t *nptr, - pmix_info_t *info, - pmix_list_t *ilist) -{ - pmix_kval_t *kv; - bool seckey = false; - pmix_list_t mylist; - size_t n, nreqs=0; - pmix_info_t *requests = NULL; - char *idkey = NULL; - uint64_t unique_key = 12345; - pmix_buffer_t buf; - pmix_status_t rc; - pmix_pnet_job_t *jptr, *job; - pmix_pnet_node_t *nd; - pmix_pnet_local_procs_t *lptr, *lp; - - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:test:allocate for nspace %s key %s", - nptr->nspace, info->key); - - /* if I am not the gateway, then ignore this call - should never - * happen, but check to be safe */ - if (!PMIX_PEER_IS_GATEWAY(pmix_globals.mypeer)) { - return PMIX_SUCCESS; - } - - if (NULL == info) { - return PMIX_ERR_TAKE_NEXT_OPTION; - } - /* check directives to see if a crypto key and/or - * network resource allocations requested */ - PMIX_CONSTRUCT(&mylist, pmix_list_t); - if (0 == strncmp(info->key, PMIX_SETUP_APP_ENVARS, PMIX_MAX_KEYLEN) || - 0 == strncmp(info->key, PMIX_SETUP_APP_ALL, PMIX_MAX_KEYLEN)) { - kv = PMIX_NEW(pmix_kval_t); - if (NULL == kv) { - return PMIX_ERR_NOMEM; - } - kv->key = strdup(PMIX_SET_ENVAR); - kv->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); - if (NULL == kv->value) { - PMIX_RELEASE(kv); - return PMIX_ERR_NOMEM; - } - kv->value->type = PMIX_ENVAR; - PMIX_ENVAR_LOAD(&kv->value->data.envar, "PMIX_TEST_ENVAR", "1", ':'); - pmix_list_append(ilist, &kv->super); - return PMIX_SUCCESS; - } else if (0 != strncmp(info->key, PMIX_ALLOC_NETWORK_ID, PMIX_MAX_KEYLEN)) { - return PMIX_SUCCESS; - } - - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:test:allocate alloc_network for nspace %s", - nptr->nspace); - - /* this info key includes an array of pmix_info_t, each providing - * a key (that is to be used as the key for the allocated ports) and - * a number of ports to allocate for that key */ - if (PMIX_DATA_ARRAY != info->value.type || - NULL == info->value.data.darray || - PMIX_INFO != info->value.data.darray->type || - NULL == info->value.data.darray->array) { - /* just process something for test */ - goto process; - } - requests = (pmix_info_t*)info->value.data.darray->array; - nreqs = info->value.data.darray->size; - /* cycle thru the provided array and get the ID key */ - for (n=0; n < nreqs; n++) { - if (0 == strncmp(requests[n].key, PMIX_ALLOC_NETWORK_ID, PMIX_MAX_KEYLEN)) { - /* check for bozo error */ - if (PMIX_STRING != requests[n].value.type || - NULL == requests[n].value.data.string) { - PMIX_ERROR_LOG(PMIX_ERR_BAD_PARAM); - return PMIX_ERR_BAD_PARAM; - } - idkey = requests[n].value.data.string; - } else if (0 == strncasecmp(requests[n].key, PMIX_ALLOC_NETWORK_SEC_KEY, PMIX_MAX_KEYLEN)) { - seckey = PMIX_INFO_TRUE(&requests[n]); - } - } - - process: - /* if they didn't give us a test key, just create one */ - if (NULL == idkey) { - idkey = "TESTKEY"; - } - - /* must include the idkey */ - kv = PMIX_NEW(pmix_kval_t); - if (NULL == kv) { - return PMIX_ERR_NOMEM; - } - kv->key = strdup(PMIX_ALLOC_NETWORK_ID); - kv->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); - if (NULL == kv->value) { - PMIX_RELEASE(kv); - return PMIX_ERR_NOMEM; - } - kv->value->type = PMIX_STRING; - kv->value->data.string = strdup(idkey); - pmix_list_append(&mylist, &kv->super); - - if (seckey) { - kv = PMIX_NEW(pmix_kval_t); - if (NULL == kv) { - return PMIX_ERR_NOMEM; - } - kv->key = strdup(PMIX_ALLOC_NETWORK_SEC_KEY); - kv->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); - if (NULL == kv->value) { - PMIX_RELEASE(kv); - return PMIX_ERR_NOMEM; - } - kv->value->type = PMIX_BYTE_OBJECT; - kv->value->data.bo.bytes = (char*)malloc(sizeof(uint64_t)); - if (NULL == kv->value->data.bo.bytes) { - PMIX_RELEASE(kv); - return PMIX_ERR_NOMEM; - } - memcpy(kv->value->data.bo.bytes, &unique_key, sizeof(uint64_t)); - kv->value->data.bo.size = sizeof(uint64_t); - pmix_list_append(&mylist, &kv->super); - } - - /* find the info on this job, if available */ - job = NULL; - PMIX_LIST_FOREACH(jptr, &pmix_pnet_globals.jobs, pmix_pnet_job_t) { - if (0 == strcmp(jptr->nspace, nptr->nspace)) { - job = jptr; - break; - } - } - if (NULL != job) { - pmix_output(0, "ALLOCATE RESOURCES FOR JOB %s", job->nspace); - for (n=0; (int)n < job->nodes.size; n++) { - if (NULL == (nd = (pmix_pnet_node_t*)pmix_pointer_array_get_item(&job->nodes, n))) { - continue; - } - lp = NULL; - PMIX_LIST_FOREACH(lptr, &nd->local_jobs, pmix_pnet_local_procs_t) { - if (0 == strcmp(job->nspace, lptr->nspace)) { - lp = lptr; - break; - } - } - if (NULL == lp) { - pmix_output(0, "\t NODE %s 0 RANKS", nd->name); - } else { - pmix_output(0, "\tNODE %s %d RANKS", nd->name, (int)lp->np); - } - } - } - - n = pmix_list_get_size(&mylist); - if (0 < n) { - PMIX_CONSTRUCT(&buf, pmix_buffer_t); - /* pack the number of kvals for ease on the remote end */ - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &buf, &n, 1, PMIX_SIZE); - /* cycle across the list and pack the kvals */ - while (NULL != (kv = (pmix_kval_t*)pmix_list_remove_first(&mylist))) { - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &buf, kv, 1, PMIX_KVAL); - PMIX_RELEASE(kv); - if (PMIX_SUCCESS != rc) { - PMIX_DESTRUCT(&buf); - PMIX_LIST_DESTRUCT(&mylist); - return rc; - } - } - PMIX_LIST_DESTRUCT(&mylist); - kv = PMIX_NEW(pmix_kval_t); - kv->key = strdup("pmix-pnet-test-blob"); - kv->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); - if (NULL == kv->value) { - PMIX_RELEASE(kv); - PMIX_DESTRUCT(&buf); - return PMIX_ERR_NOMEM; - } - kv->value->type = PMIX_BYTE_OBJECT; - PMIX_UNLOAD_BUFFER(&buf, kv->value->data.bo.bytes, kv->value->data.bo.size); - PMIX_DESTRUCT(&buf); - pmix_list_append(ilist, &kv->super); - } - - return PMIX_SUCCESS; -} - -static pmix_status_t setup_local_network(pmix_namespace_t *nptr, - pmix_info_t info[], - size_t ninfo) -{ - size_t n, m, nkvals; - char *nodestring, **nodes; - pmix_proc_t *procs; - size_t nprocs; - pmix_buffer_t bkt; - int32_t cnt; - pmix_kval_t *kv; - pmix_status_t rc; - pmix_info_t *jinfo, stinfo; - char *idkey = NULL; - - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:test:setup_local_network"); - - /* get the list of nodes in this job - returns a regex */ - pmix_output(0, "pnet:test setup_local_network NSPACE %s", (NULL == nptr) ? "NULL" : nptr->nspace); - if (NULL == nptr) { - return PMIX_SUCCESS; - } - pmix_preg.resolve_nodes(nptr->nspace, &nodestring); - if (NULL == nodestring) { - return PMIX_SUCCESS; - } - pmix_preg.parse_nodes(nodestring, &nodes); // get an argv array of node names - pmix_output(0, "pnet:test setup_local_network NODES %s", (NULL == nodes) ? "NULL" : "NON-NULL"); - if (NULL == nodes) { - free(nodestring); - return PMIX_SUCCESS; - } - for (n=0; NULL != nodes[n]; n++) { - pmix_output(0, "pnet:test setup_local_network NODE: %s", nodes[n]); - } - - for (n=0; NULL != nodes[n]; n++) { - /* get an array of pmix_proc_t containing the names of the procs on that node */ - pmix_preg.resolve_peers(nodes[n], nptr->nspace, &procs, &nprocs); - if (NULL == procs) { - continue; - } - for (m=0; m < nprocs; m++) { - pmix_output(0, "pnet:test setup_local_network NODE %s: peer %s:%d", nodes[n], procs[m].nspace, procs[m].rank); - } - /* do stuff */ - free(procs); - } - - if (NULL != info) { - for (n=0; n < ninfo; n++) { - /* look for my key */ - if (0 == strncmp(info[n].key, "pmix-pnet-test-blob", PMIX_MAX_KEYLEN)) { - /* this macro NULLs and zero's the incoming bo */ - PMIX_LOAD_BUFFER(pmix_globals.mypeer, &bkt, - info[n].value.data.bo.bytes, - info[n].value.data.bo.size); - /* unpack the number of kvals */ - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &bkt, &nkvals, &cnt, PMIX_SIZE); - /* the data gets stored as a pmix_data_array_t on the provided key */ - PMIX_INFO_CONSTRUCT(&stinfo); - pmix_strncpy(stinfo.key, idkey, PMIX_MAX_KEYLEN); - stinfo.value.type = PMIX_DATA_ARRAY; - PMIX_DATA_ARRAY_CREATE(stinfo.value.data.darray, nkvals, PMIX_INFO); - jinfo = (pmix_info_t*)stinfo.value.data.darray->array; - - /* cycle thru the blob and extract the kvals */ - kv = PMIX_NEW(pmix_kval_t); - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &bkt, kv, &cnt, PMIX_KVAL); - m = 0; - while (PMIX_SUCCESS == rc) { - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "recvd KEY %s %s", kv->key, - (PMIX_STRING == kv->value->type) ? kv->value->data.string : "NON-STRING"); - /* xfer the value to the info */ - pmix_strncpy(jinfo[m].key, kv->key, PMIX_MAX_KEYLEN); - PMIX_BFROPS_VALUE_XFER(rc, pmix_globals.mypeer, - &jinfo[m].value, kv->value); - /* if this is the ID key, save it */ - if (NULL == idkey && - 0 == strncmp(kv->key, PMIX_ALLOC_NETWORK_ID, PMIX_MAX_KEYLEN)) { - idkey = strdup(kv->value->data.string); - } - ++m; - PMIX_RELEASE(kv); - kv = PMIX_NEW(pmix_kval_t); - cnt = 1; - PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, - &bkt, kv, &cnt, PMIX_KVAL); - } - /* restore the incoming data */ - info[n].value.data.bo.bytes = bkt.base_ptr; - info[n].value.data.bo.size = bkt.bytes_used; - bkt.base_ptr = NULL; - bkt.bytes_used = 0; - - /* if they didn't include a network ID, then this is an error */ - if (NULL == idkey) { - PMIX_INFO_FREE(jinfo, nkvals); - return PMIX_ERR_BAD_PARAM; - } - /* cache the info on the job */ - PMIX_GDS_CACHE_JOB_INFO(rc, pmix_globals.mypeer, nptr, - &stinfo, 1); - PMIX_INFO_DESTRUCT(&stinfo); - } - } - } - if (NULL != idkey) { - free(idkey); - } - return PMIX_SUCCESS; -} - -static pmix_status_t setup_fork(pmix_namespace_t *nptr, - const pmix_proc_t *proc, - char ***env) -{ - pmix_cb_t cb; - pmix_status_t rc; - pmix_kval_t *kv; - uint16_t localrank; - - PMIX_CONSTRUCT(&cb, pmix_cb_t); - - cb.key = strdup(PMIX_LOCAL_RANK); - /* this data isn't going anywhere, so we don't require a copy */ - cb.copy = false; - /* scope is irrelevant as the info we seek must be local */ - cb.scope = PMIX_SCOPE_UNDEF; - /* ask for the value for the given proc */ - cb.proc = (pmix_proc_t*)proc; - - PMIX_GDS_FETCH_KV(rc, pmix_globals.mypeer, &cb); - if (PMIX_SUCCESS != rc) { - if (PMIX_ERR_INVALID_NAMESPACE != rc) { - PMIX_ERROR_LOG(rc); - } - PMIX_DESTRUCT(&cb); - return rc; - } - /* should just be the one value on the list */ - if (1 != pmix_list_get_size(&cb.kvs)) { - PMIX_ERROR_LOG(PMIX_ERR_BAD_PARAM); - PMIX_DESTRUCT(&cb); - return PMIX_ERR_BAD_PARAM; - } - kv = (pmix_kval_t*)pmix_list_get_first(&cb.kvs); - if (PMIX_UINT16 != kv->value->type) { - PMIX_ERROR_LOG(PMIX_ERR_BAD_PARAM); - PMIX_DESTRUCT(&cb); - return PMIX_ERR_BAD_PARAM; - } - localrank = kv->value->data.uint16; - - pmix_output(0, "pnet:test LOCAL RANK FOR PROC %s: %d", PMIX_NAME_PRINT(proc), (int)localrank); - - PMIX_DESTRUCT(&cb); - return PMIX_SUCCESS; -} - -static void child_finalized(pmix_proc_t *peer) -{ - pmix_output(0, "pnet:test CHILD %s:%d FINALIZED", - peer->nspace, peer->rank); -} - -static void local_app_finalized(pmix_namespace_t *nptr) -{ - pmix_output(0, "pnet:test NSPACE %s LOCALLY FINALIZED", nptr->nspace); -} - -static void deregister_nspace(pmix_namespace_t *nptr) -{ - pmix_output(0, "pnet:test DEREGISTER NSPACE %s", nptr->nspace); -} - -static pmix_status_t collect_inventory(pmix_info_t directives[], size_t ndirs, - pmix_inventory_cbfunc_t cbfunc, void *cbdata) -{ - pmix_output(0, "pnet:test COLLECT INVENTORY"); - return PMIX_ERR_NOT_SUPPORTED; -} - -static pmix_status_t deliver_inventory(pmix_info_t info[], size_t ninfo, - pmix_info_t directives[], size_t ndirs, - pmix_op_cbfunc_t cbfunc, void *cbdata) -{ - pmix_output_verbose(2, pmix_pnet_base_framework.framework_output, - "pnet:test deliver inventory"); - - return PMIX_ERR_NOT_SUPPORTED; -} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/pnet_test_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/pnet_test_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/pnet_test_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/pnet_test_component.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ -/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ -/* - * Copyright (c) 2004-2008 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2005 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * Copyright (c) 2004-2005 The Regents of the University of California. - * All rights reserved. - * Copyright (c) 2015 Los Alamos National Security, LLC. All rights - * reserved. - * Copyright (c) 2016-2018 Intel, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - * - * These symbols are in a file by themselves to provide nice linker - * semantics. Since linkers generally pull in symbols by object - * files, keeping these symbols as the only symbols in this file - * prevents utility programs such as "ompi_info" from having to import - * entire components just to query their version and parameters. - */ - -#include -#include "pmix_common.h" - -#include "src/util/argv.h" -#include "src/mca/pnet/pnet.h" -#include "pnet_test.h" - -static pmix_status_t component_open(void); -static pmix_status_t component_close(void); -static pmix_status_t component_query(pmix_mca_base_module_t **module, int *priority); - -/* - * Instantiate the public struct with all of our public information - * and pointers to our public functions in it - */ -pmix_pnet_test_component_t mca_pnet_test_component = { - .super = { - .base = { - PMIX_PNET_BASE_VERSION_1_0_0, - - /* Component name and version */ - .pmix_mca_component_name = "test", - PMIX_MCA_BASE_MAKE_VERSION(component, - PMIX_MAJOR_VERSION, - PMIX_MINOR_VERSION, - PMIX_RELEASE_VERSION), - - /* Component open and close functions */ - .pmix_mca_open_component = component_open, - .pmix_mca_close_component = component_close, - .pmix_mca_query_component = component_query, - }, - .data = { - /* The component is checkpoint ready */ - PMIX_MCA_BASE_METADATA_PARAM_CHECKPOINT - } - }, - .include = NULL, - .exclude = NULL -}; - -static pmix_status_t component_open(void) -{ - int index; - const pmix_mca_base_var_storage_t *value=NULL; - - /* we only allow ourselves to be considered IF the user - * specifically requested so */ - if (0 > (index = pmix_mca_base_var_find("pmix", "pnet", NULL, NULL))) { - return PMIX_ERROR; - } - pmix_mca_base_var_get_value(index, &value, NULL, NULL); - if (NULL != value && NULL != value->stringval && '\0' != value->stringval[0]) { - if (NULL != strstr(value->stringval, "test")) { - return PMIX_SUCCESS; - } - } - return PMIX_ERROR; -} - - -static pmix_status_t component_query(pmix_mca_base_module_t **module, int *priority) -{ - *priority = 0; - *module = (pmix_mca_base_module_t *)&pmix_test_module; - return PMIX_SUCCESS; -} - - -static pmix_status_t component_close(void) -{ - return PMIX_SUCCESS; -} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/pnet_test.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/pnet_test.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/pnet_test.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pnet/test/pnet_test.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2015-2018 Intel, Inc. All rights reserved. - * - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef PMIX_PNET_test_H -#define PMIX_PNET_test_H - -#include - - -#include "src/mca/pnet/pnet.h" - -BEGIN_C_DECLS - -typedef struct { - pmix_pnet_base_component_t super; - char **include; - char **exclude; -} pmix_pnet_test_component_t; - -/* the component must be visible data for the linker to find it */ -PMIX_EXPORT extern pmix_pnet_test_component_t mca_pnet_test_component; -extern pmix_pnet_module_t pmix_test_module; - -/* define a key for any blob we need to send in a launch msg */ -#define PMIX_PNET_TEST_BLOB "pmix.pnet.test.blob" - -END_C_DECLS - -#endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/base/base.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/base/base.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/base/base.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/base/base.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,9 +11,9 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -24,7 +24,7 @@ #ifndef PMIX_PREG_BASE_H_ #define PMIX_PREG_BASE_H_ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_SYS_TIME_H @@ -72,6 +72,7 @@ struct pmix_preg_globals_t { pmix_list_t actives; bool initialized; + bool selected; }; typedef struct pmix_preg_globals_t pmix_preg_globals_t; @@ -85,12 +86,11 @@ char ***names); PMIX_EXPORT pmix_status_t pmix_preg_base_parse_procs(const char *regexp, char ***procs); -PMIX_EXPORT pmix_status_t pmix_preg_base_resolve_peers(const char *nodename, - const char *nspace, - pmix_proc_t **procs, size_t *nprocs); -PMIX_EXPORT pmix_status_t pmix_preg_base_resolve_nodes(const char *nspace, - char **nodelist); +PMIX_EXPORT pmix_status_t pmix_preg_base_copy(char **dest, size_t *len, const char *input); +PMIX_EXPORT pmix_status_t pmix_preg_base_pack(pmix_buffer_t *buffer, const char *input); + +PMIX_EXPORT pmix_status_t pmix_preg_base_unpack(pmix_buffer_t *buffer, char **regex); END_C_DECLS diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/base/preg_base_frame.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/base/preg_base_frame.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/base/preg_base_frame.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/base/preg_base_frame.c 2022-05-29 09:51:40.000000000 +0000 @@ -11,9 +11,9 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. - * Copyright (c) 2015-2016 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2019 IBM Corporation. All rights reserved. * $COPYRIGHT$ * @@ -24,9 +24,9 @@ /** @file: * */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #ifdef HAVE_STRING_H #include @@ -51,8 +51,9 @@ .generate_ppn = pmix_preg_base_generate_ppn, .parse_nodes = pmix_preg_base_parse_nodes, .parse_procs = pmix_preg_base_parse_procs, - .resolve_peers = pmix_preg_base_resolve_peers, - .resolve_nodes = pmix_preg_base_resolve_nodes + .copy = pmix_preg_base_copy, + .pack = pmix_preg_base_pack, + .unpack = pmix_preg_base_unpack }; static pmix_status_t pmix_preg_close(void) @@ -61,6 +62,7 @@ return PMIX_SUCCESS; } pmix_preg_globals.initialized = false; + pmix_preg_globals.selected = false; PMIX_LIST_DESTRUCT(&pmix_preg_globals.actives); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/base/preg_base_select.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/base/preg_base_select.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/base/preg_base_select.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/base/preg_base_select.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,9 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,8 +19,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include @@ -29,8 +31,6 @@ #include "src/mca/preg/base/base.h" -static bool selected = false; - /* Function for selecting a prioritized list of components * from all those that are available. */ int pmix_preg_base_select(void) @@ -43,11 +43,11 @@ int rc, priority; bool inserted; - if (selected) { + if (pmix_preg_globals.selected) { /* ensure we don't do this twice */ return PMIX_SUCCESS; } - selected = true; + pmix_preg_globals.selected = true; /* Query all available components and ask if they have a module */ PMIX_LIST_FOREACH(cli, &pmix_preg_base_framework.framework_components, pmix_mca_base_component_list_item_t) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/base/preg_base_stubs.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/base/preg_base_stubs.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/base/preg_base_stubs.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/base/preg_base_stubs.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2015-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,7 +17,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #ifdef HAVE_UNISTD_H @@ -27,7 +27,8 @@ #include "src/util/argv.h" #include "src/util/error.h" #include "src/include/pmix_globals.h" - +#include "src/client/pmix_client_ops.h" +#include "src/mca/bfrops/bfrops.h" #include "src/mca/preg/base/base.h" pmix_status_t pmix_preg_base_generate_node_regex(const char *input, @@ -43,7 +44,9 @@ } } - return PMIX_ERR_NOT_SUPPORTED; + /* no regex could be generated */ + *regex = strdup(input); + return PMIX_SUCCESS; } pmix_status_t pmix_preg_base_generate_ppn(const char *input, @@ -59,7 +62,9 @@ } } - return PMIX_ERR_NOT_SUPPORTED; + /* no regex could be generated */ + *ppn = strdup(input); + return PMIX_SUCCESS; } pmix_status_t pmix_preg_base_parse_nodes(const char *regexp, @@ -75,7 +80,9 @@ } } - return PMIX_ERR_NOT_SUPPORTED; + /* nobody could parse it, so just process it here */ + *names = pmix_argv_split(regexp, ','); + return PMIX_SUCCESS; } pmix_status_t pmix_preg_base_parse_procs(const char *regexp, @@ -91,38 +98,62 @@ } } - return PMIX_ERR_NOT_SUPPORTED; + /* nobody could parse it, so just process it here */ + *procs = pmix_argv_split(regexp, ';'); + return PMIX_SUCCESS; +} + +pmix_status_t pmix_preg_base_copy(char **dest, size_t *len, const char *input) +{ + pmix_preg_base_active_module_t *active; + + PMIX_LIST_FOREACH(active, &pmix_preg_globals.actives, pmix_preg_base_active_module_t) { + if (NULL != active->module->copy) { + if (PMIX_SUCCESS == active->module->copy(dest, len, input)) { + return PMIX_SUCCESS; + } + } + } + + /* nobody could handle it, so it must just be a string */ + *dest = strdup(input); + *len = strlen(input)+1; + return PMIX_SUCCESS; } -pmix_status_t pmix_preg_base_resolve_peers(const char *nodename, - const char *nspace, - pmix_proc_t **procs, size_t *nprocs) +pmix_status_t pmix_preg_base_pack(pmix_buffer_t *buffer, const char *input) { pmix_preg_base_active_module_t *active; + pmix_status_t rc; PMIX_LIST_FOREACH(active, &pmix_preg_globals.actives, pmix_preg_base_active_module_t) { - if (NULL != active->module->resolve_peers) { - if (PMIX_SUCCESS == active->module->resolve_peers(nodename, nspace, procs, nprocs)) { + if (NULL != active->module->pack) { + if (PMIX_SUCCESS == active->module->pack(buffer, input)) { return PMIX_SUCCESS; } } } - return PMIX_ERR_NOT_SUPPORTED; + /* just pack it as a string */ + PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, buffer, input, 1, PMIX_STRING); + return rc; } -pmix_status_t pmix_preg_base_resolve_nodes(const char *nspace, - char **nodelist) +pmix_status_t pmix_preg_base_unpack(pmix_buffer_t *buffer, char **regex) { pmix_preg_base_active_module_t *active; + pmix_status_t rc; + int32_t cnt = 1; PMIX_LIST_FOREACH(active, &pmix_preg_globals.actives, pmix_preg_base_active_module_t) { - if (NULL != active->module->resolve_nodes) { - if (PMIX_SUCCESS == active->module->resolve_nodes(nspace, nodelist)) { + if (NULL != active->module->unpack) { + if (PMIX_SUCCESS == active->module->unpack(buffer, regex)) { return PMIX_SUCCESS; } } } - return PMIX_ERR_NOT_SUPPORTED; + /* must just be a string */ + PMIX_BFROPS_UNPACK(rc, pmix_globals.mypeer, buffer, regex, &cnt, PMIX_STRING); + return rc; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,53 @@ +# -*- makefile -*- +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. +# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +headers = preg_compress.h +sources = \ + preg_compress_component.c \ + preg_compress.c + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). + +if MCA_BUILD_pmix_preg_compress_DSO +lib = +lib_sources = +component = mca_preg_compress.la +component_sources = $(headers) $(sources) +else +lib = libmca_preg_compress.la +lib_sources = $(headers) $(sources) +component = +component_sources = +endif + +mcacomponentdir = $(pmixlibdir) +mcacomponent_LTLIBRARIES = $(component) +mca_preg_compress_la_SOURCES = $(component_sources) +mca_preg_compress_la_LDFLAGS = -module -avoid-version +if NEED_LIBPMIX +mca_preg_compress_la_LIBADD = $(top_builddir)/src/libpmix.la +endif + +noinst_LTLIBRARIES = $(lib) +libmca_preg_compress_la_SOURCES = $(lib_sources) +libmca_preg_compress_la_LDFLAGS = -module -avoid-version diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,975 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# -*- makefile -*- +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. +# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = src/mca/preg/compress +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/pmix.m4 \ + $(top_srcdir)/config/pmix_check_attributes.m4 \ + $(top_srcdir)/config/pmix_check_broken_qsort.m4 \ + $(top_srcdir)/config/pmix_check_compiler_version.m4 \ + $(top_srcdir)/config/pmix_check_icc.m4 \ + $(top_srcdir)/config/pmix_check_lock.m4 \ + $(top_srcdir)/config/pmix_check_os_flavors.m4 \ + $(top_srcdir)/config/pmix_check_package.m4 \ + $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ + $(top_srcdir)/config/pmix_check_vendor.m4 \ + $(top_srcdir)/config/pmix_check_visibility.m4 \ + $(top_srcdir)/config/pmix_check_withdir.m4 \ + $(top_srcdir)/config/pmix_config_asm.m4 \ + $(top_srcdir)/config/pmix_config_pthreads.m4 \ + $(top_srcdir)/config/pmix_config_subdir.m4 \ + $(top_srcdir)/config/pmix_config_subdir_args.m4 \ + $(top_srcdir)/config/pmix_config_threads.m4 \ + $(top_srcdir)/config/pmix_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/pmix_functions.m4 \ + $(top_srcdir)/config/pmix_load_platform.m4 \ + $(top_srcdir)/config/pmix_mca.m4 \ + $(top_srcdir)/config/pmix_search_libs.m4 \ + $(top_srcdir)/config/pmix_set_mca_prefix.m4 \ + $(top_srcdir)/config/pmix_setup_cc.m4 \ + $(top_srcdir)/config/pmix_setup_cli.m4 \ + $(top_srcdir)/config/pmix_setup_hwloc.m4 \ + $(top_srcdir)/config/pmix_setup_libev.m4 \ + $(top_srcdir)/config/pmix_setup_libevent.m4 \ + $(top_srcdir)/config/pmix_setup_zlib.m4 \ + $(top_srcdir)/config/pmix_summary.m4 \ + $(top_srcdir)/config/pmix_try_assemble.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/src/mca/pdl/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/configure.m4 \ + $(top_srcdir)/src/mca/common/dstore/configure.m4 \ + $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ + $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ + $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ + $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ + $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/src/mca/pif/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pif/linux_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pif/posix_ipv4/configure.m4 \ + $(top_srcdir)/src/mca/pif/solaris_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ + $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ + $(top_srcdir)/src/mca/psec/munge/configure.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/pmix_config.h \ + $(top_builddir)/include/pmix_common.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(mcacomponentdir)" +LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) +libmca_preg_compress_la_LIBADD = +am__libmca_preg_compress_la_SOURCES_DIST = preg_compress.h \ + preg_compress_component.c preg_compress.c +am__objects_1 = +am__objects_2 = preg_compress_component.lo preg_compress.lo +@MCA_BUILD_pmix_preg_compress_DSO_FALSE@am__objects_3 = \ +@MCA_BUILD_pmix_preg_compress_DSO_FALSE@ $(am__objects_1) \ +@MCA_BUILD_pmix_preg_compress_DSO_FALSE@ $(am__objects_2) +am_libmca_preg_compress_la_OBJECTS = $(am__objects_3) +libmca_preg_compress_la_OBJECTS = \ + $(am_libmca_preg_compress_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libmca_preg_compress_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libmca_preg_compress_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_pmix_preg_compress_DSO_FALSE@am_libmca_preg_compress_la_rpath = +@NEED_LIBPMIX_TRUE@mca_preg_compress_la_DEPENDENCIES = \ +@NEED_LIBPMIX_TRUE@ $(top_builddir)/src/libpmix.la +am__mca_preg_compress_la_SOURCES_DIST = preg_compress.h \ + preg_compress_component.c preg_compress.c +@MCA_BUILD_pmix_preg_compress_DSO_TRUE@am__objects_4 = \ +@MCA_BUILD_pmix_preg_compress_DSO_TRUE@ $(am__objects_1) \ +@MCA_BUILD_pmix_preg_compress_DSO_TRUE@ $(am__objects_2) +am_mca_preg_compress_la_OBJECTS = $(am__objects_4) +mca_preg_compress_la_OBJECTS = $(am_mca_preg_compress_la_OBJECTS) +mca_preg_compress_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(mca_preg_compress_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_pmix_preg_compress_DSO_TRUE@am_mca_preg_compress_la_rpath = \ +@MCA_BUILD_pmix_preg_compress_DSO_TRUE@ -rpath \ +@MCA_BUILD_pmix_preg_compress_DSO_TRUE@ $(mcacomponentdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/include -I$(top_builddir)/include +depcomp = $(SHELL) $(top_srcdir)/./config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libmca_preg_compress_la_SOURCES) \ + $(mca_preg_compress_la_SOURCES) +DIST_SOURCES = $(am__libmca_preg_compress_la_SOURCES_DIST) \ + $(am__mca_preg_compress_la_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/./config/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CC_FOR_BUILD = @CC_FOR_BUILD@ +CFLAGS = @CFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_pmix_FRAMEWORKS = @MCA_pmix_FRAMEWORKS@ +MCA_pmix_FRAMEWORKS_SUBDIRS = @MCA_pmix_FRAMEWORKS_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_pmix_FRAMEWORK_LIBS = @MCA_pmix_FRAMEWORK_LIBS@ +MCA_pmix_bfrops_ALL_COMPONENTS = @MCA_pmix_bfrops_ALL_COMPONENTS@ +MCA_pmix_bfrops_ALL_SUBDIRS = @MCA_pmix_bfrops_ALL_SUBDIRS@ +MCA_pmix_bfrops_DSO_COMPONENTS = @MCA_pmix_bfrops_DSO_COMPONENTS@ +MCA_pmix_bfrops_DSO_SUBDIRS = @MCA_pmix_bfrops_DSO_SUBDIRS@ +MCA_pmix_bfrops_STATIC_COMPONENTS = @MCA_pmix_bfrops_STATIC_COMPONENTS@ +MCA_pmix_bfrops_STATIC_LTLIBS = @MCA_pmix_bfrops_STATIC_LTLIBS@ +MCA_pmix_bfrops_STATIC_SUBDIRS = @MCA_pmix_bfrops_STATIC_SUBDIRS@ +MCA_pmix_common_ALL_COMPONENTS = @MCA_pmix_common_ALL_COMPONENTS@ +MCA_pmix_common_ALL_SUBDIRS = @MCA_pmix_common_ALL_SUBDIRS@ +MCA_pmix_common_DSO_COMPONENTS = @MCA_pmix_common_DSO_COMPONENTS@ +MCA_pmix_common_DSO_SUBDIRS = @MCA_pmix_common_DSO_SUBDIRS@ +MCA_pmix_common_STATIC_COMPONENTS = @MCA_pmix_common_STATIC_COMPONENTS@ +MCA_pmix_common_STATIC_LTLIBS = @MCA_pmix_common_STATIC_LTLIBS@ +MCA_pmix_common_STATIC_SUBDIRS = @MCA_pmix_common_STATIC_SUBDIRS@ +MCA_pmix_gds_ALL_COMPONENTS = @MCA_pmix_gds_ALL_COMPONENTS@ +MCA_pmix_gds_ALL_SUBDIRS = @MCA_pmix_gds_ALL_SUBDIRS@ +MCA_pmix_gds_DSO_COMPONENTS = @MCA_pmix_gds_DSO_COMPONENTS@ +MCA_pmix_gds_DSO_SUBDIRS = @MCA_pmix_gds_DSO_SUBDIRS@ +MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ +MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ +MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ +MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ +MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ +MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ +MCA_pmix_pdl_DSO_SUBDIRS = @MCA_pmix_pdl_DSO_SUBDIRS@ +MCA_pmix_pdl_STATIC_COMPONENTS = @MCA_pmix_pdl_STATIC_COMPONENTS@ +MCA_pmix_pdl_STATIC_LTLIBS = @MCA_pmix_pdl_STATIC_LTLIBS@ +MCA_pmix_pdl_STATIC_SUBDIRS = @MCA_pmix_pdl_STATIC_SUBDIRS@ +MCA_pmix_pif_ALL_COMPONENTS = @MCA_pmix_pif_ALL_COMPONENTS@ +MCA_pmix_pif_ALL_SUBDIRS = @MCA_pmix_pif_ALL_SUBDIRS@ +MCA_pmix_pif_DSO_COMPONENTS = @MCA_pmix_pif_DSO_COMPONENTS@ +MCA_pmix_pif_DSO_SUBDIRS = @MCA_pmix_pif_DSO_SUBDIRS@ +MCA_pmix_pif_STATIC_COMPONENTS = @MCA_pmix_pif_STATIC_COMPONENTS@ +MCA_pmix_pif_STATIC_LTLIBS = @MCA_pmix_pif_STATIC_LTLIBS@ +MCA_pmix_pif_STATIC_SUBDIRS = @MCA_pmix_pif_STATIC_SUBDIRS@ +MCA_pmix_pinstalldirs_ALL_COMPONENTS = @MCA_pmix_pinstalldirs_ALL_COMPONENTS@ +MCA_pmix_pinstalldirs_ALL_SUBDIRS = @MCA_pmix_pinstalldirs_ALL_SUBDIRS@ +MCA_pmix_pinstalldirs_DSO_COMPONENTS = @MCA_pmix_pinstalldirs_DSO_COMPONENTS@ +MCA_pmix_pinstalldirs_DSO_SUBDIRS = @MCA_pmix_pinstalldirs_DSO_SUBDIRS@ +MCA_pmix_pinstalldirs_STATIC_COMPONENTS = @MCA_pmix_pinstalldirs_STATIC_COMPONENTS@ +MCA_pmix_pinstalldirs_STATIC_LTLIBS = @MCA_pmix_pinstalldirs_STATIC_LTLIBS@ +MCA_pmix_pinstalldirs_STATIC_SUBDIRS = @MCA_pmix_pinstalldirs_STATIC_SUBDIRS@ +MCA_pmix_plog_ALL_COMPONENTS = @MCA_pmix_plog_ALL_COMPONENTS@ +MCA_pmix_plog_ALL_SUBDIRS = @MCA_pmix_plog_ALL_SUBDIRS@ +MCA_pmix_plog_DSO_COMPONENTS = @MCA_pmix_plog_DSO_COMPONENTS@ +MCA_pmix_plog_DSO_SUBDIRS = @MCA_pmix_plog_DSO_SUBDIRS@ +MCA_pmix_plog_STATIC_COMPONENTS = @MCA_pmix_plog_STATIC_COMPONENTS@ +MCA_pmix_plog_STATIC_LTLIBS = @MCA_pmix_plog_STATIC_LTLIBS@ +MCA_pmix_plog_STATIC_SUBDIRS = @MCA_pmix_plog_STATIC_SUBDIRS@ +MCA_pmix_pnet_ALL_COMPONENTS = @MCA_pmix_pnet_ALL_COMPONENTS@ +MCA_pmix_pnet_ALL_SUBDIRS = @MCA_pmix_pnet_ALL_SUBDIRS@ +MCA_pmix_pnet_DSO_COMPONENTS = @MCA_pmix_pnet_DSO_COMPONENTS@ +MCA_pmix_pnet_DSO_SUBDIRS = @MCA_pmix_pnet_DSO_SUBDIRS@ +MCA_pmix_pnet_STATIC_COMPONENTS = @MCA_pmix_pnet_STATIC_COMPONENTS@ +MCA_pmix_pnet_STATIC_LTLIBS = @MCA_pmix_pnet_STATIC_LTLIBS@ +MCA_pmix_pnet_STATIC_SUBDIRS = @MCA_pmix_pnet_STATIC_SUBDIRS@ +MCA_pmix_preg_ALL_COMPONENTS = @MCA_pmix_preg_ALL_COMPONENTS@ +MCA_pmix_preg_ALL_SUBDIRS = @MCA_pmix_preg_ALL_SUBDIRS@ +MCA_pmix_preg_DSO_COMPONENTS = @MCA_pmix_preg_DSO_COMPONENTS@ +MCA_pmix_preg_DSO_SUBDIRS = @MCA_pmix_preg_DSO_SUBDIRS@ +MCA_pmix_preg_STATIC_COMPONENTS = @MCA_pmix_preg_STATIC_COMPONENTS@ +MCA_pmix_preg_STATIC_LTLIBS = @MCA_pmix_preg_STATIC_LTLIBS@ +MCA_pmix_preg_STATIC_SUBDIRS = @MCA_pmix_preg_STATIC_SUBDIRS@ +MCA_pmix_psec_ALL_COMPONENTS = @MCA_pmix_psec_ALL_COMPONENTS@ +MCA_pmix_psec_ALL_SUBDIRS = @MCA_pmix_psec_ALL_SUBDIRS@ +MCA_pmix_psec_DSO_COMPONENTS = @MCA_pmix_psec_DSO_COMPONENTS@ +MCA_pmix_psec_DSO_SUBDIRS = @MCA_pmix_psec_DSO_SUBDIRS@ +MCA_pmix_psec_STATIC_COMPONENTS = @MCA_pmix_psec_STATIC_COMPONENTS@ +MCA_pmix_psec_STATIC_LTLIBS = @MCA_pmix_psec_STATIC_LTLIBS@ +MCA_pmix_psec_STATIC_SUBDIRS = @MCA_pmix_psec_STATIC_SUBDIRS@ +MCA_pmix_psensor_ALL_COMPONENTS = @MCA_pmix_psensor_ALL_COMPONENTS@ +MCA_pmix_psensor_ALL_SUBDIRS = @MCA_pmix_psensor_ALL_SUBDIRS@ +MCA_pmix_psensor_DSO_COMPONENTS = @MCA_pmix_psensor_DSO_COMPONENTS@ +MCA_pmix_psensor_DSO_SUBDIRS = @MCA_pmix_psensor_DSO_SUBDIRS@ +MCA_pmix_psensor_STATIC_COMPONENTS = @MCA_pmix_psensor_STATIC_COMPONENTS@ +MCA_pmix_psensor_STATIC_LTLIBS = @MCA_pmix_psensor_STATIC_LTLIBS@ +MCA_pmix_psensor_STATIC_SUBDIRS = @MCA_pmix_psensor_STATIC_SUBDIRS@ +MCA_pmix_pshmem_ALL_COMPONENTS = @MCA_pmix_pshmem_ALL_COMPONENTS@ +MCA_pmix_pshmem_ALL_SUBDIRS = @MCA_pmix_pshmem_ALL_SUBDIRS@ +MCA_pmix_pshmem_DSO_COMPONENTS = @MCA_pmix_pshmem_DSO_COMPONENTS@ +MCA_pmix_pshmem_DSO_SUBDIRS = @MCA_pmix_pshmem_DSO_SUBDIRS@ +MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ +MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ +MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ +MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ +MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ +MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ +MCA_pmix_ptl_DSO_SUBDIRS = @MCA_pmix_ptl_DSO_SUBDIRS@ +MCA_pmix_ptl_STATIC_COMPONENTS = @MCA_pmix_ptl_STATIC_COMPONENTS@ +MCA_pmix_ptl_STATIC_LTLIBS = @MCA_pmix_ptl_STATIC_LTLIBS@ +MCA_pmix_ptl_STATIC_SUBDIRS = @MCA_pmix_ptl_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ +PERL = @PERL@ +PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ +PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ +PMIX_ASM_SUPPORT_64BIT = @PMIX_ASM_SUPPORT_64BIT@ +PMIX_ASM_TEXT = @PMIX_ASM_TEXT@ +PMIX_ASM_TYPE = @PMIX_ASM_TYPE@ +PMIX_ASSEMBLY_ARCH = @PMIX_ASSEMBLY_ARCH@ +PMIX_ASSEMBLY_BUILTIN = @PMIX_ASSEMBLY_BUILTIN@ +PMIX_ASSEMBLY_FORMAT = @PMIX_ASSEMBLY_FORMAT@ +PMIX_AS_GLOBAL = @PMIX_AS_GLOBAL@ +PMIX_AS_LABEL_SUFFIX = @PMIX_AS_LABEL_SUFFIX@ +PMIX_BUILT_TEST_PREFIX = @PMIX_BUILT_TEST_PREFIX@ +PMIX_CC_ABSOLUTE = @PMIX_CC_ABSOLUTE@ +PMIX_COMPONENT_LIBRARY_PATHS = @PMIX_COMPONENT_LIBRARY_PATHS@ +PMIX_CONFIGURE_CLI = @PMIX_CONFIGURE_CLI@ +PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ +PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ +PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ +PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ +PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ +PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ +PMIX_EXTRA_LIB = @PMIX_EXTRA_LIB@ +PMIX_EXTRA_LTLIB = @PMIX_EXTRA_LTLIB@ +PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ +PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ +PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ +PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ +PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ +PMIX_REPO_REV = @PMIX_REPO_REV@ +PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ +PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ +PMIX_VERSION = @PMIX_VERSION@ +PMIX_top_builddir = @PMIX_top_builddir@ +PMIX_top_srcdir = @PMIX_top_srcdir@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_common_dstore_so_version = @libmca_common_dstore_so_version@ +libpmi2_so_version = @libpmi2_so_version@ +libpmi_so_version = @libpmi_so_version@ +libpmix_so_version = @libpmix_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ +pdfdir = @pdfdir@ +pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ +pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ +pmix_pdl_plibltdl_LDFLAGS = @pmix_pdl_plibltdl_LDFLAGS@ +pmix_pdl_plibltdl_LIBS = @pmix_pdl_plibltdl_LIBS@ +pmixdatadir = @pmixdatadir@ +pmixincludedir = @pmixincludedir@ +pmixlibdir = @pmixlibdir@ +pmixmajor = @pmixmajor@ +pmixminor = @pmixminor@ +pmixnumeric = @pmixnumeric@ +pmixrelease = @pmixrelease@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +psec_munge_CPPFLAGS = @psec_munge_CPPFLAGS@ +psec_munge_LDFLAGS = @psec_munge_LDFLAGS@ +psec_munge_LIBS = @psec_munge_LIBS@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +headers = preg_compress.h +sources = \ + preg_compress_component.c \ + preg_compress.c + +@MCA_BUILD_pmix_preg_compress_DSO_FALSE@lib = libmca_preg_compress.la + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). +@MCA_BUILD_pmix_preg_compress_DSO_TRUE@lib = +@MCA_BUILD_pmix_preg_compress_DSO_FALSE@lib_sources = $(headers) $(sources) +@MCA_BUILD_pmix_preg_compress_DSO_TRUE@lib_sources = +@MCA_BUILD_pmix_preg_compress_DSO_FALSE@component = +@MCA_BUILD_pmix_preg_compress_DSO_TRUE@component = mca_preg_compress.la +@MCA_BUILD_pmix_preg_compress_DSO_FALSE@component_sources = +@MCA_BUILD_pmix_preg_compress_DSO_TRUE@component_sources = $(headers) $(sources) +mcacomponentdir = $(pmixlibdir) +mcacomponent_LTLIBRARIES = $(component) +mca_preg_compress_la_SOURCES = $(component_sources) +mca_preg_compress_la_LDFLAGS = -module -avoid-version +@NEED_LIBPMIX_TRUE@mca_preg_compress_la_LIBADD = $(top_builddir)/src/libpmix.la +noinst_LTLIBRARIES = $(lib) +libmca_preg_compress_la_SOURCES = $(lib_sources) +libmca_preg_compress_la_LDFLAGS = -module -avoid-version +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/mca/preg/compress/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/mca/preg/compress/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-mcacomponentLTLIBRARIES: $(mcacomponent_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(mcacomponentdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(mcacomponentdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(mcacomponentdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(mcacomponentdir)"; \ + } + +uninstall-mcacomponentLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(mcacomponentdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(mcacomponentdir)/$$f"; \ + done + +clean-mcacomponentLTLIBRARIES: + -test -z "$(mcacomponent_LTLIBRARIES)" || rm -f $(mcacomponent_LTLIBRARIES) + @list='$(mcacomponent_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libmca_preg_compress.la: $(libmca_preg_compress_la_OBJECTS) $(libmca_preg_compress_la_DEPENDENCIES) $(EXTRA_libmca_preg_compress_la_DEPENDENCIES) + $(AM_V_CCLD)$(libmca_preg_compress_la_LINK) $(am_libmca_preg_compress_la_rpath) $(libmca_preg_compress_la_OBJECTS) $(libmca_preg_compress_la_LIBADD) $(LIBS) + +mca_preg_compress.la: $(mca_preg_compress_la_OBJECTS) $(mca_preg_compress_la_DEPENDENCIES) $(EXTRA_mca_preg_compress_la_DEPENDENCIES) + $(AM_V_CCLD)$(mca_preg_compress_la_LINK) $(am_mca_preg_compress_la_rpath) $(mca_preg_compress_la_OBJECTS) $(mca_preg_compress_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preg_compress.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preg_compress_component.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(mcacomponentdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-mcacomponentLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-mcacomponentLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-mcacomponentLTLIBRARIES install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-mcacomponentLTLIBRARIES + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/preg_compress.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/preg_compress.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/preg_compress.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/preg_compress.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,324 @@ +/* + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2019 IBM Corporation. All rights reserved. + * Copyright (c) 2018 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "src/include/pmix_config.h" + +#ifdef HAVE_STRING_H +#include +#endif +#include +#ifdef HAVE_UNISTD_H +#include +#endif +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#include + + +#include "include/pmix_common.h" +#include "include/pmix.h" + +#include "src/include/pmix_socket_errno.h" +#include "src/include/pmix_globals.h" +#include "src/util/argv.h" +#include "src/util/error.h" +#include "src/util/output.h" +#include "src/class/pmix_list.h" +#include "src/mca/bfrops/base/base.h" +#include "src/mca/gds/gds.h" +#include "src/client/pmix_client_ops.h" + +#include "src/mca/pcompress/pcompress.h" +#include "src/mca/preg/base/base.h" +#include "preg_compress.h" + +static pmix_status_t generate_node_regex(const char *input, + char **regex); +static pmix_status_t generate_ppn(const char *input, + char **ppn); +static pmix_status_t parse_nodes(const char *regexp, + char ***names); +static pmix_status_t parse_procs(const char *regexp, + char ***procs); +static pmix_status_t copy(char **dest, size_t *len, const char *input); +static pmix_status_t pack(pmix_buffer_t *buffer, const char *input); +static pmix_status_t unpack(pmix_buffer_t *buffer, char **regex); + +pmix_preg_module_t pmix_preg_compress_module = { + .name = "compress", + .generate_node_regex = generate_node_regex, + .generate_ppn = generate_ppn, + .parse_nodes = parse_nodes, + .parse_procs = parse_procs, + .copy = copy, + .pack = pack, + .unpack = unpack +}; + +#define PREG_COMPRESS_PREFIX "blob: component=zlib: size=" + +static pmix_status_t pack_blob(const uint8_t *tmp, size_t len, char **regexp) +{ + char *result, *slen; + int idx; + + /* convert the length to a string */ + if (0 > asprintf(&slen, "%lu", (unsigned long)len)) { + return PMIX_ERR_NOMEM; + } + + /* create the result */ + result = calloc(len + strlen(PREG_COMPRESS_PREFIX) + strlen(slen) + strlen(":") + 1, sizeof(char)); + idx = 0; + strcpy(result, "blob:"); + idx += strlen("blob:") + 1; // step over NULL terminator + strcpy(&result[idx], "component=zlib:"); + idx += strlen("component=zlib:") + 1; // step over NULL terminator + strcpy(&result[idx], "size="); + idx += strlen("size="); + strcpy(&result[idx], slen); + idx += strlen(slen); + strcpy(&result[idx], ":"); + idx += strlen(":") + 1; // step over NULL terminator + memcpy(&result[idx], tmp, len); + free(slen); + *regexp = result; + + return PMIX_SUCCESS; +} + +static pmix_status_t generate_node_regex(const char *input, + char **regexp) +{ + size_t len; + uint8_t *tmp; + pmix_status_t rc; + + if (!pmix_compress.compress_string((char*)input, &tmp, &len)) { + return PMIX_ERR_TAKE_NEXT_OPTION; + } + + if (NULL == tmp) { + return PMIX_ERR_NOMEM; + } + rc = pack_blob(tmp, len, regexp); + free(tmp); + + return rc; +} + +static pmix_status_t generate_ppn(const char *input, + char **regexp) +{ + size_t len; + uint8_t *tmp; + pmix_status_t rc; + + if (!pmix_compress.compress_string((char*)input, &tmp, &len)) { + return PMIX_ERR_TAKE_NEXT_OPTION; + } + + if (NULL == tmp) { + return PMIX_ERR_NOMEM; + } + + if (NULL == tmp) { + return PMIX_ERR_NOMEM; + } + rc = pack_blob(tmp, len, regexp); + free(tmp); + + return rc; +} + +static pmix_status_t parse_nodes(const char *regexp, + char ***names) +{ + char *tmp, *ptr, **argv; + size_t len; + int idx; + + if (0 != strncmp(regexp, "blob", 4)) { + return PMIX_ERR_TAKE_NEXT_OPTION; + } + idx = strlen(regexp) + 1; // step over the NULL terminator + + /* ensure we were the one who generated this blob */ + if (0 != strncmp(®exp[idx], "component=zlib:", strlen("component=zlib:"))) { + return PMIX_ERR_TAKE_NEXT_OPTION; + } + idx += strlen("component=zlib:") + 1; // step over the NULL terminator + + len = strtoul(®exp[idx], &ptr, 10); + ptr += 2; // step over colon and NULL + + /* malloc the space */ + tmp = malloc(len); + if (NULL == tmp) { + return PMIX_ERR_NOMEM; + } + + if (!pmix_compress.decompress_string(&tmp, (uint8_t*)ptr, len)) { + free(tmp); + return PMIX_ERR_TAKE_NEXT_OPTION; + } + /* tmp now contains the comma-delimited list of node names */ + argv = pmix_argv_split(tmp, ','); + free(tmp); + *names = argv; + return PMIX_SUCCESS; +} +static pmix_status_t parse_procs(const char *regexp, + char ***procs) +{ + char *tmp, *ptr, **argv; + size_t len; + int idx; + + if (0 != strncmp(regexp, "blob", 4)) { + return PMIX_ERR_TAKE_NEXT_OPTION; + } + idx = strlen(regexp) + 1; // step over the NULL terminator + + /* ensure we were the one who generated this blob */ + if (0 != strncmp(®exp[idx], "component=zlib:", strlen("component=zlib:"))) { + return PMIX_ERR_TAKE_NEXT_OPTION; + } + idx += strlen("component=zlib:") + 1; // step over the NULL terminator + + len = strtoul(®exp[idx], &ptr, 10); + ptr += 2; // step over colon and NULL + + /* malloc the space */ + tmp = malloc(len); + if (NULL == tmp) { + return PMIX_ERR_NOMEM; + } + + if (!pmix_compress.decompress_string(&tmp, (uint8_t*)ptr, len)) { + free(tmp); + return PMIX_ERR_TAKE_NEXT_OPTION; + } + + /* tmp now contains the semicolon-delimited list of procs */ + argv = pmix_argv_split(tmp, ';'); + free(tmp); + *procs = argv; + return PMIX_SUCCESS; +} + +static pmix_status_t copy(char **dest, size_t *len, const char *input) +{ + size_t slen; + char *tmp; + int idx; + + if (0 != strncmp(input, "blob", 4)) { + return PMIX_ERR_TAKE_NEXT_OPTION; + } + idx = strlen(input) + 1; // step over the NULL terminator + + /* ensure we were the one who generated this blob */ + if (0 != strncmp(&input[idx], "component=zlib:", strlen("component=zlib:"))) { + return PMIX_ERR_TAKE_NEXT_OPTION; + } + idx += strlen("component=zlib:") + 1; // step over the NULL terminator + + /* extract the size */ + slen = strtoul(&input[idx], NULL, 10) + strlen(PREG_COMPRESS_PREFIX) + strlen(&input[idx]) + 1; + + /* malloc the space */ + tmp = calloc(slen, sizeof(char)); + if (NULL == tmp) { + return PMIX_ERR_NOMEM; + } + + /* copy the data */ + memcpy(tmp, input, slen); + *dest = tmp; + *len = slen; + return PMIX_SUCCESS; +} + +static pmix_status_t pack(pmix_buffer_t *buffer, const char *input) +{ + size_t slen; + char *ptr; + int idx; + + if (0 != strncmp(input, "blob", 4)) { + return PMIX_ERR_TAKE_NEXT_OPTION; + } + idx = strlen(input) + 1; // step over the NULL terminator + + /* ensure we were the one who generated this blob */ + if (0 != strncmp(&input[idx], "component=zlib:", strlen("component=zlib:"))) { + return PMIX_ERR_TAKE_NEXT_OPTION; + } + idx += strlen("component=zlib:") + 1; // step over the NULL terminator + + /* extract the size */ + slen = strtoul(&input[idx], NULL, 10) + strlen(PREG_COMPRESS_PREFIX) + strlen(&input[idx]) + 1; + + /* ensure the buffer has enough space */ + ptr = pmix_bfrop_buffer_extend(buffer, slen); + if (NULL == ptr) { + return PMIX_ERR_NOMEM; + } + + /* xfer the data */ + memcpy(ptr, input, slen); + buffer->bytes_used += slen; + buffer->pack_ptr += slen; + + return PMIX_SUCCESS; +} + +static pmix_status_t unpack(pmix_buffer_t *buffer, char **regex) +{ + size_t slen; + char *ptr, *output; + int idx; + + /* the value starts at the unpack_ptr */ + ptr = buffer->unpack_ptr; + + if (0 != strncmp(ptr, "blob", 4)) { + return PMIX_ERR_TAKE_NEXT_OPTION; + } + idx = strlen(ptr) + 1; // step over the NULL terminator + + /* ensure we were the one who generated this blob */ + if (0 != strncmp(&ptr[idx], "component=zlib:", strlen("component=zlib:"))) { + return PMIX_ERR_TAKE_NEXT_OPTION; + } + idx += strlen("component=zlib:") + 1; // step over the NULL terminator + + /* extract the size */ + slen = strtoul(&ptr[idx], NULL, 10) + strlen(PREG_COMPRESS_PREFIX) + strlen(&ptr[idx]) + 1; + + /* get the space */ + output = (char*)malloc(slen); + if (NULL == output) { + *regex = NULL; + return PMIX_ERR_NOMEM; + } + + /* xfer the data */ + memcpy(output, ptr, slen); + buffer->unpack_ptr += slen; + *regex = output; + + return PMIX_SUCCESS; +} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/preg_compress_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/preg_compress_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/preg_compress_component.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/preg_compress_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,82 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2004-2008 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2005 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2015 Los Alamos National Security, LLC. All rights + * reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + * + * These symbols are in a file by themselves to provide nice linker + * semantics. Since linkers generally pull in symbols by object + * files, keeping these symbols as the only symbols in this file + * prevents utility programs such as "ompi_info" from having to import + * entire components just to query their version and parameters. + */ + +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" + +#include "src/mca/pcompress/pcompress.h" +#include "src/mca/preg/preg.h" +#include "preg_compress.h" + +static pmix_status_t component_open(void); +static pmix_status_t component_close(void); +static pmix_status_t component_query(pmix_mca_base_module_t **module, int *priority); + +/* + * Instantiate the public struct with all of our public information + * and pointers to our public functions in it + */ +pmix_mca_base_component_t mca_preg_compress_component = { + PMIX_PREG_BASE_VERSION_1_0_0, + + /* Component name and version */ + .pmix_mca_component_name = "compress", + PMIX_MCA_BASE_MAKE_VERSION(component, + PMIX_MAJOR_VERSION, + PMIX_MINOR_VERSION, + PMIX_RELEASE_VERSION), + + /* Component open and close functions */ + .pmix_mca_open_component = component_open, + .pmix_mca_close_component = component_close, + .pmix_mca_query_component = component_query, +}; + + +static int component_open(void) +{ + return PMIX_SUCCESS; +} + + +static int component_query(pmix_mca_base_module_t **module, int *priority) +{ + if (NULL == pmix_compress.compress_string) { + return PMIX_ERROR; + } + /* we should always be first in priority */ + *priority = 100; + *module = (pmix_mca_base_module_t *)&pmix_preg_compress_module; + return PMIX_SUCCESS; +} + + +static int component_close(void) +{ + return PMIX_SUCCESS; +} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/preg_compress.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/preg_compress.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/preg_compress.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/compress/preg_compress.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. + * + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef PMIX_PREG_compress_H +#define PMIX_PREG_compress_H + +#include "src/include/pmix_config.h" + + +#include "src/mca/preg/preg.h" + +BEGIN_C_DECLS + +/* the component must be visible data for the linker to find it */ +PMIX_EXPORT extern pmix_mca_base_component_t mca_preg_compress_component; +extern pmix_preg_module_t pmix_preg_compress_module; + +END_C_DECLS + +#endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -153,7 +153,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -183,6 +182,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -193,7 +193,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -389,6 +388,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -452,6 +458,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -474,6 +487,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -492,6 +507,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -500,9 +516,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -516,6 +532,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -561,6 +578,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -573,10 +594,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/native/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/native/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/native/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/native/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -126,7 +126,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -156,6 +155,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -166,7 +166,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -382,6 +381,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -445,6 +451,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -467,6 +480,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -485,6 +500,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -493,9 +509,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -509,6 +525,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -554,6 +571,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -566,10 +587,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/native/preg_native.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/native/preg_native.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/native/preg_native.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/native/preg_native.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016-2019 IBM Corporation. All rights reserved. * Copyright (c) 2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -11,7 +11,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_STRING_H #include @@ -26,8 +26,8 @@ #include -#include -#include +#include "include/pmix_common.h" +#include "include/pmix.h" #include "src/include/pmix_socket_errno.h" #include "src/include/pmix_globals.h" @@ -35,10 +35,11 @@ #include "src/util/error.h" #include "src/util/output.h" #include "src/class/pmix_list.h" +#include "src/mca/bfrops/base/base.h" #include "src/mca/gds/gds.h" #include "src/client/pmix_client_ops.h" -#include "src/mca/preg/preg.h" +#include "src/mca/preg/base/base.h" #include "preg_native.h" static pmix_status_t generate_node_regex(const char *input, @@ -49,11 +50,9 @@ char ***names); static pmix_status_t parse_procs(const char *regexp, char ***procs); -static pmix_status_t resolve_peers(const char *nodename, - const char *nspace, - pmix_proc_t **procs, size_t *nprocs); -static pmix_status_t resolve_nodes(const char *nspace, - char **nodelist); +static pmix_status_t copy(char **dest, size_t *len, const char *input); +static pmix_status_t pack(pmix_buffer_t *buffer, const char *input); +static pmix_status_t unpack(pmix_buffer_t *buffer, char **regex); pmix_preg_module_t pmix_preg_native_module = { .name = "pmix", @@ -61,8 +60,9 @@ .generate_ppn = generate_ppn, .parse_nodes = parse_nodes, .parse_procs = parse_procs, - .resolve_peers = resolve_peers, - .resolve_nodes = resolve_nodes + .copy = copy, + .pack = pack, + .unpack = unpack }; static pmix_status_t regex_parse_value_ranges(char *base, char *ranges, @@ -432,6 +432,13 @@ /* replace the final semi-colon */ tmp[strlen(tmp)-1] = ']'; + /* if this results in a longer answer, then don't do it */ + if (strlen(tmp) > strlen(input)) { + free(tmp); + PMIX_LIST_DESTRUCT(&nodes); + return PMIX_ERR_TAKE_NEXT_OPTION; + } + /* assemble final result */ *regexp = tmp; @@ -461,7 +468,6 @@ /* the regex generator used to create this regex * is tagged at the beginning of the string */ if (NULL == (ptr = strchr(tmp, '['))) { - PMIX_ERROR_LOG(PMIX_ERR_BAD_PARAM); free(tmp); return PMIX_ERR_BAD_PARAM; } @@ -503,7 +509,6 @@ /* the regex generator used to create this regex * is tagged at the beginning of the string */ if (NULL == (ptr = strchr(tmp, '['))) { - PMIX_ERROR_LOG(PMIX_ERR_BAD_PARAM); free(tmp); return PMIX_ERR_BAD_PARAM; } @@ -523,159 +528,60 @@ return rc; } -static pmix_status_t resolve_peers(const char *nodename, - const char *nspace, - pmix_proc_t **procs, size_t *nprocs) +static pmix_status_t copy(char **dest, size_t *len, const char *input) { - pmix_cb_t cb; - pmix_status_t rc; - pmix_kval_t *kv; - pmix_proc_t proc; - char **ptr; - pmix_info_t *info; - pmix_proc_t *p=NULL; - size_t ninfo, np=0, n, j; - - PMIX_CONSTRUCT(&cb, pmix_cb_t); - - cb.key = strdup(nodename); - /* this data isn't going anywhere, so we don't require a copy */ - cb.copy = false; - /* scope is irrelevant as the info we seek must be local */ - cb.scope = PMIX_SCOPE_UNDEF; - /* let the proc point to the nspace */ - pmix_strncpy(proc.nspace, nspace, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; - cb.proc = &proc; - - PMIX_GDS_FETCH_KV(rc, pmix_client_globals.myserver, &cb); - if (PMIX_SUCCESS != rc) { - if (PMIX_ERR_INVALID_NAMESPACE != rc) { - PMIX_ERROR_LOG(rc); - } - goto complete; - } - /* should just be the one value on the list */ - if (1 != pmix_list_get_size(&cb.kvs)) { - PMIX_ERROR_LOG(PMIX_ERR_BAD_PARAM); - rc = PMIX_ERR_BAD_PARAM; - goto complete; - } - kv = (pmix_kval_t*)pmix_list_get_first(&cb.kvs); - /* the hostname used as a key with wildcard rank will return - * a pmix_data_array_t of pmix_info_t structs */ - if (NULL == kv->value || - PMIX_DATA_ARRAY != kv->value->type || - NULL == kv->value->data.darray || - PMIX_INFO != kv->value->data.darray->type) { - PMIX_ERROR_LOG(PMIX_ERR_DATA_VALUE_NOT_FOUND); - rc = PMIX_ERR_DATA_VALUE_NOT_FOUND; - goto complete; - } - info = (pmix_info_t*)kv->value->data.darray->array; - ninfo = kv->value->data.darray->size; - /* find the PMIX_LOCAL_PEERS key */ - for (n=0; n < ninfo; n++) { - if (0 == strncmp(info[n].key, PMIX_LOCAL_PEERS, PMIX_MAX_KEYLEN)) { - /* split the string */ - ptr = pmix_argv_split(info[n].value.data.string, ','); - np = pmix_argv_count(ptr); - PMIX_PROC_CREATE(p, np); - if (NULL == p) { - rc = PMIX_ERR_NOMEM; - pmix_argv_free(ptr); - goto complete; - } - for (j=0; j < np; j++) { - pmix_strncpy(p[j].nspace, nspace, PMIX_MAX_NSLEN); - p[j].rank = strtoul(ptr[j], NULL, 10); - } - rc = PMIX_SUCCESS; - pmix_argv_free(ptr); - break; - } + if (0 != strncmp(input, "pmix", 4)) { + return PMIX_ERR_TAKE_NEXT_OPTION; } - complete: - if (NULL != cb.info) { - PMIX_INFO_FREE(cb.info, cb.ninfo); - } - if (NULL != cb.key) { - free(cb.key); - cb.key = NULL; - } - PMIX_DESTRUCT(&cb); - *procs = p; - *nprocs = np; - - return rc; + *dest = strdup(input); + *len = strlen(input) + 1; + return PMIX_SUCCESS; } -static pmix_status_t resolve_nodes(const char *nspace, - char **nodelist) +static pmix_status_t pack(pmix_buffer_t *buffer, const char *input) { - pmix_cb_t cb; - pmix_status_t rc; - pmix_kval_t *kv; - pmix_proc_t proc; + size_t slen; + char *ptr; - PMIX_CONSTRUCT(&cb, pmix_cb_t); + if (0 != strncmp(input, "pmix", 4)) { + return PMIX_ERR_TAKE_NEXT_OPTION; + } - /* setup default answer */ - *nodelist = NULL; + /* extract the size */ + slen = strlen(input) + 1; // retain the NULL terminator - /* create a pmix_info_t so we can pass the nspace - * into the fetch as a qualifier */ - PMIX_INFO_CREATE(cb.info, 1); - if (NULL == cb.info) { - PMIX_DESTRUCT(&cb); + /* ensure the buffer has enough space */ + ptr = pmix_bfrop_buffer_extend(buffer, slen); + if (NULL == ptr) { return PMIX_ERR_NOMEM; } - cb.ninfo = 1; - PMIX_INFO_LOAD(&cb.info[0], PMIX_NSPACE, nspace, PMIX_STRING); - /* tell the GDS what we want */ - cb.key = PMIX_NODE_MAP; - /* this data isn't going anywhere, so we don't require a copy */ - cb.copy = false; - /* scope is irrelevant as the info we seek must be local */ - cb.scope = PMIX_SCOPE_UNDEF; - /* put the nspace in the proc field */ - pmix_strncpy(proc.nspace, nspace, PMIX_MAX_NSLEN); - /* the info will be associated with PMIX_RANK_WILDCARD */ - proc.rank = PMIX_RANK_WILDCARD; - cb.proc = &proc; - - PMIX_GDS_FETCH_KV(rc, pmix_client_globals.myserver, &cb); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - goto complete; - } - /* should just be the one value on the list */ - if (1 != pmix_list_get_size(&cb.kvs)) { - PMIX_ERROR_LOG(PMIX_ERR_BAD_PARAM); - rc = PMIX_ERR_BAD_PARAM; - goto complete; - } - kv = (pmix_kval_t*)pmix_list_get_first(&cb.kvs); - /* the PMIX_NODE_MAP key is supposed to return - * a regex string - check that it did */ - if (NULL == kv->value || - PMIX_STRING != kv->value->type) { - PMIX_ERROR_LOG(PMIX_ERR_DATA_VALUE_NOT_FOUND); - rc = PMIX_ERR_DATA_VALUE_NOT_FOUND; - goto complete; - } - /* return the string */ - if (NULL != kv->value->data.string) { - *nodelist = strdup(kv->value->data.string); - } - - complete: - if (NULL != cb.info) { - PMIX_INFO_FREE(cb.info, cb.ninfo); + /* xfer the data */ + memcpy(ptr, input, slen); + buffer->bytes_used += slen; + buffer->pack_ptr += slen; + + return PMIX_SUCCESS; +} + +static pmix_status_t unpack(pmix_buffer_t *buffer, char **regex) +{ + char *ptr; + + ptr = buffer->unpack_ptr; + + if (0 != strncmp(ptr, "pmix", 4)) { + return PMIX_ERR_TAKE_NEXT_OPTION; + } + + *regex = strdup(ptr); + buffer->unpack_ptr += strlen(ptr) + 1; + + if (NULL == *regex) { + return PMIX_ERR_NOMEM; } - return rc; + return PMIX_SUCCESS; } static pmix_status_t pmix_regex_extract_nodes(char *regexp, char ***names) @@ -701,7 +607,7 @@ return PMIX_ERR_OUT_OF_RESOURCE; } - PMIX_OUTPUT_VERBOSE((1, pmix_globals.debug_output, + PMIX_OUTPUT_VERBOSE((1, pmix_preg_base_framework.framework_output, "pmix:extract:nodes: checking list: %s", regexp)); do { @@ -777,7 +683,7 @@ } else { suffix = NULL; } - PMIX_OUTPUT_VERBOSE((1, pmix_globals.debug_output, + PMIX_OUTPUT_VERBOSE((1, pmix_preg_base_framework.framework_output, "regex:extract:nodes: parsing range %s %s %s", base, base + i, suffix)); @@ -851,7 +757,7 @@ if (start < orig + len) { - PMIX_OUTPUT_VERBOSE((1, pmix_globals.debug_output, + PMIX_OUTPUT_VERBOSE((1, pmix_preg_base_framework.framework_output, "regex:parse:ranges: parse range %s (2)", start)); ret = regex_parse_value_range(base, start, num_digits, suffix, names); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/native/preg_native_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/native/preg_native_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/native/preg_native_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/native/preg_native_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -26,8 +26,8 @@ * entire components just to query their version and parameters. */ -#include -#include "pmix_common.h" +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/mca/preg/preg.h" @@ -66,8 +66,7 @@ static int component_query(pmix_mca_base_module_t **module, int *priority) { - /* we should always be first in priority */ - *priority = 100; + *priority = 50; *module = (pmix_mca_base_module_t *)&pmix_preg_native_module; return PMIX_SUCCESS; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/native/preg_native.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/native/preg_native.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/native/preg_native.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/native/preg_native.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * * $COPYRIGHT$ * @@ -11,7 +11,7 @@ #ifndef PMIX_PREG_NATIVE_H #define PMIX_PREG_NATIVE_H -#include +#include "src/include/pmix_config.h" #include "src/mca/preg/preg.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/preg.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/preg.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/preg.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/preg.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* * Copyright (c) 2007-2008 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2015-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -23,11 +23,12 @@ #ifndef PMIX_PREG_H #define PMIX_PREG_H -#include +#include "src/include/pmix_config.h" #include "src/mca/mca.h" #include "src/mca/base/pmix_mca_base_var.h" #include "src/mca/base/pmix_mca_base_framework.h" +#include "src/mca/bfrops/bfrops_types.h" #include "src/mca/preg/preg_types.h" @@ -78,12 +79,11 @@ typedef pmix_status_t (*pmix_preg_base_module_parse_procs_fn_t)(const char *regexp, char ***procs); -typedef pmix_status_t (*pmix_preg_base_module_resolve_peers_fn_t)(const char *nodename, - const char *nspace, - pmix_proc_t **procs, size_t *nprocs); +typedef pmix_status_t (*pmix_preg_base_module_copy_fn_t)(char **dest, size_t *len, const char *input); -typedef pmix_status_t (*pmix_preg_base_module_resolve_nodes_fn_t)(const char *nspace, - char **nodelist); +typedef pmix_status_t (*pmix_preg_base_module_pack_fn_t)(pmix_buffer_t *buffer, const char *regex); + +typedef pmix_status_t (*pmix_preg_base_module_unpack_fn_t)(pmix_buffer_t *buffer, char **regex); /** * Base structure for a PREG module @@ -94,8 +94,9 @@ pmix_preg_base_module_generate_ppn_fn_t generate_ppn; pmix_preg_base_module_parse_nodes_fn_t parse_nodes; pmix_preg_base_module_parse_procs_fn_t parse_procs; - pmix_preg_base_module_resolve_peers_fn_t resolve_peers; - pmix_preg_base_module_resolve_nodes_fn_t resolve_nodes; + pmix_preg_base_module_copy_fn_t copy; + pmix_preg_base_module_pack_fn_t pack; + pmix_preg_base_module_unpack_fn_t unpack; } pmix_preg_module_t; /* we just use the standard component definition */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/preg_types.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/preg_types.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/preg/preg_types.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/preg/preg_types.h 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2007-2011 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2019 IBM Corporation. All rights reserved. * $COPYRIGHT$ * @@ -29,7 +29,7 @@ #ifndef PMIX_MCA_PREG_TYPES_H_ #define PMIX_MCA_PREG_TYPES_H_ -#include +#include "src/include/pmix_config.h" #include "src/class/pmix_object.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/base.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/base.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/base.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/base.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,9 +11,9 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -24,7 +24,7 @@ #ifndef PMIX_PSEC_BASE_H_ #define PMIX_PSEC_BASE_H_ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_SYS_TIME_H @@ -72,10 +72,11 @@ struct pmix_psec_globals_t { pmix_list_t actives; bool initialized; + bool selected; }; typedef struct pmix_psec_globals_t pmix_psec_globals_t; -extern pmix_psec_globals_t pmix_psec_globals; +PMIX_EXPORT extern pmix_psec_globals_t pmix_psec_globals; PMIX_EXPORT char* pmix_psec_base_get_available_modules(void); PMIX_EXPORT pmix_psec_module_t* pmix_psec_base_assign_module(const char *options); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/psec_base_fns.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/psec_base_fns.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/psec_base_fns.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/psec_base_fns.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2015-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. * All rights reserved. * @@ -11,9 +11,9 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/class/pmix_list.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/psec_base_frame.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/psec_base_frame.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/psec_base_frame.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/psec_base_frame.c 2022-05-29 09:51:40.000000000 +0000 @@ -11,9 +11,9 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. - * Copyright (c) 2015-2016 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -23,9 +23,9 @@ /** @file: * */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #ifdef HAVE_STRING_H #include @@ -54,6 +54,7 @@ return PMIX_SUCCESS; } pmix_psec_globals.initialized = false; + pmix_psec_globals.selected = false; PMIX_LIST_FOREACH_SAFE(active, prev, &pmix_psec_globals.actives, pmix_psec_base_active_module_t) { pmix_list_remove_item(&pmix_psec_globals.actives, &active->super); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/psec_base_select.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/psec_base_select.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/psec_base_select.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/psec_base_select.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,9 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,8 +19,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include @@ -29,8 +31,6 @@ #include "src/mca/psec/base/base.h" -static bool selected = false; - /* Function for selecting a prioritized list of components * from all those that are available. */ int pmix_psec_base_select(void) @@ -43,11 +43,11 @@ int rc, priority; bool inserted; - if (selected) { + if (pmix_psec_globals.selected) { /* ensure we don't do this twice */ return PMIX_SUCCESS; } - selected = true; + pmix_psec_globals.selected = true; /* Query all available components and ask if they have a module */ PMIX_LIST_FOREACH(cli, &pmix_psec_base_framework.framework_components, pmix_mca_base_component_list_item_t) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/dummy_handshake/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/dummy_handshake/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/dummy_handshake/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/dummy_handshake/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -128,7 +128,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -158,6 +157,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -168,7 +168,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -388,6 +387,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -451,6 +457,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -473,6 +486,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -491,6 +506,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -499,9 +515,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -515,6 +531,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -560,6 +577,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -572,10 +593,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/dummy_handshake/psec_dummy_handshake.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/dummy_handshake/psec_dummy_handshake.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/dummy_handshake/psec_dummy_handshake.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/dummy_handshake/psec_dummy_handshake.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,6 +2,7 @@ /* * Copyright (c) 2019 Mellanox Technologies, Inc. * All rights reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -9,14 +10,14 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #ifdef HAVE_SYS_TYPES_H #include #endif -#include +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/util/error.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/dummy_handshake/psec_dummy_handshake_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/dummy_handshake/psec_dummy_handshake_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/dummy_handshake/psec_dummy_handshake_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/dummy_handshake/psec_dummy_handshake_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,6 +2,7 @@ /* * Copyright (c) 2019 Mellanox Technologies, Inc. * All rights reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -9,8 +10,8 @@ * $HEADER$ */ -#include -#include "pmix_common.h" +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/mca/base/pmix_mca_base_var.h" #include "src/mca/psec/psec.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/dummy_handshake/psec_dummy_handshake.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/dummy_handshake/psec_dummy_handshake.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/dummy_handshake/psec_dummy_handshake.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/dummy_handshake/psec_dummy_handshake.h 2022-05-29 09:51:40.000000000 +0000 @@ -2,6 +2,7 @@ /* * Copyright (c) 2019 Mellanox Technologies, Inc. * All rights reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -12,7 +13,7 @@ #ifndef PMIX_SIMPLE_H #define PMIX_SIMPLE_H -#include +#include "src/include/pmix_config.h" #include "src/mca/psec/psec.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -11,8 +11,8 @@ # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. # Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. -# Copyright (c) 2013-2016 Intel, Inc. All rights reserved -# Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. +# Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -27,8 +27,8 @@ # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. # Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. -# Copyright (c) 2013-2016 Intel, Inc. All rights reserved -# Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. +# Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -153,7 +153,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -183,6 +182,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -193,7 +193,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -389,6 +388,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -452,6 +458,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -474,6 +487,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -492,6 +507,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -500,9 +516,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -516,6 +532,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -561,6 +578,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -573,10 +594,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -127,7 +127,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -157,6 +156,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -167,7 +167,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -381,6 +380,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -444,6 +450,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -466,6 +479,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -484,6 +499,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -492,9 +508,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -508,6 +524,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -553,6 +570,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -565,10 +586,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/psec_munge.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/psec_munge.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/psec_munge.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/psec_munge.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * * NOTE: THE MUNGE CLIENT LIBRARY (libmunge) IS LICENSED AS LGPL * @@ -10,9 +10,9 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/util/argv.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/psec_munge_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/psec_munge_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/psec_munge_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/psec_munge_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -26,8 +26,8 @@ * entire components just to query their version and parameters. */ -#include -#include "pmix_common.h" +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/mca/psec/psec.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/psec_munge.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/psec_munge.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/psec_munge.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/psec_munge.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2016 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * * $COPYRIGHT$ * @@ -13,7 +13,7 @@ BEGIN_C_DECLS -#include +#include "src/include/pmix_config.h" /* the component must be visible data for the linker to find it */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -126,7 +126,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -156,6 +155,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -166,7 +166,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -382,6 +381,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -445,6 +451,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -467,6 +480,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -485,6 +500,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -493,9 +509,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -509,6 +525,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -554,6 +571,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -566,10 +587,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/psec_native.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/psec_native.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/psec_native.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/psec_native.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. * Copyright (c) 2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -10,14 +10,14 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #ifdef HAVE_SYS_TYPES_H #include #endif -#include +#include "include/pmix_common.h" #include "src/include/pmix_socket_errno.h" #include "src/include/pmix_globals.h" @@ -275,7 +275,7 @@ } *ninfo = 3; /* mark that this came from us */ - PMIX_INFO_LOAD(info[0], PMIX_CRED_TYPE, "munge", PMIX_STRING); + PMIX_INFO_LOAD(info[0], PMIX_CRED_TYPE, "native", PMIX_STRING); /* provide the uid it contained */ u32 = euid; PMIX_INFO_LOAD(info[1], PMIX_USERID, &u32, PMIX_UINT32); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/psec_native_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/psec_native_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/psec_native_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/psec_native_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -26,8 +26,8 @@ * entire components just to query their version and parameters. */ -#include -#include "pmix_common.h" +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/mca/psec/psec.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/psec_native.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/psec_native.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/psec_native.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/psec_native.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2016 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * * $COPYRIGHT$ * @@ -11,7 +11,7 @@ #ifndef PMIX_NATIVE_H #define PMIX_NATIVE_H -#include +#include "src/include/pmix_config.h" #include "src/mca/psec/psec.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/none/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/none/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/none/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/none/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -126,7 +126,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -156,6 +155,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -166,7 +166,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -380,6 +379,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -443,6 +449,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -465,6 +478,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -483,6 +498,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -491,9 +507,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -507,6 +523,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -552,6 +569,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -564,10 +585,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/none/psec_none.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/none/psec_none.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/none/psec_none.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/none/psec_none.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. * Copyright (c) 2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -11,9 +11,9 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #include "src/include/pmix_socket_errno.h" #include "src/include/pmix_globals.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/none/psec_none_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/none/psec_none_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/none/psec_none_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/none/psec_none_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -26,8 +26,8 @@ * entire components just to query their version and parameters. */ -#include -#include "pmix_common.h" +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/mca/base/pmix_mca_base_var.h" #include "src/mca/psec/psec.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/none/psec_none.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/none/psec_none.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/none/psec_none.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/none/psec_none.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2016 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * * $COPYRIGHT$ * @@ -11,7 +11,7 @@ #ifndef PMIX_NATIVE_H #define PMIX_NATIVE_H -#include +#include "src/include/pmix_config.h" #include "src/mca/psec/psec.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/psec.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/psec.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psec/psec.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psec/psec.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* * Copyright (c) 2007-2008 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2015-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -29,7 +29,7 @@ #ifndef PMIX_PSEC_H #define PMIX_PSEC_H -#include +#include "src/include/pmix_config.h" #include "src/mca/mca.h" #include "src/mca/base/pmix_mca_base_var.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/base/base.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/base/base.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/base/base.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/base/base.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,9 @@ /* * Copyright (c) 2009 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2013 Los Alamos National Security, LLC. All rights reserved. - * - * Copyright (c) 2017 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -15,7 +16,7 @@ #ifndef PMIX_PSENSOR_BASE_H_ #define PMIX_PSENSOR_BASE_H_ -#include +#include "src/include/pmix_config.h" #include "src/class/pmix_list.h" #include "src/mca/mca.h" @@ -36,6 +37,7 @@ typedef struct { pmix_list_t actives; pmix_event_base_t *evbase; + bool selected; } pmix_psensor_base_t; typedef struct { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/base/psensor_base_frame.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/base/psensor_base_frame.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/base/psensor_base_frame.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/base/psensor_base_frame.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,8 +2,9 @@ /* * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. - * - * Copyright (c) 2017 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -12,9 +13,9 @@ */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #include #include PMIX_EVENT_HEADER @@ -48,6 +49,7 @@ static int pmix_psensor_register(pmix_mca_base_register_flag_t flags) { + (void)flags; (void) pmix_mca_base_var_register("pmix", "psensor", "base", "use_separate_thread", "Use a separate thread for monitoring local procs", PMIX_MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0, @@ -60,6 +62,7 @@ static int pmix_psensor_base_close(void) { + pmix_psensor_base.selected = false; PMIX_LIST_DESTRUCT(&pmix_psensor_base.actives); if (use_separate_thread && NULL != pmix_psensor_base.evbase) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/base/psensor_base_select.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/base/psensor_base_select.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/base/psensor_base_select.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/base/psensor_base_select.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,9 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,8 +19,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include @@ -27,8 +29,6 @@ #include "src/mca/psensor/base/base.h" -static bool selected = false; - /* Function for selecting a prioritized list of components * from all those that are available. */ int pmix_psensor_base_select(void) @@ -40,11 +40,11 @@ int pri; bool inserted; - if (selected) { + if (pmix_psensor_base.selected) { /* ensure we don't do this twice */ return PMIX_SUCCESS; } - selected = true; + pmix_psensor_base.selected = true; /* Query all available components and ask if they have a module */ PMIX_LIST_FOREACH(cli, &pmix_psensor_base_framework.framework_components, pmix_mca_base_component_list_item_t) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/base/psensor_base_stubs.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/base/psensor_base_stubs.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/base/psensor_base_stubs.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/base/psensor_base_stubs.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * * $COPYRIGHT$ * @@ -11,8 +11,8 @@ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/util/error.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/file/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/file/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/file/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/file/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,7 +116,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -146,6 +145,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -156,7 +156,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -366,6 +365,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -429,6 +435,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -451,6 +464,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -469,6 +484,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -477,9 +493,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -493,6 +509,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -538,6 +555,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -550,10 +571,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/file/psensor_file.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/file/psensor_file.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/file/psensor_file.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/file/psensor_file.c 2022-05-29 09:51:40.000000000 +0000 @@ -6,7 +6,9 @@ * Copyright (c) 2011-2012 Los Alamos National Security, LLC. * All rights reserved. * - * Copyright (c) 2017-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -14,9 +16,8 @@ * $HEADER$ */ -#include -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include #include @@ -293,6 +294,7 @@ ft->file)); /* stat the file and get its info */ + /* coverity[toctou] */ if (0 > stat(ft->file, &buf)) { /* cannot stat file */ PMIX_OUTPUT_VERBOSE((1, pmix_psensor_base_framework.framework_output, diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/file/psensor_file_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/file/psensor_file_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/file/psensor_file_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/file/psensor_file_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2017 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -8,8 +8,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/class/pmix_list.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/file/psensor_file.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/file/psensor_file.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/file/psensor_file.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/file/psensor_file.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. * - * Copyright (c) 2017 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -16,7 +16,7 @@ #ifndef PMIX_PSENSOR_FILE_H #define PMIX_PSENSOR_FILE_H -#include +#include "src/include/pmix_config.h" #include "src/class/pmix_list.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/heartbeat/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/heartbeat/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/heartbeat/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/heartbeat/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -117,7 +117,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -147,6 +146,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -157,7 +157,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -369,6 +368,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -432,6 +438,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -454,6 +467,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -472,6 +487,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -480,9 +496,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -496,6 +512,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -541,6 +558,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -553,10 +574,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/heartbeat/psensor_heartbeat.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/heartbeat/psensor_heartbeat.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/heartbeat/psensor_heartbeat.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/heartbeat/psensor_heartbeat.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2011-2012 Los Alamos National Security, LLC. All rights * reserved. * - * Copyright (c) 2017-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -11,8 +11,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include #ifdef HAVE_UNISTD_H diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/heartbeat/psensor_heartbeat_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/heartbeat/psensor_heartbeat_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/heartbeat/psensor_heartbeat_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/heartbeat/psensor_heartbeat_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2017-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -9,8 +9,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/mca/ptl/ptl.h" #include "src/mca/psensor/base/base.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/heartbeat/psensor_heartbeat.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/heartbeat/psensor_heartbeat.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/heartbeat/psensor_heartbeat.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/heartbeat/psensor_heartbeat.h 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. * - * Copyright (c) 2017-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,8 +17,8 @@ #ifndef PMIX_PSENSOR_HEARTBEAT_H #define PMIX_PSENSOR_HEARTBEAT_H -#include -#include +#include "src/include/pmix_config.h" +#include "src/include/types.h" #include "src/class/pmix_list.h" #include "src/include/pmix_globals.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -129,7 +129,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -159,6 +158,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -169,7 +169,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -365,6 +364,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -428,6 +434,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -450,6 +463,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -468,6 +483,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -476,9 +492,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -492,6 +508,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -537,6 +554,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -549,10 +570,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/psensor.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/psensor.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/psensor.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psensor/psensor.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * Copyright (c) 2009 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * * $COPYRIGHT$ * @@ -16,7 +16,7 @@ #ifndef PMIX_PSENSOR_H_ #define PMIX_PSENSOR_H_ -#include +#include "src/include/pmix_config.h" #include "src/class/pmix_list.h" #include "src/mca/mca.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/base/base.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/base/base.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/base/base.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/base/base.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -24,7 +24,7 @@ #ifndef PMIX_PSHMEM_BASE_H_ #define PMIX_PSHMEM_BASE_H_ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_SYS_TIME_H @@ -55,6 +55,16 @@ */ PMIX_EXPORT pmix_status_t pmix_pshmem_base_select(void); +/* framework globals */ +struct pmix_pshmem_globals_t { + bool initialized; + bool selected; +}; + +typedef struct pmix_pshmem_globals_t pmix_pshmem_globals_t; + +PMIX_EXPORT extern pmix_pshmem_globals_t pmix_pshmem_globals; + END_C_DECLS #endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/base/pshmem_base_frame.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/base/pshmem_base_frame.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/base/pshmem_base_frame.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/base/pshmem_base_frame.c 2022-05-29 09:51:40.000000000 +0000 @@ -11,9 +11,9 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. - * Copyright (c) 2015-2016 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -23,9 +23,9 @@ /** @file: * */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #ifdef HAVE_STRING_H #include @@ -43,28 +43,28 @@ #include "src/mca/pshmem/base/static-components.h" -static bool initialized = false; - /* Instantiate the global vars */ +pmix_pshmem_globals_t pmix_pshmem_globals = {0}; pmix_pshmem_base_module_t pmix_pshmem = {0}; static pmix_status_t pmix_pshmem_close(void) { - if (!initialized) { + if (!pmix_pshmem_globals.initialized) { return PMIX_SUCCESS; } - initialized = false; + pmix_pshmem_globals.initialized = false; + pmix_pshmem_globals.selected = false; return pmix_mca_base_framework_components_close(&pmix_pshmem_base_framework, NULL); } static pmix_status_t pmix_pshmem_open(pmix_mca_base_open_flag_t flags) { - if (initialized) { + if (pmix_pshmem_globals.initialized) { return PMIX_SUCCESS; } /* initialize globals */ - initialized = true; + pmix_pshmem_globals.initialized = true; /* Open up all available components */ return pmix_mca_base_framework_components_open(&pmix_pshmem_base_framework, flags); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/base/pshmem_base_select.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/base/pshmem_base_select.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/base/pshmem_base_select.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/base/pshmem_base_select.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,9 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,8 +19,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include @@ -27,8 +29,6 @@ #include "src/mca/pshmem/base/base.h" -static bool selected = false; - /* Function for selecting a prioritized list of components * from all those that are available. */ int pmix_pshmem_base_select(void) @@ -40,11 +40,11 @@ int rc, priority, best_pri = -1; bool inserted = false; - if (selected) { + if (pmix_pshmem_globals.selected) { /* ensure we don't do this twice */ return PMIX_SUCCESS; } - selected = true; + pmix_pshmem_globals.selected = true; /* Query all available components and ask if they have a module */ PMIX_LIST_FOREACH(cli, &pmix_pshmem_base_framework.framework_components, pmix_mca_base_component_list_item_t) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -153,7 +153,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -183,6 +182,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -193,7 +193,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -388,6 +387,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -451,6 +457,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -473,6 +486,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -491,6 +506,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -499,9 +515,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -515,6 +531,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -560,6 +577,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -572,10 +593,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -117,7 +117,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -147,6 +146,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -157,7 +157,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -373,6 +372,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -436,6 +442,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -458,6 +471,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -476,6 +491,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -484,9 +500,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -500,6 +516,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -545,6 +562,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -557,10 +578,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/pshmem_mmap.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/pshmem_mmap.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/pshmem_mmap.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/pshmem_mmap.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * All rights reserved. * Copyright (c) 2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2017-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -21,45 +21,31 @@ #include #include -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" //#include "pmix_sm.h" -#include +#include "src/mca/pshmem/pshmem.h" #include "pshmem_mmap.h" #if !defined(MAP_ANONYMOUS) && defined(MAP_ANON) # define MAP_ANONYMOUS MAP_ANON #endif /* MAP_ANONYMOUS and MAP_ANON */ -static int _mmap_init(void); -static void _mmap_finalize(void); static int _mmap_segment_create(pmix_pshmem_seg_t *sm_seg, const char *file_name, size_t size); static int _mmap_segment_attach(pmix_pshmem_seg_t *sm_seg, pmix_pshmem_access_mode_t sm_mode); static int _mmap_segment_detach(pmix_pshmem_seg_t *sm_seg); static int _mmap_segment_unlink(pmix_pshmem_seg_t *sm_seg); pmix_pshmem_base_module_t pmix_mmap_module = { - "mmap", - _mmap_init, - _mmap_finalize, - _mmap_segment_create, - _mmap_segment_attach, - _mmap_segment_detach, - _mmap_segment_unlink + .name = "mmap", + .segment_create = _mmap_segment_create, + .segment_attach = _mmap_segment_attach, + .segment_detach = _mmap_segment_detach, + .segment_unlink = _mmap_segment_unlink }; -static int _mmap_init(void) -{ - return PMIX_SUCCESS; -} - -static void _mmap_finalize(void) -{ - ; -} - static int _mmap_segment_create(pmix_pshmem_seg_t *sm_seg, const char *file_name, size_t size) { int rc = PMIX_SUCCESS; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/pshmem_mmap_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/pshmem_mmap_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/pshmem_mmap_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/pshmem_mmap_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * Copyright (c) 2017 Mellanox Technologies, Inc. * All rights reserved. * $COPYRIGHT$ @@ -28,11 +28,11 @@ * entire components just to query their version and parameters. */ -#include -#include "pmix_common.h" +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" -#include +#include "src/mca/pshmem/pshmem.h" #include "pshmem_mmap.h" static pmix_status_t component_open(void); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/pshmem_mmap.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/pshmem_mmap.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/pshmem_mmap.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/mmap/pshmem_mmap.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * Copyright (c) 2015-2016 Mellanox Technologies, Inc. * All rights reserved. - * Copyright (c) 2017 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -12,8 +12,8 @@ #ifndef PMIX_SM_MMAP_H #define PMIX_SM_MMAP_H -#include -#include +#include "src/include/pmix_config.h" +#include "src/mca/pshmem/pshmem.h" BEGIN_C_DECLS diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/pshmem.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/pshmem.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/pshmem.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/pshmem/pshmem.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * Copyright (c) 2015-2016 Mellanox Technologies, Inc. * All rights reserved. - * Copyright (c) 2017 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -12,9 +12,9 @@ #ifndef PMIX_PSHMEM_H #define PMIX_PSHMEM_H -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #include "src/mca/mca.h" #include "src/mca/base/pmix_mca_base_var.h" #include "src/mca/base/pmix_mca_base_framework.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/base/base.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/base/base.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/base/base.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/base/base.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,83 @@ +/* -*- C -*- + * + * Copyright (c) 2019 IBM Corporation. All rights reserved. + * Copyright (c) 2019 Mellanox Technologies, Inc. + * All rights reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + * + */ +#ifndef PMIX_PSQUASH_BASE_H_ +#define PMIX_PSQUASH_BASE_H_ + +#include "src/include/pmix_config.h" + +#ifdef HAVE_STRING_H +#include +#endif + +#include "src/class/pmix_pointer_array.h" +#include "src/mca/mca.h" +#include "src/mca/base/pmix_mca_base_framework.h" + +#include "src/mca/psquash/psquash.h" + + +BEGIN_C_DECLS + +/** + * Sizeof by PMIx type integer values. + * + * r - return status code + * t - type (pmix_data_type_t) of integer value + * s - size of type in bytes + * (see a comment to `pmix_bfrops_pack_flex` for additional details) + */ +#define PMIX_SQUASH_TYPE_SIZEOF(r, t, s) \ +do { \ + (r) = PMIX_SUCCESS; \ + switch (t) { \ + case PMIX_INT16: \ + case PMIX_UINT16: \ + (s) = SIZEOF_SHORT; \ + break; \ + case PMIX_INT: \ + case PMIX_INT32: \ + case PMIX_UINT: \ + case PMIX_UINT32: \ + (s) = SIZEOF_INT; \ + break; \ + case PMIX_INT64: \ + case PMIX_UINT64: \ + (s) = SIZEOF_LONG; \ + break; \ + case PMIX_SIZE: \ + (s) = SIZEOF_SIZE_T; \ + break; \ + default: \ + (r) = PMIX_ERR_BAD_PARAM; \ + } \ +} while (0) + +struct pmix_psquash_globals_t { + bool initialized; + bool selected; +}; + +typedef struct pmix_psquash_globals_t pmix_psquash_globals_t; + +PMIX_EXPORT extern pmix_mca_base_framework_t pmix_psquash_base_framework; + +PMIX_EXPORT pmix_status_t pmix_psquash_base_select(void); + +PMIX_EXPORT extern pmix_psquash_globals_t pmix_psquash_globals; + +END_C_DECLS + +#endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/base/Makefile.include openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/base/Makefile.include --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/base/Makefile.include 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/base/Makefile.include 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,19 @@ +# -*- makefile -*- +# +# Copyright (c) 2019 IBM Corporation. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# This makefile.am does not stand on its own - it is included from +# src/Makefile.am + +headers += \ + base/base.h + +sources += \ + base/psquash_base_frame.c \ + base/psquash_base_select.c diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/base/psquash_base_frame.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/base/psquash_base_frame.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/base/psquash_base_frame.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/base/psquash_base_frame.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,75 @@ +/* -*- Mode: C; c-basic-offset:4 ; -*- */ +/* + * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2009 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2016 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2019 IBM Corporation. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ +/** @file: + * + */ +#include "src/include/pmix_config.h" + +#include "include/pmix_common.h" + +#ifdef HAVE_STRING_H +#include +#endif + +#include "src/class/pmix_list.h" +#include "src/mca/base/base.h" +#include "src/mca/psquash/base/base.h" + +/* + * The following file was created by configure. It contains extern + * statements and the definition of an array of pointers to each + * component's public mca_base_component_t struct. + */ + +#include "src/mca/psquash/base/static-components.h" + +pmix_psquash_base_module_t pmix_psquash = {0}; +pmix_psquash_globals_t pmix_psquash_globals = {0}; + +static pmix_status_t pmix_psquash_close(void) +{ + if (!pmix_psquash_globals.initialized) { + return PMIX_SUCCESS; + } + pmix_psquash_globals.initialized = false; + pmix_psquash_globals.selected = false; + + return pmix_mca_base_framework_components_close(&pmix_psquash_base_framework, NULL); +} + +static pmix_status_t pmix_psquash_open(pmix_mca_base_open_flag_t flags) +{ + if (pmix_psquash_globals.initialized) { + return PMIX_SUCCESS; + } + /* initialize globals */ + pmix_psquash_globals.initialized = true; + + /* Open up all available components */ + return pmix_mca_base_framework_components_open(&pmix_psquash_base_framework, flags); +} + +PMIX_MCA_BASE_FRAMEWORK_DECLARE(pmix, psquash, "PMIx Squash Operations", + NULL, pmix_psquash_open, pmix_psquash_close, + mca_psquash_base_static_components, 0); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/base/psquash_base_select.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/base/psquash_base_select.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/base/psquash_base_select.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/base/psquash_base_select.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2004-2008 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2005 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2019 IBM Corporation. All rights reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" + +#include + +#include "src/mca/mca.h" +#include "src/mca/base/base.h" +#include "src/util/error.h" +#include "src/util/show_help.h" + +#include "src/mca/psquash/base/base.h" + +/* Function for selecting a prioritized list of components + * from all those that are available. */ +int pmix_psquash_base_select(void) +{ + pmix_mca_base_component_list_item_t *cli; + pmix_mca_base_component_t *component; + pmix_mca_base_module_t *module; + pmix_psquash_base_module_t *nmodule; + int rc, priority, best_pri = -1; + bool inserted = false; + + if (pmix_psquash_globals.selected) { + /* ensure we don't do this twice */ + return PMIX_SUCCESS; + } + pmix_psquash_globals.selected = true; + + /* Query all available components and ask if they have a module */ + PMIX_LIST_FOREACH(cli, &pmix_psquash_base_framework.framework_components, pmix_mca_base_component_list_item_t) { + component = (pmix_mca_base_component_t *) cli->cli_component; + + pmix_output_verbose(5, pmix_psquash_base_framework.framework_output, + "mca:psquash:select: checking available component %s", component->pmix_mca_component_name); + + /* If there's no query function, skip it */ + if (NULL == component->pmix_mca_query_component) { + pmix_output_verbose(5, pmix_psquash_base_framework.framework_output, + "mca:psquash:select: Skipping component [%s]. It does not implement a query function", + component->pmix_mca_component_name ); + continue; + } + + /* Query the component */ + pmix_output_verbose(5, pmix_psquash_base_framework.framework_output, + "mca:psquash:select: Querying component [%s]", + component->pmix_mca_component_name); + rc = component->pmix_mca_query_component(&module, &priority); + + /* If no module was returned, then skip component */ + if (PMIX_SUCCESS != rc || NULL == module) { + pmix_output_verbose(5, pmix_psquash_base_framework.framework_output, + "mca:psquash:select: Skipping component [%s]. Query failed to return a module", + component->pmix_mca_component_name ); + continue; + } + + /* If we got a module, try to initialize it */ + nmodule = (pmix_psquash_base_module_t*) module; + if (NULL != nmodule->init && PMIX_SUCCESS != nmodule->init()) { + continue; + } + + /* keep only the highest priority module */ + if (best_pri < priority) { + best_pri = priority; + /* give any prior module a chance to finalize */ + if (NULL != pmix_psquash.finalize) { + pmix_psquash.finalize(); + } + pmix_psquash = *nmodule; + inserted = true; + } + } + + if (!inserted) { + return PMIX_ERR_NOT_FOUND; + } + + return PMIX_SUCCESS;; +} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,43 @@ +# -*- makefile -*- +# +# Copyright (c) 2019 IBM Corporation. All rights reserved. +# Copyright (c) 2019 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +headers = psquash_flex128.h +sources = \ + psquash_flex128_component.c \ + psquash_flex128.c + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). + +if MCA_BUILD_pmix_psquash_flex128_DSO +lib = +lib_sources = +component = mca_psquash_flex128.la +component_sources = $(headers) $(sources) +else +lib = libmca_psquash_flex128.la +lib_sources = $(headers) $(sources) +component = +component_sources = +endif + +mcacomponentdir = $(pmixlibdir) +mcacomponent_LTLIBRARIES = $(component) +mca_psquash_flex128_la_SOURCES = $(component_sources) +mca_psquash_flex128_la_LDFLAGS = -module -avoid-version +if NEED_LIBPMIX +mca_psquash_flex128_la_LIBADD = $(top_builddir)/src/libpmix.la +endif + +noinst_LTLIBRARIES = $(lib) +libmca_psquash_flex128_la_SOURCES = $(lib_sources) +libmca_psquash_flex128_la_LDFLAGS = -module -avoid-version diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,965 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# -*- makefile -*- +# +# Copyright (c) 2019 IBM Corporation. All rights reserved. +# Copyright (c) 2019 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = src/mca/psquash/flex128 +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/pmix.m4 \ + $(top_srcdir)/config/pmix_check_attributes.m4 \ + $(top_srcdir)/config/pmix_check_broken_qsort.m4 \ + $(top_srcdir)/config/pmix_check_compiler_version.m4 \ + $(top_srcdir)/config/pmix_check_icc.m4 \ + $(top_srcdir)/config/pmix_check_lock.m4 \ + $(top_srcdir)/config/pmix_check_os_flavors.m4 \ + $(top_srcdir)/config/pmix_check_package.m4 \ + $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ + $(top_srcdir)/config/pmix_check_vendor.m4 \ + $(top_srcdir)/config/pmix_check_visibility.m4 \ + $(top_srcdir)/config/pmix_check_withdir.m4 \ + $(top_srcdir)/config/pmix_config_asm.m4 \ + $(top_srcdir)/config/pmix_config_pthreads.m4 \ + $(top_srcdir)/config/pmix_config_subdir.m4 \ + $(top_srcdir)/config/pmix_config_subdir_args.m4 \ + $(top_srcdir)/config/pmix_config_threads.m4 \ + $(top_srcdir)/config/pmix_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/pmix_functions.m4 \ + $(top_srcdir)/config/pmix_load_platform.m4 \ + $(top_srcdir)/config/pmix_mca.m4 \ + $(top_srcdir)/config/pmix_search_libs.m4 \ + $(top_srcdir)/config/pmix_set_mca_prefix.m4 \ + $(top_srcdir)/config/pmix_setup_cc.m4 \ + $(top_srcdir)/config/pmix_setup_cli.m4 \ + $(top_srcdir)/config/pmix_setup_hwloc.m4 \ + $(top_srcdir)/config/pmix_setup_libev.m4 \ + $(top_srcdir)/config/pmix_setup_libevent.m4 \ + $(top_srcdir)/config/pmix_setup_zlib.m4 \ + $(top_srcdir)/config/pmix_summary.m4 \ + $(top_srcdir)/config/pmix_try_assemble.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/src/mca/pdl/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/configure.m4 \ + $(top_srcdir)/src/mca/common/dstore/configure.m4 \ + $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ + $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ + $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ + $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ + $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/src/mca/pif/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pif/linux_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pif/posix_ipv4/configure.m4 \ + $(top_srcdir)/src/mca/pif/solaris_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ + $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ + $(top_srcdir)/src/mca/psec/munge/configure.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/pmix_config.h \ + $(top_builddir)/include/pmix_common.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(mcacomponentdir)" +LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) +libmca_psquash_flex128_la_LIBADD = +am__libmca_psquash_flex128_la_SOURCES_DIST = psquash_flex128.h \ + psquash_flex128_component.c psquash_flex128.c +am__objects_1 = +am__objects_2 = psquash_flex128_component.lo psquash_flex128.lo +@MCA_BUILD_pmix_psquash_flex128_DSO_FALSE@am__objects_3 = \ +@MCA_BUILD_pmix_psquash_flex128_DSO_FALSE@ $(am__objects_1) \ +@MCA_BUILD_pmix_psquash_flex128_DSO_FALSE@ $(am__objects_2) +am_libmca_psquash_flex128_la_OBJECTS = $(am__objects_3) +libmca_psquash_flex128_la_OBJECTS = \ + $(am_libmca_psquash_flex128_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libmca_psquash_flex128_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libmca_psquash_flex128_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_pmix_psquash_flex128_DSO_FALSE@am_libmca_psquash_flex128_la_rpath = +@NEED_LIBPMIX_TRUE@mca_psquash_flex128_la_DEPENDENCIES = \ +@NEED_LIBPMIX_TRUE@ $(top_builddir)/src/libpmix.la +am__mca_psquash_flex128_la_SOURCES_DIST = psquash_flex128.h \ + psquash_flex128_component.c psquash_flex128.c +@MCA_BUILD_pmix_psquash_flex128_DSO_TRUE@am__objects_4 = \ +@MCA_BUILD_pmix_psquash_flex128_DSO_TRUE@ $(am__objects_1) \ +@MCA_BUILD_pmix_psquash_flex128_DSO_TRUE@ $(am__objects_2) +am_mca_psquash_flex128_la_OBJECTS = $(am__objects_4) +mca_psquash_flex128_la_OBJECTS = $(am_mca_psquash_flex128_la_OBJECTS) +mca_psquash_flex128_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(mca_psquash_flex128_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_pmix_psquash_flex128_DSO_TRUE@am_mca_psquash_flex128_la_rpath = \ +@MCA_BUILD_pmix_psquash_flex128_DSO_TRUE@ -rpath \ +@MCA_BUILD_pmix_psquash_flex128_DSO_TRUE@ $(mcacomponentdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/include -I$(top_builddir)/include +depcomp = $(SHELL) $(top_srcdir)/./config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libmca_psquash_flex128_la_SOURCES) \ + $(mca_psquash_flex128_la_SOURCES) +DIST_SOURCES = $(am__libmca_psquash_flex128_la_SOURCES_DIST) \ + $(am__mca_psquash_flex128_la_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/./config/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CC_FOR_BUILD = @CC_FOR_BUILD@ +CFLAGS = @CFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_pmix_FRAMEWORKS = @MCA_pmix_FRAMEWORKS@ +MCA_pmix_FRAMEWORKS_SUBDIRS = @MCA_pmix_FRAMEWORKS_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_pmix_FRAMEWORK_LIBS = @MCA_pmix_FRAMEWORK_LIBS@ +MCA_pmix_bfrops_ALL_COMPONENTS = @MCA_pmix_bfrops_ALL_COMPONENTS@ +MCA_pmix_bfrops_ALL_SUBDIRS = @MCA_pmix_bfrops_ALL_SUBDIRS@ +MCA_pmix_bfrops_DSO_COMPONENTS = @MCA_pmix_bfrops_DSO_COMPONENTS@ +MCA_pmix_bfrops_DSO_SUBDIRS = @MCA_pmix_bfrops_DSO_SUBDIRS@ +MCA_pmix_bfrops_STATIC_COMPONENTS = @MCA_pmix_bfrops_STATIC_COMPONENTS@ +MCA_pmix_bfrops_STATIC_LTLIBS = @MCA_pmix_bfrops_STATIC_LTLIBS@ +MCA_pmix_bfrops_STATIC_SUBDIRS = @MCA_pmix_bfrops_STATIC_SUBDIRS@ +MCA_pmix_common_ALL_COMPONENTS = @MCA_pmix_common_ALL_COMPONENTS@ +MCA_pmix_common_ALL_SUBDIRS = @MCA_pmix_common_ALL_SUBDIRS@ +MCA_pmix_common_DSO_COMPONENTS = @MCA_pmix_common_DSO_COMPONENTS@ +MCA_pmix_common_DSO_SUBDIRS = @MCA_pmix_common_DSO_SUBDIRS@ +MCA_pmix_common_STATIC_COMPONENTS = @MCA_pmix_common_STATIC_COMPONENTS@ +MCA_pmix_common_STATIC_LTLIBS = @MCA_pmix_common_STATIC_LTLIBS@ +MCA_pmix_common_STATIC_SUBDIRS = @MCA_pmix_common_STATIC_SUBDIRS@ +MCA_pmix_gds_ALL_COMPONENTS = @MCA_pmix_gds_ALL_COMPONENTS@ +MCA_pmix_gds_ALL_SUBDIRS = @MCA_pmix_gds_ALL_SUBDIRS@ +MCA_pmix_gds_DSO_COMPONENTS = @MCA_pmix_gds_DSO_COMPONENTS@ +MCA_pmix_gds_DSO_SUBDIRS = @MCA_pmix_gds_DSO_SUBDIRS@ +MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ +MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ +MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ +MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ +MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ +MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ +MCA_pmix_pdl_DSO_SUBDIRS = @MCA_pmix_pdl_DSO_SUBDIRS@ +MCA_pmix_pdl_STATIC_COMPONENTS = @MCA_pmix_pdl_STATIC_COMPONENTS@ +MCA_pmix_pdl_STATIC_LTLIBS = @MCA_pmix_pdl_STATIC_LTLIBS@ +MCA_pmix_pdl_STATIC_SUBDIRS = @MCA_pmix_pdl_STATIC_SUBDIRS@ +MCA_pmix_pif_ALL_COMPONENTS = @MCA_pmix_pif_ALL_COMPONENTS@ +MCA_pmix_pif_ALL_SUBDIRS = @MCA_pmix_pif_ALL_SUBDIRS@ +MCA_pmix_pif_DSO_COMPONENTS = @MCA_pmix_pif_DSO_COMPONENTS@ +MCA_pmix_pif_DSO_SUBDIRS = @MCA_pmix_pif_DSO_SUBDIRS@ +MCA_pmix_pif_STATIC_COMPONENTS = @MCA_pmix_pif_STATIC_COMPONENTS@ +MCA_pmix_pif_STATIC_LTLIBS = @MCA_pmix_pif_STATIC_LTLIBS@ +MCA_pmix_pif_STATIC_SUBDIRS = @MCA_pmix_pif_STATIC_SUBDIRS@ +MCA_pmix_pinstalldirs_ALL_COMPONENTS = @MCA_pmix_pinstalldirs_ALL_COMPONENTS@ +MCA_pmix_pinstalldirs_ALL_SUBDIRS = @MCA_pmix_pinstalldirs_ALL_SUBDIRS@ +MCA_pmix_pinstalldirs_DSO_COMPONENTS = @MCA_pmix_pinstalldirs_DSO_COMPONENTS@ +MCA_pmix_pinstalldirs_DSO_SUBDIRS = @MCA_pmix_pinstalldirs_DSO_SUBDIRS@ +MCA_pmix_pinstalldirs_STATIC_COMPONENTS = @MCA_pmix_pinstalldirs_STATIC_COMPONENTS@ +MCA_pmix_pinstalldirs_STATIC_LTLIBS = @MCA_pmix_pinstalldirs_STATIC_LTLIBS@ +MCA_pmix_pinstalldirs_STATIC_SUBDIRS = @MCA_pmix_pinstalldirs_STATIC_SUBDIRS@ +MCA_pmix_plog_ALL_COMPONENTS = @MCA_pmix_plog_ALL_COMPONENTS@ +MCA_pmix_plog_ALL_SUBDIRS = @MCA_pmix_plog_ALL_SUBDIRS@ +MCA_pmix_plog_DSO_COMPONENTS = @MCA_pmix_plog_DSO_COMPONENTS@ +MCA_pmix_plog_DSO_SUBDIRS = @MCA_pmix_plog_DSO_SUBDIRS@ +MCA_pmix_plog_STATIC_COMPONENTS = @MCA_pmix_plog_STATIC_COMPONENTS@ +MCA_pmix_plog_STATIC_LTLIBS = @MCA_pmix_plog_STATIC_LTLIBS@ +MCA_pmix_plog_STATIC_SUBDIRS = @MCA_pmix_plog_STATIC_SUBDIRS@ +MCA_pmix_pnet_ALL_COMPONENTS = @MCA_pmix_pnet_ALL_COMPONENTS@ +MCA_pmix_pnet_ALL_SUBDIRS = @MCA_pmix_pnet_ALL_SUBDIRS@ +MCA_pmix_pnet_DSO_COMPONENTS = @MCA_pmix_pnet_DSO_COMPONENTS@ +MCA_pmix_pnet_DSO_SUBDIRS = @MCA_pmix_pnet_DSO_SUBDIRS@ +MCA_pmix_pnet_STATIC_COMPONENTS = @MCA_pmix_pnet_STATIC_COMPONENTS@ +MCA_pmix_pnet_STATIC_LTLIBS = @MCA_pmix_pnet_STATIC_LTLIBS@ +MCA_pmix_pnet_STATIC_SUBDIRS = @MCA_pmix_pnet_STATIC_SUBDIRS@ +MCA_pmix_preg_ALL_COMPONENTS = @MCA_pmix_preg_ALL_COMPONENTS@ +MCA_pmix_preg_ALL_SUBDIRS = @MCA_pmix_preg_ALL_SUBDIRS@ +MCA_pmix_preg_DSO_COMPONENTS = @MCA_pmix_preg_DSO_COMPONENTS@ +MCA_pmix_preg_DSO_SUBDIRS = @MCA_pmix_preg_DSO_SUBDIRS@ +MCA_pmix_preg_STATIC_COMPONENTS = @MCA_pmix_preg_STATIC_COMPONENTS@ +MCA_pmix_preg_STATIC_LTLIBS = @MCA_pmix_preg_STATIC_LTLIBS@ +MCA_pmix_preg_STATIC_SUBDIRS = @MCA_pmix_preg_STATIC_SUBDIRS@ +MCA_pmix_psec_ALL_COMPONENTS = @MCA_pmix_psec_ALL_COMPONENTS@ +MCA_pmix_psec_ALL_SUBDIRS = @MCA_pmix_psec_ALL_SUBDIRS@ +MCA_pmix_psec_DSO_COMPONENTS = @MCA_pmix_psec_DSO_COMPONENTS@ +MCA_pmix_psec_DSO_SUBDIRS = @MCA_pmix_psec_DSO_SUBDIRS@ +MCA_pmix_psec_STATIC_COMPONENTS = @MCA_pmix_psec_STATIC_COMPONENTS@ +MCA_pmix_psec_STATIC_LTLIBS = @MCA_pmix_psec_STATIC_LTLIBS@ +MCA_pmix_psec_STATIC_SUBDIRS = @MCA_pmix_psec_STATIC_SUBDIRS@ +MCA_pmix_psensor_ALL_COMPONENTS = @MCA_pmix_psensor_ALL_COMPONENTS@ +MCA_pmix_psensor_ALL_SUBDIRS = @MCA_pmix_psensor_ALL_SUBDIRS@ +MCA_pmix_psensor_DSO_COMPONENTS = @MCA_pmix_psensor_DSO_COMPONENTS@ +MCA_pmix_psensor_DSO_SUBDIRS = @MCA_pmix_psensor_DSO_SUBDIRS@ +MCA_pmix_psensor_STATIC_COMPONENTS = @MCA_pmix_psensor_STATIC_COMPONENTS@ +MCA_pmix_psensor_STATIC_LTLIBS = @MCA_pmix_psensor_STATIC_LTLIBS@ +MCA_pmix_psensor_STATIC_SUBDIRS = @MCA_pmix_psensor_STATIC_SUBDIRS@ +MCA_pmix_pshmem_ALL_COMPONENTS = @MCA_pmix_pshmem_ALL_COMPONENTS@ +MCA_pmix_pshmem_ALL_SUBDIRS = @MCA_pmix_pshmem_ALL_SUBDIRS@ +MCA_pmix_pshmem_DSO_COMPONENTS = @MCA_pmix_pshmem_DSO_COMPONENTS@ +MCA_pmix_pshmem_DSO_SUBDIRS = @MCA_pmix_pshmem_DSO_SUBDIRS@ +MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ +MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ +MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ +MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ +MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ +MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ +MCA_pmix_ptl_DSO_SUBDIRS = @MCA_pmix_ptl_DSO_SUBDIRS@ +MCA_pmix_ptl_STATIC_COMPONENTS = @MCA_pmix_ptl_STATIC_COMPONENTS@ +MCA_pmix_ptl_STATIC_LTLIBS = @MCA_pmix_ptl_STATIC_LTLIBS@ +MCA_pmix_ptl_STATIC_SUBDIRS = @MCA_pmix_ptl_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ +PERL = @PERL@ +PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ +PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ +PMIX_ASM_SUPPORT_64BIT = @PMIX_ASM_SUPPORT_64BIT@ +PMIX_ASM_TEXT = @PMIX_ASM_TEXT@ +PMIX_ASM_TYPE = @PMIX_ASM_TYPE@ +PMIX_ASSEMBLY_ARCH = @PMIX_ASSEMBLY_ARCH@ +PMIX_ASSEMBLY_BUILTIN = @PMIX_ASSEMBLY_BUILTIN@ +PMIX_ASSEMBLY_FORMAT = @PMIX_ASSEMBLY_FORMAT@ +PMIX_AS_GLOBAL = @PMIX_AS_GLOBAL@ +PMIX_AS_LABEL_SUFFIX = @PMIX_AS_LABEL_SUFFIX@ +PMIX_BUILT_TEST_PREFIX = @PMIX_BUILT_TEST_PREFIX@ +PMIX_CC_ABSOLUTE = @PMIX_CC_ABSOLUTE@ +PMIX_COMPONENT_LIBRARY_PATHS = @PMIX_COMPONENT_LIBRARY_PATHS@ +PMIX_CONFIGURE_CLI = @PMIX_CONFIGURE_CLI@ +PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ +PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ +PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ +PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ +PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ +PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ +PMIX_EXTRA_LIB = @PMIX_EXTRA_LIB@ +PMIX_EXTRA_LTLIB = @PMIX_EXTRA_LTLIB@ +PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ +PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ +PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ +PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ +PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ +PMIX_REPO_REV = @PMIX_REPO_REV@ +PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ +PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ +PMIX_VERSION = @PMIX_VERSION@ +PMIX_top_builddir = @PMIX_top_builddir@ +PMIX_top_srcdir = @PMIX_top_srcdir@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_common_dstore_so_version = @libmca_common_dstore_so_version@ +libpmi2_so_version = @libpmi2_so_version@ +libpmi_so_version = @libpmi_so_version@ +libpmix_so_version = @libpmix_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ +pdfdir = @pdfdir@ +pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ +pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ +pmix_pdl_plibltdl_LDFLAGS = @pmix_pdl_plibltdl_LDFLAGS@ +pmix_pdl_plibltdl_LIBS = @pmix_pdl_plibltdl_LIBS@ +pmixdatadir = @pmixdatadir@ +pmixincludedir = @pmixincludedir@ +pmixlibdir = @pmixlibdir@ +pmixmajor = @pmixmajor@ +pmixminor = @pmixminor@ +pmixnumeric = @pmixnumeric@ +pmixrelease = @pmixrelease@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +psec_munge_CPPFLAGS = @psec_munge_CPPFLAGS@ +psec_munge_LDFLAGS = @psec_munge_LDFLAGS@ +psec_munge_LIBS = @psec_munge_LIBS@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +headers = psquash_flex128.h +sources = \ + psquash_flex128_component.c \ + psquash_flex128.c + +@MCA_BUILD_pmix_psquash_flex128_DSO_FALSE@lib = libmca_psquash_flex128.la + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). +@MCA_BUILD_pmix_psquash_flex128_DSO_TRUE@lib = +@MCA_BUILD_pmix_psquash_flex128_DSO_FALSE@lib_sources = $(headers) $(sources) +@MCA_BUILD_pmix_psquash_flex128_DSO_TRUE@lib_sources = +@MCA_BUILD_pmix_psquash_flex128_DSO_FALSE@component = +@MCA_BUILD_pmix_psquash_flex128_DSO_TRUE@component = mca_psquash_flex128.la +@MCA_BUILD_pmix_psquash_flex128_DSO_FALSE@component_sources = +@MCA_BUILD_pmix_psquash_flex128_DSO_TRUE@component_sources = $(headers) $(sources) +mcacomponentdir = $(pmixlibdir) +mcacomponent_LTLIBRARIES = $(component) +mca_psquash_flex128_la_SOURCES = $(component_sources) +mca_psquash_flex128_la_LDFLAGS = -module -avoid-version +@NEED_LIBPMIX_TRUE@mca_psquash_flex128_la_LIBADD = $(top_builddir)/src/libpmix.la +noinst_LTLIBRARIES = $(lib) +libmca_psquash_flex128_la_SOURCES = $(lib_sources) +libmca_psquash_flex128_la_LDFLAGS = -module -avoid-version +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/mca/psquash/flex128/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/mca/psquash/flex128/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-mcacomponentLTLIBRARIES: $(mcacomponent_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(mcacomponentdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(mcacomponentdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(mcacomponentdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(mcacomponentdir)"; \ + } + +uninstall-mcacomponentLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(mcacomponentdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(mcacomponentdir)/$$f"; \ + done + +clean-mcacomponentLTLIBRARIES: + -test -z "$(mcacomponent_LTLIBRARIES)" || rm -f $(mcacomponent_LTLIBRARIES) + @list='$(mcacomponent_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libmca_psquash_flex128.la: $(libmca_psquash_flex128_la_OBJECTS) $(libmca_psquash_flex128_la_DEPENDENCIES) $(EXTRA_libmca_psquash_flex128_la_DEPENDENCIES) + $(AM_V_CCLD)$(libmca_psquash_flex128_la_LINK) $(am_libmca_psquash_flex128_la_rpath) $(libmca_psquash_flex128_la_OBJECTS) $(libmca_psquash_flex128_la_LIBADD) $(LIBS) + +mca_psquash_flex128.la: $(mca_psquash_flex128_la_OBJECTS) $(mca_psquash_flex128_la_DEPENDENCIES) $(EXTRA_mca_psquash_flex128_la_DEPENDENCIES) + $(AM_V_CCLD)$(mca_psquash_flex128_la_LINK) $(am_mca_psquash_flex128_la_rpath) $(mca_psquash_flex128_la_OBJECTS) $(mca_psquash_flex128_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/psquash_flex128.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/psquash_flex128_component.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(mcacomponentdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-mcacomponentLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-mcacomponentLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-mcacomponentLTLIBRARIES install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-mcacomponentLTLIBRARIES + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/psquash_flex128.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/psquash_flex128.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/psquash_flex128.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/psquash_flex128.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,384 @@ +/* + * Copyright (c) 2019 IBM Corporation. All rights reserved. + * Copyright (c) 2019 Mellanox Technologies, Inc. + * All rights reserved. + * + * Copyright (c) 2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "src/include/pmix_config.h" + +#include "include/pmix_common.h" + +#include "src/include/pmix_socket_errno.h" +#include "src/include/pmix_globals.h" +#include "src/util/argv.h" +#include "src/util/error.h" +#include "src/util/output.h" + +#include +#ifdef HAVE_SYS_TYPES_H +#include +#endif + +#include "src/mca/psquash/base/base.h" +#include "psquash_flex128.h" + +/* Flexible packing constants */ +#define FLEX_BASE7_MAX_BUF_SIZE (SIZEOF_SIZE_T+1) +#define FLEX_BASE7_MASK ((1<<7) - 1) +#define FLEX_BASE7_SHIFT 7 +#define FLEX_BASE7_CONT_FLAG (1<<7) + +/** + * Packing conversion of a signed integer value to a flexible representation. + * The main idea is to split a signed negative value onto an absolute value + * and a sign bit stored in the special location. + * This allows efficient representetion of negative values in the + * flexible form. + * + * type - type (pmix_data_type_t) of integer value + * ptr - pointer to the signed integer value + * with the type defined as (type) + * out - flexible representation of *ptr, + * extended to uint64_t if needed + * (see a comment to `pmix_bfrops_pack_flex` for additional details) + */ +#define FLEX128_PACK_CONVERT_SIGNED(type, ptr, out) \ +do { \ + type __tbuf = 0; \ + size_t __tmp; \ + int __sign = 0; \ + memcpy(&__tbuf, (ptr), sizeof(type)); \ + __tmp = __tbuf; \ + (out) = (size_t)__tmp; \ + if (__tmp & (1UL << (sizeof(__tmp)*CHAR_BIT-1))) { \ + __sign = 1; \ + out = ~(out); \ + } \ + (out) = ((out) << 1) + __sign; \ +} while (0) + +/** + * Packing conversion of a signed integer value to a flexible representation. + * For unsigned types it is reduced to a memcopy. + * + * type - usual integer C-type of integer value + * ptr - pointer to the signed integer value + * with the type defined as (type) + * out - flexible representation of *ptr, + * extended to uint64_t if needed + * (see a comment to `pmix_bfrops_pack_flex` for additional details) + */ +#define FLEX128_PACK_CONVERT_UNSIGNED(type, ptr, out) \ +do { \ + type __tbuf = 0; \ + memcpy(&__tbuf, (ptr), sizeof(type)); \ + out = __tbuf; \ +} while (0) + +/** + * Packing conversion from integer value to a flexible representation. + * + * r - return status code + * t - type (pmix_data_type_t) of integer value, it is determines + * which type of integer is converted + * s - pointer to the integer value with the type defined as (t) + * d - flexible representation output value (uin64_t) + * (see a comment to `pmix_bfrops_pack_flex` for additional details) + */ +#define FLEX128_PACK_CONVERT(r, t, s, d) \ +do { \ + (r) = PMIX_SUCCESS; \ + switch (t) { \ + case PMIX_INT16: \ + FLEX128_PACK_CONVERT_SIGNED(int16_t, s, d); \ + break; \ + case PMIX_UINT16: \ + FLEX128_PACK_CONVERT_UNSIGNED(uint16_t, s, d); \ + break; \ + case PMIX_INT: \ + case PMIX_INT32: \ + FLEX128_PACK_CONVERT_SIGNED(int32_t, s, d); \ + break; \ + case PMIX_UINT: \ + case PMIX_UINT32: \ + FLEX128_PACK_CONVERT_UNSIGNED(uint32_t, s, d); \ + break; \ + case PMIX_INT64: \ + FLEX128_PACK_CONVERT_SIGNED(int64_t, s, d); \ + break; \ + case PMIX_SIZE: \ + FLEX128_PACK_CONVERT_UNSIGNED(size_t, s, d); \ + break; \ + case PMIX_UINT64: \ + FLEX128_PACK_CONVERT_UNSIGNED(uint64_t, s, d); \ + break; \ + default: \ + (r) = PMIX_ERR_BAD_PARAM; \ + } \ +} while(0) + +/** + * Unpacking conversion from a flexible representation to a + * signed integer value. + * + * type - C-type of a signed integer value + * val - flexible representation (uint64_t) + * ptr - pointer to a 64-bit output buffer for the upacked value + * (see a comment to `pmix_bfrops_pack_flex` for additional details) + */ +#define FLEX128_UNPACK_CONVERT_SIGNED(type, val, ptr) \ +do { \ + type __tbuf = 0; \ + size_t __tmp = val; \ + int sign = (__tmp) & 1; \ + __tmp >>= 1; \ + if (sign) { \ + __tmp = ~__tmp; \ + } \ + __tbuf = (type)__tmp; \ + memcpy(ptr, &__tbuf, sizeof(type)); \ +} while (0) + +/** + * Unpacking conversion of a flexible representation value + * to an unsigned integer. + * + * type - C-type of unsigned integer value + * val - flexible representation value (uint64_t) + * ptr - pointer to a 64-bit output buffer for the upacked value + * (see a comment to `pmix_bfrops_pack_flex` for additional details) + */ +#define FLEX128_UNPACK_CONVERT_UNSIGNED(type, val, ptr) \ +do { \ + type __tbuf = 0; \ + __tbuf = (type)val; \ + memcpy(ptr, &__tbuf, sizeof(type)); \ +} while (0) + +/** + * Unpacking conversion of a flexible representation value + * to an integer. + * + * r - return status code + * t - type (pmix_data_type_t) of integer value, it is determines + * which type of integer is converted + * s - flex-representation value (uin64_t) + * d - pointer to a 64-bit output buffer for the upacked value + * (see a comment to `pmix_bfrops_pack_flex` for additional details) + */ +#define FLEX128_UNPACK_CONVERT(r, t, s, d) \ +do { \ + (r) = PMIX_SUCCESS; \ + switch (t) { \ + case PMIX_INT16: \ + FLEX128_UNPACK_CONVERT_SIGNED(int16_t, s, d); \ + break; \ + case PMIX_UINT16: \ + FLEX128_UNPACK_CONVERT_UNSIGNED(uint16_t, s, d); \ + break; \ + case PMIX_INT: \ + case PMIX_INT32: \ + FLEX128_UNPACK_CONVERT_SIGNED(int32_t, s, d); \ + break; \ + case PMIX_UINT: \ + case PMIX_UINT32: \ + FLEX128_UNPACK_CONVERT_UNSIGNED(uint32_t, s, d); \ + break; \ + case PMIX_INT64: \ + FLEX128_UNPACK_CONVERT_SIGNED(int64_t, s, d); \ + break; \ + case PMIX_SIZE: \ + FLEX128_UNPACK_CONVERT_UNSIGNED(size_t, s, d); \ + break; \ + case PMIX_UINT64: \ + FLEX128_UNPACK_CONVERT_UNSIGNED(uint64_t, s, d); \ + break; \ + default: \ + (r) = PMIX_ERR_BAD_PARAM; \ + } \ +} while(0) + +static pmix_status_t flex128_init(void); + +static void flex128_finalize(void); + +static pmix_status_t flex128_get_max_size(pmix_data_type_t type, size_t *size); + +static pmix_status_t flex128_encode_int(pmix_data_type_t type, void *src, + void *dst, size_t *size); + +static pmix_status_t flex128_decode_int(pmix_data_type_t type, void *src, + size_t src_len, void *dest, + size_t *dst_size); + +static size_t flex_pack_integer(size_t val, + uint8_t out_buf[FLEX_BASE7_MAX_BUF_SIZE]); + +static size_t flex_unpack_integer(const uint8_t in_buf[], size_t buf_size, + size_t *out_val, size_t *out_val_size); + +pmix_psquash_base_module_t pmix_flex128_module = { + .name = "flex128", + .int_type_is_encoded = true, + .init = flex128_init, + .finalize = flex128_finalize, + .get_max_size = flex128_get_max_size, + .encode_int = flex128_encode_int, + .decode_int = flex128_decode_int +}; + + +static pmix_status_t flex128_init(void) +{ + pmix_output_verbose(2, pmix_globals.debug_output, + "psquash: flex128 init"); + return PMIX_SUCCESS; +} + +static void flex128_finalize(void) +{ + pmix_output_verbose(2, pmix_globals.debug_output, + "psquash: flex128 finalize"); +} + +static pmix_status_t flex128_get_max_size(pmix_data_type_t type, size_t *size) + { + pmix_status_t rc; + PMIX_SQUASH_TYPE_SIZEOF(rc, type, *size); + /* the size of the packed value can be 1B larger + * because of continuation flags */ + *size += 1; + return rc; +} + +static pmix_status_t flex128_encode_int(pmix_data_type_t type, void *src, + void *dst, size_t *size) +{ + pmix_status_t rc = PMIX_SUCCESS; + uint8_t tmp_buf[FLEX_BASE7_MAX_BUF_SIZE]; + uint64_t tmp; + + FLEX128_PACK_CONVERT(rc, type, (uint8_t*)src, tmp); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + *size = flex_pack_integer(tmp, tmp_buf); + memcpy(dst, tmp_buf, *size); + + return rc; +} + +static pmix_status_t flex128_decode_int(pmix_data_type_t type, void *src, + size_t src_len, void *dest, size_t *dst_size) +{ + pmix_status_t rc = PMIX_SUCCESS; + size_t tmp; + size_t val_size, unpack_val_size; + + PMIX_SQUASH_TYPE_SIZEOF(rc, type, val_size); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + *dst_size = flex_unpack_integer(src, src_len, &tmp, &unpack_val_size); + + if( val_size < unpack_val_size ) { // sanity check + rc = PMIX_ERR_UNPACK_FAILURE; + PMIX_ERROR_LOG(rc); + return rc; + } + FLEX128_UNPACK_CONVERT(rc, type, tmp, (uint8_t*)dest); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + + return rc; +} + +/* + * Typical representation of a number in computer systems is: + * A[0]*B^0 + A[1]*B^1 + A[2]*B^2 + ... + A[n]*B^n + * where B called a base and B == 256 (one byte) + * + * This encoding changes the default representation by introducing an additional + * bit per each byte to store a "continuation flag". So integers are now encoded + * with the same representation, but the base B = 128 and the remaning bit is + * used to indicate whether or not the next byte contains more bits of this value. + */ +static size_t flex_pack_integer(size_t val, + uint8_t out_buf[FLEX_BASE7_MAX_BUF_SIZE]) +{ + size_t tmp = val; + size_t idx = 0; + + do { + uint8_t val = tmp & FLEX_BASE7_MASK; + tmp >>= FLEX_BASE7_SHIFT; + if (PMIX_UNLIKELY(tmp)) { + val |= FLEX_BASE7_CONT_FLAG; + } + out_buf[idx++] = val; + } while(tmp && idx < SIZEOF_SIZE_T); + + /* If we have leftover (VERY unlikely) */ + if (PMIX_UNLIKELY(SIZEOF_SIZE_T == idx && tmp)) { + out_buf[idx++] = tmp; + } + + return idx; +} + +/* + * See a comment to `pmix_bfrops_pack_flex` for additional details. + */ +static size_t flex_unpack_integer(const uint8_t in_buf[], size_t buf_size, + size_t *out_val, size_t *out_val_size) +{ + size_t value = 0, shift = 0, shift_last = 0; + size_t idx = 0; + uint8_t val = 0, val_last = 0; + uint8_t hi_bit = 0; + size_t flex_size = buf_size; + + /* restrict the buf size to max flex size */ + if (buf_size > FLEX_BASE7_MAX_BUF_SIZE) { + flex_size = FLEX_BASE7_MAX_BUF_SIZE; + } + + do { + val = in_buf[idx++]; + val_last = val; + shift_last = shift; + value = value + (((uint64_t)val & FLEX_BASE7_MASK) << shift); + shift += FLEX_BASE7_SHIFT; + } while(PMIX_UNLIKELY((val & FLEX_BASE7_CONT_FLAG) && + (idx < (flex_size-1)))); + /* If we have leftover (VERY unlikely) */ + if (PMIX_UNLIKELY((flex_size-1) == idx && + (val & FLEX_BASE7_CONT_FLAG))) { + val = in_buf[idx++]; + val_last = val; + value = value + ((uint64_t)val << shift); + shift_last = shift; + } + /* compute the most significant bit of val */ + while (val_last != 0) { + val_last >>= 1; + hi_bit++; + } + /* compute the real val size */ + *out_val_size = (hi_bit + shift_last)/CHAR_BIT + + !!((hi_bit + shift_last) & (CHAR_BIT - 1)); + *out_val = value; + + return idx; +} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/psquash_flex128_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/psquash_flex128_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/psquash_flex128_component.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/psquash_flex128_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,67 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2019 IBM Corporation. All rights reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" + +#include "src/mca/base/pmix_mca_base_var.h" +#include "src/mca/psquash/psquash.h" +#include "psquash_flex128.h" + +static pmix_status_t component_open(void); +static pmix_status_t component_close(void); +static pmix_status_t component_query(pmix_mca_base_module_t **module, int *priority); + +/* + * Instantiate the public struct with all of our public information + * and pointers to our public functions in it + */ +pmix_psquash_base_component_t mca_psquash_flex128_component = { + .base = { + PMIX_PSQUASH_BASE_VERSION_1_0_0, + + /* Component name and version */ + .pmix_mca_component_name = "flex128", + PMIX_MCA_BASE_MAKE_VERSION(component, + PMIX_MAJOR_VERSION, + PMIX_MINOR_VERSION, + PMIX_RELEASE_VERSION), + + /* Component open and close functions */ + .pmix_mca_open_component = component_open, + .pmix_mca_close_component = component_close, + .pmix_mca_query_component = component_query, + }, + .data = { + /* The component is checkpoint ready */ + PMIX_MCA_BASE_METADATA_PARAM_CHECKPOINT + } +}; + + +static int component_open(void) +{ + return PMIX_SUCCESS; +} + + +static int component_query(pmix_mca_base_module_t **module, int *priority) +{ + *priority = 20; + *module = (pmix_mca_base_module_t *)&pmix_flex128_module; + return PMIX_SUCCESS; +} + + +static int component_close(void) +{ + return PMIX_SUCCESS; +} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/psquash_flex128.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/psquash_flex128.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/psquash_flex128.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/flex128/psquash_flex128.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2019 IBM Corporation. All rights reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef PMIX_NATIVE_H +#define PMIX_NATIVE_H + +#include "src/include/pmix_config.h" + + +#include "src/mca/psquash/psquash.h" + +BEGIN_C_DECLS + +/* the component must be visible data for the linker to find it */ +PMIX_EXPORT extern pmix_psquash_base_component_t mca_psquash_flex128_component; +extern pmix_psquash_base_module_t pmix_flex128_module; + +END_C_DECLS + +#endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,45 @@ +# -*- makefile -*- +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. +# Copyright (c) 2013-2016 Intel, Inc. All rights reserved +# Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2019 IBM Corporation. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +AM_CPPFLAGS = $(LTDLINCL) + +# main library setup +noinst_LTLIBRARIES = libmca_psquash.la +libmca_psquash_la_SOURCES = + +# local files +headers = psquash.h +sources = + +# Conditionally install the header files +if WANT_INSTALL_HEADERS +pmixdir = $(pmixincludedir)/$(subdir) +nobase_pmix_HEADERS = $(headers) +endif + +include base/Makefile.include + +libmca_psquash_la_SOURCES += $(headers) $(sources) + +distclean-local: + rm -f base/static-components.h diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,960 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# -*- makefile -*- +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. +# Copyright (c) 2013-2016 Intel, Inc. All rights reserved +# Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2019 IBM Corporation. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# -*- makefile -*- +# +# Copyright (c) 2019 IBM Corporation. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# This makefile.am does not stand on its own - it is included from +# src/Makefile.am + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = src/mca/psquash +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/pmix.m4 \ + $(top_srcdir)/config/pmix_check_attributes.m4 \ + $(top_srcdir)/config/pmix_check_broken_qsort.m4 \ + $(top_srcdir)/config/pmix_check_compiler_version.m4 \ + $(top_srcdir)/config/pmix_check_icc.m4 \ + $(top_srcdir)/config/pmix_check_lock.m4 \ + $(top_srcdir)/config/pmix_check_os_flavors.m4 \ + $(top_srcdir)/config/pmix_check_package.m4 \ + $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ + $(top_srcdir)/config/pmix_check_vendor.m4 \ + $(top_srcdir)/config/pmix_check_visibility.m4 \ + $(top_srcdir)/config/pmix_check_withdir.m4 \ + $(top_srcdir)/config/pmix_config_asm.m4 \ + $(top_srcdir)/config/pmix_config_pthreads.m4 \ + $(top_srcdir)/config/pmix_config_subdir.m4 \ + $(top_srcdir)/config/pmix_config_subdir_args.m4 \ + $(top_srcdir)/config/pmix_config_threads.m4 \ + $(top_srcdir)/config/pmix_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/pmix_functions.m4 \ + $(top_srcdir)/config/pmix_load_platform.m4 \ + $(top_srcdir)/config/pmix_mca.m4 \ + $(top_srcdir)/config/pmix_search_libs.m4 \ + $(top_srcdir)/config/pmix_set_mca_prefix.m4 \ + $(top_srcdir)/config/pmix_setup_cc.m4 \ + $(top_srcdir)/config/pmix_setup_cli.m4 \ + $(top_srcdir)/config/pmix_setup_hwloc.m4 \ + $(top_srcdir)/config/pmix_setup_libev.m4 \ + $(top_srcdir)/config/pmix_setup_libevent.m4 \ + $(top_srcdir)/config/pmix_setup_zlib.m4 \ + $(top_srcdir)/config/pmix_summary.m4 \ + $(top_srcdir)/config/pmix_try_assemble.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/src/mca/pdl/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/configure.m4 \ + $(top_srcdir)/src/mca/common/dstore/configure.m4 \ + $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ + $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ + $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ + $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ + $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/src/mca/pif/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pif/linux_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pif/posix_ipv4/configure.m4 \ + $(top_srcdir)/src/mca/pif/solaris_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ + $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ + $(top_srcdir)/src/mca/psec/munge/configure.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__nobase_pmix_HEADERS_DIST) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/pmix_config.h \ + $(top_builddir)/include/pmix_common.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libmca_psquash_la_LIBADD = +am__objects_1 = +am__dirstamp = $(am__leading_dot)dirstamp +am__objects_2 = base/psquash_base_frame.lo base/psquash_base_select.lo +am_libmca_psquash_la_OBJECTS = $(am__objects_1) $(am__objects_2) +libmca_psquash_la_OBJECTS = $(am_libmca_psquash_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/include -I$(top_builddir)/include +depcomp = $(SHELL) $(top_srcdir)/./config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libmca_psquash_la_SOURCES) +DIST_SOURCES = $(libmca_psquash_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__nobase_pmix_HEADERS_DIST = psquash.h base/base.h +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pmixdir)" +HEADERS = $(nobase_pmix_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(srcdir)/base/Makefile.include $(top_srcdir)/./config/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CC_FOR_BUILD = @CC_FOR_BUILD@ +CFLAGS = @CFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_pmix_FRAMEWORKS = @MCA_pmix_FRAMEWORKS@ +MCA_pmix_FRAMEWORKS_SUBDIRS = @MCA_pmix_FRAMEWORKS_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_pmix_FRAMEWORK_LIBS = @MCA_pmix_FRAMEWORK_LIBS@ +MCA_pmix_bfrops_ALL_COMPONENTS = @MCA_pmix_bfrops_ALL_COMPONENTS@ +MCA_pmix_bfrops_ALL_SUBDIRS = @MCA_pmix_bfrops_ALL_SUBDIRS@ +MCA_pmix_bfrops_DSO_COMPONENTS = @MCA_pmix_bfrops_DSO_COMPONENTS@ +MCA_pmix_bfrops_DSO_SUBDIRS = @MCA_pmix_bfrops_DSO_SUBDIRS@ +MCA_pmix_bfrops_STATIC_COMPONENTS = @MCA_pmix_bfrops_STATIC_COMPONENTS@ +MCA_pmix_bfrops_STATIC_LTLIBS = @MCA_pmix_bfrops_STATIC_LTLIBS@ +MCA_pmix_bfrops_STATIC_SUBDIRS = @MCA_pmix_bfrops_STATIC_SUBDIRS@ +MCA_pmix_common_ALL_COMPONENTS = @MCA_pmix_common_ALL_COMPONENTS@ +MCA_pmix_common_ALL_SUBDIRS = @MCA_pmix_common_ALL_SUBDIRS@ +MCA_pmix_common_DSO_COMPONENTS = @MCA_pmix_common_DSO_COMPONENTS@ +MCA_pmix_common_DSO_SUBDIRS = @MCA_pmix_common_DSO_SUBDIRS@ +MCA_pmix_common_STATIC_COMPONENTS = @MCA_pmix_common_STATIC_COMPONENTS@ +MCA_pmix_common_STATIC_LTLIBS = @MCA_pmix_common_STATIC_LTLIBS@ +MCA_pmix_common_STATIC_SUBDIRS = @MCA_pmix_common_STATIC_SUBDIRS@ +MCA_pmix_gds_ALL_COMPONENTS = @MCA_pmix_gds_ALL_COMPONENTS@ +MCA_pmix_gds_ALL_SUBDIRS = @MCA_pmix_gds_ALL_SUBDIRS@ +MCA_pmix_gds_DSO_COMPONENTS = @MCA_pmix_gds_DSO_COMPONENTS@ +MCA_pmix_gds_DSO_SUBDIRS = @MCA_pmix_gds_DSO_SUBDIRS@ +MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ +MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ +MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ +MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ +MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ +MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ +MCA_pmix_pdl_DSO_SUBDIRS = @MCA_pmix_pdl_DSO_SUBDIRS@ +MCA_pmix_pdl_STATIC_COMPONENTS = @MCA_pmix_pdl_STATIC_COMPONENTS@ +MCA_pmix_pdl_STATIC_LTLIBS = @MCA_pmix_pdl_STATIC_LTLIBS@ +MCA_pmix_pdl_STATIC_SUBDIRS = @MCA_pmix_pdl_STATIC_SUBDIRS@ +MCA_pmix_pif_ALL_COMPONENTS = @MCA_pmix_pif_ALL_COMPONENTS@ +MCA_pmix_pif_ALL_SUBDIRS = @MCA_pmix_pif_ALL_SUBDIRS@ +MCA_pmix_pif_DSO_COMPONENTS = @MCA_pmix_pif_DSO_COMPONENTS@ +MCA_pmix_pif_DSO_SUBDIRS = @MCA_pmix_pif_DSO_SUBDIRS@ +MCA_pmix_pif_STATIC_COMPONENTS = @MCA_pmix_pif_STATIC_COMPONENTS@ +MCA_pmix_pif_STATIC_LTLIBS = @MCA_pmix_pif_STATIC_LTLIBS@ +MCA_pmix_pif_STATIC_SUBDIRS = @MCA_pmix_pif_STATIC_SUBDIRS@ +MCA_pmix_pinstalldirs_ALL_COMPONENTS = @MCA_pmix_pinstalldirs_ALL_COMPONENTS@ +MCA_pmix_pinstalldirs_ALL_SUBDIRS = @MCA_pmix_pinstalldirs_ALL_SUBDIRS@ +MCA_pmix_pinstalldirs_DSO_COMPONENTS = @MCA_pmix_pinstalldirs_DSO_COMPONENTS@ +MCA_pmix_pinstalldirs_DSO_SUBDIRS = @MCA_pmix_pinstalldirs_DSO_SUBDIRS@ +MCA_pmix_pinstalldirs_STATIC_COMPONENTS = @MCA_pmix_pinstalldirs_STATIC_COMPONENTS@ +MCA_pmix_pinstalldirs_STATIC_LTLIBS = @MCA_pmix_pinstalldirs_STATIC_LTLIBS@ +MCA_pmix_pinstalldirs_STATIC_SUBDIRS = @MCA_pmix_pinstalldirs_STATIC_SUBDIRS@ +MCA_pmix_plog_ALL_COMPONENTS = @MCA_pmix_plog_ALL_COMPONENTS@ +MCA_pmix_plog_ALL_SUBDIRS = @MCA_pmix_plog_ALL_SUBDIRS@ +MCA_pmix_plog_DSO_COMPONENTS = @MCA_pmix_plog_DSO_COMPONENTS@ +MCA_pmix_plog_DSO_SUBDIRS = @MCA_pmix_plog_DSO_SUBDIRS@ +MCA_pmix_plog_STATIC_COMPONENTS = @MCA_pmix_plog_STATIC_COMPONENTS@ +MCA_pmix_plog_STATIC_LTLIBS = @MCA_pmix_plog_STATIC_LTLIBS@ +MCA_pmix_plog_STATIC_SUBDIRS = @MCA_pmix_plog_STATIC_SUBDIRS@ +MCA_pmix_pnet_ALL_COMPONENTS = @MCA_pmix_pnet_ALL_COMPONENTS@ +MCA_pmix_pnet_ALL_SUBDIRS = @MCA_pmix_pnet_ALL_SUBDIRS@ +MCA_pmix_pnet_DSO_COMPONENTS = @MCA_pmix_pnet_DSO_COMPONENTS@ +MCA_pmix_pnet_DSO_SUBDIRS = @MCA_pmix_pnet_DSO_SUBDIRS@ +MCA_pmix_pnet_STATIC_COMPONENTS = @MCA_pmix_pnet_STATIC_COMPONENTS@ +MCA_pmix_pnet_STATIC_LTLIBS = @MCA_pmix_pnet_STATIC_LTLIBS@ +MCA_pmix_pnet_STATIC_SUBDIRS = @MCA_pmix_pnet_STATIC_SUBDIRS@ +MCA_pmix_preg_ALL_COMPONENTS = @MCA_pmix_preg_ALL_COMPONENTS@ +MCA_pmix_preg_ALL_SUBDIRS = @MCA_pmix_preg_ALL_SUBDIRS@ +MCA_pmix_preg_DSO_COMPONENTS = @MCA_pmix_preg_DSO_COMPONENTS@ +MCA_pmix_preg_DSO_SUBDIRS = @MCA_pmix_preg_DSO_SUBDIRS@ +MCA_pmix_preg_STATIC_COMPONENTS = @MCA_pmix_preg_STATIC_COMPONENTS@ +MCA_pmix_preg_STATIC_LTLIBS = @MCA_pmix_preg_STATIC_LTLIBS@ +MCA_pmix_preg_STATIC_SUBDIRS = @MCA_pmix_preg_STATIC_SUBDIRS@ +MCA_pmix_psec_ALL_COMPONENTS = @MCA_pmix_psec_ALL_COMPONENTS@ +MCA_pmix_psec_ALL_SUBDIRS = @MCA_pmix_psec_ALL_SUBDIRS@ +MCA_pmix_psec_DSO_COMPONENTS = @MCA_pmix_psec_DSO_COMPONENTS@ +MCA_pmix_psec_DSO_SUBDIRS = @MCA_pmix_psec_DSO_SUBDIRS@ +MCA_pmix_psec_STATIC_COMPONENTS = @MCA_pmix_psec_STATIC_COMPONENTS@ +MCA_pmix_psec_STATIC_LTLIBS = @MCA_pmix_psec_STATIC_LTLIBS@ +MCA_pmix_psec_STATIC_SUBDIRS = @MCA_pmix_psec_STATIC_SUBDIRS@ +MCA_pmix_psensor_ALL_COMPONENTS = @MCA_pmix_psensor_ALL_COMPONENTS@ +MCA_pmix_psensor_ALL_SUBDIRS = @MCA_pmix_psensor_ALL_SUBDIRS@ +MCA_pmix_psensor_DSO_COMPONENTS = @MCA_pmix_psensor_DSO_COMPONENTS@ +MCA_pmix_psensor_DSO_SUBDIRS = @MCA_pmix_psensor_DSO_SUBDIRS@ +MCA_pmix_psensor_STATIC_COMPONENTS = @MCA_pmix_psensor_STATIC_COMPONENTS@ +MCA_pmix_psensor_STATIC_LTLIBS = @MCA_pmix_psensor_STATIC_LTLIBS@ +MCA_pmix_psensor_STATIC_SUBDIRS = @MCA_pmix_psensor_STATIC_SUBDIRS@ +MCA_pmix_pshmem_ALL_COMPONENTS = @MCA_pmix_pshmem_ALL_COMPONENTS@ +MCA_pmix_pshmem_ALL_SUBDIRS = @MCA_pmix_pshmem_ALL_SUBDIRS@ +MCA_pmix_pshmem_DSO_COMPONENTS = @MCA_pmix_pshmem_DSO_COMPONENTS@ +MCA_pmix_pshmem_DSO_SUBDIRS = @MCA_pmix_pshmem_DSO_SUBDIRS@ +MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ +MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ +MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ +MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ +MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ +MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ +MCA_pmix_ptl_DSO_SUBDIRS = @MCA_pmix_ptl_DSO_SUBDIRS@ +MCA_pmix_ptl_STATIC_COMPONENTS = @MCA_pmix_ptl_STATIC_COMPONENTS@ +MCA_pmix_ptl_STATIC_LTLIBS = @MCA_pmix_ptl_STATIC_LTLIBS@ +MCA_pmix_ptl_STATIC_SUBDIRS = @MCA_pmix_ptl_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ +PERL = @PERL@ +PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ +PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ +PMIX_ASM_SUPPORT_64BIT = @PMIX_ASM_SUPPORT_64BIT@ +PMIX_ASM_TEXT = @PMIX_ASM_TEXT@ +PMIX_ASM_TYPE = @PMIX_ASM_TYPE@ +PMIX_ASSEMBLY_ARCH = @PMIX_ASSEMBLY_ARCH@ +PMIX_ASSEMBLY_BUILTIN = @PMIX_ASSEMBLY_BUILTIN@ +PMIX_ASSEMBLY_FORMAT = @PMIX_ASSEMBLY_FORMAT@ +PMIX_AS_GLOBAL = @PMIX_AS_GLOBAL@ +PMIX_AS_LABEL_SUFFIX = @PMIX_AS_LABEL_SUFFIX@ +PMIX_BUILT_TEST_PREFIX = @PMIX_BUILT_TEST_PREFIX@ +PMIX_CC_ABSOLUTE = @PMIX_CC_ABSOLUTE@ +PMIX_COMPONENT_LIBRARY_PATHS = @PMIX_COMPONENT_LIBRARY_PATHS@ +PMIX_CONFIGURE_CLI = @PMIX_CONFIGURE_CLI@ +PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ +PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ +PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ +PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ +PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ +PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ +PMIX_EXTRA_LIB = @PMIX_EXTRA_LIB@ +PMIX_EXTRA_LTLIB = @PMIX_EXTRA_LTLIB@ +PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ +PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ +PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ +PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ +PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ +PMIX_REPO_REV = @PMIX_REPO_REV@ +PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ +PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ +PMIX_VERSION = @PMIX_VERSION@ +PMIX_top_builddir = @PMIX_top_builddir@ +PMIX_top_srcdir = @PMIX_top_srcdir@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_common_dstore_so_version = @libmca_common_dstore_so_version@ +libpmi2_so_version = @libpmi2_so_version@ +libpmi_so_version = @libpmi_so_version@ +libpmix_so_version = @libpmix_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ +pdfdir = @pdfdir@ +pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ +pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ +pmix_pdl_plibltdl_LDFLAGS = @pmix_pdl_plibltdl_LDFLAGS@ +pmix_pdl_plibltdl_LIBS = @pmix_pdl_plibltdl_LIBS@ +pmixdatadir = @pmixdatadir@ +pmixincludedir = @pmixincludedir@ +pmixlibdir = @pmixlibdir@ +pmixmajor = @pmixmajor@ +pmixminor = @pmixminor@ +pmixnumeric = @pmixnumeric@ +pmixrelease = @pmixrelease@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +psec_munge_CPPFLAGS = @psec_munge_CPPFLAGS@ +psec_munge_LDFLAGS = @psec_munge_LDFLAGS@ +psec_munge_LIBS = @psec_munge_LIBS@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AM_CPPFLAGS = $(LTDLINCL) + +# main library setup +noinst_LTLIBRARIES = libmca_psquash.la +libmca_psquash_la_SOURCES = $(headers) $(sources) + +# local files +headers = psquash.h base/base.h +sources = base/psquash_base_frame.c base/psquash_base_select.c + +# Conditionally install the header files +@WANT_INSTALL_HEADERS_TRUE@pmixdir = $(pmixincludedir)/$(subdir) +@WANT_INSTALL_HEADERS_TRUE@nobase_pmix_HEADERS = $(headers) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/base/Makefile.include $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/mca/psquash/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/mca/psquash/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(srcdir)/base/Makefile.include $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } +base/$(am__dirstamp): + @$(MKDIR_P) base + @: > base/$(am__dirstamp) +base/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) base/$(DEPDIR) + @: > base/$(DEPDIR)/$(am__dirstamp) +base/psquash_base_frame.lo: base/$(am__dirstamp) \ + base/$(DEPDIR)/$(am__dirstamp) +base/psquash_base_select.lo: base/$(am__dirstamp) \ + base/$(DEPDIR)/$(am__dirstamp) + +libmca_psquash.la: $(libmca_psquash_la_OBJECTS) $(libmca_psquash_la_DEPENDENCIES) $(EXTRA_libmca_psquash_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libmca_psquash_la_OBJECTS) $(libmca_psquash_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f base/*.$(OBJEXT) + -rm -f base/*.lo + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@base/$(DEPDIR)/psquash_base_frame.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@base/$(DEPDIR)/psquash_base_select.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + -rm -rf base/.libs base/_libs +install-nobase_pmixHEADERS: $(nobase_pmix_HEADERS) + @$(NORMAL_INSTALL) + @list='$(nobase_pmix_HEADERS)'; test -n "$(pmixdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pmixdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pmixdir)" || exit 1; \ + fi; \ + $(am__nobase_list) | while read dir files; do \ + xfiles=; for file in $$files; do \ + if test -f "$$file"; then xfiles="$$xfiles $$file"; \ + else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \ + test -z "$$xfiles" || { \ + test "x$$dir" = x. || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(pmixdir)/$$dir'"; \ + $(MKDIR_P) "$(DESTDIR)$(pmixdir)/$$dir"; }; \ + echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(pmixdir)/$$dir'"; \ + $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(pmixdir)/$$dir" || exit $$?; }; \ + done + +uninstall-nobase_pmixHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(nobase_pmix_HEADERS)'; test -n "$(pmixdir)" || list=; \ + $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ + dir='$(DESTDIR)$(pmixdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pmixdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f base/$(DEPDIR)/$(am__dirstamp) + -rm -f base/$(am__dirstamp) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf base/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-local distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-nobase_pmixHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf base/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-nobase_pmixHEADERS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-local distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man \ + install-nobase_pmixHEADERS install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-nobase_pmixHEADERS + +.PRECIOUS: Makefile + + +distclean-local: + rm -f base/static-components.h + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,46 @@ +# -*- makefile -*- +# +# Copyright (c) 2019 IBM Corporation. All rights reserved. +# Copyright (c) 2019 Mellanox Technologies, Inc. +# All rights reserved. +# +# Copyright (c) 2019 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +headers = psquash_native.h +sources = \ + psquash_native_component.c \ + psquash_native.c + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). + +if MCA_BUILD_pmix_psquash_native_DSO +lib = +lib_sources = +component = mca_psquash_native.la +component_sources = $(headers) $(sources) +else +lib = libmca_psquash_native.la +lib_sources = $(headers) $(sources) +component = +component_sources = +endif + +mcacomponentdir = $(pmixlibdir) +mcacomponent_LTLIBRARIES = $(component) +mca_psquash_native_la_SOURCES = $(component_sources) +mca_psquash_native_la_LDFLAGS = -module -avoid-version +if NEED_LIBPMIX +mca_psquash_native_la_LIBADD = $(top_builddir)/src/libpmix.la +endif + +noinst_LTLIBRARIES = $(lib) +libmca_psquash_native_la_SOURCES = $(lib_sources) +libmca_psquash_native_la_LDFLAGS = -module -avoid-version diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,968 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# -*- makefile -*- +# +# Copyright (c) 2019 IBM Corporation. All rights reserved. +# Copyright (c) 2019 Mellanox Technologies, Inc. +# All rights reserved. +# +# Copyright (c) 2019 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = src/mca/psquash/native +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/pmix.m4 \ + $(top_srcdir)/config/pmix_check_attributes.m4 \ + $(top_srcdir)/config/pmix_check_broken_qsort.m4 \ + $(top_srcdir)/config/pmix_check_compiler_version.m4 \ + $(top_srcdir)/config/pmix_check_icc.m4 \ + $(top_srcdir)/config/pmix_check_lock.m4 \ + $(top_srcdir)/config/pmix_check_os_flavors.m4 \ + $(top_srcdir)/config/pmix_check_package.m4 \ + $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ + $(top_srcdir)/config/pmix_check_vendor.m4 \ + $(top_srcdir)/config/pmix_check_visibility.m4 \ + $(top_srcdir)/config/pmix_check_withdir.m4 \ + $(top_srcdir)/config/pmix_config_asm.m4 \ + $(top_srcdir)/config/pmix_config_pthreads.m4 \ + $(top_srcdir)/config/pmix_config_subdir.m4 \ + $(top_srcdir)/config/pmix_config_subdir_args.m4 \ + $(top_srcdir)/config/pmix_config_threads.m4 \ + $(top_srcdir)/config/pmix_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/pmix_functions.m4 \ + $(top_srcdir)/config/pmix_load_platform.m4 \ + $(top_srcdir)/config/pmix_mca.m4 \ + $(top_srcdir)/config/pmix_search_libs.m4 \ + $(top_srcdir)/config/pmix_set_mca_prefix.m4 \ + $(top_srcdir)/config/pmix_setup_cc.m4 \ + $(top_srcdir)/config/pmix_setup_cli.m4 \ + $(top_srcdir)/config/pmix_setup_hwloc.m4 \ + $(top_srcdir)/config/pmix_setup_libev.m4 \ + $(top_srcdir)/config/pmix_setup_libevent.m4 \ + $(top_srcdir)/config/pmix_setup_zlib.m4 \ + $(top_srcdir)/config/pmix_summary.m4 \ + $(top_srcdir)/config/pmix_try_assemble.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/src/mca/pdl/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/configure.m4 \ + $(top_srcdir)/src/mca/common/dstore/configure.m4 \ + $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ + $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ + $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ + $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ + $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/src/mca/pif/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pif/linux_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pif/posix_ipv4/configure.m4 \ + $(top_srcdir)/src/mca/pif/solaris_ipv6/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ + $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ + $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ + $(top_srcdir)/src/mca/psec/munge/configure.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/include/pmix_config.h \ + $(top_builddir)/include/pmix_common.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(mcacomponentdir)" +LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) +libmca_psquash_native_la_LIBADD = +am__libmca_psquash_native_la_SOURCES_DIST = psquash_native.h \ + psquash_native_component.c psquash_native.c +am__objects_1 = +am__objects_2 = psquash_native_component.lo psquash_native.lo +@MCA_BUILD_pmix_psquash_native_DSO_FALSE@am__objects_3 = \ +@MCA_BUILD_pmix_psquash_native_DSO_FALSE@ $(am__objects_1) \ +@MCA_BUILD_pmix_psquash_native_DSO_FALSE@ $(am__objects_2) +am_libmca_psquash_native_la_OBJECTS = $(am__objects_3) +libmca_psquash_native_la_OBJECTS = \ + $(am_libmca_psquash_native_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libmca_psquash_native_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libmca_psquash_native_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_pmix_psquash_native_DSO_FALSE@am_libmca_psquash_native_la_rpath = +@NEED_LIBPMIX_TRUE@mca_psquash_native_la_DEPENDENCIES = \ +@NEED_LIBPMIX_TRUE@ $(top_builddir)/src/libpmix.la +am__mca_psquash_native_la_SOURCES_DIST = psquash_native.h \ + psquash_native_component.c psquash_native.c +@MCA_BUILD_pmix_psquash_native_DSO_TRUE@am__objects_4 = \ +@MCA_BUILD_pmix_psquash_native_DSO_TRUE@ $(am__objects_1) \ +@MCA_BUILD_pmix_psquash_native_DSO_TRUE@ $(am__objects_2) +am_mca_psquash_native_la_OBJECTS = $(am__objects_4) +mca_psquash_native_la_OBJECTS = $(am_mca_psquash_native_la_OBJECTS) +mca_psquash_native_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(mca_psquash_native_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_pmix_psquash_native_DSO_TRUE@am_mca_psquash_native_la_rpath = \ +@MCA_BUILD_pmix_psquash_native_DSO_TRUE@ -rpath \ +@MCA_BUILD_pmix_psquash_native_DSO_TRUE@ $(mcacomponentdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/include -I$(top_builddir)/include +depcomp = $(SHELL) $(top_srcdir)/./config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libmca_psquash_native_la_SOURCES) \ + $(mca_psquash_native_la_SOURCES) +DIST_SOURCES = $(am__libmca_psquash_native_la_SOURCES_DIST) \ + $(am__mca_psquash_native_la_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/./config/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CC_FOR_BUILD = @CC_FOR_BUILD@ +CFLAGS = @CFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_pmix_FRAMEWORKS = @MCA_pmix_FRAMEWORKS@ +MCA_pmix_FRAMEWORKS_SUBDIRS = @MCA_pmix_FRAMEWORKS_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_pmix_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_pmix_FRAMEWORK_LIBS = @MCA_pmix_FRAMEWORK_LIBS@ +MCA_pmix_bfrops_ALL_COMPONENTS = @MCA_pmix_bfrops_ALL_COMPONENTS@ +MCA_pmix_bfrops_ALL_SUBDIRS = @MCA_pmix_bfrops_ALL_SUBDIRS@ +MCA_pmix_bfrops_DSO_COMPONENTS = @MCA_pmix_bfrops_DSO_COMPONENTS@ +MCA_pmix_bfrops_DSO_SUBDIRS = @MCA_pmix_bfrops_DSO_SUBDIRS@ +MCA_pmix_bfrops_STATIC_COMPONENTS = @MCA_pmix_bfrops_STATIC_COMPONENTS@ +MCA_pmix_bfrops_STATIC_LTLIBS = @MCA_pmix_bfrops_STATIC_LTLIBS@ +MCA_pmix_bfrops_STATIC_SUBDIRS = @MCA_pmix_bfrops_STATIC_SUBDIRS@ +MCA_pmix_common_ALL_COMPONENTS = @MCA_pmix_common_ALL_COMPONENTS@ +MCA_pmix_common_ALL_SUBDIRS = @MCA_pmix_common_ALL_SUBDIRS@ +MCA_pmix_common_DSO_COMPONENTS = @MCA_pmix_common_DSO_COMPONENTS@ +MCA_pmix_common_DSO_SUBDIRS = @MCA_pmix_common_DSO_SUBDIRS@ +MCA_pmix_common_STATIC_COMPONENTS = @MCA_pmix_common_STATIC_COMPONENTS@ +MCA_pmix_common_STATIC_LTLIBS = @MCA_pmix_common_STATIC_LTLIBS@ +MCA_pmix_common_STATIC_SUBDIRS = @MCA_pmix_common_STATIC_SUBDIRS@ +MCA_pmix_gds_ALL_COMPONENTS = @MCA_pmix_gds_ALL_COMPONENTS@ +MCA_pmix_gds_ALL_SUBDIRS = @MCA_pmix_gds_ALL_SUBDIRS@ +MCA_pmix_gds_DSO_COMPONENTS = @MCA_pmix_gds_DSO_COMPONENTS@ +MCA_pmix_gds_DSO_SUBDIRS = @MCA_pmix_gds_DSO_SUBDIRS@ +MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ +MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ +MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ +MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ +MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ +MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ +MCA_pmix_pdl_DSO_SUBDIRS = @MCA_pmix_pdl_DSO_SUBDIRS@ +MCA_pmix_pdl_STATIC_COMPONENTS = @MCA_pmix_pdl_STATIC_COMPONENTS@ +MCA_pmix_pdl_STATIC_LTLIBS = @MCA_pmix_pdl_STATIC_LTLIBS@ +MCA_pmix_pdl_STATIC_SUBDIRS = @MCA_pmix_pdl_STATIC_SUBDIRS@ +MCA_pmix_pif_ALL_COMPONENTS = @MCA_pmix_pif_ALL_COMPONENTS@ +MCA_pmix_pif_ALL_SUBDIRS = @MCA_pmix_pif_ALL_SUBDIRS@ +MCA_pmix_pif_DSO_COMPONENTS = @MCA_pmix_pif_DSO_COMPONENTS@ +MCA_pmix_pif_DSO_SUBDIRS = @MCA_pmix_pif_DSO_SUBDIRS@ +MCA_pmix_pif_STATIC_COMPONENTS = @MCA_pmix_pif_STATIC_COMPONENTS@ +MCA_pmix_pif_STATIC_LTLIBS = @MCA_pmix_pif_STATIC_LTLIBS@ +MCA_pmix_pif_STATIC_SUBDIRS = @MCA_pmix_pif_STATIC_SUBDIRS@ +MCA_pmix_pinstalldirs_ALL_COMPONENTS = @MCA_pmix_pinstalldirs_ALL_COMPONENTS@ +MCA_pmix_pinstalldirs_ALL_SUBDIRS = @MCA_pmix_pinstalldirs_ALL_SUBDIRS@ +MCA_pmix_pinstalldirs_DSO_COMPONENTS = @MCA_pmix_pinstalldirs_DSO_COMPONENTS@ +MCA_pmix_pinstalldirs_DSO_SUBDIRS = @MCA_pmix_pinstalldirs_DSO_SUBDIRS@ +MCA_pmix_pinstalldirs_STATIC_COMPONENTS = @MCA_pmix_pinstalldirs_STATIC_COMPONENTS@ +MCA_pmix_pinstalldirs_STATIC_LTLIBS = @MCA_pmix_pinstalldirs_STATIC_LTLIBS@ +MCA_pmix_pinstalldirs_STATIC_SUBDIRS = @MCA_pmix_pinstalldirs_STATIC_SUBDIRS@ +MCA_pmix_plog_ALL_COMPONENTS = @MCA_pmix_plog_ALL_COMPONENTS@ +MCA_pmix_plog_ALL_SUBDIRS = @MCA_pmix_plog_ALL_SUBDIRS@ +MCA_pmix_plog_DSO_COMPONENTS = @MCA_pmix_plog_DSO_COMPONENTS@ +MCA_pmix_plog_DSO_SUBDIRS = @MCA_pmix_plog_DSO_SUBDIRS@ +MCA_pmix_plog_STATIC_COMPONENTS = @MCA_pmix_plog_STATIC_COMPONENTS@ +MCA_pmix_plog_STATIC_LTLIBS = @MCA_pmix_plog_STATIC_LTLIBS@ +MCA_pmix_plog_STATIC_SUBDIRS = @MCA_pmix_plog_STATIC_SUBDIRS@ +MCA_pmix_pnet_ALL_COMPONENTS = @MCA_pmix_pnet_ALL_COMPONENTS@ +MCA_pmix_pnet_ALL_SUBDIRS = @MCA_pmix_pnet_ALL_SUBDIRS@ +MCA_pmix_pnet_DSO_COMPONENTS = @MCA_pmix_pnet_DSO_COMPONENTS@ +MCA_pmix_pnet_DSO_SUBDIRS = @MCA_pmix_pnet_DSO_SUBDIRS@ +MCA_pmix_pnet_STATIC_COMPONENTS = @MCA_pmix_pnet_STATIC_COMPONENTS@ +MCA_pmix_pnet_STATIC_LTLIBS = @MCA_pmix_pnet_STATIC_LTLIBS@ +MCA_pmix_pnet_STATIC_SUBDIRS = @MCA_pmix_pnet_STATIC_SUBDIRS@ +MCA_pmix_preg_ALL_COMPONENTS = @MCA_pmix_preg_ALL_COMPONENTS@ +MCA_pmix_preg_ALL_SUBDIRS = @MCA_pmix_preg_ALL_SUBDIRS@ +MCA_pmix_preg_DSO_COMPONENTS = @MCA_pmix_preg_DSO_COMPONENTS@ +MCA_pmix_preg_DSO_SUBDIRS = @MCA_pmix_preg_DSO_SUBDIRS@ +MCA_pmix_preg_STATIC_COMPONENTS = @MCA_pmix_preg_STATIC_COMPONENTS@ +MCA_pmix_preg_STATIC_LTLIBS = @MCA_pmix_preg_STATIC_LTLIBS@ +MCA_pmix_preg_STATIC_SUBDIRS = @MCA_pmix_preg_STATIC_SUBDIRS@ +MCA_pmix_psec_ALL_COMPONENTS = @MCA_pmix_psec_ALL_COMPONENTS@ +MCA_pmix_psec_ALL_SUBDIRS = @MCA_pmix_psec_ALL_SUBDIRS@ +MCA_pmix_psec_DSO_COMPONENTS = @MCA_pmix_psec_DSO_COMPONENTS@ +MCA_pmix_psec_DSO_SUBDIRS = @MCA_pmix_psec_DSO_SUBDIRS@ +MCA_pmix_psec_STATIC_COMPONENTS = @MCA_pmix_psec_STATIC_COMPONENTS@ +MCA_pmix_psec_STATIC_LTLIBS = @MCA_pmix_psec_STATIC_LTLIBS@ +MCA_pmix_psec_STATIC_SUBDIRS = @MCA_pmix_psec_STATIC_SUBDIRS@ +MCA_pmix_psensor_ALL_COMPONENTS = @MCA_pmix_psensor_ALL_COMPONENTS@ +MCA_pmix_psensor_ALL_SUBDIRS = @MCA_pmix_psensor_ALL_SUBDIRS@ +MCA_pmix_psensor_DSO_COMPONENTS = @MCA_pmix_psensor_DSO_COMPONENTS@ +MCA_pmix_psensor_DSO_SUBDIRS = @MCA_pmix_psensor_DSO_SUBDIRS@ +MCA_pmix_psensor_STATIC_COMPONENTS = @MCA_pmix_psensor_STATIC_COMPONENTS@ +MCA_pmix_psensor_STATIC_LTLIBS = @MCA_pmix_psensor_STATIC_LTLIBS@ +MCA_pmix_psensor_STATIC_SUBDIRS = @MCA_pmix_psensor_STATIC_SUBDIRS@ +MCA_pmix_pshmem_ALL_COMPONENTS = @MCA_pmix_pshmem_ALL_COMPONENTS@ +MCA_pmix_pshmem_ALL_SUBDIRS = @MCA_pmix_pshmem_ALL_SUBDIRS@ +MCA_pmix_pshmem_DSO_COMPONENTS = @MCA_pmix_pshmem_DSO_COMPONENTS@ +MCA_pmix_pshmem_DSO_SUBDIRS = @MCA_pmix_pshmem_DSO_SUBDIRS@ +MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ +MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ +MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ +MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ +MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ +MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ +MCA_pmix_ptl_DSO_SUBDIRS = @MCA_pmix_ptl_DSO_SUBDIRS@ +MCA_pmix_ptl_STATIC_COMPONENTS = @MCA_pmix_ptl_STATIC_COMPONENTS@ +MCA_pmix_ptl_STATIC_LTLIBS = @MCA_pmix_ptl_STATIC_LTLIBS@ +MCA_pmix_ptl_STATIC_SUBDIRS = @MCA_pmix_ptl_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ +PERL = @PERL@ +PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ +PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ +PMIX_ASM_SUPPORT_64BIT = @PMIX_ASM_SUPPORT_64BIT@ +PMIX_ASM_TEXT = @PMIX_ASM_TEXT@ +PMIX_ASM_TYPE = @PMIX_ASM_TYPE@ +PMIX_ASSEMBLY_ARCH = @PMIX_ASSEMBLY_ARCH@ +PMIX_ASSEMBLY_BUILTIN = @PMIX_ASSEMBLY_BUILTIN@ +PMIX_ASSEMBLY_FORMAT = @PMIX_ASSEMBLY_FORMAT@ +PMIX_AS_GLOBAL = @PMIX_AS_GLOBAL@ +PMIX_AS_LABEL_SUFFIX = @PMIX_AS_LABEL_SUFFIX@ +PMIX_BUILT_TEST_PREFIX = @PMIX_BUILT_TEST_PREFIX@ +PMIX_CC_ABSOLUTE = @PMIX_CC_ABSOLUTE@ +PMIX_COMPONENT_LIBRARY_PATHS = @PMIX_COMPONENT_LIBRARY_PATHS@ +PMIX_CONFIGURE_CLI = @PMIX_CONFIGURE_CLI@ +PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ +PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ +PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ +PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ +PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ +PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ +PMIX_EXTRA_LIB = @PMIX_EXTRA_LIB@ +PMIX_EXTRA_LTLIB = @PMIX_EXTRA_LTLIB@ +PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ +PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ +PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ +PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ +PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ +PMIX_REPO_REV = @PMIX_REPO_REV@ +PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ +PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ +PMIX_VERSION = @PMIX_VERSION@ +PMIX_top_builddir = @PMIX_top_builddir@ +PMIX_top_srcdir = @PMIX_top_srcdir@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_common_dstore_so_version = @libmca_common_dstore_so_version@ +libpmi2_so_version = @libpmi2_so_version@ +libpmi_so_version = @libpmi_so_version@ +libpmix_so_version = @libpmix_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ +pdfdir = @pdfdir@ +pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ +pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ +pmix_pdl_plibltdl_LDFLAGS = @pmix_pdl_plibltdl_LDFLAGS@ +pmix_pdl_plibltdl_LIBS = @pmix_pdl_plibltdl_LIBS@ +pmixdatadir = @pmixdatadir@ +pmixincludedir = @pmixincludedir@ +pmixlibdir = @pmixlibdir@ +pmixmajor = @pmixmajor@ +pmixminor = @pmixminor@ +pmixnumeric = @pmixnumeric@ +pmixrelease = @pmixrelease@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +psec_munge_CPPFLAGS = @psec_munge_CPPFLAGS@ +psec_munge_LDFLAGS = @psec_munge_LDFLAGS@ +psec_munge_LIBS = @psec_munge_LIBS@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +headers = psquash_native.h +sources = \ + psquash_native_component.c \ + psquash_native.c + +@MCA_BUILD_pmix_psquash_native_DSO_FALSE@lib = libmca_psquash_native.la + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). +@MCA_BUILD_pmix_psquash_native_DSO_TRUE@lib = +@MCA_BUILD_pmix_psquash_native_DSO_FALSE@lib_sources = $(headers) $(sources) +@MCA_BUILD_pmix_psquash_native_DSO_TRUE@lib_sources = +@MCA_BUILD_pmix_psquash_native_DSO_FALSE@component = +@MCA_BUILD_pmix_psquash_native_DSO_TRUE@component = mca_psquash_native.la +@MCA_BUILD_pmix_psquash_native_DSO_FALSE@component_sources = +@MCA_BUILD_pmix_psquash_native_DSO_TRUE@component_sources = $(headers) $(sources) +mcacomponentdir = $(pmixlibdir) +mcacomponent_LTLIBRARIES = $(component) +mca_psquash_native_la_SOURCES = $(component_sources) +mca_psquash_native_la_LDFLAGS = -module -avoid-version +@NEED_LIBPMIX_TRUE@mca_psquash_native_la_LIBADD = $(top_builddir)/src/libpmix.la +noinst_LTLIBRARIES = $(lib) +libmca_psquash_native_la_SOURCES = $(lib_sources) +libmca_psquash_native_la_LDFLAGS = -module -avoid-version +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/mca/psquash/native/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/mca/psquash/native/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-mcacomponentLTLIBRARIES: $(mcacomponent_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(mcacomponentdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(mcacomponentdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(mcacomponentdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(mcacomponentdir)"; \ + } + +uninstall-mcacomponentLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(mcacomponentdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(mcacomponentdir)/$$f"; \ + done + +clean-mcacomponentLTLIBRARIES: + -test -z "$(mcacomponent_LTLIBRARIES)" || rm -f $(mcacomponent_LTLIBRARIES) + @list='$(mcacomponent_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libmca_psquash_native.la: $(libmca_psquash_native_la_OBJECTS) $(libmca_psquash_native_la_DEPENDENCIES) $(EXTRA_libmca_psquash_native_la_DEPENDENCIES) + $(AM_V_CCLD)$(libmca_psquash_native_la_LINK) $(am_libmca_psquash_native_la_rpath) $(libmca_psquash_native_la_OBJECTS) $(libmca_psquash_native_la_LIBADD) $(LIBS) + +mca_psquash_native.la: $(mca_psquash_native_la_OBJECTS) $(mca_psquash_native_la_DEPENDENCIES) $(EXTRA_mca_psquash_native_la_DEPENDENCIES) + $(AM_V_CCLD)$(mca_psquash_native_la_LINK) $(am_mca_psquash_native_la_rpath) $(mca_psquash_native_la_OBJECTS) $(mca_psquash_native_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/psquash_native.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/psquash_native_component.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(mcacomponentdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-mcacomponentLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-mcacomponentLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-mcacomponentLTLIBRARIES install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-mcacomponentLTLIBRARIES + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/psquash_native.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/psquash_native.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/psquash_native.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/psquash_native.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,188 @@ +/* + * Copyright (c) 2019 IBM Corporation. All rights reserved. + * Copyright (c) 2019 Mellanox Technologies, Inc. + * All rights reserved. + * + * Copyright (c) 2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "src/include/pmix_config.h" + +#include "include/pmix_common.h" + +#include "src/include/pmix_socket_errno.h" +#include "src/include/pmix_globals.h" +#include "src/util/argv.h" +#include "src/util/error.h" +#include "src/util/output.h" + +#include +#ifdef HAVE_SYS_TYPES_H +#include +#endif + +#include "src/mca/psquash/base/base.h" +#include "psquash_native.h" + +static pmix_status_t native_init(void); + +static void native_finalize(void); + +static pmix_status_t native_get_max_size(pmix_data_type_t type, size_t *size); + +static pmix_status_t native_encode_int(pmix_data_type_t type, void *src, + void *dst, size_t *size); + +static pmix_status_t native_decode_int(pmix_data_type_t type, void *src, + size_t src_len, void *dest, + size_t *dst_size); + +pmix_psquash_base_module_t pmix_psquash_native_module = { + .name = "native", + .int_type_is_encoded = false, + .init = native_init, + .finalize = native_finalize, + .get_max_size = native_get_max_size, + .encode_int = native_encode_int, + .decode_int = native_decode_int +}; + +#define NATIVE_PACK_CONVERT(ret, type, val) \ +do { \ + (ret) = PMIX_SUCCESS; \ + switch(type) { \ + case PMIX_INT16: \ + case PMIX_UINT16:{ \ + uint16_t __tmp = (uint16_t)val; \ + val = pmix_htons(__tmp); \ + break; \ + } \ + case PMIX_INT: \ + case PMIX_UINT: \ + case PMIX_INT32: \ + case PMIX_UINT32:{ \ + uint32_t __tmp = (uint32_t)val; \ + val = htonl(__tmp); \ + break; \ + } \ + case PMIX_SIZE: \ + case PMIX_INT64: \ + case PMIX_UINT64:{ \ + uint64_t __tmp = (uint64_t)val; \ + val = pmix_hton64(__tmp); \ + break; \ + } \ + default: \ + (ret) = PMIX_ERR_BAD_PARAM; \ + } \ +} while (0) + +#define NATIVE_UNPACK_CONVERT(ret, type, val) \ +do { \ + (ret) = PMIX_SUCCESS; \ + switch(type) { \ + case PMIX_INT16: \ + case PMIX_UINT16:{ \ + uint16_t __tmp = (uint16_t)val; \ + val = pmix_ntohs(__tmp); \ + break; \ + } \ + case PMIX_INT: \ + case PMIX_UINT: \ + case PMIX_INT32: \ + case PMIX_UINT32:{ \ + uint32_t __tmp = (uint32_t)val; \ + val = ntohl(__tmp); \ + break; \ + } \ + case PMIX_INT64: \ + case PMIX_SIZE: \ + case PMIX_UINT64:{ \ + uint64_t __tmp = (uint64_t)val; \ + val = pmix_ntoh64(__tmp); \ + break; \ + } \ + default: \ + (ret) = PMIX_ERR_BAD_PARAM; \ + } \ +} while (0) + +static pmix_status_t native_init(void) +{ + pmix_output_verbose(2, pmix_globals.debug_output, + "psquash: native init"); + return PMIX_SUCCESS; +} + +static void native_finalize(void) +{ + pmix_output_verbose(2, pmix_globals.debug_output, + "psquash: native finalize"); +} + +static pmix_status_t native_get_max_size(pmix_data_type_t type, size_t *size) + +{ + pmix_status_t rc; + PMIX_SQUASH_TYPE_SIZEOF(rc, type, *size); + return rc; +} + +static pmix_status_t native_encode_int(pmix_data_type_t type, void *src, + void *dst, size_t *size) +{ + pmix_status_t rc; + uint64_t tmp = 0; + size_t val_size; + + PMIX_SQUASH_TYPE_SIZEOF(rc, type, val_size); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + memcpy(&tmp, src, val_size); + NATIVE_PACK_CONVERT(rc, type, tmp); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + memcpy(dst, &tmp, val_size); + *size = val_size; + + return PMIX_SUCCESS; +} + +static pmix_status_t native_decode_int(pmix_data_type_t type, void *src, + size_t src_len, void *dst, + size_t *dst_size) +{ + pmix_status_t rc; + uint64_t tmp = 0; + size_t val_size; + + PMIX_SQUASH_TYPE_SIZEOF(rc, type, val_size); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + /* sanity check */ + if (src_len != val_size) { + rc = PMIX_ERR_UNPACK_FAILURE; + } + + memcpy(&tmp, src, val_size); + NATIVE_UNPACK_CONVERT(rc, type, tmp); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + memcpy(dst, &tmp, val_size); + *dst_size = val_size; + + return PMIX_SUCCESS; +} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/psquash_native_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/psquash_native_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/psquash_native_component.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/psquash_native_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,70 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2019 IBM Corporation. All rights reserved. + * Copyright (c) 2019 Mellanox Technologies, Inc. + * All rights reserved + * + * Copyright (c) 2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" + +#include "src/mca/base/pmix_mca_base_var.h" +#include "src/mca/psquash/psquash.h" +#include "psquash_native.h" + +static pmix_status_t component_open(void); +static pmix_status_t component_close(void); +static pmix_status_t component_query(pmix_mca_base_module_t **module, int *priority); + +/* + * Instantiate the public struct with all of our public information + * and pointers to our public functions in it + */ +pmix_psquash_base_component_t mca_psquash_native_component = { + .base = { + PMIX_PSQUASH_BASE_VERSION_1_0_0, + + /* Component name and version */ + .pmix_mca_component_name = "native", + PMIX_MCA_BASE_MAKE_VERSION(component, + PMIX_MAJOR_VERSION, + PMIX_MINOR_VERSION, + PMIX_RELEASE_VERSION), + + /* Component open and close functions */ + .pmix_mca_open_component = component_open, + .pmix_mca_close_component = component_close, + .pmix_mca_query_component = component_query, + }, + .data = { + /* The component is checkpoint ready */ + PMIX_MCA_BASE_METADATA_PARAM_CHECKPOINT + } +}; + + +static int component_open(void) +{ + return PMIX_SUCCESS; +} + + +static int component_query(pmix_mca_base_module_t **module, int *priority) +{ + *priority = 5; + *module = (pmix_mca_base_module_t *)&pmix_psquash_native_module; + return PMIX_SUCCESS; +} + + +static int component_close(void) +{ + return PMIX_SUCCESS; +} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/psquash_native.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/psquash_native.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/psquash_native.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/native/psquash_native.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2019 IBM Corporation. All rights reserved. + * Copyright (c) 2019 Mellanox Technologies, Inc. + * All rights reserve + * + * Copyright (c) 2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef PMIX_NATIVE_H +#define PMIX_NATIVE_H + +#include "src/include/pmix_config.h" + + +#include "src/mca/psquash/psquash.h" + +BEGIN_C_DECLS + +/* the component must be visible data for the linker to find it */ +PMIX_EXPORT extern pmix_psquash_base_component_t mca_psquash_native_component; +extern pmix_psquash_base_module_t pmix_psquash_native_module; + +END_C_DECLS + +#endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/psquash.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/psquash.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/psquash.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/psquash/psquash.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,121 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2019 IBM Corporation. All rights reserved. + * Copyright (c) 2019 Mellanox Technologies, Inc. + * All rights reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +/** + * @file + * + * This interface is for the encoding/decoding of basic types and the + * compression/decompression of larger blobs of data (i.e., modex). + * + * Available plugins may be defined at runtime via the typical MCA parameter + * syntax. + */ + +#ifndef PMIX_PSQUASH_H +#define PMIX_PSQUASH_H + +#include "src/include/pmix_config.h" + +#include "src/mca/mca.h" +#include "src/mca/base/pmix_mca_base_var.h" +#include "src/mca/base/pmix_mca_base_framework.h" + +BEGIN_C_DECLS + +/****** MODULE DEFINITION ******/ + +/** + * Initialize the module + */ +typedef pmix_status_t (*pmix_psquash_base_module_init_fn_t)(void); + +/** + * Finalize the module + */ +typedef void (*pmix_psquash_base_module_finalize_fn_t)(void); + +/** + * Maximum size of the type. + * + * type - Type (PMIX_SIZE, PMIX_INT to PMIX_UINT64) + * size - size of the type + */ +typedef pmix_status_t (*pmix_psquash_get_max_size_fn_t) (pmix_data_type_t type, + size_t *size); + +/** + * Encode a basic integer type into a contiguous destination buffer. + * + * type - Type of the 'src' pointer (PMIX_SIZE, PMIX_INT to PMIX_UINT64) + * src - pointer to a single basic integer type + * dest - pointer to buffer to store data + * dst_len - pointer to the packed size of dest, in bytes + */ + +typedef pmix_status_t (*pmix_psquash_encode_int_fn_t) (pmix_data_type_t type, + void *src, void *dest, + size_t *dst_len); + +/** + * Decode a basic a contiguous destination buffer into a basic integer type. + * + * type - Type of the 'dest' pointer (PMIX_SIZE, PMIX_INT to PMIX_UINT64) + * src - pointer to buffer where data was stored + * src_len - length, in bytes, of the src buffer + * dest - pointer to a single basic integer type + * dst_len - pointer to the unpacked size of dest, in bytes + */ +typedef pmix_status_t (*pmix_psquash_decode_int_fn_t) (pmix_data_type_t type, + void *src, size_t src_len, + void *dest, size_t *dst_len); + +/** + * Base structure for a PSQUASH module + */ +typedef struct { + const char *name; + /* flag indicating if the type is encoded within the value, otherwise, it is necessary to further pack the type with the value. */ + bool int_type_is_encoded; + + /** init/finalize */ + pmix_psquash_base_module_init_fn_t init; + pmix_psquash_base_module_finalize_fn_t finalize; + + pmix_psquash_get_max_size_fn_t get_max_size; + + /** Integer compression */ + pmix_psquash_encode_int_fn_t encode_int; + pmix_psquash_decode_int_fn_t decode_int; +} pmix_psquash_base_module_t; + +/** + * Base structure for a PSQUASH component + */ +struct pmix_psquash_base_component_t { + pmix_mca_base_component_t base; + pmix_mca_base_component_data_t data; + int priority; +}; +typedef struct pmix_psquash_base_component_t pmix_psquash_base_component_t; + +PMIX_EXPORT extern pmix_psquash_base_module_t pmix_psquash; + +/* + * Macro for use in components that are of type psquash + */ +#define PMIX_PSQUASH_BASE_VERSION_1_0_0 \ + PMIX_MCA_BASE_VERSION_1_0_0("psquash", 1, 0, 0) + +END_C_DECLS + +#endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/base.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/base.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/base.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/base.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,9 +11,9 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -24,7 +24,7 @@ #ifndef PMIX_PTL_BASE_H_ #define PMIX_PTL_BASE_H_ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_SYS_TIME_H @@ -73,6 +73,7 @@ struct pmix_ptl_globals_t { pmix_list_t actives; bool initialized; + bool selected; pmix_list_t posted_recvs; // list of pmix_ptl_posted_recv_t pmix_list_t unexpected_msgs; int stop_thread[2]; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_connect.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_connect.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_connect.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_connect.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2015-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,7 +17,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include "include/pmix_stdint.h" #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_frame.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_frame.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_frame.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_frame.c 2022-05-29 09:51:40.000000000 +0000 @@ -11,9 +11,9 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. - * Copyright (c) 2015-2017 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -23,9 +23,9 @@ /** @file: * */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #ifdef HAVE_STRING_H #include @@ -64,6 +64,7 @@ static int pmix_ptl_register(pmix_mca_base_register_flag_t flags) { + (void)flags; pmix_mca_base_var_register("pmix", "ptl", "base", "max_msg_size", "Max size (in Mbytes) of a client/server msg", PMIX_MCA_BASE_VAR_TYPE_SIZE_T, NULL, 0, 0, @@ -80,6 +81,7 @@ return PMIX_SUCCESS; } pmix_ptl_globals.initialized = false; + pmix_ptl_globals.selected = false; /* ensure the listen thread has been shut down */ pmix_ptl_base_stop_listening(); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_listener.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_listener.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_listener.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_listener.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,8 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. - * Copyright (c) 2014-2016 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2014-2015 Artem Y. Polyakov . * All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. @@ -15,13 +15,12 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include -#include +#include "src/include/pmix_stdint.h" +#include "src/include/pmix_socket_errno.h" -#include +#include "include/pmix_server.h" #include "src/include/pmix_globals.h" #ifdef HAVE_STRING_H @@ -182,6 +181,7 @@ static void* listen_thread(void *obj) { + (void)obj; int rc, max, accepted_connections; socklen_t addrlen = sizeof(struct sockaddr_storage); pmix_pending_connection_t *pending_connection; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_select.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_select.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_select.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_select.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,9 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,8 +19,8 @@ * $HEADER$ */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include @@ -29,8 +31,6 @@ #include "src/mca/ptl/base/base.h" -static bool selected = false; - /* Function for selecting a prioritized list of components * from all those that are available. */ int pmix_ptl_base_select(void) @@ -42,11 +42,11 @@ int pri; bool inserted; - if (selected) { + if (pmix_ptl_globals.selected) { /* ensure we don't do this twice */ return PMIX_SUCCESS; } - selected = true; + pmix_ptl_globals.selected = true; /* Query all available components and ask if they have a module */ PMIX_LIST_FOREACH(cli, &pmix_ptl_base_framework.framework_components, pmix_mca_base_component_list_item_t) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_sendrecv.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_sendrecv.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_sendrecv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_sendrecv.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,9 +1,9 @@ /* - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2014 Artem Y. Polyakov . * All rights reserved. - * Copyright (c) 2015-2017 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. @@ -13,11 +13,10 @@ * * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include -#include +#include "src/include/pmix_stdint.h" +#include "src/include/pmix_socket_errno.h" #ifdef HAVE_STRING_H #include @@ -44,6 +43,7 @@ #include "src/client/pmix_client_ops.h" #include "src/server/pmix_server_ops.h" #include "src/util/error.h" +#include "src/util/name_fns.h" #include "src/util/show_help.h" #include "src/mca/psensor/psensor.h" @@ -51,16 +51,11 @@ static void _notify_complete(pmix_status_t status, void *cbdata) { + (void)status; pmix_event_chain_t *chain = (pmix_event_chain_t*)cbdata; PMIX_RELEASE(chain); } -static void lcfn(pmix_status_t status, void *cbdata) -{ - pmix_peer_t *peer = (pmix_peer_t*)cbdata; - PMIX_RELEASE(peer); -} - void pmix_ptl_base_lost_connection(pmix_peer_t *peer, pmix_status_t err) { pmix_server_trkr_t *trk, *tnxt; @@ -165,23 +160,11 @@ } } - /* remove this proc from the list of ranks for this nspace if it is - * still there - we must check for multiple copies as there will be - * one for each "clone" of this peer */ - PMIX_LIST_FOREACH_SAFE(info, pinfo, &(peer->nptr->ranks), pmix_rank_info_t) { - if (info == peer->info) { - pmix_list_remove_item(&(peer->nptr->ranks), &(peer->info->super)); - } - } /* reduce the number of local procs */ if (0 < peer->nptr->nlocalprocs) { --peer->nptr->nlocalprocs; } - /* remove this client from our array */ - pmix_pointer_array_set_item(&pmix_server_globals.clients, - peer->index, NULL); - /* purge any notifications cached for this client */ pmix_server_purge_events(peer, NULL); @@ -200,8 +183,14 @@ * an event. If not, then we do */ PMIX_REPORT_EVENT(err, peer, PMIX_RANGE_PROC_LOCAL, _notify_complete); } - /* now decrease the refcount - might actually free the object */ - PMIX_RELEASE(peer->info); + /* mark this rank as "dead" but do not remove it from ranks for this nspace if it is + * still there - we must check for multiple copies as there will be + * one for each "clone" of this peer */ + PMIX_LIST_FOREACH_SAFE(info, pinfo, &(peer->nptr->ranks), pmix_rank_info_t) { + if (info == peer->info) { + peer->finalized = true; + } + } /* be sure to let the host know that the tool or client * is gone - otherwise, it won't know to cleanup the @@ -210,19 +199,9 @@ pmix_strncpy(proc.nspace, peer->info->pname.nspace, PMIX_MAX_NSLEN); proc.rank = peer->info->pname.rank; /* now tell the host server */ - rc = pmix_host_server.client_finalized(&proc, peer->info->server_object, - lcfn, peer); - if (PMIX_SUCCESS == rc) { - /* we will release the peer when the server calls us back */ - peer->finalized = true; - return; - } + pmix_host_server.client_finalized(&proc, peer->info->server_object, + NULL, NULL); } - /* mark the peer as "gone" since a release doesn't guarantee - * that the peer object doesn't persist */ - peer->finalized = true; - /* Release peer info */ - PMIX_RELEASE(peer); } else { /* if I am a client, there is only * one connection we can have */ @@ -386,6 +365,8 @@ */ void pmix_ptl_base_send_handler(int sd, short flags, void *cbdata) { + (void)sd; + (void)flags; pmix_peer_t *peer = (pmix_peer_t*)cbdata; pmix_ptl_send_t *msg = peer->send_msg; pmix_status_t rc; @@ -394,16 +375,16 @@ PMIX_ACQUIRE_OBJECT(peer); pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, - "%s:%d ptl:base:send_handler SENDING TO PEER %s:%d tag %u with %s msg", - pmix_globals.myid.nspace, pmix_globals.myid.rank, - peer->info->pname.nspace, peer->info->pname.rank, + "%s ptl:base:send_handler SENDING TO PEER %s tag %u with %s msg", + PMIX_NAME_PRINT(&pmix_globals.myid), + PMIX_PNAME_PRINT(&peer->info->pname), (NULL == msg) ? UINT_MAX : ntohl(msg->hdr.tag), (NULL == msg) ? "NULL" : "NON-NULL"); if (NULL != msg) { pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, - "ptl:base:send_handler SENDING MSG TO %s:%d TAG %u", - peer->info->pname.nspace, peer->info->pname.rank, + "ptl:base:send_handler SENDING MSG TO %s TAG %u", + PMIX_PNAME_PRINT(&peer->info->pname), ntohl(msg->hdr.tag)); if (PMIX_SUCCESS == (rc = send_msg(peer->sd, msg))) { // message is complete @@ -422,8 +403,8 @@ return; } else { pmix_output_verbose(5, pmix_ptl_base_framework.framework_output, - "%s:%d SEND ERROR %s", - pmix_globals.myid.nspace, pmix_globals.myid.rank, + "%s SEND ERROR %s", + PMIX_NAME_PRINT(&pmix_globals.myid), PMIx_Error_string(rc)); // report the error pmix_event_del(&peer->send_event); @@ -464,6 +445,7 @@ void pmix_ptl_base_recv_handler(int sd, short flags, void *cbdata) { + (void)flags; pmix_status_t rc; pmix_peer_t *peer = (pmix_peer_t*)cbdata; pmix_ptl_recv_t *msg = NULL; @@ -475,8 +457,8 @@ PMIX_ACQUIRE_OBJECT(peer); pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, - "%s:%d ptl:base:recv:handler called with peer %s:%d", - pmix_globals.myid.nspace, pmix_globals.myid.rank, + "%s ptl:base:recv:handler called with peer %s:%u", + PMIX_NAME_PRINT(&pmix_globals.myid), (NULL == peer) ? "NULL" : peer->info->pname.nspace, (NULL == peer) ? PMIX_RANK_UNDEF : peer->info->pname.rank); @@ -514,14 +496,17 @@ peer->recv_msg->hdr.tag = ntohl(hdr.tag); peer->recv_msg->hdr.nbytes = ntohl(hdr.nbytes); pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, - "RECVD MSG FOR TAG %d SIZE %d", + "%s RECVD MSG FROM %s FOR TAG %d SIZE %d", + PMIX_NAME_PRINT(&pmix_globals.myid), + PMIX_PNAME_PRINT(&peer->info->pname), (int)peer->recv_msg->hdr.tag, (int)peer->recv_msg->hdr.nbytes); /* if this is a zero-byte message, then we are done */ if (0 == peer->recv_msg->hdr.nbytes) { pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, - "RECVD ZERO-BYTE MESSAGE FROM %s:%u for tag %d", - peer->info->pname.nspace, peer->info->pname.rank, + "%s RECVD ZERO-BYTE MESSAGE FROM %s for tag %d", + PMIX_NAME_PRINT(&pmix_globals.myid), + PMIX_PNAME_PRINT(&peer->info->pname), peer->recv_msg->hdr.tag); peer->recv_msg->data = NULL; // make sure peer->recv_msg->rdptr = NULL; @@ -558,8 +543,9 @@ * and let the caller know */ pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, - "ptl:base:msg_recv: peer %s:%d closed connection", - peer->nptr->nspace, peer->info->pname.rank); + "%s ptl:base:msg_recv: peer %s closed connection", + PMIX_NAME_PRINT(&pmix_globals.myid), + PMIX_PNAME_PRINT(&peer->info->pname)); goto err_close; } } @@ -626,6 +612,8 @@ void pmix_ptl_base_send(int sd, short args, void *cbdata) { + (void)sd; + (void)args; pmix_ptl_queue_t *queue = (pmix_ptl_queue_t*)cbdata; pmix_ptl_send_t *snd; @@ -682,6 +670,8 @@ void pmix_ptl_base_send_recv(int fd, short args, void *cbdata) { + (void)fd; + (void)args; pmix_ptl_sr_t *ms = (pmix_ptl_sr_t*)cbdata; pmix_ptl_posted_recv_t *req; pmix_ptl_send_t *snd; @@ -760,6 +750,8 @@ void pmix_ptl_base_process_msg(int fd, short flags, void *cbdata) { + (void)fd; + (void)flags; pmix_ptl_recv_t *msg = (pmix_ptl_recv_t*)cbdata; pmix_ptl_posted_recv_t *rcv; pmix_buffer_t buf; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_stubs.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_stubs.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_stubs.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/base/ptl_base_stubs.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2015-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,7 +17,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #ifdef HAVE_UNISTD_H @@ -170,6 +170,8 @@ static void post_recv(int fd, short args, void *cbdata) { + (void)fd; + (void)args; pmix_ptl_posted_recv_t *req = (pmix_ptl_posted_recv_t*)cbdata; pmix_ptl_recv_t *msg, *nmsg; pmix_buffer_t buf; @@ -207,6 +209,7 @@ pmix_ptl_cbfunc_t cbfunc, pmix_ptl_tag_t tag) { + (void)peer; pmix_ptl_posted_recv_t *req; req = PMIX_NEW(pmix_ptl_posted_recv_t); @@ -225,6 +228,8 @@ static void cancel_recv(int fd, short args, void *cbdata) { + (void)fd; + (void)args; pmix_ptl_posted_recv_t *req = (pmix_ptl_posted_recv_t*)cbdata; pmix_ptl_posted_recv_t *rcv; @@ -242,6 +247,7 @@ pmix_status_t pmix_ptl_base_cancel_recv(struct pmix_peer_t *peer, pmix_ptl_tag_t tag) { + (void)peer; pmix_ptl_posted_recv_t *req; req = PMIX_NEW(pmix_ptl_posted_recv_t); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -153,7 +153,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -183,6 +182,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -193,7 +193,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -390,6 +389,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -453,6 +459,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -475,6 +488,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -493,6 +508,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -501,9 +517,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -517,6 +533,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -562,6 +579,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -574,10 +595,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/ptl.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/ptl.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/ptl.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/ptl.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. @@ -31,9 +31,9 @@ #ifndef PMIX_PTL_H_ #define PMIX_PTL_H_ -#include +#include "src/include/pmix_config.h" -#include +#include "src/include/types.h" #include "src/mca/mca.h" #include "src/mca/base/pmix_mca_base_var.h" @@ -127,6 +127,7 @@ pmix_info_t info[], size_t ninfo); + /** * Base structure for a PTL module */ @@ -167,8 +168,8 @@ #define PMIX_PTL_CANCEL(r, p, t) \ (r) = (p)->nptr->compat.ptl->cancel((struct pmix_peer_t*)(p), t) -extern pmix_status_t pmix_ptl_base_connect_to_peer(struct pmix_peer_t* peer, - pmix_info_t info[], size_t ninfo); +PMIX_EXPORT extern pmix_status_t pmix_ptl_base_connect_to_peer(struct pmix_peer_t* peer, + pmix_info_t info[], size_t ninfo); /**** COMPONENT STRUCTURE DEFINITION ****/ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/ptl_types.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/ptl_types.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/ptl_types.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/ptl_types.h 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2007-2011 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -28,7 +28,7 @@ #ifndef PMIX_PTL_TYPES_H_ #define PMIX_PTL_TYPES_H_ -#include +#include "src/include/pmix_config.h" #include "src/include/types.h" #ifdef HAVE_UNISTD_H @@ -97,6 +97,8 @@ #define PMIX_PROC_CLIENT_TOOL (PMIX_PROC_TOOL | PMIX_PROC_CLIENT | PMIX_PROC_CLIENT_TOOL_ACT) #define PMIX_PROC_GATEWAY_ACT 0x40000000 #define PMIX_PROC_GATEWAY (PMIX_PROC_SERVER | PMIX_PROC_GATEWAY_ACT) +#define PMIX_PROC_SCHEDULER_ACT 0x80000000 +#define PMIX_PROC_SCHEDULER (PMIX_PROC_SERVER | PMIX_PROC_SCHEDULER_ACT) #define PMIX_SET_PEER_TYPE(a, b) \ (a)->proc_type.type |= (b) @@ -111,6 +113,7 @@ #define PMIX_PEER_IS_CLIENT_LAUNCHER(p) ((PMIX_PROC_LAUNCHER_ACT & (p)->proc_type.type) && (PMIX_PROC_CLIENT & (p)->proc_type.type)) #define PMIX_PEER_IS_CLIENT_TOOL(p) ((PMIX_PROC_CLIENT_TOOL_ACT & (p)->proc_type.type) && (PMIX_PROC_CLIENT & (p)->proc_type.type)) #define PMIX_PEER_IS_GATEWAY(p) (PMIX_PROC_GATEWAY_ACT & (p)->proc_type.type) +#define PMIX_PEER_IS_SCHEDULER(p) (PMIX_PROC_SCHEDULER_ACT & (p)->proc_type.type) #define PMIX_PROC_IS_CLIENT(p) (PMIX_PROC_CLIENT & (p)->type) #define PMIX_PROC_IS_SERVER(p) (PMIX_PROC_SERVER & (p)->type) @@ -119,6 +122,7 @@ #define PMIX_PROC_IS_CLIENT_LAUNCHER(p) ((PMIX_PROC_LAUNCHER_ACT & (p)->type) && (PMIX_PROC_CLIENT & (p)->type)) #define PMIX_PROC_IS_CLIENT_TOOL(p) ((PMIX_PROC_CLIENT_TOOL_ACT & (p)->type) && (PMIX_PROC_CLIENT & (p)->type)) #define PMIX_PROC_IS_GATEWAY(p) (PMIX_PROC_GATEWAY_ACT & (p)->type) +#define PMIX_PROC_IS_SCHEDULER(p) (PMIX_PROC_SCHEDULER_ACT & (p)->type) /* provide macros for setting the major, minor, and release values * just so people don't have to deal with the details of the struct */ @@ -180,7 +184,10 @@ typedef struct { int32_t pindex; pmix_ptl_tag_t tag; - size_t nbytes; + uint32_t nbytes; +#if SIZEOF_SIZE_T == 8 + uint32_t padding; +#endif } pmix_ptl_hdr_t; /* define the messaging cbfunc */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/tcp/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/tcp/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/tcp/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/tcp/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -126,7 +126,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -156,6 +155,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -166,7 +166,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -380,6 +379,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -443,6 +449,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -465,6 +478,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -483,6 +498,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -491,9 +507,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -507,6 +523,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -552,6 +569,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -564,10 +585,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/tcp/ptl_tcp.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/tcp/ptl_tcp.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/tcp/ptl_tcp.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/tcp/ptl_tcp.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2011-2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011-2013 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2018 IBM Corporation. All rights reserved. * $COPYRIGHT$ * @@ -23,7 +23,7 @@ * */ -#include +#include "src/include/pmix_config.h" #include "src/include/pmix_globals.h" #ifdef HAVE_FCNTL_H @@ -128,7 +128,7 @@ char *evar, **uri, *suri = NULL, *suri2 = NULL; char *filename, *nspace=NULL; pmix_rank_t rank = PMIX_RANK_WILDCARD; - char *p, *p2, *server_nspace = NULL, *rendfile = NULL; + char *p = NULL, *p2, *server_nspace = NULL, *rendfile = NULL; int sd, rc; size_t n; char myhost[PMIX_MAXHOSTNAMELEN] = {0}; @@ -269,14 +269,8 @@ continue; } /* otherwise, we don't know which one to use */ - free(server_nspace); - if (NULL != suri) { - free(suri); - } - if (NULL != rendfile) { - free(rendfile); - } - return PMIX_ERR_BAD_PARAM; + rc = PMIX_ERR_BAD_PARAM; + goto cleanup; } server_nspace = strdup(info[n].value.data.string); } else if (PMIX_CHECK_KEY(&info[n], PMIX_SERVER_URI)) { @@ -287,14 +281,8 @@ continue; } /* otherwise, we don't know which one to use */ - free(suri); - if (NULL != server_nspace) { - free(server_nspace); - } - if (NULL != rendfile) { - free(rendfile); - } - return PMIX_ERR_BAD_PARAM; + rc = PMIX_ERR_BAD_PARAM; + goto cleanup; } suri = strdup(info[n].value.data.string); } else if (PMIX_CHECK_KEY(&info[n], PMIX_CONNECT_RETRY_DELAY)) { @@ -303,11 +291,6 @@ mca_ptl_tcp_component.max_retries = info[n].value.data.uint32; } else if (PMIX_CHECK_KEY(&info[n], PMIX_RECONNECT_SERVER)) { reconnect = true; - } else if (PMIX_CHECK_KEY(&info[n], PMIX_LAUNCHER_RENDEZVOUS_FILE)) { - if (NULL != rendfile) { - free(rendfile); - } - rendfile = strdup(info[n].value.data.string); } else { /* need to pass this to server */ kv = PMIX_NEW(pmix_info_caddy_t); @@ -345,13 +328,16 @@ if (sysctl(mib, 2, &argmax, &size, NULL, 0) == -1) { fprintf(stderr, "sysctl() argmax failed\n"); - return -1; + rc = PMIX_ERR_NO_PERMISSIONS; + goto cleanup; } /* Allocate space for the arguments. */ procargs = (char *)malloc(argmax); - if (procargs == NULL) - return -1; + if (procargs == NULL) { + rc = -1; + goto cleanup; + } /* Make a sysctl() call to get the raw argument space of the process. */ mib[0] = CTL_KERN; @@ -362,7 +348,8 @@ if (sysctl(mib, 3, procargs, &size, NULL, 0) == -1) { fprintf(stderr, "Lacked permissions\n");; - return 0; + rc = PMIX_ERR_NO_PERMISSIONS; + goto cleanup; } memcpy(&nargs, procargs, sizeof(nargs)); @@ -435,10 +422,6 @@ gethostname(myhost, sizeof(myhost)-1); /* if we were given a URI via MCA param, then look no further */ if (NULL != suri) { - if (NULL != server_nspace) { - free(server_nspace); - server_nspace = NULL; - } /* if the string starts with "file:", then they are pointing * us to a file we need to read to get the URI itself */ if (0 == strncmp(suri, "file:", 5)) { @@ -447,14 +430,8 @@ nspace = NULL; rc = parse_uri_file(&suri[5], &suri2, &nspace, &rank); if (PMIX_SUCCESS != rc) { - free(suri); - if (NULL != rendfile) { - free(rendfile); - } - if (NULL != iptr) { - PMIX_INFO_FREE(iptr, niptr); - } - return PMIX_ERR_UNREACH; + rc = PMIX_ERR_UNREACH; + goto cleanup; } free(suri); suri = suri2; @@ -462,14 +439,8 @@ /* we need to extract the nspace/rank of the server from the string */ p = strchr(suri, ';'); if (NULL == p) { - free(suri); - if (NULL != rendfile) { - free(rendfile); - } - if (NULL != iptr) { - PMIX_INFO_FREE(iptr, niptr); - } - return PMIX_ERR_BAD_PARAM; + rc = PMIX_ERR_BAD_PARAM; + goto cleanup; } *p = '\0'; p++; @@ -479,14 +450,8 @@ p = strchr(suri, '.'); if (NULL == p) { free(suri2); - free(suri); - if (NULL != rendfile) { - free(rendfile); - } - if (NULL != iptr) { - PMIX_INFO_FREE(iptr, niptr); - } - return PMIX_ERR_BAD_PARAM; + rc = PMIX_ERR_BAD_PARAM; + goto cleanup; } *p = '\0'; p++; @@ -500,27 +465,9 @@ "ptl:tcp:tool attempt connect using given URI %s", suri); /* go ahead and try to connect */ if (PMIX_SUCCESS != (rc = try_connect(suri, &sd, iptr, niptr))) { - if (NULL != nspace) { - free(nspace); - } - free(suri); - if (NULL != rendfile) { - free(rendfile); - } - if (NULL != iptr) { - PMIX_INFO_FREE(iptr, niptr); - } - return rc; + goto cleanup; } /* cleanup */ - free(suri); - suri = NULL; - if (NULL != rendfile) { - free(rendfile); - } - if (NULL != iptr) { - PMIX_INFO_FREE(iptr, niptr); - } goto complete; } @@ -532,42 +479,27 @@ rendfile = NULL; if (PMIX_SUCCESS == rc) { pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, - "ptl:tcp:tool attempt connect to system server at %s", suri); + "ptl:tcp:tool attempt connect to rendezvous server at %s", suri); /* go ahead and try to connect */ if (PMIX_SUCCESS == try_connect(suri, &sd, iptr, niptr)) { /* don't free nspace - we will use it below */ - if (NULL != rendfile) { - free(rendfile); - } if (NULL != iptr) { PMIX_INFO_FREE(iptr, niptr); } goto complete; } } - /* cleanup */ - if (NULL != nspace) { - free(nspace); - } - if (NULL != suri) { - free(suri); - } - free(rendfile); - if (NULL != iptr) { - PMIX_INFO_FREE(iptr, niptr); - } /* since they gave us a specific rendfile and we couldn't * connect to it, return an error */ - return PMIX_ERR_UNREACH; + rc = PMIX_ERR_UNREACH; + goto cleanup; } /* if they asked for system-level first or only, we start there */ if (system_level || system_level_only) { if (0 > asprintf(&filename, "%s/pmix.sys.%s", mca_ptl_tcp_component.system_tmpdir, myhost)) { - if (NULL != iptr) { - PMIX_INFO_FREE(iptr, niptr); - } - return PMIX_ERR_NOMEM; + rc = PMIX_ERR_NOMEM; + goto cleanup; } pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, "ptl:tcp:tool looking for system server at %s", @@ -581,12 +513,10 @@ /* go ahead and try to connect */ if (PMIX_SUCCESS == try_connect(suri, &sd, iptr, niptr)) { /* don't free nspace - we will use it below */ - if (NULL != iptr) { - PMIX_INFO_FREE(iptr, niptr); - } goto complete; } free(nspace); + nspace = NULL; } } @@ -596,26 +526,15 @@ if (system_level_only) { pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, "ptl:tcp: connecting to system failed"); - if (NULL != suri) { - free(suri); - } - if (NULL != iptr) { - PMIX_INFO_FREE(iptr, niptr); - } - return PMIX_ERR_UNREACH; + rc = PMIX_ERR_UNREACH; + goto cleanup; } /* if they gave us a pid, then look for it */ if (0 != pid) { - if (NULL != server_nspace) { - free(server_nspace); - server_nspace = NULL; - } if (0 > asprintf(&filename, "pmix.%s.tool.%d", myhost, pid)) { - if (NULL != iptr) { - PMIX_INFO_FREE(iptr, niptr); - } - return PMIX_ERR_NOMEM; + rc = PMIX_ERR_NOMEM; + goto cleanup; } pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, "ptl:tcp:tool searching for given session server %s", @@ -627,28 +546,17 @@ if (PMIX_SUCCESS == rc) { goto complete; } - if (NULL != suri) { - free(suri); - } - if (NULL != nspace) { - free(nspace); - } - if (NULL != iptr) { - PMIX_INFO_FREE(iptr, niptr); - } /* since they gave us a specific pid and we couldn't * connect to it, return an error */ - return PMIX_ERR_UNREACH; + rc = PMIX_ERR_UNREACH; + goto cleanup; } /* if they gave us an nspace, then look for it */ if (NULL != server_nspace) { if (0 > asprintf(&filename, "pmix.%s.tool.%s", myhost, server_nspace)) { - free(server_nspace); - if (NULL != iptr) { - PMIX_INFO_FREE(iptr, niptr); - } - return PMIX_ERR_NOMEM; + rc = PMIX_ERR_NOMEM; + goto cleanup; } free(server_nspace); server_nspace = NULL; @@ -662,18 +570,10 @@ if (PMIX_SUCCESS == rc) { goto complete; } - if (NULL != suri) { - free(suri); - } - if (NULL != nspace) { - free(nspace); - } - if (NULL != iptr) { - PMIX_INFO_FREE(iptr, niptr); - } /* since they gave us a specific nspace and we couldn't * connect to it, return an error */ - return PMIX_ERR_UNREACH; + rc = PMIX_ERR_UNREACH; + goto cleanup; } /* they didn't give us a pid, so we will search to see what session-level @@ -682,13 +582,8 @@ * one session per user on a node */ if (0 > asprintf(&filename, "pmix.%s.tool", myhost)) { - if (NULL != suri) { - free(suri); - } - if (NULL != iptr) { - PMIX_INFO_FREE(iptr, niptr); - } - return PMIX_ERR_NOMEM; + rc = PMIX_ERR_NOMEM; + goto cleanup; } pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, "ptl:tcp:tool searching for session server %s", @@ -698,19 +593,8 @@ filename, iptr, niptr, &sd, &nspace, &rank, &suri); free(filename); if (PMIX_SUCCESS != rc) { - if (NULL != nspace){ - free(nspace); - } - if (NULL != suri) { - free(suri); - } - if (NULL != iptr) { - PMIX_INFO_FREE(iptr, niptr); - } - return PMIX_ERR_UNREACH; - } - if (NULL != iptr) { - PMIX_INFO_FREE(iptr, niptr); + rc = PMIX_ERR_UNREACH; + goto cleanup; } complete: @@ -719,14 +603,9 @@ /* do a final bozo check */ if (NULL == nspace || PMIX_RANK_WILDCARD == rank) { - if (NULL != nspace) { - free(nspace); - } - if (NULL != suri) { - free(suri); - } CLOSE_THE_SOCKET(sd); - return PMIX_ERR_UNREACH; + rc = PMIX_ERR_UNREACH; + goto cleanup; } /* mark the connection as made */ pmix_globals.connected = true; @@ -784,11 +663,23 @@ pmix_ptl_base_send_handler, pmix_client_globals.myserver); pmix_client_globals.myserver->send_ev_active = false; - free(nspace); + cleanup: + if (NULL != nspace) { + free(nspace); + } + if (NULL != iptr) { + PMIX_INFO_FREE(iptr, niptr); + } + if (NULL != rendfile) { + free(rendfile); + } if (NULL != suri) { free(suri); } - return PMIX_SUCCESS; + if (NULL != server_nspace) { + free(server_nspace); + } + return rc; } static pmix_status_t send_recv(struct pmix_peer_t *peer, @@ -852,45 +743,79 @@ int retries; int major, minor, release; - fp = fopen(filename, "r"); - if (NULL == fp) { - /* if we cannot open the file, then the server must not - * be configured to support tool connections, or this - * user isn't authorized to access it - or it may just - * not exist yet! Check for existence */ - if (0 != access(filename, R_OK)) { - if (ENOENT == errno && 0 < mca_ptl_tcp_component.wait_to_connect) { - /* the file does not exist, so give it - * a little time to see if the server - * is still starting up */ - retries = 0; - do { - ++retries; - pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, - "WAITING FOR CONNECTION FILE"); - PMIX_CONSTRUCT_LOCK(&lock); + /* if we cannot open the file, then the server must not + * be configured to support tool connections, or this + * user isn't authorized to access it - or it may just + * not exist yet! Check for existence */ + /* coverity[toctou] */ + if (0 == access(filename, R_OK)) { + goto process; + } else { + if (ENOENT == errno) { + /* the file does not exist, so give it + * a little time to see if the server + * is still starting up */ + retries = 0; + do { + ++retries; + pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, + "WAITING FOR CONNECTION FILE %s", filename); + PMIX_CONSTRUCT_LOCK(&lock); + if (0 < mca_ptl_tcp_component.wait_to_connect) { tv.tv_sec = mca_ptl_tcp_component.wait_to_connect; tv.tv_usec = 0; pmix_event_evtimer_set(pmix_globals.evbase, &ev, timeout, &lock); + PMIX_POST_OBJECT(&ev); pmix_event_evtimer_add(&ev, &tv); - PMIX_WAIT_THREAD(&lock); - PMIX_DESTRUCT_LOCK(&lock); - fp = fopen(filename, "r"); - if (NULL != fp) { - /* we found it! */ - goto process; - } - } while (retries < mca_ptl_tcp_component.max_retries); - /* otherwise, mark it as unreachable */ - } + } else { + tv.tv_sec = 0; + tv.tv_usec = 10000; // use 0.01 sec as default + pmix_event_evtimer_set(pmix_globals.evbase, &ev, + timeout, &lock); + PMIX_POST_OBJECT(&ev); + pmix_event_evtimer_add(&ev, &tv); + } + PMIX_WAIT_THREAD(&lock); + PMIX_DESTRUCT_LOCK(&lock); + /* coverity[toctou] */ + if (0 == access(filename, R_OK)) { + goto process; + } + } while (retries < mca_ptl_tcp_component.max_retries); + /* otherwise, mark it as unreachable */ } - return PMIX_ERR_UNREACH; } + return PMIX_ERR_UNREACH; process: - /* get the URI */ - srvr = pmix_getline(fp); + fp = fopen(filename, "r"); + if (NULL == fp) { + return PMIX_ERR_UNREACH; + } + /* get the URI - might seem crazy, but there is actually + * a race condition here where the server may have created + * the file but not yet finished writing into it. So give + * us a chance to get the required info */ + for (retries=0; retries < 3; retries++) { + srvr = pmix_getline(fp); + if (NULL != srvr) { + break; + } + fclose(fp); + tv.tv_sec = 0; + tv.tv_usec = 10000; // use 0.01 sec as default + pmix_event_evtimer_set(pmix_globals.evbase, &ev, + timeout, &lock); + PMIX_POST_OBJECT(&ev); + pmix_event_evtimer_add(&ev, &tv); + PMIX_WAIT_THREAD(&lock); + PMIX_DESTRUCT_LOCK(&lock); + fp = fopen(filename, "r"); + if (NULL == fp) { + return PMIX_ERR_UNREACH; + } + } if (NULL == srvr) { PMIX_ERROR_LOG(PMIX_ERR_FILE_READ_FAILURE); fclose(fp); @@ -1412,7 +1337,10 @@ if (NULL == pmix_client_globals.myserver->nptr) { pmix_client_globals.myserver->nptr = PMIX_NEW(pmix_namespace_t); } - pmix_ptl_base_recv_blocking(sd, (char*)nspace, PMIX_MAX_NSLEN+1); + rc = pmix_ptl_base_recv_blocking(sd, (char*)nspace, PMIX_MAX_NSLEN+1); + if (PMIX_SUCCESS != rc) { + return rc; + } if (NULL != pmix_client_globals.myserver->nptr->nspace) { free(pmix_client_globals.myserver->nptr->nspace); } @@ -1421,7 +1349,10 @@ free(pmix_client_globals.myserver->info->pname.nspace); } pmix_client_globals.myserver->info->pname.nspace = strdup(nspace); - pmix_ptl_base_recv_blocking(sd, (char*)&u32, sizeof(uint32_t)); + rc = pmix_ptl_base_recv_blocking(sd, (char*)&u32, sizeof(uint32_t)); + if (PMIX_SUCCESS != rc) { + return rc; + } pmix_client_globals.myserver->info->pname.rank = htonl(u32); pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, @@ -1462,6 +1393,31 @@ return PMIX_ERR_UNREACH; } } +#if defined(TCP_NODELAY) + int optval; + optval = 1; + if (setsockopt(sd, IPPROTO_TCP, TCP_NODELAY, (char *)&optval, sizeof(optval)) < 0) { + opal_backtrace_print(stderr, NULL, 1); + pmix_output_verbose(5, pmix_ptl_base_framework.framework_output, + "[%s:%d] setsockopt(TCP_NODELAY) failed: %s (%d)", + __FILE__, __LINE__, + strerror(pmix_socket_errno), + pmix_socket_errno); + } +#endif +#if defined(SO_NOSIGPIPE) + /* Some BSD flavors generate EPIPE when we write to a disconnected peer. We need + * the prevent this signal to be able to trap socket shutdown and cleanly release + * the endpoint. + */ + int optval2 = 1; + if (setsockopt(sd, SOL_SOCKET, SO_NOSIGPIPE, (char *)&optval2, sizeof(optval2)) < 0) { + pmix_output_verbose(5, pmix_ptl_base_framework.framework_output, + "[%s:%d] setsockopt(SO_NOSIGPIPE) failed: %s (%d)", + __FILE__, __LINE__, + strerror(pmix_socket_errno), pmix_socket_errno); + } +#endif return PMIX_SUCCESS; } @@ -1493,6 +1449,7 @@ continue; } newdir = pmix_os_path(false, dirname, dir_entry->d_name, NULL); + /* coverity[toctou] */ if (-1 == stat(newdir, &buf)) { free(newdir); continue; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/tcp/ptl_tcp_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/tcp/ptl_tcp_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/tcp/ptl_tcp_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/tcp/ptl_tcp_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,10 +12,10 @@ * All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * Copyright (c) 2017-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2018-2019 IBM Corporation. All rights reserved. + * Copyright (c) 2018-2020 IBM Corporation. All rights reserved. * Copyright (c) 2019 Mellanox Technologies, Inc. All rights reserved. * $COPYRIGHT$ * @@ -30,8 +30,8 @@ * entire components just to query their version and parameters. */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #ifdef HAVE_UNISTD_H #include @@ -53,18 +53,22 @@ #include #endif #include +#include #include "src/include/pmix_socket_errno.h" #include "src/util/argv.h" #include "src/util/error.h" #include "src/util/fd.h" #include "src/util/net.h" +#include "src/util/name_fns.h" +#include "src/util/os_dirpath.h" #include "src/util/os_path.h" #include "src/util/parse_options.h" #include "src/util/pif.h" #include "src/util/pmix_environ.h" #include "src/util/show_help.h" #include "src/util/strnlen.h" +#include "src/event/pmix_event.h" #include "src/common/pmix_iof.h" #include "src/server/pmix_server_ops.h" #include "src/mca/bfrops/base/base.h" @@ -133,6 +137,7 @@ static void connection_handler(int sd, short args, void *cbdata); static void cnct_cbfunc(pmix_status_t status, pmix_proc_t *proc, void *cbdata); +static void _check_cached_events(pmix_peer_t *peer); static int component_register(void) { @@ -245,6 +250,14 @@ } static char *urifile = NULL; +static bool created_rendezvous_file = false; +static bool created_session_tmpdir = false; +static bool created_system_tmpdir = false; +static bool created_system_filename = false; +static bool created_session_filename = false; +static bool created_nspace_filename = false; +static bool created_pid_filename = false; +static bool created_urifile = false; static pmix_status_t component_open(void) { @@ -296,35 +309,56 @@ pmix_status_t component_close(void) { if (NULL != mca_ptl_tcp_component.system_filename) { - unlink(mca_ptl_tcp_component.system_filename); + if (created_system_filename) { + remove(mca_ptl_tcp_component.system_filename); + } free(mca_ptl_tcp_component.system_filename); } if (NULL != mca_ptl_tcp_component.session_filename) { - unlink(mca_ptl_tcp_component.session_filename); + if (created_session_filename) { + remove(mca_ptl_tcp_component.session_filename); + } free(mca_ptl_tcp_component.session_filename); } if (NULL != mca_ptl_tcp_component.nspace_filename) { - unlink(mca_ptl_tcp_component.nspace_filename); + if (created_nspace_filename) { + remove(mca_ptl_tcp_component.nspace_filename); + } free(mca_ptl_tcp_component.nspace_filename); } if (NULL != mca_ptl_tcp_component.pid_filename) { - unlink(mca_ptl_tcp_component.pid_filename); + if (created_pid_filename) { + remove(mca_ptl_tcp_component.pid_filename); + } free(mca_ptl_tcp_component.pid_filename); } if (NULL != mca_ptl_tcp_component.rendezvous_filename) { - unlink(mca_ptl_tcp_component.rendezvous_filename); + if (created_rendezvous_file) { + remove(mca_ptl_tcp_component.rendezvous_filename); + } free(mca_ptl_tcp_component.rendezvous_filename); } if (NULL != urifile) { - /* remove the file */ - unlink(urifile); + if (created_urifile) { + /* remove the file */ + remove(urifile); + } free(urifile); urifile = NULL; } if (NULL != mca_ptl_tcp_component.session_tmpdir) { + /* if I am a tool or a server, then remove my session directory if empty */ + if (created_session_tmpdir) { + pmix_os_dirpath_destroy(mca_ptl_tcp_component.session_tmpdir, + true, NULL); + } free(mca_ptl_tcp_component.session_tmpdir); } if (NULL != mca_ptl_tcp_component.system_tmpdir) { + if (created_system_tmpdir) { + pmix_os_dirpath_destroy(mca_ptl_tcp_component.system_tmpdir, + true, NULL); + } free(mca_ptl_tcp_component.system_tmpdir); } return PMIX_SUCCESS; @@ -351,6 +385,14 @@ * tool connections - in that case, we will take a non-loopback * device by default, if one is available after filtering directives * + * If we are a tool and were give a rendezvous file, then we first + * check to see if it already exists. If it does, then this is the + * connection info we are to use. If it doesn't, then this is the + * name of the file we are to use to store our listener info. + * + * If we are a server and are given a rendezvous file, then that is + * is the name of the file we are to use to store our listener info. + * * NOTE: we accept MCA parameters, but info keys override them */ static pmix_status_t setup_listener(pmix_info_t info[], size_t ninfo, @@ -365,13 +407,17 @@ struct sockaddr_storage my_ss; int kindex; size_t n; - bool session_tool = false; bool system_tool = false; + bool tool_support = false; pmix_socklen_t addrlen; char *prefix, myhost[PMIX_MAXHOSTNAMELEN] = {0}; char myconnhost[PMIX_MAXHOSTNAMELEN] = {0}; int myport; pmix_kval_t *urikv; + FILE *fp; + pid_t mypid; + struct stat sbuf; + time_t mytime; pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, "ptl:tcp setup_listener"); @@ -424,13 +470,26 @@ free(mca_ptl_tcp_component.system_tmpdir); } mca_ptl_tcp_component.system_tmpdir = strdup(info[n].value.data.string); - } else if (0 == strcmp(info[n].key, PMIX_SERVER_TOOL_SUPPORT)) { - session_tool = PMIX_INFO_TRUE(&info[n]); } else if (PMIX_CHECK_KEY(&info[n], PMIX_SERVER_SYSTEM_SUPPORT)) { system_tool = PMIX_INFO_TRUE(&info[n]); + } else if (0 == strcmp(info[n].key, PMIX_SERVER_TOOL_SUPPORT)) { + tool_support = PMIX_INFO_TRUE(&info[n]); } else if (PMIX_PEER_IS_LAUNCHER(pmix_globals.mypeer) && PMIX_CHECK_KEY(&info[n], PMIX_LAUNCHER_RENDEZVOUS_FILE)) { + if (NULL != mca_ptl_tcp_component.rendezvous_filename) { + free(mca_ptl_tcp_component.rendezvous_filename); + } mca_ptl_tcp_component.rendezvous_filename = strdup(info[n].value.data.string); + } else if (PMIX_CHECK_KEY(&info[n], PMIX_CONNECT_MAX_RETRIES)) { + PMIX_VALUE_GET_NUMBER(rc, &info[n].value, mca_ptl_tcp_component.max_retries, int); + if (PMIX_SUCCESS != rc) { + return rc; + } + } else if (PMIX_CHECK_KEY(&info[n], PMIX_CONNECT_RETRY_DELAY)) { + PMIX_VALUE_GET_NUMBER(rc, &info[n].value, mca_ptl_tcp_component.wait_to_connect, int); + if (PMIX_SUCCESS != rc) { + return rc; + } } } } @@ -494,7 +553,7 @@ /* if one of the network specifications isn't parseable, then * error out as we can't do what was requested */ - if (PMIX_ERR_NETWORK_NOT_PARSEABLE == rc) { + if (PMIX_ERR_FABRIC_NOT_PARSEABLE == rc) { pmix_show_help("help-ptl-tcp.txt", "not-parseable", true); pmix_argv_free(interfaces); return PMIX_ERR_BAD_PARAM; @@ -689,6 +748,7 @@ /* add a flag that indicates we accept v2.1 protocols */ fprintf(fp, "v%s\n", PMIX_VERSION); fclose(fp); + created_urifile = true; } } @@ -731,13 +791,32 @@ mca_ptl_tcp_component.rendezvous_filename = NULL; goto sockerror; } + created_rendezvous_file = true; } nextstep: /* if we are going to support tools, then drop contact file(s) */ if (system_tool) { - FILE *fp; - + if (0 == stat(mca_ptl_tcp_component.system_tmpdir, &sbuf)) { + /* already exists - check if it is a directory */ + if (! S_ISDIR(sbuf.st_mode)) { + /* nope - we are hosed */ + pmix_output(0, "System tmpdir %s is not a directory\n", mca_ptl_tcp_component.system_tmpdir); + PMIX_ERROR_LOG(PMIX_ERR_FILE_OPEN_FAILURE); + CLOSE_THE_SOCKET(lt->socket); + goto sockerror; + } + } else { + /* need to create it */ + rc = mkdir(mca_ptl_tcp_component.system_tmpdir, 0755); + if (0 != rc) { + pmix_output(0, "System tmpdir %s could not be created\n", mca_ptl_tcp_component.system_tmpdir); + PMIX_ERROR_LOG(PMIX_ERR_FILE_OPEN_FAILURE); + CLOSE_THE_SOCKET(lt->socket); + goto sockerror; + } + created_system_tmpdir = true; + } if (0 > asprintf(&mca_ptl_tcp_component.system_filename, "%s/pmix.sys.%s", mca_ptl_tcp_component.system_tmpdir, myhost)) { CLOSE_THE_SOCKET(lt->socket); @@ -760,6 +839,13 @@ fprintf(fp, "%s\n", lt->uri); /* add a flag that indicates we accept v3.0 protocols */ fprintf(fp, "v%s\n", PMIX_VERSION); + /* output our pid */ + fprintf(fp, "%lu\n", (unsigned long)getpid()); + /* output our effective uid and gid */ + fprintf(fp, "%lu:%lu\n", (unsigned long)geteuid(), (unsigned long)getegid()); + /* output the time */ + mytime = time(NULL); + fprintf(fp, "%s\n", ctime(&mytime)); fclose(fp); /* set the file mode */ if (0 != chmod(mca_ptl_tcp_component.system_filename, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)) { @@ -769,45 +855,30 @@ mca_ptl_tcp_component.system_filename = NULL; goto sockerror; } + created_system_filename = true; } - if (session_tool) { - FILE *fp; - pid_t mypid; - /* first output to a std file */ - mypid = getpid(); - if (0 > asprintf(&mca_ptl_tcp_component.session_filename, "%s/pmix.%s.tool", - mca_ptl_tcp_component.session_tmpdir, myhost)) { - CLOSE_THE_SOCKET(lt->socket); - goto sockerror; - } - pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, - "WRITING TOOL FILE %s", - mca_ptl_tcp_component.session_filename); - fp = fopen(mca_ptl_tcp_component.session_filename, "w"); - if (NULL == fp) { - pmix_output(0, "Impossible to open the file %s in write mode\n", mca_ptl_tcp_component.session_filename); - PMIX_ERROR_LOG(PMIX_ERR_FILE_OPEN_FAILURE); - CLOSE_THE_SOCKET(lt->socket); - free(mca_ptl_tcp_component.session_filename); - mca_ptl_tcp_component.session_filename = NULL; - goto sockerror; - } - - /* output my URI */ - fprintf(fp, "%s\n", lt->uri); - /* add a flag that indicates we accept v2.1 protocols */ - fprintf(fp, "%s\n", PMIX_VERSION); - fclose(fp); - /* set the file mode */ - if (0 != chmod(mca_ptl_tcp_component.session_filename, S_IRUSR | S_IWUSR | S_IRGRP)) { - PMIX_ERROR_LOG(PMIX_ERR_FILE_OPEN_FAILURE); - CLOSE_THE_SOCKET(lt->socket); - free(mca_ptl_tcp_component.session_filename); - mca_ptl_tcp_component.session_filename = NULL; - goto sockerror; + if (tool_support) { + if (0 == stat(mca_ptl_tcp_component.session_tmpdir, &sbuf)) { + /* already exists - check if it is a directory */ + if (! S_ISDIR(sbuf.st_mode)) { + /* nope - we are hosed */ + pmix_output(0, "Session tmpdir %s is not a directory\n", mca_ptl_tcp_component.session_tmpdir); + PMIX_ERROR_LOG(PMIX_ERR_FILE_OPEN_FAILURE); + CLOSE_THE_SOCKET(lt->socket); + goto sockerror; + } + } else { + /* need to create it */ + rc = mkdir(mca_ptl_tcp_component.session_tmpdir, 0755); + if (0 != rc) { + pmix_output(0, "Session tmpdir %s could not be created\n", mca_ptl_tcp_component.session_tmpdir); + PMIX_ERROR_LOG(PMIX_ERR_FILE_OPEN_FAILURE); + CLOSE_THE_SOCKET(lt->socket); + goto sockerror; + } + created_session_tmpdir = true; } - /* now output to a file based on pid */ mypid = getpid(); if (0 > asprintf(&mca_ptl_tcp_component.pid_filename, "%s/pmix.%s.tool.%d", @@ -816,7 +887,7 @@ goto sockerror; } pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, - "WRITING TOOL FILE %s", + "WRITING PID TOOL FILE %s", mca_ptl_tcp_component.pid_filename); fp = fopen(mca_ptl_tcp_component.pid_filename, "w"); if (NULL == fp) { @@ -832,6 +903,13 @@ fprintf(fp, "%s\n", lt->uri); /* add a flag that indicates we accept v2.1 protocols */ fprintf(fp, "%s\n", PMIX_VERSION); + /* output our pid */ + fprintf(fp, "%lu\n", (unsigned long)getpid()); + /* output our effective uid and gid */ + fprintf(fp, "%lu:%lu\n", (unsigned long)geteuid(), (unsigned long)getegid()); + /* output the time */ + mytime = time(NULL); + fprintf(fp, "%s\n", ctime(&mytime)); fclose(fp); /* set the file mode */ if (0 != chmod(mca_ptl_tcp_component.pid_filename, S_IRUSR | S_IWUSR | S_IRGRP)) { @@ -841,6 +919,7 @@ mca_ptl_tcp_component.pid_filename = NULL; goto sockerror; } + created_pid_filename = true; /* now output it into a file based on my nspace */ @@ -850,7 +929,7 @@ goto sockerror; } pmix_output_verbose(2, pmix_ptl_base_framework.framework_output, - "WRITING TOOL FILE %s", + "WRITING NSPACE TOOL FILE %s", mca_ptl_tcp_component.nspace_filename); fp = fopen(mca_ptl_tcp_component.nspace_filename, "w"); if (NULL == fp) { @@ -866,6 +945,13 @@ fprintf(fp, "%s\n", lt->uri); /* add a flag that indicates we accept v2.1 protocols */ fprintf(fp, "%s\n", PMIX_VERSION); + /* output our pid */ + fprintf(fp, "%lu\n", (unsigned long)getpid()); + /* output our effective uid and gid */ + fprintf(fp, "%lu:%lu\n", (unsigned long)geteuid(), (unsigned long)getegid()); + /* output the time */ + mytime = time(NULL); + fprintf(fp, "%s\n", ctime(&mytime)); fclose(fp); /* set the file mode */ if (0 != chmod(mca_ptl_tcp_component.nspace_filename, S_IRUSR | S_IWUSR | S_IRGRP)) { @@ -875,6 +961,7 @@ mca_ptl_tcp_component.nspace_filename = NULL; goto sockerror; } + created_nspace_filename = true; } /* if we are a tool and connected, then register any rendezvous files for cleanup */ if (PMIX_PEER_IS_TOOL(pmix_globals.mypeer) && pmix_globals.connected) { @@ -1019,7 +1106,7 @@ char *msg, *mg, *version; char *sec, *bfrops, *gds; pmix_bfrop_buffer_type_t bftype; - char *nspace; + char *nspace = NULL; uint32_t len, u32; size_t cnt, msglen, n; pmix_namespace_t *nptr, *tmp; @@ -1749,6 +1836,10 @@ "pmix:server client %s:%u has connected on socket %d", peer->info->pname.nspace, peer->info->pname.rank, peer->sd); PMIX_RELEASE(pnd); + + /* check the cached events and update the client */ + _check_cached_events(peer); + return; error: @@ -1925,7 +2016,8 @@ PMIX_PROC_CREATE(req->procs, req->nprocs); PMIX_LOAD_PROCID(&req->procs[0], pmix_globals.myid.nspace, pmix_globals.myid.rank); req->channels = PMIX_FWD_STDOUT_CHANNEL | PMIX_FWD_STDERR_CHANNEL | PMIX_FWD_STDDIAG_CHANNEL; - req->refid = pmix_pointer_array_add(&pmix_globals.iof_requests, req); + req->remote_id = 0; // default ID for tool during init + req->local_id = pmix_pointer_array_add(&pmix_globals.iof_requests, req); /* validate the connection */ cred.bytes = pnd->cred; @@ -1982,6 +2074,9 @@ "pmix:server tool %s:%d has connected on socket %d", peer->info->pname.nspace, peer->info->pname.rank, peer->sd); + /* check the cached events and update the tool */ + _check_cached_events(peer); + done: PMIX_RELEASE(pnd); PMIX_RELEASE(cd); @@ -2005,8 +2100,112 @@ return; } cd->status = status; - pmix_strncpy(cd->proc.nspace, proc->nspace, PMIX_MAX_NSLEN); - cd->proc.rank = proc->rank; + PMIX_LOAD_PROCID(&cd->proc, proc->nspace, proc->rank); cd->cbdata = cbdata; PMIX_THREADSHIFT(cd, process_cbfunc); } + +static void _check_cached_events(pmix_peer_t *peer) +{ + pmix_notify_caddy_t *cd; + int i; + size_t n; + pmix_range_trkr_t rngtrk; + pmix_buffer_t *relay; + pmix_proc_t proc; + pmix_status_t ret; + pmix_cmd_t cmd = PMIX_NOTIFY_CMD; + bool matched, found; + + PMIX_LOAD_PROCID(&proc, peer->info->pname.nspace, peer->info->pname.rank); + + for (i=0; i < pmix_globals.max_events; i++) { + pmix_hotel_knock(&pmix_globals.notifications, i, (void**)&cd); + if (NULL == cd) { + continue; + } + /* check the range */ + if (NULL == cd->targets) { + rngtrk.procs = &cd->source; + rngtrk.nprocs = 1; + } else { + rngtrk.procs = cd->targets; + rngtrk.nprocs = cd->ntargets; + } + rngtrk.range = cd->range; + if (!pmix_notify_check_range(&rngtrk, &proc)) { + continue; + } + found = false; + /* if we were given specific targets, check if this is one */ + if (NULL != cd->targets) { + matched = false; + for (n=0; n < cd->ntargets; n++) { + if (PMIX_CHECK_PROCID(&proc, &cd->targets[n])) { + matched = true; + /* track the number of targets we have left to notify */ + --cd->nleft; + /* if this is the last one, then evict this event + * from the cache */ + if (0 == cd->nleft) { + pmix_hotel_checkout(&pmix_globals.notifications, cd->room); + found = true; // mark that we should release cd + } + break; + } + } + if (!matched) { + /* do not notify this one */ + continue; + } + } + + /* all matches - notify */ + relay = PMIX_NEW(pmix_buffer_t); + if (NULL == relay) { + /* nothing we can do */ + PMIX_ERROR_LOG(PMIX_ERR_NOMEM); + break; + } + /* pack the info data stored in the event */ + PMIX_BFROPS_PACK(ret, peer, relay, &cmd, 1, PMIX_COMMAND); + if (PMIX_SUCCESS != ret) { + PMIX_ERROR_LOG(ret); + PMIX_RELEASE(relay); + break; + } + PMIX_BFROPS_PACK(ret, peer, relay, &cd->status, 1, PMIX_STATUS); + if (PMIX_SUCCESS != ret) { + PMIX_ERROR_LOG(ret); + PMIX_RELEASE(relay); + break; + } + PMIX_BFROPS_PACK(ret, peer, relay, &cd->source, 1, PMIX_PROC); + if (PMIX_SUCCESS != ret) { + PMIX_RELEASE(relay); + PMIX_ERROR_LOG(ret); + break; + } + PMIX_BFROPS_PACK(ret, peer, relay, &cd->ninfo, 1, PMIX_SIZE); + if (PMIX_SUCCESS != ret) { + PMIX_ERROR_LOG(ret); + PMIX_RELEASE(relay); + break; + } + if (0 < cd->ninfo) { + PMIX_BFROPS_PACK(ret, peer, relay, cd->info, cd->ninfo, PMIX_INFO); + if (PMIX_SUCCESS != ret) { + PMIX_ERROR_LOG(ret); + PMIX_RELEASE(relay); + break; + } + } + PMIX_SERVER_QUEUE_REPLY(ret, peer, 0, relay); + if (PMIX_SUCCESS != ret) { + PMIX_RELEASE(relay); + } + if (found) { + PMIX_RELEASE(cd); + } + } +} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/usock/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/usock/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/usock/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/usock/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -126,7 +126,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -156,6 +155,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -166,7 +166,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -380,6 +379,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -443,6 +449,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -465,6 +478,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -483,6 +498,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -491,9 +507,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -507,6 +523,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -552,6 +569,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -564,10 +585,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/usock/ptl_usock.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/usock/ptl_usock.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/usock/ptl_usock.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/usock/ptl_usock.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2011-2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011-2013 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -24,8 +24,8 @@ * */ -#include -#include "pmix_common.h" +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #ifdef HAVE_FCNTL_H #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/usock/ptl_usock_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/usock/ptl_usock_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/usock/ptl_usock_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/mca/ptl/usock/ptl_usock_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * Copyright (c) 2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2018 IBM Corporation. All rights reserved. @@ -30,8 +30,8 @@ * entire components just to query their version and parameters. */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #ifdef HAVE_FCNTL_H #include @@ -154,8 +154,8 @@ if (PMIX_PEER_IS_TOOL(pmix_globals.mypeer)) { return PMIX_ERR_NOT_SUPPORTED; } - *module = (pmix_mca_base_module_t*)&pmix_ptl_usock_module; + *priority = mca_ptl_usock_component.super.priority; return PMIX_SUCCESS; } @@ -650,13 +650,9 @@ nptr->compat.type = bftype; /* set the gds module to match this peer */ - if (NULL != gds) { - PMIX_INFO_LOAD(&ginfo, PMIX_GDS_MODULE, gds, PMIX_STRING); - nptr->compat.gds = pmix_gds_base_assign_module(&ginfo, 1); - PMIX_INFO_DESTRUCT(&ginfo); - } else { - nptr->compat.gds = pmix_gds_base_assign_module(NULL, 0); - } + PMIX_INFO_LOAD(&ginfo, PMIX_GDS_MODULE, gds, PMIX_STRING); + nptr->compat.gds = pmix_gds_base_assign_module(&ginfo, 1); + PMIX_INFO_DESTRUCT(&ginfo); if (NULL == nptr->compat.gds) { free(msg); info->proc_cnt--; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_finalize.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_finalize.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_finalize.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_finalize.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,9 +12,11 @@ * Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2010-2015 Los Alamos National Security, LLC. * All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016-2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2021 Triad National Security, LLC. All rights reserved. + * Copyright (c) 2021 Nanook Consulting. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -24,7 +26,7 @@ /** @file **/ -#include +#include "src/include/pmix_config.h" #include "src/class/pmix_object.h" #include "src/client/pmix_client_ops.h" @@ -34,6 +36,7 @@ #include "src/mca/base/base.h" #include "src/mca/base/pmix_mca_base_var.h" #include "src/mca/bfrops/base/base.h" +#include "src/mca/pcompress/base/base.h" #include "src/mca/gds/base/base.h" #include "src/mca/pif/base/base.h" #include "src/mca/pinstalldirs/base/base.h" @@ -41,6 +44,7 @@ #include "src/mca/pnet/base/base.h" #include "src/mca/preg/base/base.h" #include "src/mca/psec/base/base.h" +#include "src/mca/psquash/base/base.h" #include "src/mca/ptl/base/base.h" #include PMIX_EVENT_HEADER @@ -80,6 +84,13 @@ /* close bfrops */ (void)pmix_mca_base_framework_close(&pmix_bfrops_base_framework); + /* close the psquash framework */ + pmix_psquash.finalize(); + pmix_mca_base_framework_close(&pmix_psquash_base_framework); + + /* close compress */ + (void)pmix_mca_base_framework_close(&pmix_pcompress_base_framework); + /* close GDS */ (void)pmix_mca_base_framework_close(&pmix_gds_base_framework); @@ -123,7 +134,10 @@ } PMIX_DESTRUCT(&pmix_globals.iof_requests); PMIX_LIST_DESTRUCT(&pmix_globals.stdin_targets); - free(pmix_globals.hostname); + if (NULL != pmix_globals.hostname) { + free(pmix_globals.hostname); + pmix_globals.hostname = NULL; + } PMIX_LIST_DESTRUCT(&pmix_globals.nspaces); /* now safe to release the event base */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_init.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_init.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_init.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_init.c 2022-05-29 09:51:40.000000000 +0000 @@ -15,7 +15,7 @@ * Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. * Copyright (c) 2010-2015 Los Alamos National Security, LLC. * All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -27,30 +27,28 @@ /** @file **/ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_UNISTD_H #include #endif -#include PMIX_EVENT_HEADER -#if ! PMIX_HAVE_LIBEV -#include PMIX_EVENT2_THREAD_HEADER -#endif - -#include +#include "src/include/pmix_globals.h" #include "src/util/output.h" +#include "src/util/pmix_environ.h" #include "src/util/show_help.h" #include "src/mca/base/base.h" #include "src/mca/base/pmix_mca_base_var.h" #include "src/mca/bfrops/base/base.h" +#include "src/mca/pcompress/base/base.h" #include "src/mca/gds/base/base.h" #include "src/mca/pif/base/base.h" #include "src/mca/pinstalldirs/base/base.h" #include "src/mca/plog/base/base.h" #include "src/mca/pnet/base/base.h" -#include "src/mca/psec/base/base.h" #include "src/mca/preg/base/base.h" +#include "src/mca/psec/base/base.h" +#include "src/mca/psquash/base/base.h" #include "src/mca/ptl/base/base.h" #include "src/client/pmix_client_ops.h" @@ -68,7 +66,10 @@ PMIX_EXPORT bool pmix_init_called = false; /* we have to export the pmix_globals object so * all plugins can access it. However, it is included - * in the pmix_rename.h file for external protection */ + * in the pmix_rename.h file for external protection. + * Initialize only those entries that are not covered + * by MCA params or are complex structures initialized + * below */ PMIX_EXPORT pmix_globals_t pmix_globals = { .init_cntr = 0, .mypeer = NULL, @@ -80,7 +81,8 @@ .debug_output = -1, .connected = false, .commits_pending = false, - .mygds = NULL + .mygds = NULL, + .pushstdin = false }; @@ -101,6 +103,7 @@ char *error = NULL, *evar; size_t n; char hostname[PMIX_MAXHOSTNAMELEN] = {0}; + char *gds = NULL; if( ++pmix_initialized != 1 ) { if( pmix_initialized < 1 ) { @@ -132,6 +135,11 @@ __FILE__, __LINE__, ret); return ret; } + if (PMIX_SUCCESS != (ret = pmix_pinstall_dirs_base_init(info, ninfo))) { + fprintf(stderr, "pmix_pinstalldirs_base_init() failed -- process will likely abort (%s:%d, returned %d instead of PMIX_SUCCESS)\n", + __FILE__, __LINE__, ret); + return ret; + } /* initialize the help system */ pmix_show_help_init(); @@ -160,7 +168,21 @@ goto return_error; } + /* if an external event base wasn't provide, create one */ + if (!pmix_globals.external_evbase) { + /* tell libevent that we need thread support */ + pmix_event_use_threads(); + + /* create an event base and progress thread for us */ + if (NULL == (pmix_globals.evbase = pmix_progress_thread_init(NULL))) { + error = "progress thread"; + ret = PMIX_ERROR; + goto return_error; + } + } + /* setup the globals structure */ + pmix_globals.pid = getpid(); memset(&pmix_globals.myid.nspace, 0, PMIX_MAX_NSLEN+1); pmix_globals.myid.rank = PMIX_RANK_INVALID; PMIX_CONSTRUCT(&pmix_globals.events, pmix_events_t); @@ -173,6 +195,13 @@ pmix_globals.evbase, pmix_globals.event_eviction_time, _notification_eviction_cbfunc); PMIX_CONSTRUCT(&pmix_globals.nspaces, pmix_list_t); + /* need to hold off checking the hotel init return code + * until after we construct all the globals so they can + * correct finalize */ + if (PMIX_SUCCESS != ret) { + error = "notification hotel init"; + goto return_error; + } /* if we were given a hostname in our environment, use it */ if (NULL != (evar = getenv("PMIX_HOSTNAME"))) { pmix_globals.hostname = strdup(evar); @@ -181,11 +210,6 @@ pmix_globals.hostname = strdup(hostname); } - if (PMIX_SUCCESS != ret) { - error = "notification hotel init"; - goto return_error; - } - /* and setup the iof request tracking list */ PMIX_CONSTRUCT(&pmix_globals.iof_requests, pmix_pointer_array_t); pmix_pointer_array_init(&pmix_globals.iof_requests, 128, INT_MAX, 128); @@ -282,6 +306,8 @@ if (PMIX_SUCCESS != ret) { goto return_error; } + } else if (PMIX_CHECK_KEY(&info[n], PMIX_GDS_MODULE)) { + gds = info[n].value.data.string; } } } @@ -290,6 +316,22 @@ * will be done by the individual init functions and at the * time of connection to that peer */ + if( PMIX_SUCCESS != (ret = pmix_mca_base_framework_open(&pmix_psquash_base_framework, 0)) ) { + error = "pmix_psquash_base_open"; + goto return_error; + } + + if( PMIX_SUCCESS != (ret = pmix_psquash_base_select()) ) { + error = "pmix_psquash_base_select"; + goto return_error; + } + + ret = pmix_psquash.init(); + if (PMIX_SUCCESS != ret) { + error = "psquash_init"; + goto return_error; + } + /* open the bfrops and select the active plugins */ if (PMIX_SUCCESS != (ret = pmix_mca_base_framework_open(&pmix_bfrops_base_framework, 0)) ) { error = "pmix_bfrops_base_open"; @@ -300,7 +342,21 @@ goto return_error; } + /* open and select the compress framework */ + if (PMIX_SUCCESS != (ret = pmix_mca_base_framework_open(&pmix_pcompress_base_framework, 0)) ) { + error = "pmix_pcompress_base_open"; + goto return_error; + } + if (PMIX_SUCCESS != (ret = pmix_compress_base_select()) ) { + error = "pmix_pcompress_base_select"; + goto return_error; + } + /* open the ptl and select the active plugins */ + if (NULL != (evar = getenv("PMIX_PTL_MODULE"))) { + /* convert to an MCA param, but don't overwrite something already there */ + pmix_setenv("PMIX_MCA_ptl", evar, false, &environ); + } if (PMIX_SUCCESS != (ret = pmix_mca_base_framework_open(&pmix_ptl_base_framework, 0)) ) { error = "pmix_ptl_base_open"; goto return_error; @@ -316,6 +372,10 @@ } /* open the psec and select the active plugins */ + if (NULL != (evar = getenv("PMIX_SECURITY_MODE"))) { + /* convert to an MCA param, but don't overwrite something already there */ + pmix_setenv("PMIX_MCA_psec", evar, false, &environ); + } if (PMIX_SUCCESS != (ret = pmix_mca_base_framework_open(&pmix_psec_base_framework, 0))) { error = "pmix_psec_base_open"; goto return_error; @@ -326,6 +386,12 @@ } /* open the gds and select the active plugins */ + if (NULL != gds) { + pmix_setenv("PMIX_MCA_gds", gds, true, &environ); + } else if (NULL != (evar = getenv("PMIX_GDS_MODULE"))) { + /* convert to an MCA param, but don't overwrite something already there */ + pmix_setenv("PMIX_MCA_gds", evar, false, &environ); + } if (PMIX_SUCCESS != (ret = pmix_mca_base_framework_open(&pmix_gds_base_framework, 0)) ) { error = "pmix_gds_base_open"; goto return_error; @@ -341,7 +407,7 @@ return ret; } - /* open the preg and select the active plugins */ + /* open the preg and select the active plugins - must come after pcompress! */ if (PMIX_SUCCESS != (ret = pmix_mca_base_framework_open(&pmix_preg_base_framework, 0)) ) { error = "pmix_preg_base_open"; goto return_error; @@ -361,15 +427,10 @@ goto return_error; } - /* if an external event base wasn't provide, create one */ if (!pmix_globals.external_evbase) { - /* tell libevent that we need thread support */ - pmix_event_use_threads(); - - /* create an event base and progress thread for us */ - if (NULL == (pmix_globals.evbase = pmix_progress_thread_init(NULL))) { - error = "progress thread"; - ret = PMIX_ERROR; + /* start progressing the event library */ + if (PMIX_SUCCESS != (ret = pmix_progress_thread_start(NULL))) { + error = "pmix_progress_thread_start"; goto return_error; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_params.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_params.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_params.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_params.c 2022-05-29 09:51:40.000000000 +0000 @@ -17,11 +17,12 @@ * Copyright (c) 2010-2014 Los Alamos National Security, LLC. * All rights reserved. * Copyright (c) 2014 Hochschule Esslingen. All rights reserved. - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2015-2018 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2016-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2020 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -31,7 +32,6 @@ #include "pmix_config.h" -#include "src/include/types.h" #include "src/mca/base/pmix_mca_base_var.h" #include "src/runtime/pmix_rte.h" #include "src/util/timings.h" @@ -206,6 +206,13 @@ PMIX_INFO_LVL_1, PMIX_MCA_BASE_VAR_SCOPE_ALL, &pmix_server_globals.base_verbose); + pmix_server_globals.fence_localonly_opt = true; + (void) pmix_mca_base_var_register ("pmix", "pmix", "server", "fence_localonly_opt", + "Optimize local-only fence opteration by eliminating the upcall to the RM (default: true)", + PMIX_MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0, + PMIX_INFO_LVL_1, PMIX_MCA_BASE_VAR_SCOPE_ALL, + &pmix_server_globals.fence_localonly_opt); + /* check for maximum number of pending output messages */ pmix_globals.output_limit = (size_t) INT_MAX; (void) pmix_mca_base_var_register("pmix", "iof", NULL, "output_limit", diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_progress_threads.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_progress_threads.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_progress_threads.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_progress_threads.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017-2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -12,7 +12,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_UNISTD_H #include @@ -266,7 +266,6 @@ pmix_event_base_t *pmix_progress_thread_init(const char *name) { pmix_progress_tracker_t *trk; - int rc; if (!inited) { PMIX_CONSTRUCT(&tracking, pmix_list_t); @@ -320,17 +319,45 @@ /* construct the thread object */ PMIX_CONSTRUCT(&trk->engine, pmix_thread_t); trk->engine_constructed = true; - if (PMIX_SUCCESS != (rc = start_progress_engine(trk))) { - PMIX_ERROR_LOG(rc); - PMIX_RELEASE(trk); - return NULL; - } pmix_list_append(&tracking, &trk->super); return trk->ev_base; } -int pmix_progress_thread_stop(const char *name) +pmix_status_t pmix_progress_thread_start(const char *name) +{ + pmix_progress_tracker_t *trk; + pmix_status_t rc; + + if (!inited) { + /* nothing we can do */ + return PMIX_ERR_NOT_FOUND; + } + + if (NULL == name) { + name = shared_thread_name; + } + + /* find the specified engine */ + PMIX_LIST_FOREACH(trk, &tracking, pmix_progress_tracker_t) { + if (0 == strcmp(name, trk->name)) { + /* If the progress thread is active, ignore the request */ + if (trk->ev_active) { + return PMIX_SUCCESS; + } + if (PMIX_SUCCESS != (rc = start_progress_engine(trk))) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE(trk); + } + return rc; + } + } + + return PMIX_ERR_NOT_FOUND; +} + + +pmix_status_t pmix_progress_thread_stop(const char *name) { pmix_progress_tracker_t *trk; @@ -367,7 +394,7 @@ return PMIX_ERR_NOT_FOUND; } -int pmix_progress_thread_finalize(const char *name) +pmix_status_t pmix_progress_thread_finalize(const char *name) { pmix_progress_tracker_t *trk; @@ -400,7 +427,7 @@ /* * Stop the progress thread, but don't delete the tracker (or event base) */ -int pmix_progress_thread_pause(const char *name) +pmix_status_t pmix_progress_thread_pause(const char *name) { pmix_progress_tracker_t *trk; @@ -442,7 +469,7 @@ } #endif -int pmix_progress_thread_resume(const char *name) +pmix_status_t pmix_progress_thread_resume(const char *name) { pmix_progress_tracker_t *trk; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_progress_threads.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_progress_threads.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_progress_threads.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_progress_threads.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. * $COPYRIGHT$ * @@ -32,7 +32,9 @@ * already-running progress thread will be returned (i.e., no new * progress thread will be started). */ -pmix_event_base_t *pmix_progress_thread_init(const char *name); +PMIX_EXPORT pmix_event_base_t *pmix_progress_thread_init(const char *name); + +PMIX_EXPORT pmix_status_t pmix_progress_thread_start(const char *name); /** * Stop a progress thread name (reference counted). @@ -45,7 +47,7 @@ * Will return PMIX_ERR_NOT_FOUND if the progress thread name does not * exist; PMIX_SUCCESS otherwise. */ -int pmix_progress_thread_stop(const char *name); +PMIX_EXPORT pmix_status_t pmix_progress_thread_stop(const char *name); /** * Finalize a progress thread name (reference counted). @@ -57,7 +59,7 @@ * Will return PMIX_ERR_NOT_FOUND if the progress thread name does not * exist; PMIX_SUCCESS otherwise. */ -int pmix_progress_thread_finalize(const char *name); +PMIX_EXPORT pmix_status_t pmix_progress_thread_finalize(const char *name); /** * Temporarily pause the progress thread associated with this name. @@ -70,7 +72,7 @@ * Will return PMIX_ERR_NOT_FOUND if the progress thread name does not * exist; PMIX_SUCCESS otherwise. */ -int pmix_progress_thread_pause(const char *name); +PMIX_EXPORT pmix_status_t pmix_progress_thread_pause(const char *name); /** * Restart a previously-paused progress thread associated with this @@ -79,6 +81,6 @@ * Will return PMIX_ERR_NOT_FOUND if the progress thread name does not * exist; PMIX_SUCCESS otherwise. */ -int pmix_progress_thread_resume(const char *name); +PMIX_EXPORT pmix_status_t pmix_progress_thread_resume(const char *name); #endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_rte.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_rte.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_rte.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_rte.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * All rights reserved. * Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved. * Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -25,7 +25,7 @@ #define PMIX_RTE_H #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/class/pmix_object.h" #include @@ -39,18 +39,18 @@ BEGIN_C_DECLS #if PMIX_ENABLE_TIMING -extern char *pmix_timing_sync_file; -extern char *pmix_timing_output; -extern bool pmix_timing_overhead; +PMIX_EXPORT extern char *pmix_timing_sync_file; +PMIX_EXPORT extern char *pmix_timing_output; +PMIX_EXPORT extern bool pmix_timing_overhead; #endif -extern int pmix_initialized; -extern char *pmix_net_private_ipv4; -extern int pmix_event_caching_window; -extern bool pmix_suppress_missing_data_warning; +PMIX_EXPORT extern int pmix_initialized; +PMIX_EXPORT extern char *pmix_net_private_ipv4; +PMIX_EXPORT extern int pmix_event_caching_window; +PMIX_EXPORT extern bool pmix_suppress_missing_data_warning; /** version string of pmix */ -extern const char pmix_version_string[]; +PMIX_EXPORT extern const char pmix_version_string[]; /** * Initialize the PMIX layer, including the MCA system. diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/server/Makefile.include openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/server/Makefile.include --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/server/Makefile.include 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/server/Makefile.include 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ # -*- makefile -*- # -# Copyright (c) 2014-2017 Intel, Inc. All rights reserved. +# Copyright (c) 2014-2020 Intel, Inc. All rights reserved. # Copyright (c) 2014 Artem Y. Polyakov . # All rights reserved. # Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/server/pmix_server.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/server/pmix_server.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/server/pmix_server.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/server/pmix_server.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,11 +1,11 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. - * Copyright (c) 2014-2018 Research Organization for Information Science + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2014-2015 Artem Y. Polyakov . * All rights reserved. - * Copyright (c) 2016 Mellanox Technologies, Inc. + * Copyright (c) 2016-2020 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2016-2018 IBM Corporation. All rights reserved. * Copyright (c) 2018 Cisco Systems, Inc. All rights reserved @@ -16,15 +16,13 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include -#include - -#include -#include -#include +#include "src/include/pmix_stdint.h" +#include "src/include/pmix_socket_errno.h" + +#include "include/pmix_server.h" +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" @@ -49,10 +47,7 @@ #endif #include #include -#include PMIX_EVENT_HEADER -#if ! PMIX_HAVE_LIBEV -#include PMIX_EVENT2_THREAD_HEADER -#endif + #include "src/util/argv.h" #include "src/util/error.h" @@ -63,11 +58,11 @@ #include "src/mca/base/base.h" #include "src/mca/base/pmix_mca_base_var.h" #include "src/mca/pinstalldirs/base/base.h" -#include "src/mca/pnet/base/base.h" #include "src/runtime/pmix_progress_threads.h" #include "src/runtime/pmix_rte.h" #include "src/mca/bfrops/base/base.h" #include "src/mca/gds/base/base.h" +#include "src/mca/pnet/base/base.h" #include "src/mca/preg/preg.h" #include "src/mca/psensor/base/base.h" #include "src/mca/ptl/base/base.h" @@ -99,6 +94,7 @@ PMIX_CONSTRUCT(&pmix_server_globals.gdata, pmix_list_t); PMIX_CONSTRUCT(&pmix_server_globals.events, pmix_list_t); PMIX_CONSTRUCT(&pmix_server_globals.local_reqs, pmix_list_t); + PMIX_CONSTRUCT(&pmix_server_globals.groups, pmix_list_t); PMIX_CONSTRUCT(&pmix_server_globals.iof, pmix_list_t); pmix_output_verbose(2, pmix_server_globals.base_output, @@ -155,6 +151,18 @@ pmix_server_globals.base_verbose); } + /* get our available security modules */ + security_mode = pmix_psec_base_get_available_modules(); + + /* get our available ptl modules */ + ptl_mode = pmix_ptl_base_get_available_modules(); + + /* get our available bfrop modules */ + bfrops_mode = pmix_bfrops_base_get_available_modules(); + + /* get available gds modules */ + gds_mode = pmix_gds_base_get_available_modules(); + return PMIX_SUCCESS; } @@ -197,13 +205,13 @@ if (NULL != info) { for (n=0; n < ninfo; n++) { - if (0 == strncmp(info[n].key, PMIX_SERVER_GATEWAY, PMIX_MAX_KEYLEN)) { + if (PMIX_CHECK_KEY(&info[n], PMIX_SERVER_GATEWAY)) { if (PMIX_INFO_TRUE(&info[n])) { PMIX_SET_PROC_TYPE(&ptype, PMIX_PROC_GATEWAY); } } else if (PMIX_CHECK_KEY(&info[n], PMIX_SERVER_TMPDIR)) { pmix_server_globals.tmpdir = strdup(info[n].value.data.string); - } else if (0 == strncmp(info[n].key, PMIX_SYSTEM_TMPDIR, PMIX_MAX_KEYLEN)) { + } else if (PMIX_CHECK_KEY(&info[n], PMIX_SYSTEM_TMPDIR)) { pmix_server_globals.system_tmpdir = strdup(info[n].value.data.string); } } @@ -231,13 +239,6 @@ return rc; } - /* setup the server-specific globals */ - if (PMIX_SUCCESS != (rc = pmix_server_initialize())) { - PMIX_ERROR_LOG(rc); - PMIX_RELEASE_THREAD(&pmix_global_lock); - return rc; - } - /* assign our internal bfrops module */ pmix_globals.mypeer->nptr->compat.bfrops = pmix_bfrops_base_assign_module(NULL); if (NULL == pmix_globals.mypeer->nptr->compat.bfrops) { @@ -280,17 +281,12 @@ PMIX_RETAIN(pmix_globals.mypeer->nptr); pmix_client_globals.myserver->nptr = pmix_globals.mypeer->nptr; - /* get our available security modules */ - security_mode = pmix_psec_base_get_available_modules(); - - /* get our available ptl modules */ - ptl_mode = pmix_ptl_base_get_available_modules(); - - /* get our available bfrop modules */ - bfrops_mode = pmix_bfrops_base_get_available_modules(); - - /* get available gds modules */ - gds_mode = pmix_gds_base_get_available_modules(); + /* setup the server-specific globals */ + if (PMIX_SUCCESS != (rc = pmix_server_initialize())) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE_THREAD(&pmix_global_lock); + return rc; + } /* check the info keys for info we * need to provide to every client and @@ -298,7 +294,7 @@ if (NULL != info) { for (n=0; n < ninfo; n++) { if (0 == strncmp(info[n].key, PMIX_SERVER_NSPACE, PMIX_MAX_KEYLEN)) { - pmix_strncpy(pmix_globals.myid.nspace, info[n].value.data.string, PMIX_MAX_NSLEN); + PMIX_LOAD_NSPACE(pmix_globals.myid.nspace, info[n].value.data.string); nspace_given = true; } else if (0 == strncmp(info[n].key, PMIX_SERVER_RANK, PMIX_MAX_KEYLEN)) { pmix_globals.myid.rank = info[n].value.data.rank; @@ -336,9 +332,10 @@ /* look for our namespace, if one was given */ if (NULL == (evar = getenv("PMIX_SERVER_NAMESPACE"))) { /* use a fake namespace */ - pmix_strncpy(pmix_globals.myid.nspace, "pmix-server", PMIX_MAX_NSLEN); + PMIX_LOAD_NSPACE(pmix_globals.myid.nspace, "pmix-server"); } else { - pmix_strncpy(pmix_globals.myid.nspace, evar, PMIX_MAX_NSLEN); + pmix_output(0, "NSPACE FROM ENV %s", evar); + PMIX_LOAD_NSPACE(pmix_globals.myid.nspace, evar); } } if (!rank_given) { @@ -415,6 +412,18 @@ 2, PMIX_FWD_STDERR_CHANNEL, pmix_iof_write_handler); } +#if PMIX_HAVE_HWLOC + /* if we don't know our topology, we better get it now as we + * increasingly rely on it - note that our host will hopefully + * have passed it to us so we don't duplicate their storage! */ + if (NULL == pmix_hwloc_topology) { + if (PMIX_SUCCESS != (rc = pmix_hwloc_get_topology(info, ninfo))) { + PMIX_RELEASE_THREAD(&pmix_global_lock); + return rc; + } + } +#endif + /* start listening for connections */ if (PMIX_SUCCESS != pmix_ptl_base_start_listening(info, ninfo)) { pmix_show_help("help-pmix-server.txt", "listener-thread-start", true); @@ -459,6 +468,10 @@ (void)pmix_progress_thread_pause(NULL); } + /* flush anything that is still trying to be written out */ + pmix_iof_static_dump_output(&pmix_client_globals.iof_stdout); + pmix_iof_static_dump_output(&pmix_client_globals.iof_stderr); + pmix_ptl_base_stop_listening(); for (i=0; i < pmix_server_globals.clients.size; i++) { @@ -482,6 +495,7 @@ * at zero refcount */ pmix_execute_epilog(&ns->epilog); } + PMIX_LIST_DESTRUCT(&pmix_server_globals.groups); PMIX_LIST_DESTRUCT(&pmix_server_globals.iof); pmix_hwloc_cleanup(); @@ -509,7 +523,6 @@ /* close the pnet framework */ (void)pmix_mca_base_framework_close(&pmix_pnet_base_framework); - PMIX_RELEASE_THREAD(&pmix_global_lock); PMIX_DESTRUCT_LOCK(&pmix_global_lock); @@ -584,7 +597,7 @@ } /* register nspace for each activate components */ - PMIX_GDS_ADD_NSPACE(rc, nptr->nspace, cd->info, cd->ninfo); + PMIX_GDS_ADD_NSPACE(rc, nptr->nspace, cd->nlocalprocs, cd->info, cd->ninfo); if (PMIX_SUCCESS != rc) { goto release; } @@ -595,6 +608,9 @@ * are using */ PMIX_GDS_CACHE_JOB_INFO(rc, pmix_globals.mypeer, nptr, cd->info, cd->ninfo); + if (PMIX_SUCCESS != rc) { + goto release; + } /* check any pending trackers to see if they are * waiting for us. There is a slight race condition whereby @@ -1501,7 +1517,7 @@ } /* They are asking for job level data for this process */ - if (cd->proc.rank == PMIX_RANK_WILDCARD) { + if (PMIX_RANK_WILDCARD == cd->proc.rank) { /* fetch the job-level info for this nspace */ /* this is going to a remote peer, so inform the gds * that we need an actual copy of the data */ @@ -2035,17 +2051,6 @@ { pmix_inventory_rollup_t *cd = (pmix_inventory_rollup_t*)cbdata; -#if PMIX_HAVE_HWLOC - /* if we don't know our topology, we better get it now */ - pmix_status_t rc; - if (NULL == pmix_hwloc_topology) { - if (PMIX_SUCCESS != (rc = pmix_hwloc_get_topology(NULL, 0))) { - PMIX_ERROR_LOG(rc); - return; - } - } -#endif - /* we only have one source at this time */ cd->requests = 1; @@ -2282,28 +2287,29 @@ PMIX_RELEASE(reply); goto cleanup; } - /* add the job-level info, if we have it */ - pmix_strncpy(proc.nspace, cd->pname.nspace, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; - /* this is going to a local client, so let the gds - * have the option of returning a copy of the data, - * or a pointer to local storage */ - PMIX_CONSTRUCT(&cb, pmix_cb_t); - cb.proc = &proc; - cb.scope = PMIX_SCOPE_UNDEF; - cb.copy = false; - PMIX_GDS_FETCH_KV(rc, pmix_globals.mypeer, &cb); - if (PMIX_SUCCESS == rc) { - PMIX_LIST_FOREACH(kv, &cb.kvs, pmix_kval_t) { - PMIX_BFROPS_PACK(rc, cd->cd->peer, reply, kv, 1, PMIX_KVAL); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_RELEASE(reply); - PMIX_DESTRUCT(&cb); - goto cleanup; + if (PMIX_SUCCESS == cd->status) { + /* add the job-level info, if we have it */ + PMIX_LOAD_PROCID(&proc, cd->pname.nspace, PMIX_RANK_WILDCARD); + /* this is going to a local client, so let the gds + * have the option of returning a copy of the data, + * or a pointer to local storage */ + PMIX_CONSTRUCT(&cb, pmix_cb_t); + cb.proc = &proc; + cb.scope = PMIX_SCOPE_UNDEF; + cb.copy = false; + PMIX_GDS_FETCH_KV(rc, pmix_globals.mypeer, &cb); + if (PMIX_SUCCESS == rc) { + PMIX_LIST_FOREACH(kv, &cb.kvs, pmix_kval_t) { + PMIX_BFROPS_PACK(rc, cd->cd->peer, reply, kv, 1, PMIX_KVAL); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE(reply); + PMIX_DESTRUCT(&cb); + goto cleanup; + } } + PMIX_DESTRUCT(&cb); } - PMIX_DESTRUCT(&cb); } /* the function that created the server_caddy did a @@ -2327,7 +2333,9 @@ /* need to thread-shift this request */ cd = PMIX_NEW(pmix_shift_caddy_t); cd->status = status; - cd->pname.nspace = strdup(nspace); + if (NULL != nspace) { + cd->pname.nspace = strdup(nspace); + } cd->cd = (pmix_server_caddy_t*)cbdata;; PMIX_THREADSHIFT(cd, _spcb); @@ -2418,7 +2426,6 @@ /* pass the blobs being returned */ PMIX_CONSTRUCT(&xfer, pmix_buffer_t); - PMIX_LOAD_BUFFER(pmix_globals.mypeer, &xfer, scd->data, scd->ndata); PMIX_CONSTRUCT(&nslist, pmix_list_t); if (PMIX_SUCCESS != scd->status) { @@ -2432,17 +2439,20 @@ } // Skip the data if we didn't collect it - if (PMIX_COLLECT_YES != tracker->collect_type) { + if (PMIX_COLLECT_YES != tracker->collect_type || NULL == scd->data) { rc = PMIX_SUCCESS; goto finish_collective; } - // collect the pmix_namespace_t's of all local participants + /* Collect the nptr list with uniq GDS components of all local + * participants. It does not allow multiple storing to the + * same GDS if participants have mutual GDS. */ PMIX_LIST_FOREACH(cd, &tracker->local_cbs, pmix_server_caddy_t) { // see if we already have this nspace found = false; PMIX_LIST_FOREACH(nptr, &nslist, pmix_nspace_caddy_t) { - if (nptr->ns == cd->peer->nptr) { + if (0 == strcmp(nptr->ns->compat.gds->name, + cd->peer->nptr->compat.gds->name)) { found = true; break; } @@ -2455,9 +2465,10 @@ pmix_list_append(&nslist, &nptr->super); } } - PMIX_LIST_FOREACH(nptr, &nslist, pmix_nspace_caddy_t) { - PMIX_GDS_STORE_MODEX(rc, nptr->ns, &tracker->local_cbs, &xfer); + /* pass the blobs being returned */ + PMIX_LOAD_BUFFER(pmix_globals.mypeer, &xfer, scd->data, scd->ndata); + PMIX_GDS_STORE_MODEX(rc, nptr->ns, &xfer, tracker); if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); break; @@ -2983,7 +2994,7 @@ pmix_status_t rc; pmix_output_verbose(2, pmix_server_globals.base_output, - "pmix:query callback with status %d", status); + "pmix:query callback with status %s", PMIx_Error_string(status)); reply = PMIX_NEW(pmix_buffer_t); if (NULL == reply) { @@ -3295,10 +3306,12 @@ if (PMIX_SUCCESS != cd->status) { /* find and remove the tracker */ req = (pmix_iof_req_t*)pmix_pointer_array_get_item(&pmix_globals.iof_requests, cd->ncodes); - PMIX_RELEASE(req); + if (NULL != req) { + PMIX_RELEASE(req); + } pmix_pointer_array_set_item(&pmix_globals.iof_requests, cd->ncodes, NULL); } else { - /* return the reference ID for this handler */ + /* return our reference ID for this handler */ PMIX_BFROPS_PACK(rc, scd->peer, reply, &cd->ncodes, 1, PMIX_SIZE); if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); @@ -3321,11 +3334,13 @@ if (PMIX_SUCCESS == cd->status) { /* get the request */ req = (pmix_iof_req_t*)pmix_pointer_array_get_item(&pmix_globals.iof_requests, cd->ncodes); - PMIX_LIST_FOREACH_SAFE(iof, inxt, &pmix_server_globals.iof, pmix_iof_cache_t) { - if (PMIX_OPERATION_SUCCEEDED == pmix_iof_process_iof(iof->channel, &iof->source, iof->bo, - iof->info, iof->ninfo, req)) { - pmix_list_remove_item(&pmix_server_globals.iof, &iof->super); - PMIX_RELEASE(iof); + if (NULL != req) { + PMIX_LIST_FOREACH_SAFE(iof, inxt, &pmix_server_globals.iof, pmix_iof_cache_t) { + if (PMIX_OPERATION_SUCCEEDED == pmix_iof_process_iof(iof->channel, &iof->source, iof->bo, + iof->info, iof->ninfo, req)) { + pmix_list_remove_item(&pmix_server_globals.iof, &iof->super); + PMIX_RELEASE(iof); + } } } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/server/pmix_server_get.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/server/pmix_server_get.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/server/pmix_server_get.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/server/pmix_server_get.c 2022-05-29 09:51:40.000000000 +0000 @@ -15,14 +15,12 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include -#include +#include "src/include/pmix_stdint.h" +#include "src/include/pmix_socket_errno.h" -#include -#include +#include "include/pmix_server.h" #include "src/include/pmix_globals.h" #ifdef HAVE_STRING_H @@ -49,12 +47,14 @@ #include "src/class/pmix_list.h" #include "src/mca/bfrops/bfrops.h" #include "src/mca/gds/gds.h" +#include "src/mca/ptl/base/base.h" #include "src/util/argv.h" #include "src/util/error.h" #include "src/util/name_fns.h" #include "src/util/output.h" #include "src/util/pmix_environ.h" +#include "src/client/pmix_client_ops.h" #include "pmix_server_ops.h" extern pmix_server_module_t pmix_host_server; @@ -85,16 +85,19 @@ static void dmdx_cbfunc(pmix_status_t status, const char *data, size_t ndata, void *cbdata, pmix_release_cbfunc_t relfn, void *relcbdata); -static pmix_status_t _satisfy_request(pmix_namespace_t *ns, pmix_rank_t rank, +static pmix_status_t _satisfy_request(pmix_namespace_t *nptr, pmix_rank_t rank, pmix_server_caddy_t *cd, - pmix_modex_cbfunc_t cbfunc, void *cbdata, bool *scope); + bool diffnspace, pmix_scope_t scope, + pmix_modex_cbfunc_t cbfunc, void *cbdata); static pmix_status_t create_local_tracker(char nspace[], pmix_rank_t rank, pmix_info_t info[], size_t ninfo, pmix_modex_cbfunc_t cbfunc, void *cbdata, pmix_dmdx_local_t **lcd, pmix_dmdx_request_t **rq); - +static pmix_status_t get_job_data(char *nspace, + pmix_server_caddy_t *cd, + pmix_buffer_t *pbkt); static void get_timeout(int sd, short args, void *cbdata); @@ -109,7 +112,52 @@ } } +static pmix_status_t defer_response(char *nspace, pmix_rank_t rank, + pmix_server_caddy_t *cd, + bool localonly, + pmix_modex_cbfunc_t cbfunc, + void *cbdata, + struct timeval *tv, + pmix_dmdx_local_t **locald) +{ + pmix_status_t rc; + pmix_dmdx_request_t *req; + pmix_dmdx_local_t *lcd; + + *locald = NULL; + if (localonly) { + /* the client asked that we not wait, so return now */ + pmix_output_verbose(2, pmix_server_globals.get_output, + "%s:%d CLIENT REQUESTED IMMEDIATE", + pmix_globals.myid.nspace, + pmix_globals.myid.rank); + return PMIX_ERR_NOT_AVAILABLE; + } + /* we cannot do anything further, so just track this request + * for now */ + rc = create_local_tracker(nspace, rank, cd->info, cd->ninfo, + cbfunc, cbdata, &lcd, &req); + if (PMIX_ERR_NOMEM == rc || NULL == lcd) { + return rc; + } + pmix_output_verbose(2, pmix_server_globals.get_output, + "%s:%d TRACKER CREATED - WAITING", + pmix_globals.myid.nspace, + pmix_globals.myid.rank); + /* if they specified a timeout, set it up now */ + if (NULL != tv && 0 < tv->tv_sec) { + pmix_event_evtimer_set(pmix_globals.evbase, &req->ev, + get_timeout, req); + pmix_event_evtimer_add(&req->ev, tv); + req->event_active = true; + } + /* the peer object has been added to the new lcd tracker, + * so return success here */ + *locald = lcd; + return rc; + +} pmix_status_t pmix_server_get(pmix_buffer_t *buf, pmix_modex_cbfunc_t cbfunc, void *cbdata) @@ -118,28 +166,31 @@ int32_t cnt; pmix_status_t rc; pmix_rank_t rank; - char *cptr; + char *cptr, *key=NULL; char nspace[PMIX_MAX_NSLEN+1]; pmix_namespace_t *ns, *nptr; pmix_dmdx_local_t *lcd; - pmix_dmdx_request_t *req; - bool local; + bool local = false; bool localonly = false; bool diffnspace = false; + bool refresh_cache = false; + bool scope_given = false; struct timeval tv = {0, 0}; - pmix_buffer_t pbkt, pkt; - pmix_byte_object_t bo; + pmix_buffer_t pbkt; pmix_cb_t cb; pmix_proc_t proc; char *data; size_t sz, n; + pmix_info_t *info; + pmix_scope_t scope = PMIX_SCOPE_UNDEF; + pmix_rank_info_t *iptr; pmix_output_verbose(2, pmix_server_globals.get_output, "%s recvd GET", PMIX_NAME_PRINT(&pmix_globals.myid)); /* setup */ - memset(nspace, 0, sizeof(nspace)); + PMIX_LOAD_NSPACE(nspace, NULL); /* retrieve the nspace and rank of the requested proc */ cnt = 1; @@ -148,7 +199,7 @@ PMIX_ERROR_LOG(rc); return rc; } - pmix_strncpy(nspace, cptr, PMIX_MAX_NSLEN); + PMIX_LOAD_NSPACE(nspace, cptr); free(cptr); cnt = 1; PMIX_BFROPS_UNPACK(rc, cd->peer, buf, &rank, &cnt, PMIX_PROC_RANK); @@ -176,6 +227,13 @@ return rc; } } + /* if they provided a specific key, get it */ + cnt = 1; + PMIX_BFROPS_UNPACK(rc, cd->peer, buf, &key, &cnt, PMIX_STRING); + if (PMIX_SUCCESS != rc && PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } /* search for directives we can deal with here */ for (n=0; n < cd->ninfo; n++) { @@ -185,10 +243,15 @@ localonly = PMIX_INFO_TRUE(&cd->info[n]); } else if (PMIX_CHECK_KEY(&cd->info[n], PMIX_TIMEOUT)) { tv.tv_sec = cd->info[n].value.data.uint32; + } else if (PMIX_CHECK_KEY(&cd->info[n], PMIX_GET_REFRESH_CACHE)) { + refresh_cache = PMIX_INFO_TRUE(&cd->info[n]); + } else if (PMIX_CHECK_KEY(&cd->info[n], PMIX_DATA_SCOPE)) { + scope = cd->info[n].value.data.scope; + scope_given = true; } } - /* find the nspace object for this client */ + /* find the nspace object for the target proc */ nptr = NULL; PMIX_LIST_FOREACH(ns, &pmix_globals.nspaces, pmix_namespace_t) { if (0 == strcmp(nspace, ns->nspace)) { @@ -197,17 +260,13 @@ } } - /* check if the nspace of the requestor is different from - * the nspace of the target process */ - diffnspace = !PMIX_CHECK_NSPACE(nspace, cd->peer->info->pname.nspace); - pmix_output_verbose(2, pmix_server_globals.get_output, - "%s EXECUTE GET FOR %s:%d ON BEHALF OF %s", + "%s EXECUTE GET FOR %s:%d WITH KEY %s ON BEHALF OF %s", PMIX_NAME_PRINT(&pmix_globals.myid), - nspace, rank, + nspace, rank, (NULL == key) ? "NULL" : key, PMIX_PNAME_PRINT(&cd->peer->info->pname)); - /* This call flows upward from a local client If we don't + /* This call flows upward from a local client. If we don't * know about this nspace, then it cannot refer to the * nspace of the requestor - i.e., they aren't asking * about one of their peers. There are two reasons why we @@ -238,181 +297,24 @@ return PMIX_ERR_NOT_FOUND; } /* this is for an nspace we don't know about yet, so - * record the request for data from this process and * give the host server a chance to tell us about it. * The cbdata passed here is the pmix_server_caddy_t * we were passed - it contains the pmix_peer_t of * the original requestor so they will get the data * back when we receive it */ - rc = create_local_tracker(nspace, rank, - cd->info, cd->ninfo, - cbfunc, cbdata, &lcd, &req); - if (PMIX_ERR_NOMEM == rc) { - return rc; - } - if (PMIX_SUCCESS == rc) { - pmix_output_verbose(5, pmix_server_globals.get_output, - "%s UNKNOWN NSPACE: DUPLICATE REQUEST - WAITING", - PMIX_NAME_PRINT(&pmix_globals.myid)); - /* if they specified a timeout for this specific - * request, set it up now */ - if (0 < tv.tv_sec) { - pmix_event_evtimer_set(pmix_globals.evbase, &req->ev, - get_timeout, req); - pmix_event_evtimer_add(&req->ev, &tv); - req->event_active = true; - } - /* we already asked for this info - no need to - * do it again */ - return PMIX_SUCCESS; - } - /* only other return code is NOT_FOUND, indicating that - * we created a new tracker */ - - /* Its possible there will be no local processes on this - * host, so lets ask for this explicitly. There can - * be a race condition here if this information shows - * up on its own, but at worst the direct modex - * will simply overwrite the info later */ - if (NULL != pmix_host_server.direct_modex) { - pmix_output_verbose(5, pmix_server_globals.get_output, - "%s UNKNOWN NSPACE: REQUEST PASSED TO HOST", - PMIX_NAME_PRINT(&pmix_globals.myid)); - rc = pmix_host_server.direct_modex(&lcd->proc, cd->info, cd->ninfo, dmdx_cbfunc, lcd); - if (PMIX_SUCCESS != rc) { - pmix_list_remove_item(&pmix_server_globals.local_reqs, &lcd->super); - PMIX_RELEASE(lcd); - return rc; - } - /* if they specified a timeout for this specific - * request, set it up now */ - if (0 < tv.tv_sec) { - pmix_event_evtimer_set(pmix_globals.evbase, &req->ev, - get_timeout, req); - pmix_event_evtimer_add(&req->ev, &tv); - req->event_active = true; - } - } else { - /* if we don't have direct modex feature, just respond with "not found" */ - pmix_output_verbose(5, pmix_server_globals.get_output, - "%s UNKNOWN NSPACE: NO DMODEX AVAILABLE - NOT FOUND", - PMIX_NAME_PRINT(&pmix_globals.myid)); - pmix_list_remove_item(&pmix_server_globals.local_reqs, &lcd->super); - PMIX_RELEASE(lcd); - return PMIX_ERR_NOT_FOUND; - } - - return PMIX_SUCCESS; + goto request; } /* the target nspace is known, so we can process the request. - * if the rank is wildcard, or the nspace is different, then - * they are asking for the job-level info for this nspace - provide it */ - if (PMIX_RANK_WILDCARD == rank || diffnspace) { - pmix_output_verbose(5, pmix_server_globals.get_output, - "%s LOOKING FOR %s", - PMIX_NAME_PRINT(&pmix_globals.myid), - diffnspace ? "WILDCARD RANK" : "DIFF NSPACE"); - /* see if we have the job-level info - we won't have it - * if we have no local procs and haven't already asked - * for it, so there is no guarantee we have it */ - data = NULL; - sz = 0; - pmix_strncpy(proc.nspace, nspace, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; - /* if we have local procs for this nspace, then we - * can retrieve the info from that GDS. Otherwise, - * we need to retrieve it from our own */ - PMIX_CONSTRUCT(&cb, pmix_cb_t); - pmix_output_verbose(5, pmix_server_globals.get_output, - "%s GETTING JOB-DATA FOR %s", - PMIX_NAME_PRINT(&pmix_globals.myid), - PMIX_NAME_PRINT(&proc)); - /* this data is for a local client, so give the gds the - * option of returning a complete copy of the data, - * or returning a pointer to local storage */ - cb.proc = &proc; - cb.scope = PMIX_SCOPE_UNDEF; - cb.copy = false; - cb.info = cd->info; - cb.ninfo = cd->ninfo; - PMIX_GDS_FETCH_KV(rc, pmix_globals.mypeer, &cb); - if (PMIX_SUCCESS != rc) { - cb.info = NULL; - cb.ninfo = 0; - PMIX_DESTRUCT(&cb); - return rc; - } - /* store this as a byte object in the eventual data to - * be returned */ + * if the rank is wildcard, then they are asking for the job-level + * info for this nspace - provide it */ + if (PMIX_RANK_WILDCARD == rank) { PMIX_CONSTRUCT(&pbkt, pmix_buffer_t); - cb.info = NULL; - cb.ninfo = 0; - PMIX_CONSTRUCT(&pkt, pmix_buffer_t); - /* assemble the provided data into a byte object */ - PMIX_GDS_ASSEMB_KVS_REQ(rc, pmix_globals.mypeer, &proc, &cb.kvs, &pkt, cd); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&cb); - return rc; - } - PMIX_UNLOAD_BUFFER(&pkt, bo.bytes, bo.size); - PMIX_DESTRUCT(&pkt); - /* pack it into the payload */ - PMIX_BFROPS_PACK(rc, cd->peer, &pbkt, &bo, 1, PMIX_BYTE_OBJECT); - free(bo.bytes); + rc = get_job_data(nptr->nspace, cd, &pbkt); if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); PMIX_DESTRUCT(&pbkt); - PMIX_DESTRUCT(&cb); return rc; } - PMIX_DESTRUCT(&cb); - /* if the requested rank is not WILDCARD, then retrieve any - * posted data for that rank. Anything found will - * be added to the cb.kvs list */ - if (PMIX_RANK_WILDCARD != rank) { - PMIX_CONSTRUCT(&cb, pmix_cb_t); - proc.rank = rank; - cb.proc = &proc; - cb.scope = PMIX_LOCAL; - cb.copy = false; - cb.info = cd->info; - cb.ninfo = cd->ninfo; - pmix_output_verbose(5, pmix_server_globals.get_output, - "%s GETTING DATA FOR %s", - PMIX_NAME_PRINT(&pmix_globals.myid), - PMIX_NAME_PRINT(&proc)); - PMIX_GDS_FETCH_KV(rc, pmix_globals.mypeer, &cb); - if (PMIX_SUCCESS != rc) { - cb.info = NULL; - cb.ninfo = 0; - PMIX_DESTRUCT(&cb); - return rc; - } - cb.info = NULL; - cb.ninfo = 0; - PMIX_CONSTRUCT(&pkt, pmix_buffer_t); - /* assemble the provided data into a byte object */ - PMIX_GDS_ASSEMB_KVS_REQ(rc, pmix_globals.mypeer, &proc, &cb.kvs, &pkt, cd); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&cb); - return rc; - } - PMIX_UNLOAD_BUFFER(&pkt, bo.bytes, bo.size); - PMIX_DESTRUCT(&pkt); - /* pack it into the payload */ - PMIX_BFROPS_PACK(rc, cd->peer, &pbkt, &bo, 1, PMIX_BYTE_OBJECT); - free(bo.bytes); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&pbkt); - PMIX_DESTRUCT(&cb); - return rc; - } - PMIX_DESTRUCT(&cb); - } /* unload the resulting payload */ PMIX_UNLOAD_BUFFER(&pbkt, data, sz); PMIX_DESTRUCT(&pbkt); @@ -435,41 +337,158 @@ "%s:%d NSPACE %s not all registered", pmix_globals.myid.nspace, pmix_globals.myid.rank, nspace); + rc = defer_response(nspace, rank, cd, localonly, cbfunc, cbdata, &tv, &lcd); + if (PMIX_ERR_NOT_FOUND == rc) { + /* just means we created a tracker */ + rc = PMIX_SUCCESS; + } else if (PMIX_ERR_NOT_AVAILABLE == rc) { + /* means they requested "immediate" */ + rc = PMIX_ERR_NOT_FOUND; + } + return rc; + } - if (localonly) { - /* the client asked that we not wait, so return now */ - pmix_output_verbose(2, pmix_server_globals.get_output, - "%s:%d CLIENT REQUESTED IMMEDIATE", - pmix_globals.myid.nspace, - pmix_globals.myid.rank); - return PMIX_ERR_NOT_FOUND; + /* everyone has been registered, so we know who our local procs + * are - see if this target is one of them. Note that we cannot reach + * this point if rank = WILDCARD */ + if (0 < nptr->nlocalprocs) { + /* if all the procs are local, then this must be a local proc */ + if (nptr->nprocs == nptr->nlocalprocs) { + local = true; + } else { + /* see if this proc is one of our local ones */ + PMIX_LIST_FOREACH(iptr, &nptr->ranks, pmix_rank_info_t) { + if (rank == iptr->pname.rank) { + if (0 > iptr->peerid) { + /* this rank has not connected yet, so this request needs to be held */ + rc = defer_response(nspace, rank, cd, localonly, cbfunc, cbdata, &tv, &lcd); + if (PMIX_ERR_NOT_FOUND == rc) { + /* just means we created a tracker */ + rc = PMIX_SUCCESS; + } else if (PMIX_ERR_NOT_AVAILABLE == rc) { + /* means they requested "immediate" */ + rc = PMIX_ERR_NOT_FOUND; + } + return rc; + } + local = true; + break; + } + } + if (NULL == pmix_pointer_array_get_item(&pmix_server_globals.clients, iptr->peerid)) { + /* this must be a remote rank */ + local = false; + } + } + } else { + local = false; + } + + /* if the proc is local, then we assume that the host/server maintains + * updated info - there is no need to ask the host to refresh a cache */ + if (local && refresh_cache) { + return PMIX_OPERATION_SUCCEEDED; + } else if (refresh_cache) { + if (NULL != key) { + free(key); + key = NULL; + } + goto request; + } + + /* the target nspace is known - if they asked us to wait for a specific + * key to be available, check if it is present. NOTE: key is only + * NULL if the request came from an older version */ + if (NULL != key) { + PMIX_LOAD_PROCID(&proc, nspace, rank); + PMIX_CONSTRUCT(&cb, pmix_cb_t); + cb.proc = &proc; + if (scope_given) { + cb.scope = scope; + } else if (local) { + cb.scope = PMIX_LOCAL; + } else { + cb.scope = PMIX_REMOTE; + } + cb.copy = false; + cb.info = cd->info; + cb.ninfo = cd->ninfo; + cb.key = key; + PMIX_GDS_FETCH_KV(rc, pmix_globals.mypeer, &cb); + /* A local client may send a get request concurrently with + * a commit request from another client, but the server may + * have processed the commit request earlyer than the get + * request. In this case, we create a local tracker for + * possibly existing keys that are added with the completed + * commit request. Thus, the get request will be pended in + * tracker and will be deffered. This scenario is possible + * when the non-fence commit-get scheme is used and when + * the peer GDS component is `dstore`. + * Checking the peer storage for local keys to avoid creating + * a local tracker for existing keys. */ + if ((PMIX_SUCCESS != rc) && local) { + PMIX_GDS_FETCH_KV(rc, cd->peer, &cb); + if (PMIX_SUCCESS == rc) { + cbfunc(rc, NULL, 0, cbdata, NULL, NULL); + PMIX_DESTRUCT(&cb); + return rc; + } } - /* we cannot do anything further, so just track this request - * for now */ - rc = create_local_tracker(nspace, rank, cd->info, cd->ninfo, - cbfunc, cbdata, &lcd, &req); - if (PMIX_ERR_NOMEM == rc) { + PMIX_DESTRUCT(&cb); // does not release info or key + if (PMIX_SUCCESS != rc) { + /* if the target proc is local, then we just need to wait */ + if (local) { + /* if they provided a timeout, we need to execute it here + * as we are not going to pass it upwards for the host + * to perform - we default it to 2 sec */ + if (0 == tv.tv_sec) { + tv.tv_sec = 2; + } + rc = defer_response(nspace, rank, cd, localonly, cbfunc, cbdata, &tv, &lcd); + if (PMIX_ERR_NOT_FOUND == rc) { + /* just means we created a tracker */ + rc = PMIX_SUCCESS; + } else if (PMIX_ERR_NOT_AVAILABLE == rc) { + /* means they requested "immediate" */ + rc = PMIX_ERR_NOT_FOUND; + } + return rc; + } + /* otherwise, we need to request the info */ + goto request; + } + /* we did find it, so go ahead and collect the payload */ + } else if (PMIX_PEER_IS_EARLIER(pmix_client_globals.myserver, 4, 0, 0)) { + PMIX_CONSTRUCT(&pbkt, pmix_buffer_t); + rc = get_job_data(nspace, cd, &pbkt); + if (PMIX_SUCCESS != rc) { + PMIX_DESTRUCT(&pbkt); return rc; } - pmix_output_verbose(2, pmix_server_globals.get_output, - "%s:%d TRACKER CREATED - WAITING", - pmix_globals.myid.nspace, - pmix_globals.myid.rank); - /* if they specified a timeout, set it up now */ - if (0 < tv.tv_sec) { - pmix_event_evtimer_set(pmix_globals.evbase, &req->ev, - get_timeout, req); - pmix_event_evtimer_add(&req->ev, &tv); - req->event_active = true; + /* pass it back */ + PMIX_UNLOAD_BUFFER(&pbkt, data, sz); + PMIX_DESTRUCT(&pbkt); + cbfunc(rc, data, sz, cbdata, relfn, data); + return rc; + } + + /* check if the nspace of the requestor is different from + * the nspace of the target process */ + diffnspace = !PMIX_CHECK_NSPACE(nptr->nspace, cd->peer->info->pname.nspace); + + if (!scope_given) { + if (PMIX_RANK_UNDEF == rank || diffnspace) { + scope = PMIX_GLOBAL; + } else if (local) { + scope = PMIX_LOCAL; + } else { + scope = PMIX_REMOTE; } - /* the peer object has been added to the new lcd tracker, - * so return success here */ - return PMIX_SUCCESS; } - /* if everyone has registered, see if we already have this data */ - rc = _satisfy_request(nptr, rank, cd, cbfunc, cbdata, &local); - if( PMIX_SUCCESS == rc ){ + /* since everyone has registered, see if we already have this data */ + rc = _satisfy_request(nptr, rank, cd, diffnspace, scope, cbfunc, cbdata); + if (PMIX_SUCCESS == rc) { /* return success as the satisfy_request function * calls the cbfunc for us, and it will have * released the cbdata object */ @@ -481,36 +500,19 @@ pmix_globals.myid.nspace, pmix_globals.myid.rank); - /* If we get here, then we don't have the data at this time. If - * the user doesn't want to look for it, then we are done */ - if (localonly) { - pmix_output_verbose(2, pmix_server_globals.get_output, - "%s:%d CLIENT REQUESTED IMMEDIATE", - pmix_globals.myid.nspace, - pmix_globals.myid.rank); - return PMIX_ERR_NOT_FOUND; - } - - /* Check to see if we already have a pending request for the data - if - * we do, then we can just wait for it to arrive */ - rc = create_local_tracker(nspace, rank, cd->info, cd->ninfo, - cbfunc, cbdata, &lcd, &req); - if (PMIX_ERR_NOMEM == rc || NULL == lcd) { - /* we have a problem */ - return PMIX_ERR_NOMEM; - } - /* if they specified a timeout, set it up now */ - if (0 < tv.tv_sec) { - pmix_event_evtimer_set(pmix_globals.evbase, &req->ev, - get_timeout, req); - pmix_event_evtimer_add(&req->ev, &tv); - req->event_active = true; - } + request: + /* setup to handle this remote request, but don't set any timeout as + * this might create a race condition with our host if they also + * support the timeout */ + rc = defer_response(nspace, rank, cd, localonly, cbfunc, cbdata, NULL, &lcd); if (PMIX_SUCCESS == rc) { /* we are already waiting for the data - nothing more * for us to do as the function added the new request * to the tracker for us */ return PMIX_SUCCESS; + } else if (PMIX_ERR_NOT_AVAILABLE == rc) { + /* means they requested "immediate" */ + return PMIX_ERR_NOT_FOUND; } /* Getting here means that we didn't already have a request for @@ -526,6 +528,19 @@ * resource manager server to please get the info for us from * whomever is hosting the target process */ if (NULL != pmix_host_server.direct_modex) { + if (NULL != key) { + sz = cd->ninfo; + PMIX_INFO_CREATE(info, sz+1); + for (n=0; n < sz; n++) { + PMIX_INFO_XFER(&info[n], &cd->info[n]); + } + PMIX_INFO_LOAD(&info[sz], PMIX_REQUIRED_KEY, key, PMIX_STRING); + if (NULL != cd->info) { + PMIX_INFO_FREE(cd->info, cd->ninfo); + } + cd->info = info; + cd->ninfo = sz + 1; + } rc = pmix_host_server.direct_modex(&lcd->proc, cd->info, cd->ninfo, dmdx_cbfunc, lcd); if (PMIX_SUCCESS != rc) { /* may have a function entry but not support the request */ @@ -556,6 +571,7 @@ pmix_dmdx_local_t *lcd, *cd; pmix_dmdx_request_t *req; pmix_status_t rc; + size_t n; /* define default */ *ld = NULL; @@ -565,8 +581,7 @@ * from this namespace/rank */ lcd = NULL; PMIX_LIST_FOREACH(cd, &pmix_server_globals.local_reqs, pmix_dmdx_local_t) { - if (0 != strncmp(nspace, cd->proc.nspace, PMIX_MAX_NSLEN) || - rank != cd->proc.rank ) { + if (!PMIX_CHECK_NSPACE(nspace, cd->proc.nspace) || rank != cd->proc.rank ) { continue; } lcd = cd; @@ -576,6 +591,7 @@ /* we already have a request, so just track that someone * else wants data from the same target */ rc = PMIX_SUCCESS; // indicates we found an existing request + PMIX_RETAIN(lcd); goto complete; } /* we do not have an existing request, so let's create @@ -584,15 +600,19 @@ if (NULL == lcd){ return PMIX_ERR_NOMEM; } - pmix_strncpy(lcd->proc.nspace, nspace, PMIX_MAX_NSLEN); - lcd->proc.rank = rank; - lcd->info = info; - lcd->ninfo = ninfo; + PMIX_LOAD_PROCID(&lcd->proc, nspace, rank); + if (0 < ninfo) { + lcd->ninfo = ninfo; + PMIX_INFO_CREATE(lcd->info, lcd->ninfo); + for (n=0; n < ninfo; n++) { + PMIX_INFO_XFER(&lcd->info[n], &info[n]); + } + } pmix_list_append(&pmix_server_globals.local_reqs, &lcd->super); rc = PMIX_ERR_NOT_FOUND; // indicates that we created a new request tracker complete: - /* track this specific requestor so we return the + /* track this specific requester so we return the * data to them */ req = PMIX_NEW(pmix_dmdx_request_t); if (NULL == req) { @@ -602,8 +622,14 @@ PMIX_RETAIN(lcd); req->lcd = lcd; req->cbfunc = cbfunc; - req->cbdata = cbdata; pmix_list_append(&lcd->loc_reqs, &req->super); + /* if provided, the cbdata is always a pmix_server_caddy_t. Since + * it will be released by every req when it completes, we have to + * up the refcount on it to avoid multiple free's of its contents */ + if (NULL != cbdata && 1 < pmix_list_get_size(&lcd->loc_reqs)) { + PMIX_RETAIN(cbdata); + } + req->cbdata = cbdata; *ld = lcd; *rq = req; return rc; @@ -654,228 +680,173 @@ } } +static pmix_status_t get_job_data(char *nspace, + pmix_server_caddy_t *cd, + pmix_buffer_t *pbkt) +{ + pmix_status_t rc; + pmix_buffer_t pkt; + pmix_proc_t proc; + pmix_cb_t cb; + pmix_byte_object_t bo; + + PMIX_LOAD_PROCID(&proc, nspace, PMIX_RANK_WILDCARD); + PMIX_CONSTRUCT(&cb, pmix_cb_t); + /* this data is requested by a local client, so give the gds the option + * of returning a copy of the data, or a pointer to + * local storage */ + cb.proc = &proc; + cb.scope = PMIX_INTERNAL; + cb.copy = false; + cb.info = cd->info; + cb.ninfo = cd->ninfo; + PMIX_GDS_FETCH_KV(rc, pmix_globals.mypeer, &cb); + cb.info = NULL; + cb.ninfo = 0; + if (PMIX_SUCCESS == rc) { + PMIX_CONSTRUCT(&pkt, pmix_buffer_t); + /* assemble the provided data into a byte object */ + PMIX_GDS_ASSEMB_KVS_REQ(rc, pmix_globals.mypeer, &proc, &cb.kvs, &pkt, cd); + if (rc != PMIX_SUCCESS) { + PMIX_ERROR_LOG(rc); + PMIX_DESTRUCT(&pkt); + PMIX_DESTRUCT(&pbkt); + PMIX_DESTRUCT(&cb); + return rc; + } + if (PMIX_PEER_IS_V1(cd->peer)) { + /* if the client is using v1, then it expects the + * data returned to it as the rank followed by abyte object containing + * a buffer - so we have to do a little gyration */ + pmix_buffer_t xfer; + PMIX_CONSTRUCT(&xfer, pmix_buffer_t); + PMIX_BFROPS_PACK(rc, cd->peer, &xfer, &pkt, 1, PMIX_BUFFER); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_DESTRUCT(&pkt); + PMIX_DESTRUCT(&xfer); + PMIX_DESTRUCT(&cb); + return rc; + } + PMIX_UNLOAD_BUFFER(&xfer, bo.bytes, bo.size); + PMIX_DESTRUCT(&xfer); + } else { + PMIX_UNLOAD_BUFFER(&pkt, bo.bytes, bo.size); + } + PMIX_DESTRUCT(&pkt); + /* pack it for transmission */ + PMIX_BFROPS_PACK(rc, cd->peer, pbkt, &bo, 1, PMIX_BYTE_OBJECT); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_DESTRUCT(&cb); + return rc; + } + } + PMIX_DESTRUCT(&cb); + + return PMIX_SUCCESS; +} + static pmix_status_t _satisfy_request(pmix_namespace_t *nptr, pmix_rank_t rank, pmix_server_caddy_t *cd, - pmix_modex_cbfunc_t cbfunc, - void *cbdata, bool *local) + bool diffnspace, pmix_scope_t scope, + pmix_modex_cbfunc_t cbfunc, void *cbdata) { pmix_status_t rc; bool found = false; pmix_buffer_t pbkt, pkt; - pmix_rank_info_t *iptr; pmix_proc_t proc; pmix_cb_t cb; - pmix_peer_t *peer = NULL; pmix_byte_object_t bo; char *data = NULL; size_t sz = 0; - pmix_scope_t scope = PMIX_SCOPE_UNDEF; - bool diffnspace = false; pmix_output_verbose(2, pmix_server_globals.get_output, - "%s:%d SATISFY REQUEST CALLED", + "%s:%d SATISFY REQUEST CALLED FOR %s:%d", pmix_globals.myid.nspace, - pmix_globals.myid.rank); + pmix_globals.myid.rank, + nptr->nspace, rank); - /* check to see if this data already has been - * obtained as a result of a prior direct modex request from - * a remote peer, or due to data from a local client - * having been committed */ PMIX_CONSTRUCT(&pbkt, pmix_buffer_t); PMIX_LOAD_NSPACE(proc.nspace, nptr->nspace); - if (!PMIX_CHECK_NSPACE(nptr->nspace, cd->peer->info->pname.nspace)) { - diffnspace = true; - } - - /* if rank is PMIX_RANK_UNDEF or is from a different nspace, - * then it was stored in our GDS */ - if (PMIX_RANK_UNDEF == rank || diffnspace) { - scope = PMIX_GLOBAL; // we have to search everywhere - peer = pmix_globals.mypeer; - } else if (0 < nptr->nlocalprocs) { - /* if we have local clients of this nspace, then we use - * the corresponding GDS to retrieve the data. Otherwise, - * the data will have been stored under our GDS */ - if (NULL != local) { - *local = true; - } - if (PMIX_RANK_WILDCARD != rank) { - peer = NULL; - /* see if the requested rank is local */ - PMIX_LIST_FOREACH(iptr, &nptr->ranks, pmix_rank_info_t) { - if (rank == iptr->pname.rank) { - scope = PMIX_LOCAL; - if (0 <= iptr->peerid) { - peer = (pmix_peer_t*)pmix_pointer_array_get_item(&pmix_server_globals.clients, iptr->peerid); - } - if (NULL == peer) { - /* this rank has not connected yet, so this request needs to be held */ - return PMIX_ERR_NOT_FOUND; - } - break; - } - } - if (NULL == peer) { - /* this must be a remote rank */ - if (NULL != local) { - *local = false; - } - scope = PMIX_REMOTE; - peer = pmix_globals.mypeer; - } - } - } else { - if (NULL != local) { - *local = false; + /* if the rank is WILDCARD or the target is in an nspace different + * from the requester, include a copy of the job-level data */ + if (PMIX_RANK_WILDCARD == rank || diffnspace) { + rc = get_job_data(nptr->nspace, cd, &pbkt); + if (PMIX_SUCCESS != rc) { + PMIX_DESTRUCT(&pbkt); + return rc; } - peer = pmix_globals.mypeer; - scope = PMIX_REMOTE; } - /* if they are asking about a rank from an nspace different - * from their own, or they gave a rank of "wildcard", then - * include a copy of the job-level info */ - if (PMIX_RANK_WILDCARD == rank || diffnspace) { - proc.rank = PMIX_RANK_WILDCARD; - PMIX_CONSTRUCT(&cb, pmix_cb_t); - /* this data is requested by a local client, so give the gds the option - * of returning a copy of the data, or a pointer to - * local storage */ - cb.proc = &proc; - cb.scope = PMIX_INTERNAL; - cb.copy = false; - cb.info = cd->info; - cb.ninfo = cd->ninfo; - PMIX_GDS_FETCH_KV(rc, pmix_globals.mypeer, &cb); - cb.info = NULL; - cb.ninfo = 0; - if (PMIX_SUCCESS == rc) { - PMIX_CONSTRUCT(&pkt, pmix_buffer_t); - /* assemble the provided data into a byte object */ + /* retrieve the data for the specific rank they are asking about */ + proc.rank = rank; + PMIX_CONSTRUCT(&cb, pmix_cb_t); + /* this is a local request, so give the gds the option + * of returning a copy of the data, or a pointer to + * local storage */ + cb.proc = &proc; + cb.scope = scope; + cb.copy = false; + cb.info = cd->info; + cb.ninfo = cd->ninfo; + PMIX_GDS_FETCH_KV(rc, pmix_globals.mypeer, &cb); + cb.info = NULL; + cb.ninfo = 0; + if (PMIX_SUCCESS == rc) { + found = true; + PMIX_CONSTRUCT(&pkt, pmix_buffer_t); + /* assemble the provided data into a byte object */ + if (PMIX_RANK_UNDEF == rank || diffnspace) { PMIX_GDS_ASSEMB_KVS_REQ(rc, pmix_globals.mypeer, &proc, &cb.kvs, &pkt, cd); - if (rc != PMIX_SUCCESS) { + } else { + PMIX_GDS_ASSEMB_KVS_REQ(rc, cd->peer, &proc, &cb.kvs, &pkt, cd); + } + if (rc != PMIX_SUCCESS) { + PMIX_ERROR_LOG(rc); + PMIX_DESTRUCT(&pkt); + PMIX_DESTRUCT(&pbkt); + PMIX_DESTRUCT(&cb); + return rc; + } + if (PMIX_PEER_IS_V1(cd->peer)) { + /* if the client is using v1, then it expects the + * data returned to it in a different order than v2 + * - so we have to do a little gyration */ + /* pack the rank */ + PMIX_BFROPS_PACK(rc, cd->peer, &pbkt, &rank, 1, PMIX_PROC_RANK); + if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); PMIX_DESTRUCT(&pkt); PMIX_DESTRUCT(&pbkt); PMIX_DESTRUCT(&cb); return rc; } - if (PMIX_PEER_IS_V1(cd->peer)) { - /* if the client is using v1, then it expects the - * data returned to it as the rank followed by abyte object containing - * a buffer - so we have to do a little gyration */ - pmix_buffer_t xfer; - PMIX_CONSTRUCT(&xfer, pmix_buffer_t); - PMIX_BFROPS_PACK(rc, cd->peer, &xfer, &pkt, 1, PMIX_BUFFER); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&pkt); - PMIX_DESTRUCT(&pbkt); - PMIX_DESTRUCT(&xfer); - PMIX_DESTRUCT(&cb); - return rc; - } - PMIX_UNLOAD_BUFFER(&xfer, bo.bytes, bo.size); - PMIX_DESTRUCT(&xfer); - } else { - PMIX_UNLOAD_BUFFER(&pkt, bo.bytes, bo.size); - } - PMIX_DESTRUCT(&pkt); - /* pack it for transmission */ - PMIX_BFROPS_PACK(rc, cd->peer, &pbkt, &bo, 1, PMIX_BYTE_OBJECT); + /* now pack the data itself as a buffer */ + PMIX_BFROPS_PACK(rc, cd->peer, &pbkt, &pkt, 1, PMIX_BUFFER); if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); + PMIX_DESTRUCT(&pkt); PMIX_DESTRUCT(&pbkt); PMIX_DESTRUCT(&cb); return rc; } - } - PMIX_DESTRUCT(&cb); - if (rank == PMIX_RANK_WILDCARD) { - found = true; - } - } - - /* retrieve the data for the specific rank they are asking about */ - if (PMIX_RANK_WILDCARD != rank) { - if (!PMIX_PEER_IS_SERVER(peer) && 0 == peer->commit_cnt) { - /* this condition works only for local requests, server does - * count commits for local ranks, and check this count when - * local request. - * if that request performs for remote rank on the remote - * node (by direct modex) so `peer->commit_cnt` should be ignored, - * it is can not be counted for the remote side and this condition - * does not matter for remote case */ - return PMIX_ERR_NOT_FOUND; - } - proc.rank = rank; - PMIX_CONSTRUCT(&cb, pmix_cb_t); - /* this is a local request, so give the gds the option - * of returning a copy of the data, or a pointer to - * local storage */ - cb.proc = &proc; - cb.scope = scope; - cb.copy = false; - cb.info = cd->info; - cb.ninfo = cd->ninfo; - PMIX_GDS_FETCH_KV(rc, peer, &cb); - cb.info = NULL; - cb.ninfo = 0; - if (PMIX_SUCCESS == rc) { - found = true; - PMIX_CONSTRUCT(&pkt, pmix_buffer_t); - /* assemble the provided data into a byte object */ - if (PMIX_RANK_UNDEF == rank || diffnspace) { - PMIX_GDS_ASSEMB_KVS_REQ(rc, pmix_globals.mypeer, &proc, &cb.kvs, &pkt, cd); - } else { - PMIX_GDS_ASSEMB_KVS_REQ(rc, cd->peer, &proc, &cb.kvs, &pkt, cd); - } - if (rc != PMIX_SUCCESS) { + PMIX_DESTRUCT(&pkt); + } else { + PMIX_UNLOAD_BUFFER(&pkt, bo.bytes, bo.size); + PMIX_DESTRUCT(&pkt); + /* pack it for transmission */ + PMIX_BFROPS_PACK(rc, cd->peer, &pbkt, &bo, 1, PMIX_BYTE_OBJECT); + if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&pkt); PMIX_DESTRUCT(&pbkt); PMIX_DESTRUCT(&cb); return rc; } - if (PMIX_PEER_IS_V1(cd->peer)) { - /* if the client is using v1, then it expects the - * data returned to it in a different order than v2 - * - so we have to do a little gyration */ - /* pack the rank */ - PMIX_BFROPS_PACK(rc, cd->peer, &pbkt, &rank, 1, PMIX_PROC_RANK); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&pkt); - PMIX_DESTRUCT(&pbkt); - PMIX_DESTRUCT(&cb); - return rc; - } - /* now pack the data itself as a buffer */ - PMIX_BFROPS_PACK(rc, cd->peer, &pbkt, &pkt, 1, PMIX_BUFFER); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&pkt); - PMIX_DESTRUCT(&pbkt); - PMIX_DESTRUCT(&cb); - return rc; - } - PMIX_DESTRUCT(&pkt); - } else { - PMIX_UNLOAD_BUFFER(&pkt, bo.bytes, bo.size); - PMIX_DESTRUCT(&pkt); - /* pack it for transmission */ - PMIX_BFROPS_PACK(rc, cd->peer, &pbkt, &bo, 1, PMIX_BYTE_OBJECT); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&pbkt); - PMIX_DESTRUCT(&cb); - return rc; - } - } } - PMIX_DESTRUCT(&cb); } + PMIX_DESTRUCT(&cb); PMIX_UNLOAD_BUFFER(&pbkt, data, sz); PMIX_DESTRUCT(&pbkt); @@ -894,8 +865,8 @@ pmix_status_t status, pmix_dmdx_local_t *lcd) { pmix_dmdx_local_t *cd, *ptr; - pmix_dmdx_request_t *req; - pmix_server_caddy_t *scd; + pmix_dmdx_request_t *req, *rnext; + pmix_server_caddy_t scd; /* find corresponding request (if exists) */ if (NULL == lcd) { @@ -932,26 +903,37 @@ } } else if (NULL != nptr) { /* if we've got the blob - try to satisfy requests */ - /* run through all the requests to this rank */ + /* run through all the requests for this rank */ /* this info is going back to one of our peers, so provide a server * caddy with our peer in it so the data gets packed correctly */ - scd = PMIX_NEW(pmix_server_caddy_t); + PMIX_CONSTRUCT(&scd, pmix_server_caddy_t); PMIX_RETAIN(pmix_globals.mypeer); - scd->peer = pmix_globals.mypeer; + scd.peer = pmix_globals.mypeer; PMIX_LIST_FOREACH(req, &ptr->loc_reqs, pmix_dmdx_request_t) { pmix_status_t rc; - rc = _satisfy_request(nptr, rank, scd, req->cbfunc, req->cbdata, NULL); + bool diffnspace = !PMIX_CHECK_NSPACE(nptr->nspace, req->lcd->proc.nspace); + rc = _satisfy_request(nptr, rank, &scd, diffnspace, PMIX_REMOTE, req->cbfunc, req->cbdata); if( PMIX_SUCCESS != rc ){ /* if we can't satisfy this particular request (missing key?) */ req->cbfunc(rc, NULL, 0, req->cbdata, NULL, NULL); } } - PMIX_RELEASE(scd); + PMIX_DESTRUCT(&scd); } cleanup: /* remove all requests to this rank and cleanup the corresponding structure */ pmix_list_remove_item(&pmix_server_globals.local_reqs, &ptr->super); + /* the dmdx request is linked back to its local request for ease + * of lookup upon return from the server. However, this means that + * the refcount of the local request has been increased by the number + * dmdx requests attached to it. In order to release the local request's + * storage, we first have to drive the refcount down by releasing all + * of the associated dmdx requests */ + PMIX_LIST_FOREACH_SAFE(req, rnext, &ptr->loc_reqs, pmix_dmdx_request_t) { + pmix_list_remove_item(&ptr->loc_reqs, &req->super); + PMIX_RELEASE(req); // decrements refcount of ptr + } PMIX_RELEASE(ptr); return PMIX_SUCCESS; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/server/pmix_server_ops.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/server/pmix_server_ops.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/server/pmix_server_ops.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/server/pmix_server_ops.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,13 +1,13 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. - * Copyright (c) 2014-2018 Research Organization for Information Science + * Copyright (c) 2014-2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2014-2015 Artem Y. Polyakov . * All rights reserved. - * Copyright (c) 2016-2017 Mellanox Technologies, Inc. + * Copyright (c) 2016-2019 Mellanox Technologies, Inc. * All rights reserved. - * Copyright (c) 2016-2019 IBM Corporation. All rights reserved. + * Copyright (c) 2016-2020 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -15,13 +15,12 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include -#include +#include "src/include/pmix_stdint.h" +#include "src/include/pmix_socket_errno.h" -#include +#include "include/pmix_server.h" #include "src/include/pmix_globals.h" #ifdef HAVE_STRING_H @@ -55,15 +54,32 @@ #include "src/class/pmix_list.h" #include "src/mca/bfrops/bfrops.h" #include "src/mca/plog/plog.h" +#include "src/mca/pnet/pnet.h" #include "src/mca/psensor/psensor.h" #include "src/mca/ptl/base/base.h" #include "src/util/argv.h" #include "src/util/error.h" #include "src/util/output.h" #include "src/util/pmix_environ.h" +#include "src/mca/gds/base/base.h" #include "pmix_server_ops.h" +/* The rank_blob_t type to collect processes blobs, + * this list afterward will form a node modex blob. */ +typedef struct { + pmix_list_item_t super; + pmix_buffer_t *buf; +} rank_blob_t; + +static void bufdes(rank_blob_t *p) +{ + PMIX_RELEASE(p); +} +static PMIX_CLASS_INSTANCE(rank_blob_t, + pmix_list_item_t, + NULL, bufdes); + pmix_server_module_t pmix_host_server = {0}; pmix_status_t pmix_server_abort(pmix_peer_t *peer, pmix_buffer_t *buf, @@ -159,7 +175,7 @@ pmix_strncpy(proc.nspace, nptr->nspace, PMIX_MAX_NSLEN); proc.rank = info->pname.rank; - pmix_output_verbose(2, pmix_server_globals.base_output, + pmix_output_verbose(2, pmix_server_globals.fence_output, "%s:%d EXECUTE COMMIT FOR %s:%d", pmix_globals.myid.nspace, pmix_globals.myid.rank, @@ -403,19 +419,17 @@ trk->id = strdup(id); } - if (NULL != procs) { - /* copy the procs */ - PMIX_PROC_CREATE(trk->pcs, nprocs); - if (NULL == trk->pcs) { - PMIX_ERROR_LOG(PMIX_ERR_NOMEM); - PMIX_RELEASE(trk); - return NULL; - } - memcpy(trk->pcs, procs, nprocs * sizeof(pmix_proc_t)); - trk->npcs = nprocs; + /* copy the procs */ + PMIX_PROC_CREATE(trk->pcs, nprocs); + if (NULL == trk->pcs) { + PMIX_ERROR_LOG(PMIX_ERR_NOMEM); + PMIX_RELEASE(trk); + return NULL; } + memcpy(trk->pcs, procs, nprocs * sizeof(pmix_proc_t)); + trk->npcs = nprocs; trk->type = type; - trk->local = false; + trk->local = true; trk->nlocal = 0; all_def = true; @@ -481,8 +495,10 @@ pmix_output_verbose(5, pmix_server_globals.base_output, "new_tracker: unknown nspace %s", procs[i].nspace); + trk->local = false; continue; } + /* check and add uniq ns into trk nslist */ found = false; PMIX_LIST_FOREACH(nm, &trk->nslist, pmix_nspace_caddy_t) { @@ -571,6 +587,262 @@ PMIX_RELEASE(cd); } +static pmix_status_t _collect_data(pmix_server_trkr_t *trk, + pmix_buffer_t *buf) +{ + pmix_buffer_t bucket, *pbkt = NULL; + pmix_cb_t cb; + pmix_kval_t *kv; + pmix_byte_object_t bo; + pmix_server_caddy_t *scd; + pmix_proc_t pcs; + pmix_status_t rc = PMIX_SUCCESS; + pmix_rank_t rel_rank; + pmix_nspace_caddy_t *nm; + bool found; + pmix_list_t rank_blobs; + rank_blob_t *blob; + uint32_t kmap_size; + /* key names map, the position of the key name + * in the array determines the unique key index */ + char **kmap = NULL; + int i; + pmix_gds_modex_blob_info_t blob_info_byte = 0; + pmix_gds_modex_key_fmt_t kmap_type = PMIX_MODEX_KEY_INVALID; + + PMIX_CONSTRUCT(&bucket, pmix_buffer_t); + + if (PMIX_COLLECT_YES == trk->collect_type) { + pmix_output_verbose(2, pmix_server_globals.fence_output, + "fence - assembling data"); + + /* Evaluate key names sizes and their count to select + * a format to store key names: + * - keymap: use key-map in blob header for key-name resolve + * from idx: key names stored as indexes (avoid key duplication) + * - regular: key-names stored as is */ + if (PMIX_MODEX_KEY_INVALID == kmap_type) { + size_t key_fmt_size[PMIX_MODEX_KEY_MAX] = {0}; + pmix_value_array_t *key_count_array = PMIX_NEW(pmix_value_array_t); + uint32_t *key_count = NULL; + + pmix_value_array_init(key_count_array, sizeof(uint32_t)); + + PMIX_LIST_FOREACH(scd, &trk->local_cbs, pmix_server_caddy_t) { + pmix_strncpy(pcs.nspace, scd->peer->info->pname.nspace, + PMIX_MAX_NSLEN); + pcs.rank = scd->peer->info->pname.rank; + PMIX_CONSTRUCT(&cb, pmix_cb_t); + cb.proc = &pcs; + cb.scope = PMIX_REMOTE; + cb.copy = true; + PMIX_GDS_FETCH_KV(rc, pmix_globals.mypeer, &cb); + if (PMIX_SUCCESS == rc) { + int key_idx; + PMIX_LIST_FOREACH(kv, &cb.kvs, pmix_kval_t) { + rc = pmix_argv_append_unique_idx(&key_idx, &kmap, + kv->key); + if (pmix_value_array_get_size(key_count_array) < + (size_t)(key_idx+1)) { + size_t new_size; + size_t old_size = + pmix_value_array_get_size(key_count_array); + + pmix_value_array_set_size(key_count_array, + key_idx+1); + new_size = + pmix_value_array_get_size(key_count_array); + key_count = + PMIX_VALUE_ARRAY_GET_BASE(key_count_array, + uint32_t); + memset(key_count + old_size, 0, sizeof(uint32_t) * + (new_size - old_size)); + } + key_count = PMIX_VALUE_ARRAY_GET_BASE(key_count_array, + uint32_t); + key_count[key_idx]++; + } + } + } + + key_count = PMIX_VALUE_ARRAY_GET_BASE(key_count_array, uint32_t); + + for (i = 0; i < pmix_argv_count(kmap); i++) { + pmix_buffer_t tmp; + size_t kname_size; + size_t kidx_size; + + PMIX_CONSTRUCT(&tmp, pmix_buffer_t); + PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &tmp, &kmap[i], 1, + PMIX_STRING); + kname_size = tmp.bytes_used; + PMIX_DESTRUCT(&tmp); + PMIX_CONSTRUCT(&tmp, pmix_buffer_t); + PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &tmp, &i, 1, + PMIX_UINT32); + kidx_size = tmp.bytes_used; + PMIX_DESTRUCT(&tmp); + + /* calculate the key names sizes */ + key_fmt_size[PMIX_MODEX_KEY_NATIVE_FMT] = + kname_size * key_count[i]; + key_fmt_size[PMIX_MODEX_KEY_KEYMAP_FMT] = + kname_size + key_count[i]*kidx_size; + } + PMIX_RELEASE(key_count_array); + + /* select the most efficient key-name pack format */ + kmap_type = key_fmt_size[PMIX_MODEX_KEY_NATIVE_FMT] > + key_fmt_size[PMIX_MODEX_KEY_KEYMAP_FMT] ? + PMIX_MODEX_KEY_KEYMAP_FMT : PMIX_MODEX_KEY_NATIVE_FMT; + pmix_output_verbose(5, pmix_server_globals.base_output, + "key packing type %s", + kmap_type == PMIX_MODEX_KEY_KEYMAP_FMT ? + "kmap" : "native"); + } + PMIX_CONSTRUCT(&rank_blobs, pmix_list_t); + PMIX_LIST_FOREACH(scd, &trk->local_cbs, pmix_server_caddy_t) { + /* get any remote contribution - note that there + * may not be a contribution */ + pmix_strncpy(pcs.nspace, scd->peer->info->pname.nspace, + PMIX_MAX_NSLEN); + pcs.rank = scd->peer->info->pname.rank; + PMIX_CONSTRUCT(&cb, pmix_cb_t); + cb.proc = &pcs; + cb.scope = PMIX_REMOTE; + cb.copy = true; + PMIX_GDS_FETCH_KV(rc, pmix_globals.mypeer, &cb); + if (PMIX_SUCCESS == rc) { + /* calculate the throughout rank */ + rel_rank = 0; + found = false; + if (pmix_list_get_size(&trk->nslist) == 1) { + found = true; + } else { + PMIX_LIST_FOREACH(nm, &trk->nslist, pmix_nspace_caddy_t) { + if (0 == strcmp(nm->ns->nspace, pcs.nspace)) { + found = true; + break; + } + rel_rank += nm->ns->nprocs; + } + } + if (false == found) { + rc = PMIX_ERR_NOT_FOUND; + PMIX_ERROR_LOG(rc); + PMIX_DESTRUCT(&cb); + PMIX_DESTRUCT(&rank_blobs); + goto cleanup; + } + rel_rank += pcs.rank; + + /* pack the relative rank */ + pbkt = PMIX_NEW(pmix_buffer_t); + PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, pbkt, + &rel_rank, 1, PMIX_PROC_RANK); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_DESTRUCT(&cb); + PMIX_DESTRUCT(&rank_blobs); + PMIX_RELEASE(pbkt); + goto cleanup; + } + /* pack the returned kval's */ + PMIX_LIST_FOREACH(kv, &cb.kvs, pmix_kval_t) { + rc = pmix_gds_base_modex_pack_kval(kmap_type, pbkt, &kmap, + kv); + if (rc != PMIX_SUCCESS) { + PMIX_ERROR_LOG(rc); + PMIX_DESTRUCT(&cb); + PMIX_DESTRUCT(&rank_blobs); + PMIX_RELEASE(pbkt); + goto cleanup; + } + } + + /* add part of the process modex to the list */ + blob = PMIX_NEW(rank_blob_t); + blob->buf = pbkt; + pmix_list_append(&rank_blobs, &blob->super); + pbkt = NULL; + } + PMIX_DESTRUCT(&cb); + } + /* mark the collection type so we can check on the + * receiving end that all participants did the same. Note + * that if the receiving end thinks that the collect flag + * is false, then store_modex will not be called on that + * node and this information (and the flag) will be ignored, + * meaning that no error is generated! */ + blob_info_byte |= PMIX_GDS_COLLECT_BIT; + if (PMIX_MODEX_KEY_KEYMAP_FMT == kmap_type) { + blob_info_byte |= PMIX_GDS_KEYMAP_BIT; + } + /* pack the modex blob info byte */ + PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &bucket, + &blob_info_byte, 1, PMIX_BYTE); + + if (PMIX_MODEX_KEY_KEYMAP_FMT == kmap_type) { + /* pack node part of modex to `bucket` */ + /* pack the key names map for the remote server can + * use it to match key names by index */ + kmap_size = pmix_argv_count(kmap); + if (0 < kmap_size) { + PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &bucket, + &kmap_size, 1, PMIX_UINT32); + PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &bucket, + kmap, kmap_size, PMIX_STRING); + } + } + /* pack the collected blobs of processes */ + PMIX_LIST_FOREACH(blob, &rank_blobs, rank_blob_t) { + /* extract the blob */ + PMIX_UNLOAD_BUFFER(blob->buf, bo.bytes, bo.size); + /* pack the returned blob */ + PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &bucket, + &bo, 1, PMIX_BYTE_OBJECT); + PMIX_BYTE_OBJECT_DESTRUCT(&bo); // releases the data + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + goto cleanup; + } + } + PMIX_DESTRUCT(&rank_blobs); + } else { + /* mark the collection type so we can check on the + * receiving end that all participants did the same. + * Don't do it for non-debug mode so we don't unnecessarily + * send the collection bucket. The mdxcbfunc in the + * server only calls store_modex if the local collect + * flag is set to true. In debug mode, this check will + * cause the store_modex function to see that this node + * thought the collect flag was not set, and therefore + * generate an error */ +#if PMIX_ENABLE_DEBUG + /* pack the modex blob info byte */ + PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &bucket, + &blob_info_byte, 1, PMIX_BYTE); +#endif + } + if (!PMIX_BUFFER_IS_EMPTY(&bucket)) { + /* because the remote servers have to unpack things + * in chunks, we have to pack the bucket as a single + * byte object to allow remote unpack */ + PMIX_UNLOAD_BUFFER(&bucket, bo.bytes, bo.size); + PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, buf, + &bo, 1, PMIX_BYTE_OBJECT); + PMIX_BYTE_OBJECT_DESTRUCT(&bo); // releases the data + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + } + } + + cleanup: + PMIX_DESTRUCT(&bucket); + pmix_argv_free(kmap); + return rc; +} + pmix_status_t pmix_server_fence(pmix_server_caddy_t *cd, pmix_buffer_t *buf, pmix_modex_cbfunc_t modexcbfunc, @@ -579,28 +851,22 @@ int32_t cnt; pmix_status_t rc; size_t nprocs; - pmix_proc_t *procs=NULL, pcs; + pmix_proc_t *procs=NULL, *newprocs; bool collect_data = false; pmix_server_trkr_t *trk; char *data = NULL; size_t sz = 0; - pmix_buffer_t bucket, pbkt; - pmix_server_caddy_t *scd; - pmix_cb_t cb; - pmix_kval_t *kv; - pmix_byte_object_t bo; + pmix_buffer_t bucket; pmix_info_t *info = NULL; - size_t ninfo=0, n; + size_t ninfo=0, n, nmbrs, idx; struct timeval tv = {0, 0}; + pmix_list_t expand; + pmix_group_caddy_t *gcd; + pmix_group_t *grp; pmix_output_verbose(2, pmix_server_globals.fence_output, "recvd FENCE"); - if (NULL == pmix_host_server.fence_nb) { - PMIX_ERROR_LOG(PMIX_ERR_NOT_SUPPORTED); - return PMIX_ERR_NOT_SUPPORTED; - } - /* unpack the number of procs */ cnt = 1; PMIX_BFROPS_UNPACK(rc, cd->peer, buf, &nprocs, &cnt, PMIX_SIZE); @@ -628,6 +894,60 @@ goto cleanup; } + /* cycle thru the procs and check to see if any reference + * a PMIx group */ + nmbrs = nprocs; + PMIX_CONSTRUCT(&expand, pmix_list_t); + /* use groups as the outer-most loop as there will + * usually not be any */ + PMIX_LIST_FOREACH(grp, &pmix_server_globals.groups, pmix_group_t) { + for (n=0; n < nprocs; n++) { + if (PMIX_CHECK_NSPACE(procs[n].nspace, grp->grpid)) { + /* we need to replace this proc with grp members */ + gcd = PMIX_NEW(pmix_group_caddy_t); + gcd->grp = grp; + gcd->idx = n; + gcd->rank = procs[n].rank; + pmix_list_append(&expand, &gcd->super); + /* see how many need to come across */ + if (PMIX_RANK_WILDCARD == procs[n].rank) { + nmbrs += grp->nmbrs - 1; // account for replacing current proc + } + break; + } + } + } + + if (0 < pmix_list_get_size(&expand)) { + PMIX_PROC_CREATE(newprocs, nmbrs); + gcd = (pmix_group_caddy_t*)pmix_list_remove_first(&expand); + n=0; + idx = 0; + while (n < nmbrs) { + if (idx != gcd->idx) { + memcpy(&newprocs[n], &procs[idx], sizeof(pmix_proc_t)); + ++n; + } else { + /* if we are bringing over just one, then simply replace */ + if (PMIX_RANK_WILDCARD != gcd->rank) { + memcpy(&newprocs[n], &gcd->grp->members[gcd->rank], sizeof(pmix_proc_t)); + ++n; + } else { + /* take them all */ + memcpy(&newprocs[n], gcd->grp->members, gcd->grp->nmbrs * sizeof(pmix_proc_t)); + n += gcd->grp->nmbrs; + } + PMIX_RELEASE(gcd); + gcd = (pmix_group_caddy_t*)pmix_list_remove_first(&expand); + } + ++idx; + } + PMIX_PROC_FREE(procs, nprocs); + procs = newprocs; + nprocs = nmbrs; + } + PMIX_LIST_DESTRUCT(&expand); + /* unpack the number of provided info structs */ cnt = 1; PMIX_BFROPS_UNPACK(rc, cd->peer, buf, &ninfo, &cnt, PMIX_SIZE); @@ -699,6 +1019,7 @@ break; } } + /* we only save the info structs from the first caller * who provides them - it is a user error to provide * different values from different participants */ @@ -734,7 +1055,7 @@ "fence LOCALLY complete"); /* if this is a purely local fence (i.e., all participants are local), * then it is done and we notify accordingly */ - if (trk->local) { + if (pmix_server_globals.fence_localonly_opt && trk->local) { /* the modexcbfunc thread-shifts the call prior to processing, * so it is okay to call it directly from here. The switchyard * will acknowledge successful acceptance of the fence request, @@ -771,71 +1092,7 @@ * or global distribution */ PMIX_CONSTRUCT(&bucket, pmix_buffer_t); - - /* mark the collection type so we can check on the - * receiving end that all participants did the same */ - unsigned char tmp = (unsigned char)trk->collect_type; - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &bucket, - &tmp, 1, PMIX_BYTE); - - if (PMIX_COLLECT_YES == trk->collect_type) { - pmix_output_verbose(2, pmix_server_globals.fence_output, - "fence - assembling data"); - PMIX_LIST_FOREACH(scd, &trk->local_cbs, pmix_server_caddy_t) { - /* get any remote contribution - note that there - * may not be a contribution */ - pmix_strncpy(pcs.nspace, scd->peer->info->pname.nspace, PMIX_MAX_NSLEN); - pcs.rank = scd->peer->info->pname.rank; - PMIX_CONSTRUCT(&cb, pmix_cb_t); - cb.proc = &pcs; - cb.scope = PMIX_REMOTE; - cb.copy = true; - PMIX_GDS_FETCH_KV(rc, pmix_globals.mypeer, &cb); - if (PMIX_SUCCESS == rc) { - PMIX_CONSTRUCT(&pbkt, pmix_buffer_t); - /* pack the proc so we know the source */ - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &pbkt, - &pcs, 1, PMIX_PROC); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&cb); - goto cleanup; - } - /* pack the returned kval's */ - PMIX_LIST_FOREACH(kv, &cb.kvs, pmix_kval_t) { - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &pbkt, kv, 1, PMIX_KVAL); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&cb); - goto cleanup; - } - } - /* extract the blob */ - PMIX_UNLOAD_BUFFER(&pbkt, bo.bytes, bo.size); - PMIX_DESTRUCT(&pbkt); - /* pack the returned blob */ - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &bucket, - &bo, 1, PMIX_BYTE_OBJECT); - PMIX_BYTE_OBJECT_DESTRUCT(&bo); - if (PMIX_SUCCESS != rc) { - PMIX_ERROR_LOG(rc); - PMIX_DESTRUCT(&cb); - goto cleanup; - } - } - PMIX_DESTRUCT(&cb); - } - } - /* because the remote servers have to unpack things - * in chunks, we have to pack the bucket as a single - * byte object to allow remote unpack */ - PMIX_UNLOAD_BUFFER(&bucket, bo.bytes, bo.size); - PMIX_DESTRUCT(&bucket); - PMIX_CONSTRUCT(&bucket, pmix_buffer_t); - PMIX_BFROPS_PACK(rc, pmix_globals.mypeer, &bucket, - &bo, 1, PMIX_BYTE_OBJECT); - PMIX_BYTE_OBJECT_DESTRUCT(&bo); // releases the data - if (PMIX_SUCCESS != rc) { + if (PMIX_SUCCESS != (rc = _collect_data(trk, &bucket))) { PMIX_ERROR_LOG(rc); PMIX_DESTRUCT(&bucket); /* clear the caddy from this tracker so it can be @@ -1219,7 +1476,7 @@ PMIX_PROC_CREATE(req->procs, req->nprocs); PMIX_LOAD_PROCID(&req->procs[0], nspace, PMIX_RANK_WILDCARD); req->channels = cd->channels; - req->refid = pmix_pointer_array_add(&pmix_globals.iof_requests, req); + req->local_id = pmix_pointer_array_add(&pmix_globals.iof_requests, req); /* process any cached IO */ PMIX_LIST_FOREACH_SAFE(iof, ionext, &pmix_server_globals.iof, pmix_iof_cache_t) { /* if the channels don't match, then ignore it */ @@ -1260,6 +1517,28 @@ PMIX_RELEASE(msg); break; } + /* provide their local id */ + PMIX_BFROPS_PACK(rc, req->requestor, msg, &req->remote_id, 1, PMIX_SIZE); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE(msg); + break; + } + /* provide any cached info */ + PMIX_BFROPS_PACK(rc, req->requestor, msg, &iof->ninfo, 1, PMIX_SIZE); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE(msg); + break; + } + if (0 < iof->ninfo) { + PMIX_BFROPS_PACK(rc, req->requestor, msg, iof->info, iof->ninfo, PMIX_INFO); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE(msg); + break; + } + } /* pack the data */ PMIX_BFROPS_PACK(rc, req->requestor, msg, iof->bo, 1, PMIX_BYTE_OBJECT); if (PMIX_SUCCESS != rc) { @@ -1417,8 +1696,7 @@ } } /* call the local server */ - pmix_strncpy(proc.nspace, peer->info->pname.nspace, PMIX_MAX_NSLEN); - proc.rank = peer->info->pname.rank; + PMIX_LOAD_PROCID(&proc, peer->info->pname.nspace, peer->info->pname.rank); rc = pmix_host_server.spawn(&proc, cd->info, cd->ninfo, cd->apps, cd->napps, spcbfunc, cd); cleanup: @@ -2056,21 +2334,11 @@ for (n=0; n < ncodes; n++) { found = false; PMIX_LIST_FOREACH(reginfo, &pmix_server_globals.events, pmix_regevents_info_t) { - if (NULL == codes) { - if (PMIX_MAX_ERR_CONSTANT == reginfo->code) { - /* both are default handlers */ - found = true; - break; - } else { - continue; - } - } else { - if (PMIX_MAX_ERR_CONSTANT == reginfo->code) { - continue; - } else if (codes[n] == reginfo->code) { - found = true; - break; - } + if (PMIX_MAX_ERR_CONSTANT == reginfo->code) { + continue; + } else if (codes[n] == reginfo->code) { + found = true; + break; } } if (found) { @@ -2096,11 +2364,7 @@ rc = PMIX_ERR_NOMEM; goto cleanup; } - if (NULL == codes) { - reginfo->code = PMIX_MAX_ERR_CONSTANT; - } else { - reginfo->code = codes[n]; - } + reginfo->code = codes[n]; pmix_list_append(&pmix_server_globals.events, ®info->super); prev = PMIX_NEW(pmix_peer_events_info_t); if (NULL == prev) { @@ -2393,7 +2657,8 @@ } /* add an info object to mark that we recvd this internally */ - PMIX_INFO_LOAD(&cd->info[ninfo], PMIX_SERVER_INTERNAL_NOTIFY, NULL, PMIX_BOOL); + PMIX_INFO_LOAD(&cd->info[cd->ninfo-1], PMIX_SERVER_INTERNAL_NOTIFY, NULL, PMIX_BOOL); + /* process it */ if (PMIX_SUCCESS != (rc = pmix_server_notify_client_of_event(cd->status, &cd->source, @@ -2402,9 +2667,6 @@ intermed_step, cd))) { goto exit; } - if (PMIX_SUCCESS != rc) { - PMIX_RELEASE(cd); - } return rc; exit: @@ -2412,6 +2674,7 @@ return rc; } + pmix_status_t pmix_server_query(pmix_peer_t *peer, pmix_buffer_t *buf, pmix_info_cbfunc_t cbfunc, @@ -3279,6 +3542,7 @@ pmix_status_t rc; pmix_setup_caddy_t *cd; pmix_iof_req_t *req; + size_t refid; pmix_output_verbose(2, pmix_server_globals.iof_output, "recvd IOF PULL request from client"); @@ -3337,6 +3601,14 @@ goto exit; } + /* unpack their local reference id */ + cnt = 1; + PMIX_BFROPS_UNPACK(rc, peer, buf, &refid, &cnt, PMIX_SIZE); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + goto exit; + } + /* add this peer/source/channel combination */ req = PMIX_NEW(pmix_iof_req_t); if (NULL == req) { @@ -3351,8 +3623,9 @@ memcpy(req->procs, cd->procs, req->nprocs * sizeof(pmix_proc_t)); } req->channels = cd->channels; - req->refid = pmix_pointer_array_add(&pmix_globals.iof_requests, req); - cd->ncodes = req->refid; + req->remote_id = refid; + req->local_id = pmix_pointer_array_add(&pmix_globals.iof_requests, req); + cd->ncodes = req->local_id; /* ask the host to execute the request */ if (PMIX_SUCCESS != (rc = pmix_host_server.iof_pull(cd->procs, cd->nprocs, @@ -3429,6 +3702,9 @@ rc = PMIX_ERR_NOT_FOUND; goto exit; } + pmix_pointer_array_set_item(&pmix_globals.iof_requests, refid, NULL); + PMIX_RELEASE(req); + /* tell the server to stop */ if (PMIX_SUCCESS != (rc = pmix_host_server.iof_pull(cd->procs, cd->nprocs, cd->info, cd->ninfo, @@ -3537,7 +3813,10 @@ cnt = 1; PMIX_BFROPS_UNPACK(rc, peer, buf, cd->bo, &cnt, PMIX_BYTE_OBJECT); - if (PMIX_SUCCESS != rc) { + if (PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER == rc) { + /* it is okay for them to not send data */ + PMIX_BYTE_OBJECT_FREE(cd->bo, 1); + } else if (PMIX_SUCCESS != rc) { PMIX_ERROR_LOG(rc); goto error; } @@ -3548,20 +3827,24 @@ if (PMIX_SUCCESS != (rc = pmix_host_server.push_stdin(&source, cd->procs, cd->nprocs, cd->info, cd->ninfo, cd->bo, stdcbfunc, cd))) { - goto error; + if (PMIX_OPERATION_SUCCEEDED != rc) { + goto error; + } } - return PMIX_SUCCESS; + return rc; error: PMIX_RELEASE(cd); return rc; } + /***** INSTANCE SERVER LIBRARY CLASSES *****/ static void tcon(pmix_server_trkr_t *t) { t->event_active = false; t->host_called = false; + t->local = true; t->id = NULL; memset(t->pname.nspace, 0, PMIX_MAX_NSLEN+1); t->pname.rank = PMIX_RANK_UNDEF; @@ -3580,13 +3863,13 @@ t->modexcbfunc = NULL; t->op_cbfunc = NULL; t->hybrid = false; + t->cbdata = NULL; } static void tdes(pmix_server_trkr_t *t) { if (NULL != t->id) { free(t->id); } - PMIX_LIST_DESTRUCT(&t->nslist); PMIX_DESTRUCT_LOCK(&t->lock); if (NULL != t->pcs) { free(t->pcs); @@ -3595,6 +3878,7 @@ if (NULL != t->info) { PMIX_INFO_FREE(t->info, t->ninfo); } + PMIX_DESTRUCT(&t->nslist); } PMIX_CLASS_INSTANCE(pmix_server_trkr_t, pmix_list_item_t, @@ -3620,11 +3904,15 @@ if (NULL != cd->peer) { PMIX_RELEASE(cd->peer); } + if (NULL != cd->info) { + PMIX_INFO_FREE(cd->info, cd->ninfo); + } } PMIX_CLASS_INSTANCE(pmix_server_caddy_t, pmix_list_item_t, cdcon, cddes); + static void scadcon(pmix_setup_caddy_t *p) { p->peer = NULL; @@ -3670,47 +3958,6 @@ pmix_object_t, scadcon, scaddes); -static void ncon(pmix_notify_caddy_t *p) -{ - PMIX_CONSTRUCT_LOCK(&p->lock); -#if defined(__linux__) && OPAL_HAVE_CLOCK_GETTIME - struct timespec tp; - (void) clock_gettime(CLOCK_MONOTONIC, &tp); - p->ts = tp.tv_sec; -#else - /* Fall back to gettimeofday() if we have nothing else */ - struct timeval tv; - gettimeofday(&tv, NULL); - p->ts = tv.tv_sec; -#endif - p->room = -1; - memset(p->source.nspace, 0, PMIX_MAX_NSLEN+1); - p->source.rank = PMIX_RANK_UNDEF; - p->range = PMIX_RANGE_UNDEF; - p->targets = NULL; - p->ntargets = 0; - p->nleft = SIZE_MAX; - p->affected = NULL; - p->naffected = 0; - p->nondefault = false; - p->info = NULL; - p->ninfo = 0; -} -static void ndes(pmix_notify_caddy_t *p) -{ - PMIX_DESTRUCT_LOCK(&p->lock); - if (NULL != p->info) { - PMIX_INFO_FREE(p->info, p->ninfo); - } - PMIX_PROC_FREE(p->affected, p->naffected); - if (NULL != p->targets) { - free(p->targets); - } -} -PMIX_CLASS_INSTANCE(pmix_notify_caddy_t, - pmix_object_t, - ncon, ndes); - PMIX_CLASS_INSTANCE(pmix_trkr_caddy_t, pmix_object_t, @@ -3822,6 +4069,29 @@ pmix_object_t, ilcon, ildes); +static void grcon(pmix_group_t *p) +{ + p->grpid = NULL; + p->members = NULL; + p->nmbrs = 0; +} +static void grdes(pmix_group_t *p) +{ + if (NULL != p->grpid) { + free(p->grpid); + } + if (NULL != p->members) { + PMIX_PROC_FREE(p->members, p->nmbrs); + } +} +PMIX_CLASS_INSTANCE(pmix_group_t, + pmix_list_item_t, + grcon, grdes); + +PMIX_CLASS_INSTANCE(pmix_group_caddy_t, + pmix_list_item_t, + NULL, NULL); + static void iocon(pmix_iof_cache_t *p) { p->bo = NULL; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/server/pmix_server_ops.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/server/pmix_server_ops.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/server/pmix_server_ops.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/server/pmix_server_ops.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,11 +1,11 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* - * Copyright (c) 2015-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Artem Y. Polyakov . * All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. * All rights reserved. - * Copyright (c) 2016 IBM Corporation. All rights reserved. + * Copyright (c) 2016-2020 IBM Corporation. All rights reserved. * Copyright (c) 2016-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -19,12 +19,12 @@ #include #endif -#include +#include "src/include/pmix_config.h" #include "src/include/types.h" -#include +#include "include/pmix_common.h" -#include -#include +#include "src/class/pmix_hotel.h" +#include "include/pmix_server.h" #include "src/threads/threads.h" #include "src/include/pmix_globals.h" #include "src/util/hash.h" @@ -109,7 +109,7 @@ typedef struct { pmix_list_item_t super; pmix_proc_t proc; // id of proc whose data is being requested - pmix_list_t loc_reqs; // list of pmix_dmdx_request_t elem's keeping track of + pmix_list_t loc_reqs; // list of pmix_dmdx_request_t elem is keeping track of // all local ranks that are interested in this namespace-rank pmix_info_t *info; // array of info structs for this request size_t ninfo; // number of info structs @@ -145,6 +145,22 @@ typedef struct { pmix_list_item_t super; + char *grpid; + pmix_proc_t *members; + size_t nmbrs; +} pmix_group_t; +PMIX_CLASS_DECLARATION(pmix_group_t); + +typedef struct { + pmix_list_item_t super; + pmix_group_t *grp; + pmix_rank_t rank; + size_t idx; +} pmix_group_caddy_t; +PMIX_CLASS_DECLARATION(pmix_group_caddy_t); + +typedef struct { + pmix_list_item_t super; pmix_proc_t source; pmix_iof_channel_t channel; pmix_byte_object_t *bo; @@ -161,11 +177,13 @@ pmix_list_t local_reqs; // list of pmix_dmdx_local_t awaiting arrival of data from local neighbours pmix_list_t gdata; // cache of data given to me for passing to all clients pmix_list_t events; // list of pmix_regevents_info_t registered events + pmix_list_t groups; // list of pmix_group_t group memberships pmix_list_t iof; // IO to be forwarded to clients size_t max_iof_cache; // max number of IOF messages to cache bool tool_connections_allowed; char *tmpdir; // temporary directory for this server char *system_tmpdir; // system tmpdir + bool fence_localonly_opt; // local-only fence optimization // verbosity for server get operations int get_output; int get_verbose; @@ -217,133 +235,133 @@ -bool pmix_server_trk_update(pmix_server_trkr_t *trk); +PMIX_EXPORT bool pmix_server_trk_update(pmix_server_trkr_t *trk); + +PMIX_EXPORT void pmix_pending_nspace_requests(pmix_namespace_t *nptr); +PMIX_EXPORT pmix_status_t pmix_pending_resolve(pmix_namespace_t *nptr, pmix_rank_t rank, + pmix_status_t status, pmix_dmdx_local_t *lcd); + + +PMIX_EXPORT pmix_status_t pmix_server_abort(pmix_peer_t *peer, pmix_buffer_t *buf, + pmix_op_cbfunc_t cbfunc, void *cbdata); + +PMIX_EXPORT pmix_status_t pmix_server_commit(pmix_peer_t *peer, pmix_buffer_t *buf); -void pmix_pending_nspace_requests(pmix_namespace_t *nptr); -pmix_status_t pmix_pending_resolve(pmix_namespace_t *nptr, pmix_rank_t rank, - pmix_status_t status, pmix_dmdx_local_t *lcd); - - -pmix_status_t pmix_server_abort(pmix_peer_t *peer, pmix_buffer_t *buf, - pmix_op_cbfunc_t cbfunc, void *cbdata); - -pmix_status_t pmix_server_commit(pmix_peer_t *peer, pmix_buffer_t *buf); - -pmix_status_t pmix_server_fence(pmix_server_caddy_t *cd, - pmix_buffer_t *buf, - pmix_modex_cbfunc_t modexcbfunc, - pmix_op_cbfunc_t opcbfunc); - -pmix_status_t pmix_server_get(pmix_buffer_t *buf, - pmix_modex_cbfunc_t cbfunc, - void *cbdata); - -pmix_status_t pmix_server_publish(pmix_peer_t *peer, - pmix_buffer_t *buf, - pmix_op_cbfunc_t cbfunc, - void *cbdata); - -pmix_status_t pmix_server_lookup(pmix_peer_t *peer, - pmix_buffer_t *buf, - pmix_lookup_cbfunc_t cbfunc, - void *cbdata); - -pmix_status_t pmix_server_unpublish(pmix_peer_t *peer, - pmix_buffer_t *buf, - pmix_op_cbfunc_t cbfunc, - void *cbdata); - -pmix_status_t pmix_server_spawn(pmix_peer_t *peer, - pmix_buffer_t *buf, - pmix_spawn_cbfunc_t cbfunc, - void *cbdata); - -pmix_status_t pmix_server_connect(pmix_server_caddy_t *cd, - pmix_buffer_t *buf, - pmix_op_cbfunc_t cbfunc); - -pmix_status_t pmix_server_disconnect(pmix_server_caddy_t *cd, - pmix_buffer_t *buf, - pmix_op_cbfunc_t cbfunc); - -pmix_status_t pmix_server_notify_error(pmix_status_t status, - pmix_proc_t procs[], size_t nprocs, - pmix_proc_t error_procs[], size_t error_nprocs, - pmix_info_t info[], size_t ninfo, - pmix_op_cbfunc_t cbfunc, void *cbdata); +PMIX_EXPORT pmix_status_t pmix_server_fence(pmix_server_caddy_t *cd, + pmix_buffer_t *buf, + pmix_modex_cbfunc_t modexcbfunc, + pmix_op_cbfunc_t opcbfunc); -pmix_status_t pmix_server_register_events(pmix_peer_t *peer, +PMIX_EXPORT pmix_status_t pmix_server_get(pmix_buffer_t *buf, + pmix_modex_cbfunc_t cbfunc, + void *cbdata); + +PMIX_EXPORT pmix_status_t pmix_server_publish(pmix_peer_t *peer, + pmix_buffer_t *buf, + pmix_op_cbfunc_t cbfunc, + void *cbdata); + +PMIX_EXPORT pmix_status_t pmix_server_lookup(pmix_peer_t *peer, + pmix_buffer_t *buf, + pmix_lookup_cbfunc_t cbfunc, + void *cbdata); + +PMIX_EXPORT pmix_status_t pmix_server_unpublish(pmix_peer_t *peer, + pmix_buffer_t *buf, + pmix_op_cbfunc_t cbfunc, + void *cbdata); + +PMIX_EXPORT pmix_status_t pmix_server_spawn(pmix_peer_t *peer, + pmix_buffer_t *buf, + pmix_spawn_cbfunc_t cbfunc, + void *cbdata); + +PMIX_EXPORT pmix_status_t pmix_server_connect(pmix_server_caddy_t *cd, + pmix_buffer_t *buf, + pmix_op_cbfunc_t cbfunc); + +PMIX_EXPORT pmix_status_t pmix_server_disconnect(pmix_server_caddy_t *cd, + pmix_buffer_t *buf, + pmix_op_cbfunc_t cbfunc); + +PMIX_EXPORT pmix_status_t pmix_server_notify_error(pmix_status_t status, + pmix_proc_t procs[], size_t nprocs, + pmix_proc_t error_procs[], size_t error_nprocs, + pmix_info_t info[], size_t ninfo, + pmix_op_cbfunc_t cbfunc, void *cbdata); + +PMIX_EXPORT pmix_status_t pmix_server_register_events(pmix_peer_t *peer, + pmix_buffer_t *buf, + pmix_op_cbfunc_t cbfunc, + void *cbdata); + +PMIX_EXPORT void pmix_server_deregister_events(pmix_peer_t *peer, + pmix_buffer_t *buf); + +PMIX_EXPORT pmix_status_t pmix_server_query(pmix_peer_t *peer, + pmix_buffer_t *buf, + pmix_info_cbfunc_t cbfunc, + void *cbdata); + +PMIX_EXPORT pmix_status_t pmix_server_log(pmix_peer_t *peer, pmix_buffer_t *buf, pmix_op_cbfunc_t cbfunc, void *cbdata); -void pmix_server_deregister_events(pmix_peer_t *peer, - pmix_buffer_t *buf); - -pmix_status_t pmix_server_query(pmix_peer_t *peer, - pmix_buffer_t *buf, - pmix_info_cbfunc_t cbfunc, - void *cbdata); - -pmix_status_t pmix_server_log(pmix_peer_t *peer, - pmix_buffer_t *buf, - pmix_op_cbfunc_t cbfunc, - void *cbdata); - -pmix_status_t pmix_server_alloc(pmix_peer_t *peer, - pmix_buffer_t *buf, - pmix_info_cbfunc_t cbfunc, - void *cbdata); - -pmix_status_t pmix_server_job_ctrl(pmix_peer_t *peer, - pmix_buffer_t *buf, - pmix_info_cbfunc_t cbfunc, - void *cbdata); - -pmix_status_t pmix_server_monitor(pmix_peer_t *peer, - pmix_buffer_t *buf, - pmix_info_cbfunc_t cbfunc, - void *cbdata); - -pmix_status_t pmix_server_get_credential(pmix_peer_t *peer, - pmix_buffer_t *buf, - pmix_credential_cbfunc_t cbfunc, - void *cbdata); +PMIX_EXPORT pmix_status_t pmix_server_alloc(pmix_peer_t *peer, + pmix_buffer_t *buf, + pmix_info_cbfunc_t cbfunc, + void *cbdata); + +PMIX_EXPORT pmix_status_t pmix_server_job_ctrl(pmix_peer_t *peer, + pmix_buffer_t *buf, + pmix_info_cbfunc_t cbfunc, + void *cbdata); -pmix_status_t pmix_server_validate_credential(pmix_peer_t *peer, +PMIX_EXPORT pmix_status_t pmix_server_monitor(pmix_peer_t *peer, pmix_buffer_t *buf, - pmix_validation_cbfunc_t cbfunc, + pmix_info_cbfunc_t cbfunc, void *cbdata); -pmix_status_t pmix_server_iofreg(pmix_peer_t *peer, - pmix_buffer_t *buf, - pmix_op_cbfunc_t cbfunc, - void *cbdata); - -pmix_status_t pmix_server_iofstdin(pmix_peer_t *peer, - pmix_buffer_t *buf, - pmix_op_cbfunc_t cbfunc, - void *cbdata); - -pmix_status_t pmix_server_iofdereg(pmix_peer_t *peer, - pmix_buffer_t *buf, - pmix_op_cbfunc_t cbfunc, - void *cbdata); - -pmix_status_t pmix_server_event_recvd_from_client(pmix_peer_t *peer, - pmix_buffer_t *buf, - pmix_op_cbfunc_t cbfunc, - void *cbdata); -void pmix_server_execute_collective(int sd, short args, void *cbdata); - -pmix_status_t pmix_server_initialize(void); - -void pmix_server_message_handler(struct pmix_peer_t *pr, - pmix_ptl_hdr_t *hdr, - pmix_buffer_t *buf, void *cbdata); +PMIX_EXPORT pmix_status_t pmix_server_get_credential(pmix_peer_t *peer, + pmix_buffer_t *buf, + pmix_credential_cbfunc_t cbfunc, + void *cbdata); + +PMIX_EXPORT pmix_status_t pmix_server_validate_credential(pmix_peer_t *peer, + pmix_buffer_t *buf, + pmix_validation_cbfunc_t cbfunc, + void *cbdata); + +PMIX_EXPORT pmix_status_t pmix_server_iofreg(pmix_peer_t *peer, + pmix_buffer_t *buf, + pmix_op_cbfunc_t cbfunc, + void *cbdata); + +PMIX_EXPORT pmix_status_t pmix_server_iofstdin(pmix_peer_t *peer, + pmix_buffer_t *buf, + pmix_op_cbfunc_t cbfunc, + void *cbdata); + +PMIX_EXPORT pmix_status_t pmix_server_iofdereg(pmix_peer_t *peer, + pmix_buffer_t *buf, + pmix_op_cbfunc_t cbfunc, + void *cbdata); + +PMIX_EXPORT pmix_status_t pmix_server_event_recvd_from_client(pmix_peer_t *peer, + pmix_buffer_t *buf, + pmix_op_cbfunc_t cbfunc, + void *cbdata); +PMIX_EXPORT void pmix_server_execute_collective(int sd, short args, void *cbdata); + +PMIX_EXPORT pmix_status_t pmix_server_initialize(void); + +PMIX_EXPORT void pmix_server_message_handler(struct pmix_peer_t *pr, + pmix_ptl_hdr_t *hdr, + pmix_buffer_t *buf, void *cbdata); -void pmix_server_purge_events(pmix_peer_t *peer, - pmix_proc_t *proc); +PMIX_EXPORT void pmix_server_purge_events(pmix_peer_t *peer, + pmix_proc_t *proc); PMIX_EXPORT extern pmix_server_module_t pmix_host_server; PMIX_EXPORT extern pmix_server_globals_t pmix_server_globals; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/threads/Makefile.include openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/threads/Makefile.include --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/threads/Makefile.include 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/threads/Makefile.include 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ # Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2015 Research Organization for Information Science # and Technology (RIST). All rights reserved. -# Copyright (c) 2017 Intel, Inc. All rights reserved. +# Copyright (c) 2017-2019 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -30,7 +30,7 @@ threads/threads.h \ threads/tsd.h \ threads/wait_sync.h \ - threads/thread_usage.h + threads/thread_usage.h sources += \ threads/mutex.c \ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/threads/mutex_unix.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/threads/mutex_unix.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/threads/mutex_unix.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/threads/mutex_unix.h 2022-05-29 09:51:40.000000000 +0000 @@ -14,7 +14,7 @@ * reserved. * Copyright (c) 2015-2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2017-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -77,14 +77,14 @@ .m_lock_debug = 0, \ .m_lock_file = NULL, \ .m_lock_line = 0, \ - .m_lock_atomic = {PMIX_ATOMIC_LOCK_UNLOCKED}, \ + .m_lock_atomic = PMIX_ATOMIC_LOCK_INIT, \ } #else #define PMIX_MUTEX_STATIC_INIT \ { \ .super = PMIX_OBJ_STATIC_INIT(pmix_mutex_t), \ .m_lock_pthread = PTHREAD_MUTEX_INITIALIZER, \ - .m_lock_atomic = {PMIX_ATOMIC_LOCK_UNLOCKED}, \ + .m_lock_atomic = PMIX_ATOMIC_LOCK_INIT, \ } #endif @@ -98,14 +98,14 @@ .m_lock_debug = 0, \ .m_lock_file = NULL, \ .m_lock_line = 0, \ - .m_lock_atomic = {PMIX_ATOMIC_LOCK_UNLOCKED}, \ + .m_lock_atomic = PMIX_ATOMIC_LOCK_INIT, \ } #else #define PMIX_RECURSIVE_MUTEX_STATIC_INIT \ { \ .super = PMIX_OBJ_STATIC_INIT(pmix_mutex_t), \ .m_lock_pthread = PMIX_PTHREAD_RECURSIVE_MUTEX_INITIALIZER, \ - .m_lock_atomic = {PMIX_ATOMIC_LOCK_UNLOCKED}, \ + .m_lock_atomic = PMIX_ATOMIC_LOCK_INIT, \ } #endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/threads/thread.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/threads/thread.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/threads/thread.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/threads/thread.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015-2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2017 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -24,7 +24,7 @@ #include "src/threads/threads.h" #include "src/threads/tsd.h" -#include "pmix_common.h" +#include "include/pmix_common.h" bool pmix_debug_threads = false; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/threads/threads.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/threads/threads.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/threads/threads.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/threads/threads.h 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2015-2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2017-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2019 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -75,6 +75,7 @@ do { \ PMIX_CONSTRUCT(&(l)->mutex, pmix_mutex_t); \ pthread_cond_init(&(l)->cond, NULL); \ + /* coverity[missing_lock : FALSE] */ \ (l)->active = true; \ } while(0) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/threads/thread_usage.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/threads/thread_usage.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/threads/thread_usage.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/threads/thread_usage.h 2022-05-29 09:51:40.000000000 +0000 @@ -15,7 +15,7 @@ * and Technology (RIST). All rights reserved. * Copyright (c) 2015-2017 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2018 Intel, Inc. All rights reserved. + * Copyright (c) 2018-2019 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -26,7 +26,7 @@ #if !defined(PMIX_THREAD_USAGE_H) #define PMIX_THREAD_USAGE_H -#include "pmix_config.h" +#include "src/include/pmix_config.h" #include "src/atomics/sys/atomic.h" #include "src/include/prefetch.h" @@ -37,24 +37,24 @@ */ #define PMIX_THREAD_DEFINE_ATOMIC_OP(type, name, operator, suffix) \ -static inline type pmix_thread_ ## name ## _fetch_ ## suffix (pmix_atomic_ ## type *addr, type delta) \ +__pmix_attribute_always_inline__ static inline type pmix_thread_ ## name ## _fetch_ ## suffix (pmix_atomic_ ## type *addr, type delta) \ { \ return pmix_atomic_ ## name ## _fetch_ ## suffix (addr, delta); \ } \ \ -static inline type pmix_thread_fetch_ ## name ## _ ## suffix (pmix_atomic_ ## type *addr, type delta) \ +__pmix_attribute_always_inline__ static inline type pmix_thread_fetch_ ## name ## _ ## suffix (pmix_atomic_ ## type *addr, type delta) \ { \ return pmix_atomic_fetch_ ## name ## _ ## suffix (addr, delta); \ } #define PMIX_THREAD_DEFINE_ATOMIC_COMPARE_EXCHANGE(type, addr_type, suffix) \ -static inline bool pmix_thread_compare_exchange_strong_ ## suffix (pmix_atomic_ ## addr_type *addr, type *compare, type value) \ +__pmix_attribute_always_inline__ static inline bool pmix_thread_compare_exchange_strong_ ## suffix (pmix_atomic_ ## addr_type *addr, type *compare, type value) \ { \ return pmix_atomic_compare_exchange_strong_ ## suffix (addr, (addr_type *) compare, (addr_type) value); \ } #define PMIX_THREAD_DEFINE_ATOMIC_SWAP(type, addr_type, suffix) \ -static inline type pmix_thread_swap_ ## suffix (pmix_atomic_ ## addr_type *ptr, type newvalue) \ +__pmix_attribute_always_inline__ static inline type pmix_thread_swap_ ## suffix (pmix_atomic_ ## addr_type *ptr, type newvalue) \ { \ return (type) pmix_atomic_swap_ ## suffix (ptr, (addr_type) newvalue); \ } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/threads/tsd.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/threads/tsd.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/threads/tsd.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/threads/tsd.h 2022-05-29 09:51:40.000000000 +0000 @@ -4,7 +4,7 @@ * Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015-2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2017-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -20,7 +20,7 @@ #include -#include "pmix_common.h" +#include "include/pmix_common.h" BEGIN_C_DECLS diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tool/pmix_tool.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tool/pmix_tool.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tool/pmix_tool.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tool/pmix_tool.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,8 +1,8 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. - * Copyright (c) 2014-2016 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2014-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2014 Artem Y. Polyakov . * All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. @@ -15,14 +15,12 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include -#include +#include "src/include/pmix_socket_errno.h" #include "src/client/pmix_client_ops.h" -#include -#include +#include "include/pmix_tool.h" #include "src/include/pmix_globals.h" @@ -49,11 +47,6 @@ #include #endif /* HAVE_DIRENT_H */ -#include PMIX_EVENT_HEADER -#if ! PMIX_HAVE_LIBEV -#include PMIX_EVENT2_THREAD_HEADER -#endif - #include "src/class/pmix_list.h" #include "src/util/argv.h" #include "src/util/error.h" @@ -70,17 +63,64 @@ #include "src/mca/psec/psec.h" #include "src/include/pmix_globals.h" #include "src/common/pmix_iof.h" +#include "src/client/pmix_client_ops.h" #include "src/server/pmix_server_ops.h" #define PMIX_MAX_RETRIES 10 -extern pmix_client_globals_t pmix_client_globals; static pmix_event_t stdinsig; static pmix_iof_read_event_t stdinev; static void _notify_complete(pmix_status_t status, void *cbdata) { pmix_event_chain_t *chain = (pmix_event_chain_t*)cbdata; + pmix_notify_caddy_t *cd; + size_t n; + pmix_status_t rc; + + PMIX_ACQUIRE_OBJECT(chain); + + /* if the event wasn't found, then cache it as it might + * be registered later */ + if (PMIX_ERR_NOT_FOUND == status && !chain->cached) { + cd = PMIX_NEW(pmix_notify_caddy_t); + cd->status = chain->status; + PMIX_LOAD_PROCID(&cd->source, chain->source.nspace, chain->source.rank); + cd->range = chain->range; + if (0 < chain->ninfo) { + cd->ninfo = chain->ninfo; + PMIX_INFO_CREATE(cd->info, cd->ninfo); + cd->nondefault = chain->nondefault; + /* need to copy the info */ + for (n=0; n < cd->ninfo; n++) { + PMIX_INFO_XFER(&cd->info[n], &chain->info[n]); + } + } + if (NULL != chain->targets) { + cd->ntargets = chain->ntargets; + PMIX_PROC_CREATE(cd->targets, cd->ntargets); + memcpy(cd->targets, chain->targets, cd->ntargets * sizeof(pmix_proc_t)); + } + if (NULL != chain->affected) { + cd->naffected = chain->naffected; + PMIX_PROC_CREATE(cd->affected, cd->naffected); + if (NULL == cd->affected) { + cd->naffected = 0; + goto cleanup; + } + memcpy(cd->affected, chain->affected, cd->naffected * sizeof(pmix_proc_t)); + } + /* cache it */ + rc = pmix_notify_event_cache(cd); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + PMIX_RELEASE(cd); + goto cleanup; + } + chain->cached = true; + } + + cleanup: PMIX_RELEASE(chain); } @@ -198,7 +238,7 @@ pmix_status_t rc; size_t refid, ninfo=0; pmix_iof_req_t *req; - pmix_info_t *info; + pmix_info_t *info=NULL; pmix_output_verbose(2, pmix_client_globals.iof_output, "recvd IOF with %d bytes", (int)buf->bytes_used); @@ -308,6 +348,7 @@ bool nspace_in_enviro = false; bool rank_given = false; bool fwd_stdin = false; + bool connect_optional = false; pmix_info_t ginfo; size_t n; pmix_ptl_posted_recv_t *rcv; @@ -317,6 +358,7 @@ pmix_cb_t cb; pmix_buffer_t *req; pmix_cmd_t cmd = PMIX_REQ_CMD; + pmix_iof_req_t *iofreq; PMIX_ACQUIRE_THREAD(&pmix_global_lock); @@ -329,8 +371,7 @@ * rank should be known. So return them here if * requested */ if (NULL != proc) { - pmix_strncpy(proc->nspace, pmix_globals.myid.nspace, PMIX_MAX_NSLEN); - proc->rank = pmix_globals.myid.rank; + PMIX_LOAD_PROCID(proc, pmix_globals.myid.nspace, pmix_globals.myid.rank); } ++pmix_globals.init_cntr; PMIX_RELEASE_THREAD(&pmix_global_lock); @@ -364,7 +405,7 @@ rank_given = true; } else if (0 == strncmp(info[n].key, PMIX_FWD_STDIN, PMIX_MAX_KEYLEN)) { /* they want us to forward our stdin to someone */ - fwd_stdin = true; + fwd_stdin = PMIX_INFO_TRUE(&info[n]); } else if (0 == strncmp(info[n].key, PMIX_LAUNCHER, PMIX_MAX_KEYLEN)) { if (PMIX_INFO_TRUE(&info[n])) { PMIX_SET_PROC_TYPE(&ptype, PMIX_PROC_LAUNCHER); @@ -449,24 +490,6 @@ } } - /* if we are a launcher, then we also need to act as a server, - * so setup the server-related structures here */ - if (PMIX_PROC_IS_LAUNCHER(&ptype)) { - if (PMIX_SUCCESS != (rc = pmix_server_initialize())) { - PMIX_ERROR_LOG(rc); - if (NULL != nspace) { - free(nspace); - } - if (gdsfound) { - PMIX_INFO_DESTRUCT(&ginfo); - } - PMIX_RELEASE_THREAD(&pmix_global_lock); - return rc; - } - /* setup the function pointers */ - memset(&pmix_host_server, 0, sizeof(pmix_server_module_t)); - } - /* setup the runtime - this init's the globals, * opens and initializes the required frameworks */ if (PMIX_SUCCESS != (rc = pmix_rte_init(ptype.type, info, ninfo, @@ -645,24 +668,36 @@ /* it is an error if we were not given an nspace/rank */ if (!nspace_given || !rank_given) { PMIX_RELEASE_THREAD(&pmix_global_lock); - return PMIX_ERR_INIT; + return PMIX_ERR_UNREACH; } } else { /* connect to the server */ rc = pmix_ptl_base_connect_to_peer((struct pmix_peer_t*)pmix_client_globals.myserver, info, ninfo); - if (PMIX_SUCCESS != rc){ - PMIX_RELEASE_THREAD(&pmix_global_lock); - return rc; + if (PMIX_SUCCESS != rc) { + if (!connect_optional) { + PMIX_RELEASE_THREAD(&pmix_global_lock); + return rc; + } + /* if connection was optional, then we need to self-assign + * a namespace and rank for ourselves. Use our hostname:pid + * for the nspace, and rank clearly is 0 */ + snprintf(pmix_globals.myid.nspace, PMIX_MAX_NSLEN-1, "%s:%lu", pmix_globals.hostname, (unsigned long)pmix_globals.pid); + pmix_globals.myid.rank = 0; + nspace_given = false; + rank_given = false; + /* also setup the client myserver to point to ourselves */ + pmix_client_globals.myserver->nptr->nspace = strdup(pmix_globals.myid.nspace); + pmix_client_globals.myserver->info = PMIX_NEW(pmix_rank_info_t); + pmix_client_globals.myserver->info->pname.nspace = strdup(pmix_globals.myid.nspace); + pmix_client_globals.myserver->info->pname.rank = pmix_globals.myid.rank; + pmix_client_globals.myserver->info->uid = pmix_globals.uid; + pmix_client_globals.myserver->info->gid = pmix_globals.gid; } } - if (!nspace_given) { - /* Success, so copy the nspace and rank to the proc struct they gave us */ - pmix_strncpy(proc->nspace, pmix_globals.myid.nspace, PMIX_MAX_NSLEN); - } - if (!rank_given) { - proc->rank = pmix_globals.myid.rank; - } - /* and into our own peer object */ + /* pass back the ID */ + PMIX_LOAD_PROCID(proc, pmix_globals.myid.nspace, pmix_globals.myid.rank); + + /* load into our own peer object */ if (NULL == pmix_globals.mypeer->nptr->nspace) { pmix_globals.mypeer->nptr->nspace = strdup(pmix_globals.myid.nspace); } @@ -674,7 +709,6 @@ } pmix_globals.mypeer->info->pname.nspace = strdup(pmix_globals.myid.nspace); pmix_globals.mypeer->info->pname.rank = pmix_globals.myid.rank; - /* if we are acting as a server, then start listening */ if (PMIX_PEER_IS_LAUNCHER(pmix_globals.mypeer)) { /* setup the wildcard recv for inbound messages from clients */ @@ -683,13 +717,6 @@ rcv->cbfunc = pmix_server_message_handler; /* add it to the end of the list of recvs */ pmix_list_append(&pmix_ptl_globals.posted_recvs, &rcv->super); - /* open the pnet framework so we can harvest envars */ - rc = pmix_mca_base_framework_open(&pmix_pnet_base_framework, 0); - if (PMIX_SUCCESS != rc){ - PMIX_RELEASE_THREAD(&pmix_global_lock); - return rc; - } - /* note that we do not select active plugins as we don't need them */ } /* setup IOF */ @@ -697,6 +724,11 @@ 1, PMIX_FWD_STDOUT_CHANNEL, pmix_iof_write_handler); PMIX_IOF_SINK_DEFINE(&pmix_client_globals.iof_stderr, &pmix_globals.myid, 2, PMIX_FWD_STDERR_CHANNEL, pmix_iof_write_handler); + /* create the default iof handler */ + iofreq = PMIX_NEW(pmix_iof_req_t); + iofreq->channels = PMIX_FWD_STDOUT_CHANNEL | PMIX_FWD_STDERR_CHANNEL | PMIX_FWD_STDDIAG_CHANNEL; + pmix_pointer_array_set_item(&pmix_globals.iof_requests, 0, iofreq); + if (fwd_stdin) { /* setup the read - we don't want to set nonblocking on our * stdio stream. If we do so, we set the file descriptor to @@ -804,7 +836,7 @@ /* quick check to see if we got something back. If this * is a launcher that is being executed multiple times * in a job-script, then the original registration data - * will have been deleted after the first invocation. In + * may have been deleted after the first invocation. In * such a case, we simply regenerate it locally as it is * well-known */ pmix_cb_t cb; @@ -814,7 +846,6 @@ cb.proc = &wildcard; cb.copy = true; PMIX_GDS_FETCH_KV(rc, pmix_globals.mypeer, &cb); - PMIX_DESTRUCT(&cb); if (PMIX_SUCCESS != rc) { pmix_output_verbose(5, pmix_client_globals.get_output, "pmix:tool:client data not found in internal storage"); @@ -839,6 +870,16 @@ /* if we are acting as a server, then start listening */ if (PMIX_PEER_IS_LAUNCHER(pmix_globals.mypeer)) { + /* open the pnet framework and select the active modules for this environment */ + if (PMIX_SUCCESS != (rc = pmix_mca_base_framework_open(&pmix_pnet_base_framework, 0))) { + PMIX_RELEASE_THREAD(&pmix_global_lock); + return rc; + } + if (PMIX_SUCCESS != (rc = pmix_pnet_base_select())) { + PMIX_RELEASE_THREAD(&pmix_global_lock); + return rc; + } + /* start listening for connections */ if (PMIX_SUCCESS != pmix_ptl_base_start_listening(info, ninfo)) { pmix_show_help("help-pmix-server.txt", "listener-thread-start", true); @@ -846,10 +887,10 @@ } } - return rc; + return PMIX_SUCCESS; } -pmix_status_t pmix_tool_init_info(void) +PMIX_EXPORT pmix_status_t pmix_tool_init_info(void) { pmix_kval_t *kptr; pmix_status_t rc; @@ -857,7 +898,7 @@ char hostname[PMIX_MAXHOSTNAMELEN] = {0}; pmix_strncpy(wildcard.nspace, pmix_globals.myid.nspace, PMIX_MAX_NSLEN); - wildcard.rank = pmix_globals.myid.rank; + wildcard.rank = PMIX_RANK_WILDCARD; /* the jobid is just our nspace */ kptr = PMIX_NEW(pmix_kval_t); @@ -1146,6 +1187,38 @@ } PMIX_RELEASE(kptr); // maintain accounting + /* store our server's ID */ + if (NULL != pmix_client_globals.myserver && + NULL != pmix_client_globals.myserver->info && + NULL != pmix_client_globals.myserver->info->pname.nspace) { + kptr = PMIX_NEW(pmix_kval_t); + kptr->key = strdup(PMIX_SERVER_NSPACE); + PMIX_VALUE_CREATE(kptr->value, 1); + kptr->value->type = PMIX_STRING; + kptr->value->data.string = strdup(pmix_client_globals.myserver->info->pname.nspace); + PMIX_GDS_STORE_KV(rc, pmix_globals.mypeer, + &pmix_globals.myid, + PMIX_INTERNAL, kptr); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + PMIX_RELEASE(kptr); // maintain accounting + kptr = PMIX_NEW(pmix_kval_t); + kptr->key = strdup(PMIX_SERVER_RANK); + PMIX_VALUE_CREATE(kptr->value, 1); + kptr->value->type = PMIX_PROC_RANK; + kptr->value->data.rank = pmix_client_globals.myserver->info->pname.rank; + PMIX_GDS_STORE_KV(rc, pmix_globals.mypeer, + &pmix_globals.myid, + PMIX_INTERNAL, kptr); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + PMIX_RELEASE(kptr); // maintain accounting + } + return PMIX_SUCCESS; } @@ -1212,8 +1285,6 @@ /* flush anything that is still trying to be written out */ pmix_iof_static_dump_output(&pmix_client_globals.iof_stdout); pmix_iof_static_dump_output(&pmix_client_globals.iof_stderr); - PMIX_DESTRUCT(&pmix_client_globals.iof_stdout); - PMIX_DESTRUCT(&pmix_client_globals.iof_stderr); /* if we are connected, then disconnect */ if (pmix_globals.connected) { @@ -1268,7 +1339,7 @@ (void)pmix_progress_thread_pause(NULL); } -// PMIX_RELEASE(pmix_client_globals.myserver); + PMIX_RELEASE(pmix_client_globals.myserver); PMIX_LIST_DESTRUCT(&pmix_client_globals.pending_requests); for (n=0; n < pmix_client_globals.peers.size; n++) { if (NULL != (peer = (pmix_peer_t*)pmix_pointer_array_get_item(&pmix_client_globals.peers, n))) { @@ -1293,9 +1364,10 @@ PMIX_LIST_DESTRUCT(&pmix_server_globals.gdata); PMIX_LIST_DESTRUCT(&pmix_server_globals.events); PMIX_LIST_DESTRUCT(&pmix_server_globals.iof); + + (void)pmix_mca_base_framework_close(&pmix_pnet_base_framework); } - /* shutdown services */ pmix_rte_finalize(); if (NULL != pmix_globals.mypeer) { PMIX_RELEASE(pmix_globals.mypeer); @@ -1315,6 +1387,8 @@ pmix_status_t rc; pmix_tool_timeout_t tev; struct timeval tv = {2, 0}; + pmix_event_base_t *evbase_save; + pmix_kval_t *kptr; PMIX_ACQUIRE_THREAD(&pmix_global_lock); if (pmix_globals.init_cntr <= 0) { @@ -1375,7 +1449,86 @@ "pmix:tool:reconnect finalize sync received"); } + /* stop the existing progress thread */ + (void)pmix_progress_thread_pause(NULL); + + /* save that event base */ + evbase_save = pmix_globals.evbase; + + /* create a new progress thread */ + pmix_globals.evbase = pmix_progress_thread_init("reconnect"); + pmix_progress_thread_start("reconnect"); + /* now ask the ptl to establish connection to the new server */ rc = pmix_ptl_base_connect_to_peer((struct pmix_peer_t*)pmix_client_globals.myserver, info, ninfo); - return rc; + + /* once that activity has all completed, then stop the new progress thread */ + pmix_progress_thread_stop("reconnect"); + pmix_progress_thread_finalize("reconnect"); + + /* restore the original progress thread */ + pmix_globals.evbase = evbase_save; + /* restore the communication events */ + pmix_event_assign(&pmix_client_globals.myserver->recv_event, + pmix_globals.evbase, + pmix_client_globals.myserver->sd, + EV_READ | EV_PERSIST, + pmix_ptl_base_recv_handler, pmix_client_globals.myserver); + pmix_client_globals.myserver->recv_ev_active = true; + PMIX_POST_OBJECT(pmix_client_globals.myserver); + pmix_event_add(&pmix_client_globals.myserver->recv_event, 0); + + /* setup send event */ + pmix_event_assign(&pmix_client_globals.myserver->send_event, + pmix_globals.evbase, + pmix_client_globals.myserver->sd, + EV_WRITE|EV_PERSIST, + pmix_ptl_base_send_handler, pmix_client_globals.myserver); + pmix_client_globals.myserver->send_ev_active = false; + /* resume processing events */ + pmix_progress_thread_resume(NULL); + + /* if they gave us an address, we pass back our name */ + if (NULL != proc) { + memcpy(proc, &pmix_globals.myid, sizeof(pmix_proc_t)); + } + + /* if the transition didn't succeed, then return at this point */ + if (PMIX_SUCCESS != rc) { + return rc; + } + + /* update our server's ID */ + if (NULL != pmix_client_globals.myserver && + NULL != pmix_client_globals.myserver->info && + NULL != pmix_client_globals.myserver->info->pname.nspace) { + kptr = PMIX_NEW(pmix_kval_t); + kptr->key = strdup(PMIX_SERVER_NSPACE); + PMIX_VALUE_CREATE(kptr->value, 1); + kptr->value->type = PMIX_STRING; + kptr->value->data.string = strdup(pmix_client_globals.myserver->info->pname.nspace); + PMIX_GDS_STORE_KV(rc, pmix_globals.mypeer, + &pmix_globals.myid, + PMIX_INTERNAL, kptr); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + PMIX_RELEASE(kptr); // maintain accounting + kptr = PMIX_NEW(pmix_kval_t); + kptr->key = strdup(PMIX_SERVER_RANK); + PMIX_VALUE_CREATE(kptr->value, 1); + kptr->value->type = PMIX_PROC_RANK; + kptr->value->data.rank = pmix_client_globals.myserver->info->pname.rank; + PMIX_GDS_STORE_KV(rc, pmix_globals.mypeer, + &pmix_globals.myid, + PMIX_INTERNAL, kptr); + if (PMIX_SUCCESS != rc) { + PMIX_ERROR_LOG(rc); + return rc; + } + PMIX_RELEASE(kptr); // maintain accounting + } + + return PMIX_SUCCESS; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/Makefile.include openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/Makefile.include --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/Makefile.include 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/Makefile.include 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ # Copyright (c) 2006-2008 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2011-2013 Los Alamos National Security, LLC. All rights # reserved. -# Copyright (c) 2014-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2014-2020 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/pevent/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/pevent/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/pevent/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/pevent/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -128,7 +128,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -158,6 +157,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -168,7 +168,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -361,6 +360,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -424,6 +430,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -446,6 +459,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -464,6 +479,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -472,9 +488,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -488,6 +504,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -533,6 +550,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -545,10 +566,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/pevent/pevent.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/pevent/pevent.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/pevent/pevent.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/pevent/pevent.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. * $COPYRIGHT$ * @@ -24,7 +24,7 @@ */ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include #include @@ -32,7 +32,7 @@ #include #include -#include +#include "include/pmix_tool.h" #include "src/mca/base/base.h" #include "src/mca/pinstalldirs/base/base.h" #include "src/threads/threads.h" @@ -172,6 +172,11 @@ __FILE__, __LINE__, rc); return rc; } + if (PMIX_SUCCESS != (rc = pmix_pinstall_dirs_base_init(NULL, 0))) { + fprintf(stderr, "pmix_pinstalldirs_base_init() failed -- process will likely abort (%s:%d, returned %d instead of PMIX_SUCCESS)\n", + __FILE__, __LINE__, rc); + return rc; + } /* initialize the help system */ pmix_show_help_init(); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/plookup/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/plookup/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/plookup/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/plookup/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -128,7 +128,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -158,6 +157,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -168,7 +168,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -361,6 +360,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -424,6 +430,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -446,6 +459,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -464,6 +479,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -472,9 +488,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -488,6 +504,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -533,6 +550,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -545,10 +566,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/plookup/plookup.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/plookup/plookup.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/plookup/plookup.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/plookup/plookup.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. * $COPYRIGHT$ * @@ -30,7 +30,7 @@ #include #include -#include +#include "include/pmix_tool.h" #include "src/mca/base/base.h" #include "src/mca/pinstalldirs/base/base.h" #include "src/threads/threads.h" @@ -165,6 +165,11 @@ __FILE__, __LINE__, rc); return rc; } + if (PMIX_SUCCESS != (rc = pmix_pinstall_dirs_base_init(NULL, 0))) { + fprintf(stderr, "pmix_pinstalldirs_base_init() failed -- process will likely abort (%s:%d, returned %d instead of PMIX_SUCCESS)\n", + __FILE__, __LINE__, rc); + return rc; + } /* initialize the help system */ pmix_show_help_init(); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/pmix_info/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/pmix_info/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/pmix_info/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/pmix_info/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -128,7 +128,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -158,6 +157,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -168,7 +168,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -361,6 +360,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -424,6 +430,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -446,6 +459,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -464,6 +479,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -472,9 +488,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -488,6 +504,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -533,6 +550,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -545,10 +566,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/pmix_info/pmix_info.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/pmix_info/pmix_info.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/pmix_info/pmix_info.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/pmix_info/pmix_info.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2007-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2010-2016 Los Alamos National Security, LLC. * All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -89,6 +89,11 @@ __FILE__, __LINE__, ret); return ret; } + if (PMIX_SUCCESS != (ret = pmix_pinstall_dirs_base_init(NULL, 0))) { + fprintf(stderr, "pmix_pinstalldirs_base_init() failed -- process will likely abort (%s:%d, returned %d instead of PMIX_SUCCESS)\n", + __FILE__, __LINE__, ret); + return ret; + } /* initialize the help system */ pmix_show_help_init(); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/pmix_info/support.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/pmix_info/support.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/pmix_info/support.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/pmix_info/support.c 2022-05-29 09:51:40.000000000 +0000 @@ -14,7 +14,7 @@ * Copyright (c) 2010-2016 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2011-2012 University of Houston. All rights reserved. - * Copyright (c) 2016-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. * Copyright (c) 2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/pps/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/pps/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/pps/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/pps/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -128,7 +128,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -158,6 +157,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -168,7 +168,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -361,6 +360,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -424,6 +430,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -446,6 +459,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -464,6 +479,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -472,9 +488,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -488,6 +504,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -533,6 +550,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -545,10 +566,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/pps/pps.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/pps/pps.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/tools/pps/pps.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/tools/pps/pps.c 2022-05-29 09:51:40.000000000 +0000 @@ -15,7 +15,7 @@ * Copyright (c) 2007-2016 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -32,7 +32,7 @@ */ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include #include @@ -66,8 +66,8 @@ #include "src/runtime/pmix_rte.h" #include "src/include/pmix_globals.h" -#include -#include +#include "include/pmix_tool.h" +#include "include/pmix.h" typedef struct { pmix_lock_t lock; @@ -263,6 +263,11 @@ __FILE__, __LINE__, rc); return rc; } + if (PMIX_SUCCESS != (rc = pmix_pinstall_dirs_base_init(NULL, 0))) { + fprintf(stderr, "pmix_pinstalldirs_base_init() failed -- process will likely abort (%s:%d, returned %d instead of PMIX_SUCCESS)\n", + __FILE__, __LINE__, rc); + return rc; + } /* initialize the help system */ pmix_show_help_init(); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/alfg.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/alfg.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/alfg.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/alfg.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * All rights reserved. * Copyright (c) 2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -11,7 +11,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/alfg.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/alfg.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/alfg.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/alfg.h 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2014 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -13,8 +13,8 @@ #ifndef PMIX_ALFG_H #define PMIX_ALFG_H -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include "src/include/pmix_stdint.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/argv.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/argv.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/argv.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/argv.c 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * All rights reserved. * Copyright (c) 2007 Voltaire. All rights reserved. * Copyright (c) 2012 Los Alamos National Security, LLC. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -22,7 +22,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_STDLIB_H @@ -127,6 +127,34 @@ return PMIX_SUCCESS; } + +pmix_status_t pmix_argv_append_unique_idx(int *idx, char ***argv, const char *arg) +{ + int i; + pmix_status_t rc; + + /* if the provided array is NULL, then the arg cannot be present, + * so just go ahead and append + */ + if (NULL == *argv) { + goto add; + } + /* see if this arg is already present in the array */ + for (i=0; NULL != (*argv)[i]; i++) { + if (0 == strcmp(arg, (*argv)[i])) { + /* already exists */ + *idx = i; + return PMIX_SUCCESS; + } + } +add: + if (PMIX_SUCCESS != (rc = pmix_argv_append_nosize(argv, arg))) { + return rc; + } + *idx = pmix_argv_count(*argv)-1; + + return PMIX_SUCCESS; +} pmix_status_t pmix_argv_append_unique_nosize(char ***argv, const char *arg, bool overwrite) { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/argv.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/argv.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/argv.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/argv.h 2022-05-29 09:51:40.000000000 +0000 @@ -13,10 +13,10 @@ * All rights reserved. * Copyright (c) 2007 Voltaire. All rights reserved. * Copyright (c) 2012 Los Alamos National Security, LLC. All rights reserved. - * Copyright (c) 2015-2016 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * - * Copyright (c) 2015 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2015-2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -34,14 +34,14 @@ #ifndef PMIX_ARGV_H #define PMIX_ARGV_H -#include +#include "src/include/pmix_config.h" #ifdef HAVE_SYS_TYPES_H #include #endif -#include +#include "include/pmix_common.h" BEGIN_C_DECLS @@ -117,11 +117,28 @@ * * This function is identical to the pmix_argv_append_nosize() function * except that it only appends the provided argument if it does not already - * exist in the provided array, or overwrites it if it is. + * exist in the provided array. */ PMIX_EXPORT pmix_status_t pmix_argv_append_unique_nosize(char ***argv, const char *arg, bool overwrite); /** + * Append to an argv-style array, but only if the provided argument + * doesn't already exist somewhere in the array. Ignore the size of the array. + * Defines the index of the found/added item in the array. + * + * @param idx Index the found/added item in the array. + * @param argv Pointer to an argv array. + * @param str Pointer to the string to append. + * + * @retval PMIX_SUCCESS On success + * @retval PMIX_ERROR On failure + * + * This function is identical to the pmix_argv_append_unique_nosize() function + * but it has an extra argument defining the index of the item in the array. + */ +PMIX_EXPORT pmix_status_t pmix_argv_append_unique_idx(int *idx, char ***argv, const char *arg); + +/** * Free a NULL-terminated argv array. * * @param argv Argv array to free. @@ -146,7 +163,7 @@ * @retval argv pointer to new argv array on success * @retval NULL on error * - * All strings are insertted into the argv array by value; the + * All strings are inserted into the argv array by value; the * newly-allocated array makes no references to the src_string * argument (i.e., it can be freed after calling this function * without invalidating the output argv). @@ -163,7 +180,7 @@ * @retval argv pointer to new argv array on success * @retval NULL on error * - * All strings are insertted into the argv array by value; the + * All strings are inserted into the argv array by value; the * newly-allocated array makes no references to the src_string * argument (i.e., it can be freed after calling this function * without invalidating the output argv). @@ -266,7 +283,7 @@ * @retval PMIX_BAD_PARAM if any parameters are non-sensical * * This function takes one arg and inserts it in the middle of - * another. The first token in source will be insertted at index + * another. The first token in source will be inserted at index * start in the target argv; all other tokens will follow it. * Similar to pmix_argv_append(), the target may be realloc()'ed * to accomodate the new storage requirements. diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/basename.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/basename.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/basename.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/basename.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * Copyright (c) 2009-2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2014 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -20,7 +20,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/basename.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/basename.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/basename.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/basename.h 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2015-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -26,8 +26,8 @@ #ifndef PMIX_BASENAME_H #define PMIX_BASENAME_H -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" BEGIN_C_DECLS diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/cmd_line.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/cmd_line.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/cmd_line.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/cmd_line.c 2022-05-29 09:51:40.000000000 +0000 @@ -15,7 +15,7 @@ * Copyright (c) 2012-2015 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015-2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. * $COPYRIGHT$ * @@ -39,7 +39,7 @@ #include "src/util/pmix_environ.h" #include "src/mca/base/pmix_mca_base_var.h" -#include "pmix_common.h" +#include "include/pmix_common.h" /* @@ -383,7 +383,7 @@ /* Suck down the following parameters that belong to this option. If we run out of parameters, or find that any of them are the special_empty_param - (insertted by split_shorts()), then print an error + (inserted by split_shorts()), then print an error and return. */ param = PMIX_NEW(pmix_cmd_line_param_t); @@ -533,7 +533,7 @@ int argc; size_t j; char **argv; - char *ret, temp[MAX_WIDTH * 2], line[MAX_WIDTH * 2]; + char *ret, temp[MAX_WIDTH * 2 - 1], line[MAX_WIDTH * 2]; char *start, *desc, *ptr; pmix_list_item_t *item; pmix_cmd_line_option_t *option, **sorted; @@ -726,11 +726,6 @@ } } } - if(otype == PMIX_CMD_LINE_OTYPE_NULL || otype == PMIX_CMD_LINE_OTYPE_GENERAL) { - char *argument_line = "\nFor additional mpirun arguments, run 'mpirun --help '\n\nThe following categories exist: general (Defaults to this option), debug,\n output, input, mapping, ranking, binding, devel (arguments useful to PMIX\n Developers), compatibility (arguments supported for backwards compatibility),\n launch (arguments to modify launch options), and dvm (Distributed Virtual\n Machine arguments)."; - - pmix_argv_append(&argc, &argv, argument_line); - } if (NULL != argv) { ret = pmix_argv_join(argv, '\n'); pmix_argv_free(argv); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/compress.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/compress.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/compress.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/compress.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,160 +0,0 @@ -/* - * Copyright (c) 2016 Intel, Inc. All rights reserved. - * Copyright (c) 2017 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include - - -#include -#ifdef HAVE_STRING_H -#include -#endif -#ifdef HAVE_ZLIB_H -#include -#endif - -#include "src/include/pmix_globals.h" -#include "src/util/compress.h" - -#if PMIX_HAVE_ZLIB -bool pmix_util_compress_string(char *instring, - uint8_t **outbytes, - size_t *nbytes) -{ - z_stream strm; - size_t len, outlen; - uint8_t *tmp, *ptr; - uint32_t inlen; - int rc; - - /* set default output */ - *outbytes = NULL; - - /* setup the stream */ - inlen = strlen(instring); - memset (&strm, 0, sizeof (strm)); - deflateInit (&strm, 9); - - /* get an upper bound on the required output storage */ - len = deflateBound(&strm, inlen); - /* if this isn't going to result in a smaller footprint, - * then don't do it */ - if (len >= inlen) { - (void)deflateEnd(&strm); - return false; - } - - if (NULL == (tmp = (uint8_t*)malloc(len))) { - (void)deflateEnd(&strm); - return false; - } - strm.next_in = (uint8_t*)instring; - strm.avail_in = strlen(instring); - - /* allocating the upper bound guarantees zlib will - * always successfully compress into the available space */ - strm.avail_out = len; - strm.next_out = tmp; - - rc = deflate (&strm, Z_FINISH); - (void)deflateEnd (&strm); - if (Z_OK != rc && Z_STREAM_END != rc) { - free(tmp); - return false; - } - - /* allocate 4 bytes beyond the size reqd by zlib so we - * can pass the size of the uncompressed string to the - * decompress side */ - outlen = len - strm.avail_out + sizeof(uint32_t); - ptr = (uint8_t*)malloc(outlen); - if (NULL == ptr) { - free(tmp); - return false; - } - *outbytes = ptr; - *nbytes = outlen; - - /* fold the uncompressed length into the buffer */ - memcpy(ptr, &inlen, sizeof(uint32_t)); - ptr += sizeof(uint32_t); - /* bring over the compressed data */ - memcpy(ptr, tmp, outlen-sizeof(uint32_t)); - free(tmp); - pmix_output_verbose(10, pmix_globals.debug_output, - "JOBDATA COMPRESS INPUT STRING OF LEN %d OUTPUT SIZE %lu", - inlen, outlen-sizeof(uint32_t)); - return true; // we did the compression -} -#else -bool pmix_util_compress_string(char *instring, - uint8_t **outbytes, - size_t *nbytes) -{ - return false; // we did not compress -} -#endif - -#if PMIX_HAVE_ZLIB -void pmix_util_uncompress_string(char **outstring, - uint8_t *inbytes, size_t len) -{ - uint8_t *dest; - int32_t len2; - z_stream strm; - int rc; - - /* set the default error answer */ - *outstring = NULL; - - /* the first 4 bytes contains the uncompressed size */ - memcpy(&len2, inbytes, sizeof(uint32_t)); - - pmix_output_verbose(10, pmix_globals.debug_output, - "DECOMPRESSING INPUT OF LEN %lu OUTPUT %d", len, len2); - - /* setting destination to the fully decompressed size, +1 to - * hold the NULL terminator */ - dest = (uint8_t*)malloc(len2+1); - if (NULL == dest) { - return; - } - memset(dest, 0, len2+1); - - memset (&strm, 0, sizeof (strm)); - if (Z_OK != inflateInit(&strm)) { - free(dest); - return; - } - strm.avail_in = len; - strm.next_in = (uint8_t*)(inbytes + sizeof(uint32_t)); - strm.avail_out = len2; - strm.next_out = (uint8_t*)dest; - - rc = inflate (&strm, Z_FINISH); - inflateEnd (&strm); - /* ensure this is NULL terminated! */ - dest[len2] = '\0'; - *outstring = (char*)dest; - pmix_output_verbose(10, pmix_globals.debug_output, - "\tFINAL LEN: %lu CODE: %d", strlen(*outstring), rc); - return; -} -#else -/* this can never actually be used - there is no way we should - * receive a PMIX_COMPRESSED_STRING unless we compressed it, - * which means PMIX_HAVE_ZLIB must have been true. Still, we - * include the stub just to avoid requiring #if's in the rest - * of the code */ -void pmix_util_uncompress_string(char **outstring, - uint8_t *inbytes, size_t len) -{ - *outstring = NULL; -} -#endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/compress.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/compress.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/compress.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/compress.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2005 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * Copyright (c) 2004-2005 The Regents of the University of California. - * All rights reserved. - * Copyright (c) 2015-2016 Intel, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -/** - * @file - * - * Compress/decompress long strings - */ - -#ifndef PMIX_COMPRESS_H -#define PMIX_COMPRESS_H - -#include - - -BEGIN_C_DECLS - -/* define a limit for storing raw strings */ -#define PMIX_STRING_LIMIT 512 - -/* define a macro for quickly checking if a string exceeds the - * compression limit */ -#define PMIX_STRING_SIZE_CHECK(s) \ - (PMIX_STRING == (s)->type && NULL != (s)->data.string && PMIX_STRING_LIMIT < strlen((s)->data.string)) - -/** - * Compress a string into a byte object using Zlib - */ -PMIX_EXPORT bool pmix_util_compress_string(char *instring, - uint8_t **outbytes, - size_t *nbytes); - -/** - * Decompress a byte object into a string using Zlib - */ -PMIX_EXPORT void pmix_util_uncompress_string(char **outstring, - uint8_t *inbytes, size_t len); - -END_C_DECLS - -#endif /* PMIX_COMPRESS_H */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/context_fns.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/context_fns.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/context_fns.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/context_fns.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2008 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2008-2010 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. + * Copyright (c) 2014 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ +#include "pmix_config.h" +#include "include/pmix_common.h" + +#include +#include +#ifdef HAVE_UNISTD_H +#include +#endif +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_STAT_H +#include +#endif +#ifdef HAVE_SYS_PARAM_H +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif +#ifdef HAVE_NETDB_H +#include +#endif +#include + +#include "src/util/basename.h" +#include "src/util/path.h" +#include "src/util/pmix_environ.h" + +#include "src/util/context_fns.h" + +int pmix_util_check_context_cwd(pmix_app_t *app) +{ + /* If we want to chdir and the chdir fails (for any reason -- such + as if the dir doesn't exist, it isn't a dir, we don't have + permissions, etc.), then return error. */ + if (NULL != app->cwd && 0 != chdir(app->cwd)) { + return PMIX_ERR_BAD_PARAM; + } + + /* All happy */ + return PMIX_SUCCESS; +} + +int pmix_util_check_context_app(pmix_app_t *app, char **env) +{ + char *tmp; + + /* Here's the possibilities: + + 1. The caller specified an absolute pathname for the executable. + We simply need to verify that it exists and we can run it. + + 2. The caller specified a relative pathname for the executable. + Ditto with #1 -- based on the cwd, we need to verify that it + exists and we can run it. + + 3. The caller specified a naked filename. We need to search the + path, find a match, and verify that we can run it. + */ + + tmp = pmix_basename(app->cmd); + if (strlen(tmp) == strlen(app->cmd)) { + /* If this is a naked executable -- no relative or absolute + pathname -- then search the PATH for it */ + free(tmp); + tmp = pmix_path_findv(app->cmd, X_OK, env, app->cwd); + if (NULL == tmp) { + return PMIX_ERR_NOT_FOUND; + } + free(app->cmd); + app->cmd = tmp; + } else { + free(tmp); + if (0 != access(app->cmd, X_OK)) { + return PMIX_ERR_NO_PERMISSIONS; + } + } + + /* All was good */ + return PMIX_SUCCESS; +} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/context_fns.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/context_fns.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/context_fns.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/context_fns.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2006 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright (c) 2019-2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +/** @file: + * + */ + +#ifndef _PMIX_CONTEXT_FNS_H_ +#define _PMIX_CONTEXT_FNS_H_ + +#include "pmix_config.h" +#include "include/pmix_common.h" + +BEGIN_C_DECLS + +PMIX_EXPORT int pmix_util_check_context_app(pmix_app_t *app, char **env); + +PMIX_EXPORT int pmix_util_check_context_cwd(pmix_app_t *app); + +END_C_DECLS +#endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/crc.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/crc.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/crc.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/crc.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2014-2016 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -18,7 +18,7 @@ */ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_STDIO_H diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/crc.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/crc.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/crc.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/crc.h 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * Copyright (c) 2009 IBM Corporation. All rights reserved. * Copyright (c) 2009 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2015-2016 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -23,7 +23,7 @@ #ifndef _PMIX_CRC_H_ #define _PMIX_CRC_H_ -#include +#include "src/include/pmix_config.h" #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/error.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/error.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/error.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/error.c 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * All rights reserved. * Copyright (c) 2007-2012 Los Alamos National Security, LLC. * All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -19,7 +19,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_STRING_H @@ -31,7 +31,7 @@ #include #endif -#include +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" #include "src/util/error.h" @@ -152,7 +152,6 @@ case PMIX_ERR_CONFLICTING_CLEANUP_DIRECTIVES: return "PMIX CONFLICTING CLEANUP DIRECTIVES"; - case PMIX_ERR_LOST_CONNECTION_TO_SERVER: return "LOST_CONNECTION_TO_SERVER"; case PMIX_ERR_LOST_PEER_CONNECTION: @@ -233,8 +232,8 @@ return "PMIX_ERR_VALUE_OUT_OF_BOUNDS"; case PMIX_ERR_PERM: return "PMIX_ERR_PERM"; - case PMIX_ERR_NETWORK_NOT_PARSEABLE: - return "PMIX_ERR_NETWORK_NOT_PARSEABLE"; + case PMIX_ERR_FABRIC_NOT_PARSEABLE: + return "PMIX_ERR_FABRIC_NOT_PARSEABLE"; case PMIX_ERR_FILE_OPEN_FAILURE: return "PMIX_ERR_FILE_OPEN_FAILURE"; case PMIX_ERR_FILE_READ_FAILURE: @@ -244,11 +243,9 @@ case PMIX_ERR_TEMP_UNAVAILABLE: return "PMIX TEMPORARILY UNAVAILABLE"; - case PMIX_MAX_ERR_CONSTANT: return "PMIX_ERR_WILDCARD"; - default: return "ERROR STRING NOT FOUND"; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/error.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/error.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/error.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/error.h 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2015-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -20,10 +20,10 @@ #ifndef PMIX_UTIL_ERROR_H #define PMIX_UTIL_ERROR_H -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix.h" #include "src/util/output.h" BEGIN_C_DECLS @@ -33,7 +33,7 @@ #define PMIX_ERR_FATAL (PMIX_INTERNAL_ERR_BASE - 29) #define PMIX_ERR_VALUE_OUT_OF_BOUNDS (PMIX_INTERNAL_ERR_BASE - 30) #define PMIX_ERR_PERM (PMIX_INTERNAL_ERR_BASE - 31) -#define PMIX_ERR_NETWORK_NOT_PARSEABLE (PMIX_INTERNAL_ERR_BASE - 33) +#define PMIX_ERR_FABRIC_NOT_PARSEABLE (PMIX_INTERNAL_ERR_BASE - 33) #define PMIX_ERR_FILE_OPEN_FAILURE (PMIX_INTERNAL_ERR_BASE - 34) #define PMIX_ERR_FILE_READ_FAILURE (PMIX_INTERNAL_ERR_BASE - 35) #define PMIX_ERR_TAKE_NEXT_OPTION (PMIX_INTERNAL_ERR_BASE - 36) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/fd.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/fd.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/fd.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/fd.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * Copyright (c) 2008-2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2009 Sandia National Laboratories. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -11,9 +11,9 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #ifdef HAVE_UNISTD_H #include @@ -104,6 +104,7 @@ bool pmix_fd_is_regular(int fd) { struct stat buf; + /* coverity[toctou] */ if (fstat(fd, &buf)) { return false; } @@ -113,6 +114,7 @@ bool pmix_fd_is_chardev(int fd) { struct stat buf; + /* coverity[toctou] */ if (fstat(fd, &buf)) { return false; } @@ -122,6 +124,7 @@ bool pmix_fd_is_blkdev(int fd) { struct stat buf; + /* coverity[toctou] */ if (fstat(fd, &buf)) { return false; } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/fd.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/fd.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/fd.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/fd.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * Copyright (c) 2008-2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2009 Sandia National Laboratories. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -17,7 +17,7 @@ #ifndef PMIX_UTIL_FD_H_ #define PMIX_UTIL_FD_H_ -#include +#include "src/include/pmix_config.h" BEGIN_C_DECLS diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/few.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/few.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/few.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/few.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2005 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2019-2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + + +#include "pmix_config.h" + +#include +#include +#ifdef HAVE_SYS_WAIT_H +#include +#endif +#include +#ifdef HAVE_UNISTD_H +#include +#endif + +#include "src/util/few.h" +#include "src/util/basename.h" +#include "src/util/argv.h" +#include "include/pmix_common.h" + +int pmix_few(char *argv[], int *status) +{ +#if defined(HAVE_FORK) && defined(HAVE_EXECVE) && defined(HAVE_WAITPID) + pid_t pid, ret; + + if ((pid = fork()) < 0) { + return PMIX_ERROR; + } + + /* Child execs. If it fails to exec, exit. */ + + else if (0 == pid) { + execvp(argv[0], argv); + exit(errno); + } + + /* Parent loops waiting for the child to die. */ + + else { + do { + /* If the child exited, return */ + + if (pid == (ret = waitpid(pid, status, 0))) { + break; + } + + /* If waitpid was interrupted, loop around again */ + + else if (ret < 0) { + if (EINTR == errno) { + continue; + } + + /* Otherwise, some bad juju happened -- need to quit */ + + return PMIX_ERROR; + } + } while (true); + } + + /* Return the status to the caller */ + + return PMIX_SUCCESS; +#else + return PMIX_ERR_NOT_SUPPORTED; +#endif +} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/few.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/few.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/few.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/few.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2005 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2019-2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef PMIX_FEW_H +#define PMIX_FEW_H + +#include "pmix_config.h" + +#include "include/pmix_common.h" + +BEGIN_C_DECLS + +/** + * Forks, execs, and waits for a subordinate program + * + * @param argv Null-terminated argument vector; argv[0] is the program + * (same as arguments to execvp()) + * + * @param status Upon success, will be filled with the return status + * from waitpid(2). The WIF* macros can be used to examine the value + * (see waitpid(2)). + * + * @retval PMIX_SUCCESS If the child launched and exited. + * @retval PMIX_ERROR If a failure occurred, errno should be + * examined for the specific error. + * + * This function forks, execs, and waits for an executable to + * complete. The input argv must be a NULL-terminated array (perhaps + * built with the pmix_arr_*() interface). Upon success, PMIX_SUCCESS + * is returned. This function will wait either until the child + * process has exited or waitpid() returns an error other than EINTR. + * + * Note that a return of PMIX_SUCCESS does \em not imply that the child + * process exited successfully -- it simply indicates that the child + * process exited. The WIF* macros (see waitpid(2)) should be used to + * examine the status to see hold the child exited. + * + * \warning This function should not be called if \c orte_init() + * or \c MPI_Init() have been called. This function is not + * safe in a multi-threaded environment in which a handler + * for \c SIGCHLD has been registered. + */ +PMIX_EXPORT pmix_status_t pmix_few(char *argv[], int *status); + +END_C_DECLS +#endif /* PMIX_FEW_H */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/getid.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/getid.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/getid.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/getid.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2015 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -22,7 +22,7 @@ * Buffer safe printf functions for portability to archaic platforms. */ -#include +#include "src/include/pmix_config.h" #include "include/pmix_common.h" #include "src/include/pmix_socket_errno.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/getid.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/getid.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/getid.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/getid.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -10,7 +10,7 @@ #ifndef PMIX_GETID_H #define PMIX_GETID_H -#include +#include "src/include/pmix_config.h" #include "include/pmix_common.h" #ifdef HAVE_UNISTD_H diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/hash.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/hash.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/hash.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/hash.c 2022-05-29 09:51:40.000000000 +0000 @@ -6,7 +6,7 @@ * reserved. * Copyright (c) 2011-2014 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2016 Mellanox Technologies, Inc. @@ -20,10 +20,10 @@ * */ -#include +#include "src/include/pmix_config.h" -#include -#include +#include "src/include/pmix_stdint.h" +#include "src/include/hash_string.h" #include @@ -130,8 +130,8 @@ (void**)&proc_data, (void**)&node); if (PMIX_SUCCESS != rc) { pmix_output_verbose(10, pmix_globals.debug_output, - "HASH:FETCH proc data for rank %d not found", - rank); + "HASH:FETCH[%s:%d] proc data for rank %d not found", + __func__, __LINE__, rank); return PMIX_ERR_PROC_ENTRY_NOT_FOUND; } } @@ -140,8 +140,8 @@ proc_data = lookup_proc(table, id, false); if (NULL == proc_data) { pmix_output_verbose(10, pmix_globals.debug_output, - "HASH:FETCH proc data for rank %d not found", - rank); + "HASH:FETCH[%s:%d] proc data for rank %d not found", + __func__, __LINE__, rank); return PMIX_ERR_PROC_ENTRY_NOT_FOUND; } @@ -203,7 +203,7 @@ (void**)&proc_data, node, (void**)&node); if (PMIX_SUCCESS != rc) { pmix_output_verbose(10, pmix_globals.debug_output, - "HASH:FETCH data for key %s not found", key); + "%s:%d HASH:FETCH data for key %s not found", __func__, __LINE__, key); return PMIX_ERR_PROC_ENTRY_NOT_FOUND; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/hash.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/hash.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/hash.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/hash.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -14,7 +14,7 @@ #ifndef PMIX_HASH_H #define PMIX_HASH_H -#include +#include "src/include/pmix_config.h" #include "src/mca/bfrops/bfrops_types.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/keyval/keyval_lex.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/keyval/keyval_lex.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/keyval/keyval_lex.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/keyval/keyval_lex.c 2022-05-29 09:51:40.000000000 +0000 @@ -610,6 +610,7 @@ * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, LLC. All rights * reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -617,7 +618,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #ifdef HAVE_UNISTD_H @@ -646,7 +647,7 @@ -#line 650 "keyval_lex.c" +#line 651 "keyval_lex.c" #define INITIAL 0 #define VALUE 1 @@ -829,10 +830,10 @@ register char *yy_cp, *yy_bp; register int yy_act; -#line 61 "keyval_lex.l" +#line 62 "keyval_lex.l" -#line 836 "keyval_lex.c" +#line 837 "keyval_lex.c" if ( !(yy_init) ) { @@ -957,105 +958,105 @@ case 1: /* rule 1 can match eol */ YY_RULE_SETUP -#line 63 "keyval_lex.l" +#line 64 "keyval_lex.l" { pmix_util_keyval_yynewlines++; return PMIX_UTIL_KEYVAL_PARSE_NEWLINE; } YY_BREAK case 2: /* rule 2 can match eol */ YY_RULE_SETUP -#line 64 "keyval_lex.l" +#line 65 "keyval_lex.l" { pmix_util_keyval_yynewlines++; return PMIX_UTIL_KEYVAL_PARSE_NEWLINE; } YY_BREAK case 3: /* rule 3 can match eol */ YY_RULE_SETUP -#line 65 "keyval_lex.l" +#line 66 "keyval_lex.l" { pmix_util_keyval_yynewlines++; return PMIX_UTIL_KEYVAL_PARSE_NEWLINE; } YY_BREAK case 4: YY_RULE_SETUP -#line 67 "keyval_lex.l" +#line 68 "keyval_lex.l" { BEGIN(comment); return PMIX_UTIL_KEYVAL_PARSE_NEWLINE; } YY_BREAK case 5: YY_RULE_SETUP -#line 69 "keyval_lex.l" +#line 70 "keyval_lex.l" ; /* Eat up non '*'s */ YY_BREAK case 6: YY_RULE_SETUP -#line 70 "keyval_lex.l" +#line 71 "keyval_lex.l" ; /* Eat '*'s not followed by a '/' */ YY_BREAK case 7: /* rule 7 can match eol */ YY_RULE_SETUP -#line 71 "keyval_lex.l" +#line 72 "keyval_lex.l" { pmix_util_keyval_yynewlines++; return PMIX_UTIL_KEYVAL_PARSE_NEWLINE; } YY_BREAK case 8: YY_RULE_SETUP -#line 73 "keyval_lex.l" +#line 74 "keyval_lex.l" { BEGIN(INITIAL); /* Done with Block Comment */ return PMIX_UTIL_KEYVAL_PARSE_NEWLINE; } YY_BREAK case 9: YY_RULE_SETUP -#line 76 "keyval_lex.l" +#line 77 "keyval_lex.l" { BEGIN(VALUE); return PMIX_UTIL_KEYVAL_PARSE_EQUAL; } YY_BREAK case 10: YY_RULE_SETUP -#line 77 "keyval_lex.l" +#line 78 "keyval_lex.l" ; /* whitespace */ YY_BREAK case 11: YY_RULE_SETUP -#line 78 "keyval_lex.l" +#line 79 "keyval_lex.l" { return PMIX_UTIL_KEYVAL_PARSE_SINGLE_WORD; } YY_BREAK case 12: /* rule 12 can match eol */ YY_RULE_SETUP -#line 80 "keyval_lex.l" +#line 81 "keyval_lex.l" { BEGIN(INITIAL); return PMIX_UTIL_KEYVAL_PARSE_NEWLINE; } YY_BREAK case 13: YY_RULE_SETUP -#line 81 "keyval_lex.l" +#line 82 "keyval_lex.l" { return PMIX_UTIL_KEYVAL_PARSE_VALUE; } YY_BREAK case 14: YY_RULE_SETUP -#line 83 "keyval_lex.l" +#line 84 "keyval_lex.l" { BEGIN(INITIAL); return PMIX_UTIL_KEYVAL_PARSE_VALUE; } YY_BREAK case 15: YY_RULE_SETUP -#line 84 "keyval_lex.l" +#line 85 "keyval_lex.l" { BEGIN(INITIAL); return PMIX_UTIL_KEYVAL_PARSE_VALUE; } YY_BREAK case 16: YY_RULE_SETUP -#line 85 "keyval_lex.l" +#line 86 "keyval_lex.l" { BEGIN(INITIAL); return PMIX_UTIL_KEYVAL_PARSE_VALUE; } YY_BREAK case 17: /* rule 17 can match eol */ YY_RULE_SETUP -#line 86 "keyval_lex.l" +#line 87 "keyval_lex.l" { BEGIN(INITIAL); BEGIN(INITIAL); return PMIX_UTIL_KEYVAL_PARSE_NEWLINE; } YY_BREAK case 18: YY_RULE_SETUP -#line 88 "keyval_lex.l" +#line 89 "keyval_lex.l" {BEGIN(MCA_VALUE); return PMIX_UTIL_KEYVAL_PARSE_MCAVAR; } YY_BREAK case 19: YY_RULE_SETUP -#line 89 "keyval_lex.l" +#line 90 "keyval_lex.l" {BEGIN(MCA_VALUE); return PMIX_UTIL_KEYVAL_PARSE_ENVEQL; } YY_BREAK case 20: @@ -1064,20 +1065,20 @@ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up pmix_util_keyval_yytext again */ YY_RULE_SETUP -#line 90 "keyval_lex.l" +#line 91 "keyval_lex.l" { return PMIX_UTIL_KEYVAL_PARSE_ENVVAR; } YY_BREAK case 21: YY_RULE_SETUP -#line 92 "keyval_lex.l" +#line 93 "keyval_lex.l" { return PMIX_UTIL_KEYVAL_PARSE_ERROR; } YY_BREAK case 22: YY_RULE_SETUP -#line 94 "keyval_lex.l" +#line 95 "keyval_lex.l" ECHO; YY_BREAK -#line 1081 "keyval_lex.c" +#line 1082 "keyval_lex.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(VALUE): case YY_STATE_EOF(comment): @@ -2023,7 +2024,7 @@ #define YYTABLES_NAME "yytables" -#line 94 "keyval_lex.l" +#line 95 "keyval_lex.l" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/keyval/keyval_lex.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/keyval/keyval_lex.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/keyval/keyval_lex.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/keyval/keyval_lex.h 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - # Copyright (c) 2016 Intel, Inc. All rights reserved + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -21,7 +21,7 @@ #ifndef PMIX_UTIL_KEYVAL_LEX_H_ #define PMIX_UTIL_KEYVAL_LEX_H_ -#include +#include "src/include/pmix_config.h" #ifdef malloc #undef malloc diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/keyval/keyval_lex.l openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/keyval/keyval_lex.l --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/keyval/keyval_lex.l 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/keyval/keyval_lex.l 2022-05-29 09:51:40.000000000 +0000 @@ -16,6 +16,7 @@ * All rights reserved. * Copyright (c) 2012 Los Alamos National Security, LLC. All rights * reserved. + * Copyright (c) 2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -23,7 +24,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #ifdef HAVE_UNISTD_H diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/keyval/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/keyval/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/keyval/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/keyval/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -124,7 +124,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -154,6 +153,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -164,7 +164,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -333,6 +332,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -396,6 +402,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -418,6 +431,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -436,6 +451,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -444,9 +460,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -460,6 +476,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -505,6 +522,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -517,10 +538,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/keyval_parse.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/keyval_parse.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/keyval_parse.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/keyval_parse.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * All rights reserved. * Copyright (c) 2015-2016 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2016-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -20,9 +20,9 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/util/keyval_parse.h" #include "src/util/keyval/keyval_lex.h" #include "src/util/output.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/keyval_parse.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/keyval_parse.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/keyval_parse.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/keyval_parse.h 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -22,7 +22,7 @@ #ifndef PMIX_UTIL_KEYVAL_PARSE_H #define PMIX_UTIL_KEYVAL_PARSE_H -#include +#include "src/include/pmix_config.h" BEGIN_C_DECLS diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/Makefile.include openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/Makefile.include --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/Makefile.include 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/Makefile.include 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ # All rights reserved. # Copyright (c) 2007-2016 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2013 NVIDIA Corporation. All rights reserved. -# Copyright (c) 2013-2018 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. # Copyright (c) 2016 Research Organization for Information Science # and Technology (RIST). All rights reserved. # $COPYRIGHT$ @@ -38,6 +38,7 @@ util/crc.h \ util/fd.h \ util/timings.h \ + util/os_dirpath.h \ util/os_path.h \ util/basename.h \ util/keyval_parse.h \ @@ -51,7 +52,9 @@ util/net.h \ util/pif.h \ util/parse_options.h \ - util/compress.h + util/context_fns.h \ + util/pmix_pty.h \ + util/few.h sources += \ util/alfg.c \ @@ -64,6 +67,7 @@ util/crc.c \ util/fd.c \ util/timings.c \ + util/os_dirpath.c \ util/os_path.c \ util/basename.c \ util/keyval_parse.c \ @@ -76,7 +80,9 @@ util/net.c \ util/pif.c \ util/parse_options.c \ - util/compress.c + util/context_fns.c \ + util/pmix_pty.c \ + util/few.c libpmix_la_LIBADD += \ util/keyval/libpmixutilkeyval.la diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/name_fns.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/name_fns.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/name_fns.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/name_fns.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014-2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2016-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -24,7 +24,7 @@ #include #include -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/threads/tsd.h" #include "src/include/pmix_globals.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/name_fns.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/name_fns.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/name_fns.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/name_fns.h 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014-2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2018-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2018-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -29,7 +29,7 @@ #include #endif -#include "pmix_common.h" +#include "include/pmix_common.h" #include "src/include/pmix_globals.h" BEGIN_C_DECLS diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/net.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/net.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/net.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/net.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * Copyright (c) 2007 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -23,7 +23,7 @@ */ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/os_dirpath.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/os_dirpath.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/os_dirpath.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/os_dirpath.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,316 @@ +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2005 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2015-2017 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + + +#include "pmix_config.h" + +#include +#include +#ifdef HAVE_UNISTD_H +#include +#endif /* HAVE_UNISTD_H */ +#include +#if HAVE_SYS_STAT_H +#include +#endif /* HAVE_SYS_STAT_H */ +#ifdef HAVE_SYS_TYPES_H +#include +#endif /* HAVE_SYS_TYPES_H */ +#ifdef HAVE_DIRENT_H +#include +#endif /* HAVE_DIRENT_H */ + +#include "src/util/error.h" +#include "src/util/output.h" +#include "src/util/os_dirpath.h" +#include "src/util/show_help.h" +#include "src/util/argv.h" +#include "src/util/os_path.h" +#include "include/pmix_common.h" + +static const char path_sep[] = PMIX_PATH_SEP; + +int pmix_os_dirpath_create(const char *path, const mode_t mode) +{ + struct stat buf; + char **parts, *tmp; + int i, len; + int ret; + + if (NULL == path) { /* protect ourselves from errors */ + return(PMIX_ERR_BAD_PARAM); + } + + /* coverity[toctou] */ + if (0 == (ret = stat(path, &buf))) { /* already exists */ + if (mode == (mode & buf.st_mode)) { /* has correct mode */ + return(PMIX_SUCCESS); + } + if (0 == (ret = chmod(path, (buf.st_mode | mode)))) { /* successfully change mode */ + return(PMIX_SUCCESS); + } + pmix_show_help("help-pmix-util.txt", "dir-mode", true, + path, mode, strerror(errno)); + return(PMIX_ERR_PERM); /* can't set correct mode */ + } + + /* quick -- try to make directory */ + if (0 == mkdir(path, mode)) { + return(PMIX_SUCCESS); + } + + /* didnt work, so now have to build our way down the tree */ + /* Split the requested path up into its individual parts */ + + parts = pmix_argv_split(path, path_sep[0]); + + /* Ensure to allocate enough space for tmp: the strlen of the + incoming path + 1 (for \0) */ + + tmp = (char*)malloc(strlen(path) + 1); + tmp[0] = '\0'; + + /* Iterate through all the subdirectory names in the path, + building up a directory name. Check to see if that dirname + exists. If it doesn't, create it. */ + + len = pmix_argv_count(parts); + for (i = 0; i < len; ++i) { + if (i == 0) { + /* If in POSIX-land, ensure that we never end a directory + name with path_sep */ + + if ('/' == path[0]) { + strcat(tmp, path_sep); + } + strcat(tmp, parts[i]); + } + + /* If it's not the first part, ensure that there's a + preceeding path_sep and then append this part */ + + else { + if (path_sep[0] != tmp[strlen(tmp) - 1]) { + strcat(tmp, path_sep); + } + strcat(tmp, parts[i]); + } + + /* Now that we have the name, try to create it */ + mkdir(tmp, mode); + ret = errno; // save the errno for an error msg, if needed + /* coverity[toctou] */ + if (0 != stat(tmp, &buf)) { + pmix_show_help("help-pmix-util.txt", "mkdir-failed", true, + tmp, strerror(ret)); + pmix_argv_free(parts); + free(tmp); + return PMIX_ERROR; + } else if (i == (len-1) && (mode != (mode & buf.st_mode)) && (0 > chmod(tmp, (buf.st_mode | mode)))) { + pmix_show_help("help-pmix-util.txt", "dir-mode", true, + tmp, mode, strerror(errno)); + pmix_argv_free(parts); + free(tmp); + return(PMIX_ERR_PERM); /* can't set correct mode */ + } + } + + /* All done */ + + pmix_argv_free(parts); + free(tmp); + return PMIX_SUCCESS; +} + +/** + * This function attempts to remove a directory along with all the + * files in it. If the recursive variable is non-zero, then it will + * try to recursively remove all directories. If provided, the + * callback function is executed prior to the directory or file being + * removed. If the callback returns non-zero, then no removal is + * done. + */ +int pmix_os_dirpath_destroy(const char *path, + bool recursive, + pmix_os_dirpath_destroy_callback_fn_t cbfunc) +{ + int rc, exit_status = PMIX_SUCCESS; + bool is_dir = false; + DIR *dp; + struct dirent *ep; + char *filenm; + struct stat buf; + + if (NULL == path) { /* protect against error */ + return PMIX_ERROR; + } + + /* + * Make sure we have access to the the base directory + */ + if (PMIX_SUCCESS != (rc = pmix_os_dirpath_access(path, 0))) { + exit_status = rc; + goto cleanup; + } + + /* Open up the directory */ + dp = opendir(path); + if (NULL == dp) { + return PMIX_ERROR; + } + + while (NULL != (ep = readdir(dp))) { + /* skip: + * - . and .. + */ + if ((0 == strcmp(ep->d_name, ".")) || + (0 == strcmp(ep->d_name, ".."))) { + continue; + } + + /* Check to see if it is a directory */ + is_dir = false; + + /* Create a pathname. This is not always needed, but it makes + * for cleaner code just to create it here. Note that we are + * allocating memory here, so we need to free it later on. + */ + filenm = pmix_os_path(false, path, ep->d_name, NULL); + + /* coverity[toctou] */ + rc = stat(filenm, &buf); + if (0 > rc) { + /* Handle a race condition. filenm might have been deleted by an + * other process running on the same node. That typically occurs + * when one task is removing the job_session_dir and an other task + * is still removing its proc_session_dir. + */ + free(filenm); + continue; + } + if (S_ISDIR(buf.st_mode)) { + is_dir = true; + } + + /* + * If not recursively decending, then if we find a directory then fail + * since we were not told to remove it. + */ + if (is_dir && !recursive) { + /* Set the error indicating that we found a directory, + * but continue removing files + */ + exit_status = PMIX_ERROR; + free(filenm); + continue; + } + + /* Will the caller allow us to remove this file/directory? */ + if (NULL != cbfunc) { + /* + * Caller does not wish to remove this file/directory, + * continue with the rest of the entries + */ + if (!(cbfunc(path, ep->d_name))) { + free(filenm); + continue; + } + } + /* Directories are recursively destroyed */ + if (is_dir) { + rc = pmix_os_dirpath_destroy(filenm, recursive, cbfunc); + free(filenm); + if (PMIX_SUCCESS != rc) { + exit_status = rc; + closedir(dp); + goto cleanup; + } + } else { + /* Files are removed right here */ + if (0 != (rc = unlink(filenm))) { + exit_status = PMIX_ERROR; + } + free(filenm); + } + } + + /* Done with this directory */ + closedir(dp); + + cleanup: + + /* + * If the directory is empty, them remove it + */ + if(pmix_os_dirpath_is_empty(path)) { + rmdir(path); + } + + return exit_status; +} + +bool pmix_os_dirpath_is_empty(const char *path ) { + DIR *dp; + struct dirent *ep; + + if (NULL != path) { /* protect against error */ + dp = opendir(path); + if (NULL != dp) { + while ((ep = readdir(dp))) { + if ((0 != strcmp(ep->d_name, ".")) && + (0 != strcmp(ep->d_name, ".."))) { + closedir(dp); + return false; + } + } + closedir(dp); + return true; + } + return false; + } + + return true; +} + +int pmix_os_dirpath_access(const char *path, const mode_t in_mode ) { + struct stat buf; + mode_t loc_mode = S_IRWXU; /* looking for full rights */ + + /* + * If there was no mode specified, use the default mode + */ + if (0 != in_mode) { + loc_mode = in_mode; + } + + /* coverity[toctou] */ + if (0 == stat(path, &buf)) { /* exists - check access */ + if ((buf.st_mode & loc_mode) == loc_mode) { /* okay, I can work here */ + return(PMIX_SUCCESS); + } else { + /* Don't have access rights to the existing path */ + return(PMIX_ERROR); + } + } else { + /* We could not find the path */ + return( PMIX_ERR_NOT_FOUND ); + } +} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/os_dirpath.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/os_dirpath.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/os_dirpath.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/os_dirpath.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2005 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2019-2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +/** @file: + * Creates a directory tree set to the specified permissions. + * + * The pmix_os_dirpath_create() function creates a directory + * tree, with each directory that is created in the tree having the specified + * access permissions. Existing directories within the tree are left + * untouched - however, if they do not permit the user to create a directory + * within them, the function will return an error condition. + * + * If the specified full path name already exists, the + * pmix_os_dirpath_create() function will check to ensure that + * the final directory in the tree has at least the specified access permission. In other + * words, if the directory has read-write-execute for all, and the user + * has requested read-write access for just the user, then the function + * will consider the directory acceptable. If the minimal permissions are + * not currently provided, the function will attempt to change the + * access permissions of the directory to add the specified + * permissions. The function will return PMIX_ERROR if this cannot + * be done. + **/ + +#ifndef PMIX_OS_DIRPATH_CREATE_H +#define PMIX_OS_DIRPATH_CREATE_H + +#include "pmix_config.h" +#ifdef HAVE_SYS_STAT_H +#include +#endif + +BEGIN_C_DECLS + +/** + * @param path A pointer to a string that contains the path name to be built. + * @param mode A mode_t bit mask that specifies the access permissions for the + * directories being constructed. + * @retval PMIX_SUCCESS If the directory tree has been successfully created with + * the specified access permissions. + * @retval PMIX_ERROR If the directory tree could not be created with the + * specified access permissions. + */ + +PMIX_EXPORT int pmix_os_dirpath_create(const char *path, const mode_t mode); + +/** + * Check to see if a directory is empty + * + * @param path A pointer to a string that contains the path name to be checked. + * + * @retval true If the directory is empty + * @retval false If the directory is not empty + */ +PMIX_EXPORT bool pmix_os_dirpath_is_empty(const char *path); + +/** + * Check access to the directory + * + * @param path A pointer to a string that contains the path name to be checked. + * @param mode A mode_t bit mask that specifies the access permissions for the + * directory to be accessed. + * + * @retval PMIX_SUCCESS If directory exists, and permissions match + * @retval PMIX_ERR_NOT_FOUND If directory does not exist + * @retval PMIX_ERROR If directory exists, and permissions do not match + */ +PMIX_EXPORT int pmix_os_dirpath_access(const char *path, const mode_t mode ); + +/** + * Callback for pmix_os_dirpath_destroy(). Call for every file/directory before + * taking action to remove/unlink it. + * + * @param root A pointer to a string that contains the base path name (e.g., /tmp/foo from /tmp/foo/bar) + * @param path A pointer to a string that contains the file or directory (e.g., bar from /tmp/foo/bar) + * + * @retval true Allow the program to remove the file/directory + * @retval false Do not allow the program to remove the file/directory + */ +typedef bool (*pmix_os_dirpath_destroy_callback_fn_t)(const char *root, const char *path); + +/** + * Destroy a directory + * + * @param path A pointer to a string that contains the path name to be destroyed + * @param recursive Recursively descend the directory removing all files and directories. + * if set to 'false' then the directory must be empty to succeed. + * @param cbfunc A function that will be called before removing a file or directory. + * If NULL, then assume all remove. + * + * @retval PMIX_SUCCESS If the directory was successfully removed or removed to the + * specification of the user (i.e., obeyed the callback function). + * @retval PMIX_ERR_NOT_FOUND If directory does not exist. + * @retval PMIX_ERROR If the directory cannnot be removed, accessed properly, or contains + * directories that could not be removed.. + */ +PMIX_EXPORT int pmix_os_dirpath_destroy(const char *path, + bool recursive, + pmix_os_dirpath_destroy_callback_fn_t cbfunc); + +END_C_DECLS + +#endif diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/os_path.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/os_path.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/os_path.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/os_path.c 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2015-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -17,7 +17,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/os_path.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/os_path.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/os_path.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/os_path.h 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2015-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -42,8 +42,8 @@ #ifndef PMIX_OS_PATH_H #define PMIX_OS_PATH_H -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/output.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/output.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/output.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/output.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * Copyright (c) 2004-2006 The Regents of the University of California. * All rights reserved. * Copyright (c) 2007-2008 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -20,9 +20,9 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #include #include @@ -454,6 +454,7 @@ free (output_prefix); free (output_dir); PMIX_DESTRUCT(&verbose); + initialized = false; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/output.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/output.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/output.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/output.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * All rights reserved. * Copyright (c) 2007-2011 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2015-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -66,14 +66,13 @@ #ifndef PMIX_OUTPUT_H_ #define PMIX_OUTPUT_H_ -#include +#include "src/include/pmix_config.h" #ifdef HAVE_STDARG_H #include #endif -#include "pmix_rename.h" #include "src/class/pmix_object.h" BEGIN_C_DECLS diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/parse_options.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/parse_options.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/parse_options.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/parse_options.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -21,7 +21,7 @@ * $HEADER$ */ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/path.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/path.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/path.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/path.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2010 IBM Corporation. All rights reserved. * Copyright (c) 2012-2013 Los Alamos National Security, LLC. * All rights reserved. - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 University of Houston. All rights reserved. * Copyright (c) 2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -24,7 +24,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #include @@ -245,6 +245,7 @@ /* first check to see - is this a file or a directory? We * only want files */ + /* coverity[toctou] */ if (0 != stat(fullpath, &buf)) { /* couldn't stat the path - obviously, this also meets the * existence check, if that was requested @@ -295,7 +296,7 @@ * Loads argument array with $PATH env var. * * Accepts - * -path String contiaing the $PATH + * -path String containing the $PATH * -argc Pointer to argc * -argv Pointer to list of argv */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/path.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/path.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/path.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/path.h 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * Copyright (c) 2012 Los Alamos National Security, LLC. * All rights reserved. * Copyright (c) 2016 University of Houston. All rights reserved. - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -25,9 +25,9 @@ #ifndef PMIX_PATH_H #define PMIX_PATH_H -#include +#include "src/include/pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #ifdef HAVE_UNISTD_H #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/pif.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/pif.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/pif.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/pif.c 2022-05-29 09:51:40.000000000 +0000 @@ -16,7 +16,7 @@ * reserved. * Copyright (c) 2015-2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2016-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -25,7 +25,7 @@ */ #include "pmix_config.h" -#include "pmix_common.h" +#include "include/pmix_common.h" #include #ifdef HAVE_UNISTD_H @@ -539,14 +539,14 @@ } /* did we read something sensible? */ if( n[i] > 255 ) { - return PMIX_ERR_NETWORK_NOT_PARSEABLE; + return PMIX_ERR_FABRIC_NOT_PARSEABLE; } /* skip all the . */ for( start = end; '\0' != *start; start++ ) if( '.' != *start ) break; } *dots = i; - *net = PMIX_PIF_ASSEMBLE_NETWORK(n[0], n[1], n[2], n[3]); + *net = PMIX_PIF_ASSEMBLE_FABRIC(n[0], n[1], n[2], n[3]); return PMIX_SUCCESS; } @@ -575,7 +575,7 @@ pval = strtol(ptr, NULL, 10); if ((pval > 31) || (pval < 1)) { pmix_output(0, "pmix_iftupletoaddr: unknown mask"); - return PMIX_ERR_NETWORK_NOT_PARSEABLE; + return PMIX_ERR_FABRIC_NOT_PARSEABLE; } *mask = 0xFFFFFFFF << (32 - pval); } @@ -600,7 +600,7 @@ *mask = 0xFF000000; } else { pmix_output(0, "pmix_iftupletoaddr: unknown mask"); - return PMIX_ERR_NETWORK_NOT_PARSEABLE; + return PMIX_ERR_FABRIC_NOT_PARSEABLE; } } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/pif.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/pif.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/pif.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/pif.h 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * reserved. * Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved. * Copyright (c) 2013 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2016-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -46,7 +46,7 @@ (((n) >> 24) & 0x000000FF), (((n) >> 16) & 0x000000FF), \ (((n) >> 8) & 0x000000FF), ((n) & 0x000000FF) -#define PMIX_PIF_ASSEMBLE_NETWORK(n1, n2, n3, n4) \ +#define PMIX_PIF_ASSEMBLE_FABRIC(n1, n2, n3, n4) \ (((n1) << 24) & 0xFF000000) | \ (((n2) << 16) & 0x00FF0000) | \ (((n3) << 8) & 0x0000FF00) | \ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/pmix_environ.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/pmix_environ.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/pmix_environ.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/pmix_environ.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * Copyright (c) 2006 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2007-2013 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2014-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. * Copyright (c) 2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. @@ -23,18 +23,21 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #include #include #include +#include +#include "src/class/pmix_list.h" #include "src/util/printf.h" #include "src/util/error.h" #include "src/util/argv.h" #include "src/util/pmix_environ.h" +#include "src/include/pmix_globals.h" #define PMIX_DEFAULT_TMPDIR "/tmp" #define PMIX_MAX_ENVAR_LENGTH 100000 @@ -260,20 +263,109 @@ return (found) ? PMIX_SUCCESS : PMIX_ERR_NOT_FOUND; } -const char* pmix_tmp_directory( void ) +const char* pmix_tmp_directory(void) { const char* str; - if( NULL == (str = getenv("TMPDIR")) ) - if( NULL == (str = getenv("TEMP")) ) - if( NULL == (str = getenv("TMP")) ) + if (NULL == (str = getenv("TMPDIR"))) + if (NULL == (str = getenv("TEMP"))) + if (NULL == (str = getenv("TMP"))) str = PMIX_DEFAULT_TMPDIR; return str; } -const char* pmix_home_directory( void ) +const char* pmix_home_directory(uid_t uid) { - char* home = getenv("HOME"); + const char *home = NULL; + + if (uid == geteuid()) { + home = getenv("HOME"); + } + if (NULL == home) { + struct passwd *pw = getpwuid(uid); + home = pw->pw_dir; + } return home; } + +pmix_status_t pmix_util_harvest_envars(char **incvars, char **excvars, + pmix_list_t *ilist) +{ + int i, j; + size_t len; + pmix_kval_t *kv, *next; + char *cs_env, *string_key; + bool duplicate; + + /* harvest envars to pass along */ + for (j=0; NULL != incvars[j]; j++) { + len = strlen(incvars[j]); + if ('*' == incvars[j][len-1]) { + --len; + } + for (i = 0; NULL != environ[i]; ++i) { + if (0 == strncmp(environ[i], incvars[j], len)) { + cs_env = strdup(environ[i]); + string_key = strchr(cs_env, '='); + if (NULL == string_key) { + free(cs_env); + return PMIX_ERR_BAD_PARAM; + } + *string_key = '\0'; + ++string_key; + /* see if we already have this envar on the list */ + duplicate = false; + PMIX_LIST_FOREACH(kv, ilist, pmix_kval_t) { + if (0 == strcmp(kv->value->data.envar.envar, cs_env)) { + /* if the value is the same, then ignore it */ + if (0 != strcmp(kv->value->data.envar.value, string_key)) { + /* otherwise, overwrite the value */ + free(kv->value->data.envar.value); + kv->value->data.envar.value = strdup(string_key); + } + duplicate = true; + break; + } + } + if (duplicate) { + free(cs_env); + continue; + } + kv = PMIX_NEW(pmix_kval_t); + if (NULL == kv) { + free(cs_env); + return PMIX_ERR_OUT_OF_RESOURCE; + } + kv->key = strdup(PMIX_SET_ENVAR); + kv->value = (pmix_value_t*)malloc(sizeof(pmix_value_t)); + if (NULL == kv->value) { + PMIX_RELEASE(kv); + free(cs_env); + return PMIX_ERR_OUT_OF_RESOURCE; + } + kv->value->type = PMIX_ENVAR; + PMIX_ENVAR_LOAD(&kv->value->data.envar, cs_env, string_key, ':'); + pmix_list_append(ilist, &kv->super); + free(cs_env); + } + } + } + + /* now check the exclusions and remove any that match */ + if (NULL != excvars) { + for (j=0; NULL != excvars[j]; j++) { + len = strlen(excvars[j]); + if ('*' == excvars[j][len-1]) { + --len; + } + PMIX_LIST_FOREACH_SAFE(kv, next, ilist, pmix_kval_t) { + if (0 == strncmp(kv->value->data.envar.envar, excvars[j], len)) { + pmix_list_remove_item(ilist, &kv->super); + PMIX_RELEASE(kv); + } + } + } + } + return PMIX_SUCCESS; +} diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/pmix_environ.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/pmix_environ.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/pmix_environ.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/pmix_environ.h 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * All rights reserved. * Copyright (c) 2007-2013 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2015-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. @@ -31,14 +31,15 @@ #ifndef PMIX_ENVIRON_H #define PMIX_ENVIRON_H -#include - +#include "src/include/pmix_config.h" +#include #ifdef HAVE_CRT_EXTERNS_H #include #endif -#include +#include "include/pmix_common.h" +#include "src/class/pmix_list.h" BEGIN_C_DECLS @@ -86,7 +87,7 @@ * * \em env is expected to be a NULL-terminated array of pointers * (argv-style). Note that unlike some implementations of - * putenv(3), if \em value is insertted in \em env, it is copied. + * putenv(3), if \em value is inserted in \em env, it is copied. * So the caller can modify/free both \em name and \em value after * pmix_setenv() returns. * @@ -135,8 +136,12 @@ /* A consistent way to retrieve the home and tmp directory on all supported * platforms. */ -PMIX_EXPORT const char* pmix_home_directory( void ); -PMIX_EXPORT const char* pmix_tmp_directory( void ); +PMIX_EXPORT const char* pmix_home_directory(uid_t uid); +PMIX_EXPORT const char* pmix_tmp_directory(void); + +/* Provide a utility for harvesting envars */ +PMIX_EXPORT pmix_status_t pmix_util_harvest_envars(char **incvars, char **excvars, + pmix_list_t *ilist); /* Some care is needed with environ on OS X when dealing with shared libraries. Handle that care here... */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/pmix_pty.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/pmix_pty.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/pmix_pty.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/pmix_pty.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,262 @@ +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2005 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2018 Cisco Systems, Inc. All rights reserved + * Copyright (c) 2019-2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ +/*- + * Copyright (c) 1990, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "src/include/pmix_config.h" + +#ifdef HAVE_SYS_CDEFS_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#include +#ifdef HAVE_SYS_IOCTL_H +#include +#endif +#ifdef HAVE_FCNTL_H +#include +#endif +#ifdef HAVE_TERMIOS_H +# include +#else +# ifdef HAVE_TERMIO_H +# include +# endif +#endif +#include +#ifdef HAVE_UNISTD_H +# include +#endif +#include +# include +#ifdef HAVE_GRP_H +#include +#endif +#ifdef HAVE_PTY_H +#include +#endif +#ifdef HAVE_UTMP_H +#include +#endif + +#ifdef HAVE_PTSNAME +# include +# ifdef HAVE_STROPTS_H +# include +# endif +#endif + +#ifdef HAVE_UTIL_H +#include +#endif + +#include "src/util/pmix_pty.h" + +/* The only public interface is openpty - all others are to support + openpty() */ + +#if PMIX_ENABLE_PTY_SUPPORT == 0 + +int pmix_openpty(int *amaster, int *aslave, char *name, + void *termp, void *winpp) +{ + return -1; +} + +#elif defined(HAVE_OPENPTY) + +int pmix_openpty(int *amaster, int *aslave, char *name, + struct termios *termp, struct winsize *winp) +{ + return openpty(amaster, aslave, name, termp, winp); +} + +#else + +/* implement openpty in terms of ptym_open and ptys_open */ + +static int ptym_open(char *pts_name); +static int ptys_open(int fdm, char *pts_name); + +int pmix_openpty(int *amaster, int *aslave, char *name, + struct termios *termp, struct winsize *winp) +{ + char line[20]; + *amaster = ptym_open(line); + if (*amaster < 0) { + return -1; + } + *aslave = ptys_open(*amaster, line); + if (*aslave < 0) { + close(*amaster); + return -1; + } + if (name) { + // We don't know the max length of name, but we do know the + // max length of the source, so at least use that. + pmix_string_copy(name, line, sizeof(line)); + } +#ifndef TCSAFLUSH +#define TCSAFLUSH TCSETAF +#endif + if (termp) { + (void) tcsetattr(*aslave, TCSAFLUSH, termp); + } +#ifdef TIOCSWINSZ + if (winp) { + (void) ioctl(*aslave, TIOCSWINSZ, (char *) winp); + } +#endif + return 0; +} + + +static int ptym_open(char *pts_name) +{ + int fdm; +#ifdef HAVE_PTSNAME + char *ptr; + +#ifdef _AIX + strcpy(pts_name, "/dev/ptc"); +#else + strcpy(pts_name, "/dev/ptmx"); +#endif + fdm = open(pts_name, O_RDWR); + if (fdm < 0) { + return -1; + } + if (grantpt(fdm) < 0) { /* grant access to slave */ + close(fdm); + return -2; + } + if (unlockpt(fdm) < 0) { /* clear slave's lock flag */ + close(fdm); + return -3; + } + ptr = ptsname(fdm); + if (ptr == NULL) { /* get slave's name */ + close(fdm); + return -4; + } + strcpy(pts_name, ptr); /* return name of slave */ + return fdm; /* return fd of master */ +#else + char *ptr1, *ptr2; + + strcpy(pts_name, "/dev/ptyXY"); + /* array index: 012345689 (for references in following code) */ + for (ptr1 = "pqrstuvwxyzPQRST"; *ptr1 != 0; ptr1++) { + pts_name[8] = *ptr1; + for (ptr2 = "0123456789abcdef"; *ptr2 != 0; ptr2++) { + pts_name[9] = *ptr2; + /* try to open master */ + fdm = open(pts_name, O_RDWR); + if (fdm < 0) { + if (errno == ENOENT) { /* different from EIO */ + return -1; /* out of pty devices */ + } else { + continue; /* try next pty device */ + } + } + pts_name[5] = 't'; /* chage "pty" to "tty" */ + return fdm; /* got it, return fd of master */ + } + } + return -1; /* out of pty devices */ +#endif +} + + +static int ptys_open(int fdm, char *pts_name) +{ + int fds; +#ifdef HAVE_PTSNAME + /* following should allocate controlling terminal */ + fds = open(pts_name, O_RDWR); + if (fds < 0) { + close(fdm); + return -5; + } +#if defined(__SVR4) && defined(__sun) + if (ioctl(fds, I_PUSH, "ptem") < 0) { + close(fdm); + close(fds); + return -6; + } + if (ioctl(fds, I_PUSH, "ldterm") < 0) { + close(fdm); + close(fds); + return -7; + } +#endif + + return fds; +#else + int gid; + struct group *grptr; + + grptr = getgrnam("tty"); + if (grptr != NULL) { + gid = grptr->gr_gid; + } else { + gid = -1; /* group tty is not in the group file */ + } + /* following two functions don't work unless we're root */ + chown(pts_name, getuid(), gid); + chmod(pts_name, S_IRUSR | S_IWUSR | S_IWGRP); + fds = open(pts_name, O_RDWR); + if (fds < 0) { + close(fdm); + return -1; + } + return fds; +#endif +} + +#endif /* #ifdef HAVE_OPENPTY */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/pmix_pty.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/pmix_pty.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/pmix_pty.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/pmix_pty.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2006 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2019-2020 Intel, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef PMIX_UTIL_PTY_H +#define PMIX_UTIL_PTY_H + +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" + +#ifdef HAVE_UTIL_H +#include +#endif +#ifdef HAVE_LIBUTIL_H +#include +#endif +#ifdef HAVE_TERMIOS_H +# include +#else +# ifdef HAVE_TERMIO_H +# include +# endif +#endif + +BEGIN_C_DECLS + +#if PMIX_ENABLE_PTY_SUPPORT + +PMIX_EXPORT int pmix_openpty(int *amaster, int *aslave, char *name, + struct termios *termp, struct winsize *winp); + +#else + +PMIX_EXPORT int pmix_openpty(int *amaster, int *aslave, char *name, + void *termp, void *winpp); + +#endif + +END_C_DECLS + +#endif /* PMIX_UTIL_PTY_H */ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/printf.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/printf.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/printf.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/printf.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2015 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -22,7 +22,7 @@ * Buffer safe printf functions for portability to archaic platforms. */ -#include +#include "src/include/pmix_config.h" #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/printf.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/printf.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/printf.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/printf.h 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2015-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2015-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -25,8 +25,8 @@ #ifndef PMIX_PRINTF_H #define PMIX_PRINTF_H -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/show_help.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/show_help.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/show_help.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/show_help.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2016-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -20,7 +20,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #include @@ -34,7 +34,7 @@ #include "src/util/argv.h" #include "src/util/os_path.h" #include "src/util/output.h" -#include "pmix_common.h" +#include "include/pmix_common.h" /* @@ -48,15 +48,6 @@ /* * Local functions */ -static int pmix_show_vhelp_internal(const char *filename, const char *topic, - int want_error_header, va_list arglist); -static int pmix_show_help_internal(const char *filename, const char *topic, - int want_error_header, ...); - -pmix_show_help_fn_t pmix_show_help = pmix_show_help_internal; -pmix_show_vhelp_fn_t pmix_show_vhelp = pmix_show_vhelp_internal; - - int pmix_show_help_init(void) { pmix_output_stream_t lds; @@ -337,8 +328,8 @@ return output; } -static int pmix_show_vhelp_internal(const char *filename, const char *topic, - int want_error_header, va_list arglist) +int pmix_show_vhelp(const char *filename, const char *topic, + int want_error_header, va_list arglist) { char *output; @@ -355,18 +346,25 @@ return (NULL == output) ? PMIX_ERROR : PMIX_SUCCESS; } -static int pmix_show_help_internal(const char *filename, const char *topic, - int want_error_header, ...) +int pmix_show_help(const char *filename, const char *topic, + int want_error_header, ...) { va_list arglist; - int rc; + char *output; - /* Convert it to a single string */ va_start(arglist, want_error_header); - rc = pmix_show_vhelp(filename, topic, want_error_header, arglist); + output = pmix_show_help_vstring(filename, topic, want_error_header, + arglist); va_end(arglist); - return rc; + /* If nothing came back, there's nothing to do */ + if (NULL == output) { + return PMIX_SUCCESS; + } + + fprintf(stderr, "%s\n", output); + free(output); + return PMIX_SUCCESS; } int pmix_show_help_add_dir(const char *directory) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/show_help.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/show_help.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/show_help.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/show_help.h 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2008-2011 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2016-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -90,8 +90,8 @@ #ifndef PMIX_SHOW_HELP_H #define PMIX_SHOW_HELP_H -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #include @@ -135,17 +135,15 @@ * promotion to va_start() has undefined behavior (according to clang * warnings on MacOS High Sierra). */ -typedef int (*pmix_show_help_fn_t)(const char *filename, const char *topic, - int want_error_header, ...); -PMIX_EXPORT extern pmix_show_help_fn_t pmix_show_help; +PMIX_EXPORT int pmix_show_help(const char *filename, const char *topic, + int want_error_header, ...); /** * This function does the same thing as pmix_show_help(), but accepts * a va_list form of varargs. */ -typedef int (*pmix_show_vhelp_fn_t)(const char *filename, const char *topic, - int want_error_header, va_list ap); -PMIX_EXPORT extern pmix_show_vhelp_fn_t pmix_show_vhelp; +PMIX_EXPORT int pmix_show_vhelp(const char *filename, const char *topic, + int want_error_header, va_list ap); /** * This function does the same thing as pmix_show_help(), but returns diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/show_help_lex.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/show_help_lex.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/show_help_lex.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/show_help_lex.c 2022-05-29 09:51:40.000000000 +0000 @@ -507,7 +507,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -515,7 +515,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #ifdef HAVE_UNISTD_H diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/show_help_lex.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/show_help_lex.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/show_help_lex.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/show_help_lex.h 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2006 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -21,7 +21,8 @@ #ifndef PMIX_SHOW_HELP_LEX_H #define PMIX_SHOW_HELP_LEX_H -#include +#include "src/include/pmix_config.h" +#include "include/pmix_common.h" #ifdef malloc #undef malloc @@ -35,14 +36,14 @@ #include BEGIN_C_DECLS -int pmix_show_help_yylex(void); -int pmix_show_help_init_buffer(FILE *file); -int pmix_show_help_yylex_destroy(void); - -extern FILE *pmix_show_help_yyin; -extern bool pmix_show_help_parse_done; -extern char *pmix_show_help_yytext; -extern int pmix_show_help_yynewlines; +PMIX_EXPORT int pmix_show_help_yylex(void); +PMIX_EXPORT int pmix_show_help_init_buffer(FILE *file); +PMIX_EXPORT int pmix_show_help_yylex_destroy(void); + +PMIX_EXPORT extern FILE *pmix_show_help_yyin; +PMIX_EXPORT extern bool pmix_show_help_parse_done; +PMIX_EXPORT extern char *pmix_show_help_yytext; +PMIX_EXPORT extern int pmix_show_help_yynewlines; /* * Make lex-generated files not issue compiler warnings diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/show_help_lex.l openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/show_help_lex.l --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/show_help_lex.l 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/show_help_lex.l 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2016 Intel, Inc. All rights reserved + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -21,7 +21,7 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" #include #ifdef HAVE_UNISTD_H diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/strnlen.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/strnlen.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/strnlen.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/strnlen.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -15,7 +15,7 @@ #ifndef PMIX_STRNLEN_H #define PMIX_STRNLEN_H -#include +#include "src/include/pmix_config.h" #if defined(HAVE_STRNLEN) #define PMIX_STRNLEN(c, a, b) \ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/timings.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/timings.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/timings.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/timings.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* * Copyright (C) 2014 Artem Polyakov - * Copyright (c) 2014-2016 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -8,9 +8,9 @@ * $HEADER$ */ -#include +#include "src/include/pmix_config.h" -#include +#include "include/pmix_common.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/timings.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/timings.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/src/util/timings.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/src/util/timings.h 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ /* * Copyright (C) 2014 Artem Polyakov - * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -13,7 +13,7 @@ #ifndef PMIX_UTIL_TIMING_H #define PMIX_UTIL_TIMING_H -#include +#include "src/include/pmix_config.h" #include "src/class/pmix_list.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/cli_stages.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/cli_stages.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/cli_stages.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/cli_stages.h 2022-05-29 09:51:40.000000000 +0000 @@ -15,7 +15,7 @@ #ifndef CLI_STAGES_H #define CLI_STAGES_H -#include +#include #include #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ # All rights reserved. # Copyright (c) 2006-2010 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. -# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2020 Intel, Inc. All rights reserved. # Copyright (c) 2018 Research Organization for Information Science # and Technology (RIST). All rights reserved. # $COPYRIGHT$ @@ -25,6 +25,7 @@ # these tests use internal symbols # use --disable-visibility SUBDIRS = simple + endif headers = test_common.h cli_stages.h server_callbacks.h utils.h test_fence.h \ @@ -47,9 +48,9 @@ run_tests10.pl \ run_tests11.pl \ run_tests12.pl \ - run_tests13.pl \ - run_tests14.pl \ - run_tests15.pl + run_tests13.pl +# run_tests14.pl \ +# run_tests15.pl noinst_PROGRAMS = @@ -81,9 +82,9 @@ run_tests10.pl \ run_tests11.pl \ run_tests12.pl \ - run_tests13.pl \ - run_tests14.pl \ - run_tests15.pl + run_tests13.pl +# run_tests14.pl \ +# run_tests15.pl ########################## diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -27,7 +27,7 @@ # All rights reserved. # Copyright (c) 2006-2010 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. -# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2020 Intel, Inc. All rights reserved. # Copyright (c) 2018 Research Organization for Information Science # and Technology (RIST). All rights reserved. # $COPYRIGHT$ @@ -121,6 +121,8 @@ @WANT_PMI_BACKWARD_TRUE@ pmi_client \ @WANT_PMI_BACKWARD_TRUE@ pmi2_client +# run_tests14.pl \ +# run_tests15.pl ########################## @WANT_PMI_BACKWARD_TRUE@am__append_2 = pmi_client pmi2_client @@ -140,7 +142,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -170,6 +171,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -180,7 +182,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -192,8 +193,7 @@ CONFIG_CLEAN_FILES = run_tests00.pl run_tests01.pl run_tests02.pl \ run_tests03.pl run_tests04.pl run_tests05.pl run_tests06.pl \ run_tests07.pl run_tests08.pl run_tests09.pl run_tests10.pl \ - run_tests11.pl run_tests12.pl run_tests13.pl run_tests14.pl \ - run_tests15.pl + run_tests11.pl run_tests12.pl run_tests13.pl CONFIG_CLEAN_VPATH_FILES = @WANT_PMI_BACKWARD_TRUE@am__EXEEXT_1 = pmi_client$(EXEEXT) \ @WANT_PMI_BACKWARD_TRUE@ pmi2_client$(EXEEXT) @@ -547,8 +547,7 @@ $(srcdir)/run_tests07.pl.in $(srcdir)/run_tests08.pl.in \ $(srcdir)/run_tests09.pl.in $(srcdir)/run_tests10.pl.in \ $(srcdir)/run_tests11.pl.in $(srcdir)/run_tests12.pl.in \ - $(srcdir)/run_tests13.pl.in $(srcdir)/run_tests14.pl.in \ - $(srcdir)/run_tests15.pl.in $(top_srcdir)/./config/depcomp \ + $(srcdir)/run_tests13.pl.in $(top_srcdir)/./config/depcomp \ $(top_srcdir)/./config/test-driver README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ @@ -655,6 +654,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -718,6 +724,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -740,6 +753,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -758,6 +773,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -766,9 +782,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -782,6 +798,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -827,6 +844,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -839,10 +860,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ @@ -884,9 +901,7 @@ run_tests10.pl \ run_tests11.pl \ run_tests12.pl \ - run_tests13.pl \ - run_tests14.pl \ - run_tests15.pl + run_tests13.pl TESTS = \ run_tests00.pl \ @@ -902,9 +917,7 @@ run_tests10.pl \ run_tests11.pl \ run_tests12.pl \ - run_tests13.pl \ - run_tests14.pl \ - run_tests15.pl + run_tests13.pl pmix_test_SOURCES = $(headers) \ pmix_test.c test_common.c cli_stages.c server_callbacks.c test_server.c utils.c @@ -1004,10 +1017,6 @@ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ run_tests13.pl: $(top_builddir)/config.status $(srcdir)/run_tests13.pl.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -run_tests14.pl: $(top_builddir)/config.status $(srcdir)/run_tests14.pl.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -run_tests15.pl: $(top_builddir)/config.status $(srcdir)/run_tests15.pl.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ @@ -1439,20 +1448,6 @@ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -run_tests14.pl.log: run_tests14.pl - @p='run_tests14.pl'; \ - b='run_tests14.pl'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -run_tests15.pl.log: run_tests15.pl - @p='run_tests15.pl'; \ - b='run_tests15.pl'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/pmix_client.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/pmix_client.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/pmix_client.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/pmix_client.c 2022-05-29 09:51:40.000000000 +0000 @@ -22,7 +22,7 @@ * $HEADER$ * */ -#include +#include #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests00.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests00.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests00.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests00.pl 2022-05-29 09:51:40.000000000 +0000 @@ -43,7 +43,7 @@ # components. my @myfullpaths; my $mybuilddir = "/home/ec2-user/workspace/open-mpi.dist.create-tarball/ompi/opal/mca/pmix/pmix3x/pmix"; -my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/pnet/opa:src/mca/pnet/tcp:src/mca/pnet/test:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/ptl/tcp:src/mca/ptl/usock"; +my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pcompress/zlib:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/preg/compress:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/psquash/flex128:src/mca/psquash/native:src/mca/ptl/tcp:src/mca/ptl/usock"; my @splitstr = split(':', $mypathstr); foreach my $path (@splitstr) { # Note that the component is actually built in the ".libs" @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests00.pl.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests00.pl.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests00.pl.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests00.pl.in 2022-05-29 09:51:40.000000000 +0000 @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests01.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests01.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests01.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests01.pl 2022-05-29 09:51:40.000000000 +0000 @@ -43,7 +43,7 @@ # components. my @myfullpaths; my $mybuilddir = "/home/ec2-user/workspace/open-mpi.dist.create-tarball/ompi/opal/mca/pmix/pmix3x/pmix"; -my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/pnet/opa:src/mca/pnet/tcp:src/mca/pnet/test:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/ptl/tcp:src/mca/ptl/usock"; +my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pcompress/zlib:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/preg/compress:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/psquash/flex128:src/mca/psquash/native:src/mca/ptl/tcp:src/mca/ptl/usock"; my @splitstr = split(':', $mypathstr); foreach my $path (@splitstr) { # Note that the component is actually built in the ".libs" @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests01.pl.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests01.pl.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests01.pl.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests01.pl.in 2022-05-29 09:51:40.000000000 +0000 @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests02.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests02.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests02.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests02.pl 2022-05-29 09:51:40.000000000 +0000 @@ -43,7 +43,7 @@ # components. my @myfullpaths; my $mybuilddir = "/home/ec2-user/workspace/open-mpi.dist.create-tarball/ompi/opal/mca/pmix/pmix3x/pmix"; -my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/pnet/opa:src/mca/pnet/tcp:src/mca/pnet/test:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/ptl/tcp:src/mca/ptl/usock"; +my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pcompress/zlib:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/preg/compress:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/psquash/flex128:src/mca/psquash/native:src/mca/ptl/tcp:src/mca/ptl/usock"; my @splitstr = split(':', $mypathstr); foreach my $path (@splitstr) { # Note that the component is actually built in the ".libs" @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests02.pl.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests02.pl.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests02.pl.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests02.pl.in 2022-05-29 09:51:40.000000000 +0000 @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests03.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests03.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests03.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests03.pl 2022-05-29 09:51:40.000000000 +0000 @@ -43,7 +43,7 @@ # components. my @myfullpaths; my $mybuilddir = "/home/ec2-user/workspace/open-mpi.dist.create-tarball/ompi/opal/mca/pmix/pmix3x/pmix"; -my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/pnet/opa:src/mca/pnet/tcp:src/mca/pnet/test:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/ptl/tcp:src/mca/ptl/usock"; +my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pcompress/zlib:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/preg/compress:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/psquash/flex128:src/mca/psquash/native:src/mca/ptl/tcp:src/mca/ptl/usock"; my @splitstr = split(':', $mypathstr); foreach my $path (@splitstr) { # Note that the component is actually built in the ".libs" @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests03.pl.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests03.pl.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests03.pl.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests03.pl.in 2022-05-29 09:51:40.000000000 +0000 @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests04.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests04.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests04.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests04.pl 2022-05-29 09:51:40.000000000 +0000 @@ -43,7 +43,7 @@ # components. my @myfullpaths; my $mybuilddir = "/home/ec2-user/workspace/open-mpi.dist.create-tarball/ompi/opal/mca/pmix/pmix3x/pmix"; -my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/pnet/opa:src/mca/pnet/tcp:src/mca/pnet/test:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/ptl/tcp:src/mca/ptl/usock"; +my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pcompress/zlib:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/preg/compress:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/psquash/flex128:src/mca/psquash/native:src/mca/ptl/tcp:src/mca/ptl/usock"; my @splitstr = split(':', $mypathstr); foreach my $path (@splitstr) { # Note that the component is actually built in the ".libs" @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests04.pl.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests04.pl.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests04.pl.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests04.pl.in 2022-05-29 09:51:40.000000000 +0000 @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests05.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests05.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests05.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests05.pl 2022-05-29 09:51:40.000000000 +0000 @@ -43,7 +43,7 @@ # components. my @myfullpaths; my $mybuilddir = "/home/ec2-user/workspace/open-mpi.dist.create-tarball/ompi/opal/mca/pmix/pmix3x/pmix"; -my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/pnet/opa:src/mca/pnet/tcp:src/mca/pnet/test:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/ptl/tcp:src/mca/ptl/usock"; +my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pcompress/zlib:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/preg/compress:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/psquash/flex128:src/mca/psquash/native:src/mca/ptl/tcp:src/mca/ptl/usock"; my @splitstr = split(':', $mypathstr); foreach my $path (@splitstr) { # Note that the component is actually built in the ".libs" @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests05.pl.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests05.pl.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests05.pl.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests05.pl.in 2022-05-29 09:51:40.000000000 +0000 @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests06.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests06.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests06.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests06.pl 2022-05-29 09:51:40.000000000 +0000 @@ -43,7 +43,7 @@ # components. my @myfullpaths; my $mybuilddir = "/home/ec2-user/workspace/open-mpi.dist.create-tarball/ompi/opal/mca/pmix/pmix3x/pmix"; -my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/pnet/opa:src/mca/pnet/tcp:src/mca/pnet/test:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/ptl/tcp:src/mca/ptl/usock"; +my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pcompress/zlib:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/preg/compress:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/psquash/flex128:src/mca/psquash/native:src/mca/ptl/tcp:src/mca/ptl/usock"; my @splitstr = split(':', $mypathstr); foreach my $path (@splitstr) { # Note that the component is actually built in the ".libs" @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests06.pl.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests06.pl.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests06.pl.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests06.pl.in 2022-05-29 09:51:40.000000000 +0000 @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests07.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests07.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests07.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests07.pl 2022-05-29 09:51:40.000000000 +0000 @@ -43,7 +43,7 @@ # components. my @myfullpaths; my $mybuilddir = "/home/ec2-user/workspace/open-mpi.dist.create-tarball/ompi/opal/mca/pmix/pmix3x/pmix"; -my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/pnet/opa:src/mca/pnet/tcp:src/mca/pnet/test:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/ptl/tcp:src/mca/ptl/usock"; +my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pcompress/zlib:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/preg/compress:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/psquash/flex128:src/mca/psquash/native:src/mca/ptl/tcp:src/mca/ptl/usock"; my @splitstr = split(':', $mypathstr); foreach my $path (@splitstr) { # Note that the component is actually built in the ".libs" @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests07.pl.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests07.pl.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests07.pl.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests07.pl.in 2022-05-29 09:51:40.000000000 +0000 @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests08.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests08.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests08.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests08.pl 2022-05-29 09:51:40.000000000 +0000 @@ -43,7 +43,7 @@ # components. my @myfullpaths; my $mybuilddir = "/home/ec2-user/workspace/open-mpi.dist.create-tarball/ompi/opal/mca/pmix/pmix3x/pmix"; -my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/pnet/opa:src/mca/pnet/tcp:src/mca/pnet/test:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/ptl/tcp:src/mca/ptl/usock"; +my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pcompress/zlib:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/preg/compress:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/psquash/flex128:src/mca/psquash/native:src/mca/ptl/tcp:src/mca/ptl/usock"; my @splitstr = split(':', $mypathstr); foreach my $path (@splitstr) { # Note that the component is actually built in the ".libs" @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests08.pl.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests08.pl.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests08.pl.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests08.pl.in 2022-05-29 09:51:40.000000000 +0000 @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests09.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests09.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests09.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests09.pl 2022-05-29 09:51:40.000000000 +0000 @@ -43,7 +43,7 @@ # components. my @myfullpaths; my $mybuilddir = "/home/ec2-user/workspace/open-mpi.dist.create-tarball/ompi/opal/mca/pmix/pmix3x/pmix"; -my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/pnet/opa:src/mca/pnet/tcp:src/mca/pnet/test:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/ptl/tcp:src/mca/ptl/usock"; +my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pcompress/zlib:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/preg/compress:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/psquash/flex128:src/mca/psquash/native:src/mca/ptl/tcp:src/mca/ptl/usock"; my @splitstr = split(':', $mypathstr); foreach my $path (@splitstr) { # Note that the component is actually built in the ".libs" @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests09.pl.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests09.pl.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests09.pl.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests09.pl.in 2022-05-29 09:51:40.000000000 +0000 @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests10.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests10.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests10.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests10.pl 2022-05-29 09:51:40.000000000 +0000 @@ -43,7 +43,7 @@ # components. my @myfullpaths; my $mybuilddir = "/home/ec2-user/workspace/open-mpi.dist.create-tarball/ompi/opal/mca/pmix/pmix3x/pmix"; -my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/pnet/opa:src/mca/pnet/tcp:src/mca/pnet/test:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/ptl/tcp:src/mca/ptl/usock"; +my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pcompress/zlib:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/preg/compress:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/psquash/flex128:src/mca/psquash/native:src/mca/ptl/tcp:src/mca/ptl/usock"; my @splitstr = split(':', $mypathstr); foreach my $path (@splitstr) { # Note that the component is actually built in the ".libs" @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests10.pl.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests10.pl.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests10.pl.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests10.pl.in 2022-05-29 09:51:40.000000000 +0000 @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests11.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests11.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests11.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests11.pl 2022-05-29 09:51:40.000000000 +0000 @@ -43,7 +43,7 @@ # components. my @myfullpaths; my $mybuilddir = "/home/ec2-user/workspace/open-mpi.dist.create-tarball/ompi/opal/mca/pmix/pmix3x/pmix"; -my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/pnet/opa:src/mca/pnet/tcp:src/mca/pnet/test:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/ptl/tcp:src/mca/ptl/usock"; +my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pcompress/zlib:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/preg/compress:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/psquash/flex128:src/mca/psquash/native:src/mca/ptl/tcp:src/mca/ptl/usock"; my @splitstr = split(':', $mypathstr); foreach my $path (@splitstr) { # Note that the component is actually built in the ".libs" @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests11.pl.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests11.pl.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests11.pl.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests11.pl.in 2022-05-29 09:51:40.000000000 +0000 @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests12.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests12.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests12.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests12.pl 2022-05-29 09:51:40.000000000 +0000 @@ -43,7 +43,7 @@ # components. my @myfullpaths; my $mybuilddir = "/home/ec2-user/workspace/open-mpi.dist.create-tarball/ompi/opal/mca/pmix/pmix3x/pmix"; -my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/pnet/opa:src/mca/pnet/tcp:src/mca/pnet/test:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/ptl/tcp:src/mca/ptl/usock"; +my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pcompress/zlib:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/preg/compress:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/psquash/flex128:src/mca/psquash/native:src/mca/ptl/tcp:src/mca/ptl/usock"; my @splitstr = split(':', $mypathstr); foreach my $path (@splitstr) { # Note that the component is actually built in the ".libs" @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests12.pl.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests12.pl.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests12.pl.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests12.pl.in 2022-05-29 09:51:40.000000000 +0000 @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests13.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests13.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests13.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests13.pl 2022-05-29 09:51:40.000000000 +0000 @@ -43,7 +43,7 @@ # components. my @myfullpaths; my $mybuilddir = "/home/ec2-user/workspace/open-mpi.dist.create-tarball/ompi/opal/mca/pmix/pmix3x/pmix"; -my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/pnet/opa:src/mca/pnet/tcp:src/mca/pnet/test:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/ptl/tcp:src/mca/ptl/usock"; +my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pcompress/zlib:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/preg/compress:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/psquash/flex128:src/mca/psquash/native:src/mca/ptl/tcp:src/mca/ptl/usock"; my @splitstr = split(':', $mypathstr); foreach my $path (@splitstr) { # Note that the component is actually built in the ".libs" @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests13.pl.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests13.pl.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests13.pl.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests13.pl.in 2022-05-29 09:51:40.000000000 +0000 @@ -70,12 +70,12 @@ foreach my $p (@paths) { my $fullpath = $p . "/" . "gtimeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } else { my $fullpath = $p . "/" . "timeout"; if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; + $timeout_cmd = $fullpath . " --preserve-status -k 500 450 "; last; } } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests14.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests14.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests14.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests14.pl 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ -#!/usr/bin/env perl -# -# Copyright (c) 2019 Intel, Inc. -# -# Copyright (c) 2019 Cisco Systems, Inc. All rights reserved -# $COPYRIGHT$ -# -# Additional copyrights may follow - -use strict; - -my @tests = ("-n 4 --ns-dist 3:1 --fence \"[db | 0:0-2;1:0]\"", - "-n 4 --ns-dist 3:1 --fence \"[db | 0:;1:0]\"", - "-n 4 --ns-dist 3:1 --fence \"[db | 0:;1:]\"", - "-n 4 --ns-dist 3:1 --fence \"[0:]\"", - "-n 4 --ns-dist 3:1 --fence \"[b | 0:]\"", - "-n 4 --ns-dist 3:1 --fence \"[d | 0:]\" --noise \"[0:0,1]\"", - "-n 4 --job-fence -c", - "-n 4 --job-fence", - "-n 2 --test-publish", - "-n 2 --test-spawn", - "-n 2 --test-connect", - "-n 5 --test-resolve-peers --ns-dist \"1:2:2\"", - "-n 5 --test-replace 100:0,1,10,50,99", - "-n 5 --test-internal 10", - "-s 1 -n 2 --job-fence", - "-s 1 -n 2 --job-fence -c"); - -my $test; -my $cmd; -my $output; -my $status = 0; -my $testnum; -my $timeout_cmd = ""; - -# We are running tests against the build tree (vs. the installation -# tree). Autogen gives us a full list of all possible component -# directories in PMIX_COMPONENT_LIBRARY_PATHS. Iterate through each -# of those directories: 1) to see if there is actually a component -# built in there, and 2) to turn it into an absolute path name. Then -# put the new list in the "mca_bast_component_path" MCA parameter env -# variable so that the MCA base knows where to find all the -# components. -my @myfullpaths; -my $mybuilddir = "/home/ec2-user/workspace/open-mpi.dist.create-tarball/ompi/opal/mca/pmix/pmix3x/pmix"; -my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/pnet/opa:src/mca/pnet/tcp:src/mca/pnet/test:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/ptl/tcp:src/mca/ptl/usock"; -my @splitstr = split(':', $mypathstr); -foreach my $path (@splitstr) { - # Note that the component is actually built in the ".libs" - # subdirectory. If the component wasn't built, that subdirectory - # will not exist, so don't save it. - my $fullpath = $mybuilddir . "/" . $path . "/.libs"; - push(@myfullpaths, $fullpath) - if (-d $fullpath); -} -my $mymcapaths = join(":", @myfullpaths); -$ENV{'PMIX_MCA_mca_base_component_path'} = $mymcapaths; - -my $wdir = $mybuilddir . "/test"; -chdir $wdir; - -$testnum = $0; -$testnum =~ s/.pl//; -$testnum = substr($testnum, -2); -$test = @tests[$testnum]; - -# find the timeout or gtimeout cmd so we can timeout the -# test if it hangs -my @paths = split(/:/, $ENV{PATH}); -foreach my $p (@paths) { - my $fullpath = $p . "/" . "gtimeout"; - if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; - last; - } else { - my $fullpath = $p . "/" . "timeout"; - if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; - last; - } - } -} - -$cmd = $timeout_cmd . " ./pmix_test " . $test . " 2>&1"; -print $cmd . "\n"; -$output = `$cmd`; -print $output . "\n"; -print "CODE $?\n"; -$status = "$?"; - -exit($status >> 8); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests14.pl.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests14.pl.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests14.pl.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests14.pl.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ -#!/usr/bin/env perl -# -# Copyright (c) 2019 Intel, Inc. -# -# Copyright (c) 2019 Cisco Systems, Inc. All rights reserved -# $COPYRIGHT$ -# -# Additional copyrights may follow - -use strict; - -my @tests = ("-n 4 --ns-dist 3:1 --fence \"[db | 0:0-2;1:0]\"", - "-n 4 --ns-dist 3:1 --fence \"[db | 0:;1:0]\"", - "-n 4 --ns-dist 3:1 --fence \"[db | 0:;1:]\"", - "-n 4 --ns-dist 3:1 --fence \"[0:]\"", - "-n 4 --ns-dist 3:1 --fence \"[b | 0:]\"", - "-n 4 --ns-dist 3:1 --fence \"[d | 0:]\" --noise \"[0:0,1]\"", - "-n 4 --job-fence -c", - "-n 4 --job-fence", - "-n 2 --test-publish", - "-n 2 --test-spawn", - "-n 2 --test-connect", - "-n 5 --test-resolve-peers --ns-dist \"1:2:2\"", - "-n 5 --test-replace 100:0,1,10,50,99", - "-n 5 --test-internal 10", - "-s 1 -n 2 --job-fence", - "-s 1 -n 2 --job-fence -c"); - -my $test; -my $cmd; -my $output; -my $status = 0; -my $testnum; -my $timeout_cmd = ""; - -# We are running tests against the build tree (vs. the installation -# tree). Autogen gives us a full list of all possible component -# directories in PMIX_COMPONENT_LIBRARY_PATHS. Iterate through each -# of those directories: 1) to see if there is actually a component -# built in there, and 2) to turn it into an absolute path name. Then -# put the new list in the "mca_bast_component_path" MCA parameter env -# variable so that the MCA base knows where to find all the -# components. -my @myfullpaths; -my $mybuilddir = "@PMIX_BUILT_TEST_PREFIX@"; -my $mypathstr = "@PMIX_COMPONENT_LIBRARY_PATHS@"; -my @splitstr = split(':', $mypathstr); -foreach my $path (@splitstr) { - # Note that the component is actually built in the ".libs" - # subdirectory. If the component wasn't built, that subdirectory - # will not exist, so don't save it. - my $fullpath = $mybuilddir . "/" . $path . "/.libs"; - push(@myfullpaths, $fullpath) - if (-d $fullpath); -} -my $mymcapaths = join(":", @myfullpaths); -$ENV{'PMIX_MCA_mca_base_component_path'} = $mymcapaths; - -my $wdir = $mybuilddir . "/test"; -chdir $wdir; - -$testnum = $0; -$testnum =~ s/.pl//; -$testnum = substr($testnum, -2); -$test = @tests[$testnum]; - -# find the timeout or gtimeout cmd so we can timeout the -# test if it hangs -my @paths = split(/:/, $ENV{PATH}); -foreach my $p (@paths) { - my $fullpath = $p . "/" . "gtimeout"; - if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; - last; - } else { - my $fullpath = $p . "/" . "timeout"; - if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; - last; - } - } -} - -$cmd = $timeout_cmd . " ./pmix_test " . $test . " 2>&1"; -print $cmd . "\n"; -$output = `$cmd`; -print $output . "\n"; -print "CODE $?\n"; -$status = "$?"; - -exit($status >> 8); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests15.pl openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests15.pl --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests15.pl 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests15.pl 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ -#!/usr/bin/env perl -# -# Copyright (c) 2019 Intel, Inc. -# -# Copyright (c) 2019 Cisco Systems, Inc. All rights reserved -# $COPYRIGHT$ -# -# Additional copyrights may follow - -use strict; - -my @tests = ("-n 4 --ns-dist 3:1 --fence \"[db | 0:0-2;1:0]\"", - "-n 4 --ns-dist 3:1 --fence \"[db | 0:;1:0]\"", - "-n 4 --ns-dist 3:1 --fence \"[db | 0:;1:]\"", - "-n 4 --ns-dist 3:1 --fence \"[0:]\"", - "-n 4 --ns-dist 3:1 --fence \"[b | 0:]\"", - "-n 4 --ns-dist 3:1 --fence \"[d | 0:]\" --noise \"[0:0,1]\"", - "-n 4 --job-fence -c", - "-n 4 --job-fence", - "-n 2 --test-publish", - "-n 2 --test-spawn", - "-n 2 --test-connect", - "-n 5 --test-resolve-peers --ns-dist \"1:2:2\"", - "-n 5 --test-replace 100:0,1,10,50,99", - "-n 5 --test-internal 10", - "-s 1 -n 2 --job-fence", - "-s 1 -n 2 --job-fence -c"); - -my $test; -my $cmd; -my $output; -my $status = 0; -my $testnum; -my $timeout_cmd = ""; - -# We are running tests against the build tree (vs. the installation -# tree). Autogen gives us a full list of all possible component -# directories in PMIX_COMPONENT_LIBRARY_PATHS. Iterate through each -# of those directories: 1) to see if there is actually a component -# built in there, and 2) to turn it into an absolute path name. Then -# put the new list in the "mca_bast_component_path" MCA parameter env -# variable so that the MCA base knows where to find all the -# components. -my @myfullpaths; -my $mybuilddir = "/home/ec2-user/workspace/open-mpi.dist.create-tarball/ompi/opal/mca/pmix/pmix3x/pmix"; -my $mypathstr = "src/mca/bfrops/v12:src/mca/bfrops/v20:src/mca/bfrops/v21:src/mca/bfrops/v3:src/mca/common/dstore:src/mca/gds/ds12:src/mca/gds/ds21:src/mca/gds/hash:src/mca/pdl/pdlopen:src/mca/pdl/plibltdl:src/mca/pif/bsdx_ipv4:src/mca/pif/bsdx_ipv6:src/mca/pif/linux_ipv6:src/mca/pif/posix_ipv4:src/mca/pif/solaris_ipv6:src/mca/pinstalldirs/config:src/mca/pinstalldirs/env:src/mca/plog/default:src/mca/plog/stdfd:src/mca/plog/syslog:src/mca/pnet/opa:src/mca/pnet/tcp:src/mca/pnet/test:src/mca/preg/native:src/mca/psec/dummy_handshake:src/mca/psec/munge:src/mca/psec/native:src/mca/psec/none:src/mca/psensor/file:src/mca/psensor/heartbeat:src/mca/pshmem/mmap:src/mca/ptl/tcp:src/mca/ptl/usock"; -my @splitstr = split(':', $mypathstr); -foreach my $path (@splitstr) { - # Note that the component is actually built in the ".libs" - # subdirectory. If the component wasn't built, that subdirectory - # will not exist, so don't save it. - my $fullpath = $mybuilddir . "/" . $path . "/.libs"; - push(@myfullpaths, $fullpath) - if (-d $fullpath); -} -my $mymcapaths = join(":", @myfullpaths); -$ENV{'PMIX_MCA_mca_base_component_path'} = $mymcapaths; - -my $wdir = $mybuilddir . "/test"; -chdir $wdir; - -$testnum = $0; -$testnum =~ s/.pl//; -$testnum = substr($testnum, -2); -$test = @tests[$testnum]; - -# find the timeout or gtimeout cmd so we can timeout the -# test if it hangs -my @paths = split(/:/, $ENV{PATH}); -foreach my $p (@paths) { - my $fullpath = $p . "/" . "gtimeout"; - if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; - last; - } else { - my $fullpath = $p . "/" . "timeout"; - if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; - last; - } - } -} - -$cmd = $timeout_cmd . " ./pmix_test " . $test . " 2>&1"; -print $cmd . "\n"; -$output = `$cmd`; -print $output . "\n"; -print "CODE $?\n"; -$status = "$?"; - -exit($status >> 8); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests15.pl.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests15.pl.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/run_tests15.pl.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/run_tests15.pl.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ -#!/usr/bin/env perl -# -# Copyright (c) 2019 Intel, Inc. -# -# Copyright (c) 2019 Cisco Systems, Inc. All rights reserved -# $COPYRIGHT$ -# -# Additional copyrights may follow - -use strict; - -my @tests = ("-n 4 --ns-dist 3:1 --fence \"[db | 0:0-2;1:0]\"", - "-n 4 --ns-dist 3:1 --fence \"[db | 0:;1:0]\"", - "-n 4 --ns-dist 3:1 --fence \"[db | 0:;1:]\"", - "-n 4 --ns-dist 3:1 --fence \"[0:]\"", - "-n 4 --ns-dist 3:1 --fence \"[b | 0:]\"", - "-n 4 --ns-dist 3:1 --fence \"[d | 0:]\" --noise \"[0:0,1]\"", - "-n 4 --job-fence -c", - "-n 4 --job-fence", - "-n 2 --test-publish", - "-n 2 --test-spawn", - "-n 2 --test-connect", - "-n 5 --test-resolve-peers --ns-dist \"1:2:2\"", - "-n 5 --test-replace 100:0,1,10,50,99", - "-n 5 --test-internal 10", - "-s 1 -n 2 --job-fence", - "-s 1 -n 2 --job-fence -c"); - -my $test; -my $cmd; -my $output; -my $status = 0; -my $testnum; -my $timeout_cmd = ""; - -# We are running tests against the build tree (vs. the installation -# tree). Autogen gives us a full list of all possible component -# directories in PMIX_COMPONENT_LIBRARY_PATHS. Iterate through each -# of those directories: 1) to see if there is actually a component -# built in there, and 2) to turn it into an absolute path name. Then -# put the new list in the "mca_bast_component_path" MCA parameter env -# variable so that the MCA base knows where to find all the -# components. -my @myfullpaths; -my $mybuilddir = "@PMIX_BUILT_TEST_PREFIX@"; -my $mypathstr = "@PMIX_COMPONENT_LIBRARY_PATHS@"; -my @splitstr = split(':', $mypathstr); -foreach my $path (@splitstr) { - # Note that the component is actually built in the ".libs" - # subdirectory. If the component wasn't built, that subdirectory - # will not exist, so don't save it. - my $fullpath = $mybuilddir . "/" . $path . "/.libs"; - push(@myfullpaths, $fullpath) - if (-d $fullpath); -} -my $mymcapaths = join(":", @myfullpaths); -$ENV{'PMIX_MCA_mca_base_component_path'} = $mymcapaths; - -my $wdir = $mybuilddir . "/test"; -chdir $wdir; - -$testnum = $0; -$testnum =~ s/.pl//; -$testnum = substr($testnum, -2); -$test = @tests[$testnum]; - -# find the timeout or gtimeout cmd so we can timeout the -# test if it hangs -my @paths = split(/:/, $ENV{PATH}); -foreach my $p (@paths) { - my $fullpath = $p . "/" . "gtimeout"; - if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; - last; - } else { - my $fullpath = $p . "/" . "timeout"; - if ((-e $fullpath) && (-f $fullpath)) { - $timeout_cmd = $fullpath . " --preserve-status -k 35 30 "; - last; - } - } -} - -$cmd = $timeout_cmd . " ./pmix_test " . $test . " 2>&1"; -print $cmd . "\n"; -$output = `$cmd`; -print $output . "\n"; -print "CODE $?\n"; -$status = "$?"; - -exit($status >> 8); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/gwclient.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/gwclient.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/gwclient.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/gwclient.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. * $COPYRIGHT$ * @@ -23,8 +23,8 @@ * */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix.h" #include #include @@ -35,7 +35,6 @@ #include "src/util/output.h" #include "src/util/printf.h" -static volatile bool completed = false; static pmix_proc_t myproc; int main(int argc, char **argv) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/gwtest.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/gwtest.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/gwtest.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/gwtest.c 2022-05-29 09:51:40.000000000 +0000 @@ -25,10 +25,10 @@ * */ -#include +#include "src/include/pmix_config.h" #include -#include -#include +#include "src/include/types.h" +#include "src/include/pmix_globals.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/Makefile.am openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/Makefile.am --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ # All rights reserved. # Copyright (c) 2006-2010 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. -# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2020 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -28,91 +28,91 @@ gwtest gwclient stability quietclient simpjctrl \ pmitest -simptest_SOURCES = $(headers) \ +simptest_SOURCES = \ simptest.c simptest_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simptest_LDADD = \ $(top_builddir)/src/libpmix.la -simpclient_SOURCES = $(headers) \ +simpclient_SOURCES = \ simpclient.c simpclient_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simpclient_LDADD = \ $(top_builddir)/src/libpmix.la -simppub_SOURCES = $(headers) \ +simppub_SOURCES = \ simppub.c simppub_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simppub_LDADD = \ $(top_builddir)/src/libpmix.la -simpdmodex_SOURCES = $(headers) \ +simpdmodex_SOURCES = \ simpdmodex.c simpdmodex_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simpdmodex_LDADD = \ $(top_builddir)/src/libpmix.la -simpft_SOURCES = $(headers) \ +simpft_SOURCES = \ simpft.c simpft_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simpft_LDADD = \ $(top_builddir)/src/libpmix.la -simpdyn_SOURCES = $(headers) \ +simpdyn_SOURCES = \ simpdyn.c simpdyn_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simpdyn_LDADD = \ $(top_builddir)/src/libpmix.la -test_pmix_SOURCES = $(headers) \ +test_pmix_SOURCES = \ test_pmix.c test_pmix_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) test_pmix_LDADD = \ $(top_builddir)/src/libpmix.la -simptool_SOURCES = $(headers) \ +simptool_SOURCES = \ simptool.c simptool_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simptool_LDADD = \ $(top_builddir)/src/libpmix.la -simpdie_SOURCES = $(headers) \ +simpdie_SOURCES = \ simpdie.c simpdie_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simpdie_LDADD = \ $(top_builddir)/src/libpmix.la -simplegacy_SOURCES = $(headers) \ +simplegacy_SOURCES = \ simplegacy.c simplegacy_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simplegacy_LDADD = \ $(top_builddir)/src/libpmi.la -simptimeout_SOURCES = $(headers) \ +simptimeout_SOURCES = \ simptimeout.c simptimeout_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simptimeout_LDADD = \ $(top_builddir)/src/libpmix.la -gwtest_SOURCES = $(headers) \ +gwtest_SOURCES = \ gwtest.c gwtest_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) gwtest_LDADD = \ $(top_builddir)/src/libpmix.la -gwclient_SOURCES = $(headers) \ +gwclient_SOURCES = \ gwclient.c gwclient_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) gwclient_LDADD = \ $(top_builddir)/src/libpmix.la -stability_SOURCES = $(headers) \ +stability_SOURCES = \ stability.c stability_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) stability_LDADD = \ $(top_builddir)/src/libpmix.la -quietclient_SOURCES = $(headers) \ +quietclient_SOURCES = \ quietclient.c quietclient_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) quietclient_LDADD = \ diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/Makefile.in openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -27,7 +27,7 @@ # All rights reserved. # Copyright (c) 2006-2010 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. -# Copyright (c) 2013-2019 Intel, Inc. All rights reserved. +# Copyright (c) 2013-2020 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -132,7 +132,6 @@ $(top_srcdir)/config/pmix_check_lock.m4 \ $(top_srcdir)/config/pmix_check_os_flavors.m4 \ $(top_srcdir)/config/pmix_check_package.m4 \ - $(top_srcdir)/config/pmix_check_psm2.m4 \ $(top_srcdir)/config/pmix_check_pthread_pids.m4 \ $(top_srcdir)/config/pmix_check_vendor.m4 \ $(top_srcdir)/config/pmix_check_visibility.m4 \ @@ -162,6 +161,7 @@ $(top_srcdir)/src/mca/common/dstore/configure.m4 \ $(top_srcdir)/src/mca/gds/ds12/configure.m4 \ $(top_srcdir)/src/mca/gds/ds21/configure.m4 \ + $(top_srcdir)/src/mca/pcompress/zlib/configure.m4 \ $(top_srcdir)/src/mca/pdl/pdlopen/configure.m4 \ $(top_srcdir)/src/mca/pdl/plibltdl/configure.m4 \ $(top_srcdir)/src/mca/pif/bsdx_ipv4/configure.m4 \ @@ -172,7 +172,6 @@ $(top_srcdir)/src/mca/pinstalldirs/config/configure.m4 \ $(top_srcdir)/src/mca/pinstalldirs/env/configure.m4 \ $(top_srcdir)/src/mca/plog/syslog/configure.m4 \ - $(top_srcdir)/src/mca/pnet/opa/configure.m4 \ $(top_srcdir)/src/mca/psec/munge/configure.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -184,8 +183,7 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) -am__objects_1 = -am_gwclient_OBJECTS = $(am__objects_1) gwclient.$(OBJEXT) +am_gwclient_OBJECTS = gwclient.$(OBJEXT) gwclient_OBJECTS = $(am_gwclient_OBJECTS) gwclient_DEPENDENCIES = $(top_builddir)/src/libpmix.la AM_V_lt = $(am__v_lt_@AM_V@) @@ -195,7 +193,7 @@ gwclient_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(gwclient_LDFLAGS) $(LDFLAGS) -o $@ -am_gwtest_OBJECTS = $(am__objects_1) gwtest.$(OBJEXT) +am_gwtest_OBJECTS = gwtest.$(OBJEXT) gwtest_OBJECTS = $(am_gwtest_OBJECTS) gwtest_DEPENDENCIES = $(top_builddir)/src/libpmix.la gwtest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ @@ -207,37 +205,37 @@ pmitest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(pmitest_LDFLAGS) $(LDFLAGS) -o $@ -am_quietclient_OBJECTS = $(am__objects_1) quietclient.$(OBJEXT) +am_quietclient_OBJECTS = quietclient.$(OBJEXT) quietclient_OBJECTS = $(am_quietclient_OBJECTS) quietclient_DEPENDENCIES = $(top_builddir)/src/libpmix.la quietclient_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(quietclient_LDFLAGS) $(LDFLAGS) -o $@ -am_simpclient_OBJECTS = $(am__objects_1) simpclient.$(OBJEXT) +am_simpclient_OBJECTS = simpclient.$(OBJEXT) simpclient_OBJECTS = $(am_simpclient_OBJECTS) simpclient_DEPENDENCIES = $(top_builddir)/src/libpmix.la simpclient_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(simpclient_LDFLAGS) $(LDFLAGS) -o $@ -am_simpdie_OBJECTS = $(am__objects_1) simpdie.$(OBJEXT) +am_simpdie_OBJECTS = simpdie.$(OBJEXT) simpdie_OBJECTS = $(am_simpdie_OBJECTS) simpdie_DEPENDENCIES = $(top_builddir)/src/libpmix.la simpdie_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(simpdie_LDFLAGS) $(LDFLAGS) -o $@ -am_simpdmodex_OBJECTS = $(am__objects_1) simpdmodex.$(OBJEXT) +am_simpdmodex_OBJECTS = simpdmodex.$(OBJEXT) simpdmodex_OBJECTS = $(am_simpdmodex_OBJECTS) simpdmodex_DEPENDENCIES = $(top_builddir)/src/libpmix.la simpdmodex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(simpdmodex_LDFLAGS) $(LDFLAGS) -o $@ -am_simpdyn_OBJECTS = $(am__objects_1) simpdyn.$(OBJEXT) +am_simpdyn_OBJECTS = simpdyn.$(OBJEXT) simpdyn_OBJECTS = $(am_simpdyn_OBJECTS) simpdyn_DEPENDENCIES = $(top_builddir)/src/libpmix.la simpdyn_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(simpdyn_LDFLAGS) $(LDFLAGS) -o $@ -am_simpft_OBJECTS = $(am__objects_1) simpft.$(OBJEXT) +am_simpft_OBJECTS = simpft.$(OBJEXT) simpft_OBJECTS = $(am_simpft_OBJECTS) simpft_DEPENDENCIES = $(top_builddir)/src/libpmix.la simpft_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ @@ -249,43 +247,43 @@ simpjctrl_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(simpjctrl_LDFLAGS) $(LDFLAGS) -o $@ -am_simplegacy_OBJECTS = $(am__objects_1) simplegacy.$(OBJEXT) +am_simplegacy_OBJECTS = simplegacy.$(OBJEXT) simplegacy_OBJECTS = $(am_simplegacy_OBJECTS) simplegacy_DEPENDENCIES = $(top_builddir)/src/libpmi.la simplegacy_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(simplegacy_LDFLAGS) $(LDFLAGS) -o $@ -am_simppub_OBJECTS = $(am__objects_1) simppub.$(OBJEXT) +am_simppub_OBJECTS = simppub.$(OBJEXT) simppub_OBJECTS = $(am_simppub_OBJECTS) simppub_DEPENDENCIES = $(top_builddir)/src/libpmix.la simppub_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(simppub_LDFLAGS) $(LDFLAGS) -o $@ -am_simptest_OBJECTS = $(am__objects_1) simptest.$(OBJEXT) +am_simptest_OBJECTS = simptest.$(OBJEXT) simptest_OBJECTS = $(am_simptest_OBJECTS) simptest_DEPENDENCIES = $(top_builddir)/src/libpmix.la simptest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(simptest_LDFLAGS) $(LDFLAGS) -o $@ -am_simptimeout_OBJECTS = $(am__objects_1) simptimeout.$(OBJEXT) +am_simptimeout_OBJECTS = simptimeout.$(OBJEXT) simptimeout_OBJECTS = $(am_simptimeout_OBJECTS) simptimeout_DEPENDENCIES = $(top_builddir)/src/libpmix.la simptimeout_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(simptimeout_LDFLAGS) $(LDFLAGS) -o $@ -am_simptool_OBJECTS = $(am__objects_1) simptool.$(OBJEXT) +am_simptool_OBJECTS = simptool.$(OBJEXT) simptool_OBJECTS = $(am_simptool_OBJECTS) simptool_DEPENDENCIES = $(top_builddir)/src/libpmix.la simptool_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(simptool_LDFLAGS) $(LDFLAGS) -o $@ -am_stability_OBJECTS = $(am__objects_1) stability.$(OBJEXT) +am_stability_OBJECTS = stability.$(OBJEXT) stability_OBJECTS = $(am_stability_OBJECTS) stability_DEPENDENCIES = $(top_builddir)/src/libpmix.la stability_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(stability_LDFLAGS) $(LDFLAGS) -o $@ -am_test_pmix_OBJECTS = $(am__objects_1) test_pmix.$(OBJEXT) +am_test_pmix_OBJECTS = test_pmix.$(OBJEXT) test_pmix_OBJECTS = $(am_test_pmix_OBJECTS) test_pmix_DEPENDENCIES = $(top_builddir)/src/libpmix.la test_pmix_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ @@ -443,6 +441,13 @@ MCA_pmix_gds_STATIC_COMPONENTS = @MCA_pmix_gds_STATIC_COMPONENTS@ MCA_pmix_gds_STATIC_LTLIBS = @MCA_pmix_gds_STATIC_LTLIBS@ MCA_pmix_gds_STATIC_SUBDIRS = @MCA_pmix_gds_STATIC_SUBDIRS@ +MCA_pmix_pcompress_ALL_COMPONENTS = @MCA_pmix_pcompress_ALL_COMPONENTS@ +MCA_pmix_pcompress_ALL_SUBDIRS = @MCA_pmix_pcompress_ALL_SUBDIRS@ +MCA_pmix_pcompress_DSO_COMPONENTS = @MCA_pmix_pcompress_DSO_COMPONENTS@ +MCA_pmix_pcompress_DSO_SUBDIRS = @MCA_pmix_pcompress_DSO_SUBDIRS@ +MCA_pmix_pcompress_STATIC_COMPONENTS = @MCA_pmix_pcompress_STATIC_COMPONENTS@ +MCA_pmix_pcompress_STATIC_LTLIBS = @MCA_pmix_pcompress_STATIC_LTLIBS@ +MCA_pmix_pcompress_STATIC_SUBDIRS = @MCA_pmix_pcompress_STATIC_SUBDIRS@ MCA_pmix_pdl_ALL_COMPONENTS = @MCA_pmix_pdl_ALL_COMPONENTS@ MCA_pmix_pdl_ALL_SUBDIRS = @MCA_pmix_pdl_ALL_SUBDIRS@ MCA_pmix_pdl_DSO_COMPONENTS = @MCA_pmix_pdl_DSO_COMPONENTS@ @@ -506,6 +511,13 @@ MCA_pmix_pshmem_STATIC_COMPONENTS = @MCA_pmix_pshmem_STATIC_COMPONENTS@ MCA_pmix_pshmem_STATIC_LTLIBS = @MCA_pmix_pshmem_STATIC_LTLIBS@ MCA_pmix_pshmem_STATIC_SUBDIRS = @MCA_pmix_pshmem_STATIC_SUBDIRS@ +MCA_pmix_psquash_ALL_COMPONENTS = @MCA_pmix_psquash_ALL_COMPONENTS@ +MCA_pmix_psquash_ALL_SUBDIRS = @MCA_pmix_psquash_ALL_SUBDIRS@ +MCA_pmix_psquash_DSO_COMPONENTS = @MCA_pmix_psquash_DSO_COMPONENTS@ +MCA_pmix_psquash_DSO_SUBDIRS = @MCA_pmix_psquash_DSO_SUBDIRS@ +MCA_pmix_psquash_STATIC_COMPONENTS = @MCA_pmix_psquash_STATIC_COMPONENTS@ +MCA_pmix_psquash_STATIC_LTLIBS = @MCA_pmix_psquash_STATIC_LTLIBS@ +MCA_pmix_psquash_STATIC_SUBDIRS = @MCA_pmix_psquash_STATIC_SUBDIRS@ MCA_pmix_ptl_ALL_COMPONENTS = @MCA_pmix_ptl_ALL_COMPONENTS@ MCA_pmix_ptl_ALL_SUBDIRS = @MCA_pmix_ptl_ALL_SUBDIRS@ MCA_pmix_ptl_DSO_COMPONENTS = @MCA_pmix_ptl_DSO_COMPONENTS@ @@ -528,6 +540,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PC_PRIVATE_LIBS = @PC_PRIVATE_LIBS@ +PC_REQUIRES = @PC_REQUIRES@ PERL = @PERL@ PMIX_ASM_GSYM = @PMIX_ASM_GSYM@ PMIX_ASM_LSYM = @PMIX_ASM_LSYM@ @@ -546,6 +560,7 @@ PMIX_CONFIGURE_DATE = @PMIX_CONFIGURE_DATE@ PMIX_CONFIGURE_HOST = @PMIX_CONFIGURE_HOST@ PMIX_CONFIGURE_USER = @PMIX_CONFIGURE_USER@ +PMIX_DEFAULT_MCA_PARAM_CONF = @PMIX_DEFAULT_MCA_PARAM_CONF@ PMIX_EMBEDDED_CPPFLAGS = @PMIX_EMBEDDED_CPPFLAGS@ PMIX_EMBEDDED_LDFLAGS = @PMIX_EMBEDDED_LDFLAGS@ PMIX_EMBEDDED_LIBS = @PMIX_EMBEDDED_LIBS@ @@ -554,9 +569,9 @@ PMIX_GREEK_VERSION = @PMIX_GREEK_VERSION@ PMIX_MAJOR_VERSION = @PMIX_MAJOR_VERSION@ PMIX_MINOR_VERSION = @PMIX_MINOR_VERSION@ +PMIX_PARAM_FROM_PLATFORM = @PMIX_PARAM_FROM_PLATFORM@ PMIX_RELEASE_DATE = @PMIX_RELEASE_DATE@ PMIX_RELEASE_VERSION = @PMIX_RELEASE_VERSION@ -PMIX_RENAME = @PMIX_RENAME@ PMIX_REPO_REV = @PMIX_REPO_REV@ PMIX_TOP_BUILDDIR = @PMIX_TOP_BUILDDIR@ PMIX_TOP_SRCDIR = @PMIX_TOP_SRCDIR@ @@ -570,6 +585,7 @@ SOURCE_DATE_EPOCH = @SOURCE_DATE_EPOCH@ STRIP = @STRIP@ VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -615,6 +631,10 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pcompress_zlib_CFLAGS = @pcompress_zlib_CFLAGS@ +pcompress_zlib_CPPFLAGS = @pcompress_zlib_CPPFLAGS@ +pcompress_zlib_LDFLAGS = @pcompress_zlib_LDFLAGS@ +pcompress_zlib_LIBS = @pcompress_zlib_LIBS@ pdfdir = @pdfdir@ pmix_pdl_pdlopen_LIBS = @pmix_pdl_pdlopen_LIBS@ pmix_pdl_plibltdl_CPPFLAGS = @pmix_pdl_plibltdl_CPPFLAGS@ @@ -627,10 +647,6 @@ pmixminor = @pmixminor@ pmixnumeric = @pmixnumeric@ pmixrelease = @pmixrelease@ -pnet_opa_CFLAGS = @pnet_opa_CFLAGS@ -pnet_opa_CPPFLAGS = @pnet_opa_CPPFLAGS@ -pnet_opa_LDFLAGS = @pnet_opa_LDFLAGS@ -pnet_opa_LIBS = @pnet_opa_LIBS@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ @@ -651,105 +667,105 @@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_builddir)/src/include -I$(top_builddir)/include -I$(top_builddir)/include/pmix headers = simptest.h -simptest_SOURCES = $(headers) \ +simptest_SOURCES = \ simptest.c simptest_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simptest_LDADD = \ $(top_builddir)/src/libpmix.la -simpclient_SOURCES = $(headers) \ +simpclient_SOURCES = \ simpclient.c simpclient_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simpclient_LDADD = \ $(top_builddir)/src/libpmix.la -simppub_SOURCES = $(headers) \ +simppub_SOURCES = \ simppub.c simppub_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simppub_LDADD = \ $(top_builddir)/src/libpmix.la -simpdmodex_SOURCES = $(headers) \ +simpdmodex_SOURCES = \ simpdmodex.c simpdmodex_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simpdmodex_LDADD = \ $(top_builddir)/src/libpmix.la -simpft_SOURCES = $(headers) \ +simpft_SOURCES = \ simpft.c simpft_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simpft_LDADD = \ $(top_builddir)/src/libpmix.la -simpdyn_SOURCES = $(headers) \ +simpdyn_SOURCES = \ simpdyn.c simpdyn_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simpdyn_LDADD = \ $(top_builddir)/src/libpmix.la -test_pmix_SOURCES = $(headers) \ +test_pmix_SOURCES = \ test_pmix.c test_pmix_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) test_pmix_LDADD = \ $(top_builddir)/src/libpmix.la -simptool_SOURCES = $(headers) \ +simptool_SOURCES = \ simptool.c simptool_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simptool_LDADD = \ $(top_builddir)/src/libpmix.la -simpdie_SOURCES = $(headers) \ +simpdie_SOURCES = \ simpdie.c simpdie_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simpdie_LDADD = \ $(top_builddir)/src/libpmix.la -simplegacy_SOURCES = $(headers) \ +simplegacy_SOURCES = \ simplegacy.c simplegacy_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simplegacy_LDADD = \ $(top_builddir)/src/libpmi.la -simptimeout_SOURCES = $(headers) \ +simptimeout_SOURCES = \ simptimeout.c simptimeout_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) simptimeout_LDADD = \ $(top_builddir)/src/libpmix.la -gwtest_SOURCES = $(headers) \ +gwtest_SOURCES = \ gwtest.c gwtest_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) gwtest_LDADD = \ $(top_builddir)/src/libpmix.la -gwclient_SOURCES = $(headers) \ +gwclient_SOURCES = \ gwclient.c gwclient_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) gwclient_LDADD = \ $(top_builddir)/src/libpmix.la -stability_SOURCES = $(headers) \ +stability_SOURCES = \ stability.c stability_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) stability_LDADD = \ $(top_builddir)/src/libpmix.la -quietclient_SOURCES = $(headers) \ +quietclient_SOURCES = \ quietclient.c quietclient_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/quietclient.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/quietclient.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/quietclient.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/quietclient.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. * $COPYRIGHT$ * @@ -23,8 +23,20 @@ * */ -#include -#include +/****** FUNCTIONS TESTED ****/ +/* + * PMIx_Init + * PMIx_Get + * PMIx_Register_event_handler + * PMIx_Store_internal + * PMIx_Put + * PMIx_Commit + * PMIx_Fence + * PMIx_Finalize + */ + +#include "src/include/pmix_config.h" +#include "include/pmix.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simpclient.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simpclient.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simpclient.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simpclient.c 2022-05-29 09:51:40.000000000 +0000 @@ -15,6 +15,8 @@ * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. + * Copyright (c) 2019 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -23,8 +25,8 @@ * */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix.h" #include #include @@ -56,17 +58,6 @@ completed = true; } -static void errhandler_reg_callbk(pmix_status_t status, - size_t errhandler_ref, - void *cbdata) -{ - volatile bool *active = (volatile bool*)cbdata; - - pmix_output(0, "Client: ERRHANDLER REGISTRATION CALLBACK CALLED WITH STATUS %d, ref=%lu", - status, (unsigned long)errhandler_ref); - *active = false; -} - static void opcbfunc(pmix_status_t status, void *cbdata) { volatile bool *active = (volatile bool*)cbdata; @@ -109,18 +100,6 @@ } } -/* event handler registration is done asynchronously */ -static void model_registration_callback(pmix_status_t status, - size_t evhandler_ref, - void *cbdata) -{ - volatile int *active = (volatile int*)cbdata; - - fprintf(stderr, "simpclient EVENT HANDLER REGISTRATION RETURN STATUS %d, ref=%lu\n", - status, (unsigned long)evhandler_ref); - *active = false; -} - int main(int argc, char **argv) { int rc; @@ -158,8 +137,7 @@ pmix_output(0, "Client ns %s rank %d: Running on node %s", myproc.nspace, myproc.rank, pmix_globals.hostname); /* test something */ - (void)strncpy(proc.nspace, myproc.nspace, PMIX_MAX_NSLEN); - proc.rank = PMIX_RANK_WILDCARD; + PMIX_LOAD_PROCID(&proc, myproc.nspace, PMIX_RANK_WILDCARD); if (PMIX_SUCCESS != (rc = PMIx_Get(&proc, PMIX_JOB_SIZE, NULL, 0, &val))) { pmix_output(0, "Client ns %s rank %d: PMIx_Get job size failed: %s", myproc.nspace, myproc.rank, PMIx_Error_string(rc)); @@ -171,7 +149,7 @@ /* test something */ if (PMIX_SUCCESS != (rc = PMIx_Get(&myproc, PMIX_SERVER_URI, NULL, 0, &val))) { - pmix_output(0, "Client ns %s rank %d: PMIx_Get failed: %s", + pmix_output(0, "Client ns %s rank %d: PMIx_Get server URI failed: %s", myproc.nspace, myproc.rank, PMIx_Error_string(rc)); exit(rc); } @@ -195,26 +173,17 @@ PMIX_VALUE_RELEASE(val); /* register a handler specifically for when models declare */ - active = true; ninfo = 1; PMIX_INFO_CREATE(iptr, ninfo); PMIX_INFO_LOAD(&iptr[0], PMIX_EVENT_HDLR_NAME, "SIMPCLIENT-MODEL", PMIX_STRING); code = PMIX_MODEL_DECLARED; PMIx_Register_event_handler(&code, 1, iptr, ninfo, - model_callback, model_registration_callback, (void*)&active); - while (active) { - usleep(10); - } + model_callback, NULL, NULL); PMIX_INFO_FREE(iptr, ninfo); /* register our errhandler */ - active = true; PMIx_Register_event_handler(NULL, 0, NULL, 0, - notification_fn, errhandler_reg_callbk, (void*)&active); - while (active) { - usleep(10); - } - + notification_fn, NULL, NULL); /* put a few values */ (void)asprintf(&tmp, "%s-%d-internal", myproc.nspace, myproc.rank); diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simpdie.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simpdie.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simpdie.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simpdie.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. * $COPYRIGHT$ * @@ -23,8 +23,8 @@ * */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simpdmodex.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simpdmodex.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simpdmodex.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simpdmodex.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. * $COPYRIGHT$ * @@ -23,8 +23,8 @@ * */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simpdyn.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simpdyn.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simpdyn.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simpdyn.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. * $COPYRIGHT$ * @@ -23,8 +23,8 @@ * */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simpft.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simpft.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simpft.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simpft.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. * $COPYRIGHT$ * @@ -23,8 +23,8 @@ * */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simpjctrl.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simpjctrl.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simpjctrl.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simpjctrl.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. * $COPYRIGHT$ * @@ -31,7 +31,7 @@ #include #include -#include +#include "include/pmix.h" #include "simptest.h" static pmix_proc_t myproc; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simplegacy.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simplegacy.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simplegacy.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simplegacy.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. * $COPYRIGHT$ * @@ -23,7 +23,7 @@ * */ -#include +#include "src/include/pmix_config.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simppub.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simppub.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simppub.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simppub.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. * $COPYRIGHT$ * @@ -23,8 +23,8 @@ * */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simptest.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simptest.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simptest.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simptest.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015-2019 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. @@ -25,10 +25,10 @@ * */ -#include +#include "src/include/pmix_config.h" #include -#include -#include +#include "src/include/types.h" +#include "src/include/pmix_globals.h" #include #include @@ -40,7 +40,7 @@ #include #if PMIX_HAVE_HWLOC -#include +#include "src/hwloc/hwloc-internal.h" #endif #include "src/class/pmix_list.h" @@ -258,7 +258,9 @@ * server */ x = PMIX_NEW(myxfer_t); x->ninfo = ninfo; - PMIX_INFO_CREATE(x->info, x->ninfo); + if (0 < ninfo) { + PMIX_INFO_CREATE(x->info, x->ninfo); + } for (n=0; n < ninfo; n++) { PMIX_INFO_XFER(&x->info[n], &info[n]); } diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simptest.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simptest.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simptest.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simptest.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2018 Intel, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - * - */ - -#include -#include -#include -#include -#include - -typedef struct { - pthread_mutex_t mutex; - pthread_cond_t cond; - volatile bool active; - pmix_status_t status; -} mylock_t; - -#define DEBUG_CONSTRUCT_LOCK(l) \ - do { \ - pthread_mutex_init(&(l)->mutex, NULL); \ - pthread_cond_init(&(l)->cond, NULL); \ - (l)->active = true; \ - (l)->status = PMIX_SUCCESS; \ - } while(0) - -#define DEBUG_DESTRUCT_LOCK(l) \ - do { \ - pthread_mutex_destroy(&(l)->mutex); \ - pthread_cond_destroy(&(l)->cond); \ - } while(0) - -#define DEBUG_WAIT_THREAD(lck) \ - do { \ - pthread_mutex_lock(&(lck)->mutex); \ - while ((lck)->active) { \ - pthread_cond_wait(&(lck)->cond, &(lck)->mutex); \ - } \ - pthread_mutex_unlock(&(lck)->mutex); \ - } while(0) - -#define DEBUG_WAKEUP_THREAD(lck) \ - do { \ - pthread_mutex_lock(&(lck)->mutex); \ - (lck)->active = false; \ - pthread_cond_broadcast(&(lck)->cond); \ - pthread_mutex_unlock(&(lck)->mutex); \ - } while(0) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simptimeout.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simptimeout.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simptimeout.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simptimeout.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. * $COPYRIGHT$ * @@ -23,8 +23,8 @@ * */ -#include -#include +#include "src/include/pmix_config.h" +#include "include/pmix.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simptool.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simptool.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/simptool.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/simptool.c 2022-05-29 09:51:40.000000000 +0000 @@ -23,7 +23,7 @@ * */ -#include +#include "src/include/pmix_config.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/stability.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/stability.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/stability.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/stability.c 2022-05-29 09:51:40.000000000 +0000 @@ -25,10 +25,10 @@ * */ -#include +#include "src/include/pmix_config.h" #include -#include -#include +#include "src/include/types.h" +#include "src/include/pmix_globals.h" #include #include @@ -41,7 +41,7 @@ #include PMIX_EVENT_HEADER #if PMIX_HAVE_HWLOC -#include +#include "src/hwloc/hwloc-internal.h" #endif #include "src/class/pmix_list.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/test_pmix.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/test_pmix.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/simple/test_pmix.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/simple/test_pmix.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,6 @@ #include -#include +#include "include/pmix.h" #include int main(int argc, char **argv) diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_cd.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_cd.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_cd.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_cd.h 2022-05-29 09:51:40.000000000 +0000 @@ -8,7 +8,7 @@ * */ -#include +#include "src/include/pmix_config.h" #include #include "test_common.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_common.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_common.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_common.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_common.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * */ -#include +#include "src/include/pmix_config.h" #include #include "test_common.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_common.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_common.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_common.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_common.h 2022-05-29 09:51:40.000000000 +0000 @@ -17,7 +17,7 @@ #ifndef TEST_COMMON_H #define TEST_COMMON_H -#include +#include "src/include/pmix_config.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_error.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_error.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_error.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_error.h 2022-05-29 09:51:40.000000000 +0000 @@ -8,7 +8,7 @@ * */ -#include +#include "src/include/pmix_config.h" #include #include "test_common.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_fence.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_fence.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_fence.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_fence.h 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * */ -#include +#include "src/include/pmix_config.h" #include #include diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_internal.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_internal.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_internal.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_internal.h 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * */ -#include +#include "src/include/pmix_config.h" #include #include "test_common.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_publish.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_publish.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_publish.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_publish.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ #include "test_publish.h" #include -#include +#include "src/include/pmix_globals.h" typedef struct { int in_progress; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_publish.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_publish.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_publish.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_publish.h 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * */ -#include +#include "src/include/pmix_config.h" #include #include "test_common.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_replace.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_replace.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_replace.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_replace.h 2022-05-29 09:51:40.000000000 +0000 @@ -9,7 +9,7 @@ * */ -#include +#include "src/include/pmix_config.h" #include #include "test_common.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_resolve_peers.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_resolve_peers.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_resolve_peers.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_resolve_peers.h 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * */ -#include +#include "src/include/pmix_config.h" #include #include "test_common.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_spawn.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_spawn.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/test/test_spawn.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/test/test_spawn.h 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * */ -#include +#include "src/include/pmix_config.h" #include #include "test_common.h" diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/VERSION openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/VERSION --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix/VERSION 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix/VERSION 2022-05-29 09:51:40.000000000 +0000 @@ -6,7 +6,6 @@ # Copyright (c) 2014-2016 Intel, Inc. All rights reserved. # Copyright (c) 2020 IBM Corporation. All rights reserved. - # This is the VERSION file for PMIx, describing the precise # version of PMIx in this distribution. The various components of # the version number below are combined to form a single version @@ -16,8 +15,8 @@ # ... major=3 -minor=1 -release=5 +minor=2 +release=3 # greek is used for alpha or beta release tags. If it is non-empty, # it will be appended to the version number. It does not have to be @@ -32,7 +31,7 @@ # command, or with the date (if "git describe" fails) in the form of # "date". -repo_rev=3.1.5 +repo_rev=3.2.3 # If tarball_version is not empty, it is used as the version string in # the tarball filename, regardless of all other versions listed in @@ -46,7 +45,7 @@ # The date when this release was created -date="Feb 19, 2020" +date="Feb 11, 2021" # The shared library version of each of PMIx's public libraries. # These versions are maintained in accordance with the "Library @@ -77,13 +76,13 @@ # Version numbers are described in the Libtool current:revision:age # format. -libpmix_so_version=4:25:2 +libpmix_so_version=4:33:2 libpmi_so_version=1:1:0 libpmi2_so_version=1:0:0 # "Common" components install standalone libraries that are run-time -# linked by one or more components. So they need to be versioned as -# well. Yuck; this somewhat breaks the -# components-don't-affect-the-build-system abstraction. +# # linked by one or more components. So they need to be versioned as +# # well. Yuck; this somewhat breaks the +# # components-don't-affect-the-build-system abstraction. # libmca_common_dstore_so_version=1:2:0 diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix3x.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix3x.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix3x.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix3x.c 2022-05-29 09:51:40.000000000 +0000 @@ -8,6 +8,7 @@ * Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 Los Alamos National Security, LLC. All rights * reserved. + * Copyright (c) 2021 Nanook Consulting. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -966,6 +967,7 @@ opal_list_t *lt; opal_value_t *ival; size_t n; + pmix_info_t *iptr; switch(v->type) { case PMIX_UNDEF: @@ -1178,29 +1180,30 @@ kv->data.pinfo.state = pmix3x_convert_state(v->data.pinfo->state); break; case PMIX_DATA_ARRAY: - if (NULL == v->data.darray || NULL == v->data.darray->array) { + if (NULL == v->data.darray || NULL == v->data.darray->array || + PMIX_INFO != v->data.darray->type) { kv->data.ptr = NULL; break; } lt = OBJ_NEW(opal_list_t); kv->type = OPAL_PTR; kv->data.ptr = (void*)lt; + iptr = (pmix_info_t*)v->data.darray->array; for (n=0; n < v->data.darray->size; n++) { + if (0 == strcmp("pmix.topo2", iptr[n].key)) { + /* we do not know (yet) how to convert the pmix.topo2 key from PMIx 4.0.0 + * but since we are not going to use it, simply ignore it and move on */ + continue; + } ival = OBJ_NEW(opal_value_t); opal_list_append(lt, &ival->super); - /* handle the various types */ - if (PMIX_INFO == v->data.darray->type) { - pmix_info_t *iptr = (pmix_info_t*)v->data.darray->array; - if (NULL != iptr[n].key) { - ival->key = strdup(iptr[n].key); - } - rc = pmix3x_value_unload(ival, &iptr[n].value); - if (OPAL_SUCCESS != rc) { - OPAL_LIST_RELEASE(lt); - kv->type = OPAL_UNDEF; - kv->data.ptr = NULL; - break; - } + ival->key = strdup(iptr[n].key); + rc = pmix3x_value_unload(ival, &iptr[n].value); + if (OPAL_SUCCESS != rc) { + OPAL_LIST_RELEASE(lt); + kv->type = OPAL_UNDEF; + kv->data.ptr = NULL; + break; } } break; diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix3x_component.c openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix3x_component.c --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix3x_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix3x_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. * Copyright (c) 2014-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2016-2018 Cisco Systems, Inc. All rights reserved + * Copyright (c) 2016-2022 Cisco Systems, Inc. All rights reserved * $COPYRIGHT$ * * Additional copyrights may follow @@ -141,11 +141,10 @@ static int external_component_query(mca_base_module_t **module, int *priority) { - char *t, *id; + char *t; /* see if a PMIx server is present */ - if (NULL != (t = getenv("PMIX_SERVER_URI")) || - NULL != (id = getenv("PMIX_ID"))) { + if (NULL != (t = getenv("PMIX_NAMESPACE"))) { /* if PMIx is present, then we are a client and need to use it */ *priority = 100; } else { diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix3x.h openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix3x.h --- openmpi-4.0.3/opal/mca/pmix/pmix3x/pmix3x.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix3x/pmix3x.h 2022-05-29 09:51:40.000000000 +0000 @@ -7,6 +7,7 @@ * and Technology (RIST). All rights reserved. * Copyright (c) 2017 Los Alamos National Security, LLC. All rights * reserved. + * Copyright (c) 2021 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -34,6 +35,7 @@ #include "opal/mca/pmix/base/base.h" #include "pmix_server.h" #include "pmix_common.h" +#include "pmix.h" BEGIN_C_DECLS diff -Nru openmpi-4.0.3/opal/mca/pmix/pmix_types.h openmpi-4.1.4/opal/mca/pmix/pmix_types.h --- openmpi-4.0.3/opal/mca/pmix/pmix_types.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/pmix_types.h 2022-05-29 09:51:40.000000000 +0000 @@ -2,6 +2,7 @@ * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. * Copyright (c) 2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2021 Nanook Consulting. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -130,6 +131,7 @@ #define OPAL_PMIX_NPROC_OFFSET "pmix.offset" // (uint32_t) starting global rank of this job #define OPAL_PMIX_LOCAL_RANK "pmix.lrank" // (uint16_t) rank on this node within this job #define OPAL_PMIX_NODE_RANK "pmix.nrank" // (uint16_t) rank on this node spanning all jobs +#define OPAL_PMIX_PACKAGE_RANK "pmix.pkgrank" // (uint16_t) rank within this job on the package where this proc resides #define OPAL_PMIX_LOCALLDR "pmix.lldr" // (uint64_t) opal_identifier of lowest rank on this node within this job #define OPAL_PMIX_APPLDR "pmix.aldr" // (uint32_t) lowest rank in this app within this job #define OPAL_PMIX_PROC_PID "pmix.ppid" // (pid_t) pid of specified proc diff -Nru openmpi-4.0.3/opal/mca/pmix/s1/Makefile.in openmpi-4.1.4/opal/mca/pmix/s1/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/s1/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/s1/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -651,6 +664,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1471,6 +1487,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1503,9 +1523,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1526,6 +1555,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1610,9 +1640,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1673,6 +1700,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1686,6 +1716,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/pmix/s2/Makefile.in openmpi-4.1.4/opal/mca/pmix/s2/Makefile.in --- openmpi-4.0.3/opal/mca/pmix/s2/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pmix/s2/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -652,6 +665,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1472,6 +1488,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1504,9 +1524,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1527,6 +1556,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1611,9 +1641,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1674,6 +1701,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1687,6 +1717,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/pstat/linux/Makefile.in openmpi-4.1.4/opal/mca/pstat/linux/Makefile.in --- openmpi-4.0.3/opal/mca/pstat/linux/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pstat/linux/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -658,6 +671,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1478,6 +1494,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1510,9 +1530,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1533,6 +1562,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1617,9 +1647,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1680,6 +1707,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1693,6 +1723,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/pstat/Makefile.in openmpi-4.1.4/opal/mca/pstat/Makefile.in --- openmpi-4.0.3/opal/mca/pstat/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pstat/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -136,6 +136,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -143,6 +145,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -166,6 +169,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -268,6 +272,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -275,6 +280,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -355,6 +361,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -377,9 +384,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -389,6 +400,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -409,6 +421,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -665,6 +678,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1485,6 +1501,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1517,9 +1537,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1540,6 +1569,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1624,9 +1654,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1687,6 +1714,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1700,6 +1730,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/pstat/test/Makefile.in openmpi-4.1.4/opal/mca/pstat/test/Makefile.in --- openmpi-4.0.3/opal/mca/pstat/test/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/pstat/test/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -657,6 +670,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1477,6 +1493,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1509,9 +1529,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1532,6 +1561,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1616,9 +1646,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1679,6 +1706,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1692,6 +1722,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/rcache/gpusm/Makefile.in openmpi-4.1.4/opal/mca/rcache/gpusm/Makefile.in --- openmpi-4.0.3/opal/mca/rcache/gpusm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/rcache/gpusm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -125,6 +125,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -132,6 +134,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -155,6 +158,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -257,6 +261,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -264,6 +269,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -344,6 +350,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -366,9 +373,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -378,6 +389,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -398,6 +410,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -671,6 +684,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1491,6 +1507,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1523,9 +1543,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1546,6 +1575,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1630,9 +1660,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1693,6 +1720,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1706,6 +1736,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/rcache/grdma/Makefile.in openmpi-4.1.4/opal/mca/rcache/grdma/Makefile.in --- openmpi-4.0.3/opal/mca/rcache/grdma/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/rcache/grdma/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -124,6 +124,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -131,6 +133,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -154,6 +157,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -256,6 +260,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -263,6 +268,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -343,6 +349,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -365,9 +372,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -377,6 +388,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -397,6 +409,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -670,6 +683,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1490,6 +1506,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1522,9 +1542,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1545,6 +1574,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1629,9 +1659,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1692,6 +1719,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1705,6 +1735,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/rcache/Makefile.in openmpi-4.1.4/opal/mca/rcache/Makefile.in --- openmpi-4.0.3/opal/mca/rcache/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/rcache/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -139,6 +139,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -146,6 +148,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -169,6 +172,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -271,6 +275,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -278,6 +283,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -358,6 +364,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -380,9 +387,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -392,6 +403,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -412,6 +424,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -673,6 +686,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1493,6 +1509,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1525,9 +1545,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1548,6 +1577,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1632,9 +1662,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1695,6 +1722,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1708,6 +1738,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/rcache/rgpusm/Makefile.in openmpi-4.1.4/opal/mca/rcache/rgpusm/Makefile.in --- openmpi-4.0.3/opal/mca/rcache/rgpusm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/rcache/rgpusm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -123,6 +123,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -130,6 +132,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -153,6 +156,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -255,6 +259,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -262,6 +267,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -342,6 +348,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -364,9 +371,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -376,6 +387,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -396,6 +408,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -670,6 +683,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1490,6 +1506,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1522,9 +1542,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1545,6 +1574,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1629,9 +1659,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1692,6 +1719,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1705,6 +1735,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/rcache/udreg/Makefile.in openmpi-4.1.4/opal/mca/rcache/udreg/Makefile.in --- openmpi-4.0.3/opal/mca/rcache/udreg/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/rcache/udreg/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -668,6 +681,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1488,6 +1504,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1520,9 +1540,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1543,6 +1572,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1627,9 +1657,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1690,6 +1717,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1703,6 +1733,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/reachable/Makefile.in openmpi-4.1.4/opal/mca/reachable/Makefile.in --- openmpi-4.0.3/opal/mca/reachable/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/reachable/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -651,6 +664,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1471,6 +1487,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1503,9 +1523,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1526,6 +1555,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1610,9 +1640,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1673,6 +1700,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1686,6 +1716,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/reachable/netlink/configure.m4 openmpi-4.1.4/opal/mca/reachable/netlink/configure.m4 --- openmpi-4.0.3/opal/mca/reachable/netlink/configure.m4 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/reachable/netlink/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -36,7 +36,7 @@ AS_IF([test $opal_libnl_version -eq 1], [opal_reachable_netlink_happy=0], [OPAL_CHECK_LIBNL_V3([$opal_libnl_location], - [opal_reachable_netlink]) + [reachable_netlink]) AS_IF([test "$OPAL_HAVE_LIBNL3" != "1"], [opal_reachable_netlink_happy=0])]) @@ -44,9 +44,9 @@ [$1], [$2]) - AC_SUBST([opal_reachable_netlink_CPPFLAGS]) - AC_SUBST([opal_reachable_netlink_LDFLAGS]) - AC_SUBST([opal_reachable_netlink_LIBS]) + AC_SUBST([reachable_netlink_CPPFLAGS]) + AC_SUBST([reachable_netlink_LDFLAGS]) + AC_SUBST([reachable_netlink_LIBS]) OPAL_VAR_SCOPE_POP() ]) diff -Nru openmpi-4.0.3/opal/mca/reachable/netlink/Makefile.am openmpi-4.1.4/opal/mca/reachable/netlink/Makefile.am --- openmpi-4.0.3/opal/mca/reachable/netlink/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/reachable/netlink/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -3,6 +3,7 @@ # Copyright (c) 2016 Research Organization for Information Science # and Technology (RIST). All rights reserved. # Copyright (c) 2017 IBM Corporation. All rights reserved. +# Copyright (c) 2022 Amazon.com, Inc. or its affiliates. All Rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -31,17 +32,17 @@ endif AM_CPPFLAGS = \ - $(opal_reachable_netlink_CPPFLAGS) \ + $(reachable_netlink_CPPFLAGS) \ -DOPAL_HAVE_LIBNL3=$(OPAL_HAVE_LIBNL3) mcacomponentdir = $(opallibdir) mcacomponent_LTLIBRARIES = $(component_install) mca_reachable_netlink_la_SOURCES = $(sources) -mca_reachable_netlink_la_LDFLAGS = -module -avoid-version +mca_reachable_netlink_la_LDFLAGS = -module -avoid-version $(reachable_netlink_LDFLAGS) mca_reachable_netlink_la_LIBADD = $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \ - $(opal_reachable_netlink_LIBS) + $(reachable_netlink_LIBS) noinst_LTLIBRARIES = $(component_noinst) libmca_reachable_netlink_la_SOURCES =$(sources) -libmca_reachable_netlink_la_LDFLAGS = -module -avoid-version -libmca_reachable_netlink_la_LIBADD = $(opal_reachable_netlink_LIBS) +libmca_reachable_netlink_la_LDFLAGS = -module -avoid-version $(reachable_netlink_LDFLAGS) +libmca_reachable_netlink_la_LIBADD = $(reachable_netlink_LIBS) diff -Nru openmpi-4.0.3/opal/mca/reachable/netlink/Makefile.in openmpi-4.1.4/opal/mca/reachable/netlink/Makefile.in --- openmpi-4.0.3/opal/mca/reachable/netlink/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/reachable/netlink/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -19,6 +19,7 @@ # Copyright (c) 2016 Research Organization for Information Science # and Technology (RIST). All rights reserved. # Copyright (c) 2017 IBM Corporation. All rights reserved. +# Copyright (c) 2022 Amazon.com, Inc. or its affiliates. All Rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -110,6 +111,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -117,6 +120,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -140,6 +144,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -242,6 +247,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -249,6 +255,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -329,6 +336,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -351,9 +359,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -363,6 +375,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -383,6 +396,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -656,6 +670,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1476,6 +1493,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1508,9 +1529,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1531,6 +1561,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1615,9 +1646,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1678,6 +1706,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1691,6 +1722,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ @@ -1734,20 +1769,20 @@ @MCA_BUILD_opal_reachable_netlink_DSO_FALSE@component_install = @MCA_BUILD_opal_reachable_netlink_DSO_TRUE@component_install = mca_reachable_netlink.la AM_CPPFLAGS = \ - $(opal_reachable_netlink_CPPFLAGS) \ + $(reachable_netlink_CPPFLAGS) \ -DOPAL_HAVE_LIBNL3=$(OPAL_HAVE_LIBNL3) mcacomponentdir = $(opallibdir) mcacomponent_LTLIBRARIES = $(component_install) mca_reachable_netlink_la_SOURCES = $(sources) -mca_reachable_netlink_la_LDFLAGS = -module -avoid-version +mca_reachable_netlink_la_LDFLAGS = -module -avoid-version $(reachable_netlink_LDFLAGS) mca_reachable_netlink_la_LIBADD = $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \ - $(opal_reachable_netlink_LIBS) + $(reachable_netlink_LIBS) noinst_LTLIBRARIES = $(component_noinst) libmca_reachable_netlink_la_SOURCES = $(sources) -libmca_reachable_netlink_la_LDFLAGS = -module -avoid-version -libmca_reachable_netlink_la_LIBADD = $(opal_reachable_netlink_LIBS) +libmca_reachable_netlink_la_LDFLAGS = -module -avoid-version $(reachable_netlink_LDFLAGS) +libmca_reachable_netlink_la_LIBADD = $(reachable_netlink_LIBS) all: all-am .SUFFIXES: diff -Nru openmpi-4.0.3/opal/mca/reachable/weighted/Makefile.in openmpi-4.1.4/opal/mca/reachable/weighted/Makefile.in --- openmpi-4.0.3/opal/mca/reachable/weighted/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/reachable/weighted/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -651,6 +664,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1471,6 +1487,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1503,9 +1523,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1526,6 +1555,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1610,9 +1640,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1673,6 +1700,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1686,6 +1716,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/shmem/Makefile.in openmpi-4.1.4/opal/mca/shmem/Makefile.in --- openmpi-4.0.3/opal/mca/shmem/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/shmem/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -140,6 +140,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -147,6 +149,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -170,6 +173,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -272,6 +276,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -279,6 +284,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -359,6 +365,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -381,9 +388,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -393,6 +404,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -413,6 +425,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -670,6 +683,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1490,6 +1506,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1522,9 +1542,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1545,6 +1574,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1629,9 +1659,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1692,6 +1719,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1705,6 +1735,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/shmem/mmap/Makefile.in openmpi-4.1.4/opal/mca/shmem/mmap/Makefile.in --- openmpi-4.0.3/opal/mca/shmem/mmap/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/shmem/mmap/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -663,6 +676,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1483,6 +1499,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1515,9 +1535,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1538,6 +1567,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1622,9 +1652,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1685,6 +1712,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1698,6 +1728,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/shmem/posix/Makefile.in openmpi-4.1.4/opal/mca/shmem/posix/Makefile.in --- openmpi-4.0.3/opal/mca/shmem/posix/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/shmem/posix/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -665,6 +678,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1485,6 +1501,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1517,9 +1537,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1540,6 +1569,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1624,9 +1654,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1687,6 +1714,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1700,6 +1730,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/shmem/sysv/Makefile.in openmpi-4.1.4/opal/mca/shmem/sysv/Makefile.in --- openmpi-4.0.3/opal/mca/shmem/sysv/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/shmem/sysv/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -99,6 +99,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -106,6 +108,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -129,6 +132,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -231,6 +235,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -238,6 +243,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -318,6 +324,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -340,9 +347,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -352,6 +363,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -372,6 +384,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -641,6 +654,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1461,6 +1477,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1493,9 +1513,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1516,6 +1545,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1600,9 +1630,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1663,6 +1690,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1676,6 +1706,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/timer/altix/Makefile.in openmpi-4.1.4/opal/mca/timer/altix/Makefile.in --- openmpi-4.0.3/opal/mca/timer/altix/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/timer/altix/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,6 +116,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -123,6 +125,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -146,6 +149,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -248,6 +252,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -255,6 +260,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -335,6 +341,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -357,9 +364,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -369,6 +380,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -389,6 +401,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -610,6 +623,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1430,6 +1446,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1462,9 +1482,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1485,6 +1514,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1569,9 +1599,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1632,6 +1659,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1645,6 +1675,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/timer/darwin/Makefile.in openmpi-4.1.4/opal/mca/timer/darwin/Makefile.in --- openmpi-4.0.3/opal/mca/timer/darwin/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/timer/darwin/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -117,6 +117,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -124,6 +126,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -147,6 +150,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -249,6 +253,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -256,6 +261,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -336,6 +342,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -358,9 +365,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -370,6 +381,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -390,6 +402,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -611,6 +624,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1431,6 +1447,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1463,9 +1483,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1486,6 +1515,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1570,9 +1600,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1633,6 +1660,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1646,6 +1676,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/timer/linux/Makefile.in openmpi-4.1.4/opal/mca/timer/linux/Makefile.in --- openmpi-4.0.3/opal/mca/timer/linux/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/timer/linux/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -642,6 +655,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1462,6 +1478,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1494,9 +1514,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1517,6 +1546,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1601,9 +1631,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1664,6 +1691,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1677,6 +1707,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/timer/Makefile.in openmpi-4.1.4/opal/mca/timer/Makefile.in --- openmpi-4.0.3/opal/mca/timer/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/timer/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -136,6 +136,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -143,6 +145,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -166,6 +169,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -268,6 +272,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -275,6 +280,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -355,6 +361,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -377,9 +384,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -389,6 +400,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -409,6 +421,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -665,6 +678,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1485,6 +1501,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1517,9 +1537,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1540,6 +1569,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1624,9 +1654,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1687,6 +1714,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1700,6 +1730,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/mca/timer/solaris/Makefile.in openmpi-4.1.4/opal/mca/timer/solaris/Makefile.in --- openmpi-4.0.3/opal/mca/timer/solaris/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/mca/timer/solaris/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -117,6 +117,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -124,6 +126,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -147,6 +150,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -249,6 +253,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -256,6 +261,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -336,6 +342,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -358,9 +365,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -370,6 +381,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -390,6 +402,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -612,6 +625,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1432,6 +1448,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1464,9 +1484,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1487,6 +1516,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1571,9 +1601,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1634,6 +1661,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1647,6 +1677,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/threads/thread_usage.h openmpi-4.1.4/opal/threads/thread_usage.h --- openmpi-4.0.3/opal/threads/thread_usage.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/threads/thread_usage.h 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2007-2014 Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2007-2022 Cisco Systems, Inc. All rights reserved * Copyright (c) 2014-2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2015-2017 Los Alamos National Security, LLC. All rights @@ -88,7 +88,7 @@ } -// Back-ported from master (2019-05-04) as part of +// Back-ported from main (2019-05-04) as part of // a16cf0e4dd6df4dea820fecedd5920df632935b8 typedef volatile size_t opal_atomic_size_t; diff -Nru openmpi-4.0.3/opal/tools/opal-checkpoint/Makefile.in openmpi-4.1.4/opal/tools/opal-checkpoint/Makefile.in --- openmpi-4.0.3/opal/tools/opal-checkpoint/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/tools/opal-checkpoint/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -134,6 +134,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -141,6 +143,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -164,6 +167,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -266,6 +270,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -273,6 +278,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -353,6 +359,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -375,9 +382,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -387,6 +398,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -407,6 +419,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -666,6 +679,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1486,6 +1502,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1518,9 +1538,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1541,6 +1570,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1625,9 +1655,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1688,6 +1715,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1701,6 +1731,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/tools/opal-restart/Makefile.in openmpi-4.1.4/opal/tools/opal-restart/Makefile.in --- openmpi-4.0.3/opal/tools/opal-restart/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/tools/opal-restart/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -134,6 +134,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -141,6 +143,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -164,6 +167,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -266,6 +270,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -273,6 +278,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -353,6 +359,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -375,9 +382,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -387,6 +398,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -407,6 +419,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -665,6 +678,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1485,6 +1501,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1517,9 +1537,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1540,6 +1569,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1624,9 +1654,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1687,6 +1714,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1700,6 +1730,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/tools/wrappers/Makefile.in openmpi-4.1.4/opal/tools/wrappers/Makefile.in --- openmpi-4.0.3/opal/tools/wrappers/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/tools/wrappers/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -136,6 +136,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -143,6 +145,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -166,6 +169,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -268,6 +272,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -275,6 +280,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -355,6 +361,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -377,9 +384,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -389,6 +400,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -409,6 +421,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -671,6 +684,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1491,6 +1507,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1523,9 +1543,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1546,6 +1575,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1630,9 +1660,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1693,6 +1720,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1706,6 +1736,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/tools/wrappers/opal_wrapper.c openmpi-4.1.4/opal/tools/wrappers/opal_wrapper.c --- openmpi-4.0.3/opal/tools/wrappers/opal_wrapper.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/tools/wrappers/opal_wrapper.c 2022-05-29 09:51:40.000000000 +0000 @@ -15,6 +15,7 @@ * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2018-2021 Amazon.com, Inc. or its affiliates. All Rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -322,7 +323,7 @@ char *line; asprintf(&line, OPAL_INCLUDE_FLAG"%s", options_data[parse_options_idx].path_includedir); - opal_argv_append_nosize(&options_data[parse_options_idx].preproc_flags, line); + opal_argv_prepend_nosize(&options_data[parse_options_idx].preproc_flags, line); free(line); } } @@ -333,7 +334,7 @@ char *line; asprintf(&line, OPAL_LIBDIR_FLAG"%s", options_data[parse_options_idx].path_libdir); - opal_argv_append_nosize(&options_data[parse_options_idx].link_flags, line); + opal_argv_prepend_nosize(&options_data[parse_options_idx].link_flags, line); free(line); } } else if (0 == strcmp(key, "opalincludedir")) { diff -Nru openmpi-4.0.3/opal/util/arch.h openmpi-4.1.4/opal/util/arch.h --- openmpi-4.0.3/opal/util/arch.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/util/arch.h 2022-05-29 09:51:40.000000000 +0000 @@ -3,7 +3,7 @@ * Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2006 The University of Tennessee and The University + * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2006 High Performance Computing Center Stuttgart, @@ -53,7 +53,7 @@ ** The fortran integer is dismissed here, since there is no ** platform known to me, were fortran and C-integer do not match ** -** The following abbriviations are introduced: +** The following abbreviations are introduced: ** ** a) il32 (int long are 32 bits) (e.g. IA32 LINUX, SGI n32, SUN) ** diff -Nru openmpi-4.0.3/opal/util/if.c openmpi-4.1.4/opal/util/if.c --- openmpi-4.0.3/opal/util/if.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/util/if.c 2022-05-29 09:51:40.000000000 +0000 @@ -16,6 +16,8 @@ * reserved. * Copyright (c) 2015-2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2018 Amazon.com, Inc. or its affiliates. All Rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -49,23 +51,7 @@ #include #endif #ifdef HAVE_NET_IF_H -#if defined(__APPLE__) && defined(_LP64) -/* Apple engineering suggested using options align=power as a - workaround for a bug in OS X 10.4 (Tiger) that prevented ioctl(..., - SIOCGIFCONF, ...) from working properly in 64 bit mode on Power PC. - It turns out that the underlying issue is the size of struct - ifconf, which the kernel expects to be 12 and natural 64 bit - alignment would make 16. The same bug appears in 64 bit mode on - Intel macs, but align=power is a no-op there, so instead, use the - pack pragma to instruct the compiler to pack on 4 byte words, which - has the same effect as align=power for our needs and works on both - Intel and Power PC Macs. */ -#pragma pack(push,4) -#endif #include -#if defined(__APPLE__) && defined(_LP64) -#pragma pack(pop) -#endif #endif #ifdef HAVE_NETDB_H #include diff -Nru openmpi-4.0.3/opal/util/info.c openmpi-4.1.4/opal/util/info.c --- openmpi-4.0.3/opal/util/info.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/util/info.c 2022-05-29 09:51:40.000000000 +0000 @@ -14,8 +14,8 @@ * Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved. * Copyright (c) 2012-2017 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2015-2017 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2015-2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * Copyright (c) 2016-2018 IBM Corporation. All rights reserved. * Copyright (c) 2017 Intel, Inc. All rights reserved. * $COPYRIGHT$ @@ -370,13 +370,13 @@ char *ptr; /* Trim whitespace */ - ptr = str + sizeof(str) - 1; + ptr = str + strlen(str) - 1; while (ptr >= str && isspace(*ptr)) { *ptr = '\0'; --ptr; } ptr = str; - while (ptr < str + sizeof(str) - 1 && *ptr != '\0' && + while (ptr < str + strlen(str) - 1 && *ptr != '\0' && isspace(*ptr)) { ++ptr; } diff -Nru openmpi-4.0.3/opal/util/keyval/Makefile.in openmpi-4.1.4/opal/util/keyval/Makefile.in --- openmpi-4.0.3/opal/util/keyval/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/util/keyval/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -621,6 +634,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1441,6 +1457,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1473,9 +1493,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1496,6 +1525,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1580,9 +1610,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1643,6 +1670,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1656,6 +1686,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/util/keyval_parse.c openmpi-4.1.4/opal/util/keyval_parse.c --- openmpi-4.0.3/opal/util/keyval_parse.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/util/keyval_parse.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,6 +12,9 @@ * All rights reserved. * Copyright (c) 2015-2016 Los Alamos National Security, LLC. All rights * reserved. + * Copyright (c) 2018 Triad National Security, LLC. All rights + * reserved. + * Copyright (c) 2020 Cisco Systems, Inc. All rights reserved * $COPYRIGHT$ * * Additional copyrights may follow @@ -274,21 +277,40 @@ static int add_to_env_str(char *var, char *val) { - int sz, varsz, valsz; + int sz, varsz = 0, valsz = 0, new_envsize; void *tmp; if (NULL == var) { return OPAL_ERR_BAD_PARAM; } + varsz = strlen(var); + if (NULL != val) { + valsz = strlen(val); + /* If we have a value, it will be preceeded by a '=', so be + sure to account for that */ + valsz += 1; + } + sz = 0; if (NULL != env_str) { - varsz = strlen(var); - valsz = (NULL != val) ? strlen(val) : 0; - sz = strlen(env_str)+varsz+valsz+2; - if (envsize <= sz) { - envsize *=2; + sz = strlen(env_str); + /* If we have a valid variable, the whole clause will be + terminated by a ';', so be sure to account for that */ + sz += 1; + } + /* Sum the required new sizes, including space for a terminating + \0 byte */ + sz += varsz + valsz + 1; + + /* Make sure we have sufficient space */ + new_envsize = envsize; + while (new_envsize <= sz) { + new_envsize *= 2; + } - tmp = realloc(env_str, envsize); + if (NULL != env_str) { + if (new_envsize > envsize) { + tmp = realloc(env_str, new_envsize); if (NULL == tmp) { return OPAL_ERR_OUT_OF_RESOURCE; } @@ -296,11 +318,12 @@ } strcat(env_str, ";"); } else { - env_str = calloc(1, envsize); + env_str = calloc(1, new_envsize); if (NULL == env_str) { return OPAL_ERR_OUT_OF_RESOURCE; } } + envsize = new_envsize; strcat(env_str, var); if (NULL != val) { diff -Nru openmpi-4.0.3/opal/util/Makefile.in openmpi-4.1.4/opal/util/Makefile.in --- openmpi-4.0.3/opal/util/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/util/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -127,6 +127,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -134,6 +136,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -157,6 +160,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -259,6 +263,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -266,6 +271,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -346,6 +352,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -368,9 +375,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -380,6 +391,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -400,6 +412,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -733,6 +746,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1553,6 +1569,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1585,9 +1605,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1608,6 +1637,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1692,9 +1722,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1755,6 +1782,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1768,6 +1798,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/opal/util/net.c openmpi-4.1.4/opal/util/net.c --- openmpi-4.0.3/opal/util/net.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/util/net.c 2022-05-29 09:51:40.000000000 +0000 @@ -15,6 +15,8 @@ * Copyright (c) 2013 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2018 Amazon.com, Inc. or its affiliates. All Rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -49,23 +51,7 @@ #include #endif #ifdef HAVE_NET_IF_H -#if defined(__APPLE__) && defined(_LP64) -/* Apple engineering suggested using options align=power as a - workaround for a bug in OS X 10.4 (Tiger) that prevented ioctl(..., - SIOCGIFCONF, ...) from working properly in 64 bit mode on Power PC. - It turns out that the underlying issue is the size of struct - ifconf, which the kernel expects to be 12 and natural 64 bit - alignment would make 16. The same bug appears in 64 bit mode on - Intel macs, but align=power is a no-op there, so instead, use the - pack pragma to instruct the compiler to pack on 4 byte words, which - has the same effect as align=power for our needs and works on both - Intel and Power PC Macs. */ -#pragma pack(push,4) -#endif #include -#if defined(__APPLE__) && defined(_LP64) -#pragma pack(pop) -#endif #endif #ifdef HAVE_NETDB_H #include diff -Nru openmpi-4.0.3/opal/util/os_path.c openmpi-4.1.4/opal/util/os_path.c --- openmpi-4.0.3/opal/util/os_path.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/util/os_path.c 2022-05-29 09:51:40.000000000 +0000 @@ -32,7 +32,7 @@ static const char *path_sep = OPAL_PATH_SEP; -char *opal_os_path(bool relative, ...) +char *opal_os_path(int relative, ...) { va_list ap; char *element, *path; diff -Nru openmpi-4.0.3/opal/util/os_path.h openmpi-4.1.4/opal/util/os_path.h --- openmpi-4.0.3/opal/util/os_path.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/util/os_path.h 2022-05-29 09:51:40.000000000 +0000 @@ -62,8 +62,12 @@ * provided path elements, separated by the path separator character * appropriate to the local operating system. The path_name string has been malloc'd * and therefore the user is responsible for free'ing the field. -*/ -OPAL_DECLSPEC char *opal_os_path(bool relative, ...) __opal_attribute_malloc__ __opal_attribute_sentinel__ __opal_attribute_warn_unused_result__; + * + * NOTE: Since this is a varargs function, the last known parameter + * can't undergo a default promotion (e.g., from bool to int), because + * that is undefined behavior. Hence, the type of "relative" is int. + */ +OPAL_DECLSPEC char *opal_os_path(int relative, ...) __opal_attribute_malloc__ __opal_attribute_sentinel__ __opal_attribute_warn_unused_result__; /** * Convert the path to be OS friendly. On UNIX this function will diff -Nru openmpi-4.0.3/opal/util/show_help.c openmpi-4.1.4/opal/util/show_help.c --- openmpi-4.0.3/opal/util/show_help.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/util/show_help.c 2022-05-29 09:51:40.000000000 +0000 @@ -50,7 +50,7 @@ static int opal_show_vhelp_internal(const char *filename, const char *topic, bool want_error_header, va_list arglist); static int opal_show_help_internal(const char *filename, const char *topic, - bool want_error_header, ...); + int want_error_header, ...); opal_show_help_fn_t opal_show_help = opal_show_help_internal; opal_show_vhelp_fn_t opal_show_vhelp = opal_show_vhelp_internal; @@ -317,7 +317,7 @@ } char *opal_show_help_string(const char *filename, const char *topic, - bool want_error_handler, ...) + int want_error_handler, ...) { char *output; va_list arglist; @@ -349,7 +349,7 @@ } static int opal_show_help_internal(const char *filename, const char *topic, - bool want_error_header, ...) + int want_error_header, ...) { va_list arglist; int rc; diff -Nru openmpi-4.0.3/opal/util/show_help.h openmpi-4.1.4/opal/util/show_help.h --- openmpi-4.0.3/opal/util/show_help.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/util/show_help.h 2022-05-29 09:51:40.000000000 +0000 @@ -127,9 +127,14 @@ * (typically $prefix/share/openmpi), and looks up the message * based on the topic, and displays it. If want_error_header is * true, a header and footer of asterisks are also displayed. + * + * NOTE: Since this is a varargs function, the last known parameter + * can't undergo a default promotion (e.g., from bool to int), because + * that is undefined behavior. Hence, the type of "want_error_header" + * is int. */ typedef int (*opal_show_help_fn_t)(const char *filename, const char *topic, - bool want_error_header, ...); + int want_error_header, ...); OPAL_DECLSPEC extern opal_show_help_fn_t opal_show_help; /** @@ -143,10 +148,15 @@ /** * This function does the same thing as opal_show_help(), but returns * its output in a string (that must be freed by the caller). + * + * NOTE: Since this is a varargs function, the last known parameter + * can't undergo a default promotion (e.g., from bool to int), because + * that is undefined behavior. Hence, the type of "want_error_header" + * is int. */ OPAL_DECLSPEC char* opal_show_help_string(const char *filename, const char *topic, - bool want_error_header, ...); + int want_error_header, ...); /** * This function does the same thing as opal_show_help_string(), but diff -Nru openmpi-4.0.3/opal/util/stacktrace.c openmpi-4.1.4/opal/util/stacktrace.c --- openmpi-4.0.3/opal/util/stacktrace.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/util/stacktrace.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. * Copyright (c) 2008-2009 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. - * Copyright (c) 2017 FUJITSU LIMITED. All rights reserved. + * Copyright (c) 2017-2020 FUJITSU LIMITED. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -232,7 +232,7 @@ case BUS_ADRERR: si_code_str = "Non-existant physical address"; break; #endif #ifdef BUS_OBJERR - case BUS_OBJERR: si_code_str = "Objet-specific hardware error"; break; + case BUS_OBJERR: si_code_str = "Object-specific hardware error"; break; #endif } break; diff -Nru openmpi-4.0.3/opal/util/sys_limits.c openmpi-4.1.4/opal/util/sys_limits.c --- openmpi-4.0.3/opal/util/sys_limits.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/util/sys_limits.c 2022-05-29 09:51:40.000000000 +0000 @@ -16,6 +16,8 @@ * Copyright (c) 2014 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2020 Mellanox Technologies, Inc. + * All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -76,7 +78,7 @@ if (0 <= getrlimit(resource, &rlim)) { if (rlim.rlim_max < maxlim) { - rlim_set.rlim_cur = rlim.rlim_cur; + rlim_set.rlim_cur = rlim.rlim_max; rlim_set.rlim_max = rlim.rlim_max; } else { rlim_set.rlim_cur = maxlim; diff -Nru openmpi-4.0.3/opal/util/timings.h openmpi-4.1.4/opal/util/timings.h --- openmpi-4.0.3/opal/util/timings.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/opal/util/timings.h 2022-05-29 09:51:40.000000000 +0000 @@ -49,11 +49,11 @@ _prefix = ""; \ } \ (_nm)->error = 0; \ - n = snprintf((_nm)->id, OPAL_TIMING_STR_LEN, "%s%s", _prefix, func); \ + n = snprintf((_nm)->id, OPAL_TIMING_STR_LEN, "%s_%s", _prefix, func); \ if( n > OPAL_TIMING_STR_LEN ){ \ (_nm)->error = 1; \ } \ - n = sprintf((_nm)->cntr_env,"OMPI_TIMING_%s%s_CNT", prefix, (_nm)->id); \ + n = sprintf((_nm)->cntr_env,"OMPI_TIMING_%s_CNT", (_nm)->id); \ if( n > OPAL_TIMING_STR_LEN ){ \ (_nm)->error = 1; \ } \ @@ -77,11 +77,6 @@ } \ } while(0) -#define OPAL_TIMING_ENV_INIT(name) \ - opal_timing_env_t name ## _val, *name = &(name ## _val); \ - OPAL_TIMING_ENV_START_TYPE(__func__, name, OPAL_TIMING_AUTOMATIC_TIMER, ""); - - /* We use function names for identification * however this might be a problem for the private * functions declared as static as their names may @@ -89,10 +84,10 @@ * Use prefix to do a finer-grained identification if needed */ #define OPAL_TIMING_ENV_INIT_PREFIX(prefix, name) \ - do { \ - opal_timing_env_t name ## _val, *name = &(name ## _val); \ - *name = OPAL_TIMING_ENV_START_TYPE(__func__, name, OPAL_TIMING_AUTOMATIC_TIMER, prefix); \ - } while(0) + opal_timing_env_t name ## _val, *name = &(name ## _val); \ + OPAL_TIMING_ENV_START_TYPE(__func__, name, OPAL_TIMING_AUTOMATIC_TIMER, prefix); + +#define OPAL_TIMING_ENV_INIT(name) OPAL_TIMING_ENV_INIT_PREFIX("", name) #define OPAL_TIMING_ENV_NEXT(h, ...) \ do { \ @@ -161,7 +156,7 @@ do { \ char ename[OPAL_TIMING_STR_LEN]; \ char *ptr = NULL; \ - int n = snprintf(ename, OPAL_TIMING_STR_LEN, "OMPI_TIMING_%s%s_CNT", prefix, func); \ + int n = snprintf(ename, OPAL_TIMING_STR_LEN, "OMPI_TIMING_%s_%s_CNT", prefix, func); \ (_cnt) = 0; \ if ( n <= OPAL_TIMING_STR_LEN ){ \ ptr = getenv(ename); \ @@ -181,18 +176,15 @@ } \ } while(0) -#define OPAL_TIMING_ENV_CNT(func, _cnt) \ - OPAL_TIMING_ENV_CNT_PREFIX("", func, _cnt) - #define OPAL_TIMING_ENV_GETDESC_PREFIX(prefix, filename, func, i, desc, _t) \ do { \ char vname[OPAL_TIMING_STR_LEN]; \ (_t) = 0.0; \ - sprintf(vname, "OMPI_TIMING_%s%s_FILE_%d", prefix, func, i); \ + sprintf(vname, "OMPI_TIMING_%s_%s_FILE_%d", prefix, func, i); \ *filename = getenv(vname); \ - sprintf(vname, "OMPI_TIMING_%s%s_DESC_%d", prefix, func, i); \ + sprintf(vname, "OMPI_TIMING_%s_%s_DESC_%d", prefix, func, i); \ *desc = getenv(vname); \ - sprintf(vname, "OMPI_TIMING_%s%s_VAL_%d", prefix, func, i); \ + sprintf(vname, "OMPI_TIMING_%s_%s_VAL_%d", prefix, func, i); \ char *ptr = getenv(vname); \ if ( NULL != ptr ) { \ sscanf(ptr,"%lf", &(_t)); \ diff -Nru openmpi-4.0.3/orte/etc/Makefile.in openmpi-4.1.4/orte/etc/Makefile.in --- openmpi-4.0.3/orte/etc/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/etc/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,6 +116,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -123,6 +125,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -146,6 +149,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -248,6 +252,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -255,6 +260,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -335,6 +341,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -357,9 +364,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -369,6 +380,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -389,6 +401,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -562,6 +575,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1382,6 +1398,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1414,9 +1434,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1437,6 +1466,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1521,9 +1551,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1584,6 +1611,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1597,6 +1627,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/include/Makefile.in openmpi-4.1.4/orte/include/Makefile.in --- openmpi-4.0.3/orte/include/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/include/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -140,6 +140,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -147,6 +149,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -170,6 +173,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -272,6 +276,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -279,6 +284,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -359,6 +365,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -381,9 +388,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -393,6 +404,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -413,6 +425,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -636,6 +649,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1456,6 +1472,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1488,9 +1508,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1511,6 +1540,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1595,9 +1625,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1658,6 +1685,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1671,6 +1701,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/Makefile.am openmpi-4.1.4/orte/Makefile.am --- openmpi-4.0.3/orte/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -12,6 +12,7 @@ # Copyright (c) 2009-2014 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2015 Los Alamos National Security, LLC. All rights # reserved. +# Copyright (c) 2021 IBM Corporation. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -24,12 +25,14 @@ $(MCA_orte_FRAMEWORKS_SUBDIRS) \ $(MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS) \ etc \ + orted/orted-mpir \ . \ $(MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS) DIST_SUBDIRS = \ include \ etc \ + orted/orted-mpir \ $(MCA_orte_FRAMEWORKS_SUBDIRS) \ $(MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS) @@ -39,7 +42,8 @@ lib@ORTE_LIB_PREFIX@open_rte_la_SOURCES = lib@ORTE_LIB_PREFIX@open_rte_la_LIBADD = \ $(MCA_orte_FRAMEWORK_LIBS) \ - $(ORTE_TOP_BUILDDIR)/opal/lib@OPAL_LIB_PREFIX@open-pal.la + $(ORTE_TOP_BUILDDIR)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \ + orted/orted-mpir/lib@ORTE_LIB_PREFIX@open-orted-mpir.la lib@ORTE_LIB_PREFIX@open_rte_la_DEPENDENCIES = $(libopen_rte_la_LIBADD) lib@ORTE_LIB_PREFIX@open_rte_la_LDFLAGS = -version-info $(libopen_rte_so_version) diff -Nru openmpi-4.0.3/orte/Makefile.in openmpi-4.1.4/orte/Makefile.in --- openmpi-4.0.3/orte/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -28,6 +28,7 @@ # Copyright (c) 2009-2014 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2015 Los Alamos National Security, LLC. All rights # reserved. +# Copyright (c) 2021 IBM Corporation. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -134,7 +135,7 @@ # All rights reserved. # Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2015 Intel, Inc. All rights reserved. -# Copyright (c) 2018 IBM Corporation. All rights reserved. +# Copyright (c) 2018-2021 IBM Corporation. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -324,6 +325,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -331,6 +334,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -354,6 +358,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -456,6 +461,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -463,6 +469,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -543,6 +550,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -565,9 +573,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -577,6 +589,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -597,6 +610,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -673,8 +687,8 @@ util/hostfile/hostfile_lex.lo util/hostfile/hostfile.lo \ util/dash_host/dash_host.lo util/comm/comm.lo util/attr.lo \ util/listener.lo util/compress.lo orted/orted_main.lo \ - orted/orted_comm.lo orted/pmix/pmix_server.lo \ - orted/pmix/pmix_server_fence.lo \ + orted/orted_comm.lo orted/orted_submit.lo \ + orted/pmix/pmix_server.lo orted/pmix/pmix_server_fence.lo \ orted/pmix/pmix_server_register_fns.lo \ orted/pmix/pmix_server_dyn.lo orted/pmix/pmix_server_pub.lo \ orted/pmix/pmix_server_gen.lo @@ -688,13 +702,6 @@ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) \ $(lib@ORTE_LIB_PREFIX@open_rte_la_LDFLAGS) $(LDFLAGS) -o $@ -liborted_mpir_la_LIBADD = -am_liborted_mpir_la_OBJECTS = orted/liborted_mpir_la-orted_submit.lo -liborted_mpir_la_OBJECTS = $(am_liborted_mpir_la_OBJECTS) -liborted_mpir_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(liborted_mpir_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ libruntime_mpir_la_LIBADD = am_libruntime_mpir_la_OBJECTS = \ runtime/libruntime_mpir_la-orte_init.lo @@ -746,9 +753,9 @@ am__v_LEX_1 = YLWRAP = $(top_srcdir)/config/ylwrap SOURCES = $(lib@ORTE_LIB_PREFIX@open_rte_la_SOURCES) \ - $(liborted_mpir_la_SOURCES) $(libruntime_mpir_la_SOURCES) + $(libruntime_mpir_la_SOURCES) DIST_SOURCES = $(lib@ORTE_LIB_PREFIX@open_rte_la_SOURCES) \ - $(liborted_mpir_la_SOURCES) $(libruntime_mpir_la_SOURCES) + $(libruntime_mpir_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ @@ -969,6 +976,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1789,6 +1799,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1821,9 +1835,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1844,6 +1867,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1928,9 +1952,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1991,6 +2012,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -2004,6 +2028,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ @@ -2031,11 +2059,12 @@ ucx_LIBS = @ucx_LIBS@ ucx_STATIC_LIBS = @ucx_STATIC_LIBS@ SUBDIRS = include $(MCA_orte_FRAMEWORKS_SUBDIRS) \ - $(MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS) etc . \ - $(MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS) tools/orte-clean \ - tools/orted tools/orterun tools/wrappers tools/orte-info \ - tools/orte-server -DIST_SUBDIRS = include etc $(MCA_orte_FRAMEWORKS_SUBDIRS) \ + $(MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS) etc \ + orted/orted-mpir . $(MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS) \ + tools/orte-clean tools/orted tools/orterun tools/wrappers \ + tools/orte-info tools/orte-server +DIST_SUBDIRS = include etc orted/orted-mpir \ + $(MCA_orte_FRAMEWORKS_SUBDIRS) \ $(MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS) tools/orte-clean \ tools/orted tools/orterun tools/wrappers tools/orte-info \ tools/orte-server @@ -2059,14 +2088,15 @@ util/hostfile/hostfile_lex.l util/hostfile/hostfile.c \ util/dash_host/dash_host.c util/comm/comm.c util/attr.c \ util/listener.c util/compress.c orted/orted_main.c \ - orted/orted_comm.c orted/pmix/pmix_server.c \ - orted/pmix/pmix_server_fence.c \ + orted/orted_comm.c orted/orted_submit.c \ + orted/pmix/pmix_server.c orted/pmix/pmix_server_fence.c \ orted/pmix/pmix_server_register_fns.c \ orted/pmix/pmix_server_dyn.c orted/pmix/pmix_server_pub.c \ orted/pmix/pmix_server_gen.c lib@ORTE_LIB_PREFIX@open_rte_la_LIBADD = $(MCA_orte_FRAMEWORK_LIBS) \ $(ORTE_TOP_BUILDDIR)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \ - libruntime_mpir.la liborted_mpir.la + orted/orted-mpir/lib@ORTE_LIB_PREFIX@open-orted-mpir.la \ + libruntime_mpir.la lib@ORTE_LIB_PREFIX@open_rte_la_DEPENDENCIES = $(libopen_rte_la_LIBADD) lib@ORTE_LIB_PREFIX@open_rte_la_LDFLAGS = -version-info $(libopen_rte_so_version) @@ -2092,11 +2122,7 @@ # The MPIR portion of the library must be built with flags to # enable stepping out of MPI_INIT into main. # Use an intermediate library to isolate the debug object. - -# The MPIR portion of the library must be built with -g, even if -# the rest of the library has other optimization flags. -# Use an intermediate library to isolate the debug object. -noinst_LTLIBRARIES = libruntime_mpir.la liborted_mpir.la +noinst_LTLIBRARIES = libruntime_mpir.la dist_ortedata_DATA = runtime/help-orte-runtime.txt \ util/hostfile/help-hostfile.txt \ util/dash_host/help-dash-host.txt util/help-regex.txt \ @@ -2148,10 +2174,6 @@ ompi__v_GEN_0 = @echo " GENERATE" $@; nodist_man_MANS = util/hostfile/orte_hosts.7 AM_LFLAGS = -Porte_util_hostfile_ -liborted_mpir_la_SOURCES = \ - orted/orted_submit.c - -liborted_mpir_la_CFLAGS = $(CFLAGS_WITHOUT_OPTFLAGS) $(DEBUGGER_CFLAGS) all: all-recursive .SUFFIXES: @@ -2337,6 +2359,8 @@ orted/$(DEPDIR)/$(am__dirstamp) orted/orted_comm.lo: orted/$(am__dirstamp) \ orted/$(DEPDIR)/$(am__dirstamp) +orted/orted_submit.lo: orted/$(am__dirstamp) \ + orted/$(DEPDIR)/$(am__dirstamp) orted/pmix/$(am__dirstamp): @$(MKDIR_P) orted/pmix @: > orted/pmix/$(am__dirstamp) @@ -2358,11 +2382,6 @@ lib@ORTE_LIB_PREFIX@open-rte.la: $(lib@ORTE_LIB_PREFIX@open_rte_la_OBJECTS) $(lib@ORTE_LIB_PREFIX@open_rte_la_DEPENDENCIES) $(EXTRA_lib@ORTE_LIB_PREFIX@open_rte_la_DEPENDENCIES) $(AM_V_CCLD)$(lib@ORTE_LIB_PREFIX@open_rte_la_LINK) -rpath $(libdir) $(lib@ORTE_LIB_PREFIX@open_rte_la_OBJECTS) $(lib@ORTE_LIB_PREFIX@open_rte_la_LIBADD) $(LIBS) -orted/liborted_mpir_la-orted_submit.lo: orted/$(am__dirstamp) \ - orted/$(DEPDIR)/$(am__dirstamp) - -liborted_mpir.la: $(liborted_mpir_la_OBJECTS) $(liborted_mpir_la_DEPENDENCIES) $(EXTRA_liborted_mpir_la_DEPENDENCIES) - $(AM_V_CCLD)$(liborted_mpir_la_LINK) $(liborted_mpir_la_OBJECTS) $(liborted_mpir_la_LIBADD) $(LIBS) runtime/libruntime_mpir_la-orte_init.lo: runtime/$(am__dirstamp) \ runtime/$(DEPDIR)/$(am__dirstamp) @@ -2391,9 +2410,9 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@orted/$(DEPDIR)/liborted_mpir_la-orted_submit.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@orted/$(DEPDIR)/orted_comm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@orted/$(DEPDIR)/orted_main.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@orted/$(DEPDIR)/orted_submit.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@orted/pmix/$(DEPDIR)/pmix_server.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@orted/pmix/$(DEPDIR)/pmix_server_dyn.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@orted/pmix/$(DEPDIR)/pmix_server_fence.Plo@am__quote@ @@ -2456,13 +2475,6 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< -orted/liborted_mpir_la-orted_submit.lo: orted/orted_submit.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liborted_mpir_la_CFLAGS) $(CFLAGS) -MT orted/liborted_mpir_la-orted_submit.lo -MD -MP -MF orted/$(DEPDIR)/liborted_mpir_la-orted_submit.Tpo -c -o orted/liborted_mpir_la-orted_submit.lo `test -f 'orted/orted_submit.c' || echo '$(srcdir)/'`orted/orted_submit.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) orted/$(DEPDIR)/liborted_mpir_la-orted_submit.Tpo orted/$(DEPDIR)/liborted_mpir_la-orted_submit.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orted/orted_submit.c' object='orted/liborted_mpir_la-orted_submit.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(liborted_mpir_la_CFLAGS) $(CFLAGS) -c -o orted/liborted_mpir_la-orted_submit.lo `test -f 'orted/orted_submit.c' || echo '$(srcdir)/'`orted/orted_submit.c - runtime/libruntime_mpir_la-orte_init.lo: runtime/orte_init.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libruntime_mpir_la_CFLAGS) $(CFLAGS) -MT runtime/libruntime_mpir_la-orte_init.lo -MD -MP -MF runtime/$(DEPDIR)/libruntime_mpir_la-orte_init.Tpo -c -o runtime/libruntime_mpir_la-orte_init.lo `test -f 'runtime/orte_init.c' || echo '$(srcdir)/'`runtime/orte_init.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) runtime/$(DEPDIR)/libruntime_mpir_la-orte_init.Tpo runtime/$(DEPDIR)/libruntime_mpir_la-orte_init.Plo diff -Nru openmpi-4.0.3/orte/mca/common/alps/Makefile.in openmpi-4.1.4/orte/mca/common/alps/Makefile.in --- openmpi-4.0.3/orte/mca/common/alps/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/common/alps/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -112,6 +112,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -119,6 +121,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -142,6 +145,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -244,6 +248,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -251,6 +256,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -331,6 +337,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -353,9 +360,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -365,6 +376,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -385,6 +397,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -659,6 +672,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1479,6 +1495,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1511,9 +1531,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1534,6 +1563,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1618,9 +1648,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1681,6 +1708,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1694,6 +1724,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/common/Makefile.in openmpi-4.1.4/orte/mca/common/Makefile.in --- openmpi-4.0.3/orte/mca/common/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/common/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,6 +116,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -123,6 +125,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -146,6 +149,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -248,6 +252,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -255,6 +260,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -335,6 +341,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -357,9 +364,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -369,6 +380,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -389,6 +401,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -562,6 +575,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1382,6 +1398,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1414,9 +1434,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1437,6 +1466,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1521,9 +1551,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1584,6 +1611,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1597,6 +1627,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/errmgr/default_app/Makefile.in openmpi-4.1.4/orte/mca/errmgr/default_app/Makefile.in --- openmpi-4.0.3/orte/mca/errmgr/default_app/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/errmgr/default_app/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -651,6 +664,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1471,6 +1487,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1503,9 +1523,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1526,6 +1555,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1610,9 +1640,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1673,6 +1700,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1686,6 +1716,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/errmgr/default_hnp/Makefile.in openmpi-4.1.4/orte/mca/errmgr/default_hnp/Makefile.in --- openmpi-4.0.3/orte/mca/errmgr/default_hnp/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/errmgr/default_hnp/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -651,6 +664,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1471,6 +1487,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1503,9 +1523,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1526,6 +1555,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1610,9 +1640,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1673,6 +1700,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1686,6 +1716,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/errmgr/default_orted/Makefile.in openmpi-4.1.4/orte/mca/errmgr/default_orted/Makefile.in --- openmpi-4.0.3/orte/mca/errmgr/default_orted/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/errmgr/default_orted/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -652,6 +665,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1472,6 +1488,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1504,9 +1524,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1527,6 +1556,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1611,9 +1641,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1674,6 +1701,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1687,6 +1717,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/errmgr/default_tool/Makefile.in openmpi-4.1.4/orte/mca/errmgr/default_tool/Makefile.in --- openmpi-4.0.3/orte/mca/errmgr/default_tool/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/errmgr/default_tool/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -652,6 +665,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1472,6 +1488,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1504,9 +1524,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1527,6 +1556,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1611,9 +1641,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1674,6 +1701,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1687,6 +1717,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/errmgr/Makefile.in openmpi-4.1.4/orte/mca/errmgr/Makefile.in --- openmpi-4.0.3/orte/mca/errmgr/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/errmgr/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -139,6 +139,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -146,6 +148,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -169,6 +172,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -271,6 +275,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -278,6 +283,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -358,6 +364,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -380,9 +387,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -392,6 +403,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -412,6 +424,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -671,6 +684,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1491,6 +1507,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1523,9 +1543,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1546,6 +1575,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1630,9 +1660,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1693,6 +1720,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1706,6 +1736,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/ess/alps/Makefile.in openmpi-4.1.4/orte/mca/ess/alps/Makefile.in --- openmpi-4.0.3/orte/mca/ess/alps/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ess/alps/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -666,6 +679,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1486,6 +1502,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1518,9 +1538,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1541,6 +1570,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1625,9 +1655,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1688,6 +1715,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1701,6 +1731,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/ess/base/ess_base_fns.c openmpi-4.1.4/orte/mca/ess/base/ess_base_fns.c --- openmpi-4.0.3/orte/mca/ess/base/ess_base_fns.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ess/base/ess_base_fns.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011-2012 Los Alamos National Security, LLC. * All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2014-2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -54,6 +54,7 @@ int ret; char *error=NULL; hwloc_cpuset_t mycpus; + opal_value_t val; /* Determine if we were pre-bound or not - this also indicates * that we were launched via mpirun, bound or not */ @@ -66,34 +67,99 @@ goto error; } } + /* get our cpuset */ + if (NULL != orte_process_info.cpuset) { + free(orte_process_info.cpuset); + orte_process_info.cpuset = NULL; + } + OPAL_MODEX_RECV_VALUE_OPTIONAL(ret, OPAL_PMIX_CPUSET, + ORTE_PROC_MY_NAME, &orte_process_info.cpuset, OPAL_STRING); + if (opal_hwloc_report_bindings || 4 < opal_output_get_verbosity(orte_ess_base_framework.framework_output)) { - /* print out a shorthand notation to avoid pulling in the entire topology tree */ + /* try to get our locality as well so we avoid pulling in the hwloc topology tree */ map = NULL; OPAL_MODEX_RECV_VALUE_OPTIONAL(ret, OPAL_PMIX_LOCALITY_STRING, ORTE_PROC_MY_NAME, &map, OPAL_STRING); if (OPAL_SUCCESS == ret && NULL != map) { - opal_output(0, "MCW rank %s bound to %s", - ORTE_VPID_PRINT(ORTE_PROC_MY_NAME->vpid), map); + /* we were - no need to pull in the topology */ + opal_output(0, "MCW rank %s bound to %s", + ORTE_VPID_PRINT(ORTE_PROC_MY_NAME->vpid), map); free(map); - } else { + } else if (OPAL_SUCCESS == ret && NULL == map) { opal_output(0, "MCW rank %s not bound", ORTE_VPID_PRINT(ORTE_PROC_MY_NAME->vpid)); + } else { + /* they want the binding report, so we will have to obtain the + * topology since locality wasn't given to us */ + if (OPAL_SUCCESS != opal_hwloc_base_get_topology()) { + /* there is nothing we can do, so just return */ + return ORTE_SUCCESS; + } + mycpus = hwloc_bitmap_alloc(); + if (hwloc_get_cpubind(opal_hwloc_topology, + mycpus, HWLOC_CPUBIND_PROCESS) < 0) { + opal_output(0, "MCW rank %d is not bound", + ORTE_PROC_MY_NAME->vpid); + } else { + char tmp1[1024], tmp2[1024]; + if (OPAL_ERR_NOT_BOUND == opal_hwloc_base_cset2str(tmp1, sizeof(tmp1), opal_hwloc_topology, mycpus)) { + opal_output(0, "MCW rank %d is not bound (or bound to all available processors)", ORTE_PROC_MY_NAME->vpid); + } else { + opal_hwloc_base_cset2mapstr(tmp2, sizeof(tmp2), opal_hwloc_topology, mycpus); + opal_output(0, "MCW rank %d bound to %s: %s", + ORTE_PROC_MY_NAME->vpid, tmp1, tmp2); + } + } + hwloc_bitmap_free(mycpus); } } return ORTE_SUCCESS; } else if (NULL != getenv(OPAL_MCA_PREFIX"orte_externally_bound")) { orte_proc_is_bound = true; - /* see if we were launched by a PMIx-enabled system */ - map = NULL; - OPAL_MODEX_RECV_VALUE_OPTIONAL(ret, OPAL_PMIX_LOCALITY_STRING, - ORTE_PROC_MY_NAME, &map, OPAL_STRING); - if (OPAL_SUCCESS == ret && NULL != map) { - /* we were - no need to pull in the topology */ - if (opal_hwloc_report_bindings || 4 < opal_output_get_verbosity(orte_ess_base_framework.framework_output)) { - opal_output(0, "MCW rank %s bound to %s", - ORTE_VPID_PRINT(ORTE_PROC_MY_NAME->vpid), map); + /* get our cpuset, if available */ + if (NULL != orte_process_info.cpuset) { + free(orte_process_info.cpuset); + orte_process_info.cpuset = NULL; + } + OPAL_MODEX_RECV_VALUE_OPTIONAL(ret, OPAL_PMIX_CPUSET, + ORTE_PROC_MY_NAME, &orte_process_info.cpuset, OPAL_STRING); + + + if (opal_hwloc_report_bindings || 4 < opal_output_get_verbosity(orte_ess_base_framework.framework_output)) { + /* try to get our locality as well so we avoid pulling in the hwloc topology tree */ + map = NULL; + OPAL_MODEX_RECV_VALUE_OPTIONAL(ret, OPAL_PMIX_LOCALITY_STRING, + ORTE_PROC_MY_NAME, &map, OPAL_STRING); + if (OPAL_SUCCESS == ret && NULL != map) { + /* we were - no need to pull in the topology */ + opal_output(0, "MCW rank %s bound to %s", + ORTE_VPID_PRINT(ORTE_PROC_MY_NAME->vpid), map); + free(map); + } else if (OPAL_SUCCESS == ret && NULL == map) { + opal_output(0, "MCW rank %s not bound", ORTE_VPID_PRINT(ORTE_PROC_MY_NAME->vpid)); + } else { + /* they want the binding report, so we will have to obtain the + * topology since locality wasn't given to us */ + if (OPAL_SUCCESS != opal_hwloc_base_get_topology()) { + /* there is nothing we can do, so just return */ + return ORTE_SUCCESS; + } + mycpus = hwloc_bitmap_alloc(); + if (hwloc_get_cpubind(opal_hwloc_topology, + mycpus, HWLOC_CPUBIND_PROCESS) < 0) { + opal_output(0, "MCW rank %d is not bound", + ORTE_PROC_MY_NAME->vpid); + } else { + char tmp1[1024], tmp2[1024]; + if (OPAL_ERR_NOT_BOUND == opal_hwloc_base_cset2str(tmp1, sizeof(tmp1), opal_hwloc_topology, mycpus)) { + opal_output(0, "MCW rank %d is not bound (or bound to all available processors)", ORTE_PROC_MY_NAME->vpid); + } else { + opal_hwloc_base_cset2mapstr(tmp2, sizeof(tmp2), opal_hwloc_topology, mycpus); + opal_output(0, "MCW rank %d bound to %s: %s", + ORTE_PROC_MY_NAME->vpid, tmp1, tmp2); + } + } + hwloc_bitmap_free(mycpus); } - free(map); - return ORTE_SUCCESS; } /* the topology system will pickup the binding pattern */ } @@ -323,6 +389,17 @@ if (NULL != orte_process_info.cpuset) { OPAL_MODEX_SEND_VALUE(ret, OPAL_PMIX_GLOBAL, OPAL_PMIX_CPUSET, orte_process_info.cpuset, OPAL_STRING); + /* save our locality string so we can retrieve it elsewhere */ + OBJ_CONSTRUCT(&val, opal_value_t); + val.key = OPAL_PMIX_LOCALITY_STRING; + val.type = OPAL_STRING; + val.data.string = opal_hwloc_base_get_locality_string(opal_hwloc_topology, orte_process_info.cpuset); + if (OPAL_SUCCESS != (ret = opal_pmix.store_local(ORTE_PROC_MY_NAME, &val))) { + ORTE_ERROR_LOG(ret); + } + val.key = NULL; + val.data.string = NULL; + OBJ_DESTRUCT(&val); } return ORTE_SUCCESS; diff -Nru openmpi-4.0.3/orte/mca/ess/base/ess_base_std_orted.c openmpi-4.1.4/orte/mca/ess/base/ess_base_std_orted.c --- openmpi-4.0.3/orte/mca/ess/base/ess_base_std_orted.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ess/base/ess_base_std_orted.c 2022-05-29 09:51:40.000000000 +0000 @@ -15,7 +15,7 @@ * Copyright (c) 2011-2013 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. - * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2017-2021 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -559,29 +559,6 @@ orte_routed.update_routing_plan(NULL); } - if (orte_static_ports || orte_fwd_mpirun_port) { - if (NULL == orte_node_regex) { - /* we didn't get the node info */ - error = "cannot construct daemon map for static ports - no node map info"; - goto error; - } - /* extract the node info from the environment and - * build a nidmap from it - this will update the - * routing plan as well - */ - if (ORTE_SUCCESS != (ret = orte_regx.build_daemon_nidmap())) { - ORTE_ERROR_LOG(ret); - error = "construct daemon map from static ports"; - goto error; - } - /* be sure to update the routing tree so the initial "phone home" - * to mpirun goes through the tree if static ports were enabled - */ - orte_routed.update_routing_plan(NULL); - /* routing can be enabled */ - orte_routed_base.routing_enabled = true; - } - /* Now provide a chance for the PLM * to perform any module-specific init functions. This * needs to occur AFTER the communications are setup diff -Nru openmpi-4.0.3/orte/mca/ess/env/Makefile.in openmpi-4.1.4/orte/mca/ess/env/Makefile.in --- openmpi-4.0.3/orte/mca/ess/env/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ess/env/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -657,6 +670,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1477,6 +1493,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1509,9 +1529,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1532,6 +1561,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1616,9 +1646,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1679,6 +1706,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1692,6 +1722,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/ess/hnp/Makefile.in openmpi-4.1.4/orte/mca/ess/hnp/Makefile.in --- openmpi-4.0.3/orte/mca/ess/hnp/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ess/hnp/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -659,6 +672,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1479,6 +1495,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1511,9 +1531,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1534,6 +1563,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1618,9 +1648,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1681,6 +1708,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1694,6 +1724,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/ess/lsf/ess_lsf_module.c openmpi-4.1.4/orte/mca/ess/lsf/ess_lsf_module.c --- openmpi-4.0.3/orte/mca/ess/lsf/ess_lsf_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ess/lsf/ess_lsf_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,6 +13,7 @@ * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. * Copyright (c) 2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2021 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -103,7 +104,7 @@ return ORTE_SUCCESS; error: - if (ORTE_ERR_SILENT != ret && !orte_report_silent_errors) { + if( ORTE_ERR_SILENT != ret || orte_report_silent_errors ) { orte_show_help("help-orte-runtime.txt", "orte_init:startup:internal-failure", true, error, ORTE_ERROR_NAME(ret), ret); diff -Nru openmpi-4.0.3/orte/mca/ess/lsf/Makefile.in openmpi-4.1.4/orte/mca/ess/lsf/Makefile.in --- openmpi-4.0.3/orte/mca/ess/lsf/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ess/lsf/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -659,6 +672,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1479,6 +1495,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1511,9 +1531,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1534,6 +1563,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1618,9 +1648,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1681,6 +1708,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1694,6 +1724,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/ess/Makefile.in openmpi-4.1.4/orte/mca/ess/Makefile.in --- openmpi-4.0.3/orte/mca/ess/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ess/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -139,6 +139,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -146,6 +148,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -169,6 +172,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -271,6 +275,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -278,6 +283,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -358,6 +364,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -380,9 +387,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -392,6 +403,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -412,6 +424,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -671,6 +684,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1491,6 +1507,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1523,9 +1543,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1546,6 +1575,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1630,9 +1660,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1693,6 +1720,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1706,6 +1736,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/ess/pmi/ess_pmi_module.c openmpi-4.1.4/orte/mca/ess/pmi/ess_pmi_module.c --- openmpi-4.0.3/orte/mca/ess/pmi/ess_pmi_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ess/pmi/ess_pmi_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -18,6 +18,7 @@ * Copyright (c) 2018 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2018 FUJITSU LIMITED. All rights reserved. + * Copyright (c) 2021 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -618,7 +619,7 @@ */ orte_show_help_finalize(); } - if (ORTE_ERR_SILENT != ret && !orte_report_silent_errors) { + if( ORTE_ERR_SILENT != ret || orte_report_silent_errors ) { orte_show_help("help-orte-runtime.txt", "orte_init:startup:internal-failure", true, error, ORTE_ERROR_NAME(ret), ret); diff -Nru openmpi-4.0.3/orte/mca/ess/pmi/Makefile.in openmpi-4.1.4/orte/mca/ess/pmi/Makefile.in --- openmpi-4.0.3/orte/mca/ess/pmi/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ess/pmi/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -111,6 +111,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -118,6 +120,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -141,6 +144,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -243,6 +247,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -250,6 +255,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -330,6 +336,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -352,9 +359,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -364,6 +375,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -384,6 +396,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -649,6 +662,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1469,6 +1485,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1501,9 +1521,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1524,6 +1553,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1608,9 +1638,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1671,6 +1698,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1684,6 +1714,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/ess/singleton/Makefile.in openmpi-4.1.4/orte/mca/ess/singleton/Makefile.in --- openmpi-4.0.3/orte/mca/ess/singleton/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ess/singleton/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -660,6 +673,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1480,6 +1496,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1512,9 +1532,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1535,6 +1564,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1619,9 +1649,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1682,6 +1709,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1695,6 +1725,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/ess/slurm/Makefile.in openmpi-4.1.4/orte/mca/ess/slurm/Makefile.in --- openmpi-4.0.3/orte/mca/ess/slurm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ess/slurm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -657,6 +670,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1477,6 +1493,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1509,9 +1529,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1532,6 +1561,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1616,9 +1646,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1679,6 +1706,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1692,6 +1722,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/ess/tm/Makefile.in openmpi-4.1.4/orte/mca/ess/tm/Makefile.in --- openmpi-4.0.3/orte/mca/ess/tm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ess/tm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -655,6 +668,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1475,6 +1491,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1507,9 +1527,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1530,6 +1559,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1614,9 +1644,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1677,6 +1704,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1690,6 +1720,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/ess/tool/Makefile.in openmpi-4.1.4/orte/mca/ess/tool/Makefile.in --- openmpi-4.0.3/orte/mca/ess/tool/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ess/tool/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -658,6 +671,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1478,6 +1494,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1510,9 +1530,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1533,6 +1562,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1617,9 +1647,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1680,6 +1707,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1693,6 +1723,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/filem/Makefile.in openmpi-4.1.4/orte/mca/filem/Makefile.in --- openmpi-4.0.3/orte/mca/filem/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/filem/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -151,6 +151,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -158,6 +160,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -181,6 +184,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -283,6 +287,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -290,6 +295,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -370,6 +376,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -392,9 +399,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -404,6 +415,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -424,6 +436,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -684,6 +697,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1504,6 +1520,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1536,9 +1556,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1559,6 +1588,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1643,9 +1673,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1706,6 +1733,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1719,6 +1749,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/filem/raw/Makefile.in openmpi-4.1.4/orte/mca/filem/raw/Makefile.in --- openmpi-4.0.3/orte/mca/filem/raw/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/filem/raw/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -661,6 +674,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1481,6 +1497,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1513,9 +1533,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1536,6 +1565,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1620,9 +1650,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1683,6 +1710,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1696,6 +1726,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/grpcomm/direct/grpcomm_direct.c openmpi-4.1.4/orte/mca/grpcomm/direct/grpcomm_direct.c --- openmpi-4.0.3/orte/mca/grpcomm/direct/grpcomm_direct.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/grpcomm/direct/grpcomm_direct.c 2022-05-29 09:51:40.000000000 +0000 @@ -8,6 +8,7 @@ * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. * Copyright (c) 2014-2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2021 Nanook Consulting. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -34,6 +35,7 @@ #include "orte/util/compress.h" #include "orte/util/name_fns.h" #include "orte/util/proc_info.h" +#include "orte/util/show_help.h" #include "orte/mca/grpcomm/base/base.h" #include "grpcomm_direct.h" @@ -342,7 +344,16 @@ opal_dss.load(&datbuf, cmpdata, cmplen); data = &datbuf; } else { - data = buffer; + /* we were supposed to decompress this block - if we didn't, then + * that's an unrecoverable error */ + orte_show_help("help-orte-runtime.txt", "failed-to-uncompress", + true, orte_process_info.nodename); + free(packed_data); + ORTE_FORCED_TERMINATE(ret); + OBJ_DESTRUCT(&datbuf); + OBJ_DESTRUCT(&coll); + OBJ_RELEASE(rly); + return; } free(packed_data); } else { diff -Nru openmpi-4.0.3/orte/mca/grpcomm/direct/Makefile.in openmpi-4.1.4/orte/mca/grpcomm/direct/Makefile.in --- openmpi-4.0.3/orte/mca/grpcomm/direct/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/grpcomm/direct/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -111,6 +111,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -118,6 +120,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -141,6 +144,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -243,6 +247,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -250,6 +255,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -330,6 +336,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -352,9 +359,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -364,6 +375,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -384,6 +396,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -653,6 +666,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1473,6 +1489,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1505,9 +1525,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1528,6 +1557,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1612,9 +1642,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1675,6 +1702,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1688,6 +1718,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/grpcomm/Makefile.in openmpi-4.1.4/orte/mca/grpcomm/Makefile.in --- openmpi-4.0.3/orte/mca/grpcomm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/grpcomm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -138,6 +138,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -145,6 +147,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -168,6 +171,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -270,6 +274,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -277,6 +282,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -357,6 +363,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -379,9 +386,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -391,6 +402,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -411,6 +423,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -668,6 +681,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1488,6 +1504,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1520,9 +1540,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1543,6 +1572,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1627,9 +1657,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1690,6 +1717,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1703,6 +1733,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/iof/base/iof_base_setup.c openmpi-4.1.4/orte/mca/iof/base/iof_base_setup.c --- openmpi-4.0.3/orte/mca/iof/base/iof_base_setup.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/iof/base/iof_base_setup.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,8 +12,8 @@ * Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. * Copyright (c) 2017 IBM Corporation. All rights reserved. - * Copyright (c) 2017 Research Organization for Information Science - * and Technology (RIST). All rights reserved. + * Copyright (c) 2017-2021 Research Organization for Information Science + * and Technology (RIST). All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -58,6 +58,9 @@ #ifdef HAVE_LIBUTIL_H #include #endif +#ifdef HAVE_SYS_IOCTL_H +# include +#endif #include "opal/util/opal_pty.h" #include "opal/util/opal_environ.h" @@ -83,6 +86,7 @@ /* first check to make sure we can do ptys */ #if OPAL_ENABLE_PTY_SUPPORT if (opts->usepty) { + struct winsize *wp = NULL; /** * It has been reported that on MAC OS X 10.4 and prior one cannot * safely close the writing side of a pty before completly reading @@ -93,8 +97,14 @@ * pty exactly as we use the pipes. * This comment is here as a reminder. */ +#ifdef TIOCGWINSZ + struct winsize ws; + if (0 == ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws)) { + wp = &ws; + } +#endif ret = opal_openpty(&(opts->p_stdout[0]), &(opts->p_stdout[1]), - (char*)NULL, (struct termios*)NULL, (struct winsize*)NULL); + (char*)NULL, (struct termios*)NULL, wp); } #else opts->usepty = 0; diff -Nru openmpi-4.0.3/orte/mca/iof/hnp/Makefile.in openmpi-4.1.4/orte/mca/iof/hnp/Makefile.in --- openmpi-4.0.3/orte/mca/iof/hnp/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/iof/hnp/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -123,6 +123,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -130,6 +132,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -153,6 +156,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -255,6 +259,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -262,6 +267,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -342,6 +348,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -364,9 +371,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -376,6 +387,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -396,6 +408,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -662,6 +675,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1482,6 +1498,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1514,9 +1534,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1537,6 +1566,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1621,9 +1651,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1684,6 +1711,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1697,6 +1727,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/iof/Makefile.in openmpi-4.1.4/orte/mca/iof/Makefile.in --- openmpi-4.0.3/orte/mca/iof/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/iof/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -137,6 +137,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -144,6 +146,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -167,6 +170,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -269,6 +273,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -276,6 +281,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -356,6 +362,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -378,9 +385,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -390,6 +401,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -410,6 +422,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -668,6 +681,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1488,6 +1504,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1520,9 +1540,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1543,6 +1572,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1627,9 +1657,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1690,6 +1717,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1703,6 +1733,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/iof/orted/Makefile.in openmpi-4.1.4/orte/mca/iof/orted/Makefile.in --- openmpi-4.0.3/orte/mca/iof/orted/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/iof/orted/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -123,6 +123,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -130,6 +132,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -153,6 +156,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -255,6 +259,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -262,6 +267,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -342,6 +348,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -364,9 +371,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -376,6 +387,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -396,6 +408,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -663,6 +676,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1483,6 +1499,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1515,9 +1535,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1538,6 +1567,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1622,9 +1652,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1685,6 +1712,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1698,6 +1728,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/iof/tool/Makefile.in openmpi-4.1.4/orte/mca/iof/tool/Makefile.in --- openmpi-4.0.3/orte/mca/iof/tool/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/iof/tool/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -123,6 +123,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -130,6 +132,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -153,6 +156,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -255,6 +259,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -262,6 +267,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -342,6 +348,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -364,9 +371,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -376,6 +387,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -396,6 +408,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -662,6 +675,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1482,6 +1498,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1514,9 +1534,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1537,6 +1566,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1621,9 +1651,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1684,6 +1711,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1697,6 +1727,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/odls/alps/Makefile.in openmpi-4.1.4/orte/mca/odls/alps/Makefile.in --- openmpi-4.0.3/orte/mca/odls/alps/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/odls/alps/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -671,6 +684,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1491,6 +1507,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1523,9 +1543,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1546,6 +1575,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1630,9 +1660,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1693,6 +1720,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1706,6 +1736,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/odls/base/odls_base_default_fns.c openmpi-4.1.4/orte/mca/odls/base/odls_base_default_fns.c --- openmpi-4.0.3/orte/mca/odls/base/odls_base_default_fns.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/odls/base/odls_base_default_fns.c 2022-05-29 09:51:40.000000000 +0000 @@ -18,7 +18,7 @@ * Copyright (c) 2014-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * Copyright (c) 2017 Mellanox Technologies Ltd. All rights reserved. - * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2017-2021 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -256,74 +256,71 @@ OBJ_RELEASE(val); } } - /* if we didn't rollup the connection info, then we have - * to provide a complete map of connection info */ - if (!orte_static_ports && !orte_fwd_mpirun_port) { - for (v=1; v < jptr->procs->size; v++) { - if (NULL == (dmn = (orte_proc_t*)opal_pointer_array_get_item(jptr->procs, v))) { - continue; - } - val = NULL; - if (opal_pmix.legacy_get()) { - if (OPAL_SUCCESS != (rc = opal_pmix.get(&dmn->name, OPAL_PMIX_PROC_URI, NULL, &val)) || NULL == val) { + /* Provide a complete map of connection info */ + for (v=1; v < jptr->procs->size; v++) { + if (NULL == (dmn = (orte_proc_t*)opal_pointer_array_get_item(jptr->procs, v))) { + continue; + } + val = NULL; + if (opal_pmix.legacy_get()) { + if (OPAL_SUCCESS != (rc = opal_pmix.get(&dmn->name, OPAL_PMIX_PROC_URI, NULL, &val)) || NULL == val) { + ORTE_ERROR_LOG(rc); + OBJ_RELEASE(buffer); + OBJ_RELEASE(wireup); + return rc; + } else { + /* pack the name of the daemon */ + if (ORTE_SUCCESS != (rc = opal_dss.pack(wireup, &dmn->name, 1, ORTE_NAME))) { + ORTE_ERROR_LOG(rc); + OBJ_RELEASE(buffer); + OBJ_RELEASE(wireup); + return rc; + } + /* pack the URI */ + if (ORTE_SUCCESS != (rc = opal_dss.pack(wireup, &val->data.string, 1, OPAL_STRING))) { ORTE_ERROR_LOG(rc); OBJ_RELEASE(buffer); OBJ_RELEASE(wireup); return rc; - } else { - /* pack the name of the daemon */ - if (ORTE_SUCCESS != (rc = opal_dss.pack(wireup, &dmn->name, 1, ORTE_NAME))) { - ORTE_ERROR_LOG(rc); - OBJ_RELEASE(buffer); - OBJ_RELEASE(wireup); - return rc; - } - /* pack the URI */ - if (ORTE_SUCCESS != (rc = opal_dss.pack(wireup, &val->data.string, 1, OPAL_STRING))) { - ORTE_ERROR_LOG(rc); - OBJ_RELEASE(buffer); - OBJ_RELEASE(wireup); - return rc; - } - OBJ_RELEASE(val); } + OBJ_RELEASE(val); + } + } else { + if (OPAL_SUCCESS != (rc = opal_pmix.get(&dmn->name, NULL, NULL, &val)) || NULL == val) { + ORTE_ERROR_LOG(rc); + OBJ_RELEASE(buffer); + return rc; } else { - if (OPAL_SUCCESS != (rc = opal_pmix.get(&dmn->name, NULL, NULL, &val)) || NULL == val) { + /* the data is returned as a list of key-value pairs in the opal_value_t */ + if (OPAL_PTR != val->type) { + ORTE_ERROR_LOG(ORTE_ERR_NOT_FOUND); + OBJ_RELEASE(buffer); + return ORTE_ERR_NOT_FOUND; + } + if (ORTE_SUCCESS != (rc = opal_dss.pack(wireup, &dmn->name, 1, ORTE_NAME))) { ORTE_ERROR_LOG(rc); OBJ_RELEASE(buffer); + OBJ_RELEASE(wireup); return rc; - } else { - /* the data is returned as a list of key-value pairs in the opal_value_t */ - if (OPAL_PTR != val->type) { - ORTE_ERROR_LOG(ORTE_ERR_NOT_FOUND); - OBJ_RELEASE(buffer); - return ORTE_ERR_NOT_FOUND; - } - if (ORTE_SUCCESS != (rc = opal_dss.pack(wireup, &dmn->name, 1, ORTE_NAME))) { - ORTE_ERROR_LOG(rc); - OBJ_RELEASE(buffer); - OBJ_RELEASE(wireup); - return rc; - } - modex = (opal_list_t*)val->data.ptr; - numbytes = (int32_t)opal_list_get_size(modex); - if (ORTE_SUCCESS != (rc = opal_dss.pack(wireup, &numbytes, 1, OPAL_INT32))) { + } + modex = (opal_list_t*)val->data.ptr; + numbytes = (int32_t)opal_list_get_size(modex); + if (ORTE_SUCCESS != (rc = opal_dss.pack(wireup, &numbytes, 1, OPAL_INT32))) { + ORTE_ERROR_LOG(rc); + OBJ_RELEASE(buffer); + OBJ_RELEASE(wireup); + return rc; + } + OPAL_LIST_FOREACH(kv, modex, opal_value_t) { + if (ORTE_SUCCESS != (rc = opal_dss.pack(wireup, &kv, 1, OPAL_VALUE))) { ORTE_ERROR_LOG(rc); OBJ_RELEASE(buffer); OBJ_RELEASE(wireup); return rc; } - OPAL_LIST_FOREACH(kv, modex, opal_value_t) { - if (ORTE_SUCCESS != (rc = opal_dss.pack(wireup, &kv, 1, OPAL_VALUE))) { - ORTE_ERROR_LOG(rc); - OBJ_RELEASE(buffer); - OBJ_RELEASE(wireup); - return rc; - } - } - OPAL_LIST_RELEASE(modex); - OBJ_RELEASE(val); } + OPAL_LIST_RELEASE(modex); + OBJ_RELEASE(val); } } } diff -Nru openmpi-4.0.3/orte/mca/odls/default/Makefile.in openmpi-4.1.4/orte/mca/odls/default/Makefile.in --- openmpi-4.0.3/orte/mca/odls/default/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/odls/default/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -663,6 +676,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1483,6 +1499,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1515,9 +1535,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1538,6 +1567,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1622,9 +1652,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1685,6 +1712,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1698,6 +1728,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/odls/default/odls_default_component.c openmpi-4.1.4/orte/mca/odls/default/odls_default_component.c --- openmpi-4.0.3/orte/mca/odls/default/odls_default_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/odls/default/odls_default_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,6 +13,7 @@ * Copyright (c) 2015 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2017 Intel, Inc. All rights reserved. + * Copyright (c) 2022 Cisco Systems, Inc. All rights reserved * $COPYRIGHT$ * * Additional copyrights may follow @@ -60,6 +61,7 @@ /* Component open and close functions */ .mca_open_component = orte_odls_default_component_open, .mca_close_component = orte_odls_default_component_close, + .mca_register_component_params = orte_odls_default_component_register, .mca_query_component = orte_odls_default_component_query, }, .base_data = { @@ -68,6 +70,7 @@ }, }; +int orte_odls_default_maxfd = 1024; int orte_odls_default_component_open(void) @@ -75,6 +78,20 @@ return ORTE_SUCCESS; } +int orte_odls_default_component_register(void) +{ + mca_base_component_var_register(&mca_odls_default_component.version, "maxfd", + "In non-Linux environments, use this value as a maximum number of file descriptors to close when forking a new child process", + MCA_BASE_VAR_TYPE_INT, + NULL, + 0, + 0, + OPAL_INFO_LVL_6, + MCA_BASE_VAR_SCOPE_READONLY, + &orte_odls_default_maxfd); + return ORTE_SUCCESS; +} + int orte_odls_default_component_query(mca_base_module_t **module, int *priority) { /* the base open/select logic protects us against operation when diff -Nru openmpi-4.0.3/orte/mca/odls/default/odls_default.h openmpi-4.1.4/orte/mca/odls/default/odls_default.h --- openmpi-4.0.3/orte/mca/odls/default/odls_default.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/odls/default/odls_default.h 2022-05-29 09:51:40.000000000 +0000 @@ -9,6 +9,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. + * Copyright (c) 2022 Cisco Systems, Inc. All rights reserved * $COPYRIGHT$ * * Additional copyrights may follow @@ -35,6 +36,7 @@ */ int orte_odls_default_component_open(void); int orte_odls_default_component_close(void); +int orte_odls_default_component_register(void); int orte_odls_default_component_query(mca_base_module_t **module, int *priority); /* @@ -43,6 +45,11 @@ extern orte_odls_base_module_t orte_odls_default_module; ORTE_MODULE_DECLSPEC extern orte_odls_base_component_t mca_odls_default_component; +/* In non-Linux environments where we can't just see which fd's are + open (e.g., MacOS), use this value as the maximum number of FDs + to close when forking a new child process. */ +extern int orte_odls_default_maxfd; + END_C_DECLS #endif /* ORTE_ODLS_H */ diff -Nru openmpi-4.0.3/orte/mca/odls/default/odls_default_module.c openmpi-4.1.4/orte/mca/odls/default/odls_default_module.c --- openmpi-4.0.3/orte/mca/odls/default/odls_default_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/odls/default/odls_default_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2008 The University of Tennessee and The University + * Copyright (c) 2004-2022 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -11,7 +11,7 @@ * All rights reserved. * Copyright (c) 2007-2010 Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2007 Evergrid, Inc. All rights reserved. - * Copyright (c) 2008-2017 Cisco Systems, Inc. All rights reserved + * Copyright (c) 2008-2022 Cisco Systems, Inc. All rights reserved * Copyright (c) 2010 IBM Corporation. All rights reserved. * Copyright (c) 2011-2013 Los Alamos National Security, LLC. All rights * reserved. @@ -297,7 +297,11 @@ and the pipe up to the parent. */ static int close_open_file_descriptors(int write_fd, orte_iof_base_io_conf_t opts) { +#if defined(__OSX__) + DIR *dir = opendir("/dev/fd"); +#else /* Linux */ DIR *dir = opendir("/proc/self/fd"); +#endif /* defined(__OSX__) */ if (NULL == dir) { return ORTE_ERR_FILE_OPEN_FAILURE; } @@ -310,7 +314,6 @@ return ORTE_ERR_FILE_OPEN_FAILURE; } - while (NULL != (files = readdir(dir))) { if (!isdigit(files->d_name[0])) { continue; @@ -337,7 +340,6 @@ { int i; sigset_t sigs; - long fd, fdmax = sysconf(_SC_OPEN_MAX); char dir[MAXPATHLEN]; #if HAVE_SETPGID @@ -400,8 +402,27 @@ the pipe used for the IOF INTERNAL messages, and the pipe up to the parent. */ if (ORTE_SUCCESS != close_open_file_descriptors(write_fd, cd->opts)) { + /* On some versions of MacOS (e.g., 12.3.1), we have seen + sysconf(_SC_OPEN_MAX) -- and "ulimit -n" -- return very + large numbers, and sometime return -1 (which means + "unlimited"). This can result in an unreasonably large + loop over closing all FDs (especially if -1 gets + interpreted as LONG_MAX). + https://github.com/open-mpi/ompi/issues/10358 has some + links to others who have seen this kind of behavior. + + Protect against -1 and arbitrarily large values being + returned from sysconf(_SC_OPEN_MAX): use an MCA param to + cap the max value that we'll use, just in case there's an + actual reason for a user to change the built-in default + value that we're (somewhat arbitrarily) picking. */ + long fd, fdmax = sysconf(_SC_OPEN_MAX); + if (-1 == fdmax || orte_odls_default_maxfd < fdmax) { + fdmax = orte_odls_default_maxfd; + } + // close *all* file descriptors -- slow - for(fd=3; fdopts.p_internal[1] && diff -Nru openmpi-4.0.3/orte/mca/odls/Makefile.in openmpi-4.1.4/orte/mca/odls/Makefile.in --- openmpi-4.0.3/orte/mca/odls/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/odls/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -139,6 +139,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -146,6 +148,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -169,6 +172,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -271,6 +275,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -278,6 +283,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -358,6 +364,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -380,9 +387,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -392,6 +403,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -412,6 +424,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -670,6 +683,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1490,6 +1506,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1522,9 +1542,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1545,6 +1574,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1629,9 +1659,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1692,6 +1719,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1705,6 +1735,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/odls/pspawn/Makefile.in openmpi-4.1.4/orte/mca/odls/pspawn/Makefile.in --- openmpi-4.0.3/orte/mca/odls/pspawn/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/odls/pspawn/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -663,6 +676,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1483,6 +1499,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1515,9 +1535,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1538,6 +1567,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1622,9 +1652,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1685,6 +1712,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1698,6 +1728,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/odls/pspawn/odls_pspawn.c openmpi-4.1.4/orte/mca/odls/pspawn/odls_pspawn.c --- openmpi-4.0.3/orte/mca/odls/pspawn/odls_pspawn.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/odls/pspawn/odls_pspawn.c 2022-05-29 09:51:40.000000000 +0000 @@ -2,7 +2,7 @@ * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. - * Copyright (c) 2004-2008 The University of Tennessee and The University + * Copyright (c) 2004-2022 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, @@ -226,7 +226,11 @@ and the pipe up to the parent. */ static int close_open_file_descriptors(posix_spawn_file_actions_t *factions) { +#if defined(__OSX__) + DIR *dir = opendir("/dev/fd"); +#else /* Linux */ DIR *dir = opendir("/proc/self/fd"); +#endif /* defined(__OSX__) */ if (NULL == dir) { return ORTE_ERR_FILE_OPEN_FAILURE; } diff -Nru openmpi-4.0.3/orte/mca/oob/alps/Makefile.in openmpi-4.1.4/orte/mca/oob/alps/Makefile.in --- openmpi-4.0.3/orte/mca/oob/alps/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/oob/alps/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -661,6 +674,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1481,6 +1497,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1513,9 +1533,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1536,6 +1565,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1620,9 +1650,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1683,6 +1710,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1696,6 +1726,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/oob/Makefile.in openmpi-4.1.4/orte/mca/oob/Makefile.in --- openmpi-4.0.3/orte/mca/oob/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/oob/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -140,6 +140,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -147,6 +149,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -170,6 +173,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -272,6 +276,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -279,6 +284,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -359,6 +365,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -381,9 +388,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -393,6 +404,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -413,6 +425,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -670,6 +683,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1490,6 +1506,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1522,9 +1542,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1545,6 +1574,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1629,9 +1659,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1692,6 +1719,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1705,6 +1735,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/oob/tcp/Makefile.in openmpi-4.1.4/orte/mca/oob/tcp/Makefile.in --- openmpi-4.0.3/orte/mca/oob/tcp/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/oob/tcp/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -122,6 +122,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -129,6 +131,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -152,6 +155,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -254,6 +258,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -261,6 +266,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -341,6 +347,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -363,9 +370,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -375,6 +386,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -395,6 +407,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -664,6 +677,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1484,6 +1500,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1516,9 +1536,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1539,6 +1568,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1623,9 +1653,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1686,6 +1713,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1699,6 +1729,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/oob/tcp/oob_tcp_component.c openmpi-4.1.4/orte/mca/oob/tcp/oob_tcp_component.c --- openmpi-4.0.3/orte/mca/oob/tcp/oob_tcp_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/oob/tcp/oob_tcp_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -695,6 +695,9 @@ /* tell the thread to exit */ write(mca_oob_tcp_component.stop_thread[1], &i, sizeof(int)); opal_thread_join(&mca_oob_tcp_component.listen_thread, NULL); + + close(mca_oob_tcp_component.stop_thread[0]); + close(mca_oob_tcp_component.stop_thread[1]); } else { opal_output_verbose(2, orte_oob_base_framework.framework_output, "no hnp or not active"); @@ -1234,8 +1237,8 @@ */ static char **split_and_resolve(char **orig_str, char *name) { - int i, ret, save, if_index; - char **argv, *str, *tmp; + int i, n, ret, if_index, match_count, interface_count; + char **argv, **interfaces, *str, *tmp; char if_name[IF_NAMESIZE]; struct sockaddr_storage argv_inaddr, if_inaddr; uint32_t argv_prefix; @@ -1249,9 +1252,22 @@ if (NULL == argv) { return NULL; } - for (save = i = 0; NULL != argv[i]; ++i) { + interface_count = 0; + interfaces = NULL; + for (i = 0; NULL != argv[i]; ++i) { if (isalpha(argv[i][0])) { - argv[save++] = argv[i]; + /* This is an interface name. If not already in the interfaces array, add it */ + for (n = 0; n < interface_count; n++) { + if (0 == strcmp(argv[i], interfaces[n])) { + break; + } + } + if (n == interface_count) { + opal_output_verbose(20, + orte_oob_base_framework.framework_output, + "oob:tcp: Using interface: %s ", argv[i]); + opal_argv_append(&interface_count, &interfaces, argv[i]); + } continue; } @@ -1292,6 +1308,7 @@ argv_prefix); /* Go through all interfaces and see if we can find a match */ + match_count = 0; for (if_index = opal_ifbegin(); if_index >= 0; if_index = opal_ifnext(if_index)) { opal_ifindextoaddr(if_index, @@ -1300,11 +1317,27 @@ if (opal_net_samenetwork((struct sockaddr*) &argv_inaddr, (struct sockaddr*) &if_inaddr, argv_prefix)) { - break; + /* We found a match. If it's not already in the interfaces array, + add it. If it's already in the array, treat it as a match */ + match_count = match_count + 1; + opal_ifindextoname(if_index, if_name, sizeof(if_name)); + for (n = 0; n < interface_count; n++) { + if (0 == strcmp(if_name, interfaces[n])) { + break; + } + } + if (n == interface_count) { + opal_output_verbose(20, + orte_oob_base_framework.framework_output, + "oob:tcp: Found match: %s (%s)", + opal_net_get_hostname((struct sockaddr*) &if_inaddr), + if_name); + opal_argv_append(&interface_count, &interfaces, if_name); + } } } /* If we didn't find a match, keep trying */ - if (if_index < 0) { + if (0 == match_count) { orte_show_help("help-oob-tcp.txt", "invalid if_inexclude", true, name, orte_process_info.nodename, tmp, "Did not find interface matching this subnet"); @@ -1312,24 +1345,17 @@ continue; } - /* We found a match; get the name and replace it in the - argv */ - opal_ifindextoname(if_index, if_name, sizeof(if_name)); - opal_output_verbose(20, orte_oob_base_framework.framework_output, - "%s oob:tcp: Found match: %s (%s)", - ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), - opal_net_get_hostname((struct sockaddr*) &if_inaddr), - if_name); - argv[save++] = strdup(if_name); free(tmp); } - /* The list may have been compressed if there were invalid - entries, so ensure we end it with a NULL entry */ - argv[save] = NULL; + /* Mark the end of the interface name array with NULL */ + if (NULL != interfaces) { + interfaces[interface_count] = NULL; + } + free(argv); free(*orig_str); - *orig_str = opal_argv_join(argv, ','); - return argv; + *orig_str = opal_argv_join(interfaces, ','); + return interfaces; } /* OOB TCP Class instances */ diff -Nru openmpi-4.0.3/orte/mca/oob/tcp/oob_tcp_listener.c openmpi-4.1.4/orte/mca/oob/tcp/oob_tcp_listener.c --- openmpi-4.0.3/orte/mca/oob/tcp/oob_tcp_listener.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/oob/tcp/oob_tcp_listener.c 2022-05-29 09:51:40.000000000 +0000 @@ -705,8 +705,6 @@ rc = select(max + 1, &readfds, NULL, NULL, &timeout); if (!mca_oob_tcp_component.listen_thread_active) { /* we've been asked to terminate */ - close(mca_oob_tcp_component.stop_thread[0]); - close(mca_oob_tcp_component.stop_thread[1]); return NULL; } if (rc < 0) { diff -Nru openmpi-4.0.3/orte/mca/plm/alps/Makefile.in openmpi-4.1.4/orte/mca/plm/alps/Makefile.in --- openmpi-4.0.3/orte/mca/plm/alps/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/plm/alps/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -669,6 +682,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1489,6 +1505,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1521,9 +1541,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1544,6 +1573,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1628,9 +1658,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1691,6 +1718,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1704,6 +1734,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/plm/base/plm_base_launch_support.c openmpi-4.1.4/orte/mca/plm/base/plm_base_launch_support.c --- openmpi-4.0.3/orte/mca/plm/base/plm_base_launch_support.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/plm/base/plm_base_launch_support.c 2022-05-29 09:51:40.000000000 +0000 @@ -16,7 +16,8 @@ * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. * Copyright (c) 2014-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2016 IBM Corporation. All rights reserved. + * Copyright (c) 2016-2021 IBM Corporation. All rights reserved. + * Copyright (c) 2021 Nanook Consulting. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -80,6 +81,7 @@ #include "orte/mca/state/base/base.h" #include "orte/util/hostfile/hostfile.h" #include "orte/mca/odls/odls_types.h" +#include "orte/orted/orted_submit.h" #include "orte/mca/plm/base/plm_private.h" #include "orte/mca/plm/base/base.h" @@ -700,6 +702,9 @@ "%s plm:base:launch job %s is not a dynamic spawn", ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), ORTE_JOBID_PRINT(jdata->jobid))); + if (ORTE_PROC_IS_HNP) { + orte_submit_job_state_update(jdata, ORTE_JOB_STATE_RUNNING); + } goto cleanup; } @@ -862,7 +867,10 @@ opal_dss.load(&datbuf, cmpdata, cmplen); data = &datbuf; } else { - data = buffer; + orte_show_help("help-orte-runtime.txt", "failed-to-uncompress", + true, orte_process_info.nodename); + orted_failed_launch = true; + goto CLEANUP; } free(packed_data); } else { @@ -902,6 +910,8 @@ orted_failed_launch = true; goto CLEANUP; } + /* Apply any CPU filters (not preserved by the XML) */ + opal_hwloc_base_filter_cpus(topo); /* record the final topology */ t->topo = topo; @@ -1189,7 +1199,10 @@ opal_dss.load(&datbuf, cmpdata, cmplen); data = &datbuf; } else { - data = buffer; + orte_show_help("help-orte-runtime.txt", "failed-to-uncompress", + true, orte_process_info.nodename); + orted_failed_launch = true; + goto CLEANUP; } free(packed_data); } else { @@ -1252,6 +1265,8 @@ opal_pointer_array_add(orte_node_topologies, t); daemon->node->topology = t; if (NULL != topo) { + /* Apply any CPU filters (not preserved by the XML) */ + opal_hwloc_base_filter_cpus(topo); t->topo = topo; } else { /* nope - save the signature and request the complete topology from that node */ @@ -1534,16 +1549,9 @@ orte_nidmap_communicated = true; } - if (!orte_static_ports && !orte_fwd_mpirun_port) { - /* if we are using static ports, or we are forwarding - * mpirun's port, then we would have built all the - * connection info and so there is nothing to be passed. - * Otherwise, we have to pass the HNP uri so we can - * phone home */ - opal_argv_append(argc, argv, "-"OPAL_MCA_CMD_LINE_ID); - opal_argv_append(argc, argv, "orte_hnp_uri"); - opal_argv_append(argc, argv, orte_process_info.my_hnp_uri); - } + opal_argv_append(argc, argv, "-"OPAL_MCA_CMD_LINE_ID); + opal_argv_append(argc, argv, "orte_hnp_uri"); + opal_argv_append(argc, argv, orte_process_info.my_hnp_uri); /* if requested, pass our port */ if (orte_fwd_mpirun_port) { diff -Nru openmpi-4.0.3/orte/mca/plm/base/plm_base_orted_cmds.c openmpi-4.1.4/orte/mca/plm/base/plm_base_orted_cmds.c --- openmpi-4.0.3/orte/mca/plm/base/plm_base_orted_cmds.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/plm/base/plm_base_orted_cmds.c 2022-05-29 09:51:40.000000000 +0000 @@ -73,7 +73,18 @@ opal_buffer_t *cmd; orte_daemon_cmd_flag_t cmmnd; orte_grpcomm_signature_t *sig; + static int previously_called = 0; + /* If this function was previously called, attempting to shut down daemons + * again will result in connection failure messages, so do nothing. + */ + if (previously_called) { + OPAL_OUTPUT_VERBOSE((5, orte_plm_base_framework.framework_output, + "%s plm:base:orted_cmd previously called, do nothing", + ORTE_NAME_PRINT(ORTE_PROC_MY_NAME))); + return ORTE_SUCCESS; + } + previously_called = 1; OPAL_OUTPUT_VERBOSE((5, orte_plm_base_framework.framework_output, "%s plm:base:orted_cmd sending orted_exit commands", ORTE_NAME_PRINT(ORTE_PROC_MY_NAME))); diff -Nru openmpi-4.0.3/orte/mca/plm/isolated/Makefile.in openmpi-4.1.4/orte/mca/plm/isolated/Makefile.in --- openmpi-4.0.3/orte/mca/plm/isolated/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/plm/isolated/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -660,6 +673,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1480,6 +1496,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1512,9 +1532,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1535,6 +1564,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1619,9 +1649,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1682,6 +1709,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1695,6 +1725,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/plm/lsf/Makefile.in openmpi-4.1.4/orte/mca/plm/lsf/Makefile.in --- openmpi-4.0.3/orte/mca/plm/lsf/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/plm/lsf/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -664,6 +677,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1484,6 +1500,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1516,9 +1536,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1539,6 +1568,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1623,9 +1653,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1686,6 +1713,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1699,6 +1729,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/plm/Makefile.in openmpi-4.1.4/orte/mca/plm/Makefile.in --- openmpi-4.0.3/orte/mca/plm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/plm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -139,6 +139,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -146,6 +148,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -169,6 +172,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -271,6 +275,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -278,6 +283,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -358,6 +364,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -380,9 +387,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -392,6 +403,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -412,6 +424,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -672,6 +685,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1492,6 +1508,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1524,9 +1544,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1547,6 +1576,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1631,9 +1661,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1694,6 +1721,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1707,6 +1737,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/plm/rsh/Makefile.in openmpi-4.1.4/orte/mca/plm/rsh/Makefile.in --- openmpi-4.0.3/orte/mca/plm/rsh/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/plm/rsh/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -660,6 +673,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1480,6 +1496,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1512,9 +1532,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1535,6 +1564,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1619,9 +1649,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1682,6 +1709,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1695,6 +1725,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/plm/rsh/plm_rsh_module.c openmpi-4.1.4/orte/mca/plm/rsh/plm_rsh_module.c --- openmpi-4.0.3/orte/mca/plm/rsh/plm_rsh_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/plm/rsh/plm_rsh_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -14,7 +14,7 @@ * reserved. * Copyright (c) 2008-2009 Sun Microsystems, Inc. All rights reserved. * Copyright (c) 2011-2019 IBM Corporation. All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -347,6 +347,7 @@ bool found; char *lib_base=NULL, *bin_base=NULL; char *opal_prefix = getenv("OPAL_PREFIX"); + char *opal_libdir = getenv("OPAL_LIBDIR"); char* full_orted_cmd = NULL; char * rtmod; @@ -501,9 +502,9 @@ * we have to insert the orted_prefix in the right place */ (void)asprintf (&final_cmd, - "%s%s%s%s%s%s PATH=%s%s$PATH ; export PATH ; " - "LD_LIBRARY_PATH=%s%s$LD_LIBRARY_PATH ; export LD_LIBRARY_PATH ; " - "DYLD_LIBRARY_PATH=%s%s$DYLD_LIBRARY_PATH ; export DYLD_LIBRARY_PATH ; " + "%s%s%s%s%s%s%s%s%s PATH=%s%s$PATH ; export PATH ; " + "LD_LIBRARY_PATH=%s%s${LD_LIBRARY_PATH:-} ; export LD_LIBRARY_PATH ; " + "DYLD_LIBRARY_PATH=%s%s${DYLD_LIBRARY_PATH:-} ; export DYLD_LIBRARY_PATH ; " "%s %s", (NULL != mca_plm_rsh_component.chdir ? "cd " : " "), (NULL != mca_plm_rsh_component.chdir ? mca_plm_rsh_component.chdir : " "), @@ -511,6 +512,9 @@ (opal_prefix != NULL ? "OPAL_PREFIX=" : " "), (opal_prefix != NULL ? opal_prefix : " "), (opal_prefix != NULL ? " ; export OPAL_PREFIX;" : " "), + (opal_libdir != NULL ? "OPAL_LIBDIR=" : " "), + (opal_libdir != NULL ? opal_libdir : " "), + (opal_libdir != NULL ? " ; export OPAL_LIBDIR;" : " "), (NULL != bin_base ? bin_base : " "), (NULL != bin_base ? ":" : " "), (NULL != lib_base ? lib_base : " "), @@ -534,7 +538,7 @@ * we have to insert the orted_prefix in the right place */ (void)asprintf (&final_cmd, - "%s%s%s%s%s%s set path = ( %s $path ) ; " + "%s%s%s%s%s%s%s%s%s set path = ( %s $path ) ; " "if ( $?LD_LIBRARY_PATH == 1 ) " "set OMPI_have_llp ; " "if ( $?LD_LIBRARY_PATH == 0 ) " @@ -554,6 +558,9 @@ (opal_prefix != NULL ? "setenv OPAL_PREFIX " : " "), (opal_prefix != NULL ? opal_prefix : " "), (opal_prefix != NULL ? " ;" : " "), + (opal_libdir != NULL ? "setenv OPAL_LIBDIR " : " "), + (opal_libdir != NULL ? opal_libdir : " "), + (opal_libdir != NULL ? " ;" : " "), (NULL != bin_base ? bin_base : " "), (NULL != lib_base ? lib_base : " "), (NULL != lib_base ? lib_base : " "), @@ -614,6 +621,7 @@ (mca_plm_rsh_component.using_qrsh && mca_plm_rsh_component.daemonize_qrsh)) && ((!mca_plm_rsh_component.using_llspawn) || (mca_plm_rsh_component.using_llspawn && mca_plm_rsh_component.daemonize_llspawn))) { + opal_argv_append(&argc, &argv, "--daemonize"); } if (!mca_plm_rsh_component.no_tree_spawn) { diff -Nru openmpi-4.0.3/orte/mca/plm/slurm/Makefile.in openmpi-4.1.4/orte/mca/plm/slurm/Makefile.in --- openmpi-4.0.3/orte/mca/plm/slurm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/plm/slurm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -661,6 +674,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1481,6 +1497,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1513,9 +1533,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1536,6 +1565,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1620,9 +1650,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1683,6 +1710,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1696,6 +1726,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/plm/slurm/plm_slurm_module.c openmpi-4.1.4/orte/mca/plm/slurm/plm_slurm_module.c --- openmpi-4.0.3/orte/mca/plm/slurm/plm_slurm_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/plm/slurm/plm_slurm_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,6 +13,7 @@ * Copyright (c) 2007-2015 Los Alamos National Security, LLC. All rights * reserved. * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2021 Nanook Consulting. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -272,6 +273,9 @@ opal_argv_append(&argc, &argv, "--kill-on-bad-exit"); } + /* our daemons are not an MPI task */ + opal_argv_append(&argc, &argv, "--mpi=none"); + #if SLURM_CRAY_ENV /* * If in a SLURM/Cray env. make sure that Cray PMI is not pulled in, diff -Nru openmpi-4.0.3/orte/mca/plm/tm/Makefile.in openmpi-4.1.4/orte/mca/plm/tm/Makefile.in --- openmpi-4.0.3/orte/mca/plm/tm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/plm/tm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -668,6 +681,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1488,6 +1504,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1520,9 +1540,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1543,6 +1572,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1627,9 +1657,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1690,6 +1717,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1703,6 +1733,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/ras/alps/help-ras-alps.txt openmpi-4.1.4/orte/mca/ras/alps/help-ras-alps.txt --- openmpi-4.0.3/orte/mca/ras/alps/help-ras-alps.txt 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ras/alps/help-ras-alps.txt 2022-05-29 09:51:40.000000000 +0000 @@ -10,6 +10,8 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. +# Copyrigth (c) 2020 Triad National Security, LLC. All rights +# reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -25,14 +27,15 @@ OMPI_ALPS_RESID BASIL_RESERVATION_ID + COBALT_JOBID However, it was unable to find either one of these variables. #This is a fatal error. [alps-env-var-invalid] While trying to determine what resources are available, the ALPS -resource allocator uses either the OMPI_ALPS_RESID or the -BASIL_RESERVATION_ID environment variable. +resource allocator uses either the OMPI_ALPS_RESID, +BASIL_RESERVATION_ID, or COBALT_JOBID environment variable. However, an error was encountered when trying to parse the variable: diff -Nru openmpi-4.0.3/orte/mca/ras/alps/Makefile.in openmpi-4.1.4/orte/mca/ras/alps/Makefile.in --- openmpi-4.0.3/orte/mca/ras/alps/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ras/alps/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -671,6 +684,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1491,6 +1507,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1523,9 +1543,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1546,6 +1575,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1630,9 +1660,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1693,6 +1720,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1706,6 +1736,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/ras/alps/ras_alps_component.c openmpi-4.1.4/orte/mca/ras/alps/ras_alps_component.c --- openmpi-4.0.3/orte/mca/ras/alps/ras_alps_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ras/alps/ras_alps_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,6 +13,8 @@ * Copyright (c) 2008 UT-Battelle, LLC * Copyright (c) 2011-2015 Los Alamos National Security, LLC. All rights * reserved. + * Copyright (c) 2020 Triad National Security, LLC. All rights + * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -104,7 +106,12 @@ if (NULL != (id = getenv("BATCH_PARTITION_ID"))) { return strtoul(id, NULL, 10); } - if (NULL != (id = getenv("PBS_JOBID"))) { + + id = getenv("PBS_JOBID"); + if (NULL == id) { + id = getenv("COBALT_JOBID"); + } + if (NULL != id) { char *prepped_jid = prep_job_id(id); if (NULL == prepped_jid) { /* out of resources */ diff -Nru openmpi-4.0.3/orte/mca/ras/base/ras_base_node.c openmpi-4.1.4/orte/mca/ras/base/ras_base_node.c --- openmpi-4.0.3/orte/mca/ras/base/ras_base_node.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ras/base/ras_base_node.c 2022-05-29 09:51:40.000000000 +0000 @@ -11,7 +11,7 @@ * All rights reserved. * Copyright (c) 2011-2017 Los Alamos National Security, LLC. All rights * reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. * $COPYRIGHT$ @@ -98,6 +98,7 @@ hnp_node->name = strdup("mpirun"); skiphnp = true; ORTE_SET_MAPPING_DIRECTIVE(orte_rmaps_base.mapping, ORTE_MAPPING_NO_USE_LOCAL); + ORTE_FLAG_SET(hnp_node, ORTE_NODE_NON_USABLE); // leave this node out of mapping operations } } } diff -Nru openmpi-4.0.3/orte/mca/ras/gridengine/Makefile.in openmpi-4.1.4/orte/mca/ras/gridengine/Makefile.in --- openmpi-4.0.3/orte/mca/ras/gridengine/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ras/gridengine/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -666,6 +679,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1486,6 +1502,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1518,9 +1538,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1541,6 +1570,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1625,9 +1655,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1688,6 +1715,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1701,6 +1731,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/ras/lsf/Makefile.in openmpi-4.1.4/orte/mca/ras/lsf/Makefile.in --- openmpi-4.0.3/orte/mca/ras/lsf/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ras/lsf/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -662,6 +675,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1482,6 +1498,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1514,9 +1534,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1537,6 +1566,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1621,9 +1651,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1684,6 +1711,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1697,6 +1727,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/ras/Makefile.in openmpi-4.1.4/orte/mca/ras/Makefile.in --- openmpi-4.0.3/orte/mca/ras/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ras/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -139,6 +139,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -146,6 +148,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -169,6 +172,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -271,6 +275,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -278,6 +283,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -358,6 +364,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -380,9 +387,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -392,6 +403,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -412,6 +424,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -670,6 +683,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1490,6 +1506,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1522,9 +1542,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1545,6 +1574,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1629,9 +1659,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1692,6 +1719,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1705,6 +1735,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/ras/simulator/Makefile.in openmpi-4.1.4/orte/mca/ras/simulator/Makefile.in --- openmpi-4.0.3/orte/mca/ras/simulator/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ras/simulator/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -662,6 +675,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1482,6 +1498,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1514,9 +1534,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1537,6 +1566,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1621,9 +1651,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1684,6 +1711,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1697,6 +1727,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/ras/slurm/Makefile.in openmpi-4.1.4/orte/mca/ras/slurm/Makefile.in --- openmpi-4.0.3/orte/mca/ras/slurm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ras/slurm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -669,6 +682,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1489,6 +1505,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1521,9 +1541,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1544,6 +1573,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1628,9 +1658,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1691,6 +1718,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1704,6 +1734,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/ras/tm/Makefile.in openmpi-4.1.4/orte/mca/ras/tm/Makefile.in --- openmpi-4.0.3/orte/mca/ras/tm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/ras/tm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -670,6 +683,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1490,6 +1506,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1522,9 +1542,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1545,6 +1574,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1629,9 +1659,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1692,6 +1719,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1705,6 +1735,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/regx/fwd/Makefile.in openmpi-4.1.4/orte/mca/regx/fwd/Makefile.in --- openmpi-4.0.3/orte/mca/regx/fwd/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/regx/fwd/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -647,6 +660,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1467,6 +1483,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1499,9 +1519,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1522,6 +1551,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1606,9 +1636,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1669,6 +1696,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1682,6 +1712,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/regx/Makefile.in openmpi-4.1.4/orte/mca/regx/Makefile.in --- openmpi-4.0.3/orte/mca/regx/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/regx/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -651,6 +664,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1471,6 +1487,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1503,9 +1523,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1526,6 +1555,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1610,9 +1640,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1673,6 +1700,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1686,6 +1716,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/regx/naive/Makefile.in openmpi-4.1.4/orte/mca/regx/naive/Makefile.in --- openmpi-4.0.3/orte/mca/regx/naive/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/regx/naive/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -647,6 +660,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1467,6 +1483,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1499,9 +1519,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1522,6 +1551,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1606,9 +1636,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1669,6 +1696,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1682,6 +1712,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/regx/regx.h openmpi-4.1.4/orte/mca/regx/regx.h --- openmpi-4.0.3/orte/mca/regx/regx.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/regx/regx.h 2022-05-29 09:51:40.000000000 +0000 @@ -5,6 +5,7 @@ * reserved. * Copyright (c) 2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2021 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -71,8 +72,6 @@ * into the orte_node_pool array */ typedef int (*orte_regx_base_module_decode_daemon_nodemap_fn_t)(opal_buffer_t *buffer); -typedef int (*orte_regx_base_module_build_daemon_nidmap_fn_t)(void); - /* create a regular expression describing the ppn for a job */ typedef int (*orte_regx_base_module_generate_ppn_fn_t)(orte_job_t *jdata, char **ppn); @@ -93,7 +92,6 @@ orte_regx_base_module_extract_node_names_fn_t extract_node_names; orte_regx_base_module_encode_nodemap_fn_t encode_nodemap; orte_regx_base_module_decode_daemon_nodemap_fn_t decode_daemon_nodemap; - orte_regx_base_module_build_daemon_nidmap_fn_t build_daemon_nidmap; orte_regx_base_module_generate_ppn_fn_t generate_ppn; orte_regx_base_module_parse_ppn_fn_t parse_ppn; orte_regx_base_module_finalize_fn_t finalize; diff -Nru openmpi-4.0.3/orte/mca/regx/reverse/Makefile.in openmpi-4.1.4/orte/mca/regx/reverse/Makefile.in --- openmpi-4.0.3/orte/mca/regx/reverse/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/regx/reverse/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -649,6 +662,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1469,6 +1485,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1501,9 +1521,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1524,6 +1553,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1608,9 +1638,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1671,6 +1698,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1684,6 +1714,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/rmaps/base/help-orte-rmaps-base.txt openmpi-4.1.4/orte/mca/rmaps/base/help-orte-rmaps-base.txt --- openmpi-4.0.3/orte/mca/rmaps/base/help-orte-rmaps-base.txt 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rmaps/base/help-orte-rmaps-base.txt 2022-05-29 09:51:40.000000000 +0000 @@ -349,7 +349,7 @@ # [mapping-too-low] A request for multiple cpus-per-proc was given, but a directive -was also give to map to an object level that has less cpus than +was also given to map to an object level that has less cpus than requested ones: #cpus-per-proc: %d @@ -405,7 +405,7 @@ # [mapping-too-low-init] A request for multiple cpus-per-proc was given, but a directive -was also give to map to an object level that cannot support that +was also given to map to an object level that cannot support that directive. Please specify a mapping level that has more than one cpu, or diff -Nru openmpi-4.0.3/orte/mca/rmaps/base/rmaps_base_map_job.c openmpi-4.1.4/orte/mca/rmaps/base/rmaps_base_map_job.c --- openmpi-4.0.3/orte/mca/rmaps/base/rmaps_base_map_job.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rmaps/base/rmaps_base_map_job.c 2022-05-29 09:51:40.000000000 +0000 @@ -596,6 +596,9 @@ ORTE_VPID_PRINT(p0->name.vpid), ORTE_VPID_PRINT(proc->name.vpid), opal_hwloc_base_print_locality(locality)); + if (NULL != procbitmap) { + free(procbitmap); + } } } opal_output(orte_clean_output, "\t\n"); @@ -603,9 +606,6 @@ if (NULL != p0bitmap) { free(p0bitmap); } - if (NULL != procbitmap) { - free(procbitmap); - } } } else { opal_output(orte_clean_output, " Data for JOB %s offset %s Total slots allocated %lu", diff -Nru openmpi-4.0.3/orte/mca/rmaps/base/rmaps_base_ranking.c openmpi-4.1.4/orte/mca/rmaps/base/rmaps_base_ranking.c --- openmpi-4.0.3/orte/mca/rmaps/base/rmaps_base_ranking.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rmaps/base/rmaps_base_ranking.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,9 +10,10 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2011-2017 Cisco Systems, Inc. All rights reserved - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -137,7 +138,13 @@ } /* protect against bozo case */ locale = NULL; - if (!orte_get_attribute(&proc->attributes, ORTE_PROC_HWLOC_LOCALE, (void**)&locale, OPAL_PTR)) { + if (!orte_get_attribute(&proc->attributes, ORTE_PROC_HWLOC_LOCALE, (void**)&locale, OPAL_PTR) || + NULL == locale) { + /* all mappers are _required_ to set the locale where the proc + * has been mapped - it is therefore an error for this attribute + * not to be set. Likewise, only a programming error could allow + * the attribute to be set to a NULL value - however, we add that + * conditional here to silence any compiler warnings */ ORTE_ERROR_LOG(ORTE_ERROR); return ORTE_ERROR; } @@ -175,6 +182,11 @@ } } } + + /* Are all the procs ranked? we don't want to crash on INVALID ranks */ + if (cnt < app->num_procs) { + return ORTE_ERR_FAILED_TO_MAP; + } } return ORTE_SUCCESS; @@ -258,7 +270,13 @@ } /* protect against bozo case */ locale = NULL; - if (!orte_get_attribute(&proc->attributes, ORTE_PROC_HWLOC_LOCALE, (void**)&locale, OPAL_PTR)) { + if (!orte_get_attribute(&proc->attributes, ORTE_PROC_HWLOC_LOCALE, (void**)&locale, OPAL_PTR) || + NULL == locale) { + /* all mappers are _required_ to set the locale where the proc + * has been mapped - it is therefore an error for this attribute + * not to be set. Likewise, only a programming error could allow + * the attribute to be set to a NULL value - however, we add that + * conditional here to silence any compiler warnings */ ORTE_ERROR_LOG(ORTE_ERROR); return ORTE_ERROR; } @@ -293,6 +311,11 @@ } } } + + /* Are all the procs ranked? we don't want to crash on INVALID ranks */ + if (cnt < app->num_procs) { + return ORTE_ERR_FAILED_TO_MAP; + } } return ORTE_SUCCESS; @@ -308,11 +331,12 @@ orte_vpid_t num_ranked=0; orte_node_t *node; orte_proc_t *proc, *pptr; - orte_vpid_t vpid, np; + orte_vpid_t vpid; int cnt; opal_pointer_array_t objs; hwloc_obj_t locale; orte_app_idx_t napp; + bool noassign; if (ORTE_RANKING_SPAN & ORTE_GET_RANKING_DIRECTIVE(jdata->map->ranking)) { return rank_span(jdata, target, cache_level); @@ -372,92 +396,106 @@ * of procs on the node can't be used to tell us when we * are done. Instead, we have to just keep going until all * procs are ranked - which means we have to make one extra - * pass thru the loop + * pass thru the loop. In addition, if we pass thru the entire + * loop without assigning anything then we are done * * Perhaps someday someone will come up with a more efficient * algorithm, but this works for now. */ - i = 0; - while (cnt < app->num_procs && i < (int)node->num_procs) { - /* get the next object */ - obj = (hwloc_obj_t)opal_pointer_array_get_item(&objs, i % num_objs); - if (NULL == obj) { - break; - } - /* scan across the procs and find the one that is on this object */ - np = 0; - for (j=0; np < node->num_procs && j < node->procs->size && cnt < app->num_procs; j++) { - if (NULL == (proc = (orte_proc_t*)opal_pointer_array_get_item(node->procs, j))) { - continue; - } - np++; - /* ignore procs from other jobs */ - if (proc->name.jobid != jdata->jobid) { - opal_output_verbose(5, orte_rmaps_base_framework.framework_output, - "mca:rmaps:rank_by skipping proc %s - from another job, num_ranked %d", - ORTE_NAME_PRINT(&proc->name), num_ranked); - continue; - } - /* ignore procs that are already ranked */ - if (ORTE_VPID_INVALID != proc->name.vpid) { - opal_output_verbose(5, orte_rmaps_base_framework.framework_output, - "mca:rmaps:rank_by skipping proc %s - already ranked, num_ranked %d", - ORTE_NAME_PRINT(&proc->name), num_ranked); - continue; - } - /* ignore procs from other apps */ - if (proc->app_idx != app->idx) { - opal_output_verbose(5, orte_rmaps_base_framework.framework_output, - "mca:rmaps:rank_by skipping proc %s - from another app, num_ranked %d", - ORTE_NAME_PRINT(&proc->name), num_ranked); - continue; - } - /* protect against bozo case */ - locale = NULL; - if (!orte_get_attribute(&proc->attributes, ORTE_PROC_HWLOC_LOCALE, (void**)&locale, OPAL_PTR)) { - ORTE_ERROR_LOG(ORTE_ERROR); - return ORTE_ERROR; + while (cnt < app->num_procs) { + noassign = true; + for (i=0; i < num_objs && cnt < app->num_procs; i++) { + /* get the next object */ + obj = (hwloc_obj_t)opal_pointer_array_get_item(&objs, i); + if (NULL == obj) { + break; } - /* ignore procs not on this object */ - if (NULL == locale || - !hwloc_bitmap_intersects(obj->cpuset, locale->cpuset)) { + /* scan across the procs and find the first unassigned one that includes this object */ + for (j=0; j < node->procs->size && cnt < app->num_procs; j++) { + if (NULL == (proc = (orte_proc_t*)opal_pointer_array_get_item(node->procs, j))) { + continue; + } + /* ignore procs from other jobs */ + if (proc->name.jobid != jdata->jobid) { + opal_output_verbose(5, orte_rmaps_base_framework.framework_output, + "mca:rmaps:rank_by skipping proc %s - from another job, num_ranked %d", + ORTE_NAME_PRINT(&proc->name), num_ranked); + continue; + } + /* ignore procs that are already ranked */ + if (ORTE_VPID_INVALID != proc->name.vpid) { + opal_output_verbose(5, orte_rmaps_base_framework.framework_output, + "mca:rmaps:rank_by skipping proc %s - already ranked, num_ranked %d", + ORTE_NAME_PRINT(&proc->name), num_ranked); + continue; + } + /* ignore procs from other apps - we will get to them */ + if (proc->app_idx != app->idx) { + opal_output_verbose(5, orte_rmaps_base_framework.framework_output, + "mca:rmaps:rank_by skipping proc %s - from another app, num_ranked %d", + ORTE_NAME_PRINT(&proc->name), num_ranked); + continue; + } + /* protect against bozo case */ + locale = NULL; + if (!orte_get_attribute(&proc->attributes, ORTE_PROC_HWLOC_LOCALE, (void**)&locale, OPAL_PTR) || + NULL == locale) { + /* all mappers are _required_ to set the locale where the proc + * has been mapped - it is therefore an error for this attribute + * not to be set. Likewise, only a programming error could allow + * the attribute to be set to a NULL value - however, we add that + * conditional here to silence any compiler warnings */ + ORTE_ERROR_LOG(ORTE_ERROR); + return ORTE_ERROR; + } + /* ignore procs not on this object */ + if (!hwloc_bitmap_intersects(obj->cpuset, locale->cpuset)) { + opal_output_verbose(5, orte_rmaps_base_framework.framework_output, + "mca:rmaps:rank_by: proc at position %d is not on object %d", + j, i); + continue; + } + /* assign the vpid */ + proc->name.vpid = vpid++; + if (0 == cnt) { + app->first_rank = proc->name.vpid; + } + cnt++; + noassign = false; opal_output_verbose(5, orte_rmaps_base_framework.framework_output, - "mca:rmaps:rank_by: proc at position %d is not on object %d", - j, i); - continue; - } - /* assign the vpid */ - proc->name.vpid = vpid++; - if (0 == cnt) { - app->first_rank = proc->name.vpid; - } - cnt++; - opal_output_verbose(5, orte_rmaps_base_framework.framework_output, - "mca:rmaps:rank_by: proc in position %d is on object %d assigned rank %s", - j, i, ORTE_VPID_PRINT(proc->name.vpid)); - /* insert the proc into the jdata array */ - if (NULL != (pptr = (orte_proc_t*)opal_pointer_array_get_item(jdata->procs, proc->name.vpid))) { - OBJ_RELEASE(pptr); - } - OBJ_RETAIN(proc); - if (ORTE_SUCCESS != (rc = opal_pointer_array_set_item(jdata->procs, proc->name.vpid, proc))) { - ORTE_ERROR_LOG(rc); - OBJ_DESTRUCT(&objs); - return rc; + "mca:rmaps:rank_by: proc in position %d is on object %d assigned rank %s", + j, i, ORTE_VPID_PRINT(proc->name.vpid)); + /* insert the proc into the jdata array */ + if (NULL != (pptr = (orte_proc_t*)opal_pointer_array_get_item(jdata->procs, proc->name.vpid))) { + OBJ_RELEASE(pptr); + } + OBJ_RETAIN(proc); + if (ORTE_SUCCESS != (rc = opal_pointer_array_set_item(jdata->procs, proc->name.vpid, proc))) { + ORTE_ERROR_LOG(rc); + OBJ_DESTRUCT(&objs); + return rc; + } + num_ranked++; + /* track where the highest vpid landed - this is our + * new bookmark + */ + jdata->bookmark = node; + /* move to next object */ + break; } - num_ranked++; - /* track where the highest vpid landed - this is our - * new bookmark - */ - jdata->bookmark = node; - /* move to next object */ + } + if (noassign) { break; } - i++; } } /* cleanup */ OBJ_DESTRUCT(&objs); + + /* Are all the procs ranked? we don't want to crash on INVALID ranks */ + if (cnt < app->num_procs) { + return ORTE_ERR_FAILED_TO_MAP; + } } return ORTE_SUCCESS; } diff -Nru openmpi-4.0.3/orte/mca/rmaps/base/rmaps_base_support_fns.c openmpi-4.1.4/orte/mca/rmaps/base/rmaps_base_support_fns.c --- openmpi-4.0.3/orte/mca/rmaps/base/rmaps_base_support_fns.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rmaps/base/rmaps_base_support_fns.c 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ * Copyright (c) 2011 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011-2012 Los Alamos National Security, LLC. * All rights reserved. - * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2014-2020 Intel, Inc. All rights reserved. * Copyright (c) 2016 IBM Corporation. All rights reserved. * $COPYRIGHT$ * @@ -160,9 +160,15 @@ /* if this is NOT a managed allocation, then we use the nodes * that were specified for this app - there is no need to collect - * all available nodes and "filter" them + * all available nodes and "filter" them. + * + * However, if it is a managed allocation AND the hostfile or the hostlist was + * provided, those take precedence, so process them and filter as we normally do. */ - if (!orte_managed_allocation) { + if ( !orte_managed_allocation || + (orte_managed_allocation && + (orte_get_attribute(&app->attributes, ORTE_APP_DASH_HOST, (void**)&hosts, OPAL_STRING) || + orte_get_attribute(&app->attributes, ORTE_APP_HOSTFILE, (void**)&hosts, OPAL_STRING)))) { OBJ_CONSTRUCT(&nodes, opal_list_t); /* if the app provided a dash-host, and we are not treating * them as requested or "soft" locations, then use those nodes @@ -314,8 +320,12 @@ /* the list is empty - if the HNP is allocated, then add it */ if (orte_hnp_is_allocated) { nd = (orte_node_t*)opal_pointer_array_get_item(orte_node_pool, 0); - OBJ_RETAIN(nd); - opal_list_append(allocated_nodes, &nd->super); + if (!ORTE_FLAG_TEST(nd, ORTE_NODE_NON_USABLE)) { + OBJ_RETAIN(nd); + opal_list_append(allocated_nodes, &nd->super); + } else { + nd = NULL; + } } else { nd = NULL; } diff -Nru openmpi-4.0.3/orte/mca/rmaps/Makefile.in openmpi-4.1.4/orte/mca/rmaps/Makefile.in --- openmpi-4.0.3/orte/mca/rmaps/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rmaps/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -141,6 +141,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -148,6 +150,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -171,6 +174,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -273,6 +277,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -280,6 +285,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -360,6 +366,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -382,9 +389,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -394,6 +405,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -414,6 +426,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -675,6 +688,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1495,6 +1511,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1527,9 +1547,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1550,6 +1579,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1634,9 +1664,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1697,6 +1724,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1710,6 +1740,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/rmaps/mindist/Makefile.in openmpi-4.1.4/orte/mca/rmaps/mindist/Makefile.in --- openmpi-4.0.3/orte/mca/rmaps/mindist/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rmaps/mindist/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -665,6 +678,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1485,6 +1501,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1517,9 +1537,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1540,6 +1569,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1624,9 +1654,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1687,6 +1714,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1700,6 +1730,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/rmaps/ppr/Makefile.in openmpi-4.1.4/orte/mca/rmaps/ppr/Makefile.in --- openmpi-4.0.3/orte/mca/rmaps/ppr/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rmaps/ppr/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -651,6 +664,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1471,6 +1487,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1503,9 +1523,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1526,6 +1555,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1610,9 +1640,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1673,6 +1700,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1686,6 +1716,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/rmaps/rank_file/Makefile.in openmpi-4.1.4/orte/mca/rmaps/rank_file/Makefile.in --- openmpi-4.0.3/orte/mca/rmaps/rank_file/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rmaps/rank_file/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -123,6 +123,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -130,6 +132,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -153,6 +156,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -255,6 +259,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -262,6 +267,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -342,6 +348,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -364,9 +371,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -376,6 +387,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -396,6 +408,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -678,6 +691,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1498,6 +1514,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1530,9 +1550,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1553,6 +1582,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1637,9 +1667,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1700,6 +1727,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1713,6 +1743,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/rmaps/resilient/Makefile.in openmpi-4.1.4/orte/mca/rmaps/resilient/Makefile.in --- openmpi-4.0.3/orte/mca/rmaps/resilient/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rmaps/resilient/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -110,6 +110,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -117,6 +119,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -140,6 +143,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -242,6 +246,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -249,6 +254,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -329,6 +335,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -351,9 +358,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -363,6 +374,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -383,6 +395,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -655,6 +668,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1475,6 +1491,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1507,9 +1527,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1530,6 +1559,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1614,9 +1644,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1677,6 +1704,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1690,6 +1720,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/rmaps/round_robin/Makefile.in openmpi-4.1.4/orte/mca/rmaps/round_robin/Makefile.in --- openmpi-4.0.3/orte/mca/rmaps/round_robin/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rmaps/round_robin/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -667,6 +680,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1487,6 +1503,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1519,9 +1539,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1542,6 +1571,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1626,9 +1656,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1689,6 +1716,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1702,6 +1732,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/rmaps/round_robin/rmaps_rr_assign.c openmpi-4.1.4/orte/mca/rmaps/round_robin/rmaps_rr_assign.c --- openmpi-4.0.3/orte/mca/rmaps/round_robin/rmaps_rr_assign.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rmaps/round_robin/rmaps_rr_assign.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,6 +13,7 @@ * Copyright (c) 2013-2017 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2020 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -120,6 +121,9 @@ /* get the number of objects of this type on this node */ nobjs = opal_hwloc_base_get_nbobjs_by_type(node->topology->topo, target, cache_level, OPAL_HWLOC_AVAILABLE); if (0 == nobjs) { + opal_output_verbose(2, orte_rmaps_base_framework.framework_output, + "mca:rmaps:rr: found NO %s objects on node %s", + hwloc_obj_type_string(target), node->name); continue; } opal_output_verbose(2, orte_rmaps_base_framework.framework_output, diff -Nru openmpi-4.0.3/orte/mca/rmaps/seq/Makefile.in openmpi-4.1.4/orte/mca/rmaps/seq/Makefile.in --- openmpi-4.0.3/orte/mca/rmaps/seq/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rmaps/seq/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -661,6 +674,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1481,6 +1497,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1513,9 +1533,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1536,6 +1565,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1620,9 +1650,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1683,6 +1710,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1696,6 +1726,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/rmaps/seq/rmaps_seq.c openmpi-4.1.4/orte/mca/rmaps/seq/rmaps_seq.c --- openmpi-4.0.3/orte/mca/rmaps/seq/rmaps_seq.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rmaps/seq/rmaps_seq.c 2022-05-29 09:51:40.000000000 +0000 @@ -105,7 +105,7 @@ opal_list_t node_list, *seq_list, sq_list; orte_proc_t *proc; mca_base_component_t *c = &mca_rmaps_seq_component.base_version; - char *hosts = NULL, *sep, *eptr; + char *hosts = NULL, *sep, *eptr, *membind_opt; FILE *fp; opal_hwloc_resource_type_t rtype; @@ -189,6 +189,23 @@ eptr--; } *(eptr+1) = 0; + /* + * If the submitted LSF job has memory binding related resource requirement, after + * the cpu id list there are memory binding options. + * + * The following is the format of LSB_AFFINITY_HOSTFILE file: + * + * Host1 0,1,2,3 0 2 + * Host1 4,5,6,7 1 2 + * + * Each line includes: host_name, cpu_id_list, NUMA_node_id_list, and memory_policy. + * In this fix we will drop the last two sections (NUMA_node_id_list and memory_policy) + * of each line and keep them in 'membind_opt' for future use. + */ + if (NULL != (membind_opt = strchr(sep, ' '))) { + *membind_opt = '\0'; + membind_opt++; + } sq->cpuset = strdup(sep); } diff -Nru openmpi-4.0.3/orte/mca/rml/Makefile.in openmpi-4.1.4/orte/mca/rml/Makefile.in --- openmpi-4.0.3/orte/mca/rml/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rml/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -139,6 +139,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -146,6 +148,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -169,6 +172,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -271,6 +275,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -278,6 +283,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -358,6 +364,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -380,9 +387,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -392,6 +403,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -412,6 +424,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -670,6 +683,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1490,6 +1506,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1522,9 +1542,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1545,6 +1574,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1629,9 +1659,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1692,6 +1719,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1705,6 +1735,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/rml/oob/Makefile.in openmpi-4.1.4/orte/mca/rml/oob/Makefile.in --- openmpi-4.0.3/orte/mca/rml/oob/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rml/oob/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -657,6 +670,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1477,6 +1493,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1509,9 +1529,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1532,6 +1561,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1616,9 +1646,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1679,6 +1706,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1692,6 +1722,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/routed/binomial/Makefile.in openmpi-4.1.4/orte/mca/routed/binomial/Makefile.in --- openmpi-4.0.3/orte/mca/routed/binomial/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/routed/binomial/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -112,6 +112,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -119,6 +121,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -142,6 +145,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -244,6 +248,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -251,6 +256,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -331,6 +337,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -353,9 +360,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -365,6 +376,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -385,6 +397,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -654,6 +667,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1474,6 +1490,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1506,9 +1526,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1529,6 +1558,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1613,9 +1643,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1676,6 +1703,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1689,6 +1719,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/routed/direct/Makefile.in openmpi-4.1.4/orte/mca/routed/direct/Makefile.in --- openmpi-4.0.3/orte/mca/routed/direct/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/routed/direct/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -110,6 +110,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -117,6 +119,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -140,6 +143,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -242,6 +246,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -249,6 +254,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -329,6 +335,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -351,9 +358,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -363,6 +374,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -383,6 +395,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -652,6 +665,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1472,6 +1488,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1504,9 +1524,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1527,6 +1556,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1611,9 +1641,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1674,6 +1701,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1687,6 +1717,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/routed/Makefile.in openmpi-4.1.4/orte/mca/routed/Makefile.in --- openmpi-4.0.3/orte/mca/routed/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/routed/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -649,6 +662,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1469,6 +1485,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1501,9 +1521,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1524,6 +1553,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1608,9 +1638,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1671,6 +1698,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1684,6 +1714,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/routed/radix/Makefile.in openmpi-4.1.4/orte/mca/routed/radix/Makefile.in --- openmpi-4.0.3/orte/mca/routed/radix/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/routed/radix/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -110,6 +110,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -117,6 +119,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -140,6 +143,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -242,6 +246,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -249,6 +254,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -329,6 +335,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -351,9 +358,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -363,6 +374,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -383,6 +395,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -651,6 +664,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1471,6 +1487,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1503,9 +1523,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1526,6 +1555,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1610,9 +1640,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1673,6 +1700,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1686,6 +1716,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/rtc/base/help-orte-rtc-base.txt openmpi-4.1.4/orte/mca/rtc/base/help-orte-rtc-base.txt --- openmpi-4.0.3/orte/mca/rtc/base/help-orte-rtc-base.txt 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rtc/base/help-orte-rtc-base.txt 2022-05-29 09:51:40.000000000 +0000 @@ -243,7 +243,7 @@ # [mapping-too-low] A request for multiple cpus-per-proc was given, but a directive -was also give to map to an object level that has less cpus than +was also given to map to an object level that has less cpus than requested ones: #cpus-per-proc: %d diff -Nru openmpi-4.0.3/orte/mca/rtc/hwloc/Makefile.in openmpi-4.1.4/orte/mca/rtc/hwloc/Makefile.in --- openmpi-4.0.3/orte/mca/rtc/hwloc/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rtc/hwloc/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -651,6 +664,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1471,6 +1487,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1503,9 +1523,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1526,6 +1555,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1610,9 +1640,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1673,6 +1700,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1686,6 +1716,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/rtc/Makefile.in openmpi-4.1.4/orte/mca/rtc/Makefile.in --- openmpi-4.0.3/orte/mca/rtc/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/rtc/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -648,6 +661,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1468,6 +1484,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1500,9 +1520,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1523,6 +1552,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1607,9 +1637,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1670,6 +1697,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1683,6 +1713,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/schizo/alps/Makefile.in openmpi-4.1.4/orte/mca/schizo/alps/Makefile.in --- openmpi-4.0.3/orte/mca/schizo/alps/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/schizo/alps/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -648,6 +661,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1468,6 +1484,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1500,9 +1520,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1523,6 +1552,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1607,9 +1637,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1670,6 +1697,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1683,6 +1713,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/schizo/flux/Makefile.in openmpi-4.1.4/orte/mca/schizo/flux/Makefile.in --- openmpi-4.0.3/orte/mca/schizo/flux/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/schizo/flux/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -648,6 +661,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1468,6 +1484,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1500,9 +1520,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1523,6 +1552,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1607,9 +1637,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1670,6 +1697,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1683,6 +1713,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/schizo/jsm/configure.m4 openmpi-4.1.4/orte/mca/schizo/jsm/configure.m4 --- openmpi-4.0.3/orte/mca/schizo/jsm/configure.m4 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/orte/mca/schizo/jsm/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,31 @@ +# -*- shell-script -*- +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2011-2013 Los Alamos National Security, LLC. +# All rights reserved. +# Copyright (c) 2016 Intel, Inc. All rights reserved +# Copyright (c) 2017-2019 IBM Corporation. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# MCA_schizo_jsm_CONFIG([action-if-found], [action-if-not-found]) +# ----------------------------------------------------------- +AC_DEFUN([MCA_orte_schizo_jsm_CONFIG],[ + AC_CONFIG_FILES([orte/mca/schizo/jsm/Makefile]) + + # Nothing to do for now. +])dnl diff -Nru openmpi-4.0.3/orte/mca/schizo/jsm/Makefile.am openmpi-4.1.4/orte/mca/schizo/jsm/Makefile.am --- openmpi-4.0.3/orte/mca/schizo/jsm/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/orte/mca/schizo/jsm/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,37 @@ +# +# Copyright (c) 2016 Intel, Inc. All rights reserved. +# Copyright (c) 2017-2019 IBM Corporation. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +sources = \ + schizo_jsm_component.c \ + schizo_jsm.h \ + schizo_jsm.c + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). + +if MCA_BUILD_orte_schizo_jsm_DSO +component_noinst = +component_install = mca_schizo_jsm.la +else +component_noinst = libmca_schizo_jsm.la +component_install = +endif + +mcacomponentdir = $(ortelibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_schizo_jsm_la_SOURCES = $(sources) +mca_schizo_jsm_la_LDFLAGS = -module -avoid-version +mca_schizo_jsm_la_LIBADD = $(top_builddir)/orte/lib@ORTE_LIB_PREFIX@open-rte.la + +noinst_LTLIBRARIES = $(component_noinst) +libmca_schizo_jsm_la_SOURCES = $(sources) +libmca_schizo_jsm_la_LDFLAGS = -module -avoid-version + diff -Nru openmpi-4.0.3/orte/mca/schizo/jsm/Makefile.in openmpi-4.1.4/orte/mca/schizo/jsm/Makefile.in --- openmpi-4.0.3/orte/mca/schizo/jsm/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/orte/mca/schizo/jsm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,2105 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# +# Copyright (c) 2016 Intel, Inc. All rights reserved. +# Copyright (c) 2017-2019 IBM Corporation. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = orte/mca/schizo/jsm +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/c_weak_symbols.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ + $(top_srcdir)/config/ompi_check_libfca.m4 \ + $(top_srcdir)/config/ompi_check_libhcoll.m4 \ + $(top_srcdir)/config/ompi_check_lustre.m4 \ + $(top_srcdir)/config/ompi_check_mxm.m4 \ + $(top_srcdir)/config/ompi_check_psm.m4 \ + $(top_srcdir)/config/ompi_check_psm2.m4 \ + $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ + $(top_srcdir)/config/ompi_check_ucx.m4 \ + $(top_srcdir)/config/ompi_config_files.m4 \ + $(top_srcdir)/config/ompi_configure_options.m4 \ + $(top_srcdir)/config/ompi_contrib.m4 \ + $(top_srcdir)/config/ompi_cxx_find_exception_flags.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_parameters.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_repository.m4 \ + $(top_srcdir)/config/ompi_cxx_have_exceptions.m4 \ + $(top_srcdir)/config/ompi_endpoint_tag.m4 \ + $(top_srcdir)/config/ompi_ext.m4 \ + $(top_srcdir)/config/ompi_find_mpi_aint_count_offset.m4 \ + $(top_srcdir)/config/ompi_fortran_check.m4 \ + $(top_srcdir)/config/ompi_fortran_check_abstract.m4 \ + $(top_srcdir)/config/ompi_fortran_check_asynchronous.m4 \ + $(top_srcdir)/config/ompi_fortran_check_bind_c.m4 \ + $(top_srcdir)/config/ompi_fortran_check_c_funloc.m4 \ + $(top_srcdir)/config/ompi_fortran_check_f08_assumed_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_ignore_tkr.m4 \ + $(top_srcdir)/config/ompi_fortran_check_interface.m4 \ + $(top_srcdir)/config/ompi_fortran_check_iso_fortran_env.m4 \ + $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ + $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ + $(top_srcdir)/config/ompi_fortran_check_private.m4 \ + $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ + $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ + $(top_srcdir)/config/ompi_fortran_check_real16_c_equiv.m4 \ + $(top_srcdir)/config/ompi_fortran_check_storage_size.m4 \ + $(top_srcdir)/config/ompi_fortran_check_type.m4 \ + $(top_srcdir)/config/ompi_fortran_check_use_only.m4 \ + $(top_srcdir)/config/ompi_fortran_find_ext_symbol_convention.m4 \ + $(top_srcdir)/config/ompi_fortran_find_module_include_flag.m4 \ + $(top_srcdir)/config/ompi_fortran_get_alignment.m4 \ + $(top_srcdir)/config/ompi_fortran_get_handle_max.m4 \ + $(top_srcdir)/config/ompi_fortran_get_kind_value.m4 \ + $(top_srcdir)/config/ompi_fortran_get_sizeof.m4 \ + $(top_srcdir)/config/ompi_fortran_get_value_true.m4 \ + $(top_srcdir)/config/ompi_interix.m4 \ + $(top_srcdir)/config/ompi_setup_contrib.m4 \ + $(top_srcdir)/config/ompi_setup_cxx.m4 \ + $(top_srcdir)/config/ompi_setup_fc.m4 \ + $(top_srcdir)/config/ompi_setup_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_ext.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_fortran.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_profiling.m4 \ + $(top_srcdir)/config/opal_case_sensitive_fs_setup.m4 \ + $(top_srcdir)/config/opal_check_alps.m4 \ + $(top_srcdir)/config/opal_check_attributes.m4 \ + $(top_srcdir)/config/opal_check_broken_qsort.m4 \ + $(top_srcdir)/config/opal_check_cma.m4 \ + $(top_srcdir)/config/opal_check_compiler_version.m4 \ + $(top_srcdir)/config/opal_check_compiler_works.m4 \ + $(top_srcdir)/config/opal_check_cray_pmi.m4 \ + $(top_srcdir)/config/opal_check_cuda.m4 \ + $(top_srcdir)/config/opal_check_icc.m4 \ + $(top_srcdir)/config/opal_check_ident.m4 \ + $(top_srcdir)/config/opal_check_knem.m4 \ + $(top_srcdir)/config/opal_check_libnl.m4 \ + $(top_srcdir)/config/opal_check_offsetof.m4 \ + $(top_srcdir)/config/opal_check_ofi.m4 \ + $(top_srcdir)/config/opal_check_openfabrics.m4 \ + $(top_srcdir)/config/opal_check_os_flavors.m4 \ + $(top_srcdir)/config/opal_check_package.m4 \ + $(top_srcdir)/config/opal_check_pmi.m4 \ + $(top_srcdir)/config/opal_check_portals4.m4 \ + $(top_srcdir)/config/opal_check_ps.m4 \ + $(top_srcdir)/config/opal_check_pthread_pids.m4 \ + $(top_srcdir)/config/opal_check_singularity.m4 \ + $(top_srcdir)/config/opal_check_ugni.m4 \ + $(top_srcdir)/config/opal_check_vendor.m4 \ + $(top_srcdir)/config/opal_check_verbs.m4 \ + $(top_srcdir)/config/opal_check_visibility.m4 \ + $(top_srcdir)/config/opal_check_withdir.m4 \ + $(top_srcdir)/config/opal_check_xpmem.m4 \ + $(top_srcdir)/config/opal_config_asm.m4 \ + $(top_srcdir)/config/opal_config_files.m4 \ + $(top_srcdir)/config/opal_config_pthreads.m4 \ + $(top_srcdir)/config/opal_config_subdir.m4 \ + $(top_srcdir)/config/opal_config_subdir_args.m4 \ + $(top_srcdir)/config/opal_config_threads.m4 \ + $(top_srcdir)/config/opal_configure_options.m4 \ + $(top_srcdir)/config/opal_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/opal_find_type.m4 \ + $(top_srcdir)/config/opal_functions.m4 \ + $(top_srcdir)/config/opal_lang_link_with_c.m4 \ + $(top_srcdir)/config/opal_load_platform.m4 \ + $(top_srcdir)/config/opal_mca.m4 \ + $(top_srcdir)/config/opal_save_version.m4 \ + $(top_srcdir)/config/opal_search_libs.m4 \ + $(top_srcdir)/config/opal_set_lib_prefix.m4 \ + $(top_srcdir)/config/opal_set_mca_prefix.m4 \ + $(top_srcdir)/config/opal_setup_cc.m4 \ + $(top_srcdir)/config/opal_setup_cli.m4 \ + $(top_srcdir)/config/opal_setup_cxx.m4 \ + $(top_srcdir)/config/opal_setup_ft.m4 \ + $(top_srcdir)/config/opal_setup_wrappers.m4 \ + $(top_srcdir)/config/opal_setup_zlib.m4 \ + $(top_srcdir)/config/opal_strip_optflags.m4 \ + $(top_srcdir)/config/opal_summary.m4 \ + $(top_srcdir)/config/opal_try_assemble.m4 \ + $(top_srcdir)/config/orte_check_lsf.m4 \ + $(top_srcdir)/config/orte_check_moab.m4 \ + $(top_srcdir)/config/orte_check_sge.m4 \ + $(top_srcdir)/config/orte_check_slurm.m4 \ + $(top_srcdir)/config/orte_check_tm.m4 \ + $(top_srcdir)/config/orte_config_files.m4 \ + $(top_srcdir)/config/orte_configure_options.m4 \ + $(top_srcdir)/config/orte_setup_debugger_flags.m4 \ + $(top_srcdir)/config/oshmem_config_files.m4 \ + $(top_srcdir)/config/oshmem_configure_options.m4 \ + $(top_srcdir)/config/oshmem_setup_profiling.m4 \ + $(top_srcdir)/config/pkg.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/opal/mca/backtrace/configure.m4 \ + $(top_srcdir)/opal/mca/dl/configure.m4 \ + $(top_srcdir)/opal/mca/event/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/configure.m4 \ + $(top_srcdir)/opal/mca/memcpy/configure.m4 \ + $(top_srcdir)/opal/mca/memory/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/configure.m4 \ + $(top_srcdir)/opal/mca/timer/configure.m4 \ + $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/common/sm/configure.m4 \ + $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs_usnic/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ + $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ + $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ + $(top_srcdir)/opal/mca/btl/smcuda/configure.m4 \ + $(top_srcdir)/opal/mca/btl/tcp/configure.m4 \ + $(top_srcdir)/opal/mca/btl/uct/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ugni/configure.m4 \ + $(top_srcdir)/opal/mca/btl/usnic/configure.m4 \ + $(top_srcdir)/opal/mca/btl/vader/configure.m4 \ + $(top_srcdir)/opal/mca/crs/self/configure.m4 \ + $(top_srcdir)/opal/mca/dl/dlopen/configure.m4 \ + $(top_srcdir)/opal/mca/dl/libltdl/configure.m4 \ + $(top_srcdir)/opal/mca/event/external/configure.m4 \ + $(top_srcdir)/opal/mca/event/libevent2022/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/external/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_pkg.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_attributes.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_visibility.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_vendor.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_components.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_internal.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/netloc.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/linux_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/posix_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/solaris_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/config/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/env/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/valgrind/configure.m4 \ + $(top_srcdir)/opal/mca/memory/malloc_solaris/configure.m4 \ + $(top_srcdir)/opal/mca/memory/patcher/configure.m4 \ + $(top_srcdir)/opal/mca/mpool/memkind/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/linux/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/overwrite/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/cray/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext1x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext2x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/flux/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/pmix3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s1/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s2/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/linux/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/test/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/gpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/rgpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/udreg/configure.m4 \ + $(top_srcdir)/opal/mca/reachable/netlink/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/mmap/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/posix/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/sysv/configure.m4 \ + $(top_srcdir)/opal/mca/timer/altix/configure.m4 \ + $(top_srcdir)/opal/mca/timer/darwin/configure.m4 \ + $(top_srcdir)/opal/mca/timer/linux/configure.m4 \ + $(top_srcdir)/opal/mca/timer/solaris/configure.m4 \ + $(top_srcdir)/orte/mca/common/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ess/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ess/tm/configure.m4 \ + $(top_srcdir)/orte/mca/odls/alps/configure.m4 \ + $(top_srcdir)/orte/mca/odls/default/configure.m4 \ + $(top_srcdir)/orte/mca/odls/pspawn/configure.m4 \ + $(top_srcdir)/orte/mca/oob/alps/configure.m4 \ + $(top_srcdir)/orte/mca/oob/tcp/configure.m4 \ + $(top_srcdir)/orte/mca/plm/alps/configure.m4 \ + $(top_srcdir)/orte/mca/plm/isolated/configure.m4 \ + $(top_srcdir)/orte/mca/plm/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/plm/rsh/configure.m4 \ + $(top_srcdir)/orte/mca/plm/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/plm/tm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ras/gridengine/configure.m4 \ + $(top_srcdir)/orte/mca/ras/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/snapc/full/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/central/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/stage/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/configure.m4 \ + $(top_srcdir)/ompi/mca/fcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/configure.m4 \ + $(top_srcdir)/ompi/mca/hook/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/configure.m4 \ + $(top_srcdir)/ompi/mca/common/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/common/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/bml/r2/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/cuda/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/fca/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ + $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ + $(top_srcdir)/ompi/mca/io/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/io/romio321/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/ofi/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/rdma/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/crcpw/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ob1/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/v/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/yalla/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/orte/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/pmix/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/sm/configure.m4 \ + $(top_srcdir)/ompi/mca/topo/treematch/configure.m4 \ + $(top_srcdir)/oshmem/mca/memheap/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/sysv/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/verbs/configure.m4 \ + $(top_srcdir)/ompi/mpiext/affinity/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cr/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cuda/configure.m4 \ + $(top_srcdir)/ompi/mpiext/pcollreq/configure.m4 \ + $(top_srcdir)/ompi/contrib/libompitrace/configure.m4 \ + $(top_srcdir)/config/opal_get_version.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/opal/include/opal_config.h \ + $(top_builddir)/ompi/include/mpi.h \ + $(top_builddir)/oshmem/include/shmem.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen/config.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen/config.h \ + $(top_builddir)/ompi/mpiext/cuda/c/mpiext_cuda_c.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(mcacomponentdir)" +LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) +libmca_schizo_jsm_la_LIBADD = +am__objects_1 = schizo_jsm_component.lo schizo_jsm.lo +am_libmca_schizo_jsm_la_OBJECTS = $(am__objects_1) +libmca_schizo_jsm_la_OBJECTS = $(am_libmca_schizo_jsm_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libmca_schizo_jsm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libmca_schizo_jsm_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_orte_schizo_jsm_DSO_FALSE@am_libmca_schizo_jsm_la_rpath = +mca_schizo_jsm_la_DEPENDENCIES = \ + $(top_builddir)/orte/lib@ORTE_LIB_PREFIX@open-rte.la +am_mca_schizo_jsm_la_OBJECTS = $(am__objects_1) +mca_schizo_jsm_la_OBJECTS = $(am_mca_schizo_jsm_la_OBJECTS) +mca_schizo_jsm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(mca_schizo_jsm_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +@MCA_BUILD_orte_schizo_jsm_DSO_TRUE@am_mca_schizo_jsm_la_rpath = \ +@MCA_BUILD_orte_schizo_jsm_DSO_TRUE@ -rpath $(mcacomponentdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/opal/include -I$(top_builddir)/ompi/include -I$(top_builddir)/oshmem/include -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen -I$(top_builddir)/ompi/mpiext/cuda/c +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libmca_schizo_jsm_la_SOURCES) $(mca_schizo_jsm_la_SOURCES) +DIST_SOURCES = $(libmca_schizo_jsm_la_SOURCES) \ + $(mca_schizo_jsm_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/config/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMCA_PARAM_SETS_DIR = @AMCA_PARAM_SETS_DIR@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BASH = @BASH@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAGS_WITHOUT_OPTFLAGS = @CFLAGS_WITHOUT_OPTFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CRAY_ALPSLLI_CFLAGS = @CRAY_ALPSLLI_CFLAGS@ +CRAY_ALPSLLI_LIBS = @CRAY_ALPSLLI_LIBS@ +CRAY_ALPSLLI_STATIC_LIBS = @CRAY_ALPSLLI_STATIC_LIBS@ +CRAY_ALPSUTIL_CFLAGS = @CRAY_ALPSUTIL_CFLAGS@ +CRAY_ALPSUTIL_LIBS = @CRAY_ALPSUTIL_LIBS@ +CRAY_ALPSUTIL_STATIC_LIBS = @CRAY_ALPSUTIL_STATIC_LIBS@ +CRAY_ALPS_CFLAGS = @CRAY_ALPS_CFLAGS@ +CRAY_ALPS_LIBS = @CRAY_ALPS_LIBS@ +CRAY_ALPS_STATIC_LIBS = @CRAY_ALPS_STATIC_LIBS@ +CRAY_PMI_CFLAGS = @CRAY_PMI_CFLAGS@ +CRAY_PMI_LIBS = @CRAY_PMI_LIBS@ +CRAY_PMI_STATIC_LIBS = @CRAY_PMI_STATIC_LIBS@ +CRAY_UDREG_CFLAGS = @CRAY_UDREG_CFLAGS@ +CRAY_UDREG_LIBS = @CRAY_UDREG_LIBS@ +CRAY_UGNI_CFLAGS = @CRAY_UGNI_CFLAGS@ +CRAY_UGNI_LIBS = @CRAY_UGNI_LIBS@ +CRAY_WLM_DETECT_CFLAGS = @CRAY_WLM_DETECT_CFLAGS@ +CRAY_WLM_DETECT_LIBS = @CRAY_WLM_DETECT_LIBS@ +CRAY_WLM_DETECT_STATIC_LIBS = @CRAY_WLM_DETECT_STATIC_LIBS@ +CRAY_XPMEM_CFLAGS = @CRAY_XPMEM_CFLAGS@ +CRAY_XPMEM_LIBS = @CRAY_XPMEM_LIBS@ +CRAY_XPMEM_STATIC_LIBS = @CRAY_XPMEM_STATIC_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXCPPFLAGS = @CXXCPPFLAGS@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUGGER_CFLAGS = @DEBUGGER_CFLAGS@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FC = @FC@ +FCFLAGS = @FCFLAGS@ +FCFLAGS_f = @FCFLAGS_f@ +FCFLAGS_f90 = @FCFLAGS_f90@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLUX_PMI_CFLAGS = @FLUX_PMI_CFLAGS@ +FLUX_PMI_LIBS = @FLUX_PMI_LIBS@ +GREP = @GREP@ +HWLOC_CFLAGS = @HWLOC_CFLAGS@ +HWLOC_CPPFLAGS = @HWLOC_CPPFLAGS@ +HWLOC_CUDA_LIBS = @HWLOC_CUDA_LIBS@ +HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@ +HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@ +HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@ +HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@ +HWLOC_GL_LIBS = @HWLOC_GL_LIBS@ +HWLOC_HAVE_LIBXML2 = @HWLOC_HAVE_LIBXML2@ +HWLOC_HAVE_NVML = @HWLOC_HAVE_NVML@ +HWLOC_HAVE_OPENCL = @HWLOC_HAVE_OPENCL@ +HWLOC_LDFLAGS = @HWLOC_LDFLAGS@ +HWLOC_LIBS = @HWLOC_LIBS@ +HWLOC_LIBS_PRIVATE = @HWLOC_LIBS_PRIVATE@ +HWLOC_LIBXML2_CFLAGS = @HWLOC_LIBXML2_CFLAGS@ +HWLOC_LIBXML2_LIBS = @HWLOC_LIBXML2_LIBS@ +HWLOC_MS_LIB = @HWLOC_MS_LIB@ +HWLOC_MS_LIB_ARCH = @HWLOC_MS_LIB_ARCH@ +HWLOC_NVML_LIBS = @HWLOC_NVML_LIBS@ +HWLOC_OPENCL_CFLAGS = @HWLOC_OPENCL_CFLAGS@ +HWLOC_OPENCL_LDFLAGS = @HWLOC_OPENCL_LDFLAGS@ +HWLOC_OPENCL_LIBS = @HWLOC_OPENCL_LIBS@ +HWLOC_PCIACCESS_CFLAGS = @HWLOC_PCIACCESS_CFLAGS@ +HWLOC_PCIACCESS_LIBS = @HWLOC_PCIACCESS_LIBS@ +HWLOC_PLUGINS_DIR = @HWLOC_PLUGINS_DIR@ +HWLOC_PLUGINS_PATH = @HWLOC_PLUGINS_PATH@ +HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@ +HWLOC_REQUIRES = @HWLOC_REQUIRES@ +HWLOC_VERSION = @HWLOC_VERSION@ +HWLOC_X11_CPPFLAGS = @HWLOC_X11_CPPFLAGS@ +HWLOC_X11_LIBS = @HWLOC_X11_LIBS@ +HWLOC_top_builddir = @HWLOC_top_builddir@ +HWLOC_top_srcdir = @HWLOC_top_srcdir@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JAR = @JAR@ +JAVAC = @JAVAC@ +JAVADOC = @JAVADOC@ +JAVAH = @JAVAH@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ +MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ +MCA_ompi_FRAMEWORKS_SUBDIRS = @MCA_ompi_FRAMEWORKS_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_ompi_FRAMEWORK_LIBS = @MCA_ompi_FRAMEWORK_LIBS@ +MCA_ompi_bml_ALL_COMPONENTS = @MCA_ompi_bml_ALL_COMPONENTS@ +MCA_ompi_bml_ALL_SUBDIRS = @MCA_ompi_bml_ALL_SUBDIRS@ +MCA_ompi_bml_DSO_COMPONENTS = @MCA_ompi_bml_DSO_COMPONENTS@ +MCA_ompi_bml_DSO_SUBDIRS = @MCA_ompi_bml_DSO_SUBDIRS@ +MCA_ompi_bml_STATIC_COMPONENTS = @MCA_ompi_bml_STATIC_COMPONENTS@ +MCA_ompi_bml_STATIC_LTLIBS = @MCA_ompi_bml_STATIC_LTLIBS@ +MCA_ompi_bml_STATIC_SUBDIRS = @MCA_ompi_bml_STATIC_SUBDIRS@ +MCA_ompi_coll_ALL_COMPONENTS = @MCA_ompi_coll_ALL_COMPONENTS@ +MCA_ompi_coll_ALL_SUBDIRS = @MCA_ompi_coll_ALL_SUBDIRS@ +MCA_ompi_coll_DSO_COMPONENTS = @MCA_ompi_coll_DSO_COMPONENTS@ +MCA_ompi_coll_DSO_SUBDIRS = @MCA_ompi_coll_DSO_SUBDIRS@ +MCA_ompi_coll_STATIC_COMPONENTS = @MCA_ompi_coll_STATIC_COMPONENTS@ +MCA_ompi_coll_STATIC_LTLIBS = @MCA_ompi_coll_STATIC_LTLIBS@ +MCA_ompi_coll_STATIC_SUBDIRS = @MCA_ompi_coll_STATIC_SUBDIRS@ +MCA_ompi_common_ALL_COMPONENTS = @MCA_ompi_common_ALL_COMPONENTS@ +MCA_ompi_common_ALL_SUBDIRS = @MCA_ompi_common_ALL_SUBDIRS@ +MCA_ompi_common_DSO_COMPONENTS = @MCA_ompi_common_DSO_COMPONENTS@ +MCA_ompi_common_DSO_SUBDIRS = @MCA_ompi_common_DSO_SUBDIRS@ +MCA_ompi_common_STATIC_COMPONENTS = @MCA_ompi_common_STATIC_COMPONENTS@ +MCA_ompi_common_STATIC_LTLIBS = @MCA_ompi_common_STATIC_LTLIBS@ +MCA_ompi_common_STATIC_SUBDIRS = @MCA_ompi_common_STATIC_SUBDIRS@ +MCA_ompi_crcp_ALL_COMPONENTS = @MCA_ompi_crcp_ALL_COMPONENTS@ +MCA_ompi_crcp_ALL_SUBDIRS = @MCA_ompi_crcp_ALL_SUBDIRS@ +MCA_ompi_crcp_DSO_COMPONENTS = @MCA_ompi_crcp_DSO_COMPONENTS@ +MCA_ompi_crcp_DSO_SUBDIRS = @MCA_ompi_crcp_DSO_SUBDIRS@ +MCA_ompi_crcp_STATIC_COMPONENTS = @MCA_ompi_crcp_STATIC_COMPONENTS@ +MCA_ompi_crcp_STATIC_LTLIBS = @MCA_ompi_crcp_STATIC_LTLIBS@ +MCA_ompi_crcp_STATIC_SUBDIRS = @MCA_ompi_crcp_STATIC_SUBDIRS@ +MCA_ompi_fbtl_ALL_COMPONENTS = @MCA_ompi_fbtl_ALL_COMPONENTS@ +MCA_ompi_fbtl_ALL_SUBDIRS = @MCA_ompi_fbtl_ALL_SUBDIRS@ +MCA_ompi_fbtl_DSO_COMPONENTS = @MCA_ompi_fbtl_DSO_COMPONENTS@ +MCA_ompi_fbtl_DSO_SUBDIRS = @MCA_ompi_fbtl_DSO_SUBDIRS@ +MCA_ompi_fbtl_STATIC_COMPONENTS = @MCA_ompi_fbtl_STATIC_COMPONENTS@ +MCA_ompi_fbtl_STATIC_LTLIBS = @MCA_ompi_fbtl_STATIC_LTLIBS@ +MCA_ompi_fbtl_STATIC_SUBDIRS = @MCA_ompi_fbtl_STATIC_SUBDIRS@ +MCA_ompi_fcoll_ALL_COMPONENTS = @MCA_ompi_fcoll_ALL_COMPONENTS@ +MCA_ompi_fcoll_ALL_SUBDIRS = @MCA_ompi_fcoll_ALL_SUBDIRS@ +MCA_ompi_fcoll_DSO_COMPONENTS = @MCA_ompi_fcoll_DSO_COMPONENTS@ +MCA_ompi_fcoll_DSO_SUBDIRS = @MCA_ompi_fcoll_DSO_SUBDIRS@ +MCA_ompi_fcoll_STATIC_COMPONENTS = @MCA_ompi_fcoll_STATIC_COMPONENTS@ +MCA_ompi_fcoll_STATIC_LTLIBS = @MCA_ompi_fcoll_STATIC_LTLIBS@ +MCA_ompi_fcoll_STATIC_SUBDIRS = @MCA_ompi_fcoll_STATIC_SUBDIRS@ +MCA_ompi_fs_ALL_COMPONENTS = @MCA_ompi_fs_ALL_COMPONENTS@ +MCA_ompi_fs_ALL_SUBDIRS = @MCA_ompi_fs_ALL_SUBDIRS@ +MCA_ompi_fs_DSO_COMPONENTS = @MCA_ompi_fs_DSO_COMPONENTS@ +MCA_ompi_fs_DSO_SUBDIRS = @MCA_ompi_fs_DSO_SUBDIRS@ +MCA_ompi_fs_STATIC_COMPONENTS = @MCA_ompi_fs_STATIC_COMPONENTS@ +MCA_ompi_fs_STATIC_LTLIBS = @MCA_ompi_fs_STATIC_LTLIBS@ +MCA_ompi_fs_STATIC_SUBDIRS = @MCA_ompi_fs_STATIC_SUBDIRS@ +MCA_ompi_hook_ALL_COMPONENTS = @MCA_ompi_hook_ALL_COMPONENTS@ +MCA_ompi_hook_ALL_SUBDIRS = @MCA_ompi_hook_ALL_SUBDIRS@ +MCA_ompi_hook_DSO_COMPONENTS = @MCA_ompi_hook_DSO_COMPONENTS@ +MCA_ompi_hook_DSO_SUBDIRS = @MCA_ompi_hook_DSO_SUBDIRS@ +MCA_ompi_hook_STATIC_COMPONENTS = @MCA_ompi_hook_STATIC_COMPONENTS@ +MCA_ompi_hook_STATIC_LTLIBS = @MCA_ompi_hook_STATIC_LTLIBS@ +MCA_ompi_hook_STATIC_SUBDIRS = @MCA_ompi_hook_STATIC_SUBDIRS@ +MCA_ompi_io_ALL_COMPONENTS = @MCA_ompi_io_ALL_COMPONENTS@ +MCA_ompi_io_ALL_SUBDIRS = @MCA_ompi_io_ALL_SUBDIRS@ +MCA_ompi_io_DSO_COMPONENTS = @MCA_ompi_io_DSO_COMPONENTS@ +MCA_ompi_io_DSO_SUBDIRS = @MCA_ompi_io_DSO_SUBDIRS@ +MCA_ompi_io_STATIC_COMPONENTS = @MCA_ompi_io_STATIC_COMPONENTS@ +MCA_ompi_io_STATIC_LTLIBS = @MCA_ompi_io_STATIC_LTLIBS@ +MCA_ompi_io_STATIC_SUBDIRS = @MCA_ompi_io_STATIC_SUBDIRS@ +MCA_ompi_mtl_ALL_COMPONENTS = @MCA_ompi_mtl_ALL_COMPONENTS@ +MCA_ompi_mtl_ALL_SUBDIRS = @MCA_ompi_mtl_ALL_SUBDIRS@ +MCA_ompi_mtl_DIRECT_CALL_HEADER = @MCA_ompi_mtl_DIRECT_CALL_HEADER@ +MCA_ompi_mtl_DSO_COMPONENTS = @MCA_ompi_mtl_DSO_COMPONENTS@ +MCA_ompi_mtl_DSO_SUBDIRS = @MCA_ompi_mtl_DSO_SUBDIRS@ +MCA_ompi_mtl_STATIC_COMPONENTS = @MCA_ompi_mtl_STATIC_COMPONENTS@ +MCA_ompi_mtl_STATIC_LTLIBS = @MCA_ompi_mtl_STATIC_LTLIBS@ +MCA_ompi_mtl_STATIC_SUBDIRS = @MCA_ompi_mtl_STATIC_SUBDIRS@ +MCA_ompi_op_ALL_COMPONENTS = @MCA_ompi_op_ALL_COMPONENTS@ +MCA_ompi_op_ALL_SUBDIRS = @MCA_ompi_op_ALL_SUBDIRS@ +MCA_ompi_op_DSO_COMPONENTS = @MCA_ompi_op_DSO_COMPONENTS@ +MCA_ompi_op_DSO_SUBDIRS = @MCA_ompi_op_DSO_SUBDIRS@ +MCA_ompi_op_STATIC_COMPONENTS = @MCA_ompi_op_STATIC_COMPONENTS@ +MCA_ompi_op_STATIC_LTLIBS = @MCA_ompi_op_STATIC_LTLIBS@ +MCA_ompi_op_STATIC_SUBDIRS = @MCA_ompi_op_STATIC_SUBDIRS@ +MCA_ompi_osc_ALL_COMPONENTS = @MCA_ompi_osc_ALL_COMPONENTS@ +MCA_ompi_osc_ALL_SUBDIRS = @MCA_ompi_osc_ALL_SUBDIRS@ +MCA_ompi_osc_DSO_COMPONENTS = @MCA_ompi_osc_DSO_COMPONENTS@ +MCA_ompi_osc_DSO_SUBDIRS = @MCA_ompi_osc_DSO_SUBDIRS@ +MCA_ompi_osc_STATIC_COMPONENTS = @MCA_ompi_osc_STATIC_COMPONENTS@ +MCA_ompi_osc_STATIC_LTLIBS = @MCA_ompi_osc_STATIC_LTLIBS@ +MCA_ompi_osc_STATIC_SUBDIRS = @MCA_ompi_osc_STATIC_SUBDIRS@ +MCA_ompi_pml_ALL_COMPONENTS = @MCA_ompi_pml_ALL_COMPONENTS@ +MCA_ompi_pml_ALL_SUBDIRS = @MCA_ompi_pml_ALL_SUBDIRS@ +MCA_ompi_pml_DIRECT_CALL_HEADER = @MCA_ompi_pml_DIRECT_CALL_HEADER@ +MCA_ompi_pml_DSO_COMPONENTS = @MCA_ompi_pml_DSO_COMPONENTS@ +MCA_ompi_pml_DSO_SUBDIRS = @MCA_ompi_pml_DSO_SUBDIRS@ +MCA_ompi_pml_STATIC_COMPONENTS = @MCA_ompi_pml_STATIC_COMPONENTS@ +MCA_ompi_pml_STATIC_LTLIBS = @MCA_ompi_pml_STATIC_LTLIBS@ +MCA_ompi_pml_STATIC_SUBDIRS = @MCA_ompi_pml_STATIC_SUBDIRS@ +MCA_ompi_rte_ALL_COMPONENTS = @MCA_ompi_rte_ALL_COMPONENTS@ +MCA_ompi_rte_ALL_SUBDIRS = @MCA_ompi_rte_ALL_SUBDIRS@ +MCA_ompi_rte_DSO_COMPONENTS = @MCA_ompi_rte_DSO_COMPONENTS@ +MCA_ompi_rte_DSO_SUBDIRS = @MCA_ompi_rte_DSO_SUBDIRS@ +MCA_ompi_rte_STATIC_COMPONENTS = @MCA_ompi_rte_STATIC_COMPONENTS@ +MCA_ompi_rte_STATIC_LTLIBS = @MCA_ompi_rte_STATIC_LTLIBS@ +MCA_ompi_rte_STATIC_SUBDIRS = @MCA_ompi_rte_STATIC_SUBDIRS@ +MCA_ompi_sharedfp_ALL_COMPONENTS = @MCA_ompi_sharedfp_ALL_COMPONENTS@ +MCA_ompi_sharedfp_ALL_SUBDIRS = @MCA_ompi_sharedfp_ALL_SUBDIRS@ +MCA_ompi_sharedfp_DSO_COMPONENTS = @MCA_ompi_sharedfp_DSO_COMPONENTS@ +MCA_ompi_sharedfp_DSO_SUBDIRS = @MCA_ompi_sharedfp_DSO_SUBDIRS@ +MCA_ompi_sharedfp_STATIC_COMPONENTS = @MCA_ompi_sharedfp_STATIC_COMPONENTS@ +MCA_ompi_sharedfp_STATIC_LTLIBS = @MCA_ompi_sharedfp_STATIC_LTLIBS@ +MCA_ompi_sharedfp_STATIC_SUBDIRS = @MCA_ompi_sharedfp_STATIC_SUBDIRS@ +MCA_ompi_topo_ALL_COMPONENTS = @MCA_ompi_topo_ALL_COMPONENTS@ +MCA_ompi_topo_ALL_SUBDIRS = @MCA_ompi_topo_ALL_SUBDIRS@ +MCA_ompi_topo_DSO_COMPONENTS = @MCA_ompi_topo_DSO_COMPONENTS@ +MCA_ompi_topo_DSO_SUBDIRS = @MCA_ompi_topo_DSO_SUBDIRS@ +MCA_ompi_topo_STATIC_COMPONENTS = @MCA_ompi_topo_STATIC_COMPONENTS@ +MCA_ompi_topo_STATIC_LTLIBS = @MCA_ompi_topo_STATIC_LTLIBS@ +MCA_ompi_topo_STATIC_SUBDIRS = @MCA_ompi_topo_STATIC_SUBDIRS@ +MCA_ompi_vprotocol_ALL_COMPONENTS = @MCA_ompi_vprotocol_ALL_COMPONENTS@ +MCA_ompi_vprotocol_ALL_SUBDIRS = @MCA_ompi_vprotocol_ALL_SUBDIRS@ +MCA_ompi_vprotocol_DSO_COMPONENTS = @MCA_ompi_vprotocol_DSO_COMPONENTS@ +MCA_ompi_vprotocol_DSO_SUBDIRS = @MCA_ompi_vprotocol_DSO_SUBDIRS@ +MCA_ompi_vprotocol_STATIC_COMPONENTS = @MCA_ompi_vprotocol_STATIC_COMPONENTS@ +MCA_ompi_vprotocol_STATIC_LTLIBS = @MCA_ompi_vprotocol_STATIC_LTLIBS@ +MCA_ompi_vprotocol_STATIC_SUBDIRS = @MCA_ompi_vprotocol_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORKS = @MCA_opal_FRAMEWORKS@ +MCA_opal_FRAMEWORKS_SUBDIRS = @MCA_opal_FRAMEWORKS_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORK_LIBS = @MCA_opal_FRAMEWORK_LIBS@ +MCA_opal_allocator_ALL_COMPONENTS = @MCA_opal_allocator_ALL_COMPONENTS@ +MCA_opal_allocator_ALL_SUBDIRS = @MCA_opal_allocator_ALL_SUBDIRS@ +MCA_opal_allocator_DSO_COMPONENTS = @MCA_opal_allocator_DSO_COMPONENTS@ +MCA_opal_allocator_DSO_SUBDIRS = @MCA_opal_allocator_DSO_SUBDIRS@ +MCA_opal_allocator_STATIC_COMPONENTS = @MCA_opal_allocator_STATIC_COMPONENTS@ +MCA_opal_allocator_STATIC_LTLIBS = @MCA_opal_allocator_STATIC_LTLIBS@ +MCA_opal_allocator_STATIC_SUBDIRS = @MCA_opal_allocator_STATIC_SUBDIRS@ +MCA_opal_backtrace_ALL_COMPONENTS = @MCA_opal_backtrace_ALL_COMPONENTS@ +MCA_opal_backtrace_ALL_SUBDIRS = @MCA_opal_backtrace_ALL_SUBDIRS@ +MCA_opal_backtrace_DSO_COMPONENTS = @MCA_opal_backtrace_DSO_COMPONENTS@ +MCA_opal_backtrace_DSO_SUBDIRS = @MCA_opal_backtrace_DSO_SUBDIRS@ +MCA_opal_backtrace_STATIC_COMPONENTS = @MCA_opal_backtrace_STATIC_COMPONENTS@ +MCA_opal_backtrace_STATIC_LTLIBS = @MCA_opal_backtrace_STATIC_LTLIBS@ +MCA_opal_backtrace_STATIC_SUBDIRS = @MCA_opal_backtrace_STATIC_SUBDIRS@ +MCA_opal_btl_ALL_COMPONENTS = @MCA_opal_btl_ALL_COMPONENTS@ +MCA_opal_btl_ALL_SUBDIRS = @MCA_opal_btl_ALL_SUBDIRS@ +MCA_opal_btl_DSO_COMPONENTS = @MCA_opal_btl_DSO_COMPONENTS@ +MCA_opal_btl_DSO_SUBDIRS = @MCA_opal_btl_DSO_SUBDIRS@ +MCA_opal_btl_STATIC_COMPONENTS = @MCA_opal_btl_STATIC_COMPONENTS@ +MCA_opal_btl_STATIC_LTLIBS = @MCA_opal_btl_STATIC_LTLIBS@ +MCA_opal_btl_STATIC_SUBDIRS = @MCA_opal_btl_STATIC_SUBDIRS@ +MCA_opal_common_ALL_COMPONENTS = @MCA_opal_common_ALL_COMPONENTS@ +MCA_opal_common_ALL_SUBDIRS = @MCA_opal_common_ALL_SUBDIRS@ +MCA_opal_common_DSO_COMPONENTS = @MCA_opal_common_DSO_COMPONENTS@ +MCA_opal_common_DSO_SUBDIRS = @MCA_opal_common_DSO_SUBDIRS@ +MCA_opal_common_STATIC_COMPONENTS = @MCA_opal_common_STATIC_COMPONENTS@ +MCA_opal_common_STATIC_LTLIBS = @MCA_opal_common_STATIC_LTLIBS@ +MCA_opal_common_STATIC_SUBDIRS = @MCA_opal_common_STATIC_SUBDIRS@ +MCA_opal_compress_ALL_COMPONENTS = @MCA_opal_compress_ALL_COMPONENTS@ +MCA_opal_compress_ALL_SUBDIRS = @MCA_opal_compress_ALL_SUBDIRS@ +MCA_opal_compress_DSO_COMPONENTS = @MCA_opal_compress_DSO_COMPONENTS@ +MCA_opal_compress_DSO_SUBDIRS = @MCA_opal_compress_DSO_SUBDIRS@ +MCA_opal_compress_STATIC_COMPONENTS = @MCA_opal_compress_STATIC_COMPONENTS@ +MCA_opal_compress_STATIC_LTLIBS = @MCA_opal_compress_STATIC_LTLIBS@ +MCA_opal_compress_STATIC_SUBDIRS = @MCA_opal_compress_STATIC_SUBDIRS@ +MCA_opal_crs_ALL_COMPONENTS = @MCA_opal_crs_ALL_COMPONENTS@ +MCA_opal_crs_ALL_SUBDIRS = @MCA_opal_crs_ALL_SUBDIRS@ +MCA_opal_crs_DSO_COMPONENTS = @MCA_opal_crs_DSO_COMPONENTS@ +MCA_opal_crs_DSO_SUBDIRS = @MCA_opal_crs_DSO_SUBDIRS@ +MCA_opal_crs_STATIC_COMPONENTS = @MCA_opal_crs_STATIC_COMPONENTS@ +MCA_opal_crs_STATIC_LTLIBS = @MCA_opal_crs_STATIC_LTLIBS@ +MCA_opal_crs_STATIC_SUBDIRS = @MCA_opal_crs_STATIC_SUBDIRS@ +MCA_opal_dl_ALL_COMPONENTS = @MCA_opal_dl_ALL_COMPONENTS@ +MCA_opal_dl_ALL_SUBDIRS = @MCA_opal_dl_ALL_SUBDIRS@ +MCA_opal_dl_DSO_COMPONENTS = @MCA_opal_dl_DSO_COMPONENTS@ +MCA_opal_dl_DSO_SUBDIRS = @MCA_opal_dl_DSO_SUBDIRS@ +MCA_opal_dl_STATIC_COMPONENTS = @MCA_opal_dl_STATIC_COMPONENTS@ +MCA_opal_dl_STATIC_LTLIBS = @MCA_opal_dl_STATIC_LTLIBS@ +MCA_opal_dl_STATIC_SUBDIRS = @MCA_opal_dl_STATIC_SUBDIRS@ +MCA_opal_event_ALL_COMPONENTS = @MCA_opal_event_ALL_COMPONENTS@ +MCA_opal_event_ALL_SUBDIRS = @MCA_opal_event_ALL_SUBDIRS@ +MCA_opal_event_DSO_COMPONENTS = @MCA_opal_event_DSO_COMPONENTS@ +MCA_opal_event_DSO_SUBDIRS = @MCA_opal_event_DSO_SUBDIRS@ +MCA_opal_event_STATIC_COMPONENTS = @MCA_opal_event_STATIC_COMPONENTS@ +MCA_opal_event_STATIC_LTLIBS = @MCA_opal_event_STATIC_LTLIBS@ +MCA_opal_event_STATIC_SUBDIRS = @MCA_opal_event_STATIC_SUBDIRS@ +MCA_opal_hwloc_ALL_COMPONENTS = @MCA_opal_hwloc_ALL_COMPONENTS@ +MCA_opal_hwloc_ALL_SUBDIRS = @MCA_opal_hwloc_ALL_SUBDIRS@ +MCA_opal_hwloc_DSO_COMPONENTS = @MCA_opal_hwloc_DSO_COMPONENTS@ +MCA_opal_hwloc_DSO_SUBDIRS = @MCA_opal_hwloc_DSO_SUBDIRS@ +MCA_opal_hwloc_STATIC_COMPONENTS = @MCA_opal_hwloc_STATIC_COMPONENTS@ +MCA_opal_hwloc_STATIC_LTLIBS = @MCA_opal_hwloc_STATIC_LTLIBS@ +MCA_opal_hwloc_STATIC_SUBDIRS = @MCA_opal_hwloc_STATIC_SUBDIRS@ +MCA_opal_if_ALL_COMPONENTS = @MCA_opal_if_ALL_COMPONENTS@ +MCA_opal_if_ALL_SUBDIRS = @MCA_opal_if_ALL_SUBDIRS@ +MCA_opal_if_DSO_COMPONENTS = @MCA_opal_if_DSO_COMPONENTS@ +MCA_opal_if_DSO_SUBDIRS = @MCA_opal_if_DSO_SUBDIRS@ +MCA_opal_if_STATIC_COMPONENTS = @MCA_opal_if_STATIC_COMPONENTS@ +MCA_opal_if_STATIC_LTLIBS = @MCA_opal_if_STATIC_LTLIBS@ +MCA_opal_if_STATIC_SUBDIRS = @MCA_opal_if_STATIC_SUBDIRS@ +MCA_opal_installdirs_ALL_COMPONENTS = @MCA_opal_installdirs_ALL_COMPONENTS@ +MCA_opal_installdirs_ALL_SUBDIRS = @MCA_opal_installdirs_ALL_SUBDIRS@ +MCA_opal_installdirs_DSO_COMPONENTS = @MCA_opal_installdirs_DSO_COMPONENTS@ +MCA_opal_installdirs_DSO_SUBDIRS = @MCA_opal_installdirs_DSO_SUBDIRS@ +MCA_opal_installdirs_STATIC_COMPONENTS = @MCA_opal_installdirs_STATIC_COMPONENTS@ +MCA_opal_installdirs_STATIC_LTLIBS = @MCA_opal_installdirs_STATIC_LTLIBS@ +MCA_opal_installdirs_STATIC_SUBDIRS = @MCA_opal_installdirs_STATIC_SUBDIRS@ +MCA_opal_memchecker_ALL_COMPONENTS = @MCA_opal_memchecker_ALL_COMPONENTS@ +MCA_opal_memchecker_ALL_SUBDIRS = @MCA_opal_memchecker_ALL_SUBDIRS@ +MCA_opal_memchecker_DSO_COMPONENTS = @MCA_opal_memchecker_DSO_COMPONENTS@ +MCA_opal_memchecker_DSO_SUBDIRS = @MCA_opal_memchecker_DSO_SUBDIRS@ +MCA_opal_memchecker_STATIC_COMPONENTS = @MCA_opal_memchecker_STATIC_COMPONENTS@ +MCA_opal_memchecker_STATIC_LTLIBS = @MCA_opal_memchecker_STATIC_LTLIBS@ +MCA_opal_memchecker_STATIC_SUBDIRS = @MCA_opal_memchecker_STATIC_SUBDIRS@ +MCA_opal_memcpy_ALL_COMPONENTS = @MCA_opal_memcpy_ALL_COMPONENTS@ +MCA_opal_memcpy_ALL_SUBDIRS = @MCA_opal_memcpy_ALL_SUBDIRS@ +MCA_opal_memcpy_DSO_COMPONENTS = @MCA_opal_memcpy_DSO_COMPONENTS@ +MCA_opal_memcpy_DSO_SUBDIRS = @MCA_opal_memcpy_DSO_SUBDIRS@ +MCA_opal_memcpy_STATIC_COMPONENTS = @MCA_opal_memcpy_STATIC_COMPONENTS@ +MCA_opal_memcpy_STATIC_LTLIBS = @MCA_opal_memcpy_STATIC_LTLIBS@ +MCA_opal_memcpy_STATIC_SUBDIRS = @MCA_opal_memcpy_STATIC_SUBDIRS@ +MCA_opal_memory_ALL_COMPONENTS = @MCA_opal_memory_ALL_COMPONENTS@ +MCA_opal_memory_ALL_SUBDIRS = @MCA_opal_memory_ALL_SUBDIRS@ +MCA_opal_memory_DSO_COMPONENTS = @MCA_opal_memory_DSO_COMPONENTS@ +MCA_opal_memory_DSO_SUBDIRS = @MCA_opal_memory_DSO_SUBDIRS@ +MCA_opal_memory_STATIC_COMPONENTS = @MCA_opal_memory_STATIC_COMPONENTS@ +MCA_opal_memory_STATIC_LTLIBS = @MCA_opal_memory_STATIC_LTLIBS@ +MCA_opal_memory_STATIC_SUBDIRS = @MCA_opal_memory_STATIC_SUBDIRS@ +MCA_opal_mpool_ALL_COMPONENTS = @MCA_opal_mpool_ALL_COMPONENTS@ +MCA_opal_mpool_ALL_SUBDIRS = @MCA_opal_mpool_ALL_SUBDIRS@ +MCA_opal_mpool_DSO_COMPONENTS = @MCA_opal_mpool_DSO_COMPONENTS@ +MCA_opal_mpool_DSO_SUBDIRS = @MCA_opal_mpool_DSO_SUBDIRS@ +MCA_opal_mpool_STATIC_COMPONENTS = @MCA_opal_mpool_STATIC_COMPONENTS@ +MCA_opal_mpool_STATIC_LTLIBS = @MCA_opal_mpool_STATIC_LTLIBS@ +MCA_opal_mpool_STATIC_SUBDIRS = @MCA_opal_mpool_STATIC_SUBDIRS@ +MCA_opal_patcher_ALL_COMPONENTS = @MCA_opal_patcher_ALL_COMPONENTS@ +MCA_opal_patcher_ALL_SUBDIRS = @MCA_opal_patcher_ALL_SUBDIRS@ +MCA_opal_patcher_DSO_COMPONENTS = @MCA_opal_patcher_DSO_COMPONENTS@ +MCA_opal_patcher_DSO_SUBDIRS = @MCA_opal_patcher_DSO_SUBDIRS@ +MCA_opal_patcher_STATIC_COMPONENTS = @MCA_opal_patcher_STATIC_COMPONENTS@ +MCA_opal_patcher_STATIC_LTLIBS = @MCA_opal_patcher_STATIC_LTLIBS@ +MCA_opal_patcher_STATIC_SUBDIRS = @MCA_opal_patcher_STATIC_SUBDIRS@ +MCA_opal_pmix_ALL_COMPONENTS = @MCA_opal_pmix_ALL_COMPONENTS@ +MCA_opal_pmix_ALL_SUBDIRS = @MCA_opal_pmix_ALL_SUBDIRS@ +MCA_opal_pmix_DSO_COMPONENTS = @MCA_opal_pmix_DSO_COMPONENTS@ +MCA_opal_pmix_DSO_SUBDIRS = @MCA_opal_pmix_DSO_SUBDIRS@ +MCA_opal_pmix_STATIC_COMPONENTS = @MCA_opal_pmix_STATIC_COMPONENTS@ +MCA_opal_pmix_STATIC_LTLIBS = @MCA_opal_pmix_STATIC_LTLIBS@ +MCA_opal_pmix_STATIC_SUBDIRS = @MCA_opal_pmix_STATIC_SUBDIRS@ +MCA_opal_pstat_ALL_COMPONENTS = @MCA_opal_pstat_ALL_COMPONENTS@ +MCA_opal_pstat_ALL_SUBDIRS = @MCA_opal_pstat_ALL_SUBDIRS@ +MCA_opal_pstat_DSO_COMPONENTS = @MCA_opal_pstat_DSO_COMPONENTS@ +MCA_opal_pstat_DSO_SUBDIRS = @MCA_opal_pstat_DSO_SUBDIRS@ +MCA_opal_pstat_STATIC_COMPONENTS = @MCA_opal_pstat_STATIC_COMPONENTS@ +MCA_opal_pstat_STATIC_LTLIBS = @MCA_opal_pstat_STATIC_LTLIBS@ +MCA_opal_pstat_STATIC_SUBDIRS = @MCA_opal_pstat_STATIC_SUBDIRS@ +MCA_opal_rcache_ALL_COMPONENTS = @MCA_opal_rcache_ALL_COMPONENTS@ +MCA_opal_rcache_ALL_SUBDIRS = @MCA_opal_rcache_ALL_SUBDIRS@ +MCA_opal_rcache_DSO_COMPONENTS = @MCA_opal_rcache_DSO_COMPONENTS@ +MCA_opal_rcache_DSO_SUBDIRS = @MCA_opal_rcache_DSO_SUBDIRS@ +MCA_opal_rcache_STATIC_COMPONENTS = @MCA_opal_rcache_STATIC_COMPONENTS@ +MCA_opal_rcache_STATIC_LTLIBS = @MCA_opal_rcache_STATIC_LTLIBS@ +MCA_opal_rcache_STATIC_SUBDIRS = @MCA_opal_rcache_STATIC_SUBDIRS@ +MCA_opal_reachable_ALL_COMPONENTS = @MCA_opal_reachable_ALL_COMPONENTS@ +MCA_opal_reachable_ALL_SUBDIRS = @MCA_opal_reachable_ALL_SUBDIRS@ +MCA_opal_reachable_DSO_COMPONENTS = @MCA_opal_reachable_DSO_COMPONENTS@ +MCA_opal_reachable_DSO_SUBDIRS = @MCA_opal_reachable_DSO_SUBDIRS@ +MCA_opal_reachable_STATIC_COMPONENTS = @MCA_opal_reachable_STATIC_COMPONENTS@ +MCA_opal_reachable_STATIC_LTLIBS = @MCA_opal_reachable_STATIC_LTLIBS@ +MCA_opal_reachable_STATIC_SUBDIRS = @MCA_opal_reachable_STATIC_SUBDIRS@ +MCA_opal_shmem_ALL_COMPONENTS = @MCA_opal_shmem_ALL_COMPONENTS@ +MCA_opal_shmem_ALL_SUBDIRS = @MCA_opal_shmem_ALL_SUBDIRS@ +MCA_opal_shmem_DSO_COMPONENTS = @MCA_opal_shmem_DSO_COMPONENTS@ +MCA_opal_shmem_DSO_SUBDIRS = @MCA_opal_shmem_DSO_SUBDIRS@ +MCA_opal_shmem_STATIC_COMPONENTS = @MCA_opal_shmem_STATIC_COMPONENTS@ +MCA_opal_shmem_STATIC_LTLIBS = @MCA_opal_shmem_STATIC_LTLIBS@ +MCA_opal_shmem_STATIC_SUBDIRS = @MCA_opal_shmem_STATIC_SUBDIRS@ +MCA_opal_timer_ALL_COMPONENTS = @MCA_opal_timer_ALL_COMPONENTS@ +MCA_opal_timer_ALL_SUBDIRS = @MCA_opal_timer_ALL_SUBDIRS@ +MCA_opal_timer_DSO_COMPONENTS = @MCA_opal_timer_DSO_COMPONENTS@ +MCA_opal_timer_DSO_SUBDIRS = @MCA_opal_timer_DSO_SUBDIRS@ +MCA_opal_timer_STATIC_COMPONENTS = @MCA_opal_timer_STATIC_COMPONENTS@ +MCA_opal_timer_STATIC_LTLIBS = @MCA_opal_timer_STATIC_LTLIBS@ +MCA_opal_timer_STATIC_SUBDIRS = @MCA_opal_timer_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORKS = @MCA_orte_FRAMEWORKS@ +MCA_orte_FRAMEWORKS_SUBDIRS = @MCA_orte_FRAMEWORKS_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORK_LIBS = @MCA_orte_FRAMEWORK_LIBS@ +MCA_orte_common_ALL_COMPONENTS = @MCA_orte_common_ALL_COMPONENTS@ +MCA_orte_common_ALL_SUBDIRS = @MCA_orte_common_ALL_SUBDIRS@ +MCA_orte_common_DSO_COMPONENTS = @MCA_orte_common_DSO_COMPONENTS@ +MCA_orte_common_DSO_SUBDIRS = @MCA_orte_common_DSO_SUBDIRS@ +MCA_orte_common_STATIC_COMPONENTS = @MCA_orte_common_STATIC_COMPONENTS@ +MCA_orte_common_STATIC_LTLIBS = @MCA_orte_common_STATIC_LTLIBS@ +MCA_orte_common_STATIC_SUBDIRS = @MCA_orte_common_STATIC_SUBDIRS@ +MCA_orte_errmgr_ALL_COMPONENTS = @MCA_orte_errmgr_ALL_COMPONENTS@ +MCA_orte_errmgr_ALL_SUBDIRS = @MCA_orte_errmgr_ALL_SUBDIRS@ +MCA_orte_errmgr_DSO_COMPONENTS = @MCA_orte_errmgr_DSO_COMPONENTS@ +MCA_orte_errmgr_DSO_SUBDIRS = @MCA_orte_errmgr_DSO_SUBDIRS@ +MCA_orte_errmgr_STATIC_COMPONENTS = @MCA_orte_errmgr_STATIC_COMPONENTS@ +MCA_orte_errmgr_STATIC_LTLIBS = @MCA_orte_errmgr_STATIC_LTLIBS@ +MCA_orte_errmgr_STATIC_SUBDIRS = @MCA_orte_errmgr_STATIC_SUBDIRS@ +MCA_orte_ess_ALL_COMPONENTS = @MCA_orte_ess_ALL_COMPONENTS@ +MCA_orte_ess_ALL_SUBDIRS = @MCA_orte_ess_ALL_SUBDIRS@ +MCA_orte_ess_DSO_COMPONENTS = @MCA_orte_ess_DSO_COMPONENTS@ +MCA_orte_ess_DSO_SUBDIRS = @MCA_orte_ess_DSO_SUBDIRS@ +MCA_orte_ess_STATIC_COMPONENTS = @MCA_orte_ess_STATIC_COMPONENTS@ +MCA_orte_ess_STATIC_LTLIBS = @MCA_orte_ess_STATIC_LTLIBS@ +MCA_orte_ess_STATIC_SUBDIRS = @MCA_orte_ess_STATIC_SUBDIRS@ +MCA_orte_filem_ALL_COMPONENTS = @MCA_orte_filem_ALL_COMPONENTS@ +MCA_orte_filem_ALL_SUBDIRS = @MCA_orte_filem_ALL_SUBDIRS@ +MCA_orte_filem_DSO_COMPONENTS = @MCA_orte_filem_DSO_COMPONENTS@ +MCA_orte_filem_DSO_SUBDIRS = @MCA_orte_filem_DSO_SUBDIRS@ +MCA_orte_filem_STATIC_COMPONENTS = @MCA_orte_filem_STATIC_COMPONENTS@ +MCA_orte_filem_STATIC_LTLIBS = @MCA_orte_filem_STATIC_LTLIBS@ +MCA_orte_filem_STATIC_SUBDIRS = @MCA_orte_filem_STATIC_SUBDIRS@ +MCA_orte_grpcomm_ALL_COMPONENTS = @MCA_orte_grpcomm_ALL_COMPONENTS@ +MCA_orte_grpcomm_ALL_SUBDIRS = @MCA_orte_grpcomm_ALL_SUBDIRS@ +MCA_orte_grpcomm_DSO_COMPONENTS = @MCA_orte_grpcomm_DSO_COMPONENTS@ +MCA_orte_grpcomm_DSO_SUBDIRS = @MCA_orte_grpcomm_DSO_SUBDIRS@ +MCA_orte_grpcomm_STATIC_COMPONENTS = @MCA_orte_grpcomm_STATIC_COMPONENTS@ +MCA_orte_grpcomm_STATIC_LTLIBS = @MCA_orte_grpcomm_STATIC_LTLIBS@ +MCA_orte_grpcomm_STATIC_SUBDIRS = @MCA_orte_grpcomm_STATIC_SUBDIRS@ +MCA_orte_iof_ALL_COMPONENTS = @MCA_orte_iof_ALL_COMPONENTS@ +MCA_orte_iof_ALL_SUBDIRS = @MCA_orte_iof_ALL_SUBDIRS@ +MCA_orte_iof_DSO_COMPONENTS = @MCA_orte_iof_DSO_COMPONENTS@ +MCA_orte_iof_DSO_SUBDIRS = @MCA_orte_iof_DSO_SUBDIRS@ +MCA_orte_iof_STATIC_COMPONENTS = @MCA_orte_iof_STATIC_COMPONENTS@ +MCA_orte_iof_STATIC_LTLIBS = @MCA_orte_iof_STATIC_LTLIBS@ +MCA_orte_iof_STATIC_SUBDIRS = @MCA_orte_iof_STATIC_SUBDIRS@ +MCA_orte_odls_ALL_COMPONENTS = @MCA_orte_odls_ALL_COMPONENTS@ +MCA_orte_odls_ALL_SUBDIRS = @MCA_orte_odls_ALL_SUBDIRS@ +MCA_orte_odls_DSO_COMPONENTS = @MCA_orte_odls_DSO_COMPONENTS@ +MCA_orte_odls_DSO_SUBDIRS = @MCA_orte_odls_DSO_SUBDIRS@ +MCA_orte_odls_STATIC_COMPONENTS = @MCA_orte_odls_STATIC_COMPONENTS@ +MCA_orte_odls_STATIC_LTLIBS = @MCA_orte_odls_STATIC_LTLIBS@ +MCA_orte_odls_STATIC_SUBDIRS = @MCA_orte_odls_STATIC_SUBDIRS@ +MCA_orte_oob_ALL_COMPONENTS = @MCA_orte_oob_ALL_COMPONENTS@ +MCA_orte_oob_ALL_SUBDIRS = @MCA_orte_oob_ALL_SUBDIRS@ +MCA_orte_oob_DSO_COMPONENTS = @MCA_orte_oob_DSO_COMPONENTS@ +MCA_orte_oob_DSO_SUBDIRS = @MCA_orte_oob_DSO_SUBDIRS@ +MCA_orte_oob_STATIC_COMPONENTS = @MCA_orte_oob_STATIC_COMPONENTS@ +MCA_orte_oob_STATIC_LTLIBS = @MCA_orte_oob_STATIC_LTLIBS@ +MCA_orte_oob_STATIC_SUBDIRS = @MCA_orte_oob_STATIC_SUBDIRS@ +MCA_orte_plm_ALL_COMPONENTS = @MCA_orte_plm_ALL_COMPONENTS@ +MCA_orte_plm_ALL_SUBDIRS = @MCA_orte_plm_ALL_SUBDIRS@ +MCA_orte_plm_DSO_COMPONENTS = @MCA_orte_plm_DSO_COMPONENTS@ +MCA_orte_plm_DSO_SUBDIRS = @MCA_orte_plm_DSO_SUBDIRS@ +MCA_orte_plm_STATIC_COMPONENTS = @MCA_orte_plm_STATIC_COMPONENTS@ +MCA_orte_plm_STATIC_LTLIBS = @MCA_orte_plm_STATIC_LTLIBS@ +MCA_orte_plm_STATIC_SUBDIRS = @MCA_orte_plm_STATIC_SUBDIRS@ +MCA_orte_ras_ALL_COMPONENTS = @MCA_orte_ras_ALL_COMPONENTS@ +MCA_orte_ras_ALL_SUBDIRS = @MCA_orte_ras_ALL_SUBDIRS@ +MCA_orte_ras_DSO_COMPONENTS = @MCA_orte_ras_DSO_COMPONENTS@ +MCA_orte_ras_DSO_SUBDIRS = @MCA_orte_ras_DSO_SUBDIRS@ +MCA_orte_ras_STATIC_COMPONENTS = @MCA_orte_ras_STATIC_COMPONENTS@ +MCA_orte_ras_STATIC_LTLIBS = @MCA_orte_ras_STATIC_LTLIBS@ +MCA_orte_ras_STATIC_SUBDIRS = @MCA_orte_ras_STATIC_SUBDIRS@ +MCA_orte_regx_ALL_COMPONENTS = @MCA_orte_regx_ALL_COMPONENTS@ +MCA_orte_regx_ALL_SUBDIRS = @MCA_orte_regx_ALL_SUBDIRS@ +MCA_orte_regx_DSO_COMPONENTS = @MCA_orte_regx_DSO_COMPONENTS@ +MCA_orte_regx_DSO_SUBDIRS = @MCA_orte_regx_DSO_SUBDIRS@ +MCA_orte_regx_STATIC_COMPONENTS = @MCA_orte_regx_STATIC_COMPONENTS@ +MCA_orte_regx_STATIC_LTLIBS = @MCA_orte_regx_STATIC_LTLIBS@ +MCA_orte_regx_STATIC_SUBDIRS = @MCA_orte_regx_STATIC_SUBDIRS@ +MCA_orte_rmaps_ALL_COMPONENTS = @MCA_orte_rmaps_ALL_COMPONENTS@ +MCA_orte_rmaps_ALL_SUBDIRS = @MCA_orte_rmaps_ALL_SUBDIRS@ +MCA_orte_rmaps_DSO_COMPONENTS = @MCA_orte_rmaps_DSO_COMPONENTS@ +MCA_orte_rmaps_DSO_SUBDIRS = @MCA_orte_rmaps_DSO_SUBDIRS@ +MCA_orte_rmaps_STATIC_COMPONENTS = @MCA_orte_rmaps_STATIC_COMPONENTS@ +MCA_orte_rmaps_STATIC_LTLIBS = @MCA_orte_rmaps_STATIC_LTLIBS@ +MCA_orte_rmaps_STATIC_SUBDIRS = @MCA_orte_rmaps_STATIC_SUBDIRS@ +MCA_orte_rml_ALL_COMPONENTS = @MCA_orte_rml_ALL_COMPONENTS@ +MCA_orte_rml_ALL_SUBDIRS = @MCA_orte_rml_ALL_SUBDIRS@ +MCA_orte_rml_DSO_COMPONENTS = @MCA_orte_rml_DSO_COMPONENTS@ +MCA_orte_rml_DSO_SUBDIRS = @MCA_orte_rml_DSO_SUBDIRS@ +MCA_orte_rml_STATIC_COMPONENTS = @MCA_orte_rml_STATIC_COMPONENTS@ +MCA_orte_rml_STATIC_LTLIBS = @MCA_orte_rml_STATIC_LTLIBS@ +MCA_orte_rml_STATIC_SUBDIRS = @MCA_orte_rml_STATIC_SUBDIRS@ +MCA_orte_routed_ALL_COMPONENTS = @MCA_orte_routed_ALL_COMPONENTS@ +MCA_orte_routed_ALL_SUBDIRS = @MCA_orte_routed_ALL_SUBDIRS@ +MCA_orte_routed_DSO_COMPONENTS = @MCA_orte_routed_DSO_COMPONENTS@ +MCA_orte_routed_DSO_SUBDIRS = @MCA_orte_routed_DSO_SUBDIRS@ +MCA_orte_routed_STATIC_COMPONENTS = @MCA_orte_routed_STATIC_COMPONENTS@ +MCA_orte_routed_STATIC_LTLIBS = @MCA_orte_routed_STATIC_LTLIBS@ +MCA_orte_routed_STATIC_SUBDIRS = @MCA_orte_routed_STATIC_SUBDIRS@ +MCA_orte_rtc_ALL_COMPONENTS = @MCA_orte_rtc_ALL_COMPONENTS@ +MCA_orte_rtc_ALL_SUBDIRS = @MCA_orte_rtc_ALL_SUBDIRS@ +MCA_orte_rtc_DSO_COMPONENTS = @MCA_orte_rtc_DSO_COMPONENTS@ +MCA_orte_rtc_DSO_SUBDIRS = @MCA_orte_rtc_DSO_SUBDIRS@ +MCA_orte_rtc_STATIC_COMPONENTS = @MCA_orte_rtc_STATIC_COMPONENTS@ +MCA_orte_rtc_STATIC_LTLIBS = @MCA_orte_rtc_STATIC_LTLIBS@ +MCA_orte_rtc_STATIC_SUBDIRS = @MCA_orte_rtc_STATIC_SUBDIRS@ +MCA_orte_schizo_ALL_COMPONENTS = @MCA_orte_schizo_ALL_COMPONENTS@ +MCA_orte_schizo_ALL_SUBDIRS = @MCA_orte_schizo_ALL_SUBDIRS@ +MCA_orte_schizo_DSO_COMPONENTS = @MCA_orte_schizo_DSO_COMPONENTS@ +MCA_orte_schizo_DSO_SUBDIRS = @MCA_orte_schizo_DSO_SUBDIRS@ +MCA_orte_schizo_STATIC_COMPONENTS = @MCA_orte_schizo_STATIC_COMPONENTS@ +MCA_orte_schizo_STATIC_LTLIBS = @MCA_orte_schizo_STATIC_LTLIBS@ +MCA_orte_schizo_STATIC_SUBDIRS = @MCA_orte_schizo_STATIC_SUBDIRS@ +MCA_orte_snapc_ALL_COMPONENTS = @MCA_orte_snapc_ALL_COMPONENTS@ +MCA_orte_snapc_ALL_SUBDIRS = @MCA_orte_snapc_ALL_SUBDIRS@ +MCA_orte_snapc_DSO_COMPONENTS = @MCA_orte_snapc_DSO_COMPONENTS@ +MCA_orte_snapc_DSO_SUBDIRS = @MCA_orte_snapc_DSO_SUBDIRS@ +MCA_orte_snapc_STATIC_COMPONENTS = @MCA_orte_snapc_STATIC_COMPONENTS@ +MCA_orte_snapc_STATIC_LTLIBS = @MCA_orte_snapc_STATIC_LTLIBS@ +MCA_orte_snapc_STATIC_SUBDIRS = @MCA_orte_snapc_STATIC_SUBDIRS@ +MCA_orte_sstore_ALL_COMPONENTS = @MCA_orte_sstore_ALL_COMPONENTS@ +MCA_orte_sstore_ALL_SUBDIRS = @MCA_orte_sstore_ALL_SUBDIRS@ +MCA_orte_sstore_DSO_COMPONENTS = @MCA_orte_sstore_DSO_COMPONENTS@ +MCA_orte_sstore_DSO_SUBDIRS = @MCA_orte_sstore_DSO_SUBDIRS@ +MCA_orte_sstore_STATIC_COMPONENTS = @MCA_orte_sstore_STATIC_COMPONENTS@ +MCA_orte_sstore_STATIC_LTLIBS = @MCA_orte_sstore_STATIC_LTLIBS@ +MCA_orte_sstore_STATIC_SUBDIRS = @MCA_orte_sstore_STATIC_SUBDIRS@ +MCA_orte_state_ALL_COMPONENTS = @MCA_orte_state_ALL_COMPONENTS@ +MCA_orte_state_ALL_SUBDIRS = @MCA_orte_state_ALL_SUBDIRS@ +MCA_orte_state_DSO_COMPONENTS = @MCA_orte_state_DSO_COMPONENTS@ +MCA_orte_state_DSO_SUBDIRS = @MCA_orte_state_DSO_SUBDIRS@ +MCA_orte_state_STATIC_COMPONENTS = @MCA_orte_state_STATIC_COMPONENTS@ +MCA_orte_state_STATIC_LTLIBS = @MCA_orte_state_STATIC_LTLIBS@ +MCA_orte_state_STATIC_SUBDIRS = @MCA_orte_state_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORKS = @MCA_oshmem_FRAMEWORKS@ +MCA_oshmem_FRAMEWORKS_SUBDIRS = @MCA_oshmem_FRAMEWORKS_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORK_LIBS = @MCA_oshmem_FRAMEWORK_LIBS@ +MCA_oshmem_atomic_ALL_COMPONENTS = @MCA_oshmem_atomic_ALL_COMPONENTS@ +MCA_oshmem_atomic_ALL_SUBDIRS = @MCA_oshmem_atomic_ALL_SUBDIRS@ +MCA_oshmem_atomic_DSO_COMPONENTS = @MCA_oshmem_atomic_DSO_COMPONENTS@ +MCA_oshmem_atomic_DSO_SUBDIRS = @MCA_oshmem_atomic_DSO_SUBDIRS@ +MCA_oshmem_atomic_STATIC_COMPONENTS = @MCA_oshmem_atomic_STATIC_COMPONENTS@ +MCA_oshmem_atomic_STATIC_LTLIBS = @MCA_oshmem_atomic_STATIC_LTLIBS@ +MCA_oshmem_atomic_STATIC_SUBDIRS = @MCA_oshmem_atomic_STATIC_SUBDIRS@ +MCA_oshmem_memheap_ALL_COMPONENTS = @MCA_oshmem_memheap_ALL_COMPONENTS@ +MCA_oshmem_memheap_ALL_SUBDIRS = @MCA_oshmem_memheap_ALL_SUBDIRS@ +MCA_oshmem_memheap_DIRECT_CALL_HEADER = @MCA_oshmem_memheap_DIRECT_CALL_HEADER@ +MCA_oshmem_memheap_DSO_COMPONENTS = @MCA_oshmem_memheap_DSO_COMPONENTS@ +MCA_oshmem_memheap_DSO_SUBDIRS = @MCA_oshmem_memheap_DSO_SUBDIRS@ +MCA_oshmem_memheap_STATIC_COMPONENTS = @MCA_oshmem_memheap_STATIC_COMPONENTS@ +MCA_oshmem_memheap_STATIC_LTLIBS = @MCA_oshmem_memheap_STATIC_LTLIBS@ +MCA_oshmem_memheap_STATIC_SUBDIRS = @MCA_oshmem_memheap_STATIC_SUBDIRS@ +MCA_oshmem_scoll_ALL_COMPONENTS = @MCA_oshmem_scoll_ALL_COMPONENTS@ +MCA_oshmem_scoll_ALL_SUBDIRS = @MCA_oshmem_scoll_ALL_SUBDIRS@ +MCA_oshmem_scoll_DSO_COMPONENTS = @MCA_oshmem_scoll_DSO_COMPONENTS@ +MCA_oshmem_scoll_DSO_SUBDIRS = @MCA_oshmem_scoll_DSO_SUBDIRS@ +MCA_oshmem_scoll_STATIC_COMPONENTS = @MCA_oshmem_scoll_STATIC_COMPONENTS@ +MCA_oshmem_scoll_STATIC_LTLIBS = @MCA_oshmem_scoll_STATIC_LTLIBS@ +MCA_oshmem_scoll_STATIC_SUBDIRS = @MCA_oshmem_scoll_STATIC_SUBDIRS@ +MCA_oshmem_spml_ALL_COMPONENTS = @MCA_oshmem_spml_ALL_COMPONENTS@ +MCA_oshmem_spml_ALL_SUBDIRS = @MCA_oshmem_spml_ALL_SUBDIRS@ +MCA_oshmem_spml_DIRECT_CALL_HEADER = @MCA_oshmem_spml_DIRECT_CALL_HEADER@ +MCA_oshmem_spml_DSO_COMPONENTS = @MCA_oshmem_spml_DSO_COMPONENTS@ +MCA_oshmem_spml_DSO_SUBDIRS = @MCA_oshmem_spml_DSO_SUBDIRS@ +MCA_oshmem_spml_STATIC_COMPONENTS = @MCA_oshmem_spml_STATIC_COMPONENTS@ +MCA_oshmem_spml_STATIC_LTLIBS = @MCA_oshmem_spml_STATIC_LTLIBS@ +MCA_oshmem_spml_STATIC_SUBDIRS = @MCA_oshmem_spml_STATIC_SUBDIRS@ +MCA_oshmem_sshmem_ALL_COMPONENTS = @MCA_oshmem_sshmem_ALL_COMPONENTS@ +MCA_oshmem_sshmem_ALL_SUBDIRS = @MCA_oshmem_sshmem_ALL_SUBDIRS@ +MCA_oshmem_sshmem_DSO_COMPONENTS = @MCA_oshmem_sshmem_DSO_COMPONENTS@ +MCA_oshmem_sshmem_DSO_SUBDIRS = @MCA_oshmem_sshmem_DSO_SUBDIRS@ +MCA_oshmem_sshmem_STATIC_COMPONENTS = @MCA_oshmem_sshmem_STATIC_COMPONENTS@ +MCA_oshmem_sshmem_STATIC_LTLIBS = @MCA_oshmem_sshmem_STATIC_LTLIBS@ +MCA_oshmem_sshmem_STATIC_SUBDIRS = @MCA_oshmem_sshmem_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +MPIR_UNWIND_CFLAGS = @MPIR_UNWIND_CFLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPI_ALIGNMENT_FORTRAN_CHARACTER = @OMPI_ALIGNMENT_FORTRAN_CHARACTER@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX16 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX16@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX32 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX32@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX4 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX4@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX8 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX8@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION@ +OMPI_ALIGNMENT_FORTRAN_INTEGER = @OMPI_ALIGNMENT_FORTRAN_INTEGER@ +OMPI_ALIGNMENT_FORTRAN_INTEGER1 = @OMPI_ALIGNMENT_FORTRAN_INTEGER1@ +OMPI_ALIGNMENT_FORTRAN_INTEGER16 = @OMPI_ALIGNMENT_FORTRAN_INTEGER16@ +OMPI_ALIGNMENT_FORTRAN_INTEGER2 = @OMPI_ALIGNMENT_FORTRAN_INTEGER2@ +OMPI_ALIGNMENT_FORTRAN_INTEGER4 = @OMPI_ALIGNMENT_FORTRAN_INTEGER4@ +OMPI_ALIGNMENT_FORTRAN_INTEGER8 = @OMPI_ALIGNMENT_FORTRAN_INTEGER8@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL = @OMPI_ALIGNMENT_FORTRAN_LOGICAL@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL1 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL1@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL2 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL2@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL4 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL4@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL8 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL8@ +OMPI_ALIGNMENT_FORTRAN_REAL = @OMPI_ALIGNMENT_FORTRAN_REAL@ +OMPI_ALIGNMENT_FORTRAN_REAL16 = @OMPI_ALIGNMENT_FORTRAN_REAL16@ +OMPI_ALIGNMENT_FORTRAN_REAL2 = @OMPI_ALIGNMENT_FORTRAN_REAL2@ +OMPI_ALIGNMENT_FORTRAN_REAL4 = @OMPI_ALIGNMENT_FORTRAN_REAL4@ +OMPI_ALIGNMENT_FORTRAN_REAL8 = @OMPI_ALIGNMENT_FORTRAN_REAL8@ +OMPI_CONTRIB_DIST_SUBDIRS = @OMPI_CONTRIB_DIST_SUBDIRS@ +OMPI_CONTRIB_SUBDIRS = @OMPI_CONTRIB_SUBDIRS@ +OMPI_CXX_ABSOLUTE = @OMPI_CXX_ABSOLUTE@ +OMPI_ENABLE_GREQUEST_EXTENSIONS = @OMPI_ENABLE_GREQUEST_EXTENSIONS@ +OMPI_ENABLE_MPI1_COMPAT = @OMPI_ENABLE_MPI1_COMPAT@ +OMPI_F08_SUFFIX = @OMPI_F08_SUFFIX@ +OMPI_FC = @OMPI_FC@ +OMPI_FC_ABSOLUTE = @OMPI_FC_ABSOLUTE@ +OMPI_FC_MODULE_FLAG = @OMPI_FC_MODULE_FLAG@ +OMPI_FORTRAN_BUILD_SIZEOF = @OMPI_FORTRAN_BUILD_SIZEOF@ +OMPI_FORTRAN_CAPS = @OMPI_FORTRAN_CAPS@ +OMPI_FORTRAN_CKINDS = @OMPI_FORTRAN_CKINDS@ +OMPI_FORTRAN_DOUBLE_UNDERSCORE = @OMPI_FORTRAN_DOUBLE_UNDERSCORE@ +OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS = @OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS@ +OMPI_FORTRAN_F08_PREDECL = @OMPI_FORTRAN_F08_PREDECL@ +OMPI_FORTRAN_F08_TYPE = @OMPI_FORTRAN_F08_TYPE@ +OMPI_FORTRAN_HAVE_ABSTRACT = @OMPI_FORTRAN_HAVE_ABSTRACT@ +OMPI_FORTRAN_HAVE_ASYNCHRONOUS = @OMPI_FORTRAN_HAVE_ASYNCHRONOUS@ +OMPI_FORTRAN_HAVE_BIND_C = @OMPI_FORTRAN_HAVE_BIND_C@ +OMPI_FORTRAN_HAVE_C_FUNLOC = @OMPI_FORTRAN_HAVE_C_FUNLOC@ +OMPI_FORTRAN_HAVE_INTERFACE = @OMPI_FORTRAN_HAVE_INTERFACE@ +OMPI_FORTRAN_HAVE_ISO_C_BINDING = @OMPI_FORTRAN_HAVE_ISO_C_BINDING@ +OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV = @OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV@ +OMPI_FORTRAN_HAVE_PRIVATE = @OMPI_FORTRAN_HAVE_PRIVATE@ +OMPI_FORTRAN_HAVE_PROCEDURE = @OMPI_FORTRAN_HAVE_PROCEDURE@ +OMPI_FORTRAN_HAVE_STORAGE_SIZE = @OMPI_FORTRAN_HAVE_STORAGE_SIZE@ +OMPI_FORTRAN_HAVE_USE_ONLY = @OMPI_FORTRAN_HAVE_USE_ONLY@ +OMPI_FORTRAN_IGNORE_TKR_PREDECL = @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ +OMPI_FORTRAN_IGNORE_TKR_TYPE = @OMPI_FORTRAN_IGNORE_TKR_TYPE@ +OMPI_FORTRAN_IKINDS = @OMPI_FORTRAN_IKINDS@ +OMPI_FORTRAN_MAX_ARRAY_RANK = @OMPI_FORTRAN_MAX_ARRAY_RANK@ +OMPI_FORTRAN_NEED_WRAPPER_ROUTINES = @OMPI_FORTRAN_NEED_WRAPPER_ROUTINES@ +OMPI_FORTRAN_PLAIN = @OMPI_FORTRAN_PLAIN@ +OMPI_FORTRAN_RKINDS = @OMPI_FORTRAN_RKINDS@ +OMPI_FORTRAN_SINGLE_UNDERSCORE = @OMPI_FORTRAN_SINGLE_UNDERSCORE@ +OMPI_FORTRAN_STATUS_SIZE = @OMPI_FORTRAN_STATUS_SIZE@ +OMPI_FORTRAN_USEMPIF08_LIB = @OMPI_FORTRAN_USEMPIF08_LIB@ +OMPI_FORTRAN_USEMPI_DIR = @OMPI_FORTRAN_USEMPI_DIR@ +OMPI_FORTRAN_USEMPI_LIB = @OMPI_FORTRAN_USEMPI_LIB@ +OMPI_F_SUFFIX = @OMPI_F_SUFFIX@ +OMPI_GREEK_VERSION = @OMPI_GREEK_VERSION@ +OMPI_HAVE_FORTRAN_CHARACTER = @OMPI_HAVE_FORTRAN_CHARACTER@ +OMPI_HAVE_FORTRAN_COMPLEX = @OMPI_HAVE_FORTRAN_COMPLEX@ +OMPI_HAVE_FORTRAN_COMPLEX16 = @OMPI_HAVE_FORTRAN_COMPLEX16@ +OMPI_HAVE_FORTRAN_COMPLEX32 = @OMPI_HAVE_FORTRAN_COMPLEX32@ +OMPI_HAVE_FORTRAN_COMPLEX4 = @OMPI_HAVE_FORTRAN_COMPLEX4@ +OMPI_HAVE_FORTRAN_COMPLEX8 = @OMPI_HAVE_FORTRAN_COMPLEX8@ +OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX = @OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX@ +OMPI_HAVE_FORTRAN_DOUBLE_PRECISION = @OMPI_HAVE_FORTRAN_DOUBLE_PRECISION@ +OMPI_HAVE_FORTRAN_INTEGER = @OMPI_HAVE_FORTRAN_INTEGER@ +OMPI_HAVE_FORTRAN_INTEGER1 = @OMPI_HAVE_FORTRAN_INTEGER1@ +OMPI_HAVE_FORTRAN_INTEGER16 = @OMPI_HAVE_FORTRAN_INTEGER16@ +OMPI_HAVE_FORTRAN_INTEGER2 = @OMPI_HAVE_FORTRAN_INTEGER2@ +OMPI_HAVE_FORTRAN_INTEGER4 = @OMPI_HAVE_FORTRAN_INTEGER4@ +OMPI_HAVE_FORTRAN_INTEGER8 = @OMPI_HAVE_FORTRAN_INTEGER8@ +OMPI_HAVE_FORTRAN_LOGICAL = @OMPI_HAVE_FORTRAN_LOGICAL@ +OMPI_HAVE_FORTRAN_LOGICAL1 = @OMPI_HAVE_FORTRAN_LOGICAL1@ +OMPI_HAVE_FORTRAN_LOGICAL2 = @OMPI_HAVE_FORTRAN_LOGICAL2@ +OMPI_HAVE_FORTRAN_LOGICAL4 = @OMPI_HAVE_FORTRAN_LOGICAL4@ +OMPI_HAVE_FORTRAN_LOGICAL8 = @OMPI_HAVE_FORTRAN_LOGICAL8@ +OMPI_HAVE_FORTRAN_REAL = @OMPI_HAVE_FORTRAN_REAL@ +OMPI_HAVE_FORTRAN_REAL16 = @OMPI_HAVE_FORTRAN_REAL16@ +OMPI_HAVE_FORTRAN_REAL2 = @OMPI_HAVE_FORTRAN_REAL2@ +OMPI_HAVE_FORTRAN_REAL4 = @OMPI_HAVE_FORTRAN_REAL4@ +OMPI_HAVE_FORTRAN_REAL8 = @OMPI_HAVE_FORTRAN_REAL8@ +OMPI_JDK_CPPFLAGS = @OMPI_JDK_CPPFLAGS@ +OMPI_KIND_FORTRAN_CHARACTER = @OMPI_KIND_FORTRAN_CHARACTER@ +OMPI_KIND_FORTRAN_COMPLEX = @OMPI_KIND_FORTRAN_COMPLEX@ +OMPI_KIND_FORTRAN_COMPLEX16 = @OMPI_KIND_FORTRAN_COMPLEX16@ +OMPI_KIND_FORTRAN_COMPLEX32 = @OMPI_KIND_FORTRAN_COMPLEX32@ +OMPI_KIND_FORTRAN_COMPLEX4 = @OMPI_KIND_FORTRAN_COMPLEX4@ +OMPI_KIND_FORTRAN_COMPLEX8 = @OMPI_KIND_FORTRAN_COMPLEX8@ +OMPI_KIND_FORTRAN_DOUBLE_COMPLEX = @OMPI_KIND_FORTRAN_DOUBLE_COMPLEX@ +OMPI_KIND_FORTRAN_DOUBLE_PRECISION = @OMPI_KIND_FORTRAN_DOUBLE_PRECISION@ +OMPI_KIND_FORTRAN_INTEGER = @OMPI_KIND_FORTRAN_INTEGER@ +OMPI_KIND_FORTRAN_INTEGER1 = @OMPI_KIND_FORTRAN_INTEGER1@ +OMPI_KIND_FORTRAN_INTEGER16 = @OMPI_KIND_FORTRAN_INTEGER16@ +OMPI_KIND_FORTRAN_INTEGER2 = @OMPI_KIND_FORTRAN_INTEGER2@ +OMPI_KIND_FORTRAN_INTEGER4 = @OMPI_KIND_FORTRAN_INTEGER4@ +OMPI_KIND_FORTRAN_INTEGER8 = @OMPI_KIND_FORTRAN_INTEGER8@ +OMPI_KIND_FORTRAN_LOGICAL = @OMPI_KIND_FORTRAN_LOGICAL@ +OMPI_KIND_FORTRAN_LOGICAL1 = @OMPI_KIND_FORTRAN_LOGICAL1@ +OMPI_KIND_FORTRAN_LOGICAL2 = @OMPI_KIND_FORTRAN_LOGICAL2@ +OMPI_KIND_FORTRAN_LOGICAL4 = @OMPI_KIND_FORTRAN_LOGICAL4@ +OMPI_KIND_FORTRAN_LOGICAL8 = @OMPI_KIND_FORTRAN_LOGICAL8@ +OMPI_KIND_FORTRAN_REAL = @OMPI_KIND_FORTRAN_REAL@ +OMPI_KIND_FORTRAN_REAL16 = @OMPI_KIND_FORTRAN_REAL16@ +OMPI_KIND_FORTRAN_REAL2 = @OMPI_KIND_FORTRAN_REAL2@ +OMPI_KIND_FORTRAN_REAL4 = @OMPI_KIND_FORTRAN_REAL4@ +OMPI_KIND_FORTRAN_REAL8 = @OMPI_KIND_FORTRAN_REAL8@ +OMPI_LIBMPI_EXTRA_LDFLAGS = @OMPI_LIBMPI_EXTRA_LDFLAGS@ +OMPI_LIBMPI_EXTRA_LIBS = @OMPI_LIBMPI_EXTRA_LIBS@ +OMPI_LIBMPI_NAME = @OMPI_LIBMPI_NAME@ +OMPI_MAJOR_VERSION = @OMPI_MAJOR_VERSION@ +OMPI_MINOR_VERSION = @OMPI_MINOR_VERSION@ +OMPI_MPIEXT_ALL_SUBDIRS = @OMPI_MPIEXT_ALL_SUBDIRS@ +OMPI_MPIEXT_C_DIRS = @OMPI_MPIEXT_C_DIRS@ +OMPI_MPIEXT_C_LIBS = @OMPI_MPIEXT_C_LIBS@ +OMPI_MPIEXT_MPIFH_DIRS = @OMPI_MPIEXT_MPIFH_DIRS@ +OMPI_MPIEXT_MPIFH_LIBS = @OMPI_MPIEXT_MPIFH_LIBS@ +OMPI_MPIEXT_USEMPIF08_DIRS = @OMPI_MPIEXT_USEMPIF08_DIRS@ +OMPI_MPIEXT_USEMPIF08_LIBS = @OMPI_MPIEXT_USEMPIF08_LIBS@ +OMPI_MPIEXT_USEMPI_DIRS = @OMPI_MPIEXT_USEMPI_DIRS@ +OMPI_MPIEXT_USEMPI_LIBS = @OMPI_MPIEXT_USEMPI_LIBS@ +OMPI_MPI_ADDRESS_KIND = @OMPI_MPI_ADDRESS_KIND@ +OMPI_MPI_BIND_PREFIX = @OMPI_MPI_BIND_PREFIX@ +OMPI_MPI_COUNT_KIND = @OMPI_MPI_COUNT_KIND@ +OMPI_MPI_INTEGER_KIND = @OMPI_MPI_INTEGER_KIND@ +OMPI_MPI_OFFSET_KIND = @OMPI_MPI_OFFSET_KIND@ +OMPI_MPI_PREFIX = @OMPI_MPI_PREFIX@ +OMPI_PKG_CONFIG_LDFLAGS = @OMPI_PKG_CONFIG_LDFLAGS@ +OMPI_RELEASE_DATE = @OMPI_RELEASE_DATE@ +OMPI_RELEASE_VERSION = @OMPI_RELEASE_VERSION@ +OMPI_REPO_REV = @OMPI_REPO_REV@ +OMPI_SIZEOF_FORTRAN_CHARACTER = @OMPI_SIZEOF_FORTRAN_CHARACTER@ +OMPI_SIZEOF_FORTRAN_COMPLEX = @OMPI_SIZEOF_FORTRAN_COMPLEX@ +OMPI_SIZEOF_FORTRAN_COMPLEX16 = @OMPI_SIZEOF_FORTRAN_COMPLEX16@ +OMPI_SIZEOF_FORTRAN_COMPLEX32 = @OMPI_SIZEOF_FORTRAN_COMPLEX32@ +OMPI_SIZEOF_FORTRAN_COMPLEX4 = @OMPI_SIZEOF_FORTRAN_COMPLEX4@ +OMPI_SIZEOF_FORTRAN_COMPLEX8 = @OMPI_SIZEOF_FORTRAN_COMPLEX8@ +OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX = @OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX@ +OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION = @OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION@ +OMPI_SIZEOF_FORTRAN_INTEGER = @OMPI_SIZEOF_FORTRAN_INTEGER@ +OMPI_SIZEOF_FORTRAN_INTEGER1 = @OMPI_SIZEOF_FORTRAN_INTEGER1@ +OMPI_SIZEOF_FORTRAN_INTEGER16 = @OMPI_SIZEOF_FORTRAN_INTEGER16@ +OMPI_SIZEOF_FORTRAN_INTEGER2 = @OMPI_SIZEOF_FORTRAN_INTEGER2@ +OMPI_SIZEOF_FORTRAN_INTEGER4 = @OMPI_SIZEOF_FORTRAN_INTEGER4@ +OMPI_SIZEOF_FORTRAN_INTEGER8 = @OMPI_SIZEOF_FORTRAN_INTEGER8@ +OMPI_SIZEOF_FORTRAN_LOGICAL = @OMPI_SIZEOF_FORTRAN_LOGICAL@ +OMPI_SIZEOF_FORTRAN_LOGICAL1 = @OMPI_SIZEOF_FORTRAN_LOGICAL1@ +OMPI_SIZEOF_FORTRAN_LOGICAL2 = @OMPI_SIZEOF_FORTRAN_LOGICAL2@ +OMPI_SIZEOF_FORTRAN_LOGICAL4 = @OMPI_SIZEOF_FORTRAN_LOGICAL4@ +OMPI_SIZEOF_FORTRAN_LOGICAL8 = @OMPI_SIZEOF_FORTRAN_LOGICAL8@ +OMPI_SIZEOF_FORTRAN_REAL = @OMPI_SIZEOF_FORTRAN_REAL@ +OMPI_SIZEOF_FORTRAN_REAL16 = @OMPI_SIZEOF_FORTRAN_REAL16@ +OMPI_SIZEOF_FORTRAN_REAL2 = @OMPI_SIZEOF_FORTRAN_REAL2@ +OMPI_SIZEOF_FORTRAN_REAL4 = @OMPI_SIZEOF_FORTRAN_REAL4@ +OMPI_SIZEOF_FORTRAN_REAL8 = @OMPI_SIZEOF_FORTRAN_REAL8@ +OMPI_TARBALL_VERSION = @OMPI_TARBALL_VERSION@ +OMPI_TOP_BUILDDIR = @OMPI_TOP_BUILDDIR@ +OMPI_TOP_SRCDIR = @OMPI_TOP_SRCDIR@ +OMPI_VERSION = @OMPI_VERSION@ +OMPI_WRAPPER_CXX_LIB = @OMPI_WRAPPER_CXX_LIB@ +OMPI_WRAPPER_CXX_REQUIRED_FILE = @OMPI_WRAPPER_CXX_REQUIRED_FILE@ +OMPI_WRAPPER_EXTRA_CFLAGS = @OMPI_WRAPPER_EXTRA_CFLAGS@ +OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_CPPFLAGS = @OMPI_WRAPPER_EXTRA_CPPFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS = @OMPI_WRAPPER_EXTRA_CXXFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FCFLAGS = @OMPI_WRAPPER_EXTRA_FCFLAGS@ +OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FC_LDFLAGS = @OMPI_WRAPPER_EXTRA_FC_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LDFLAGS = @OMPI_WRAPPER_EXTRA_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LIBS = @OMPI_WRAPPER_EXTRA_LIBS@ +OMPI_WRAPPER_FORTRAN_REQUIRED_FILE = @OMPI_WRAPPER_FORTRAN_REQUIRED_FILE@ +OMPI_WRAPPER_INCLUDEDIR = @OMPI_WRAPPER_INCLUDEDIR@ +OMPI_WRAPPER_LIBDIR = @OMPI_WRAPPER_LIBDIR@ +OPAL_ASM_GSYM = @OPAL_ASM_GSYM@ +OPAL_ASM_LSYM = @OPAL_ASM_LSYM@ +OPAL_ASM_SUPPORT_64BIT = @OPAL_ASM_SUPPORT_64BIT@ +OPAL_ASM_TEXT = @OPAL_ASM_TEXT@ +OPAL_ASM_TYPE = @OPAL_ASM_TYPE@ +OPAL_ASSEMBLY_ARCH = @OPAL_ASSEMBLY_ARCH@ +OPAL_ASSEMBLY_BUILTIN = @OPAL_ASSEMBLY_BUILTIN@ +OPAL_ASSEMBLY_FORMAT = @OPAL_ASSEMBLY_FORMAT@ +OPAL_AS_GLOBAL = @OPAL_AS_GLOBAL@ +OPAL_AS_LABEL_SUFFIX = @OPAL_AS_LABEL_SUFFIX@ +OPAL_CC_ABSOLUTE = @OPAL_CC_ABSOLUTE@ +OPAL_CONFIGURE_CLI = @OPAL_CONFIGURE_CLI@ +OPAL_CONFIGURE_DATE = @OPAL_CONFIGURE_DATE@ +OPAL_CONFIGURE_HOST = @OPAL_CONFIGURE_HOST@ +OPAL_CONFIGURE_USER = @OPAL_CONFIGURE_USER@ +OPAL_CXX_ABSOLUTE = @OPAL_CXX_ABSOLUTE@ +OPAL_DEFAULT_MCA_PARAM_CONF = @OPAL_DEFAULT_MCA_PARAM_CONF@ +OPAL_DYN_LIB_PREFIX = @OPAL_DYN_LIB_PREFIX@ +OPAL_DYN_LIB_SUFFIX = @OPAL_DYN_LIB_SUFFIX@ +OPAL_GREEK_VERSION = @OPAL_GREEK_VERSION@ +OPAL_LIB_PREFIX = @OPAL_LIB_PREFIX@ +OPAL_MAJOR_VERSION = @OPAL_MAJOR_VERSION@ +OPAL_MAX_DATAREP_STRING = @OPAL_MAX_DATAREP_STRING@ +OPAL_MAX_ERROR_STRING = @OPAL_MAX_ERROR_STRING@ +OPAL_MAX_INFO_KEY = @OPAL_MAX_INFO_KEY@ +OPAL_MAX_INFO_VAL = @OPAL_MAX_INFO_VAL@ +OPAL_MAX_OBJECT_NAME = @OPAL_MAX_OBJECT_NAME@ +OPAL_MAX_PORT_NAME = @OPAL_MAX_PORT_NAME@ +OPAL_MAX_PROCESSOR_NAME = @OPAL_MAX_PROCESSOR_NAME@ +OPAL_MINOR_VERSION = @OPAL_MINOR_VERSION@ +OPAL_PARAM_FROM_PLATFORM = @OPAL_PARAM_FROM_PLATFORM@ +OPAL_PKG_CONFIG_LDFLAGS = @OPAL_PKG_CONFIG_LDFLAGS@ +OPAL_RELEASE_DATE = @OPAL_RELEASE_DATE@ +OPAL_RELEASE_VERSION = @OPAL_RELEASE_VERSION@ +OPAL_REPO_REV = @OPAL_REPO_REV@ +OPAL_TARBALL_VERSION = @OPAL_TARBALL_VERSION@ +OPAL_TOP_BUILDDIR = @OPAL_TOP_BUILDDIR@ +OPAL_TOP_SRCDIR = @OPAL_TOP_SRCDIR@ +OPAL_VERSION = @OPAL_VERSION@ +OPAL_WRAPPER_EXTRA_CFLAGS = @OPAL_WRAPPER_EXTRA_CFLAGS@ +OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_CPPFLAGS = @OPAL_WRAPPER_EXTRA_CPPFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS = @OPAL_WRAPPER_EXTRA_CXXFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_LDFLAGS = @OPAL_WRAPPER_EXTRA_LDFLAGS@ +OPAL_WRAPPER_EXTRA_LIBS = @OPAL_WRAPPER_EXTRA_LIBS@ +ORTE_GREEK_VERSION = @ORTE_GREEK_VERSION@ +ORTE_LIB_PREFIX = @ORTE_LIB_PREFIX@ +ORTE_MAJOR_VERSION = @ORTE_MAJOR_VERSION@ +ORTE_MINOR_VERSION = @ORTE_MINOR_VERSION@ +ORTE_PKG_CONFIG_LDFLAGS = @ORTE_PKG_CONFIG_LDFLAGS@ +ORTE_RELEASE_DATE = @ORTE_RELEASE_DATE@ +ORTE_RELEASE_VERSION = @ORTE_RELEASE_VERSION@ +ORTE_REPO_REV = @ORTE_REPO_REV@ +ORTE_TARBALL_VERSION = @ORTE_TARBALL_VERSION@ +ORTE_TOP_BUILDDIR = @ORTE_TOP_BUILDDIR@ +ORTE_TOP_SRCDIR = @ORTE_TOP_SRCDIR@ +ORTE_VERSION = @ORTE_VERSION@ +ORTE_WRAPPER_EXTRA_CFLAGS = @ORTE_WRAPPER_EXTRA_CFLAGS@ +ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX = @ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX@ +ORTE_WRAPPER_EXTRA_CPPFLAGS = @ORTE_WRAPPER_EXTRA_CPPFLAGS@ +ORTE_WRAPPER_EXTRA_LDFLAGS = @ORTE_WRAPPER_EXTRA_LDFLAGS@ +ORTE_WRAPPER_EXTRA_LIBS = @ORTE_WRAPPER_EXTRA_LIBS@ +OSHMEM_GREEK_VERSION = @OSHMEM_GREEK_VERSION@ +OSHMEM_LIBSHMEM_EXTRA_LDFLAGS = @OSHMEM_LIBSHMEM_EXTRA_LDFLAGS@ +OSHMEM_LIBSHMEM_EXTRA_LIBS = @OSHMEM_LIBSHMEM_EXTRA_LIBS@ +OSHMEM_MAJOR_VERSION = @OSHMEM_MAJOR_VERSION@ +OSHMEM_MINOR_VERSION = @OSHMEM_MINOR_VERSION@ +OSHMEM_RELEASE_DATE = @OSHMEM_RELEASE_DATE@ +OSHMEM_RELEASE_VERSION = @OSHMEM_RELEASE_VERSION@ +OSHMEM_REPO_REV = @OSHMEM_REPO_REV@ +OSHMEM_TARBALL_VERSION = @OSHMEM_TARBALL_VERSION@ +OSHMEM_TOP_BUILDDIR = @OSHMEM_TOP_BUILDDIR@ +OSHMEM_TOP_SRCDIR = @OSHMEM_TOP_SRCDIR@ +OSHMEM_VERSION = @OSHMEM_VERSION@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +QRSH = @QRSH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SINGULARITY = @SINGULARITY@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_FC = @ac_ct_FC@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +atomic_mxm_CFLAGS = @atomic_mxm_CFLAGS@ +atomic_mxm_CPPFLAGS = @atomic_mxm_CPPFLAGS@ +atomic_mxm_LDFLAGS = @atomic_mxm_LDFLAGS@ +atomic_mxm_LIBS = @atomic_mxm_LIBS@ +atomic_ucx_CFLAGS = @atomic_ucx_CFLAGS@ +atomic_ucx_CPPFLAGS = @atomic_ucx_CPPFLAGS@ +atomic_ucx_LDFLAGS = @atomic_ucx_LDFLAGS@ +atomic_ucx_LIBS = @atomic_ucx_LIBS@ +bindir = @bindir@ +btl_openib_CFLAGS = @btl_openib_CFLAGS@ +btl_openib_CPPFLAGS = @btl_openib_CPPFLAGS@ +btl_openib_LDFLAGS = @btl_openib_LDFLAGS@ +btl_openib_LIBS = @btl_openib_LIBS@ +btl_portals4_CPPFLAGS = @btl_portals4_CPPFLAGS@ +btl_portals4_LDFLAGS = @btl_portals4_LDFLAGS@ +btl_portals4_LIBS = @btl_portals4_LIBS@ +btl_uct_CPPFLAGS = @btl_uct_CPPFLAGS@ +btl_uct_LDFLAGS = @btl_uct_LDFLAGS@ +btl_uct_LIBS = @btl_uct_LIBS@ +btl_ugni_CPPFLAGS = @btl_ugni_CPPFLAGS@ +btl_ugni_LDFLAGS = @btl_ugni_LDFLAGS@ +btl_ugni_LIBS = @btl_ugni_LIBS@ +btl_vader_CFLAGS = @btl_vader_CFLAGS@ +btl_vader_CPPFLAGS = @btl_vader_CPPFLAGS@ +btl_vader_LDFLAGS = @btl_vader_LDFLAGS@ +btl_vader_LIBS = @btl_vader_LIBS@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +coll_fca_CFLAGS = @coll_fca_CFLAGS@ +coll_fca_CPPFLAGS = @coll_fca_CPPFLAGS@ +coll_fca_HOME = @coll_fca_HOME@ +coll_fca_LDFLAGS = @coll_fca_LDFLAGS@ +coll_fca_LIBS = @coll_fca_LIBS@ +coll_hcoll_CFLAGS = @coll_hcoll_CFLAGS@ +coll_hcoll_CPPFLAGS = @coll_hcoll_CPPFLAGS@ +coll_hcoll_LDFLAGS = @coll_hcoll_LDFLAGS@ +coll_hcoll_LIBS = @coll_hcoll_LIBS@ +coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ +coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ +coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ +common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ +common_alps_LDFLAGS = @common_alps_LDFLAGS@ +common_alps_LIBS = @common_alps_LIBS@ +common_cuda_CPPFLAGS = @common_cuda_CPPFLAGS@ +common_ucx_CFLAGS = @common_ucx_CFLAGS@ +common_ucx_CPPFLAGS = @common_ucx_CPPFLAGS@ +common_ucx_LDFLAGS = @common_ucx_LDFLAGS@ +common_ucx_LIBS = @common_ucx_LIBS@ +common_verbs_CFLAGS = @common_verbs_CFLAGS@ +common_verbs_CPPFLAGS = @common_verbs_CPPFLAGS@ +common_verbs_LDFLAGS = @common_verbs_LDFLAGS@ +common_verbs_LIBS = @common_verbs_LIBS@ +common_verbs_usnic_CPPFLAGS = @common_verbs_usnic_CPPFLAGS@ +common_verbs_usnic_LDFLAGS = @common_verbs_usnic_LDFLAGS@ +common_verbs_usnic_LIBS = @common_verbs_usnic_LIBS@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +ess_alps_CPPFLAGS = @ess_alps_CPPFLAGS@ +ess_alps_LDFLAGS = @ess_alps_LDFLAGS@ +ess_alps_LIBS = @ess_alps_LIBS@ +ess_lsf_CPPFLAGS = @ess_lsf_CPPFLAGS@ +ess_lsf_LDFLAGS = @ess_lsf_LDFLAGS@ +ess_lsf_LIBS = @ess_lsf_LIBS@ +ess_slurm_CPPFLAGS = @ess_slurm_CPPFLAGS@ +ess_slurm_LDFLAGS = @ess_slurm_LDFLAGS@ +ess_slurm_LIBS = @ess_slurm_LIBS@ +ess_tm_CPPFLAGS = @ess_tm_CPPFLAGS@ +ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ +ess_tm_LIBS = @ess_tm_LIBS@ +exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ +fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ +fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ +fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ +fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ +fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ +fs_lustre_LIBS = @fs_lustre_LIBS@ +fs_pvfs2_CPPFLAGS = @fs_pvfs2_CPPFLAGS@ +fs_pvfs2_LDFLAGS = @fs_pvfs2_LDFLAGS@ +fs_pvfs2_LIBS = @fs_pvfs2_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ +libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ +libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ +libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ +libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ +libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ +libmca_opal_common_verbs_so_version = @libmca_opal_common_verbs_so_version@ +libmca_orte_common_alps_so_version = @libmca_orte_common_alps_so_version@ +libmpi_cxx_so_version = @libmpi_cxx_so_version@ +libmpi_java_so_version = @libmpi_java_so_version@ +libmpi_mpifh_so_version = @libmpi_mpifh_so_version@ +libmpi_so_version = @libmpi_so_version@ +libmpi_usempi_ignore_tkr_so_version = @libmpi_usempi_ignore_tkr_so_version@ +libmpi_usempi_tkr_so_version = @libmpi_usempi_tkr_so_version@ +libmpi_usempif08_so_version = @libmpi_usempif08_so_version@ +libompitrace_so_version = @libompitrace_so_version@ +libopen_pal_so_version = @libopen_pal_so_version@ +libopen_rte_so_version = @libopen_rte_so_version@ +liboshmem_so_version = @liboshmem_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +memory_malloc_solaris_LIBS = @memory_malloc_solaris_LIBS@ +mkdir_p = @mkdir_p@ +mpool_memkind_CPPFLAGS = @mpool_memkind_CPPFLAGS@ +mpool_memkind_LDFLAGS = @mpool_memkind_LDFLAGS@ +mpool_memkind_LIBS = @mpool_memkind_LIBS@ +mtl_portals4_CPPFLAGS = @mtl_portals4_CPPFLAGS@ +mtl_portals4_LDFLAGS = @mtl_portals4_LDFLAGS@ +mtl_portals4_LIBS = @mtl_portals4_LIBS@ +mtl_psm2_CFLAGS = @mtl_psm2_CFLAGS@ +mtl_psm2_CPPFLAGS = @mtl_psm2_CPPFLAGS@ +mtl_psm2_LDFLAGS = @mtl_psm2_LDFLAGS@ +mtl_psm2_LIBS = @mtl_psm2_LIBS@ +mtl_psm_CFLAGS = @mtl_psm_CFLAGS@ +mtl_psm_CPPFLAGS = @mtl_psm_CPPFLAGS@ +mtl_psm_LDFLAGS = @mtl_psm_LDFLAGS@ +mtl_psm_LIBS = @mtl_psm_LIBS@ +odls_alps_CPPFLAGS = @odls_alps_CPPFLAGS@ +odls_alps_LDFLAGS = @odls_alps_LDFLAGS@ +odls_alps_LIBS = @odls_alps_LIBS@ +oldincludedir = @oldincludedir@ +ompidatadir = @ompidatadir@ +ompiincludedir = @ompiincludedir@ +ompilibdir = @ompilibdir@ +oob_alps_CPPFLAGS = @oob_alps_CPPFLAGS@ +oob_alps_LDFLAGS = @oob_alps_LDFLAGS@ +oob_alps_LIBS = @oob_alps_LIBS@ +opal_datatype_cuda_CPPFLAGS = @opal_datatype_cuda_CPPFLAGS@ +opal_dl_dlopen_LIBS = @opal_dl_dlopen_LIBS@ +opal_dl_libltdl_CPPFLAGS = @opal_dl_libltdl_CPPFLAGS@ +opal_dl_libltdl_LDFLAGS = @opal_dl_libltdl_LDFLAGS@ +opal_dl_libltdl_LIBS = @opal_dl_libltdl_LIBS@ +opal_event_external_CPPFLAGS = @opal_event_external_CPPFLAGS@ +opal_event_external_LDFLAGS = @opal_event_external_LDFLAGS@ +opal_event_external_LIBS = @opal_event_external_LIBS@ +opal_hwloc_external_LDFLAGS = @opal_hwloc_external_LDFLAGS@ +opal_hwloc_external_LIBS = @opal_hwloc_external_LIBS@ +opal_hwloc_hwloc201_CFLAGS = @opal_hwloc_hwloc201_CFLAGS@ +opal_hwloc_hwloc201_CPPFLAGS = @opal_hwloc_hwloc201_CPPFLAGS@ +opal_hwloc_hwloc201_LDFLAGS = @opal_hwloc_hwloc201_LDFLAGS@ +opal_hwloc_hwloc201_LIBS = @opal_hwloc_hwloc201_LIBS@ +opal_memchecker_valgrind_CPPFLAGS = @opal_memchecker_valgrind_CPPFLAGS@ +opal_ofi_CPPFLAGS = @opal_ofi_CPPFLAGS@ +opal_ofi_LDFLAGS = @opal_ofi_LDFLAGS@ +opal_ofi_LIBS = @opal_ofi_LIBS@ +opal_pmi1_CPPFLAGS = @opal_pmi1_CPPFLAGS@ +opal_pmi1_LDFLAGS = @opal_pmi1_LDFLAGS@ +opal_pmi1_LIBS = @opal_pmi1_LIBS@ +opal_pmi1_rpath = @opal_pmi1_rpath@ +opal_pmi2_CPPFLAGS = @opal_pmi2_CPPFLAGS@ +opal_pmi2_LDFLAGS = @opal_pmi2_LDFLAGS@ +opal_pmi2_LIBS = @opal_pmi2_LIBS@ +opal_pmi2_rpath = @opal_pmi2_rpath@ +opal_pmix_ext1x_CPPFLAGS = @opal_pmix_ext1x_CPPFLAGS@ +opal_pmix_ext1x_LDFLAGS = @opal_pmix_ext1x_LDFLAGS@ +opal_pmix_ext1x_LIBS = @opal_pmix_ext1x_LIBS@ +opal_pmix_ext2x_CPPFLAGS = @opal_pmix_ext2x_CPPFLAGS@ +opal_pmix_ext2x_LDFLAGS = @opal_pmix_ext2x_LDFLAGS@ +opal_pmix_ext2x_LIBS = @opal_pmix_ext2x_LIBS@ +opal_pmix_ext3x_CPPFLAGS = @opal_pmix_ext3x_CPPFLAGS@ +opal_pmix_ext3x_LDFLAGS = @opal_pmix_ext3x_LDFLAGS@ +opal_pmix_ext3x_LIBS = @opal_pmix_ext3x_LIBS@ +opal_pmix_pmix3x_CPPFLAGS = @opal_pmix_pmix3x_CPPFLAGS@ +opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ +opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ +opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ +opaldatadir = @opaldatadir@ +opalincludedir = @opalincludedir@ +opallibdir = @opallibdir@ +ortedatadir = @ortedatadir@ +orteincludedir = @orteincludedir@ +ortelibdir = @ortelibdir@ +osc_portals4_CPPFLAGS = @osc_portals4_CPPFLAGS@ +osc_portals4_LDFLAGS = @osc_portals4_LDFLAGS@ +osc_portals4_LIBS = @osc_portals4_LIBS@ +osc_ucx_CPPFLAGS = @osc_ucx_CPPFLAGS@ +osc_ucx_LDFLAGS = @osc_ucx_LDFLAGS@ +osc_ucx_LIBS = @osc_ucx_LIBS@ +oshmem_verbs_CFLAGS = @oshmem_verbs_CFLAGS@ +oshmem_verbs_CPPFLAGS = @oshmem_verbs_CPPFLAGS@ +oshmem_verbs_LDFLAGS = @oshmem_verbs_LDFLAGS@ +oshmem_verbs_LIBS = @oshmem_verbs_LIBS@ +oshmemdatadir = @oshmemdatadir@ +oshmemincludedir = @oshmemincludedir@ +oshmemlibdir = @oshmemlibdir@ +pdfdir = @pdfdir@ +plm_alps_CPPFLAGS = @plm_alps_CPPFLAGS@ +plm_alps_LDFLAGS = @plm_alps_LDFLAGS@ +plm_alps_LIBS = @plm_alps_LIBS@ +plm_lsf_CPPFLAGS = @plm_lsf_CPPFLAGS@ +plm_lsf_LDFLAGS = @plm_lsf_LDFLAGS@ +plm_lsf_LIBS = @plm_lsf_LIBS@ +plm_slurm_CPPFLAGS = @plm_slurm_CPPFLAGS@ +plm_slurm_LDFLAGS = @plm_slurm_LDFLAGS@ +plm_slurm_LIBS = @plm_slurm_LIBS@ +plm_tm_CPPFLAGS = @plm_tm_CPPFLAGS@ +plm_tm_LDFLAGS = @plm_tm_LDFLAGS@ +plm_tm_LIBS = @plm_tm_LIBS@ +pmix_alps_CPPFLAGS = @pmix_alps_CPPFLAGS@ +pmix_alps_LDFLAGS = @pmix_alps_LDFLAGS@ +pmix_alps_LIBS = @pmix_alps_LIBS@ +pmix_cray_CPPFLAGS = @pmix_cray_CPPFLAGS@ +pmix_cray_LDFLAGS = @pmix_cray_LDFLAGS@ +pmix_cray_LIBS = @pmix_cray_LIBS@ +pml_ucx_CPPFLAGS = @pml_ucx_CPPFLAGS@ +pml_ucx_LDFLAGS = @pml_ucx_LDFLAGS@ +pml_ucx_LIBS = @pml_ucx_LIBS@ +pml_yalla_CPPFLAGS = @pml_yalla_CPPFLAGS@ +pml_yalla_LDFLAGS = @pml_yalla_LDFLAGS@ +pml_yalla_LIBS = @pml_yalla_LIBS@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +ras_alps_CPPFLAGS = @ras_alps_CPPFLAGS@ +ras_lsf_CPPFLAGS = @ras_lsf_CPPFLAGS@ +ras_lsf_LDFLAGS = @ras_lsf_LDFLAGS@ +ras_lsf_LIBS = @ras_lsf_LIBS@ +ras_slurm_CPPFLAGS = @ras_slurm_CPPFLAGS@ +ras_slurm_LDFLAGS = @ras_slurm_LDFLAGS@ +ras_slurm_LIBS = @ras_slurm_LIBS@ +ras_tm_CPPFLAGS = @ras_tm_CPPFLAGS@ +ras_tm_LDFLAGS = @ras_tm_LDFLAGS@ +ras_tm_LIBS = @ras_tm_LIBS@ +rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ +rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ +rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ +sbindir = @sbindir@ +schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ +schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ +schizo_moab_LDFLAGS = @schizo_moab_LDFLAGS@ +schizo_moab_LIBS = @schizo_moab_LIBS@ +schizo_slurm_CPPFLAGS = @schizo_slurm_CPPFLAGS@ +schizo_slurm_LDFLAGS = @schizo_slurm_LDFLAGS@ +schizo_slurm_LIBS = @schizo_slurm_LIBS@ +scoll_fca_CFLAGS = @scoll_fca_CFLAGS@ +scoll_fca_CPPFLAGS = @scoll_fca_CPPFLAGS@ +scoll_fca_HOME = @scoll_fca_HOME@ +scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ +scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ +sharedstatedir = @sharedstatedir@ +spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ +spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ +spml_ikrit_LDFLAGS = @spml_ikrit_LDFLAGS@ +spml_ikrit_LIBS = @spml_ikrit_LIBS@ +spml_ucx_CFLAGS = @spml_ucx_CFLAGS@ +spml_ucx_CPPFLAGS = @spml_ucx_CPPFLAGS@ +spml_ucx_LDFLAGS = @spml_ucx_LDFLAGS@ +spml_ucx_LIBS = @spml_ucx_LIBS@ +srcdir = @srcdir@ +sshmem_ucx_CFLAGS = @sshmem_ucx_CFLAGS@ +sshmem_ucx_CPPFLAGS = @sshmem_ucx_CPPFLAGS@ +sshmem_ucx_LDFLAGS = @sshmem_ucx_LDFLAGS@ +sshmem_ucx_LIBS = @sshmem_ucx_LIBS@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ucx_CFLAGS = @ucx_CFLAGS@ +ucx_LIBS = @ucx_LIBS@ +ucx_STATIC_LIBS = @ucx_STATIC_LIBS@ +sources = \ + schizo_jsm_component.c \ + schizo_jsm.h \ + schizo_jsm.c + +@MCA_BUILD_orte_schizo_jsm_DSO_FALSE@component_noinst = libmca_schizo_jsm.la + +# Make the output library in this directory, and name it either +# mca__.la (for DSO builds) or libmca__.la +# (for static builds). +@MCA_BUILD_orte_schizo_jsm_DSO_TRUE@component_noinst = +@MCA_BUILD_orte_schizo_jsm_DSO_FALSE@component_install = +@MCA_BUILD_orte_schizo_jsm_DSO_TRUE@component_install = mca_schizo_jsm.la +mcacomponentdir = $(ortelibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_schizo_jsm_la_SOURCES = $(sources) +mca_schizo_jsm_la_LDFLAGS = -module -avoid-version +mca_schizo_jsm_la_LIBADD = $(top_builddir)/orte/lib@ORTE_LIB_PREFIX@open-rte.la +noinst_LTLIBRARIES = $(component_noinst) +libmca_schizo_jsm_la_SOURCES = $(sources) +libmca_schizo_jsm_la_LDFLAGS = -module -avoid-version +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign orte/mca/schizo/jsm/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign orte/mca/schizo/jsm/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-mcacomponentLTLIBRARIES: $(mcacomponent_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(mcacomponentdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(mcacomponentdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(mcacomponentdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(mcacomponentdir)"; \ + } + +uninstall-mcacomponentLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(mcacomponentdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(mcacomponentdir)/$$f"; \ + done + +clean-mcacomponentLTLIBRARIES: + -test -z "$(mcacomponent_LTLIBRARIES)" || rm -f $(mcacomponent_LTLIBRARIES) + @list='$(mcacomponent_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libmca_schizo_jsm.la: $(libmca_schizo_jsm_la_OBJECTS) $(libmca_schizo_jsm_la_DEPENDENCIES) $(EXTRA_libmca_schizo_jsm_la_DEPENDENCIES) + $(AM_V_CCLD)$(libmca_schizo_jsm_la_LINK) $(am_libmca_schizo_jsm_la_rpath) $(libmca_schizo_jsm_la_OBJECTS) $(libmca_schizo_jsm_la_LIBADD) $(LIBS) + +mca_schizo_jsm.la: $(mca_schizo_jsm_la_OBJECTS) $(mca_schizo_jsm_la_DEPENDENCIES) $(EXTRA_mca_schizo_jsm_la_DEPENDENCIES) + $(AM_V_CCLD)$(mca_schizo_jsm_la_LINK) $(am_mca_schizo_jsm_la_rpath) $(mca_schizo_jsm_la_OBJECTS) $(mca_schizo_jsm_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/schizo_jsm.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/schizo_jsm_component.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(mcacomponentdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-mcacomponentLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-mcacomponentLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-mcacomponentLTLIBRARIES install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-mcacomponentLTLIBRARIES + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/orte/mca/schizo/jsm/schizo_jsm.c openmpi-4.1.4/orte/mca/schizo/jsm/schizo_jsm.c --- openmpi-4.0.3/orte/mca/schizo/jsm/schizo_jsm.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/orte/mca/schizo/jsm/schizo_jsm.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2016 Mellanox Technologies Ltd. All rights reserved. + * Copyright (c) 2017-2020 IBM Corporation. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + * + */ + +#include "orte_config.h" +#include "orte/types.h" +#include "opal/types.h" + +#ifdef HAVE_UNISTD_H +#include +#endif +#include + +#include "opal/util/argv.h" +#include "opal/util/basename.h" +#include "opal/util/opal_environ.h" + +#include "orte/runtime/orte_globals.h" +#include "orte/util/name_fns.h" +#include "orte/mca/schizo/base/base.h" + +#include "schizo_jsm.h" + +static orte_schizo_launch_environ_t check_launch_environment(void); +static void finalize(void); + +orte_schizo_base_module_t orte_schizo_jsm_module = { + .check_launch_environment = check_launch_environment, + .finalize = finalize +}; + +static char **pushed_envs = NULL; +static char **pushed_vals = NULL; +static orte_schizo_launch_environ_t myenv; +static bool myenvdefined = false; + +static orte_schizo_launch_environ_t check_launch_environment(void) +{ + int i; + + if (myenvdefined) { + return myenv; + } + myenvdefined = true; + + /* we were only selected because JSM was detected + * and we are an app, so no need to further check + * that here. Instead, see if we were direct launched + * vs launched via mpirun ('native') */ + if (NULL != orte_process_info.my_daemon_uri) { + /* Use PMI(x) for daemon interactions */ + myenv = ORTE_SCHIZO_NATIVE_LAUNCHED; + opal_argv_append_nosize(&pushed_envs, OPAL_MCA_PREFIX"ess"); + opal_argv_append_nosize(&pushed_vals, "pmi"); + /* mark that we are native */ + opal_argv_append_nosize(&pushed_envs, "ORTE_SCHIZO_DETECTION"); + opal_argv_append_nosize(&pushed_vals, "NATIVE"); + } + else { + /* Use PMI(x) for daemon interactions */ + myenv = ORTE_SCHIZO_DIRECT_LAUNCHED; + opal_argv_append_nosize(&pushed_envs, OPAL_MCA_PREFIX"ess"); + opal_argv_append_nosize(&pushed_vals, "pmi"); + /* mark that we are JSM */ + opal_argv_append_nosize(&pushed_envs, "ORTE_SCHIZO_DETECTION"); + opal_argv_append_nosize(&pushed_vals, "JSM"); + } + + /* We don't support singleton launch by JSM. + * If we did then the logic should be placed here. + */ + + /* if we are direct-launched by JSM, then disable binding */ + opal_argv_append_nosize(&pushed_envs, OPAL_MCA_PREFIX"hwloc_base_binding_policy"); + opal_argv_append_nosize(&pushed_vals, "none"); + /* indicate we are externally bound so we won't try to do it ourselves */ + opal_argv_append_nosize(&pushed_envs, OPAL_MCA_PREFIX"orte_externally_bound"); + opal_argv_append_nosize(&pushed_vals, "1"); + + opal_output_verbose(1, orte_schizo_base_framework.framework_output, + "schizo:jsm DECLARED AS %s", orte_schizo_base_print_env(myenv)); + if (NULL != pushed_envs) { + for (i=0; NULL != pushed_envs[i]; i++) { + opal_setenv(pushed_envs[i], pushed_vals[i], true, &environ); + } + } + + return myenv; +} + + +static void finalize(void) +{ + int i; + + if (NULL != pushed_envs) { + for (i=0; NULL != pushed_envs[i]; i++) { + opal_unsetenv(pushed_envs[i], &environ); + } + opal_argv_free(pushed_envs); + opal_argv_free(pushed_vals); + } +} diff -Nru openmpi-4.0.3/orte/mca/schizo/jsm/schizo_jsm_component.c openmpi-4.1.4/orte/mca/schizo/jsm/schizo_jsm_component.c --- openmpi-4.0.3/orte/mca/schizo/jsm/schizo_jsm_component.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/orte/mca/schizo/jsm/schizo_jsm_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,52 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2019 IBM Corporation. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "orte_config.h" +#include "orte/types.h" +#include "opal/types.h" + +#include "opal/util/show_help.h" + +#include "orte/mca/schizo/schizo.h" +#include "schizo_jsm.h" + +static int component_query(mca_base_module_t **module, int *priority); + +/* + * Struct of function pointers and all that to let us be initialized + */ +orte_schizo_base_component_t mca_schizo_jsm_component = { + .base_version = { + MCA_SCHIZO_BASE_VERSION_1_0_0, + .mca_component_name = "jsm", + MCA_BASE_MAKE_VERSION(component, ORTE_MAJOR_VERSION, ORTE_MINOR_VERSION, + ORTE_RELEASE_VERSION), + .mca_query_component = component_query, + }, + .base_data = { + /* The component is checkpoint ready */ + MCA_BASE_METADATA_PARAM_CHECKPOINT + }, +}; + +static int component_query(mca_base_module_t **module, int *priority) +{ + /* disqualify ourselves if we are not under jsm */ + if (NULL == getenv("JSM_JSRUN_PORT")) { + *priority = 0; + *module = NULL; + return OPAL_ERROR; + } + + *module = (mca_base_module_t*)&orte_schizo_jsm_module; + *priority = 80; + return ORTE_SUCCESS; +} diff -Nru openmpi-4.0.3/orte/mca/schizo/jsm/schizo_jsm.h openmpi-4.1.4/orte/mca/schizo/jsm/schizo_jsm.h --- openmpi-4.0.3/orte/mca/schizo/jsm/schizo_jsm.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/orte/mca/schizo/jsm/schizo_jsm.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2016 Intel, Inc. All rights reserved. + * Copyright (c) 2017-2019 IBM Corporation. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef _MCA_SCHIZO_JSM_H_ +#define _MCA_SCHIZO_JSM_H_ + +#include "orte_config.h" + +#include "orte/types.h" + +#include "opal/mca/base/base.h" +#include "orte/mca/schizo/schizo.h" + + +BEGIN_C_DECLS + +ORTE_MODULE_DECLSPEC extern orte_schizo_base_component_t mca_schizo_jsm_component; +extern orte_schizo_base_module_t orte_schizo_jsm_module; + +END_C_DECLS + +#endif /* MCA_SCHIZO_JSM_H_ */ + diff -Nru openmpi-4.0.3/orte/mca/schizo/Makefile.in openmpi-4.1.4/orte/mca/schizo/Makefile.in --- openmpi-4.0.3/orte/mca/schizo/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/schizo/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -649,6 +662,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1469,6 +1485,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1501,9 +1521,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1524,6 +1553,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1608,9 +1638,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1671,6 +1698,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1684,6 +1714,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/schizo/moab/Makefile.in openmpi-4.1.4/orte/mca/schizo/moab/Makefile.in --- openmpi-4.0.3/orte/mca/schizo/moab/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/schizo/moab/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -650,6 +663,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1470,6 +1486,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1502,9 +1522,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1525,6 +1554,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1609,9 +1639,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1672,6 +1699,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1685,6 +1715,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/schizo/ompi/Makefile.in openmpi-4.1.4/orte/mca/schizo/ompi/Makefile.in --- openmpi-4.0.3/orte/mca/schizo/ompi/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/schizo/ompi/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -648,6 +661,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1468,6 +1484,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1500,9 +1520,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1523,6 +1552,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1607,9 +1637,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1670,6 +1697,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1683,6 +1713,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/schizo/orte/Makefile.in openmpi-4.1.4/orte/mca/schizo/orte/Makefile.in --- openmpi-4.0.3/orte/mca/schizo/orte/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/schizo/orte/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -648,6 +661,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1468,6 +1484,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1500,9 +1520,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1523,6 +1552,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1607,9 +1637,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1670,6 +1697,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1683,6 +1713,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/schizo/singularity/Makefile.in openmpi-4.1.4/orte/mca/schizo/singularity/Makefile.in --- openmpi-4.0.3/orte/mca/schizo/singularity/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/schizo/singularity/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -651,6 +664,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1471,6 +1487,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1503,9 +1523,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1526,6 +1555,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1610,9 +1640,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1673,6 +1700,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1686,6 +1716,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/schizo/slurm/Makefile.in openmpi-4.1.4/orte/mca/schizo/slurm/Makefile.in --- openmpi-4.0.3/orte/mca/schizo/slurm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/schizo/slurm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -649,6 +662,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1469,6 +1485,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1501,9 +1521,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1524,6 +1553,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1608,9 +1638,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1671,6 +1698,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1684,6 +1714,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/schizo/slurm/schizo_slurm.c openmpi-4.1.4/orte/mca/schizo/slurm/schizo_slurm.c --- openmpi-4.0.3/orte/mca/schizo/slurm/schizo_slurm.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/schizo/slurm/schizo_slurm.c 2022-05-29 09:51:40.000000000 +0000 @@ -45,7 +45,6 @@ static orte_schizo_launch_environ_t check_launch_environment(void) { - char *bind, *list, *ptr; int i; if (myenvdefined) { @@ -93,33 +92,12 @@ opal_argv_append_nosize(&pushed_envs, OPAL_MCA_PREFIX"ess"); opal_argv_append_nosize(&pushed_vals, "pmi"); - /* if we are direct launched by SLURM, then we want - * to ensure that we do not override their binding - * options, so set that envar */ - if (NULL != (bind = getenv("SLURM_CPU_BIND_TYPE"))) { - if (0 == strcmp(bind, "none")) { - opal_argv_append_nosize(&pushed_envs, OPAL_MCA_PREFIX"hwloc_base_binding_policy"); - opal_argv_append_nosize(&pushed_vals, "none"); - /* indicate we are externally bound so we won't try to do it ourselves */ - opal_argv_append_nosize(&pushed_envs, OPAL_MCA_PREFIX"orte_externally_bound"); - opal_argv_append_nosize(&pushed_vals, "1"); - } else if (bind == strstr(bind, "mask_cpu")) { - /* if the bind list is all F's, then the - * user didn't specify anything */ - if (NULL != (list = getenv("SLURM_CPU_BIND_LIST")) && - NULL != (ptr = strchr(list, 'x'))) { - ++ptr; // step over the 'x' - for (i=0; '\0' != *ptr; ptr++) { - if ('F' != *ptr) { - /* indicate we are externally bound */ - opal_argv_append_nosize(&pushed_envs, OPAL_MCA_PREFIX"orte_externally_bound"); - opal_argv_append_nosize(&pushed_vals, "1"); - break; - } - } - } - } - } + /* if we are direct-launched by SLURM, then disable binding */ + opal_argv_append_nosize(&pushed_envs, OPAL_MCA_PREFIX"hwloc_base_binding_policy"); + opal_argv_append_nosize(&pushed_vals, "none"); + /* indicate we are externally bound so we won't try to do it ourselves */ + opal_argv_append_nosize(&pushed_envs, OPAL_MCA_PREFIX"orte_externally_bound"); + opal_argv_append_nosize(&pushed_vals, "1"); setup: opal_output_verbose(1, orte_schizo_base_framework.framework_output, diff -Nru openmpi-4.0.3/orte/mca/snapc/full/Makefile.in openmpi-4.1.4/orte/mca/snapc/full/Makefile.in --- openmpi-4.0.3/orte/mca/snapc/full/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/snapc/full/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -117,6 +117,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -124,6 +126,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -147,6 +150,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -249,6 +253,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -256,6 +261,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -336,6 +342,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -358,9 +365,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -370,6 +381,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -390,6 +402,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -660,6 +673,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1480,6 +1496,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1512,9 +1532,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1535,6 +1564,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1619,9 +1649,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1682,6 +1709,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1695,6 +1725,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/snapc/Makefile.in openmpi-4.1.4/orte/mca/snapc/Makefile.in --- openmpi-4.0.3/orte/mca/snapc/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/snapc/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -152,6 +152,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -159,6 +161,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -182,6 +185,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -284,6 +288,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -291,6 +296,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -371,6 +377,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -393,9 +400,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -405,6 +416,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -425,6 +437,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -686,6 +699,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1506,6 +1522,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1538,9 +1558,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1561,6 +1590,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1645,9 +1675,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1708,6 +1735,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1721,6 +1751,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/sstore/central/Makefile.in openmpi-4.1.4/orte/mca/sstore/central/Makefile.in --- openmpi-4.0.3/orte/mca/sstore/central/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/sstore/central/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -110,6 +110,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -117,6 +119,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -140,6 +143,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -242,6 +246,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -249,6 +254,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -329,6 +335,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -351,9 +358,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -363,6 +374,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -383,6 +395,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -657,6 +670,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1477,6 +1493,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1509,9 +1529,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1532,6 +1561,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1616,9 +1646,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1679,6 +1706,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1692,6 +1722,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/sstore/Makefile.in openmpi-4.1.4/orte/mca/sstore/Makefile.in --- openmpi-4.0.3/orte/mca/sstore/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/sstore/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -136,6 +136,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -143,6 +145,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -166,6 +169,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -268,6 +272,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -275,6 +280,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -355,6 +361,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -377,9 +384,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -389,6 +400,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -409,6 +421,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -669,6 +682,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1489,6 +1505,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1521,9 +1541,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1544,6 +1573,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1628,9 +1658,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1691,6 +1718,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1704,6 +1734,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/sstore/stage/Makefile.in openmpi-4.1.4/orte/mca/sstore/stage/Makefile.in --- openmpi-4.0.3/orte/mca/sstore/stage/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/sstore/stage/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -110,6 +110,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -117,6 +119,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -140,6 +143,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -242,6 +246,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -249,6 +254,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -329,6 +335,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -351,9 +358,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -363,6 +374,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -383,6 +395,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -656,6 +669,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1476,6 +1492,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1508,9 +1528,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1531,6 +1560,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1615,9 +1645,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1678,6 +1705,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1691,6 +1721,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/state/app/Makefile.in openmpi-4.1.4/orte/mca/state/app/Makefile.in --- openmpi-4.0.3/orte/mca/state/app/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/state/app/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -648,6 +661,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1468,6 +1484,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1500,9 +1520,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1523,6 +1552,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1607,9 +1637,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1670,6 +1697,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1683,6 +1713,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/state/base/state_base_fns.c openmpi-4.1.4/orte/mca/state/base/state_base_fns.c --- openmpi-4.0.3/orte/mca/state/base/state_base_fns.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/state/base/state_base_fns.c 2022-05-29 09:51:40.000000000 +0000 @@ -3,6 +3,7 @@ * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. * Copyright (c) 2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyrigth (c) 2020 Triad National Security, LLC. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -734,8 +735,12 @@ /* Clean up the session directory as if we were the process * itself. This covers the case where the process died abnormally * and didn't cleanup its own session directory. + * Don't do this for debugger daemons otherwise reattach is + * broken. See https://github.com/open-mpi/ompi/issues/5115. */ - orte_session_dir_finalize(proc); + if (!ORTE_FLAG_TEST(jdata, ORTE_JOB_FLAG_DEBUGGER_DAEMON)) { + orte_session_dir_finalize(proc); + } } /* if we are trying to terminate and our routes are * gone, then terminate ourselves IF no local procs diff -Nru openmpi-4.0.3/orte/mca/state/hnp/Makefile.in openmpi-4.1.4/orte/mca/state/hnp/Makefile.in --- openmpi-4.0.3/orte/mca/state/hnp/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/state/hnp/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -648,6 +661,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1468,6 +1484,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1500,9 +1520,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1523,6 +1552,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1607,9 +1637,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1670,6 +1697,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1683,6 +1713,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/state/Makefile.in openmpi-4.1.4/orte/mca/state/Makefile.in --- openmpi-4.0.3/orte/mca/state/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/state/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -122,6 +122,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -129,6 +131,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -152,6 +155,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -254,6 +258,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -261,6 +266,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -341,6 +347,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -363,9 +370,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -375,6 +386,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -395,6 +407,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -653,6 +666,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1473,6 +1489,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1505,9 +1525,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1528,6 +1557,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1612,9 +1642,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1675,6 +1702,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1688,6 +1718,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/state/novm/Makefile.in openmpi-4.1.4/orte/mca/state/novm/Makefile.in --- openmpi-4.0.3/orte/mca/state/novm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/state/novm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -648,6 +661,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1468,6 +1484,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1500,9 +1520,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1523,6 +1552,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1607,9 +1637,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1670,6 +1697,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1683,6 +1713,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/state/orted/Makefile.in openmpi-4.1.4/orte/mca/state/orted/Makefile.in --- openmpi-4.0.3/orte/mca/state/orted/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/state/orted/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -649,6 +662,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1469,6 +1485,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1501,9 +1521,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1524,6 +1553,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1608,9 +1638,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1671,6 +1698,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1684,6 +1714,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/mca/state/tool/Makefile.in openmpi-4.1.4/orte/mca/state/tool/Makefile.in --- openmpi-4.0.3/orte/mca/state/tool/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/mca/state/tool/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -647,6 +660,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1467,6 +1483,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1499,9 +1519,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1522,6 +1551,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1606,9 +1636,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1669,6 +1696,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1682,6 +1712,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/orted/Makefile.am openmpi-4.1.4/orte/orted/Makefile.am --- openmpi-4.0.3/orte/orted/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/orted/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -12,7 +12,7 @@ # All rights reserved. # Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2015 Intel, Inc. All rights reserved. -# Copyright (c) 2018 IBM Corporation. All rights reserved. +# Copyright (c) 2018-2021 IBM Corporation. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -30,17 +30,7 @@ lib@ORTE_LIB_PREFIX@open_rte_la_SOURCES += \ orted/orted_main.c \ - orted/orted_comm.c - -# The MPIR portion of the library must be built with -g, even if -# the rest of the library has other optimization flags. -# Use an intermediate library to isolate the debug object. -noinst_LTLIBRARIES += liborted_mpir.la -liborted_mpir_la_SOURCES = \ + orted/orted_comm.c \ orted/orted_submit.c -liborted_mpir_la_CFLAGS = $(CFLAGS_WITHOUT_OPTFLAGS) $(DEBUGGER_CFLAGS) - -lib@ORTE_LIB_PREFIX@open_rte_la_LIBADD += liborted_mpir.la - include orted/pmix/Makefile.am diff -Nru openmpi-4.0.3/orte/orted/orted_comm.c openmpi-4.1.4/orte/orted/orted_comm.c --- openmpi-4.0.3/orte/orted/orted_comm.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/orted/orted_comm.c 2022-05-29 09:51:40.000000000 +0000 @@ -153,6 +153,11 @@ /**** KILL_LOCAL_PROCS ****/ case ORTE_DAEMON_KILL_LOCAL_PROCS: + if (orte_debug_daemons_flag) { + opal_output(0, "%s orted_cmd: received kill cmd", + ORTE_NAME_PRINT(ORTE_PROC_MY_NAME)); + } + num_replies = 0; /* construct the pointer array */ diff -Nru openmpi-4.0.3/orte/orted/orted_main.c openmpi-4.1.4/orte/orted/orted_main.c --- openmpi-4.0.3/orte/orted/orted_main.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/orted/orted_main.c 2022-05-29 09:51:40.000000000 +0000 @@ -19,6 +19,7 @@ * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. * Copyright (c) 2015-2017 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2021 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -300,6 +301,14 @@ opal_unsetenv(OPAL_MCA_PREFIX"ess", &orte_launch_environ); opal_unsetenv(OPAL_MCA_PREFIX"pmix", &orte_launch_environ); + /* We need to parse the MCA parameters to read the debug MCA + * parameters used by the plm to relay the debug options. + */ + if (ORTE_SUCCESS != (ret = orte_register_params())) { + ORTE_ERROR_LOG(ret); + return ret; + } + /* if orte_daemon_debug is set, let someone know we are alive right * away just in case we have a problem along the way */ @@ -370,6 +379,12 @@ */ opal_finalize_util(); + /* orted uses multiple threads, thus need to enable opal's multi-thread support, + * otherwise, OPAL_RELEASE will not use atomic operations to update object's + * reference counter, which will lead to double free issue. + */ + opal_set_using_threads(true); + /* bind ourselves if so directed */ if (NULL != orte_daemon_cores) { char **cores=NULL, tmp[128]; @@ -747,7 +762,7 @@ /* define the target jobid */ target.jobid = ORTE_PROC_MY_NAME->jobid; - if (orte_fwd_mpirun_port || orte_static_ports || NULL != orte_parent_uri) { + if (NULL != orte_parent_uri) { /* we start by sending to ourselves */ target.vpid = ORTE_PROC_MY_NAME->vpid; /* since we will be waiting for any children to send us diff -Nru openmpi-4.0.3/orte/orted/orted-mpir/Makefile.am openmpi-4.1.4/orte/orted/orted-mpir/Makefile.am --- openmpi-4.0.3/orte/orted/orted-mpir/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/orte/orted/orted-mpir/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,22 @@ +# -*- makefile -*- +# +# Copyright (c) 2021 IBM Corporation. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# This is not quite in the Automake spirit, but we have to do it. +# Since the mpir portion of the library must be built with -g, we +# must eliminate the CFLAGS that are passed in here by default (which +# may already have debugging and/or optimization flags). + +CFLAGS = $(CFLAGS_WITHOUT_OPTFLAGS) $(DEBUGGER_CFLAGS) + +noinst_LTLIBRARIES = lib@ORTE_LIB_PREFIX@open-orted-mpir.la +lib@ORTE_LIB_PREFIX@open_orted_mpir_la_SOURCES = \ + orted_mpir_breakpoint.c \ + orted_mpir.h +lib@ORTE_LIB_PREFIX@open_orted_mpir_la_LDFLAGS = -avoid-version diff -Nru openmpi-4.0.3/orte/orted/orted-mpir/Makefile.in openmpi-4.1.4/orte/orted/orted-mpir/Makefile.in --- openmpi-4.0.3/orte/orted/orted-mpir/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/orte/orted/orted-mpir/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,1947 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# -*- makefile -*- +# +# Copyright (c) 2021 IBM Corporation. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# This is not quite in the Automake spirit, but we have to do it. +# Since the mpir portion of the library must be built with -g, we +# must eliminate the CFLAGS that are passed in here by default (which +# may already have debugging and/or optimization flags). + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = orte/orted/orted-mpir +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/c_weak_symbols.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ + $(top_srcdir)/config/ompi_check_libfca.m4 \ + $(top_srcdir)/config/ompi_check_libhcoll.m4 \ + $(top_srcdir)/config/ompi_check_lustre.m4 \ + $(top_srcdir)/config/ompi_check_mxm.m4 \ + $(top_srcdir)/config/ompi_check_psm.m4 \ + $(top_srcdir)/config/ompi_check_psm2.m4 \ + $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ + $(top_srcdir)/config/ompi_check_ucx.m4 \ + $(top_srcdir)/config/ompi_config_files.m4 \ + $(top_srcdir)/config/ompi_configure_options.m4 \ + $(top_srcdir)/config/ompi_contrib.m4 \ + $(top_srcdir)/config/ompi_cxx_find_exception_flags.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_parameters.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_repository.m4 \ + $(top_srcdir)/config/ompi_cxx_have_exceptions.m4 \ + $(top_srcdir)/config/ompi_endpoint_tag.m4 \ + $(top_srcdir)/config/ompi_ext.m4 \ + $(top_srcdir)/config/ompi_find_mpi_aint_count_offset.m4 \ + $(top_srcdir)/config/ompi_fortran_check.m4 \ + $(top_srcdir)/config/ompi_fortran_check_abstract.m4 \ + $(top_srcdir)/config/ompi_fortran_check_asynchronous.m4 \ + $(top_srcdir)/config/ompi_fortran_check_bind_c.m4 \ + $(top_srcdir)/config/ompi_fortran_check_c_funloc.m4 \ + $(top_srcdir)/config/ompi_fortran_check_f08_assumed_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_ignore_tkr.m4 \ + $(top_srcdir)/config/ompi_fortran_check_interface.m4 \ + $(top_srcdir)/config/ompi_fortran_check_iso_fortran_env.m4 \ + $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ + $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ + $(top_srcdir)/config/ompi_fortran_check_private.m4 \ + $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ + $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ + $(top_srcdir)/config/ompi_fortran_check_real16_c_equiv.m4 \ + $(top_srcdir)/config/ompi_fortran_check_storage_size.m4 \ + $(top_srcdir)/config/ompi_fortran_check_type.m4 \ + $(top_srcdir)/config/ompi_fortran_check_use_only.m4 \ + $(top_srcdir)/config/ompi_fortran_find_ext_symbol_convention.m4 \ + $(top_srcdir)/config/ompi_fortran_find_module_include_flag.m4 \ + $(top_srcdir)/config/ompi_fortran_get_alignment.m4 \ + $(top_srcdir)/config/ompi_fortran_get_handle_max.m4 \ + $(top_srcdir)/config/ompi_fortran_get_kind_value.m4 \ + $(top_srcdir)/config/ompi_fortran_get_sizeof.m4 \ + $(top_srcdir)/config/ompi_fortran_get_value_true.m4 \ + $(top_srcdir)/config/ompi_interix.m4 \ + $(top_srcdir)/config/ompi_setup_contrib.m4 \ + $(top_srcdir)/config/ompi_setup_cxx.m4 \ + $(top_srcdir)/config/ompi_setup_fc.m4 \ + $(top_srcdir)/config/ompi_setup_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_ext.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_fortran.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_profiling.m4 \ + $(top_srcdir)/config/opal_case_sensitive_fs_setup.m4 \ + $(top_srcdir)/config/opal_check_alps.m4 \ + $(top_srcdir)/config/opal_check_attributes.m4 \ + $(top_srcdir)/config/opal_check_broken_qsort.m4 \ + $(top_srcdir)/config/opal_check_cma.m4 \ + $(top_srcdir)/config/opal_check_compiler_version.m4 \ + $(top_srcdir)/config/opal_check_compiler_works.m4 \ + $(top_srcdir)/config/opal_check_cray_pmi.m4 \ + $(top_srcdir)/config/opal_check_cuda.m4 \ + $(top_srcdir)/config/opal_check_icc.m4 \ + $(top_srcdir)/config/opal_check_ident.m4 \ + $(top_srcdir)/config/opal_check_knem.m4 \ + $(top_srcdir)/config/opal_check_libnl.m4 \ + $(top_srcdir)/config/opal_check_offsetof.m4 \ + $(top_srcdir)/config/opal_check_ofi.m4 \ + $(top_srcdir)/config/opal_check_openfabrics.m4 \ + $(top_srcdir)/config/opal_check_os_flavors.m4 \ + $(top_srcdir)/config/opal_check_package.m4 \ + $(top_srcdir)/config/opal_check_pmi.m4 \ + $(top_srcdir)/config/opal_check_portals4.m4 \ + $(top_srcdir)/config/opal_check_ps.m4 \ + $(top_srcdir)/config/opal_check_pthread_pids.m4 \ + $(top_srcdir)/config/opal_check_singularity.m4 \ + $(top_srcdir)/config/opal_check_ugni.m4 \ + $(top_srcdir)/config/opal_check_vendor.m4 \ + $(top_srcdir)/config/opal_check_verbs.m4 \ + $(top_srcdir)/config/opal_check_visibility.m4 \ + $(top_srcdir)/config/opal_check_withdir.m4 \ + $(top_srcdir)/config/opal_check_xpmem.m4 \ + $(top_srcdir)/config/opal_config_asm.m4 \ + $(top_srcdir)/config/opal_config_files.m4 \ + $(top_srcdir)/config/opal_config_pthreads.m4 \ + $(top_srcdir)/config/opal_config_subdir.m4 \ + $(top_srcdir)/config/opal_config_subdir_args.m4 \ + $(top_srcdir)/config/opal_config_threads.m4 \ + $(top_srcdir)/config/opal_configure_options.m4 \ + $(top_srcdir)/config/opal_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/opal_find_type.m4 \ + $(top_srcdir)/config/opal_functions.m4 \ + $(top_srcdir)/config/opal_lang_link_with_c.m4 \ + $(top_srcdir)/config/opal_load_platform.m4 \ + $(top_srcdir)/config/opal_mca.m4 \ + $(top_srcdir)/config/opal_save_version.m4 \ + $(top_srcdir)/config/opal_search_libs.m4 \ + $(top_srcdir)/config/opal_set_lib_prefix.m4 \ + $(top_srcdir)/config/opal_set_mca_prefix.m4 \ + $(top_srcdir)/config/opal_setup_cc.m4 \ + $(top_srcdir)/config/opal_setup_cli.m4 \ + $(top_srcdir)/config/opal_setup_cxx.m4 \ + $(top_srcdir)/config/opal_setup_ft.m4 \ + $(top_srcdir)/config/opal_setup_wrappers.m4 \ + $(top_srcdir)/config/opal_setup_zlib.m4 \ + $(top_srcdir)/config/opal_strip_optflags.m4 \ + $(top_srcdir)/config/opal_summary.m4 \ + $(top_srcdir)/config/opal_try_assemble.m4 \ + $(top_srcdir)/config/orte_check_lsf.m4 \ + $(top_srcdir)/config/orte_check_moab.m4 \ + $(top_srcdir)/config/orte_check_sge.m4 \ + $(top_srcdir)/config/orte_check_slurm.m4 \ + $(top_srcdir)/config/orte_check_tm.m4 \ + $(top_srcdir)/config/orte_config_files.m4 \ + $(top_srcdir)/config/orte_configure_options.m4 \ + $(top_srcdir)/config/orte_setup_debugger_flags.m4 \ + $(top_srcdir)/config/oshmem_config_files.m4 \ + $(top_srcdir)/config/oshmem_configure_options.m4 \ + $(top_srcdir)/config/oshmem_setup_profiling.m4 \ + $(top_srcdir)/config/pkg.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/opal/mca/backtrace/configure.m4 \ + $(top_srcdir)/opal/mca/dl/configure.m4 \ + $(top_srcdir)/opal/mca/event/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/configure.m4 \ + $(top_srcdir)/opal/mca/memcpy/configure.m4 \ + $(top_srcdir)/opal/mca/memory/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/configure.m4 \ + $(top_srcdir)/opal/mca/timer/configure.m4 \ + $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/common/sm/configure.m4 \ + $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs_usnic/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ + $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ + $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ + $(top_srcdir)/opal/mca/btl/smcuda/configure.m4 \ + $(top_srcdir)/opal/mca/btl/tcp/configure.m4 \ + $(top_srcdir)/opal/mca/btl/uct/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ugni/configure.m4 \ + $(top_srcdir)/opal/mca/btl/usnic/configure.m4 \ + $(top_srcdir)/opal/mca/btl/vader/configure.m4 \ + $(top_srcdir)/opal/mca/crs/self/configure.m4 \ + $(top_srcdir)/opal/mca/dl/dlopen/configure.m4 \ + $(top_srcdir)/opal/mca/dl/libltdl/configure.m4 \ + $(top_srcdir)/opal/mca/event/external/configure.m4 \ + $(top_srcdir)/opal/mca/event/libevent2022/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/external/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_pkg.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_attributes.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_visibility.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_vendor.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_components.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_internal.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/netloc.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/linux_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/posix_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/solaris_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/config/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/env/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/valgrind/configure.m4 \ + $(top_srcdir)/opal/mca/memory/malloc_solaris/configure.m4 \ + $(top_srcdir)/opal/mca/memory/patcher/configure.m4 \ + $(top_srcdir)/opal/mca/mpool/memkind/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/linux/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/overwrite/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/cray/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext1x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext2x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/flux/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/pmix3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s1/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s2/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/linux/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/test/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/gpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/rgpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/udreg/configure.m4 \ + $(top_srcdir)/opal/mca/reachable/netlink/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/mmap/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/posix/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/sysv/configure.m4 \ + $(top_srcdir)/opal/mca/timer/altix/configure.m4 \ + $(top_srcdir)/opal/mca/timer/darwin/configure.m4 \ + $(top_srcdir)/opal/mca/timer/linux/configure.m4 \ + $(top_srcdir)/opal/mca/timer/solaris/configure.m4 \ + $(top_srcdir)/orte/mca/common/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ess/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ess/tm/configure.m4 \ + $(top_srcdir)/orte/mca/odls/alps/configure.m4 \ + $(top_srcdir)/orte/mca/odls/default/configure.m4 \ + $(top_srcdir)/orte/mca/odls/pspawn/configure.m4 \ + $(top_srcdir)/orte/mca/oob/alps/configure.m4 \ + $(top_srcdir)/orte/mca/oob/tcp/configure.m4 \ + $(top_srcdir)/orte/mca/plm/alps/configure.m4 \ + $(top_srcdir)/orte/mca/plm/isolated/configure.m4 \ + $(top_srcdir)/orte/mca/plm/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/plm/rsh/configure.m4 \ + $(top_srcdir)/orte/mca/plm/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/plm/tm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ras/gridengine/configure.m4 \ + $(top_srcdir)/orte/mca/ras/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/snapc/full/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/central/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/stage/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/configure.m4 \ + $(top_srcdir)/ompi/mca/fcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/configure.m4 \ + $(top_srcdir)/ompi/mca/hook/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/configure.m4 \ + $(top_srcdir)/ompi/mca/common/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/common/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/bml/r2/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/cuda/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/fca/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ + $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ + $(top_srcdir)/ompi/mca/io/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/io/romio321/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/ofi/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/rdma/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/crcpw/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ob1/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/v/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/yalla/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/orte/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/pmix/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/sm/configure.m4 \ + $(top_srcdir)/ompi/mca/topo/treematch/configure.m4 \ + $(top_srcdir)/oshmem/mca/memheap/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/sysv/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/verbs/configure.m4 \ + $(top_srcdir)/ompi/mpiext/affinity/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cr/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cuda/configure.m4 \ + $(top_srcdir)/ompi/mpiext/pcollreq/configure.m4 \ + $(top_srcdir)/ompi/contrib/libompitrace/configure.m4 \ + $(top_srcdir)/config/opal_get_version.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/opal/include/opal_config.h \ + $(top_builddir)/ompi/include/mpi.h \ + $(top_builddir)/oshmem/include/shmem.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen/config.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen/config.h \ + $(top_builddir)/ompi/mpiext/cuda/c/mpiext_cuda_c.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +lib@ORTE_LIB_PREFIX@open_orted_mpir_la_LIBADD = +am_lib@ORTE_LIB_PREFIX@open_orted_mpir_la_OBJECTS = \ + orted_mpir_breakpoint.lo +lib@ORTE_LIB_PREFIX@open_orted_mpir_la_OBJECTS = \ + $(am_lib@ORTE_LIB_PREFIX@open_orted_mpir_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +lib@ORTE_LIB_PREFIX@open_orted_mpir_la_LINK = $(LIBTOOL) $(AM_V_lt) \ + --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(lib@ORTE_LIB_PREFIX@open_orted_mpir_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/opal/include -I$(top_builddir)/ompi/include -I$(top_builddir)/oshmem/include -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen -I$(top_builddir)/ompi/mpiext/cuda/c +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(lib@ORTE_LIB_PREFIX@open_orted_mpir_la_SOURCES) +DIST_SOURCES = $(lib@ORTE_LIB_PREFIX@open_orted_mpir_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/config/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMCA_PARAM_SETS_DIR = @AMCA_PARAM_SETS_DIR@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BASH = @BASH@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = $(CFLAGS_WITHOUT_OPTFLAGS) $(DEBUGGER_CFLAGS) +CFLAGS_WITHOUT_OPTFLAGS = @CFLAGS_WITHOUT_OPTFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CRAY_ALPSLLI_CFLAGS = @CRAY_ALPSLLI_CFLAGS@ +CRAY_ALPSLLI_LIBS = @CRAY_ALPSLLI_LIBS@ +CRAY_ALPSLLI_STATIC_LIBS = @CRAY_ALPSLLI_STATIC_LIBS@ +CRAY_ALPSUTIL_CFLAGS = @CRAY_ALPSUTIL_CFLAGS@ +CRAY_ALPSUTIL_LIBS = @CRAY_ALPSUTIL_LIBS@ +CRAY_ALPSUTIL_STATIC_LIBS = @CRAY_ALPSUTIL_STATIC_LIBS@ +CRAY_ALPS_CFLAGS = @CRAY_ALPS_CFLAGS@ +CRAY_ALPS_LIBS = @CRAY_ALPS_LIBS@ +CRAY_ALPS_STATIC_LIBS = @CRAY_ALPS_STATIC_LIBS@ +CRAY_PMI_CFLAGS = @CRAY_PMI_CFLAGS@ +CRAY_PMI_LIBS = @CRAY_PMI_LIBS@ +CRAY_PMI_STATIC_LIBS = @CRAY_PMI_STATIC_LIBS@ +CRAY_UDREG_CFLAGS = @CRAY_UDREG_CFLAGS@ +CRAY_UDREG_LIBS = @CRAY_UDREG_LIBS@ +CRAY_UGNI_CFLAGS = @CRAY_UGNI_CFLAGS@ +CRAY_UGNI_LIBS = @CRAY_UGNI_LIBS@ +CRAY_WLM_DETECT_CFLAGS = @CRAY_WLM_DETECT_CFLAGS@ +CRAY_WLM_DETECT_LIBS = @CRAY_WLM_DETECT_LIBS@ +CRAY_WLM_DETECT_STATIC_LIBS = @CRAY_WLM_DETECT_STATIC_LIBS@ +CRAY_XPMEM_CFLAGS = @CRAY_XPMEM_CFLAGS@ +CRAY_XPMEM_LIBS = @CRAY_XPMEM_LIBS@ +CRAY_XPMEM_STATIC_LIBS = @CRAY_XPMEM_STATIC_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXCPPFLAGS = @CXXCPPFLAGS@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUGGER_CFLAGS = @DEBUGGER_CFLAGS@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FC = @FC@ +FCFLAGS = @FCFLAGS@ +FCFLAGS_f = @FCFLAGS_f@ +FCFLAGS_f90 = @FCFLAGS_f90@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLUX_PMI_CFLAGS = @FLUX_PMI_CFLAGS@ +FLUX_PMI_LIBS = @FLUX_PMI_LIBS@ +GREP = @GREP@ +HWLOC_CFLAGS = @HWLOC_CFLAGS@ +HWLOC_CPPFLAGS = @HWLOC_CPPFLAGS@ +HWLOC_CUDA_LIBS = @HWLOC_CUDA_LIBS@ +HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@ +HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@ +HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@ +HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@ +HWLOC_GL_LIBS = @HWLOC_GL_LIBS@ +HWLOC_HAVE_LIBXML2 = @HWLOC_HAVE_LIBXML2@ +HWLOC_HAVE_NVML = @HWLOC_HAVE_NVML@ +HWLOC_HAVE_OPENCL = @HWLOC_HAVE_OPENCL@ +HWLOC_LDFLAGS = @HWLOC_LDFLAGS@ +HWLOC_LIBS = @HWLOC_LIBS@ +HWLOC_LIBS_PRIVATE = @HWLOC_LIBS_PRIVATE@ +HWLOC_LIBXML2_CFLAGS = @HWLOC_LIBXML2_CFLAGS@ +HWLOC_LIBXML2_LIBS = @HWLOC_LIBXML2_LIBS@ +HWLOC_MS_LIB = @HWLOC_MS_LIB@ +HWLOC_MS_LIB_ARCH = @HWLOC_MS_LIB_ARCH@ +HWLOC_NVML_LIBS = @HWLOC_NVML_LIBS@ +HWLOC_OPENCL_CFLAGS = @HWLOC_OPENCL_CFLAGS@ +HWLOC_OPENCL_LDFLAGS = @HWLOC_OPENCL_LDFLAGS@ +HWLOC_OPENCL_LIBS = @HWLOC_OPENCL_LIBS@ +HWLOC_PCIACCESS_CFLAGS = @HWLOC_PCIACCESS_CFLAGS@ +HWLOC_PCIACCESS_LIBS = @HWLOC_PCIACCESS_LIBS@ +HWLOC_PLUGINS_DIR = @HWLOC_PLUGINS_DIR@ +HWLOC_PLUGINS_PATH = @HWLOC_PLUGINS_PATH@ +HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@ +HWLOC_REQUIRES = @HWLOC_REQUIRES@ +HWLOC_VERSION = @HWLOC_VERSION@ +HWLOC_X11_CPPFLAGS = @HWLOC_X11_CPPFLAGS@ +HWLOC_X11_LIBS = @HWLOC_X11_LIBS@ +HWLOC_top_builddir = @HWLOC_top_builddir@ +HWLOC_top_srcdir = @HWLOC_top_srcdir@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JAR = @JAR@ +JAVAC = @JAVAC@ +JAVADOC = @JAVADOC@ +JAVAH = @JAVAH@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ +MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ +MCA_ompi_FRAMEWORKS_SUBDIRS = @MCA_ompi_FRAMEWORKS_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_ompi_FRAMEWORK_LIBS = @MCA_ompi_FRAMEWORK_LIBS@ +MCA_ompi_bml_ALL_COMPONENTS = @MCA_ompi_bml_ALL_COMPONENTS@ +MCA_ompi_bml_ALL_SUBDIRS = @MCA_ompi_bml_ALL_SUBDIRS@ +MCA_ompi_bml_DSO_COMPONENTS = @MCA_ompi_bml_DSO_COMPONENTS@ +MCA_ompi_bml_DSO_SUBDIRS = @MCA_ompi_bml_DSO_SUBDIRS@ +MCA_ompi_bml_STATIC_COMPONENTS = @MCA_ompi_bml_STATIC_COMPONENTS@ +MCA_ompi_bml_STATIC_LTLIBS = @MCA_ompi_bml_STATIC_LTLIBS@ +MCA_ompi_bml_STATIC_SUBDIRS = @MCA_ompi_bml_STATIC_SUBDIRS@ +MCA_ompi_coll_ALL_COMPONENTS = @MCA_ompi_coll_ALL_COMPONENTS@ +MCA_ompi_coll_ALL_SUBDIRS = @MCA_ompi_coll_ALL_SUBDIRS@ +MCA_ompi_coll_DSO_COMPONENTS = @MCA_ompi_coll_DSO_COMPONENTS@ +MCA_ompi_coll_DSO_SUBDIRS = @MCA_ompi_coll_DSO_SUBDIRS@ +MCA_ompi_coll_STATIC_COMPONENTS = @MCA_ompi_coll_STATIC_COMPONENTS@ +MCA_ompi_coll_STATIC_LTLIBS = @MCA_ompi_coll_STATIC_LTLIBS@ +MCA_ompi_coll_STATIC_SUBDIRS = @MCA_ompi_coll_STATIC_SUBDIRS@ +MCA_ompi_common_ALL_COMPONENTS = @MCA_ompi_common_ALL_COMPONENTS@ +MCA_ompi_common_ALL_SUBDIRS = @MCA_ompi_common_ALL_SUBDIRS@ +MCA_ompi_common_DSO_COMPONENTS = @MCA_ompi_common_DSO_COMPONENTS@ +MCA_ompi_common_DSO_SUBDIRS = @MCA_ompi_common_DSO_SUBDIRS@ +MCA_ompi_common_STATIC_COMPONENTS = @MCA_ompi_common_STATIC_COMPONENTS@ +MCA_ompi_common_STATIC_LTLIBS = @MCA_ompi_common_STATIC_LTLIBS@ +MCA_ompi_common_STATIC_SUBDIRS = @MCA_ompi_common_STATIC_SUBDIRS@ +MCA_ompi_crcp_ALL_COMPONENTS = @MCA_ompi_crcp_ALL_COMPONENTS@ +MCA_ompi_crcp_ALL_SUBDIRS = @MCA_ompi_crcp_ALL_SUBDIRS@ +MCA_ompi_crcp_DSO_COMPONENTS = @MCA_ompi_crcp_DSO_COMPONENTS@ +MCA_ompi_crcp_DSO_SUBDIRS = @MCA_ompi_crcp_DSO_SUBDIRS@ +MCA_ompi_crcp_STATIC_COMPONENTS = @MCA_ompi_crcp_STATIC_COMPONENTS@ +MCA_ompi_crcp_STATIC_LTLIBS = @MCA_ompi_crcp_STATIC_LTLIBS@ +MCA_ompi_crcp_STATIC_SUBDIRS = @MCA_ompi_crcp_STATIC_SUBDIRS@ +MCA_ompi_fbtl_ALL_COMPONENTS = @MCA_ompi_fbtl_ALL_COMPONENTS@ +MCA_ompi_fbtl_ALL_SUBDIRS = @MCA_ompi_fbtl_ALL_SUBDIRS@ +MCA_ompi_fbtl_DSO_COMPONENTS = @MCA_ompi_fbtl_DSO_COMPONENTS@ +MCA_ompi_fbtl_DSO_SUBDIRS = @MCA_ompi_fbtl_DSO_SUBDIRS@ +MCA_ompi_fbtl_STATIC_COMPONENTS = @MCA_ompi_fbtl_STATIC_COMPONENTS@ +MCA_ompi_fbtl_STATIC_LTLIBS = @MCA_ompi_fbtl_STATIC_LTLIBS@ +MCA_ompi_fbtl_STATIC_SUBDIRS = @MCA_ompi_fbtl_STATIC_SUBDIRS@ +MCA_ompi_fcoll_ALL_COMPONENTS = @MCA_ompi_fcoll_ALL_COMPONENTS@ +MCA_ompi_fcoll_ALL_SUBDIRS = @MCA_ompi_fcoll_ALL_SUBDIRS@ +MCA_ompi_fcoll_DSO_COMPONENTS = @MCA_ompi_fcoll_DSO_COMPONENTS@ +MCA_ompi_fcoll_DSO_SUBDIRS = @MCA_ompi_fcoll_DSO_SUBDIRS@ +MCA_ompi_fcoll_STATIC_COMPONENTS = @MCA_ompi_fcoll_STATIC_COMPONENTS@ +MCA_ompi_fcoll_STATIC_LTLIBS = @MCA_ompi_fcoll_STATIC_LTLIBS@ +MCA_ompi_fcoll_STATIC_SUBDIRS = @MCA_ompi_fcoll_STATIC_SUBDIRS@ +MCA_ompi_fs_ALL_COMPONENTS = @MCA_ompi_fs_ALL_COMPONENTS@ +MCA_ompi_fs_ALL_SUBDIRS = @MCA_ompi_fs_ALL_SUBDIRS@ +MCA_ompi_fs_DSO_COMPONENTS = @MCA_ompi_fs_DSO_COMPONENTS@ +MCA_ompi_fs_DSO_SUBDIRS = @MCA_ompi_fs_DSO_SUBDIRS@ +MCA_ompi_fs_STATIC_COMPONENTS = @MCA_ompi_fs_STATIC_COMPONENTS@ +MCA_ompi_fs_STATIC_LTLIBS = @MCA_ompi_fs_STATIC_LTLIBS@ +MCA_ompi_fs_STATIC_SUBDIRS = @MCA_ompi_fs_STATIC_SUBDIRS@ +MCA_ompi_hook_ALL_COMPONENTS = @MCA_ompi_hook_ALL_COMPONENTS@ +MCA_ompi_hook_ALL_SUBDIRS = @MCA_ompi_hook_ALL_SUBDIRS@ +MCA_ompi_hook_DSO_COMPONENTS = @MCA_ompi_hook_DSO_COMPONENTS@ +MCA_ompi_hook_DSO_SUBDIRS = @MCA_ompi_hook_DSO_SUBDIRS@ +MCA_ompi_hook_STATIC_COMPONENTS = @MCA_ompi_hook_STATIC_COMPONENTS@ +MCA_ompi_hook_STATIC_LTLIBS = @MCA_ompi_hook_STATIC_LTLIBS@ +MCA_ompi_hook_STATIC_SUBDIRS = @MCA_ompi_hook_STATIC_SUBDIRS@ +MCA_ompi_io_ALL_COMPONENTS = @MCA_ompi_io_ALL_COMPONENTS@ +MCA_ompi_io_ALL_SUBDIRS = @MCA_ompi_io_ALL_SUBDIRS@ +MCA_ompi_io_DSO_COMPONENTS = @MCA_ompi_io_DSO_COMPONENTS@ +MCA_ompi_io_DSO_SUBDIRS = @MCA_ompi_io_DSO_SUBDIRS@ +MCA_ompi_io_STATIC_COMPONENTS = @MCA_ompi_io_STATIC_COMPONENTS@ +MCA_ompi_io_STATIC_LTLIBS = @MCA_ompi_io_STATIC_LTLIBS@ +MCA_ompi_io_STATIC_SUBDIRS = @MCA_ompi_io_STATIC_SUBDIRS@ +MCA_ompi_mtl_ALL_COMPONENTS = @MCA_ompi_mtl_ALL_COMPONENTS@ +MCA_ompi_mtl_ALL_SUBDIRS = @MCA_ompi_mtl_ALL_SUBDIRS@ +MCA_ompi_mtl_DIRECT_CALL_HEADER = @MCA_ompi_mtl_DIRECT_CALL_HEADER@ +MCA_ompi_mtl_DSO_COMPONENTS = @MCA_ompi_mtl_DSO_COMPONENTS@ +MCA_ompi_mtl_DSO_SUBDIRS = @MCA_ompi_mtl_DSO_SUBDIRS@ +MCA_ompi_mtl_STATIC_COMPONENTS = @MCA_ompi_mtl_STATIC_COMPONENTS@ +MCA_ompi_mtl_STATIC_LTLIBS = @MCA_ompi_mtl_STATIC_LTLIBS@ +MCA_ompi_mtl_STATIC_SUBDIRS = @MCA_ompi_mtl_STATIC_SUBDIRS@ +MCA_ompi_op_ALL_COMPONENTS = @MCA_ompi_op_ALL_COMPONENTS@ +MCA_ompi_op_ALL_SUBDIRS = @MCA_ompi_op_ALL_SUBDIRS@ +MCA_ompi_op_DSO_COMPONENTS = @MCA_ompi_op_DSO_COMPONENTS@ +MCA_ompi_op_DSO_SUBDIRS = @MCA_ompi_op_DSO_SUBDIRS@ +MCA_ompi_op_STATIC_COMPONENTS = @MCA_ompi_op_STATIC_COMPONENTS@ +MCA_ompi_op_STATIC_LTLIBS = @MCA_ompi_op_STATIC_LTLIBS@ +MCA_ompi_op_STATIC_SUBDIRS = @MCA_ompi_op_STATIC_SUBDIRS@ +MCA_ompi_osc_ALL_COMPONENTS = @MCA_ompi_osc_ALL_COMPONENTS@ +MCA_ompi_osc_ALL_SUBDIRS = @MCA_ompi_osc_ALL_SUBDIRS@ +MCA_ompi_osc_DSO_COMPONENTS = @MCA_ompi_osc_DSO_COMPONENTS@ +MCA_ompi_osc_DSO_SUBDIRS = @MCA_ompi_osc_DSO_SUBDIRS@ +MCA_ompi_osc_STATIC_COMPONENTS = @MCA_ompi_osc_STATIC_COMPONENTS@ +MCA_ompi_osc_STATIC_LTLIBS = @MCA_ompi_osc_STATIC_LTLIBS@ +MCA_ompi_osc_STATIC_SUBDIRS = @MCA_ompi_osc_STATIC_SUBDIRS@ +MCA_ompi_pml_ALL_COMPONENTS = @MCA_ompi_pml_ALL_COMPONENTS@ +MCA_ompi_pml_ALL_SUBDIRS = @MCA_ompi_pml_ALL_SUBDIRS@ +MCA_ompi_pml_DIRECT_CALL_HEADER = @MCA_ompi_pml_DIRECT_CALL_HEADER@ +MCA_ompi_pml_DSO_COMPONENTS = @MCA_ompi_pml_DSO_COMPONENTS@ +MCA_ompi_pml_DSO_SUBDIRS = @MCA_ompi_pml_DSO_SUBDIRS@ +MCA_ompi_pml_STATIC_COMPONENTS = @MCA_ompi_pml_STATIC_COMPONENTS@ +MCA_ompi_pml_STATIC_LTLIBS = @MCA_ompi_pml_STATIC_LTLIBS@ +MCA_ompi_pml_STATIC_SUBDIRS = @MCA_ompi_pml_STATIC_SUBDIRS@ +MCA_ompi_rte_ALL_COMPONENTS = @MCA_ompi_rte_ALL_COMPONENTS@ +MCA_ompi_rte_ALL_SUBDIRS = @MCA_ompi_rte_ALL_SUBDIRS@ +MCA_ompi_rte_DSO_COMPONENTS = @MCA_ompi_rte_DSO_COMPONENTS@ +MCA_ompi_rte_DSO_SUBDIRS = @MCA_ompi_rte_DSO_SUBDIRS@ +MCA_ompi_rte_STATIC_COMPONENTS = @MCA_ompi_rte_STATIC_COMPONENTS@ +MCA_ompi_rte_STATIC_LTLIBS = @MCA_ompi_rte_STATIC_LTLIBS@ +MCA_ompi_rte_STATIC_SUBDIRS = @MCA_ompi_rte_STATIC_SUBDIRS@ +MCA_ompi_sharedfp_ALL_COMPONENTS = @MCA_ompi_sharedfp_ALL_COMPONENTS@ +MCA_ompi_sharedfp_ALL_SUBDIRS = @MCA_ompi_sharedfp_ALL_SUBDIRS@ +MCA_ompi_sharedfp_DSO_COMPONENTS = @MCA_ompi_sharedfp_DSO_COMPONENTS@ +MCA_ompi_sharedfp_DSO_SUBDIRS = @MCA_ompi_sharedfp_DSO_SUBDIRS@ +MCA_ompi_sharedfp_STATIC_COMPONENTS = @MCA_ompi_sharedfp_STATIC_COMPONENTS@ +MCA_ompi_sharedfp_STATIC_LTLIBS = @MCA_ompi_sharedfp_STATIC_LTLIBS@ +MCA_ompi_sharedfp_STATIC_SUBDIRS = @MCA_ompi_sharedfp_STATIC_SUBDIRS@ +MCA_ompi_topo_ALL_COMPONENTS = @MCA_ompi_topo_ALL_COMPONENTS@ +MCA_ompi_topo_ALL_SUBDIRS = @MCA_ompi_topo_ALL_SUBDIRS@ +MCA_ompi_topo_DSO_COMPONENTS = @MCA_ompi_topo_DSO_COMPONENTS@ +MCA_ompi_topo_DSO_SUBDIRS = @MCA_ompi_topo_DSO_SUBDIRS@ +MCA_ompi_topo_STATIC_COMPONENTS = @MCA_ompi_topo_STATIC_COMPONENTS@ +MCA_ompi_topo_STATIC_LTLIBS = @MCA_ompi_topo_STATIC_LTLIBS@ +MCA_ompi_topo_STATIC_SUBDIRS = @MCA_ompi_topo_STATIC_SUBDIRS@ +MCA_ompi_vprotocol_ALL_COMPONENTS = @MCA_ompi_vprotocol_ALL_COMPONENTS@ +MCA_ompi_vprotocol_ALL_SUBDIRS = @MCA_ompi_vprotocol_ALL_SUBDIRS@ +MCA_ompi_vprotocol_DSO_COMPONENTS = @MCA_ompi_vprotocol_DSO_COMPONENTS@ +MCA_ompi_vprotocol_DSO_SUBDIRS = @MCA_ompi_vprotocol_DSO_SUBDIRS@ +MCA_ompi_vprotocol_STATIC_COMPONENTS = @MCA_ompi_vprotocol_STATIC_COMPONENTS@ +MCA_ompi_vprotocol_STATIC_LTLIBS = @MCA_ompi_vprotocol_STATIC_LTLIBS@ +MCA_ompi_vprotocol_STATIC_SUBDIRS = @MCA_ompi_vprotocol_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORKS = @MCA_opal_FRAMEWORKS@ +MCA_opal_FRAMEWORKS_SUBDIRS = @MCA_opal_FRAMEWORKS_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORK_LIBS = @MCA_opal_FRAMEWORK_LIBS@ +MCA_opal_allocator_ALL_COMPONENTS = @MCA_opal_allocator_ALL_COMPONENTS@ +MCA_opal_allocator_ALL_SUBDIRS = @MCA_opal_allocator_ALL_SUBDIRS@ +MCA_opal_allocator_DSO_COMPONENTS = @MCA_opal_allocator_DSO_COMPONENTS@ +MCA_opal_allocator_DSO_SUBDIRS = @MCA_opal_allocator_DSO_SUBDIRS@ +MCA_opal_allocator_STATIC_COMPONENTS = @MCA_opal_allocator_STATIC_COMPONENTS@ +MCA_opal_allocator_STATIC_LTLIBS = @MCA_opal_allocator_STATIC_LTLIBS@ +MCA_opal_allocator_STATIC_SUBDIRS = @MCA_opal_allocator_STATIC_SUBDIRS@ +MCA_opal_backtrace_ALL_COMPONENTS = @MCA_opal_backtrace_ALL_COMPONENTS@ +MCA_opal_backtrace_ALL_SUBDIRS = @MCA_opal_backtrace_ALL_SUBDIRS@ +MCA_opal_backtrace_DSO_COMPONENTS = @MCA_opal_backtrace_DSO_COMPONENTS@ +MCA_opal_backtrace_DSO_SUBDIRS = @MCA_opal_backtrace_DSO_SUBDIRS@ +MCA_opal_backtrace_STATIC_COMPONENTS = @MCA_opal_backtrace_STATIC_COMPONENTS@ +MCA_opal_backtrace_STATIC_LTLIBS = @MCA_opal_backtrace_STATIC_LTLIBS@ +MCA_opal_backtrace_STATIC_SUBDIRS = @MCA_opal_backtrace_STATIC_SUBDIRS@ +MCA_opal_btl_ALL_COMPONENTS = @MCA_opal_btl_ALL_COMPONENTS@ +MCA_opal_btl_ALL_SUBDIRS = @MCA_opal_btl_ALL_SUBDIRS@ +MCA_opal_btl_DSO_COMPONENTS = @MCA_opal_btl_DSO_COMPONENTS@ +MCA_opal_btl_DSO_SUBDIRS = @MCA_opal_btl_DSO_SUBDIRS@ +MCA_opal_btl_STATIC_COMPONENTS = @MCA_opal_btl_STATIC_COMPONENTS@ +MCA_opal_btl_STATIC_LTLIBS = @MCA_opal_btl_STATIC_LTLIBS@ +MCA_opal_btl_STATIC_SUBDIRS = @MCA_opal_btl_STATIC_SUBDIRS@ +MCA_opal_common_ALL_COMPONENTS = @MCA_opal_common_ALL_COMPONENTS@ +MCA_opal_common_ALL_SUBDIRS = @MCA_opal_common_ALL_SUBDIRS@ +MCA_opal_common_DSO_COMPONENTS = @MCA_opal_common_DSO_COMPONENTS@ +MCA_opal_common_DSO_SUBDIRS = @MCA_opal_common_DSO_SUBDIRS@ +MCA_opal_common_STATIC_COMPONENTS = @MCA_opal_common_STATIC_COMPONENTS@ +MCA_opal_common_STATIC_LTLIBS = @MCA_opal_common_STATIC_LTLIBS@ +MCA_opal_common_STATIC_SUBDIRS = @MCA_opal_common_STATIC_SUBDIRS@ +MCA_opal_compress_ALL_COMPONENTS = @MCA_opal_compress_ALL_COMPONENTS@ +MCA_opal_compress_ALL_SUBDIRS = @MCA_opal_compress_ALL_SUBDIRS@ +MCA_opal_compress_DSO_COMPONENTS = @MCA_opal_compress_DSO_COMPONENTS@ +MCA_opal_compress_DSO_SUBDIRS = @MCA_opal_compress_DSO_SUBDIRS@ +MCA_opal_compress_STATIC_COMPONENTS = @MCA_opal_compress_STATIC_COMPONENTS@ +MCA_opal_compress_STATIC_LTLIBS = @MCA_opal_compress_STATIC_LTLIBS@ +MCA_opal_compress_STATIC_SUBDIRS = @MCA_opal_compress_STATIC_SUBDIRS@ +MCA_opal_crs_ALL_COMPONENTS = @MCA_opal_crs_ALL_COMPONENTS@ +MCA_opal_crs_ALL_SUBDIRS = @MCA_opal_crs_ALL_SUBDIRS@ +MCA_opal_crs_DSO_COMPONENTS = @MCA_opal_crs_DSO_COMPONENTS@ +MCA_opal_crs_DSO_SUBDIRS = @MCA_opal_crs_DSO_SUBDIRS@ +MCA_opal_crs_STATIC_COMPONENTS = @MCA_opal_crs_STATIC_COMPONENTS@ +MCA_opal_crs_STATIC_LTLIBS = @MCA_opal_crs_STATIC_LTLIBS@ +MCA_opal_crs_STATIC_SUBDIRS = @MCA_opal_crs_STATIC_SUBDIRS@ +MCA_opal_dl_ALL_COMPONENTS = @MCA_opal_dl_ALL_COMPONENTS@ +MCA_opal_dl_ALL_SUBDIRS = @MCA_opal_dl_ALL_SUBDIRS@ +MCA_opal_dl_DSO_COMPONENTS = @MCA_opal_dl_DSO_COMPONENTS@ +MCA_opal_dl_DSO_SUBDIRS = @MCA_opal_dl_DSO_SUBDIRS@ +MCA_opal_dl_STATIC_COMPONENTS = @MCA_opal_dl_STATIC_COMPONENTS@ +MCA_opal_dl_STATIC_LTLIBS = @MCA_opal_dl_STATIC_LTLIBS@ +MCA_opal_dl_STATIC_SUBDIRS = @MCA_opal_dl_STATIC_SUBDIRS@ +MCA_opal_event_ALL_COMPONENTS = @MCA_opal_event_ALL_COMPONENTS@ +MCA_opal_event_ALL_SUBDIRS = @MCA_opal_event_ALL_SUBDIRS@ +MCA_opal_event_DSO_COMPONENTS = @MCA_opal_event_DSO_COMPONENTS@ +MCA_opal_event_DSO_SUBDIRS = @MCA_opal_event_DSO_SUBDIRS@ +MCA_opal_event_STATIC_COMPONENTS = @MCA_opal_event_STATIC_COMPONENTS@ +MCA_opal_event_STATIC_LTLIBS = @MCA_opal_event_STATIC_LTLIBS@ +MCA_opal_event_STATIC_SUBDIRS = @MCA_opal_event_STATIC_SUBDIRS@ +MCA_opal_hwloc_ALL_COMPONENTS = @MCA_opal_hwloc_ALL_COMPONENTS@ +MCA_opal_hwloc_ALL_SUBDIRS = @MCA_opal_hwloc_ALL_SUBDIRS@ +MCA_opal_hwloc_DSO_COMPONENTS = @MCA_opal_hwloc_DSO_COMPONENTS@ +MCA_opal_hwloc_DSO_SUBDIRS = @MCA_opal_hwloc_DSO_SUBDIRS@ +MCA_opal_hwloc_STATIC_COMPONENTS = @MCA_opal_hwloc_STATIC_COMPONENTS@ +MCA_opal_hwloc_STATIC_LTLIBS = @MCA_opal_hwloc_STATIC_LTLIBS@ +MCA_opal_hwloc_STATIC_SUBDIRS = @MCA_opal_hwloc_STATIC_SUBDIRS@ +MCA_opal_if_ALL_COMPONENTS = @MCA_opal_if_ALL_COMPONENTS@ +MCA_opal_if_ALL_SUBDIRS = @MCA_opal_if_ALL_SUBDIRS@ +MCA_opal_if_DSO_COMPONENTS = @MCA_opal_if_DSO_COMPONENTS@ +MCA_opal_if_DSO_SUBDIRS = @MCA_opal_if_DSO_SUBDIRS@ +MCA_opal_if_STATIC_COMPONENTS = @MCA_opal_if_STATIC_COMPONENTS@ +MCA_opal_if_STATIC_LTLIBS = @MCA_opal_if_STATIC_LTLIBS@ +MCA_opal_if_STATIC_SUBDIRS = @MCA_opal_if_STATIC_SUBDIRS@ +MCA_opal_installdirs_ALL_COMPONENTS = @MCA_opal_installdirs_ALL_COMPONENTS@ +MCA_opal_installdirs_ALL_SUBDIRS = @MCA_opal_installdirs_ALL_SUBDIRS@ +MCA_opal_installdirs_DSO_COMPONENTS = @MCA_opal_installdirs_DSO_COMPONENTS@ +MCA_opal_installdirs_DSO_SUBDIRS = @MCA_opal_installdirs_DSO_SUBDIRS@ +MCA_opal_installdirs_STATIC_COMPONENTS = @MCA_opal_installdirs_STATIC_COMPONENTS@ +MCA_opal_installdirs_STATIC_LTLIBS = @MCA_opal_installdirs_STATIC_LTLIBS@ +MCA_opal_installdirs_STATIC_SUBDIRS = @MCA_opal_installdirs_STATIC_SUBDIRS@ +MCA_opal_memchecker_ALL_COMPONENTS = @MCA_opal_memchecker_ALL_COMPONENTS@ +MCA_opal_memchecker_ALL_SUBDIRS = @MCA_opal_memchecker_ALL_SUBDIRS@ +MCA_opal_memchecker_DSO_COMPONENTS = @MCA_opal_memchecker_DSO_COMPONENTS@ +MCA_opal_memchecker_DSO_SUBDIRS = @MCA_opal_memchecker_DSO_SUBDIRS@ +MCA_opal_memchecker_STATIC_COMPONENTS = @MCA_opal_memchecker_STATIC_COMPONENTS@ +MCA_opal_memchecker_STATIC_LTLIBS = @MCA_opal_memchecker_STATIC_LTLIBS@ +MCA_opal_memchecker_STATIC_SUBDIRS = @MCA_opal_memchecker_STATIC_SUBDIRS@ +MCA_opal_memcpy_ALL_COMPONENTS = @MCA_opal_memcpy_ALL_COMPONENTS@ +MCA_opal_memcpy_ALL_SUBDIRS = @MCA_opal_memcpy_ALL_SUBDIRS@ +MCA_opal_memcpy_DSO_COMPONENTS = @MCA_opal_memcpy_DSO_COMPONENTS@ +MCA_opal_memcpy_DSO_SUBDIRS = @MCA_opal_memcpy_DSO_SUBDIRS@ +MCA_opal_memcpy_STATIC_COMPONENTS = @MCA_opal_memcpy_STATIC_COMPONENTS@ +MCA_opal_memcpy_STATIC_LTLIBS = @MCA_opal_memcpy_STATIC_LTLIBS@ +MCA_opal_memcpy_STATIC_SUBDIRS = @MCA_opal_memcpy_STATIC_SUBDIRS@ +MCA_opal_memory_ALL_COMPONENTS = @MCA_opal_memory_ALL_COMPONENTS@ +MCA_opal_memory_ALL_SUBDIRS = @MCA_opal_memory_ALL_SUBDIRS@ +MCA_opal_memory_DSO_COMPONENTS = @MCA_opal_memory_DSO_COMPONENTS@ +MCA_opal_memory_DSO_SUBDIRS = @MCA_opal_memory_DSO_SUBDIRS@ +MCA_opal_memory_STATIC_COMPONENTS = @MCA_opal_memory_STATIC_COMPONENTS@ +MCA_opal_memory_STATIC_LTLIBS = @MCA_opal_memory_STATIC_LTLIBS@ +MCA_opal_memory_STATIC_SUBDIRS = @MCA_opal_memory_STATIC_SUBDIRS@ +MCA_opal_mpool_ALL_COMPONENTS = @MCA_opal_mpool_ALL_COMPONENTS@ +MCA_opal_mpool_ALL_SUBDIRS = @MCA_opal_mpool_ALL_SUBDIRS@ +MCA_opal_mpool_DSO_COMPONENTS = @MCA_opal_mpool_DSO_COMPONENTS@ +MCA_opal_mpool_DSO_SUBDIRS = @MCA_opal_mpool_DSO_SUBDIRS@ +MCA_opal_mpool_STATIC_COMPONENTS = @MCA_opal_mpool_STATIC_COMPONENTS@ +MCA_opal_mpool_STATIC_LTLIBS = @MCA_opal_mpool_STATIC_LTLIBS@ +MCA_opal_mpool_STATIC_SUBDIRS = @MCA_opal_mpool_STATIC_SUBDIRS@ +MCA_opal_patcher_ALL_COMPONENTS = @MCA_opal_patcher_ALL_COMPONENTS@ +MCA_opal_patcher_ALL_SUBDIRS = @MCA_opal_patcher_ALL_SUBDIRS@ +MCA_opal_patcher_DSO_COMPONENTS = @MCA_opal_patcher_DSO_COMPONENTS@ +MCA_opal_patcher_DSO_SUBDIRS = @MCA_opal_patcher_DSO_SUBDIRS@ +MCA_opal_patcher_STATIC_COMPONENTS = @MCA_opal_patcher_STATIC_COMPONENTS@ +MCA_opal_patcher_STATIC_LTLIBS = @MCA_opal_patcher_STATIC_LTLIBS@ +MCA_opal_patcher_STATIC_SUBDIRS = @MCA_opal_patcher_STATIC_SUBDIRS@ +MCA_opal_pmix_ALL_COMPONENTS = @MCA_opal_pmix_ALL_COMPONENTS@ +MCA_opal_pmix_ALL_SUBDIRS = @MCA_opal_pmix_ALL_SUBDIRS@ +MCA_opal_pmix_DSO_COMPONENTS = @MCA_opal_pmix_DSO_COMPONENTS@ +MCA_opal_pmix_DSO_SUBDIRS = @MCA_opal_pmix_DSO_SUBDIRS@ +MCA_opal_pmix_STATIC_COMPONENTS = @MCA_opal_pmix_STATIC_COMPONENTS@ +MCA_opal_pmix_STATIC_LTLIBS = @MCA_opal_pmix_STATIC_LTLIBS@ +MCA_opal_pmix_STATIC_SUBDIRS = @MCA_opal_pmix_STATIC_SUBDIRS@ +MCA_opal_pstat_ALL_COMPONENTS = @MCA_opal_pstat_ALL_COMPONENTS@ +MCA_opal_pstat_ALL_SUBDIRS = @MCA_opal_pstat_ALL_SUBDIRS@ +MCA_opal_pstat_DSO_COMPONENTS = @MCA_opal_pstat_DSO_COMPONENTS@ +MCA_opal_pstat_DSO_SUBDIRS = @MCA_opal_pstat_DSO_SUBDIRS@ +MCA_opal_pstat_STATIC_COMPONENTS = @MCA_opal_pstat_STATIC_COMPONENTS@ +MCA_opal_pstat_STATIC_LTLIBS = @MCA_opal_pstat_STATIC_LTLIBS@ +MCA_opal_pstat_STATIC_SUBDIRS = @MCA_opal_pstat_STATIC_SUBDIRS@ +MCA_opal_rcache_ALL_COMPONENTS = @MCA_opal_rcache_ALL_COMPONENTS@ +MCA_opal_rcache_ALL_SUBDIRS = @MCA_opal_rcache_ALL_SUBDIRS@ +MCA_opal_rcache_DSO_COMPONENTS = @MCA_opal_rcache_DSO_COMPONENTS@ +MCA_opal_rcache_DSO_SUBDIRS = @MCA_opal_rcache_DSO_SUBDIRS@ +MCA_opal_rcache_STATIC_COMPONENTS = @MCA_opal_rcache_STATIC_COMPONENTS@ +MCA_opal_rcache_STATIC_LTLIBS = @MCA_opal_rcache_STATIC_LTLIBS@ +MCA_opal_rcache_STATIC_SUBDIRS = @MCA_opal_rcache_STATIC_SUBDIRS@ +MCA_opal_reachable_ALL_COMPONENTS = @MCA_opal_reachable_ALL_COMPONENTS@ +MCA_opal_reachable_ALL_SUBDIRS = @MCA_opal_reachable_ALL_SUBDIRS@ +MCA_opal_reachable_DSO_COMPONENTS = @MCA_opal_reachable_DSO_COMPONENTS@ +MCA_opal_reachable_DSO_SUBDIRS = @MCA_opal_reachable_DSO_SUBDIRS@ +MCA_opal_reachable_STATIC_COMPONENTS = @MCA_opal_reachable_STATIC_COMPONENTS@ +MCA_opal_reachable_STATIC_LTLIBS = @MCA_opal_reachable_STATIC_LTLIBS@ +MCA_opal_reachable_STATIC_SUBDIRS = @MCA_opal_reachable_STATIC_SUBDIRS@ +MCA_opal_shmem_ALL_COMPONENTS = @MCA_opal_shmem_ALL_COMPONENTS@ +MCA_opal_shmem_ALL_SUBDIRS = @MCA_opal_shmem_ALL_SUBDIRS@ +MCA_opal_shmem_DSO_COMPONENTS = @MCA_opal_shmem_DSO_COMPONENTS@ +MCA_opal_shmem_DSO_SUBDIRS = @MCA_opal_shmem_DSO_SUBDIRS@ +MCA_opal_shmem_STATIC_COMPONENTS = @MCA_opal_shmem_STATIC_COMPONENTS@ +MCA_opal_shmem_STATIC_LTLIBS = @MCA_opal_shmem_STATIC_LTLIBS@ +MCA_opal_shmem_STATIC_SUBDIRS = @MCA_opal_shmem_STATIC_SUBDIRS@ +MCA_opal_timer_ALL_COMPONENTS = @MCA_opal_timer_ALL_COMPONENTS@ +MCA_opal_timer_ALL_SUBDIRS = @MCA_opal_timer_ALL_SUBDIRS@ +MCA_opal_timer_DSO_COMPONENTS = @MCA_opal_timer_DSO_COMPONENTS@ +MCA_opal_timer_DSO_SUBDIRS = @MCA_opal_timer_DSO_SUBDIRS@ +MCA_opal_timer_STATIC_COMPONENTS = @MCA_opal_timer_STATIC_COMPONENTS@ +MCA_opal_timer_STATIC_LTLIBS = @MCA_opal_timer_STATIC_LTLIBS@ +MCA_opal_timer_STATIC_SUBDIRS = @MCA_opal_timer_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORKS = @MCA_orte_FRAMEWORKS@ +MCA_orte_FRAMEWORKS_SUBDIRS = @MCA_orte_FRAMEWORKS_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORK_LIBS = @MCA_orte_FRAMEWORK_LIBS@ +MCA_orte_common_ALL_COMPONENTS = @MCA_orte_common_ALL_COMPONENTS@ +MCA_orte_common_ALL_SUBDIRS = @MCA_orte_common_ALL_SUBDIRS@ +MCA_orte_common_DSO_COMPONENTS = @MCA_orte_common_DSO_COMPONENTS@ +MCA_orte_common_DSO_SUBDIRS = @MCA_orte_common_DSO_SUBDIRS@ +MCA_orte_common_STATIC_COMPONENTS = @MCA_orte_common_STATIC_COMPONENTS@ +MCA_orte_common_STATIC_LTLIBS = @MCA_orte_common_STATIC_LTLIBS@ +MCA_orte_common_STATIC_SUBDIRS = @MCA_orte_common_STATIC_SUBDIRS@ +MCA_orte_errmgr_ALL_COMPONENTS = @MCA_orte_errmgr_ALL_COMPONENTS@ +MCA_orte_errmgr_ALL_SUBDIRS = @MCA_orte_errmgr_ALL_SUBDIRS@ +MCA_orte_errmgr_DSO_COMPONENTS = @MCA_orte_errmgr_DSO_COMPONENTS@ +MCA_orte_errmgr_DSO_SUBDIRS = @MCA_orte_errmgr_DSO_SUBDIRS@ +MCA_orte_errmgr_STATIC_COMPONENTS = @MCA_orte_errmgr_STATIC_COMPONENTS@ +MCA_orte_errmgr_STATIC_LTLIBS = @MCA_orte_errmgr_STATIC_LTLIBS@ +MCA_orte_errmgr_STATIC_SUBDIRS = @MCA_orte_errmgr_STATIC_SUBDIRS@ +MCA_orte_ess_ALL_COMPONENTS = @MCA_orte_ess_ALL_COMPONENTS@ +MCA_orte_ess_ALL_SUBDIRS = @MCA_orte_ess_ALL_SUBDIRS@ +MCA_orte_ess_DSO_COMPONENTS = @MCA_orte_ess_DSO_COMPONENTS@ +MCA_orte_ess_DSO_SUBDIRS = @MCA_orte_ess_DSO_SUBDIRS@ +MCA_orte_ess_STATIC_COMPONENTS = @MCA_orte_ess_STATIC_COMPONENTS@ +MCA_orte_ess_STATIC_LTLIBS = @MCA_orte_ess_STATIC_LTLIBS@ +MCA_orte_ess_STATIC_SUBDIRS = @MCA_orte_ess_STATIC_SUBDIRS@ +MCA_orte_filem_ALL_COMPONENTS = @MCA_orte_filem_ALL_COMPONENTS@ +MCA_orte_filem_ALL_SUBDIRS = @MCA_orte_filem_ALL_SUBDIRS@ +MCA_orte_filem_DSO_COMPONENTS = @MCA_orte_filem_DSO_COMPONENTS@ +MCA_orte_filem_DSO_SUBDIRS = @MCA_orte_filem_DSO_SUBDIRS@ +MCA_orte_filem_STATIC_COMPONENTS = @MCA_orte_filem_STATIC_COMPONENTS@ +MCA_orte_filem_STATIC_LTLIBS = @MCA_orte_filem_STATIC_LTLIBS@ +MCA_orte_filem_STATIC_SUBDIRS = @MCA_orte_filem_STATIC_SUBDIRS@ +MCA_orte_grpcomm_ALL_COMPONENTS = @MCA_orte_grpcomm_ALL_COMPONENTS@ +MCA_orte_grpcomm_ALL_SUBDIRS = @MCA_orte_grpcomm_ALL_SUBDIRS@ +MCA_orte_grpcomm_DSO_COMPONENTS = @MCA_orte_grpcomm_DSO_COMPONENTS@ +MCA_orte_grpcomm_DSO_SUBDIRS = @MCA_orte_grpcomm_DSO_SUBDIRS@ +MCA_orte_grpcomm_STATIC_COMPONENTS = @MCA_orte_grpcomm_STATIC_COMPONENTS@ +MCA_orte_grpcomm_STATIC_LTLIBS = @MCA_orte_grpcomm_STATIC_LTLIBS@ +MCA_orte_grpcomm_STATIC_SUBDIRS = @MCA_orte_grpcomm_STATIC_SUBDIRS@ +MCA_orte_iof_ALL_COMPONENTS = @MCA_orte_iof_ALL_COMPONENTS@ +MCA_orte_iof_ALL_SUBDIRS = @MCA_orte_iof_ALL_SUBDIRS@ +MCA_orte_iof_DSO_COMPONENTS = @MCA_orte_iof_DSO_COMPONENTS@ +MCA_orte_iof_DSO_SUBDIRS = @MCA_orte_iof_DSO_SUBDIRS@ +MCA_orte_iof_STATIC_COMPONENTS = @MCA_orte_iof_STATIC_COMPONENTS@ +MCA_orte_iof_STATIC_LTLIBS = @MCA_orte_iof_STATIC_LTLIBS@ +MCA_orte_iof_STATIC_SUBDIRS = @MCA_orte_iof_STATIC_SUBDIRS@ +MCA_orte_odls_ALL_COMPONENTS = @MCA_orte_odls_ALL_COMPONENTS@ +MCA_orte_odls_ALL_SUBDIRS = @MCA_orte_odls_ALL_SUBDIRS@ +MCA_orte_odls_DSO_COMPONENTS = @MCA_orte_odls_DSO_COMPONENTS@ +MCA_orte_odls_DSO_SUBDIRS = @MCA_orte_odls_DSO_SUBDIRS@ +MCA_orte_odls_STATIC_COMPONENTS = @MCA_orte_odls_STATIC_COMPONENTS@ +MCA_orte_odls_STATIC_LTLIBS = @MCA_orte_odls_STATIC_LTLIBS@ +MCA_orte_odls_STATIC_SUBDIRS = @MCA_orte_odls_STATIC_SUBDIRS@ +MCA_orte_oob_ALL_COMPONENTS = @MCA_orte_oob_ALL_COMPONENTS@ +MCA_orte_oob_ALL_SUBDIRS = @MCA_orte_oob_ALL_SUBDIRS@ +MCA_orte_oob_DSO_COMPONENTS = @MCA_orte_oob_DSO_COMPONENTS@ +MCA_orte_oob_DSO_SUBDIRS = @MCA_orte_oob_DSO_SUBDIRS@ +MCA_orte_oob_STATIC_COMPONENTS = @MCA_orte_oob_STATIC_COMPONENTS@ +MCA_orte_oob_STATIC_LTLIBS = @MCA_orte_oob_STATIC_LTLIBS@ +MCA_orte_oob_STATIC_SUBDIRS = @MCA_orte_oob_STATIC_SUBDIRS@ +MCA_orte_plm_ALL_COMPONENTS = @MCA_orte_plm_ALL_COMPONENTS@ +MCA_orte_plm_ALL_SUBDIRS = @MCA_orte_plm_ALL_SUBDIRS@ +MCA_orte_plm_DSO_COMPONENTS = @MCA_orte_plm_DSO_COMPONENTS@ +MCA_orte_plm_DSO_SUBDIRS = @MCA_orte_plm_DSO_SUBDIRS@ +MCA_orte_plm_STATIC_COMPONENTS = @MCA_orte_plm_STATIC_COMPONENTS@ +MCA_orte_plm_STATIC_LTLIBS = @MCA_orte_plm_STATIC_LTLIBS@ +MCA_orte_plm_STATIC_SUBDIRS = @MCA_orte_plm_STATIC_SUBDIRS@ +MCA_orte_ras_ALL_COMPONENTS = @MCA_orte_ras_ALL_COMPONENTS@ +MCA_orte_ras_ALL_SUBDIRS = @MCA_orte_ras_ALL_SUBDIRS@ +MCA_orte_ras_DSO_COMPONENTS = @MCA_orte_ras_DSO_COMPONENTS@ +MCA_orte_ras_DSO_SUBDIRS = @MCA_orte_ras_DSO_SUBDIRS@ +MCA_orte_ras_STATIC_COMPONENTS = @MCA_orte_ras_STATIC_COMPONENTS@ +MCA_orte_ras_STATIC_LTLIBS = @MCA_orte_ras_STATIC_LTLIBS@ +MCA_orte_ras_STATIC_SUBDIRS = @MCA_orte_ras_STATIC_SUBDIRS@ +MCA_orte_regx_ALL_COMPONENTS = @MCA_orte_regx_ALL_COMPONENTS@ +MCA_orte_regx_ALL_SUBDIRS = @MCA_orte_regx_ALL_SUBDIRS@ +MCA_orte_regx_DSO_COMPONENTS = @MCA_orte_regx_DSO_COMPONENTS@ +MCA_orte_regx_DSO_SUBDIRS = @MCA_orte_regx_DSO_SUBDIRS@ +MCA_orte_regx_STATIC_COMPONENTS = @MCA_orte_regx_STATIC_COMPONENTS@ +MCA_orte_regx_STATIC_LTLIBS = @MCA_orte_regx_STATIC_LTLIBS@ +MCA_orte_regx_STATIC_SUBDIRS = @MCA_orte_regx_STATIC_SUBDIRS@ +MCA_orte_rmaps_ALL_COMPONENTS = @MCA_orte_rmaps_ALL_COMPONENTS@ +MCA_orte_rmaps_ALL_SUBDIRS = @MCA_orte_rmaps_ALL_SUBDIRS@ +MCA_orte_rmaps_DSO_COMPONENTS = @MCA_orte_rmaps_DSO_COMPONENTS@ +MCA_orte_rmaps_DSO_SUBDIRS = @MCA_orte_rmaps_DSO_SUBDIRS@ +MCA_orte_rmaps_STATIC_COMPONENTS = @MCA_orte_rmaps_STATIC_COMPONENTS@ +MCA_orte_rmaps_STATIC_LTLIBS = @MCA_orte_rmaps_STATIC_LTLIBS@ +MCA_orte_rmaps_STATIC_SUBDIRS = @MCA_orte_rmaps_STATIC_SUBDIRS@ +MCA_orte_rml_ALL_COMPONENTS = @MCA_orte_rml_ALL_COMPONENTS@ +MCA_orte_rml_ALL_SUBDIRS = @MCA_orte_rml_ALL_SUBDIRS@ +MCA_orte_rml_DSO_COMPONENTS = @MCA_orte_rml_DSO_COMPONENTS@ +MCA_orte_rml_DSO_SUBDIRS = @MCA_orte_rml_DSO_SUBDIRS@ +MCA_orte_rml_STATIC_COMPONENTS = @MCA_orte_rml_STATIC_COMPONENTS@ +MCA_orte_rml_STATIC_LTLIBS = @MCA_orte_rml_STATIC_LTLIBS@ +MCA_orte_rml_STATIC_SUBDIRS = @MCA_orte_rml_STATIC_SUBDIRS@ +MCA_orte_routed_ALL_COMPONENTS = @MCA_orte_routed_ALL_COMPONENTS@ +MCA_orte_routed_ALL_SUBDIRS = @MCA_orte_routed_ALL_SUBDIRS@ +MCA_orte_routed_DSO_COMPONENTS = @MCA_orte_routed_DSO_COMPONENTS@ +MCA_orte_routed_DSO_SUBDIRS = @MCA_orte_routed_DSO_SUBDIRS@ +MCA_orte_routed_STATIC_COMPONENTS = @MCA_orte_routed_STATIC_COMPONENTS@ +MCA_orte_routed_STATIC_LTLIBS = @MCA_orte_routed_STATIC_LTLIBS@ +MCA_orte_routed_STATIC_SUBDIRS = @MCA_orte_routed_STATIC_SUBDIRS@ +MCA_orte_rtc_ALL_COMPONENTS = @MCA_orte_rtc_ALL_COMPONENTS@ +MCA_orte_rtc_ALL_SUBDIRS = @MCA_orte_rtc_ALL_SUBDIRS@ +MCA_orte_rtc_DSO_COMPONENTS = @MCA_orte_rtc_DSO_COMPONENTS@ +MCA_orte_rtc_DSO_SUBDIRS = @MCA_orte_rtc_DSO_SUBDIRS@ +MCA_orte_rtc_STATIC_COMPONENTS = @MCA_orte_rtc_STATIC_COMPONENTS@ +MCA_orte_rtc_STATIC_LTLIBS = @MCA_orte_rtc_STATIC_LTLIBS@ +MCA_orte_rtc_STATIC_SUBDIRS = @MCA_orte_rtc_STATIC_SUBDIRS@ +MCA_orte_schizo_ALL_COMPONENTS = @MCA_orte_schizo_ALL_COMPONENTS@ +MCA_orte_schizo_ALL_SUBDIRS = @MCA_orte_schizo_ALL_SUBDIRS@ +MCA_orte_schizo_DSO_COMPONENTS = @MCA_orte_schizo_DSO_COMPONENTS@ +MCA_orte_schizo_DSO_SUBDIRS = @MCA_orte_schizo_DSO_SUBDIRS@ +MCA_orte_schizo_STATIC_COMPONENTS = @MCA_orte_schizo_STATIC_COMPONENTS@ +MCA_orte_schizo_STATIC_LTLIBS = @MCA_orte_schizo_STATIC_LTLIBS@ +MCA_orte_schizo_STATIC_SUBDIRS = @MCA_orte_schizo_STATIC_SUBDIRS@ +MCA_orte_snapc_ALL_COMPONENTS = @MCA_orte_snapc_ALL_COMPONENTS@ +MCA_orte_snapc_ALL_SUBDIRS = @MCA_orte_snapc_ALL_SUBDIRS@ +MCA_orte_snapc_DSO_COMPONENTS = @MCA_orte_snapc_DSO_COMPONENTS@ +MCA_orte_snapc_DSO_SUBDIRS = @MCA_orte_snapc_DSO_SUBDIRS@ +MCA_orte_snapc_STATIC_COMPONENTS = @MCA_orte_snapc_STATIC_COMPONENTS@ +MCA_orte_snapc_STATIC_LTLIBS = @MCA_orte_snapc_STATIC_LTLIBS@ +MCA_orte_snapc_STATIC_SUBDIRS = @MCA_orte_snapc_STATIC_SUBDIRS@ +MCA_orte_sstore_ALL_COMPONENTS = @MCA_orte_sstore_ALL_COMPONENTS@ +MCA_orte_sstore_ALL_SUBDIRS = @MCA_orte_sstore_ALL_SUBDIRS@ +MCA_orte_sstore_DSO_COMPONENTS = @MCA_orte_sstore_DSO_COMPONENTS@ +MCA_orte_sstore_DSO_SUBDIRS = @MCA_orte_sstore_DSO_SUBDIRS@ +MCA_orte_sstore_STATIC_COMPONENTS = @MCA_orte_sstore_STATIC_COMPONENTS@ +MCA_orte_sstore_STATIC_LTLIBS = @MCA_orte_sstore_STATIC_LTLIBS@ +MCA_orte_sstore_STATIC_SUBDIRS = @MCA_orte_sstore_STATIC_SUBDIRS@ +MCA_orte_state_ALL_COMPONENTS = @MCA_orte_state_ALL_COMPONENTS@ +MCA_orte_state_ALL_SUBDIRS = @MCA_orte_state_ALL_SUBDIRS@ +MCA_orte_state_DSO_COMPONENTS = @MCA_orte_state_DSO_COMPONENTS@ +MCA_orte_state_DSO_SUBDIRS = @MCA_orte_state_DSO_SUBDIRS@ +MCA_orte_state_STATIC_COMPONENTS = @MCA_orte_state_STATIC_COMPONENTS@ +MCA_orte_state_STATIC_LTLIBS = @MCA_orte_state_STATIC_LTLIBS@ +MCA_orte_state_STATIC_SUBDIRS = @MCA_orte_state_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORKS = @MCA_oshmem_FRAMEWORKS@ +MCA_oshmem_FRAMEWORKS_SUBDIRS = @MCA_oshmem_FRAMEWORKS_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORK_LIBS = @MCA_oshmem_FRAMEWORK_LIBS@ +MCA_oshmem_atomic_ALL_COMPONENTS = @MCA_oshmem_atomic_ALL_COMPONENTS@ +MCA_oshmem_atomic_ALL_SUBDIRS = @MCA_oshmem_atomic_ALL_SUBDIRS@ +MCA_oshmem_atomic_DSO_COMPONENTS = @MCA_oshmem_atomic_DSO_COMPONENTS@ +MCA_oshmem_atomic_DSO_SUBDIRS = @MCA_oshmem_atomic_DSO_SUBDIRS@ +MCA_oshmem_atomic_STATIC_COMPONENTS = @MCA_oshmem_atomic_STATIC_COMPONENTS@ +MCA_oshmem_atomic_STATIC_LTLIBS = @MCA_oshmem_atomic_STATIC_LTLIBS@ +MCA_oshmem_atomic_STATIC_SUBDIRS = @MCA_oshmem_atomic_STATIC_SUBDIRS@ +MCA_oshmem_memheap_ALL_COMPONENTS = @MCA_oshmem_memheap_ALL_COMPONENTS@ +MCA_oshmem_memheap_ALL_SUBDIRS = @MCA_oshmem_memheap_ALL_SUBDIRS@ +MCA_oshmem_memheap_DIRECT_CALL_HEADER = @MCA_oshmem_memheap_DIRECT_CALL_HEADER@ +MCA_oshmem_memheap_DSO_COMPONENTS = @MCA_oshmem_memheap_DSO_COMPONENTS@ +MCA_oshmem_memheap_DSO_SUBDIRS = @MCA_oshmem_memheap_DSO_SUBDIRS@ +MCA_oshmem_memheap_STATIC_COMPONENTS = @MCA_oshmem_memheap_STATIC_COMPONENTS@ +MCA_oshmem_memheap_STATIC_LTLIBS = @MCA_oshmem_memheap_STATIC_LTLIBS@ +MCA_oshmem_memheap_STATIC_SUBDIRS = @MCA_oshmem_memheap_STATIC_SUBDIRS@ +MCA_oshmem_scoll_ALL_COMPONENTS = @MCA_oshmem_scoll_ALL_COMPONENTS@ +MCA_oshmem_scoll_ALL_SUBDIRS = @MCA_oshmem_scoll_ALL_SUBDIRS@ +MCA_oshmem_scoll_DSO_COMPONENTS = @MCA_oshmem_scoll_DSO_COMPONENTS@ +MCA_oshmem_scoll_DSO_SUBDIRS = @MCA_oshmem_scoll_DSO_SUBDIRS@ +MCA_oshmem_scoll_STATIC_COMPONENTS = @MCA_oshmem_scoll_STATIC_COMPONENTS@ +MCA_oshmem_scoll_STATIC_LTLIBS = @MCA_oshmem_scoll_STATIC_LTLIBS@ +MCA_oshmem_scoll_STATIC_SUBDIRS = @MCA_oshmem_scoll_STATIC_SUBDIRS@ +MCA_oshmem_spml_ALL_COMPONENTS = @MCA_oshmem_spml_ALL_COMPONENTS@ +MCA_oshmem_spml_ALL_SUBDIRS = @MCA_oshmem_spml_ALL_SUBDIRS@ +MCA_oshmem_spml_DIRECT_CALL_HEADER = @MCA_oshmem_spml_DIRECT_CALL_HEADER@ +MCA_oshmem_spml_DSO_COMPONENTS = @MCA_oshmem_spml_DSO_COMPONENTS@ +MCA_oshmem_spml_DSO_SUBDIRS = @MCA_oshmem_spml_DSO_SUBDIRS@ +MCA_oshmem_spml_STATIC_COMPONENTS = @MCA_oshmem_spml_STATIC_COMPONENTS@ +MCA_oshmem_spml_STATIC_LTLIBS = @MCA_oshmem_spml_STATIC_LTLIBS@ +MCA_oshmem_spml_STATIC_SUBDIRS = @MCA_oshmem_spml_STATIC_SUBDIRS@ +MCA_oshmem_sshmem_ALL_COMPONENTS = @MCA_oshmem_sshmem_ALL_COMPONENTS@ +MCA_oshmem_sshmem_ALL_SUBDIRS = @MCA_oshmem_sshmem_ALL_SUBDIRS@ +MCA_oshmem_sshmem_DSO_COMPONENTS = @MCA_oshmem_sshmem_DSO_COMPONENTS@ +MCA_oshmem_sshmem_DSO_SUBDIRS = @MCA_oshmem_sshmem_DSO_SUBDIRS@ +MCA_oshmem_sshmem_STATIC_COMPONENTS = @MCA_oshmem_sshmem_STATIC_COMPONENTS@ +MCA_oshmem_sshmem_STATIC_LTLIBS = @MCA_oshmem_sshmem_STATIC_LTLIBS@ +MCA_oshmem_sshmem_STATIC_SUBDIRS = @MCA_oshmem_sshmem_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +MPIR_UNWIND_CFLAGS = @MPIR_UNWIND_CFLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPI_ALIGNMENT_FORTRAN_CHARACTER = @OMPI_ALIGNMENT_FORTRAN_CHARACTER@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX16 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX16@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX32 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX32@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX4 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX4@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX8 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX8@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION@ +OMPI_ALIGNMENT_FORTRAN_INTEGER = @OMPI_ALIGNMENT_FORTRAN_INTEGER@ +OMPI_ALIGNMENT_FORTRAN_INTEGER1 = @OMPI_ALIGNMENT_FORTRAN_INTEGER1@ +OMPI_ALIGNMENT_FORTRAN_INTEGER16 = @OMPI_ALIGNMENT_FORTRAN_INTEGER16@ +OMPI_ALIGNMENT_FORTRAN_INTEGER2 = @OMPI_ALIGNMENT_FORTRAN_INTEGER2@ +OMPI_ALIGNMENT_FORTRAN_INTEGER4 = @OMPI_ALIGNMENT_FORTRAN_INTEGER4@ +OMPI_ALIGNMENT_FORTRAN_INTEGER8 = @OMPI_ALIGNMENT_FORTRAN_INTEGER8@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL = @OMPI_ALIGNMENT_FORTRAN_LOGICAL@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL1 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL1@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL2 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL2@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL4 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL4@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL8 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL8@ +OMPI_ALIGNMENT_FORTRAN_REAL = @OMPI_ALIGNMENT_FORTRAN_REAL@ +OMPI_ALIGNMENT_FORTRAN_REAL16 = @OMPI_ALIGNMENT_FORTRAN_REAL16@ +OMPI_ALIGNMENT_FORTRAN_REAL2 = @OMPI_ALIGNMENT_FORTRAN_REAL2@ +OMPI_ALIGNMENT_FORTRAN_REAL4 = @OMPI_ALIGNMENT_FORTRAN_REAL4@ +OMPI_ALIGNMENT_FORTRAN_REAL8 = @OMPI_ALIGNMENT_FORTRAN_REAL8@ +OMPI_CONTRIB_DIST_SUBDIRS = @OMPI_CONTRIB_DIST_SUBDIRS@ +OMPI_CONTRIB_SUBDIRS = @OMPI_CONTRIB_SUBDIRS@ +OMPI_CXX_ABSOLUTE = @OMPI_CXX_ABSOLUTE@ +OMPI_ENABLE_GREQUEST_EXTENSIONS = @OMPI_ENABLE_GREQUEST_EXTENSIONS@ +OMPI_ENABLE_MPI1_COMPAT = @OMPI_ENABLE_MPI1_COMPAT@ +OMPI_F08_SUFFIX = @OMPI_F08_SUFFIX@ +OMPI_FC = @OMPI_FC@ +OMPI_FC_ABSOLUTE = @OMPI_FC_ABSOLUTE@ +OMPI_FC_MODULE_FLAG = @OMPI_FC_MODULE_FLAG@ +OMPI_FORTRAN_BUILD_SIZEOF = @OMPI_FORTRAN_BUILD_SIZEOF@ +OMPI_FORTRAN_CAPS = @OMPI_FORTRAN_CAPS@ +OMPI_FORTRAN_CKINDS = @OMPI_FORTRAN_CKINDS@ +OMPI_FORTRAN_DOUBLE_UNDERSCORE = @OMPI_FORTRAN_DOUBLE_UNDERSCORE@ +OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS = @OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS@ +OMPI_FORTRAN_F08_PREDECL = @OMPI_FORTRAN_F08_PREDECL@ +OMPI_FORTRAN_F08_TYPE = @OMPI_FORTRAN_F08_TYPE@ +OMPI_FORTRAN_HAVE_ABSTRACT = @OMPI_FORTRAN_HAVE_ABSTRACT@ +OMPI_FORTRAN_HAVE_ASYNCHRONOUS = @OMPI_FORTRAN_HAVE_ASYNCHRONOUS@ +OMPI_FORTRAN_HAVE_BIND_C = @OMPI_FORTRAN_HAVE_BIND_C@ +OMPI_FORTRAN_HAVE_C_FUNLOC = @OMPI_FORTRAN_HAVE_C_FUNLOC@ +OMPI_FORTRAN_HAVE_INTERFACE = @OMPI_FORTRAN_HAVE_INTERFACE@ +OMPI_FORTRAN_HAVE_ISO_C_BINDING = @OMPI_FORTRAN_HAVE_ISO_C_BINDING@ +OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV = @OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV@ +OMPI_FORTRAN_HAVE_PRIVATE = @OMPI_FORTRAN_HAVE_PRIVATE@ +OMPI_FORTRAN_HAVE_PROCEDURE = @OMPI_FORTRAN_HAVE_PROCEDURE@ +OMPI_FORTRAN_HAVE_STORAGE_SIZE = @OMPI_FORTRAN_HAVE_STORAGE_SIZE@ +OMPI_FORTRAN_HAVE_USE_ONLY = @OMPI_FORTRAN_HAVE_USE_ONLY@ +OMPI_FORTRAN_IGNORE_TKR_PREDECL = @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ +OMPI_FORTRAN_IGNORE_TKR_TYPE = @OMPI_FORTRAN_IGNORE_TKR_TYPE@ +OMPI_FORTRAN_IKINDS = @OMPI_FORTRAN_IKINDS@ +OMPI_FORTRAN_MAX_ARRAY_RANK = @OMPI_FORTRAN_MAX_ARRAY_RANK@ +OMPI_FORTRAN_NEED_WRAPPER_ROUTINES = @OMPI_FORTRAN_NEED_WRAPPER_ROUTINES@ +OMPI_FORTRAN_PLAIN = @OMPI_FORTRAN_PLAIN@ +OMPI_FORTRAN_RKINDS = @OMPI_FORTRAN_RKINDS@ +OMPI_FORTRAN_SINGLE_UNDERSCORE = @OMPI_FORTRAN_SINGLE_UNDERSCORE@ +OMPI_FORTRAN_STATUS_SIZE = @OMPI_FORTRAN_STATUS_SIZE@ +OMPI_FORTRAN_USEMPIF08_LIB = @OMPI_FORTRAN_USEMPIF08_LIB@ +OMPI_FORTRAN_USEMPI_DIR = @OMPI_FORTRAN_USEMPI_DIR@ +OMPI_FORTRAN_USEMPI_LIB = @OMPI_FORTRAN_USEMPI_LIB@ +OMPI_F_SUFFIX = @OMPI_F_SUFFIX@ +OMPI_GREEK_VERSION = @OMPI_GREEK_VERSION@ +OMPI_HAVE_FORTRAN_CHARACTER = @OMPI_HAVE_FORTRAN_CHARACTER@ +OMPI_HAVE_FORTRAN_COMPLEX = @OMPI_HAVE_FORTRAN_COMPLEX@ +OMPI_HAVE_FORTRAN_COMPLEX16 = @OMPI_HAVE_FORTRAN_COMPLEX16@ +OMPI_HAVE_FORTRAN_COMPLEX32 = @OMPI_HAVE_FORTRAN_COMPLEX32@ +OMPI_HAVE_FORTRAN_COMPLEX4 = @OMPI_HAVE_FORTRAN_COMPLEX4@ +OMPI_HAVE_FORTRAN_COMPLEX8 = @OMPI_HAVE_FORTRAN_COMPLEX8@ +OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX = @OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX@ +OMPI_HAVE_FORTRAN_DOUBLE_PRECISION = @OMPI_HAVE_FORTRAN_DOUBLE_PRECISION@ +OMPI_HAVE_FORTRAN_INTEGER = @OMPI_HAVE_FORTRAN_INTEGER@ +OMPI_HAVE_FORTRAN_INTEGER1 = @OMPI_HAVE_FORTRAN_INTEGER1@ +OMPI_HAVE_FORTRAN_INTEGER16 = @OMPI_HAVE_FORTRAN_INTEGER16@ +OMPI_HAVE_FORTRAN_INTEGER2 = @OMPI_HAVE_FORTRAN_INTEGER2@ +OMPI_HAVE_FORTRAN_INTEGER4 = @OMPI_HAVE_FORTRAN_INTEGER4@ +OMPI_HAVE_FORTRAN_INTEGER8 = @OMPI_HAVE_FORTRAN_INTEGER8@ +OMPI_HAVE_FORTRAN_LOGICAL = @OMPI_HAVE_FORTRAN_LOGICAL@ +OMPI_HAVE_FORTRAN_LOGICAL1 = @OMPI_HAVE_FORTRAN_LOGICAL1@ +OMPI_HAVE_FORTRAN_LOGICAL2 = @OMPI_HAVE_FORTRAN_LOGICAL2@ +OMPI_HAVE_FORTRAN_LOGICAL4 = @OMPI_HAVE_FORTRAN_LOGICAL4@ +OMPI_HAVE_FORTRAN_LOGICAL8 = @OMPI_HAVE_FORTRAN_LOGICAL8@ +OMPI_HAVE_FORTRAN_REAL = @OMPI_HAVE_FORTRAN_REAL@ +OMPI_HAVE_FORTRAN_REAL16 = @OMPI_HAVE_FORTRAN_REAL16@ +OMPI_HAVE_FORTRAN_REAL2 = @OMPI_HAVE_FORTRAN_REAL2@ +OMPI_HAVE_FORTRAN_REAL4 = @OMPI_HAVE_FORTRAN_REAL4@ +OMPI_HAVE_FORTRAN_REAL8 = @OMPI_HAVE_FORTRAN_REAL8@ +OMPI_JDK_CPPFLAGS = @OMPI_JDK_CPPFLAGS@ +OMPI_KIND_FORTRAN_CHARACTER = @OMPI_KIND_FORTRAN_CHARACTER@ +OMPI_KIND_FORTRAN_COMPLEX = @OMPI_KIND_FORTRAN_COMPLEX@ +OMPI_KIND_FORTRAN_COMPLEX16 = @OMPI_KIND_FORTRAN_COMPLEX16@ +OMPI_KIND_FORTRAN_COMPLEX32 = @OMPI_KIND_FORTRAN_COMPLEX32@ +OMPI_KIND_FORTRAN_COMPLEX4 = @OMPI_KIND_FORTRAN_COMPLEX4@ +OMPI_KIND_FORTRAN_COMPLEX8 = @OMPI_KIND_FORTRAN_COMPLEX8@ +OMPI_KIND_FORTRAN_DOUBLE_COMPLEX = @OMPI_KIND_FORTRAN_DOUBLE_COMPLEX@ +OMPI_KIND_FORTRAN_DOUBLE_PRECISION = @OMPI_KIND_FORTRAN_DOUBLE_PRECISION@ +OMPI_KIND_FORTRAN_INTEGER = @OMPI_KIND_FORTRAN_INTEGER@ +OMPI_KIND_FORTRAN_INTEGER1 = @OMPI_KIND_FORTRAN_INTEGER1@ +OMPI_KIND_FORTRAN_INTEGER16 = @OMPI_KIND_FORTRAN_INTEGER16@ +OMPI_KIND_FORTRAN_INTEGER2 = @OMPI_KIND_FORTRAN_INTEGER2@ +OMPI_KIND_FORTRAN_INTEGER4 = @OMPI_KIND_FORTRAN_INTEGER4@ +OMPI_KIND_FORTRAN_INTEGER8 = @OMPI_KIND_FORTRAN_INTEGER8@ +OMPI_KIND_FORTRAN_LOGICAL = @OMPI_KIND_FORTRAN_LOGICAL@ +OMPI_KIND_FORTRAN_LOGICAL1 = @OMPI_KIND_FORTRAN_LOGICAL1@ +OMPI_KIND_FORTRAN_LOGICAL2 = @OMPI_KIND_FORTRAN_LOGICAL2@ +OMPI_KIND_FORTRAN_LOGICAL4 = @OMPI_KIND_FORTRAN_LOGICAL4@ +OMPI_KIND_FORTRAN_LOGICAL8 = @OMPI_KIND_FORTRAN_LOGICAL8@ +OMPI_KIND_FORTRAN_REAL = @OMPI_KIND_FORTRAN_REAL@ +OMPI_KIND_FORTRAN_REAL16 = @OMPI_KIND_FORTRAN_REAL16@ +OMPI_KIND_FORTRAN_REAL2 = @OMPI_KIND_FORTRAN_REAL2@ +OMPI_KIND_FORTRAN_REAL4 = @OMPI_KIND_FORTRAN_REAL4@ +OMPI_KIND_FORTRAN_REAL8 = @OMPI_KIND_FORTRAN_REAL8@ +OMPI_LIBMPI_EXTRA_LDFLAGS = @OMPI_LIBMPI_EXTRA_LDFLAGS@ +OMPI_LIBMPI_EXTRA_LIBS = @OMPI_LIBMPI_EXTRA_LIBS@ +OMPI_LIBMPI_NAME = @OMPI_LIBMPI_NAME@ +OMPI_MAJOR_VERSION = @OMPI_MAJOR_VERSION@ +OMPI_MINOR_VERSION = @OMPI_MINOR_VERSION@ +OMPI_MPIEXT_ALL_SUBDIRS = @OMPI_MPIEXT_ALL_SUBDIRS@ +OMPI_MPIEXT_C_DIRS = @OMPI_MPIEXT_C_DIRS@ +OMPI_MPIEXT_C_LIBS = @OMPI_MPIEXT_C_LIBS@ +OMPI_MPIEXT_MPIFH_DIRS = @OMPI_MPIEXT_MPIFH_DIRS@ +OMPI_MPIEXT_MPIFH_LIBS = @OMPI_MPIEXT_MPIFH_LIBS@ +OMPI_MPIEXT_USEMPIF08_DIRS = @OMPI_MPIEXT_USEMPIF08_DIRS@ +OMPI_MPIEXT_USEMPIF08_LIBS = @OMPI_MPIEXT_USEMPIF08_LIBS@ +OMPI_MPIEXT_USEMPI_DIRS = @OMPI_MPIEXT_USEMPI_DIRS@ +OMPI_MPIEXT_USEMPI_LIBS = @OMPI_MPIEXT_USEMPI_LIBS@ +OMPI_MPI_ADDRESS_KIND = @OMPI_MPI_ADDRESS_KIND@ +OMPI_MPI_BIND_PREFIX = @OMPI_MPI_BIND_PREFIX@ +OMPI_MPI_COUNT_KIND = @OMPI_MPI_COUNT_KIND@ +OMPI_MPI_INTEGER_KIND = @OMPI_MPI_INTEGER_KIND@ +OMPI_MPI_OFFSET_KIND = @OMPI_MPI_OFFSET_KIND@ +OMPI_MPI_PREFIX = @OMPI_MPI_PREFIX@ +OMPI_PKG_CONFIG_LDFLAGS = @OMPI_PKG_CONFIG_LDFLAGS@ +OMPI_RELEASE_DATE = @OMPI_RELEASE_DATE@ +OMPI_RELEASE_VERSION = @OMPI_RELEASE_VERSION@ +OMPI_REPO_REV = @OMPI_REPO_REV@ +OMPI_SIZEOF_FORTRAN_CHARACTER = @OMPI_SIZEOF_FORTRAN_CHARACTER@ +OMPI_SIZEOF_FORTRAN_COMPLEX = @OMPI_SIZEOF_FORTRAN_COMPLEX@ +OMPI_SIZEOF_FORTRAN_COMPLEX16 = @OMPI_SIZEOF_FORTRAN_COMPLEX16@ +OMPI_SIZEOF_FORTRAN_COMPLEX32 = @OMPI_SIZEOF_FORTRAN_COMPLEX32@ +OMPI_SIZEOF_FORTRAN_COMPLEX4 = @OMPI_SIZEOF_FORTRAN_COMPLEX4@ +OMPI_SIZEOF_FORTRAN_COMPLEX8 = @OMPI_SIZEOF_FORTRAN_COMPLEX8@ +OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX = @OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX@ +OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION = @OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION@ +OMPI_SIZEOF_FORTRAN_INTEGER = @OMPI_SIZEOF_FORTRAN_INTEGER@ +OMPI_SIZEOF_FORTRAN_INTEGER1 = @OMPI_SIZEOF_FORTRAN_INTEGER1@ +OMPI_SIZEOF_FORTRAN_INTEGER16 = @OMPI_SIZEOF_FORTRAN_INTEGER16@ +OMPI_SIZEOF_FORTRAN_INTEGER2 = @OMPI_SIZEOF_FORTRAN_INTEGER2@ +OMPI_SIZEOF_FORTRAN_INTEGER4 = @OMPI_SIZEOF_FORTRAN_INTEGER4@ +OMPI_SIZEOF_FORTRAN_INTEGER8 = @OMPI_SIZEOF_FORTRAN_INTEGER8@ +OMPI_SIZEOF_FORTRAN_LOGICAL = @OMPI_SIZEOF_FORTRAN_LOGICAL@ +OMPI_SIZEOF_FORTRAN_LOGICAL1 = @OMPI_SIZEOF_FORTRAN_LOGICAL1@ +OMPI_SIZEOF_FORTRAN_LOGICAL2 = @OMPI_SIZEOF_FORTRAN_LOGICAL2@ +OMPI_SIZEOF_FORTRAN_LOGICAL4 = @OMPI_SIZEOF_FORTRAN_LOGICAL4@ +OMPI_SIZEOF_FORTRAN_LOGICAL8 = @OMPI_SIZEOF_FORTRAN_LOGICAL8@ +OMPI_SIZEOF_FORTRAN_REAL = @OMPI_SIZEOF_FORTRAN_REAL@ +OMPI_SIZEOF_FORTRAN_REAL16 = @OMPI_SIZEOF_FORTRAN_REAL16@ +OMPI_SIZEOF_FORTRAN_REAL2 = @OMPI_SIZEOF_FORTRAN_REAL2@ +OMPI_SIZEOF_FORTRAN_REAL4 = @OMPI_SIZEOF_FORTRAN_REAL4@ +OMPI_SIZEOF_FORTRAN_REAL8 = @OMPI_SIZEOF_FORTRAN_REAL8@ +OMPI_TARBALL_VERSION = @OMPI_TARBALL_VERSION@ +OMPI_TOP_BUILDDIR = @OMPI_TOP_BUILDDIR@ +OMPI_TOP_SRCDIR = @OMPI_TOP_SRCDIR@ +OMPI_VERSION = @OMPI_VERSION@ +OMPI_WRAPPER_CXX_LIB = @OMPI_WRAPPER_CXX_LIB@ +OMPI_WRAPPER_CXX_REQUIRED_FILE = @OMPI_WRAPPER_CXX_REQUIRED_FILE@ +OMPI_WRAPPER_EXTRA_CFLAGS = @OMPI_WRAPPER_EXTRA_CFLAGS@ +OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_CPPFLAGS = @OMPI_WRAPPER_EXTRA_CPPFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS = @OMPI_WRAPPER_EXTRA_CXXFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FCFLAGS = @OMPI_WRAPPER_EXTRA_FCFLAGS@ +OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FC_LDFLAGS = @OMPI_WRAPPER_EXTRA_FC_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LDFLAGS = @OMPI_WRAPPER_EXTRA_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LIBS = @OMPI_WRAPPER_EXTRA_LIBS@ +OMPI_WRAPPER_FORTRAN_REQUIRED_FILE = @OMPI_WRAPPER_FORTRAN_REQUIRED_FILE@ +OMPI_WRAPPER_INCLUDEDIR = @OMPI_WRAPPER_INCLUDEDIR@ +OMPI_WRAPPER_LIBDIR = @OMPI_WRAPPER_LIBDIR@ +OPAL_ASM_GSYM = @OPAL_ASM_GSYM@ +OPAL_ASM_LSYM = @OPAL_ASM_LSYM@ +OPAL_ASM_SUPPORT_64BIT = @OPAL_ASM_SUPPORT_64BIT@ +OPAL_ASM_TEXT = @OPAL_ASM_TEXT@ +OPAL_ASM_TYPE = @OPAL_ASM_TYPE@ +OPAL_ASSEMBLY_ARCH = @OPAL_ASSEMBLY_ARCH@ +OPAL_ASSEMBLY_BUILTIN = @OPAL_ASSEMBLY_BUILTIN@ +OPAL_ASSEMBLY_FORMAT = @OPAL_ASSEMBLY_FORMAT@ +OPAL_AS_GLOBAL = @OPAL_AS_GLOBAL@ +OPAL_AS_LABEL_SUFFIX = @OPAL_AS_LABEL_SUFFIX@ +OPAL_CC_ABSOLUTE = @OPAL_CC_ABSOLUTE@ +OPAL_CONFIGURE_CLI = @OPAL_CONFIGURE_CLI@ +OPAL_CONFIGURE_DATE = @OPAL_CONFIGURE_DATE@ +OPAL_CONFIGURE_HOST = @OPAL_CONFIGURE_HOST@ +OPAL_CONFIGURE_USER = @OPAL_CONFIGURE_USER@ +OPAL_CXX_ABSOLUTE = @OPAL_CXX_ABSOLUTE@ +OPAL_DEFAULT_MCA_PARAM_CONF = @OPAL_DEFAULT_MCA_PARAM_CONF@ +OPAL_DYN_LIB_PREFIX = @OPAL_DYN_LIB_PREFIX@ +OPAL_DYN_LIB_SUFFIX = @OPAL_DYN_LIB_SUFFIX@ +OPAL_GREEK_VERSION = @OPAL_GREEK_VERSION@ +OPAL_LIB_PREFIX = @OPAL_LIB_PREFIX@ +OPAL_MAJOR_VERSION = @OPAL_MAJOR_VERSION@ +OPAL_MAX_DATAREP_STRING = @OPAL_MAX_DATAREP_STRING@ +OPAL_MAX_ERROR_STRING = @OPAL_MAX_ERROR_STRING@ +OPAL_MAX_INFO_KEY = @OPAL_MAX_INFO_KEY@ +OPAL_MAX_INFO_VAL = @OPAL_MAX_INFO_VAL@ +OPAL_MAX_OBJECT_NAME = @OPAL_MAX_OBJECT_NAME@ +OPAL_MAX_PORT_NAME = @OPAL_MAX_PORT_NAME@ +OPAL_MAX_PROCESSOR_NAME = @OPAL_MAX_PROCESSOR_NAME@ +OPAL_MINOR_VERSION = @OPAL_MINOR_VERSION@ +OPAL_PARAM_FROM_PLATFORM = @OPAL_PARAM_FROM_PLATFORM@ +OPAL_PKG_CONFIG_LDFLAGS = @OPAL_PKG_CONFIG_LDFLAGS@ +OPAL_RELEASE_DATE = @OPAL_RELEASE_DATE@ +OPAL_RELEASE_VERSION = @OPAL_RELEASE_VERSION@ +OPAL_REPO_REV = @OPAL_REPO_REV@ +OPAL_TARBALL_VERSION = @OPAL_TARBALL_VERSION@ +OPAL_TOP_BUILDDIR = @OPAL_TOP_BUILDDIR@ +OPAL_TOP_SRCDIR = @OPAL_TOP_SRCDIR@ +OPAL_VERSION = @OPAL_VERSION@ +OPAL_WRAPPER_EXTRA_CFLAGS = @OPAL_WRAPPER_EXTRA_CFLAGS@ +OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_CPPFLAGS = @OPAL_WRAPPER_EXTRA_CPPFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS = @OPAL_WRAPPER_EXTRA_CXXFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_LDFLAGS = @OPAL_WRAPPER_EXTRA_LDFLAGS@ +OPAL_WRAPPER_EXTRA_LIBS = @OPAL_WRAPPER_EXTRA_LIBS@ +ORTE_GREEK_VERSION = @ORTE_GREEK_VERSION@ +ORTE_LIB_PREFIX = @ORTE_LIB_PREFIX@ +ORTE_MAJOR_VERSION = @ORTE_MAJOR_VERSION@ +ORTE_MINOR_VERSION = @ORTE_MINOR_VERSION@ +ORTE_PKG_CONFIG_LDFLAGS = @ORTE_PKG_CONFIG_LDFLAGS@ +ORTE_RELEASE_DATE = @ORTE_RELEASE_DATE@ +ORTE_RELEASE_VERSION = @ORTE_RELEASE_VERSION@ +ORTE_REPO_REV = @ORTE_REPO_REV@ +ORTE_TARBALL_VERSION = @ORTE_TARBALL_VERSION@ +ORTE_TOP_BUILDDIR = @ORTE_TOP_BUILDDIR@ +ORTE_TOP_SRCDIR = @ORTE_TOP_SRCDIR@ +ORTE_VERSION = @ORTE_VERSION@ +ORTE_WRAPPER_EXTRA_CFLAGS = @ORTE_WRAPPER_EXTRA_CFLAGS@ +ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX = @ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX@ +ORTE_WRAPPER_EXTRA_CPPFLAGS = @ORTE_WRAPPER_EXTRA_CPPFLAGS@ +ORTE_WRAPPER_EXTRA_LDFLAGS = @ORTE_WRAPPER_EXTRA_LDFLAGS@ +ORTE_WRAPPER_EXTRA_LIBS = @ORTE_WRAPPER_EXTRA_LIBS@ +OSHMEM_GREEK_VERSION = @OSHMEM_GREEK_VERSION@ +OSHMEM_LIBSHMEM_EXTRA_LDFLAGS = @OSHMEM_LIBSHMEM_EXTRA_LDFLAGS@ +OSHMEM_LIBSHMEM_EXTRA_LIBS = @OSHMEM_LIBSHMEM_EXTRA_LIBS@ +OSHMEM_MAJOR_VERSION = @OSHMEM_MAJOR_VERSION@ +OSHMEM_MINOR_VERSION = @OSHMEM_MINOR_VERSION@ +OSHMEM_RELEASE_DATE = @OSHMEM_RELEASE_DATE@ +OSHMEM_RELEASE_VERSION = @OSHMEM_RELEASE_VERSION@ +OSHMEM_REPO_REV = @OSHMEM_REPO_REV@ +OSHMEM_TARBALL_VERSION = @OSHMEM_TARBALL_VERSION@ +OSHMEM_TOP_BUILDDIR = @OSHMEM_TOP_BUILDDIR@ +OSHMEM_TOP_SRCDIR = @OSHMEM_TOP_SRCDIR@ +OSHMEM_VERSION = @OSHMEM_VERSION@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +QRSH = @QRSH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SINGULARITY = @SINGULARITY@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_FC = @ac_ct_FC@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +atomic_mxm_CFLAGS = @atomic_mxm_CFLAGS@ +atomic_mxm_CPPFLAGS = @atomic_mxm_CPPFLAGS@ +atomic_mxm_LDFLAGS = @atomic_mxm_LDFLAGS@ +atomic_mxm_LIBS = @atomic_mxm_LIBS@ +atomic_ucx_CFLAGS = @atomic_ucx_CFLAGS@ +atomic_ucx_CPPFLAGS = @atomic_ucx_CPPFLAGS@ +atomic_ucx_LDFLAGS = @atomic_ucx_LDFLAGS@ +atomic_ucx_LIBS = @atomic_ucx_LIBS@ +bindir = @bindir@ +btl_openib_CFLAGS = @btl_openib_CFLAGS@ +btl_openib_CPPFLAGS = @btl_openib_CPPFLAGS@ +btl_openib_LDFLAGS = @btl_openib_LDFLAGS@ +btl_openib_LIBS = @btl_openib_LIBS@ +btl_portals4_CPPFLAGS = @btl_portals4_CPPFLAGS@ +btl_portals4_LDFLAGS = @btl_portals4_LDFLAGS@ +btl_portals4_LIBS = @btl_portals4_LIBS@ +btl_uct_CPPFLAGS = @btl_uct_CPPFLAGS@ +btl_uct_LDFLAGS = @btl_uct_LDFLAGS@ +btl_uct_LIBS = @btl_uct_LIBS@ +btl_ugni_CPPFLAGS = @btl_ugni_CPPFLAGS@ +btl_ugni_LDFLAGS = @btl_ugni_LDFLAGS@ +btl_ugni_LIBS = @btl_ugni_LIBS@ +btl_vader_CFLAGS = @btl_vader_CFLAGS@ +btl_vader_CPPFLAGS = @btl_vader_CPPFLAGS@ +btl_vader_LDFLAGS = @btl_vader_LDFLAGS@ +btl_vader_LIBS = @btl_vader_LIBS@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +coll_fca_CFLAGS = @coll_fca_CFLAGS@ +coll_fca_CPPFLAGS = @coll_fca_CPPFLAGS@ +coll_fca_HOME = @coll_fca_HOME@ +coll_fca_LDFLAGS = @coll_fca_LDFLAGS@ +coll_fca_LIBS = @coll_fca_LIBS@ +coll_hcoll_CFLAGS = @coll_hcoll_CFLAGS@ +coll_hcoll_CPPFLAGS = @coll_hcoll_CPPFLAGS@ +coll_hcoll_LDFLAGS = @coll_hcoll_LDFLAGS@ +coll_hcoll_LIBS = @coll_hcoll_LIBS@ +coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ +coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ +coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ +common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ +common_alps_LDFLAGS = @common_alps_LDFLAGS@ +common_alps_LIBS = @common_alps_LIBS@ +common_cuda_CPPFLAGS = @common_cuda_CPPFLAGS@ +common_ucx_CFLAGS = @common_ucx_CFLAGS@ +common_ucx_CPPFLAGS = @common_ucx_CPPFLAGS@ +common_ucx_LDFLAGS = @common_ucx_LDFLAGS@ +common_ucx_LIBS = @common_ucx_LIBS@ +common_verbs_CFLAGS = @common_verbs_CFLAGS@ +common_verbs_CPPFLAGS = @common_verbs_CPPFLAGS@ +common_verbs_LDFLAGS = @common_verbs_LDFLAGS@ +common_verbs_LIBS = @common_verbs_LIBS@ +common_verbs_usnic_CPPFLAGS = @common_verbs_usnic_CPPFLAGS@ +common_verbs_usnic_LDFLAGS = @common_verbs_usnic_LDFLAGS@ +common_verbs_usnic_LIBS = @common_verbs_usnic_LIBS@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +ess_alps_CPPFLAGS = @ess_alps_CPPFLAGS@ +ess_alps_LDFLAGS = @ess_alps_LDFLAGS@ +ess_alps_LIBS = @ess_alps_LIBS@ +ess_lsf_CPPFLAGS = @ess_lsf_CPPFLAGS@ +ess_lsf_LDFLAGS = @ess_lsf_LDFLAGS@ +ess_lsf_LIBS = @ess_lsf_LIBS@ +ess_slurm_CPPFLAGS = @ess_slurm_CPPFLAGS@ +ess_slurm_LDFLAGS = @ess_slurm_LDFLAGS@ +ess_slurm_LIBS = @ess_slurm_LIBS@ +ess_tm_CPPFLAGS = @ess_tm_CPPFLAGS@ +ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ +ess_tm_LIBS = @ess_tm_LIBS@ +exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ +fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ +fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ +fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ +fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ +fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ +fs_lustre_LIBS = @fs_lustre_LIBS@ +fs_pvfs2_CPPFLAGS = @fs_pvfs2_CPPFLAGS@ +fs_pvfs2_LDFLAGS = @fs_pvfs2_LDFLAGS@ +fs_pvfs2_LIBS = @fs_pvfs2_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ +libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ +libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ +libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ +libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ +libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ +libmca_opal_common_verbs_so_version = @libmca_opal_common_verbs_so_version@ +libmca_orte_common_alps_so_version = @libmca_orte_common_alps_so_version@ +libmpi_cxx_so_version = @libmpi_cxx_so_version@ +libmpi_java_so_version = @libmpi_java_so_version@ +libmpi_mpifh_so_version = @libmpi_mpifh_so_version@ +libmpi_so_version = @libmpi_so_version@ +libmpi_usempi_ignore_tkr_so_version = @libmpi_usempi_ignore_tkr_so_version@ +libmpi_usempi_tkr_so_version = @libmpi_usempi_tkr_so_version@ +libmpi_usempif08_so_version = @libmpi_usempif08_so_version@ +libompitrace_so_version = @libompitrace_so_version@ +libopen_pal_so_version = @libopen_pal_so_version@ +libopen_rte_so_version = @libopen_rte_so_version@ +liboshmem_so_version = @liboshmem_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +memory_malloc_solaris_LIBS = @memory_malloc_solaris_LIBS@ +mkdir_p = @mkdir_p@ +mpool_memkind_CPPFLAGS = @mpool_memkind_CPPFLAGS@ +mpool_memkind_LDFLAGS = @mpool_memkind_LDFLAGS@ +mpool_memkind_LIBS = @mpool_memkind_LIBS@ +mtl_portals4_CPPFLAGS = @mtl_portals4_CPPFLAGS@ +mtl_portals4_LDFLAGS = @mtl_portals4_LDFLAGS@ +mtl_portals4_LIBS = @mtl_portals4_LIBS@ +mtl_psm2_CFLAGS = @mtl_psm2_CFLAGS@ +mtl_psm2_CPPFLAGS = @mtl_psm2_CPPFLAGS@ +mtl_psm2_LDFLAGS = @mtl_psm2_LDFLAGS@ +mtl_psm2_LIBS = @mtl_psm2_LIBS@ +mtl_psm_CFLAGS = @mtl_psm_CFLAGS@ +mtl_psm_CPPFLAGS = @mtl_psm_CPPFLAGS@ +mtl_psm_LDFLAGS = @mtl_psm_LDFLAGS@ +mtl_psm_LIBS = @mtl_psm_LIBS@ +odls_alps_CPPFLAGS = @odls_alps_CPPFLAGS@ +odls_alps_LDFLAGS = @odls_alps_LDFLAGS@ +odls_alps_LIBS = @odls_alps_LIBS@ +oldincludedir = @oldincludedir@ +ompidatadir = @ompidatadir@ +ompiincludedir = @ompiincludedir@ +ompilibdir = @ompilibdir@ +oob_alps_CPPFLAGS = @oob_alps_CPPFLAGS@ +oob_alps_LDFLAGS = @oob_alps_LDFLAGS@ +oob_alps_LIBS = @oob_alps_LIBS@ +opal_datatype_cuda_CPPFLAGS = @opal_datatype_cuda_CPPFLAGS@ +opal_dl_dlopen_LIBS = @opal_dl_dlopen_LIBS@ +opal_dl_libltdl_CPPFLAGS = @opal_dl_libltdl_CPPFLAGS@ +opal_dl_libltdl_LDFLAGS = @opal_dl_libltdl_LDFLAGS@ +opal_dl_libltdl_LIBS = @opal_dl_libltdl_LIBS@ +opal_event_external_CPPFLAGS = @opal_event_external_CPPFLAGS@ +opal_event_external_LDFLAGS = @opal_event_external_LDFLAGS@ +opal_event_external_LIBS = @opal_event_external_LIBS@ +opal_hwloc_external_LDFLAGS = @opal_hwloc_external_LDFLAGS@ +opal_hwloc_external_LIBS = @opal_hwloc_external_LIBS@ +opal_hwloc_hwloc201_CFLAGS = @opal_hwloc_hwloc201_CFLAGS@ +opal_hwloc_hwloc201_CPPFLAGS = @opal_hwloc_hwloc201_CPPFLAGS@ +opal_hwloc_hwloc201_LDFLAGS = @opal_hwloc_hwloc201_LDFLAGS@ +opal_hwloc_hwloc201_LIBS = @opal_hwloc_hwloc201_LIBS@ +opal_memchecker_valgrind_CPPFLAGS = @opal_memchecker_valgrind_CPPFLAGS@ +opal_ofi_CPPFLAGS = @opal_ofi_CPPFLAGS@ +opal_ofi_LDFLAGS = @opal_ofi_LDFLAGS@ +opal_ofi_LIBS = @opal_ofi_LIBS@ +opal_pmi1_CPPFLAGS = @opal_pmi1_CPPFLAGS@ +opal_pmi1_LDFLAGS = @opal_pmi1_LDFLAGS@ +opal_pmi1_LIBS = @opal_pmi1_LIBS@ +opal_pmi1_rpath = @opal_pmi1_rpath@ +opal_pmi2_CPPFLAGS = @opal_pmi2_CPPFLAGS@ +opal_pmi2_LDFLAGS = @opal_pmi2_LDFLAGS@ +opal_pmi2_LIBS = @opal_pmi2_LIBS@ +opal_pmi2_rpath = @opal_pmi2_rpath@ +opal_pmix_ext1x_CPPFLAGS = @opal_pmix_ext1x_CPPFLAGS@ +opal_pmix_ext1x_LDFLAGS = @opal_pmix_ext1x_LDFLAGS@ +opal_pmix_ext1x_LIBS = @opal_pmix_ext1x_LIBS@ +opal_pmix_ext2x_CPPFLAGS = @opal_pmix_ext2x_CPPFLAGS@ +opal_pmix_ext2x_LDFLAGS = @opal_pmix_ext2x_LDFLAGS@ +opal_pmix_ext2x_LIBS = @opal_pmix_ext2x_LIBS@ +opal_pmix_ext3x_CPPFLAGS = @opal_pmix_ext3x_CPPFLAGS@ +opal_pmix_ext3x_LDFLAGS = @opal_pmix_ext3x_LDFLAGS@ +opal_pmix_ext3x_LIBS = @opal_pmix_ext3x_LIBS@ +opal_pmix_pmix3x_CPPFLAGS = @opal_pmix_pmix3x_CPPFLAGS@ +opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ +opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ +opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ +opaldatadir = @opaldatadir@ +opalincludedir = @opalincludedir@ +opallibdir = @opallibdir@ +ortedatadir = @ortedatadir@ +orteincludedir = @orteincludedir@ +ortelibdir = @ortelibdir@ +osc_portals4_CPPFLAGS = @osc_portals4_CPPFLAGS@ +osc_portals4_LDFLAGS = @osc_portals4_LDFLAGS@ +osc_portals4_LIBS = @osc_portals4_LIBS@ +osc_ucx_CPPFLAGS = @osc_ucx_CPPFLAGS@ +osc_ucx_LDFLAGS = @osc_ucx_LDFLAGS@ +osc_ucx_LIBS = @osc_ucx_LIBS@ +oshmem_verbs_CFLAGS = @oshmem_verbs_CFLAGS@ +oshmem_verbs_CPPFLAGS = @oshmem_verbs_CPPFLAGS@ +oshmem_verbs_LDFLAGS = @oshmem_verbs_LDFLAGS@ +oshmem_verbs_LIBS = @oshmem_verbs_LIBS@ +oshmemdatadir = @oshmemdatadir@ +oshmemincludedir = @oshmemincludedir@ +oshmemlibdir = @oshmemlibdir@ +pdfdir = @pdfdir@ +plm_alps_CPPFLAGS = @plm_alps_CPPFLAGS@ +plm_alps_LDFLAGS = @plm_alps_LDFLAGS@ +plm_alps_LIBS = @plm_alps_LIBS@ +plm_lsf_CPPFLAGS = @plm_lsf_CPPFLAGS@ +plm_lsf_LDFLAGS = @plm_lsf_LDFLAGS@ +plm_lsf_LIBS = @plm_lsf_LIBS@ +plm_slurm_CPPFLAGS = @plm_slurm_CPPFLAGS@ +plm_slurm_LDFLAGS = @plm_slurm_LDFLAGS@ +plm_slurm_LIBS = @plm_slurm_LIBS@ +plm_tm_CPPFLAGS = @plm_tm_CPPFLAGS@ +plm_tm_LDFLAGS = @plm_tm_LDFLAGS@ +plm_tm_LIBS = @plm_tm_LIBS@ +pmix_alps_CPPFLAGS = @pmix_alps_CPPFLAGS@ +pmix_alps_LDFLAGS = @pmix_alps_LDFLAGS@ +pmix_alps_LIBS = @pmix_alps_LIBS@ +pmix_cray_CPPFLAGS = @pmix_cray_CPPFLAGS@ +pmix_cray_LDFLAGS = @pmix_cray_LDFLAGS@ +pmix_cray_LIBS = @pmix_cray_LIBS@ +pml_ucx_CPPFLAGS = @pml_ucx_CPPFLAGS@ +pml_ucx_LDFLAGS = @pml_ucx_LDFLAGS@ +pml_ucx_LIBS = @pml_ucx_LIBS@ +pml_yalla_CPPFLAGS = @pml_yalla_CPPFLAGS@ +pml_yalla_LDFLAGS = @pml_yalla_LDFLAGS@ +pml_yalla_LIBS = @pml_yalla_LIBS@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +ras_alps_CPPFLAGS = @ras_alps_CPPFLAGS@ +ras_lsf_CPPFLAGS = @ras_lsf_CPPFLAGS@ +ras_lsf_LDFLAGS = @ras_lsf_LDFLAGS@ +ras_lsf_LIBS = @ras_lsf_LIBS@ +ras_slurm_CPPFLAGS = @ras_slurm_CPPFLAGS@ +ras_slurm_LDFLAGS = @ras_slurm_LDFLAGS@ +ras_slurm_LIBS = @ras_slurm_LIBS@ +ras_tm_CPPFLAGS = @ras_tm_CPPFLAGS@ +ras_tm_LDFLAGS = @ras_tm_LDFLAGS@ +ras_tm_LIBS = @ras_tm_LIBS@ +rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ +rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ +rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ +sbindir = @sbindir@ +schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ +schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ +schizo_moab_LDFLAGS = @schizo_moab_LDFLAGS@ +schizo_moab_LIBS = @schizo_moab_LIBS@ +schizo_slurm_CPPFLAGS = @schizo_slurm_CPPFLAGS@ +schizo_slurm_LDFLAGS = @schizo_slurm_LDFLAGS@ +schizo_slurm_LIBS = @schizo_slurm_LIBS@ +scoll_fca_CFLAGS = @scoll_fca_CFLAGS@ +scoll_fca_CPPFLAGS = @scoll_fca_CPPFLAGS@ +scoll_fca_HOME = @scoll_fca_HOME@ +scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ +scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ +sharedstatedir = @sharedstatedir@ +spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ +spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ +spml_ikrit_LDFLAGS = @spml_ikrit_LDFLAGS@ +spml_ikrit_LIBS = @spml_ikrit_LIBS@ +spml_ucx_CFLAGS = @spml_ucx_CFLAGS@ +spml_ucx_CPPFLAGS = @spml_ucx_CPPFLAGS@ +spml_ucx_LDFLAGS = @spml_ucx_LDFLAGS@ +spml_ucx_LIBS = @spml_ucx_LIBS@ +srcdir = @srcdir@ +sshmem_ucx_CFLAGS = @sshmem_ucx_CFLAGS@ +sshmem_ucx_CPPFLAGS = @sshmem_ucx_CPPFLAGS@ +sshmem_ucx_LDFLAGS = @sshmem_ucx_LDFLAGS@ +sshmem_ucx_LIBS = @sshmem_ucx_LIBS@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ucx_CFLAGS = @ucx_CFLAGS@ +ucx_LIBS = @ucx_LIBS@ +ucx_STATIC_LIBS = @ucx_STATIC_LIBS@ +noinst_LTLIBRARIES = lib@ORTE_LIB_PREFIX@open-orted-mpir.la +lib@ORTE_LIB_PREFIX@open_orted_mpir_la_SOURCES = \ + orted_mpir_breakpoint.c \ + orted_mpir.h + +lib@ORTE_LIB_PREFIX@open_orted_mpir_la_LDFLAGS = -avoid-version +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign orte/orted/orted-mpir/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign orte/orted/orted-mpir/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +lib@ORTE_LIB_PREFIX@open-orted-mpir.la: $(lib@ORTE_LIB_PREFIX@open_orted_mpir_la_OBJECTS) $(lib@ORTE_LIB_PREFIX@open_orted_mpir_la_DEPENDENCIES) $(EXTRA_lib@ORTE_LIB_PREFIX@open_orted_mpir_la_DEPENDENCIES) + $(AM_V_CCLD)$(lib@ORTE_LIB_PREFIX@open_orted_mpir_la_LINK) $(lib@ORTE_LIB_PREFIX@open_orted_mpir_la_OBJECTS) $(lib@ORTE_LIB_PREFIX@open_orted_mpir_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orted_mpir_breakpoint.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + clean-noinstLTLIBRARIES cscopelist-am ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool distdir \ + dvi dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/orte/orted/orted-mpir/orted_mpir_breakpoint.c openmpi-4.1.4/orte/orted/orted-mpir/orted_mpir_breakpoint.c --- openmpi-4.0.3/orte/orted/orted-mpir/orted_mpir_breakpoint.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/orte/orted/orted-mpir/orted_mpir_breakpoint.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,65 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2021 IBM Corporation. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "orte_config.h" +#include "orte/constants.h" +#include "orted_mpir.h" + +/* instance the standard MPIR interfaces */ +struct MPIR_PROCDESC *MPIR_proctable = NULL; +int MPIR_proctable_size = 0; +volatile int MPIR_being_debugged = 0; +volatile int MPIR_debug_state = 0; +int MPIR_i_am_starter = 0; +int MPIR_partial_attach_ok = 1; +char MPIR_executable_path[MPIR_MAX_PATH_LENGTH] = {0}; +char MPIR_server_arguments[MPIR_MAX_ARG_LENGTH] = {0}; +volatile int MPIR_forward_output = 0; +volatile int MPIR_forward_comm = 0; +char MPIR_attach_fifo[MPIR_MAX_PATH_LENGTH] = {0}; +int MPIR_force_to_main = 0; + +/* + * Attempt to prevent the compiler from optimizing out + * MPIR_Breakpoint(). + * + * Some older versions of automake can add -O3 to every + * file via CFLAGS (which was demonstrated in automake v1.13.4), + * so there is a possibility that the compiler will see + * this function as a NOOP and optimize it out on older versions. + * While using the current/recommended version of automake + * does not do this, the following will help those + * stuck with an older version, as well as guard against + * future regressions. + * + * See the following git issue for more discussion: + * https://github.com/open-mpi/ompi/issues/5501 + */ +volatile void* volatile orte_noop_mpir_breakpoint_ptr = NULL; + +/* + * Breakpoint function for parallel debuggers + */ +void MPIR_Breakpoint(void) +{ + /* + * Actually do something with this pointer to make + * sure the compiler does not optimize out this function. + * The compiler should be forced to keep this + * function around due to the volatile void* type. + * + * This pointer doesn't actually do anything other than + * prevent unwanted optimization, and + * *should not* be used anywhere else in the code. + * So pointing this to the weeds should be OK. + */ + orte_noop_mpir_breakpoint_ptr = (volatile void *) 0x42; + return; +} diff -Nru openmpi-4.0.3/orte/orted/orted-mpir/orted_mpir.h openmpi-4.1.4/orte/orted/orted-mpir/orted_mpir.h --- openmpi-4.0.3/orte/orted/orted-mpir/orted_mpir.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/orte/orted/orted-mpir/orted_mpir.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,57 @@ +/* Copyright (c) 2021 IBM Corporation. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef ORTED_MPIR_H +#define ORTED_MPIR_H + +#include "orte_config.h" + +#include "orte/runtime/orte_globals.h" + +BEGIN_C_DECLS + +#define MPIR_MAX_PATH_LENGTH 512 +#define MPIR_MAX_ARG_LENGTH 1024 + + +/* Note to future MPIR maintainers: + * + * This struct MUST (along with all other MPIR_* symbols) be declared + * and defined in this file. Otherwise they may be compiled *without* -g + * and *with* optimizations in production. In the case where they are + * not here, the debugger won't have the complete definition of the proctable. + * This will prevent the debugger from reading it properly. + * + * It also needs to be seen by multiple files (orted_submih.c and + * orted_mpir_breakpoint.c), so this is a better place for it anyway. + * + * For more info/discussion on this, see the following github issue: + * https://github.com/open-mpi/ompi/issues/8563 + */ +struct MPIR_PROCDESC { + char *host_name; /* something that can be passed to inet_addr */ + char *executable_name; /* name of binary */ + int pid; /* process pid */ +}; + +extern struct MPIR_PROCDESC *MPIR_proctable; +extern int MPIR_proctable_size; +extern volatile int MPIR_being_debugged; +extern volatile int MPIR_debug_state; +extern int MPIR_i_am_starter; +extern int MPIR_partial_attach_ok; +extern char MPIR_executable_path[MPIR_MAX_PATH_LENGTH]; +extern char MPIR_server_arguments[MPIR_MAX_ARG_LENGTH]; +extern volatile int MPIR_forward_output; +extern volatile int MPIR_forward_comm; +extern char MPIR_attach_fifo[MPIR_MAX_PATH_LENGTH]; +extern int MPIR_force_to_main; + +ORTE_DECLSPEC void __opal_attribute_optnone__ MPIR_Breakpoint(void); + +#endif diff -Nru openmpi-4.0.3/orte/orted/orted_submit.c openmpi-4.1.4/orte/orted/orted_submit.c --- openmpi-4.0.3/orte/orted/orted_submit.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/orted/orted_submit.c 2022-05-29 09:51:40.000000000 +0000 @@ -17,7 +17,7 @@ * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. * Copyright (c) 2015-2018 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2017 IBM Corporation. All rights reserved. + * Copyright (c) 2017-2021 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -108,6 +108,7 @@ #include "orte/util/show_help.h" #include "orted_submit.h" +#include "orted-mpir/orted_mpir.h" /** * Global struct for catching orte command line options. @@ -156,63 +157,8 @@ int argc, char *argv[], int num_procs); static void print_help(void); -/* instance the standard MPIR interfaces */ -#define MPIR_MAX_PATH_LENGTH 512 -#define MPIR_MAX_ARG_LENGTH 1024 -struct MPIR_PROCDESC *MPIR_proctable = NULL; -int MPIR_proctable_size = 0; -volatile int MPIR_being_debugged = 0; -volatile int MPIR_debug_state = 0; -int MPIR_i_am_starter = 0; -int MPIR_partial_attach_ok = 1; -char MPIR_executable_path[MPIR_MAX_PATH_LENGTH] = {0}; -char MPIR_server_arguments[MPIR_MAX_ARG_LENGTH] = {0}; -volatile int MPIR_forward_output = 0; -volatile int MPIR_forward_comm = 0; -char MPIR_attach_fifo[MPIR_MAX_PATH_LENGTH] = {0}; -int MPIR_force_to_main = 0; static void orte_debugger_init_before_spawn(orte_job_t *jdata); -ORTE_DECLSPEC void __opal_attribute_optnone__ MPIR_Breakpoint(void); - -/* - * Attempt to prevent the compiler from optimizing out - * MPIR_Breakpoint(). - * - * Some older versions of automake can add -O3 to every - * file via CFLAGS (which was demonstrated in automake v1.13.4), - * so there is a possibility that the compiler will see - * this function as a NOOP and optimize it out on older versions. - * While using the current/recommended version of automake - * does not do this, the following will help those - * stuck with an older version, as well as guard against - * future regressions. - * - * See the following git issue for more discussion: - * https://github.com/open-mpi/ompi/issues/5501 - */ -volatile void* volatile orte_noop_mpir_breakpoint_ptr = NULL; - -/* - * Breakpoint function for parallel debuggers - */ -void MPIR_Breakpoint(void) -{ - /* - * Actually do something with this pointer to make - * sure the compiler does not optimize out this function. - * The compiler should be forced to keep this - * function around due to the volatile void* type. - * - * This pointer doesn't actually do anything other than - * prevent unwanted optimization, and - * *should not* be used anywhere else in the code. - * So pointing this to the weeds should be OK. - */ - orte_noop_mpir_breakpoint_ptr = (volatile void *) 0x42; - return; -} - /* local objects */ typedef struct { opal_object_t super; @@ -2274,13 +2220,6 @@ #define DUMP_INT(X) fprintf(stderr, " %s = %d\n", # X, X); #define FILE_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH) -struct MPIR_PROCDESC { - char *host_name; /* something that can be passed to inet_addr */ - char *executable_name; /* name of binary */ - int pid; /* process pid */ -}; - - /** * Initialization of data structures for running under a debugger * using the MPICH/TotalView parallel debugger interface. Before the @@ -3424,3 +3363,26 @@ /* abort the job */ ORTE_ACTIVATE_JOB_STATE(NULL, ORTE_JOB_STATE_ALL_JOBS_COMPLETE); } + +int orte_submit_job_state_update(orte_job_t *jdata, orte_job_state_t state) +{ + trackr_t *trk; + int room, *rmptr; + + if (state == ORTE_JOB_STATE_RUNNING) { + rmptr = &room; + if ( !orte_get_attribute(&jdata->attributes, ORTE_JOB_ROOM_NUM, (void**)&rmptr, OPAL_INT)) { + opal_output(0, "Error: ORTE_JOB_ROOM_NUM not a valid attribute for this job"); + return ORTE_ERROR; + } + if (NULL == (trk = (trackr_t*)opal_pointer_array_get_item(&tool_jobs, room))) { + opal_output(0, "Error: Tracker ID %d returned a NULL object", room); + return ORTE_ERROR; + } + if (NULL != trk->launch_cb) { + trk->launch_cb(room, trk->jdata, ORTE_SUCCESS, trk->launch_cbdata); + } + } + + return ORTE_SUCCESS; +} diff -Nru openmpi-4.0.3/orte/orted/orted_submit.h openmpi-4.1.4/orte/orted/orted_submit.h --- openmpi-4.0.3/orte/orted/orted_submit.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/orted/orted_submit.h 2022-05-29 09:51:40.000000000 +0000 @@ -5,6 +5,7 @@ * and Technology (RIST). All rights reserved. * Copyright (c) 2017 Los Alamos National Security, LLC. All rights * reserved. + * Copyright (c) 2021 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -38,6 +39,8 @@ ORTE_DECLSPEC void orte_debugger_init_after_spawn(int fd, short event, void *arg); ORTE_DECLSPEC void orte_debugger_detached(int fd, short event, void *arg); +ORTE_DECLSPEC int orte_submit_job_state_update(orte_job_t *jdata, orte_job_state_t state); + extern int orte_debugger_attach_fd; extern bool orte_debugger_fifo_active; extern opal_event_t *orte_debugger_attach; diff -Nru openmpi-4.0.3/orte/orted/pmix/pmix_server_register_fns.c openmpi-4.1.4/orte/orted/pmix/pmix_server_register_fns.c --- openmpi-4.0.3/orte/orted/pmix/pmix_server_register_fns.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/orted/pmix/pmix_server_register_fns.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * All rights reserved. * Copyright (c) 2009-2018 Cisco Systems, Inc. All rights reserved * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. - * Copyright (c) 2013-2019 Intel, Inc. All rights reserved. + * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2014 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2014-2016 Research Organization for Information Science @@ -386,7 +386,12 @@ kv->type = OPAL_STRING; kv->data.string = opal_hwloc_base_get_locality_string(opal_hwloc_topology, tmp); opal_list_append(pmap, &kv->super); - free(tmp); + /* pass the cpuset itself as well */ + kv = OBJ_NEW(opal_value_t); + kv->key = strdup(OPAL_PMIX_CPUSET); + kv->type = OPAL_STRING; + kv->data.string = tmp; + opal_list_append(pmap, &kv->super); } else { /* the proc is not bound */ kv = OBJ_NEW(opal_value_t); diff -Nru openmpi-4.0.3/orte/runtime/help-orte-runtime.txt openmpi-4.1.4/orte/runtime/help-orte-runtime.txt --- openmpi-4.0.3/orte/runtime/help-orte-runtime.txt 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/runtime/help-orte-runtime.txt 2022-05-29 09:51:40.000000000 +0000 @@ -10,6 +10,7 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. +# Copyright (c) 2021 Nanook Consulting. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -61,3 +62,26 @@ Open MPI was unable to determine the number of nodes in your allocation. We are therefore assuming a very large number to ensure you receive proper error messages. +# +[failed-to-uncompress] +A compressed message was received by the Open MPI run time system +(PMIx) that could not be decompressed. This means that Open MPI has +compression support enabled on one node and not enabled on another. +This is an unsupported configuration. + +Compression support is enabled when both of the following conditions +are met: + +1. The Open MPI run time system (PMIx) is built with compression + support. +2. The necessary compression libraries (e.g., libz) can be found at + run time. + +You should check that both of these conditions are true on both the +node where mpirun is invoked and all the nodes where MPI processes +will be launched. The node listed below does not have both conditions +met: + + node without compression support: %s + +NOTE: There may also be other nodes without compression support. diff -Nru openmpi-4.0.3/orte/runtime/orte_init.c openmpi-4.1.4/orte/runtime/orte_init.c --- openmpi-4.0.3/orte/runtime/orte_init.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/runtime/orte_init.c 2022-05-29 09:51:40.000000000 +0000 @@ -16,7 +16,7 @@ * Copyright (c) 2014-2018 Intel, Inc. All rights reserved. * Copyright (c) 2014-2016 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * + * Copyright (c) 2021 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -300,7 +300,7 @@ return ORTE_SUCCESS; error: - if (ORTE_ERR_SILENT != ret) { + if( ORTE_ERR_SILENT != ret || orte_report_silent_errors ) { orte_show_help("help-orte-runtime", "orte_init:startup:internal-failure", true, error, ORTE_ERROR_NAME(ret), ret); diff -Nru openmpi-4.0.3/orte/tools/orte-clean/Makefile.in openmpi-4.1.4/orte/tools/orte-clean/Makefile.in --- openmpi-4.0.3/orte/tools/orte-clean/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/tools/orte-clean/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -133,6 +133,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -140,6 +142,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -163,6 +166,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -265,6 +269,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -272,6 +277,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -352,6 +358,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -374,9 +381,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -386,6 +397,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -406,6 +418,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -665,6 +678,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1485,6 +1501,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1517,9 +1537,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1540,6 +1569,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1624,9 +1654,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1687,6 +1714,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1700,6 +1730,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/tools/orted/Makefile.in openmpi-4.1.4/orte/tools/orted/Makefile.in --- openmpi-4.0.3/orte/tools/orted/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/tools/orted/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -132,6 +132,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -139,6 +141,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -162,6 +165,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -264,6 +268,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -271,6 +276,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -351,6 +357,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -373,9 +380,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -385,6 +396,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -405,6 +417,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -663,6 +676,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1483,6 +1499,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1515,9 +1535,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1538,6 +1567,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1622,9 +1652,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1685,6 +1712,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1698,6 +1728,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/tools/orte-info/Makefile.am openmpi-4.1.4/orte/tools/orte-info/Makefile.am --- openmpi-4.0.3/orte/tools/orte-info/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/tools/orte-info/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -11,8 +11,8 @@ # All rights reserved. # Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved. -# Copyright (c) 2017 Research Organization for Information Science -# and Technology (RIST). All rights reserved. +# Copyright (c) 2017-2020 Research Organization for Information Science +# and Technology (RIST). All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -25,8 +25,8 @@ -DOPAL_CONFIGURE_HOST="\"@OPAL_CONFIGURE_HOST@\"" \ -DOPAL_CONFIGURE_DATE="\"@OPAL_CONFIGURE_DATE@\"" \ -DOMPI_BUILD_USER="\"$$USER\"" \ - -DOMPI_BUILD_HOST="\"`(hostname || uname -n) | sed 1q`\"" \ - -DOMPI_BUILD_DATE="\"`date`\"" \ + -DOMPI_BUILD_HOST="\"$${HOSTNAME:-`(hostname || uname -n) | sed 1q`}\"" \ + -DOMPI_BUILD_DATE="\"`$(top_srcdir)/config/getdate.sh`\"" \ -DOMPI_BUILD_CFLAGS="\"@CFLAGS@\"" \ -DOMPI_BUILD_CPPFLAGS="\"@CPPFLAGS@\"" \ -DOMPI_BUILD_CXXFLAGS="\"@CXXFLAGS@\"" \ diff -Nru openmpi-4.0.3/orte/tools/orte-info/Makefile.in openmpi-4.1.4/orte/tools/orte-info/Makefile.in --- openmpi-4.0.3/orte/tools/orte-info/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/tools/orte-info/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -27,8 +27,8 @@ # All rights reserved. # Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved. -# Copyright (c) 2017 Research Organization for Information Science -# and Technology (RIST). All rights reserved. +# Copyright (c) 2017-2020 Research Organization for Information Science +# and Technology (RIST). All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -135,6 +135,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -142,6 +144,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -165,6 +168,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -267,6 +271,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -274,6 +279,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -354,6 +360,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -376,9 +383,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -388,6 +399,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -408,6 +420,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -668,6 +681,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1488,6 +1504,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1520,9 +1540,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1543,6 +1572,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1627,9 +1657,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1690,6 +1717,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1703,6 +1733,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ @@ -1734,8 +1768,8 @@ -DOPAL_CONFIGURE_HOST="\"@OPAL_CONFIGURE_HOST@\"" \ -DOPAL_CONFIGURE_DATE="\"@OPAL_CONFIGURE_DATE@\"" \ -DOMPI_BUILD_USER="\"$$USER\"" \ - -DOMPI_BUILD_HOST="\"`(hostname || uname -n) | sed 1q`\"" \ - -DOMPI_BUILD_DATE="\"`date`\"" \ + -DOMPI_BUILD_HOST="\"$${HOSTNAME:-`(hostname || uname -n) | sed 1q`}\"" \ + -DOMPI_BUILD_DATE="\"`$(top_srcdir)/config/getdate.sh`\"" \ -DOMPI_BUILD_CFLAGS="\"@CFLAGS@\"" \ -DOMPI_BUILD_CPPFLAGS="\"@CPPFLAGS@\"" \ -DOMPI_BUILD_CXXFLAGS="\"@CXXFLAGS@\"" \ diff -Nru openmpi-4.0.3/orte/tools/orterun/Makefile.in openmpi-4.1.4/orte/tools/orterun/Makefile.in --- openmpi-4.0.3/orte/tools/orterun/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/tools/orterun/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -135,6 +135,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -142,6 +144,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -165,6 +168,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -267,6 +271,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -274,6 +279,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -354,6 +360,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -376,9 +383,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -388,6 +399,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -408,6 +420,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -667,6 +680,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1487,6 +1503,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1519,9 +1539,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1542,6 +1571,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1626,9 +1656,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1689,6 +1716,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1702,6 +1732,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/tools/orterun/orterun.1in openmpi-4.1.4/orte/tools/orterun/orterun.1in --- openmpi-4.0.3/orte/tools/orterun/orterun.1in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/tools/orterun/orterun.1in 2022-05-29 09:51:40.000000000 +0000 @@ -107,6 +107,106 @@ application process. . .\" ************************** +.\" Definition of "slot" +.\" ************************** +.SH DEFINITION OF 'SLOT' +. +.P +The term "slot" is used extensively in the rest of this manual page. +A slot is an allocation unit for a process. The number of slots on a +node indicate how many processes can potentially execute on that node. +By default, Open MPI will allow one process per slot. +. +.P +If Open MPI is not explicitly told how many slots are available on a +node (e.g., if a hostfile is used and the number of slots is not +specified for a given node), it will determine a maximum number of +slots for that node in one of two ways: +. +.TP 3 +1. Default behavior +By default, Open MPI will attempt to discover the number of +processor cores on the node, and use that as the number of slots +available. +. +.TP 3 +2. When \fI--use-hwthread-cpus\fP is used +If \fI--use-hwthread-cpus\fP is specified on the \fImpirun\fP command +line, then Open MPI will attempt to discover the number of hardware +threads on the node, and use that as the number of slots available. +. +.P +This default behavior also occurs when specifying the \fI-host\fP +option with a single host. Thus, the command: +. +.TP 4 +mpirun --host node1 ./a.out +launches a number of processes equal to the number of cores on node node1, +whereas: +.TP 4 +mpirun --host node1 --use-hwthread-cpus ./a.out +launches a number of processes equal to the number of hardware threads +on node1. +. +.P +When Open MPI applications are invoked in an environment managed by a +resource manager (e.g., inside of a SLURM job), and Open MPI was built +with appropriate support for that resource manager, then Open MPI will +be informed of the number of slots for each node by the resource +manager. For example: +. +.TP 4 +mpirun ./a.out +launches one process for every slot (on every node) as dictated by +the resource manager job specification. +. +.P +Also note that the one-process-per-slot restriction can be overridden +in unmanaged environments (e.g., when using hostfiles without a +resource manager) if oversubscription is enabled (by default, it is +disabled). Most MPI applications and HPC environments do not +oversubscribe; for simplicity, the majority of this documentation +assumes that oversubscription is not enabled. +. +. +.SS Slots are not hardware resources +. +Slots are frequently incorrectly conflated with hardware resources. +It is important to realize that slots are an entirely different metric +than the number (and type) of hardware resources available. +. +.P +Here are some examples that may help illustrate the difference: +. +.TP 3 +1. More processor cores than slots + +Consider a resource manager job environment that tells Open MPI that +there is a single node with 20 processor cores and 2 slots available. +By default, Open MPI will only let you run up to 2 processes. + +Meaning: you run out of slots long before you run out of processor +cores. +. +.TP 3 +2. More slots than processor cores + +Consider a hostfile with a single node listed with a "slots=50" +qualification. The node has 20 processor cores. By default, Open MPI +will let you run up to 50 processes. + +Meaning: you can run many more processes than you have processor +cores. +. +. +.SH DEFINITION OF 'PROCESSOR ELEMENT' +By default, Open MPI defines that a "processing element" is a +processor core. However, if \fI--use-hwthread-cpus\fP is specified on +the \fImpirun\fP command line, then a "processing element" is a +hardware thread. +. +. +.\" ************************** .\" Options Section .\" ************************** .SH OPTIONS @@ -297,15 +397,17 @@ . .TP .B --map-by \fR\fP -Map to the specified object, defaults to \fIsocket\fP. Supported options -include slot, hwthread, core, L1cache, L2cache, L3cache, socket, numa, -board, node, sequential, distance, and ppr. Any object can include -modifiers by adding a \fR:\fP and any combination of PE=n (bind n -processing elements to each proc), SPAN (load -balance the processes across the allocation), OVERSUBSCRIBE (allow -more processes on a node than processing elements), and NOOVERSUBSCRIBE. -This includes PPR, where the pattern would be terminated by another colon -to separate it from the modifiers. +Map to the specified object, defaults to \fIsocket\fP. Supported +options include \fIslot\fP, \fIhwthread\fP, \fIcore\fP, \fIL1cache\fP, +\fIL2cache\fP, \fIL3cache\fP, \fIsocket\fP, \fInuma\fP, \fIboard\fP, +\fInode\fP, \fIsequential\fP, \fIdistance\fP, and \fIppr\fP. Any +object can include modifiers by adding a \fI:\fP and any combination +of \fIPE=n\fP (bind n processing elements to each proc), \fISPAN\fP +(load balance the processes across the allocation), +\fIOVERSUBSCRIBE\fP (allow more processes on a node than processing +elements), and \fINOOVERSUBSCRIBE\fP. This includes \fIPPR\fP, where the +pattern would be terminated by another colon to separate it from the +modifiers. . .TP .B -bycore\fR,\fP --bycore @@ -757,7 +859,16 @@ . .TP .B -use-hwthread-cpus\fR,\fP --use-hwthread-cpus -Use hardware threads as independent cpus. +Use hardware threads as independent CPUs. + +Note that if a number of slots is not provided to Open MPI (e.g., via +the "slots" keyword in a hostfile or from a resource manager such as +SLURM), the use of this option changes the default calculation of +number of slots on a node. See "DEFINITION OF 'SLOT'", above. + +Also note that the use of this option changes the Open MPI's +definition of a "processor element" from a processor core to a +hardware thread. See "DEFINITION OF 'PROCESSOR ELEMENT'", above. . . .TP @@ -889,20 +1000,8 @@ . .PP -Here, we list both the host names (aa, bb, and cc) but also how many "slots" -there are for each. Slots indicate how many processes can potentially execute -on a node. For best performance, the number of slots may be chosen to be the -number of cores on the node or the number of processor sockets. If the hostfile -does not provide slots information, Open MPI will attempt to discover the number -of cores (or hwthreads, if the use-hwthreads-as-cpus option is set) and set the -number of slots to that value. This default behavior also occurs when specifying -the \fI-host\fP option with a single hostname. Thus, the command -. -.TP 4 -mpirun -H aa ./a.out -launches a number of processes equal to the number of cores on node aa. -. -.PP +Here, we list both the host names (aa, bb, and cc) but also how many slots +there are for each. . .TP 4 mpirun -hostfile myhostfile ./a.out @@ -1181,8 +1280,9 @@ Finally, \fI--report-bindings\fP can be used to report bindings. . .PP -As an example, consider a node with two processor sockets, each comprising -four cores. We run \fImpirun\fP with \fI-np 4 --report-bindings\fP and +As an example, consider a node with two processor sockets, each +comprised of four cores, and each of those cores contains one hardware +thread. We run \fImpirun\fP with \fI-np 4 --report-bindings\fP and the following additional options: . @@ -1198,7 +1298,7 @@ [...] ... binding child [...,2] to socket 0 cpus 000f [...] ... binding child [...,3] to socket 1 cpus 00f0 - % mpirun ... --map-by core:PE=2 --bind-to core + % mpirun ... --map-by slot:PE=2 --bind-to core [...] ... binding child [...,0] to cpus 0003 [...] ... binding child [...,1] to cpus 000c [...] ... binding child [...,2] to cpus 0030 @@ -1212,9 +1312,20 @@ the masks 0001, 0002, 0004, and 0008. In the second case, processes bind to all cores on successive sockets as indicated by the masks 000f and 00f0. The processes cycle through the processor sockets in a round-robin fashion -as many times as are needed. In the third case, the masks show us that -2 cores have been bound per process. In the fourth case, binding is -turned off and no bindings are reported. +as many times as are needed. +. +.P +In the third case, the masks show us that 2 cores have been bound per +process. Specifically, the mapping by slot with the \fIPE=2\fP +qualifier indicated that each slot (i.e., process) should consume two +processor elements. Since \fI--use-hwthread-cpus\fP was not +specified, Open MPI defined "processor element" as "core", and +therefore the \fI--bind-to core\fP caused each process to be bound to +both of the cores to which it was mapped. +. +.P +In the fourth case, binding is turned off and no bindings are +reported. . .PP Open MPI's support for process binding depends on the underlying @@ -1676,24 +1787,12 @@ reported solely in a summary print statement. . .PP -By default, OMPI records and notes that MPI processes exited with non-zero termination status. -This is generally not considered an "abnormal termination" - i.e., OMPI will not abort an MPI -job if one or more processes return a non-zero status. Instead, the default behavior simply -reports the number of processes terminating with non-zero status upon completion of the job. -.PP -However, in some cases it can be desirable to have the job abort when any process terminates -with non-zero status. For example, a non-MPI job might detect a bad result from a calculation -and want to abort, but doesn't want to generate a core file. Or an MPI job might continue past -a call to MPI_Finalize, but indicate that all processes should abort due to some post-MPI result. -.PP -It is not anticipated that this situation will occur frequently. However, in the interest of -serving the broader community, OMPI now has a means for allowing users to direct that jobs be -aborted upon any process exiting with non-zero status. Setting the MCA parameter -"orte_abort_on_non_zero_status" to 1 will cause OMPI to abort all processes once any process - exits with non-zero status. -.PP -Terminations caused in this manner will be reported on the console as an "abnormal termination", -with the first process to so exit identified along with its exit status. +By default, the job will abort when any process terminates with non-zero +status. The MCA parameter "orte_abort_on_non_zero_status" can be set to +"false" (or "0") to cause OMPI to not abort a job if one or more +processes return a non-zero status. In that situation the OMPI records +and notes that processes exited with non-zero termination status to +report the approprate exit status of \fImpirun\fP (per bullet points above). .PP . .\" ************************** diff -Nru openmpi-4.0.3/orte/tools/orterun/orterun.c openmpi-4.1.4/orte/tools/orterun/orterun.c --- openmpi-4.0.3/orte/tools/orterun/orterun.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/tools/orterun/orterun.c 2022-05-29 09:51:40.000000000 +0000 @@ -17,6 +17,7 @@ * Copyright (c) 2013-2018 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2021 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -183,6 +184,10 @@ (NULL == launchst.jdata) ? "UNKNOWN" : ORTE_JOBID_PRINT(launchst.jdata->jobid)); } if (!orte_event_base_active || ORTE_SUCCESS != launchst.status) { + if (ORTE_PROC_IS_HNP) { + /* ensure all local procs are dead */ + orte_odls.kill_local_procs(NULL); + } goto DONE; } diff -Nru openmpi-4.0.3/orte/tools/orte-server/Makefile.in openmpi-4.1.4/orte/tools/orte-server/Makefile.in --- openmpi-4.0.3/orte/tools/orte-server/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/tools/orte-server/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -133,6 +133,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -140,6 +142,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -163,6 +166,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -265,6 +269,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -272,6 +277,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -352,6 +358,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -374,9 +381,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -386,6 +397,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -406,6 +418,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -665,6 +678,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1485,6 +1501,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1517,9 +1537,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1540,6 +1569,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1624,9 +1654,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1687,6 +1714,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1700,6 +1730,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/tools/wrappers/Makefile.in openmpi-4.1.4/orte/tools/wrappers/Makefile.in --- openmpi-4.0.3/orte/tools/wrappers/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/tools/wrappers/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -597,6 +610,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1417,6 +1433,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1449,9 +1469,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1472,6 +1501,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1556,9 +1586,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1619,6 +1646,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1632,6 +1662,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/orte/util/dash_host/dash_host.c openmpi-4.1.4/orte/util/dash_host/dash_host.c --- openmpi-4.0.3/orte/util/dash_host/dash_host.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/util/dash_host/dash_host.c 2022-05-29 09:51:40.000000000 +0000 @@ -13,7 +13,7 @@ * Copyright (c) 2014-2017 Intel, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. - * Copyright (c) 2016 IBM Corporation. All rights reserved. + * Copyright (c) 2016-2021 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -229,7 +229,7 @@ found = true; if (slots_given) { node->slots += slots; - if (0 < slots) { + if (0 <= slots) { ORTE_FLAG_SET(node, ORTE_NODE_FLAG_SLOTS_GIVEN); } } else { @@ -259,7 +259,7 @@ node->slots_max = 0; if (slots_given) { node->slots = slots; - if (0 < slots) { + if (0 <= slots) { ORTE_FLAG_SET(node, ORTE_NODE_FLAG_SLOTS_GIVEN); } } else if (slots < 0) { @@ -305,7 +305,30 @@ } } - rc = ORTE_SUCCESS; + // Managed allocation: Update the node pool slots + // with what was asked for in the host list. + if(orte_managed_allocation) { + orte_node_t *node_from_pool = NULL; + for (i = 0; i < orte_node_pool->size; i++) { + if (NULL == (node_from_pool = (orte_node_t*)opal_pointer_array_get_item(orte_node_pool, i))) { + continue; + } + for (itm = opal_list_get_first(nodes); + itm != opal_list_get_end(nodes); + itm = opal_list_get_next(itm)) { + node = (orte_node_t*) itm; + if (0 == strcmp(node_from_pool->name, node->name)) { + if(node->slots < node_from_pool -> slots) { + node_from_pool->slots = node->slots; + } + break; + } + // There's no need to check that this host exists in the pool. That + // should have already been checked at this point. + } + } + } + rc = ORTE_SUCCESS; cleanup: if (NULL != mapped_nodes) { diff -Nru openmpi-4.0.3/orte/util/listener.c openmpi-4.1.4/orte/util/listener.c --- openmpi-4.0.3/orte/util/listener.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/util/listener.c 2022-05-29 09:51:40.000000000 +0000 @@ -51,6 +51,9 @@ #ifdef HAVE_SYS_SOCKET_H #include #endif +#ifdef HAVE_SYS_UN_H +#include +#endif #include @@ -90,6 +93,7 @@ orte_listener_callback_fn_t handler) { orte_listener_t *conn; + struct sockaddr_un * sa_un; int flags; int sd = -1; @@ -135,12 +139,36 @@ if (bind(sd, (struct sockaddr*)address, addrlen) < 0) { - opal_output(0, "%s bind() failed on error %s (%d)", + opal_output(0, "%s bind() %s (%d)" + "checking for existing socket connection\n", ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), strerror(opal_socket_errno), opal_socket_errno ); - CLOSE_THE_SOCKET(sd); - return ORTE_ERROR; + if(address->sa_family == AF_UNIX) { + sa_un = (struct sockaddr_un *)address; + if (connect(sd, (struct sockaddr *)address, addrlen) < 0) { + opal_output(0, "socket: %s is inactive, " + "unlinking the socket file and rebinding\n",sa_un->sun_path); + unlink(sa_un->sun_path); + if (bind(sd, (struct sockaddr *)address, addrlen) < 0) { + opal_output(0, "bind() failed on file: %s even after unlink\n", + sa_un->sun_path); + CLOSE_THE_SOCKET(sd); + return ORTE_ERROR; + } + } else { + opal_output(0, "%s bind() failed : socket is active %s (%d)\n", + ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), + strerror(opal_socket_errno), opal_socket_errno ); + CLOSE_THE_SOCKET(sd); + return ORTE_ERROR; + } + } else { + opal_output(0, "%s bind() failed : not an unix domain socket", + ORTE_NAME_PRINT(ORTE_PROC_MY_NAME)); + CLOSE_THE_SOCKET(sd); + return ORTE_ERROR; + } } /* setup listen backlog to maximum allowed by kernel */ @@ -379,3 +407,4 @@ opal_object_t, NULL, NULL); + diff -Nru openmpi-4.0.3/orte/util/show_help.c openmpi-4.1.4/orte/util/show_help.c --- openmpi-4.0.3/orte/util/show_help.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/util/show_help.c 2022-05-29 09:51:40.000000000 +0000 @@ -591,7 +591,7 @@ } int orte_show_help(const char *filename, const char *topic, - bool want_error_header, ...) + int want_error_header, ...) { int rc = ORTE_SUCCESS; va_list arglist; diff -Nru openmpi-4.0.3/orte/util/show_help.h openmpi-4.1.4/orte/util/show_help.h --- openmpi-4.0.3/orte/util/show_help.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/orte/util/show_help.h 2022-05-29 09:51:40.000000000 +0000 @@ -78,7 +78,7 @@ * (e.g., cray). */ ORTE_DECLSPEC int orte_show_help(const char *filename, const char *topic, - bool want_error_header, ...); + int want_error_header, ...); /** * Exactly the same as orte_show_help, but pass in a rendered string, diff -Nru openmpi-4.0.3/oshmem/include/Makefile.in openmpi-4.1.4/oshmem/include/Makefile.in --- openmpi-4.0.3/oshmem/include/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/include/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -624,6 +637,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1444,6 +1460,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1476,9 +1496,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1499,6 +1528,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1583,9 +1613,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1646,6 +1673,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1659,6 +1689,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/Makefile.in openmpi-4.1.4/oshmem/Makefile.in --- openmpi-4.0.3/oshmem/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -264,6 +264,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -271,6 +273,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -294,6 +297,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -396,6 +400,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -403,6 +408,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -483,6 +489,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -505,9 +512,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -517,6 +528,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -537,6 +549,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -865,6 +878,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1685,6 +1701,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1717,9 +1737,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1740,6 +1769,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1824,9 +1854,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1887,6 +1914,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1900,6 +1930,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/atomic/basic/Makefile.in openmpi-4.1.4/oshmem/mca/atomic/basic/Makefile.in --- openmpi-4.0.3/oshmem/mca/atomic/basic/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/atomic/basic/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -651,6 +664,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1471,6 +1487,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1503,9 +1523,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1526,6 +1555,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1610,9 +1640,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1673,6 +1700,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1686,6 +1716,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/atomic/Makefile.in openmpi-4.1.4/oshmem/mca/atomic/Makefile.in --- openmpi-4.0.3/oshmem/mca/atomic/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/atomic/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -649,6 +662,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1469,6 +1485,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1501,9 +1521,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1524,6 +1553,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1608,9 +1638,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1671,6 +1698,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1684,6 +1714,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/atomic/mxm/Makefile.in openmpi-4.1.4/oshmem/mca/atomic/mxm/Makefile.in --- openmpi-4.0.3/oshmem/mca/atomic/mxm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/atomic/mxm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -652,6 +665,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1472,6 +1488,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1504,9 +1524,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1527,6 +1556,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1611,9 +1641,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1674,6 +1701,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1687,6 +1717,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/atomic/ucx/atomic_ucx_cswap.c openmpi-4.1.4/oshmem/mca/atomic/ucx/atomic_ucx_cswap.c --- openmpi-4.0.3/oshmem/mca/atomic/ucx/atomic_ucx_cswap.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/atomic/ucx/atomic_ucx_cswap.c 2022-05-29 09:51:40.000000000 +0000 @@ -29,8 +29,16 @@ { ucs_status_ptr_t status_ptr; spml_ucx_mkey_t *ucx_mkey; - uint64_t rva; + void *rva = NULL; mca_spml_ucx_ctx_t *ucx_ctx = (mca_spml_ucx_ctx_t *)ctx; +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + ucp_request_param_t param = { + .op_attr_mask = UCP_OP_ATTR_FIELD_DATATYPE | + UCP_OP_ATTR_FIELD_REPLY_BUFFER, + .datatype = ucp_dt_make_contig(size), + .reply_buffer = prev + }; +#endif if ((8 != size) && (4 != size)) { ATOMIC_ERROR("[#%d] Type size must be 4 or 8 bytes.", my_pe); @@ -40,16 +48,27 @@ assert(NULL != prev); *prev = value; - ucx_mkey = mca_spml_ucx_get_mkey(ctx, pe, target, (void *)&rva, mca_spml_self); + ucx_mkey = mca_spml_ucx_ctx_mkey_by_va(ctx, pe, target, &rva, mca_spml_self); + assert(NULL != ucx_mkey); +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + status_ptr = ucp_atomic_op_nbx(ucx_ctx->ucp_peers[pe].ucp_conn, + UCP_ATOMIC_OP_CSWAP, &cond, 1, (uint64_t)rva, + ucx_mkey->rkey, ¶m); +#else status_ptr = ucp_atomic_fetch_nb(ucx_ctx->ucp_peers[pe].ucp_conn, UCP_ATOMIC_FETCH_OP_CSWAP, cond, prev, size, - rva, ucx_mkey->rkey, + (uint64_t)rva, ucx_mkey->rkey, opal_common_ucx_empty_complete_cb); +#endif if (OPAL_LIKELY(!UCS_PTR_IS_ERR(status_ptr))) { mca_spml_ucx_remote_op_posted(ucx_ctx, pe); } return opal_common_ucx_wait_request(status_ptr, ucx_ctx->ucp_worker[0], +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + "ucp_atomic_op_nbx"); +#else "ucp_atomic_fetch_nb"); +#endif } diff -Nru openmpi-4.0.3/oshmem/mca/atomic/ucx/atomic_ucx_module.c openmpi-4.1.4/oshmem/mca/atomic/ucx/atomic_ucx_module.c --- openmpi-4.0.3/oshmem/mca/atomic/ucx/atomic_ucx_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/atomic/ucx/atomic_ucx_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -18,6 +18,17 @@ #include "oshmem/proc/proc.h" #include "atomic_ucx.h" +#if HAVE_DECL_UCP_ATOMIC_OP_NBX +/* + * A static params array, for datatypes of size 4 and 8. "size >> 3" is used to + * access the corresponding offset. + */ +static ucp_request_param_t mca_spml_ucp_request_params[] = { + {.op_attr_mask = UCP_OP_ATTR_FIELD_DATATYPE, .datatype = ucp_dt_make_contig(4)}, + {.op_attr_mask = UCP_OP_ATTR_FIELD_DATATYPE, .datatype = ucp_dt_make_contig(8)} +}; +#endif + /* * Initial query function that is invoked during initialization, allowing * this module to indicate what level of thread support it provides. @@ -38,25 +49,44 @@ uint64_t value, size_t size, int pe, +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + ucp_atomic_op_t op) +#else ucp_atomic_post_op_t op) +#endif { - ucs_status_t status; spml_ucx_mkey_t *ucx_mkey; - uint64_t rva; + void *rva = NULL; mca_spml_ucx_ctx_t *ucx_ctx = (mca_spml_ucx_ctx_t *)ctx; +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + ucs_status_ptr_t status_ptr; +#else + ucs_status_t status; +#endif + int res; assert((8 == size) || (4 == size)); - ucx_mkey = mca_spml_ucx_get_mkey(ctx, pe, target, (void *)&rva, mca_spml_self); + ucx_mkey = mca_spml_ucx_ctx_mkey_by_va(ctx, pe, target, &rva, mca_spml_self); + assert(NULL != ucx_mkey); +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + status_ptr = ucp_atomic_op_nbx(ucx_ctx->ucp_peers[pe].ucp_conn, + op, &value, 1, (uint64_t)rva, ucx_mkey->rkey, + &mca_spml_ucp_request_params[size >> 3]); + res = opal_common_ucx_wait_request(status_ptr, ucx_ctx->ucp_worker[0], + "ucp_atomic_op_nbx post"); +#else status = ucp_atomic_post(ucx_ctx->ucp_peers[pe].ucp_conn, - op, value, size, rva, + op, value, size, (uint64_t)rva, ucx_mkey->rkey); + res = ucx_status_to_oshmem(status); +#endif - if (OPAL_LIKELY(UCS_OK == status)) { + if (OPAL_LIKELY(OSHMEM_SUCCESS == res)) { mca_spml_ucx_remote_op_posted(ucx_ctx, pe); } - return ucx_status_to_oshmem(status); + return res; } static inline @@ -66,22 +96,42 @@ uint64_t value, size_t size, int pe, +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + ucp_atomic_op_t op) +#else ucp_atomic_fetch_op_t op) +#endif { ucs_status_ptr_t status_ptr; spml_ucx_mkey_t *ucx_mkey; - uint64_t rva; + void *rva = NULL; mca_spml_ucx_ctx_t *ucx_ctx = (mca_spml_ucx_ctx_t *)ctx; +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + ucp_request_param_t param = { + .op_attr_mask = UCP_OP_ATTR_FIELD_DATATYPE | + UCP_OP_ATTR_FIELD_REPLY_BUFFER, + .datatype = ucp_dt_make_contig(size), + .reply_buffer = prev + }; +#endif assert((8 == size) || (4 == size)); - ucx_mkey = mca_spml_ucx_get_mkey(ctx, pe, target, (void *)&rva, mca_spml_self); + ucx_mkey = mca_spml_ucx_ctx_mkey_by_va(ctx, pe, target, &rva, mca_spml_self); + assert(NULL != ucx_mkey); +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + status_ptr = ucp_atomic_op_nbx(ucx_ctx->ucp_peers[pe].ucp_conn, op, &value, 1, + (uint64_t)rva, ucx_mkey->rkey, ¶m); + return opal_common_ucx_wait_request(status_ptr, ucx_ctx->ucp_worker[0], + "ucp_atomic_op_nbx"); +#else status_ptr = ucp_atomic_fetch_nb(ucx_ctx->ucp_peers[pe].ucp_conn, op, value, prev, size, - rva, ucx_mkey->rkey, + (uint64_t)rva, ucx_mkey->rkey, opal_common_ucx_empty_complete_cb); return opal_common_ucx_wait_request(status_ptr, ucx_ctx->ucp_worker[0], "ucp_atomic_fetch_nb"); +#endif } static int mca_atomic_ucx_add(shmem_ctx_t ctx, @@ -90,7 +140,11 @@ size_t size, int pe) { +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + return mca_atomic_ucx_op(ctx, target, value, size, pe, UCP_ATOMIC_OP_ADD); +#else return mca_atomic_ucx_op(ctx, target, value, size, pe, UCP_ATOMIC_POST_OP_ADD); +#endif } static int mca_atomic_ucx_and(shmem_ctx_t ctx, @@ -99,7 +153,9 @@ size_t size, int pe) { -#if HAVE_DECL_UCP_ATOMIC_POST_OP_AND +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + return mca_atomic_ucx_op(ctx, target, value, size, pe, UCP_ATOMIC_OP_AND); +#elif HAVE_DECL_UCP_ATOMIC_POST_OP_AND return mca_atomic_ucx_op(ctx, target, value, size, pe, UCP_ATOMIC_POST_OP_AND); #else return OSHMEM_ERR_NOT_IMPLEMENTED; @@ -112,7 +168,9 @@ size_t size, int pe) { -#if HAVE_DECL_UCP_ATOMIC_POST_OP_OR +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + return mca_atomic_ucx_op(ctx, target, value, size, pe, UCP_ATOMIC_OP_OR); +#elif HAVE_DECL_UCP_ATOMIC_POST_OP_OR return mca_atomic_ucx_op(ctx, target, value, size, pe, UCP_ATOMIC_POST_OP_OR); #else return OSHMEM_ERR_NOT_IMPLEMENTED; @@ -125,7 +183,9 @@ size_t size, int pe) { -#if HAVE_DECL_UCP_ATOMIC_POST_OP_XOR +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + return mca_atomic_ucx_op(ctx, target, value, size, pe, UCP_ATOMIC_OP_XOR); +#elif HAVE_DECL_UCP_ATOMIC_POST_OP_XOR return mca_atomic_ucx_op(ctx, target, value, size, pe, UCP_ATOMIC_POST_OP_XOR); #else return OSHMEM_ERR_NOT_IMPLEMENTED; @@ -139,7 +199,11 @@ size_t size, int pe) { +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + return mca_atomic_ucx_fop(ctx, target, prev, value, size, pe, UCP_ATOMIC_OP_ADD); +#else return mca_atomic_ucx_fop(ctx, target, prev, value, size, pe, UCP_ATOMIC_FETCH_OP_FADD); +#endif } static int mca_atomic_ucx_fand(shmem_ctx_t ctx, @@ -149,7 +213,9 @@ size_t size, int pe) { -#if HAVE_DECL_UCP_ATOMIC_FETCH_OP_FAND +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + return mca_atomic_ucx_fop(ctx, target, prev, value, size, pe, UCP_ATOMIC_OP_AND); +#elif HAVE_DECL_UCP_ATOMIC_FETCH_OP_FAND return mca_atomic_ucx_fop(ctx, target, prev, value, size, pe, UCP_ATOMIC_FETCH_OP_FAND); #else return OSHMEM_ERR_NOT_IMPLEMENTED; @@ -163,7 +229,9 @@ size_t size, int pe) { -#if HAVE_DECL_UCP_ATOMIC_FETCH_OP_FOR +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + return mca_atomic_ucx_fop(ctx, target, prev, value, size, pe, UCP_ATOMIC_OP_OR); +#elif HAVE_DECL_UCP_ATOMIC_FETCH_OP_FOR return mca_atomic_ucx_fop(ctx, target, prev, value, size, pe, UCP_ATOMIC_FETCH_OP_FOR); #else return OSHMEM_ERR_NOT_IMPLEMENTED; @@ -177,7 +245,9 @@ size_t size, int pe) { -#if HAVE_DECL_UCP_ATOMIC_FETCH_OP_FXOR +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + return mca_atomic_ucx_fop(ctx, target, prev, value, size, pe, UCP_ATOMIC_OP_XOR); +#elif HAVE_DECL_UCP_ATOMIC_FETCH_OP_FXOR return mca_atomic_ucx_fop(ctx, target, prev, value, size, pe, UCP_ATOMIC_FETCH_OP_FXOR); #else return OSHMEM_ERR_NOT_IMPLEMENTED; @@ -191,7 +261,11 @@ size_t size, int pe) { +#if HAVE_DECL_UCP_ATOMIC_OP_NBX + return mca_atomic_ucx_fop(ctx, target, prev, value, size, pe, UCP_ATOMIC_OP_SWAP); +#else return mca_atomic_ucx_fop(ctx, target, prev, value, size, pe, UCP_ATOMIC_FETCH_OP_SWAP); +#endif } diff -Nru openmpi-4.0.3/oshmem/mca/atomic/ucx/Makefile.in openmpi-4.1.4/oshmem/mca/atomic/ucx/Makefile.in --- openmpi-4.0.3/oshmem/mca/atomic/ucx/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/atomic/ucx/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -652,6 +665,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1472,6 +1488,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1504,9 +1524,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1527,6 +1556,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1611,9 +1641,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1674,6 +1701,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1687,6 +1717,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/memheap/base/base.h openmpi-4.1.4/oshmem/mca/memheap/base/base.h --- openmpi-4.0.3/oshmem/mca/memheap/base/base.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/memheap/base/base.h 2022-05-29 09:51:40.000000000 +0000 @@ -62,7 +62,7 @@ extern mca_memheap_map_t mca_memheap_base_map; extern mca_memheap_base_config_t mca_memheap_base_config; -int mca_memheap_base_alloc_init(mca_memheap_map_t *, size_t, long); +int mca_memheap_base_alloc_init(mca_memheap_map_t *, size_t, long, char *); void mca_memheap_base_alloc_exit(mca_memheap_map_t *); int mca_memheap_base_static_init(mca_memheap_map_t *); void mca_memheap_base_static_exit(mca_memheap_map_t *); @@ -176,13 +176,35 @@ return map_segment_is_va_in(&memheap_find_seg(segno)->super, va); } -static inline int memheap_find_segnum(void *va) +static inline int memheap_find_segnum(void *va, int pe) { int i; + int my_pe = oshmem_my_proc_id(); - for (i = 0; i < mca_memheap_base_map.n_segments; i++) { - if (memheap_is_va_in_segment(va, i)) { - return i; + if (pe == my_pe) { + /* Find segment number for local segment using va_base + * TODO: Merge local and remote segment information in mkeys_cache + */ + for (i = 0; i < mca_memheap_base_map.n_segments; i++) { + if (memheap_is_va_in_segment(va, i)) { + return i; + } + } + } else { + /* Find segment number for remote segments using va_base */ + for (i = 0; i < mca_memheap_base_map.n_segments; i++) { + map_segment_t *seg = memheap_find_seg(i); + if (seg) { + sshmem_mkey_t **mkeys_cache = seg->mkeys_cache; + if (mkeys_cache) { + if (mkeys_cache[pe]) { + if ((va >= mkeys_cache[pe]->va_base) && + ((char*)va < (char*)mkeys_cache[pe]->va_base + mkeys_cache[pe]->len)) { + return i; + } + } + } + } } } return MEMHEAP_SEG_INVALID; @@ -200,22 +222,6 @@ return memheap_va2rva(va, seg->super.va_base, seg->rva_base); } -static inline map_base_segment_t *map_segment_find_va(map_base_segment_t *segs, - size_t elem_size, void *va) -{ - map_base_segment_t *rseg; - int i; - - for (i = 0; i < MCA_MEMHEAP_MAX_SEGMENTS; i++) { - rseg = (map_base_segment_t *)((char *)segs + elem_size * i); - if (OPAL_LIKELY(map_segment_is_va_in(rseg, va))) { - return rseg; - } - } - - return NULL; -} - void mkey_segment_init(mkey_segment_t *seg, sshmem_mkey_t *mkey, uint32_t segno); static inline map_segment_t *memheap_find_va(void* va) diff -Nru openmpi-4.0.3/oshmem/mca/memheap/base/memheap_base_alloc.c openmpi-4.1.4/oshmem/mca/memheap/base/memheap_base_alloc.c --- openmpi-4.0.3/oshmem/mca/memheap/base/memheap_base_alloc.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/memheap/base/memheap_base_alloc.c 2022-05-29 09:51:40.000000000 +0000 @@ -17,13 +17,17 @@ #include "oshmem/mca/sshmem/base/base.h" #include "oshmem/mca/memheap/memheap.h" #include "oshmem/mca/memheap/base/base.h" +#include "ompi/util/timings.h" -int mca_memheap_base_alloc_init(mca_memheap_map_t *map, size_t size, long hint) +int mca_memheap_base_alloc_init(mca_memheap_map_t *map, size_t size, long hint, + char *timing_prefix) { int ret = OSHMEM_SUCCESS; char * seg_filename = NULL; + OPAL_TIMING_ENV_INIT_PREFIX(timing_prefix, timing); + assert(map); if (hint == 0) { assert(HEAP_SEG_INDEX == map->n_segments); @@ -33,8 +37,13 @@ map_segment_t *s = &map->mem_segs[map->n_segments]; seg_filename = oshmem_get_unique_file_name(oshmem_my_proc_id()); + + OPAL_TIMING_ENV_NEXT(timing, "oshmem_get_unique_file_name()"); + ret = mca_sshmem_segment_create(s, seg_filename, size, hint); + OPAL_TIMING_ENV_NEXT(timing, "mca_sshmem_segment_create()"); + if (OSHMEM_SUCCESS == ret) { map->n_segments++; MEMHEAP_VERBOSE(1, @@ -43,6 +52,7 @@ } free(seg_filename); + OPAL_TIMING_ENV_NEXT(timing, "DONE"); return ret; } @@ -74,7 +84,7 @@ /* Do not fall back to default allocator since it will break the * symmetry between PEs */ - return s->allocator->realloc(s, size, NULL, ptr); + return s->allocator->sa_realloc(s, size, NULL, ptr); } } diff -Nru openmpi-4.0.3/oshmem/mca/memheap/base/memheap_base_mkey.c openmpi-4.1.4/oshmem/mca/memheap/base/memheap_base_mkey.c --- openmpi-4.0.3/oshmem/mca/memheap/base/memheap_base_mkey.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/memheap/base/memheap_base_mkey.c 2022-05-29 09:51:40.000000000 +0000 @@ -27,6 +27,7 @@ #include "oshmem/mca/memheap/memheap.h" #include "oshmem/mca/memheap/base/base.h" #include "oshmem/mca/spml/spml.h" +#include "opal/util/timings.h" /* Turn ON/OFF debug output from build (default 0) */ #ifndef MEMHEAP_BASE_DEBUG @@ -149,9 +150,6 @@ int32_t n; int32_t tr_id; int i; - ompi_proc_t *proc; - - proc = oshmem_proc_group_find(oshmem_group_all, remote_pe); cnt = 1; opal_dss.unpack(msg, &n, &cnt, OPAL_UINT32); for (i = 0; i < n; i++) { @@ -166,7 +164,7 @@ if (0 == memheap_oob.mkeys[tr_id].va_base) { cnt = 1; opal_dss.unpack(msg, &memheap_oob.mkeys[tr_id].u.key, &cnt, OPAL_UINT64); - if (OPAL_PROC_ON_LOCAL_NODE(proc->super.proc_flags)) { + if (oshmem_proc_on_local_node(remote_pe)) { memheap_attach_segment(&memheap_oob.mkeys[tr_id], tr_id); } } else { @@ -529,14 +527,16 @@ int rc = OSHMEM_SUCCESS; size_t buffer_size; + OPAL_TIMING_ENV_INIT(recv_all); + if (!mca_memheap_base_key_exchange) { oshmem_shmem_barrier(); return; } - + OPAL_TIMING_ENV_NEXT(recv_all, "barrier"); nprocs = oshmem_num_procs(); my_pe = oshmem_my_proc_id(); - + OPAL_TIMING_ENV_NEXT(recv_all, "proc position"); /* buffer allocation for num_transports * message sizes and offsets */ @@ -560,6 +560,7 @@ rc = OSHMEM_ERR_OUT_OF_RESOURCE; goto exit_fatal; } + OPAL_TIMING_ENV_NEXT(recv_all, "alloc bufs"); /* serialize our own mkeys */ msg = OBJ_NEW(opal_buffer_t); @@ -582,6 +583,9 @@ opal_dss.unload(msg, &send_buffer, &size); MEMHEAP_VERBOSE(1, "local keys packed into %d bytes, %d segments", size, memheap_map->n_segments); + OPAL_TIMING_ENV_NEXT(recv_all, "serialize data"); + + /* we need to send num_transports and message sizes separately * since message sizes depend on types of btl used */ @@ -591,12 +595,17 @@ goto exit_fatal; } + OPAL_TIMING_ENV_NEXT(recv_all, "allgather: transport cnt"); + + rc = oshmem_shmem_allgather(&size, rcv_size, sizeof(int)); if (MPI_SUCCESS != rc) { MEMHEAP_ERROR("allgather failed"); goto exit_fatal; } + OPAL_TIMING_ENV_NEXT(recv_all, "allgather: size info"); + /* calculating offsets (displacements) for allgatherv */ rcv_offsets[0] = 0; @@ -613,6 +622,8 @@ goto exit_fatal; } + OPAL_TIMING_ENV_NEXT(recv_all, "alloc data buf"); + rc = oshmem_shmem_allgatherv(send_buffer, rcv_buffer, size, rcv_size, rcv_offsets); if (MPI_SUCCESS != rc) { free (rcv_buffer); @@ -620,6 +631,8 @@ goto exit_fatal; } + OPAL_TIMING_ENV_NEXT(recv_all, "Perform mkey exchange"); + opal_dss.load(msg, rcv_buffer, buffer_size); /* deserialize mkeys */ @@ -651,6 +664,8 @@ } } + OPAL_TIMING_ENV_NEXT(recv_all, "Unpack data"); + OPAL_THREAD_UNLOCK(&memheap_oob.lck); exit_fatal: @@ -670,6 +685,7 @@ OBJ_RELEASE(msg); } + OPAL_TIMING_ENV_NEXT(recv_all, "Cleanup"); /* This function requires abort in any error case */ if (OSHMEM_SUCCESS != rc) { oshmem_shmem_abort(rc); @@ -755,7 +771,6 @@ s = memheap_find_seg(segno); assert(NULL != s); - seg->super.va_base = s->super.va_base; seg->super.va_end = s->super.va_end; seg->rva_base = mkey->va_base; diff -Nru openmpi-4.0.3/oshmem/mca/memheap/base/memheap_base_register.c openmpi-4.1.4/oshmem/mca/memheap/base/memheap_base_register.c --- openmpi-4.0.3/oshmem/mca/memheap/base/memheap_base_register.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/memheap/base/memheap_base_register.c 2022-05-29 09:51:40.000000000 +0000 @@ -86,7 +86,7 @@ continue; if (s->mkeys_cache[j]) { if (s->mkeys_cache[j]->len) { - MCA_SPML_CALL(rmkey_free(s->mkeys_cache[j])); + MCA_SPML_CALL(rmkey_free(s->mkeys_cache[j], j)); free(s->mkeys_cache[j]->u.data); s->mkeys_cache[j]->len = 0; } diff -Nru openmpi-4.0.3/oshmem/mca/memheap/base/memheap_base_select.c openmpi-4.1.4/oshmem/mca/memheap/base/memheap_base_select.c --- openmpi-4.0.3/oshmem/mca/memheap/base/memheap_base_select.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/memheap/base/memheap_base_select.c 2022-05-29 09:51:40.000000000 +0000 @@ -24,7 +24,7 @@ #include "orte/mca/errmgr/errmgr.h" #include "oshmem/include/shmemx.h" #include "oshmem/mca/sshmem/base/base.h" - +#include "ompi/util/timings.h" mca_memheap_base_config_t mca_memheap_base_config = { .device_nic_mem_seg_size = 0 @@ -57,6 +57,8 @@ mca_memheap_base_component_t *best_component = NULL; mca_memheap_base_module_t *best_module = NULL; + OPAL_TIMING_ENV_INIT(timing); + if( OPAL_SUCCESS != mca_base_select("memheap", oshmem_memheap_base_framework.framework_output, &oshmem_memheap_base_framework.framework_components, (mca_base_module_t **) &best_module, @@ -65,11 +67,15 @@ return OSHMEM_ERROR; } + OPAL_TIMING_ENV_NEXT(timing, "env"); + context = _memheap_create(); if (NULL == context) { return OSHMEM_ERROR; } + OPAL_TIMING_ENV_NEXT(timing, "_memheap_create()"); + if (OSHMEM_SUCCESS != best_component->memheap_init(context)) { opal_show_help("help-oshmem-memheap.txt", "find-available:none-found", @@ -78,6 +84,8 @@ return OSHMEM_ERROR; } + OPAL_TIMING_ENV_NEXT(timing, "best_component->memheap_init()"); + /* Calculate memheap size in case it was not set during component initialization */ best_module->memheap_size = context->user_size; setenv(SHMEM_HEAP_TYPE, @@ -90,6 +98,7 @@ best_component->memheap_version.mca_type_name, best_component->memheap_version.mca_component_name); + OPAL_TIMING_ENV_NEXT(timing, "DONE"); return OSHMEM_SUCCESS; } @@ -104,43 +113,60 @@ static memheap_context_t context; size_t user_size, size; + OPAL_TIMING_ENV_INIT(timing); + user_size = _memheap_size(); if (user_size < MEMHEAP_BASE_MIN_SIZE) { MEMHEAP_ERROR("Requested memheap size is less than minimal meamheap size (%llu < %llu)", (unsigned long long)user_size, MEMHEAP_BASE_MIN_SIZE); return NULL ; } + + OPAL_TIMING_ENV_NEXT(timing, "_memheap_size()"); + /* Inititialize symmetric area */ if (OSHMEM_SUCCESS == rc) { rc = mca_memheap_base_alloc_init(&mca_memheap_base_map, - user_size + MEMHEAP_BASE_PRIVATE_SIZE, 0); + user_size + MEMHEAP_BASE_PRIVATE_SIZE, 0, + "regular_mem"); } + OPAL_TIMING_ENV_NEXT(timing, "mca_memheap_base_alloc_init()"); + /* Initialize atomic symmetric area */ size = mca_memheap_base_config.device_nic_mem_seg_size; if ((OSHMEM_SUCCESS == rc) && (size > 0)) { rc = mca_memheap_base_alloc_init(&mca_memheap_base_map, size, - SHMEM_HINT_DEVICE_NIC_MEM); + SHMEM_HINT_DEVICE_NIC_MEM, + "device_mem"); if (rc == OSHMEM_ERR_NOT_IMPLEMENTED) { /* do not treat NOT_IMPLEMENTED as error */ rc = OSHMEM_SUCCESS; } } + OPAL_TIMING_ENV_NEXT(timing, "mca_memheap_base_alloc_init(DEVICE_MEM)"); + + /* Inititialize static/global variables area */ if (OSHMEM_SUCCESS == rc) { rc = mca_memheap_base_static_init(&mca_memheap_base_map); } + OPAL_TIMING_ENV_NEXT(timing, "mca_memheap_base_static_init()"); + /* Memory Registration */ if (OSHMEM_SUCCESS == rc) { rc = mca_memheap_base_reg(&mca_memheap_base_map); } + OPAL_TIMING_ENV_NEXT(timing, "mca_memheap_base_reg()"); + /* Init OOB channel */ if (OSHMEM_SUCCESS == rc) { rc = memheap_oob_init(&mca_memheap_base_map); } + OPAL_TIMING_ENV_NEXT(timing, "memheap_oob_init()"); if (OSHMEM_SUCCESS == rc) { context.user_size = user_size; @@ -152,6 +178,7 @@ (void*) ((unsigned char*) mca_memheap_base_map.mem_segs[HEAP_SEG_INDEX].super.va_base + context.user_size); } + OPAL_TIMING_ENV_NEXT(timing, "DONE"); return ((OSHMEM_SUCCESS == rc) ? &context : NULL ); } diff -Nru openmpi-4.0.3/oshmem/mca/memheap/base/memheap_base_static.c openmpi-4.1.4/oshmem/mca/memheap/base/memheap_base_static.c --- openmpi-4.0.3/oshmem/mca/memheap/base/memheap_base_static.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/memheap/base/memheap_base_static.c 2022-05-29 09:51:40.000000000 +0000 @@ -17,6 +17,9 @@ #include "oshmem/util/oshmem_util.h" #include +#include +#include +#include struct map_segment_desc { void* start; @@ -127,7 +130,41 @@ static int _check_pathname(struct map_segment_desc *seg) { - /* Probably we need to check found path but + static const char *proc_self_exe = "/proc/self/exe"; + static int warned = 0; + char exe_path[PATH_MAX]; + char module_path[PATH_MAX]; + char *path; + + if (0 == seg->inode) { + /* segment is not mapped to file, allow sharing it */ + return OSHMEM_SUCCESS; + } + + path = realpath(proc_self_exe, exe_path); + if (NULL == path) { + if (0 == warned) { + MEMHEAP_VERBOSE(100, "failed to read link %s: %m", proc_self_exe); + MEMHEAP_VERBOSE(100, "all segments will be registered"); + warned = 1; + } + + return OSHMEM_SUCCESS; + } + + /* for file-mapped segments allow segments from start process only */ + path = realpath(seg->pathname, module_path); + if (NULL == path) { + return OSHMEM_ERROR; + } + + if (!strncmp(exe_path, module_path, sizeof(exe_path))) { + return OSHMEM_SUCCESS; + } + + return OSHMEM_ERROR; + + /* Probably we need more accurate path check * To press check coverity issue following code is disabled */ #if 0 diff -Nru openmpi-4.0.3/oshmem/mca/memheap/buddy/Makefile.in openmpi-4.1.4/oshmem/mca/memheap/buddy/Makefile.in --- openmpi-4.0.3/oshmem/mca/memheap/buddy/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/memheap/buddy/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -650,6 +663,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1470,6 +1486,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1502,9 +1522,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1525,6 +1554,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1609,9 +1639,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1672,6 +1699,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1685,6 +1715,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/memheap/Makefile.in openmpi-4.1.4/oshmem/mca/memheap/Makefile.in --- openmpi-4.0.3/oshmem/mca/memheap/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/memheap/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -657,6 +670,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1477,6 +1493,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1509,9 +1529,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1532,6 +1561,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1616,9 +1646,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1679,6 +1706,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1692,6 +1722,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/memheap/ptmalloc/Makefile.in openmpi-4.1.4/oshmem/mca/memheap/ptmalloc/Makefile.in --- openmpi-4.0.3/oshmem/mca/memheap/ptmalloc/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/memheap/ptmalloc/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -652,6 +665,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1472,6 +1488,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1504,9 +1524,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1527,6 +1556,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1611,9 +1641,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1674,6 +1701,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1687,6 +1717,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/scoll/basic/Makefile.in openmpi-4.1.4/oshmem/mca/scoll/basic/Makefile.in --- openmpi-4.0.3/oshmem/mca/scoll/basic/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/basic/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -652,6 +665,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1472,6 +1488,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1504,9 +1524,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1527,6 +1556,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1611,9 +1641,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1674,6 +1701,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1687,6 +1717,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/scoll/basic/scoll_basic_alltoall.c openmpi-4.1.4/oshmem/mca/scoll/basic/scoll_basic_alltoall.c --- openmpi-4.0.3/oshmem/mca/scoll/basic/scoll_basic_alltoall.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/basic/scoll_basic_alltoall.c 2022-05-29 09:51:40.000000000 +0000 @@ -116,7 +116,7 @@ (*dst_pe_idx) = (dst_blk_idx + src_blk_idx) % group->proc_count; /* convert to the global pe */ - return oshmem_proc_pe(group->proc_array[*dst_pe_idx]); + return oshmem_proc_pe_vpid(group, *dst_pe_idx); } static int a2as_alg_simple(struct oshmem_group_t *group, diff -Nru openmpi-4.0.3/oshmem/mca/scoll/basic/scoll_basic_barrier.c openmpi-4.1.4/oshmem/mca/scoll/basic/scoll_basic_barrier.c --- openmpi-4.0.3/oshmem/mca/scoll/basic/scoll_basic_barrier.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/basic/scoll_basic_barrier.c 2022-05-29 09:51:40.000000000 +0000 @@ -103,7 +103,7 @@ int rc = OSHMEM_SUCCESS; long value = SHMEM_SYNC_INIT; int root_id = 0; - int PE_root = oshmem_proc_pe(group->proc_array[root_id]); + int PE_root = oshmem_proc_pe_vpid(group, root_id); int i = 0; SCOLL_VERBOSE(12, "[#%d] Barrier algorithm: Central Counter", group->my_pe); @@ -124,7 +124,7 @@ wait_pe_count = group->proc_count; for (i = 0; i < group->proc_count; i++) { - wait_pe_array[i] = oshmem_proc_pe(group->proc_array[i]); + wait_pe_array[i] = oshmem_proc_pe_vpid(group, i); } wait_pe_array[root_id] = OSHMEM_PE_INVALID; wait_pe_count--; @@ -151,7 +151,7 @@ value = SHMEM_SYNC_RUN; for (i = 0; (i < group->proc_count) && (rc == OSHMEM_SUCCESS); i++) { - pe_cur = oshmem_proc_pe(group->proc_array[i]); + pe_cur = oshmem_proc_pe_vpid(group, i); if (pe_cur != PE_root) { rc = MCA_SPML_CALL(put(oshmem_ctx_default, (void*)pSync, sizeof(value), (void*)&value, pe_cur)); } @@ -238,7 +238,7 @@ SCOLL_VERBOSE(14, "[#%d] round = %d wait", group->my_pe, round); rc = MCA_SPML_CALL(wait((void*)pSync, SHMEM_CMP_EQ, (void*)&value, SHMEM_LONG)); } else { - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); #if 1 /* It is ugly implementation of compare and swap operation Usage of this hack does not give performance improvement but @@ -284,7 +284,7 @@ for (peer_id = 1; (peer_id < group->proc_count) && (rc == OSHMEM_SUCCESS); peer_id++) { - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); rc = MCA_SPML_CALL(put(oshmem_ctx_default, (void*)pSync, sizeof(value), (void*)&value, peer_pe)); } } @@ -333,7 +333,7 @@ if (my_id >= floor2_proc) { /* I am in extra group, my partner is node (my_id-y) in basic group */ peer_id = my_id - floor2_proc; - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); SCOLL_VERBOSE(14, "[#%d] is extra and signal to #%d", @@ -357,7 +357,7 @@ if ((group->proc_count - floor2_proc) > my_id) { /* I am in basic group, my partner is node (my_id+y) in extra group */ peer_id = my_id + floor2_proc; - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); SCOLL_VERBOSE(14, "[#%d] wait a signal from #%d", @@ -376,8 +376,7 @@ /* Update exit condition and round counter */ exit_flag >>= 1; round++; - - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); #if 1 /* It is ugly implementation of compare and swap operation Usage of this hack does not give performance improvement but @@ -420,7 +419,7 @@ if ((group->proc_count - floor2_proc) > my_id) { /* I am in basic group, my partner is node (my_id+y) in extra group */ peer_id = my_id + floor2_proc; - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); SCOLL_VERBOSE(14, "[#%d] signals to #%d", group->my_pe, peer_pe); value = SHMEM_SYNC_RUN; @@ -462,8 +461,7 @@ for (round = 0; (round <= log2_proc) && (rc == OSHMEM_SUCCESS); round++) { /* Define a peer to send signal */ peer_id = (my_id + (1 << round)) % group->proc_count; - - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); #if 1 /* It is ugly implementation of compare and swap operation Usage of this hack does not give performance improvement but @@ -502,7 +500,7 @@ { int rc = OSHMEM_SUCCESS; int root_id = 0; - int PE_root = oshmem_proc_pe(group->proc_array[root_id]); + int PE_root = oshmem_proc_pe_vpid(group, root_id); int i = 0; SCOLL_VERBOSE(12, "[#%d] Barrier algorithm: Basic", group->my_pe); @@ -525,7 +523,7 @@ int pe_cur = 0; for (i = 0; (i < group->proc_count) && (rc == OSHMEM_SUCCESS); i++) { - pe_cur = oshmem_proc_pe(group->proc_array[i]); + pe_cur = oshmem_proc_pe_vpid(group, i); if (pe_cur != PE_root) { rc = MCA_SPML_CALL(recv(NULL, 0, pe_cur)); } @@ -535,7 +533,7 @@ } for (i = 0; (i < group->proc_count) && (rc == OSHMEM_SUCCESS); i++) { - pe_cur = oshmem_proc_pe(group->proc_array[i]); + pe_cur = oshmem_proc_pe_vpid(group, i); if (pe_cur != PE_root) { rc = MCA_SPML_CALL(send(NULL, 0, pe_cur, MCA_SPML_BASE_PUT_STANDARD)); } @@ -564,7 +562,7 @@ if (i == my_id) continue; - if (!OPAL_PROC_ON_LOCAL_NODE(group->proc_array[i]->super.proc_flags)) { + if (!oshmem_proc_on_local_node(i)) { local_peers_only = false; break; } diff -Nru openmpi-4.0.3/oshmem/mca/scoll/basic/scoll_basic_broadcast.c openmpi-4.1.4/oshmem/mca/scoll/basic/scoll_basic_broadcast.c --- openmpi-4.0.3/oshmem/mca/scoll/basic/scoll_basic_broadcast.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/basic/scoll_basic_broadcast.c 2022-05-29 09:51:40.000000000 +0000 @@ -144,7 +144,7 @@ "[#%d] send data to all PE in the group", group->my_pe); for (i = 0; (i < group->proc_count) && (rc == OSHMEM_SUCCESS); i++) { - pe_cur = oshmem_proc_pe(group->proc_array[i]); + pe_cur = oshmem_proc_pe_vpid(group, i); if (pe_cur != PE_root) { SCOLL_VERBOSE(15, "[#%d] send data to #%d", @@ -233,7 +233,7 @@ if (peer_id < group->proc_count) { /* Wait for the child to be ready to receive (pSync must have the initial value) */ peer_id = (peer_id + root_id) % group->proc_count; - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); SCOLL_VERBOSE(14, "[#%d] check remote pe is ready to receive #%d", diff -Nru openmpi-4.0.3/oshmem/mca/scoll/basic/scoll_basic_collect.c openmpi-4.1.4/oshmem/mca/scoll/basic/scoll_basic_collect.c --- openmpi-4.0.3/oshmem/mca/scoll/basic/scoll_basic_collect.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/basic/scoll_basic_collect.c 2022-05-29 09:51:40.000000000 +0000 @@ -155,7 +155,7 @@ { int rc = OSHMEM_SUCCESS; int i = 0; - int PE_root = oshmem_proc_pe(group->proc_array[0]); + int PE_root = oshmem_proc_pe_vpid(group, 0); SCOLL_VERBOSE(12, "[#%d] Collect algorithm: Central Counter (identical size)", @@ -174,7 +174,7 @@ group->my_pe); for (i = 0; (i < group->proc_count) && (rc == OSHMEM_SUCCESS); i++) { /* Get PE ID of a peer from the group */ - pe_cur = oshmem_proc_pe(group->proc_array[i]); + pe_cur = oshmem_proc_pe_vpid(group, i); if (pe_cur == group->my_pe) continue; @@ -221,7 +221,7 @@ int my_id = oshmem_proc_group_find_id(group, group->my_pe); int peer_id = 0; int peer_pe = 0; - int PE_root = oshmem_proc_pe(group->proc_array[0]); + int PE_root = oshmem_proc_pe_vpid(group, 0); SCOLL_VERBOSE(12, "[#%d] Collect algorithm: Tournament (identical size)", @@ -255,7 +255,7 @@ SCOLL_VERBOSE(14, "[#%d] round = %d wait", group->my_pe, round); rc = MCA_SPML_CALL(wait((void*)pSync, SHMEM_CMP_EQ, (void*)&value, SHMEM_LONG)); } else { - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); #if 1 /* It is ugly implementation of compare and swap operation Usage of this hack does not give performance improvement but @@ -294,7 +294,7 @@ for (peer_id = 1; (peer_id < group->proc_count) && (rc == OSHMEM_SUCCESS); peer_id++) { - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); rc = MCA_SPML_CALL(put(oshmem_ctx_default, (void*)pSync, sizeof(value), (void*)&value, peer_pe)); } } @@ -339,7 +339,7 @@ SCOLL_VERBOSE(15, "[#%d] pSync[0] = %ld", group->my_pe, pSync[0]); peer_id = (my_id + 1) % group->proc_count; - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); memcpy((void*) ((unsigned char*) target + my_id * nlong), (void *) source, nlong); @@ -420,13 +420,12 @@ /* I am in extra group, my partner is node (my_id-y) in basic group */ peer_id = my_id - floor2_proc; - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); for (i = 0; (i < group->proc_count) && (rc == OSHMEM_SUCCESS); i++) { if (i == my_id) continue; - - pe_cur = oshmem_proc_pe(group->proc_array[i]); + pe_cur = oshmem_proc_pe_vpid(group, i); SCOLL_VERBOSE(14, "[#%d] is extra send data to #%d", @@ -450,7 +449,7 @@ if ((group->proc_count - floor2_proc) > my_id) { /* I am in basic group, my partner is node (my_id+y) in extra group */ peer_id = my_id + floor2_proc; - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); SCOLL_VERBOSE(14, "[#%d] wait a signal from #%d", @@ -469,8 +468,7 @@ /* Update exit condition and round counter */ exit_flag >>= 1; round++; - - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); #if 1 /* It is ugly implementation of compare and swap operation Usage of this hack does not give performance improvement but @@ -507,7 +505,7 @@ if ((group->proc_count - floor2_proc) > my_id) { /* I am in basic group, my partner is node (my_id+y) in extra group */ peer_id = my_id + floor2_proc; - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); SCOLL_VERBOSE(14, "[#%d] is extra send data to #%d", @@ -542,7 +540,7 @@ int rc = OSHMEM_SUCCESS; size_t offset = 0; int i = 0; - int PE_root = oshmem_proc_pe(group->proc_array[0]); + int PE_root = oshmem_proc_pe_vpid(group, 0); SCOLL_VERBOSE(12, "[#%d] Collect algorithm: Central Counter (vary size)", @@ -573,7 +571,7 @@ for (i = 1; (i < group->proc_count) && (rc == OSHMEM_SUCCESS); i++) { if (wait_pe_array[i] == 0) { - pe_cur = oshmem_proc_pe(group->proc_array[i]); + pe_cur = oshmem_proc_pe_vpid(group, i); value = 0; rc = MCA_SPML_CALL(get(oshmem_ctx_default, (void*)pSync, sizeof(value), (void*)&value, pe_cur)); if ((rc == OSHMEM_SUCCESS) @@ -602,7 +600,7 @@ } /* Get PE ID of a peer from the group */ - pe_cur = oshmem_proc_pe(group->proc_array[i]); + pe_cur = oshmem_proc_pe_vpid(group, i); /* Get data from the current peer */ rc = MCA_SPML_CALL(get(oshmem_ctx_default, (void *)source, (size_t)wait_pe_array[i], (void*)((unsigned char*)target + offset), pe_cur)); diff -Nru openmpi-4.0.3/oshmem/mca/scoll/basic/scoll_basic_reduce.c openmpi-4.1.4/oshmem/mca/scoll/basic/scoll_basic_reduce.c --- openmpi-4.0.3/oshmem/mca/scoll/basic/scoll_basic_reduce.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/basic/scoll_basic_reduce.c 2022-05-29 09:51:40.000000000 +0000 @@ -186,7 +186,7 @@ { int rc = OSHMEM_SUCCESS; int i = 0; - int PE_root = oshmem_proc_pe(group->proc_array[0]); + int PE_root = oshmem_proc_pe_vpid(group, 0); SCOLL_VERBOSE(12, "[#%d] Reduce algorithm: Central Counter", group->my_pe); @@ -204,7 +204,7 @@ for (i = 0; (i < group->proc_count) && (rc == OSHMEM_SUCCESS); i++) { /* Get PE ID of a peer from the group */ - pe_cur = oshmem_proc_pe(group->proc_array[i]); + pe_cur = oshmem_proc_pe_vpid(group, i); if (pe_cur == group->my_pe) continue; @@ -265,7 +265,7 @@ int peer_id = 0; int peer_pe = 0; void *target_cur = NULL; - int PE_root = oshmem_proc_pe(group->proc_array[0]); + int PE_root = oshmem_proc_pe_vpid(group, 0); SCOLL_VERBOSE(12, "[#%d] Reduce algorithm: Tournament", group->my_pe); SCOLL_VERBOSE(15, "[#%d] pSync[0] = %ld", group->my_pe, pSync[0]); @@ -304,7 +304,7 @@ op->o_func.c_fn(target, target_cur, nlong / op->dt_size); } } else { - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); #if 1 /* It is ugly implementation of compare and swap operation Usage of this hack does not give performance improvement but @@ -345,7 +345,7 @@ for (peer_id = 1; (peer_id < group->proc_count) && (rc == OSHMEM_SUCCESS); peer_id++) { - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); rc = MCA_SPML_CALL(put(oshmem_ctx_default, (void*)pSync, sizeof(value), (void*)&value, peer_pe)); } } @@ -416,7 +416,7 @@ if (my_id >= floor2_proc) { /* I am in extra group, my partner is node (my_id-y) in basic group */ peer_id = my_id - floor2_proc; - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); /* Special procedure is needed in case target and source are the same */ if (source == target) { @@ -448,7 +448,7 @@ if ((group->proc_count - floor2_proc) > my_id) { /* I am in basic group, my partner is node (my_id+y) in extra group */ peer_id = my_id + floor2_proc; - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); /* Special procedure is needed in case target and source are the same */ if (source == target) { @@ -481,8 +481,7 @@ /* Update exit condition and round counter */ exit_flag >>= 1; round++; - - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); #if 1 /* It is ugly implementation of compare and swap operation Usage of this hack does not give performance improvement but @@ -524,7 +523,7 @@ if ((group->proc_count - floor2_proc) > my_id) { /* I am in basic group, my partner is node (my_id+y) in extra group */ peer_id = my_id + floor2_proc; - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); SCOLL_VERBOSE(14, "[#%d] is extra send data to #%d", @@ -566,7 +565,7 @@ rank = group->my_pe; size = group->proc_count; int root_id = size - 1; - int root_pe = oshmem_proc_pe(group->proc_array[root_id]); + int root_pe = oshmem_proc_pe_vpid(group, root_id); SCOLL_VERBOSE(12, "[#%d] Reduce algorithm: Basic", group->my_pe); @@ -592,7 +591,7 @@ memcpy(target, (void *) source, nlong); } else { peer_id = size - 1; - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); rc = MCA_SPML_CALL(recv(target, nlong, peer_pe)); } if (OSHMEM_SUCCESS != rc) { @@ -609,7 +608,7 @@ inbuf = (char*) source; } else { peer_id = i; - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); rc = MCA_SPML_CALL(recv(pml_buffer, nlong, peer_pe)); if (OSHMEM_SUCCESS != rc) { if (NULL != free_buffer) { @@ -671,7 +670,7 @@ int peer_id = 0; int peer_pe = 0; int root_id = 0; - int root_pe = oshmem_proc_pe(group->proc_array[root_id]); + int root_pe = oshmem_proc_pe_vpid(group, root_id); int dim = 0; /* Initialize */ @@ -719,7 +718,7 @@ if (vrank & mask) { peer_id = vrank & ~mask; peer_id = (peer_id + root_id) % size; - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); rc = MCA_SPML_CALL(send((void*)snd_buffer, nlong, peer_pe, MCA_SPML_BASE_PUT_STANDARD)); if (OSHMEM_SUCCESS != rc) { @@ -738,7 +737,7 @@ continue; } peer_id = (peer_id + root_id) % size; - peer_pe = oshmem_proc_pe(group->proc_array[peer_id]); + peer_pe = oshmem_proc_pe_vpid(group, peer_id); /* Most of the time (all except the first one for commutative * operations) we receive in the user provided buffer diff -Nru openmpi-4.0.3/oshmem/mca/scoll/fca/Makefile.in openmpi-4.1.4/oshmem/mca/scoll/fca/Makefile.in --- openmpi-4.0.3/oshmem/mca/scoll/fca/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/fca/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -113,6 +113,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -120,6 +122,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -143,6 +146,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -245,6 +249,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -252,6 +257,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -332,6 +338,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -354,9 +361,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -366,6 +377,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -386,6 +398,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -657,6 +670,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1477,6 +1493,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1509,9 +1529,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1532,6 +1561,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1616,9 +1646,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1679,6 +1706,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1692,6 +1722,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/scoll/Makefile.in openmpi-4.1.4/oshmem/mca/scoll/Makefile.in --- openmpi-4.0.3/oshmem/mca/scoll/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -648,6 +661,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1468,6 +1484,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1500,9 +1520,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1523,6 +1552,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1607,9 +1637,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1670,6 +1697,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1683,6 +1713,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/scoll/mpi/Makefile.in openmpi-4.1.4/oshmem/mca/scoll/mpi/Makefile.in --- openmpi-4.0.3/oshmem/mca/scoll/mpi/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/mpi/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -110,6 +110,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -117,6 +119,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -140,6 +143,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -242,6 +246,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -249,6 +254,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -329,6 +335,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -351,9 +358,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -363,6 +374,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -383,6 +395,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -652,6 +665,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1472,6 +1488,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1504,9 +1524,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1527,6 +1556,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1611,9 +1641,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1674,6 +1701,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1687,6 +1717,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/scoll/mpi/scoll_mpi_module.c openmpi-4.1.4/oshmem/mca/scoll/mpi/scoll_mpi_module.c --- openmpi-4.0.3/oshmem/mca/scoll/mpi/scoll_mpi_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/mpi/scoll_mpi_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -145,7 +145,7 @@ /* Fill the map "group_rank-to-world_rank" in order to create a new proc group */ for (i = 0; i < osh_group->proc_count; i++) { - ranks[i] = osh_group->proc_array[i]->super.proc_name.vpid; + ranks[i] = oshmem_proc_pe_vpid(osh_group, i); } OPAL_TIMING_ENV_NEXT(comm_query, "build_ranks"); diff -Nru openmpi-4.0.3/oshmem/mca/scoll/mpi/scoll_mpi_ops.c openmpi-4.1.4/oshmem/mca/scoll/mpi/scoll_mpi_ops.c --- openmpi-4.0.3/oshmem/mca/scoll/mpi/scoll_mpi_ops.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/mpi/scoll_mpi_ops.c 2022-05-29 09:51:40.000000000 +0000 @@ -226,11 +226,11 @@ MPI_COLL_VERBOSE(20,"RUNNING MPI REDUCE"); void *sbuf, *rbuf; mpi_module = (mca_scoll_mpi_module_t *) group->g_scoll.scoll_reduce_module; - sbuf = (void *) source; - rbuf = target; dtype = shmem_dtype_to_ompi_dtype(op); h_op = shmem_op_to_ompi_op(op->op); count = nlong/op->dt_size; + rbuf = target; + sbuf = (source == target) ? MPI_IN_PLACE : (void*)source; /* Do nothing on zero-length request */ if (OPAL_UNLIKELY(!nlong)) { diff -Nru openmpi-4.0.3/oshmem/mca/scoll/ucc/configure.m4 openmpi-4.1.4/oshmem/mca/scoll/ucc/configure.m4 --- openmpi-4.0.3/oshmem/mca/scoll/ucc/configure.m4 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/ucc/configure.m4 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,38 @@ +# -*- shell-script -*- +# +# +# Copyright (c) 2021 Mellanox Technologies. All rights reserved. +# Copyright (c) 2015 Research Organization for Information Science +# and Technology (RIST). All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + + +# MCA_scoll_ucc_CONFIG([action-if-can-compile], +# [action-if-cant-compile]) +# ------------------------------------------------ +AC_DEFUN([MCA_oshmem_scoll_ucc_CONFIG],[ + AC_CONFIG_FILES([oshmem/mca/scoll/ucc/Makefile]) + + OMPI_CHECK_UCC([scoll_ucc], + [scoll_ucc_happy="yes"], + [scoll_ucc_happy="no"]) + + AS_IF([test "$scoll_ucc_happy" = "yes"], + [scoll_ucc_WRAPPER_EXTRA_LDFLAGS="$scoll_ucc_LDFLAGS" + scoll_ucc_CPPFLAGS="$scoll_ucc_CPPFLAGS" + scoll_ucc_WRAPPER_EXTRA_LIBS="$scoll_ucc_LIBS" + $1], + [$2]) + + # substitute in the things needed to build ucc + AC_SUBST([scoll_ucc_CFLAGS]) + AC_SUBST([scoll_ucc_CPPFLAGS]) + AC_SUBST([scoll_ucc_LDFLAGS]) + AC_SUBST([scoll_ucc_LIBS]) +])dnl + diff -Nru openmpi-4.0.3/oshmem/mca/scoll/ucc/help-oshmem-scoll-ucc.txt openmpi-4.1.4/oshmem/mca/scoll/ucc/help-oshmem-scoll-ucc.txt --- openmpi-4.0.3/oshmem/mca/scoll/ucc/help-oshmem-scoll-ucc.txt 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/ucc/help-oshmem-scoll-ucc.txt 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,16 @@ +# +# Copyright (c) 2021 Mellanox Technologies, Inc. +# All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# +[module_enable:fatal] +scoll:ucc module reports issue during module enabling phase. +Try to use scoll:ucc component with anoter one +for example scoll:basic + + Error: %s +# diff -Nru openmpi-4.0.3/oshmem/mca/scoll/ucc/Makefile.am openmpi-4.1.4/oshmem/mca/scoll/ucc/Makefile.am --- openmpi-4.0.3/oshmem/mca/scoll/ucc/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/ucc/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,46 @@ +# Copyright (c) 2021 Mellanox Technologies, Inc. +# All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# +# + +dist_oshmemdata_DATA = \ + help-oshmem-scoll-ucc.txt + +AM_CPPFLAGS = $(scoll_ucc_CPPFLAGS) + +scoll_ucc_sources = \ + scoll_ucc.h \ + scoll_ucc_debug.h \ + scoll_ucc_dtypes.h \ + scoll_ucc_common.h \ + scoll_ucc_module.c \ + scoll_ucc_component.c \ + scoll_ucc_barrier.c \ + scoll_ucc_broadcast.c \ + scoll_ucc_reduce.c \ + scoll_ucc_collect.c \ + scoll_ucc_alltoall.c +if MCA_BUILD_oshmem_scoll_ucc_DSO +component_noinst = +component_install = mca_scoll_ucc.la +else +component_noinst = libmca_scoll_ucc.la +component_install = +endif + +mcacomponentdir = $(pkglibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_scoll_ucc_la_SOURCES = $(scoll_ucc_sources) +mca_scoll_ucc_la_LIBADD = $(top_builddir)/oshmem/liboshmem.la \ + $(scoll_ucc_LIBS) +mca_scoll_ucc_la_LDFLAGS = -module -avoid-version $(scoll_ucc_LDFLAGS) + +noinst_LTLIBRARIES = $(component_noinst) +libmca_scoll_ucc_la_SOURCES =$(scoll_ucc_sources) +libmca_scoll_ucc_la_LIBADD = $(scoll_ucc_LIBS) +libmca_scoll_ucc_la_LDFLAGS = -module -avoid-version $(scoll_ucc_LDFLAGS) diff -Nru openmpi-4.0.3/oshmem/mca/scoll/ucc/Makefile.in openmpi-4.1.4/oshmem/mca/scoll/ucc/Makefile.in --- openmpi-4.0.3/oshmem/mca/scoll/ucc/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/ucc/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,2153 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2021 Mellanox Technologies, Inc. +# All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# +# + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = oshmem/mca/scoll/ucc +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ + $(top_srcdir)/config/c_weak_symbols.m4 \ + $(top_srcdir)/config/libtool.m4 \ + $(top_srcdir)/config/ltoptions.m4 \ + $(top_srcdir)/config/ltsugar.m4 \ + $(top_srcdir)/config/ltversion.m4 \ + $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ + $(top_srcdir)/config/ompi_check_libfca.m4 \ + $(top_srcdir)/config/ompi_check_libhcoll.m4 \ + $(top_srcdir)/config/ompi_check_lustre.m4 \ + $(top_srcdir)/config/ompi_check_mxm.m4 \ + $(top_srcdir)/config/ompi_check_psm.m4 \ + $(top_srcdir)/config/ompi_check_psm2.m4 \ + $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ + $(top_srcdir)/config/ompi_check_ucx.m4 \ + $(top_srcdir)/config/ompi_config_files.m4 \ + $(top_srcdir)/config/ompi_configure_options.m4 \ + $(top_srcdir)/config/ompi_contrib.m4 \ + $(top_srcdir)/config/ompi_cxx_find_exception_flags.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_parameters.m4 \ + $(top_srcdir)/config/ompi_cxx_find_template_repository.m4 \ + $(top_srcdir)/config/ompi_cxx_have_exceptions.m4 \ + $(top_srcdir)/config/ompi_endpoint_tag.m4 \ + $(top_srcdir)/config/ompi_ext.m4 \ + $(top_srcdir)/config/ompi_find_mpi_aint_count_offset.m4 \ + $(top_srcdir)/config/ompi_fortran_check.m4 \ + $(top_srcdir)/config/ompi_fortran_check_abstract.m4 \ + $(top_srcdir)/config/ompi_fortran_check_asynchronous.m4 \ + $(top_srcdir)/config/ompi_fortran_check_bind_c.m4 \ + $(top_srcdir)/config/ompi_fortran_check_c_funloc.m4 \ + $(top_srcdir)/config/ompi_fortran_check_f08_assumed_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_ignore_tkr.m4 \ + $(top_srcdir)/config/ompi_fortran_check_interface.m4 \ + $(top_srcdir)/config/ompi_fortran_check_iso_fortran_env.m4 \ + $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ + $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ + $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ + $(top_srcdir)/config/ompi_fortran_check_private.m4 \ + $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ + $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ + $(top_srcdir)/config/ompi_fortran_check_real16_c_equiv.m4 \ + $(top_srcdir)/config/ompi_fortran_check_storage_size.m4 \ + $(top_srcdir)/config/ompi_fortran_check_type.m4 \ + $(top_srcdir)/config/ompi_fortran_check_use_only.m4 \ + $(top_srcdir)/config/ompi_fortran_find_ext_symbol_convention.m4 \ + $(top_srcdir)/config/ompi_fortran_find_module_include_flag.m4 \ + $(top_srcdir)/config/ompi_fortran_get_alignment.m4 \ + $(top_srcdir)/config/ompi_fortran_get_handle_max.m4 \ + $(top_srcdir)/config/ompi_fortran_get_kind_value.m4 \ + $(top_srcdir)/config/ompi_fortran_get_sizeof.m4 \ + $(top_srcdir)/config/ompi_fortran_get_value_true.m4 \ + $(top_srcdir)/config/ompi_interix.m4 \ + $(top_srcdir)/config/ompi_setup_contrib.m4 \ + $(top_srcdir)/config/ompi_setup_cxx.m4 \ + $(top_srcdir)/config/ompi_setup_fc.m4 \ + $(top_srcdir)/config/ompi_setup_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_ext.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_fortran.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_java.m4 \ + $(top_srcdir)/config/ompi_setup_mpi_profiling.m4 \ + $(top_srcdir)/config/opal_case_sensitive_fs_setup.m4 \ + $(top_srcdir)/config/opal_check_alps.m4 \ + $(top_srcdir)/config/opal_check_attributes.m4 \ + $(top_srcdir)/config/opal_check_broken_qsort.m4 \ + $(top_srcdir)/config/opal_check_cma.m4 \ + $(top_srcdir)/config/opal_check_compiler_version.m4 \ + $(top_srcdir)/config/opal_check_compiler_works.m4 \ + $(top_srcdir)/config/opal_check_cray_pmi.m4 \ + $(top_srcdir)/config/opal_check_cuda.m4 \ + $(top_srcdir)/config/opal_check_icc.m4 \ + $(top_srcdir)/config/opal_check_ident.m4 \ + $(top_srcdir)/config/opal_check_knem.m4 \ + $(top_srcdir)/config/opal_check_libnl.m4 \ + $(top_srcdir)/config/opal_check_offsetof.m4 \ + $(top_srcdir)/config/opal_check_ofi.m4 \ + $(top_srcdir)/config/opal_check_openfabrics.m4 \ + $(top_srcdir)/config/opal_check_os_flavors.m4 \ + $(top_srcdir)/config/opal_check_package.m4 \ + $(top_srcdir)/config/opal_check_pmi.m4 \ + $(top_srcdir)/config/opal_check_portals4.m4 \ + $(top_srcdir)/config/opal_check_ps.m4 \ + $(top_srcdir)/config/opal_check_pthread_pids.m4 \ + $(top_srcdir)/config/opal_check_singularity.m4 \ + $(top_srcdir)/config/opal_check_ugni.m4 \ + $(top_srcdir)/config/opal_check_vendor.m4 \ + $(top_srcdir)/config/opal_check_verbs.m4 \ + $(top_srcdir)/config/opal_check_visibility.m4 \ + $(top_srcdir)/config/opal_check_withdir.m4 \ + $(top_srcdir)/config/opal_check_xpmem.m4 \ + $(top_srcdir)/config/opal_config_asm.m4 \ + $(top_srcdir)/config/opal_config_files.m4 \ + $(top_srcdir)/config/opal_config_pthreads.m4 \ + $(top_srcdir)/config/opal_config_subdir.m4 \ + $(top_srcdir)/config/opal_config_subdir_args.m4 \ + $(top_srcdir)/config/opal_config_threads.m4 \ + $(top_srcdir)/config/opal_configure_options.m4 \ + $(top_srcdir)/config/opal_ensure_contains_optflags.m4 \ + $(top_srcdir)/config/opal_find_type.m4 \ + $(top_srcdir)/config/opal_functions.m4 \ + $(top_srcdir)/config/opal_lang_link_with_c.m4 \ + $(top_srcdir)/config/opal_load_platform.m4 \ + $(top_srcdir)/config/opal_mca.m4 \ + $(top_srcdir)/config/opal_save_version.m4 \ + $(top_srcdir)/config/opal_search_libs.m4 \ + $(top_srcdir)/config/opal_set_lib_prefix.m4 \ + $(top_srcdir)/config/opal_set_mca_prefix.m4 \ + $(top_srcdir)/config/opal_setup_cc.m4 \ + $(top_srcdir)/config/opal_setup_cli.m4 \ + $(top_srcdir)/config/opal_setup_cxx.m4 \ + $(top_srcdir)/config/opal_setup_ft.m4 \ + $(top_srcdir)/config/opal_setup_wrappers.m4 \ + $(top_srcdir)/config/opal_setup_zlib.m4 \ + $(top_srcdir)/config/opal_strip_optflags.m4 \ + $(top_srcdir)/config/opal_summary.m4 \ + $(top_srcdir)/config/opal_try_assemble.m4 \ + $(top_srcdir)/config/orte_check_lsf.m4 \ + $(top_srcdir)/config/orte_check_moab.m4 \ + $(top_srcdir)/config/orte_check_sge.m4 \ + $(top_srcdir)/config/orte_check_slurm.m4 \ + $(top_srcdir)/config/orte_check_tm.m4 \ + $(top_srcdir)/config/orte_config_files.m4 \ + $(top_srcdir)/config/orte_configure_options.m4 \ + $(top_srcdir)/config/orte_setup_debugger_flags.m4 \ + $(top_srcdir)/config/oshmem_config_files.m4 \ + $(top_srcdir)/config/oshmem_configure_options.m4 \ + $(top_srcdir)/config/oshmem_setup_profiling.m4 \ + $(top_srcdir)/config/pkg.m4 \ + $(top_srcdir)/config/autogen_found_items.m4 \ + $(top_srcdir)/opal/mca/backtrace/configure.m4 \ + $(top_srcdir)/opal/mca/dl/configure.m4 \ + $(top_srcdir)/opal/mca/event/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/configure.m4 \ + $(top_srcdir)/opal/mca/memcpy/configure.m4 \ + $(top_srcdir)/opal/mca/memory/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/configure.m4 \ + $(top_srcdir)/opal/mca/timer/configure.m4 \ + $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/common/sm/configure.m4 \ + $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ + $(top_srcdir)/opal/mca/common/verbs_usnic/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ + $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ + $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ + $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ + $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ + $(top_srcdir)/opal/mca/btl/smcuda/configure.m4 \ + $(top_srcdir)/opal/mca/btl/tcp/configure.m4 \ + $(top_srcdir)/opal/mca/btl/uct/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ugni/configure.m4 \ + $(top_srcdir)/opal/mca/btl/usnic/configure.m4 \ + $(top_srcdir)/opal/mca/btl/vader/configure.m4 \ + $(top_srcdir)/opal/mca/crs/self/configure.m4 \ + $(top_srcdir)/opal/mca/dl/dlopen/configure.m4 \ + $(top_srcdir)/opal/mca/dl/libltdl/configure.m4 \ + $(top_srcdir)/opal/mca/event/external/configure.m4 \ + $(top_srcdir)/opal/mca/event/libevent2022/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/external/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/configure.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_pkg.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_attributes.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_visibility.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_check_vendor.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_components.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/hwloc_internal.m4 \ + $(top_srcdir)/opal/mca/hwloc/hwloc201/hwloc/config/netloc.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/bsdx_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/linux_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/if/posix_ipv4/configure.m4 \ + $(top_srcdir)/opal/mca/if/solaris_ipv6/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/config/configure.m4 \ + $(top_srcdir)/opal/mca/installdirs/env/configure.m4 \ + $(top_srcdir)/opal/mca/memchecker/valgrind/configure.m4 \ + $(top_srcdir)/opal/mca/memory/malloc_solaris/configure.m4 \ + $(top_srcdir)/opal/mca/memory/patcher/configure.m4 \ + $(top_srcdir)/opal/mca/mpool/memkind/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/linux/configure.m4 \ + $(top_srcdir)/opal/mca/patcher/overwrite/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/cray/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext1x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext2x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/ext3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/flux/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/pmix3x/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s1/configure.m4 \ + $(top_srcdir)/opal/mca/pmix/s2/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/linux/configure.m4 \ + $(top_srcdir)/opal/mca/pstat/test/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/gpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/rgpusm/configure.m4 \ + $(top_srcdir)/opal/mca/rcache/udreg/configure.m4 \ + $(top_srcdir)/opal/mca/reachable/netlink/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/mmap/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/posix/configure.m4 \ + $(top_srcdir)/opal/mca/shmem/sysv/configure.m4 \ + $(top_srcdir)/opal/mca/timer/altix/configure.m4 \ + $(top_srcdir)/opal/mca/timer/darwin/configure.m4 \ + $(top_srcdir)/opal/mca/timer/linux/configure.m4 \ + $(top_srcdir)/opal/mca/timer/solaris/configure.m4 \ + $(top_srcdir)/orte/mca/common/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ess/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ess/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ess/tm/configure.m4 \ + $(top_srcdir)/orte/mca/odls/alps/configure.m4 \ + $(top_srcdir)/orte/mca/odls/default/configure.m4 \ + $(top_srcdir)/orte/mca/odls/pspawn/configure.m4 \ + $(top_srcdir)/orte/mca/oob/alps/configure.m4 \ + $(top_srcdir)/orte/mca/oob/tcp/configure.m4 \ + $(top_srcdir)/orte/mca/plm/alps/configure.m4 \ + $(top_srcdir)/orte/mca/plm/isolated/configure.m4 \ + $(top_srcdir)/orte/mca/plm/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/plm/rsh/configure.m4 \ + $(top_srcdir)/orte/mca/plm/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/plm/tm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/alps/configure.m4 \ + $(top_srcdir)/orte/mca/ras/gridengine/configure.m4 \ + $(top_srcdir)/orte/mca/ras/lsf/configure.m4 \ + $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ + $(top_srcdir)/orte/mca/snapc/full/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/central/configure.m4 \ + $(top_srcdir)/orte/mca/sstore/stage/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/configure.m4 \ + $(top_srcdir)/ompi/mca/fcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/configure.m4 \ + $(top_srcdir)/ompi/mca/hook/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/configure.m4 \ + $(top_srcdir)/ompi/mca/common/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/common/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/bml/r2/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/cuda/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/fca/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ + $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ + $(top_srcdir)/ompi/mca/io/ompio/configure.m4 \ + $(top_srcdir)/ompi/mca/io/romio321/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/ofi/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ + $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/rdma/configure.m4 \ + $(top_srcdir)/ompi/mca/osc/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/crcpw/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/monitoring/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ob1/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/ucx/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/v/configure.m4 \ + $(top_srcdir)/ompi/mca/pml/yalla/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/orte/configure.m4 \ + $(top_srcdir)/ompi/mca/rte/pmix/configure.m4 \ + $(top_srcdir)/ompi/mca/sharedfp/sm/configure.m4 \ + $(top_srcdir)/ompi/mca/topo/treematch/configure.m4 \ + $(top_srcdir)/oshmem/mca/memheap/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ + $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ + $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/sysv/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/ucx/configure.m4 \ + $(top_srcdir)/oshmem/mca/sshmem/verbs/configure.m4 \ + $(top_srcdir)/ompi/mpiext/affinity/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cr/configure.m4 \ + $(top_srcdir)/ompi/mpiext/cuda/configure.m4 \ + $(top_srcdir)/ompi/mpiext/pcollreq/configure.m4 \ + $(top_srcdir)/ompi/contrib/libompitrace/configure.m4 \ + $(top_srcdir)/config/opal_get_version.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(dist_oshmemdata_DATA) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/opal/include/opal_config.h \ + $(top_builddir)/ompi/include/mpi.h \ + $(top_builddir)/oshmem/include/shmem.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen/config.h \ + $(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen/config.h \ + $(top_builddir)/ompi/mpiext/cuda/c/mpiext_cuda_c.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(mcacomponentdir)" \ + "$(DESTDIR)$(oshmemdatadir)" +LTLIBRARIES = $(mcacomponent_LTLIBRARIES) $(noinst_LTLIBRARIES) +am__DEPENDENCIES_1 = +libmca_scoll_ucc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +am__objects_1 = scoll_ucc_module.lo scoll_ucc_component.lo \ + scoll_ucc_barrier.lo scoll_ucc_broadcast.lo \ + scoll_ucc_reduce.lo scoll_ucc_collect.lo scoll_ucc_alltoall.lo +am_libmca_scoll_ucc_la_OBJECTS = $(am__objects_1) +libmca_scoll_ucc_la_OBJECTS = $(am_libmca_scoll_ucc_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libmca_scoll_ucc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libmca_scoll_ucc_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +@MCA_BUILD_oshmem_scoll_ucc_DSO_FALSE@am_libmca_scoll_ucc_la_rpath = +mca_scoll_ucc_la_DEPENDENCIES = $(top_builddir)/oshmem/liboshmem.la \ + $(am__DEPENDENCIES_1) +am_mca_scoll_ucc_la_OBJECTS = $(am__objects_1) +mca_scoll_ucc_la_OBJECTS = $(am_mca_scoll_ucc_la_OBJECTS) +mca_scoll_ucc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(mca_scoll_ucc_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +@MCA_BUILD_oshmem_scoll_ucc_DSO_TRUE@am_mca_scoll_ucc_la_rpath = \ +@MCA_BUILD_oshmem_scoll_ucc_DSO_TRUE@ -rpath $(mcacomponentdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/opal/include -I$(top_builddir)/ompi/include -I$(top_builddir)/oshmem/include -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/private/autogen -I$(top_builddir)/opal/mca/hwloc/hwloc201/hwloc/include/hwloc/autogen -I$(top_builddir)/ompi/mpiext/cuda/c +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libmca_scoll_ucc_la_SOURCES) $(mca_scoll_ucc_la_SOURCES) +DIST_SOURCES = $(libmca_scoll_ucc_la_SOURCES) \ + $(mca_scoll_ucc_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(dist_oshmemdata_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/config/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMCA_PARAM_SETS_DIR = @AMCA_PARAM_SETS_DIR@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BASH = @BASH@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAGS_WITHOUT_OPTFLAGS = @CFLAGS_WITHOUT_OPTFLAGS@ +CLEANFILES = @CLEANFILES@ +CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CRAY_ALPSLLI_CFLAGS = @CRAY_ALPSLLI_CFLAGS@ +CRAY_ALPSLLI_LIBS = @CRAY_ALPSLLI_LIBS@ +CRAY_ALPSLLI_STATIC_LIBS = @CRAY_ALPSLLI_STATIC_LIBS@ +CRAY_ALPSUTIL_CFLAGS = @CRAY_ALPSUTIL_CFLAGS@ +CRAY_ALPSUTIL_LIBS = @CRAY_ALPSUTIL_LIBS@ +CRAY_ALPSUTIL_STATIC_LIBS = @CRAY_ALPSUTIL_STATIC_LIBS@ +CRAY_ALPS_CFLAGS = @CRAY_ALPS_CFLAGS@ +CRAY_ALPS_LIBS = @CRAY_ALPS_LIBS@ +CRAY_ALPS_STATIC_LIBS = @CRAY_ALPS_STATIC_LIBS@ +CRAY_PMI_CFLAGS = @CRAY_PMI_CFLAGS@ +CRAY_PMI_LIBS = @CRAY_PMI_LIBS@ +CRAY_PMI_STATIC_LIBS = @CRAY_PMI_STATIC_LIBS@ +CRAY_UDREG_CFLAGS = @CRAY_UDREG_CFLAGS@ +CRAY_UDREG_LIBS = @CRAY_UDREG_LIBS@ +CRAY_UGNI_CFLAGS = @CRAY_UGNI_CFLAGS@ +CRAY_UGNI_LIBS = @CRAY_UGNI_LIBS@ +CRAY_WLM_DETECT_CFLAGS = @CRAY_WLM_DETECT_CFLAGS@ +CRAY_WLM_DETECT_LIBS = @CRAY_WLM_DETECT_LIBS@ +CRAY_WLM_DETECT_STATIC_LIBS = @CRAY_WLM_DETECT_STATIC_LIBS@ +CRAY_XPMEM_CFLAGS = @CRAY_XPMEM_CFLAGS@ +CRAY_XPMEM_LIBS = @CRAY_XPMEM_LIBS@ +CRAY_XPMEM_STATIC_LIBS = @CRAY_XPMEM_STATIC_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXCPPFLAGS = @CXXCPPFLAGS@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEBUGGER_CFLAGS = @DEBUGGER_CFLAGS@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FC = @FC@ +FCFLAGS = @FCFLAGS@ +FCFLAGS_f = @FCFLAGS_f@ +FCFLAGS_f90 = @FCFLAGS_f90@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLUX_PMI_CFLAGS = @FLUX_PMI_CFLAGS@ +FLUX_PMI_LIBS = @FLUX_PMI_LIBS@ +GREP = @GREP@ +HWLOC_CFLAGS = @HWLOC_CFLAGS@ +HWLOC_CPPFLAGS = @HWLOC_CPPFLAGS@ +HWLOC_CUDA_LIBS = @HWLOC_CUDA_LIBS@ +HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@ +HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@ +HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@ +HWLOC_EMBEDDED_LIBS = @HWLOC_EMBEDDED_LIBS@ +HWLOC_GL_LIBS = @HWLOC_GL_LIBS@ +HWLOC_HAVE_LIBXML2 = @HWLOC_HAVE_LIBXML2@ +HWLOC_HAVE_NVML = @HWLOC_HAVE_NVML@ +HWLOC_HAVE_OPENCL = @HWLOC_HAVE_OPENCL@ +HWLOC_LDFLAGS = @HWLOC_LDFLAGS@ +HWLOC_LIBS = @HWLOC_LIBS@ +HWLOC_LIBS_PRIVATE = @HWLOC_LIBS_PRIVATE@ +HWLOC_LIBXML2_CFLAGS = @HWLOC_LIBXML2_CFLAGS@ +HWLOC_LIBXML2_LIBS = @HWLOC_LIBXML2_LIBS@ +HWLOC_MS_LIB = @HWLOC_MS_LIB@ +HWLOC_MS_LIB_ARCH = @HWLOC_MS_LIB_ARCH@ +HWLOC_NVML_LIBS = @HWLOC_NVML_LIBS@ +HWLOC_OPENCL_CFLAGS = @HWLOC_OPENCL_CFLAGS@ +HWLOC_OPENCL_LDFLAGS = @HWLOC_OPENCL_LDFLAGS@ +HWLOC_OPENCL_LIBS = @HWLOC_OPENCL_LIBS@ +HWLOC_PCIACCESS_CFLAGS = @HWLOC_PCIACCESS_CFLAGS@ +HWLOC_PCIACCESS_LIBS = @HWLOC_PCIACCESS_LIBS@ +HWLOC_PLUGINS_DIR = @HWLOC_PLUGINS_DIR@ +HWLOC_PLUGINS_PATH = @HWLOC_PLUGINS_PATH@ +HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@ +HWLOC_REQUIRES = @HWLOC_REQUIRES@ +HWLOC_VERSION = @HWLOC_VERSION@ +HWLOC_X11_CPPFLAGS = @HWLOC_X11_CPPFLAGS@ +HWLOC_X11_LIBS = @HWLOC_X11_LIBS@ +HWLOC_top_builddir = @HWLOC_top_builddir@ +HWLOC_top_srcdir = @HWLOC_top_srcdir@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JAR = @JAR@ +JAVAC = @JAVAC@ +JAVADOC = @JAVADOC@ +JAVAH = @JAVAH@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ +MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ +MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ +MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ +MCA_ompi_FRAMEWORKS_SUBDIRS = @MCA_ompi_FRAMEWORKS_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_ompi_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_ompi_FRAMEWORK_LIBS = @MCA_ompi_FRAMEWORK_LIBS@ +MCA_ompi_bml_ALL_COMPONENTS = @MCA_ompi_bml_ALL_COMPONENTS@ +MCA_ompi_bml_ALL_SUBDIRS = @MCA_ompi_bml_ALL_SUBDIRS@ +MCA_ompi_bml_DSO_COMPONENTS = @MCA_ompi_bml_DSO_COMPONENTS@ +MCA_ompi_bml_DSO_SUBDIRS = @MCA_ompi_bml_DSO_SUBDIRS@ +MCA_ompi_bml_STATIC_COMPONENTS = @MCA_ompi_bml_STATIC_COMPONENTS@ +MCA_ompi_bml_STATIC_LTLIBS = @MCA_ompi_bml_STATIC_LTLIBS@ +MCA_ompi_bml_STATIC_SUBDIRS = @MCA_ompi_bml_STATIC_SUBDIRS@ +MCA_ompi_coll_ALL_COMPONENTS = @MCA_ompi_coll_ALL_COMPONENTS@ +MCA_ompi_coll_ALL_SUBDIRS = @MCA_ompi_coll_ALL_SUBDIRS@ +MCA_ompi_coll_DSO_COMPONENTS = @MCA_ompi_coll_DSO_COMPONENTS@ +MCA_ompi_coll_DSO_SUBDIRS = @MCA_ompi_coll_DSO_SUBDIRS@ +MCA_ompi_coll_STATIC_COMPONENTS = @MCA_ompi_coll_STATIC_COMPONENTS@ +MCA_ompi_coll_STATIC_LTLIBS = @MCA_ompi_coll_STATIC_LTLIBS@ +MCA_ompi_coll_STATIC_SUBDIRS = @MCA_ompi_coll_STATIC_SUBDIRS@ +MCA_ompi_common_ALL_COMPONENTS = @MCA_ompi_common_ALL_COMPONENTS@ +MCA_ompi_common_ALL_SUBDIRS = @MCA_ompi_common_ALL_SUBDIRS@ +MCA_ompi_common_DSO_COMPONENTS = @MCA_ompi_common_DSO_COMPONENTS@ +MCA_ompi_common_DSO_SUBDIRS = @MCA_ompi_common_DSO_SUBDIRS@ +MCA_ompi_common_STATIC_COMPONENTS = @MCA_ompi_common_STATIC_COMPONENTS@ +MCA_ompi_common_STATIC_LTLIBS = @MCA_ompi_common_STATIC_LTLIBS@ +MCA_ompi_common_STATIC_SUBDIRS = @MCA_ompi_common_STATIC_SUBDIRS@ +MCA_ompi_crcp_ALL_COMPONENTS = @MCA_ompi_crcp_ALL_COMPONENTS@ +MCA_ompi_crcp_ALL_SUBDIRS = @MCA_ompi_crcp_ALL_SUBDIRS@ +MCA_ompi_crcp_DSO_COMPONENTS = @MCA_ompi_crcp_DSO_COMPONENTS@ +MCA_ompi_crcp_DSO_SUBDIRS = @MCA_ompi_crcp_DSO_SUBDIRS@ +MCA_ompi_crcp_STATIC_COMPONENTS = @MCA_ompi_crcp_STATIC_COMPONENTS@ +MCA_ompi_crcp_STATIC_LTLIBS = @MCA_ompi_crcp_STATIC_LTLIBS@ +MCA_ompi_crcp_STATIC_SUBDIRS = @MCA_ompi_crcp_STATIC_SUBDIRS@ +MCA_ompi_fbtl_ALL_COMPONENTS = @MCA_ompi_fbtl_ALL_COMPONENTS@ +MCA_ompi_fbtl_ALL_SUBDIRS = @MCA_ompi_fbtl_ALL_SUBDIRS@ +MCA_ompi_fbtl_DSO_COMPONENTS = @MCA_ompi_fbtl_DSO_COMPONENTS@ +MCA_ompi_fbtl_DSO_SUBDIRS = @MCA_ompi_fbtl_DSO_SUBDIRS@ +MCA_ompi_fbtl_STATIC_COMPONENTS = @MCA_ompi_fbtl_STATIC_COMPONENTS@ +MCA_ompi_fbtl_STATIC_LTLIBS = @MCA_ompi_fbtl_STATIC_LTLIBS@ +MCA_ompi_fbtl_STATIC_SUBDIRS = @MCA_ompi_fbtl_STATIC_SUBDIRS@ +MCA_ompi_fcoll_ALL_COMPONENTS = @MCA_ompi_fcoll_ALL_COMPONENTS@ +MCA_ompi_fcoll_ALL_SUBDIRS = @MCA_ompi_fcoll_ALL_SUBDIRS@ +MCA_ompi_fcoll_DSO_COMPONENTS = @MCA_ompi_fcoll_DSO_COMPONENTS@ +MCA_ompi_fcoll_DSO_SUBDIRS = @MCA_ompi_fcoll_DSO_SUBDIRS@ +MCA_ompi_fcoll_STATIC_COMPONENTS = @MCA_ompi_fcoll_STATIC_COMPONENTS@ +MCA_ompi_fcoll_STATIC_LTLIBS = @MCA_ompi_fcoll_STATIC_LTLIBS@ +MCA_ompi_fcoll_STATIC_SUBDIRS = @MCA_ompi_fcoll_STATIC_SUBDIRS@ +MCA_ompi_fs_ALL_COMPONENTS = @MCA_ompi_fs_ALL_COMPONENTS@ +MCA_ompi_fs_ALL_SUBDIRS = @MCA_ompi_fs_ALL_SUBDIRS@ +MCA_ompi_fs_DSO_COMPONENTS = @MCA_ompi_fs_DSO_COMPONENTS@ +MCA_ompi_fs_DSO_SUBDIRS = @MCA_ompi_fs_DSO_SUBDIRS@ +MCA_ompi_fs_STATIC_COMPONENTS = @MCA_ompi_fs_STATIC_COMPONENTS@ +MCA_ompi_fs_STATIC_LTLIBS = @MCA_ompi_fs_STATIC_LTLIBS@ +MCA_ompi_fs_STATIC_SUBDIRS = @MCA_ompi_fs_STATIC_SUBDIRS@ +MCA_ompi_hook_ALL_COMPONENTS = @MCA_ompi_hook_ALL_COMPONENTS@ +MCA_ompi_hook_ALL_SUBDIRS = @MCA_ompi_hook_ALL_SUBDIRS@ +MCA_ompi_hook_DSO_COMPONENTS = @MCA_ompi_hook_DSO_COMPONENTS@ +MCA_ompi_hook_DSO_SUBDIRS = @MCA_ompi_hook_DSO_SUBDIRS@ +MCA_ompi_hook_STATIC_COMPONENTS = @MCA_ompi_hook_STATIC_COMPONENTS@ +MCA_ompi_hook_STATIC_LTLIBS = @MCA_ompi_hook_STATIC_LTLIBS@ +MCA_ompi_hook_STATIC_SUBDIRS = @MCA_ompi_hook_STATIC_SUBDIRS@ +MCA_ompi_io_ALL_COMPONENTS = @MCA_ompi_io_ALL_COMPONENTS@ +MCA_ompi_io_ALL_SUBDIRS = @MCA_ompi_io_ALL_SUBDIRS@ +MCA_ompi_io_DSO_COMPONENTS = @MCA_ompi_io_DSO_COMPONENTS@ +MCA_ompi_io_DSO_SUBDIRS = @MCA_ompi_io_DSO_SUBDIRS@ +MCA_ompi_io_STATIC_COMPONENTS = @MCA_ompi_io_STATIC_COMPONENTS@ +MCA_ompi_io_STATIC_LTLIBS = @MCA_ompi_io_STATIC_LTLIBS@ +MCA_ompi_io_STATIC_SUBDIRS = @MCA_ompi_io_STATIC_SUBDIRS@ +MCA_ompi_mtl_ALL_COMPONENTS = @MCA_ompi_mtl_ALL_COMPONENTS@ +MCA_ompi_mtl_ALL_SUBDIRS = @MCA_ompi_mtl_ALL_SUBDIRS@ +MCA_ompi_mtl_DIRECT_CALL_HEADER = @MCA_ompi_mtl_DIRECT_CALL_HEADER@ +MCA_ompi_mtl_DSO_COMPONENTS = @MCA_ompi_mtl_DSO_COMPONENTS@ +MCA_ompi_mtl_DSO_SUBDIRS = @MCA_ompi_mtl_DSO_SUBDIRS@ +MCA_ompi_mtl_STATIC_COMPONENTS = @MCA_ompi_mtl_STATIC_COMPONENTS@ +MCA_ompi_mtl_STATIC_LTLIBS = @MCA_ompi_mtl_STATIC_LTLIBS@ +MCA_ompi_mtl_STATIC_SUBDIRS = @MCA_ompi_mtl_STATIC_SUBDIRS@ +MCA_ompi_op_ALL_COMPONENTS = @MCA_ompi_op_ALL_COMPONENTS@ +MCA_ompi_op_ALL_SUBDIRS = @MCA_ompi_op_ALL_SUBDIRS@ +MCA_ompi_op_DSO_COMPONENTS = @MCA_ompi_op_DSO_COMPONENTS@ +MCA_ompi_op_DSO_SUBDIRS = @MCA_ompi_op_DSO_SUBDIRS@ +MCA_ompi_op_STATIC_COMPONENTS = @MCA_ompi_op_STATIC_COMPONENTS@ +MCA_ompi_op_STATIC_LTLIBS = @MCA_ompi_op_STATIC_LTLIBS@ +MCA_ompi_op_STATIC_SUBDIRS = @MCA_ompi_op_STATIC_SUBDIRS@ +MCA_ompi_osc_ALL_COMPONENTS = @MCA_ompi_osc_ALL_COMPONENTS@ +MCA_ompi_osc_ALL_SUBDIRS = @MCA_ompi_osc_ALL_SUBDIRS@ +MCA_ompi_osc_DSO_COMPONENTS = @MCA_ompi_osc_DSO_COMPONENTS@ +MCA_ompi_osc_DSO_SUBDIRS = @MCA_ompi_osc_DSO_SUBDIRS@ +MCA_ompi_osc_STATIC_COMPONENTS = @MCA_ompi_osc_STATIC_COMPONENTS@ +MCA_ompi_osc_STATIC_LTLIBS = @MCA_ompi_osc_STATIC_LTLIBS@ +MCA_ompi_osc_STATIC_SUBDIRS = @MCA_ompi_osc_STATIC_SUBDIRS@ +MCA_ompi_pml_ALL_COMPONENTS = @MCA_ompi_pml_ALL_COMPONENTS@ +MCA_ompi_pml_ALL_SUBDIRS = @MCA_ompi_pml_ALL_SUBDIRS@ +MCA_ompi_pml_DIRECT_CALL_HEADER = @MCA_ompi_pml_DIRECT_CALL_HEADER@ +MCA_ompi_pml_DSO_COMPONENTS = @MCA_ompi_pml_DSO_COMPONENTS@ +MCA_ompi_pml_DSO_SUBDIRS = @MCA_ompi_pml_DSO_SUBDIRS@ +MCA_ompi_pml_STATIC_COMPONENTS = @MCA_ompi_pml_STATIC_COMPONENTS@ +MCA_ompi_pml_STATIC_LTLIBS = @MCA_ompi_pml_STATIC_LTLIBS@ +MCA_ompi_pml_STATIC_SUBDIRS = @MCA_ompi_pml_STATIC_SUBDIRS@ +MCA_ompi_rte_ALL_COMPONENTS = @MCA_ompi_rte_ALL_COMPONENTS@ +MCA_ompi_rte_ALL_SUBDIRS = @MCA_ompi_rte_ALL_SUBDIRS@ +MCA_ompi_rte_DSO_COMPONENTS = @MCA_ompi_rte_DSO_COMPONENTS@ +MCA_ompi_rte_DSO_SUBDIRS = @MCA_ompi_rte_DSO_SUBDIRS@ +MCA_ompi_rte_STATIC_COMPONENTS = @MCA_ompi_rte_STATIC_COMPONENTS@ +MCA_ompi_rte_STATIC_LTLIBS = @MCA_ompi_rte_STATIC_LTLIBS@ +MCA_ompi_rte_STATIC_SUBDIRS = @MCA_ompi_rte_STATIC_SUBDIRS@ +MCA_ompi_sharedfp_ALL_COMPONENTS = @MCA_ompi_sharedfp_ALL_COMPONENTS@ +MCA_ompi_sharedfp_ALL_SUBDIRS = @MCA_ompi_sharedfp_ALL_SUBDIRS@ +MCA_ompi_sharedfp_DSO_COMPONENTS = @MCA_ompi_sharedfp_DSO_COMPONENTS@ +MCA_ompi_sharedfp_DSO_SUBDIRS = @MCA_ompi_sharedfp_DSO_SUBDIRS@ +MCA_ompi_sharedfp_STATIC_COMPONENTS = @MCA_ompi_sharedfp_STATIC_COMPONENTS@ +MCA_ompi_sharedfp_STATIC_LTLIBS = @MCA_ompi_sharedfp_STATIC_LTLIBS@ +MCA_ompi_sharedfp_STATIC_SUBDIRS = @MCA_ompi_sharedfp_STATIC_SUBDIRS@ +MCA_ompi_topo_ALL_COMPONENTS = @MCA_ompi_topo_ALL_COMPONENTS@ +MCA_ompi_topo_ALL_SUBDIRS = @MCA_ompi_topo_ALL_SUBDIRS@ +MCA_ompi_topo_DSO_COMPONENTS = @MCA_ompi_topo_DSO_COMPONENTS@ +MCA_ompi_topo_DSO_SUBDIRS = @MCA_ompi_topo_DSO_SUBDIRS@ +MCA_ompi_topo_STATIC_COMPONENTS = @MCA_ompi_topo_STATIC_COMPONENTS@ +MCA_ompi_topo_STATIC_LTLIBS = @MCA_ompi_topo_STATIC_LTLIBS@ +MCA_ompi_topo_STATIC_SUBDIRS = @MCA_ompi_topo_STATIC_SUBDIRS@ +MCA_ompi_vprotocol_ALL_COMPONENTS = @MCA_ompi_vprotocol_ALL_COMPONENTS@ +MCA_ompi_vprotocol_ALL_SUBDIRS = @MCA_ompi_vprotocol_ALL_SUBDIRS@ +MCA_ompi_vprotocol_DSO_COMPONENTS = @MCA_ompi_vprotocol_DSO_COMPONENTS@ +MCA_ompi_vprotocol_DSO_SUBDIRS = @MCA_ompi_vprotocol_DSO_SUBDIRS@ +MCA_ompi_vprotocol_STATIC_COMPONENTS = @MCA_ompi_vprotocol_STATIC_COMPONENTS@ +MCA_ompi_vprotocol_STATIC_LTLIBS = @MCA_ompi_vprotocol_STATIC_LTLIBS@ +MCA_ompi_vprotocol_STATIC_SUBDIRS = @MCA_ompi_vprotocol_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORKS = @MCA_opal_FRAMEWORKS@ +MCA_opal_FRAMEWORKS_SUBDIRS = @MCA_opal_FRAMEWORKS_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_opal_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_opal_FRAMEWORK_LIBS = @MCA_opal_FRAMEWORK_LIBS@ +MCA_opal_allocator_ALL_COMPONENTS = @MCA_opal_allocator_ALL_COMPONENTS@ +MCA_opal_allocator_ALL_SUBDIRS = @MCA_opal_allocator_ALL_SUBDIRS@ +MCA_opal_allocator_DSO_COMPONENTS = @MCA_opal_allocator_DSO_COMPONENTS@ +MCA_opal_allocator_DSO_SUBDIRS = @MCA_opal_allocator_DSO_SUBDIRS@ +MCA_opal_allocator_STATIC_COMPONENTS = @MCA_opal_allocator_STATIC_COMPONENTS@ +MCA_opal_allocator_STATIC_LTLIBS = @MCA_opal_allocator_STATIC_LTLIBS@ +MCA_opal_allocator_STATIC_SUBDIRS = @MCA_opal_allocator_STATIC_SUBDIRS@ +MCA_opal_backtrace_ALL_COMPONENTS = @MCA_opal_backtrace_ALL_COMPONENTS@ +MCA_opal_backtrace_ALL_SUBDIRS = @MCA_opal_backtrace_ALL_SUBDIRS@ +MCA_opal_backtrace_DSO_COMPONENTS = @MCA_opal_backtrace_DSO_COMPONENTS@ +MCA_opal_backtrace_DSO_SUBDIRS = @MCA_opal_backtrace_DSO_SUBDIRS@ +MCA_opal_backtrace_STATIC_COMPONENTS = @MCA_opal_backtrace_STATIC_COMPONENTS@ +MCA_opal_backtrace_STATIC_LTLIBS = @MCA_opal_backtrace_STATIC_LTLIBS@ +MCA_opal_backtrace_STATIC_SUBDIRS = @MCA_opal_backtrace_STATIC_SUBDIRS@ +MCA_opal_btl_ALL_COMPONENTS = @MCA_opal_btl_ALL_COMPONENTS@ +MCA_opal_btl_ALL_SUBDIRS = @MCA_opal_btl_ALL_SUBDIRS@ +MCA_opal_btl_DSO_COMPONENTS = @MCA_opal_btl_DSO_COMPONENTS@ +MCA_opal_btl_DSO_SUBDIRS = @MCA_opal_btl_DSO_SUBDIRS@ +MCA_opal_btl_STATIC_COMPONENTS = @MCA_opal_btl_STATIC_COMPONENTS@ +MCA_opal_btl_STATIC_LTLIBS = @MCA_opal_btl_STATIC_LTLIBS@ +MCA_opal_btl_STATIC_SUBDIRS = @MCA_opal_btl_STATIC_SUBDIRS@ +MCA_opal_common_ALL_COMPONENTS = @MCA_opal_common_ALL_COMPONENTS@ +MCA_opal_common_ALL_SUBDIRS = @MCA_opal_common_ALL_SUBDIRS@ +MCA_opal_common_DSO_COMPONENTS = @MCA_opal_common_DSO_COMPONENTS@ +MCA_opal_common_DSO_SUBDIRS = @MCA_opal_common_DSO_SUBDIRS@ +MCA_opal_common_STATIC_COMPONENTS = @MCA_opal_common_STATIC_COMPONENTS@ +MCA_opal_common_STATIC_LTLIBS = @MCA_opal_common_STATIC_LTLIBS@ +MCA_opal_common_STATIC_SUBDIRS = @MCA_opal_common_STATIC_SUBDIRS@ +MCA_opal_compress_ALL_COMPONENTS = @MCA_opal_compress_ALL_COMPONENTS@ +MCA_opal_compress_ALL_SUBDIRS = @MCA_opal_compress_ALL_SUBDIRS@ +MCA_opal_compress_DSO_COMPONENTS = @MCA_opal_compress_DSO_COMPONENTS@ +MCA_opal_compress_DSO_SUBDIRS = @MCA_opal_compress_DSO_SUBDIRS@ +MCA_opal_compress_STATIC_COMPONENTS = @MCA_opal_compress_STATIC_COMPONENTS@ +MCA_opal_compress_STATIC_LTLIBS = @MCA_opal_compress_STATIC_LTLIBS@ +MCA_opal_compress_STATIC_SUBDIRS = @MCA_opal_compress_STATIC_SUBDIRS@ +MCA_opal_crs_ALL_COMPONENTS = @MCA_opal_crs_ALL_COMPONENTS@ +MCA_opal_crs_ALL_SUBDIRS = @MCA_opal_crs_ALL_SUBDIRS@ +MCA_opal_crs_DSO_COMPONENTS = @MCA_opal_crs_DSO_COMPONENTS@ +MCA_opal_crs_DSO_SUBDIRS = @MCA_opal_crs_DSO_SUBDIRS@ +MCA_opal_crs_STATIC_COMPONENTS = @MCA_opal_crs_STATIC_COMPONENTS@ +MCA_opal_crs_STATIC_LTLIBS = @MCA_opal_crs_STATIC_LTLIBS@ +MCA_opal_crs_STATIC_SUBDIRS = @MCA_opal_crs_STATIC_SUBDIRS@ +MCA_opal_dl_ALL_COMPONENTS = @MCA_opal_dl_ALL_COMPONENTS@ +MCA_opal_dl_ALL_SUBDIRS = @MCA_opal_dl_ALL_SUBDIRS@ +MCA_opal_dl_DSO_COMPONENTS = @MCA_opal_dl_DSO_COMPONENTS@ +MCA_opal_dl_DSO_SUBDIRS = @MCA_opal_dl_DSO_SUBDIRS@ +MCA_opal_dl_STATIC_COMPONENTS = @MCA_opal_dl_STATIC_COMPONENTS@ +MCA_opal_dl_STATIC_LTLIBS = @MCA_opal_dl_STATIC_LTLIBS@ +MCA_opal_dl_STATIC_SUBDIRS = @MCA_opal_dl_STATIC_SUBDIRS@ +MCA_opal_event_ALL_COMPONENTS = @MCA_opal_event_ALL_COMPONENTS@ +MCA_opal_event_ALL_SUBDIRS = @MCA_opal_event_ALL_SUBDIRS@ +MCA_opal_event_DSO_COMPONENTS = @MCA_opal_event_DSO_COMPONENTS@ +MCA_opal_event_DSO_SUBDIRS = @MCA_opal_event_DSO_SUBDIRS@ +MCA_opal_event_STATIC_COMPONENTS = @MCA_opal_event_STATIC_COMPONENTS@ +MCA_opal_event_STATIC_LTLIBS = @MCA_opal_event_STATIC_LTLIBS@ +MCA_opal_event_STATIC_SUBDIRS = @MCA_opal_event_STATIC_SUBDIRS@ +MCA_opal_hwloc_ALL_COMPONENTS = @MCA_opal_hwloc_ALL_COMPONENTS@ +MCA_opal_hwloc_ALL_SUBDIRS = @MCA_opal_hwloc_ALL_SUBDIRS@ +MCA_opal_hwloc_DSO_COMPONENTS = @MCA_opal_hwloc_DSO_COMPONENTS@ +MCA_opal_hwloc_DSO_SUBDIRS = @MCA_opal_hwloc_DSO_SUBDIRS@ +MCA_opal_hwloc_STATIC_COMPONENTS = @MCA_opal_hwloc_STATIC_COMPONENTS@ +MCA_opal_hwloc_STATIC_LTLIBS = @MCA_opal_hwloc_STATIC_LTLIBS@ +MCA_opal_hwloc_STATIC_SUBDIRS = @MCA_opal_hwloc_STATIC_SUBDIRS@ +MCA_opal_if_ALL_COMPONENTS = @MCA_opal_if_ALL_COMPONENTS@ +MCA_opal_if_ALL_SUBDIRS = @MCA_opal_if_ALL_SUBDIRS@ +MCA_opal_if_DSO_COMPONENTS = @MCA_opal_if_DSO_COMPONENTS@ +MCA_opal_if_DSO_SUBDIRS = @MCA_opal_if_DSO_SUBDIRS@ +MCA_opal_if_STATIC_COMPONENTS = @MCA_opal_if_STATIC_COMPONENTS@ +MCA_opal_if_STATIC_LTLIBS = @MCA_opal_if_STATIC_LTLIBS@ +MCA_opal_if_STATIC_SUBDIRS = @MCA_opal_if_STATIC_SUBDIRS@ +MCA_opal_installdirs_ALL_COMPONENTS = @MCA_opal_installdirs_ALL_COMPONENTS@ +MCA_opal_installdirs_ALL_SUBDIRS = @MCA_opal_installdirs_ALL_SUBDIRS@ +MCA_opal_installdirs_DSO_COMPONENTS = @MCA_opal_installdirs_DSO_COMPONENTS@ +MCA_opal_installdirs_DSO_SUBDIRS = @MCA_opal_installdirs_DSO_SUBDIRS@ +MCA_opal_installdirs_STATIC_COMPONENTS = @MCA_opal_installdirs_STATIC_COMPONENTS@ +MCA_opal_installdirs_STATIC_LTLIBS = @MCA_opal_installdirs_STATIC_LTLIBS@ +MCA_opal_installdirs_STATIC_SUBDIRS = @MCA_opal_installdirs_STATIC_SUBDIRS@ +MCA_opal_memchecker_ALL_COMPONENTS = @MCA_opal_memchecker_ALL_COMPONENTS@ +MCA_opal_memchecker_ALL_SUBDIRS = @MCA_opal_memchecker_ALL_SUBDIRS@ +MCA_opal_memchecker_DSO_COMPONENTS = @MCA_opal_memchecker_DSO_COMPONENTS@ +MCA_opal_memchecker_DSO_SUBDIRS = @MCA_opal_memchecker_DSO_SUBDIRS@ +MCA_opal_memchecker_STATIC_COMPONENTS = @MCA_opal_memchecker_STATIC_COMPONENTS@ +MCA_opal_memchecker_STATIC_LTLIBS = @MCA_opal_memchecker_STATIC_LTLIBS@ +MCA_opal_memchecker_STATIC_SUBDIRS = @MCA_opal_memchecker_STATIC_SUBDIRS@ +MCA_opal_memcpy_ALL_COMPONENTS = @MCA_opal_memcpy_ALL_COMPONENTS@ +MCA_opal_memcpy_ALL_SUBDIRS = @MCA_opal_memcpy_ALL_SUBDIRS@ +MCA_opal_memcpy_DSO_COMPONENTS = @MCA_opal_memcpy_DSO_COMPONENTS@ +MCA_opal_memcpy_DSO_SUBDIRS = @MCA_opal_memcpy_DSO_SUBDIRS@ +MCA_opal_memcpy_STATIC_COMPONENTS = @MCA_opal_memcpy_STATIC_COMPONENTS@ +MCA_opal_memcpy_STATIC_LTLIBS = @MCA_opal_memcpy_STATIC_LTLIBS@ +MCA_opal_memcpy_STATIC_SUBDIRS = @MCA_opal_memcpy_STATIC_SUBDIRS@ +MCA_opal_memory_ALL_COMPONENTS = @MCA_opal_memory_ALL_COMPONENTS@ +MCA_opal_memory_ALL_SUBDIRS = @MCA_opal_memory_ALL_SUBDIRS@ +MCA_opal_memory_DSO_COMPONENTS = @MCA_opal_memory_DSO_COMPONENTS@ +MCA_opal_memory_DSO_SUBDIRS = @MCA_opal_memory_DSO_SUBDIRS@ +MCA_opal_memory_STATIC_COMPONENTS = @MCA_opal_memory_STATIC_COMPONENTS@ +MCA_opal_memory_STATIC_LTLIBS = @MCA_opal_memory_STATIC_LTLIBS@ +MCA_opal_memory_STATIC_SUBDIRS = @MCA_opal_memory_STATIC_SUBDIRS@ +MCA_opal_mpool_ALL_COMPONENTS = @MCA_opal_mpool_ALL_COMPONENTS@ +MCA_opal_mpool_ALL_SUBDIRS = @MCA_opal_mpool_ALL_SUBDIRS@ +MCA_opal_mpool_DSO_COMPONENTS = @MCA_opal_mpool_DSO_COMPONENTS@ +MCA_opal_mpool_DSO_SUBDIRS = @MCA_opal_mpool_DSO_SUBDIRS@ +MCA_opal_mpool_STATIC_COMPONENTS = @MCA_opal_mpool_STATIC_COMPONENTS@ +MCA_opal_mpool_STATIC_LTLIBS = @MCA_opal_mpool_STATIC_LTLIBS@ +MCA_opal_mpool_STATIC_SUBDIRS = @MCA_opal_mpool_STATIC_SUBDIRS@ +MCA_opal_patcher_ALL_COMPONENTS = @MCA_opal_patcher_ALL_COMPONENTS@ +MCA_opal_patcher_ALL_SUBDIRS = @MCA_opal_patcher_ALL_SUBDIRS@ +MCA_opal_patcher_DSO_COMPONENTS = @MCA_opal_patcher_DSO_COMPONENTS@ +MCA_opal_patcher_DSO_SUBDIRS = @MCA_opal_patcher_DSO_SUBDIRS@ +MCA_opal_patcher_STATIC_COMPONENTS = @MCA_opal_patcher_STATIC_COMPONENTS@ +MCA_opal_patcher_STATIC_LTLIBS = @MCA_opal_patcher_STATIC_LTLIBS@ +MCA_opal_patcher_STATIC_SUBDIRS = @MCA_opal_patcher_STATIC_SUBDIRS@ +MCA_opal_pmix_ALL_COMPONENTS = @MCA_opal_pmix_ALL_COMPONENTS@ +MCA_opal_pmix_ALL_SUBDIRS = @MCA_opal_pmix_ALL_SUBDIRS@ +MCA_opal_pmix_DSO_COMPONENTS = @MCA_opal_pmix_DSO_COMPONENTS@ +MCA_opal_pmix_DSO_SUBDIRS = @MCA_opal_pmix_DSO_SUBDIRS@ +MCA_opal_pmix_STATIC_COMPONENTS = @MCA_opal_pmix_STATIC_COMPONENTS@ +MCA_opal_pmix_STATIC_LTLIBS = @MCA_opal_pmix_STATIC_LTLIBS@ +MCA_opal_pmix_STATIC_SUBDIRS = @MCA_opal_pmix_STATIC_SUBDIRS@ +MCA_opal_pstat_ALL_COMPONENTS = @MCA_opal_pstat_ALL_COMPONENTS@ +MCA_opal_pstat_ALL_SUBDIRS = @MCA_opal_pstat_ALL_SUBDIRS@ +MCA_opal_pstat_DSO_COMPONENTS = @MCA_opal_pstat_DSO_COMPONENTS@ +MCA_opal_pstat_DSO_SUBDIRS = @MCA_opal_pstat_DSO_SUBDIRS@ +MCA_opal_pstat_STATIC_COMPONENTS = @MCA_opal_pstat_STATIC_COMPONENTS@ +MCA_opal_pstat_STATIC_LTLIBS = @MCA_opal_pstat_STATIC_LTLIBS@ +MCA_opal_pstat_STATIC_SUBDIRS = @MCA_opal_pstat_STATIC_SUBDIRS@ +MCA_opal_rcache_ALL_COMPONENTS = @MCA_opal_rcache_ALL_COMPONENTS@ +MCA_opal_rcache_ALL_SUBDIRS = @MCA_opal_rcache_ALL_SUBDIRS@ +MCA_opal_rcache_DSO_COMPONENTS = @MCA_opal_rcache_DSO_COMPONENTS@ +MCA_opal_rcache_DSO_SUBDIRS = @MCA_opal_rcache_DSO_SUBDIRS@ +MCA_opal_rcache_STATIC_COMPONENTS = @MCA_opal_rcache_STATIC_COMPONENTS@ +MCA_opal_rcache_STATIC_LTLIBS = @MCA_opal_rcache_STATIC_LTLIBS@ +MCA_opal_rcache_STATIC_SUBDIRS = @MCA_opal_rcache_STATIC_SUBDIRS@ +MCA_opal_reachable_ALL_COMPONENTS = @MCA_opal_reachable_ALL_COMPONENTS@ +MCA_opal_reachable_ALL_SUBDIRS = @MCA_opal_reachable_ALL_SUBDIRS@ +MCA_opal_reachable_DSO_COMPONENTS = @MCA_opal_reachable_DSO_COMPONENTS@ +MCA_opal_reachable_DSO_SUBDIRS = @MCA_opal_reachable_DSO_SUBDIRS@ +MCA_opal_reachable_STATIC_COMPONENTS = @MCA_opal_reachable_STATIC_COMPONENTS@ +MCA_opal_reachable_STATIC_LTLIBS = @MCA_opal_reachable_STATIC_LTLIBS@ +MCA_opal_reachable_STATIC_SUBDIRS = @MCA_opal_reachable_STATIC_SUBDIRS@ +MCA_opal_shmem_ALL_COMPONENTS = @MCA_opal_shmem_ALL_COMPONENTS@ +MCA_opal_shmem_ALL_SUBDIRS = @MCA_opal_shmem_ALL_SUBDIRS@ +MCA_opal_shmem_DSO_COMPONENTS = @MCA_opal_shmem_DSO_COMPONENTS@ +MCA_opal_shmem_DSO_SUBDIRS = @MCA_opal_shmem_DSO_SUBDIRS@ +MCA_opal_shmem_STATIC_COMPONENTS = @MCA_opal_shmem_STATIC_COMPONENTS@ +MCA_opal_shmem_STATIC_LTLIBS = @MCA_opal_shmem_STATIC_LTLIBS@ +MCA_opal_shmem_STATIC_SUBDIRS = @MCA_opal_shmem_STATIC_SUBDIRS@ +MCA_opal_timer_ALL_COMPONENTS = @MCA_opal_timer_ALL_COMPONENTS@ +MCA_opal_timer_ALL_SUBDIRS = @MCA_opal_timer_ALL_SUBDIRS@ +MCA_opal_timer_DSO_COMPONENTS = @MCA_opal_timer_DSO_COMPONENTS@ +MCA_opal_timer_DSO_SUBDIRS = @MCA_opal_timer_DSO_SUBDIRS@ +MCA_opal_timer_STATIC_COMPONENTS = @MCA_opal_timer_STATIC_COMPONENTS@ +MCA_opal_timer_STATIC_LTLIBS = @MCA_opal_timer_STATIC_LTLIBS@ +MCA_opal_timer_STATIC_SUBDIRS = @MCA_opal_timer_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORKS = @MCA_orte_FRAMEWORKS@ +MCA_orte_FRAMEWORKS_SUBDIRS = @MCA_orte_FRAMEWORKS_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_orte_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_orte_FRAMEWORK_LIBS = @MCA_orte_FRAMEWORK_LIBS@ +MCA_orte_common_ALL_COMPONENTS = @MCA_orte_common_ALL_COMPONENTS@ +MCA_orte_common_ALL_SUBDIRS = @MCA_orte_common_ALL_SUBDIRS@ +MCA_orte_common_DSO_COMPONENTS = @MCA_orte_common_DSO_COMPONENTS@ +MCA_orte_common_DSO_SUBDIRS = @MCA_orte_common_DSO_SUBDIRS@ +MCA_orte_common_STATIC_COMPONENTS = @MCA_orte_common_STATIC_COMPONENTS@ +MCA_orte_common_STATIC_LTLIBS = @MCA_orte_common_STATIC_LTLIBS@ +MCA_orte_common_STATIC_SUBDIRS = @MCA_orte_common_STATIC_SUBDIRS@ +MCA_orte_errmgr_ALL_COMPONENTS = @MCA_orte_errmgr_ALL_COMPONENTS@ +MCA_orte_errmgr_ALL_SUBDIRS = @MCA_orte_errmgr_ALL_SUBDIRS@ +MCA_orte_errmgr_DSO_COMPONENTS = @MCA_orte_errmgr_DSO_COMPONENTS@ +MCA_orte_errmgr_DSO_SUBDIRS = @MCA_orte_errmgr_DSO_SUBDIRS@ +MCA_orte_errmgr_STATIC_COMPONENTS = @MCA_orte_errmgr_STATIC_COMPONENTS@ +MCA_orte_errmgr_STATIC_LTLIBS = @MCA_orte_errmgr_STATIC_LTLIBS@ +MCA_orte_errmgr_STATIC_SUBDIRS = @MCA_orte_errmgr_STATIC_SUBDIRS@ +MCA_orte_ess_ALL_COMPONENTS = @MCA_orte_ess_ALL_COMPONENTS@ +MCA_orte_ess_ALL_SUBDIRS = @MCA_orte_ess_ALL_SUBDIRS@ +MCA_orte_ess_DSO_COMPONENTS = @MCA_orte_ess_DSO_COMPONENTS@ +MCA_orte_ess_DSO_SUBDIRS = @MCA_orte_ess_DSO_SUBDIRS@ +MCA_orte_ess_STATIC_COMPONENTS = @MCA_orte_ess_STATIC_COMPONENTS@ +MCA_orte_ess_STATIC_LTLIBS = @MCA_orte_ess_STATIC_LTLIBS@ +MCA_orte_ess_STATIC_SUBDIRS = @MCA_orte_ess_STATIC_SUBDIRS@ +MCA_orte_filem_ALL_COMPONENTS = @MCA_orte_filem_ALL_COMPONENTS@ +MCA_orte_filem_ALL_SUBDIRS = @MCA_orte_filem_ALL_SUBDIRS@ +MCA_orte_filem_DSO_COMPONENTS = @MCA_orte_filem_DSO_COMPONENTS@ +MCA_orte_filem_DSO_SUBDIRS = @MCA_orte_filem_DSO_SUBDIRS@ +MCA_orte_filem_STATIC_COMPONENTS = @MCA_orte_filem_STATIC_COMPONENTS@ +MCA_orte_filem_STATIC_LTLIBS = @MCA_orte_filem_STATIC_LTLIBS@ +MCA_orte_filem_STATIC_SUBDIRS = @MCA_orte_filem_STATIC_SUBDIRS@ +MCA_orte_grpcomm_ALL_COMPONENTS = @MCA_orte_grpcomm_ALL_COMPONENTS@ +MCA_orte_grpcomm_ALL_SUBDIRS = @MCA_orte_grpcomm_ALL_SUBDIRS@ +MCA_orte_grpcomm_DSO_COMPONENTS = @MCA_orte_grpcomm_DSO_COMPONENTS@ +MCA_orte_grpcomm_DSO_SUBDIRS = @MCA_orte_grpcomm_DSO_SUBDIRS@ +MCA_orte_grpcomm_STATIC_COMPONENTS = @MCA_orte_grpcomm_STATIC_COMPONENTS@ +MCA_orte_grpcomm_STATIC_LTLIBS = @MCA_orte_grpcomm_STATIC_LTLIBS@ +MCA_orte_grpcomm_STATIC_SUBDIRS = @MCA_orte_grpcomm_STATIC_SUBDIRS@ +MCA_orte_iof_ALL_COMPONENTS = @MCA_orte_iof_ALL_COMPONENTS@ +MCA_orte_iof_ALL_SUBDIRS = @MCA_orte_iof_ALL_SUBDIRS@ +MCA_orte_iof_DSO_COMPONENTS = @MCA_orte_iof_DSO_COMPONENTS@ +MCA_orte_iof_DSO_SUBDIRS = @MCA_orte_iof_DSO_SUBDIRS@ +MCA_orte_iof_STATIC_COMPONENTS = @MCA_orte_iof_STATIC_COMPONENTS@ +MCA_orte_iof_STATIC_LTLIBS = @MCA_orte_iof_STATIC_LTLIBS@ +MCA_orte_iof_STATIC_SUBDIRS = @MCA_orte_iof_STATIC_SUBDIRS@ +MCA_orte_odls_ALL_COMPONENTS = @MCA_orte_odls_ALL_COMPONENTS@ +MCA_orte_odls_ALL_SUBDIRS = @MCA_orte_odls_ALL_SUBDIRS@ +MCA_orte_odls_DSO_COMPONENTS = @MCA_orte_odls_DSO_COMPONENTS@ +MCA_orte_odls_DSO_SUBDIRS = @MCA_orte_odls_DSO_SUBDIRS@ +MCA_orte_odls_STATIC_COMPONENTS = @MCA_orte_odls_STATIC_COMPONENTS@ +MCA_orte_odls_STATIC_LTLIBS = @MCA_orte_odls_STATIC_LTLIBS@ +MCA_orte_odls_STATIC_SUBDIRS = @MCA_orte_odls_STATIC_SUBDIRS@ +MCA_orte_oob_ALL_COMPONENTS = @MCA_orte_oob_ALL_COMPONENTS@ +MCA_orte_oob_ALL_SUBDIRS = @MCA_orte_oob_ALL_SUBDIRS@ +MCA_orte_oob_DSO_COMPONENTS = @MCA_orte_oob_DSO_COMPONENTS@ +MCA_orte_oob_DSO_SUBDIRS = @MCA_orte_oob_DSO_SUBDIRS@ +MCA_orte_oob_STATIC_COMPONENTS = @MCA_orte_oob_STATIC_COMPONENTS@ +MCA_orte_oob_STATIC_LTLIBS = @MCA_orte_oob_STATIC_LTLIBS@ +MCA_orte_oob_STATIC_SUBDIRS = @MCA_orte_oob_STATIC_SUBDIRS@ +MCA_orte_plm_ALL_COMPONENTS = @MCA_orte_plm_ALL_COMPONENTS@ +MCA_orte_plm_ALL_SUBDIRS = @MCA_orte_plm_ALL_SUBDIRS@ +MCA_orte_plm_DSO_COMPONENTS = @MCA_orte_plm_DSO_COMPONENTS@ +MCA_orte_plm_DSO_SUBDIRS = @MCA_orte_plm_DSO_SUBDIRS@ +MCA_orte_plm_STATIC_COMPONENTS = @MCA_orte_plm_STATIC_COMPONENTS@ +MCA_orte_plm_STATIC_LTLIBS = @MCA_orte_plm_STATIC_LTLIBS@ +MCA_orte_plm_STATIC_SUBDIRS = @MCA_orte_plm_STATIC_SUBDIRS@ +MCA_orte_ras_ALL_COMPONENTS = @MCA_orte_ras_ALL_COMPONENTS@ +MCA_orte_ras_ALL_SUBDIRS = @MCA_orte_ras_ALL_SUBDIRS@ +MCA_orte_ras_DSO_COMPONENTS = @MCA_orte_ras_DSO_COMPONENTS@ +MCA_orte_ras_DSO_SUBDIRS = @MCA_orte_ras_DSO_SUBDIRS@ +MCA_orte_ras_STATIC_COMPONENTS = @MCA_orte_ras_STATIC_COMPONENTS@ +MCA_orte_ras_STATIC_LTLIBS = @MCA_orte_ras_STATIC_LTLIBS@ +MCA_orte_ras_STATIC_SUBDIRS = @MCA_orte_ras_STATIC_SUBDIRS@ +MCA_orte_regx_ALL_COMPONENTS = @MCA_orte_regx_ALL_COMPONENTS@ +MCA_orte_regx_ALL_SUBDIRS = @MCA_orte_regx_ALL_SUBDIRS@ +MCA_orte_regx_DSO_COMPONENTS = @MCA_orte_regx_DSO_COMPONENTS@ +MCA_orte_regx_DSO_SUBDIRS = @MCA_orte_regx_DSO_SUBDIRS@ +MCA_orte_regx_STATIC_COMPONENTS = @MCA_orte_regx_STATIC_COMPONENTS@ +MCA_orte_regx_STATIC_LTLIBS = @MCA_orte_regx_STATIC_LTLIBS@ +MCA_orte_regx_STATIC_SUBDIRS = @MCA_orte_regx_STATIC_SUBDIRS@ +MCA_orte_rmaps_ALL_COMPONENTS = @MCA_orte_rmaps_ALL_COMPONENTS@ +MCA_orte_rmaps_ALL_SUBDIRS = @MCA_orte_rmaps_ALL_SUBDIRS@ +MCA_orte_rmaps_DSO_COMPONENTS = @MCA_orte_rmaps_DSO_COMPONENTS@ +MCA_orte_rmaps_DSO_SUBDIRS = @MCA_orte_rmaps_DSO_SUBDIRS@ +MCA_orte_rmaps_STATIC_COMPONENTS = @MCA_orte_rmaps_STATIC_COMPONENTS@ +MCA_orte_rmaps_STATIC_LTLIBS = @MCA_orte_rmaps_STATIC_LTLIBS@ +MCA_orte_rmaps_STATIC_SUBDIRS = @MCA_orte_rmaps_STATIC_SUBDIRS@ +MCA_orte_rml_ALL_COMPONENTS = @MCA_orte_rml_ALL_COMPONENTS@ +MCA_orte_rml_ALL_SUBDIRS = @MCA_orte_rml_ALL_SUBDIRS@ +MCA_orte_rml_DSO_COMPONENTS = @MCA_orte_rml_DSO_COMPONENTS@ +MCA_orte_rml_DSO_SUBDIRS = @MCA_orte_rml_DSO_SUBDIRS@ +MCA_orte_rml_STATIC_COMPONENTS = @MCA_orte_rml_STATIC_COMPONENTS@ +MCA_orte_rml_STATIC_LTLIBS = @MCA_orte_rml_STATIC_LTLIBS@ +MCA_orte_rml_STATIC_SUBDIRS = @MCA_orte_rml_STATIC_SUBDIRS@ +MCA_orte_routed_ALL_COMPONENTS = @MCA_orte_routed_ALL_COMPONENTS@ +MCA_orte_routed_ALL_SUBDIRS = @MCA_orte_routed_ALL_SUBDIRS@ +MCA_orte_routed_DSO_COMPONENTS = @MCA_orte_routed_DSO_COMPONENTS@ +MCA_orte_routed_DSO_SUBDIRS = @MCA_orte_routed_DSO_SUBDIRS@ +MCA_orte_routed_STATIC_COMPONENTS = @MCA_orte_routed_STATIC_COMPONENTS@ +MCA_orte_routed_STATIC_LTLIBS = @MCA_orte_routed_STATIC_LTLIBS@ +MCA_orte_routed_STATIC_SUBDIRS = @MCA_orte_routed_STATIC_SUBDIRS@ +MCA_orte_rtc_ALL_COMPONENTS = @MCA_orte_rtc_ALL_COMPONENTS@ +MCA_orte_rtc_ALL_SUBDIRS = @MCA_orte_rtc_ALL_SUBDIRS@ +MCA_orte_rtc_DSO_COMPONENTS = @MCA_orte_rtc_DSO_COMPONENTS@ +MCA_orte_rtc_DSO_SUBDIRS = @MCA_orte_rtc_DSO_SUBDIRS@ +MCA_orte_rtc_STATIC_COMPONENTS = @MCA_orte_rtc_STATIC_COMPONENTS@ +MCA_orte_rtc_STATIC_LTLIBS = @MCA_orte_rtc_STATIC_LTLIBS@ +MCA_orte_rtc_STATIC_SUBDIRS = @MCA_orte_rtc_STATIC_SUBDIRS@ +MCA_orte_schizo_ALL_COMPONENTS = @MCA_orte_schizo_ALL_COMPONENTS@ +MCA_orte_schizo_ALL_SUBDIRS = @MCA_orte_schizo_ALL_SUBDIRS@ +MCA_orte_schizo_DSO_COMPONENTS = @MCA_orte_schizo_DSO_COMPONENTS@ +MCA_orte_schizo_DSO_SUBDIRS = @MCA_orte_schizo_DSO_SUBDIRS@ +MCA_orte_schizo_STATIC_COMPONENTS = @MCA_orte_schizo_STATIC_COMPONENTS@ +MCA_orte_schizo_STATIC_LTLIBS = @MCA_orte_schizo_STATIC_LTLIBS@ +MCA_orte_schizo_STATIC_SUBDIRS = @MCA_orte_schizo_STATIC_SUBDIRS@ +MCA_orte_snapc_ALL_COMPONENTS = @MCA_orte_snapc_ALL_COMPONENTS@ +MCA_orte_snapc_ALL_SUBDIRS = @MCA_orte_snapc_ALL_SUBDIRS@ +MCA_orte_snapc_DSO_COMPONENTS = @MCA_orte_snapc_DSO_COMPONENTS@ +MCA_orte_snapc_DSO_SUBDIRS = @MCA_orte_snapc_DSO_SUBDIRS@ +MCA_orte_snapc_STATIC_COMPONENTS = @MCA_orte_snapc_STATIC_COMPONENTS@ +MCA_orte_snapc_STATIC_LTLIBS = @MCA_orte_snapc_STATIC_LTLIBS@ +MCA_orte_snapc_STATIC_SUBDIRS = @MCA_orte_snapc_STATIC_SUBDIRS@ +MCA_orte_sstore_ALL_COMPONENTS = @MCA_orte_sstore_ALL_COMPONENTS@ +MCA_orte_sstore_ALL_SUBDIRS = @MCA_orte_sstore_ALL_SUBDIRS@ +MCA_orte_sstore_DSO_COMPONENTS = @MCA_orte_sstore_DSO_COMPONENTS@ +MCA_orte_sstore_DSO_SUBDIRS = @MCA_orte_sstore_DSO_SUBDIRS@ +MCA_orte_sstore_STATIC_COMPONENTS = @MCA_orte_sstore_STATIC_COMPONENTS@ +MCA_orte_sstore_STATIC_LTLIBS = @MCA_orte_sstore_STATIC_LTLIBS@ +MCA_orte_sstore_STATIC_SUBDIRS = @MCA_orte_sstore_STATIC_SUBDIRS@ +MCA_orte_state_ALL_COMPONENTS = @MCA_orte_state_ALL_COMPONENTS@ +MCA_orte_state_ALL_SUBDIRS = @MCA_orte_state_ALL_SUBDIRS@ +MCA_orte_state_DSO_COMPONENTS = @MCA_orte_state_DSO_COMPONENTS@ +MCA_orte_state_DSO_SUBDIRS = @MCA_orte_state_DSO_SUBDIRS@ +MCA_orte_state_STATIC_COMPONENTS = @MCA_orte_state_STATIC_COMPONENTS@ +MCA_orte_state_STATIC_LTLIBS = @MCA_orte_state_STATIC_LTLIBS@ +MCA_orte_state_STATIC_SUBDIRS = @MCA_orte_state_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORKS = @MCA_oshmem_FRAMEWORKS@ +MCA_oshmem_FRAMEWORKS_SUBDIRS = @MCA_oshmem_FRAMEWORKS_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_ALL_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_DSO_SUBDIRS@ +MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS = @MCA_oshmem_FRAMEWORK_COMPONENT_STATIC_SUBDIRS@ +MCA_oshmem_FRAMEWORK_LIBS = @MCA_oshmem_FRAMEWORK_LIBS@ +MCA_oshmem_atomic_ALL_COMPONENTS = @MCA_oshmem_atomic_ALL_COMPONENTS@ +MCA_oshmem_atomic_ALL_SUBDIRS = @MCA_oshmem_atomic_ALL_SUBDIRS@ +MCA_oshmem_atomic_DSO_COMPONENTS = @MCA_oshmem_atomic_DSO_COMPONENTS@ +MCA_oshmem_atomic_DSO_SUBDIRS = @MCA_oshmem_atomic_DSO_SUBDIRS@ +MCA_oshmem_atomic_STATIC_COMPONENTS = @MCA_oshmem_atomic_STATIC_COMPONENTS@ +MCA_oshmem_atomic_STATIC_LTLIBS = @MCA_oshmem_atomic_STATIC_LTLIBS@ +MCA_oshmem_atomic_STATIC_SUBDIRS = @MCA_oshmem_atomic_STATIC_SUBDIRS@ +MCA_oshmem_memheap_ALL_COMPONENTS = @MCA_oshmem_memheap_ALL_COMPONENTS@ +MCA_oshmem_memheap_ALL_SUBDIRS = @MCA_oshmem_memheap_ALL_SUBDIRS@ +MCA_oshmem_memheap_DIRECT_CALL_HEADER = @MCA_oshmem_memheap_DIRECT_CALL_HEADER@ +MCA_oshmem_memheap_DSO_COMPONENTS = @MCA_oshmem_memheap_DSO_COMPONENTS@ +MCA_oshmem_memheap_DSO_SUBDIRS = @MCA_oshmem_memheap_DSO_SUBDIRS@ +MCA_oshmem_memheap_STATIC_COMPONENTS = @MCA_oshmem_memheap_STATIC_COMPONENTS@ +MCA_oshmem_memheap_STATIC_LTLIBS = @MCA_oshmem_memheap_STATIC_LTLIBS@ +MCA_oshmem_memheap_STATIC_SUBDIRS = @MCA_oshmem_memheap_STATIC_SUBDIRS@ +MCA_oshmem_scoll_ALL_COMPONENTS = @MCA_oshmem_scoll_ALL_COMPONENTS@ +MCA_oshmem_scoll_ALL_SUBDIRS = @MCA_oshmem_scoll_ALL_SUBDIRS@ +MCA_oshmem_scoll_DSO_COMPONENTS = @MCA_oshmem_scoll_DSO_COMPONENTS@ +MCA_oshmem_scoll_DSO_SUBDIRS = @MCA_oshmem_scoll_DSO_SUBDIRS@ +MCA_oshmem_scoll_STATIC_COMPONENTS = @MCA_oshmem_scoll_STATIC_COMPONENTS@ +MCA_oshmem_scoll_STATIC_LTLIBS = @MCA_oshmem_scoll_STATIC_LTLIBS@ +MCA_oshmem_scoll_STATIC_SUBDIRS = @MCA_oshmem_scoll_STATIC_SUBDIRS@ +MCA_oshmem_spml_ALL_COMPONENTS = @MCA_oshmem_spml_ALL_COMPONENTS@ +MCA_oshmem_spml_ALL_SUBDIRS = @MCA_oshmem_spml_ALL_SUBDIRS@ +MCA_oshmem_spml_DIRECT_CALL_HEADER = @MCA_oshmem_spml_DIRECT_CALL_HEADER@ +MCA_oshmem_spml_DSO_COMPONENTS = @MCA_oshmem_spml_DSO_COMPONENTS@ +MCA_oshmem_spml_DSO_SUBDIRS = @MCA_oshmem_spml_DSO_SUBDIRS@ +MCA_oshmem_spml_STATIC_COMPONENTS = @MCA_oshmem_spml_STATIC_COMPONENTS@ +MCA_oshmem_spml_STATIC_LTLIBS = @MCA_oshmem_spml_STATIC_LTLIBS@ +MCA_oshmem_spml_STATIC_SUBDIRS = @MCA_oshmem_spml_STATIC_SUBDIRS@ +MCA_oshmem_sshmem_ALL_COMPONENTS = @MCA_oshmem_sshmem_ALL_COMPONENTS@ +MCA_oshmem_sshmem_ALL_SUBDIRS = @MCA_oshmem_sshmem_ALL_SUBDIRS@ +MCA_oshmem_sshmem_DSO_COMPONENTS = @MCA_oshmem_sshmem_DSO_COMPONENTS@ +MCA_oshmem_sshmem_DSO_SUBDIRS = @MCA_oshmem_sshmem_DSO_SUBDIRS@ +MCA_oshmem_sshmem_STATIC_COMPONENTS = @MCA_oshmem_sshmem_STATIC_COMPONENTS@ +MCA_oshmem_sshmem_STATIC_LTLIBS = @MCA_oshmem_sshmem_STATIC_LTLIBS@ +MCA_oshmem_sshmem_STATIC_SUBDIRS = @MCA_oshmem_sshmem_STATIC_SUBDIRS@ +MKDIR_P = @MKDIR_P@ +MPIR_UNWIND_CFLAGS = @MPIR_UNWIND_CFLAGS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMPI_ALIGNMENT_FORTRAN_CHARACTER = @OMPI_ALIGNMENT_FORTRAN_CHARACTER@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX16 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX16@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX32 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX32@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX4 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX4@ +OMPI_ALIGNMENT_FORTRAN_COMPLEX8 = @OMPI_ALIGNMENT_FORTRAN_COMPLEX8@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_COMPLEX@ +OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION = @OMPI_ALIGNMENT_FORTRAN_DOUBLE_PRECISION@ +OMPI_ALIGNMENT_FORTRAN_INTEGER = @OMPI_ALIGNMENT_FORTRAN_INTEGER@ +OMPI_ALIGNMENT_FORTRAN_INTEGER1 = @OMPI_ALIGNMENT_FORTRAN_INTEGER1@ +OMPI_ALIGNMENT_FORTRAN_INTEGER16 = @OMPI_ALIGNMENT_FORTRAN_INTEGER16@ +OMPI_ALIGNMENT_FORTRAN_INTEGER2 = @OMPI_ALIGNMENT_FORTRAN_INTEGER2@ +OMPI_ALIGNMENT_FORTRAN_INTEGER4 = @OMPI_ALIGNMENT_FORTRAN_INTEGER4@ +OMPI_ALIGNMENT_FORTRAN_INTEGER8 = @OMPI_ALIGNMENT_FORTRAN_INTEGER8@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL = @OMPI_ALIGNMENT_FORTRAN_LOGICAL@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL1 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL1@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL2 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL2@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL4 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL4@ +OMPI_ALIGNMENT_FORTRAN_LOGICAL8 = @OMPI_ALIGNMENT_FORTRAN_LOGICAL8@ +OMPI_ALIGNMENT_FORTRAN_REAL = @OMPI_ALIGNMENT_FORTRAN_REAL@ +OMPI_ALIGNMENT_FORTRAN_REAL16 = @OMPI_ALIGNMENT_FORTRAN_REAL16@ +OMPI_ALIGNMENT_FORTRAN_REAL2 = @OMPI_ALIGNMENT_FORTRAN_REAL2@ +OMPI_ALIGNMENT_FORTRAN_REAL4 = @OMPI_ALIGNMENT_FORTRAN_REAL4@ +OMPI_ALIGNMENT_FORTRAN_REAL8 = @OMPI_ALIGNMENT_FORTRAN_REAL8@ +OMPI_CONTRIB_DIST_SUBDIRS = @OMPI_CONTRIB_DIST_SUBDIRS@ +OMPI_CONTRIB_SUBDIRS = @OMPI_CONTRIB_SUBDIRS@ +OMPI_CXX_ABSOLUTE = @OMPI_CXX_ABSOLUTE@ +OMPI_ENABLE_GREQUEST_EXTENSIONS = @OMPI_ENABLE_GREQUEST_EXTENSIONS@ +OMPI_ENABLE_MPI1_COMPAT = @OMPI_ENABLE_MPI1_COMPAT@ +OMPI_F08_SUFFIX = @OMPI_F08_SUFFIX@ +OMPI_FC = @OMPI_FC@ +OMPI_FC_ABSOLUTE = @OMPI_FC_ABSOLUTE@ +OMPI_FC_MODULE_FLAG = @OMPI_FC_MODULE_FLAG@ +OMPI_FORTRAN_BUILD_SIZEOF = @OMPI_FORTRAN_BUILD_SIZEOF@ +OMPI_FORTRAN_CAPS = @OMPI_FORTRAN_CAPS@ +OMPI_FORTRAN_CKINDS = @OMPI_FORTRAN_CKINDS@ +OMPI_FORTRAN_DOUBLE_UNDERSCORE = @OMPI_FORTRAN_DOUBLE_UNDERSCORE@ +OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS = @OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS@ +OMPI_FORTRAN_F08_PREDECL = @OMPI_FORTRAN_F08_PREDECL@ +OMPI_FORTRAN_F08_TYPE = @OMPI_FORTRAN_F08_TYPE@ +OMPI_FORTRAN_HAVE_ABSTRACT = @OMPI_FORTRAN_HAVE_ABSTRACT@ +OMPI_FORTRAN_HAVE_ASYNCHRONOUS = @OMPI_FORTRAN_HAVE_ASYNCHRONOUS@ +OMPI_FORTRAN_HAVE_BIND_C = @OMPI_FORTRAN_HAVE_BIND_C@ +OMPI_FORTRAN_HAVE_C_FUNLOC = @OMPI_FORTRAN_HAVE_C_FUNLOC@ +OMPI_FORTRAN_HAVE_INTERFACE = @OMPI_FORTRAN_HAVE_INTERFACE@ +OMPI_FORTRAN_HAVE_ISO_C_BINDING = @OMPI_FORTRAN_HAVE_ISO_C_BINDING@ +OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV = @OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV@ +OMPI_FORTRAN_HAVE_PRIVATE = @OMPI_FORTRAN_HAVE_PRIVATE@ +OMPI_FORTRAN_HAVE_PROCEDURE = @OMPI_FORTRAN_HAVE_PROCEDURE@ +OMPI_FORTRAN_HAVE_STORAGE_SIZE = @OMPI_FORTRAN_HAVE_STORAGE_SIZE@ +OMPI_FORTRAN_HAVE_USE_ONLY = @OMPI_FORTRAN_HAVE_USE_ONLY@ +OMPI_FORTRAN_IGNORE_TKR_PREDECL = @OMPI_FORTRAN_IGNORE_TKR_PREDECL@ +OMPI_FORTRAN_IGNORE_TKR_TYPE = @OMPI_FORTRAN_IGNORE_TKR_TYPE@ +OMPI_FORTRAN_IKINDS = @OMPI_FORTRAN_IKINDS@ +OMPI_FORTRAN_MAX_ARRAY_RANK = @OMPI_FORTRAN_MAX_ARRAY_RANK@ +OMPI_FORTRAN_NEED_WRAPPER_ROUTINES = @OMPI_FORTRAN_NEED_WRAPPER_ROUTINES@ +OMPI_FORTRAN_PLAIN = @OMPI_FORTRAN_PLAIN@ +OMPI_FORTRAN_RKINDS = @OMPI_FORTRAN_RKINDS@ +OMPI_FORTRAN_SINGLE_UNDERSCORE = @OMPI_FORTRAN_SINGLE_UNDERSCORE@ +OMPI_FORTRAN_STATUS_SIZE = @OMPI_FORTRAN_STATUS_SIZE@ +OMPI_FORTRAN_USEMPIF08_LIB = @OMPI_FORTRAN_USEMPIF08_LIB@ +OMPI_FORTRAN_USEMPI_DIR = @OMPI_FORTRAN_USEMPI_DIR@ +OMPI_FORTRAN_USEMPI_LIB = @OMPI_FORTRAN_USEMPI_LIB@ +OMPI_F_SUFFIX = @OMPI_F_SUFFIX@ +OMPI_GREEK_VERSION = @OMPI_GREEK_VERSION@ +OMPI_HAVE_FORTRAN_CHARACTER = @OMPI_HAVE_FORTRAN_CHARACTER@ +OMPI_HAVE_FORTRAN_COMPLEX = @OMPI_HAVE_FORTRAN_COMPLEX@ +OMPI_HAVE_FORTRAN_COMPLEX16 = @OMPI_HAVE_FORTRAN_COMPLEX16@ +OMPI_HAVE_FORTRAN_COMPLEX32 = @OMPI_HAVE_FORTRAN_COMPLEX32@ +OMPI_HAVE_FORTRAN_COMPLEX4 = @OMPI_HAVE_FORTRAN_COMPLEX4@ +OMPI_HAVE_FORTRAN_COMPLEX8 = @OMPI_HAVE_FORTRAN_COMPLEX8@ +OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX = @OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX@ +OMPI_HAVE_FORTRAN_DOUBLE_PRECISION = @OMPI_HAVE_FORTRAN_DOUBLE_PRECISION@ +OMPI_HAVE_FORTRAN_INTEGER = @OMPI_HAVE_FORTRAN_INTEGER@ +OMPI_HAVE_FORTRAN_INTEGER1 = @OMPI_HAVE_FORTRAN_INTEGER1@ +OMPI_HAVE_FORTRAN_INTEGER16 = @OMPI_HAVE_FORTRAN_INTEGER16@ +OMPI_HAVE_FORTRAN_INTEGER2 = @OMPI_HAVE_FORTRAN_INTEGER2@ +OMPI_HAVE_FORTRAN_INTEGER4 = @OMPI_HAVE_FORTRAN_INTEGER4@ +OMPI_HAVE_FORTRAN_INTEGER8 = @OMPI_HAVE_FORTRAN_INTEGER8@ +OMPI_HAVE_FORTRAN_LOGICAL = @OMPI_HAVE_FORTRAN_LOGICAL@ +OMPI_HAVE_FORTRAN_LOGICAL1 = @OMPI_HAVE_FORTRAN_LOGICAL1@ +OMPI_HAVE_FORTRAN_LOGICAL2 = @OMPI_HAVE_FORTRAN_LOGICAL2@ +OMPI_HAVE_FORTRAN_LOGICAL4 = @OMPI_HAVE_FORTRAN_LOGICAL4@ +OMPI_HAVE_FORTRAN_LOGICAL8 = @OMPI_HAVE_FORTRAN_LOGICAL8@ +OMPI_HAVE_FORTRAN_REAL = @OMPI_HAVE_FORTRAN_REAL@ +OMPI_HAVE_FORTRAN_REAL16 = @OMPI_HAVE_FORTRAN_REAL16@ +OMPI_HAVE_FORTRAN_REAL2 = @OMPI_HAVE_FORTRAN_REAL2@ +OMPI_HAVE_FORTRAN_REAL4 = @OMPI_HAVE_FORTRAN_REAL4@ +OMPI_HAVE_FORTRAN_REAL8 = @OMPI_HAVE_FORTRAN_REAL8@ +OMPI_JDK_CPPFLAGS = @OMPI_JDK_CPPFLAGS@ +OMPI_KIND_FORTRAN_CHARACTER = @OMPI_KIND_FORTRAN_CHARACTER@ +OMPI_KIND_FORTRAN_COMPLEX = @OMPI_KIND_FORTRAN_COMPLEX@ +OMPI_KIND_FORTRAN_COMPLEX16 = @OMPI_KIND_FORTRAN_COMPLEX16@ +OMPI_KIND_FORTRAN_COMPLEX32 = @OMPI_KIND_FORTRAN_COMPLEX32@ +OMPI_KIND_FORTRAN_COMPLEX4 = @OMPI_KIND_FORTRAN_COMPLEX4@ +OMPI_KIND_FORTRAN_COMPLEX8 = @OMPI_KIND_FORTRAN_COMPLEX8@ +OMPI_KIND_FORTRAN_DOUBLE_COMPLEX = @OMPI_KIND_FORTRAN_DOUBLE_COMPLEX@ +OMPI_KIND_FORTRAN_DOUBLE_PRECISION = @OMPI_KIND_FORTRAN_DOUBLE_PRECISION@ +OMPI_KIND_FORTRAN_INTEGER = @OMPI_KIND_FORTRAN_INTEGER@ +OMPI_KIND_FORTRAN_INTEGER1 = @OMPI_KIND_FORTRAN_INTEGER1@ +OMPI_KIND_FORTRAN_INTEGER16 = @OMPI_KIND_FORTRAN_INTEGER16@ +OMPI_KIND_FORTRAN_INTEGER2 = @OMPI_KIND_FORTRAN_INTEGER2@ +OMPI_KIND_FORTRAN_INTEGER4 = @OMPI_KIND_FORTRAN_INTEGER4@ +OMPI_KIND_FORTRAN_INTEGER8 = @OMPI_KIND_FORTRAN_INTEGER8@ +OMPI_KIND_FORTRAN_LOGICAL = @OMPI_KIND_FORTRAN_LOGICAL@ +OMPI_KIND_FORTRAN_LOGICAL1 = @OMPI_KIND_FORTRAN_LOGICAL1@ +OMPI_KIND_FORTRAN_LOGICAL2 = @OMPI_KIND_FORTRAN_LOGICAL2@ +OMPI_KIND_FORTRAN_LOGICAL4 = @OMPI_KIND_FORTRAN_LOGICAL4@ +OMPI_KIND_FORTRAN_LOGICAL8 = @OMPI_KIND_FORTRAN_LOGICAL8@ +OMPI_KIND_FORTRAN_REAL = @OMPI_KIND_FORTRAN_REAL@ +OMPI_KIND_FORTRAN_REAL16 = @OMPI_KIND_FORTRAN_REAL16@ +OMPI_KIND_FORTRAN_REAL2 = @OMPI_KIND_FORTRAN_REAL2@ +OMPI_KIND_FORTRAN_REAL4 = @OMPI_KIND_FORTRAN_REAL4@ +OMPI_KIND_FORTRAN_REAL8 = @OMPI_KIND_FORTRAN_REAL8@ +OMPI_LIBMPI_EXTRA_LDFLAGS = @OMPI_LIBMPI_EXTRA_LDFLAGS@ +OMPI_LIBMPI_EXTRA_LIBS = @OMPI_LIBMPI_EXTRA_LIBS@ +OMPI_LIBMPI_NAME = @OMPI_LIBMPI_NAME@ +OMPI_MAJOR_VERSION = @OMPI_MAJOR_VERSION@ +OMPI_MINOR_VERSION = @OMPI_MINOR_VERSION@ +OMPI_MPIEXT_ALL_SUBDIRS = @OMPI_MPIEXT_ALL_SUBDIRS@ +OMPI_MPIEXT_C_DIRS = @OMPI_MPIEXT_C_DIRS@ +OMPI_MPIEXT_C_LIBS = @OMPI_MPIEXT_C_LIBS@ +OMPI_MPIEXT_MPIFH_DIRS = @OMPI_MPIEXT_MPIFH_DIRS@ +OMPI_MPIEXT_MPIFH_LIBS = @OMPI_MPIEXT_MPIFH_LIBS@ +OMPI_MPIEXT_USEMPIF08_DIRS = @OMPI_MPIEXT_USEMPIF08_DIRS@ +OMPI_MPIEXT_USEMPIF08_LIBS = @OMPI_MPIEXT_USEMPIF08_LIBS@ +OMPI_MPIEXT_USEMPI_DIRS = @OMPI_MPIEXT_USEMPI_DIRS@ +OMPI_MPIEXT_USEMPI_LIBS = @OMPI_MPIEXT_USEMPI_LIBS@ +OMPI_MPI_ADDRESS_KIND = @OMPI_MPI_ADDRESS_KIND@ +OMPI_MPI_BIND_PREFIX = @OMPI_MPI_BIND_PREFIX@ +OMPI_MPI_COUNT_KIND = @OMPI_MPI_COUNT_KIND@ +OMPI_MPI_INTEGER_KIND = @OMPI_MPI_INTEGER_KIND@ +OMPI_MPI_OFFSET_KIND = @OMPI_MPI_OFFSET_KIND@ +OMPI_MPI_PREFIX = @OMPI_MPI_PREFIX@ +OMPI_PKG_CONFIG_LDFLAGS = @OMPI_PKG_CONFIG_LDFLAGS@ +OMPI_RELEASE_DATE = @OMPI_RELEASE_DATE@ +OMPI_RELEASE_VERSION = @OMPI_RELEASE_VERSION@ +OMPI_REPO_REV = @OMPI_REPO_REV@ +OMPI_SIZEOF_FORTRAN_CHARACTER = @OMPI_SIZEOF_FORTRAN_CHARACTER@ +OMPI_SIZEOF_FORTRAN_COMPLEX = @OMPI_SIZEOF_FORTRAN_COMPLEX@ +OMPI_SIZEOF_FORTRAN_COMPLEX16 = @OMPI_SIZEOF_FORTRAN_COMPLEX16@ +OMPI_SIZEOF_FORTRAN_COMPLEX32 = @OMPI_SIZEOF_FORTRAN_COMPLEX32@ +OMPI_SIZEOF_FORTRAN_COMPLEX4 = @OMPI_SIZEOF_FORTRAN_COMPLEX4@ +OMPI_SIZEOF_FORTRAN_COMPLEX8 = @OMPI_SIZEOF_FORTRAN_COMPLEX8@ +OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX = @OMPI_SIZEOF_FORTRAN_DOUBLE_COMPLEX@ +OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION = @OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION@ +OMPI_SIZEOF_FORTRAN_INTEGER = @OMPI_SIZEOF_FORTRAN_INTEGER@ +OMPI_SIZEOF_FORTRAN_INTEGER1 = @OMPI_SIZEOF_FORTRAN_INTEGER1@ +OMPI_SIZEOF_FORTRAN_INTEGER16 = @OMPI_SIZEOF_FORTRAN_INTEGER16@ +OMPI_SIZEOF_FORTRAN_INTEGER2 = @OMPI_SIZEOF_FORTRAN_INTEGER2@ +OMPI_SIZEOF_FORTRAN_INTEGER4 = @OMPI_SIZEOF_FORTRAN_INTEGER4@ +OMPI_SIZEOF_FORTRAN_INTEGER8 = @OMPI_SIZEOF_FORTRAN_INTEGER8@ +OMPI_SIZEOF_FORTRAN_LOGICAL = @OMPI_SIZEOF_FORTRAN_LOGICAL@ +OMPI_SIZEOF_FORTRAN_LOGICAL1 = @OMPI_SIZEOF_FORTRAN_LOGICAL1@ +OMPI_SIZEOF_FORTRAN_LOGICAL2 = @OMPI_SIZEOF_FORTRAN_LOGICAL2@ +OMPI_SIZEOF_FORTRAN_LOGICAL4 = @OMPI_SIZEOF_FORTRAN_LOGICAL4@ +OMPI_SIZEOF_FORTRAN_LOGICAL8 = @OMPI_SIZEOF_FORTRAN_LOGICAL8@ +OMPI_SIZEOF_FORTRAN_REAL = @OMPI_SIZEOF_FORTRAN_REAL@ +OMPI_SIZEOF_FORTRAN_REAL16 = @OMPI_SIZEOF_FORTRAN_REAL16@ +OMPI_SIZEOF_FORTRAN_REAL2 = @OMPI_SIZEOF_FORTRAN_REAL2@ +OMPI_SIZEOF_FORTRAN_REAL4 = @OMPI_SIZEOF_FORTRAN_REAL4@ +OMPI_SIZEOF_FORTRAN_REAL8 = @OMPI_SIZEOF_FORTRAN_REAL8@ +OMPI_TARBALL_VERSION = @OMPI_TARBALL_VERSION@ +OMPI_TOP_BUILDDIR = @OMPI_TOP_BUILDDIR@ +OMPI_TOP_SRCDIR = @OMPI_TOP_SRCDIR@ +OMPI_VERSION = @OMPI_VERSION@ +OMPI_WRAPPER_CXX_LIB = @OMPI_WRAPPER_CXX_LIB@ +OMPI_WRAPPER_CXX_REQUIRED_FILE = @OMPI_WRAPPER_CXX_REQUIRED_FILE@ +OMPI_WRAPPER_EXTRA_CFLAGS = @OMPI_WRAPPER_EXTRA_CFLAGS@ +OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_CPPFLAGS = @OMPI_WRAPPER_EXTRA_CPPFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS = @OMPI_WRAPPER_EXTRA_CXXFLAGS@ +OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FCFLAGS = @OMPI_WRAPPER_EXTRA_FCFLAGS@ +OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX = @OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX@ +OMPI_WRAPPER_EXTRA_FC_LDFLAGS = @OMPI_WRAPPER_EXTRA_FC_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LDFLAGS = @OMPI_WRAPPER_EXTRA_LDFLAGS@ +OMPI_WRAPPER_EXTRA_LIBS = @OMPI_WRAPPER_EXTRA_LIBS@ +OMPI_WRAPPER_FORTRAN_REQUIRED_FILE = @OMPI_WRAPPER_FORTRAN_REQUIRED_FILE@ +OMPI_WRAPPER_INCLUDEDIR = @OMPI_WRAPPER_INCLUDEDIR@ +OMPI_WRAPPER_LIBDIR = @OMPI_WRAPPER_LIBDIR@ +OPAL_ASM_GSYM = @OPAL_ASM_GSYM@ +OPAL_ASM_LSYM = @OPAL_ASM_LSYM@ +OPAL_ASM_SUPPORT_64BIT = @OPAL_ASM_SUPPORT_64BIT@ +OPAL_ASM_TEXT = @OPAL_ASM_TEXT@ +OPAL_ASM_TYPE = @OPAL_ASM_TYPE@ +OPAL_ASSEMBLY_ARCH = @OPAL_ASSEMBLY_ARCH@ +OPAL_ASSEMBLY_BUILTIN = @OPAL_ASSEMBLY_BUILTIN@ +OPAL_ASSEMBLY_FORMAT = @OPAL_ASSEMBLY_FORMAT@ +OPAL_AS_GLOBAL = @OPAL_AS_GLOBAL@ +OPAL_AS_LABEL_SUFFIX = @OPAL_AS_LABEL_SUFFIX@ +OPAL_CC_ABSOLUTE = @OPAL_CC_ABSOLUTE@ +OPAL_CONFIGURE_CLI = @OPAL_CONFIGURE_CLI@ +OPAL_CONFIGURE_DATE = @OPAL_CONFIGURE_DATE@ +OPAL_CONFIGURE_HOST = @OPAL_CONFIGURE_HOST@ +OPAL_CONFIGURE_USER = @OPAL_CONFIGURE_USER@ +OPAL_CXX_ABSOLUTE = @OPAL_CXX_ABSOLUTE@ +OPAL_DEFAULT_MCA_PARAM_CONF = @OPAL_DEFAULT_MCA_PARAM_CONF@ +OPAL_DYN_LIB_PREFIX = @OPAL_DYN_LIB_PREFIX@ +OPAL_DYN_LIB_SUFFIX = @OPAL_DYN_LIB_SUFFIX@ +OPAL_GREEK_VERSION = @OPAL_GREEK_VERSION@ +OPAL_LIB_PREFIX = @OPAL_LIB_PREFIX@ +OPAL_MAJOR_VERSION = @OPAL_MAJOR_VERSION@ +OPAL_MAX_DATAREP_STRING = @OPAL_MAX_DATAREP_STRING@ +OPAL_MAX_ERROR_STRING = @OPAL_MAX_ERROR_STRING@ +OPAL_MAX_INFO_KEY = @OPAL_MAX_INFO_KEY@ +OPAL_MAX_INFO_VAL = @OPAL_MAX_INFO_VAL@ +OPAL_MAX_OBJECT_NAME = @OPAL_MAX_OBJECT_NAME@ +OPAL_MAX_PORT_NAME = @OPAL_MAX_PORT_NAME@ +OPAL_MAX_PROCESSOR_NAME = @OPAL_MAX_PROCESSOR_NAME@ +OPAL_MINOR_VERSION = @OPAL_MINOR_VERSION@ +OPAL_PARAM_FROM_PLATFORM = @OPAL_PARAM_FROM_PLATFORM@ +OPAL_PKG_CONFIG_LDFLAGS = @OPAL_PKG_CONFIG_LDFLAGS@ +OPAL_RELEASE_DATE = @OPAL_RELEASE_DATE@ +OPAL_RELEASE_VERSION = @OPAL_RELEASE_VERSION@ +OPAL_REPO_REV = @OPAL_REPO_REV@ +OPAL_TARBALL_VERSION = @OPAL_TARBALL_VERSION@ +OPAL_TOP_BUILDDIR = @OPAL_TOP_BUILDDIR@ +OPAL_TOP_SRCDIR = @OPAL_TOP_SRCDIR@ +OPAL_VERSION = @OPAL_VERSION@ +OPAL_WRAPPER_EXTRA_CFLAGS = @OPAL_WRAPPER_EXTRA_CFLAGS@ +OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_CPPFLAGS = @OPAL_WRAPPER_EXTRA_CPPFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS = @OPAL_WRAPPER_EXTRA_CXXFLAGS@ +OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX = @OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX@ +OPAL_WRAPPER_EXTRA_LDFLAGS = @OPAL_WRAPPER_EXTRA_LDFLAGS@ +OPAL_WRAPPER_EXTRA_LIBS = @OPAL_WRAPPER_EXTRA_LIBS@ +ORTE_GREEK_VERSION = @ORTE_GREEK_VERSION@ +ORTE_LIB_PREFIX = @ORTE_LIB_PREFIX@ +ORTE_MAJOR_VERSION = @ORTE_MAJOR_VERSION@ +ORTE_MINOR_VERSION = @ORTE_MINOR_VERSION@ +ORTE_PKG_CONFIG_LDFLAGS = @ORTE_PKG_CONFIG_LDFLAGS@ +ORTE_RELEASE_DATE = @ORTE_RELEASE_DATE@ +ORTE_RELEASE_VERSION = @ORTE_RELEASE_VERSION@ +ORTE_REPO_REV = @ORTE_REPO_REV@ +ORTE_TARBALL_VERSION = @ORTE_TARBALL_VERSION@ +ORTE_TOP_BUILDDIR = @ORTE_TOP_BUILDDIR@ +ORTE_TOP_SRCDIR = @ORTE_TOP_SRCDIR@ +ORTE_VERSION = @ORTE_VERSION@ +ORTE_WRAPPER_EXTRA_CFLAGS = @ORTE_WRAPPER_EXTRA_CFLAGS@ +ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX = @ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX@ +ORTE_WRAPPER_EXTRA_CPPFLAGS = @ORTE_WRAPPER_EXTRA_CPPFLAGS@ +ORTE_WRAPPER_EXTRA_LDFLAGS = @ORTE_WRAPPER_EXTRA_LDFLAGS@ +ORTE_WRAPPER_EXTRA_LIBS = @ORTE_WRAPPER_EXTRA_LIBS@ +OSHMEM_GREEK_VERSION = @OSHMEM_GREEK_VERSION@ +OSHMEM_LIBSHMEM_EXTRA_LDFLAGS = @OSHMEM_LIBSHMEM_EXTRA_LDFLAGS@ +OSHMEM_LIBSHMEM_EXTRA_LIBS = @OSHMEM_LIBSHMEM_EXTRA_LIBS@ +OSHMEM_MAJOR_VERSION = @OSHMEM_MAJOR_VERSION@ +OSHMEM_MINOR_VERSION = @OSHMEM_MINOR_VERSION@ +OSHMEM_RELEASE_DATE = @OSHMEM_RELEASE_DATE@ +OSHMEM_RELEASE_VERSION = @OSHMEM_RELEASE_VERSION@ +OSHMEM_REPO_REV = @OSHMEM_REPO_REV@ +OSHMEM_TARBALL_VERSION = @OSHMEM_TARBALL_VERSION@ +OSHMEM_TOP_BUILDDIR = @OSHMEM_TOP_BUILDDIR@ +OSHMEM_TOP_SRCDIR = @OSHMEM_TOP_SRCDIR@ +OSHMEM_VERSION = @OSHMEM_VERSION@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +QRSH = @QRSH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SINGULARITY = @SINGULARITY@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WRAPPER_CC = @WRAPPER_CC@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_FC = @ac_ct_FC@ +ac_prefix_program = @ac_prefix_program@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +atomic_mxm_CFLAGS = @atomic_mxm_CFLAGS@ +atomic_mxm_CPPFLAGS = @atomic_mxm_CPPFLAGS@ +atomic_mxm_LDFLAGS = @atomic_mxm_LDFLAGS@ +atomic_mxm_LIBS = @atomic_mxm_LIBS@ +atomic_ucx_CFLAGS = @atomic_ucx_CFLAGS@ +atomic_ucx_CPPFLAGS = @atomic_ucx_CPPFLAGS@ +atomic_ucx_LDFLAGS = @atomic_ucx_LDFLAGS@ +atomic_ucx_LIBS = @atomic_ucx_LIBS@ +bindir = @bindir@ +btl_openib_CFLAGS = @btl_openib_CFLAGS@ +btl_openib_CPPFLAGS = @btl_openib_CPPFLAGS@ +btl_openib_LDFLAGS = @btl_openib_LDFLAGS@ +btl_openib_LIBS = @btl_openib_LIBS@ +btl_portals4_CPPFLAGS = @btl_portals4_CPPFLAGS@ +btl_portals4_LDFLAGS = @btl_portals4_LDFLAGS@ +btl_portals4_LIBS = @btl_portals4_LIBS@ +btl_uct_CPPFLAGS = @btl_uct_CPPFLAGS@ +btl_uct_LDFLAGS = @btl_uct_LDFLAGS@ +btl_uct_LIBS = @btl_uct_LIBS@ +btl_ugni_CPPFLAGS = @btl_ugni_CPPFLAGS@ +btl_ugni_LDFLAGS = @btl_ugni_LDFLAGS@ +btl_ugni_LIBS = @btl_ugni_LIBS@ +btl_vader_CFLAGS = @btl_vader_CFLAGS@ +btl_vader_CPPFLAGS = @btl_vader_CPPFLAGS@ +btl_vader_LDFLAGS = @btl_vader_LDFLAGS@ +btl_vader_LIBS = @btl_vader_LIBS@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +coll_fca_CFLAGS = @coll_fca_CFLAGS@ +coll_fca_CPPFLAGS = @coll_fca_CPPFLAGS@ +coll_fca_HOME = @coll_fca_HOME@ +coll_fca_LDFLAGS = @coll_fca_LDFLAGS@ +coll_fca_LIBS = @coll_fca_LIBS@ +coll_hcoll_CFLAGS = @coll_hcoll_CFLAGS@ +coll_hcoll_CPPFLAGS = @coll_hcoll_CPPFLAGS@ +coll_hcoll_LDFLAGS = @coll_hcoll_LDFLAGS@ +coll_hcoll_LIBS = @coll_hcoll_LIBS@ +coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ +coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ +coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ +common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ +common_alps_LDFLAGS = @common_alps_LDFLAGS@ +common_alps_LIBS = @common_alps_LIBS@ +common_cuda_CPPFLAGS = @common_cuda_CPPFLAGS@ +common_ucx_CFLAGS = @common_ucx_CFLAGS@ +common_ucx_CPPFLAGS = @common_ucx_CPPFLAGS@ +common_ucx_LDFLAGS = @common_ucx_LDFLAGS@ +common_ucx_LIBS = @common_ucx_LIBS@ +common_verbs_CFLAGS = @common_verbs_CFLAGS@ +common_verbs_CPPFLAGS = @common_verbs_CPPFLAGS@ +common_verbs_LDFLAGS = @common_verbs_LDFLAGS@ +common_verbs_LIBS = @common_verbs_LIBS@ +common_verbs_usnic_CPPFLAGS = @common_verbs_usnic_CPPFLAGS@ +common_verbs_usnic_LDFLAGS = @common_verbs_usnic_LDFLAGS@ +common_verbs_usnic_LIBS = @common_verbs_usnic_LIBS@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +ess_alps_CPPFLAGS = @ess_alps_CPPFLAGS@ +ess_alps_LDFLAGS = @ess_alps_LDFLAGS@ +ess_alps_LIBS = @ess_alps_LIBS@ +ess_lsf_CPPFLAGS = @ess_lsf_CPPFLAGS@ +ess_lsf_LDFLAGS = @ess_lsf_LDFLAGS@ +ess_lsf_LIBS = @ess_lsf_LIBS@ +ess_slurm_CPPFLAGS = @ess_slurm_CPPFLAGS@ +ess_slurm_LDFLAGS = @ess_slurm_LDFLAGS@ +ess_slurm_LIBS = @ess_slurm_LIBS@ +ess_tm_CPPFLAGS = @ess_tm_CPPFLAGS@ +ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ +ess_tm_LIBS = @ess_tm_LIBS@ +exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ +fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ +fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ +fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ +fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ +fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ +fs_lustre_LIBS = @fs_lustre_LIBS@ +fs_pvfs2_CPPFLAGS = @fs_pvfs2_CPPFLAGS@ +fs_pvfs2_LDFLAGS = @fs_pvfs2_LDFLAGS@ +fs_pvfs2_LIBS = @fs_pvfs2_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ +libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ +libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ +libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ +libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ +libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ +libmca_opal_common_verbs_so_version = @libmca_opal_common_verbs_so_version@ +libmca_orte_common_alps_so_version = @libmca_orte_common_alps_so_version@ +libmpi_cxx_so_version = @libmpi_cxx_so_version@ +libmpi_java_so_version = @libmpi_java_so_version@ +libmpi_mpifh_so_version = @libmpi_mpifh_so_version@ +libmpi_so_version = @libmpi_so_version@ +libmpi_usempi_ignore_tkr_so_version = @libmpi_usempi_ignore_tkr_so_version@ +libmpi_usempi_tkr_so_version = @libmpi_usempi_tkr_so_version@ +libmpi_usempif08_so_version = @libmpi_usempif08_so_version@ +libompitrace_so_version = @libompitrace_so_version@ +libopen_pal_so_version = @libopen_pal_so_version@ +libopen_rte_so_version = @libopen_rte_so_version@ +liboshmem_so_version = @liboshmem_so_version@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +memory_malloc_solaris_LIBS = @memory_malloc_solaris_LIBS@ +mkdir_p = @mkdir_p@ +mpool_memkind_CPPFLAGS = @mpool_memkind_CPPFLAGS@ +mpool_memkind_LDFLAGS = @mpool_memkind_LDFLAGS@ +mpool_memkind_LIBS = @mpool_memkind_LIBS@ +mtl_portals4_CPPFLAGS = @mtl_portals4_CPPFLAGS@ +mtl_portals4_LDFLAGS = @mtl_portals4_LDFLAGS@ +mtl_portals4_LIBS = @mtl_portals4_LIBS@ +mtl_psm2_CFLAGS = @mtl_psm2_CFLAGS@ +mtl_psm2_CPPFLAGS = @mtl_psm2_CPPFLAGS@ +mtl_psm2_LDFLAGS = @mtl_psm2_LDFLAGS@ +mtl_psm2_LIBS = @mtl_psm2_LIBS@ +mtl_psm_CFLAGS = @mtl_psm_CFLAGS@ +mtl_psm_CPPFLAGS = @mtl_psm_CPPFLAGS@ +mtl_psm_LDFLAGS = @mtl_psm_LDFLAGS@ +mtl_psm_LIBS = @mtl_psm_LIBS@ +odls_alps_CPPFLAGS = @odls_alps_CPPFLAGS@ +odls_alps_LDFLAGS = @odls_alps_LDFLAGS@ +odls_alps_LIBS = @odls_alps_LIBS@ +oldincludedir = @oldincludedir@ +ompidatadir = @ompidatadir@ +ompiincludedir = @ompiincludedir@ +ompilibdir = @ompilibdir@ +oob_alps_CPPFLAGS = @oob_alps_CPPFLAGS@ +oob_alps_LDFLAGS = @oob_alps_LDFLAGS@ +oob_alps_LIBS = @oob_alps_LIBS@ +opal_datatype_cuda_CPPFLAGS = @opal_datatype_cuda_CPPFLAGS@ +opal_dl_dlopen_LIBS = @opal_dl_dlopen_LIBS@ +opal_dl_libltdl_CPPFLAGS = @opal_dl_libltdl_CPPFLAGS@ +opal_dl_libltdl_LDFLAGS = @opal_dl_libltdl_LDFLAGS@ +opal_dl_libltdl_LIBS = @opal_dl_libltdl_LIBS@ +opal_event_external_CPPFLAGS = @opal_event_external_CPPFLAGS@ +opal_event_external_LDFLAGS = @opal_event_external_LDFLAGS@ +opal_event_external_LIBS = @opal_event_external_LIBS@ +opal_hwloc_external_LDFLAGS = @opal_hwloc_external_LDFLAGS@ +opal_hwloc_external_LIBS = @opal_hwloc_external_LIBS@ +opal_hwloc_hwloc201_CFLAGS = @opal_hwloc_hwloc201_CFLAGS@ +opal_hwloc_hwloc201_CPPFLAGS = @opal_hwloc_hwloc201_CPPFLAGS@ +opal_hwloc_hwloc201_LDFLAGS = @opal_hwloc_hwloc201_LDFLAGS@ +opal_hwloc_hwloc201_LIBS = @opal_hwloc_hwloc201_LIBS@ +opal_memchecker_valgrind_CPPFLAGS = @opal_memchecker_valgrind_CPPFLAGS@ +opal_ofi_CPPFLAGS = @opal_ofi_CPPFLAGS@ +opal_ofi_LDFLAGS = @opal_ofi_LDFLAGS@ +opal_ofi_LIBS = @opal_ofi_LIBS@ +opal_pmi1_CPPFLAGS = @opal_pmi1_CPPFLAGS@ +opal_pmi1_LDFLAGS = @opal_pmi1_LDFLAGS@ +opal_pmi1_LIBS = @opal_pmi1_LIBS@ +opal_pmi1_rpath = @opal_pmi1_rpath@ +opal_pmi2_CPPFLAGS = @opal_pmi2_CPPFLAGS@ +opal_pmi2_LDFLAGS = @opal_pmi2_LDFLAGS@ +opal_pmi2_LIBS = @opal_pmi2_LIBS@ +opal_pmi2_rpath = @opal_pmi2_rpath@ +opal_pmix_ext1x_CPPFLAGS = @opal_pmix_ext1x_CPPFLAGS@ +opal_pmix_ext1x_LDFLAGS = @opal_pmix_ext1x_LDFLAGS@ +opal_pmix_ext1x_LIBS = @opal_pmix_ext1x_LIBS@ +opal_pmix_ext2x_CPPFLAGS = @opal_pmix_ext2x_CPPFLAGS@ +opal_pmix_ext2x_LDFLAGS = @opal_pmix_ext2x_LDFLAGS@ +opal_pmix_ext2x_LIBS = @opal_pmix_ext2x_LIBS@ +opal_pmix_ext3x_CPPFLAGS = @opal_pmix_ext3x_CPPFLAGS@ +opal_pmix_ext3x_LDFLAGS = @opal_pmix_ext3x_LDFLAGS@ +opal_pmix_ext3x_LIBS = @opal_pmix_ext3x_LIBS@ +opal_pmix_pmix3x_CPPFLAGS = @opal_pmix_pmix3x_CPPFLAGS@ +opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ +opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ +opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ +opaldatadir = @opaldatadir@ +opalincludedir = @opalincludedir@ +opallibdir = @opallibdir@ +ortedatadir = @ortedatadir@ +orteincludedir = @orteincludedir@ +ortelibdir = @ortelibdir@ +osc_portals4_CPPFLAGS = @osc_portals4_CPPFLAGS@ +osc_portals4_LDFLAGS = @osc_portals4_LDFLAGS@ +osc_portals4_LIBS = @osc_portals4_LIBS@ +osc_ucx_CPPFLAGS = @osc_ucx_CPPFLAGS@ +osc_ucx_LDFLAGS = @osc_ucx_LDFLAGS@ +osc_ucx_LIBS = @osc_ucx_LIBS@ +oshmem_verbs_CFLAGS = @oshmem_verbs_CFLAGS@ +oshmem_verbs_CPPFLAGS = @oshmem_verbs_CPPFLAGS@ +oshmem_verbs_LDFLAGS = @oshmem_verbs_LDFLAGS@ +oshmem_verbs_LIBS = @oshmem_verbs_LIBS@ +oshmemdatadir = @oshmemdatadir@ +oshmemincludedir = @oshmemincludedir@ +oshmemlibdir = @oshmemlibdir@ +pdfdir = @pdfdir@ +plm_alps_CPPFLAGS = @plm_alps_CPPFLAGS@ +plm_alps_LDFLAGS = @plm_alps_LDFLAGS@ +plm_alps_LIBS = @plm_alps_LIBS@ +plm_lsf_CPPFLAGS = @plm_lsf_CPPFLAGS@ +plm_lsf_LDFLAGS = @plm_lsf_LDFLAGS@ +plm_lsf_LIBS = @plm_lsf_LIBS@ +plm_slurm_CPPFLAGS = @plm_slurm_CPPFLAGS@ +plm_slurm_LDFLAGS = @plm_slurm_LDFLAGS@ +plm_slurm_LIBS = @plm_slurm_LIBS@ +plm_tm_CPPFLAGS = @plm_tm_CPPFLAGS@ +plm_tm_LDFLAGS = @plm_tm_LDFLAGS@ +plm_tm_LIBS = @plm_tm_LIBS@ +pmix_alps_CPPFLAGS = @pmix_alps_CPPFLAGS@ +pmix_alps_LDFLAGS = @pmix_alps_LDFLAGS@ +pmix_alps_LIBS = @pmix_alps_LIBS@ +pmix_cray_CPPFLAGS = @pmix_cray_CPPFLAGS@ +pmix_cray_LDFLAGS = @pmix_cray_LDFLAGS@ +pmix_cray_LIBS = @pmix_cray_LIBS@ +pml_ucx_CPPFLAGS = @pml_ucx_CPPFLAGS@ +pml_ucx_LDFLAGS = @pml_ucx_LDFLAGS@ +pml_ucx_LIBS = @pml_ucx_LIBS@ +pml_yalla_CPPFLAGS = @pml_yalla_CPPFLAGS@ +pml_yalla_LDFLAGS = @pml_yalla_LDFLAGS@ +pml_yalla_LIBS = @pml_yalla_LIBS@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +ras_alps_CPPFLAGS = @ras_alps_CPPFLAGS@ +ras_lsf_CPPFLAGS = @ras_lsf_CPPFLAGS@ +ras_lsf_LDFLAGS = @ras_lsf_LDFLAGS@ +ras_lsf_LIBS = @ras_lsf_LIBS@ +ras_slurm_CPPFLAGS = @ras_slurm_CPPFLAGS@ +ras_slurm_LDFLAGS = @ras_slurm_LDFLAGS@ +ras_slurm_LIBS = @ras_slurm_LIBS@ +ras_tm_CPPFLAGS = @ras_tm_CPPFLAGS@ +ras_tm_LDFLAGS = @ras_tm_LDFLAGS@ +ras_tm_LIBS = @ras_tm_LIBS@ +rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ +rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ +rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ +sbindir = @sbindir@ +schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ +schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ +schizo_moab_LDFLAGS = @schizo_moab_LDFLAGS@ +schizo_moab_LIBS = @schizo_moab_LIBS@ +schizo_slurm_CPPFLAGS = @schizo_slurm_CPPFLAGS@ +schizo_slurm_LDFLAGS = @schizo_slurm_LDFLAGS@ +schizo_slurm_LIBS = @schizo_slurm_LIBS@ +scoll_fca_CFLAGS = @scoll_fca_CFLAGS@ +scoll_fca_CPPFLAGS = @scoll_fca_CPPFLAGS@ +scoll_fca_HOME = @scoll_fca_HOME@ +scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ +scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ +sharedstatedir = @sharedstatedir@ +spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ +spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ +spml_ikrit_LDFLAGS = @spml_ikrit_LDFLAGS@ +spml_ikrit_LIBS = @spml_ikrit_LIBS@ +spml_ucx_CFLAGS = @spml_ucx_CFLAGS@ +spml_ucx_CPPFLAGS = @spml_ucx_CPPFLAGS@ +spml_ucx_LDFLAGS = @spml_ucx_LDFLAGS@ +spml_ucx_LIBS = @spml_ucx_LIBS@ +srcdir = @srcdir@ +sshmem_ucx_CFLAGS = @sshmem_ucx_CFLAGS@ +sshmem_ucx_CPPFLAGS = @sshmem_ucx_CPPFLAGS@ +sshmem_ucx_LDFLAGS = @sshmem_ucx_LDFLAGS@ +sshmem_ucx_LIBS = @sshmem_ucx_LIBS@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ucx_CFLAGS = @ucx_CFLAGS@ +ucx_LIBS = @ucx_LIBS@ +ucx_STATIC_LIBS = @ucx_STATIC_LIBS@ +dist_oshmemdata_DATA = \ + help-oshmem-scoll-ucc.txt + +AM_CPPFLAGS = $(scoll_ucc_CPPFLAGS) +scoll_ucc_sources = \ + scoll_ucc.h \ + scoll_ucc_debug.h \ + scoll_ucc_dtypes.h \ + scoll_ucc_common.h \ + scoll_ucc_module.c \ + scoll_ucc_component.c \ + scoll_ucc_barrier.c \ + scoll_ucc_broadcast.c \ + scoll_ucc_reduce.c \ + scoll_ucc_collect.c \ + scoll_ucc_alltoall.c + +@MCA_BUILD_oshmem_scoll_ucc_DSO_FALSE@component_noinst = libmca_scoll_ucc.la +@MCA_BUILD_oshmem_scoll_ucc_DSO_TRUE@component_noinst = +@MCA_BUILD_oshmem_scoll_ucc_DSO_FALSE@component_install = +@MCA_BUILD_oshmem_scoll_ucc_DSO_TRUE@component_install = mca_scoll_ucc.la +mcacomponentdir = $(pkglibdir) +mcacomponent_LTLIBRARIES = $(component_install) +mca_scoll_ucc_la_SOURCES = $(scoll_ucc_sources) +mca_scoll_ucc_la_LIBADD = $(top_builddir)/oshmem/liboshmem.la \ + $(scoll_ucc_LIBS) + +mca_scoll_ucc_la_LDFLAGS = -module -avoid-version $(scoll_ucc_LDFLAGS) +noinst_LTLIBRARIES = $(component_noinst) +libmca_scoll_ucc_la_SOURCES = $(scoll_ucc_sources) +libmca_scoll_ucc_la_LIBADD = $(scoll_ucc_LIBS) +libmca_scoll_ucc_la_LDFLAGS = -module -avoid-version $(scoll_ucc_LDFLAGS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign oshmem/mca/scoll/ucc/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign oshmem/mca/scoll/ucc/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-mcacomponentLTLIBRARIES: $(mcacomponent_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(mcacomponentdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(mcacomponentdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(mcacomponentdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(mcacomponentdir)"; \ + } + +uninstall-mcacomponentLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(mcacomponent_LTLIBRARIES)'; test -n "$(mcacomponentdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(mcacomponentdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(mcacomponentdir)/$$f"; \ + done + +clean-mcacomponentLTLIBRARIES: + -test -z "$(mcacomponent_LTLIBRARIES)" || rm -f $(mcacomponent_LTLIBRARIES) + @list='$(mcacomponent_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libmca_scoll_ucc.la: $(libmca_scoll_ucc_la_OBJECTS) $(libmca_scoll_ucc_la_DEPENDENCIES) $(EXTRA_libmca_scoll_ucc_la_DEPENDENCIES) + $(AM_V_CCLD)$(libmca_scoll_ucc_la_LINK) $(am_libmca_scoll_ucc_la_rpath) $(libmca_scoll_ucc_la_OBJECTS) $(libmca_scoll_ucc_la_LIBADD) $(LIBS) + +mca_scoll_ucc.la: $(mca_scoll_ucc_la_OBJECTS) $(mca_scoll_ucc_la_DEPENDENCIES) $(EXTRA_mca_scoll_ucc_la_DEPENDENCIES) + $(AM_V_CCLD)$(mca_scoll_ucc_la_LINK) $(am_mca_scoll_ucc_la_rpath) $(mca_scoll_ucc_la_OBJECTS) $(mca_scoll_ucc_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scoll_ucc_alltoall.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scoll_ucc_barrier.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scoll_ucc_broadcast.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scoll_ucc_collect.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scoll_ucc_component.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scoll_ucc_module.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scoll_ucc_reduce.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-dist_oshmemdataDATA: $(dist_oshmemdata_DATA) + @$(NORMAL_INSTALL) + @list='$(dist_oshmemdata_DATA)'; test -n "$(oshmemdatadir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(oshmemdatadir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(oshmemdatadir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(oshmemdatadir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(oshmemdatadir)" || exit $$?; \ + done + +uninstall-dist_oshmemdataDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_oshmemdata_DATA)'; test -n "$(oshmemdatadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(oshmemdatadir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(DATA) +installdirs: + for dir in "$(DESTDIR)$(mcacomponentdir)" "$(DESTDIR)$(oshmemdatadir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-dist_oshmemdataDATA \ + install-mcacomponentLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-dist_oshmemdataDATA \ + uninstall-mcacomponentLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-mcacomponentLTLIBRARIES \ + clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-dist_oshmemdataDATA install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man \ + install-mcacomponentLTLIBRARIES install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-dist_oshmemdataDATA \ + uninstall-mcacomponentLTLIBRARIES + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_alltoall.c openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_alltoall.c --- openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_alltoall.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_alltoall.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,94 @@ +/** + Copyright (c) 2021 Mellanox Technologies. All rights reserved. + $COPYRIGHT$ + + Additional copyrights may follow + + $HEADER$ + */ +#include "scoll_ucc.h" +#include "scoll_ucc_dtypes.h" +#include "scoll_ucc_common.h" + +#include + +static inline ucc_status_t mca_scoll_ucc_alltoall_init(const void *sbuf, void *rbuf, + int count, size_t elem_size, + mca_scoll_ucc_module_t *ucc_module, + ucc_coll_req_h *req) +{ + ucc_datatype_t dt; + + if (elem_size == 8) { + dt = UCC_DT_INT64; + } else if (elem_size == 4) { + dt = UCC_DT_INT32; + } else { + dt = UCC_DT_INT8; + } + + ucc_coll_args_t coll = { + .mask = UCC_COLL_ARGS_FIELD_FLAGS | UCC_COLL_ARGS_FIELD_GLOBAL_WORK_BUFFER, + .coll_type = UCC_COLL_TYPE_ALLTOALL, + .src.info = { + .buffer = (void *)sbuf, + .count = count * ucc_module->group->proc_count, + .datatype = dt, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + }, + .dst.info = { + .buffer = rbuf, + .count = count * ucc_module->group->proc_count, + .datatype = dt, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + }, + .flags = UCC_COLL_ARGS_FLAG_MEM_MAPPED_BUFFERS, + .global_work_buffer = ucc_module->pSync, + }; + + if (NULL == ucc_module->ucc_team) { + if (OSHMEM_ERROR == mca_scoll_ucc_team_create(ucc_module, ucc_module->group)) { + return OSHMEM_ERROR; + } + } + SCOLL_UCC_REQ_INIT(req, coll, ucc_module); + return UCC_OK; +fallback: + return UCC_ERR_NOT_SUPPORTED; +} + + +int mca_scoll_ucc_alltoall(struct oshmem_group_t *group, + void *target, + const void *source, + ptrdiff_t dst, ptrdiff_t sst, + size_t nelems, + size_t element_size, + long *pSync, + int alg) +{ + mca_scoll_ucc_module_t *ucc_module; + size_t count; + ucc_coll_req_h req; + int rc; + + UCC_VERBOSE(3, "running ucc alltoall"); + ucc_module = (mca_scoll_ucc_module_t *) group->g_scoll.scoll_alltoall_module; + count = nelems; + + /* Do nothing on zero-length request */ + if (OPAL_UNLIKELY(!nelems)) { + return OSHMEM_SUCCESS; + } + + SCOLL_UCC_CHECK(mca_scoll_ucc_alltoall_init(source, target, count, + element_size, ucc_module, &req)); + SCOLL_UCC_CHECK(ucc_collective_post(req)); + SCOLL_UCC_CHECK(scoll_ucc_req_wait(req)); + return OSHMEM_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback alltoall"); + PREVIOUS_SCOLL_FN(ucc_module, alltoall, group, target, source, + dst, sst, nelems, element_size, pSync, alg); + return rc; +} diff -Nru openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_barrier.c openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_barrier.c --- openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_barrier.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_barrier.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,52 @@ +/** + Copyright (c) 2021 Mellanox Technologies. All rights reserved. + $COPYRIGHT$ + + Additional copyrights may follow + + $HEADER$ + */ +#include "scoll_ucc.h" +#include "scoll_ucc_dtypes.h" +#include "scoll_ucc_common.h" + +#include + +static inline ucc_status_t mca_scoll_ucc_barrier_init(mca_scoll_ucc_module_t * ucc_module, + ucc_coll_req_h * req) +{ + ucc_coll_args_t coll = { + .mask = 0, + .coll_type = UCC_COLL_TYPE_BARRIER + }; + if (NULL == ucc_module->ucc_team) { + if (OSHMEM_ERROR == mca_scoll_ucc_team_create(ucc_module, ucc_module->group)) { + return OSHMEM_ERROR; + } + } + SCOLL_UCC_REQ_INIT(req, coll, ucc_module); + return UCC_OK; +fallback: + return UCC_ERR_NOT_SUPPORTED; +} + +int mca_scoll_ucc_barrier(struct oshmem_group_t *group, long *pSync, int alg) +{ + mca_scoll_ucc_module_t *ucc_module; + ucc_coll_req_h req; + int rc; + + UCC_VERBOSE(3, "running ucc barrier"); + ucc_module = (mca_scoll_ucc_module_t *) group->g_scoll.scoll_barrier_module; + + SCOLL_UCC_CHECK(mca_scoll_ucc_barrier_init(ucc_module, &req)); + SCOLL_UCC_CHECK(ucc_collective_post(req)); + SCOLL_UCC_CHECK(scoll_ucc_req_wait(req)); + return OSHMEM_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback barrier"); + PREVIOUS_SCOLL_FN(ucc_module, barrier, group, + pSync, alg); + return rc; +} + diff -Nru openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_broadcast.c openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_broadcast.c --- openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_broadcast.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_broadcast.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,79 @@ +/** + Copyright (c) 2021 Mellanox Technologies. All rights reserved. + $COPYRIGHT$ + + Additional copyrights may follow + + $HEADER$ + */ +#include "scoll_ucc.h" +#include "scoll_ucc_dtypes.h" +#include "scoll_ucc_common.h" + +#include + +static inline ucc_status_t mca_scoll_ucc_broadcast_init(void * buf, int count, + int root, + mca_scoll_ucc_module_t * ucc_module, + ucc_coll_req_h * req) +{ + ucc_coll_args_t coll = { + .mask = 0, + .coll_type = UCC_COLL_TYPE_BCAST, + .root = root, + .src.info = { + .buffer = buf, + .count = count, + .datatype = UCC_DT_INT8, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + } + }; + if (NULL == ucc_module->ucc_team) { + if (OSHMEM_ERROR == mca_scoll_ucc_team_create(ucc_module, ucc_module->group)) { + return OSHMEM_ERROR; + } + } + SCOLL_UCC_REQ_INIT(req, coll, ucc_module); + return UCC_OK; +fallback: + return UCC_ERR_NOT_SUPPORTED; +} + + +int mca_scoll_ucc_broadcast(struct oshmem_group_t *group, + int PE_root, + void *target, + const void *source, + size_t nlong, + long *pSync, + bool nlong_type, + int alg) +{ + mca_scoll_ucc_module_t * ucc_module; + void * buf; + ucc_coll_req_h req; + int rc; + + UCC_VERBOSE(3, "running ucc bcast"); + ucc_module = (mca_scoll_ucc_module_t *) group->g_scoll.scoll_broadcast_module; + if (group->my_pe == PE_root) { + buf = (void *) source; + } else { + buf = target; + } + + /* Do nothing on zero-length request */ + if (OPAL_UNLIKELY(!nlong)) { + return OSHMEM_SUCCESS; + } + + SCOLL_UCC_CHECK(mca_scoll_ucc_broadcast_init(buf, nlong, PE_root, ucc_module, &req)); + SCOLL_UCC_CHECK(ucc_collective_post(req)); + SCOLL_UCC_CHECK(scoll_ucc_req_wait(req)); + return OSHMEM_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback bcast"); + PREVIOUS_SCOLL_FN(ucc_module, broadcast, group, PE_root, target, source, + nlong, pSync, nlong_type, alg); + return rc; +} diff -Nru openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_collect.c openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_collect.c --- openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_collect.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_collect.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,76 @@ +/** + Copyright (c) 2021 Mellanox Technologies. All rights reserved. + $COPYRIGHT$ + + Additional copyrights may follow + + $HEADER$ + */ +#include "scoll_ucc.h" +#include "scoll_ucc_dtypes.h" +#include "scoll_ucc_common.h" + +#include + +static inline ucc_status_t mca_scoll_ucc_collect_init(const void * sbuf, void * rbuf, + int count, + mca_scoll_ucc_module_t * ucc_module, + ucc_coll_req_h * req) +{ + ucc_coll_args_t coll = { + .mask = 0, + .coll_type = UCC_COLL_TYPE_ALLGATHER, + .src.info = { + .buffer = (void *) sbuf, + .count = count, + .datatype = UCC_DT_INT8, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + }, + .dst.info = { + .buffer = rbuf, + .count = count, + .datatype = UCC_DT_INT8, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + }, + }; + + if (NULL == ucc_module->ucc_team) { + if (OSHMEM_ERROR == mca_scoll_ucc_team_create(ucc_module, ucc_module->group)) { + return OSHMEM_ERROR; + } + } + SCOLL_UCC_REQ_INIT(req, coll, ucc_module); + return UCC_OK; +fallback: + return UCC_ERR_NOT_SUPPORTED; +} + +int mca_scoll_ucc_collect(struct oshmem_group_t *group, + void *target, + const void *source, + size_t nlong, + long *pSync, + bool nlong_type, + int alg) +{ + mca_scoll_ucc_module_t *ucc_module; + ucc_coll_req_h req; + int rc; + + UCC_VERBOSE(3, "running ucc collect"); + ucc_module = (mca_scoll_ucc_module_t *) group->g_scoll.scoll_collect_module; + + if (OPAL_UNLIKELY(!nlong)) { + return OSHMEM_SUCCESS; + } + + SCOLL_UCC_CHECK(mca_scoll_ucc_collect_init(source, target, nlong, ucc_module, &req)); + SCOLL_UCC_CHECK(ucc_collective_post(req)); + SCOLL_UCC_CHECK(scoll_ucc_req_wait(req)); + return OSHMEM_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback collect"); + PREVIOUS_SCOLL_FN(ucc_module, collect, group, target, source, + nlong, pSync, nlong_type, alg); + return rc; +} diff -Nru openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_common.h openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_common.h --- openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_common.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_common.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2021 Mellanox Technologies. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ +#ifndef MCA_SCOLL_UCC_COMMON_H +#define MCA_SCOLL_UCC_COMMON_H + +#define SCOLL_UCC_CHECK(_call) do { \ + if (UCC_OK != (_call)) { \ + goto fallback; \ + } \ +} while(0) + +#define SCOLL_UCC_REQ_INIT(_req, _coll, _module) do { \ + SCOLL_UCC_CHECK(ucc_collective_init(&_coll, _req, \ + _module->ucc_team)); \ +} while(0) + +static inline ucc_status_t scoll_ucc_req_wait(ucc_coll_req_h req) +{ + ucc_status_t status; + while (UCC_OK != (status = ucc_collective_test(req))) { + if (0 > status) { + UCC_ERROR("ucc_collective_test failed: %s", + ucc_status_string(status)); + return status; + } + ucc_context_progress(mca_scoll_ucc_component.ucc_context); + opal_progress(); + } + return ucc_collective_finalize(req); +} + +#endif + diff -Nru openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_component.c openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_component.c --- openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_component.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,176 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2021 Mellanox Technologies. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ +#include + +#include +#include + +#include "scoll_ucc.h" +#include "opal/util/argv.h" + +/* + * Public string showing the oshmem scoll_ucc component version number + */ +const char * mca_scoll_ucc_component_version_string = + "OpenSHMEM UCC collective MCA component version " OSHMEM_VERSION; + + +static int ucc_open(void); +static int ucc_close(void); +static int ucc_register(void); + +int mca_scoll_ucc_output = -1; + +mca_scoll_ucc_component_t mca_scoll_ucc_component = { + + /* First, the mca_component_t struct containing meta information + about the component */ + { + .scoll_version = { + MCA_SCOLL_BASE_VERSION_2_0_0, + + /* Component name and version */ + .mca_component_name = "ucc", + MCA_BASE_MAKE_VERSION(component, OSHMEM_MAJOR_VERSION, OSHMEM_MINOR_VERSION, + OSHMEM_RELEASE_VERSION), + + /* Component open and close functions */ + .mca_open_component = ucc_open, + .mca_close_component = ucc_close, + .mca_register_component_params = ucc_register, + .mca_query_component = NULL, + }, + .scoll_data = { + /* The component is not checkpoint ready */ + MCA_BASE_METADATA_PARAM_NONE + }, + + /* Initialization / querying functions */ + .scoll_init = mca_scoll_ucc_init_query, + .scoll_query = mca_scoll_ucc_comm_query, + }, + 75, /* priority */ + 0, /* verbose level */ + 0, /* ucc_enable */ + 2, /* ucc_np */ + "basic", /* cls */ + SCOLL_UCC_CTS_STR, /* cts */ + 0, /* nr_modules */ + false /* libucc_initialized */ +}; + +static int ucc_register(void) +{ + mca_scoll_ucc_component_t * cm = &mca_scoll_ucc_component; + mca_base_component_t * c = &cm->super.scoll_version; + + mca_base_component_var_register(c, "priority", + "Priority of the UCC scoll component", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, MCA_BASE_VAR_SCOPE_READONLY, + &cm->ucc_priority); + + mca_base_component_var_register(c, "verbose", + "Verbose level of the UCC scoll component", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, MCA_BASE_VAR_SCOPE_READONLY, + &cm->ucc_verbose); + + mca_base_component_var_register(c, "enable", + "[1|0|] Enable/Disable UCC scoll component", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, MCA_BASE_VAR_SCOPE_READONLY, + &cm->ucc_enable); + + mca_base_component_var_register(c, "np", + "Minimal Active Set / Team size for UCC scoll component", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + OPAL_INFO_LVL_9, MCA_BASE_VAR_SCOPE_READONLY, + &cm->ucc_np); + + mca_base_component_var_register(c, "cls", + "Comma separated list of UCC CLS to be used for team creation", + MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, + OPAL_INFO_LVL_6, MCA_BASE_VAR_SCOPE_READONLY, + &cm->cls); + + mca_base_component_var_register(c, "cts", + "Comma separated list of UCC coll types to be enabled", + MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, + OPAL_INFO_LVL_6, MCA_BASE_VAR_SCOPE_READONLY, + &cm->cts); + return OSHMEM_SUCCESS; +} + +static ucc_coll_type_t mca_scoll_ucc_str_to_type(const char *str) +{ + if (0 == strcasecmp(str, "barrier")) { + return UCC_COLL_TYPE_BARRIER; + } else if (0 == strcasecmp(str, "broadcast")) { + return UCC_COLL_TYPE_BCAST; + } else if (0 == strcasecmp(str, "reduce")) { + return UCC_COLL_TYPE_ALLREDUCE; + } else if (0 == strcasecmp(str, "alltoall")) { + return UCC_COLL_TYPE_ALLTOALL; + } else if (0 == strcasecmp(str, "collect")) { + return UCC_COLL_TYPE_ALLGATHER; + } + UCC_ERROR("incorrect value for cts: %s, allowed: %s", + str, SCOLL_UCC_CTS_STR); + return UCC_COLL_TYPE_LAST; +} + +static void mca_scoll_ucc_init_default_cts(void) +{ + mca_scoll_ucc_component_t *cm = &mca_scoll_ucc_component; + bool disable; + char ** cts; + int n_cts, i; + char * str; + ucc_coll_type_t *ct, c; + + disable = (cm->cts[0] == '^') ? true : false; + cts = opal_argv_split(disable ? (cm->cts + 1) : cm->cts, ','); + n_cts = opal_argv_count(cts); + cm->cts_requested = disable ? SCOLL_UCC_CTS : 0; + for (i = 0; i < n_cts; i++) { + str = cts[i]; + ct = &cm->cts_requested; + + c = mca_scoll_ucc_str_to_type(str); + if (UCC_COLL_TYPE_LAST == c) { + *ct = SCOLL_UCC_CTS; + break; + } + if (disable) { + (*ct) &= ~c; + } else { + (*ct) |= c; + } + } + opal_argv_free(cts); +} + +static int ucc_open(void) +{ + mca_scoll_ucc_component_t *cm; + cm = &mca_scoll_ucc_component; + cm->libucc_initialized = false; + + mca_scoll_ucc_output = opal_output_open(NULL); + opal_output_set_verbosity(mca_scoll_ucc_output, cm->ucc_verbose); + mca_scoll_ucc_init_default_cts(); + return OSHMEM_SUCCESS; +} + +static int ucc_close(void) +{ + return OSHMEM_SUCCESS; +} diff -Nru openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_debug.h openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_debug.h --- openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_debug.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_debug.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,35 @@ +/** + Copyright (c) 2021 Mellanox Technologies. All rights reserved. + $COPYRIGHT$ + + Additional copyrights may follow + + $HEADER$ + */ + +#ifndef SCOLL_UCC_DEBUG_H +#define SCOLL_UCC_DEBUG_H +#include "oshmem_config.h" +#pragma GCC system_header + +#ifdef __BASE_FILE__ +#define __UCC_FILE__ __BASE_FILE__ +#else +#define __UCC_FILE__ __FILE__ +#endif + +#ifdef OPAL_ENABLE_DEBUG +#define UCC_VERBOSE(level, ...) \ + oshmem_output_verbose(level, mca_scoll_ucc_output, "%s:%d - %s() ", \ + __UCC_FILE__, __LINE__, __FUNCTION__, __VA_ARGS__) +#else +#define UCC_VERBOSE(level, ...) +#endif + +#define UCC_ERROR(...) \ + oshmem_output_verbose(0, mca_scoll_ucc_output, "Error: %s:%d - %s() ", \ + __UCC_FILE__, __LINE__, __FUNCTION__, __VA_ARGS__) + +extern int mca_scoll_ucc_output; + +#endif // SCOLL_UCC_DEBUG_H diff -Nru openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_dtypes.h openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_dtypes.h --- openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_dtypes.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_dtypes.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2021 Mellanox Technologies. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ +#ifndef SCOLL_UCC_DTYPES_H +#define SCOLL_UCC_DTYPES_H + +#include "oshmem/op/op.h" +#include "ompi/datatype/ompi_datatype.h" +#include "ompi/op/op.h" + +#include + +#define SCOLL_UCC_DT_UNSUPPORTED -1 +#define SCOLL_UCC_OP_UNSUPPORTED -1 + +static ucc_datatype_t shmem_datatype_to_ucc_dt[OSHMEM_OP_TYPE_NUMBER + 1] = { + UCC_DT_INT16, /* OSHMEM_OP_TYPE_SHORT 0 */ + UCC_DT_INT32, /* OSHMEM_OP_TYPE_INT 1 */ + UCC_DT_INT64, /* OSHMEM_OP_TYPE_LONG 2 */ + UCC_DT_INT64, /* OSHMEM_OP_TYPE_LLONG 3 */ + UCC_DT_INT16, /* OSHMEM_OP_TYPE_INT16_T 4 */ + UCC_DT_INT32, /* OSHMEM_OP_TYPE_INT32_T 5 */ + UCC_DT_INT64, /* OSHMEM_OP_TYPE_INT64_T 6 */ + UCC_DT_FLOAT32, /* OSHMEM_OP_TYPE_FLOAT 7 */ + UCC_DT_FLOAT64, /* OSHMEM_OP_TYPE_DOUBLE 8 */ + SCOLL_UCC_DT_UNSUPPORTED, /* OSHMEM_OP_TYPE_LDOUBLE 9 */ + SCOLL_UCC_DT_UNSUPPORTED, /* OSHMEM_OP_TYPE_FCOMPLEX 10 */ + SCOLL_UCC_DT_UNSUPPORTED, /* OSHMEM_OP_TYPE_DCOMPLEX 11 */ + UCC_DT_INT16, /* OSHMEM_OP_TYPE_FINT2 12 */ + UCC_DT_INT32, /* OSHMEM_OP_TYPE_FINT4 13 */ + UCC_DT_INT64, /* OSHMEM_OP_TYPE_FINT8 14 */ + UCC_DT_FLOAT32, /* OSHMEM_OP_TYPE_FREAL4 15 */ + UCC_DT_FLOAT64, /* OSHMEM_OP_TYPE_FREAL8 16 */ + SCOLL_UCC_DT_UNSUPPORTED, /* OSHMEM_OP_TYPE_FREAL16 17 */ + SCOLL_UCC_DT_UNSUPPORTED /* OSHMEM_OP_TYPE_NUMBER 18 */ +}; + +static inline ucc_datatype_t shmem_op_to_ucc_dtype(oshmem_op_t *op) +{ + ucc_datatype_t dtype; + + dtype = shmem_datatype_to_ucc_dt[op->dt]; + if (op->dt == OSHMEM_OP_TYPE_NUMBER) { + switch (op->dt_size) { + case 8: + return UCC_DT_INT64; + case 4: + return UCC_DT_INT32; + case 2: + return UCC_DT_INT16; + case 1: + return UCC_DT_INT8; + default: + return SCOLL_UCC_DT_UNSUPPORTED; + } + } + + return dtype; +} + +static ucc_reduction_op_t oshmem_op_to_ucc_op_map[OSHMEM_OP_NUMBER + 1] = { + UCC_OP_BAND, /* OSHMEM_OP_AND */ + UCC_OP_BOR, /* OSHMEM_OP_OR */ + UCC_OP_BXOR, /* OSHMEM_OP_XOR */ + UCC_OP_MAX, /* OSHMEM_OP_MAX */ + UCC_OP_MIN, /* OSHMEM_OP_MIN */ + UCC_OP_SUM, /* OSHMEM_OP_SUM */ + UCC_OP_PROD, /* OSHMEM_OP_PROD */ + SCOLL_UCC_OP_UNSUPPORTED, /* OSHMEM_OP_NUMBER */ +}; + +static inline ucc_reduction_op_t shmem_op_to_ucc_op(int op) +{ + return oshmem_op_to_ucc_op_map[op]; +} + +#endif /* SCOLL_UCC_DTYPES_H */ diff -Nru openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc.h openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc.h --- openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc.h 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc.h 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2021 Mellanox Technologies. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#ifndef MCA_SCOLL_UCC_H +#define MCA_SCOLL_UCC_H + +#include "oshmem_config.h" + +#include "shmem.h" +#include "oshmem/mca/mca.h" +#include "oshmem/mca/scoll/scoll.h" +#include "oshmem/proc/proc.h" + +#include "scoll_ucc_debug.h" + +#include + +BEGIN_C_DECLS + +#define SCOLL_UCC_CTS (UCC_COLL_TYPE_BARRIER | UCC_COLL_TYPE_BCAST | \ + UCC_COLL_TYPE_ALLREDUCE | UCC_COLL_TYPE_ALLGATHER | \ + UCC_COLL_TYPE_ALLTOALL) + +#define SCOLL_UCC_CTS_STR "barrier,broadcast,reduce,collect,alltoall" + +int mca_scoll_ucc_progress(void); + +/** + * Globally exported structure + */ +struct mca_scoll_ucc_component_t { + mca_scoll_base_component_1_0_0_t super; + int ucc_priority; + int ucc_verbose; + int ucc_enable; + int ucc_np; + char * cls; + char * cts; + int nr_modules; + bool libucc_initialized; + ucc_lib_h ucc_lib; + ucc_lib_attr_t ucc_lib_attr; + ucc_coll_type_t cts_requested; + ucc_context_h ucc_context; +}; +typedef struct mca_scoll_ucc_component_t mca_scoll_ucc_component_t; + +OMPI_MODULE_DECLSPEC extern mca_scoll_ucc_component_t mca_scoll_ucc_component; + +/** + * UCC enabled team + */ +struct mca_scoll_ucc_module_t { + mca_scoll_base_module_t super; + + oshmem_group_t *group; + ucc_team_h ucc_team; + long *pSync; + + /* Saved handlers - for fallback */ + mca_scoll_base_module_reduce_fn_t previous_reduce; + mca_scoll_base_module_t *previous_reduce_module; + mca_scoll_base_module_broadcast_fn_t previous_broadcast; + mca_scoll_base_module_t *previous_broadcast_module; + mca_scoll_base_module_barrier_fn_t previous_barrier; + mca_scoll_base_module_t *previous_barrier_module; + mca_scoll_base_module_collect_fn_t previous_collect; + mca_scoll_base_module_t *previous_collect_module; + mca_scoll_base_module_alltoall_fn_t previous_alltoall; + mca_scoll_base_module_t *previous_alltoall_module; +}; +typedef struct mca_scoll_ucc_module_t mca_scoll_ucc_module_t; + +OBJ_CLASS_DECLARATION(mca_scoll_ucc_module_t); + +/* API functions */ +int mca_scoll_ucc_init_query(bool enable_progress_threads, bool enable_mpi_threads); + +int mca_scoll_ucc_team_create(mca_scoll_ucc_module_t *ucc_module, + oshmem_group_t *osh_group); + +mca_scoll_base_module_t* mca_scoll_ucc_comm_query(oshmem_group_t *osh_group, int *priority); + +int mca_scoll_ucc_barrier(struct oshmem_group_t *group, long *pSync, int alg); + +int mca_scoll_ucc_broadcast(struct oshmem_group_t *group, + int PE_root, + void *target, + const void *source, + size_t nlong, + long *pSync, + bool nlong_type, + int alg); + +int mca_scoll_ucc_collect(struct oshmem_group_t *group, + void *target, + const void *source, + size_t nlong, + long *pSync, + bool nlong_type, + int alg); + +int mca_scoll_ucc_reduce(struct oshmem_group_t *group, + struct oshmem_op_t *op, + void *target, + const void *source, + size_t nlong, + long *pSync, + void *pWrk, + int alg); + +int mca_scoll_ucc_alltoall(struct oshmem_group_t *group, + void *target, + const void *source, + ptrdiff_t dst, ptrdiff_t sst, + size_t nelems, + size_t element_size, + long *pSync, + int alg); + +END_C_DECLS + +#endif diff -Nru openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_module.c openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_module.c --- openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_module.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,482 @@ +/* + * Copyright (c) 2021 Mellanox Technologies. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "oshmem_config.h" + +#include "opal/util/show_help.h" +#include "opal/util/timings.h" +#include "oshmem/proc/proc.h" +#include "oshmem/runtime/runtime.h" +#include "oshmem/mca/memheap/base/base.h" +#include "ompi/mca/coll/base/coll_tags.h" +#include "ompi/mca/pml/pml.h" +#include "scoll_ucc.h" +#include "scoll_ucc_debug.h" + +#include + +#define OBJ_RELEASE_IF_NOT_NULL( obj ) if( NULL != (obj) ) OBJ_RELEASE( obj ); + +int mca_scoll_ucc_init_query(bool enable_progress_threads, bool enable_ucc_threads) +{ + return OSHMEM_SUCCESS; +} + +static void mca_scoll_ucc_module_clear(mca_scoll_ucc_module_t *ucc_module) +{ + ucc_module->previous_barrier = NULL; + ucc_module->previous_broadcast = NULL; + ucc_module->previous_reduce = NULL; + ucc_module->previous_collect = NULL; + ucc_module->previous_alltoall = NULL; +} + +static void mca_scoll_ucc_module_construct(mca_scoll_ucc_module_t *ucc_module) +{ + mca_scoll_ucc_module_clear(ucc_module); +} + +int mca_scoll_ucc_progress(void) +{ + ucc_context_progress(mca_scoll_ucc_component.ucc_context); + return OSHMEM_SUCCESS; +} + +static void mca_scoll_ucc_module_destruct(mca_scoll_ucc_module_t *ucc_module) +{ + if (ucc_module->ucc_team) { + ucc_team_destroy(ucc_module->ucc_team); + MCA_MEMHEAP_CALL(private_free(ucc_module->pSync)); + --mca_scoll_ucc_component.nr_modules; + } + + if (0 == mca_scoll_ucc_component.nr_modules) { + if (mca_scoll_ucc_component.libucc_initialized) { + UCC_VERBOSE(1, "finalizing ucc library"); + opal_progress_unregister(mca_scoll_ucc_progress); + ucc_context_destroy(mca_scoll_ucc_component.ucc_context); + ucc_finalize(mca_scoll_ucc_component.ucc_lib); + mca_scoll_ucc_component.libucc_initialized = false; + } + } + + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_alltoall_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_collect_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_reduce_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_broadcast_module); + OBJ_RELEASE_IF_NOT_NULL(ucc_module->previous_barrier_module); + + mca_scoll_ucc_module_clear(ucc_module); +} + +#define UCC_SAVE_PREV_SCOLL_API(__api) do {\ + ucc_module->previous_ ## __api = osh_group->g_scoll.scoll_ ## __api;\ + ucc_module->previous_ ## __api ## _module = osh_group->g_scoll.scoll_ ## __api ## _module;\ + if (!osh_group->g_scoll.scoll_ ## __api || !osh_group->g_scoll.scoll_ ## __api ## _module) {\ + UCC_VERBOSE(1, "no underlying " # __api"; disqualifying myself");\ + return OSHMEM_ERROR;\ + }\ + OBJ_RETAIN(ucc_module->previous_ ## __api ## _module);\ +} while(0) + +static int mca_scoll_ucc_save_coll_handlers(mca_scoll_base_module_t *module, + oshmem_group_t *osh_group) +{ + mca_scoll_ucc_module_t* ucc_module = (mca_scoll_ucc_module_t*) module; + UCC_SAVE_PREV_SCOLL_API(barrier); + UCC_SAVE_PREV_SCOLL_API(broadcast); + UCC_SAVE_PREV_SCOLL_API(reduce); + UCC_SAVE_PREV_SCOLL_API(collect); + UCC_SAVE_PREV_SCOLL_API(alltoall); + return OSHMEM_SUCCESS; +} + +typedef struct oob_allgather_req +{ + void *sbuf; + void *rbuf; + void *oob_coll_ctx; + size_t msglen; + int iter; + int index; + ompi_request_t *reqs[2]; +} oob_allgather_req_t; + +static ucc_status_t oob_allgather_free(void *req) +{ + free(req); + return UCC_OK; +} + +static ucc_status_t oob_allgather(void *sbuf, void *rbuf, size_t msglen, + void *oob_coll_ctx, void **req) +{ + oob_allgather_req_t *oob_req = malloc(sizeof(*oob_req)); + oob_req->sbuf = sbuf; + oob_req->rbuf = rbuf; + oob_req->msglen = msglen; + oob_req->oob_coll_ctx = oob_coll_ctx; + oob_req->iter = 0; + oob_req->index = -1; + *req = oob_req; + return UCC_OK; +} + +static inline ucc_status_t oob_probe_test(oob_allgather_req_t *oob_req) +{ + int probe = 0; + int probe_count = 5; + int completed; + + do { + ompi_request_test_all(2, oob_req->reqs, &completed, MPI_STATUS_IGNORE); + ++probe; + } while (!completed && probe < probe_count); + + if (!completed) { + return UCC_INPROGRESS; + } + return UCC_OK; +} + +static int index_cmpfunc(const void * a, const void * b) +{ + return (*(int *)a - *(int *)b); +} + +static ucc_status_t oob_allgather_test(void *req) +{ + oob_allgather_req_t *oob_req = (oob_allgather_req_t *)req; + oshmem_group_t *group = (oshmem_group_t *)oob_req->oob_coll_ctx; + char *tmpsend = NULL; + char *tmprecv = NULL; + int *index = &oob_req->index; + size_t msglen = oob_req->msglen; + int *tmp; + unsigned int rank; + int size, sendto, recvfrom, recvdatafrom, senddatafrom; + + rank = group->my_pe; + size = group->proc_count; + if (-1 == *index) { + tmp = + bsearch(&rank, group->proc_vpids, size, sizeof(int), index_cmpfunc); + *index = ((ptrdiff_t)tmp - (ptrdiff_t)group->proc_vpids) / + sizeof(group->proc_vpids[0]); + } + + if (0 == oob_req->iter) { + tmprecv = (char *)oob_req->rbuf + (ptrdiff_t)*index * (ptrdiff_t)msglen; + memcpy(tmprecv, oob_req->sbuf, msglen); + } + + sendto = (*index + 1) % size; + sendto = group->proc_vpids[sendto]; + recvfrom = (*index - 1 + size) % size; + recvfrom = group->proc_vpids[recvfrom]; + for (; oob_req->iter < size - 1; oob_req->iter++) { + if (oob_req->iter > 0) { + if (UCC_INPROGRESS == oob_probe_test(oob_req)) { + return UCC_INPROGRESS; + } + } + + recvdatafrom = (*index - oob_req->iter - 1 + size) % size; + senddatafrom = (*index - oob_req->iter + size) % size; + tmprecv = (char *) oob_req->rbuf + (ptrdiff_t) recvdatafrom * (ptrdiff_t) msglen; + tmpsend = (char *) oob_req->rbuf + (ptrdiff_t) senddatafrom * (ptrdiff_t) msglen; + MCA_PML_CALL(isend(tmpsend, msglen, MPI_BYTE, sendto, MCA_COLL_BASE_TAG_UCC, + MCA_PML_BASE_SEND_STANDARD, oshmem_comm_world, &oob_req->reqs[0])); + MCA_PML_CALL(irecv(tmprecv, msglen, MPI_BYTE, recvfrom, + MCA_COLL_BASE_TAG_UCC, oshmem_comm_world, &oob_req->reqs[1])); + } + return oob_probe_test(oob_req); +} + +static int mca_scoll_ucc_init_ctx(oshmem_group_t *osh_group) +{ + mca_scoll_ucc_component_t *cm = &mca_scoll_ucc_component; + ucc_mem_map_t *maps = NULL; + char str_buf[256]; + ucc_lib_config_h lib_config; + ucc_context_config_h ctx_config; + ucc_thread_mode_t tm_requested; + ucc_lib_params_t lib_params; + ucc_context_params_t ctx_params; + int segment; + + tm_requested = oshmem_mpi_thread_multiple ? UCC_THREAD_MULTIPLE : + UCC_THREAD_SINGLE; + lib_params.mask = UCC_LIB_PARAM_FIELD_THREAD_MODE; + lib_params.thread_mode = tm_requested; + + if (UCC_OK != ucc_lib_config_read("OSHMEM", NULL, &lib_config)) { + UCC_ERROR("UCC lib config read failed"); + return OSHMEM_ERROR; + } + + if (UCC_OK != ucc_lib_config_modify(lib_config, "CLS", cm->cls)) { + ucc_lib_config_release(lib_config); + UCC_ERROR("failed to modify UCC lib config to set CLS"); + return OSHMEM_ERROR; + } + + if (UCC_OK != ucc_init(&lib_params, lib_config, &cm->ucc_lib)) { + UCC_ERROR("UCC lib init failed"); + ucc_lib_config_release(lib_config); + cm->ucc_enable = 0; + return OSHMEM_ERROR; + } + ucc_lib_config_release(lib_config); + + cm->ucc_lib_attr.mask = UCC_LIB_ATTR_FIELD_THREAD_MODE | + UCC_LIB_ATTR_FIELD_COLL_TYPES; + if (UCC_OK != ucc_lib_get_attr(cm->ucc_lib, &cm->ucc_lib_attr)) { + UCC_ERROR("UCC get lib attr failed"); + goto cleanup_lib; + } + + if (cm->ucc_lib_attr.thread_mode < tm_requested) { + UCC_ERROR("UCC library doesn't support SHMEM_THREAD_MULTIPLE"); + goto cleanup_lib; + } + + maps = (ucc_mem_map_t *)malloc(sizeof(ucc_mem_map_t) * + memheap_map->n_segments); + if (NULL == maps) { + UCC_ERROR("failed to allocate space for UCC memory params"); + } + for (segment = 0; segment < memheap_map->n_segments; segment++) { + maps[segment].address = memheap_map->mem_segs[segment].mkeys[0].va_base; + maps[segment].len = + (ptrdiff_t)memheap_map->mem_segs[segment].super.va_end - + (ptrdiff_t)memheap_map->mem_segs[segment].super.va_base; + } + ctx_params.mask = + UCC_CONTEXT_PARAM_FIELD_OOB | UCC_CONTEXT_PARAM_FIELD_MEM_PARAMS; + ctx_params.oob.allgather = oob_allgather; + ctx_params.oob.req_test = oob_allgather_test; + ctx_params.oob.req_free = oob_allgather_free; + ctx_params.oob.coll_info = (void *)oshmem_group_all; + ctx_params.oob.n_oob_eps = oshmem_group_all->proc_count; + ctx_params.oob.oob_ep = oshmem_group_all->my_pe; + ctx_params.mem_params.segments = maps; + ctx_params.mem_params.n_segments = memheap_map->n_segments; + + if (UCC_OK != ucc_context_config_read(cm->ucc_lib, NULL, &ctx_config)) { + UCC_ERROR("UCC context config read failed"); + goto cleanup_lib; + } + + sprintf(str_buf, "%u", osh_group->proc_count); + if (UCC_OK != ucc_context_config_modify(ctx_config, NULL, + "ESTIMATED_NUM_EPS", str_buf)) { + UCC_ERROR("UCC context config modify failed for estimated_num_eps"); + goto cleanup_lib; + } + + sprintf(str_buf, "%u", opal_process_info.num_local_peers + 1); + if (UCC_OK != ucc_context_config_modify(ctx_config, NULL, + "ESTIMATED_NUM_PPN", str_buf)) { + UCC_ERROR("UCC context config modify failed for estimated_num_eps"); + goto cleanup_lib; + } + + if (UCC_OK != ucc_context_create(cm->ucc_lib, &ctx_params, ctx_config, + &cm->ucc_context)) { + UCC_ERROR("UCC context create failed"); + ucc_context_config_release(ctx_config); + goto cleanup_lib; + } + ucc_context_config_release(ctx_config); + + free(maps); + opal_progress_register(mca_scoll_ucc_progress); + UCC_VERBOSE(1, "initialized ucc context"); + cm->libucc_initialized = true; + return OSHMEM_SUCCESS; + +cleanup_lib: + if (NULL != maps) { + free(maps); + } + ucc_finalize(cm->ucc_lib); + cm->ucc_enable = 0; + cm->libucc_initialized = false; + return OSHMEM_ERROR; +} + +int mca_scoll_ucc_team_create(mca_scoll_ucc_module_t *ucc_module, + oshmem_group_t *osh_group) +{ + mca_scoll_ucc_component_t *cm = &mca_scoll_ucc_component; + ucc_status_t status = UCC_OK; + long *pSync = NULL; + int *tmp; + ucc_ep_map_t map; + int index; + size_t size; + ucc_context_attr_t attr; + + attr.mask = UCC_CONTEXT_ATTR_FIELD_WORK_BUFFER_SIZE; + ucc_context_get_attr(cm->ucc_context, &attr); + size = attr.global_work_buffer_size; + if (size & 0x7) { + size += 8 - (size & 0x7); + } + MCA_MEMHEAP_CALL(private_alloc(size * sizeof(long), (void **)&pSync)); + memset(pSync, 0, size * sizeof(long)); + + map.type = UCC_EP_MAP_ARRAY; + map.ep_num = osh_group->proc_count; + map.array.elem_size = 4; + tmp = bsearch(&osh_group->my_pe, osh_group->proc_vpids, + osh_group->proc_count, sizeof(int), index_cmpfunc); + index = ((ptrdiff_t)tmp - (ptrdiff_t)osh_group->proc_vpids) / + sizeof(osh_group->proc_vpids[0]); + map.array.map = (void *)osh_group->proc_vpids; + ucc_team_params_t team_params = { + .mask = UCC_TEAM_PARAM_FIELD_EP | UCC_TEAM_PARAM_FIELD_EP_RANGE | + UCC_TEAM_PARAM_FIELD_OOB | UCC_TEAM_PARAM_FIELD_FLAGS, + .oob = + { + .allgather = oob_allgather, + .req_test = oob_allgather_test, + .req_free = oob_allgather_free, + .coll_info = (void *)osh_group, + .n_oob_eps = osh_group->proc_count, + .oob_ep = index, + }, + .ep = index, + .ep_map = map, + .flags = UCC_TEAM_FLAG_COLL_WORK_BUFFER, + }; + + if (UCC_OK != ucc_team_create_post(&cm->ucc_context, 1, &team_params, + &ucc_module->ucc_team)) { + UCC_ERROR("ucc_team_create_post failed"); + goto err; + } + + while (UCC_INPROGRESS == + (status = ucc_team_create_test(ucc_module->ucc_team))) { + opal_progress(); + } + if (UCC_OK != status) { + UCC_ERROR("ucc_team_create_test failed (%d)", status); + goto err; + } + ucc_module->pSync = pSync; + ++cm->nr_modules; + return OSHMEM_SUCCESS; +err: + ucc_module->ucc_team = NULL; + cm->ucc_enable = 0; + opal_progress_unregister(mca_scoll_ucc_progress); + return OSHMEM_ERROR; +} + +/* + * Initialize module on the communicator + */ +static int mca_scoll_ucc_module_enable(mca_scoll_base_module_t *module, + oshmem_group_t *osh_group) +{ + mca_scoll_ucc_component_t *cm = &mca_scoll_ucc_component; + mca_scoll_ucc_module_t *ucc_module = (mca_scoll_ucc_module_t *) module; + + ucc_module->ucc_team = NULL; + if (OSHMEM_SUCCESS != mca_scoll_ucc_save_coll_handlers(module, osh_group)) { + UCC_ERROR("UCC module enable failed"); + /* There are no modules available */ + opal_show_help("help-oshmem-scoll-ucc.txt", + "module_enable:fatal", true, + "UCC module enable failed - aborting to prevent inconsistent application state"); + + goto err; + } + UCC_VERBOSE(1, "ucc enabled"); + return OSHMEM_SUCCESS; +err: + cm->ucc_enable = 0; + opal_progress_unregister(mca_scoll_ucc_progress); + return OSHMEM_ERROR; +} + +#define SET_SCOLL_PTR(_module, _COLL, _coll) do { \ + _module->super.scoll_ ## _coll = NULL; \ + if ((mca_scoll_ucc_component.ucc_lib_attr.coll_types & \ + UCC_COLL_TYPE_ ## _COLL)) { \ + if (mca_scoll_ucc_component.cts_requested & \ + UCC_COLL_TYPE_ ## _COLL) { \ + _module->super.scoll_ ## _coll = mca_scoll_ucc_ ## _coll; \ + } \ + } \ +} while(0) + +/* + * Invoked when there's a new communicator/group that has been created. + * Look at the communicator and decide which set of functions and + * priority we want to return. + */ +mca_scoll_base_module_t * +mca_scoll_ucc_comm_query(oshmem_group_t *osh_group, int *priority) +{ + mca_scoll_base_module_t *module; + mca_scoll_ucc_module_t *ucc_module; + mca_scoll_ucc_component_t *cm; + + *priority = 0; + cm = &mca_scoll_ucc_component; + + if (!cm->ucc_enable) { + return NULL; + } + + if ((osh_group->proc_count < 2) || (osh_group->proc_count < cm->ucc_np)) { + return NULL; + } + OPAL_TIMING_ENV_INIT(comm_query); + + if (!cm->libucc_initialized) { + if (memheap_map && memheap_map->n_segments > 0) { + if (OSHMEM_SUCCESS != mca_scoll_ucc_init_ctx(osh_group)) { + cm->ucc_enable = 0; + return NULL; + } + } + } + + ucc_module = OBJ_NEW(mca_scoll_ucc_module_t); + if (!ucc_module) { + cm->ucc_enable = 0; + return NULL; + } + + ucc_module->group = osh_group; + ucc_module->super.scoll_module_enable = mca_scoll_ucc_module_enable; + *priority = cm->ucc_priority; + SET_SCOLL_PTR(ucc_module, BARRIER, barrier); + SET_SCOLL_PTR(ucc_module, BCAST, broadcast); + SET_SCOLL_PTR(ucc_module, ALLREDUCE, reduce); + SET_SCOLL_PTR(ucc_module, ALLGATHER, collect); + SET_SCOLL_PTR(ucc_module, ALLTOALL, alltoall); + + module = &ucc_module->super; + return module; +} + + +OBJ_CLASS_INSTANCE(mca_scoll_ucc_module_t, + mca_scoll_base_module_t, + mca_scoll_ucc_module_construct, + mca_scoll_ucc_module_destruct); + + + diff -Nru openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_reduce.c openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_reduce.c --- openmpi-4.0.3/oshmem/mca/scoll/ucc/scoll_ucc_reduce.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/scoll/ucc/scoll_ucc_reduce.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,100 @@ +/** + Copyright (c) 2021 Mellanox Technologies. All rights reserved. + $COPYRIGHT$ + + Additional copyrights may follow + + $HEADER$ + */ +#include "scoll_ucc.h" +#include "scoll_ucc_dtypes.h" +#include "scoll_ucc_common.h" + +#include + +static inline ucc_status_t mca_scoll_ucc_reduce_init(const void *sbuf, void *rbuf, + int count, struct oshmem_op_t * op, + mca_scoll_ucc_module_t * ucc_module, + ucc_coll_req_h * req) +{ + ucc_datatype_t ucc_dt; + ucc_reduction_op_t ucc_op; + + ucc_dt = shmem_op_to_ucc_dtype(op); + ucc_op = shmem_op_to_ucc_op(op->op); + + if (OPAL_UNLIKELY((ucc_datatype_t) SCOLL_UCC_DT_UNSUPPORTED == ucc_dt)) { + UCC_VERBOSE(5, "shmem datatype is not supported: dtype # = %d", + op->dt); + } + if (OPAL_UNLIKELY((ucc_reduction_op_t) SCOLL_UCC_OP_UNSUPPORTED == ucc_op)) { + UCC_VERBOSE(5, "shmem reduction op is not supported: op # = %d", + op->op); + } + + ucc_coll_args_t coll = { + .mask = 0, + .coll_type = UCC_COLL_TYPE_ALLREDUCE, + .src.info = { + .buffer = (void *)sbuf, + .count = count, + .datatype = ucc_dt, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + }, + .dst.info = { + .buffer = rbuf, + .count = count, + .datatype = ucc_dt, + .mem_type = UCC_MEMORY_TYPE_UNKNOWN + }, + .op = ucc_op, + }; + + if (sbuf == rbuf) { + coll.mask |= UCC_COLL_ARGS_FIELD_FLAGS; + coll.flags = UCC_COLL_ARGS_FLAG_IN_PLACE; + } + if (NULL == ucc_module->ucc_team) { + if (OSHMEM_ERROR == mca_scoll_ucc_team_create(ucc_module, ucc_module->group)) { + return OSHMEM_ERROR; + } + } + SCOLL_UCC_REQ_INIT(req, coll, ucc_module); + return UCC_OK; +fallback: + return UCC_ERR_NOT_SUPPORTED; +} + +int mca_scoll_ucc_reduce(struct oshmem_group_t *group, + struct oshmem_op_t *op, + void *target, + const void *source, + size_t nlong, + long *pSync, + void *pWrk, + int alg) +{ + mca_scoll_ucc_module_t *ucc_module; + size_t count; + ucc_coll_req_h req; + int rc; + + UCC_VERBOSE(3, "running ucc reduce"); + ucc_module = (mca_scoll_ucc_module_t *) group->g_scoll.scoll_reduce_module; + count = nlong / op->dt_size; + + /* Do nothing on zero-length request */ + if (OPAL_UNLIKELY(!nlong)) { + return OSHMEM_SUCCESS; + } + + SCOLL_UCC_CHECK(mca_scoll_ucc_reduce_init(source, target, count, op, ucc_module, &req)); + SCOLL_UCC_CHECK(ucc_collective_post(req)); + SCOLL_UCC_CHECK(scoll_ucc_req_wait(req)); + return OSHMEM_SUCCESS; +fallback: + UCC_VERBOSE(3, "running fallback reduction"); + PREVIOUS_SCOLL_FN(ucc_module, reduce, group, op, target, + source, nlong, pSync, pWrk, alg); + return rc; +} diff -Nru openmpi-4.0.3/oshmem/mca/spml/base/base.h openmpi-4.1.4/oshmem/mca/spml/base/base.h --- openmpi-4.0.3/oshmem/mca/spml/base/base.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/spml/base/base.h 2022-05-29 09:51:40.000000000 +0000 @@ -78,7 +78,7 @@ sshmem_mkey_t *mkeys); OSHMEM_DECLSPEC void mca_spml_base_rmkey_unpack(shmem_ctx_t ctx, sshmem_mkey_t *mkey, uint32_t seg, int pe, int tr_id); -OSHMEM_DECLSPEC void mca_spml_base_rmkey_free(sshmem_mkey_t *mkey); +OSHMEM_DECLSPEC void mca_spml_base_rmkey_free(sshmem_mkey_t *mkey, int pe); OSHMEM_DECLSPEC void *mca_spml_base_rmkey_ptr(const void *dst_addr, sshmem_mkey_t *mkey, int pe); OSHMEM_DECLSPEC int mca_spml_base_put_nb(void *dst_addr, diff -Nru openmpi-4.0.3/oshmem/mca/spml/base/spml_base.c openmpi-4.1.4/oshmem/mca/spml/base/spml_base.c --- openmpi-4.0.3/oshmem/mca/spml/base/spml_base.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/spml/base/spml_base.c 2022-05-29 09:51:40.000000000 +0000 @@ -256,7 +256,7 @@ { } -void mca_spml_base_rmkey_free(sshmem_mkey_t *mkey) +void mca_spml_base_rmkey_free(sshmem_mkey_t *mkey, int pe) { } diff -Nru openmpi-4.0.3/oshmem/mca/spml/ikrit/Makefile.in openmpi-4.1.4/oshmem/mca/spml/ikrit/Makefile.in --- openmpi-4.0.3/oshmem/mca/spml/ikrit/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/spml/ikrit/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -111,6 +111,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -118,6 +120,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -141,6 +144,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -243,6 +247,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -250,6 +255,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -330,6 +336,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -352,9 +359,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -364,6 +375,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -384,6 +396,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -655,6 +668,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1475,6 +1491,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1507,9 +1527,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1530,6 +1559,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1614,9 +1644,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1677,6 +1704,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1690,6 +1720,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/spml/Makefile.in openmpi-4.1.4/oshmem/mca/spml/Makefile.in --- openmpi-4.0.3/oshmem/mca/spml/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/spml/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -653,6 +666,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1473,6 +1489,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1505,9 +1525,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1528,6 +1557,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1612,9 +1642,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1675,6 +1702,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1688,6 +1718,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/spml/spml.h openmpi-4.1.4/oshmem/mca/spml/spml.h --- openmpi-4.0.3/oshmem/mca/spml/spml.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/spml/spml.h 2022-05-29 09:51:40.000000000 +0000 @@ -150,7 +150,7 @@ * * @param mkey remote mkey */ -typedef void (*mca_spml_base_module_mkey_free_fn_t)(sshmem_mkey_t *); +typedef void (*mca_spml_base_module_mkey_free_fn_t)(sshmem_mkey_t *, int pe); /** * Register (Pinn) a buffer of 'size' bits starting in address addr @@ -193,9 +193,9 @@ * @return OSHMEM_SUCCESS or failure status. * */ -typedef int (*mca_spml_base_module_add_procs_fn_t)(ompi_proc_t** procs, +typedef int (*mca_spml_base_module_add_procs_fn_t)(struct oshmem_group_t* group, size_t nprocs); -typedef int (*mca_spml_base_module_del_procs_fn_t)(ompi_proc_t** procs, +typedef int (*mca_spml_base_module_del_procs_fn_t)(struct oshmem_group_t* group, size_t nprocs); diff -Nru openmpi-4.0.3/oshmem/mca/spml/ucx/Makefile.in openmpi-4.1.4/oshmem/mca/spml/ucx/Makefile.in --- openmpi-4.0.3/oshmem/mca/spml/ucx/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/spml/ucx/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -111,6 +111,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -118,6 +120,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -141,6 +144,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -243,6 +247,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -250,6 +255,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -330,6 +336,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -352,9 +359,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -364,6 +375,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -384,6 +396,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -655,6 +668,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1475,6 +1491,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1507,9 +1527,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1530,6 +1559,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1614,9 +1644,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1677,6 +1704,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1690,6 +1720,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/spml/ucx/spml_ucx.c openmpi-4.1.4/oshmem/mca/spml/ucx/spml_ucx.c --- openmpi-4.0.3/oshmem/mca/spml/ucx/spml_ucx.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/spml/ucx/spml_ucx.c 2022-05-29 09:51:40.000000000 +0000 @@ -10,7 +10,7 @@ * * $HEADER$ */ - + #define _GNU_SOURCE #include @@ -80,15 +80,23 @@ .num_disconnect = 1, .heap_reg_nb = 0, .enabled = 0, - .get_mkey_slow = NULL, - .synchronized_quiet = false + .get_mkey_slow = NULL }; mca_spml_ucx_ctx_t mca_spml_ucx_ctx_default = { - .ucp_worker = NULL, - .ucp_peers = NULL, - .options = 0 + .ucp_worker = NULL, + .ucp_peers = NULL, + .options = 0, + .synchronized_quiet = false, + .strong_sync = SPML_UCX_STRONG_ORDERING_NONE +}; + +#if HAVE_DECL_UCP_ATOMIC_OP_NBX +static ucp_request_param_t mca_spml_ucx_request_param = {0}; +static ucp_request_param_t mca_spml_ucx_request_param_b = { + .op_attr_mask = UCP_OP_ATTR_FLAG_FAST_CMPL }; +#endif int mca_spml_ucx_enable(bool enable) { @@ -102,12 +110,156 @@ return OSHMEM_SUCCESS; } -int mca_spml_ucx_del_procs(ompi_proc_t** procs, size_t nprocs) +/* initialize the mkey cache */ +void mca_spml_ucx_peer_mkey_cache_init(mca_spml_ucx_ctx_t *ucx_ctx, int pe) +{ + ucx_ctx->ucp_peers[pe].mkeys = NULL; + ucx_ctx->ucp_peers[pe].mkeys_cnt = 0; +} + +/* add a new mkey and update the mkeys_cnt */ +int mca_spml_ucx_peer_mkey_cache_add(ucp_peer_t *ucp_peer, int index) +{ + /* Allocate an array to hold the pointers to the ucx_cached_mkey */ + if (index >= (int)ucp_peer->mkeys_cnt) { + int old_size = ucp_peer->mkeys_cnt; + if (MCA_MEMHEAP_MAX_SEGMENTS <= (index + 1)) { + SPML_UCX_ERROR("Failed to get new mkey for segment: max number (%d) of segment descriptor is exhausted", + MCA_MEMHEAP_MAX_SEGMENTS); + return OSHMEM_ERROR; + } + ucp_peer->mkeys_cnt = index + 1; + ucp_peer->mkeys = realloc(ucp_peer->mkeys, sizeof(ucp_peer->mkeys[0]) * ucp_peer->mkeys_cnt); + if (NULL == ucp_peer->mkeys) { + SPML_UCX_ERROR("Failed to obtain new mkey: OOM - failed to expand the descriptor buffer"); + return OSHMEM_ERR_OUT_OF_RESOURCE; + } + /* NOTE: release code checks for the rkey != NULL as a sign of used element: + Account for the following scenario below by zero'ing the unused elements: + |MKEY1|00000|MKEY2|??????|NEW-MKEY| + |<--- old_size -->| + */ + memset(ucp_peer->mkeys + old_size, 0, (ucp_peer->mkeys_cnt - old_size) * sizeof(ucp_peer->mkeys[0])); + } else { + /* Make sure we don't leak memory */ + assert(NULL == ucp_peer->mkeys[index]); + } + + ucp_peer->mkeys[index] = (spml_ucx_cached_mkey_t *) malloc(sizeof(*ucp_peer->mkeys[0])); + if (NULL == ucp_peer->mkeys[index]) { + SPML_UCX_ERROR("Failed to obtain new ucx_cached_mkey: OOM - failed to expand the descriptor buffer"); + return OSHMEM_ERR_OUT_OF_RESOURCE; + } + return OSHMEM_SUCCESS; +} + +/* Release individual mkeys */ +int mca_spml_ucx_peer_mkey_cache_del(ucp_peer_t *ucp_peer, int segno) +{ + if (((int)ucp_peer->mkeys_cnt <= segno) || (segno < 0)) { + return OSHMEM_ERR_NOT_AVAILABLE; + } + if (NULL != ucp_peer->mkeys[segno]) { + free(ucp_peer->mkeys[segno]); + ucp_peer->mkeys[segno] = NULL; + } + return OSHMEM_SUCCESS; +} + +/* Release the memkey map from a ucp_peer if it has any element in memkey */ +void mca_spml_ucx_peer_mkey_cache_release(ucp_peer_t *ucp_peer) +{ + size_t i; + if (ucp_peer->mkeys_cnt) { + for(i = 0; i < ucp_peer->mkeys_cnt; i++) { + assert(NULL == ucp_peer->mkeys[i]); + } + free(ucp_peer->mkeys); + ucp_peer->mkeys = NULL; + } +} + +int mca_spml_ucx_ctx_mkey_new(mca_spml_ucx_ctx_t *ucx_ctx, int pe, uint32_t segno, spml_ucx_mkey_t **mkey) +{ + ucp_peer_t *ucp_peer; + spml_ucx_cached_mkey_t *ucx_cached_mkey; + int rc; + ucp_peer = &(ucx_ctx->ucp_peers[pe]); + rc = mca_spml_ucx_peer_mkey_cache_add(ucp_peer, segno); + if (OSHMEM_SUCCESS != rc) { + return rc; + } + rc = mca_spml_ucx_peer_mkey_get(ucp_peer, segno, &ucx_cached_mkey); + if (OSHMEM_SUCCESS != rc) { + return rc; + } + *mkey = &(ucx_cached_mkey->key); + return OSHMEM_SUCCESS; +} + +int mca_spml_ucx_ctx_mkey_cache(mca_spml_ucx_ctx_t *ucx_ctx, sshmem_mkey_t *mkey, uint32_t segno, int dst_pe) +{ + ucp_peer_t *peer; + spml_ucx_cached_mkey_t *ucx_cached_mkey; + int rc; + + peer = &(ucx_ctx->ucp_peers[dst_pe]); + rc = mca_spml_ucx_peer_mkey_get(peer, segno, &ucx_cached_mkey); + if (OSHMEM_SUCCESS != rc) { + SPML_UCX_ERROR("mca_spml_ucx_peer_mkey_get failed"); + return rc; + } + mkey_segment_init(&ucx_cached_mkey->super, mkey, segno); + return OSHMEM_SUCCESS; +} + +int mca_spml_ucx_ctx_mkey_add(mca_spml_ucx_ctx_t *ucx_ctx, int pe, uint32_t segno, sshmem_mkey_t *mkey, spml_ucx_mkey_t **ucx_mkey) +{ + int rc; + ucs_status_t err; + + rc = mca_spml_ucx_ctx_mkey_new(ucx_ctx, pe, segno, ucx_mkey); + if (OSHMEM_SUCCESS != rc) { + SPML_UCX_ERROR("mca_spml_ucx_ctx_mkey_new failed"); + return rc; + } + + if (mkey->u.data) { + err = ucp_ep_rkey_unpack(ucx_ctx->ucp_peers[pe].ucp_conn, mkey->u.data, &((*ucx_mkey)->rkey)); + if (UCS_OK != err) { + SPML_UCX_ERROR("failed to unpack rkey: %s", ucs_status_string(err)); + return OSHMEM_ERROR; + } + rc = mca_spml_ucx_ctx_mkey_cache(ucx_ctx, mkey, segno, pe); + if (OSHMEM_SUCCESS != rc) { + SPML_UCX_ERROR("mca_spml_ucx_ctx_mkey_cache failed"); + return rc; + } + } + return OSHMEM_SUCCESS; +} + +int mca_spml_ucx_ctx_mkey_del(mca_spml_ucx_ctx_t *ucx_ctx, int pe, uint32_t segno, spml_ucx_mkey_t *ucx_mkey) +{ + ucp_peer_t *ucp_peer; + int rc; + ucp_peer = &(ucx_ctx->ucp_peers[pe]); + ucp_rkey_destroy(ucx_mkey->rkey); + ucx_mkey->rkey = NULL; + rc = mca_spml_ucx_peer_mkey_cache_del(ucp_peer, segno); + if(OSHMEM_SUCCESS != rc){ + SPML_UCX_ERROR("mca_spml_ucx_peer_mkey_cache_del failed"); + return rc; + } + return OSHMEM_SUCCESS; +} + +int mca_spml_ucx_del_procs(oshmem_group_t* group, size_t nprocs) { opal_common_ucx_del_proc_t *del_procs; size_t i, w, n; int ret; - int ucp_workers = mca_spml_ucx.ucp_workers; + size_t ucp_workers = mca_spml_ucx.ucp_workers; oshmem_shmem_barrier(); @@ -126,6 +278,8 @@ /* mark peer as disconnected */ mca_spml_ucx_ctx_default.ucp_peers[i].ucp_conn = NULL; + /* release the cached_ep_mkey buffer */ + mca_spml_ucx_peer_mkey_cache_release(&(mca_spml_ucx_ctx_default.ucp_peers[i])); } ret = opal_common_ucx_del_procs_nofence(del_procs, nprocs, oshmem_my_proc_id(), @@ -246,13 +400,11 @@ } -static char spml_ucx_transport_ids[1] = { 0 }; - int mca_spml_ucx_init_put_op_mask(mca_spml_ucx_ctx_t *ctx, size_t nprocs) { int res; - if (mca_spml_ucx.synchronized_quiet) { + if (mca_spml_ucx_is_strong_ordering(ctx)) { ctx->put_proc_indexes = malloc(nprocs * sizeof(*ctx->put_proc_indexes)); if (NULL == ctx->put_proc_indexes) { return OSHMEM_ERR_OUT_OF_RESOURCE; @@ -274,7 +426,7 @@ int mca_spml_ucx_clear_put_op_mask(mca_spml_ucx_ctx_t *ctx) { - if (mca_spml_ucx.synchronized_quiet && ctx->put_proc_indexes) { + if (mca_spml_ucx_is_strong_ordering(ctx) && ctx->put_proc_indexes) { OBJ_DESTRUCT(&ctx->put_op_bitmap); free(ctx->put_proc_indexes); } @@ -282,12 +434,12 @@ return OSHMEM_SUCCESS; } -int mca_spml_ucx_add_procs(ompi_proc_t** procs, size_t nprocs) +int mca_spml_ucx_add_procs(oshmem_group_t* group, size_t nprocs) { - size_t i, j, k, w, n; + size_t i, w, n; int rc = OSHMEM_ERROR; int my_rank = oshmem_my_proc_id(); - int ucp_workers = mca_spml_ucx.ucp_workers; + size_t ucp_workers = mca_spml_ucx.ucp_workers; ucs_status_t err; ucp_address_t **wk_local_addr; unsigned int *wk_addr_len; @@ -357,12 +509,8 @@ goto error2; } - OSHMEM_PROC_DATA(procs[i])->num_transports = 1; - OSHMEM_PROC_DATA(procs[i])->transport_ids = spml_ucx_transport_ids; - - for (j = 0; j < MCA_MEMHEAP_MAX_SEGMENTS; j++) { - mca_spml_ucx_ctx_default.ucp_peers[i].mkeys[j].key.rkey = NULL; - } + /* Initialize mkeys as NULL for all processes */ + mca_spml_ucx_peer_mkey_cache_init(&mca_spml_ucx_ctx_default, i); } for (i = 0; i < mca_spml_ucx.ucp_workers; i++) { @@ -417,15 +565,27 @@ } -void mca_spml_ucx_rmkey_free(sshmem_mkey_t *mkey) +void mca_spml_ucx_rmkey_free(sshmem_mkey_t *mkey, int pe) { spml_ucx_mkey_t *ucx_mkey; + uint32_t segno; + int rc; if (!mkey->spml_context) { return; } + segno = memheap_find_segnum(mkey->va_base, pe); + if (MEMHEAP_SEG_INVALID == segno) { + SPML_UCX_ERROR("mca_spml_ucx_rmkey_free failed because of invalid " + "segment number: %d\n", segno); + return; + } + ucx_mkey = (spml_ucx_mkey_t *)(mkey->spml_context); - ucp_rkey_destroy(ucx_mkey->rkey); + rc = mca_spml_ucx_ctx_mkey_del(&mca_spml_ucx_ctx_default, pe, segno, ucx_mkey); + if (OSHMEM_SUCCESS != rc) { + SPML_UCX_ERROR("mca_spml_ucx_ctx_mkey_del failed\n"); + } } void *mca_spml_ucx_rmkey_ptr(const void *dst_addr, sshmem_mkey_t *mkey, int pe) @@ -449,22 +609,16 @@ { spml_ucx_mkey_t *ucx_mkey; mca_spml_ucx_ctx_t *ucx_ctx = (mca_spml_ucx_ctx_t *)ctx; - ucs_status_t err; - - ucx_mkey = &ucx_ctx->ucp_peers[pe].mkeys[segno].key; + int rc; - err = ucp_ep_rkey_unpack(ucx_ctx->ucp_peers[pe].ucp_conn, - mkey->u.data, - &ucx_mkey->rkey); - if (UCS_OK != err) { - SPML_UCX_ERROR("failed to unpack rkey: %s", ucs_status_string(err)); + rc = mca_spml_ucx_ctx_mkey_add(ucx_ctx, pe, segno, mkey, &ucx_mkey); + if (OSHMEM_SUCCESS != rc) { + SPML_UCX_ERROR("mca_spml_ucx_ctx_mkey_cache failed"); goto error_fatal; } - if (ucx_ctx == &mca_spml_ucx_ctx_default) { mkey->spml_context = ucx_mkey; } - mca_spml_ucx_cache_mkey(ucx_ctx, mkey, segno, pe); return; error_fatal: @@ -478,14 +632,18 @@ spml_ucx_mkey_t *ucx_mkey; ucp_mem_advise_params_t params; ucs_status_t status; + int rc; if (!(mca_spml_ucx.heap_reg_nb && memheap_is_va_in_segment(addr, HEAP_SEG_INDEX))) { return; } - my_pe = oshmem_my_proc_id(); - ucx_mkey = &mca_spml_ucx_ctx_default.ucp_peers[my_pe].mkeys[HEAP_SEG_INDEX].key; - + my_pe = oshmem_my_proc_id(); + rc = mca_spml_ucx_ctx_mkey_by_seg(&mca_spml_ucx_ctx_default, my_pe, HEAP_SEG_INDEX, &ucx_mkey); + if (OSHMEM_SUCCESS != rc) { + SPML_UCX_ERROR("mca_spml_ucx_ctx_mkey_by_seg failed"); + return; + } params.field_mask = UCP_MEM_ADVISE_PARAM_FIELD_ADDRESS | UCP_MEM_ADVISE_PARAM_FIELD_LENGTH | UCP_MEM_ADVISE_PARAM_FIELD_ADVICE; @@ -511,10 +669,12 @@ spml_ucx_mkey_t *ucx_mkey; size_t len; ucp_mem_map_params_t mem_map_params; - int segno; + uint32_t segno; map_segment_t *mem_seg; unsigned flags; int my_pe = oshmem_my_proc_id(); + int rc; + ucp_mem_h mem_h; *count = 0; mkeys = (sshmem_mkey_t *) calloc(1, sizeof(*mkeys)); @@ -522,12 +682,14 @@ return NULL; } - segno = memheap_find_segnum(addr); + segno = memheap_find_segnum(addr, my_pe); + if (MEMHEAP_SEG_INVALID == segno) { + SPML_UCX_ERROR("mca_spml_ucx_register failed because of invalid " + "segment number: %d\n", segno); + return NULL; + } mem_seg = memheap_find_seg(segno); - ucx_mkey = &mca_spml_ucx_ctx_default.ucp_peers[my_pe].mkeys[segno].key; - mkeys[0].spml_context = ucx_mkey; - /* if possible use mem handle already created by ucx allocator */ if (MAP_SEGMENT_ALLOC_UCX != mem_seg->type) { flags = 0; @@ -542,18 +704,18 @@ mem_map_params.length = size; mem_map_params.flags = flags; - status = ucp_mem_map(mca_spml_ucx.ucp_context, &mem_map_params, &ucx_mkey->mem_h); + status = ucp_mem_map(mca_spml_ucx.ucp_context, &mem_map_params, &mem_h); if (UCS_OK != status) { goto error_out; } } else { mca_sshmem_ucx_segment_context_t *ctx = mem_seg->context; - ucx_mkey->mem_h = ctx->ucp_memh; + mem_h = ctx->ucp_memh; } - status = ucp_rkey_pack(mca_spml_ucx.ucp_context, ucx_mkey->mem_h, - &mkeys[0].u.data, &len); + status = ucp_rkey_pack(mca_spml_ucx.ucp_context, mem_h, + &mkeys[SPML_UCX_TRANSP_IDX].u.data, &len); if (UCS_OK != status) { goto error_unmap; } @@ -563,19 +725,16 @@ 0xffff); oshmem_shmem_abort(-1); } - - status = ucp_ep_rkey_unpack(mca_spml_ucx_ctx_default.ucp_peers[oshmem_group_self->my_pe].ucp_conn, - mkeys[0].u.data, - &ucx_mkey->rkey); - if (UCS_OK != status) { - SPML_UCX_ERROR("failed to unpack rkey"); + mkeys[SPML_UCX_TRANSP_IDX].len = len; + mkeys[SPML_UCX_TRANSP_IDX].va_base = addr; + *count = SPML_UCX_TRANSP_CNT; + rc = mca_spml_ucx_ctx_mkey_add(&mca_spml_ucx_ctx_default, my_pe, segno, &mkeys[SPML_UCX_TRANSP_IDX], &ucx_mkey); + if (OSHMEM_SUCCESS != rc) { + SPML_UCX_ERROR("mca_spml_ucx_ctx_mkey_cache failed"); goto error_unmap; } - - mkeys[0].len = len; - mkeys[0].va_base = addr; - *count = 1; - mca_spml_ucx_cache_mkey(&mca_spml_ucx_ctx_default, &mkeys[0], segno, my_pe); + ucx_mkey->mem_h = mem_h; + mkeys[SPML_UCX_TRANSP_IDX].spml_context = ucx_mkey; return mkeys; error_unmap: @@ -590,29 +749,42 @@ { spml_ucx_mkey_t *ucx_mkey; map_segment_t *mem_seg; + int my_pe = oshmem_my_proc_id(); + int rc; + uint32_t segno; MCA_SPML_CALL(quiet(oshmem_ctx_default)); if (!mkeys) return OSHMEM_SUCCESS; - if (!mkeys[0].spml_context) + if (!mkeys[SPML_UCX_TRANSP_IDX].spml_context) return OSHMEM_SUCCESS; - mem_seg = memheap_find_va(mkeys[0].va_base); - ucx_mkey = (spml_ucx_mkey_t*)mkeys[0].spml_context; - + mem_seg = memheap_find_va(mkeys[SPML_UCX_TRANSP_IDX].va_base); if (OPAL_UNLIKELY(NULL == mem_seg)) { return OSHMEM_ERROR; } + segno = memheap_find_segnum(mkeys[SPML_UCX_TRANSP_IDX].va_base, my_pe); + if (MEMHEAP_SEG_INVALID == segno) { + SPML_UCX_ERROR("mca_spml_ucx_deregister failed because of invalid " + "segment number: %d\n", segno); + return OSHMEM_ERROR; + } + + ucx_mkey = (spml_ucx_mkey_t*)mkeys[SPML_UCX_TRANSP_IDX].spml_context; + if (MAP_SEGMENT_ALLOC_UCX != mem_seg->type) { ucp_mem_unmap(mca_spml_ucx.ucp_context, ucx_mkey->mem_h); } - ucp_rkey_destroy(ucx_mkey->rkey); - ucx_mkey->rkey = NULL; - if (0 < mkeys[0].len) { - ucp_rkey_buffer_release(mkeys[0].u.data); + rc = mca_spml_ucx_ctx_mkey_del(&mca_spml_ucx_ctx_default, my_pe, segno, ucx_mkey); + if (OSHMEM_SUCCESS != rc) { + SPML_UCX_ERROR("mca_spml_ucx_ctx_mkey_del failed\n"); + return rc; + } + if (0 < mkeys[SPML_UCX_TRANSP_IDX].len) { + ucp_rkey_buffer_release(mkeys[SPML_UCX_TRANSP_IDX].u.data); } free(mkeys); @@ -671,6 +843,8 @@ ucx_ctx->options = options; ucx_ctx->ucp_worker = calloc(1, sizeof(ucp_worker_h)); ucx_ctx->ucp_workers = 1; + ucx_ctx->synchronized_quiet = mca_spml_ucx_ctx_default.synchronized_quiet; + ucx_ctx->strong_sync = mca_spml_ucx_ctx_default.strong_sync; params.field_mask = UCP_WORKER_PARAM_FIELD_THREAD_MODE; if (oshmem_mpi_thread_provided == SHMEM_THREAD_SINGLE || options & SHMEM_CTX_PRIVATE || options & SHMEM_CTX_SERIALIZED) { @@ -710,16 +884,10 @@ for (j = 0; j < memheap_map->n_segments; j++) { mkey = &memheap_map->mem_segs[j].mkeys_cache[i][0]; - ucx_mkey = &ucx_ctx->ucp_peers[i].mkeys[j].key; - if (mkey->u.data) { - err = ucp_ep_rkey_unpack(ucx_ctx->ucp_peers[i].ucp_conn, - mkey->u.data, - &ucx_mkey->rkey); - if (UCS_OK != err) { - SPML_UCX_ERROR("failed to unpack rkey"); - goto error2; - } - mca_spml_ucx_cache_mkey(ucx_ctx, mkey, j, i); + rc = mca_spml_ucx_ctx_mkey_add(ucx_ctx, i, j, mkey, &ucx_mkey); + if (OSHMEM_SUCCESS != rc) { + SPML_UCX_ERROR("mca_spml_ucx_ctx_mkey_add failed"); + goto error2; } } } @@ -754,8 +922,7 @@ { mca_spml_ucx_ctx_t *ucx_ctx = NULL; mca_spml_ucx_ctx_array_t *idle_array = &mca_spml_ucx.idle_array; - mca_spml_ucx_ctx_array_t *active_array = &mca_spml_ucx.active_array; - int i, rc; + int i, rc = OSHMEM_SUCCESS; /* Take a lock controlling context creation. AUX context may set specific * UCX parameters affecting worker creation, which are not needed for @@ -812,17 +979,21 @@ int mca_spml_ucx_get(shmem_ctx_t ctx, void *src_addr, size_t size, void *dst_addr, int src) { - void *rva; - spml_ucx_mkey_t *ucx_mkey; + void *rva = NULL; + spml_ucx_mkey_t *ucx_mkey = mca_spml_ucx_ctx_mkey_by_va(ctx, src, src_addr, &rva, &mca_spml_ucx); + assert(NULL != ucx_mkey); mca_spml_ucx_ctx_t *ucx_ctx = (mca_spml_ucx_ctx_t *)ctx; -#if HAVE_DECL_UCP_GET_NB +#if (HAVE_DECL_UCP_GET_NBX || HAVE_DECL_UCP_GET_NB) ucs_status_ptr_t request; #else ucs_status_t status; #endif - ucx_mkey = mca_spml_ucx_get_mkey(ctx, src, src_addr, &rva, &mca_spml_ucx); -#if HAVE_DECL_UCP_GET_NB +#if HAVE_DECL_UCP_GET_NBX + request = ucp_get_nbx(ucx_ctx->ucp_peers[src].ucp_conn, dst_addr, size, + (uint64_t)rva, ucx_mkey->rkey, &mca_spml_ucx_request_param_b); + return opal_common_ucx_wait_request(request, ucx_ctx->ucp_worker[0], "ucp_get_nbx"); +#elif HAVE_DECL_UCP_GET_NB request = ucp_get_nb(ucx_ctx->ucp_peers[src].ucp_conn, dst_addr, size, (uint64_t)rva, ucx_mkey->rkey, opal_common_ucx_empty_complete_cb); return opal_common_ucx_wait_request(request, ucx_ctx->ucp_worker[0], "ucp_get_nb"); @@ -835,29 +1006,57 @@ int mca_spml_ucx_get_nb(shmem_ctx_t ctx, void *src_addr, size_t size, void *dst_addr, int src, void **handle) { - void *rva; + void *rva = NULL; ucs_status_t status; - spml_ucx_mkey_t *ucx_mkey; + spml_ucx_mkey_t *ucx_mkey = mca_spml_ucx_ctx_mkey_by_va(ctx, src, src_addr, &rva, &mca_spml_ucx); + assert(NULL != ucx_mkey); mca_spml_ucx_ctx_t *ucx_ctx = (mca_spml_ucx_ctx_t *)ctx; +#if HAVE_DECL_UCP_GET_NBX + ucs_status_ptr_t status_ptr; +#endif - ucx_mkey = mca_spml_ucx_get_mkey(ctx, src, src_addr, &rva, &mca_spml_ucx); +#if HAVE_DECL_UCP_GET_NBX + status_ptr = ucp_get_nbx(ucx_ctx->ucp_peers[src].ucp_conn, dst_addr, size, + (uint64_t)rva, ucx_mkey->rkey, &mca_spml_ucx_request_param); + if (UCS_PTR_IS_PTR(status_ptr)) { + ucp_request_free(status_ptr); + status = UCS_INPROGRESS; + } else { + status = UCS_PTR_STATUS(status_ptr); + } +#else status = ucp_get_nbi(ucx_ctx->ucp_peers[src].ucp_conn, dst_addr, size, (uint64_t)rva, ucx_mkey->rkey); - +#endif return ucx_status_to_oshmem_nb(status); } int mca_spml_ucx_get_nb_wprogress(shmem_ctx_t ctx, void *src_addr, size_t size, void *dst_addr, int src, void **handle) { unsigned int i; - void *rva; + void *rva = NULL; ucs_status_t status; - spml_ucx_mkey_t *ucx_mkey; + spml_ucx_mkey_t *ucx_mkey = mca_spml_ucx_ctx_mkey_by_va(ctx, src, src_addr, &rva, &mca_spml_ucx); + assert(NULL != ucx_mkey); mca_spml_ucx_ctx_t *ucx_ctx = (mca_spml_ucx_ctx_t *)ctx; +#if HAVE_DECL_UCP_GET_NBX + ucs_status_ptr_t status_ptr; +#endif - ucx_mkey = mca_spml_ucx_get_mkey(ctx, src, src_addr, &rva, &mca_spml_ucx); +#if HAVE_DECL_UCP_GET_NBX + status_ptr = ucp_get_nbx(ucx_ctx->ucp_peers[src].ucp_conn, + dst_addr, size, (uint64_t)rva, + ucx_mkey->rkey, &mca_spml_ucx_request_param); + if (UCS_PTR_IS_PTR(status_ptr)) { + ucp_request_free(status_ptr); + status = UCS_INPROGRESS; + } else { + status = UCS_PTR_STATUS(status_ptr); + } +#else status = ucp_get_nbi(ucx_ctx->ucp_peers[src].ucp_conn, dst_addr, size, (uint64_t)rva, ucx_mkey->rkey); +#endif if (++ucx_ctx->nb_progress_cnt > mca_spml_ucx.nb_get_progress_thresh) { for (i = 0; i < mca_spml_ucx.nb_ucp_worker_progress; i++) { @@ -873,18 +1072,22 @@ int mca_spml_ucx_put(shmem_ctx_t ctx, void* dst_addr, size_t size, void* src_addr, int dst) { - void *rva; - spml_ucx_mkey_t *ucx_mkey; + void *rva = NULL; + spml_ucx_mkey_t *ucx_mkey = mca_spml_ucx_ctx_mkey_by_va(ctx, dst, dst_addr, &rva, &mca_spml_ucx); + assert(NULL != ucx_mkey); mca_spml_ucx_ctx_t *ucx_ctx = (mca_spml_ucx_ctx_t *)ctx; int res; -#if HAVE_DECL_UCP_PUT_NB +#if (HAVE_DECL_UCP_PUT_NBX || HAVE_DECL_UCP_PUT_NB) ucs_status_ptr_t request; #else ucs_status_t status; #endif - ucx_mkey = mca_spml_ucx_get_mkey(ctx, dst, dst_addr, &rva, &mca_spml_ucx); -#if HAVE_DECL_UCP_PUT_NB +#if HAVE_DECL_UCP_PUT_NBX + request = ucp_put_nbx(ucx_ctx->ucp_peers[dst].ucp_conn, src_addr, size, + (uint64_t)rva, ucx_mkey->rkey, &mca_spml_ucx_request_param_b); + res = opal_common_ucx_wait_request(request, ucx_ctx->ucp_worker[0], "ucp_put_nbx"); +#elif HAVE_DECL_UCP_PUT_NB request = ucp_put_nb(ucx_ctx->ucp_peers[dst].ucp_conn, src_addr, size, (uint64_t)rva, ucx_mkey->rkey, opal_common_ucx_empty_complete_cb); res = opal_common_ucx_wait_request(request, ucx_ctx->ucp_worker[0], "ucp_put_nb"); @@ -903,15 +1106,29 @@ int mca_spml_ucx_put_nb(shmem_ctx_t ctx, void* dst_addr, size_t size, void* src_addr, int dst, void **handle) { - void *rva; - ucs_status_t status; - spml_ucx_mkey_t *ucx_mkey; + void *rva = NULL; + spml_ucx_mkey_t *ucx_mkey = mca_spml_ucx_ctx_mkey_by_va(ctx, dst, dst_addr, &rva, &mca_spml_ucx); + assert(NULL != ucx_mkey); mca_spml_ucx_ctx_t *ucx_ctx = (mca_spml_ucx_ctx_t *)ctx; + ucs_status_t status; +#if HAVE_DECL_UCP_PUT_NBX + ucs_status_ptr_t status_ptr; +#endif - ucx_mkey = mca_spml_ucx_get_mkey(ctx, dst, dst_addr, &rva, &mca_spml_ucx); +#if HAVE_DECL_UCP_PUT_NBX + status_ptr = ucp_put_nbx(ucx_ctx->ucp_peers[dst].ucp_conn, + src_addr, size, (uint64_t)rva, + ucx_mkey->rkey, &mca_spml_ucx_request_param); + if (UCS_PTR_IS_PTR(status_ptr)) { + ucp_request_free(status_ptr); + status = UCS_INPROGRESS; + } else { + status = UCS_PTR_STATUS(status_ptr); + } +#else status = ucp_put_nbi(ucx_ctx->ucp_peers[dst].ucp_conn, src_addr, size, (uint64_t)rva, ucx_mkey->rkey); - +#endif if (OPAL_LIKELY(status >= 0)) { mca_spml_ucx_remote_op_posted(ucx_ctx, dst); } @@ -922,15 +1139,29 @@ int mca_spml_ucx_put_nb_wprogress(shmem_ctx_t ctx, void* dst_addr, size_t size, void* src_addr, int dst, void **handle) { unsigned int i; - void *rva; + void *rva = NULL; ucs_status_t status; - spml_ucx_mkey_t *ucx_mkey; + spml_ucx_mkey_t *ucx_mkey = mca_spml_ucx_ctx_mkey_by_va(ctx, dst, dst_addr, &rva, &mca_spml_ucx); + assert(NULL != ucx_mkey); mca_spml_ucx_ctx_t *ucx_ctx = (mca_spml_ucx_ctx_t *)ctx; +#if HAVE_DECL_UCP_PUT_NBX + ucs_status_ptr_t status_ptr; +#endif - ucx_mkey = mca_spml_ucx_get_mkey(ctx, dst, dst_addr, &rva, &mca_spml_ucx); +#if HAVE_DECL_UCP_PUT_NBX + status_ptr = ucp_put_nbx(ucx_ctx->ucp_peers[dst].ucp_conn, src_addr, size, + (uint64_t)rva, ucx_mkey->rkey, + &mca_spml_ucx_request_param); + if (UCS_PTR_IS_PTR(status_ptr)) { + ucp_request_free(status_ptr); + status = UCS_INPROGRESS; + } else { + status = UCS_PTR_STATUS(status_ptr); + } +#else status = ucp_put_nbi(ucx_ctx->ucp_peers[dst].ucp_conn, src_addr, size, (uint64_t)rva, ucx_mkey->rkey); - +#endif if (OPAL_LIKELY(status >= 0)) { mca_spml_ucx_remote_op_posted(ucx_ctx, dst); } @@ -947,14 +1178,81 @@ return ucx_status_to_oshmem_nb(status); } +static int mca_spml_ucx_strong_sync(shmem_ctx_t ctx) +{ + mca_spml_ucx_ctx_t *ucx_ctx = (mca_spml_ucx_ctx_t *)ctx; + ucs_status_ptr_t request; + static int flush_get_data; + unsigned i; + int ret; + int idx; +#if !(HAVE_DECL_UCP_EP_FLUSH_NBX || HAVE_DECL_UCP_EP_FLUSH_NB) + ucs_status_t status; +#endif + + for (i = 0; i < ucx_ctx->put_proc_count; i++) { + idx = ucx_ctx->put_proc_indexes[i]; + + switch (ucx_ctx->strong_sync) { + case SPML_UCX_STRONG_ORDERING_NONE: + case SPML_UCX_STRONG_ORDERING_GETNB: + ret = mca_spml_ucx_get_nb(ctx, + ucx_ctx->ucp_peers[idx].mkeys[SPML_UCX_SERVICE_SEG]->super.super.va_base, + sizeof(flush_get_data), &flush_get_data, idx, NULL); + break; + case SPML_UCX_STRONG_ORDERING_GET: + ret = mca_spml_ucx_get(ctx, + ucx_ctx->ucp_peers[idx].mkeys[SPML_UCX_SERVICE_SEG]->super.super.va_base, + sizeof(flush_get_data), &flush_get_data, idx); + break; +#if HAVE_DECL_UCP_EP_FLUSH_NBX + case SPML_UCX_STRONG_ORDERING_FLUSH: + request = ucp_ep_flush_nbx(ucx_ctx->ucp_peers[idx].ucp_conn, + &mca_spml_ucx_request_param_b); + ret = opal_common_ucx_wait_request(request, ucx_ctx->ucp_worker[0], "ucp_flush_nbx"); +#elif HAVE_DECL_UCP_EP_FLUSH_NB + request = ucp_ep_flush_nb(ucx_ctx->ucp_peers[idx].ucp_conn, 0, opal_common_ucx_empty_complete_cb); + ret = opal_common_ucx_wait_request(request, ucx_ctx->ucp_worker[0], "ucp_flush_nb"); +#else + status = ucp_ep_flush(ucx_ctx->ucp_peers[idx].ucp_conn); + ret = (status == UCS_OK) ? OPAL_SUCCESS : OPAL_ERROR; +#endif + break; + default: + /* unknown mode */ + ret = OMPI_SUCCESS; + break; + } + + if (OPAL_UNLIKELY(OMPI_SUCCESS != ret)) { + oshmem_shmem_abort(-1); + return ret; + } + + opal_bitmap_clear_bit(&ucx_ctx->put_op_bitmap, idx); + } + + ucx_ctx->put_proc_count = 0; + return OSHMEM_SUCCESS; +} + int mca_spml_ucx_fence(shmem_ctx_t ctx) { + mca_spml_ucx_ctx_t *ucx_ctx = (mca_spml_ucx_ctx_t *)ctx; ucs_status_t err; + int ret; unsigned int i = 0; - mca_spml_ucx_ctx_t *ucx_ctx = (mca_spml_ucx_ctx_t *)ctx; opal_atomic_wmb(); + if (ucx_ctx->strong_sync != SPML_UCX_STRONG_ORDERING_NONE) { + ret = mca_spml_ucx_strong_sync(ctx); + if (ret != OSHMEM_SUCCESS) { + oshmem_shmem_abort(-1); + return ret; + } + } + for (i=0; i < ucx_ctx->ucp_workers; i++) { if (ucx_ctx->ucp_worker[i] != NULL) { err = ucp_worker_fence(ucx_ctx->ucp_worker[i]); @@ -970,26 +1268,16 @@ int mca_spml_ucx_quiet(shmem_ctx_t ctx) { - int flush_get_data; int ret; unsigned i; - int idx; mca_spml_ucx_ctx_t *ucx_ctx = (mca_spml_ucx_ctx_t *)ctx; - if (mca_spml_ucx.synchronized_quiet) { - for (i = 0; i < ucx_ctx->put_proc_count; i++) { - idx = ucx_ctx->put_proc_indexes[i]; - ret = mca_spml_ucx_get_nb(ctx, - ucx_ctx->ucp_peers[idx].mkeys->super.super.va_base, - sizeof(flush_get_data), &flush_get_data, idx, NULL); - if (OMPI_SUCCESS != ret) { - oshmem_shmem_abort(-1); - return ret; - } - - opal_bitmap_clear_bit(&ucx_ctx->put_op_bitmap, idx); + if (ucx_ctx->synchronized_quiet) { + ret = mca_spml_ucx_strong_sync(ctx); + if (ret != OSHMEM_SUCCESS) { + oshmem_shmem_abort(-1); + return ret; } - ucx_ctx->put_proc_count = 0; } opal_atomic_wmb(); diff -Nru openmpi-4.0.3/oshmem/mca/spml/ucx/spml_ucx_component.c openmpi-4.1.4/oshmem/mca/spml/ucx/spml_ucx_component.c --- openmpi-4.0.3/oshmem/mca/spml/ucx/spml_ucx_component.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/spml/ucx/spml_ucx_component.c 2022-05-29 09:51:40.000000000 +0000 @@ -159,7 +159,12 @@ mca_spml_ucx_param_register_bool("synchronized_quiet", 0, "Use synchronized quiet on shmem_quiet or shmem_barrier_all operations", - &mca_spml_ucx.synchronized_quiet); + &mca_spml_ucx_ctx_default.synchronized_quiet); + + mca_spml_ucx_param_register_int("strong_sync", 0, + "Use strong synchronization on shmem_quiet, shmem_fence or shmem_barrier_all operations: " + "0 - don't do strong synchronization, 1 - use non blocking get, 2 - use blocking get, 3 - use flush operation", + &mca_spml_ucx_ctx_default.strong_sync); mca_spml_ucx_param_register_ulong("nb_progress_thresh_global", 0, "Number of nb_put or nb_get operations before ucx progress is triggered. Disabled by default (0)", @@ -187,20 +192,21 @@ int spml_ucx_ctx_progress(void) { - int i; + int i, completed = 0; for (i = 0; i < mca_spml_ucx.active_array.ctxs_count; i++) { - ucp_worker_progress(mca_spml_ucx.active_array.ctxs[i]->ucp_worker[0]); + completed += ucp_worker_progress(mca_spml_ucx.active_array.ctxs[i]->ucp_worker[0]); } - return 1; + return completed; } int spml_ucx_default_progress(void) { unsigned int i=0; + int completed = 0; for (i = 0; i < mca_spml_ucx.ucp_workers; i++) { - ucp_worker_progress(mca_spml_ucx_ctx_default.ucp_worker[i]); + completed += ucp_worker_progress(mca_spml_ucx_ctx_default.ucp_worker[i]); } - return 1; + return completed; } int spml_ucx_progress_aux_ctx(void) @@ -378,7 +384,14 @@ if (OSHMEM_SUCCESS != spml_ucx_init()) return NULL ; + if ((mca_spml_ucx_ctx_default.strong_sync < SPML_UCX_STRONG_ORDERING_NONE) || + (mca_spml_ucx_ctx_default.strong_sync > SPML_UCX_STRONG_ORDERING_FLUSH)) { + SPML_UCX_ERROR("incorrect value of strong_sync parameter: %d", + mca_spml_ucx_ctx_default.strong_sync); + } + SPML_UCX_VERBOSE(50, "*** ucx initialized ****"); + return &mca_spml_ucx.super; } @@ -386,13 +399,23 @@ { int i, j, nprocs = oshmem_num_procs(); opal_common_ucx_del_proc_t *del_procs; + spml_ucx_mkey_t *ucx_mkey; + int rc; del_procs = malloc(sizeof(*del_procs) * nprocs); for (i = 0; i < nprocs; ++i) { for (j = 0; j < memheap_map->n_segments; j++) { - if (ctx->ucp_peers[i].mkeys[j].key.rkey != NULL) { - ucp_rkey_destroy(ctx->ucp_peers[i].mkeys[j].key.rkey); + rc = mca_spml_ucx_ctx_mkey_by_seg(ctx, i, j, &ucx_mkey); + if (OSHMEM_SUCCESS != rc) { + SPML_UCX_ERROR("mca_spml_ucx_ctx_mkey_by_seg failed"); + } else { + if (ucx_mkey->rkey != NULL) { + rc = mca_spml_ucx_ctx_mkey_del(ctx, i, j, ucx_mkey); + if (OSHMEM_SUCCESS != rc) { + SPML_UCX_ERROR("mca_spml_ucx_ctx_mkey_del failed"); + } + } } } diff -Nru openmpi-4.0.3/oshmem/mca/spml/ucx/spml_ucx.h openmpi-4.1.4/oshmem/mca/spml/ucx/spml_ucx.h --- openmpi-4.0.3/oshmem/mca/spml/ucx/spml_ucx.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/spml/ucx/spml_ucx.h 2022-05-29 09:51:40.000000000 +0000 @@ -45,6 +45,16 @@ #define SPML_UCX_ASSERT MCA_COMMON_UCX_ASSERT #define SPML_UCX_ERROR MCA_COMMON_UCX_ERROR #define SPML_UCX_VERBOSE MCA_COMMON_UCX_VERBOSE +#define SPML_UCX_TRANSP_IDX 0 +#define SPML_UCX_TRANSP_CNT 1 +#define SPML_UCX_SERVICE_SEG 0 + +enum { + SPML_UCX_STRONG_ORDERING_NONE = 0, /* don't use strong ordering */ + SPML_UCX_STRONG_ORDERING_GETNB = 1, /* use non-blocking read to provide ordering */ + SPML_UCX_STRONG_ORDERING_GET = 2, /* use blocking read to provide ordering*/ + SPML_UCX_STRONG_ORDERING_FLUSH = 3 /* flush EP to provide ordering */ +}; /** * UCX SPML module @@ -63,7 +73,8 @@ struct ucp_peer { ucp_ep_h ucp_conn; - spml_ucx_cached_mkey_t mkeys[MCA_MEMHEAP_MAX_SEGMENTS]; + spml_ucx_cached_mkey_t **mkeys; + size_t mkeys_cnt; }; typedef struct ucp_peer ucp_peer_t; @@ -76,6 +87,8 @@ unsigned int ucp_workers; int *put_proc_indexes; unsigned put_proc_count; + bool synchronized_quiet; + int strong_sync; }; typedef struct mca_spml_ucx_ctx mca_spml_ucx_ctx_t; @@ -110,7 +123,6 @@ mca_spml_ucx_ctx_t *aux_ctx; pthread_spinlock_t async_lock; int aux_refcnt; - bool synchronized_quiet; unsigned long nb_progress_thresh_global; unsigned long nb_put_progress_thresh; unsigned long nb_get_progress_thresh; @@ -186,11 +198,11 @@ extern void mca_spml_ucx_memuse_hook(void *addr, size_t length); extern void mca_spml_ucx_rmkey_unpack(shmem_ctx_t ctx, sshmem_mkey_t *mkey, uint32_t segno, int pe, int tr_id); -extern void mca_spml_ucx_rmkey_free(sshmem_mkey_t *mkey); +extern void mca_spml_ucx_rmkey_free(sshmem_mkey_t *mkey, int pe); extern void *mca_spml_ucx_rmkey_ptr(const void *dst_addr, sshmem_mkey_t *, int pe); -extern int mca_spml_ucx_add_procs(ompi_proc_t** procs, size_t nprocs); -extern int mca_spml_ucx_del_procs(ompi_proc_t** procs, size_t nprocs); +extern int mca_spml_ucx_add_procs(oshmem_group_t* group, size_t nprocs); +extern int mca_spml_ucx_del_procs(oshmem_group_t* group, size_t nprocs); extern int mca_spml_ucx_fence(shmem_ctx_t ctx); extern int mca_spml_ucx_quiet(shmem_ctx_t ctx); extern int spml_ucx_default_progress(void); @@ -200,6 +212,24 @@ int mca_spml_ucx_init_put_op_mask(mca_spml_ucx_ctx_t *ctx, size_t nprocs); int mca_spml_ucx_clear_put_op_mask(mca_spml_ucx_ctx_t *ctx); +int mca_spml_ucx_peer_mkey_cache_add(ucp_peer_t *ucp_peer, int index); +int mca_spml_ucx_peer_mkey_cache_del(ucp_peer_t *ucp_peer, int segno); +void mca_spml_ucx_peer_mkey_cache_release(ucp_peer_t *ucp_peer); +void mca_spml_ucx_peer_mkey_cache_init(mca_spml_ucx_ctx_t *ucx_ctx, int pe); + +static inline int +mca_spml_ucx_peer_mkey_get(ucp_peer_t *ucp_peer, int index, spml_ucx_cached_mkey_t **out_rmkey) +{ + *out_rmkey = NULL; + if (OPAL_UNLIKELY((index >= (int)ucp_peer->mkeys_cnt) || + (MCA_MEMHEAP_MAX_SEGMENTS <= index) || (0 > index))) { + SPML_UCX_ERROR("Failed to get mkey for segment: bad index = %d, MAX = %d, cached mkeys count: %zu", + index, MCA_MEMHEAP_MAX_SEGMENTS, ucp_peer->mkeys_cnt); + return OSHMEM_ERR_BAD_PARAM; + } + *out_rmkey = ucp_peer->mkeys[index]; + return OSHMEM_SUCCESS; +} static inline void mca_spml_ucx_aux_lock(void) { @@ -215,25 +245,44 @@ } } -static void mca_spml_ucx_cache_mkey(mca_spml_ucx_ctx_t *ucx_ctx, sshmem_mkey_t *mkey, uint32_t segno, int dst_pe) -{ - ucp_peer_t *peer; +int mca_spml_ucx_ctx_mkey_new(mca_spml_ucx_ctx_t *ucx_ctx, int pe, uint32_t segno, spml_ucx_mkey_t **mkey); +int mca_spml_ucx_ctx_mkey_cache(mca_spml_ucx_ctx_t *ucx_ctx, sshmem_mkey_t *mkey, uint32_t segno, int dst_pe); +int mca_spml_ucx_ctx_mkey_add(mca_spml_ucx_ctx_t *ucx_ctx, int pe, uint32_t segno, sshmem_mkey_t *mkey, spml_ucx_mkey_t **ucx_mkey); +int mca_spml_ucx_ctx_mkey_del(mca_spml_ucx_ctx_t *ucx_ctx, int pe, uint32_t segno, spml_ucx_mkey_t *ucx_mkey); - peer = &(ucx_ctx->ucp_peers[dst_pe]); - mkey_segment_init(&peer->mkeys[segno].super, mkey, segno); +static inline int +mca_spml_ucx_ctx_mkey_by_seg(mca_spml_ucx_ctx_t *ucx_ctx, int pe, uint32_t segno, spml_ucx_mkey_t **mkey) +{ + ucp_peer_t *ucp_peer; + spml_ucx_cached_mkey_t *ucx_cached_mkey; + int rc; + ucp_peer = &(ucx_ctx->ucp_peers[pe]); + rc = mca_spml_ucx_peer_mkey_get(ucp_peer, segno, &ucx_cached_mkey); + if (OSHMEM_SUCCESS != rc) { + return rc; + } + *mkey = &(ucx_cached_mkey->key); + return OSHMEM_SUCCESS; } static inline spml_ucx_mkey_t * -mca_spml_ucx_get_mkey(shmem_ctx_t ctx, int pe, void *va, void **rva, mca_spml_ucx_t* module) +mca_spml_ucx_ctx_mkey_by_va(shmem_ctx_t ctx, int pe, void *va, void **rva, mca_spml_ucx_t* module) { - spml_ucx_cached_mkey_t *mkey; + spml_ucx_cached_mkey_t **mkey; mca_spml_ucx_ctx_t *ucx_ctx = (mca_spml_ucx_ctx_t *)ctx; + size_t i; mkey = ucx_ctx->ucp_peers[pe].mkeys; - mkey = (spml_ucx_cached_mkey_t *)map_segment_find_va(&mkey->super.super, sizeof(*mkey), va); - assert(mkey != NULL); - *rva = map_segment_va2rva(&mkey->super, va); - return &mkey->key; + for (i = 0; i < ucx_ctx->ucp_peers[pe].mkeys_cnt; i++) { + if (NULL == mkey[i]) { + continue; + } + if (OPAL_LIKELY(map_segment_is_va_in(&mkey[i]->super.super, va))) { + *rva = map_segment_va2rva(&mkey[i]->super, va); + return &mkey[i]->key; + } + } + return NULL; } static inline int ucx_status_to_oshmem(ucs_status_t status) @@ -254,9 +303,15 @@ #endif } +static inline int mca_spml_ucx_is_strong_ordering(mca_spml_ucx_ctx_t *ctx) +{ + return (ctx->strong_sync != SPML_UCX_STRONG_ORDERING_NONE) || + ctx->synchronized_quiet; +} + static inline void mca_spml_ucx_remote_op_posted(mca_spml_ucx_ctx_t *ctx, int dst) { - if (OPAL_UNLIKELY(mca_spml_ucx.synchronized_quiet)) { + if (OPAL_UNLIKELY(mca_spml_ucx_is_strong_ordering(ctx))) { if (!opal_bitmap_is_set_bit(&ctx->put_op_bitmap, dst)) { ctx->put_proc_indexes[ctx->put_proc_count++] = dst; opal_bitmap_set_bit(&ctx->put_op_bitmap, dst); @@ -270,4 +325,3 @@ END_C_DECLS #endif - diff -Nru openmpi-4.0.3/oshmem/mca/sshmem/Makefile.in openmpi-4.1.4/oshmem/mca/sshmem/Makefile.in --- openmpi-4.0.3/oshmem/mca/sshmem/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/sshmem/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -651,6 +664,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1471,6 +1487,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1503,9 +1523,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1526,6 +1555,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1610,9 +1640,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1673,6 +1700,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1686,6 +1716,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/sshmem/mmap/Makefile.in openmpi-4.1.4/oshmem/mca/sshmem/mmap/Makefile.in --- openmpi-4.0.3/oshmem/mca/sshmem/mmap/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/sshmem/mmap/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -652,6 +665,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1472,6 +1488,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1504,9 +1524,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1527,6 +1556,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1611,9 +1641,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1674,6 +1701,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1687,6 +1717,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/sshmem/sshmem_types.h openmpi-4.1.4/oshmem/mca/sshmem/sshmem_types.h --- openmpi-4.0.3/oshmem/mca/sshmem/sshmem_types.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/sshmem/sshmem_types.h 2022-05-29 09:51:40.000000000 +0000 @@ -124,8 +124,8 @@ } map_segment_t; struct segment_allocator { - int (*realloc)(map_segment_t*, size_t newsize, void *, void **); - int (*free)(map_segment_t*, void*); + int (*sa_realloc)(map_segment_t*, size_t newsize, void *, void **); + int (*sa_free)(map_segment_t*, void*); }; END_C_DECLS diff -Nru openmpi-4.0.3/oshmem/mca/sshmem/sysv/Makefile.in openmpi-4.1.4/oshmem/mca/sshmem/sysv/Makefile.in --- openmpi-4.0.3/oshmem/mca/sshmem/sysv/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/sshmem/sysv/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -110,6 +110,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -117,6 +119,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -140,6 +143,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -242,6 +246,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -249,6 +254,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -329,6 +335,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -351,9 +358,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -363,6 +374,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -383,6 +395,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -653,6 +666,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1473,6 +1489,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1505,9 +1525,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1528,6 +1557,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1612,9 +1642,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1675,6 +1702,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1688,6 +1718,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/sshmem/ucx/Makefile.in openmpi-4.1.4/oshmem/mca/sshmem/ucx/Makefile.in --- openmpi-4.0.3/oshmem/mca/sshmem/ucx/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/sshmem/ucx/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -110,6 +110,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -117,6 +119,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -140,6 +143,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -242,6 +246,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -249,6 +254,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -329,6 +335,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -351,9 +358,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -363,6 +374,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -383,6 +395,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -652,6 +665,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1472,6 +1488,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1504,9 +1524,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1527,6 +1556,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1611,9 +1641,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1674,6 +1701,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1687,6 +1717,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/mca/sshmem/ucx/sshmem_ucx_module.c openmpi-4.1.4/oshmem/mca/sshmem/ucx/sshmem_ucx_module.c --- openmpi-4.0.3/oshmem/mca/sshmem/ucx/sshmem_ucx_module.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/sshmem/ucx/sshmem_ucx_module.c 2022-05-29 09:51:40.000000000 +0000 @@ -97,8 +97,8 @@ /* ////////////////////////////////////////////////////////////////////////// */ static segment_allocator_t sshmem_ucx_allocator = { - .realloc = sshmem_ucx_memheap_realloc, - .free = sshmem_ucx_memheap_free + .sa_realloc = sshmem_ucx_memheap_realloc, + .sa_free = sshmem_ucx_memheap_free }; static int @@ -223,7 +223,6 @@ { mca_spml_ucx_t *spml = (mca_spml_ucx_t*)mca_spml.self; unsigned flags; - int ret; #if HAVE_UCX_DEVICE_MEM int ret = OSHMEM_ERROR; diff -Nru openmpi-4.0.3/oshmem/mca/sshmem/verbs/Makefile.in openmpi-4.1.4/oshmem/mca/sshmem/verbs/Makefile.in --- openmpi-4.0.3/oshmem/mca/sshmem/verbs/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/mca/sshmem/verbs/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -651,6 +664,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1471,6 +1487,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1503,9 +1523,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1526,6 +1555,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1610,9 +1640,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1673,6 +1700,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1686,6 +1716,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/proc/proc.c openmpi-4.1.4/oshmem/proc/proc.c --- openmpi-4.0.3/oshmem/proc/proc.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/proc/proc.c 2022-05-29 09:51:40.000000000 +0000 @@ -38,13 +38,53 @@ static opal_mutex_t oshmem_proc_lock; +static opal_bitmap_t _oshmem_local_vpids; /* Track the vpids in local node */ +int oshmem_proc_init_set_local_vpids() +{ + opal_process_name_t wildcard_rank; + int ret = OMPI_SUCCESS; + char *val = NULL; + + ret = opal_bitmap_init(&_oshmem_local_vpids, ompi_comm_size(oshmem_comm_world)); + if (OSHMEM_SUCCESS != ret) { + return ret; + } + /* Add all local peers first */ + wildcard_rank.jobid = OMPI_PROC_MY_NAME->jobid; + wildcard_rank.vpid = OMPI_NAME_WILDCARD->vpid; + /* retrieve the local peers */ + OPAL_MODEX_RECV_VALUE(ret, OPAL_PMIX_LOCAL_PEERS, + &wildcard_rank, &val, OPAL_STRING); + + if (OPAL_SUCCESS == ret && NULL != val) { + char **peers = opal_argv_split(val, ','); + int i; + free(val); + for (i=0; NULL != peers[i]; i++) { + ompi_vpid_t local_rank = strtoul(peers[i], NULL, 10); + opal_bitmap_set_bit(&_oshmem_local_vpids, local_rank); + } + opal_argv_free(peers); + } + return OSHMEM_SUCCESS; +} + +bool oshmem_proc_on_local_node(int pe) +{ + return opal_bitmap_is_set_bit(&_oshmem_local_vpids, pe); +} int oshmem_proc_init(void) { + int ret; OBJ_CONSTRUCT(&oshmem_proc_lock, opal_mutex_t); + OBJ_CONSTRUCT(&_oshmem_local_vpids, opal_bitmap_t); + + ret = oshmem_proc_init_set_local_vpids(); + if(OSHMEM_SUCCESS != ret) { + return ret; + } - /* check oshmem_proc_data_t can fit within ompi_proc_t padding */ - assert(sizeof(oshmem_proc_data_t) <= OMPI_PROC_PADDING_SIZE); /* check ompi_proc_t padding is aligned on a pointer */ assert(0 == (offsetof(ompi_proc_t, padding) & (sizeof(char *)-1))); @@ -146,6 +186,7 @@ } } + OBJ_DESTRUCT(&_oshmem_local_vpids); OBJ_DESTRUCT(&oshmem_group_array); oshmem_group_cache_destroy(); @@ -157,8 +198,6 @@ int cur_pe, count_pe; int i; oshmem_group_t* group = NULL; - ompi_proc_t** proc_array = NULL; - ompi_proc_t* proc = NULL; assert(oshmem_proc_local()); @@ -178,52 +217,28 @@ OPAL_THREAD_LOCK(&oshmem_proc_lock); /* allocate an array */ - proc_array = (ompi_proc_t**) malloc(pe_size * sizeof(ompi_proc_t*)); - if (NULL == proc_array) { - OBJ_RELEASE(group); - OPAL_THREAD_UNLOCK(&oshmem_proc_lock); - return NULL ; + group->proc_vpids = (opal_vpid_t *) malloc(pe_size * sizeof(group->proc_vpids[0])); + if (NULL == group->proc_vpids) { + return NULL; } group->my_pe = oshmem_proc_pe(oshmem_proc_local()); group->is_member = 0; for (i = 0 ; i < ompi_comm_size(oshmem_comm_world) ; i++) { - proc = oshmem_proc_find(i); - if (NULL == proc) { - opal_output(0, - "Error: Can not find proc object for pe = %d", i); - free(proc_array); - OBJ_RELEASE(group); - OPAL_THREAD_UNLOCK(&oshmem_proc_lock); - return NULL; - } if (count_pe >= (int) pe_size) { break; } else if ((cur_pe >= pe_start) && ((pe_stride == 0) || (((cur_pe - pe_start) % pe_stride) == 0))) { - proc_array[count_pe++] = proc; - if (oshmem_proc_pe(proc) == group->my_pe) + group->proc_vpids[count_pe] = i; + count_pe ++; + if (i == group->my_pe) group->is_member = 1; } cur_pe++; } - group->proc_array = proc_array; group->proc_count = (int) count_pe; group->ompi_comm = NULL; - - /* Prepare peers list */ - OBJ_CONSTRUCT(&(group->peer_list), opal_list_t); - { - orte_namelist_t *peer = NULL; - - for (i = 0; i < group->proc_count; i++) { - peer = OBJ_NEW(orte_namelist_t); - peer->name.jobid = OSHMEM_PROC_JOBID(group->proc_array[i]); - peer->name.vpid = OSHMEM_PROC_VPID(group->proc_array[i]); - opal_list_append(&(group->peer_list), &peer->super); - } - } group->id = opal_pointer_array_add(&oshmem_group_array, group); memset(&group->g_scoll, 0, sizeof(mca_scoll_base_group_scoll_t)); @@ -258,20 +273,8 @@ mca_scoll_base_group_unselect(group); } - /* Destroy proc array */ - if (group->proc_array) { - free(group->proc_array); - } - - /* Destroy peer list */ - { - opal_list_item_t *item; - - while (NULL != (item = opal_list_remove_first(&(group->peer_list)))) { - /* destruct the item (we constructed it), then free the memory chunk */ - OBJ_RELEASE(item); - } - OBJ_DESTRUCT(&(group->peer_list)); + if (group->proc_vpids) { + free(group->proc_vpids); } /* reset the oshmem_group_array entry - make sure that the diff -Nru openmpi-4.0.3/oshmem/proc/proc.h openmpi-4.1.4/oshmem/proc/proc.h --- openmpi-4.0.3/oshmem/proc/proc.h 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/proc/proc.h 2022-05-29 09:51:40.000000000 +0000 @@ -18,8 +18,10 @@ #include "oshmem/constants.h" #include "opal/class/opal_list.h" +#include "opal/class/opal_bitmap.h" #include "opal/util/proc.h" #include "opal/dss/dss_types.h" +#include "opal/util/argv.h" #include "opal/mca/hwloc/hwloc-internal.h" #include "orte/types.h" @@ -40,19 +42,6 @@ #define OSHMEM_PE_INVALID (-1) -/* This struct will be copied into the padding field of an ompi_proc_t - * so the size of oshmem_proc_data_t must be less or equal than - * OMPI_PROC_PADDING_SIZE */ -struct oshmem_proc_data_t { - char * transport_ids; - int num_transports; -}; - -typedef struct oshmem_proc_data_t oshmem_proc_data_t; - -#define OSHMEM_PROC_DATA(proc) \ - ((oshmem_proc_data_t *)(proc)->padding) - /** * Group of Open SHMEM processes structure * @@ -64,9 +53,7 @@ int my_pe; int proc_count; /**< number of processes in group */ int is_member; /* true if my_pe is part of the group, participate in collectives */ - struct ompi_proc_t **proc_array; /**< list of pointers to ompi_proc_t structures - for each process in the group */ - opal_list_t peer_list; + opal_vpid_t *proc_vpids; /* vpids of each process in group */ /* Collectives module interface and data */ mca_scoll_base_group_scoll_t g_scoll; @@ -152,14 +139,21 @@ return oshmem_proc_for_find(name); } +static inline int oshmem_proc_pe_vpid(oshmem_group_t *group, int pe) +{ + if (OPAL_LIKELY(pe < group->proc_count)) { + return (group->proc_vpids[pe]); + } else { + return -1; + } +} + static inline int oshmem_proc_pe(ompi_proc_t *proc) { return (proc ? (int) ((orte_process_name_t*)&proc->super.proc_name)->vpid : -1); } -#define OSHMEM_PROC_JOBID(PROC) (((orte_process_name_t*)&((PROC)->super.proc_name))->jobid) -#define OSHMEM_PROC_VPID(PROC) (((orte_process_name_t*)&((PROC)->super.proc_name))->vpid) - +bool oshmem_proc_on_local_node(int pe); /** * Initialize the OSHMEM process predefined groups * @@ -235,40 +229,6 @@ */ OSHMEM_DECLSPEC void oshmem_proc_group_destroy(oshmem_group_t* group); -static inline ompi_proc_t *oshmem_proc_group_all(int pe) -{ - return oshmem_group_all->proc_array[pe]; -} - -static inline ompi_proc_t *oshmem_proc_group_find(oshmem_group_t* group, - int pe) -{ - int i = 0; - ompi_proc_t* proc = NULL; - - if (OPAL_LIKELY(group)) { - if (OPAL_LIKELY(group == oshmem_group_all)) { - /* To improve performance use direct index. It is feature of oshmem_group_all */ - proc = group->proc_array[pe]; - } else { - for (i = 0; i < group->proc_count; i++) { - if (pe == oshmem_proc_pe(group->proc_array[i])) { - proc = group->proc_array[i]; - break; - } - } - } - } else { - orte_process_name_t name; - - name.jobid = ORTE_PROC_MY_NAME->jobid; - name.vpid = pe; - proc = oshmem_proc_for_find(name); - } - - return proc; -} - static inline int oshmem_proc_group_find_id(oshmem_group_t* group, int pe) { int i = 0; @@ -276,7 +236,7 @@ if (group) { for (i = 0; i < group->proc_count; i++) { - if (pe == oshmem_proc_pe(group->proc_array[i])) { + if (pe == oshmem_proc_pe_vpid(group, i)) { id = i; break; } @@ -302,22 +262,6 @@ return oshmem_group_self->my_pe; } -static inline int oshmem_get_transport_id(int pe) -{ - ompi_proc_t *proc; - - proc = oshmem_proc_group_find(oshmem_group_all, pe); - - return (int) OSHMEM_PROC_DATA(proc)->transport_ids[0]; -} - -static inline int oshmem_get_transport_count(int pe) -{ - ompi_proc_t *proc; - proc = oshmem_proc_group_find(oshmem_group_all, pe); - return OSHMEM_PROC_DATA(proc)->num_transports; -} - END_C_DECLS #endif /* OSHMEM_PROC_PROC_H */ diff -Nru openmpi-4.0.3/oshmem/runtime/oshmem_shmem_finalize.c openmpi-4.1.4/oshmem/runtime/oshmem_shmem_finalize.c --- openmpi-4.0.3/oshmem/runtime/oshmem_shmem_finalize.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/runtime/oshmem_shmem_finalize.c 2022-05-29 09:51:40.000000000 +0000 @@ -59,7 +59,7 @@ #include "oshmem/shmem/shmem_lock.h" #include "oshmem/runtime/oshmem_shmem_preconnect.h" -extern int oshmem_shmem_globalexit_status; +extern int oshmem_shmem_inglobalexit; static int _shmem_finalize(void); @@ -85,7 +85,7 @@ if ((OSHMEM_SUCCESS == ret) && (state >= OMPI_MPI_STATE_INIT_COMPLETED && state < OMPI_MPI_STATE_FINALIZE_PAST_COMM_SELF_DESTRUCT) && - oshmem_shmem_globalexit_status == 0) { + (oshmem_shmem_inglobalexit == 0)) { PMPI_Comm_free(&oshmem_comm_world); ret = ompi_mpi_finalize(); } @@ -132,7 +132,7 @@ if (OSHMEM_SUCCESS != (ret = - MCA_SPML_CALL(del_procs(oshmem_group_all->proc_array, oshmem_group_all->proc_count)))) { + MCA_SPML_CALL(del_procs(oshmem_group_all, oshmem_group_all->proc_count)))) { return ret; } diff -Nru openmpi-4.0.3/oshmem/runtime/oshmem_shmem_init.c openmpi-4.1.4/oshmem/runtime/oshmem_shmem_init.c --- openmpi-4.0.3/oshmem/runtime/oshmem_shmem_init.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/runtime/oshmem_shmem_init.c 2022-05-29 09:51:40.000000000 +0000 @@ -148,7 +148,7 @@ { int ret = OSHMEM_SUCCESS; - OMPI_TIMING_INIT(32); + OMPI_TIMING_INIT(128); if (!oshmem_shmem_initialized) { ret = ompi_mpi_init(argc, argv, requested, provided, true); @@ -165,9 +165,14 @@ ret = _shmem_init(argc, argv, requested, provided); OMPI_TIMING_NEXT("_shmem_init"); + OMPI_TIMING_IMPORT_OPAL("_shmem_init"); OMPI_TIMING_IMPORT_OPAL("mca_scoll_mpi_comm_query"); OMPI_TIMING_IMPORT_OPAL("mca_scoll_enable"); OMPI_TIMING_IMPORT_OPAL("mca_scoll_base_select"); + OMPI_TIMING_IMPORT_OPAL("mca_memheap_base_select"); + OMPI_TIMING_IMPORT_OPAL("_memheap_create"); + OMPI_TIMING_IMPORT_OPAL_PREFIX("regular_mem", "mca_memheap_base_alloc_init"); + OMPI_TIMING_IMPORT_OPAL_PREFIX("device_mem", "mca_memheap_base_alloc_init"); if (OSHMEM_SUCCESS != ret) { return ret; @@ -183,6 +188,7 @@ /* this is a collective op, implies barrier */ MCA_MEMHEAP_CALL(get_all_mkeys()); OMPI_TIMING_NEXT("get_all_mkeys()"); + OMPI_TIMING_IMPORT_OPAL("mca_memheap_modex_recv_all"); oshmem_shmem_preconnect_all(); OMPI_TIMING_NEXT("shmem_preconnect_all"); @@ -259,6 +265,8 @@ oshmem_mpi_thread_requested = requested; oshmem_mpi_thread_provided = requested; + OPAL_TIMING_ENV_INIT(timing); + /* Register the OSHMEM layer's MCA parameters */ if (OSHMEM_SUCCESS != (ret = oshmem_shmem_register_params())) { error = "oshmem_info_register: oshmem_register_params failed"; @@ -271,43 +279,58 @@ opal_output_set_verbosity(shmem_api_logger_output, oshmem_shmem_api_verbose); + OPAL_TIMING_ENV_NEXT(timing, "shmem_params"); /* initialize info */ if (OSHMEM_SUCCESS != (ret = oshmem_info_init())) { error = "oshmem_info_init() failed"; goto error; } + OPAL_TIMING_ENV_NEXT(timing, "oshmem_info_init()"); + /* initialize proc */ if (OSHMEM_SUCCESS != (ret = oshmem_proc_init())) { error = "oshmem_proc_init() failed"; goto error; } + OPAL_TIMING_ENV_NEXT(timing, "oshmem_proc_init()"); + if (OSHMEM_SUCCESS != (ret = oshmem_op_init())) { error = "oshmem_op_init() failed"; goto error; } + OPAL_TIMING_ENV_NEXT(timing, "oshmem_op_init()"); + if (OSHMEM_SUCCESS != (ret = mca_base_framework_open(&oshmem_spml_base_framework, MCA_BASE_OPEN_DEFAULT))) { error = "mca_spml_base_open() failed"; goto error; } + OPAL_TIMING_ENV_NEXT(timing, "open SPML framework"); + if (OSHMEM_SUCCESS != (ret = mca_base_framework_open(&oshmem_scoll_base_framework, MCA_BASE_OPEN_DEFAULT))) { error = "mca_scoll_base_open() failed"; goto error; } + OPAL_TIMING_ENV_NEXT(timing, "open SCOLL framework"); + if (OSHMEM_SUCCESS != (ret = mca_spml_base_select(OPAL_ENABLE_PROGRESS_THREADS, 1))) { error = "mca_spml_base_select() failed"; goto error; } + OPAL_TIMING_ENV_NEXT(timing, "select SPML framework"); + if (OSHMEM_SUCCESS != (ret = mca_scoll_base_find_available(OPAL_ENABLE_PROGRESS_THREADS, 1))) { error = "mca_scoll_base_find_available() failed"; goto error; } + OPAL_TIMING_ENV_NEXT(timing, "find SCOLL components"); + /* Initialize each SHMEM handle subsystem */ /* Initialize requests */ if (OSHMEM_SUCCESS != (ret = oshmem_request_init())) { @@ -315,11 +338,15 @@ goto error; } + OPAL_TIMING_ENV_NEXT(timing, "oshmem_request_init()"); + if (OSHMEM_SUCCESS != (ret = oshmem_proc_group_init())) { error = "oshmem_proc_group_init() failed"; goto error; } + OPAL_TIMING_ENV_NEXT(timing, "oshmem_proc_group_init()"); + /* start SPML/BTL's */ ret = MCA_SPML_CALL(enable(true)); if (OSHMEM_SUCCESS != ret) { @@ -327,53 +354,73 @@ goto error; } + OPAL_TIMING_ENV_NEXT(timing, "MCA_SPML_CALL(enable())"); + ret = - MCA_SPML_CALL(add_procs(oshmem_group_all->proc_array, oshmem_group_all->proc_count)); + MCA_SPML_CALL(add_procs(oshmem_group_all, oshmem_group_all->proc_count)); if (OSHMEM_SUCCESS != ret) { error = "SPML add procs failed"; goto error; } + OPAL_TIMING_ENV_NEXT(timing, "MCA_SPML_CALL(add_procs())"); + if (OSHMEM_SUCCESS != (ret = mca_base_framework_open(&oshmem_sshmem_base_framework, MCA_BASE_OPEN_DEFAULT))) { error = "mca_sshmem_base_open() failed"; goto error; } + OPAL_TIMING_ENV_NEXT(timing, "open SSHMEM framework"); + if (OSHMEM_SUCCESS != (ret = mca_sshmem_base_select())) { error = "mca_sshmem_base_select() failed"; goto error; } + OPAL_TIMING_ENV_NEXT(timing, "select SSHMEM framework"); + if (OSHMEM_SUCCESS != (ret = mca_base_framework_open(&oshmem_memheap_base_framework, MCA_BASE_OPEN_DEFAULT))) { error = "mca_memheap_base_open() failed"; goto error; } + OPAL_TIMING_ENV_NEXT(timing, "open MEMHEAP framework"); + + if (OSHMEM_SUCCESS != (ret = mca_memheap_base_select())) { error = "mca_memheap_base_select() failed"; goto error; } + OPAL_TIMING_ENV_NEXT(timing, "select MEMHEAP framework"); + if (OSHMEM_SUCCESS != (ret = mca_base_framework_open(&oshmem_atomic_base_framework, MCA_BASE_OPEN_DEFAULT))) { error = "mca_atomic_base_open() failed"; goto error; } + OPAL_TIMING_ENV_NEXT(timing, "open ATOMIC framework"); + if (OSHMEM_SUCCESS != (ret = mca_atomic_base_find_available(OPAL_ENABLE_PROGRESS_THREADS, 1))) { error = "mca_atomic_base_find_available() failed"; goto error; } + OPAL_TIMING_ENV_NEXT(timing, "find avail ATOMIC framework"); + /* This call should be done after memheap initialization */ if (OSHMEM_SUCCESS != (ret = mca_scoll_enable())) { error = "mca_scoll_enable() failed"; goto error; } + OPAL_TIMING_ENV_NEXT(timing, "mca_scoll_enable()"); + (*provided) = oshmem_mpi_thread_provided; oshmem_mpi_thread_multiple = (oshmem_mpi_thread_provided == SHMEM_THREAD_MULTIPLE) ? true : false; + error: if (ret != OSHMEM_SUCCESS) { const char *err_msg = opal_strerror(ret); orte_show_help("help-shmem-runtime.txt", @@ -386,7 +433,7 @@ ret); return ret; } + OPAL_TIMING_ENV_NEXT(timing, "DONE"); return ret; } - diff -Nru openmpi-4.0.3/oshmem/shmem/c/Makefile.in openmpi-4.1.4/oshmem/shmem/c/Makefile.in --- openmpi-4.0.3/oshmem/shmem/c/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/shmem/c/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -113,6 +113,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -120,6 +122,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -143,6 +146,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -245,6 +249,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -252,6 +257,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -332,6 +338,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -354,9 +361,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -366,6 +377,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -386,6 +398,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -715,6 +728,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1535,6 +1551,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1567,9 +1587,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1590,6 +1619,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1674,9 +1704,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1737,6 +1764,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1750,6 +1780,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/shmem/c/profile/Makefile.in openmpi-4.1.4/oshmem/shmem/c/profile/Makefile.in --- openmpi-4.0.3/oshmem/shmem/c/profile/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/shmem/c/profile/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -125,6 +125,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -132,6 +134,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -155,6 +158,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -257,6 +261,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -264,6 +269,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -344,6 +350,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -366,9 +373,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -378,6 +389,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -398,6 +410,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -670,6 +683,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1490,6 +1506,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1522,9 +1542,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1545,6 +1574,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1629,9 +1659,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1692,6 +1719,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1705,6 +1735,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/shmem/c/shmem_alloc.c openmpi-4.1.4/oshmem/shmem/c/shmem_alloc.c --- openmpi-4.0.3/oshmem/shmem/c/shmem_alloc.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/shmem/c/shmem_alloc.c 2022-05-29 09:51:40.000000000 +0000 @@ -38,6 +38,7 @@ void* shmem_calloc(size_t count, size_t size) { size_t req_sz = count * size; + if (!req_sz) return NULL; void *ptr = _shmalloc(req_sz); if (ptr) { memset(ptr, 0, req_sz); diff -Nru openmpi-4.0.3/oshmem/shmem/c/shmem_broadcast.c openmpi-4.1.4/oshmem/shmem/c/shmem_broadcast.c --- openmpi-4.0.3/oshmem/shmem/c/shmem_broadcast.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/shmem/c/shmem_broadcast.c 2022-05-29 09:51:40.000000000 +0000 @@ -69,7 +69,7 @@ } /* Define actual PE using relative in active set */ - PE_root = oshmem_proc_pe(group->proc_array[PE_root]); + PE_root = oshmem_proc_pe_vpid(group, PE_root); /* Call collective broadcast operation */ rc = group->g_scoll.scoll_broadcast(group, diff -Nru openmpi-4.0.3/oshmem/shmem/c/shmem_free.c openmpi-4.1.4/oshmem/shmem/c/shmem_free.c --- openmpi-4.0.3/oshmem/shmem/c/shmem_free.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/shmem/c/shmem_free.c 2022-05-29 09:51:40.000000000 +0000 @@ -62,7 +62,7 @@ } if (s && s->allocator) { - rc = s->allocator->free(s, ptr); + rc = s->allocator->sa_free(s, ptr); } else { rc = MCA_MEMHEAP_CALL(free(ptr)); } diff -Nru openmpi-4.0.3/oshmem/shmem/c/shmem_ptr.c openmpi-4.1.4/oshmem/shmem/c/shmem_ptr.c --- openmpi-4.0.3/oshmem/shmem/c/shmem_ptr.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/shmem/c/shmem_ptr.c 2022-05-29 09:51:40.000000000 +0000 @@ -31,7 +31,6 @@ void *shmem_ptr(const void *dst_addr, int pe) { - ompi_proc_t *proc; sshmem_mkey_t *mkey; int i; void *rva; @@ -46,8 +45,7 @@ } /* The memory must be on the local node */ - proc = oshmem_proc_group_find(oshmem_group_all, pe); - if (!OPAL_PROC_ON_LOCAL_NODE(proc->super.proc_flags)) { + if (!oshmem_proc_on_local_node(pe)) { return NULL; } diff -Nru openmpi-4.0.3/oshmem/shmem/c/shmem_realloc.c openmpi-4.1.4/oshmem/shmem/c/shmem_realloc.c --- openmpi-4.0.3/oshmem/shmem/c/shmem_realloc.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/shmem/c/shmem_realloc.c 2022-05-29 09:51:40.000000000 +0000 @@ -56,7 +56,7 @@ } if (s && s->allocator) { - rc = s->allocator->realloc(s, size, ptr, &pBuff); + rc = s->allocator->sa_realloc(s, size, ptr, &pBuff); } else { rc = MCA_MEMHEAP_CALL(realloc(size, ptr, &pBuff)); } diff -Nru openmpi-4.0.3/oshmem/shmem/fortran/Makefile.in openmpi-4.1.4/oshmem/shmem/fortran/Makefile.in --- openmpi-4.0.3/oshmem/shmem/fortran/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/shmem/fortran/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -216,6 +216,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -223,6 +225,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -246,6 +249,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -348,6 +352,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -355,6 +360,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -435,6 +441,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -457,9 +464,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -469,6 +480,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -489,6 +501,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -903,6 +916,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1723,6 +1739,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1755,9 +1775,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1778,6 +1807,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1862,9 +1892,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1925,6 +1952,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1938,6 +1968,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/shmem/fortran/profile/Makefile.in openmpi-4.1.4/oshmem/shmem/fortran/profile/Makefile.in --- openmpi-4.0.3/oshmem/shmem/fortran/profile/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/shmem/fortran/profile/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -123,6 +123,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -130,6 +132,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -153,6 +156,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -255,6 +259,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -262,6 +267,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -342,6 +348,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -364,9 +371,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -376,6 +387,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -396,6 +408,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -694,6 +707,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1514,6 +1530,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1546,9 +1566,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1569,6 +1598,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1653,9 +1683,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1716,6 +1743,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1729,6 +1759,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/shmem/fortran/shmem_broadcast_f.c openmpi-4.1.4/oshmem/shmem/fortran/shmem_broadcast_f.c --- openmpi-4.0.3/oshmem/shmem/fortran/shmem_broadcast_f.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/shmem/fortran/shmem_broadcast_f.c 2022-05-29 09:51:40.000000000 +0000 @@ -85,7 +85,7 @@ }\ \ /* Define actual PE using relative in active set */\ - rel_PE_root = oshmem_proc_pe(group->proc_array[OMPI_FINT_2_INT(*PE_root)]);\ + rel_PE_root = oshmem_proc_pe_vpid(group, OMPI_FINT_2_INT(*PE_root));\ \ /* Call collective broadcast operation */\ rc = group->g_scoll.scoll_broadcast( group, \ diff -Nru openmpi-4.0.3/oshmem/shmem/man/man3/shmem_int_xor_to_all.3in openmpi-4.1.4/oshmem/shmem/man/man3/shmem_int_xor_to_all.3in --- openmpi-4.0.3/oshmem/shmem/man/man3/shmem_int_xor_to_all.3in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/shmem/man/man3/shmem_int_xor_to_all.3in 2022-05-29 09:51:40.000000000 +0000 @@ -1 +1 @@ -.so man3/shmem_short_xor_all.3 +.so man3/shmem_short_xor_to_all.3 diff -Nru openmpi-4.0.3/oshmem/shmem/man/man3/shmem_longlong_xor_to_all.3in openmpi-4.1.4/oshmem/shmem/man/man3/shmem_longlong_xor_to_all.3in --- openmpi-4.0.3/oshmem/shmem/man/man3/shmem_longlong_xor_to_all.3in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/shmem/man/man3/shmem_longlong_xor_to_all.3in 2022-05-29 09:51:40.000000000 +0000 @@ -1 +1 @@ -.so man3/shmem_short_xor_all.3 +.so man3/shmem_short_xor_to_all.3 diff -Nru openmpi-4.0.3/oshmem/shmem/man/man3/shmem_long_xor_to_all.3in openmpi-4.1.4/oshmem/shmem/man/man3/shmem_long_xor_to_all.3in --- openmpi-4.0.3/oshmem/shmem/man/man3/shmem_long_xor_to_all.3in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/shmem/man/man3/shmem_long_xor_to_all.3in 2022-05-29 09:51:40.000000000 +0000 @@ -1 +1 @@ -.so man3/shmem_short_xor_all.3 +.so man3/shmem_short_xor_to_all.3 diff -Nru openmpi-4.0.3/oshmem/shmem/man/man3/shmem_putmem_nbi.3in openmpi-4.1.4/oshmem/shmem/man/man3/shmem_putmem_nbi.3in --- openmpi-4.0.3/oshmem/shmem/man/man3/shmem_putmem_nbi.3in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/shmem/man/man3/shmem_putmem_nbi.3in 2022-05-29 09:51:40.000000000 +0000 @@ -143,7 +143,7 @@ for a definition of the term remotely accessible. .SH EXAMPLES -Consider this simple example for Fortran. +Consider this simple example for C. .Vb #include #include diff -Nru openmpi-4.0.3/oshmem/tools/oshmem_info/Makefile.am openmpi-4.1.4/oshmem/tools/oshmem_info/Makefile.am --- openmpi-4.0.3/oshmem/tools/oshmem_info/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/tools/oshmem_info/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -17,8 +17,8 @@ -DOPAL_CONFIGURE_HOST="\"@OPAL_CONFIGURE_HOST@\"" \ -DOPAL_CONFIGURE_DATE="\"@OPAL_CONFIGURE_DATE@\"" \ -DOMPI_BUILD_USER="\"$$USER\"" \ - -DOMPI_BUILD_HOST="\"`(hostname || uname -n) 2> /dev/null | sed 1q`\"" \ - -DOMPI_BUILD_DATE="\"`date`\"" \ + -DOMPI_BUILD_HOST="\"$${HOSTNAME:-`(hostname || uname -n) | sed 1q`}\"" \ + -DOMPI_BUILD_DATE="\"`$(top_srcdir)/config/getdate.sh`\"" \ -DOMPI_BUILD_CFLAGS="\"@CFLAGS@\"" \ -DOMPI_BUILD_CPPFLAGS="\"@CPPFLAGS@\"" \ -DOMPI_BUILD_CXXFLAGS="\"@CXXFLAGS@\"" \ diff -Nru openmpi-4.0.3/oshmem/tools/oshmem_info/Makefile.in openmpi-4.1.4/oshmem/tools/oshmem_info/Makefile.in --- openmpi-4.0.3/oshmem/tools/oshmem_info/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/tools/oshmem_info/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -136,6 +136,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -143,6 +145,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -166,6 +169,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -268,6 +272,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -275,6 +280,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -355,6 +361,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -377,9 +384,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -389,6 +400,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -409,6 +421,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -670,6 +683,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1490,6 +1506,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1522,9 +1542,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1545,6 +1574,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1629,9 +1659,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1692,6 +1719,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1705,6 +1735,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ @@ -1734,9 +1768,10 @@ AM_CPPFLAGS = -DOPAL_CONFIGURE_USER="\"@OPAL_CONFIGURE_USER@\"" \ -DOPAL_CONFIGURE_HOST="\"@OPAL_CONFIGURE_HOST@\"" \ -DOPAL_CONFIGURE_DATE="\"@OPAL_CONFIGURE_DATE@\"" \ - -DOMPI_BUILD_USER="\"$$USER\"" -DOMPI_BUILD_HOST="\"`(hostname \ - || uname -n) 2> /dev/null | sed 1q`\"" \ - -DOMPI_BUILD_DATE="\"`date`\"" \ + -DOMPI_BUILD_USER="\"$$USER\"" \ + -DOMPI_BUILD_HOST="\"$${HOSTNAME:-`(hostname || uname -n) | \ + sed 1q`}\"" \ + -DOMPI_BUILD_DATE="\"`$(top_srcdir)/config/getdate.sh`\"" \ -DOMPI_BUILD_CFLAGS="\"@CFLAGS@\"" \ -DOMPI_BUILD_CPPFLAGS="\"@CPPFLAGS@\"" \ -DOMPI_BUILD_CXXFLAGS="\"@CXXFLAGS@\"" \ diff -Nru openmpi-4.0.3/oshmem/tools/oshmem_info/param.c openmpi-4.1.4/oshmem/tools/oshmem_info/param.c --- openmpi-4.0.3/oshmem/tools/oshmem_info/param.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/tools/oshmem_info/param.c 2022-05-29 09:51:40.000000000 +0000 @@ -63,7 +63,7 @@ */ void oshmem_info_do_config(bool want_all) { - char *fortran; + char *fortran_binding; char *heterogeneous; char *memprofile; char *memdebug; @@ -129,13 +129,13 @@ /* setup strings that require allocation */ if (OMPI_BUILD_FORTRAN_BINDINGS >= OMPI_FORTRAN_MPIFH_BINDINGS) { - (void)asprintf(&fortran, "yes (%s)", + (void)asprintf(&fortran_binding, "yes (%s)", (OPAL_HAVE_WEAK_SYMBOLS ? "all" : (OMPI_FORTRAN_CAPS ? "caps" : (OMPI_FORTRAN_PLAIN ? "lower case" : (OMPI_FORTRAN_SINGLE_UNDERSCORE ? "single underscore" : "double underscore"))))); } else { - fortran = strdup("no"); + fortran_binding = strdup("no"); } #if OMPI_RTE_ORTE @@ -163,8 +163,8 @@ opal_info_out("Built host", "build:host", OMPI_BUILD_HOST); opal_info_out("C bindings", "bindings:c", "yes"); - opal_info_out("Fort shmem.fh", "bindings:fortran", fortran); - free(fortran); + opal_info_out("Fort shmem.fh", "bindings:fortran", fortran_binding); + free(fortran_binding); opal_info_out("Wrapper compiler rpath", "compiler:all:rpath", WRAPPER_RPATH_SUPPORT); diff -Nru openmpi-4.0.3/oshmem/tools/wrappers/Makefile.in openmpi-4.1.4/oshmem/tools/wrappers/Makefile.in --- openmpi-4.0.3/oshmem/tools/wrappers/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/tools/wrappers/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -124,6 +124,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -131,6 +133,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -154,6 +157,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -256,6 +260,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -263,6 +268,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -343,6 +349,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -365,9 +372,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -377,6 +388,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -397,6 +409,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -607,6 +620,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1427,6 +1443,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1459,9 +1479,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1482,6 +1511,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1566,9 +1596,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1629,6 +1656,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1642,6 +1672,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/oshmem/tools/wrappers/shmemc++-wrapper-data.txt.in openmpi-4.1.4/oshmem/tools/wrappers/shmemc++-wrapper-data.txt.in --- openmpi-4.0.3/oshmem/tools/wrappers/shmemc++-wrapper-data.txt.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/oshmem/tools/wrappers/shmemc++-wrapper-data.txt.in 2022-05-29 09:51:40.000000000 +0000 @@ -1,6 +1,7 @@ # Copyright (c) 2013 Mellanox Technologies, Inc. # All rights reserved. # Copyright (c) 2014-2015 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2021 IBM Corporation. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -28,8 +29,8 @@ # intentionally only link in the SHMEM and MPI libraries (ORTE, OPAL, # etc. are pulled in implicitly) because we intend SHMEM/MPI # applications to only use the SHMEM and MPI APIs. -libs=-loshmem -lmpi -libs_static=-loshmem -lmpi -l@ORTE_LIB_PREFIX@open-rte -l@OPAL_LIB_PREFIX@open-pal @OMPI_WRAPPER_EXTRA_LIBS@ +libs=-loshmem -l@OMPI_LIBMPI_NAME@ +libs_static=-loshmem -l@OMPI_LIBMPI_NAME@ -l@ORTE_LIB_PREFIX@open-rte -l@OPAL_LIB_PREFIX@open-pal @OMPI_WRAPPER_EXTRA_LIBS@ dyn_lib_file=liboshmem.@OPAL_DYN_LIB_SUFFIX@ static_lib_file=liboshmem.a required_file= diff -Nru openmpi-4.0.3/README openmpi-4.1.4/README --- openmpi-4.0.3/README 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/README 2022-05-29 09:51:40.000000000 +0000 @@ -8,11 +8,11 @@ University of Stuttgart. All rights reserved. Copyright (c) 2004-2007 The Regents of the University of California. All rights reserved. -Copyright (c) 2006-2018 Cisco Systems, Inc. All rights reserved. +Copyright (c) 2006-2022 Cisco Systems, Inc. All rights reserved. Copyright (c) 2006-2011 Mellanox Technologies. All rights reserved. Copyright (c) 2006-2012 Oracle and/or its affiliates. All rights reserved. Copyright (c) 2007 Myricom, Inc. All rights reserved. -Copyright (c) 2008-2019 IBM Corporation. All rights reserved. +Copyright (c) 2008-2020 IBM Corporation. All rights reserved. Copyright (c) 2010 Oak Ridge National Labs. All rights reserved. Copyright (c) 2011 University of Houston. All rights reserved. Copyright (c) 2013-2017 Intel, Inc. All rights reserved. @@ -21,7 +21,8 @@ reserved. Copyright (c) 2017 Research Organization for Information Science and Technology (RIST). All rights reserved. -Copyright (c) 2019 Triad National Security, LLC. All rights +Copyright (c) 2020 Google, LLC. All rights reserved. +Copyright (c) 2019-2020 Triad National Security, LLC. All rights reserved. $COPYRIGHT$ @@ -66,11 +67,45 @@ =========================================================================== The following abbreviated list of release notes applies to this code -base as of this writing (February 2019): +base as of this writing (December 2020): General notes ------------- +- Prior to Open MPI v4.1.0, the OMPIO IO component was used for MPI-IO + support on all filesystems except Lustre. Instead, when using + Lustre filesystems, the ROMIO IO component was used for MPI-IO + support. Starting with Open MPI v4.1.0, OMPIO is now used by + default for MPI-IO support on all filesystems (including Lustre). + As with any Open MPI MCA component, the selection of which component + is used can be set at run time by setting the "io" MCA param to + either "ompio" or "romio". For example: "mpirun --mca io ompio ..." + +- Open MPI v4.0.4 fixed an issue with the memory patcher's ability to + intercept shmat and shmdt that could cause wrong answers. This was + observed on RHEL8.1 running on ppc64le, but it may affect other systems. + + For more information, please see: + https://github.com/open-mpi/ompi/pull/7778 + +- WARNING - Open MPI v4.0.0-4.0.3 accidentally did not include some + constants from the mpi_f08 module interface (mostly dealing with C and + C++ datatypes). + + Additionally, v4.0.3 specifically dropped some constants from the + mpi_f08 module interface that were previously included in v4.0.0-v4.0.2. + + All mpi_f08 symbols have been restored in v4.0.4. + + There are two consequences to this sequence of events: + 1. There was an ABI break introduced in v4.0.3 (i.e., some + mpi_f08 symbols were dropped). + 2. New mpi_f08 symbols were introduced in v4.0.4 (i.e., all missing + symbols were restored). Applications who use these symbols and + who compile against v4.0.4 will not be able to successfully + run-time link against the libmpi_usempif08.so shared library + from prior versions of the v4.0.x series. + - Open MPI now includes two public software layers: MPI and OpenSHMEM. Throughout this document, references to Open MPI implicitly include both of these layers. When distinction between these two layers is @@ -142,6 +177,19 @@ using the clang-4.0 system compiler. A workaround is to build Open MPI using the GNU compiler. +- Open MPI has taken some steps towards Reproducible Builds + (https://reproducible-builds.org/). Specifically, Open MPI's + "configure" and "make" process, by default, records the build date + and some system-specific information such as the hostname where Open + MPI was built and the username who built it. If you desire a + Reproducible Build, set the $SOURCE_DATE_EPOCH, $USER and $HOSTNAME + environment variables before invoking "configure" and "make", and + Open MPI will use those values instead of invoking "whoami" and/or + "hostname", respectively. See + https://reproducible-builds.org/docs/source-date-epoch/ for + information on the expected format and content of the + $SOURCE_DATE_EPOCH variable. + Platform Notes -------------- @@ -286,6 +334,22 @@ version of the Intel 12.1 Linux compiler suite, the problem will go away. +- Users have reported (see + https://github.com/open-mpi/ompi/issues/7615) that the Intel Fortran + compiler will fail to link Fortran-based MPI applications on macOS + with linker errors similar to this: + + Undefined symbols for architecture x86_64: + "_ompi_buffer_detach_f08", referenced from: + import-atom in libmpi_usempif08.dylib + ld: symbol(s) not found for architecture x86_64 + + It appears that setting the environment variable + lt_cx_ld_force_load=no before invoking Open MPI's configure script + works around the issue. For example: + + shell$ lt_cv_ld_force_load=no ./configure ... + - Early versions of the Portland Group 6.0 compiler have problems creating the C++ MPI bindings as a shared library (e.g., v6.0-1). Tests with later versions show that this has been fixed (e.g., @@ -634,6 +698,9 @@ collectives, copies the data to staging buffers if GPU buffers, then calls underlying collectives to do the work. +- The "ucc" coll component serves as integration layer for Unified + Collective Communication (UCC) library: https://github.com/openucx/ucc. + OpenSHMEM Collectives --------------------- @@ -671,7 +738,7 @@ - "cm" supports a smaller number of networks (and they cannot be used together), but may provide better overall MPI performance: - - Intel Omni-Path PSM2 + - Intel Omni-Path PSM2 (version 11.2.173 or later) - Intel True Scale PSM (QLogic InfiniPath) - OpenFabrics Interfaces ("libfabric" tag matching) - Portals 4 @@ -730,6 +797,11 @@ included in this release of Open MPI for backwards compatibility; the "ucx" PML should be used insead. + There is a known issue when using UCX with very old Mellanox Infiniband + HCAs, in particular HCAs preceding the introduction of the ConnectX + product line, which can result in Open MPI crashing in MPI_Finalize. + This issue will be addressed by UCX release 1.9.0 and newer. + - The main OpenSHMEM network model is "ucx"; it interfaces directly with UCX. @@ -1040,6 +1112,12 @@ hcoll is the support library for MPI collective operation offload on Mellanox ConnectX-3 HCAs (and later). +--with-ucc= + Specify the directory where the Unified Collective Communication + library and header files are located. This option is generally only + necessary if the ucc headers and libraries are not in default + compiler/linker search paths. + --with-knem= Specify the directory where the knem libraries and header files are located. This option is generally only necessary if the knem headers @@ -1460,15 +1538,31 @@ Enable the PERUSE MPI data analysis interface. --enable-heterogeneous - Enable support for running on heterogeneous clusters (e.g., machines - with different endian representations). Heterogeneous support is - disabled by default because it imposes a minor performance penalty. + Enable support for running on heterogeneous clusters where data + types are equivalent sizes across nodes, but may have differing + endian representations. Heterogeneous support is disabled by + default because it imposes a minor performance penalty. + + Note that the MPI standard does not guarantee that all + heterogeneous communication will function properly, especially + when the conversion between the different representations leads to + loss of accuracy or range. For example, if a message with a + 16-bit integer datatype is sent with value 0x10000 to a receiver + where the same integer datatype is only 8 bits, the value will be + truncated at the receiver. Similarly, problems can occur if a + floating point datatype in one MPI process uses X1 bits for its + mantissa and Y1 bits for its exponent, but the same floating point + datatype in another MPI process uses X2 and Y2 bits, respectively + (where X1 != X2 and/or Y1 != Y2). Type size differences like this + can lead to unexpected behavior. + + Open MPI's heterogeneous support correctly handles endian + differences between datatype representations that are otherwise + compatible. - --enable-spc +--enable-spc Enable software-based performance counters capability. - *** THIS FUNCTIONALITY IS CURRENTLY BROKEN - DO NOT USE *** - --with-wrapper-cflags= --with-wrapper-cxxflags= --with-wrapper-fflags= @@ -2020,6 +2114,9 @@ shell$ srun -N 2 hello_world_oshmem + NOTE: Starting with Open MPI v4.0.5, libmpi will honor SLURM's binding + policy even if that would leave the processes unbound. + =========================================================================== The Modular Component Architecture (MCA) diff -Nru openmpi-4.0.3/test/asm/Makefile.in openmpi-4.1.4/test/asm/Makefile.in --- openmpi-4.0.3/test/asm/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/test/asm/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -120,6 +120,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -127,6 +129,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -150,6 +153,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -252,6 +256,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -259,6 +264,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -339,6 +345,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -361,9 +368,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -373,6 +384,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -393,6 +405,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -868,6 +881,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1688,6 +1704,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1720,9 +1740,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1743,6 +1772,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1827,9 +1857,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1890,6 +1917,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1903,6 +1933,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/test/asm/run_tests openmpi-4.1.4/test/asm/run_tests --- openmpi-4.0.3/test/asm/run_tests 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/test/asm/run_tests 2022-05-29 09:51:40.000000000 +0000 @@ -1,26 +1,39 @@ #!/bin/sh +# Copyright (c) 2020 Cisco Systems, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ retval=-1 +argv=$* -progname="`basename $*`" +set $* +while shift; do + if test "$1" = "--test-name"; then + progname=`basename $2` + break + fi +done echo "--> Testing $progname" for threads in 1 2 4 5 8 ; do - $* $threads + $argv $threads result=$? if test "$result" = "0" ; then echo " - $threads threads: Passed" - if test "$retval" = "-1" ; then + if test $retval -eq -1 ; then retval=0 fi elif test "$result" = "77" ; then echo " - $threads threads: Skipped" - if test "$retval" = "-1" ; then + if test $retval -eq -1 ; then retval=77 fi else echo " - $threads threads: Failed" - retval="$result" + retval=$result fi done diff -Nru openmpi-4.0.3/test/class/Makefile.in openmpi-4.1.4/test/class/Makefile.in --- openmpi-4.0.3/test/class/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/test/class/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -125,6 +125,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -132,6 +134,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -155,6 +158,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -257,6 +261,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -264,6 +269,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -344,6 +350,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -366,9 +373,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -378,6 +389,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -398,6 +410,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -849,6 +862,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1669,6 +1685,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1701,9 +1721,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1724,6 +1753,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1808,9 +1838,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1871,6 +1898,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1884,6 +1914,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/test/datatype/external32.c openmpi-4.1.4/test/datatype/external32.c --- openmpi-4.0.3/test/datatype/external32.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/test/datatype/external32.c 2022-05-29 09:51:40.000000000 +0000 @@ -33,13 +33,29 @@ static int pack_unpack_datatype( void* send_data, ompi_datatype_t *datatype, int count, void* recv_data, checker_t validator, void *validator_arg ); -static void dump_hex(void* what, size_t length); - -static void dump_hex(void* what, size_t length) +static void +dump_hex(const char* msg, const void* vbuf, int nbytes, + int start_from, int stop_at, int vals_per_line) { - size_t i; - for( i = 0; i < length; i++ ) { - printf("%02x", (unsigned int)(((unsigned char*)what)[i])); + const char* buf = (const char*)vbuf; + + if( -1 == stop_at ) stop_at = nbytes; + + for (int i = (start_from / vals_per_line) * vals_per_line; i < nbytes; ++i) { + if( i >= stop_at ) return; + if (0 == (i % vals_per_line)) { + if( NULL == msg) printf("\n"); + else printf("\n%s", msg); + } else { + if (i % 4 == 0) { + printf(" "); + } + } + printf(" "); + if( i < start_from ) + printf(" "); + else + printf("%02x", *((unsigned char *)(buf + i))); } } @@ -131,7 +147,8 @@ return -1; } - printf("packed %ld bytes into a %ld bytes buffer ", position, buffer_size); dump_hex(buffer, position); printf("\n"); + printf("packed %ld bytes into a %ld bytes buffer ", position, buffer_size); + dump_hex(NULL, buffer, position, 0, -1, 24); printf("\n"); position = 0; error = ompi_datatype_unpack_external("external32", buffer, buffer_size, &position, @@ -155,12 +172,14 @@ if( verbose ) { printf("send data %08x %08x \n", send_data[0], send_data[1]); - printf("data "); dump_hex(&send_data, sizeof(int32_t) * 2); printf("\n"); + printf("data "); + dump_hex(NULL, &send_data, sizeof(int32_t) * 2, 0, -1, 24); printf("\n"); } (void)pack_unpack_datatype( send_data, &ompi_mpi_int32_t.dt, 2, recv_data, check_contiguous, (void*)&ompi_mpi_int32_t.dt ); if( verbose ) { - printf("recv "); dump_hex(&recv_data, sizeof(int32_t) * 2); printf("\n"); + printf("recv "); + dump_hex(NULL, &recv_data, sizeof(int32_t) * 2, 0, -1, 24); printf("\n"); printf("recv data %08x %08x \n", recv_data[0], recv_data[1]); } if( (send_data[0] != recv_data[0]) || (send_data[1] != recv_data[1]) ) { @@ -175,12 +194,14 @@ if( verbose ) { printf("send data %08x %08x \n", send_data[0], send_data[1]); - printf("data "); dump_hex(&send_data, sizeof(int16_t) * 2); printf("\n"); + printf("data "); + dump_hex(NULL, &send_data, sizeof(int16_t) * 2, 0, -1, 24); printf("\n"); } (void)pack_unpack_datatype( send_data, &ompi_mpi_int16_t.dt, 2, recv_data, check_contiguous, (void*)&ompi_mpi_int16_t.dt ); if( verbose ) { - printf("recv "); dump_hex(&recv_data, sizeof(int16_t) * 2); printf("\n"); + printf("recv "); + dump_hex(NULL, &recv_data, sizeof(int16_t) * 2, 0, -1, 24); printf("\n"); printf("recv data %08x %08x \n", recv_data[0], recv_data[1]); } if( (send_data[0] != recv_data[0]) || (send_data[1] != recv_data[1]) ) { @@ -208,16 +229,18 @@ if( verbose ) { printf("send data %08x %x08x %08x \n", send_data[0], send_data[1], send_data[2]); - printf("data "); dump_hex(&send_data, sizeof(int32_t) * 3); printf("\n"); + printf("data "); dump_hex(NULL, &send_data, sizeof(int32_t) * 3, 0, -1, 24); printf("\n"); } (void)pack_unpack_datatype( send_data, ddt, 1, recv_data, check_vector, (void*)&ompi_mpi_int32_t.dt ); if( verbose ) { - printf("recv "); dump_hex(&recv_data, sizeof(int32_t) * 3); printf("\n"); + printf("recv "); dump_hex(NULL, &recv_data, sizeof(int32_t) * 3, 0, -1, 24); printf("\n"); printf("recv data %08x %08x %08x \n", recv_data[0], recv_data[1], recv_data[2]); } ompi_datatype_destroy(&ddt); if( (send_data[0] != recv_data[0]) || (send_data[2] != recv_data[2]) ) { printf("Error during external32 pack/unack for vector types (MPI_INT32_T)\n"); + printf("[0]: %d ? %d | [2]: %d ? %d ([1]: %d ? %d)\n", send_data[0], recv_data[0], + send_data[2], recv_data[2], send_data[1], recv_data[1]); exit(-1); } } diff -Nru openmpi-4.0.3/test/datatype/Makefile.am openmpi-4.1.4/test/datatype/Makefile.am --- openmpi-4.0.3/test/datatype/Makefile.am 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/test/datatype/Makefile.am 2022-05-29 09:51:40.000000000 +0000 @@ -15,8 +15,8 @@ # if PROJECT_OMPI - MPI_TESTS = checksum position position_noncontig ddt_test ddt_raw ddt_raw2 unpack_ooo ddt_pack external32 large_data - MPI_CHECKS = to_self + MPI_TESTS = checksum position position_noncontig ddt_test ddt_raw ddt_raw2 unpack_ooo ddt_pack external32 large_data partial + MPI_CHECKS = to_self reduce_local endif TESTS = opal_datatype_test unpack_hetero $(MPI_TESTS) @@ -96,5 +96,17 @@ unpack_hetero_LDADD = \ $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la +reduce_local_SOURCES = reduce_local.c +reduce_local_LDFLAGS = $(OMPI_PKG_CONFIG_LDFLAGS) +reduce_local_LDADD = \ + $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la + +partial_SOURCES = partial.c +partial_LDFLAGS = $(OMPI_PKG_CONFIG_LDFLAGS) +partial_LDADD = \ + $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la + distclean: rm -rf *.dSYM .deps .libs *.log *.o *.trs $(check_PROGRAMS) Makefile diff -Nru openmpi-4.0.3/test/datatype/Makefile.in openmpi-4.1.4/test/datatype/Makefile.in --- openmpi-4.0.3/test/datatype/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/test/datatype/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,6 +116,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -123,6 +125,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -146,6 +149,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -248,6 +252,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -255,6 +260,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -335,6 +341,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -357,9 +364,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -369,6 +380,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -389,6 +401,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -419,10 +432,11 @@ @PROJECT_OMPI_TRUE@ ddt_test$(EXEEXT) ddt_raw$(EXEEXT) \ @PROJECT_OMPI_TRUE@ ddt_raw2$(EXEEXT) unpack_ooo$(EXEEXT) \ @PROJECT_OMPI_TRUE@ ddt_pack$(EXEEXT) external32$(EXEEXT) \ -@PROJECT_OMPI_TRUE@ large_data$(EXEEXT) +@PROJECT_OMPI_TRUE@ large_data$(EXEEXT) partial$(EXEEXT) am__EXEEXT_2 = opal_datatype_test$(EXEEXT) unpack_hetero$(EXEEXT) \ $(am__EXEEXT_1) -@PROJECT_OMPI_TRUE@am__EXEEXT_3 = to_self$(EXEEXT) +@PROJECT_OMPI_TRUE@am__EXEEXT_3 = to_self$(EXEEXT) \ +@PROJECT_OMPI_TRUE@ reduce_local$(EXEEXT) am_checksum_OBJECTS = checksum.$(OBJEXT) checksum_OBJECTS = $(am_checksum_OBJECTS) checksum_DEPENDENCIES = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ @@ -487,6 +501,13 @@ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(opal_datatype_test_LDFLAGS) \ $(LDFLAGS) -o $@ +am_partial_OBJECTS = partial.$(OBJEXT) +partial_OBJECTS = $(am_partial_OBJECTS) +partial_DEPENDENCIES = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la +partial_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(partial_LDFLAGS) $(LDFLAGS) -o $@ am_position_OBJECTS = position.$(OBJEXT) position_OBJECTS = $(am_position_OBJECTS) position_DEPENDENCIES = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ @@ -503,6 +524,14 @@ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(position_noncontig_LDFLAGS) \ $(LDFLAGS) -o $@ +am_reduce_local_OBJECTS = reduce_local.$(OBJEXT) +reduce_local_OBJECTS = $(am_reduce_local_OBJECTS) +reduce_local_DEPENDENCIES = \ + $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la +reduce_local_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(reduce_local_LDFLAGS) $(LDFLAGS) -o $@ am_to_self_OBJECTS = to_self.$(OBJEXT) to_self_OBJECTS = $(am_to_self_OBJECTS) to_self_DEPENDENCIES = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la @@ -561,14 +590,16 @@ SOURCES = $(checksum_SOURCES) $(ddt_pack_SOURCES) $(ddt_raw_SOURCES) \ $(ddt_raw2_SOURCES) $(ddt_test_SOURCES) $(external32_SOURCES) \ $(large_data_SOURCES) $(opal_datatype_test_SOURCES) \ - $(position_SOURCES) $(position_noncontig_SOURCES) \ + $(partial_SOURCES) $(position_SOURCES) \ + $(position_noncontig_SOURCES) $(reduce_local_SOURCES) \ $(to_self_SOURCES) $(unpack_hetero_SOURCES) \ $(unpack_ooo_SOURCES) DIST_SOURCES = $(checksum_SOURCES) $(ddt_pack_SOURCES) \ $(ddt_raw_SOURCES) $(ddt_raw2_SOURCES) $(ddt_test_SOURCES) \ $(external32_SOURCES) $(large_data_SOURCES) \ - $(opal_datatype_test_SOURCES) $(position_SOURCES) \ - $(position_noncontig_SOURCES) $(to_self_SOURCES) \ + $(opal_datatype_test_SOURCES) $(partial_SOURCES) \ + $(position_SOURCES) $(position_noncontig_SOURCES) \ + $(reduce_local_SOURCES) $(to_self_SOURCES) \ $(unpack_hetero_SOURCES) $(unpack_ooo_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ @@ -927,6 +958,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1747,6 +1781,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1779,9 +1817,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1802,6 +1849,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1886,9 +1934,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1949,6 +1994,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1962,6 +2010,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ @@ -1988,8 +2040,8 @@ ucx_CFLAGS = @ucx_CFLAGS@ ucx_LIBS = @ucx_LIBS@ ucx_STATIC_LIBS = @ucx_STATIC_LIBS@ -@PROJECT_OMPI_TRUE@MPI_TESTS = checksum position position_noncontig ddt_test ddt_raw ddt_raw2 unpack_ooo ddt_pack external32 large_data -@PROJECT_OMPI_TRUE@MPI_CHECKS = to_self +@PROJECT_OMPI_TRUE@MPI_TESTS = checksum position position_noncontig ddt_test ddt_raw ddt_raw2 unpack_ooo ddt_pack external32 large_data partial +@PROJECT_OMPI_TRUE@MPI_CHECKS = to_self reduce_local unpack_ooo_SOURCES = unpack_ooo.c ddt_lib.c ddt_lib.h unpack_ooo_LDFLAGS = $(OMPI_PKG_CONFIG_LDFLAGS) unpack_ooo_LDADD = \ @@ -2063,6 +2115,18 @@ unpack_hetero_LDADD = \ $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la +reduce_local_SOURCES = reduce_local.c +reduce_local_LDFLAGS = $(OMPI_PKG_CONFIG_LDFLAGS) +reduce_local_LDADD = \ + $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la + +partial_SOURCES = partial.c +partial_LDFLAGS = $(OMPI_PKG_CONFIG_LDFLAGS) +partial_LDADD = \ + $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \ + $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la + all: all-am .SUFFIXES: @@ -2138,6 +2202,10 @@ @rm -f opal_datatype_test$(EXEEXT) $(AM_V_CCLD)$(opal_datatype_test_LINK) $(opal_datatype_test_OBJECTS) $(opal_datatype_test_LDADD) $(LIBS) +partial$(EXEEXT): $(partial_OBJECTS) $(partial_DEPENDENCIES) $(EXTRA_partial_DEPENDENCIES) + @rm -f partial$(EXEEXT) + $(AM_V_CCLD)$(partial_LINK) $(partial_OBJECTS) $(partial_LDADD) $(LIBS) + position$(EXEEXT): $(position_OBJECTS) $(position_DEPENDENCIES) $(EXTRA_position_DEPENDENCIES) @rm -f position$(EXEEXT) $(AM_V_CCLD)$(position_LINK) $(position_OBJECTS) $(position_LDADD) $(LIBS) @@ -2146,6 +2214,10 @@ @rm -f position_noncontig$(EXEEXT) $(AM_V_CCLD)$(position_noncontig_LINK) $(position_noncontig_OBJECTS) $(position_noncontig_LDADD) $(LIBS) +reduce_local$(EXEEXT): $(reduce_local_OBJECTS) $(reduce_local_DEPENDENCIES) $(EXTRA_reduce_local_DEPENDENCIES) + @rm -f reduce_local$(EXEEXT) + $(AM_V_CCLD)$(reduce_local_LINK) $(reduce_local_OBJECTS) $(reduce_local_LDADD) $(LIBS) + to_self$(EXEEXT): $(to_self_OBJECTS) $(to_self_DEPENDENCIES) $(EXTRA_to_self_DEPENDENCIES) @rm -f to_self$(EXEEXT) $(AM_V_CCLD)$(to_self_LINK) $(to_self_OBJECTS) $(to_self_LDADD) $(LIBS) @@ -2174,8 +2246,10 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/large_data.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opal_datatype_test.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opal_ddt_lib.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/partial.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/position.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/position_noncontig.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reduce_local.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/to_self.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unpack_hetero.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unpack_ooo.Po@am__quote@ @@ -2486,6 +2560,13 @@ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +partial.log: partial$(EXEEXT) + @p='partial$(EXEEXT)'; \ + b='partial'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ diff -Nru openmpi-4.0.3/test/datatype/partial.c openmpi-4.1.4/test/datatype/partial.c --- openmpi-4.0.3/test/datatype/partial.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/test/datatype/partial.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,171 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2018-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2018 Triad National Security, LLC. All rights + * reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" +#include "opal/datatype/opal_convertor.h" +#include "ompi/datatype/ompi_datatype.h" +#include "opal/datatype/opal_datatype_checksum.h" +#include "opal/runtime/opal.h" + +#include +#include +#include + +#define TYPE_COUNT 3 +#define TYPE_BLEN 2 +#define TYPE_STRIDE 4 + +#define CONT_COUNT 2 + +#define COUNT 3 + +#define CHUNK ((TYPE_BLEN*8)*2-4) + +/** + * Print how many elements on both sides of ptr. + */ +static void show_neighborhood(double* ptr, int how_many, bool show_hex) +{ + int i; + + printf("%12p: ", (void*)ptr); + for( i = -how_many; i < how_many; i++ ) { + if( 0 == i ) { + printf(" <%g> ", ptr[i]); + } else { + printf(" %g ", ptr[i]); + } + } + if( show_hex ) { + char* cptr = (char*)ptr; + printf("\n : "); + for( i = -how_many; i < how_many; i++ ) { + if( 0 == i ) printf(" <"); + for( int j = 0; j < sizeof(double); j++ ) { + printf("%02x", cptr[i * sizeof(double)+j]); + } + if( 0 == i ) printf("> "); + else printf(" "); + } + } + printf("\n\n"); +} + +/** + * -------G---[---][---] OPAL_LOOP_S 19 times the next 2 elements extent 18432 + * -cC---P-DB-[---][---] OPAL_FLOAT8 count 72 disp 0x80 (128) blen 16 extent 256 (size 9216) + * -------G---[---][---] OPAL_LOOP_E prev 2 elements first elem displacement 128 size of data 9216 + * -------G---[---][---] OPAL_LOOP_E prev 3 elements first elem displacement 128 size of data 175104 + */ + +int main( int argc, char* argv[] ) +{ + opal_datatype_t* vector; + ompi_datatype_t* base; + uint32_t iov_count; + size_t max_data, size, length; + struct iovec iov[2]; + opal_convertor_t* convertor; + ptrdiff_t extent, base_extent; + double *array, *packed; + char* bpacked; + int i, j; + + opal_init_util (NULL, NULL); + ompi_datatype_init(); + + ompi_datatype_create_vector(TYPE_COUNT, TYPE_BLEN, TYPE_STRIDE, MPI_DOUBLE, &base); + ompi_datatype_create_contiguous(CONT_COUNT, base, &vector); + + opal_datatype_commit( vector ); + + ompi_datatype_dump(vector); + + opal_datatype_type_size(vector, &size); + opal_datatype_type_extent(vector, &extent); + opal_datatype_type_extent(base, &base_extent); + + array = (double*)malloc( extent * COUNT ); + packed = (double*)malloc( size * COUNT ); + bpacked = (char*)packed; + + /** + * Initialize the sparse data using the index. + */ + for( i = 0; i < (TYPE_BLEN * TYPE_COUNT * CONT_COUNT * COUNT); i++ ) { + packed[i] = (double)(i % TYPE_BLEN); + } + memset(array, extent * COUNT, TYPE_BLEN + 1); + + /** + * Pack the sparse data into the packed array. This simulate the first step + * of the buffered operation. + */ + convertor = opal_convertor_create( opal_local_arch, 0 ); + opal_convertor_prepare_for_recv( convertor, vector, COUNT, array ); + + for( length = 0; length < (size * COUNT); ) { + iov[0].iov_base = bpacked + length; + iov[0].iov_len = CHUNK; + max_data = iov[0].iov_len; + + iov_count = 1; + opal_convertor_unpack( convertor, iov, &iov_count, &max_data ); + length += max_data; + + int idx = 0, checked = 0; + for( int m = 0; m < COUNT; m++ ) { + char* mptr = (char*)array + m * extent; + for( int k = 0; k < CONT_COUNT; k++ ) { + char* kptr = mptr + k * base_extent; + for( j = 0; j < TYPE_COUNT; j++ ) { + double* jarray = (double*)kptr + j * TYPE_STRIDE; + for( i = 0; i < TYPE_BLEN; i++ ) { + checked += sizeof(double); + if( checked > length ) + goto next_iteration; + if( jarray[i] != (double)(idx % TYPE_BLEN) ) { + fprintf(stderr, "\n\n\nError during check for the %d element, length %" PRIsize_t " (chunk %d)\n", + idx, length, CHUNK); + fprintf(stderr, "Error at position %d [%d:%d:%d:%d] found %g expected %g\n\n\n", + idx, m, k, j, i, jarray[i], (double)(idx % TYPE_BLEN)); + show_neighborhood(jarray + i, 4, true); + exit(-1); + } + idx++; + } + } + } + } +next_iteration: + /* nothing special to do here, just move to the next conversion */ + continue; + } + + OBJ_RELEASE(convertor); + + /** + * The datatype is not useful anymore + */ + OBJ_RELEASE(vector); + + free(array); + free(packed); + + /* clean-ups all data allocations */ + ompi_datatype_finalize(); + opal_finalize_util (); + + return 0; +} diff -Nru openmpi-4.0.3/test/datatype/reduce_local.c openmpi-4.1.4/test/datatype/reduce_local.c --- openmpi-4.0.3/test/datatype/reduce_local.c 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/test/datatype/reduce_local.c 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,755 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ +/* + * Copyright (c) 2019-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2020 Research Organization for Information Science + * and Technology (RIST). All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "mpi.h" +#include "ompi/communicator/communicator.h" +#include "ompi/runtime/mpiruntime.h" +#include "ompi/datatype/ompi_datatype.h" + +typedef struct op_name_s { + char* name; + char* mpi_op_name; + MPI_Op op; +} op_name_t; +static op_name_t array_of_ops [] = { + { "max", "MPI_MAX", MPI_MAX }, + { "min", "MPI_MIN", MPI_MIN }, + { "sum", "MPI_SUM", MPI_SUM }, + { "prod", "MPI_PROD", MPI_PROD }, + { "land", "MPI_LAND", MPI_LAND }, + { "band", "MPI_BAND", MPI_BAND }, + { "lor", "MPI_LOR", MPI_LOR }, + { "bor", "MPI_BOR", MPI_BOR }, + { "lxor", "MPI_LXOR", MPI_LXOR }, + { "bxor", "MPI_BXOR", MPI_BXOR }, + { "replace", "MPI_REPLACE", MPI_REPLACE }, + { NULL, "MPI_OP_NULL", MPI_OP_NULL } +}; +static int do_ops[12] = { -1, }; /* index of the ops to do. Size +1 larger than the array_of_ops */ +static int verbose = 0; +static int total_errors = 0; + +#define max(a,b) \ + ({ __typeof__ (a) _a = (a); \ + __typeof__ (b) _b = (b); \ + _a > _b ? _a : _b; }) + +#define min(a,b) \ + ({ __typeof__ (a) _a = (a); \ + __typeof__ (b) _b = (b); \ + _a < _b ? _a : _b; }) + +static void print_status(char* op, char* type, int type_size, + int count, int max_shift, double *duration, int repeats, + int correct ) +{ + if(correct) { + printf("%-10s %s %-10d%s ", op, type, type_size, (verbose ? " [\033[1;32msuccess\033[0m]" : "")); + } else { + printf("%-10s %s [\033[1;31mfail\033[0m]", op, type); + total_errors++; + } + if( 1 == max_shift ) { + printf(" count %-10d time (seconds) %.8f seconds\n", count, duration[0] / repeats); + } else { + printf(" count %-10d time (seconds / shifts) ", count); + for( int i = 0; i < max_shift; i++ ) { + printf("%.8f ", duration[i] / repeats ); + } + printf("\n"); + } +} + +static int do_ops_built = 0; +static int +build_do_ops( char* optarg, int* do_ops) +{ + int i; + if( 0 == strcmp(optarg, "all") ) { + for( i = 0; NULL != array_of_ops[i].name; i++ ) { + do_ops[i] = i; + } + do_ops[i] = -1; /* stop */ + } else { + int n, idx = 0; + char* token, *arg = optarg; + while ((token = strsep(&arg, ",")) != NULL) { + for( i = 0; NULL != array_of_ops[i].name; i++ ) { /* find the op */ + if( 0 == strcmp(array_of_ops[i].name, token) ) { + /* check if the op was not already selected */ + for(n = 0; n < idx; n++ ) { + if( i == do_ops[n] ) { + break; + } + } + if( n >= idx ) { + do_ops[idx++] = i; + do_ops[idx] = -1; + } + break; + } + } + if( NULL == array_of_ops[i].name ) { + fprintf(stderr, "Unknown op %s. Ignored.\n", token); + } + } + } + do_ops_built = 1; + return 0; +} + + +#define MPI_OP_TEST(OPNAME, MPIOP, MPITYPE, TYPE, INBUF, INOUT_BUF, CHECK_BUF, COUNT, TYPE_PREFIX) \ +do { \ + const TYPE *_p1 = ((TYPE*)(INBUF)), *_p3 = ((TYPE*)(CHECK_BUF)); \ + TYPE *_p2 = ((TYPE*)(INOUT_BUF)); \ + skip_op_type = 0; \ + for(int _k = 0; _k < min((COUNT), max_shift); +_k++ ) { \ + duration[_k] = 0.0; \ + for(int _r = repeats; _r > 0; _r--) { \ + memcpy(_p2, _p3, sizeof(TYPE) * (COUNT)); \ + tstart = MPI_Wtime(); \ + MPI_Reduce_local(_p1+_k, _p2+_k, (COUNT)-_k, (MPITYPE), (MPIOP)); \ + tend = MPI_Wtime(); \ + duration[_k] += (tend - tstart); \ + if( check ) { \ + for( i = 0; i < (COUNT)-_k; i++ ) { \ + if(((_p2+_k)[i]) == (((_p1+_k)[i]) OPNAME ((_p3+_k)[i]))) \ + continue; \ + printf("First error at alignment %d position %d (%" TYPE_PREFIX " %s %" TYPE_PREFIX " != %" TYPE_PREFIX ")\n", \ + _k, i, (_p1+_k)[i], (#OPNAME), (_p3+_k)[i], (_p2+_k)[i]); \ + correctness = 0; \ + break; \ + } \ + } \ + } \ + } \ + goto check_and_continue; \ +} while (0) + +#define MPI_OP_MINMAX_TEST(OPNAME, MPIOP, MPITYPE, TYPE, INBUF, INOUT_BUF, CHECK_BUF, COUNT, TYPE_PREFIX) \ +do { \ + const TYPE *_p1 = ((TYPE*)(INBUF)), *_p3 = ((TYPE*)(CHECK_BUF)); \ + TYPE *_p2 = ((TYPE*)(INOUT_BUF)); \ + skip_op_type = 0; \ + for(int _k = 0; _k < min((COUNT), max_shift); +_k++ ) { \ + duration[_k] = 0.0; \ + for(int _r = repeats; _r > 0; _r--) { \ + memcpy(_p2, _p3, sizeof(TYPE) * (COUNT)); \ + tstart = MPI_Wtime(); \ + MPI_Reduce_local(_p1+_k, _p2+_k, (COUNT), (MPITYPE), (MPIOP)); \ + tend = MPI_Wtime(); \ + duration[_k] += (tend - tstart); \ + if( check ) { \ + for( i = 0; i < (COUNT); i++ ) { \ + TYPE _v1 = *(_p1+_k), _v2 = *(_p2+_k), _v3 = *(_p3+_k); \ + if(_v2 == OPNAME(_v1, _v3)) \ + continue; \ + printf("First error at alignment %d position %d (%" TYPE_PREFIX " != %s(%" TYPE_PREFIX ", %" TYPE_PREFIX ")\n", \ + _k, i, _v1, (#OPNAME), _v3, _v2); \ + correctness = 0; \ + break; \ + } \ + } \ + } \ + } \ + goto check_and_continue; \ +} while (0) + +int main(int argc, char **argv) +{ + static void *in_buf = NULL, *inout_buf = NULL, *inout_check_buf = NULL; + int count, type_size = 8, rank, size, provided, correctness = 1; + int repeats = 1, i, c, op1_alignment = 0, res_alignment = 0; + int max_shift = 4; + double *duration, tstart, tend; + bool check = true; + char type[5] = "uifd", *op = "sum", *mpi_type; + int lower = 1, upper = 1000000, skip_op_type; + MPI_Op mpi_op; + + while( -1 != (c = getopt(argc, argv, "l:u:r:t:o:i:s:n:1:2:vfh")) ) { + switch(c) { + case 'l': + lower = atoi(optarg); + if( lower <= 0 ) { + fprintf(stderr, "The lower number of elements must be positive\n"); + exit(-1); + } + break; + case 'u': + upper = atoi(optarg); + if( lower <= 0 ) { + fprintf(stderr, "The upper number of elements must be positive\n"); + exit(-1); + } + break; + case 'i': + max_shift = atoi(optarg); + if( max_shift <= 0 ) { + fprintf(stderr, "The max shift must be positive\n"); + exit(-1); + } + break; + case 'f': + check = false; + break; + case 'v': + verbose++; + break; + case 'r': + repeats = atoi(optarg); + if( repeats <= 0 ) { + fprintf(stderr, "The number of repetitions (%d) must be positive\n", repeats); + exit(-1); + } + break; + case 't': + for( i = 0; i < (int)strlen(optarg); i++ ) { + if( ! (('i' == optarg[i]) || ('u' == optarg[i]) || + ('f' == optarg[i]) || ('d' == optarg[i])) ) { + fprintf(stderr, "type must be i (signed int), u (unsigned int), f (float) or d (double)\n"); + exit(-1); + } + } + strncpy(type, optarg, 4); + break; + case 'o': + build_do_ops( optarg, do_ops); + break; + case 's': + type_size = atoi(optarg); + if( ! ((8 == type_size) || (16 == type_size) || (32 == type_size) || (64 == type_size)) ) { + fprintf(stderr, "type_size must be 8, 16, 32 or 64. %d is an invalid value\n", + type_size); + exit(-1); + } + break; + case '1': + op1_alignment = atoi(optarg); + if( op1_alignment < 0 ) { + fprintf(stderr, "alignment for the first operand must be positive\n"); + exit(-1); + } + break; + case '2': + res_alignment = atoi(optarg); + if( res_alignment < 0 ) { + fprintf(stderr, "alignment for the result must be positive\n"); + exit(-1); + } + break; + case 'h': + fprintf(stdout, "%s options are:\n" + " -l : lower number of elements\n" + " -u : upper number of elements\n" + " -s : 8, 16, 32 or 64 bits elements\n" + " -t [i,u,f,d] : type of the elements to apply the operations on\n" + " -r : number of repetitions for each test\n" + " -o : comma separated list of operations to execute among\n" + " sum, min, max, prod, bor, bxor, band\n" + " -i : shift on all buffers to check alignment\n" + " -1 : (mis)alignment in elements for the first op\n" + " -2 : (mis)alignment in elements for the result\n" + " -v: increase the verbosity level\n" + " -h: this help message\n", argv[0]); + exit(0); + } + } + + if( !do_ops_built ) { /* not yet done, take the default */ + build_do_ops( "all", do_ops); + } + posix_memalign( &in_buf, 64, (upper + op1_alignment) * sizeof(double)); + posix_memalign( &inout_buf, 64, (upper + res_alignment) * sizeof(double)); + posix_memalign( &inout_check_buf, 64, upper * sizeof(double)); + duration = (double*)malloc(max_shift * sizeof(double)); + + ompi_mpi_init(argc, argv, MPI_THREAD_SERIALIZED, &provided, false); + + rank = ompi_comm_rank(MPI_COMM_WORLD); (void)rank; + size = ompi_comm_size(MPI_COMM_WORLD); (void)size; + + for(uint32_t type_idx = 0; type_idx < strlen(type); type_idx++ ) { + for(uint32_t op_idx = 0; do_ops[op_idx] >= 0; op_idx++ ) { + op = array_of_ops[do_ops[op_idx]].name; + mpi_op = array_of_ops[do_ops[op_idx]].op; + skip_op_type = 1; + + for( count = lower; count <= upper; count += count ) { + mpi_type = NULL; + correctness = 1; + if('i' == type[type_idx]) { + if( 8 == type_size ) { + int8_t *in_int8 = (int8_t*)((char*)in_buf + op1_alignment * sizeof(int8_t)), + *inout_int8 = (int8_t*)((char*)inout_buf + res_alignment * sizeof(int8_t)), + *inout_int8_for_check = (int8_t*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_int8[i] = 5; + inout_int8[i] = inout_int8_for_check[i] = -3; + } + mpi_type = "MPI_INT8_T"; + + if( 0 == strcmp(op, "sum") ) { + MPI_OP_TEST( +, mpi_op, MPI_INT8_T, int8_t, + in_int8, inout_int8, inout_int8_for_check, + count, PRId8); + } + if( 0 == strcmp(op, "bor") ) { + MPI_OP_TEST( |, mpi_op, MPI_INT8_T, int8_t, + in_int8, inout_int8, inout_int8_for_check, + count, PRId8); + } + if( 0 == strcmp(op, "bxor") ) { + MPI_OP_TEST( ^, mpi_op, MPI_INT8_T, int8_t, + in_int8, inout_int8, inout_int8_for_check, + count, PRId8); + } + if( 0 == strcmp(op, "prod") ) { + MPI_OP_TEST( *, mpi_op, MPI_INT8_T, int8_t, + in_int8, inout_int8, inout_int8_for_check, + count, PRId8); + } + if( 0 == strcmp(op, "band") ) { + MPI_OP_TEST( &, mpi_op, MPI_INT8_T, int8_t, + in_int8, inout_int8, inout_int8_for_check, + count, PRId8); + } + if( 0 == strcmp(op, "max") ) { + MPI_OP_MINMAX_TEST(max, mpi_op, MPI_INT8_T, int8_t, + in_int8, inout_int8, inout_int8_for_check, + count, PRId8); + } + if( 0 == strcmp(op, "min") ) { //intentionly reversed in and out + MPI_OP_MINMAX_TEST(min, mpi_op, MPI_INT8_T, int8_t, + in_int8, inout_int8, inout_int8_for_check, + count, PRId8); + } + } + if( 16 == type_size ) { + int16_t *in_int16 = (int16_t*)((char*)in_buf + op1_alignment * sizeof(int16_t)), + *inout_int16 = (int16_t*)((char*)inout_buf + res_alignment * sizeof(int16_t)), + *inout_int16_for_check = (int16_t*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_int16[i] = 5; + inout_int16[i] = inout_int16_for_check[i] = -3; + } + mpi_type = "MPI_INT16_T"; + + if( 0 == strcmp(op, "sum") ) { + MPI_OP_TEST( +, mpi_op, MPI_INT16_T, int16_t, + in_int16, inout_int16, inout_int16_for_check, + count, PRId16); + } + if( 0 == strcmp(op, "bor") ) { + MPI_OP_TEST( |, mpi_op, MPI_INT16_T, int16_t, + in_int16, inout_int16, inout_int16_for_check, + count, PRId16); + } + if( 0 == strcmp(op, "bxor") ) { + MPI_OP_TEST( ^, mpi_op, MPI_INT16_T, int16_t, + in_int16, inout_int16, inout_int16_for_check, + count, PRId16); + } + if( 0 == strcmp(op, "prod") ) { + MPI_OP_TEST( *, mpi_op, MPI_INT16_T, int16_t, + in_int16, inout_int16, inout_int16_for_check, + count, PRId16); + } + if( 0 == strcmp(op, "band") ) { + MPI_OP_TEST( &, mpi_op, MPI_INT16_T, int16_t, + in_int16, inout_int16, inout_int16_for_check, + count, PRId16); + } + if( 0 == strcmp(op, "max") ) { + MPI_OP_MINMAX_TEST(max, mpi_op, MPI_INT16_T, int16_t, + in_int16, inout_int16, inout_int16_for_check, + count, PRId16); + } + if( 0 == strcmp(op, "min") ) { //intentionly reversed in and out + MPI_OP_MINMAX_TEST(min, mpi_op, MPI_INT16_T, int16_t, + in_int16, inout_int16, inout_int16_for_check, + count, PRId16); + } + } + if( 32 == type_size ) { + int32_t *in_int32 = (int32_t*)((char*)in_buf + op1_alignment * sizeof(int32_t)), + *inout_int32 = (int32_t*)((char*)inout_buf + res_alignment * sizeof(int32_t)), + *inout_int32_for_check = (int32_t*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_int32[i] = 5; + inout_int32[i] = inout_int32_for_check[i] = 3; + } + mpi_type = "MPI_INT32_T"; + + if( 0 == strcmp(op, "sum") ) { + MPI_OP_TEST( +, mpi_op, MPI_INT32_T, int32_t, + in_int32, inout_int32, inout_int32_for_check, + count, PRId32); + } + if( 0 == strcmp(op, "bor") ) { + MPI_OP_TEST( |, mpi_op, MPI_INT32_T, int32_t, + in_int32, inout_int32, inout_int32_for_check, + count, PRId32); + } + if( 0 == strcmp(op, "bxor") ) { + MPI_OP_TEST( ^, mpi_op, MPI_INT32_T, int32_t, + in_int32, inout_int32, inout_int32_for_check, + count, PRId32); + } + if( 0 == strcmp(op, "prod") ) { + MPI_OP_TEST( *, mpi_op, MPI_INT32_T, int32_t, + in_int32, inout_int32, inout_int32_for_check, + count, PRId32); + } + if( 0 == strcmp(op, "band") ) { + MPI_OP_TEST( &, mpi_op, MPI_INT32_T, int32_t, + in_int32, inout_int32, inout_int32_for_check, + count, PRId32); + } + if( 0 == strcmp(op, "max") ) { + MPI_OP_MINMAX_TEST(max, mpi_op, MPI_INT32_T, int32_t, + in_int32, inout_int32, inout_int32_for_check, + count, PRId32); + } + if( 0 == strcmp(op, "min") ) { //intentionly reversed in and out + MPI_OP_MINMAX_TEST(min, mpi_op, MPI_INT32_T, int32_t, + in_int32, inout_int32, inout_int32_for_check, + count, PRId32); + } + } + if( 64 == type_size ) { + int64_t *in_int64 = (int64_t*)((char*)in_buf + op1_alignment * sizeof(int64_t)), + *inout_int64 = (int64_t*)((char*)inout_buf + res_alignment * sizeof(int64_t)), + *inout_int64_for_check = (int64_t*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_int64[i] = 5; + inout_int64[i] = inout_int64_for_check[i] = 3; + } + mpi_type = "MPI_INT64_T"; + + if( 0 == strcmp(op, "sum") ) { + MPI_OP_TEST( +, mpi_op, MPI_INT64_T, int64_t, + in_int64, inout_int64, inout_int64_for_check, + count, PRId64); + } + if( 0 == strcmp(op, "bor") ) { + MPI_OP_TEST( |, mpi_op, MPI_INT64_T, int64_t, + in_int64, inout_int64, inout_int64_for_check, + count, PRId64); + } + if( 0 == strcmp(op, "bxor") ) { + MPI_OP_TEST( ^, mpi_op, MPI_INT64_T, int64_t, + in_int64, inout_int64, inout_int64_for_check, + count, PRId64); + } + if( 0 == strcmp(op, "prod") ) { + MPI_OP_TEST( *, mpi_op, MPI_INT64_T, int64_t, + in_int64, inout_int64, inout_int64_for_check, + count, PRId64); + } + if( 0 == strcmp(op, "band") ) { + MPI_OP_TEST( &, mpi_op, MPI_INT64_T, int64_t, + in_int64, inout_int64, inout_int64_for_check, + count, PRId64); + } + if( 0 == strcmp(op, "max") ) { + MPI_OP_MINMAX_TEST(max, mpi_op, MPI_INT64_T, int64_t, + in_int64, inout_int64, inout_int64_for_check, + count, PRId64); + } + if( 0 == strcmp(op, "min") ) { //intentionly reversed in and out + MPI_OP_MINMAX_TEST(min, mpi_op, MPI_INT64_T, int64_t, + in_int64, inout_int64, inout_int64_for_check, + count, PRId64); + } + } + } + + if( 'u' == type[type_idx] ) { + if( 8 == type_size ) { + uint8_t *in_uint8 = (uint8_t*)((char*)in_buf + op1_alignment * sizeof(uint8_t)), + *inout_uint8 = (uint8_t*)((char*)inout_buf + res_alignment * sizeof(uint8_t)), + *inout_uint8_for_check = (uint8_t*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_uint8[i] = 5; + inout_uint8[i] = inout_uint8_for_check[i] = 2; + } + mpi_type = "MPI_UINT8_T"; + + if( 0 == strcmp(op, "sum") ) { + MPI_OP_TEST( +, mpi_op, MPI_UINT8_T, uint8_t, + in_uint8, inout_uint8, inout_uint8_for_check, + count, PRIu8); + } + if( 0 == strcmp(op, "bor") ) { + MPI_OP_TEST( |, mpi_op, MPI_UINT8_T, uint8_t, + in_uint8, inout_uint8, inout_uint8_for_check, + count, PRIu8); + } + if( 0 == strcmp(op, "bxor") ) { + MPI_OP_TEST( ^, mpi_op, MPI_UINT8_T, uint8_t, + in_uint8, inout_uint8, inout_uint8_for_check, + count, PRIu8); + } + if( 0 == strcmp(op, "prod") ) { + MPI_OP_TEST( *, mpi_op, MPI_UINT8_T, uint8_t, + in_uint8, inout_uint8, inout_uint8_for_check, + count, PRIu8); + } + if( 0 == strcmp(op, "band") ) { + MPI_OP_TEST( &, mpi_op, MPI_UINT8_T, uint8_t, + in_uint8, inout_uint8, inout_uint8_for_check, + count, PRIu8); + } + if( 0 == strcmp(op, "max") ) { + MPI_OP_MINMAX_TEST(max, mpi_op, MPI_UINT8_T, uint8_t, + in_uint8, inout_uint8, inout_uint8_for_check, + count, PRIu8); + } + if( 0 == strcmp(op, "min") ) { //intentionly reversed in and out + MPI_OP_MINMAX_TEST(min, mpi_op, MPI_UINT8_T, uint8_t, + in_uint8, inout_uint8, inout_uint8_for_check, + count, PRIu8); + } + } + if( 16 == type_size ) { + uint16_t *in_uint16 = (uint16_t*)((char*)in_buf + op1_alignment * sizeof(uint16_t)), + *inout_uint16 = (uint16_t*)((char*)inout_buf + res_alignment * sizeof(uint16_t)), + *inout_uint16_for_check = (uint16_t*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_uint16[i] = 5; + inout_uint16[i] = inout_uint16_for_check[i] = 1234; + } + mpi_type = "MPI_UINT16_T"; + + if( 0 == strcmp(op, "sum") ) { + MPI_OP_TEST( +, mpi_op, MPI_UINT16_T, uint16_t, + in_uint16, inout_uint16, inout_uint16_for_check, + count, PRIu16); + } + if( 0 == strcmp(op, "bor") ) { + MPI_OP_TEST( |, mpi_op, MPI_UINT16_T, uint16_t, + in_uint16, inout_uint16, inout_uint16_for_check, + count, PRIu16); + } + if( 0 == strcmp(op, "bxor") ) { + MPI_OP_TEST( ^, mpi_op, MPI_UINT16_T, uint16_t, + in_uint16, inout_uint16, inout_uint16_for_check, + count, PRIu16); + } + if( 0 == strcmp(op, "prod") ) { + MPI_OP_TEST( *, mpi_op, MPI_UINT16_T, uint16_t, + in_uint16, inout_uint16, inout_uint16_for_check, + count, PRIu16); + } + if( 0 == strcmp(op, "band") ) { + MPI_OP_TEST( &, mpi_op, MPI_UINT16_T, uint16_t, + in_uint16, inout_uint16, inout_uint16_for_check, + count, PRIu16); + } + if( 0 == strcmp(op, "max") ) { + MPI_OP_MINMAX_TEST(max, mpi_op, MPI_UINT16_T, uint16_t, + in_uint16, inout_uint16, inout_uint16_for_check, + count, PRIu16); + } + if( 0 == strcmp(op, "min") ) { //intentionly reversed in and out + MPI_OP_MINMAX_TEST(min, mpi_op, MPI_UINT16_T, uint16_t, + in_uint16, inout_uint16, inout_uint16_for_check, + count, PRIu16); + } + } + if( 32 == type_size ) { + uint32_t *in_uint32 = (uint32_t*)((char*)in_buf + op1_alignment * sizeof(uint32_t)), + *inout_uint32 = (uint32_t*)((char*)inout_buf + res_alignment * sizeof(uint32_t)), + *inout_uint32_for_check = (uint32_t*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_uint32[i] = 5; + inout_uint32[i] = inout_uint32_for_check[i] = 3; + } + mpi_type = "MPI_UINT32_T"; + + if( 0 == strcmp(op, "sum") ) { + MPI_OP_TEST( +, mpi_op, MPI_UINT32_T, uint32_t, + in_uint32, inout_uint32, inout_uint32_for_check, + count, PRIu32); + } + if( 0 == strcmp(op, "bor") ) { + MPI_OP_TEST( |, mpi_op, MPI_UINT32_T, uint32_t, + in_uint32, inout_uint32, inout_uint32_for_check, + count, PRIu32); + } + if( 0 == strcmp(op, "bxor") ) { + MPI_OP_TEST( ^, mpi_op, MPI_UINT32_T, uint32_t, + in_uint32, inout_uint32, inout_uint32_for_check, + count, PRIu32); + } + if( 0 == strcmp(op, "prod") ) { + MPI_OP_TEST( *, mpi_op, MPI_UINT32_T, uint32_t, + in_uint32, inout_uint32, inout_uint32_for_check, + count, PRIu32); + } + if( 0 == strcmp(op, "band") ) { + MPI_OP_TEST( &, mpi_op, MPI_UINT32_T, uint32_t, + in_uint32, inout_uint32, inout_uint32_for_check, + count, PRIu32); + } + if( 0 == strcmp(op, "max") ) { + MPI_OP_MINMAX_TEST(max, mpi_op, MPI_UINT32_T, uint32_t, + in_uint32, inout_uint32, inout_uint32_for_check, + count, PRIu32); + } + if( 0 == strcmp(op, "min") ) { //intentionly reversed in and out + MPI_OP_MINMAX_TEST(min, mpi_op, MPI_UINT32_T, uint32_t, + in_uint32, inout_uint32, inout_uint32_for_check, + count, PRIu32); + } + } + if( 64 == type_size ) { + uint64_t *in_uint64 = (uint64_t*)((char*)in_buf + op1_alignment * sizeof(uint64_t)), + *inout_uint64 = (uint64_t*)((char*)inout_buf + res_alignment * sizeof(uint64_t)), + *inout_uint64_for_check = (uint64_t*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_uint64[i] = 5; + inout_uint64[i] = inout_uint64_for_check[i] = 32433; + } + mpi_type = "MPI_UINT64_T"; + + if( 0 == strcmp(op, "sum") ) { + MPI_OP_TEST( +, mpi_op, MPI_UINT64_T, uint64_t, + in_uint64, inout_uint64, inout_uint64_for_check, + count, PRIu64); + } + if( 0 == strcmp(op, "bor") ) { + MPI_OP_TEST( |, mpi_op, MPI_UINT64_T, uint64_t, + in_uint64, inout_uint64, inout_uint64_for_check, + count, PRIu64); + } + if( 0 == strcmp(op, "bxor") ) { + MPI_OP_TEST( ^, mpi_op, MPI_UINT64_T, uint64_t, + in_uint64, inout_uint64, inout_uint64_for_check, + count, PRIu64); + } + if( 0 == strcmp(op, "prod") ) { + MPI_OP_TEST( *, mpi_op, MPI_UINT64_T, uint64_t, + in_uint64, inout_uint64, inout_uint64_for_check, + count, PRIu64); + } + if( 0 == strcmp(op, "band") ) { + MPI_OP_TEST( &, mpi_op, MPI_UINT64_T, uint64_t, + in_uint64, inout_uint64, inout_uint64_for_check, + count, PRIu64); + } + if( 0 == strcmp(op, "max") ) { + MPI_OP_MINMAX_TEST(max, mpi_op, MPI_UINT64_T, uint64_t, + in_uint64, inout_uint64, inout_uint64_for_check, + count, PRIu64); + } + if( 0 == strcmp(op, "min") ) { + MPI_OP_MINMAX_TEST(min, mpi_op, MPI_UINT64_T, uint64_t, + in_uint64, inout_uint64, inout_uint64_for_check, + count, PRIu64); + } + } + } + + if( 'f' == type[type_idx] ) { + float *in_float = (float*)((char*)in_buf + op1_alignment * sizeof(float)), + *inout_float = (float*)((char*)inout_buf + res_alignment * sizeof(float)), + *inout_float_for_check = (float*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_float[i] = 1000.0+1; + inout_float[i] = inout_float_for_check[i] = 100.0+2; + } + mpi_type = "MPI_FLOAT"; + + if( 0 == strcmp(op, "sum") ) { + MPI_OP_TEST( +, mpi_op, MPI_FLOAT, float, + in_float, inout_float, inout_float_for_check, + count, "f"); + } + if( 0 == strcmp(op, "prod") ) { + MPI_OP_TEST( *, mpi_op, MPI_FLOAT, float, + in_float, inout_float, inout_float_for_check, + count, "f"); + } + if( 0 == strcmp(op, "max") ) { + MPI_OP_MINMAX_TEST(max, mpi_op, MPI_FLOAT, float, + in_float, inout_float, inout_float_for_check, + count, "f"); + } + if( 0 == strcmp(op, "min") ) { + MPI_OP_MINMAX_TEST(min, mpi_op, MPI_FLOAT, float, + in_float, inout_float, inout_float_for_check, + count, "f"); + } + } + + if( 'd' == type[type_idx] ) { + double *in_double = (double*)((char*)in_buf + op1_alignment * sizeof(double)), + *inout_double = (double*)((char*)inout_buf + res_alignment * sizeof(double)), + *inout_double_for_check = (double*)inout_check_buf; + for( i = 0; i < count; i++ ) { + in_double[i] = 10.0+1; + inout_double[i] = inout_double_for_check[i] = 1.0+2; + } + mpi_type = "MPI_DOUBLE"; + + if( 0 == strcmp(op, "sum") ) { + MPI_OP_TEST( +, mpi_op, MPI_DOUBLE, double, + in_double, inout_double, inout_double_for_check, + count, "g"); + } + if( 0 == strcmp(op, "prod") ) { + MPI_OP_TEST( *, mpi_op, MPI_DOUBLE, double, + in_double, inout_double, inout_double_for_check, + count, "f"); + } + if( 0 == strcmp(op, "max") ) { + MPI_OP_MINMAX_TEST(max, mpi_op, MPI_DOUBLE, double, + in_double, inout_double, inout_double_for_check, + count, "f"); + } + if( 0 == strcmp(op, "min") ) { + MPI_OP_MINMAX_TEST(min, mpi_op, MPI_DOUBLE, double, + in_double, inout_double, inout_double_for_check, + count, "f"); + } + } + check_and_continue: + if( !skip_op_type ) + print_status(array_of_ops[do_ops[op_idx]].mpi_op_name, + mpi_type, type_size, count, max_shift, duration, repeats, correctness); + } + if( !skip_op_type ) + printf("\n"); + } + } + ompi_mpi_finalize(); + + free(in_buf); + free(inout_buf); + free(inout_check_buf); + + return (0 == total_errors) ? 0 : -1; +} + diff -Nru openmpi-4.0.3/test/datatype/unpack_ooo.c openmpi-4.1.4/test/datatype/unpack_ooo.c --- openmpi-4.0.3/test/datatype/unpack_ooo.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/test/datatype/unpack_ooo.c 2022-05-29 09:51:40.000000000 +0000 @@ -27,6 +27,7 @@ #define N 331 uint32_t remote_arch = 0xffffffff; +bool report_all_errors = true; struct foo_t { int i[3]; @@ -38,26 +39,28 @@ double d[2]; } pfoo = {0}, *pbar = NULL; -static void print_hex(void* ptr, int count, int space) +static void print_hex(void* ptr, int count, char* epilog, char* prolog) { - for( int i = 0; i < count; i++ ) { + if ( NULL != epilog) fprintf(stderr, "%s", epilog); + for ( int i = 0; i < count; i++ ) { fprintf(stderr, "%02x", (unsigned int)(((unsigned char*)ptr)[i])); } - if(space) fprintf(stderr, " "); + if (NULL != prolog) fprintf(stderr, "%s", prolog); } -static void print_bar_pbar(struct foo_t* bar, struct pfoo_t* pbar) +static void print_bar_pbar(struct foo_t* _bar, struct pfoo_t* _pbar) { - print_hex(&bar->i[0], sizeof(int), 1); - print_hex(&bar->i[2], sizeof(int), 1); - print_hex(&bar->d[0], sizeof(double), 1); - print_hex(&bar->d[2], sizeof(double), 1); - fprintf(stderr, "\n"); - print_hex(&pbar->i[0], sizeof(int), 1); - print_hex(&pbar->i[1], sizeof(int), 1); - print_hex(&pbar->d[0], sizeof(double), 1); - print_hex(&pbar->d[1], sizeof(double), 1); - fprintf(stderr, "\n"); + print_hex(&_bar->i[0], sizeof(int), NULL, " "); + print_hex(&_bar->i[1], sizeof(int), "[", "] "); + print_hex(&_bar->i[2], sizeof(int), NULL, " "); + print_hex(&_bar->d[0], sizeof(double), NULL, " "); + print_hex(&_bar->d[1], sizeof(double), "[", "] "); + print_hex(&_bar->d[2], sizeof(double), NULL, "\n"); + + print_hex(&_pbar->i[0], sizeof(int), NULL, " "); + print_hex(&_pbar->i[1], sizeof(int), NULL, " "); + print_hex(&_pbar->d[0], sizeof(double), NULL, " "); + print_hex(&_pbar->d[1], sizeof(double), NULL, "\n"); } static void print_stack(opal_convertor_t* conv) @@ -72,7 +75,7 @@ printf("\n"); } -static int testcase(ompi_datatype_t * newtype, size_t arr[10][2]) { +static int testcase(ompi_datatype_t * newtype, size_t arr[][2]) { int i, j, errors = 0; struct iovec a; unsigned int iov_count; @@ -99,7 +102,7 @@ return OMPI_ERROR; } - for (i=0; arr[i][0] != 0; i++) { + for ( i = 0; 0 != arr[i][0]; i++) { /* add some garbage before and after the source data */ a.iov_base = malloc(arr[i][0]+2048); if (NULL == a.iov_base) { @@ -129,11 +132,36 @@ bar[j].d[0] != pbar[j].d[0] || bar[j].d[1] != 0.0 || bar[j].d[2] != pbar[j].d[1]) { - if(0 == errors) { + if(0 == errors || report_all_errors) { + ptrdiff_t displ; + char* error_location = "in gaps"; + if (bar[j].i[0] != pbar[j].i[0]) { + displ = (char*)&bar[j].i[0] - (char*)&bar[0]; + error_location = "i[0]"; + } else if (bar[j].i[2] != pbar[j].i[1]) { + displ = (char*)&bar[j].i[1] - (char*)&bar[0]; + error_location = "i[2]"; + } else if (bar[j].d[0] != pbar[j].d[0]) { + displ = (char*)&bar[j].d[0] - (char*)&bar[0]; + error_location = "d[0]"; + } else if (bar[j].d[2] != pbar[j].d[1]) { + displ = (char*)&bar[j].d[1] - (char*)&bar[0]; + error_location = "d[2]"; + } else { + displ = (char*)&bar[j] - (char*)&bar[0]; + } + for (i = 0; 0 != arr[i][0]; i++) { + if( (displ >= arr[i][1]) && (displ <= (arr[i][1] + arr[i][0])) ) { + fprintf(stderr, "Problem encountered %li bytes into the %d unpack [%"PRIsize_t":%"PRIsize_t"]\n", + displ - arr[i][1], i, arr[i][1], arr[i][0]); + break; + } + } + (void)opal_datatype_dump(&newtype->super); - fprintf(stderr, "ERROR ! position=%d/%d, ptr = %p" + fprintf(stderr, "ERROR ! struct %d/%d in field %s, ptr = %p" " got (%d,%d,%d,%g,%g,%g) expected (%d,%d,%d,%g,%g,%g)\n", - j, N, (void*)&bar[j], + j, N, error_location, (void*)&bar[j], bar[j].i[0], bar[j].i[1], bar[j].i[2], @@ -147,6 +175,7 @@ 0.0, pbar[j].d[1]); print_bar_pbar(&bar[j], &pbar[j]); + if( report_all_errors ) fprintf(stderr, "\n\n"); } errors++; } @@ -198,13 +227,13 @@ */ size_t test1[9][2] = { {992, 0}, - {1325, 992}, - {992, 2317}, - {992, 3309}, - {992, 4301}, - {992, 5293}, - {992, 6285}, - {667, 7277}, + {1325, 0 + 992}, + {992, 992 + 1325 /* = 2317 */}, + {992, 2317 + 992 /* = 3309 */}, + {992, 3309 + 992 /* = 4301 */}, + {992, 4301 + 992 /* = 5293 */}, + {992, 5293 + 992 /* = 6285 */}, + {667, 6285 + 992 /* = 7277 */}, {0, -1}, }; diff -Nru openmpi-4.0.3/test/dss/Makefile.in openmpi-4.1.4/test/dss/Makefile.in --- openmpi-4.0.3/test/dss/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/test/dss/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -109,6 +109,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -116,6 +118,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -139,6 +142,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -241,6 +245,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -248,6 +253,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -328,6 +334,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -350,9 +357,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -362,6 +373,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -382,6 +394,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -826,6 +839,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1646,6 +1662,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1678,9 +1698,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1701,6 +1730,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1785,9 +1815,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1848,6 +1875,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1861,6 +1891,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/test/event/Makefile.in openmpi-4.1.4/test/event/Makefile.in --- openmpi-4.0.3/test/event/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/test/event/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -118,6 +118,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -125,6 +127,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -148,6 +151,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -250,6 +254,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -257,6 +262,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -337,6 +343,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -359,9 +366,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -371,6 +382,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -391,6 +403,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -830,6 +843,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1650,6 +1666,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1682,9 +1702,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1705,6 +1734,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1789,9 +1819,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1852,6 +1879,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1865,6 +1895,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/test/Makefile.in openmpi-4.1.4/test/Makefile.in --- openmpi-4.0.3/test/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/test/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -121,6 +121,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -128,6 +130,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -151,6 +154,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -253,6 +257,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -260,6 +265,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -340,6 +346,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -362,9 +369,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -374,6 +385,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -394,6 +406,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -626,6 +639,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1446,6 +1462,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1478,9 +1498,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1501,6 +1530,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1585,9 +1615,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1648,6 +1675,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1661,6 +1691,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/test/monitoring/Makefile.in openmpi-4.1.4/test/monitoring/Makefile.in --- openmpi-4.0.3/test/monitoring/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/test/monitoring/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -664,6 +677,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1484,6 +1500,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1516,9 +1536,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1539,6 +1568,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1623,9 +1653,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1686,6 +1713,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1699,6 +1729,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/test/mpool/Makefile.in openmpi-4.1.4/test/mpool/Makefile.in --- openmpi-4.0.3/test/mpool/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/test/mpool/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -108,6 +108,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -115,6 +117,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -138,6 +141,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -240,6 +244,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -247,6 +252,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -327,6 +333,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -349,9 +356,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -361,6 +372,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -381,6 +393,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -812,6 +825,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1632,6 +1648,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1664,9 +1684,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1687,6 +1716,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1771,9 +1801,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1834,6 +1861,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1847,6 +1877,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/test/spc/Makefile.in openmpi-4.1.4/test/spc/Makefile.in --- openmpi-4.0.3/test/spc/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/test/spc/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -110,6 +110,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -117,6 +119,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -140,6 +143,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -242,6 +246,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -249,6 +254,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -329,6 +335,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -351,9 +358,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -363,6 +374,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -383,6 +395,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -609,6 +622,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1429,6 +1445,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1461,9 +1481,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1484,6 +1513,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1568,9 +1598,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1631,6 +1658,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1644,6 +1674,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/test/spc/spc_test.c openmpi-4.1.4/test/spc/spc_test.c --- openmpi-4.0.3/test/spc/spc_test.c 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/test/spc/spc_test.c 2022-05-29 09:51:40.000000000 +0000 @@ -1,7 +1,7 @@ /* - * Copyright (c) 2018 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. + * Copyright (c) 2018-2020 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. * * Simple example usage of SPCs through MPI_T. */ @@ -71,9 +71,9 @@ for(i = 0; i < num; i++) { name_len = desc_len = 256; - MPI_T_pvar_get_info(i, name, &name_len, &verbosity, - &var_class, &datatype, &enumtype, description, &desc_len, &bind, - &readonly, &continuous, &atomic); + MPI_result = MPI_T_pvar_get_info(i, name, &name_len, &verbosity, + &var_class, &datatype, &enumtype, description, &desc_len, &bind, + &readonly, &continuous, &atomic); if(MPI_result != MPI_SUCCESS || MPI_result == MPI_T_ERR_PVAR_NO_STARTSTOP) { fprintf(stderr, "Failed to get pvar info.\n"); MPI_Abort(MPI_COMM_WORLD, MPI_result); diff -Nru openmpi-4.0.3/test/support/Makefile.in openmpi-4.1.4/test/support/Makefile.in --- openmpi-4.0.3/test/support/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/test/support/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -116,6 +116,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -123,6 +125,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -146,6 +149,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -248,6 +252,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -255,6 +260,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -335,6 +341,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -357,9 +364,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -369,6 +380,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -389,6 +401,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -615,6 +628,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1435,6 +1451,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1467,9 +1487,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1490,6 +1519,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1574,9 +1604,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1637,6 +1664,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1650,6 +1680,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/test/threads/Makefile.in openmpi-4.1.4/test/threads/Makefile.in --- openmpi-4.0.3/test/threads/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/test/threads/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -119,6 +119,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -126,6 +128,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -149,6 +152,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -251,6 +255,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -258,6 +263,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -338,6 +344,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -360,9 +367,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -372,6 +383,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -392,6 +404,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -816,6 +829,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1636,6 +1652,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1668,9 +1688,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1691,6 +1720,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1775,9 +1805,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1838,6 +1865,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1851,6 +1881,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/test/util/Makefile.in openmpi-4.1.4/test/util/Makefile.in --- openmpi-4.0.3/test/util/Makefile.in 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/test/util/Makefile.in 2022-05-29 09:51:40.000000000 +0000 @@ -123,6 +123,8 @@ $(top_srcdir)/config/ltsugar.m4 \ $(top_srcdir)/config/ltversion.m4 \ $(top_srcdir)/config/lt~obsolete.m4 \ + $(top_srcdir)/config/ompi_check_gpfs.m4 \ + $(top_srcdir)/config/ompi_check_ime.m4 \ $(top_srcdir)/config/ompi_check_libfca.m4 \ $(top_srcdir)/config/ompi_check_libhcoll.m4 \ $(top_srcdir)/config/ompi_check_lustre.m4 \ @@ -130,6 +132,7 @@ $(top_srcdir)/config/ompi_check_psm.m4 \ $(top_srcdir)/config/ompi_check_psm2.m4 \ $(top_srcdir)/config/ompi_check_pvfs2.m4 \ + $(top_srcdir)/config/ompi_check_ucc.m4 \ $(top_srcdir)/config/ompi_check_ucx.m4 \ $(top_srcdir)/config/ompi_config_files.m4 \ $(top_srcdir)/config/ompi_configure_options.m4 \ @@ -153,6 +156,7 @@ $(top_srcdir)/config/ompi_fortran_check_logical_array.m4 \ $(top_srcdir)/config/ompi_fortran_check_max_array_rank.m4 \ $(top_srcdir)/config/ompi_fortran_check_optional_args.m4 \ + $(top_srcdir)/config/ompi_fortran_check_preprocess_f90.m4 \ $(top_srcdir)/config/ompi_fortran_check_private.m4 \ $(top_srcdir)/config/ompi_fortran_check_procedure.m4 \ $(top_srcdir)/config/ompi_fortran_check_protected.m4 \ @@ -255,6 +259,7 @@ $(top_srcdir)/opal/mca/pstat/configure.m4 \ $(top_srcdir)/opal/mca/timer/configure.m4 \ $(top_srcdir)/opal/mca/common/cuda/configure.m4 \ + $(top_srcdir)/opal/mca/common/ofi/configure.m4 \ $(top_srcdir)/opal/mca/common/sm/configure.m4 \ $(top_srcdir)/opal/mca/common/ucx/configure.m4 \ $(top_srcdir)/opal/mca/common/verbs/configure.m4 \ @@ -262,6 +267,7 @@ $(top_srcdir)/opal/mca/backtrace/execinfo/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/none/configure.m4 \ $(top_srcdir)/opal/mca/backtrace/printstack/configure.m4 \ + $(top_srcdir)/opal/mca/btl/ofi/configure.m4 \ $(top_srcdir)/opal/mca/btl/openib/configure.m4 \ $(top_srcdir)/opal/mca/btl/portals4/configure.m4 \ $(top_srcdir)/opal/mca/btl/sm/configure.m4 \ @@ -342,6 +348,7 @@ $(top_srcdir)/orte/mca/ras/slurm/configure.m4 \ $(top_srcdir)/orte/mca/ras/tm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/alps/configure.m4 \ + $(top_srcdir)/orte/mca/schizo/jsm/configure.m4 \ $(top_srcdir)/orte/mca/schizo/moab/configure.m4 \ $(top_srcdir)/orte/mca/schizo/singularity/configure.m4 \ $(top_srcdir)/orte/mca/schizo/slurm/configure.m4 \ @@ -364,9 +371,13 @@ $(top_srcdir)/ompi/mca/coll/hcoll/configure.m4 \ $(top_srcdir)/ompi/mca/coll/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/coll/portals4/configure.m4 \ + $(top_srcdir)/ompi/mca/coll/ucc/configure.m4 \ $(top_srcdir)/ompi/mca/crcp/bkmrk/configure.m4 \ + $(top_srcdir)/ompi/mca/fbtl/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/posix/configure.m4 \ $(top_srcdir)/ompi/mca/fbtl/pvfs2/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/gpfs/configure.m4 \ + $(top_srcdir)/ompi/mca/fs/ime/configure.m4 \ $(top_srcdir)/ompi/mca/fs/lustre/configure.m4 \ $(top_srcdir)/ompi/mca/fs/pvfs2/configure.m4 \ $(top_srcdir)/ompi/mca/fs/ufs/configure.m4 \ @@ -376,6 +387,7 @@ $(top_srcdir)/ompi/mca/mtl/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm/configure.m4 \ $(top_srcdir)/ompi/mca/mtl/psm2/configure.m4 \ + $(top_srcdir)/ompi/mca/op/avx/configure.m4 \ $(top_srcdir)/ompi/mca/osc/monitoring/configure.m4 \ $(top_srcdir)/ompi/mca/osc/portals4/configure.m4 \ $(top_srcdir)/ompi/mca/osc/pt2pt/configure.m4 \ @@ -396,6 +408,7 @@ $(top_srcdir)/oshmem/mca/atomic/mxm/configure.m4 \ $(top_srcdir)/oshmem/mca/atomic/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/scoll/fca/configure.m4 \ + $(top_srcdir)/oshmem/mca/scoll/ucc/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ikrit/configure.m4 \ $(top_srcdir)/oshmem/mca/spml/ucx/configure.m4 \ $(top_srcdir)/oshmem/mca/sshmem/mmap/configure.m4 \ @@ -826,6 +839,9 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ +MCA_BUILD_OP_AVX2_FLAGS = @MCA_BUILD_OP_AVX2_FLAGS@ +MCA_BUILD_OP_AVX512_FLAGS = @MCA_BUILD_OP_AVX512_FLAGS@ +MCA_BUILD_OP_AVX_FLAGS = @MCA_BUILD_OP_AVX_FLAGS@ MCA_PROJECT_DIST_SUBDIRS = @MCA_PROJECT_DIST_SUBDIRS@ MCA_PROJECT_SUBDIRS = @MCA_PROJECT_SUBDIRS@ MCA_ompi_FRAMEWORKS = @MCA_ompi_FRAMEWORKS@ @@ -1646,6 +1662,10 @@ coll_portals4_CPPFLAGS = @coll_portals4_CPPFLAGS@ coll_portals4_LDFLAGS = @coll_portals4_LDFLAGS@ coll_portals4_LIBS = @coll_portals4_LIBS@ +coll_ucc_CFLAGS = @coll_ucc_CFLAGS@ +coll_ucc_CPPFLAGS = @coll_ucc_CPPFLAGS@ +coll_ucc_LDFLAGS = @coll_ucc_LDFLAGS@ +coll_ucc_LIBS = @coll_ucc_LIBS@ common_alps_CPPFLAGS = @common_alps_CPPFLAGS@ common_alps_LDFLAGS = @common_alps_LDFLAGS@ common_alps_LIBS = @common_alps_LIBS@ @@ -1678,9 +1698,18 @@ ess_tm_LDFLAGS = @ess_tm_LDFLAGS@ ess_tm_LIBS = @ess_tm_LIBS@ exec_prefix = @exec_prefix@ +fbtl_ime_CPPFLAGS = @fbtl_ime_CPPFLAGS@ +fbtl_ime_LDFLAGS = @fbtl_ime_LDFLAGS@ +fbtl_ime_LIBS = @fbtl_ime_LIBS@ fbtl_pvfs2_CPPFLAGS = @fbtl_pvfs2_CPPFLAGS@ fbtl_pvfs2_LDFLAGS = @fbtl_pvfs2_LDFLAGS@ fbtl_pvfs2_LIBS = @fbtl_pvfs2_LIBS@ +fs_gpfs_CPPFLAGS = @fs_gpfs_CPPFLAGS@ +fs_gpfs_LDFLAGS = @fs_gpfs_LDFLAGS@ +fs_gpfs_LIBS = @fs_gpfs_LIBS@ +fs_ime_CPPFLAGS = @fs_ime_CPPFLAGS@ +fs_ime_LDFLAGS = @fs_ime_LDFLAGS@ +fs_ime_LIBS = @fs_ime_LIBS@ fs_lustre_CPPFLAGS = @fs_lustre_CPPFLAGS@ fs_lustre_LDFLAGS = @fs_lustre_LDFLAGS@ fs_lustre_LIBS = @fs_lustre_LIBS@ @@ -1701,6 +1730,7 @@ libmca_ompi_common_monitoring_so_version = @libmca_ompi_common_monitoring_so_version@ libmca_ompi_common_ompio_so_version = @libmca_ompi_common_ompio_so_version@ libmca_opal_common_cuda_so_version = @libmca_opal_common_cuda_so_version@ +libmca_opal_common_ofi_so_version = @libmca_opal_common_ofi_so_version@ libmca_opal_common_sm_so_version = @libmca_opal_common_sm_so_version@ libmca_opal_common_ucx_so_version = @libmca_opal_common_ucx_so_version@ libmca_opal_common_ugni_so_version = @libmca_opal_common_ugni_so_version@ @@ -1785,9 +1815,6 @@ opal_pmix_pmix3x_DEPENDENCIES = @opal_pmix_pmix3x_DEPENDENCIES@ opal_pmix_pmix3x_LDFLAGS = @opal_pmix_pmix3x_LDFLAGS@ opal_pmix_pmix3x_LIBS = @opal_pmix_pmix3x_LIBS@ -opal_reachable_netlink_CPPFLAGS = @opal_reachable_netlink_CPPFLAGS@ -opal_reachable_netlink_LDFLAGS = @opal_reachable_netlink_LDFLAGS@ -opal_reachable_netlink_LIBS = @opal_reachable_netlink_LIBS@ opaldatadir = @opaldatadir@ opalincludedir = @opalincludedir@ opallibdir = @opallibdir@ @@ -1848,6 +1875,9 @@ rcache_udreg_CPPFLAGS = @rcache_udreg_CPPFLAGS@ rcache_udreg_LDFLAGS = @rcache_udreg_LDFLAGS@ rcache_udreg_LIBS = @rcache_udreg_LIBS@ +reachable_netlink_CPPFLAGS = @reachable_netlink_CPPFLAGS@ +reachable_netlink_LDFLAGS = @reachable_netlink_LDFLAGS@ +reachable_netlink_LIBS = @reachable_netlink_LIBS@ sbindir = @sbindir@ schizo_alps_CPPFLAGS = @schizo_alps_CPPFLAGS@ schizo_moab_CPPFLAGS = @schizo_moab_CPPFLAGS@ @@ -1861,6 +1891,10 @@ scoll_fca_HOME = @scoll_fca_HOME@ scoll_fca_LDFLAGS = @scoll_fca_LDFLAGS@ scoll_fca_LIBS = @scoll_fca_LIBS@ +scoll_ucc_CFLAGS = @scoll_ucc_CFLAGS@ +scoll_ucc_CPPFLAGS = @scoll_ucc_CPPFLAGS@ +scoll_ucc_LDFLAGS = @scoll_ucc_LDFLAGS@ +scoll_ucc_LIBS = @scoll_ucc_LIBS@ sharedstatedir = @sharedstatedir@ spml_ikrit_CFLAGS = @spml_ikrit_CFLAGS@ spml_ikrit_CPPFLAGS = @spml_ikrit_CPPFLAGS@ diff -Nru openmpi-4.0.3/.travis.yml openmpi-4.1.4/.travis.yml --- openmpi-4.0.3/.travis.yml 1970-01-01 00:00:00.000000000 +0000 +++ openmpi-4.1.4/.travis.yml 2022-05-29 09:51:40.000000000 +0000 @@ -0,0 +1,84 @@ +# Use "required" for sudo, because we want to use the "trusty" Debian +# distro, which is (currently) only available in the legacy Travis +# infrastructure (i.e., if we put "sudo: false" to use the new container- +# based Travis infrastructure, then "trusty" is not available). We +# need the "trusty" distro because it has more recent versions of the +# GNU Autotools (i.e., autogen.pl will fail if you use the regular +# distro because the GNU Autotools are too old). +sudo: required +dist: trusty +language: c + +# Iterate over 2 different compilers +compiler: + - gcc + - clang + +# Test only linux now +os: + - linux + +addons: + # For Linux, make sure we have some extra packages that we like to + # build with + apt: + packages: + - autoconf + - automake + - libtool + - libnl-3-200 + - libnl-3-dev + - libnl-route-3-200 + - libnl-route-3-dev + - libibverbs-dev + - librdmacm-dev + - libhwloc-dev + sources: + - ubuntu-toolchain-r-test + +env: + global: + - AM_MAKEFLAGS="-j4" + - CPPFLAGS="-I$HOME/bogus/include" + - LDFLAGS="-L$HOME/bogus/lib" + - LD_LIBRARY_PATH="$HOME/bogus/lib" + matrix: + - GCC_VERSION=default + - GCC_VERSION=6 + +# Install dependencies for the verbs and usnic providers. Open MPI is +# not currently using the verbs provider in Libfabric, so we might as +# well not build it. +before_install: + - if [[ "GCC_VERSION" == "6" ]]; then COMPILERS="CC=gcc-6 CXX=g++-6 FC=gfortran-6"; fi + - export CONFIGURE_ARGS="--prefix=$HOME/bogus $COMPILERS" DISTCHECK_CONFIGURE_FLAGS="$CONFIGURE_ARGS" + - export DISTCHECK_CONFIGURE_FLAGS="$CONFIGURE_ARGS" + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then git clone https://github.com/ofiwg/libfabric.git ; fi + - if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$GCC_VERSION" == "6" ]] ; then sudo apt-get --assume-yes install gcc-6 g++-6 gfortran-6; fi + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cd libfabric && ./autogen.sh && ./configure --prefix=$HOME/bogus --enable-usnic --disable-verbs $COMPILERS && make install && cd .. ; fi + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; brew upgrade automake || true; brew upgrade libtool || true; fi + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew tap homebrew/science || true; brew install hwloc || true; brew upgrade hwloc || true ; fi + - if [[ "$TRAVIS_OS_NAME" == "osx" ]] && [[ "$GCC_VERSION" == "6" ]] ; then brew install gcc || true; brew upgrade gcc || true ; fi + - mkdir -p $HOME/bogus/include $HOME/bogus/lib + +# Note that we use "make -k" to do the entire build, even if there was a +# build error in there somewhere. This prevents us from needing to submit +# to Travis, see the first error, fix that first error, submit again, ...etc. +install: + - m4 --version + - autoconf --version + - automake --version + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then libtool --version; else glibtool --version; fi + - ./autogen.pl + - if [[ "$TRAVIS_OS_NAME" == "linux" && "$CC" == "gcc" ]]; then ./configure $CONFIGURE_ARGS --with-libfabric=$HOME/bogus --with-usnic --with-verbs; else ./configure $CONFIGURE_ARGS; fi + - make -k + +# We only need to distcheck on one OS / compiler combination (this is just +# a minor optimization to make the overall set of builds faster). +script: + - if [[ "$TRAVIS_OS_NAME" == "linux" && "$CC" == "gcc" ]]; then make distcheck; else make check; fi + +matrix: + exclude: + - env: GCC_VERSION=6 + compiler: clang diff -Nru openmpi-4.0.3/VERSION openmpi-4.1.4/VERSION --- openmpi-4.0.3/VERSION 2020-03-17 09:53:59.000000000 +0000 +++ openmpi-4.1.4/VERSION 2022-05-29 09:51:40.000000000 +0000 @@ -1,5 +1,43 @@ +#if 0 + +# NOTE: The comments below cannot use tokens that will be intepreted +# as C++ preprocessor directives. So when you read "if 0", the reader +# must mentally prepend a # to the "if" token. +# +# This file is carefully constructed so that it can be a) run as a +# Bourne shell script and b) compiled as a C/C++ header file. +# +# Specifically, this file is used in the following ways: +# +# 1. This file is executed as a Bourne shell script to assign version +# numbers to shell variables in config/opal_get_version.* and +# configure.ac. +# 2. On case-insensitive filesystems, this file can get included by +# C++ STL header files when compiling the MPI C++ bindings (i.e., +# when they "include ", that will end up including this +# file). +# +# Case #2 was discovered in +# https://github.com/open-mpi/ompi/issues/9122. The obvious fix for +# this issue would be to rename VERSION (e.g., VERSION.sh). However, +# since the MPI C++ bindings were removed in Open MPI v5.0.0, this +# issue issue only affects legacy Open MPI release series (namely: +# v4.1.x and v4.0.x). As such, do something simple / safe to fix it: +# protect the main body of this file with an "if" preprocessor +# directive. +# +# 1. For case 1, C++ preprocessor directives become Bourne shell comments. +# 2. For case 2, we "if 0" the main body of the file and in the "else" +# block, "include_next" to get the "real" file. +# +# This is a bit of a gross (or clever, depending on your viewpoint) +# hack, but it makes both cases work with minimal changes to the +# legacy v4.0.x and v4.1.x release series. + +############################################################################ + # Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved. -# Copyright (c) 2008-2019 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2008-2021 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2011 NVIDIA Corporation. All rights reserved. # Copyright (c) 2013 Mellanox Technologies, Inc. # All rights reserved. @@ -10,6 +48,8 @@ # Copyright (c) 2018-2020 IBM Corporation. All rights reserved. # Copyright (c) 2018 Research Organization for Information Science # and Technology (RIST). All rights reserved. +# Copyright (c) 2020-2021 Amazon.com, Inc. or its affiliates. All Rights +# reserved. # This is the VERSION file for Open MPI, describing the precise # version of Open MPI in this distribution. The various components of @@ -20,8 +60,8 @@ # ... major=4 -minor=0 -release=3 +minor=1 +release=4 # greek is generally used for alpha or beta release tags. If it is # non-empty, it will be appended to the version number. It does not @@ -37,7 +77,7 @@ # command, or with the date (if "git describe" fails) in the form of # "date". -repo_rev=v4.0.3 +repo_rev=v4.1.4 # If tarball_version is not empty, it is used as the version string in # the tarball filename, regardless of all other versions listed in @@ -51,7 +91,7 @@ # The date when this release was created -date="Mar 03, 2020" +date="May 26, 2022" # The shared library version of each of Open MPI's public libraries. # These versions are maintained in accordance with the "Library @@ -62,7 +102,7 @@ # release managers (not individual developers). Notes: # 1. Since these version numbers are associated with *releases*, the -# version numbers maintained on the Open MPI SVN trunk (and developer +# version numbers maintained on the Open MPI GIT main (and developer # branches) is always 0:0:0 for all libraries. # 2. The version number of libmpi refers to the public MPI interfaces. @@ -88,17 +128,17 @@ # Version numbers are described in the Libtool current:revision:age # format. -libmpi_so_version=60:3:20 -libmpi_cxx_so_version=60:1:20 -libmpi_mpifh_so_version=60:2:20 -libmpi_usempi_tkr_so_version=60:0:20 -libmpi_usempi_ignore_tkr_so_version=60:0:20 -libmpi_usempif08_so_version=61:0:21 -libopen_rte_so_version=60:3:20 -libopen_pal_so_version=60:3:20 -libmpi_java_so_version=60:0:20 -liboshmem_so_version=62:1:22 -libompitrace_so_version=60:0:20 +libmpi_so_version=70:4:30 +libmpi_cxx_so_version=70:1:30 +libmpi_mpifh_so_version=70:0:30 +libmpi_usempi_tkr_so_version=70:0:30 +libmpi_usempi_ignore_tkr_so_version=70:0:30 +libmpi_usempif08_so_version=70:0:30 +libopen_rte_so_version=70:2:30 +libopen_pal_so_version=70:2:30 +libmpi_java_so_version=70:0:30 +liboshmem_so_version=70:2:30 +libompitrace_so_version=70:1:30 # "Common" components install standalone libraries that are run-time # linked by one or more components. So they need to be versioned as @@ -106,15 +146,22 @@ # components-don't-affect-the-build-system abstraction. # OMPI layer -libmca_ompi_common_ompio_so_version=60:3:19 -libmca_ompi_common_monitoring_so_version=60:0:10 +libmca_ompi_common_ompio_so_version=70:4:29 +libmca_ompi_common_monitoring_so_version=70:0:20 # ORTE layer -libmca_orte_common_alps_so_version=60:0:20 +libmca_orte_common_alps_so_version=70:0:30 # OPAL layer -libmca_opal_common_cuda_so_version=60:0:20 -libmca_opal_common_sm_so_version=60:0:20 -libmca_opal_common_ucx_so_version=60:1:20 -libmca_opal_common_ugni_so_version=60:0:20 -libmca_opal_common_verbs_so_version=60:0:20 +libmca_opal_common_cuda_so_version=70:0:30 +libmca_opal_common_ofi_so_version=10:2:0 +libmca_opal_common_sm_so_version=70:0:30 +libmca_opal_common_ucx_so_version=70:2:30 +libmca_opal_common_ugni_so_version=70:0:30 +libmca_opal_common_verbs_so_version=70:0:30 + +#else + +#include_next + +#endif